@proletariat/cli 0.3.95 → 0.3.97

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 (260) hide show
  1. package/dist/commands/config/index.js +1 -1
  2. package/dist/commands/config/index.js.map +1 -1
  3. package/dist/commands/db/repair.js +160 -35
  4. package/dist/commands/db/repair.js.map +1 -1
  5. package/dist/commands/gc.d.ts +14 -0
  6. package/dist/commands/gc.js +208 -0
  7. package/dist/commands/gc.js.map +1 -0
  8. package/dist/commands/linear/connect.d.ts +5 -0
  9. package/dist/commands/linear/connect.js +84 -0
  10. package/dist/commands/linear/connect.js.map +1 -1
  11. package/dist/commands/pr/merge.js +1 -1
  12. package/dist/commands/pr/merge.js.map +1 -1
  13. package/dist/commands/session/attach.d.ts +3 -3
  14. package/dist/commands/session/attach.js +37 -79
  15. package/dist/commands/session/attach.js.map +1 -1
  16. package/dist/commands/session/exec.js +1 -1
  17. package/dist/commands/session/exec.js.map +1 -1
  18. package/dist/commands/session/health.js +1 -1
  19. package/dist/commands/session/health.js.map +1 -1
  20. package/dist/commands/session/inspect.js +1 -1
  21. package/dist/commands/session/inspect.js.map +1 -1
  22. package/dist/commands/session/list.d.ts +1 -0
  23. package/dist/commands/session/list.js +111 -78
  24. package/dist/commands/session/list.js.map +1 -1
  25. package/dist/commands/session/peek.js +1 -1
  26. package/dist/commands/session/peek.js.map +1 -1
  27. package/dist/commands/session/poke.js +1 -1
  28. package/dist/commands/session/poke.js.map +1 -1
  29. package/dist/commands/session/prune.js +50 -11
  30. package/dist/commands/session/prune.js.map +1 -1
  31. package/dist/commands/session/restart.js +1 -1
  32. package/dist/commands/session/restart.js.map +1 -1
  33. package/dist/commands/session/watch.d.ts +1 -0
  34. package/dist/commands/session/watch.js +46 -2
  35. package/dist/commands/session/watch.js.map +1 -1
  36. package/dist/commands/{action → sync}/index.d.ts +2 -6
  37. package/dist/commands/sync/index.js +68 -0
  38. package/dist/commands/sync/index.js.map +1 -0
  39. package/dist/commands/sync/pause.d.ts +10 -0
  40. package/dist/commands/sync/pause.js +35 -0
  41. package/dist/commands/sync/pause.js.map +1 -0
  42. package/dist/commands/sync/queue.d.ts +10 -0
  43. package/dist/commands/sync/queue.js +106 -0
  44. package/dist/commands/sync/queue.js.map +1 -0
  45. package/dist/commands/sync/resume.d.ts +10 -0
  46. package/dist/commands/sync/resume.js +34 -0
  47. package/dist/commands/sync/resume.js.map +1 -0
  48. package/dist/commands/sync/start.d.ts +11 -0
  49. package/dist/commands/sync/start.js +73 -0
  50. package/dist/commands/sync/start.js.map +1 -0
  51. package/dist/commands/sync/status.d.ts +10 -0
  52. package/dist/commands/sync/status.js +40 -0
  53. package/dist/commands/sync/status.js.map +1 -0
  54. package/dist/commands/sync/stop.d.ts +10 -0
  55. package/dist/commands/sync/stop.js +39 -0
  56. package/dist/commands/sync/stop.js.map +1 -0
  57. package/dist/commands/ticket/create.js +1 -1
  58. package/dist/commands/ticket/create.js.map +1 -1
  59. package/dist/commands/ticket/edit.js +1 -1
  60. package/dist/commands/ticket/edit.js.map +1 -1
  61. package/dist/commands/ticket/list.js +1 -1
  62. package/dist/commands/ticket/list.js.map +1 -1
  63. package/dist/commands/ticket/update.js +1 -1
  64. package/dist/commands/ticket/update.js.map +1 -1
  65. package/dist/commands/work/complete.d.ts +1 -0
  66. package/dist/commands/work/complete.js +27 -25
  67. package/dist/commands/work/complete.js.map +1 -1
  68. package/dist/commands/work/drop.d.ts +14 -0
  69. package/dist/commands/work/drop.js +215 -0
  70. package/dist/commands/work/drop.js.map +1 -0
  71. package/dist/commands/work/ready.d.ts +1 -0
  72. package/dist/commands/work/ready.js +26 -25
  73. package/dist/commands/work/ready.js.map +1 -1
  74. package/dist/commands/work/resolve.js +1 -1
  75. package/dist/commands/work/resolve.js.map +1 -1
  76. package/dist/commands/work/ship.d.ts +1 -0
  77. package/dist/commands/work/ship.js +33 -32
  78. package/dist/commands/work/ship.js.map +1 -1
  79. package/dist/commands/work/start.d.ts +2 -0
  80. package/dist/commands/work/start.js +172 -125
  81. package/dist/commands/work/start.js.map +1 -1
  82. package/dist/commands/work/stop.d.ts +1 -0
  83. package/dist/commands/work/stop.js +40 -0
  84. package/dist/commands/work/stop.js.map +1 -1
  85. package/dist/lib/agents/commands.js +7 -5
  86. package/dist/lib/agents/commands.js.map +1 -1
  87. package/dist/lib/dashboard/data.js +1 -1
  88. package/dist/lib/dashboard/data.js.map +1 -1
  89. package/dist/lib/database/db-safety.d.ts +22 -0
  90. package/dist/lib/database/db-safety.js +91 -4
  91. package/dist/lib/database/db-safety.js.map +1 -1
  92. package/dist/lib/database/drizzle-schema.d.ts +17 -0
  93. package/dist/lib/database/drizzle-schema.js +1 -0
  94. package/dist/lib/database/drizzle-schema.js.map +1 -1
  95. package/dist/lib/database/index.d.ts +1 -1
  96. package/dist/lib/database/index.js +1 -1
  97. package/dist/lib/database/index.js.map +1 -1
  98. package/dist/lib/database/migrations/0017_drop_agent_work_fk.d.ts +13 -0
  99. package/dist/lib/database/migrations/0017_drop_agent_work_fk.js +85 -0
  100. package/dist/lib/database/migrations/0017_drop_agent_work_fk.js.map +1 -0
  101. package/dist/lib/database/migrations/0018_create_ticket_refs.d.ts +11 -0
  102. package/dist/lib/database/migrations/0018_create_ticket_refs.js +40 -0
  103. package/dist/lib/database/migrations/0018_create_ticket_refs.js.map +1 -0
  104. package/dist/lib/database/migrations/0019_gc_artifact_cleanup.d.ts +9 -0
  105. package/dist/lib/database/migrations/0019_gc_artifact_cleanup.js +23 -0
  106. package/dist/lib/database/migrations/0019_gc_artifact_cleanup.js.map +1 -0
  107. package/dist/lib/database/migrations/0020_transition_map.d.ts +2 -0
  108. package/dist/lib/database/migrations/0020_transition_map.js +27 -0
  109. package/dist/lib/database/migrations/0020_transition_map.js.map +1 -0
  110. package/dist/lib/database/migrations/index.js +8 -0
  111. package/dist/lib/database/migrations/index.js.map +1 -1
  112. package/dist/lib/execution/config.d.ts +10 -0
  113. package/dist/lib/execution/config.js +24 -0
  114. package/dist/lib/execution/config.js.map +1 -1
  115. package/dist/lib/execution/devcontainer.js +1 -1
  116. package/dist/lib/execution/devcontainer.js.map +1 -1
  117. package/dist/lib/execution/preflight.d.ts +51 -0
  118. package/dist/lib/execution/preflight.js +278 -0
  119. package/dist/lib/execution/preflight.js.map +1 -0
  120. package/dist/lib/execution/runners/docker-management.d.ts +9 -0
  121. package/dist/lib/execution/runners/docker-management.js +14 -3
  122. package/dist/lib/execution/runners/docker-management.js.map +1 -1
  123. package/dist/lib/execution/runners/prompt-builder.d.ts +6 -0
  124. package/dist/lib/execution/runners/prompt-builder.js +53 -10
  125. package/dist/lib/execution/runners/prompt-builder.js.map +1 -1
  126. package/dist/lib/execution/runners/shared.d.ts +1 -1
  127. package/dist/lib/execution/runners/shared.js +1 -1
  128. package/dist/lib/execution/runners/shared.js.map +1 -1
  129. package/dist/lib/execution/session-utils.d.ts +39 -0
  130. package/dist/lib/execution/session-utils.js +111 -0
  131. package/dist/lib/execution/session-utils.js.map +1 -1
  132. package/dist/lib/execution/spawner.d.ts +11 -1
  133. package/dist/lib/execution/spawner.js +46 -17
  134. package/dist/lib/execution/spawner.js.map +1 -1
  135. package/dist/lib/execution/storage.js +2 -1
  136. package/dist/lib/execution/storage.js.map +1 -1
  137. package/dist/lib/execution/ticket-refs.d.ts +71 -0
  138. package/dist/lib/execution/ticket-refs.js +125 -0
  139. package/dist/lib/execution/ticket-refs.js.map +1 -0
  140. package/dist/lib/execution/types.d.ts +7 -2
  141. package/dist/lib/execution/types.js +5 -3
  142. package/dist/lib/execution/types.js.map +1 -1
  143. package/dist/lib/external-issues/utils.d.ts +25 -0
  144. package/dist/lib/external-issues/utils.js +32 -0
  145. package/dist/lib/external-issues/utils.js.map +1 -0
  146. package/dist/lib/gc/index.d.ts +179 -0
  147. package/dist/lib/gc/index.js +655 -0
  148. package/dist/lib/gc/index.js.map +1 -0
  149. package/dist/lib/mcp/tools/action.js +1 -1
  150. package/dist/lib/mcp/tools/action.js.map +1 -1
  151. package/dist/lib/mcp/tools/ticket.js +1 -1
  152. package/dist/lib/mcp/tools/ticket.js.map +1 -1
  153. package/dist/lib/orchestrate/actions.js +30 -0
  154. package/dist/lib/orchestrate/actions.js.map +1 -1
  155. package/dist/lib/orchestrate/poller.js +3 -3
  156. package/dist/lib/orchestrate/poller.js.map +1 -1
  157. package/dist/lib/orchestrate/presets.js +2 -1
  158. package/dist/lib/orchestrate/presets.js.map +1 -1
  159. package/dist/lib/orchestrate/types.d.ts +1 -1
  160. package/dist/lib/orchestrate/types.js +1 -0
  161. package/dist/lib/orchestrate/types.js.map +1 -1
  162. package/dist/lib/pmo/index.js +1 -1
  163. package/dist/lib/pmo/index.js.map +1 -1
  164. package/dist/lib/pmo/markdown.js +1 -1
  165. package/dist/lib/pmo/markdown.js.map +1 -1
  166. package/dist/lib/pmo/schema.d.ts +3 -1
  167. package/dist/lib/pmo/schema.js +26 -2
  168. package/dist/lib/pmo/schema.js.map +1 -1
  169. package/dist/lib/pmo/storage/actions.js +1 -1
  170. package/dist/lib/pmo/storage/actions.js.map +1 -1
  171. package/dist/lib/pmo/storage/base.js +37 -15
  172. package/dist/lib/pmo/storage/base.js.map +1 -1
  173. package/dist/lib/pmo/storage/projects.js +2 -1
  174. package/dist/lib/pmo/storage/projects.js.map +1 -1
  175. package/dist/lib/pmo/storage/statuses.js +1 -1
  176. package/dist/lib/pmo/storage/statuses.js.map +1 -1
  177. package/dist/lib/pmo/storage/subtasks.js +1 -1
  178. package/dist/lib/pmo/storage/subtasks.js.map +1 -1
  179. package/dist/lib/pmo/storage/templates.js +1 -1
  180. package/dist/lib/pmo/storage/templates.js.map +1 -1
  181. package/dist/lib/pmo/storage/tickets.js +2 -1
  182. package/dist/lib/pmo/storage/tickets.js.map +1 -1
  183. package/dist/lib/pmo/storage/workflow-rules.js +1 -1
  184. package/dist/lib/pmo/storage/workflow-rules.js.map +1 -1
  185. package/dist/lib/pmo/utils.d.ts +6 -189
  186. package/dist/lib/pmo/utils.js +6 -306
  187. package/dist/lib/pmo/utils.js.map +1 -1
  188. package/dist/lib/prompt-json.d.ts +31 -0
  189. package/dist/lib/prompt-json.js.map +1 -1
  190. package/dist/lib/providers/auto-mapper.d.ts +45 -0
  191. package/dist/lib/providers/auto-mapper.js +115 -0
  192. package/dist/lib/providers/auto-mapper.js.map +1 -0
  193. package/dist/lib/providers/state-intents.d.ts +20 -0
  194. package/dist/lib/providers/state-intents.js +61 -7
  195. package/dist/lib/providers/state-intents.js.map +1 -1
  196. package/dist/lib/providers/state-resolution.d.ts +15 -11
  197. package/dist/lib/providers/state-resolution.js +54 -48
  198. package/dist/lib/providers/state-resolution.js.map +1 -1
  199. package/dist/lib/providers/transition-map.d.ts +59 -0
  200. package/dist/lib/providers/transition-map.js +113 -0
  201. package/dist/lib/providers/transition-map.js.map +1 -0
  202. package/dist/lib/session/heartbeat.js +1 -1
  203. package/dist/lib/session/heartbeat.js.map +1 -1
  204. package/dist/lib/session/index.d.ts +3 -1
  205. package/dist/lib/session/index.js +3 -1
  206. package/dist/lib/session/index.js.map +1 -1
  207. package/dist/lib/session/tmux-watchdog.d.ts +157 -0
  208. package/dist/lib/session/tmux-watchdog.js +424 -0
  209. package/dist/lib/session/tmux-watchdog.js.map +1 -0
  210. package/dist/lib/session/watcher.d.ts +22 -4
  211. package/dist/lib/session/watcher.js +66 -8
  212. package/dist/lib/session/watcher.js.map +1 -1
  213. package/dist/lib/sync/daemon-process.d.ts +9 -0
  214. package/dist/lib/sync/daemon-process.js +184 -0
  215. package/dist/lib/sync/daemon-process.js.map +1 -0
  216. package/dist/lib/sync/daemon.d.ts +39 -0
  217. package/dist/lib/sync/daemon.js +91 -0
  218. package/dist/lib/sync/daemon.js.map +1 -0
  219. package/dist/lib/sync/engine.d.ts +38 -0
  220. package/dist/lib/sync/engine.js +145 -0
  221. package/dist/lib/sync/engine.js.map +1 -0
  222. package/dist/lib/sync/merge-queue.d.ts +116 -0
  223. package/dist/lib/sync/merge-queue.js +321 -0
  224. package/dist/lib/sync/merge-queue.js.map +1 -0
  225. package/dist/lib/sync/reconciler.d.ts +44 -0
  226. package/dist/lib/sync/reconciler.js +88 -0
  227. package/dist/lib/sync/reconciler.js.map +1 -0
  228. package/dist/lib/utils/text.d.ts +44 -0
  229. package/dist/lib/utils/text.js +72 -0
  230. package/dist/lib/utils/text.js.map +1 -0
  231. package/dist/lib/work-lifecycle/post-execution.js +1 -1
  232. package/dist/lib/work-lifecycle/post-execution.js.map +1 -1
  233. package/dist/lib/work-lifecycle/settings.d.ts +138 -0
  234. package/dist/lib/work-lifecycle/settings.js +213 -0
  235. package/dist/lib/work-lifecycle/settings.js.map +1 -0
  236. package/dist/lib/work-lifecycle/transition.d.ts +73 -0
  237. package/dist/lib/work-lifecycle/transition.js +124 -0
  238. package/dist/lib/work-lifecycle/transition.js.map +1 -0
  239. package/oclif.manifest.json +3235 -3380
  240. package/package.json +1 -1
  241. package/dist/commands/action/create.d.ts +0 -26
  242. package/dist/commands/action/create.js +0 -245
  243. package/dist/commands/action/create.js.map +0 -1
  244. package/dist/commands/action/delete.d.ts +0 -18
  245. package/dist/commands/action/delete.js +0 -78
  246. package/dist/commands/action/delete.js.map +0 -1
  247. package/dist/commands/action/index.js +0 -103
  248. package/dist/commands/action/index.js.map +0 -1
  249. package/dist/commands/action/list.d.ts +0 -15
  250. package/dist/commands/action/list.js +0 -90
  251. package/dist/commands/action/list.js.map +0 -1
  252. package/dist/commands/action/run.d.ts +0 -20
  253. package/dist/commands/action/run.js +0 -188
  254. package/dist/commands/action/run.js.map +0 -1
  255. package/dist/commands/action/show.d.ts +0 -17
  256. package/dist/commands/action/show.js +0 -78
  257. package/dist/commands/action/show.js.map +0 -1
  258. package/dist/commands/action/update.d.ts +0 -27
  259. package/dist/commands/action/update.js +0 -288
  260. package/dist/commands/action/update.js.map +0 -1
