@planu/cli 0.95.0 → 0.96.1

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.
Files changed (114) hide show
  1. package/dist/config/license-plans.json +4 -1
  2. package/dist/config/skill-catalog.json +94 -0
  3. package/dist/engine/browser-validator.d.ts +17 -0
  4. package/dist/engine/browser-validator.d.ts.map +1 -0
  5. package/dist/engine/browser-validator.js +167 -0
  6. package/dist/engine/browser-validator.js.map +1 -0
  7. package/dist/engine/diagram/excalidraw-generator.d.ts +7 -0
  8. package/dist/engine/diagram/excalidraw-generator.d.ts.map +1 -0
  9. package/dist/engine/diagram/excalidraw-generator.js +274 -0
  10. package/dist/engine/diagram/excalidraw-generator.js.map +1 -0
  11. package/dist/engine/github/quality-dimensions.d.ts +7 -0
  12. package/dist/engine/github/quality-dimensions.d.ts.map +1 -0
  13. package/dist/engine/github/quality-dimensions.js +243 -0
  14. package/dist/engine/github/quality-dimensions.js.map +1 -0
  15. package/dist/engine/github/review-analyzer.d.ts.map +1 -1
  16. package/dist/engine/github/review-analyzer.js +1 -0
  17. package/dist/engine/github/review-analyzer.js.map +1 -1
  18. package/dist/engine/github/review-dimensions.d.ts +2 -0
  19. package/dist/engine/github/review-dimensions.d.ts.map +1 -1
  20. package/dist/engine/github/review-dimensions.js +6 -32
  21. package/dist/engine/github/review-dimensions.js.map +1 -1
  22. package/dist/engine/github/review-helpers.d.ts +4 -0
  23. package/dist/engine/github/review-helpers.d.ts.map +1 -0
  24. package/dist/engine/github/review-helpers.js +31 -0
  25. package/dist/engine/github/review-helpers.js.map +1 -0
  26. package/dist/engine/google-workspace-exporter.d.ts +22 -0
  27. package/dist/engine/google-workspace-exporter.d.ts.map +1 -0
  28. package/dist/engine/google-workspace-exporter.js +159 -0
  29. package/dist/engine/google-workspace-exporter.js.map +1 -0
  30. package/dist/engine/skill-registry/builtin-catalog-adapter.d.ts +11 -0
  31. package/dist/engine/skill-registry/builtin-catalog-adapter.d.ts.map +1 -0
  32. package/dist/engine/skill-registry/builtin-catalog-adapter.js +95 -0
  33. package/dist/engine/skill-registry/builtin-catalog-adapter.js.map +1 -0
  34. package/dist/engine/skill-registry/index.d.ts +1 -0
  35. package/dist/engine/skill-registry/index.d.ts.map +1 -1
  36. package/dist/engine/skill-registry/index.js +1 -0
  37. package/dist/engine/skill-registry/index.js.map +1 -1
  38. package/dist/engine/skill-registry/installer.d.ts.map +1 -1
  39. package/dist/engine/skill-registry/installer.js +41 -0
  40. package/dist/engine/skill-registry/installer.js.map +1 -1
  41. package/dist/engine/skill-registry/unified-search.d.ts.map +1 -1
  42. package/dist/engine/skill-registry/unified-search.js +3 -0
  43. package/dist/engine/skill-registry/unified-search.js.map +1 -1
  44. package/dist/index.js +6 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/tools/browser-validate-handler.d.ts +8 -0
  47. package/dist/tools/browser-validate-handler.d.ts.map +1 -0
  48. package/dist/tools/browser-validate-handler.js +111 -0
  49. package/dist/tools/browser-validate-handler.js.map +1 -0
  50. package/dist/tools/diagram-handler.d.ts +4 -0
  51. package/dist/tools/diagram-handler.d.ts.map +1 -0
  52. package/dist/tools/diagram-handler.js +77 -0
  53. package/dist/tools/diagram-handler.js.map +1 -0
  54. package/dist/tools/github-review-handler.d.ts.map +1 -1
  55. package/dist/tools/github-review-handler.js +50 -1
  56. package/dist/tools/github-review-handler.js.map +1 -1
  57. package/dist/tools/google-workspace-handler.d.ts +10 -0
  58. package/dist/tools/google-workspace-handler.d.ts.map +1 -0
  59. package/dist/tools/google-workspace-handler.js +121 -0
  60. package/dist/tools/google-workspace-handler.js.map +1 -0
  61. package/dist/tools/list-specs.d.ts.map +1 -1
  62. package/dist/tools/list-specs.js +13 -11
  63. package/dist/tools/list-specs.js.map +1 -1
  64. package/dist/tools/register-browser-validate-tools.d.ts +3 -0
  65. package/dist/tools/register-browser-validate-tools.d.ts.map +1 -0
  66. package/dist/tools/register-browser-validate-tools.js +30 -0
  67. package/dist/tools/register-browser-validate-tools.js.map +1 -0
  68. package/dist/tools/register-diagram-tools.d.ts +3 -0
  69. package/dist/tools/register-diagram-tools.d.ts.map +1 -0
  70. package/dist/tools/register-diagram-tools.js +28 -0
  71. package/dist/tools/register-diagram-tools.js.map +1 -0
  72. package/dist/tools/register-github-tools.d.ts.map +1 -1
  73. package/dist/tools/register-github-tools.js +2 -1
  74. package/dist/tools/register-github-tools.js.map +1 -1
  75. package/dist/tools/register-google-workspace-tools.d.ts +3 -0
  76. package/dist/tools/register-google-workspace-tools.d.ts.map +1 -0
  77. package/dist/tools/register-google-workspace-tools.js +41 -0
  78. package/dist/tools/register-google-workspace-tools.js.map +1 -0
  79. package/dist/tools/schemas/github.d.ts +1 -0
  80. package/dist/tools/schemas/github.d.ts.map +1 -1
  81. package/dist/tools/schemas/github.js +3 -2
  82. package/dist/tools/schemas/github.js.map +1 -1
  83. package/dist/tools/schemas/output-schemas.d.ts +18 -18
  84. package/dist/tools/schemas/output-schemas.d.ts.map +1 -1
  85. package/dist/tools/schemas/output-schemas.js +24 -18
  86. package/dist/tools/schemas/output-schemas.js.map +1 -1
  87. package/dist/tools/skill-registry/search.d.ts.map +1 -1
  88. package/dist/tools/skill-registry/search.js +8 -0
  89. package/dist/tools/skill-registry/search.js.map +1 -1
  90. package/dist/types/browser-validator.d.ts +40 -0
  91. package/dist/types/browser-validator.d.ts.map +1 -0
  92. package/dist/types/browser-validator.js +3 -0
  93. package/dist/types/browser-validator.js.map +1 -0
  94. package/dist/types/common/tech-enums.d.ts +1 -1
  95. package/dist/types/common/tech-enums.d.ts.map +1 -1
  96. package/dist/types/diagram.d.ts +73 -0
  97. package/dist/types/diagram.d.ts.map +1 -0
  98. package/dist/types/diagram.js +2 -0
  99. package/dist/types/diagram.js.map +1 -0
  100. package/dist/types/github.d.ts +2 -2
  101. package/dist/types/github.d.ts.map +1 -1
  102. package/dist/types/google-workspace.d.ts +39 -0
  103. package/dist/types/google-workspace.d.ts.map +1 -0
  104. package/dist/types/google-workspace.js +3 -0
  105. package/dist/types/google-workspace.js.map +1 -0
  106. package/dist/types/index.d.ts +3 -0
  107. package/dist/types/index.d.ts.map +1 -1
  108. package/dist/types/index.js +3 -0
  109. package/dist/types/index.js.map +1 -1
  110. package/dist/types/skill-registry.d.ts +22 -0
  111. package/dist/types/skill-registry.d.ts.map +1 -1
  112. package/package.json +1 -1
  113. package/src/config/license-plans.json +4 -1
  114. package/src/config/skill-catalog.json +94 -0
