fixo-cli 1.0.4 → 2.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.
Potentially problematic release.
This version of fixo-cli might be problematic. Click here for more details.
- package/CHANGELOG.md +62 -0
- package/README.md +18 -14
- package/dist/agent/agent-client.d.ts +28 -6
- package/dist/agent/agent-client.d.ts.map +1 -1
- package/dist/agent/agent-client.js +118 -39
- package/dist/agent/agent-client.js.map +1 -1
- package/dist/agent/agent-pool.d.ts +55 -6
- package/dist/agent/agent-pool.d.ts.map +1 -1
- package/dist/agent/agent-pool.js +120 -20
- package/dist/agent/agent-pool.js.map +1 -1
- package/dist/agent/auto-verifier.d.ts +55 -0
- package/dist/agent/auto-verifier.d.ts.map +1 -0
- package/dist/agent/auto-verifier.js +50 -0
- package/dist/agent/auto-verifier.js.map +1 -0
- package/dist/agent/command-parser.d.ts.map +1 -1
- package/dist/agent/command-parser.js +176 -0
- package/dist/agent/command-parser.js.map +1 -1
- package/dist/agent/context-builder.d.ts +24 -0
- package/dist/agent/context-builder.d.ts.map +1 -0
- package/dist/agent/context-builder.js +197 -0
- package/dist/agent/context-builder.js.map +1 -0
- package/dist/agent/conversation.d.ts +14 -1
- package/dist/agent/conversation.d.ts.map +1 -1
- package/dist/agent/conversation.js +53 -7
- package/dist/agent/conversation.js.map +1 -1
- package/dist/agent/mcp-bridge.js +1 -1
- package/dist/agent/mcp-bridge.js.map +1 -1
- package/dist/agent/orchestrator.d.ts +45 -0
- package/dist/agent/orchestrator.d.ts.map +1 -1
- package/dist/agent/orchestrator.js +140 -3
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/parser-adapter.d.ts +17 -0
- package/dist/agent/parser-adapter.d.ts.map +1 -1
- package/dist/agent/parser-adapter.js +254 -2
- package/dist/agent/parser-adapter.js.map +1 -1
- package/dist/agent/predictive-gate.d.ts.map +1 -1
- package/dist/agent/predictive-gate.js +4 -1
- package/dist/agent/predictive-gate.js.map +1 -1
- package/dist/agent/providers-manager.d.ts +5 -0
- package/dist/agent/providers-manager.d.ts.map +1 -1
- package/dist/agent/providers-manager.js +119 -8
- package/dist/agent/providers-manager.js.map +1 -1
- package/dist/agent/repo-map.d.ts +18 -1
- package/dist/agent/repo-map.d.ts.map +1 -1
- package/dist/agent/repo-map.js +144 -54
- package/dist/agent/repo-map.js.map +1 -1
- package/dist/agent/retry.js +1 -2
- package/dist/agent/retry.js.map +1 -1
- package/dist/agent/single-agent.d.ts.map +1 -1
- package/dist/agent/single-agent.js +129 -22
- package/dist/agent/single-agent.js.map +1 -1
- package/dist/agent/skills.d.ts.map +1 -1
- package/dist/agent/skills.js +2 -1
- package/dist/agent/skills.js.map +1 -1
- package/dist/agent/subagent.js +2 -2
- package/dist/agent/subagent.js.map +1 -1
- package/dist/agent/task-router.d.ts +46 -0
- package/dist/agent/task-router.d.ts.map +1 -0
- package/dist/agent/task-router.js +352 -0
- package/dist/agent/task-router.js.map +1 -0
- package/dist/agent/telemetry.d.ts +29 -1
- package/dist/agent/telemetry.d.ts.map +1 -1
- package/dist/agent/telemetry.js +25 -10
- package/dist/agent/telemetry.js.map +1 -1
- package/dist/agent/tool-definitions.d.ts +3 -0
- package/dist/agent/tool-definitions.d.ts.map +1 -0
- package/dist/agent/tool-definitions.js +519 -0
- package/dist/agent/tool-definitions.js.map +1 -0
- package/dist/agent/tool-executor.d.ts +6 -1
- package/dist/agent/tool-executor.d.ts.map +1 -1
- package/dist/agent/tool-executor.js +99 -553
- package/dist/agent/tool-executor.js.map +1 -1
- package/dist/agent/tools/command-tools.d.ts +6 -0
- package/dist/agent/tools/command-tools.d.ts.map +1 -0
- package/dist/agent/tools/command-tools.js +104 -0
- package/dist/agent/tools/command-tools.js.map +1 -0
- package/dist/agent/tools/file-tools.d.ts +15 -0
- package/dist/agent/tools/file-tools.d.ts.map +1 -0
- package/dist/agent/tools/file-tools.js +551 -0
- package/dist/agent/tools/file-tools.js.map +1 -0
- package/dist/agent/tools/todo-tools.d.ts +3 -0
- package/dist/agent/tools/todo-tools.d.ts.map +1 -0
- package/dist/agent/tools/todo-tools.js +70 -0
- package/dist/agent/tools/todo-tools.js.map +1 -0
- package/dist/agent/web-impl.d.ts.map +1 -1
- package/dist/agent/web-impl.js +45 -0
- package/dist/agent/web-impl.js.map +1 -1
- package/dist/agent/worker-agent.d.ts +3 -1
- package/dist/agent/worker-agent.d.ts.map +1 -1
- package/dist/agent/worker-agent.js +51 -14
- package/dist/agent/worker-agent.js.map +1 -1
- package/dist/config.d.ts +242 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +79 -0
- package/dist/config.js.map +1 -1
- package/dist/git/git-manager.d.ts +33 -2
- package/dist/git/git-manager.d.ts.map +1 -1
- package/dist/git/git-manager.js +111 -15
- package/dist/git/git-manager.js.map +1 -1
- package/dist/git/git-ops.d.ts.map +1 -1
- package/dist/git/git-ops.js +2 -1
- package/dist/git/git-ops.js.map +1 -1
- package/dist/index.js +85 -8
- package/dist/index.js.map +1 -1
- package/dist/lsp/lsp-manager.js +1 -1
- package/dist/lsp/lsp-manager.js.map +1 -1
- package/dist/model-outcomes.d.ts.map +1 -1
- package/dist/model-outcomes.js +2 -1
- package/dist/model-outcomes.js.map +1 -1
- package/dist/planner.d.ts +0 -9
- package/dist/planner.d.ts.map +1 -1
- package/dist/planner.js +0 -9
- package/dist/planner.js.map +1 -1
- package/dist/project-memory.d.ts +12 -1
- package/dist/project-memory.d.ts.map +1 -1
- package/dist/project-memory.js +8 -6
- package/dist/project-memory.js.map +1 -1
- package/dist/runtime/loop-mitigation.d.ts +78 -7
- package/dist/runtime/loop-mitigation.d.ts.map +1 -1
- package/dist/runtime/loop-mitigation.js +122 -9
- package/dist/runtime/loop-mitigation.js.map +1 -1
- package/dist/runtime/os-sandbox.d.ts +100 -0
- package/dist/runtime/os-sandbox.d.ts.map +1 -0
- package/dist/runtime/os-sandbox.js +246 -0
- package/dist/runtime/os-sandbox.js.map +1 -0
- package/dist/runtime/run-inventory.d.ts +17 -0
- package/dist/runtime/run-inventory.d.ts.map +1 -0
- package/dist/runtime/run-inventory.js +49 -0
- package/dist/runtime/run-inventory.js.map +1 -0
- package/dist/runtime/staging.d.ts.map +1 -1
- package/dist/runtime/staging.js +4 -1
- package/dist/runtime/staging.js.map +1 -1
- package/dist/runtime/task-session.d.ts +14 -0
- package/dist/runtime/task-session.d.ts.map +1 -1
- package/dist/runtime/task-session.js +26 -0
- package/dist/runtime/task-session.js.map +1 -1
- package/dist/setup-wizard.d.ts +11 -3
- package/dist/setup-wizard.d.ts.map +1 -1
- package/dist/setup-wizard.js +113 -15
- package/dist/setup-wizard.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/commands/context-commands.d.ts +7 -0
- package/dist/ui/commands/context-commands.d.ts.map +1 -0
- package/dist/ui/commands/context-commands.js +241 -0
- package/dist/ui/commands/context-commands.js.map +1 -0
- package/dist/ui/commands/index.d.ts +3 -0
- package/dist/ui/commands/index.d.ts.map +1 -0
- package/dist/ui/commands/index.js +46 -0
- package/dist/ui/commands/index.js.map +1 -0
- package/dist/ui/commands/info-commands.d.ts +15 -0
- package/dist/ui/commands/info-commands.d.ts.map +1 -0
- package/dist/ui/commands/info-commands.js +122 -0
- package/dist/ui/commands/info-commands.js.map +1 -0
- package/dist/ui/commands/model-commands.d.ts +5 -0
- package/dist/ui/commands/model-commands.d.ts.map +1 -0
- package/dist/ui/commands/model-commands.js +417 -0
- package/dist/ui/commands/model-commands.js.map +1 -0
- package/dist/ui/commands/session-commands.d.ts +5 -0
- package/dist/ui/commands/session-commands.d.ts.map +1 -0
- package/dist/ui/commands/session-commands.js +154 -0
- package/dist/ui/commands/session-commands.js.map +1 -0
- package/dist/ui/commands/task-commands.d.ts +8 -0
- package/dist/ui/commands/task-commands.d.ts.map +1 -0
- package/dist/ui/commands/task-commands.js +152 -0
- package/dist/ui/commands/task-commands.js.map +1 -0
- package/dist/ui/commands/types.d.ts +46 -0
- package/dist/ui/commands/types.d.ts.map +1 -0
- package/dist/ui/commands/types.js +2 -0
- package/dist/ui/commands/types.js.map +1 -0
- package/dist/ui/commands/workspace-commands.d.ts +8 -0
- package/dist/ui/commands/workspace-commands.d.ts.map +1 -0
- package/dist/ui/commands/workspace-commands.js +131 -0
- package/dist/ui/commands/workspace-commands.js.map +1 -0
- package/dist/ui/loading-animation.d.ts +24 -0
- package/dist/ui/loading-animation.d.ts.map +1 -0
- package/dist/ui/loading-animation.js +123 -0
- package/dist/ui/loading-animation.js.map +1 -0
- package/dist/ui/markdown-stream.js +2 -2
- package/dist/ui/markdown-stream.js.map +1 -1
- package/dist/ui/prompt.d.ts +7 -0
- package/dist/ui/prompt.d.ts.map +1 -1
- package/dist/ui/prompt.js +435 -1214
- package/dist/ui/prompt.js.map +1 -1
- package/dist/ui/render-primitives.d.ts +6 -0
- package/dist/ui/render-primitives.d.ts.map +1 -1
- package/dist/ui/render-primitives.js +30 -13
- package/dist/ui/render-primitives.js.map +1 -1
- package/dist/ui/render.d.ts.map +1 -1
- package/dist/ui/render.js +2 -0
- package/dist/ui/render.js.map +1 -1
- package/package.json +17 -3
- package/scripts/check-vendor-wasm.js +11 -0
- package/vendor/tree-sitter-go.wasm +0 -0
- package/vendor/tree-sitter-javascript.wasm +0 -0
- package/vendor/tree-sitter-python.wasm +0 -0
- package/vendor/tree-sitter-rust.wasm +0 -0
- package/vendor/tree-sitter-tsx.wasm +0 -0
- package/vendor/tree-sitter-typescript.wasm +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-verifier.js","sourceRoot":"","sources":["../../src/agent/auto-verifier.ts"],"names":[],"mappings":"AA4BA;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA0B;IACzD,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QACtC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAC/C,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;IAChE,IAAI,KAAK,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC;QAC7B,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACvB,CAAC;AAKD;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAAE,OAAO,YAAY,CAAC;IAC9E,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,OAAO,CACL,yEAAyE;QACzE,mHAAmH;QACnH,YAAY,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../../src/agent/command-parser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,cAAc,GACd,KAAK,GACL,YAAY,GACZ,oBAAoB,CAAC;AAEzB,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,IAAI,EAAE,eAAe,CAAC;IACtB,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAqF9D;AAqHD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAGjF;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../../src/agent/command-parser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,cAAc,GACd,KAAK,GACL,YAAY,GACZ,oBAAoB,CAAC;AAEzB,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,IAAI,EAAE,eAAe,CAAC;IACtB,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAqF9D;AAqHD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAGjF;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAqLD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoMxG;AAID;;;;;;GAMG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpD"}
|
|
@@ -250,6 +250,72 @@ const DANGEROUS_MODIFIERS = new Set([
|
|
|
250
250
|
const DANGEROUS_READERS = new Set([
|
|
251
251
|
'cat', 'less', 'more', 'grep', 'head', 'tail'
|
|
252
252
|
]);
|
|
253
|
+
const KNOWN_SCAFFOLDERS = [
|
|
254
|
+
{
|
|
255
|
+
bin: 'npx',
|
|
256
|
+
isScaffolder: (args) => args.length > 0 && args[0].startsWith('create-'),
|
|
257
|
+
extractTargetPath: (args) => {
|
|
258
|
+
const posArgs = args.filter(a => !a.startsWith('-'));
|
|
259
|
+
return posArgs.length > 1 ? posArgs[1] : null;
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
bin: 'npm',
|
|
264
|
+
isScaffolder: (args) => args.length > 0 && (args[0] === 'create' || args[0] === 'init'),
|
|
265
|
+
extractTargetPath: (args) => {
|
|
266
|
+
const posArgs = args.filter(a => !a.startsWith('-'));
|
|
267
|
+
return posArgs.length > 2 ? posArgs[2] : null;
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
bin: 'yarn',
|
|
272
|
+
isScaffolder: (args) => args.length > 0 && args[0] === 'create',
|
|
273
|
+
extractTargetPath: (args) => {
|
|
274
|
+
const posArgs = args.filter(a => !a.startsWith('-'));
|
|
275
|
+
return posArgs.length > 2 ? posArgs[2] : null;
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
bin: 'pnpm',
|
|
280
|
+
isScaffolder: (args) => args.length > 0 && args[0] === 'create',
|
|
281
|
+
extractTargetPath: (args) => {
|
|
282
|
+
const posArgs = args.filter(a => !a.startsWith('-'));
|
|
283
|
+
return posArgs.length > 2 ? posArgs[2] : null;
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
bin: 'git',
|
|
288
|
+
isScaffolder: (args) => args.length > 0 && args[0] === 'clone',
|
|
289
|
+
extractTargetPath: (args) => {
|
|
290
|
+
const posArgs = args.filter(a => !a.startsWith('-'));
|
|
291
|
+
if (posArgs.length > 2)
|
|
292
|
+
return posArgs[2];
|
|
293
|
+
if (posArgs.length === 2) {
|
|
294
|
+
const url = posArgs[1];
|
|
295
|
+
let base = url.split('/').pop() || '';
|
|
296
|
+
if (base.endsWith('.git'))
|
|
297
|
+
base = base.slice(0, -4);
|
|
298
|
+
return base || null;
|
|
299
|
+
}
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
bin: 'degit',
|
|
305
|
+
isScaffolder: () => true,
|
|
306
|
+
extractTargetPath: (args) => {
|
|
307
|
+
const posArgs = args.filter(a => !a.startsWith('-'));
|
|
308
|
+
if (posArgs.length > 1)
|
|
309
|
+
return posArgs[1];
|
|
310
|
+
if (posArgs.length === 1) {
|
|
311
|
+
const repo = posArgs[0];
|
|
312
|
+
const parts = repo.split('/');
|
|
313
|
+
return parts.length > 0 ? parts[parts.length - 1] : null;
|
|
314
|
+
}
|
|
315
|
+
return null;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
];
|
|
253
319
|
/**
|
|
254
320
|
* System binaries that the agent is permitted to invoke even when
|
|
255
321
|
* referenced via an absolute or workspace-relative path that resolves
|
|
@@ -283,6 +349,50 @@ function expandHome(p) {
|
|
|
283
349
|
}
|
|
284
350
|
return p;
|
|
285
351
|
}
|
|
352
|
+
/**
|
|
353
|
+
* Phase 1a — value-arg-aware positional extraction.
|
|
354
|
+
*
|
|
355
|
+
* Given the raw arg list of a command, return the positional args
|
|
356
|
+
* (i.e. NOT flags AND NOT the value of a known value-taking flag).
|
|
357
|
+
*
|
|
358
|
+
* Without this, `find . -type f` would expose `f` as a positional —
|
|
359
|
+
* the directory-creation heuristic then mistakes it for a new
|
|
360
|
+
* directory name. The list covers the value-taking flags of the
|
|
361
|
+
* common POSIX inspection tools (`find`, `grep`, `awk`, etc.) that
|
|
362
|
+
* are most often confused.
|
|
363
|
+
*/
|
|
364
|
+
const VALUE_TAKING_FLAGS = new Set([
|
|
365
|
+
// `find` predicates that consume the next arg
|
|
366
|
+
'-type', '-name', '-iname', '-path', '-ipath', '-regex', '-iregex',
|
|
367
|
+
'-perm', '-newer', '-mtime', '-atime', '-ctime', '-mmin', '-amin', '-cmin',
|
|
368
|
+
'-size', '-user', '-group', '-uid', '-gid',
|
|
369
|
+
'-maxdepth', '-mindepth', '-depth',
|
|
370
|
+
'-exec', '-execdir', '-ok', '-okdir',
|
|
371
|
+
'-printf', '-fprintf', '-fprint',
|
|
372
|
+
// grep / ripgrep style
|
|
373
|
+
'-e', '-f', '--include', '--exclude', '--include-dir', '--exclude-dir',
|
|
374
|
+
'--max-count', '--max-depth', '--context', '--before-context', '--after-context',
|
|
375
|
+
// common short flags that take a value
|
|
376
|
+
'-A', '-B', '-C', '-o', '-n',
|
|
377
|
+
// sed/awk
|
|
378
|
+
'-F',
|
|
379
|
+
]);
|
|
380
|
+
function stripFlagValues(args) {
|
|
381
|
+
const out = [];
|
|
382
|
+
for (let i = 0; i < args.length; i++) {
|
|
383
|
+
const a = args[i];
|
|
384
|
+
if (a.startsWith('-')) {
|
|
385
|
+
// If this is a known value-taking flag AND there's a next arg
|
|
386
|
+
// that isn't itself a flag, skip the next arg too.
|
|
387
|
+
if (VALUE_TAKING_FLAGS.has(a) && i + 1 < args.length && !args[i + 1].startsWith('-')) {
|
|
388
|
+
i++; // consume the value
|
|
389
|
+
}
|
|
390
|
+
continue;
|
|
391
|
+
}
|
|
392
|
+
out.push(a);
|
|
393
|
+
}
|
|
394
|
+
return out;
|
|
395
|
+
}
|
|
286
396
|
function describeKind(t) {
|
|
287
397
|
switch (t.kind) {
|
|
288
398
|
case 'redirect': return 'shell redirect (>, >>)';
|
|
@@ -372,6 +482,72 @@ export async function isCommandSafe(command, workspaceRoot) {
|
|
|
372
482
|
};
|
|
373
483
|
}
|
|
374
484
|
}
|
|
485
|
+
// Identify scaffolders and extract target path
|
|
486
|
+
const scaffolder = KNOWN_SCAFFOLDERS.find(s => s.bin === binBasename);
|
|
487
|
+
if (scaffolder && scaffolder.isScaffolder(cmd.arguments)) {
|
|
488
|
+
const targetPath = scaffolder.extractTargetPath(cmd.arguments);
|
|
489
|
+
if (targetPath) {
|
|
490
|
+
const cleanArg = unquote(targetPath);
|
|
491
|
+
// Expand home paths
|
|
492
|
+
let targetFullPath = cleanArg;
|
|
493
|
+
if (cleanArg === '~') {
|
|
494
|
+
targetFullPath = os.homedir();
|
|
495
|
+
}
|
|
496
|
+
else if (cleanArg.startsWith('~/') || cleanArg.startsWith('~\\')) {
|
|
497
|
+
targetFullPath = path.join(os.homedir(), cleanArg.slice(2));
|
|
498
|
+
}
|
|
499
|
+
const resolved = path.resolve(workspaceRoot, targetFullPath);
|
|
500
|
+
if (!guard.isInside(resolved)) {
|
|
501
|
+
return {
|
|
502
|
+
safe: false,
|
|
503
|
+
reason: `Scaffolding command '${cmd.binary}' attempts to create a project outside the workspace root (${targetPath})`,
|
|
504
|
+
affectedPath: resolved
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
else {
|
|
510
|
+
// Unknown command that might be directory-creating.
|
|
511
|
+
//
|
|
512
|
+
// Phase 1a — the original heuristic flagged every bare positional
|
|
513
|
+
// arg matching /^[a-zA-Z0-9_-]+$/ as "looks like a new directory".
|
|
514
|
+
// Two bugs:
|
|
515
|
+
// 1. Standard POSIX inspection tools (`find`, `awk`, `sed`, etc.)
|
|
516
|
+
// were not in the non-scaffolder allowlist, so they fell into
|
|
517
|
+
// this branch.
|
|
518
|
+
// 2. Value-args of known flags (`-type f`, `-name foo`) were
|
|
519
|
+
// treated as positional. `find . -type f` flagged `f` as a
|
|
520
|
+
// new directory name. Comically wrong; observed in the
|
|
521
|
+
// June 22, 2026 log session.
|
|
522
|
+
//
|
|
523
|
+
// Fix: extend the allowlist for tools known never to create
|
|
524
|
+
// directories from a bare arg, AND strip value-args of known
|
|
525
|
+
// value-taking flags before computing positionals.
|
|
526
|
+
const COMMON_NON_SCAFFOLDERS = new Set([
|
|
527
|
+
'echo', 'git', 'node', 'npm', 'npx', 'yarn', 'pnpm', 'bash', 'sh',
|
|
528
|
+
'cat', 'grep', 'mkdir', 'rm', 'ls', 'cd', 'pwd', 'mv', 'cp', 'touch',
|
|
529
|
+
'python', 'python3', 'go', 'cargo', 'docker', 'docker-compose',
|
|
530
|
+
// Phase 1a additions — standard POSIX inspection/transform tools
|
|
531
|
+
// that take bare args as filters or input files, never as new
|
|
532
|
+
// directory targets.
|
|
533
|
+
'find', 'awk', 'sed', 'xargs', 'jq', 'tar', 'head', 'tail', 'sort',
|
|
534
|
+
'uniq', 'wc', 'tr', 'cut', 'tee', 'less', 'more', 'file', 'stat',
|
|
535
|
+
'basename', 'dirname', 'readlink', 'which', 'whereis',
|
|
536
|
+
]);
|
|
537
|
+
if (!COMMON_NON_SCAFFOLDERS.has(binBasename) && !DANGEROUS_MODIFIERS.has(binBasename) && !DANGEROUS_READERS.has(binBasename) && cmd.arguments.length > 0) {
|
|
538
|
+
const positionalArgs = stripFlagValues(cmd.arguments);
|
|
539
|
+
if (positionalArgs.length > 0) {
|
|
540
|
+
const lastArg = unquote(positionalArgs[positionalArgs.length - 1]);
|
|
541
|
+
if (lastArg.match(/^[a-zA-Z0-9_-]+$/) && !lastArg.startsWith('./') && !lastArg.startsWith('/') && !lastArg.startsWith('~')) {
|
|
542
|
+
return {
|
|
543
|
+
safe: false,
|
|
544
|
+
reason: `Command '${cmd.binary}' looks like it might create a new directory ('${lastArg}'). Please confirm execution.`,
|
|
545
|
+
affectedPath: path.resolve(workspaceRoot, lastArg)
|
|
546
|
+
};
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
}
|
|
375
551
|
for (const arg of cmd.arguments) {
|
|
376
552
|
if (arg.startsWith('-'))
|
|
377
553
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-parser.js","sourceRoot":"","sources":["../../src/agent/command-parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command-parser.js","sourceRoot":"","sources":["../../src/agent/command-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { LspManager } from '../lsp/lsp-manager.js';
|
|
2
|
+
/** A file the run intends to mutate; symbols may be left implicit. */
|
|
3
|
+
export interface ReferenceTarget {
|
|
4
|
+
/** Absolute path to the file to inspect. */
|
|
5
|
+
file: string;
|
|
6
|
+
/**
|
|
7
|
+
* Optional explicit list of symbol names to look up. When omitted,
|
|
8
|
+
* the helper extracts top-level exported symbols from the file
|
|
9
|
+
* (capped at {@link MAX_SYMBOLS_PER_FILE}) and uses those.
|
|
10
|
+
*/
|
|
11
|
+
symbols?: string[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Build a markdown block describing cross-file references for the
|
|
15
|
+
* given targets. Returns an empty string when no targets, no LSP
|
|
16
|
+
* support, or no references were found — making this safe to splice
|
|
17
|
+
* unconditionally into a system prompt.
|
|
18
|
+
*
|
|
19
|
+
* `getLspManager` is taken as a callable rather than imported
|
|
20
|
+
* directly so this module stays out of the tool-executor's import
|
|
21
|
+
* cycle and is testable with a stub.
|
|
22
|
+
*/
|
|
23
|
+
export declare function gatherReferencesForTargets(cwd: string, targets: ReferenceTarget[], getLspManager: () => LspManager | null): Promise<string>;
|
|
24
|
+
//# sourceMappingURL=context-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../src/agent/context-builder.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAQD;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,eAAe,EAAE,EAC1B,aAAa,EAAE,MAAM,UAAU,GAAG,IAAI,GACrC,OAAO,CAAC,MAAM,CAAC,CAmFjB"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* context-builder.ts — Phase 3.2 automatic LSP-driven context.
|
|
3
|
+
*
|
|
4
|
+
* Before: `lsp_find_references` was a model-callable tool. The agent
|
|
5
|
+
* had to *think* to call it before editing a function — meaning that
|
|
6
|
+
* unless the prompt explicitly asked for "find all callers", the
|
|
7
|
+
* model would happily rename `foo()` in one file and leave the three
|
|
8
|
+
* other call sites broken.
|
|
9
|
+
*
|
|
10
|
+
* After: when the agent is about to edit a known set of files
|
|
11
|
+
* (user-pinned via /select, or planner-identified as mutation
|
|
12
|
+
* targets), this module proactively asks the LSP for the references
|
|
13
|
+
* of each top-level symbol and prepends a compact "Cross-file
|
|
14
|
+
* references" block to the first system prompt. The model now sees
|
|
15
|
+
* the call sites without having to think to ask.
|
|
16
|
+
*
|
|
17
|
+
* Graceful degradation:
|
|
18
|
+
* - No LSP server on $PATH (typescript-language-server / pyright /
|
|
19
|
+
* gopls / rust-analyzer) → returns empty string, scan continues.
|
|
20
|
+
* - Target file doesn't exist → skip, no error.
|
|
21
|
+
* - Parser adapter unavailable → skip the symbol pre-extraction
|
|
22
|
+
* step; the function caller falls back to silent no-op.
|
|
23
|
+
* - LSP call times out or errors → skip that target, continue.
|
|
24
|
+
*
|
|
25
|
+
* In all failure modes the caller can prepend the returned string
|
|
26
|
+
* unconditionally; an empty string is a clean no-op for the system
|
|
27
|
+
* prompt.
|
|
28
|
+
*/
|
|
29
|
+
import fs from 'node:fs';
|
|
30
|
+
import path from 'node:path';
|
|
31
|
+
import { ParserFactory, languageIdFromExtension, } from './parser-adapter.js';
|
|
32
|
+
/** Default caps tuned to keep the context block compact. */
|
|
33
|
+
const MAX_SYMBOLS_PER_FILE = 4;
|
|
34
|
+
const MAX_REFS_PER_SYMBOL = 6;
|
|
35
|
+
const MAX_TARGETS = 8;
|
|
36
|
+
const MAX_LSP_WAIT_MS = 1500;
|
|
37
|
+
/**
|
|
38
|
+
* Build a markdown block describing cross-file references for the
|
|
39
|
+
* given targets. Returns an empty string when no targets, no LSP
|
|
40
|
+
* support, or no references were found — making this safe to splice
|
|
41
|
+
* unconditionally into a system prompt.
|
|
42
|
+
*
|
|
43
|
+
* `getLspManager` is taken as a callable rather than imported
|
|
44
|
+
* directly so this module stays out of the tool-executor's import
|
|
45
|
+
* cycle and is testable with a stub.
|
|
46
|
+
*/
|
|
47
|
+
export async function gatherReferencesForTargets(cwd, targets, getLspManager) {
|
|
48
|
+
if (targets.length === 0)
|
|
49
|
+
return '';
|
|
50
|
+
const limited = targets.slice(0, MAX_TARGETS);
|
|
51
|
+
const lsp = getLspManager();
|
|
52
|
+
if (!lsp)
|
|
53
|
+
return '';
|
|
54
|
+
// Load the parser adapter once. Used for symbol-line lookup when
|
|
55
|
+
// the caller didn't pre-specify symbols.
|
|
56
|
+
let adapter = null;
|
|
57
|
+
try {
|
|
58
|
+
adapter = await ParserFactory.getParser();
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// safe: parser unavailable → we can still proceed if the caller
|
|
62
|
+
// pre-specified explicit symbols, otherwise we'll produce nothing.
|
|
63
|
+
adapter = null;
|
|
64
|
+
}
|
|
65
|
+
const blocks = [];
|
|
66
|
+
for (const target of limited) {
|
|
67
|
+
if (!fs.existsSync(target.file))
|
|
68
|
+
continue;
|
|
69
|
+
const ext = path.extname(target.file);
|
|
70
|
+
const language = languageIdFromExtension(ext);
|
|
71
|
+
if (language === 'generic')
|
|
72
|
+
continue;
|
|
73
|
+
let symbolsForTarget = [];
|
|
74
|
+
if (target.symbols && target.symbols.length > 0) {
|
|
75
|
+
symbolsForTarget = target.symbols.slice(0, MAX_SYMBOLS_PER_FILE).map((name) => ({
|
|
76
|
+
name,
|
|
77
|
+
line: locateSymbolLine(target.file, name) ?? 1,
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
else if (adapter) {
|
|
81
|
+
try {
|
|
82
|
+
if (adapter.name === 'tree-sitter') {
|
|
83
|
+
// The parser may not have pre-loaded this language yet.
|
|
84
|
+
// We load it best-effort; failure just means the regex
|
|
85
|
+
// extractor runs instead.
|
|
86
|
+
const ts = adapter;
|
|
87
|
+
if (ts.loadLanguage)
|
|
88
|
+
await ts.loadLanguage(language);
|
|
89
|
+
}
|
|
90
|
+
const source = fs.readFileSync(target.file, 'utf-8');
|
|
91
|
+
const symbols = adapter.extractSymbols(source, language);
|
|
92
|
+
symbolsForTarget = pickTopSymbols(symbols).map((s) => ({ name: s.name, line: s.line }));
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// safe: this target gets no symbols → skipped below
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
if (symbolsForTarget.length === 0)
|
|
103
|
+
continue;
|
|
104
|
+
const fileRel = path.relative(cwd, target.file) || target.file;
|
|
105
|
+
const symbolLines = [];
|
|
106
|
+
for (const sym of symbolsForTarget) {
|
|
107
|
+
const refs = await callWithTimeout(lsp.findReferences(target.file, sym.line - 1, 0), MAX_LSP_WAIT_MS);
|
|
108
|
+
const formatted = formatReferences(cwd, target.file, refs);
|
|
109
|
+
if (formatted.length === 0)
|
|
110
|
+
continue;
|
|
111
|
+
symbolLines.push(`- \`${sym.name}\` (${fileRel}:${sym.line}) → ${formatted.slice(0, MAX_REFS_PER_SYMBOL).join(', ')}`);
|
|
112
|
+
}
|
|
113
|
+
if (symbolLines.length > 0) {
|
|
114
|
+
blocks.push(`### ${fileRel}\n${symbolLines.join('\n')}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (blocks.length === 0)
|
|
118
|
+
return '';
|
|
119
|
+
return [
|
|
120
|
+
'## Cross-file references (LSP-derived, auto-collected)',
|
|
121
|
+
'These are symbols defined in files this run is likely to mutate, with their other call sites. Update all sites when renaming or changing a signature.',
|
|
122
|
+
'',
|
|
123
|
+
...blocks,
|
|
124
|
+
].join('\n');
|
|
125
|
+
}
|
|
126
|
+
/* ──────────────────────── Helpers ──────────────────────── */
|
|
127
|
+
/** Pick the most likely "important" symbols: exported first, then by source order. */
|
|
128
|
+
function pickTopSymbols(symbols) {
|
|
129
|
+
const exported = symbols.filter((s) => s.exported);
|
|
130
|
+
const pool = exported.length > 0 ? exported : symbols;
|
|
131
|
+
return pool.slice(0, MAX_SYMBOLS_PER_FILE);
|
|
132
|
+
}
|
|
133
|
+
/** Find the 1-based line where `symbolName` is declared. Returns null on miss. */
|
|
134
|
+
function locateSymbolLine(filePath, symbolName) {
|
|
135
|
+
try {
|
|
136
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
137
|
+
const lines = content.split('\n');
|
|
138
|
+
// Look for a word boundary match preceded by a likely declaration
|
|
139
|
+
// keyword. This is a heuristic — the LSP only needs a line/column
|
|
140
|
+
// anywhere inside the identifier to resolve references.
|
|
141
|
+
const re = new RegExp(`\\b${escapeRegExp(symbolName)}\\b`);
|
|
142
|
+
for (let i = 0; i < lines.length; i++) {
|
|
143
|
+
if (re.test(lines[i]))
|
|
144
|
+
return i + 1;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
// safe: file unreadable → no line, caller skips
|
|
149
|
+
}
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
function escapeRegExp(s) {
|
|
153
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
154
|
+
}
|
|
155
|
+
function formatReferences(cwd, originFile, refs) {
|
|
156
|
+
if (!Array.isArray(refs))
|
|
157
|
+
return [];
|
|
158
|
+
const seen = new Set();
|
|
159
|
+
const out = [];
|
|
160
|
+
for (const ref of refs) {
|
|
161
|
+
if (!ref?.uri || !ref.range?.start)
|
|
162
|
+
continue;
|
|
163
|
+
let abs = ref.uri;
|
|
164
|
+
if (abs.startsWith('file://'))
|
|
165
|
+
abs = decodeURIComponent(abs.slice(7));
|
|
166
|
+
// Skip the origin file itself — those references are local and
|
|
167
|
+
// already obvious to the model from the file it's about to edit.
|
|
168
|
+
if (path.resolve(abs) === path.resolve(originFile))
|
|
169
|
+
continue;
|
|
170
|
+
const rel = path.relative(cwd, abs) || abs;
|
|
171
|
+
const key = `${rel}:${ref.range.start.line + 1}`;
|
|
172
|
+
if (seen.has(key))
|
|
173
|
+
continue;
|
|
174
|
+
seen.add(key);
|
|
175
|
+
out.push(key);
|
|
176
|
+
}
|
|
177
|
+
return out;
|
|
178
|
+
}
|
|
179
|
+
async function callWithTimeout(promise, ms) {
|
|
180
|
+
let timer = null;
|
|
181
|
+
try {
|
|
182
|
+
return await Promise.race([
|
|
183
|
+
promise,
|
|
184
|
+
new Promise((resolve) => {
|
|
185
|
+
timer = setTimeout(() => resolve(null), ms);
|
|
186
|
+
}),
|
|
187
|
+
]);
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
finally {
|
|
193
|
+
if (timer)
|
|
194
|
+
clearTimeout(timer);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=context-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../src/agent/context-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,11 @@ import type { AgentClient } from './agent-client.js';
|
|
|
17
17
|
* tokens (predictive gate, budget planner) can use the answer directly.
|
|
18
18
|
*/
|
|
19
19
|
export declare function resolveModelContextLimit(model: string | undefined | null): number;
|
|
20
|
+
/**
|
|
21
|
+
* Strips known model-special tokens from user content or tool results.
|
|
22
|
+
* Prevents prompt-injection-style early termination or role switching.
|
|
23
|
+
*/
|
|
24
|
+
export declare function sanitizeUserContent(text: string): string;
|
|
20
25
|
export declare class ConversationManager {
|
|
21
26
|
private history;
|
|
22
27
|
private maxTokenBudget;
|
|
@@ -26,9 +31,11 @@ export declare class ConversationManager {
|
|
|
26
31
|
/**
|
|
27
32
|
* When set (>0), `getTotalTokens()` returns this value instead of
|
|
28
33
|
* summing the history. Used by `--resume` so the restored session
|
|
29
|
-
* shows the same token count the user saw at save time.
|
|
34
|
+
* shows the same token count the user saw at save time. It is also
|
|
35
|
+
* used to cache the provider-reported total tokens for accurate UI.
|
|
30
36
|
*/
|
|
31
37
|
private tokenOverride;
|
|
38
|
+
private lastSystemTokens;
|
|
32
39
|
constructor(maxTokenBudget?: number);
|
|
33
40
|
/**
|
|
34
41
|
* Auto-configure the context budget based on the model being used.
|
|
@@ -55,8 +62,14 @@ export declare class ConversationManager {
|
|
|
55
62
|
private estimateMessageTokens;
|
|
56
63
|
/**
|
|
57
64
|
* Calculate the total estimated token count across the entire history.
|
|
65
|
+
* Includes system prompt and summary tokens if known.
|
|
58
66
|
*/
|
|
59
67
|
getTotalTokens(): number;
|
|
68
|
+
/**
|
|
69
|
+
* Update the UI's understanding of our token usage by feeding back
|
|
70
|
+
* the exact count reported by the LLM provider.
|
|
71
|
+
*/
|
|
72
|
+
setProviderReportedTokens(tokens: number): void;
|
|
60
73
|
/**
|
|
61
74
|
* Restore the conversation from a previously-saved snapshot. Replaces
|
|
62
75
|
* the entire history, summary, and token override atomically. The
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/agent/conversation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/agent/conversation.ts"],"names":[],"mappings":"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"}
|