@proletariat/cli 0.3.55 → 0.3.57

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 (246) hide show
  1. package/README.md +74 -5
  2. package/bin/validate-better-sqlite3.cjs +44 -5
  3. package/dist/commands/agent/cleanup.d.ts +1 -0
  4. package/dist/commands/agent/cleanup.js +11 -1
  5. package/dist/commands/agent/cleanup.js.map +1 -1
  6. package/dist/commands/agent/rebuild.js +1 -1
  7. package/dist/commands/agent/rebuild.js.map +1 -1
  8. package/dist/commands/asana/import.d.ts +14 -0
  9. package/dist/commands/asana/import.js +240 -0
  10. package/dist/commands/asana/import.js.map +1 -0
  11. package/dist/commands/claude-yolo.d.ts +20 -0
  12. package/dist/commands/claude-yolo.js +86 -0
  13. package/dist/commands/claude-yolo.js.map +1 -0
  14. package/dist/commands/codex/index.d.ts +23 -0
  15. package/dist/commands/codex/index.js +168 -0
  16. package/dist/commands/codex/index.js.map +1 -0
  17. package/dist/commands/codex-yolo.d.ts +20 -0
  18. package/dist/commands/codex-yolo.js +86 -0
  19. package/dist/commands/codex-yolo.js.map +1 -0
  20. package/dist/commands/config/index.js +2 -2
  21. package/dist/commands/config/index.js.map +1 -1
  22. package/dist/commands/dashboard.d.ts +38 -0
  23. package/dist/commands/dashboard.js +352 -0
  24. package/dist/commands/dashboard.js.map +1 -0
  25. package/dist/commands/docker/clean.js +1 -1
  26. package/dist/commands/docker/clean.js.map +1 -1
  27. package/dist/commands/docker/list.js +1 -1
  28. package/dist/commands/docker/list.js.map +1 -1
  29. package/dist/commands/docker/logs.js +1 -1
  30. package/dist/commands/docker/logs.js.map +1 -1
  31. package/dist/commands/docker/restart.js +1 -1
  32. package/dist/commands/docker/restart.js.map +1 -1
  33. package/dist/commands/docker/shell.js +1 -1
  34. package/dist/commands/docker/shell.js.map +1 -1
  35. package/dist/commands/docker/start.js +1 -1
  36. package/dist/commands/docker/start.js.map +1 -1
  37. package/dist/commands/docker/stop.js +1 -1
  38. package/dist/commands/docker/stop.js.map +1 -1
  39. package/dist/commands/docker/sync.js +1 -1
  40. package/dist/commands/docker/sync.js.map +1 -1
  41. package/dist/commands/execution/config.js +2 -2
  42. package/dist/commands/execution/config.js.map +1 -1
  43. package/dist/commands/execution/list.js +1 -1
  44. package/dist/commands/execution/list.js.map +1 -1
  45. package/dist/commands/execution/logs.js +10 -8
  46. package/dist/commands/execution/logs.js.map +1 -1
  47. package/dist/commands/execution/stop.js +1 -1
  48. package/dist/commands/execution/stop.js.map +1 -1
  49. package/dist/commands/execution/view.js +1 -1
  50. package/dist/commands/execution/view.js.map +1 -1
  51. package/dist/commands/init.d.ts +0 -16
  52. package/dist/commands/init.js +50 -160
  53. package/dist/commands/init.js.map +1 -1
  54. package/dist/commands/logs.d.ts +20 -0
  55. package/dist/commands/logs.js +84 -0
  56. package/dist/commands/logs.js.map +1 -0
  57. package/dist/commands/mcp-server.js +1 -1
  58. package/dist/commands/mcp-server.js.map +1 -1
  59. package/dist/commands/new.d.ts +27 -0
  60. package/dist/commands/new.js +184 -0
  61. package/dist/commands/new.js.map +1 -0
  62. package/dist/commands/orchestrator/attach.d.ts +1 -0
  63. package/dist/commands/orchestrator/attach.js +159 -26
  64. package/dist/commands/orchestrator/attach.js.map +1 -1
  65. package/dist/commands/orchestrator/start.d.ts +20 -0
  66. package/dist/commands/orchestrator/start.js +123 -14
  67. package/dist/commands/orchestrator/start.js.map +1 -1
  68. package/dist/commands/orchestrator/status.d.ts +4 -0
  69. package/dist/commands/orchestrator/status.js +70 -29
  70. package/dist/commands/orchestrator/status.js.map +1 -1
  71. package/dist/commands/orchestrator/stop.js +57 -23
  72. package/dist/commands/orchestrator/stop.js.map +1 -1
  73. package/dist/commands/peek.d.ts +20 -0
  74. package/dist/commands/peek.js +84 -0
  75. package/dist/commands/peek.js.map +1 -0
  76. package/dist/commands/poke.d.ts +20 -0
  77. package/dist/commands/poke.js +89 -0
  78. package/dist/commands/poke.js.map +1 -0
  79. package/dist/commands/pr/link.js +1 -1
  80. package/dist/commands/pr/link.js.map +1 -1
  81. package/dist/commands/pr/status.js +1 -1
  82. package/dist/commands/pr/status.js.map +1 -1
  83. package/dist/commands/ps.d.ts +18 -0
  84. package/dist/commands/ps.js +123 -0
  85. package/dist/commands/ps.js.map +1 -0
  86. package/dist/commands/qa/index.js +1 -1
  87. package/dist/commands/qa/index.js.map +1 -1
  88. package/dist/commands/repo/add.js +1 -1
  89. package/dist/commands/repo/add.js.map +1 -1
  90. package/dist/commands/repo/fix-remotes.d.ts +14 -0
  91. package/dist/commands/repo/fix-remotes.js +154 -0
  92. package/dist/commands/repo/fix-remotes.js.map +1 -0
  93. package/dist/commands/repo/list.js +1 -1
  94. package/dist/commands/repo/list.js.map +1 -1
  95. package/dist/commands/repo/remove.js +1 -1
  96. package/dist/commands/repo/remove.js.map +1 -1
  97. package/dist/commands/repo/view.js +1 -1
  98. package/dist/commands/repo/view.js.map +1 -1
  99. package/dist/commands/run/index.d.ts +25 -0
  100. package/dist/commands/run/index.js +212 -0
  101. package/dist/commands/run/index.js.map +1 -0
  102. package/dist/commands/session/index.js +4 -0
  103. package/dist/commands/session/index.js.map +1 -1
  104. package/dist/commands/session/prune.d.ts +18 -0
  105. package/dist/commands/session/prune.js +327 -0
  106. package/dist/commands/session/prune.js.map +1 -0
  107. package/dist/commands/shortcut/connect.d.ts +15 -0
  108. package/dist/commands/shortcut/connect.js +210 -0
  109. package/dist/commands/shortcut/connect.js.map +1 -0
  110. package/dist/commands/stop.d.ts +19 -0
  111. package/dist/commands/stop.js +83 -0
  112. package/dist/commands/stop.js.map +1 -0
  113. package/dist/commands/work/asana.d.ts +23 -0
  114. package/dist/commands/work/asana.js +213 -0
  115. package/dist/commands/work/asana.js.map +1 -0
  116. package/dist/commands/work/complete.js +1 -1
  117. package/dist/commands/work/complete.js.map +1 -1
  118. package/dist/commands/work/ready.js +1 -1
  119. package/dist/commands/work/ready.js.map +1 -1
  120. package/dist/commands/work/review.js +1 -1
  121. package/dist/commands/work/review.js.map +1 -1
  122. package/dist/commands/work/revise.js +1 -1
  123. package/dist/commands/work/revise.js.map +1 -1
  124. package/dist/commands/work/shortcut.d.ts +23 -0
  125. package/dist/commands/work/shortcut.js +212 -0
  126. package/dist/commands/work/shortcut.js.map +1 -0
  127. package/dist/commands/work/spawn.d.ts +3 -0
  128. package/dist/commands/work/spawn.js +175 -2
  129. package/dist/commands/work/spawn.js.map +1 -1
  130. package/dist/commands/work/start.js +54 -45
  131. package/dist/commands/work/start.js.map +1 -1
  132. package/dist/commands/work/watch.js +1 -1
  133. package/dist/commands/work/watch.js.map +1 -1
  134. package/dist/commands/workspace/add.js +1 -1
  135. package/dist/commands/workspace/add.js.map +1 -1
  136. package/dist/commands/workspace/list.js +1 -1
  137. package/dist/commands/workspace/list.js.map +1 -1
  138. package/dist/hooks/init.d.ts +1 -1
  139. package/dist/hooks/init.js +6 -6
  140. package/dist/hooks/init.js.map +1 -1
  141. package/dist/lib/agent-naming.d.ts +15 -0
  142. package/dist/lib/agent-naming.js +32 -0
  143. package/dist/lib/agent-naming.js.map +1 -0
  144. package/dist/lib/agents/commands.d.ts +2 -0
  145. package/dist/lib/agents/commands.js +56 -51
  146. package/dist/lib/agents/commands.js.map +1 -1
  147. package/dist/lib/agents/index.js +11 -7
  148. package/dist/lib/agents/index.js.map +1 -1
  149. package/dist/lib/asana/client.d.ts +8 -0
  150. package/dist/lib/asana/client.js +26 -7
  151. package/dist/lib/asana/client.js.map +1 -1
  152. package/dist/lib/asana/types.d.ts +20 -0
  153. package/dist/lib/branch/index.d.ts +36 -0
  154. package/dist/lib/branch/index.js +129 -0
  155. package/dist/lib/branch/index.js.map +1 -1
  156. package/dist/lib/database/index.js +1 -1
  157. package/dist/lib/database/index.js.map +1 -1
  158. package/dist/lib/database/native-validation.d.ts +2 -0
  159. package/dist/lib/database/native-validation.js +30 -1
  160. package/dist/lib/database/native-validation.js.map +1 -1
  161. package/dist/lib/events/emitting-runner.d.ts +30 -0
  162. package/dist/lib/events/emitting-runner.js +95 -0
  163. package/dist/lib/events/emitting-runner.js.map +1 -0
  164. package/dist/lib/events/event-bus.d.ts +54 -0
  165. package/dist/lib/events/event-bus.js +107 -0
  166. package/dist/lib/events/event-bus.js.map +1 -0
  167. package/dist/lib/events/events.d.ts +67 -0
  168. package/dist/lib/events/events.js +8 -0
  169. package/dist/lib/events/events.js.map +1 -0
  170. package/dist/lib/events/index.d.ts +7 -0
  171. package/dist/lib/events/index.js +6 -0
  172. package/dist/lib/events/index.js.map +1 -0
  173. package/dist/lib/execution/devcontainer.d.ts +27 -0
  174. package/dist/lib/execution/devcontainer.js +80 -0
  175. package/dist/lib/execution/devcontainer.js.map +1 -1
  176. package/dist/lib/execution/runners.d.ts +28 -0
  177. package/dist/lib/execution/runners.js +536 -35
  178. package/dist/lib/execution/runners.js.map +1 -1
  179. package/dist/lib/execution/spawner.js +38 -17
  180. package/dist/lib/execution/spawner.js.map +1 -1
  181. package/dist/lib/execution/types.d.ts +2 -0
  182. package/dist/lib/execution/types.js.map +1 -1
  183. package/dist/lib/external-issues/adapters.d.ts +34 -0
  184. package/dist/lib/external-issues/adapters.js +191 -0
  185. package/dist/lib/external-issues/adapters.js.map +1 -1
  186. package/dist/lib/external-issues/asana.d.ts +75 -0
  187. package/dist/lib/external-issues/asana.js +243 -0
  188. package/dist/lib/external-issues/asana.js.map +1 -0
  189. package/dist/lib/external-issues/index.d.ts +4 -2
  190. package/dist/lib/external-issues/index.js +6 -2
  191. package/dist/lib/external-issues/index.js.map +1 -1
  192. package/dist/lib/external-issues/linear.js.map +1 -1
  193. package/dist/lib/external-issues/mapping-store.js +1 -1
  194. package/dist/lib/external-issues/shortcut.d.ts +86 -0
  195. package/dist/lib/external-issues/shortcut.js +274 -0
  196. package/dist/lib/external-issues/shortcut.js.map +1 -0
  197. package/dist/lib/external-issues/types.d.ts +3 -3
  198. package/dist/lib/external-issues/types.js +1 -1
  199. package/dist/lib/external-issues/types.js.map +1 -1
  200. package/dist/lib/mcp/tools/cli-passthrough.js +1 -1
  201. package/dist/lib/mcp/tools/cli-passthrough.js.map +1 -1
  202. package/dist/lib/mcp/tools/work.js +1 -1
  203. package/dist/lib/mcp/tools/work.js.map +1 -1
  204. package/dist/lib/pmo/index.d.ts +2 -2
  205. package/dist/lib/pmo/index.js +3 -3
  206. package/dist/lib/pmo/index.js.map +1 -1
  207. package/dist/lib/pmo/sync-manager.js +1 -1
  208. package/dist/lib/pmo/sync-manager.js.map +1 -1
  209. package/dist/lib/pmo/watcher.js +1 -1
  210. package/dist/lib/pmo/watcher.js.map +1 -1
  211. package/dist/lib/repos/git.d.ts +44 -0
  212. package/dist/lib/repos/git.js +127 -0
  213. package/dist/lib/repos/git.js.map +1 -1
  214. package/dist/lib/repos/index.js +36 -3
  215. package/dist/lib/repos/index.js.map +1 -1
  216. package/dist/lib/runners/agent-runner.d.ts +92 -0
  217. package/dist/lib/runners/agent-runner.js +9 -0
  218. package/dist/lib/runners/agent-runner.js.map +1 -0
  219. package/dist/lib/runners/claude-code-runner.d.ts +53 -0
  220. package/dist/lib/runners/claude-code-runner.js +132 -0
  221. package/dist/lib/runners/claude-code-runner.js.map +1 -0
  222. package/dist/lib/runners/index.d.ts +34 -0
  223. package/dist/lib/runners/index.js +97 -0
  224. package/dist/lib/runners/index.js.map +1 -0
  225. package/dist/lib/session-store.d.ts +70 -0
  226. package/dist/lib/session-store.js +167 -0
  227. package/dist/lib/session-store.js.map +1 -0
  228. package/dist/lib/shortcut/config.d.ts +44 -0
  229. package/dist/lib/shortcut/config.js +98 -0
  230. package/dist/lib/shortcut/config.js.map +1 -0
  231. package/dist/lib/shortcut/index.d.ts +7 -0
  232. package/dist/lib/shortcut/index.js +7 -0
  233. package/dist/lib/shortcut/index.js.map +1 -0
  234. package/dist/lib/work-source/client.d.ts +10 -0
  235. package/dist/lib/work-source/client.js +74 -0
  236. package/dist/lib/work-source/client.js.map +1 -0
  237. package/dist/lib/work-source/config.d.ts +1 -1
  238. package/dist/lib/work-source/config.js +17 -1
  239. package/dist/lib/work-source/config.js.map +1 -1
  240. package/dist/lib/work-source/index.d.ts +1 -0
  241. package/dist/lib/work-source/index.js +1 -0
  242. package/dist/lib/work-source/index.js.map +1 -1
  243. package/dist/lib/workspace.js +2 -2
  244. package/dist/lib/workspace.js.map +1 -1
  245. package/oclif.manifest.json +8135 -6979
  246. package/package.json +1 -1
