@evalops/maestro 0.10.50 → 0.10.53
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 +1 -3
- package/dist/agent/agent-outcome.d.ts +54 -0
- package/dist/agent/agent-outcome.d.ts.map +1 -0
- package/dist/agent/agent-outcome.js +142 -0
- package/dist/agent/agent-outcome.js.map +1 -0
- package/dist/agent/agent-resume.d.ts.map +1 -1
- package/dist/agent/agent-resume.js +3 -3
- package/dist/agent/agent-resume.js.map +1 -1
- package/dist/agent/agent-run-summary.d.ts +37 -0
- package/dist/agent/agent-run-summary.d.ts.map +1 -0
- package/dist/agent/agent-run-summary.js +15 -0
- package/dist/agent/agent-run-summary.js.map +1 -0
- package/dist/agent/agent-work-board.d.ts +82 -0
- package/dist/agent/agent-work-board.d.ts.map +1 -0
- package/dist/agent/agent-work-board.js +312 -0
- package/dist/agent/agent-work-board.js.map +1 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/auto-compaction.d.ts +7 -2
- package/dist/agent/auto-compaction.d.ts.map +1 -1
- package/dist/agent/auto-compaction.js +23 -10
- package/dist/agent/auto-compaction.js.map +1 -1
- package/dist/agent/compaction.d.ts.map +1 -1
- package/dist/agent/compaction.js +1 -1
- package/dist/agent/compaction.js.map +1 -1
- package/dist/agent/context-handoff.d.ts.map +1 -1
- package/dist/agent/context-handoff.js +2 -1
- package/dist/agent/context-handoff.js.map +1 -1
- package/dist/agent/index.d.ts +8 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +8 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/mission-artifacts.d.ts +62 -0
- package/dist/agent/mission-artifacts.d.ts.map +1 -0
- package/dist/agent/mission-artifacts.js +438 -0
- package/dist/agent/mission-artifacts.js.map +1 -0
- package/dist/agent/mission-manifest.d.ts +139 -3
- package/dist/agent/mission-manifest.d.ts.map +1 -1
- package/dist/agent/mission-manifest.js +549 -3
- package/dist/agent/mission-manifest.js.map +1 -1
- package/dist/agent/mission-store.d.ts +80 -0
- package/dist/agent/mission-store.d.ts.map +1 -0
- package/dist/agent/mission-store.js +603 -0
- package/dist/agent/mission-store.js.map +1 -0
- package/dist/agent/modes.d.ts +3 -3
- package/dist/agent/modes.d.ts.map +1 -1
- package/dist/agent/modes.js +66 -3
- package/dist/agent/modes.js.map +1 -1
- package/dist/agent/oracle-consultation-policy.d.ts +22 -0
- package/dist/agent/oracle-consultation-policy.d.ts.map +1 -0
- package/dist/agent/oracle-consultation-policy.js +72 -0
- package/dist/agent/oracle-consultation-policy.js.map +1 -0
- package/dist/agent/oracle-policy-experiment.d.ts +27 -0
- package/dist/agent/oracle-policy-experiment.d.ts.map +1 -0
- package/dist/agent/oracle-policy-experiment.js +59 -0
- package/dist/agent/oracle-policy-experiment.js.map +1 -0
- package/dist/agent/oracle-policy-rollout.d.ts +42 -0
- package/dist/agent/oracle-policy-rollout.d.ts.map +1 -0
- package/dist/agent/oracle-policy-rollout.js +80 -0
- package/dist/agent/oracle-policy-rollout.js.map +1 -0
- package/dist/agent/plugin-agent-api.d.ts +13 -0
- package/dist/agent/plugin-agent-api.d.ts.map +1 -0
- package/dist/agent/plugin-agent-api.js +11 -0
- package/dist/agent/plugin-agent-api.js.map +1 -0
- package/dist/agent/plugin-agent-loader.d.ts +17 -0
- package/dist/agent/plugin-agent-loader.d.ts.map +1 -0
- package/dist/agent/plugin-agent-loader.js +81 -0
- package/dist/agent/plugin-agent-loader.js.map +1 -0
- package/dist/agent/plugin-agent-registry.d.ts +62 -0
- package/dist/agent/plugin-agent-registry.d.ts.map +1 -0
- package/dist/agent/plugin-agent-registry.js +109 -0
- package/dist/agent/plugin-agent-registry.js.map +1 -0
- package/dist/agent/profile-loader.d.ts +7 -0
- package/dist/agent/profile-loader.d.ts.map +1 -0
- package/dist/agent/profile-loader.js +115 -0
- package/dist/agent/profile-loader.js.map +1 -0
- package/dist/agent/profiles.d.ts +30 -0
- package/dist/agent/profiles.d.ts.map +1 -0
- package/dist/agent/profiles.js +146 -0
- package/dist/agent/profiles.js.map +1 -0
- package/dist/agent/prompt-cache.d.ts +0 -4
- package/dist/agent/prompt-cache.d.ts.map +1 -1
- package/dist/agent/prompt-cache.js +1 -7
- package/dist/agent/prompt-cache.js.map +1 -1
- package/dist/agent/providers/codex-app-server.d.ts.map +1 -1
- package/dist/agent/providers/codex-app-server.js +1 -3
- package/dist/agent/providers/codex-app-server.js.map +1 -1
- package/dist/agent/providers/google-gemini-cli.js +204 -107
- package/dist/agent/providers/google.js +101 -41
- package/dist/agent/providers/scripted.d.ts.map +1 -1
- package/dist/agent/providers/scripted.js +1 -3
- package/dist/agent/providers/scripted.js.map +1 -1
- package/dist/agent/providers/validation.d.ts.map +1 -1
- package/dist/agent/providers/validation.js +1 -3
- package/dist/agent/providers/validation.js.map +1 -1
- package/dist/agent/providers/vertex.js +204 -107
- package/dist/agent/routing-receipt.d.ts +34 -0
- package/dist/agent/routing-receipt.d.ts.map +1 -0
- package/dist/agent/routing-receipt.js +55 -0
- package/dist/agent/routing-receipt.js.map +1 -0
- package/dist/agent/skill-artifact-metadata.d.ts +14 -0
- package/dist/agent/skill-artifact-metadata.d.ts.map +1 -0
- package/dist/agent/skill-artifact-metadata.js +49 -0
- package/dist/agent/skill-artifact-metadata.js.map +1 -0
- package/dist/agent/snapshot-store.d.ts +32 -0
- package/dist/agent/snapshot-store.d.ts.map +1 -0
- package/dist/agent/snapshot-store.js +195 -0
- package/dist/agent/snapshot-store.js.map +1 -0
- package/dist/agent/specialist-profiles.d.ts +36 -0
- package/dist/agent/specialist-profiles.d.ts.map +1 -0
- package/dist/agent/specialist-profiles.js +159 -0
- package/dist/agent/specialist-profiles.js.map +1 -0
- package/dist/agent/subagent-specs.d.ts +5 -2
- package/dist/agent/subagent-specs.d.ts.map +1 -1
- package/dist/agent/subagent-specs.js +83 -10
- package/dist/agent/subagent-specs.js.map +1 -1
- package/dist/agent/swarm/coverage-gate.d.ts +37 -0
- package/dist/agent/swarm/coverage-gate.d.ts.map +1 -0
- package/dist/agent/swarm/coverage-gate.js +48 -0
- package/dist/agent/swarm/coverage-gate.js.map +1 -0
- package/dist/agent/swarm/executor.d.ts +1 -0
- package/dist/agent/swarm/executor.d.ts.map +1 -1
- package/dist/agent/swarm/executor.js +151 -15
- package/dist/agent/swarm/executor.js.map +1 -1
- package/dist/agent/swarm/orchestrator-prompt.d.ts +25 -0
- package/dist/agent/swarm/orchestrator-prompt.d.ts.map +1 -0
- package/dist/agent/swarm/orchestrator-prompt.js +48 -0
- package/dist/agent/swarm/orchestrator-prompt.js.map +1 -0
- package/dist/agent/swarm/plan-parser.d.ts.map +1 -1
- package/dist/agent/swarm/plan-parser.js +27 -2
- package/dist/agent/swarm/plan-parser.js.map +1 -1
- package/dist/agent/swarm/types.d.ts +17 -0
- package/dist/agent/swarm/types.d.ts.map +1 -1
- package/dist/agent/swarm/types.js.map +1 -1
- package/dist/agent/swarm/validation-directive.d.ts +21 -0
- package/dist/agent/swarm/validation-directive.d.ts.map +1 -0
- package/dist/agent/swarm/validation-directive.js +25 -0
- package/dist/agent/swarm/validation-directive.js.map +1 -0
- package/dist/agent/token-counter.d.ts +40 -0
- package/dist/agent/token-counter.d.ts.map +1 -0
- package/dist/agent/token-counter.js +74 -0
- package/dist/agent/token-counter.js.map +1 -0
- package/dist/agent/transport/events.d.ts +1 -1
- package/dist/agent/transport/events.d.ts.map +1 -1
- package/dist/agent/transport/events.js +1 -1
- package/dist/agent/transport/events.js.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.js +4 -1
- package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
- package/dist/agent/types.d.ts +4 -2
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/enterprise-routes.d.ts.map +1 -1
- package/dist/api/enterprise-routes.js +87 -10
- package/dist/api/enterprise-routes.js.map +1 -1
- package/dist/api/org-settings-merge.d.ts +12 -0
- package/dist/api/org-settings-merge.d.ts.map +1 -0
- package/dist/api/org-settings-merge.js +38 -0
- package/dist/api/org-settings-merge.js.map +1 -0
- package/dist/api/user-settings-merge.d.ts +16 -0
- package/dist/api/user-settings-merge.d.ts.map +1 -0
- package/dist/api/user-settings-merge.js +37 -0
- package/dist/api/user-settings-merge.js.map +1 -0
- package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -1
- package/dist/app-server/daemon-lifecycle-api.js +1 -3
- package/dist/app-server/daemon-lifecycle-api.js.map +1 -1
- package/dist/app-server/external-agent-import-api.d.ts.map +1 -1
- package/dist/app-server/external-agent-import-api.js +1 -3
- package/dist/app-server/external-agent-import-api.js.map +1 -1
- package/dist/app-server/network-governance-api.d.ts.map +1 -1
- package/dist/app-server/network-governance-api.js +1 -3
- package/dist/app-server/network-governance-api.js.map +1 -1
- package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
- package/dist/app-server/plugin-bundle-api.js +2 -3
- package/dist/app-server/plugin-bundle-api.js.map +1 -1
- package/dist/app-server/policy-control-api.d.ts.map +1 -1
- package/dist/app-server/policy-control-api.js +1 -3
- package/dist/app-server/policy-control-api.js.map +1 -1
- package/dist/app-server/protocol-modes-api.d.ts.map +1 -1
- package/dist/app-server/protocol-modes-api.js +1 -3
- package/dist/app-server/protocol-modes-api.js.map +1 -1
- package/dist/app-server/session-api.d.ts.map +1 -1
- package/dist/app-server/session-api.js +15 -2
- package/dist/app-server/session-api.js.map +1 -1
- package/dist/audit/logger.d.ts +5 -5
- package/dist/cli/args.d.ts +4 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +33 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/a2a.d.ts.map +1 -1
- package/dist/cli/commands/a2a.js +1 -3
- package/dist/cli/commands/a2a.js.map +1 -1
- package/dist/cli/commands/mission.d.ts +4 -0
- package/dist/cli/commands/mission.d.ts.map +1 -0
- package/dist/cli/commands/mission.js +196 -0
- package/dist/cli/commands/mission.js.map +1 -0
- package/dist/cli/commands/value.d.ts +10 -0
- package/dist/cli/commands/value.d.ts.map +1 -0
- package/dist/cli/commands/value.js +33 -0
- package/dist/cli/commands/value.js.map +1 -0
- package/dist/cli/direct-runtime-command.d.ts +1 -0
- package/dist/cli/direct-runtime-command.d.ts.map +1 -1
- package/dist/cli/direct-runtime-command.js +25 -3
- package/dist/cli/direct-runtime-command.js.map +1 -1
- package/dist/cli/headless-protocol.d.ts.map +1 -1
- package/dist/cli/headless-protocol.js +1 -3
- package/dist/cli/headless-protocol.js.map +1 -1
- package/dist/cli/headless.d.ts +3 -19
- package/dist/cli/headless.d.ts.map +1 -1
- package/dist/cli/headless.js +8 -619
- package/dist/cli/headless.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +13 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/native-tui-launcher.d.ts +126 -0
- package/dist/cli/native-tui-launcher.d.ts.map +1 -0
- package/dist/cli/native-tui-launcher.js +425 -0
- package/dist/cli/native-tui-launcher.js.map +1 -0
- package/dist/cli/rpc-mode.d.ts +3 -27
- package/dist/cli/rpc-mode.d.ts.map +1 -1
- package/dist/cli/rpc-mode.js +8 -177
- package/dist/cli/rpc-mode.js.map +1 -1
- package/dist/cli/session.d.ts +11 -19
- package/dist/cli/session.d.ts.map +1 -1
- package/dist/cli/session.js +6 -64
- package/dist/cli/session.js.map +1 -1
- package/dist/cli/system-prompt.d.ts.map +1 -1
- package/dist/cli/system-prompt.js +38 -7
- package/dist/cli/system-prompt.js.map +1 -1
- package/dist/cli-command-runtime.d.ts.map +1 -1
- package/dist/cli-command-runtime.js +26 -24
- package/dist/cli-command-runtime.js.map +1 -1
- package/dist/cli-runtime.js +41729 -121859
- package/dist/codex/app-server-client.d.ts.map +1 -1
- package/dist/codex/app-server-client.js +1 -3
- package/dist/codex/app-server-client.js.map +1 -1
- package/dist/codex/compatibility.d.ts.map +1 -1
- package/dist/codex/compatibility.js +1 -3
- package/dist/codex/compatibility.js.map +1 -1
- package/dist/codex/subagent-dispatch-table.d.ts +8 -0
- package/dist/codex/subagent-dispatch-table.d.ts.map +1 -1
- package/dist/codex/subagent-dispatch-table.js +23 -0
- package/dist/codex/subagent-dispatch-table.js.map +1 -1
- package/dist/config/env-vars.d.ts +12 -0
- package/dist/config/env-vars.d.ts.map +1 -1
- package/dist/config/env-vars.js +12 -0
- package/dist/config/env-vars.js.map +1 -1
- package/dist/config/ui-state.d.ts +32 -0
- package/dist/config/ui-state.d.ts.map +1 -0
- package/dist/config/ui-state.js +88 -0
- package/dist/config/ui-state.js.map +1 -0
- package/dist/context/manifest.d.ts.map +1 -1
- package/dist/context/manifest.js +1 -3
- package/dist/context/manifest.js.map +1 -1
- package/dist/context/repo-map.d.ts.map +1 -1
- package/dist/context/repo-map.js +1 -7
- package/dist/context/repo-map.js.map +1 -1
- package/dist/context/token-optimizer.d.ts.map +1 -1
- package/dist/context/token-optimizer.js +1 -8
- package/dist/context/token-optimizer.js.map +1 -1
- package/dist/conversation/render-model.d.ts +0 -36
- package/dist/conversation/render-model.d.ts.map +1 -1
- package/dist/conversation/render-model.js +1 -3
- package/dist/conversation/render-model.js.map +1 -1
- package/dist/customer-value/ambient-learning.d.ts +75 -0
- package/dist/customer-value/ambient-learning.d.ts.map +1 -0
- package/dist/customer-value/ambient-learning.js +472 -0
- package/dist/customer-value/ambient-learning.js.map +1 -0
- package/dist/customer-value/internal-helpers.d.ts +13 -0
- package/dist/customer-value/internal-helpers.d.ts.map +1 -0
- package/dist/customer-value/internal-helpers.js +70 -0
- package/dist/customer-value/internal-helpers.js.map +1 -0
- package/dist/customer-value/report.d.ts +282 -0
- package/dist/customer-value/report.d.ts.map +1 -0
- package/dist/customer-value/report.js +2085 -0
- package/dist/customer-value/report.js.map +1 -0
- package/dist/db/schema.d.ts +7 -3
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
- package/dist/evalops/agent-bootstrap.js +1 -3
- package/dist/evalops/agent-bootstrap.js.map +1 -1
- package/dist/evalops/agent-mcp-metadata.d.ts.map +1 -1
- package/dist/evalops/agent-mcp-metadata.js +1 -3
- package/dist/evalops/agent-mcp-metadata.js.map +1 -1
- package/dist/hooks/notification-hooks.d.ts +1 -1
- package/dist/hooks/notification-hooks.d.ts.map +1 -1
- package/dist/hooks/notification-hooks.js.map +1 -1
- package/dist/hooks/tui-surface.d.ts +35 -0
- package/dist/hooks/tui-surface.d.ts.map +1 -0
- package/dist/hooks/tui-surface.js +11 -0
- package/dist/hooks/tui-surface.js.map +1 -0
- package/dist/hooks/types.d.ts +2 -1
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/hooks/types.js.map +1 -1
- package/dist/hooks/typescript-loader.d.ts.map +1 -1
- package/dist/hooks/typescript-loader.js.map +1 -1
- package/dist/hooks/ui-context.d.ts.map +1 -1
- package/dist/hooks/ui-context.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/installers/maestro-review-workflow.d.ts +38 -0
- package/dist/installers/maestro-review-workflow.d.ts.map +1 -0
- package/dist/installers/maestro-review-workflow.js +163 -0
- package/dist/installers/maestro-review-workflow.js.map +1 -0
- package/dist/load-env.d.ts.map +1 -1
- package/dist/load-env.js +2 -1
- package/dist/load-env.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +201 -840
- package/dist/main.js.map +1 -1
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +1 -3
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/elicitation.d.ts.map +1 -1
- package/dist/mcp/elicitation.js +1 -3
- package/dist/mcp/elicitation.js.map +1 -1
- package/dist/mcp/official-registry.d.ts.map +1 -1
- package/dist/mcp/official-registry.js +1 -3
- package/dist/mcp/official-registry.js.map +1 -1
- package/dist/mcp/workspace-trust.d.ts.map +1 -1
- package/dist/mcp/workspace-trust.js +1 -3
- package/dist/mcp/workspace-trust.js.map +1 -1
- package/dist/memory/service-client.d.ts.map +1 -1
- package/dist/memory/service-client.js +1 -3
- package/dist/memory/service-client.js.map +1 -1
- package/dist/models/config-loader.d.ts +5 -5
- package/dist/models/config-loader.d.ts.map +1 -1
- package/dist/models/config-loader.js +1 -3
- package/dist/models/config-loader.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts +46 -0
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.js +3 -0
- package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +284 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js +41 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts +61 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js +183 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts +986 -0
- package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/schemas.js +49 -0
- package/dist/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts +56 -0
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.js +86 -0
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.js.map +1 -0
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/oauth/connectors.d.ts.map +1 -1
- package/dist/oauth/connectors.js +1 -3
- package/dist/oauth/connectors.js.map +1 -1
- package/dist/oauth/evalops.d.ts.map +1 -1
- package/dist/oauth/evalops.js +1 -3
- package/dist/oauth/evalops.js.map +1 -1
- package/dist/packages/discovery.d.ts.map +1 -1
- package/dist/packages/discovery.js +1 -0
- package/dist/packages/discovery.js.map +1 -1
- package/dist/packages/inspection.d.ts.map +1 -1
- package/dist/packages/inspection.js +7 -1
- package/dist/packages/inspection.js.map +1 -1
- package/dist/packages/loader.d.ts.map +1 -1
- package/dist/packages/loader.js +8 -1
- package/dist/packages/loader.js.map +1 -1
- package/dist/packages/runtime.d.ts +1 -0
- package/dist/packages/runtime.d.ts.map +1 -1
- package/dist/packages/runtime.js +9 -1
- package/dist/packages/runtime.js.map +1 -1
- package/dist/packages/types.d.ts +6 -0
- package/dist/packages/types.d.ts.map +1 -1
- package/dist/packages/types.js.map +1 -1
- package/dist/platform/a2a-client.d.ts.map +1 -1
- package/dist/platform/a2a-client.js +1 -3
- package/dist/platform/a2a-client.js.map +1 -1
- package/dist/platform/a2a-cockpit.d.ts +1 -0
- package/dist/platform/a2a-cockpit.d.ts.map +1 -1
- package/dist/platform/a2a-cockpit.js +42 -11
- package/dist/platform/a2a-cockpit.js.map +1 -1
- package/dist/platform/a2a-completion-audit.d.ts +1 -1
- package/dist/platform/a2a-completion-audit.d.ts.map +1 -1
- package/dist/platform/a2a-completion-audit.js +7 -11
- package/dist/platform/a2a-completion-audit.js.map +1 -1
- package/dist/platform/a2a-maestro-peer.js +16 -0
- package/dist/platform/a2a-maestro-peer.js.map +1 -1
- package/dist/platform/a2a-peer-pairing.d.ts.map +1 -1
- package/dist/platform/a2a-peer-pairing.js +1 -3
- package/dist/platform/a2a-peer-pairing.js.map +1 -1
- package/dist/platform/a2a-peer-registry.d.ts.map +1 -1
- package/dist/platform/a2a-peer-registry.js +1 -3
- package/dist/platform/a2a-peer-registry.js.map +1 -1
- package/dist/platform/a2a-task-ledger.d.ts +20 -0
- package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
- package/dist/platform/a2a-task-ledger.js +207 -11
- package/dist/platform/a2a-task-ledger.js.map +1 -1
- package/dist/platform/a2a-work-graph.d.ts.map +1 -1
- package/dist/platform/a2a-work-graph.js +1 -3
- package/dist/platform/a2a-work-graph.js.map +1 -1
- package/dist/platform/operating-layer.d.ts.map +1 -1
- package/dist/platform/operating-layer.js +14 -8
- package/dist/platform/operating-layer.js.map +1 -1
- package/dist/platform/tool-execution-client.d.ts.map +1 -1
- package/dist/platform/tool-execution-client.js +19 -2
- package/dist/platform/tool-execution-client.js.map +1 -1
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +1 -3
- package/dist/providers/auth.js.map +1 -1
- package/dist/runtime/agent-runtime.d.ts +22 -6
- package/dist/runtime/agent-runtime.d.ts.map +1 -1
- package/dist/runtime/agent-runtime.js +1 -1
- package/dist/runtime/agent-runtime.js.map +1 -1
- package/dist/runtime/env.d.ts +10 -1
- package/dist/runtime/env.d.ts.map +1 -1
- package/dist/runtime/env.js +64 -1
- package/dist/runtime/env.js.map +1 -1
- package/dist/runtime/prompt-queue.d.ts.map +1 -0
- package/dist/runtime/prompt-queue.js.map +1 -0
- package/dist/safety/policy.d.ts.map +1 -1
- package/dist/safety/policy.js +1 -4
- package/dist/safety/policy.js.map +1 -1
- package/dist/sandbox/docker-sandbox.d.ts.map +1 -1
- package/dist/sandbox/docker-sandbox.js +6 -1
- package/dist/sandbox/docker-sandbox.js.map +1 -1
- package/dist/server/handlers/chat-ws.d.ts +2 -1
- package/dist/server/handlers/chat-ws.d.ts.map +1 -1
- package/dist/server/handlers/chat-ws.js +150 -5
- package/dist/server/handlers/chat-ws.js.map +1 -1
- package/dist/server/handlers/chat.d.ts.map +1 -1
- package/dist/server/handlers/chat.js +78 -5
- package/dist/server/handlers/chat.js.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.js +1 -3
- package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
- package/dist/server/handlers/package.d.ts.map +1 -1
- package/dist/server/handlers/package.js +1 -0
- package/dist/server/handlers/package.js.map +1 -1
- package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -1
- package/dist/server/handlers/platform-a2a-push.js +53 -2
- package/dist/server/handlers/platform-a2a-push.js.map +1 -1
- package/dist/server/handlers/queue.js +1 -1
- package/dist/server/handlers/queue.js.map +1 -1
- package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -1
- package/dist/server/handlers/runtime-app-server-ws.js +1 -3
- package/dist/server/handlers/runtime-app-server-ws.js.map +1 -1
- package/dist/server/handlers/ui.js +1 -1
- package/dist/server/handlers/ui.js.map +1 -1
- package/dist/server/handlers/zen.js +1 -1
- package/dist/server/handlers/zen.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts +16 -0
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +232 -206
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.js +12 -3
- package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
- package/dist/server/hosted-session-manager.d.ts +3 -0
- package/dist/server/hosted-session-manager.d.ts.map +1 -1
- package/dist/server/hosted-session-manager.js +26 -0
- package/dist/server/hosted-session-manager.js.map +1 -1
- package/dist/server/model-selection.d.ts +1 -0
- package/dist/server/model-selection.d.ts.map +1 -1
- package/dist/server/model-selection.js +4 -0
- package/dist/server/model-selection.js.map +1 -1
- package/dist/server/pending-request-payload.d.ts.map +1 -1
- package/dist/server/pending-request-payload.js +1 -3
- package/dist/server/pending-request-payload.js.map +1 -1
- package/dist/server/route-auth.d.ts.map +1 -1
- package/dist/server/route-auth.js +2 -0
- package/dist/server/route-auth.js.map +1 -1
- package/dist/server/session-serialization.d.ts.map +1 -1
- package/dist/server/session-serialization.js +4 -3
- package/dist/server/session-serialization.js.map +1 -1
- package/dist/server/session-timeline.d.ts.map +1 -1
- package/dist/server/session-timeline.js +1 -1
- package/dist/server/session-timeline.js.map +1 -1
- package/dist/server/sse-session.d.ts +2 -0
- package/dist/server/sse-session.d.ts.map +1 -1
- package/dist/server/sse-session.js +3 -0
- package/dist/server/sse-session.js.map +1 -1
- package/dist/server/stores/ui-store.d.ts +1 -1
- package/dist/server/stores/ui-store.d.ts.map +1 -1
- package/dist/server/stores/ui-store.js.map +1 -1
- package/dist/server/utils/token-estimator.d.ts +2 -2
- package/dist/server/utils/token-estimator.d.ts.map +1 -1
- package/dist/server/utils/token-estimator.js +2 -12
- package/dist/server/utils/token-estimator.js.map +1 -1
- package/dist/server/validation.d.ts +54 -0
- package/dist/server/validation.d.ts.map +1 -1
- package/dist/services/compliance/normalize.d.ts.map +1 -1
- package/dist/services/compliance/normalize.js +1 -3
- package/dist/services/compliance/normalize.js.map +1 -1
- package/dist/services/image-providers/cost.d.ts +70 -0
- package/dist/services/image-providers/cost.d.ts.map +1 -0
- package/dist/services/image-providers/cost.js +164 -0
- package/dist/services/image-providers/cost.js.map +1 -0
- package/dist/services/image-providers/flux.d.ts +40 -0
- package/dist/services/image-providers/flux.d.ts.map +1 -0
- package/dist/services/image-providers/flux.js +99 -0
- package/dist/services/image-providers/flux.js.map +1 -0
- package/dist/services/image-providers/index.d.ts +24 -0
- package/dist/services/image-providers/index.d.ts.map +1 -0
- package/dist/services/image-providers/index.js +27 -0
- package/dist/services/image-providers/index.js.map +1 -0
- package/dist/services/image-providers/masks.d.ts +51 -0
- package/dist/services/image-providers/masks.d.ts.map +1 -0
- package/dist/services/image-providers/masks.js +132 -0
- package/dist/services/image-providers/masks.js.map +1 -0
- package/dist/services/image-providers/openai.d.ts +35 -0
- package/dist/services/image-providers/openai.d.ts.map +1 -0
- package/dist/services/image-providers/openai.js +93 -0
- package/dist/services/image-providers/openai.js.map +1 -0
- package/dist/services/image-providers/types.d.ts +61 -0
- package/dist/services/image-providers/types.d.ts.map +1 -0
- package/dist/services/image-providers/types.js +17 -0
- package/dist/services/image-providers/types.js.map +1 -0
- package/dist/services/intelligent-router/index.d.ts +1 -0
- package/dist/services/intelligent-router/index.d.ts.map +1 -1
- package/dist/services/intelligent-router/index.js +1 -0
- package/dist/services/intelligent-router/index.js.map +1 -1
- package/dist/services/intelligent-router/normalize.d.ts +1 -0
- package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
- package/dist/services/intelligent-router/normalize.js +18 -3
- package/dist/services/intelligent-router/normalize.js.map +1 -1
- package/dist/services/intelligent-router/outcome.d.ts +19 -0
- package/dist/services/intelligent-router/outcome.d.ts.map +1 -0
- package/dist/services/intelligent-router/outcome.js +51 -0
- package/dist/services/intelligent-router/outcome.js.map +1 -0
- package/dist/services/intelligent-router/recorder.d.ts +2 -0
- package/dist/services/intelligent-router/recorder.d.ts.map +1 -1
- package/dist/services/intelligent-router/recorder.js +72 -1
- package/dist/services/intelligent-router/recorder.js.map +1 -1
- package/dist/services/intelligent-router/service.d.ts +1 -0
- package/dist/services/intelligent-router/service.d.ts.map +1 -1
- package/dist/services/intelligent-router/service.js +60 -11
- package/dist/services/intelligent-router/service.js.map +1 -1
- package/dist/services/intelligent-router/types.d.ts +18 -0
- package/dist/services/intelligent-router/types.d.ts.map +1 -1
- package/dist/services/intelligent-router/types.js.map +1 -1
- package/dist/services/revenue-attribution/normalize.d.ts.map +1 -1
- package/dist/services/revenue-attribution/normalize.js +1 -3
- package/dist/services/revenue-attribution/normalize.js.map +1 -1
- package/dist/services/traces/normalize.d.ts.map +1 -1
- package/dist/services/traces/normalize.js +1 -3
- package/dist/services/traces/normalize.js.map +1 -1
- package/dist/services/workspace-config/middleware.d.ts +2 -0
- package/dist/services/workspace-config/middleware.d.ts.map +1 -1
- package/dist/services/workspace-config/middleware.js +25 -28
- package/dist/services/workspace-config/middleware.js.map +1 -1
- package/dist/services/workspace-config/normalize.d.ts.map +1 -1
- package/dist/services/workspace-config/normalize.js +1 -3
- package/dist/services/workspace-config/normalize.js.map +1 -1
- package/dist/session/agent-lineage-projection.d.ts +30 -0
- package/dist/session/agent-lineage-projection.d.ts.map +1 -0
- package/dist/session/agent-lineage-projection.js +109 -0
- package/dist/session/agent-lineage-projection.js.map +1 -0
- package/dist/session/manager.d.ts +3 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +24 -0
- package/dist/session/manager.js.map +1 -1
- package/dist/session/session-graph-projection.d.ts +11 -0
- package/dist/session/session-graph-projection.d.ts.map +1 -1
- package/dist/session/session-graph-projection.js +28 -0
- package/dist/session/session-graph-projection.js.map +1 -1
- package/dist/session/types.d.ts +2 -0
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js.map +1 -1
- package/dist/telemetry/agent-workforce-native-event.d.ts.map +1 -1
- package/dist/telemetry/agent-workforce-native-event.js +1 -3
- package/dist/telemetry/agent-workforce-native-event.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-bus.js +42 -81
- package/dist/telemetry/maestro-event-bus.js.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.js +1 -3
- package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
- package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
- package/dist/telemetry/oracle-policy.d.ts +6 -0
- package/dist/telemetry/oracle-policy.d.ts.map +1 -0
- package/dist/telemetry/oracle-policy.js +17 -0
- package/dist/telemetry/oracle-policy.js.map +1 -0
- package/dist/telemetry/wide-events.d.ts +1 -1
- package/dist/telemetry/wide-events.d.ts.map +1 -1
- package/dist/telemetry/wide-events.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +54 -43
- package/dist/telemetry.js.map +1 -1
- package/dist/theme/theme-loader.d.ts.map +1 -1
- package/dist/theme/theme-loader.js +1 -3
- package/dist/theme/theme-loader.js.map +1 -1
- package/dist/theme/theme.d.ts +2 -8
- package/dist/theme/theme.d.ts.map +1 -1
- package/dist/theme/theme.js +7 -0
- package/dist/theme/theme.js.map +1 -1
- package/dist/theme/tui-theme-helpers.d.ts +2 -1
- package/dist/theme/tui-theme-helpers.d.ts.map +1 -1
- package/dist/theme/tui-theme-helpers.js.map +1 -1
- package/dist/theme/tui-theme-types.d.ts +39 -0
- package/dist/theme/tui-theme-types.d.ts.map +1 -0
- package/dist/theme/tui-theme-types.js +10 -0
- package/dist/theme/tui-theme-types.js.map +1 -0
- package/dist/tools/apply-patch.d.ts.map +1 -1
- package/dist/tools/apply-patch.js +76 -8
- package/dist/tools/apply-patch.js.map +1 -1
- package/dist/tools/diff-preview.d.ts.map +1 -1
- package/dist/tools/diff-preview.js +10 -1
- package/dist/tools/diff-preview.js.map +1 -1
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +17 -0
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/index.d.ts +199 -160
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lazy-registry.d.ts.map +1 -1
- package/dist/tools/lazy-registry.js +1 -0
- package/dist/tools/lazy-registry.js.map +1 -1
- package/dist/tools/oracle.d.ts +9 -0
- package/dist/tools/oracle.d.ts.map +1 -1
- package/dist/tools/oracle.js +26 -24
- package/dist/tools/oracle.js.map +1 -1
- package/dist/tools/painter.d.ts +73 -0
- package/dist/tools/painter.d.ts.map +1 -0
- package/dist/tools/painter.js +283 -0
- package/dist/tools/painter.js.map +1 -0
- package/dist/tools/typebox-tool.d.ts.map +1 -1
- package/dist/tools/typebox-tool.js +1 -1
- package/dist/tools/typebox-tool.js.map +1 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +9 -0
- package/dist/tools/write.js.map +1 -1
- package/dist/undo/tracker.d.ts +5 -0
- package/dist/undo/tracker.d.ts.map +1 -1
- package/dist/undo/tracker.js +13 -0
- package/dist/undo/tracker.js.map +1 -1
- package/dist/utils/fs.d.ts +1 -1
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +29 -2
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/git-stash.d.ts.map +1 -1
- package/dist/utils/git-stash.js +15 -8
- package/dist/utils/git-stash.js.map +1 -1
- package/dist/utils/json.d.ts +11 -0
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js +9 -0
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/shell-env.d.ts.map +1 -1
- package/dist/utils/shell-env.js +2 -0
- package/dist/utils/shell-env.js.map +1 -1
- package/dist/utils/terminal-image.d.ts +52 -0
- package/dist/utils/terminal-image.d.ts.map +1 -0
- package/dist/utils/terminal-image.js +95 -0
- package/dist/utils/terminal-image.js.map +1 -0
- package/dist/utils/terminal-text.d.ts +11 -0
- package/dist/utils/terminal-text.d.ts.map +1 -0
- package/dist/utils/terminal-text.js +21 -0
- package/dist/utils/terminal-text.js.map +1 -0
- package/dist/utils/url-extractor-git.d.ts +26 -0
- package/dist/utils/url-extractor-git.d.ts.map +1 -0
- package/dist/utils/url-extractor-git.js +259 -0
- package/dist/utils/url-extractor-git.js.map +1 -0
- package/dist/utils/url-extractor.d.ts.map +1 -1
- package/dist/utils/url-extractor.js +23 -251
- package/dist/utils/url-extractor.js.map +1 -1
- package/dist/version.json +2 -2
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +24 -2
- package/dist/web-server.js.map +1 -1
- package/package.json +312 -306
- package/skills/incident-triage/SKILL.md +20 -1
- package/skills/install-code-review/SKILL.md +69 -0
- package/skills/security-review/SKILL.md +68 -0
- package/skills/security-review/reference/rubric.md +85 -0
- package/dist/cli/commands/agents.d.ts +0 -20
- package/dist/cli/commands/agents.d.ts.map +0 -1
- package/dist/cli/commands/agents.js +0 -280
- package/dist/cli/commands/agents.js.map +0 -1
- package/dist/cli/commands/anthropic.d.ts +0 -2
- package/dist/cli/commands/anthropic.d.ts.map +0 -1
- package/dist/cli/commands/anthropic.js +0 -6
- package/dist/cli/commands/anthropic.js.map +0 -1
- package/dist/cli/commands/cost.d.ts +0 -13
- package/dist/cli/commands/cost.d.ts.map +0 -1
- package/dist/cli/commands/cost.js +0 -143
- package/dist/cli/commands/cost.js.map +0 -1
- package/dist/cli/commands/exec-constants.d.ts +0 -3
- package/dist/cli/commands/exec-constants.d.ts.map +0 -1
- package/dist/cli/commands/exec-constants.js +0 -3
- package/dist/cli/commands/exec-constants.js.map +0 -1
- package/dist/cli/commands/exec.d.ts +0 -19
- package/dist/cli/commands/exec.d.ts.map +0 -1
- package/dist/cli/commands/exec.js +0 -207
- package/dist/cli/commands/exec.js.map +0 -1
- package/dist/cli/commands/hooks.d.ts +0 -2
- package/dist/cli/commands/hooks.d.ts.map +0 -1
- package/dist/cli/commands/hooks.js +0 -25
- package/dist/cli/commands/hooks.js.map +0 -1
- package/dist/cli/commands/hosted-runner.d.ts +0 -25
- package/dist/cli/commands/hosted-runner.d.ts.map +0 -1
- package/dist/cli/commands/hosted-runner.js +0 -278
- package/dist/cli/commands/hosted-runner.js.map +0 -1
- package/dist/cli/commands/memory.d.ts +0 -2
- package/dist/cli/commands/memory.d.ts.map +0 -1
- package/dist/cli/commands/memory.js +0 -208
- package/dist/cli/commands/memory.js.map +0 -1
- package/dist/cli/commands/models.d.ts +0 -3
- package/dist/cli/commands/models.d.ts.map +0 -1
- package/dist/cli/commands/models.js +0 -154
- package/dist/cli/commands/models.js.map +0 -1
- package/dist/cli/commands/modes.d.ts +0 -8
- package/dist/cli/commands/modes.d.ts.map +0 -1
- package/dist/cli/commands/modes.js +0 -151
- package/dist/cli/commands/modes.js.map +0 -1
- package/dist/cli/commands/openai.d.ts +0 -2
- package/dist/cli/commands/openai.d.ts.map +0 -1
- package/dist/cli/commands/openai.js +0 -116
- package/dist/cli/commands/openai.js.map +0 -1
- package/dist/cli/commands/session-transfer.d.ts +0 -5
- package/dist/cli/commands/session-transfer.d.ts.map +0 -1
- package/dist/cli/commands/session-transfer.js +0 -43
- package/dist/cli/commands/session-transfer.js.map +0 -1
- package/dist/cli/commands/sessions.d.ts +0 -8
- package/dist/cli/commands/sessions.d.ts.map +0 -1
- package/dist/cli/commands/sessions.js +0 -152
- package/dist/cli/commands/sessions.js.map +0 -1
- package/dist/cli/commands/skill.d.ts +0 -10
- package/dist/cli/commands/skill.d.ts.map +0 -1
- package/dist/cli/commands/skill.js +0 -303
- package/dist/cli/commands/skill.js.map +0 -1
- package/dist/cli/commands/stats.d.ts +0 -7
- package/dist/cli/commands/stats.d.ts.map +0 -1
- package/dist/cli/commands/stats.js +0 -167
- package/dist/cli/commands/stats.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -2
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -11
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/cli/commands/update.d.ts +0 -12
- package/dist/cli/commands/update.d.ts.map +0 -1
- package/dist/cli/commands/update.js +0 -148
- package/dist/cli/commands/update.js.map +0 -1
- package/dist/cli-tui/about-view.d.ts +0 -48
- package/dist/cli-tui/about-view.d.ts.map +0 -1
- package/dist/cli-tui/about-view.js +0 -206
- package/dist/cli-tui/about-view.js.map +0 -1
- package/dist/cli-tui/agent-event-router.d.ts +0 -28
- package/dist/cli-tui/agent-event-router.d.ts.map +0 -1
- package/dist/cli-tui/agent-event-router.js +0 -126
- package/dist/cli-tui/agent-event-router.js.map +0 -1
- package/dist/cli-tui/approval/approval-controller.d.ts +0 -28
- package/dist/cli-tui/approval/approval-controller.d.ts.map +0 -1
- package/dist/cli-tui/approval/approval-controller.js +0 -99
- package/dist/cli-tui/approval/approval-controller.js.map +0 -1
- package/dist/cli-tui/approval/approval-modal.d.ts +0 -26
- package/dist/cli-tui/approval/approval-modal.d.ts.map +0 -1
- package/dist/cli-tui/approval/approval-modal.js +0 -143
- package/dist/cli-tui/approval/approval-modal.js.map +0 -1
- package/dist/cli-tui/assistant-message.d.ts +0 -41
- package/dist/cli-tui/assistant-message.d.ts.map +0 -1
- package/dist/cli-tui/assistant-message.js +0 -236
- package/dist/cli-tui/assistant-message.js.map +0 -1
- package/dist/cli-tui/auth-state.d.ts +0 -7
- package/dist/cli-tui/auth-state.d.ts.map +0 -1
- package/dist/cli-tui/auth-state.js +0 -46
- package/dist/cli-tui/auth-state.js.map +0 -1
- package/dist/cli-tui/background/background-tasks-controller.d.ts +0 -31
- package/dist/cli-tui/background/background-tasks-controller.d.ts.map +0 -1
- package/dist/cli-tui/background/background-tasks-controller.js +0 -84
- package/dist/cli-tui/background/background-tasks-controller.js.map +0 -1
- package/dist/cli-tui/base-view.d.ts +0 -111
- package/dist/cli-tui/base-view.d.ts.map +0 -1
- package/dist/cli-tui/base-view.js +0 -145
- package/dist/cli-tui/base-view.js.map +0 -1
- package/dist/cli-tui/bash/background-launcher.d.ts +0 -14
- package/dist/cli-tui/bash/background-launcher.d.ts.map +0 -1
- package/dist/cli-tui/bash/background-launcher.js +0 -50
- package/dist/cli-tui/bash/background-launcher.js.map +0 -1
- package/dist/cli-tui/bash/bash-autocomplete.d.ts +0 -40
- package/dist/cli-tui/bash/bash-autocomplete.d.ts.map +0 -1
- package/dist/cli-tui/bash/bash-autocomplete.js +0 -347
- package/dist/cli-tui/bash/bash-autocomplete.js.map +0 -1
- package/dist/cli-tui/bash/bash-history.d.ts +0 -21
- package/dist/cli-tui/bash/bash-history.d.ts.map +0 -1
- package/dist/cli-tui/bash/bash-history.js +0 -72
- package/dist/cli-tui/bash/bash-history.js.map +0 -1
- package/dist/cli-tui/bash/bash-syntax.d.ts +0 -5
- package/dist/cli-tui/bash/bash-syntax.d.ts.map +0 -1
- package/dist/cli-tui/bash/bash-syntax.js +0 -176
- package/dist/cli-tui/bash/bash-syntax.js.map +0 -1
- package/dist/cli-tui/bash/index.d.ts +0 -4
- package/dist/cli-tui/bash/index.d.ts.map +0 -1
- package/dist/cli-tui/bash/index.js +0 -4
- package/dist/cli-tui/bash/index.js.map +0 -1
- package/dist/cli-tui/bash-mode-view.d.ts +0 -86
- package/dist/cli-tui/bash-mode-view.d.ts.map +0 -1
- package/dist/cli-tui/bash-mode-view.js +0 -560
- package/dist/cli-tui/bash-mode-view.js.map +0 -1
- package/dist/cli-tui/bash-shell-block.d.ts +0 -50
- package/dist/cli-tui/bash-shell-block.d.ts.map +0 -1
- package/dist/cli-tui/bash-shell-block.js +0 -119
- package/dist/cli-tui/bash-shell-block.js.map +0 -1
- package/dist/cli-tui/changelog-view.d.ts +0 -13
- package/dist/cli-tui/changelog-view.d.ts.map +0 -1
- package/dist/cli-tui/changelog-view.js +0 -34
- package/dist/cli-tui/changelog-view.js.map +0 -1
- package/dist/cli-tui/clean-mode.d.ts +0 -13
- package/dist/cli-tui/clean-mode.d.ts.map +0 -1
- package/dist/cli-tui/clean-mode.js +0 -32
- package/dist/cli-tui/clean-mode.js.map +0 -1
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts +0 -41
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +0 -1
- package/dist/cli-tui/client-tools/client-tool-controller.js +0 -862
- package/dist/cli-tui/client-tools/client-tool-controller.js.map +0 -1
- package/dist/cli-tui/client-tools/local-client-tool-service.d.ts +0 -33
- package/dist/cli-tui/client-tools/local-client-tool-service.d.ts.map +0 -1
- package/dist/cli-tui/client-tools/local-client-tool-service.js +0 -94
- package/dist/cli-tui/client-tools/local-client-tool-service.js.map +0 -1
- package/dist/cli-tui/commands/a2a-handlers.d.ts +0 -7
- package/dist/cli-tui/commands/a2a-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/a2a-handlers.js +0 -215
- package/dist/cli-tui/commands/a2a-handlers.js.map +0 -1
- package/dist/cli-tui/commands/access-command.d.ts +0 -3
- package/dist/cli-tui/commands/access-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/access-command.js +0 -89
- package/dist/cli-tui/commands/access-command.js.map +0 -1
- package/dist/cli-tui/commands/argument-parser.d.ts +0 -12
- package/dist/cli-tui/commands/argument-parser.d.ts.map +0 -1
- package/dist/cli-tui/commands/argument-parser.js +0 -135
- package/dist/cli-tui/commands/argument-parser.js.map +0 -1
- package/dist/cli-tui/commands/audit-command.d.ts +0 -5
- package/dist/cli-tui/commands/audit-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/audit-command.js +0 -35
- package/dist/cli-tui/commands/audit-command.js.map +0 -1
- package/dist/cli-tui/commands/background-handlers.d.ts +0 -14
- package/dist/cli-tui/commands/background-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/background-handlers.js +0 -115
- package/dist/cli-tui/commands/background-handlers.js.map +0 -1
- package/dist/cli-tui/commands/command-catalog.d.ts +0 -29
- package/dist/cli-tui/commands/command-catalog.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-catalog.js +0 -666
- package/dist/cli-tui/commands/command-catalog.js.map +0 -1
- package/dist/cli-tui/commands/command-registry-adapter.d.ts +0 -12
- package/dist/cli-tui/commands/command-registry-adapter.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-registry-adapter.js +0 -129
- package/dist/cli-tui/commands/command-registry-adapter.js.map +0 -1
- package/dist/cli-tui/commands/command-suite-catalog.d.ts +0 -14
- package/dist/cli-tui/commands/command-suite-catalog.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-suite-catalog.js +0 -147
- package/dist/cli-tui/commands/command-suite-catalog.js.map +0 -1
- package/dist/cli-tui/commands/command-suite-handlers.d.ts +0 -111
- package/dist/cli-tui/commands/command-suite-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-suite-handlers.js +0 -110
- package/dist/cli-tui/commands/command-suite-handlers.js.map +0 -1
- package/dist/cli-tui/commands/composer-handlers.d.ts +0 -8
- package/dist/cli-tui/commands/composer-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/composer-handlers.js +0 -90
- package/dist/cli-tui/commands/composer-handlers.js.map +0 -1
- package/dist/cli-tui/commands/framework-handlers.d.ts +0 -18
- package/dist/cli-tui/commands/framework-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/framework-handlers.js +0 -57
- package/dist/cli-tui/commands/framework-handlers.js.map +0 -1
- package/dist/cli-tui/commands/guardian-handlers.d.ts +0 -20
- package/dist/cli-tui/commands/guardian-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/guardian-handlers.js +0 -48
- package/dist/cli-tui/commands/guardian-handlers.js.map +0 -1
- package/dist/cli-tui/commands/handlers/mode-handler.d.ts +0 -32
- package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +0 -1
- package/dist/cli-tui/commands/handlers/mode-handler.js +0 -153
- package/dist/cli-tui/commands/handlers/mode-handler.js.map +0 -1
- package/dist/cli-tui/commands/hotkeys-command.d.ts +0 -8
- package/dist/cli-tui/commands/hotkeys-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/hotkeys-command.js +0 -61
- package/dist/cli-tui/commands/hotkeys-command.js.map +0 -1
- package/dist/cli-tui/commands/limits-command.d.ts +0 -3
- package/dist/cli-tui/commands/limits-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/limits-command.js +0 -88
- package/dist/cli-tui/commands/limits-command.js.map +0 -1
- package/dist/cli-tui/commands/mcp-handlers.d.ts +0 -12
- package/dist/cli-tui/commands/mcp-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/mcp-handlers.js +0 -1306
- package/dist/cli-tui/commands/mcp-handlers.js.map +0 -1
- package/dist/cli-tui/commands/memory-handlers.d.ts +0 -28
- package/dist/cli-tui/commands/memory-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/memory-handlers.js +0 -414
- package/dist/cli-tui/commands/memory-handlers.js.map +0 -1
- package/dist/cli-tui/commands/otel-handlers.d.ts +0 -11
- package/dist/cli-tui/commands/otel-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/otel-handlers.js +0 -20
- package/dist/cli-tui/commands/otel-handlers.js.map +0 -1
- package/dist/cli-tui/commands/package-handlers.d.ts +0 -30
- package/dist/cli-tui/commands/package-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/package-handlers.js +0 -499
- package/dist/cli-tui/commands/package-handlers.js.map +0 -1
- package/dist/cli-tui/commands/pii-command.d.ts +0 -3
- package/dist/cli-tui/commands/pii-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/pii-command.js +0 -54
- package/dist/cli-tui/commands/pii-command.js.map +0 -1
- package/dist/cli-tui/commands/registry.d.ts +0 -3
- package/dist/cli-tui/commands/registry.d.ts.map +0 -1
- package/dist/cli-tui/commands/registry.js +0 -36
- package/dist/cli-tui/commands/registry.js.map +0 -1
- package/dist/cli-tui/commands/safety-handlers.d.ts +0 -36
- package/dist/cli-tui/commands/safety-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/safety-handlers.js +0 -62
- package/dist/cli-tui/commands/safety-handlers.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts +0 -26
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.js +0 -79
- package/dist/cli-tui/commands/subcommands/auth-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/config-commands.d.ts +0 -23
- package/dist/cli-tui/commands/subcommands/config-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/config-commands.js +0 -61
- package/dist/cli-tui/commands/subcommands/config-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/diag-commands.d.ts +0 -46
- package/dist/cli-tui/commands/subcommands/diag-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/diag-commands.js +0 -163
- package/dist/cli-tui/commands/subcommands/diag-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/git-commands.d.ts +0 -18
- package/dist/cli-tui/commands/subcommands/git-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/git-commands.js +0 -50
- package/dist/cli-tui/commands/subcommands/git-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/index.d.ts +0 -18
- package/dist/cli-tui/commands/subcommands/index.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/index.js +0 -18
- package/dist/cli-tui/commands/subcommands/index.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/safety-commands.d.ts +0 -26
- package/dist/cli-tui/commands/subcommands/safety-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/safety-commands.js +0 -149
- package/dist/cli-tui/commands/subcommands/safety-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/session-commands.d.ts +0 -36
- package/dist/cli-tui/commands/subcommands/session-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/session-commands.js +0 -112
- package/dist/cli-tui/commands/subcommands/session-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/tools-commands.d.ts +0 -27
- package/dist/cli-tui/commands/subcommands/tools-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/tools-commands.js +0 -80
- package/dist/cli-tui/commands/subcommands/tools-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.d.ts +0 -30
- package/dist/cli-tui/commands/subcommands/ui-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.js +0 -74
- package/dist/cli-tui/commands/subcommands/ui-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/undo-commands.d.ts +0 -25
- package/dist/cli-tui/commands/subcommands/undo-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/undo-commands.js +0 -74
- package/dist/cli-tui/commands/subcommands/undo-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/usage-commands.d.ts +0 -19
- package/dist/cli-tui/commands/subcommands/usage-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/usage-commands.js +0 -63
- package/dist/cli-tui/commands/subcommands/usage-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/utils.d.ts +0 -127
- package/dist/cli-tui/commands/subcommands/utils.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/utils.js +0 -395
- package/dist/cli-tui/commands/subcommands/utils.js.map +0 -1
- package/dist/cli-tui/commands/types.d.ts +0 -105
- package/dist/cli-tui/commands/types.d.ts.map +0 -1
- package/dist/cli-tui/commands/types.js +0 -2
- package/dist/cli-tui/commands/types.js.map +0 -1
- package/dist/cli-tui/commands/undo-handlers.d.ts +0 -29
- package/dist/cli-tui/commands/undo-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/undo-handlers.js +0 -300
- package/dist/cli-tui/commands/undo-handlers.js.map +0 -1
- package/dist/cli-tui/commands/utility-handlers.d.ts +0 -55
- package/dist/cli-tui/commands/utility-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/utility-handlers.js +0 -137
- package/dist/cli-tui/commands/utility-handlers.js.map +0 -1
- package/dist/cli-tui/commands/workflow-handlers.d.ts +0 -22
- package/dist/cli-tui/commands/workflow-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/workflow-handlers.js +0 -227
- package/dist/cli-tui/commands/workflow-handlers.js.map +0 -1
- package/dist/cli-tui/compact-boundary-message.d.ts +0 -9
- package/dist/cli-tui/compact-boundary-message.d.ts.map +0 -1
- package/dist/cli-tui/compact-boundary-message.js +0 -18
- package/dist/cli-tui/compact-boundary-message.js.map +0 -1
- package/dist/cli-tui/compaction-recovery.d.ts +0 -6
- package/dist/cli-tui/compaction-recovery.d.ts.map +0 -1
- package/dist/cli-tui/compaction-recovery.js +0 -13
- package/dist/cli-tui/compaction-recovery.js.map +0 -1
- package/dist/cli-tui/config-view.d.ts +0 -30
- package/dist/cli-tui/config-view.d.ts.map +0 -1
- package/dist/cli-tui/config-view.js +0 -255
- package/dist/cli-tui/config-view.js.map +0 -1
- package/dist/cli-tui/context-view.d.ts +0 -20
- package/dist/cli-tui/context-view.d.ts.map +0 -1
- package/dist/cli-tui/context-view.js +0 -191
- package/dist/cli-tui/context-view.js.map +0 -1
- package/dist/cli-tui/custom-editor.d.ts +0 -25
- package/dist/cli-tui/custom-editor.d.ts.map +0 -1
- package/dist/cli-tui/custom-editor.js +0 -241
- package/dist/cli-tui/custom-editor.js.map +0 -1
- package/dist/cli-tui/editor-view.d.ts +0 -34
- package/dist/cli-tui/editor-view.d.ts.map +0 -1
- package/dist/cli-tui/editor-view.js +0 -102
- package/dist/cli-tui/editor-view.js.map +0 -1
- package/dist/cli-tui/feedback-view.d.ts +0 -35
- package/dist/cli-tui/feedback-view.d.ts.map +0 -1
- package/dist/cli-tui/feedback-view.js +0 -271
- package/dist/cli-tui/feedback-view.js.map +0 -1
- package/dist/cli-tui/footer.d.ts +0 -56
- package/dist/cli-tui/footer.d.ts.map +0 -1
- package/dist/cli-tui/footer.js +0 -228
- package/dist/cli-tui/footer.js.map +0 -1
- package/dist/cli-tui/git/commit-modal.d.ts +0 -14
- package/dist/cli-tui/git/commit-modal.d.ts.map +0 -1
- package/dist/cli-tui/git/commit-modal.js +0 -56
- package/dist/cli-tui/git/commit-modal.js.map +0 -1
- package/dist/cli-tui/git/git-preview-modal.d.ts +0 -40
- package/dist/cli-tui/git/git-preview-modal.d.ts.map +0 -1
- package/dist/cli-tui/git/git-preview-modal.js +0 -123
- package/dist/cli-tui/git/git-preview-modal.js.map +0 -1
- package/dist/cli-tui/git/git-view.d.ts +0 -65
- package/dist/cli-tui/git/git-view.d.ts.map +0 -1
- package/dist/cli-tui/git/git-view.js +0 -529
- package/dist/cli-tui/git/git-view.js.map +0 -1
- package/dist/cli-tui/history/history-config.d.ts +0 -7
- package/dist/cli-tui/history/history-config.d.ts.map +0 -1
- package/dist/cli-tui/history/history-config.js +0 -49
- package/dist/cli-tui/history/history-config.js.map +0 -1
- package/dist/cli-tui/history/prompt-history.d.ts +0 -33
- package/dist/cli-tui/history/prompt-history.d.ts.map +0 -1
- package/dist/cli-tui/history/prompt-history.js +0 -185
- package/dist/cli-tui/history/prompt-history.js.map +0 -1
- package/dist/cli-tui/history/tool-history.d.ts +0 -50
- package/dist/cli-tui/history/tool-history.d.ts.map +0 -1
- package/dist/cli-tui/history/tool-history.js +0 -253
- package/dist/cli-tui/history/tool-history.js.map +0 -1
- package/dist/cli-tui/hook-message.d.ts +0 -13
- package/dist/cli-tui/hook-message.d.ts.map +0 -1
- package/dist/cli-tui/hook-message.js +0 -56
- package/dist/cli-tui/hook-message.js.map +0 -1
- package/dist/cli-tui/hooks/hook-input-modal.d.ts +0 -22
- package/dist/cli-tui/hooks/hook-input-modal.d.ts.map +0 -1
- package/dist/cli-tui/hooks/hook-input-modal.js +0 -63
- package/dist/cli-tui/hooks/hook-input-modal.js.map +0 -1
- package/dist/cli-tui/hotkeys-view.d.ts +0 -13
- package/dist/cli-tui/hotkeys-view.d.ts.map +0 -1
- package/dist/cli-tui/hotkeys-view.js +0 -96
- package/dist/cli-tui/hotkeys-view.js.map +0 -1
- package/dist/cli-tui/import-view.d.ts +0 -28
- package/dist/cli-tui/import-view.d.ts.map +0 -1
- package/dist/cli-tui/import-view.js +0 -184
- package/dist/cli-tui/import-view.js.map +0 -1
- package/dist/cli-tui/info-view.d.ts +0 -18
- package/dist/cli-tui/info-view.d.ts.map +0 -1
- package/dist/cli-tui/info-view.js +0 -107
- package/dist/cli-tui/info-view.js.map +0 -1
- package/dist/cli-tui/instruction-panel.d.ts +0 -11
- package/dist/cli-tui/instruction-panel.d.ts.map +0 -1
- package/dist/cli-tui/instruction-panel.js +0 -86
- package/dist/cli-tui/instruction-panel.js.map +0 -1
- package/dist/cli-tui/interrupt-controller.d.ts +0 -78
- package/dist/cli-tui/interrupt-controller.d.ts.map +0 -1
- package/dist/cli-tui/interrupt-controller.js +0 -104
- package/dist/cli-tui/interrupt-controller.js.map +0 -1
- package/dist/cli-tui/keybindings-config.d.ts +0 -27
- package/dist/cli-tui/keybindings-config.d.ts.map +0 -1
- package/dist/cli-tui/keybindings-config.js +0 -372
- package/dist/cli-tui/keybindings-config.js.map +0 -1
- package/dist/cli-tui/keybindings-watcher.d.ts +0 -8
- package/dist/cli-tui/keybindings-watcher.d.ts.map +0 -1
- package/dist/cli-tui/keybindings-watcher.js +0 -56
- package/dist/cli-tui/keybindings-watcher.js.map +0 -1
- package/dist/cli-tui/keybindings.d.ts +0 -13
- package/dist/cli-tui/keybindings.d.ts.map +0 -1
- package/dist/cli-tui/keybindings.js +0 -223
- package/dist/cli-tui/keybindings.js.map +0 -1
- package/dist/cli-tui/loader/loader-stage-manager.d.ts +0 -43
- package/dist/cli-tui/loader/loader-stage-manager.d.ts.map +0 -1
- package/dist/cli-tui/loader/loader-stage-manager.js +0 -241
- package/dist/cli-tui/loader/loader-stage-manager.js.map +0 -1
- package/dist/cli-tui/loader/loader-stage-telemetry.d.ts +0 -14
- package/dist/cli-tui/loader/loader-stage-telemetry.d.ts.map +0 -1
- package/dist/cli-tui/loader/loader-stage-telemetry.js +0 -34
- package/dist/cli-tui/loader/loader-stage-telemetry.js.map +0 -1
- package/dist/cli-tui/loader/loader-view.d.ts +0 -41
- package/dist/cli-tui/loader/loader-view.d.ts.map +0 -1
- package/dist/cli-tui/loader/loader-view.js +0 -162
- package/dist/cli-tui/loader/loader-view.js.map +0 -1
- package/dist/cli-tui/lsp-view.d.ts +0 -21
- package/dist/cli-tui/lsp-view.d.ts.map +0 -1
- package/dist/cli-tui/lsp-view.js +0 -183
- package/dist/cli-tui/lsp-view.js.map +0 -1
- package/dist/cli-tui/mermaid-renderer.d.ts +0 -2
- package/dist/cli-tui/mermaid-renderer.d.ts.map +0 -1
- package/dist/cli-tui/mermaid-renderer.js +0 -391
- package/dist/cli-tui/mermaid-renderer.js.map +0 -1
- package/dist/cli-tui/message-view.d.ts +0 -27
- package/dist/cli-tui/message-view.d.ts.map +0 -1
- package/dist/cli-tui/message-view.js +0 -169
- package/dist/cli-tui/message-view.js.map +0 -1
- package/dist/cli-tui/modal-manager.d.ts +0 -77
- package/dist/cli-tui/modal-manager.d.ts.map +0 -1
- package/dist/cli-tui/modal-manager.js +0 -131
- package/dist/cli-tui/modal-manager.js.map +0 -1
- package/dist/cli-tui/notification-view.d.ts +0 -16
- package/dist/cli-tui/notification-view.d.ts.map +0 -1
- package/dist/cli-tui/notification-view.js +0 -53
- package/dist/cli-tui/notification-view.js.map +0 -1
- package/dist/cli-tui/oauth/index.d.ts +0 -2
- package/dist/cli-tui/oauth/index.d.ts.map +0 -1
- package/dist/cli-tui/oauth/index.js +0 -2
- package/dist/cli-tui/oauth/index.js.map +0 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts +0 -65
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +0 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.js +0 -400
- package/dist/cli-tui/oauth/oauth-flow-controller.js.map +0 -1
- package/dist/cli-tui/ollama-view.d.ts +0 -38
- package/dist/cli-tui/ollama-view.d.ts.map +0 -1
- package/dist/cli-tui/ollama-view.js +0 -395
- package/dist/cli-tui/ollama-view.js.map +0 -1
- package/dist/cli-tui/paste/index.d.ts +0 -2
- package/dist/cli-tui/paste/index.d.ts.map +0 -1
- package/dist/cli-tui/paste/index.js +0 -2
- package/dist/cli-tui/paste/index.js.map +0 -1
- package/dist/cli-tui/paste/paste-handler.d.ts +0 -54
- package/dist/cli-tui/paste/paste-handler.d.ts.map +0 -1
- package/dist/cli-tui/paste/paste-handler.js +0 -128
- package/dist/cli-tui/paste/paste-handler.js.map +0 -1
- package/dist/cli-tui/plan/plan-controller.d.ts +0 -28
- package/dist/cli-tui/plan/plan-controller.d.ts.map +0 -1
- package/dist/cli-tui/plan/plan-controller.js +0 -66
- package/dist/cli-tui/plan/plan-controller.js.map +0 -1
- package/dist/cli-tui/plan-panel-modal.d.ts +0 -28
- package/dist/cli-tui/plan-panel-modal.d.ts.map +0 -1
- package/dist/cli-tui/plan-panel-modal.js +0 -193
- package/dist/cli-tui/plan-panel-modal.js.map +0 -1
- package/dist/cli-tui/plan-view.d.ts +0 -57
- package/dist/cli-tui/plan-view.d.ts.map +0 -1
- package/dist/cli-tui/plan-view.js +0 -404
- package/dist/cli-tui/plan-view.js.map +0 -1
- package/dist/cli-tui/prompt-queue.d.ts.map +0 -1
- package/dist/cli-tui/prompt-queue.js.map +0 -1
- package/dist/cli-tui/queue/follow-up-shortcut.d.ts +0 -6
- package/dist/cli-tui/queue/follow-up-shortcut.d.ts.map +0 -1
- package/dist/cli-tui/queue/follow-up-shortcut.js +0 -12
- package/dist/cli-tui/queue/follow-up-shortcut.js.map +0 -1
- package/dist/cli-tui/queue/index.d.ts +0 -3
- package/dist/cli-tui/queue/index.d.ts.map +0 -1
- package/dist/cli-tui/queue/index.js +0 -3
- package/dist/cli-tui/queue/index.js.map +0 -1
- package/dist/cli-tui/queue/queue-controller.d.ts +0 -109
- package/dist/cli-tui/queue/queue-controller.d.ts.map +0 -1
- package/dist/cli-tui/queue/queue-controller.js +0 -327
- package/dist/cli-tui/queue/queue-controller.js.map +0 -1
- package/dist/cli-tui/queue/queue-panel-controller.d.ts +0 -34
- package/dist/cli-tui/queue/queue-panel-controller.d.ts.map +0 -1
- package/dist/cli-tui/queue/queue-panel-controller.js +0 -163
- package/dist/cli-tui/queue/queue-panel-controller.js.map +0 -1
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts +0 -7
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts.map +0 -1
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.js +0 -14
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.js.map +0 -1
- package/dist/cli-tui/queue-panel-modal.d.ts +0 -26
- package/dist/cli-tui/queue-panel-modal.d.ts.map +0 -1
- package/dist/cli-tui/queue-panel-modal.js +0 -159
- package/dist/cli-tui/queue-panel-modal.js.map +0 -1
- package/dist/cli-tui/run/run-command-view.d.ts +0 -17
- package/dist/cli-tui/run/run-command-view.d.ts.map +0 -1
- package/dist/cli-tui/run/run-command-view.js +0 -62
- package/dist/cli-tui/run/run-command-view.js.map +0 -1
- package/dist/cli-tui/run/run-controller.d.ts +0 -24
- package/dist/cli-tui/run/run-controller.d.ts.map +0 -1
- package/dist/cli-tui/run/run-controller.js +0 -38
- package/dist/cli-tui/run/run-controller.js.map +0 -1
- package/dist/cli-tui/run/run-shell-command.d.ts +0 -13
- package/dist/cli-tui/run/run-shell-command.d.ts.map +0 -1
- package/dist/cli-tui/run/run-shell-command.js +0 -51
- package/dist/cli-tui/run/run-shell-command.js.map +0 -1
- package/dist/cli-tui/run/streaming-shell-command.d.ts +0 -19
- package/dist/cli-tui/run/streaming-shell-command.d.ts.map +0 -1
- package/dist/cli-tui/run/streaming-shell-command.js +0 -107
- package/dist/cli-tui/run/streaming-shell-command.js.map +0 -1
- package/dist/cli-tui/search/file-search-view.d.ts +0 -22
- package/dist/cli-tui/search/file-search-view.d.ts.map +0 -1
- package/dist/cli-tui/search/file-search-view.js +0 -68
- package/dist/cli-tui/search/file-search-view.js.map +0 -1
- package/dist/cli-tui/search/file-search.d.ts +0 -13
- package/dist/cli-tui/search/file-search.d.ts.map +0 -1
- package/dist/cli-tui/search/file-search.js +0 -52
- package/dist/cli-tui/search/file-search.js.map +0 -1
- package/dist/cli-tui/security-status.d.ts +0 -83
- package/dist/cli-tui/security-status.d.ts.map +0 -1
- package/dist/cli-tui/security-status.js +0 -214
- package/dist/cli-tui/security-status.js.map +0 -1
- package/dist/cli-tui/selectors/base-selector.d.ts +0 -27
- package/dist/cli-tui/selectors/base-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/base-selector.js +0 -47
- package/dist/cli-tui/selectors/base-selector.js.map +0 -1
- package/dist/cli-tui/selectors/branch-summary-modal.d.ts +0 -18
- package/dist/cli-tui/selectors/branch-summary-modal.d.ts.map +0 -1
- package/dist/cli-tui/selectors/branch-summary-modal.js +0 -24
- package/dist/cli-tui/selectors/branch-summary-modal.js.map +0 -1
- package/dist/cli-tui/selectors/model-selector-view.d.ts +0 -22
- package/dist/cli-tui/selectors/model-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/model-selector-view.js +0 -31
- package/dist/cli-tui/selectors/model-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/model-selector.d.ts +0 -30
- package/dist/cli-tui/selectors/model-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/model-selector.js +0 -218
- package/dist/cli-tui/selectors/model-selector.js.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector-view.d.ts +0 -20
- package/dist/cli-tui/selectors/oauth-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector-view.js +0 -28
- package/dist/cli-tui/selectors/oauth-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector.d.ts +0 -19
- package/dist/cli-tui/selectors/oauth-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector.js +0 -120
- package/dist/cli-tui/selectors/oauth-selector.js.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts +0 -19
- package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector-view.js +0 -29
- package/dist/cli-tui/selectors/queue-mode-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector.d.ts +0 -5
- package/dist/cli-tui/selectors/queue-mode-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector.js +0 -34
- package/dist/cli-tui/selectors/queue-mode-selector.js.map +0 -1
- package/dist/cli-tui/selectors/report-selector-view.d.ts +0 -17
- package/dist/cli-tui/selectors/report-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/report-selector-view.js +0 -29
- package/dist/cli-tui/selectors/report-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/report-selector.d.ts +0 -7
- package/dist/cli-tui/selectors/report-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/report-selector.js +0 -31
- package/dist/cli-tui/selectors/report-selector.js.map +0 -1
- package/dist/cli-tui/selectors/theme-selector-view.d.ts +0 -19
- package/dist/cli-tui/selectors/theme-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/theme-selector-view.js +0 -41
- package/dist/cli-tui/selectors/theme-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/theme-selector.d.ts +0 -14
- package/dist/cli-tui/selectors/theme-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/theme-selector.js +0 -46
- package/dist/cli-tui/selectors/theme-selector.js.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector-view.d.ts +0 -20
- package/dist/cli-tui/selectors/thinking-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector-view.js +0 -31
- package/dist/cli-tui/selectors/thinking-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector.d.ts +0 -9
- package/dist/cli-tui/selectors/thinking-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector.js +0 -47
- package/dist/cli-tui/selectors/thinking-selector.js.map +0 -1
- package/dist/cli-tui/selectors/tree-selector-view.d.ts +0 -32
- package/dist/cli-tui/selectors/tree-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/tree-selector-view.js +0 -407
- package/dist/cli-tui/selectors/tree-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/tree-selector.d.ts +0 -27
- package/dist/cli-tui/selectors/tree-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/tree-selector.js +0 -194
- package/dist/cli-tui/selectors/tree-selector.js.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector-view.d.ts +0 -25
- package/dist/cli-tui/selectors/user-message-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector-view.js +0 -101
- package/dist/cli-tui/selectors/user-message-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector.d.ts +0 -30
- package/dist/cli-tui/selectors/user-message-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector.js +0 -114
- package/dist/cli-tui/selectors/user-message-selector.js.map +0 -1
- package/dist/cli-tui/session/branch-controller.d.ts +0 -65
- package/dist/cli-tui/session/branch-controller.d.ts.map +0 -1
- package/dist/cli-tui/session/branch-controller.js +0 -125
- package/dist/cli-tui/session/branch-controller.js.map +0 -1
- package/dist/cli-tui/session/conversation-compactor.d.ts +0 -64
- package/dist/cli-tui/session/conversation-compactor.d.ts.map +0 -1
- package/dist/cli-tui/session/conversation-compactor.js +0 -77
- package/dist/cli-tui/session/conversation-compactor.js.map +0 -1
- package/dist/cli-tui/session/session-context.d.ts +0 -59
- package/dist/cli-tui/session/session-context.d.ts.map +0 -1
- package/dist/cli-tui/session/session-context.js +0 -79
- package/dist/cli-tui/session/session-context.js.map +0 -1
- package/dist/cli-tui/session/session-data-provider.d.ts +0 -23
- package/dist/cli-tui/session/session-data-provider.d.ts.map +0 -1
- package/dist/cli-tui/session/session-data-provider.js +0 -22
- package/dist/cli-tui/session/session-data-provider.js.map +0 -1
- package/dist/cli-tui/session/session-list.d.ts +0 -18
- package/dist/cli-tui/session/session-list.d.ts.map +0 -1
- package/dist/cli-tui/session/session-list.js +0 -103
- package/dist/cli-tui/session/session-list.js.map +0 -1
- package/dist/cli-tui/session/session-selector.d.ts +0 -12
- package/dist/cli-tui/session/session-selector.d.ts.map +0 -1
- package/dist/cli-tui/session/session-selector.js +0 -37
- package/dist/cli-tui/session/session-selector.js.map +0 -1
- package/dist/cli-tui/session/session-summary-controller.d.ts +0 -24
- package/dist/cli-tui/session/session-summary-controller.d.ts.map +0 -1
- package/dist/cli-tui/session/session-summary-controller.js +0 -96
- package/dist/cli-tui/session/session-summary-controller.js.map +0 -1
- package/dist/cli-tui/session/session-switcher-view.d.ts +0 -20
- package/dist/cli-tui/session/session-switcher-view.d.ts.map +0 -1
- package/dist/cli-tui/session/session-switcher-view.js +0 -43
- package/dist/cli-tui/session/session-switcher-view.js.map +0 -1
- package/dist/cli-tui/session/session-switcher.d.ts +0 -38
- package/dist/cli-tui/session/session-switcher.d.ts.map +0 -1
- package/dist/cli-tui/session/session-switcher.js +0 -204
- package/dist/cli-tui/session/session-switcher.js.map +0 -1
- package/dist/cli-tui/session/session-view.d.ts +0 -46
- package/dist/cli-tui/session/session-view.d.ts.map +0 -1
- package/dist/cli-tui/session/session-view.js +0 -311
- package/dist/cli-tui/session/session-view.js.map +0 -1
- package/dist/cli-tui/slash/index.d.ts +0 -2
- package/dist/cli-tui/slash/index.d.ts.map +0 -1
- package/dist/cli-tui/slash/index.js +0 -2
- package/dist/cli-tui/slash/index.js.map +0 -1
- package/dist/cli-tui/slash/slash-command-matcher.d.ts +0 -55
- package/dist/cli-tui/slash/slash-command-matcher.d.ts.map +0 -1
- package/dist/cli-tui/slash/slash-command-matcher.js +0 -113
- package/dist/cli-tui/slash/slash-command-matcher.js.map +0 -1
- package/dist/cli-tui/smart-autocomplete-provider.d.ts +0 -5
- package/dist/cli-tui/smart-autocomplete-provider.d.ts.map +0 -1
- package/dist/cli-tui/smart-autocomplete-provider.js +0 -44
- package/dist/cli-tui/smart-autocomplete-provider.js.map +0 -1
- package/dist/cli-tui/startup-announcements.d.ts +0 -15
- package/dist/cli-tui/startup-announcements.d.ts.map +0 -1
- package/dist/cli-tui/startup-announcements.js +0 -75
- package/dist/cli-tui/startup-announcements.js.map +0 -1
- package/dist/cli-tui/status/cost-view.d.ts +0 -27
- package/dist/cli-tui/status/cost-view.d.ts.map +0 -1
- package/dist/cli-tui/status/cost-view.js +0 -212
- package/dist/cli-tui/status/cost-view.js.map +0 -1
- package/dist/cli-tui/status/diagnostics-templates.d.ts +0 -34
- package/dist/cli-tui/status/diagnostics-templates.d.ts.map +0 -1
- package/dist/cli-tui/status/diagnostics-templates.js +0 -167
- package/dist/cli-tui/status/diagnostics-templates.js.map +0 -1
- package/dist/cli-tui/status/diagnostics-view.d.ts +0 -48
- package/dist/cli-tui/status/diagnostics-view.d.ts.map +0 -1
- package/dist/cli-tui/status/diagnostics-view.js +0 -249
- package/dist/cli-tui/status/diagnostics-view.js.map +0 -1
- package/dist/cli-tui/status/diagnostics.d.ts +0 -39
- package/dist/cli-tui/status/diagnostics.d.ts.map +0 -1
- package/dist/cli-tui/status/diagnostics.js +0 -286
- package/dist/cli-tui/status/diagnostics.js.map +0 -1
- package/dist/cli-tui/status/health-snapshot.d.ts +0 -17
- package/dist/cli-tui/status/health-snapshot.d.ts.map +0 -1
- package/dist/cli-tui/status/health-snapshot.js +0 -28
- package/dist/cli-tui/status/health-snapshot.js.map +0 -1
- package/dist/cli-tui/status/quota-view.d.ts +0 -37
- package/dist/cli-tui/status/quota-view.d.ts.map +0 -1
- package/dist/cli-tui/status/quota-view.js +0 -309
- package/dist/cli-tui/status/quota-view.js.map +0 -1
- package/dist/cli-tui/status/telemetry-view.d.ts +0 -23
- package/dist/cli-tui/status/telemetry-view.d.ts.map +0 -1
- package/dist/cli-tui/status/telemetry-view.js +0 -77
- package/dist/cli-tui/status/telemetry-view.js.map +0 -1
- package/dist/cli-tui/status/training-view.d.ts +0 -23
- package/dist/cli-tui/status/training-view.d.ts.map +0 -1
- package/dist/cli-tui/status/training-view.js +0 -71
- package/dist/cli-tui/status/training-view.js.map +0 -1
- package/dist/cli-tui/streaming-view.d.ts +0 -43
- package/dist/cli-tui/streaming-view.d.ts.map +0 -1
- package/dist/cli-tui/streaming-view.js +0 -176
- package/dist/cli-tui/streaming-view.js.map +0 -1
- package/dist/cli-tui/terminal/index.d.ts +0 -2
- package/dist/cli-tui/terminal/index.d.ts.map +0 -1
- package/dist/cli-tui/terminal/index.js +0 -2
- package/dist/cli-tui/terminal/index.js.map +0 -1
- package/dist/cli-tui/terminal/terminal-utils.d.ts +0 -44
- package/dist/cli-tui/terminal/terminal-utils.d.ts.map +0 -1
- package/dist/cli-tui/terminal/terminal-utils.js +0 -145
- package/dist/cli-tui/terminal/terminal-utils.js.map +0 -1
- package/dist/cli-tui/tips/tip-scheduler.d.ts +0 -19
- package/dist/cli-tui/tips/tip-scheduler.d.ts.map +0 -1
- package/dist/cli-tui/tips/tip-scheduler.js +0 -135
- package/dist/cli-tui/tips/tip-scheduler.js.map +0 -1
- package/dist/cli-tui/tool-execution.d.ts +0 -76
- package/dist/cli-tui/tool-execution.d.ts.map +0 -1
- package/dist/cli-tui/tool-execution.js +0 -217
- package/dist/cli-tui/tool-execution.js.map +0 -1
- package/dist/cli-tui/tool-output-view.d.ts +0 -22
- package/dist/cli-tui/tool-output-view.d.ts.map +0 -1
- package/dist/cli-tui/tool-output-view.js +0 -71
- package/dist/cli-tui/tool-output-view.js.map +0 -1
- package/dist/cli-tui/tool-renderers/index.d.ts +0 -4
- package/dist/cli-tui/tool-renderers/index.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/index.js +0 -19
- package/dist/cli-tui/tool-renderers/index.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-bash.d.ts +0 -6
- package/dist/cli-tui/tool-renderers/render-bash.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-bash.js +0 -90
- package/dist/cli-tui/tool-renderers/render-bash.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-batch.d.ts +0 -12
- package/dist/cli-tui/tool-renderers/render-batch.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-batch.js +0 -133
- package/dist/cli-tui/tool-renderers/render-batch.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-edit.d.ts +0 -6
- package/dist/cli-tui/tool-renderers/render-edit.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-edit.js +0 -125
- package/dist/cli-tui/tool-renderers/render-edit.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-generic.d.ts +0 -6
- package/dist/cli-tui/tool-renderers/render-generic.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-generic.js +0 -66
- package/dist/cli-tui/tool-renderers/render-generic.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-read.d.ts +0 -9
- package/dist/cli-tui/tool-renderers/render-read.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-read.js +0 -108
- package/dist/cli-tui/tool-renderers/render-read.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-style.d.ts +0 -21
- package/dist/cli-tui/tool-renderers/render-style.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-style.js +0 -51
- package/dist/cli-tui/tool-renderers/render-style.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-write.d.ts +0 -5
- package/dist/cli-tui/tool-renderers/render-write.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-write.js +0 -60
- package/dist/cli-tui/tool-renderers/render-write.js.map +0 -1
- package/dist/cli-tui/tool-renderers/types.d.ts +0 -20
- package/dist/cli-tui/tool-renderers/types.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/types.js +0 -2
- package/dist/cli-tui/tool-renderers/types.js.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts +0 -29
- package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-controller.js +0 -110
- package/dist/cli-tui/tool-retry/tool-retry-controller.js.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts +0 -27
- package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-modal.js +0 -118
- package/dist/cli-tui/tool-retry/tool-retry-modal.js.map +0 -1
- package/dist/cli-tui/tool-status-view.d.ts +0 -32
- package/dist/cli-tui/tool-status-view.d.ts.map +0 -1
- package/dist/cli-tui/tool-status-view.js +0 -86
- package/dist/cli-tui/tool-status-view.js.map +0 -1
- package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts +0 -59
- package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/agent-event-bridge.js +0 -129
- package/dist/cli-tui/tui-renderer/agent-event-bridge.js.map +0 -1
- package/dist/cli-tui/tui-renderer/approval-setup.d.ts +0 -13
- package/dist/cli-tui/tui-renderer/approval-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/approval-setup.js +0 -5
- package/dist/cli-tui/tui-renderer/approval-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/attachment-controller.d.ts +0 -54
- package/dist/cli-tui/tui-renderer/attachment-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/attachment-controller.js +0 -160
- package/dist/cli-tui/tui-renderer/attachment-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts +0 -9
- package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/background-tasks-setup.js +0 -7
- package/dist/cli-tui/tui-renderer/background-tasks-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/branch-controller.d.ts +0 -41
- package/dist/cli-tui/tui-renderer/branch-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/branch-controller.js +0 -102
- package/dist/cli-tui/tui-renderer/branch-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/clear-controller.d.ts +0 -75
- package/dist/cli-tui/tui-renderer/clear-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/clear-controller.js +0 -75
- package/dist/cli-tui/tui-renderer/clear-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts +0 -14
- package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/client-tools-setup.js +0 -5
- package/dist/cli-tui/tui-renderer/client-tools-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts +0 -111
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.js +0 -163
- package/dist/cli-tui/tui-renderer/command-registry-options.js.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry.d.ts +0 -16
- package/dist/cli-tui/tui-renderer/command-registry.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry.js +0 -23
- package/dist/cli-tui/tui-renderer/command-registry.js.map +0 -1
- package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts +0 -29
- package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/command-suite-wiring.js +0 -108
- package/dist/cli-tui/tui-renderer/command-suite-wiring.js.map +0 -1
- package/dist/cli-tui/tui-renderer/compaction-controller.d.ts +0 -100
- package/dist/cli-tui/tui-renderer/compaction-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/compaction-controller.js +0 -160
- package/dist/cli-tui/tui-renderer/compaction-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts +0 -42
- package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/custom-commands-controller.js +0 -106
- package/dist/cli-tui/tui-renderer/custom-commands-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts +0 -37
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.js +0 -139
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.js.map +0 -1
- package/dist/cli-tui/tui-renderer/editor-bindings.d.ts +0 -21
- package/dist/cli-tui/tui-renderer/editor-bindings.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/editor-bindings.js +0 -76
- package/dist/cli-tui/tui-renderer/editor-bindings.js.map +0 -1
- package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts +0 -90
- package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/footer-hints-controller.js +0 -152
- package/dist/cli-tui/tui-renderer/footer-hints-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/history-controller.d.ts +0 -35
- package/dist/cli-tui/tui-renderer/history-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/history-controller.js +0 -153
- package/dist/cli-tui/tui-renderer/history-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts +0 -83
- package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/hook-ui-controller.js +0 -309
- package/dist/cli-tui/tui-renderer/hook-ui-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/initial-preferences.d.ts +0 -19
- package/dist/cli-tui/tui-renderer/initial-preferences.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/initial-preferences.js +0 -54
- package/dist/cli-tui/tui-renderer/initial-preferences.js.map +0 -1
- package/dist/cli-tui/tui-renderer/input-controller.d.ts +0 -56
- package/dist/cli-tui/tui-renderer/input-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/input-controller.js +0 -104
- package/dist/cli-tui/tui-renderer/input-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts +0 -19
- package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/interrupt-setup.js +0 -18
- package/dist/cli-tui/tui-renderer/interrupt-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/loader-setup.d.ts +0 -14
- package/dist/cli-tui/tui-renderer/loader-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/loader-setup.js +0 -13
- package/dist/cli-tui/tui-renderer/loader-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts +0 -55
- package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/mcp-events-setup.js +0 -143
- package/dist/cli-tui/tui-renderer/mcp-events-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/misc-handlers.d.ts +0 -59
- package/dist/cli-tui/tui-renderer/misc-handlers.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/misc-handlers.js +0 -143
- package/dist/cli-tui/tui-renderer/misc-handlers.js.map +0 -1
- package/dist/cli-tui/tui-renderer/oauth-setup.d.ts +0 -14
- package/dist/cli-tui/tui-renderer/oauth-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/oauth-setup.js +0 -26
- package/dist/cli-tui/tui-renderer/oauth-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/plan-setup.d.ts +0 -19
- package/dist/cli-tui/tui-renderer/plan-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/plan-setup.js +0 -23
- package/dist/cli-tui/tui-renderer/plan-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts +0 -21
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js +0 -64
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js.map +0 -1
- package/dist/cli-tui/tui-renderer/queue-setup.d.ts +0 -18
- package/dist/cli-tui/tui-renderer/queue-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/queue-setup.js +0 -42
- package/dist/cli-tui/tui-renderer/queue-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts +0 -53
- package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/quick-settings-controller.js +0 -100
- package/dist/cli-tui/tui-renderer/quick-settings-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/session-setup.d.ts +0 -31
- package/dist/cli-tui/tui-renderer/session-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/session-setup.js +0 -45
- package/dist/cli-tui/tui-renderer/session-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/session-state-controller.d.ts +0 -66
- package/dist/cli-tui/tui-renderer/session-state-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/session-state-controller.js +0 -139
- package/dist/cli-tui/tui-renderer/session-state-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts +0 -70
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/skills-controller.js +0 -411
- package/dist/cli-tui/tui-renderer/skills-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts +0 -90
- package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/slash-hint-controller.js +0 -131
- package/dist/cli-tui/tui-renderer/slash-hint-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts +0 -13
- package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/tool-retry-setup.js +0 -5
- package/dist/cli-tui/tui-renderer/tool-retry-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts +0 -38
- package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/tooling-views-setup.js +0 -48
- package/dist/cli-tui/tui-renderer/tooling-views-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts +0 -70
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.js +0 -184
- package/dist/cli-tui/tui-renderer/ui-state-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts +0 -13
- package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-setup.js +0 -11
- package/dist/cli-tui/tui-renderer/ui-state-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts +0 -26
- package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/utility-views-setup.js +0 -23
- package/dist/cli-tui/tui-renderer/utility-views-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/viewport-controller.d.ts +0 -33
- package/dist/cli-tui/tui-renderer/viewport-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/viewport-controller.js +0 -98
- package/dist/cli-tui/tui-renderer/viewport-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer.d.ts +0 -268
- package/dist/cli-tui/tui-renderer.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer.js +0 -2131
- package/dist/cli-tui/tui-renderer.js.map +0 -1
- package/dist/cli-tui/ui-state.d.ts +0 -27
- package/dist/cli-tui/ui-state.d.ts.map +0 -1
- package/dist/cli-tui/ui-state.js +0 -88
- package/dist/cli-tui/ui-state.js.map +0 -1
- package/dist/cli-tui/update-view.d.ts +0 -16
- package/dist/cli-tui/update-view.d.ts.map +0 -1
- package/dist/cli-tui/update-view.js +0 -45
- package/dist/cli-tui/update-view.js.map +0 -1
- package/dist/cli-tui/user-message.d.ts +0 -17
- package/dist/cli-tui/user-message.d.ts.map +0 -1
- package/dist/cli-tui/user-message.js +0 -83
- package/dist/cli-tui/user-message.js.map +0 -1
- package/dist/cli-tui/utils/borders.d.ts +0 -131
- package/dist/cli-tui/utils/borders.d.ts.map +0 -1
- package/dist/cli-tui/utils/borders.js +0 -254
- package/dist/cli-tui/utils/borders.js.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette-view.d.ts +0 -22
- package/dist/cli-tui/utils/commands/command-palette-view.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette-view.js +0 -31
- package/dist/cli-tui/utils/commands/command-palette-view.js.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette.d.ts +0 -29
- package/dist/cli-tui/utils/commands/command-palette.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette.js +0 -213
- package/dist/cli-tui/utils/commands/command-palette.js.map +0 -1
- package/dist/cli-tui/utils/commands/command-registry-builder.d.ts +0 -8
- package/dist/cli-tui/utils/commands/command-registry-builder.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/command-registry-builder.js +0 -9
- package/dist/cli-tui/utils/commands/command-registry-builder.js.map +0 -1
- package/dist/cli-tui/utils/commands/review-prompt.d.ts +0 -10
- package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/review-prompt.js +0 -90
- package/dist/cli-tui/utils/commands/review-prompt.js.map +0 -1
- package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts +0 -15
- package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/slash-hint-bar.js +0 -106
- package/dist/cli-tui/utils/commands/slash-hint-bar.js.map +0 -1
- package/dist/cli-tui/utils/env-detect.d.ts +0 -11
- package/dist/cli-tui/utils/env-detect.d.ts.map +0 -1
- package/dist/cli-tui/utils/env-detect.js +0 -107
- package/dist/cli-tui/utils/env-detect.js.map +0 -1
- package/dist/cli-tui/utils/external-editor.d.ts +0 -7
- package/dist/cli-tui/utils/external-editor.d.ts.map +0 -1
- package/dist/cli-tui/utils/external-editor.js +0 -53
- package/dist/cli-tui/utils/external-editor.js.map +0 -1
- package/dist/cli-tui/utils/footer-utils.d.ts +0 -169
- package/dist/cli-tui/utils/footer-utils.d.ts.map +0 -1
- package/dist/cli-tui/utils/footer-utils.js +0 -716
- package/dist/cli-tui/utils/footer-utils.js.map +0 -1
- package/dist/cli-tui/utils/footer-visual-widgets.d.ts +0 -38
- package/dist/cli-tui/utils/footer-visual-widgets.d.ts.map +0 -1
- package/dist/cli-tui/utils/footer-visual-widgets.js +0 -141
- package/dist/cli-tui/utils/footer-visual-widgets.js.map +0 -1
- package/dist/cli-tui/utils/git-branch-tracker.d.ts +0 -38
- package/dist/cli-tui/utils/git-branch-tracker.d.ts.map +0 -1
- package/dist/cli-tui/utils/git-branch-tracker.js +0 -90
- package/dist/cli-tui/utils/git-branch-tracker.js.map +0 -1
- package/dist/cli-tui/utils/glyphs.d.ts +0 -207
- package/dist/cli-tui/utils/glyphs.d.ts.map +0 -1
- package/dist/cli-tui/utils/glyphs.js +0 -249
- package/dist/cli-tui/utils/glyphs.js.map +0 -1
- package/dist/cli-tui/utils/layout.d.ts +0 -77
- package/dist/cli-tui/utils/layout.d.ts.map +0 -1
- package/dist/cli-tui/utils/layout.js +0 -83
- package/dist/cli-tui/utils/layout.js.map +0 -1
- package/dist/cli-tui/utils/links.d.ts +0 -2
- package/dist/cli-tui/utils/links.d.ts.map +0 -1
- package/dist/cli-tui/utils/links.js +0 -14
- package/dist/cli-tui/utils/links.js.map +0 -1
- package/dist/cli-tui/utils/motion.d.ts +0 -4
- package/dist/cli-tui/utils/motion.d.ts.map +0 -1
- package/dist/cli-tui/utils/motion.js +0 -28
- package/dist/cli-tui/utils/motion.js.map +0 -1
- package/dist/cli-tui/utils/runtime-badges.d.ts +0 -26
- package/dist/cli-tui/utils/runtime-badges.d.ts.map +0 -1
- package/dist/cli-tui/utils/runtime-badges.js +0 -178
- package/dist/cli-tui/utils/runtime-badges.js.map +0 -1
- package/dist/cli-tui/utils/shimmer.d.ts +0 -12
- package/dist/cli-tui/utils/shimmer.d.ts.map +0 -1
- package/dist/cli-tui/utils/shimmer.js +0 -57
- package/dist/cli-tui/utils/shimmer.js.map +0 -1
- package/dist/cli-tui/utils/stage-labels.d.ts +0 -9
- package/dist/cli-tui/utils/stage-labels.d.ts.map +0 -1
- package/dist/cli-tui/utils/stage-labels.js +0 -65
- package/dist/cli-tui/utils/stage-labels.js.map +0 -1
- package/dist/cli-tui/utils/text-formatting.d.ts +0 -13
- package/dist/cli-tui/utils/text-formatting.d.ts.map +0 -1
- package/dist/cli-tui/utils/text-formatting.js +0 -109
- package/dist/cli-tui/utils/text-formatting.js.map +0 -1
- package/dist/cli-tui/utils/text-preview.d.ts +0 -10
- package/dist/cli-tui/utils/text-preview.d.ts.map +0 -1
- package/dist/cli-tui/utils/text-preview.js +0 -26
- package/dist/cli-tui/utils/text-preview.js.map +0 -1
- package/dist/cli-tui/utils/tool-text-utils.d.ts +0 -42
- package/dist/cli-tui/utils/tool-text-utils.d.ts.map +0 -1
- package/dist/cli-tui/utils/tool-text-utils.js +0 -361
- package/dist/cli-tui/utils/tool-text-utils.js.map +0 -1
- package/dist/cli-tui/welcome-animation.d.ts +0 -24
- package/dist/cli-tui/welcome-animation.d.ts.map +0 -1
- package/dist/cli-tui/welcome-animation.js +0 -99
- package/dist/cli-tui/welcome-animation.js.map +0 -1
- package/dist/cli-tui/welcome-colors.d.ts +0 -3
- package/dist/cli-tui/welcome-colors.d.ts.map +0 -1
- package/dist/cli-tui/welcome-colors.js +0 -39
- package/dist/cli-tui/welcome-colors.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts +0 -304
- package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/autocomplete.js +0 -712
- package/dist/node_modules/@evalops/tui/dist/autocomplete.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts +0 -185
- package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/editor.js +0 -1460
- package/dist/node_modules/@evalops/tui/dist/components/editor.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/input.d.ts +0 -117
- package/dist/node_modules/@evalops/tui/dist/components/input.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/input.js +0 -391
- package/dist/node_modules/@evalops/tui/dist/components/input.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts +0 -256
- package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/layout.js +0 -478
- package/dist/node_modules/@evalops/tui/dist/components/layout.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts +0 -199
- package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/loader.js +0 -374
- package/dist/node_modules/@evalops/tui/dist/components/loader.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts +0 -65
- package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/markdown.js +0 -562
- package/dist/node_modules/@evalops/tui/dist/components/markdown.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts +0 -262
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js +0 -575
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts +0 -131
- package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/select-list.js +0 -257
- package/dist/node_modules/@evalops/tui/dist/components/select-list.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts +0 -11
- package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/spacer.js +0 -19
- package/dist/node_modules/@evalops/tui/dist/components/spacer.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts +0 -22
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.js +0 -44
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/text.d.ts +0 -26
- package/dist/node_modules/@evalops/tui/dist/components/text.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/text.js +0 -181
- package/dist/node_modules/@evalops/tui/dist/components/text.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts +0 -15
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js +0 -84
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/index.d.ts +0 -87
- package/dist/node_modules/@evalops/tui/dist/index.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/index.js +0 -85
- package/dist/node_modules/@evalops/tui/dist/index.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/keymap.d.ts +0 -189
- package/dist/node_modules/@evalops/tui/dist/keymap.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/keymap.js +0 -363
- package/dist/node_modules/@evalops/tui/dist/keymap.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts +0 -25
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js +0 -828
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts +0 -40
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js +0 -474
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/terminal.d.ts +0 -201
- package/dist/node_modules/@evalops/tui/dist/terminal.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/terminal.js +0 -241
- package/dist/node_modules/@evalops/tui/dist/terminal.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/tui.d.ts +0 -263
- package/dist/node_modules/@evalops/tui/dist/tui.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/tui.js +0 -694
- package/dist/node_modules/@evalops/tui/dist/tui.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts +0 -14
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js +0 -44
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils.d.ts +0 -32
- package/dist/node_modules/@evalops/tui/dist/utils.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils.js +0 -556
- package/dist/node_modules/@evalops/tui/dist/utils.js.map +0 -1
- package/dist/node_modules/@evalops/tui/package.json +0 -58
- package/dist/skills/artifact-metadata.d.ts +0 -16
- package/dist/skills/artifact-metadata.d.ts.map +0 -1
- package/dist/skills/artifact-metadata.js +0 -86
- package/dist/skills/artifact-metadata.js.map +0 -1
- package/dist/skills/composer-diagnostics.d.ts +0 -69
- package/dist/skills/composer-diagnostics.d.ts.map +0 -1
- package/dist/skills/composer-diagnostics.js +0 -78
- package/dist/skills/composer-diagnostics.js.map +0 -1
- package/dist/skills/composer.d.ts +0 -19
- package/dist/skills/composer.d.ts.map +0 -1
- package/dist/skills/composer.js +0 -52
- package/dist/skills/composer.js.map +0 -1
- package/dist/skills/eval-harness.d.ts +0 -38
- package/dist/skills/eval-harness.d.ts.map +0 -1
- package/dist/skills/eval-harness.js +0 -112
- package/dist/skills/eval-harness.js.map +0 -1
- package/dist/skills/index.d.ts +0 -40
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/index.js +0 -40
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/linter.d.ts +0 -36
- package/dist/skills/linter.d.ts.map +0 -1
- package/dist/skills/linter.js +0 -399
- package/dist/skills/linter.js.map +0 -1
- package/dist/skills/loader.d.ts +0 -252
- package/dist/skills/loader.d.ts.map +0 -1
- package/dist/skills/loader.js +0 -957
- package/dist/skills/loader.js.map +0 -1
- package/dist/skills/package-contract.d.ts +0 -45
- package/dist/skills/package-contract.d.ts.map +0 -1
- package/dist/skills/package-contract.js +0 -153
- package/dist/skills/package-contract.js.map +0 -1
- package/dist/skills/runtime-activation.d.ts +0 -68
- package/dist/skills/runtime-activation.d.ts.map +0 -1
- package/dist/skills/runtime-activation.js +0 -228
- package/dist/skills/runtime-activation.js.map +0 -1
- package/dist/skills/scaffold-from-template.d.ts +0 -58
- package/dist/skills/scaffold-from-template.d.ts.map +0 -1
- package/dist/skills/scaffold-from-template.js +0 -72
- package/dist/skills/scaffold-from-template.js.map +0 -1
- package/dist/skills/scaffolder.d.ts +0 -65
- package/dist/skills/scaffolder.d.ts.map +0 -1
- package/dist/skills/scaffolder.js +0 -167
- package/dist/skills/scaffolder.js.map +0 -1
- package/dist/skills/service-client.d.ts +0 -56
- package/dist/skills/service-client.d.ts.map +0 -1
- package/dist/skills/service-client.js +0 -266
- package/dist/skills/service-client.js.map +0 -1
- package/dist/skills/skill-templates.d.ts +0 -70
- package/dist/skills/skill-templates.d.ts.map +0 -1
- package/dist/skills/skill-templates.js +0 -154
- package/dist/skills/skill-templates.js.map +0 -1
- package/dist/skills/tool.d.ts +0 -21
- package/dist/skills/tool.d.ts.map +0 -1
- package/dist/skills/tool.js +0 -334
- package/dist/skills/tool.js.map +0 -1
- package/dist/skills/trust-cache.d.ts +0 -58
- package/dist/skills/trust-cache.d.ts.map +0 -1
- package/dist/skills/trust-cache.js +0 -130
- package/dist/skills/trust-cache.js.map +0 -1
- package/dist/skills/types.d.ts +0 -91
- package/dist/skills/types.d.ts.map +0 -1
- package/dist/skills/types.js +0 -8
- package/dist/skills/types.js.map +0 -1
- /package/dist/{cli-tui → runtime}/prompt-queue.d.ts +0 -0
- /package/dist/{cli-tui → runtime}/prompt-queue.js +0 -0
package/dist/agent/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent Core - Event-Driven LLM Interaction Engine\n *\n * This module provides the central Agent class that orchestrates all LLM\n * communication, tool execution, and state management for the Maestro CLI.\n * It implements an event-driven architecture that enables real-time streaming,\n * concurrent tool execution, and extensible transport layers.\n *\n * ## Architecture Overview\n *\n * ```\n * ┌─────────────────────────────────────────────────────────────────────────┐\n * │ Agent │\n * │ ┌─────────────┐ ┌──────────────┐ ┌─────────────────────────────────┐ │\n * │ │ State │ │ Transport │ │ Context Sources │ │\n * │ │ - messages │ │ - Anthropic │ │ - TodoContextSource │ │\n * │ │ - model │ │ - OpenAI │ │ - BackgroundTaskContextSource │ │\n * │ │ - tools │ │ - Google │ │ - LspContextSource │ │\n * │ │ - streaming │ │ - Custom │ │ - FrameworkPreferenceContext │ │\n * │ └─────────────┘ └──────────────┘ └─────────────────────────────────┘ │\n * │ │ │ │ │\n * │ ▼ ▼ ▼ │\n * │ ┌─────────────────────────────────────────────────────────────────────┐│\n * │ │ Event Emitter ││\n * │ │ message_start, message_update, message_end, tool_execution_* ││\n * │ └─────────────────────────────────────────────────────────────────────┘│\n * │ │ │\n * └─────────────────────────────────┼────────────────────────────────────────┘\n * ▼\n * ┌───────────────────┐\n * │ Subscribers │\n * │ - TUI Renderer │\n * │ - Session Mgr │\n * │ - JSONL Writer │\n * └───────────────────┘\n * ```\n *\n * ## Event Flow\n *\n * When `agent.prompt()` is called, the following sequence occurs:\n *\n * 1. **agent_start**: Signals the beginning of a prompt cycle\n * 2. **message_start**: Message envelope begins (user or assistant)\n * 3. **message_end**: Message envelope completes (user or assistant)\n * 4. **content_block_delta**: Streaming text/thinking content\n * 5. **tool_execution_start**: Tool call initiated\n * 6. **tool_execution_end**: Tool call completed\n * 7. **message_update**: Partial message with accumulated content\n * 8. **agent_end**: Prompt cycle completed\n *\n * ## Message Transformation\n *\n * Messages are transformed through a pipeline before being sent to the LLM:\n *\n * 1. **App Messages**: Internal format with attachments, metadata\n * 2. **Message Transform**: Convert attachments to content blocks\n * 3. **Provider Normalization**: Adapt to target provider's format\n * 4. **System Prompt Injection**: Add context from context sources\n *\n * ## Thinking/Reasoning Support\n *\n * The agent supports extended thinking for compatible models:\n *\n * | Level | Description |\n * |---------|------------------------------------------|\n * | off | No extended thinking |\n * | minimal | Brief chain-of-thought |\n * | low | Short reasoning steps |\n * | medium | Moderate reasoning depth |\n * | high | Deep reasoning with exploration |\n * | max | Maximum reasoning effort |\n *\n * ## Abort and Partial Handling\n *\n * The agent supports graceful interruption:\n *\n * - `abort()`: Cancel current request, discard partial response\n * - `abortAndKeepPartial()`: Cancel but preserve partial content\n *\n * @module agent/agent\n */\n\nimport { validate as uuidValidate } from \"uuid\";\nimport {\n\tbuildDiagnosticRepairFollowUpMessage,\n\tgetDiagnosticDeltaFromToolResult,\n\thasDiagnosticRepairOptOut,\n} from \"../lsp/diagnostic-repair.js\";\nimport type { SkillArtifactMetadata } from \"../skills/artifact-metadata.js\";\nimport {\n\tprojectSafeToolCallArguments,\n\trecordMaestroEvalScored,\n\trecordMaestroSkillInvoked,\n\trecordMaestroSkillOutcome,\n\trecordMaestroToolCallAttempt,\n\trecordMaestroToolCallCompleted,\n} from \"../telemetry/maestro-event-bus.js\";\nimport { createQueryProfilerFromEnv } from \"../utils/checkpoint-profiler.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport { sanitizeWithStaticMask } from \"../utils/secret-redactor.js\";\nimport {\n\tdescribeToolActivity,\n\tdescribeToolDisplayName,\n\tsummarizeToolBatch,\n\tsummarizeToolUse,\n} from \"../utils/tool-use-summary.js\";\nimport {\n\tAgentContextManager,\n\ttype AgentContextSource,\n\ttype ContextLoadResult,\n} from \"./context-manager.js\";\nimport { isContextOverflow as isAssistantContextOverflow } from \"./context-overflow.js\";\nimport { convertAppMessagesToLlm, isCoreMessage } from \"./custom-messages.js\";\nimport {\n\ttype PreprocessMessagesFn,\n\tchainPreprocessMessages,\n\tdefaultPreprocessMessages,\n} from \"./preprocess-messages.js\";\nimport { isAssistantMessage } from \"./type-guards.js\";\nimport type {\n\tAgentEvent,\n\tAgentState,\n\tAgentTool,\n\tAgentTransport,\n\tApi,\n\tAppMessage,\n\tAssistantMessage,\n\tAttachment,\n\tImageContent,\n\tMessage,\n\tModel,\n\tQueuedMessage,\n\tReasoningEffort,\n\tStopReason,\n\tTextContent,\n\tThinkingLevel,\n\tToolResultMessage,\n\tUsage,\n\tUserMessage,\n\tUserMessageWithAttachments,\n} from \"./types.js\";\n\nconst logger = createLogger(\"agent\");\n\ntype ToolEvaluationSummary = {\n\tscore?: number;\n\tthreshold?: number;\n\tpassed?: boolean;\n\trationale?: string;\n\tassertionCount?: number;\n};\n\ntype SkillEvaluationFailure = {\n\ttoolCallId: string;\n\ttoolExecutionId?: string;\n\ttoolName?: string;\n\tscore?: number;\n\tthreshold?: number;\n\trationale?: string;\n\tassertionCount?: number;\n};\n\ntype CurrentTurnSkillSelection = {\n\tskillMetadata: SkillArtifactMetadata;\n\ttoolCallId: string;\n\ttoolExecutionId?: string;\n\tevaluationFailure?: SkillEvaluationFailure;\n};\n\nfunction getToolEvaluationSummary(\n\tdetails: unknown,\n): ToolEvaluationSummary | undefined {\n\tif (!details || typeof details !== \"object\" || Array.isArray(details)) {\n\t\treturn undefined;\n\t}\n\n\tconst normalized = details as {\n\t\tevaluation?: unknown;\n\t\tassertions?: unknown;\n\t};\n\tif (\n\t\t!normalized.evaluation ||\n\t\ttypeof normalized.evaluation !== \"object\" ||\n\t\tArray.isArray(normalized.evaluation)\n\t) {\n\t\treturn undefined;\n\t}\n\n\tconst evaluation = normalized.evaluation as Record<string, unknown>;\n\tconst summary: ToolEvaluationSummary = {};\n\tif (\n\t\ttypeof evaluation.score === \"number\" &&\n\t\tNumber.isFinite(evaluation.score)\n\t) {\n\t\tsummary.score = evaluation.score;\n\t}\n\tif (\n\t\ttypeof evaluation.threshold === \"number\" &&\n\t\tNumber.isFinite(evaluation.threshold)\n\t) {\n\t\tsummary.threshold = evaluation.threshold;\n\t}\n\tif (typeof evaluation.passed === \"boolean\") {\n\t\tsummary.passed = evaluation.passed;\n\t}\n\tif (\n\t\ttypeof evaluation.rationale === \"string\" &&\n\t\tevaluation.rationale.trim().length > 0\n\t) {\n\t\tsummary.rationale = evaluation.rationale.trim();\n\t}\n\tif (\n\t\tArray.isArray(normalized.assertions) &&\n\t\tnormalized.assertions.length > 0\n\t) {\n\t\tsummary.assertionCount = normalized.assertions.length;\n\t}\n\n\treturn Object.keys(summary).length > 0 ? summary : undefined;\n}\n\nfunction isFailedToolEvaluation(summary: ToolEvaluationSummary): boolean {\n\tif (summary.passed === false) {\n\t\treturn true;\n\t}\n\tif (summary.passed === true) {\n\t\treturn false;\n\t}\n\treturn (\n\t\ttypeof summary.score === \"number\" &&\n\t\ttypeof summary.threshold === \"number\" &&\n\t\tsummary.score < summary.threshold\n\t);\n}\n\nfunction buildEvaluationFailureMessage(\n\tfailure: SkillEvaluationFailure,\n): string | undefined {\n\tif (failure.rationale) {\n\t\treturn failure.rationale;\n\t}\n\tif (\n\t\ttypeof failure.score === \"number\" &&\n\t\ttypeof failure.threshold === \"number\"\n\t) {\n\t\treturn `Eval score ${failure.score} below threshold ${failure.threshold}`;\n\t}\n\tif (typeof failure.score === \"number\") {\n\t\treturn `Eval score ${failure.score} did not pass`;\n\t}\n\treturn \"Selected skill failed evaluation\";\n}\n\n/**\n * Default message transformer that converts app messages to LLM-ready format.\n *\n * This transformer handles:\n * - Filtering to valid message roles (user, assistant, toolResult)\n * - Expanding user message attachments into content blocks\n * - Converting images to base64 image content\n * - Converting documents to text content with filename headers\n *\n * @param messages - Array of app messages to transform\n * @returns Array of messages ready for LLM consumption\n */\nfunction defaultMessageTransformer(messages: AppMessage[]): Message[] {\n\treturn (\n\t\tconvertAppMessagesToLlm(messages)\n\t\t\t// Filter to only roles the LLM understands\n\t\t\t.filter(\n\t\t\t\t(m) =>\n\t\t\t\t\tm.role === \"user\" ||\n\t\t\t\t\tm.role === \"assistant\" ||\n\t\t\t\t\tm.role === \"toolResult\",\n\t\t\t)\n\t\t\t.map((message) => {\n\t\t\t\t// Non-user messages pass through unchanged\n\t\t\t\tif (message.role !== \"user\") {\n\t\t\t\t\treturn message as Message;\n\t\t\t\t}\n\n\t\t\t\t// Handle user messages with attachments\n\t\t\t\tconst { attachments, ...rest } = message as UserMessageWithAttachments;\n\t\t\t\tif (!attachments || attachments.length === 0) {\n\t\t\t\t\treturn rest as Message;\n\t\t\t\t}\n\n\t\t\t\t// Expand attachments into content array\n\t\t\t\t// Start with existing content (may be string or array)\n\t\t\t\tconst content: Array<TextContent | ImageContent> = Array.isArray(\n\t\t\t\t\trest.content,\n\t\t\t\t)\n\t\t\t\t\t? [...rest.content]\n\t\t\t\t\t: [{ type: \"text\", text: rest.content }];\n\n\t\t\t\t// Convert each attachment to appropriate content type\n\t\t\t\tfor (const attachment of attachments) {\n\t\t\t\t\tif (attachment.type === \"image\") {\n\t\t\t\t\t\t// Images become image content blocks with base64 data\n\t\t\t\t\t\tcontent.push({\n\t\t\t\t\t\t\ttype: \"image\",\n\t\t\t\t\t\t\tdata: attachment.content,\n\t\t\t\t\t\t\tmimeType: attachment.mimeType,\n\t\t\t\t\t\t} as ImageContent);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tattachment.type === \"document\" &&\n\t\t\t\t\t\tattachment.extractedText\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Documents become text blocks with filename headers\n\t\t\t\t\t\tcontent.push({\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: `\\n\\n[Document: ${attachment.fileName}]\\n${attachment.extractedText}`,\n\t\t\t\t\t\t} as TextContent);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn { ...rest, content } as Message;\n\t\t\t})\n\t);\n}\n\n/**\n * Maps internal thinking level to provider reasoning effort parameter.\n *\n * Different providers have different reasoning/thinking capabilities.\n * This function normalizes our internal levels to what providers support.\n *\n * @param level - Internal thinking level\n * @returns Provider-specific reasoning effort, or undefined if disabled\n */\nfunction mapThinkingLevel(level: ThinkingLevel): ReasoningEffort | undefined {\n\tswitch (level) {\n\t\tcase \"off\":\n\t\t\treturn undefined; // No extended thinking\n\t\tcase \"minimal\":\n\t\t\treturn \"minimal\"; // Brief chain-of-thought\n\t\tcase \"low\":\n\t\t\treturn \"low\"; // Short reasoning steps\n\t\tcase \"medium\":\n\t\t\treturn \"medium\"; // Moderate depth\n\t\tcase \"high\":\n\t\t\treturn \"high\"; // Thorough reasoning\n\t\tcase \"ultra\":\n\t\t\treturn \"ultra\"; // Provider max where supported\n\t\tcase \"max\":\n\t\t\treturn \"high\"; // Maximum reasoning (max maps to high for providers)\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\n\nfunction buildPromptOnlyToolBatchSummaryMessage(\n\tsummaryLabels: string[],\n): UserMessage {\n\tconst bulletList = summaryLabels.map((label) => `- ${label}`).join(\"\\n\");\n\treturn {\n\t\trole: \"user\",\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: `The following is a transient summary of the most recent tool activity:\\n${bulletList}`,\n\t\t\t},\n\t\t],\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nconst PROMPT_ONLY_BATCH_SHAPING_FEEDBACK_HINT =\n\t\"When you need several independent reads or searches, emit them together in one assistant message so Maestro can batch them safely.\";\n\nfunction buildPromptOnlyBatchShapingFeedbackMessage(): UserMessage {\n\treturn {\n\t\trole: \"user\",\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: `The following is transient tool batching feedback for the next assistant turn:\\n- ${PROMPT_ONLY_BATCH_SHAPING_FEEDBACK_HINT}`,\n\t\t\t},\n\t\t],\n\t\ttimestamp: Date.now(),\n\t};\n}\n\n/**\n * Ensures prior assistant messages remain provider-compatible when switching models mid-session.\n *\n * When users switch between providers (e.g., Anthropic → OpenAI), previous assistant\n * messages may contain provider-specific content like \"thinking\" blocks. This function\n * converts those blocks to a format all providers can understand.\n *\n * ## Problem\n *\n * Anthropic's thinking blocks look like: `{ type: \"thinking\", thinking: \"...\" }`\n * OpenAI doesn't understand this format and may error or ignore it.\n *\n * ## Solution\n *\n * Convert thinking blocks to text: `<thinking>...</thinking>` which all providers\n * can process as regular text content.\n *\n * @param messages - Messages from conversation history\n * @param targetModel - The model that will receive these messages\n * @returns Messages with thinking blocks normalized for the target provider\n */\nfunction normalizeMessagesForProvider(\n\tmessages: Message[],\n\ttargetModel: Model<Api>,\n): Message[] {\n\tconst normalizedMessages: Message[] = [];\n\n\tfor (const msg of messages) {\n\t\tif (msg.role !== \"assistant\") {\n\t\t\tif (msg.role === \"user\") {\n\t\t\t\tconst previous = normalizedMessages[normalizedMessages.length - 1];\n\t\t\t\tif (previous?.role === \"user\") {\n\t\t\t\t\tconst previousContent: (TextContent | ImageContent)[] =\n\t\t\t\t\t\ttypeof previous.content === \"string\"\n\t\t\t\t\t\t\t? [{ type: \"text\", text: previous.content }]\n\t\t\t\t\t\t\t: [...previous.content];\n\t\t\t\t\tconst currentContent: (TextContent | ImageContent)[] =\n\t\t\t\t\t\ttypeof msg.content === \"string\"\n\t\t\t\t\t\t\t? [{ type: \"text\", text: msg.content }]\n\t\t\t\t\t\t\t: [...msg.content];\n\t\t\t\t\tconst mergedContent: (TextContent | ImageContent)[] =\n\t\t\t\t\t\tpreviousContent.length > 0 && currentContent.length > 0\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...previousContent,\n\t\t\t\t\t\t\t\t\t{ type: \"text\", text: \"\\n\\n\" } as TextContent,\n\t\t\t\t\t\t\t\t\t...currentContent,\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t: [...previousContent, ...currentContent];\n\t\t\t\t\tconst previousAttachments = (\n\t\t\t\t\t\t\"attachments\" in previous ? previous.attachments : undefined\n\t\t\t\t\t) as Attachment[] | undefined;\n\t\t\t\t\tconst currentAttachments = (\n\t\t\t\t\t\t\"attachments\" in msg ? msg.attachments : undefined\n\t\t\t\t\t) as Attachment[] | undefined;\n\t\t\t\t\tconst mergedAttachments: Attachment[] = [\n\t\t\t\t\t\t...(previousAttachments ?? []),\n\t\t\t\t\t\t...(currentAttachments ?? []),\n\t\t\t\t\t];\n\t\t\t\t\tconst mergedUser: UserMessageWithAttachments = {\n\t\t\t\t\t\t...previous,\n\t\t\t\t\t\tcontent: mergedContent,\n\t\t\t\t\t\tattachments:\n\t\t\t\t\t\t\tmergedAttachments.length > 0 ? mergedAttachments : undefined,\n\t\t\t\t\t\tmetadata: previous.metadata ?? msg.metadata,\n\t\t\t\t\t};\n\t\t\t\t\tnormalizedMessages[normalizedMessages.length - 1] = mergedUser;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tnormalizedMessages.push(msg);\n\t\t\tcontinue;\n\t\t}\n\t\tconst shouldConvertThinking =\n\t\t\tmsg.provider !== targetModel.provider ||\n\t\t\tmsg.api !== targetModel.api ||\n\t\t\t!targetModel.reasoning;\n\t\tif (!shouldConvertThinking) {\n\t\t\tnormalizedMessages.push(msg);\n\t\t\tcontinue;\n\t\t}\n\t\tconst content = msg.content.map((block) => {\n\t\t\tif (block.type === \"thinking\") {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: `<thinking>${block.thinking}</thinking>`,\n\t\t\t\t} as TextContent;\n\t\t\t}\n\t\t\treturn block;\n\t\t});\n\t\tnormalizedMessages.push({ ...msg, content });\n\t}\n\n\treturn normalizedMessages;\n}\n\ntype BufferedAssistantStartState = {\n\tpendingAssistantStart: AssistantMessage | null;\n\tlastStopReason?: StopReason;\n};\n\ntype StreamedMessageEvent = Extract<\n\tAgentEvent,\n\t{ type: \"message_start\" | \"message_update\" | \"message_end\" }\n>;\n\nfunction isDuplicateMessage(\n\texisting: AppMessage | undefined,\n\tincoming: AppMessage,\n): boolean {\n\tif (!existing) return false;\n\tif (existing.role !== incoming.role) return false;\n\tif (\"timestamp\" in existing && \"timestamp\" in incoming) {\n\t\tif (existing.timestamp !== incoming.timestamp) return false;\n\t}\n\tif (existing.role === \"toolResult\" && incoming.role === \"toolResult\") {\n\t\treturn existing.toolCallId === incoming.toolCallId;\n\t}\n\t// For assistant messages, compare stopReason and content fingerprint to avoid\n\t// discarding distinct messages that share a timestamp (e.g. parallel tool calls).\n\tif (existing.role === \"assistant\" && incoming.role === \"assistant\") {\n\t\tif (existing.stopReason !== incoming.stopReason) return false;\n\t\tif (existing.content.length !== incoming.content.length) return false;\n\t\t// Compare first content block identity for a stronger structural check.\n\t\tconst a = existing.content[0];\n\t\tconst b = incoming.content[0];\n\t\tif (a && b) {\n\t\t\tif (a.type !== b.type) return false;\n\t\t\tif (a.type === \"toolCall\" && b.type === \"toolCall\") {\n\t\t\t\tif (a.id !== b.id) return false;\n\t\t\t} else if (a.type === \"text\" && b.type === \"text\") {\n\t\t\t\tif (a.text !== b.text) return false;\n\t\t\t} else if (a.type === \"thinking\" && b.type === \"thinking\") {\n\t\t\t\tif (a.thinking !== b.thinking) return false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nfunction mergeUsage(messages: AssistantMessage[]): Usage {\n\treturn messages.reduce<Usage>(\n\t\t(acc, message) => ({\n\t\t\tinput: acc.input + message.usage.input,\n\t\t\toutput: acc.output + message.usage.output,\n\t\t\tcacheRead: acc.cacheRead + message.usage.cacheRead,\n\t\t\tcacheWrite: acc.cacheWrite + message.usage.cacheWrite,\n\t\t\tcost: {\n\t\t\t\tinput: acc.cost.input + message.usage.cost.input,\n\t\t\t\toutput: acc.cost.output + message.usage.cost.output,\n\t\t\t\tcacheRead: acc.cost.cacheRead + message.usage.cost.cacheRead,\n\t\t\t\tcacheWrite: acc.cost.cacheWrite + message.usage.cost.cacheWrite,\n\t\t\t\ttotal: acc.cost.total + message.usage.cost.total,\n\t\t\t},\n\t\t}),\n\t\t{\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t\tcost: {\n\t\t\t\tinput: 0,\n\t\t\t\toutput: 0,\n\t\t\t\tcacheRead: 0,\n\t\t\t\tcacheWrite: 0,\n\t\t\t\ttotal: 0,\n\t\t\t},\n\t\t},\n\t);\n}\n\nfunction mergeAssistantMessages(\n\tmessages: AssistantMessage[],\n): AssistantMessage {\n\tconst lastMessage = messages[messages.length - 1]!;\n\treturn {\n\t\t...lastMessage,\n\t\tcontent: messages.flatMap((message) => message.content),\n\t\tusage: mergeUsage(messages),\n\t};\n}\n\n/**\n * Configuration options for creating an Agent instance.\n */\nexport interface AgentOptions {\n\t/** Initial state to override defaults (system prompt, model, tools, etc.) */\n\tinitialState?: Partial<AgentState>;\n\t/** Transport implementation for LLM provider communication */\n\ttransport: AgentTransport;\n\t/** Optional transformer to convert app messages to provider-specific format */\n\tmessageTransformer?: (\n\t\tmessages: AppMessage[],\n\t) => Message[] | Promise<Message[]>;\n\t/** Optional message preprocessor executed immediately before provider invocation */\n\tpreprocessMessages?: PreprocessMessagesFn;\n\t/** Disable Maestro's built-in preprocessing (not recommended) */\n\tdisableDefaultPreprocessMessages?: boolean;\n\t/** Optional context sources for environment injection */\n\tcontextSources?: AgentContextSource[];\n}\n\n/**\n * Core Agent class implementing event-driven LLM interaction.\n *\n * The Agent manages conversation state, tool execution, and streaming responses\n * across multiple LLM providers through an abstracted transport layer.\n *\n * @example\n * ```typescript\n * const agent = new Agent({\n * transport: new AnthropicTransport(apiKey),\n * initialState: { model: claudeSonnet4, tools: codingTools }\n * });\n *\n * agent.subscribe((event) => {\n * if (event.type === 'content_block_delta') {\n * process.stdout.write(event.text);\n * }\n * });\n *\n * await agent.prompt(\"Create a hello world function\");\n * ```\n */\nexport class Agent {\n\tprivate _state: AgentState;\n\tprivate listeners: Array<(e: AgentEvent) => void> = [];\n\tprivate abortController?: AbortController;\n\tprivate transport: AgentTransport;\n\tprivate messageTransformer: (\n\t\tmessages: AppMessage[],\n\t) => Message[] | Promise<Message[]>;\n\tprivate preprocessMessages?: PreprocessMessagesFn;\n\tprivate steeringQueue: Array<QueuedMessage<AppMessage>> = [];\n\tprivate followUpQueue: Array<QueuedMessage<AppMessage>> = [];\n\tprivate nextRunHistoryQueue: AppMessage[] = [];\n\tprivate nextRunPromptOnlyQueue: Message[] = [];\n\tprivate promptOnlyQueue: Message[] = [];\n\tprivate queuedBatchShapingFeedbackKeys = new Set<string>();\n\tprivate nextRunSystemPromptAdditions: string[] = [];\n\tprivate defaultTaskBudgetTotal?: number;\n\tprivate currentTaskBudget?:\n\t\t| {\n\t\t\t\ttotal: number;\n\t\t\t\tremaining?: number;\n\t\t }\n\t\t| undefined;\n\tprivate steeringMode: \"all\" | \"one\" = \"all\";\n\tprivate followUpMode: \"all\" | \"one\" = \"all\";\n\tprivate queueMode: \"all\" | \"one\" = \"all\";\n\tprivate nextQueuedMessageId = 1;\n\tprivate runningPrompt?: Promise<void>;\n\tprivate resolveRunningPrompt?: () => void;\n\tprivate contextManager: AgentContextManager;\n\tprivate activeToolBatchIds: Set<string> | null = null;\n\tprivate completedToolBatch: Array<{\n\t\ttoolCallId: string;\n\t\ttoolName: string;\n\t\targs: Record<string, unknown>;\n\t\tisError: boolean;\n\t\ttool?: Pick<AgentTool, \"getToolUseSummary\" | \"getActivityDescription\">;\n\t}> = [];\n\tprivate suppressRecoverableOverflowErrors = false;\n\tprivate withheldRecoverableOverflowError?: AssistantMessage;\n\tprivate withheldRecoverableLengthMessages: AssistantMessage[] = [];\n\tprivate pendingMergedRecoverableTurnEnd?: AssistantMessage;\n\tprivate diagnosticRepairAttempts = new Map<string, number>();\n\tprivate currentTurnEvaluationFailure?: SkillEvaluationFailure;\n\tprivate currentTurnSkillSelections = new Map<\n\t\tstring,\n\t\tCurrentTurnSkillSelection\n\t>();\n\n\t/**\n\t * Creates a new Agent instance.\n\t *\n\t * @param opts - Configuration options including transport and initial state\n\t */\n\tconstructor(opts: AgentOptions) {\n\t\tthis.transport = opts.transport;\n\t\tthis.messageTransformer =\n\t\t\topts.messageTransformer ??\n\t\t\t((messages) => defaultMessageTransformer(messages));\n\t\tthis.preprocessMessages = chainPreprocessMessages(\n\t\t\topts.disableDefaultPreprocessMessages\n\t\t\t\t? undefined\n\t\t\t\t: defaultPreprocessMessages,\n\t\t\topts.preprocessMessages,\n\t\t);\n\n\t\tthis.contextManager = new AgentContextManager();\n\t\tif (opts.contextSources) {\n\t\t\tfor (const source of opts.contextSources) {\n\t\t\t\tthis.contextManager.addSource(source);\n\t\t\t}\n\t\t}\n\n\t\tconst {\n\t\t\tsystemPrompt,\n\t\t\tmodel,\n\t\t\tthinkingLevel,\n\t\t\ttools,\n\t\t\tqueueMode,\n\t\t\tsteeringMode,\n\t\t\tfollowUpMode,\n\t\t\t...restInitialState\n\t\t} = opts.initialState ?? {};\n\t\tthis.queueMode = queueMode ?? \"all\";\n\t\tthis.steeringMode = steeringMode ?? queueMode ?? \"all\";\n\t\tthis.followUpMode = followUpMode ?? queueMode ?? \"all\";\n\n\t\tif (restInitialState.user) {\n\t\t\tif (\n\t\t\t\t!uuidValidate(restInitialState.user.id) ||\n\t\t\t\t!uuidValidate(restInitialState.user.orgId)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Invalid user ID or Org ID: Must be a valid UUID\");\n\t\t\t}\n\t\t}\n\n\t\tthis._state = {\n\t\t\tsystemPrompt: systemPrompt ?? \"\",\n\t\t\tmodel:\n\t\t\t\tmodel ??\n\t\t\t\t((): never => {\n\t\t\t\t\tthrow new Error(\"Agent requires an initial model\");\n\t\t\t\t})(),\n\t\t\tthinkingLevel: thinkingLevel ?? \"off\",\n\t\t\ttools: tools ?? [],\n\t\t\tmessages: [],\n\t\t\tisStreaming: false,\n\t\t\tstreamMessage: null,\n\t\t\tpendingToolCalls: new Map(),\n\t\t\tsandbox: restInitialState.sandbox,\n\t\t\tsandboxMode: restInitialState.sandboxMode ?? null,\n\t\t\tsandboxEnabled:\n\t\t\t\trestInitialState.sandboxEnabled ?? Boolean(restInitialState.sandbox),\n\t\t\t...restInitialState,\n\t\t\tqueueMode: this.queueMode,\n\t\t\tsteeringMode: this.steeringMode,\n\t\t\tfollowUpMode: this.followUpMode,\n\t\t};\n\t}\n\n\t/**\n\t * Gets the current agent state (read-only).\n\t *\n\t * @returns The current state including messages, model, tools, and streaming status\n\t */\n\tget state(): Readonly<AgentState> {\n\t\treturn this._state;\n\t}\n\n\t/**\n\t * Gets detailed status of all context sources.\n\t *\n\t * Context sources provide dynamic content injected into the system prompt,\n\t * such as todo lists, LSP diagnostics, and IDE information.\n\t *\n\t * @returns Promise resolving to context load result with per-source status\n\t *\n\t * @example\n\t * ```typescript\n\t * const result = await agent.getContextSourceStatus();\n\t * for (const source of result.sourceStatuses) {\n\t * console.log(`${source.name}: ${source.status} (${source.durationMs}ms)`);\n\t * }\n\t * ```\n\t */\n\tasync getContextSourceStatus(): Promise<ContextLoadResult> {\n\t\treturn this.contextManager.getCombinedSystemPromptWithStatus();\n\t}\n\n\t/**\n\t * Optionally probes the underlying transport for connectivity checks.\n\t */\n\tasync probeTransport(): Promise<void> {\n\t\tif (this.transport.ping) {\n\t\t\tawait this.transport.ping();\n\t\t}\n\t}\n\n\t/**\n\t * Subscribes to agent events (streaming deltas, tool calls, errors, etc.).\n\t *\n\t * @param fn - Event listener function to be called on each event\n\t * @returns Unsubscribe function to remove the listener\n\t *\n\t * @example\n\t * ```typescript\n\t * const unsubscribe = agent.subscribe((event) => {\n\t * if (event.type === 'content_block_delta') {\n\t * console.log(event.text);\n\t * }\n\t * });\n\t *\n\t * // Later, to stop listening:\n\t * unsubscribe();\n\t * ```\n\t */\n\tsubscribe(fn: (e: AgentEvent) => void): () => void {\n\t\tthis.listeners.push(fn);\n\t\treturn () => {\n\t\t\tconst idx = this.listeners.indexOf(fn);\n\t\t\tif (idx >= 0) this.listeners.splice(idx, 1);\n\t\t};\n\t}\n\n\t/**\n\t * Emits an event to all subscribed listeners.\n\t * Errors in listeners are caught and logged to prevent cascading failures.\n\t *\n\t * @param event - The event to emit\n\t */\n\tprivate emit(event: AgentEvent): void {\n\t\tfor (const listener of this.listeners) {\n\t\t\ttry {\n\t\t\t\tlistener(event);\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(\n\t\t\t\t\t\"Error in agent event listener\",\n\t\t\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async dequeueSteeringMessages<T>(): Promise<QueuedMessage<T>[]> {\n\t\tif (this.steeringQueue.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tif (this.steeringMode === \"one\") {\n\t\t\tconst next = this.steeringQueue.shift();\n\t\t\treturn next ? [next as QueuedMessage<T>] : [];\n\t\t}\n\t\tconst queued = this.steeringQueue.splice(0) as QueuedMessage<T>[];\n\t\treturn queued;\n\t}\n\n\tprivate async dequeueFollowUpMessages<T>(): Promise<QueuedMessage<T>[]> {\n\t\tif (this.followUpQueue.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tif (this.followUpMode === \"one\") {\n\t\t\tconst next = this.followUpQueue.shift();\n\t\t\treturn next ? [next as QueuedMessage<T>] : [];\n\t\t}\n\t\tconst queued = this.followUpQueue.splice(0) as QueuedMessage<T>[];\n\t\treturn queued;\n\t}\n\n\tprivate async dequeuePromptOnlyMessages(): Promise<Message[]> {\n\t\tif (\n\t\t\tthis.nextRunPromptOnlyQueue.length === 0 &&\n\t\t\tthis.promptOnlyQueue.length === 0\n\t\t) {\n\t\t\treturn [];\n\t\t}\n\t\tconst queued = [...this.nextRunPromptOnlyQueue, ...this.promptOnlyQueue];\n\t\tthis.nextRunPromptOnlyQueue = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\treturn queued;\n\t}\n\n\tprivate dequeueNextRunHistoryMessages(): AppMessage[] {\n\t\tif (this.nextRunHistoryQueue.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tconst queued = [...this.nextRunHistoryQueue];\n\t\tthis.nextRunHistoryQueue = [];\n\t\treturn queued;\n\t}\n\n\tprivate dequeueNextRunSystemPromptAdditions(): string[] {\n\t\tif (this.nextRunSystemPromptAdditions.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tconst queued = [...this.nextRunSystemPromptAdditions];\n\t\tthis.nextRunSystemPromptAdditions = [];\n\t\treturn queued;\n\t}\n\n\tprivate async dequeueQueuedMessages<T>(): Promise<QueuedMessage<T>[]> {\n\t\treturn this.dequeueFollowUpMessages<T>();\n\t}\n\n\t/**\n\t * Sets the system prompt that provides context and instructions to the model.\n\t *\n\t * @param v - The system prompt text\n\t */\n\tsetSystemPrompt(v: string): void {\n\t\tthis._state.systemPrompt = v;\n\t}\n\n\tsetSystemPromptSourcePaths(paths: string[] | undefined): void {\n\t\tthis._state.systemPromptSourcePaths =\n\t\t\tpaths && paths.length > 0 ? [...paths] : undefined;\n\t}\n\n\t/**\n\t * Sets the active LLM model for this agent.\n\t *\n\t * @param m - The model configuration\n\t */\n\tsetModel(m: Model<Api>): void {\n\t\tthis._state.model = m;\n\t\tif (!m.reasoning && this._state.thinkingLevel !== \"off\") {\n\t\t\tthis._state.thinkingLevel = \"off\";\n\t\t}\n\t}\n\n\t/**\n\t * Sets the thinking/reasoning level for extended reasoning models.\n\t *\n\t * @param l - Thinking level: \"off\", \"minimal\", \"low\", \"medium\", \"high\", \"max\"\n\t */\n\tsetThinkingLevel(l: ThinkingLevel): void {\n\t\tthis._state.thinkingLevel = l;\n\t}\n\n\t/**\n\t * Controls how queued steering messages are drained between turns.\n\t * \"all\" (default) sends the full queue; \"one\" sends a single item per turn.\n\t */\n\tsetSteeringMode(mode: \"all\" | \"one\"): void {\n\t\tthis.steeringMode = mode;\n\t\tthis.queueMode = mode;\n\t\tthis._state.steeringMode = mode;\n\t\tthis._state.queueMode = mode;\n\t}\n\n\tgetSteeringMode(): \"all\" | \"one\" {\n\t\treturn this.steeringMode;\n\t}\n\n\t/**\n\t * Controls how queued follow-up messages are drained between turns.\n\t * \"all\" (default) sends the full queue; \"one\" sends a single item per turn.\n\t */\n\tsetFollowUpMode(mode: \"all\" | \"one\"): void {\n\t\tthis.followUpMode = mode;\n\t\tthis._state.followUpMode = mode;\n\t}\n\n\tgetFollowUpMode(): \"all\" | \"one\" {\n\t\treturn this.followUpMode;\n\t}\n\n\t/**\n\t * @deprecated Use setSteeringMode/setFollowUpMode instead.\n\t * Sets both steering + follow-up modes for compatibility.\n\t */\n\tsetQueueMode(mode: \"all\" | \"one\"): void {\n\t\tthis.queueMode = mode;\n\t\tthis._state.queueMode = mode;\n\t\tthis.setSteeringMode(mode);\n\t\tthis.setFollowUpMode(mode);\n\t}\n\n\t/**\n\t * Sets the available tools that the model can invoke.\n\t *\n\t * @param t - Array of tool definitions with schemas and execute functions\n\t */\n\tsetTools(t: AgentTool[]): void {\n\t\tthis._state.tools = t;\n\t}\n\n\t/**\n\t * Sets the active user for this agent.\n\t */\n\tsetUser(user: AgentState[\"user\"]): void {\n\t\tthis._state.user = user;\n\t}\n\n\t/**\n\t * Sets the active session for this agent.\n\t */\n\tsetSession(session: AgentState[\"session\"]): void {\n\t\tthis._state.session = session;\n\t}\n\n\t/**\n\t * Sets the sampling temperature for LLM generation.\n\t *\n\t * @param t - Temperature value (0.0-2.0, lower = more deterministic). Pass undefined to reset to default.\n\t */\n\tsetTemperature(t: number | undefined): void {\n\t\tthis._state.temperature = t;\n\t}\n\n\t/**\n\t * Sets the top-p sampling parameter for LLM generation.\n\t *\n\t * @param p - Top-p value (0.0-1.0). Pass undefined to reset to default.\n\t */\n\tsetTopP(p: number | undefined): void {\n\t\tthis._state.topP = p;\n\t}\n\n\tsetTaskBudgetTotal(total: number | undefined): void {\n\t\tthis.defaultTaskBudgetTotal = total;\n\t}\n\n\tgetTaskBudgetTotal(): number | undefined {\n\t\treturn this.defaultTaskBudgetTotal;\n\t}\n\n\tsetCurrentTaskBudget(\n\t\ttaskBudget:\n\t\t\t| {\n\t\t\t\t\ttotal: number;\n\t\t\t\t\tremaining?: number;\n\t\t\t }\n\t\t\t| undefined,\n\t): void {\n\t\tthis.currentTaskBudget = taskBudget ? { ...taskBudget } : undefined;\n\t}\n\n\tgetCurrentTaskBudget():\n\t\t| {\n\t\t\t\ttotal: number;\n\t\t\t\tremaining?: number;\n\t\t }\n\t\t| undefined {\n\t\treturn this.currentTaskBudget ? { ...this.currentTaskBudget } : undefined;\n\t}\n\n\t/**\n\t * Replaces the entire message history with a new set of messages.\n\t *\n\t * @param ms - New message array\n\t */\n\treplaceMessages(ms: AppMessage[]): void {\n\t\tthis._state.messages = ms.slice();\n\t}\n\n\t/**\n\t * Clear transient run state without touching message history or queued inputs.\n\t *\n\t * This is useful before starting a fresh run, or after operations like\n\t * compaction that rewrite history while the agent is otherwise idle.\n\t */\n\tclearTransientRunState(options?: {\n\t\tclearSessionContextCache?: boolean;\n\t}): void {\n\t\tthis._state.isStreaming = false;\n\t\tthis._state.streamMessage = null;\n\t\tthis._state.pendingToolCalls.clear();\n\t\tif (options?.clearSessionContextCache) {\n\t\t\tthis.contextManager.clearSessionCache();\n\t\t}\n\t\tthis.activeToolBatchIds = null;\n\t\tthis.completedToolBatch = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\tthis._state.error = undefined;\n\t\tthis.withheldRecoverableOverflowError = undefined;\n\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\tif (!this.suppressRecoverableOverflowErrors) {\n\t\t\tthis.withheldRecoverableLengthMessages = [];\n\t\t}\n\t\tthis._partialAccepted = null;\n\t\tthis.currentTurnEvaluationFailure = undefined;\n\t\tthis.currentTurnSkillSelections.clear();\n\t}\n\n\tsetRecoverableOverflowErrorSuppression(enabled: boolean): void {\n\t\tthis.suppressRecoverableOverflowErrors = enabled;\n\t\tif (!enabled) {\n\t\t\tthis.withheldRecoverableOverflowError = undefined;\n\t\t\tthis.withheldRecoverableLengthMessages = [];\n\t\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\t}\n\t}\n\n\tgetWithheldRecoverableOverflowError(): AssistantMessage | undefined {\n\t\treturn this.withheldRecoverableOverflowError;\n\t}\n\n\tflushWithheldRecoverableLengthMessage(): AssistantMessage | undefined {\n\t\tif (this.withheldRecoverableLengthMessages.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst merged = mergeAssistantMessages(\n\t\t\tthis.withheldRecoverableLengthMessages,\n\t\t);\n\t\tthis._state.messages = [\n\t\t\t...this._state.messages.slice(\n\t\t\t\t0,\n\t\t\t\t-this.withheldRecoverableLengthMessages.length,\n\t\t\t),\n\t\t\tmerged,\n\t\t];\n\t\tthis.withheldRecoverableLengthMessages = [];\n\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\tthis.primeToolBatch(merged);\n\t\tthis.emit({ type: \"message_start\", message: merged });\n\t\tthis.emit({ type: \"message_end\", message: merged });\n\t\tthis.emit({ type: \"turn_end\", message: merged, toolResults: [] });\n\t\treturn merged;\n\t}\n\n\t/**\n\t * Appends a single message to the conversation history.\n\t *\n\t * @param m - Message to append\n\t */\n\tappendMessage(m: AppMessage): void {\n\t\tthis._state.messages = [...this._state.messages, m];\n\t}\n\n\t/**\n\t * Inject a message into the conversation history and emit a message_end event.\n\t */\n\tinjectMessage(m: AppMessage): void {\n\t\tthis._state.messages = [...this._state.messages, m];\n\t\tthis.emit({ type: \"message_end\", message: m });\n\t}\n\n\t/**\n\t * Emit a transient runtime status update without mutating conversation history.\n\t */\n\temitStatus(status: string, details: Record<string, unknown> = {}): void {\n\t\tconst normalized = status.trim();\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tthis.emit({ type: \"status\", status: normalized, details });\n\t}\n\n\t/**\n\t * Emit a transient runtime error without mutating conversation history.\n\t */\n\temitError(message: string): void {\n\t\tconst normalized = message.trim();\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tthis.emit({ type: \"error\", message: normalized });\n\t}\n\n\tprivate shouldWithholdRecoverableOverflowError(\n\t\tmessage: AppMessage,\n\t): message is AssistantMessage {\n\t\treturn (\n\t\t\tthis.suppressRecoverableOverflowErrors &&\n\t\t\tisAssistantMessage(message) &&\n\t\t\tmessage.stopReason === \"error\" &&\n\t\t\tisAssistantContextOverflow(message, this._state.model.contextWindow)\n\t\t);\n\t}\n\n\tprivate shouldWithholdRecoverableMaxOutput(\n\t\tmessage: AssistantMessage,\n\t): boolean {\n\t\treturn (\n\t\t\tthis.suppressRecoverableOverflowErrors && message.stopReason === \"length\"\n\t\t);\n\t}\n\n\tprivate shouldMergeRecoverableLengthContinuation(\n\t\tmessage: AssistantMessage,\n\t): boolean {\n\t\treturn (\n\t\t\tthis.suppressRecoverableOverflowErrors &&\n\t\t\tthis.withheldRecoverableLengthMessages.length > 0 &&\n\t\t\tmessage.stopReason !== \"length\" &&\n\t\t\tmessage.stopReason !== \"error\"\n\t\t);\n\t}\n\n\tprivate mergeWithWithheldRecoverableLengthMessages(\n\t\tincoming: AssistantMessage,\n\t): AssistantMessage {\n\t\tif (this.withheldRecoverableLengthMessages.length === 0) {\n\t\t\treturn incoming;\n\t\t}\n\n\t\tconst merged = mergeAssistantMessages([\n\t\t\t...this.withheldRecoverableLengthMessages,\n\t\t\tincoming,\n\t\t]);\n\t\tthis._state.messages = [\n\t\t\t...this._state.messages.slice(\n\t\t\t\t0,\n\t\t\t\t-this.withheldRecoverableLengthMessages.length,\n\t\t\t),\n\t\t\tmerged,\n\t\t];\n\t\tthis.withheldRecoverableLengthMessages = [];\n\t\tthis.pendingMergedRecoverableTurnEnd = merged;\n\t\treturn merged;\n\t}\n\n\t/**\n\t * Emit a compaction lifecycle event without mutating conversation history.\n\t */\n\temitCompaction(\n\t\tevent: Omit<Extract<AgentEvent, { type: \"compaction\" }>, \"type\">,\n\t): void {\n\t\tthis.emit({ type: \"compaction\", ...event });\n\t}\n\n\t/**\n\t * Queue a prompt-only message for the next run without persisting it to history.\n\t */\n\tqueueNextRunPromptOnlyMessage(message: Message): void {\n\t\tthis.nextRunPromptOnlyQueue.push(message);\n\t}\n\n\t/**\n\t * Queue a persisted history message for the next run.\n\t */\n\tqueueNextRunHistoryMessage(message: AppMessage): void {\n\t\tthis.nextRunHistoryQueue.push(message);\n\t}\n\n\t/**\n\t * Queue transient system guidance for the next run.\n\t */\n\tqueueNextRunSystemPromptAddition(text: string): void {\n\t\tconst normalized = text.trim();\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tthis.nextRunSystemPromptAdditions.push(normalized);\n\t}\n\n\t/**\n\t * Clear queued one-shot prompt inputs that were prepared for the next run but\n\t * not yet consumed.\n\t */\n\tclearQueuedPromptInputs(): void {\n\t\tthis.nextRunHistoryQueue = [];\n\t\tthis.nextRunPromptOnlyQueue = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\tthis.nextRunSystemPromptAdditions = [];\n\t}\n\n\t/**\n\t * Queues a steering message to interrupt the agent mid-run.\n\t *\n\t * Delivered after the current tool execution and skips remaining tools.\n\t *\n\t * @param m - Message to queue\n\t */\n\tasync steer(m: AppMessage): Promise<void> {\n\t\tawait this.enqueueQueuedMessage(\"steer\", m);\n\t}\n\n\t/**\n\t * Queues a follow-up message to be processed after the agent finishes.\n\t *\n\t * @param m - Message to queue\n\t */\n\tasync followUp(m: AppMessage): Promise<void> {\n\t\tawait this.enqueueQueuedMessage(\"followUp\", m);\n\t}\n\n\t/**\n\t * Re-inserts a follow-up at the front of the follow-up queue.\n\t */\n\tasync prependFollowUp(\n\t\tm: AppMessage,\n\t\toptions?: { id?: number; createdAt?: number },\n\t): Promise<void> {\n\t\tawait this.enqueueQueuedMessage(\"followUp\", m, {\n\t\t\tposition: \"front\",\n\t\t\tid: options?.id,\n\t\t\tcreatedAt: options?.createdAt,\n\t\t});\n\t}\n\n\t/**\n\t * @deprecated Use steer() or followUp() instead.\n\t * Defaults to follow-up semantics.\n\t */\n\tasync queueMessage(m: AppMessage): Promise<void> {\n\t\tawait this.followUp(m);\n\t}\n\n\tprivate async enqueueQueuedMessage(\n\t\tkind: \"steer\" | \"followUp\",\n\t\tmessage: AppMessage,\n\t\toptions?: {\n\t\t\tposition?: \"front\" | \"back\";\n\t\t\tid?: number;\n\t\t\tcreatedAt?: number;\n\t\t},\n\t): Promise<void> {\n\t\tconst transformed = await this.messageTransformer([message]);\n\t\tconst id = options?.id ?? this.nextQueuedMessageId++;\n\t\tif (id >= this.nextQueuedMessageId) {\n\t\t\tthis.nextQueuedMessageId = id + 1;\n\t\t}\n\t\tconst queued = {\n\t\t\tid,\n\t\t\tcreatedAt: options?.createdAt ?? Date.now(),\n\t\t\toriginal: message,\n\t\t\tllm: transformed[0],\n\t\t};\n\t\tconst position = options?.position ?? \"back\";\n\t\tif (kind === \"steer\") {\n\t\t\tif (position === \"front\") {\n\t\t\t\tthis.steeringQueue.unshift(queued);\n\t\t\t} else {\n\t\t\t\tthis.steeringQueue.push(queued);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (position === \"front\") {\n\t\t\tthis.followUpQueue.unshift(queued);\n\t\t} else {\n\t\t\tthis.followUpQueue.push(queued);\n\t\t}\n\t}\n\n\t/**\n\t * Clears all messages from the conversation history.\n\t */\n\tclearMessages(): void {\n\t\tthis._state.messages = [];\n\t}\n\n\t/**\n\t * Get the number of queued messages.\n\t */\n\tgetQueuedMessageCount(): number {\n\t\treturn this.steeringQueue.length + this.followUpQueue.length;\n\t}\n\n\tgetQueuedSteeringCount(): number {\n\t\treturn this.steeringQueue.length;\n\t}\n\n\tgetQueuedFollowUpCount(): number {\n\t\treturn this.followUpQueue.length;\n\t}\n\n\tgetQueuedMessagesSnapshot(): {\n\t\tsteering: ReadonlyArray<QueuedMessage<AppMessage>>;\n\t\tfollowUps: ReadonlyArray<QueuedMessage<AppMessage>>;\n\t} {\n\t\treturn {\n\t\t\tsteering: [...this.steeringQueue],\n\t\t\tfollowUps: [...this.followUpQueue],\n\t\t};\n\t}\n\n\tremoveQueuedMessage(id: number): QueuedMessage<AppMessage> | null {\n\t\tconst steeringIndex = this.steeringQueue.findIndex(\n\t\t\t(message) => message.id === id,\n\t\t);\n\t\tif (steeringIndex !== -1) {\n\t\t\treturn this.steeringQueue.splice(steeringIndex, 1)[0] ?? null;\n\t\t}\n\t\tconst followUpIndex = this.followUpQueue.findIndex(\n\t\t\t(message) => message.id === id,\n\t\t);\n\t\tif (followUpIndex !== -1) {\n\t\t\treturn this.followUpQueue.splice(followUpIndex, 1)[0] ?? null;\n\t\t}\n\t\treturn null;\n\t}\n\n\tclearQueuedMessages(): Array<QueuedMessage<AppMessage>> {\n\t\tconst queued = [...this.steeringQueue, ...this.followUpQueue].sort(\n\t\t\t(a, b) => a.createdAt - b.createdAt || a.id - b.id,\n\t\t);\n\t\tthis.steeringQueue = [];\n\t\tthis.followUpQueue = [];\n\t\treturn queued;\n\t}\n\n\t/**\n\t * Aborts the current streaming request if one is in progress.\n\t */\n\tabort(): void {\n\t\tif (this.abortController) {\n\t\t\tthis.abortController.abort();\n\t\t\tthis.abortController = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Aborts the current streaming request and saves any partial response.\n\t *\n\t * Unlike `abort()`, this method preserves the partial assistant message\n\t * that was being streamed, adding it to the message history. This allows\n\t * users to keep useful partial responses when interrupting long generations.\n\t *\n\t * @returns The partial message that was saved, or null if no partial was available\n\t *\n\t * @example\n\t * ```typescript\n\t * // User presses Ctrl+C during a long response\n\t * const partial = agent.abortAndKeepPartial();\n\t * if (partial) {\n\t * console.log(\"Saved partial response:\", partial.content);\n\t * }\n\t * ```\n\t */\n\tabortAndKeepPartial(): AppMessage | null {\n\t\tconst partialMessage = this._state.streamMessage;\n\n\t\t// Only save if we have an assistant message (not user message)\n\t\tif (\n\t\t\tpartialMessage &&\n\t\t\tpartialMessage.role === \"assistant\" &&\n\t\t\tthis.abortController\n\t\t) {\n\t\t\t// Mark as interrupted by setting stopReason\n\t\t\tconst savedMessage: AssistantMessage = {\n\t\t\t\t...partialMessage,\n\t\t\t\tstopReason: \"aborted\",\n\t\t\t};\n\n\t\t\t// Add to message history before aborting\n\t\t\tthis._state.messages = [...this._state.messages, savedMessage];\n\t\t\tthis._state.streamMessage = null;\n\t\t\tthis._partialAccepted = savedMessage;\n\n\t\t\tlogger.info(\"Saved partial message on interrupt\", {\n\t\t\t\tcontentLength: JSON.stringify(savedMessage.content).length,\n\t\t\t});\n\n\t\t\t// Now abort\n\t\t\tthis.abort();\n\n\t\t\treturn savedMessage;\n\t\t}\n\n\t\t// No partial to save, just abort\n\t\tthis.abort();\n\n\t\treturn null;\n\t}\n\n\t/** Tracks if a partial message was accepted during abort */\n\tprivate _partialAccepted: AppMessage | null = null;\n\n\t/**\n\t * Returns a promise that resolves when the current prompt completes.\n\t * Returns immediately resolved promise if no prompt is running.\n\t */\n\twaitForIdle(): Promise<void> {\n\t\treturn this.runningPrompt ?? Promise.resolve();\n\t}\n\n\t/**\n\t * Clear all messages and state. Call abort() first if a prompt is in flight.\n\t */\n\treset(): void {\n\t\tthis._state.messages = [];\n\t\tthis._state.isStreaming = false;\n\t\tthis._state.streamMessage = null;\n\t\tthis._state.pendingToolCalls.clear();\n\t\tthis.activeToolBatchIds = null;\n\t\tthis.completedToolBatch = [];\n\t\tthis.nextRunHistoryQueue = [];\n\t\tthis.nextRunPromptOnlyQueue = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\tthis.nextRunSystemPromptAdditions = [];\n\t\tthis._state.error = undefined;\n\t\tthis.steeringQueue = [];\n\t\tthis.followUpQueue = [];\n\t\tthis.abortController = undefined;\n\t\tthis.runningPrompt = undefined;\n\t\tthis.resolveRunningPrompt = undefined;\n\t\tthis.withheldRecoverableOverflowError = undefined;\n\t\tthis.withheldRecoverableLengthMessages = [];\n\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\tthis.currentTaskBudget = undefined;\n\t\tthis.diagnosticRepairAttempts.clear();\n\t\tthis.currentTurnEvaluationFailure = undefined;\n\t\tthis.currentTurnSkillSelections.clear();\n\t\t// Note: Do NOT clear listeners - they contain the TUI subscription\n\t\t// and must persist across resets for UI updates to work\n\t}\n\n\tprivate buildProviderMessages(\n\t\ttransformedMessages: Message[],\n\t\tcontinuationPrompt?: string,\n\t): Message[] {\n\t\tconst providerInputMessages = continuationPrompt\n\t\t\t? [\n\t\t\t\t\t...transformedMessages,\n\t\t\t\t\t{\n\t\t\t\t\t\trole: \"user\" as const,\n\t\t\t\t\t\tcontent: continuationPrompt,\n\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t: transformedMessages;\n\t\treturn normalizeMessagesForProvider(\n\t\t\tproviderInputMessages,\n\t\t\tthis._state.model,\n\t\t);\n\t}\n\n\tprivate handleStreamedMessageEvent(\n\t\tevent: StreamedMessageEvent,\n\t\tstate: BufferedAssistantStartState,\n\t): BufferedAssistantStartState {\n\t\tlet { pendingAssistantStart, lastStopReason } = state;\n\n\t\tif (event.type === \"message_start\") {\n\t\t\tif (\n\t\t\t\tthis.suppressRecoverableOverflowErrors &&\n\t\t\t\tisAssistantMessage(event.message)\n\t\t\t) {\n\t\t\t\tpendingAssistantStart = event.message;\n\t\t\t\tthis._state.streamMessage = isCoreMessage(event.message)\n\t\t\t\t\t? event.message\n\t\t\t\t\t: null;\n\t\t\t\tif (\n\t\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t\t) ||\n\t\t\t\t\tthis.shouldWithholdRecoverableMaxOutput(event.message) ||\n\t\t\t\t\tthis.shouldMergeRecoverableLengthContinuation(event.message)\n\t\t\t\t) {\n\t\t\t\t\tthis._state.streamMessage = null;\n\t\t\t\t\tpendingAssistantStart = null;\n\t\t\t\t}\n\t\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t\t}\n\t\t\tif (\n\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t) ||\n\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t(this.shouldWithholdRecoverableMaxOutput(event.message) ||\n\t\t\t\t\t\tthis.shouldMergeRecoverableLengthContinuation(event.message)))\n\t\t\t) {\n\t\t\t\tthis._state.streamMessage = null;\n\t\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t\t}\n\t\t\tthis._state.streamMessage = isCoreMessage(event.message)\n\t\t\t\t? event.message\n\t\t\t\t: null;\n\t\t\tthis.emit(event);\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\n\t\tif (event.type === \"message_update\") {\n\t\t\tif (\n\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t) ||\n\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t(this.shouldWithholdRecoverableMaxOutput(event.message) ||\n\t\t\t\t\t\tthis.shouldMergeRecoverableLengthContinuation(event.message)))\n\t\t\t) {\n\t\t\t\tthis._state.streamMessage = null;\n\t\t\t\tpendingAssistantStart = null;\n\t\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t\t}\n\t\t\tif (pendingAssistantStart) {\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"message_start\",\n\t\t\t\t\tmessage: pendingAssistantStart,\n\t\t\t\t});\n\t\t\t\tpendingAssistantStart = null;\n\t\t\t}\n\t\t\tthis._state.streamMessage = isCoreMessage(event.message)\n\t\t\t\t? event.message\n\t\t\t\t: null;\n\t\t\tthis.emit(event);\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\n\t\tthis._state.streamMessage = null;\n\t\tlet incoming = event.message as AppMessage;\n\t\tif (this.shouldWithholdRecoverableOverflowError(incoming)) {\n\t\t\tpendingAssistantStart = null;\n\t\t\tthis.withheldRecoverableOverflowError = incoming;\n\t\t\tlastStopReason = incoming.stopReason;\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\t\tif (\n\t\t\tisAssistantMessage(incoming) &&\n\t\t\tthis.shouldWithholdRecoverableMaxOutput(incoming)\n\t\t) {\n\t\t\tpendingAssistantStart = null;\n\t\t\tconst assistantIncoming = incoming;\n\t\t\tconst lastMessage = this._state.messages[this._state.messages.length - 1];\n\t\t\tif (!isDuplicateMessage(lastMessage, assistantIncoming)) {\n\t\t\t\tthis._state.messages = [...this._state.messages, assistantIncoming];\n\t\t\t\tthis.withheldRecoverableLengthMessages.push(assistantIncoming);\n\t\t\t}\n\t\t\tlastStopReason = \"length\";\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\t\tif (\n\t\t\tisAssistantMessage(incoming) &&\n\t\t\tthis.shouldMergeRecoverableLengthContinuation(incoming)\n\t\t) {\n\t\t\tpendingAssistantStart = null;\n\t\t\tincoming = this.mergeWithWithheldRecoverableLengthMessages(incoming);\n\t\t\tlastStopReason = incoming.stopReason;\n\t\t\tthis.primeToolBatch(incoming);\n\t\t\tthis.emit({ type: \"message_start\", message: incoming });\n\t\t\tthis.emit({ ...event, message: incoming });\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\t\tif (pendingAssistantStart && isAssistantMessage(incoming)) {\n\t\t\tthis.emit({\n\t\t\t\ttype: \"message_start\",\n\t\t\t\tmessage: pendingAssistantStart,\n\t\t\t});\n\t\t\tpendingAssistantStart = null;\n\t\t}\n\t\tconst lastMessage = this._state.messages[this._state.messages.length - 1];\n\t\tif (!isDuplicateMessage(lastMessage, incoming)) {\n\t\t\tthis._state.messages = [...this._state.messages, incoming];\n\t\t}\n\t\tif (\n\t\t\t\"stopReason\" in event.message &&\n\t\t\tevent.message.stopReason !== undefined\n\t\t) {\n\t\t\tlastStopReason = event.message.stopReason;\n\t\t}\n\t\tthis.primeToolBatch(incoming);\n\t\tthis.emit({ ...event, message: incoming });\n\t\treturn { pendingAssistantStart, lastStopReason };\n\t}\n\n\t/**\n\t * Sends a prompt to the model and processes the response, including tool calls.\n\t *\n\t * This is the main entry point for interacting with the agent. It handles:\n\t * - Building the user message with optional image/document attachments\n\t * - Streaming the model's response\n\t * - Executing any tool calls made by the model\n\t * - Automatic retries for tool execution\n\t *\n\t * @param input - The user's text prompt\n\t * @param attachments - Optional images or documents to include with the prompt\n\t *\n\t * @example\n\t * ```typescript\n\t * await agent.prompt(\"Read the package.json file\");\n\t *\n\t * // With image attachment\n\t * await agent.prompt(\"What's in this screenshot?\", [{\n\t * type: \"image\",\n\t * content: base64Data,\n\t * mimeType: \"image/png\"\n\t * }]);\n\t * ```\n\t */\n\tasync prompt(input: string, attachments?: Attachment[]): Promise<void> {\n\t\t// Prevent concurrent prompts\n\t\tif (this.runningPrompt) {\n\t\t\tthrow new Error(\n\t\t\t\t\"A prompt is already in progress. Wait for it to complete before starting another.\",\n\t\t\t);\n\t\t}\n\n\t\tconst queryProfiler = createQueryProfilerFromEnv();\n\t\tqueryProfiler.checkpoint(\"input:received\");\n\n\t\tthis.clearTransientRunState();\n\n\t\t// Set up running prompt tracking\n\t\tthis.runningPrompt = new Promise<void>((resolve) => {\n\t\t\tthis.resolveRunningPrompt = resolve;\n\t\t});\n\n\t\tfor (const queuedMessage of this.dequeueNextRunHistoryMessages()) {\n\t\t\tthis.injectMessage(queuedMessage);\n\t\t}\n\n\t\tconst userMessage: UserMessageWithAttachments = {\n\t\t\trole: \"user\",\n\t\t\tcontent: input,\n\t\t\tattachments: attachments?.length ? attachments : undefined,\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\tthis._state.messages = [...this._state.messages, userMessage];\n\t\tthis._state.isStreaming = true;\n\n\t\tconst abortController = new AbortController();\n\t\tthis.abortController = abortController;\n\n\t\tthis.emit({ type: \"agent_start\" });\n\n\t\tlet aborted = false;\n\t\tlet lastStopReason: StopReason | undefined;\n\t\tlet pendingAssistantStart: AssistantMessage | null = null;\n\n\t\ttry {\n\t\t\tconst transformedMessages = await this.messageTransformer(\n\t\t\t\tthis._state.messages,\n\t\t\t);\n\t\t\tconst messagesToSend = this.buildProviderMessages(transformedMessages);\n\t\t\tqueryProfiler.checkpoint(\"context:loaded\", {\n\t\t\t\tmessages: messagesToSend.length,\n\t\t\t});\n\n\t\t\t// Determine reasoning level\n\t\t\tconst level = this._state.thinkingLevel;\n\t\t\tconst reasoning = this._state.model.reasoning\n\t\t\t\t? mapThinkingLevel(level)\n\t\t\t\t: undefined;\n\n\t\t\t// Inject Context from Environment (Terrarium Principle)\n\t\t\tlet systemPrompt = this._state.systemPrompt;\n\t\t\tconst nextRunSystemPromptAdditions =\n\t\t\t\tthis.dequeueNextRunSystemPromptAdditions();\n\t\t\tif (nextRunSystemPromptAdditions.length > 0) {\n\t\t\t\tsystemPrompt = `${systemPrompt}\\n\\n${nextRunSystemPromptAdditions.join(\"\\n\\n\")}`;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst contextAdditions =\n\t\t\t\t\tawait this.contextManager.getCombinedSystemPrompt();\n\t\t\t\tif (contextAdditions) {\n\t\t\t\t\tsystemPrompt += `\\n\\n${contextAdditions}`;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to inject environmental context\", {\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t\tqueryProfiler.checkpoint(\"prompt:assembled\", {\n\t\t\t\tsystem_bytes: systemPrompt.length,\n\t\t\t});\n\n\t\t\tconst runConfig = {\n\t\t\t\tsystemPrompt,\n\t\t\t\ttools: this._state.tools,\n\t\t\t\tmodel: this._state.model,\n\t\t\t\treasoning,\n\t\t\t\treasoningSummary: this._state.reasoningSummary,\n\t\t\t\tpreprocessMessages: this.preprocessMessages,\n\t\t\t\tgetSteeringMessages: async <T>() => this.dequeueSteeringMessages<T>(),\n\t\t\t\tgetFollowUpMessages: async <T>() => this.dequeueFollowUpMessages<T>(),\n\t\t\t\tgetPromptOnlyMessages: async () => this.dequeuePromptOnlyMessages(),\n\t\t\t\tuser: this._state.user,\n\t\t\t\tsession: this._state.session,\n\t\t\t\tsandbox: this._state.sandbox,\n\t\t\t\ttemperature: this._state.temperature,\n\t\t\t\ttopP: this._state.topP,\n\t\t\t\ttaskBudget: this.currentTaskBudget,\n\t\t\t\tqueryProfiler,\n\t\t\t};\n\t\t\tqueryProfiler.checkpoint(\"tools:prepared\", {\n\t\t\t\ttools: this._state.tools.length,\n\t\t\t});\n\n\t\t\tfor await (const event of this.transport.run(\n\t\t\t\tmessagesToSend, // Include userMessage in messages array\n\t\t\t\tuserMessage,\n\t\t\t\trunConfig,\n\t\t\t\tabortController.signal,\n\t\t\t)) {\n\t\t\t\tif (\n\t\t\t\t\tevent.type === \"message_start\" ||\n\t\t\t\t\tevent.type === \"message_update\" ||\n\t\t\t\t\tevent.type === \"message_end\"\n\t\t\t\t) {\n\t\t\t\t\t({ pendingAssistantStart, lastStopReason } =\n\t\t\t\t\t\tthis.handleStreamedMessageEvent(event, {\n\t\t\t\t\t\t\tpendingAssistantStart,\n\t\t\t\t\t\t\tlastStopReason,\n\t\t\t\t\t\t}));\n\t\t\t\t} else if (event.type === \"tool_execution_start\") {\n\t\t\t\t\tthis.handleToolExecutionStart(event);\n\t\t\t\t} else if (event.type === \"tool_execution_update\") {\n\t\t\t\t\tthis.handleToolExecutionUpdate(event);\n\t\t\t\t} else if (event.type === \"tool_execution_end\") {\n\t\t\t\t\tthis.handleToolExecutionEnd(event);\n\t\t\t\t} else if (event.type === \"tool_phase_summary\") {\n\t\t\t\t\tthis.handleToolPhaseSummary(event);\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else if (event.type === \"turn_end\") {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t\t\t) ||\n\t\t\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t\t\tthis.shouldWithholdRecoverableMaxOutput(event.message))\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.pendingMergedRecoverableTurnEnd) {\n\t\t\t\t\t\tthis.emit({\n\t\t\t\t\t\t\t...event,\n\t\t\t\t\t\t\tmessage: this.pendingMergedRecoverableTurnEnd,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error: unknown) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\taborted = true;\n\t\t\t\tqueryProfiler.terminal(\"turn:aborted\");\n\t\t\t} else {\n\t\t\t\tthis._state.error =\n\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\tqueryProfiler.terminal(\"turn:error\");\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._state.isStreaming = false;\n\t\t\tif (this.abortController === abortController) {\n\t\t\t\tthis.abortController = undefined;\n\t\t\t}\n\t\t\t// Clean up running prompt tracking\n\t\t\tthis.resolveRunningPrompt?.();\n\t\t\tthis.runningPrompt = undefined;\n\t\t\tthis.resolveRunningPrompt = undefined;\n\t\t\tif (this._state.pendingToolCalls.size > 0) {\n\t\t\t\tconst reason = aborted\n\t\t\t\t\t? \"Error: Operation aborted\"\n\t\t\t\t\t: \"Error: Tool execution did not complete\";\n\t\t\t\tthis.resolvePendingToolCalls(reason);\n\t\t\t}\n\n\t\t\tconst partialAccepted = this._partialAccepted;\n\t\t\tthis._partialAccepted = null;\n\t\t\tthis.publishCurrentTurnSkillOutcomes({\n\t\t\t\taborted,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"agent_end\",\n\t\t\t\tmessages: this._state.messages,\n\t\t\t\taborted,\n\t\t\t\tpartialAccepted: partialAccepted ?? undefined,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Continue the agent conversation from existing messages without adding a new user message.\n\t * Useful for overflow recovery after compaction, or resuming a partial response.\n\t *\n\t * @param options - Optional configuration for continuation\n\t */\n\tasync continue(options?: {\n\t\t/** Override the system prompt for this continuation */\n\t\tsystemPromptOverride?: string;\n\t\t/** Override max output tokens for this continuation only. */\n\t\tmaxTokensOverride?: number;\n\t\t/**\n\t\t * Provider-only user instruction appended for this continuation.\n\t\t * Not persisted to session history or shown in the UI.\n\t\t */\n\t\tcontinuationPrompt?: string;\n\t}): Promise<void> {\n\t\t// Prevent concurrent prompts\n\t\tif (this.runningPrompt) {\n\t\t\tthrow new Error(\n\t\t\t\t\"A prompt is already in progress. Wait for it to complete before starting another.\",\n\t\t\t);\n\t\t}\n\n\t\t// Check we have messages to continue from\n\t\tif (this._state.messages.length === 0) {\n\t\t\tthrow new Error(\"No messages to continue from\");\n\t\t}\n\n\t\tconst queryProfiler = createQueryProfilerFromEnv();\n\t\tqueryProfiler.checkpoint(\"input:received\", { continuation: true });\n\n\t\tthis.clearTransientRunState();\n\n\t\t// Set up running prompt tracking\n\t\tthis.runningPrompt = new Promise<void>((resolve) => {\n\t\t\tthis.resolveRunningPrompt = resolve;\n\t\t});\n\n\t\tfor (const queuedMessage of this.dequeueNextRunHistoryMessages()) {\n\t\t\tthis.injectMessage(queuedMessage);\n\t\t}\n\n\t\tthis._state.isStreaming = true;\n\n\t\tconst abortController = new AbortController();\n\t\tthis.abortController = abortController;\n\n\t\tthis.emit({ type: \"agent_start\", continuation: true });\n\n\t\tlet aborted = false;\n\t\tlet lastStopReason: StopReason | undefined;\n\t\tlet pendingAssistantStart: AssistantMessage | null = null;\n\n\t\ttry {\n\t\t\tconst transformedMessages = await this.messageTransformer(\n\t\t\t\tthis._state.messages,\n\t\t\t);\n\t\t\tconst continuationPrompt = options?.continuationPrompt?.trim();\n\t\t\tconst providerMessages = this.buildProviderMessages(\n\t\t\t\ttransformedMessages,\n\t\t\t\tcontinuationPrompt,\n\t\t\t);\n\t\t\tqueryProfiler.checkpoint(\"context:loaded\", {\n\t\t\t\tmessages: providerMessages.length,\n\t\t\t});\n\n\t\t\t// Determine reasoning level\n\t\t\tconst level = this._state.thinkingLevel;\n\t\t\tconst reasoning = this._state.model.reasoning\n\t\t\t\t? mapThinkingLevel(level)\n\t\t\t\t: undefined;\n\n\t\t\t// Inject Context from Environment\n\t\t\tlet systemPrompt =\n\t\t\t\toptions?.systemPromptOverride ?? this._state.systemPrompt;\n\t\t\tconst nextRunSystemPromptAdditions =\n\t\t\t\tthis.dequeueNextRunSystemPromptAdditions();\n\t\t\tif (nextRunSystemPromptAdditions.length > 0) {\n\t\t\t\tsystemPrompt = `${systemPrompt}\\n\\n${nextRunSystemPromptAdditions.join(\"\\n\\n\")}`;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst contextAdditions =\n\t\t\t\t\tawait this.contextManager.getCombinedSystemPrompt();\n\t\t\t\tif (contextAdditions) {\n\t\t\t\t\tsystemPrompt += `\\n\\n${contextAdditions}`;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to inject environmental context\", {\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t}\n\t\t\tqueryProfiler.checkpoint(\"prompt:assembled\", {\n\t\t\t\tsystem_bytes: systemPrompt.length,\n\t\t\t});\n\n\t\t\t// Create a synthetic continuation trigger message\n\t\t\t// This signals to the transport that we want the model to continue responding\n\t\t\tconst continuationMessage: UserMessage = {\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: [],\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\n\t\t\tconst runConfig = {\n\t\t\t\tsystemPrompt,\n\t\t\t\ttools: this._state.tools,\n\t\t\t\tmodel:\n\t\t\t\t\toptions?.maxTokensOverride !== undefined\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...this._state.model,\n\t\t\t\t\t\t\t\tmaxTokens: options.maxTokensOverride,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: this._state.model,\n\t\t\t\treasoning,\n\t\t\t\treasoningSummary: this._state.reasoningSummary,\n\t\t\t\tpreprocessMessages: this.preprocessMessages,\n\t\t\t\tgetSteeringMessages: async <T>() => this.dequeueSteeringMessages<T>(),\n\t\t\t\tgetFollowUpMessages: async <T>() => this.dequeueFollowUpMessages<T>(),\n\t\t\t\tgetPromptOnlyMessages: async () => this.dequeuePromptOnlyMessages(),\n\t\t\t\tuser: this._state.user,\n\t\t\t\tsession: this._state.session,\n\t\t\t\tsandbox: this._state.sandbox,\n\t\t\t\ttemperature: this._state.temperature,\n\t\t\t\ttopP: this._state.topP,\n\t\t\t\ttaskBudget: this.currentTaskBudget,\n\t\t\t\temitUserMessageEnd: false,\n\t\t\t\tqueryProfiler,\n\t\t\t};\n\t\t\tqueryProfiler.checkpoint(\"tools:prepared\", {\n\t\t\t\ttools: this._state.tools.length,\n\t\t\t});\n\n\t\t\tfor await (const event of this.transport.run(\n\t\t\t\tproviderMessages,\n\t\t\t\tcontinuationMessage,\n\t\t\t\trunConfig,\n\t\t\t\tabortController.signal,\n\t\t\t)) {\n\t\t\t\tif (\n\t\t\t\t\tevent.type === \"message_start\" ||\n\t\t\t\t\tevent.type === \"message_update\" ||\n\t\t\t\t\tevent.type === \"message_end\"\n\t\t\t\t) {\n\t\t\t\t\t({ pendingAssistantStart, lastStopReason } =\n\t\t\t\t\t\tthis.handleStreamedMessageEvent(event, {\n\t\t\t\t\t\t\tpendingAssistantStart,\n\t\t\t\t\t\t\tlastStopReason,\n\t\t\t\t\t\t}));\n\t\t\t\t} else if (event.type === \"tool_execution_start\") {\n\t\t\t\t\tthis.handleToolExecutionStart(event);\n\t\t\t\t} else if (event.type === \"tool_execution_update\") {\n\t\t\t\t\tthis.handleToolExecutionUpdate(event);\n\t\t\t\t} else if (event.type === \"tool_execution_end\") {\n\t\t\t\t\tthis.handleToolExecutionEnd(event);\n\t\t\t\t} else if (event.type === \"tool_phase_summary\") {\n\t\t\t\t\tthis.handleToolPhaseSummary(event);\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else if (event.type === \"turn_end\") {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t\t\t) ||\n\t\t\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t\t\tthis.shouldWithholdRecoverableMaxOutput(event.message))\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.pendingMergedRecoverableTurnEnd) {\n\t\t\t\t\t\tthis.emit({\n\t\t\t\t\t\t\t...event,\n\t\t\t\t\t\t\tmessage: this.pendingMergedRecoverableTurnEnd,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error: unknown) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\taborted = true;\n\t\t\t\tqueryProfiler.terminal(\"turn:aborted\");\n\t\t\t} else {\n\t\t\t\tthis._state.error =\n\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\tqueryProfiler.terminal(\"turn:error\");\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._state.isStreaming = false;\n\t\t\tif (this.abortController === abortController) {\n\t\t\t\tthis.abortController = undefined;\n\t\t\t}\n\t\t\t// Clean up running prompt tracking\n\t\t\tthis.resolveRunningPrompt?.();\n\t\t\tthis.runningPrompt = undefined;\n\t\t\tthis.resolveRunningPrompt = undefined;\n\t\t\tif (this._state.pendingToolCalls.size > 0) {\n\t\t\t\tconst reason = aborted\n\t\t\t\t\t? \"Error: Operation aborted\"\n\t\t\t\t\t: \"Error: Tool execution did not complete\";\n\t\t\t\tthis.resolvePendingToolCalls(reason);\n\t\t\t}\n\n\t\t\tconst partialAccepted = this._partialAccepted;\n\t\t\tthis._partialAccepted = null;\n\t\t\tthis.publishCurrentTurnSkillOutcomes({\n\t\t\t\taborted,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"agent_end\",\n\t\t\t\tmessages: this._state.messages,\n\t\t\t\taborted,\n\t\t\t\tpartialAccepted: partialAccepted ?? undefined,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate handleToolExecutionStart(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_start\" }>,\n\t): void {\n\t\tconst tool = this._state.tools.find(\n\t\t\t(candidate) => candidate.name === event.toolName,\n\t\t);\n\t\tconst displayName = describeToolDisplayName(\n\t\t\tevent.toolName,\n\t\t\tevent.args,\n\t\t\ttool,\n\t\t);\n\t\tconst summaryLabel = summarizeToolUse(event.toolName, event.args, tool);\n\t\tthis._state.pendingToolCalls.set(event.toolCallId, {\n\t\t\ttoolName: event.toolName,\n\t\t\targs: event.args,\n\t\t\ttool,\n\t\t\tdisplayName,\n\t\t\tsummaryLabel,\n\t\t});\n\t\tconst safeArgumentProjection = projectSafeToolCallArguments(event.args);\n\t\trecordMaestroToolCallAttempt({\n\t\t\ttool_call_id: event.toolCallId,\n\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\ttool_name: event.toolName,\n\t\t\tsafe_arguments: safeArgumentProjection.safe_arguments,\n\t\t\tredactions: safeArgumentProjection.redactions,\n\t\t\tcorrelation: {\n\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t},\n\t\t});\n\t\tthis.emitStatus(describeToolActivity(event.toolName, event.args, tool), {\n\t\t\tkind: \"tool_execution_summary\",\n\t\t\ttoolCallId: event.toolCallId,\n\t\t\ttoolName: event.toolName,\n\t\t\tdisplayName,\n\t\t\tsummaryLabel,\n\t\t});\n\t\tthis.emit({ ...event, displayName, summaryLabel });\n\t}\n\n\tprivate preserveSpecificPendingToolLabel(\n\t\tnextLabel: string,\n\t\tpendingLabel: string | undefined,\n\t\tgenericLabel: string,\n\t): string {\n\t\tif (\n\t\t\t!pendingLabel ||\n\t\t\tpendingLabel === genericLabel ||\n\t\t\tnextLabel !== genericLabel\n\t\t) {\n\t\t\treturn nextLabel;\n\t\t}\n\t\treturn pendingLabel;\n\t}\n\n\tprivate handleToolExecutionUpdate(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_update\" }>,\n\t): void {\n\t\tconst pending = this._state.pendingToolCalls.get(event.toolCallId);\n\t\tconst tool = pending?.tool;\n\t\tconst nextDisplayName = describeToolDisplayName(\n\t\t\tevent.toolName,\n\t\t\tevent.args,\n\t\t\ttool,\n\t\t);\n\t\tconst nextSummaryLabel = summarizeToolUse(event.toolName, event.args, tool);\n\t\tconst displayName = this.preserveSpecificPendingToolLabel(\n\t\t\tnextDisplayName,\n\t\t\tpending?.displayName,\n\t\t\tdescribeToolDisplayName(event.toolName, {}, tool),\n\t\t);\n\t\tconst summaryLabel = this.preserveSpecificPendingToolLabel(\n\t\t\tnextSummaryLabel,\n\t\t\tpending?.summaryLabel,\n\t\t\tsummarizeToolUse(event.toolName, {}, tool),\n\t\t);\n\t\tif (pending) {\n\t\t\tpending.args = event.args;\n\t\t\tpending.displayName = displayName;\n\t\t\tpending.summaryLabel = summaryLabel;\n\t\t}\n\t\tthis.emit({ ...event, displayName, summaryLabel });\n\t}\n\n\tprivate handleToolExecutionEnd(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst pending = this._state.pendingToolCalls.get(event.toolCallId);\n\t\tthis._state.pendingToolCalls.delete(event.toolCallId);\n\t\tthis.emit({\n\t\t\t...event,\n\t\t\tdisplayName: pending?.displayName,\n\t\t\tsummaryLabel: pending?.summaryLabel,\n\t\t});\n\t\trecordMaestroToolCallCompleted({\n\t\t\ttool_call_id: event.toolCallId,\n\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\tstatus: event.isError\n\t\t\t\t? \"MAESTRO_TOOL_CALL_STATUS_FAILED\"\n\t\t\t\t: \"MAESTRO_TOOL_CALL_STATUS_SUCCEEDED\",\n\t\t\tskill_metadata: event.skillMetadata,\n\t\t\tapproval_request_id: event.approvalRequestId,\n\t\t\tgoverned_outcome: event.governedOutcome,\n\t\t\terror_code: event.errorCode,\n\t\t\terror_message: event.isError\n\t\t\t\t? event.result.content\n\t\t\t\t\t\t.map((part) => (part.type === \"text\" ? part.text : \"\"))\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(\"\\n\")\n\t\t\t\t: undefined,\n\t\t\tcorrelation: {\n\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t},\n\t\t});\n\t\tif (event.skillMetadata) {\n\t\t\tthis.recordCurrentTurnSkillSelection({\n\t\t\t\tskillMetadata: event.skillMetadata,\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolExecutionId: event.toolExecutionId,\n\t\t\t});\n\t\t\tif (event.toolName === \"Skill\") {\n\t\t\t\trecordMaestroSkillInvoked({\n\t\t\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\t\t\tskill_metadata: event.skillMetadata,\n\t\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\t\t\tcorrelation: {\n\t\t\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t\t\t},\n\t\t\t\t\tinvoked_at: new Date(event.result.timestamp).toISOString(),\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tthis.publishCurrentTurnEvalScores(event);\n\t\tthis.handleDiagnosticDeltaToolResult(event);\n\t\tif (!pending) {\n\t\t\treturn;\n\t\t}\n\t\tthis.completedToolBatch.push({\n\t\t\ttoolCallId: event.toolCallId,\n\t\t\ttoolName: event.toolName,\n\t\t\targs: pending.args ?? {},\n\t\t\tisError: event.isError,\n\t\t\ttool: pending.tool,\n\t\t});\n\t\tif (this.activeToolBatchIds?.delete(event.toolCallId)) {\n\t\t\tif (this.activeToolBatchIds.size > 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.activeToolBatchIds = null;\n\t\t\tthis.emitToolBatchSummary();\n\t\t}\n\t}\n\n\tprivate buildSkillSelectionKey(skillMetadata: SkillArtifactMetadata): string {\n\t\treturn [\n\t\t\tskillMetadata.artifactId,\n\t\t\tskillMetadata.source,\n\t\t\tskillMetadata.name,\n\t\t\tskillMetadata.version,\n\t\t\tskillMetadata.hash,\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(\":\");\n\t}\n\n\tprivate recordCurrentTurnSkillSelection(selection: {\n\t\tskillMetadata: SkillArtifactMetadata;\n\t\ttoolCallId: string;\n\t\ttoolExecutionId?: string;\n\t}): void {\n\t\tconst key = this.buildSkillSelectionKey(selection.skillMetadata);\n\t\tif (!key) {\n\t\t\treturn;\n\t\t}\n\t\tconst existing = this.currentTurnSkillSelections.get(key);\n\t\tthis.currentTurnSkillSelections.set(key, {\n\t\t\t...existing,\n\t\t\t...selection,\n\t\t\tevaluationFailure: existing?.evaluationFailure,\n\t\t});\n\t}\n\n\tprivate getCurrentTurnSkillSelectionForEvaluation(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): CurrentTurnSkillSelection | undefined {\n\t\tif (event.skillMetadata) {\n\t\t\treturn this.currentTurnSkillSelections.get(\n\t\t\t\tthis.buildSkillSelectionKey(event.skillMetadata),\n\t\t\t);\n\t\t}\n\t\tif (this.currentTurnSkillSelections.size === 1) {\n\t\t\tfor (const selection of this.currentTurnSkillSelections.values()) {\n\t\t\t\treturn selection;\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate publishCurrentTurnEvalScores(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst evaluation = getToolEvaluationSummary(event.result.details);\n\t\tif (!evaluation || this.currentTurnSkillSelections.size === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst scoredAt = new Date(event.result.timestamp).toISOString();\n\t\tconst failedEvaluation = isFailedToolEvaluation(evaluation)\n\t\t\t? {\n\t\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\t\ttoolExecutionId: event.toolExecutionId,\n\t\t\t\t\ttoolName: event.toolName,\n\t\t\t\t\tscore: evaluation.score,\n\t\t\t\t\tthreshold: evaluation.threshold,\n\t\t\t\t\trationale: evaluation.rationale,\n\t\t\t\t\tassertionCount: evaluation.assertionCount,\n\t\t\t\t}\n\t\t\t: undefined;\n\t\tconst evaluationTarget = failedEvaluation\n\t\t\t? this.getCurrentTurnSkillSelectionForEvaluation(event)\n\t\t\t: undefined;\n\t\tif (failedEvaluation) {\n\t\t\tthis.currentTurnEvaluationFailure = failedEvaluation;\n\t\t}\n\t\tif (failedEvaluation && evaluationTarget) {\n\t\t\tevaluationTarget.evaluationFailure = failedEvaluation;\n\t\t}\n\t\tfor (const selection of this.currentTurnSkillSelections.values()) {\n\t\t\trecordMaestroEvalScored({\n\t\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\t\tskill_metadata: selection.skillMetadata,\n\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\t\ttool_name: event.toolName,\n\t\t\t\tscore: evaluation.score,\n\t\t\t\tthreshold: evaluation.threshold,\n\t\t\t\tpassed: evaluation.passed,\n\t\t\t\trationale: evaluation.rationale,\n\t\t\t\tassertion_count: evaluation.assertionCount,\n\t\t\t\tcorrelation: {\n\t\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t\t},\n\t\t\t\tscored_at: scoredAt,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate publishCurrentTurnSkillOutcomes(options: {\n\t\taborted: boolean;\n\t\tstopReason?: StopReason;\n\t}): void {\n\t\tif (this.currentTurnSkillSelections.size === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst baseTurnStatus = options.aborted\n\t\t\t? \"aborted\"\n\t\t\t: this._state.error !== undefined\n\t\t\t\t? \"error\"\n\t\t\t\t: undefined;\n\n\t\tfor (const selection of this.currentTurnSkillSelections.values()) {\n\t\t\tconst evaluationFailure = selection.evaluationFailure;\n\t\t\tconst turnStatus =\n\t\t\t\tbaseTurnStatus ??\n\t\t\t\t(evaluationFailure || this.currentTurnEvaluationFailure\n\t\t\t\t\t? \"evaluation_failed\"\n\t\t\t\t\t: \"success\");\n\t\t\tconst outcomeEvaluationFailure =\n\t\t\t\tevaluationFailure ?? this.currentTurnEvaluationFailure;\n\t\t\tconst errorMessage =\n\t\t\t\tturnStatus === \"aborted\"\n\t\t\t\t\t? \"Operation aborted\"\n\t\t\t\t\t: turnStatus === \"error\"\n\t\t\t\t\t\t? this._state.error\n\t\t\t\t\t\t: turnStatus === \"evaluation_failed\" && outcomeEvaluationFailure\n\t\t\t\t\t\t\t? buildEvaluationFailureMessage(outcomeEvaluationFailure)\n\t\t\t\t\t\t\t: undefined;\n\t\t\trecordMaestroSkillOutcome({\n\t\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\t\tskill_metadata: selection.skillMetadata,\n\t\t\t\ttool_call_id: selection.toolCallId,\n\t\t\t\ttool_execution_id: selection.toolExecutionId,\n\t\t\t\tturn_status: turnStatus,\n\t\t\t\terror_category:\n\t\t\t\t\tturnStatus === \"success\"\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: turnStatus === \"evaluation_failed\"\n\t\t\t\t\t\t\t? \"evaluation\"\n\t\t\t\t\t\t\t: \"runtime\",\n\t\t\t\terror_message: errorMessage,\n\t\t\t\tevaluation_tool_name: evaluationFailure?.toolName,\n\t\t\t\tevaluation_tool_call_id: evaluationFailure?.toolCallId,\n\t\t\t\tevaluation_tool_execution_id: evaluationFailure?.toolExecutionId,\n\t\t\t\tevaluation_score: evaluationFailure?.score,\n\t\t\t\tevaluation_threshold: evaluationFailure?.threshold,\n\t\t\t\tevaluation_assertion_count: evaluationFailure?.assertionCount,\n\t\t\t\tevaluation_rationale: evaluationFailure?.rationale,\n\t\t\t\tstop_reason: options.stopReason,\n\t\t\t\tcorrelation: {\n\t\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis.currentTurnEvaluationFailure = undefined;\n\t\tthis.currentTurnSkillSelections.clear();\n\t}\n\n\tprivate handleDiagnosticDeltaToolResult(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst summary = getDiagnosticDeltaFromToolResult(event.result);\n\t\tif (!summary) {\n\t\t\treturn;\n\t\t}\n\t\tif (summary.introducedCount === 0 && summary.repairedCount === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst repairKey = [event.toolName, summary.file, summary.fingerprint].join(\n\t\t\t\":\",\n\t\t);\n\t\tconst nextAttempt = (this.diagnosticRepairAttempts.get(repairKey) ?? 0) + 1;\n\t\tconst hasPendingUserInput =\n\t\t\tthis.steeringQueue.length > 0 || this.followUpQueue.length > 0;\n\t\tconst hasOptOut = hasDiagnosticRepairOptOut(this._state.messages);\n\t\tconst canAutoFollowUp =\n\t\t\t!event.isError &&\n\t\t\tsummary.repair.shouldFollowUp &&\n\t\t\t!hasPendingUserInput &&\n\t\t\t!hasOptOut &&\n\t\t\tnextAttempt <= summary.repair.maxAttempts;\n\n\t\tconst reason = !summary.repair.shouldFollowUp\n\t\t\t? summary.repair.reason\n\t\t\t: event.isError\n\t\t\t\t? \"Tool call failed; leaving diagnostics in the tool result.\"\n\t\t\t\t: hasPendingUserInput\n\t\t\t\t\t? \"Queued user input exists; not adding an automatic diagnostic repair turn.\"\n\t\t\t\t\t: hasOptOut\n\t\t\t\t\t\t? \"User asked Maestro not to continue or repair automatically.\"\n\t\t\t\t\t\t: nextAttempt > summary.repair.maxAttempts\n\t\t\t\t\t\t\t? \"Automatic diagnostic repair attempt limit reached.\"\n\t\t\t\t\t\t\t: \"Queued a bounded diagnostic repair follow-up.\";\n\n\t\tif (summary.repair.shouldFollowUp) {\n\t\t\tthis.diagnosticRepairAttempts.set(repairKey, nextAttempt);\n\t\t}\n\n\t\tthis.emit({\n\t\t\ttype: \"diagnostic_delta\",\n\t\t\ttoolCallId: event.toolCallId,\n\t\t\ttoolName: event.toolName,\n\t\t\tfile: summary.file,\n\t\t\tdisplayPath: summary.displayPath,\n\t\t\tusedDelta: summary.usedDelta,\n\t\t\tintroducedCount: summary.introducedCount,\n\t\t\trepairedCount: summary.repairedCount,\n\t\t\tremainingCount: summary.remainingCount,\n\t\t\tfingerprint: summary.fingerprint,\n\t\t\trepairAttempt: summary.repair.shouldFollowUp ? nextAttempt : undefined,\n\t\t\tmaxRepairAttempts: summary.repair.shouldFollowUp\n\t\t\t\t? summary.repair.maxAttempts\n\t\t\t\t: undefined,\n\t\t\twillAutoFollowUp: canAutoFollowUp,\n\t\t\treason,\n\t\t});\n\n\t\tif (!canAutoFollowUp) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.enqueueFollowUpMessageSync(\n\t\t\tbuildDiagnosticRepairFollowUpMessage({\n\t\t\t\tsummary,\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\tattempt: nextAttempt,\n\t\t\t}),\n\t\t\t\"front\",\n\t\t);\n\t}\n\n\tprivate enqueueFollowUpMessageSync(\n\t\tmessage: AppMessage,\n\t\tposition: \"front\" | \"back\" = \"back\",\n\t): void {\n\t\tconst queued: QueuedMessage<AppMessage> = {\n\t\t\tid: this.nextQueuedMessageId++,\n\t\t\tcreatedAt: Date.now(),\n\t\t\toriginal: message,\n\t\t\tllm: message as Message,\n\t\t};\n\t\tif (position === \"front\") {\n\t\t\tthis.followUpQueue.unshift(queued);\n\t\t\treturn;\n\t\t}\n\t\tthis.followUpQueue.push(queued);\n\t}\n\n\tprivate primeToolBatch(message: AppMessage): void {\n\t\tif (message.role !== \"assistant\" || message.stopReason !== \"toolUse\") {\n\t\t\treturn;\n\t\t}\n\t\tconst toolCallIds = message.content.flatMap((block) =>\n\t\t\tblock.type === \"toolCall\" ? [block.id] : [],\n\t\t);\n\t\tif (toolCallIds.length === 0) {\n\t\t\tthis.activeToolBatchIds = null;\n\t\t\tthis.completedToolBatch = [];\n\t\t\treturn;\n\t\t}\n\t\tthis.activeToolBatchIds = new Set(toolCallIds);\n\t\tthis.completedToolBatch = [];\n\t}\n\n\tprivate emitToolBatchSummary(): void {\n\t\tif (this.completedToolBatch.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst batch = this.completedToolBatch;\n\t\tthis.completedToolBatch = [];\n\t\tconst { summary, summaryLabels, callsSucceeded, callsFailed } =\n\t\t\tsummarizeToolBatch(batch);\n\t\tthis.emit({\n\t\t\ttype: \"tool_batch_summary\",\n\t\t\tsummary,\n\t\t\tsummaryLabels,\n\t\t\ttoolCallIds: batch.map((entry) => entry.toolCallId),\n\t\t\ttoolNames: batch.map((entry) => entry.toolName),\n\t\t\tcallsSucceeded,\n\t\t\tcallsFailed,\n\t\t});\n\t\tif (summaryLabels.length > 0) {\n\t\t\tthis.promptOnlyQueue.push(\n\t\t\t\tbuildPromptOnlyToolBatchSummaryMessage(summaryLabels),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate handleToolPhaseSummary(\n\t\tevent: Extract<AgentEvent, { type: \"tool_phase_summary\" }>,\n\t): void {\n\t\tconst feedback = event.batchShapingFeedback;\n\t\tif (feedback?.avoidableSingleton) {\n\t\t\tconst key = feedback.reason || \"avoidable_singleton\";\n\t\t\tif (this.queuedBatchShapingFeedbackKeys.has(key)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.queuedBatchShapingFeedbackKeys.add(key);\n\t\t\tthis.promptOnlyQueue.push(buildPromptOnlyBatchShapingFeedbackMessage());\n\t\t}\n\t}\n\n\tprivate resolvePendingToolCalls(reason: string): void {\n\t\tfor (const [toolCallId, info] of this._state.pendingToolCalls.entries()) {\n\t\t\tconst abortedResult: ToolResultMessage = {\n\t\t\t\trole: \"toolResult\",\n\t\t\t\ttoolCallId,\n\t\t\t\ttoolName: info.toolName,\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: reason,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tisError: true,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t\tthis._state.messages = [...this._state.messages, abortedResult];\n\t\t\tthis.handleToolExecutionEnd({\n\t\t\t\ttype: \"tool_execution_end\",\n\t\t\t\ttoolCallId,\n\t\t\t\ttoolName: info.toolName,\n\t\t\t\tresult: abortedResult,\n\t\t\t\tisError: true,\n\t\t\t});\n\t\t}\n\t\tthis._state.pendingToolCalls.clear();\n\t}\n\n\tasync generateSummary(\n\t\thistory: Message[],\n\t\tprompt: string,\n\t\tsystemPrompt = \"\",\n\t\tmodelOverride?: Model<Api>,\n\t\tsignal?: AbortSignal,\n\t): Promise<AssistantMessage> {\n\t\tconst summaryModel = modelOverride ?? this._state.model;\n\t\tif (!summaryModel) {\n\t\t\tthrow new Error(\"No model configured for summarization\");\n\t\t}\n\n\t\tconst userMessage: UserMessage = {\n\t\t\trole: \"user\",\n\t\t\tcontent: [{ type: \"text\", text: prompt }],\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\tconst runMessages: Message[] = [...history, userMessage];\n\t\tconst providerMessages = normalizeMessagesForProvider(\n\t\t\trunMessages,\n\t\t\tsummaryModel,\n\t\t);\n\t\tconst runConfig = {\n\t\t\tsystemPrompt,\n\t\t\ttools: [],\n\t\t\tmodel: summaryModel,\n\t\t\treasoning: undefined,\n\t\t\t// Keep summary generation fast by not requesting reasoning summaries.\n\t\t\treasoningSummary: undefined,\n\t\t\tpreprocessMessages: this.preprocessMessages,\n\t\t};\n\n\t\tconst controller = new AbortController();\n\t\tif (signal) {\n\t\t\tif (signal.aborted) {\n\t\t\t\tcontroller.abort(signal.reason);\n\t\t\t} else {\n\t\t\t\tsignal.addEventListener(\n\t\t\t\t\t\"abort\",\n\t\t\t\t\t() => {\n\t\t\t\t\t\tcontroller.abort(signal.reason);\n\t\t\t\t\t},\n\t\t\t\t\t{ once: true },\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tlet finalMessage: AssistantMessage | null = null;\n\n\t\ttry {\n\t\t\tfor await (const event of this.transport.run(\n\t\t\t\tproviderMessages,\n\t\t\t\tuserMessage,\n\t\t\t\trunConfig,\n\t\t\t\tcontroller.signal,\n\t\t\t)) {\n\t\t\t\tif (\n\t\t\t\t\tevent.type === \"message_end\" &&\n\t\t\t\t\tevent.message.role === \"assistant\"\n\t\t\t\t) {\n\t\t\t\t\tfinalMessage = event.message as AssistantMessage;\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tcontroller.abort();\n\t\t}\n\n\t\tif (!finalMessage) {\n\t\t\tthrow new Error(\"Summary generation did not return a response\");\n\t\t}\n\n\t\treturn finalMessage;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent Core - Event-Driven LLM Interaction Engine\n *\n * This module provides the central Agent class that orchestrates all LLM\n * communication, tool execution, and state management for the Maestro CLI.\n * It implements an event-driven architecture that enables real-time streaming,\n * concurrent tool execution, and extensible transport layers.\n *\n * ## Architecture Overview\n *\n * ```\n * ┌─────────────────────────────────────────────────────────────────────────┐\n * │ Agent │\n * │ ┌─────────────┐ ┌──────────────┐ ┌─────────────────────────────────┐ │\n * │ │ State │ │ Transport │ │ Context Sources │ │\n * │ │ - messages │ │ - Anthropic │ │ - TodoContextSource │ │\n * │ │ - model │ │ - OpenAI │ │ - BackgroundTaskContextSource │ │\n * │ │ - tools │ │ - Google │ │ - LspContextSource │ │\n * │ │ - streaming │ │ - Custom │ │ - FrameworkPreferenceContext │ │\n * │ └─────────────┘ └──────────────┘ └─────────────────────────────────┘ │\n * │ │ │ │ │\n * │ ▼ ▼ ▼ │\n * │ ┌─────────────────────────────────────────────────────────────────────┐│\n * │ │ Event Emitter ││\n * │ │ message_start, message_update, message_end, tool_execution_* ││\n * │ └─────────────────────────────────────────────────────────────────────┘│\n * │ │ │\n * └─────────────────────────────────┼────────────────────────────────────────┘\n * ▼\n * ┌───────────────────┐\n * │ Subscribers │\n * │ - TUI Renderer │\n * │ - Session Mgr │\n * │ - JSONL Writer │\n * └───────────────────┘\n * ```\n *\n * ## Event Flow\n *\n * When `agent.prompt()` is called, the following sequence occurs:\n *\n * 1. **agent_start**: Signals the beginning of a prompt cycle\n * 2. **message_start**: Message envelope begins (user or assistant)\n * 3. **message_end**: Message envelope completes (user or assistant)\n * 4. **content_block_delta**: Streaming text/thinking content\n * 5. **tool_execution_start**: Tool call initiated\n * 6. **tool_execution_end**: Tool call completed\n * 7. **message_update**: Partial message with accumulated content\n * 8. **agent_end**: Prompt cycle completed\n *\n * ## Message Transformation\n *\n * Messages are transformed through a pipeline before being sent to the LLM:\n *\n * 1. **App Messages**: Internal format with attachments, metadata\n * 2. **Message Transform**: Convert attachments to content blocks\n * 3. **Provider Normalization**: Adapt to target provider's format\n * 4. **System Prompt Injection**: Add context from context sources\n *\n * ## Thinking/Reasoning Support\n *\n * The agent supports extended thinking for compatible models:\n *\n * | Level | Description |\n * |---------|------------------------------------------|\n * | off | No extended thinking |\n * | minimal | Brief chain-of-thought |\n * | low | Short reasoning steps |\n * | medium | Moderate reasoning depth |\n * | high | Deep reasoning with exploration |\n * | max | Maximum reasoning effort |\n *\n * ## Abort and Partial Handling\n *\n * The agent supports graceful interruption:\n *\n * - `abort()`: Cancel current request, discard partial response\n * - `abortAndKeepPartial()`: Cancel but preserve partial content\n *\n * @module agent/agent\n */\n\nimport { validate as uuidValidate } from \"uuid\";\nimport {\n\tbuildDiagnosticRepairFollowUpMessage,\n\tgetDiagnosticDeltaFromToolResult,\n\thasDiagnosticRepairOptOut,\n} from \"../lsp/diagnostic-repair.js\";\nimport {\n\tprojectSafeToolCallArguments,\n\trecordMaestroEvalScored,\n\trecordMaestroSkillInvoked,\n\trecordMaestroSkillOutcome,\n\trecordMaestroToolCallAttempt,\n\trecordMaestroToolCallCompleted,\n} from \"../telemetry/maestro-event-bus.js\";\nimport { createQueryProfilerFromEnv } from \"../utils/checkpoint-profiler.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport { sanitizeWithStaticMask } from \"../utils/secret-redactor.js\";\nimport {\n\tdescribeToolActivity,\n\tdescribeToolDisplayName,\n\tsummarizeToolBatch,\n\tsummarizeToolUse,\n} from \"../utils/tool-use-summary.js\";\nimport {\n\tAgentContextManager,\n\ttype AgentContextSource,\n\ttype ContextLoadResult,\n} from \"./context-manager.js\";\nimport { isContextOverflow as isAssistantContextOverflow } from \"./context-overflow.js\";\nimport { convertAppMessagesToLlm, isCoreMessage } from \"./custom-messages.js\";\nimport {\n\ttype PreprocessMessagesFn,\n\tchainPreprocessMessages,\n\tdefaultPreprocessMessages,\n} from \"./preprocess-messages.js\";\nimport type { SkillArtifactMetadata } from \"./skill-artifact-metadata.js\";\nimport { isAssistantMessage } from \"./type-guards.js\";\nimport type {\n\tAgentEvent,\n\tAgentState,\n\tAgentTool,\n\tAgentTransport,\n\tApi,\n\tAppMessage,\n\tAssistantMessage,\n\tAttachment,\n\tImageContent,\n\tMessage,\n\tModel,\n\tQueuedMessage,\n\tReasoningEffort,\n\tStopReason,\n\tTextContent,\n\tThinkingLevel,\n\tToolResultMessage,\n\tUsage,\n\tUserMessage,\n\tUserMessageWithAttachments,\n} from \"./types.js\";\n\nconst logger = createLogger(\"agent\");\n\ntype ToolEvaluationSummary = {\n\tscore?: number;\n\tthreshold?: number;\n\tpassed?: boolean;\n\trationale?: string;\n\tassertionCount?: number;\n};\n\ntype SkillEvaluationFailure = {\n\ttoolCallId: string;\n\ttoolExecutionId?: string;\n\ttoolName?: string;\n\tscore?: number;\n\tthreshold?: number;\n\trationale?: string;\n\tassertionCount?: number;\n};\n\ntype CurrentTurnSkillSelection = {\n\tskillMetadata: SkillArtifactMetadata;\n\ttoolCallId: string;\n\ttoolExecutionId?: string;\n\tevaluationFailure?: SkillEvaluationFailure;\n};\n\nfunction getToolEvaluationSummary(\n\tdetails: unknown,\n): ToolEvaluationSummary | undefined {\n\tif (!details || typeof details !== \"object\" || Array.isArray(details)) {\n\t\treturn undefined;\n\t}\n\n\tconst normalized = details as {\n\t\tevaluation?: unknown;\n\t\tassertions?: unknown;\n\t};\n\tif (\n\t\t!normalized.evaluation ||\n\t\ttypeof normalized.evaluation !== \"object\" ||\n\t\tArray.isArray(normalized.evaluation)\n\t) {\n\t\treturn undefined;\n\t}\n\n\tconst evaluation = normalized.evaluation as Record<string, unknown>;\n\tconst summary: ToolEvaluationSummary = {};\n\tif (\n\t\ttypeof evaluation.score === \"number\" &&\n\t\tNumber.isFinite(evaluation.score)\n\t) {\n\t\tsummary.score = evaluation.score;\n\t}\n\tif (\n\t\ttypeof evaluation.threshold === \"number\" &&\n\t\tNumber.isFinite(evaluation.threshold)\n\t) {\n\t\tsummary.threshold = evaluation.threshold;\n\t}\n\tif (typeof evaluation.passed === \"boolean\") {\n\t\tsummary.passed = evaluation.passed;\n\t}\n\tif (\n\t\ttypeof evaluation.rationale === \"string\" &&\n\t\tevaluation.rationale.trim().length > 0\n\t) {\n\t\tsummary.rationale = evaluation.rationale.trim();\n\t}\n\tif (\n\t\tArray.isArray(normalized.assertions) &&\n\t\tnormalized.assertions.length > 0\n\t) {\n\t\tsummary.assertionCount = normalized.assertions.length;\n\t}\n\n\treturn Object.keys(summary).length > 0 ? summary : undefined;\n}\n\nfunction isFailedToolEvaluation(summary: ToolEvaluationSummary): boolean {\n\tif (summary.passed === false) {\n\t\treturn true;\n\t}\n\tif (summary.passed === true) {\n\t\treturn false;\n\t}\n\treturn (\n\t\ttypeof summary.score === \"number\" &&\n\t\ttypeof summary.threshold === \"number\" &&\n\t\tsummary.score < summary.threshold\n\t);\n}\n\nfunction buildEvaluationFailureMessage(\n\tfailure: SkillEvaluationFailure,\n): string | undefined {\n\tif (failure.rationale) {\n\t\treturn failure.rationale;\n\t}\n\tif (\n\t\ttypeof failure.score === \"number\" &&\n\t\ttypeof failure.threshold === \"number\"\n\t) {\n\t\treturn `Eval score ${failure.score} below threshold ${failure.threshold}`;\n\t}\n\tif (typeof failure.score === \"number\") {\n\t\treturn `Eval score ${failure.score} did not pass`;\n\t}\n\treturn \"Selected skill failed evaluation\";\n}\n\n/**\n * Default message transformer that converts app messages to LLM-ready format.\n *\n * This transformer handles:\n * - Filtering to valid message roles (user, assistant, toolResult)\n * - Expanding user message attachments into content blocks\n * - Converting images to base64 image content\n * - Converting documents to text content with filename headers\n *\n * @param messages - Array of app messages to transform\n * @returns Array of messages ready for LLM consumption\n */\nfunction defaultMessageTransformer(messages: AppMessage[]): Message[] {\n\treturn (\n\t\tconvertAppMessagesToLlm(messages)\n\t\t\t// Filter to only roles the LLM understands\n\t\t\t.filter(\n\t\t\t\t(m) =>\n\t\t\t\t\tm.role === \"user\" ||\n\t\t\t\t\tm.role === \"assistant\" ||\n\t\t\t\t\tm.role === \"toolResult\",\n\t\t\t)\n\t\t\t.map((message) => {\n\t\t\t\t// Non-user messages pass through unchanged\n\t\t\t\tif (message.role !== \"user\") {\n\t\t\t\t\treturn message as Message;\n\t\t\t\t}\n\n\t\t\t\t// Handle user messages with attachments\n\t\t\t\tconst { attachments, ...rest } = message as UserMessageWithAttachments;\n\t\t\t\tif (!attachments || attachments.length === 0) {\n\t\t\t\t\treturn rest as Message;\n\t\t\t\t}\n\n\t\t\t\t// Expand attachments into content array\n\t\t\t\t// Start with existing content (may be string or array)\n\t\t\t\tconst content: Array<TextContent | ImageContent> = Array.isArray(\n\t\t\t\t\trest.content,\n\t\t\t\t)\n\t\t\t\t\t? [...rest.content]\n\t\t\t\t\t: [{ type: \"text\", text: rest.content }];\n\n\t\t\t\t// Convert each attachment to appropriate content type\n\t\t\t\tfor (const attachment of attachments) {\n\t\t\t\t\tif (attachment.type === \"image\") {\n\t\t\t\t\t\t// Images become image content blocks with base64 data\n\t\t\t\t\t\tcontent.push({\n\t\t\t\t\t\t\ttype: \"image\",\n\t\t\t\t\t\t\tdata: attachment.content,\n\t\t\t\t\t\t\tmimeType: attachment.mimeType,\n\t\t\t\t\t\t} as ImageContent);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tattachment.type === \"document\" &&\n\t\t\t\t\t\tattachment.extractedText\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Documents become text blocks with filename headers\n\t\t\t\t\t\tcontent.push({\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: `\\n\\n[Document: ${attachment.fileName}]\\n${attachment.extractedText}`,\n\t\t\t\t\t\t} as TextContent);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn { ...rest, content } as Message;\n\t\t\t})\n\t);\n}\n\n/**\n * Maps internal thinking level to provider reasoning effort parameter.\n *\n * Different providers have different reasoning/thinking capabilities.\n * This function normalizes our internal levels to what providers support.\n *\n * @param level - Internal thinking level\n * @returns Provider-specific reasoning effort, or undefined if disabled\n */\nfunction mapThinkingLevel(level: ThinkingLevel): ReasoningEffort | undefined {\n\tswitch (level) {\n\t\tcase \"off\":\n\t\t\treturn undefined; // No extended thinking\n\t\tcase \"minimal\":\n\t\t\treturn \"minimal\"; // Brief chain-of-thought\n\t\tcase \"low\":\n\t\t\treturn \"low\"; // Short reasoning steps\n\t\tcase \"medium\":\n\t\t\treturn \"medium\"; // Moderate depth\n\t\tcase \"high\":\n\t\t\treturn \"high\"; // Thorough reasoning\n\t\tcase \"ultra\":\n\t\t\treturn \"ultra\"; // Provider max where supported\n\t\tcase \"max\":\n\t\t\treturn \"high\"; // Maximum reasoning (max maps to high for providers)\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\n\nfunction buildPromptOnlyToolBatchSummaryMessage(\n\tsummaryLabels: string[],\n): UserMessage {\n\tconst bulletList = summaryLabels.map((label) => `- ${label}`).join(\"\\n\");\n\treturn {\n\t\trole: \"user\",\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: `The following is a transient summary of the most recent tool activity:\\n${bulletList}`,\n\t\t\t},\n\t\t],\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nconst PROMPT_ONLY_BATCH_SHAPING_FEEDBACK_HINT =\n\t\"When you need several independent reads or searches, emit them together in one assistant message so Maestro can batch them safely.\";\n\nfunction buildPromptOnlyBatchShapingFeedbackMessage(): UserMessage {\n\treturn {\n\t\trole: \"user\",\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: `The following is transient tool batching feedback for the next assistant turn:\\n- ${PROMPT_ONLY_BATCH_SHAPING_FEEDBACK_HINT}`,\n\t\t\t},\n\t\t],\n\t\ttimestamp: Date.now(),\n\t};\n}\n\n/**\n * Ensures prior assistant messages remain provider-compatible when switching models mid-session.\n *\n * When users switch between providers (e.g., Anthropic → OpenAI), previous assistant\n * messages may contain provider-specific content like \"thinking\" blocks. This function\n * converts those blocks to a format all providers can understand.\n *\n * ## Problem\n *\n * Anthropic's thinking blocks look like: `{ type: \"thinking\", thinking: \"...\" }`\n * OpenAI doesn't understand this format and may error or ignore it.\n *\n * ## Solution\n *\n * Convert thinking blocks to text: `<thinking>...</thinking>` which all providers\n * can process as regular text content.\n *\n * @param messages - Messages from conversation history\n * @param targetModel - The model that will receive these messages\n * @returns Messages with thinking blocks normalized for the target provider\n */\nfunction normalizeMessagesForProvider(\n\tmessages: Message[],\n\ttargetModel: Model<Api>,\n): Message[] {\n\tconst normalizedMessages: Message[] = [];\n\n\tfor (const msg of messages) {\n\t\tif (msg.role !== \"assistant\") {\n\t\t\tif (msg.role === \"user\") {\n\t\t\t\tconst previous = normalizedMessages[normalizedMessages.length - 1];\n\t\t\t\tif (previous?.role === \"user\") {\n\t\t\t\t\tconst previousContent: (TextContent | ImageContent)[] =\n\t\t\t\t\t\ttypeof previous.content === \"string\"\n\t\t\t\t\t\t\t? [{ type: \"text\", text: previous.content }]\n\t\t\t\t\t\t\t: [...previous.content];\n\t\t\t\t\tconst currentContent: (TextContent | ImageContent)[] =\n\t\t\t\t\t\ttypeof msg.content === \"string\"\n\t\t\t\t\t\t\t? [{ type: \"text\", text: msg.content }]\n\t\t\t\t\t\t\t: [...msg.content];\n\t\t\t\t\tconst mergedContent: (TextContent | ImageContent)[] =\n\t\t\t\t\t\tpreviousContent.length > 0 && currentContent.length > 0\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...previousContent,\n\t\t\t\t\t\t\t\t\t{ type: \"text\", text: \"\\n\\n\" } as TextContent,\n\t\t\t\t\t\t\t\t\t...currentContent,\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t: [...previousContent, ...currentContent];\n\t\t\t\t\tconst previousAttachments = (\n\t\t\t\t\t\t\"attachments\" in previous ? previous.attachments : undefined\n\t\t\t\t\t) as Attachment[] | undefined;\n\t\t\t\t\tconst currentAttachments = (\n\t\t\t\t\t\t\"attachments\" in msg ? msg.attachments : undefined\n\t\t\t\t\t) as Attachment[] | undefined;\n\t\t\t\t\tconst mergedAttachments: Attachment[] = [\n\t\t\t\t\t\t...(previousAttachments ?? []),\n\t\t\t\t\t\t...(currentAttachments ?? []),\n\t\t\t\t\t];\n\t\t\t\t\tconst mergedUser: UserMessageWithAttachments = {\n\t\t\t\t\t\t...previous,\n\t\t\t\t\t\tcontent: mergedContent,\n\t\t\t\t\t\tattachments:\n\t\t\t\t\t\t\tmergedAttachments.length > 0 ? mergedAttachments : undefined,\n\t\t\t\t\t\tmetadata: previous.metadata ?? msg.metadata,\n\t\t\t\t\t};\n\t\t\t\t\tnormalizedMessages[normalizedMessages.length - 1] = mergedUser;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tnormalizedMessages.push(msg);\n\t\t\tcontinue;\n\t\t}\n\t\tconst shouldConvertThinking =\n\t\t\tmsg.provider !== targetModel.provider ||\n\t\t\tmsg.api !== targetModel.api ||\n\t\t\t!targetModel.reasoning;\n\t\tif (!shouldConvertThinking) {\n\t\t\tnormalizedMessages.push(msg);\n\t\t\tcontinue;\n\t\t}\n\t\tconst content = msg.content.map((block) => {\n\t\t\tif (block.type === \"thinking\") {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: `<thinking>${block.thinking}</thinking>`,\n\t\t\t\t} as TextContent;\n\t\t\t}\n\t\t\treturn block;\n\t\t});\n\t\tnormalizedMessages.push({ ...msg, content });\n\t}\n\n\treturn normalizedMessages;\n}\n\ntype BufferedAssistantStartState = {\n\tpendingAssistantStart: AssistantMessage | null;\n\tlastStopReason?: StopReason;\n};\n\ntype StreamedMessageEvent = Extract<\n\tAgentEvent,\n\t{ type: \"message_start\" | \"message_update\" | \"message_end\" }\n>;\n\nfunction isDuplicateMessage(\n\texisting: AppMessage | undefined,\n\tincoming: AppMessage,\n): boolean {\n\tif (!existing) return false;\n\tif (existing.role !== incoming.role) return false;\n\tif (\"timestamp\" in existing && \"timestamp\" in incoming) {\n\t\tif (existing.timestamp !== incoming.timestamp) return false;\n\t}\n\tif (existing.role === \"toolResult\" && incoming.role === \"toolResult\") {\n\t\treturn existing.toolCallId === incoming.toolCallId;\n\t}\n\t// For assistant messages, compare stopReason and content fingerprint to avoid\n\t// discarding distinct messages that share a timestamp (e.g. parallel tool calls).\n\tif (existing.role === \"assistant\" && incoming.role === \"assistant\") {\n\t\tif (existing.stopReason !== incoming.stopReason) return false;\n\t\tif (existing.content.length !== incoming.content.length) return false;\n\t\t// Compare first content block identity for a stronger structural check.\n\t\tconst a = existing.content[0];\n\t\tconst b = incoming.content[0];\n\t\tif (a && b) {\n\t\t\tif (a.type !== b.type) return false;\n\t\t\tif (a.type === \"toolCall\" && b.type === \"toolCall\") {\n\t\t\t\tif (a.id !== b.id) return false;\n\t\t\t} else if (a.type === \"text\" && b.type === \"text\") {\n\t\t\t\tif (a.text !== b.text) return false;\n\t\t\t} else if (a.type === \"thinking\" && b.type === \"thinking\") {\n\t\t\t\tif (a.thinking !== b.thinking) return false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nfunction mergeUsage(messages: AssistantMessage[]): Usage {\n\treturn messages.reduce<Usage>(\n\t\t(acc, message) => ({\n\t\t\tinput: acc.input + message.usage.input,\n\t\t\toutput: acc.output + message.usage.output,\n\t\t\tcacheRead: acc.cacheRead + message.usage.cacheRead,\n\t\t\tcacheWrite: acc.cacheWrite + message.usage.cacheWrite,\n\t\t\tcost: {\n\t\t\t\tinput: acc.cost.input + message.usage.cost.input,\n\t\t\t\toutput: acc.cost.output + message.usage.cost.output,\n\t\t\t\tcacheRead: acc.cost.cacheRead + message.usage.cost.cacheRead,\n\t\t\t\tcacheWrite: acc.cost.cacheWrite + message.usage.cost.cacheWrite,\n\t\t\t\ttotal: acc.cost.total + message.usage.cost.total,\n\t\t\t},\n\t\t}),\n\t\t{\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t\tcost: {\n\t\t\t\tinput: 0,\n\t\t\t\toutput: 0,\n\t\t\t\tcacheRead: 0,\n\t\t\t\tcacheWrite: 0,\n\t\t\t\ttotal: 0,\n\t\t\t},\n\t\t},\n\t);\n}\n\nfunction mergeAssistantMessages(\n\tmessages: AssistantMessage[],\n): AssistantMessage {\n\tconst lastMessage = messages[messages.length - 1]!;\n\treturn {\n\t\t...lastMessage,\n\t\tcontent: messages.flatMap((message) => message.content),\n\t\tusage: mergeUsage(messages),\n\t};\n}\n\n/**\n * Configuration options for creating an Agent instance.\n */\nexport interface AgentOptions {\n\t/** Initial state to override defaults (system prompt, model, tools, etc.) */\n\tinitialState?: Partial<AgentState>;\n\t/** Transport implementation for LLM provider communication */\n\ttransport: AgentTransport;\n\t/** Optional transformer to convert app messages to provider-specific format */\n\tmessageTransformer?: (\n\t\tmessages: AppMessage[],\n\t) => Message[] | Promise<Message[]>;\n\t/** Optional message preprocessor executed immediately before provider invocation */\n\tpreprocessMessages?: PreprocessMessagesFn;\n\t/** Disable Maestro's built-in preprocessing (not recommended) */\n\tdisableDefaultPreprocessMessages?: boolean;\n\t/** Optional context sources for environment injection */\n\tcontextSources?: AgentContextSource[];\n}\n\n/**\n * Core Agent class implementing event-driven LLM interaction.\n *\n * The Agent manages conversation state, tool execution, and streaming responses\n * across multiple LLM providers through an abstracted transport layer.\n *\n * @example\n * ```typescript\n * const agent = new Agent({\n * transport: new AnthropicTransport(apiKey),\n * initialState: { model: claudeSonnet4, tools: codingTools }\n * });\n *\n * agent.subscribe((event) => {\n * if (event.type === 'content_block_delta') {\n * process.stdout.write(event.text);\n * }\n * });\n *\n * await agent.prompt(\"Create a hello world function\");\n * ```\n */\nexport class Agent {\n\tprivate _state: AgentState;\n\tprivate listeners: Array<(e: AgentEvent) => void> = [];\n\tprivate abortController?: AbortController;\n\tprivate transport: AgentTransport;\n\tprivate messageTransformer: (\n\t\tmessages: AppMessage[],\n\t) => Message[] | Promise<Message[]>;\n\tprivate preprocessMessages?: PreprocessMessagesFn;\n\tprivate steeringQueue: Array<QueuedMessage<AppMessage>> = [];\n\tprivate followUpQueue: Array<QueuedMessage<AppMessage>> = [];\n\tprivate nextRunHistoryQueue: AppMessage[] = [];\n\tprivate nextRunPromptOnlyQueue: Message[] = [];\n\tprivate promptOnlyQueue: Message[] = [];\n\tprivate queuedBatchShapingFeedbackKeys = new Set<string>();\n\tprivate nextRunSystemPromptAdditions: string[] = [];\n\tprivate defaultTaskBudgetTotal?: number;\n\tprivate currentTaskBudget?:\n\t\t| {\n\t\t\t\ttotal: number;\n\t\t\t\tremaining?: number;\n\t\t }\n\t\t| undefined;\n\tprivate steeringMode: \"all\" | \"one\" = \"all\";\n\tprivate followUpMode: \"all\" | \"one\" = \"all\";\n\tprivate queueMode: \"all\" | \"one\" = \"all\";\n\tprivate nextQueuedMessageId = 1;\n\tprivate runningPrompt?: Promise<void>;\n\tprivate resolveRunningPrompt?: () => void;\n\tprivate contextManager: AgentContextManager;\n\tprivate activeToolBatchIds: Set<string> | null = null;\n\tprivate completedToolBatch: Array<{\n\t\ttoolCallId: string;\n\t\ttoolName: string;\n\t\targs: Record<string, unknown>;\n\t\tisError: boolean;\n\t\ttool?: Pick<AgentTool, \"getToolUseSummary\" | \"getActivityDescription\">;\n\t}> = [];\n\tprivate suppressRecoverableOverflowErrors = false;\n\tprivate withheldRecoverableOverflowError?: AssistantMessage;\n\tprivate withheldRecoverableLengthMessages: AssistantMessage[] = [];\n\tprivate pendingMergedRecoverableTurnEnd?: AssistantMessage;\n\tprivate diagnosticRepairAttempts = new Map<string, number>();\n\tprivate currentTurnEvaluationFailure?: SkillEvaluationFailure;\n\tprivate currentTurnSkillSelections = new Map<\n\t\tstring,\n\t\tCurrentTurnSkillSelection\n\t>();\n\n\t/**\n\t * Creates a new Agent instance.\n\t *\n\t * @param opts - Configuration options including transport and initial state\n\t */\n\tconstructor(opts: AgentOptions) {\n\t\tthis.transport = opts.transport;\n\t\tthis.messageTransformer =\n\t\t\topts.messageTransformer ??\n\t\t\t((messages) => defaultMessageTransformer(messages));\n\t\tthis.preprocessMessages = chainPreprocessMessages(\n\t\t\topts.disableDefaultPreprocessMessages\n\t\t\t\t? undefined\n\t\t\t\t: defaultPreprocessMessages,\n\t\t\topts.preprocessMessages,\n\t\t);\n\n\t\tthis.contextManager = new AgentContextManager();\n\t\tif (opts.contextSources) {\n\t\t\tfor (const source of opts.contextSources) {\n\t\t\t\tthis.contextManager.addSource(source);\n\t\t\t}\n\t\t}\n\n\t\tconst {\n\t\t\tsystemPrompt,\n\t\t\tmodel,\n\t\t\tthinkingLevel,\n\t\t\ttools,\n\t\t\tqueueMode,\n\t\t\tsteeringMode,\n\t\t\tfollowUpMode,\n\t\t\t...restInitialState\n\t\t} = opts.initialState ?? {};\n\t\tthis.queueMode = queueMode ?? \"all\";\n\t\tthis.steeringMode = steeringMode ?? queueMode ?? \"all\";\n\t\tthis.followUpMode = followUpMode ?? queueMode ?? \"all\";\n\n\t\tif (restInitialState.user) {\n\t\t\tif (\n\t\t\t\t!uuidValidate(restInitialState.user.id) ||\n\t\t\t\t!uuidValidate(restInitialState.user.orgId)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Invalid user ID or Org ID: Must be a valid UUID\");\n\t\t\t}\n\t\t}\n\n\t\tthis._state = {\n\t\t\tsystemPrompt: systemPrompt ?? \"\",\n\t\t\tmodel:\n\t\t\t\tmodel ??\n\t\t\t\t((): never => {\n\t\t\t\t\tthrow new Error(\"Agent requires an initial model\");\n\t\t\t\t})(),\n\t\t\tthinkingLevel: thinkingLevel ?? \"off\",\n\t\t\ttools: tools ?? [],\n\t\t\tmessages: [],\n\t\t\tisStreaming: false,\n\t\t\tstreamMessage: null,\n\t\t\tpendingToolCalls: new Map(),\n\t\t\tsandbox: restInitialState.sandbox,\n\t\t\tsandboxMode: restInitialState.sandboxMode ?? null,\n\t\t\tsandboxEnabled:\n\t\t\t\trestInitialState.sandboxEnabled ?? Boolean(restInitialState.sandbox),\n\t\t\t...restInitialState,\n\t\t\tqueueMode: this.queueMode,\n\t\t\tsteeringMode: this.steeringMode,\n\t\t\tfollowUpMode: this.followUpMode,\n\t\t};\n\t}\n\n\t/**\n\t * Gets the current agent state (read-only).\n\t *\n\t * @returns The current state including messages, model, tools, and streaming status\n\t */\n\tget state(): Readonly<AgentState> {\n\t\treturn this._state;\n\t}\n\n\t/**\n\t * Gets detailed status of all context sources.\n\t *\n\t * Context sources provide dynamic content injected into the system prompt,\n\t * such as todo lists, LSP diagnostics, and IDE information.\n\t *\n\t * @returns Promise resolving to context load result with per-source status\n\t *\n\t * @example\n\t * ```typescript\n\t * const result = await agent.getContextSourceStatus();\n\t * for (const source of result.sourceStatuses) {\n\t * console.log(`${source.name}: ${source.status} (${source.durationMs}ms)`);\n\t * }\n\t * ```\n\t */\n\tasync getContextSourceStatus(): Promise<ContextLoadResult> {\n\t\treturn this.contextManager.getCombinedSystemPromptWithStatus();\n\t}\n\n\t/**\n\t * Optionally probes the underlying transport for connectivity checks.\n\t */\n\tasync probeTransport(): Promise<void> {\n\t\tif (this.transport.ping) {\n\t\t\tawait this.transport.ping();\n\t\t}\n\t}\n\n\t/**\n\t * Subscribes to agent events (streaming deltas, tool calls, errors, etc.).\n\t *\n\t * @param fn - Event listener function to be called on each event\n\t * @returns Unsubscribe function to remove the listener\n\t *\n\t * @example\n\t * ```typescript\n\t * const unsubscribe = agent.subscribe((event) => {\n\t * if (event.type === 'content_block_delta') {\n\t * console.log(event.text);\n\t * }\n\t * });\n\t *\n\t * // Later, to stop listening:\n\t * unsubscribe();\n\t * ```\n\t */\n\tsubscribe(fn: (e: AgentEvent) => void): () => void {\n\t\tthis.listeners.push(fn);\n\t\treturn () => {\n\t\t\tconst idx = this.listeners.indexOf(fn);\n\t\t\tif (idx >= 0) this.listeners.splice(idx, 1);\n\t\t};\n\t}\n\n\t/**\n\t * Emits an event to all subscribed listeners.\n\t * Errors in listeners are caught and logged to prevent cascading failures.\n\t *\n\t * @param event - The event to emit\n\t */\n\tprivate emit(event: AgentEvent): void {\n\t\tfor (const listener of this.listeners) {\n\t\t\ttry {\n\t\t\t\tlistener(event);\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(\n\t\t\t\t\t\"Error in agent event listener\",\n\t\t\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async dequeueSteeringMessages<T>(): Promise<QueuedMessage<T>[]> {\n\t\tif (this.steeringQueue.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tif (this.steeringMode === \"one\") {\n\t\t\tconst next = this.steeringQueue.shift();\n\t\t\treturn next ? [next as QueuedMessage<T>] : [];\n\t\t}\n\t\tconst queued = this.steeringQueue.splice(0) as QueuedMessage<T>[];\n\t\treturn queued;\n\t}\n\n\tprivate async dequeueFollowUpMessages<T>(): Promise<QueuedMessage<T>[]> {\n\t\tif (this.followUpQueue.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tif (this.followUpMode === \"one\") {\n\t\t\tconst next = this.followUpQueue.shift();\n\t\t\treturn next ? [next as QueuedMessage<T>] : [];\n\t\t}\n\t\tconst queued = this.followUpQueue.splice(0) as QueuedMessage<T>[];\n\t\treturn queued;\n\t}\n\n\tprivate async dequeuePromptOnlyMessages(): Promise<Message[]> {\n\t\tif (\n\t\t\tthis.nextRunPromptOnlyQueue.length === 0 &&\n\t\t\tthis.promptOnlyQueue.length === 0\n\t\t) {\n\t\t\treturn [];\n\t\t}\n\t\tconst queued = [...this.nextRunPromptOnlyQueue, ...this.promptOnlyQueue];\n\t\tthis.nextRunPromptOnlyQueue = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\treturn queued;\n\t}\n\n\tprivate dequeueNextRunHistoryMessages(): AppMessage[] {\n\t\tif (this.nextRunHistoryQueue.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tconst queued = [...this.nextRunHistoryQueue];\n\t\tthis.nextRunHistoryQueue = [];\n\t\treturn queued;\n\t}\n\n\tprivate dequeueNextRunSystemPromptAdditions(): string[] {\n\t\tif (this.nextRunSystemPromptAdditions.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\tconst queued = [...this.nextRunSystemPromptAdditions];\n\t\tthis.nextRunSystemPromptAdditions = [];\n\t\treturn queued;\n\t}\n\n\tprivate async dequeueQueuedMessages<T>(): Promise<QueuedMessage<T>[]> {\n\t\treturn this.dequeueFollowUpMessages<T>();\n\t}\n\n\t/**\n\t * Sets the system prompt that provides context and instructions to the model.\n\t *\n\t * @param v - The system prompt text\n\t */\n\tsetSystemPrompt(v: string): void {\n\t\tthis._state.systemPrompt = v;\n\t}\n\n\tsetSystemPromptSourcePaths(paths: string[] | undefined): void {\n\t\tthis._state.systemPromptSourcePaths =\n\t\t\tpaths && paths.length > 0 ? [...paths] : undefined;\n\t}\n\n\t/**\n\t * Sets the active LLM model for this agent.\n\t *\n\t * @param m - The model configuration\n\t */\n\tsetModel(m: Model<Api>): void {\n\t\tthis._state.model = m;\n\t\tif (!m.reasoning && this._state.thinkingLevel !== \"off\") {\n\t\t\tthis._state.thinkingLevel = \"off\";\n\t\t}\n\t}\n\n\t/**\n\t * Sets the thinking/reasoning level for extended reasoning models.\n\t *\n\t * @param l - Thinking level: \"off\", \"minimal\", \"low\", \"medium\", \"high\", \"max\"\n\t */\n\tsetThinkingLevel(l: ThinkingLevel): void {\n\t\tthis._state.thinkingLevel = l;\n\t}\n\n\t/**\n\t * Controls how queued steering messages are drained between turns.\n\t * \"all\" (default) sends the full queue; \"one\" sends a single item per turn.\n\t */\n\tsetSteeringMode(mode: \"all\" | \"one\"): void {\n\t\tthis.steeringMode = mode;\n\t\tthis.queueMode = mode;\n\t\tthis._state.steeringMode = mode;\n\t\tthis._state.queueMode = mode;\n\t}\n\n\tgetSteeringMode(): \"all\" | \"one\" {\n\t\treturn this.steeringMode;\n\t}\n\n\t/**\n\t * Controls how queued follow-up messages are drained between turns.\n\t * \"all\" (default) sends the full queue; \"one\" sends a single item per turn.\n\t */\n\tsetFollowUpMode(mode: \"all\" | \"one\"): void {\n\t\tthis.followUpMode = mode;\n\t\tthis._state.followUpMode = mode;\n\t}\n\n\tgetFollowUpMode(): \"all\" | \"one\" {\n\t\treturn this.followUpMode;\n\t}\n\n\t/**\n\t * @deprecated Use setSteeringMode/setFollowUpMode instead.\n\t * Sets both steering + follow-up modes for compatibility.\n\t */\n\tsetQueueMode(mode: \"all\" | \"one\"): void {\n\t\tthis.queueMode = mode;\n\t\tthis._state.queueMode = mode;\n\t\tthis.setSteeringMode(mode);\n\t\tthis.setFollowUpMode(mode);\n\t}\n\n\t/**\n\t * Sets the available tools that the model can invoke.\n\t *\n\t * @param t - Array of tool definitions with schemas and execute functions\n\t */\n\tsetTools(t: AgentTool[]): void {\n\t\tthis._state.tools = t;\n\t}\n\n\t/**\n\t * Sets the active user for this agent.\n\t */\n\tsetUser(user: AgentState[\"user\"]): void {\n\t\tthis._state.user = user;\n\t}\n\n\t/**\n\t * Sets the active session for this agent.\n\t */\n\tsetSession(session: AgentState[\"session\"]): void {\n\t\tthis._state.session = session;\n\t}\n\n\t/**\n\t * Sets the sampling temperature for LLM generation.\n\t *\n\t * @param t - Temperature value (0.0-2.0, lower = more deterministic). Pass undefined to reset to default.\n\t */\n\tsetTemperature(t: number | undefined): void {\n\t\tthis._state.temperature = t;\n\t}\n\n\t/**\n\t * Sets the top-p sampling parameter for LLM generation.\n\t *\n\t * @param p - Top-p value (0.0-1.0). Pass undefined to reset to default.\n\t */\n\tsetTopP(p: number | undefined): void {\n\t\tthis._state.topP = p;\n\t}\n\n\tsetTaskBudgetTotal(total: number | undefined): void {\n\t\tthis.defaultTaskBudgetTotal = total;\n\t}\n\n\tgetTaskBudgetTotal(): number | undefined {\n\t\treturn this.defaultTaskBudgetTotal;\n\t}\n\n\tsetCurrentTaskBudget(\n\t\ttaskBudget:\n\t\t\t| {\n\t\t\t\t\ttotal: number;\n\t\t\t\t\tremaining?: number;\n\t\t\t }\n\t\t\t| undefined,\n\t): void {\n\t\tthis.currentTaskBudget = taskBudget ? { ...taskBudget } : undefined;\n\t}\n\n\tgetCurrentTaskBudget():\n\t\t| {\n\t\t\t\ttotal: number;\n\t\t\t\tremaining?: number;\n\t\t }\n\t\t| undefined {\n\t\treturn this.currentTaskBudget ? { ...this.currentTaskBudget } : undefined;\n\t}\n\n\t/**\n\t * Replaces the entire message history with a new set of messages.\n\t *\n\t * @param ms - New message array\n\t */\n\treplaceMessages(ms: AppMessage[]): void {\n\t\tthis._state.messages = ms.slice();\n\t}\n\n\t/**\n\t * Clear transient run state without touching message history or queued inputs.\n\t *\n\t * This is useful before starting a fresh run, or after operations like\n\t * compaction that rewrite history while the agent is otherwise idle.\n\t */\n\tclearTransientRunState(options?: {\n\t\tclearSessionContextCache?: boolean;\n\t}): void {\n\t\tthis._state.isStreaming = false;\n\t\tthis._state.streamMessage = null;\n\t\tthis._state.pendingToolCalls.clear();\n\t\tif (options?.clearSessionContextCache) {\n\t\t\tthis.contextManager.clearSessionCache();\n\t\t}\n\t\tthis.activeToolBatchIds = null;\n\t\tthis.completedToolBatch = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\tthis._state.error = undefined;\n\t\tthis.withheldRecoverableOverflowError = undefined;\n\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\tif (!this.suppressRecoverableOverflowErrors) {\n\t\t\tthis.withheldRecoverableLengthMessages = [];\n\t\t}\n\t\tthis._partialAccepted = null;\n\t\tthis.currentTurnEvaluationFailure = undefined;\n\t\tthis.currentTurnSkillSelections.clear();\n\t}\n\n\tsetRecoverableOverflowErrorSuppression(enabled: boolean): void {\n\t\tthis.suppressRecoverableOverflowErrors = enabled;\n\t\tif (!enabled) {\n\t\t\tthis.withheldRecoverableOverflowError = undefined;\n\t\t\tthis.withheldRecoverableLengthMessages = [];\n\t\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\t}\n\t}\n\n\tgetWithheldRecoverableOverflowError(): AssistantMessage | undefined {\n\t\treturn this.withheldRecoverableOverflowError;\n\t}\n\n\tflushWithheldRecoverableLengthMessage(): AssistantMessage | undefined {\n\t\tif (this.withheldRecoverableLengthMessages.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst merged = mergeAssistantMessages(\n\t\t\tthis.withheldRecoverableLengthMessages,\n\t\t);\n\t\tthis._state.messages = [\n\t\t\t...this._state.messages.slice(\n\t\t\t\t0,\n\t\t\t\t-this.withheldRecoverableLengthMessages.length,\n\t\t\t),\n\t\t\tmerged,\n\t\t];\n\t\tthis.withheldRecoverableLengthMessages = [];\n\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\tthis.primeToolBatch(merged);\n\t\tthis.emit({ type: \"message_start\", message: merged });\n\t\tthis.emit({ type: \"message_end\", message: merged });\n\t\tthis.emit({ type: \"turn_end\", message: merged, toolResults: [] });\n\t\treturn merged;\n\t}\n\n\t/**\n\t * Appends a single message to the conversation history.\n\t *\n\t * @param m - Message to append\n\t */\n\tappendMessage(m: AppMessage): void {\n\t\tthis._state.messages = [...this._state.messages, m];\n\t}\n\n\t/**\n\t * Inject a message into the conversation history and emit a message_end event.\n\t */\n\tinjectMessage(m: AppMessage): void {\n\t\tthis._state.messages = [...this._state.messages, m];\n\t\tthis.emit({ type: \"message_end\", message: m });\n\t}\n\n\t/**\n\t * Emit a transient runtime status update without mutating conversation history.\n\t */\n\temitStatus(status: string, details: Record<string, unknown> = {}): void {\n\t\tconst normalized = status.trim();\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tthis.emit({ type: \"status\", status: normalized, details });\n\t}\n\n\t/**\n\t * Emit a transient runtime error without mutating conversation history.\n\t */\n\temitError(message: string): void {\n\t\tconst normalized = message.trim();\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tthis.emit({ type: \"error\", message: normalized });\n\t}\n\n\tprivate shouldWithholdRecoverableOverflowError(\n\t\tmessage: AppMessage,\n\t): message is AssistantMessage {\n\t\treturn (\n\t\t\tthis.suppressRecoverableOverflowErrors &&\n\t\t\tisAssistantMessage(message) &&\n\t\t\tmessage.stopReason === \"error\" &&\n\t\t\tisAssistantContextOverflow(message, this._state.model.contextWindow)\n\t\t);\n\t}\n\n\tprivate shouldWithholdRecoverableMaxOutput(\n\t\tmessage: AssistantMessage,\n\t): boolean {\n\t\treturn (\n\t\t\tthis.suppressRecoverableOverflowErrors && message.stopReason === \"length\"\n\t\t);\n\t}\n\n\tprivate shouldMergeRecoverableLengthContinuation(\n\t\tmessage: AssistantMessage,\n\t): boolean {\n\t\treturn (\n\t\t\tthis.suppressRecoverableOverflowErrors &&\n\t\t\tthis.withheldRecoverableLengthMessages.length > 0 &&\n\t\t\tmessage.stopReason !== \"length\" &&\n\t\t\tmessage.stopReason !== \"error\"\n\t\t);\n\t}\n\n\tprivate mergeWithWithheldRecoverableLengthMessages(\n\t\tincoming: AssistantMessage,\n\t): AssistantMessage {\n\t\tif (this.withheldRecoverableLengthMessages.length === 0) {\n\t\t\treturn incoming;\n\t\t}\n\n\t\tconst merged = mergeAssistantMessages([\n\t\t\t...this.withheldRecoverableLengthMessages,\n\t\t\tincoming,\n\t\t]);\n\t\tthis._state.messages = [\n\t\t\t...this._state.messages.slice(\n\t\t\t\t0,\n\t\t\t\t-this.withheldRecoverableLengthMessages.length,\n\t\t\t),\n\t\t\tmerged,\n\t\t];\n\t\tthis.withheldRecoverableLengthMessages = [];\n\t\tthis.pendingMergedRecoverableTurnEnd = merged;\n\t\treturn merged;\n\t}\n\n\t/**\n\t * Emit a compaction lifecycle event without mutating conversation history.\n\t */\n\temitCompaction(\n\t\tevent: Omit<Extract<AgentEvent, { type: \"compaction\" }>, \"type\">,\n\t): void {\n\t\tthis.emit({ type: \"compaction\", ...event });\n\t}\n\n\t/**\n\t * Queue a prompt-only message for the next run without persisting it to history.\n\t */\n\tqueueNextRunPromptOnlyMessage(message: Message): void {\n\t\tthis.nextRunPromptOnlyQueue.push(message);\n\t}\n\n\t/**\n\t * Queue a persisted history message for the next run.\n\t */\n\tqueueNextRunHistoryMessage(message: AppMessage): void {\n\t\tthis.nextRunHistoryQueue.push(message);\n\t}\n\n\t/**\n\t * Queue transient system guidance for the next run.\n\t */\n\tqueueNextRunSystemPromptAddition(text: string): void {\n\t\tconst normalized = text.trim();\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tthis.nextRunSystemPromptAdditions.push(normalized);\n\t}\n\n\t/**\n\t * Clear queued one-shot prompt inputs that were prepared for the next run but\n\t * not yet consumed.\n\t */\n\tclearQueuedPromptInputs(): void {\n\t\tthis.nextRunHistoryQueue = [];\n\t\tthis.nextRunPromptOnlyQueue = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\tthis.nextRunSystemPromptAdditions = [];\n\t}\n\n\t/**\n\t * Queues a steering message to interrupt the agent mid-run.\n\t *\n\t * Delivered after the current tool execution and skips remaining tools.\n\t *\n\t * @param m - Message to queue\n\t */\n\tasync steer(m: AppMessage): Promise<void> {\n\t\tawait this.enqueueQueuedMessage(\"steer\", m);\n\t}\n\n\t/**\n\t * Queues a follow-up message to be processed after the agent finishes.\n\t *\n\t * @param m - Message to queue\n\t */\n\tasync followUp(m: AppMessage): Promise<void> {\n\t\tawait this.enqueueQueuedMessage(\"followUp\", m);\n\t}\n\n\t/**\n\t * Re-inserts a follow-up at the front of the follow-up queue.\n\t */\n\tasync prependFollowUp(\n\t\tm: AppMessage,\n\t\toptions?: { id?: number; createdAt?: number },\n\t): Promise<void> {\n\t\tawait this.enqueueQueuedMessage(\"followUp\", m, {\n\t\t\tposition: \"front\",\n\t\t\tid: options?.id,\n\t\t\tcreatedAt: options?.createdAt,\n\t\t});\n\t}\n\n\t/**\n\t * @deprecated Use steer() or followUp() instead.\n\t * Defaults to follow-up semantics.\n\t */\n\tasync queueMessage(m: AppMessage): Promise<void> {\n\t\tawait this.followUp(m);\n\t}\n\n\tprivate async enqueueQueuedMessage(\n\t\tkind: \"steer\" | \"followUp\",\n\t\tmessage: AppMessage,\n\t\toptions?: {\n\t\t\tposition?: \"front\" | \"back\";\n\t\t\tid?: number;\n\t\t\tcreatedAt?: number;\n\t\t},\n\t): Promise<void> {\n\t\tconst transformed = await this.messageTransformer([message]);\n\t\tconst id = options?.id ?? this.nextQueuedMessageId++;\n\t\tif (id >= this.nextQueuedMessageId) {\n\t\t\tthis.nextQueuedMessageId = id + 1;\n\t\t}\n\t\tconst queued = {\n\t\t\tid,\n\t\t\tcreatedAt: options?.createdAt ?? Date.now(),\n\t\t\toriginal: message,\n\t\t\tllm: transformed[0],\n\t\t};\n\t\tconst position = options?.position ?? \"back\";\n\t\tif (kind === \"steer\") {\n\t\t\tif (position === \"front\") {\n\t\t\t\tthis.steeringQueue.unshift(queued);\n\t\t\t} else {\n\t\t\t\tthis.steeringQueue.push(queued);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (position === \"front\") {\n\t\t\tthis.followUpQueue.unshift(queued);\n\t\t} else {\n\t\t\tthis.followUpQueue.push(queued);\n\t\t}\n\t}\n\n\t/**\n\t * Clears all messages from the conversation history.\n\t */\n\tclearMessages(): void {\n\t\tthis._state.messages = [];\n\t}\n\n\t/**\n\t * Get the number of queued messages.\n\t */\n\tgetQueuedMessageCount(): number {\n\t\treturn this.steeringQueue.length + this.followUpQueue.length;\n\t}\n\n\tgetQueuedSteeringCount(): number {\n\t\treturn this.steeringQueue.length;\n\t}\n\n\tgetQueuedFollowUpCount(): number {\n\t\treturn this.followUpQueue.length;\n\t}\n\n\tgetQueuedMessagesSnapshot(): {\n\t\tsteering: ReadonlyArray<QueuedMessage<AppMessage>>;\n\t\tfollowUps: ReadonlyArray<QueuedMessage<AppMessage>>;\n\t} {\n\t\treturn {\n\t\t\tsteering: [...this.steeringQueue],\n\t\t\tfollowUps: [...this.followUpQueue],\n\t\t};\n\t}\n\n\tremoveQueuedMessage(id: number): QueuedMessage<AppMessage> | null {\n\t\tconst steeringIndex = this.steeringQueue.findIndex(\n\t\t\t(message) => message.id === id,\n\t\t);\n\t\tif (steeringIndex !== -1) {\n\t\t\treturn this.steeringQueue.splice(steeringIndex, 1)[0] ?? null;\n\t\t}\n\t\tconst followUpIndex = this.followUpQueue.findIndex(\n\t\t\t(message) => message.id === id,\n\t\t);\n\t\tif (followUpIndex !== -1) {\n\t\t\treturn this.followUpQueue.splice(followUpIndex, 1)[0] ?? null;\n\t\t}\n\t\treturn null;\n\t}\n\n\tclearQueuedMessages(): Array<QueuedMessage<AppMessage>> {\n\t\tconst queued = [...this.steeringQueue, ...this.followUpQueue].sort(\n\t\t\t(a, b) => a.createdAt - b.createdAt || a.id - b.id,\n\t\t);\n\t\tthis.steeringQueue = [];\n\t\tthis.followUpQueue = [];\n\t\treturn queued;\n\t}\n\n\t/**\n\t * Aborts the current streaming request if one is in progress.\n\t */\n\tabort(): void {\n\t\tif (this.abortController) {\n\t\t\tthis.abortController.abort();\n\t\t\tthis.abortController = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Aborts the current streaming request and saves any partial response.\n\t *\n\t * Unlike `abort()`, this method preserves the partial assistant message\n\t * that was being streamed, adding it to the message history. This allows\n\t * users to keep useful partial responses when interrupting long generations.\n\t *\n\t * @returns The partial message that was saved, or null if no partial was available\n\t *\n\t * @example\n\t * ```typescript\n\t * // User presses Ctrl+C during a long response\n\t * const partial = agent.abortAndKeepPartial();\n\t * if (partial) {\n\t * console.log(\"Saved partial response:\", partial.content);\n\t * }\n\t * ```\n\t */\n\tabortAndKeepPartial(): AppMessage | null {\n\t\tconst partialMessage = this._state.streamMessage;\n\n\t\t// Only save if we have an assistant message (not user message)\n\t\tif (\n\t\t\tpartialMessage &&\n\t\t\tpartialMessage.role === \"assistant\" &&\n\t\t\tthis.abortController\n\t\t) {\n\t\t\t// Mark as interrupted by setting stopReason\n\t\t\tconst savedMessage: AssistantMessage = {\n\t\t\t\t...partialMessage,\n\t\t\t\tstopReason: \"aborted\",\n\t\t\t};\n\n\t\t\t// Add to message history before aborting\n\t\t\tthis._state.messages = [...this._state.messages, savedMessage];\n\t\t\tthis._state.streamMessage = null;\n\t\t\tthis._partialAccepted = savedMessage;\n\n\t\t\tlogger.info(\"Saved partial message on interrupt\", {\n\t\t\t\tcontentLength: JSON.stringify(savedMessage.content).length,\n\t\t\t});\n\n\t\t\t// Now abort\n\t\t\tthis.abort();\n\n\t\t\treturn savedMessage;\n\t\t}\n\n\t\t// No partial to save, just abort\n\t\tthis.abort();\n\n\t\treturn null;\n\t}\n\n\t/** Tracks if a partial message was accepted during abort */\n\tprivate _partialAccepted: AppMessage | null = null;\n\n\t/**\n\t * Returns a promise that resolves when the current prompt completes.\n\t * Returns immediately resolved promise if no prompt is running.\n\t */\n\twaitForIdle(): Promise<void> {\n\t\treturn this.runningPrompt ?? Promise.resolve();\n\t}\n\n\t/**\n\t * Clear all messages and state. Call abort() first if a prompt is in flight.\n\t */\n\treset(): void {\n\t\tthis._state.messages = [];\n\t\tthis._state.isStreaming = false;\n\t\tthis._state.streamMessage = null;\n\t\tthis._state.pendingToolCalls.clear();\n\t\tthis.activeToolBatchIds = null;\n\t\tthis.completedToolBatch = [];\n\t\tthis.nextRunHistoryQueue = [];\n\t\tthis.nextRunPromptOnlyQueue = [];\n\t\tthis.promptOnlyQueue = [];\n\t\tthis.queuedBatchShapingFeedbackKeys.clear();\n\t\tthis.nextRunSystemPromptAdditions = [];\n\t\tthis._state.error = undefined;\n\t\tthis.steeringQueue = [];\n\t\tthis.followUpQueue = [];\n\t\tthis.abortController = undefined;\n\t\tthis.runningPrompt = undefined;\n\t\tthis.resolveRunningPrompt = undefined;\n\t\tthis.withheldRecoverableOverflowError = undefined;\n\t\tthis.withheldRecoverableLengthMessages = [];\n\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\tthis.currentTaskBudget = undefined;\n\t\tthis.diagnosticRepairAttempts.clear();\n\t\tthis.currentTurnEvaluationFailure = undefined;\n\t\tthis.currentTurnSkillSelections.clear();\n\t\t// Note: Do NOT clear listeners - they contain the TUI subscription\n\t\t// and must persist across resets for UI updates to work\n\t}\n\n\tprivate buildProviderMessages(\n\t\ttransformedMessages: Message[],\n\t\tcontinuationPrompt?: string,\n\t): Message[] {\n\t\tconst providerInputMessages = continuationPrompt\n\t\t\t? [\n\t\t\t\t\t...transformedMessages,\n\t\t\t\t\t{\n\t\t\t\t\t\trole: \"user\" as const,\n\t\t\t\t\t\tcontent: continuationPrompt,\n\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t: transformedMessages;\n\t\treturn normalizeMessagesForProvider(\n\t\t\tproviderInputMessages,\n\t\t\tthis._state.model,\n\t\t);\n\t}\n\n\tprivate handleStreamedMessageEvent(\n\t\tevent: StreamedMessageEvent,\n\t\tstate: BufferedAssistantStartState,\n\t): BufferedAssistantStartState {\n\t\tlet { pendingAssistantStart, lastStopReason } = state;\n\n\t\tif (event.type === \"message_start\") {\n\t\t\tif (\n\t\t\t\tthis.suppressRecoverableOverflowErrors &&\n\t\t\t\tisAssistantMessage(event.message)\n\t\t\t) {\n\t\t\t\tpendingAssistantStart = event.message;\n\t\t\t\tthis._state.streamMessage = isCoreMessage(event.message)\n\t\t\t\t\t? event.message\n\t\t\t\t\t: null;\n\t\t\t\tif (\n\t\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t\t) ||\n\t\t\t\t\tthis.shouldWithholdRecoverableMaxOutput(event.message) ||\n\t\t\t\t\tthis.shouldMergeRecoverableLengthContinuation(event.message)\n\t\t\t\t) {\n\t\t\t\t\tthis._state.streamMessage = null;\n\t\t\t\t\tpendingAssistantStart = null;\n\t\t\t\t}\n\t\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t\t}\n\t\t\tif (\n\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t) ||\n\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t(this.shouldWithholdRecoverableMaxOutput(event.message) ||\n\t\t\t\t\t\tthis.shouldMergeRecoverableLengthContinuation(event.message)))\n\t\t\t) {\n\t\t\t\tthis._state.streamMessage = null;\n\t\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t\t}\n\t\t\tthis._state.streamMessage = isCoreMessage(event.message)\n\t\t\t\t? event.message\n\t\t\t\t: null;\n\t\t\tthis.emit(event);\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\n\t\tif (event.type === \"message_update\") {\n\t\t\tif (\n\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t) ||\n\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t(this.shouldWithholdRecoverableMaxOutput(event.message) ||\n\t\t\t\t\t\tthis.shouldMergeRecoverableLengthContinuation(event.message)))\n\t\t\t) {\n\t\t\t\tthis._state.streamMessage = null;\n\t\t\t\tpendingAssistantStart = null;\n\t\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t\t}\n\t\t\tif (pendingAssistantStart) {\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"message_start\",\n\t\t\t\t\tmessage: pendingAssistantStart,\n\t\t\t\t});\n\t\t\t\tpendingAssistantStart = null;\n\t\t\t}\n\t\t\tthis._state.streamMessage = isCoreMessage(event.message)\n\t\t\t\t? event.message\n\t\t\t\t: null;\n\t\t\tthis.emit(event);\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\n\t\tthis._state.streamMessage = null;\n\t\tlet incoming = event.message as AppMessage;\n\t\tif (this.shouldWithholdRecoverableOverflowError(incoming)) {\n\t\t\tpendingAssistantStart = null;\n\t\t\tthis.withheldRecoverableOverflowError = incoming;\n\t\t\tlastStopReason = incoming.stopReason;\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\t\tif (\n\t\t\tisAssistantMessage(incoming) &&\n\t\t\tthis.shouldWithholdRecoverableMaxOutput(incoming)\n\t\t) {\n\t\t\tpendingAssistantStart = null;\n\t\t\tconst assistantIncoming = incoming;\n\t\t\tconst lastMessage = this._state.messages[this._state.messages.length - 1];\n\t\t\tif (!isDuplicateMessage(lastMessage, assistantIncoming)) {\n\t\t\t\tthis._state.messages = [...this._state.messages, assistantIncoming];\n\t\t\t\tthis.withheldRecoverableLengthMessages.push(assistantIncoming);\n\t\t\t}\n\t\t\tlastStopReason = \"length\";\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\t\tif (\n\t\t\tisAssistantMessage(incoming) &&\n\t\t\tthis.shouldMergeRecoverableLengthContinuation(incoming)\n\t\t) {\n\t\t\tpendingAssistantStart = null;\n\t\t\tincoming = this.mergeWithWithheldRecoverableLengthMessages(incoming);\n\t\t\tlastStopReason = incoming.stopReason;\n\t\t\tthis.primeToolBatch(incoming);\n\t\t\tthis.emit({ type: \"message_start\", message: incoming });\n\t\t\tthis.emit({ ...event, message: incoming });\n\t\t\treturn { pendingAssistantStart, lastStopReason };\n\t\t}\n\t\tif (pendingAssistantStart && isAssistantMessage(incoming)) {\n\t\t\tthis.emit({\n\t\t\t\ttype: \"message_start\",\n\t\t\t\tmessage: pendingAssistantStart,\n\t\t\t});\n\t\t\tpendingAssistantStart = null;\n\t\t}\n\t\tconst lastMessage = this._state.messages[this._state.messages.length - 1];\n\t\tif (!isDuplicateMessage(lastMessage, incoming)) {\n\t\t\tthis._state.messages = [...this._state.messages, incoming];\n\t\t}\n\t\tif (\n\t\t\t\"stopReason\" in event.message &&\n\t\t\tevent.message.stopReason !== undefined\n\t\t) {\n\t\t\tlastStopReason = event.message.stopReason;\n\t\t}\n\t\tthis.primeToolBatch(incoming);\n\t\tthis.emit({ ...event, message: incoming });\n\t\treturn { pendingAssistantStart, lastStopReason };\n\t}\n\n\t/**\n\t * Sends a prompt to the model and processes the response, including tool calls.\n\t *\n\t * This is the main entry point for interacting with the agent. It handles:\n\t * - Building the user message with optional image/document attachments\n\t * - Streaming the model's response\n\t * - Executing any tool calls made by the model\n\t * - Automatic retries for tool execution\n\t *\n\t * @param input - The user's text prompt\n\t * @param attachments - Optional images or documents to include with the prompt\n\t *\n\t * @example\n\t * ```typescript\n\t * await agent.prompt(\"Read the package.json file\");\n\t *\n\t * // With image attachment\n\t * await agent.prompt(\"What's in this screenshot?\", [{\n\t * type: \"image\",\n\t * content: base64Data,\n\t * mimeType: \"image/png\"\n\t * }]);\n\t * ```\n\t */\n\tasync prompt(input: string, attachments?: Attachment[]): Promise<void> {\n\t\t// Prevent concurrent prompts\n\t\tif (this.runningPrompt) {\n\t\t\tthrow new Error(\n\t\t\t\t\"A prompt is already in progress. Wait for it to complete before starting another.\",\n\t\t\t);\n\t\t}\n\n\t\tconst queryProfiler = createQueryProfilerFromEnv();\n\t\tqueryProfiler.checkpoint(\"input:received\");\n\n\t\tthis.clearTransientRunState();\n\n\t\t// Set up running prompt tracking\n\t\tthis.runningPrompt = new Promise<void>((resolve) => {\n\t\t\tthis.resolveRunningPrompt = resolve;\n\t\t});\n\n\t\tfor (const queuedMessage of this.dequeueNextRunHistoryMessages()) {\n\t\t\tthis.injectMessage(queuedMessage);\n\t\t}\n\n\t\tconst userMessage: UserMessageWithAttachments = {\n\t\t\trole: \"user\",\n\t\t\tcontent: input,\n\t\t\tattachments: attachments?.length ? attachments : undefined,\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\tthis._state.messages = [...this._state.messages, userMessage];\n\t\tthis._state.isStreaming = true;\n\n\t\tconst abortController = new AbortController();\n\t\tthis.abortController = abortController;\n\n\t\tthis.emit({ type: \"agent_start\" });\n\n\t\tlet aborted = false;\n\t\tlet lastStopReason: StopReason | undefined;\n\t\tlet pendingAssistantStart: AssistantMessage | null = null;\n\n\t\ttry {\n\t\t\tconst transformedMessages = await this.messageTransformer(\n\t\t\t\tthis._state.messages,\n\t\t\t);\n\t\t\tconst messagesToSend = this.buildProviderMessages(transformedMessages);\n\t\t\tqueryProfiler.checkpoint(\"context:loaded\", {\n\t\t\t\tmessages: messagesToSend.length,\n\t\t\t});\n\n\t\t\t// Determine reasoning level\n\t\t\tconst level = this._state.thinkingLevel;\n\t\t\tconst reasoning = this._state.model.reasoning\n\t\t\t\t? mapThinkingLevel(level)\n\t\t\t\t: undefined;\n\n\t\t\t// Inject Context from Environment (Terrarium Principle)\n\t\t\tlet systemPrompt = this._state.systemPrompt;\n\t\t\tconst nextRunSystemPromptAdditions =\n\t\t\t\tthis.dequeueNextRunSystemPromptAdditions();\n\t\t\tif (nextRunSystemPromptAdditions.length > 0) {\n\t\t\t\tsystemPrompt = `${systemPrompt}\\n\\n${nextRunSystemPromptAdditions.join(\"\\n\\n\")}`;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst contextAdditions =\n\t\t\t\t\tawait this.contextManager.getCombinedSystemPrompt();\n\t\t\t\tif (contextAdditions) {\n\t\t\t\t\tsystemPrompt += `\\n\\n${contextAdditions}`;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to inject environmental context\", {\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t\tqueryProfiler.checkpoint(\"prompt:assembled\", {\n\t\t\t\tsystem_bytes: systemPrompt.length,\n\t\t\t});\n\n\t\t\tconst runConfig = {\n\t\t\t\tsystemPrompt,\n\t\t\t\ttools: this._state.tools,\n\t\t\t\tmodel: this._state.model,\n\t\t\t\treasoning,\n\t\t\t\treasoningSummary: this._state.reasoningSummary,\n\t\t\t\tpreprocessMessages: this.preprocessMessages,\n\t\t\t\tgetSteeringMessages: async <T>() => this.dequeueSteeringMessages<T>(),\n\t\t\t\tgetFollowUpMessages: async <T>() => this.dequeueFollowUpMessages<T>(),\n\t\t\t\tgetPromptOnlyMessages: async () => this.dequeuePromptOnlyMessages(),\n\t\t\t\tuser: this._state.user,\n\t\t\t\tsession: this._state.session,\n\t\t\t\tsandbox: this._state.sandbox,\n\t\t\t\ttemperature: this._state.temperature,\n\t\t\t\ttopP: this._state.topP,\n\t\t\t\ttaskBudget: this.currentTaskBudget,\n\t\t\t\tqueryProfiler,\n\t\t\t};\n\t\t\tqueryProfiler.checkpoint(\"tools:prepared\", {\n\t\t\t\ttools: this._state.tools.length,\n\t\t\t});\n\n\t\t\tfor await (const event of this.transport.run(\n\t\t\t\tmessagesToSend, // Include userMessage in messages array\n\t\t\t\tuserMessage,\n\t\t\t\trunConfig,\n\t\t\t\tabortController.signal,\n\t\t\t)) {\n\t\t\t\tif (\n\t\t\t\t\tevent.type === \"message_start\" ||\n\t\t\t\t\tevent.type === \"message_update\" ||\n\t\t\t\t\tevent.type === \"message_end\"\n\t\t\t\t) {\n\t\t\t\t\t({ pendingAssistantStart, lastStopReason } =\n\t\t\t\t\t\tthis.handleStreamedMessageEvent(event, {\n\t\t\t\t\t\t\tpendingAssistantStart,\n\t\t\t\t\t\t\tlastStopReason,\n\t\t\t\t\t\t}));\n\t\t\t\t} else if (event.type === \"tool_execution_start\") {\n\t\t\t\t\tthis.handleToolExecutionStart(event);\n\t\t\t\t} else if (event.type === \"tool_execution_update\") {\n\t\t\t\t\tthis.handleToolExecutionUpdate(event);\n\t\t\t\t} else if (event.type === \"tool_execution_end\") {\n\t\t\t\t\tthis.handleToolExecutionEnd(event);\n\t\t\t\t} else if (event.type === \"tool_phase_summary\") {\n\t\t\t\t\tthis.handleToolPhaseSummary(event);\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else if (event.type === \"turn_end\") {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t\t\t) ||\n\t\t\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t\t\tthis.shouldWithholdRecoverableMaxOutput(event.message))\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.pendingMergedRecoverableTurnEnd) {\n\t\t\t\t\t\tthis.emit({\n\t\t\t\t\t\t\t...event,\n\t\t\t\t\t\t\tmessage: this.pendingMergedRecoverableTurnEnd,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error: unknown) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\taborted = true;\n\t\t\t\tqueryProfiler.terminal(\"turn:aborted\");\n\t\t\t} else {\n\t\t\t\tthis._state.error =\n\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\tqueryProfiler.terminal(\"turn:error\");\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._state.isStreaming = false;\n\t\t\tif (this.abortController === abortController) {\n\t\t\t\tthis.abortController = undefined;\n\t\t\t}\n\t\t\t// Clean up running prompt tracking\n\t\t\tthis.resolveRunningPrompt?.();\n\t\t\tthis.runningPrompt = undefined;\n\t\t\tthis.resolveRunningPrompt = undefined;\n\t\t\tif (this._state.pendingToolCalls.size > 0) {\n\t\t\t\tconst reason = aborted\n\t\t\t\t\t? \"Error: Operation aborted\"\n\t\t\t\t\t: \"Error: Tool execution did not complete\";\n\t\t\t\tthis.resolvePendingToolCalls(reason);\n\t\t\t}\n\n\t\t\tconst partialAccepted = this._partialAccepted;\n\t\t\tthis._partialAccepted = null;\n\t\t\tthis.publishCurrentTurnSkillOutcomes({\n\t\t\t\taborted,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"agent_end\",\n\t\t\t\tmessages: this._state.messages,\n\t\t\t\taborted,\n\t\t\t\tpartialAccepted: partialAccepted ?? undefined,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Continue the agent conversation from existing messages without adding a new user message.\n\t * Useful for overflow recovery after compaction, or resuming a partial response.\n\t *\n\t * @param options - Optional configuration for continuation\n\t */\n\tasync continue(options?: {\n\t\t/** Override the system prompt for this continuation */\n\t\tsystemPromptOverride?: string;\n\t\t/** Override max output tokens for this continuation only. */\n\t\tmaxTokensOverride?: number;\n\t\t/**\n\t\t * Provider-only user instruction appended for this continuation.\n\t\t * Not persisted to session history or shown in the UI.\n\t\t */\n\t\tcontinuationPrompt?: string;\n\t}): Promise<void> {\n\t\t// Prevent concurrent prompts\n\t\tif (this.runningPrompt) {\n\t\t\tthrow new Error(\n\t\t\t\t\"A prompt is already in progress. Wait for it to complete before starting another.\",\n\t\t\t);\n\t\t}\n\n\t\t// Check we have messages to continue from\n\t\tif (this._state.messages.length === 0) {\n\t\t\tthrow new Error(\"No messages to continue from\");\n\t\t}\n\n\t\tconst queryProfiler = createQueryProfilerFromEnv();\n\t\tqueryProfiler.checkpoint(\"input:received\", { continuation: true });\n\n\t\tthis.clearTransientRunState();\n\n\t\t// Set up running prompt tracking\n\t\tthis.runningPrompt = new Promise<void>((resolve) => {\n\t\t\tthis.resolveRunningPrompt = resolve;\n\t\t});\n\n\t\tfor (const queuedMessage of this.dequeueNextRunHistoryMessages()) {\n\t\t\tthis.injectMessage(queuedMessage);\n\t\t}\n\n\t\tthis._state.isStreaming = true;\n\n\t\tconst abortController = new AbortController();\n\t\tthis.abortController = abortController;\n\n\t\tthis.emit({ type: \"agent_start\", continuation: true });\n\n\t\tlet aborted = false;\n\t\tlet lastStopReason: StopReason | undefined;\n\t\tlet pendingAssistantStart: AssistantMessage | null = null;\n\n\t\ttry {\n\t\t\tconst transformedMessages = await this.messageTransformer(\n\t\t\t\tthis._state.messages,\n\t\t\t);\n\t\t\tconst continuationPrompt = options?.continuationPrompt?.trim();\n\t\t\tconst providerMessages = this.buildProviderMessages(\n\t\t\t\ttransformedMessages,\n\t\t\t\tcontinuationPrompt,\n\t\t\t);\n\t\t\tqueryProfiler.checkpoint(\"context:loaded\", {\n\t\t\t\tmessages: providerMessages.length,\n\t\t\t});\n\n\t\t\t// Determine reasoning level\n\t\t\tconst level = this._state.thinkingLevel;\n\t\t\tconst reasoning = this._state.model.reasoning\n\t\t\t\t? mapThinkingLevel(level)\n\t\t\t\t: undefined;\n\n\t\t\t// Inject Context from Environment\n\t\t\tlet systemPrompt =\n\t\t\t\toptions?.systemPromptOverride ?? this._state.systemPrompt;\n\t\t\tconst nextRunSystemPromptAdditions =\n\t\t\t\tthis.dequeueNextRunSystemPromptAdditions();\n\t\t\tif (nextRunSystemPromptAdditions.length > 0) {\n\t\t\t\tsystemPrompt = `${systemPrompt}\\n\\n${nextRunSystemPromptAdditions.join(\"\\n\\n\")}`;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst contextAdditions =\n\t\t\t\t\tawait this.contextManager.getCombinedSystemPrompt();\n\t\t\t\tif (contextAdditions) {\n\t\t\t\t\tsystemPrompt += `\\n\\n${contextAdditions}`;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to inject environmental context\", {\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t}\n\t\t\tqueryProfiler.checkpoint(\"prompt:assembled\", {\n\t\t\t\tsystem_bytes: systemPrompt.length,\n\t\t\t});\n\n\t\t\t// Create a synthetic continuation trigger message\n\t\t\t// This signals to the transport that we want the model to continue responding\n\t\t\tconst continuationMessage: UserMessage = {\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: [],\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\n\t\t\tconst runConfig = {\n\t\t\t\tsystemPrompt,\n\t\t\t\ttools: this._state.tools,\n\t\t\t\tmodel:\n\t\t\t\t\toptions?.maxTokensOverride !== undefined\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...this._state.model,\n\t\t\t\t\t\t\t\tmaxTokens: options.maxTokensOverride,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: this._state.model,\n\t\t\t\treasoning,\n\t\t\t\treasoningSummary: this._state.reasoningSummary,\n\t\t\t\tpreprocessMessages: this.preprocessMessages,\n\t\t\t\tgetSteeringMessages: async <T>() => this.dequeueSteeringMessages<T>(),\n\t\t\t\tgetFollowUpMessages: async <T>() => this.dequeueFollowUpMessages<T>(),\n\t\t\t\tgetPromptOnlyMessages: async () => this.dequeuePromptOnlyMessages(),\n\t\t\t\tuser: this._state.user,\n\t\t\t\tsession: this._state.session,\n\t\t\t\tsandbox: this._state.sandbox,\n\t\t\t\ttemperature: this._state.temperature,\n\t\t\t\ttopP: this._state.topP,\n\t\t\t\ttaskBudget: this.currentTaskBudget,\n\t\t\t\temitUserMessageEnd: false,\n\t\t\t\tqueryProfiler,\n\t\t\t};\n\t\t\tqueryProfiler.checkpoint(\"tools:prepared\", {\n\t\t\t\ttools: this._state.tools.length,\n\t\t\t});\n\n\t\t\tfor await (const event of this.transport.run(\n\t\t\t\tproviderMessages,\n\t\t\t\tcontinuationMessage,\n\t\t\t\trunConfig,\n\t\t\t\tabortController.signal,\n\t\t\t)) {\n\t\t\t\tif (\n\t\t\t\t\tevent.type === \"message_start\" ||\n\t\t\t\t\tevent.type === \"message_update\" ||\n\t\t\t\t\tevent.type === \"message_end\"\n\t\t\t\t) {\n\t\t\t\t\t({ pendingAssistantStart, lastStopReason } =\n\t\t\t\t\t\tthis.handleStreamedMessageEvent(event, {\n\t\t\t\t\t\t\tpendingAssistantStart,\n\t\t\t\t\t\t\tlastStopReason,\n\t\t\t\t\t\t}));\n\t\t\t\t} else if (event.type === \"tool_execution_start\") {\n\t\t\t\t\tthis.handleToolExecutionStart(event);\n\t\t\t\t} else if (event.type === \"tool_execution_update\") {\n\t\t\t\t\tthis.handleToolExecutionUpdate(event);\n\t\t\t\t} else if (event.type === \"tool_execution_end\") {\n\t\t\t\t\tthis.handleToolExecutionEnd(event);\n\t\t\t\t} else if (event.type === \"tool_phase_summary\") {\n\t\t\t\t\tthis.handleToolPhaseSummary(event);\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else if (event.type === \"turn_end\") {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.shouldWithholdRecoverableOverflowError(\n\t\t\t\t\t\t\tevent.message as AppMessage,\n\t\t\t\t\t\t) ||\n\t\t\t\t\t\t(isAssistantMessage(event.message) &&\n\t\t\t\t\t\t\tthis.shouldWithholdRecoverableMaxOutput(event.message))\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.pendingMergedRecoverableTurnEnd) {\n\t\t\t\t\t\tthis.emit({\n\t\t\t\t\t\t\t...event,\n\t\t\t\t\t\t\tmessage: this.pendingMergedRecoverableTurnEnd,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.pendingMergedRecoverableTurnEnd = undefined;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit(event);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error: unknown) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\taborted = true;\n\t\t\t\tqueryProfiler.terminal(\"turn:aborted\");\n\t\t\t} else {\n\t\t\t\tthis._state.error =\n\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\tqueryProfiler.terminal(\"turn:error\");\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._state.isStreaming = false;\n\t\t\tif (this.abortController === abortController) {\n\t\t\t\tthis.abortController = undefined;\n\t\t\t}\n\t\t\t// Clean up running prompt tracking\n\t\t\tthis.resolveRunningPrompt?.();\n\t\t\tthis.runningPrompt = undefined;\n\t\t\tthis.resolveRunningPrompt = undefined;\n\t\t\tif (this._state.pendingToolCalls.size > 0) {\n\t\t\t\tconst reason = aborted\n\t\t\t\t\t? \"Error: Operation aborted\"\n\t\t\t\t\t: \"Error: Tool execution did not complete\";\n\t\t\t\tthis.resolvePendingToolCalls(reason);\n\t\t\t}\n\n\t\t\tconst partialAccepted = this._partialAccepted;\n\t\t\tthis._partialAccepted = null;\n\t\t\tthis.publishCurrentTurnSkillOutcomes({\n\t\t\t\taborted,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\n\t\t\tthis.emit({\n\t\t\t\ttype: \"agent_end\",\n\t\t\t\tmessages: this._state.messages,\n\t\t\t\taborted,\n\t\t\t\tpartialAccepted: partialAccepted ?? undefined,\n\t\t\t\tstopReason: lastStopReason,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate handleToolExecutionStart(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_start\" }>,\n\t): void {\n\t\tconst tool = this._state.tools.find(\n\t\t\t(candidate) => candidate.name === event.toolName,\n\t\t);\n\t\tconst displayName = describeToolDisplayName(\n\t\t\tevent.toolName,\n\t\t\tevent.args,\n\t\t\ttool,\n\t\t);\n\t\tconst summaryLabel = summarizeToolUse(event.toolName, event.args, tool);\n\t\tthis._state.pendingToolCalls.set(event.toolCallId, {\n\t\t\ttoolName: event.toolName,\n\t\t\targs: event.args,\n\t\t\ttool,\n\t\t\tdisplayName,\n\t\t\tsummaryLabel,\n\t\t});\n\t\tconst safeArgumentProjection = projectSafeToolCallArguments(event.args);\n\t\trecordMaestroToolCallAttempt({\n\t\t\ttool_call_id: event.toolCallId,\n\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\ttool_name: event.toolName,\n\t\t\tsafe_arguments: safeArgumentProjection.safe_arguments,\n\t\t\tredactions: safeArgumentProjection.redactions,\n\t\t\tcorrelation: {\n\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t},\n\t\t});\n\t\tthis.emitStatus(describeToolActivity(event.toolName, event.args, tool), {\n\t\t\tkind: \"tool_execution_summary\",\n\t\t\ttoolCallId: event.toolCallId,\n\t\t\ttoolName: event.toolName,\n\t\t\tdisplayName,\n\t\t\tsummaryLabel,\n\t\t});\n\t\tthis.emit({ ...event, displayName, summaryLabel });\n\t}\n\n\tprivate preserveSpecificPendingToolLabel(\n\t\tnextLabel: string,\n\t\tpendingLabel: string | undefined,\n\t\tgenericLabel: string,\n\t): string {\n\t\tif (\n\t\t\t!pendingLabel ||\n\t\t\tpendingLabel === genericLabel ||\n\t\t\tnextLabel !== genericLabel\n\t\t) {\n\t\t\treturn nextLabel;\n\t\t}\n\t\treturn pendingLabel;\n\t}\n\n\tprivate handleToolExecutionUpdate(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_update\" }>,\n\t): void {\n\t\tconst pending = this._state.pendingToolCalls.get(event.toolCallId);\n\t\tconst tool = pending?.tool;\n\t\tconst nextDisplayName = describeToolDisplayName(\n\t\t\tevent.toolName,\n\t\t\tevent.args,\n\t\t\ttool,\n\t\t);\n\t\tconst nextSummaryLabel = summarizeToolUse(event.toolName, event.args, tool);\n\t\tconst displayName = this.preserveSpecificPendingToolLabel(\n\t\t\tnextDisplayName,\n\t\t\tpending?.displayName,\n\t\t\tdescribeToolDisplayName(event.toolName, {}, tool),\n\t\t);\n\t\tconst summaryLabel = this.preserveSpecificPendingToolLabel(\n\t\t\tnextSummaryLabel,\n\t\t\tpending?.summaryLabel,\n\t\t\tsummarizeToolUse(event.toolName, {}, tool),\n\t\t);\n\t\tif (pending) {\n\t\t\tpending.args = event.args;\n\t\t\tpending.displayName = displayName;\n\t\t\tpending.summaryLabel = summaryLabel;\n\t\t}\n\t\tthis.emit({ ...event, displayName, summaryLabel });\n\t}\n\n\tprivate handleToolExecutionEnd(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst pending = this._state.pendingToolCalls.get(event.toolCallId);\n\t\tthis._state.pendingToolCalls.delete(event.toolCallId);\n\t\tthis.emit({\n\t\t\t...event,\n\t\t\tdisplayName: pending?.displayName,\n\t\t\tsummaryLabel: pending?.summaryLabel,\n\t\t});\n\t\trecordMaestroToolCallCompleted({\n\t\t\ttool_call_id: event.toolCallId,\n\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\tstatus: event.isError\n\t\t\t\t? \"MAESTRO_TOOL_CALL_STATUS_FAILED\"\n\t\t\t\t: \"MAESTRO_TOOL_CALL_STATUS_SUCCEEDED\",\n\t\t\tskill_metadata: event.skillMetadata,\n\t\t\tapproval_request_id: event.approvalRequestId,\n\t\t\tgoverned_outcome: event.governedOutcome,\n\t\t\terror_code: event.errorCode,\n\t\t\terror_message: event.isError\n\t\t\t\t? event.result.content\n\t\t\t\t\t\t.map((part) => (part.type === \"text\" ? part.text : \"\"))\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(\"\\n\")\n\t\t\t\t: undefined,\n\t\t\tcorrelation: {\n\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t},\n\t\t});\n\t\tif (event.skillMetadata) {\n\t\t\tthis.recordCurrentTurnSkillSelection({\n\t\t\t\tskillMetadata: event.skillMetadata,\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolExecutionId: event.toolExecutionId,\n\t\t\t});\n\t\t\tif (event.toolName === \"Skill\") {\n\t\t\t\trecordMaestroSkillInvoked({\n\t\t\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\t\t\tskill_metadata: event.skillMetadata,\n\t\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\t\t\tcorrelation: {\n\t\t\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t\t\t},\n\t\t\t\t\tinvoked_at: new Date(event.result.timestamp).toISOString(),\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tthis.publishCurrentTurnEvalScores(event);\n\t\tthis.handleDiagnosticDeltaToolResult(event);\n\t\tif (!pending) {\n\t\t\treturn;\n\t\t}\n\t\tthis.completedToolBatch.push({\n\t\t\ttoolCallId: event.toolCallId,\n\t\t\ttoolName: event.toolName,\n\t\t\targs: pending.args ?? {},\n\t\t\tisError: event.isError,\n\t\t\ttool: pending.tool,\n\t\t});\n\t\tif (this.activeToolBatchIds?.delete(event.toolCallId)) {\n\t\t\tif (this.activeToolBatchIds.size > 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.activeToolBatchIds = null;\n\t\t\tthis.emitToolBatchSummary();\n\t\t}\n\t}\n\n\tprivate buildSkillSelectionKey(skillMetadata: SkillArtifactMetadata): string {\n\t\treturn [\n\t\t\tskillMetadata.artifactId,\n\t\t\tskillMetadata.source,\n\t\t\tskillMetadata.name,\n\t\t\tskillMetadata.version,\n\t\t\tskillMetadata.hash,\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(\":\");\n\t}\n\n\tprivate recordCurrentTurnSkillSelection(selection: {\n\t\tskillMetadata: SkillArtifactMetadata;\n\t\ttoolCallId: string;\n\t\ttoolExecutionId?: string;\n\t}): void {\n\t\tconst key = this.buildSkillSelectionKey(selection.skillMetadata);\n\t\tif (!key) {\n\t\t\treturn;\n\t\t}\n\t\tconst existing = this.currentTurnSkillSelections.get(key);\n\t\tthis.currentTurnSkillSelections.set(key, {\n\t\t\t...existing,\n\t\t\t...selection,\n\t\t\tevaluationFailure: existing?.evaluationFailure,\n\t\t});\n\t}\n\n\tprivate getCurrentTurnSkillSelectionForEvaluation(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): CurrentTurnSkillSelection | undefined {\n\t\tif (event.skillMetadata) {\n\t\t\treturn this.currentTurnSkillSelections.get(\n\t\t\t\tthis.buildSkillSelectionKey(event.skillMetadata),\n\t\t\t);\n\t\t}\n\t\tif (this.currentTurnSkillSelections.size === 1) {\n\t\t\tfor (const selection of this.currentTurnSkillSelections.values()) {\n\t\t\t\treturn selection;\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate publishCurrentTurnEvalScores(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst evaluation = getToolEvaluationSummary(event.result.details);\n\t\tif (!evaluation || this.currentTurnSkillSelections.size === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst scoredAt = new Date(event.result.timestamp).toISOString();\n\t\tconst failedEvaluation = isFailedToolEvaluation(evaluation)\n\t\t\t? {\n\t\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\t\ttoolExecutionId: event.toolExecutionId,\n\t\t\t\t\ttoolName: event.toolName,\n\t\t\t\t\tscore: evaluation.score,\n\t\t\t\t\tthreshold: evaluation.threshold,\n\t\t\t\t\trationale: evaluation.rationale,\n\t\t\t\t\tassertionCount: evaluation.assertionCount,\n\t\t\t\t}\n\t\t\t: undefined;\n\t\tconst evaluationTarget = failedEvaluation\n\t\t\t? this.getCurrentTurnSkillSelectionForEvaluation(event)\n\t\t\t: undefined;\n\t\tif (failedEvaluation) {\n\t\t\tthis.currentTurnEvaluationFailure = failedEvaluation;\n\t\t}\n\t\tif (failedEvaluation && evaluationTarget) {\n\t\t\tevaluationTarget.evaluationFailure = failedEvaluation;\n\t\t}\n\t\tfor (const selection of this.currentTurnSkillSelections.values()) {\n\t\t\trecordMaestroEvalScored({\n\t\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\t\tskill_metadata: selection.skillMetadata,\n\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\t\ttool_name: event.toolName,\n\t\t\t\tscore: evaluation.score,\n\t\t\t\tthreshold: evaluation.threshold,\n\t\t\t\tpassed: evaluation.passed,\n\t\t\t\trationale: evaluation.rationale,\n\t\t\t\tassertion_count: evaluation.assertionCount,\n\t\t\t\tcorrelation: {\n\t\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\t\tagent_run_step_id: event.toolCallId,\n\t\t\t\t},\n\t\t\t\tscored_at: scoredAt,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate publishCurrentTurnSkillOutcomes(options: {\n\t\taborted: boolean;\n\t\tstopReason?: StopReason;\n\t}): void {\n\t\tif (this.currentTurnSkillSelections.size === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst baseTurnStatus = options.aborted\n\t\t\t? \"aborted\"\n\t\t\t: this._state.error !== undefined\n\t\t\t\t? \"error\"\n\t\t\t\t: undefined;\n\n\t\tfor (const selection of this.currentTurnSkillSelections.values()) {\n\t\t\tconst evaluationFailure = selection.evaluationFailure;\n\t\t\tconst turnStatus =\n\t\t\t\tbaseTurnStatus ??\n\t\t\t\t(evaluationFailure || this.currentTurnEvaluationFailure\n\t\t\t\t\t? \"evaluation_failed\"\n\t\t\t\t\t: \"success\");\n\t\t\tconst outcomeEvaluationFailure =\n\t\t\t\tevaluationFailure ?? this.currentTurnEvaluationFailure;\n\t\t\tconst errorMessage =\n\t\t\t\tturnStatus === \"aborted\"\n\t\t\t\t\t? \"Operation aborted\"\n\t\t\t\t\t: turnStatus === \"error\"\n\t\t\t\t\t\t? this._state.error\n\t\t\t\t\t\t: turnStatus === \"evaluation_failed\" && outcomeEvaluationFailure\n\t\t\t\t\t\t\t? buildEvaluationFailureMessage(outcomeEvaluationFailure)\n\t\t\t\t\t\t\t: undefined;\n\t\t\trecordMaestroSkillOutcome({\n\t\t\t\tprompt_metadata: this._state.promptMetadata,\n\t\t\t\tskill_metadata: selection.skillMetadata,\n\t\t\t\ttool_call_id: selection.toolCallId,\n\t\t\t\ttool_execution_id: selection.toolExecutionId,\n\t\t\t\tturn_status: turnStatus,\n\t\t\t\terror_category:\n\t\t\t\t\tturnStatus === \"success\"\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: turnStatus === \"evaluation_failed\"\n\t\t\t\t\t\t\t? \"evaluation\"\n\t\t\t\t\t\t\t: \"runtime\",\n\t\t\t\terror_message: errorMessage,\n\t\t\t\tevaluation_tool_name: evaluationFailure?.toolName,\n\t\t\t\tevaluation_tool_call_id: evaluationFailure?.toolCallId,\n\t\t\t\tevaluation_tool_execution_id: evaluationFailure?.toolExecutionId,\n\t\t\t\tevaluation_score: evaluationFailure?.score,\n\t\t\t\tevaluation_threshold: evaluationFailure?.threshold,\n\t\t\t\tevaluation_assertion_count: evaluationFailure?.assertionCount,\n\t\t\t\tevaluation_rationale: evaluationFailure?.rationale,\n\t\t\t\tstop_reason: options.stopReason,\n\t\t\t\tcorrelation: {\n\t\t\t\t\tsession_id: this._state.session?.id,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis.currentTurnEvaluationFailure = undefined;\n\t\tthis.currentTurnSkillSelections.clear();\n\t}\n\n\tprivate handleDiagnosticDeltaToolResult(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst summary = getDiagnosticDeltaFromToolResult(event.result);\n\t\tif (!summary) {\n\t\t\treturn;\n\t\t}\n\t\tif (summary.introducedCount === 0 && summary.repairedCount === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst repairKey = [event.toolName, summary.file, summary.fingerprint].join(\n\t\t\t\":\",\n\t\t);\n\t\tconst nextAttempt = (this.diagnosticRepairAttempts.get(repairKey) ?? 0) + 1;\n\t\tconst hasPendingUserInput =\n\t\t\tthis.steeringQueue.length > 0 || this.followUpQueue.length > 0;\n\t\tconst hasOptOut = hasDiagnosticRepairOptOut(this._state.messages);\n\t\tconst canAutoFollowUp =\n\t\t\t!event.isError &&\n\t\t\tsummary.repair.shouldFollowUp &&\n\t\t\t!hasPendingUserInput &&\n\t\t\t!hasOptOut &&\n\t\t\tnextAttempt <= summary.repair.maxAttempts;\n\n\t\tconst reason = !summary.repair.shouldFollowUp\n\t\t\t? summary.repair.reason\n\t\t\t: event.isError\n\t\t\t\t? \"Tool call failed; leaving diagnostics in the tool result.\"\n\t\t\t\t: hasPendingUserInput\n\t\t\t\t\t? \"Queued user input exists; not adding an automatic diagnostic repair turn.\"\n\t\t\t\t\t: hasOptOut\n\t\t\t\t\t\t? \"User asked Maestro not to continue or repair automatically.\"\n\t\t\t\t\t\t: nextAttempt > summary.repair.maxAttempts\n\t\t\t\t\t\t\t? \"Automatic diagnostic repair attempt limit reached.\"\n\t\t\t\t\t\t\t: \"Queued a bounded diagnostic repair follow-up.\";\n\n\t\tif (summary.repair.shouldFollowUp) {\n\t\t\tthis.diagnosticRepairAttempts.set(repairKey, nextAttempt);\n\t\t}\n\n\t\tthis.emit({\n\t\t\ttype: \"diagnostic_delta\",\n\t\t\ttoolCallId: event.toolCallId,\n\t\t\ttoolName: event.toolName,\n\t\t\tfile: summary.file,\n\t\t\tdisplayPath: summary.displayPath,\n\t\t\tusedDelta: summary.usedDelta,\n\t\t\tintroducedCount: summary.introducedCount,\n\t\t\trepairedCount: summary.repairedCount,\n\t\t\tremainingCount: summary.remainingCount,\n\t\t\tfingerprint: summary.fingerprint,\n\t\t\trepairAttempt: summary.repair.shouldFollowUp ? nextAttempt : undefined,\n\t\t\tmaxRepairAttempts: summary.repair.shouldFollowUp\n\t\t\t\t? summary.repair.maxAttempts\n\t\t\t\t: undefined,\n\t\t\twillAutoFollowUp: canAutoFollowUp,\n\t\t\treason,\n\t\t});\n\n\t\tif (!canAutoFollowUp) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.enqueueFollowUpMessageSync(\n\t\t\tbuildDiagnosticRepairFollowUpMessage({\n\t\t\t\tsummary,\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\tattempt: nextAttempt,\n\t\t\t}),\n\t\t\t\"front\",\n\t\t);\n\t}\n\n\tprivate enqueueFollowUpMessageSync(\n\t\tmessage: AppMessage,\n\t\tposition: \"front\" | \"back\" = \"back\",\n\t): void {\n\t\tconst queued: QueuedMessage<AppMessage> = {\n\t\t\tid: this.nextQueuedMessageId++,\n\t\t\tcreatedAt: Date.now(),\n\t\t\toriginal: message,\n\t\t\tllm: message as Message,\n\t\t};\n\t\tif (position === \"front\") {\n\t\t\tthis.followUpQueue.unshift(queued);\n\t\t\treturn;\n\t\t}\n\t\tthis.followUpQueue.push(queued);\n\t}\n\n\tprivate primeToolBatch(message: AppMessage): void {\n\t\tif (message.role !== \"assistant\" || message.stopReason !== \"toolUse\") {\n\t\t\treturn;\n\t\t}\n\t\tconst toolCallIds = message.content.flatMap((block) =>\n\t\t\tblock.type === \"toolCall\" ? [block.id] : [],\n\t\t);\n\t\tif (toolCallIds.length === 0) {\n\t\t\tthis.activeToolBatchIds = null;\n\t\t\tthis.completedToolBatch = [];\n\t\t\treturn;\n\t\t}\n\t\tthis.activeToolBatchIds = new Set(toolCallIds);\n\t\tthis.completedToolBatch = [];\n\t}\n\n\tprivate emitToolBatchSummary(): void {\n\t\tif (this.completedToolBatch.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst batch = this.completedToolBatch;\n\t\tthis.completedToolBatch = [];\n\t\tconst { summary, summaryLabels, callsSucceeded, callsFailed } =\n\t\t\tsummarizeToolBatch(batch);\n\t\tthis.emit({\n\t\t\ttype: \"tool_batch_summary\",\n\t\t\tsummary,\n\t\t\tsummaryLabels,\n\t\t\ttoolCallIds: batch.map((entry) => entry.toolCallId),\n\t\t\ttoolNames: batch.map((entry) => entry.toolName),\n\t\t\tcallsSucceeded,\n\t\t\tcallsFailed,\n\t\t});\n\t\tif (summaryLabels.length > 0) {\n\t\t\tthis.promptOnlyQueue.push(\n\t\t\t\tbuildPromptOnlyToolBatchSummaryMessage(summaryLabels),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate handleToolPhaseSummary(\n\t\tevent: Extract<AgentEvent, { type: \"tool_phase_summary\" }>,\n\t): void {\n\t\tconst feedback = event.batchShapingFeedback;\n\t\tif (feedback?.avoidableSingleton) {\n\t\t\tconst key = feedback.reason || \"avoidable_singleton\";\n\t\t\tif (this.queuedBatchShapingFeedbackKeys.has(key)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.queuedBatchShapingFeedbackKeys.add(key);\n\t\t\tthis.promptOnlyQueue.push(buildPromptOnlyBatchShapingFeedbackMessage());\n\t\t}\n\t}\n\n\tprivate resolvePendingToolCalls(reason: string): void {\n\t\tfor (const [toolCallId, info] of this._state.pendingToolCalls.entries()) {\n\t\t\tconst abortedResult: ToolResultMessage = {\n\t\t\t\trole: \"toolResult\",\n\t\t\t\ttoolCallId,\n\t\t\t\ttoolName: info.toolName,\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: reason,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tisError: true,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t\tthis._state.messages = [...this._state.messages, abortedResult];\n\t\t\tthis.handleToolExecutionEnd({\n\t\t\t\ttype: \"tool_execution_end\",\n\t\t\t\ttoolCallId,\n\t\t\t\ttoolName: info.toolName,\n\t\t\t\tresult: abortedResult,\n\t\t\t\tisError: true,\n\t\t\t});\n\t\t}\n\t\tthis._state.pendingToolCalls.clear();\n\t}\n\n\tasync generateSummary(\n\t\thistory: Message[],\n\t\tprompt: string,\n\t\tsystemPrompt = \"\",\n\t\tmodelOverride?: Model<Api>,\n\t\tsignal?: AbortSignal,\n\t): Promise<AssistantMessage> {\n\t\tconst summaryModel = modelOverride ?? this._state.model;\n\t\tif (!summaryModel) {\n\t\t\tthrow new Error(\"No model configured for summarization\");\n\t\t}\n\n\t\tconst userMessage: UserMessage = {\n\t\t\trole: \"user\",\n\t\t\tcontent: [{ type: \"text\", text: prompt }],\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\tconst runMessages: Message[] = [...history, userMessage];\n\t\tconst providerMessages = normalizeMessagesForProvider(\n\t\t\trunMessages,\n\t\t\tsummaryModel,\n\t\t);\n\t\tconst runConfig = {\n\t\t\tsystemPrompt,\n\t\t\ttools: [],\n\t\t\tmodel: summaryModel,\n\t\t\treasoning: undefined,\n\t\t\t// Keep summary generation fast by not requesting reasoning summaries.\n\t\t\treasoningSummary: undefined,\n\t\t\tpreprocessMessages: this.preprocessMessages,\n\t\t};\n\n\t\tconst controller = new AbortController();\n\t\tif (signal) {\n\t\t\tif (signal.aborted) {\n\t\t\t\tcontroller.abort(signal.reason);\n\t\t\t} else {\n\t\t\t\tsignal.addEventListener(\n\t\t\t\t\t\"abort\",\n\t\t\t\t\t() => {\n\t\t\t\t\t\tcontroller.abort(signal.reason);\n\t\t\t\t\t},\n\t\t\t\t\t{ once: true },\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tlet finalMessage: AssistantMessage | null = null;\n\n\t\ttry {\n\t\t\tfor await (const event of this.transport.run(\n\t\t\t\tproviderMessages,\n\t\t\t\tuserMessage,\n\t\t\t\trunConfig,\n\t\t\t\tcontroller.signal,\n\t\t\t)) {\n\t\t\t\tif (\n\t\t\t\t\tevent.type === \"message_end\" &&\n\t\t\t\t\tevent.message.role === \"assistant\"\n\t\t\t\t) {\n\t\t\t\t\tfinalMessage = event.message as AssistantMessage;\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tcontroller.abort();\n\t\t}\n\n\t\tif (!finalMessage) {\n\t\t\tthrow new Error(\"Summary generation did not return a response\");\n\t\t}\n\n\t\treturn finalMessage;\n\t}\n}\n"]}
|