@@ -1,37 +1,11 @@
1
1
  /**
2
- * PMO Utility Functions
3
- */
4
- /**
5
- * Convert a string to a URL-safe slug
6
- */
7
- export function slugify(text) {
8
- return text
9
- .toLowerCase()
10
- .trim()
11
- .replace(/[^\w\s-]/g, '') // Remove non-word chars (except spaces and hyphens)
12
- .replace(/[\s_]+/g, '-') // Replace spaces and underscores with hyphens
13
- .replace(/-+/g, '-') // Replace multiple hyphens with single hyphen
14
- .replace(/^-+|-+$/g, '') // Remove leading/trailing hyphens
15
- .substring(0, 100); // Limit length
16
- }
17
- /**
18
- * Format a date as ISO string (date only)
19
- */
20
- export function formatDate(date) {
21
- return date.toISOString().split('T')[0];
22
- }
23
- /**
24
- * Format a date as ISO timestamp
25
- */
26
- export function formatTimestamp(date) {
27
- return date.toISOString();
28
- }
29
- /**
30
- * Parse an ISO date string
2
+ * PMO-internal utility functions.
3
+ *
4
+ * Shared utilities have been relocated:
5
+ * - Text/general: lib/utils/text.ts
6
+ * - Work column/priority/review gate settings: lib/work-lifecycle/settings.ts
7
+ * - External issue metadata: lib/external-issues/utils.ts
31
8
  */
