@planu/cli 0.92.0 → 0.94.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 +1 -0
- package/dist/engine/telemetry/error-reporter.d.ts +6 -0
- package/dist/engine/telemetry/error-reporter.d.ts.map +1 -1
- package/dist/engine/telemetry/error-reporter.js +22 -0
- package/dist/engine/telemetry/error-reporter.js.map +1 -1
- package/dist/engine/token-savings-calculator.d.ts +3 -0
- package/dist/engine/token-savings-calculator.d.ts.map +1 -0
- package/dist/engine/token-savings-calculator.js +115 -0
- package/dist/engine/token-savings-calculator.js.map +1 -0
- package/dist/tools/audit-trail-handler.d.ts +6 -2
- package/dist/tools/audit-trail-handler.d.ts.map +1 -1
- package/dist/tools/audit-trail-handler.js +12 -9
- package/dist/tools/audit-trail-handler.js.map +1 -1
- package/dist/tools/check-readiness.d.ts +3 -1
- package/dist/tools/check-readiness.d.ts.map +1 -1
- package/dist/tools/check-readiness.js +9 -1
- package/dist/tools/check-readiness.js.map +1 -1
- package/dist/tools/data-governance.d.ts +3 -1
- package/dist/tools/data-governance.d.ts.map +1 -1
- package/dist/tools/data-governance.js +9 -1
- package/dist/tools/data-governance.js.map +1 -1
- package/dist/tools/register-audit-trail-tools.d.ts.map +1 -1
- package/dist/tools/register-audit-trail-tools.js +27 -4
- package/dist/tools/register-audit-trail-tools.js.map +1 -1
- package/dist/tools/register-backlog-tools.d.ts.map +1 -1
- package/dist/tools/register-backlog-tools.js +24 -8
- package/dist/tools/register-backlog-tools.js.map +1 -1
- package/dist/tools/register-ci-tools.d.ts.map +1 -1
- package/dist/tools/register-ci-tools.js +27 -5
- package/dist/tools/register-ci-tools.js.map +1 -1
- package/dist/tools/register-coverage-tools.d.ts.map +1 -1
- package/dist/tools/register-coverage-tools.js +14 -2
- package/dist/tools/register-coverage-tools.js.map +1 -1
- package/dist/tools/register-domain-criteria-tools.d.ts.map +1 -1
- package/dist/tools/register-domain-criteria-tools.js +27 -4
- package/dist/tools/register-domain-criteria-tools.js.map +1 -1
- package/dist/tools/register-elicitation-tools.d.ts.map +1 -1
- package/dist/tools/register-elicitation-tools.js +14 -2
- package/dist/tools/register-elicitation-tools.js.map +1 -1
- package/dist/tools/register-event-tools.d.ts.map +1 -1
- package/dist/tools/register-event-tools.js +14 -2
- package/dist/tools/register-event-tools.js.map +1 -1
- package/dist/tools/register-federation-tools.d.ts.map +1 -1
- package/dist/tools/register-federation-tools.js +27 -4
- package/dist/tools/register-federation-tools.js.map +1 -1
- package/dist/tools/register-governance-tools.d.ts.map +1 -1
- package/dist/tools/register-governance-tools.js +27 -4
- package/dist/tools/register-governance-tools.js.map +1 -1
- package/dist/tools/register-hooks-tools.d.ts.map +1 -1
- package/dist/tools/register-hooks-tools.js +14 -2
- package/dist/tools/register-hooks-tools.js.map +1 -1
- package/dist/tools/register-infrastructure-tools.d.ts.map +1 -1
- package/dist/tools/register-infrastructure-tools.js +17 -2
- package/dist/tools/register-infrastructure-tools.js.map +1 -1
- package/dist/tools/register-lessons-tools.d.ts.map +1 -1
- package/dist/tools/register-lessons-tools.js +12 -4
- package/dist/tools/register-lessons-tools.js.map +1 -1
- package/dist/tools/register-living-spec-advanced-tools.d.ts.map +1 -1
- package/dist/tools/register-living-spec-advanced-tools.js +92 -16
- package/dist/tools/register-living-spec-advanced-tools.js.map +1 -1
- package/dist/tools/register-living-spec-tools.d.ts.map +1 -1
- package/dist/tools/register-living-spec-tools.js +53 -10
- package/dist/tools/register-living-spec-tools.js.map +1 -1
- package/dist/tools/register-migration-tools.d.ts.map +1 -1
- package/dist/tools/register-migration-tools.js +10 -3
- package/dist/tools/register-migration-tools.js.map +1 -1
- package/dist/tools/register-readiness-tools.d.ts.map +1 -1
- package/dist/tools/register-readiness-tools.js +27 -4
- package/dist/tools/register-readiness-tools.js.map +1 -1
- package/dist/tools/register-scan-tools.js +1 -1
- package/dist/tools/register-scan-tools.js.map +1 -1
- package/dist/tools/register-scope-tools.d.ts.map +1 -1
- package/dist/tools/register-scope-tools.js +27 -4
- package/dist/tools/register-scope-tools.js.map +1 -1
- package/dist/tools/register-search-tools.d.ts.map +1 -1
- package/dist/tools/register-search-tools.js +14 -2
- package/dist/tools/register-search-tools.js.map +1 -1
- package/dist/tools/register-security-tools.d.ts.map +1 -1
- package/dist/tools/register-security-tools.js +14 -2
- package/dist/tools/register-security-tools.js.map +1 -1
- package/dist/tools/register-spec-observability-tools.d.ts.map +1 -1
- package/dist/tools/register-spec-observability-tools.js +14 -2
- package/dist/tools/register-spec-observability-tools.js.map +1 -1
- package/dist/tools/register-spec-split-tools.d.ts.map +1 -1
- package/dist/tools/register-spec-split-tools.js +26 -6
- package/dist/tools/register-spec-split-tools.js.map +1 -1
- package/dist/tools/register-stack-tools.d.ts.map +1 -1
- package/dist/tools/register-stack-tools.js +40 -9
- package/dist/tools/register-stack-tools.js.map +1 -1
- package/dist/tools/register-team-tools.d.ts.map +1 -1
- package/dist/tools/register-team-tools.js +38 -6
- package/dist/tools/register-team-tools.js.map +1 -1
- package/dist/tools/register-telemetry-tools.d.ts.map +1 -1
- package/dist/tools/register-telemetry-tools.js +6 -1
- package/dist/tools/register-telemetry-tools.js.map +1 -1
- package/dist/tools/register-token-tools.d.ts.map +1 -1
- package/dist/tools/register-token-tools.js +18 -0
- package/dist/tools/register-token-tools.js.map +1 -1
- package/dist/tools/register-versioning-tools.d.ts.map +1 -1
- package/dist/tools/register-versioning-tools.js +66 -13
- package/dist/tools/register-versioning-tools.js.map +1 -1
- package/dist/tools/resolve-project-id.d.ts +13 -0
- package/dist/tools/resolve-project-id.d.ts.map +1 -0
- package/dist/tools/resolve-project-id.js +22 -0
- package/dist/tools/resolve-project-id.js.map +1 -0
- package/dist/tools/safe-handler.d.ts.map +1 -1
- package/dist/tools/safe-handler.js +7 -2
- package/dist/tools/safe-handler.js.map +1 -1
- package/dist/tools/token-savings-handler.d.ts +7 -0
- package/dist/tools/token-savings-handler.d.ts.map +1 -0
- package/dist/tools/token-savings-handler.js +39 -0
- package/dist/tools/token-savings-handler.js.map +1 -0
- package/dist/types/token-ledger.d.ts +23 -0
- package/dist/types/token-ledger.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/config/license-plans.json +1 -0
|
@@ -2,12 +2,17 @@ import { z } from 'zod';
|
|
|
2
2
|
import { handleGenerateCI } from './ci-generator.js';
|
|
3
3
|
import { handleGeneratePlanuCI } from './ci-planu-handler.js';
|
|
4
4
|
import { safeLicensed } from './safe-handler.js';
|
|
5
|
+
import { resolveProjectId, missingProjectIdError } from './resolve-project-id.js';
|
|
5
6
|
export function registerCITools(server) {
|
|
6
7
|
server.registerTool('generate_ci', {
|
|
7
8
|
description: 'Generate a GitHub Actions CI workflow YAML for a project. Auto-detects ecosystem (Node.js, Python, Go, Rust, Java/Kotlin, Ruby, PHP, Dart, .NET) and configures lint, test, build, and deploy jobs with proper caching and dependency installation.',
|
|
8
9
|
inputSchema: {
|
|
9
|
-
projectId: z.string().max(500).describe('Project ID'),
|
|
10
|
-
projectPath: z
|
|
10
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
11
|
+
projectPath: z
|
|
12
|
+
.string()
|
|
13
|
+
.max(4096)
|
|
14
|
+
.optional()
|
|
15
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
11
16
|
jobs: z
|
|
12
17
|
.array(z
|
|
13
18
|
.enum(['lint', 'test', 'build', 'deploy'])
|
|
@@ -53,11 +58,22 @@ export function registerCITools(server) {
|
|
|
53
58
|
.describe('Name for the GitHub Actions workflow (default: "CI"). Used as the workflow name and filename'),
|
|
54
59
|
},
|
|
55
60
|
annotations: { readOnlyHint: true },
|
|
56
|
-
}, safeLicensed('generate_ci', async (args) =>
|
|
61
|
+
}, safeLicensed('generate_ci', async (args) => {
|
|
62
|
+
const pid = resolveProjectId(args);
|
|
63
|
+
if (!pid) {
|
|
64
|
+
return missingProjectIdError;
|
|
65
|
+
}
|
|
66
|
+
return handleGenerateCI({ ...args, projectId: pid });
|
|
67
|
+
}));
|
|
57
68
|
server.registerTool('generate_planu_ci', {
|
|
58
69
|
description: 'Generate a Planu-specific GitHub Actions CI workflow that validates specs, detects drift between code and specs, posts results as PR comments, generates badges, and supports .planu.yml configuration. Produces ready-to-use workflow YAML + config file.',
|
|
59
70
|
inputSchema: {
|
|
60
|
-
projectId: z.string().max(500).describe('Project ID'),
|
|
71
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
72
|
+
projectPath: z
|
|
73
|
+
.string()
|
|
74
|
+
.max(4096)
|
|
75
|
+
.optional()
|
|
76
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
61
77
|
specsDir: z
|
|
62
78
|
.string()
|
|
63
79
|
.max(4096)
|
|
@@ -98,6 +114,12 @@ export function registerCITools(server) {
|
|
|
98
114
|
.describe('Mark for git pre-push hook integration in the output instructions (default: false)'),
|
|
99
115
|
},
|
|
100
116
|
annotations: { readOnlyHint: true },
|
|
101
|
-
}, safeLicensed('generate_planu_ci', (args) =>
|
|
117
|
+
}, safeLicensed('generate_planu_ci', (args) => {
|
|
118
|
+
const pid = resolveProjectId(args);
|
|
119
|
+
if (!pid) {
|
|
120
|
+
return Promise.resolve(missingProjectIdError);
|
|
121
|
+
}
|
|
122
|
+
return Promise.resolve(handleGeneratePlanuCI({ ...args, projectId: pid }));
|
|
123
|
+
}));
|
|
102
124
|
}
|
|
103
125
|
//# sourceMappingURL=register-ci-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-ci-tools.js","sourceRoot":"","sources":["../../src/tools/register-ci-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"register-ci-tools.js","sourceRoot":"","sources":["../../src/tools/register-ci-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-coverage-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-coverage-tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"register-coverage-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-coverage-tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqC7D"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { safeLicensed } from './safe-handler.js';
|
|
5
5
|
import { handleSpecCoverage } from './spec-coverage.js';
|
|
6
|
+
import { resolveProjectId, missingProjectIdError } from './resolve-project-id.js';
|
|
6
7
|
/**
|
|
7
8
|
* Registers the spec_coverage tool (SPEC-068) on the MCP server.
|
|
8
9
|
* Requires a paid plan — coverage analysis is a Pro feature.
|
|
@@ -13,7 +14,12 @@ export function registerCoverageTools(server) {
|
|
|
13
14
|
'Performs static analysis across 10 ecosystems (TypeScript, Python, Go, Java, Rust, Swift, C#, PHP, Ruby, Kotlin). ' +
|
|
14
15
|
'Returns a per-criterion breakdown with coverage grade (A/B/C/D) and identifies untested criteria as risk items.',
|
|
15
16
|
inputSchema: {
|
|
16
|
-
projectId: z.string().max(500).describe('Project ID
|
|
17
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
18
|
+
projectPath: z
|
|
19
|
+
.string()
|
|
20
|
+
.max(4096)
|
|
21
|
+
.optional()
|
|
22
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
17
23
|
specId: z
|
|
18
24
|
.string()
|
|
19
25
|
.max(500)
|
|
@@ -23,6 +29,12 @@ export function registerCoverageTools(server) {
|
|
|
23
29
|
title: 'Spec Test Coverage',
|
|
24
30
|
readOnlyHint: true,
|
|
25
31
|
},
|
|
26
|
-
}, safeLicensed('spec_coverage', async (args) =>
|
|
32
|
+
}, safeLicensed('spec_coverage', async (args) => {
|
|
33
|
+
const pid = resolveProjectId(args);
|
|
34
|
+
if (!pid) {
|
|
35
|
+
return missingProjectIdError;
|
|
36
|
+
}
|
|
37
|
+
return handleSpecCoverage({ ...args, projectId: pid });
|
|
38
|
+
}));
|
|
27
39
|
}
|
|
28
40
|
//# sourceMappingURL=register-coverage-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-coverage-tools.js","sourceRoot":"","sources":["../../src/tools/register-coverage-tools.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,oCAAoC;AAGpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"register-coverage-tools.js","sourceRoot":"","sources":["../../src/tools/register-coverage-tools.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,oCAAoC;AAGpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAElF;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,gGAAgG;YAChG,oHAAoH;YACpH,iHAAiH;QACnH,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAC1F,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,iEAAiE,CAAC;YAC9E,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,CACP,sFAAsF,CACvF;SACJ;QACD,WAAW,EAAE;YACX,KAAK,EAAE,oBAAoB;YAC3B,YAAY,EAAE,IAAI;SACnB;KACF,EACD,YAAY,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAoD,CAAC,CAAC;QACnF,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,OAAO,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,EAE/C,CAAC,CAAC;IACR,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-domain-criteria-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-domain-criteria-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"register-domain-criteria-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-domain-criteria-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiFnE"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { safeLicensed } from './safe-handler.js';
|
|
4
4
|
import { handleSuggestCriteria, handleInjectCriteria } from './domain-criteria-handler.js';
|
|
5
|
+
import { resolveProjectId, missingProjectIdError } from './resolve-project-id.js';
|
|
5
6
|
export function registerDomainCriteriaTools(server) {
|
|
6
7
|
// suggest_criteria — read-only, free tier
|
|
7
8
|
server.registerTool('suggest_criteria', {
|
|
@@ -10,7 +11,12 @@ export function registerDomainCriteriaTools(server) {
|
|
|
10
11
|
'Returns suggested criteria grouped by domain and flags critical gaps that penalize readiness score.',
|
|
11
12
|
annotations: { readOnlyHint: true },
|
|
12
13
|
inputSchema: {
|
|
13
|
-
projectId: z.string().max(500).describe('Project ID
|
|
14
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
15
|
+
projectPath: z
|
|
16
|
+
.string()
|
|
17
|
+
.max(4096)
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
14
20
|
specId: z.string().max(500).describe('Spec ID to analyze (e.g. SPEC-042)'),
|
|
15
21
|
projectHash: z
|
|
16
22
|
.string()
|
|
@@ -19,7 +25,13 @@ export function registerDomainCriteriaTools(server) {
|
|
|
19
25
|
.describe('Optional project hash for loading project-level best-practices overrides from ' +
|
|
20
26
|
'data/projects/{hash}/config/domain-best-practices-overrides.json'),
|
|
21
27
|
},
|
|
22
|
-
}, safeLicensed('suggest_criteria', async (args) =>
|
|
28
|
+
}, safeLicensed('suggest_criteria', async (args) => {
|
|
29
|
+
const pid = resolveProjectId(args);
|
|
30
|
+
if (!pid) {
|
|
31
|
+
return missingProjectIdError;
|
|
32
|
+
}
|
|
33
|
+
return handleSuggestCriteria({ ...args, projectId: pid });
|
|
34
|
+
}));
|
|
23
35
|
// inject_criteria — destructive (modifies spec file), pro tier
|
|
24
36
|
server.registerTool('inject_criteria', {
|
|
25
37
|
description: 'Inject missing domain best-practice criteria directly into a spec\'s "## Acceptance Criteria" section. ' +
|
|
@@ -27,7 +39,12 @@ export function registerDomainCriteriaTools(server) {
|
|
|
27
39
|
'Use criteriaIds to inject only specific criteria; omit to inject all missing critical criteria.',
|
|
28
40
|
annotations: { destructiveHint: true },
|
|
29
41
|
inputSchema: {
|
|
30
|
-
projectId: z.string().max(500).describe('Project ID
|
|
42
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
43
|
+
projectPath: z
|
|
44
|
+
.string()
|
|
45
|
+
.max(4096)
|
|
46
|
+
.optional()
|
|
47
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
31
48
|
specId: z.string().max(500).describe('Spec ID to inject criteria into (e.g. SPEC-042)'),
|
|
32
49
|
criteriaIds: z
|
|
33
50
|
.array(z.string().max(200))
|
|
@@ -41,6 +58,12 @@ export function registerDomainCriteriaTools(server) {
|
|
|
41
58
|
.optional()
|
|
42
59
|
.describe('Optional project hash for loading project-level best-practices overrides'),
|
|
43
60
|
},
|
|
44
|
-
}, safeLicensed('inject_criteria', async (args) =>
|
|
61
|
+
}, safeLicensed('inject_criteria', async (args) => {
|
|
62
|
+
const pid = resolveProjectId(args);
|
|
63
|
+
if (!pid) {
|
|
64
|
+
return missingProjectIdError;
|
|
65
|
+
}
|
|
66
|
+
return handleInjectCriteria({ ...args, projectId: pid });
|
|
67
|
+
}));
|
|
45
68
|
}
|
|
46
69
|
//# sourceMappingURL=register-domain-criteria-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-domain-criteria-tools.js","sourceRoot":"","sources":["../../src/tools/register-domain-criteria-tools.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAGtG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"register-domain-criteria-tools.js","sourceRoot":"","sources":["../../src/tools/register-domain-criteria-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-elicitation-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-elicitation-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"register-elicitation-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-elicitation-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgDhE"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { safeLicensed } from './safe-handler.js';
|
|
3
3
|
import { handleElicitRequirements } from './elicit-requirements-handler.js';
|
|
4
|
+
import { resolveProjectId, missingProjectIdError } from './resolve-project-id.js';
|
|
4
5
|
export function registerElicitationTools(server) {
|
|
5
6
|
server.registerTool('elicit_requirements', {
|
|
6
7
|
description: 'Interactively clarify requirements before creating a spec. ' +
|
|
7
8
|
'First call returns structured questions for the user to answer. ' +
|
|
8
9
|
'Second call (with answers + sessionId) returns a structured summary ready to pass to create_spec.',
|
|
9
10
|
inputSchema: {
|
|
10
|
-
projectId: z.string().
|
|
11
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
12
|
+
projectPath: z
|
|
13
|
+
.string()
|
|
14
|
+
.max(4096)
|
|
15
|
+
.optional()
|
|
16
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
11
17
|
title: z.string().min(3).max(200).describe('Feature title to clarify requirements for.'),
|
|
12
18
|
description: z
|
|
13
19
|
.string()
|
|
@@ -28,6 +34,12 @@ export function registerElicitationTools(server) {
|
|
|
28
34
|
'Pass this on the follow-up call to continue the same elicitation session.'),
|
|
29
35
|
},
|
|
30
36
|
annotations: { title: 'Elicit Requirements', readOnlyHint: false },
|
|
31
|
-
}, safeLicensed('elicit_requirements', async (args) =>
|
|
37
|
+
}, safeLicensed('elicit_requirements', async (args) => {
|
|
38
|
+
const pid = resolveProjectId(args);
|
|
39
|
+
if (!pid) {
|
|
40
|
+
return missingProjectIdError;
|
|
41
|
+
}
|
|
42
|
+
return handleElicitRequirements({ ...args, projectId: pid });
|
|
43
|
+
}));
|
|
32
44
|
}
|
|
33
45
|
//# sourceMappingURL=register-elicitation-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-elicitation-tools.js","sourceRoot":"","sources":["../../src/tools/register-elicitation-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"register-elicitation-tools.js","sourceRoot":"","sources":["../../src/tools/register-elicitation-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAElF,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,6DAA6D;YAC7D,kEAAkE;YAClE,mGAAmG;QACrG,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAC1F,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,iEAAiE,CAAC;YAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACxF,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,EAAE,CAAC;iBACP,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,CAAC,+CAA+C,CAAC;YAC5D,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,EAAE;iBACV,QAAQ,CACP,+DAA+D;gBAC7D,iEAAiE,CACpE;YACH,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,8CAA8C;gBAC5C,2EAA2E,CAC9E;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,KAAK,EAAE;KACnE,EACD,YAAY,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAoD,CAAC,CAAC;QACnF,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,OAAO,wBAAwB,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,EAA6B,CAAC,CAAC;IAC1F,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-event-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-event-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"register-event-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-event-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyK1D"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { handleEventContracts } from './event-contracts.js';
|
|
4
4
|
import { safeLicensed } from './safe-handler.js';
|
|
5
|
+
import { resolveProjectId, missingProjectIdError } from './resolve-project-id.js';
|
|
5
6
|
export function registerEventTools(server) {
|
|
6
7
|
// event_contracts — SPEC-031
|
|
7
8
|
server.registerTool('event_contracts', {
|
|
@@ -16,7 +17,12 @@ export function registerEventTools(server) {
|
|
|
16
17
|
'validate-contract: verify a payload against the active contract; ' +
|
|
17
18
|
'evolve-contract: classify a schema change and apply the new version; ' +
|
|
18
19
|
'saga-spec: define a Saga with compensation events per step'),
|
|
19
|
-
projectId: z.string().max(500).describe('Project ID
|
|
20
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
21
|
+
projectPath: z
|
|
22
|
+
.string()
|
|
23
|
+
.max(4096)
|
|
24
|
+
.optional()
|
|
25
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
20
26
|
generateContract: z
|
|
21
27
|
.object({
|
|
22
28
|
projectId: z.string().max(500).describe('Project ID'),
|
|
@@ -142,6 +148,12 @@ export function registerEventTools(server) {
|
|
|
142
148
|
.optional()
|
|
143
149
|
.describe('Input for saga-spec subcommand'),
|
|
144
150
|
},
|
|
145
|
-
}, safeLicensed('event_contracts', async (args) =>
|
|
151
|
+
}, safeLicensed('event_contracts', async (args) => {
|
|
152
|
+
const pid = resolveProjectId(args);
|
|
153
|
+
if (!pid) {
|
|
154
|
+
return missingProjectIdError;
|
|
155
|
+
}
|
|
156
|
+
return handleEventContracts({ ...args, projectId: pid });
|
|
157
|
+
}));
|
|
146
158
|
}
|
|
147
159
|
//# sourceMappingURL=register-event-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-event-tools.js","sourceRoot":"","sources":["../../src/tools/register-event-tools.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAGnF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"register-event-tools.js","sourceRoot":"","sources":["../../src/tools/register-event-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-federation-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-federation-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"register-federation-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-federation-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiF/D"}
|
|
@@ -3,6 +3,7 @@ import { z } from 'zod';
|
|
|
3
3
|
import { handleFederateSpecs } from './federate-specs.js';
|
|
4
4
|
import { handleFederationStatus } from './federation-status.js';
|
|
5
5
|
import { safeLicensed } from './safe-handler.js';
|
|
6
|
+
import { resolveProjectId, missingProjectIdError } from './resolve-project-id.js';
|
|
6
7
|
/**
|
|
7
8
|
* Registers the `federate_specs` and `federation_status` tools (SPEC-160).
|
|
8
9
|
*/
|
|
@@ -14,7 +15,12 @@ export function registerFederationTools(server) {
|
|
|
14
15
|
'Supports three relationship types: depends-on, consumed-by, shared-contract. ' +
|
|
15
16
|
'Stored in data/global/federation.json and resolved locally — no network calls.',
|
|
16
17
|
inputSchema: {
|
|
17
|
-
projectId: z.string().max(500).describe('Project ID
|
|
18
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
19
|
+
projectPath: z
|
|
20
|
+
.string()
|
|
21
|
+
.max(4096)
|
|
22
|
+
.optional()
|
|
23
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
18
24
|
specId: z.string().max(500).describe('Spec ID in the current project (e.g., "SPEC-042")'),
|
|
19
25
|
linkedRepo: z
|
|
20
26
|
.string()
|
|
@@ -32,7 +38,13 @@ export function registerFederationTools(server) {
|
|
|
32
38
|
'shared-contract (both specs share a contract)'),
|
|
33
39
|
},
|
|
34
40
|
annotations: { readOnlyHint: false },
|
|
35
|
-
}, safeLicensed('federate_specs', async (args) =>
|
|
41
|
+
}, safeLicensed('federate_specs', async (args) => {
|
|
42
|
+
const pid = resolveProjectId(args);
|
|
43
|
+
if (!pid) {
|
|
44
|
+
return missingProjectIdError;
|
|
45
|
+
}
|
|
46
|
+
return handleFederateSpecs({ ...args, projectId: pid });
|
|
47
|
+
}));
|
|
36
48
|
// federation_status — show all federated specs and their health
|
|
37
49
|
server.registerTool('federation_status', {
|
|
38
50
|
description: 'Show all cross-repo spec federation links for a project and their health. ' +
|
|
@@ -40,9 +52,20 @@ export function registerFederationTools(server) {
|
|
|
40
52
|
'and whether they have changed since the last check (drift detection). ' +
|
|
41
53
|
'Returns a report with per-link status (OK / MISSING / BROKEN) and drift flags.',
|
|
42
54
|
inputSchema: {
|
|
43
|
-
projectId: z.string().max(500).describe('Project ID
|
|
55
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
56
|
+
projectPath: z
|
|
57
|
+
.string()
|
|
58
|
+
.max(4096)
|
|
59
|
+
.optional()
|
|
60
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
44
61
|
},
|
|
45
62
|
annotations: { readOnlyHint: true },
|
|
46
|
-
}, safeLicensed('federation_status', async (args) =>
|
|
63
|
+
}, safeLicensed('federation_status', async (args) => {
|
|
64
|
+
const pid = resolveProjectId(args);
|
|
65
|
+
if (!pid) {
|
|
66
|
+
return missingProjectIdError;
|
|
67
|
+
}
|
|
68
|
+
return handleFederationStatus({ ...args, projectId: pid });
|
|
69
|
+
}));
|
|
47
70
|
}
|
|
48
71
|
//# sourceMappingURL=register-federation-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-federation-tools.js","sourceRoot":"","sources":["../../src/tools/register-federation-tools.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAGvF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"register-federation-tools.js","sourceRoot":"","sources":["../../src/tools/register-federation-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-governance-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-governance-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"register-governance-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-governance-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8E/D"}
|
|
@@ -4,13 +4,19 @@ import { t } from '../i18n/index.js';
|
|
|
4
4
|
import { handleDataGovernance } from './data-governance.js';
|
|
5
5
|
import { handleLegalComplianceReport } from './legal-compliance-report.js';
|
|
6
6
|
import { safeLicensed } from './safe-handler.js';
|
|
7
|
+
import { resolveProjectId, missingProjectIdError } from './resolve-project-id.js';
|
|
7
8
|
export function registerGovernanceTools(server) {
|
|
8
9
|
// data_governance — SPEC-030
|
|
9
10
|
server.registerTool('data_governance', {
|
|
10
11
|
description: t('tools.data_governance.description'),
|
|
11
12
|
annotations: { readOnlyHint: true },
|
|
12
13
|
inputSchema: {
|
|
13
|
-
projectId: z.string().max(500).describe('Project ID'),
|
|
14
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
15
|
+
projectPath: z
|
|
16
|
+
.string()
|
|
17
|
+
.max(4096)
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
14
20
|
subcommand: z
|
|
15
21
|
.enum(['detect', 'retention-policy', 'privacy-notice', 'audit'])
|
|
16
22
|
.describe('detect: find PII in a spec; retention-policy: generate retention policy for a model; ' +
|
|
@@ -32,7 +38,13 @@ export function registerGovernanceTools(server) {
|
|
|
32
38
|
.optional()
|
|
33
39
|
.describe('Raw spec content to analyze when specId is not available'),
|
|
34
40
|
},
|
|
35
|
-
}, safeLicensed('data_governance', async (args) =>
|
|
41
|
+
}, safeLicensed('data_governance', async (args) => {
|
|
42
|
+
const pid = resolveProjectId(args);
|
|
43
|
+
if (!pid) {
|
|
44
|
+
return missingProjectIdError;
|
|
45
|
+
}
|
|
46
|
+
return handleDataGovernance({ ...args, projectId: pid });
|
|
47
|
+
}));
|
|
36
48
|
// legal_compliance_report — SPEC-131
|
|
37
49
|
server.registerTool('legal_compliance_report', {
|
|
38
50
|
description: 'Generate a legal compliance report for the project. ' +
|
|
@@ -41,8 +53,19 @@ export function registerGovernanceTools(server) {
|
|
|
41
53
|
'and regulations apply to your project based on industry, target countries, and data types.',
|
|
42
54
|
annotations: { readOnlyHint: true },
|
|
43
55
|
inputSchema: {
|
|
44
|
-
projectId: z.string().max(500).describe('Project ID'),
|
|
56
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
57
|
+
projectPath: z
|
|
58
|
+
.string()
|
|
59
|
+
.max(4096)
|
|
60
|
+
.optional()
|
|
61
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
45
62
|
},
|
|
46
|
-
}, safeLicensed('legal_compliance_report', async (args) =>
|
|
63
|
+
}, safeLicensed('legal_compliance_report', async (args) => {
|
|
64
|
+
const pid = resolveProjectId(args);
|
|
65
|
+
if (!pid) {
|
|
66
|
+
return missingProjectIdError;
|
|
67
|
+
}
|
|
68
|
+
return handleLegalComplianceReport({ ...args, projectId: pid });
|
|
69
|
+
}));
|
|
47
70
|
}
|
|
48
71
|
//# sourceMappingURL=register-governance-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-governance-tools.js","sourceRoot":"","sources":["../../src/tools/register-governance-tools.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAG1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"register-governance-tools.js","sourceRoot":"","sources":["../../src/tools/register-governance-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-hooks-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-hooks-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"register-hooks-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-hooks-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0S1D"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { safeLicensed } from './safe-handler.js';
|
|
4
4
|
import { handleManageHooks } from './manage-hooks.js';
|
|
5
|
+
import { resolveProjectId, missingProjectIdError } from './resolve-project-id.js';
|
|
5
6
|
import { handleStartHooks, handleStopHooks, handleHookStatus, handleConfigureHooks, } from './start-hooks.js';
|
|
6
7
|
export function registerHooksTools(server) {
|
|
7
8
|
// ----- SPEC-130: Hook Engine Tools -----
|
|
@@ -116,7 +117,12 @@ export function registerHooksTools(server) {
|
|
|
116
117
|
'Hooks automate actions when Planu events fire (spec created, status change, drift detected, commit). ' +
|
|
117
118
|
'Use dry_run to preview which hooks would fire without side effects.',
|
|
118
119
|
inputSchema: {
|
|
119
|
-
projectId: z.string().max(500).describe('Project ID
|
|
120
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
121
|
+
projectPath: z
|
|
122
|
+
.string()
|
|
123
|
+
.max(4096)
|
|
124
|
+
.optional()
|
|
125
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
120
126
|
operation: z
|
|
121
127
|
.enum([
|
|
122
128
|
'create',
|
|
@@ -237,6 +243,12 @@ export function registerHooksTools(server) {
|
|
|
237
243
|
title: 'Manage Agent Hooks',
|
|
238
244
|
readOnlyHint: false,
|
|
239
245
|
},
|
|
240
|
-
}, safeLicensed('manage_hooks', async (args) =>
|
|
246
|
+
}, safeLicensed('manage_hooks', async (args) => {
|
|
247
|
+
const pid = resolveProjectId(args);
|
|
248
|
+
if (!pid) {
|
|
249
|
+
return missingProjectIdError;
|
|
250
|
+
}
|
|
251
|
+
return handleManageHooks({ ...args, projectId: pid });
|
|
252
|
+
}));
|
|
241
253
|
}
|
|
242
254
|
//# sourceMappingURL=register-hooks-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-hooks-tools.js","sourceRoot":"","sources":["../../src/tools/register-hooks-tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"register-hooks-tools.js","sourceRoot":"","sources":["../../src/tools/register-hooks-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-infrastructure-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-infrastructure-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"register-infrastructure-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-infrastructure-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqDnE"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { handleGenerateInfrastructure } from './generate-infrastructure.js';
|
|
4
4
|
import { safeTracked } from './safe-handler.js';
|
|
5
|
+
import { resolveProjectId, missingProjectIdError } from './resolve-project-id.js';
|
|
5
6
|
export function registerInfrastructureTools(server) {
|
|
6
7
|
server.registerTool('generate_infrastructure', {
|
|
7
8
|
description: 'Generate Infrastructure-as-Code (IaC) from a spec. ' +
|
|
@@ -10,7 +11,12 @@ export function registerInfrastructureTools(server) {
|
|
|
10
11
|
'Includes monthly cost estimates for detected services.',
|
|
11
12
|
annotations: { readOnlyHint: true },
|
|
12
13
|
inputSchema: {
|
|
13
|
-
projectId: z.string().max(500).describe('Project ID
|
|
14
|
+
projectId: z.string().max(500).optional().describe('Project ID hash. Prefer projectPath.'),
|
|
15
|
+
projectPath: z
|
|
16
|
+
.string()
|
|
17
|
+
.max(4096)
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('Absolute path to project root. Derives projectId automatically.'),
|
|
14
20
|
specId: z
|
|
15
21
|
.string()
|
|
16
22
|
.max(500)
|
|
@@ -29,6 +35,15 @@ export function registerInfrastructureTools(server) {
|
|
|
29
35
|
.describe('Target environment: dev | staging | prod. ' +
|
|
30
36
|
'Affects instance sizing and cost estimates. Default: dev'),
|
|
31
37
|
},
|
|
32
|
-
}, safeTracked('generate_infrastructure', async (args) =>
|
|
38
|
+
}, safeTracked('generate_infrastructure', async (args) => {
|
|
39
|
+
const pid = resolveProjectId(args);
|
|
40
|
+
if (!pid) {
|
|
41
|
+
return missingProjectIdError;
|
|
42
|
+
}
|
|
43
|
+
return handleGenerateInfrastructure({
|
|
44
|
+
...args,
|
|
45
|
+
projectId: pid,
|
|
46
|
+
});
|
|
47
|
+
}));
|
|
33
48
|
}
|
|
34
49
|
//# sourceMappingURL=register-infrastructure-tools.js.map
|