@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,423 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill catalog lockfile.
|
|
3
|
+
*
|
|
4
|
+
* The lockfile (`qodo.lock.yaml`) pins each catalog entry to a content
|
|
5
|
+
* hash, giving consumers reproducible boots when the catalog includes
|
|
6
|
+
* third-party skills. Without it the SDK behaves dynamically — discovery
|
|
7
|
+
* is authoritative.
|
|
8
|
+
*
|
|
9
|
+
* Spec: `knowledge/doc/skills-discovery.md` §5–6.
|
|
10
|
+
*
|
|
11
|
+
* ## Boot semantics
|
|
12
|
+
*
|
|
13
|
+
* 1. Manager looks for `qodo.lock.yaml` at the SDK construction CWD or
|
|
14
|
+
* alongside `agent.toml`. Absence is silent.
|
|
15
|
+
* 2. For each entry, the manager re-hashes the on-disk skill directory
|
|
16
|
+
* and compares against the lockfile's `sha256`.
|
|
17
|
+
* 3. Match → use as-is. Drift → emit `sdk.skill.lock_drift` and throw.
|
|
18
|
+
* Unreachable → emit `sdk.skill.lock_unreachable` and throw.
|
|
19
|
+
* 4. Skills not in the lockfile are still discovered + included.
|
|
20
|
+
*
|
|
21
|
+
* ## File format
|
|
22
|
+
*
|
|
23
|
+
* The SDK ships no YAML serializer for skill bodies and runs zero
|
|
24
|
+
* runtime deps. The lockfile is therefore stored as a YAML subset the
|
|
25
|
+
* skill-frontmatter parser already handles plus a hand-rolled writer.
|
|
26
|
+
*
|
|
27
|
+
* schemaVersion: 1
|
|
28
|
+
* skills:
|
|
29
|
+
* - fqn: anthropic-skills/code-review@1.2.0
|
|
30
|
+
* source:
|
|
31
|
+
* type: package
|
|
32
|
+
* packageName: "@anthropic-skills/core"
|
|
33
|
+
* sha256: "abc123...def"
|
|
34
|
+
* - fqn: local/security@0.0.0
|
|
35
|
+
* source:
|
|
36
|
+
* type: project
|
|
37
|
+
* sha256: "def456...abc"
|
|
38
|
+
*
|
|
39
|
+
* ## Hashing contract
|
|
40
|
+
*
|
|
41
|
+
* `computeSkillHash` produces a stable digest by:
|
|
42
|
+
*
|
|
43
|
+
* 1. Listing every file under the skill directory (recursive), sorted.
|
|
44
|
+
* 2. For each file: hash `relPath\0sha256(content)\0`.
|
|
45
|
+
* 3. Hash the concatenation; return its hex digest.
|
|
46
|
+
*
|
|
47
|
+
* Two skill directories with byte-identical files at identical paths
|
|
48
|
+
* produce identical hashes. Permissions, timestamps, inodes are out
|
|
49
|
+
* of scope — drifting timestamps alone would force needless re-locks.
|
|
50
|
+
*/
|
|
51
|
+
import { createHash } from 'node:crypto';
|
|
52
|
+
import { promises as fs } from 'node:fs';
|
|
53
|
+
import * as path from 'node:path';
|
|
54
|
+
import { parseSkillDocument } from './parser.js';
|
|
55
|
+
/** Current lockfile schema version. */
|
|
56
|
+
export const LOCKFILE_SCHEMA_VERSION = 1;
|
|
57
|
+
/** Default lockfile basename. Manager looks beside `agent.toml` + at CWD. */
|
|
58
|
+
export const LOCKFILE_BASENAME = 'qodo.lock.yaml';
|
|
59
|
+
export class LockfileParseError extends Error {
|
|
60
|
+
constructor(message) {
|
|
61
|
+
super(message);
|
|
62
|
+
this.name = 'LockfileParseError';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
export class LockfileValidationError extends Error {
|
|
66
|
+
fqn;
|
|
67
|
+
kind;
|
|
68
|
+
constructor(fqn, kind, message) {
|
|
69
|
+
super(message);
|
|
70
|
+
this.name = 'LockfileValidationError';
|
|
71
|
+
this.fqn = fqn;
|
|
72
|
+
this.kind = kind;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// ---------------------------------------------------------------------------
|
|
76
|
+
// IO
|
|
77
|
+
// ---------------------------------------------------------------------------
|
|
78
|
+
/**
|
|
79
|
+
* Find the lockfile at the manager's CWD or one of the supplied search
|
|
80
|
+
* paths. Returns the first match's path; `null` when none exist.
|
|
81
|
+
*/
|
|
82
|
+
export async function findLockfile(searchPaths) {
|
|
83
|
+
for (const dir of searchPaths) {
|
|
84
|
+
if (dir.length === 0)
|
|
85
|
+
continue;
|
|
86
|
+
const candidate = path.join(dir, LOCKFILE_BASENAME);
|
|
87
|
+
try {
|
|
88
|
+
const stat = await fs.stat(candidate);
|
|
89
|
+
if (stat.isFile())
|
|
90
|
+
return candidate;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// Missing file or other error — try next path.
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Read + parse a lockfile from `lockfilePath`. Throws
|
|
100
|
+
* {@link LockfileParseError} on schema violations.
|
|
101
|
+
*/
|
|
102
|
+
export async function loadLockfile(lockfilePath) {
|
|
103
|
+
const text = await fs.readFile(lockfilePath, 'utf-8');
|
|
104
|
+
return parseLockfile(text);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Parse a lockfile from a raw YAML string. Public for tests and the
|
|
108
|
+
* forthcoming CLI's lint/validate commands.
|
|
109
|
+
*/
|
|
110
|
+
export function parseLockfile(text) {
|
|
111
|
+
// Re-use the skill parser's YAML subset by wrapping the lockfile in a
|
|
112
|
+
// frontmatter envelope. The format we use IS the YAML subset the
|
|
113
|
+
// skill frontmatter parser handles, so re-using avoids a second
|
|
114
|
+
// hand-rolled YAML engine.
|
|
115
|
+
const wrapped = `---\n${text}\n---\n`;
|
|
116
|
+
const parsed = parseSkillDocument(wrapped);
|
|
117
|
+
const root = parsed.frontmatter;
|
|
118
|
+
const version = root['schemaVersion'];
|
|
119
|
+
if (version !== LOCKFILE_SCHEMA_VERSION) {
|
|
120
|
+
throw new LockfileParseError(`unsupported lockfile schemaVersion: ${JSON.stringify(version)}; expected ${LOCKFILE_SCHEMA_VERSION}`);
|
|
121
|
+
}
|
|
122
|
+
const rawSkills = root['skills'];
|
|
123
|
+
if (!Array.isArray(rawSkills)) {
|
|
124
|
+
throw new LockfileParseError('lockfile `skills` must be an array');
|
|
125
|
+
}
|
|
126
|
+
const skills = [];
|
|
127
|
+
for (const entry of rawSkills) {
|
|
128
|
+
if (entry === null || typeof entry !== 'object' || Array.isArray(entry)) {
|
|
129
|
+
throw new LockfileParseError('lockfile entry must be an object');
|
|
130
|
+
}
|
|
131
|
+
const obj = entry;
|
|
132
|
+
const fqn = obj.fqn;
|
|
133
|
+
const sha256 = obj.sha256;
|
|
134
|
+
const rawSource = obj.source;
|
|
135
|
+
if (typeof fqn !== 'string' || fqn.length === 0) {
|
|
136
|
+
throw new LockfileParseError('lockfile entry missing `fqn` (non-empty string)');
|
|
137
|
+
}
|
|
138
|
+
if (typeof sha256 !== 'string' || sha256.length === 0) {
|
|
139
|
+
throw new LockfileParseError(`lockfile entry ${fqn} missing \`sha256\``);
|
|
140
|
+
}
|
|
141
|
+
if (rawSource === null || typeof rawSource !== 'object' || Array.isArray(rawSource)) {
|
|
142
|
+
throw new LockfileParseError(`lockfile entry ${fqn} missing \`source\` object`);
|
|
143
|
+
}
|
|
144
|
+
skills.push({ fqn, sha256, source: parseSource(fqn, rawSource) });
|
|
145
|
+
}
|
|
146
|
+
return { schemaVersion: LOCKFILE_SCHEMA_VERSION, skills };
|
|
147
|
+
}
|
|
148
|
+
function parseSource(fqn, raw) {
|
|
149
|
+
const type = raw.type;
|
|
150
|
+
switch (type) {
|
|
151
|
+
case 'project':
|
|
152
|
+
case 'user':
|
|
153
|
+
case 'bundled':
|
|
154
|
+
return typeof raw.path === 'string'
|
|
155
|
+
? { type, path: raw.path }
|
|
156
|
+
: { type };
|
|
157
|
+
case 'config':
|
|
158
|
+
if (typeof raw.path !== 'string' || raw.path.length === 0) {
|
|
159
|
+
throw new LockfileParseError(`lockfile entry ${fqn} source: 'config' missing \`path\``);
|
|
160
|
+
}
|
|
161
|
+
return { type: 'config', path: raw.path };
|
|
162
|
+
case 'package':
|
|
163
|
+
if (typeof raw.packageName !== 'string' || raw.packageName.length === 0) {
|
|
164
|
+
throw new LockfileParseError(`lockfile entry ${fqn} source: 'package' missing \`packageName\``);
|
|
165
|
+
}
|
|
166
|
+
return typeof raw.path === 'string'
|
|
167
|
+
? { type: 'package', packageName: raw.packageName, path: raw.path }
|
|
168
|
+
: { type: 'package', packageName: raw.packageName };
|
|
169
|
+
case 'cli-fetched':
|
|
170
|
+
return typeof raw.ref === 'string'
|
|
171
|
+
? { type: 'cli-fetched', ref: raw.ref }
|
|
172
|
+
: { type: 'cli-fetched' };
|
|
173
|
+
default:
|
|
174
|
+
throw new LockfileParseError(`lockfile entry ${fqn} source.type ${JSON.stringify(type)} is not a known skill source type`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Serialize a lockfile structure to its on-disk YAML form. Output is
|
|
179
|
+
* deterministic — entries sort by FQN; the writer does not depend on
|
|
180
|
+
* input order.
|
|
181
|
+
*/
|
|
182
|
+
export function writeLockfile(lockfile) {
|
|
183
|
+
const sorted = [...lockfile.skills].sort((a, b) => a.fqn.localeCompare(b.fqn));
|
|
184
|
+
const lines = [`schemaVersion: ${lockfile.schemaVersion}`, 'skills:'];
|
|
185
|
+
if (sorted.length === 0) {
|
|
186
|
+
// YAML's `skills:` with no entries renders as `null`; use the
|
|
187
|
+
// empty-flow-sequence form for clarity.
|
|
188
|
+
lines[lines.length - 1] = 'skills: []';
|
|
189
|
+
return `${lines.join('\n')}\n`;
|
|
190
|
+
}
|
|
191
|
+
for (const entry of sorted) {
|
|
192
|
+
lines.push(` - fqn: ${quoteIfNeeded(entry.fqn)}`);
|
|
193
|
+
lines.push(' source:');
|
|
194
|
+
for (const [key, value] of sourceKeyValues(entry.source)) {
|
|
195
|
+
lines.push(` ${key}: ${quoteIfNeeded(value)}`);
|
|
196
|
+
}
|
|
197
|
+
lines.push(` sha256: ${quoteIfNeeded(entry.sha256)}`);
|
|
198
|
+
}
|
|
199
|
+
return `${lines.join('\n')}\n`;
|
|
200
|
+
}
|
|
201
|
+
function sourceKeyValues(source) {
|
|
202
|
+
const out = [['type', source.type]];
|
|
203
|
+
switch (source.type) {
|
|
204
|
+
case 'config':
|
|
205
|
+
case 'project':
|
|
206
|
+
case 'user':
|
|
207
|
+
case 'bundled':
|
|
208
|
+
if (source.path !== undefined)
|
|
209
|
+
out.push(['path', source.path]);
|
|
210
|
+
break;
|
|
211
|
+
case 'package':
|
|
212
|
+
out.push(['packageName', source.packageName]);
|
|
213
|
+
if (source.path !== undefined)
|
|
214
|
+
out.push(['path', source.path]);
|
|
215
|
+
break;
|
|
216
|
+
case 'cli-fetched':
|
|
217
|
+
if (source.ref !== undefined)
|
|
218
|
+
out.push(['ref', source.ref]);
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
return out;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Quote a YAML scalar when it carries characters the parser would mis-classify
|
|
225
|
+
* OR when a bare scalar would be re-parsed as a non-string by
|
|
226
|
+
* `parseSkillDocument`. The validator's YAML subset recognizes booleans
|
|
227
|
+
* (`on`/`off`/`true`/`false`/`yes`/`no`), null (`null`/`~`), and numbers as
|
|
228
|
+
* non-string scalars; emitting those bare would round-trip the lockfile
|
|
229
|
+
* to a typed value instead of the source string.
|
|
230
|
+
*/
|
|
231
|
+
function quoteIfNeeded(value) {
|
|
232
|
+
if (value.length === 0)
|
|
233
|
+
return '""';
|
|
234
|
+
if (looksLikeYamlBooleanOrNull(value) || looksLikeYamlNumber(value)) {
|
|
235
|
+
return `"${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
|
|
236
|
+
}
|
|
237
|
+
if (/^[A-Za-z0-9._/@:+-]+$/.test(value))
|
|
238
|
+
return value;
|
|
239
|
+
const escaped = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
240
|
+
return `"${escaped}"`;
|
|
241
|
+
}
|
|
242
|
+
/** YAML 1.1 boolean + null literals the parser interprets. */
|
|
243
|
+
function looksLikeYamlBooleanOrNull(value) {
|
|
244
|
+
switch (value) {
|
|
245
|
+
case 'null':
|
|
246
|
+
case 'Null':
|
|
247
|
+
case 'NULL':
|
|
248
|
+
case '~':
|
|
249
|
+
case 'true':
|
|
250
|
+
case 'True':
|
|
251
|
+
case 'TRUE':
|
|
252
|
+
case 'false':
|
|
253
|
+
case 'False':
|
|
254
|
+
case 'FALSE':
|
|
255
|
+
case 'yes':
|
|
256
|
+
case 'Yes':
|
|
257
|
+
case 'YES':
|
|
258
|
+
case 'no':
|
|
259
|
+
case 'No':
|
|
260
|
+
case 'NO':
|
|
261
|
+
case 'on':
|
|
262
|
+
case 'On':
|
|
263
|
+
case 'ON':
|
|
264
|
+
case 'off':
|
|
265
|
+
case 'Off':
|
|
266
|
+
case 'OFF':
|
|
267
|
+
return true;
|
|
268
|
+
default:
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/** Detect YAML number literal shapes (integer or float). */
|
|
273
|
+
function looksLikeYamlNumber(value) {
|
|
274
|
+
if (/^-?\d+$/.test(value))
|
|
275
|
+
return true;
|
|
276
|
+
if (/^-?\d+\.\d+(e[-+]?\d+)?$/i.test(value))
|
|
277
|
+
return true;
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
// ---------------------------------------------------------------------------
|
|
281
|
+
// Content hashing
|
|
282
|
+
// ---------------------------------------------------------------------------
|
|
283
|
+
/**
|
|
284
|
+
* Compute a deterministic SHA-256 hash of a skill's directory contents.
|
|
285
|
+
*
|
|
286
|
+
* Walks the directory recursively, sorts the file list, and digests
|
|
287
|
+
* `<relPath>\0<sha256(content)>\0` for each file. The result is a hex
|
|
288
|
+
* digest stable across hosts and filesystems.
|
|
289
|
+
*
|
|
290
|
+
* Symlinks are followed if they resolve inside the skill directory;
|
|
291
|
+
* symlinks pointing outside are skipped (and recorded in the
|
|
292
|
+
* `skipped` list so the caller can surface the audit if needed).
|
|
293
|
+
*/
|
|
294
|
+
export async function computeSkillHash(skillDir) {
|
|
295
|
+
const skipped = [];
|
|
296
|
+
// Track visited canonical directory paths so a symlink cycle (e.g.
|
|
297
|
+
// `sub/link -> ../sub`) cannot drive collectFiles into unbounded
|
|
298
|
+
// recursion. At boot the manager calls computeSkillHash() for
|
|
299
|
+
// lockfile validation, so a cycle here would hang SDK startup.
|
|
300
|
+
const visitedDirs = new Set();
|
|
301
|
+
const entries = await collectFiles(skillDir, '', skipped, visitedDirs);
|
|
302
|
+
entries.sort((a, b) => a.rel.localeCompare(b.rel));
|
|
303
|
+
const outer = createHash('sha256');
|
|
304
|
+
for (const entry of entries) {
|
|
305
|
+
const fileHash = createHash('sha256');
|
|
306
|
+
const data = await fs.readFile(entry.absolute);
|
|
307
|
+
fileHash.update(data);
|
|
308
|
+
outer.update(entry.rel);
|
|
309
|
+
outer.update('\0');
|
|
310
|
+
outer.update(fileHash.digest('hex'));
|
|
311
|
+
outer.update('\0');
|
|
312
|
+
}
|
|
313
|
+
return { sha256: outer.digest('hex'), fileCount: entries.length, skipped };
|
|
314
|
+
}
|
|
315
|
+
async function collectFiles(root, rel, skipped, visitedDirs) {
|
|
316
|
+
const out = [];
|
|
317
|
+
const dirAbs = path.join(root, rel);
|
|
318
|
+
// Cycle defense: canonicalize this directory's path and bail if we've
|
|
319
|
+
// already walked it via a different rel-path (i.e., a symlink loop).
|
|
320
|
+
try {
|
|
321
|
+
const canon = await fs.realpath(dirAbs);
|
|
322
|
+
if (visitedDirs.has(canon)) {
|
|
323
|
+
return out;
|
|
324
|
+
}
|
|
325
|
+
visitedDirs.add(canon);
|
|
326
|
+
}
|
|
327
|
+
catch {
|
|
328
|
+
// realpath failure (broken symlink, ENOENT) — bail silently; the
|
|
329
|
+
// readdir below will surface any remaining error.
|
|
330
|
+
}
|
|
331
|
+
let entries;
|
|
332
|
+
try {
|
|
333
|
+
entries = await fs.readdir(dirAbs, { withFileTypes: true });
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
return out;
|
|
337
|
+
}
|
|
338
|
+
for (const entry of entries) {
|
|
339
|
+
const childRel = rel.length === 0 ? entry.name : `${rel}/${entry.name}`;
|
|
340
|
+
const childAbs = path.join(dirAbs, entry.name);
|
|
341
|
+
if (entry.isSymbolicLink()) {
|
|
342
|
+
try {
|
|
343
|
+
const resolved = await fs.realpath(childAbs);
|
|
344
|
+
const rootResolved = await fs.realpath(root);
|
|
345
|
+
const r = path.relative(rootResolved, resolved);
|
|
346
|
+
if (r.length === 0 || r === '..' || r.startsWith(`..${path.sep}`) || path.isAbsolute(r)) {
|
|
347
|
+
skipped.push(childRel);
|
|
348
|
+
continue;
|
|
349
|
+
}
|
|
350
|
+
// Treat as file or dir based on target stat.
|
|
351
|
+
const targetStat = await fs.stat(resolved);
|
|
352
|
+
if (targetStat.isDirectory()) {
|
|
353
|
+
const inner = await collectFiles(root, childRel, skipped, visitedDirs);
|
|
354
|
+
out.push(...inner);
|
|
355
|
+
continue;
|
|
356
|
+
}
|
|
357
|
+
if (targetStat.isFile()) {
|
|
358
|
+
out.push({ absolute: childAbs, rel: childRel });
|
|
359
|
+
}
|
|
360
|
+
continue;
|
|
361
|
+
}
|
|
362
|
+
catch {
|
|
363
|
+
skipped.push(childRel);
|
|
364
|
+
continue;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
if (entry.isDirectory()) {
|
|
368
|
+
const inner = await collectFiles(root, childRel, skipped, visitedDirs);
|
|
369
|
+
out.push(...inner);
|
|
370
|
+
continue;
|
|
371
|
+
}
|
|
372
|
+
if (entry.isFile()) {
|
|
373
|
+
out.push({ absolute: childAbs, rel: childRel });
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return out;
|
|
377
|
+
}
|
|
378
|
+
// ---------------------------------------------------------------------------
|
|
379
|
+
// Validation
|
|
380
|
+
// ---------------------------------------------------------------------------
|
|
381
|
+
/**
|
|
382
|
+
* Validate one lockfile entry against the current on-disk skill. Returns
|
|
383
|
+
* a structured outcome the manager translates to telemetry + boot
|
|
384
|
+
* behavior.
|
|
385
|
+
*/
|
|
386
|
+
export async function validateLockfileEntry(entry, skill) {
|
|
387
|
+
if (skill === undefined) {
|
|
388
|
+
return { outcome: 'unreachable', reason: 'skill not present in discovered catalog' };
|
|
389
|
+
}
|
|
390
|
+
let computed;
|
|
391
|
+
try {
|
|
392
|
+
computed = await computeSkillHash(skill.path);
|
|
393
|
+
}
|
|
394
|
+
catch (err) {
|
|
395
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
396
|
+
return { outcome: 'unreachable', reason };
|
|
397
|
+
}
|
|
398
|
+
if (computed.sha256 !== entry.sha256) {
|
|
399
|
+
return {
|
|
400
|
+
outcome: 'drift',
|
|
401
|
+
actualSha256: computed.sha256,
|
|
402
|
+
expectedSha256: entry.sha256,
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
return { outcome: 'ok', actualSha256: computed.sha256 };
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Build a lockfile from an already-discovered catalog. The CLI's
|
|
409
|
+
* `qodo skills lock` op calls this after a fresh `discover()`.
|
|
410
|
+
*/
|
|
411
|
+
export async function buildLockfile(skills) {
|
|
412
|
+
const entries = [];
|
|
413
|
+
for (const skill of skills) {
|
|
414
|
+
const computed = await computeSkillHash(skill.path);
|
|
415
|
+
entries.push({
|
|
416
|
+
fqn: skill.fqn,
|
|
417
|
+
source: skill.source,
|
|
418
|
+
sha256: computed.sha256,
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
return { schemaVersion: LOCKFILE_SCHEMA_VERSION, skills: entries };
|
|
422
|
+
}
|
|
423
|
+
//# sourceMappingURL=lockfile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../src/skills/lockfile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `SkillsManager` — browser stub.
|
|
3
|
+
*
|
|
4
|
+
* The Node version walks the filesystem to discover `SKILL.md` files,
|
|
5
|
+
* which is fundamentally Node-only. In the browser there is no
|
|
6
|
+
* filesystem, no `node_modules`, no `~/.qodo/skills`. Rather than
|
|
7
|
+
* polyfill, the stub throws a clear error directing the consumer to
|
|
8
|
+
* either:
|
|
9
|
+
*
|
|
10
|
+
* 1. Not configure `ClientOptions.skills` in browser code paths
|
|
11
|
+
* (the field is optional; omitting it leaves the SDK behaving
|
|
12
|
+
* exactly as today).
|
|
13
|
+
* 2. If skills are needed, run discovery server-side and ship the
|
|
14
|
+
* pre-built catalog through their own data plane.
|
|
15
|
+
*
|
|
16
|
+
* The Node version of this file is `manager.ts`; the swap is wired via
|
|
17
|
+
* the `browser` field in `package.json`.
|
|
18
|
+
*/
|
|
19
|
+
import type { ParsedSkill, SkillEvent, SkillsConfig } from './types.js';
|
|
20
|
+
export interface CatalogSnapshot {
|
|
21
|
+
readonly skills: readonly ParsedSkill[];
|
|
22
|
+
readonly bySource: readonly never[];
|
|
23
|
+
readonly excluded: readonly never[];
|
|
24
|
+
readonly epoch: number;
|
|
25
|
+
}
|
|
26
|
+
export interface SkillGetOptions {
|
|
27
|
+
readonly includeAllVersions?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Mirrors the Node-side `ResolvedRequiresCaps` shape so consumer code
|
|
31
|
+
* typing against the manager surface compiles identically in both
|
|
32
|
+
* environments. (Activation pipeline is Node-only; the values returned
|
|
33
|
+
* here are the documented defaults so a reader-only consumer
|
|
34
|
+
* surfacing the operative limits in a UI sees them.)
|
|
35
|
+
*/
|
|
36
|
+
export interface ResolvedRequiresCaps {
|
|
37
|
+
readonly maxDepth: number;
|
|
38
|
+
readonly maxTransitive: number;
|
|
39
|
+
readonly maxTransitiveTokens: number;
|
|
40
|
+
}
|
|
41
|
+
export declare class SkillsManager {
|
|
42
|
+
constructor(_config: SkillsConfig);
|
|
43
|
+
discover(): Promise<CatalogSnapshot>;
|
|
44
|
+
forwardEvents(_events: readonly SkillEvent[]): void;
|
|
45
|
+
get isReady(): boolean;
|
|
46
|
+
get currentSnapshot(): CatalogSnapshot | null;
|
|
47
|
+
get defaultActivate(): readonly string[] | undefined;
|
|
48
|
+
get indexCharBudget(): number | undefined;
|
|
49
|
+
get embedder(): SkillsConfig['embedder'] | undefined;
|
|
50
|
+
get activationConfig(): SkillsConfig['activation'] | undefined;
|
|
51
|
+
list(_opts?: SkillGetOptions): Promise<readonly ParsedSkill[]>;
|
|
52
|
+
get(_specifier: string): Promise<ParsedSkill | null>;
|
|
53
|
+
resolveOrThrow(_specifiers: readonly string[]): Promise<readonly ParsedSkill[]>;
|
|
54
|
+
isTrusted(_skill: ParsedSkill): boolean;
|
|
55
|
+
get requiresCapsResolved(): ResolvedRequiresCaps;
|
|
56
|
+
getActiveSkills(): readonly string[];
|
|
57
|
+
markActive(_fqn: string): boolean;
|
|
58
|
+
deactivate(_fqn: string): boolean;
|
|
59
|
+
resetActive(): void;
|
|
60
|
+
get internalActiveFqns(): Set<string>;
|
|
61
|
+
startWatching(): Promise<void>;
|
|
62
|
+
stopWatching(): void;
|
|
63
|
+
dispose(): void;
|
|
64
|
+
get catalogEpoch(): number;
|
|
65
|
+
onRebuild(_listener: (snapshot: CatalogSnapshot) => void): () => void;
|
|
66
|
+
rebuildNow(): Promise<CatalogSnapshot>;
|
|
67
|
+
}
|
|
68
|
+
export declare class SkillNotFoundError extends Error {
|
|
69
|
+
readonly specifier: string;
|
|
70
|
+
constructor(specifier: string);
|
|
71
|
+
}
|
|
72
|
+
export declare class SkillAmbiguousPinError extends Error {
|
|
73
|
+
readonly specifier: string;
|
|
74
|
+
readonly candidates: readonly string[];
|
|
75
|
+
constructor(specifier: string, candidates: readonly string[]);
|
|
76
|
+
}
|
|
77
|
+
export declare class SkillsBudgetExceededError extends Error {
|
|
78
|
+
readonly omittedSkills: readonly string[];
|
|
79
|
+
readonly hardCap: number;
|
|
80
|
+
constructor(omittedSkills: readonly string[], hardCap: number);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Mirrors the Node-side `QodoSkillError`. Thrown by the activation
|
|
84
|
+
* pipeline when caller-pin resolution fails (trust violation, cap
|
|
85
|
+
* breach, cycle, unresolved dep). The browser stub doesn't run the
|
|
86
|
+
* pipeline, but the class shape is exposed so consumer `catch (err
|
|
87
|
+
* instanceof QodoSkillError)` blocks compile in both environments.
|
|
88
|
+
*/
|
|
89
|
+
export declare class QodoSkillError extends Error {
|
|
90
|
+
readonly skill: string;
|
|
91
|
+
readonly reason: 'requires_trust_violation' | 'requires_cap_exceeded' | 'requires_cycle' | 'requires_unresolved' | 'not_found';
|
|
92
|
+
constructor(skill: string, reason: QodoSkillError['reason'], message: string);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=manager.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.browser.d.ts","sourceRoot":"","sources":["../../src/skills/manager.browser.ts"],"names":[],"mappings":"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"}
|