32
- export function parseDate(str) {
33
- return new Date(str);
34
- }
35
9
  /**
36
10
  * Entity type prefixes for ID generation
37
11
  */
@@ -89,278 +63,4 @@ export function generateEntityId(db, entityType) {
89
63
  const numStr = nextNum.toString().padStart(3, '0');
90
64
  return `${typePrefix}-${numStr}`;
91
65
  }
92
- /**
93
- * Parse an entity ID into its components.
94
- *
95
- * Format: TKT-001 → { entityType: 'TKT', number: 1 }
96
- *
97
- * @param id - Entity ID to parse
98
- * @returns Parsed components, or null if invalid format
99
- */
100
- export function parseEntityId(id) {
101
- if (!id)
102
- return null;
103
- const match = id.match(/^([A-Z]+)-(\d+)$/);
104
- if (match) {
105
- return {
106
- entityType: match[1],
107
- number: parseInt(match[2], 10),
108
- raw: id,
109
- };
110
- }
111
- return null;
112
- }
113
- /**
114
- * Deep clone an object
115
- */
116
- export function deepClone(obj) {
117
- return JSON.parse(JSON.stringify(obj));
118
- }
119
- // =============================================================================
120
- // Work Column Settings
121
- // =============================================================================
122
- /**
123
- * Default column names for work commands (Linear-style workflow)
124
- *
125
- * Linear-style: Backlog → Planned → In Progress → Review → Done
126
- * - planned: Move tickets here when scheduled/assigned
127
- * - in_progress: Move tickets here when work starts
128
- * - review: Move tickets here when work is ready for review
129
- * - done: Move tickets here when work is complete (reviewed/merged)
130
- */
131
- export const DEFAULT_WORK_COLUMNS = {
132
- planned: 'Planned',
133
- in_progress: 'In Progress',
134
- review: 'Review',
135
- done: 'Done',
136
- };
137
- /**
138
- * Get a work column setting from pmo_settings with fallback to default.
139
- * Column matching is case-insensitive.
140
- *
141
- * Settings keys:
142
- * - column_in_progress: Column to move tickets to when work starts
143
- * - column_review: Column to move tickets to when work is ready for review
144
- * - column_done: Column to move tickets to when work is complete
145
- *
146
- * @param db - Database instance
147
- * @param columnType - Type of column (in_progress, review, done)
148
- * @returns The configured column name, or the default if not set
149
- */
150
- export function getWorkColumnSetting(db, columnType) {
151
- const settingKey = `column_${columnType}`;
152
- const row = db.prepare(`SELECT value FROM pmo_settings WHERE key = ?`).get(settingKey);
153
- return row?.value || DEFAULT_WORK_COLUMNS[columnType];
154
- }
155
- /**
156
- * Set a work column setting in pmo_settings.
157
- *
158
- * @param db - Database instance
159
- * @param columnType - Type of column (in_progress, review, done)
160
- * @param columnName - Name of the column to use
161
- */
162
- export function setWorkColumnSetting(db, columnType, columnName) {
163
- const settingKey = `column_${columnType}`;
164
- db.prepare(`
165
- INSERT INTO pmo_settings (key, value) VALUES (?, ?)
166
- ON CONFLICT(key) DO UPDATE SET value = ?
167
- `).run(settingKey, columnName, columnName);
168
- }
169
- /**
170
- * Find a column by configured name (case-insensitive match).
171
- * Returns the actual column name from the board if found, null otherwise.
172
- *
173
- * @param columnNames - Array of column names from the board
174
- * @param targetColumn - The column name to find (from settings or default)
175
- * @returns The matching column name, or null if not found
176
- */
177
- export function findColumnByName(columnNames, targetColumn) {
178
- const targetLower = targetColumn.toLowerCase();
179
- // First try exact match (case-insensitive)
180
- const exactMatch = columnNames.find(col => col.toLowerCase() === targetLower);
181
- if (exactMatch)
182
- return exactMatch;
183
- // Then try partial match (contains)
184
- const partialMatch = columnNames.find(col => col.toLowerCase().includes(targetLower) ||
185
- targetLower.includes(col.toLowerCase()));
186
- return partialMatch || null;
187
- }
188
- /**
189
- * Check if two arrays have the same elements (order-independent)
190
- */
191
- export function arraysEqual(a, b) {
192
- if (a.length !== b.length)
193
- return false;
194
- const sortedA = [...a].sort();
195
- const sortedB = [...b].sort();
196
- return sortedA.every((val, idx) => val === sortedB[idx]);
197
- }
198
- // =============================================================================
199
- // Workspace Priority Settings
200
- // =============================================================================
201
- /**
202
- * Default priority scale (backwards compatible with hardcoded P0-P3).
203
- */
204
- export const DEFAULT_PRIORITIES = ['P0', 'P1', 'P2', 'P3'];
205
- /**
206
- * Settings key for storing workspace priorities.
207
- */
208
- const PRIORITIES_SETTING_KEY = 'priorities';
209
- /**
210
- * Get the workspace priority scale from pmo_settings.
211
- * Returns the user-defined priority scale, or DEFAULT_PRIORITIES if not set.
212
- *
213
- * Priority values are ordered strings - position in array determines sort order.
214
- * Index 0 is highest priority.
215
- *
216
- * @param db - Database instance
217
- * @returns Array of priority strings ordered from highest to lowest
218
- */
219
- export function getWorkspacePriorities(db) {
220
- const row = db.prepare(`SELECT value FROM pmo_settings WHERE key = ?`).get(PRIORITIES_SETTING_KEY);
221
- if (!row)
222
- return [...DEFAULT_PRIORITIES];
223
- try {
224
- const parsed = JSON.parse(row.value);
225
- if (Array.isArray(parsed) && parsed.length > 0 && parsed.every((p) => typeof p === 'string')) {
226
- return parsed;
227
- }
228
- return [...DEFAULT_PRIORITIES];
229
- }
230
- catch {
231
- return [...DEFAULT_PRIORITIES];
232
- }
233
- }
234
- /**
235
- * Set the workspace priority scale in pmo_settings.
236
- *
237
- * @param db - Database instance
238
- * @param priorities - Array of priority strings ordered from highest to lowest
239
- */
240
- export function setWorkspacePriorities(db, priorities) {
241
- const value = JSON.stringify(priorities);
242
- db.prepare(`
243
- INSERT INTO pmo_settings (key, value) VALUES (?, ?)
244
- ON CONFLICT(key) DO UPDATE SET value = ?
245
- `).run(PRIORITIES_SETTING_KEY, value, value);
246
- }
247
- /**
248
- * Check if a value is a valid priority for the workspace.
249
- *
250
- * @param db - Database instance
251
- * @param value - Value to check
252
- * @returns true if the value is in the workspace priority scale
253
- */
254
- export function isValidWorkspacePriority(db, value) {
255
- const priorities = getWorkspacePriorities(db);
256
- return priorities.includes(value);
257
- }
258
- /**
259
- * Get the sort index for a priority value.
260
- * Returns the position in the priority array (0 = highest priority).
261
- * Returns Infinity for unknown priorities (sorts last).
262
- *
263
- * @param db - Database instance
264
- * @param value - Priority value
265
- * @returns Sort index (lower = higher priority)
266
- */
267
- export function getPrioritySortIndex(db, value) {
268
- if (!value)
269
- return Infinity;
270
- const priorities = getWorkspacePriorities(db);
271
- const index = priorities.indexOf(value);
272
- return index !== -1 ? index : Infinity;
273
- }
274
- /**
275
- * Valid review gate modes.
276
- */
277
- export const REVIEW_GATE_MODES = ['required', 'auto', 'post'];
278
- /**
279
- * Default review gate mode for workspace.
280
- */
281
- export const DEFAULT_REVIEW_GATE = 'required';
282
- /**
283
- * Settings key for workspace-level review gate default.
284
- */
285
- const REVIEW_GATE_SETTING_KEY = 'review_gate';
286
- /**
287
- * Get the workspace review gate default from pmo_settings.
288
- * Returns the configured mode, or 'required' if not set.
289
- *
290
- * @param db - Database instance
291
- * @returns The configured review gate mode
292
- */
293
- export function getReviewGateSetting(db) {
294
- const row = db.prepare(`SELECT value FROM pmo_settings WHERE key = ?`).get(REVIEW_GATE_SETTING_KEY);
295
- const value = row?.value;
296
- if (value === 'required' || value === 'auto' || value === 'post') {
297
- return value;
298
- }
299
- return DEFAULT_REVIEW_GATE;
300
- }
301
- /**
302
- * Set the workspace review gate default in pmo_settings.
303
- *
304
- * @param db - Database instance
305
- * @param mode - Review gate mode to set
306
- */
307
- export function setReviewGateSetting(db, mode) {
308
- db.prepare(`
309
- INSERT INTO pmo_settings (key, value) VALUES (?, ?)
310
- ON CONFLICT(key) DO UPDATE SET value = ?
311
- `).run(REVIEW_GATE_SETTING_KEY, mode, mode);
312
- }
313
- /**
314
- * Check if a value is a valid review gate mode.
315
- */
316
- export function isValidReviewGateMode(value) {
317
- return REVIEW_GATE_MODES.includes(value);
318
- }
319
- /**
320
- * Resolve the effective review gate mode given the hierarchy of overrides.
321
- * Most specific wins: per-spawn > per-action > workspace default.
322
- *
323
- * @param spawnOverride - Value from --review-gate flag on `prlt work start`
324
- * @param actionOverride - Value from the action's review_gate column
325
- * @param db - Database instance for workspace default lookup
326
- * @returns The resolved review gate mode
327
- */
328
- export function resolveReviewGate(spawnOverride, actionOverride, db) {
329
- if (spawnOverride)
330
- return spawnOverride;
331
- if (actionOverride)
332
- return actionOverride;
333
- return getReviewGateSetting(db);
334
- }
335
- // =============================================================================
336
- // External Metadata Helpers
337
- // =============================================================================
338
- /**
339
- * Extract external issue metadata from a ticket's metadata field.
340
- * Returns the external source, key (e.g. PRLT-1065), id, and url.
341
- */
342
- export function getTicketExternalMetadata(ticket) {
343
- const metadata = (typeof ticket === 'object'
344
- && ticket !== null
345
- && 'metadata' in ticket
346
- && typeof ticket.metadata === 'object'
347
- && ticket.metadata !== null
348
- ? ticket.metadata
349
- : {});
350
- return {
351
- source: typeof metadata.external_source === 'string' ? metadata.external_source : undefined,
352
- key: typeof metadata.external_key === 'string' ? metadata.external_key : undefined,
353
- id: typeof metadata.external_id === 'string' ? metadata.external_id : undefined,
354
- url: typeof metadata.external_url === 'string' ? metadata.external_url : undefined,
355
- };
356
- }
357
- /**
358
- * Resolve the display/branch ticket ID. When a ticket was imported from an
359
- * external provider (e.g. Linear), the external key (PRLT-xxx) is preferred
360
- * over the internal PMO ID (TKT-xxx).
361
- */
362
- export function resolveExternalTicketId(ticket) {
363
- const external = getTicketExternalMetadata(ticket);
364
- return external.key || ticket.id;
365
- }
366
66
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/pmo/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,WAAW,EAAE;SACb,IAAI,EAAE;SACN,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,oDAAoD;SAC7E,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAG,8CAA8C;SACxE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAO,8CAA8C;SACxE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAG,kCAAkC;SAC5D,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAS,eAAe;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAU;IACxC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,MAAM;CACP,CAAC;AAIX;;GAEG;AACH,MAAM,aAAa,GAAG;IACpB,MAAM,EAAE,aAAa;IACrB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,cAAc;CACf,CAAC;AAYX;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAC9B,EAAgB,EAChB,UAAsB;IAEtB,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,QAAQ,UAAU,KAAK,CAAC;IAE3C,qDAAqD;IACrD,mDAAmD;IACnD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,yBAAyB;IAClE,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAC1B,8BAA8B,SAAS,GAAG,CAAC,kCAAkC,SAAS,EAAE,CACzF,CAAC,GAAG,EAA4C,CAAC;IAClD,MAAM,aAAa,GAAG,SAAS,EAAE,OAAO,IAAI,CAAC,CAAC;IAE9C,sBAAsB;IACtB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,8CAA8C,CAC/C,CAAC,GAAG,CAAC,UAAU,CAAkC,CAAC;IAEnD,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,0DAA0D;IAC1D,IAAI,OAAO,IAAI,aAAa,EAAE,CAAC;QAC7B,OAAO,GAAG,aAAa,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,iBAAiB;IACjB,EAAE,CAAC,OAAO,CAAC;;;GAGV,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAE7D,iDAAiD;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEnD,OAAO,GAAG,UAAU,IAAI,MAAM,EAAE,CAAC;AACnC,CAAC;AAWD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAErB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;YACpB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC9B,GAAG,EAAE,EAAE;SACR,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAI,GAAM;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AACxC,CAAC;AAED,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACJ,CAAC;AAIX;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAClC,EAAgB,EAChB,UAA0B;IAE1B,MAAM,UAAU,GAAG,UAAU,UAAU,EAAE,CAAC;IAE1C,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,8CAA8C,CAC/C,CAAC,GAAG,CAAC,UAAU,CAAkC,CAAC;IAEnD,OAAO,GAAG,EAAE,KAAK,IAAI,oBAAoB,CAAC,UAAU,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,EAAgB,EAChB,UAA0B,EAC1B,UAAkB;IAElB,MAAM,UAAU,GAAG,UAAU,UAAU,EAAE,CAAC;IAE1C,EAAE,CAAC,OAAO,CAAC;;;GAGV,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAqB,EACrB,YAAoB;IAEpB,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAE/C,2CAA2C;IAC3C,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CACjC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,WAAW,CACzC,CAAC;IACF,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAElC,oCAAoC;IACpC,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CACnC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QACvC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAC/C,CAAC;IAEF,OAAO,YAAY,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAI,CAAM,EAAE,CAAM;IAC3C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACvC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7B,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;AAEnE;;GAEG;AACH,MAAM,sBAAsB,GAAG,YAAY,CAAA;AAE3C;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAgB;IACrD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,8CAA8C,CAC/C,CAAC,GAAG,CAAC,sBAAsB,CAAkC,CAAA;IAE9D,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,GAAG,kBAAkB,CAAC,CAAA;IAExC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YACtG,OAAO,MAAM,CAAA;QACf,CAAC;QACD,OAAO,CAAC,GAAG,kBAAkB,CAAC,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,kBAAkB,CAAC,CAAA;IAChC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAgB,EAAE,UAAoB;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IAExC,EAAE,CAAC,OAAO,CAAC;;;GAGV,CAAC,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,EAAgB,EAAE,KAAa;IACtE,MAAM,UAAU,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAA;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAgB,EAAE,KAAgC;IACrF,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAA;IAC3B,MAAM,UAAU,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACvC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAA;AACxC,CAAC;AAQD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA8B,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAU,CAAA;AAEjG;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAmB,UAAU,CAAA;AAE7D;;GAEG;AACH,MAAM,uBAAuB,GAAG,aAAa,CAAA;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAgB;IACnD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,8CAA8C,CAC/C,CAAC,GAAG,CAAC,uBAAuB,CAAkC,CAAA;IAE/D,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,CAAA;IACxB,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACjE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAgB,EAAE,IAAoB;IACzE,EAAE,CAAC,OAAO,CAAC;;;GAGV,CAAC,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,KAAuB,CAAC,CAAA;AAC5D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,aAAyC,EACzC,cAA0C,EAC1C,EAAgB;IAEhB,IAAI,aAAa;QAAE,OAAO,aAAa,CAAA;IACvC,IAAI,cAAc;QAAE,OAAO,cAAc,CAAA;IACzC,OAAO,oBAAoB,CAAC,EAAE,CAAC,CAAA;AACjC,CAAC;AAED,gFAAgF;AAChF,4BAA4B;AAC5B,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAgE;IAMxG,MAAM,QAAQ,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ;WACvC,MAAM,KAAK,IAAI;WACf,UAAU,IAAI,MAAM;WACpB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;WACnC,MAAM,CAAC,QAAQ,KAAK,IAAI;QAC3B,CAAC,CAAC,MAAM,CAAC,QAAQ;QACjB,CAAC,CAAC,EAAE,CAA4B,CAAA;IAElC,OAAO;QACL,MAAM,EAAE,OAAO,QAAQ,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QAC3F,GAAG,EAAE,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAClF,EAAE,EAAE,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QAC/E,GAAG,EAAE,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KACnF,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAgE;IACtG,MAAM,QAAQ,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAClD,OAAO,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAA;AAClC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/pmo/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,MAAM;CACP,CAAC;AAIX;;GAEG;AACH,MAAM,aAAa,GAAG;IACpB,MAAM,EAAE,aAAa;IACrB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,cAAc;CACf,CAAC;AAYX;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAC9B,EAAgB,EAChB,UAAsB;IAEtB,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,QAAQ,UAAU,KAAK,CAAC;IAE3C,qDAAqD;IACrD,mDAAmD;IACnD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,yBAAyB;IAClE,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAC1B,8BAA8B,SAAS,GAAG,CAAC,kCAAkC,SAAS,EAAE,CACzF,CAAC,GAAG,EAA4C,CAAC;IAClD,MAAM,aAAa,GAAG,SAAS,EAAE,OAAO,IAAI,CAAC,CAAC;IAE9C,sBAAsB;IACtB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,8CAA8C,CAC/C,CAAC,GAAG,CAAC,UAAU,CAAkC,CAAC;IAEnD,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,0DAA0D;IAC1D,IAAI,OAAO,IAAI,aAAa,EAAE,CAAC;QAC7B,OAAO,GAAG,aAAa,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,iBAAiB;IACjB,EAAE,CAAC,OAAO,CAAC;;;GAGV,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAE7D,iDAAiD;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEnD,OAAO,GAAG,UAAU,IAAI,MAAM,EAAE,CAAC;AACnC,CAAC"}
@@ -108,6 +108,34 @@ export interface OutputMetadata {
108
108
  method: string;
109
109
  provider: string;
110
110
  };
