@planu/cli 1.0.7 → 1.0.9
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/engine/challenge-prioritizer.d.ts +17 -0
- package/dist/engine/challenge-prioritizer.d.ts.map +1 -0
- package/dist/engine/challenge-prioritizer.js +77 -0
- package/dist/engine/challenge-prioritizer.js.map +1 -0
- package/dist/engine/lifecycle-hints.d.ts +12 -0
- package/dist/engine/lifecycle-hints.d.ts.map +1 -0
- package/dist/engine/lifecycle-hints.js +79 -0
- package/dist/engine/lifecycle-hints.js.map +1 -0
- package/dist/engine/pdf/browser-finder.d.ts.map +1 -1
- package/dist/engine/pdf/browser-finder.js +61 -2
- package/dist/engine/pdf/browser-finder.js.map +1 -1
- package/dist/engine/pdf/html-to-pdf.d.ts.map +1 -1
- package/dist/engine/pdf/html-to-pdf.js +33 -8
- package/dist/engine/pdf/html-to-pdf.js.map +1 -1
- package/dist/tools/challenge-spec.d.ts.map +1 -1
- package/dist/tools/challenge-spec.js +13 -1
- package/dist/tools/challenge-spec.js.map +1 -1
- package/dist/tools/clarify-requirements/multiple-choice.d.ts +30 -0
- package/dist/tools/clarify-requirements/multiple-choice.d.ts.map +1 -0
- package/dist/tools/clarify-requirements/multiple-choice.js +292 -0
- package/dist/tools/clarify-requirements/multiple-choice.js.map +1 -0
- package/dist/tools/clarify-requirements.d.ts.map +1 -1
- package/dist/tools/clarify-requirements.js +43 -4
- package/dist/tools/clarify-requirements.js.map +1 -1
- package/dist/tools/export-pdf.d.ts.map +1 -1
- package/dist/tools/export-pdf.js +2 -8
- package/dist/tools/export-pdf.js.map +1 -1
- package/dist/tools/resolve-project-id.d.ts +46 -2
- package/dist/tools/resolve-project-id.d.ts.map +1 -1
- package/dist/tools/resolve-project-id.js +78 -2
- package/dist/tools/resolve-project-id.js.map +1 -1
- package/dist/tools/resolve-project-path.d.ts +21 -0
- package/dist/tools/resolve-project-path.d.ts.map +1 -0
- package/dist/tools/resolve-project-path.js +117 -0
- package/dist/tools/resolve-project-path.js.map +1 -0
- package/dist/tools/update-status/response-builder.d.ts.map +1 -1
- package/dist/tools/update-status/response-builder.js +20 -1
- package/dist/tools/update-status/response-builder.js.map +1 -1
- package/dist/types/analysis.d.ts +7 -0
- package/dist/types/analysis.d.ts.map +1 -1
- package/dist/types/common/primitives.d.ts +14 -0
- package/dist/types/common/primitives.d.ts.map +1 -1
- package/dist/types/cross-repo-search.d.ts +29 -0
- package/dist/types/cross-repo-search.d.ts.map +1 -1
- package/dist/types/spec/clarification.d.ts +8 -0
- package/dist/types/spec/clarification.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
// tools/resolve-project-id.ts — Shared
|
|
1
|
+
// tools/resolve-project-id.ts — Shared helpers for project resolution
|
|
2
|
+
//
|
|
3
|
+
// SPEC-304: resolveProjectId (sync, fast — for callers that always have a path/id)
|
|
4
|
+
// SPEC-341: resolveProjectIdOrAutoDetect (async — zero-config auto-detection)
|
|
5
|
+
// buildMissingProjectError (async — includes registeredProjects list)
|
|
2
6
|
import { hashProjectPath } from '../storage/base-store.js';
|
|
7
|
+
import { resolveProjectPath } from './resolve-project-path.js';
|
|
3
8
|
/**
|
|
4
9
|
* Resolve projectId from either projectId or projectPath.
|
|
5
10
|
* projectPath takes precedence when both are provided.
|
|
6
11
|
* Returns null when neither is provided.
|
|
12
|
+
*
|
|
13
|
+
* This is the SYNC fast path for callers that always have an explicit param.
|
|
14
|
+
* For zero-config auto-detection use resolveProjectIdOrAutoDetect().
|
|
7
15
|
*/
|
|
8
16
|
export function resolveProjectId(params) {
|
|
9
17
|
if (params.projectPath?.trim()) {
|
|
@@ -14,7 +22,75 @@ export function resolveProjectId(params) {
|
|
|
14
22
|
}
|
|
15
23
|
return null;
|
|
16
24
|
}
|
|
17
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Resolve a projectId with full zero-config auto-detection (SPEC-341).
|
|
27
|
+
*
|
|
28
|
+
* Falls back to PLANU_PROJECT_PATH env var and the global project registry
|
|
29
|
+
* when neither projectId nor projectPath is passed explicitly.
|
|
30
|
+
*
|
|
31
|
+
* Returns a discriminated union so callers can early-return on failure:
|
|
32
|
+
*
|
|
33
|
+
* ```ts
|
|
34
|
+
* const resolved = await resolveProjectIdOrAutoDetect(params);
|
|
35
|
+
* if (!resolved.ok) return resolved.errorResult;
|
|
36
|
+
* const { projectId, projectPath, autoDetected } = resolved;
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export async function resolveProjectIdOrAutoDetect(params) {
|
|
40
|
+
const result = await resolveProjectPath(params);
|
|
41
|
+
switch (result.kind) {
|
|
42
|
+
case 'resolved':
|
|
43
|
+
return {
|
|
44
|
+
ok: true,
|
|
45
|
+
projectId: result.projectId,
|
|
46
|
+
projectPath: result.projectPath,
|
|
47
|
+
autoDetected: result.autoDetected,
|
|
48
|
+
};
|
|
49
|
+
case 'ambiguous':
|
|
50
|
+
return {
|
|
51
|
+
ok: false,
|
|
52
|
+
errorResult: buildAmbiguousProjectError(result.registeredProjects),
|
|
53
|
+
};
|
|
54
|
+
case 'missing':
|
|
55
|
+
return {
|
|
56
|
+
ok: false,
|
|
57
|
+
errorResult: buildMissingProjectError(result.registeredProjects),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// ---------------------------------------------------------------------------
|
|
62
|
+
// Error builders
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
/**
|
|
65
|
+
* Build a ToolResult error for the "missing project" case.
|
|
66
|
+
* Includes a registeredProjects[] list so the user can see their options.
|
|
67
|
+
*/
|
|
68
|
+
export function buildMissingProjectError(registeredProjects) {
|
|
69
|
+
const hint = 'Provide projectPath to identify the project. Example: { "projectPath": "/path/to/your/project" }';
|
|
70
|
+
const content = [{ type: 'text', text: hint }];
|
|
71
|
+
return {
|
|
72
|
+
content,
|
|
73
|
+
isError: true,
|
|
74
|
+
registeredProjects,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Build a ToolResult error for the "ambiguous project" case (multiple registered).
|
|
79
|
+
* Lists all known projects with their id + path so the user can pick one.
|
|
80
|
+
*/
|
|
81
|
+
export function buildAmbiguousProjectError(registeredProjects) {
|
|
82
|
+
const lines = registeredProjects.map((p) => ` • ${p.name} path: "${p.path}" id: "${p.id}"`);
|
|
83
|
+
const text = `Multiple projects are registered. Pass projectPath or projectId to select one:\n` +
|
|
84
|
+
lines.join('\n');
|
|
85
|
+
return {
|
|
86
|
+
content: [{ type: 'text', text }],
|
|
87
|
+
isError: true,
|
|
88
|
+
registeredProjects,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// Static error result for backwards-compatibility.
|
|
92
|
+
// Prefer buildMissingProjectError() when registeredProjects data is available.
|
|
93
|
+
// New code should use resolveProjectIdOrAutoDetect() + its built-in error instead.
|
|
18
94
|
export const missingProjectIdError = {
|
|
19
95
|
content: [
|
|
20
96
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-project-id.js","sourceRoot":"","sources":["../../src/tools/resolve-project-id.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"resolve-project-id.js","sourceRoot":"","sources":["../../src/tools/resolve-project-id.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,mFAAmF;AACnF,8EAA8E;AAC9E,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAGhC;IACC,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;QAC/B,OAAO,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAeD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,MAGlD;IACC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAEhD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,UAAU;YACb,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC;QAEJ,KAAK,WAAW;YACd,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,0BAA0B,CAAC,MAAM,CAAC,kBAAkB,CAAC;aACnE,CAAC;QAEJ,KAAK,SAAS;YACZ,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,wBAAwB,CAAC,MAAM,CAAC,kBAAkB,CAAC;aACjE,CAAC;IACN,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,kBAA8C;IAE9C,MAAM,IAAI,GACR,kGAAkG,CAAC;IACrG,MAAM,OAAO,GAA0B,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,OAAO;QACL,OAAO;QACP,OAAO,EAAE,IAAI;QACb,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,kBAA8C;IAE9C,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/F,MAAM,IAAI,GACR,kFAAkF;QAClF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI;QACb,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,+EAA+E;AAC/E,mFAAmF;AACnF,MAAM,CAAC,MAAM,qBAAqB,GAAe;IAC/C,OAAO,EAAE;QACP;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,+GAA+G;SACtH;KACF;IACD,OAAO,EAAE,IAAI;CACd,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ProjectAutoDetectResult } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Attempt to resolve a projectId + projectPath from the provided inputs.
|
|
4
|
+
*
|
|
5
|
+
* When the caller passes `projectPath` or `projectId` explicitly, this
|
|
6
|
+
* function returns immediately without hitting the filesystem.
|
|
7
|
+
*
|
|
8
|
+
* When neither is provided it falls back to:
|
|
9
|
+
* 1. `PLANU_PROJECT_PATH` env var
|
|
10
|
+
* 2. Single registered project in the global registry
|
|
11
|
+
* 3. Ambiguous / missing error with the full registered-project list
|
|
12
|
+
*
|
|
13
|
+
* @param params.projectId - Optional explicit project hash
|
|
14
|
+
* @param params.projectPath - Optional explicit absolute path
|
|
15
|
+
* @returns ProjectAutoDetectResult discriminated union
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveProjectPath(params: {
|
|
18
|
+
projectId?: string;
|
|
19
|
+
projectPath?: string;
|
|
20
|
+
}): Promise<ProjectAutoDetectResult>;
|
|
21
|
+
//# sourceMappingURL=resolve-project-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-project-path.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-project-path.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,uBAAuB,EAA4B,MAAM,mBAAmB,CAAC;AA8B3F;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAqEnC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
// tools/resolve-project-path.ts — SPEC-341: Zero-config auto-detect projectPath.
|
|
2
|
+
//
|
|
3
|
+
// Priority order:
|
|
4
|
+
// 1. Explicit projectPath or projectId passed by the caller (fastest path, no I/O)
|
|
5
|
+
// 2. PLANU_PROJECT_PATH environment variable
|
|
6
|
+
// 3. Single registered project in the global registry (auto-detect)
|
|
7
|
+
// 4. Multiple registered projects → ambiguous error with list
|
|
8
|
+
// 5. No registered projects → missing error
|
|
9
|
+
//
|
|
10
|
+
// This module is intentionally side-effect-free: it reads the global registry
|
|
11
|
+
// and the env var but never mutates any state.
|
|
12
|
+
import { hashProjectPath } from '../storage/base-store.js';
|
|
13
|
+
import { getProjects } from '../storage/global-projects-store.js';
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// Helpers
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
/**
|
|
18
|
+
* Derive a human-readable project name from its absolute path.
|
|
19
|
+
* Uses the last non-empty path segment (the directory name).
|
|
20
|
+
*/
|
|
21
|
+
function projectNameFromPath(projectPath) {
|
|
22
|
+
const parts = projectPath.replace(/\\/g, '/').split('/').filter(Boolean);
|
|
23
|
+
return parts[parts.length - 1] ?? projectPath;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Convert a RegisteredProject entry into a compact summary for error responses.
|
|
27
|
+
*/
|
|
28
|
+
function toSummary(p) {
|
|
29
|
+
return {
|
|
30
|
+
id: p.hash,
|
|
31
|
+
path: p.path,
|
|
32
|
+
name: projectNameFromPath(p.path),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
// Public API
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
/**
|
|
39
|
+
* Attempt to resolve a projectId + projectPath from the provided inputs.
|
|
40
|
+
*
|
|
41
|
+
* When the caller passes `projectPath` or `projectId` explicitly, this
|
|
42
|
+
* function returns immediately without hitting the filesystem.
|
|
43
|
+
*
|
|
44
|
+
* When neither is provided it falls back to:
|
|
45
|
+
* 1. `PLANU_PROJECT_PATH` env var
|
|
46
|
+
* 2. Single registered project in the global registry
|
|
47
|
+
* 3. Ambiguous / missing error with the full registered-project list
|
|
48
|
+
*
|
|
49
|
+
* @param params.projectId - Optional explicit project hash
|
|
50
|
+
* @param params.projectPath - Optional explicit absolute path
|
|
51
|
+
* @returns ProjectAutoDetectResult discriminated union
|
|
52
|
+
*/
|
|
53
|
+
export async function resolveProjectPath(params) {
|
|
54
|
+
// 1. Explicit projectPath — highest priority
|
|
55
|
+
const explicitPath = params.projectPath?.trim();
|
|
56
|
+
if (explicitPath) {
|
|
57
|
+
return {
|
|
58
|
+
kind: 'resolved',
|
|
59
|
+
projectId: hashProjectPath(explicitPath),
|
|
60
|
+
projectPath: explicitPath,
|
|
61
|
+
autoDetected: false,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// 2. Explicit projectId — second priority
|
|
65
|
+
const explicitId = params.projectId?.trim();
|
|
66
|
+
if (explicitId) {
|
|
67
|
+
// We only have the hash, not the original path.
|
|
68
|
+
// Return a resolved result with an empty projectPath so callers that only
|
|
69
|
+
// need the projectId can still proceed. Callers that need projectPath will
|
|
70
|
+
// fall back to reading knowledge from the store (existing behavior).
|
|
71
|
+
return {
|
|
72
|
+
kind: 'resolved',
|
|
73
|
+
projectId: explicitId,
|
|
74
|
+
projectPath: '',
|
|
75
|
+
autoDetected: false,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
// 3. PLANU_PROJECT_PATH environment variable
|
|
79
|
+
const envPath = process.env.PLANU_PROJECT_PATH?.trim();
|
|
80
|
+
if (envPath) {
|
|
81
|
+
return {
|
|
82
|
+
kind: 'resolved',
|
|
83
|
+
projectId: hashProjectPath(envPath),
|
|
84
|
+
projectPath: envPath,
|
|
85
|
+
autoDetected: true,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// 4. Global registry lookup
|
|
89
|
+
let projects;
|
|
90
|
+
try {
|
|
91
|
+
projects = await getProjects();
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// Registry unreadable → treat as missing
|
|
95
|
+
projects = [];
|
|
96
|
+
}
|
|
97
|
+
if (projects.length === 1) {
|
|
98
|
+
// Exactly one registered project → auto-use it
|
|
99
|
+
const only = projects[0];
|
|
100
|
+
/* v8 ignore next 3 */
|
|
101
|
+
if (only === undefined) {
|
|
102
|
+
return { kind: 'missing', registeredProjects: [] };
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
kind: 'resolved',
|
|
106
|
+
projectId: only.hash,
|
|
107
|
+
projectPath: only.path,
|
|
108
|
+
autoDetected: true,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const summaries = projects.map(toSummary);
|
|
112
|
+
if (projects.length > 1) {
|
|
113
|
+
return { kind: 'ambiguous', registeredProjects: summaries };
|
|
114
|
+
}
|
|
115
|
+
return { kind: 'missing', registeredProjects: [] };
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=resolve-project-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-project-path.js","sourceRoot":"","sources":["../../src/tools/resolve-project-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-builder.d.ts","sourceRoot":"","sources":["../../../src/tools/update-status/response-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"response-builder.d.ts","sourceRoot":"","sources":["../../../src/tools/update-status/response-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAA4B,MAAM,sBAAsB,CAAC;AAK7F,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAOpD,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,UAAU,EACzB,SAAS,EAAE,UAAU,EACrB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,EACtC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B,UAAU,CAgGZ"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { t } from '../../i18n/index.js';
|
|
2
2
|
import { formatSuccess, addNextSteps } from '../response-helpers.js';
|
|
3
|
+
import { buildNextAction, buildLifecycleMap } from '../../engine/lifecycle-hints.js';
|
|
3
4
|
export const STATUS_EMOJIS = {
|
|
4
5
|
draft: '📝',
|
|
5
6
|
review: '🔍',
|
|
@@ -58,6 +59,11 @@ export function buildStatusResponse(result, specId, currentStatus, newStatus, re
|
|
|
58
59
|
if (recordActualHint) {
|
|
59
60
|
lines.push(`\n💡 ${recordActualHint}`);
|
|
60
61
|
}
|
|
62
|
+
// SPEC-340: nextAction and lifecycleMap
|
|
63
|
+
const nextAction = buildNextAction(newStatus);
|
|
64
|
+
const lifecycleMap = buildLifecycleMap(newStatus);
|
|
65
|
+
lines.push(buildLifecycleMapLine(lifecycleMap));
|
|
66
|
+
lines.push(`\n**Next step:** ${nextAction.step}\n> ${nextAction.prompt}\n> \`${nextAction.suggestedCommand}\` — ${nextAction.whenToDoIt}`);
|
|
61
67
|
const allNextSteps = [...(r.implementingSuggestions ?? [])];
|
|
62
68
|
const baseText = formatSuccess(t('tools.response.statusTitle'), lines.join(''));
|
|
63
69
|
const withNextSteps = allNextSteps.length > 0 ? addNextSteps(baseText, allNextSteps) : baseText;
|
|
@@ -66,7 +72,20 @@ export function buildStatusResponse(result, specId, currentStatus, newStatus, re
|
|
|
66
72
|
: withNextSteps;
|
|
67
73
|
return {
|
|
68
74
|
content: [{ type: 'text', text: markdownText }],
|
|
69
|
-
structuredContent: result,
|
|
75
|
+
structuredContent: { ...result, nextAction, lifecycleMap },
|
|
70
76
|
};
|
|
71
77
|
}
|
|
78
|
+
/** Render a compact lifecycle map line showing current, next, and remaining steps */
|
|
79
|
+
function buildLifecycleMapLine(map) {
|
|
80
|
+
const parts = map.stages.map((stage) => {
|
|
81
|
+
if (stage === map.current) {
|
|
82
|
+
return `**[${stage}]**`;
|
|
83
|
+
}
|
|
84
|
+
if (map.remaining.includes(stage) || stage === map.next) {
|
|
85
|
+
return stage;
|
|
86
|
+
}
|
|
87
|
+
return `~~${stage}~~`;
|
|
88
|
+
});
|
|
89
|
+
return `\n📍 ${parts.join(' → ')}`;
|
|
90
|
+
}
|
|
72
91
|
//# sourceMappingURL=response-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-builder.js","sourceRoot":"","sources":["../../../src/tools/update-status/response-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"response-builder.js","sourceRoot":"","sources":["../../../src/tools/update-status/response-builder.ts"],"names":[],"mappings":"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"}
|
package/dist/types/analysis.d.ts
CHANGED
|
@@ -13,6 +13,13 @@ export interface FailureScenario {
|
|
|
13
13
|
requiredHandling: string;
|
|
14
14
|
dataConsistency: string;
|
|
15
15
|
userExperience: string;
|
|
16
|
+
/** Relevance score 0-100 relative to the spec's type and target. SPEC-338. */
|
|
17
|
+
relevanceScore?: number;
|
|
18
|
+
}
|
|
19
|
+
/** Top-3 prioritized scenarios for the spec. SPEC-338. */
|
|
20
|
+
export interface PrioritizedScenario extends FailureScenario {
|
|
21
|
+
relevanceScore: number;
|
|
22
|
+
rank: number;
|
|
16
23
|
}
|
|
17
24
|
export interface ConcurrencyAnalysis {
|
|
18
25
|
hotPaths: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/types/analysis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/types/analysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,4 +25,18 @@ export interface NodeError extends Error {
|
|
|
25
25
|
}
|
|
26
26
|
export type TemplateMap = Record<string, Record<string, unknown>>;
|
|
27
27
|
export type PricingMap = Record<string, Record<string, number>>;
|
|
28
|
+
/** SPEC-340: Guided next action after a status transition */
|
|
29
|
+
export interface NextAction {
|
|
30
|
+
step: string;
|
|
31
|
+
prompt: string;
|
|
32
|
+
suggestedCommand: string;
|
|
33
|
+
whenToDoIt: string;
|
|
34
|
+
}
|
|
35
|
+
/** SPEC-340: Lifecycle map showing position and remaining steps */
|
|
36
|
+
export interface LifecycleMap {
|
|
37
|
+
stages: SpecStatus[];
|
|
38
|
+
current: SpecStatus;
|
|
39
|
+
next: SpecStatus | null;
|
|
40
|
+
remaining: SpecStatus[];
|
|
41
|
+
}
|
|
28
42
|
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/types/common/primitives.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,MAAM,GAAG,WAAW,CAAC;AACjG,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;AAErE,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAKxD,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,UAAU,GACV,QAAQ,GACR,OAAO,GACP,MAAM,GACN,SAAS,GACT,OAAO,GACP,WAAW,CAAC;AAChB,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,GAAG,eAAe,CAAC;AACjF,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,SAAS,GACT,QAAQ,GACR,WAAW,GACX,gBAAgB,GAChB,UAAU,GACV,KAAK,GACL,SAAS,CAAC;AAEd,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAE5E,MAAM,MAAM,QAAQ,GAChB,cAAc,GACd,WAAW,GACX,eAAe,GACf,WAAW,GACX,WAAW,GACX,cAAc,GACd,YAAY,GACZ,aAAa,GACb,MAAM,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,CAAC;AAEjE,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/types/common/primitives.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,MAAM,GAAG,WAAW,CAAC;AACjG,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;AAErE,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAKxD,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,UAAU,GACV,QAAQ,GACR,OAAO,GACP,MAAM,GACN,SAAS,GACT,OAAO,GACP,WAAW,CAAC;AAChB,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,GAAG,eAAe,CAAC;AACjF,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,SAAS,GACT,QAAQ,GACR,WAAW,GACX,gBAAgB,GAChB,UAAU,GACV,KAAK,GACL,SAAS,CAAC;AAEd,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAE5E,MAAM,MAAM,QAAQ,GAChB,cAAc,GACd,WAAW,GACX,eAAe,GACf,WAAW,GACX,WAAW,GACX,cAAc,GACd,YAAY,GACZ,aAAa,GACb,MAAM,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,CAAC;AAEjE,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEhE,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB"}
|
|
@@ -93,6 +93,35 @@ export interface SpecSearchResponse {
|
|
|
93
93
|
total: number;
|
|
94
94
|
items: SpecSearchResult[];
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Compact summary of a registered project, returned in error responses
|
|
98
|
+
* when the caller did not provide projectId or projectPath.
|
|
99
|
+
*/
|
|
100
|
+
export interface RegisteredProjectSummary {
|
|
101
|
+
/** Deterministic SHA-256 hash (first 16 chars) — use as projectId */
|
|
102
|
+
id: string;
|
|
103
|
+
/** Absolute filesystem path to the project root */
|
|
104
|
+
path: string;
|
|
105
|
+
/** Project name derived from the last path segment */
|
|
106
|
+
name: string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Result of auto-detecting a project path.
|
|
110
|
+
* Discriminated union: resolved | ambiguous | missing.
|
|
111
|
+
*/
|
|
112
|
+
export type ProjectAutoDetectResult = {
|
|
113
|
+
kind: 'resolved';
|
|
114
|
+
projectId: string;
|
|
115
|
+
projectPath: string;
|
|
116
|
+
/** True when resolved via auto-detection (not passed explicitly) */
|
|
117
|
+
autoDetected: boolean;
|
|
118
|
+
} | {
|
|
119
|
+
kind: 'ambiguous';
|
|
120
|
+
registeredProjects: RegisteredProjectSummary[];
|
|
121
|
+
} | {
|
|
122
|
+
kind: 'missing';
|
|
123
|
+
registeredProjects: RegisteredProjectSummary[];
|
|
124
|
+
};
|
|
96
125
|
/**
|
|
97
126
|
* Per-project bundle: project identity + pre-loaded specs.
|
|
98
127
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-repo-search.d.ts","sourceRoot":"","sources":["../../src/types/cross-repo-search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf"}
|
|
1
|
+
{"version":3,"file":"cross-repo-search.d.ts","sourceRoot":"","sources":["../../src/types/cross-repo-search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAMD;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,YAAY,EAAE,OAAO,CAAC;CACvB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,kBAAkB,EAAE,wBAAwB,EAAE,CAAC;CAChD,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,kBAAkB,EAAE,wBAAwB,EAAE,CAAC;CAChD,CAAC;AAMN;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf"}
|
|
@@ -9,6 +9,10 @@ export interface ClarificationSession {
|
|
|
9
9
|
createdAt: string;
|
|
10
10
|
contradictions?: string[];
|
|
11
11
|
specReady?: boolean;
|
|
12
|
+
/** Present when all critical questions are answered — ready for create_spec. */
|
|
13
|
+
suggestedDescription?: string;
|
|
14
|
+
/** Indicates structured multiple-choice interview mode (SPEC-337). */
|
|
15
|
+
interviewMode?: 'multiple-choice';
|
|
12
16
|
}
|
|
13
17
|
export interface ClarificationQuestion {
|
|
14
18
|
id: string;
|
|
@@ -17,6 +21,10 @@ export interface ClarificationQuestion {
|
|
|
17
21
|
importance: 'critical' | 'helpful' | 'nice-to-have';
|
|
18
22
|
suggestedAnswer?: string;
|
|
19
23
|
suggestedAnswers?: string[];
|
|
24
|
+
/** Structured multiple-choice options (3-8 concrete choices + 'Other: ___'). SPEC-337. */
|
|
25
|
+
options?: string[];
|
|
26
|
+
/** True when this question was auto-answered via stack detection and skipped. SPEC-337. */
|
|
27
|
+
skipped?: boolean;
|
|
20
28
|
followUpIf?: Record<string, string>;
|
|
21
29
|
}
|
|
22
30
|
export interface DoRItem {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clarification.d.ts","sourceRoot":"","sources":["../../../src/types/spec/clarification.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"clarification.d.ts","sourceRoot":"","sources":["../../../src/types/spec/clarification.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planu/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"description": "Planu — MCP Server for Spec Driven Development. Manages specs, estimations, reverse engineering, and auto-learning across any language/framework.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|