@planu/cli 1.0.10 → 1.1.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/domain-bundles.json +134 -0
- package/dist/config/license-plans.json +7 -1
- package/dist/engine/bundle-installer.d.ts +24 -0
- package/dist/engine/bundle-installer.d.ts.map +1 -0
- package/dist/engine/bundle-installer.js +131 -0
- package/dist/engine/bundle-installer.js.map +1 -0
- package/dist/engine/git-hook-injector.d.ts +5 -0
- package/dist/engine/git-hook-injector.d.ts.map +1 -0
- package/dist/engine/git-hook-injector.js +86 -0
- package/dist/engine/git-hook-injector.js.map +1 -0
- package/dist/engine/merge-risk-assessor/analyzers.d.ts +22 -0
- package/dist/engine/merge-risk-assessor/analyzers.d.ts.map +1 -0
- package/dist/engine/merge-risk-assessor/analyzers.js +150 -0
- package/dist/engine/merge-risk-assessor/analyzers.js.map +1 -0
- package/dist/engine/merge-risk-assessor/git-diff-parser.d.ts +16 -0
- package/dist/engine/merge-risk-assessor/git-diff-parser.d.ts.map +1 -0
- package/dist/engine/merge-risk-assessor/git-diff-parser.js +48 -0
- package/dist/engine/merge-risk-assessor/git-diff-parser.js.map +1 -0
- package/dist/engine/merge-risk-assessor/index.d.ts +7 -0
- package/dist/engine/merge-risk-assessor/index.d.ts.map +1 -0
- package/dist/engine/merge-risk-assessor/index.js +98 -0
- package/dist/engine/merge-risk-assessor/index.js.map +1 -0
- package/dist/engine/pdf/browser-finder.d.ts.map +1 -1
- package/dist/engine/pdf/browser-finder.js +46 -4
- package/dist/engine/pdf/browser-finder.js.map +1 -1
- package/dist/engine/pdf/html-to-pdf.d.ts.map +1 -1
- package/dist/engine/pdf/html-to-pdf.js +18 -13
- package/dist/engine/pdf/html-to-pdf.js.map +1 -1
- package/dist/engine/spec-prompt-generator.d.ts +12 -0
- package/dist/engine/spec-prompt-generator.d.ts.map +1 -0
- package/dist/engine/spec-prompt-generator.js +69 -0
- package/dist/engine/spec-prompt-generator.js.map +1 -0
- package/dist/engine/telemetry/health-checker.d.ts +5 -0
- package/dist/engine/telemetry/health-checker.d.ts.map +1 -0
- package/dist/engine/telemetry/health-checker.js +297 -0
- package/dist/engine/telemetry/health-checker.js.map +1 -0
- package/dist/engine/telemetry/index.d.ts +1 -0
- package/dist/engine/telemetry/index.d.ts.map +1 -1
- package/dist/engine/telemetry/index.js +1 -0
- package/dist/engine/telemetry/index.js.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/domain-bundle-handler.d.ts +37 -0
- package/dist/tools/domain-bundle-handler.d.ts.map +1 -0
- package/dist/tools/domain-bundle-handler.js +84 -0
- package/dist/tools/domain-bundle-handler.js.map +1 -0
- package/dist/tools/init-project/handler.d.ts.map +1 -1
- package/dist/tools/init-project/handler.js +2 -1
- package/dist/tools/init-project/handler.js.map +1 -1
- package/dist/tools/init-project/scaffold-writer.d.ts +1 -0
- package/dist/tools/init-project/scaffold-writer.d.ts.map +1 -1
- package/dist/tools/init-project/scaffold-writer.js +11 -0
- package/dist/tools/init-project/scaffold-writer.js.map +1 -1
- package/dist/tools/merge-risk-handler.d.ts +3 -0
- package/dist/tools/merge-risk-handler.d.ts.map +1 -0
- package/dist/tools/merge-risk-handler.js +83 -0
- package/dist/tools/merge-risk-handler.js.map +1 -0
- package/dist/tools/register-domain-bundle-tools.d.ts +3 -0
- package/dist/tools/register-domain-bundle-tools.d.ts.map +1 -0
- package/dist/tools/register-domain-bundle-tools.js +27 -0
- package/dist/tools/register-domain-bundle-tools.js.map +1 -0
- package/dist/tools/register-merge-risk-tools.d.ts +5 -0
- package/dist/tools/register-merge-risk-tools.d.ts.map +1 -0
- package/dist/tools/register-merge-risk-tools.js +6 -0
- package/dist/tools/register-merge-risk-tools.js.map +1 -0
- package/dist/tools/register-spec-prompt-tools.d.ts +3 -0
- package/dist/tools/register-spec-prompt-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-prompt-tools.js +5 -0
- package/dist/tools/register-spec-prompt-tools.js.map +1 -0
- package/dist/tools/register-telemetry-health-tools.d.ts +3 -0
- package/dist/tools/register-telemetry-health-tools.d.ts.map +1 -0
- package/dist/tools/register-telemetry-health-tools.js +27 -0
- package/dist/tools/register-telemetry-health-tools.js.map +1 -0
- package/dist/tools/spec-prompt-handler.d.ts +5 -0
- package/dist/tools/spec-prompt-handler.d.ts.map +1 -0
- package/dist/tools/spec-prompt-handler.js +142 -0
- package/dist/tools/spec-prompt-handler.js.map +1 -0
- package/dist/tools/telemetry-health-handler.d.ts +3 -0
- package/dist/tools/telemetry-health-handler.d.ts.map +1 -0
- package/dist/tools/telemetry-health-handler.js +49 -0
- package/dist/tools/telemetry-health-handler.js.map +1 -0
- package/dist/types/git.d.ts +58 -0
- package/dist/types/git.d.ts.map +1 -1
- package/dist/types/mcp.d.ts +29 -0
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/types/project/planu-config.d.ts +2 -0
- package/dist/types/project/planu-config.d.ts.map +1 -1
- package/dist/types/telemetry.d.ts +15 -0
- package/dist/types/telemetry.d.ts.map +1 -1
- package/dist/types/tooling/bundles.d.ts +34 -0
- package/dist/types/tooling/bundles.d.ts.map +1 -0
- package/dist/types/tooling/bundles.js +3 -0
- package/dist/types/tooling/bundles.js.map +1 -0
- package/dist/types/tooling/index.d.ts +1 -0
- package/dist/types/tooling/index.d.ts.map +1 -1
- package/dist/types/tooling.d.ts +1 -1
- package/dist/types/tooling.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/config/domain-bundles.json +134 -0
- package/src/config/license-plans.json +7 -1
|
@@ -9,6 +9,7 @@ import { generateAndWriteRules } from './lifecycle-helpers.js';
|
|
|
9
9
|
import { generatePlanuSection, injectPlanuSection } from './planu-workflow-generator.js';
|
|
10
10
|
import { configurePlanuHooks } from './hooks-configurator.js';
|
|
11
11
|
import { generateWorkflowRulesIfMissing, generateAgentTeamsRulesIfMissing, } from './rules-generator.js';
|
|
12
|
+
import { injectPlanuAutoStage } from '../../engine/git-hook-injector.js';
|
|
12
13
|
/**
|
|
13
14
|
* Write all scaffold files to disk:
|
|
14
15
|
* - AI rules files (platform-specific)
|
|
@@ -94,6 +95,15 @@ export async function runScaffoldWriter(projectPath, projectId, knowledge, recom
|
|
|
94
95
|
catch {
|
|
95
96
|
/* best-effort */
|
|
96
97
|
}
|
|
98
|
+
// SPEC-347: Inject git auto-stage snippet for planu HTML files (best-effort)
|
|
99
|
+
let gitAutoStageInjected = false;
|
|
100
|
+
try {
|
|
101
|
+
const autoStageResult = await injectPlanuAutoStage(projectPath);
|
|
102
|
+
gitAutoStageInjected = autoStageResult.injected;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
/* best-effort */
|
|
106
|
+
}
|
|
97
107
|
return {
|
|
98
108
|
platform: rulesResult.platform,
|
|
99
109
|
generatedRules: rulesResult.generatedRules,
|
|
@@ -113,6 +123,7 @@ export async function runScaffoldWriter(projectPath, projectId, knowledge, recom
|
|
|
113
123
|
planuHooksConfigured,
|
|
114
124
|
planuRulesWritten,
|
|
115
125
|
agentTeamsRulesWritten,
|
|
126
|
+
gitAutoStageInjected,
|
|
116
127
|
};
|
|
117
128
|
}
|
|
118
129
|
//# sourceMappingURL=scaffold-writer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold-writer.js","sourceRoot":"","sources":["../../../src/tools/init-project/scaffold-writer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAuB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"scaffold-writer.js","sourceRoot":"","sources":["../../../src/tools/init-project/scaffold-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-risk-handler.d.ts","sourceRoot":"","sources":["../../src/tools/merge-risk-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2FzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqB9D"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeLicensed } from './safe-handler.js';
|
|
3
|
+
import { assessMergeRisk } from '../engine/merge-risk-assessor/index.js';
|
|
4
|
+
// ── Zod schema ────────────────────────────────────────────────────────────────
|
|
5
|
+
const AssessMergeRiskInputSchema = {
|
|
6
|
+
projectPath: z.string().describe('Absolute path to project root'),
|
|
7
|
+
branch: z
|
|
8
|
+
.string()
|
|
9
|
+
.optional()
|
|
10
|
+
.describe('Branch to analyze (default: current branch from git)'),
|
|
11
|
+
baseBranch: z
|
|
12
|
+
.string()
|
|
13
|
+
.optional()
|
|
14
|
+
.default('main')
|
|
15
|
+
.describe('Base branch to compare against (default: main)'),
|
|
16
|
+
context: z
|
|
17
|
+
.string()
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('Description of the change for spec compliance check. Include a SPEC-NNN ID for best results.'),
|
|
20
|
+
};
|
|
21
|
+
// ── Formatting ────────────────────────────────────────────────────────────────
|
|
22
|
+
function formatRiskResult(result) {
|
|
23
|
+
const recommendationLabel = result.recommendation === 'auto-merge'
|
|
24
|
+
? 'AUTO-MERGE'
|
|
25
|
+
: result.recommendation === 'human-review'
|
|
26
|
+
? 'HUMAN REVIEW REQUIRED'
|
|
27
|
+
: 'BLOCK';
|
|
28
|
+
const lines = [
|
|
29
|
+
`Merge Risk Assessment`,
|
|
30
|
+
`=====================`,
|
|
31
|
+
`Risk Score: ${result.riskScore}/100`,
|
|
32
|
+
`Recommendation: ${recommendationLabel}`,
|
|
33
|
+
``,
|
|
34
|
+
`Summary: ${result.humanSummary}`,
|
|
35
|
+
``,
|
|
36
|
+
`Diff Stats`,
|
|
37
|
+
`----------`,
|
|
38
|
+
`Files changed: ${result.filesChanged}`,
|
|
39
|
+
`Lines added: ${result.linesAdded}`,
|
|
40
|
+
`Lines removed: ${result.linesRemoved}`,
|
|
41
|
+
``,
|
|
42
|
+
`Risk Breakdown`,
|
|
43
|
+
`--------------`,
|
|
44
|
+
];
|
|
45
|
+
for (const b of result.breakdown) {
|
|
46
|
+
const contribution = Math.round(b.score * b.weight);
|
|
47
|
+
lines.push(`${b.category} (weight ${Math.round(b.weight * 100)}%): ${b.score}/100 [+${contribution} to total]`);
|
|
48
|
+
lines.push(` ${b.reason}`);
|
|
49
|
+
}
|
|
50
|
+
return lines.join('\n');
|
|
51
|
+
}
|
|
52
|
+
// ── Handler ───────────────────────────────────────────────────────────────────
|
|
53
|
+
async function handleAssessMergeRisk(args) {
|
|
54
|
+
const result = await assessMergeRisk(args.projectPath, {
|
|
55
|
+
branch: args.branch,
|
|
56
|
+
baseBranch: args.baseBranch,
|
|
57
|
+
context: args.context,
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
content: [
|
|
61
|
+
{
|
|
62
|
+
type: 'text',
|
|
63
|
+
text: formatRiskResult(result),
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
// ── Registration ──────────────────────────────────────────────────────────────
|
|
69
|
+
export function registerMergeRiskTools(server) {
|
|
70
|
+
server.registerTool('assess_merge_risk', {
|
|
71
|
+
description: 'Analyze a git branch diff and return a risk score (0-100) with category breakdown ' +
|
|
72
|
+
'and merge recommendation. Evaluates security surface, test coverage, blast radius, ' +
|
|
73
|
+
'reversibility, and spec compliance.',
|
|
74
|
+
inputSchema: AssessMergeRiskInputSchema,
|
|
75
|
+
annotations: {
|
|
76
|
+
title: 'Assess Merge Risk',
|
|
77
|
+
readOnlyHint: true,
|
|
78
|
+
destructiveHint: false,
|
|
79
|
+
openWorldHint: false,
|
|
80
|
+
},
|
|
81
|
+
}, safeLicensed('assess_merge_risk', async (args) => handleAssessMergeRisk(args)));
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=merge-risk-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-risk-handler.js","sourceRoot":"","sources":["../../src/tools/merge-risk-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-domain-bundle-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-domain-bundle-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsCjE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { safeLicensed } from './safe-handler.js';
|
|
2
|
+
import { handleApplyDomainBundle, handleListDomainBundles, ApplyDomainBundleInputSchema, ListDomainBundlesInputSchema, } from './domain-bundle-handler.js';
|
|
3
|
+
export function registerDomainBundleTools(server) {
|
|
4
|
+
server.registerTool('apply_domain_bundle', {
|
|
5
|
+
description: 'Install a pre-configured domain bundle (skills + rules + spec templates) into a project ' +
|
|
6
|
+
'with a single command. Available bundles: stripe-payments, auth-supabase, rest-api, ' +
|
|
7
|
+
'nextjs-fullstack, react-native.',
|
|
8
|
+
inputSchema: ApplyDomainBundleInputSchema,
|
|
9
|
+
annotations: {
|
|
10
|
+
title: 'Apply Domain Bundle',
|
|
11
|
+
readOnlyHint: false,
|
|
12
|
+
destructiveHint: false,
|
|
13
|
+
openWorldHint: false,
|
|
14
|
+
},
|
|
15
|
+
}, safeLicensed('apply_domain_bundle', async (args) => handleApplyDomainBundle(args)));
|
|
16
|
+
server.registerTool('list_domain_bundles', {
|
|
17
|
+
description: 'List all available pre-configured domain bundles with their id, name, description, and tags.',
|
|
18
|
+
inputSchema: ListDomainBundlesInputSchema,
|
|
19
|
+
annotations: {
|
|
20
|
+
title: 'List Domain Bundles',
|
|
21
|
+
readOnlyHint: true,
|
|
22
|
+
destructiveHint: false,
|
|
23
|
+
openWorldHint: false,
|
|
24
|
+
},
|
|
25
|
+
}, safeLicensed('list_domain_bundles', async (args) => handleListDomainBundles(args)));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=register-domain-bundle-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-domain-bundle-tools.js","sourceRoot":"","sources":["../../src/tools/register-domain-bundle-tools.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,0FAA0F;YAC1F,sFAAsF;YACtF,iCAAiC;QACnC,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE;YACX,KAAK,EAAE,qBAAqB;YAC5B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,YAAY,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACjD,uBAAuB,CAAC,IAAoE,CAAC,CAC9F,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,8FAA8F;QAChG,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE;YACX,KAAK,EAAE,qBAAqB;YAC5B,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,YAAY,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACjD,uBAAuB,CAAC,IAAgC,CAAC,CAC1D,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { registerMergeRiskTools } from './merge-risk-handler.js';
|
|
3
|
+
export declare function registerMergeRiskToolsBundle(server: McpServer): void;
|
|
4
|
+
export { registerMergeRiskTools };
|
|
5
|
+
//# sourceMappingURL=register-merge-risk-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-merge-risk-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-merge-risk-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAEpE;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-merge-risk-tools.js","sourceRoot":"","sources":["../../src/tools/register-merge-risk-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,UAAU,4BAA4B,CAAC,MAAiB;IAC5D,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-spec-prompt-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-spec-prompt-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-spec-prompt-tools.js","sourceRoot":"","sources":["../../src/tools/register-spec-prompt-tools.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-telemetry-health-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-telemetry-health-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8BpE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// tools/register-telemetry-health-tools.ts — SPEC-346: Register telemetry_health MCP tool.
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { safeLicensed } from './safe-handler.js';
|
|
4
|
+
import { handleTelemetryHealth } from './telemetry-health-handler.js';
|
|
5
|
+
export function registerTelemetryHealthTools(server) {
|
|
6
|
+
server.registerTool('telemetry_health', {
|
|
7
|
+
description: 'Diagnose why telemetry data is not reaching the dashboard. ' +
|
|
8
|
+
'Checks whether telemetry is enabled, the endpoint is configured, the network is reachable, ' +
|
|
9
|
+
'when the last event was sent, and whether any errors are recorded. ' +
|
|
10
|
+
'Optionally sends a test diagnostic event to verify the full pipeline end-to-end.',
|
|
11
|
+
annotations: { title: 'Telemetry Health', readOnlyHint: true },
|
|
12
|
+
inputSchema: {
|
|
13
|
+
projectPath: z
|
|
14
|
+
.string()
|
|
15
|
+
.min(1)
|
|
16
|
+
.max(4096)
|
|
17
|
+
.describe('Absolute path to project root'),
|
|
18
|
+
sendTestEvent: z
|
|
19
|
+
.boolean()
|
|
20
|
+
.optional()
|
|
21
|
+
.default(false)
|
|
22
|
+
.describe('Send a test diagnostic event to verify the telemetry pipeline end-to-end. ' +
|
|
23
|
+
'Default: false.'),
|
|
24
|
+
},
|
|
25
|
+
}, safeLicensed('telemetry_health', async (args) => handleTelemetryHealth(args)));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=register-telemetry-health-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-telemetry-health-tools.js","sourceRoot":"","sources":["../../src/tools/register-telemetry-health-tools.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAG3F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,MAAM,UAAU,4BAA4B,CAAC,MAAiB;IAC5D,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,6DAA6D;YAC7D,6FAA6F;YAC7F,qEAAqE;YACrE,kFAAkF;QACpF,WAAW,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE;QAC9D,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,CAAC,+BAA+B,CAAC;YAC5C,aAAa,EAAE,CAAC;iBACb,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CACP,4EAA4E;gBAC1E,iBAAiB,CACpB;SACJ;KACF,EACD,YAAY,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC9C,qBAAqB,CAAC,IAA4B,CAAC,CACpD,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { SpecPromptRegistryEntry } from '../types/index.js';
|
|
3
|
+
export declare const registeredPrompts: Map<string, SpecPromptRegistryEntry>;
|
|
4
|
+
export declare function registerSpecPromptHandlers(server: McpServer): void;
|
|
5
|
+
//# sourceMappingURL=spec-prompt-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-prompt-handler.d.ts","sourceRoot":"","sources":["../../src/tools/spec-prompt-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAIV,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAU3B,eAAO,MAAM,iBAAiB,sCAA6C,CAAC;AA2I5E,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuClE"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeLicensed } from './safe-handler.js';
|
|
3
|
+
import { getSpec } from '../storage/spec-store.js';
|
|
4
|
+
import { hashProjectPath } from '../storage/base-store.js';
|
|
5
|
+
import { generatePromptFromSpec } from '../engine/spec-prompt-generator.js';
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// In-memory registry of registered prompts for this session
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
export const registeredPrompts = new Map();
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// Zod schemas
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
const ExposeSpecAsPromptInputSchema = {
|
|
14
|
+
specId: z.string().describe('The spec ID to expose as an MCP prompt (e.g. "SPEC-042")'),
|
|
15
|
+
projectPath: z
|
|
16
|
+
.string()
|
|
17
|
+
.describe('Absolute path to the project root where the spec is stored'),
|
|
18
|
+
promptName: z
|
|
19
|
+
.string()
|
|
20
|
+
.optional()
|
|
21
|
+
.describe('Optional custom prompt name. If omitted, the name is derived from specId and slug'),
|
|
22
|
+
};
|
|
23
|
+
const ListSpecPromptsInputSchema = {
|
|
24
|
+
projectPath: z
|
|
25
|
+
.string()
|
|
26
|
+
.optional()
|
|
27
|
+
.describe('Optional project path filter. If omitted, all registered prompts are returned'),
|
|
28
|
+
};
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Handler: expose_spec_as_prompt
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
async function handleExposeSpecAsPrompt(args, server) {
|
|
33
|
+
const projectId = hashProjectPath(args.projectPath);
|
|
34
|
+
const spec = await getSpec(projectId, args.specId);
|
|
35
|
+
if (spec === null) {
|
|
36
|
+
return {
|
|
37
|
+
content: [
|
|
38
|
+
{
|
|
39
|
+
type: 'text',
|
|
40
|
+
text: `Spec "${args.specId}" not found in project at "${args.projectPath}".`,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const promptDef = generatePromptFromSpec({
|
|
46
|
+
id: spec.id,
|
|
47
|
+
slug: spec.slug,
|
|
48
|
+
title: spec.title,
|
|
49
|
+
summary: undefined,
|
|
50
|
+
criteria: undefined,
|
|
51
|
+
});
|
|
52
|
+
const finalName = args.promptName ?? promptDef.name;
|
|
53
|
+
// Register prompt with the MCP server
|
|
54
|
+
server.registerPrompt(finalName, {
|
|
55
|
+
description: promptDef.description,
|
|
56
|
+
argsSchema: {
|
|
57
|
+
context: z
|
|
58
|
+
.string()
|
|
59
|
+
.optional()
|
|
60
|
+
.describe('Additional context for this spec execution'),
|
|
61
|
+
},
|
|
62
|
+
}, (promptArgs) => {
|
|
63
|
+
const extra = promptArgs.context !== undefined ? `\n\nAdditional context: ${promptArgs.context}` : '';
|
|
64
|
+
return {
|
|
65
|
+
messages: [
|
|
66
|
+
{
|
|
67
|
+
role: 'user',
|
|
68
|
+
content: {
|
|
69
|
+
type: 'text',
|
|
70
|
+
text: `${promptDef.template}${extra}`,
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
// Store in session registry
|
|
77
|
+
registeredPrompts.set(finalName, { ...promptDef, name: finalName, specId: spec.id });
|
|
78
|
+
const humanSummary = `Spec "${spec.title}" (${spec.id}) is now available as MCP prompt "${finalName}". ` +
|
|
79
|
+
`Agents can invoke it with context to get structured implementation instructions.`;
|
|
80
|
+
return {
|
|
81
|
+
content: [
|
|
82
|
+
{
|
|
83
|
+
type: 'text',
|
|
84
|
+
text: JSON.stringify({
|
|
85
|
+
promptName: finalName,
|
|
86
|
+
argumentCount: promptDef.arguments.length,
|
|
87
|
+
registered: true,
|
|
88
|
+
humanSummary,
|
|
89
|
+
}),
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// ---------------------------------------------------------------------------
|
|
95
|
+
// Handler: list_spec_prompts
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
function handleListSpecPrompts(_args) {
|
|
98
|
+
const prompts = [];
|
|
99
|
+
registeredPrompts.forEach((def, name) => {
|
|
100
|
+
prompts.push({
|
|
101
|
+
promptName: name,
|
|
102
|
+
specId: def.specId,
|
|
103
|
+
title: def.description,
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
return {
|
|
107
|
+
content: [
|
|
108
|
+
{
|
|
109
|
+
type: 'text',
|
|
110
|
+
text: JSON.stringify(prompts),
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
// ---------------------------------------------------------------------------
|
|
116
|
+
// Registration
|
|
117
|
+
// ---------------------------------------------------------------------------
|
|
118
|
+
export function registerSpecPromptHandlers(server) {
|
|
119
|
+
server.registerTool('expose_spec_as_prompt', {
|
|
120
|
+
description: 'Expose a Planu spec as an executable MCP prompt that external agents can invoke. ' +
|
|
121
|
+
'The prompt contains acceptance criteria as structured instructions.',
|
|
122
|
+
inputSchema: ExposeSpecAsPromptInputSchema,
|
|
123
|
+
annotations: {
|
|
124
|
+
title: 'Expose Spec as MCP Prompt',
|
|
125
|
+
readOnlyHint: false,
|
|
126
|
+
destructiveHint: false,
|
|
127
|
+
openWorldHint: false,
|
|
128
|
+
},
|
|
129
|
+
}, safeLicensed('expose_spec_as_prompt', async (args) => handleExposeSpecAsPrompt(args, server)));
|
|
130
|
+
server.registerTool('list_spec_prompts', {
|
|
131
|
+
description: 'List all Planu spec prompts registered in the current session. ' +
|
|
132
|
+
'Returns prompt names, spec IDs, and titles.',
|
|
133
|
+
inputSchema: ListSpecPromptsInputSchema,
|
|
134
|
+
annotations: {
|
|
135
|
+
title: 'List Spec Prompts',
|
|
136
|
+
readOnlyHint: true,
|
|
137
|
+
destructiveHint: false,
|
|
138
|
+
openWorldHint: false,
|
|
139
|
+
},
|
|
140
|
+
}, safeLicensed('list_spec_prompts', (args) => Promise.resolve(handleListSpecPrompts(args))));
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=spec-prompt-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-prompt-handler.js","sourceRoot":"","sources":["../../src/tools/spec-prompt-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-health-handler.d.ts","sourceRoot":"","sources":["../../src/tools/telemetry-health-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAkB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAoB1F,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgC5F"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// tools/telemetry-health-handler.ts — SPEC-346: Handle telemetry_health tool requests.
|
|
2
|
+
import { checkTelemetryHealth } from '../engine/telemetry/health-checker.js';
|
|
3
|
+
function statusIcon(status) {
|
|
4
|
+
if (status === 'ok') {
|
|
5
|
+
return '[OK]';
|
|
6
|
+
}
|
|
7
|
+
if (status === 'warn') {
|
|
8
|
+
return '[WARN]';
|
|
9
|
+
}
|
|
10
|
+
if (status === 'fail') {
|
|
11
|
+
return '[FAIL]';
|
|
12
|
+
}
|
|
13
|
+
return '[SKIP]';
|
|
14
|
+
}
|
|
15
|
+
function formatChecks(checks) {
|
|
16
|
+
return checks.map((c) => `${statusIcon(c.status)} ${c.name}: ${c.detail}`).join('\n');
|
|
17
|
+
}
|
|
18
|
+
export async function handleTelemetryHealth(input) {
|
|
19
|
+
try {
|
|
20
|
+
const result = await checkTelemetryHealth(input.projectPath, {
|
|
21
|
+
sendTestEvent: input.sendTestEvent ?? false,
|
|
22
|
+
});
|
|
23
|
+
const lines = [
|
|
24
|
+
`## Telemetry Health — ${result.status.toUpperCase()}`,
|
|
25
|
+
'',
|
|
26
|
+
result.humanSummary,
|
|
27
|
+
'',
|
|
28
|
+
'### Checks',
|
|
29
|
+
'',
|
|
30
|
+
formatChecks(result.checks),
|
|
31
|
+
'',
|
|
32
|
+
'### Recommendation',
|
|
33
|
+
'',
|
|
34
|
+
result.recommendation,
|
|
35
|
+
];
|
|
36
|
+
if (input.sendTestEvent === true) {
|
|
37
|
+
lines.push('', '> Test diagnostic event sent — check the dashboard in 30s.');
|
|
38
|
+
}
|
|
39
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
43
|
+
return {
|
|
44
|
+
content: [{ type: 'text', text: JSON.stringify({ error: message }, null, 2) }],
|
|
45
|
+
isError: true,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=telemetry-health-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-health-handler.js","sourceRoot":"","sources":["../../src/tools/telemetry-health-handler.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAGvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,SAAS,UAAU,CAAC,MAAgC;IAClD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,MAAwB;IAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAA2B;IACrE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE;YAC3D,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,KAAK;SAC5C,CAAC,CAAC;QAEH,MAAM,KAAK,GAAa;YACtB,yBAAyB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;YACtD,EAAE;YACF,MAAM,CAAC,YAAY;YACnB,EAAE;YACF,YAAY;YACZ,EAAE;YACF,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;YAC3B,EAAE;YACF,oBAAoB;YACpB,EAAE;YACF,MAAM,CAAC,cAAc;SACtB,CAAC;QAEF,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,4DAA4D,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9E,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/types/git.d.ts
CHANGED
|
@@ -218,4 +218,62 @@ export interface GitHubIssuePatchPayload {
|
|
|
218
218
|
export interface GitHubIssueComment {
|
|
219
219
|
body: string;
|
|
220
220
|
}
|
|
221
|
+
export interface DiffStats {
|
|
222
|
+
/** Number of files changed in the diff */
|
|
223
|
+
filesChanged: number;
|
|
224
|
+
/** Total lines added */
|
|
225
|
+
linesAdded: number;
|
|
226
|
+
/** Total lines removed */
|
|
227
|
+
linesRemoved: number;
|
|
228
|
+
/** List of changed file paths */
|
|
229
|
+
files: string[];
|
|
230
|
+
}
|
|
231
|
+
export interface AssessMergeRiskOptions {
|
|
232
|
+
/** Branch to assess (default: current branch) */
|
|
233
|
+
branch?: string;
|
|
234
|
+
/** Base branch to compare against (default: main) */
|
|
235
|
+
baseBranch?: string;
|
|
236
|
+
/** Description of the change for spec compliance check */
|
|
237
|
+
context?: string;
|
|
238
|
+
}
|
|
239
|
+
export interface AnalyzerResult {
|
|
240
|
+
/** Risk score for this category (0-100) */
|
|
241
|
+
score: number;
|
|
242
|
+
/** Human-readable explanation */
|
|
243
|
+
reason: string;
|
|
244
|
+
}
|
|
245
|
+
export interface RiskBreakdown {
|
|
246
|
+
/** Category name (e.g. "Security Surface") */
|
|
247
|
+
category: string;
|
|
248
|
+
/** Score for this category (0-100) */
|
|
249
|
+
score: number;
|
|
250
|
+
/** Weight contribution to final score (all weights sum to 1.0) */
|
|
251
|
+
weight: number;
|
|
252
|
+
/** Human-readable explanation of the score */
|
|
253
|
+
reason: string;
|
|
254
|
+
}
|
|
255
|
+
export interface MergeRiskResult {
|
|
256
|
+
/** Weighted composite risk score (0-100) */
|
|
257
|
+
riskScore: number;
|
|
258
|
+
/** Merge recommendation based on risk score */
|
|
259
|
+
recommendation: 'auto-merge' | 'human-review' | 'block';
|
|
260
|
+
/** Per-category breakdown of the risk score */
|
|
261
|
+
breakdown: RiskBreakdown[];
|
|
262
|
+
/** Number of files changed in the diff */
|
|
263
|
+
filesChanged: number;
|
|
264
|
+
/** Lines added in the diff */
|
|
265
|
+
linesAdded: number;
|
|
266
|
+
/** Lines removed in the diff */
|
|
267
|
+
linesRemoved: number;
|
|
268
|
+
/** Plain-language summary for humans */
|
|
269
|
+
humanSummary: string;
|
|
270
|
+
}
|
|
271
|
+
export type HookSystem = 'husky' | 'lefthook' | 'simple-git-hooks' | 'native' | 'none';
|
|
272
|
+
export interface PlanuAutoStageResult {
|
|
273
|
+
injected: boolean;
|
|
274
|
+
hookSystem: HookSystem;
|
|
275
|
+
hookFile: string;
|
|
276
|
+
alreadyPresent: boolean;
|
|
277
|
+
manualInstructions?: string;
|
|
278
|
+
}
|
|
221
279
|
//# sourceMappingURL=git.d.ts.map
|
package/dist/types/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/types/git.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/types/git.ts"],"names":[],"mappings":"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"}
|
package/dist/types/mcp.d.ts
CHANGED
|
@@ -166,4 +166,33 @@ export interface AutomationLayer {
|
|
|
166
166
|
subAgentNote: string;
|
|
167
167
|
orchestrationScript: string | null;
|
|
168
168
|
}
|
|
169
|
+
export interface SpecPromptArgument {
|
|
170
|
+
name: string;
|
|
171
|
+
description: string;
|
|
172
|
+
required: boolean;
|
|
173
|
+
}
|
|
174
|
+
export interface SpecPromptDefinition {
|
|
175
|
+
name: string;
|
|
176
|
+
description: string;
|
|
177
|
+
arguments: SpecPromptArgument[];
|
|
178
|
+
template: string;
|
|
179
|
+
}
|
|
180
|
+
export interface SpecPromptInput {
|
|
181
|
+
id: string;
|
|
182
|
+
slug: string;
|
|
183
|
+
title: string;
|
|
184
|
+
summary?: string;
|
|
185
|
+
criteria?: string[];
|
|
186
|
+
}
|
|
187
|
+
export interface ExposeSpecAsPromptArgs {
|
|
188
|
+
specId: string;
|
|
189
|
+
projectPath: string;
|
|
190
|
+
promptName?: string;
|
|
191
|
+
}
|
|
192
|
+
export interface ListSpecPromptsArgs {
|
|
193
|
+
projectPath?: string;
|
|
194
|
+
}
|
|
195
|
+
export interface SpecPromptRegistryEntry extends SpecPromptDefinition {
|
|
196
|
+
specId: string;
|
|
197
|
+
}
|
|
169
198
|
//# sourceMappingURL=mcp.d.ts.map
|