@planu/cli 1.0.8 → 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.
Files changed (38) hide show
  1. package/dist/engine/challenge-prioritizer.d.ts +17 -0
  2. package/dist/engine/challenge-prioritizer.d.ts.map +1 -0
  3. package/dist/engine/challenge-prioritizer.js +77 -0
  4. package/dist/engine/challenge-prioritizer.js.map +1 -0
  5. package/dist/engine/lifecycle-hints.d.ts +12 -0
  6. package/dist/engine/lifecycle-hints.d.ts.map +1 -0
  7. package/dist/engine/lifecycle-hints.js +79 -0
  8. package/dist/engine/lifecycle-hints.js.map +1 -0
  9. package/dist/tools/challenge-spec.d.ts.map +1 -1
  10. package/dist/tools/challenge-spec.js +13 -1
  11. package/dist/tools/challenge-spec.js.map +1 -1
  12. package/dist/tools/clarify-requirements/multiple-choice.d.ts +30 -0
  13. package/dist/tools/clarify-requirements/multiple-choice.d.ts.map +1 -0
  14. package/dist/tools/clarify-requirements/multiple-choice.js +292 -0
  15. package/dist/tools/clarify-requirements/multiple-choice.js.map +1 -0
  16. package/dist/tools/clarify-requirements.d.ts.map +1 -1
  17. package/dist/tools/clarify-requirements.js +43 -4
  18. package/dist/tools/clarify-requirements.js.map +1 -1
  19. package/dist/tools/resolve-project-id.d.ts +46 -2
  20. package/dist/tools/resolve-project-id.d.ts.map +1 -1
  21. package/dist/tools/resolve-project-id.js +78 -2
  22. package/dist/tools/resolve-project-id.js.map +1 -1
  23. package/dist/tools/resolve-project-path.d.ts +21 -0
  24. package/dist/tools/resolve-project-path.d.ts.map +1 -0
  25. package/dist/tools/resolve-project-path.js +117 -0
  26. package/dist/tools/resolve-project-path.js.map +1 -0
  27. package/dist/tools/update-status/response-builder.d.ts.map +1 -1
  28. package/dist/tools/update-status/response-builder.js +20 -1
  29. package/dist/tools/update-status/response-builder.js.map +1 -1
  30. package/dist/types/analysis.d.ts +7 -0
  31. package/dist/types/analysis.d.ts.map +1 -1
  32. package/dist/types/common/primitives.d.ts +14 -0
  33. package/dist/types/common/primitives.d.ts.map +1 -1
  34. package/dist/types/cross-repo-search.d.ts +29 -0
  35. package/dist/types/cross-repo-search.d.ts.map +1 -1
  36. package/dist/types/spec/clarification.d.ts +8 -0
  37. package/dist/types/spec/clarification.d.ts.map +1 -1
  38. package/package.json +1 -1
@@ -3,6 +3,7 @@ import { knowledgeStore } from '../storage/index.js';
3
3
  import { randomUUID } from 'node:crypto';
4
4
  import { isShortTopic, generateMetaQuestions, detectContradictions, buildSuggestedAnswers, } from './clarify-requirements/questions.js';
5
5
  import { generateQuestions } from './clarify-requirements/questions-context.js';
6
+ import { detectStack, shouldSkipQuestion, attachOptions, buildSuggestedDescription, } from './clarify-requirements/multiple-choice.js';
6
7
  /** Resume an existing clarification session with new answers. */
7
8
  async function handleResumeSession(projectId, sessionId, newAnswers, knowledge) {
8
9
  const existing = await knowledgeStore.getClarification(projectId, sessionId).catch(() => null);
@@ -32,6 +33,9 @@ async function handleResumeSession(projectId, sessionId, newAnswers, knowledge)
32
33
  ...q,
33
34
  suggestedAnswers: q.suggestedAnswers ?? buildSuggestedAnswers(q, knowledge),
34
35
  }));
36
+ const suggestedDescription = specReady
37
+ ? buildSuggestedDescription(existing.topic, mergedAnswers, enriched)
38
+ : undefined;
35
39
  const updated = {
36
40
  ...existing,
37
41
  questions: enriched,
@@ -39,11 +43,14 @@ async function handleResumeSession(projectId, sessionId, newAnswers, knowledge)
39
43
  isComplete: specReady,
40
44
  contradictions: contradictions.length > 0 ? contradictions : undefined,
41
45
  specReady,
46
+ interviewMode: 'multiple-choice',
47
+ ...(suggestedDescription !== undefined ? { suggestedDescription } : {}),
42
48
  };
