attocode 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/LICENSE +21 -0
- package/README.md +164 -0
- package/dist/src/adapters.d.ts +83 -0
- package/dist/src/adapters.d.ts.map +1 -0
- package/dist/src/adapters.js +221 -0
- package/dist/src/adapters.js.map +1 -0
- package/dist/src/agent-tools/index.d.ts +7 -0
- package/dist/src/agent-tools/index.d.ts.map +1 -0
- package/dist/src/agent-tools/index.js +8 -0
- package/dist/src/agent-tools/index.js.map +1 -0
- package/dist/src/agent-tools/lsp-file-tools.d.ts +33 -0
- package/dist/src/agent-tools/lsp-file-tools.d.ts.map +1 -0
- package/dist/src/agent-tools/lsp-file-tools.js +200 -0
- package/dist/src/agent-tools/lsp-file-tools.js.map +1 -0
- package/dist/src/agent.d.ts +667 -0
- package/dist/src/agent.d.ts.map +1 -0
- package/dist/src/agent.js +2824 -0
- package/dist/src/agent.js.map +1 -0
- package/dist/src/cli.d.ts +36 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +176 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/commands/handler.d.ts +22 -0
- package/dist/src/commands/handler.d.ts.map +1 -0
- package/dist/src/commands/handler.js +1320 -0
- package/dist/src/commands/handler.js.map +1 -0
- package/dist/src/commands/init.d.ts +7 -0
- package/dist/src/commands/init.d.ts.map +1 -0
- package/dist/src/commands/init.js +153 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/types.d.ts +70 -0
- package/dist/src/commands/types.d.ts.map +1 -0
- package/dist/src/commands/types.js +8 -0
- package/dist/src/commands/types.js.map +1 -0
- package/dist/src/config.d.ts +22 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +25 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/core/index.d.ts +32 -0
- package/dist/src/core/index.d.ts.map +1 -0
- package/dist/src/core/index.js +35 -0
- package/dist/src/core/index.js.map +1 -0
- package/dist/src/core/process-handlers.d.ts +43 -0
- package/dist/src/core/process-handlers.d.ts.map +1 -0
- package/dist/src/core/process-handlers.js +117 -0
- package/dist/src/core/process-handlers.js.map +1 -0
- package/dist/src/core/protocol/bridge.d.ts +117 -0
- package/dist/src/core/protocol/bridge.d.ts.map +1 -0
- package/dist/src/core/protocol/bridge.js +149 -0
- package/dist/src/core/protocol/bridge.js.map +1 -0
- package/dist/src/core/protocol/index.d.ts +8 -0
- package/dist/src/core/protocol/index.d.ts.map +1 -0
- package/dist/src/core/protocol/index.js +8 -0
- package/dist/src/core/protocol/index.js.map +1 -0
- package/dist/src/core/protocol/types.d.ts +539 -0
- package/dist/src/core/protocol/types.d.ts.map +1 -0
- package/dist/src/core/protocol/types.js +149 -0
- package/dist/src/core/protocol/types.js.map +1 -0
- package/dist/src/core/queues/atomic-counter.d.ts +36 -0
- package/dist/src/core/queues/atomic-counter.d.ts.map +1 -0
- package/dist/src/core/queues/atomic-counter.js +46 -0
- package/dist/src/core/queues/atomic-counter.js.map +1 -0
- package/dist/src/core/queues/event-queue.d.ts +126 -0
- package/dist/src/core/queues/event-queue.d.ts.map +1 -0
- package/dist/src/core/queues/event-queue.js +208 -0
- package/dist/src/core/queues/event-queue.js.map +1 -0
- package/dist/src/core/queues/index.d.ts +12 -0
- package/dist/src/core/queues/index.d.ts.map +1 -0
- package/dist/src/core/queues/index.js +15 -0
- package/dist/src/core/queues/index.js.map +1 -0
- package/dist/src/core/queues/submission-queue.d.ts +116 -0
- package/dist/src/core/queues/submission-queue.d.ts.map +1 -0
- package/dist/src/core/queues/submission-queue.js +236 -0
- package/dist/src/core/queues/submission-queue.js.map +1 -0
- package/dist/src/costs/index.d.ts +22 -0
- package/dist/src/costs/index.d.ts.map +1 -0
- package/dist/src/costs/index.js +22 -0
- package/dist/src/costs/index.js.map +1 -0
- package/dist/src/costs/model-registry.d.ts +80 -0
- package/dist/src/costs/model-registry.d.ts.map +1 -0
- package/dist/src/costs/model-registry.js +237 -0
- package/dist/src/costs/model-registry.js.map +1 -0
- package/dist/src/costs/types.d.ts +50 -0
- package/dist/src/costs/types.d.ts.map +1 -0
- package/dist/src/costs/types.js +2 -0
- package/dist/src/costs/types.js.map +1 -0
- package/dist/src/defaults.d.ts +114 -0
- package/dist/src/defaults.d.ts.map +1 -0
- package/dist/src/defaults.js +457 -0
- package/dist/src/defaults.js.map +1 -0
- package/dist/src/first-run.d.ts +35 -0
- package/dist/src/first-run.d.ts.map +1 -0
- package/dist/src/first-run.js +94 -0
- package/dist/src/first-run.js.map +1 -0
- package/dist/src/hello.d.ts +2 -0
- package/dist/src/hello.d.ts.map +1 -0
- package/dist/src/hello.js +4 -0
- package/dist/src/hello.js.map +1 -0
- package/dist/src/integrations/agent-registry.d.ts +160 -0
- package/dist/src/integrations/agent-registry.d.ts.map +1 -0
- package/dist/src/integrations/agent-registry.js +446 -0
- package/dist/src/integrations/agent-registry.js.map +1 -0
- package/dist/src/integrations/auto-compaction.d.ts +177 -0
- package/dist/src/integrations/auto-compaction.d.ts.map +1 -0
- package/dist/src/integrations/auto-compaction.js +428 -0
- package/dist/src/integrations/auto-compaction.js.map +1 -0
- package/dist/src/integrations/cancellation.d.ts +162 -0
- package/dist/src/integrations/cancellation.d.ts.map +1 -0
- package/dist/src/integrations/cancellation.js +339 -0
- package/dist/src/integrations/cancellation.js.map +1 -0
- package/dist/src/integrations/codebase-context.d.ts +319 -0
- package/dist/src/integrations/codebase-context.d.ts.map +1 -0
- package/dist/src/integrations/codebase-context.js +816 -0
- package/dist/src/integrations/codebase-context.js.map +1 -0
- package/dist/src/integrations/compaction.d.ts +192 -0
- package/dist/src/integrations/compaction.d.ts.map +1 -0
- package/dist/src/integrations/compaction.js +376 -0
- package/dist/src/integrations/compaction.js.map +1 -0
- package/dist/src/integrations/context-engineering.d.ts +246 -0
- package/dist/src/integrations/context-engineering.d.ts.map +1 -0
- package/dist/src/integrations/context-engineering.js +394 -0
- package/dist/src/integrations/context-engineering.js.map +1 -0
- package/dist/src/integrations/diff-utils.d.ts +105 -0
- package/dist/src/integrations/diff-utils.d.ts.map +1 -0
- package/dist/src/integrations/diff-utils.js +497 -0
- package/dist/src/integrations/diff-utils.js.map +1 -0
- package/dist/src/integrations/economics.d.ts +192 -0
- package/dist/src/integrations/economics.d.ts.map +1 -0
- package/dist/src/integrations/economics.js +431 -0
- package/dist/src/integrations/economics.js.map +1 -0
- package/dist/src/integrations/execution-policy.d.ts +189 -0
- package/dist/src/integrations/execution-policy.d.ts.map +1 -0
- package/dist/src/integrations/execution-policy.js +352 -0
- package/dist/src/integrations/execution-policy.js.map +1 -0
- package/dist/src/integrations/file-change-tracker.d.ts +161 -0
- package/dist/src/integrations/file-change-tracker.d.ts.map +1 -0
- package/dist/src/integrations/file-change-tracker.js +520 -0
- package/dist/src/integrations/file-change-tracker.js.map +1 -0
- package/dist/src/integrations/hierarchical-config.d.ts +212 -0
- package/dist/src/integrations/hierarchical-config.d.ts.map +1 -0
- package/dist/src/integrations/hierarchical-config.js +484 -0
- package/dist/src/integrations/hierarchical-config.js.map +1 -0
- package/dist/src/integrations/hooks.d.ts +114 -0
- package/dist/src/integrations/hooks.d.ts.map +1 -0
- package/dist/src/integrations/hooks.js +326 -0
- package/dist/src/integrations/hooks.js.map +1 -0
- package/dist/src/integrations/ignore.d.ts +143 -0
- package/dist/src/integrations/ignore.d.ts.map +1 -0
- package/dist/src/integrations/ignore.js +417 -0
- package/dist/src/integrations/ignore.js.map +1 -0
- package/dist/src/integrations/image-renderer.d.ts +119 -0
- package/dist/src/integrations/image-renderer.d.ts.map +1 -0
- package/dist/src/integrations/image-renderer.js +306 -0
- package/dist/src/integrations/image-renderer.js.map +1 -0
- package/dist/src/integrations/index.d.ts +42 -0
- package/dist/src/integrations/index.d.ts.map +1 -0
- package/dist/src/integrations/index.js +73 -0
- package/dist/src/integrations/index.js.map +1 -0
- package/dist/src/integrations/lsp.d.ts +196 -0
- package/dist/src/integrations/lsp.d.ts.map +1 -0
- package/dist/src/integrations/lsp.js +582 -0
- package/dist/src/integrations/lsp.js.map +1 -0
- package/dist/src/integrations/mcp-client.d.ts +270 -0
- package/dist/src/integrations/mcp-client.d.ts.map +1 -0
- package/dist/src/integrations/mcp-client.js +698 -0
- package/dist/src/integrations/mcp-client.js.map +1 -0
- package/dist/src/integrations/mcp-tool-search.d.ts +77 -0
- package/dist/src/integrations/mcp-tool-search.d.ts.map +1 -0
- package/dist/src/integrations/mcp-tool-search.js +220 -0
- package/dist/src/integrations/mcp-tool-search.js.map +1 -0
- package/dist/src/integrations/memory.d.ts +108 -0
- package/dist/src/integrations/memory.d.ts.map +1 -0
- package/dist/src/integrations/memory.js +288 -0
- package/dist/src/integrations/memory.js.map +1 -0
- package/dist/src/integrations/multi-agent.d.ts +150 -0
- package/dist/src/integrations/multi-agent.d.ts.map +1 -0
- package/dist/src/integrations/multi-agent.js +306 -0
- package/dist/src/integrations/multi-agent.js.map +1 -0
- package/dist/src/integrations/observability.d.ts +162 -0
- package/dist/src/integrations/observability.d.ts.map +1 -0
- package/dist/src/integrations/observability.js +406 -0
- package/dist/src/integrations/observability.js.map +1 -0
- package/dist/src/integrations/openrouter-pricing.d.ts +42 -0
- package/dist/src/integrations/openrouter-pricing.d.ts.map +1 -0
- package/dist/src/integrations/openrouter-pricing.js +124 -0
- package/dist/src/integrations/openrouter-pricing.js.map +1 -0
- package/dist/src/integrations/pending-plan.d.ts +171 -0
- package/dist/src/integrations/pending-plan.d.ts.map +1 -0
- package/dist/src/integrations/pending-plan.js +244 -0
- package/dist/src/integrations/pending-plan.js.map +1 -0
- package/dist/src/integrations/persistence.d.ts +48 -0
- package/dist/src/integrations/persistence.d.ts.map +1 -0
- package/dist/src/integrations/persistence.js +196 -0
- package/dist/src/integrations/persistence.js.map +1 -0
- package/dist/src/integrations/planning.d.ts +96 -0
- package/dist/src/integrations/planning.d.ts.map +1 -0
- package/dist/src/integrations/planning.js +338 -0
- package/dist/src/integrations/planning.js.map +1 -0
- package/dist/src/integrations/pty-shell.d.ts +169 -0
- package/dist/src/integrations/pty-shell.d.ts.map +1 -0
- package/dist/src/integrations/pty-shell.js +367 -0
- package/dist/src/integrations/pty-shell.js.map +1 -0
- package/dist/src/integrations/react.d.ts +139 -0
- package/dist/src/integrations/react.d.ts.map +1 -0
- package/dist/src/integrations/react.js +273 -0
- package/dist/src/integrations/react.js.map +1 -0
- package/dist/src/integrations/resources.d.ts +177 -0
- package/dist/src/integrations/resources.d.ts.map +1 -0
- package/dist/src/integrations/resources.js +311 -0
- package/dist/src/integrations/resources.js.map +1 -0
- package/dist/src/integrations/result-synthesizer.d.ts +389 -0
- package/dist/src/integrations/result-synthesizer.d.ts.map +1 -0
- package/dist/src/integrations/result-synthesizer.js +951 -0
- package/dist/src/integrations/result-synthesizer.js.map +1 -0
- package/dist/src/integrations/routing.d.ts +117 -0
- package/dist/src/integrations/routing.d.ts.map +1 -0
- package/dist/src/integrations/routing.js +347 -0
- package/dist/src/integrations/routing.js.map +1 -0
- package/dist/src/integrations/rules.d.ts +131 -0
- package/dist/src/integrations/rules.d.ts.map +1 -0
- package/dist/src/integrations/rules.js +284 -0
- package/dist/src/integrations/rules.js.map +1 -0
- package/dist/src/integrations/safety.d.ts +142 -0
- package/dist/src/integrations/safety.d.ts.map +1 -0
- package/dist/src/integrations/safety.js +342 -0
- package/dist/src/integrations/safety.js.map +1 -0
- package/dist/src/integrations/sandbox/basic.d.ts +74 -0
- package/dist/src/integrations/sandbox/basic.d.ts.map +1 -0
- package/dist/src/integrations/sandbox/basic.js +310 -0
- package/dist/src/integrations/sandbox/basic.js.map +1 -0
- package/dist/src/integrations/sandbox/docker.d.ts +94 -0
- package/dist/src/integrations/sandbox/docker.d.ts.map +1 -0
- package/dist/src/integrations/sandbox/docker.js +293 -0
- package/dist/src/integrations/sandbox/docker.js.map +1 -0
- package/dist/src/integrations/sandbox/index.d.ts +182 -0
- package/dist/src/integrations/sandbox/index.d.ts.map +1 -0
- package/dist/src/integrations/sandbox/index.js +382 -0
- package/dist/src/integrations/sandbox/index.js.map +1 -0
- package/dist/src/integrations/sandbox/landlock.d.ts +59 -0
- package/dist/src/integrations/sandbox/landlock.d.ts.map +1 -0
- package/dist/src/integrations/sandbox/landlock.js +326 -0
- package/dist/src/integrations/sandbox/landlock.js.map +1 -0
- package/dist/src/integrations/sandbox/seatbelt.d.ts +68 -0
- package/dist/src/integrations/sandbox/seatbelt.d.ts.map +1 -0
- package/dist/src/integrations/sandbox/seatbelt.js +298 -0
- package/dist/src/integrations/sandbox/seatbelt.js.map +1 -0
- package/dist/src/integrations/semantic-cache.d.ts +178 -0
- package/dist/src/integrations/semantic-cache.d.ts.map +1 -0
- package/dist/src/integrations/semantic-cache.js +372 -0
- package/dist/src/integrations/semantic-cache.js.map +1 -0
- package/dist/src/integrations/session-store.d.ts +183 -0
- package/dist/src/integrations/session-store.d.ts.map +1 -0
- package/dist/src/integrations/session-store.js +345 -0
- package/dist/src/integrations/session-store.js.map +1 -0
- package/dist/src/integrations/shared-blackboard.d.ts +403 -0
- package/dist/src/integrations/shared-blackboard.d.ts.map +1 -0
- package/dist/src/integrations/shared-blackboard.js +710 -0
- package/dist/src/integrations/shared-blackboard.js.map +1 -0
- package/dist/src/integrations/skills.d.ts +171 -0
- package/dist/src/integrations/skills.d.ts.map +1 -0
- package/dist/src/integrations/skills.js +403 -0
- package/dist/src/integrations/skills.js.map +1 -0
- package/dist/src/integrations/smart-decomposer.d.ts +322 -0
- package/dist/src/integrations/smart-decomposer.d.ts.map +1 -0
- package/dist/src/integrations/smart-decomposer.js +856 -0
- package/dist/src/integrations/smart-decomposer.js.map +1 -0
- package/dist/src/integrations/sourcegraph.d.ts +169 -0
- package/dist/src/integrations/sourcegraph.d.ts.map +1 -0
- package/dist/src/integrations/sourcegraph.js +379 -0
- package/dist/src/integrations/sourcegraph.js.map +1 -0
- package/dist/src/integrations/sqlite-store.d.ts +518 -0
- package/dist/src/integrations/sqlite-store.d.ts.map +1 -0
- package/dist/src/integrations/sqlite-store.js +1423 -0
- package/dist/src/integrations/sqlite-store.js.map +1 -0
- package/dist/src/integrations/streaming.d.ts +102 -0
- package/dist/src/integrations/streaming.d.ts.map +1 -0
- package/dist/src/integrations/streaming.js +362 -0
- package/dist/src/integrations/streaming.js.map +1 -0
- package/dist/src/integrations/thread-manager.d.ts +199 -0
- package/dist/src/integrations/thread-manager.d.ts.map +1 -0
- package/dist/src/integrations/thread-manager.js +357 -0
- package/dist/src/integrations/thread-manager.js.map +1 -0
- package/dist/src/main.d.ts +26 -0
- package/dist/src/main.d.ts.map +1 -0
- package/dist/src/main.js +170 -0
- package/dist/src/main.js.map +1 -0
- package/dist/src/modes/index.d.ts +10 -0
- package/dist/src/modes/index.d.ts.map +1 -0
- package/dist/src/modes/index.js +10 -0
- package/dist/src/modes/index.js.map +1 -0
- package/dist/src/modes/repl.d.ts +19 -0
- package/dist/src/modes/repl.d.ts.map +1 -0
- package/dist/src/modes/repl.js +393 -0
- package/dist/src/modes/repl.js.map +1 -0
- package/dist/src/modes/tui.d.ts +29 -0
- package/dist/src/modes/tui.d.ts.map +1 -0
- package/dist/src/modes/tui.js +272 -0
- package/dist/src/modes/tui.js.map +1 -0
- package/dist/src/modes.d.ts +179 -0
- package/dist/src/modes.d.ts.map +1 -0
- package/dist/src/modes.js +385 -0
- package/dist/src/modes.js.map +1 -0
- package/dist/src/observability/tracer.d.ts +111 -0
- package/dist/src/observability/tracer.d.ts.map +1 -0
- package/dist/src/observability/tracer.js +300 -0
- package/dist/src/observability/tracer.js.map +1 -0
- package/dist/src/observability/types.d.ts +271 -0
- package/dist/src/observability/types.d.ts.map +1 -0
- package/dist/src/observability/types.js +24 -0
- package/dist/src/observability/types.js.map +1 -0
- package/dist/src/paths.d.ts +101 -0
- package/dist/src/paths.d.ts.map +1 -0
- package/dist/src/paths.js +148 -0
- package/dist/src/paths.js.map +1 -0
- package/dist/src/persistence/index.d.ts +38 -0
- package/dist/src/persistence/index.d.ts.map +1 -0
- package/dist/src/persistence/index.js +48 -0
- package/dist/src/persistence/index.js.map +1 -0
- package/dist/src/persistence/migrator.d.ts +135 -0
- package/dist/src/persistence/migrator.d.ts.map +1 -0
- package/dist/src/persistence/migrator.js +303 -0
- package/dist/src/persistence/migrator.js.map +1 -0
- package/dist/src/persistence/schema.d.ts +101 -0
- package/dist/src/persistence/schema.d.ts.map +1 -0
- package/dist/src/persistence/schema.js +395 -0
- package/dist/src/persistence/schema.js.map +1 -0
- package/dist/src/providers/adapters/anthropic.d.ts +20 -0
- package/dist/src/providers/adapters/anthropic.d.ts.map +1 -0
- package/dist/src/providers/adapters/anthropic.js +124 -0
- package/dist/src/providers/adapters/anthropic.js.map +1 -0
- package/dist/src/providers/adapters/mock.d.ts +25 -0
- package/dist/src/providers/adapters/mock.d.ts.map +1 -0
- package/dist/src/providers/adapters/mock.js +133 -0
- package/dist/src/providers/adapters/mock.js.map +1 -0
- package/dist/src/providers/adapters/openai.d.ts +21 -0
- package/dist/src/providers/adapters/openai.d.ts.map +1 -0
- package/dist/src/providers/adapters/openai.js +126 -0
- package/dist/src/providers/adapters/openai.js.map +1 -0
- package/dist/src/providers/adapters/openrouter.d.ts +49 -0
- package/dist/src/providers/adapters/openrouter.d.ts.map +1 -0
- package/dist/src/providers/adapters/openrouter.js +363 -0
- package/dist/src/providers/adapters/openrouter.js.map +1 -0
- package/dist/src/providers/provider.d.ts +54 -0
- package/dist/src/providers/provider.d.ts.map +1 -0
- package/dist/src/providers/provider.js +111 -0
- package/dist/src/providers/provider.js.map +1 -0
- package/dist/src/providers/resilient-fetch.d.ts +99 -0
- package/dist/src/providers/resilient-fetch.d.ts.map +1 -0
- package/dist/src/providers/resilient-fetch.js +208 -0
- package/dist/src/providers/resilient-fetch.js.map +1 -0
- package/dist/src/providers/types.d.ts +227 -0
- package/dist/src/providers/types.d.ts.map +1 -0
- package/dist/src/providers/types.js +24 -0
- package/dist/src/providers/types.js.map +1 -0
- package/dist/src/session-picker.d.ts +28 -0
- package/dist/src/session-picker.d.ts.map +1 -0
- package/dist/src/session-picker.js +256 -0
- package/dist/src/session-picker.js.map +1 -0
- package/dist/src/test-sqlite.d.ts +2 -0
- package/dist/src/test-sqlite.d.ts.map +1 -0
- package/dist/src/test-sqlite.js +114 -0
- package/dist/src/test-sqlite.js.map +1 -0
- package/dist/src/tools/agent.d.ts +44 -0
- package/dist/src/tools/agent.d.ts.map +1 -0
- package/dist/src/tools/agent.js +110 -0
- package/dist/src/tools/agent.js.map +1 -0
- package/dist/src/tools/bash.d.ts +52 -0
- package/dist/src/tools/bash.d.ts.map +1 -0
- package/dist/src/tools/bash.js +141 -0
- package/dist/src/tools/bash.js.map +1 -0
- package/dist/src/tools/file.d.ts +47 -0
- package/dist/src/tools/file.d.ts.map +1 -0
- package/dist/src/tools/file.js +263 -0
- package/dist/src/tools/file.js.map +1 -0
- package/dist/src/tools/permission.d.ts +43 -0
- package/dist/src/tools/permission.d.ts.map +1 -0
- package/dist/src/tools/permission.js +216 -0
- package/dist/src/tools/permission.js.map +1 -0
- package/dist/src/tools/registry.d.ts +63 -0
- package/dist/src/tools/registry.d.ts.map +1 -0
- package/dist/src/tools/registry.js +250 -0
- package/dist/src/tools/registry.js.map +1 -0
- package/dist/src/tools/standard.d.ts +57 -0
- package/dist/src/tools/standard.d.ts.map +1 -0
- package/dist/src/tools/standard.js +113 -0
- package/dist/src/tools/standard.js.map +1 -0
- package/dist/src/tools/types.d.ts +146 -0
- package/dist/src/tools/types.d.ts.map +1 -0
- package/dist/src/tools/types.js +28 -0
- package/dist/src/tools/types.js.map +1 -0
- package/dist/src/tools/undo.d.ts +71 -0
- package/dist/src/tools/undo.d.ts.map +1 -0
- package/dist/src/tools/undo.js +123 -0
- package/dist/src/tools/undo.js.map +1 -0
- package/dist/src/tracing/cache-boundary-tracker.d.ts +189 -0
- package/dist/src/tracing/cache-boundary-tracker.d.ts.map +1 -0
- package/dist/src/tracing/cache-boundary-tracker.js +411 -0
- package/dist/src/tracing/cache-boundary-tracker.js.map +1 -0
- package/dist/src/tracing/trace-collector.d.ts +274 -0
- package/dist/src/tracing/trace-collector.d.ts.map +1 -0
- package/dist/src/tracing/trace-collector.js +727 -0
- package/dist/src/tracing/trace-collector.js.map +1 -0
- package/dist/src/tracing/types.d.ts +657 -0
- package/dist/src/tracing/types.d.ts.map +1 -0
- package/dist/src/tracing/types.js +39 -0
- package/dist/src/tracing/types.js.map +1 -0
- package/dist/src/tricks/failure-evidence.d.ts +268 -0
- package/dist/src/tricks/failure-evidence.d.ts.map +1 -0
- package/dist/src/tricks/failure-evidence.js +544 -0
- package/dist/src/tricks/failure-evidence.js.map +1 -0
- package/dist/src/tricks/json-utils.d.ts +77 -0
- package/dist/src/tricks/json-utils.d.ts.map +1 -0
- package/dist/src/tricks/json-utils.js +247 -0
- package/dist/src/tricks/json-utils.js.map +1 -0
- package/dist/src/tricks/kv-cache-context.d.ts +227 -0
- package/dist/src/tricks/kv-cache-context.d.ts.map +1 -0
- package/dist/src/tricks/kv-cache-context.js +377 -0
- package/dist/src/tricks/kv-cache-context.js.map +1 -0
- package/dist/src/tricks/recitation.d.ts +208 -0
- package/dist/src/tricks/recitation.d.ts.map +1 -0
- package/dist/src/tricks/recitation.js +374 -0
- package/dist/src/tricks/recitation.js.map +1 -0
- package/dist/src/tricks/reversible-compaction.d.ts +251 -0
- package/dist/src/tricks/reversible-compaction.d.ts.map +1 -0
- package/dist/src/tricks/reversible-compaction.js +555 -0
- package/dist/src/tricks/reversible-compaction.js.map +1 -0
- package/dist/src/tricks/serialization-diversity.d.ts +197 -0
- package/dist/src/tricks/serialization-diversity.d.ts.map +1 -0
- package/dist/src/tricks/serialization-diversity.js +460 -0
- package/dist/src/tricks/serialization-diversity.js.map +1 -0
- package/dist/src/tui/app.d.ts +42 -0
- package/dist/src/tui/app.d.ts.map +1 -0
- package/dist/src/tui/app.js +1076 -0
- package/dist/src/tui/app.js.map +1 -0
- package/dist/src/tui/components/ApprovalDialog.d.ts +28 -0
- package/dist/src/tui/components/ApprovalDialog.d.ts.map +1 -0
- package/dist/src/tui/components/ApprovalDialog.js +59 -0
- package/dist/src/tui/components/ApprovalDialog.js.map +1 -0
- package/dist/src/tui/components/InputArea.d.ts +35 -0
- package/dist/src/tui/components/InputArea.d.ts.map +1 -0
- package/dist/src/tui/components/InputArea.js +144 -0
- package/dist/src/tui/components/InputArea.js.map +1 -0
- package/dist/src/tui/components/MessageItem.d.ts +28 -0
- package/dist/src/tui/components/MessageItem.d.ts.map +1 -0
- package/dist/src/tui/components/MessageItem.js +27 -0
- package/dist/src/tui/components/MessageItem.js.map +1 -0
- package/dist/src/tui/components/ScrollableBox.d.ts +41 -0
- package/dist/src/tui/components/ScrollableBox.d.ts.map +1 -0
- package/dist/src/tui/components/ScrollableBox.js +101 -0
- package/dist/src/tui/components/ScrollableBox.js.map +1 -0
- package/dist/src/tui/components/ToolCallItem.d.ts +33 -0
- package/dist/src/tui/components/ToolCallItem.d.ts.map +1 -0
- package/dist/src/tui/components/ToolCallItem.js +91 -0
- package/dist/src/tui/components/ToolCallItem.js.map +1 -0
- package/dist/src/tui/components/index.d.ts +13 -0
- package/dist/src/tui/components/index.d.ts.map +1 -0
- package/dist/src/tui/components/index.js +15 -0
- package/dist/src/tui/components/index.js.map +1 -0
- package/dist/src/tui/event-display.d.ts +19 -0
- package/dist/src/tui/event-display.d.ts.map +1 -0
- package/dist/src/tui/event-display.js +178 -0
- package/dist/src/tui/event-display.js.map +1 -0
- package/dist/src/tui/index.d.ts +105 -0
- package/dist/src/tui/index.d.ts.map +1 -0
- package/dist/src/tui/index.js +214 -0
- package/dist/src/tui/index.js.map +1 -0
- package/dist/src/tui/input/CommandPalette.d.ts +55 -0
- package/dist/src/tui/input/CommandPalette.d.ts.map +1 -0
- package/dist/src/tui/input/CommandPalette.js +135 -0
- package/dist/src/tui/input/CommandPalette.js.map +1 -0
- package/dist/src/tui/input/index.d.ts +7 -0
- package/dist/src/tui/input/index.d.ts.map +1 -0
- package/dist/src/tui/input/index.js +7 -0
- package/dist/src/tui/input/index.js.map +1 -0
- package/dist/src/tui/theme/index.d.ts +45 -0
- package/dist/src/tui/theme/index.d.ts.map +1 -0
- package/dist/src/tui/theme/index.js +215 -0
- package/dist/src/tui/theme/index.js.map +1 -0
- package/dist/src/tui/types.d.ts +214 -0
- package/dist/src/tui/types.d.ts.map +1 -0
- package/dist/src/tui/types.js +27 -0
- package/dist/src/tui/types.js.map +1 -0
- package/dist/src/types.d.ts +905 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +9 -0
- package/dist/src/types.js.map +1 -0
- package/package.json +89 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cancellation Token Integration
|
|
3
|
+
*
|
|
4
|
+
* Provides graceful cancellation support for long-running agent operations.
|
|
5
|
+
* Based on the .NET CancellationToken pattern, adapted from tricks/cancellation.ts.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* const cts = createCancellationTokenSource();
|
|
9
|
+
* agent.run(task, { cancellationToken: cts.token });
|
|
10
|
+
* // Later: cts.cancel('User requested cancellation');
|
|
11
|
+
*/
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// IMPLEMENTATION
|
|
14
|
+
// =============================================================================
|
|
15
|
+
class CancellationTokenImpl {
|
|
16
|
+
_cancelled = false;
|
|
17
|
+
_reason;
|
|
18
|
+
_callbacks = new Set();
|
|
19
|
+
_promise;
|
|
20
|
+
_resolve;
|
|
21
|
+
constructor() {
|
|
22
|
+
this._promise = new Promise((r) => {
|
|
23
|
+
this._resolve = r;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
get isCancellationRequested() {
|
|
27
|
+
return this._cancelled;
|
|
28
|
+
}
|
|
29
|
+
get cancellationReason() {
|
|
30
|
+
return this._reason;
|
|
31
|
+
}
|
|
32
|
+
get onCancellationRequested() {
|
|
33
|
+
return this._promise;
|
|
34
|
+
}
|
|
35
|
+
register(callback) {
|
|
36
|
+
if (this._cancelled) {
|
|
37
|
+
// Already cancelled, invoke immediately
|
|
38
|
+
try {
|
|
39
|
+
callback(this._reason);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Ignore callback errors
|
|
43
|
+
}
|
|
44
|
+
return { dispose: () => { } };
|
|
45
|
+
}
|
|
46
|
+
this._callbacks.add(callback);
|
|
47
|
+
return { dispose: () => this._callbacks.delete(callback) };
|
|
48
|
+
}
|
|
49
|
+
throwIfCancellationRequested() {
|
|
50
|
+
if (this._cancelled) {
|
|
51
|
+
throw new CancellationError(this._reason);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** @internal */
|
|
55
|
+
_cancel(reason) {
|
|
56
|
+
if (this._cancelled)
|
|
57
|
+
return;
|
|
58
|
+
this._cancelled = true;
|
|
59
|
+
this._reason = reason;
|
|
60
|
+
this._resolve(reason);
|
|
61
|
+
for (const cb of this._callbacks) {
|
|
62
|
+
try {
|
|
63
|
+
cb(reason);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Ignore callback errors to ensure all callbacks run
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
this._callbacks.clear();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
class CancellationTokenSourceImpl {
|
|
73
|
+
_token = new CancellationTokenImpl();
|
|
74
|
+
_timeoutId;
|
|
75
|
+
_disposed = false;
|
|
76
|
+
get token() {
|
|
77
|
+
return this._token;
|
|
78
|
+
}
|
|
79
|
+
get isCancellationRequested() {
|
|
80
|
+
return this._token.isCancellationRequested;
|
|
81
|
+
}
|
|
82
|
+
cancel(reason) {
|
|
83
|
+
if (this._disposed)
|
|
84
|
+
return;
|
|
85
|
+
this._token._cancel(reason);
|
|
86
|
+
}
|
|
87
|
+
cancelAfter(ms) {
|
|
88
|
+
if (this._disposed || this._token.isCancellationRequested)
|
|
89
|
+
return this;
|
|
90
|
+
this._timeoutId = setTimeout(() => this.cancel('Operation timed out'), ms);
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
dispose() {
|
|
94
|
+
if (this._disposed)
|
|
95
|
+
return;
|
|
96
|
+
this._disposed = true;
|
|
97
|
+
if (this._timeoutId) {
|
|
98
|
+
clearTimeout(this._timeoutId);
|
|
99
|
+
this._timeoutId = undefined;
|
|
100
|
+
}
|
|
101
|
+
// Don't cancel on dispose - the operation completed successfully
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// =============================================================================
|
|
105
|
+
// ERROR
|
|
106
|
+
// =============================================================================
|
|
107
|
+
/**
|
|
108
|
+
* Error thrown when an operation is cancelled.
|
|
109
|
+
*/
|
|
110
|
+
export class CancellationError extends Error {
|
|
111
|
+
isCancellation = true;
|
|
112
|
+
reason;
|
|
113
|
+
constructor(reason) {
|
|
114
|
+
super(reason || 'Operation cancelled');
|
|
115
|
+
this.name = 'CancellationError';
|
|
116
|
+
this.reason = reason;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Check if an error is a cancellation error.
|
|
121
|
+
*/
|
|
122
|
+
export function isCancellationError(error) {
|
|
123
|
+
return (error instanceof CancellationError ||
|
|
124
|
+
(error instanceof Error && 'isCancellation' in error && error.isCancellation === true));
|
|
125
|
+
}
|
|
126
|
+
// =============================================================================
|
|
127
|
+
// FACTORY FUNCTIONS
|
|
128
|
+
// =============================================================================
|
|
129
|
+
/**
|
|
130
|
+
* Create a new cancellation token source.
|
|
131
|
+
*/
|
|
132
|
+
export function createCancellationTokenSource() {
|
|
133
|
+
return new CancellationTokenSourceImpl();
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Create a token source that auto-cancels after timeout.
|
|
137
|
+
*/
|
|
138
|
+
export function createTimeoutToken(ms) {
|
|
139
|
+
return createCancellationTokenSource().cancelAfter(ms);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Create a linked token that cancels when any source cancels.
|
|
143
|
+
*/
|
|
144
|
+
export function createLinkedToken(...sources) {
|
|
145
|
+
const linked = createCancellationTokenSource();
|
|
146
|
+
for (const source of sources) {
|
|
147
|
+
if (source.isCancellationRequested) {
|
|
148
|
+
linked.cancel(source.token.cancellationReason);
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
source.token.register((reason) => linked.cancel(reason));
|
|
152
|
+
}
|
|
153
|
+
return linked;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Create a "none" token that is never cancelled.
|
|
157
|
+
* Useful as a default when no cancellation is needed.
|
|
158
|
+
*/
|
|
159
|
+
export const CancellationToken = {
|
|
160
|
+
None: {
|
|
161
|
+
isCancellationRequested: false,
|
|
162
|
+
cancellationReason: undefined,
|
|
163
|
+
onCancellationRequested: new Promise(() => { }),
|
|
164
|
+
register: () => ({ dispose: () => { } }),
|
|
165
|
+
throwIfCancellationRequested: () => { },
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
// =============================================================================
|
|
169
|
+
// UTILITIES
|
|
170
|
+
// =============================================================================
|
|
171
|
+
/**
|
|
172
|
+
* Run a function with cancellation support.
|
|
173
|
+
*/
|
|
174
|
+
export async function withCancellation(fn, options = {}) {
|
|
175
|
+
const { token, timeout } = options;
|
|
176
|
+
let timeoutSource;
|
|
177
|
+
let effectiveToken;
|
|
178
|
+
if (timeout && !token) {
|
|
179
|
+
timeoutSource = createTimeoutToken(timeout);
|
|
180
|
+
effectiveToken = timeoutSource.token;
|
|
181
|
+
}
|
|
182
|
+
else if (timeout && token) {
|
|
183
|
+
// Link user token with timeout
|
|
184
|
+
timeoutSource = createTimeoutToken(timeout);
|
|
185
|
+
const linkedSource = createLinkedToken({ token, isCancellationRequested: token.isCancellationRequested, cancel: () => { }, cancelAfter: () => ({ token, isCancellationRequested: false, cancel: () => { }, cancelAfter: () => ({}), dispose: () => { } }), dispose: () => { } }, timeoutSource);
|
|
186
|
+
effectiveToken = linkedSource.token;
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
effectiveToken = token || CancellationToken.None;
|
|
190
|
+
}
|
|
191
|
+
try {
|
|
192
|
+
effectiveToken.throwIfCancellationRequested();
|
|
193
|
+
return await fn(effectiveToken);
|
|
194
|
+
}
|
|
195
|
+
finally {
|
|
196
|
+
timeoutSource?.dispose();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Sleep with cancellation support.
|
|
201
|
+
*/
|
|
202
|
+
export function sleep(ms, token) {
|
|
203
|
+
return new Promise((resolve, reject) => {
|
|
204
|
+
if (token?.isCancellationRequested) {
|
|
205
|
+
reject(new CancellationError(token.cancellationReason));
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const id = setTimeout(resolve, ms);
|
|
209
|
+
const registration = token?.register((reason) => {
|
|
210
|
+
clearTimeout(id);
|
|
211
|
+
reject(new CancellationError(reason));
|
|
212
|
+
});
|
|
213
|
+
// Cleanup registration after timeout completes
|
|
214
|
+
if (registration) {
|
|
215
|
+
setTimeout(() => registration.dispose(), ms + 1);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Race a promise against cancellation.
|
|
221
|
+
*/
|
|
222
|
+
export function race(promise, token) {
|
|
223
|
+
if (token.isCancellationRequested) {
|
|
224
|
+
return Promise.reject(new CancellationError(token.cancellationReason));
|
|
225
|
+
}
|
|
226
|
+
return Promise.race([
|
|
227
|
+
promise,
|
|
228
|
+
token.onCancellationRequested.then((reason) => {
|
|
229
|
+
throw new CancellationError(reason);
|
|
230
|
+
}),
|
|
231
|
+
]);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Create an AbortSignal from a CancellationToken.
|
|
235
|
+
* Useful for integrating with fetch and other AbortSignal-based APIs.
|
|
236
|
+
*/
|
|
237
|
+
export function toAbortSignal(token) {
|
|
238
|
+
const controller = new AbortController();
|
|
239
|
+
if (token.isCancellationRequested) {
|
|
240
|
+
controller.abort(token.cancellationReason);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
token.register((reason) => controller.abort(reason));
|
|
244
|
+
}
|
|
245
|
+
return controller.signal;
|
|
246
|
+
}
|
|
247
|
+
// =============================================================================
|
|
248
|
+
// CANCELLATION MANAGER (for agent integration)
|
|
249
|
+
// =============================================================================
|
|
250
|
+
/**
|
|
251
|
+
* Manager that handles cancellation for agent operations.
|
|
252
|
+
* Provides a clean interface for the ProductionAgent to use.
|
|
253
|
+
*/
|
|
254
|
+
export class CancellationManager {
|
|
255
|
+
currentSource = null;
|
|
256
|
+
eventListeners = new Set();
|
|
257
|
+
/**
|
|
258
|
+
* Create a new cancellation context for an operation.
|
|
259
|
+
* Disposes the previous context if one exists.
|
|
260
|
+
*/
|
|
261
|
+
createContext(timeout) {
|
|
262
|
+
// Dispose previous context
|
|
263
|
+
this.disposeContext();
|
|
264
|
+
// Create new source
|
|
265
|
+
this.currentSource = timeout ? createTimeoutToken(timeout) : createCancellationTokenSource();
|
|
266
|
+
return this.currentSource.token;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Get the current cancellation token.
|
|
270
|
+
*/
|
|
271
|
+
get token() {
|
|
272
|
+
return this.currentSource?.token || CancellationToken.None;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Check if cancellation has been requested.
|
|
276
|
+
*/
|
|
277
|
+
get isCancelled() {
|
|
278
|
+
return this.currentSource?.isCancellationRequested ?? false;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Request cancellation of the current operation.
|
|
282
|
+
*/
|
|
283
|
+
cancel(reason) {
|
|
284
|
+
if (!this.currentSource)
|
|
285
|
+
return;
|
|
286
|
+
const effectiveReason = reason || 'User requested cancellation';
|
|
287
|
+
this.emit({ type: 'cancellation.requested', reason: effectiveReason, timestamp: new Date() });
|
|
288
|
+
this.currentSource.cancel(effectiveReason);
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Dispose the current cancellation context.
|
|
292
|
+
*/
|
|
293
|
+
disposeContext() {
|
|
294
|
+
if (this.currentSource) {
|
|
295
|
+
this.currentSource.dispose();
|
|
296
|
+
this.currentSource = null;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Check if there's an active cancellation context.
|
|
301
|
+
*/
|
|
302
|
+
hasActiveContext() {
|
|
303
|
+
return this.currentSource !== null;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Subscribe to cancellation events.
|
|
307
|
+
*/
|
|
308
|
+
subscribe(listener) {
|
|
309
|
+
this.eventListeners.add(listener);
|
|
310
|
+
return () => this.eventListeners.delete(listener);
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Emit a cancellation event.
|
|
314
|
+
*/
|
|
315
|
+
emit(event) {
|
|
316
|
+
for (const listener of this.eventListeners) {
|
|
317
|
+
try {
|
|
318
|
+
listener(event);
|
|
319
|
+
}
|
|
320
|
+
catch {
|
|
321
|
+
// Ignore listener errors
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Cleanup all resources.
|
|
327
|
+
*/
|
|
328
|
+
cleanup() {
|
|
329
|
+
this.disposeContext();
|
|
330
|
+
this.eventListeners.clear();
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Create a cancellation manager.
|
|
335
|
+
*/
|
|
336
|
+
export function createCancellationManager() {
|
|
337
|
+
return new CancellationManager();
|
|
338
|
+
}
|
|
339
|
+
//# sourceMappingURL=cancellation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancellation.js","sourceRoot":"","sources":["../../../src/integrations/cancellation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codebase Context Integration
|
|
3
|
+
*
|
|
4
|
+
* Provides intelligent code selection for context management.
|
|
5
|
+
* Analyzes repository structure and selects relevant code based on:
|
|
6
|
+
* - Task relevance (semantic matching)
|
|
7
|
+
* - Architectural importance (entry points, core modules)
|
|
8
|
+
* - Token budget constraints
|
|
9
|
+
*
|
|
10
|
+
* Key features:
|
|
11
|
+
* - Budget-aware context building (select code that fits)
|
|
12
|
+
* - Importance scoring (imports, exports, modification frequency)
|
|
13
|
+
* - Incremental expansion (start minimal, expand as needed)
|
|
14
|
+
* - Semantic relevance matching (keyword + structure analysis)
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* A chunk of code with metadata for context selection.
|
|
18
|
+
*/
|
|
19
|
+
export interface CodeChunk {
|
|
20
|
+
/** Unique identifier */
|
|
21
|
+
id: string;
|
|
22
|
+
/** Relative file path from repo root */
|
|
23
|
+
filePath: string;
|
|
24
|
+
/** The actual code content */
|
|
25
|
+
content: string;
|
|
26
|
+
/** Estimated token count */
|
|
27
|
+
tokenCount: number;
|
|
28
|
+
/** Importance score (0-1) */
|
|
29
|
+
importance: number;
|
|
30
|
+
/** Type of code chunk */
|
|
31
|
+
type: CodeChunkType;
|
|
32
|
+
/** Symbols defined in this chunk */
|
|
33
|
+
symbols: string[];
|
|
34
|
+
/** Symbols imported/used by this chunk */
|
|
35
|
+
dependencies: string[];
|
|
36
|
+
/** Last modified timestamp */
|
|
37
|
+
lastModified?: Date;
|
|
38
|
+
}
|
|
39
|
+
export type CodeChunkType = 'entry_point' | 'core_module' | 'utility' | 'types' | 'config' | 'test' | 'documentation' | 'other';
|
|
40
|
+
/**
|
|
41
|
+
* Repository structure map.
|
|
42
|
+
*/
|
|
43
|
+
export interface RepoMap {
|
|
44
|
+
/** Root directory of the repo */
|
|
45
|
+
root: string;
|
|
46
|
+
/** All discovered code chunks */
|
|
47
|
+
chunks: Map<string, CodeChunk>;
|
|
48
|
+
/** Entry point files */
|
|
49
|
+
entryPoints: string[];
|
|
50
|
+
/** Core module directories */
|
|
51
|
+
coreModules: string[];
|
|
52
|
+
/** Dependency graph (file -> imported files) */
|
|
53
|
+
dependencyGraph: Map<string, Set<string>>;
|
|
54
|
+
/** Reverse dependency graph (file -> files that import it) */
|
|
55
|
+
reverseDependencyGraph: Map<string, Set<string>>;
|
|
56
|
+
/** Total estimated tokens */
|
|
57
|
+
totalTokens: number;
|
|
58
|
+
/** Analysis timestamp */
|
|
59
|
+
analyzedAt: Date;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Configuration for codebase context.
|
|
63
|
+
*/
|
|
64
|
+
export interface CodebaseContextConfig {
|
|
65
|
+
/** Root directory to analyze */
|
|
66
|
+
root?: string;
|
|
67
|
+
/** File patterns to include (glob) */
|
|
68
|
+
includePatterns?: string[];
|
|
69
|
+
/** File patterns to exclude (glob) */
|
|
70
|
+
excludePatterns?: string[];
|
|
71
|
+
/** Maximum file size in bytes */
|
|
72
|
+
maxFileSize?: number;
|
|
73
|
+
/** Estimate tokens per character ratio */
|
|
74
|
+
tokensPerChar?: number;
|
|
75
|
+
/** Entry point file patterns */
|
|
76
|
+
entryPointPatterns?: string[];
|
|
77
|
+
/** Core module directory patterns */
|
|
78
|
+
coreModulePatterns?: string[];
|
|
79
|
+
/** Enable dependency graph analysis */
|
|
80
|
+
analyzeDependencies?: boolean;
|
|
81
|
+
/** Cache analysis results */
|
|
82
|
+
cacheResults?: boolean;
|
|
83
|
+
/** Cache TTL in milliseconds */
|
|
84
|
+
cacheTTL?: number;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Options for selecting relevant code.
|
|
88
|
+
*/
|
|
89
|
+
export interface SelectionOptions {
|
|
90
|
+
/** Maximum token budget */
|
|
91
|
+
maxTokens: number;
|
|
92
|
+
/** Task description for relevance scoring */
|
|
93
|
+
task?: string;
|
|
94
|
+
/** Specific files to prioritize */
|
|
95
|
+
priorityFiles?: string[];
|
|
96
|
+
/** Minimum importance threshold */
|
|
97
|
+
minImportance?: number;
|
|
98
|
+
/** Include types/interfaces */
|
|
99
|
+
includeTypes?: boolean;
|
|
100
|
+
/** Include tests */
|
|
101
|
+
includeTests?: boolean;
|
|
102
|
+
/** Strategy for selection */
|
|
103
|
+
strategy?: SelectionStrategy;
|
|
104
|
+
}
|
|
105
|
+
export type SelectionStrategy = 'importance_first' | 'relevance_first' | 'breadth_first' | 'depth_first';
|
|
106
|
+
/**
|
|
107
|
+
* Result of code selection.
|
|
108
|
+
*/
|
|
109
|
+
export interface SelectionResult {
|
|
110
|
+
/** Selected code chunks */
|
|
111
|
+
chunks: CodeChunk[];
|
|
112
|
+
/** Total tokens used */
|
|
113
|
+
totalTokens: number;
|
|
114
|
+
/** Budget remaining */
|
|
115
|
+
budgetRemaining: number;
|
|
116
|
+
/** Files that were excluded due to budget */
|
|
117
|
+
excluded: string[];
|
|
118
|
+
/** Selection statistics */
|
|
119
|
+
stats: {
|
|
120
|
+
filesConsidered: number;
|
|
121
|
+
filesSelected: number;
|
|
122
|
+
coveragePercent: number;
|
|
123
|
+
averageImportance: number;
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Events emitted by the codebase context manager.
|
|
128
|
+
*/
|
|
129
|
+
export type CodebaseContextEvent = {
|
|
130
|
+
type: 'analysis.started';
|
|
131
|
+
root: string;
|
|
132
|
+
} | {
|
|
133
|
+
type: 'analysis.completed';
|
|
134
|
+
totalFiles: number;
|
|
135
|
+
totalTokens: number;
|
|
136
|
+
} | {
|
|
137
|
+
type: 'analysis.error';
|
|
138
|
+
error: Error;
|
|
139
|
+
} | {
|
|
140
|
+
type: 'selection.completed';
|
|
141
|
+
selected: number;
|
|
142
|
+
budget: number;
|
|
143
|
+
} | {
|
|
144
|
+
type: 'cache.hit';
|
|
145
|
+
root: string;
|
|
146
|
+
} | {
|
|
147
|
+
type: 'cache.miss';
|
|
148
|
+
root: string;
|
|
149
|
+
};
|
|
150
|
+
export type CodebaseContextEventListener = (event: CodebaseContextEvent) => void;
|
|
151
|
+
/**
|
|
152
|
+
* Manages intelligent code selection for context building.
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```typescript
|
|
156
|
+
* const codebase = createCodebaseContext({ root: './my-project' });
|
|
157
|
+
*
|
|
158
|
+
* // Analyze the repository
|
|
159
|
+
* const repoMap = await codebase.analyze();
|
|
160
|
+
*
|
|
161
|
+
* // Select relevant code for a task within budget
|
|
162
|
+
* const selection = await codebase.selectRelevantCode({
|
|
163
|
+
* task: 'implement user authentication',
|
|
164
|
+
* maxTokens: 8000,
|
|
165
|
+
* strategy: 'relevance_first',
|
|
166
|
+
* });
|
|
167
|
+
*
|
|
168
|
+
* // Use selected code in context
|
|
169
|
+
* const context = selection.chunks.map(c => c.content).join('\n\n');
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
export declare class CodebaseContextManager {
|
|
173
|
+
private config;
|
|
174
|
+
private repoMap;
|
|
175
|
+
private cache;
|
|
176
|
+
private listeners;
|
|
177
|
+
constructor(config?: CodebaseContextConfig);
|
|
178
|
+
/**
|
|
179
|
+
* Analyze a repository and build its structure map.
|
|
180
|
+
*/
|
|
181
|
+
analyze(root?: string): Promise<RepoMap>;
|
|
182
|
+
/**
|
|
183
|
+
* Discover files matching include patterns.
|
|
184
|
+
*/
|
|
185
|
+
private discoverFiles;
|
|
186
|
+
/**
|
|
187
|
+
* Process a single file into a code chunk.
|
|
188
|
+
*/
|
|
189
|
+
private processFile;
|
|
190
|
+
/**
|
|
191
|
+
* Determine the type of a code chunk.
|
|
192
|
+
*/
|
|
193
|
+
private determineChunkType;
|
|
194
|
+
/**
|
|
195
|
+
* Calculate base importance for a chunk type.
|
|
196
|
+
*/
|
|
197
|
+
private calculateBaseImportance;
|
|
198
|
+
/**
|
|
199
|
+
* Extract exported symbols from code.
|
|
200
|
+
*/
|
|
201
|
+
private extractSymbols;
|
|
202
|
+
/**
|
|
203
|
+
* Extract dependency file paths from imports.
|
|
204
|
+
*/
|
|
205
|
+
private extractDependencies;
|
|
206
|
+
/**
|
|
207
|
+
* Extract dependency names (for symbol matching).
|
|
208
|
+
*/
|
|
209
|
+
private extractDependencyNames;
|
|
210
|
+
/**
|
|
211
|
+
* Adjust importance based on how many files depend on each chunk.
|
|
212
|
+
*/
|
|
213
|
+
private adjustImportanceByConnectivity;
|
|
214
|
+
/**
|
|
215
|
+
* Check if a path matches any of the given patterns.
|
|
216
|
+
*/
|
|
217
|
+
private matchesPatterns;
|
|
218
|
+
/**
|
|
219
|
+
* Simple glob matching (supports * and **).
|
|
220
|
+
*/
|
|
221
|
+
private matchesGlob;
|
|
222
|
+
/**
|
|
223
|
+
* Select relevant code chunks for a task within a token budget.
|
|
224
|
+
*/
|
|
225
|
+
selectRelevantCode(options: SelectionOptions): Promise<SelectionResult>;
|
|
226
|
+
/**
|
|
227
|
+
* Calculate task relevance for a chunk.
|
|
228
|
+
*/
|
|
229
|
+
private calculateRelevance;
|
|
230
|
+
/**
|
|
231
|
+
* Sort candidates by selection strategy.
|
|
232
|
+
*/
|
|
233
|
+
private sortByStrategy;
|
|
234
|
+
/**
|
|
235
|
+
* Expand context by adding related files to current selection.
|
|
236
|
+
*/
|
|
237
|
+
expandContext(currentChunks: CodeChunk[], options: {
|
|
238
|
+
maxTokensToAdd: number;
|
|
239
|
+
direction: 'dependencies' | 'dependents' | 'both';
|
|
240
|
+
query?: string;
|
|
241
|
+
}): Promise<CodeChunk[]>;
|
|
242
|
+
/**
|
|
243
|
+
* Get a chunk by file path.
|
|
244
|
+
*/
|
|
245
|
+
getChunk(filePath: string): CodeChunk | undefined;
|
|
246
|
+
/**
|
|
247
|
+
* Get all chunks.
|
|
248
|
+
*/
|
|
249
|
+
getAllChunks(): CodeChunk[];
|
|
250
|
+
/**
|
|
251
|
+
* Get entry points.
|
|
252
|
+
*/
|
|
253
|
+
getEntryPoints(): CodeChunk[];
|
|
254
|
+
/**
|
|
255
|
+
* Estimate tokens for a string.
|
|
256
|
+
*/
|
|
257
|
+
estimateTokens(content: string): number;
|
|
258
|
+
/**
|
|
259
|
+
* Get the current repo map.
|
|
260
|
+
*/
|
|
261
|
+
getRepoMap(): RepoMap | null;
|
|
262
|
+
/**
|
|
263
|
+
* Clear cached data.
|
|
264
|
+
*/
|
|
265
|
+
clearCache(): void;
|
|
266
|
+
/**
|
|
267
|
+
* Subscribe to events.
|
|
268
|
+
*/
|
|
269
|
+
on(listener: CodebaseContextEventListener): () => void;
|
|
270
|
+
private emit;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Create a codebase context manager.
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* ```typescript
|
|
277
|
+
* const codebase = createCodebaseContext({
|
|
278
|
+
* root: './my-project',
|
|
279
|
+
* includePatterns: ['src/**\/*.ts'],
|
|
280
|
+
* excludePatterns: ['node_modules/**'],
|
|
281
|
+
* });
|
|
282
|
+
*
|
|
283
|
+
* // Analyze repo
|
|
284
|
+
* await codebase.analyze();
|
|
285
|
+
*
|
|
286
|
+
* // Select code for task
|
|
287
|
+
* const selection = await codebase.selectRelevantCode({
|
|
288
|
+
* task: 'fix authentication bug',
|
|
289
|
+
* maxTokens: 10000,
|
|
290
|
+
* strategy: 'relevance_first',
|
|
291
|
+
* });
|
|
292
|
+
*
|
|
293
|
+
* console.log(`Selected ${selection.chunks.length} files`);
|
|
294
|
+
* console.log(`Using ${selection.totalTokens} tokens`);
|
|
295
|
+
* ```
|
|
296
|
+
*/
|
|
297
|
+
export declare function createCodebaseContext(config?: CodebaseContextConfig): CodebaseContextManager;
|
|
298
|
+
/**
|
|
299
|
+
* Minimal chunk interface for building context.
|
|
300
|
+
* Only requires the properties actually used by buildContextFromChunks.
|
|
301
|
+
*/
|
|
302
|
+
export interface MinimalCodeChunk {
|
|
303
|
+
filePath: string;
|
|
304
|
+
content: string;
|
|
305
|
+
tokenCount: number;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Build context string from selected chunks.
|
|
309
|
+
*/
|
|
310
|
+
export declare function buildContextFromChunks(chunks: MinimalCodeChunk[], options?: {
|
|
311
|
+
includeFilePaths?: boolean;
|
|
312
|
+
includeSeparators?: boolean;
|
|
313
|
+
maxTotalTokens?: number;
|
|
314
|
+
}): string;
|
|
315
|
+
/**
|
|
316
|
+
* Create a summary of the repo structure.
|
|
317
|
+
*/
|
|
318
|
+
export declare function summarizeRepoStructure(repoMap: RepoMap): string;
|
|
319
|
+
//# sourceMappingURL=codebase-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebase-context.d.ts","sourceRoot":"","sources":["../../../src/integrations/codebase-context.ts"],"names":[],"mappings":"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"}
|