@esankhan3/anvil-agent-core 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/README.md +142 -0
- package/dist/__tests__/adapter-enrichment.test.d.ts +12 -0
- package/dist/__tests__/adapter-enrichment.test.d.ts.map +1 -0
- package/dist/__tests__/adapter-enrichment.test.js +199 -0
- package/dist/__tests__/adapter-enrichment.test.js.map +1 -0
- package/dist/__tests__/adk-anthropic-llm.test.d.ts +18 -0
- package/dist/__tests__/adk-anthropic-llm.test.d.ts.map +1 -0
- package/dist/__tests__/adk-anthropic-llm.test.js +124 -0
- package/dist/__tests__/adk-anthropic-llm.test.js.map +1 -0
- package/dist/__tests__/cost-breakdown.test.d.ts +11 -0
- package/dist/__tests__/cost-breakdown.test.d.ts.map +1 -0
- package/dist/__tests__/cost-breakdown.test.js +163 -0
- package/dist/__tests__/cost-breakdown.test.js.map +1 -0
- package/dist/__tests__/mcp.test.d.ts +13 -0
- package/dist/__tests__/mcp.test.d.ts.map +1 -0
- package/dist/__tests__/mcp.test.js +413 -0
- package/dist/__tests__/mcp.test.js.map +1 -0
- package/dist/__tests__/ollama-adapter-agentic.test.d.ts +15 -0
- package/dist/__tests__/ollama-adapter-agentic.test.d.ts.map +1 -0
- package/dist/__tests__/ollama-adapter-agentic.test.js +268 -0
- package/dist/__tests__/ollama-adapter-agentic.test.js.map +1 -0
- package/dist/__tests__/ollama-adapter-executor.test.d.ts +10 -0
- package/dist/__tests__/ollama-adapter-executor.test.d.ts.map +1 -0
- package/dist/__tests__/ollama-adapter-executor.test.js +95 -0
- package/dist/__tests__/ollama-adapter-executor.test.js.map +1 -0
- package/dist/__tests__/openai-adapter-output.test.d.ts +17 -0
- package/dist/__tests__/openai-adapter-output.test.d.ts.map +1 -0
- package/dist/__tests__/openai-adapter-output.test.js +127 -0
- package/dist/__tests__/openai-adapter-output.test.js.map +1 -0
- package/dist/__tests__/opencode-adapter.test.d.ts +7 -0
- package/dist/__tests__/opencode-adapter.test.d.ts.map +1 -0
- package/dist/__tests__/opencode-adapter.test.js +141 -0
- package/dist/__tests__/opencode-adapter.test.js.map +1 -0
- package/dist/__tests__/openrouter-adapter-agentic.test.d.ts +11 -0
- package/dist/__tests__/openrouter-adapter-agentic.test.d.ts.map +1 -0
- package/dist/__tests__/openrouter-adapter-agentic.test.js +297 -0
- package/dist/__tests__/openrouter-adapter-agentic.test.js.map +1 -0
- package/dist/__tests__/router-circuit-breaker.test.d.ts +6 -0
- package/dist/__tests__/router-circuit-breaker.test.d.ts.map +1 -0
- package/dist/__tests__/router-circuit-breaker.test.js +253 -0
- package/dist/__tests__/router-circuit-breaker.test.js.map +1 -0
- package/dist/__tests__/router-config-loader.test.d.ts +8 -0
- package/dist/__tests__/router-config-loader.test.d.ts.map +1 -0
- package/dist/__tests__/router-config-loader.test.js +172 -0
- package/dist/__tests__/router-config-loader.test.js.map +1 -0
- package/dist/__tests__/router-discovery.test.d.ts +5 -0
- package/dist/__tests__/router-discovery.test.d.ts.map +1 -0
- package/dist/__tests__/router-discovery.test.js +129 -0
- package/dist/__tests__/router-discovery.test.js.map +1 -0
- package/dist/__tests__/router-fallback.test.d.ts +9 -0
- package/dist/__tests__/router-fallback.test.d.ts.map +1 -0
- package/dist/__tests__/router-fallback.test.js +283 -0
- package/dist/__tests__/router-fallback.test.js.map +1 -0
- package/dist/__tests__/router-local-executor.test.d.ts +6 -0
- package/dist/__tests__/router-local-executor.test.d.ts.map +1 -0
- package/dist/__tests__/router-local-executor.test.js +193 -0
- package/dist/__tests__/router-local-executor.test.js.map +1 -0
- package/dist/__tests__/router-model-registry.test.d.ts +8 -0
- package/dist/__tests__/router-model-registry.test.d.ts.map +1 -0
- package/dist/__tests__/router-model-registry.test.js +389 -0
- package/dist/__tests__/router-model-registry.test.js.map +1 -0
- package/dist/__tests__/router-rate-limiter.test.d.ts +8 -0
- package/dist/__tests__/router-rate-limiter.test.d.ts.map +1 -0
- package/dist/__tests__/router-rate-limiter.test.js +128 -0
- package/dist/__tests__/router-rate-limiter.test.js.map +1 -0
- package/dist/__tests__/router-resolver.test.d.ts +7 -0
- package/dist/__tests__/router-resolver.test.d.ts.map +1 -0
- package/dist/__tests__/router-resolver.test.js +110 -0
- package/dist/__tests__/router-resolver.test.js.map +1 -0
- package/dist/__tests__/router-retry.test.d.ts +7 -0
- package/dist/__tests__/router-retry.test.d.ts.map +1 -0
- package/dist/__tests__/router-retry.test.js +302 -0
- package/dist/__tests__/router-retry.test.js.map +1 -0
- package/dist/__tests__/router-scaffold.test.d.ts +11 -0
- package/dist/__tests__/router-scaffold.test.d.ts.map +1 -0
- package/dist/__tests__/router-scaffold.test.js +103 -0
- package/dist/__tests__/router-scaffold.test.js.map +1 -0
- package/dist/__tests__/router-spend-ledger.test.d.ts +8 -0
- package/dist/__tests__/router-spend-ledger.test.d.ts.map +1 -0
- package/dist/__tests__/router-spend-ledger.test.js +227 -0
- package/dist/__tests__/router-spend-ledger.test.js.map +1 -0
- package/dist/__tests__/router-telemetry.test.d.ts +11 -0
- package/dist/__tests__/router-telemetry.test.d.ts.map +1 -0
- package/dist/__tests__/router-telemetry.test.js +173 -0
- package/dist/__tests__/router-telemetry.test.js.map +1 -0
- package/dist/__tests__/single-shot.test.d.ts +12 -0
- package/dist/__tests__/single-shot.test.d.ts.map +1 -0
- package/dist/__tests__/single-shot.test.js +204 -0
- package/dist/__tests__/single-shot.test.js.map +1 -0
- package/dist/__tests__/skills-prompt.test.d.ts +11 -0
- package/dist/__tests__/skills-prompt.test.d.ts.map +1 -0
- package/dist/__tests__/skills-prompt.test.js +208 -0
- package/dist/__tests__/skills-prompt.test.js.map +1 -0
- package/dist/__tests__/skills.test.d.ts +11 -0
- package/dist/__tests__/skills.test.d.ts.map +1 -0
- package/dist/__tests__/skills.test.js +161 -0
- package/dist/__tests__/skills.test.js.map +1 -0
- package/dist/__tests__/telemetry-integration.test.d.ts +12 -0
- package/dist/__tests__/telemetry-integration.test.d.ts.map +1 -0
- package/dist/__tests__/telemetry-integration.test.js +153 -0
- package/dist/__tests__/telemetry-integration.test.js.map +1 -0
- package/dist/__tests__/telemetry.test.d.ts +13 -0
- package/dist/__tests__/telemetry.test.d.ts.map +1 -0
- package/dist/__tests__/telemetry.test.js +161 -0
- package/dist/__tests__/telemetry.test.js.map +1 -0
- package/dist/__tests__/upstream-error.test.d.ts +8 -0
- package/dist/__tests__/upstream-error.test.d.ts.map +1 -0
- package/dist/__tests__/upstream-error.test.js +186 -0
- package/dist/__tests__/upstream-error.test.js.map +1 -0
- package/dist/adk-adapter.d.ts +45 -0
- package/dist/adk-adapter.d.ts.map +1 -0
- package/dist/adk-adapter.js +403 -0
- package/dist/adk-adapter.js.map +1 -0
- package/dist/adk-anthropic-llm.d.ts +59 -0
- package/dist/adk-anthropic-llm.d.ts.map +1 -0
- package/dist/adk-anthropic-llm.js +397 -0
- package/dist/adk-anthropic-llm.js.map +1 -0
- package/dist/agent/index.d.ts +14 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +14 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/session/__tests__/bridge-tool-executor.test.d.ts +10 -0
- package/dist/agent/session/__tests__/bridge-tool-executor.test.d.ts.map +1 -0
- package/dist/agent/session/__tests__/bridge-tool-executor.test.js +152 -0
- package/dist/agent/session/__tests__/bridge-tool-executor.test.js.map +1 -0
- package/dist/agent/session/__tests__/collect-trajectory.test.d.ts +18 -0
- package/dist/agent/session/__tests__/collect-trajectory.test.d.ts.map +1 -0
- package/dist/agent/session/__tests__/collect-trajectory.test.js +208 -0
- package/dist/agent/session/__tests__/collect-trajectory.test.js.map +1 -0
- package/dist/agent/session/__tests__/run-with-agent.test.d.ts +8 -0
- package/dist/agent/session/__tests__/run-with-agent.test.d.ts.map +1 -0
- package/dist/agent/session/__tests__/run-with-agent.test.js +98 -0
- package/dist/agent/session/__tests__/run-with-agent.test.js.map +1 -0
- package/dist/agent/session/__tests__/runtime.test.d.ts +7 -0
- package/dist/agent/session/__tests__/runtime.test.d.ts.map +1 -0
- package/dist/agent/session/__tests__/runtime.test.js +361 -0
- package/dist/agent/session/__tests__/runtime.test.js.map +1 -0
- package/dist/agent/session/__tests__/skills-mcp-spawn.test.d.ts +15 -0
- package/dist/agent/session/__tests__/skills-mcp-spawn.test.d.ts.map +1 -0
- package/dist/agent/session/__tests__/skills-mcp-spawn.test.js +160 -0
- package/dist/agent/session/__tests__/skills-mcp-spawn.test.js.map +1 -0
- package/dist/agent/session/__tests__/spawn-telemetry.test.d.ts +13 -0
- package/dist/agent/session/__tests__/spawn-telemetry.test.d.ts.map +1 -0
- package/dist/agent/session/__tests__/spawn-telemetry.test.js +135 -0
- package/dist/agent/session/__tests__/spawn-telemetry.test.js.map +1 -0
- package/dist/agent/session/__tests__/types.test.d.ts +9 -0
- package/dist/agent/session/__tests__/types.test.d.ts.map +1 -0
- package/dist/agent/session/__tests__/types.test.js +220 -0
- package/dist/agent/session/__tests__/types.test.js.map +1 -0
- package/dist/agent/session/adapter.d.ts +108 -0
- package/dist/agent/session/adapter.d.ts.map +1 -0
- package/dist/agent/session/adapter.js +39 -0
- package/dist/agent/session/adapter.js.map +1 -0
- package/dist/agent/session/collect-trajectory.d.ts +36 -0
- package/dist/agent/session/collect-trajectory.d.ts.map +1 -0
- package/dist/agent/session/collect-trajectory.js +193 -0
- package/dist/agent/session/collect-trajectory.js.map +1 -0
- package/dist/agent/session/default-adapter-factory.d.ts +48 -0
- package/dist/agent/session/default-adapter-factory.d.ts.map +1 -0
- package/dist/agent/session/default-adapter-factory.js +227 -0
- package/dist/agent/session/default-adapter-factory.js.map +1 -0
- package/dist/agent/session/headless-types.d.ts +85 -0
- package/dist/agent/session/headless-types.d.ts.map +1 -0
- package/dist/agent/session/headless-types.js +16 -0
- package/dist/agent/session/headless-types.js.map +1 -0
- package/dist/agent/session/index.d.ts +18 -0
- package/dist/agent/session/index.d.ts.map +1 -0
- package/dist/agent/session/index.js +20 -0
- package/dist/agent/session/index.js.map +1 -0
- package/dist/agent/session/language-model-bridge.d.ts +84 -0
- package/dist/agent/session/language-model-bridge.d.ts.map +1 -0
- package/dist/agent/session/language-model-bridge.js +454 -0
- package/dist/agent/session/language-model-bridge.js.map +1 -0
- package/dist/agent/session/legacy-adapter-types.d.ts +63 -0
- package/dist/agent/session/legacy-adapter-types.d.ts.map +1 -0
- package/dist/agent/session/legacy-adapter-types.js +11 -0
- package/dist/agent/session/legacy-adapter-types.js.map +1 -0
- package/dist/agent/session/run-with-agent.d.ts +36 -0
- package/dist/agent/session/run-with-agent.d.ts.map +1 -0
- package/dist/agent/session/run-with-agent.js +81 -0
- package/dist/agent/session/run-with-agent.js.map +1 -0
- package/dist/agent/session/session-registry.d.ts +71 -0
- package/dist/agent/session/session-registry.d.ts.map +1 -0
- package/dist/agent/session/session-registry.js +209 -0
- package/dist/agent/session/session-registry.js.map +1 -0
- package/dist/agent/session/session.d.ts +76 -0
- package/dist/agent/session/session.d.ts.map +1 -0
- package/dist/agent/session/session.js +327 -0
- package/dist/agent/session/session.js.map +1 -0
- package/dist/agent/session/types.d.ts +230 -0
- package/dist/agent/session/types.d.ts.map +1 -0
- package/dist/agent/session/types.js +44 -0
- package/dist/agent/session/types.js.map +1 -0
- package/dist/checkpoint/__tests__/blob-store.test.d.ts +5 -0
- package/dist/checkpoint/__tests__/blob-store.test.d.ts.map +1 -0
- package/dist/checkpoint/__tests__/blob-store.test.js +82 -0
- package/dist/checkpoint/__tests__/blob-store.test.js.map +1 -0
- package/dist/checkpoint/__tests__/key.test.d.ts +7 -0
- package/dist/checkpoint/__tests__/key.test.d.ts.map +1 -0
- package/dist/checkpoint/__tests__/key.test.js +130 -0
- package/dist/checkpoint/__tests__/key.test.js.map +1 -0
- package/dist/checkpoint/__tests__/runner.test.d.ts +12 -0
- package/dist/checkpoint/__tests__/runner.test.d.ts.map +1 -0
- package/dist/checkpoint/__tests__/runner.test.js +201 -0
- package/dist/checkpoint/__tests__/runner.test.js.map +1 -0
- package/dist/checkpoint/__tests__/store.test.d.ts +6 -0
- package/dist/checkpoint/__tests__/store.test.d.ts.map +1 -0
- package/dist/checkpoint/__tests__/store.test.js +150 -0
- package/dist/checkpoint/__tests__/store.test.js.map +1 -0
- package/dist/checkpoint/blob-store.d.ts +41 -0
- package/dist/checkpoint/blob-store.d.ts.map +1 -0
- package/dist/checkpoint/blob-store.js +119 -0
- package/dist/checkpoint/blob-store.js.map +1 -0
- package/dist/checkpoint/index.d.ts +15 -0
- package/dist/checkpoint/index.d.ts.map +1 -0
- package/dist/checkpoint/index.js +14 -0
- package/dist/checkpoint/index.js.map +1 -0
- package/dist/checkpoint/key.d.ts +39 -0
- package/dist/checkpoint/key.d.ts.map +1 -0
- package/dist/checkpoint/key.js +112 -0
- package/dist/checkpoint/key.js.map +1 -0
- package/dist/checkpoint/runner.d.ts +83 -0
- package/dist/checkpoint/runner.d.ts.map +1 -0
- package/dist/checkpoint/runner.js +146 -0
- package/dist/checkpoint/runner.js.map +1 -0
- package/dist/checkpoint/store.d.ts +91 -0
- package/dist/checkpoint/store.d.ts.map +1 -0
- package/dist/checkpoint/store.js +292 -0
- package/dist/checkpoint/store.js.map +1 -0
- package/dist/checkpoint/types.d.ts +74 -0
- package/dist/checkpoint/types.d.ts.map +1 -0
- package/dist/checkpoint/types.js +16 -0
- package/dist/checkpoint/types.js.map +1 -0
- package/dist/claude-adapter.d.ts +23 -0
- package/dist/claude-adapter.d.ts.map +1 -0
- package/dist/claude-adapter.js +233 -0
- package/dist/claude-adapter.js.map +1 -0
- package/dist/cost.d.ts +67 -0
- package/dist/cost.d.ts.map +1 -0
- package/dist/cost.js +148 -0
- package/dist/cost.js.map +1 -0
- package/dist/data/model-prices.json +39681 -0
- package/dist/fallback-adapter.d.ts +51 -0
- package/dist/fallback-adapter.d.ts.map +1 -0
- package/dist/fallback-adapter.js +116 -0
- package/dist/fallback-adapter.js.map +1 -0
- package/dist/gemini-adapter.d.ts +22 -0
- package/dist/gemini-adapter.d.ts.map +1 -0
- package/dist/gemini-adapter.js +185 -0
- package/dist/gemini-adapter.js.map +1 -0
- package/dist/gemini-cli-adapter.d.ts +24 -0
- package/dist/gemini-cli-adapter.d.ts.map +1 -0
- package/dist/gemini-cli-adapter.js +169 -0
- package/dist/gemini-cli-adapter.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/client.d.ts +32 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +92 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/config-loader.d.ts +36 -0
- package/dist/mcp/config-loader.d.ts.map +1 -0
- package/dist/mcp/config-loader.js +129 -0
- package/dist/mcp/config-loader.js.map +1 -0
- package/dist/mcp/index.d.ts +12 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +11 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/tool-merger.d.ts +18 -0
- package/dist/mcp/tool-merger.d.ts.map +1 -0
- package/dist/mcp/tool-merger.js +34 -0
- package/dist/mcp/tool-merger.js.map +1 -0
- package/dist/mcp/types.d.ts +35 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +10 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/ollama-adapter.d.ts +95 -0
- package/dist/ollama-adapter.d.ts.map +1 -0
- package/dist/ollama-adapter.js +404 -0
- package/dist/ollama-adapter.js.map +1 -0
- package/dist/openai-adapter.d.ts +40 -0
- package/dist/openai-adapter.d.ts.map +1 -0
- package/dist/openai-adapter.js +81 -0
- package/dist/openai-adapter.js.map +1 -0
- package/dist/opencode-adapter.d.ts +39 -0
- package/dist/opencode-adapter.d.ts.map +1 -0
- package/dist/opencode-adapter.js +105 -0
- package/dist/opencode-adapter.js.map +1 -0
- package/dist/openrouter-adapter.d.ts +69 -0
- package/dist/openrouter-adapter.d.ts.map +1 -0
- package/dist/openrouter-adapter.js +481 -0
- package/dist/openrouter-adapter.js.map +1 -0
- package/dist/registry.d.ts +55 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +191 -0
- package/dist/registry.js.map +1 -0
- package/dist/router/circuit-breaker.d.ts +57 -0
- package/dist/router/circuit-breaker.d.ts.map +1 -0
- package/dist/router/circuit-breaker.js +110 -0
- package/dist/router/circuit-breaker.js.map +1 -0
- package/dist/router/config-loader.d.ts +43 -0
- package/dist/router/config-loader.d.ts.map +1 -0
- package/dist/router/config-loader.js +155 -0
- package/dist/router/config-loader.js.map +1 -0
- package/dist/router/discovery.d.ts +37 -0
- package/dist/router/discovery.d.ts.map +1 -0
- package/dist/router/discovery.js +54 -0
- package/dist/router/discovery.js.map +1 -0
- package/dist/router/errors.d.ts +39 -0
- package/dist/router/errors.d.ts.map +1 -0
- package/dist/router/errors.js +103 -0
- package/dist/router/errors.js.map +1 -0
- package/dist/router/index.d.ts +31 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +20 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/local-executor.d.ts +62 -0
- package/dist/router/local-executor.d.ts.map +1 -0
- package/dist/router/local-executor.js +161 -0
- package/dist/router/local-executor.js.map +1 -0
- package/dist/router/model-registry.d.ts +90 -0
- package/dist/router/model-registry.d.ts.map +1 -0
- package/dist/router/model-registry.js +242 -0
- package/dist/router/model-registry.js.map +1 -0
- package/dist/router/rate-limiter.d.ts +63 -0
- package/dist/router/rate-limiter.d.ts.map +1 -0
- package/dist/router/rate-limiter.js +136 -0
- package/dist/router/rate-limiter.js.map +1 -0
- package/dist/router/resolver.d.ts +45 -0
- package/dist/router/resolver.d.ts.map +1 -0
- package/dist/router/resolver.js +71 -0
- package/dist/router/resolver.js.map +1 -0
- package/dist/router/retry.d.ts +58 -0
- package/dist/router/retry.d.ts.map +1 -0
- package/dist/router/retry.js +119 -0
- package/dist/router/retry.js.map +1 -0
- package/dist/router/router.d.ts +100 -0
- package/dist/router/router.d.ts.map +1 -0
- package/dist/router/router.js +306 -0
- package/dist/router/router.js.map +1 -0
- package/dist/router/spend-ledger.d.ts +69 -0
- package/dist/router/spend-ledger.d.ts.map +1 -0
- package/dist/router/spend-ledger.js +191 -0
- package/dist/router/spend-ledger.js.map +1 -0
- package/dist/router/telemetry.d.ts +48 -0
- package/dist/router/telemetry.d.ts.map +1 -0
- package/dist/router/telemetry.js +112 -0
- package/dist/router/telemetry.js.map +1 -0
- package/dist/router/types.d.ts +95 -0
- package/dist/router/types.d.ts.map +1 -0
- package/dist/router/types.js +16 -0
- package/dist/router/types.js.map +1 -0
- package/dist/single-shot.d.ts +60 -0
- package/dist/single-shot.d.ts.map +1 -0
- package/dist/single-shot.js +385 -0
- package/dist/single-shot.js.map +1 -0
- package/dist/skills/activator.d.ts +17 -0
- package/dist/skills/activator.d.ts.map +1 -0
- package/dist/skills/activator.js +24 -0
- package/dist/skills/activator.js.map +1 -0
- package/dist/skills/compose.d.ts +43 -0
- package/dist/skills/compose.d.ts.map +1 -0
- package/dist/skills/compose.js +53 -0
- package/dist/skills/compose.js.map +1 -0
- package/dist/skills/index.d.ts +17 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +16 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/loader.d.ts +9 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +49 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/parser.d.ts +13 -0
- package/dist/skills/parser.d.ts.map +1 -0
- package/dist/skills/parser.js +60 -0
- package/dist/skills/parser.js.map +1 -0
- package/dist/skills/render.d.ts +11 -0
- package/dist/skills/render.d.ts.map +1 -0
- package/dist/skills/render.js +21 -0
- package/dist/skills/render.js.map +1 -0
- package/dist/skills/resolve-dir.d.ts +20 -0
- package/dist/skills/resolve-dir.d.ts.map +1 -0
- package/dist/skills/resolve-dir.js +30 -0
- package/dist/skills/resolve-dir.js.map +1 -0
- package/dist/skills/tool-policy.d.ts +26 -0
- package/dist/skills/tool-policy.d.ts.map +1 -0
- package/dist/skills/tool-policy.js +33 -0
- package/dist/skills/tool-policy.js.map +1 -0
- package/dist/skills/types.d.ts +42 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +8 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/stream-format.d.ts +100 -0
- package/dist/stream-format.d.ts.map +1 -0
- package/dist/stream-format.js +90 -0
- package/dist/stream-format.js.map +1 -0
- package/dist/telemetry/attributes.d.ts +38 -0
- package/dist/telemetry/attributes.d.ts.map +1 -0
- package/dist/telemetry/attributes.js +39 -0
- package/dist/telemetry/attributes.js.map +1 -0
- package/dist/telemetry/config.d.ts +30 -0
- package/dist/telemetry/config.d.ts.map +1 -0
- package/dist/telemetry/config.js +54 -0
- package/dist/telemetry/config.js.map +1 -0
- package/dist/telemetry/exporters.d.ts +10 -0
- package/dist/telemetry/exporters.d.ts.map +1 -0
- package/dist/telemetry/exporters.js +46 -0
- package/dist/telemetry/exporters.js.map +1 -0
- package/dist/telemetry/index.d.ts +15 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +12 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/instrument.d.ts +36 -0
- package/dist/telemetry/instrument.d.ts.map +1 -0
- package/dist/telemetry/instrument.js +215 -0
- package/dist/telemetry/instrument.js.map +1 -0
- package/dist/telemetry/metrics.d.ts +45 -0
- package/dist/telemetry/metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics.js +186 -0
- package/dist/telemetry/metrics.js.map +1 -0
- package/dist/telemetry/tracer.d.ts +33 -0
- package/dist/telemetry/tracer.d.ts.map +1 -0
- package/dist/telemetry/tracer.js +162 -0
- package/dist/telemetry/tracer.js.map +1 -0
- package/dist/tools/__tests__/builtin.test.d.ts +7 -0
- package/dist/tools/__tests__/builtin.test.d.ts.map +1 -0
- package/dist/tools/__tests__/builtin.test.js +242 -0
- package/dist/tools/__tests__/builtin.test.js.map +1 -0
- package/dist/tools/builtin.d.ts +29 -0
- package/dist/tools/builtin.d.ts.map +1 -0
- package/dist/tools/builtin.js +367 -0
- package/dist/tools/builtin.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/path-guard.d.ts +23 -0
- package/dist/tools/path-guard.d.ts.map +1 -0
- package/dist/tools/path-guard.js +66 -0
- package/dist/tools/path-guard.js.map +1 -0
- package/dist/tools/types.d.ts +45 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +11 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/types.d.ts +249 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +22 -0
- package/dist/types.js.map +1 -0
- package/dist/upstream-error.d.ts +64 -0
- package/dist/upstream-error.d.ts.map +1 -0
- package/dist/upstream-error.js +105 -0
- package/dist/upstream-error.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `collectTrajectory` — eval-facing entry point. Spawns an `AgentProcess`,
|
|
3
|
+
* listens to its 5-event surface, and aggregates an Inspect-AI-shaped
|
|
4
|
+
* `AgentTrajectory`.
|
|
5
|
+
*
|
|
6
|
+
* Replaces the headless `runAgent` entry. Same trajectory contract, but
|
|
7
|
+
* routed through the production execution path (`AgentProcess` +
|
|
8
|
+
* `defaultAdapterFactory`) so eval runs exercise the same code the
|
|
9
|
+
* dashboard and cli do — including skills + MCP discovery via
|
|
10
|
+
* `workspace.rootDir`.
|
|
11
|
+
*
|
|
12
|
+
* Per AGENT-PROCESS-CONSOLIDATION-ADR §C1.
|
|
13
|
+
*/
|
|
14
|
+
import { randomBytes } from 'node:crypto';
|
|
15
|
+
import { AgentProcess } from './session.js';
|
|
16
|
+
import { defaultAdapterFactory } from './default-adapter-factory.js';
|
|
17
|
+
const DEFAULT_TIMEOUT_MS = 600_000;
|
|
18
|
+
const ANSWER_PLACEHOLDER = '';
|
|
19
|
+
/**
|
|
20
|
+
* Run a task to completion and return its Inspect-AI-shaped trajectory.
|
|
21
|
+
*
|
|
22
|
+
* Listener-first ordering: every event handler is attached BEFORE
|
|
23
|
+
* `proc.start()` so the first `content` chunk doesn't slip through.
|
|
24
|
+
*/
|
|
25
|
+
export async function collectTrajectory(task, workspace, opts = {}) {
|
|
26
|
+
const startedAt = Date.now();
|
|
27
|
+
const spec = taskToSpawnConfig(task, workspace);
|
|
28
|
+
const processOpts = {
|
|
29
|
+
adapterFactory: defaultAdapterFactory,
|
|
30
|
+
...opts.processOpts,
|
|
31
|
+
};
|
|
32
|
+
const proc = new AgentProcess(spec, processOpts);
|
|
33
|
+
const messages = [];
|
|
34
|
+
if (task.systemPrompt) {
|
|
35
|
+
messages.push({ role: 'system', content: task.systemPrompt });
|
|
36
|
+
}
|
|
37
|
+
messages.push({ role: 'user', content: task.prompt });
|
|
38
|
+
const toolCalls = [];
|
|
39
|
+
const toolCallByName = new Map();
|
|
40
|
+
let assistantBuffer = '';
|
|
41
|
+
let finalAnswer = ANSWER_PLACEHOLDER;
|
|
42
|
+
let cost = null;
|
|
43
|
+
let resolvedSessionId = spec.runId ?? proc.id;
|
|
44
|
+
let errorText = '';
|
|
45
|
+
const flushAssistantBuffer = () => {
|
|
46
|
+
if (!assistantBuffer)
|
|
47
|
+
return;
|
|
48
|
+
messages.push({ role: 'assistant', content: assistantBuffer });
|
|
49
|
+
assistantBuffer = '';
|
|
50
|
+
};
|
|
51
|
+
return new Promise((resolve) => {
|
|
52
|
+
let settled = false;
|
|
53
|
+
let timeoutHandle = null;
|
|
54
|
+
const finish = (finishReason, errorOverride) => {
|
|
55
|
+
if (settled)
|
|
56
|
+
return;
|
|
57
|
+
settled = true;
|
|
58
|
+
if (timeoutHandle)
|
|
59
|
+
clearTimeout(timeoutHandle);
|
|
60
|
+
flushAssistantBuffer();
|
|
61
|
+
const durationMs = Date.now() - startedAt;
|
|
62
|
+
const usage = cost
|
|
63
|
+
? {
|
|
64
|
+
inputTokens: cost.inputTokens,
|
|
65
|
+
outputTokens: cost.outputTokens,
|
|
66
|
+
...(cost.cacheReadTokens
|
|
67
|
+
? { cacheReadTokens: cost.cacheReadTokens }
|
|
68
|
+
: {}),
|
|
69
|
+
...(cost.cacheWriteTokens
|
|
70
|
+
? { cacheWriteTokens: cost.cacheWriteTokens }
|
|
71
|
+
: {}),
|
|
72
|
+
}
|
|
73
|
+
: { inputTokens: 0, outputTokens: 0 };
|
|
74
|
+
const finalErrorText = errorOverride ?? errorText.trim();
|
|
75
|
+
const trajectory = {
|
|
76
|
+
messages,
|
|
77
|
+
toolCalls,
|
|
78
|
+
model: spec.model,
|
|
79
|
+
usage,
|
|
80
|
+
costUsd: cost?.totalUsd ?? 0,
|
|
81
|
+
finalAnswer: finalAnswer || assistantBuffer,
|
|
82
|
+
finishReason,
|
|
83
|
+
durationMs,
|
|
84
|
+
...(finishReason === 'error' && finalErrorText
|
|
85
|
+
? { error: finalErrorText }
|
|
86
|
+
: {}),
|
|
87
|
+
};
|
|
88
|
+
resolve(trajectory);
|
|
89
|
+
};
|
|
90
|
+
// ── Listener wiring (before start) ─────────────────────────────────
|
|
91
|
+
proc.on('content', (chunk) => {
|
|
92
|
+
assistantBuffer += chunk;
|
|
93
|
+
});
|
|
94
|
+
proc.on('activity', (activity) => {
|
|
95
|
+
if (activity.kind !== 'tool_use' || !activity.tool)
|
|
96
|
+
return;
|
|
97
|
+
// Flush any accumulated assistant text BEFORE the tool message so
|
|
98
|
+
// ordering reflects the run.
|
|
99
|
+
flushAssistantBuffer();
|
|
100
|
+
let parsedArgs = {};
|
|
101
|
+
if (typeof activity.content === 'string' && activity.content.trim()) {
|
|
102
|
+
try {
|
|
103
|
+
parsedArgs = JSON.parse(activity.content);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
parsedArgs = { _raw: activity.content };
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const call = {
|
|
110
|
+
callId: activity.id,
|
|
111
|
+
name: activity.tool,
|
|
112
|
+
arguments: parsedArgs,
|
|
113
|
+
durationMs: 0,
|
|
114
|
+
};
|
|
115
|
+
toolCalls.push(call);
|
|
116
|
+
toolCallByName.set(activity.id, call);
|
|
117
|
+
messages.push({
|
|
118
|
+
role: 'tool',
|
|
119
|
+
content: '',
|
|
120
|
+
name: activity.tool,
|
|
121
|
+
toolCallId: activity.id,
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
proc.on('result', (data) => {
|
|
125
|
+
cost = data.cost;
|
|
126
|
+
finalAnswer = data.result || assistantBuffer;
|
|
127
|
+
resolvedSessionId = data.sessionId;
|
|
128
|
+
// Don't finish here — wait for `exit` so adapters that emit result
|
|
129
|
+
// before exit (the common case) and after exit (sub-second races)
|
|
130
|
+
// both settle deterministically on the exit event.
|
|
131
|
+
});
|
|
132
|
+
proc.on('error-output', (text) => {
|
|
133
|
+
errorText += text;
|
|
134
|
+
});
|
|
135
|
+
proc.on('exit', (code) => {
|
|
136
|
+
// Surface the resolvedSessionId on the last assistant message via a
|
|
137
|
+
// suffix is unnecessary; the trajectory shape doesn't carry session
|
|
138
|
+
// id today. Reserved here so future schema bumps can grab it.
|
|
139
|
+
void resolvedSessionId;
|
|
140
|
+
if (code === null) {
|
|
141
|
+
finish('error', 'killed');
|
|
142
|
+
}
|
|
143
|
+
else if (code !== 0) {
|
|
144
|
+
finish('error');
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
finish(cost ? 'end' : 'error', cost ? undefined : errorText.trim() || 'no result');
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
// ── Abort + timeout ────────────────────────────────────────────────
|
|
151
|
+
if (opts.signal) {
|
|
152
|
+
if (opts.signal.aborted) {
|
|
153
|
+
proc.kill();
|
|
154
|
+
finish('error', 'aborted');
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
opts.signal.addEventListener('abort', () => {
|
|
158
|
+
proc.kill();
|
|
159
|
+
finish('error', 'aborted');
|
|
160
|
+
}, { once: true });
|
|
161
|
+
}
|
|
162
|
+
const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
163
|
+
timeoutHandle = setTimeout(() => {
|
|
164
|
+
proc.kill();
|
|
165
|
+
finish('error', 'timeout');
|
|
166
|
+
}, timeoutMs);
|
|
167
|
+
// ── Start ──────────────────────────────────────────────────────────
|
|
168
|
+
proc.start();
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Map an `AgentTask` + `WorkspaceConfig` to a `SpawnConfig`. Internal
|
|
173
|
+
* helper — eval consumers stay on the `(task, workspace)` shape.
|
|
174
|
+
*/
|
|
175
|
+
function taskToSpawnConfig(task, workspace) {
|
|
176
|
+
const runId = task.taskId ?? `eval-${randomBytes(4).toString('hex')}`;
|
|
177
|
+
return {
|
|
178
|
+
name: task.taskId ?? 'eval-task',
|
|
179
|
+
persona: 'eval',
|
|
180
|
+
project: 'eval',
|
|
181
|
+
stage: 'eval',
|
|
182
|
+
prompt: task.prompt,
|
|
183
|
+
model: task.model,
|
|
184
|
+
cwd: workspace.rootDir,
|
|
185
|
+
workspaceDir: workspace.rootDir,
|
|
186
|
+
projectPrompt: task.systemPrompt,
|
|
187
|
+
allowedTools: task.allowedTools,
|
|
188
|
+
maxOutputTokens: task.maxTokens,
|
|
189
|
+
runId,
|
|
190
|
+
runFamily: runId,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=collect-trajectory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-trajectory.js","sourceRoot":"","sources":["../../../src/agent/session/collect-trajectory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default `AgentAdapterFactory` for `AgentManager`.
|
|
3
|
+
*
|
|
4
|
+
* Resolves a `SpawnConfig`'s model field to an `@esankhan3/anvil-agent-core`
|
|
5
|
+
* `ModelAdapter` via `ProviderRegistry`, then wraps it in a
|
|
6
|
+
* `LanguageModelBridge` so `AgentProcess` can drive it through the 5-event
|
|
7
|
+
* `AgentAdapter` surface.
|
|
8
|
+
*
|
|
9
|
+
* Provider resolution heuristic:
|
|
10
|
+
* - `gemini-*` prefers the Gemini CLI when the binary is on PATH; if not,
|
|
11
|
+
* falls back to the HTTP API adapter (`gemini`).
|
|
12
|
+
* - Model ids containing `/` route to OpenRouter.
|
|
13
|
+
* - Otherwise we delegate to `ProviderRegistry.resolveFromModelId` which
|
|
14
|
+
* covers Claude / OpenAI / Gemini-API.
|
|
15
|
+
*/
|
|
16
|
+
import type { ProviderName } from '../../types.js';
|
|
17
|
+
import type { AdapterRequest, AgentAdapter, AgentAdapterFactory } from './adapter.js';
|
|
18
|
+
export declare function resolveProvider(modelId: string): ProviderName;
|
|
19
|
+
/**
|
|
20
|
+
* Default factory used by `AgentManager` when no `adapterFactory` is
|
|
21
|
+
* passed to its constructor. Resolves a `LanguageModelBridge` for the
|
|
22
|
+
* given request via `ProviderRegistry`.
|
|
23
|
+
*
|
|
24
|
+
* Returned adapter is always a `LanguageModelBridge` — `AgentProcess`
|
|
25
|
+
* sees the 5-event `AgentAdapter` surface; agent-core handles the actual
|
|
26
|
+
* call via the registered `ModelAdapter`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function defaultAdapterFactory(request: AdapterRequest): AgentAdapter;
|
|
29
|
+
/**
|
|
30
|
+
* When `request.workspaceDir` is set, enrich the request with workspace-
|
|
31
|
+
* rooted artefacts:
|
|
32
|
+
* - Non-Claude paths: compose skill context (system prompt + allowed-
|
|
33
|
+
* tools narrowing) into the request's `projectPrompt` / `allowedTools`.
|
|
34
|
+
* - Claude path: resolve the canonical `mcp.json` path so the adapter
|
|
35
|
+
* can pass `--mcp-config <path>` to claude-cli.
|
|
36
|
+
*
|
|
37
|
+
* Skills are NOT injected into the system prompt for the Claude path
|
|
38
|
+
* because claude-cli auto-loads `.claude/skills/` itself; double-loading
|
|
39
|
+
* would duplicate the bullet list. Per AGENT-PROCESS-CONSOLIDATION-ADR
|
|
40
|
+
* §C5.
|
|
41
|
+
*
|
|
42
|
+
* Pure: returns a new `AdapterRequest` (or the original when no enrichment
|
|
43
|
+
* applies).
|
|
44
|
+
*/
|
|
45
|
+
export declare function enrichRequestWithWorkspace(request: AdapterRequest, provider: ProviderName): AdapterRequest;
|
|
46
|
+
/** Type alias matching `AgentAdapterFactory` — exported for explicit typing. */
|
|
47
|
+
export declare const defaultAdapterFactoryFn: AgentAdapterFactory;
|
|
48
|
+
//# sourceMappingURL=default-adapter-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-adapter-factory.d.ts","sourceRoot":"","sources":["../../../src/agent/session/default-adapter-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAOtB,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CA0D7D;AAmCD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,YAAY,CAc3E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,YAAY,GACrB,cAAc,CAgChB;AAoCD,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,EAAE,mBAA2C,CAAC"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default `AgentAdapterFactory` for `AgentManager`.
|
|
3
|
+
*
|
|
4
|
+
* Resolves a `SpawnConfig`'s model field to an `@esankhan3/anvil-agent-core`
|
|
5
|
+
* `ModelAdapter` via `ProviderRegistry`, then wraps it in a
|
|
6
|
+
* `LanguageModelBridge` so `AgentProcess` can drive it through the 5-event
|
|
7
|
+
* `AgentAdapter` surface.
|
|
8
|
+
*
|
|
9
|
+
* Provider resolution heuristic:
|
|
10
|
+
* - `gemini-*` prefers the Gemini CLI when the binary is on PATH; if not,
|
|
11
|
+
* falls back to the HTTP API adapter (`gemini`).
|
|
12
|
+
* - Model ids containing `/` route to OpenRouter.
|
|
13
|
+
* - Otherwise we delegate to `ProviderRegistry.resolveFromModelId` which
|
|
14
|
+
* covers Claude / OpenAI / Gemini-API.
|
|
15
|
+
*/
|
|
16
|
+
import { execSync } from 'node:child_process';
|
|
17
|
+
import { trace } from '@opentelemetry/api';
|
|
18
|
+
import { ProviderRegistry } from '../../registry.js';
|
|
19
|
+
import { loadModelRegistry } from '../../router/model-registry.js';
|
|
20
|
+
import { LanguageModelBridge } from './language-model-bridge.js';
|
|
21
|
+
import { composeSkillContext } from '../../skills/index.js';
|
|
22
|
+
import { findMcpConfigPath, loadMcpServers } from '../../mcp/index.js';
|
|
23
|
+
// ── Provider resolution ──────────────────────────────────────────────────
|
|
24
|
+
export function resolveProvider(modelId) {
|
|
25
|
+
// User registry wins over heuristics. If models.yaml declares
|
|
26
|
+
// `provider: gemini` for `gemini-2.5-flash`, honor that — don't
|
|
27
|
+
// silently route to gemini-cli just because the binary is on PATH.
|
|
28
|
+
const declared = lookupDeclaredProvider(modelId);
|
|
29
|
+
if (declared)
|
|
30
|
+
return declared;
|
|
31
|
+
const id = modelId.toLowerCase();
|
|
32
|
+
// Ollama: explicit `ollama:` prefix or `:tag` suffix common to local models
|
|
33
|
+
// (e.g. `qwen2.5-coder:7b`, `llama3.1:8b`).
|
|
34
|
+
if (id.startsWith('ollama:'))
|
|
35
|
+
return 'ollama';
|
|
36
|
+
// Gemini: route to the CLI when the binary is on PATH (matches user
|
|
37
|
+
// intent of running `gemini` interactively). Otherwise fall through to
|
|
38
|
+
// the registry's claude default — the bare HTTP `gemini` adapter is
|
|
39
|
+
// `tier: function-calling` (no agentic loop) so callers must opt in
|
|
40
|
+
// explicitly via `adk:gemini-…` for agentic Gemini, or use
|
|
41
|
+
// `single-shot.runGemini` for the CLI single-shot path.
|
|
42
|
+
if (id.startsWith('gemini-')) {
|
|
43
|
+
if (geminiCliAvailable())
|
|
44
|
+
return 'gemini-cli';
|
|
45
|
+
// No silent fallback to non-agentic gemini HTTP — fall through.
|
|
46
|
+
}
|
|
47
|
+
// OpenAI patterns
|
|
48
|
+
if (id.startsWith('gpt-') ||
|
|
49
|
+
id.startsWith('o1') ||
|
|
50
|
+
id.startsWith('o3') ||
|
|
51
|
+
id.startsWith('o4') ||
|
|
52
|
+
id.startsWith('chatgpt-')) {
|
|
53
|
+
return 'openai';
|
|
54
|
+
}
|
|
55
|
+
// OpenCode Go: registry uses `opencode/<model>` to disambiguate from
|
|
56
|
+
// OpenRouter's slug format. Must come BEFORE the generic slash-check.
|
|
57
|
+
if (id.startsWith('opencode/'))
|
|
58
|
+
return 'opencode';
|
|
59
|
+
// Google ADK: explicit `adk:<model>` prefix (e.g. `adk:claude-sonnet-4-6`,
|
|
60
|
+
// `adk:gemini-2.5-flash`). The adapter strips the prefix before
|
|
61
|
+
// handing the bare model id to ADK's LLMRegistry.
|
|
62
|
+
if (id.startsWith('adk:'))
|
|
63
|
+
return 'adk';
|
|
64
|
+
// OpenRouter uses `org/model` format
|
|
65
|
+
if (id.includes('/')) {
|
|
66
|
+
return 'openrouter';
|
|
67
|
+
}
|
|
68
|
+
// Local Ollama models often look like `<family>:<size>` (no slash, with tag).
|
|
69
|
+
// Route through Ollama only when the daemon is reachable; otherwise fall
|
|
70
|
+
// back to Claude so misconfigured runs don't break.
|
|
71
|
+
if (/^[a-z0-9_.-]+:[a-z0-9_.-]+$/.test(id) && id !== 'claude' && !id.startsWith('claude-')) {
|
|
72
|
+
return 'ollama';
|
|
73
|
+
}
|
|
74
|
+
// Claude (default)
|
|
75
|
+
return 'claude';
|
|
76
|
+
}
|
|
77
|
+
// Cache the parsed user registry so repeated factory calls don't re-read +
|
|
78
|
+
// re-parse models.yaml from disk. Set ANVIL_MODELS_RELOAD=1 in the env to
|
|
79
|
+
// bypass the cache (useful when iterating on the yaml during a long-lived
|
|
80
|
+
// dashboard session).
|
|
81
|
+
let modelRegistryCache = null;
|
|
82
|
+
function lookupDeclaredProvider(modelId) {
|
|
83
|
+
if (process.env.ANVIL_MODELS_RELOAD === '1')
|
|
84
|
+
modelRegistryCache = null;
|
|
85
|
+
if (modelRegistryCache === null) {
|
|
86
|
+
try {
|
|
87
|
+
modelRegistryCache = loadModelRegistry();
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
modelRegistryCache = { models: [], walker: { liveness_ttl_ms: 30000, max_attempts: 5 } };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
const match = modelRegistryCache.models.find((m) => m.id === modelId);
|
|
94
|
+
return match?.provider ?? null;
|
|
95
|
+
}
|
|
96
|
+
// Cache the CLI probe so repeated factory calls don't fork a shell each time.
|
|
97
|
+
let geminiCliCached = null;
|
|
98
|
+
function geminiCliAvailable() {
|
|
99
|
+
if (geminiCliCached !== null)
|
|
100
|
+
return geminiCliCached;
|
|
101
|
+
try {
|
|
102
|
+
execSync('which gemini', { stdio: 'pipe', timeout: 2000 });
|
|
103
|
+
geminiCliCached = true;
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
geminiCliCached = false;
|
|
107
|
+
}
|
|
108
|
+
return geminiCliCached;
|
|
109
|
+
}
|
|
110
|
+
// ── Factory ──────────────────────────────────────────────────────────────
|
|
111
|
+
/**
|
|
112
|
+
* Default factory used by `AgentManager` when no `adapterFactory` is
|
|
113
|
+
* passed to its constructor. Resolves a `LanguageModelBridge` for the
|
|
114
|
+
* given request via `ProviderRegistry`.
|
|
115
|
+
*
|
|
116
|
+
* Returned adapter is always a `LanguageModelBridge` — `AgentProcess`
|
|
117
|
+
* sees the 5-event `AgentAdapter` surface; agent-core handles the actual
|
|
118
|
+
* call via the registered `ModelAdapter`.
|
|
119
|
+
*/
|
|
120
|
+
export function defaultAdapterFactory(request) {
|
|
121
|
+
const registry = ProviderRegistry.getInstance();
|
|
122
|
+
const provider = resolveProvider(request.model);
|
|
123
|
+
const resolved = resolveAdapterOrFallback(registry, provider);
|
|
124
|
+
// Default workspaceDir to cwd when the spawn caller didn't set one. This
|
|
125
|
+
// makes skills + MCP first-class for every spawn site — dashboard, cli,
|
|
126
|
+
// eval — without each caller having to opt in. Per AGENT-PROCESS-
|
|
127
|
+
// CONSOLIDATION-ADR §C4 + Phase 4. Callers can explicitly pass
|
|
128
|
+
// `workspaceDir: ''` (empty string is falsy) to opt out, e.g. from tests.
|
|
129
|
+
const requestWithDefaults = request.workspaceDir === undefined
|
|
130
|
+
? { ...request, workspaceDir: request.cwd }
|
|
131
|
+
: request;
|
|
132
|
+
const enriched = enrichRequestWithWorkspace(requestWithDefaults, resolved.provider);
|
|
133
|
+
return new LanguageModelBridge(enriched, resolved.adapter, resolved.provider);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* When `request.workspaceDir` is set, enrich the request with workspace-
|
|
137
|
+
* rooted artefacts:
|
|
138
|
+
* - Non-Claude paths: compose skill context (system prompt + allowed-
|
|
139
|
+
* tools narrowing) into the request's `projectPrompt` / `allowedTools`.
|
|
140
|
+
* - Claude path: resolve the canonical `mcp.json` path so the adapter
|
|
141
|
+
* can pass `--mcp-config <path>` to claude-cli.
|
|
142
|
+
*
|
|
143
|
+
* Skills are NOT injected into the system prompt for the Claude path
|
|
144
|
+
* because claude-cli auto-loads `.claude/skills/` itself; double-loading
|
|
145
|
+
* would duplicate the bullet list. Per AGENT-PROCESS-CONSOLIDATION-ADR
|
|
146
|
+
* §C5.
|
|
147
|
+
*
|
|
148
|
+
* Pure: returns a new `AdapterRequest` (or the original when no enrichment
|
|
149
|
+
* applies).
|
|
150
|
+
*/
|
|
151
|
+
export function enrichRequestWithWorkspace(request, provider) {
|
|
152
|
+
if (!request.workspaceDir)
|
|
153
|
+
return request;
|
|
154
|
+
if (provider === 'claude') {
|
|
155
|
+
const mcpPath = findMcpConfigPath({ workspaceRoot: request.workspaceDir });
|
|
156
|
+
if (!mcpPath)
|
|
157
|
+
return request;
|
|
158
|
+
// Phase 6: surface MCP discovery on the active session span. claude-cli
|
|
159
|
+
// owns the actual server connections, so we only know servers exist —
|
|
160
|
+
// not how many tools they advertise.
|
|
161
|
+
annotateSpanWithMcp(request.workspaceDir, { tools: undefined });
|
|
162
|
+
return { ...request, claudeMcpConfigPath: mcpPath };
|
|
163
|
+
}
|
|
164
|
+
// Non-Claude path: inject skill block into projectPrompt + reconcile
|
|
165
|
+
// allowed-tools. composeSkillContext is a no-op when no skills exist.
|
|
166
|
+
const ctx = composeSkillContext(request.projectPrompt ?? '', {
|
|
167
|
+
workspaceRoot: request.workspaceDir,
|
|
168
|
+
allowedTools: request.allowedTools,
|
|
169
|
+
});
|
|
170
|
+
// Phase 6: surface skill + MCP discovery on the active session span.
|
|
171
|
+
annotateSpanWithSkills(ctx.activated.skills.map((s) => s.frontmatter.name));
|
|
172
|
+
annotateSpanWithMcp(request.workspaceDir, { tools: undefined });
|
|
173
|
+
if (ctx.activated.skills.length === 0 && !ctx.toolsConstrained) {
|
|
174
|
+
return request;
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
...request,
|
|
178
|
+
projectPrompt: ctx.systemPrompt || undefined,
|
|
179
|
+
allowedTools: ctx.allowedTools,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Set `anvil.skills.activated.count` + `anvil.skills.activated.names` on
|
|
184
|
+
* the active OTel span (the `anvil.agent.session` span when called from
|
|
185
|
+
* inside `AgentProcess.start()`'s session context). Absence-stays-absent
|
|
186
|
+
* per observability ADR §O7: when no skills load, no attribute is emitted.
|
|
187
|
+
*/
|
|
188
|
+
function annotateSpanWithSkills(activatedNames) {
|
|
189
|
+
if (activatedNames.length === 0)
|
|
190
|
+
return;
|
|
191
|
+
const span = trace.getActiveSpan();
|
|
192
|
+
if (!span)
|
|
193
|
+
return;
|
|
194
|
+
span.setAttribute('anvil.skills.activated.count', activatedNames.length);
|
|
195
|
+
span.setAttribute('anvil.skills.activated.names', activatedNames.join(','));
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Set `anvil.mcp.servers.count` (and `anvil.mcp.tools.count` when known)
|
|
199
|
+
* on the active OTel span. We resolve mcp.json once here — the file read
|
|
200
|
+
* is cheap, and this is the only place that knows whether MCP discovery
|
|
201
|
+
* found anything for the workspace.
|
|
202
|
+
*/
|
|
203
|
+
function annotateSpanWithMcp(workspaceDir, meta) {
|
|
204
|
+
const servers = loadMcpServers({ workspaceRoot: workspaceDir });
|
|
205
|
+
if (servers.length === 0)
|
|
206
|
+
return;
|
|
207
|
+
const span = trace.getActiveSpan();
|
|
208
|
+
if (!span)
|
|
209
|
+
return;
|
|
210
|
+
span.setAttribute('anvil.mcp.servers.count', servers.length);
|
|
211
|
+
if (typeof meta.tools === 'number') {
|
|
212
|
+
span.setAttribute('anvil.mcp.tools.count', meta.tools);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/** Type alias matching `AgentAdapterFactory` — exported for explicit typing. */
|
|
216
|
+
export const defaultAdapterFactoryFn = defaultAdapterFactory;
|
|
217
|
+
function resolveAdapterOrFallback(registry, provider) {
|
|
218
|
+
const direct = registry.get(provider);
|
|
219
|
+
if (direct)
|
|
220
|
+
return { adapter: direct, provider };
|
|
221
|
+
// Claude is always registered by registerDefaults; treat as the safe fallback.
|
|
222
|
+
const claude = registry.get('claude');
|
|
223
|
+
if (claude)
|
|
224
|
+
return { adapter: claude, provider: 'claude' };
|
|
225
|
+
throw new Error(`No agent-core adapter available for provider "${provider}" and no "claude" fallback registered.`);
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=default-adapter-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-adapter-factory.js","sourceRoot":"","sources":["../../../src/agent/session/default-adapter-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inspect-AI-compatible types for `collectTrajectory` (and previously
|
|
3
|
+
* `runAgent`).
|
|
4
|
+
*
|
|
5
|
+
* Schema is locked. External eval harnesses (Inspect AI, SWE-bench
|
|
6
|
+
* runners, custom benchmark scripts) consume `AgentTrajectory` directly
|
|
7
|
+
* without conversion. If their contract drifts, write an adapter — don't
|
|
8
|
+
* refactor this shape.
|
|
9
|
+
*
|
|
10
|
+
* Per AGENT-PROCESS-CONSOLIDATION-ADR §C2 these moved from `src/headless/
|
|
11
|
+
* types.ts` to live alongside `AgentProcess`. The `src/headless/types.ts`
|
|
12
|
+
* module still re-exports them as a thin shim until Phase 5 deletes the
|
|
13
|
+
* `headless/` directory.
|
|
14
|
+
*/
|
|
15
|
+
export interface WorkspaceConfig {
|
|
16
|
+
/** Absolute path to the project workspace (where `mcp.json` + `.claude/skills/` live). */
|
|
17
|
+
rootDir: string;
|
|
18
|
+
/** Optional override for `factory.yaml` path (forwarded to subprocess adapters). */
|
|
19
|
+
factoryYamlPath?: string;
|
|
20
|
+
/** Extra env vars passed to subprocess adapters (CLI providers). */
|
|
21
|
+
env?: Record<string, string>;
|
|
22
|
+
}
|
|
23
|
+
export interface AgentTask {
|
|
24
|
+
/** Human-readable task statement. Becomes the first user message. */
|
|
25
|
+
prompt: string;
|
|
26
|
+
/** Optional system-prompt prefix (rendered before the skills block). */
|
|
27
|
+
systemPrompt?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Allowed built-in tools. Intersected with skill `allowed-tools`
|
|
30
|
+
* constraints. MCP-discovered tools are added unconditionally.
|
|
31
|
+
*/
|
|
32
|
+
allowedTools?: string[];
|
|
33
|
+
/** Model identifier (e.g. 'claude-sonnet-4-6', 'gpt-4o', 'gemini-2.5-pro'). */
|
|
34
|
+
model: string;
|
|
35
|
+
/** Provider hint: 'anthropic-cli' | 'anthropic-api' | 'openai-api' | ... */
|
|
36
|
+
provider?: string;
|
|
37
|
+
/** Max tokens per assistant turn. */
|
|
38
|
+
maxTokens?: number;
|
|
39
|
+
/** Sampling temperature. */
|
|
40
|
+
temperature?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Optional task ID for trace correlation — surfaced as `anvil.task_id`
|
|
43
|
+
* on every `gen_ai.invoke` span emitted within this run.
|
|
44
|
+
*/
|
|
45
|
+
taskId?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface TrajectoryMessage {
|
|
48
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
49
|
+
content: string;
|
|
50
|
+
/** Tool name when role === 'tool'. */
|
|
51
|
+
name?: string;
|
|
52
|
+
/** Originating assistant tool_call id when role === 'tool'. */
|
|
53
|
+
toolCallId?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface TrajectoryToolCall {
|
|
56
|
+
callId: string;
|
|
57
|
+
name: string;
|
|
58
|
+
arguments: Record<string, unknown>;
|
|
59
|
+
result?: unknown;
|
|
60
|
+
error?: string;
|
|
61
|
+
durationMs: number;
|
|
62
|
+
}
|
|
63
|
+
export interface TrajectoryUsage {
|
|
64
|
+
inputTokens: number;
|
|
65
|
+
outputTokens: number;
|
|
66
|
+
cacheReadTokens?: number;
|
|
67
|
+
cacheWriteTokens?: number;
|
|
68
|
+
}
|
|
69
|
+
export interface AgentTrajectory {
|
|
70
|
+
messages: TrajectoryMessage[];
|
|
71
|
+
toolCalls: TrajectoryToolCall[];
|
|
72
|
+
/** Concrete model the run resolved to (post-fallback). */
|
|
73
|
+
model: string;
|
|
74
|
+
/** Aggregated across every LLM call in the run. */
|
|
75
|
+
usage: TrajectoryUsage;
|
|
76
|
+
/** Aggregated USD cost across every LLM call. */
|
|
77
|
+
costUsd: number;
|
|
78
|
+
/** Final assistant text (after the last non-tool turn). */
|
|
79
|
+
finalAnswer: string;
|
|
80
|
+
finishReason: 'end' | 'tool-use' | 'length' | 'error';
|
|
81
|
+
/** Populated only when finishReason === 'error'. */
|
|
82
|
+
error?: string;
|
|
83
|
+
durationMs: number;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=headless-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headless-types.d.ts","sourceRoot":"","sources":["../../../src/agent/session/headless-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,eAAe;IAC9B,0FAA0F;IAC1F,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IAEf,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IAEd,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,KAAK,EAAE,eAAe,CAAC;IACvB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,KAAK,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IACtD,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inspect-AI-compatible types for `collectTrajectory` (and previously
|
|
3
|
+
* `runAgent`).
|
|
4
|
+
*
|
|
5
|
+
* Schema is locked. External eval harnesses (Inspect AI, SWE-bench
|
|
6
|
+
* runners, custom benchmark scripts) consume `AgentTrajectory` directly
|
|
7
|
+
* without conversion. If their contract drifts, write an adapter — don't
|
|
8
|
+
* refactor this shape.
|
|
9
|
+
*
|
|
10
|
+
* Per AGENT-PROCESS-CONSOLIDATION-ADR §C2 these moved from `src/headless/
|
|
11
|
+
* types.ts` to live alongside `AgentProcess`. The `src/headless/types.ts`
|
|
12
|
+
* module still re-exports them as a thin shim until Phase 5 deletes the
|
|
13
|
+
* `headless/` directory.
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=headless-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headless-types.js","sourceRoot":"","sources":["../../../src/agent/session/headless-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@esankhan3/anvil-agent-core/agent/session` — barrel exports for the agent-lifecycle
|
|
3
|
+
* layer. agent-core is the canonical source of truth for `AgentManager`
|
|
4
|
+
* (registry of many) and `AgentProcess` (one logical agent).
|
|
5
|
+
*/
|
|
6
|
+
export { AgentProcess, emptyCost, generateSessionId, appendOutput, pushActivity, accumulateCost, type AgentProcessOpts, } from './session.js';
|
|
7
|
+
export { AgentManager, type AgentManagerOpts, } from './session-registry.js';
|
|
8
|
+
export type { AgentAdapter, AgentAdapterEvents, AgentAdapterFactory, AdapterRequest, } from './adapter.js';
|
|
9
|
+
export { buildAdapterRequest } from './adapter.js';
|
|
10
|
+
export { LanguageModelBridge } from './language-model-bridge.js';
|
|
11
|
+
export { defaultAdapterFactory, defaultAdapterFactoryFn, resolveProvider, } from './default-adapter-factory.js';
|
|
12
|
+
export type { AdapterCapabilities, AdapterCostInfo, PromptAwareAdapter, } from './legacy-adapter-types.js';
|
|
13
|
+
export { runWithAgent, type RunWithAgentOptions, type RunWithAgentResult, } from './run-with-agent.js';
|
|
14
|
+
export { collectTrajectory, type CollectTrajectoryOptions, } from './collect-trajectory.js';
|
|
15
|
+
export type { AgentTask, AgentTrajectory, TrajectoryMessage, TrajectoryToolCall, TrajectoryUsage, WorkspaceConfig, } from './headless-types.js';
|
|
16
|
+
export type { AgentActivity, AgentCheckpointHook, AgentCostHook, AgentManagerEvents, AgentProcessEvents, AgentState, AgentStatus, CostInfo, SpawnConfig, } from './types.js';
|
|
17
|
+
export { AgentNotFoundError, SessionResumeNotSupportedError, } from './types.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/session/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,GAChB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,8BAA8B,GAC/B,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@esankhan3/anvil-agent-core/agent/session` — barrel exports for the agent-lifecycle
|
|
3
|
+
* layer. agent-core is the canonical source of truth for `AgentManager`
|
|
4
|
+
* (registry of many) and `AgentProcess` (one logical agent).
|
|
5
|
+
*/
|
|
6
|
+
export { AgentProcess, emptyCost, generateSessionId, appendOutput, pushActivity, accumulateCost, } from './session.js';
|
|
7
|
+
export { AgentManager, } from './session-registry.js';
|
|
8
|
+
export { buildAdapterRequest } from './adapter.js';
|
|
9
|
+
// Default factory + bridge (the concrete production adapter resolution path).
|
|
10
|
+
export { LanguageModelBridge } from './language-model-bridge.js';
|
|
11
|
+
export { defaultAdapterFactory, defaultAdapterFactoryFn, resolveProvider, } from './default-adapter-factory.js';
|
|
12
|
+
// Single-shot helper for callers that don't need the full AgentManager
|
|
13
|
+
// registry (cli commands like diff, learn, migrate, test-gen).
|
|
14
|
+
export { runWithAgent, } from './run-with-agent.js';
|
|
15
|
+
// Eval-facing trajectory collector. Wraps an `AgentProcess` and aggregates
|
|
16
|
+
// an Inspect-AI-shaped `AgentTrajectory`. Replaces the headless `runAgent`
|
|
17
|
+
// per AGENT-PROCESS-CONSOLIDATION-ADR §C1.
|
|
18
|
+
export { collectTrajectory, } from './collect-trajectory.js';
|
|
19
|
+
export { AgentNotFoundError, SessionResumeNotSupportedError, } from './types.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|