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,385 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lesson 25: Agent Modes (OpenCode-inspired)
|
|
3
|
+
*
|
|
4
|
+
* Provides different operational modes for the agent:
|
|
5
|
+
* - Build: Full access to modify files and run commands
|
|
6
|
+
* - Plan: Read-only mode for exploration and planning
|
|
7
|
+
* - Review: Read-only mode focused on code review
|
|
8
|
+
*
|
|
9
|
+
* Users can switch modes with Tab key or /mode command.
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* agent.setMode('plan');
|
|
13
|
+
* const currentMode = agent.getMode();
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Tools that modify the filesystem or execute side effects.
|
|
17
|
+
* In plan mode with write approval, these are queued instead of executed.
|
|
18
|
+
*/
|
|
19
|
+
export const WRITE_TOOLS = [
|
|
20
|
+
'write_file',
|
|
21
|
+
'edit_file',
|
|
22
|
+
'delete_file',
|
|
23
|
+
'bash', // Can have side effects
|
|
24
|
+
'spawn_agent', // Subagents can modify files
|
|
25
|
+
'run_tests', // Can have side effects
|
|
26
|
+
'execute_code', // Can have side effects
|
|
27
|
+
];
|
|
28
|
+
/**
|
|
29
|
+
* Check if a tool is a write operation.
|
|
30
|
+
*/
|
|
31
|
+
export function isWriteTool(toolName) {
|
|
32
|
+
return WRITE_TOOLS.includes(toolName);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Analyze bash command to determine if it's a write operation.
|
|
36
|
+
* Returns true for commands that modify state.
|
|
37
|
+
*/
|
|
38
|
+
export function isBashWriteCommand(command) {
|
|
39
|
+
const writePatterns = [
|
|
40
|
+
/\brm\b/, // Remove files
|
|
41
|
+
/\bmv\b/, // Move/rename files
|
|
42
|
+
/\bcp\b/, // Copy files
|
|
43
|
+
/\bmkdir\b/, // Create directories
|
|
44
|
+
/\btouch\b/, // Create/modify files
|
|
45
|
+
/\bchmod\b/, // Change permissions
|
|
46
|
+
/\bchown\b/, // Change ownership
|
|
47
|
+
/\b(npm|yarn|pnpm)\s+(install|add|remove|uninstall)/i, // Package managers
|
|
48
|
+
/\bgit\s+(add|commit|push|pull|merge|rebase|reset|checkout)/i, // Git write ops
|
|
49
|
+
/\becho\b.*>/, // Redirect to file
|
|
50
|
+
/\bcat\b.*>/, // Redirect to file
|
|
51
|
+
/\btee\b/, // Write to file
|
|
52
|
+
/\bsed\b.*-i/, // In-place edit
|
|
53
|
+
/\bawk\b.*-i/, // In-place edit
|
|
54
|
+
/>\s*\S/, // Any redirect
|
|
55
|
+
/\|\s*tee\b/, // Pipe to tee
|
|
56
|
+
];
|
|
57
|
+
return writePatterns.some(pattern => pattern.test(command));
|
|
58
|
+
}
|
|
59
|
+
// =============================================================================
|
|
60
|
+
// MODE DEFINITIONS
|
|
61
|
+
// =============================================================================
|
|
62
|
+
/**
|
|
63
|
+
* Read-only tools available in restricted modes.
|
|
64
|
+
*/
|
|
65
|
+
export const READ_ONLY_TOOLS = [
|
|
66
|
+
'read_file',
|
|
67
|
+
'list_files',
|
|
68
|
+
'list_directory',
|
|
69
|
+
'search',
|
|
70
|
+
'glob',
|
|
71
|
+
'grep',
|
|
72
|
+
'get_file_info',
|
|
73
|
+
'git_status',
|
|
74
|
+
'git_log',
|
|
75
|
+
'git_diff',
|
|
76
|
+
'lsp_definition',
|
|
77
|
+
'lsp_references',
|
|
78
|
+
'lsp_hover',
|
|
79
|
+
];
|
|
80
|
+
/**
|
|
81
|
+
* All tools (for build mode).
|
|
82
|
+
*/
|
|
83
|
+
export const ALL_TOOLS = '*'; // Special marker for "all tools"
|
|
84
|
+
/**
|
|
85
|
+
* Mode configurations.
|
|
86
|
+
*/
|
|
87
|
+
export const MODES = {
|
|
88
|
+
build: {
|
|
89
|
+
name: 'Build',
|
|
90
|
+
description: 'Full access to modify files and run commands',
|
|
91
|
+
availableTools: [ALL_TOOLS],
|
|
92
|
+
systemPromptAddition: `
|
|
93
|
+
You are in BUILD mode with full access to modify files and run commands.
|
|
94
|
+
- You can create, edit, and delete files
|
|
95
|
+
- You can run shell commands and scripts
|
|
96
|
+
- You can make changes to the codebase
|
|
97
|
+
- Proceed with caution and verify changes before committing
|
|
98
|
+
`,
|
|
99
|
+
color: '\x1b[32m', // Green
|
|
100
|
+
icon: '🔨',
|
|
101
|
+
requireWriteApproval: false,
|
|
102
|
+
showPlanPrompt: false,
|
|
103
|
+
},
|
|
104
|
+
plan: {
|
|
105
|
+
name: 'Plan',
|
|
106
|
+
description: 'Exploration mode - writes queued for approval',
|
|
107
|
+
availableTools: [ALL_TOOLS], // All tools available, but writes are intercepted
|
|
108
|
+
systemPromptAddition: `
|
|
109
|
+
You are in PLAN mode.
|
|
110
|
+
- You can read files, explore the codebase, and use all tools
|
|
111
|
+
- IMPORTANT: Write operations (file edits, bash commands with side effects) will be QUEUED for user approval
|
|
112
|
+
- The queued changes will be shown to the user as a "pending plan"
|
|
113
|
+
- Focus on understanding the codebase and proposing specific changes
|
|
114
|
+
- Your proposed changes should include clear explanations of WHY each change is needed
|
|
115
|
+
- After you finish exploring, the user can approve, modify, or reject the pending plan
|
|
116
|
+
`,
|
|
117
|
+
color: '\x1b[34m', // Blue
|
|
118
|
+
icon: '📋',
|
|
119
|
+
requireWriteApproval: true,
|
|
120
|
+
showPlanPrompt: true,
|
|
121
|
+
},
|
|
122
|
+
review: {
|
|
123
|
+
name: 'Review',
|
|
124
|
+
description: 'Read-only mode focused on code review',
|
|
125
|
+
availableTools: READ_ONLY_TOOLS,
|
|
126
|
+
systemPromptAddition: `
|
|
127
|
+
You are in REVIEW mode (read-only).
|
|
128
|
+
- You can read files and analyze code
|
|
129
|
+
- You CANNOT modify files
|
|
130
|
+
- Focus on code quality, bugs, security issues, and best practices
|
|
131
|
+
- Provide specific, actionable feedback
|
|
132
|
+
- Point out both issues and positive patterns
|
|
133
|
+
- Consider maintainability, readability, and performance
|
|
134
|
+
`,
|
|
135
|
+
color: '\x1b[33m', // Yellow
|
|
136
|
+
icon: '🔍',
|
|
137
|
+
requireWriteApproval: false,
|
|
138
|
+
showPlanPrompt: false,
|
|
139
|
+
},
|
|
140
|
+
debug: {
|
|
141
|
+
name: 'Debug',
|
|
142
|
+
description: 'Debugging mode with diagnostic tools',
|
|
143
|
+
availableTools: [...READ_ONLY_TOOLS, 'run_tests', 'execute_code'],
|
|
144
|
+
systemPromptAddition: `
|
|
145
|
+
You are in DEBUG mode.
|
|
146
|
+
- You can read files and run diagnostic commands
|
|
147
|
+
- You can execute tests and debug scripts
|
|
148
|
+
- Focus on finding and isolating bugs
|
|
149
|
+
- Use a systematic approach: reproduce, isolate, fix
|
|
150
|
+
- Consider adding logging or debugging statements
|
|
151
|
+
`,
|
|
152
|
+
color: '\x1b[35m', // Magenta
|
|
153
|
+
icon: '🐛',
|
|
154
|
+
requireWriteApproval: false,
|
|
155
|
+
showPlanPrompt: false,
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
// =============================================================================
|
|
159
|
+
// MODE MANAGER
|
|
160
|
+
// =============================================================================
|
|
161
|
+
/**
|
|
162
|
+
* Manages agent modes and tool filtering.
|
|
163
|
+
*/
|
|
164
|
+
export class ModeManager {
|
|
165
|
+
currentMode = 'build';
|
|
166
|
+
eventListeners = new Set();
|
|
167
|
+
allToolNames = new Set();
|
|
168
|
+
constructor(tools = []) {
|
|
169
|
+
// Track all available tool names
|
|
170
|
+
for (const tool of tools) {
|
|
171
|
+
this.allToolNames.add(tool.name);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Get the current mode.
|
|
176
|
+
*/
|
|
177
|
+
getMode() {
|
|
178
|
+
return this.currentMode;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Get the current mode configuration.
|
|
182
|
+
*/
|
|
183
|
+
getModeConfig() {
|
|
184
|
+
return MODES[this.currentMode];
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Set the agent mode.
|
|
188
|
+
*/
|
|
189
|
+
setMode(mode) {
|
|
190
|
+
if (mode === this.currentMode)
|
|
191
|
+
return;
|
|
192
|
+
const from = this.currentMode;
|
|
193
|
+
this.currentMode = mode;
|
|
194
|
+
this.emit({ type: 'mode.changed', from, to: mode });
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Cycle to the next mode.
|
|
198
|
+
*/
|
|
199
|
+
cycleMode() {
|
|
200
|
+
const modes = ['build', 'plan', 'review', 'debug'];
|
|
201
|
+
const currentIndex = modes.indexOf(this.currentMode);
|
|
202
|
+
const nextIndex = (currentIndex + 1) % modes.length;
|
|
203
|
+
const nextMode = modes[nextIndex];
|
|
204
|
+
this.setMode(nextMode);
|
|
205
|
+
return nextMode;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Check if a tool is available in the current mode.
|
|
209
|
+
*/
|
|
210
|
+
isToolAvailable(toolName) {
|
|
211
|
+
const config = MODES[this.currentMode];
|
|
212
|
+
// Build mode has all tools
|
|
213
|
+
if (config.availableTools.includes(ALL_TOOLS)) {
|
|
214
|
+
return true;
|
|
215
|
+
}
|
|
216
|
+
return config.availableTools.includes(toolName);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Filter tools based on current mode.
|
|
220
|
+
*/
|
|
221
|
+
filterTools(tools) {
|
|
222
|
+
const config = MODES[this.currentMode];
|
|
223
|
+
// Build mode has all tools
|
|
224
|
+
if (config.availableTools.includes(ALL_TOOLS)) {
|
|
225
|
+
return tools;
|
|
226
|
+
}
|
|
227
|
+
return tools.filter((tool) => {
|
|
228
|
+
const available = config.availableTools.includes(tool.name);
|
|
229
|
+
if (!available) {
|
|
230
|
+
this.emit({ type: 'mode.tool.filtered', tool: tool.name, mode: this.currentMode });
|
|
231
|
+
}
|
|
232
|
+
return available;
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Get the system prompt addition for the current mode.
|
|
237
|
+
*/
|
|
238
|
+
getSystemPromptAddition() {
|
|
239
|
+
return MODES[this.currentMode].systemPromptAddition;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Get all available modes.
|
|
243
|
+
*/
|
|
244
|
+
getAllModes() {
|
|
245
|
+
return Object.keys(MODES);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Get mode info for display.
|
|
249
|
+
*/
|
|
250
|
+
getModeInfo(mode) {
|
|
251
|
+
const m = mode ?? this.currentMode;
|
|
252
|
+
const config = MODES[m];
|
|
253
|
+
return {
|
|
254
|
+
name: config.name,
|
|
255
|
+
icon: config.icon,
|
|
256
|
+
color: config.color,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Format mode for terminal display.
|
|
261
|
+
*/
|
|
262
|
+
formatModePrompt() {
|
|
263
|
+
const config = MODES[this.currentMode];
|
|
264
|
+
return `${config.color}${config.icon} ${config.name}\x1b[0m`;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Subscribe to mode events.
|
|
268
|
+
*/
|
|
269
|
+
subscribe(listener) {
|
|
270
|
+
this.eventListeners.add(listener);
|
|
271
|
+
return () => this.eventListeners.delete(listener);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Update available tools.
|
|
275
|
+
*/
|
|
276
|
+
updateTools(tools) {
|
|
277
|
+
this.allToolNames.clear();
|
|
278
|
+
for (const tool of tools) {
|
|
279
|
+
this.allToolNames.add(tool.name);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Check if the current mode requires write approval.
|
|
284
|
+
*/
|
|
285
|
+
requiresWriteApproval() {
|
|
286
|
+
return MODES[this.currentMode].requireWriteApproval;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Check if the current mode should show plan prompts.
|
|
290
|
+
*/
|
|
291
|
+
shouldShowPlanPrompt() {
|
|
292
|
+
return MODES[this.currentMode].showPlanPrompt;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Check if a tool call should be intercepted (queued) in current mode.
|
|
296
|
+
* Returns true if the tool is a write operation and mode requires approval.
|
|
297
|
+
*
|
|
298
|
+
* @param toolName - The name of the tool
|
|
299
|
+
* @param args - The tool arguments (needed to check bash commands)
|
|
300
|
+
*/
|
|
301
|
+
shouldInterceptTool(toolName, args) {
|
|
302
|
+
if (!this.requiresWriteApproval()) {
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
// Check if it's a known write tool
|
|
306
|
+
if (isWriteTool(toolName)) {
|
|
307
|
+
// Special case: bash commands need content analysis
|
|
308
|
+
if (toolName === 'bash' && args?.command) {
|
|
309
|
+
return isBashWriteCommand(String(args.command));
|
|
310
|
+
}
|
|
311
|
+
return true;
|
|
312
|
+
}
|
|
313
|
+
return false;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Toggle between build and plan modes.
|
|
317
|
+
* Useful for shift-tab or /plan command.
|
|
318
|
+
*/
|
|
319
|
+
togglePlanMode() {
|
|
320
|
+
if (this.currentMode === 'plan') {
|
|
321
|
+
this.setMode('build');
|
|
322
|
+
return 'build';
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
this.setMode('plan');
|
|
326
|
+
return 'plan';
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
// Internal methods
|
|
330
|
+
emit(event) {
|
|
331
|
+
for (const listener of this.eventListeners) {
|
|
332
|
+
try {
|
|
333
|
+
listener(event);
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
// Ignore listener errors
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
// =============================================================================
|
|
342
|
+
// FACTORY FUNCTIONS
|
|
343
|
+
// =============================================================================
|
|
344
|
+
/**
|
|
345
|
+
* Create a mode manager.
|
|
346
|
+
*/
|
|
347
|
+
export function createModeManager(tools) {
|
|
348
|
+
return new ModeManager(tools);
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Format all modes for display.
|
|
352
|
+
*/
|
|
353
|
+
export function formatModeList() {
|
|
354
|
+
const lines = ['Available modes:'];
|
|
355
|
+
for (const [key, config] of Object.entries(MODES)) {
|
|
356
|
+
lines.push(` ${config.icon} ${key.padEnd(8)} - ${config.description}`);
|
|
357
|
+
}
|
|
358
|
+
return lines.join('\n');
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Parse mode from string (case-insensitive).
|
|
362
|
+
*/
|
|
363
|
+
export function parseMode(input) {
|
|
364
|
+
const normalized = input.toLowerCase().trim();
|
|
365
|
+
if (normalized in MODES) {
|
|
366
|
+
return normalized;
|
|
367
|
+
}
|
|
368
|
+
// Handle aliases
|
|
369
|
+
const aliases = {
|
|
370
|
+
'read': 'plan',
|
|
371
|
+
'readonly': 'plan',
|
|
372
|
+
'read-only': 'plan',
|
|
373
|
+
'explore': 'plan',
|
|
374
|
+
'code-review': 'review',
|
|
375
|
+
'codereview': 'review',
|
|
376
|
+
'cr': 'review',
|
|
377
|
+
'dev': 'build',
|
|
378
|
+
'development': 'build',
|
|
379
|
+
'write': 'build',
|
|
380
|
+
'bug': 'debug',
|
|
381
|
+
'fix': 'debug',
|
|
382
|
+
};
|
|
383
|
+
return aliases[normalized] || null;
|
|
384
|
+
}
|
|
385
|
+
//# sourceMappingURL=modes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modes.js","sourceRoot":"","sources":["../../src/modes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lesson 19: Tracer
|
|
3
|
+
*
|
|
4
|
+
* OpenTelemetry-style distributed tracing for agents.
|
|
5
|
+
* Tracks operations as spans with parent-child relationships.
|
|
6
|
+
*/
|
|
7
|
+
import type { Span, SpanKind, SpanStatus, SpanAttributeValue, Trace, ObservabilityEventListener } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Context for propagating trace information.
|
|
10
|
+
*/
|
|
11
|
+
export interface SpanContext {
|
|
12
|
+
traceId: string;
|
|
13
|
+
spanId: string;
|
|
14
|
+
sampled: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get current span context.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getCurrentContext(): SpanContext | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Creates and manages spans for distributed tracing.
|
|
22
|
+
*/
|
|
23
|
+
export declare class Tracer {
|
|
24
|
+
private spans;
|
|
25
|
+
private traces;
|
|
26
|
+
private listeners;
|
|
27
|
+
private serviceName;
|
|
28
|
+
private sampleRate;
|
|
29
|
+
constructor(serviceName?: string, sampleRate?: number);
|
|
30
|
+
/**
|
|
31
|
+
* Start a new span.
|
|
32
|
+
*/
|
|
33
|
+
startSpan(name: string, options?: {
|
|
34
|
+
kind?: SpanKind;
|
|
35
|
+
attributes?: Record<string, SpanAttributeValue>;
|
|
36
|
+
parent?: SpanContext;
|
|
37
|
+
}): Span;
|
|
38
|
+
/**
|
|
39
|
+
* End a span.
|
|
40
|
+
*/
|
|
41
|
+
endSpan(span: Span, status?: SpanStatus): void;
|
|
42
|
+
/**
|
|
43
|
+
* Mark span as error.
|
|
44
|
+
*/
|
|
45
|
+
setError(span: Span, error: Error): void;
|
|
46
|
+
/**
|
|
47
|
+
* Set span attribute.
|
|
48
|
+
*/
|
|
49
|
+
setAttribute(span: Span, key: string, value: SpanAttributeValue): void;
|
|
50
|
+
/**
|
|
51
|
+
* Set multiple span attributes.
|
|
52
|
+
*/
|
|
53
|
+
setAttributes(span: Span, attributes: Record<string, SpanAttributeValue>): void;
|
|
54
|
+
/**
|
|
55
|
+
* Add an event to a span.
|
|
56
|
+
*/
|
|
57
|
+
addEvent(span: Span, name: string, attributes?: Record<string, SpanAttributeValue>): void;
|
|
58
|
+
/**
|
|
59
|
+
* Wrap an async function with a span.
|
|
60
|
+
*/
|
|
61
|
+
withSpan<T>(name: string, fn: (span: Span) => Promise<T>, options?: {
|
|
62
|
+
kind?: SpanKind;
|
|
63
|
+
attributes?: Record<string, SpanAttributeValue>;
|
|
64
|
+
}): Promise<T>;
|
|
65
|
+
/**
|
|
66
|
+
* Wrap a sync function with a span.
|
|
67
|
+
*/
|
|
68
|
+
withSpanSync<T>(name: string, fn: (span: Span) => T, options?: {
|
|
69
|
+
kind?: SpanKind;
|
|
70
|
+
attributes?: Record<string, SpanAttributeValue>;
|
|
71
|
+
}): T;
|
|
72
|
+
/**
|
|
73
|
+
* Get a trace by ID.
|
|
74
|
+
*/
|
|
75
|
+
getTrace(traceId: string): Trace | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* Get all traces.
|
|
78
|
+
*/
|
|
79
|
+
getAllTraces(): Trace[];
|
|
80
|
+
/**
|
|
81
|
+
* Get a span by ID.
|
|
82
|
+
*/
|
|
83
|
+
getSpan(spanId: string): Span | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* Get child spans of a span.
|
|
86
|
+
*/
|
|
87
|
+
getChildSpans(spanId: string): Span[];
|
|
88
|
+
/**
|
|
89
|
+
* Clear all traces and spans.
|
|
90
|
+
*/
|
|
91
|
+
clear(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Subscribe to tracer events.
|
|
94
|
+
*/
|
|
95
|
+
on(listener: ObservabilityEventListener): () => void;
|
|
96
|
+
/**
|
|
97
|
+
* Emit an event.
|
|
98
|
+
*/
|
|
99
|
+
private emit;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Format a trace as a tree.
|
|
103
|
+
*/
|
|
104
|
+
export declare function formatTraceTree(trace: Trace): string;
|
|
105
|
+
/**
|
|
106
|
+
* Format span attributes.
|
|
107
|
+
*/
|
|
108
|
+
export declare function formatSpanAttributes(span: Span): string;
|
|
109
|
+
export declare function createTracer(serviceName?: string, sampleRate?: number): Tracer;
|
|
110
|
+
export declare const globalTracer: Tracer;
|
|
111
|
+
//# sourceMappingURL=tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/observability/tracer.ts"],"names":[],"mappings":"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"}
|