@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,159 @@
|
|
|
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
|
+
const BROWSER_ERROR_MESSAGE = 'SkillsManager requires Node-only APIs (node:fs / node:path / node:os) and is not ' +
|
|
20
|
+
'supported in the browser bundle. Omit ClientOptions.skills in browser code paths, ' +
|
|
21
|
+
'or run skill discovery server-side and ship the catalog via your own data plane.';
|
|
22
|
+
export class SkillsManager {
|
|
23
|
+
constructor(_config) {
|
|
24
|
+
// Construction succeeds so consumers can hold an instance for type
|
|
25
|
+
// narrowing; the first method call surfaces the error.
|
|
26
|
+
}
|
|
27
|
+
discover() {
|
|
28
|
+
return Promise.reject(new Error(BROWSER_ERROR_MESSAGE));
|
|
29
|
+
}
|
|
30
|
+
forwardEvents(_events) {
|
|
31
|
+
// no-op — the manager is inert in the browser stub
|
|
32
|
+
}
|
|
33
|
+
get isReady() {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
get currentSnapshot() {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
get defaultActivate() {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
get indexCharBudget() {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
get embedder() {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
get activationConfig() {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
list(_opts) {
|
|
52
|
+
return Promise.reject(new Error(BROWSER_ERROR_MESSAGE));
|
|
53
|
+
}
|
|
54
|
+
get(_specifier) {
|
|
55
|
+
return Promise.reject(new Error(BROWSER_ERROR_MESSAGE));
|
|
56
|
+
}
|
|
57
|
+
resolveOrThrow(_specifiers) {
|
|
58
|
+
return Promise.reject(new Error(BROWSER_ERROR_MESSAGE));
|
|
59
|
+
}
|
|
60
|
+
// ---------------------------------------------------------------------
|
|
61
|
+
// Trust / activation surfaces. Inert in the browser stub; the shapes
|
|
62
|
+
// exist so consumer type imports compile across environments.
|
|
63
|
+
// ---------------------------------------------------------------------
|
|
64
|
+
isTrusted(_skill) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
get requiresCapsResolved() {
|
|
68
|
+
return { maxDepth: 3, maxTransitive: 8, maxTransitiveTokens: 50 * 1024 };
|
|
69
|
+
}
|
|
70
|
+
getActiveSkills() {
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
markActive(_fqn) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
deactivate(_fqn) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
resetActive() {
|
|
80
|
+
// no-op — the browser stub has no active state
|
|
81
|
+
}
|
|
82
|
+
get internalActiveFqns() {
|
|
83
|
+
// Returning a fresh empty set keeps the cross-environment shape
|
|
84
|
+
// identical; mutations here are inert because the stub doesn't
|
|
85
|
+
// back any of the active-state methods with shared state.
|
|
86
|
+
return new Set();
|
|
87
|
+
}
|
|
88
|
+
// ---------------------------------------------------------------------
|
|
89
|
+
// Hot reload surface. All no-ops in the browser stub.
|
|
90
|
+
// ---------------------------------------------------------------------
|
|
91
|
+
startWatching() {
|
|
92
|
+
return Promise.resolve();
|
|
93
|
+
}
|
|
94
|
+
stopWatching() {
|
|
95
|
+
// no-op
|
|
96
|
+
}
|
|
97
|
+
dispose() {
|
|
98
|
+
// no-op
|
|
99
|
+
}
|
|
100
|
+
get catalogEpoch() {
|
|
101
|
+
return 0;
|
|
102
|
+
}
|
|
103
|
+
onRebuild(_listener) {
|
|
104
|
+
return () => { };
|
|
105
|
+
}
|
|
106
|
+
rebuildNow() {
|
|
107
|
+
return Promise.reject(new Error(BROWSER_ERROR_MESSAGE));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
export class SkillNotFoundError extends Error {
|
|
111
|
+
specifier;
|
|
112
|
+
constructor(specifier) {
|
|
113
|
+
super(`Skill not found: ${specifier}`);
|
|
114
|
+
this.name = 'SkillNotFoundError';
|
|
115
|
+
this.specifier = specifier;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
export class SkillAmbiguousPinError extends Error {
|
|
119
|
+
specifier;
|
|
120
|
+
candidates;
|
|
121
|
+
constructor(specifier, candidates) {
|
|
122
|
+
super(`Skill pin "${specifier}" is ambiguous — multiple vendors ship a skill ` +
|
|
123
|
+
`of that name: ${candidates.join(', ')}. Pin with a full ` +
|
|
124
|
+
'`vendor/name` specifier to disambiguate.');
|
|
125
|
+
this.name = 'SkillAmbiguousPinError';
|
|
126
|
+
this.specifier = specifier;
|
|
127
|
+
this.candidates = candidates;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
export class SkillsBudgetExceededError extends Error {
|
|
131
|
+
omittedSkills;
|
|
132
|
+
hardCap;
|
|
133
|
+
constructor(omittedSkills, hardCap) {
|
|
134
|
+
super(`caller-pinned skills exceeded the slim-index hard cap (${hardCap} chars). ` +
|
|
135
|
+
`Omitted: ${omittedSkills.join(', ')}. Reduce the pin list or raise ` +
|
|
136
|
+
'`SkillsConfig.indexCharBudget`.');
|
|
137
|
+
this.name = 'SkillsBudgetExceededError';
|
|
138
|
+
this.omittedSkills = omittedSkills;
|
|
139
|
+
this.hardCap = hardCap;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Mirrors the Node-side `QodoSkillError`. Thrown by the activation
|
|
144
|
+
* pipeline when caller-pin resolution fails (trust violation, cap
|
|
145
|
+
* breach, cycle, unresolved dep). The browser stub doesn't run the
|
|
146
|
+
* pipeline, but the class shape is exposed so consumer `catch (err
|
|
147
|
+
* instanceof QodoSkillError)` blocks compile in both environments.
|
|
148
|
+
*/
|
|
149
|
+
export class QodoSkillError extends Error {
|
|
150
|
+
skill;
|
|
151
|
+
reason;
|
|
152
|
+
constructor(skill, reason, message) {
|
|
153
|
+
super(message);
|
|
154
|
+
this.name = 'QodoSkillError';
|
|
155
|
+
this.skill = skill;
|
|
156
|
+
this.reason = reason;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=manager.browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.browser.js","sourceRoot":"","sources":["../../src/skills/manager.browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `SkillsManager`.
|
|
3
|
+
*
|
|
4
|
+
* Walks every configured source, parses + validates each `SKILL.md`, then
|
|
5
|
+
* builds an in-memory catalog keyed by fully-qualified
|
|
6
|
+
* `<vendor>/<name>@<version>` with shadowing.
|
|
7
|
+
*
|
|
8
|
+
* Construction is synchronous and cheap (validate config, store). The
|
|
9
|
+
* `discover()` method does the disk IO; it's idempotent — subsequent
|
|
10
|
+
* calls return the same already-built catalog. Public lookups via
|
|
11
|
+
* `list()` / `get()` await discovery completion implicitly.
|
|
12
|
+
*
|
|
13
|
+
* Invariants:
|
|
14
|
+
* - Catalog is built once per discovery; hot reload reruns discovery
|
|
15
|
+
* to produce a fresh snapshot.
|
|
16
|
+
* - Trust tier is derived from source type only; consumer-supplied
|
|
17
|
+
* `trustedSources` is used to elevate third-party sources.
|
|
18
|
+
* - Per-skill `min_sdk_version` exclusion lands here.
|
|
19
|
+
*/
|
|
20
|
+
import { type WalkerEnv } from './sources/index.js';
|
|
21
|
+
import type { SourceWalkResult } from './sources/index.js';
|
|
22
|
+
import type { ParsedSkill, SkillEvent, SkillSource, SkillsConfig } from './types.js';
|
|
23
|
+
/**
|
|
24
|
+
* Lookup options for `SkillsManager.get`. Both fields optional — without
|
|
25
|
+
* a version pin the manager returns the latest version of the matched
|
|
26
|
+
* skill.
|
|
27
|
+
*/
|
|
28
|
+
export interface SkillGetOptions {
|
|
29
|
+
readonly includeAllVersions?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Snapshot of catalog state for tests / introspection. Stable across
|
|
33
|
+
* discovery completion; the manager never mutates the array after
|
|
34
|
+
* `discover()` resolves.
|
|
35
|
+
*/
|
|
36
|
+
export interface CatalogSnapshot {
|
|
37
|
+
readonly skills: readonly ParsedSkill[];
|
|
38
|
+
/** Source-by-source breakdown — useful for the slim-index source attribution. */
|
|
39
|
+
readonly bySource: readonly SourceWalkResult[];
|
|
40
|
+
/** Path-keyed map of skills that were dropped during catalog construction. */
|
|
41
|
+
readonly excluded: readonly {
|
|
42
|
+
readonly source: SkillSource;
|
|
43
|
+
readonly path: string;
|
|
44
|
+
readonly reason: string;
|
|
45
|
+
}[];
|
|
46
|
+
/**
|
|
47
|
+
* Monotonically-increasing counter bumped on every successful build.
|
|
48
|
+
* Starts at `1` after the initial `discover()`; each watcher-triggered
|
|
49
|
+
* rebuild increments by one. Body caches can key by `(fqn, epoch)` to
|
|
50
|
+
* evict stale entries without race-y read locks.
|
|
51
|
+
*/
|
|
52
|
+
readonly epoch: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Resolved `requires:` cap configuration with defaults filled in. Each
|
|
56
|
+
* cap is read by `SkillsManager` consumers (the MCP server's `get_skill`
|
|
57
|
+
* resolver, the `TaskClient` caller-pin activation path) to enforce the
|
|
58
|
+
* depth / breadth / token caps uniformly.
|
|
59
|
+
*/
|
|
60
|
+
export interface ResolvedRequiresCaps {
|
|
61
|
+
readonly maxDepth: number;
|
|
62
|
+
readonly maxTransitive: number;
|
|
63
|
+
readonly maxTransitiveTokens: number;
|
|
64
|
+
}
|
|
65
|
+
export declare class SkillsManager {
|
|
66
|
+
private readonly config;
|
|
67
|
+
private readonly env;
|
|
68
|
+
private readonly emit;
|
|
69
|
+
private readonly trustedSourceIdentities;
|
|
70
|
+
private readonly requiresCaps;
|
|
71
|
+
/**
|
|
72
|
+
* Per-client active-skill set. Populated by caller-pin activation
|
|
73
|
+
* (`TaskClient`) and by LLM-driven `get_skill` calls (the MCP server,
|
|
74
|
+
* via `markLoaded`). Cleared by `resetActive()`.
|
|
75
|
+
*
|
|
76
|
+
* SDK 2.0 has no per-task AsyncLocalStorage env-scope (the design that
|
|
77
|
+
* shipped on SDK 1.x's `EnvironmentServices`); active-state lives on
|
|
78
|
+
* the manager, scoped to the client lifetime. Concurrent dispatches
|
|
79
|
+
* against the same client observe a merged set — documented in the
|
|
80
|
+
* architectural-translation note. `disconnect()` calls
|
|
81
|
+
* `skillsMcpServer.dispose()` which calls `resetActive()` (transitively
|
|
82
|
+
* through the existing `activeFqns` clear), so a fresh `connect()`
|
|
83
|
+
* starts cold.
|
|
84
|
+
*/
|
|
85
|
+
private readonly activeFqns;
|
|
86
|
+
private discoverPromise;
|
|
87
|
+
private snapshot;
|
|
88
|
+
/**
|
|
89
|
+
* Active `fs.watch` handles keyed by the absolute directory path
|
|
90
|
+
* being watched. Populated by `startWatching()`, cleared by
|
|
91
|
+
* `stopWatching()` / `dispose()`.
|
|
92
|
+
*/
|
|
93
|
+
private watchers;
|
|
94
|
+
/** Pending watcher-triggered rebuild timer, debounced. */
|
|
95
|
+
private rebuildTimer;
|
|
96
|
+
/** Promise that resolves with the next rebuilt snapshot, if a rebuild is in-flight. */
|
|
97
|
+
private rebuildPromise;
|
|
98
|
+
/** Optional listener fired after every successful rebuild — used by tests / consumers. */
|
|
99
|
+
private rebuildListeners;
|
|
100
|
+
private epoch;
|
|
101
|
+
/**
|
|
102
|
+
* In-flight `startWatching()` promise. Concurrent calls await the
|
|
103
|
+
* same promise so the install pass is serialised — defends against
|
|
104
|
+
* the watcher-duplication race when auto-start + manual start fire
|
|
105
|
+
* close together.
|
|
106
|
+
*/
|
|
107
|
+
private startWatchingPromise;
|
|
108
|
+
/**
|
|
109
|
+
* Marks that a watcher event arrived while a rebuild was already
|
|
110
|
+
* in flight. The current rebuild's `.then` re-schedules so the late
|
|
111
|
+
* change isn't dropped.
|
|
112
|
+
*/
|
|
113
|
+
private pendingRebuild;
|
|
114
|
+
constructor(config: SkillsConfig, env?: WalkerEnv);
|
|
115
|
+
/**
|
|
116
|
+
* Forward a renderer-produced event batch to the configured sink.
|
|
117
|
+
* Used by `TaskClient`'s skills injection helpers — the renderer is
|
|
118
|
+
* pure and returns events as data; the manager owns the sink wiring
|
|
119
|
+
* so consumers see one consistent emission surface.
|
|
120
|
+
*/
|
|
121
|
+
forwardEvents(events: readonly SkillEvent[]): void;
|
|
122
|
+
/**
|
|
123
|
+
* Walk every configured source, parse + validate, build the FQN-keyed
|
|
124
|
+
* catalog. Idempotent — concurrent calls share one in-flight promise.
|
|
125
|
+
*/
|
|
126
|
+
discover(): Promise<CatalogSnapshot>;
|
|
127
|
+
/** Resolved `true` once `discover()` has completed at least once. */
|
|
128
|
+
get isReady(): boolean;
|
|
129
|
+
/** Synchronous snapshot accessor. Returns `null` until `discover()` resolves. */
|
|
130
|
+
get currentSnapshot(): CatalogSnapshot | null;
|
|
131
|
+
/**
|
|
132
|
+
* Constructor-supplied default `activate` set. `TaskClient` reads this
|
|
133
|
+
* when the per-call `opts.skills` is `undefined`. Returned read-only;
|
|
134
|
+
* `[]` and `undefined` are distinct (`[]` = explicit empty, `undefined`
|
|
135
|
+
* = "no default set").
|
|
136
|
+
*/
|
|
137
|
+
get defaultActivate(): readonly string[] | undefined;
|
|
138
|
+
/**
|
|
139
|
+
* Constructor-supplied `indexCharBudget`. `TaskClient` forwards this
|
|
140
|
+
* to `renderSlimIndex()` so consumers can tighten the model-visible
|
|
141
|
+
* block below the 8000-char default. `undefined` means "renderer
|
|
142
|
+
* picks the default".
|
|
143
|
+
*/
|
|
144
|
+
get indexCharBudget(): number | undefined;
|
|
145
|
+
/**
|
|
146
|
+
* Constructor-supplied `!command` preprocessing config.
|
|
147
|
+
* `undefined` means "default disabled" — the MCP server's `get_skill`
|
|
148
|
+
* handler short-circuits when this is `undefined` or `mode: 'disabled'`.
|
|
149
|
+
*/
|
|
150
|
+
get preprocessingConfig(): SkillsConfig['preprocessing'] | undefined;
|
|
151
|
+
/**
|
|
152
|
+
* Constructor-supplied embedder, if any. `undefined` means
|
|
153
|
+
* "no pre-filter; rely on render-side truncation".
|
|
154
|
+
*/
|
|
155
|
+
get embedder(): SkillsConfig['embedder'] | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* Constructor-supplied embedding-pre-filter tuning. `undefined` means
|
|
158
|
+
* "use documented defaults" (`topK: 8`, `minScore: 0.35`).
|
|
159
|
+
*/
|
|
160
|
+
get activationConfig(): SkillsConfig['activation'] | undefined;
|
|
161
|
+
/**
|
|
162
|
+
* List every catalog entry. Awaits discovery on first call. Returns
|
|
163
|
+
* latest-version-only by default; pass `{ includeAllVersions: true }`
|
|
164
|
+
* to surface every version recorded during discovery.
|
|
165
|
+
*/
|
|
166
|
+
list(opts?: SkillGetOptions): Promise<readonly ParsedSkill[]>;
|
|
167
|
+
/**
|
|
168
|
+
* Resolve a skill specifier (`name`, `vendor/name`, or `vendor/name@version`)
|
|
169
|
+
* to a `ParsedSkill` or `null` if no match.
|
|
170
|
+
*
|
|
171
|
+
* - Bare name: returns the latest-version match of any vendor; if multiple
|
|
172
|
+
* vendors ship a skill of that name, the highest-precedence source wins.
|
|
173
|
+
* - `vendor/name`: latest version of that vendor's skill.
|
|
174
|
+
* - `vendor/name@version`: exact pin.
|
|
175
|
+
*/
|
|
176
|
+
get(specifier: string): Promise<ParsedSkill | null>;
|
|
177
|
+
/**
|
|
178
|
+
* Verify every name in `specifiers` resolves. Throws on the first
|
|
179
|
+
* unresolved entry — the SDK uses this from the wire boundary to fail
|
|
180
|
+
* loud on caller-pinned activation per `skills-activation.md` §2.
|
|
181
|
+
*/
|
|
182
|
+
resolveOrThrow(specifiers: readonly string[]): Promise<readonly ParsedSkill[]>;
|
|
183
|
+
/**
|
|
184
|
+
* Whether `skill` is trusted enough to honor its declarative affordances
|
|
185
|
+
* (`allowed-tools`, `disable-model-invocation: false`, `hooks`). True for
|
|
186
|
+
* the `'trusted'` / `'operator'` tiers; for `'third-party'` true iff the
|
|
187
|
+
* skill's source identity is in `trustedSources`.
|
|
188
|
+
*/
|
|
189
|
+
isTrusted(skill: ParsedSkill): boolean;
|
|
190
|
+
/**
|
|
191
|
+
* Resolved `requires:` caps with defaults filled in. Read by the
|
|
192
|
+
* activation pipeline (`TaskClient` caller-pin + `QodoSkillsMcpServer.get_skill`).
|
|
193
|
+
*/
|
|
194
|
+
get requiresCapsResolved(): ResolvedRequiresCaps;
|
|
195
|
+
/**
|
|
196
|
+
* Snapshot of currently active skill FQNs. The active set is union of
|
|
197
|
+
* (a) caller-pinned skills the SDK injected for the latest dispatch and
|
|
198
|
+
* (b) skills the model loaded via `qodo-skills.get_skill`. Returned
|
|
199
|
+
* sorted for stable test output.
|
|
200
|
+
*/
|
|
201
|
+
getActiveSkills(): readonly string[];
|
|
202
|
+
/**
|
|
203
|
+
* Mark a skill FQN as active. Idempotent — re-marking emits no extra
|
|
204
|
+
* event. Returns `true` iff the FQN was newly added (i.e., this is a
|
|
205
|
+
* fresh activation, not a cache hit).
|
|
206
|
+
*
|
|
207
|
+
* The caller is responsible for emitting `sdk.skill.activated` — the
|
|
208
|
+
* event carries `source: 'caller' | 'llm'` which only the caller knows.
|
|
209
|
+
* `markActive` just owns the set membership.
|
|
210
|
+
*/
|
|
211
|
+
markActive(fqn: string): boolean;
|
|
212
|
+
/**
|
|
213
|
+
* Remove a skill FQN from the active set. Returns `true` iff it was
|
|
214
|
+
* present. Used by `QodoSkillsMcpServer.dispose` and (rarely) by
|
|
215
|
+
* consumers programmatically rolling back activation.
|
|
216
|
+
*/
|
|
217
|
+
deactivate(fqn: string): boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Clear the active set entirely. Called by `QodoSkillsMcpServer.dispose`
|
|
220
|
+
* on `disconnect()` so the next `connect()` starts cold.
|
|
221
|
+
*/
|
|
222
|
+
resetActive(): void;
|
|
223
|
+
/**
|
|
224
|
+
* Begin watching every configured local source directory for SKILL.md
|
|
225
|
+
* changes. Idempotent — calling twice has no extra effect.
|
|
226
|
+
*
|
|
227
|
+
* Requires `discover()` to have completed; the watcher targets only
|
|
228
|
+
* directories already known to be on disk. New top-level source dirs
|
|
229
|
+
* appearing post-startup are NOT auto-watched (operators would
|
|
230
|
+
* typically `stopWatching()` + reconfigure + start a new client).
|
|
231
|
+
*
|
|
232
|
+
* `package` and `bundled` sources are intentionally NOT watched —
|
|
233
|
+
* those ship with the application code and shouldn't churn at
|
|
234
|
+
* runtime. Watching them would expose tampering surface without
|
|
235
|
+
* meaningful upside.
|
|
236
|
+
*
|
|
237
|
+
* Default behavior is determined by `SkillsConfig.watch`:
|
|
238
|
+
* `undefined`/`false` ⇒ no-op; `true` ⇒ start watching after the first
|
|
239
|
+
* `discover()` resolves.
|
|
240
|
+
*/
|
|
241
|
+
startWatching(): Promise<void>;
|
|
242
|
+
private doStartWatching;
|
|
243
|
+
/**
|
|
244
|
+
* Tear down every active watcher and cancel any pending debounce
|
|
245
|
+
* timer. Safe to call multiple times. Called automatically by
|
|
246
|
+
* `dispose()`.
|
|
247
|
+
*/
|
|
248
|
+
stopWatching(): void;
|
|
249
|
+
/**
|
|
250
|
+
* Tear down the manager — equivalent to `stopWatching()`. Provided as
|
|
251
|
+
* a parallel to `QodoSkillsMcpServer.dispose()` so consumer code can
|
|
252
|
+
* call both in a uniform shutdown sequence.
|
|
253
|
+
*/
|
|
254
|
+
dispose(): void;
|
|
255
|
+
/** Current catalog epoch counter. `0` before the first `discover()`. */
|
|
256
|
+
get catalogEpoch(): number;
|
|
257
|
+
/**
|
|
258
|
+
* Subscribe to rebuild events. The listener fires after every
|
|
259
|
+
* successful watcher-triggered rebuild (NOT on the initial discover).
|
|
260
|
+
* Returns an unsubscribe function. Used primarily by tests.
|
|
261
|
+
*/
|
|
262
|
+
onRebuild(listener: (snapshot: CatalogSnapshot) => void): () => void;
|
|
263
|
+
/**
|
|
264
|
+
* Trigger an out-of-band rebuild. Test seam — production code goes
|
|
265
|
+
* through the debounced watcher path. The rebuild is in-flight
|
|
266
|
+
* already if another rebuild is queued; returns the same in-flight
|
|
267
|
+
* promise to avoid double-rebuild races.
|
|
268
|
+
*/
|
|
269
|
+
rebuildNow(): Promise<CatalogSnapshot>;
|
|
270
|
+
private installWatcher;
|
|
271
|
+
private scheduleRebuild;
|
|
272
|
+
private doRebuild;
|
|
273
|
+
private diffAndEmit;
|
|
274
|
+
/**
|
|
275
|
+
* Walk every configured source + parse + validate + assemble the
|
|
276
|
+
* catalog. Pure with respect to `this.snapshot` — the caller decides
|
|
277
|
+
* how to publish the returned snapshot (initial discover stamps the
|
|
278
|
+
* epoch; rebuild diffs against the prior snapshot first).
|
|
279
|
+
*/
|
|
280
|
+
private buildCatalog;
|
|
281
|
+
/**
|
|
282
|
+
* Locate + apply the lockfile per `SkillsConfig.lockfile`. When
|
|
283
|
+
* `'off'`, returns immediately. When `'discover'`, searches the
|
|
284
|
+
* configured CWD; when an explicit `{ path }`, loads it directly.
|
|
285
|
+
*
|
|
286
|
+
* Validation outcomes:
|
|
287
|
+
*
|
|
288
|
+
* - All entries match → return silently.
|
|
289
|
+
* - At least one drifts → emit `sdk.skill.lock_drift` per offender + throw.
|
|
290
|
+
* - At least one unreachable → emit `sdk.skill.lock_unreachable` + throw.
|
|
291
|
+
*
|
|
292
|
+
* Throws `LockfileValidationError` so the wire boundary fails loud
|
|
293
|
+
* rather than serving a divergent catalog.
|
|
294
|
+
*/
|
|
295
|
+
private applyLockfile;
|
|
296
|
+
private resolveSourcesList;
|
|
297
|
+
private parseAndValidate;
|
|
298
|
+
/**
|
|
299
|
+
* Inspect the skill body for `[label](path)` and `get_skill_file("path")`
|
|
300
|
+
* references; emit:
|
|
301
|
+
*
|
|
302
|
+
* - `sdk.skill.error severity: 'warning'` when the referenced file
|
|
303
|
+
* doesn't exist under the skill directory.
|
|
304
|
+
* - `sdk.skill.error severity: 'warning'` when a reference has depth
|
|
305
|
+
* greater than 1 (e.g. `scripts/helpers/foo.py`). Authors who
|
|
306
|
+
* intentionally nest files can ignore this warning.
|
|
307
|
+
*
|
|
308
|
+
* The check is best-effort: any `fs.stat` failure other than ENOENT is
|
|
309
|
+
* silently ignored so a transient filesystem error doesn't poison
|
|
310
|
+
* discovery.
|
|
311
|
+
*/
|
|
312
|
+
private auditBodyReferences;
|
|
313
|
+
private emitEvent;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Thrown by `SkillsManager.resolveOrThrow` when a caller-pinned specifier
|
|
317
|
+
* doesn't match anything in the catalog. The wire boundary (TaskClient
|
|
318
|
+
* startWithAgent / startWithGraph) re-throws these so consumers see a
|
|
319
|
+
* loud failure per `skills-activation.md` §2.
|
|
320
|
+
*/
|
|
321
|
+
export declare class SkillNotFoundError extends Error {
|
|
322
|
+
readonly specifier: string;
|
|
323
|
+
constructor(specifier: string);
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Thrown when a bare-name caller pin matches multiple skills under
|
|
327
|
+
* different vendors (`acme/code-review` and `local/code-review` both
|
|
328
|
+
* shipping `name: code-review`). The first-match-wins behavior silently
|
|
329
|
+
* picked one, which could change at runtime depending on source order.
|
|
330
|
+
* Force the caller to disambiguate with a `vendor/name` pin.
|
|
331
|
+
*/
|
|
332
|
+
export declare class SkillAmbiguousPinError extends Error {
|
|
333
|
+
readonly specifier: string;
|
|
334
|
+
readonly candidates: readonly string[];
|
|
335
|
+
constructor(specifier: string, candidates: readonly string[]);
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Thrown when caller-pinned skills cannot fit inside the slim-index
|
|
339
|
+
* hard cap (`2 × charBudget`, floored at `charBudget + 4096`). Pinning
|
|
340
|
+
* is a "must include" contract — silently dropping pins would make the
|
|
341
|
+
* model behave as if the caller never pinned them; throwing forces the
|
|
342
|
+
* caller to fix the pin list or raise the budget.
|
|
343
|
+
*/
|
|
344
|
+
export declare class SkillsBudgetExceededError extends Error {
|
|
345
|
+
readonly omittedSkills: readonly string[];
|
|
346
|
+
readonly hardCap: number;
|
|
347
|
+
constructor(omittedSkills: readonly string[], hardCap: number);
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Thrown when caller-pinned activation can't proceed because of a
|
|
351
|
+
* `requires:` chain failure — trust violation, depth/breadth/token cap
|
|
352
|
+
* breach, cycle, or unresolved dependency. The `kind` discriminator
|
|
353
|
+
* carries the specific reason. Caller-pin
|
|
354
|
+
* activation is an authoritative contract; failure must be loud rather
|
|
355
|
+
* than silently dropping the affected skill.
|
|
356
|
+
*/
|
|
357
|
+
export declare class QodoSkillError extends Error {
|
|
358
|
+
readonly skill: string;
|
|
359
|
+
readonly reason: 'requires_trust_violation' | 'requires_cap_exceeded' | 'requires_cycle' | 'requires_unresolved' | 'not_found';
|
|
360
|
+
constructor(skill: string, reason: QodoSkillError['reason'], message: string);
|
|
361
|
+
}
|
|
362
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/skills/manager.ts"],"names":[],"mappings":"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"}
|