@proletariat/cli 0.3.105 → 0.3.110

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 (240) hide show
  1. package/dist/commands/agent/cleanup.js +13 -1
  2. package/dist/commands/agent/cleanup.js.map +1 -1
  3. package/dist/commands/claude/index.js +2 -2
  4. package/dist/commands/claude/index.js.map +1 -1
  5. package/dist/commands/feedback/list.js +4 -9
  6. package/dist/commands/feedback/list.js.map +1 -1
  7. package/dist/commands/feedback/submit.js +4 -9
  8. package/dist/commands/feedback/submit.js.map +1 -1
  9. package/dist/commands/feedback/view.js +4 -9
  10. package/dist/commands/feedback/view.js.map +1 -1
  11. package/dist/commands/gc.d.ts +1 -0
  12. package/dist/commands/gc.js +34 -1
  13. package/dist/commands/gc.js.map +1 -1
  14. package/dist/commands/notify/connect.d.ts +34 -0
  15. package/dist/commands/notify/connect.js +166 -0
  16. package/dist/commands/notify/connect.js.map +1 -0
  17. package/dist/commands/notify/disconnect.d.ts +16 -0
  18. package/dist/commands/notify/disconnect.js +45 -0
  19. package/dist/commands/notify/disconnect.js.map +1 -0
  20. package/dist/commands/notify/list.d.ts +15 -0
  21. package/dist/commands/notify/list.js +101 -0
  22. package/dist/commands/notify/list.js.map +1 -0
  23. package/dist/commands/notify/rules/add.d.ts +26 -0
  24. package/dist/commands/notify/rules/add.js +95 -0
  25. package/dist/commands/notify/rules/add.js.map +1 -0
  26. package/dist/commands/notify/rules/list.d.ts +14 -0
  27. package/dist/commands/notify/rules/list.js +82 -0
  28. package/dist/commands/notify/rules/list.js.map +1 -0
  29. package/dist/commands/notify/rules/remove.d.ts +16 -0
  30. package/dist/commands/notify/rules/remove.js +44 -0
  31. package/dist/commands/notify/rules/remove.js.map +1 -0
  32. package/dist/commands/notify/test.d.ts +16 -0
  33. package/dist/commands/notify/test.js +63 -0
  34. package/dist/commands/notify/test.js.map +1 -0
  35. package/dist/commands/orchestrate/index.js +11 -6
  36. package/dist/commands/orchestrate/index.js.map +1 -1
  37. package/dist/commands/orchestrate/machine.d.ts +29 -0
  38. package/dist/commands/orchestrate/machine.js +230 -0
  39. package/dist/commands/orchestrate/machine.js.map +1 -0
  40. package/dist/commands/pr/checks.js +4 -8
  41. package/dist/commands/pr/checks.js.map +1 -1
  42. package/dist/commands/pr/close.js +4 -8
  43. package/dist/commands/pr/close.js.map +1 -1
  44. package/dist/commands/pr/create.js +4 -8
  45. package/dist/commands/pr/create.js.map +1 -1
  46. package/dist/commands/pr/index.js +1 -1
  47. package/dist/commands/pr/index.js.map +1 -1
  48. package/dist/commands/pr/link.js +4 -8
  49. package/dist/commands/pr/link.js.map +1 -1
  50. package/dist/commands/pr/list.js +5 -9
  51. package/dist/commands/pr/list.js.map +1 -1
  52. package/dist/commands/pr/merge.d.ts +5 -0
  53. package/dist/commands/pr/merge.js +35 -11
  54. package/dist/commands/pr/merge.js.map +1 -1
  55. package/dist/commands/pr/status.js +5 -4
  56. package/dist/commands/pr/status.js.map +1 -1
  57. package/dist/commands/qa/index.js +2 -2
  58. package/dist/commands/qa/index.js.map +1 -1
  59. package/dist/commands/repo/create.js +4 -8
  60. package/dist/commands/repo/create.js.map +1 -1
  61. package/dist/commands/session/list.js +81 -41
  62. package/dist/commands/session/list.js.map +1 -1
  63. package/dist/commands/session/poke.d.ts +1 -11
  64. package/dist/commands/session/poke.js +20 -78
  65. package/dist/commands/session/poke.js.map +1 -1
  66. package/dist/commands/session/prune.js +3 -0
  67. package/dist/commands/session/prune.js.map +1 -1
  68. package/dist/commands/ticket/move.d.ts +12 -0
  69. package/dist/commands/ticket/move.js +75 -2
  70. package/dist/commands/ticket/move.js.map +1 -1
  71. package/dist/commands/work/drop.js +2 -2
  72. package/dist/commands/work/drop.js.map +1 -1
  73. package/dist/commands/work/ready.js +3 -3
  74. package/dist/commands/work/ready.js.map +1 -1
  75. package/dist/commands/work/rebase.js +4 -8
  76. package/dist/commands/work/rebase.js.map +1 -1
  77. package/dist/commands/work/run.d.ts +58 -0
  78. package/dist/commands/work/run.js +411 -0
  79. package/dist/commands/work/run.js.map +1 -0
  80. package/dist/commands/work/ship.d.ts +6 -0
  81. package/dist/commands/work/ship.js +93 -51
  82. package/dist/commands/work/ship.js.map +1 -1
  83. package/dist/commands/work/start.d.ts +1 -0
  84. package/dist/commands/work/start.js +126 -13
  85. package/dist/commands/work/start.js.map +1 -1
  86. package/dist/lib/agents/commands.d.ts +6 -0
  87. package/dist/lib/agents/commands.js +55 -2
  88. package/dist/lib/agents/commands.js.map +1 -1
  89. package/dist/lib/database/credential-store.js +2 -3
  90. package/dist/lib/database/credential-store.js.map +1 -1
  91. package/dist/lib/database/db-safety.d.ts +25 -0
  92. package/dist/lib/database/db-safety.js +35 -0
  93. package/dist/lib/database/db-safety.js.map +1 -1
  94. package/dist/lib/database/driver.js +6 -12
  95. package/dist/lib/database/driver.js.map +1 -1
  96. package/dist/lib/database/drizzle-schema.d.ts +3 -3
  97. package/dist/lib/database/drizzle.js +3 -3
  98. package/dist/lib/database/drizzle.js.map +1 -1
  99. package/dist/lib/database/index.d.ts +1 -1
  100. package/dist/lib/database/index.js +1 -1
  101. package/dist/lib/database/index.js.map +1 -1
  102. package/dist/lib/database/migrations/0021_notification_system.d.ts +2 -0
  103. package/dist/lib/database/migrations/0021_notification_system.js +39 -0
  104. package/dist/lib/database/migrations/0021_notification_system.js.map +1 -0
  105. package/dist/lib/database/migrations/0022_hook_mode_tiers.d.ts +11 -0
  106. package/dist/lib/database/migrations/0022_hook_mode_tiers.js +53 -0
  107. package/dist/lib/database/migrations/0022_hook_mode_tiers.js.map +1 -0
  108. package/dist/lib/database/migrations/index.js +4 -0
  109. package/dist/lib/database/migrations/index.js.map +1 -1
  110. package/dist/lib/database/pmo-bootstrap.js +6 -2
  111. package/dist/lib/database/pmo-bootstrap.js.map +1 -1
  112. package/dist/lib/database/workspace.js +5 -13
  113. package/dist/lib/database/workspace.js.map +1 -1
  114. package/dist/lib/events/emitting-runner.js +10 -0
  115. package/dist/lib/events/emitting-runner.js.map +1 -1
  116. package/dist/lib/execution/cc-version.d.ts +62 -0
  117. package/dist/lib/execution/cc-version.js +103 -0
  118. package/dist/lib/execution/cc-version.js.map +1 -0
  119. package/dist/lib/execution/devcontainer.js +2 -1
  120. package/dist/lib/execution/devcontainer.js.map +1 -1
  121. package/dist/lib/execution/runners/devcontainer.js +4 -1
  122. package/dist/lib/execution/runners/devcontainer.js.map +1 -1
  123. package/dist/lib/execution/runners/docker-management.js +10 -46
  124. package/dist/lib/execution/runners/docker-management.js.map +1 -1
  125. package/dist/lib/execution/runners/orchestrator.js +13 -39
  126. package/dist/lib/execution/runners/orchestrator.js.map +1 -1
  127. package/dist/lib/execution/session-utils.d.ts +88 -1
  128. package/dist/lib/execution/session-utils.js +120 -46
  129. package/dist/lib/execution/session-utils.js.map +1 -1
  130. package/dist/lib/execution/storage.js +20 -2
  131. package/dist/lib/execution/storage.js.map +1 -1
  132. package/dist/lib/flags/resolver.d.ts +8 -1
  133. package/dist/lib/flags/resolver.js +35 -2
  134. package/dist/lib/flags/resolver.js.map +1 -1
  135. package/dist/lib/gc/cascade.d.ts +99 -0
  136. package/dist/lib/gc/cascade.js +357 -0
  137. package/dist/lib/gc/cascade.js.map +1 -0
  138. package/dist/lib/gc/config.d.ts +69 -0
  139. package/dist/lib/gc/config.js +134 -0
  140. package/dist/lib/gc/config.js.map +1 -0
  141. package/dist/lib/gc/index.d.ts +36 -0
  142. package/dist/lib/gc/index.js +209 -1
  143. package/dist/lib/gc/index.js.map +1 -1
  144. package/dist/lib/init/index.js +10 -1
  145. package/dist/lib/init/index.js.map +1 -1
  146. package/dist/lib/machine-db.d.ts +144 -0
  147. package/dist/lib/machine-db.js +338 -0
  148. package/dist/lib/machine-db.js.map +1 -0
  149. package/dist/lib/machine-orchestrator.d.ts +35 -0
  150. package/dist/lib/machine-orchestrator.js +139 -0
  151. package/dist/lib/machine-orchestrator.js.map +1 -0
  152. package/dist/lib/notifications/dispatcher.d.ts +29 -0
  153. package/dist/lib/notifications/dispatcher.js +281 -0
  154. package/dist/lib/notifications/dispatcher.js.map +1 -0
  155. package/dist/lib/notifications/index.d.ts +13 -0
  156. package/dist/lib/notifications/index.js +18 -0
  157. package/dist/lib/notifications/index.js.map +1 -0
  158. package/dist/lib/notifications/manager.d.ts +46 -0
  159. package/dist/lib/notifications/manager.js +200 -0
  160. package/dist/lib/notifications/manager.js.map +1 -0
  161. package/dist/lib/notifications/storage.d.ts +60 -0
  162. package/dist/lib/notifications/storage.js +182 -0
  163. package/dist/lib/notifications/storage.js.map +1 -0
  164. package/dist/lib/notifications/types.d.ts +126 -0
  165. package/dist/lib/notifications/types.js +16 -0
  166. package/dist/lib/notifications/types.js.map +1 -0
  167. package/dist/lib/orchestrate/actions.d.ts +8 -0
  168. package/dist/lib/orchestrate/actions.js +339 -88
  169. package/dist/lib/orchestrate/actions.js.map +1 -1
  170. package/dist/lib/orchestrate/config-loader.js +9 -35
  171. package/dist/lib/orchestrate/config-loader.js.map +1 -1
  172. package/dist/lib/orchestrate/engine.d.ts +53 -1
  173. package/dist/lib/orchestrate/engine.js +74 -3
  174. package/dist/lib/orchestrate/engine.js.map +1 -1
  175. package/dist/lib/orchestrate/escalation.d.ts +87 -0
  176. package/dist/lib/orchestrate/escalation.js +63 -0
  177. package/dist/lib/orchestrate/escalation.js.map +1 -0
  178. package/dist/lib/orchestrate/index.d.ts +2 -0
  179. package/dist/lib/orchestrate/index.js +1 -0
  180. package/dist/lib/orchestrate/index.js.map +1 -1
  181. package/dist/lib/orchestrate/llm-agent.d.ts +101 -0
  182. package/dist/lib/orchestrate/llm-agent.js +295 -0
  183. package/dist/lib/orchestrate/llm-agent.js.map +1 -0
  184. package/dist/lib/orchestrate/presets.d.ts +4 -3
  185. package/dist/lib/orchestrate/presets.js +13 -8
  186. package/dist/lib/orchestrate/presets.js.map +1 -1
  187. package/dist/lib/orchestrate/prompt-chain.d.ts +166 -0
  188. package/dist/lib/orchestrate/prompt-chain.js +308 -0
  189. package/dist/lib/orchestrate/prompt-chain.js.map +1 -0
  190. package/dist/lib/orchestrate/types.d.ts +7 -1
  191. package/dist/lib/orchestrate/types.js +1 -0
  192. package/dist/lib/orchestrate/types.js.map +1 -1
  193. package/dist/lib/pmo/base-command.js +1 -1
  194. package/dist/lib/pmo/base-command.js.map +1 -1
  195. package/dist/lib/pmo/find-pmo.d.ts +8 -0
  196. package/dist/lib/pmo/find-pmo.js +63 -2
  197. package/dist/lib/pmo/find-pmo.js.map +1 -1
  198. package/dist/lib/pmo/index.d.ts +1 -1
  199. package/dist/lib/pmo/index.js +1 -1
  200. package/dist/lib/pmo/index.js.map +1 -1
  201. package/dist/lib/pmo/pmo-context.js +1 -1
  202. package/dist/lib/pmo/pmo-context.js.map +1 -1
  203. package/dist/lib/pmo/storage/index.js +2 -1
  204. package/dist/lib/pmo/storage/index.js.map +1 -1
  205. package/dist/lib/pr/index.d.ts +32 -0
  206. package/dist/lib/pr/index.js +45 -0
  207. package/dist/lib/pr/index.js.map +1 -1
  208. package/dist/lib/prompt-command.d.ts +61 -1
  209. package/dist/lib/prompt-command.js +167 -1
  210. package/dist/lib/prompt-command.js.map +1 -1
  211. package/dist/lib/prompt-json.d.ts +129 -2
  212. package/dist/lib/prompt-json.js +157 -0
  213. package/dist/lib/prompt-json.js.map +1 -1
  214. package/dist/lib/registry/index.js +0 -1
  215. package/dist/lib/registry/index.js.map +1 -1
  216. package/dist/lib/runtime-command.d.ts +3 -1
  217. package/dist/lib/runtime-command.js +4 -2
  218. package/dist/lib/runtime-command.js.map +1 -1
  219. package/dist/lib/signal-handler.d.ts +8 -0
  220. package/dist/lib/signal-handler.js +33 -0
  221. package/dist/lib/signal-handler.js.map +1 -1
  222. package/dist/lib/themes.js +8 -1
  223. package/dist/lib/themes.js.map +1 -1
  224. package/dist/lib/work-lifecycle/container-cleanup-hook.d.ts +17 -7
  225. package/dist/lib/work-lifecycle/container-cleanup-hook.js +64 -11
  226. package/dist/lib/work-lifecycle/container-cleanup-hook.js.map +1 -1
  227. package/dist/lib/work-lifecycle/hooks/executor.d.ts +22 -2
  228. package/dist/lib/work-lifecycle/hooks/executor.js +46 -8
  229. package/dist/lib/work-lifecycle/hooks/executor.js.map +1 -1
  230. package/dist/lib/work-lifecycle/hooks/manager.d.ts +62 -3
  231. package/dist/lib/work-lifecycle/hooks/manager.js +285 -4
  232. package/dist/lib/work-lifecycle/hooks/manager.js.map +1 -1
  233. package/dist/lib/work-lifecycle/hooks/types.d.ts +36 -5
  234. package/dist/lib/work-lifecycle/hooks/types.js +1 -1
  235. package/dist/lib/work-lifecycle/hooks/types.js.map +1 -1
  236. package/dist/lib/workspace-resolution.d.ts +73 -0
  237. package/dist/lib/workspace-resolution.js +188 -0
  238. package/dist/lib/workspace-resolution.js.map +1 -0
  239. package/oclif.manifest.json +1787 -1099
  240. package/package.json +1 -1
