@planu/cli 1.3.0 → 1.5.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/dist/config/license-plans.json +18 -1
- package/dist/engine/audit-trail/formatter.d.ts +13 -0
- package/dist/engine/audit-trail/formatter.d.ts.map +1 -0
- package/dist/engine/audit-trail/formatter.js +43 -0
- package/dist/engine/audit-trail/formatter.js.map +1 -0
- package/dist/engine/audit-trail/hasher.d.ts +18 -0
- package/dist/engine/audit-trail/hasher.d.ts.map +1 -0
- package/dist/engine/audit-trail/hasher.js +46 -0
- package/dist/engine/audit-trail/hasher.js.map +1 -0
- package/dist/engine/audit-trail/index.d.ts +2 -0
- package/dist/engine/audit-trail/index.d.ts.map +1 -1
- package/dist/engine/audit-trail/index.js +4 -1
- package/dist/engine/audit-trail/index.js.map +1 -1
- package/dist/engine/auto-promoter.d.ts +14 -0
- package/dist/engine/auto-promoter.d.ts.map +1 -0
- package/dist/engine/auto-promoter.js +40 -0
- package/dist/engine/auto-promoter.js.map +1 -0
- package/dist/engine/compliance-test-generator/control-mapper.d.ts +4 -0
- package/dist/engine/compliance-test-generator/control-mapper.d.ts.map +1 -0
- package/dist/engine/compliance-test-generator/control-mapper.js +41 -0
- package/dist/engine/compliance-test-generator/control-mapper.js.map +1 -0
- package/dist/engine/compliance-test-generator/frameworks/iso42001.d.ts +3 -0
- package/dist/engine/compliance-test-generator/frameworks/iso42001.d.ts.map +1 -0
- package/dist/engine/compliance-test-generator/frameworks/iso42001.js +55 -0
- package/dist/engine/compliance-test-generator/frameworks/iso42001.js.map +1 -0
- package/dist/engine/compliance-test-generator/frameworks/pci-dss.d.ts +3 -0
- package/dist/engine/compliance-test-generator/frameworks/pci-dss.d.ts.map +1 -0
- package/dist/engine/compliance-test-generator/frameworks/pci-dss.js +55 -0
- package/dist/engine/compliance-test-generator/frameworks/pci-dss.js.map +1 -0
- package/dist/engine/compliance-test-generator/frameworks/soc2.d.ts +3 -0
- package/dist/engine/compliance-test-generator/frameworks/soc2.d.ts.map +1 -0
- package/dist/engine/compliance-test-generator/frameworks/soc2.js +47 -0
- package/dist/engine/compliance-test-generator/frameworks/soc2.js.map +1 -0
- package/dist/engine/compliance-test-generator/index.d.ts +3 -0
- package/dist/engine/compliance-test-generator/index.d.ts.map +1 -0
- package/dist/engine/compliance-test-generator/index.js +64 -0
- package/dist/engine/compliance-test-generator/index.js.map +1 -0
- package/dist/engine/compliance-test-generator/test-formatter.d.ts +6 -0
- package/dist/engine/compliance-test-generator/test-formatter.d.ts.map +1 -0
- package/dist/engine/compliance-test-generator/test-formatter.js +33 -0
- package/dist/engine/compliance-test-generator/test-formatter.js.map +1 -0
- package/dist/engine/cost-guardrails.d.ts +11 -0
- package/dist/engine/cost-guardrails.d.ts.map +1 -0
- package/dist/engine/cost-guardrails.js +39 -0
- package/dist/engine/cost-guardrails.js.map +1 -0
- package/dist/engine/doc-compliance-checker.d.ts +23 -0
- package/dist/engine/doc-compliance-checker.d.ts.map +1 -0
- package/dist/engine/doc-compliance-checker.js +168 -0
- package/dist/engine/doc-compliance-checker.js.map +1 -0
- package/dist/engine/dogfood-analyzer.d.ts +6 -0
- package/dist/engine/dogfood-analyzer.d.ts.map +1 -0
- package/dist/engine/dogfood-analyzer.js +59 -0
- package/dist/engine/dogfood-analyzer.js.map +1 -0
- package/dist/engine/drift-watcher/criteria-checker.d.ts +16 -0
- package/dist/engine/drift-watcher/criteria-checker.d.ts.map +1 -0
- package/dist/engine/drift-watcher/criteria-checker.js +81 -0
- package/dist/engine/drift-watcher/criteria-checker.js.map +1 -0
- package/dist/engine/drift-watcher/file-watcher.d.ts +8 -0
- package/dist/engine/drift-watcher/file-watcher.d.ts.map +1 -0
- package/dist/engine/drift-watcher/file-watcher.js +24 -0
- package/dist/engine/drift-watcher/file-watcher.js.map +1 -0
- package/dist/engine/drift-watcher/index.d.ts +19 -0
- package/dist/engine/drift-watcher/index.d.ts.map +1 -0
- package/dist/engine/drift-watcher/index.js +70 -0
- package/dist/engine/drift-watcher/index.js.map +1 -0
- package/dist/engine/mcp-gateway/gateway-registry.d.ts +19 -0
- package/dist/engine/mcp-gateway/gateway-registry.d.ts.map +1 -0
- package/dist/engine/mcp-gateway/gateway-registry.js +33 -0
- package/dist/engine/mcp-gateway/gateway-registry.js.map +1 -0
- package/dist/engine/mcp-gateway/gateway-scanner.d.ts +17 -0
- package/dist/engine/mcp-gateway/gateway-scanner.d.ts.map +1 -0
- package/dist/engine/mcp-gateway/gateway-scanner.js +62 -0
- package/dist/engine/mcp-gateway/gateway-scanner.js.map +1 -0
- package/dist/engine/mcp-gateway/index.d.ts +3 -0
- package/dist/engine/mcp-gateway/index.d.ts.map +1 -0
- package/dist/engine/mcp-gateway/index.js +4 -0
- package/dist/engine/mcp-gateway/index.js.map +1 -0
- package/dist/engine/multi-repo/companion-spec-builder.d.ts +9 -0
- package/dist/engine/multi-repo/companion-spec-builder.d.ts.map +1 -0
- package/dist/engine/multi-repo/companion-spec-builder.js +22 -0
- package/dist/engine/multi-repo/companion-spec-builder.js.map +1 -0
- package/dist/engine/multi-repo/consumer-scanner.d.ts +12 -0
- package/dist/engine/multi-repo/consumer-scanner.d.ts.map +1 -0
- package/dist/engine/multi-repo/consumer-scanner.js +48 -0
- package/dist/engine/multi-repo/consumer-scanner.js.map +1 -0
- package/dist/engine/multi-repo/index.d.ts +4 -0
- package/dist/engine/multi-repo/index.d.ts.map +1 -0
- package/dist/engine/multi-repo/index.js +5 -0
- package/dist/engine/multi-repo/index.js.map +1 -0
- package/dist/engine/multi-repo/refactor-tracker.d.ts +7 -0
- package/dist/engine/multi-repo/refactor-tracker.d.ts.map +1 -0
- package/dist/engine/multi-repo/refactor-tracker.js +22 -0
- package/dist/engine/multi-repo/refactor-tracker.js.map +1 -0
- package/dist/engine/skill-generator/sections-docs.d.ts +13 -0
- package/dist/engine/skill-generator/sections-docs.d.ts.map +1 -0
- package/dist/engine/skill-generator/sections-docs.js +59 -0
- package/dist/engine/skill-generator/sections-docs.js.map +1 -0
- package/dist/engine/skill-generator/skills-content.d.ts +1 -1
- package/dist/engine/skill-generator/skills-content.d.ts.map +1 -1
- package/dist/engine/skill-generator/skills-content.js +3 -2
- package/dist/engine/skill-generator/skills-content.js.map +1 -1
- package/dist/engine/skill-generator/skills.d.ts +1 -0
- package/dist/engine/skill-generator/skills.d.ts.map +1 -1
- package/dist/engine/skill-generator/skills.js +1 -0
- package/dist/engine/skill-generator/skills.js.map +1 -1
- package/dist/engine/skill-generator.d.ts.map +1 -1
- package/dist/engine/skill-generator.js +21 -2
- package/dist/engine/skill-generator.js.map +1 -1
- package/dist/engine/web-fetcher/docs-intelligence.d.ts +8 -0
- package/dist/engine/web-fetcher/docs-intelligence.d.ts.map +1 -0
- package/dist/engine/web-fetcher/docs-intelligence.js +154 -0
- package/dist/engine/web-fetcher/docs-intelligence.js.map +1 -0
- package/dist/engine/web-fetcher/registry-auto-discovery.d.ts +20 -0
- package/dist/engine/web-fetcher/registry-auto-discovery.d.ts.map +1 -0
- package/dist/engine/web-fetcher/registry-auto-discovery.js +184 -0
- package/dist/engine/web-fetcher/registry-auto-discovery.js.map +1 -0
- package/dist/engine/web-fetcher/stack-detector.d.ts +4 -0
- package/dist/engine/web-fetcher/stack-detector.d.ts.map +1 -0
- package/dist/engine/web-fetcher/stack-detector.js +155 -0
- package/dist/engine/web-fetcher/stack-detector.js.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -1
- package/dist/storage/audit-trail-store.d.ts +20 -0
- package/dist/storage/audit-trail-store.d.ts.map +1 -0
- package/dist/storage/audit-trail-store.js +98 -0
- package/dist/storage/audit-trail-store.js.map +1 -0
- package/dist/storage/auto-promoter-config-store.d.ts +11 -0
- package/dist/storage/auto-promoter-config-store.d.ts.map +1 -0
- package/dist/storage/auto-promoter-config-store.js +23 -0
- package/dist/storage/auto-promoter-config-store.js.map +1 -0
- package/dist/storage/budget-store.d.ts +19 -0
- package/dist/storage/budget-store.d.ts.map +1 -0
- package/dist/storage/budget-store.js +64 -0
- package/dist/storage/budget-store.js.map +1 -0
- package/dist/storage/gateway-store.d.ts +23 -0
- package/dist/storage/gateway-store.d.ts.map +1 -0
- package/dist/storage/gateway-store.js +52 -0
- package/dist/storage/gateway-store.js.map +1 -0
- package/dist/storage/refactor-registry-store.d.ts +21 -0
- package/dist/storage/refactor-registry-store.d.ts.map +1 -0
- package/dist/storage/refactor-registry-store.js +77 -0
- package/dist/storage/refactor-registry-store.js.map +1 -0
- package/dist/tools/auto-promoter-handler.d.ts +13 -0
- package/dist/tools/auto-promoter-handler.d.ts.map +1 -0
- package/dist/tools/auto-promoter-handler.js +50 -0
- package/dist/tools/auto-promoter-handler.js.map +1 -0
- package/dist/tools/compliance-test-handler.d.ts +5 -0
- package/dist/tools/compliance-test-handler.d.ts.map +1 -0
- package/dist/tools/compliance-test-handler.js +66 -0
- package/dist/tools/compliance-test-handler.js.map +1 -0
- package/dist/tools/cost-guardrails-handler.d.ts +15 -0
- package/dist/tools/cost-guardrails-handler.d.ts.map +1 -0
- package/dist/tools/cost-guardrails-handler.js +72 -0
- package/dist/tools/cost-guardrails-handler.js.map +1 -0
- package/dist/tools/create-spec/spec-builder.d.ts.map +1 -1
- package/dist/tools/create-spec/spec-builder.js +20 -0
- package/dist/tools/create-spec/spec-builder.js.map +1 -1
- package/dist/tools/create-spec-hu/docs-criteria-adapter.d.ts +14 -0
- package/dist/tools/create-spec-hu/docs-criteria-adapter.d.ts.map +1 -0
- package/dist/tools/create-spec-hu/docs-criteria-adapter.js +50 -0
- package/dist/tools/create-spec-hu/docs-criteria-adapter.js.map +1 -0
- package/dist/tools/create-spec-hu.d.ts +1 -1
- package/dist/tools/create-spec-hu.d.ts.map +1 -1
- package/dist/tools/create-spec-hu.js +5 -1
- package/dist/tools/create-spec-hu.js.map +1 -1
- package/dist/tools/create-spec.d.ts.map +1 -1
- package/dist/tools/create-spec.js +2 -2
- package/dist/tools/create-spec.js.map +1 -1
- package/dist/tools/doc-compliance-handler.d.ts +3 -0
- package/dist/tools/doc-compliance-handler.d.ts.map +1 -0
- package/dist/tools/doc-compliance-handler.js +48 -0
- package/dist/tools/doc-compliance-handler.js.map +1 -0
- package/dist/tools/docs-registry-handler.d.ts +6 -0
- package/dist/tools/docs-registry-handler.d.ts.map +1 -0
- package/dist/tools/docs-registry-handler.js +73 -0
- package/dist/tools/docs-registry-handler.js.map +1 -0
- package/dist/tools/dogfood-status-handler.d.ts +3 -0
- package/dist/tools/dogfood-status-handler.d.ts.map +1 -0
- package/dist/tools/dogfood-status-handler.js +28 -0
- package/dist/tools/dogfood-status-handler.js.map +1 -0
- package/dist/tools/drift-watcher-handler.d.ts +7 -0
- package/dist/tools/drift-watcher-handler.d.ts.map +1 -0
- package/dist/tools/drift-watcher-handler.js +65 -0
- package/dist/tools/drift-watcher-handler.js.map +1 -0
- package/dist/tools/export-audit-trail-handler.d.ts +9 -0
- package/dist/tools/export-audit-trail-handler.d.ts.map +1 -0
- package/dist/tools/export-audit-trail-handler.js +103 -0
- package/dist/tools/export-audit-trail-handler.js.map +1 -0
- package/dist/tools/mcp-gateway-handler.d.ts +13 -0
- package/dist/tools/mcp-gateway-handler.d.ts.map +1 -0
- package/dist/tools/mcp-gateway-handler.js +60 -0
- package/dist/tools/mcp-gateway-handler.js.map +1 -0
- package/dist/tools/multi-repo-handler.d.ts +15 -0
- package/dist/tools/multi-repo-handler.d.ts.map +1 -0
- package/dist/tools/multi-repo-handler.js +86 -0
- package/dist/tools/multi-repo-handler.js.map +1 -0
- package/dist/tools/register-audit-trail-tools.d.ts.map +1 -1
- package/dist/tools/register-audit-trail-tools.js +38 -0
- package/dist/tools/register-audit-trail-tools.js.map +1 -1
- package/dist/tools/register-auto-promoter-tools.d.ts +3 -0
- package/dist/tools/register-auto-promoter-tools.d.ts.map +1 -0
- package/dist/tools/register-auto-promoter-tools.js +43 -0
- package/dist/tools/register-auto-promoter-tools.js.map +1 -0
- package/dist/tools/register-compliance-test-tools.d.ts +3 -0
- package/dist/tools/register-compliance-test-tools.d.ts.map +1 -0
- package/dist/tools/register-compliance-test-tools.js +55 -0
- package/dist/tools/register-compliance-test-tools.js.map +1 -0
- package/dist/tools/register-cost-guardrails-tools.d.ts +3 -0
- package/dist/tools/register-cost-guardrails-tools.d.ts.map +1 -0
- package/dist/tools/register-cost-guardrails-tools.js +61 -0
- package/dist/tools/register-cost-guardrails-tools.js.map +1 -0
- package/dist/tools/register-doc-compliance-tools.d.ts +3 -0
- package/dist/tools/register-doc-compliance-tools.d.ts.map +1 -0
- package/dist/tools/register-doc-compliance-tools.js +18 -0
- package/dist/tools/register-doc-compliance-tools.js.map +1 -0
- package/dist/tools/register-docs-registry-tools.d.ts +3 -0
- package/dist/tools/register-docs-registry-tools.d.ts.map +1 -0
- package/dist/tools/register-docs-registry-tools.js +35 -0
- package/dist/tools/register-docs-registry-tools.js.map +1 -0
- package/dist/tools/register-dogfood-tools.d.ts +3 -0
- package/dist/tools/register-dogfood-tools.d.ts.map +1 -0
- package/dist/tools/register-dogfood-tools.js +21 -0
- package/dist/tools/register-dogfood-tools.js.map +1 -0
- package/dist/tools/register-drift-watcher-tools.d.ts +3 -0
- package/dist/tools/register-drift-watcher-tools.d.ts.map +1 -0
- package/dist/tools/register-drift-watcher-tools.js +28 -0
- package/dist/tools/register-drift-watcher-tools.js.map +1 -0
- package/dist/tools/register-mcp-gateway-tools.d.ts +3 -0
- package/dist/tools/register-mcp-gateway-tools.d.ts.map +1 -0
- package/dist/tools/register-mcp-gateway-tools.js +35 -0
- package/dist/tools/register-mcp-gateway-tools.js.map +1 -0
- package/dist/tools/register-multi-repo-tools.d.ts +8 -0
- package/dist/tools/register-multi-repo-tools.d.ts.map +1 -0
- package/dist/tools/register-multi-repo-tools.js +52 -0
- package/dist/tools/register-multi-repo-tools.js.map +1 -0
- package/dist/tools/safe-handler.d.ts.map +1 -1
- package/dist/tools/safe-handler.js +50 -1
- package/dist/tools/safe-handler.js.map +1 -1
- package/dist/types/audit.d.ts +64 -0
- package/dist/types/audit.d.ts.map +1 -0
- package/dist/types/audit.js +3 -0
- package/dist/types/audit.js.map +1 -0
- package/dist/types/auto-promoter.d.ts +26 -0
- package/dist/types/auto-promoter.d.ts.map +1 -0
- package/dist/types/auto-promoter.js +3 -0
- package/dist/types/auto-promoter.js.map +1 -0
- package/dist/types/compliance-tests.d.ts +41 -0
- package/dist/types/compliance-tests.d.ts.map +1 -0
- package/dist/types/compliance-tests.js +3 -0
- package/dist/types/compliance-tests.js.map +1 -0
- package/dist/types/cost-guardrails.d.ts +41 -0
- package/dist/types/cost-guardrails.d.ts.map +1 -0
- package/dist/types/cost-guardrails.js +3 -0
- package/dist/types/cost-guardrails.js.map +1 -0
- package/dist/types/docs.d.ts +70 -0
- package/dist/types/docs.d.ts.map +1 -1
- package/dist/types/dogfood.d.ts +22 -0
- package/dist/types/dogfood.d.ts.map +1 -0
- package/dist/types/dogfood.js +3 -0
- package/dist/types/dogfood.js.map +1 -0
- package/dist/types/drift-watcher.d.ts +35 -0
- package/dist/types/drift-watcher.d.ts.map +1 -0
- package/dist/types/drift-watcher.js +3 -0
- package/dist/types/drift-watcher.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/mcp-gateway.d.ts +34 -0
- package/dist/types/mcp-gateway.d.ts.map +1 -0
- package/dist/types/mcp-gateway.js +3 -0
- package/dist/types/mcp-gateway.js.map +1 -0
- package/dist/types/mcp.d.ts +17 -0
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/types/multi-repo.d.ts +39 -0
- package/dist/types/multi-repo.d.ts.map +1 -0
- package/dist/types/multi-repo.js +5 -0
- package/dist/types/multi-repo.js.map +1 -0
- package/dist/types/spec/core.d.ts +2 -0
- package/dist/types/spec/core.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/config/license-plans.json +18 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// tools/register-auto-promoter-tools.ts — Registers auto-promotion MCP tools (SPEC-391)
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { handleConfigureAutoPromotion, handleCheckAutoPromotion } from './auto-promoter-handler.js';
|
|
4
|
+
import { safeLicensed } from './safe-handler.js';
|
|
5
|
+
export function registerAutoPromoterTools(server) {
|
|
6
|
+
// configure_auto_promotion — SPEC-391
|
|
7
|
+
server.registerTool('configure_auto_promotion', {
|
|
8
|
+
description: 'Configure auto-promotion settings for a project. ' +
|
|
9
|
+
'When enabled, specs that reach the confidence threshold are eligible for automatic status promotion. ' +
|
|
10
|
+
'High-risk specs are never auto-promoted regardless of settings.',
|
|
11
|
+
inputSchema: {
|
|
12
|
+
projectPath: z.string().describe('Absolute path to the project directory.'),
|
|
13
|
+
enabled: z
|
|
14
|
+
.boolean()
|
|
15
|
+
.optional()
|
|
16
|
+
.describe('Enable or disable auto-promotion for the project.'),
|
|
17
|
+
threshold: z
|
|
18
|
+
.number()
|
|
19
|
+
.min(0)
|
|
20
|
+
.max(100)
|
|
21
|
+
.optional()
|
|
22
|
+
.describe('Confidence score threshold (0-100). Specs below this are not auto-promoted. Default: 85.'),
|
|
23
|
+
maxRisk: z
|
|
24
|
+
.enum(['low', 'medium'])
|
|
25
|
+
.optional()
|
|
26
|
+
.describe('Maximum risk level allowed for auto-promotion. ' +
|
|
27
|
+
'Valid values: "low" (only low-risk specs), "medium" (low and medium). ' +
|
|
28
|
+
'High-risk specs are never auto-promoted.'),
|
|
29
|
+
},
|
|
30
|
+
annotations: { title: 'Configure Auto Promotion' },
|
|
31
|
+
}, safeLicensed('configure_auto_promotion', async (args) => handleConfigureAutoPromotion(args)));
|
|
32
|
+
// check_auto_promotion — SPEC-391
|
|
33
|
+
server.registerTool('check_auto_promotion', {
|
|
34
|
+
description: 'Check whether a spec is eligible for auto-promotion by computing its confidence score. ' +
|
|
35
|
+
'Returns the score breakdown (readiness, risk penalty, dependency bonus) and eligibility verdict.',
|
|
36
|
+
inputSchema: {
|
|
37
|
+
projectPath: z.string().describe('Absolute path to the project directory.'),
|
|
38
|
+
specId: z.string().describe('Spec ID to evaluate (e.g., "SPEC-042").'),
|
|
39
|
+
},
|
|
40
|
+
annotations: { title: 'Check Auto Promotion', readOnlyHint: true },
|
|
41
|
+
}, safeLicensed('check_auto_promotion', async (args) => handleCheckAutoPromotion(args)));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=register-auto-promoter-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-auto-promoter-tools.js","sourceRoot":"","sources":["../../src/tools/register-auto-promoter-tools.ts"],"names":[],"mappings":"AAAA,wFAAwF;AAGxF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,sCAAsC;IACtC,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,WAAW,EACT,mDAAmD;YACnD,uGAAuG;YACvG,iEAAiE;QACnE,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAC3E,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,0FAA0F,CAC3F;YACH,OAAO,EAAE,CAAC;iBACP,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;iBACvB,QAAQ,EAAE;iBACV,QAAQ,CACP,iDAAiD;gBAC/C,wEAAwE;gBACxE,0CAA0C,CAC7C;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE;KACnD,EACD,YAAY,CAAC,0BAA0B,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAC7F,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EACT,yFAAyF;YACzF,kGAAkG;QACpG,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SACvE;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE;KACnE,EACD,YAAY,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CACrF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-compliance-test-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-compliance-test-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBzE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8DnE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// tools/register-compliance-test-tools.ts — SPEC-390: Register compliance test suite tools
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { safeLicensed } from './safe-handler.js';
|
|
4
|
+
import { handleGenerateComplianceTests, handleComplianceCoverageReport, } from './compliance-test-handler.js';
|
|
5
|
+
const FRAMEWORK_DESCRIBE = 'Compliance framework. Valid values: soc2 | pci-dss | iso-42001 | hipaa | gdpr';
|
|
6
|
+
const FORMAT_DESCRIBE = 'Output format for tests. Valid values: jest | gherkin | markdown';
|
|
7
|
+
export function registerComplianceTestTools(server) {
|
|
8
|
+
server.registerTool('generate_compliance_tests', {
|
|
9
|
+
description: 'Generate compliance-specific test suites from spec acceptance criteria. ' +
|
|
10
|
+
'Maps criteria to regulatory controls (SOC2, PCI-DSS, ISO-42001) and outputs ' +
|
|
11
|
+
'Jest/Vitest test files, Gherkin scenarios, or markdown checklists.',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
projectPath: z
|
|
14
|
+
.string()
|
|
15
|
+
.min(1)
|
|
16
|
+
.max(4096)
|
|
17
|
+
.describe('Absolute path to the project root directory'),
|
|
18
|
+
specId: z
|
|
19
|
+
.string()
|
|
20
|
+
.min(1)
|
|
21
|
+
.max(50)
|
|
22
|
+
.describe('Spec ID to generate compliance tests for (e.g. SPEC-001)'),
|
|
23
|
+
frameworks: z
|
|
24
|
+
.array(z.enum(['soc2', 'pci-dss', 'iso-42001', 'hipaa', 'gdpr']))
|
|
25
|
+
.min(1)
|
|
26
|
+
.describe(FRAMEWORK_DESCRIBE),
|
|
27
|
+
outputFormat: z.enum(['jest', 'gherkin', 'markdown']).optional().describe(FORMAT_DESCRIBE),
|
|
28
|
+
},
|
|
29
|
+
annotations: {
|
|
30
|
+
title: 'Generate Compliance Tests',
|
|
31
|
+
readOnlyHint: true,
|
|
32
|
+
},
|
|
33
|
+
}, safeLicensed('generate_compliance_tests', async (args) => handleGenerateComplianceTests(args)));
|
|
34
|
+
server.registerTool('compliance_coverage_report', {
|
|
35
|
+
description: 'List all compliance controls for the requested frameworks, showing their IDs, ' +
|
|
36
|
+
'titles, descriptions, and matching keywords. ' +
|
|
37
|
+
'Use before generate_compliance_tests to understand which controls are available.',
|
|
38
|
+
inputSchema: {
|
|
39
|
+
projectPath: z
|
|
40
|
+
.string()
|
|
41
|
+
.min(1)
|
|
42
|
+
.max(4096)
|
|
43
|
+
.describe('Absolute path to the project root directory'),
|
|
44
|
+
frameworks: z
|
|
45
|
+
.array(z.enum(['soc2', 'pci-dss', 'iso-42001', 'hipaa', 'gdpr']))
|
|
46
|
+
.min(1)
|
|
47
|
+
.describe(FRAMEWORK_DESCRIBE),
|
|
48
|
+
},
|
|
49
|
+
annotations: {
|
|
50
|
+
title: 'Compliance Coverage Report',
|
|
51
|
+
readOnlyHint: true,
|
|
52
|
+
},
|
|
53
|
+
}, safeLicensed('compliance_coverage_report', (args) => Promise.resolve(handleComplianceCoverageReport(args))));
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=register-compliance-test-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-compliance-test-tools.js","sourceRoot":"","sources":["../../src/tools/register-compliance-test-tools.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAG3F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC;AAMtC,MAAM,kBAAkB,GACtB,+EAA+E,CAAC;AAClF,MAAM,eAAe,GAAG,kEAAkE,CAAC;AAE3F,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,WAAW,EACT,0EAA0E;YAC1E,8EAA8E;YAC9E,oEAAoE;QACtE,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,CAAC,0DAA0D,CAAC;YACvE,UAAU,EAAE,CAAC;iBACV,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;iBAChE,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,kBAAkB,CAAC;YAC/B,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;SAC3F;QACD,WAAW,EAAE;YACX,KAAK,EAAE,2BAA2B;YAClC,YAAY,EAAE,IAAI;SACnB;KACF,EACD,YAAY,CAAC,2BAA2B,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACvD,6BAA6B,CAAC,IAAoC,CAAC,CACpE,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,WAAW,EACT,gFAAgF;YAChF,+CAA+C;YAC/C,kFAAkF;QACpF,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,UAAU,EAAE,CAAC;iBACV,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;iBAChE,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,kBAAkB,CAAC;SAChC;QACD,WAAW,EAAE;YACX,KAAK,EAAE,4BAA4B;YACnC,YAAY,EAAE,IAAI;SACnB;KACF,EACD,YAAY,CAAC,4BAA4B,EAAE,CAAC,IAAI,EAAE,EAAE,CAClD,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,IAA+B,CAAC,CAAC,CACjF,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-cost-guardrails-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-cost-guardrails-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0EnE"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// tools/register-cost-guardrails-tools.ts — Registers cost guardrail MCP tools (SPEC-393)
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { handleSetSpecBudget, handleBudgetStatus, handleRecordSpend, } from './cost-guardrails-handler.js';
|
|
4
|
+
import { safeLicensed } from './safe-handler.js';
|
|
5
|
+
export function registerCostGuardrailsTools(server) {
|
|
6
|
+
// set_spec_budget — SPEC-393
|
|
7
|
+
server.registerTool('set_spec_budget', {
|
|
8
|
+
description: 'Set a USD cost budget cap for a spec. ' +
|
|
9
|
+
'When usage approaches the threshold the recommended model is downgraded to control costs. ' +
|
|
10
|
+
'When the budget is exhausted the tool recommends haiku only.',
|
|
11
|
+
inputSchema: {
|
|
12
|
+
projectPath: z.string().describe('Absolute path to the project directory.'),
|
|
13
|
+
specId: z.string().describe('Spec ID to budget (e.g., "SPEC-042").'),
|
|
14
|
+
maxUsdCents: z
|
|
15
|
+
.number()
|
|
16
|
+
.int()
|
|
17
|
+
.min(1)
|
|
18
|
+
.describe('Maximum allowed spend in USD cents (e.g., 500 = $5.00).'),
|
|
19
|
+
warningThreshold: z
|
|
20
|
+
.number()
|
|
21
|
+
.min(1)
|
|
22
|
+
.max(100)
|
|
23
|
+
.optional()
|
|
24
|
+
.describe('Percentage at which a warning is triggered. Default: 80.'),
|
|
25
|
+
},
|
|
26
|
+
annotations: { title: 'Set Spec Budget' },
|
|
27
|
+
}, safeLicensed('set_spec_budget', async (args) => handleSetSpecBudget(args)));
|
|
28
|
+
// budget_status — SPEC-393
|
|
29
|
+
server.registerTool('budget_status', {
|
|
30
|
+
description: 'Return the budget status for one spec or all specs in a project. ' +
|
|
31
|
+
'Shows spend, remaining, usage percentage, and the recommended model tier.',
|
|
32
|
+
inputSchema: {
|
|
33
|
+
projectPath: z.string().describe('Absolute path to the project directory.'),
|
|
34
|
+
specId: z
|
|
35
|
+
.string()
|
|
36
|
+
.optional()
|
|
37
|
+
.describe('Spec ID to query. If omitted, returns status for all specs in the project.'),
|
|
38
|
+
},
|
|
39
|
+
annotations: { title: 'Budget Status', readOnlyHint: true },
|
|
40
|
+
}, safeLicensed('budget_status', async (args) => handleBudgetStatus(args)));
|
|
41
|
+
// record_spend — SPEC-393
|
|
42
|
+
server.registerTool('record_spend', {
|
|
43
|
+
description: 'Record actual AI spend for a spec. ' +
|
|
44
|
+
'Increments the running total and returns the updated budget status. ' +
|
|
45
|
+
'A warning message is included when the budget warning threshold is crossed.',
|
|
46
|
+
inputSchema: {
|
|
47
|
+
projectPath: z.string().describe('Absolute path to the project directory.'),
|
|
48
|
+
specId: z.string().describe('Spec ID to charge (e.g., "SPEC-042").'),
|
|
49
|
+
usdCents: z
|
|
50
|
+
.number()
|
|
51
|
+
.min(0)
|
|
52
|
+
.describe('Amount spent in USD cents to add to the running total.'),
|
|
53
|
+
modelUsed: z
|
|
54
|
+
.enum(['opus', 'sonnet', 'haiku'])
|
|
55
|
+
.describe('Model tier used for this invocation. Valid values: "opus", "sonnet", "haiku".'),
|
|
56
|
+
toolName: z.string().describe('Name of the tool or action that incurred the cost.'),
|
|
57
|
+
},
|
|
58
|
+
annotations: { title: 'Record Spend' },
|
|
59
|
+
}, safeLicensed('record_spend', async (args) => handleRecordSpend(args)));
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=register-cost-guardrails-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-cost-guardrails-tools.js","sourceRoot":"","sources":["../../src/tools/register-cost-guardrails-tools.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAG1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,6BAA6B;IAC7B,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,wCAAwC;YACxC,4FAA4F;YAC5F,8DAA8D;QAChE,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YACpE,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,yDAAyD,CAAC;YACtE,gBAAgB,EAAE,CAAC;iBAChB,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0DAA0D,CAAC;SACxE;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;KAC1C,EACD,YAAY,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAC3E,CAAC;IAEF,2BAA2B;IAC3B,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,mEAAmE;YACnE,2EAA2E;QAC7E,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAC3E,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,4EAA4E,CAAC;SAC1F;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE;KAC5D,EACD,YAAY,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CACxE,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,qCAAqC;YACrC,sEAAsE;YACtE,6EAA6E;QAC/E,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YACpE,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,wDAAwD,CAAC;YACrE,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;iBACjC,QAAQ,CACP,+EAA+E,CAChF;YACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;SACpF;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;KACvC,EACD,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-doc-compliance-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-doc-compliance-tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkBlE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// tools/register-doc-compliance-tools.ts — SPEC-385
|
|
2
|
+
// Registers the doc_compliance_report tool.
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { safeLicensed } from './safe-handler.js';
|
|
5
|
+
import { handleDocComplianceReport } from './doc-compliance-handler.js';
|
|
6
|
+
export function registerDocComplianceTools(server) {
|
|
7
|
+
server.registerTool('doc_compliance_report', {
|
|
8
|
+
description: 'Check whether a spec aligns with official documentation best practices for detected technologies. ' +
|
|
9
|
+
'Automatically detects techs from spec content, fetches official docs, and reports anti-patterns ' +
|
|
10
|
+
'and missing best practices.',
|
|
11
|
+
inputSchema: {
|
|
12
|
+
projectPath: z.string().describe('Absolute path to the project root'),
|
|
13
|
+
specId: z.string().describe('Spec ID to check (e.g. SPEC-042)'),
|
|
14
|
+
},
|
|
15
|
+
annotations: { readOnlyHint: true },
|
|
16
|
+
}, safeLicensed('doc_compliance_report', async (args) => handleDocComplianceReport(args)));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=register-doc-compliance-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-doc-compliance-tools.js","sourceRoot":"","sources":["../../src/tools/register-doc-compliance-tools.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,4CAA4C;AAG5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,oGAAoG;YACpG,kGAAkG;YAClG,6BAA6B;QAC/B,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACrE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;SAChE;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACnD,yBAAyB,CAAC,IAA0B,CAAC,CACtD,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-docs-registry-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-docs-registry-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyCjE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeLicensed } from './safe-handler.js';
|
|
3
|
+
import { handleValidateDocsRegistry, handleDiscoverDocsUrl } from './docs-registry-handler.js';
|
|
4
|
+
export function registerDocsRegistryTools(server) {
|
|
5
|
+
server.registerTool('validate_docs_registry', {
|
|
6
|
+
description: 'Check all entries in the built-in docs-registry.json for broken or slow links. ' +
|
|
7
|
+
'Performs HEAD requests against each registered documentation URL and categorizes them ' +
|
|
8
|
+
'as healthy, slow (>2s), or broken. Useful for auditing docs-registry health.',
|
|
9
|
+
inputSchema: {
|
|
10
|
+
projectPath: z
|
|
11
|
+
.string()
|
|
12
|
+
.max(4096)
|
|
13
|
+
.describe('Absolute path to the project root (used for context only).'),
|
|
14
|
+
},
|
|
15
|
+
annotations: { readOnlyHint: true },
|
|
16
|
+
}, safeLicensed('validate_docs_registry', async (args) => {
|
|
17
|
+
return handleValidateDocsRegistry(args);
|
|
18
|
+
}));
|
|
19
|
+
server.registerTool('discover_docs_url', {
|
|
20
|
+
description: 'Discover the official documentation URL for a package/library by querying ' +
|
|
21
|
+
'npm, PyPI, and crates.io registries. Returns the docs URL and whether it was ' +
|
|
22
|
+
'verified as alive. Useful for finding docs for packages not yet in the registry.',
|
|
23
|
+
inputSchema: {
|
|
24
|
+
tech: z
|
|
25
|
+
.string()
|
|
26
|
+
.min(1)
|
|
27
|
+
.max(200)
|
|
28
|
+
.describe('Package or library name to look up (e.g. "axios", "requests", "tokio").'),
|
|
29
|
+
},
|
|
30
|
+
annotations: { readOnlyHint: true },
|
|
31
|
+
}, safeLicensed('discover_docs_url', async (args) => {
|
|
32
|
+
return handleDiscoverDocsUrl(args);
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=register-docs-registry-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-docs-registry-tools.js","sourceRoot":"","sources":["../../src/tools/register-docs-registry-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAG/F,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EACT,iFAAiF;YACjF,wFAAwF;YACxF,8EAA8E;QAChF,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,CAAC,4DAA4D,CAAC;SAC1E;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,wBAAwB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACpD,OAAO,0BAA0B,CAAC,IAAiC,CAAC,CAAC;IACvE,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,4EAA4E;YAC5E,+EAA+E;YAC/E,kFAAkF;QACpF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,CAAC,yEAAyE,CAAC;SACvF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC/C,OAAO,qBAAqB,CAAC,IAA4B,CAAC,CAAC;IAC7D,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-dogfood-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-dogfood-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuB5D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { handleDogfoodStatus } from './dogfood-status-handler.js';
|
|
3
|
+
import { safeTracked } from './safe-handler.js';
|
|
4
|
+
export function registerDogfoodTools(server) {
|
|
5
|
+
server.registerTool('dogfood_status', {
|
|
6
|
+
description: "Report which Planu SDD tools have been used in Planu's own development by analyzing git commit history. Returns a dogfood score (0-100), list of tools used and missing, and a recommendation to improve SDD adoption. Use this to verify the team is practicing what they preach.",
|
|
7
|
+
inputSchema: {
|
|
8
|
+
projectPath: z
|
|
9
|
+
.string()
|
|
10
|
+
.min(1)
|
|
11
|
+
.max(4096)
|
|
12
|
+
.describe('Absolute path to the project root directory'),
|
|
13
|
+
since: z
|
|
14
|
+
.string()
|
|
15
|
+
.optional()
|
|
16
|
+
.describe('ISO 8601 date string (e.g. "2026-01-01") — analyze commits since this date. Defaults to last 30 days.'),
|
|
17
|
+
},
|
|
18
|
+
annotations: { readOnlyHint: true },
|
|
19
|
+
}, safeTracked('dogfood_status', (args) => Promise.resolve(handleDogfoodStatus(args))));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=register-dogfood-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-dogfood-tools.js","sourceRoot":"","sources":["../../src/tools/register-dogfood-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,oRAAoR;QACtR,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,uGAAuG,CACxG;SACJ;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,WAAW,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CACpF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-drift-watcher-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-drift-watcher-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8BjE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { handleWatchSpecDrift } from './drift-watcher-handler.js';
|
|
3
|
+
import { safeLicensed } from './safe-handler.js';
|
|
4
|
+
export function registerDriftWatcherTools(server) {
|
|
5
|
+
server.registerTool('watch_spec_drift', {
|
|
6
|
+
description: 'Real-time file watcher that detects when code changes cause a spec to drift from ' +
|
|
7
|
+
'its acceptance criteria. Uses Node.js fs.watch to monitor project files and alerts ' +
|
|
8
|
+
'when changes may affect spec compliance. State is in-memory and does not persist ' +
|
|
9
|
+
'across server restarts.',
|
|
10
|
+
inputSchema: {
|
|
11
|
+
projectPath: z
|
|
12
|
+
.string()
|
|
13
|
+
.min(1)
|
|
14
|
+
.max(2048)
|
|
15
|
+
.describe('Absolute path to the project root directory.'),
|
|
16
|
+
specId: z
|
|
17
|
+
.string()
|
|
18
|
+
.min(1)
|
|
19
|
+
.max(200)
|
|
20
|
+
.describe('Spec ID to watch for drift (e.g. "SPEC-042").'),
|
|
21
|
+
action: z
|
|
22
|
+
.enum(['start', 'stop', 'status'])
|
|
23
|
+
.describe('start: begin watching, stop: stop watcher, status: check if running'),
|
|
24
|
+
},
|
|
25
|
+
annotations: { readOnlyHint: false },
|
|
26
|
+
}, safeLicensed('watch_spec_drift', async (args) => handleWatchSpecDrift(args)));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=register-drift-watcher-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-drift-watcher-tools.js","sourceRoot":"","sources":["../../src/tools/register-drift-watcher-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,mFAAmF;YACnF,qFAAqF;YACrF,mFAAmF;YACnF,yBAAyB;QAC3B,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,CAAC,8CAA8C,CAAC;YAC3D,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,CAAC,+CAA+C,CAAC;YAC5D,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;iBACjC,QAAQ,CAAC,qEAAqE,CAAC;SACnF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE;KACrC,EACD,YAAY,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC9C,oBAAoB,CAAC,IAA2B,CAAC,CAClD,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-mcp-gateway-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-mcp-gateway-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6C/D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safe } from './safe-handler.js';
|
|
3
|
+
import { handleDiscoverMcpGateways, handleFederationDiscoveryStatus, } from './mcp-gateway-handler.js';
|
|
4
|
+
export function registerMcpGatewayTools(server) {
|
|
5
|
+
// discover_mcp_gateways
|
|
6
|
+
server.registerTool('discover_mcp_gateways', {
|
|
7
|
+
description: 'Auto-discover Planu-compatible MCP servers by probing the /.well-known/mcp endpoint ' +
|
|
8
|
+
'on localhost ports and any explicitly provided URLs. ' +
|
|
9
|
+
'Found gateways are persisted to the global registry for federation.',
|
|
10
|
+
inputSchema: {
|
|
11
|
+
projectPath: z.string().min(1).describe('Absolute path to the project root.'),
|
|
12
|
+
urls: z
|
|
13
|
+
.array(z.url())
|
|
14
|
+
.optional()
|
|
15
|
+
.describe('Extra base URLs to probe (e.g. "http://remote-host:4000"). ' +
|
|
16
|
+
'Each URL is probed at <url>/.well-known/mcp.'),
|
|
17
|
+
includeLocalhost: z
|
|
18
|
+
.boolean()
|
|
19
|
+
.optional()
|
|
20
|
+
.describe('Scan default localhost ports (3000, 3001, 8080, 8000, 9000). ' +
|
|
21
|
+
'Defaults to true. Set to false to probe only the provided URLs.'),
|
|
22
|
+
},
|
|
23
|
+
annotations: { title: 'Discover MCP Gateways', readOnlyHint: false },
|
|
24
|
+
}, safe((args) => handleDiscoverMcpGateways(args)));
|
|
25
|
+
// federation_discovery_status
|
|
26
|
+
server.registerTool('federation_discovery_status', {
|
|
27
|
+
description: 'Show all known MCP gateways from the global registry, including their status ' +
|
|
28
|
+
'(active / unreachable / incompatible), discovered tools, and Planu compatibility.',
|
|
29
|
+
inputSchema: {
|
|
30
|
+
projectPath: z.string().min(1).describe('Absolute path to the project root.'),
|
|
31
|
+
},
|
|
32
|
+
annotations: { title: 'Federation Discovery Status', readOnlyHint: true },
|
|
33
|
+
}, safe((args) => handleFederationDiscoveryStatus(args)));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=register-mcp-gateway-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-mcp-gateway-tools.js","sourceRoot":"","sources":["../../src/tools/register-mcp-gateway-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EACL,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAMlC,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,sFAAsF;YACtF,uDAAuD;YACvD,qEAAqE;QACvE,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YAC7E,IAAI,EAAE,CAAC;iBACJ,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;iBACd,QAAQ,EAAE;iBACV,QAAQ,CACP,6DAA6D;gBAC3D,8CAA8C,CACjD;YACH,gBAAgB,EAAE,CAAC;iBAChB,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CACP,+DAA+D;gBAC7D,iEAAiE,CACpE;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,KAAK,EAAE;KACrE,EACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAgC,CAAC,CAAC,CAC5E,CAAC;IAEF,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACjB,6BAA6B,EAC7B;QACE,WAAW,EACT,+EAA+E;YAC/E,mFAAmF;QACrF,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SAC9E;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,YAAY,EAAE,IAAI,EAAE;KAC1E,EACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,+BAA+B,CAAC,IAAsC,CAAC,CAAC,CACxF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
/**
|
|
3
|
+
* Registers multi-repo refactoring coordination tools on the MCP server (SPEC-389).
|
|
4
|
+
* - coordinate_refactor (pro)
|
|
5
|
+
* - sync_refactor_status (pro)
|
|
6
|
+
*/
|
|
7
|
+
export declare function registerMultiRepoTools(server: McpServer): void;
|
|
8
|
+
//# sourceMappingURL=register-multi-repo-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-multi-repo-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-multi-repo-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwD9D"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// tools/register-multi-repo-tools.ts — SPEC-389: Register multi-repo refactoring tools
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { safe } from './safe-handler.js';
|
|
4
|
+
import { handleCoordinateRefactor, handleSyncRefactorStatus } from './multi-repo-handler.js';
|
|
5
|
+
/**
|
|
6
|
+
* Registers multi-repo refactoring coordination tools on the MCP server (SPEC-389).
|
|
7
|
+
* - coordinate_refactor (pro)
|
|
8
|
+
* - sync_refactor_status (pro)
|
|
9
|
+
*/
|
|
10
|
+
export function registerMultiRepoTools(server) {
|
|
11
|
+
// coordinate_refactor — initiate a cross-repo refactor session
|
|
12
|
+
server.registerTool('coordinate_refactor', {
|
|
13
|
+
description: 'Coordinate a refactoring operation that spans multiple registered projects. ' +
|
|
14
|
+
'Scans all registered consumer projects for usages of the specified symbols ' +
|
|
15
|
+
'and creates a refactor session tracking completion across all repos. ' +
|
|
16
|
+
'Run register_project_path first to add consumer projects.',
|
|
17
|
+
inputSchema: {
|
|
18
|
+
projectPath: z
|
|
19
|
+
.string()
|
|
20
|
+
.min(1)
|
|
21
|
+
.max(4096)
|
|
22
|
+
.describe('Absolute path to the source project where the refactor originates'),
|
|
23
|
+
specId: z
|
|
24
|
+
.string()
|
|
25
|
+
.min(1)
|
|
26
|
+
.describe('ID of the spec in the source project describing the API change (e.g. SPEC-042)'),
|
|
27
|
+
affectedSymbols: z
|
|
28
|
+
.array(z.string().min(1))
|
|
29
|
+
.min(1)
|
|
30
|
+
.describe('List of function, class, or type names being changed. ' +
|
|
31
|
+
'Consumer projects will be scanned for these identifiers.'),
|
|
32
|
+
},
|
|
33
|
+
annotations: { title: 'Coordinate Multi-Repo Refactor' },
|
|
34
|
+
}, safe(async (args) => handleCoordinateRefactor(args)));
|
|
35
|
+
// sync_refactor_status — query progress of an active session
|
|
36
|
+
server.registerTool('sync_refactor_status', {
|
|
37
|
+
description: 'Retrieve the current progress report for an active multi-repo refactor session. ' +
|
|
38
|
+
'Returns per-consumer completion status and an overall progress percentage.',
|
|
39
|
+
inputSchema: {
|
|
40
|
+
projectPath: z
|
|
41
|
+
.string()
|
|
42
|
+
.min(1)
|
|
43
|
+
.max(4096)
|
|
44
|
+
.describe('Absolute path to the source project that owns the refactor session'),
|
|
45
|
+
refactorId: z
|
|
46
|
+
.string()
|
|
47
|
+
.describe('UUID of the refactor session returned by coordinate_refactor'),
|
|
48
|
+
},
|
|
49
|
+
annotations: { title: 'Sync Refactor Status', readOnlyHint: true },
|
|
50
|
+
}, safe(async (args) => handleSyncRefactorStatus(args)));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=register-multi-repo-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-multi-repo-tools.js","sourceRoot":"","sources":["../../src/tools/register-multi-repo-tools.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAGvF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAE7F;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,+DAA+D;IAC/D,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,8EAA8E;YAC9E,6EAA6E;YAC7E,uEAAuE;YACvE,2DAA2D;QAC7D,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,CAAC,mEAAmE,CAAC;YAChF,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CACP,gFAAgF,CACjF;YACH,eAAe,EAAE,CAAC;iBACf,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBACxB,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CACP,wDAAwD;gBACtD,0DAA0D,CAC7D;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE;KACzD,EACD,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CACrD,CAAC;IAEF,6DAA6D;IAC7D,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EACT,kFAAkF;YAClF,4EAA4E;QAC9E,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,CAAC,oEAAoE,CAAC;YACjF,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,CAAC,8DAA8D,CAAC;SAC5E;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE;KACnE,EACD,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CACrD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-handler.d.ts","sourceRoot":"","sources":["../../src/tools/safe-handler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA0CpD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAEhE;AA4ID;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACpB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACxC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAElC;
|
|
1
|
+
{"version":3,"file":"safe-handler.d.ts","sourceRoot":"","sources":["../../src/tools/safe-handler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA0CpD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAEhE;AA4ID;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACpB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACxC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAElC;AAkKD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACxC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAElC;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACxC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAWlC"}
|
|
@@ -242,6 +242,30 @@ function safeWithTelemetry(toolName, handler) {
|
|
|
242
242
|
});
|
|
243
243
|
}
|
|
244
244
|
/* v8 ignore stop */
|
|
245
|
+
// SPEC-387: Audit trail — fire-and-forget, never throws
|
|
246
|
+
/* v8 ignore start */
|
|
247
|
+
if (toolName !== undefined) {
|
|
248
|
+
try {
|
|
249
|
+
const [{ appendEntry, getLastHash }, { buildAuditEntry }, { hashEntry }] = await Promise.all([
|
|
250
|
+
import('../storage/audit-trail-store.js'),
|
|
251
|
+
import('../engine/audit-trail/formatter.js'),
|
|
252
|
+
import('../engine/audit-trail/hasher.js'),
|
|
253
|
+
]);
|
|
254
|
+
const prevHash = getLastHash();
|
|
255
|
+
const partial = buildAuditEntry({
|
|
256
|
+
toolName,
|
|
257
|
+
args,
|
|
258
|
+
outputType: finalResult.isError === true ? 'error' : 'success',
|
|
259
|
+
durationMs: Date.now() - startTime,
|
|
260
|
+
prevHash,
|
|
261
|
+
});
|
|
262
|
+
appendEntry({ ...partial, hash: hashEntry(partial) });
|
|
263
|
+
}
|
|
264
|
+
catch {
|
|
265
|
+
// Silent — audit must never affect tool execution
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/* v8 ignore stop */
|
|
245
269
|
return finalResult;
|
|
246
270
|
}
|
|
247
271
|
catch (error) {
|
|
@@ -265,7 +289,7 @@ function safeWithTelemetry(toolName, handler) {
|
|
|
265
289
|
reportToolError(toolName, error);
|
|
266
290
|
}
|
|
267
291
|
const reportUrl = 'https://github.com/planu-dev/planu/issues/new?template=bug_report.md';
|
|
268
|
-
|
|
292
|
+
const errorResult = {
|
|
269
293
|
content: [
|
|
270
294
|
{
|
|
271
295
|
type: 'text',
|
|
@@ -274,6 +298,31 @@ function safeWithTelemetry(toolName, handler) {
|
|
|
274
298
|
],
|
|
275
299
|
isError: true,
|
|
276
300
|
};
|
|
301
|
+
// SPEC-387: Audit trail for error path — fire-and-forget, never throws
|
|
302
|
+
/* v8 ignore start */
|
|
303
|
+
if (toolName !== undefined) {
|
|
304
|
+
try {
|
|
305
|
+
const [{ appendEntry, getLastHash }, { buildAuditEntry }, { hashEntry }] = await Promise.all([
|
|
306
|
+
import('../storage/audit-trail-store.js'),
|
|
307
|
+
import('../engine/audit-trail/formatter.js'),
|
|
308
|
+
import('../engine/audit-trail/hasher.js'),
|
|
309
|
+
]);
|
|
310
|
+
const prevHash = getLastHash();
|
|
311
|
+
const partial = buildAuditEntry({
|
|
312
|
+
toolName,
|
|
313
|
+
args,
|
|
314
|
+
outputType: 'error',
|
|
315
|
+
durationMs: Date.now() - startTime,
|
|
316
|
+
prevHash,
|
|
317
|
+
});
|
|
318
|
+
appendEntry({ ...partial, hash: hashEntry(partial) });
|
|
319
|
+
}
|
|
320
|
+
catch {
|
|
321
|
+
// Silent — audit must never affect tool execution
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/* v8 ignore stop */
|
|
325
|
+
return errorResult;
|
|
277
326
|
}
|
|
278
327
|
};
|
|
279
328
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-handler.js","sourceRoot":"","sources":["../../src/tools/safe-handler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"safe-handler.js","sourceRoot":"","sources":["../../src/tools/safe-handler.ts"],"names":[],"mappings":"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"}
|