111
+ /** Dry-run mode indicator (PRLT-1132) */
112
+ dryRun?: boolean;
113
+ /** Resolved execution environment */
114
+ environment?: string;
115
+ /** Resolved executor type */
116
+ executor?: string;
117
+ /** Preflight check results (PRLT-1132) */
118
+ preflight?: {
119
+ passed: boolean;
120
+ checks: Array<{
121
+ name: string;
122
+ label: string;
123
+ passed: boolean;
124
+ severity: string;
125
+ message: string;
126
+ fix: string | null;
127
+ }>;
128
+ errors: number;
129
+ warnings: number;
130
+ };
131
+ /** Error message from spawn failure */
132
+ spawnError?: string;
133
+ /** Diagnostic check results after spawn failure */
134
+ diagnostics?: Array<{
135
+ check: string;
136
+ message: string;
137
+ fix: string | null;
138
+ }>;
111
139
  }
112
140
  /**
113
141
  * JSON output when a prompt would be shown
@@ -204,6 +232,8 @@ export interface ExecutionResultJsonOutput {
204
232
  sessionId?: string;
205
233
  containerId?: string;
206
234
  status: string;
235
+ /** Error message when status is 'failed' (PRLT-1132) */
236
+ error?: string;
207
237
  }>;
208
238
  successCount: number;