@@ -4,7 +4,7 @@
4
4
  * The single hook execution system for the entire application.
5
5
  * Subscribes to work lifecycle events on the global EventBus and
6
6
  * executes matching hook configurations from the database with
7
- * mode-aware behavior (auto/confirm/notify/off).
7
+ * mode-aware behavior (auto/confirm/notify/llm/human/off).
8
8
  *
9
9
  * Used by both the interactive CLI (with default auto mode) and
10
10
  * the orchestrate daemon (with full mode/callback support).
@@ -18,6 +18,7 @@ import { getEventBus } from '../../events/event-bus.js';
18
18
  import { WorkHookStorage } from './storage.js';
19
19
  import { executeHook } from './executor.js';
20
20
  import { HOOKABLE_EVENTS, } from './types.js';
21
+ import { DEFAULT_LLM_TIMEOUT_MS, } from '../../orchestrate/escalation.js';
21
22
  // =============================================================================
22
23
  // Manager
23
24
  // =============================================================================
@@ -33,14 +34,22 @@ export class HookManager {
33
34
  log;
34
35
  onConfirm;
35
36
  onNotify;
37
+ onLlmDecision;
38
+ onHumanEscalation;
39
+ llmTimeoutMs;
36
40
  actionHandlers;
37
41
  _pendingConfirmations = [];
42
+ _pendingLlmDecisions = [];
43
+ _pendingHumanEscalations = [];
38
44
  constructor(options) {
39
45
  this.db = options.db;
40
46
  this.hookStorage = new WorkHookStorage(options.db);
41
47
  this.log = options.log ?? (() => { });
42
48
  this.onConfirm = options.onConfirm;
43
49
  this.onNotify = options.onNotify;
50
+ this.onLlmDecision = options.onLlmDecision;
51
+ this.onHumanEscalation = options.onHumanEscalation;
52
+ this.llmTimeoutMs = options.llmTimeoutMs ?? DEFAULT_LLM_TIMEOUT_MS;
44
53
  this.actionHandlers = options.actionHandlers ?? {};
45
54
  }
46
55
  /**
@@ -64,6 +73,8 @@ export class HookManager {
64
73
  }
65
74
  this.unsubscribers = [];
66
75
  this._pendingConfirmations = [];
76
+ this._pendingLlmDecisions = [];
77
+ this._pendingHumanEscalations = [];
67
78
  }
68
79
  /**
69
80
  * Fire an event explicitly (used by orchestrate daemon and `prlt hook fire`).
@@ -100,6 +111,113 @@ export class HookManager {
100
111
  return true;
101
112
  }
102
113
  // ===========================================================================
114
+ // LLM Decision Queue (Tier 2)
115
+ // ===========================================================================
116
+ /**
117
+ * Get pending LLM decisions for hooks in llm mode.
118
+ */
119
+ getPendingLlmDecisions() {
120
+ return [...this._pendingLlmDecisions];
121
+ }
122
+ /**
123
+ * Approve a pending LLM decision and execute it.
124
+ */
125
+ async approveLlmDecision(index) {
126
+ if (index < 0 || index >= this._pendingLlmDecisions.length)
127
+ return null;
128
+ const pending = this._pendingLlmDecisions.splice(index, 1)[0];
129
+ const result = this.executeActionByName(pending.action, pending.ctx, pending.config);
130
+ this.log(`[hooks] LLM approved: ${pending.hookName} → ${pending.action} (${result.success ? 'success' : 'failed'})`);
131
+ return { ...result, tier: 'llm' };
132
+ }
133
+ /**
134
+ * Deny a pending LLM decision.
135
+ */
136
+ denyLlmDecision(index) {
137
+ if (index < 0 || index >= this._pendingLlmDecisions.length)
138
+ return false;
139
+ const pending = this._pendingLlmDecisions.splice(index, 1)[0];
140
+ this.log(`[hooks] LLM denied: ${pending.hookName} → ${pending.action}`);
141
+ return true;
142
+ }
143
+ /**
144
+ * Escalate a pending LLM decision to human tier.
145
+ * Removes from LLM queue and adds to human escalation queue.
146
+ */
147
+ escalateLlmDecision(index) {
148
+ if (index < 0 || index >= this._pendingLlmDecisions.length)
149
+ return false;
150
+ const pending = this._pendingLlmDecisions.splice(index, 1)[0];
151
+ this._pendingHumanEscalations.push({
152
+ hookName: pending.hookName,
153
+ event: pending.event,
154
+ action: pending.action,
155
+ ctx: pending.ctx,
156
+ config: pending.config,
157
+ queuedAt: Date.now(),
158
+ reason: 'llm_escalate',
159
+ });
160
+ this.log(`[hooks] LLM escalated to human: ${pending.hookName} → ${pending.action}`);
161
+ return true;
162
+ }
163
+ /**
164
+ * Check for timed-out LLM decisions and auto-escalate them to human tier.
165
+ * Returns the number of decisions that were escalated.
166
+ */
167
+ escalateTimedOutLlmDecisions() {
168
+ const now = Date.now();
169
+ let escalated = 0;
170
+ // Iterate in reverse to safely splice
171
+ for (let i = this._pendingLlmDecisions.length - 1; i >= 0; i--) {
172
+ const decision = this._pendingLlmDecisions[i];
173
+ if ((now - decision.queuedAt) >= decision.timeoutMs) {
174
+ this._pendingLlmDecisions.splice(i, 1);
175
+ this._pendingHumanEscalations.push({
176
+ hookName: decision.hookName,
177
+ event: decision.event,
178
+ action: decision.action,
179
+ ctx: decision.ctx,
180
+ config: decision.config,
181
+ queuedAt: decision.queuedAt,
182
+ reason: 'llm_timeout',
183
+ });
184
+ this.log(`[hooks] LLM timeout → escalated to human: ${decision.hookName} → ${decision.action}`);
185
+ escalated++;
186
+ }
187
+ }
188
+ return escalated;
189
+ }
190
+ // ===========================================================================
191
+ // Human Escalation Queue (Tier 3)
192
+ // ===========================================================================
193
+ /**
194
+ * Get pending human escalations.
195
+ */
196
+ getPendingHumanEscalations() {
197
+ return [...this._pendingHumanEscalations];
198
+ }
199
+ /**
200
+ * Approve a pending human escalation and execute it.
201
+ */
202
+ async approveHumanEscalation(index) {
203
+ if (index < 0 || index >= this._pendingHumanEscalations.length)
204
+ return null;
205
+ const pending = this._pendingHumanEscalations.splice(index, 1)[0];
206
+ const result = this.executeActionByName(pending.action, pending.ctx, pending.config);
207
+ this.log(`[hooks] Human approved: ${pending.hookName} → ${pending.action} (${result.success ? 'success' : 'failed'})`);
208
+ return { ...result, tier: 'human' };
209
+ }
210
+ /**
211
+ * Deny a pending human escalation.
212
+ */
213
+ denyHumanEscalation(index) {
214
+ if (index < 0 || index >= this._pendingHumanEscalations.length)
215
+ return false;
216
+ const pending = this._pendingHumanEscalations.splice(index, 1)[0];
217
+ this.log(`[hooks] Human denied: ${pending.hookName} → ${pending.action}`);
218
+ return true;
219
+ }
220
+ // ===========================================================================
103
221
  // Testable Utilities (public for PRLT-1223 test suite)
104
222
  // ===========================================================================
105
223
  /**
@@ -147,7 +265,7 @@ export class HookManager {
147
265
  // ===========================================================================
148
266
  /**
149
267
  * Handle an event by finding and executing all matching enabled hooks.
150
- * Supports mode-aware execution: auto, confirm, notify, off.
268
+ * Supports mode-aware execution: auto, confirm, notify, llm, human, off.
151
269
  */
152
270
  async handleEvent(eventName, eventData) {
153
271
  const results = [];
@@ -172,7 +290,143 @@ export class HookManager {
172
290
  });
173
291
  continue;
174
292
  }
