@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QodoClient.js","sourceRoot":"","sources":["../../src/client/QodoClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `SpecsClient` — backed by `POST /v1/specs/validate` on QAR.
|
|
3
|
+
*
|
|
4
|
+
* Stateless pre-flight: validates an inline `AgentSpec` or `GraphSpec`
|
|
5
|
+
* against the same wire-validation rules `task.start` runs, but without
|
|
6
|
+
* dispatching anything. Useful for:
|
|
7
|
+
*
|
|
8
|
+
* - **CI gates** — consumer repos run `client.specs.validate(spec)` in a
|
|
9
|
+
* PR check; failure on any spec rule blocks merge.
|
|
10
|
+
* - **Studio live-edit** — every keystroke in the visual editor calls
|
|
11
|
+
* validate; instant feedback while the user authors.
|
|
12
|
+
* - **SDK pre-flight** — a developer iterating on an inline spec in a
|
|
13
|
+
* notebook validates before calling `tasks.start`.
|
|
14
|
+
*
|
|
15
|
+
* Bearer auth is *forwarded if available* but not required by the endpoint.
|
|
16
|
+
* Validation is a pure function over the spec shape — no PII, no tenant
|
|
17
|
+
* resolution. A bearer is included only so Qodo Cloud can attribute the call
|
|
18
|
+
* for audit purposes when one is configured.
|
|
19
|
+
*
|
|
20
|
+
* Per-rule failures (`{ valid: false, errors: [{ rule_id, path, message }] }`)
|
|
21
|
+
* are *not* exceptions — they're the normal happy-path return. Only
|
|
22
|
+
* pre-wire issues (missing `kind`, unreachable host, non-2xx HTTP) throw.
|
|
23
|
+
*/
|
|
24
|
+
import type { InlineAgentSpec, InlineGraphSpec, SpecValidateResult } from '../qar/specs.js';
|
|
25
|
+
export declare class SpecsClient {
|
|
26
|
+
private readonly baseUrl;
|
|
27
|
+
private readonly allowInsecureTransport;
|
|
28
|
+
private readonly authProvider;
|
|
29
|
+
private readonly extraHeaders;
|
|
30
|
+
private readonly fetchImpl;
|
|
31
|
+
private cachedHttpBase;
|
|
32
|
+
/**
|
|
33
|
+
* Memoized bearer resolution. Three states:
|
|
34
|
+
* - `undefined` — never resolved yet.
|
|
35
|
+
* - `string` — bearer was found and is reused on subsequent calls.
|
|
36
|
+
* - `null` — confirmed "no bearer configured"; we won't probe again.
|
|
37
|
+
*
|
|
38
|
+
* `AuthProvider.validate()` does synchronous filesystem work and throws
|
|
39
|
+
* `QodoAuthError` when no key exists anywhere. In high-frequency scenarios
|
|
40
|
+
* (CI gating many specs, Studio live-edit per keystroke) re-running that on
|
|
41
|
+
* every call would burn syscalls and throw/catch loops. Cache the answer.
|
|
42
|
+
*/
|
|
43
|
+
private cachedBearer;
|
|
44
|
+
/**
|
|
45
|
+
* Validate an `AgentSpec` or `GraphSpec` against QAR's wire-validation
|
|
46
|
+
* rules without dispatching a task.
|
|
47
|
+
*
|
|
48
|
+
* Returns the typed `SpecValidateResult` envelope:
|
|
49
|
+
* - `{ valid: true }` — the spec passed every rule.
|
|
50
|
+
* - `{ valid: false, errors: [...] }` — the spec failed one or more
|
|
51
|
+
* rules; each entry is `{ rule_id, path, message }` where `rule_id` is
|
|
52
|
+
* a `D10-R*` (AgentSpec) or `D11-R*` (GraphSpec) tag and `path` is a
|
|
53
|
+
* JSON Pointer (RFC 6901) into the spec (`""` for the root).
|
|
54
|
+
*
|
|
55
|
+
* Throws:
|
|
56
|
+
* - `QodoSpecValidationError` — the supplied object is missing a known
|
|
57
|
+
* `kind` discriminator, so it's not a well-formed spec at all. (Per-rule
|
|
58
|
+
* failures are *not* exceptions — they come back as `valid: false`.)
|
|
59
|
+
* - `QodoAuthError` — only when a bearer was provided and the server
|
|
60
|
+
* rejected it (401/403). When no bearer is configured the endpoint is
|
|
61
|
+
* anonymous, so 401/403 surfaces as a plain `Error` instead.
|
|
62
|
+
* - plain `Error` — any other non-2xx response, with the body included.
|
|
63
|
+
*/
|
|
64
|
+
validate(spec: InlineAgentSpec | InlineGraphSpec): Promise<SpecValidateResult>;
|
|
65
|
+
/**
|
|
66
|
+
* Try to resolve a bearer without throwing if none is configured.
|
|
67
|
+
*
|
|
68
|
+
* `AuthProvider.validate()` throws `QodoAuthError` when no key is found
|
|
69
|
+
* anywhere — that's the right call for `tasks.start` (auth required) but
|
|
70
|
+
* the wrong one here (validate is anonymous-friendly). We swallow that
|
|
71
|
+
* specific error and treat it as "no bearer" so the call proceeds without
|
|
72
|
+
* an `Authorization` header. Any other thrown shape (filesystem error
|
|
73
|
+
* inside `validate`, etc.) propagates so we don't mask real bugs.
|
|
74
|
+
*
|
|
75
|
+
* Memoized via `cachedBearer` — once the answer is known we don't re-probe
|
|
76
|
+
* the filesystem on every call. CI gating many specs and Studio live-edit
|
|
77
|
+
* are both high-frequency callers of `validate()`.
|
|
78
|
+
*/
|
|
79
|
+
private tryResolveBearer;
|
|
80
|
+
/**
|
|
81
|
+
* Apply the wire-default `kind` discriminator to an `InlineAgentSpec` whose
|
|
82
|
+
* type-optional `kind` was omitted. The check is duck-type: an object with
|
|
83
|
+
* `apiVersion: 'qar/v1'` + no explicit `kind` is treated as an AgentSpec
|
|
84
|
+
* (the only optional-kind arm of `InlineSpec` — `InlineGraphSpec.kind` is
|
|
85
|
+
* required by the type and `assertSpecKind` enforces it). Anything else
|
|
86
|
+
* passes through untouched and gets caught by `assertSpecKind` below.
|
|
87
|
+
*
|
|
88
|
+
* Mirrors `TaskClient.startWithAgent`'s `normalizeInlineAgentSpec` call so
|
|
89
|
+
* the SDK presents one consistent normalization story regardless of which
|
|
90
|
+
* entry point the consumer uses.
|
|
91
|
+
*/
|
|
92
|
+
private static normalizeKind;
|
|
93
|
+
/**
|
|
94
|
+
* Reject anything that isn't a JSON object with a recognized `kind`
|
|
95
|
+
* discriminator. JS callers can pass `null`, undefined, primitives, etc. —
|
|
96
|
+
* fail fast with a typed error rather than letting `JSON.stringify` ship
|
|
97
|
+
* `null`/`"foo"` to the endpoint.
|
|
98
|
+
*
|
|
99
|
+
* Accepts only the wire-canonical `kind: 'AgentSpec' | 'GraphSpec'` literals
|
|
100
|
+
* matching QAR's `SPEC_KIND_AGENT` / `SPEC_KIND_GRAPH`. The legacy lowercase
|
|
101
|
+
* `'graph'` arm was dropped — the wire validator only ever accepted the
|
|
102
|
+
* capitalized form, so consumers carrying the old literal now get a typed
|
|
103
|
+
* pre-wire error instead of a `task.done(failed)` round-trip.
|
|
104
|
+
*/
|
|
105
|
+
private static assertSpecKind;
|
|
106
|
+
/**
|
|
107
|
+
* Lazy URL parsing — symmetric with `InfoClient.requireHttpBase`.
|
|
108
|
+
* `QodoClient.validateOptions` only checks `baseUrl` is a non-empty string;
|
|
109
|
+
* eager derivation would change behavior for callers who construct a client
|
|
110
|
+
* with an invalid scheme but never call any HTTP method.
|
|
111
|
+
*/
|
|
112
|
+
private requireHttpBase;
|
|
113
|
+
private static readBodySafely;
|
|
114
|
+
/**
|
|
115
|
+
* Map the consumer-supplied `baseUrl` (typically `https://qar.qodo.ai` or
|
|
116
|
+
* `wss://qar.qodo.ai`) onto the HTTP origin used for `/v1/specs/validate`.
|
|
117
|
+
* Same scheme rules + insecure-transport gate as `InfoClient`.
|
|
118
|
+
*/
|
|
119
|
+
private static deriveHttpBaseUrl;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=SpecsClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpecsClient.d.ts","sourceRoot":"","sources":["../../src/client/SpecsClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAEf,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAezB,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IACnE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,cAAc,CAAuB;IAC7C;;;;;;;;;;OAUG;IACH,OAAO,CAAC,YAAY,CAAwC;IAW5D;;;;;;;;;;;;;;;;;;;OAmBG;IACU,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmD3F;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAS5B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAc7B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;mBASF,cAAc;IAUnC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAgCjC"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `SpecsClient` — backed by `POST /v1/specs/validate` on QAR.
|
|
3
|
+
*
|
|
4
|
+
* Stateless pre-flight: validates an inline `AgentSpec` or `GraphSpec`
|
|
5
|
+
* against the same wire-validation rules `task.start` runs, but without
|
|
6
|
+
* dispatching anything. Useful for:
|
|
7
|
+
*
|
|
8
|
+
* - **CI gates** — consumer repos run `client.specs.validate(spec)` in a
|
|
9
|
+
* PR check; failure on any spec rule blocks merge.
|
|
10
|
+
* - **Studio live-edit** — every keystroke in the visual editor calls
|
|
11
|
+
* validate; instant feedback while the user authors.
|
|
12
|
+
* - **SDK pre-flight** — a developer iterating on an inline spec in a
|
|
13
|
+
* notebook validates before calling `tasks.start`.
|
|
14
|
+
*
|
|
15
|
+
* Bearer auth is *forwarded if available* but not required by the endpoint.
|
|
16
|
+
* Validation is a pure function over the spec shape — no PII, no tenant
|
|
17
|
+
* resolution. A bearer is included only so Qodo Cloud can attribute the call
|
|
18
|
+
* for audit purposes when one is configured.
|
|
19
|
+
*
|
|
20
|
+
* Per-rule failures (`{ valid: false, errors: [{ rule_id, path, message }] }`)
|
|
21
|
+
* are *not* exceptions — they're the normal happy-path return. Only
|
|
22
|
+
* pre-wire issues (missing `kind`, unreachable host, non-2xx HTTP) throw.
|
|
23
|
+
*/
|
|
24
|
+
import { QodoAuthError } from '../auth/index.js';
|
|
25
|
+
import { QodoClientOptionsError, QodoSpecValidationError, } from './errors.js';
|
|
26
|
+
import { normalizeInlineAgentSpec } from '../qar/agentSpec.js';
|
|
27
|
+
export class SpecsClient {
|
|
28
|
+
baseUrl;
|
|
29
|
+
allowInsecureTransport;
|
|
30
|
+
authProvider;
|
|
31
|
+
extraHeaders;
|
|
32
|
+
fetchImpl;
|
|
33
|
+
cachedHttpBase = null;
|
|
34
|
+
/**
|
|
35
|
+
* Memoized bearer resolution. Three states:
|
|
36
|
+
* - `undefined` — never resolved yet.
|
|
37
|
+
* - `string` — bearer was found and is reused on subsequent calls.
|
|
38
|
+
* - `null` — confirmed "no bearer configured"; we won't probe again.
|
|
39
|
+
*
|
|
40
|
+
* `AuthProvider.validate()` does synchronous filesystem work and throws
|
|
41
|
+
* `QodoAuthError` when no key exists anywhere. In high-frequency scenarios
|
|
42
|
+
* (CI gating many specs, Studio live-edit per keystroke) re-running that on
|
|
43
|
+
* every call would burn syscalls and throw/catch loops. Cache the answer.
|
|
44
|
+
*/
|
|
45
|
+
cachedBearer = undefined;
|
|
46
|
+
/** @internal — constructed by `QodoClient`. */
|
|
47
|
+
constructor(deps) {
|
|
48
|
+
this.baseUrl = deps.baseUrl;
|
|
49
|
+
this.allowInsecureTransport = deps.allowInsecureTransport ?? false;
|
|
50
|
+
this.authProvider = deps.authProvider;
|
|
51
|
+
this.extraHeaders = deps.headers ?? {};
|
|
52
|
+
this.fetchImpl = deps.fetchImpl ?? ((input, init) => fetch(input, init));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Validate an `AgentSpec` or `GraphSpec` against QAR's wire-validation
|
|
56
|
+
* rules without dispatching a task.
|
|
57
|
+
*
|
|
58
|
+
* Returns the typed `SpecValidateResult` envelope:
|
|
59
|
+
* - `{ valid: true }` — the spec passed every rule.
|
|
60
|
+
* - `{ valid: false, errors: [...] }` — the spec failed one or more
|
|
61
|
+
* rules; each entry is `{ rule_id, path, message }` where `rule_id` is
|
|
62
|
+
* a `D10-R*` (AgentSpec) or `D11-R*` (GraphSpec) tag and `path` is a
|
|
63
|
+
* JSON Pointer (RFC 6901) into the spec (`""` for the root).
|
|
64
|
+
*
|
|
65
|
+
* Throws:
|
|
66
|
+
* - `QodoSpecValidationError` — the supplied object is missing a known
|
|
67
|
+
* `kind` discriminator, so it's not a well-formed spec at all. (Per-rule
|
|
68
|
+
* failures are *not* exceptions — they come back as `valid: false`.)
|
|
69
|
+
* - `QodoAuthError` — only when a bearer was provided and the server
|
|
70
|
+
* rejected it (401/403). When no bearer is configured the endpoint is
|
|
71
|
+
* anonymous, so 401/403 surfaces as a plain `Error` instead.
|
|
72
|
+
* - plain `Error` — any other non-2xx response, with the body included.
|
|
73
|
+
*/
|
|
74
|
+
async validate(spec) {
|
|
75
|
+
// Normalize before the kind-check so an `InlineAgentSpec` literal that
|
|
76
|
+
// omits the optional `kind` discriminator (`{ apiVersion, instructions,
|
|
77
|
+
// model }`) round-trips against QAR with the wire-canonical `kind:
|
|
78
|
+
// 'AgentSpec'` filled in. Mirrors `TaskClient.startWithAgent`'s behavior
|
|
79
|
+
// so consumers see the same normalization regardless of which entry
|
|
80
|
+
// point they use. `InlineGraphSpec.kind` is required at the type level,
|
|
81
|
+
// so the normalization only ever fires on the AgentSpec arm.
|
|
82
|
+
const normalized = SpecsClient.normalizeKind(spec);
|
|
83
|
+
SpecsClient.assertSpecKind(normalized);
|
|
84
|
+
const url = `${this.requireHttpBase()}/v1/specs/validate`;
|
|
85
|
+
const bearer = this.tryResolveBearer();
|
|
86
|
+
// Build headers via the case-insensitive `Headers` API and explicitly
|
|
87
|
+
// strip any caller-supplied `Authorization` before setting the
|
|
88
|
+
// SDK-controlled bearer. This matters because `ClientOptions.headers` is
|
|
89
|
+
// documented as "extra headers"; bearer auth must be controlled
|
|
90
|
+
// exclusively via `ClientOptions.auth`. Plain object spread is
|
|
91
|
+
// case-sensitive, so a caller's lowercase `authorization` would slip
|
|
92
|
+
// through alongside our `Authorization`. `Headers.set` collapses both.
|
|
93
|
+
const headers = new Headers(this.extraHeaders);
|
|
94
|
+
headers.delete('authorization');
|
|
95
|
+
headers.set('Content-Type', 'application/json');
|
|
96
|
+
headers.set('Accept', 'application/json');
|
|
97
|
+
if (bearer !== null) {
|
|
98
|
+
headers.set('Authorization', `Bearer ${bearer}`);
|
|
99
|
+
}
|
|
100
|
+
const response = await this.fetchImpl(url, {
|
|
101
|
+
method: 'POST',
|
|
102
|
+
headers,
|
|
103
|
+
body: JSON.stringify(normalized),
|
|
104
|
+
});
|
|
105
|
+
if (response.status === 401 || response.status === 403) {
|
|
106
|
+
// Only the auth-source-named error makes sense when we actually sent a
|
|
107
|
+
// bearer. If the caller didn't configure one, a 401/403 is an endpoint
|
|
108
|
+
// policy decision (not a key-fix-up) — fall through to the generic Error.
|
|
109
|
+
if (bearer !== null) {
|
|
110
|
+
this.authProvider.handle401Error();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (!response.ok) {
|
|
114
|
+
const body = await SpecsClient.readBodySafely(response);
|
|
115
|
+
throw new Error(`POST /v1/specs/validate failed: ${response.status} ${response.statusText}${body ? ` — ${body}` : ''}`);
|
|
116
|
+
}
|
|
117
|
+
return (await response.json());
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Try to resolve a bearer without throwing if none is configured.
|
|
121
|
+
*
|
|
122
|
+
* `AuthProvider.validate()` throws `QodoAuthError` when no key is found
|
|
123
|
+
* anywhere — that's the right call for `tasks.start` (auth required) but
|
|
124
|
+
* the wrong one here (validate is anonymous-friendly). We swallow that
|
|
125
|
+
* specific error and treat it as "no bearer" so the call proceeds without
|
|
126
|
+
* an `Authorization` header. Any other thrown shape (filesystem error
|
|
127
|
+
* inside `validate`, etc.) propagates so we don't mask real bugs.
|
|
128
|
+
*
|
|
129
|
+
* Memoized via `cachedBearer` — once the answer is known we don't re-probe
|
|
130
|
+
* the filesystem on every call. CI gating many specs and Studio live-edit
|
|
131
|
+
* are both high-frequency callers of `validate()`.
|
|
132
|
+
*/
|
|
133
|
+
tryResolveBearer() {
|
|
134
|
+
if (this.cachedBearer !== undefined)
|
|
135
|
+
return this.cachedBearer;
|
|
136
|
+
try {
|
|
137
|
+
this.authProvider.validate();
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
if (err instanceof QodoAuthError) {
|
|
141
|
+
this.cachedBearer = null;
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
throw err;
|
|
145
|
+
}
|
|
146
|
+
const { token } = this.authProvider.getAuthConfig();
|
|
147
|
+
this.cachedBearer = token.length > 0 ? token : null;
|
|
148
|
+
return this.cachedBearer;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Apply the wire-default `kind` discriminator to an `InlineAgentSpec` whose
|
|
152
|
+
* type-optional `kind` was omitted. The check is duck-type: an object with
|
|
153
|
+
* `apiVersion: 'qar/v1'` + no explicit `kind` is treated as an AgentSpec
|
|
154
|
+
* (the only optional-kind arm of `InlineSpec` — `InlineGraphSpec.kind` is
|
|
155
|
+
* required by the type and `assertSpecKind` enforces it). Anything else
|
|
156
|
+
* passes through untouched and gets caught by `assertSpecKind` below.
|
|
157
|
+
*
|
|
158
|
+
* Mirrors `TaskClient.startWithAgent`'s `normalizeInlineAgentSpec` call so
|
|
159
|
+
* the SDK presents one consistent normalization story regardless of which
|
|
160
|
+
* entry point the consumer uses.
|
|
161
|
+
*/
|
|
162
|
+
static normalizeKind(spec) {
|
|
163
|
+
if (typeof spec !== 'object' || spec === null)
|
|
164
|
+
return spec;
|
|
165
|
+
const kind = spec.kind;
|
|
166
|
+
if (kind === undefined && spec.apiVersion === 'qar/v1') {
|
|
167
|
+
return normalizeInlineAgentSpec(spec);
|
|
168
|
+
}
|
|
169
|
+
return spec;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Reject anything that isn't a JSON object with a recognized `kind`
|
|
173
|
+
* discriminator. JS callers can pass `null`, undefined, primitives, etc. —
|
|
174
|
+
* fail fast with a typed error rather than letting `JSON.stringify` ship
|
|
175
|
+
* `null`/`"foo"` to the endpoint.
|
|
176
|
+
*
|
|
177
|
+
* Accepts only the wire-canonical `kind: 'AgentSpec' | 'GraphSpec'` literals
|
|
178
|
+
* matching QAR's `SPEC_KIND_AGENT` / `SPEC_KIND_GRAPH`. The legacy lowercase
|
|
179
|
+
* `'graph'` arm was dropped — the wire validator only ever accepted the
|
|
180
|
+
* capitalized form, so consumers carrying the old literal now get a typed
|
|
181
|
+
* pre-wire error instead of a `task.done(failed)` round-trip.
|
|
182
|
+
*/
|
|
183
|
+
static assertSpecKind(spec) {
|
|
184
|
+
if (typeof spec !== 'object' || spec === null) {
|
|
185
|
+
throw new QodoSpecValidationError(`client.specs.validate(spec): spec must be an object with a "kind" of "AgentSpec" or "GraphSpec"`);
|
|
186
|
+
}
|
|
187
|
+
const kind = spec.kind;
|
|
188
|
+
if (kind !== 'AgentSpec' && kind !== 'GraphSpec') {
|
|
189
|
+
throw new QodoSpecValidationError(`client.specs.validate(spec): spec.kind must be "AgentSpec" or "GraphSpec"; got ${JSON.stringify(kind)}`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Lazy URL parsing — symmetric with `InfoClient.requireHttpBase`.
|
|
194
|
+
* `QodoClient.validateOptions` only checks `baseUrl` is a non-empty string;
|
|
195
|
+
* eager derivation would change behavior for callers who construct a client
|
|
196
|
+
* with an invalid scheme but never call any HTTP method.
|
|
197
|
+
*/
|
|
198
|
+
requireHttpBase() {
|
|
199
|
+
if (this.cachedHttpBase !== null)
|
|
200
|
+
return this.cachedHttpBase;
|
|
201
|
+
this.cachedHttpBase = SpecsClient.deriveHttpBaseUrl(this.baseUrl, this.allowInsecureTransport);
|
|
202
|
+
return this.cachedHttpBase;
|
|
203
|
+
}
|
|
204
|
+
static async readBodySafely(response) {
|
|
205
|
+
try {
|
|
206
|
+
const text = await response.text();
|
|
207
|
+
return text.length > 512 ? `${text.slice(0, 512)}…` : text;
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
// Body read errors are non-actionable here — caller already has status / statusText.
|
|
211
|
+
return '';
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Map the consumer-supplied `baseUrl` (typically `https://qar.qodo.ai` or
|
|
216
|
+
* `wss://qar.qodo.ai`) onto the HTTP origin used for `/v1/specs/validate`.
|
|
217
|
+
* Same scheme rules + insecure-transport gate as `InfoClient`.
|
|
218
|
+
*/
|
|
219
|
+
static deriveHttpBaseUrl(baseUrl, allowInsecureTransport) {
|
|
220
|
+
let end = baseUrl.length;
|
|
221
|
+
while (end > 0 && baseUrl.charCodeAt(end - 1) === 0x2f /* '/' */) {
|
|
222
|
+
end -= 1;
|
|
223
|
+
}
|
|
224
|
+
const trimmed = baseUrl.slice(0, end);
|
|
225
|
+
let httpBase;
|
|
226
|
+
let insecure = false;
|
|
227
|
+
if (trimmed.startsWith('https://')) {
|
|
228
|
+
httpBase = trimmed;
|
|
229
|
+
}
|
|
230
|
+
else if (trimmed.startsWith('http://')) {
|
|
231
|
+
httpBase = trimmed;
|
|
232
|
+
insecure = true;
|
|
233
|
+
}
|
|
234
|
+
else if (trimmed.startsWith('wss://')) {
|
|
235
|
+
httpBase = `https://${trimmed.slice('wss://'.length)}`;
|
|
236
|
+
}
|
|
237
|
+
else if (trimmed.startsWith('ws://')) {
|
|
238
|
+
httpBase = `http://${trimmed.slice('ws://'.length)}`;
|
|
239
|
+
insecure = true;
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
throw new QodoClientOptionsError(`ClientOptions.baseUrl must use http(s):// or ws(s)://; got "${baseUrl}"`);
|
|
243
|
+
}
|
|
244
|
+
if (insecure && allowInsecureTransport !== true) {
|
|
245
|
+
throw new QodoClientOptionsError(`ClientOptions.baseUrl uses an insecure scheme ("${baseUrl}") which would transmit ` +
|
|
246
|
+
`the bearer token in plaintext. Use https:// or wss:// in production, or set ` +
|
|
247
|
+
`allowInsecureTransport: true to opt in for local development.`);
|
|
248
|
+
}
|
|
249
|
+
return httpBase;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=SpecsClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpecsClient.js","sourceRoot":"","sources":["../../src/client/SpecsClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAgB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAc/D,MAAM,OAAO,WAAW;IACL,OAAO,CAAS;IAChB,sBAAsB,CAAU;IAChC,YAAY,CAAe;IAC3B,YAAY,CAAsC;IAClD,SAAS,CAAY;IAC9B,cAAc,GAAkB,IAAI,CAAC;IAC7C;;;;;;;;;;OAUG;IACK,YAAY,GAA8B,SAAS,CAAC;IAE5D,+CAA+C;IAC/C,YAAY,IAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,IAAI,KAAK,CAAC;QACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,KAAK,CAAC,QAAQ,CAAC,IAAuC;QAC3D,uEAAuE;QACvE,wEAAwE;QACxE,mEAAmE;QACnE,yEAAyE;QACzE,oEAAoE;QACpE,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnD,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAEvC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvC,sEAAsE;QACtE,+DAA+D;QAC/D,yEAAyE;QACzE,gEAAgE;QAChE,+DAA+D;QAC/D,qEAAqE;QACrE,uEAAuE;QACvE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YACzC,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;SACjC,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvD,uEAAuE;YACvE,uEAAuE;YACvE,0EAA0E;YAC1E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,mCAAmC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACvG,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,gBAAgB;QACtB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC9D,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;QACpD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;OAWG;IACK,MAAM,CAAC,aAAa,CAAC,IAAuC;QAClE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3D,MAAM,IAAI,GAAI,IAA2B,CAAC,IAAI,CAAC;QAC/C,IAAI,IAAI,KAAK,SAAS,IAAK,IAAiC,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACrF,OAAO,wBAAwB,CAAC,IAAuB,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACK,MAAM,CAAC,cAAc,CAAC,IAAa;QACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,IAAI,uBAAuB,CAC/B,iGAAiG,CAClG,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAI,IAA2B,CAAC,IAAI,CAAC;QAC/C,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACjD,MAAM,IAAI,uBAAuB,CAC/B,kFAAkF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CACzG,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,eAAe;QACrB,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7D,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,iBAAiB,CACjD,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,sBAAsB,CAC5B,CAAC;QACF,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,QAAkB;QACpD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,qFAAqF;YACrF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,iBAAiB,CAAC,OAAe,EAAE,sBAA+B;QAC/E,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QACzB,OAAO,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACjE,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,QAAgB,CAAC;QACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,QAAQ,GAAG,OAAO,CAAC;QACrB,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,QAAQ,GAAG,OAAO,CAAC;YACnB,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,QAAQ,GAAG,WAAW,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,QAAQ,GAAG,UAAU,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,sBAAsB,CAC9B,+DAA+D,OAAO,GAAG,CAC1E,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,IAAI,sBAAsB,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,IAAI,sBAAsB,CAC9B,mDAAmD,OAAO,0BAA0B;gBAClF,8EAA8E;gBAC9E,+DAA+D,CAClE,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `StateClient` — observer for QAR's `state.update` envelopes.
|
|
3
|
+
*
|
|
4
|
+
* State updates are per-skill mutations: a `skill` keys the schema and `op`
|
|
5
|
+
* (`patch` / `replace` / `init`) describes the mutation kind. The payload
|
|
6
|
+
* shape is typed by QAR (codegen overlay in `src/qar/payloads.ts`); the
|
|
7
|
+
* filter helper here narrows by skill so consumers can wire one handler
|
|
8
|
+
* per skill without de-multiplexing themselves.
|
|
9
|
+
*
|
|
10
|
+
* `state.update` is bidirectional in QAR's wire model; this surface is
|
|
11
|
+
* server→client only (the inbound stream). SDK-side emission for
|
|
12
|
+
* skill-managed state pushes is reserved for a future ticket.
|
|
13
|
+
*/
|
|
14
|
+
import type { StateUpdateEnvelope } from '../qar/envelopes.js';
|
|
15
|
+
import { KindObserverClient } from './observers.js';
|
|
16
|
+
import type { EventSubscription } from './observers.js';
|
|
17
|
+
/** Filter for `state.update` envelopes. */
|
|
18
|
+
export interface StateFilter {
|
|
19
|
+
/** Match against `payload.skill` — the skill key whose state is mutating. */
|
|
20
|
+
readonly skill?: string;
|
|
21
|
+
}
|
|
22
|
+
export type StateHandler = (env: StateUpdateEnvelope) => void;
|
|
23
|
+
export declare class StateClient extends KindObserverClient<'state.update', StateUpdateEnvelope> {
|
|
24
|
+
/**
|
|
25
|
+
* Register a handler invoked for every inbound `state.update` envelope.
|
|
26
|
+
*
|
|
27
|
+
* Same multi-handler / fan-out / throw-swallowing semantics as the other
|
|
28
|
+
* observer surfaces. The two-arg overload accepts a `StateFilter` (only
|
|
29
|
+
* `skill` for now — `op` would be cheap to add but we'd rather grow the
|
|
30
|
+
* filter when consumers ask).
|
|
31
|
+
*/
|
|
32
|
+
onUpdate(handler: StateHandler): EventSubscription;
|
|
33
|
+
onUpdate(filter: StateFilter, handler: StateHandler): EventSubscription;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=StateClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateClient.d.ts","sourceRoot":"","sources":["../../src/client/StateClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAE9D,qBAAa,WAAY,SAAQ,kBAAkB,CAAC,cAAc,EAAE,mBAAmB,CAAC;IAMtF;;;;;;;OAOG;IACI,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,iBAAiB;IAClD,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,GAAG,iBAAiB;CAc/E"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `StateClient` — observer for QAR's `state.update` envelopes.
|
|
3
|
+
*
|
|
4
|
+
* State updates are per-skill mutations: a `skill` keys the schema and `op`
|
|
5
|
+
* (`patch` / `replace` / `init`) describes the mutation kind. The payload
|
|
6
|
+
* shape is typed by QAR (codegen overlay in `src/qar/payloads.ts`); the
|
|
7
|
+
* filter helper here narrows by skill so consumers can wire one handler
|
|
8
|
+
* per skill without de-multiplexing themselves.
|
|
9
|
+
*
|
|
10
|
+
* `state.update` is bidirectional in QAR's wire model; this surface is
|
|
11
|
+
* server→client only (the inbound stream). SDK-side emission for
|
|
12
|
+
* skill-managed state pushes is reserved for a future ticket.
|
|
13
|
+
*/
|
|
14
|
+
import { KindObserverClient } from './observers.js';
|
|
15
|
+
export class StateClient extends KindObserverClient {
|
|
16
|
+
/** @internal — instantiated by `QodoClient`. */
|
|
17
|
+
constructor() {
|
|
18
|
+
super('state.update');
|
|
19
|
+
}
|
|
20
|
+
onUpdate(filterOrHandler, maybeHandler) {
|
|
21
|
+
if (typeof filterOrHandler === 'function') {
|
|
22
|
+
return this.register(filterOrHandler);
|
|
23
|
+
}
|
|
24
|
+
if (maybeHandler === undefined) {
|
|
25
|
+
throw new Error('StateClient.onUpdate: handler is required when a filter is supplied');
|
|
26
|
+
}
|
|
27
|
+
const filter = filterOrHandler;
|
|
28
|
+
return this.register(maybeHandler, (env) => stateMatches(env, filter));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function stateMatches(env, filter) {
|
|
32
|
+
if (filter.skill !== undefined && env.payload.skill !== filter.skill)
|
|
33
|
+
return false;
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=StateClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateClient.js","sourceRoot":"","sources":["../../src/client/StateClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAWpD,MAAM,OAAO,WAAY,SAAQ,kBAAuD;IACtF,gDAAgD;IAChD;QACE,KAAK,CAAC,cAAc,CAAC,CAAC;IACxB,CAAC;IAYM,QAAQ,CACb,eAA2C,EAC3C,YAA2B;QAE3B,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,MAAM,GAAG,eAAe,CAAC;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC;CACF;AAED,SAAS,YAAY,CAAC,GAAwB,EAAE,MAAmB;IACjE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACnF,OAAO,IAAI,CAAC;AACd,CAAC"}
|