209
239
  failCount: number;
@@ -442,4 +472,5 @@ export declare function outputExecutionResultAsJson(executions: Array<{
442
472
  sessionId?: string;
443
473
  containerId?: string;
444
474
  status: string;
475
+ error?: string;
445
476
  }>, successCount: number, failCount: number, metadata: OutputMetadata): void;
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-json.js","sourceRoot":"","sources":["../../src/lib/prompt-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-json.js","sourceRoot":"","sources":["../../src/lib/prompt-json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Auto-Mapper for Transition Intents
3
+ *
4
+ * Auto-guesses intent-to-state mappings when connecting a board.
5
+ * Uses provider state types first, then name heuristics.
6
+ *
7
+ * Each provider can have different state type vocabularies:
8
+ * - Linear: triage, backlog, unstarted, started, completed, canceled
9
+ * - Jira: new, indeterminate, done, category-based
10
+ * - Trello: no types (name heuristics only)
11
+ */
12
+ import type { TransitionIntent } from './state-intents.js';
13
+ export interface BoardState {
14
+ id: string;
15
+ name: string;
16
+ type?: string;
17
+ position?: number;
18
+ }
19
+ export interface IntentMapping {
20
+ intent: TransitionIntent;
21
+ stateName: string;
22
+ stateId: string;
23
+ confidence: 'type' | 'name' | 'none';
24
+ }
25
+ /**
26
+ * Auto-guess transition intent mappings from a list of board states.
27
+ *
28
+ * Strategy:
29
+ * 1. For each intent, check if any state has a matching type (provider-specific)
30
+ * 2. If no type match, fall back to name heuristics from DEFAULT_INTENTS aliases
31
+ * 3. States can only be mapped to one intent (first match wins by intent priority)
32
+ *
33
+ * @param states - Available board states from the provider
34
+ * @param providerType - Provider type for type-based mapping ('linear', 'jira', etc.)
35
+ * @returns Array of intent mappings, one per matched intent
36
+ */
37
+ export declare function autoMapIntents(states: BoardState[], providerType?: 'linear' | 'jira' | 'trello' | 'asana' | 'shortcut' | 'clickup' | 'pmo'): IntentMapping[];
38
+ /**
39
+ * Format intent mappings for display to the user.
40
+ *
41
+ * @param mappings - The auto-guessed mappings
42
+ * @param allStates - All available board states
43
+ * @returns Array of display lines
44
+ */
45
+ export declare function formatMappingTable(mappings: IntentMapping[], allStates: BoardState[]): string[];
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Auto-Mapper for Transition Intents
3
+ *
4
+ * Auto-guesses intent-to-state mappings when connecting a board.
5
+ * Uses provider state types first, then name heuristics.
6
+ *
7
+ * Each provider can have different state type vocabularies:
8
+ * - Linear: triage, backlog, unstarted, started, completed, canceled
9
+ * - Jira: new, indeterminate, done, category-based
10
+ * - Trello: no types (name heuristics only)
11
+ */
12
+ import { matchIntentByAliases, getDefaultIntent } from './state-intents.js';
13
+ /**
14
+ * Map from Linear state types to transition intents.
15
+ * Linear has no native "review" type, so that's always resolved by name heuristics.
16
+ */
17
+ const LINEAR_TYPE_TO_INTENT = {
18
+ started: 'started',
19
+ completed: 'completed',
20
+ canceled: 'dropped',
21
+ cancelled: 'dropped',
22
+ backlog: 'paused',
23
+ unstarted: 'ready',
24
+ };
25
+ /**
26
+ * Auto-guess transition intent mappings from a list of board states.
27
+ *
28
+ * Strategy:
29
+ * 1. For each intent, check if any state has a matching type (provider-specific)
30
+ * 2. If no type match, fall back to name heuristics from DEFAULT_INTENTS aliases
31
+ * 3. States can only be mapped to one intent (first match wins by intent priority)
32
+ *
33
+ * @param states - Available board states from the provider
34
+ * @param providerType - Provider type for type-based mapping ('linear', 'jira', etc.)
35
+ * @returns Array of intent mappings, one per matched intent
36
+ */
37
+ export function autoMapIntents(states, providerType = 'pmo') {
38
+ const mappings = [];
39
+ const usedStateIds = new Set();
40
+ // Priority order for intent resolution
41
+ const intentOrder = [
42
+ 'started',
43
+ 'needs_review',
44
+ 'completed',
45
+ 'paused',
46
+ 'ready',
47
+ 'dropped',
48
+ ];
49
+ for (const intent of intentOrder) {
50
+ // 1. Try type-based mapping (provider-specific)
51
+ if (providerType === 'linear') {
52
+ const typeMatch = states.find(s => s.type && LINEAR_TYPE_TO_INTENT[s.type] === intent && !usedStateIds.has(s.id));
53
+ if (typeMatch) {
54
+ mappings.push({
55
+ intent,
56
+ stateName: typeMatch.name,
57
+ stateId: typeMatch.id,
58
+ confidence: 'type',
59
+ });
60
+ usedStateIds.add(typeMatch.id);
61
+ continue;
62
+ }
63
+ }
64
+ // 2. Fall back to name heuristics from DEFAULT_INTENTS
65
+ const intentDef = getDefaultIntent(intent);
66
+ if (intentDef) {
67
+ const availableStates = states.filter(s => !usedStateIds.has(s.id));
68
+ const nameMatch = matchIntentByAliases(availableStates.map(s => ({ id: s.id, name: s.name })), intentDef);
69
+ if (nameMatch) {
70
+ mappings.push({
71
+ intent,
72
+ stateName: nameMatch.name,
73
+ stateId: nameMatch.id,
74
+ confidence: 'name',
75
+ });
76
+ usedStateIds.add(nameMatch.id);
77
+ continue;
78
+ }
79
+ }
80
+ }
81
+ return mappings;
82
+ }
83
+ /**
84
+ * Format intent mappings for display to the user.
85
+ *
86
+ * @param mappings - The auto-guessed mappings
87
+ * @param allStates - All available board states
88
+ * @returns Array of display lines
89
+ */
90
+ export function formatMappingTable(mappings, allStates) {
91
+ const lines = [];
92
+ const maxStateLen = Math.max(...allStates.map(s => s.name.length), 10);
93
+ const maxIntentLen = Math.max(...mappings.map(m => m.intent.length), 10);
94
+ // Header
95
+ lines.push(`${'Board State'.padEnd(maxStateLen + 2)}${'Intent'.padEnd(maxIntentLen + 2)}Work Command`);
96
+ lines.push(`${'─'.repeat(maxStateLen + 2)}${'─'.repeat(maxIntentLen + 2)}${'─'.repeat(20)}`);
97
+ const intentToCommand = {
98
+ started: 'work start',
99
+ needs_review: 'work ready',
100
+ completed: 'work ship',
101
+ paused: 'work stop',
102
+ ready: 'work groom',
103
+ dropped: 'work drop',
104
+ };
105
+ // Map states to their intents
106
+ const stateToMapping = new Map(mappings.map(m => [m.stateId, m]));
107
+ for (const state of allStates) {
108
+ const mapping = stateToMapping.get(state.id);
109
+ const intentStr = mapping ? mapping.intent : '(unmapped)';
110
+ const commandStr = mapping ? intentToCommand[mapping.intent] || '' : '';
111
+ lines.push(`${state.name.padEnd(maxStateLen + 2)}${intentStr.padEnd(maxIntentLen + 2)}${commandStr}`);
112
+ }
113
+ return lines;
114
+ }
115
+ //# sourceMappingURL=auto-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-mapper.js","sourceRoot":"","sources":["../../../src/lib/providers/auto-mapper.ts"],"names":[],"mappings":"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"}
@@ -20,15 +20,35 @@ export interface SemanticIntent {
20
20
  /** Common state names that match this intent (case-insensitive) */
21
21
  aliases: string[];
22
22
  }