175
- // --- confirm: require approval ---
293
+ // --- llm: route to LLM orchestrator (Tier 2) ---
294
+ if (mode === 'llm') {
295
+ const escalationCtx = {
296
+ hookName: hook.name,
297
+ event: eventName,
298
+ action: actionName,
299
+ ctx,
300
+ config: hook.config ?? undefined,
301
+ };
302
+ if (this.onLlmDecision) {
303
+ const decision = await this.onLlmDecision(escalationCtx);
304
+ if (decision === 'deny') {
305
+ this.log(`[hooks] LLM denied: ${hook.name} → ${actionName}`);
306
+ results.push({
307
+ hookId: hook.id,
308
+ hookName: hook.name,
309
+ action: actionName,
310
+ success: true,
311
+ durationMs: 0,
312
+ skipped: true,
313
+ tier: 'llm',
314
+ });
315
+ continue;
316
+ }
317
+ if (decision === 'escalate') {
318
+ // LLM escalated to human tier
319
+ this.log(`[hooks] LLM escalated to human: ${hook.name} → ${actionName}`);
320
+ if (this.onHumanEscalation) {
321
+ const humanApproved = await this.onHumanEscalation(escalationCtx, 'llm_escalate');
322
+ if (!humanApproved) {
323
+ results.push({
324
+ hookId: hook.id,
325
+ hookName: hook.name,
326
+ action: actionName,
327
+ success: true,
328
+ durationMs: 0,
329
+ skipped: true,
330
+ escalatedToHuman: true,
331
+ tier: 'human',
332
+ });
333
+ continue;
334
+ }
335
+ // Human approved — fall through to execution
336
+ const result = this.executeHookAction(hook, eventName, eventData, ctx);
337
+ results.push({ ...result, escalatedToHuman: true, tier: 'human' });
338
+ this.log(`[hooks] ${hook.name} → ${actionName}: ${result.success ? 'success' : `failed: ${result.error}`} (${result.durationMs}ms) [escalated to human]`);
339
+ continue;
340
+ }
341
+ else {
342
+ // No human handler — queue for human approval
343
+ this._pendingHumanEscalations.push({
344
+ ...escalationCtx,
345
+ queuedAt: Date.now(),
346
+ reason: 'llm_escalate',
347
+ });
348
+ results.push({
349
+ hookId: hook.id,
350
+ hookName: hook.name,
351
+ action: actionName,
352
+ success: true,
353
+ durationMs: 0,
354
+ escalatedToHuman: true,
355
+ awaitingConfirmation: true,
356
+ tier: 'human',
357
+ });
358
+ continue;
359
+ }
360
+ }
361
+ // decision === 'approve' — fall through to execution
362
+ }
363
+ else {
364
+ // No LLM handler — queue for later LLM decision
365
+ this._pendingLlmDecisions.push({
366
+ ...escalationCtx,
367
+ queuedAt: Date.now(),
368
+ timeoutMs: this.llmTimeoutMs,
369
+ });
370
+ this.log(`[hooks] Queued for LLM decision: ${hook.name} → ${actionName}`);
371
+ results.push({
372
+ hookId: hook.id,
373
+ hookName: hook.name,
374
+ action: actionName,
375
+ success: true,
376
+ durationMs: 0,
377
+ awaitingLlmDecision: true,
378
+ tier: 'llm',
379
+ });
380
+ continue;
381
+ }
382
+ }
383
+ // --- human: route to human (Tier 3) ---
384
+ if (mode === 'human') {
385
+ const escalationCtx = {
386
+ hookName: hook.name,
387
+ event: eventName,
388
+ action: actionName,
389
+ ctx,
390
+ config: hook.config ?? undefined,
391
+ };
392
+ if (this.onHumanEscalation) {
393
+ const approved = await this.onHumanEscalation(escalationCtx, 'direct');
394
+ if (!approved) {
395
+ this.log(`[hooks] Human denied: ${hook.name} → ${actionName}`);
396
+ results.push({
397
+ hookId: hook.id,
398
+ hookName: hook.name,
399
+ action: actionName,
400
+ success: true,
401
+ durationMs: 0,
402
+ skipped: true,
403
+ tier: 'human',
404
+ });
405
+ continue;
406
+ }
407
+ // Approved — fall through to execution
408
+ }
409
+ else {
410
+ // No human handler — queue for later approval
411
+ this._pendingHumanEscalations.push({
412
+ ...escalationCtx,
413
+ queuedAt: Date.now(),
414
+ reason: 'direct',
415
+ });
416
+ this.log(`[hooks] Queued for human approval: ${hook.name} → ${actionName}`);
417
+ results.push({
418
+ hookId: hook.id,
419
+ hookName: hook.name,
420
+ action: actionName,
421
+ success: true,
422
+ durationMs: 0,
423
+ awaitingConfirmation: true,
424
+ tier: 'human',
425
+ });
426
+ continue;
427
+ }
428
+ }
429
+ // --- confirm: require approval (legacy alias for human) ---
176
430
  if (mode === 'confirm') {
177
431
  if (this.onConfirm) {
178
432
  const approved = await this.onConfirm(hook.name, eventName, actionName);
@@ -185,6 +439,32 @@ export class HookManager {
185
439
  success: true,
186
440
  durationMs: 0,
187
441
  skipped: true,
442
+ tier: 'human',
443
+ });
444
+ continue;
445
+ }
446
+ // Approved — fall through to execution
447
+ }
448
+ else if (this.onHumanEscalation) {
449
+ // Use human escalation callback as fallback for confirm mode
450
+ const escalationCtx = {
451
+ hookName: hook.name,
452
+ event: eventName,
453
+ action: actionName,
454
+ ctx,
455
+ config: hook.config ?? undefined,
456
+ };
457
+ const approved = await this.onHumanEscalation(escalationCtx, 'direct');
458
+ if (!approved) {
459
+ this.log(`[hooks] Human denied (confirm mode): ${hook.name} → ${actionName}`);
460
+ results.push({
461
+ hookId: hook.id,
462
+ hookName: hook.name,
463
+ action: actionName,
464
+ success: true,
465
+ durationMs: 0,
466
+ skipped: true,
467
+ tier: 'human',
188
468
  });
189
469
  continue;
190
470
  }
@@ -207,11 +487,12 @@ export class HookManager {
207
487
  success: true,
208
488
  durationMs: 0,
209
489
  awaitingConfirmation: true,
490
+ tier: 'human',
210
491
  });
