@oxagen/cli 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -3
- package/dist/agent/__tests__/code-graph.test.d.ts +2 -0
- package/dist/agent/__tests__/code-graph.test.d.ts.map +1 -0
- package/dist/agent/__tests__/code-graph.test.js +83 -0
- package/dist/agent/__tests__/code-graph.test.js.map +1 -0
- package/dist/agent/__tests__/evaluator.test.d.ts +2 -0
- package/dist/agent/__tests__/evaluator.test.d.ts.map +1 -0
- package/dist/agent/__tests__/evaluator.test.js +96 -0
- package/dist/agent/__tests__/evaluator.test.js.map +1 -0
- package/dist/agent/__tests__/fleet-memory.test.d.ts +2 -0
- package/dist/agent/__tests__/fleet-memory.test.d.ts.map +1 -0
- package/dist/agent/__tests__/fleet-memory.test.js +107 -0
- package/dist/agent/__tests__/fleet-memory.test.js.map +1 -0
- package/dist/agent/__tests__/fleet-store.test.d.ts +2 -0
- package/dist/agent/__tests__/fleet-store.test.d.ts.map +1 -0
- package/dist/agent/__tests__/fleet-store.test.js +93 -0
- package/dist/agent/__tests__/fleet-store.test.js.map +1 -0
- package/dist/agent/__tests__/git-isolation.test.d.ts +2 -0
- package/dist/agent/__tests__/git-isolation.test.d.ts.map +1 -0
- package/dist/agent/__tests__/git-isolation.test.js +119 -0
- package/dist/agent/__tests__/git-isolation.test.js.map +1 -0
- package/dist/agent/__tests__/judge.test.d.ts +2 -0
- package/dist/agent/__tests__/judge.test.d.ts.map +1 -0
- package/dist/agent/__tests__/judge.test.js +140 -0
- package/dist/agent/__tests__/judge.test.js.map +1 -0
- package/dist/agent/__tests__/loop-errors.test.d.ts +2 -0
- package/dist/agent/__tests__/loop-errors.test.d.ts.map +1 -0
- package/dist/agent/__tests__/loop-errors.test.js +75 -0
- package/dist/agent/__tests__/loop-errors.test.js.map +1 -0
- package/dist/agent/__tests__/loop-gating.test.d.ts +2 -0
- package/dist/agent/__tests__/loop-gating.test.d.ts.map +1 -0
- package/dist/agent/__tests__/loop-gating.test.js +94 -0
- package/dist/agent/__tests__/loop-gating.test.js.map +1 -0
- package/dist/agent/__tests__/model-router.test.d.ts +2 -0
- package/dist/agent/__tests__/model-router.test.d.ts.map +1 -0
- package/dist/agent/__tests__/model-router.test.js +138 -0
- package/dist/agent/__tests__/model-router.test.js.map +1 -0
- package/dist/agent/__tests__/orchestrator-isolation.test.d.ts +2 -0
- package/dist/agent/__tests__/orchestrator-isolation.test.d.ts.map +1 -0
- package/dist/agent/__tests__/orchestrator-isolation.test.js +134 -0
- package/dist/agent/__tests__/orchestrator-isolation.test.js.map +1 -0
- package/dist/agent/__tests__/orchestrator.test.d.ts +2 -0
- package/dist/agent/__tests__/orchestrator.test.d.ts.map +1 -0
- package/dist/agent/__tests__/orchestrator.test.js +201 -0
- package/dist/agent/__tests__/orchestrator.test.js.map +1 -0
- package/dist/agent/__tests__/permissions.test.d.ts +2 -0
- package/dist/agent/__tests__/permissions.test.d.ts.map +1 -0
- package/dist/agent/__tests__/permissions.test.js +206 -0
- package/dist/agent/__tests__/permissions.test.js.map +1 -0
- package/dist/agent/__tests__/pipeline-telemetry.test.d.ts +2 -0
- package/dist/agent/__tests__/pipeline-telemetry.test.d.ts.map +1 -0
- package/dist/agent/__tests__/pipeline-telemetry.test.js +158 -0
- package/dist/agent/__tests__/pipeline-telemetry.test.js.map +1 -0
- package/dist/agent/__tests__/pipeline.test.d.ts +2 -0
- package/dist/agent/__tests__/pipeline.test.d.ts.map +1 -0
- package/dist/agent/__tests__/pipeline.test.js +235 -0
- package/dist/agent/__tests__/pipeline.test.js.map +1 -0
- package/dist/agent/__tests__/planner.test.d.ts +2 -0
- package/dist/agent/__tests__/planner.test.d.ts.map +1 -0
- package/dist/agent/__tests__/planner.test.js +98 -0
- package/dist/agent/__tests__/planner.test.js.map +1 -0
- package/dist/agent/__tests__/prompt-enhancer.test.d.ts +2 -0
- package/dist/agent/__tests__/prompt-enhancer.test.d.ts.map +1 -0
- package/dist/agent/__tests__/prompt-enhancer.test.js +107 -0
- package/dist/agent/__tests__/prompt-enhancer.test.js.map +1 -0
- package/dist/agent/__tests__/rate-card.test.d.ts +2 -0
- package/dist/agent/__tests__/rate-card.test.d.ts.map +1 -0
- package/dist/agent/__tests__/rate-card.test.js +69 -0
- package/dist/agent/__tests__/rate-card.test.js.map +1 -0
- package/dist/agent/__tests__/system-prompt.test.d.ts +2 -0
- package/dist/agent/__tests__/system-prompt.test.d.ts.map +1 -0
- package/dist/agent/__tests__/system-prompt.test.js +29 -0
- package/dist/agent/__tests__/system-prompt.test.js.map +1 -0
- package/dist/agent/__tests__/trace-format-verbose.test.d.ts +2 -0
- package/dist/agent/__tests__/trace-format-verbose.test.d.ts.map +1 -0
- package/dist/agent/__tests__/trace-format-verbose.test.js +93 -0
- package/dist/agent/__tests__/trace-format-verbose.test.js.map +1 -0
- package/dist/agent/__tests__/trace-format.test.d.ts +2 -0
- package/dist/agent/__tests__/trace-format.test.d.ts.map +1 -0
- package/dist/agent/__tests__/trace-format.test.js +104 -0
- package/dist/agent/__tests__/trace-format.test.js.map +1 -0
- package/dist/agent/__tests__/trace-store.test.d.ts +2 -0
- package/dist/agent/__tests__/trace-store.test.d.ts.map +1 -0
- package/dist/agent/__tests__/trace-store.test.js +113 -0
- package/dist/agent/__tests__/trace-store.test.js.map +1 -0
- package/dist/agent/__tests__/verbose-log.test.d.ts +2 -0
- package/dist/agent/__tests__/verbose-log.test.d.ts.map +1 -0
- package/dist/agent/__tests__/verbose-log.test.js +69 -0
- package/dist/agent/__tests__/verbose-log.test.js.map +1 -0
- package/dist/agent/code-graph.d.ts +18 -0
- package/dist/agent/code-graph.d.ts.map +1 -0
- package/dist/agent/code-graph.js +119 -0
- package/dist/agent/code-graph.js.map +1 -0
- package/dist/agent/env.d.ts +11 -0
- package/dist/agent/env.d.ts.map +1 -0
- package/dist/agent/env.js +82 -0
- package/dist/agent/env.js.map +1 -0
- package/dist/agent/evaluator.d.ts +13 -0
- package/dist/agent/evaluator.d.ts.map +1 -0
- package/dist/agent/evaluator.js +150 -0
- package/dist/agent/evaluator.js.map +1 -0
- package/dist/agent/fleet/git-isolation.d.ts +142 -0
- package/dist/agent/fleet/git-isolation.d.ts.map +1 -0
- package/dist/agent/fleet/git-isolation.js +290 -0
- package/dist/agent/fleet/git-isolation.js.map +1 -0
- package/dist/agent/fleet/memory.d.ts +21 -0
- package/dist/agent/fleet/memory.d.ts.map +1 -0
- package/dist/agent/fleet/memory.js +129 -0
- package/dist/agent/fleet/memory.js.map +1 -0
- package/dist/agent/fleet/orchestrator.d.ts +108 -0
- package/dist/agent/fleet/orchestrator.d.ts.map +1 -0
- package/dist/agent/fleet/orchestrator.js +358 -0
- package/dist/agent/fleet/orchestrator.js.map +1 -0
- package/dist/agent/fleet/store.d.ts +13 -0
- package/dist/agent/fleet/store.d.ts.map +1 -0
- package/dist/agent/fleet/store.js +79 -0
- package/dist/agent/fleet/store.js.map +1 -0
- package/dist/agent/fleet/types.d.ts +107 -0
- package/dist/agent/fleet/types.d.ts.map +1 -0
- package/dist/agent/fleet/types.js +17 -0
- package/dist/agent/fleet/types.js.map +1 -0
- package/dist/agent/judge.d.ts +46 -0
- package/dist/agent/judge.d.ts.map +1 -0
- package/dist/agent/judge.js +182 -0
- package/dist/agent/judge.js.map +1 -0
- package/dist/agent/loop.d.ts +96 -0
- package/dist/agent/loop.d.ts.map +1 -0
- package/dist/agent/loop.js +233 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/memory.d.ts +14 -0
- package/dist/agent/memory.d.ts.map +1 -0
- package/dist/agent/memory.js +118 -0
- package/dist/agent/memory.js.map +1 -0
- package/dist/agent/model-router.d.ts +65 -0
- package/dist/agent/model-router.d.ts.map +1 -0
- package/dist/agent/model-router.js +118 -0
- package/dist/agent/model-router.js.map +1 -0
- package/dist/agent/model.d.ts +9 -0
- package/dist/agent/model.d.ts.map +1 -0
- package/dist/agent/model.js +24 -0
- package/dist/agent/model.js.map +1 -0
- package/dist/agent/permissions.d.ts +103 -0
- package/dist/agent/permissions.d.ts.map +1 -0
- package/dist/agent/permissions.js +245 -0
- package/dist/agent/permissions.js.map +1 -0
- package/dist/agent/pipeline.d.ts +92 -0
- package/dist/agent/pipeline.d.ts.map +1 -0
- package/dist/agent/pipeline.js +371 -0
- package/dist/agent/pipeline.js.map +1 -0
- package/dist/agent/planner.d.ts +19 -0
- package/dist/agent/planner.d.ts.map +1 -0
- package/dist/agent/planner.js +139 -0
- package/dist/agent/planner.js.map +1 -0
- package/dist/agent/project-context.d.ts +13 -0
- package/dist/agent/project-context.d.ts.map +1 -0
- package/dist/agent/project-context.js +66 -0
- package/dist/agent/project-context.js.map +1 -0
- package/dist/agent/prompt-enhancer.d.ts +46 -0
- package/dist/agent/prompt-enhancer.d.ts.map +1 -0
- package/dist/agent/prompt-enhancer.js +137 -0
- package/dist/agent/prompt-enhancer.js.map +1 -0
- package/dist/agent/rate-card.d.ts +77 -0
- package/dist/agent/rate-card.d.ts.map +1 -0
- package/dist/agent/rate-card.js +99 -0
- package/dist/agent/rate-card.js.map +1 -0
- package/dist/agent/system-prompt.d.ts +14 -0
- package/dist/agent/system-prompt.d.ts.map +1 -0
- package/dist/agent/system-prompt.js +47 -0
- package/dist/agent/system-prompt.js.map +1 -0
- package/dist/agent/tools.d.ts +23 -0
- package/dist/agent/tools.d.ts.map +1 -0
- package/dist/agent/tools.js +354 -0
- package/dist/agent/tools.js.map +1 -0
- package/dist/agent/trace-format.d.ts +13 -0
- package/dist/agent/trace-format.d.ts.map +1 -0
- package/dist/agent/trace-format.js +188 -0
- package/dist/agent/trace-format.js.map +1 -0
- package/dist/agent/trace-store.d.ts +19 -0
- package/dist/agent/trace-store.d.ts.map +1 -0
- package/dist/agent/trace-store.js +82 -0
- package/dist/agent/trace-store.js.map +1 -0
- package/dist/agent/trace.d.ts +180 -0
- package/dist/agent/trace.d.ts.map +1 -0
- package/dist/agent/trace.js +2 -0
- package/dist/agent/trace.js.map +1 -0
- package/dist/agent/verbose-log.d.ts +8 -0
- package/dist/agent/verbose-log.d.ts.map +1 -0
- package/dist/agent/verbose-log.js +53 -0
- package/dist/agent/verbose-log.js.map +1 -0
- package/dist/agents/__tests__/loader.test.d.ts +2 -0
- package/dist/agents/__tests__/loader.test.d.ts.map +1 -0
- package/dist/agents/__tests__/loader.test.js +88 -0
- package/dist/agents/__tests__/loader.test.js.map +1 -0
- package/dist/agents/__tests__/tools.test.d.ts +2 -0
- package/dist/agents/__tests__/tools.test.d.ts.map +1 -0
- package/dist/agents/__tests__/tools.test.js +40 -0
- package/dist/agents/__tests__/tools.test.js.map +1 -0
- package/dist/agents/index.d.ts +12 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +4 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/loader.d.ts +25 -0
- package/dist/agents/loader.d.ts.map +1 -0
- package/dist/agents/loader.js +133 -0
- package/dist/agents/loader.js.map +1 -0
- package/dist/agents/tools.d.ts +14 -0
- package/dist/agents/tools.d.ts.map +1 -0
- package/dist/agents/tools.js +21 -0
- package/dist/agents/tools.js.map +1 -0
- package/dist/agents/types.d.ts +27 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +11 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/agents/write.d.ts +10 -0
- package/dist/agents/write.d.ts.map +1 -0
- package/dist/agents/write.js +28 -0
- package/dist/agents/write.js.map +1 -0
- package/dist/commands/__tests__/agent.test.d.ts +2 -0
- package/dist/commands/__tests__/agent.test.d.ts.map +1 -0
- package/dist/commands/__tests__/agent.test.js +82 -0
- package/dist/commands/__tests__/agent.test.js.map +1 -0
- package/dist/commands/__tests__/command.test.d.ts +2 -0
- package/dist/commands/__tests__/command.test.d.ts.map +1 -0
- package/dist/commands/__tests__/command.test.js +73 -0
- package/dist/commands/__tests__/command.test.js.map +1 -0
- package/dist/commands/__tests__/cost.test.d.ts +2 -0
- package/dist/commands/__tests__/cost.test.d.ts.map +1 -0
- package/dist/commands/__tests__/cost.test.js +139 -0
- package/dist/commands/__tests__/cost.test.js.map +1 -0
- package/dist/commands/__tests__/graph.pull.test.d.ts +2 -0
- package/dist/commands/__tests__/graph.pull.test.d.ts.map +1 -0
- package/dist/commands/__tests__/graph.pull.test.js +259 -0
- package/dist/commands/__tests__/graph.pull.test.js.map +1 -0
- package/dist/commands/__tests__/mcp.test.d.ts +2 -0
- package/dist/commands/__tests__/mcp.test.d.ts.map +1 -0
- package/dist/commands/__tests__/mcp.test.js +88 -0
- package/dist/commands/__tests__/mcp.test.js.map +1 -0
- package/dist/commands/__tests__/replay.test.d.ts +2 -0
- package/dist/commands/__tests__/replay.test.d.ts.map +1 -0
- package/dist/commands/__tests__/replay.test.js +76 -0
- package/dist/commands/__tests__/replay.test.js.map +1 -0
- package/dist/commands/__tests__/rules.test.d.ts +2 -0
- package/dist/commands/__tests__/rules.test.d.ts.map +1 -0
- package/dist/commands/__tests__/rules.test.js +95 -0
- package/dist/commands/__tests__/rules.test.js.map +1 -0
- package/dist/commands/__tests__/settings.test.d.ts +2 -0
- package/dist/commands/__tests__/settings.test.d.ts.map +1 -0
- package/dist/commands/__tests__/settings.test.js +83 -0
- package/dist/commands/__tests__/settings.test.js.map +1 -0
- package/dist/commands/agent.d.ts +15 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +58 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/agent.skill.load.d.ts +3 -0
- package/dist/commands/agent.skill.load.d.ts.map +1 -0
- package/dist/commands/agent.skill.load.js +57 -0
- package/dist/commands/agent.skill.load.js.map +1 -0
- package/dist/commands/code.d.ts +14 -0
- package/dist/commands/code.d.ts.map +1 -0
- package/dist/commands/code.js +100 -0
- package/dist/commands/code.js.map +1 -0
- package/dist/commands/command.d.ts +17 -0
- package/dist/commands/command.d.ts.map +1 -0
- package/dist/commands/command.js +74 -0
- package/dist/commands/command.js.map +1 -0
- package/dist/commands/config.d.ts +2 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +66 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/cost.d.ts +10 -0
- package/dist/commands/cost.d.ts.map +1 -0
- package/dist/commands/cost.js +140 -0
- package/dist/commands/cost.js.map +1 -0
- package/dist/commands/env.d.ts +19 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +64 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/graph.pull.d.ts +15 -0
- package/dist/commands/graph.pull.d.ts.map +1 -0
- package/dist/commands/graph.pull.js +137 -0
- package/dist/commands/graph.pull.js.map +1 -0
- package/dist/commands/graph.search.d.ts +10 -0
- package/dist/commands/graph.search.d.ts.map +1 -0
- package/dist/commands/graph.search.js +25 -0
- package/dist/commands/graph.search.js.map +1 -0
- package/dist/commands/graph.status.d.ts +10 -0
- package/dist/commands/graph.status.d.ts.map +1 -0
- package/dist/commands/graph.status.js +75 -0
- package/dist/commands/graph.status.js.map +1 -0
- package/dist/commands/mcp.add.d.ts +13 -0
- package/dist/commands/mcp.add.d.ts.map +1 -0
- package/dist/commands/mcp.add.js +110 -0
- package/dist/commands/mcp.add.js.map +1 -0
- package/dist/commands/mcp.auth.d.ts +10 -0
- package/dist/commands/mcp.auth.d.ts.map +1 -0
- package/dist/commands/mcp.auth.js +132 -0
- package/dist/commands/mcp.auth.js.map +1 -0
- package/dist/commands/mcp.check.d.ts +10 -0
- package/dist/commands/mcp.check.d.ts.map +1 -0
- package/dist/commands/mcp.check.js +114 -0
- package/dist/commands/mcp.check.js.map +1 -0
- package/dist/commands/mcp.d.ts +18 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +183 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/mcp.list.d.ts +9 -0
- package/dist/commands/mcp.list.d.ts.map +1 -0
- package/dist/commands/mcp.list.js +93 -0
- package/dist/commands/mcp.list.js.map +1 -0
- package/dist/commands/mcp.permit.d.ts +12 -0
- package/dist/commands/mcp.permit.d.ts.map +1 -0
- package/dist/commands/mcp.permit.js +117 -0
- package/dist/commands/mcp.permit.js.map +1 -0
- package/dist/commands/mcp.remove.d.ts +9 -0
- package/dist/commands/mcp.remove.d.ts.map +1 -0
- package/dist/commands/mcp.remove.js +65 -0
- package/dist/commands/mcp.remove.js.map +1 -0
- package/dist/commands/plugin.org.install_bulk.js +1 -1
- package/dist/commands/plugin.org.install_bulk.js.map +1 -1
- package/dist/commands/privacy.erase.test.js +7 -0
- package/dist/commands/privacy.erase.test.js.map +1 -1
- package/dist/commands/replay.d.ts +5 -0
- package/dist/commands/replay.d.ts.map +1 -0
- package/dist/commands/replay.js +28 -0
- package/dist/commands/replay.js.map +1 -0
- package/dist/commands/rules.d.ts +19 -0
- package/dist/commands/rules.d.ts.map +1 -0
- package/dist/commands/rules.js +96 -0
- package/dist/commands/rules.js.map +1 -0
- package/dist/commands/schema/schema.config.d.ts +3 -0
- package/dist/commands/schema/schema.config.d.ts.map +1 -0
- package/dist/commands/schema/schema.config.js +34 -0
- package/dist/commands/schema/schema.config.js.map +1 -0
- package/dist/commands/schema/schema.disable.d.ts +3 -0
- package/dist/commands/schema/schema.disable.d.ts.map +1 -0
- package/dist/commands/schema/schema.disable.js +22 -0
- package/dist/commands/schema/schema.disable.js.map +1 -0
- package/dist/commands/schema/schema.enable.d.ts +3 -0
- package/dist/commands/schema/schema.enable.d.ts.map +1 -0
- package/dist/commands/schema/schema.enable.js +22 -0
- package/dist/commands/schema/schema.enable.js.map +1 -0
- package/dist/commands/schema/schema.export.d.ts +3 -0
- package/dist/commands/schema/schema.export.d.ts.map +1 -0
- package/dist/commands/schema/schema.export.js +31 -0
- package/dist/commands/schema/schema.export.js.map +1 -0
- package/dist/commands/schema/schema.get.d.ts +3 -0
- package/dist/commands/schema/schema.get.d.ts.map +1 -0
- package/dist/commands/schema/schema.get.js +23 -0
- package/dist/commands/schema/schema.get.js.map +1 -0
- package/dist/commands/schema/schema.label.d.ts +5 -0
- package/dist/commands/schema/schema.label.d.ts.map +1 -0
- package/dist/commands/schema/schema.label.js +60 -0
- package/dist/commands/schema/schema.label.js.map +1 -0
- package/dist/commands/schema/schema.list.d.ts +3 -0
- package/dist/commands/schema/schema.list.d.ts.map +1 -0
- package/dist/commands/schema/schema.list.js +30 -0
- package/dist/commands/schema/schema.list.js.map +1 -0
- package/dist/commands/schema/schema.prop.d.ts +5 -0
- package/dist/commands/schema/schema.prop.d.ts.map +1 -0
- package/dist/commands/schema/schema.prop.js +72 -0
- package/dist/commands/schema/schema.prop.js.map +1 -0
- package/dist/commands/schema/schema.reconcile.d.ts +10 -0
- package/dist/commands/schema/schema.reconcile.d.ts.map +1 -0
- package/dist/commands/schema/schema.reconcile.js +65 -0
- package/dist/commands/schema/schema.reconcile.js.map +1 -0
- package/dist/commands/schema/schema.rel.d.ts +5 -0
- package/dist/commands/schema/schema.rel.d.ts.map +1 -0
- package/dist/commands/schema/schema.rel.js +65 -0
- package/dist/commands/schema/schema.rel.js.map +1 -0
- package/dist/commands/schema/schema.version.d.ts +7 -0
- package/dist/commands/schema/schema.version.d.ts.map +1 -0
- package/dist/commands/schema/schema.version.js +96 -0
- package/dist/commands/schema/schema.version.js.map +1 -0
- package/dist/commands/secret.d.ts +23 -0
- package/dist/commands/secret.d.ts.map +1 -0
- package/dist/commands/secret.js +90 -0
- package/dist/commands/secret.js.map +1 -0
- package/dist/commands/settings.d.ts +10 -0
- package/dist/commands/settings.d.ts.map +1 -0
- package/dist/commands/settings.js +117 -0
- package/dist/commands/settings.js.map +1 -0
- package/dist/commands/skill.create.d.ts +3 -0
- package/dist/commands/skill.create.d.ts.map +1 -0
- package/dist/commands/skill.create.js +52 -0
- package/dist/commands/skill.create.js.map +1 -0
- package/dist/commands/skill.enable.d.ts +3 -0
- package/dist/commands/skill.enable.d.ts.map +1 -0
- package/dist/commands/skill.enable.js +31 -0
- package/dist/commands/skill.enable.js.map +1 -0
- package/dist/commands.test.js +1291 -281
- package/dist/commands.test.js.map +1 -1
- package/dist/components/DevStatus.d.ts.map +1 -1
- package/dist/components/DevStatus.js +3 -2
- package/dist/components/DevStatus.js.map +1 -1
- package/dist/daemon/client.d.ts +30 -0
- package/dist/daemon/client.d.ts.map +1 -0
- package/dist/daemon/client.js +97 -0
- package/dist/daemon/client.js.map +1 -0
- package/dist/daemon/code-graph/builder.d.ts +6 -0
- package/dist/daemon/code-graph/builder.d.ts.map +1 -0
- package/dist/daemon/code-graph/builder.js +215 -0
- package/dist/daemon/code-graph/builder.js.map +1 -0
- package/dist/daemon/code-graph/query.d.ts +29 -0
- package/dist/daemon/code-graph/query.d.ts.map +1 -0
- package/dist/daemon/code-graph/query.js +98 -0
- package/dist/daemon/code-graph/query.js.map +1 -0
- package/dist/daemon/code-graph/types.d.ts +37 -0
- package/dist/daemon/code-graph/types.d.ts.map +1 -0
- package/dist/daemon/code-graph/types.js +5 -0
- package/dist/daemon/code-graph/types.js.map +1 -0
- package/dist/daemon/code-graph/watcher.d.ts +37 -0
- package/dist/daemon/code-graph/watcher.d.ts.map +1 -0
- package/dist/daemon/code-graph/watcher.js +79 -0
- package/dist/daemon/code-graph/watcher.js.map +1 -0
- package/dist/daemon/lifecycle.d.ts +6 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -0
- package/dist/daemon/lifecycle.js +132 -0
- package/dist/daemon/lifecycle.js.map +1 -0
- package/dist/daemon/protocol.d.ts +113 -0
- package/dist/daemon/protocol.d.ts.map +1 -0
- package/dist/daemon/protocol.js +16 -0
- package/dist/daemon/protocol.js.map +1 -0
- package/dist/daemon/server.d.ts +26 -0
- package/dist/daemon/server.d.ts.map +1 -0
- package/dist/daemon/server.js +168 -0
- package/dist/daemon/server.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +559 -357
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +5 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +52 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/config.d.ts +5 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +8 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/differential-context.d.ts +46 -0
- package/dist/lib/differential-context.d.ts.map +1 -0
- package/dist/lib/differential-context.js +89 -0
- package/dist/lib/differential-context.js.map +1 -0
- package/dist/lib/resolve.d.ts +3 -0
- package/dist/lib/resolve.d.ts.map +1 -0
- package/dist/lib/resolve.js +29 -0
- package/dist/lib/resolve.js.map +1 -0
- package/dist/lib/structured-tool-io.d.ts +31 -0
- package/dist/lib/structured-tool-io.d.ts.map +1 -0
- package/dist/lib/structured-tool-io.js +56 -0
- package/dist/lib/structured-tool-io.js.map +1 -0
- package/dist/mcp/__tests__/client.test.d.ts +2 -0
- package/dist/mcp/__tests__/client.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/client.test.js +101 -0
- package/dist/mcp/__tests__/client.test.js.map +1 -0
- package/dist/mcp/client.d.ts +89 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +201 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/repl/__tests__/_queue_demo.test.d.ts +2 -0
- package/dist/repl/__tests__/_queue_demo.test.d.ts.map +1 -0
- package/dist/repl/__tests__/_queue_demo.test.js +40 -0
- package/dist/repl/__tests__/_queue_demo.test.js.map +1 -0
- package/dist/repl/__tests__/components.test.d.ts +2 -0
- package/dist/repl/__tests__/components.test.d.ts.map +1 -0
- package/dist/repl/__tests__/components.test.js +87 -0
- package/dist/repl/__tests__/components.test.js.map +1 -0
- package/dist/repl/__tests__/interactive.queue.test.d.ts +2 -0
- package/dist/repl/__tests__/interactive.queue.test.d.ts.map +1 -0
- package/dist/repl/__tests__/interactive.queue.test.js +124 -0
- package/dist/repl/__tests__/interactive.queue.test.js.map +1 -0
- package/dist/repl/components.d.ts +76 -0
- package/dist/repl/components.d.ts.map +1 -0
- package/dist/repl/components.js +182 -0
- package/dist/repl/components.js.map +1 -0
- package/dist/repl/interactive.d.ts +17 -0
- package/dist/repl/interactive.d.ts.map +1 -0
- package/dist/repl/interactive.js +439 -0
- package/dist/repl/interactive.js.map +1 -0
- package/dist/repl/one-shot.d.ts +25 -0
- package/dist/repl/one-shot.d.ts.map +1 -0
- package/dist/repl/one-shot.js +153 -0
- package/dist/repl/one-shot.js.map +1 -0
- package/dist/rules/__tests__/enforce.test.d.ts +2 -0
- package/dist/rules/__tests__/enforce.test.d.ts.map +1 -0
- package/dist/rules/__tests__/enforce.test.js +58 -0
- package/dist/rules/__tests__/enforce.test.js.map +1 -0
- package/dist/rules/__tests__/loader.test.d.ts +2 -0
- package/dist/rules/__tests__/loader.test.d.ts.map +1 -0
- package/dist/rules/__tests__/loader.test.js +54 -0
- package/dist/rules/__tests__/loader.test.js.map +1 -0
- package/dist/rules/enforce.d.ts +23 -0
- package/dist/rules/enforce.d.ts.map +1 -0
- package/dist/rules/enforce.js +36 -0
- package/dist/rules/enforce.js.map +1 -0
- package/dist/rules/index.d.ts +10 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +4 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/loader.d.ts +10 -0
- package/dist/rules/loader.d.ts.map +1 -0
- package/dist/rules/loader.js +77 -0
- package/dist/rules/loader.js.map +1 -0
- package/dist/rules/types.d.ts +39 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +16 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/rules/write.d.ts +10 -0
- package/dist/rules/write.d.ts.map +1 -0
- package/dist/rules/write.js +28 -0
- package/dist/rules/write.js.map +1 -0
- package/dist/settings/__tests__/gate.test.d.ts +2 -0
- package/dist/settings/__tests__/gate.test.d.ts.map +1 -0
- package/dist/settings/__tests__/gate.test.js +137 -0
- package/dist/settings/__tests__/gate.test.js.map +1 -0
- package/dist/settings/__tests__/hooks.test.d.ts +2 -0
- package/dist/settings/__tests__/hooks.test.d.ts.map +1 -0
- package/dist/settings/__tests__/hooks.test.js +103 -0
- package/dist/settings/__tests__/hooks.test.js.map +1 -0
- package/dist/settings/__tests__/mcp-write.test.d.ts +2 -0
- package/dist/settings/__tests__/mcp-write.test.d.ts.map +1 -0
- package/dist/settings/__tests__/mcp-write.test.js +77 -0
- package/dist/settings/__tests__/mcp-write.test.js.map +1 -0
- package/dist/settings/__tests__/permissions-gate.test.d.ts +2 -0
- package/dist/settings/__tests__/permissions-gate.test.d.ts.map +1 -0
- package/dist/settings/__tests__/permissions-gate.test.js +75 -0
- package/dist/settings/__tests__/permissions-gate.test.js.map +1 -0
- package/dist/settings/__tests__/resolve.test.d.ts +2 -0
- package/dist/settings/__tests__/resolve.test.d.ts.map +1 -0
- package/dist/settings/__tests__/resolve.test.js +109 -0
- package/dist/settings/__tests__/resolve.test.js.map +1 -0
- package/dist/settings/__tests__/runtime.test.d.ts +2 -0
- package/dist/settings/__tests__/runtime.test.d.ts.map +1 -0
- package/dist/settings/__tests__/runtime.test.js +72 -0
- package/dist/settings/__tests__/runtime.test.js.map +1 -0
- package/dist/settings/__tests__/schema.test.d.ts +2 -0
- package/dist/settings/__tests__/schema.test.d.ts.map +1 -0
- package/dist/settings/__tests__/schema.test.js +55 -0
- package/dist/settings/__tests__/schema.test.js.map +1 -0
- package/dist/settings/__tests__/write.test.d.ts +2 -0
- package/dist/settings/__tests__/write.test.d.ts.map +1 -0
- package/dist/settings/__tests__/write.test.js +61 -0
- package/dist/settings/__tests__/write.test.js.map +1 -0
- package/dist/settings/gate.d.ts +34 -0
- package/dist/settings/gate.d.ts.map +1 -0
- package/dist/settings/gate.js +50 -0
- package/dist/settings/gate.js.map +1 -0
- package/dist/settings/hooks.d.ts +26 -0
- package/dist/settings/hooks.d.ts.map +1 -0
- package/dist/settings/hooks.js +115 -0
- package/dist/settings/hooks.js.map +1 -0
- package/dist/settings/index.d.ts +23 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +23 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/mcp-write.d.ts +41 -0
- package/dist/settings/mcp-write.d.ts.map +1 -0
- package/dist/settings/mcp-write.js +61 -0
- package/dist/settings/mcp-write.js.map +1 -0
- package/dist/settings/permissions-gate.d.ts +19 -0
- package/dist/settings/permissions-gate.d.ts.map +1 -0
- package/dist/settings/permissions-gate.js +103 -0
- package/dist/settings/permissions-gate.js.map +1 -0
- package/dist/settings/resolve.d.ts +37 -0
- package/dist/settings/resolve.d.ts.map +1 -0
- package/dist/settings/resolve.js +169 -0
- package/dist/settings/resolve.js.map +1 -0
- package/dist/settings/runtime.d.ts +28 -0
- package/dist/settings/runtime.d.ts.map +1 -0
- package/dist/settings/runtime.js +45 -0
- package/dist/settings/runtime.js.map +1 -0
- package/dist/settings/schema.d.ts +1387 -0
- package/dist/settings/schema.d.ts.map +1 -0
- package/dist/settings/schema.js +146 -0
- package/dist/settings/schema.js.map +1 -0
- package/dist/settings/write.d.ts +37 -0
- package/dist/settings/write.d.ts.map +1 -0
- package/dist/settings/write.js +85 -0
- package/dist/settings/write.js.map +1 -0
- package/dist/slash/__tests__/expand.test.d.ts +2 -0
- package/dist/slash/__tests__/expand.test.d.ts.map +1 -0
- package/dist/slash/__tests__/expand.test.js +44 -0
- package/dist/slash/__tests__/expand.test.js.map +1 -0
- package/dist/slash/__tests__/loader.test.d.ts +2 -0
- package/dist/slash/__tests__/loader.test.d.ts.map +1 -0
- package/dist/slash/__tests__/loader.test.js +48 -0
- package/dist/slash/__tests__/loader.test.js.map +1 -0
- package/dist/slash/expand.d.ts +32 -0
- package/dist/slash/expand.d.ts.map +1 -0
- package/dist/slash/expand.js +48 -0
- package/dist/slash/expand.js.map +1 -0
- package/dist/slash/index.d.ts +11 -0
- package/dist/slash/index.d.ts.map +1 -0
- package/dist/slash/index.js +4 -0
- package/dist/slash/index.js.map +1 -0
- package/dist/slash/loader.d.ts +10 -0
- package/dist/slash/loader.d.ts.map +1 -0
- package/dist/slash/loader.js +64 -0
- package/dist/slash/loader.js.map +1 -0
- package/dist/slash/types.d.ts +24 -0
- package/dist/slash/types.d.ts.map +1 -0
- package/dist/slash/types.js +11 -0
- package/dist/slash/types.js.map +1 -0
- package/dist/slash/write.d.ts +10 -0
- package/dist/slash/write.d.ts.map +1 -0
- package/dist/slash/write.js +26 -0
- package/dist/slash/write.js.map +1 -0
- package/dist/tui/__tests__/app.test.d.ts +2 -0
- package/dist/tui/__tests__/app.test.d.ts.map +1 -0
- package/dist/tui/__tests__/app.test.js +136 -0
- package/dist/tui/__tests__/app.test.js.map +1 -0
- package/dist/tui/__tests__/banner.test.d.ts +2 -0
- package/dist/tui/__tests__/banner.test.d.ts.map +1 -0
- package/dist/tui/__tests__/banner.test.js +15 -0
- package/dist/tui/__tests__/banner.test.js.map +1 -0
- package/dist/tui/__tests__/command-form.test.d.ts +2 -0
- package/dist/tui/__tests__/command-form.test.d.ts.map +1 -0
- package/dist/tui/__tests__/command-form.test.js +96 -0
- package/dist/tui/__tests__/command-form.test.js.map +1 -0
- package/dist/tui/__tests__/command-tree.test.d.ts +2 -0
- package/dist/tui/__tests__/command-tree.test.d.ts.map +1 -0
- package/dist/tui/__tests__/command-tree.test.js +55 -0
- package/dist/tui/__tests__/command-tree.test.js.map +1 -0
- package/dist/tui/__tests__/runner.test.d.ts +2 -0
- package/dist/tui/__tests__/runner.test.d.ts.map +1 -0
- package/dist/tui/__tests__/runner.test.js +38 -0
- package/dist/tui/__tests__/runner.test.js.map +1 -0
- package/dist/tui/__tests__/theme.test.d.ts +2 -0
- package/dist/tui/__tests__/theme.test.d.ts.map +1 -0
- package/dist/tui/__tests__/theme.test.js +11 -0
- package/dist/tui/__tests__/theme.test.js.map +1 -0
- package/dist/tui/agent-view/activity-feed.d.ts +3 -0
- package/dist/tui/agent-view/activity-feed.d.ts.map +1 -0
- package/dist/tui/agent-view/activity-feed.js +34 -0
- package/dist/tui/agent-view/activity-feed.js.map +1 -0
- package/dist/tui/agent-view/budget-bar.d.ts +3 -0
- package/dist/tui/agent-view/budget-bar.d.ts.map +1 -0
- package/dist/tui/agent-view/budget-bar.js +53 -0
- package/dist/tui/agent-view/budget-bar.js.map +1 -0
- package/dist/tui/agent-view/compile-panel.d.ts +3 -0
- package/dist/tui/agent-view/compile-panel.d.ts.map +1 -0
- package/dist/tui/agent-view/compile-panel.js +34 -0
- package/dist/tui/agent-view/compile-panel.js.map +1 -0
- package/dist/tui/agent-view/index.d.ts +4 -0
- package/dist/tui/agent-view/index.d.ts.map +1 -0
- package/dist/tui/agent-view/index.js +31 -0
- package/dist/tui/agent-view/index.js.map +1 -0
- package/dist/tui/agent-view/memory-panel.d.ts +3 -0
- package/dist/tui/agent-view/memory-panel.d.ts.map +1 -0
- package/dist/tui/agent-view/memory-panel.js +80 -0
- package/dist/tui/agent-view/memory-panel.js.map +1 -0
- package/dist/tui/agent-view/session-panel.d.ts +3 -0
- package/dist/tui/agent-view/session-panel.d.ts.map +1 -0
- package/dist/tui/agent-view/session-panel.js +44 -0
- package/dist/tui/agent-view/session-panel.js.map +1 -0
- package/dist/tui/agent-view/status-bar.d.ts +7 -0
- package/dist/tui/agent-view/status-bar.d.ts.map +1 -0
- package/dist/tui/agent-view/status-bar.js +22 -0
- package/dist/tui/agent-view/status-bar.js.map +1 -0
- package/dist/tui/app.d.ts +9 -0
- package/dist/tui/app.d.ts.map +1 -0
- package/dist/tui/app.js +115 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/banner.d.ts +5 -0
- package/dist/tui/banner.d.ts.map +1 -0
- package/dist/tui/banner.js +17 -0
- package/dist/tui/banner.js.map +1 -0
- package/dist/tui/command-form.d.ts +9 -0
- package/dist/tui/command-form.d.ts.map +1 -0
- package/dist/tui/command-form.js +76 -0
- package/dist/tui/command-form.js.map +1 -0
- package/dist/tui/command-tree.d.ts +30 -0
- package/dist/tui/command-tree.d.ts.map +1 -0
- package/dist/tui/command-tree.js +43 -0
- package/dist/tui/command-tree.js.map +1 -0
- package/dist/tui/fleet-view/agent-row.d.ts +10 -0
- package/dist/tui/fleet-view/agent-row.d.ts.map +1 -0
- package/dist/tui/fleet-view/agent-row.js +80 -0
- package/dist/tui/fleet-view/agent-row.js.map +1 -0
- package/dist/tui/fleet-view/dispatch-input.d.ts +5 -0
- package/dist/tui/fleet-view/dispatch-input.d.ts.map +1 -0
- package/dist/tui/fleet-view/dispatch-input.js +36 -0
- package/dist/tui/fleet-view/dispatch-input.js.map +1 -0
- package/dist/tui/fleet-view/fleet-app.d.ts +11 -0
- package/dist/tui/fleet-view/fleet-app.d.ts.map +1 -0
- package/dist/tui/fleet-view/fleet-app.js +95 -0
- package/dist/tui/fleet-view/fleet-app.js.map +1 -0
- package/dist/tui/fleet-view/fleet-summary.d.ts +6 -0
- package/dist/tui/fleet-view/fleet-summary.d.ts.map +1 -0
- package/dist/tui/fleet-view/fleet-summary.js +19 -0
- package/dist/tui/fleet-view/fleet-summary.js.map +1 -0
- package/dist/tui/fleet-view/index.d.ts +16 -0
- package/dist/tui/fleet-view/index.d.ts.map +1 -0
- package/dist/tui/fleet-view/index.js +65 -0
- package/dist/tui/fleet-view/index.js.map +1 -0
- package/dist/tui/runner.d.ts +7 -0
- package/dist/tui/runner.d.ts.map +1 -0
- package/dist/tui/runner.js +36 -0
- package/dist/tui/runner.js.map +1 -0
- package/dist/tui/theme.d.ts +8 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/theme.js +10 -0
- package/dist/tui/theme.js.map +1 -0
- package/package.json +16 -7
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
import { runAgent } from "./loop.js";
|
|
2
|
+
import { ensureGatewayKey, MissingGatewayKeyError } from "./env.js";
|
|
3
|
+
import { evaluatePrompt } from "./evaluator.js";
|
|
4
|
+
import { judgeCompleteness, buildRevisionPrompt } from "./judge.js";
|
|
5
|
+
import { enhancePrompt } from "./prompt-enhancer.js";
|
|
6
|
+
import { classifyTier, modelForTier, tierForSlug, tierLabel, accumulateUsage, } from "./model-router.js";
|
|
7
|
+
import { emptyUsage } from "./fleet/types.js";
|
|
8
|
+
export { MissingGatewayKeyError };
|
|
9
|
+
const TIER_RANK = { fast: 0, balanced: 1, precise: 2 };
|
|
10
|
+
/** Cap stored free-text so a single trace file can't grow without bound. */
|
|
11
|
+
function truncate(s, max) {
|
|
12
|
+
return s.length > max ? s.slice(0, max) + "…" : s;
|
|
13
|
+
}
|
|
14
|
+
let traceCounter = 0;
|
|
15
|
+
function newTraceId() {
|
|
16
|
+
traceCounter = (traceCounter + 1) % 1_000_000;
|
|
17
|
+
return `turn_${Date.now().toString(36)}_${traceCounter.toString(36)}`;
|
|
18
|
+
}
|
|
19
|
+
/** Pull the file path from a write/edit tool call, or a command from bash. */
|
|
20
|
+
function collectActivity(name, input, files, commands) {
|
|
21
|
+
const obj = (input ?? {});
|
|
22
|
+
if ((name === "write_file" || name === "edit_file") && typeof obj.path === "string") {
|
|
23
|
+
files.add(obj.path);
|
|
24
|
+
}
|
|
25
|
+
if (name === "bash") {
|
|
26
|
+
const cmd = obj.command ?? obj.cmd;
|
|
27
|
+
if (typeof cmd === "string")
|
|
28
|
+
commands.push(truncate(cmd, 120));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Run one prompt through the full pipeline. Throws {@link MissingGatewayKeyError}
|
|
33
|
+
* if no gateway credential can be resolved; otherwise always produces a trace.
|
|
34
|
+
*/
|
|
35
|
+
export async function runTurn(opts) {
|
|
36
|
+
const cwd = opts.cwd ?? process.cwd();
|
|
37
|
+
if (!ensureGatewayKey(cwd))
|
|
38
|
+
throw new MissingGatewayKeyError();
|
|
39
|
+
const startedAt = Date.now();
|
|
40
|
+
const filesTouched = new Set();
|
|
41
|
+
const commandsRun = [];
|
|
42
|
+
const onToolCall = (name, input) => {
|
|
43
|
+
collectActivity(name, input, filesTouched, commandsRun);
|
|
44
|
+
opts.onToolCall?.(name, input);
|
|
45
|
+
};
|
|
46
|
+
// Verbose telemetry accumulators (left empty/undefined when verbose is off).
|
|
47
|
+
const phases = [];
|
|
48
|
+
const toolEvents = [];
|
|
49
|
+
const onToolEvent = opts.verbose ? (e) => void toolEvents.push(e) : undefined;
|
|
50
|
+
// ── Bare mode: skip the pipeline, run the agent directly. ──
|
|
51
|
+
if (opts.bare) {
|
|
52
|
+
return runBare(opts, cwd, startedAt, filesTouched, commandsRun, onToolCall, onToolEvent, toolEvents);
|
|
53
|
+
}
|
|
54
|
+
let usage = emptyUsage();
|
|
55
|
+
// ── 1. EVALUATE ──
|
|
56
|
+
const evalStart = Date.now();
|
|
57
|
+
const evaluation = await evaluatePrompt({ prompt: opts.prompt, signal: opts.signal });
|
|
58
|
+
phases.push(phaseStat("evaluate", 0, evalStart, evaluation.model, evaluation.usage));
|
|
59
|
+
usage = mergeUsage(usage, evaluation.usage);
|
|
60
|
+
opts.onStage?.({
|
|
61
|
+
kind: "evaluate",
|
|
62
|
+
label: `evaluated · completeness ${evaluation.completeness}/100 · complexity ${evaluation.complexity}/100`,
|
|
63
|
+
detail: evaluation.fallback ? "heuristic" : evaluation.model.split("/").pop(),
|
|
64
|
+
});
|
|
65
|
+
// ── 2. ENHANCE ──
|
|
66
|
+
const enhanceStart = Date.now();
|
|
67
|
+
const enhanced = await enhancePrompt({
|
|
68
|
+
prompt: evaluation.refinedPrompt,
|
|
69
|
+
cwd,
|
|
70
|
+
memory: opts.fleetMemory ?? null,
|
|
71
|
+
extraQueries: evaluation.contextQueries,
|
|
72
|
+
});
|
|
73
|
+
phases.push(phaseStat("enhance", 0, enhanceStart, undefined, emptyUsage()));
|
|
74
|
+
const enhancement = {
|
|
75
|
+
prompt: enhanced.prompt,
|
|
76
|
+
context: enhanced.context,
|
|
77
|
+
resolved: enhanced.resolved,
|
|
78
|
+
lessonCount: enhanced.lessons.length,
|
|
79
|
+
source: enhancementSource(enhanced.resolved.length, enhanced.lessons.length),
|
|
80
|
+
startedAt: enhanced.startedAt,
|
|
81
|
+
finishedAt: enhanced.finishedAt,
|
|
82
|
+
durationMs: enhanced.durationMs,
|
|
83
|
+
retrieval: enhanced.retrieval,
|
|
84
|
+
};
|
|
85
|
+
opts.onStage?.({
|
|
86
|
+
kind: "enhance",
|
|
87
|
+
label: enhanced.resolved.length || enhanced.lessons.length
|
|
88
|
+
? `enhanced · ${enhanced.resolved.length} code refs · ${enhanced.lessons.length} lessons`
|
|
89
|
+
: "enhanced · no extra context found",
|
|
90
|
+
});
|
|
91
|
+
// ── 3. ROUTE ──
|
|
92
|
+
const routeStart = Date.now();
|
|
93
|
+
const routed = selectModel(opts.model, evaluation);
|
|
94
|
+
phases.push(phaseStat("route", 0, routeStart, undefined, emptyUsage()));
|
|
95
|
+
opts.onStage?.({
|
|
96
|
+
kind: "route",
|
|
97
|
+
label: `model · ${tierLabel(routed.tier)} (${routed.model.split("/").pop()})`,
|
|
98
|
+
detail: routed.rationale,
|
|
99
|
+
});
|
|
100
|
+
// ── 4. EXECUTE (+ 5. JUDGE / 6. REVISE loop) ──
|
|
101
|
+
const maxRounds = Math.max(0, opts.maxReviseRounds ?? 1);
|
|
102
|
+
const judgeRounds = [];
|
|
103
|
+
let history = opts.history ?? [];
|
|
104
|
+
let prompt = enhanced.prompt;
|
|
105
|
+
let lastText = "";
|
|
106
|
+
let totalSteps = 0;
|
|
107
|
+
for (let round = 0;; round++) {
|
|
108
|
+
if (round > 0) {
|
|
109
|
+
opts.onStage?.({ kind: "revise", label: `revising · round ${round} (incomplete work)` });
|
|
110
|
+
}
|
|
111
|
+
opts.onStage?.({
|
|
112
|
+
kind: "execute",
|
|
113
|
+
label: round === 0 ? "executing" : `executing · revision ${round}`,
|
|
114
|
+
});
|
|
115
|
+
const execStart = Date.now();
|
|
116
|
+
const result = await runAgent({
|
|
117
|
+
prompt,
|
|
118
|
+
history,
|
|
119
|
+
cwd,
|
|
120
|
+
model: routed.model,
|
|
121
|
+
maxSteps: opts.maxSteps,
|
|
122
|
+
projectContext: opts.projectContext,
|
|
123
|
+
readOnly: opts.readOnly,
|
|
124
|
+
broker: opts.broker,
|
|
125
|
+
memory: opts.memory,
|
|
126
|
+
signal: opts.signal,
|
|
127
|
+
onText: opts.onText,
|
|
128
|
+
onToolCall,
|
|
129
|
+
onToolEvent,
|
|
130
|
+
});
|
|
131
|
+
const execUsage = accumulateUsage(emptyUsage(), routed.model, result.usage);
|
|
132
|
+
phases.push(phaseStat("execute", round, execStart, routed.model, execUsage));
|
|
133
|
+
usage = mergeUsage(usage, execUsage);
|
|
134
|
+
history = result.messages;
|
|
135
|
+
lastText = result.text;
|
|
136
|
+
totalSteps += result.steps;
|
|
137
|
+
// ── 5. JUDGE ──
|
|
138
|
+
const judgeStart = Date.now();
|
|
139
|
+
const verdict = await judgeCompleteness({
|
|
140
|
+
request: opts.prompt,
|
|
141
|
+
response: result.text,
|
|
142
|
+
filesTouched: [...filesTouched],
|
|
143
|
+
commandsRun,
|
|
144
|
+
steps: result.steps,
|
|
145
|
+
executorModel: routed.model,
|
|
146
|
+
signal: opts.signal,
|
|
147
|
+
});
|
|
148
|
+
phases.push(phaseStat("judge", round, judgeStart, verdict.model, verdict.usage));
|
|
149
|
+
usage = mergeUsage(usage, verdict.usage);
|
|
150
|
+
judgeRounds.push(verdict);
|
|
151
|
+
opts.onStage?.({
|
|
152
|
+
kind: "judge",
|
|
153
|
+
label: verdict.complete
|
|
154
|
+
? `judged complete · ${verdict.confidence}% confident`
|
|
155
|
+
: `judged INCOMPLETE · ${verdict.findings.length} gap(s)`,
|
|
156
|
+
detail: `advisor: ${verdict.model.split("/").pop()}${verdict.fallback ? " (heuristic)" : ""}`,
|
|
157
|
+
});
|
|
158
|
+
const canRevise = !verdict.complete &&
|
|
159
|
+
round < maxRounds &&
|
|
160
|
+
!opts.readOnly &&
|
|
161
|
+
!opts.signal?.aborted;
|
|
162
|
+
if (!canRevise)
|
|
163
|
+
break;
|
|
164
|
+
prompt = buildRevisionPrompt(verdict);
|
|
165
|
+
}
|
|
166
|
+
const finalComplete = judgeRounds[judgeRounds.length - 1]?.complete ?? true;
|
|
167
|
+
opts.onStage?.({
|
|
168
|
+
kind: "complete",
|
|
169
|
+
label: finalComplete ? "turn complete" : "turn finished (gaps remain)",
|
|
170
|
+
});
|
|
171
|
+
const trace = assembleTrace({
|
|
172
|
+
cwd,
|
|
173
|
+
originalPrompt: opts.prompt,
|
|
174
|
+
evaluation,
|
|
175
|
+
enhancement,
|
|
176
|
+
routed,
|
|
177
|
+
response: lastText,
|
|
178
|
+
filesTouched: [...filesTouched],
|
|
179
|
+
commandsRun,
|
|
180
|
+
judgeRounds,
|
|
181
|
+
finalComplete,
|
|
182
|
+
steps: totalSteps,
|
|
183
|
+
usage,
|
|
184
|
+
startedAt,
|
|
185
|
+
verbose: opts.verbose,
|
|
186
|
+
phases,
|
|
187
|
+
toolEvents,
|
|
188
|
+
});
|
|
189
|
+
recordLesson(opts.fleetMemory, trace);
|
|
190
|
+
return {
|
|
191
|
+
text: lastText,
|
|
192
|
+
steps: totalSteps,
|
|
193
|
+
messages: history,
|
|
194
|
+
usage: { inputTokens: usage.inputTokens, outputTokens: usage.outputTokens },
|
|
195
|
+
trace,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
// ── helpers ──────────────────────────────────────────────────────────────────
|
|
199
|
+
function mergeUsage(a, b) {
|
|
200
|
+
return {
|
|
201
|
+
inputTokens: a.inputTokens + b.inputTokens,
|
|
202
|
+
outputTokens: a.outputTokens + b.outputTokens,
|
|
203
|
+
costUsd: a.costUsd + b.costUsd,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
/** Build a {@link PhaseStat} from a start time (end is `now`) + its model/usage. */
|
|
207
|
+
function phaseStat(phase, round, startedAt, model, usage) {
|
|
208
|
+
const finishedAt = Date.now();
|
|
209
|
+
return { phase, round, startedAt, finishedAt, durationMs: finishedAt - startedAt, model, usage };
|
|
210
|
+
}
|
|
211
|
+
function enhancementSource(resolved, lessons) {
|
|
212
|
+
if (resolved && lessons)
|
|
213
|
+
return "code-graph+memory";
|
|
214
|
+
if (resolved)
|
|
215
|
+
return "code-graph";
|
|
216
|
+
if (lessons)
|
|
217
|
+
return "memory";
|
|
218
|
+
return "none";
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Pick the executor (worker) model. A manual pin always wins. Otherwise the Haiku
|
|
222
|
+
* evaluator is the authority — it already chose the cheapest tier that does the job
|
|
223
|
+
* well. The deterministic router is consulted only as a one-way SAFETY FLOOR: a
|
|
224
|
+
* high-stakes domain (auth/billing/security/migration/architecture) is never run
|
|
225
|
+
* below the precise tier even if the cheap evaluator under-rated it. We never
|
|
226
|
+
* downgrade the evaluator — leaning cheapest-for-quality is precisely its job.
|
|
227
|
+
*/
|
|
228
|
+
function selectModel(override, evaluation) {
|
|
229
|
+
if (override) {
|
|
230
|
+
return { model: override, tier: tierForSlug(override), rationale: "pinned model" };
|
|
231
|
+
}
|
|
232
|
+
let tier = evaluation.recommendedTier;
|
|
233
|
+
let rationale = `evaluator chose ${tierLabel(tier)} — cheapest tier for the job (complexity ${evaluation.complexity}/100)`;
|
|
234
|
+
// One-way safety floor: never under-spend on a high-stakes domain. classifyTier
|
|
235
|
+
// on text alone only returns "precise" for the auth/billing/security/migration
|
|
236
|
+
// domains, so this raises — never lowers — the evaluator's choice.
|
|
237
|
+
const floor = classifyTier({ text: evaluation.refinedPrompt });
|
|
238
|
+
if (floor.tier === "precise" && TIER_RANK[tier] < TIER_RANK.precise) {
|
|
239
|
+
tier = "precise";
|
|
240
|
+
rationale = `safety floor raised to ${tierLabel(tier)} — ${floor.rationale}`;
|
|
241
|
+
}
|
|
242
|
+
return { model: modelForTier(tier), tier, rationale };
|
|
243
|
+
}
|
|
244
|
+
function assembleTrace(a) {
|
|
245
|
+
return {
|
|
246
|
+
id: newTraceId(),
|
|
247
|
+
createdAt: a.startedAt,
|
|
248
|
+
cwd: a.cwd,
|
|
249
|
+
originalPrompt: a.originalPrompt,
|
|
250
|
+
evaluation: { ...a.evaluation, refinedPrompt: truncate(a.evaluation.refinedPrompt, 4000) },
|
|
251
|
+
enhancement: {
|
|
252
|
+
...a.enhancement,
|
|
253
|
+
prompt: truncate(a.enhancement.prompt, 8000),
|
|
254
|
+
context: truncate(a.enhancement.context, 8000),
|
|
255
|
+
},
|
|
256
|
+
selectedModel: a.routed.model,
|
|
257
|
+
selectedTier: a.routed.tier,
|
|
258
|
+
selectionRationale: a.routed.rationale,
|
|
259
|
+
response: truncate(a.response, 4000),
|
|
260
|
+
filesTouched: a.filesTouched,
|
|
261
|
+
commandsRun: a.commandsRun,
|
|
262
|
+
judgeRounds: a.judgeRounds.map((v) => ({ ...v, reasoning: truncate(v.reasoning, 2000) })),
|
|
263
|
+
finalComplete: a.finalComplete,
|
|
264
|
+
steps: a.steps,
|
|
265
|
+
usage: a.usage,
|
|
266
|
+
durationMs: Date.now() - a.startedAt,
|
|
267
|
+
// Verbose telemetry — only attached when the turn ran in verbose mode, so
|
|
268
|
+
// non-verbose traces stay small. Tool events are capped to bound the file.
|
|
269
|
+
...(a.verbose
|
|
270
|
+
? {
|
|
271
|
+
verbose: true,
|
|
272
|
+
phases: a.phases,
|
|
273
|
+
toolEvents: (a.toolEvents ?? []).slice(-200),
|
|
274
|
+
}
|
|
275
|
+
: {}),
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Record a weighted lesson when a turn revealed something worth remembering:
|
|
280
|
+
* the judge had to send the agent back (a gotcha) or it touched files (a routine
|
|
281
|
+
* change). Best-effort and silent — memory must never break a turn.
|
|
282
|
+
*/
|
|
283
|
+
function recordLesson(memory, trace) {
|
|
284
|
+
if (!memory)
|
|
285
|
+
return;
|
|
286
|
+
const needsRevision = trace.judgeRounds.length > 1;
|
|
287
|
+
if (!needsRevision && trace.filesTouched.length === 0)
|
|
288
|
+
return;
|
|
289
|
+
const firstVerdict = trace.judgeRounds[0];
|
|
290
|
+
if (needsRevision && firstVerdict && firstVerdict.findings.length > 0) {
|
|
291
|
+
memory.record({
|
|
292
|
+
kind: "gotcha",
|
|
293
|
+
weight: "high",
|
|
294
|
+
lesson: `Work for "${truncate(trace.originalPrompt, 80)}" was first judged incomplete: ` +
|
|
295
|
+
truncate(firstVerdict.findings.join("; "), 200),
|
|
296
|
+
files: trace.filesTouched.slice(0, 5),
|
|
297
|
+
outcome: trace.finalComplete ? "success" : "failure",
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
else if (trace.filesTouched.length > 0) {
|
|
301
|
+
memory.record({
|
|
302
|
+
kind: "routine-change",
|
|
303
|
+
weight: "low",
|
|
304
|
+
lesson: `Changed ${trace.filesTouched.slice(0, 5).join(", ")} for "${truncate(trace.originalPrompt, 80)}".`,
|
|
305
|
+
files: trace.filesTouched.slice(0, 5),
|
|
306
|
+
outcome: trace.finalComplete ? "success" : "failure",
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/** Bare execution path: no eval/enhance/judge, but still traced for `/replay`. */
|
|
311
|
+
async function runBare(opts, cwd, startedAt, filesTouched, commandsRun, onToolCall, onToolEvent, toolEvents) {
|
|
312
|
+
const model = opts.model ?? modelForTier("balanced");
|
|
313
|
+
opts.onStage?.({ kind: "execute", label: "executing (pipeline off)" });
|
|
314
|
+
const execStart = Date.now();
|
|
315
|
+
const result = await runAgent({
|
|
316
|
+
prompt: opts.prompt,
|
|
317
|
+
history: opts.history,
|
|
318
|
+
cwd,
|
|
319
|
+
model: opts.model,
|
|
320
|
+
maxSteps: opts.maxSteps,
|
|
321
|
+
projectContext: opts.projectContext,
|
|
322
|
+
readOnly: opts.readOnly,
|
|
323
|
+
broker: opts.broker,
|
|
324
|
+
memory: opts.memory,
|
|
325
|
+
signal: opts.signal,
|
|
326
|
+
onText: opts.onText,
|
|
327
|
+
onToolCall,
|
|
328
|
+
onToolEvent,
|
|
329
|
+
});
|
|
330
|
+
const usage = accumulateUsage(emptyUsage(), model, result.usage);
|
|
331
|
+
const phases = [phaseStat("execute", 0, execStart, model, usage)];
|
|
332
|
+
const evaluation = {
|
|
333
|
+
completeness: 0,
|
|
334
|
+
complexity: 0,
|
|
335
|
+
recommendedTier: tierForSlug(model),
|
|
336
|
+
missing: [],
|
|
337
|
+
contextQueries: [],
|
|
338
|
+
refinedPrompt: opts.prompt,
|
|
339
|
+
removed: [],
|
|
340
|
+
reasoning: "Pipeline disabled (bare mode).",
|
|
341
|
+
fallback: true,
|
|
342
|
+
model,
|
|
343
|
+
usage: emptyUsage(),
|
|
344
|
+
};
|
|
345
|
+
const trace = assembleTrace({
|
|
346
|
+
cwd,
|
|
347
|
+
originalPrompt: opts.prompt,
|
|
348
|
+
evaluation,
|
|
349
|
+
enhancement: { prompt: opts.prompt, context: "", resolved: [], lessonCount: 0, source: "none" },
|
|
350
|
+
routed: { model, tier: tierForSlug(model), rationale: "bare mode (no routing)" },
|
|
351
|
+
response: result.text,
|
|
352
|
+
filesTouched: [...filesTouched],
|
|
353
|
+
commandsRun,
|
|
354
|
+
judgeRounds: [],
|
|
355
|
+
finalComplete: true,
|
|
356
|
+
steps: result.steps,
|
|
357
|
+
usage,
|
|
358
|
+
startedAt,
|
|
359
|
+
verbose: opts.verbose,
|
|
360
|
+
phases,
|
|
361
|
+
toolEvents,
|
|
362
|
+
});
|
|
363
|
+
return {
|
|
364
|
+
text: result.text,
|
|
365
|
+
steps: result.steps,
|
|
366
|
+
messages: result.messages,
|
|
367
|
+
usage: { inputTokens: result.usage.inputTokens, outputTokens: result.usage.outputTokens },
|
|
368
|
+
trace,
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/agent/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Plan } from "./fleet/types.js";
|
|
2
|
+
import type { FleetMemory } from "./fleet/memory.js";
|
|
3
|
+
import type { AgentDefinition } from "../agents/types.js";
|
|
4
|
+
export interface PlanOptions {
|
|
5
|
+
goal: string;
|
|
6
|
+
cwd: string;
|
|
7
|
+
/** Override the planning model slug (otherwise a balanced-tier model). */
|
|
8
|
+
model?: string;
|
|
9
|
+
memory?: FleetMemory | null;
|
|
10
|
+
/** Roster of named agents the planner may assign tasks to. */
|
|
11
|
+
agents?: AgentDefinition[];
|
|
12
|
+
signal?: AbortSignal;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Produce an executable {@link Plan} from a goal. Throws
|
|
16
|
+
* {@link MissingGatewayKeyError} if no gateway key is configured.
|
|
17
|
+
*/
|
|
18
|
+
export declare function planTasks(opts: PlanOptions): Promise<Plan>;
|
|
19
|
+
//# sourceMappingURL=planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/agent/planner.ts"],"names":[],"mappings":"AAkBA,OAAO,EAA8B,KAAK,IAAI,EAAa,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAgD1D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAuBD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgEhE"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task planner — turn a goal into an executable plan.
|
|
3
|
+
*
|
|
4
|
+
* Decomposes a high-level goal ("add rate limiting to the API and document it")
|
|
5
|
+
* into a small set of concrete, dependency-ordered tasks the fleet can run in
|
|
6
|
+
* parallel. Uses one structured-output model call; the goal is prompt-enhanced
|
|
7
|
+
* first so the planner sees the actual files/symbols involved and produces tasks
|
|
8
|
+
* that name real paths instead of guesses.
|
|
9
|
+
*
|
|
10
|
+
* Each task's tier is reconciled with the cost router: the model proposes a tier,
|
|
11
|
+
* but a task the router flags as high-stakes (auth/billing/security/migration) is
|
|
12
|
+
* always escalated, never under-spent.
|
|
13
|
+
*/
|
|
14
|
+
import { generateObject } from "ai";
|
|
15
|
+
import { z } from "zod";
|
|
16
|
+
import { enhancePrompt } from "./prompt-enhancer.js";
|
|
17
|
+
import { classifyTier, modelForTier } from "./model-router.js";
|
|
18
|
+
import { ensureGatewayKey, MissingGatewayKeyError } from "./env.js";
|
|
19
|
+
import { emptyUsage } from "./fleet/types.js";
|
|
20
|
+
const TIER_RANK = { fast: 0, balanced: 1, precise: 2 };
|
|
21
|
+
/** The more capable of two tiers (never under-spend on a risky task). */
|
|
22
|
+
function maxTier(a, b) {
|
|
23
|
+
return TIER_RANK[a] >= TIER_RANK[b] ? a : b;
|
|
24
|
+
}
|
|
25
|
+
const planSchema = z.object({
|
|
26
|
+
tasks: z
|
|
27
|
+
.array(z.object({
|
|
28
|
+
id: z
|
|
29
|
+
.string()
|
|
30
|
+
.describe("Short kebab-case id, unique within the plan (e.g. 'add-route')."),
|
|
31
|
+
title: z.string().describe("Imperative one-line title."),
|
|
32
|
+
description: z
|
|
33
|
+
.string()
|
|
34
|
+
.describe("Self-contained instructions for an agent that has the repo but not this plan: " +
|
|
35
|
+
"what to change, in which files, and how to verify."),
|
|
36
|
+
dependsOn: z
|
|
37
|
+
.array(z.string())
|
|
38
|
+
.describe("ids of tasks that must finish first (empty if independent)."),
|
|
39
|
+
files: z
|
|
40
|
+
.array(z.string())
|
|
41
|
+
.describe("Relative paths this task will create or edit, as best you can predict."),
|
|
42
|
+
tier: z
|
|
43
|
+
.enum(["fast", "balanced", "precise"])
|
|
44
|
+
.describe("Model tier: 'fast' for mechanical/single-file, 'balanced' for normal feature work, " +
|
|
45
|
+
"'precise' for auth/billing/security/migrations/architecture."),
|
|
46
|
+
agent: z
|
|
47
|
+
.string()
|
|
48
|
+
.optional()
|
|
49
|
+
.describe("Name of a specialized agent from the roster to handle this task, when one clearly " +
|
|
50
|
+
"fits. Omit to use the general-purpose agent."),
|
|
51
|
+
}))
|
|
52
|
+
.min(1)
|
|
53
|
+
.max(20),
|
|
54
|
+
});
|
|
55
|
+
let planCounter = 0;
|
|
56
|
+
function newPlanId() {
|
|
57
|
+
planCounter = (planCounter + 1) % 1_000_000;
|
|
58
|
+
return `plan_${Date.now().toString(36)}_${planCounter.toString(36)}`;
|
|
59
|
+
}
|
|
60
|
+
const PLANNER_SYSTEM = [
|
|
61
|
+
"You are the planning stage of an agentic coding system. Decompose the user's goal",
|
|
62
|
+
"into the SMALLEST set of concrete, independently-runnable tasks that fully achieve it.",
|
|
63
|
+
"",
|
|
64
|
+
"Rules:",
|
|
65
|
+
"- Prefer few, substantial tasks over many trivial ones. A one-file change is one task.",
|
|
66
|
+
"- Make tasks parallel where possible; only add a dependency when one task's output is",
|
|
67
|
+
" genuinely required by another (e.g. a contract must exist before a route uses it).",
|
|
68
|
+
"- Predict the files each task touches; tasks that edit the same file should depend in",
|
|
69
|
+
" sequence rather than run concurrently.",
|
|
70
|
+
"- Assign the cheapest sufficient tier per task; reserve 'precise' for auth, billing,",
|
|
71
|
+
" security, migrations, schema, or architectural changes.",
|
|
72
|
+
"- Every task description must stand alone — the executing agent sees only its own task.",
|
|
73
|
+
].join("\n");
|
|
74
|
+
/**
|
|
75
|
+
* Produce an executable {@link Plan} from a goal. Throws
|
|
76
|
+
* {@link MissingGatewayKeyError} if no gateway key is configured.
|
|
77
|
+
*/
|
|
78
|
+
export async function planTasks(opts) {
|
|
79
|
+
const cwd = opts.cwd;
|
|
80
|
+
if (!ensureGatewayKey(cwd))
|
|
81
|
+
throw new MissingGatewayKeyError();
|
|
82
|
+
// Enhance the goal so the planner sees the real code involved.
|
|
83
|
+
const enhanced = await enhancePrompt({ prompt: opts.goal, cwd, memory: opts.memory });
|
|
84
|
+
const roster = new Set((opts.agents ?? []).map((a) => a.name));
|
|
85
|
+
const rosterBlock = opts.agents && opts.agents.length > 0
|
|
86
|
+
? `\n\nAvailable specialized agents (assign a task's "agent" to one when it clearly fits):\n` +
|
|
87
|
+
opts.agents.map((a) => `- ${a.name}: ${a.description}`).join("\n")
|
|
88
|
+
: "";
|
|
89
|
+
const model = opts.model ?? modelForTier("balanced");
|
|
90
|
+
const { object } = await generateObject({
|
|
91
|
+
model,
|
|
92
|
+
schema: planSchema,
|
|
93
|
+
system: PLANNER_SYSTEM,
|
|
94
|
+
prompt: `Goal:\n${enhanced.prompt}${rosterBlock}`,
|
|
95
|
+
abortSignal: opts.signal,
|
|
96
|
+
});
|
|
97
|
+
const now = Date.now();
|
|
98
|
+
const seen = new Set();
|
|
99
|
+
const tasks = object.tasks.map((t, i) => {
|
|
100
|
+
// Guarantee unique, non-empty ids even if the model repeats or omits them.
|
|
101
|
+
let id = (t.id || `task-${i + 1}`).trim();
|
|
102
|
+
if (seen.has(id))
|
|
103
|
+
id = `${id}-${i + 1}`;
|
|
104
|
+
seen.add(id);
|
|
105
|
+
// Reconcile the proposed tier with the router's read of the description.
|
|
106
|
+
const routed = classifyTier({
|
|
107
|
+
text: `${t.title} ${t.description}`,
|
|
108
|
+
fileCount: t.files.length,
|
|
109
|
+
}).tier;
|
|
110
|
+
const tier = maxTier(t.tier, routed);
|
|
111
|
+
// Keep an agent assignment only if it names a real agent in the roster.
|
|
112
|
+
const agent = t.agent && roster.has(t.agent) ? t.agent : undefined;
|
|
113
|
+
return {
|
|
114
|
+
id,
|
|
115
|
+
title: t.title,
|
|
116
|
+
description: t.description,
|
|
117
|
+
status: "queued",
|
|
118
|
+
dependsOn: t.dependsOn ?? [],
|
|
119
|
+
files: t.files ?? [],
|
|
120
|
+
tier,
|
|
121
|
+
model: modelForTier(tier),
|
|
122
|
+
agent,
|
|
123
|
+
createdAt: now,
|
|
124
|
+
usage: emptyUsage(),
|
|
125
|
+
};
|
|
126
|
+
});
|
|
127
|
+
// Drop dependencies that point at ids no task actually has (model hallucination).
|
|
128
|
+
const ids = new Set(tasks.map((t) => t.id));
|
|
129
|
+
for (const t of tasks)
|
|
130
|
+
t.dependsOn = t.dependsOn.filter((d) => ids.has(d) && d !== t.id);
|
|
131
|
+
return {
|
|
132
|
+
id: newPlanId(),
|
|
133
|
+
goal: opts.goal,
|
|
134
|
+
createdAt: now,
|
|
135
|
+
tasks,
|
|
136
|
+
status: "draft",
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=planner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/agent/planner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ProjectContext {
|
|
2
|
+
/** Concatenated rule text, ready to drop into the system prompt. */
|
|
3
|
+
text: string;
|
|
4
|
+
/** Source files that contributed, relative to cwd. */
|
|
5
|
+
sources: string[];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Collect project rules by walking up from `cwd`. Nearest directory wins on
|
|
9
|
+
* ordering (its rules appear first), repo-root rules appear last. Total size is
|
|
10
|
+
* capped; once the cap is hit, remaining files are skipped.
|
|
11
|
+
*/
|
|
12
|
+
export declare function loadProjectContext(cwd: string): ProjectContext;
|
|
13
|
+
//# sourceMappingURL=project-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-context.d.ts","sourceRoot":"","sources":["../../src/agent/project-context.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAmC9D"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project rules / instructions loading.
|
|
3
|
+
*
|
|
4
|
+
* Parity with Claude Code's `CLAUDE.md`: on session start we collect the
|
|
5
|
+
* project's standing instructions from well-known files, walking up from the
|
|
6
|
+
* working directory so nested rules and repo-root rules both apply. The result
|
|
7
|
+
* is injected once into the (stable) system prompt — it does not change per
|
|
8
|
+
* turn, which keeps the provider prompt cache warm.
|
|
9
|
+
*/
|
|
10
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
11
|
+
import { dirname, join, parse as parsePath, relative } from "node:path";
|
|
12
|
+
/** Files we treat as project instructions, in priority order within a directory. */
|
|
13
|
+
const RULE_FILES = [
|
|
14
|
+
"CLAUDE.md",
|
|
15
|
+
"AGENTS.md",
|
|
16
|
+
".oxagen/rules.md",
|
|
17
|
+
".cursorrules",
|
|
18
|
+
".github/copilot-instructions.md",
|
|
19
|
+
];
|
|
20
|
+
const MAX_TOTAL = 16_000; // chars; keep rules from dominating the context window
|
|
21
|
+
const MAX_DEPTH = 8; // directories to walk up
|
|
22
|
+
/**
|
|
23
|
+
* Collect project rules by walking up from `cwd`. Nearest directory wins on
|
|
24
|
+
* ordering (its rules appear first), repo-root rules appear last. Total size is
|
|
25
|
+
* capped; once the cap is hit, remaining files are skipped.
|
|
26
|
+
*/
|
|
27
|
+
export function loadProjectContext(cwd) {
|
|
28
|
+
const chunks = [];
|
|
29
|
+
const sources = [];
|
|
30
|
+
let total = 0;
|
|
31
|
+
let dir = cwd;
|
|
32
|
+
const { root } = parsePath(cwd);
|
|
33
|
+
for (let depth = 0; depth < MAX_DEPTH; depth++) {
|
|
34
|
+
for (const rel of RULE_FILES) {
|
|
35
|
+
const full = join(dir, rel);
|
|
36
|
+
if (!existsSync(full))
|
|
37
|
+
continue;
|
|
38
|
+
let text;
|
|
39
|
+
try {
|
|
40
|
+
text = readFileSync(full, "utf8").trim();
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (!text)
|
|
46
|
+
continue;
|
|
47
|
+
const remaining = MAX_TOTAL - total;
|
|
48
|
+
if (remaining <= 0)
|
|
49
|
+
break;
|
|
50
|
+
const clipped = text.length > remaining
|
|
51
|
+
? text.slice(0, remaining) + "\n… [rules truncated]"
|
|
52
|
+
: text;
|
|
53
|
+
const source = relative(cwd, full) || rel;
|
|
54
|
+
chunks.push(`### ${source}\n${clipped}`);
|
|
55
|
+
sources.push(source);
|
|
56
|
+
total += clipped.length;
|
|
57
|
+
}
|
|
58
|
+
if (total >= MAX_TOTAL)
|
|
59
|
+
break;
|
|
60
|
+
if (dir === root)
|
|
61
|
+
break;
|
|
62
|
+
dir = dirname(dir);
|
|
63
|
+
}
|
|
64
|
+
return { text: chunks.join("\n\n"), sources };
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=project-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-context.js","sourceRoot":"","sources":["../../src/agent/project-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExE,oFAAoF;AACpF,MAAM,UAAU,GAAG;IACjB,WAAW;IACX,WAAW;IACX,kBAAkB;IAClB,cAAc;IACd,iCAAiC;CAClC,CAAC;AAEF,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,uDAAuD;AACjF,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,yBAAyB;AAS9C;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,IAAI,IAAY,CAAC;YACjB,IAAI,CAAC;gBACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;YACpC,IAAI,SAAS,IAAI,CAAC;gBAAE,MAAM;YAC1B,MAAM,OAAO,GACX,IAAI,CAAC,MAAM,GAAG,SAAS;gBACrB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,uBAAuB;gBACpD,CAAC,CAAC,IAAI,CAAC;YACX,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,IAAI,KAAK,IAAI,SAAS;YAAE,MAAM;QAC9B,IAAI,GAAG,KAAK,IAAI;YAAE,MAAM;QACxB,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC"}
|