@@ -0,0 +1,54 @@
1
+ /**
2
+ * EventBus — Typed event emitter for the execution runtime.
3
+ *
4
+ * Provides a type-safe publish/subscribe mechanism for runtime events.
5
+ * Uses a simple listener map instead of Node's EventEmitter for full
6
+ * type safety on both emit() and on() without casting.
7
+ */
8
+ import type { RuntimeEventMap, RuntimeEventName } from './events.js';
9
+ /** Listener function type for a specific event. */
10
+ export type EventListener<K extends RuntimeEventName> = (payload: RuntimeEventMap[K]) => void;
11
+ /**
12
+ * Typed event bus for runtime events.
13
+ *
14
+ * Usage:
15
+ * ```ts
16
+ * const bus = new EventBus()
17
+ * const unsub = bus.on('agent:spawned', (event) => {
18
+ * console.log(`Agent ${event.sessionId} spawned`)
19
+ * })
20
+ * bus.emit('agent:spawned', { sessionId: '...', ... })
21
+ * unsub() // unsubscribe
22
+ * ```
23
+ */
24
+ export declare class EventBus {
25
+ private listeners;
26
+ /**
27
+ * Subscribe to an event.
28
+ * Returns an unsubscribe function.
29
+ */
30
+ on<K extends RuntimeEventName>(event: K, listener: EventListener<K>): () => void;
31
+ /**
32
+ * Subscribe to an event for a single emission only.
33
+ * Returns an unsubscribe function (in case you want to cancel early).
34
+ */
35
+ once<K extends RuntimeEventName>(event: K, listener: EventListener<K>): () => void;
36
+ /**
37
+ * Emit an event to all subscribed listeners.
38
+ * Listeners are called synchronously in subscription order.
39
+ */
40
+ emit<K extends RuntimeEventName>(event: K, payload: RuntimeEventMap[K]): void;
41
+ /** Remove all listeners for a specific event, or all events if no name given. */
42
+ removeAllListeners(event?: RuntimeEventName): void;
43
+ /** Get the number of listeners for a specific event. */
44
+ listenerCount(event: RuntimeEventName): number;
45
+ }
46
+ /**
47
+ * Get the global default EventBus instance.
48
+ * Creates one on first access. Use this for application-wide event routing.
49
+ */
50
+ export declare function getEventBus(): EventBus;
51
+ /**
52
+ * Reset the global EventBus (primarily for testing).
53
+ */
54
+ export declare function resetEventBus(): void;
@@ -0,0 +1,107 @@
1
+ /**
2
+ * EventBus — Typed event emitter for the execution runtime.
3
+ *
4
+ * Provides a type-safe publish/subscribe mechanism for runtime events.
5
+ * Uses a simple listener map instead of Node's EventEmitter for full
6
+ * type safety on both emit() and on() without casting.
7
+ */
8
+ /**
9
+ * Typed event bus for runtime events.
10
+ *
11
+ * Usage:
12
+ * ```ts
13
+ * const bus = new EventBus()
14
+ * const unsub = bus.on('agent:spawned', (event) => {
15
+ * console.log(`Agent ${event.sessionId} spawned`)
16
+ * })
17
+ * bus.emit('agent:spawned', { sessionId: '...', ... })
18
+ * unsub() // unsubscribe
19
+ * ```
20
+ */
21
+ export class EventBus {
22
+ listeners = new Map();
23
+ /**
24
+ * Subscribe to an event.
25
+ * Returns an unsubscribe function.
26
+ */
27
+ on(event, listener) {
28
+ let set = this.listeners.get(event);
29
+ if (!set) {
30
+ set = new Set();
31
+ this.listeners.set(event, set);
32
+ }
33
+ set.add(listener);
34
+ return () => {
35
+ set.delete(listener);
36
+ if (set.size === 0) {
37
+ this.listeners.delete(event);
38
+ }
39
+ };
40
+ }
41
+ /**
42
+ * Subscribe to an event for a single emission only.
43
+ * Returns an unsubscribe function (in case you want to cancel early).
44
+ */
45
+ once(event, listener) {
46
+ const unsub = this.on(event, (payload) => {
47
+ unsub();
48
+ listener(payload);
49
+ });
50
+ return unsub;
51
+ }
52
+ /**
53
+ * Emit an event to all subscribed listeners.
54
+ * Listeners are called synchronously in subscription order.
55
+ */
56
+ emit(event, payload) {
57
+ const set = this.listeners.get(event);
58
+ if (!set)
59
+ return;
60
+ for (const listener of set) {
61
+ try {
62
+ listener(payload);
63
+ }
64
+ catch {
65
+ // Listeners should not throw, but don't let one bad listener
66
+ // break the emission chain.
67
+ }
68
+ }
69
+ }
70
+ /** Remove all listeners for a specific event, or all events if no name given. */
71
+ removeAllListeners(event) {
72
+ if (event) {
73
+ this.listeners.delete(event);
74
+ }
75
+ else {
76
+ this.listeners.clear();
77
+ }
78
+ }
79
+ /** Get the number of listeners for a specific event. */
80
+ listenerCount(event) {
81
+ return this.listeners.get(event)?.size ?? 0;
82
+ }
83
+ }
84
+ // =============================================================================
85
+ // Singleton
86
+ // =============================================================================
87
+ let _defaultBus;
88
+ /**
89
+ * Get the global default EventBus instance.
90
+ * Creates one on first access. Use this for application-wide event routing.
91
+ */
92
+ export function getEventBus() {
93
+ if (!_defaultBus) {
94
+ _defaultBus = new EventBus();
95
+ }
96
+ return _defaultBus;
97
+ }
98
+ /**
99
+ * Reset the global EventBus (primarily for testing).
100
+ */
101
+ export function resetEventBus() {
102
+ if (_defaultBus) {
103
+ _defaultBus.removeAllListeners();
104
+ }
105
+ _defaultBus = undefined;
106
+ }
107
+ //# sourceMappingURL=event-bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../src/lib/events/event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,QAAQ;IACX,SAAS,GAAG,IAAI,GAAG,EAA6C,CAAA;IAExE;;;OAGG;IACH,EAAE,CACA,KAAQ,EACR,QAA0B;QAE1B,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;YACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAChC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEjB,OAAO,GAAG,EAAE;YACV,GAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACrB,IAAI,GAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,CACF,KAAQ,EACR,QAA0B;QAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;YACvC,KAAK,EAAE,CAAA;YACP,QAAQ,CAAC,OAAO,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;OAGG;IACH,IAAI,CACF,KAAQ,EACR,OAA2B;QAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,GAAG;YAAE,OAAM;QAChB,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,CAAC,CAAA;YACnB,CAAC;YAAC,MAAM,CAAC;gBACP,6DAA6D;gBAC7D,4BAA4B;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,kBAAkB,CAAC,KAAwB;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACxB,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,aAAa,CAAC,KAAuB;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,CAAA;IAC7C,CAAC;CACF;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,IAAI,WAAiC,CAAA;AAErC;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,IAAI,QAAQ,EAAE,CAAA;IAC9B,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,kBAAkB,EAAE,CAAA;IAClC,CAAC;IACD,WAAW,GAAG,SAAS,CAAA;AACzB,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Execution Runtime Event Definitions
3
+ *
4
+ * Typed event payloads emitted by the execution runtime during agent lifecycle.
5
+ * These events enable workflow automation, logging, and orchestration hooks.
6
+ */
7
+ import type { ExecutionStatus } from '../execution/types.js';
8
+ /** Emitted when an agent session is spawned. */
9
+ export interface AgentSpawnedEvent {
10
+ sessionId: string;
11
+ runner: string;
12
+ task: string;
13
+ workdir: string;
14
+ background: boolean;
15
+ timestamp: Date;
16
+ }
17
+ /** Emitted when an agent session status changes. */
18
+ export interface AgentStatusChangeEvent {
19
+ sessionId: string;
20
+ runner: string;
21
+ previousStatus: ExecutionStatus | 'running' | 'done' | 'error';
22
+ newStatus: ExecutionStatus | 'running' | 'done' | 'error';
23
+ timestamp: Date;
24
+ }
25
+ /** Emitted when a message is sent to an agent session (poke). */
26
+ export interface AgentPokedEvent {
27
+ sessionId: string;
28
+ runner: string;
29
+ message: string;
30
+ timestamp: Date;
31
+ }
32
+ /** Emitted when an agent session is stopped. */
33
+ export interface AgentStoppedEvent {
34
+ sessionId: string;
35
+ runner: string;
36
+ reason: 'manual' | 'completed' | 'error';
37
+ timestamp: Date;
38
+ }
39
+ /** Emitted when an agent session encounters an error. */
40
+ export interface AgentErrorEvent {
41
+ sessionId: string;
42
+ runner: string;
43
+ error: string;
44
+ timestamp: Date;
45
+ }
46
+ /** Emitted when agent output is captured (peek). */
47
+ export interface AgentOutputEvent {
48
+ sessionId: string;
49
+ runner: string;
50
+ output: string;
51
+ lines: number;
52
+ timestamp: Date;
53
+ }
54
+ /**
55
+ * Maps event names to their payload types.
56
+ * Used by EventBus for type-safe subscriptions and emissions.
57
+ */
58
+ export interface RuntimeEventMap {
59
+ 'agent:spawned': AgentSpawnedEvent;
60
+ 'agent:status_change': AgentStatusChangeEvent;
61
+ 'agent:poked': AgentPokedEvent;
62
+ 'agent:stopped': AgentStoppedEvent;
63
+ 'agent:error': AgentErrorEvent;
64
+ 'agent:output': AgentOutputEvent;
65
+ }
66
+ /** Union of all event names. */
67
+ export type RuntimeEventName = keyof RuntimeEventMap;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Execution Runtime Event Definitions
3
+ *
4
+ * Typed event payloads emitted by the execution runtime during agent lifecycle.
5
+ * These events enable workflow automation, logging, and orchestration hooks.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/lib/events/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Events module — public API.
3
+ */
4
+ export type { RuntimeEventMap, RuntimeEventName, AgentSpawnedEvent, AgentStatusChangeEvent, AgentPokedEvent, AgentStoppedEvent, AgentErrorEvent, AgentOutputEvent, } from './events.js';
5
+ export { EventBus, getEventBus, resetEventBus, } from './event-bus.js';
6
+ export type { EventListener } from './event-bus.js';
7
+ export { EventEmittingRunner } from './emitting-runner.js';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Events module — public API.
3
+ */
4
+ export { EventBus, getEventBus, resetEventBus, } from './event-bus.js';
5
+ export { EventEmittingRunner } from './emitting-runner.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/events/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EACL,QAAQ,EACR,WAAW,EACX,aAAa,GACd,MAAM,gBAAgB,CAAA;AAIvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA"}
@@ -74,6 +74,33 @@ export declare function generatePrltSetupScript(): string;
74
74
  * Writes devcontainer.json, Dockerfile, and init-firewall.sh
