arcie 0.1.2 → 0.1.4
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 +34 -6
- package/dist/agent/index.d.ts +6 -3
- package/dist/agent/index.js +6 -6
- package/dist/agent/index.js.map +1 -1
- package/dist/auth/index.d.ts +6 -5
- package/dist/auth/index.js +8 -17
- package/dist/auth/index.js.map +1 -1
- package/dist/channels/index.d.ts +8 -5
- package/dist/channels/index.js +10 -12
- package/dist/channels/index.js.map +1 -1
- package/dist/chunk-2ZSKZYWK.js +1901 -0
- package/dist/chunk-2ZSKZYWK.js.map +1 -0
- package/dist/chunk-3CNQ6HQV.js +12 -0
- package/dist/chunk-3CNQ6HQV.js.map +1 -0
- package/dist/chunk-4L7WVCTU.js +12 -0
- package/dist/chunk-4L7WVCTU.js.map +1 -0
- package/dist/chunk-6XETPLIF.js +176 -0
- package/dist/chunk-6XETPLIF.js.map +1 -0
- package/dist/chunk-CKHBEZCT.js +24 -0
- package/dist/chunk-CKHBEZCT.js.map +1 -0
- package/dist/chunk-FQ7KDNV5.js +12 -0
- package/dist/chunk-FQ7KDNV5.js.map +1 -0
- package/dist/chunk-L3BTL5FM.js +39 -0
- package/dist/chunk-L3BTL5FM.js.map +1 -0
- package/dist/chunk-LQC65UHE.js +34 -0
- package/dist/chunk-LQC65UHE.js.map +1 -0
- package/dist/chunk-PHTJLJOV.js +25 -0
- package/dist/chunk-PHTJLJOV.js.map +1 -0
- package/dist/chunk-QE46QFID.js +92 -0
- package/dist/chunk-QE46QFID.js.map +1 -0
- package/dist/chunk-WAD7VLNI.js +51 -0
- package/dist/chunk-WAD7VLNI.js.map +1 -0
- package/dist/chunk-ZJNHQXMO.js +20 -0
- package/dist/chunk-ZJNHQXMO.js.map +1 -0
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.js +252 -36
- package/dist/cli/index.js.map +1 -1
- package/dist/context/index.d.ts +14 -11
- package/dist/context/index.js +22 -37
- package/dist/context/index.js.map +1 -1
- package/dist/discover/index.d.ts +17 -7
- package/dist/discover/index.js +6 -132
- package/dist/discover/index.js.map +1 -1
- package/dist/hooks/index.d.ts +6 -3
- package/dist/hooks/index.js +6 -6
- package/dist/hooks/index.js.map +1 -1
- package/dist/index-b4NcDl3m.d.ts +136 -0
- package/dist/index.d.ts +297 -18
- package/dist/index.js +158 -13
- package/dist/index.js.map +1 -1
- package/dist/instructions/index.d.ts +7 -4
- package/dist/instructions/index.js +8 -32
- package/dist/instructions/index.js.map +1 -1
- package/dist/protocol/events.d.ts +47 -39
- package/dist/protocol/events.js +46 -45
- package/dist/protocol/events.js.map +1 -1
- package/dist/runner/index.d.ts +4 -18
- package/dist/runner/index.js +10 -277
- package/dist/runner/index.js.map +1 -1
- package/dist/schedules/index.d.ts +6 -3
- package/dist/schedules/index.js +6 -6
- package/dist/schedules/index.js.map +1 -1
- package/dist/skills/index.d.ts +7 -4
- package/dist/skills/index.js +8 -27
- package/dist/skills/index.js.map +1 -1
- package/dist/tools/index.d.ts +13 -3
- package/dist/tools/index.js +8 -9
- package/dist/tools/index.js.map +1 -1
- package/dist/types-BxOQTzx1.d.ts +151 -0
- package/docs/getting-started.md +2 -2
- package/docs/index.md +3 -2
- package/docs/project-layout.md +2 -2
- package/docs/subagents.md +95 -0
- package/package.json +15 -10
- package/templates/default/agent/agent.ts +2 -2
- package/templates/default/package.json +3 -3
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/channels/index.d.ts.map +0 -1
- package/dist/cli/banner.d.ts +0 -2
- package/dist/cli/banner.d.ts.map +0 -1
- package/dist/cli/banner.js +0 -10
- package/dist/cli/banner.js.map +0 -1
- package/dist/cli/build.d.ts +0 -5
- package/dist/cli/build.d.ts.map +0 -1
- package/dist/cli/build.js +0 -54
- package/dist/cli/build.js.map +0 -1
- package/dist/cli/dev.d.ts +0 -5
- package/dist/cli/dev.d.ts.map +0 -1
- package/dist/cli/dev.js +0 -74
- package/dist/cli/dev.js.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/init.d.ts +0 -4
- package/dist/cli/init.d.ts.map +0 -1
- package/dist/cli/init.js +0 -75
- package/dist/cli/init.js.map +0 -1
- package/dist/context/index.d.ts.map +0 -1
- package/dist/discover/index.d.ts.map +0 -1
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/instructions/index.d.ts.map +0 -1
- package/dist/loader.d.ts +0 -7
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -102
- package/dist/loader.js.map +0 -1
- package/dist/protocol/events.d.ts.map +0 -1
- package/dist/runner/index.d.ts.map +0 -1
- package/dist/schedules/index.d.ts.map +0 -1
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/types.d.ts +0 -118
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACzD,IAAI,OAAO,GAAG,OAAO,CAAC;AACtB,IAAI,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AACxB,CAAC;AAAC,MAAM,CAAC,CAAA,CAAC;AAEV,UAAU,EAAE,CAAC;AAEb,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,iEAAiE,CAAC;KAC9E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8BAA8B,CAAC;KAC3C,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC5C,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,EAAE,SAAS,CAAC;KAC/E,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,CAAC;KACxD,MAAM,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,OAAO,CAAC;KAChE,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,OAAO,CAAC;KAChE,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,QAAQ,CAAC;KACxD,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"sources":["../../src/cli/index.ts","../../src/cli/init.ts","../../src/cli/dev.ts","../../src/cli/banner.ts","../../src/cli/build.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { Command } from \"commander\";\nimport { initCommand } from \"./init\";\nimport { devCommand } from \"./dev\";\nimport { buildCommand } from \"./build\";\nimport { showBanner } from \"./banner\";\nimport { readFileSync } from \"node:fs\";\nimport { resolve, dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pkgPath = resolve(__dirname, \"../../package.json\");\nlet version = \"0.1.0\";\ntry {\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf-8\"));\n version = pkg.version;\n} catch {}\n\nshowBanner();\n\nconst program = new Command();\n\nprogram\n .name(\"arcie\")\n .description(\"Arcie — the electronic line, build agents at the speed of light\")\n .version(version);\n\nprogram\n .command(\"init\")\n .description(\"Scaffold a new agent project\")\n .argument(\"[name]\", \"Project directory name\")\n .option(\"--template <name>\", \"Template to use (default, agent-only)\", \"default\")\n .action(initCommand);\n\nprogram\n .command(\"dev\")\n .description(\"Run the agent locally\")\n .option(\"-p, --port <port>\", \"Port to listen on\", \"3000\")\n .option(\"--agent-dir <path>\", \"Path to agent directory\", \"agent\")\n .action(devCommand);\n\nprogram\n .command(\"build\")\n .description(\"Compile the agent for production\")\n .option(\"--agent-dir <path>\", \"Path to agent directory\", \"agent\")\n .option(\"--out-dir <path>\", \"Output directory\", \".arcie\")\n .action(buildCommand);\n\nprogram.parse(process.argv);\n","import { mkdirSync, writeFileSync, existsSync, readFileSync, readdirSync, statSync, copyFileSync } from \"node:fs\";\nimport { resolve, join, dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst TEMPLATES_DIR = resolve(__dirname, \"../../templates\");\n\nexport async function initCommand(\n name: string | undefined,\n options: { template: string }\n): Promise<void> {\n const targetDir = name\n ? resolve(process.cwd(), name)\n : resolve(process.cwd(), \".\");\n\n if (existsSync(targetDir) && name) {\n console.error(`Directory already exists: ${targetDir}`);\n process.exit(1);\n }\n\n const templateDir = resolve(TEMPLATES_DIR, options.template);\n if (!existsSync(templateDir)) {\n console.error(`Template not found: ${options.template}`);\n process.exit(1);\n }\n\n console.log(`\\n Scaffolding agent in ${targetDir}...\\n`);\n\n copyTemplate(templateDir, targetDir);\n\n if (name) {\n updatePackageJson(targetDir, name);\n }\n\n console.log(` Done! Created agent in ${targetDir}`);\n console.log(`\\n Next steps:`);\n console.log(` cd ${name || \".\"}`);\n console.log(` npm install`);\n console.log(` npm run dev`);\n console.log();\n}\n\nfunction copyTemplate(src: string, dest: string): void {\n const entries = collectFiles(src);\n\n for (const entry of entries) {\n const relative = entry.replace(src, \"\").replace(/^\\//, \"\");\n const destPath = join(dest, relative);\n\n if (entry.endsWith(\".gitkeep\")) {\n const parentDir = destPath.replace(\"/.gitkeep\", \"\");\n mkdirSync(parentDir, { recursive: true });\n writeFileSync(join(parentDir, \".gitkeep\"), \"\");\n continue;\n }\n\n mkdirSync(dirname(destPath), { recursive: true });\n\n if (entry.endsWith(\".ts\") || entry.endsWith(\".md\") || entry.endsWith(\".json\")) {\n const content = readFileSync(entry, \"utf-8\");\n writeFileSync(destPath, content);\n } else {\n copyFileSync(entry, destPath);\n }\n }\n}\n\nfunction collectFiles(dir: string): string[] {\n const files: string[] = [];\n const entries = readdirSync(dir);\n\n for (const entry of entries) {\n const fullPath = join(dir, entry);\n const stat = statSync(fullPath);\n if (stat.isDirectory()) {\n files.push(...collectFiles(fullPath));\n } else {\n files.push(fullPath);\n }\n }\n\n return files;\n}\n\nfunction updatePackageJson(targetDir: string, projectName: string): void {\n const pkgPath = join(targetDir, \"package.json\");\n\n if (existsSync(pkgPath)) {\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf-8\"));\n pkg.name = projectName;\n writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + \"\\n\");\n }\n}\n","import { createServer } from \"node:http\";\nimport { resolve } from \"node:path\";\nimport { loadAgent } from \"../loader\";\nimport { discoverAgent } from \"../discover/index\";\nimport { streamAgent } from \"../runner/index\";\nimport { showBanner } from \"./banner\";\n\nexport async function devCommand(options: {\n port: string;\n agentDir: string;\n}): Promise<void> {\n const port = parseInt(options.port, 10);\n const agentDirPath = resolve(process.cwd(), options.agentDir);\n\n showBanner();\n\n const { agent: discovered, diagnostics } = discoverAgent(agentDirPath);\n\n if (diagnostics.some((d) => d.severity === \"error\")) {\n for (const d of diagnostics) {\n console.error(` ✖ ${d.code}: ${d.message}`);\n }\n process.exit(1);\n }\n\n for (const d of diagnostics) {\n console.warn(` ⚠ ${d.code}: ${d.message}`);\n }\n\n console.log(` Agent: ${agentDirPath}`);\n console.log(` Server: http://localhost:${port}`);\n console.log();\n\n if (discovered.agentConfig) {\n try {\n const agent = await loadAgent(agentDirPath);\n console.log(` Model: ${agent.manifest.config.model}`);\n console.log(` Tools: ${Object.keys(agent.manifest.tools).length}`);\n console.log();\n } catch {}\n }\n\n const server = createServer(async (req, res) => {\n if (req.method === \"POST\" && req.url === \"/\") {\n let body = \"\";\n for await (const chunk of req) body += chunk;\n\n try {\n const { message, stream } = JSON.parse(body);\n\n if (stream) {\n res.writeHead(200, {\n \"Content-Type\": \"application/x-ndjson\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n });\n\n for await (const event of streamAgent(agentDirPath, message)) {\n res.write(JSON.stringify(event) + \"\\n\");\n }\n res.end();\n } else {\n res.writeHead(200, { \"Content-Type\": \"application/json\" });\n for await (const _event of streamAgent(agentDirPath, message)) {}\n res.end(JSON.stringify({ status: \"ok\" }));\n }\n } catch (err) {\n res.writeHead(500, { \"Content-Type\": \"application/json\" });\n res.end(JSON.stringify({ error: String(err) }));\n }\n } else {\n res.writeHead(404);\n res.end(\"Not found\");\n }\n });\n\n server.listen(port, () => {\n console.log(` Listening on http://localhost:${port}`);\n console.log(` POST / with { \"message\": \"hello\" }`);\n console.log();\n });\n}\n","export function showBanner(): void {\n console.log();\n console.log(\" ╔══════════════════════════════════╗\");\n console.log(\" ║ Arcie ║\");\n console.log(\" ║ The electronic line — build ║\");\n console.log(\" ║ agents at the speed of light. ║\");\n console.log(\" ╚══════════════════════════════════╝\");\n console.log();\n}\n","import { mkdirSync, writeFileSync, existsSync } from \"node:fs\";\nimport { resolve, join } from \"node:path\";\nimport { loadAgent } from \"../loader\";\nimport { discoverAgent } from \"../discover/index\";\n\nexport async function buildCommand(options: {\n agentDir: string;\n outDir: string;\n}): Promise<void> {\n const agentDirPath = resolve(process.cwd(), options.agentDir);\n const outDir = resolve(process.cwd(), options.outDir);\n\n console.log(`\\n Building agent...\\n`);\n\n if (!existsSync(agentDirPath)) {\n console.error(` Agent directory not found: ${agentDirPath}`);\n process.exit(1);\n }\n\n const { agent: discovered, diagnostics } = discoverAgent(agentDirPath);\n\n if (diagnostics.some((d) => d.severity === \"error\")) {\n for (const d of diagnostics) {\n console.error(` ✖ ${d.code}: ${d.message}`);\n }\n process.exit(1);\n }\n\n try {\n const agent = await loadAgent(agentDirPath);\n\n mkdirSync(outDir, { recursive: true });\n\n const manifest = {\n config: agent.manifest.config,\n instructions: agent.manifest.instructions,\n tools: Object.keys(agent.manifest.tools),\n skills: Object.keys(agent.manifest.skills),\n hooks: Object.keys(agent.manifest.hooks),\n channels: Object.keys(agent.manifest.channels),\n connections: Object.keys(agent.manifest.connections),\n schedules: Object.keys(agent.manifest.schedules),\n subagents: Object.fromEntries(\n Object.entries(agent.manifest.subagents).map(([id, sub]) => [\n id,\n { description: sub.config.description, tools: Object.keys(sub.tools) },\n ])\n ),\n discovered: {\n tools: discovered.tools.map((t) => t.name),\n skills: discovered.skills.map((s) => s.name),\n hooks: discovered.hooks.map((h) => h.name),\n channels: discovered.channels.map((c) => c.name),\n connections: discovered.connections.map((c) => c.name),\n schedules: discovered.schedules.map((s) => s.name),\n subagents: discovered.subagents.map((s) => s.id),\n },\n session: agent.manifest.session,\n policy: agent.manifest.policy,\n };\n\n writeFileSync(\n join(outDir, \"manifest.json\"),\n JSON.stringify(manifest, null, 2)\n );\n\n console.log(` Written to ${outDir}/manifest.json`);\n console.log(` Tools: ${manifest.tools.length}`);\n console.log(` Skills: ${manifest.skills.length}`);\n console.log(` Channels: ${manifest.channels.length}`);\n console.log(` Connections: ${manifest.connections.length}`);\n console.log(` Schedules: ${manifest.schedules.length}`);\n console.log(` Subagents: ${Object.keys(manifest.subagents).length}`);\n console.log(`\\n Done.\\n`);\n } catch (err) {\n console.error(` Build failed:`, err);\n process.exit(1);\n }\n}\n"],"mappings":"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","names":["pkgPath","resolve","resolve","mkdirSync","writeFileSync","existsSync","resolve","join","resolve","existsSync","mkdirSync","writeFileSync","join","readFileSync","resolve","dirname","fileURLToPath","__dirname"]}
|
package/dist/context/index.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { S as Session, T as TurnContext } from '../types-BxOQTzx1.js';
|
|
2
|
+
import 'zod';
|
|
3
|
+
|
|
4
|
+
declare function getSession(): Session | null;
|
|
5
|
+
declare function getTurn(): TurnContext | null;
|
|
6
|
+
declare function setSession(session: Session): void;
|
|
7
|
+
declare function setTurn(turn: TurnContext): void;
|
|
8
|
+
declare function getContext<T = unknown>(key: string): T | undefined;
|
|
9
|
+
declare function requireContext<T = unknown>(key: string): T;
|
|
10
|
+
declare function hasContext(key: string): boolean;
|
|
11
|
+
declare function setContext(key: string, value: unknown): void;
|
|
12
|
+
declare function ensureContext<T>(key: string, factory: () => T): T;
|
|
13
|
+
|
|
14
|
+
export { ensureContext, getContext, getSession, getTurn, hasContext, requireContext, setContext, setSession, setTurn };
|
package/dist/context/index.js
CHANGED
|
@@ -1,38 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
return value;
|
|
25
|
-
}
|
|
26
|
-
export function hasContext(key) {
|
|
27
|
-
return sharedContext.has(key);
|
|
28
|
-
}
|
|
29
|
-
export function setContext(key, value) {
|
|
30
|
-
sharedContext.set(key, value);
|
|
31
|
-
}
|
|
32
|
-
export function ensureContext(key, factory) {
|
|
33
|
-
if (!sharedContext.has(key)) {
|
|
34
|
-
sharedContext.set(key, factory());
|
|
35
|
-
}
|
|
36
|
-
return sharedContext.get(key);
|
|
37
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
ensureContext,
|
|
3
|
+
getContext,
|
|
4
|
+
getSession,
|
|
5
|
+
getTurn,
|
|
6
|
+
hasContext,
|
|
7
|
+
requireContext,
|
|
8
|
+
setContext,
|
|
9
|
+
setSession,
|
|
10
|
+
setTurn
|
|
11
|
+
} from "../chunk-WAD7VLNI.js";
|
|
12
|
+
export {
|
|
13
|
+
ensureContext,
|
|
14
|
+
getContext,
|
|
15
|
+
getSession,
|
|
16
|
+
getTurn,
|
|
17
|
+
hasContext,
|
|
18
|
+
requireContext,
|
|
19
|
+
setContext,
|
|
20
|
+
setSession,
|
|
21
|
+
setTurn
|
|
22
|
+
};
|
|
38
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/discover/index.d.ts
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
interface DiscoveredSlot {
|
|
2
2
|
name: string;
|
|
3
3
|
filePath: string;
|
|
4
4
|
type: "markdown" | "module";
|
|
5
5
|
kind: "flat" | "named";
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
/** A subagent is a nested agent directory, not a flat file. */
|
|
8
|
+
interface DiscoveredSubagent {
|
|
9
|
+
id: string;
|
|
10
|
+
root: string;
|
|
11
|
+
agentConfig?: string;
|
|
12
|
+
instructions?: string;
|
|
13
|
+
tools: DiscoveredSlot[];
|
|
14
|
+
skills: DiscoveredSlot[];
|
|
15
|
+
}
|
|
16
|
+
interface DiscoveredAgent {
|
|
8
17
|
root: string;
|
|
9
18
|
agentConfig?: string;
|
|
10
19
|
instructions?: string;
|
|
@@ -14,18 +23,19 @@ export interface DiscoveredAgent {
|
|
|
14
23
|
channels: DiscoveredSlot[];
|
|
15
24
|
schedules: DiscoveredSlot[];
|
|
16
25
|
connections: DiscoveredSlot[];
|
|
17
|
-
subagents:
|
|
26
|
+
subagents: DiscoveredSubagent[];
|
|
18
27
|
lib: DiscoveredSlot[];
|
|
19
28
|
}
|
|
20
|
-
|
|
29
|
+
interface DiscoverDiagnostic {
|
|
21
30
|
code: string;
|
|
22
31
|
message: string;
|
|
23
32
|
severity: "error" | "warning";
|
|
24
33
|
filePath?: string;
|
|
25
34
|
}
|
|
26
|
-
|
|
35
|
+
interface DiscoverResult {
|
|
27
36
|
agent: DiscoveredAgent;
|
|
28
37
|
diagnostics: DiscoverDiagnostic[];
|
|
29
38
|
}
|
|
30
|
-
|
|
31
|
-
|
|
39
|
+
declare function discoverAgent(agentDir: string): DiscoverResult;
|
|
40
|
+
|
|
41
|
+
export { type DiscoverDiagnostic, type DiscoverResult, type DiscoveredAgent, type DiscoveredSlot, type DiscoveredSubagent, discoverAgent };
|
package/dist/discover/index.js
CHANGED
|
@@ -1,133 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const SUPPORTED_EXTENSIONS = new Set([".ts", ".mts", ".cts", ".js", ".mjs", ".cjs"]);
|
|
8
|
-
export function discoverAgent(agentDir) {
|
|
9
|
-
const root = resolve(agentDir);
|
|
10
|
-
const diagnostics = [];
|
|
11
|
-
if (!existsSync(root)) {
|
|
12
|
-
diagnostics.push({
|
|
13
|
-
code: "AGENT_DIR_NOT_FOUND",
|
|
14
|
-
message: `Agent directory not found: ${root}`,
|
|
15
|
-
severity: "error",
|
|
16
|
-
});
|
|
17
|
-
return { agent: { root, tools: [], skills: [], hooks: [], channels: [], schedules: [], connections: [], subagents: [], lib: [] }, diagnostics };
|
|
18
|
-
}
|
|
19
|
-
const entries = readdirSync(root, { withFileTypes: true });
|
|
20
|
-
const agent = {
|
|
21
|
-
root,
|
|
22
|
-
agentConfig: discoverFlatModule(root, "agent", entries, diagnostics),
|
|
23
|
-
instructions: discoverInstructions(root, entries, diagnostics),
|
|
24
|
-
tools: discoverNamedDirectory(root, "tools", entries, TOOL_SLUG, diagnostics),
|
|
25
|
-
skills: discoverNamedDirectory(root, "skills", entries, TOOL_SLUG, diagnostics),
|
|
26
|
-
hooks: discoverNamedDirectory(root, "hooks", entries, HOOK_SLUG, diagnostics),
|
|
27
|
-
channels: discoverNamedDirectory(root, "channels", entries, CHANNEL_SLUG, diagnostics),
|
|
28
|
-
schedules: discoverNamedDirectory(root, "schedules", entries, TOOL_SLUG, diagnostics),
|
|
29
|
-
connections: discoverNamedDirectory(root, "connections", entries, CONNECTION_SLUG, diagnostics),
|
|
30
|
-
subagents: discoverNamedDirectory(root, "subagents", entries, TOOL_SLUG, diagnostics),
|
|
31
|
-
lib: discoverNamedDirectory(root, "lib", entries, TOOL_SLUG, diagnostics),
|
|
32
|
-
};
|
|
33
|
-
return { agent, diagnostics };
|
|
34
|
-
}
|
|
35
|
-
function discoverFlatModule(root, baseName, entries, diagnostics) {
|
|
36
|
-
const candidates = [];
|
|
37
|
-
for (const entry of entries) {
|
|
38
|
-
if (!entry.isFile())
|
|
39
|
-
continue;
|
|
40
|
-
const name = entry.name;
|
|
41
|
-
const ext = extname(name);
|
|
42
|
-
if (!SUPPORTED_EXTENSIONS.has(ext))
|
|
43
|
-
continue;
|
|
44
|
-
if (basename(name, ext) !== baseName)
|
|
45
|
-
continue;
|
|
46
|
-
candidates.push(name);
|
|
47
|
-
}
|
|
48
|
-
if (candidates.length > 1) {
|
|
49
|
-
diagnostics.push({
|
|
50
|
-
code: "MODULE_SLOT_COLLISION",
|
|
51
|
-
message: `Multiple module sources for "${baseName}": ${candidates.join(", ")}`,
|
|
52
|
-
severity: "error",
|
|
53
|
-
filePath: root,
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
if (candidates.length === 0)
|
|
57
|
-
return undefined;
|
|
58
|
-
return join(root, candidates[0]);
|
|
59
|
-
}
|
|
60
|
-
function discoverInstructions(root, entries, diagnostics) {
|
|
61
|
-
const mdCandidate = entries.find(e => e.isFile() && e.name.toLowerCase() === "instructions.md");
|
|
62
|
-
if (mdCandidate)
|
|
63
|
-
return join(root, mdCandidate.name);
|
|
64
|
-
const tsCandidate = entries.find(e => {
|
|
65
|
-
if (!e.isFile())
|
|
66
|
-
return false;
|
|
67
|
-
const ext = extname(e.name);
|
|
68
|
-
return SUPPORTED_EXTENSIONS.has(ext) && basename(e.name, ext) === "instructions";
|
|
69
|
-
});
|
|
70
|
-
if (tsCandidate)
|
|
71
|
-
return join(root, tsCandidate.name);
|
|
72
|
-
const legacyMdCandidate = entries.find(e => e.isFile() && e.name.toLowerCase() === "system.md");
|
|
73
|
-
if (legacyMdCandidate) {
|
|
74
|
-
diagnostics.push({
|
|
75
|
-
code: "DEPRECATED_SYSTEM_SLOT",
|
|
76
|
-
message: `"system.md" is deprecated. Rename to "instructions.md".`,
|
|
77
|
-
severity: "warning",
|
|
78
|
-
filePath: join(root, legacyMdCandidate.name),
|
|
79
|
-
});
|
|
80
|
-
return join(root, legacyMdCandidate.name);
|
|
81
|
-
}
|
|
82
|
-
return undefined;
|
|
83
|
-
}
|
|
84
|
-
function discoverNamedDirectory(root, dirName, entries, slugPattern, diagnostics) {
|
|
85
|
-
const dirEntry = entries.find(e => e.isDirectory() && e.name === dirName);
|
|
86
|
-
if (!dirEntry)
|
|
87
|
-
return [];
|
|
88
|
-
const dirPath = join(root, dirName);
|
|
89
|
-
const slots = [];
|
|
90
|
-
try {
|
|
91
|
-
const files = readdirSync(dirPath, { withFileTypes: true });
|
|
92
|
-
for (const file of files) {
|
|
93
|
-
if (!file.isFile())
|
|
94
|
-
continue;
|
|
95
|
-
const ext = extname(file.name);
|
|
96
|
-
const name = basename(file.name, ext);
|
|
97
|
-
if (file.name === ".gitkeep")
|
|
98
|
-
continue;
|
|
99
|
-
if (ext === ".md") {
|
|
100
|
-
if (!slugPattern.test(name)) {
|
|
101
|
-
diagnostics.push({
|
|
102
|
-
code: "INVALID_SLOT_NAME",
|
|
103
|
-
message: `Invalid ${dirName} name "${name}" — does not match slug pattern.`,
|
|
104
|
-
severity: "warning",
|
|
105
|
-
filePath: join(dirPath, file.name),
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
slots.push({ name, filePath: join(dirPath, file.name), type: "markdown", kind: "named" });
|
|
109
|
-
continue;
|
|
110
|
-
}
|
|
111
|
-
if (SUPPORTED_EXTENSIONS.has(ext)) {
|
|
112
|
-
if (!slugPattern.test(name)) {
|
|
113
|
-
diagnostics.push({
|
|
114
|
-
code: "INVALID_SLOT_NAME",
|
|
115
|
-
message: `Invalid ${dirName} name "${name}" — does not match slug pattern.`,
|
|
116
|
-
severity: "warning",
|
|
117
|
-
filePath: join(dirPath, file.name),
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
slots.push({ name, filePath: join(dirPath, file.name), type: "module", kind: "named" });
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
catch {
|
|
125
|
-
diagnostics.push({
|
|
126
|
-
code: "DIRECTORY_READ_ERROR",
|
|
127
|
-
message: `Could not read directory: ${dirPath}`,
|
|
128
|
-
severity: "error",
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
return slots.sort((a, b) => a.name.localeCompare(b.name));
|
|
132
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
discoverAgent
|
|
3
|
+
} from "../chunk-6XETPLIF.js";
|
|
4
|
+
export {
|
|
5
|
+
discoverAgent
|
|
6
|
+
};
|
|
133
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { H as HookConfig } from '../types-BxOQTzx1.js';
|
|
2
|
+
import 'zod';
|
|
3
|
+
|
|
4
|
+
declare function defineHook(config: HookConfig): HookConfig;
|
|
5
|
+
|
|
6
|
+
export { defineHook };
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
defineHook
|
|
3
|
+
} from "../chunk-3CNQ6HQV.js";
|
|
4
|
+
export {
|
|
5
|
+
defineHook
|
|
6
|
+
};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { T as TurnContext } from './types-BxOQTzx1.js';
|
|
2
|
+
import { StreamEvent } from './protocol/events.js';
|
|
3
|
+
|
|
4
|
+
interface MemoryEntry {
|
|
5
|
+
role: "user" | "assistant" | "tool" | "system";
|
|
6
|
+
content: string;
|
|
7
|
+
timestamp: number;
|
|
8
|
+
turnId?: string;
|
|
9
|
+
score?: number;
|
|
10
|
+
}
|
|
11
|
+
interface Thread {
|
|
12
|
+
id: string;
|
|
13
|
+
resourceId: string;
|
|
14
|
+
title?: string;
|
|
15
|
+
metadata?: Record<string, unknown>;
|
|
16
|
+
createdAt: number;
|
|
17
|
+
updatedAt: number;
|
|
18
|
+
}
|
|
19
|
+
interface DeleteMessagesOptions {
|
|
20
|
+
threadId: string;
|
|
21
|
+
resourceId: string;
|
|
22
|
+
messageIds?: string[];
|
|
23
|
+
beforeTimestamp?: number;
|
|
24
|
+
afterTimestamp?: number;
|
|
25
|
+
}
|
|
26
|
+
interface MemoryQuery {
|
|
27
|
+
resourceId: string;
|
|
28
|
+
threadId: string;
|
|
29
|
+
query?: string;
|
|
30
|
+
limit?: number;
|
|
31
|
+
}
|
|
32
|
+
interface RecallOptions {
|
|
33
|
+
threadId: string;
|
|
34
|
+
resourceId: string;
|
|
35
|
+
page?: number;
|
|
36
|
+
perPage?: number;
|
|
37
|
+
dateRange?: {
|
|
38
|
+
start?: Date;
|
|
39
|
+
end?: Date;
|
|
40
|
+
};
|
|
41
|
+
include?: Array<{
|
|
42
|
+
id: string;
|
|
43
|
+
withPreviousMessages?: number;
|
|
44
|
+
withNextMessages?: number;
|
|
45
|
+
}>;
|
|
46
|
+
vectorSearchString?: string;
|
|
47
|
+
}
|
|
48
|
+
interface RecallResult {
|
|
49
|
+
messages: MemoryEntry[];
|
|
50
|
+
total: number;
|
|
51
|
+
hasMore: boolean;
|
|
52
|
+
}
|
|
53
|
+
interface MemoryStore {
|
|
54
|
+
save(resourceId: string, threadId: string, entries: MemoryEntry[]): Promise<void>;
|
|
55
|
+
load(resourceId: string, threadId: string, limit?: number): Promise<MemoryEntry[]>;
|
|
56
|
+
clear(resourceId: string, threadId: string): Promise<void>;
|
|
57
|
+
search?(resourceId: string, threadId: string, query: string, limit?: number): Promise<MemoryEntry[]>;
|
|
58
|
+
close?(): Promise<void>;
|
|
59
|
+
createThread?(thread: Thread): Promise<void>;
|
|
60
|
+
getThread?(threadId: string, resourceId: string): Promise<Thread | null>;
|
|
61
|
+
listThreads?(resourceId: string): Promise<Thread[]>;
|
|
62
|
+
updateThread?(thread: Partial<Thread> & {
|
|
63
|
+
id: string;
|
|
64
|
+
resourceId: string;
|
|
65
|
+
}): Promise<void>;
|
|
66
|
+
deleteThread?(threadId: string, resourceId: string): Promise<void>;
|
|
67
|
+
deleteMessages?(opts: DeleteMessagesOptions): Promise<number>;
|
|
68
|
+
cloneThread?(source: {
|
|
69
|
+
threadId: string;
|
|
70
|
+
resourceId: string;
|
|
71
|
+
}, dest: {
|
|
72
|
+
threadId: string;
|
|
73
|
+
resourceId: string;
|
|
74
|
+
}): Promise<void>;
|
|
75
|
+
}
|
|
76
|
+
interface MemoryStrategy {
|
|
77
|
+
getInputContext(store: MemoryStore, resourceId: string, threadId: string): Promise<string>;
|
|
78
|
+
recordTurn(store: MemoryStore, resourceId: string, threadId: string, input: string, output: string, toolCalls?: {
|
|
79
|
+
tool: string;
|
|
80
|
+
input: unknown;
|
|
81
|
+
output: unknown;
|
|
82
|
+
}[]): Promise<void>;
|
|
83
|
+
}
|
|
84
|
+
interface InputProcessor {
|
|
85
|
+
name: string;
|
|
86
|
+
processInput(store: MemoryStore, resourceId: string, threadId: string): Promise<string>;
|
|
87
|
+
}
|
|
88
|
+
interface MemoryProcessor extends InputProcessor {
|
|
89
|
+
processOutput?(store: MemoryStore, resourceId: string, threadId: string, input: string, output: string, toolCalls?: {
|
|
90
|
+
tool: string;
|
|
91
|
+
input: unknown;
|
|
92
|
+
output: unknown;
|
|
93
|
+
}[]): Promise<void>;
|
|
94
|
+
}
|
|
95
|
+
interface Embedder {
|
|
96
|
+
embed(text: string): Promise<number[]>;
|
|
97
|
+
embedBatch(texts: string[]): Promise<number[][]>;
|
|
98
|
+
readonly dimensions: number;
|
|
99
|
+
}
|
|
100
|
+
interface VectorStore {
|
|
101
|
+
upsert(namespace: string, vectors: Array<{
|
|
102
|
+
id: string;
|
|
103
|
+
values: number[];
|
|
104
|
+
metadata?: Record<string, unknown>;
|
|
105
|
+
}>): Promise<void>;
|
|
106
|
+
query(namespace: string, vector: number[], options?: {
|
|
107
|
+
topK?: number;
|
|
108
|
+
filter?: Record<string, unknown>;
|
|
109
|
+
}): Promise<Array<{
|
|
110
|
+
id: string;
|
|
111
|
+
score: number;
|
|
112
|
+
metadata?: Record<string, unknown>;
|
|
113
|
+
}>>;
|
|
114
|
+
delete(namespace: string, ids: string[]): Promise<void>;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
interface RunOptions {
|
|
118
|
+
endpoint?: string;
|
|
119
|
+
apiKey?: string;
|
|
120
|
+
maxTurns?: number;
|
|
121
|
+
sessionId?: string;
|
|
122
|
+
resourceId?: string;
|
|
123
|
+
threadId?: string;
|
|
124
|
+
memoryStore?: MemoryStore;
|
|
125
|
+
onEvent?: (event: StreamEvent) => void;
|
|
126
|
+
}
|
|
127
|
+
interface RunResult {
|
|
128
|
+
output: string;
|
|
129
|
+
turns: TurnContext[];
|
|
130
|
+
events: StreamEvent[];
|
|
131
|
+
sessionId: string;
|
|
132
|
+
}
|
|
133
|
+
declare function runAgent(agentDir: string, input: string, options?: RunOptions): Promise<RunResult>;
|
|
134
|
+
declare function streamAgent(agentDir: string, input: string, options?: RunOptions): AsyncGenerator<StreamEvent, void, unknown>;
|
|
135
|
+
|
|
136
|
+
export { type DeleteMessagesOptions as D, type Embedder as E, type MemoryStore as M, type RecallOptions as R, type Thread as T, type VectorStore as V, type MemoryEntry as a, type MemoryStrategy as b, type MemoryProcessor as c, type RecallResult as d, type MemoryQuery as e, type RunOptions as f, type RunResult as g, runAgent as r, streamAgent as s };
|