@planu/cli 0.95.0 → 0.96.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.
Files changed (107) 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/register-browser-validate-tools.d.ts +3 -0
  62. package/dist/tools/register-browser-validate-tools.d.ts.map +1 -0
  63. package/dist/tools/register-browser-validate-tools.js +30 -0
  64. package/dist/tools/register-browser-validate-tools.js.map +1 -0
  65. package/dist/tools/register-diagram-tools.d.ts +3 -0
  66. package/dist/tools/register-diagram-tools.d.ts.map +1 -0
  67. package/dist/tools/register-diagram-tools.js +28 -0
  68. package/dist/tools/register-diagram-tools.js.map +1 -0
  69. package/dist/tools/register-github-tools.d.ts.map +1 -1
  70. package/dist/tools/register-github-tools.js +2 -1
  71. package/dist/tools/register-github-tools.js.map +1 -1
  72. package/dist/tools/register-google-workspace-tools.d.ts +3 -0
  73. package/dist/tools/register-google-workspace-tools.d.ts.map +1 -0
  74. package/dist/tools/register-google-workspace-tools.js +41 -0
  75. package/dist/tools/register-google-workspace-tools.js.map +1 -0
  76. package/dist/tools/schemas/github.d.ts +1 -0
  77. package/dist/tools/schemas/github.d.ts.map +1 -1
  78. package/dist/tools/schemas/github.js +3 -2
  79. package/dist/tools/schemas/github.js.map +1 -1
  80. package/dist/tools/skill-registry/search.d.ts.map +1 -1
  81. package/dist/tools/skill-registry/search.js +8 -0
  82. package/dist/tools/skill-registry/search.js.map +1 -1
  83. package/dist/types/browser-validator.d.ts +40 -0
  84. package/dist/types/browser-validator.d.ts.map +1 -0
  85. package/dist/types/browser-validator.js +3 -0
  86. package/dist/types/browser-validator.js.map +1 -0
  87. package/dist/types/common/tech-enums.d.ts +1 -1
  88. package/dist/types/common/tech-enums.d.ts.map +1 -1
  89. package/dist/types/diagram.d.ts +73 -0
  90. package/dist/types/diagram.d.ts.map +1 -0
  91. package/dist/types/diagram.js +2 -0
  92. package/dist/types/diagram.js.map +1 -0
  93. package/dist/types/github.d.ts +2 -2
  94. package/dist/types/github.d.ts.map +1 -1
  95. package/dist/types/google-workspace.d.ts +39 -0
  96. package/dist/types/google-workspace.d.ts.map +1 -0
  97. package/dist/types/google-workspace.js +3 -0
  98. package/dist/types/google-workspace.js.map +1 -0
  99. package/dist/types/index.d.ts +3 -0
  100. package/dist/types/index.d.ts.map +1 -1
  101. package/dist/types/index.js +3 -0
  102. package/dist/types/index.js.map +1 -1
  103. package/dist/types/skill-registry.d.ts +22 -0
  104. package/dist/types/skill-registry.d.ts.map +1 -1
  105. package/package.json +1 -1
  106. package/src/config/license-plans.json +4 -1
  107. 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":"AAAA,+DAA+D;AAI/D,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EACL,WAAW,EACX,cAAc,EACd,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,kEAAkE;AAClE,MAAM,WAAW,GAAe,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAClD,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;AAC7E,CAAC,CAAC;AAEF,0EAA0E;AAC1E,SAAS,aAAa,CAAC,UAAkB;IACvC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED,SAAS,aAAa,CAAC,CAAgB;IACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,IAAY,EACZ,IAAgB;IAEhB,0DAA0D;IAC1D,IAAI,MAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5E,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEnC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAClE,QAAQ,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACpF,QAAQ,CAAC,IAAI,CACX,mBAAmB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC/C,0BAA0B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAC7D,CAAC;IAEF,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACnE,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,KAAK,EAAE;YACL,QAAQ;YACR,UAAU,EAAE,QAAQ;YACpB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAChC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;YACtC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;SACzB;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAA8C,EAC9C,OAAmB,WAAW;IAE9B,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEnD,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAwB,CAAC;IAEjD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,sBAAsB,CAC3C,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CAChB,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,GAAG,QAAQ,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,UAAU,KAAK,CAAC,CAAC;IAC7E,QAAQ,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAClE,QAAQ,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEtF,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACjE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;YAC/D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,QAAQ,CAAC,IAAI,CAAC,QAAQ,UAAU,2BAA2B,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1B;SACF;QACD,KAAK,EAAE;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU;YACV,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,WAAW,CAAC,MAAM;SAClC;KACF,CAAC;AACJ,CAAC"}
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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"}
@@ -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":"AAAA,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACvE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,2CAA2C,CAAC;IACxD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CAClF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACvE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC/F,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CAC3F,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACpD,UAAU,EAAE,CAAC;SACV,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;SAC7E,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CACP,+EAA+E;QAC7E,sFAAsF,CACzF;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACrE,aAAa,EAAE,CAAC;SACb,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,wDAAwD,CAAC;IACrE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACpF,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACvF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACzE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAChF,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;SAC1B,OAAO,CAAC,UAAU,CAAC;SACnB,QAAQ,CAAC,gCAAgC,CAAC;CAC9C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACvE,WAAW,EAAE,CAAC;SACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC1B,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC1B,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iCAAiC,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC/B,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,4CAA4C,CAAC;IACzD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;CACpE,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/tools/skill-registry/search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAqB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAqC/F,wBAAgB,cAAc,IAAI,mBAAmB,EAAE,CA4BtD;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8EtB"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/tools/skill-registry/search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAqB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AA6C/F,wBAAgB,cAAc,IAAI,mBAAmB,EAAE,CA4BtD;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8EtB"}
@@ -7,6 +7,14 @@ import { join, dirname } from 'node:path';
7
7
  import { fileURLToPath } from 'node:url';