75
75
  */
76
76
  export declare function createDevcontainerConfig(options: DevcontainerOptions, config?: ExecutionConfig): void;
77
+ export interface OrchestratorDockerOptions {
78
+ /** Orchestrator name (e.g., 'main') */
79
+ orchestratorName: string;
80
+ /** HQ root directory path */
81
+ hqPath: string;
82
+ /** Timezone for the container */
83
+ timezone?: string;
84
+ /** prlt channel: "npm", "npm:dev", "gh", "mount", or version like "npm:1.2.3" */
85
+ prltChannel?: string;
86
+ /** Executor type - determines which CLI tools to install */
87
+ executor?: ExecutorType;
88
+ /** Git user.name for commit attribution */
89
+ gitUserName?: string;
90
+ /** Git user.email for commit attribution */
91
+ gitUserEmail?: string;
92
+ }
93
+ /**
94
+ * Generate a Dockerfile for the orchestrator container.
95
+ *
96
+ * The orchestrator container is designed for the sibling container pattern:
97
+ * - Docker socket is mounted from the host so the orchestrator can spawn
98
+ * agent containers as siblings (not nested Docker-in-Docker)
99
+ * - HQ directory is mounted for workspace access
100
+ * - prlt CLI is installed for orchestration commands
101
+ * - No firewall needed since orchestrator needs to manage Docker
102
+ */
103
+ export declare function generateOrchestratorDockerfile(options: OrchestratorDockerOptions): string;
77
104
  /**
78
105
  * Check if agent has devcontainer configuration
79
106
  */
