fixo-cli 1.0.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/LICENSE +201 -0
- package/README.md +530 -0
- package/dist/agent/agent-client.d.ts +108 -0
- package/dist/agent/agent-client.d.ts.map +1 -0
- package/dist/agent/agent-client.js +1247 -0
- package/dist/agent/agent-client.js.map +1 -0
- package/dist/agent/agent-pool.d.ts +20 -0
- package/dist/agent/agent-pool.d.ts.map +1 -0
- package/dist/agent/agent-pool.js +217 -0
- package/dist/agent/agent-pool.js.map +1 -0
- package/dist/agent/background-awareness.d.ts +55 -0
- package/dist/agent/background-awareness.d.ts.map +1 -0
- package/dist/agent/background-awareness.js +104 -0
- package/dist/agent/background-awareness.js.map +1 -0
- package/dist/agent/command-parser.d.ts +33 -0
- package/dist/agent/command-parser.d.ts.map +1 -0
- package/dist/agent/command-parser.js +120 -0
- package/dist/agent/command-parser.js.map +1 -0
- package/dist/agent/context-budget.d.ts +91 -0
- package/dist/agent/context-budget.d.ts.map +1 -0
- package/dist/agent/context-budget.js +219 -0
- package/dist/agent/context-budget.js.map +1 -0
- package/dist/agent/conversation.d.ts +190 -0
- package/dist/agent/conversation.d.ts.map +1 -0
- package/dist/agent/conversation.js +547 -0
- package/dist/agent/conversation.js.map +1 -0
- package/dist/agent/hooks.d.ts +72 -0
- package/dist/agent/hooks.d.ts.map +1 -0
- package/dist/agent/hooks.js +214 -0
- package/dist/agent/hooks.js.map +1 -0
- package/dist/agent/mcp-bridge.d.ts +13 -0
- package/dist/agent/mcp-bridge.d.ts.map +1 -0
- package/dist/agent/mcp-bridge.js +86 -0
- package/dist/agent/mcp-bridge.js.map +1 -0
- package/dist/agent/mcp-client.d.ts +24 -0
- package/dist/agent/mcp-client.d.ts.map +1 -0
- package/dist/agent/mcp-client.js +146 -0
- package/dist/agent/mcp-client.js.map +1 -0
- package/dist/agent/mcp-manager.d.ts +13 -0
- package/dist/agent/mcp-manager.d.ts.map +1 -0
- package/dist/agent/mcp-manager.js +84 -0
- package/dist/agent/mcp-manager.js.map +1 -0
- package/dist/agent/mcp-registry.d.ts +45 -0
- package/dist/agent/mcp-registry.d.ts.map +1 -0
- package/dist/agent/mcp-registry.js +98 -0
- package/dist/agent/mcp-registry.js.map +1 -0
- package/dist/agent/orchestrator.d.ts +14 -0
- package/dist/agent/orchestrator.d.ts.map +1 -0
- package/dist/agent/orchestrator.js +118 -0
- package/dist/agent/orchestrator.js.map +1 -0
- package/dist/agent/parser-adapter.d.ts +120 -0
- package/dist/agent/parser-adapter.d.ts.map +1 -0
- package/dist/agent/parser-adapter.js +265 -0
- package/dist/agent/parser-adapter.js.map +1 -0
- package/dist/agent/parsers/imports.d.ts +11 -0
- package/dist/agent/parsers/imports.d.ts.map +1 -0
- package/dist/agent/parsers/imports.js +94 -0
- package/dist/agent/parsers/imports.js.map +1 -0
- package/dist/agent/parsers/shell.d.ts +23 -0
- package/dist/agent/parsers/shell.d.ts.map +1 -0
- package/dist/agent/parsers/shell.js +200 -0
- package/dist/agent/parsers/shell.js.map +1 -0
- package/dist/agent/parsers/symbols.d.ts +17 -0
- package/dist/agent/parsers/symbols.d.ts.map +1 -0
- package/dist/agent/parsers/symbols.js +103 -0
- package/dist/agent/parsers/symbols.js.map +1 -0
- package/dist/agent/permissions.d.ts +65 -0
- package/dist/agent/permissions.d.ts.map +1 -0
- package/dist/agent/permissions.js +219 -0
- package/dist/agent/permissions.js.map +1 -0
- package/dist/agent/predictive-gate.d.ts +69 -0
- package/dist/agent/predictive-gate.d.ts.map +1 -0
- package/dist/agent/predictive-gate.js +128 -0
- package/dist/agent/predictive-gate.js.map +1 -0
- package/dist/agent/provider-cooldown.d.ts +144 -0
- package/dist/agent/provider-cooldown.d.ts.map +1 -0
- package/dist/agent/provider-cooldown.js +300 -0
- package/dist/agent/provider-cooldown.js.map +1 -0
- package/dist/agent/providers-manager.d.ts +109 -0
- package/dist/agent/providers-manager.d.ts.map +1 -0
- package/dist/agent/providers-manager.js +464 -0
- package/dist/agent/providers-manager.js.map +1 -0
- package/dist/agent/repo-map.d.ts +6 -0
- package/dist/agent/repo-map.d.ts.map +1 -0
- package/dist/agent/repo-map.js +221 -0
- package/dist/agent/repo-map.js.map +1 -0
- package/dist/agent/retry.d.ts +103 -0
- package/dist/agent/retry.d.ts.map +1 -0
- package/dist/agent/retry.js +276 -0
- package/dist/agent/retry.js.map +1 -0
- package/dist/agent/search/index.d.ts +61 -0
- package/dist/agent/search/index.d.ts.map +1 -0
- package/dist/agent/search/index.js +314 -0
- package/dist/agent/search/index.js.map +1 -0
- package/dist/agent/single-agent.d.ts +76 -0
- package/dist/agent/single-agent.d.ts.map +1 -0
- package/dist/agent/single-agent.js +697 -0
- package/dist/agent/single-agent.js.map +1 -0
- package/dist/agent/skills.d.ts +22 -0
- package/dist/agent/skills.d.ts.map +1 -0
- package/dist/agent/skills.js +139 -0
- package/dist/agent/skills.js.map +1 -0
- package/dist/agent/stream-glue.d.ts +85 -0
- package/dist/agent/stream-glue.d.ts.map +1 -0
- package/dist/agent/stream-glue.js +120 -0
- package/dist/agent/stream-glue.js.map +1 -0
- package/dist/agent/subagent.d.ts +72 -0
- package/dist/agent/subagent.d.ts.map +1 -0
- package/dist/agent/subagent.js +193 -0
- package/dist/agent/subagent.js.map +1 -0
- package/dist/agent/telemetry.d.ts +192 -0
- package/dist/agent/telemetry.d.ts.map +1 -0
- package/dist/agent/telemetry.js +400 -0
- package/dist/agent/telemetry.js.map +1 -0
- package/dist/agent/tokenizer.d.ts +42 -0
- package/dist/agent/tokenizer.d.ts.map +1 -0
- package/dist/agent/tokenizer.js +107 -0
- package/dist/agent/tokenizer.js.map +1 -0
- package/dist/agent/tool-executor.d.ts +289 -0
- package/dist/agent/tool-executor.d.ts.map +1 -0
- package/dist/agent/tool-executor.js +2519 -0
- package/dist/agent/tool-executor.js.map +1 -0
- package/dist/agent/web-impl.d.ts +2 -0
- package/dist/agent/web-impl.d.ts.map +1 -0
- package/dist/agent/web-impl.js +34 -0
- package/dist/agent/web-impl.js.map +1 -0
- package/dist/agent/web.d.ts +8 -0
- package/dist/agent/web.d.ts.map +1 -0
- package/dist/agent/web.js +8 -0
- package/dist/agent/web.js.map +1 -0
- package/dist/agent/worker-agent.d.ts +27 -0
- package/dist/agent/worker-agent.d.ts.map +1 -0
- package/dist/agent/worker-agent.js +503 -0
- package/dist/agent/worker-agent.js.map +1 -0
- package/dist/config.d.ts +162 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +138 -0
- package/dist/config.js.map +1 -0
- package/dist/context/fixo-md-watcher.d.ts +42 -0
- package/dist/context/fixo-md-watcher.d.ts.map +1 -0
- package/dist/context/fixo-md-watcher.js +126 -0
- package/dist/context/fixo-md-watcher.js.map +1 -0
- package/dist/context/fixo-md.d.ts +50 -0
- package/dist/context/fixo-md.d.ts.map +1 -0
- package/dist/context/fixo-md.js +118 -0
- package/dist/context/fixo-md.js.map +1 -0
- package/dist/context/todo.d.ts +65 -0
- package/dist/context/todo.d.ts.map +1 -0
- package/dist/context/todo.js +194 -0
- package/dist/context/todo.js.map +1 -0
- package/dist/git/git-manager.d.ts +33 -0
- package/dist/git/git-manager.d.ts.map +1 -0
- package/dist/git/git-manager.js +293 -0
- package/dist/git/git-manager.js.map +1 -0
- package/dist/git/git-ops.d.ts +10 -0
- package/dist/git/git-ops.d.ts.map +1 -0
- package/dist/git/git-ops.js +131 -0
- package/dist/git/git-ops.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +352 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer.d.ts +30 -0
- package/dist/indexer.d.ts.map +1 -0
- package/dist/indexer.js +273 -0
- package/dist/indexer.js.map +1 -0
- package/dist/lsp/lsp-client.d.ts +24 -0
- package/dist/lsp/lsp-client.d.ts.map +1 -0
- package/dist/lsp/lsp-client.js +205 -0
- package/dist/lsp/lsp-client.js.map +1 -0
- package/dist/lsp/lsp-manager.d.ts +17 -0
- package/dist/lsp/lsp-manager.d.ts.map +1 -0
- package/dist/lsp/lsp-manager.js +154 -0
- package/dist/lsp/lsp-manager.js.map +1 -0
- package/dist/lsp/lsp-pre-save.d.ts +137 -0
- package/dist/lsp/lsp-pre-save.d.ts.map +1 -0
- package/dist/lsp/lsp-pre-save.js +245 -0
- package/dist/lsp/lsp-pre-save.js.map +1 -0
- package/dist/lsp/syntax-fallback.d.ts +83 -0
- package/dist/lsp/syntax-fallback.d.ts.map +1 -0
- package/dist/lsp/syntax-fallback.js +275 -0
- package/dist/lsp/syntax-fallback.js.map +1 -0
- package/dist/model-outcomes.d.ts +12 -0
- package/dist/model-outcomes.d.ts.map +1 -0
- package/dist/model-outcomes.js +46 -0
- package/dist/model-outcomes.js.map +1 -0
- package/dist/planner.d.ts +32 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +163 -0
- package/dist/planner.js.map +1 -0
- package/dist/project-memory.d.ts +29 -0
- package/dist/project-memory.d.ts.map +1 -0
- package/dist/project-memory.js +349 -0
- package/dist/project-memory.js.map +1 -0
- package/dist/review.d.ts +2 -0
- package/dist/review.d.ts.map +1 -0
- package/dist/review.js +61 -0
- package/dist/review.js.map +1 -0
- package/dist/runtime/background-jobs.d.ts +97 -0
- package/dist/runtime/background-jobs.d.ts.map +1 -0
- package/dist/runtime/background-jobs.js +331 -0
- package/dist/runtime/background-jobs.js.map +1 -0
- package/dist/runtime/credential-vault.d.ts +124 -0
- package/dist/runtime/credential-vault.d.ts.map +1 -0
- package/dist/runtime/credential-vault.js +184 -0
- package/dist/runtime/credential-vault.js.map +1 -0
- package/dist/runtime/loop-trap.d.ts +197 -0
- package/dist/runtime/loop-trap.d.ts.map +1 -0
- package/dist/runtime/loop-trap.js +420 -0
- package/dist/runtime/loop-trap.js.map +1 -0
- package/dist/runtime/policy.d.ts +15 -0
- package/dist/runtime/policy.d.ts.map +1 -0
- package/dist/runtime/policy.js +60 -0
- package/dist/runtime/policy.js.map +1 -0
- package/dist/runtime/redaction.d.ts +66 -0
- package/dist/runtime/redaction.d.ts.map +1 -0
- package/dist/runtime/redaction.js +155 -0
- package/dist/runtime/redaction.js.map +1 -0
- package/dist/runtime/session-snapshots.d.ts +76 -0
- package/dist/runtime/session-snapshots.d.ts.map +1 -0
- package/dist/runtime/session-snapshots.js +166 -0
- package/dist/runtime/session-snapshots.js.map +1 -0
- package/dist/runtime/staging.d.ts +205 -0
- package/dist/runtime/staging.d.ts.map +1 -0
- package/dist/runtime/staging.js +526 -0
- package/dist/runtime/staging.js.map +1 -0
- package/dist/runtime/task-session.d.ts +95 -0
- package/dist/runtime/task-session.d.ts.map +1 -0
- package/dist/runtime/task-session.js +263 -0
- package/dist/runtime/task-session.js.map +1 -0
- package/dist/runtime/worktree.d.ts +55 -0
- package/dist/runtime/worktree.d.ts.map +1 -0
- package/dist/runtime/worktree.js +175 -0
- package/dist/runtime/worktree.js.map +1 -0
- package/dist/setup-wizard.d.ts +8 -0
- package/dist/setup-wizard.d.ts.map +1 -0
- package/dist/setup-wizard.js +73 -0
- package/dist/setup-wizard.js.map +1 -0
- package/dist/shared/content.d.ts +43 -0
- package/dist/shared/content.d.ts.map +1 -0
- package/dist/shared/content.js +61 -0
- package/dist/shared/content.js.map +1 -0
- package/dist/shared/types.d.ts +217 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +3 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/test-runner.d.ts +5 -0
- package/dist/test-runner.d.ts.map +1 -0
- package/dist/test-runner.js +42 -0
- package/dist/test-runner.js.map +1 -0
- package/dist/types.d.ts +85 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/ascii.d.ts +23 -0
- package/dist/ui/ascii.d.ts.map +1 -0
- package/dist/ui/ascii.js +45 -0
- package/dist/ui/ascii.js.map +1 -0
- package/dist/ui/colors.d.ts +111 -0
- package/dist/ui/colors.d.ts.map +1 -0
- package/dist/ui/colors.js +166 -0
- package/dist/ui/colors.js.map +1 -0
- package/dist/ui/image-attach.d.ts +27 -0
- package/dist/ui/image-attach.d.ts.map +1 -0
- package/dist/ui/image-attach.js +100 -0
- package/dist/ui/image-attach.js.map +1 -0
- package/dist/ui/index.d.ts +18 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +18 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/markdown-stream.d.ts +91 -0
- package/dist/ui/markdown-stream.d.ts.map +1 -0
- package/dist/ui/markdown-stream.js +524 -0
- package/dist/ui/markdown-stream.js.map +1 -0
- package/dist/ui/plan-renderer.d.ts +36 -0
- package/dist/ui/plan-renderer.d.ts.map +1 -0
- package/dist/ui/plan-renderer.js +79 -0
- package/dist/ui/plan-renderer.js.map +1 -0
- package/dist/ui/prompt.d.ts +11 -0
- package/dist/ui/prompt.d.ts.map +1 -0
- package/dist/ui/prompt.js +1960 -0
- package/dist/ui/prompt.js.map +1 -0
- package/dist/ui/render-primitives.d.ts +117 -0
- package/dist/ui/render-primitives.d.ts.map +1 -0
- package/dist/ui/render-primitives.js +322 -0
- package/dist/ui/render-primitives.js.map +1 -0
- package/dist/ui/render.d.ts +133 -0
- package/dist/ui/render.d.ts.map +1 -0
- package/dist/ui/render.js +547 -0
- package/dist/ui/render.js.map +1 -0
- package/dist/ui/session-header.d.ts +30 -0
- package/dist/ui/session-header.d.ts.map +1 -0
- package/dist/ui/session-header.js +74 -0
- package/dist/ui/session-header.js.map +1 -0
- package/dist/workspace-guard.d.ts +68 -0
- package/dist/workspace-guard.d.ts.map +1 -0
- package/dist/workspace-guard.js +168 -0
- package/dist/workspace-guard.js.map +1 -0
- package/dist/workspace-lock.d.ts +27 -0
- package/dist/workspace-lock.d.ts.map +1 -0
- package/dist/workspace-lock.js +95 -0
- package/dist/workspace-lock.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-agent.js","sourceRoot":"","sources":["../../src/agent/single-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface SkillInfo {
|
|
2
|
+
name: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
location: string;
|
|
5
|
+
content: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function parseSkillFile(filePath: string): SkillInfo | null;
|
|
8
|
+
export declare class SkillsManager {
|
|
9
|
+
private skills;
|
|
10
|
+
initialize(cwd: string): void;
|
|
11
|
+
private scanDir;
|
|
12
|
+
getSkills(): SkillInfo[];
|
|
13
|
+
getSkill(name: string): SkillInfo | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Dynamically detect which skills are relevant to the workspace.
|
|
16
|
+
* We check the languages/file extensions in cwd, or if the task references them.
|
|
17
|
+
*/
|
|
18
|
+
getRelevantSkillsPrompt(cwd: string, task: string): string;
|
|
19
|
+
private hasExtension;
|
|
20
|
+
}
|
|
21
|
+
export declare const skillsManager: SkillsManager;
|
|
22
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/agent/skills.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CA0BjE;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgC;IAE9C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAW7B,OAAO,CAAC,OAAO;IAoBf,SAAS,IAAI,SAAS,EAAE;IAIxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7C;;;OAGG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAqC1D,OAAO,CAAC,YAAY;CAoBrB;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import yaml from 'js-yaml';
|
|
4
|
+
import { getConfigDir } from '../config.js';
|
|
5
|
+
export function parseSkillFile(filePath) {
|
|
6
|
+
try {
|
|
7
|
+
const raw = fs.readFileSync(filePath, 'utf-8');
|
|
8
|
+
const match = raw.match(/^---\r?\n([\s\S]+?)\r?\n---\r?\n([\s\S]*)$/);
|
|
9
|
+
if (!match) {
|
|
10
|
+
// No frontmatter, treat whole file as content, name is filename
|
|
11
|
+
const name = path.basename(path.dirname(filePath));
|
|
12
|
+
return {
|
|
13
|
+
name,
|
|
14
|
+
location: filePath,
|
|
15
|
+
content: raw.trim(),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const frontmatter = yaml.load(match[1]);
|
|
19
|
+
if (frontmatter && typeof frontmatter.name === 'string') {
|
|
20
|
+
return {
|
|
21
|
+
name: frontmatter.name,
|
|
22
|
+
description: frontmatter.description,
|
|
23
|
+
location: filePath,
|
|
24
|
+
content: match[2].trim(),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
console.warn(`[Skills] Failed to parse skill file ${filePath}:`, e);
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
export class SkillsManager {
|
|
34
|
+
skills = new Map();
|
|
35
|
+
initialize(cwd) {
|
|
36
|
+
this.skills.clear();
|
|
37
|
+
// 1. Load global skills from ~/.fixocli/skills/
|
|
38
|
+
const globalSkillsDir = path.join(getConfigDir(), 'skills');
|
|
39
|
+
this.scanDir(globalSkillsDir);
|
|
40
|
+
// 2. Load local project skills from .fixocli/skills/
|
|
41
|
+
const localSkillsDir = path.join(cwd, '.fixocli', 'skills');
|
|
42
|
+
this.scanDir(localSkillsDir);
|
|
43
|
+
}
|
|
44
|
+
scanDir(dir) {
|
|
45
|
+
if (!fs.existsSync(dir))
|
|
46
|
+
return;
|
|
47
|
+
try {
|
|
48
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
49
|
+
for (const entry of entries) {
|
|
50
|
+
if (entry.isDirectory()) {
|
|
51
|
+
const skillFile = path.join(dir, entry.name, 'SKILL.md');
|
|
52
|
+
if (fs.existsSync(skillFile)) {
|
|
53
|
+
const skill = parseSkillFile(skillFile);
|
|
54
|
+
if (skill) {
|
|
55
|
+
this.skills.set(skill.name, skill);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
console.warn(`[Skills] Error scanning directory ${dir}:`, e);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
getSkills() {
|
|
66
|
+
return Array.from(this.skills.values());
|
|
67
|
+
}
|
|
68
|
+
getSkill(name) {
|
|
69
|
+
return this.skills.get(name);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Dynamically detect which skills are relevant to the workspace.
|
|
73
|
+
* We check the languages/file extensions in cwd, or if the task references them.
|
|
74
|
+
*/
|
|
75
|
+
getRelevantSkillsPrompt(cwd, task) {
|
|
76
|
+
const activeSkills = [];
|
|
77
|
+
const lowerTask = task.toLowerCase();
|
|
78
|
+
for (const skill of this.skills.values()) {
|
|
79
|
+
let isRelevant = false;
|
|
80
|
+
// If task mentions the skill name
|
|
81
|
+
if (lowerTask.includes(skill.name.toLowerCase())) {
|
|
82
|
+
isRelevant = true;
|
|
83
|
+
}
|
|
84
|
+
// Or if workspace has files related to the skill
|
|
85
|
+
// e.g. react (tsx/jsx), go (go), rust (rs)
|
|
86
|
+
if (!isRelevant) {
|
|
87
|
+
if (skill.name === 'react' && this.hasExtension(cwd, ['.tsx', '.jsx'])) {
|
|
88
|
+
isRelevant = true;
|
|
89
|
+
}
|
|
90
|
+
else if (skill.name === 'go' && this.hasExtension(cwd, ['.go'])) {
|
|
91
|
+
isRelevant = true;
|
|
92
|
+
}
|
|
93
|
+
else if (skill.name === 'rust' && this.hasExtension(cwd, ['.rs'])) {
|
|
94
|
+
isRelevant = true;
|
|
95
|
+
}
|
|
96
|
+
else if (skill.name === 'typescript' && this.hasExtension(cwd, ['.ts', '.tsx'])) {
|
|
97
|
+
isRelevant = true;
|
|
98
|
+
}
|
|
99
|
+
else if (skill.name === 'python' && this.hasExtension(cwd, ['.py'])) {
|
|
100
|
+
isRelevant = true;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (isRelevant) {
|
|
104
|
+
activeSkills.push(`### Skill: ${skill.name}\n${skill.content}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (activeSkills.length === 0)
|
|
108
|
+
return '';
|
|
109
|
+
return `\n## Detected Workspace Skills & Framework Rules\n` + activeSkills.join('\n\n');
|
|
110
|
+
}
|
|
111
|
+
hasExtension(dir, extensions, maxDepth = 4, currentDepth = 0) {
|
|
112
|
+
if (currentDepth > maxDepth)
|
|
113
|
+
return false;
|
|
114
|
+
try {
|
|
115
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
116
|
+
for (const entry of entries) {
|
|
117
|
+
if (entry.name.startsWith('.') || entry.name === 'node_modules' || entry.name === 'dist' || entry.name === 'build')
|
|
118
|
+
continue;
|
|
119
|
+
if (entry.isDirectory()) {
|
|
120
|
+
if (this.hasExtension(path.join(dir, entry.name), extensions, maxDepth, currentDepth + 1))
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
const ext = path.extname(entry.name).toLowerCase();
|
|
125
|
+
if (extensions.includes(ext))
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
if (process.env.DEBUG || process.env.VERBOSE || process.argv.includes('--verbose')) {
|
|
132
|
+
console.warn(`[Debug Warning] Failed to read directory ${dir} during skill detection: ${error.message || error}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
export const skillsManager = new SkillsManager();
|
|
139
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/agent/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAS5C,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,gEAAgE;YAChE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnD,OAAO;gBACL,IAAI;gBACJ,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;aACpB,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAQ,CAAC;QAC/C,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxD,OAAO;gBACL,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,WAAW,EAAE,WAAW,CAAC,WAAW;gBACpC,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;aACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,uCAAuC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,aAAa;IAChB,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE9C,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,gDAAgD;QAChD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAE9B,qDAAqD;QACrD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC;IAEO,OAAO,CAAC,GAAW;QACzB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAChC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;oBACzD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC7B,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;wBACxC,IAAI,KAAK,EAAE,CAAC;4BACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACrC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,qCAAqC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,GAAW,EAAE,IAAY;QAC/C,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAErC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,UAAU,GAAG,KAAK,CAAC;YAEvB,kCAAkC;YAClC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACjD,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;YAED,iDAAiD;YACjD,2CAA2C;YAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;oBACvE,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBAClE,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACpE,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;oBAClF,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACtE,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;YACH,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACzC,OAAO,oDAAoD,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1F,CAAC;IAEO,YAAY,CAAC,GAAW,EAAE,UAAoB,EAAE,QAAQ,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC;QACpF,IAAI,YAAY,GAAG,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;oBAAE,SAAS;gBAC7H,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,GAAG,CAAC,CAAC;wBAAE,OAAO,IAAI,CAAC;gBACzG,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;oBACnD,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;wBAAE,OAAO,IAAI,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnF,OAAO,CAAC,IAAI,CAAC,4CAA4C,GAAG,4BAA4B,KAAK,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;YACpH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* stream-glue.ts — Mid-stream resume primitives for the FixO CLI.
|
|
3
|
+
*
|
|
4
|
+
* When an LLM stream cuts off (network drop, server timeout, 5xx after
|
|
5
|
+
* the first chunk), the new `chatStreamWithResume` path in `AgentClient`
|
|
6
|
+
* needs three primitives:
|
|
7
|
+
*
|
|
8
|
+
* 1. `reconstructPartialResponse` — glue the chunks that *did* make
|
|
9
|
+
* it through back into a single assistant message that the LLM
|
|
10
|
+
* can be asked to "continue from".
|
|
11
|
+
* 2. `isMidStreamResumable` — decide whether a given error
|
|
12
|
+
* class is worth retrying; user-initiated aborts and 4xx errors
|
|
13
|
+
* are explicitly non-resumable.
|
|
14
|
+
* 3. `StreamResumeExhaustedError` — the typed error the agent loop
|
|
15
|
+
* sees when a resume was attempted but could not be completed
|
|
16
|
+
* (mid-tool-call cut, no partial content, or attempts exhausted).
|
|
17
|
+
*
|
|
18
|
+
* `NonRetryableError` is a tiny marker class that lets the migrated
|
|
19
|
+
* `withRetry` loops in `agent-client.ts` distinguish user/config
|
|
20
|
+
* problems (413, 404) from transient provider failures.
|
|
21
|
+
*/
|
|
22
|
+
import type { StreamChunk } from './agent-client.js';
|
|
23
|
+
/**
|
|
24
|
+
* Marker class. Wrap a thrown error in this to signal that the
|
|
25
|
+
* `withRetry` engine must NOT retry, even if `isRetryable` would
|
|
26
|
+
* otherwise return true.
|
|
27
|
+
*/
|
|
28
|
+
export declare class NonRetryableError extends Error {
|
|
29
|
+
readonly cause: unknown;
|
|
30
|
+
constructor(message: string, cause?: unknown);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Reconstructs the assistant's text from a sequence of streamed chunks.
|
|
34
|
+
*
|
|
35
|
+
* The reconstruction is *deliberately conservative*: tool calls are
|
|
36
|
+
* atomic, so if the cut happens after a `tool_call_start` or
|
|
37
|
+
* `tool_call_delta`, reconstruction stops at (but does not include)
|
|
38
|
+
* the tool call. The caller can then decide to throw a
|
|
39
|
+
* `StreamResumeExhaustedError` rather than ask the LLM to continue a
|
|
40
|
+
* half-built tool invocation.
|
|
41
|
+
*
|
|
42
|
+
* `done` and `usage` chunks are ignored.
|
|
43
|
+
*/
|
|
44
|
+
export declare function reconstructPartialResponse(chunks: ReadonlyArray<StreamChunk>): string;
|
|
45
|
+
/**
|
|
46
|
+
* Returns true if an error caught *after* the first chunk has been
|
|
47
|
+
* yielded is a candidate for a stream-reconnect attempt. The
|
|
48
|
+
* classification mirrors the `withRetry` defaults for `isRetryable`
|
|
49
|
+
* but is restricted to failures that are likely recoverable on a
|
|
50
|
+
* fresh attempt with a "continue from here" payload.
|
|
51
|
+
*
|
|
52
|
+
* Non-resumable:
|
|
53
|
+
* - User-initiated aborts (`AbortError`).
|
|
54
|
+
* - 4xx (except 408/425): the server understood us and refused;
|
|
55
|
+
* retrying with the same body would just refuse again.
|
|
56
|
+
* - 413/404: the caller's request is the problem.
|
|
57
|
+
*
|
|
58
|
+
* Resumable:
|
|
59
|
+
* - Network-layer errors (ECONNRESET, ETIMEDOUT, fetch failed, …).
|
|
60
|
+
* - 5xx and 408/425/502/503/504 — the server may have crashed
|
|
61
|
+
* mid-stream but the partial response is still valid input.
|
|
62
|
+
* - Timeouts that fired *during* streaming (not before any chunk).
|
|
63
|
+
*/
|
|
64
|
+
export declare function isMidStreamResumable(err: unknown): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Public diagnostic info returned alongside a `StreamResumeExhaustedError`.
|
|
67
|
+
* The agent loop can use this to decide whether to retry the whole turn
|
|
68
|
+
* (likely) or to surface a user-facing error (unrecoverable cut mid
|
|
69
|
+
* tool-call is the canonical unrecoverable case).
|
|
70
|
+
*/
|
|
71
|
+
export interface StreamResumeExhaustedContext {
|
|
72
|
+
/** Number of resume attempts that were actually issued. */
|
|
73
|
+
resumeAttempt: number;
|
|
74
|
+
/** The chunks that *did* arrive in the final attempt. */
|
|
75
|
+
chunks: ReadonlyArray<StreamChunk>;
|
|
76
|
+
/** Reconstruction of the partial assistant text, if any. */
|
|
77
|
+
partial?: string;
|
|
78
|
+
/** True when the cut happened inside a tool call. */
|
|
79
|
+
cutDuringToolCall?: boolean;
|
|
80
|
+
}
|
|
81
|
+
export declare class StreamResumeExhaustedError extends Error {
|
|
82
|
+
readonly context: StreamResumeExhaustedContext;
|
|
83
|
+
constructor(message: string, context: StreamResumeExhaustedContext);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=stream-glue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-glue.d.ts","sourceRoot":"","sources":["../../src/agent/stream-glue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;gBACZ,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAK7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,MAAM,CAmBrF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAsB1D;AAED;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IAC3C,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACnC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B;CAKnE"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* stream-glue.ts — Mid-stream resume primitives for the FixO CLI.
|
|
3
|
+
*
|
|
4
|
+
* When an LLM stream cuts off (network drop, server timeout, 5xx after
|
|
5
|
+
* the first chunk), the new `chatStreamWithResume` path in `AgentClient`
|
|
6
|
+
* needs three primitives:
|
|
7
|
+
*
|
|
8
|
+
* 1. `reconstructPartialResponse` — glue the chunks that *did* make
|
|
9
|
+
* it through back into a single assistant message that the LLM
|
|
10
|
+
* can be asked to "continue from".
|
|
11
|
+
* 2. `isMidStreamResumable` — decide whether a given error
|
|
12
|
+
* class is worth retrying; user-initiated aborts and 4xx errors
|
|
13
|
+
* are explicitly non-resumable.
|
|
14
|
+
* 3. `StreamResumeExhaustedError` — the typed error the agent loop
|
|
15
|
+
* sees when a resume was attempted but could not be completed
|
|
16
|
+
* (mid-tool-call cut, no partial content, or attempts exhausted).
|
|
17
|
+
*
|
|
18
|
+
* `NonRetryableError` is a tiny marker class that lets the migrated
|
|
19
|
+
* `withRetry` loops in `agent-client.ts` distinguish user/config
|
|
20
|
+
* problems (413, 404) from transient provider failures.
|
|
21
|
+
*/
|
|
22
|
+
import { HttpError } from './agent-client.js';
|
|
23
|
+
/**
|
|
24
|
+
* Marker class. Wrap a thrown error in this to signal that the
|
|
25
|
+
* `withRetry` engine must NOT retry, even if `isRetryable` would
|
|
26
|
+
* otherwise return true.
|
|
27
|
+
*/
|
|
28
|
+
export class NonRetryableError extends Error {
|
|
29
|
+
cause;
|
|
30
|
+
constructor(message, cause) {
|
|
31
|
+
super(message);
|
|
32
|
+
this.name = 'NonRetryableError';
|
|
33
|
+
this.cause = cause;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Reconstructs the assistant's text from a sequence of streamed chunks.
|
|
38
|
+
*
|
|
39
|
+
* The reconstruction is *deliberately conservative*: tool calls are
|
|
40
|
+
* atomic, so if the cut happens after a `tool_call_start` or
|
|
41
|
+
* `tool_call_delta`, reconstruction stops at (but does not include)
|
|
42
|
+
* the tool call. The caller can then decide to throw a
|
|
43
|
+
* `StreamResumeExhaustedError` rather than ask the LLM to continue a
|
|
44
|
+
* half-built tool invocation.
|
|
45
|
+
*
|
|
46
|
+
* `done` and `usage` chunks are ignored.
|
|
47
|
+
*/
|
|
48
|
+
export function reconstructPartialResponse(chunks) {
|
|
49
|
+
let out = '';
|
|
50
|
+
for (const chunk of chunks) {
|
|
51
|
+
switch (chunk.type) {
|
|
52
|
+
case 'content':
|
|
53
|
+
out += chunk.content;
|
|
54
|
+
break;
|
|
55
|
+
case 'thinking':
|
|
56
|
+
out += chunk.thinking ?? '';
|
|
57
|
+
break;
|
|
58
|
+
case 'tool_call_start':
|
|
59
|
+
case 'tool_call_delta':
|
|
60
|
+
// Cannot resume mid-tool-call. Caller decides what to do.
|
|
61
|
+
return out;
|
|
62
|
+
case 'done':
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Returns true if an error caught *after* the first chunk has been
|
|
70
|
+
* yielded is a candidate for a stream-reconnect attempt. The
|
|
71
|
+
* classification mirrors the `withRetry` defaults for `isRetryable`
|
|
72
|
+
* but is restricted to failures that are likely recoverable on a
|
|
73
|
+
* fresh attempt with a "continue from here" payload.
|
|
74
|
+
*
|
|
75
|
+
* Non-resumable:
|
|
76
|
+
* - User-initiated aborts (`AbortError`).
|
|
77
|
+
* - 4xx (except 408/425): the server understood us and refused;
|
|
78
|
+
* retrying with the same body would just refuse again.
|
|
79
|
+
* - 413/404: the caller's request is the problem.
|
|
80
|
+
*
|
|
81
|
+
* Resumable:
|
|
82
|
+
* - Network-layer errors (ECONNRESET, ETIMEDOUT, fetch failed, …).
|
|
83
|
+
* - 5xx and 408/425/502/503/504 — the server may have crashed
|
|
84
|
+
* mid-stream but the partial response is still valid input.
|
|
85
|
+
* - Timeouts that fired *during* streaming (not before any chunk).
|
|
86
|
+
*/
|
|
87
|
+
export function isMidStreamResumable(err) {
|
|
88
|
+
if (err instanceof Error && err.name === 'AbortError')
|
|
89
|
+
return false;
|
|
90
|
+
if (err instanceof NonRetryableError)
|
|
91
|
+
return false;
|
|
92
|
+
if (err instanceof HttpError) {
|
|
93
|
+
if (err.status === 408 || err.status === 425)
|
|
94
|
+
return true;
|
|
95
|
+
if (err.status >= 500 && err.status < 600)
|
|
96
|
+
return true;
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
if (err instanceof Error) {
|
|
100
|
+
const m = err.message;
|
|
101
|
+
if (m.includes('ECONNRESET') ||
|
|
102
|
+
m.includes('ETIMEDOUT') ||
|
|
103
|
+
m.includes('fetch failed') ||
|
|
104
|
+
m.includes('socket hang up') ||
|
|
105
|
+
m.includes('aborted due to timeout') ||
|
|
106
|
+
err.name === 'TimeoutError') {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
export class StreamResumeExhaustedError extends Error {
|
|
113
|
+
context;
|
|
114
|
+
constructor(message, context) {
|
|
115
|
+
super(message);
|
|
116
|
+
this.name = 'StreamResumeExhaustedError';
|
|
117
|
+
this.context = context;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=stream-glue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-glue.js","sourceRoot":"","sources":["../../src/agent/stream-glue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,KAAK,CAAU;IACxB,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAkC;IAC3E,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,SAAS;gBACZ,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;gBACrB,MAAM;YACR,KAAK,UAAU;gBACb,GAAG,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC5B,MAAM;YACR,KAAK,iBAAiB,CAAC;YACvB,KAAK,iBAAiB;gBACpB,0DAA0D;gBAC1D,OAAO,GAAG,CAAC;YACb,KAAK,MAAM;gBACT,MAAM;QACV,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACpE,IAAI,GAAG,YAAY,iBAAiB;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAC1D,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,IAAI,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;QACtB,IACE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YACxB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;YACvB,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC1B,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC5B,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACpC,GAAG,CAAC,IAAI,KAAK,cAAc,EAC3B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAmBD,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,OAAO,CAA+B;IAC/C,YAAY,OAAe,EAAE,OAAqC;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { AgentContext } from '../types.js';
|
|
2
|
+
export type SubagentType = 'general-purpose' | 'statusline-setup' | 'Explore' | 'Plan';
|
|
3
|
+
export interface SubagentRequest {
|
|
4
|
+
task: string;
|
|
5
|
+
type: SubagentType;
|
|
6
|
+
/** Files the subagent is allowed to read for context. Default: []. */
|
|
7
|
+
contextFiles?: string[];
|
|
8
|
+
/** Spawn fire-and-forget and return a jobId. Default: false. */
|
|
9
|
+
runInBackground?: boolean;
|
|
10
|
+
/** Whether to clean up the subagent's session on exit. Default: 'none'. */
|
|
11
|
+
cleanup?: 'session' | 'none';
|
|
12
|
+
/** Per-subagent tool-call cap. Default: 15 (matches WorkerAgent). */
|
|
13
|
+
maxLocalToolCalls?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface SubagentResult {
|
|
16
|
+
success: boolean;
|
|
17
|
+
/** The subagent's final natural-language summary. */
|
|
18
|
+
summary: string;
|
|
19
|
+
/** Token usage (parent's bill). */
|
|
20
|
+
tokensUsed: {
|
|
21
|
+
prompt_tokens: number;
|
|
22
|
+
completion_tokens: number;
|
|
23
|
+
total_tokens: number;
|
|
24
|
+
};
|
|
25
|
+
/** Number of tool calls the subagent made. */
|
|
26
|
+
toolCallCount: number;
|
|
27
|
+
/** Duration in milliseconds. */
|
|
28
|
+
durationMs: number;
|
|
29
|
+
/** Subagent type used. */
|
|
30
|
+
type: SubagentType;
|
|
31
|
+
/**
|
|
32
|
+
* Concatenated *user-visible* tool outcomes. The raw tool
|
|
33
|
+
* log stays inside the subagent. When the caller sets
|
|
34
|
+
* `summaryOnly: true` (default), this field contains only
|
|
35
|
+
* the final assistant message.
|
|
36
|
+
*/
|
|
37
|
+
transcript: string;
|
|
38
|
+
/** When `runInBackground` was true, the jobId to poll. */
|
|
39
|
+
jobId?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Internal options the spawn site can set. `summaryOnly` and
|
|
43
|
+
* `cleanHistory` are locked on for Phase 3.2 (no escape hatch).
|
|
44
|
+
*/
|
|
45
|
+
interface InternalOptions {
|
|
46
|
+
summaryOnly: boolean;
|
|
47
|
+
cleanHistory: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Spawn a subagent. Returns immediately when `runInBackground`
|
|
51
|
+
* is true; otherwise awaits the subagent's completion and
|
|
52
|
+
* returns its final summary.
|
|
53
|
+
*/
|
|
54
|
+
export declare function spawnSubagent(req: SubagentRequest, parentCtx: AgentContext, internalOpts?: Partial<InternalOptions>): Promise<SubagentResult>;
|
|
55
|
+
/** Read the latest result for a background subagent. */
|
|
56
|
+
export declare function getBackgroundSubagentResult(jobId: string): SubagentResult | null;
|
|
57
|
+
/** Clear the background subagent cache (test-only). */
|
|
58
|
+
export declare function _resetBackgroundSubagents(): void;
|
|
59
|
+
/**
|
|
60
|
+
* Build the subagent's `AgentContext` from the parent context
|
|
61
|
+
* and a request. Exposed for testability — the actual subagent
|
|
62
|
+
* is constructed inside `spawnSubagent`.
|
|
63
|
+
*
|
|
64
|
+
* Invariants locked by Phase 3.2:
|
|
65
|
+
* - `mode` is forced to 'BUILD'
|
|
66
|
+
* - `selectedFiles` is replaced by `req.contextFiles` (or [])
|
|
67
|
+
* - `systemPromptOverride` is dropped
|
|
68
|
+
* - `cwd`, `policy`, `yes`, `model`, `verbose` are inherited
|
|
69
|
+
*/
|
|
70
|
+
export declare function buildSubagentContext(req: SubagentRequest, parentCtx: AgentContext): AgentContext;
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=subagent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/agent/subagent.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gEAAgE;IAChE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,UAAU,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACvF,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,UAAU,eAAe;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AASD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,YAAY,EACvB,YAAY,GAAE,OAAO,CAAC,eAAe,CAAM,GAC1C,OAAO,CAAC,cAAc,CAAC,CAoCzB;AA2FD,wDAAwD;AACxD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAEhF;AAED,uDAAuD;AACvD,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,YAAY,GACtB,YAAY,CAad"}
|