211
492
  continue;
212
493
  }
213
494
  }
214
- // --- auto / notify / confirmed: execute ---
495
+ // --- auto / notify / confirmed / llm-approved / human-approved: execute ---
215
496
  const result = this.executeHookAction(hook, eventName, eventData, ctx);
216
497
  results.push(result);
217
498
  this.log(`[hooks] ${hook.name} → ${actionName}: ${result.success ? 'success' : `failed: ${result.error}`} (${result.durationMs}ms)`);
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/lib/work-lifecycle/hooks/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/lib/work-lifecycle/hooks/manager.ts"],"names":[],"mappings":"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"}
@@ -23,16 +23,41 @@ export declare const HOOKABLE_EVENTS: HookableEvent[];
23
23
  */
24
24
  export type HookActionType = 'shell' | 'webhook' | 'log';
25
25
  /**
26
- * Automation mode for a hook.
26
+ * Automation mode for a hook — determines the decision tier.
27
27
  *
28
- * - auto: fires immediately, no human needed
29
- * - confirm: pauses, waits for approval before executing
28
+ * Tier 1 (automatic, free, instant):
29
+ * - auto: fires immediately, no decision needed
30
30
  * - notify: fires immediately but also sends a notification
31
+ *
32
+ * Tier 2 (LLM, costs tokens, has judgment):
33
+ * - llm: routes to registered LLM orchestrator for approve/deny/escalate
34
+ *
35
+ * Tier 3 (human, most expensive, final authority):
36
+ * - human: routes to human via notification (dashboard, Slack, email)
37
+ * - confirm: pauses, waits for interactive approval before executing (legacy alias for human)
38
+ *
39
+ * Disabled:
31
40
  * - off: disabled, skipped silently
32
41
  */