@@ -683,6 +683,86 @@ export function createDevcontainerConfig(options, config) {
683
683
  const setupScriptPath = path.join(devcontainerDir, 'setup-prlt.sh');
684
684
  fs.writeFileSync(setupScriptPath, setupScript, { mode: 0o755 });
685
685
  }
686
+ /**
687
+ * Generate a Dockerfile for the orchestrator container.
688
+ *
689
+ * The orchestrator container is designed for the sibling container pattern:
690
+ * - Docker socket is mounted from the host so the orchestrator can spawn
691
+ * agent containers as siblings (not nested Docker-in-Docker)
692
+ * - HQ directory is mounted for workspace access
693
+ * - prlt CLI is installed for orchestration commands
694
+ * - No firewall needed since orchestrator needs to manage Docker
695
+ */
696
+ export function generateOrchestratorDockerfile(options) {
697
+ const timezone = options.timezone || 'America/Los_Angeles';
698
+ return `FROM node:22
699
+
700
+ # Ensure we run as root for apt-get and system setup
701
+ USER root
702
+
703
+ ARG TZ=${timezone}
704
+ ENV TZ=\${TZ}
705
+
706
+ # Install system dependencies (no iptables/ipset - orchestrator doesn't use firewall)
707
+ RUN apt-get update && apt-get install -y \\
708
+ less git git-lfs procps sudo fzf zsh man-db unzip gnupg2 gh tmux \\
709
+ jq nano vim curl docker.io \\
710
+ && rm -rf /var/lib/apt/lists/* \\
711
+ && git lfs install
712
+
713
+ # Create workspace and claude directories
714
+ RUN mkdir -p /workspace /hq /home/node/.claude \\
715
+ && chown -R node:node /workspace /hq /home/node/.claude
716
+
717
+ # Add node user to docker group so it can use Docker socket
718
+ RUN groupadd -f docker && usermod -aG docker node
719
+
720
+ # Set up persistent bash history
721
+ RUN mkdir -p /commandhistory \\
722
+ && touch /commandhistory/.bash_history \\
723
+ && chown -R node:node /commandhistory
724
+
725
+ # Install git-delta for better diffs (architecture-aware)
726
+ RUN ARCH=$(dpkg --print-architecture) && \\
727
+ curl -L "https://github.com/dandavison/delta/releases/download/0.18.2/git-delta_0.18.2_\${ARCH}.deb" -o /tmp/delta.deb && \\
728
+ dpkg -i /tmp/delta.deb && \\
729
+ rm /tmp/delta.deb
730
+
731
+ # Install zsh with oh-my-zsh
732
+ RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended \\
733
+ && chsh -s /bin/zsh node
734
+
735
+ # Configure npm global directory
736
+ RUN mkdir -p /home/node/.npm-global/bin /home/node/.npm-global/lib \\
737
+ && chown -R node:node /home/node/.npm-global
738
+ ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
739
+ ENV PATH=/home/node/.npm-global/bin:/usr/local/bin:/usr/bin:/bin
740
+
741
+ # Install pnpm and executor CLI as node user
742
+ USER node
743
+ RUN npm install -g pnpm && npm install -g @anthropic-ai/claude-code${options.executor === 'codex' ? ' && npm install -g @openai/codex' : ''}
744
+ USER root
745
+
746
+ # Install prlt CLI
747
+ ARG PRLT_REGISTRY=npm
748
+ ARG PRLT_VERSION=latest
749
+ RUN if [ "\${PRLT_REGISTRY}" = "npm" ] || [ "\${PRLT_REGISTRY}" = "gh" ]; then \\
750
+ echo "Installing @proletariat/cli@\${PRLT_VERSION} from npm..." && \\
751
+ npm install -g @proletariat/cli@\${PRLT_VERSION}; \\
752
+ else \\
753
+ echo "prlt will be mounted from host (mount mode)"; \\
754
+ fi
755
+
756
+ # Set default editor
757
+ ENV EDITOR=nano
758
+
759
+ # Configure shell history
760
+ ENV HISTFILE=/commandhistory/.bash_history
761
+
762
+ USER node
763
+ WORKDIR /hq
764
+ `;
765
+ }
686
766
  /**
687
767
  * Check if agent has devcontainer configuration
688
768
  */