43
49
  await knowledgeStore.addClarification(projectId, updated);
44
50
  const result = {
45
51
  sessionId: existing.id,
46
52
  topic: existing.topic,
53
+ interviewMode: 'multiple-choice',
47
54
  questionsCount: existing.questions.length,
48
55
  questions: enriched.map((q) => ({
49
56
  id: q.id,
@@ -51,9 +58,12 @@ async function handleResumeSession(projectId, sessionId, newAnswers, knowledge)
51
58
  category: q.category,
52
59
  importance: q.importance,
53
60
  suggestedAnswers: q.suggestedAnswers,
61
+ options: q.options,
62
+ skipped: q.skipped,
54
63
  answered: mergedAnswers[q.id] !== undefined,
55
64
  })),
56
65
  specReady,
66
+ ...(suggestedDescription !== undefined ? { suggestedDescription } : {}),
57
67
  answeredCount: Object.keys(mergedAnswers).length,
58
68
  ...(contradictions.length > 0
59
69
  ? {
@@ -86,31 +96,57 @@ export async function handleClarifyRequirements(params) {
86
96
  // Generate main clarification questions (cap total at maxQuestions)
87
97
  const mainMaxQ = Math.max(1, maxQuestions - metaQuestions.length);
88
98
  const mainQuestions = generateQuestions(topic, context, knowledge, mainMaxQ);
89
- const questions = [...metaQuestions, ...mainQuestions].slice(0, maxQuestions);
90
- // Determine if spec is ready (all critical questions have non-empty answers)
91
- const criticalIds = questions.filter((q) => q.importance === 'critical').map((q) => q.id);
99
+ const rawQuestions = [...metaQuestions, ...mainQuestions].slice(0, maxQuestions);
100
+ // Detect project stack for auto-skip and option filtering (SPEC-337)
101
+ const projectPath = knowledge?.projectPath ?? '';
102
+ const stack = projectPath !== ''
103
+ ? await detectStack(projectPath).catch(() => ({
104
+ framework: null,
105
+ language: null,
106
+ database: null,
107
+ detectedLibs: [],
108
+ }))
109
+ : { framework: null, language: null, database: null, detectedLibs: [] };
110
+ // Apply multiple-choice options + mark skipped questions (SPEC-337)
111
+ const questions = rawQuestions.map((q) => {
112
+ const withOptions = attachOptions(q);
113
+ const skipped = shouldSkipQuestion(q, stack);
114
+ return skipped ? { ...withOptions, skipped: true } : withOptions;
115
+ });
116
+ // Determine if spec is ready (all non-skipped critical questions have non-empty answers)
117
+ const criticalIds = questions
118
+ .filter((q) => q.importance === 'critical' && q.skipped !== true)
119
+ .map((q) => q.id);
92
120
  const specReady = answers !== undefined &&
93
121
  criticalIds.every((id) => {
94
122
  const ans = answers[id];
95
123
  return ans !== undefined && ans.trim() !== '';
96
124
  });
125
+ // Build suggestedDescription when spec is ready (SPEC-337)
126
+ const currentAnswers = answers ?? {};
127
+ const suggestedDescription = specReady
128
+ ? buildSuggestedDescription(topic, currentAnswers, questions)
129
+ : undefined;
97
130
  // Create a clarification session
98
131
  const session = {
99
132
  id: randomUUID().slice(0, 8),
100
133
  projectId,
101
134
  topic,
102
135
  questions,
103
- answers: answers ?? {},
136
+ answers: currentAnswers,
104
137
  isComplete: specReady,
105
138
  createdAt: new Date().toISOString(),
106
139
  contradictions: contradictions.length > 0 ? contradictions : undefined,
107
140
  specReady,
141
+ interviewMode: 'multiple-choice',
142
+ ...(suggestedDescription !== undefined ? { suggestedDescription } : {}),
108
143
  };
109
144
  // Persist the session
110
145
  await knowledgeStore.addClarification(projectId, session);
111
146
  const result = {
112
147
  sessionId: session.id,
113
148
  topic,
149
+ interviewMode: 'multiple-choice',
114
150
  questionsCount: questions.length,
115
151
  hasMetaQuestions: metaQuestions.length > 0,
116
152
  questions: questions.map((q) => ({
@@ -121,8 +157,11 @@ export async function handleClarifyRequirements(params) {
121
157
  suggestedAnswer: q.suggestedAnswer,
122
158
  /* v8 ignore next 1 */
123
159
  suggestedAnswers: q.suggestedAnswers ?? [],
160
+ options: q.options,
161
+ skipped: q.skipped,
124
162
  })),
125
163
  specReady,
164
+ ...(suggestedDescription !== undefined ? { suggestedDescription } : {}),
126
165
  instructions: specReady
127
166
  ? 'All critical questions answered. Call create_spec with clarificationSessionId to create a precise spec.'
128
167
  : 'Answer the questions above, then call create_spec with the gathered context. You can skip nice-to-have questions if the user does not have strong opinions.',
@@ -1 +1 @@
1
- {"version":3,"file":"clarify-requirements.js","sourceRoot":"","sources":["../../src/tools/clarify-requirements.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAEhF,iEAAiE;AACjE,KAAK,UAAU,mBAAmB,CAChC,SAAiB,EACjB,SAAiB,EACjB,UAAkC,EAClC,SAAkE;IAElE,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,KAAK,EAAE,YAAY,SAAS,qFAAqF;qBAClH,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC;IAC7D,MAAM,cAAc,GAClB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS;SACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpB,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;QACzC,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAC9B,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,GAAG,CAAC;QACJ,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,IAAI,qBAAqB,CAAC,CAAC,EAAE,SAAS,CAAC;KAC5E,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,GAAyB;QACpC,GAAG,QAAQ;QACX,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,SAAS;QACrB,cAAc,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;QACtE,SAAS;KACV,CAAC;IACF,MAAM,cAAc,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,MAAM,GAA4B;QACtC,SAAS,EAAE,QAAQ,CAAC,EAAE;QACtB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;QACzC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;SAC5C,CAAC,CAAC;QACH,SAAS;QACT,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM;QAChD,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;YAC3B,CAAC,CAAC;gBACE,cAAc;gBACd,oBAAoB,EAClB,sEAAsE;aACzE;YACH,CAAC,CAAC,EAAE,CAAC;QACP,YAAY,EAAE,SAAS;YACrB,CAAC,CAAC,gFAAgF;YAClF,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,kCAAkC;QAC1H,OAAO,EAAE,oBAAoB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,YAAY;KACxG,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,MAAgC;IAEhC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAEnF,IAAI,CAAC;QACH,sGAAsG;QACtG,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAEjF,gDAAgD;QAChD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,MAAM,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;QACnF,CAAC;QAED,qDAAqD;QACrD,MAAM,cAAc,GAClB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAElF,yDAAyD;QACzD,MAAM,aAAa,GAA4B,YAAY,CAAC,KAAK,CAAC;YAChE,CAAC,CAAC,qBAAqB,EAAE;YACzB,CAAC,CAAC,EAAE,CAAC;QAEP,oEAAoE;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7E,MAAM,SAAS,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QAE9E,6EAA6E;QAC7E,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1F,MAAM,SAAS,GACb,OAAO,KAAK,SAAS;YACrB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;gBACvB,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAChD,CAAC,CAAC,CAAC;QAEL,iCAAiC;QACjC,MAAM,OAAO,GAAyB;YACpC,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,SAAS;YACT,KAAK;YACL,SAAS;YACT,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,cAAc,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;YACtE,SAAS;SACV,CAAC;QAEF,sBAAsB;QACtB,MAAM,cAAc,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1D,MAAM,MAAM,GAA4B;YACtC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,KAAK;YACL,cAAc,EAAE,SAAS,CAAC,MAAM;YAChC,gBAAgB,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC;YAC1C,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,sBAAsB;gBACtB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,IAAI,EAAE;aAC3C,CAAC,CAAC;YACH,SAAS;YACT,YAAY,EAAE,SAAS;gBACrB,CAAC,CAAC,yGAAyG;gBAC3G,CAAC,CAAC,6JAA6J;YACjK,OAAO,EAAE,EAAE,CAAC,oCAAoC,EAAE;gBAChD,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC/B,KAAK;aACN,CAAC;SACH,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;YACvC,MAAM,CAAC,oBAAoB;gBACzB,6FAA6F,CAAC;QAClG,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAC1E,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"clarify-requirements.js","sourceRoot":"","sources":["../../src/tools/clarify-requirements.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,57 @@
1
- import type { ToolResult } from '../types/index.js';
1
+ import type { ToolResult, RegisteredProjectSummary } from '../types/index.js';
2
2
  /**
3
3
  * Resolve projectId from either projectId or projectPath.
4
4
  * projectPath takes precedence when both are provided.
5
5
  * Returns null when neither is provided.
6
+ *
7
+ * This is the SYNC fast path for callers that always have an explicit param.
8
+ * For zero-config auto-detection use resolveProjectIdOrAutoDetect().
6
9
  */
7
10
  export declare function resolveProjectId(params: {
8
11
  projectId?: string;
9
12
  projectPath?: string;
10
13
  }): string | null;
11
- /** Error result returned when neither projectId nor projectPath is provided. */
14
+ /**
15
+ * Result returned by resolveProjectIdOrAutoDetect.
16
+ * On success: { ok: true, projectId, projectPath, autoDetected }
17
+ * On failure: { ok: false, errorResult } — return errorResult directly to the caller.
18
+ */
19
+ export type ResolveResult = {
20
+ ok: true;
21
+ projectId: string;
22
+ projectPath: string;
23
+ autoDetected: boolean;
24
+ } | {
25
+ ok: false;
26
+ errorResult: ToolResult;
27
+ };
28
+ /**
29
+ * Resolve a projectId with full zero-config auto-detection (SPEC-341).
30
+ *
31
+ * Falls back to PLANU_PROJECT_PATH env var and the global project registry
32
+ * when neither projectId nor projectPath is passed explicitly.
33
+ *
34
+ * Returns a discriminated union so callers can early-return on failure:
35
+ *
36
+ * ```ts
37
+ * const resolved = await resolveProjectIdOrAutoDetect(params);
38
+ * if (!resolved.ok) return resolved.errorResult;
39
+ * const { projectId, projectPath, autoDetected } = resolved;
40
+ * ```
41
+ */
42
+ export declare function resolveProjectIdOrAutoDetect(params: {
43
+ projectId?: string;
44
+ projectPath?: string;
45
+ }): Promise<ResolveResult>;
46
+ /**
47
+ * Build a ToolResult error for the "missing project" case.
48
+ * Includes a registeredProjects[] list so the user can see their options.
49
+ */
50
+ export declare function buildMissingProjectError(registeredProjects: RegisteredProjectSummary[]): ToolResult;
51
+ /**
52
+ * Build a ToolResult error for the "ambiguous project" case (multiple registered).
53
+ * Lists all known projects with their id + path so the user can pick one.
54
+ */
55
+ export declare function buildAmbiguousProjectError(registeredProjects: RegisteredProjectSummary[]): ToolResult;
12
56
  export declare const missingProjectIdError: ToolResult;
13
57
  //# sourceMappingURL=resolve-project-id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-project-id.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-project-id.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,GAAG,IAAI,CAQhB;AAED,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,EAAE,UAQnC,CAAC"}
1
+ {"version":3,"file":"resolve-project-id.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-project-id.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE9E;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,GAAG,IAAI,CAQhB;AAMD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,GAC3E;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,wBAAsB,4BAA4B,CAAC,MAAM,EAAE;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,aAAa,CAAC,CAwBzB;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,kBAAkB,EAAE,wBAAwB,EAAE,GAC7C,UAAU,CASZ;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,kBAAkB,EAAE,wBAAwB,EAAE,GAC7C,UAAU,CAUZ;AAKD,eAAO,MAAM,qBAAqB,EAAE,UAQnC,CAAC"}
@@ -1,9 +1,17 @@
1
- // tools/resolve-project-id.ts — Shared helper for SPEC-304
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
- /** Error result returned when neither projectId nor projectPath is provided. */
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,2DAA2D;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D;;;;GAIG;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,gFAAgF;AAChF,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"}
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,EAAE,MAAM,sBAAsB,CAAC;AAInE,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,CAuFZ"}
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":"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"}
1
+ {"version":3,"file":"response-builder.js","sourceRoot":"","sources":["../../../src/tools/update-status/response-builder.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
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"}