@promptwheel/cli 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/dist/bin/promptwheel.js +1 -1
  2. package/dist/commands/solo-analytics.d.ts.map +1 -1
  3. package/dist/commands/solo-analytics.js +185 -2
  4. package/dist/commands/solo-analytics.js.map +1 -1
  5. package/dist/commands/solo-auto.d.ts.map +1 -1
  6. package/dist/commands/solo-auto.js +7 -6
  7. package/dist/commands/solo-auto.js.map +1 -1
  8. package/dist/commands/solo-daemon.d.ts.map +1 -1
  9. package/dist/commands/solo-daemon.js +4 -0
  10. package/dist/commands/solo-daemon.js.map +1 -1
  11. package/dist/commands/solo-inspect.d.ts.map +1 -1
  12. package/dist/commands/solo-inspect.js +93 -5
  13. package/dist/commands/solo-inspect.js.map +1 -1
  14. package/dist/commands/solo-nudge.d.ts.map +1 -1
  15. package/dist/commands/solo-nudge.js +38 -7
  16. package/dist/commands/solo-nudge.js.map +1 -1
  17. package/dist/commands/solo-trajectory.d.ts.map +1 -1
  18. package/dist/commands/solo-trajectory.js +23 -5
  19. package/dist/commands/solo-trajectory.js.map +1 -1
  20. package/dist/commands/solo.d.ts.map +1 -1
  21. package/dist/commands/solo.js +7 -1
  22. package/dist/commands/solo.js.map +1 -1
  23. package/dist/lib/cycle-context.d.ts +5 -0
  24. package/dist/lib/cycle-context.d.ts.map +1 -1
  25. package/dist/lib/cycle-context.js +12 -4
  26. package/dist/lib/cycle-context.js.map +1 -1
  27. package/dist/lib/daemon-fork.d.ts +1 -0
  28. package/dist/lib/daemon-fork.d.ts.map +1 -1
  29. package/dist/lib/daemon-fork.js +2 -0
  30. package/dist/lib/daemon-fork.js.map +1 -1
  31. package/dist/lib/daemon.d.ts +1 -0
  32. package/dist/lib/daemon.d.ts.map +1 -1
  33. package/dist/lib/daemon.js +2 -1
  34. package/dist/lib/daemon.js.map +1 -1
  35. package/dist/lib/display-adapter-log.d.ts +6 -0
  36. package/dist/lib/display-adapter-log.d.ts.map +1 -1
  37. package/dist/lib/display-adapter-log.js +3 -0
  38. package/dist/lib/display-adapter-log.js.map +1 -1
  39. package/dist/lib/display-adapter-spinner.d.ts +6 -0
  40. package/dist/lib/display-adapter-spinner.d.ts.map +1 -1
  41. package/dist/lib/display-adapter-spinner.js +4 -1
  42. package/dist/lib/display-adapter-spinner.js.map +1 -1
  43. package/dist/lib/display-adapter-tui.d.ts +6 -0
  44. package/dist/lib/display-adapter-tui.d.ts.map +1 -1
  45. package/dist/lib/display-adapter-tui.js +3 -0
  46. package/dist/lib/display-adapter-tui.js.map +1 -1
  47. package/dist/lib/display-adapter.d.ts +6 -0
  48. package/dist/lib/display-adapter.d.ts.map +1 -1
  49. package/dist/lib/error-ledger.d.ts +39 -0
  50. package/dist/lib/error-ledger.d.ts.map +1 -0
  51. package/dist/lib/error-ledger.js +73 -0
  52. package/dist/lib/error-ledger.js.map +1 -0
  53. package/dist/lib/goals.d.ts +1 -1
  54. package/dist/lib/goals.d.ts.map +1 -1
  55. package/dist/lib/goals.js +39 -7
  56. package/dist/lib/goals.js.map +1 -1
  57. package/dist/lib/learnings.d.ts.map +1 -1
  58. package/dist/lib/learnings.js +92 -68
  59. package/dist/lib/learnings.js.map +1 -1
  60. package/dist/lib/pr-outcomes.d.ts +42 -0
  61. package/dist/lib/pr-outcomes.d.ts.map +1 -0
  62. package/dist/lib/pr-outcomes.js +97 -0
  63. package/dist/lib/pr-outcomes.js.map +1 -0
  64. package/dist/lib/qa-stats.d.ts.map +1 -1
  65. package/dist/lib/qa-stats.js +3 -1
  66. package/dist/lib/qa-stats.js.map +1 -1
  67. package/dist/lib/retention.d.ts +3 -3
  68. package/dist/lib/retention.d.ts.map +1 -1
  69. package/dist/lib/retention.js +12 -12
  70. package/dist/lib/retention.js.map +1 -1
  71. package/dist/lib/run-history.d.ts +27 -0
  72. package/dist/lib/run-history.d.ts.map +1 -1
  73. package/dist/lib/run-history.js.map +1 -1
  74. package/dist/lib/run-state.d.ts +42 -0
  75. package/dist/lib/run-state.d.ts.map +1 -1
  76. package/dist/lib/run-state.js +66 -0
  77. package/dist/lib/run-state.js.map +1 -1
  78. package/dist/lib/session-report.d.ts.map +1 -1
  79. package/dist/lib/session-report.js +42 -0
  80. package/dist/lib/session-report.js.map +1 -1
  81. package/dist/lib/solo-auto-between-cycles.d.ts.map +1 -1
  82. package/dist/lib/solo-auto-between-cycles.js +381 -40
  83. package/dist/lib/solo-auto-between-cycles.js.map +1 -1
  84. package/dist/lib/solo-auto-drill.d.ts +228 -0
  85. package/dist/lib/solo-auto-drill.d.ts.map +1 -0
  86. package/dist/lib/solo-auto-drill.js +1229 -0
  87. package/dist/lib/solo-auto-drill.js.map +1 -0
  88. package/dist/lib/solo-auto-execute.d.ts +8 -0
  89. package/dist/lib/solo-auto-execute.d.ts.map +1 -1
  90. package/dist/lib/solo-auto-execute.js +99 -7
  91. package/dist/lib/solo-auto-execute.js.map +1 -1
  92. package/dist/lib/solo-auto-filter.js +3 -3
  93. package/dist/lib/solo-auto-filter.js.map +1 -1
  94. package/dist/lib/solo-auto-finalize.d.ts.map +1 -1
  95. package/dist/lib/solo-auto-finalize.js +32 -2
  96. package/dist/lib/solo-auto-finalize.js.map +1 -1
  97. package/dist/lib/solo-auto-init-qa.d.ts.map +1 -1
  98. package/dist/lib/solo-auto-init-qa.js +3 -1
  99. package/dist/lib/solo-auto-init-qa.js.map +1 -1
  100. package/dist/lib/solo-auto-scout.d.ts +1 -0
  101. package/dist/lib/solo-auto-scout.d.ts.map +1 -1
  102. package/dist/lib/solo-auto-scout.js +44 -13
  103. package/dist/lib/solo-auto-scout.js.map +1 -1
  104. package/dist/lib/solo-auto-state.d.ts.map +1 -1
  105. package/dist/lib/solo-auto-state.js +84 -24
  106. package/dist/lib/solo-auto-state.js.map +1 -1
  107. package/dist/lib/solo-auto-types.d.ts +64 -3
  108. package/dist/lib/solo-auto-types.d.ts.map +1 -1
  109. package/dist/lib/solo-auto.d.ts +3 -3
  110. package/dist/lib/solo-auto.d.ts.map +1 -1
  111. package/dist/lib/solo-auto.js +83 -4
  112. package/dist/lib/solo-auto.js.map +1 -1
  113. package/dist/lib/solo-config.d.ts +51 -3
  114. package/dist/lib/solo-config.d.ts.map +1 -1
  115. package/dist/lib/solo-config.js +43 -2
  116. package/dist/lib/solo-config.js.map +1 -1
  117. package/dist/lib/solo-hints.d.ts +10 -0
  118. package/dist/lib/solo-hints.d.ts.map +1 -1
  119. package/dist/lib/solo-hints.js +22 -0
  120. package/dist/lib/solo-hints.js.map +1 -1
  121. package/dist/lib/solo-session-summary.d.ts +12 -1
  122. package/dist/lib/solo-session-summary.d.ts.map +1 -1
  123. package/dist/lib/solo-session-summary.js +50 -6
  124. package/dist/lib/solo-session-summary.js.map +1 -1
  125. package/dist/lib/spindle-incidents.d.ts +29 -0
  126. package/dist/lib/spindle-incidents.d.ts.map +1 -0
  127. package/dist/lib/spindle-incidents.js +56 -0
  128. package/dist/lib/spindle-incidents.js.map +1 -0
  129. package/dist/lib/spinner.d.ts +1 -1
  130. package/dist/lib/taste-profile.d.ts.map +1 -1
  131. package/dist/lib/taste-profile.js +14 -8
  132. package/dist/lib/taste-profile.js.map +1 -1
  133. package/dist/lib/ticket-steps/step-spindle.d.ts.map +1 -1
  134. package/dist/lib/ticket-steps/step-spindle.js +14 -0
  135. package/dist/lib/ticket-steps/step-spindle.js.map +1 -1
  136. package/dist/lib/trajectory-generate.d.ts +73 -0
  137. package/dist/lib/trajectory-generate.d.ts.map +1 -1
  138. package/dist/lib/trajectory-generate.js +368 -12
  139. package/dist/lib/trajectory-generate.js.map +1 -1
  140. package/dist/lib/trajectory.d.ts +1 -1
  141. package/dist/lib/trajectory.d.ts.map +1 -1
  142. package/dist/lib/trajectory.js +67 -6
  143. package/dist/lib/trajectory.js.map +1 -1
  144. package/dist/tui/screens/auto.d.ts +7 -0
  145. package/dist/tui/screens/auto.d.ts.map +1 -1
  146. package/dist/tui/screens/auto.js +18 -1
  147. package/dist/tui/screens/auto.js.map +1 -1
  148. package/package.json +3 -3