@@ -1 +1 @@
1
- {"version":3,"file":"devcontainer.js","sourceRoot":"","sources":["../../../src/lib/execution/devcontainer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devcontainer.js","sourceRoot":"","sources":["../../../src/lib/execution/devcontainer.ts"],"names":[],"mappings":"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"}
@@ -109,6 +109,12 @@ export declare function checkExecutorInContainer(executor: ExecutorType, contain
109
109
  export declare function runExecutorPreflight(environment: ExecutionEnvironment, executor: ExecutorType, options?: {
110
110
  containerId?: string;
111
111
  }): PreflightResult;
112
+ /**
113
+ * Build the system prompt for orchestrator sessions.
114
+ * This is injected via Claude Code's --system-prompt flag so the orchestrator
115
+ * knows its role immediately without relying on CLAUDE.md.
116
+ */
117
+ export declare function buildOrchestratorSystemPrompt(context: ExecutionContext): string;
112
118
  export interface RunnerResult {
113
119
  success: boolean;
114
120
  pid?: string;
@@ -184,6 +190,28 @@ export declare function buildDevcontainerCommand(context: ExecutionContext, exec
184
190
  */
185
191
  export declare function runDevcontainer(context: ExecutionContext, executor: ExecutorType, config: ExecutionConfig, displayMode?: DisplayMode, sessionManager?: SessionManager): Promise<RunnerResult>;
186
192
  export declare function runDocker(context: ExecutionContext, executor: ExecutorType, config: ExecutionConfig): Promise<RunnerResult>;
193
+ /**
194
+ * Run orchestrator in a Docker container using the sibling container pattern.
195
+ *
196
+ * Architecture:
197
+ * ```
198
+ * Host Docker daemon
199
+ * ├── orchestrator container (has /var/run/docker.sock mounted)
200
+ * ├── agent-1 container (spawned by orchestrator, sibling)
201
+ * ├── agent-2 container (spawned by orchestrator, sibling)
202
+ * ```
203
+ *
204
+ * The orchestrator container needs:
205
+ * - HQ directory mounted (proletariat-hq)
206
+ * - Docker socket mounted (/var/run/docker.sock) — so it can spawn agent containers as siblings
207
+ * - prlt CLI installed in the container
208
+ * - OAuth credentials for Claude Code (via Docker volume)
209
+ * - tmux for session persistence inside the container
210
+ */
211
+ export declare function runOrchestratorInDocker(context: ExecutionContext, executor: ExecutorType, config: ExecutionConfig, options?: {
212
+ displayMode?: DisplayMode;
213
+ sessionName?: string;
214
+ }): Promise<RunnerResult>;
187
215
  export declare function runVm(context: ExecutionContext, executor: ExecutorType, config: ExecutionConfig, host?: string): Promise<RunnerResult>;
188
216
  export declare function runExecution(environment: ExecutionEnvironment, context: ExecutionContext, executor: ExecutorType, config?: ExecutionConfig, options?: {
189
217
  host?: string;