33
- export type HookMode = 'auto' | 'confirm' | 'notify' | 'off';
42
+ export type HookMode = 'auto' | 'confirm' | 'notify' | 'llm' | 'human' | 'off';
34
43
  /** All valid hook modes. */
35
44
  export declare const HOOK_MODES: HookMode[];
45
+ /**
46
+ * Decision tier for the 3-tier supervision tree.
47
+ *
48
+ * - auto: Tier 1 — deterministic, no decision needed
49
+ * - llm: Tier 2 — LLM orchestrator decides (approve/deny/escalate)
50
+ * - human: Tier 3 — human decides (final authority)
51
+ */
52
+ export type DecisionTier = 'auto' | 'llm' | 'human';
53
+ /**
54
+ * LLM orchestrator decision for a Tier 2 hook.
55
+ *
56
+ * - approve: execute the hook action
57
+ * - deny: skip the hook action
58
+ * - escalate: route to human (Tier 3) for final decision
59
+ */
60
+ export type LlmDecision = 'approve' | 'deny' | 'escalate';
36
61
  /**
37
62
  * Persisted hook configuration stored in the database.
38
63
  */
@@ -101,6 +126,12 @@ export interface HookExecutionResult {
101
126
  durationMs: number;
102
127
  /** True when hook was skipped (mode=off or confirm denied) */
103
128
  skipped?: boolean;
104
- /** True when hook is queued for confirmation */
129
+ /** True when hook is queued for confirmation (Tier 3 / human) */
105
130
  awaitingConfirmation?: boolean;
131
+ /** True when hook is queued for LLM decision (Tier 2) */
132
+ awaitingLlmDecision?: boolean;
133
+ /** True when hook was escalated from LLM to human (Tier 2 → Tier 3) */
134
+ escalatedToHuman?: boolean;
135
+ /** The decision tier that handled this hook */
136
+ tier?: DecisionTier;
106
137
  }