23
+ /**
24
+ * Transition intents — the canonical set of intents used by work commands.
25
+ *
26
+ * Each work primitive maps to exactly one transition intent:
27
+ * work start → started
28
+ * work ready → needs_review
29
+ * work ship → completed
30
+ * work stop → paused
31
+ * work groom → ready
32
+ * work drop → dropped
33
+ *
34
+ * These are the intents stored in the pmo_transition_map table.
35
+ */
36
+ export type TransitionIntent = 'started' | 'needs_review' | 'completed' | 'paused' | 'ready' | 'dropped';
37
+ export declare const TRANSITION_INTENTS: TransitionIntent[];
23
38
  /**
24
39
  * Default semantic intents shipped with the CLI.
25
40
  *
26
41
  * Order matters: when matching, the first alias match wins.
27
42
  * Aliases are matched case-insensitively.
43
+ *
44
+ * The `name` field uses the canonical transition intent names where applicable.
45
+ * Legacy names ('active', 'review', 'done', 'blocked') are kept as aliases
46
+ * within the new intents for backward compatibility.
28
47
  */
29
48
  export declare const DEFAULT_INTENTS: SemanticIntent[];
30
49
  /**
31
50
  * Get a default intent by name.
51
+ * Also resolves legacy intent names (active → started, review → needs_review, etc.)
32
52
  */
33
53
  export declare function getDefaultIntent(name: string): SemanticIntent | undefined;
34
54
  /**