@tryhamster/gerbil 1.0.0-rc.0 → 1.0.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -14
- package/dist/auto-update-S9s5-g0C.mjs +3 -0
- package/dist/browser/index.d.ts +1009 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +2492 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/{chrome-backend-C5Un08O4.mjs → chrome-backend-CORwaIyC.mjs} +514 -73
- package/dist/chrome-backend-CORwaIyC.mjs.map +1 -0
- package/dist/{chrome-backend-CtwPENIW.mjs → chrome-backend-DIKYoWj-.mjs} +1 -1
- package/dist/cli.mjs +3359 -647
- package/dist/cli.mjs.map +1 -1
- package/dist/frameworks/express.d.mts +1 -1
- package/dist/frameworks/express.mjs +3 -4
- package/dist/frameworks/express.mjs.map +1 -1
- package/dist/frameworks/fastify.d.mts +1 -1
- package/dist/frameworks/fastify.mjs +2 -3
- package/dist/frameworks/fastify.mjs.map +1 -1
- package/dist/frameworks/hono.d.mts +1 -1
- package/dist/frameworks/hono.mjs +2 -3
- package/dist/frameworks/hono.mjs.map +1 -1
- package/dist/frameworks/next.d.mts +2 -2
- package/dist/frameworks/next.mjs +2 -3
- package/dist/frameworks/next.mjs.map +1 -1
- package/dist/frameworks/react.d.mts +1 -1
- package/dist/frameworks/trpc.d.mts +1 -1
- package/dist/frameworks/trpc.mjs +2 -3
- package/dist/frameworks/trpc.mjs.map +1 -1
- package/dist/gerbil-DJGqq7BX.mjs +4 -0
- package/dist/gerbil-DoDGHe6Z.mjs +1631 -0
- package/dist/gerbil-DoDGHe6Z.mjs.map +1 -0
- package/dist/gerbil-qOTe1nl2.d.mts +431 -0
- package/dist/gerbil-qOTe1nl2.d.mts.map +1 -0
- package/dist/index.d.mts +411 -9
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +7 -6
- package/dist/index.mjs.map +1 -1
- package/dist/integrations/ai-sdk.d.mts +122 -4
- package/dist/integrations/ai-sdk.d.mts.map +1 -1
- package/dist/integrations/ai-sdk.mjs +238 -11
- package/dist/integrations/ai-sdk.mjs.map +1 -1
- package/dist/integrations/langchain.d.mts +132 -2
- package/dist/integrations/langchain.d.mts.map +1 -1
- package/dist/integrations/langchain.mjs +175 -8
- package/dist/integrations/langchain.mjs.map +1 -1
- package/dist/integrations/llamaindex.d.mts +1 -1
- package/dist/integrations/llamaindex.mjs +2 -3
- package/dist/integrations/llamaindex.mjs.map +1 -1
- package/dist/integrations/mcp-client.mjs +4 -4
- package/dist/integrations/mcp-client.mjs.map +1 -1
- package/dist/integrations/mcp.d.mts +2 -2
- package/dist/integrations/mcp.d.mts.map +1 -1
- package/dist/integrations/mcp.mjs +5 -6
- package/dist/kokoro-BNTb6egA.mjs +20210 -0
- package/dist/kokoro-BNTb6egA.mjs.map +1 -0
- package/dist/kokoro-CMOGDSgT.js +20212 -0
- package/dist/kokoro-CMOGDSgT.js.map +1 -0
- package/dist/{mcp-R8kRLIKb.mjs → mcp-kzDDWIoS.mjs} +10 -37
- package/dist/mcp-kzDDWIoS.mjs.map +1 -0
- package/dist/microphone-DaMZFRuR.mjs +3 -0
- package/dist/{one-liner-BUQR0nqq.mjs → one-liner-DxnNs_JK.mjs} +2 -2
- package/dist/{one-liner-BUQR0nqq.mjs.map → one-liner-DxnNs_JK.mjs.map} +1 -1
- package/dist/repl-DGUw4fCc.mjs +9 -0
- package/dist/skills/index.d.mts +305 -14
- package/dist/skills/index.d.mts.map +1 -1
- package/dist/skills/index.mjs +5 -6
- package/dist/skills-DulrOPeP.mjs +1435 -0
- package/dist/skills-DulrOPeP.mjs.map +1 -0
- package/dist/stt-1WIefHwc.mjs +3 -0
- package/dist/stt-CG_7KB_0.mjs +434 -0
- package/dist/stt-CG_7KB_0.mjs.map +1 -0
- package/dist/stt-Dne6SENv.js +434 -0
- package/dist/stt-Dne6SENv.js.map +1 -0
- package/dist/{tools-BsiEE6f2.mjs → tools-Bi1P7Xoy.mjs} +6 -7
- package/dist/{tools-BsiEE6f2.mjs.map → tools-Bi1P7Xoy.mjs.map} +1 -1
- package/dist/transformers.web-DiD1gTwk.js +44695 -0
- package/dist/transformers.web-DiD1gTwk.js.map +1 -0
- package/dist/transformers.web-u34VxRFM.js +3 -0
- package/dist/tts-B1pZMlDv.mjs +3 -0
- package/dist/tts-C2FzKuSx.js +725 -0
- package/dist/tts-C2FzKuSx.js.map +1 -0
- package/dist/tts-CyHhcLtN.mjs +731 -0
- package/dist/tts-CyHhcLtN.mjs.map +1 -0
- package/dist/types-CiTc7ez3.d.mts +353 -0
- package/dist/types-CiTc7ez3.d.mts.map +1 -0
- package/dist/{utils-7vXqtq2Q.mjs → utils-CZBZ8dgR.mjs} +1 -1
- package/dist/{utils-7vXqtq2Q.mjs.map → utils-CZBZ8dgR.mjs.map} +1 -1
- package/docs/ai-sdk.md +137 -21
- package/docs/browser.md +241 -2
- package/docs/memory.md +72 -0
- package/docs/stt.md +494 -0
- package/docs/tts.md +569 -0
- package/docs/vision.md +396 -0
- package/package.json +21 -22
- package/dist/auto-update-BbNHbSU1.mjs +0 -3
- package/dist/browser/index.d.mts +0 -262
- package/dist/browser/index.d.mts.map +0 -1
- package/dist/browser/index.mjs +0 -755
- package/dist/browser/index.mjs.map +0 -1
- package/dist/chrome-backend-C5Un08O4.mjs.map +0 -1
- package/dist/gerbil-BfnsFWRE.mjs +0 -644
- package/dist/gerbil-BfnsFWRE.mjs.map +0 -1
- package/dist/gerbil-BjW-z7Fq.mjs +0 -5
- package/dist/gerbil-DZ1k3ChC.d.mts +0 -138
- package/dist/gerbil-DZ1k3ChC.d.mts.map +0 -1
- package/dist/mcp-R8kRLIKb.mjs.map +0 -1
- package/dist/models-DKULvhOr.mjs +0 -136
- package/dist/models-DKULvhOr.mjs.map +0 -1
- package/dist/models-De2-_GmQ.d.mts +0 -22
- package/dist/models-De2-_GmQ.d.mts.map +0 -1
- package/dist/skills-D3CEpgDc.mjs +0 -630
- package/dist/skills-D3CEpgDc.mjs.map +0 -1
- package/dist/types-BS1N92Jt.d.mts +0 -183
- package/dist/types-BS1N92Jt.d.mts.map +0 -1
- /package/dist/{chunk-Ct1HF2bE.mjs → chunk-CkXuGtQK.mjs} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as Gerbil } from "./gerbil-
|
|
2
|
-
import { a as
|
|
1
|
+
import { t as Gerbil } from "./gerbil-DoDGHe6Z.mjs";
|
|
2
|
+
import { a as summarize, d as explain, m as commit, s as review, t as translate } from "./skills-DulrOPeP.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/integrations/mcp.ts
|
|
5
5
|
/**
|
|
@@ -289,53 +289,26 @@ async function createMCPServer(options = {}) {
|
|
|
289
289
|
*/
|
|
290
290
|
async function startMCPServer(options = {}) {
|
|
291
291
|
const server = await createMCPServer(options);
|
|
292
|
-
|
|
292
|
+
(await import("node:readline")).createInterface({
|
|
293
293
|
input: process.stdin,
|
|
294
294
|
output: process.stdout,
|
|
295
295
|
terminal: false
|
|
296
|
-
})
|
|
297
|
-
console.error("🐹 Gerbil MCP Server");
|
|
298
|
-
console.error(` Model: ${options.model || "qwen3-0.6b"}`);
|
|
299
|
-
console.error(` Tools: ${server.listTools().map((t) => t.name).join(", ")}`);
|
|
300
|
-
console.error(" Ready for connections...");
|
|
301
|
-
rl.on("line", async (line) => {
|
|
296
|
+
}).on("line", async (line) => {
|
|
302
297
|
try {
|
|
303
298
|
const request = JSON.parse(line);
|
|
304
|
-
let response;
|
|
305
299
|
switch (request.method) {
|
|
306
300
|
case "initialize":
|
|
307
|
-
|
|
308
|
-
protocolVersion: "2024-11-05",
|
|
309
|
-
serverInfo: server.info,
|
|
310
|
-
capabilities: { tools: {} }
|
|
311
|
-
};
|
|
301
|
+
server.info;
|
|
312
302
|
break;
|
|
313
303
|
case "tools/list":
|
|
314
|
-
|
|
304
|
+
server.listTools();
|
|
315
305
|
break;
|
|
316
306
|
case "tools/call":
|
|
317
|
-
|
|
307
|
+
await server.callTool(request.params.name, request.params.arguments);
|
|
318
308
|
break;
|
|
319
|
-
default:
|
|
320
|
-
code: -32601,
|
|
321
|
-
message: "Method not found"
|
|
322
|
-
} };
|
|
309
|
+
default:
|
|
323
310
|
}
|
|
324
|
-
|
|
325
|
-
jsonrpc: "2.0",
|
|
326
|
-
id: request.id,
|
|
327
|
-
result: response
|
|
328
|
-
}));
|
|
329
|
-
} catch (error) {
|
|
330
|
-
console.log(JSON.stringify({
|
|
331
|
-
jsonrpc: "2.0",
|
|
332
|
-
id: null,
|
|
333
|
-
error: {
|
|
334
|
-
code: -32700,
|
|
335
|
-
message: String(error)
|
|
336
|
-
}
|
|
337
|
-
}));
|
|
338
|
-
}
|
|
311
|
+
} catch (_error) {}
|
|
339
312
|
});
|
|
340
313
|
}
|
|
341
314
|
var mcp_default = {
|
|
@@ -345,4 +318,4 @@ var mcp_default = {
|
|
|
345
318
|
|
|
346
319
|
//#endregion
|
|
347
320
|
export { mcp_default as n, startMCPServer as r, createMCPServer as t };
|
|
348
|
-
//# sourceMappingURL=mcp-
|
|
321
|
+
//# sourceMappingURL=mcp-kzDDWIoS.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-kzDDWIoS.mjs","names":["handlers: Record<string, (args: any) => Promise<any>>","skills.summarize","skills.explain","skills.review","skills.commit","skills.translate"],"sources":["../src/integrations/mcp.ts"],"sourcesContent":["/**\n * Gerbil MCP Server\n *\n * Model Context Protocol server for Claude Desktop, Cursor, etc.\n *\n * @example\n * ```bash\n * gerbil serve --mcp\n * ```\n *\n * @example Claude Desktop config\n * ```json\n * {\n * \"mcpServers\": {\n * \"gerbil\": {\n * \"command\": \"npx\",\n * \"args\": [\"-y\", \"gerbil\", \"serve\", \"--mcp\"]\n * }\n * }\n * }\n * ```\n */\n\nimport { Gerbil } from \"../core/gerbil.js\";\nimport type { GerbilConfig } from \"../core/types.js\";\nimport * as skills from \"../skills/index.js\";\n\nexport interface MCPServerOptions extends GerbilConfig {\n /** Port for HTTP transport (default: stdio) */\n port?: number;\n\n /** Tools to expose */\n tools?: string[];\n}\n\n// Tool definitions\nconst TOOL_DEFINITIONS = {\n generate: {\n name: \"gerbil_generate\",\n description: \"Generate text using a local LLM\",\n inputSchema: {\n type: \"object\",\n properties: {\n prompt: { type: \"string\", description: \"The prompt to generate from\" },\n maxTokens: { type: \"number\", description: \"Maximum tokens to generate\" },\n temperature: { type: \"number\", description: \"Sampling temperature (0-2)\" },\n system: { type: \"string\", description: \"System prompt\" },\n thinking: { type: \"boolean\", description: \"Enable thinking mode\" },\n },\n required: [\"prompt\"],\n },\n },\n summarize: {\n name: \"gerbil_summarize\",\n description: \"Summarize content\",\n inputSchema: {\n type: \"object\",\n properties: {\n content: { type: \"string\", description: \"Content to summarize\" },\n length: { type: \"string\", enum: [\"short\", \"medium\", \"long\"] },\n format: { type: \"string\", enum: [\"paragraph\", \"bullets\"] },\n },\n required: [\"content\"],\n },\n },\n explain: {\n name: \"gerbil_explain\",\n description: \"Explain code or concepts\",\n inputSchema: {\n type: \"object\",\n properties: {\n content: { type: \"string\", description: \"Code or concept to explain\" },\n level: { type: \"string\", enum: [\"beginner\", \"intermediate\", \"expert\"] },\n language: { type: \"string\", description: \"Programming language\" },\n },\n required: [\"content\"],\n },\n },\n review: {\n name: \"gerbil_review\",\n description: \"Review code for issues\",\n inputSchema: {\n type: \"object\",\n properties: {\n code: { type: \"string\", description: \"Code to review\" },\n focus: {\n type: \"array\",\n items: { type: \"string\", enum: [\"security\", \"performance\", \"style\", \"bugs\"] },\n },\n },\n required: [\"code\"],\n },\n },\n commit: {\n name: \"gerbil_commit\",\n description: \"Generate a commit message from a diff\",\n inputSchema: {\n type: \"object\",\n properties: {\n diff: { type: \"string\", description: \"Git diff\" },\n type: { type: \"string\", enum: [\"conventional\", \"simple\", \"detailed\"] },\n },\n required: [\"diff\"],\n },\n },\n translate: {\n name: \"gerbil_translate\",\n description: \"Translate text\",\n inputSchema: {\n type: \"object\",\n properties: {\n text: { type: \"string\", description: \"Text to translate\" },\n to: { type: \"string\", description: \"Target language\" },\n from: { type: \"string\", description: \"Source language (optional)\" },\n },\n required: [\"text\", \"to\"],\n },\n },\n embed: {\n name: \"gerbil_embed\",\n description: \"Generate embeddings for text\",\n inputSchema: {\n type: \"object\",\n properties: {\n text: { type: \"string\", description: \"Text to embed\" },\n },\n required: [\"text\"],\n },\n },\n};\n\n/**\n * Create MCP server\n */\nexport async function createMCPServer(options: MCPServerOptions = {}) {\n const g = new Gerbil(options);\n\n // Load model\n await g.loadModel(options.model || \"qwen3-0.6b\");\n\n // Determine which tools to expose\n const enabledTools = options.tools || Object.keys(TOOL_DEFINITIONS);\n\n // Tool handlers\n const handlers: Record<string, (args: any) => Promise<any>> = {\n gerbil_generate: async (args) => {\n const result = await g.generate(args.prompt, {\n maxTokens: args.maxTokens,\n temperature: args.temperature,\n system: args.system,\n thinking: args.thinking,\n });\n return {\n content: [\n {\n type: \"text\",\n text: result.thinking\n ? `Thinking: ${result.thinking}\\n\\nAnswer: ${result.text}`\n : result.text,\n },\n ],\n };\n },\n\n gerbil_summarize: async (args) => {\n const summary = await skills.summarize({\n content: args.content,\n length: args.length,\n format: args.format,\n });\n return { content: [{ type: \"text\", text: summary }] };\n },\n\n gerbil_explain: async (args) => {\n const explanation = await skills.explain({\n content: args.content,\n level: args.level,\n language: args.language,\n });\n return { content: [{ type: \"text\", text: explanation }] };\n },\n\n gerbil_review: async (args) => {\n const reviewResult = await skills.review({\n code: args.code,\n focus: args.focus,\n });\n return { content: [{ type: \"text\", text: reviewResult }] };\n },\n\n gerbil_commit: async (args) => {\n const message = await skills.commit({\n diff: args.diff,\n type: args.type,\n });\n return { content: [{ type: \"text\", text: message }] };\n },\n\n gerbil_translate: async (args) => {\n const translated = await skills.translate({\n text: args.text,\n to: args.to,\n from: args.from,\n });\n return { content: [{ type: \"text\", text: translated }] };\n },\n\n gerbil_embed: async (args) => {\n const result = await g.embed(args.text);\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify({\n vector: result.vector.slice(0, 10),\n dimensions: result.vector.length,\n }),\n },\n ],\n };\n },\n };\n\n return {\n // Server info\n info: {\n name: \"gerbil\",\n version: \"1.0.0\",\n description: \"Local LLM inference via Gerbil\",\n },\n\n // List available tools\n listTools: () =>\n enabledTools\n .filter((t) => TOOL_DEFINITIONS[t as keyof typeof TOOL_DEFINITIONS])\n .map((t) => TOOL_DEFINITIONS[t as keyof typeof TOOL_DEFINITIONS]),\n\n // Call a tool\n callTool: async (name: string, args: any) => {\n const handler = handlers[name];\n if (!handler) {\n throw new Error(`Unknown tool: ${name}`);\n }\n return handler(args);\n },\n\n // Get Gerbil instance\n gerbil: g,\n };\n}\n\n/**\n * Start MCP server with stdio transport\n */\nexport async function startMCPServer(options: MCPServerOptions = {}) {\n const server = await createMCPServer(options);\n\n // Simple stdio protocol handler\n const readline = await import(\"node:readline\");\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n terminal: false,\n });\n\n rl.on(\"line\", async (line) => {\n try {\n const request = JSON.parse(line);\n\n let _response: any;\n\n switch (request.method) {\n case \"initialize\":\n _response = {\n protocolVersion: \"2024-11-05\",\n serverInfo: server.info,\n capabilities: {\n tools: {},\n },\n };\n break;\n\n case \"tools/list\":\n _response = { tools: server.listTools() };\n break;\n\n case \"tools/call\":\n _response = await server.callTool(request.params.name, request.params.arguments);\n break;\n\n default:\n _response = { error: { code: -32_601, message: \"Method not found\" } };\n }\n } catch (_error) {}\n });\n}\n\nexport default { createMCPServer, startMCPServer };\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Gerbil } from "./gerbil-
|
|
1
|
+
import { t as Gerbil } from "./gerbil-DoDGHe6Z.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/core/one-liner.ts
|
|
4
4
|
/**
|
|
@@ -95,4 +95,4 @@ var one_liner_default = gerbil;
|
|
|
95
95
|
|
|
96
96
|
//#endregion
|
|
97
97
|
export { getInstance as a, stream as c, generate as i, embed as n, json as o, embedBatch as r, one_liner_default as s, dispose as t };
|
|
98
|
-
//# sourceMappingURL=one-liner-
|
|
98
|
+
//# sourceMappingURL=one-liner-DxnNs_JK.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"one-liner-
|
|
1
|
+
{"version":3,"file":"one-liner-DxnNs_JK.mjs","names":["instance: Gerbil | null","loadPromise: Promise<void> | null","currentModel: string | null"],"sources":["../src/core/one-liner.ts"],"sourcesContent":["/**\n * One-liner API for Gerbil\n *\n * @example\n * ```ts\n * import gerbil from \"gerbil\";\n *\n * const text = await gerbil(\"Write a haiku\");\n * ```\n */\n\nimport { Gerbil } from \"./gerbil.js\";\nimport type {\n EmbedOptions,\n EmbedResult,\n GenerateOptions,\n GenerateResult,\n JsonOptions,\n} from \"./types.js\";\n\n// Singleton instance (lazy loaded)\nlet instance: Gerbil | null = null;\nlet loadPromise: Promise<void> | null = null;\nlet currentModel: string | null = null;\n\nasync function getInstance(model?: string): Promise<Gerbil> {\n const requestedModel = model || \"qwen3-0.6b\";\n\n // If requesting a different model, we need a new instance\n if (instance && currentModel && currentModel !== requestedModel) {\n // Dispose old instance and create new one with requested model\n await instance.dispose();\n instance = null;\n loadPromise = null;\n currentModel = null;\n }\n\n if (!instance) {\n instance = new Gerbil();\n }\n\n if (!(instance.isLoaded() || loadPromise)) {\n currentModel = requestedModel;\n loadPromise = instance.loadModel(requestedModel);\n }\n\n if (loadPromise) {\n await loadPromise;\n loadPromise = null;\n }\n\n return instance;\n}\n\n// ============================================\n// Main Function\n// ============================================\n\ninterface GerbilOptions extends GenerateOptions {\n model?: string;\n}\n\n/**\n * Generate text with zero setup\n *\n * @example\n * ```ts\n * const text = await gerbil(\"Write a haiku\");\n * const text = await gerbil(\"Explain this\", { model: \"qwen3-0.6b\", thinking: true });\n * ```\n */\nasync function gerbil(prompt: string, options: GerbilOptions = {}): Promise<string> {\n const { model, ...generateOptions } = options;\n const g = await getInstance(model);\n const result = await g.generate(prompt, generateOptions);\n return result.text;\n}\n\n// ============================================\n// Functional Exports\n// ============================================\n\n/**\n * Generate text (returns full result)\n */\nexport async function generate(\n prompt: string,\n options: GerbilOptions = {},\n): Promise<GenerateResult> {\n const { model, ...generateOptions } = options;\n const g = await getInstance(model);\n return g.generate(prompt, generateOptions);\n}\n\n/**\n * Stream text generation\n */\nexport async function* stream(\n prompt: string,\n options: GerbilOptions = {},\n): AsyncGenerator<string, GenerateResult, unknown> {\n const { model, ...generateOptions } = options;\n const g = await getInstance(model);\n return yield* g.stream(prompt, generateOptions);\n}\n\n/**\n * Generate structured JSON\n */\nexport async function json<T>(\n prompt: string,\n options: JsonOptions<T> & { model?: string },\n): Promise<T> {\n const { model, ...jsonOptions } = options;\n const g = await getInstance(model);\n return g.json(prompt, jsonOptions);\n}\n\n/**\n * Generate embeddings\n */\nexport async function embed(\n text: string,\n options: EmbedOptions & { model?: string } = {},\n): Promise<EmbedResult> {\n const { model, ...embedOptions } = options;\n const g = await getInstance(model);\n return g.embed(text, embedOptions);\n}\n\n/**\n * Generate embeddings for multiple texts\n */\nexport async function embedBatch(\n texts: string[],\n options: EmbedOptions & { model?: string } = {},\n): Promise<EmbedResult[]> {\n const { model, ...embedOptions } = options;\n const g = await getInstance(model);\n return g.embedBatch(texts, embedOptions);\n}\n\n/**\n * Dispose singleton instance\n */\nexport async function dispose(): Promise<void> {\n if (instance) {\n await instance.dispose();\n instance = null;\n loadPromise = null;\n }\n}\n\n/**\n * Get singleton instance (for advanced usage)\n */\nexport { getInstance };\n\nexport default gerbil;\n"],"mappings":";;;;;;;;;;;;;AAqBA,IAAIA,WAA0B;AAC9B,IAAIC,cAAoC;AACxC,IAAIC,eAA8B;AAElC,eAAe,YAAY,OAAiC;CAC1D,MAAM,iBAAiB,SAAS;AAGhC,KAAI,YAAY,gBAAgB,iBAAiB,gBAAgB;AAE/D,QAAM,SAAS,SAAS;AACxB,aAAW;AACX,gBAAc;AACd,iBAAe;;AAGjB,KAAI,CAAC,SACH,YAAW,IAAI,QAAQ;AAGzB,KAAI,EAAE,SAAS,UAAU,IAAI,cAAc;AACzC,iBAAe;AACf,gBAAc,SAAS,UAAU,eAAe;;AAGlD,KAAI,aAAa;AACf,QAAM;AACN,gBAAc;;AAGhB,QAAO;;;;;;;;;;;AAoBT,eAAe,OAAO,QAAgB,UAAyB,EAAE,EAAmB;CAClF,MAAM,EAAE,OAAO,GAAG,oBAAoB;AAGtC,SADe,OADL,MAAM,YAAY,MAAM,EACX,SAAS,QAAQ,gBAAgB,EAC1C;;;;;AAUhB,eAAsB,SACpB,QACA,UAAyB,EAAE,EACF;CACzB,MAAM,EAAE,OAAO,GAAG,oBAAoB;AAEtC,SADU,MAAM,YAAY,MAAM,EACzB,SAAS,QAAQ,gBAAgB;;;;;AAM5C,gBAAuB,OACrB,QACA,UAAyB,EAAE,EACsB;CACjD,MAAM,EAAE,OAAO,GAAG,oBAAoB;AAEtC,QAAO,QADG,MAAM,YAAY,MAAM,EAClB,OAAO,QAAQ,gBAAgB;;;;;AAMjD,eAAsB,KACpB,QACA,SACY;CACZ,MAAM,EAAE,OAAO,GAAG,gBAAgB;AAElC,SADU,MAAM,YAAY,MAAM,EACzB,KAAK,QAAQ,YAAY;;;;;AAMpC,eAAsB,MACpB,MACA,UAA6C,EAAE,EACzB;CACtB,MAAM,EAAE,OAAO,GAAG,iBAAiB;AAEnC,SADU,MAAM,YAAY,MAAM,EACzB,MAAM,MAAM,aAAa;;;;;AAMpC,eAAsB,WACpB,OACA,UAA6C,EAAE,EACvB;CACxB,MAAM,EAAE,OAAO,GAAG,iBAAiB;AAEnC,SADU,MAAM,YAAY,MAAM,EACzB,WAAW,OAAO,aAAa;;;;;AAM1C,eAAsB,UAAyB;AAC7C,KAAI,UAAU;AACZ,QAAM,SAAS,SAAS;AACxB,aAAW;AACX,gBAAc;;;AASlB,wBAAe"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import "./gerbil-DoDGHe6Z.mjs";
|
|
2
|
+
import "./chrome-backend-CORwaIyC.mjs";
|
|
3
|
+
import "./utils-CZBZ8dgR.mjs";
|
|
4
|
+
import "./one-liner-DxnNs_JK.mjs";
|
|
5
|
+
import "./skills-DulrOPeP.mjs";
|
|
6
|
+
import "./tools-Bi1P7Xoy.mjs";
|
|
7
|
+
import { n as startRepl, t as setCleanupPromise } from "./cli.mjs";
|
|
8
|
+
|
|
9
|
+
export { setCleanupPromise };
|
package/dist/skills/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "../types-
|
|
2
|
-
import { t as Gerbil } from "../gerbil-
|
|
1
|
+
import "../types-CiTc7ez3.mjs";
|
|
2
|
+
import { t as Gerbil } from "../gerbil-qOTe1nl2.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
|
|
5
5
|
//#region src/skills/types.d.ts
|
|
@@ -184,6 +184,98 @@ declare function clearSkills(): void;
|
|
|
184
184
|
*/
|
|
185
185
|
declare function getAllSkillInfo(): SkillInfo[];
|
|
186
186
|
//#endregion
|
|
187
|
+
//#region src/skills/builtin/analyze-screenshot.d.ts
|
|
188
|
+
declare const AnalyzeScreenshotInput: z.ZodObject<{
|
|
189
|
+
/** Screenshot URL or data URI */
|
|
190
|
+
image: z.ZodString;
|
|
191
|
+
/** Analysis type */
|
|
192
|
+
type: z.ZodDefault<z.ZodEnum<["ui-review", "accessibility", "suggestions", "qa", "ux-audit", "mobile-check"]>>;
|
|
193
|
+
/** Specific areas to focus on (optional) */
|
|
194
|
+
focus: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
195
|
+
}, "strip", z.ZodTypeAny, {
|
|
196
|
+
type: "ui-review" | "accessibility" | "suggestions" | "qa" | "ux-audit" | "mobile-check";
|
|
197
|
+
image: string;
|
|
198
|
+
focus?: string[] | undefined;
|
|
199
|
+
}, {
|
|
200
|
+
image: string;
|
|
201
|
+
type?: "ui-review" | "accessibility" | "suggestions" | "qa" | "ux-audit" | "mobile-check" | undefined;
|
|
202
|
+
focus?: string[] | undefined;
|
|
203
|
+
}>;
|
|
204
|
+
type AnalyzeScreenshotInput = z.infer<typeof AnalyzeScreenshotInput>;
|
|
205
|
+
declare const analyzeScreenshot: Skill<{
|
|
206
|
+
image: string;
|
|
207
|
+
type?: "ui-review" | "accessibility" | "suggestions" | "qa" | "ux-audit" | "mobile-check" | undefined;
|
|
208
|
+
focus?: string[] | undefined;
|
|
209
|
+
}, string>;
|
|
210
|
+
//#endregion
|
|
211
|
+
//#region src/skills/builtin/announce.d.ts
|
|
212
|
+
declare const AnnounceInput: z.ZodObject<{
|
|
213
|
+
/** What to announce (will be rephrased by AI) */
|
|
214
|
+
message: z.ZodString;
|
|
215
|
+
/** Announcement style */
|
|
216
|
+
style: z.ZodDefault<z.ZodEnum<["casual", "formal", "excited", "calm", "urgent"]>>;
|
|
217
|
+
/** Voice ID */
|
|
218
|
+
voice: z.ZodDefault<z.ZodEnum<["af_heart", "af_bella", "af_nicole", "am_fenrir", "am_michael", "bf_emma", "bm_george"]>>;
|
|
219
|
+
/** Speech speed */
|
|
220
|
+
speed: z.ZodDefault<z.ZodNumber>;
|
|
221
|
+
/** Just generate text, don't speak */
|
|
222
|
+
textOnly: z.ZodDefault<z.ZodBoolean>;
|
|
223
|
+
}, "strip", z.ZodTypeAny, {
|
|
224
|
+
message: string;
|
|
225
|
+
style: "casual" | "formal" | "excited" | "calm" | "urgent";
|
|
226
|
+
voice: "af_heart" | "af_bella" | "af_nicole" | "am_fenrir" | "am_michael" | "bf_emma" | "bm_george";
|
|
227
|
+
speed: number;
|
|
228
|
+
textOnly: boolean;
|
|
229
|
+
}, {
|
|
230
|
+
message: string;
|
|
231
|
+
style?: "casual" | "formal" | "excited" | "calm" | "urgent" | undefined;
|
|
232
|
+
voice?: "af_heart" | "af_bella" | "af_nicole" | "am_fenrir" | "am_michael" | "bf_emma" | "bm_george" | undefined;
|
|
233
|
+
speed?: number | undefined;
|
|
234
|
+
textOnly?: boolean | undefined;
|
|
235
|
+
}>;
|
|
236
|
+
type AnnounceInput = z.infer<typeof AnnounceInput>;
|
|
237
|
+
declare const announce: Skill<{
|
|
238
|
+
message: string;
|
|
239
|
+
style?: "casual" | "formal" | "excited" | "calm" | "urgent" | undefined;
|
|
240
|
+
voice?: "af_heart" | "af_bella" | "af_nicole" | "am_fenrir" | "am_michael" | "bf_emma" | "bm_george" | undefined;
|
|
241
|
+
speed?: number | undefined;
|
|
242
|
+
textOnly?: boolean | undefined;
|
|
243
|
+
}, string>;
|
|
244
|
+
//#endregion
|
|
245
|
+
//#region src/skills/builtin/caption-image.d.ts
|
|
246
|
+
declare const CaptionImageInput: z.ZodObject<{
|
|
247
|
+
/** Image URL or data URI */
|
|
248
|
+
image: z.ZodString;
|
|
249
|
+
/** Caption type */
|
|
250
|
+
type: z.ZodDefault<z.ZodEnum<["alt-text", "caption", "social-media", "seo", "artistic", "technical"]>>;
|
|
251
|
+
/** Tone/style for the caption */
|
|
252
|
+
tone: z.ZodDefault<z.ZodEnum<["professional", "casual", "playful", "formal", "descriptive"]>>;
|
|
253
|
+
/** Maximum length hint */
|
|
254
|
+
maxLength: z.ZodDefault<z.ZodEnum<["short", "medium", "long"]>>;
|
|
255
|
+
/** Platform hint for social media captions */
|
|
256
|
+
platform: z.ZodOptional<z.ZodEnum<["twitter", "instagram", "linkedin", "facebook"]>>;
|
|
257
|
+
}, "strip", z.ZodTypeAny, {
|
|
258
|
+
type: "seo" | "alt-text" | "caption" | "social-media" | "artistic" | "technical";
|
|
259
|
+
image: string;
|
|
260
|
+
maxLength: "short" | "medium" | "long";
|
|
261
|
+
tone: "professional" | "casual" | "formal" | "playful" | "descriptive";
|
|
262
|
+
platform?: "twitter" | "instagram" | "linkedin" | "facebook" | undefined;
|
|
263
|
+
}, {
|
|
264
|
+
image: string;
|
|
265
|
+
type?: "seo" | "alt-text" | "caption" | "social-media" | "artistic" | "technical" | undefined;
|
|
266
|
+
maxLength?: "short" | "medium" | "long" | undefined;
|
|
267
|
+
tone?: "professional" | "casual" | "formal" | "playful" | "descriptive" | undefined;
|
|
268
|
+
platform?: "twitter" | "instagram" | "linkedin" | "facebook" | undefined;
|
|
269
|
+
}>;
|
|
270
|
+
type CaptionImageInput = z.infer<typeof CaptionImageInput>;
|
|
271
|
+
declare const captionImage: Skill<{
|
|
272
|
+
image: string;
|
|
273
|
+
type?: "seo" | "alt-text" | "caption" | "social-media" | "artistic" | "technical" | undefined;
|
|
274
|
+
maxLength?: "short" | "medium" | "long" | undefined;
|
|
275
|
+
tone?: "professional" | "casual" | "formal" | "playful" | "descriptive" | undefined;
|
|
276
|
+
platform?: "twitter" | "instagram" | "linkedin" | "facebook" | undefined;
|
|
277
|
+
}, string>;
|
|
278
|
+
//#endregion
|
|
187
279
|
//#region src/skills/builtin/commit.d.ts
|
|
188
280
|
declare const CommitInput: z.ZodObject<{
|
|
189
281
|
/** Git diff (auto-detected if not provided) */
|
|
@@ -197,17 +289,75 @@ declare const CommitInput: z.ZodObject<{
|
|
|
197
289
|
maxLength: number;
|
|
198
290
|
diff?: string | undefined;
|
|
199
291
|
}, {
|
|
200
|
-
diff?: string | undefined;
|
|
201
292
|
type?: "conventional" | "simple" | "detailed" | undefined;
|
|
293
|
+
diff?: string | undefined;
|
|
202
294
|
maxLength?: number | undefined;
|
|
203
295
|
}>;
|
|
204
296
|
type CommitInput = z.infer<typeof CommitInput>;
|
|
205
297
|
declare const commit: Skill<{
|
|
206
|
-
diff?: string | undefined;
|
|
207
298
|
type?: "conventional" | "simple" | "detailed" | undefined;
|
|
299
|
+
diff?: string | undefined;
|
|
208
300
|
maxLength?: number | undefined;
|
|
209
301
|
}, string>;
|
|
210
302
|
//#endregion
|
|
303
|
+
//#region src/skills/builtin/compare-images.d.ts
|
|
304
|
+
declare const CompareImagesInput: z.ZodObject<{
|
|
305
|
+
/** First image URL or data URI */
|
|
306
|
+
image1: z.ZodString;
|
|
307
|
+
/** Second image URL or data URI */
|
|
308
|
+
image2: z.ZodString;
|
|
309
|
+
/** Comparison type */
|
|
310
|
+
type: z.ZodDefault<z.ZodEnum<["visual-diff", "design-comparison", "before-after", "a-b-test", "version-diff"]>>;
|
|
311
|
+
/** Specific aspects to compare */
|
|
312
|
+
focus: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
313
|
+
}, "strip", z.ZodTypeAny, {
|
|
314
|
+
type: "visual-diff" | "design-comparison" | "before-after" | "a-b-test" | "version-diff";
|
|
315
|
+
image1: string;
|
|
316
|
+
image2: string;
|
|
317
|
+
focus?: string[] | undefined;
|
|
318
|
+
}, {
|
|
319
|
+
image1: string;
|
|
320
|
+
image2: string;
|
|
321
|
+
type?: "visual-diff" | "design-comparison" | "before-after" | "a-b-test" | "version-diff" | undefined;
|
|
322
|
+
focus?: string[] | undefined;
|
|
323
|
+
}>;
|
|
324
|
+
type CompareImagesInput = z.infer<typeof CompareImagesInput>;
|
|
325
|
+
declare const compareImages: Skill<{
|
|
326
|
+
image1: string;
|
|
327
|
+
image2: string;
|
|
328
|
+
type?: "visual-diff" | "design-comparison" | "before-after" | "a-b-test" | "version-diff" | undefined;
|
|
329
|
+
focus?: string[] | undefined;
|
|
330
|
+
}, string>;
|
|
331
|
+
//#endregion
|
|
332
|
+
//#region src/skills/builtin/describe-image.d.ts
|
|
333
|
+
declare const DescribeImageInput: z.ZodObject<{
|
|
334
|
+
/** Image URL or data URI */
|
|
335
|
+
image: z.ZodString;
|
|
336
|
+
/** What to focus on */
|
|
337
|
+
focus: z.ZodDefault<z.ZodEnum<["general", "details", "text", "objects", "scene", "colors"]>>;
|
|
338
|
+
/** Output format */
|
|
339
|
+
format: z.ZodDefault<z.ZodEnum<["paragraph", "bullets", "structured"]>>;
|
|
340
|
+
/** Maximum detail level */
|
|
341
|
+
detail: z.ZodDefault<z.ZodEnum<["brief", "normal", "comprehensive"]>>;
|
|
342
|
+
}, "strip", z.ZodTypeAny, {
|
|
343
|
+
image: string;
|
|
344
|
+
focus: "text" | "general" | "details" | "objects" | "scene" | "colors";
|
|
345
|
+
format: "paragraph" | "bullets" | "structured";
|
|
346
|
+
detail: "brief" | "normal" | "comprehensive";
|
|
347
|
+
}, {
|
|
348
|
+
image: string;
|
|
349
|
+
focus?: "text" | "general" | "details" | "objects" | "scene" | "colors" | undefined;
|
|
350
|
+
format?: "paragraph" | "bullets" | "structured" | undefined;
|
|
351
|
+
detail?: "brief" | "normal" | "comprehensive" | undefined;
|
|
352
|
+
}>;
|
|
353
|
+
type DescribeImageInput = z.infer<typeof DescribeImageInput>;
|
|
354
|
+
declare const describeImage: Skill<{
|
|
355
|
+
image: string;
|
|
356
|
+
focus?: "text" | "general" | "details" | "objects" | "scene" | "colors" | undefined;
|
|
357
|
+
format?: "paragraph" | "bullets" | "structured" | undefined;
|
|
358
|
+
detail?: "brief" | "normal" | "comprehensive" | undefined;
|
|
359
|
+
}, string>;
|
|
360
|
+
//#endregion
|
|
211
361
|
//#region src/skills/builtin/explain.d.ts
|
|
212
362
|
declare const ExplainInput: z.ZodObject<{
|
|
213
363
|
/** Content to explain */
|
|
@@ -216,20 +366,30 @@ declare const ExplainInput: z.ZodObject<{
|
|
|
216
366
|
level: z.ZodDefault<z.ZodEnum<["beginner", "intermediate", "expert"]>>;
|
|
217
367
|
/** Programming language (for code) */
|
|
218
368
|
language: z.ZodOptional<z.ZodString>;
|
|
369
|
+
/** Speak the explanation aloud using TTS */
|
|
370
|
+
speak: z.ZodDefault<z.ZodBoolean>;
|
|
371
|
+
/** Voice for TTS (if speak is true) */
|
|
372
|
+
voice: z.ZodDefault<z.ZodEnum<["af_heart", "af_bella", "bf_emma", "am_fenrir"]>>;
|
|
219
373
|
}, "strip", z.ZodTypeAny, {
|
|
220
374
|
content: string;
|
|
375
|
+
voice: "af_heart" | "af_bella" | "am_fenrir" | "bf_emma";
|
|
376
|
+
speak: boolean;
|
|
221
377
|
level: "beginner" | "intermediate" | "expert";
|
|
222
378
|
language?: string | undefined;
|
|
223
379
|
}, {
|
|
224
380
|
content: string;
|
|
225
|
-
level?: "beginner" | "intermediate" | "expert" | undefined;
|
|
226
381
|
language?: string | undefined;
|
|
382
|
+
voice?: "af_heart" | "af_bella" | "am_fenrir" | "bf_emma" | undefined;
|
|
383
|
+
speak?: boolean | undefined;
|
|
384
|
+
level?: "beginner" | "intermediate" | "expert" | undefined;
|
|
227
385
|
}>;
|
|
228
386
|
type ExplainInput = z.infer<typeof ExplainInput>;
|
|
229
387
|
declare const explain: Skill<{
|
|
230
388
|
content: string;
|
|
231
|
-
level?: "beginner" | "intermediate" | "expert" | undefined;
|
|
232
389
|
language?: string | undefined;
|
|
390
|
+
voice?: "af_heart" | "af_bella" | "am_fenrir" | "bf_emma" | undefined;
|
|
391
|
+
speak?: boolean | undefined;
|
|
392
|
+
level?: "beginner" | "intermediate" | "expert" | undefined;
|
|
233
393
|
}, string>;
|
|
234
394
|
//#endregion
|
|
235
395
|
//#region src/skills/builtin/extract.d.ts
|
|
@@ -256,6 +416,74 @@ declare const extract: Skill<{
|
|
|
256
416
|
context?: string | undefined;
|
|
257
417
|
}, string>;
|
|
258
418
|
//#endregion
|
|
419
|
+
//#region src/skills/builtin/extract-from-image.d.ts
|
|
420
|
+
declare const ExtractFromImageInput: z.ZodObject<{
|
|
421
|
+
/** Image URL or data URI */
|
|
422
|
+
image: z.ZodString;
|
|
423
|
+
/** What to extract */
|
|
424
|
+
extract: z.ZodDefault<z.ZodEnum<["text", "code", "data", "table", "diagram", "form", "receipt"]>>;
|
|
425
|
+
/** Output format */
|
|
426
|
+
outputFormat: z.ZodDefault<z.ZodEnum<["raw", "json", "markdown", "csv"]>>;
|
|
427
|
+
/** Language hint for code extraction */
|
|
428
|
+
language: z.ZodOptional<z.ZodString>;
|
|
429
|
+
}, "strip", z.ZodTypeAny, {
|
|
430
|
+
image: string;
|
|
431
|
+
extract: "code" | "text" | "data" | "table" | "diagram" | "form" | "receipt";
|
|
432
|
+
outputFormat: "raw" | "json" | "markdown" | "csv";
|
|
433
|
+
language?: string | undefined;
|
|
434
|
+
}, {
|
|
435
|
+
image: string;
|
|
436
|
+
extract?: "code" | "text" | "data" | "table" | "diagram" | "form" | "receipt" | undefined;
|
|
437
|
+
outputFormat?: "raw" | "json" | "markdown" | "csv" | undefined;
|
|
438
|
+
language?: string | undefined;
|
|
439
|
+
}>;
|
|
440
|
+
type ExtractFromImageInput = z.infer<typeof ExtractFromImageInput>;
|
|
441
|
+
declare const extractFromImage: Skill<{
|
|
442
|
+
image: string;
|
|
443
|
+
extract?: "code" | "text" | "data" | "table" | "diagram" | "form" | "receipt" | undefined;
|
|
444
|
+
outputFormat?: "raw" | "json" | "markdown" | "csv" | undefined;
|
|
445
|
+
language?: string | undefined;
|
|
446
|
+
}, string>;
|
|
447
|
+
//#endregion
|
|
448
|
+
//#region src/skills/builtin/read-aloud.d.ts
|
|
449
|
+
declare const ReadAloudInput: z.ZodObject<{
|
|
450
|
+
/** File path to read, or text content if no file */
|
|
451
|
+
content: z.ZodString;
|
|
452
|
+
/** Treat content as file path (default: auto-detect) */
|
|
453
|
+
isFile: z.ZodOptional<z.ZodBoolean>;
|
|
454
|
+
/** Voice ID */
|
|
455
|
+
voice: z.ZodDefault<z.ZodEnum<["af_heart", "af_bella", "af_nicole", "am_fenrir", "am_michael", "bf_emma", "bm_george"]>>;
|
|
456
|
+
/** Speech speed */
|
|
457
|
+
speed: z.ZodDefault<z.ZodNumber>;
|
|
458
|
+
/** Maximum characters to read (default: 5000) */
|
|
459
|
+
maxLength: z.ZodDefault<z.ZodNumber>;
|
|
460
|
+
/** Summarize if content exceeds maxLength instead of truncating */
|
|
461
|
+
summarizeIfLong: z.ZodDefault<z.ZodBoolean>;
|
|
462
|
+
}, "strip", z.ZodTypeAny, {
|
|
463
|
+
content: string;
|
|
464
|
+
voice: "af_heart" | "af_bella" | "af_nicole" | "am_fenrir" | "am_michael" | "bf_emma" | "bm_george";
|
|
465
|
+
speed: number;
|
|
466
|
+
maxLength: number;
|
|
467
|
+
summarizeIfLong: boolean;
|
|
468
|
+
isFile?: boolean | undefined;
|
|
469
|
+
}, {
|
|
470
|
+
content: string;
|
|
471
|
+
isFile?: boolean | undefined;
|
|
472
|
+
voice?: "af_heart" | "af_bella" | "af_nicole" | "am_fenrir" | "am_michael" | "bf_emma" | "bm_george" | undefined;
|
|
473
|
+
speed?: number | undefined;
|
|
474
|
+
maxLength?: number | undefined;
|
|
475
|
+
summarizeIfLong?: boolean | undefined;
|
|
476
|
+
}>;
|
|
477
|
+
type ReadAloudInput = z.infer<typeof ReadAloudInput>;
|
|
478
|
+
declare const readAloud: Skill<{
|
|
479
|
+
content: string;
|
|
480
|
+
isFile?: boolean | undefined;
|
|
481
|
+
voice?: "af_heart" | "af_bella" | "af_nicole" | "am_fenrir" | "am_michael" | "bf_emma" | "bm_george" | undefined;
|
|
482
|
+
speed?: number | undefined;
|
|
483
|
+
maxLength?: number | undefined;
|
|
484
|
+
summarizeIfLong?: boolean | undefined;
|
|
485
|
+
}, string>;
|
|
486
|
+
//#endregion
|
|
259
487
|
//#region src/skills/builtin/review.d.ts
|
|
260
488
|
declare const ReviewInput: z.ZodObject<{
|
|
261
489
|
/** Code to review */
|
|
@@ -266,18 +494,47 @@ declare const ReviewInput: z.ZodObject<{
|
|
|
266
494
|
format: z.ZodDefault<z.ZodEnum<["inline", "summary", "detailed"]>>;
|
|
267
495
|
}, "strip", z.ZodTypeAny, {
|
|
268
496
|
code: string;
|
|
269
|
-
format: "detailed" | "inline" | "summary";
|
|
270
497
|
focus: ("security" | "performance" | "style" | "bugs" | "all")[];
|
|
498
|
+
format: "detailed" | "inline" | "summary";
|
|
271
499
|
}, {
|
|
272
500
|
code: string;
|
|
273
|
-
format?: "detailed" | "inline" | "summary" | undefined;
|
|
274
501
|
focus?: ("security" | "performance" | "style" | "bugs" | "all")[] | undefined;
|
|
502
|
+
format?: "detailed" | "inline" | "summary" | undefined;
|
|
275
503
|
}>;
|
|
276
504
|
type ReviewInput = z.infer<typeof ReviewInput>;
|
|
277
505
|
declare const review: Skill<{
|
|
278
506
|
code: string;
|
|
279
|
-
format?: "detailed" | "inline" | "summary" | undefined;
|
|
280
507
|
focus?: ("security" | "performance" | "style" | "bugs" | "all")[] | undefined;
|
|
508
|
+
format?: "detailed" | "inline" | "summary" | undefined;
|
|
509
|
+
}, string>;
|
|
510
|
+
//#endregion
|
|
511
|
+
//#region src/skills/builtin/speak.d.ts
|
|
512
|
+
declare const SpeakInput: z.ZodObject<{
|
|
513
|
+
/** Text to speak */
|
|
514
|
+
text: z.ZodString;
|
|
515
|
+
/** Voice ID (default: af_heart) */
|
|
516
|
+
voice: z.ZodDefault<z.ZodEnum<["af_heart", "af_bella", "af_nicole", "af_sarah", "am_fenrir", "am_michael", "bf_emma", "bf_isabella", "bm_george", "bm_lewis"]>>;
|
|
517
|
+
/** Speech speed 0.5-2.0 (default: 1.0) */
|
|
518
|
+
speed: z.ZodDefault<z.ZodNumber>;
|
|
519
|
+
/** Save to file instead of playing */
|
|
520
|
+
output: z.ZodOptional<z.ZodString>;
|
|
521
|
+
}, "strip", z.ZodTypeAny, {
|
|
522
|
+
text: string;
|
|
523
|
+
voice: "af_heart" | "af_bella" | "af_nicole" | "am_fenrir" | "am_michael" | "bf_emma" | "bm_george" | "af_sarah" | "bf_isabella" | "bm_lewis";
|
|
524
|
+
speed: number;
|
|
525
|
+
output?: string | undefined;
|
|
526
|
+
}, {
|
|
527
|
+
text: string;
|
|
528
|
+
voice?: "af_heart" | "af_bella" | "af_nicole" | "am_fenrir" | "am_michael" | "bf_emma" | "bm_george" | "af_sarah" | "bf_isabella" | "bm_lewis" | undefined;
|
|
529
|
+
speed?: number | undefined;
|
|
530
|
+
output?: string | undefined;
|
|
531
|
+
}>;
|
|
532
|
+
type SpeakInput = z.infer<typeof SpeakInput>;
|
|
533
|
+
declare const speak: Skill<{
|
|
534
|
+
text: string;
|
|
535
|
+
voice?: "af_heart" | "af_bella" | "af_nicole" | "am_fenrir" | "am_michael" | "bf_emma" | "bm_george" | "af_sarah" | "bf_isabella" | "bm_lewis" | undefined;
|
|
536
|
+
speed?: number | undefined;
|
|
537
|
+
output?: string | undefined;
|
|
281
538
|
}, string>;
|
|
282
539
|
//#endregion
|
|
283
540
|
//#region src/skills/builtin/summarize.d.ts
|
|
@@ -291,22 +548,22 @@ declare const SummarizeInput: z.ZodObject<{
|
|
|
291
548
|
/** Focus areas */
|
|
292
549
|
focus: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
293
550
|
}, "strip", z.ZodTypeAny, {
|
|
294
|
-
content: string;
|
|
295
551
|
length: "short" | "medium" | "long";
|
|
552
|
+
content: string;
|
|
296
553
|
format: "paragraph" | "bullets";
|
|
297
554
|
focus?: string[] | undefined;
|
|
298
555
|
}, {
|
|
299
556
|
content: string;
|
|
300
557
|
length?: "short" | "medium" | "long" | undefined;
|
|
301
|
-
format?: "paragraph" | "bullets" | undefined;
|
|
302
558
|
focus?: string[] | undefined;
|
|
559
|
+
format?: "paragraph" | "bullets" | undefined;
|
|
303
560
|
}>;
|
|
304
561
|
type SummarizeInput = z.infer<typeof SummarizeInput>;
|
|
305
562
|
declare const summarize: Skill<{
|
|
306
563
|
content: string;
|
|
307
564
|
length?: "short" | "medium" | "long" | undefined;
|
|
308
|
-
format?: "paragraph" | "bullets" | undefined;
|
|
309
565
|
focus?: string[] | undefined;
|
|
566
|
+
format?: "paragraph" | "bullets" | undefined;
|
|
310
567
|
}, string>;
|
|
311
568
|
//#endregion
|
|
312
569
|
//#region src/skills/builtin/test.d.ts
|
|
@@ -318,8 +575,8 @@ declare const TestInput: z.ZodObject<{
|
|
|
318
575
|
/** Test style */
|
|
319
576
|
style: z.ZodDefault<z.ZodEnum<["unit", "integration", "e2e"]>>;
|
|
320
577
|
}, "strip", z.ZodTypeAny, {
|
|
321
|
-
style: "unit" | "integration" | "e2e";
|
|
322
578
|
code: string;
|
|
579
|
+
style: "unit" | "integration" | "e2e";
|
|
323
580
|
framework: "jest" | "vitest" | "mocha" | "playwright";
|
|
324
581
|
}, {
|
|
325
582
|
code: string;
|
|
@@ -357,6 +614,40 @@ declare const title: Skill<{
|
|
|
357
614
|
maxLength?: number | undefined;
|
|
358
615
|
}, string>;
|
|
359
616
|
//#endregion
|
|
617
|
+
//#region src/skills/builtin/transcribe.d.ts
|
|
618
|
+
declare const TranscribeInput: z.ZodObject<{
|
|
619
|
+
/** Audio file path (WAV, MP3, etc.) or URL */
|
|
620
|
+
audio: z.ZodString;
|
|
621
|
+
/** STT model ID (default: whisper-tiny.en) */
|
|
622
|
+
model: z.ZodDefault<z.ZodEnum<["whisper-tiny.en", "whisper-base.en", "whisper-small.en", "whisper-large-v3-turbo"]>>;
|
|
623
|
+
/** Language hint for multilingual models */
|
|
624
|
+
language: z.ZodOptional<z.ZodString>;
|
|
625
|
+
/** Include timestamps in output */
|
|
626
|
+
timestamps: z.ZodDefault<z.ZodBoolean>;
|
|
627
|
+
/** Save transcription to file */
|
|
628
|
+
output: z.ZodOptional<z.ZodString>;
|
|
629
|
+
}, "strip", z.ZodTypeAny, {
|
|
630
|
+
audio: string;
|
|
631
|
+
model: "whisper-tiny.en" | "whisper-base.en" | "whisper-small.en" | "whisper-large-v3-turbo";
|
|
632
|
+
timestamps: boolean;
|
|
633
|
+
language?: string | undefined;
|
|
634
|
+
output?: string | undefined;
|
|
635
|
+
}, {
|
|
636
|
+
audio: string;
|
|
637
|
+
language?: string | undefined;
|
|
638
|
+
output?: string | undefined;
|
|
639
|
+
model?: "whisper-tiny.en" | "whisper-base.en" | "whisper-small.en" | "whisper-large-v3-turbo" | undefined;
|
|
640
|
+
timestamps?: boolean | undefined;
|
|
641
|
+
}>;
|
|
642
|
+
type TranscribeInput = z.infer<typeof TranscribeInput>;
|
|
643
|
+
declare const transcribe: Skill<{
|
|
644
|
+
audio: string;
|
|
645
|
+
language?: string | undefined;
|
|
646
|
+
output?: string | undefined;
|
|
647
|
+
model?: "whisper-tiny.en" | "whisper-base.en" | "whisper-small.en" | "whisper-large-v3-turbo" | undefined;
|
|
648
|
+
timestamps?: boolean | undefined;
|
|
649
|
+
}, string>;
|
|
650
|
+
//#endregion
|
|
360
651
|
//#region src/skills/builtin/translate.d.ts
|
|
361
652
|
declare const TranslateInput: z.ZodObject<{
|
|
362
653
|
/** Text to translate */
|
|
@@ -386,5 +677,5 @@ declare const translate: Skill<{
|
|
|
386
677
|
preserveFormatting?: boolean | undefined;
|
|
387
678
|
}, string>;
|
|
388
679
|
//#endregion
|
|
389
|
-
export { type CommitInput, type ExplainInput, type ExtractInput, type LoadSkillsOptions, type ReviewInput, type Skill, type SkillContext, type SkillDefinition, type SkillInfo, type SkillRegistry, type SummarizeInput, type TestInput, type TitleInput, type TranslateInput, clearSkills, commit, defineSkill, explain, extract, getAllSkillInfo, getSkillInfo, hasSkill, listSkills, loadProjectSkills, loadSkill, loadSkillPackage, loadSkills, removeSkill, review, summarize, test, title, translate, useSkill };
|
|
680
|
+
export { type AnalyzeScreenshotInput, type AnnounceInput, type CaptionImageInput, type CommitInput, type CompareImagesInput, type DescribeImageInput, type ExplainInput, type ExtractFromImageInput, type ExtractInput, type LoadSkillsOptions, type ReadAloudInput, type ReviewInput, type Skill, type SkillContext, type SkillDefinition, type SkillInfo, type SkillRegistry, type SpeakInput, type SummarizeInput, type TestInput, type TitleInput, type TranscribeInput, type TranslateInput, analyzeScreenshot, announce, captionImage, clearSkills, commit, compareImages, defineSkill, describeImage, explain, extract, extractFromImage, getAllSkillInfo, getSkillInfo, hasSkill, listSkills, loadProjectSkills, loadSkill, loadSkillPackage, loadSkills, readAloud, removeSkill, review, speak, summarize, test, title, transcribe, translate, useSkill };
|
|
390
681
|
//# sourceMappingURL=index.d.mts.map
|