@@ -23,14 +23,14 @@ export function displayConvergenceSummary(ctx) {
23
23
  console.log(chalk.gray(` Avg proposal yield: ${metrics.avgProposalYield.toFixed(1)}/scan`));
24
24
  console.log(chalk.gray(` Learnings density: ${metrics.learningsDensity.toFixed(2)}/file`));
25
25
  console.log(chalk.gray(` Success trend: ${metrics.successRateTrend}`));
26
- if (!isNaN(metrics.mergeRate))
26
+ if (metrics.mergeRate > 0)
27
27
  console.log(chalk.gray(` Merge rate: ${Math.round(metrics.mergeRate * 100)}%`));
28
28
  if (metrics.velocity.prsPerHour > 0)
29
29
  console.log(chalk.gray(` Velocity: ${metrics.velocity.prsPerHour.toFixed(1)} PRs/h`));
30
30
  console.log(chalk.gray(` Suggested action: ${metrics.suggestedAction}`));
31
31
  }
32
32
  /**
33
- * Display wheel health summary at end of session.
33
+ * Display spin health summary at end of session.
34
34
  * Uses progressive disclosure: compact by default, shows details only when relevant.
35
35
  */
36
36
  export function displayWheelHealth(ctx, verbose = false) {
@@ -106,10 +106,35 @@ export async function recordSessionHistory(ctx) {
106
106
  try {
107
107
  const { appendRunHistory } = await import('./run-history.js');
108
108
  const elapsed = Date.now() - ctx.startTime;
109
- const stoppedReason = ctx.shutdownRequested ? 'user_shutdown'
110
- : ctx.totalPrsCreated >= ctx.maxPrs ? 'pr_limit'
111
- : (ctx.endTime && Date.now() >= ctx.endTime) ? 'time_limit'
112
- : 'completed';
109
+ const stoppedReason = ctx.shutdownReason
110
+ ?? (ctx.endTime && Date.now() >= ctx.endTime ? 'time_limit' : undefined)
111
+ ?? (ctx.totalPrsCreated >= ctx.maxPrs ? 'pr_limit' : undefined)
112
+ ?? 'completed';
113
+ // Aggregate phase timing from ticket outcomes
114
+ let totalScoutMs = 0;
115
+ let totalExecuteMs = 0;
116
+ let totalQaMs = 0;
117
+ let totalGitMs = 0;
118
+ let totalInputTokens = 0;
119
+ let totalOutputTokens = 0;
120
+ let totalCostUsd = 0;
121
+ let hasTimingData = false;
122
+ let hasCostData = false;
123
+ for (const t of ctx.allTicketOutcomes) {
124
+ if (t.phaseTiming) {
125
+ hasTimingData = true;
126
+ totalScoutMs += t.phaseTiming.scoutMs ?? 0;
127
+ totalExecuteMs += t.phaseTiming.executeMs ?? 0;
128
+ totalQaMs += t.phaseTiming.qaMs ?? 0;
129
+ totalGitMs += t.phaseTiming.gitMs ?? 0;
130
+ }
131
+ if ((t.costUsd !== undefined && t.costUsd !== null) || (t.inputTokens !== undefined && t.inputTokens !== null)) {
132
+ hasCostData = true;
133
+ totalCostUsd += t.costUsd ?? 0;
134
+ totalInputTokens += t.inputTokens ?? 0;
135
+ totalOutputTokens += t.outputTokens ?? 0;
136
+ }
137
+ }
113
138
  appendRunHistory({
114
139
  timestamp: new Date().toISOString(),
115
140
  mode: 'auto',
@@ -125,6 +150,21 @@ export async function recordSessionHistory(ctx) {
125
150
  parallel: ctx.parallelExplicit ? parseInt(ctx.parallelOption, 10) : -1,
126
151
  stoppedReason,
127
152
  tickets: ctx.allTicketOutcomes,
153
+ ...(hasTimingData ? {
154
+ phaseTiming: { totalScoutMs, totalExecuteMs, totalQaMs, totalGitMs },
155
+ } : {}),
156
+ ...(hasCostData ? {
157
+ tokenUsage: { totalInputTokens, totalOutputTokens, totalCostUsd },
158
+ } : {}),
159
+ ...(ctx.drillStats && ctx.drillStats.trajectoriesGenerated > 0 ? {
160
+ drillStats: {
161
+ trajectoriesGenerated: ctx.drillStats.trajectoriesGenerated,
162
+ stepsCompleted: ctx.drillStats.stepsCompleted,
163
+ stepsFailed: ctx.drillStats.stepsFailed,
164
+ stepsTotal: ctx.drillStats.stepsTotal,
165
+ completionRate: ctx.drillStats.completionRate,
166
+ },
167
+ } : {}),
128
168
  }, ctx.repoRoot || undefined);
129
169
  }
130
170
  catch {
@@ -151,6 +191,10 @@ export function displayFinalSummary(ctx) {
151
191
  console.log(chalk.gray(` Milestone PRs: ${ctx.totalMilestonePrs}`));
152
192
  console.log(chalk.gray(` Total tickets merged: ${ctx.totalPrsCreated}`));
153
193
  }
194
+ if (ctx.drillStats && ctx.drillStats.trajectoriesGenerated > 0) {
195
+ const ds = ctx.drillStats;
196
+ console.log(chalk.gray(` Drill: ${ds.trajectoriesGenerated} trajectory(s), ${ds.stepsCompleted}/${ds.stepsTotal} steps completed (${ds.completionRate}%), ${ds.stepsFailed} failed`));
197
+ }
154
198
  if (ctx.allPrUrls.length > 0) {
155
199
  console.log(chalk.green(`\n✓ ${ctx.allPrUrls.length} PR(s) created:`));
156
200
  for (const url of ctx.allPrUrls) {
@@ -1 +1 @@
1
- {"version":3,"file":"solo-session-summary.js","sourceRoot":"","sources":["../../src/lib/solo-session-summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solo-session-summary.js","sourceRoot":"","sources":["../../src/lib/solo-session-summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Spindle incident log.
3
+ *
4
+ * Persists spindle abort events to `.promptwheel/spindle-incidents.ndjson`
5
+ * so loop-detection patterns can be surfaced by analytics.
6
+ */
7
+ export interface SpindleIncident {
8
+ ts: number;
9
+ ticketId: string;
10
+ ticketTitle: string;
11
+ trigger: string;
12
+ confidence: number;
13
+ iteration: number;
14
+ diagnosticsSummary: string;
15
+ }
16
+ export interface SpindleTriggerSummary {
17
+ trigger: string;
18
+ count: number;
19
+ lastSeen: number;
20
+ }
21
+ /**
22
+ * Append a spindle incident. Lazily creates the file on first write.
23
+ */
24
+ export declare function appendSpindleIncident(repoRoot: string, entry: SpindleIncident): void;
25
+ /**
26
+ * Analyze spindle incidents: group by trigger, count, last occurrence.
27
+ */
28
+ export declare function analyzeSpindleIncidents(repoRoot: string): SpindleTriggerSummary[];
29
+ //# sourceMappingURL=spindle-incidents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spindle-incidents.d.ts","sourceRoot":"","sources":["../../src/lib/spindle-incidents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAQD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAOpF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,EAAE,CA6BjF"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Spindle incident log.
3
+ *
4
+ * Persists spindle abort events to `.promptwheel/spindle-incidents.ndjson`
5
+ * so loop-detection patterns can be surfaced by analytics.
6
+ */
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ const INCIDENTS_FILE = 'spindle-incidents.ndjson';
10
+ function incidentsPath(repoRoot) {
11
+ return path.join(repoRoot, '.promptwheel', INCIDENTS_FILE);
12
+ }
13
+ /**
14
+ * Append a spindle incident. Lazily creates the file on first write.
15
+ */
16
+ export function appendSpindleIncident(repoRoot, entry) {
17
+ const fp = incidentsPath(repoRoot);
18
+ const dir = path.dirname(fp);
19
+ if (!fs.existsSync(dir)) {
20
+ fs.mkdirSync(dir, { recursive: true });
21
+ }
22
+ fs.appendFileSync(fp, JSON.stringify(entry) + '\n', 'utf-8');
23
+ }
24
+ /**
25
+ * Analyze spindle incidents: group by trigger, count, last occurrence.
26
+ */
27
+ export function analyzeSpindleIncidents(repoRoot) {
28
+ const fp = incidentsPath(repoRoot);
29
+ if (!fs.existsSync(fp))
30
+ return [];
31
+ const content = fs.readFileSync(fp, 'utf-8');
32
+ const lines = content.trim().split('\n').filter(l => l.length > 0);
33
+ const grouped = new Map();
34
+ for (const line of lines) {
35
+ try {
36
+ const entry = JSON.parse(line);
37
+ const existing = grouped.get(entry.trigger);
38
+ if (existing) {
39
+ existing.count++;
40
+ existing.lastSeen = Math.max(existing.lastSeen, entry.ts);
41
+ }
42
+ else {
43
+ grouped.set(entry.trigger, {
44
+ trigger: entry.trigger,
45
+ count: 1,
46
+ lastSeen: entry.ts,
47
+ });
48
+ }
49
+ }
50
+ catch {
51
+ // Skip malformed lines
52
+ }
53
+ }
54
+ return [...grouped.values()].sort((a, b) => b.count - a.count);
55
+ }
56
+ //# sourceMappingURL=spindle-incidents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spindle-incidents.js","sourceRoot":"","sources":["../../src/lib/spindle-incidents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAkBlC,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAElD,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,KAAsB;IAC5E,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEnE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiC,CAAC;IAEzD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;oBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,CAAC;oBACR,QAAQ,EAAE,KAAK,CAAC,EAAE;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Uses a sun symbol (☀) that alternates between blue and green.
5
5
  * Shows elapsed time automatically so you always know it's alive.
6
6
  */
7
- export type SpinnerStyle = 'block' | 'spool' | 'cube' | 'stack' | 'sun';
7
+ export type SpinnerStyle = 'block' | 'wheel' | 'cube' | 'stack' | 'sun';
8
8
  export interface BlockSpinner {
9
9
  /** Update the message text */
10
10
  update(message: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"taste-profile.d.ts","sourceRoot":"","sources":["../../src/lib/taste-profile.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAMnD,MAAM,WAAW,YAAY;IAC3B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IACvD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAYD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,QAAQ,EAAE,EACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAC1C,YAAY,CAwDd;AAMD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAQzE;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAKjF;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAiBlE"}
1
+ {"version":3,"file":"taste-profile.d.ts","sourceRoot":"","sources":["../../src/lib/taste-profile.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAMnD,MAAM,WAAW,YAAY;IAC3B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IACvD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAYD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,QAAQ,EAAE,EACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAC1C,YAAY,CAgEd;AAMD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAQzE;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAKjF;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAiBlE"}
@@ -41,18 +41,24 @@ export function buildTasteProfile(sectorState, learnings, _formulaStats) {
41
41
  else if (rate < 0.3)
42
42
  avoid.push(cat);
43
43
  }
44
- // Determine preferred complexity from successful tickets
44
+ // Determine preferred complexity from successful tickets using structural signals
45
45
  const complexityCounts = { trivial: 0, simple: 0, moderate: 0 };
46
- // Use learnings from ticket_success to infer complexity preference
47
46
  const successLearnings = learnings.filter(l => l.source.type === 'ticket_success');
48
47
  for (const l of successLearnings) {
49
- // Simple heuristic: short titles tend to be trivial/simple
50
- if (l.text.length < 40)
51
- complexityCounts['trivial']++;
52
- else if (l.text.length < 80)
53
- complexityCounts['simple']++;
54
- else
48
+ // Use tags and source detail for structural complexity signals instead of text length
49
+ const tagCount = l.tags?.length ?? 0;
50
+ const hasMultipleCategories = tagCount >= 3;
51
+ const mentionsRefactor = l.text.includes('refactor') || l.text.includes('restructur');
52
+ const mentionsMultiFile = /\d+ file/.test(l.text) || l.text.includes('across');
53
+ if (hasMultipleCategories || mentionsRefactor || mentionsMultiFile) {
55
54
  complexityCounts['moderate']++;
55
+ }
56
+ else if (tagCount >= 1 || l.text.includes('add') || l.text.includes('update')) {
57
+ complexityCounts['simple']++;
58
+ }
59
+ else {
60
+ complexityCounts['trivial']++;
61
+ }
56
62
  }
57
63
  const preferredComplexity = (complexityCounts['simple'] >= complexityCounts['trivial'] &&
58
64
  complexityCounts['simple'] >= complexityCounts['moderate']) ? 'simple'
@@ -1 +1 @@
1
- {"version":3,"file":"taste-profile.js","sourceRoot":"","sources":["../../src/lib/taste-profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taste-profile.js","sourceRoot":"","sources":["../../src/lib/taste-profile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"step-spindle.d.ts","sourceRoot":"","sources":["../../../src/lib/ticket-steps/step-spindle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D,wBAAsB,GAAG,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAuKjE"}
1
+ {"version":3,"file":"step-spindle.d.ts","sourceRoot":"","sources":["../../../src/lib/ticket-steps/step-spindle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG5D,wBAAsB,GAAG,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAoLjE"}
@@ -9,6 +9,7 @@ import { checkSpindleLoop, formatSpindleResult, getFileEditWarnings, } from '../
9
9
  import { parseChangedFiles, checkScopeViolations } from '../scope.js';
10
10
  import { gitExec, cleanupWorktree } from '../solo-git.js';
11
11
  import { generateSpindleRecommendations } from '../solo-ci.js';
12
+ import { appendSpindleIncident } from '../spindle-incidents.js';
12
13
  export async function run(ctx) {
13
14
  const { ticket, repoRoot, worktreePath, baseDir, opts, startTime, onProgress } = ctx;
14
15
  const { spindleConfig, spindleState, baselineFiles } = ctx;
@@ -70,6 +71,19 @@ export async function run(ctx) {
70
71
  data: spindleArtifactData,
71
72
  });
72
73
  ctx.artifactPaths.spindle = spindleArtifactPath;
74
+ // Record spindle incident for analytics
75
+ try {
76
+ appendSpindleIncident(repoRoot, {
77
+ ts: Date.now(),
78
+ ticketId: ticket.id,
79
+ ticketTitle: ticket.title,
80
+ trigger: trigger,
81
+ confidence: spindleCheck.confidence,
82
+ iteration: spindleState.outputs.length,
83
+ diagnosticsSummary: formatSpindleResult(spindleCheck).slice(0, 500),
84
+ });
85
+ }
86
+ catch { /* non-fatal */ }
73
87
  const spindleDetails = {
74
88
  trigger,
75
89
  confidence: spindleCheck.confidence,
@@ -1 +1 @@
1
- {"version":3,"file":"step-spindle.js","sourceRoot":"","sources":["../../../src/lib/ticket-steps/step-spindle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-spindle.js","sourceRoot":"","sources":["../../../src/lib/ticket-steps/step-spindle.ts"],"names":[],"mappings":"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"}
@@ -9,12 +9,85 @@ export interface GenerateOptions {
9
9
  model?: string;
10
10
  timeoutMs?: number;
11
11
  }
12
+ export interface GenerateFromProposalsOptions {
13
+ proposals: Array<{
14
+ title: string;
15
+ description: string;
16
+ category: string;
17
+ files: string[];
18
+ allowed_paths: string[];
19
+ acceptance_criteria: string[];
20
+ verification_commands: string[];
21
+ confidence: number;
22
+ impact_score?: number;
23
+ rationale: string;
24
+ estimated_complexity: string;
25
+ }>;
26
+ repoRoot: string;
27
+ model?: string;
28
+ timeoutMs?: number;
29
+ /** Summary of previous drill trajectories to avoid repeating themes */
30
+ previousTrajectories?: string;
31
+ /** Hint about categories/scopes already covered for diversity */
32
+ diversityHint?: string;
33
+ /** Sector layout of the codebase for spatial organization */
34
+ sectorContext?: string;
35
+ /** Project taste profile — preferred/avoided categories and complexity */
36
+ tasteContext?: string;
37
+ /** Cross-run learnings relevant to trajectory planning */
38
+ learningsContext?: string;
39
+ /** Recently completed/attempted proposals to avoid re-proposing */
40
+ dedupContext?: string;
41
+ /** Active goal with current measurement — trajectory should align with this */
42
+ goalContext?: string;
43
+ /** Drill health metrics hint — informs LLM about what works well/poorly */
44
+ metricsHint?: string;
45
+ /** Dependency edges subgraph relevant to proposals — helps LLM order steps */
46
+ dependencyEdges?: string;
47
+ /** Causal context from the last trajectory — what was changed and what's now unblocked */
48
+ causalContext?: string;
49
+ /** Adaptive ambition level — scales first-step complexity based on track record */
50
+ ambitionLevel?: 'conservative' | 'moderate' | 'ambitious';
51
+ }
12
52
  export interface GenerateResult {
13
53
  trajectory: Trajectory;
14
54
  yaml: string;
15
55
  filePath: string;
16
56
  }
17
57
  export declare function generateTrajectory(opts: GenerateOptions): Promise<GenerateResult>;
58
+ /**
59
+ * Generate a trajectory from scout proposals (used by drill mode).
60
+ * Clusters and sequences proposals into ordered trajectory steps.
61
+ */
62
+ export declare function generateTrajectoryFromProposals(opts: GenerateFromProposalsOptions): Promise<GenerateResult>;
63
+ /**
64
+ * Compute a suggested scope glob from proposal file paths.
65
+ * Finds the common parent directory and appends /** for a targeted scope.
66
+ * Returns undefined if no meaningful scope can be computed.
67
+ */
68
+ export declare function computeSuggestedScope(files: string[]): string | undefined;
69
+ export declare function formatProposalsForTrajectoryPrompt(proposals: GenerateFromProposalsOptions['proposals']): string;
70
+ export declare function buildGenerateFromProposalsPrompt(proposalsBlock: string, indexBlock: string, metaBlock: string, context?: {
71
+ previousTrajectories?: string;
72
+ diversityHint?: string;
73
+ sectorContext?: string;
74
+ tasteContext?: string;
75
+ learningsContext?: string;
76
+ dedupContext?: string;
77
+ goalContext?: string;
78
+ metricsHint?: string;
79
+ dependencyEdges?: string;
80
+ causalContext?: string;
81
+ ambitionLevel?: 'conservative' | 'moderate' | 'ambitious';
82
+ }): string;
83
+ /**
84
+ * Remove empty, nonsensical, or fragile verification commands.
85
+ * Catches common LLM generation issues:
86
+ * - Empty or whitespace-only commands
87
+ * - Pure punctuation/numbers (not real commands)
88
+ * - Commands with hardcoded line numbers (break on any code change)
89
+ */
90
+ export declare function sanitizeVerificationCommands(commands: string[]): string[];
18
91
  export declare function validateAndBuild(raw: {
19
92
  name: string;
20
93
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"trajectory-generate.d.ts","sourceRoot":"","sources":["../../src/lib/trajectory-generate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,qCAAqC,CAAC;AAM7C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAkDvF;AAiFD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,GAAG,UAAU,CAuCzG;AAMD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5C"}
1
+ {"version":3,"file":"trajectory-generate.d.ts","sourceRoot":"","sources":["../../src/lib/trajectory-generate.ts"],"names":[],"mappings":"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"}