@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
@@ -8,16 +8,28 @@
8
8
  * These cover the most common workflow states across Linear, Trello,
9
9
  * ClickUp, Jira, Shortcut, Asana, and custom PMO boards.
10
10
  */
11
+ export const TRANSITION_INTENTS = [
12
+ 'started',
13
+ 'needs_review',
14
+ 'completed',
15
+ 'paused',
16
+ 'ready',
17
+ 'dropped',
18
+ ];
11
19
  /**
12
20
  * Default semantic intents shipped with the CLI.
13
21
  *
14
22
  * Order matters: when matching, the first alias match wins.
15
23
  * Aliases are matched case-insensitively.
24
+ *
25
+ * The `name` field uses the canonical transition intent names where applicable.
26
+ * Legacy names ('active', 'review', 'done', 'blocked') are kept as aliases
27
+ * within the new intents for backward compatibility.
16
28
  */
17
29
  export const DEFAULT_INTENTS = [
18
30
  {
19
- name: 'active',
20
- description: 'Work has started',
31
+ name: 'started',
32
+ description: 'Work has begun',
21
33
  aliases: [
22
34
  'In Progress',
23
35
  'Working On',
@@ -30,7 +42,7 @@ export const DEFAULT_INTENTS = [
30
42
  ],
31
43
  },
32
44
  {
33
- name: 'review',
45
+ name: 'needs_review',
34
46
  description: 'Work is done, awaiting review',
35
47
  aliases: [
36
48
  'Review',
@@ -45,7 +57,7 @@ export const DEFAULT_INTENTS = [
45
57
  ],
46
58
  },
47
59
  {
48
- name: 'done',
60
+ name: 'completed',
49
61
  description: 'Work is complete',
50
62
  aliases: [
51
63
  'Done',
@@ -59,24 +71,66 @@ export const DEFAULT_INTENTS = [
59
71
  ],
60
72
  },
61
73
  {
62
- name: 'blocked',
63
- description: 'Work is stuck',
74
+ name: 'paused',
75
+ description: 'Work is stopped temporarily',
64
76
  aliases: [
65
77
  'Blocked',
66
78
  'On Hold',
67
79
  'Stuck',
68
80
  'Waiting',
69
81
  'Paused',
82
+ 'Not Working On',
70
83
  'Impediment',
71
84
  'Pending',
72
85
  ],
73
86
  },
87
+ {
88
+ name: 'ready',
89
+ description: 'Groomed and ready to start',
90
+ aliases: [
91
+ 'Ready',
92
+ 'Ready for Development',
93
+ 'Development Ready',
94
+ 'Planned',
95
+ 'Groomed',
96
+ 'To Do',
97
+ 'Todo',
98
+ 'Selected for Development',
99
+ 'Up Next',
100
+ ],
101
+ },
102
+ {
103
+ name: 'dropped',
104
+ description: 'Removed from active work entirely',
105
+ aliases: [
106
+ 'Canceled',
107
+ 'Cancelled',
108
+ 'Won\'t Do',
109
+ 'Won\'t Fix',
110
+ 'Archived',
111
+ 'Removed',
112
+ 'Dropped',
113
+ 'Discarded',
114
+ ],
115
+ },
74
116
  ];
117
+ /**
118
+ * Map from legacy intent names to the new canonical transition intent names.
119
+ * Used for backward compatibility with existing state-map config overrides.
120
+ */
121
+ const LEGACY_INTENT_MAP = {
122
+ active: 'started',
123
+ review: 'needs_review',
124
+ done: 'completed',
125
+ blocked: 'paused',
126
+ };
75
127
  /**
76
128
  * Get a default intent by name.
129
+ * Also resolves legacy intent names (active → started, review → needs_review, etc.)
77
130
  */
78
131
  export function getDefaultIntent(name) {
79
- return DEFAULT_INTENTS.find(i => i.name === name);
132
+ const resolved = LEGACY_INTENT_MAP[name] ?? name;
133
+ return DEFAULT_INTENTS.find(i => i.name === resolved);
80
134
  }
81
135
  /**
82
136
  * Try to match a state name against intent aliases (case-insensitive).
@@ -1 +1 @@
1
- {"version":3,"file":"state-intents.js","sourceRoot":"","sources":["../../../src/lib/providers/state-intents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAeH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqB;IAC/C;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE;YACP,aAAa;YACb,YAAY;YACZ,OAAO;YACP,gBAAgB;YAChB,SAAS;YACT,QAAQ;YACR,YAAY;YACZ,SAAS;SACV;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE;YACP,QAAQ;YACR,WAAW;YACX,cAAc;YACd,iBAAiB;YACjB,mBAAmB;YACnB,aAAa;YACb,IAAI;YACJ,kBAAkB;YAClB,gBAAgB;SACjB;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE;YACP,MAAM;YACN,UAAU;YACV,QAAQ;YACR,SAAS;YACT,QAAQ;YACR,UAAU;YACV,UAAU;YACV,UAAU;SACX;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE;YACP,SAAS;YACT,SAAS;YACT,OAAO;YACP,SAAS;YACT,QAAQ;YACR,YAAY;YACZ,SAAS;SACV;KACF;CACF,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,eAAoD,EACpD,MAAsB;IAEtB,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;IAE7D,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAA;QACvE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;IACzB,CAAC;IAED,yEAAyE;IACzE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACrC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CACrC,CAAA;QACD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;IACzB,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"state-intents.js","sourceRoot":"","sources":["../../../src/lib/providers/state-intents.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  /**
2
2
  * State Resolution Engine
3
3
  *
4
- * Resolves semantic intents (e.g., 'review', 'active', 'done') to actual
4
+ * Resolves semantic intents (e.g., 'started', 'needs_review', 'completed') to actual
5
5
  * PM tool states at runtime. Never caches state IDs across calls.
6
6
  *
7
7
  * Resolution flow:
8
8
  * 1. Always fetch fresh states from the PM provider
9
- * 2. Check user config `state-map.{intent}` overrides exact-match against fetched states
10
- * 3. Match against built-in semantic intent aliases
11
- * 4. No config + no alias match → LLM resolves (pass available states to LLM)
12
- * 5. No match → skip (don't move, log warning)
9
+ * 2. Check pmo_transition_mapexplicit user-confirmed mappings from `prlt connect`
10
+ * 3. Check user config `state-map.{intent}` overrides exact-match against fetched states
11
+ * 4. Match against built-in semantic intent aliases
12
+ * 5. No config + no alias match → LLM resolves (pass available states to LLM)
13
+ * 6. No match → skip (don't move, log warning)
13
14
  *
14
15
  * The same move() function works across Linear, Trello, ClickUp, Jira, etc. —
15
16
  * each provider implements fetchStates() differently but returns the same shape.
@@ -47,7 +48,7 @@ export interface StateResolutionResult {
47
48
  /** Whether the move succeeded */
48
49
  success: boolean;
49
50
  /** How the state was resolved */
50
- resolvedVia?: 'config' | 'alias' | 'llm' | 'skipped';
51
+ resolvedVia?: 'transition_map' | 'config' | 'alias' | 'llm' | 'skipped';
51
52
  /** The resolved state name */
52
53
  stateName?: string;
53
54
  /** The resolved state ID */
@@ -109,20 +110,23 @@ export interface MoveOptions {
109
110
  db?: Database.Database;
110
111
  /** Current state name — if provided, skip move when already in the resolved state */
111
112
  currentState?: string;
113
+ /** Provider name for transition map lookups (e.g., 'linear', 'pmo') */
114
+ providerName?: string;
112
115
  }
113
116
  /**
114
117
  * Move a ticket to a state matching a semantic intent.
115
118
  *
116
119
  * Resolution order:
117
120
  * 1. Fetch fresh states from the provider (never cache)
118
- * 2. Check user config for `state-map.{intent}` override exact match
119
- * 3. Match against built-in semantic intent aliases
120
- * 4. LLM fallback ask Claude which state matches the intent
121
- * 5. No match skip, return warning
121
+ * 2. Check pmo_transition_map for explicit mapping (from `prlt connect`)
122
+ * 3. Check user config for `state-map.{intent}` override → exact match
123
+ * 4. Match against built-in semantic intent aliases
124
+ * 5. LLM fallback ask Claude which state matches the intent
125
+ * 6. No match → skip, return warning
122
126
  *
123
127
  * @param pmProvider - The PM provider to fetch states from and move tickets in
124
128
  * @param ticketId - The ticket to move
125
- * @param intent - The semantic intent (e.g., 'review', 'active', 'done', 'blocked')
129
+ * @param intent - The semantic intent (e.g., 'started', 'needs_review', 'completed')
126
130
  * @param dbOrOptions - Database instance or options object
127
131
  * @returns Resolution result with success/failure and metadata
128
132
  */
@@ -1,15 +1,16 @@
1
1
  /**
2
2
  * State Resolution Engine
3
3
  *
4
- * Resolves semantic intents (e.g., 'review', 'active', 'done') to actual
4
+ * Resolves semantic intents (e.g., 'started', 'needs_review', 'completed') to actual
5
5
  * PM tool states at runtime. Never caches state IDs across calls.
6
6
  *
7
7
  * Resolution flow:
8
8
  * 1. Always fetch fresh states from the PM provider
9
- * 2. Check user config `state-map.{intent}` overrides exact-match against fetched states
10
- * 3. Match against built-in semantic intent aliases
11
- * 4. No config + no alias match → LLM resolves (pass available states to LLM)
12
- * 5. No match → skip (don't move, log warning)
9
+ * 2. Check pmo_transition_mapexplicit user-confirmed mappings from `prlt connect`
10
+ * 3. Check user config `state-map.{intent}` overrides exact-match against fetched states
11
+ * 4. Match against built-in semantic intent aliases
12
+ * 5. No config + no alias match → LLM resolves (pass available states to LLM)
13
+ * 6. No match → skip (don't move, log warning)
13
14
  *
14
15
  * The same move() function works across Linear, Trello, ClickUp, Jira, etc. —
15
16
  * each provider implements fetchStates() differently but returns the same shape.
@@ -17,6 +18,7 @@
17
18
  */
18
19
  import { SettingsStore } from '../database/settings-store.js';
19
20
  import { matchIntentByAliases, getDefaultIntent } from './state-intents.js';
21
+ import { TransitionMapStore } from './transition-map.js';
20
22
  /**
21
23
  * Config key prefix for state-map overrides.
22
24
  * e.g., `state-map.review` → "Awaiting Client Feedback"
@@ -175,14 +177,15 @@ export function createPMProviderAdapter(provider, storage, projectId) {
175
177
  *
176
178
  * Resolution order:
177
179
  * 1. Fetch fresh states from the provider (never cache)
178
- * 2. Check user config for `state-map.{intent}` override exact match
179
- * 3. Match against built-in semantic intent aliases
180
- * 4. LLM fallback ask Claude which state matches the intent
181
- * 5. No match skip, return warning
180
+ * 2. Check pmo_transition_map for explicit mapping (from `prlt connect`)
181
+ * 3. Check user config for `state-map.{intent}` override → exact match
182
+ * 4. Match against built-in semantic intent aliases
183
+ * 5. LLM fallback ask Claude which state matches the intent
184
+ * 6. No match → skip, return warning
182
185
  *
183
186
  * @param pmProvider - The PM provider to fetch states from and move tickets in
184
187
  * @param ticketId - The ticket to move
185
- * @param intent - The semantic intent (e.g., 'review', 'active', 'done', 'blocked')
188
+ * @param intent - The semantic intent (e.g., 'started', 'needs_review', 'completed')
186
189
  * @param dbOrOptions - Database instance or options object
187
190
  * @returns Resolution result with success/failure and metadata
188
191
  */
@@ -190,6 +193,7 @@ export async function move(pmProvider, ticketId, intent, dbOrOptions) {
190
193
  // Normalize arguments: support both `move(p, id, intent, db)` and `move(p, id, intent, { db, currentState })`
191
194
  let db;
192
195
  let currentState;
196
+ let providerName;
193
197
  if (dbOrOptions && typeof dbOrOptions === 'object' && 'prepare' in dbOrOptions) {
194
198
  // It's a Database instance (has .prepare method)
195
199
  db = dbOrOptions;
@@ -198,6 +202,7 @@ export async function move(pmProvider, ticketId, intent, dbOrOptions) {
198
202
  const opts = dbOrOptions;
199
203
  db = opts.db;
200
204
  currentState = opts.currentState;
205
+ providerName = opts.providerName;
201
206
  }
202
207
  // 1. Always fetch fresh states
203
208
  let states;
@@ -222,61 +227,62 @@ export async function move(pmProvider, ticketId, intent, dbOrOptions) {
222
227
  return false;
223
228
  return currentState.toLowerCase() === stateName.toLowerCase();
224
229
  };
225
- // 2. Check user config override
230
+ // Helper: attempt to move ticket to a matched state
231
+ const tryMove = async (match, resolvedVia) => {
232
+ if (isAlreadyInState(match.name)) {
233
+ return { success: false, resolvedVia, stateName: match.name, stateId: match.id };
234
+ }
235
+ const result = await pmProvider.moveTicket(ticketId, match.id);
236
+ return {
237
+ success: result.success,
238
+ resolvedVia,
239
+ stateName: match.name,
240
+ stateId: match.id,
241
+ error: result.error,
242
+ };
243
+ };
244
+ // 2. Check pmo_transition_map for explicit mapping
245
+ if (db && providerName) {
246
+ try {
247
+ const store = new TransitionMapStore(db);
248
+ const mappedStateName = store.resolveIntent(providerName, intent);
249
+ if (mappedStateName) {
250
+ const match = states.find(s => s.name.toLowerCase() === mappedStateName.toLowerCase());
251
+ if (match) {
252
+ return tryMove(match, 'transition_map');
253
+ }
254
+ // Mapped state name doesn't match available states — fall through
255
+ }
256
+ }
257
+ catch {
258
+ // Table may not exist yet (pre-migration) — fall through
259
+ }
260
+ }
261
+ // 3. Check user config override
226
262
  if (db) {
227
263
  const configOverride = getStateMapConfig(db, intent);
228
264
  if (configOverride) {
229
265
  const match = states.find(s => s.name.toLowerCase() === configOverride.toLowerCase());
230
266
  if (match) {
231
- if (isAlreadyInState(match.name)) {
232
- return { success: false, resolvedVia: 'config', stateName: match.name, stateId: match.id };
233
- }
234
- const result = await pmProvider.moveTicket(ticketId, match.id);
235
- return {
236
- success: result.success,
237
- resolvedVia: 'config',
238
- stateName: match.name,
239
- stateId: match.id,
240
- error: result.error,
241
- };
267
+ return tryMove(match, 'config');
242
268
  }
243
269
  // Config is set but no matching state — fall through to alias/LLM
244
270
  }
245
271
  }
246
- // 3. Match against built-in semantic intent aliases
272
+ // 4. Match against built-in semantic intent aliases
247
273
  const intentDef = getDefaultIntent(intent);
248
274
  if (intentDef) {
249
275
  const aliasMatch = matchIntentByAliases(states, intentDef);
250
276
  if (aliasMatch) {
251
- if (isAlreadyInState(aliasMatch.name)) {
252
- return { success: false, resolvedVia: 'alias', stateName: aliasMatch.name, stateId: aliasMatch.id };
253
- }
254
- const result = await pmProvider.moveTicket(ticketId, aliasMatch.id);
255
- return {
256
- success: result.success,
257
- resolvedVia: 'alias',
258
- stateName: aliasMatch.name,
259
- stateId: aliasMatch.id,
260
- error: result.error,
261
- };
277
+ return tryMove(aliasMatch, 'alias');
262
278
  }
263
279
  }
264
- // 4. LLM fallback
280
+ // 5. LLM fallback
265
281
  const llmMatch = await llmResolveState(states, intent);
266
282
  if (llmMatch) {
267
- if (isAlreadyInState(llmMatch.name)) {
268
- return { success: false, resolvedVia: 'llm', stateName: llmMatch.name, stateId: llmMatch.id };
269
- }
270
- const result = await pmProvider.moveTicket(ticketId, llmMatch.id);
271
- return {
272
- success: result.success,
273
- resolvedVia: 'llm',
274
- stateName: llmMatch.name,
275
- stateId: llmMatch.id,
276
- error: result.error,
277
- };
283
+ return tryMove(llmMatch, 'llm');
278
284
  }
279
- // 5. No match — skip
285
+ // 6. No match — skip
280
286
  const warning = `No state match for intent '${intent}', skipping move`;
281
287
  console.warn(warning);
282
288
  return {
@@ -297,6 +303,6 @@ export async function move(pmProvider, ticketId, intent, dbOrOptions) {
297
303
  */
298
304
  export async function moveWithProvider(provider, storage, projectId, ticketId, intent, db, currentState) {
299
305
  const pmProvider = createPMProviderAdapter(provider, storage, projectId);
300
- return move(pmProvider, ticketId, intent, { db, currentState });
306
+ return move(pmProvider, ticketId, intent, { db, currentState, providerName: provider.name });
301
307
  }
302
308
  //# sourceMappingURL=state-resolution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-resolution.js","sourceRoot":"","sources":["../../../src/lib/providers/state-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAmB,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AA8C5F;;;GAGG;AACH,MAAM,gBAAgB,GAAG,YAAY,CAAA;AAErC,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAiB,EACjB,MAAc;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE3E,MAAM,MAAM,GAAG;;;EAGf,SAAS;;oBAES,MAAM;EACxB,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,uBAAuB,gBAAgB,CAAC,MAAM,CAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;;8GAEc,CAAA;IAE5G,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,uCAAuC,EAAE;YACpE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,MAAM;gBACnB,mBAAmB,EAAE,YAAY;aAClC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,2BAA2B;gBAClC,UAAU,EAAE,GAAG;gBACf,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,MAAM;qBAChB;iBACF;aACF,CAAC;SACH,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAElC,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QAC5C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,6DAA6D;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAA;QAC7C,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;QAEvB,+DAA+D;QAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAC/E,IAAI,SAAS;YAAE,OAAO,SAAS,CAAA;QAE/B,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;QACpD,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAqB,EAAE,MAAc;IACrE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;QACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,gBAAgB,GAAG,MAAM,EAAE,CAAC,CAAA;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAqB,EAAE,MAAc,EAAE,SAAiB;IACxF,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;IACtC,QAAQ,CAAC,GAAG,CAAC,GAAG,gBAAgB,GAAG,MAAM,EAAE,EAAE,SAAS,CAAC,CAAA;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAqB,EAAE,MAAc;IACxE,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,GAAG,gBAAgB,GAAG,MAAM,EAAE,CAAC,CAAA;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAqB;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;QACtD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvB,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAC5C,SAAS,EAAE,CAAC,CAAC,KAAK;SACnB,CAAC,CAAC,CAAA;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAwB,EACxB,OAAwB,EACxB,SAAiB;IAEjB,OAAO;QACL,KAAK,CAAC,WAAW,CAAC,SAAiB;YACjC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;YACtD,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,CAAA;YACrB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBACtC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAG,2CAA2C;gBAC1D,IAAI,EAAE,GAAG,CAAC,IAAI;aACf,CAAC,CAAC,CAAA;QACL,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,OAAe;YAChD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;QACzD,CAAC;KACF,CAAA;AACH,CAAC;AAgBD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,UAAsB,EACtB,QAAgB,EAChB,MAAc,EACd,WAA6C;IAE7C,8GAA8G;IAC9G,IAAI,EAAiC,CAAA;IACrC,IAAI,YAAgC,CAAA;IACpC,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;QAC/E,iDAAiD;QACjD,EAAE,GAAG,WAAgC,CAAA;IACvC,CAAC;SAAM,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,WAA0B,CAAA;QACvC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;QACZ,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;IAClC,CAAC;IACD,+BAA+B;IAC/B,IAAI,MAAiB,CAAA;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SAC3F,CAAA;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,mCAAmC;SAC3C,CAAA;IACH,CAAC;IAED,8EAA8E;IAC9E,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAW,EAAE;QACtD,IAAI,CAAC,YAAY;YAAE,OAAO,KAAK,CAAA;QAC/B,OAAO,YAAY,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAA;IAC/D,CAAC,CAAA;IAED,gCAAgC;IAChC,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,cAAc,GAAG,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACpD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC,CAAA;YACrF,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;gBAC5F,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;gBAC9D,OAAO;oBACL,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,WAAW,EAAE,QAAQ;oBACrB,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAA;YACH,CAAC;YACD,kEAAkE;QACpE,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC1C,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAC1D,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,CAAA;YACrG,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,CAAA;YACnE,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,WAAW,EAAE,OAAO;gBACpB,SAAS,EAAE,UAAU,CAAC,IAAI;gBAC1B,OAAO,EAAE,UAAU,CAAC,EAAE;gBACtB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAA;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAA;QAC/F,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjE,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,QAAQ,CAAC,IAAI;YACxB,OAAO,EAAE,QAAQ,CAAC,EAAE;YACpB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAA;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,OAAO,GAAG,8BAA8B,MAAM,kBAAkB,CAAA;IACtE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,SAAS;QACtB,OAAO;KACR,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAwB,EACxB,OAAwB,EACxB,SAAiB,EACjB,QAAgB,EAChB,MAAc,EACd,EAAsB,EACtB,YAAqB;IAErB,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IACxE,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;AACjE,CAAC"}
1
+ {"version":3,"file":"state-resolution.js","sourceRoot":"","sources":["../../../src/lib/providers/state-resolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Transition Map Store
3
+ *
4
+ * Manages the pmo_transition_map table, which stores intent-to-provider-state
5
+ * mappings. Each work primitive (start, ready, ship, stop, drop) has a
6
+ * canonical intent, and this store resolves that intent to whatever state
7
+ * name exists on the connected board.
8
+ *
9
+ * Resolution order (in state-resolution.ts):
10
+ * 1. pmo_transition_map (this store) — explicit user-confirmed mappings
11
+ * 2. state-map.{intent} config override
12
+ * 3. Built-in semantic intent aliases
13
+ * 4. LLM fallback
14
+ * 5. Skip (no match)
15
+ */
16
+ import type Database from 'better-sqlite3';
17
+ import type { TransitionIntent } from './state-intents.js';
18
+ export interface TransitionMapping {
19
+ provider: string;
20
+ intent: TransitionIntent;
21
+ providerStateName: string;
22
+ providerStateId?: string | null;
23
+ }
24
+ /**
25
+ * CRUD operations for the pmo_transition_map table.
26
+ */
27
+ export declare class TransitionMapStore {
28
+ private db;
29
+ constructor(db: Database.Database);
30
+ /**
31
+ * Get the provider state name mapped to a transition intent.
32
+ * Returns null if no mapping exists.
33
+ */
34
+ getMapping(provider: string, intent: string): TransitionMapping | null;
35
+ /**
36
+ * Add or update a transition mapping.
37
+ */
38
+ upsertMapping(mapping: TransitionMapping): void;
39
+ /**
40
+ * List all transition mappings for a provider.
41
+ */
42
+ listMappings(provider: string): TransitionMapping[];
43
+ /**
44
+ * Remove a specific transition mapping.
45
+ */
46
+ removeMapping(provider: string, intent: string): void;
47
+ /**
48
+ * Remove all transition mappings for a provider.
49
+ */
50
+ clearMappings(provider: string): void;
51
+ /**
52
+ * Resolve a transition intent to a provider state name.
53
+ * Returns the mapped state name, or null if no mapping exists.
54
+ *
55
+ * This is the primary resolution method called by work commands.
56
+ * If this returns null, the caller should fall through to alias/LLM resolution.
57
+ */
58
+ resolveIntent(provider: string, intent: string): string | null;
59
+ }
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Transition Map Store
3
+ *
4
+ * Manages the pmo_transition_map table, which stores intent-to-provider-state
5
+ * mappings. Each work primitive (start, ready, ship, stop, drop) has a
6
+ * canonical intent, and this store resolves that intent to whatever state
7
+ * name exists on the connected board.
8
+ *
9
+ * Resolution order (in state-resolution.ts):
10
+ * 1. pmo_transition_map (this store) — explicit user-confirmed mappings
11
+ * 2. state-map.{intent} config override
12
+ * 3. Built-in semantic intent aliases
13
+ * 4. LLM fallback
14
+ * 5. Skip (no match)
15
+ */
16
+ /**
17
+ * CRUD operations for the pmo_transition_map table.
18
+ */
19
+ export class TransitionMapStore {
20
+ db;
21
+ constructor(db) {
22
+ this.db = db;
23
+ }
24
+ /**
25
+ * Get the provider state name mapped to a transition intent.
26
+ * Returns null if no mapping exists.
27
+ */
28
+ getMapping(provider, intent) {
29
+ try {
30
+ const row = this.db.prepare(`
31
+ SELECT provider, intent, provider_state_name, provider_state_id
32
+ FROM pmo_transition_map
33
+ WHERE provider = ? AND intent = ?
34
+ `).get(provider, intent);
35
+ if (!row)
36
+ return null;
37
+ return {
38
+ provider: row.provider,
39
+ intent: row.intent,
40
+ providerStateName: row.provider_state_name,
41
+ providerStateId: row.provider_state_id,
42
+ };
43
+ }
44
+ catch {
45
+ return null;
46
+ }
47
+ }
48
+ /**
49
+ * Add or update a transition mapping.
50
+ */
51
+ upsertMapping(mapping) {
52
+ this.db.prepare(`
53
+ INSERT INTO pmo_transition_map (provider, intent, provider_state_name, provider_state_id, updated_at)
54
+ VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)
55
+ ON CONFLICT(provider, intent) DO UPDATE SET
56
+ provider_state_name = excluded.provider_state_name,
57
+ provider_state_id = excluded.provider_state_id,
58
+ updated_at = CURRENT_TIMESTAMP
59
+ `).run(mapping.provider, mapping.intent, mapping.providerStateName, mapping.providerStateId ?? null);
60
+ }
61
+ /**
62
+ * List all transition mappings for a provider.
63
+ */
64
+ listMappings(provider) {
65
+ try {
66
+ const rows = this.db.prepare(`
67
+ SELECT provider, intent, provider_state_name, provider_state_id
68
+ FROM pmo_transition_map
69
+ WHERE provider = ?
70
+ ORDER BY intent
71
+ `).all(provider);
72
+ return rows.map(row => ({
73
+ provider: row.provider,
74
+ intent: row.intent,
75
+ providerStateName: row.provider_state_name,
76
+ providerStateId: row.provider_state_id,
77
+ }));
78
+ }
79
+ catch {
80
+ return [];
81
+ }
82
+ }
83
+ /**
84
+ * Remove a specific transition mapping.
85
+ */
86
+ removeMapping(provider, intent) {
87
+ this.db.prepare(`
88
+ DELETE FROM pmo_transition_map
89
+ WHERE provider = ? AND intent = ?
90
+ `).run(provider, intent);
91
+ }
92
+ /**
93
+ * Remove all transition mappings for a provider.
94
+ */
95
+ clearMappings(provider) {
96
+ this.db.prepare(`
97
+ DELETE FROM pmo_transition_map
98
+ WHERE provider = ?
99
+ `).run(provider);
100
+ }
101
+ /**
102
+ * Resolve a transition intent to a provider state name.
103
+ * Returns the mapped state name, or null if no mapping exists.
104
+ *
105
+ * This is the primary resolution method called by work commands.
106
+ * If this returns null, the caller should fall through to alias/LLM resolution.
107
+ */
108
+ resolveIntent(provider, intent) {
109
+ const mapping = this.getMapping(provider, intent);
110
+ return mapping?.providerStateName ?? null;
111
+ }
112
+ }
113
+ //# sourceMappingURL=transition-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition-map.js","sourceRoot":"","sources":["../../../src/lib/providers/transition-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAYH;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACT;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAE7C;;;OAGG;IACH,UAAU,CAAC,QAAgB,EAAE,MAAc;QACzC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAI3B,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAKV,CAAA;YAEb,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAA;YAErB,OAAO;gBACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,MAAM,EAAE,GAAG,CAAC,MAA0B;gBACtC,iBAAiB,EAAE,GAAG,CAAC,mBAAmB;gBAC1C,eAAe,EAAE,GAAG,CAAC,iBAAiB;aACvC,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAA0B;QACtC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;KAOf,CAAC,CAAC,GAAG,CACJ,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,eAAe,IAAI,IAAI,CAChC,CAAA;IACH,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;OAK5B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAKb,CAAA;YAEF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,MAAM,EAAE,GAAG,CAAC,MAA0B;gBACtC,iBAAiB,EAAE,GAAG,CAAC,mBAAmB;gBAC1C,eAAe,EAAE,GAAG,CAAC,iBAAiB;aACvC,CAAC,CAAC,CAAA;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAgB,EAAE,MAAc;QAC5C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAGf,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAgB;QAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAGf,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClB,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,QAAgB,EAAE,MAAc;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACjD,OAAO,OAAO,EAAE,iBAAiB,IAAI,IAAI,CAAA;IAC3C,CAAC;CACF"}
@@ -24,7 +24,7 @@ import { detectState } from '../../commands/session/health.js';
24
24
  * Returns the detected health state, or null if the session couldn't be found.
25
25
  */
26
26
  export function recordHeartbeatFromSession(storage, execution) {
27
- const isContainer = execution.environment === 'devcontainer';
27
+ const isContainer = execution.environment === 'devcontainer' || execution.environment === 'docker';
28
28
  let sessionId = execution.sessionId;
29
29
  // Try to find the tmux session
30
30
  if (isContainer && execution.containerId) {
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../../src/lib/session/heartbeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../../src/lib/session/heartbeat.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * Session Module
3
3
  *
4
- * Agent session monitoring, heartbeat tracking, and stale detection.
4
+ * Agent session monitoring, heartbeat tracking, stale detection,
5
+ * and tmux server crash recovery.
5
6
  */
6
7
  export * from './heartbeat.js';
7
8
  export * from './watcher.js';
9
+ export * from './tmux-watchdog.js';
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * Session Module
3
3
  *
4
- * Agent session monitoring, heartbeat tracking, and stale detection.
4
+ * Agent session monitoring, heartbeat tracking, stale detection,
5
+ * and tmux server crash recovery.
5
6
  */
6
7
  export * from './heartbeat.js';
7
8
  export * from './watcher.js';
9
+ export * from './tmux-watchdog.js';
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/session/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/session/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA"}