@@ -1,7 +1,7 @@
1
1
  // tools/github-review-handler.ts — Handler for review_pr tool.
2
2
  import { createPlatformClient, getRemoteUrl } from '../engine/github/client.js';
3
3
  import { analyzeDiff, parseDiffStats, generateSummaryFinding, } from '../engine/github/review-analyzer.js';
4
- import { runAllDimensions } from '../engine/github/review-dimensions.js';
4
+ import { runAllDimensions, runQualityDimensions } from '../engine/github/review-dimensions.js';
5
5
  import { mergeFindings } from '../engine/github/findings-merger.js';
6
6
  import { execFile as nodeExecFile } from 'node:child_process';
7
7
  import { promisify } from 'node:util';
@@ -80,6 +80,52 @@ async function handleExpertReview(prNumber, diff, exec) {
80
80
  },
81
81
  };
82
82
  }
83
+ async function handleQualityReview(prNumber, diff) {
84
+ const dimensionResults = await runQualityDimensions(diff);
85
+ const merged = mergeFindings(dimensionResults);
86
+ const stats = parseDiffStats(diff);
87
+ const sections = [];
88
+ sections.push(`## Quality Review of PR #${String(prNumber)}\n`);
89
+ sections.push(`**Files changed:** ${String(stats.filesChanged)}`);
90
+ sections.push(`**Lines:** +${String(stats.additions)} -${String(stats.deletions)}`);
91
+ sections.push(`**Dimensions:** ${merged.dimensions.join(', ')}` +
92
+ ` | **Total findings:** ${String(merged.totalFindings)}\n`);
93
+ if (merged.critical.length > 0) {
94
+ sections.push('### Critical\n');
95
+ for (const f of merged.critical) {
96
+ sections.push(...formatFinding(f));
97
+ }
98
+ }
99
+ if (merged.suggestions.length > 0) {
100
+ sections.push('### Suggestions\n');
101
+ for (const f of merged.suggestions) {
102
+ sections.push(...formatFinding(f));
103
+ }
104
+ }
105
+ if (merged.nits.length > 0) {
106
+ sections.push('### Nits\n');
107
+ for (const f of merged.nits) {
108
+ sections.push(...formatFinding(f));
109
+ }
110
+ }
111
+ if (merged.totalFindings === 0) {
112
+ sections.push('\nNo quality issues found.');
113
+ }
114
+ return {
115
+ content: [{ type: 'text', text: sections.join('\n') }],
116
+ _meta: {
117
+ prNumber,
118
+ reviewType: 'quality',
119
+ filesChanged: stats.filesChanged,
120
+ additions: stats.additions,
121
+ deletions: stats.deletions,
122
+ findingsCount: merged.totalFindings,
123
+ critical: merged.critical.length,
124
+ suggestions: merged.suggestions.length,
125
+ nits: merged.nits.length,
126
+ },
127
+ };
128
+ }
83
129
  export async function handleReviewPR(args, exec = defaultExec) {
84
130
  const remoteUrl = await getRemoteUrl(exec);
85
131
  const client = createPlatformClient(remoteUrl, exec);
@@ -87,6 +133,9 @@ export async function handleReviewPR(args, exec = defaultExec) {
87
133
  if (args.reviewType === 'expert') {
88
134
  return handleExpertReview(args.prNumber, diff, exec);
89
135
  }
136
+ if (args.reviewType === 'quality') {
137
+ return handleQualityReview(args.prNumber, diff);
138
+ }
90
139
  const stats = parseDiffStats(diff);
91
140
  const reviewType = args.reviewType;
92
141
  const findings = analyzeDiff(diff, reviewType);
@@ -1 +1 @@
1
- {"version":3,"file":"github-review-handler.js","sourceRoot":"","sources":["../../src/tools/github-review-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-review-handler.js","sourceRoot":"","sources":["../../src/tools/github-review-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ToolResult } from '../types/index.js';
2
+ export type GoogleWorkspaceAction = 'export' | 'generate-sheet' | 'import' | 'generate-script';
3
+ export interface GoogleWorkspaceInput {
4
+ action: GoogleWorkspaceAction;
5
+ projectPath: string;
6
+ specId?: string;
7
+ content?: string;
8
+ }
9
+ export declare function handleGoogleWorkspace(args: GoogleWorkspaceInput): Promise<ToolResult>;
10
+ //# sourceMappingURL=google-workspace-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-workspace-handler.d.ts","sourceRoot":"","sources":["../../src/tools/google-workspace-handler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,UAAU,EAMX,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,gBAAgB,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAE/F,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6ID,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmC3F"}
@@ -0,0 +1,121 @@
1
+ // tools/google-workspace-handler.ts — SPEC-310: Google Workspace Sync tool handler
2
+ import * as fs from 'node:fs/promises';
3
+ import { specStore } from '../storage/index.js';
4
+ import { hashProjectPath } from '../storage/base-store.js';
5
+ import { specToGoogleDocsFormat, specsToCSV, generateAppsScript, googleDocsToSpec, } from '../engine/google-workspace-exporter.js';
6
+ import { formatSuccess, formatWarning, toolResult } from './response-helpers.js';
7
+ async function handleExport(projectPath, specId) {
8
+ const projectId = hashProjectPath(projectPath);
9
+ const spec = await specStore.getSpec(projectId, specId);
10
+ if (!spec) {
11
+ return toolResult(formatWarning('Spec not found', `Spec **${specId}** not found at ${projectPath}. Run \`list_specs\` to see available specs.`), undefined, true);
12
+ }
13
+ // Read spec markdown file for content
14
+ let specContent;
15
+ try {
16
+ specContent = await fs.readFile(spec.specPath, 'utf-8');
17
+ }
18
+ catch {
19
+ specContent = `# ${spec.title}\n\nNo spec content available.`;
20
+ }
21
+ const formattedContent = specToGoogleDocsFormat(specContent, specId);
22
+ const appsScript = generateAppsScript(specId, formattedContent);
23
+ const result = { specId, formattedContent, appsScript };
24
+ const lines = [
25
+ `Spec **${specId}** exported for Google Workspace.`,
26
+ ``,
27
+ `**Formatted content** (${String(formattedContent.split('\n').length)} lines):`,
28
+ '```markdown',
29
+ formattedContent.slice(0, 500) + (formattedContent.length > 500 ? '\n...' : ''),
30
+ '```',
31
+ ``,
32
+ `**Apps Script** ready to run in https://script.google.com`,
33
+ ];
34
+ return toolResult(formatSuccess('Google Docs Export Ready', lines.join('\n')), result);
35
+ }
36
+ async function handleGenerateSheet(projectPath) {
37
+ const projectId = hashProjectPath(projectPath);
38
+ const specs = await specStore.listSpecs(projectId);
39
+ const entries = specs.map((s) => ({
40
+ id: s.id,
41
+ title: s.title,
42
+ status: s.status,
43
+ estimate: `${String(s.estimation.devHours)}h`,
44
+ risk: s.risk,
45
+ }));
46
+ const csv = specsToCSV(entries);
47
+ const result = { csv, specCount: entries.length };
48
+ const lines = [
49
+ `Generated CSV for **${String(entries.length)}** specs.`,
50
+ ``,
51
+ `**Import to Google Sheets:**`,
52
+ `1. Go to sheets.google.com`,
53
+ `2. File → Import → Upload`,
54
+ `3. Paste the CSV content below`,
55
+ ``,
56
+ '```csv',
57
+ csv.slice(0, 800) + (csv.length > 800 ? '\n...' : ''),
58
+ '```',
59
+ ];
60
+ return toolResult(formatSuccess('Google Sheets CSV Ready', lines.join('\n')), result);
61
+ }
62
+ function handleImport(content) {
63
+ if (!content.trim()) {
64
+ return toolResult(formatWarning('Empty content', 'Provide the Google Docs exported content in the `content` parameter.'), undefined, true);
65
+ }
66
+ const specContent = googleDocsToSpec(content);
67
+ const result = { specContent, success: true };
68
+ const lines = [
69
+ `Content imported and converted to Planu spec format.`,
70
+ ``,
71
+ '```markdown',
72
+ specContent.slice(0, 600) + (specContent.length > 600 ? '\n...' : ''),
73
+ '```',
74
+ ``,
75
+ `Use \`create_spec\` with this content to create a new spec.`,
76
+ ];
77
+ return toolResult(formatSuccess('Google Docs Import Complete', lines.join('\n')), result);
78
+ }
79
+ function handleGenerateScript(specId) {
80
+ const id = specId ?? 'SPEC-XXX';
81
+ const script = generateAppsScript(id, '# Placeholder spec content');
82
+ const instructions = [
83
+ '1. Go to https://script.google.com',
84
+ '2. Create a new project',
85
+ '3. Paste the script below',
86
+ '4. Run `syncAllSpecs()` to create the Google Doc',
87
+ '5. Set up a time-based trigger for automatic sync',
88
+ ].join('\n');
89
+ const result = { script, instructions };
90
+ const lines = [
91
+ `**Google Apps Script** for live sync setup:`,
92
+ ``,
93
+ instructions,
94
+ ``,
95
+ '```javascript',
96
+ script,
97
+ '```',
98
+ ];
99
+ return toolResult(formatSuccess('Apps Script Generated', lines.join('\n')), result);
100
+ }
101
+ export async function handleGoogleWorkspace(args) {
102
+ const { action, projectPath, specId, content } = args;
103
+ switch (action) {
104
+ case 'export':
105
+ if (!specId) {
106
+ return toolResult(formatWarning('Missing specId', 'Provide `specId` for the export action.'), undefined, true);
107
+ }
108
+ return handleExport(projectPath, specId);
109
+ case 'generate-sheet':
110
+ return handleGenerateSheet(projectPath);
111
+ case 'import':
112
+ return handleImport(content ?? '');
113
+ case 'generate-script':
114
+ return handleGenerateScript(specId);
115
+ default: {
116
+ const _exhaustive = action;
117
+ return toolResult(formatWarning('Unknown action', `Action "${String(_exhaustive)}" is not supported. Valid values: export | generate-sheet | import | generate-script`), undefined, true);
118
+ }
119
+ }
120
+ }
121
+ //# sourceMappingURL=google-workspace-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-workspace-handler.js","sourceRoot":"","sources":["../../src/tools/google-workspace-handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-specs.d.ts","sourceRoot":"","sources":["../../src/tools/list-specs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAkB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAqFpF,wBAAsB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CA8KjF"}
1
+ {"version":3,"file":"list-specs.d.ts","sourceRoot":"","sources":["../../src/tools/list-specs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAkB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAqFpF,wBAAsB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAoMjF"}
@@ -103,13 +103,13 @@ export async function handleListSpecs(params) {
103
103
  statusCounts[s.status] = (statusCounts[s.status] ?? 0) + 1;
104
104
  typeCounts[s.type] = (typeCounts[s.type] ?? 0) + 1;
105
105
  }
106
- // Calculate aggregated estimation
107
- const totalDevHours = specs.reduce((sum, s) => sum + s.estimation.devHours, 0);
108
- const totalReviewHours = specs.reduce((sum, s) => sum + s.estimation.reviewHours, 0);
109
- const totalCostUsd = specs.reduce((sum, s) => sum + s.estimation.totalCostUsd, 0);
106
+ const safeSpecs = specs;
107
+ const totalDevHours = safeSpecs.reduce((sum, s) => sum + (s.estimation?.devHours ?? 0), 0);
108
+ const totalReviewHours = safeSpecs.reduce((sum, s) => sum + (s.estimation?.reviewHours ?? 0), 0);
109
+ const totalCostUsd = safeSpecs.reduce((sum, s) => sum + (s.estimation?.totalCostUsd ?? 0), 0);
110
110
  // Fetch last modified timestamps from changelogs (AC-09)
111
111
  const lastModifiedMap = new Map();
112
- await Promise.all(specs.map(async (s) => {
112
+ await Promise.all(safeSpecs.map(async (s) => {
113
113
  if (!s.specPath) {
114
114
  return;
115
115
  }
@@ -143,21 +143,23 @@ export async function handleListSpecs(params) {
143
143
  type: s.type,
144
144
  tags: s.tags,
145
145
  }))
146
- : specs.map((s) => ({
146
+ : safeSpecs.map((s) => ({
147
147
  id: s.id,
148
148
  title: s.title,
149
149
  type: s.type,
150
150
  scope: s.scope,
151
151
  status: s.status,
152
- difficulty: String(s.difficulty),
152
+ difficulty: s.difficulty !== undefined ? String(s.difficulty) : undefined,
153
153
  risk: s.risk,
154
154
  target: s.target,
155
155
  tags: s.tags,
156
156
  gitBranch: s.gitBranch,
157
- estimation: {
158
- devHours: s.estimation.devHours,
159
- totalCostUsd: s.estimation.totalCostUsd,
160
- },
157
+ estimation: s.estimation
158
+ ? {
159
+ devHours: s.estimation.devHours ?? 0,
160
+ totalCostUsd: s.estimation.totalCostUsd ?? 0,
161
+ }
162
+ : undefined,
161
163
  createdAt: s.createdAt,
162
164
  updatedAt: s.updatedAt,
163
165
  lastModified: lastModifiedMap.get(s.id) ?? '\u2014',
@@ -1 +1 @@
1
- {"version":3,"file":"list-specs.js","sourceRoot":"","sources":["../../src/tools/list-specs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAClG,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,sFAAsF;AACtF,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE7C,iDAAiD;AACjD,SAAS,iBAAiB,CACxB,KAMG;IAEH,MAAM,MAAM,GAAG,uCAAuC,CAAC;IACvD,MAAM,OAAO,GAAG,uBAAuB,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACnF,CAAC;IACF,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,SAAiB,EAAE,WAAmB;IACvE,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO;IACT,CAAC;IACD,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;IAC3C,CAAC;IACD,IAAI,CAAC;QACH,MAAM,qBAAqB,CACzB,WAAW,EACX;YACE,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,UAAU,EAAE,SAAS,CAAC,UAAU;SACjC,EACD,SAAS,CACV,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,kBAAkB,CACtB,WAAW,EACX;YACE,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,UAAU,EAAE,SAAS,CAAC,UAAU;SACjC,EACD,SAAS,CACV,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,sBAAsB,CAAC,WAAW,EAAE,UAAU,EAAE;gBACpD,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,UAAU,EAAE,SAAS,CAAC,UAAU;aACjC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAsB;IAC1D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC;IAEpD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2DAA2D,EAAE;aACpF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,eAAe,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAEhF,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC7D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,+EAA+E;QAC/E,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1B,MAAM,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAC9D,CAAC;QAED,gBAAgB;QAChB,IAAI,KAAK,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEjD,gBAAgB;QAChB,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,4DAA4D;YAC5D,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3D,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;QAED,kCAAkC;QAClC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/E,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACrF,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAElF,yDAAyD;QACzD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAClD,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACpB,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,SAAS,EAAE,CAAC;gBACd,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,kEAAkE;QAClE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QACtE,IAAI,cAAc,GAA0B,IAAI,CAAC;QACjD,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC9B,cAAc,GAAG;gBACf,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,mEAAmE;gBAC1G,UAAU,EAAE,gBAAgB;gBAC5B,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3C,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrC,SAAS,EAAE;oBACT,wCAAwC,SAAS,gBAAgB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC;iBACpJ;aACF,CAAC;QACJ,CAAC;QAED,yEAAyE;QACzE,MAAM,SAAS,GACb,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;YACL,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;gBAChC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,UAAU,EAAE;oBACV,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ;oBAC/B,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY;iBACxC;gBACD,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,YAAY,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ;aACpD,CAAC,CAAC,CAAC;QAEV,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,SAAS;YACT,OAAO,EAAE;gBACP,MAAM,EAAE,MAAM,IAAI,KAAK;gBACvB,IAAI,EAAE,IAAI,IAAI,KAAK;aACpB;YACD,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;gBACP,QAAQ,EAAE,YAAY;gBACtB,MAAM,EAAE,UAAU;gBAClB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,GAAG,EAAE;gBAClD,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,GAAG,EAAE;gBACxD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG;aACnD;YACD,cAAc;YACd,OAAO,EAAE,EAAE,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACxE,0DAA0D;YAC1D,oBAAoB,EAClB,aAAa,CAAC,MAAM,IAAI,CAAC;gBACvB,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,sEAAsE;gBACvG,CAAC,CAAC,SAAS;SACW,CAAC,CAAC;QAE9B,wEAAwE;QACxE,IAAI,WAAmB,CAAC;QACxB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,SAMlB,CAAC;YACJ,WAAW,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,+DAA+D;QAC/D,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1B,KAAK,yBAAyB,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YAC9C,iBAAiB,EAAE,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,cAAc,IAAI,IAAI,EAAE;SACzE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAC1E,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"list-specs.js","sourceRoot":"","sources":["../../src/tools/list-specs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function registerBrowserValidateTools(server: McpServer): void;
3
+ //# sourceMappingURL=register-browser-validate-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-browser-validate-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-browser-validate-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+BpE"}
@@ -0,0 +1,30 @@
1
+ // tools/register-browser-validate-tools.ts — SPEC-308: Register validate_browser tool
2
+ import { z } from 'zod';
3
+ import { safe } from './safe-handler.js';
4
+ import { handleValidateBrowser } from './browser-validate-handler.js';
5
+ export function registerBrowserValidateTools(server) {
6
+ server.registerTool('validate_browser', {
7
+ description: 'Extract UI-testable assertions from a spec and run them against a live URL using Playwright. ' +
8
+ 'If Playwright is not installed, generates a ready-to-run test file in `tests/e2e/`. ' +
9
+ 'Parses acceptance criteria checkboxes (- [ ]) to detect visibility, text, navigation, and form assertions. ' +
10
+ 'Useful for validating that a deployed UI meets the spec before marking it done.',
11
+ inputSchema: {
12
+ projectPath: z
13
+ .string()
14
+ .min(1)
15
+ .describe('Absolute path to the project root (e.g. "/home/user/my-app").'),
16
+ specId: z.string().min(1).describe('Spec ID to validate (e.g. "SPEC-042").'),
17
+ baseUrl: z
18
+ .string()
19
+ .min(1)
20
+ .describe('Base URL of the running application to test against (e.g. "http://localhost:3000"). ' +
21
+ 'The application must be running before calling this tool.'),
22
+ },
23
+ annotations: {
24
+ title: 'Browser Validation',
25
+ readOnlyHint: false,
26
+ destructiveHint: false,
27
+ },
28
+ }, safe((args) => handleValidateBrowser(args)));
29
+ }
30
+ //# sourceMappingURL=register-browser-validate-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-browser-validate-tools.js","sourceRoot":"","sources":["../../src/tools/register-browser-validate-tools.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAGtF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAA6B,MAAM,+BAA+B,CAAC;AAEjG,MAAM,UAAU,4BAA4B,CAAC,MAAiB;IAC5D,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,+FAA+F;YAC/F,sFAAsF;YACtF,6GAA6G;YAC7G,iFAAiF;QACnF,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YAC5E,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CACP,sFAAsF;gBACpF,2DAA2D,CAC9D;SACJ;QACD,WAAW,EAAE;YACX,KAAK,EAAE,oBAAoB;YAC3B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;SACvB;KACF,EACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAA4B,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function registerDiagramTools(server: McpServer): void;
3
+ //# sourceMappingURL=register-diagram-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-diagram-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-diagram-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+B5D"}
@@ -0,0 +1,28 @@
1
+ // tools/register-diagram-tools.ts — SPEC-311: Register generate_diagram tool
2
+ import { z } from 'zod';
3
+ import { handleGenerateDiagram } from './diagram-handler.js';
4
+ import { safeLicensed } from './safe-handler.js';
5
+ export function registerDiagramTools(server) {
6
+ // generate_diagram — SPEC-311
7
+ server.registerTool('generate_diagram', {
8
+ description: 'Generate a visual diagram from a text description. ' +
9
+ 'Supports Excalidraw (interactive JSON + shareable URL) and Mermaid (text-based) output formats. ' +
10
+ 'Use for architecture, data-flow, sequence, ER, and flow diagrams.',
11
+ inputSchema: {
12
+ description: z
13
+ .string()
14
+ .min(1)
15
+ .max(2000)
16
+ .describe('Text description of the diagram. Use "->" or "→" to connect nodes. Example: "User -> API -> DB"'),
17
+ diagramType: z
18
+ .enum(['architecture', 'data-flow', 'sequence', 'er', 'flow'])
19
+ .describe('Type of diagram. Valid values: architecture, data-flow, sequence, er, flow'),
20
+ format: z
21
+ .enum(['mermaid', 'excalidraw'])
22
+ .default('excalidraw')
23
+ .describe('Output format. Valid values: mermaid (text diagram), excalidraw (interactive JSON + URL)'),
24
+ },
25
+ annotations: { readOnlyHint: true },
26
+ }, safeLicensed('generate_diagram', async (args) => handleGenerateDiagram(args)));
27
+ }
28
+ //# sourceMappingURL=register-diagram-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-diagram-tools.js","sourceRoot":"","sources":["../../src/tools/register-diagram-tools.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAG7E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,qDAAqD;YACrD,kGAAkG;YAClG,mEAAmE;QACrE,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,CACP,iGAAiG,CAClG;YACH,WAAW,EAAE,CAAC;iBACX,IAAI,CAAC,CAAC,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;iBAC7D,QAAQ,CAAC,4EAA4E,CAAC;YACzF,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;iBAC/B,OAAO,CAAC,YAAY,CAAC;iBACrB,QAAQ,CACP,0FAA0F,CAC3F;SACJ;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAC9E,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-github-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-github-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiF3D"}
1
+ {"version":3,"file":"register-github-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-github-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkF3D"}
@@ -23,8 +23,9 @@ export function registerGitHubTools(server) {
23
23
  // review_pr — pro tier (read-only analysis)
24
24
  server.registerTool('review_pr', {
25
25
  description: 'Analyze a Pull Request diff for review findings. ' +
26
- 'Supports review types: summary | detailed | security | performance | expert. ' +
26
+ 'Supports review types: summary | detailed | security | performance | expert | quality. ' +
27
27
  'Use expert for multi-dimensional analysis (architecture, security, tests, conventions, spec-drift). ' +
28
+ 'Use quality for semantic code quality analysis (duplication, complexity, dead-code). ' +
28
29
  'Does NOT post comments — returns analysis for the user to decide.',
29
30
  inputSchema: ReviewPRSchema.shape,
30
31
  annotations: { title: 'Review PR', readOnlyHint: true },
@@ -1 +1 @@
1
- {"version":3,"file":"register-github-tools.js","sourceRoot":"","sources":["../../src/tools/register-github-tools.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAGzF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3F,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,iCAAiC;IACjC,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,kFAAkF;YAClF,4FAA4F;QAC9F,WAAW,EAAE,sBAAsB,CAAC,KAAK;QACzC,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,KAAK,EAAE;KACnE,EACD,YAAY,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACjD,sBAAsB,CAAC,IAA8D,CAAC,CACvF,CACF,CAAC;IAEF,oCAAoC;IACpC,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EACT,4DAA4D;YAC5D,qDAAqD;YACrD,6CAA6C;QAC/C,WAAW,EAAE,cAAc,CAAC,KAAK;QACjC,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE;KACxD,EACD,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACtC,cAAc,CAAC,IAA4D,CAAC,CAC7E,CACF,CAAC;IAEF,4CAA4C;IAC5C,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EACT,mDAAmD;YACnD,+EAA+E;YAC/E,sGAAsG;YACtG,mEAAmE;QACrE,WAAW,EAAE,cAAc,CAAC,KAAK;QACjC,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE;KACxD,EACD,YAAY,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACvC,cAAc,CAAC,IAAgD,CAAC,CACjE,CACF,CAAC;IAEF,4BAA4B;IAC5B,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,qFAAqF;YACrF,sDAAsD;QACxD,WAAW,EAAE,mBAAmB,CAAC,KAAK;QACtC,WAAW,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;KACrF,EACD,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC5C,mBAAmB,CACjB,IAAwF,CACzF,CACF,CACF,CAAC;IAEF,4CAA4C;IAC5C,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,uEAAuE;YACvE,6EAA6E;YAC7E,oDAAoD;QACtD,WAAW,EAAE,uBAAuB,CAAC,KAAK;QAC1C,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE;KACjE,EACD,YAAY,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAChD,uBAAuB,CAAC,IAAwD,CAAC,CAClF,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"register-github-tools.js","sourceRoot":"","sources":["../../src/tools/register-github-tools.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAGzF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3F,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,iCAAiC;IACjC,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,kFAAkF;YAClF,4FAA4F;QAC9F,WAAW,EAAE,sBAAsB,CAAC,KAAK;QACzC,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,KAAK,EAAE;KACnE,EACD,YAAY,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACjD,sBAAsB,CAAC,IAA8D,CAAC,CACvF,CACF,CAAC;IAEF,oCAAoC;IACpC,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EACT,4DAA4D;YAC5D,qDAAqD;YACrD,6CAA6C;QAC/C,WAAW,EAAE,cAAc,CAAC,KAAK;QACjC,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE;KACxD,EACD,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACtC,cAAc,CAAC,IAA4D,CAAC,CAC7E,CACF,CAAC;IAEF,4CAA4C;IAC5C,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EACT,mDAAmD;YACnD,yFAAyF;YACzF,sGAAsG;YACtG,uFAAuF;YACvF,mEAAmE;QACrE,WAAW,EAAE,cAAc,CAAC,KAAK;QACjC,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE;KACxD,EACD,YAAY,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACvC,cAAc,CAAC,IAAgD,CAAC,CACjE,CACF,CAAC;IAEF,4BAA4B;IAC5B,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,qFAAqF;YACrF,sDAAsD;QACxD,WAAW,EAAE,mBAAmB,CAAC,KAAK;QACtC,WAAW,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;KACrF,EACD,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC5C,mBAAmB,CACjB,IAAwF,CACzF,CACF,CACF,CAAC;IAEF,4CAA4C;IAC5C,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,uEAAuE;YACvE,6EAA6E;YAC7E,oDAAoD;QACtD,WAAW,EAAE,uBAAuB,CAAC,KAAK;QAC1C,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE;KACjE,EACD,YAAY,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAChD,uBAAuB,CAAC,IAAwD,CAAC,CAClF,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function registerGoogleWorkspaceTools(server: McpServer): void;
3
+ //# sourceMappingURL=register-google-workspace-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-google-workspace-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-google-workspace-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8CpE"}
@@ -0,0 +1,41 @@
1
+ // tools/register-google-workspace-tools.ts — SPEC-310: Register sync_google_workspace tool
2
+ import { z } from 'zod';
3
+ import { safe } from './safe-handler.js';
4
+ import { handleGoogleWorkspace } from './google-workspace-handler.js';
5
+ export function registerGoogleWorkspaceTools(server) {
6
+ server.registerTool('sync_google_workspace', {
7
+ description: 'Sync Planu specs with Google Workspace (Docs and Sheets). ' +
8
+ 'Export a spec to Google Docs-compatible markdown, generate a CSV for Google Sheets, ' +
9
+ 'import content from Google Docs back to spec format, or generate an Apps Script for live sync. ' +
10
+ 'No Google API credentials required — all operations produce content you paste into Google.',
11
+ inputSchema: {
12
+ action: z
13
+ .enum(['export', 'generate-sheet', 'import', 'generate-script'])
14
+ .describe('Action to perform. Valid values: ' +
15
+ 'export (spec → Google Docs format + Apps Script) | ' +
16
+ 'generate-sheet (all specs → CSV for Sheets) | ' +
17
+ 'import (Google Docs content → spec format) | ' +
18
+ 'generate-script (create Apps Script for live sync setup)'),
19
+ projectPath: z
20
+ .string()
21
+ .min(1)
22
+ .describe('Absolute path to the project root (e.g. "/home/user/my-app").'),
23
+ specId: z
24
+ .string()
25
+ .min(1)
26
+ .optional()
27
+ .describe('Spec ID to export or use in script generation (e.g. "SPEC-042"). Required for export action.'),
28
+ content: z
29
+ .string()
30
+ .optional()
31
+ .describe('Content from Google Docs to import. Required for the import action. ' +
32
+ 'Paste the exported markdown from Google Docs here.'),
33
+ },
34
+ annotations: {
35
+ title: 'Google Workspace Sync',
36
+ readOnlyHint: false,
37
+ destructiveHint: false,
38
+ },
39
+ }, safe((args) => handleGoogleWorkspace(args)));
40
+ }
41
+ //# sourceMappingURL=register-google-workspace-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-google-workspace-tools.js","sourceRoot":"","sources":["../../src/tools/register-google-workspace-tools.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAG3F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAA6B,MAAM,+BAA+B,CAAC;AAEjG,MAAM,UAAU,4BAA4B,CAAC,MAAiB;IAC5D,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,4DAA4D;YAC5D,sFAAsF;YACtF,iGAAiG;YACjG,4FAA4F;QAC9F,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;iBAC/D,QAAQ,CACP,mCAAmC;gBACjC,qDAAqD;gBACrD,gDAAgD;gBAChD,+CAA+C;gBAC/C,0DAA0D,CAC7D;YACH,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,EAAE;iBACV,QAAQ,CACP,8FAA8F,CAC/F;YACH,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,sEAAsE;gBACpE,oDAAoD,CACvD;SACJ;QACD,WAAW,EAAE;YACX,KAAK,EAAE,uBAAuB;YAC9B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;SACvB;KACF,EACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAA4B,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC"}
@@ -18,6 +18,7 @@ export declare const ReviewPRSchema: z.ZodObject<{
18
18
  expert: "expert";
19
19
  security: "security";
20
20
  performance: "performance";
21
+ quality: "quality";
21
22
  summary: "summary";
22
23
  detailed: "detailed";
23
24
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/github.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;;iBAQjC,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;iBAIzB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;iBAMzB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;iBAQ9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;iBAOlC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;iBAYpC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;iBAM7B,CAAC"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/github.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;;iBAQjC,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;iBAIzB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;iBASzB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;iBAQ9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;iBAOlC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;iBAYpC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;iBAM7B,CAAC"}
@@ -17,9 +17,10 @@ export const PRStatusSchema = z.object({
17
17
  export const ReviewPRSchema = z.object({
18
18
  prNumber: z.number().describe('PR number to review'),
19
19
  reviewType: z
20
- .enum(['summary', 'detailed', 'security', 'performance', 'expert'])
20
+ .enum(['summary', 'detailed', 'security', 'performance', 'expert', 'quality'])
21
21
  .default('summary')
22
- .describe('Review type: summary | detailed | security | performance | expert'),
22
+ .describe('Review type: summary | detailed | security | performance | expert | quality. ' +
23
+ 'Use quality for semantic code quality analysis (duplication, complexity, dead-code).'),
23
24
  });
24
25
  export const CreateReleaseSchema = z.object({
25
26
  version: z.string().max(500).describe('Semver version (e.g., 1.2.0)'),
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/tools/schemas/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/tools/schemas/github.ts"],"names":[],"mappings":"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"}