salamand menu : images
This commit is contained in:
parent
bfdef44b9f
commit
cacddd6aa8
@ -1,10 +1,14 @@
|
||||
import { z } from 'zod';
|
||||
import * as path from 'node:path';
|
||||
import { sync as write } from '@polymech/fs/write';
|
||||
import { sync as exists } from '@polymech/fs/exists';
|
||||
import { isArray } from '@polymech/core/primitives';
|
||||
import { isArray, isString } from '@polymech/core/primitives';
|
||||
import { OptionsSchema } from '../zod_schema.js';
|
||||
import { createImage, editImage } from '../lib/images-google.js';
|
||||
import { getLogger } from '../index.js';
|
||||
import { prompt as resolvePrompt } from '../prompt.js';
|
||||
import { variables } from '../variables.js';
|
||||
import { resolve } from '@polymech/commons';
|
||||
export const ImageOptionsSchema = () => {
|
||||
const baseSchema = OptionsSchema().pick({
|
||||
prompt: true,
|
||||
@ -14,6 +18,7 @@ export const ImageOptionsSchema = () => {
|
||||
logLevel: true,
|
||||
config: true,
|
||||
api_key: true,
|
||||
alt: true,
|
||||
});
|
||||
return baseSchema.extend({
|
||||
model: z.string().default('gemini-2.5-flash-image-preview').describe('AI model to use for image generation/editing.'),
|
||||
@ -23,9 +28,14 @@ export const ImageOptionsSchema = () => {
|
||||
};
|
||||
export const imageCommand = async (argv) => {
|
||||
const logger = getLogger(argv);
|
||||
if (argv.include && isString(argv.include)) {
|
||||
argv.include = [argv.include];
|
||||
}
|
||||
try {
|
||||
const parsedOptions = ImageOptionsSchema().parse(argv);
|
||||
const { prompt, include, dst, ...rest } = parsedOptions;
|
||||
const { include, dst, ...rest } = parsedOptions;
|
||||
const promptMessage = await resolvePrompt(parsedOptions);
|
||||
const prompt = promptMessage?.content || '';
|
||||
if (!prompt && !include) {
|
||||
logger.error('Either --prompt (for image creation) or --include (for image editing) must be provided.');
|
||||
return;
|
||||
@ -55,8 +65,10 @@ export const imageCommand = async (argv) => {
|
||||
imageBuffer = await createImage(prompt, parsedOptions);
|
||||
}
|
||||
if (imageBuffer) {
|
||||
write(dst, imageBuffer);
|
||||
logger.info(`Image saved to: ${dst}`);
|
||||
const vars = variables(parsedOptions);
|
||||
const dstPath = path.resolve(resolve(dst, parsedOptions.alt, vars));
|
||||
write(dstPath, imageBuffer);
|
||||
logger.info(`Image saved to: ${dstPath}`);
|
||||
}
|
||||
else {
|
||||
logger.error('Failed to generate image.');
|
||||
@ -66,4 +78,4 @@ export const imageCommand = async (argv) => {
|
||||
logger.error('Failed to parse options or generate image:', error.message, error.issues, error.stack);
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2ltYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsT0FBTyxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLEVBQUU7SUFDbkMsTUFBTSxVQUFVLEdBQUcsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLElBQUk7UUFDYixHQUFHLEVBQUUsSUFBSTtRQUNULEtBQUssRUFBRSxJQUFJO1FBQ1gsUUFBUSxFQUFFLElBQUk7UUFDZCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxJQUFJO0tBQ2hCLENBQUMsQ0FBQztJQUVILE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNyQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLFFBQVEsQ0FBQywrQ0FBK0MsQ0FBQztRQUNySCxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxrREFBa0QsQ0FBQztRQUM1RSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0s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
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2ltYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3hCLE9BQU8sS0FBSyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLEVBQUU7SUFDbkMsTUFBTSxVQUFVLEdBQUcsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLElBQUk7UUFDYixHQUFHLEVBQUUsSUFBSTtRQUNULEtBQUssRUFBRSxJQUFJO1FBQ1gsUUFBUSxFQUFFLElBQUk7UUFDZCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxJQUFJO1FBQ2IsR0FBRyxFQUFFLElBQUk7S0FDWixDQUFDLENBQUM7SUFFSCxPQUFPLFVB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
|
||||
File diff suppressed because one or more lines are too long
@ -8,7 +8,19 @@
|
||||
"transcribe": {
|
||||
"name": "Transcribe Audio",
|
||||
"command": "kbot",
|
||||
"args": "transcribe --include=\"$(FullName)\" --dst=\"&{SRC_DIR}/&{SRC_NAME}.md\"",
|
||||
"args": "transcribe --include=\"$(FullName)\" --alt=true --dst=\"&{SRC_DIR}/&{SRC_NAME}.md\"",
|
||||
"description": "Transcribe audio file"
|
||||
},
|
||||
"remove-background": {
|
||||
"name": "Remove Background",
|
||||
"command": "kbot",
|
||||
"args": "image \"remove the background\" --alt=true --include=\"$(FullName)\" --dst=\"&{SRC_DIR}/&{SRC_NAME}_no_bg.png\"",
|
||||
"description": "Remove background from an image"
|
||||
},
|
||||
"create-as-image": {
|
||||
"name": "Create as Image",
|
||||
"command": "kbot",
|
||||
"args": "image --alt=true --prompt=\"$(FullName)\" --dst=\"&{SRC_DIR}/&{SRC_NAME}.png\"",
|
||||
"description": "Create an image from a text file"
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,6 +8,9 @@ import { isArray, isString } from '@polymech/core/primitives';
|
||||
import { OptionsSchema } from '../zod_schema.js';
|
||||
import { createImage, editImage } from '../lib/images-google.js';
|
||||
import { getLogger } from '../index.js';
|
||||
import { prompt as resolvePrompt } from '../prompt.js';
|
||||
import { variables } from '../variables.js';
|
||||
import { resolve } from '@polymech/commons';
|
||||
|
||||
export const ImageOptionsSchema = () => {
|
||||
const baseSchema = OptionsSchema().pick({
|
||||
@ -18,6 +21,7 @@ export const ImageOptionsSchema = () => {
|
||||
logLevel: true,
|
||||
config: true,
|
||||
api_key: true,
|
||||
alt: true,
|
||||
});
|
||||
|
||||
return baseSchema.extend({
|
||||
@ -30,9 +34,16 @@ export const ImageOptionsSchema = () => {
|
||||
export const imageCommand = async (argv: any) => {
|
||||
const logger = getLogger(argv);
|
||||
|
||||
if (argv.include && isString(argv.include)) {
|
||||
argv.include = [argv.include];
|
||||
}
|
||||
|
||||
try {
|
||||
const parsedOptions = ImageOptionsSchema().parse(argv);
|
||||
const { prompt, include, dst, ...rest } = parsedOptions;
|
||||
const { include, dst, ...rest } = parsedOptions;
|
||||
|
||||
const promptMessage = await resolvePrompt(parsedOptions);
|
||||
const prompt = promptMessage?.content as string || '';
|
||||
|
||||
if (!prompt && !include) {
|
||||
logger.error('Either --prompt (for image creation) or --include (for image editing) must be provided.');
|
||||
@ -66,8 +77,10 @@ export const imageCommand = async (argv: any) => {
|
||||
}
|
||||
|
||||
if (imageBuffer) {
|
||||
write(dst, imageBuffer);
|
||||
logger.info(`Image saved to: ${dst}`);
|
||||
const vars = variables(parsedOptions);
|
||||
const dstPath = path.resolve(resolve(dst, parsedOptions.alt, vars));
|
||||
write(dstPath, imageBuffer);
|
||||
logger.info(`Image saved to: ${dstPath}`);
|
||||
} else {
|
||||
logger.error('Failed to generate image.');
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ import * as path from 'node:path'
|
||||
import { pathInfoEx } from '@polymech/commons'
|
||||
import { DEFAULT_ROOTS, DEFAULT_VARS } from '@polymech/commons'
|
||||
import { IKBotTask } from '@polymech/ai-tools'
|
||||
import { sync as exists } from '@polymech/fs/exists'
|
||||
|
||||
export const sourceVariables = (filePath: string, projectPath: string): Record<string, string> => {
|
||||
const fileSpecificVariables: Record<string, string> = {};
|
||||
@ -52,16 +53,23 @@ export const variables = (options: IKBotTask) => {
|
||||
...DEFAULT_VARS({})
|
||||
}
|
||||
|
||||
let sourcePath: string | undefined;
|
||||
if (options.include && options.include[0]) {
|
||||
const include = options.include[0]
|
||||
sourcePath = options.include[0];
|
||||
} else if (options.prompt && exists(options.prompt)) {
|
||||
sourcePath = options.prompt;
|
||||
}
|
||||
|
||||
if (sourcePath) {
|
||||
const include = sourcePath
|
||||
const { } = pathInfoEx(include)
|
||||
const srcParts = path.parse(include)
|
||||
const srcVariables: Record<string, string> = {}
|
||||
srcVariables.SRC_NAME = srcParts.name
|
||||
srcVariables.SRC_DIR = srcParts.dir
|
||||
srcVariables.SRC_EXT = srcParts.ext
|
||||
if (srcVariables.ROOT) {
|
||||
srcVariables.SRC_REL = path.relative(srcVariables.ROOT, srcParts.dir)
|
||||
if (ret.ROOT) {
|
||||
srcVariables.SRC_REL = path.relative(ret.ROOT, srcParts.dir)
|
||||
}
|
||||
|
||||
const dashed = srcParts.name.split('-')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user