akm-cli 0.8.0-rc2 → 0.8.0
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/{.github/CHANGELOG.md → CHANGELOG.md} +191 -3
- package/README.md +22 -6
- package/SECURITY.md +93 -0
- package/dist/cli/config-migrate.js +144 -0
- package/dist/cli/config-validate.js +39 -0
- package/dist/cli/confirm.js +73 -0
- package/dist/cli/parse-args.js +93 -3
- package/dist/cli/shared.js +129 -0
- package/dist/cli.js +2141 -1268
- package/dist/commands/add-cli.js +279 -0
- package/dist/commands/agent-dispatch.js +20 -12
- package/dist/commands/agent-support.js +11 -5
- package/dist/commands/completions.js +3 -0
- package/dist/commands/config-cli.js +129 -517
- package/dist/commands/consolidate.js +1533 -144
- package/dist/commands/curate.js +44 -3
- package/dist/commands/db-cli.js +23 -0
- package/dist/commands/distill-promotion-policy.js +5 -3
- package/dist/commands/distill.js +906 -100
- package/dist/commands/env.js +213 -0
- package/dist/commands/eval-cases.js +3 -0
- package/dist/commands/events.js +3 -0
- package/dist/commands/extract-cli.js +127 -0
- package/dist/commands/extract-prompt.js +204 -0
- package/dist/commands/extract.js +477 -0
- package/dist/commands/feedback-cli.js +331 -0
- package/dist/commands/graph.js +260 -5
- package/dist/commands/health.js +977 -51
- package/dist/commands/help/help-accept.md +6 -3
- package/dist/commands/help/help-improve.md +36 -8
- package/dist/commands/help/help-proposals.md +7 -4
- package/dist/commands/help/help-reject.md +5 -2
- package/dist/commands/history.js +51 -16
- package/dist/commands/improve-auto-accept.js +97 -0
- package/dist/commands/improve-cli.js +236 -0
- package/dist/commands/improve-profiles.js +184 -0
- package/dist/commands/improve-result-file.js +167 -0
- package/dist/commands/improve.js +1725 -332
- package/dist/commands/info.js +3 -0
- package/dist/commands/init.js +49 -1
- package/dist/commands/installed-stashes.js +6 -23
- package/dist/commands/knowledge.js +3 -0
- package/dist/commands/lint/agent-linter.js +3 -0
- package/dist/commands/lint/base-linter.js +199 -5
- package/dist/commands/lint/command-linter.js +3 -0
- package/dist/commands/lint/default-linter.js +3 -0
- package/dist/commands/lint/env-key-rules.js +154 -0
- package/dist/commands/lint/index.js +92 -3
- package/dist/commands/lint/knowledge-linter.js +3 -0
- package/dist/commands/lint/markdown-insertion.js +343 -0
- package/dist/commands/lint/memory-linter.js +3 -0
- package/dist/commands/lint/registry.js +3 -0
- package/dist/commands/lint/skill-linter.js +3 -0
- package/dist/commands/lint/task-linter.js +15 -12
- package/dist/commands/lint/types.js +3 -0
- package/dist/commands/lint/workflow-linter.js +3 -0
- package/dist/commands/lint.js +3 -0
- package/dist/commands/migration-help.js +5 -2
- package/dist/commands/proposal-drain-policies.js +128 -0
- package/dist/commands/proposal-drain.js +477 -0
- package/dist/commands/proposal.js +60 -6
- package/dist/commands/propose.js +24 -19
- package/dist/commands/reflect.js +1004 -94
- package/dist/commands/registry-cli.js +150 -0
- package/dist/commands/registry-search.js +3 -0
- package/dist/commands/remember-cli.js +257 -0
- package/dist/commands/remember.js +15 -6
- package/dist/commands/schema-repair.js +88 -15
- package/dist/commands/search.js +99 -14
- package/dist/commands/secret.js +173 -0
- package/dist/commands/self-update.js +3 -0
- package/dist/commands/show.js +32 -13
- package/dist/commands/source-add.js +7 -35
- package/dist/commands/source-clone.js +3 -0
- package/dist/commands/source-manage.js +3 -0
- package/dist/commands/tasks.js +161 -95
- package/dist/commands/url-checker.js +3 -0
- package/dist/core/action-contributors.js +3 -0
- package/dist/core/asset-ref.js +13 -2
- package/dist/core/asset-registry.js +9 -2
- package/dist/core/asset-serialize.js +88 -0
- package/dist/core/asset-spec.js +61 -5
- package/dist/core/common.js +93 -5
- package/dist/core/concurrent.js +3 -0
- package/dist/core/config-io.js +347 -0
- package/dist/core/config-migration.js +622 -0
- package/dist/core/config-schema.js +558 -0
- package/dist/core/config-sources.js +108 -0
- package/dist/core/config-types.js +4 -0
- package/dist/core/config-walker.js +337 -0
- package/dist/core/config.js +366 -1077
- package/dist/core/errors.js +42 -20
- package/dist/core/events.js +31 -25
- package/dist/core/file-lock.js +104 -0
- package/dist/core/frontmatter.js +75 -10
- package/dist/core/lesson-lint.js +3 -0
- package/dist/core/markdown.js +3 -0
- package/dist/core/memory-belief.js +62 -0
- package/dist/core/memory-contradiction-detect.js +274 -0
- package/dist/core/memory-improve.js +142 -14
- package/dist/core/parse.js +3 -0
- package/dist/core/paths.js +218 -50
- package/dist/core/proposal-quality-validators.js +380 -0
- package/dist/core/proposal-validators.js +11 -3
- package/dist/core/proposals.js +464 -5
- package/dist/core/state-db.js +349 -56
- package/dist/core/text-truncation.js +107 -0
- package/dist/core/time.js +3 -0
- package/dist/core/tty.js +59 -0
- package/dist/core/warn.js +7 -2
- package/dist/core/write-source.js +12 -0
- package/dist/indexer/db-backup.js +391 -0
- package/dist/indexer/db-search.js +136 -28
- package/dist/indexer/db.js +661 -166
- package/dist/indexer/ensure-index.js +3 -0
- package/dist/indexer/file-context.js +3 -0
- package/dist/indexer/graph-boost.js +162 -40
- package/dist/indexer/graph-db.js +241 -51
- package/dist/indexer/graph-dedup.js +3 -7
- package/dist/indexer/graph-extraction.js +242 -149
- package/dist/indexer/index-context.js +3 -9
- package/dist/indexer/indexer.js +84 -14
- package/dist/indexer/llm-cache.js +24 -19
- package/dist/indexer/manifest.js +3 -0
- package/dist/indexer/matchers.js +184 -11
- package/dist/indexer/memory-inference.js +94 -50
- package/dist/indexer/metadata-contributors.js +3 -0
- package/dist/indexer/metadata.js +110 -50
- package/dist/indexer/path-resolver.js +3 -0
- package/dist/indexer/project-context.js +192 -0
- package/dist/indexer/ranking-contributors.js +134 -7
- package/dist/indexer/ranking.js +8 -1
- package/dist/indexer/search-fields.js +5 -9
- package/dist/indexer/search-hit-enrichers.js +91 -2
- package/dist/indexer/search-source.js +20 -1
- package/dist/indexer/semantic-status.js +4 -1
- package/dist/indexer/staleness-detect.js +447 -0
- package/dist/indexer/usage-events.js +12 -9
- package/dist/indexer/walker.js +3 -0
- package/dist/integrations/agent/builders.js +135 -0
- package/dist/integrations/agent/config.js +121 -401
- package/dist/integrations/agent/detect.js +3 -0
- package/dist/integrations/agent/index.js +6 -14
- package/dist/integrations/agent/model-aliases.js +55 -0
- package/dist/integrations/agent/profiles.js +3 -0
- package/dist/integrations/agent/prompts.js +137 -8
- package/dist/integrations/agent/runner.js +208 -0
- package/dist/integrations/agent/sdk-runner.js +8 -2
- package/dist/integrations/agent/spawn.js +54 -14
- package/dist/integrations/github.js +3 -0
- package/dist/integrations/lockfile.js +22 -51
- package/dist/integrations/session-logs/index.js +4 -0
- package/dist/integrations/session-logs/inline-refs.js +35 -0
- package/dist/integrations/session-logs/pre-filter.js +152 -0
- package/dist/integrations/session-logs/providers/claude-code.js +226 -0
- package/dist/integrations/session-logs/providers/opencode.js +231 -25
- package/dist/integrations/session-logs/types.js +3 -0
- package/dist/llm/call-ai.js +14 -26
- package/dist/llm/client.js +16 -2
- package/dist/llm/embedder.js +20 -29
- package/dist/llm/embedders/cache.js +3 -7
- package/dist/llm/embedders/local.js +42 -1
- package/dist/llm/embedders/remote.js +20 -8
- package/dist/llm/embedders/types.js +3 -7
- package/dist/llm/feature-gate.js +92 -56
- package/dist/llm/graph-extract.js +401 -30
- package/dist/llm/index-passes.js +44 -29
- package/dist/llm/memory-infer.js +30 -2
- package/dist/llm/metadata-enhance.js +3 -7
- package/dist/llm/prompts/extract-session.md +80 -0
- package/dist/llm/prompts/graph-extract-user-prompt.md +24 -1
- package/dist/output/cli-hints-full.md +60 -32
- package/dist/output/cli-hints-short.md +10 -7
- package/dist/output/cli-hints.js +5 -2
- package/dist/output/context.js +60 -8
- package/dist/output/renderers.js +170 -194
- package/dist/output/shapes/curate.js +56 -0
- package/dist/output/shapes/distill.js +10 -0
- package/dist/output/shapes/env-list.js +19 -0
- package/dist/output/shapes/events.js +11 -0
- package/dist/output/shapes/helpers.js +424 -0
- package/dist/output/shapes/history.js +7 -0
- package/dist/output/shapes/passthrough.js +105 -0
- package/dist/output/shapes/proposal-accept.js +7 -0
- package/dist/output/shapes/proposal-diff.js +7 -0
- package/dist/output/shapes/proposal-list.js +7 -0
- package/dist/output/shapes/proposal-producer.js +11 -0
- package/dist/output/shapes/proposal-reject.js +7 -0
- package/dist/output/shapes/proposal-show.js +7 -0
- package/dist/output/shapes/registry-search.js +6 -0
- package/dist/output/shapes/registry.js +30 -0
- package/dist/output/shapes/search.js +6 -0
- package/dist/output/shapes/secret-list.js +19 -0
- package/dist/output/shapes/show.js +6 -0
- package/dist/output/shapes/vault-list.js +19 -0
- package/dist/output/shapes.js +51 -549
- package/dist/output/text/add.js +6 -0
- package/dist/output/text/clone.js +6 -0
- package/dist/output/text/config.js +6 -0
- package/dist/output/text/curate.js +6 -0
- package/dist/output/text/distill.js +7 -0
- package/dist/output/text/enable-disable.js +7 -0
- package/dist/output/text/events.js +10 -0
- package/dist/output/text/feedback.js +6 -0
- package/dist/output/text/helpers.js +1059 -0
- package/dist/output/text/history.js +7 -0
- package/dist/output/text/import.js +6 -0
- package/dist/output/text/index.js +6 -0
- package/dist/output/text/info.js +6 -0
- package/dist/output/text/init.js +6 -0
- package/dist/output/text/list.js +6 -0
- package/dist/output/text/proposal-producer.js +8 -0
- package/dist/output/text/proposal.js +12 -0
- package/dist/output/text/registry-commands.js +11 -0
- package/dist/output/text/registry.js +30 -0
- package/dist/output/text/remember.js +6 -0
- package/dist/output/text/remove.js +6 -0
- package/dist/output/text/save.js +6 -0
- package/dist/output/text/search.js +6 -0
- package/dist/output/text/show.js +6 -0
- package/dist/output/text/update.js +6 -0
- package/dist/output/text/upgrade.js +6 -0
- package/dist/output/text/vault.js +16 -0
- package/dist/output/text/wiki.js +15 -0
- package/dist/output/text/workflow.js +14 -0
- package/dist/output/text.js +44 -1329
- package/dist/registry/build-index.js +3 -0
- package/dist/registry/create-provider-registry.js +3 -0
- package/dist/registry/factory.js +4 -1
- package/dist/registry/origin-resolve.js +3 -0
- package/dist/registry/providers/index.js +3 -0
- package/dist/registry/providers/skills-sh.js +11 -2
- package/dist/registry/providers/static-index.js +10 -1
- package/dist/registry/providers/types.js +3 -24
- package/dist/registry/resolve.js +11 -16
- package/dist/registry/types.js +3 -0
- package/dist/scripts/migrate-storage.js +17767 -0
- package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +9031 -0
- package/dist/scripts/migrations/v16-to-v17.js +141 -0
- package/dist/setup/detect.js +3 -0
- package/dist/setup/ripgrep-install.js +3 -0
- package/dist/setup/ripgrep-resolve.js +3 -0
- package/dist/setup/setup.js +306 -67
- package/dist/setup/steps.js +3 -15
- package/dist/sources/include.js +3 -0
- package/dist/sources/provider-factory.js +3 -11
- package/dist/sources/provider.js +3 -20
- package/dist/sources/providers/filesystem.js +19 -23
- package/dist/sources/providers/git.js +171 -21
- package/dist/sources/providers/index.js +3 -0
- package/dist/sources/providers/install-types.js +3 -13
- package/dist/sources/providers/npm.js +3 -4
- package/dist/sources/providers/provider-utils.js +3 -0
- package/dist/sources/providers/sync-from-ref.js +3 -11
- package/dist/sources/providers/tar-utils.js +3 -0
- package/dist/sources/providers/website.js +18 -22
- package/dist/sources/resolve.js +3 -0
- package/dist/sources/types.js +3 -0
- package/dist/sources/website-ingest.js +3 -0
- package/dist/tasks/backends/cron.js +3 -0
- package/dist/tasks/backends/exec-utils.js +3 -0
- package/dist/tasks/backends/index.js +3 -11
- package/dist/tasks/backends/launchd.js +3 -0
- package/dist/tasks/backends/schtasks.js +3 -0
- package/dist/tasks/parser.js +51 -38
- package/dist/tasks/resolveAkmBin.js +3 -0
- package/dist/tasks/runner.js +35 -9
- package/dist/tasks/schedule.js +20 -1
- package/dist/tasks/schema.js +5 -3
- package/dist/tasks/validator.js +6 -3
- package/dist/version.js +3 -0
- package/dist/wiki/wiki-templates.js +3 -0
- package/dist/wiki/wiki.js +3 -0
- package/dist/workflows/authoring.js +3 -0
- package/dist/workflows/cli.js +3 -0
- package/dist/workflows/db.js +140 -10
- package/dist/workflows/document-cache.js +3 -10
- package/dist/workflows/parser.js +3 -0
- package/dist/workflows/renderer.js +3 -0
- package/dist/workflows/runs.js +18 -1
- package/dist/workflows/schema.js +3 -0
- package/dist/workflows/scope-key.js +3 -0
- package/dist/workflows/validator.js +5 -9
- package/docs/README.md +7 -2
- package/docs/data-and-telemetry.md +225 -0
- package/docs/migration/release-notes/0.7.5.md +2 -2
- package/docs/migration/release-notes/0.8.0.md +57 -5
- package/docs/migration/v0.7-to-v0.8.md +1378 -0
- package/package.json +28 -11
- package/.github/LICENSE +0 -374
- package/dist/commands/install-audit.js +0 -385
- package/dist/commands/vault.js +0 -310
- package/dist/indexer/match-contributors.js +0 -141
- package/dist/integrations/agent/pipeline.js +0 -39
- package/dist/integrations/agent/runners.js +0 -31
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { SCRIPT_EXTENSIONS } from "../core/asset-spec";
|
|
2
|
-
import { looksLikeWorkflow } from "../workflows/parser";
|
|
3
|
-
const DIR_TYPE_MAP = [
|
|
4
|
-
{
|
|
5
|
-
dir: "scripts",
|
|
6
|
-
type: "script",
|
|
7
|
-
test: (ext) => SCRIPT_EXTENSIONS.has(ext),
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
dir: "commands",
|
|
11
|
-
type: "command",
|
|
12
|
-
test: (ext) => ext === ".md",
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
dir: "agents",
|
|
16
|
-
type: "agent",
|
|
17
|
-
test: (ext) => ext === ".md",
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
dir: "knowledge",
|
|
21
|
-
type: "knowledge",
|
|
22
|
-
test: (ext) => ext === ".md",
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
dir: "workflows",
|
|
26
|
-
type: "workflow",
|
|
27
|
-
test: (ext) => ext === ".md",
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
dir: "memories",
|
|
31
|
-
type: "memory",
|
|
32
|
-
test: (ext) => ext === ".md",
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
dir: "lessons",
|
|
36
|
-
type: "lesson",
|
|
37
|
-
test: (ext) => ext === ".md",
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
dir: "vaults",
|
|
41
|
-
type: "vault",
|
|
42
|
-
test: (_, fileName) => fileName === ".env" || fileName.endsWith(".env"),
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
dir: "tasks",
|
|
46
|
-
type: "task",
|
|
47
|
-
test: (ext) => ext === ".md",
|
|
48
|
-
},
|
|
49
|
-
];
|
|
50
|
-
function matchDirectoryHint(dirName, ctx, specificity) {
|
|
51
|
-
if (dirName === "skills" && ctx.fileName === "SKILL.md") {
|
|
52
|
-
return { type: "skill", specificity };
|
|
53
|
-
}
|
|
54
|
-
for (const rule of DIR_TYPE_MAP) {
|
|
55
|
-
if (rule.dir === dirName && rule.test(ctx.ext, ctx.fileName)) {
|
|
56
|
-
return { type: rule.type, specificity };
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
const COMMAND_PLACEHOLDER_RE = /\$ARGUMENTS|\$[123]\b/;
|
|
62
|
-
export const extensionContributor = {
|
|
63
|
-
name: "extension",
|
|
64
|
-
classify(ctx) {
|
|
65
|
-
if (ctx.fileName === "SKILL.md" && !ctx.ancestorDirs.includes("wikis")) {
|
|
66
|
-
return { type: "skill", specificity: 25 };
|
|
67
|
-
}
|
|
68
|
-
if (SCRIPT_EXTENSIONS.has(ctx.ext)) {
|
|
69
|
-
return { type: "script", specificity: 3 };
|
|
70
|
-
}
|
|
71
|
-
return null;
|
|
72
|
-
},
|
|
73
|
-
};
|
|
74
|
-
export const directoryContributor = {
|
|
75
|
-
name: "directory",
|
|
76
|
-
classify(ctx) {
|
|
77
|
-
for (const dir of ctx.ancestorDirs) {
|
|
78
|
-
const result = matchDirectoryHint(dir, ctx, 10);
|
|
79
|
-
if (result)
|
|
80
|
-
return result;
|
|
81
|
-
}
|
|
82
|
-
return null;
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
|
-
export const parentDirHintContributor = {
|
|
86
|
-
name: "parent-dir-hint",
|
|
87
|
-
classify(ctx) {
|
|
88
|
-
const { parentDir, ext, fileName } = ctx;
|
|
89
|
-
if (parentDir === "skills" && (fileName === "SKILL.md" || ext === ".md")) {
|
|
90
|
-
return { type: "skill", specificity: 15 };
|
|
91
|
-
}
|
|
92
|
-
return matchDirectoryHint(parentDir, ctx, 15);
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
export const smartMdContributor = {
|
|
96
|
-
name: "smart-md",
|
|
97
|
-
classify(ctx) {
|
|
98
|
-
if (ctx.ext !== ".md")
|
|
99
|
-
return null;
|
|
100
|
-
const body = ctx.content();
|
|
101
|
-
if (looksLikeWorkflow(body)) {
|
|
102
|
-
return { type: "workflow", specificity: 19 };
|
|
103
|
-
}
|
|
104
|
-
const fm = ctx.frontmatter();
|
|
105
|
-
if (fm) {
|
|
106
|
-
if ("toolPolicy" in fm || "tools" in fm) {
|
|
107
|
-
return { type: "agent", specificity: 20 };
|
|
108
|
-
}
|
|
109
|
-
if ("agent" in fm) {
|
|
110
|
-
return { type: "command", specificity: 18 };
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
if (COMMAND_PLACEHOLDER_RE.test(body)) {
|
|
114
|
-
return { type: "command", specificity: 18 };
|
|
115
|
-
}
|
|
116
|
-
if (fm && "model" in fm) {
|
|
117
|
-
return { type: "agent", specificity: 8 };
|
|
118
|
-
}
|
|
119
|
-
return { type: "knowledge", specificity: 5 };
|
|
120
|
-
},
|
|
121
|
-
};
|
|
122
|
-
export const wikiContributor = {
|
|
123
|
-
name: "wiki",
|
|
124
|
-
classify(ctx) {
|
|
125
|
-
if (ctx.ext !== ".md")
|
|
126
|
-
return null;
|
|
127
|
-
const idx = ctx.ancestorDirs.indexOf("wikis");
|
|
128
|
-
if (idx < 0)
|
|
129
|
-
return null;
|
|
130
|
-
if (idx + 1 >= ctx.ancestorDirs.length)
|
|
131
|
-
return null;
|
|
132
|
-
return { type: "wiki", specificity: 20 };
|
|
133
|
-
},
|
|
134
|
-
};
|
|
135
|
-
export const builtinMatchContributors = [
|
|
136
|
-
extensionContributor,
|
|
137
|
-
directoryContributor,
|
|
138
|
-
parentDirHintContributor,
|
|
139
|
-
smartMdContributor,
|
|
140
|
-
wikiContributor,
|
|
141
|
-
];
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared proposal-agent pipeline for `akm propose` and `akm reflect`.
|
|
3
|
-
*
|
|
4
|
-
* Both commands share the same core spawn step: resolve a profile, build a
|
|
5
|
-
* prompt, run the agent, and return a structured result. This module extracts
|
|
6
|
-
* that shared step so the two command implementations stay focused on their
|
|
7
|
-
* own pre-processing (prompt building) and post-processing (proposal creation).
|
|
8
|
-
*/
|
|
9
|
-
import { runWithAgentRunner } from "./runners";
|
|
10
|
-
/**
|
|
11
|
-
* Run the agent for a proposal-producing command (propose or reflect).
|
|
12
|
-
*
|
|
13
|
-
* When `profile.sdkMode` is true, routes to {@link runAgentSdk} (no CLI
|
|
14
|
-
* binary required). Otherwise, when `draftFilePath` is set the agent is
|
|
15
|
-
* spawned in interactive mode so it can use its file tools to write the draft
|
|
16
|
-
* directly. When no draft path is provided the agent is spawned in captured
|
|
17
|
-
* mode and output is read from stdout.
|
|
18
|
-
*/
|
|
19
|
-
export async function runProposalAgentPipeline(opts) {
|
|
20
|
-
const result = await runWithAgentRunner({
|
|
21
|
-
profile: opts.profile,
|
|
22
|
-
prompt: opts.prompt,
|
|
23
|
-
llmConfig: opts.llmConfig,
|
|
24
|
-
runOptions: {
|
|
25
|
-
stdio: opts.draftFilePath ? "interactive" : "captured",
|
|
26
|
-
parseOutput: "text",
|
|
27
|
-
...(opts.timeoutMs !== undefined ? { timeoutMs: opts.timeoutMs } : {}),
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
return {
|
|
31
|
-
ok: result.ok,
|
|
32
|
-
stdout: result.stdout ?? "",
|
|
33
|
-
stderr: result.stderr ?? "",
|
|
34
|
-
durationMs: result.durationMs,
|
|
35
|
-
exitCode: result.exitCode,
|
|
36
|
-
error: result.error,
|
|
37
|
-
reason: result.reason,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { runAgentSdk } from "./sdk-runner";
|
|
2
|
-
import { runAgent } from "./spawn";
|
|
3
|
-
const spawnAgentRunner = {
|
|
4
|
-
name: "spawn-agent-runner",
|
|
5
|
-
supports(profile) {
|
|
6
|
-
return profile.sdkMode !== true;
|
|
7
|
-
},
|
|
8
|
-
run(request) {
|
|
9
|
-
return runAgent(request.profile, request.prompt, request.runOptions ?? {});
|
|
10
|
-
},
|
|
11
|
-
};
|
|
12
|
-
const sdkAgentRunner = {
|
|
13
|
-
name: "sdk-agent-runner",
|
|
14
|
-
supports(profile) {
|
|
15
|
-
return profile.sdkMode === true;
|
|
16
|
-
},
|
|
17
|
-
run(request) {
|
|
18
|
-
return runAgentSdk(request.profile, request.prompt ?? "", request.runOptions ?? {}, request.llmConfig);
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
export const defaultAgentRunners = [spawnAgentRunner, sdkAgentRunner];
|
|
22
|
-
export function selectAgentRunner(profile, runners = defaultAgentRunners) {
|
|
23
|
-
const runner = runners.find((candidate) => candidate.supports(profile));
|
|
24
|
-
if (!runner) {
|
|
25
|
-
throw new Error(`No agent runner available for profile "${profile.name}".`);
|
|
26
|
-
}
|
|
27
|
-
return runner;
|
|
28
|
-
}
|
|
29
|
-
export async function runWithAgentRunner(request, runners = defaultAgentRunners) {
|
|
30
|
-
return selectAgentRunner(request.profile, runners).run(request);
|
|
31
|
-
}
|