@qodo/sdk 0.13.4 → 2.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +31 -118
- package/README.md +133 -121
- package/bin/qodo-skills.mjs +13 -0
- package/bundled-skills/code-review/SKILL.md +41 -0
- package/bundled-skills/pr-summary/SKILL.md +59 -0
- package/bundled-skills/test-gen/SKILL.md +47 -0
- package/dist/auth/index.browser.d.ts +38 -0
- package/dist/auth/index.browser.d.ts.map +1 -0
- package/dist/auth/index.browser.js +62 -0
- package/dist/auth/index.browser.js.map +1 -0
- package/dist/auth/index.d.ts +44 -30
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +57 -110
- package/dist/auth/index.js.map +1 -1
- package/dist/client/AgentsClient.d.ts +33 -0
- package/dist/client/AgentsClient.d.ts.map +1 -0
- package/dist/client/AgentsClient.js +40 -0
- package/dist/client/AgentsClient.js.map +1 -0
- package/dist/client/ArtifactsClient.d.ts +43 -0
- package/dist/client/ArtifactsClient.d.ts.map +1 -0
- package/dist/client/ArtifactsClient.js +54 -0
- package/dist/client/ArtifactsClient.js.map +1 -0
- package/dist/client/BulletinClient.d.ts +45 -0
- package/dist/client/BulletinClient.d.ts.map +1 -0
- package/dist/client/BulletinClient.js +51 -0
- package/dist/client/BulletinClient.js.map +1 -0
- package/dist/client/InfoClient.d.ts +58 -0
- package/dist/client/InfoClient.d.ts.map +1 -0
- package/dist/client/InfoClient.js +135 -0
- package/dist/client/InfoClient.js.map +1 -0
- package/dist/client/PipelineClient.d.ts +162 -0
- package/dist/client/PipelineClient.d.ts.map +1 -0
- package/dist/client/PipelineClient.js +340 -0
- package/dist/client/PipelineClient.js.map +1 -0
- package/dist/client/QarRegistryClient.d.ts +396 -0
- package/dist/client/QarRegistryClient.d.ts.map +1 -0
- package/dist/client/QarRegistryClient.js +536 -0
- package/dist/client/QarRegistryClient.js.map +1 -0
- package/dist/client/QodoClient.d.ts +296 -0
- package/dist/client/QodoClient.d.ts.map +1 -0
- package/dist/client/QodoClient.js +803 -0
- package/dist/client/QodoClient.js.map +1 -0
- package/dist/client/SpecsClient.d.ts +121 -0
- package/dist/client/SpecsClient.d.ts.map +1 -0
- package/dist/client/SpecsClient.js +252 -0
- package/dist/client/SpecsClient.js.map +1 -0
- package/dist/client/StateClient.d.ts +35 -0
- package/dist/client/StateClient.d.ts.map +1 -0
- package/dist/client/StateClient.js +36 -0
- package/dist/client/StateClient.js.map +1 -0
- package/dist/client/TaskClient.d.ts +706 -0
- package/dist/client/TaskClient.d.ts.map +1 -0
- package/dist/client/TaskClient.js +2522 -0
- package/dist/client/TaskClient.js.map +1 -0
- package/dist/client/ToolClient.d.ts +278 -0
- package/dist/client/ToolClient.d.ts.map +1 -0
- package/dist/client/ToolClient.js +1115 -0
- package/dist/client/ToolClient.js.map +1 -0
- package/dist/client/a2a/index.d.ts +10 -0
- package/dist/client/a2a/index.d.ts.map +1 -0
- package/dist/client/a2a/index.js +9 -0
- package/dist/client/a2a/index.js.map +1 -0
- package/dist/client/a2a/registerA2A.d.ts +170 -0
- package/dist/client/a2a/registerA2A.d.ts.map +1 -0
- package/dist/client/a2a/registerA2A.js +85 -0
- package/dist/client/a2a/registerA2A.js.map +1 -0
- package/dist/client/connection.d.ts +800 -0
- package/dist/client/connection.d.ts.map +1 -0
- package/dist/client/connection.js +2020 -0
- package/dist/client/connection.js.map +1 -0
- package/dist/client/errors.d.ts +735 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +921 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/index.d.ts +26 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +20 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/inlineGraph.d.ts +66 -0
- package/dist/client/inlineGraph.d.ts.map +1 -0
- package/dist/client/inlineGraph.js +500 -0
- package/dist/client/inlineGraph.js.map +1 -0
- package/dist/client/internal/thenable.d.ts +27 -0
- package/dist/client/internal/thenable.d.ts.map +1 -0
- package/dist/client/internal/thenable.js +31 -0
- package/dist/client/internal/thenable.js.map +1 -0
- package/dist/client/iterator.d.ts +32 -0
- package/dist/client/iterator.d.ts.map +1 -0
- package/dist/client/iterator.js +73 -0
- package/dist/client/iterator.js.map +1 -0
- package/dist/client/mcp/McpClientPool.browser.d.ts +76 -0
- package/dist/client/mcp/McpClientPool.browser.d.ts.map +1 -0
- package/dist/client/mcp/McpClientPool.browser.js +78 -0
- package/dist/client/mcp/McpClientPool.browser.js.map +1 -0
- package/dist/client/mcp/McpClientPool.d.ts +236 -0
- package/dist/client/mcp/McpClientPool.d.ts.map +1 -0
- package/dist/client/mcp/McpClientPool.js +585 -0
- package/dist/client/mcp/McpClientPool.js.map +1 -0
- package/dist/client/mcp/projection.d.ts +109 -0
- package/dist/client/mcp/projection.d.ts.map +1 -0
- package/dist/client/mcp/projection.js +446 -0
- package/dist/client/mcp/projection.js.map +1 -0
- package/dist/client/mcp/substituteEnv.browser.d.ts +18 -0
- package/dist/client/mcp/substituteEnv.browser.d.ts.map +1 -0
- package/dist/client/mcp/substituteEnv.browser.js +20 -0
- package/dist/client/mcp/substituteEnv.browser.js.map +1 -0
- package/dist/client/mcp/substituteEnv.d.ts +45 -0
- package/dist/client/mcp/substituteEnv.d.ts.map +1 -0
- package/dist/client/mcp/substituteEnv.js +63 -0
- package/dist/client/mcp/substituteEnv.js.map +1 -0
- package/dist/client/observers.d.ts +57 -0
- package/dist/client/observers.d.ts.map +1 -0
- package/dist/client/observers.js +203 -0
- package/dist/client/observers.js.map +1 -0
- package/dist/client/options.d.ts +269 -0
- package/dist/client/options.d.ts.map +1 -0
- package/dist/client/options.js +9 -0
- package/dist/client/options.js.map +1 -0
- package/dist/client/tools/_readlineApprovalPrompt.browser.d.ts +17 -0
- package/dist/client/tools/_readlineApprovalPrompt.browser.d.ts.map +1 -0
- package/dist/client/tools/_readlineApprovalPrompt.browser.js +24 -0
- package/dist/client/tools/_readlineApprovalPrompt.browser.js.map +1 -0
- package/dist/client/tools/_readlineApprovalPrompt.d.ts +33 -0
- package/dist/client/tools/_readlineApprovalPrompt.d.ts.map +1 -0
- package/dist/client/tools/_readlineApprovalPrompt.js +90 -0
- package/dist/client/tools/_readlineApprovalPrompt.js.map +1 -0
- package/dist/client/tools/approval.d.ts +280 -0
- package/dist/client/tools/approval.d.ts.map +1 -0
- package/dist/client/tools/approval.js +229 -0
- package/dist/client/tools/approval.js.map +1 -0
- package/dist/client/tools/bindFunctionToolDefs.d.ts +156 -0
- package/dist/client/tools/bindFunctionToolDefs.d.ts.map +1 -0
- package/dist/client/tools/bindFunctionToolDefs.js +360 -0
- package/dist/client/tools/bindFunctionToolDefs.js.map +1 -0
- package/dist/client/tools/defineFunctionTool.d.ts +277 -0
- package/dist/client/tools/defineFunctionTool.d.ts.map +1 -0
- package/dist/client/tools/defineFunctionTool.js +190 -0
- package/dist/client/tools/defineFunctionTool.js.map +1 -0
- package/dist/client/transport.browser.d.ts +20 -0
- package/dist/client/transport.browser.d.ts.map +1 -0
- package/dist/client/transport.browser.js +29 -0
- package/dist/client/transport.browser.js.map +1 -0
- package/dist/client/transport.d.ts +47 -0
- package/dist/client/transport.d.ts.map +1 -0
- package/dist/client/transport.js +102 -0
- package/dist/client/transport.js.map +1 -0
- package/dist/client/transport.shared.d.ts +30 -0
- package/dist/client/transport.shared.d.ts.map +1 -0
- package/dist/client/transport.shared.js +40 -0
- package/dist/client/transport.shared.js.map +1 -0
- package/dist/client/uuid.d.ts +32 -0
- package/dist/client/uuid.d.ts.map +1 -0
- package/dist/client/uuid.js +65 -0
- package/dist/client/uuid.js.map +1 -0
- package/dist/index.d.ts +88 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +166 -43
- package/dist/index.js.map +1 -1
- package/dist/observability/attributes.d.ts +136 -0
- package/dist/observability/attributes.d.ts.map +1 -0
- package/dist/observability/attributes.js +184 -0
- package/dist/observability/attributes.js.map +1 -0
- package/dist/observability/index.d.ts +14 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +11 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/resolveOTel.browser.d.ts +13 -0
- package/dist/observability/resolveOTel.browser.d.ts.map +1 -0
- package/dist/observability/resolveOTel.browser.js +14 -0
- package/dist/observability/resolveOTel.browser.js.map +1 -0
- package/dist/observability/resolveOTel.d.ts +28 -0
- package/dist/observability/resolveOTel.d.ts.map +1 -0
- package/dist/observability/resolveOTel.js +74 -0
- package/dist/observability/resolveOTel.js.map +1 -0
- package/dist/observability/spans.d.ts +198 -0
- package/dist/observability/spans.d.ts.map +1 -0
- package/dist/observability/spans.js +300 -0
- package/dist/observability/spans.js.map +1 -0
- package/dist/observability/traceContext.d.ts +51 -0
- package/dist/observability/traceContext.d.ts.map +1 -0
- package/dist/observability/traceContext.js +151 -0
- package/dist/observability/traceContext.js.map +1 -0
- package/dist/observability/transportMetrics.d.ts +58 -0
- package/dist/observability/transportMetrics.d.ts.map +1 -0
- package/dist/observability/transportMetrics.js +55 -0
- package/dist/observability/transportMetrics.js.map +1 -0
- package/dist/qar/agentSpec.d.ts +93 -0
- package/dist/qar/agentSpec.d.ts.map +1 -0
- package/dist/qar/agentSpec.js +184 -0
- package/dist/qar/agentSpec.js.map +1 -0
- package/dist/qar/clientEvents.d.ts +86 -0
- package/dist/qar/clientEvents.d.ts.map +1 -0
- package/dist/qar/clientEvents.js +36 -0
- package/dist/qar/clientEvents.js.map +1 -0
- package/dist/qar/envelopes.d.ts +227 -0
- package/dist/qar/envelopes.d.ts.map +1 -0
- package/dist/qar/envelopes.js +67 -0
- package/dist/qar/envelopes.js.map +1 -0
- package/dist/qar/generated/envelope.d.ts +332 -0
- package/dist/qar/generated/envelope.d.ts.map +1 -0
- package/dist/qar/generated/envelope.js +15 -0
- package/dist/qar/generated/envelope.js.map +1 -0
- package/dist/qar/generated/qar-info.d.ts +76 -0
- package/dist/qar/generated/qar-info.d.ts.map +1 -0
- package/dist/qar/generated/qar-info.js +15 -0
- package/dist/qar/generated/qar-info.js.map +1 -0
- package/dist/qar/generated/qodo-task-start-payload.d.ts +54 -0
- package/dist/qar/generated/qodo-task-start-payload.d.ts.map +1 -0
- package/dist/qar/generated/qodo-task-start-payload.js +15 -0
- package/dist/qar/generated/qodo-task-start-payload.js.map +1 -0
- package/dist/qar/ids.d.ts +19 -0
- package/dist/qar/ids.d.ts.map +1 -0
- package/dist/qar/ids.js +11 -0
- package/dist/qar/ids.js.map +1 -0
- package/dist/qar/index.d.ts +24 -0
- package/dist/qar/index.d.ts.map +1 -0
- package/dist/qar/index.js +16 -0
- package/dist/qar/index.js.map +1 -0
- package/dist/qar/info.d.ts +37 -0
- package/dist/qar/info.d.ts.map +1 -0
- package/dist/qar/info.js +17 -0
- package/dist/qar/info.js.map +1 -0
- package/dist/qar/json.d.ts +14 -0
- package/dist/qar/json.d.ts.map +1 -0
- package/dist/qar/json.js +9 -0
- package/dist/qar/json.js.map +1 -0
- package/dist/qar/payloads.d.ts +480 -0
- package/dist/qar/payloads.d.ts.map +1 -0
- package/dist/qar/payloads.js +37 -0
- package/dist/qar/payloads.js.map +1 -0
- package/dist/qar/specs.d.ts +604 -0
- package/dist/qar/specs.d.ts.map +1 -0
- package/dist/qar/specs.js +29 -0
- package/dist/qar/specs.js.map +1 -0
- package/dist/qar/taskEvents.d.ts +25 -0
- package/dist/qar/taskEvents.d.ts.map +1 -0
- package/dist/qar/taskEvents.js +22 -0
- package/dist/qar/taskEvents.js.map +1 -0
- package/dist/qar/trace.d.ts +12 -0
- package/dist/qar/trace.d.ts.map +1 -0
- package/dist/qar/trace.js +12 -0
- package/dist/qar/trace.js.map +1 -0
- package/dist/skills/activation.d.ts +177 -0
- package/dist/skills/activation.d.ts.map +1 -0
- package/dist/skills/activation.js +428 -0
- package/dist/skills/activation.js.map +1 -0
- package/dist/skills/cli/index.browser.d.ts +18 -0
- package/dist/skills/cli/index.browser.d.ts.map +1 -0
- package/dist/skills/cli/index.browser.js +27 -0
- package/dist/skills/cli/index.browser.js.map +1 -0
- package/dist/skills/cli/index.d.ts +37 -0
- package/dist/skills/cli/index.d.ts.map +1 -0
- package/dist/skills/cli/index.js +494 -0
- package/dist/skills/cli/index.js.map +1 -0
- package/dist/skills/events.d.ts +255 -0
- package/dist/skills/events.d.ts.map +1 -0
- package/dist/skills/events.js +224 -0
- package/dist/skills/events.js.map +1 -0
- package/dist/skills/index.d.ts +45 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +34 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/inject.d.ts +57 -0
- package/dist/skills/inject.d.ts.map +1 -0
- package/dist/skills/inject.js +162 -0
- package/dist/skills/inject.js.map +1 -0
- package/dist/skills/lockfile.browser.d.ts +56 -0
- package/dist/skills/lockfile.browser.d.ts.map +1 -0
- package/dist/skills/lockfile.browser.js +55 -0
- package/dist/skills/lockfile.browser.js.map +1 -0
- package/dist/skills/lockfile.d.ts +137 -0
- package/dist/skills/lockfile.d.ts.map +1 -0
- package/dist/skills/lockfile.js +423 -0
- package/dist/skills/lockfile.js.map +1 -0
- package/dist/skills/manager.browser.d.ts +94 -0
- package/dist/skills/manager.browser.d.ts.map +1 -0
- package/dist/skills/manager.browser.js +159 -0
- package/dist/skills/manager.browser.js.map +1 -0
- package/dist/skills/manager.d.ts +362 -0
- package/dist/skills/manager.d.ts.map +1 -0
- package/dist/skills/manager.js +1386 -0
- package/dist/skills/manager.js.map +1 -0
- package/dist/skills/mcp/index.d.ts +15 -0
- package/dist/skills/mcp/index.d.ts.map +1 -0
- package/dist/skills/mcp/index.js +12 -0
- package/dist/skills/mcp/index.js.map +1 -0
- package/dist/skills/mcp/path.browser.d.ts +27 -0
- package/dist/skills/mcp/path.browser.d.ts.map +1 -0
- package/dist/skills/mcp/path.browser.js +33 -0
- package/dist/skills/mcp/path.browser.js.map +1 -0
- package/dist/skills/mcp/path.d.ts +57 -0
- package/dist/skills/mcp/path.d.ts.map +1 -0
- package/dist/skills/mcp/path.js +150 -0
- package/dist/skills/mcp/path.js.map +1 -0
- package/dist/skills/mcp/server.browser.d.ts +32 -0
- package/dist/skills/mcp/server.browser.d.ts.map +1 -0
- package/dist/skills/mcp/server.browser.js +53 -0
- package/dist/skills/mcp/server.browser.js.map +1 -0
- package/dist/skills/mcp/server.d.ts +144 -0
- package/dist/skills/mcp/server.d.ts.map +1 -0
- package/dist/skills/mcp/server.js +841 -0
- package/dist/skills/mcp/server.js.map +1 -0
- package/dist/skills/mcp/types.d.ts +72 -0
- package/dist/skills/mcp/types.d.ts.map +1 -0
- package/dist/skills/mcp/types.js +20 -0
- package/dist/skills/mcp/types.js.map +1 -0
- package/dist/skills/mcp/wireDefs.d.ts +58 -0
- package/dist/skills/mcp/wireDefs.d.ts.map +1 -0
- package/dist/skills/mcp/wireDefs.js +141 -0
- package/dist/skills/mcp/wireDefs.js.map +1 -0
- package/dist/skills/parser.d.ts +63 -0
- package/dist/skills/parser.d.ts.map +1 -0
- package/dist/skills/parser.js +755 -0
- package/dist/skills/parser.js.map +1 -0
- package/dist/skills/prefilter.d.ts +104 -0
- package/dist/skills/prefilter.d.ts.map +1 -0
- package/dist/skills/prefilter.js +398 -0
- package/dist/skills/prefilter.js.map +1 -0
- package/dist/skills/preprocess.d.ts +169 -0
- package/dist/skills/preprocess.d.ts.map +1 -0
- package/dist/skills/preprocess.js +535 -0
- package/dist/skills/preprocess.js.map +1 -0
- package/dist/skills/render.d.ts +83 -0
- package/dist/skills/render.d.ts.map +1 -0
- package/dist/skills/render.js +397 -0
- package/dist/skills/render.js.map +1 -0
- package/dist/skills/sources/index.browser.d.ts +29 -0
- package/dist/skills/sources/index.browser.d.ts.map +1 -0
- package/dist/skills/sources/index.browser.js +16 -0
- package/dist/skills/sources/index.browser.js.map +1 -0
- package/dist/skills/sources/index.d.ts +59 -0
- package/dist/skills/sources/index.d.ts.map +1 -0
- package/dist/skills/sources/index.js +471 -0
- package/dist/skills/sources/index.js.map +1 -0
- package/dist/skills/sources/walk.browser.d.ts +17 -0
- package/dist/skills/sources/walk.browser.d.ts.map +1 -0
- package/dist/skills/sources/walk.browser.js +19 -0
- package/dist/skills/sources/walk.browser.js.map +1 -0
- package/dist/skills/sources/walk.d.ts +68 -0
- package/dist/skills/sources/walk.d.ts.map +1 -0
- package/dist/skills/sources/walk.js +264 -0
- package/dist/skills/sources/walk.js.map +1 -0
- package/dist/skills/substitute.d.ts +87 -0
- package/dist/skills/substitute.d.ts.map +1 -0
- package/dist/skills/substitute.js +322 -0
- package/dist/skills/substitute.js.map +1 -0
- package/dist/skills/testing/SkillKit.browser.d.ts +62 -0
- package/dist/skills/testing/SkillKit.browser.d.ts.map +1 -0
- package/dist/skills/testing/SkillKit.browser.js +41 -0
- package/dist/skills/testing/SkillKit.browser.js.map +1 -0
- package/dist/skills/testing/SkillKit.d.ts +130 -0
- package/dist/skills/testing/SkillKit.d.ts.map +1 -0
- package/dist/skills/testing/SkillKit.js +316 -0
- package/dist/skills/testing/SkillKit.js.map +1 -0
- package/dist/skills/testing/index.d.ts +9 -0
- package/dist/skills/testing/index.d.ts.map +1 -0
- package/dist/skills/testing/index.js +8 -0
- package/dist/skills/testing/index.js.map +1 -0
- package/dist/skills/trust.d.ts +72 -0
- package/dist/skills/trust.d.ts.map +1 -0
- package/dist/skills/trust.js +183 -0
- package/dist/skills/trust.js.map +1 -0
- package/dist/skills/types.d.ts +627 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +85 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/skills/validator.d.ts +95 -0
- package/dist/skills/validator.d.ts.map +1 -0
- package/dist/skills/validator.js +486 -0
- package/dist/skills/validator.js.map +1 -0
- package/dist/tracing/PipelineTracer.d.ts +35 -22
- package/dist/tracing/PipelineTracer.d.ts.map +1 -1
- package/dist/tracing/PipelineTracer.js +106 -61
- package/dist/tracing/PipelineTracer.js.map +1 -1
- package/dist/tracing/SdkTracer.d.ts +63 -61
- package/dist/tracing/SdkTracer.d.ts.map +1 -1
- package/dist/tracing/SdkTracer.js +185 -177
- package/dist/tracing/SdkTracer.js.map +1 -1
- package/dist/tracing/index.d.ts +10 -1
- package/dist/tracing/index.d.ts.map +1 -1
- package/dist/tracing/index.js +9 -0
- package/dist/tracing/index.js.map +1 -1
- package/dist/tracing/types.d.ts +89 -16
- package/dist/tracing/types.d.ts.map +1 -1
- package/dist/tracing/types.js +17 -4
- package/dist/tracing/types.js.map +1 -1
- package/dist/types.d.ts +6 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +10 -20
- package/dist/version.js.map +1 -1
- package/package.json +53 -39
- package/.claude/skills/qodo-agent/SKILL.md +0 -974
- package/.claude/skills/qodo-agent/assets/programmatic-agent.ts +0 -407
- package/.claude/skills/qodo-agent/references/builtin-tools.md +0 -342
- package/.claude/skills/qodo-agent/references/common-issues.md +0 -537
- package/bin/rg +0 -0
- package/dist/api/agent.d.ts +0 -105
- package/dist/api/agent.d.ts.map +0 -1
- package/dist/api/agent.js +0 -963
- package/dist/api/agent.js.map +0 -1
- package/dist/api/analytics.d.ts +0 -43
- package/dist/api/analytics.d.ts.map +0 -1
- package/dist/api/analytics.js +0 -163
- package/dist/api/analytics.js.map +0 -1
- package/dist/api/http.d.ts +0 -5
- package/dist/api/http.d.ts.map +0 -1
- package/dist/api/http.js +0 -62
- package/dist/api/http.js.map +0 -1
- package/dist/api/index.d.ts +0 -12
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js +0 -17
- package/dist/api/index.js.map +0 -1
- package/dist/api/taskTracking.d.ts +0 -54
- package/dist/api/taskTracking.d.ts.map +0 -1
- package/dist/api/taskTracking.js +0 -208
- package/dist/api/taskTracking.js.map +0 -1
- package/dist/api/types.d.ts +0 -93
- package/dist/api/types.d.ts.map +0 -1
- package/dist/api/types.js +0 -2
- package/dist/api/types.js.map +0 -1
- package/dist/api/utils.d.ts +0 -8
- package/dist/api/utils.d.ts.map +0 -1
- package/dist/api/utils.js +0 -63
- package/dist/api/utils.js.map +0 -1
- package/dist/api/websocket.d.ts +0 -203
- package/dist/api/websocket.d.ts.map +0 -1
- package/dist/api/websocket.js +0 -1166
- package/dist/api/websocket.js.map +0 -1
- package/dist/bin/install-skill.d.ts +0 -14
- package/dist/bin/install-skill.d.ts.map +0 -1
- package/dist/bin/install-skill.js +0 -125
- package/dist/bin/install-skill.js.map +0 -1
- package/dist/bin/run-helpers.d.ts +0 -34
- package/dist/bin/run-helpers.d.ts.map +0 -1
- package/dist/bin/run-helpers.js +0 -186
- package/dist/bin/run-helpers.js.map +0 -1
- package/dist/bin/run.d.ts +0 -13
- package/dist/bin/run.d.ts.map +0 -1
- package/dist/bin/run.js +0 -57
- package/dist/bin/run.js.map +0 -1
- package/dist/clients/index.d.ts +0 -10
- package/dist/clients/index.d.ts.map +0 -1
- package/dist/clients/index.js +0 -8
- package/dist/clients/index.js.map +0 -1
- package/dist/clients/info/InfoClient.d.ts +0 -37
- package/dist/clients/info/InfoClient.d.ts.map +0 -1
- package/dist/clients/info/InfoClient.js +0 -69
- package/dist/clients/info/InfoClient.js.map +0 -1
- package/dist/clients/info/index.d.ts +0 -4
- package/dist/clients/info/index.d.ts.map +0 -1
- package/dist/clients/info/index.js +0 -2
- package/dist/clients/info/index.js.map +0 -1
- package/dist/clients/info/types.d.ts +0 -21
- package/dist/clients/info/types.d.ts.map +0 -1
- package/dist/clients/info/types.js +0 -2
- package/dist/clients/info/types.js.map +0 -1
- package/dist/clients/sessions/SessionsClient.d.ts +0 -34
- package/dist/clients/sessions/SessionsClient.d.ts.map +0 -1
- package/dist/clients/sessions/SessionsClient.js +0 -71
- package/dist/clients/sessions/SessionsClient.js.map +0 -1
- package/dist/clients/sessions/index.d.ts +0 -4
- package/dist/clients/sessions/index.d.ts.map +0 -1
- package/dist/clients/sessions/index.js +0 -2
- package/dist/clients/sessions/index.js.map +0 -1
- package/dist/clients/sessions/types.d.ts +0 -20
- package/dist/clients/sessions/types.d.ts.map +0 -1
- package/dist/clients/sessions/types.js +0 -2
- package/dist/clients/sessions/types.js.map +0 -1
- package/dist/clients/tools/ToolsClient.d.ts +0 -39
- package/dist/clients/tools/ToolsClient.d.ts.map +0 -1
- package/dist/clients/tools/ToolsClient.js +0 -95
- package/dist/clients/tools/ToolsClient.js.map +0 -1
- package/dist/clients/tools/index.d.ts +0 -4
- package/dist/clients/tools/index.d.ts.map +0 -1
- package/dist/clients/tools/index.js +0 -2
- package/dist/clients/tools/index.js.map +0 -1
- package/dist/clients/tools/types.d.ts +0 -14
- package/dist/clients/tools/types.d.ts.map +0 -1
- package/dist/clients/tools/types.js +0 -2
- package/dist/clients/tools/types.js.map +0 -1
- package/dist/config/ConfigManager.d.ts +0 -43
- package/dist/config/ConfigManager.d.ts.map +0 -1
- package/dist/config/ConfigManager.js +0 -472
- package/dist/config/ConfigManager.js.map +0 -1
- package/dist/config/index.d.ts +0 -6
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -7
- package/dist/config/index.js.map +0 -1
- package/dist/config/urlConfig.d.ts +0 -15
- package/dist/config/urlConfig.d.ts.map +0 -1
- package/dist/config/urlConfig.js +0 -75
- package/dist/config/urlConfig.js.map +0 -1
- package/dist/constants/errors.d.ts +0 -2
- package/dist/constants/errors.d.ts.map +0 -1
- package/dist/constants/errors.js +0 -2
- package/dist/constants/errors.js.map +0 -1
- package/dist/constants/index.d.ts +0 -7
- package/dist/constants/index.d.ts.map +0 -1
- package/dist/constants/index.js +0 -11
- package/dist/constants/index.js.map +0 -1
- package/dist/constants/tools.d.ts +0 -4
- package/dist/constants/tools.d.ts.map +0 -1
- package/dist/constants/tools.js +0 -4
- package/dist/constants/tools.js.map +0 -1
- package/dist/constants/versions.d.ts +0 -2
- package/dist/constants/versions.d.ts.map +0 -1
- package/dist/constants/versions.js +0 -2
- package/dist/constants/versions.js.map +0 -1
- package/dist/context/buildUserContext.d.ts +0 -18
- package/dist/context/buildUserContext.d.ts.map +0 -1
- package/dist/context/buildUserContext.js +0 -34
- package/dist/context/buildUserContext.js.map +0 -1
- package/dist/context/index.d.ts +0 -9
- package/dist/context/index.d.ts.map +0 -1
- package/dist/context/index.js +0 -9
- package/dist/context/index.js.map +0 -1
- package/dist/context/messageManager.d.ts +0 -42
- package/dist/context/messageManager.d.ts.map +0 -1
- package/dist/context/messageManager.js +0 -322
- package/dist/context/messageManager.js.map +0 -1
- package/dist/context/taskFocus.d.ts +0 -2
- package/dist/context/taskFocus.d.ts.map +0 -1
- package/dist/context/taskFocus.js +0 -26
- package/dist/context/taskFocus.js.map +0 -1
- package/dist/context/userInput.d.ts +0 -3
- package/dist/context/userInput.d.ts.map +0 -1
- package/dist/context/userInput.js +0 -20
- package/dist/context/userInput.js.map +0 -1
- package/dist/mcp/MCPManager.d.ts +0 -109
- package/dist/mcp/MCPManager.d.ts.map +0 -1
- package/dist/mcp/MCPManager.js +0 -592
- package/dist/mcp/MCPManager.js.map +0 -1
- package/dist/mcp/approvedTools.d.ts +0 -4
- package/dist/mcp/approvedTools.d.ts.map +0 -1
- package/dist/mcp/approvedTools.js +0 -19
- package/dist/mcp/approvedTools.js.map +0 -1
- package/dist/mcp/baseServer.d.ts +0 -75
- package/dist/mcp/baseServer.d.ts.map +0 -1
- package/dist/mcp/baseServer.js +0 -107
- package/dist/mcp/baseServer.js.map +0 -1
- package/dist/mcp/builtinServers.d.ts +0 -15
- package/dist/mcp/builtinServers.d.ts.map +0 -1
- package/dist/mcp/builtinServers.js +0 -141
- package/dist/mcp/builtinServers.js.map +0 -1
- package/dist/mcp/dynamicBEServer.d.ts +0 -20
- package/dist/mcp/dynamicBEServer.d.ts.map +0 -1
- package/dist/mcp/dynamicBEServer.js +0 -52
- package/dist/mcp/dynamicBEServer.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -18
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js +0 -23
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/mcpInitialization.d.ts +0 -2
- package/dist/mcp/mcpInitialization.d.ts.map +0 -1
- package/dist/mcp/mcpInitialization.js +0 -56
- package/dist/mcp/mcpInitialization.js.map +0 -1
- package/dist/mcp/servers/filesystem.d.ts +0 -44
- package/dist/mcp/servers/filesystem.d.ts.map +0 -1
- package/dist/mcp/servers/filesystem.js +0 -776
- package/dist/mcp/servers/filesystem.js.map +0 -1
- package/dist/mcp/servers/git.d.ts +0 -18
- package/dist/mcp/servers/git.d.ts.map +0 -1
- package/dist/mcp/servers/git.js +0 -441
- package/dist/mcp/servers/git.js.map +0 -1
- package/dist/mcp/servers/ripgrep.d.ts +0 -39
- package/dist/mcp/servers/ripgrep.d.ts.map +0 -1
- package/dist/mcp/servers/ripgrep.js +0 -550
- package/dist/mcp/servers/ripgrep.js.map +0 -1
- package/dist/mcp/servers/shell.d.ts +0 -20
- package/dist/mcp/servers/shell.d.ts.map +0 -1
- package/dist/mcp/servers/shell.js +0 -519
- package/dist/mcp/servers/shell.js.map +0 -1
- package/dist/mcp/serversRegistry.d.ts +0 -55
- package/dist/mcp/serversRegistry.d.ts.map +0 -1
- package/dist/mcp/serversRegistry.js +0 -416
- package/dist/mcp/serversRegistry.js.map +0 -1
- package/dist/mcp/toolProcessor.d.ts +0 -82
- package/dist/mcp/toolProcessor.d.ts.map +0 -1
- package/dist/mcp/toolProcessor.js +0 -392
- package/dist/mcp/toolProcessor.js.map +0 -1
- package/dist/mcp/types.d.ts +0 -29
- package/dist/mcp/types.d.ts.map +0 -1
- package/dist/mcp/types.js +0 -2
- package/dist/mcp/types.js.map +0 -1
- package/dist/messages/index.d.ts +0 -8
- package/dist/messages/index.d.ts.map +0 -1
- package/dist/messages/index.js +0 -7
- package/dist/messages/index.js.map +0 -1
- package/dist/messages/openai.d.ts +0 -26
- package/dist/messages/openai.d.ts.map +0 -1
- package/dist/messages/openai.js +0 -55
- package/dist/messages/openai.js.map +0 -1
- package/dist/messages/types.d.ts +0 -73
- package/dist/messages/types.d.ts.map +0 -1
- package/dist/messages/types.js +0 -78
- package/dist/messages/types.js.map +0 -1
- package/dist/parser/index.d.ts +0 -72
- package/dist/parser/index.d.ts.map +0 -1
- package/dist/parser/index.js +0 -967
- package/dist/parser/index.js.map +0 -1
- package/dist/parser/types.d.ts +0 -153
- package/dist/parser/types.d.ts.map +0 -1
- package/dist/parser/types.js +0 -6
- package/dist/parser/types.js.map +0 -1
- package/dist/parser/utils.d.ts +0 -18
- package/dist/parser/utils.d.ts.map +0 -1
- package/dist/parser/utils.js +0 -64
- package/dist/parser/utils.js.map +0 -1
- package/dist/sdk/QodoSDK.d.ts +0 -218
- package/dist/sdk/QodoSDK.d.ts.map +0 -1
- package/dist/sdk/QodoSDK.js +0 -1115
- package/dist/sdk/QodoSDK.js.map +0 -1
- package/dist/sdk/artifacts.d.ts +0 -156
- package/dist/sdk/artifacts.d.ts.map +0 -1
- package/dist/sdk/artifacts.js +0 -166
- package/dist/sdk/artifacts.js.map +0 -1
- package/dist/sdk/bootstrap.d.ts +0 -16
- package/dist/sdk/bootstrap.d.ts.map +0 -1
- package/dist/sdk/bootstrap.js +0 -28
- package/dist/sdk/bootstrap.js.map +0 -1
- package/dist/sdk/builders.d.ts +0 -54
- package/dist/sdk/builders.d.ts.map +0 -1
- package/dist/sdk/builders.js +0 -117
- package/dist/sdk/builders.js.map +0 -1
- package/dist/sdk/defaults.d.ts +0 -11
- package/dist/sdk/defaults.d.ts.map +0 -1
- package/dist/sdk/defaults.js +0 -39
- package/dist/sdk/defaults.js.map +0 -1
- package/dist/sdk/discovery.d.ts +0 -2
- package/dist/sdk/discovery.d.ts.map +0 -1
- package/dist/sdk/discovery.js +0 -25
- package/dist/sdk/discovery.js.map +0 -1
- package/dist/sdk/events.d.ts +0 -269
- package/dist/sdk/events.d.ts.map +0 -1
- package/dist/sdk/events.js +0 -69
- package/dist/sdk/events.js.map +0 -1
- package/dist/sdk/exit-expression.d.ts +0 -13
- package/dist/sdk/exit-expression.d.ts.map +0 -1
- package/dist/sdk/exit-expression.js +0 -35
- package/dist/sdk/exit-expression.js.map +0 -1
- package/dist/sdk/index.d.ts +0 -17
- package/dist/sdk/index.d.ts.map +0 -1
- package/dist/sdk/index.js +0 -17
- package/dist/sdk/index.js.map +0 -1
- package/dist/sdk/middleware.d.ts +0 -59
- package/dist/sdk/middleware.d.ts.map +0 -1
- package/dist/sdk/middleware.js +0 -69
- package/dist/sdk/middleware.js.map +0 -1
- package/dist/sdk/pipeline/PipelineBuilder.d.ts +0 -79
- package/dist/sdk/pipeline/PipelineBuilder.d.ts.map +0 -1
- package/dist/sdk/pipeline/PipelineBuilder.js +0 -129
- package/dist/sdk/pipeline/PipelineBuilder.js.map +0 -1
- package/dist/sdk/pipeline/PipelineRunner.d.ts +0 -28
- package/dist/sdk/pipeline/PipelineRunner.d.ts.map +0 -1
- package/dist/sdk/pipeline/PipelineRunner.js +0 -326
- package/dist/sdk/pipeline/PipelineRunner.js.map +0 -1
- package/dist/sdk/pipeline/compiler.d.ts +0 -24
- package/dist/sdk/pipeline/compiler.d.ts.map +0 -1
- package/dist/sdk/pipeline/compiler.js +0 -199
- package/dist/sdk/pipeline/compiler.js.map +0 -1
- package/dist/sdk/pipeline/declarative.d.ts +0 -34
- package/dist/sdk/pipeline/declarative.d.ts.map +0 -1
- package/dist/sdk/pipeline/declarative.js +0 -9
- package/dist/sdk/pipeline/declarative.js.map +0 -1
- package/dist/sdk/pipeline/index.d.ts +0 -20
- package/dist/sdk/pipeline/index.d.ts.map +0 -1
- package/dist/sdk/pipeline/index.js +0 -19
- package/dist/sdk/pipeline/index.js.map +0 -1
- package/dist/sdk/pipeline/types.d.ts +0 -93
- package/dist/sdk/pipeline/types.d.ts.map +0 -1
- package/dist/sdk/pipeline/types.js +0 -10
- package/dist/sdk/pipeline/types.js.map +0 -1
- package/dist/sdk/policies.d.ts +0 -163
- package/dist/sdk/policies.d.ts.map +0 -1
- package/dist/sdk/policies.js +0 -243
- package/dist/sdk/policies.js.map +0 -1
- package/dist/sdk/runner/AgentRunner.d.ts +0 -22
- package/dist/sdk/runner/AgentRunner.d.ts.map +0 -1
- package/dist/sdk/runner/AgentRunner.js +0 -222
- package/dist/sdk/runner/AgentRunner.js.map +0 -1
- package/dist/sdk/runner/finalize.d.ts +0 -56
- package/dist/sdk/runner/finalize.d.ts.map +0 -1
- package/dist/sdk/runner/finalize.js +0 -155
- package/dist/sdk/runner/finalize.js.map +0 -1
- package/dist/sdk/runner/formats.d.ts +0 -7
- package/dist/sdk/runner/formats.d.ts.map +0 -1
- package/dist/sdk/runner/formats.js +0 -76
- package/dist/sdk/runner/formats.js.map +0 -1
- package/dist/sdk/runner/index.d.ts +0 -9
- package/dist/sdk/runner/index.d.ts.map +0 -1
- package/dist/sdk/runner/index.js +0 -9
- package/dist/sdk/runner/index.js.map +0 -1
- package/dist/sdk/runner/progress.d.ts +0 -3
- package/dist/sdk/runner/progress.d.ts.map +0 -1
- package/dist/sdk/runner/progress.js +0 -16
- package/dist/sdk/runner/progress.js.map +0 -1
- package/dist/sdk/schemas.d.ts +0 -72
- package/dist/sdk/schemas.d.ts.map +0 -1
- package/dist/sdk/schemas.js +0 -282
- package/dist/sdk/schemas.js.map +0 -1
- package/dist/sdk/trigger-context.d.ts +0 -24
- package/dist/sdk/trigger-context.d.ts.map +0 -1
- package/dist/sdk/trigger-context.js +0 -136
- package/dist/sdk/trigger-context.js.map +0 -1
- package/dist/session/SessionContext.d.ts +0 -89
- package/dist/session/SessionContext.d.ts.map +0 -1
- package/dist/session/SessionContext.js +0 -410
- package/dist/session/SessionContext.js.map +0 -1
- package/dist/session/environment.d.ts +0 -52
- package/dist/session/environment.d.ts.map +0 -1
- package/dist/session/environment.js +0 -27
- package/dist/session/environment.js.map +0 -1
- package/dist/session/history.d.ts +0 -18
- package/dist/session/history.d.ts.map +0 -1
- package/dist/session/history.js +0 -68
- package/dist/session/history.js.map +0 -1
- package/dist/session/index.d.ts +0 -10
- package/dist/session/index.d.ts.map +0 -1
- package/dist/session/index.js +0 -9
- package/dist/session/index.js.map +0 -1
- package/dist/session/serverData.d.ts +0 -38
- package/dist/session/serverData.d.ts.map +0 -1
- package/dist/session/serverData.js +0 -261
- package/dist/session/serverData.js.map +0 -1
- package/dist/tracing/pipelineHelpers.d.ts +0 -29
- package/dist/tracing/pipelineHelpers.d.ts.map +0 -1
- package/dist/tracing/pipelineHelpers.js +0 -224
- package/dist/tracing/pipelineHelpers.js.map +0 -1
- package/dist/tracking/Tracker.d.ts +0 -55
- package/dist/tracking/Tracker.d.ts.map +0 -1
- package/dist/tracking/Tracker.js +0 -217
- package/dist/tracking/Tracker.js.map +0 -1
- package/dist/tracking/index.d.ts +0 -8
- package/dist/tracking/index.d.ts.map +0 -1
- package/dist/tracking/index.js +0 -8
- package/dist/tracking/index.js.map +0 -1
- package/dist/tracking/schemas.d.ts +0 -292
- package/dist/tracking/schemas.d.ts.map +0 -1
- package/dist/tracking/schemas.js +0 -91
- package/dist/tracking/schemas.js.map +0 -1
- package/dist/utils/extractSetFlags.d.ts +0 -6
- package/dist/utils/extractSetFlags.d.ts.map +0 -1
- package/dist/utils/extractSetFlags.js +0 -16
- package/dist/utils/extractSetFlags.js.map +0 -1
- package/dist/utils/formatTimeAgo.d.ts +0 -2
- package/dist/utils/formatTimeAgo.d.ts.map +0 -1
- package/dist/utils/formatTimeAgo.js +0 -20
- package/dist/utils/formatTimeAgo.js.map +0 -1
- package/dist/utils/index.d.ts +0 -12
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -12
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/machineId.d.ts +0 -14
- package/dist/utils/machineId.d.ts.map +0 -1
- package/dist/utils/machineId.js +0 -66
- package/dist/utils/machineId.js.map +0 -1
- package/dist/utils/pathUtils.d.ts +0 -22
- package/dist/utils/pathUtils.d.ts.map +0 -1
- package/dist/utils/pathUtils.js +0 -54
- package/dist/utils/pathUtils.js.map +0 -1
- package/scripts/download-ripgrep.js +0 -269
package/dist/sdk/middleware.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Public Tool Middleware API for SDK consumers.
|
|
3
|
-
*
|
|
4
|
-
* Middleware hooks run around tool execution, allowing consumers to inspect,
|
|
5
|
-
* modify, or log tool calls and results without touching internal code.
|
|
6
|
-
*
|
|
7
|
-
* Safety guarantees:
|
|
8
|
-
* - Protected fields (identifier, server_name, session_id) cannot be overwritten
|
|
9
|
-
* - User middleware is wrapped in a configurable timeout (default 10 s)
|
|
10
|
-
* - Errors in middleware are caught and reported, never crash the run
|
|
11
|
-
*/
|
|
12
|
-
/** Default timeout for user-registered middleware hooks (ms). */
|
|
13
|
-
export const MIDDLEWARE_TIMEOUT_MS = 10_000;
|
|
14
|
-
/**
|
|
15
|
-
* Fields on ToolData that middleware is NOT allowed to overwrite.
|
|
16
|
-
* These are set by the engine and are essential for routing / identity.
|
|
17
|
-
*/
|
|
18
|
-
export const PROTECTED_TOOL_FIELDS = new Set([
|
|
19
|
-
'identifier',
|
|
20
|
-
'server_name',
|
|
21
|
-
'session_id',
|
|
22
|
-
]);
|
|
23
|
-
/**
|
|
24
|
-
* Error class for middleware failures.
|
|
25
|
-
* Contains the middleware name and phase for diagnostics.
|
|
26
|
-
*/
|
|
27
|
-
export class ToolMiddlewareError extends Error {
|
|
28
|
-
middlewareName;
|
|
29
|
-
phase;
|
|
30
|
-
cause;
|
|
31
|
-
constructor(message, middlewareName, phase, cause) {
|
|
32
|
-
super(message);
|
|
33
|
-
this.middlewareName = middlewareName;
|
|
34
|
-
this.phase = phase;
|
|
35
|
-
this.cause = cause;
|
|
36
|
-
this.name = 'ToolMiddlewareError';
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Strip protected fields from a partial ToolData override.
|
|
41
|
-
*/
|
|
42
|
-
export function stripProtectedFields(partial) {
|
|
43
|
-
const cleaned = { ...partial };
|
|
44
|
-
for (const field of PROTECTED_TOOL_FIELDS) {
|
|
45
|
-
delete cleaned[field];
|
|
46
|
-
}
|
|
47
|
-
return cleaned;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Wrap an async function with a timeout.
|
|
51
|
-
* Rejects with ToolMiddlewareError if the timeout expires.
|
|
52
|
-
*/
|
|
53
|
-
export function withTimeout(fn, timeoutMs, middlewareName, phase) {
|
|
54
|
-
return new Promise((resolve, reject) => {
|
|
55
|
-
const timer = setTimeout(() => {
|
|
56
|
-
reject(new ToolMiddlewareError(`Middleware "${middlewareName}" timed out after ${timeoutMs}ms in ${phase}`, middlewareName, phase));
|
|
57
|
-
}, timeoutMs);
|
|
58
|
-
Promise.resolve(fn())
|
|
59
|
-
.then((result) => {
|
|
60
|
-
clearTimeout(timer);
|
|
61
|
-
resolve(result);
|
|
62
|
-
})
|
|
63
|
-
.catch((err) => {
|
|
64
|
-
clearTimeout(timer);
|
|
65
|
-
reject(err);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=middleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/sdk/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,YAAY;IACZ,aAAa;IACb,YAAY;CACb,CAAC,CAAC;AAyBH;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAG1B;IACA;IACA;IAJlB,YACE,OAAe,EACC,cAAsB,EACtB,KAAmC,EACnC,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,mBAAc,GAAd,cAAc,CAAQ;QACtB,UAAK,GAAL,KAAK,CAA8B;QACnC,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA0B;IAC7D,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,qBAAqB,EAAE,CAAC;QAC1C,OAAQ,OAAe,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,EAAwB,EACxB,SAAiB,EACjB,cAAsB,EACtB,KAAmC;IAEnC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CACJ,IAAI,mBAAmB,CACrB,eAAe,cAAc,qBAAqB,SAAS,SAAS,KAAK,EAAE,EAC3E,cAAc,EACd,KAAK,CACN,CACF,CAAC;QACJ,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;aAClB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fluent builder for constructing typed pipelines.
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* const pipeline = sdkPipeline<{ repo: string }>()
|
|
6
|
-
* .step('lint', async ({ state, run }) => {
|
|
7
|
-
* const result = await run('lint', { args: { path: state.repo } });
|
|
8
|
-
* return { lintOutput: result.result.final_output };
|
|
9
|
-
* })
|
|
10
|
-
* .step('review', async ({ state, run }) => {
|
|
11
|
-
* const result = await run('review', { extraInstructions: state.lintOutput });
|
|
12
|
-
* return { reviewOutput: result.result.final_output };
|
|
13
|
-
* })
|
|
14
|
-
* .build();
|
|
15
|
-
*/
|
|
16
|
-
import type { PipelineEntry, StepFn, GateFn, ErrorStrategy } from './types.js';
|
|
17
|
-
export interface StepOptions<TState, TOut> {
|
|
18
|
-
/** Error recovery strategy (default: 'throw'). */
|
|
19
|
-
onError?: ErrorStrategy<TState, TOut>;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Immutable pipeline builder that tracks accumulated state type TState.
|
|
23
|
-
*
|
|
24
|
-
* Each .step() call produces a new builder whose TState is the intersection
|
|
25
|
-
* of the previous state and the step's output type. This gives full type
|
|
26
|
-
* inference through the chain without explicit generics at each step.
|
|
27
|
-
*/
|
|
28
|
-
export declare class PipelineBuilder<TState extends Record<string, any>, TInit extends Record<string, any> = TState> {
|
|
29
|
-
constructor(entries?: PipelineEntry<TState>[]);
|
|
30
|
-
/**
|
|
31
|
-
* Add a sequential step to the pipeline.
|
|
32
|
-
*
|
|
33
|
-
* The step function receives the accumulated state and must return an
|
|
34
|
-
* object whose keys are merged into the state for subsequent steps.
|
|
35
|
-
*/
|
|
36
|
-
step<TOut extends Record<string, any>>(name: string, fn: StepFn<TState, TOut>, options?: StepOptions<TState, TOut>): PipelineBuilder<TState & TOut, TInit>;
|
|
37
|
-
/**
|
|
38
|
-
* Add a group of steps that execute in parallel.
|
|
39
|
-
*
|
|
40
|
-
* All steps in the group receive the same snapshot of state. Their
|
|
41
|
-
* outputs are merged (Object.assign order matches declaration order).
|
|
42
|
-
*/
|
|
43
|
-
parallel<TOut extends Record<string, any>>(steps: Array<{
|
|
44
|
-
name: string;
|
|
45
|
-
fn: StepFn<TState, TOut>;
|
|
46
|
-
onError?: ErrorStrategy<TState, TOut>;
|
|
47
|
-
}>): PipelineBuilder<TState & TOut, TInit>;
|
|
48
|
-
/**
|
|
49
|
-
* Add a pipeline-level gate.
|
|
50
|
-
*
|
|
51
|
-
* When the predicate returns false, all subsequent entries are skipped.
|
|
52
|
-
*/
|
|
53
|
-
gate(predicate: GateFn<TState>, options?: {
|
|
54
|
-
name?: string;
|
|
55
|
-
}): PipelineBuilder<TState, TInit>;
|
|
56
|
-
/**
|
|
57
|
-
* Add a pipeline-level branch (if/else fork).
|
|
58
|
-
*
|
|
59
|
-
* When the condition returns true, the `true` path executes;
|
|
60
|
-
* otherwise the optional `false` path executes.
|
|
61
|
-
* Both branches must produce the same output type `TOut`.
|
|
62
|
-
*/
|
|
63
|
-
branch<TOut extends Record<string, any>>(condition: GateFn<TState>, paths: {
|
|
64
|
-
true: (b: PipelineBuilder<TState, TState>) => PipelineBuilder<TState & TOut, TState>;
|
|
65
|
-
false?: (b: PipelineBuilder<TState, TState>) => PipelineBuilder<TState & TOut, TState>;
|
|
66
|
-
}, options?: {
|
|
67
|
-
name?: string;
|
|
68
|
-
}): PipelineBuilder<TState & TOut, TInit>;
|
|
69
|
-
/**
|
|
70
|
-
* Finalize the pipeline definition.
|
|
71
|
-
*
|
|
72
|
-
* Returns the frozen list of entries for the runner to execute.
|
|
73
|
-
*/
|
|
74
|
-
build(): Pipeline<TState, TInit>;
|
|
75
|
-
}
|
|
76
|
-
export declare class Pipeline<TState extends Record<string, any>, TInit extends Record<string, any> = TState> {
|
|
77
|
-
constructor(entries: readonly PipelineEntry<TState>[]);
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=PipelineBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PipelineBuilder.d.ts","sourceRoot":"","sources":["../../../src/sdk/pipeline/PipelineBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAKV,aAAa,EACb,MAAM,EACN,MAAM,EACN,aAAa,EACd,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,WAAW,CAAC,MAAM,EAAE,IAAI;IACvC,kDAAkD;IAClD,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CACvC;AAMD;;;;;;GAMG;AACH,qBAAa,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;gBAI7F,OAAO,GAAE,aAAa,CAAC,MAAM,CAAC,EAAO;IAIjD;;;;;OAKG;IACH,IAAI,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EACxB,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GAClC,eAAe,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC;IAaxC;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvC,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KACvC,CAAC,GACD,eAAe,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC;IAexC;;;;OAIG;IACH,IAAI,CACF,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EACzB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1B,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;IAYjC;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EACzB,KAAK,EAAE;QACL,IAAI,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,eAAe,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;QACrF,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,eAAe,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;KACxF,EACD,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1B,eAAe,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC;IAmBxC;;;;OAIG;IACH,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;CAGjC;AAMD,qBAAa,QAAQ,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;gBAItF,OAAO,EAAE,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE;CAGtD"}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fluent builder for constructing typed pipelines.
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* const pipeline = sdkPipeline<{ repo: string }>()
|
|
6
|
-
* .step('lint', async ({ state, run }) => {
|
|
7
|
-
* const result = await run('lint', { args: { path: state.repo } });
|
|
8
|
-
* return { lintOutput: result.result.final_output };
|
|
9
|
-
* })
|
|
10
|
-
* .step('review', async ({ state, run }) => {
|
|
11
|
-
* const result = await run('review', { extraInstructions: state.lintOutput });
|
|
12
|
-
* return { reviewOutput: result.result.final_output };
|
|
13
|
-
* })
|
|
14
|
-
* .build();
|
|
15
|
-
*/
|
|
16
|
-
// ---------------------------------------------------------------------------
|
|
17
|
-
// Builder
|
|
18
|
-
// ---------------------------------------------------------------------------
|
|
19
|
-
/**
|
|
20
|
-
* Immutable pipeline builder that tracks accumulated state type TState.
|
|
21
|
-
*
|
|
22
|
-
* Each .step() call produces a new builder whose TState is the intersection
|
|
23
|
-
* of the previous state and the step's output type. This gives full type
|
|
24
|
-
* inference through the chain without explicit generics at each step.
|
|
25
|
-
*/
|
|
26
|
-
export class PipelineBuilder {
|
|
27
|
-
/** @internal */
|
|
28
|
-
_entries;
|
|
29
|
-
constructor(entries = []) {
|
|
30
|
-
this._entries = entries;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Add a sequential step to the pipeline.
|
|
34
|
-
*
|
|
35
|
-
* The step function receives the accumulated state and must return an
|
|
36
|
-
* object whose keys are merged into the state for subsequent steps.
|
|
37
|
-
*/
|
|
38
|
-
step(name, fn, options) {
|
|
39
|
-
const entry = {
|
|
40
|
-
name,
|
|
41
|
-
fn,
|
|
42
|
-
onError: options?.onError ?? 'throw',
|
|
43
|
-
};
|
|
44
|
-
// Cast is safe: we widen TState to TState & TOut going forward
|
|
45
|
-
return new PipelineBuilder([
|
|
46
|
-
...this._entries,
|
|
47
|
-
entry,
|
|
48
|
-
]);
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Add a group of steps that execute in parallel.
|
|
52
|
-
*
|
|
53
|
-
* All steps in the group receive the same snapshot of state. Their
|
|
54
|
-
* outputs are merged (Object.assign order matches declaration order).
|
|
55
|
-
*/
|
|
56
|
-
parallel(steps) {
|
|
57
|
-
const group = {
|
|
58
|
-
kind: 'parallel',
|
|
59
|
-
steps: steps.map((s) => ({
|
|
60
|
-
name: s.name,
|
|
61
|
-
fn: s.fn,
|
|
62
|
-
onError: s.onError ?? 'throw',
|
|
63
|
-
})),
|
|
64
|
-
};
|
|
65
|
-
return new PipelineBuilder([
|
|
66
|
-
...this._entries,
|
|
67
|
-
group,
|
|
68
|
-
]);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Add a pipeline-level gate.
|
|
72
|
-
*
|
|
73
|
-
* When the predicate returns false, all subsequent entries are skipped.
|
|
74
|
-
*/
|
|
75
|
-
gate(predicate, options) {
|
|
76
|
-
const entry = {
|
|
77
|
-
kind: 'gate',
|
|
78
|
-
name: options?.name ?? `gate-${this._entries.length}`,
|
|
79
|
-
fn: predicate,
|
|
80
|
-
};
|
|
81
|
-
return new PipelineBuilder([
|
|
82
|
-
...this._entries,
|
|
83
|
-
entry,
|
|
84
|
-
]);
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Add a pipeline-level branch (if/else fork).
|
|
88
|
-
*
|
|
89
|
-
* When the condition returns true, the `true` path executes;
|
|
90
|
-
* otherwise the optional `false` path executes.
|
|
91
|
-
* Both branches must produce the same output type `TOut`.
|
|
92
|
-
*/
|
|
93
|
-
branch(condition, paths, options) {
|
|
94
|
-
const trueBranch = paths.true(new PipelineBuilder());
|
|
95
|
-
const falseBranch = paths.false
|
|
96
|
-
? paths.false(new PipelineBuilder())
|
|
97
|
-
: new PipelineBuilder();
|
|
98
|
-
const entry = {
|
|
99
|
-
kind: 'branch',
|
|
100
|
-
name: options?.name ?? `branch-${this._entries.length}`,
|
|
101
|
-
condition,
|
|
102
|
-
trueEntries: Object.freeze([...trueBranch._entries]),
|
|
103
|
-
falseEntries: Object.freeze([...falseBranch._entries]),
|
|
104
|
-
};
|
|
105
|
-
return new PipelineBuilder([
|
|
106
|
-
...this._entries,
|
|
107
|
-
entry,
|
|
108
|
-
]);
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Finalize the pipeline definition.
|
|
112
|
-
*
|
|
113
|
-
* Returns the frozen list of entries for the runner to execute.
|
|
114
|
-
*/
|
|
115
|
-
build() {
|
|
116
|
-
return new Pipeline(Object.freeze([...this._entries]));
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
// ---------------------------------------------------------------------------
|
|
120
|
-
// Pipeline (frozen, executable definition)
|
|
121
|
-
// ---------------------------------------------------------------------------
|
|
122
|
-
export class Pipeline {
|
|
123
|
-
/** @internal */
|
|
124
|
-
entries;
|
|
125
|
-
constructor(entries) {
|
|
126
|
-
this.entries = entries;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=PipelineBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PipelineBuilder.js","sourceRoot":"","sources":["../../../src/sdk/pipeline/PipelineBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsBH,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,OAAO,eAAe;IAC1B,gBAAgB;IACP,QAAQ,CAA0B;IAE3C,YAAY,UAAmC,EAAE;QAC/C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,IAAI,CACF,IAAY,EACZ,EAAwB,EACxB,OAAmC;QAEnC,MAAM,KAAK,GAA+B;YACxC,IAAI;YACJ,EAAE;YACF,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO;SACrC,CAAC;QACF,+DAA+D;QAC/D,OAAO,IAAI,eAAe,CAAuB;YAC/C,GAAG,IAAI,CAAC,QAAiB;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CACN,KAIE;QAEF,MAAM,KAAK,GAA0B;YACnC,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,EAAE,EAAE,CAAC,CAAC,EAAyB;gBAC/B,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO;aAC9B,CAAC,CAAC;SACJ,CAAC;QACF,OAAO,IAAI,eAAe,CAAuB;YAC/C,GAAG,IAAI,CAAC,QAAiB;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,IAAI,CACF,SAAyB,EACzB,OAA2B;QAE3B,MAAM,KAAK,GAAyB;YAClC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACrD,EAAE,EAAE,SAAS;SACd,CAAC;QACF,OAAO,IAAI,eAAe,CAAgB;YACxC,GAAG,IAAI,CAAC,QAAiB;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CACJ,SAAyB,EACzB,KAGC,EACD,OAA2B;QAE3B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,eAAe,EAAkB,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK;YAC7B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,eAAe,EAAkB,CAAC;YACpD,CAAC,CAAC,IAAI,eAAe,EAAkB,CAAC;QAE1C,MAAM,KAAK,GAA2B;YACpC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,UAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACvD,SAAS;YACT,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAA4B;YAC/E,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAA4B;SAClF,CAAC;QACF,OAAO,IAAI,eAAe,CAAuB;YAC/C,GAAG,IAAI,CAAC,QAAiB;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,OAAO,IAAI,QAAQ,CAAgB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAA4B,CAAC,CAAC;IACnG,CAAC;CACF;AAED,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAE9E,MAAM,OAAO,QAAQ;IACnB,gBAAgB;IACP,OAAO,CAAmC;IAEnD,YAAY,OAAyC;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Executes a Pipeline definition against a QodoSDK instance.
|
|
3
|
-
*
|
|
4
|
-
* The runner is intentionally decoupled from the builder so that a single
|
|
5
|
-
* pipeline definition can be executed multiple times with different SDK
|
|
6
|
-
* instances and initial states.
|
|
7
|
-
*/
|
|
8
|
-
import type { QodoSDK } from '../QodoSDK.js';
|
|
9
|
-
import type { Pipeline } from './PipelineBuilder.js';
|
|
10
|
-
import type { PipelineResult } from './types.js';
|
|
11
|
-
import type { QodoSdkEvent } from '../events.js';
|
|
12
|
-
export declare class PipelineExecutionError extends Error {
|
|
13
|
-
readonly stepName: string;
|
|
14
|
-
readonly cause?: Error | undefined;
|
|
15
|
-
constructor(message: string, stepName: string, cause?: Error | undefined);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Callback type for pipeline event notifications.
|
|
19
|
-
*/
|
|
20
|
-
export interface PipelineEventCallback {
|
|
21
|
-
(event: QodoSdkEvent): void;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Execute a pipeline with the given SDK instance and initial state.
|
|
25
|
-
* Optionally accepts an event callback to receive pipeline execution events.
|
|
26
|
-
*/
|
|
27
|
-
export declare function runPipeline<TState extends Record<string, any>, TInit extends Record<string, any> = TState>(sdk: QodoSDK, pipeline: Pipeline<TState, TInit>, initialState: TInit, onEvent?: PipelineEventCallback): Promise<PipelineResult<TState>>;
|
|
28
|
-
//# sourceMappingURL=PipelineRunner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PipelineRunner.d.ts","sourceRoot":"","sources":["../../../src/sdk/pipeline/PipelineRunner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAuC,MAAM,eAAe,CAAC;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAMV,cAAc,EAGf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,qBAAa,sBAAuB,SAAQ,KAAK;aAG7B,QAAQ,EAAE,MAAM;aAChB,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAC9G,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,EACjC,YAAY,EAAE,KAAK,EACnB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAoFjC"}
|
|
@@ -1,326 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Executes a Pipeline definition against a QodoSDK instance.
|
|
3
|
-
*
|
|
4
|
-
* The runner is intentionally decoupled from the builder so that a single
|
|
5
|
-
* pipeline definition can be executed multiple times with different SDK
|
|
6
|
-
* instances and initial states.
|
|
7
|
-
*/
|
|
8
|
-
import { SdkEventType, SDK_PROTOCOL_V2 } from '../events.js';
|
|
9
|
-
export class PipelineExecutionError extends Error {
|
|
10
|
-
stepName;
|
|
11
|
-
cause;
|
|
12
|
-
constructor(message, stepName, cause) {
|
|
13
|
-
super(message);
|
|
14
|
-
this.stepName = stepName;
|
|
15
|
-
this.cause = cause;
|
|
16
|
-
this.name = 'PipelineExecutionError';
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Execute a pipeline with the given SDK instance and initial state.
|
|
21
|
-
* Optionally accepts an event callback to receive pipeline execution events.
|
|
22
|
-
*/
|
|
23
|
-
export async function runPipeline(sdk, pipeline, initialState, onEvent) {
|
|
24
|
-
const pipelineStart = Date.now();
|
|
25
|
-
// State starts as TInit and accumulates step outputs to become TState at runtime
|
|
26
|
-
let state = { ...initialState };
|
|
27
|
-
const stepLogs = [];
|
|
28
|
-
let seq = 0;
|
|
29
|
-
const runId = `pipeline-${Date.now()}`;
|
|
30
|
-
// Collect all step names for the started event.
|
|
31
|
-
const allStepNames = collectStepNames(pipeline);
|
|
32
|
-
emitEvent(onEvent, runId, seq++, SdkEventType.PipelineStarted, {
|
|
33
|
-
entry_count: pipeline.entries.length,
|
|
34
|
-
step_names: allStepNames,
|
|
35
|
-
});
|
|
36
|
-
try {
|
|
37
|
-
const entries = pipeline.entries;
|
|
38
|
-
for (let i = 0; i < entries.length; i++) {
|
|
39
|
-
const entry = entries[i];
|
|
40
|
-
if (isPipelineGate(entry)) {
|
|
41
|
-
const { passed, nextSeq } = await evaluatePipelineGate(entry, state, onEvent, runId, seq);
|
|
42
|
-
seq = nextSeq;
|
|
43
|
-
if (!passed) {
|
|
44
|
-
for (let j = i + 1; j < entries.length; j++) {
|
|
45
|
-
addSkipLogs(entries[j], stepLogs);
|
|
46
|
-
}
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
if (isPipelineBranch(entry)) {
|
|
52
|
-
const { newState, logs, nextSeq } = await executeBranch(sdk, entry, state, onEvent, runId, seq);
|
|
53
|
-
seq = nextSeq;
|
|
54
|
-
state = { ...state, ...newState };
|
|
55
|
-
stepLogs.push(...logs);
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
if (isParallelGroup(entry)) {
|
|
59
|
-
const { newState, logs, nextSeq } = await executeParallelGroup(sdk, entry, state, onEvent, runId, seq);
|
|
60
|
-
seq = nextSeq;
|
|
61
|
-
state = { ...state, ...newState };
|
|
62
|
-
stepLogs.push(...logs);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
const { newState, log, nextSeq } = await executeStep(sdk, entry, state, false, onEvent, runId, seq);
|
|
66
|
-
seq = nextSeq;
|
|
67
|
-
state = { ...state, ...newState };
|
|
68
|
-
stepLogs.push(log);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
const completed = stepLogs.filter((s) => s.status === 'completed').length;
|
|
72
|
-
const skipped = stepLogs.filter((s) => s.status === 'skipped').length;
|
|
73
|
-
emitEvent(onEvent, runId, seq++, SdkEventType.PipelineCompleted, {
|
|
74
|
-
duration_ms: Date.now() - pipelineStart,
|
|
75
|
-
steps_completed: completed,
|
|
76
|
-
steps_skipped: skipped,
|
|
77
|
-
});
|
|
78
|
-
return { state, steps: stepLogs };
|
|
79
|
-
}
|
|
80
|
-
catch (err) {
|
|
81
|
-
const error = err instanceof Error ? err : new Error(String(err));
|
|
82
|
-
const stepName = err instanceof PipelineExecutionError ? err.stepName : 'unknown';
|
|
83
|
-
emitEvent(onEvent, runId, seq++, SdkEventType.PipelineError, {
|
|
84
|
-
step_name: stepName,
|
|
85
|
-
message: error.message,
|
|
86
|
-
cause: err instanceof PipelineExecutionError ? err.cause : undefined,
|
|
87
|
-
});
|
|
88
|
-
throw err;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
// ---------------------------------------------------------------------------
|
|
92
|
-
// Internal helpers
|
|
93
|
-
// ---------------------------------------------------------------------------
|
|
94
|
-
function isParallelGroup(entry) {
|
|
95
|
-
return entry.kind === 'parallel';
|
|
96
|
-
}
|
|
97
|
-
function isPipelineGate(entry) {
|
|
98
|
-
return entry.kind === 'gate';
|
|
99
|
-
}
|
|
100
|
-
function isPipelineBranch(entry) {
|
|
101
|
-
return entry.kind === 'branch';
|
|
102
|
-
}
|
|
103
|
-
function collectEntryNames(entries) {
|
|
104
|
-
const names = [];
|
|
105
|
-
for (const entry of entries) {
|
|
106
|
-
if (isPipelineGate(entry)) {
|
|
107
|
-
names.push(entry.name);
|
|
108
|
-
}
|
|
109
|
-
else if (isPipelineBranch(entry)) {
|
|
110
|
-
names.push(entry.name);
|
|
111
|
-
names.push(...collectEntryNames(entry.trueEntries));
|
|
112
|
-
names.push(...collectEntryNames(entry.falseEntries));
|
|
113
|
-
}
|
|
114
|
-
else if (isParallelGroup(entry)) {
|
|
115
|
-
for (const step of entry.steps) {
|
|
116
|
-
names.push(step.name);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
names.push(entry.name);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return names;
|
|
124
|
-
}
|
|
125
|
-
function collectStepNames(pipeline) {
|
|
126
|
-
return collectEntryNames(pipeline.entries);
|
|
127
|
-
}
|
|
128
|
-
function emitEvent(onEvent, runId, seq, type, data) {
|
|
129
|
-
if (!onEvent)
|
|
130
|
-
return;
|
|
131
|
-
onEvent({
|
|
132
|
-
protocol: SDK_PROTOCOL_V2,
|
|
133
|
-
type,
|
|
134
|
-
timestamp: Date.now(),
|
|
135
|
-
seq,
|
|
136
|
-
run_id: runId,
|
|
137
|
-
session_id: '',
|
|
138
|
-
data,
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
async function evaluatePipelineGate(gate, state, onEvent, runId, seq) {
|
|
142
|
-
let passed;
|
|
143
|
-
try {
|
|
144
|
-
passed = await gate.fn(state);
|
|
145
|
-
}
|
|
146
|
-
catch {
|
|
147
|
-
passed = false;
|
|
148
|
-
}
|
|
149
|
-
emitEvent(onEvent, runId, seq++, SdkEventType.PipelineGateEvaluated, {
|
|
150
|
-
step_name: gate.name,
|
|
151
|
-
passed,
|
|
152
|
-
pipeline_level: true,
|
|
153
|
-
});
|
|
154
|
-
return { passed, nextSeq: seq };
|
|
155
|
-
}
|
|
156
|
-
async function executeBranch(sdk, branch, state, onEvent, runId, seq) {
|
|
157
|
-
let conditionResult;
|
|
158
|
-
try {
|
|
159
|
-
conditionResult = await branch.condition(state);
|
|
160
|
-
}
|
|
161
|
-
catch {
|
|
162
|
-
conditionResult = false;
|
|
163
|
-
}
|
|
164
|
-
emitEvent(onEvent, runId, seq++, SdkEventType.PipelineBranchEvaluated, {
|
|
165
|
-
branch_name: branch.name,
|
|
166
|
-
condition_result: conditionResult,
|
|
167
|
-
});
|
|
168
|
-
const chosenEntries = conditionResult ? branch.trueEntries : branch.falseEntries;
|
|
169
|
-
const skippedEntries = conditionResult ? branch.falseEntries : branch.trueEntries;
|
|
170
|
-
const logs = [];
|
|
171
|
-
let branchState = {};
|
|
172
|
-
// Execute chosen path entries sequentially
|
|
173
|
-
let currentState = state;
|
|
174
|
-
for (let i = 0; i < chosenEntries.length; i++) {
|
|
175
|
-
const entry = chosenEntries[i];
|
|
176
|
-
if (isPipelineGate(entry)) {
|
|
177
|
-
const { passed, nextSeq } = await evaluatePipelineGate(entry, currentState, onEvent, runId, seq);
|
|
178
|
-
seq = nextSeq;
|
|
179
|
-
if (!passed) {
|
|
180
|
-
for (let j = i + 1; j < chosenEntries.length; j++) {
|
|
181
|
-
addSkipLogs(chosenEntries[j], logs);
|
|
182
|
-
}
|
|
183
|
-
break;
|
|
184
|
-
}
|
|
185
|
-
continue;
|
|
186
|
-
}
|
|
187
|
-
if (isPipelineBranch(entry)) {
|
|
188
|
-
const { newState, logs: branchLogs, nextSeq } = await executeBranch(sdk, entry, currentState, onEvent, runId, seq);
|
|
189
|
-
seq = nextSeq;
|
|
190
|
-
currentState = { ...currentState, ...newState };
|
|
191
|
-
branchState = { ...branchState, ...newState };
|
|
192
|
-
logs.push(...branchLogs);
|
|
193
|
-
continue;
|
|
194
|
-
}
|
|
195
|
-
if (isParallelGroup(entry)) {
|
|
196
|
-
const { newState, logs: groupLogs, nextSeq } = await executeParallelGroup(sdk, entry, currentState, onEvent, runId, seq);
|
|
197
|
-
seq = nextSeq;
|
|
198
|
-
currentState = { ...currentState, ...newState };
|
|
199
|
-
branchState = { ...branchState, ...newState };
|
|
200
|
-
logs.push(...groupLogs);
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
const { newState, log, nextSeq } = await executeStep(sdk, entry, currentState, false, onEvent, runId, seq);
|
|
204
|
-
seq = nextSeq;
|
|
205
|
-
currentState = { ...currentState, ...newState };
|
|
206
|
-
branchState = { ...branchState, ...newState };
|
|
207
|
-
logs.push(log);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
// Add skip logs for the non-taken path
|
|
211
|
-
for (const entry of skippedEntries) {
|
|
212
|
-
addSkipLogs(entry, logs);
|
|
213
|
-
}
|
|
214
|
-
// Add a branch log entry
|
|
215
|
-
logs.unshift({
|
|
216
|
-
name: branch.name,
|
|
217
|
-
status: 'completed',
|
|
218
|
-
durationMs: 0,
|
|
219
|
-
branchTaken: conditionResult ? 'true' : 'false',
|
|
220
|
-
});
|
|
221
|
-
return { newState: branchState, logs, nextSeq: seq };
|
|
222
|
-
}
|
|
223
|
-
function addSkipLogs(entry, logs) {
|
|
224
|
-
if (isPipelineGate(entry)) {
|
|
225
|
-
logs.push({ name: entry.name, status: 'skipped', durationMs: 0 });
|
|
226
|
-
}
|
|
227
|
-
else if (isPipelineBranch(entry)) {
|
|
228
|
-
logs.push({ name: entry.name, status: 'skipped', durationMs: 0 });
|
|
229
|
-
for (const sub of entry.trueEntries)
|
|
230
|
-
addSkipLogs(sub, logs);
|
|
231
|
-
for (const sub of entry.falseEntries)
|
|
232
|
-
addSkipLogs(sub, logs);
|
|
233
|
-
}
|
|
234
|
-
else if (isParallelGroup(entry)) {
|
|
235
|
-
for (const step of entry.steps) {
|
|
236
|
-
logs.push({ name: step.name, status: 'skipped', durationMs: 0 });
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
else {
|
|
240
|
-
logs.push({ name: entry.name, status: 'skipped', durationMs: 0 });
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
async function executeStep(sdk, step, state, parallel, onEvent, runId, seq) {
|
|
244
|
-
const start = Date.now();
|
|
245
|
-
emitEvent(onEvent, runId, seq++, SdkEventType.PipelineStepStarted, {
|
|
246
|
-
step_name: step.name,
|
|
247
|
-
parallel,
|
|
248
|
-
});
|
|
249
|
-
// Build step context
|
|
250
|
-
const ctx = {
|
|
251
|
-
state,
|
|
252
|
-
run: (commandOrPrompt, options) => {
|
|
253
|
-
return sdk.run(commandOrPrompt, options);
|
|
254
|
-
},
|
|
255
|
-
stepName: step.name,
|
|
256
|
-
};
|
|
257
|
-
try {
|
|
258
|
-
const output = await step.fn(ctx);
|
|
259
|
-
const log = { name: step.name, status: 'completed', durationMs: Date.now() - start };
|
|
260
|
-
emitEvent(onEvent, runId, seq++, SdkEventType.PipelineStepCompleted, {
|
|
261
|
-
step_name: step.name,
|
|
262
|
-
status: 'completed',
|
|
263
|
-
duration_ms: log.durationMs,
|
|
264
|
-
});
|
|
265
|
-
return { newState: output ?? {}, log, nextSeq: seq };
|
|
266
|
-
}
|
|
267
|
-
catch (err) {
|
|
268
|
-
const error = err instanceof Error ? err : new Error(String(err));
|
|
269
|
-
if (step.onError === 'skip') {
|
|
270
|
-
const log = {
|
|
271
|
-
name: step.name,
|
|
272
|
-
status: 'skipped',
|
|
273
|
-
durationMs: Date.now() - start,
|
|
274
|
-
error: error.message,
|
|
275
|
-
};
|
|
276
|
-
emitEvent(onEvent, runId, seq++, SdkEventType.PipelineStepCompleted, {
|
|
277
|
-
step_name: step.name,
|
|
278
|
-
status: 'skipped',
|
|
279
|
-
duration_ms: log.durationMs,
|
|
280
|
-
error: error.message,
|
|
281
|
-
});
|
|
282
|
-
return { newState: {}, log, nextSeq: seq };
|
|
283
|
-
}
|
|
284
|
-
if (typeof step.onError === 'function') {
|
|
285
|
-
try {
|
|
286
|
-
const recovered = await step.onError(error, state);
|
|
287
|
-
const log = { name: step.name, status: 'completed', durationMs: Date.now() - start };
|
|
288
|
-
emitEvent(onEvent, runId, seq++, SdkEventType.PipelineStepCompleted, {
|
|
289
|
-
step_name: step.name,
|
|
290
|
-
status: 'completed',
|
|
291
|
-
duration_ms: log.durationMs,
|
|
292
|
-
});
|
|
293
|
-
return { newState: recovered ?? {}, log, nextSeq: seq };
|
|
294
|
-
}
|
|
295
|
-
catch (recoveryErr) {
|
|
296
|
-
throw new PipelineExecutionError(`Step "${step.name}" recovery failed: ${recoveryErr?.message || recoveryErr}`, step.name, recoveryErr instanceof Error ? recoveryErr : undefined);
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
// 'throw' (default)
|
|
300
|
-
throw new PipelineExecutionError(`Step "${step.name}" failed: ${error.message}`, step.name, error);
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
async function executeParallelGroup(sdk, group, state, onEvent, runId, seq) {
|
|
304
|
-
// Each parallel step gets its own starting seq to avoid conflicts.
|
|
305
|
-
// We'll collect events and replay them after all settle.
|
|
306
|
-
const results = await Promise.allSettled(group.steps.map((step, i) => executeStep(sdk, step, state, true, onEvent, runId, seq + (i * 10))));
|
|
307
|
-
// Advance seq past all parallel steps.
|
|
308
|
-
seq += group.steps.length * 10;
|
|
309
|
-
let merged = {};
|
|
310
|
-
const logs = [];
|
|
311
|
-
for (let i = 0; i < results.length; i++) {
|
|
312
|
-
const result = results[i];
|
|
313
|
-
if (result.status === 'fulfilled') {
|
|
314
|
-
merged = { ...merged, ...result.value.newState };
|
|
315
|
-
logs.push(result.value.log);
|
|
316
|
-
}
|
|
317
|
-
else {
|
|
318
|
-
// If any parallel step throws (after its own onError handling),
|
|
319
|
-
// the entire parallel group fails.
|
|
320
|
-
const stepName = group.steps[i].name;
|
|
321
|
-
throw new PipelineExecutionError(`Parallel step "${stepName}" failed: ${result.reason?.message || result.reason}`, stepName, result.reason instanceof Error ? result.reason : undefined);
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
return { newState: merged, logs, nextSeq: seq };
|
|
325
|
-
}
|
|
326
|
-
//# sourceMappingURL=PipelineRunner.js.map
|