@@ -29,5 +29,5 @@ export const HOOKABLE_EVENTS = [
29
29
  'on_version_published',
30
30
  ];
31
31
  /** All valid hook modes. */
32
- export const HOOK_MODES = ['auto', 'confirm', 'notify', 'off'];
32
+ export const HOOK_MODES = ['auto', 'confirm', 'notify', 'llm', 'human', 'off'];
33
33
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/lib/work-lifecycle/hooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiCH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,cAAc;IACd,qBAAqB;IACrB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,oBAAoB;IACpB,eAAe;IACf,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;CACvB,CAAA;AAqBD,4BAA4B;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAe,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/lib/work-lifecycle/hooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiCH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,cAAc;IACd,qBAAqB;IACrB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,oBAAoB;IACpB,eAAe;IACf,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;CACvB,CAAA;AA8BD,4BAA4B;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAe,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Workspace Resolution for Ticketless Work
3
+ *
4
+ * Auto-detects the directory type and resolves the appropriate working
5
+ * directory for an agent. Handles git repos, non-git directories, and
6
+ * headless (no directory) mode.
7
+ *
8
+ * Resolution rules:
9
+ * 1. Git repo (default) → create worktree for isolation
10
+ * 2. Git repo + noWorktree → work in-place
11
+ * 3. Non-git directory → work in-place (auto-detected)
12
+ * 4. No directory specified → create temp workspace (headless mode)
13
+ * 5. --repo URL → clone into temp dir (handled by caller)
14
+ *
15
+ * The caller should not need to specify a mode — this module detects
16
+ * git vs non-git and does the right thing.
17
+ */
18
+ export type WorkspaceMode = 'worktree' | 'in-place' | 'headless';
19
+ export interface ResolvedWorkspace {
20
+ /** Actual directory the agent will work in */
21
+ workDir: string;
22
+ /** Original source directory (same as workDir for in-place/headless) */
23
+ sourceDir: string;
24
+ /** Whether the directory is inside a git repository */
25
+ isGitRepo: boolean;
26
+ /** Current git branch (null if not a git repo) */
27
+ branch: string | null;
28
+ /** How the workspace was resolved */
29
+ mode: WorkspaceMode;
30
+ /** Whether the workspace is a temporary directory (should be cleaned up) */
31
+ isTemp: boolean;
32
+ }
33
+ /**
34
+ * Check if a directory is inside a git repository.
35
+ */
36
+ export declare function isGitRepo(dir: string): boolean;
37
+ /**
38
+ * Get the git root directory for a path.
39
+ */
40
+ export declare function getGitRoot(dir: string): string | null;
41
+ /**
42
+ * Get the current git branch.
43
+ */
44
+ export declare function getCurrentBranch(dir: string): string | null;
45
+ /**
46
+ * Create a git worktree for isolated agent work.
47
+ * Returns the path to the new worktree directory.
48
+ */
49
+ export declare function createWorktree(repoDir: string, agentName: string): string;
50
+ /**
51
+ * Create a temporary workspace directory for headless work.
52
+ * Used when no --dir or --repo is specified (research, thinking, non-code tasks).
53
+ */
54
+ export declare function createTempWorkspace(agentName: string): string;
55
+ /**
56
+ * Resolve the workspace for a ticketless work run.
57
+ *
58
+ * Auto-detects git vs non-git and chooses the appropriate strategy:
59
+ * - Git repo → worktree (default) or in-place (--no-worktree)
60
+ * - Non-git dir → in-place
61
+ * - No dir → temp workspace (headless)
62
+ *
63
+ * @param options Resolution options
64
+ * @returns Resolved workspace info
65
+ */
66
+ export declare function resolveWorkspace(options: {
67
+ /** Explicit directory (--dir flag) */
68
+ dir?: string;
69
+ /** Agent name (for worktree/temp naming) */
70
+ agentName: string;
71
+ /** Skip worktree creation even for git repos (--no-worktree) */
72
+ noWorktree?: boolean;
73
+ }): ResolvedWorkspace;