@planu/cli 0.29.0 → 0.30.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.
- package/dist/config/license-plans.json +7 -1
- package/dist/engine/ci-generator/planu-config.d.ts +7 -0
- package/dist/engine/ci-generator/planu-config.d.ts.map +1 -0
- package/dist/engine/ci-generator/planu-config.js +40 -0
- package/dist/engine/ci-generator/planu-config.js.map +1 -0
- package/dist/engine/ci-generator/planu-steps.d.ts +11 -0
- package/dist/engine/ci-generator/planu-steps.d.ts.map +1 -0
- package/dist/engine/ci-generator/planu-steps.js +292 -0
- package/dist/engine/ci-generator/planu-steps.js.map +1 -0
- package/dist/engine/spec-templates/catalog-industry.d.ts +4 -0
- package/dist/engine/spec-templates/catalog-industry.d.ts.map +1 -0
- package/dist/engine/spec-templates/catalog-industry.js +19 -0
- package/dist/engine/spec-templates/catalog-industry.js.map +1 -0
- package/dist/engine/spec-templates/catalog.d.ts +1 -1
- package/dist/engine/spec-templates/catalog.d.ts.map +1 -1
- package/dist/engine/spec-templates/catalog.js +3 -1
- package/dist/engine/spec-templates/catalog.js.map +1 -1
- package/dist/engine/spec-templates/custom-loader.d.ts +12 -0
- package/dist/engine/spec-templates/custom-loader.d.ts.map +1 -0
- package/dist/engine/spec-templates/custom-loader.js +99 -0
- package/dist/engine/spec-templates/custom-loader.js.map +1 -0
- package/dist/engine/spec-templates/index.d.ts +4 -2
- package/dist/engine/spec-templates/index.d.ts.map +1 -1
- package/dist/engine/spec-templates/index.js +4 -2
- package/dist/engine/spec-templates/index.js.map +1 -1
- package/dist/engine/spec-templates/query.d.ts +12 -4
- package/dist/engine/spec-templates/query.d.ts.map +1 -1
- package/dist/engine/spec-templates/query.js +29 -7
- package/dist/engine/spec-templates/query.js.map +1 -1
- package/dist/engine/spec-templates/renderer.d.ts +27 -2
- package/dist/engine/spec-templates/renderer.d.ts.map +1 -1
- package/dist/engine/spec-templates/renderer.js +119 -4
- package/dist/engine/spec-templates/renderer.js.map +1 -1
- package/dist/engine/spec-templates/templates-api-ui.d.ts.map +1 -1
- package/dist/engine/spec-templates/templates-api-ui.js +28 -1
- package/dist/engine/spec-templates/templates-api-ui.js.map +1 -1
- package/dist/engine/spec-templates/templates-auth-crud.d.ts.map +1 -1
- package/dist/engine/spec-templates/templates-auth-crud.js +27 -0
- package/dist/engine/spec-templates/templates-auth-crud.js.map +1 -1
- package/dist/engine/spec-templates/templates-data-security.d.ts.map +1 -1
- package/dist/engine/spec-templates/templates-data-security.js +26 -0
- package/dist/engine/spec-templates/templates-data-security.js.map +1 -1
- package/dist/engine/spec-templates/templates-industry-ecom.d.ts +6 -0
- package/dist/engine/spec-templates/templates-industry-ecom.d.ts.map +1 -0
- package/dist/engine/spec-templates/templates-industry-ecom.js +209 -0
- package/dist/engine/spec-templates/templates-industry-ecom.js.map +1 -0
- package/dist/engine/spec-templates/templates-industry-fintech.d.ts +8 -0
- package/dist/engine/spec-templates/templates-industry-fintech.d.ts.map +1 -0
- package/dist/engine/spec-templates/templates-industry-fintech.js +350 -0
- package/dist/engine/spec-templates/templates-industry-fintech.js.map +1 -0
- package/dist/engine/spec-templates/templates-industry-health-ecom.d.ts +3 -0
- package/dist/engine/spec-templates/templates-industry-health-ecom.d.ts.map +1 -0
- package/dist/engine/spec-templates/templates-industry-health-ecom.js +5 -0
- package/dist/engine/spec-templates/templates-industry-health-ecom.js.map +1 -0
- package/dist/engine/spec-templates/templates-industry-health.d.ts +6 -0
- package/dist/engine/spec-templates/templates-industry-health.d.ts.map +1 -0
- package/dist/engine/spec-templates/templates-industry-health.js +208 -0
- package/dist/engine/spec-templates/templates-industry-health.js.map +1 -0
- package/dist/engine/spec-templates/templates-industry-saas.d.ts +8 -0
- package/dist/engine/spec-templates/templates-industry-saas.d.ts.map +1 -0
- package/dist/engine/spec-templates/templates-industry-saas.js +323 -0
- package/dist/engine/spec-templates/templates-industry-saas.js.map +1 -0
- package/dist/engine/spec-templates/templates-perf-integration.d.ts.map +1 -1
- package/dist/engine/spec-templates/templates-perf-integration.js +27 -0
- package/dist/engine/spec-templates/templates-perf-integration.js.map +1 -1
- package/dist/resources/process.js +1 -1
- package/dist/tools/ci-planu-handler.d.ts +8 -0
- package/dist/tools/ci-planu-handler.d.ts.map +1 -0
- package/dist/tools/ci-planu-handler.js +44 -0
- package/dist/tools/ci-planu-handler.js.map +1 -0
- package/dist/tools/init-project/handler.d.ts.map +1 -1
- package/dist/tools/init-project/handler.js +24 -159
- package/dist/tools/init-project/handler.js.map +1 -1
- package/dist/tools/init-project/result-builder.d.ts +4 -0
- package/dist/tools/init-project/result-builder.d.ts.map +1 -0
- package/dist/tools/init-project/result-builder.js +150 -0
- package/dist/tools/init-project/result-builder.js.map +1 -0
- package/dist/tools/learn.d.ts.map +1 -1
- package/dist/tools/learn.js +67 -14
- package/dist/tools/learn.js.map +1 -1
- package/dist/tools/license-status.d.ts.map +1 -1
- package/dist/tools/license-status.js +17 -2
- package/dist/tools/license-status.js.map +1 -1
- package/dist/tools/register-ci-tools.d.ts.map +1 -1
- package/dist/tools/register-ci-tools.js +36 -0
- package/dist/tools/register-ci-tools.js.map +1 -1
- package/dist/tools/register-template-tools.d.ts.map +1 -1
- package/dist/tools/register-template-tools.js +21 -8
- package/dist/tools/register-template-tools.js.map +1 -1
- package/dist/tools/spec-templates.d.ts +1 -1
- package/dist/tools/spec-templates.d.ts.map +1 -1
- package/dist/tools/spec-templates.js +20 -6
- package/dist/tools/spec-templates.js.map +1 -1
- package/dist/types/ci.d.ts +51 -0
- package/dist/types/ci.d.ts.map +1 -1
- package/dist/types/project/core.d.ts +46 -5
- package/dist/types/project/core.d.ts.map +1 -1
- package/dist/types/spec-templates.d.ts +51 -1
- package/dist/types/spec-templates.d.ts.map +1 -1
- package/dist/types/vector-store.d.ts +7 -0
- package/dist/types/vector-store.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/config/license-plans.json +7 -1
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
import { licenseStore } from '../storage/index.js';
|
|
4
4
|
import { getTierLimits, loadLicensePlans } from '../engine/license-validator.js';
|
|
5
5
|
import { getCurrentTier } from './license-gate.js';
|
|
6
|
+
import { readFileSync } from 'node:fs';
|
|
7
|
+
import { join, dirname } from 'node:path';
|
|
8
|
+
import { fileURLToPath } from 'node:url';
|
|
9
|
+
function getVersion() {
|
|
10
|
+
try {
|
|
11
|
+
const dir = dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
const pkg = JSON.parse(readFileSync(join(dir, '../../package.json'), 'utf-8'));
|
|
13
|
+
return pkg.version;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return 'unknown';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
6
19
|
export async function handleLicenseStatus(_args) {
|
|
7
20
|
const state = await licenseStore.getLicenseState();
|
|
8
21
|
const tier = await getCurrentTier();
|
|
@@ -13,7 +26,8 @@ export async function handleLicenseStatus(_args) {
|
|
|
13
26
|
lines.push(`## Planu License Status`);
|
|
14
27
|
lines.push('');
|
|
15
28
|
const tierLabel = tier.charAt(0).toUpperCase() + tier.slice(1);
|
|
16
|
-
const totalTools = config.freeTools.length + config.proTools.length;
|
|
29
|
+
const totalTools = config.freeTools.length + config.proTools.length + config.alwaysAllowed.length;
|
|
30
|
+
lines.push(`**Version:** ${getVersion()}`);
|
|
17
31
|
lines.push(`**Plan:** ${tierLabel}`);
|
|
18
32
|
if (state) {
|
|
19
33
|
lines.push(`**Customer:** ${state.customerName} (${state.customerEmail})`);
|
|
@@ -22,7 +36,8 @@ export async function handleLicenseStatus(_args) {
|
|
|
22
36
|
lines.push(`**Last validated:** ${state.lastValidatedAt}`);
|
|
23
37
|
}
|
|
24
38
|
if (tier === 'free') {
|
|
25
|
-
|
|
39
|
+
const freeAvailable = config.freeTools.length + config.alwaysAllowed.length;
|
|
40
|
+
lines.push(`**Tools available:** ${String(freeAvailable)} of ${String(totalTools)}`);
|
|
26
41
|
}
|
|
27
42
|
else {
|
|
28
43
|
lines.push(`**Tools available:** ${String(totalTools)} of ${String(totalTools)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license-status.js","sourceRoot":"","sources":["../../src/tools/license-status.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,sDAAsD;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"license-status.js","sourceRoot":"","sources":["../../src/tools/license-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-ci-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-ci-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"register-ci-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-ci-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiHvD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { handleGenerateCI } from './ci-generator.js';
|
|
3
|
+
import { handleGeneratePlanuCI } from './ci-planu-handler.js';
|
|
3
4
|
import { safeLicensed } from './safe-handler.js';
|
|
4
5
|
export function registerCITools(server) {
|
|
5
6
|
server.registerTool('generate_ci', {
|
|
@@ -46,5 +47,40 @@ export function registerCITools(server) {
|
|
|
46
47
|
},
|
|
47
48
|
annotations: { readOnlyHint: true },
|
|
48
49
|
}, safeLicensed('generate_ci', async (args) => handleGenerateCI(args)));
|
|
50
|
+
server.registerTool('generate_planu_ci', {
|
|
51
|
+
description: 'Generate a Planu-specific GitHub Actions CI workflow that validates specs, detects drift between code and specs, posts results as PR comments, generates badges, and supports .planu.yml configuration. Produces ready-to-use workflow YAML + config file.',
|
|
52
|
+
inputSchema: {
|
|
53
|
+
projectId: z.string().describe('Project ID'),
|
|
54
|
+
specsDir: z
|
|
55
|
+
.string()
|
|
56
|
+
.optional()
|
|
57
|
+
.describe('Directory containing specs (default: "docs/sdd/specs")'),
|
|
58
|
+
detectDrift: z
|
|
59
|
+
.boolean()
|
|
60
|
+
.optional()
|
|
61
|
+
.describe('Enable drift detection between code changes and specs (default: true)'),
|
|
62
|
+
failOnDrift: z
|
|
63
|
+
.boolean()
|
|
64
|
+
.optional()
|
|
65
|
+
.describe('Exit with code 1 when drift/issues detected above threshold (default: true)'),
|
|
66
|
+
severityThreshold: z
|
|
67
|
+
.enum(['critical', 'warning', 'info'])
|
|
68
|
+
.optional()
|
|
69
|
+
.describe('Severity threshold for CI failure: critical | warning | info (default: "warning"). critical = only mandatory broken specs; warning = any drift or incomplete criteria; info = always passes'),
|
|
70
|
+
postComment: z
|
|
71
|
+
.boolean()
|
|
72
|
+
.optional()
|
|
73
|
+
.describe('Post/update a markdown results comment on PRs (default: true)'),
|
|
74
|
+
badge: z
|
|
75
|
+
.boolean()
|
|
76
|
+
.optional()
|
|
77
|
+
.describe('Generate a shields.io badge endpoint for README (default: true)'),
|
|
78
|
+
workingDirectory: z
|
|
79
|
+
.string()
|
|
80
|
+
.optional()
|
|
81
|
+
.describe('Working directory for monorepo projects (default: ".")'),
|
|
82
|
+
},
|
|
83
|
+
annotations: { readOnlyHint: true },
|
|
84
|
+
}, safeLicensed('generate_planu_ci', (args) => Promise.resolve(handleGeneratePlanuCI(args))));
|
|
49
85
|
}
|
|
50
86
|
//# sourceMappingURL=register-ci-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-ci-tools.js","sourceRoot":"","sources":["../../src/tools/register-ci-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EACT,qPAAqP;QACvP,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACrE,IAAI,EAAE,CAAC;iBACJ,KAAK,CACJ,CAAC;iBACE,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;iBACzC,QAAQ,CAAC,wCAAwC,CAAC,CACtD;iBACA,QAAQ,EAAE;iBACV,QAAQ,CACP,iGAAiG,CAClG;YACH,QAAQ,EAAE,CAAC;iBACR,KAAK,CACJ,CAAC;iBACE,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC;iBAC/D,QAAQ,CAAC,6DAA6D,CAAC,CAC3E;iBACA,QAAQ,EAAE;iBACV,QAAQ,CACP,6HAA6H,CAC9H;YACH,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,gGAAgG,CACjG;YACH,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,8GAA8G,CAC/G;YACH,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,+EAA+E,CAChF;YACH,WAAW,EAAE,CAAC;iBACX,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;iBACnC,QAAQ,EAAE;iBACV,QAAQ,CACP,oGAAoG,CACrG;YACH,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,8FAA8F,CAC/F;YACH,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,8FAA8F,CAC/F;SACJ;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"register-ci-tools.js","sourceRoot":"","sources":["../../src/tools/register-ci-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-template-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-template-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"register-template-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-template-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqBzE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwF7D"}
|
|
@@ -13,7 +13,9 @@ const TEMPLATE_CATEGORIES = [
|
|
|
13
13
|
'data',
|
|
14
14
|
'security',
|
|
15
15
|
'performance',
|
|
16
|
+
'industry',
|
|
16
17
|
];
|
|
18
|
+
const COMPLEXITY_SCORES = ['S', 'M', 'L', 'XL'];
|
|
17
19
|
/**
|
|
18
20
|
* Registers spec template tools on the MCP server.
|
|
19
21
|
* - list_templates: free, tracked
|
|
@@ -22,29 +24,36 @@ const TEMPLATE_CATEGORIES = [
|
|
|
22
24
|
export function registerTemplateTools(server) {
|
|
23
25
|
// list_templates — browse and discover templates
|
|
24
26
|
server.registerTool('list_templates', {
|
|
25
|
-
description: 'Browse the built-in spec template catalog. Returns available templates with descriptions, ' +
|
|
26
|
-
'categories, tags, and required variables.
|
|
27
|
+
description: 'Browse the built-in and custom spec template catalog. Returns available templates with descriptions, ' +
|
|
28
|
+
'categories, tags, complexity scores, and required variables. ' +
|
|
29
|
+
'Custom templates in data/global/spec-templates/custom/ are included automatically. ' +
|
|
30
|
+
'Use apply_template to create a spec from a template.',
|
|
27
31
|
inputSchema: {
|
|
28
32
|
category: z
|
|
29
33
|
.enum(TEMPLATE_CATEGORIES)
|
|
30
34
|
.optional()
|
|
31
|
-
.describe('Filter templates by category. Type: auth | crud | api | ui | infra | testing | integration | data | security | performance'),
|
|
35
|
+
.describe('Filter templates by category. Type: auth | crud | api | ui | infra | testing | integration | data | security | performance | industry'),
|
|
32
36
|
search: z
|
|
33
37
|
.string()
|
|
34
38
|
.optional()
|
|
35
39
|
.describe('Full-text search across template names, descriptions, and tags (case-insensitive)'),
|
|
40
|
+
complexityScore: z
|
|
41
|
+
.enum(COMPLEXITY_SCORES)
|
|
42
|
+
.optional()
|
|
43
|
+
.describe('Filter by complexity score. Type: S (<16h) | M (16-40h) | L (40-80h) | XL (>80h)'),
|
|
36
44
|
},
|
|
37
45
|
annotations: { title: 'List Spec Templates', readOnlyHint: true },
|
|
38
|
-
}, safeTracked('list_templates', (args) =>
|
|
46
|
+
}, safeTracked('list_templates', async (args) => handleListTemplates(args)));
|
|
39
47
|
// apply_template — create spec files from a template
|
|
40
48
|
server.registerTool('apply_template', {
|
|
41
|
-
description: 'Create HU.md, FICHA-TECNICA.md, and PROGRESS.md from a
|
|
42
|
-
'Templates are language-agnostic and cover common feature patterns (auth, CRUD, API, etc.). ' +
|
|
43
|
-
'Use list_templates first to discover available templates and their required variables.'
|
|
49
|
+
description: 'Create HU.md, FICHA-TECNICA.md, and PROGRESS.md from a spec template. ' +
|
|
50
|
+
'Templates are language-agnostic and cover common feature patterns (auth, CRUD, API, etc.) and industry verticals (fintech, healthtech, e-commerce, SaaS). ' +
|
|
51
|
+
'Use list_templates first to discover available templates and their required variables. ' +
|
|
52
|
+
'Supports partial criteria selection via includeCriteria parameter.',
|
|
44
53
|
inputSchema: {
|
|
45
54
|
templateId: z
|
|
46
55
|
.string()
|
|
47
|
-
.describe('ID of the template to apply (e.g. "auth-jwt", "
|
|
56
|
+
.describe('ID of the template to apply (e.g. "auth-jwt", "fintech-kyc"). Use list_templates to get valid IDs.'),
|
|
48
57
|
projectPath: z
|
|
49
58
|
.string()
|
|
50
59
|
.describe('Absolute path to the project root where specs will be created'),
|
|
@@ -64,6 +73,10 @@ export function registerTemplateTools(server) {
|
|
|
64
73
|
.string()
|
|
65
74
|
.optional()
|
|
66
75
|
.describe('Custom absolute path for the output directory. Overrides the default planu/specs/{feature}/{template-id}/ layout.'),
|
|
76
|
+
includeCriteria: z
|
|
77
|
+
.array(z.string())
|
|
78
|
+
.optional()
|
|
79
|
+
.describe('List of criteria IDs to include (e.g. ["AC-1", "AC-3"]). Omit to include all criteria. Required criteria are always included even if omitted from this list.'),
|
|
67
80
|
},
|
|
68
81
|
annotations: { title: 'Apply Spec Template', destructiveHint: false },
|
|
69
82
|
}, safeLicensed('apply_template', async (args) => handleApplyTemplate(args)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-template-tools.js","sourceRoot":"","sources":["../../src/tools/register-template-tools.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAGtF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,mBAAmB,GAAG;IAC1B,MAAM;IACN,MAAM;IACN,KAAK;IACL,IAAI;IACJ,OAAO;IACP,SAAS;IACT,aAAa;IACb,MAAM;IACN,UAAU;IACV,aAAa;
|
|
1
|
+
{"version":3,"file":"register-template-tools.js","sourceRoot":"","sources":["../../src/tools/register-template-tools.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAGtF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,mBAAmB,GAAG;IAC1B,MAAM;IACN,MAAM;IACN,KAAK;IACL,IAAI;IACJ,OAAO;IACP,SAAS;IACT,aAAa;IACb,MAAM;IACN,UAAU;IACV,aAAa;IACb,UAAU;CACF,CAAC;AAEX,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAU,CAAC;AAEzD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,iDAAiD;IACjD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,uGAAuG;YACvG,+DAA+D;YAC/D,qFAAqF;YACrF,sDAAsD;QACxD,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,mBAAmB,CAAC;iBACzB,QAAQ,EAAE;iBACV,QAAQ,CACP,uIAAuI,CACxI;YACH,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,mFAAmF,CACpF;YACH,eAAe,EAAE,CAAC;iBACf,IAAI,CAAC,iBAAiB,CAAC;iBACvB,QAAQ,EAAE;iBACV,QAAQ,CACP,kFAAkF,CACnF;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE;KAClE,EACD,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CACzE,CAAC;IAEF,qDAAqD;IACrD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,wEAAwE;YACxE,4JAA4J;YAC5J,yFAAyF;YACzF,oEAAoE;QACtE,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,CACP,oGAAoG,CACrG;YACH,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,SAAS,EAAE,CAAC;iBACT,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,GAAG,EAAE,CAAC;qBACH,MAAM,EAAE;qBACR,QAAQ,CAAC,6DAA6D,CAAC;gBAC1E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;aACrF,CAAC,CACH;iBACA,QAAQ,CACP,kGAAkG,CACnG;YACH,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,iIAAiI,CAClI;YACH,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,mHAAmH,CACpH;YACH,eAAe,EAAE,CAAC;iBACf,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CACP,8JAA8J,CAC/J;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,KAAK,EAAE;KACtE,EACD,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { ListTemplatesInput, ApplyTemplateInput, ToolResult } from '../type
|
|
|
2
2
|
/**
|
|
3
3
|
* Returns the list of available spec templates, optionally filtered.
|
|
4
4
|
*/
|
|
5
|
-
export declare function handleListTemplates(args: ListTemplatesInput): ToolResult
|
|
5
|
+
export declare function handleListTemplates(args: ListTemplatesInput): Promise<ToolResult>;
|
|
6
6
|
/**
|
|
7
7
|
* Applies a template to create HU.md + FICHA-TECNICA.md + PROGRESS.md.
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-templates.d.ts","sourceRoot":"","sources":["../../src/tools/spec-templates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAElB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAQ3B;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"spec-templates.d.ts","sourceRoot":"","sources":["../../src/tools/spec-templates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAElB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAQ3B;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CA0DvF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAkEvF"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// tools/spec-templates.ts — Handlers for list_templates and apply_template tools.
|
|
2
2
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import { listTemplates,
|
|
4
|
+
import { listTemplates, findTemplateWithCustom, renderTemplate, findMissingRequired, } from '../engine/spec-templates/index.js';
|
|
5
5
|
/**
|
|
6
6
|
* Returns the list of available spec templates, optionally filtered.
|
|
7
7
|
*/
|
|
8
|
-
export function handleListTemplates(args) {
|
|
8
|
+
export async function handleListTemplates(args) {
|
|
9
9
|
try {
|
|
10
|
-
const result = listTemplates(args.category, args.search);
|
|
10
|
+
const { result, warnings } = await listTemplates(args.category, args.search, args.complexityScore);
|
|
11
11
|
const lines = [
|
|
12
12
|
'# Available Spec Templates',
|
|
13
13
|
'',
|
|
@@ -20,15 +20,25 @@ export function handleListTemplates(args) {
|
|
|
20
20
|
else {
|
|
21
21
|
for (const t of result.templates) {
|
|
22
22
|
lines.push(`## ${t.name} (\`${t.id}\`)`);
|
|
23
|
-
lines.push(`- **Category:** ${t.category}`);
|
|
23
|
+
lines.push(`- **Category:** ${t.category}${t.subcategory !== undefined ? ` (${t.subcategory})` : ''}`);
|
|
24
|
+
lines.push(`- **Complexity:** ${t.complexityScore}`);
|
|
25
|
+
lines.push(`- **Criteria:** ${t.criteriaCount}`);
|
|
24
26
|
lines.push(`- **Description:** ${t.description}`);
|
|
25
27
|
lines.push(`- **Tags:** ${t.tags.join(', ')}`);
|
|
26
28
|
lines.push(`- **Variables:** ${t.variableCount} total, ${t.requiredVariableCount} required`);
|
|
27
29
|
lines.push('');
|
|
28
30
|
}
|
|
29
31
|
}
|
|
32
|
+
if (warnings.length > 0) {
|
|
33
|
+
lines.push('### Custom Template Warnings');
|
|
34
|
+
for (const w of warnings) {
|
|
35
|
+
lines.push(`- **${w.file}**: ${w.error}`);
|
|
36
|
+
}
|
|
37
|
+
lines.push('');
|
|
38
|
+
}
|
|
30
39
|
lines.push('---');
|
|
31
40
|
lines.push('Use `apply_template` with a template `id` to create a spec from a template.');
|
|
41
|
+
lines.push('Custom templates: place JSON files in `data/global/spec-templates/custom/`.');
|
|
32
42
|
return {
|
|
33
43
|
content: [{ type: 'text', text: lines.join('\n') }],
|
|
34
44
|
};
|
|
@@ -46,7 +56,7 @@ export function handleListTemplates(args) {
|
|
|
46
56
|
*/
|
|
47
57
|
export async function handleApplyTemplate(args) {
|
|
48
58
|
try {
|
|
49
|
-
const template =
|
|
59
|
+
const template = await findTemplateWithCustom(args.templateId);
|
|
50
60
|
if (template === undefined) {
|
|
51
61
|
return {
|
|
52
62
|
content: [
|
|
@@ -70,7 +80,7 @@ export async function handleApplyTemplate(args) {
|
|
|
70
80
|
isError: true,
|
|
71
81
|
};
|
|
72
82
|
}
|
|
73
|
-
const rendered = renderTemplate(template, args.variables);
|
|
83
|
+
const rendered = renderTemplate(template, args.variables, args.includeCriteria);
|
|
74
84
|
const outputDir = resolveOutputDir(args);
|
|
75
85
|
await mkdir(outputDir, { recursive: true });
|
|
76
86
|
const specPath = join(outputDir, 'HU.md');
|
|
@@ -82,11 +92,15 @@ export async function handleApplyTemplate(args) {
|
|
|
82
92
|
const result = {
|
|
83
93
|
templateId: template.id,
|
|
84
94
|
templateName: template.name,
|
|
95
|
+
complexityScore: template.complexityScore,
|
|
85
96
|
specPath,
|
|
86
97
|
fichaTecnicaPath,
|
|
87
98
|
progressPath,
|
|
88
99
|
variablesApplied: args.variables.length,
|
|
100
|
+
criteriaIncluded: rendered.criteriaIncluded,
|
|
101
|
+
criteriaTotal: rendered.criteriaTotal,
|
|
89
102
|
missingRequired: [],
|
|
103
|
+
warnings: rendered.warnings,
|
|
90
104
|
message: buildSuccessMessage(template.name, outputDir),
|
|
91
105
|
};
|
|
92
106
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-templates.js","sourceRoot":"","sources":["../../src/tools/spec-templates.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,OAAO,EACL,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"spec-templates.js","sourceRoot":"","sources":["../../src/tools/spec-templates.ts"],"names":[],"mappings":"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"}
|
package/dist/types/ci.d.ts
CHANGED
|
@@ -102,4 +102,55 @@ export interface GenerateCIInput {
|
|
|
102
102
|
javaVersion?: string;
|
|
103
103
|
workflowName?: string;
|
|
104
104
|
}
|
|
105
|
+
/** Severity threshold for drift detection in CI */
|
|
106
|
+
export type CISeverityThreshold = 'critical' | 'warning' | 'info';
|
|
107
|
+
/** Configuration for .planu.yml file */
|
|
108
|
+
export interface PlanuCIConfig {
|
|
109
|
+
specs: {
|
|
110
|
+
directory: string;
|
|
111
|
+
include?: string[];
|
|
112
|
+
exclude?: string[];
|
|
113
|
+
};
|
|
114
|
+
ci: {
|
|
115
|
+
failOnDrift: boolean;
|
|
116
|
+
severityThreshold: CISeverityThreshold;
|
|
117
|
+
postComment: boolean;
|
|
118
|
+
badge: boolean;
|
|
119
|
+
};
|
|
120
|
+
license?: {
|
|
121
|
+
key: string;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/** Input for generating a planu-check CI workflow */
|
|
125
|
+
export interface GeneratePlanuCIInput {
|
|
126
|
+
projectId: string;
|
|
127
|
+
specsDir?: string;
|
|
128
|
+
detectDrift?: boolean;
|
|
129
|
+
failOnDrift?: boolean;
|
|
130
|
+
severityThreshold?: CISeverityThreshold;
|
|
131
|
+
postComment?: boolean;
|
|
132
|
+
badge?: boolean;
|
|
133
|
+
workingDirectory?: string;
|
|
134
|
+
}
|
|
135
|
+
/** Result of generating a planu-check CI workflow */
|
|
136
|
+
export interface GeneratePlanuCIResult {
|
|
137
|
+
workflowYaml: string;
|
|
138
|
+
workflowPath: string;
|
|
139
|
+
planuConfigYaml: string;
|
|
140
|
+
badgeMarkdown: string;
|
|
141
|
+
features: PlanuCIFeature[];
|
|
142
|
+
}
|
|
143
|
+
/** Features included in the generated planu CI workflow */
|
|
144
|
+
export type PlanuCIFeature = 'validate' | 'detect-drift' | 'pr-comment' | 'fail-on-drift' | 'badge' | 'planu-config';
|
|
145
|
+
/** Options for generating a .planu.yml config file */
|
|
146
|
+
export interface PlanuConfigOptions {
|
|
147
|
+
specsDir: string;
|
|
148
|
+
failOnDrift: boolean;
|
|
149
|
+
severityThreshold: CISeverityThreshold;
|
|
150
|
+
postComment: boolean;
|
|
151
|
+
badge: boolean;
|
|
152
|
+
include?: string[];
|
|
153
|
+
exclude?: string[];
|
|
154
|
+
licenseKeyRef?: string;
|
|
155
|
+
}
|
|
105
156
|
//# sourceMappingURL=ci.d.ts.map
|
package/dist/types/ci.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/types/ci.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/types/ci.ts"],"names":[],"mappings":"AAEA,sDAAsD;AACtD,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,IAAI,GACJ,MAAM,GACN,MAAM,GACN,QAAQ,GACR,MAAM,GACN,KAAK,GACL,QAAQ,GACR,MAAM,GACN,SAAS,CAAC;AAEd,8CAA8C;AAC9C,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/C,sDAAsD;AACtD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7D,oCAAoC;AACpC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,cAAc,GAAG,mBAAmB,GAAG,UAAU,CAAC;AAExF,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,+BAA+B;AAC/B,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,2BAA2B;AAC3B,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,+BAA+B;AAC/B,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,6BAA6B;AAC7B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;CAC7D;AAED,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gCAAgC;AAChC,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,gDAAgD;AAChD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,qDAAqD;AACrD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC7B;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,WAAW,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,WAAW,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,YAAY,EAAE,cAAc,CAAC;CAC9B;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAElE,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,EAAE,EAAE;QACF,WAAW,EAAE,OAAO,CAAC;QACrB,iBAAiB,EAAE,mBAAmB,CAAC;QACvC,WAAW,EAAE,OAAO,CAAC;QACrB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qDAAqD;AACrD,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,cAAc,GACd,YAAY,GACZ,eAAe,GACf,OAAO,GACP,cAAc,CAAC;AAEnB,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import type { SupportedLocale, ExperienceLevel, DatabaseEngine, DatabaseCategory, ArchitecturePattern, Difficulty, ExecutionMode } from '../common.js';
|
|
1
|
+
import type { AgentPlatform, SupportedLocale, ExperienceLevel, DatabaseEngine, DatabaseCategory, ArchitecturePattern, Difficulty, ExecutionMode } from '../common.js';
|
|
2
2
|
import type { Estimation, Actuals } from '../estimation.js';
|
|
3
|
-
import type { EnvSetupGuide, LintingAnalysis } from '../env.js';
|
|
3
|
+
import type { EnvSetupGuide, LintingAnalysis, BeginnerEnvStep } from '../env.js';
|
|
4
4
|
import type { ApiContract, AdvancedTestingDetectionResult } from '../testing.js';
|
|
5
|
-
import type { McpServerInfo } from '../mcp.js';
|
|
6
|
-
import type { QualityProfile } from '../analysis.js';
|
|
5
|
+
import type { McpServerInfo, RecommendedSkill } from '../mcp.js';
|
|
6
|
+
import type { QualityProfile, QualityRule } from '../analysis.js';
|
|
7
|
+
import type { ArchitecturePatternInfo, DddConfig, AgileProcessDetection } from '../architecture.js';
|
|
8
|
+
import type { ProjectPrivacyConfig } from '../privacy.js';
|
|
9
|
+
import type { OrchestratorInfo, ComposeMultiplatformInfo, ProjectCategory } from './platform-specialty.js';
|
|
7
10
|
import type { OtelDetectionResult } from '../analysis-detection.js';
|
|
8
11
|
import type { LlmDetectionResult } from '../llm-security.js';
|
|
9
12
|
import type { SupplyChainReport } from '../supply-chain.js';
|
|
@@ -13,7 +16,6 @@ import type { HypermediaFramework, TurboSubtype, RenderingMode, BuildToolDetecti
|
|
|
13
16
|
import type { EdgeDbDetectionResult } from '../edge-db.js';
|
|
14
17
|
import type { AiNativeDetectionResult } from '../ai-native.js';
|
|
15
18
|
import type { MobilePlatform, MobileFramework, MobileArchPattern, MobilePackageManager } from './platform-mobile.js';
|
|
16
|
-
import type { ProjectCategory } from './platform-specialty.js';
|
|
17
19
|
import type { DetectedLibraries } from './library-groups.js';
|
|
18
20
|
export type { DetectedLibraries };
|
|
19
21
|
export type AgentFramework = 'claude-sdk' | 'crewai' | 'langgraph' | 'vercel-ai' | 'mastra' | 'autogen' | 'semantic-kernel' | 'openai-assistants';
|
|
@@ -238,4 +240,43 @@ export interface PlanuConfig {
|
|
|
238
240
|
createdAt: string;
|
|
239
241
|
updatedAt: string;
|
|
240
242
|
}
|
|
243
|
+
export interface GeneratedRulesInfo {
|
|
244
|
+
rulesFile: {
|
|
245
|
+
path: string;
|
|
246
|
+
content: string;
|
|
247
|
+
};
|
|
248
|
+
additionalFiles: {
|
|
249
|
+
path: string;
|
|
250
|
+
content: string;
|
|
251
|
+
}[];
|
|
252
|
+
}
|
|
253
|
+
export interface InitProjectResultInput {
|
|
254
|
+
projectId: string;
|
|
255
|
+
projectPath: string;
|
|
256
|
+
isUpdate: boolean;
|
|
257
|
+
knowledge: ProjectKnowledge;
|
|
258
|
+
claudeMdRules: QualityRule[];
|
|
259
|
+
completeness: ProjectCompleteness;
|
|
260
|
+
modernPatterns: ArchitecturePatternInfo[];
|
|
261
|
+
dddConfig: DddConfig;
|
|
262
|
+
agileDetection: AgileProcessDetection;
|
|
263
|
+
orchestratorInfo: OrchestratorInfo;
|
|
264
|
+
composeMultiplatform: ComposeMultiplatformInfo;
|
|
265
|
+
privacyConfig: ProjectPrivacyConfig;
|
|
266
|
+
envExampleGenerated: number | null;
|
|
267
|
+
beginnerEnvGuide: BeginnerEnvStep[] | null;
|
|
268
|
+
contextRequestPrompt: string | null;
|
|
269
|
+
missingAreas: string[];
|
|
270
|
+
recommendedSkills: RecommendedSkill[];
|
|
271
|
+
platform: AgentPlatform;
|
|
272
|
+
generatedRules: GeneratedRulesInfo;
|
|
273
|
+
rulesWritten: boolean;
|
|
274
|
+
additionalFilesWritten: string[];
|
|
275
|
+
planuConfigGenerated: boolean;
|
|
276
|
+
planuConfigPath: string;
|
|
277
|
+
migrationResult: {
|
|
278
|
+
migratedCount: number;
|
|
279
|
+
errors: string[];
|
|
280
|
+
} | null;
|
|
281
|
+
}
|
|
241
282
|
//# sourceMappingURL=core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/types/project/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACd,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/types/project/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
/** Category of a spec template (maps to common feature types across all stacks). */
|
|
2
|
-
export type TemplateCategory = 'auth' | 'crud' | 'api' | 'ui' | 'infra' | 'testing' | 'integration' | 'data' | 'security' | 'performance';
|
|
2
|
+
export type TemplateCategory = 'auth' | 'crud' | 'api' | 'ui' | 'infra' | 'testing' | 'integration' | 'data' | 'security' | 'performance' | 'industry';
|
|
3
|
+
/** Template complexity score: S (<16h), M (16-40h), L (40-80h), XL (>80h). */
|
|
4
|
+
export type TemplateComplexity = 'S' | 'M' | 'L' | 'XL';
|
|
5
|
+
/** Industry subcategory for industry templates. */
|
|
6
|
+
export type IndustrySubcategory = 'fintech' | 'healthtech' | 'ecommerce' | 'saas';
|
|
7
|
+
/** Base estimation range attached to a template. */
|
|
8
|
+
export interface EstimationBase {
|
|
9
|
+
/** Minimum hours estimate. */
|
|
10
|
+
hoursMin: number;
|
|
11
|
+
/** Maximum hours estimate. */
|
|
12
|
+
hoursMax: number;
|
|
13
|
+
/** Additional notes about the estimation. */
|
|
14
|
+
notes: string;
|
|
15
|
+
}
|
|
16
|
+
/** A named criterion in a template, supporting partial selection. */
|
|
17
|
+
export interface TemplateCriterion {
|
|
18
|
+
/** Criterion identifier (e.g. "AC-01"). */
|
|
19
|
+
id: string;
|
|
20
|
+
/** Short title of the criterion. */
|
|
21
|
+
title: string;
|
|
22
|
+
/** Whether this criterion is required and cannot be omitted. */
|
|
23
|
+
required: boolean;
|
|
24
|
+
}
|
|
3
25
|
/** A variable placeholder used in template content. */
|
|
4
26
|
export interface TemplateVariable {
|
|
5
27
|
/** Key name used in the template (e.g. "EntityName"). */
|
|
@@ -26,10 +48,18 @@ export interface SpecTemplateEntry {
|
|
|
26
48
|
name: string;
|
|
27
49
|
/** Category of the template. */
|
|
28
50
|
category: TemplateCategory;
|
|
51
|
+
/** Industry subcategory (only for industry templates). */
|
|
52
|
+
subcategory?: IndustrySubcategory;
|
|
29
53
|
/** Short description of what this template covers. */
|
|
30
54
|
description: string;
|
|
31
55
|
/** Language-agnostic tags for discoverability. */
|
|
32
56
|
tags: string[];
|
|
57
|
+
/** Complexity score: S (<16h), M (16-40h), L (40-80h), XL (>80h). */
|
|
58
|
+
complexityScore: TemplateComplexity;
|
|
59
|
+
/** Base estimation range for this template. */
|
|
60
|
+
estimationBase: EstimationBase;
|
|
61
|
+
/** Structured criteria list for partial selection support. */
|
|
62
|
+
criteria: TemplateCriterion[];
|
|
33
63
|
/** Variables that users need to provide when applying the template. */
|
|
34
64
|
variables: TemplateVariable[];
|
|
35
65
|
/** Template content for HU.md (Handlebars-style {{VariableKey}} placeholders). */
|
|
@@ -50,8 +80,11 @@ export interface TemplateListItem {
|
|
|
50
80
|
id: string;
|
|
51
81
|
name: string;
|
|
52
82
|
category: TemplateCategory;
|
|
83
|
+
subcategory?: IndustrySubcategory;
|
|
53
84
|
description: string;
|
|
54
85
|
tags: string[];
|
|
86
|
+
complexityScore: TemplateComplexity;
|
|
87
|
+
criteriaCount: number;
|
|
55
88
|
variableCount: number;
|
|
56
89
|
requiredVariableCount: number;
|
|
57
90
|
}
|
|
@@ -59,6 +92,7 @@ export interface TemplateListItem {
|
|
|
59
92
|
export interface ListTemplatesInput {
|
|
60
93
|
category?: TemplateCategory;
|
|
61
94
|
search?: string;
|
|
95
|
+
complexityScore?: TemplateComplexity;
|
|
62
96
|
}
|
|
63
97
|
/** A resolved variable value provided by the user when applying a template. */
|
|
64
98
|
export interface TemplateVariableValue {
|
|
@@ -72,16 +106,32 @@ export interface ApplyTemplateInput {
|
|
|
72
106
|
variables: TemplateVariableValue[];
|
|
73
107
|
feature?: string;
|
|
74
108
|
outputDir?: string;
|
|
109
|
+
/** Optional list of criteria IDs to include (e.g. ["AC-01", "AC-03"]). Omit to include all. */
|
|
110
|
+
includeCriteria?: string[];
|
|
75
111
|
}
|
|
76
112
|
/** Result returned by the apply_template tool. */
|
|
77
113
|
export interface ApplyTemplateResult {
|
|
78
114
|
templateId: string;
|
|
79
115
|
templateName: string;
|
|
116
|
+
complexityScore: TemplateComplexity;
|
|
80
117
|
specPath: string;
|
|
81
118
|
fichaTecnicaPath: string;
|
|
82
119
|
progressPath: string;
|
|
83
120
|
variablesApplied: number;
|
|
121
|
+
criteriaIncluded: number;
|
|
122
|
+
criteriaTotal: number;
|
|
84
123
|
missingRequired: string[];
|
|
124
|
+
warnings: string[];
|
|
85
125
|
message: string;
|
|
86
126
|
}
|
|
127
|
+
/** Warning entry for a malformed custom template. */
|
|
128
|
+
export interface CustomTemplateWarning {
|
|
129
|
+
file: string;
|
|
130
|
+
error: string;
|
|
131
|
+
}
|
|
132
|
+
/** Result from loading custom templates. */
|
|
133
|
+
export interface CustomTemplateLoadResult {
|
|
134
|
+
templates: SpecTemplateEntry[];
|
|
135
|
+
warnings: CustomTemplateWarning[];
|
|
136
|
+
}
|
|
87
137
|
//# sourceMappingURL=spec-templates.d.ts.map
|