8
8
  const __dirname = dirname(fileURLToPath(import.meta.url));
9
9
  const DEFAULT_REGISTRIES = [
10
+ {
11
+ id: 'builtin',
12
+ name: 'Planu Built-in Skills',
13
+ url: 'local://skill-catalog',
14
+ type: 'api',
15
+ priority: 0,
16
+ enabled: true,
17
+ },
10
18
  {
11
19
  id: 'anthropic',
12
20
  name: 'Anthropic Official Skills',
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/skill-registry/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/skill-registry/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /** A single UI-testable assertion extracted from spec acceptance criteria. */
2
+ export interface UIAssertion {
3
+ /** Original criterion text from the spec. */
4
+ criterion: string;
5
+ /** Classification of the UI assertion type. */
6
+ type: 'visibility' | 'text' | 'navigation' | 'form' | 'generic';
7
+ /** Playwright locator string (e.g. "button:has-text('Submit')"). */
8
+ locator?: string;
9
+ /** Expected value for text/navigation assertions. */
10
+ expected?: string;
11
+ }
12
+ /** Result of a browser validation run. */
13
+ export interface BrowserValidationResult {
14
+ /** Spec ID that was validated. */
15
+ specId: string;
16
+ /** Base URL that was used for testing. */
17
+ baseUrl: string;
18
+ /** Playwright version found, or null if not available. */
19
+ playwrightVersion: string | null;
20
+ /** UI assertions extracted from the spec. */
21
+ assertions: UIAssertion[];
22
+ /** Path where the generated test file was saved (when Playwright not available). */
23
+ testFilePath?: string;
24
+ /** Playwright test results when run directly. */
25
+ testResults?: BrowserTestRunResult;
26
+ /** Instructions for running tests manually. */
27
+ instructions?: string;
28
+ }
29
+ /** Result of running playwright tests programmatically. */
30
+ export interface BrowserTestRunResult {
31
+ /** Number of tests that passed. */
32
+ passed: number;
33
+ /** Number of tests that failed. */
34
+ failed: number;
35
+ /** Number of tests that were skipped. */
36
+ skipped: number;
37
+ /** Raw output from the test runner. */
38
+ output: string;
39
+ }
40
+ //# sourceMappingURL=browser-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-validator.d.ts","sourceRoot":"","sources":["../../src/types/browser-validator.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;IAChE,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,0CAA0C;AAC1C,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,6CAA6C;IAC7C,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,2DAA2D;AAC3D,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,3 @@
1
+ // types/browser-validator.ts — SPEC-308: Browser validator domain types
2
+ export {};
3
+ //# sourceMappingURL=browser-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-validator.js","sourceRoot":"","sources":["../../src/types/browser-validator.ts"],"names":[],"mappings":"AAAA,wEAAwE"}
@@ -13,7 +13,7 @@ export type ArchitecturePattern = 'monolith' | 'modular-monolith' | 'layered' |
13
13
  export type AgentPlatform = 'claude-code' | 'cursor' | 'windsurf' | 'aider' | 'copilot' | 'cline' | 'continue' | 'codex' | 'gemini' | 'amazon-q' | 'tabnine' | 'cody' | 'replit' | 'devin' | 'zed' | 'augment' | 'qodo' | 'junie' | 'kilo-code' | 'antigravity' | 'bolt' | 'lovable' | 'custom';
14
14
  export type SubAgentFramework = 'claude-agent-sdk' | 'crewai' | 'langgraph' | 'autogen' | 'mastra' | 'vercel-ai-sdk' | 'custom';
15
15
  export type AuditCategory = 'solid' | 'clean-code' | 'architecture' | 'security' | 'performance' | 'error-handling' | 'testing' | 'dry' | 'project-rules' | 'quality';
16
- export type DiagramType = 'data-flow' | 'sequence' | 'er' | 'component' | 'architecture' | 'state-machine' | 'dependency' | 'deployment' | 'class' | 'gantt' | 'pie';
16
+ export type DiagramType = 'data-flow' | 'sequence' | 'er' | 'component' | 'architecture' | 'state-machine' | 'dependency' | 'deployment' | 'class' | 'gantt' | 'pie' | 'flow';
17
17
  export type DocumentationType = 'user-guide' | 'api-reference' | 'readme' | 'setup-guide' | 'changelog' | 'onboarding' | 'faq' | 'architecture-doc' | 'deployment-guide' | 'database-doc' | 'help-articles' | 'release-notes' | 'runbook' | 'security-doc' | 'architecture-decision-log' | 'contributing' | 'bounded-context-map' | 'mobile-distribution-guide' | 'executive-summary' | 'per-spec-executive' | 'per-spec-technical';
18
18
  export type GitAction = 'create-branch' | 'generate-pr' | 'link-commits' | 'generate-changelog' | 'setup-hooks' | 'check-branch' | 'status' | 'sync-branch' | 'check-gitflow' | 'resolve-conflict' | 'breaking-check' | 'release' | 'hotfix' | 'promote' | 'auto-setup' | 'cleanup' | 'import-issue' | 'export-to-issue' | 'sync-issue' | 'worktree-start' | 'worktree-list' | 'worktree-cleanup';
19
19
  export type DevLifecycleCategory = 'project_management' | 'version_control' | 'ci_cd' | 'caching' | 'message_queues' | 'search' | 'file_storage' | 'realtime' | 'feature_flags' | 'observability' | 'analytics' | 'testing' | 'security' | 'api_documentation' | 'design_prototyping' | 'email_sms_notifications' | 'payments_billing' | 'ai_ml' | 'cdn_edge' | 'containerization' | 'scheduled_jobs' | 'cms' | 'i18n' | 'rate_limiting' | 'linting_formatting';
@@ -1 +1 @@
1
- {"version":3,"file":"tech-enums.d.ts","sourceRoot":"","sources":["../../../src/types/common/tech-enums.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tech-enums.d.ts","sourceRoot":"","sources":["../../../src/types/common/tech-enums.ts"],"names":[],"mappings":"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"}