@evalops/maestro 0.10.22 → 0.10.24
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 +4 -4
- package/dist/agent/agent.d.ts +2 -2
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +1 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/keys.d.ts +2 -5
- package/dist/agent/keys.d.ts.map +1 -1
- package/dist/agent/keys.js +4 -5
- package/dist/agent/keys.js.map +1 -1
- package/dist/agent/modes.d.ts +2 -2
- package/dist/agent/modes.d.ts.map +1 -1
- package/dist/agent/modes.js +6 -7
- package/dist/agent/modes.js.map +1 -1
- package/dist/agent/providers/anthropic.d.ts.map +1 -1
- package/dist/agent/providers/anthropic.js +4 -4
- package/dist/agent/providers/anthropic.js.map +1 -1
- package/dist/agent/providers/google.js +1 -1
- package/dist/agent/swarm/executor.d.ts +2 -0
- package/dist/agent/swarm/executor.d.ts.map +1 -1
- package/dist/agent/swarm/executor.js +208 -35
- package/dist/agent/swarm/executor.js.map +1 -1
- package/dist/agent/swarm/types.d.ts +2 -0
- package/dist/agent/swarm/types.d.ts.map +1 -1
- package/dist/agent/swarm/types.js.map +1 -1
- package/dist/agent/tool-capability-types.d.ts +36 -0
- package/dist/agent/tool-capability-types.d.ts.map +1 -0
- package/dist/agent/tool-capability-types.js +2 -0
- package/dist/agent/tool-capability-types.js.map +1 -0
- package/dist/agent/transport/tool-execution-bridge.d.ts +13 -0
- package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.js +28 -15
- package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
- package/dist/agent/transport/transport-utils.d.ts.map +1 -1
- package/dist/agent/transport/transport-utils.js +2 -3
- package/dist/agent/transport/transport-utils.js.map +1 -1
- package/dist/agent/transport.js +1 -1
- package/dist/agent/transport.js.map +1 -1
- package/dist/agent/type-guards.d.ts +1 -1
- package/dist/agent/type-guards.js +1 -1
- package/dist/agent/type-guards.js.map +1 -1
- package/dist/agent/types.d.ts +5 -3
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js +2 -2
- package/dist/agent/types.js.map +1 -1
- package/dist/app-server/daemon-lifecycle-api.d.ts +31 -0
- package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -0
- package/dist/app-server/daemon-lifecycle-api.js +259 -0
- package/dist/app-server/daemon-lifecycle-api.js.map +1 -0
- package/dist/app-server/external-agent-import-api.d.ts +30 -0
- package/dist/app-server/external-agent-import-api.d.ts.map +1 -0
- package/dist/app-server/external-agent-import-api.js +553 -0
- package/dist/app-server/external-agent-import-api.js.map +1 -0
- package/dist/app-server/host-control-api.d.ts +30 -0
- package/dist/app-server/host-control-api.d.ts.map +1 -0
- package/dist/app-server/host-control-api.js +343 -0
- package/dist/app-server/host-control-api.js.map +1 -0
- package/dist/app-server/in-process-client.d.ts +2 -2
- package/dist/app-server/in-process-client.d.ts.map +1 -1
- package/dist/app-server/in-process-client.js.map +1 -1
- package/dist/app-server/network-governance-api.d.ts +26 -0
- package/dist/app-server/network-governance-api.d.ts.map +1 -0
- package/dist/app-server/network-governance-api.js +476 -0
- package/dist/app-server/network-governance-api.js.map +1 -0
- package/dist/app-server/plugin-bundle-api.d.ts +17 -0
- package/dist/app-server/plugin-bundle-api.d.ts.map +1 -0
- package/dist/app-server/plugin-bundle-api.js +219 -0
- package/dist/app-server/plugin-bundle-api.js.map +1 -0
- package/dist/app-server/policy-control-api.d.ts +14 -0
- package/dist/app-server/policy-control-api.d.ts.map +1 -0
- package/dist/app-server/policy-control-api.js +200 -0
- package/dist/app-server/policy-control-api.js.map +1 -0
- package/dist/app-server/protocol-modes-api.d.ts +22 -0
- package/dist/app-server/protocol-modes-api.d.ts.map +1 -0
- package/dist/app-server/protocol-modes-api.js +124 -0
- package/dist/app-server/protocol-modes-api.js.map +1 -0
- package/dist/app-server/sandbox-proof-api.d.ts +21 -0
- package/dist/app-server/sandbox-proof-api.d.ts.map +1 -0
- package/dist/app-server/sandbox-proof-api.js +127 -0
- package/dist/app-server/sandbox-proof-api.js.map +1 -0
- package/dist/app-server/session-api.d.ts +93 -3
- package/dist/app-server/session-api.d.ts.map +1 -1
- package/dist/app-server/session-api.js +706 -18
- package/dist/app-server/session-api.js.map +1 -1
- package/dist/audit/logger.d.ts +1 -1
- package/dist/bootstrap/auth-setup.d.ts.map +1 -1
- package/dist/bootstrap/auth-setup.js +17 -2
- package/dist/bootstrap/auth-setup.js.map +1 -1
- package/dist/bootstrap/model-resolution-setup.d.ts.map +1 -1
- package/dist/bootstrap/model-resolution-setup.js +19 -4
- package/dist/bootstrap/model-resolution-setup.js.map +1 -1
- package/dist/cli/args.d.ts +2 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +2 -2
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/a2a.d.ts.map +1 -1
- package/dist/cli/commands/a2a.js +226 -14
- package/dist/cli/commands/a2a.js.map +1 -1
- package/dist/cli/commands/anthropic.d.ts +1 -1
- package/dist/cli/commands/anthropic.d.ts.map +1 -1
- package/dist/cli/commands/anthropic.js +3 -68
- package/dist/cli/commands/anthropic.js.map +1 -1
- package/dist/cli/commands/modes.js +1 -1
- package/dist/cli/commands/modes.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +5 -7
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/rpc-mode.d.ts +1 -1
- package/dist/cli/rpc-mode.js +1 -1
- package/dist/cli/rpc-mode.js.map +1 -1
- package/dist/cli/session.js +1 -1
- package/dist/cli/session.js.map +1 -1
- package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -1
- package/dist/cli-tui/commands/command-catalog.js +7 -12
- package/dist/cli-tui/commands/command-catalog.js.map +1 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts +1 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +1 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.js +4 -12
- package/dist/cli-tui/commands/subcommands/auth-commands.js.map +1 -1
- package/dist/cli-tui/custom-editor.d.ts +1 -1
- package/dist/cli-tui/custom-editor.js +2 -2
- package/dist/cli-tui/custom-editor.js.map +1 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +1 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.js +19 -23
- package/dist/cli-tui/oauth/oauth-flow-controller.js.map +1 -1
- package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
- package/dist/cli-tui/selectors/model-selector.js +0 -1
- package/dist/cli-tui/selectors/model-selector.js.map +1 -1
- package/dist/cli-tui/selectors/oauth-selector-view.d.ts +2 -2
- package/dist/cli-tui/selectors/oauth-selector-view.d.ts.map +1 -1
- package/dist/cli-tui/selectors/oauth-selector-view.js.map +1 -1
- package/dist/cli-tui/selectors/oauth-selector.d.ts +2 -2
- package/dist/cli-tui/selectors/oauth-selector.d.ts.map +1 -1
- package/dist/cli-tui/selectors/oauth-selector.js +3 -4
- package/dist/cli-tui/selectors/oauth-selector.js.map +1 -1
- package/dist/cli-tui/tui-renderer/mcp-events-setup.js +1 -1
- package/dist/cli-tui/tui-renderer/mcp-events-setup.js.map +1 -1
- package/dist/cli-tui/tui-renderer.js +2 -2
- package/dist/cli-tui/tui-renderer.js.map +1 -1
- package/dist/cli-tui/utils/footer-utils.d.ts +1 -1
- package/dist/cli-tui/utils/footer-utils.js +1 -1
- package/dist/cli-tui/utils/footer-utils.js.map +1 -1
- package/dist/cli.js +15171 -14298
- package/dist/commands/prompts.d.ts +1 -1
- package/dist/commands/prompts.js +1 -1
- package/dist/commands/prompts.js.map +1 -1
- package/dist/config/constants.d.ts +2 -2
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +2 -2
- package/dist/config/constants.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/toml-config.js +3 -3
- package/dist/config/toml-config.js.map +1 -1
- package/dist/db/client.d.ts +2 -2
- package/dist/db/client.js +2 -2
- package/dist/db/client.js.map +1 -1
- package/dist/db/migrate.d.ts +1 -1
- package/dist/db/migrate.js +1 -1
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/schema.d.ts +2 -2
- package/dist/db/schema.js +1 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/errors/index.d.ts +2 -2
- package/dist/errors/index.js +2 -2
- package/dist/errors/index.js.map +1 -1
- package/dist/main.d.ts +4 -5
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +17 -14
- package/dist/main.js.map +1 -1
- package/dist/mcp/config.d.ts +15 -2
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +50 -26
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/fathom-cua.d.ts.map +1 -1
- package/dist/mcp/fathom-cua.js +10 -0
- package/dist/mcp/fathom-cua.js.map +1 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +32 -1
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/tool-bridge.d.ts.map +1 -1
- package/dist/mcp/tool-bridge.js +12 -3
- package/dist/mcp/tool-bridge.js.map +1 -1
- package/dist/mcp/tool-capabilities.d.ts +5 -0
- package/dist/mcp/tool-capabilities.d.ts.map +1 -0
- package/dist/mcp/tool-capabilities.js +271 -0
- package/dist/mcp/tool-capabilities.js.map +1 -0
- package/dist/mcp/types.d.ts +6 -1
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/mcp/types.js.map +1 -1
- package/dist/models/config-loader.d.ts +1 -1
- package/dist/models/factory-integration.d.ts +1 -1
- package/dist/models/factory-integration.js +1 -1
- package/dist/models/factory-integration.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/artifacts.d.ts +58 -0
- package/dist/node_modules/@evalops/contracts/dist/artifacts.d.ts.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/artifacts.js +191 -0
- package/dist/node_modules/@evalops/contracts/dist/artifacts.js.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +10 -10
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts +4 -3
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.js +3 -2
- package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +1182 -14
- 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 +450 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +1 -1
- package/dist/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +3 -3
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/node_modules/@evalops/tui/package.json +1 -1
- package/dist/oauth/connectors.d.ts +2 -2
- package/dist/oauth/connectors.d.ts.map +1 -1
- package/dist/oauth/connectors.js +3 -5
- package/dist/oauth/connectors.js.map +1 -1
- package/dist/oauth/github-copilot.d.ts +1 -1
- package/dist/oauth/github-copilot.js +1 -1
- package/dist/oauth/github-copilot.js.map +1 -1
- package/dist/oauth/index.d.ts +10 -8
- package/dist/oauth/index.d.ts.map +1 -1
- package/dist/oauth/index.js +54 -31
- package/dist/oauth/index.js.map +1 -1
- package/dist/oauth/openai.d.ts +1 -1
- package/dist/oauth/openai.js +2 -2
- package/dist/oauth/openai.js.map +1 -1
- package/dist/platform/a2a-completion-audit.d.ts +41 -0
- package/dist/platform/a2a-completion-audit.d.ts.map +1 -0
- package/dist/platform/a2a-completion-audit.js +177 -0
- package/dist/platform/a2a-completion-audit.js.map +1 -0
- package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
- package/dist/platform/a2a-task-ledger.js +17 -0
- package/dist/platform/a2a-task-ledger.js.map +1 -1
- package/dist/platform/a2a-telemetry-inspect.d.ts +58 -0
- package/dist/platform/a2a-telemetry-inspect.d.ts.map +1 -0
- package/dist/platform/a2a-telemetry-inspect.js +224 -0
- package/dist/platform/a2a-telemetry-inspect.js.map +1 -0
- package/dist/platform/agent-registry-client.d.ts +8 -0
- package/dist/platform/agent-registry-client.d.ts.map +1 -1
- package/dist/platform/agent-registry-client.js +9 -1
- package/dist/platform/agent-registry-client.js.map +1 -1
- package/dist/providers/api-keys.d.ts +2 -2
- package/dist/providers/api-keys.js +2 -2
- package/dist/providers/api-keys.js.map +1 -1
- package/dist/providers/auth.d.ts +3 -6
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +1 -40
- package/dist/providers/auth.js.map +1 -1
- package/dist/rpc/index.d.ts +2 -2
- package/dist/rpc/index.js +2 -2
- package/dist/rpc/index.js.map +1 -1
- package/dist/rpc/rpc-types.d.ts +1 -1
- package/dist/rpc/rpc-types.js +1 -1
- package/dist/rpc/rpc-types.js.map +1 -1
- package/dist/safety/nested-agent-guard.js +1 -1
- package/dist/safety/nested-agent-guard.js.map +1 -1
- package/dist/safety/policy.d.ts +2 -2
- package/dist/safety/policy.js +2 -2
- package/dist/safety/policy.js.map +1 -1
- package/dist/safety/validators/network-policy-validator.d.ts +8 -0
- package/dist/safety/validators/network-policy-validator.d.ts.map +1 -1
- package/dist/safety/validators/network-policy-validator.js +29 -4
- package/dist/safety/validators/network-policy-validator.js.map +1 -1
- package/dist/sandbox/local-sandbox.d.ts +1 -1
- package/dist/sandbox/local-sandbox.js +1 -1
- package/dist/sandbox/local-sandbox.js.map +1 -1
- package/dist/server/app-context.d.ts +2 -0
- package/dist/server/app-context.d.ts.map +1 -1
- package/dist/server/app-context.js.map +1 -1
- package/dist/server/handlers/attachments.d.ts.map +1 -1
- package/dist/server/handlers/attachments.js +1 -0
- package/dist/server/handlers/attachments.js.map +1 -1
- package/dist/server/handlers/models.d.ts.map +1 -1
- package/dist/server/handlers/models.js +3 -1
- package/dist/server/handlers/models.js.map +1 -1
- package/dist/server/handlers/session-artifacts.d.ts.map +1 -1
- package/dist/server/handlers/session-artifacts.js +13 -74
- package/dist/server/handlers/session-artifacts.js.map +1 -1
- package/dist/server/handlers/session-attachments.d.ts.map +1 -1
- package/dist/server/handlers/session-attachments.js +2 -0
- package/dist/server/handlers/session-attachments.js.map +1 -1
- package/dist/server/handlers/sessions.js +1 -1
- package/dist/server/handlers/sessions.js.map +1 -1
- package/dist/server/handlers/status.d.ts +2 -0
- package/dist/server/handlers/status.d.ts.map +1 -1
- package/dist/server/handlers/status.js +3 -2
- package/dist/server/handlers/status.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +32 -3
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-session-manager.d.ts +2 -0
- package/dist/server/hosted-session-manager.d.ts.map +1 -1
- package/dist/server/hosted-session-manager.js +9 -0
- package/dist/server/hosted-session-manager.js.map +1 -1
- package/dist/server/model-selection.d.ts.map +1 -1
- package/dist/server/model-selection.js +9 -1
- package/dist/server/model-selection.js.map +1 -1
- package/dist/server/rate-limiter.d.ts +1 -1
- package/dist/server/rate-limiter.js +1 -1
- package/dist/server/rate-limiter.js.map +1 -1
- package/dist/server/router.d.ts +2 -2
- package/dist/server/router.js.map +1 -1
- package/dist/server/session-serialization.d.ts +9 -9
- package/dist/server/session-serialization.js +15 -15
- package/dist/server/session-serialization.js.map +1 -1
- package/dist/session/manager.d.ts +5 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +56 -8
- package/dist/session/manager.js.map +1 -1
- package/dist/session/session-catalog.d.ts +2 -0
- package/dist/session/session-catalog.d.ts.map +1 -1
- package/dist/session/session-catalog.js +6 -0
- package/dist/session/session-catalog.js.map +1 -1
- package/dist/session/session-context.d.ts +2 -0
- package/dist/session/session-context.d.ts.map +1 -1
- package/dist/session/session-context.js +15 -0
- package/dist/session/session-context.js.map +1 -1
- package/dist/session/types.d.ts +7 -0
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js.map +1 -1
- package/dist/session/wire-format.generated.d.ts +1 -0
- package/dist/session/wire-format.generated.d.ts.map +1 -1
- package/dist/session/wire-format.generated.js +1 -0
- package/dist/session/wire-format.generated.js.map +1 -1
- package/dist/shared-memory/contract.d.ts +4 -4
- package/dist/shared-memory/contract.js +2 -2
- package/dist/shared-memory/contract.js.map +1 -1
- package/dist/telemetry/index.d.ts +2 -2
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +2 -2
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts +57 -0
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-bus.js +59 -1
- package/dist/telemetry/maestro-event-bus.js.map +1 -1
- package/dist/telemetry/maestro-event-catalog.d.ts +17 -1
- package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-catalog.js +24 -0
- package/dist/telemetry/maestro-event-catalog.js.map +1 -1
- package/dist/telemetry/mcp-beacon.d.ts +2 -0
- package/dist/telemetry/mcp-beacon.d.ts.map +1 -1
- package/dist/telemetry/mcp-beacon.js +15 -0
- package/dist/telemetry/mcp-beacon.js.map +1 -1
- package/dist/telemetry/metrics.d.ts +62 -0
- package/dist/telemetry/metrics.d.ts.map +1 -1
- package/dist/telemetry/metrics.js +84 -0
- package/dist/telemetry/metrics.js.map +1 -1
- package/dist/telemetry.d.ts +44 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +84 -2
- package/dist/telemetry.js.map +1 -1
- package/dist/theme/theme-loader.js +2 -2
- package/dist/theme/theme-loader.js.map +1 -1
- package/dist/theme/theme-schema.json +2 -2
- package/dist/theme/theme.d.ts +1 -1
- package/dist/theme/theme.js.map +1 -1
- package/dist/tools/background/task-types.d.ts +1 -1
- package/dist/tools/extract-document.d.ts +1 -0
- package/dist/tools/extract-document.d.ts.map +1 -1
- package/dist/tools/extract-document.js +2 -1
- package/dist/tools/extract-document.js.map +1 -1
- package/dist/tools/index.d.ts +55 -55
- package/dist/tools/index.js +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/tool-dsl.d.ts +1 -1
- package/dist/tools/tool-dsl.js +1 -1
- package/dist/tools/tool-dsl.js.map +1 -1
- package/dist/utils/document-extractor.d.ts +1 -0
- package/dist/utils/document-extractor.d.ts.map +1 -1
- package/dist/utils/document-extractor.js +320 -40
- package/dist/utils/document-extractor.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/version.json +2 -2
- package/dist/web-server.d.ts +1 -1
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +12 -8
- package/dist/web-server.js.map +1 -1
- package/package.json +4 -2
- package/dist/oauth/anthropic.d.ts +0 -17
- package/dist/oauth/anthropic.d.ts.map +0 -1
- package/dist/oauth/anthropic.js +0 -81
- package/dist/oauth/anthropic.js.map +0 -1
- package/dist/providers/anthropic-auth.d.ts +0 -75
- package/dist/providers/anthropic-auth.d.ts.map +0 -1
- package/dist/providers/anthropic-auth.js +0 -221
- package/dist/providers/anthropic-auth.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-document.d.ts","sourceRoot":"","sources":["../../src/tools/extract-document.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,sBAAsB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACnB;AAsBD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"extract-document.d.ts","sourceRoot":"","sources":["../../src/tools/extract-document.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,sBAAsB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACnB;AAsBD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;EA8E9B,CAAC"}
|
|
@@ -36,7 +36,7 @@ function parseContentDispositionFileName(header) {
|
|
|
36
36
|
export const extractDocumentTool = createTool({
|
|
37
37
|
name: "extract_document",
|
|
38
38
|
label: "extract_document",
|
|
39
|
-
description: "Download a document from a URL and extract its text. Supports PDF, DOCX, XLSX, PPTX,
|
|
39
|
+
description: "Download a document from a URL and extract its text. Supports PDF, DOCX, XLSX, PPTX, common text formats, and optional MarkItDown-backed Markdown conversion when available. Use this when you need text from a linked document.",
|
|
40
40
|
schema: extractDocumentSchema,
|
|
41
41
|
async run(params, { signal, respond }) {
|
|
42
42
|
const rawUrl = params.url.trim();
|
|
@@ -87,6 +87,7 @@ export const extractDocumentTool = createTool({
|
|
|
87
87
|
fileName,
|
|
88
88
|
mimeType,
|
|
89
89
|
format: extracted.format,
|
|
90
|
+
extractor: extracted.extractor,
|
|
90
91
|
sizeBytes: extracted.sizeBytes,
|
|
91
92
|
truncated: extracted.truncated,
|
|
92
93
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-document.js","sourceRoot":"","sources":["../../src/tools/extract-document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;QAChB,WAAW,EACV,iEAAiE;QAClE,SAAS,EAAE,CAAC;KACZ,CAAC;IACF,QAAQ,EAAE,IAAI,CAAC,QAAQ,CACtB,IAAI,CAAC,MAAM,CAAC;QACX,WAAW,EAAE,gDAAgD;QAC7D,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,SAAS;KAClB,CAAC,CACF;CACD,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"extract-document.js","sourceRoot":"","sources":["../../src/tools/extract-document.ts"],"names":[],"mappings":"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","sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { extractDocumentText } from \"../utils/document-extractor.js\";\nimport { createTool } from \"./tool-dsl.js\";\n\nconst MAX_DOWNLOAD_BYTES = 50 * 1024 * 1024;\n\nconst extractDocumentSchema = Type.Object({\n\turl: Type.String({\n\t\tdescription:\n\t\t\t\"HTTP(S) URL of a document (PDF, DOCX, XLSX, PPTX, or text file)\",\n\t\tminLength: 1,\n\t}),\n\tmaxChars: Type.Optional(\n\t\tType.Number({\n\t\t\tdescription: \"Maximum characters of extracted text to return\",\n\t\t\tminimum: 1,\n\t\t\tmaximum: 1_000_000,\n\t\t}),\n\t),\n});\n\nexport interface ExtractDocumentDetails {\n\turl: string;\n\tfileName: string;\n\tmimeType?: string;\n\tformat: string;\n\textractor: string;\n\tsizeBytes: number;\n\ttruncated: boolean;\n}\n\nfunction guessFileNameFromUrl(url: URL): string {\n\tconst last = url.pathname.split(\"/\").filter(Boolean).pop();\n\treturn (last && decodeURIComponent(last)) || \"document\";\n}\n\nfunction parseContentDispositionFileName(header: string | null): string | null {\n\tif (!header) return null;\n\tconst m =\n\t\theader.match(/filename\\\\*=UTF-8''([^;]+)/i) ??\n\t\theader.match(/filename=\\\"([^\\\"]+)\\\"/i) ??\n\t\theader.match(/filename=([^;]+)/i);\n\tif (!m) return null;\n\tconst raw = m[1] || m[0];\n\ttry {\n\t\treturn decodeURIComponent(raw.trim());\n\t} catch {\n\t\treturn raw.trim();\n\t}\n}\n\nexport const extractDocumentTool = createTool<\n\ttypeof extractDocumentSchema,\n\tExtractDocumentDetails\n>({\n\tname: \"extract_document\",\n\tlabel: \"extract_document\",\n\tdescription:\n\t\t\"Download a document from a URL and extract its text. Supports PDF, DOCX, XLSX, PPTX, common text formats, and optional MarkItDown-backed Markdown conversion when available. Use this when you need text from a linked document.\",\n\tschema: extractDocumentSchema,\n\tasync run(params, { signal, respond }) {\n\t\tconst rawUrl = params.url.trim();\n\t\tlet url: URL;\n\t\ttry {\n\t\t\turl = new URL(rawUrl);\n\t\t} catch {\n\t\t\tthrow new Error(`Invalid URL: ${rawUrl}`);\n\t\t}\n\t\tif (url.protocol !== \"http:\" && url.protocol !== \"https:\") {\n\t\t\tthrow new Error(\"Only http(s) URLs are supported\");\n\t\t}\n\n\t\tconst response = await fetch(url, { signal });\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(\n\t\t\t\t`Unable to download document (${response.status} ${response.statusText})`,\n\t\t\t);\n\t\t}\n\n\t\tconst contentLength = response.headers.get(\"content-length\");\n\t\tif (contentLength) {\n\t\t\tconst size = Number.parseInt(contentLength, 10);\n\t\t\tif (Number.isFinite(size) && size > MAX_DOWNLOAD_BYTES) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Document is too large (${(size / 1024 / 1024).toFixed(1)}MB). Maximum supported size is 50MB.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst arrayBuffer = await response.arrayBuffer();\n\t\tif (arrayBuffer.byteLength > MAX_DOWNLOAD_BYTES) {\n\t\t\tthrow new Error(\n\t\t\t\t`Document is too large (${(arrayBuffer.byteLength / 1024 / 1024).toFixed(1)}MB). Maximum supported size is 50MB.`,\n\t\t\t);\n\t\t}\n\n\t\tconst mimeType = response.headers\n\t\t\t.get(\"content-type\")\n\t\t\t?.split(\";\")[0]\n\t\t\t?.trim();\n\t\tconst contentDisposition = response.headers.get(\"content-disposition\");\n\t\tconst fileName =\n\t\t\tparseContentDispositionFileName(contentDisposition) ??\n\t\t\tguessFileNameFromUrl(url);\n\n\t\tconst extracted = await extractDocumentText({\n\t\t\tbuffer: Buffer.from(arrayBuffer),\n\t\t\tfileName,\n\t\t\tmimeType,\n\t\t\tmaxChars: params.maxChars,\n\t\t});\n\n\t\tif (!extracted.extractedText && extracted.format === \"unknown\") {\n\t\t\tthrow new Error(\n\t\t\t\t\"Unsupported document format. Supported: PDF (.pdf), Word (.docx), Excel (.xlsx), PowerPoint (.pptx), and common text files.\",\n\t\t\t);\n\t\t}\n\n\t\trespond.text(extracted.extractedText || \"\");\n\t\treturn respond.detail({\n\t\t\turl: url.toString(),\n\t\t\tfileName,\n\t\t\tmimeType,\n\t\t\tformat: extracted.format,\n\t\t\textractor: extracted.extractor,\n\t\t\tsizeBytes: extracted.sizeBytes,\n\t\t\ttruncated: extracted.truncated,\n\t\t});\n\t},\n});\n"]}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tool Registry - Central index of all available tools.
|
|
3
3
|
*
|
|
4
|
-
* This module serves as the main entry point for all tool definitions in
|
|
4
|
+
* This module serves as the main entry point for all tool definitions in Maestro.
|
|
5
5
|
* It organizes tools into logical groups and provides utilities for filtering and
|
|
6
6
|
* accessing tools by name.
|
|
7
7
|
*
|
|
@@ -249,60 +249,6 @@ export declare const codingTools: (Readonly<{
|
|
|
249
249
|
questions: import("./ask-user.js").Question[];
|
|
250
250
|
status: "pending" | "answered" | "cancelled";
|
|
251
251
|
}>>;
|
|
252
|
-
}> | Readonly<{
|
|
253
|
-
name: string;
|
|
254
|
-
label: string;
|
|
255
|
-
description: string;
|
|
256
|
-
parameters: import("@sinclair/typebox").TObject<{
|
|
257
|
-
goal: import("@sinclair/typebox").TString;
|
|
258
|
-
items: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
259
|
-
id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
260
|
-
content: import("@sinclair/typebox").TString;
|
|
261
|
-
status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"in_progress">, import("@sinclair/typebox").TLiteral<"completed">]>>;
|
|
262
|
-
priority: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"high">, import("@sinclair/typebox").TLiteral<"medium">, import("@sinclair/typebox").TLiteral<"low">]>>;
|
|
263
|
-
notes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
264
|
-
due: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
265
|
-
blockedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
266
|
-
}>>, import("@sinclair/typebox").TString]>>;
|
|
267
|
-
updates: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
268
|
-
id: import("@sinclair/typebox").TString;
|
|
269
|
-
status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"in_progress">, import("@sinclair/typebox").TLiteral<"completed">]>>;
|
|
270
|
-
priority: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"high">, import("@sinclair/typebox").TLiteral<"medium">, import("@sinclair/typebox").TLiteral<"low">]>>;
|
|
271
|
-
notes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
272
|
-
due: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
273
|
-
blockedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
274
|
-
content: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
275
|
-
remove: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
276
|
-
}>>>;
|
|
277
|
-
includeSummary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
278
|
-
}>;
|
|
279
|
-
annotations: import("../agent/types.js").ToolAnnotations | undefined;
|
|
280
|
-
source: import("../agent/types.js").McpToolSourceMetadata | undefined;
|
|
281
|
-
toolType: string | undefined;
|
|
282
|
-
inputExamples: unknown[] | undefined;
|
|
283
|
-
allowedCallers: string[] | undefined;
|
|
284
|
-
deferApiDefinition: boolean | undefined;
|
|
285
|
-
maxRetries: number | undefined;
|
|
286
|
-
retryDelayMs: number | undefined;
|
|
287
|
-
shouldRetry: ((error: unknown) => boolean) | undefined;
|
|
288
|
-
getToolUseSummary: ((params: Record<string, unknown>) => string | null) | undefined;
|
|
289
|
-
getDisplayName: ((params: Record<string, unknown>) => string | null) | undefined;
|
|
290
|
-
getActivityDescription: ((params: Record<string, unknown>) => string | null) | undefined;
|
|
291
|
-
execute: (toolCallId: string, params: Record<string, unknown>, signal?: AbortSignal, context?: {
|
|
292
|
-
sandbox?: import("../sandbox/types.js").Sandbox;
|
|
293
|
-
} | undefined, onUpdate?: import("../agent/types.js").AgentToolUpdateCallback<{
|
|
294
|
-
items: import("./todo.js").NormalizedTodo[];
|
|
295
|
-
pending: number;
|
|
296
|
-
in_progress: number;
|
|
297
|
-
completed: number;
|
|
298
|
-
total: number;
|
|
299
|
-
}> | undefined) => Promise<import("../agent/types.js").AgentToolResult<{
|
|
300
|
-
items: import("./todo.js").NormalizedTodo[];
|
|
301
|
-
pending: number;
|
|
302
|
-
in_progress: number;
|
|
303
|
-
completed: number;
|
|
304
|
-
total: number;
|
|
305
|
-
}>>;
|
|
306
252
|
}> | Readonly<{
|
|
307
253
|
name: string;
|
|
308
254
|
label: string;
|
|
@@ -979,6 +925,60 @@ export declare const codingTools: (Readonly<{
|
|
|
979
925
|
command: string;
|
|
980
926
|
status?: import("./diff.js").ParsedStatus;
|
|
981
927
|
}>>;
|
|
928
|
+
}> | Readonly<{
|
|
929
|
+
name: string;
|
|
930
|
+
label: string;
|
|
931
|
+
description: string;
|
|
932
|
+
parameters: import("@sinclair/typebox").TObject<{
|
|
933
|
+
goal: import("@sinclair/typebox").TString;
|
|
934
|
+
items: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
935
|
+
id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
936
|
+
content: import("@sinclair/typebox").TString;
|
|
937
|
+
status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"in_progress">, import("@sinclair/typebox").TLiteral<"completed">]>>;
|
|
938
|
+
priority: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"high">, import("@sinclair/typebox").TLiteral<"medium">, import("@sinclair/typebox").TLiteral<"low">]>>;
|
|
939
|
+
notes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
940
|
+
due: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
941
|
+
blockedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
942
|
+
}>>, import("@sinclair/typebox").TString]>>;
|
|
943
|
+
updates: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
944
|
+
id: import("@sinclair/typebox").TString;
|
|
945
|
+
status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"in_progress">, import("@sinclair/typebox").TLiteral<"completed">]>>;
|
|
946
|
+
priority: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"high">, import("@sinclair/typebox").TLiteral<"medium">, import("@sinclair/typebox").TLiteral<"low">]>>;
|
|
947
|
+
notes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
948
|
+
due: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
949
|
+
blockedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
950
|
+
content: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
951
|
+
remove: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
952
|
+
}>>>;
|
|
953
|
+
includeSummary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
954
|
+
}>;
|
|
955
|
+
annotations: import("../agent/types.js").ToolAnnotations | undefined;
|
|
956
|
+
source: import("../agent/types.js").McpToolSourceMetadata | undefined;
|
|
957
|
+
toolType: string | undefined;
|
|
958
|
+
inputExamples: unknown[] | undefined;
|
|
959
|
+
allowedCallers: string[] | undefined;
|
|
960
|
+
deferApiDefinition: boolean | undefined;
|
|
961
|
+
maxRetries: number | undefined;
|
|
962
|
+
retryDelayMs: number | undefined;
|
|
963
|
+
shouldRetry: ((error: unknown) => boolean) | undefined;
|
|
964
|
+
getToolUseSummary: ((params: Record<string, unknown>) => string | null) | undefined;
|
|
965
|
+
getDisplayName: ((params: Record<string, unknown>) => string | null) | undefined;
|
|
966
|
+
getActivityDescription: ((params: Record<string, unknown>) => string | null) | undefined;
|
|
967
|
+
execute: (toolCallId: string, params: Record<string, unknown>, signal?: AbortSignal, context?: {
|
|
968
|
+
sandbox?: import("../sandbox/types.js").Sandbox;
|
|
969
|
+
} | undefined, onUpdate?: import("../agent/types.js").AgentToolUpdateCallback<{
|
|
970
|
+
items: import("./todo.js").NormalizedTodo[];
|
|
971
|
+
pending: number;
|
|
972
|
+
in_progress: number;
|
|
973
|
+
completed: number;
|
|
974
|
+
total: number;
|
|
975
|
+
}> | undefined) => Promise<import("../agent/types.js").AgentToolResult<{
|
|
976
|
+
items: import("./todo.js").NormalizedTodo[];
|
|
977
|
+
pending: number;
|
|
978
|
+
in_progress: number;
|
|
979
|
+
completed: number;
|
|
980
|
+
total: number;
|
|
981
|
+
}>>;
|
|
982
982
|
}> | Readonly<{
|
|
983
983
|
name: string;
|
|
984
984
|
label: string;
|
package/dist/tools/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tool Registry - Central index of all available tools.
|
|
3
3
|
*
|
|
4
|
-
* This module serves as the main entry point for all tool definitions in
|
|
4
|
+
* This module serves as the main entry point for all tool definitions in Maestro.
|
|
5
5
|
* It organizes tools into logical groups and provides utilities for filtering and
|
|
6
6
|
* accessing tools by name.
|
|
7
7
|
*
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,gFAAgF;AAChF,uCAAuC;AACvC,gFAAgF;AAEhF,yBAAyB;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,sDAAsD;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,iBAAiB;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,qDAAqD;AACrD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EACN,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,GACvB,MAAM,eAAe,CAAC;AAEvB,eAAe;AACf,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,oBAAoB;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,0BAA0B;AAC1B,OAAO,EACN,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,GACvB,MAAM,aAAa,CAAC;AAErB,4BAA4B;AAC5B,OAAO,EAKN,cAAc,IAAI,wBAAwB,GAC1C,MAAM,gBAAgB,CAAC;AAKxB,8CAA8C;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EACN,WAAW,GAKX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EACN,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,4CAA4C;IAC5C,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,mBAAmB;IACnB,sBAAsB;IACtB,UAAU;IACV,mBAAmB;IACnB,iBAAiB;IACjB,QAAQ;IACR,eAAe;IACf,QAAQ;IACR,mBAAmB;IACnB,oBAAoB;IACpB,cAAc;IACd,QAAQ;IACR,SAAS;IACT,gBAAgB;IAChB,iBAAiB;IACjB,QAAQ;IACR,WAAW;IACX,4BAA4B;IAC5B,aAAa;IACb,cAAc;IACd,YAAY;IACZ,cAAc;IACd,UAAU;IACV,mBAAmB;IACnB,QAAQ;IACR,WAAW;IACX,UAAU;IACV,YAAY;IACZ,0BAA0B;IAC1B,uBAAuB;IACvB,wBAAwB;IACxB,uBAAuB;CACvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAiD;IACzE,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,QAAQ;IACd,gBAAgB,EAAE,mBAAmB;IACrC,MAAM,EAAE,UAAU;IAClB,gBAAgB,EAAE,mBAAmB;IACrC,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,gBAAgB,EAAE,mBAAmB;IACrC,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAS;IAChB,aAAa,EAAE,gBAAgB;IAC/B,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,aAAa;IACxB,UAAU,EAAE,cAAc;IAC1B,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE,UAAU;IACnB,wBAAwB,EAAE,0BAA0B;IACpD,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,qBAAqB,EAAE,uBAAuB;CAC9C,CAAC;AAEF,gCAAgC;AAChC,OAAO,EAAE,iBAAiB,EAAyB,MAAM,iBAAiB,CAAC;AAE3E;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAC1B,SAAmB;IAEnB,MAAM,QAAQ,GAAmC,EAAE,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI,EAAE,CAAC;YACV,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACF,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,uBAAuB;CACvB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEvD,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF;;;GAGG;AACH,OAAO,EACN,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,GAGxB,MAAM,wBAAwB,CAAC;AAEhC;;;GAGG;AACH,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GAKtB,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,OAAO,EACN,wBAAwB,EACxB,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,GAG5B,MAAM,yBAAyB,CAAC","sourcesContent":["/**\n * Tool Registry - Central index of all available tools.\n *\n * This module serves as the main entry point for all tool definitions in Composer.\n * It organizes tools into logical groups and provides utilities for filtering and\n * accessing tools by name.\n *\n * ## Tool Categories\n *\n * **Core File Operations:**\n * - read: Read file contents (text, images, PDFs, notebooks)\n * - write: Create or overwrite files\n * - edit: Structured find/replace editing\n * - list: Directory listing and globbing\n * - find: Fast file finder using fd\n *\n * **Search & Navigation:**\n * - search: Ripgrep-style content search\n * - parallel_ripgrep: Parallelized search for large codebases\n * - codesearch: Exa Code API integration (optional)\n *\n * **Shell & System:**\n * - bash: Shell command execution\n * - background_tasks: Long-running process management\n * - status: System and session status\n *\n * **Git & GitHub:**\n * - diff: Git diff inspection\n * - gh_pr/gh_issue/gh_repo: GitHub CLI integration\n * - pipeline_*: Pipeline CRM integration\n *\n * **AI & Automation:**\n * - oracle: Sub-agent for complex reasoning\n * - todo: Task list management\n * - ask_user: Structured user prompts\n *\n * **Web:**\n * - websearch: Web search (requires EXA_API_KEY)\n * - webfetch: Fetch and parse web content\n *\n * **VS Code Integration:**\n * - vscode tools: IDE features when running in VS Code context\n */\n\n// =============================================================================\n// Tool Imports - Organized by category\n// =============================================================================\n\n// User interaction tools\nimport { askUserTool } from \"./ask-user.js\";\nimport { backgroundTasksTool } from \"./background/tool-handler.js\";\n\n// Shell execution with cwd tracking and safety checks\nimport { bashTool } from \"./bash.js\";\n\n// External API integrations (optional - requires API keys)\nimport { codesearchTool } from \"./codesearch.js\";\n\n// Git operations\nimport { diffTool } from \"./diff.js\";\n\n// File manipulation\nimport { applyPatchTool } from \"./apply-patch.js\";\nimport { editTool } from \"./edit.js\";\nimport { extractDocumentTool } from \"./extract-document.js\";\nimport { findTool } from \"./find.js\";\nimport { listTool } from \"./list.js\";\nimport { notebookEditTool } from \"./notebook.js\";\nimport { readTool } from \"./read.js\";\nimport { writeTool } from \"./write.js\";\n\n// GitHub CLI integration (requires gh CLI installed)\nimport { ghIssueTool, ghPrTool, ghRepoTool } from \"./gh.js\";\nimport {\n\tpipelineCreateSignalTool,\n\tpipelineLogActivityTool,\n\tpipelineSearchContactsTool,\n\tpipelineSearchDealsTool,\n} from \"./pipeline.js\";\n\n// Search tools\nimport { parallelRipgrepTool } from \"./parallel-ripgrep.js\";\nimport { searchTool } from \"./search.js\";\n\n// AI and automation\nimport { oracleTool } from \"./oracle.js\";\nimport { statusTool } from \"./status.js\";\nimport { todoTool } from \"./todo.js\";\n\n// VS Code IDE integration\nimport {\n\tvscodeFindReferencesTool,\n\tvscodeGetDefinitionTool,\n\tvscodeGetDiagnosticsTool,\n\tvscodeReadFileRangeTool,\n} from \"./vscode.js\";\n\n// JetBrains IDE integration\nimport {\n\tjetbrainsFindReferencesTool,\n\tjetbrainsGetDefinitionTool,\n\tjetbrainsGetDiagnosticsTool,\n\tjetbrainsReadFileRangeTool,\n\tjetbrainsTools as jetbrainsToolDefinitions,\n} from \"./jetbrains.js\";\n\n// Conductor browser-client tools\nimport { conductorClientTools } from \"./conductor-client.js\";\n\n// Web tools (optional - requires EXA_API_KEY)\nimport { webfetchTool } from \"./webfetch.js\";\nimport { websearchTool } from \"./websearch.js\";\n\nexport {\n\taskUserTool,\n\ttype Question,\n\ttype QuestionOption,\n\ttype AskUserInput,\n\ttype AskUserResult,\n} from \"./ask-user.js\";\nexport { bashTool } from \"./bash.js\";\nexport { backgroundTasksTool } from \"./background/tool-handler.js\";\nexport { applyPatchTool } from \"./apply-patch.js\";\nexport { codesearchTool } from \"./codesearch.js\";\nexport { diffTool } from \"./diff.js\";\nexport { editTool } from \"./edit.js\";\nexport { extractDocumentTool } from \"./extract-document.js\";\nexport { findTool } from \"./find.js\";\nexport { listTool } from \"./list.js\";\nexport { notebookEditTool } from \"./notebook.js\";\nexport { parallelRipgrepTool } from \"./parallel-ripgrep.js\";\nexport { readTool } from \"./read.js\";\nexport { searchTool } from \"./search.js\";\nexport { todoTool } from \"./todo.js\";\nexport { webfetchTool } from \"./webfetch.js\";\nexport { websearchTool } from \"./websearch.js\";\nexport { writeTool } from \"./write.js\";\nexport { statusTool } from \"./status.js\";\nexport { ghIssueTool, ghPrTool, ghRepoTool } from \"./gh.js\";\nexport {\n\tpipelineCreateSignalTool,\n\tpipelineLogActivityTool,\n\tpipelineSearchContactsTool,\n\tpipelineSearchDealsTool,\n} from \"./pipeline.js\";\nexport { ensureTool, getToolPath } from \"./tools-manager.js\";\nexport { conductorClientTools } from \"./conductor-client.js\";\n\n// =============================================================================\n// Tool Collections\n// =============================================================================\n\n/**\n * Complete set of coding tools available to the agent.\n *\n * This array defines the default tool set used in interactive sessions.\n * Tools are ordered roughly by frequency of use, though order doesn't\n * affect functionality.\n */\nexport const codingTools = [\n\t// File reading and navigation (most common)\n\treadTool,\n\tlistTool,\n\toracleTool,\n\tfindTool,\n\textractDocumentTool,\n\t// Search capabilities\n\tsearchTool,\n\tparallelRipgrepTool,\n\t// Git operations\n\tdiffTool,\n\t// Shell access\n\tbashTool,\n\tbackgroundTasksTool,\n\t// File modification\n\tapplyPatchTool,\n\teditTool,\n\twriteTool,\n\tnotebookEditTool,\n\t// Workflow tools\n\ttodoTool,\n\taskUserTool,\n\t// Web and external services\n\twebsearchTool,\n\tcodesearchTool,\n\twebfetchTool,\n\t// System info\n\tstatusTool,\n\t// GitHub CLI tools\n\tghPrTool,\n\tghIssueTool,\n\tghRepoTool,\n\t// CRM tools\n\tpipelineSearchContactsTool,\n\tpipelineSearchDealsTool,\n\tpipelineCreateSignalTool,\n\tpipelineLogActivityTool,\n];\n\n/**\n * Tool registry mapping tool names to tool instances.\n *\n * Used by the --tools CLI flag to filter available tools.\n * Keys are the canonical tool names used in configuration.\n */\nexport const toolRegistry: Record<string, (typeof codingTools)[number]> = {\n\tread: readTool,\n\tlist: listTool,\n\toracle: oracleTool,\n\tfind: findTool,\n\textract_document: extractDocumentTool,\n\tsearch: searchTool,\n\tparallel_ripgrep: parallelRipgrepTool,\n\tdiff: diffTool,\n\tbash: bashTool,\n\tbackground_tasks: backgroundTasksTool,\n\tapply_patch: applyPatchTool,\n\tedit: editTool,\n\twrite: writeTool,\n\tnotebook_edit: notebookEditTool,\n\ttodo: todoTool,\n\task_user: askUserTool,\n\twebsearch: websearchTool,\n\tcodesearch: codesearchTool,\n\twebfetch: webfetchTool,\n\tstatus: statusTool,\n\tgh_pr: ghPrTool,\n\tgh_issue: ghIssueTool,\n\tgh_repo: ghRepoTool,\n\tpipeline_search_contacts: pipelineSearchContactsTool,\n\tpipeline_search_deals: pipelineSearchDealsTool,\n\tpipeline_create_signal: pipelineCreateSignalTool,\n\tpipeline_log_activity: pipelineLogActivityTool,\n};\n\n// Re-export tool name constants\nexport { readOnlyToolNames, type ReadOnlyToolName } from \"./tool-names.js\";\n\n/**\n * Filter tools by name from the registry.\n *\n * Used to create custom tool sets based on user configuration\n * or security requirements.\n *\n * @param toolNames - Array of tool names to include\n * @returns Array of matching tool instances\n */\nexport function filterTools(\n\ttoolNames: string[],\n): (typeof codingTools)[number][] {\n\tconst filtered: (typeof codingTools)[number][] = [];\n\tfor (const name of toolNames) {\n\t\tconst tool = toolRegistry[name];\n\t\tif (tool) {\n\t\t\tfiltered.push(tool);\n\t\t}\n\t}\n\treturn filtered;\n}\n\n/**\n * VS Code-specific tools for IDE integration.\n *\n * These tools provide IDE features when running in VS Code context:\n * - Language server diagnostics\n * - Go-to-definition\n * - Find references\n * - Smart file range reading\n *\n * Only included when a VS Code client is connected.\n */\nexport const vscodeTools = [\n\tvscodeGetDiagnosticsTool,\n\tvscodeGetDefinitionTool,\n\tvscodeFindReferencesTool,\n\tvscodeReadFileRangeTool,\n];\n\n/**\n * JetBrains-specific tools for IDE integration.\n *\n * These tools provide IDE features when running in JetBrains context:\n * - PSI-based diagnostics\n * - Go-to-definition via reference resolution\n * - Find references via ReferencesSearch\n * - Document-aware file range reading\n *\n * Only included when a JetBrains plugin client is connected.\n */\nexport const jetbrainsTools = jetbrainsToolDefinitions;\n\n// =============================================================================\n// Performance Infrastructure\n// =============================================================================\n\n/**\n * Tool result caching - Caches expensive tool results to avoid redundant work.\n * Particularly useful for read and search operations on unchanged files.\n */\nexport {\n\tToolResultCache,\n\tcreateToolResultCache,\n\tgetGlobalToolResultCache,\n\tresetGlobalToolResultCache,\n\tgetToolResultCacheConfig,\n\ttype ToolCacheConfig,\n\ttype ToolCacheStats,\n} from \"./tool-result-cache.js\";\n\n/**\n * File watching - Monitors filesystem changes to trigger cache invalidation.\n * Supports both file changes and git state changes (branch switches, etc.).\n */\nexport {\n\tFileWatcher,\n\tcreateFileWatcher,\n\tgetGlobalFileWatcher,\n\tinitGlobalFileWatcher,\n\tresetGlobalFileWatcher,\n\ttype FileChangeEvent,\n\ttype FileChangeType,\n\ttype FileWatcherConfig,\n\ttype GitStateChangeEvent,\n} from \"./file-watcher.js\";\n\n/**\n * Cache invalidation - Coordinates cache clearing when files change.\n * Links file watcher events to tool result cache invalidation.\n */\nexport {\n\tCacheInvalidationService,\n\tcreateCacheInvalidationService,\n\tgetGlobalCacheInvalidation,\n\tinitGlobalCacheInvalidation,\n\tresetGlobalCacheInvalidation,\n\ttype CacheInvalidationConfig,\n\ttype InvalidationStats,\n} from \"./cache-invalidation.js\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Tool Registry - Central index of all available tools.\n *\n * This module serves as the main entry point for all tool definitions in Maestro.\n * It organizes tools into logical groups and provides utilities for filtering and\n * accessing tools by name.\n *\n * ## Tool Categories\n *\n * **Core File Operations:**\n * - read: Read file contents (text, images, PDFs, notebooks)\n * - write: Create or overwrite files\n * - edit: Structured find/replace editing\n * - list: Directory listing and globbing\n * - find: Fast file finder using fd\n *\n * **Search & Navigation:**\n * - search: Ripgrep-style content search\n * - parallel_ripgrep: Parallelized search for large codebases\n * - codesearch: Exa Code API integration (optional)\n *\n * **Shell & System:**\n * - bash: Shell command execution\n * - background_tasks: Long-running process management\n * - status: System and session status\n *\n * **Git & GitHub:**\n * - diff: Git diff inspection\n * - gh_pr/gh_issue/gh_repo: GitHub CLI integration\n * - pipeline_*: Pipeline CRM integration\n *\n * **AI & Automation:**\n * - oracle: Sub-agent for complex reasoning\n * - todo: Task list management\n * - ask_user: Structured user prompts\n *\n * **Web:**\n * - websearch: Web search (requires EXA_API_KEY)\n * - webfetch: Fetch and parse web content\n *\n * **VS Code Integration:**\n * - vscode tools: IDE features when running in VS Code context\n */\n\n// =============================================================================\n// Tool Imports - Organized by category\n// =============================================================================\n\n// User interaction tools\nimport { askUserTool } from \"./ask-user.js\";\nimport { backgroundTasksTool } from \"./background/tool-handler.js\";\n\n// Shell execution with cwd tracking and safety checks\nimport { bashTool } from \"./bash.js\";\n\n// External API integrations (optional - requires API keys)\nimport { codesearchTool } from \"./codesearch.js\";\n\n// Git operations\nimport { diffTool } from \"./diff.js\";\n\n// File manipulation\nimport { applyPatchTool } from \"./apply-patch.js\";\nimport { editTool } from \"./edit.js\";\nimport { extractDocumentTool } from \"./extract-document.js\";\nimport { findTool } from \"./find.js\";\nimport { listTool } from \"./list.js\";\nimport { notebookEditTool } from \"./notebook.js\";\nimport { readTool } from \"./read.js\";\nimport { writeTool } from \"./write.js\";\n\n// GitHub CLI integration (requires gh CLI installed)\nimport { ghIssueTool, ghPrTool, ghRepoTool } from \"./gh.js\";\nimport {\n\tpipelineCreateSignalTool,\n\tpipelineLogActivityTool,\n\tpipelineSearchContactsTool,\n\tpipelineSearchDealsTool,\n} from \"./pipeline.js\";\n\n// Search tools\nimport { parallelRipgrepTool } from \"./parallel-ripgrep.js\";\nimport { searchTool } from \"./search.js\";\n\n// AI and automation\nimport { oracleTool } from \"./oracle.js\";\nimport { statusTool } from \"./status.js\";\nimport { todoTool } from \"./todo.js\";\n\n// VS Code IDE integration\nimport {\n\tvscodeFindReferencesTool,\n\tvscodeGetDefinitionTool,\n\tvscodeGetDiagnosticsTool,\n\tvscodeReadFileRangeTool,\n} from \"./vscode.js\";\n\n// JetBrains IDE integration\nimport {\n\tjetbrainsFindReferencesTool,\n\tjetbrainsGetDefinitionTool,\n\tjetbrainsGetDiagnosticsTool,\n\tjetbrainsReadFileRangeTool,\n\tjetbrainsTools as jetbrainsToolDefinitions,\n} from \"./jetbrains.js\";\n\n// Conductor browser-client tools\nimport { conductorClientTools } from \"./conductor-client.js\";\n\n// Web tools (optional - requires EXA_API_KEY)\nimport { webfetchTool } from \"./webfetch.js\";\nimport { websearchTool } from \"./websearch.js\";\n\nexport {\n\taskUserTool,\n\ttype Question,\n\ttype QuestionOption,\n\ttype AskUserInput,\n\ttype AskUserResult,\n} from \"./ask-user.js\";\nexport { bashTool } from \"./bash.js\";\nexport { backgroundTasksTool } from \"./background/tool-handler.js\";\nexport { applyPatchTool } from \"./apply-patch.js\";\nexport { codesearchTool } from \"./codesearch.js\";\nexport { diffTool } from \"./diff.js\";\nexport { editTool } from \"./edit.js\";\nexport { extractDocumentTool } from \"./extract-document.js\";\nexport { findTool } from \"./find.js\";\nexport { listTool } from \"./list.js\";\nexport { notebookEditTool } from \"./notebook.js\";\nexport { parallelRipgrepTool } from \"./parallel-ripgrep.js\";\nexport { readTool } from \"./read.js\";\nexport { searchTool } from \"./search.js\";\nexport { todoTool } from \"./todo.js\";\nexport { webfetchTool } from \"./webfetch.js\";\nexport { websearchTool } from \"./websearch.js\";\nexport { writeTool } from \"./write.js\";\nexport { statusTool } from \"./status.js\";\nexport { ghIssueTool, ghPrTool, ghRepoTool } from \"./gh.js\";\nexport {\n\tpipelineCreateSignalTool,\n\tpipelineLogActivityTool,\n\tpipelineSearchContactsTool,\n\tpipelineSearchDealsTool,\n} from \"./pipeline.js\";\nexport { ensureTool, getToolPath } from \"./tools-manager.js\";\nexport { conductorClientTools } from \"./conductor-client.js\";\n\n// =============================================================================\n// Tool Collections\n// =============================================================================\n\n/**\n * Complete set of coding tools available to the agent.\n *\n * This array defines the default tool set used in interactive sessions.\n * Tools are ordered roughly by frequency of use, though order doesn't\n * affect functionality.\n */\nexport const codingTools = [\n\t// File reading and navigation (most common)\n\treadTool,\n\tlistTool,\n\toracleTool,\n\tfindTool,\n\textractDocumentTool,\n\t// Search capabilities\n\tsearchTool,\n\tparallelRipgrepTool,\n\t// Git operations\n\tdiffTool,\n\t// Shell access\n\tbashTool,\n\tbackgroundTasksTool,\n\t// File modification\n\tapplyPatchTool,\n\teditTool,\n\twriteTool,\n\tnotebookEditTool,\n\t// Workflow tools\n\ttodoTool,\n\taskUserTool,\n\t// Web and external services\n\twebsearchTool,\n\tcodesearchTool,\n\twebfetchTool,\n\t// System info\n\tstatusTool,\n\t// GitHub CLI tools\n\tghPrTool,\n\tghIssueTool,\n\tghRepoTool,\n\t// CRM tools\n\tpipelineSearchContactsTool,\n\tpipelineSearchDealsTool,\n\tpipelineCreateSignalTool,\n\tpipelineLogActivityTool,\n];\n\n/**\n * Tool registry mapping tool names to tool instances.\n *\n * Used by the --tools CLI flag to filter available tools.\n * Keys are the canonical tool names used in configuration.\n */\nexport const toolRegistry: Record<string, (typeof codingTools)[number]> = {\n\tread: readTool,\n\tlist: listTool,\n\toracle: oracleTool,\n\tfind: findTool,\n\textract_document: extractDocumentTool,\n\tsearch: searchTool,\n\tparallel_ripgrep: parallelRipgrepTool,\n\tdiff: diffTool,\n\tbash: bashTool,\n\tbackground_tasks: backgroundTasksTool,\n\tapply_patch: applyPatchTool,\n\tedit: editTool,\n\twrite: writeTool,\n\tnotebook_edit: notebookEditTool,\n\ttodo: todoTool,\n\task_user: askUserTool,\n\twebsearch: websearchTool,\n\tcodesearch: codesearchTool,\n\twebfetch: webfetchTool,\n\tstatus: statusTool,\n\tgh_pr: ghPrTool,\n\tgh_issue: ghIssueTool,\n\tgh_repo: ghRepoTool,\n\tpipeline_search_contacts: pipelineSearchContactsTool,\n\tpipeline_search_deals: pipelineSearchDealsTool,\n\tpipeline_create_signal: pipelineCreateSignalTool,\n\tpipeline_log_activity: pipelineLogActivityTool,\n};\n\n// Re-export tool name constants\nexport { readOnlyToolNames, type ReadOnlyToolName } from \"./tool-names.js\";\n\n/**\n * Filter tools by name from the registry.\n *\n * Used to create custom tool sets based on user configuration\n * or security requirements.\n *\n * @param toolNames - Array of tool names to include\n * @returns Array of matching tool instances\n */\nexport function filterTools(\n\ttoolNames: string[],\n): (typeof codingTools)[number][] {\n\tconst filtered: (typeof codingTools)[number][] = [];\n\tfor (const name of toolNames) {\n\t\tconst tool = toolRegistry[name];\n\t\tif (tool) {\n\t\t\tfiltered.push(tool);\n\t\t}\n\t}\n\treturn filtered;\n}\n\n/**\n * VS Code-specific tools for IDE integration.\n *\n * These tools provide IDE features when running in VS Code context:\n * - Language server diagnostics\n * - Go-to-definition\n * - Find references\n * - Smart file range reading\n *\n * Only included when a VS Code client is connected.\n */\nexport const vscodeTools = [\n\tvscodeGetDiagnosticsTool,\n\tvscodeGetDefinitionTool,\n\tvscodeFindReferencesTool,\n\tvscodeReadFileRangeTool,\n];\n\n/**\n * JetBrains-specific tools for IDE integration.\n *\n * These tools provide IDE features when running in JetBrains context:\n * - PSI-based diagnostics\n * - Go-to-definition via reference resolution\n * - Find references via ReferencesSearch\n * - Document-aware file range reading\n *\n * Only included when a JetBrains plugin client is connected.\n */\nexport const jetbrainsTools = jetbrainsToolDefinitions;\n\n// =============================================================================\n// Performance Infrastructure\n// =============================================================================\n\n/**\n * Tool result caching - Caches expensive tool results to avoid redundant work.\n * Particularly useful for read and search operations on unchanged files.\n */\nexport {\n\tToolResultCache,\n\tcreateToolResultCache,\n\tgetGlobalToolResultCache,\n\tresetGlobalToolResultCache,\n\tgetToolResultCacheConfig,\n\ttype ToolCacheConfig,\n\ttype ToolCacheStats,\n} from \"./tool-result-cache.js\";\n\n/**\n * File watching - Monitors filesystem changes to trigger cache invalidation.\n * Supports both file changes and git state changes (branch switches, etc.).\n */\nexport {\n\tFileWatcher,\n\tcreateFileWatcher,\n\tgetGlobalFileWatcher,\n\tinitGlobalFileWatcher,\n\tresetGlobalFileWatcher,\n\ttype FileChangeEvent,\n\ttype FileChangeType,\n\ttype FileWatcherConfig,\n\ttype GitStateChangeEvent,\n} from \"./file-watcher.js\";\n\n/**\n * Cache invalidation - Coordinates cache clearing when files change.\n * Links file watcher events to tool result cache invalidation.\n */\nexport {\n\tCacheInvalidationService,\n\tcreateCacheInvalidationService,\n\tgetGlobalCacheInvalidation,\n\tinitGlobalCacheInvalidation,\n\tresetGlobalCacheInvalidation,\n\ttype CacheInvalidationConfig,\n\ttype InvalidationStats,\n} from \"./cache-invalidation.js\";\n"]}
|
package/dist/tools/tool-dsl.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Tool DSL - Domain-Specific Language for Creating Agent Tools
|
|
3
3
|
*
|
|
4
4
|
* This module provides a fluent, type-safe API for defining tools that can be
|
|
5
|
-
* executed by the
|
|
5
|
+
* executed by the Maestro agent. It handles schema validation, response building,
|
|
6
6
|
* retry logic, and sandbox integration.
|
|
7
7
|
*
|
|
8
8
|
* ## Architecture
|
package/dist/tools/tool-dsl.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Tool DSL - Domain-Specific Language for Creating Agent Tools
|
|
3
3
|
*
|
|
4
4
|
* This module provides a fluent, type-safe API for defining tools that can be
|
|
5
|
-
* executed by the
|
|
5
|
+
* executed by the Maestro agent. It handles schema validation, response building,
|
|
6
6
|
* retry logic, and sandbox integration.
|
|
7
7
|
*
|
|
8
8
|
* ## Architecture
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-dsl.js","sourceRoot":"","sources":["../../src/tools/tool-dsl.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Tool DSL - Domain-Specific Language for Creating Agent Tools\n *\n * This module provides a fluent, type-safe API for defining tools that can be\n * executed by the Composer agent. It handles schema validation, response building,\n * retry logic, and sandbox integration.\n *\n * ## Architecture\n *\n * ```\n * ┌─────────────────────────────────────────────────────────────────┐\n * │ Tool Creation Flow │\n * ├─────────────────────────────────────────────────────────────────┤\n * │ createTool(options) │\n * │ │ │\n * │ ▼ │\n * │ ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ │\n * │ │ Schema │───▶│ Validator │───▶│ execute() │ │\n * │ │ (TypeBox) │ │ (AJV) │ │ function │ │\n * │ └─────────────┘ └──────────────┘ └─────────────────┘ │\n * │ │ │\n * │ ▼ │\n * │ ┌─────────────────────────────────────┐ │\n * │ │ ToolResponseBuilder │ │\n * │ │ - text(), image(), error() │ │\n * │ │ - detail() for structured data │ │\n * │ └─────────────────────────────────────┘ │\n * └─────────────────────────────────────────────────────────────────┘\n * ```\n *\n * ## Tool Types\n *\n * | Factory | Return Type | Use Case |\n * |---------------|------------------|-----------------------------------|\n * | createTool | AgentToolResult | Full control over response |\n * | createTextTool| string → text | Simple text responses |\n * | createJsonTool| object → JSON | Structured data responses |\n *\n * ## Example\n *\n * ```typescript\n * import { createTool, Type } from './tool-dsl';\n *\n * const greetTool = createTool({\n * name: 'greet',\n * description: 'Greet a user by name',\n * schema: Type.Object({\n * name: Type.String({ description: 'Name to greet' }),\n * }),\n * run: async ({ name }, { respond }) => {\n * return respond.text(`Hello, ${name}!`);\n * },\n * });\n * ```\n *\n * ## Features\n *\n * - **Type-safe schemas**: Uses TypeBox for compile-time type inference\n * - **AJV validation**: Runtime validation with format support\n * - **Retry logic**: Built-in exponential backoff for transient failures\n * - **Sandbox support**: Tools can run in isolated environments\n * - **Context interpolation**: Environment variables and paths\n *\n * @module tools/tool-dsl\n */\n\nimport type { Static, TSchema } from \"@sinclair/typebox\";\nimport { Ajv, type ErrorObject, type ValidateFunction } from \"ajv\";\nimport addFormatsModule, { type FormatsPlugin } from \"ajv-formats\";\nimport type {\n\tAgentToolResult,\n\tAgentToolUpdateCallback,\n\tToolAnnotations,\n\tToolSourceMetadata,\n} from \"../agent/types.js\";\nimport type { Sandbox } from \"../sandbox/types.js\";\nimport { resolveDefaultExport } from \"../utils/module-interop.js\";\n\n// ESM/CJS interop: ajv-formats default may be nested under .default in some loaders\nconst addFormats = resolveDefaultExport<FormatsPlugin>(addFormatsModule);\n\n// Create a singleton AJV instance for schema validation\nlet ajv: Ajv | null = null;\ntry {\n\tajv = new Ajv({\n\t\t// Avoid unbounded error collection on large/invalid payloads\n\t\tallErrors: false,\n\t\tstrict: false,\n\t\tuseDefaults: true, // Apply schema defaults to input\n\t});\n\taddFormats(ajv);\n} catch {\n\t// AJV initialization failed (likely CSP restriction)\n\tajv = null;\n}\n\n// Cache compiled validators per schema to avoid recompiling on every execute()\nconst validatorCache = new WeakMap<TSchema, ValidateFunction>();\n\nfunction getOrCompileValidator(schema: TSchema): ValidateFunction | null {\n\tif (!ajv) return null;\n\n\tlet validate = validatorCache.get(schema);\n\tif (!validate) {\n\t\tvalidate = ajv.compile(schema);\n\t\tvalidatorCache.set(schema, validate);\n\t}\n\treturn validate;\n}\n\nexport class ToolResponseBuilder<Details> {\n\tprivate _content: (\n\t\t| { type: \"text\"; text: string }\n\t\t| { type: \"image\"; data: string; mimeType: string }\n\t)[] = [];\n\tprivate _details?: Details;\n\tprivate _isError = false;\n\n\ttext(content: string): this {\n\t\tthis._content.push({ type: \"text\", text: content });\n\t\treturn this;\n\t}\n\n\timage(base64: string, mimeType: string): this {\n\t\tthis._content.push({ type: \"image\", data: base64, mimeType });\n\t\treturn this;\n\t}\n\n\tdetail(details: Details): this {\n\t\tthis._details = details;\n\t\treturn this;\n\t}\n\n\terror(message: string): this {\n\t\tthis.text(message);\n\t\tthis._isError = true;\n\t\treturn this;\n\t}\n\n\tbuild(): AgentToolResult<Details> {\n\t\treturn {\n\t\t\tcontent: this._content,\n\t\t\tdetails: this._details,\n\t\t\tisError: this._isError,\n\t\t};\n\t}\n}\n\nexport interface ToolRunContext<Details> {\n\ttoolCallId: string;\n\tsignal?: AbortSignal;\n\trespond: ToolResponseBuilder<Details>;\n\tsandbox?: Sandbox;\n\tonUpdate?: AgentToolUpdateCallback<Details>;\n}\n\nexport interface CreateToolOptions<Schema extends TSchema, Details> {\n\tname: string;\n\tlabel?: string;\n\tdescription: string;\n\tschema: Schema;\n\tannotations?: ToolAnnotations;\n\tsource?: ToolSourceMetadata;\n\ttoolType?: string;\n\tinputExamples?: unknown[];\n\tallowedCallers?: string[];\n\tdeferApiDefinition?: boolean;\n\trun: (\n\t\tparams: import(\"@sinclair/typebox\").Static<Schema>,\n\t\tcontext: ToolRunContext<Details>,\n\t) =>\n\t\t| undefined\n\t\t| ToolResponseBuilder<Details>\n\t\t| AgentToolResult<Details>\n\t\t| Promise<\n\t\t\t\tundefined | ToolResponseBuilder<Details> | AgentToolResult<Details>\n\t\t >;\n\tmaxRetries?: number;\n\tretryDelayMs?: number;\n\tshouldRetry?: (error: unknown) => boolean;\n\tgetToolUseSummary?: (params: Static<Schema>) => string | null;\n\tgetDisplayName?: (params: Static<Schema>) => string | null;\n\tgetActivityDescription?: (params: Static<Schema>) => string | null;\n}\n\ntype StaticSchema<Schema extends TSchema> = Static<Schema>;\n\nexport class ToolError extends Error {\n\tconstructor(\n\t\tmessage: string,\n\t\tpublic readonly code?: string,\n\t\tpublic readonly details?: unknown,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"ToolError\";\n\t}\n}\n\nexport function createTool<Schema extends TSchema, Details = undefined>(\n\toptions: CreateToolOptions<Schema, Details>,\n) {\n\treturn Object.freeze({\n\t\tname: options.name,\n\t\tlabel: options.label ?? options.name,\n\t\tdescription: options.description,\n\t\tparameters: options.schema,\n\t\tannotations: options.annotations,\n\t\tsource: options.source,\n\t\ttoolType: options.toolType,\n\t\tinputExamples: options.inputExamples,\n\t\tallowedCallers: options.allowedCallers,\n\t\tdeferApiDefinition: options.deferApiDefinition,\n\t\tmaxRetries: options.maxRetries,\n\t\tretryDelayMs: options.retryDelayMs,\n\t\tshouldRetry: options.shouldRetry,\n\t\tgetToolUseSummary: options.getToolUseSummary\n\t\t\t? (params: Record<string, unknown>) =>\n\t\t\t\t\toptions.getToolUseSummary?.(params as StaticSchema<Schema>) ?? null\n\t\t\t: undefined,\n\t\tgetDisplayName: options.getDisplayName\n\t\t\t? (params: Record<string, unknown>) =>\n\t\t\t\t\toptions.getDisplayName?.(params as StaticSchema<Schema>) ?? null\n\t\t\t: undefined,\n\t\tgetActivityDescription: options.getActivityDescription\n\t\t\t? (params: Record<string, unknown>) =>\n\t\t\t\t\toptions.getActivityDescription?.(params as StaticSchema<Schema>) ??\n\t\t\t\t\tnull\n\t\t\t: undefined,\n\t\texecute: async (\n\t\t\ttoolCallId: string,\n\t\t\tparams: Record<string, unknown>,\n\t\t\tsignal?: AbortSignal,\n\t\t\tcontext?: { sandbox?: Sandbox },\n\t\t\tonUpdate?: AgentToolUpdateCallback<Details>,\n\t\t) => {\n\t\t\t// Validate params against schema using cached validator\n\t\t\tif (options.schema) {\n\t\t\t\tconst validate = getOrCompileValidator(options.schema);\n\t\t\t\tif (validate && !validate(params)) {\n\t\t\t\t\tconst errors =\n\t\t\t\t\t\t(validate.errors ?? [])\n\t\t\t\t\t\t\t.map((err) => {\n\t\t\t\t\t\t\t\tconst path =\n\t\t\t\t\t\t\t\t\terr.instancePath && err.instancePath.length > 1\n\t\t\t\t\t\t\t\t\t\t? err.instancePath.substring(1)\n\t\t\t\t\t\t\t\t\t\t: (err.params as { missingProperty?: string })\n\t\t\t\t\t\t\t\t\t\t\t\t.missingProperty || \"root\";\n\t\t\t\t\t\t\t\treturn ` - ${path}: ${err.message ?? \"invalid value\"}`;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.join(\"\\n\") || \"Unknown validation error\";\n\t\t\t\t\tthrow new ToolError(\n\t\t\t\t\t\t`Validation failed for tool \"${options.name}\":\\n${errors}`,\n\t\t\t\t\t\t\"VALIDATION_ERROR\",\n\t\t\t\t\t\t{ params },\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst maxRetries = options.maxRetries ?? 0;\n\t\t\tconst retryDelayMs = options.retryDelayMs ?? 1000;\n\t\t\tconst shouldRetry = options.shouldRetry ?? (() => true);\n\t\t\tconst typedParams = params as StaticSchema<Schema>;\n\n\t\t\tlet lastError: unknown;\n\t\t\tfor (let attempt = 0; attempt <= maxRetries; attempt++) {\n\t\t\t\tif (attempt > 0) {\n\t\t\t\t\t// Exponential backoff: delay * 2^(attempt-1)\n\t\t\t\t\tconst delay = retryDelayMs * 2 ** (attempt - 1);\n\t\t\t\t\tif (signal) {\n\t\t\t\t\t\tconst activeSignal = signal;\n\t\t\t\t\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\t\t\t\t\tif (activeSignal.aborted) {\n\t\t\t\t\t\t\t\treject(new Error(\"Operation aborted\"));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\t\t\t\t\tactiveSignal.removeEventListener(\"abort\", onAbort);\n\t\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t\t}, delay);\n\t\t\t\t\t\t\tfunction onAbort() {\n\t\t\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\t\t\tactiveSignal.removeEventListener(\"abort\", onAbort);\n\t\t\t\t\t\t\t\treject(new Error(\"Operation aborted\"));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tactiveSignal.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, delay));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tconst builder = new ToolResponseBuilder<Details>();\n\t\t\t\t\tconst result = await options.run(typedParams, {\n\t\t\t\t\t\ttoolCallId,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\trespond: builder,\n\t\t\t\t\t\tsandbox: context?.sandbox,\n\t\t\t\t\t\tonUpdate,\n\t\t\t\t\t});\n\t\t\t\t\tif (result instanceof ToolResponseBuilder) {\n\t\t\t\t\t\treturn result.build();\n\t\t\t\t\t}\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\treturn builder.build();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlastError = error;\n\t\t\t\t\tif (attempt < maxRetries && shouldRetry(error)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow lastError;\n\t\t},\n\t});\n}\n\nimport { getHomeDir } from \"../utils/path-expansion.js\";\nimport { expandUserPath as expandUserPathBase } from \"../utils/path-validation.js\";\n\n// Re-export shared path expansion utility to keep tool-dsl API stable\nexport const expandUserPath = expandUserPathBase;\n\n/**\n * Interpolate environment variables and context in a string.\n * Supports: ${env.VAR}, ${cwd}, ${home}\n */\nexport function interpolateContext(value: string): string {\n\treturn value\n\t\t.replace(/\\$\\{env\\.([^}]+)\\}/g, (_, varName) => process.env[varName] ?? \"\")\n\t\t.replace(/\\$\\{cwd\\}/g, process.cwd())\n\t\t.replace(/\\$\\{home\\}/g, getHomeDir());\n}\n\nexport interface CreateTextToolOptions<Schema extends TSchema, Details>\n\textends Omit<CreateToolOptions<Schema, Details>, \"run\"> {\n\trun: (\n\t\tparams: import(\"@sinclair/typebox\").Static<Schema>,\n\t\tcontext: ToolRunContext<Details>,\n\t) =>\n\t\t| string\n\t\t| undefined\n\t\t| ToolResponseBuilder<Details>\n\t\t| AgentToolResult<Details>\n\t\t| Promise<\n\t\t\t\t| string\n\t\t\t\t| undefined\n\t\t\t\t| ToolResponseBuilder<Details>\n\t\t\t\t| AgentToolResult<Details>\n\t\t >;\n}\n\nexport function createTextTool<Schema extends TSchema, Details = undefined>(\n\toptions: CreateTextToolOptions<Schema, Details>,\n) {\n\treturn createTool<Schema, Details>({\n\t\t...options,\n\t\trun: async (params, context) => {\n\t\t\tconst result = await options.run(params, context);\n\t\t\tif (typeof result === \"string\") {\n\t\t\t\treturn context.respond.text(result);\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t});\n}\n\nexport interface CreateJsonToolOptions<Schema extends TSchema, Details>\n\textends Omit<CreateToolOptions<Schema, Details>, \"run\"> {\n\trun: (\n\t\tparams: import(\"@sinclair/typebox\").Static<Schema>,\n\t\tcontext: ToolRunContext<Details>,\n\t) =>\n\t\t| unknown\n\t\t| undefined\n\t\t| ToolResponseBuilder<Details>\n\t\t| AgentToolResult<Details>\n\t\t| Promise<\n\t\t\t\t| unknown\n\t\t\t\t| undefined\n\t\t\t\t| ToolResponseBuilder<Details>\n\t\t\t\t| AgentToolResult<Details>\n\t\t >;\n}\n\nexport function createJsonTool<Schema extends TSchema, Details = undefined>(\n\toptions: CreateJsonToolOptions<Schema, Details>,\n) {\n\treturn createTool<Schema, Details>({\n\t\t...options,\n\t\trun: async (params, context) => {\n\t\t\tconst result = await options.run(params, context);\n\t\t\tif (result === undefined) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tif (result instanceof ToolResponseBuilder) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tif (isAgentToolResult<Details>(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn context.respond.text(JSON.stringify(result, null, 2));\n\t\t},\n\t});\n}\n\nfunction isAgentToolResult<Details>(\n\tvalue: unknown,\n): value is AgentToolResult<Details> {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t\"content\" in value &&\n\t\tArray.isArray((value as AgentToolResult<Details>).content)\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tool-dsl.js","sourceRoot":"","sources":["../../src/tools/tool-dsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAGH,OAAO,EAAE,GAAG,EAA2C,MAAM,KAAK,CAAC;AACnE,OAAO,gBAAwC,MAAM,aAAa,CAAC;AAQnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,oFAAoF;AACpF,MAAM,UAAU,GAAG,oBAAoB,CAAgB,gBAAgB,CAAC,CAAC;AAEzE,wDAAwD;AACxD,IAAI,GAAG,GAAe,IAAI,CAAC;AAC3B,IAAI,CAAC;IACJ,GAAG,GAAG,IAAI,GAAG,CAAC;QACb,6DAA6D;QAC7D,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,IAAI,EAAE,iCAAiC;KACpD,CAAC,CAAC;IACH,UAAU,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC;AAAC,MAAM,CAAC;IACR,qDAAqD;IACrD,GAAG,GAAG,IAAI,CAAC;AACZ,CAAC;AAED,+EAA+E;AAC/E,MAAM,cAAc,GAAG,IAAI,OAAO,EAA6B,CAAC;AAEhE,SAAS,qBAAqB,CAAC,MAAe;IAC7C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,IAAI,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,OAAO,mBAAmB;IAAhC;QACS,aAAQ,GAGV,EAAE,CAAC;QAED,aAAQ,GAAG,KAAK,CAAC;IA8B1B,CAAC;IA5BA,IAAI,CAAC,OAAe;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK,CAAC,MAAc,EAAE,QAAgB;QACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,CAAC,OAAgB;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK,CAAC,OAAe;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK;QACJ,OAAO;YACN,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,OAAO,EAAE,IAAI,CAAC,QAAQ;SACtB,CAAC;IACH,CAAC;CACD;AAyCD,MAAM,OAAO,SAAU,SAAQ,KAAK;IACnC,YACC,OAAe,EACC,IAAa,EACb,OAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAS;QACb,YAAO,GAAP,OAAO,CAAU;QAGjC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IACzB,CAAC;CACD;AAED,MAAM,UAAU,UAAU,CACzB,OAA2C;IAE3C,OAAO,MAAM,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,MAAM;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC3C,CAAC,CAAC,CAAC,MAA+B,EAAE,EAAE,CACpC,OAAO,CAAC,iBAAiB,EAAE,CAAC,MAA8B,CAAC,IAAI,IAAI;YACrE,CAAC,CAAC,SAAS;QACZ,cAAc,EAAE,OAAO,CAAC,cAAc;YACrC,CAAC,CAAC,CAAC,MAA+B,EAAE,EAAE,CACpC,OAAO,CAAC,cAAc,EAAE,CAAC,MAA8B,CAAC,IAAI,IAAI;YAClE,CAAC,CAAC,SAAS;QACZ,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACrD,CAAC,CAAC,CAAC,MAA+B,EAAE,EAAE,CACpC,OAAO,CAAC,sBAAsB,EAAE,CAAC,MAA8B,CAAC;gBAChE,IAAI;YACN,CAAC,CAAC,SAAS;QACZ,OAAO,EAAE,KAAK,EACb,UAAkB,EAClB,MAA+B,EAC/B,MAAoB,EACpB,OAA+B,EAC/B,QAA2C,EAC1C,EAAE;YACH,wDAAwD;YACxD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnC,MAAM,MAAM,GACX,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;yBACrB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wBACZ,MAAM,IAAI,GACT,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;4BAC9C,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;4BAC/B,CAAC,CAAE,GAAG,CAAC,MAAuC;iCAC3C,eAAe,IAAI,MAAM,CAAC;wBAC/B,OAAO,OAAO,IAAI,KAAK,GAAG,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;oBACzD,CAAC,CAAC;yBACD,IAAI,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC;oBAC5C,MAAM,IAAI,SAAS,CAClB,+BAA+B,OAAO,CAAC,IAAI,OAAO,MAAM,EAAE,EAC1D,kBAAkB,EAClB,EAAE,MAAM,EAAE,CACV,CAAC;gBACH,CAAC;YACF,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;YAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;YAClD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,WAAW,GAAG,MAA8B,CAAC;YAEnD,IAAI,SAAkB,CAAC;YACvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;gBACxD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;oBACjB,6CAA6C;oBAC7C,MAAM,KAAK,GAAG,YAAY,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;oBAChD,IAAI,MAAM,EAAE,CAAC;wBACZ,MAAM,YAAY,GAAG,MAAM,CAAC;wBAC5B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;4BAC3C,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gCAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;gCACvC,OAAO;4BACR,CAAC;4BACD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gCAC/B,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gCACnD,OAAO,EAAE,CAAC;4BACX,CAAC,EAAE,KAAK,CAAC,CAAC;4BACV,SAAS,OAAO;gCACf,YAAY,CAAC,OAAO,CAAC,CAAC;gCACtB,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gCACnD,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;4BACxC,CAAC;4BACD,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;wBACjE,CAAC,CAAC,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACP,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC5D,CAAC;gBACF,CAAC;gBAED,IAAI,CAAC;oBACJ,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAW,CAAC;oBACnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;wBAC7C,UAAU;wBACV,MAAM;wBACN,OAAO,EAAE,OAAO;wBAChB,OAAO,EAAE,OAAO,EAAE,OAAO;wBACzB,QAAQ;qBACR,CAAC,CAAC;oBACH,IAAI,MAAM,YAAY,mBAAmB,EAAE,CAAC;wBAC3C,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;oBACvB,CAAC;oBACD,IAAI,MAAM,EAAE,CAAC;wBACZ,OAAO,MAAM,CAAC;oBACf,CAAC;oBACD,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,SAAS,GAAG,KAAK,CAAC;oBAClB,IAAI,OAAO,GAAG,UAAU,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;wBAChD,SAAS;oBACV,CAAC;oBACD,MAAM,KAAK,CAAC;gBACb,CAAC;YACF,CAAC;YACD,MAAM,SAAS,CAAC;QACjB,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEnF,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC/C,OAAO,KAAK;SACV,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAC1E,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACpC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;AACxC,CAAC;AAoBD,MAAM,UAAU,cAAc,CAC7B,OAA+C;IAE/C,OAAO,UAAU,CAAkB;QAClC,GAAG,OAAO;QACV,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAChC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAoBD,MAAM,UAAU,cAAc,CAC7B,OAA+C;IAE/C,OAAO,UAAU,CAAkB;QAClC,GAAG,OAAO;QACV,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC;YACf,CAAC;YACD,IAAI,MAAM,YAAY,mBAAmB,EAAE,CAAC;gBAC3C,OAAO,MAAM,CAAC;YACf,CAAC;YACD,IAAI,iBAAiB,CAAU,MAAM,CAAC,EAAE,CAAC;gBACxC,OAAO,MAAM,CAAC;YACf,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACzB,KAAc;IAEd,OAAO,CACN,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,SAAS,IAAI,KAAK;QAClB,KAAK,CAAC,OAAO,CAAE,KAAkC,CAAC,OAAO,CAAC,CAC1D,CAAC;AACH,CAAC","sourcesContent":["/**\n * Tool DSL - Domain-Specific Language for Creating Agent Tools\n *\n * This module provides a fluent, type-safe API for defining tools that can be\n * executed by the Maestro agent. It handles schema validation, response building,\n * retry logic, and sandbox integration.\n *\n * ## Architecture\n *\n * ```\n * ┌─────────────────────────────────────────────────────────────────┐\n * │ Tool Creation Flow │\n * ├─────────────────────────────────────────────────────────────────┤\n * │ createTool(options) │\n * │ │ │\n * │ ▼ │\n * │ ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ │\n * │ │ Schema │───▶│ Validator │───▶│ execute() │ │\n * │ │ (TypeBox) │ │ (AJV) │ │ function │ │\n * │ └─────────────┘ └──────────────┘ └─────────────────┘ │\n * │ │ │\n * │ ▼ │\n * │ ┌─────────────────────────────────────┐ │\n * │ │ ToolResponseBuilder │ │\n * │ │ - text(), image(), error() │ │\n * │ │ - detail() for structured data │ │\n * │ └─────────────────────────────────────┘ │\n * └─────────────────────────────────────────────────────────────────┘\n * ```\n *\n * ## Tool Types\n *\n * | Factory | Return Type | Use Case |\n * |---------------|------------------|-----------------------------------|\n * | createTool | AgentToolResult | Full control over response |\n * | createTextTool| string → text | Simple text responses |\n * | createJsonTool| object → JSON | Structured data responses |\n *\n * ## Example\n *\n * ```typescript\n * import { createTool, Type } from './tool-dsl';\n *\n * const greetTool = createTool({\n * name: 'greet',\n * description: 'Greet a user by name',\n * schema: Type.Object({\n * name: Type.String({ description: 'Name to greet' }),\n * }),\n * run: async ({ name }, { respond }) => {\n * return respond.text(`Hello, ${name}!`);\n * },\n * });\n * ```\n *\n * ## Features\n *\n * - **Type-safe schemas**: Uses TypeBox for compile-time type inference\n * - **AJV validation**: Runtime validation with format support\n * - **Retry logic**: Built-in exponential backoff for transient failures\n * - **Sandbox support**: Tools can run in isolated environments\n * - **Context interpolation**: Environment variables and paths\n *\n * @module tools/tool-dsl\n */\n\nimport type { Static, TSchema } from \"@sinclair/typebox\";\nimport { Ajv, type ErrorObject, type ValidateFunction } from \"ajv\";\nimport addFormatsModule, { type FormatsPlugin } from \"ajv-formats\";\nimport type {\n\tAgentToolResult,\n\tAgentToolUpdateCallback,\n\tToolAnnotations,\n\tToolSourceMetadata,\n} from \"../agent/types.js\";\nimport type { Sandbox } from \"../sandbox/types.js\";\nimport { resolveDefaultExport } from \"../utils/module-interop.js\";\n\n// ESM/CJS interop: ajv-formats default may be nested under .default in some loaders\nconst addFormats = resolveDefaultExport<FormatsPlugin>(addFormatsModule);\n\n// Create a singleton AJV instance for schema validation\nlet ajv: Ajv | null = null;\ntry {\n\tajv = new Ajv({\n\t\t// Avoid unbounded error collection on large/invalid payloads\n\t\tallErrors: false,\n\t\tstrict: false,\n\t\tuseDefaults: true, // Apply schema defaults to input\n\t});\n\taddFormats(ajv);\n} catch {\n\t// AJV initialization failed (likely CSP restriction)\n\tajv = null;\n}\n\n// Cache compiled validators per schema to avoid recompiling on every execute()\nconst validatorCache = new WeakMap<TSchema, ValidateFunction>();\n\nfunction getOrCompileValidator(schema: TSchema): ValidateFunction | null {\n\tif (!ajv) return null;\n\n\tlet validate = validatorCache.get(schema);\n\tif (!validate) {\n\t\tvalidate = ajv.compile(schema);\n\t\tvalidatorCache.set(schema, validate);\n\t}\n\treturn validate;\n}\n\nexport class ToolResponseBuilder<Details> {\n\tprivate _content: (\n\t\t| { type: \"text\"; text: string }\n\t\t| { type: \"image\"; data: string; mimeType: string }\n\t)[] = [];\n\tprivate _details?: Details;\n\tprivate _isError = false;\n\n\ttext(content: string): this {\n\t\tthis._content.push({ type: \"text\", text: content });\n\t\treturn this;\n\t}\n\n\timage(base64: string, mimeType: string): this {\n\t\tthis._content.push({ type: \"image\", data: base64, mimeType });\n\t\treturn this;\n\t}\n\n\tdetail(details: Details): this {\n\t\tthis._details = details;\n\t\treturn this;\n\t}\n\n\terror(message: string): this {\n\t\tthis.text(message);\n\t\tthis._isError = true;\n\t\treturn this;\n\t}\n\n\tbuild(): AgentToolResult<Details> {\n\t\treturn {\n\t\t\tcontent: this._content,\n\t\t\tdetails: this._details,\n\t\t\tisError: this._isError,\n\t\t};\n\t}\n}\n\nexport interface ToolRunContext<Details> {\n\ttoolCallId: string;\n\tsignal?: AbortSignal;\n\trespond: ToolResponseBuilder<Details>;\n\tsandbox?: Sandbox;\n\tonUpdate?: AgentToolUpdateCallback<Details>;\n}\n\nexport interface CreateToolOptions<Schema extends TSchema, Details> {\n\tname: string;\n\tlabel?: string;\n\tdescription: string;\n\tschema: Schema;\n\tannotations?: ToolAnnotations;\n\tsource?: ToolSourceMetadata;\n\ttoolType?: string;\n\tinputExamples?: unknown[];\n\tallowedCallers?: string[];\n\tdeferApiDefinition?: boolean;\n\trun: (\n\t\tparams: import(\"@sinclair/typebox\").Static<Schema>,\n\t\tcontext: ToolRunContext<Details>,\n\t) =>\n\t\t| undefined\n\t\t| ToolResponseBuilder<Details>\n\t\t| AgentToolResult<Details>\n\t\t| Promise<\n\t\t\t\tundefined | ToolResponseBuilder<Details> | AgentToolResult<Details>\n\t\t >;\n\tmaxRetries?: number;\n\tretryDelayMs?: number;\n\tshouldRetry?: (error: unknown) => boolean;\n\tgetToolUseSummary?: (params: Static<Schema>) => string | null;\n\tgetDisplayName?: (params: Static<Schema>) => string | null;\n\tgetActivityDescription?: (params: Static<Schema>) => string | null;\n}\n\ntype StaticSchema<Schema extends TSchema> = Static<Schema>;\n\nexport class ToolError extends Error {\n\tconstructor(\n\t\tmessage: string,\n\t\tpublic readonly code?: string,\n\t\tpublic readonly details?: unknown,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"ToolError\";\n\t}\n}\n\nexport function createTool<Schema extends TSchema, Details = undefined>(\n\toptions: CreateToolOptions<Schema, Details>,\n) {\n\treturn Object.freeze({\n\t\tname: options.name,\n\t\tlabel: options.label ?? options.name,\n\t\tdescription: options.description,\n\t\tparameters: options.schema,\n\t\tannotations: options.annotations,\n\t\tsource: options.source,\n\t\ttoolType: options.toolType,\n\t\tinputExamples: options.inputExamples,\n\t\tallowedCallers: options.allowedCallers,\n\t\tdeferApiDefinition: options.deferApiDefinition,\n\t\tmaxRetries: options.maxRetries,\n\t\tretryDelayMs: options.retryDelayMs,\n\t\tshouldRetry: options.shouldRetry,\n\t\tgetToolUseSummary: options.getToolUseSummary\n\t\t\t? (params: Record<string, unknown>) =>\n\t\t\t\t\toptions.getToolUseSummary?.(params as StaticSchema<Schema>) ?? null\n\t\t\t: undefined,\n\t\tgetDisplayName: options.getDisplayName\n\t\t\t? (params: Record<string, unknown>) =>\n\t\t\t\t\toptions.getDisplayName?.(params as StaticSchema<Schema>) ?? null\n\t\t\t: undefined,\n\t\tgetActivityDescription: options.getActivityDescription\n\t\t\t? (params: Record<string, unknown>) =>\n\t\t\t\t\toptions.getActivityDescription?.(params as StaticSchema<Schema>) ??\n\t\t\t\t\tnull\n\t\t\t: undefined,\n\t\texecute: async (\n\t\t\ttoolCallId: string,\n\t\t\tparams: Record<string, unknown>,\n\t\t\tsignal?: AbortSignal,\n\t\t\tcontext?: { sandbox?: Sandbox },\n\t\t\tonUpdate?: AgentToolUpdateCallback<Details>,\n\t\t) => {\n\t\t\t// Validate params against schema using cached validator\n\t\t\tif (options.schema) {\n\t\t\t\tconst validate = getOrCompileValidator(options.schema);\n\t\t\t\tif (validate && !validate(params)) {\n\t\t\t\t\tconst errors =\n\t\t\t\t\t\t(validate.errors ?? [])\n\t\t\t\t\t\t\t.map((err) => {\n\t\t\t\t\t\t\t\tconst path =\n\t\t\t\t\t\t\t\t\terr.instancePath && err.instancePath.length > 1\n\t\t\t\t\t\t\t\t\t\t? err.instancePath.substring(1)\n\t\t\t\t\t\t\t\t\t\t: (err.params as { missingProperty?: string })\n\t\t\t\t\t\t\t\t\t\t\t\t.missingProperty || \"root\";\n\t\t\t\t\t\t\t\treturn ` - ${path}: ${err.message ?? \"invalid value\"}`;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.join(\"\\n\") || \"Unknown validation error\";\n\t\t\t\t\tthrow new ToolError(\n\t\t\t\t\t\t`Validation failed for tool \"${options.name}\":\\n${errors}`,\n\t\t\t\t\t\t\"VALIDATION_ERROR\",\n\t\t\t\t\t\t{ params },\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst maxRetries = options.maxRetries ?? 0;\n\t\t\tconst retryDelayMs = options.retryDelayMs ?? 1000;\n\t\t\tconst shouldRetry = options.shouldRetry ?? (() => true);\n\t\t\tconst typedParams = params as StaticSchema<Schema>;\n\n\t\t\tlet lastError: unknown;\n\t\t\tfor (let attempt = 0; attempt <= maxRetries; attempt++) {\n\t\t\t\tif (attempt > 0) {\n\t\t\t\t\t// Exponential backoff: delay * 2^(attempt-1)\n\t\t\t\t\tconst delay = retryDelayMs * 2 ** (attempt - 1);\n\t\t\t\t\tif (signal) {\n\t\t\t\t\t\tconst activeSignal = signal;\n\t\t\t\t\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\t\t\t\t\tif (activeSignal.aborted) {\n\t\t\t\t\t\t\t\treject(new Error(\"Operation aborted\"));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\t\t\t\t\tactiveSignal.removeEventListener(\"abort\", onAbort);\n\t\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t\t}, delay);\n\t\t\t\t\t\t\tfunction onAbort() {\n\t\t\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\t\t\tactiveSignal.removeEventListener(\"abort\", onAbort);\n\t\t\t\t\t\t\t\treject(new Error(\"Operation aborted\"));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tactiveSignal.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, delay));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tconst builder = new ToolResponseBuilder<Details>();\n\t\t\t\t\tconst result = await options.run(typedParams, {\n\t\t\t\t\t\ttoolCallId,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\trespond: builder,\n\t\t\t\t\t\tsandbox: context?.sandbox,\n\t\t\t\t\t\tonUpdate,\n\t\t\t\t\t});\n\t\t\t\t\tif (result instanceof ToolResponseBuilder) {\n\t\t\t\t\t\treturn result.build();\n\t\t\t\t\t}\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\treturn builder.build();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlastError = error;\n\t\t\t\t\tif (attempt < maxRetries && shouldRetry(error)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow lastError;\n\t\t},\n\t});\n}\n\nimport { getHomeDir } from \"../utils/path-expansion.js\";\nimport { expandUserPath as expandUserPathBase } from \"../utils/path-validation.js\";\n\n// Re-export shared path expansion utility to keep tool-dsl API stable\nexport const expandUserPath = expandUserPathBase;\n\n/**\n * Interpolate environment variables and context in a string.\n * Supports: ${env.VAR}, ${cwd}, ${home}\n */\nexport function interpolateContext(value: string): string {\n\treturn value\n\t\t.replace(/\\$\\{env\\.([^}]+)\\}/g, (_, varName) => process.env[varName] ?? \"\")\n\t\t.replace(/\\$\\{cwd\\}/g, process.cwd())\n\t\t.replace(/\\$\\{home\\}/g, getHomeDir());\n}\n\nexport interface CreateTextToolOptions<Schema extends TSchema, Details>\n\textends Omit<CreateToolOptions<Schema, Details>, \"run\"> {\n\trun: (\n\t\tparams: import(\"@sinclair/typebox\").Static<Schema>,\n\t\tcontext: ToolRunContext<Details>,\n\t) =>\n\t\t| string\n\t\t| undefined\n\t\t| ToolResponseBuilder<Details>\n\t\t| AgentToolResult<Details>\n\t\t| Promise<\n\t\t\t\t| string\n\t\t\t\t| undefined\n\t\t\t\t| ToolResponseBuilder<Details>\n\t\t\t\t| AgentToolResult<Details>\n\t\t >;\n}\n\nexport function createTextTool<Schema extends TSchema, Details = undefined>(\n\toptions: CreateTextToolOptions<Schema, Details>,\n) {\n\treturn createTool<Schema, Details>({\n\t\t...options,\n\t\trun: async (params, context) => {\n\t\t\tconst result = await options.run(params, context);\n\t\t\tif (typeof result === \"string\") {\n\t\t\t\treturn context.respond.text(result);\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t});\n}\n\nexport interface CreateJsonToolOptions<Schema extends TSchema, Details>\n\textends Omit<CreateToolOptions<Schema, Details>, \"run\"> {\n\trun: (\n\t\tparams: import(\"@sinclair/typebox\").Static<Schema>,\n\t\tcontext: ToolRunContext<Details>,\n\t) =>\n\t\t| unknown\n\t\t| undefined\n\t\t| ToolResponseBuilder<Details>\n\t\t| AgentToolResult<Details>\n\t\t| Promise<\n\t\t\t\t| unknown\n\t\t\t\t| undefined\n\t\t\t\t| ToolResponseBuilder<Details>\n\t\t\t\t| AgentToolResult<Details>\n\t\t >;\n}\n\nexport function createJsonTool<Schema extends TSchema, Details = undefined>(\n\toptions: CreateJsonToolOptions<Schema, Details>,\n) {\n\treturn createTool<Schema, Details>({\n\t\t...options,\n\t\trun: async (params, context) => {\n\t\t\tconst result = await options.run(params, context);\n\t\t\tif (result === undefined) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tif (result instanceof ToolResponseBuilder) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tif (isAgentToolResult<Details>(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn context.respond.text(JSON.stringify(result, null, 2));\n\t\t},\n\t});\n}\n\nfunction isAgentToolResult<Details>(\n\tvalue: unknown,\n): value is AgentToolResult<Details> {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t\"content\" in value &&\n\t\tArray.isArray((value as AgentToolResult<Details>).content)\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/document-extractor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"document-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/document-extractor.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,uBAAuB,GAChC,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,SAAS,CAAC;AAEb,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,uBAAuB,CAAC;IAChC,SAAS,EAAE,QAAQ,GAAG,YAAY,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CAClB;AA0ZD,wBAAsB,mBAAmB,CACxC,KAAK,EAAE,oBAAoB,GACzB,OAAO,CAAC,qBAAqB,CAAC,CAsGhC"}
|