@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
@@ -313,6 +313,12 @@
313
313
  "name": "purge-db",
314
314
  "allowNo": false,
315
315
  "type": "boolean"
316
+ },
317
+ "orphans": {
318
+ "description": "Also find and clean orphaned worktrees (agents with no running session)",
319
+ "name": "orphans",
320
+ "allowNo": false,
321
+ "type": "boolean"
316
322
  }
317
323
  },
318
324
  "hasDynamicHelp": false,
@@ -1972,66 +1978,6 @@
1972
1978
  "sync.js"
1973
1979
  ]
1974
1980
  },
1975
- "autocomplete:setup": {
1976
- "aliases": [],
1977
- "args": {},
1978
- "description": "Auto-detect shell and set up autocomplete",
1979
- "examples": [
1980
- "<%= config.bin %> <%= command.id %>",
1981
- "<%= config.bin %> <%= command.id %> --install",
1982
- "<%= config.bin %> <%= command.id %> --shell zsh",
1983
- "<%= config.bin %> <%= command.id %> --shell zsh --install --machine"
1984
- ],
1985
- "flags": {
1986
- "json": {
1987
- "description": "Output as JSON for AI agents/scripts",
1988
- "name": "json",
1989
- "allowNo": false,
1990
- "type": "boolean"
1991
- },
1992
- "machine": {
1993
- "char": "m",
1994
- "description": "Output as JSON for AI agents/scripts",
1995
- "name": "machine",
1996
- "allowNo": false,
1997
- "type": "boolean"
1998
- },
1999
- "install": {
2000
- "char": "i",
2001
- "description": "Automatically install to shell config file",
2002
- "name": "install",
2003
- "allowNo": false,
2004
- "type": "boolean"
2005
- },
2006
- "shell": {
2007
- "char": "s",
2008
- "description": "Override shell detection (zsh, bash, powershell)",
2009
- "name": "shell",
2010
- "hasDynamicHelp": false,
2011
- "multiple": false,
2012
- "options": [
2013
- "zsh",
2014
- "bash",
2015
- "powershell"
2016
- ],
2017
- "type": "option"
2018
- }
2019
- },
2020
- "hasDynamicHelp": false,
2021
- "hiddenAliases": [],
2022
- "id": "autocomplete:setup",
2023
- "pluginAlias": "@proletariat/cli",
2024
- "pluginName": "@proletariat/cli",
2025
- "pluginType": "core",
2026
- "strict": true,
2027
- "isESM": true,
2028
- "relativePath": [
2029
- "dist",
2030
- "commands",
2031
- "autocomplete",
2032
- "setup.js"
2033
- ]
2034
- },
2035
1981
  "branch:create": {
2036
1982
  "aliases": [],
2037
1983
  "args": {
@@ -2388,6 +2334,66 @@
2388
2334
  "where.js"
2389
2335
  ]
2390
2336
  },
2337
+ "autocomplete:setup": {
2338
+ "aliases": [],
2339
+ "args": {},
2340
+ "description": "Auto-detect shell and set up autocomplete",
2341
+ "examples": [
2342
+ "<%= config.bin %> <%= command.id %>",
2343
+ "<%= config.bin %> <%= command.id %> --install",
2344
+ "<%= config.bin %> <%= command.id %> --shell zsh",
2345
+ "<%= config.bin %> <%= command.id %> --shell zsh --install --machine"
2346
+ ],
2347
+ "flags": {
2348
+ "json": {
2349
+ "description": "Output as JSON for AI agents/scripts",
2350
+ "name": "json",
2351
+ "allowNo": false,
2352
+ "type": "boolean"
2353
+ },
2354
+ "machine": {
2355
+ "char": "m",
2356
+ "description": "Output as JSON for AI agents/scripts",
2357
+ "name": "machine",
2358
+ "allowNo": false,
2359
+ "type": "boolean"
2360
+ },
2361
+ "install": {
2362
+ "char": "i",
2363
+ "description": "Automatically install to shell config file",
2364
+ "name": "install",
2365
+ "allowNo": false,
2366
+ "type": "boolean"
2367
+ },
2368
+ "shell": {
2369
+ "char": "s",
2370
+ "description": "Override shell detection (zsh, bash, powershell)",
2371
+ "name": "shell",
2372
+ "hasDynamicHelp": false,
2373
+ "multiple": false,
2374
+ "options": [
2375
+ "zsh",
2376
+ "bash",
2377
+ "powershell"
2378
+ ],
2379
+ "type": "option"
2380
+ }
2381
+ },
2382
+ "hasDynamicHelp": false,
2383
+ "hiddenAliases": [],
2384
+ "id": "autocomplete:setup",
2385
+ "pluginAlias": "@proletariat/cli",
2386
+ "pluginName": "@proletariat/cli",
2387
+ "pluginType": "core",
2388
+ "strict": true,
2389
+ "isESM": true,
2390
+ "relativePath": [
2391
+ "dist",
2392
+ "commands",
2393
+ "autocomplete",
2394
+ "setup.js"
2395
+ ]
2396
+ },
2391
2397
  "caffeinate": {
2392
2398
  "aliases": [],
2393
2399
  "args": {},
@@ -3009,20 +3015,41 @@
3009
3015
  "repair.js"
3010
3016
  ]
3011
3017
  },
3012
- "execution:config": {
3018
+ "docker:clean": {
3013
3019
  "aliases": [],
3014
3020
  "args": {},
3015
- "description": "View and update execution preferences",
3021
+ "description": "Remove orphaned containers (containers without running agents)",
3016
3022
  "examples": [
3017
- "<%= config.bin %> execution config # Interactive menu",
3018
- "<%= config.bin %> execution config --json # Output current config as JSON",
3019
- "<%= config.bin %> execution config --list # Show all settings",
3020
- "<%= config.bin %> execution config --set defaultEnvironment host",
3021
- "<%= config.bin %> execution config --set outputMode interactive",
3022
- "<%= config.bin %> execution config --set permissionMode safe",
3023
- "<%= config.bin %> execution config --setting outputMode --json # Show output mode choices"
3023
+ "<%= config.bin %> <%= command.id %>",
3024
+ "<%= config.bin %> <%= command.id %> --force",
3025
+ "<%= config.bin %> <%= command.id %> --dry-run"
3024
3026
  ],
3025
3027
  "flags": {
3028
+ "force": {
3029
+ "aliases": [
3030
+ "yes",
3031
+ "y"
3032
+ ],
3033
+ "char": "f",
3034
+ "description": "Skip confirmation prompt",
3035
+ "name": "force",
3036
+ "allowNo": false,
3037
+ "type": "boolean"
3038
+ },
3039
+ "dry-run": {
3040
+ "char": "d",
3041
+ "description": "Show what would be removed without removing",
3042
+ "name": "dry-run",
3043
+ "allowNo": false,
3044
+ "type": "boolean"
3045
+ },
3046
+ "all": {
3047
+ "char": "a",
3048
+ "description": "Remove all stopped devcontainers (not just orphaned)",
3049
+ "name": "all",
3050
+ "allowNo": false,
3051
+ "type": "boolean"
3052
+ },
3026
3053
  "json": {
3027
3054
  "description": "Output as JSON for AI agents/scripts",
3028
3055
  "name": "json",
@@ -3035,54 +3062,41 @@
3035
3062
  "name": "machine",
3036
3063
  "allowNo": false,
3037
3064
  "type": "boolean"
3038
- },
3039
- "set": {
3040
- "char": "s",
3041
- "description": "Set a config value (format: key value)",
3042
- "name": "set",
3043
- "hasDynamicHelp": false,
3044
- "multiple": true,
3045
- "type": "option"
3046
- },
3047
- "list": {
3048
- "char": "l",
3049
- "description": "List all configuration values",
3050
- "name": "list",
3051
- "allowNo": false,
3052
- "type": "boolean"
3053
- },
3054
- "setting": {
3055
- "description": "Navigate to a specific setting prompt (for agent navigation)",
3056
- "name": "setting",
3057
- "hasDynamicHelp": false,
3058
- "multiple": false,
3059
- "type": "option"
3060
3065
  }
3061
3066
  },
3062
3067
  "hasDynamicHelp": false,
3063
3068
  "hiddenAliases": [],
3064
- "id": "execution:config",
3069
+ "id": "docker:clean",
3065
3070
  "pluginAlias": "@proletariat/cli",
3066
3071
  "pluginName": "@proletariat/cli",
3067
3072
  "pluginType": "core",
3068
3073
  "strict": true,
3074
+ "enableJsonFlag": false,
3069
3075
  "isESM": true,
3070
3076
  "relativePath": [
3071
3077
  "dist",
3072
3078
  "commands",
3073
- "execution",
3074
- "config.js"
3079
+ "docker",
3080
+ "clean.js"
3075
3081
  ]
3076
3082
  },
3077
- "execution": {
3083
+ "docker": {
3078
3084
  "aliases": [],
3079
3085
  "args": {},
3080
- "description": "Single execution operations (view, logs, stop)",
3086
+ "description": "Manage Docker containers used by agents",
3081
3087
  "examples": [
3082
3088
  "<%= config.bin %> <%= command.id %>",
3083
- "<%= config.bin %> <%= command.id %> view WORK-001",
3084
- "<%= config.bin %> <%= command.id %> logs WORK-001",
3085
- "<%= config.bin %> <%= command.id %> stop WORK-001"
3089
+ "<%= config.bin %> docker status",
3090
+ "<%= config.bin %> docker list",
3091
+ "<%= config.bin %> docker logs WORK-001",
3092
+ "<%= config.bin %> docker start WORK-001",
3093
+ "<%= config.bin %> docker stop kalanick",
3094
+ "<%= config.bin %> docker shell WORK-001",
3095
+ "<%= config.bin %> docker restart abc123",
3096
+ "<%= config.bin %> docker sync",
3097
+ "<%= config.bin %> docker rebuild-cache",
3098
+ "<%= config.bin %> docker clean",
3099
+ "<%= config.bin %> docker prune"
3086
3100
  ],
3087
3101
  "flags": {
3088
3102
  "json": {
@@ -3101,7 +3115,7 @@
3101
3115
  },
3102
3116
  "hasDynamicHelp": false,
3103
3117
  "hiddenAliases": [],
3104
- "id": "execution",
3118
+ "id": "docker",
3105
3119
  "pluginAlias": "@proletariat/cli",
3106
3120
  "pluginName": "@proletariat/cli",
3107
3121
  "pluginType": "core",
@@ -3110,19 +3124,18 @@
3110
3124
  "relativePath": [
3111
3125
  "dist",
3112
3126
  "commands",
3113
- "execution",
3127
+ "docker",
3114
3128
  "index.js"
3115
3129
  ]
3116
3130
  },
3117
- "execution:list": {
3131
+ "docker:list": {
3118
3132
  "aliases": [],
3119
3133
  "args": {},
3120
- "description": "List running and recent executions",
3134
+ "description": "Show Docker containers from agent_work table with status",
3121
3135
  "examples": [
3122
3136
  "<%= config.bin %> <%= command.id %>",
3123
- "<%= config.bin %> <%= command.id %> --status running",
3124
- "<%= config.bin %> <%= command.id %> --agent alice",
3125
- "<%= config.bin %> <%= command.id %> --limit 50"
3137
+ "<%= config.bin %> <%= command.id %> --all",
3138
+ "<%= config.bin %> <%= command.id %> --running"
3126
3139
  ],
3127
3140
  "flags": {
3128
3141
  "json": {
@@ -3138,69 +3151,52 @@
3138
3151
  "allowNo": false,
3139
3152
  "type": "boolean"
3140
3153
  },
3141
- "status": {
3142
- "char": "s",
3143
- "description": "Filter by status",
3144
- "name": "status",
3145
- "hasDynamicHelp": false,
3146
- "multiple": false,
3147
- "options": [
3148
- "starting",
3149
- "running",
3150
- "completed",
3151
- "failed",
3152
- "stopped"
3153
- ],
3154
- "type": "option"
3155
- },
3156
- "agent": {
3154
+ "all": {
3157
3155
  "char": "a",
3158
- "description": "Filter by agent name",
3159
- "name": "agent",
3160
- "hasDynamicHelp": false,
3161
- "multiple": false,
3162
- "type": "option"
3156
+ "description": "Show all containers (including non-devcontainer)",
3157
+ "name": "all",
3158
+ "allowNo": false,
3159
+ "type": "boolean"
3163
3160
  },
3164
- "limit": {
3165
- "char": "l",
3166
- "description": "Number of results",
3167
- "name": "limit",
3168
- "default": 20,
3169
- "hasDynamicHelp": false,
3170
- "multiple": false,
3171
- "type": "option"
3161
+ "running": {
3162
+ "char": "r",
3163
+ "description": "Only show running containers",
3164
+ "name": "running",
3165
+ "allowNo": false,
3166
+ "type": "boolean"
3172
3167
  }
3173
3168
  },
3174
3169
  "hasDynamicHelp": false,
3175
3170
  "hiddenAliases": [],
3176
- "id": "execution:list",
3171
+ "id": "docker:list",
3177
3172
  "pluginAlias": "@proletariat/cli",
3178
3173
  "pluginName": "@proletariat/cli",
3179
3174
  "pluginType": "core",
3180
3175
  "strict": true,
3176
+ "enableJsonFlag": false,
3181
3177
  "isESM": true,
3182
3178
  "relativePath": [
3183
3179
  "dist",
3184
3180
  "commands",
3185
- "execution",
3181
+ "docker",
3186
3182
  "list.js"
3187
3183
  ]
3188
3184
  },
3189
- "execution:logs": {
3185
+ "docker:logs": {
3190
3186
  "aliases": [],
3191
3187
  "args": {
3192
- "id": {
3193
- "description": "Execution ID - prompts if not provided",
3194
- "name": "id",
3195
- "required": false
3188
+ "target": {
3189
+ "description": "Execution ID (WORK-XXX), agent name, or container ID",
3190
+ "name": "target",
3191
+ "required": true
3196
3192
  }
3197
3193
  },
3198
- "description": "View execution logs",
3194
+ "description": "View logs from a container (by execution ID, agent name, or container ID)",
3199
3195
  "examples": [
3200
3196
  "<%= config.bin %> <%= command.id %> WORK-001",
3201
- "<%= config.bin %> <%= command.id %> WORK-001 --follow",
3202
- "<%= config.bin %> <%= command.id %> WORK-001 --tail 50",
3203
- "<%= config.bin %> <%= command.id %> # Interactive mode"
3197
+ "<%= config.bin %> <%= command.id %> kalanick",
3198
+ "<%= config.bin %> <%= command.id %> abc123 --follow",
3199
+ "<%= config.bin %> <%= command.id %> WORK-001 --tail 100"
3204
3200
  ],
3205
3201
  "flags": {
3206
3202
  "json": {
@@ -3218,119 +3214,86 @@
3218
3214
  },
3219
3215
  "follow": {
3220
3216
  "char": "f",
3221
- "description": "Stream logs in real-time",
3217
+ "description": "Follow log output",
3222
3218
  "name": "follow",
3223
3219
  "allowNo": false,
3224
3220
  "type": "boolean"
3225
3221
  },
3226
3222
  "tail": {
3227
3223
  "char": "n",
3228
- "description": "Show last n lines",
3224
+ "description": "Number of lines to show from the end",
3229
3225
  "name": "tail",
3226
+ "default": 100,
3230
3227
  "hasDynamicHelp": false,
3231
3228
  "multiple": false,
3232
3229
  "type": "option"
3230
+ },
3231
+ "timestamps": {
3232
+ "char": "t",
3233
+ "description": "Show timestamps",
3234
+ "name": "timestamps",
3235
+ "allowNo": false,
3236
+ "type": "boolean"
3233
3237
  }
3234
3238
  },
3235
3239
  "hasDynamicHelp": false,
3236
3240
  "hiddenAliases": [],
3237
- "id": "execution:logs",
3241
+ "id": "docker:logs",
3238
3242
  "pluginAlias": "@proletariat/cli",
3239
3243
  "pluginName": "@proletariat/cli",
3240
3244
  "pluginType": "core",
3241
3245
  "strict": true,
3246
+ "enableJsonFlag": false,
3242
3247
  "isESM": true,
3243
3248
  "relativePath": [
3244
3249
  "dist",
3245
3250
  "commands",
3246
- "execution",
3251
+ "docker",
3247
3252
  "logs.js"
3248
3253
  ]
3249
3254
  },
3250
- "execution:stop": {
3255
+ "docker:prune": {
3251
3256
  "aliases": [],
3252
- "args": {
3253
- "id": {
3254
- "description": "Execution ID - prompts if not provided (ignored if --all or --agent used)",
3255
- "name": "id",
3256
- "required": false
3257
- }
3258
- },
3259
- "description": "Stop running execution(s)",
3257
+ "args": {},
3258
+ "description": "Remove unused Docker resources (containers, images, volumes, networks)",
3260
3259
  "examples": [
3261
- "<%= config.bin %> <%= command.id %> WORK-001",
3262
- "<%= config.bin %> <%= command.id %> WORK-001 --force",
3263
- "<%= config.bin %> <%= command.id %> # Interactive mode",
3260
+ "<%= config.bin %> <%= command.id %>",
3264
3261
  "<%= config.bin %> <%= command.id %> --all",
3265
- "<%= config.bin %> <%= command.id %> --all --force",
3266
- "<%= config.bin %> <%= command.id %> --agent altman"
3262
+ "<%= config.bin %> <%= command.id %> --volumes",
3263
+ "<%= config.bin %> <%= command.id %> --dry-run"
3267
3264
  ],
3268
3265
  "flags": {
3269
- "json": {
3270
- "description": "Output as JSON for AI agents/scripts",
3271
- "name": "json",
3266
+ "force": {
3267
+ "aliases": [
3268
+ "yes",
3269
+ "y"
3270
+ ],
3271
+ "char": "f",
3272
+ "description": "Skip confirmation prompt",
3273
+ "name": "force",
3272
3274
  "allowNo": false,
3273
3275
  "type": "boolean"
3274
3276
  },
3275
- "machine": {
3276
- "char": "m",
3277
- "description": "Output as JSON for AI agents/scripts",
3278
- "name": "machine",
3277
+ "dry-run": {
3278
+ "char": "d",
3279
+ "description": "Show what would be removed without removing",
3280
+ "name": "dry-run",
3279
3281
  "allowNo": false,
3280
3282
  "type": "boolean"
3281
3283
  },
3282
- "force": {
3283
- "char": "f",
3284
- "description": "Force kill (SIGKILL instead of SIGTERM)",
3285
- "name": "force",
3284
+ "all": {
3285
+ "char": "a",
3286
+ "description": "Remove all unused images, not just dangling ones",
3287
+ "name": "all",
3286
3288
  "allowNo": false,
3287
3289
  "type": "boolean"
3288
3290
  },
3289
- "all": {
3290
- "description": "Stop all running executions",
3291
- "name": "all",
3291
+ "volumes": {
3292
+ "description": "Also prune volumes (dangerous - data loss possible)",
3293
+ "name": "volumes",
3292
3294
  "allowNo": false,
3293
3295
  "type": "boolean"
3294
3296
  },
3295
- "agent": {
3296
- "char": "a",
3297
- "description": "Stop all executions for a specific agent",
3298
- "name": "agent",
3299
- "hasDynamicHelp": false,
3300
- "multiple": false,
3301
- "type": "option"
3302
- }
3303
- },
3304
- "hasDynamicHelp": false,
3305
- "hiddenAliases": [],
3306
- "id": "execution:stop",
3307
- "pluginAlias": "@proletariat/cli",
3308
- "pluginName": "@proletariat/cli",
3309
- "pluginType": "core",
3310
- "strict": true,
3311
- "isESM": true,
3312
- "relativePath": [
3313
- "dist",
3314
- "commands",
3315
- "execution",
3316
- "stop.js"
3317
- ]
3318
- },
3319
- "execution:view": {
3320
- "aliases": [],
3321
- "args": {
3322
- "id": {
3323
- "description": "Execution ID - prompts if not provided",
3324
- "name": "id",
3325
- "required": false
3326
- }
3327
- },
3328
- "description": "View details of a specific execution",
3329
- "examples": [
3330
- "<%= config.bin %> <%= command.id %> WORK-001",
3331
- "<%= config.bin %> <%= command.id %> # Interactive mode"
3332
- ],
3333
- "flags": {
3334
3297
  "json": {
3335
3298
  "description": "Output as JSON for AI agents/scripts",
3336
3299
  "name": "json",
@@ -3347,51 +3310,39 @@
3347
3310
  },
3348
3311
  "hasDynamicHelp": false,
3349
3312
  "hiddenAliases": [],
3350
- "id": "execution:view",
3313
+ "id": "docker:prune",
3351
3314
  "pluginAlias": "@proletariat/cli",
3352
3315
  "pluginName": "@proletariat/cli",
3353
3316
  "pluginType": "core",
3354
3317
  "strict": true,
3318
+ "enableJsonFlag": false,
3355
3319
  "isESM": true,
3356
3320
  "relativePath": [
3357
3321
  "dist",
3358
3322
  "commands",
3359
- "execution",
3360
- "view.js"
3323
+ "docker",
3324
+ "prune.js"
3361
3325
  ]
3362
3326
  },
3363
- "docker:clean": {
3327
+ "docker:rebuild-cache": {
3364
3328
  "aliases": [],
3365
3329
  "args": {},
3366
- "description": "Remove orphaned containers (containers without running agents)",
3330
+ "description": "Rebuild the shared pnpm store cache volume for fast agent installs",
3367
3331
  "examples": [
3368
3332
  "<%= config.bin %> <%= command.id %>",
3369
- "<%= config.bin %> <%= command.id %> --force",
3370
- "<%= config.bin %> <%= command.id %> --dry-run"
3333
+ "<%= config.bin %> <%= command.id %> --force"
3371
3334
  ],
3372
3335
  "flags": {
3373
3336
  "force": {
3374
- "aliases": [
3375
- "yes",
3376
- "y"
3377
- ],
3378
3337
  "char": "f",
3379
- "description": "Skip confirmation prompt",
3338
+ "description": "Delete and rebuild the cache even if it already exists",
3380
3339
  "name": "force",
3381
3340
  "allowNo": false,
3382
3341
  "type": "boolean"
3383
3342
  },
3384
- "dry-run": {
3385
- "char": "d",
3386
- "description": "Show what would be removed without removing",
3387
- "name": "dry-run",
3388
- "allowNo": false,
3389
- "type": "boolean"
3390
- },
3391
- "all": {
3392
- "char": "a",
3393
- "description": "Remove all stopped devcontainers (not just orphaned)",
3394
- "name": "all",
3343
+ "delete-only": {
3344
+ "description": "Only delete the cache volume (next agent spawn rebuilds it)",
3345
+ "name": "delete-only",
3395
3346
  "allowNo": false,
3396
3347
  "type": "boolean"
3397
3348
  },
@@ -3411,7 +3362,7 @@
3411
3362
  },
3412
3363
  "hasDynamicHelp": false,
3413
3364
  "hiddenAliases": [],
3414
- "id": "docker:clean",
3365
+ "id": "docker:rebuild-cache",
3415
3366
  "pluginAlias": "@proletariat/cli",
3416
3367
  "pluginName": "@proletariat/cli",
3417
3368
  "pluginType": "core",
@@ -3422,28 +3373,45 @@
3422
3373
  "dist",
3423
3374
  "commands",
3424
3375
  "docker",
3425
- "clean.js"
3376
+ "rebuild-cache.js"
3426
3377
  ]
3427
3378
  },
3428
- "docker": {
3379
+ "docker:restart": {
3429
3380
  "aliases": [],
3430
- "args": {},
3431
- "description": "Manage Docker containers used by agents",
3381
+ "args": {
3382
+ "target": {
3383
+ "description": "Execution ID (WORK-XXX), agent name, or container ID",
3384
+ "name": "target",
3385
+ "required": true
3386
+ }
3387
+ },
3388
+ "description": "Restart a container (by execution ID, agent name, or container ID)",
3432
3389
  "examples": [
3433
- "<%= config.bin %> <%= command.id %>",
3434
- "<%= config.bin %> docker status",
3435
- "<%= config.bin %> docker list",
3436
- "<%= config.bin %> docker logs WORK-001",
3437
- "<%= config.bin %> docker start WORK-001",
3438
- "<%= config.bin %> docker stop kalanick",
3439
- "<%= config.bin %> docker shell WORK-001",
3440
- "<%= config.bin %> docker restart abc123",
3441
- "<%= config.bin %> docker sync",
3442
- "<%= config.bin %> docker rebuild-cache",
3443
- "<%= config.bin %> docker clean",
3444
- "<%= config.bin %> docker prune"
3390
+ "<%= config.bin %> <%= command.id %> WORK-001",
3391
+ "<%= config.bin %> <%= command.id %> kalanick",
3392
+ "<%= config.bin %> <%= command.id %> abc123 --force"
3445
3393
  ],
3446
3394
  "flags": {
3395
+ "force": {
3396
+ "aliases": [
3397
+ "yes",
3398
+ "y"
3399
+ ],
3400
+ "char": "f",
3401
+ "description": "Skip confirmation prompt",
3402
+ "name": "force",
3403
+ "allowNo": false,
3404
+ "type": "boolean"
3405
+ },
3406
+ "time": {
3407
+ "char": "t",
3408
+ "description": "Seconds to wait before killing the container during stop",
3409
+ "name": "time",
3410
+ "default": 10,
3411
+ "hasDynamicHelp": false,
3412
+ "multiple": false,
3413
+ "type": "option"
3414
+ },
3447
3415
  "json": {
3448
3416
  "description": "Output as JSON for AI agents/scripts",
3449
3417
  "name": "json",
@@ -3460,27 +3428,34 @@
3460
3428
  },
3461
3429
  "hasDynamicHelp": false,
3462
3430
  "hiddenAliases": [],
3463
- "id": "docker",
3431
+ "id": "docker:restart",
3464
3432
  "pluginAlias": "@proletariat/cli",
3465
3433
  "pluginName": "@proletariat/cli",
3466
3434
  "pluginType": "core",
3467
3435
  "strict": true,
3436
+ "enableJsonFlag": false,
3468
3437
  "isESM": true,
3469
3438
  "relativePath": [
3470
3439
  "dist",
3471
3440
  "commands",
3472
3441
  "docker",
3473
- "index.js"
3442
+ "restart.js"
3474
3443
  ]
3475
3444
  },
3476
- "docker:list": {
3445
+ "docker:shell": {
3477
3446
  "aliases": [],
3478
- "args": {},
3479
- "description": "Show Docker containers from agent_work table with status",
3447
+ "args": {
3448
+ "target": {
3449
+ "description": "Execution ID (WORK-XXX), agent name, or container ID",
3450
+ "name": "target",
3451
+ "required": true
3452
+ }
3453
+ },
3454
+ "description": "Open a shell in a running container (by execution ID, agent name, or container ID)",
3480
3455
  "examples": [
3481
- "<%= config.bin %> <%= command.id %>",
3482
- "<%= config.bin %> <%= command.id %> --all",
3483
- "<%= config.bin %> <%= command.id %> --running"
3456
+ "<%= config.bin %> <%= command.id %> WORK-001",
3457
+ "<%= config.bin %> <%= command.id %> kalanick",
3458
+ "<%= config.bin %> <%= command.id %> abc123 --shell /bin/bash"
3484
3459
  ],
3485
3460
  "flags": {
3486
3461
  "json": {
@@ -3496,24 +3471,35 @@
3496
3471
  "allowNo": false,
3497
3472
  "type": "boolean"
3498
3473
  },
3499
- "all": {
3500
- "char": "a",
3501
- "description": "Show all containers (including non-devcontainer)",
3502
- "name": "all",
3503
- "allowNo": false,
3504
- "type": "boolean"
3505
- },
3506
- "running": {
3507
- "char": "r",
3508
- "description": "Only show running containers",
3509
- "name": "running",
3510
- "allowNo": false,
3511
- "type": "boolean"
3474
+ "shell": {
3475
+ "char": "s",
3476
+ "description": "Shell to use",
3477
+ "name": "shell",
3478
+ "default": "/bin/sh",
3479
+ "hasDynamicHelp": false,
3480
+ "multiple": false,
3481
+ "type": "option"
3482
+ },
3483
+ "user": {
3484
+ "char": "u",
3485
+ "description": "User to run as",
3486
+ "name": "user",
3487
+ "hasDynamicHelp": false,
3488
+ "multiple": false,
3489
+ "type": "option"
3490
+ },
3491
+ "workdir": {
3492
+ "char": "w",
3493
+ "description": "Working directory inside the container",
3494
+ "name": "workdir",
3495
+ "hasDynamicHelp": false,
3496
+ "multiple": false,
3497
+ "type": "option"
3512
3498
  }
3513
3499
  },
3514
3500
  "hasDynamicHelp": false,
3515
3501
  "hiddenAliases": [],
3516
- "id": "docker:list",
3502
+ "id": "docker:shell",
3517
3503
  "pluginAlias": "@proletariat/cli",
3518
3504
  "pluginName": "@proletariat/cli",
3519
3505
  "pluginType": "core",
@@ -3524,10 +3510,10 @@
3524
3510
  "dist",
3525
3511
  "commands",
3526
3512
  "docker",
3527
- "list.js"
3513
+ "shell.js"
3528
3514
  ]
3529
3515
  },
3530
- "docker:logs": {
3516
+ "docker:start": {
3531
3517
  "aliases": [],
3532
3518
  "args": {
3533
3519
  "target": {
@@ -3536,12 +3522,11 @@
3536
3522
  "required": true
3537
3523
  }
3538
3524
  },
3539
- "description": "View logs from a container (by execution ID, agent name, or container ID)",
3525
+ "description": "Start a stopped container (by execution ID, agent name, or container ID)",
3540
3526
  "examples": [
3541
3527
  "<%= config.bin %> <%= command.id %> WORK-001",
3542
3528
  "<%= config.bin %> <%= command.id %> kalanick",
3543
- "<%= config.bin %> <%= command.id %> abc123 --follow",
3544
- "<%= config.bin %> <%= command.id %> WORK-001 --tail 100"
3529
+ "<%= config.bin %> <%= command.id %> abc123"
3545
3530
  ],
3546
3531
  "flags": {
3547
3532
  "json": {
@@ -3557,105 +3542,17 @@
3557
3542
  "allowNo": false,
3558
3543
  "type": "boolean"
3559
3544
  },
3560
- "follow": {
3561
- "char": "f",
3562
- "description": "Follow log output",
3563
- "name": "follow",
3564
- "allowNo": false,
3565
- "type": "boolean"
3566
- },
3567
- "tail": {
3568
- "char": "n",
3569
- "description": "Number of lines to show from the end",
3570
- "name": "tail",
3571
- "default": 100,
3572
- "hasDynamicHelp": false,
3573
- "multiple": false,
3574
- "type": "option"
3575
- },
3576
- "timestamps": {
3577
- "char": "t",
3578
- "description": "Show timestamps",
3579
- "name": "timestamps",
3580
- "allowNo": false,
3581
- "type": "boolean"
3582
- }
3583
- },
3584
- "hasDynamicHelp": false,
3585
- "hiddenAliases": [],
3586
- "id": "docker:logs",
3587
- "pluginAlias": "@proletariat/cli",
3588
- "pluginName": "@proletariat/cli",
3589
- "pluginType": "core",
3590
- "strict": true,
3591
- "enableJsonFlag": false,
3592
- "isESM": true,
3593
- "relativePath": [
3594
- "dist",
3595
- "commands",
3596
- "docker",
3597
- "logs.js"
3598
- ]
3599
- },
3600
- "docker:prune": {
3601
- "aliases": [],
3602
- "args": {},
3603
- "description": "Remove unused Docker resources (containers, images, volumes, networks)",
3604
- "examples": [
3605
- "<%= config.bin %> <%= command.id %>",
3606
- "<%= config.bin %> <%= command.id %> --all",
3607
- "<%= config.bin %> <%= command.id %> --volumes",
3608
- "<%= config.bin %> <%= command.id %> --dry-run"
3609
- ],
3610
- "flags": {
3611
- "force": {
3612
- "aliases": [
3613
- "yes",
3614
- "y"
3615
- ],
3616
- "char": "f",
3617
- "description": "Skip confirmation prompt",
3618
- "name": "force",
3619
- "allowNo": false,
3620
- "type": "boolean"
3621
- },
3622
- "dry-run": {
3623
- "char": "d",
3624
- "description": "Show what would be removed without removing",
3625
- "name": "dry-run",
3626
- "allowNo": false,
3627
- "type": "boolean"
3628
- },
3629
- "all": {
3545
+ "attach": {
3630
3546
  "char": "a",
3631
- "description": "Remove all unused images, not just dangling ones",
3632
- "name": "all",
3633
- "allowNo": false,
3634
- "type": "boolean"
3635
- },
3636
- "volumes": {
3637
- "description": "Also prune volumes (dangerous - data loss possible)",
3638
- "name": "volumes",
3639
- "allowNo": false,
3640
- "type": "boolean"
3641
- },
3642
- "json": {
3643
- "description": "Output as JSON for AI agents/scripts",
3644
- "name": "json",
3645
- "allowNo": false,
3646
- "type": "boolean"
3647
- },
3648
- "machine": {
3649
- "char": "m",
3650
- "description": "Output as JSON for AI agents/scripts",
3651
- "name": "machine",
3547
+ "description": "Attach to container after starting",
3548
+ "name": "attach",
3652
3549
  "allowNo": false,
3653
3550
  "type": "boolean"
3654
3551
  }
3655
3552
  },
3656
3553
  "hasDynamicHelp": false,
3657
3554
  "hiddenAliases": [],
3658
- "id": "docker:prune",
3555
+ "id": "docker:start",
3659
3556
  "pluginAlias": "@proletariat/cli",
3660
3557
  "pluginName": "@proletariat/cli",
3661
3558
  "pluginType": "core",
@@ -3666,31 +3563,17 @@
3666
3563
  "dist",
3667
3564
  "commands",
3668
3565
  "docker",
3669
- "prune.js"
3566
+ "start.js"
3670
3567
  ]
3671
3568
  },
3672
- "docker:rebuild-cache": {
3569
+ "docker:status": {
3673
3570
  "aliases": [],
3674
3571
  "args": {},
3675
- "description": "Rebuild the shared pnpm store cache volume for fast agent installs",
3572
+ "description": "Check if Docker daemon is running",
3676
3573
  "examples": [
3677
- "<%= config.bin %> <%= command.id %>",
3678
- "<%= config.bin %> <%= command.id %> --force"
3574
+ "<%= config.bin %> <%= command.id %>"
3679
3575
  ],
3680
3576
  "flags": {
3681
- "force": {
3682
- "char": "f",
3683
- "description": "Delete and rebuild the cache even if it already exists",
3684
- "name": "force",
3685
- "allowNo": false,
3686
- "type": "boolean"
3687
- },
3688
- "delete-only": {
3689
- "description": "Only delete the cache volume (next agent spawn rebuilds it)",
3690
- "name": "delete-only",
3691
- "allowNo": false,
3692
- "type": "boolean"
3693
- },
3694
3577
  "json": {
3695
3578
  "description": "Output as JSON for AI agents/scripts",
3696
3579
  "name": "json",
@@ -3707,7 +3590,7 @@
3707
3590
  },
3708
3591
  "hasDynamicHelp": false,
3709
3592
  "hiddenAliases": [],
3710
- "id": "docker:rebuild-cache",
3593
+ "id": "docker:status",
3711
3594
  "pluginAlias": "@proletariat/cli",
3712
3595
  "pluginName": "@proletariat/cli",
3713
3596
  "pluginType": "core",
@@ -3718,10 +3601,10 @@
3718
3601
  "dist",
3719
3602
  "commands",
3720
3603
  "docker",
3721
- "rebuild-cache.js"
3604
+ "status.js"
3722
3605
  ]
3723
3606
  },
3724
- "docker:restart": {
3607
+ "docker:stop": {
3725
3608
  "aliases": [],
3726
3609
  "args": {
3727
3610
  "target": {
@@ -3730,7 +3613,7 @@
3730
3613
  "required": true
3731
3614
  }
3732
3615
  },
3733
- "description": "Restart a container (by execution ID, agent name, or container ID)",
3616
+ "description": "Stop a running container (by execution ID, agent name, or container ID)",
3734
3617
  "examples": [
3735
3618
  "<%= config.bin %> <%= command.id %> WORK-001",
3736
3619
  "<%= config.bin %> <%= command.id %> kalanick",
@@ -3750,7 +3633,7 @@
3750
3633
  },
3751
3634
  "time": {
3752
3635
  "char": "t",
3753
- "description": "Seconds to wait before killing the container during stop",
3636
+ "description": "Seconds to wait before killing the container",
3754
3637
  "name": "time",
3755
3638
  "default": 10,
3756
3639
  "hasDynamicHelp": false,
@@ -3773,7 +3656,7 @@
3773
3656
  },
3774
3657
  "hasDynamicHelp": false,
3775
3658
  "hiddenAliases": [],
3776
- "id": "docker:restart",
3659
+ "id": "docker:stop",
3777
3660
  "pluginAlias": "@proletariat/cli",
3778
3661
  "pluginName": "@proletariat/cli",
3779
3662
  "pluginType": "core",
@@ -3784,23 +3667,15 @@
3784
3667
  "dist",
3785
3668
  "commands",
3786
3669
  "docker",
3787
- "restart.js"
3670
+ "stop.js"
3788
3671
  ]
3789
3672
  },
3790
- "docker:shell": {
3673
+ "docker:sync": {
3791
3674
  "aliases": [],
3792
- "args": {
3793
- "target": {
3794
- "description": "Execution ID (WORK-XXX), agent name, or container ID",
3795
- "name": "target",
3796
- "required": true
3797
- }
3798
- },
3799
- "description": "Open a shell in a running container (by execution ID, agent name, or container ID)",
3675
+ "args": {},
3676
+ "description": "Sync container status from Docker into the database",
3800
3677
  "examples": [
3801
- "<%= config.bin %> <%= command.id %> WORK-001",
3802
- "<%= config.bin %> <%= command.id %> kalanick",
3803
- "<%= config.bin %> <%= command.id %> abc123 --shell /bin/bash"
3678
+ "<%= config.bin %> <%= command.id %>"
3804
3679
  ],
3805
3680
  "flags": {
3806
3681
  "json": {
@@ -3815,36 +3690,11 @@
3815
3690
  "name": "machine",
3816
3691
  "allowNo": false,
3817
3692
  "type": "boolean"
3818
- },
3819
- "shell": {
3820
- "char": "s",
3821
- "description": "Shell to use",
3822
- "name": "shell",
3823
- "default": "/bin/sh",
3824
- "hasDynamicHelp": false,
3825
- "multiple": false,
3826
- "type": "option"
3827
- },
3828
- "user": {
3829
- "char": "u",
3830
- "description": "User to run as",
3831
- "name": "user",
3832
- "hasDynamicHelp": false,
3833
- "multiple": false,
3834
- "type": "option"
3835
- },
3836
- "workdir": {
3837
- "char": "w",
3838
- "description": "Working directory inside the container",
3839
- "name": "workdir",
3840
- "hasDynamicHelp": false,
3841
- "multiple": false,
3842
- "type": "option"
3843
3693
  }
3844
3694
  },
3845
3695
  "hasDynamicHelp": false,
3846
3696
  "hiddenAliases": [],
3847
- "id": "docker:shell",
3697
+ "id": "docker:sync",
3848
3698
  "pluginAlias": "@proletariat/cli",
3849
3699
  "pluginName": "@proletariat/cli",
3850
3700
  "pluginType": "core",
@@ -3855,23 +3705,21 @@
3855
3705
  "dist",
3856
3706
  "commands",
3857
3707
  "docker",
3858
- "shell.js"
3708
+ "sync.js"
3859
3709
  ]
3860
3710
  },
3861
- "docker:start": {
3711
+ "execution:config": {
3862
3712
  "aliases": [],
3863
- "args": {
3864
- "target": {
3865
- "description": "Execution ID (WORK-XXX), agent name, or container ID",
3866
- "name": "target",
3867
- "required": true
3868
- }
3869
- },
3870
- "description": "Start a stopped container (by execution ID, agent name, or container ID)",
3713
+ "args": {},
3714
+ "description": "View and update execution preferences",
3871
3715
  "examples": [
3872
- "<%= config.bin %> <%= command.id %> WORK-001",
3873
- "<%= config.bin %> <%= command.id %> kalanick",
3874
- "<%= config.bin %> <%= command.id %> abc123"
3716
+ "<%= config.bin %> execution config # Interactive menu",
3717
+ "<%= config.bin %> execution config --json # Output current config as JSON",
3718
+ "<%= config.bin %> execution config --list # Show all settings",
3719
+ "<%= config.bin %> execution config --set defaultEnvironment host",
3720
+ "<%= config.bin %> execution config --set outputMode interactive",
3721
+ "<%= config.bin %> execution config --set permissionMode safe",
3722
+ "<%= config.bin %> execution config --setting outputMode --json # Show output mode choices"
3875
3723
  ],
3876
3724
  "flags": {
3877
3725
  "json": {
@@ -3887,17 +3735,369 @@
3887
3735
  "allowNo": false,
3888
3736
  "type": "boolean"
3889
3737
  },
3890
- "attach": {
3891
- "char": "a",
3892
- "description": "Attach to container after starting",
3893
- "name": "attach",
3738
+ "set": {
3739
+ "char": "s",
3740
+ "description": "Set a config value (format: key value)",
3741
+ "name": "set",
3742
+ "hasDynamicHelp": false,
3743
+ "multiple": true,
3744
+ "type": "option"
3745
+ },
3746
+ "list": {
3747
+ "char": "l",
3748
+ "description": "List all configuration values",
3749
+ "name": "list",
3894
3750
  "allowNo": false,
3895
3751
  "type": "boolean"
3896
- }
3752
+ },
3753
+ "setting": {
3754
+ "description": "Navigate to a specific setting prompt (for agent navigation)",
3755
+ "name": "setting",
3756
+ "hasDynamicHelp": false,
3757
+ "multiple": false,
3758
+ "type": "option"
3759
+ }
3897
3760
  },
3898
3761
  "hasDynamicHelp": false,
3899
3762
  "hiddenAliases": [],
3900
- "id": "docker:start",
3763
+ "id": "execution:config",
3764
+ "pluginAlias": "@proletariat/cli",
3765
+ "pluginName": "@proletariat/cli",
3766
+ "pluginType": "core",
3767
+ "strict": true,
3768
+ "isESM": true,
3769
+ "relativePath": [
3770
+ "dist",
3771
+ "commands",
3772
+ "execution",
3773
+ "config.js"
3774
+ ]
3775
+ },
3776
+ "execution": {
3777
+ "aliases": [],
3778
+ "args": {},
3779
+ "description": "Single execution operations (view, logs, stop)",
3780
+ "examples": [
3781
+ "<%= config.bin %> <%= command.id %>",
3782
+ "<%= config.bin %> <%= command.id %> view WORK-001",
3783
+ "<%= config.bin %> <%= command.id %> logs WORK-001",
3784
+ "<%= config.bin %> <%= command.id %> stop WORK-001"
3785
+ ],
3786
+ "flags": {
3787
+ "json": {
3788
+ "description": "Output as JSON for AI agents/scripts",
3789
+ "name": "json",
3790
+ "allowNo": false,
3791
+ "type": "boolean"
3792
+ },
3793
+ "machine": {
3794
+ "char": "m",
3795
+ "description": "Output as JSON for AI agents/scripts",
3796
+ "name": "machine",
3797
+ "allowNo": false,
3798
+ "type": "boolean"
3799
+ }
3800
+ },
3801
+ "hasDynamicHelp": false,
3802
+ "hiddenAliases": [],
3803
+ "id": "execution",
3804
+ "pluginAlias": "@proletariat/cli",
3805
+ "pluginName": "@proletariat/cli",
3806
+ "pluginType": "core",
3807
+ "strict": true,
3808
+ "isESM": true,
3809
+ "relativePath": [
3810
+ "dist",
3811
+ "commands",
3812
+ "execution",
3813
+ "index.js"
3814
+ ]
3815
+ },
3816
+ "execution:list": {
3817
+ "aliases": [],
3818
+ "args": {},
3819
+ "description": "List running and recent executions",
3820
+ "examples": [
3821
+ "<%= config.bin %> <%= command.id %>",
3822
+ "<%= config.bin %> <%= command.id %> --status running",
3823
+ "<%= config.bin %> <%= command.id %> --agent alice",
3824
+ "<%= config.bin %> <%= command.id %> --limit 50"
3825
+ ],
3826
+ "flags": {
3827
+ "json": {
3828
+ "description": "Output as JSON for AI agents/scripts",
3829
+ "name": "json",
3830
+ "allowNo": false,
3831
+ "type": "boolean"
3832
+ },
3833
+ "machine": {
3834
+ "char": "m",
3835
+ "description": "Output as JSON for AI agents/scripts",
3836
+ "name": "machine",
3837
+ "allowNo": false,
3838
+ "type": "boolean"
3839
+ },
3840
+ "status": {
3841
+ "char": "s",
3842
+ "description": "Filter by status",
3843
+ "name": "status",
3844
+ "hasDynamicHelp": false,
3845
+ "multiple": false,
3846
+ "options": [
3847
+ "starting",
3848
+ "running",
3849
+ "completed",
3850
+ "failed",
3851
+ "stopped"
3852
+ ],
3853
+ "type": "option"
3854
+ },
3855
+ "agent": {
3856
+ "char": "a",
3857
+ "description": "Filter by agent name",
3858
+ "name": "agent",
3859
+ "hasDynamicHelp": false,
3860
+ "multiple": false,
3861
+ "type": "option"
3862
+ },
3863
+ "limit": {
3864
+ "char": "l",
3865
+ "description": "Number of results",
3866
+ "name": "limit",
3867
+ "default": 20,
3868
+ "hasDynamicHelp": false,
3869
+ "multiple": false,
3870
+ "type": "option"
3871
+ }
3872
+ },
3873
+ "hasDynamicHelp": false,
3874
+ "hiddenAliases": [],
3875
+ "id": "execution:list",
3876
+ "pluginAlias": "@proletariat/cli",
3877
+ "pluginName": "@proletariat/cli",
3878
+ "pluginType": "core",
3879
+ "strict": true,
3880
+ "isESM": true,
3881
+ "relativePath": [
3882
+ "dist",
3883
+ "commands",
3884
+ "execution",
3885
+ "list.js"
3886
+ ]
3887
+ },
3888
+ "execution:logs": {
3889
+ "aliases": [],
3890
+ "args": {
3891
+ "id": {
3892
+ "description": "Execution ID - prompts if not provided",
3893
+ "name": "id",
3894
+ "required": false
3895
+ }
3896
+ },
3897
+ "description": "View execution logs",
3898
+ "examples": [
3899
+ "<%= config.bin %> <%= command.id %> WORK-001",
3900
+ "<%= config.bin %> <%= command.id %> WORK-001 --follow",
3901
+ "<%= config.bin %> <%= command.id %> WORK-001 --tail 50",
3902
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
3903
+ ],
3904
+ "flags": {
3905
+ "json": {
3906
+ "description": "Output as JSON for AI agents/scripts",
3907
+ "name": "json",
3908
+ "allowNo": false,
3909
+ "type": "boolean"
3910
+ },
3911
+ "machine": {
3912
+ "char": "m",
3913
+ "description": "Output as JSON for AI agents/scripts",
3914
+ "name": "machine",
3915
+ "allowNo": false,
3916
+ "type": "boolean"
3917
+ },
3918
+ "follow": {
3919
+ "char": "f",
3920
+ "description": "Stream logs in real-time",
3921
+ "name": "follow",
3922
+ "allowNo": false,
3923
+ "type": "boolean"
3924
+ },
3925
+ "tail": {
3926
+ "char": "n",
3927
+ "description": "Show last n lines",
3928
+ "name": "tail",
3929
+ "hasDynamicHelp": false,
3930
+ "multiple": false,
3931
+ "type": "option"
3932
+ }
3933
+ },
3934
+ "hasDynamicHelp": false,
3935
+ "hiddenAliases": [],
3936
+ "id": "execution:logs",
3937
+ "pluginAlias": "@proletariat/cli",
3938
+ "pluginName": "@proletariat/cli",
3939
+ "pluginType": "core",
3940
+ "strict": true,
3941
+ "isESM": true,
3942
+ "relativePath": [
3943
+ "dist",
3944
+ "commands",
3945
+ "execution",
3946
+ "logs.js"
3947
+ ]
3948
+ },
3949
+ "execution:stop": {
3950
+ "aliases": [],
3951
+ "args": {
3952
+ "id": {
3953
+ "description": "Execution ID - prompts if not provided (ignored if --all or --agent used)",
3954
+ "name": "id",
3955
+ "required": false
3956
+ }
3957
+ },
3958
+ "description": "Stop running execution(s)",
3959
+ "examples": [
3960
+ "<%= config.bin %> <%= command.id %> WORK-001",
3961
+ "<%= config.bin %> <%= command.id %> WORK-001 --force",
3962
+ "<%= config.bin %> <%= command.id %> # Interactive mode",
3963
+ "<%= config.bin %> <%= command.id %> --all",
3964
+ "<%= config.bin %> <%= command.id %> --all --force",
3965
+ "<%= config.bin %> <%= command.id %> --agent altman"
3966
+ ],
3967
+ "flags": {
3968
+ "json": {
3969
+ "description": "Output as JSON for AI agents/scripts",
3970
+ "name": "json",
3971
+ "allowNo": false,
3972
+ "type": "boolean"
3973
+ },
3974
+ "machine": {
3975
+ "char": "m",
3976
+ "description": "Output as JSON for AI agents/scripts",
3977
+ "name": "machine",
3978
+ "allowNo": false,
3979
+ "type": "boolean"
3980
+ },
3981
+ "force": {
3982
+ "char": "f",
3983
+ "description": "Force kill (SIGKILL instead of SIGTERM)",
3984
+ "name": "force",
3985
+ "allowNo": false,
3986
+ "type": "boolean"
3987
+ },
3988
+ "all": {
3989
+ "description": "Stop all running executions",
3990
+ "name": "all",
3991
+ "allowNo": false,
3992
+ "type": "boolean"
3993
+ },
3994
+ "agent": {
3995
+ "char": "a",
3996
+ "description": "Stop all executions for a specific agent",
3997
+ "name": "agent",
3998
+ "hasDynamicHelp": false,
3999
+ "multiple": false,
4000
+ "type": "option"
4001
+ }
4002
+ },
4003
+ "hasDynamicHelp": false,
4004
+ "hiddenAliases": [],
4005
+ "id": "execution:stop",
4006
+ "pluginAlias": "@proletariat/cli",
4007
+ "pluginName": "@proletariat/cli",
4008
+ "pluginType": "core",
4009
+ "strict": true,
4010
+ "isESM": true,
4011
+ "relativePath": [
4012
+ "dist",
4013
+ "commands",
4014
+ "execution",
4015
+ "stop.js"
4016
+ ]
4017
+ },
4018
+ "execution:view": {
4019
+ "aliases": [],
4020
+ "args": {
4021
+ "id": {
4022
+ "description": "Execution ID - prompts if not provided",
4023
+ "name": "id",
4024
+ "required": false
4025
+ }
4026
+ },
4027
+ "description": "View details of a specific execution",
4028
+ "examples": [
4029
+ "<%= config.bin %> <%= command.id %> WORK-001",
4030
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
4031
+ ],
4032
+ "flags": {
4033
+ "json": {
4034
+ "description": "Output as JSON for AI agents/scripts",
4035
+ "name": "json",
4036
+ "allowNo": false,
4037
+ "type": "boolean"
4038
+ },
4039
+ "machine": {
4040
+ "char": "m",
4041
+ "description": "Output as JSON for AI agents/scripts",
4042
+ "name": "machine",
4043
+ "allowNo": false,
4044
+ "type": "boolean"
4045
+ }
4046
+ },
4047
+ "hasDynamicHelp": false,
4048
+ "hiddenAliases": [],
4049
+ "id": "execution:view",
4050
+ "pluginAlias": "@proletariat/cli",
4051
+ "pluginName": "@proletariat/cli",
4052
+ "pluginType": "core",
4053
+ "strict": true,
4054
+ "isESM": true,
4055
+ "relativePath": [
4056
+ "dist",
4057
+ "commands",
4058
+ "execution",
4059
+ "view.js"
4060
+ ]
4061
+ },
4062
+ "feedback": {
4063
+ "aliases": [],
4064
+ "args": {},
4065
+ "description": "Interactive menu for feedback and issue operations",
4066
+ "examples": [
4067
+ "<%= config.bin %> <%= command.id %>",
4068
+ "<%= config.bin %> <%= command.id %> --action submit"
4069
+ ],
4070
+ "flags": {
4071
+ "json": {
4072
+ "description": "Output as JSON for AI agents/scripts",
4073
+ "name": "json",
4074
+ "allowNo": false,
4075
+ "type": "boolean"
4076
+ },
4077
+ "machine": {
4078
+ "char": "m",
4079
+ "description": "Output as JSON for AI agents/scripts",
4080
+ "name": "machine",
4081
+ "allowNo": false,
4082
+ "type": "boolean"
4083
+ },
4084
+ "action": {
4085
+ "char": "a",
4086
+ "description": "Action to perform (submit, list, view)",
4087
+ "name": "action",
4088
+ "hasDynamicHelp": false,
4089
+ "multiple": false,
4090
+ "options": [
4091
+ "submit",
4092
+ "list",
4093
+ "view"
4094
+ ],
4095
+ "type": "option"
4096
+ }
4097
+ },
4098
+ "hasDynamicHelp": false,
4099
+ "hiddenAliases": [],
4100
+ "id": "feedback",
3901
4101
  "pluginAlias": "@proletariat/cli",
3902
4102
  "pluginName": "@proletariat/cli",
3903
4103
  "pluginType": "core",
@@ -3907,16 +4107,95 @@
3907
4107
  "relativePath": [
3908
4108
  "dist",
3909
4109
  "commands",
3910
- "docker",
3911
- "start.js"
4110
+ "feedback",
4111
+ "index.js"
4112
+ ]
4113
+ },
4114
+ "feedback:list": {
4115
+ "aliases": [],
4116
+ "args": {},
4117
+ "description": "List recent feedback issues from the repository",
4118
+ "examples": [
4119
+ "<%= config.bin %> <%= command.id %>",
4120
+ "<%= config.bin %> <%= command.id %> --category bug",
4121
+ "<%= config.bin %> <%= command.id %> --state closed --limit 10",
4122
+ "<%= config.bin %> <%= command.id %> --json"
4123
+ ],
4124
+ "flags": {
4125
+ "json": {
4126
+ "description": "Output as JSON for AI agents/scripts",
4127
+ "name": "json",
4128
+ "allowNo": false,
4129
+ "type": "boolean"
4130
+ },
4131
+ "machine": {
4132
+ "char": "m",
4133
+ "description": "Output as JSON for AI agents/scripts",
4134
+ "name": "machine",
4135
+ "allowNo": false,
4136
+ "type": "boolean"
4137
+ },
4138
+ "category": {
4139
+ "char": "c",
4140
+ "description": "Filter by category (bug, feature, general)",
4141
+ "name": "category",
4142
+ "hasDynamicHelp": false,
4143
+ "multiple": false,
4144
+ "options": [
4145
+ "bug",
4146
+ "feature",
4147
+ "general"
4148
+ ],
4149
+ "type": "option"
4150
+ },
4151
+ "state": {
4152
+ "char": "s",
4153
+ "description": "Filter by state",
4154
+ "name": "state",
4155
+ "default": "open",
4156
+ "hasDynamicHelp": false,
4157
+ "multiple": false,
4158
+ "options": [
4159
+ "open",
4160
+ "closed",
4161
+ "all"
4162
+ ],
4163
+ "type": "option"
4164
+ },
4165
+ "limit": {
4166
+ "char": "l",
4167
+ "description": "Maximum number of issues to show",
4168
+ "name": "limit",
4169
+ "default": 20,
4170
+ "hasDynamicHelp": false,
4171
+ "multiple": false,
4172
+ "type": "option"
4173
+ }
4174
+ },
4175
+ "hasDynamicHelp": false,
4176
+ "hiddenAliases": [],
4177
+ "id": "feedback:list",
4178
+ "pluginAlias": "@proletariat/cli",
4179
+ "pluginName": "@proletariat/cli",
4180
+ "pluginType": "core",
4181
+ "strict": true,
4182
+ "enableJsonFlag": false,
4183
+ "isESM": true,
4184
+ "relativePath": [
4185
+ "dist",
4186
+ "commands",
4187
+ "feedback",
4188
+ "list.js"
3912
4189
  ]
3913
4190
  },
3914
- "docker:status": {
4191
+ "feedback:submit": {
3915
4192
  "aliases": [],
3916
4193
  "args": {},
3917
- "description": "Check if Docker daemon is running",
4194
+ "description": "Submit feedback, bug reports, or feature requests to GitHub Issues",
3918
4195
  "examples": [
3919
- "<%= config.bin %> <%= command.id %>"
4196
+ "<%= config.bin %> <%= command.id %>",
4197
+ "<%= config.bin %> <%= command.id %> --title \"Bug in CLI\" --body \"Description here\" --category bug",
4198
+ "<%= config.bin %> <%= command.id %> --json"
3920
4199
  ],
3921
4200
  "flags": {
3922
4201
  "json": {
@@ -3931,60 +4210,67 @@
3931
4210
  "name": "machine",
3932
4211
  "allowNo": false,
3933
4212
  "type": "boolean"
4213
+ },
4214
+ "title": {
4215
+ "char": "t",
4216
+ "description": "Issue title (one-liner) [required for non-interactive]",
4217
+ "name": "title",
4218
+ "hasDynamicHelp": false,
4219
+ "multiple": false,
4220
+ "type": "option"
4221
+ },
4222
+ "body": {
4223
+ "char": "b",
4224
+ "description": "Issue description [required for non-interactive]",
4225
+ "name": "body",
4226
+ "hasDynamicHelp": false,
4227
+ "multiple": false,
4228
+ "type": "option"
4229
+ },
4230
+ "category": {
4231
+ "char": "c",
4232
+ "description": "Feedback category",
4233
+ "name": "category",
4234
+ "hasDynamicHelp": false,
4235
+ "multiple": false,
4236
+ "options": [
4237
+ "bug",
4238
+ "feature",
4239
+ "general"
4240
+ ],
4241
+ "type": "option"
3934
4242
  }
3935
4243
  },
3936
4244
  "hasDynamicHelp": false,
3937
4245
  "hiddenAliases": [],
3938
- "id": "docker:status",
4246
+ "id": "feedback:submit",
3939
4247
  "pluginAlias": "@proletariat/cli",
3940
4248
  "pluginName": "@proletariat/cli",
3941
4249
  "pluginType": "core",
3942
4250
  "strict": true,
3943
- "enableJsonFlag": false,
3944
4251
  "isESM": true,
3945
4252
  "relativePath": [
3946
4253
  "dist",
3947
4254
  "commands",
3948
- "docker",
3949
- "status.js"
4255
+ "feedback",
4256
+ "submit.js"
3950
4257
  ]
3951
4258
  },
3952
- "docker:stop": {
4259
+ "feedback:view": {
3953
4260
  "aliases": [],
3954
4261
  "args": {
3955
- "target": {
3956
- "description": "Execution ID (WORK-XXX), agent name, or container ID",
3957
- "name": "target",
4262
+ "number": {
4263
+ "description": "Issue number to view",
4264
+ "name": "number",
3958
4265
  "required": true
3959
4266
  }
3960
4267
  },
3961
- "description": "Stop a running container (by execution ID, agent name, or container ID)",
4268
+ "description": "View details of a specific feedback issue",
3962
4269
  "examples": [
3963
- "<%= config.bin %> <%= command.id %> WORK-001",
3964
- "<%= config.bin %> <%= command.id %> kalanick",
3965
- "<%= config.bin %> <%= command.id %> abc123 --force"
4270
+ "<%= config.bin %> <%= command.id %> 123",
4271
+ "<%= config.bin %> <%= command.id %> 123 --json"
3966
4272
  ],
3967
4273
  "flags": {
3968
- "force": {
3969
- "aliases": [
3970
- "yes",
3971
- "y"
3972
- ],
3973
- "char": "f",
3974
- "description": "Skip confirmation prompt",
3975
- "name": "force",
3976
- "allowNo": false,
3977
- "type": "boolean"
3978
- },
3979
- "time": {
3980
- "char": "t",
3981
- "description": "Seconds to wait before killing the container",
3982
- "name": "time",
3983
- "default": 10,
3984
- "hasDynamicHelp": false,
3985
- "multiple": false,
3986
- "type": "option"
3987
- },
3988
4274
  "json": {
3989
4275
  "description": "Output as JSON for AI agents/scripts",
3990
4276
  "name": "json",
@@ -4001,7 +4287,7 @@
4001
4287
  },
4002
4288
  "hasDynamicHelp": false,
4003
4289
  "hiddenAliases": [],
4004
- "id": "docker:stop",
4290
+ "id": "feedback:view",
4005
4291
  "pluginAlias": "@proletariat/cli",
4006
4292
  "pluginName": "@proletariat/cli",
4007
4293
  "pluginType": "core",
@@ -4011,16 +4297,19 @@
4011
4297
  "relativePath": [
4012
4298
  "dist",
4013
4299
  "commands",
4014
- "docker",
4015
- "stop.js"
4300
+ "feedback",
4301
+ "view.js"
4016
4302
  ]
4017
4303
  },
4018
- "docker:sync": {
4304
+ "gh": {
4019
4305
  "aliases": [],
4020
4306
  "args": {},
4021
- "description": "Sync container status from Docker into the database",
4307
+ "description": "GitHub CLI setup and status for PR workflow",
4022
4308
  "examples": [
4023
- "<%= config.bin %> <%= command.id %>"
4309
+ "<%= config.bin %> <%= command.id %>",
4310
+ "<%= config.bin %> <%= command.id %> status",
4311
+ "<%= config.bin %> <%= command.id %> login",
4312
+ "<%= config.bin %> <%= command.id %> token"
4024
4313
  ],
4025
4314
  "flags": {
4026
4315
  "json": {
@@ -4039,7 +4328,7 @@
4039
4328
  },
4040
4329
  "hasDynamicHelp": false,
4041
4330
  "hiddenAliases": [],
4042
- "id": "docker:sync",
4331
+ "id": "gh",
4043
4332
  "pluginAlias": "@proletariat/cli",
4044
4333
  "pluginName": "@proletariat/cli",
4045
4334
  "pluginType": "core",
@@ -4049,19 +4338,16 @@
4049
4338
  "relativePath": [
4050
4339
  "dist",
4051
4340
  "commands",
4052
- "docker",
4053
- "sync.js"
4341
+ "gh",
4342
+ "index.js"
4054
4343
  ]
4055
4344
  },
4056
- "gh": {
4345
+ "gh:login": {
4057
4346
  "aliases": [],
4058
4347
  "args": {},
4059
- "description": "GitHub CLI setup and status for PR workflow",
4348
+ "description": "Login to GitHub CLI for PR workflow",
4060
4349
  "examples": [
4061
- "<%= config.bin %> <%= command.id %>",
4062
- "<%= config.bin %> <%= command.id %> status",
4063
- "<%= config.bin %> <%= command.id %> login",
4064
- "<%= config.bin %> <%= command.id %> token"
4350
+ "<%= config.bin %> <%= command.id %>"
4065
4351
  ],
4066
4352
  "flags": {
4067
4353
  "json": {
@@ -4080,7 +4366,7 @@
4080
4366
  },
4081
4367
  "hasDynamicHelp": false,
4082
4368
  "hiddenAliases": [],
4083
- "id": "gh",
4369
+ "id": "gh:login",
4084
4370
  "pluginAlias": "@proletariat/cli",
4085
4371
  "pluginName": "@proletariat/cli",
4086
4372
  "pluginType": "core",
@@ -4091,13 +4377,13 @@
4091
4377
  "dist",
4092
4378
  "commands",
4093
4379
  "gh",
4094
- "index.js"
4380
+ "login.js"
4095
4381
  ]
4096
4382
  },
4097
- "gh:login": {
4383
+ "gh:status": {
4098
4384
  "aliases": [],
4099
4385
  "args": {},
4100
- "description": "Login to GitHub CLI for PR workflow",
4386
+ "description": "Check GitHub CLI status for PR workflow",
4101
4387
  "examples": [
4102
4388
  "<%= config.bin %> <%= command.id %>"
4103
4389
  ],
@@ -4118,7 +4404,7 @@
4118
4404
  },
4119
4405
  "hasDynamicHelp": false,
4120
4406
  "hiddenAliases": [],
4121
- "id": "gh:login",
4407
+ "id": "gh:status",
4122
4408
  "pluginAlias": "@proletariat/cli",
4123
4409
  "pluginName": "@proletariat/cli",
4124
4410
  "pluginType": "core",
@@ -4129,13 +4415,13 @@
4129
4415
  "dist",
4130
4416
  "commands",
4131
4417
  "gh",
4132
- "login.js"
4418
+ "status.js"
4133
4419
  ]
4134
4420
  },
4135
- "gh:status": {
4421
+ "gh:token": {
4136
4422
  "aliases": [],
4137
4423
  "args": {},
4138
- "description": "Check GitHub CLI status for PR workflow",
4424
+ "description": "Show GH_TOKEN setup for devcontainer PR creation",
4139
4425
  "examples": [
4140
4426
  "<%= config.bin %> <%= command.id %>"
4141
4427
  ],
@@ -4156,7 +4442,7 @@
4156
4442
  },
4157
4443
  "hasDynamicHelp": false,
4158
4444
  "hiddenAliases": [],
4159
- "id": "gh:status",
4445
+ "id": "gh:token",
4160
4446
  "pluginAlias": "@proletariat/cli",
4161
4447
  "pluginName": "@proletariat/cli",
4162
4448
  "pluginType": "core",
@@ -4167,13 +4453,13 @@
4167
4453
  "dist",
4168
4454
  "commands",
4169
4455
  "gh",
4170
- "status.js"
4456
+ "token.js"
4171
4457
  ]
4172
4458
  },
4173
- "gh:token": {
4459
+ "hook:export": {
4174
4460
  "aliases": [],
4175
4461
  "args": {},
4176
- "description": "Show GH_TOKEN setup for devcontainer PR creation",
4462
+ "description": "Export hook configuration as YAML",
4177
4463
  "examples": [
4178
4464
  "<%= config.bin %> <%= command.id %>"
4179
4465
  ],
@@ -4194,27 +4480,57 @@
4194
4480
  },
4195
4481
  "hasDynamicHelp": false,
4196
4482
  "hiddenAliases": [],
4197
- "id": "gh:token",
4483
+ "id": "hook:export",
4198
4484
  "pluginAlias": "@proletariat/cli",
4199
4485
  "pluginName": "@proletariat/cli",
4200
4486
  "pluginType": "core",
4201
4487
  "strict": true,
4202
- "enableJsonFlag": false,
4203
4488
  "isESM": true,
4204
4489
  "relativePath": [
4205
4490
  "dist",
4206
4491
  "commands",
4207
- "gh",
4208
- "token.js"
4492
+ "hook",
4493
+ "export.js"
4209
4494
  ]
4210
4495
  },
4211
- "feedback": {
4496
+ "hook:fire": {
4212
4497
  "aliases": [],
4213
- "args": {},
4214
- "description": "Interactive menu for feedback and issue operations",
4498
+ "args": {
4499
+ "event": {
4500
+ "description": "Event name to fire",
4501
+ "name": "event",
4502
+ "options": [
4503
+ "work:started",
4504
+ "work:status_changed",
4505
+ "work:pr_created",
4506
+ "work:pr_merged",
4507
+ "work:pr_closed",
4508
+ "work:completed",
4509
+ "agent:spawned",
4510
+ "agent:stopped",
4511
+ "on_ci_green",
4512
+ "on_ci_failed",
4513
+ "on_pr_opened",
4514
+ "on_pr_merged",
4515
+ "on_pr_conflicting",
4516
+ "on_ticket_ready",
4517
+ "on_agent_spawned",
4518
+ "on_agent_died",
4519
+ "on_agent_completed",
4520
+ "on_agent_idle",
4521
+ "on_review_approved",
4522
+ "on_changes_requested",
4523
+ "on_version_published"
4524
+ ],
4525
+ "required": true
4526
+ }
4527
+ },
4528
+ "description": "Fire an orchestrate event to trigger configured hooks",
4215
4529
  "examples": [
4216
- "<%= config.bin %> <%= command.id %>",
4217
- "<%= config.bin %> <%= command.id %> --action submit"
4530
+ "<%= config.bin %> <%= command.id %> on_ci_green --pr 123",
4531
+ "<%= config.bin %> <%= command.id %> on_pr_merged --ticket TKT-100 --pr 456",
4532
+ "<%= config.bin %> <%= command.id %> on_ticket_ready --ticket TKT-200",
4533
+ "<%= config.bin %> <%= command.id %> on_agent_died --ticket TKT-100 --agent bold-turing"
4218
4534
  ],
4219
4535
  "flags": {
4220
4536
  "json": {
@@ -4230,47 +4546,90 @@
4230
4546
  "allowNo": false,
4231
4547
  "type": "boolean"
4232
4548
  },
4549
+ "ticket": {
4550
+ "char": "t",
4551
+ "description": "Ticket ID",
4552
+ "name": "ticket",
4553
+ "hasDynamicHelp": false,
4554
+ "multiple": false,
4555
+ "type": "option"
4556
+ },
4557
+ "pr": {
4558
+ "description": "PR number",
4559
+ "name": "pr",
4560
+ "hasDynamicHelp": false,
4561
+ "multiple": false,
4562
+ "type": "option"
4563
+ },
4564
+ "branch": {
4565
+ "description": "Branch name",
4566
+ "name": "branch",
4567
+ "hasDynamicHelp": false,
4568
+ "multiple": false,
4569
+ "type": "option"
4570
+ },
4571
+ "agent": {
4572
+ "description": "Agent name",
4573
+ "name": "agent",
4574
+ "hasDynamicHelp": false,
4575
+ "multiple": false,
4576
+ "type": "option"
4577
+ },
4233
4578
  "action": {
4234
- "char": "a",
4235
- "description": "Action to perform (submit, list, view)",
4579
+ "description": "Action to execute (for direct invocation)",
4236
4580
  "name": "action",
4237
4581
  "hasDynamicHelp": false,
4238
4582
  "multiple": false,
4239
- "options": [
4240
- "submit",
4241
- "list",
4242
- "view"
4243
- ],
4244
4583
  "type": "option"
4584
+ },
4585
+ "pr-url": {
4586
+ "description": "PR URL",
4587
+ "name": "pr-url",
4588
+ "hasDynamicHelp": false,
4589
+ "multiple": false,
4590
+ "type": "option"
4591
+ },
4592
+ "dry-run": {
4593
+ "description": "Show what would happen without executing",
4594
+ "name": "dry-run",
4595
+ "allowNo": false,
4596
+ "type": "boolean"
4245
4597
  }
4246
4598
  },
4247
4599
  "hasDynamicHelp": false,
4248
4600
  "hiddenAliases": [],
4249
- "id": "feedback",
4601
+ "id": "hook:fire",
4250
4602
  "pluginAlias": "@proletariat/cli",
4251
4603
  "pluginName": "@proletariat/cli",
4252
4604
  "pluginType": "core",
4253
4605
  "strict": true,
4254
- "enableJsonFlag": false,
4255
4606
  "isESM": true,
4256
4607
  "relativePath": [
4257
4608
  "dist",
4258
4609
  "commands",
4259
- "feedback",
4260
- "index.js"
4610
+ "hook",
4611
+ "fire.js"
4261
4612
  ]
4262
4613
  },
4263
- "feedback:list": {
4614
+ "hook": {
4264
4615
  "aliases": [],
4265
4616
  "args": {},
4266
- "description": "List recent feedback issues from the repository",
4617
+ "description": "Manage orchestrate hooks (event-driven pipeline automation)",
4267
4618
  "examples": [
4268
4619
  "<%= config.bin %> <%= command.id %>",
4269
- "<%= config.bin %> <%= command.id %> --category bug",
4270
- "<%= config.bin %> <%= command.id %> --state closed --limit 10",
4271
- "<%= config.bin %> <%= command.id %> --json"
4620
+ "<%= config.bin %> hook fire on_ci_green --pr 123",
4621
+ "<%= config.bin %> hook list",
4622
+ "<%= config.bin %> hook preset supervised"
4272
4623
  ],
4273
4624
  "flags": {
4625
+ "project": {
4626
+ "char": "P",
4627
+ "description": "Project ID (uses first project if only one exists)",
4628
+ "name": "project",
4629
+ "hasDynamicHelp": false,
4630
+ "multiple": false,
4631
+ "type": "option"
4632
+ },
4274
4633
  "json": {
4275
4634
  "description": "Output as JSON for AI agents/scripts",
4276
4635
  "name": "json",
@@ -4283,68 +4642,31 @@
4283
4642
  "name": "machine",
4284
4643
  "allowNo": false,
4285
4644
  "type": "boolean"
4286
- },
4287
- "category": {
4288
- "char": "c",
4289
- "description": "Filter by category (bug, feature, general)",
4290
- "name": "category",
4291
- "hasDynamicHelp": false,
4292
- "multiple": false,
4293
- "options": [
4294
- "bug",
4295
- "feature",
4296
- "general"
4297
- ],
4298
- "type": "option"
4299
- },
4300
- "state": {
4301
- "char": "s",
4302
- "description": "Filter by state",
4303
- "name": "state",
4304
- "default": "open",
4305
- "hasDynamicHelp": false,
4306
- "multiple": false,
4307
- "options": [
4308
- "open",
4309
- "closed",
4310
- "all"
4311
- ],
4312
- "type": "option"
4313
- },
4314
- "limit": {
4315
- "char": "l",
4316
- "description": "Maximum number of issues to show",
4317
- "name": "limit",
4318
- "default": 20,
4319
- "hasDynamicHelp": false,
4320
- "multiple": false,
4321
- "type": "option"
4322
4645
  }
4323
4646
  },
4324
4647
  "hasDynamicHelp": false,
4325
4648
  "hiddenAliases": [],
4326
- "id": "feedback:list",
4649
+ "id": "hook",
4327
4650
  "pluginAlias": "@proletariat/cli",
4328
4651
  "pluginName": "@proletariat/cli",
4329
4652
  "pluginType": "core",
4330
4653
  "strict": true,
4331
- "enableJsonFlag": false,
4332
4654
  "isESM": true,
4333
4655
  "relativePath": [
4334
4656
  "dist",
4335
4657
  "commands",
4336
- "feedback",
4337
- "list.js"
4658
+ "hook",
4659
+ "index.js"
4338
4660
  ]
4339
4661
  },
4340
- "feedback:submit": {
4662
+ "hook:list": {
4341
4663
  "aliases": [],
4342
4664
  "args": {},
4343
- "description": "Submit feedback, bug reports, or feature requests to GitHub Issues",
4665
+ "description": "List configured orchestrate hooks",
4344
4666
  "examples": [
4345
4667
  "<%= config.bin %> <%= command.id %>",
4346
- "<%= config.bin %> <%= command.id %> --title \"Bug in CLI\" --body \"Description here\" --category bug",
4347
- "<%= config.bin %> <%= command.id %> --json"
4668
+ "<%= config.bin %> <%= command.id %> --event on_ci_green",
4669
+ "<%= config.bin %> <%= command.id %> --mode auto"
4348
4670
  ],
4349
4671
  "flags": {
4350
4672
  "json": {
@@ -4360,39 +4682,42 @@
4360
4682
  "allowNo": false,
4361
4683
  "type": "boolean"
4362
4684
  },
4363
- "title": {
4364
- "char": "t",
4365
- "description": "Issue title (one-liner) [required for non-interactive]",
4366
- "name": "title",
4685
+ "event": {
4686
+ "description": "Filter by event name",
4687
+ "name": "event",
4367
4688
  "hasDynamicHelp": false,
4368
4689
  "multiple": false,
4369
4690
  "type": "option"
4370
4691
  },
4371
- "body": {
4372
- "char": "b",
4373
- "description": "Issue description [required for non-interactive]",
4374
- "name": "body",
4692
+ "mode": {
4693
+ "description": "Filter by mode (auto, confirm, notify, off)",
4694
+ "name": "mode",
4375
4695
  "hasDynamicHelp": false,
4376
4696
  "multiple": false,
4697
+ "options": [
4698
+ "auto",
4699
+ "confirm",
4700
+ "notify",
4701
+ "off"
4702
+ ],
4377
4703
  "type": "option"
4378
4704
  },
4379
- "category": {
4380
- "char": "c",
4381
- "description": "Feedback category",
4382
- "name": "category",
4705
+ "source": {
4706
+ "description": "Filter by source (yaml, cli, preset)",
4707
+ "name": "source",
4383
4708
  "hasDynamicHelp": false,
4384
4709
  "multiple": false,
4385
4710
  "options": [
4386
- "bug",
4387
- "feature",
4388
- "general"
4711
+ "yaml",
4712
+ "cli",
4713
+ "preset"
4389
4714
  ],
4390
4715
  "type": "option"
4391
4716
  }
4392
4717
  },
4393
4718
  "hasDynamicHelp": false,
4394
4719
  "hiddenAliases": [],
4395
- "id": "feedback:submit",
4720
+ "id": "hook:list",
4396
4721
  "pluginAlias": "@proletariat/cli",
4397
4722
  "pluginName": "@proletariat/cli",
4398
4723
  "pluginType": "core",
@@ -4401,23 +4726,29 @@
4401
4726
  "relativePath": [
4402
4727
  "dist",
4403
4728
  "commands",
4404
- "feedback",
4405
- "submit.js"
4729
+ "hook",
4730
+ "list.js"
4406
4731
  ]
4407
4732
  },
4408
- "feedback:view": {
4733
+ "hook:preset": {
4409
4734
  "aliases": [],
4410
4735
  "args": {
4411
- "number": {
4412
- "description": "Issue number to view",
4413
- "name": "number",
4736
+ "preset": {
4737
+ "description": "Preset name to apply",
4738
+ "name": "preset",
4739
+ "options": [
4740
+ "aggressive",
4741
+ "conservative",
4742
+ "supervised"
4743
+ ],
4414
4744
  "required": true
4415
4745
  }
4416
4746
  },
4417
- "description": "View details of a specific feedback issue",
4747
+ "description": "Apply a hook preset (aggressive, conservative, supervised)",
4418
4748
  "examples": [
4419
- "<%= config.bin %> <%= command.id %> 123",
4420
- "<%= config.bin %> <%= command.id %> 123 --json"
4749
+ "<%= config.bin %> <%= command.id %> aggressive",
4750
+ "<%= config.bin %> <%= command.id %> conservative",
4751
+ "<%= config.bin %> <%= command.id %> supervised"
4421
4752
  ],
4422
4753
  "flags": {
4423
4754
  "json": {
@@ -4436,18 +4767,17 @@
4436
4767
  },
4437
4768
  "hasDynamicHelp": false,
4438
4769
  "hiddenAliases": [],
4439
- "id": "feedback:view",
4770
+ "id": "hook:preset",
4440
4771
  "pluginAlias": "@proletariat/cli",
4441
4772
  "pluginName": "@proletariat/cli",
4442
4773
  "pluginType": "core",
4443
4774
  "strict": true,
4444
- "enableJsonFlag": false,
4445
4775
  "isESM": true,
4446
4776
  "relativePath": [
4447
4777
  "dist",
4448
4778
  "commands",
4449
- "feedback",
4450
- "view.js"
4779
+ "hook",
4780
+ "preset.js"
4451
4781
  ]
4452
4782
  },
4453
4783
  "linear:auth": {
@@ -4837,83 +5167,25 @@
4837
5167
  "sync.js"
4838
5168
  ]
4839
5169
  },
4840
- "hook:export": {
5170
+ "monday:connect": {
4841
5171
  "aliases": [],
4842
5172
  "args": {},
4843
- "description": "Export hook configuration as YAML",
5173
+ "description": "Connect PRLT to Monday.com and store workspace credentials",
4844
5174
  "examples": [
4845
- "<%= config.bin %> <%= command.id %>"
5175
+ "<%= config.bin %> <%= command.id %>",
5176
+ "<%= config.bin %> <%= command.id %> --board 1234567890",
5177
+ "<%= config.bin %> <%= command.id %> --check",
5178
+ "<%= config.bin %> <%= command.id %> --disconnect"
4846
5179
  ],
4847
5180
  "flags": {
4848
- "json": {
4849
- "description": "Output as JSON for AI agents/scripts",
4850
- "name": "json",
4851
- "allowNo": false,
4852
- "type": "boolean"
5181
+ "project": {
5182
+ "char": "P",
5183
+ "description": "Project ID (uses first project if only one exists)",
5184
+ "name": "project",
5185
+ "hasDynamicHelp": false,
5186
+ "multiple": false,
5187
+ "type": "option"
4853
5188
  },
4854
- "machine": {
4855
- "char": "m",
4856
- "description": "Output as JSON for AI agents/scripts",
4857
- "name": "machine",
4858
- "allowNo": false,
4859
- "type": "boolean"
4860
- }
4861
- },
4862
- "hasDynamicHelp": false,
4863
- "hiddenAliases": [],
4864
- "id": "hook:export",
4865
- "pluginAlias": "@proletariat/cli",
4866
- "pluginName": "@proletariat/cli",
4867
- "pluginType": "core",
4868
- "strict": true,
4869
- "isESM": true,
4870
- "relativePath": [
4871
- "dist",
4872
- "commands",
4873
- "hook",
4874
- "export.js"
4875
- ]
4876
- },
4877
- "hook:fire": {
4878
- "aliases": [],
4879
- "args": {
4880
- "event": {
4881
- "description": "Event name to fire",
4882
- "name": "event",
4883
- "options": [
4884
- "work:started",
4885
- "work:status_changed",
4886
- "work:pr_created",
4887
- "work:pr_merged",
4888
- "work:pr_closed",
4889
- "work:completed",
4890
- "agent:spawned",
4891
- "agent:stopped",
4892
- "on_ci_green",
4893
- "on_ci_failed",
4894
- "on_pr_opened",
4895
- "on_pr_merged",
4896
- "on_pr_conflicting",
4897
- "on_ticket_ready",
4898
- "on_agent_spawned",
4899
- "on_agent_died",
4900
- "on_agent_completed",
4901
- "on_agent_idle",
4902
- "on_review_approved",
4903
- "on_changes_requested",
4904
- "on_version_published"
4905
- ],
4906
- "required": true
4907
- }
4908
- },
4909
- "description": "Fire an orchestrate event to trigger configured hooks",
4910
- "examples": [
4911
- "<%= config.bin %> <%= command.id %> on_ci_green --pr 123",
4912
- "<%= config.bin %> <%= command.id %> on_pr_merged --ticket TKT-100 --pr 456",
4913
- "<%= config.bin %> <%= command.id %> on_ticket_ready --ticket TKT-200",
4914
- "<%= config.bin %> <%= command.id %> on_agent_died --ticket TKT-100 --agent bold-turing"
4915
- ],
4916
- "flags": {
4917
5189
  "json": {
4918
5190
  "description": "Output as JSON for AI agents/scripts",
4919
5191
  "name": "json",
@@ -4927,59 +5199,35 @@
4927
5199
  "allowNo": false,
4928
5200
  "type": "boolean"
4929
5201
  },
4930
- "ticket": {
4931
- "char": "t",
4932
- "description": "Ticket ID",
4933
- "name": "ticket",
4934
- "hasDynamicHelp": false,
4935
- "multiple": false,
4936
- "type": "option"
4937
- },
4938
- "pr": {
4939
- "description": "PR number",
4940
- "name": "pr",
4941
- "hasDynamicHelp": false,
4942
- "multiple": false,
4943
- "type": "option"
4944
- },
4945
- "branch": {
4946
- "description": "Branch name",
4947
- "name": "branch",
4948
- "hasDynamicHelp": false,
4949
- "multiple": false,
4950
- "type": "option"
4951
- },
4952
- "agent": {
4953
- "description": "Agent name",
4954
- "name": "agent",
5202
+ "board": {
5203
+ "description": "Monday board ID to sync tickets to",
5204
+ "name": "board",
4955
5205
  "hasDynamicHelp": false,
4956
5206
  "multiple": false,
4957
5207
  "type": "option"
4958
5208
  },
4959
- "action": {
4960
- "description": "Action to execute (for direct invocation)",
4961
- "name": "action",
4962
- "hasDynamicHelp": false,
4963
- "multiple": false,
4964
- "type": "option"
5209
+ "check": {
5210
+ "description": "Only check if Monday configuration is valid",
5211
+ "name": "check",
5212
+ "allowNo": false,
5213
+ "type": "boolean"
4965
5214
  },
4966
- "pr-url": {
4967
- "description": "PR URL",
4968
- "name": "pr-url",
4969
- "hasDynamicHelp": false,
4970
- "multiple": false,
4971
- "type": "option"
5215
+ "force": {
5216
+ "description": "Force re-authentication even if already configured",
5217
+ "name": "force",
5218
+ "allowNo": false,
5219
+ "type": "boolean"
4972
5220
  },
4973
- "dry-run": {
4974
- "description": "Show what would happen without executing",
4975
- "name": "dry-run",
5221
+ "disconnect": {
5222
+ "description": "Remove stored Monday credentials",
5223
+ "name": "disconnect",
4976
5224
  "allowNo": false,
4977
5225
  "type": "boolean"
4978
5226
  }
4979
5227
  },
4980
5228
  "hasDynamicHelp": false,
4981
5229
  "hiddenAliases": [],
4982
- "id": "hook:fire",
5230
+ "id": "monday:connect",
4983
5231
  "pluginAlias": "@proletariat/cli",
4984
5232
  "pluginName": "@proletariat/cli",
4985
5233
  "pluginType": "core",
@@ -4988,19 +5236,18 @@
4988
5236
  "relativePath": [
4989
5237
  "dist",
4990
5238
  "commands",
4991
- "hook",
4992
- "fire.js"
5239
+ "monday",
5240
+ "connect.js"
4993
5241
  ]
4994
5242
  },
4995
- "hook": {
5243
+ "monday:sync": {
4996
5244
  "aliases": [],
4997
5245
  "args": {},
4998
- "description": "Manage orchestrate hooks (event-driven pipeline automation)",
5246
+ "description": "Sync PMO tickets to Monday.com board items",
4999
5247
  "examples": [
5000
- "<%= config.bin %> <%= command.id %>",
5001
- "<%= config.bin %> hook fire on_ci_green --pr 123",
5002
- "<%= config.bin %> hook list",
5003
- "<%= config.bin %> hook preset supervised"
5248
+ "<%= config.bin %> <%= command.id %> # Sync project tickets to Monday board",
5249
+ "<%= config.bin %> <%= command.id %> --ticket TKT-001 # Sync one ticket",
5250
+ "<%= config.bin %> <%= command.id %> --dry-run # Preview sync operations"
5004
5251
  ],
5005
5252
  "flags": {
5006
5253
  "project": {
@@ -5023,11 +5270,24 @@
5023
5270
  "name": "machine",
5024
5271
  "allowNo": false,
5025
5272
  "type": "boolean"
5273
+ },
5274
+ "ticket": {
5275
+ "description": "PMO ticket ID to sync",
5276
+ "name": "ticket",
5277
+ "hasDynamicHelp": false,
5278
+ "multiple": false,
5279
+ "type": "option"
5280
+ },
5281
+ "dry-run": {
5282
+ "description": "Preview what would be synced without writing to Monday",
5283
+ "name": "dry-run",
5284
+ "allowNo": false,
5285
+ "type": "boolean"
5026
5286
  }
5027
5287
  },
5028
5288
  "hasDynamicHelp": false,
5029
5289
  "hiddenAliases": [],
5030
- "id": "hook",
5290
+ "id": "monday:sync",
5031
5291
  "pluginAlias": "@proletariat/cli",
5032
5292
  "pluginName": "@proletariat/cli",
5033
5293
  "pluginType": "core",
@@ -5036,18 +5296,33 @@
5036
5296
  "relativePath": [
5037
5297
  "dist",
5038
5298
  "commands",
5039
- "hook",
5040
- "index.js"
5299
+ "monday",
5300
+ "sync.js"
5041
5301
  ]
5042
5302
  },
5043
- "hook:list": {
5303
+ "notify:connect": {
5044
5304
  "aliases": [],
5045
- "args": {},
5046
- "description": "List configured orchestrate hooks",
5305
+ "args": {
5306
+ "type": {
5307
+ "description": "Provider type",
5308
+ "name": "type",
5309
+ "options": [
5310
+ "slack",
5311
+ "email",
5312
+ "sms",
5313
+ "terminal",
5314
+ "browser_push"
5315
+ ],
5316
+ "required": true
5317
+ }
5318
+ },
5319
+ "description": "Connect a notification provider (Slack, Email, SMS, etc.)",
5047
5320
  "examples": [
5048
- "<%= config.bin %> <%= command.id %>",
5049
- "<%= config.bin %> <%= command.id %> --event on_ci_green",
5050
- "<%= config.bin %> <%= command.id %> --mode auto"
5321
+ "<%= config.bin %> notify connect slack --webhook-url https://hooks.slack.com/...",
5322
+ "<%= config.bin %> notify connect email --provider sendgrid --api-key sk-... --from alerts@co.com --to team@co.com",
5323
+ "<%= config.bin %> notify connect sms --account-sid AC... --auth-token ... --from +1234567890 --to +0987654321",
5324
+ "<%= config.bin %> notify connect terminal",
5325
+ "<%= config.bin %> notify connect slack --name my-slack --webhook-url https://..."
5051
5326
  ],
5052
5327
  "flags": {
5053
5328
  "json": {
@@ -5063,42 +5338,84 @@
5063
5338
  "allowNo": false,
5064
5339
  "type": "boolean"
5065
5340
  },
5066
- "event": {
5067
- "description": "Filter by event name",
5068
- "name": "event",
5341
+ "name": {
5342
+ "description": "Provider name (defaults to type)",
5343
+ "name": "name",
5069
5344
  "hasDynamicHelp": false,
5070
5345
  "multiple": false,
5071
5346
  "type": "option"
5072
5347
  },
5073
- "mode": {
5074
- "description": "Filter by mode (auto, confirm, notify, off)",
5075
- "name": "mode",
5348
+ "webhook-url": {
5349
+ "description": "Slack webhook URL",
5350
+ "name": "webhook-url",
5076
5351
  "hasDynamicHelp": false,
5077
5352
  "multiple": false,
5078
- "options": [
5079
- "auto",
5080
- "confirm",
5081
- "notify",
5082
- "off"
5083
- ],
5084
5353
  "type": "option"
5085
5354
  },
5086
- "source": {
5087
- "description": "Filter by source (yaml, cli, preset)",
5088
- "name": "source",
5355
+ "channel": {
5356
+ "description": "Slack channel override",
5357
+ "name": "channel",
5358
+ "hasDynamicHelp": false,
5359
+ "multiple": false,
5360
+ "type": "option"
5361
+ },
5362
+ "username": {
5363
+ "description": "Slack username override",
5364
+ "name": "username",
5365
+ "hasDynamicHelp": false,
5366
+ "multiple": false,
5367
+ "type": "option"
5368
+ },
5369
+ "provider": {
5370
+ "description": "Email provider (sendgrid or ses)",
5371
+ "name": "provider",
5089
5372
  "hasDynamicHelp": false,
5090
5373
  "multiple": false,
5091
5374
  "options": [
5092
- "yaml",
5093
- "cli",
5094
- "preset"
5375
+ "sendgrid",
5376
+ "ses"
5095
5377
  ],
5096
5378
  "type": "option"
5379
+ },
5380
+ "api-key": {
5381
+ "description": "API key for email/SMS provider",
5382
+ "name": "api-key",
5383
+ "hasDynamicHelp": false,
5384
+ "multiple": false,
5385
+ "type": "option"
5386
+ },
5387
+ "from": {
5388
+ "description": "Sender address (email or phone)",
5389
+ "name": "from",
5390
+ "hasDynamicHelp": false,
5391
+ "multiple": false,
5392
+ "type": "option"
5393
+ },
5394
+ "to": {
5395
+ "description": "Recipient(s), comma-separated",
5396
+ "name": "to",
5397
+ "hasDynamicHelp": false,
5398
+ "multiple": true,
5399
+ "type": "option"
5400
+ },
5401
+ "account-sid": {
5402
+ "description": "Twilio account SID",
5403
+ "name": "account-sid",
5404
+ "hasDynamicHelp": false,
5405
+ "multiple": false,
5406
+ "type": "option"
5407
+ },
5408
+ "auth-token": {
5409
+ "description": "Twilio auth token",
5410
+ "name": "auth-token",
5411
+ "hasDynamicHelp": false,
5412
+ "multiple": false,
5413
+ "type": "option"
5097
5414
  }
5098
5415
  },
5099
5416
  "hasDynamicHelp": false,
5100
5417
  "hiddenAliases": [],
5101
- "id": "hook:list",
5418
+ "id": "notify:connect",
5102
5419
  "pluginAlias": "@proletariat/cli",
5103
5420
  "pluginName": "@proletariat/cli",
5104
5421
  "pluginType": "core",
@@ -5107,29 +5424,23 @@
5107
5424
  "relativePath": [
5108
5425
  "dist",
5109
5426
  "commands",
5110
- "hook",
5111
- "list.js"
5427
+ "notify",
5428
+ "connect.js"
5112
5429
  ]
5113
5430
  },
5114
- "hook:preset": {
5431
+ "notify:disconnect": {
5115
5432
  "aliases": [],
5116
5433
  "args": {
5117
- "preset": {
5118
- "description": "Preset name to apply",
5119
- "name": "preset",
5120
- "options": [
5121
- "aggressive",
5122
- "conservative",
5123
- "supervised"
5124
- ],
5434
+ "name": {
5435
+ "description": "Provider name to disconnect",
5436
+ "name": "name",
5125
5437
  "required": true
5126
5438
  }
5127
5439
  },
5128
- "description": "Apply a hook preset (aggressive, conservative, supervised)",
5440
+ "description": "Remove a notification provider",
5129
5441
  "examples": [
5130
- "<%= config.bin %> <%= command.id %> aggressive",
5131
- "<%= config.bin %> <%= command.id %> conservative",
5132
- "<%= config.bin %> <%= command.id %> supervised"
5442
+ "<%= config.bin %> notify disconnect slack",
5443
+ "<%= config.bin %> notify disconnect my-slack"
5133
5444
  ],
5134
5445
  "flags": {
5135
5446
  "json": {
@@ -5148,7 +5459,7 @@
5148
5459
  },
5149
5460
  "hasDynamicHelp": false,
5150
5461
  "hiddenAliases": [],
5151
- "id": "hook:preset",
5462
+ "id": "notify:disconnect",
5152
5463
  "pluginAlias": "@proletariat/cli",
5153
5464
  "pluginName": "@proletariat/cli",
5154
5465
  "pluginType": "core",
@@ -5157,29 +5468,20 @@
5157
5468
  "relativePath": [
5158
5469
  "dist",
5159
5470
  "commands",
5160
- "hook",
5161
- "preset.js"
5471
+ "notify",
5472
+ "disconnect.js"
5162
5473
  ]
5163
5474
  },
5164
- "monday:connect": {
5475
+ "notify:list": {
5165
5476
  "aliases": [],
5166
5477
  "args": {},
5167
- "description": "Connect PRLT to Monday.com and store workspace credentials",
5478
+ "description": "List configured notification providers and rules",
5168
5479
  "examples": [
5169
- "<%= config.bin %> <%= command.id %>",
5170
- "<%= config.bin %> <%= command.id %> --board 1234567890",
5171
- "<%= config.bin %> <%= command.id %> --check",
5172
- "<%= config.bin %> <%= command.id %> --disconnect"
5480
+ "<%= config.bin %> notify list",
5481
+ "<%= config.bin %> notify list --rules",
5482
+ "<%= config.bin %> notify list --type slack"
5173
5483
  ],
5174
5484
  "flags": {
5175
- "project": {
5176
- "char": "P",
5177
- "description": "Project ID (uses first project if only one exists)",
5178
- "name": "project",
5179
- "hasDynamicHelp": false,
5180
- "multiple": false,
5181
- "type": "option"
5182
- },
5183
5485
  "json": {
5184
5486
  "description": "Output as JSON for AI agents/scripts",
5185
5487
  "name": "json",
@@ -5193,35 +5495,30 @@
5193
5495
  "allowNo": false,
5194
5496
  "type": "boolean"
5195
5497
  },
5196
- "board": {
5197
- "description": "Monday board ID to sync tickets to",
5198
- "name": "board",
5498
+ "type": {
5499
+ "description": "Filter providers by type",
5500
+ "name": "type",
5199
5501
  "hasDynamicHelp": false,
5200
5502
  "multiple": false,
5503
+ "options": [
5504
+ "slack",
5505
+ "email",
5506
+ "sms",
5507
+ "terminal",
5508
+ "browser_push"
5509
+ ],
5201
5510
  "type": "option"
5202
5511
  },
5203
- "check": {
5204
- "description": "Only check if Monday configuration is valid",
5205
- "name": "check",
5206
- "allowNo": false,
5207
- "type": "boolean"
5208
- },
5209
- "force": {
5210
- "description": "Force re-authentication even if already configured",
5211
- "name": "force",
5212
- "allowNo": false,
5213
- "type": "boolean"
5214
- },
5215
- "disconnect": {
5216
- "description": "Remove stored Monday credentials",
5217
- "name": "disconnect",
5512
+ "rules": {
5513
+ "description": "Also show notification rules",
5514
+ "name": "rules",
5218
5515
  "allowNo": false,
5219
5516
  "type": "boolean"
5220
5517
  }
5221
5518
  },
5222
5519
  "hasDynamicHelp": false,
5223
5520
  "hiddenAliases": [],
5224
- "id": "monday:connect",
5521
+ "id": "notify:list",
5225
5522
  "pluginAlias": "@proletariat/cli",
5226
5523
  "pluginName": "@proletariat/cli",
5227
5524
  "pluginType": "core",
@@ -5230,28 +5527,25 @@
5230
5527
  "relativePath": [
5231
5528
  "dist",
5232
5529
  "commands",
5233
- "monday",
5234
- "connect.js"
5530
+ "notify",
5531
+ "list.js"
5235
5532
  ]
5236
5533
  },
5237
- "monday:sync": {
5534
+ "notify:test": {
5238
5535
  "aliases": [],
5239
- "args": {},
5240
- "description": "Sync PMO tickets to Monday.com board items",
5536
+ "args": {
5537
+ "name": {
5538
+ "description": "Provider name to test",
5539
+ "name": "name",
5540
+ "required": true
5541
+ }
5542
+ },
5543
+ "description": "Send a test notification through a provider",
5241
5544
  "examples": [
5242
- "<%= config.bin %> <%= command.id %> # Sync project tickets to Monday board",
5243
- "<%= config.bin %> <%= command.id %> --ticket TKT-001 # Sync one ticket",
5244
- "<%= config.bin %> <%= command.id %> --dry-run # Preview sync operations"
5545
+ "<%= config.bin %> notify test slack",
5546
+ "<%= config.bin %> notify test my-email"
5245
5547
  ],
5246
5548
  "flags": {
5247
- "project": {
5248
- "char": "P",
5249
- "description": "Project ID (uses first project if only one exists)",
5250
- "name": "project",
5251
- "hasDynamicHelp": false,
5252
- "multiple": false,
5253
- "type": "option"
5254
- },
5255
5549
  "json": {
5256
5550
  "description": "Output as JSON for AI agents/scripts",
5257
5551
  "name": "json",
@@ -5264,24 +5558,11 @@
5264
5558
  "name": "machine",
5265
5559
  "allowNo": false,
5266
5560
  "type": "boolean"
5267
- },
5268
- "ticket": {
5269
- "description": "PMO ticket ID to sync",
5270
- "name": "ticket",
5271
- "hasDynamicHelp": false,
5272
- "multiple": false,
5273
- "type": "option"
5274
- },
5275
- "dry-run": {
5276
- "description": "Preview what would be synced without writing to Monday",
5277
- "name": "dry-run",
5278
- "allowNo": false,
5279
- "type": "boolean"
5280
5561
  }
5281
5562
  },
5282
5563
  "hasDynamicHelp": false,
5283
5564
  "hiddenAliases": [],
5284
- "id": "monday:sync",
5565
+ "id": "notify:test",
5285
5566
  "pluginAlias": "@proletariat/cli",
5286
5567
  "pluginName": "@proletariat/cli",
5287
5568
  "pluginType": "core",
@@ -5290,8 +5571,8 @@
5290
5571
  "relativePath": [
5291
5572
  "dist",
5292
5573
  "commands",
5293
- "monday",
5294
- "sync.js"
5574
+ "notify",
5575
+ "test.js"
5295
5576
  ]
5296
5577
  },
5297
5578
  "orchestrate": {
@@ -5367,31 +5648,120 @@
5367
5648
  "multiple": false,
5368
5649
  "type": "option"
5369
5650
  },
5370
- "branch": {
5371
- "description": "Branch name (for --once)",
5372
- "name": "branch",
5651
+ "branch": {
5652
+ "description": "Branch name (for --once)",
5653
+ "name": "branch",
5654
+ "hasDynamicHelp": false,
5655
+ "multiple": false,
5656
+ "type": "option"
5657
+ },
5658
+ "agent": {
5659
+ "description": "Agent name (for --once)",
5660
+ "name": "agent",
5661
+ "hasDynamicHelp": false,
5662
+ "multiple": false,
5663
+ "type": "option"
5664
+ },
5665
+ "verbose": {
5666
+ "char": "v",
5667
+ "description": "Show detailed output",
5668
+ "name": "verbose",
5669
+ "allowNo": false,
5670
+ "type": "boolean"
5671
+ }
5672
+ },
5673
+ "hasDynamicHelp": false,
5674
+ "hiddenAliases": [],
5675
+ "id": "orchestrate",
5676
+ "pluginAlias": "@proletariat/cli",
5677
+ "pluginName": "@proletariat/cli",
5678
+ "pluginType": "core",
5679
+ "strict": true,
5680
+ "isESM": true,
5681
+ "relativePath": [
5682
+ "dist",
5683
+ "commands",
5684
+ "orchestrate",
5685
+ "index.js"
5686
+ ]
5687
+ },
5688
+ "orchestrate:machine": {
5689
+ "aliases": [],
5690
+ "args": {},
5691
+ "description": "Start the machine-level orchestrator — root supervisor for all agents across all repos",
5692
+ "examples": [
5693
+ "<%= config.bin %> <%= command.id %>",
5694
+ "<%= config.bin %> <%= command.id %> --prompt \"restart died agents, then assess all repos\"",
5695
+ "<%= config.bin %> <%= command.id %> --name supervisor",
5696
+ "<%= config.bin %> <%= command.id %> --background"
5697
+ ],
5698
+ "flags": {
5699
+ "prompt": {
5700
+ "char": "p",
5701
+ "description": "Initial instructions for the orchestrator",
5702
+ "name": "prompt",
5703
+ "hasDynamicHelp": false,
5704
+ "multiple": false,
5705
+ "type": "option"
5706
+ },
5707
+ "name": {
5708
+ "char": "n",
5709
+ "description": "Orchestrator name (default: machine-orchestrator)",
5710
+ "name": "name",
5373
5711
  "hasDynamicHelp": false,
5374
5712
  "multiple": false,
5375
5713
  "type": "option"
5376
5714
  },
5377
- "agent": {
5378
- "description": "Agent name (for --once)",
5379
- "name": "agent",
5715
+ "background": {
5716
+ "char": "b",
5717
+ "description": "Start detached (reattach later with prlt session attach)",
5718
+ "exclusive": [
5719
+ "foreground"
5720
+ ],
5721
+ "name": "background",
5722
+ "allowNo": false,
5723
+ "type": "boolean"
5724
+ },
5725
+ "foreground": {
5726
+ "char": "f",
5727
+ "description": "Attach to the session in the current terminal (blocking)",
5728
+ "exclusive": [
5729
+ "background"
5730
+ ],
5731
+ "name": "foreground",
5732
+ "allowNo": false,
5733
+ "type": "boolean"
5734
+ },
5735
+ "executor": {
5736
+ "char": "e",
5737
+ "description": "AI executor to use",
5738
+ "name": "executor",
5739
+ "default": "claude-code",
5380
5740
  "hasDynamicHelp": false,
5381
5741
  "multiple": false,
5742
+ "options": [
5743
+ "claude-code",
5744
+ "codex"
5745
+ ],
5382
5746
  "type": "option"
5383
5747
  },
5384
- "verbose": {
5385
- "char": "v",
5386
- "description": "Show detailed output",
5387
- "name": "verbose",
5748
+ "json": {
5749
+ "description": "Output as JSON for AI agents/scripts",
5750
+ "name": "json",
5751
+ "allowNo": false,
5752
+ "type": "boolean"
5753
+ },
5754
+ "machine": {
5755
+ "char": "m",
5756
+ "description": "Output as JSON for AI agents/scripts",
5757
+ "name": "machine",
5388
5758
  "allowNo": false,
5389
5759
  "type": "boolean"
5390
5760
  }
5391
5761
  },
5392
5762
  "hasDynamicHelp": false,
5393
5763
  "hiddenAliases": [],
5394
- "id": "orchestrate",
5764
+ "id": "orchestrate:machine",
5395
5765
  "pluginAlias": "@proletariat/cli",
5396
5766
  "pluginName": "@proletariat/cli",
5397
5767
  "pluginType": "core",
@@ -5401,7 +5771,7 @@
5401
5771
  "dist",
5402
5772
  "commands",
5403
5773
  "orchestrate",
5404
- "index.js"
5774
+ "machine.js"
5405
5775
  ]
5406
5776
  },
5407
5777
  "orchestrator:attach": {
@@ -5767,65 +6137,6 @@
5767
6137
  "stop.js"
5768
6138
  ]
5769
6139
  },
5770
- "project:configure": {
5771
- "aliases": [],
5772
- "args": {},
5773
- "description": "Configure workflow column mapping for a project",
5774
- "examples": [
5775
- "<%= config.bin %> <%= command.id %> --workflow",
5776
- "<%= config.bin %> <%= command.id %> --workflow --show"
5777
- ],
5778
- "flags": {
5779
- "project": {
5780
- "char": "P",
5781
- "description": "Project ID (uses first project if only one exists)",
5782
- "name": "project",
5783
- "hasDynamicHelp": false,
5784
- "multiple": false,
5785
- "type": "option"
5786
- },
5787
- "json": {
5788
- "description": "Output as JSON for AI agents/scripts",
5789
- "name": "json",
5790
- "allowNo": false,
5791
- "type": "boolean"
5792
- },
5793
- "machine": {
5794
- "char": "m",
5795
- "description": "Output as JSON for AI agents/scripts",
5796
- "name": "machine",
5797
- "allowNo": false,
5798
- "type": "boolean"
5799
- },
5800
- "workflow": {
5801
- "char": "w",
5802
- "description": "Configure workflow column mapping",
5803
- "name": "workflow",
5804
- "allowNo": false,
5805
- "type": "boolean"
5806
- },
5807
- "show": {
5808
- "description": "Show current workflow mapping without prompting",
5809
- "name": "show",
5810
- "allowNo": false,
5811
- "type": "boolean"
5812
- }
5813
- },
5814
- "hasDynamicHelp": false,
5815
- "hiddenAliases": [],
5816
- "id": "project:configure",
5817
- "pluginAlias": "@proletariat/cli",
5818
- "pluginName": "@proletariat/cli",
5819
- "pluginType": "core",
5820
- "strict": true,
5821
- "isESM": true,
5822
- "relativePath": [
5823
- "dist",
5824
- "commands",
5825
- "project",
5826
- "configure.js"
5827
- ]
5828
- },
5829
6140
  "pr:checks": {
5830
6141
  "aliases": [],
5831
6142
  "args": {
@@ -6398,20 +6709,23 @@
6398
6709
  "status.js"
6399
6710
  ]
6400
6711
  },
6401
- "qa": {
6402
- "aliases": [
6403
- "explore"
6404
- ],
6712
+ "project:configure": {
6713
+ "aliases": [],
6405
6714
  "args": {},
6406
- "description": "Spawn an exploratory QA agent to autonomously test the CLI (no ticket required)",
6715
+ "description": "Configure workflow column mapping for a project",
6407
6716
  "examples": [
6408
- "<%= config.bin %> <%= command.id %> # Quick launch QA agent",
6409
- "<%= config.bin %> <%= command.id %> --seed # Seed test data first",
6410
- "<%= config.bin %> <%= command.id %> --watch # Stream agent's tmux screen",
6411
- "<%= config.bin %> <%= command.id %> --environment host # Run on host instead of container",
6412
- "<%= config.bin %> <%= command.id %> --seed --watch # Seed data and watch live"
6717
+ "<%= config.bin %> <%= command.id %> --workflow",
6718
+ "<%= config.bin %> <%= command.id %> --workflow --show"
6413
6719
  ],
6414
6720
  "flags": {
6721
+ "project": {
6722
+ "char": "P",
6723
+ "description": "Project ID (uses first project if only one exists)",
6724
+ "name": "project",
6725
+ "hasDynamicHelp": false,
6726
+ "multiple": false,
6727
+ "type": "option"
6728
+ },
6415
6729
  "json": {
6416
6730
  "description": "Output as JSON for AI agents/scripts",
6417
6731
  "name": "json",
@@ -6425,68 +6739,23 @@
6425
6739
  "allowNo": false,
6426
6740
  "type": "boolean"
6427
6741
  },
6428
- "seed": {
6429
- "char": "s",
6430
- "description": "Seed test data before starting QA (runs seed-explore-data.mjs)",
6431
- "name": "seed",
6742
+ "workflow": {
6743
+ "char": "w",
6744
+ "description": "Configure workflow column mapping",
6745
+ "name": "workflow",
6432
6746
  "allowNo": false,
6433
6747
  "type": "boolean"
6434
6748
  },
6435
- "watch": {
6436
- "char": "w",
6437
- "description": "Stream the agent's tmux screen to your terminal in real-time",
6438
- "name": "watch",
6749
+ "show": {
6750
+ "description": "Show current workflow mapping without prompting",
6751
+ "name": "show",
6439
6752
  "allowNo": false,
6440
6753
  "type": "boolean"
6441
- },
6442
- "environment": {
6443
- "char": "e",
6444
- "description": "Where to run (devcontainer or host)",
6445
- "name": "environment",
6446
- "hasDynamicHelp": false,
6447
- "multiple": false,
6448
- "options": [
6449
- "devcontainer",
6450
- "host"
6451
- ],
6452
- "type": "option"
6453
- },
6454
- "display-mode": {
6455
- "char": "d",
6456
- "description": "How to display output (foreground=current terminal, terminal=new tab, background=detached)",
6457
- "name": "display-mode",
6458
- "hasDynamicHelp": false,
6459
- "multiple": false,
6460
- "options": [
6461
- "terminal",
6462
- "background",
6463
- "foreground"
6464
- ],
6465
- "type": "option"
6466
- },
6467
- "permission-mode": {
6468
- "char": "p",
6469
- "description": "Permission mode (danger: skip prompts, safe: require approval)",
6470
- "name": "permission-mode",
6471
- "hasDynamicHelp": false,
6472
- "multiple": false,
6473
- "options": [
6474
- "danger",
6475
- "safe"
6476
- ],
6477
- "type": "option"
6478
- },
6479
- "prompt": {
6480
- "description": "Additional instructions to append to the QA prompt",
6481
- "name": "prompt",
6482
- "hasDynamicHelp": false,
6483
- "multiple": false,
6484
- "type": "option"
6485
6754
  }
6486
6755
  },
6487
6756
  "hasDynamicHelp": false,
6488
6757
  "hiddenAliases": [],
6489
- "id": "qa",
6758
+ "id": "project:configure",
6490
6759
  "pluginAlias": "@proletariat/cli",
6491
6760
  "pluginName": "@proletariat/cli",
6492
6761
  "pluginType": "core",
@@ -6495,25 +6764,22 @@
6495
6764
  "relativePath": [
6496
6765
  "dist",
6497
6766
  "commands",
6498
- "qa",
6499
- "index.js"
6767
+ "project",
6768
+ "configure.js"
6500
6769
  ]
6501
6770
  },
6502
- "run": {
6503
- "aliases": [],
6504
- "args": {
6505
- "task": {
6506
- "description": "Task description for the agent",
6507
- "name": "task",
6508
- "required": true
6509
- }
6510
- },
6511
- "description": "Spawn an agent to work on a task (works anywhere, no HQ required)",
6771
+ "qa": {
6772
+ "aliases": [
6773
+ "explore"
6774
+ ],
6775
+ "args": {},
6776
+ "description": "Spawn an exploratory QA agent to autonomously test the CLI (no ticket required)",
6512
6777
  "examples": [
6513
- "<%= config.bin %> run \"fix the login bug\"",
6514
- "<%= config.bin %> run --runner claude-code \"add dark mode\"",
6515
- "<%= config.bin %> run -d \"fix the bug\"",
6516
- "<%= config.bin %> run --runner codex \"add tests\""
6778
+ "<%= config.bin %> <%= command.id %> # Quick launch QA agent",
6779
+ "<%= config.bin %> <%= command.id %> --seed # Seed test data first",
6780
+ "<%= config.bin %> <%= command.id %> --watch # Stream agent's tmux screen",
6781
+ "<%= config.bin %> <%= command.id %> --environment host # Run on host instead of container",
6782
+ "<%= config.bin %> <%= command.id %> --seed --watch # Seed data and watch live"
6517
6783
  ],
6518
6784
  "flags": {
6519
6785
  "json": {
@@ -6529,26 +6795,43 @@
6529
6795
  "allowNo": false,
6530
6796
  "type": "boolean"
6531
6797
  },
6532
- "runner": {
6533
- "char": "r",
6534
- "description": "Runner to use (claude-code, codex, pi)",
6535
- "name": "runner",
6536
- "hasDynamicHelp": false,
6537
- "multiple": false,
6538
- "type": "option"
6798
+ "seed": {
6799
+ "char": "s",
6800
+ "description": "Seed test data before starting QA (runs seed-explore-data.mjs)",
6801
+ "name": "seed",
6802
+ "allowNo": false,
6803
+ "type": "boolean"
6539
6804
  },
6540
- "detached": {
6541
- "char": "d",
6542
- "description": "Run in background (detached)",
6543
- "name": "detached",
6805
+ "watch": {
6806
+ "char": "w",
6807
+ "description": "Stream the agent's tmux screen to your terminal in real-time",
6808
+ "name": "watch",
6544
6809
  "allowNo": false,
6545
6810
  "type": "boolean"
6546
6811
  },
6547
- "directory": {
6548
- "description": "Working directory (default: cwd)",
6549
- "name": "directory",
6812
+ "environment": {
6813
+ "char": "e",
6814
+ "description": "Where to run (devcontainer or host)",
6815
+ "name": "environment",
6816
+ "hasDynamicHelp": false,
6817
+ "multiple": false,
6818
+ "options": [
6819
+ "devcontainer",
6820
+ "host"
6821
+ ],
6822
+ "type": "option"
6823
+ },
6824
+ "display-mode": {
6825
+ "char": "d",
6826
+ "description": "How to display output (foreground=current terminal, terminal=new tab, background=detached)",
6827
+ "name": "display-mode",
6550
6828
  "hasDynamicHelp": false,
6551
6829
  "multiple": false,
6830
+ "options": [
6831
+ "terminal",
6832
+ "background",
6833
+ "foreground"
6834
+ ],
6552
6835
  "type": "option"
6553
6836
  },
6554
6837
  "permission-mode": {
@@ -6563,23 +6846,17 @@
6563
6846
  ],
6564
6847
  "type": "option"
6565
6848
  },
6566
- "environment": {
6567
- "char": "e",
6568
- "description": "Environment to run in",
6569
- "name": "environment",
6849
+ "prompt": {
6850
+ "description": "Additional instructions to append to the QA prompt",
6851
+ "name": "prompt",
6570
6852
  "hasDynamicHelp": false,
6571
6853
  "multiple": false,
6572
- "options": [
6573
- "host",
6574
- "docker",
6575
- "podman"
6576
- ],
6577
6854
  "type": "option"
6578
6855
  }
6579
6856
  },
6580
6857
  "hasDynamicHelp": false,
6581
6858
  "hiddenAliases": [],
6582
- "id": "run",
6859
+ "id": "qa",
6583
6860
  "pluginAlias": "@proletariat/cli",
6584
6861
  "pluginName": "@proletariat/cli",
6585
6862
  "pluginType": "core",
@@ -6588,7 +6865,7 @@
6588
6865
  "relativePath": [
6589
6866
  "dist",
6590
6867
  "commands",
6591
- "run",
6868
+ "qa",
6592
6869
  "index.js"
6593
6870
  ]
6594
6871
  },
@@ -6997,6 +7274,167 @@
6997
7274
  "view.js"
6998
7275
  ]
6999
7276
  },
7277
+ "run": {
7278
+ "aliases": [],
7279
+ "args": {
7280
+ "task": {
7281
+ "description": "Task description for the agent",
7282
+ "name": "task",
7283
+ "required": true
7284
+ }
7285
+ },
7286
+ "description": "Spawn an agent to work on a task (works anywhere, no HQ required)",
7287
+ "examples": [
7288
+ "<%= config.bin %> run \"fix the login bug\"",
7289
+ "<%= config.bin %> run --runner claude-code \"add dark mode\"",
7290
+ "<%= config.bin %> run -d \"fix the bug\"",
7291
+ "<%= config.bin %> run --runner codex \"add tests\""
7292
+ ],
7293
+ "flags": {
7294
+ "json": {
7295
+ "description": "Output as JSON for AI agents/scripts",
7296
+ "name": "json",
7297
+ "allowNo": false,
7298
+ "type": "boolean"
7299
+ },
7300
+ "machine": {
7301
+ "char": "m",
7302
+ "description": "Output as JSON for AI agents/scripts",
7303
+ "name": "machine",
7304
+ "allowNo": false,
7305
+ "type": "boolean"
7306
+ },
7307
+ "runner": {
7308
+ "char": "r",
7309
+ "description": "Runner to use (claude-code, codex, pi)",
7310
+ "name": "runner",
7311
+ "hasDynamicHelp": false,
7312
+ "multiple": false,
7313
+ "type": "option"
7314
+ },
7315
+ "detached": {
7316
+ "char": "d",
7317
+ "description": "Run in background (detached)",
7318
+ "name": "detached",
7319
+ "allowNo": false,
7320
+ "type": "boolean"
7321
+ },
7322
+ "directory": {
7323
+ "description": "Working directory (default: cwd)",
7324
+ "name": "directory",
7325
+ "hasDynamicHelp": false,
7326
+ "multiple": false,
7327
+ "type": "option"
7328
+ },
7329
+ "permission-mode": {
7330
+ "char": "p",
7331
+ "description": "Permission mode (danger: skip prompts, safe: require approval)",
7332
+ "name": "permission-mode",
7333
+ "hasDynamicHelp": false,
7334
+ "multiple": false,
7335
+ "options": [
7336
+ "danger",
7337
+ "safe"
7338
+ ],
7339
+ "type": "option"
7340
+ },
7341
+ "environment": {
7342
+ "char": "e",
7343
+ "description": "Environment to run in",
7344
+ "name": "environment",
7345
+ "hasDynamicHelp": false,
7346
+ "multiple": false,
7347
+ "options": [
7348
+ "host",
7349
+ "docker",
7350
+ "podman"
7351
+ ],
7352
+ "type": "option"
7353
+ }
7354
+ },
7355
+ "hasDynamicHelp": false,
7356
+ "hiddenAliases": [],
7357
+ "id": "run",
7358
+ "pluginAlias": "@proletariat/cli",
7359
+ "pluginName": "@proletariat/cli",
7360
+ "pluginType": "core",
7361
+ "strict": true,
7362
+ "isESM": true,
7363
+ "relativePath": [
7364
+ "dist",
7365
+ "commands",
7366
+ "run",
7367
+ "index.js"
7368
+ ]
7369
+ },
7370
+ "shortcut:connect": {
7371
+ "aliases": [],
7372
+ "args": {},
7373
+ "description": "Connect to Shortcut workspace and configure authentication",
7374
+ "examples": [
7375
+ "<%= config.bin %> <%= command.id %>",
7376
+ "<%= config.bin %> <%= command.id %> --check",
7377
+ "<%= config.bin %> <%= command.id %> --force",
7378
+ "<%= config.bin %> <%= command.id %> --disconnect",
7379
+ "SHORTCUT_API_TOKEN=... <%= config.bin %> <%= command.id %>",
7380
+ "<%= config.bin %> <%= command.id %> --json"
7381
+ ],
7382
+ "flags": {
7383
+ "project": {
7384
+ "char": "P",
7385
+ "description": "Project ID (uses first project if only one exists)",
7386
+ "name": "project",
7387
+ "hasDynamicHelp": false,
7388
+ "multiple": false,
7389
+ "type": "option"
7390
+ },
7391
+ "json": {
7392
+ "description": "Output as JSON for AI agents/scripts",
7393
+ "name": "json",
7394
+ "allowNo": false,
7395
+ "type": "boolean"
7396
+ },
7397
+ "machine": {
7398
+ "char": "m",
7399
+ "description": "Output as JSON for AI agents/scripts",
7400
+ "name": "machine",
7401
+ "allowNo": false,
7402
+ "type": "boolean"
7403
+ },
7404
+ "check": {
7405
+ "description": "Only check if Shortcut credentials are valid (do not prompt)",
7406
+ "name": "check",
7407
+ "allowNo": false,
7408
+ "type": "boolean"
7409
+ },
7410
+ "force": {
7411
+ "description": "Force re-authentication even if credentials exist",
7412
+ "name": "force",
7413
+ "allowNo": false,
7414
+ "type": "boolean"
7415
+ },
7416
+ "disconnect": {
7417
+ "description": "Remove stored Shortcut credentials and configuration",
7418
+ "name": "disconnect",
7419
+ "allowNo": false,
7420
+ "type": "boolean"
7421
+ }
7422
+ },
7423
+ "hasDynamicHelp": false,
7424
+ "hiddenAliases": [],
7425
+ "id": "shortcut:connect",
7426
+ "pluginAlias": "@proletariat/cli",
7427
+ "pluginName": "@proletariat/cli",
7428
+ "pluginType": "core",
7429
+ "strict": true,
7430
+ "isESM": true,
7431
+ "relativePath": [
7432
+ "dist",
7433
+ "commands",
7434
+ "shortcut",
7435
+ "connect.js"
7436
+ ]
7437
+ },
7000
7438
  "session:attach": {
7001
7439
  "aliases": [],
7002
7440
  "args": {
@@ -7909,82 +8347,14 @@
7909
8347
  },
7910
8348
  "once": {
7911
8349
  "description": "Run a single check and exit (no polling loop)",
7912
- "name": "once",
7913
- "allowNo": false,
7914
- "type": "boolean"
7915
- }
7916
- },
7917
- "hasDynamicHelp": false,
7918
- "hiddenAliases": [],
7919
- "id": "session:watch",
7920
- "pluginAlias": "@proletariat/cli",
7921
- "pluginName": "@proletariat/cli",
7922
- "pluginType": "core",
7923
- "strict": true,
7924
- "isESM": true,
7925
- "relativePath": [
7926
- "dist",
7927
- "commands",
7928
- "session",
7929
- "watch.js"
7930
- ]
7931
- },
7932
- "shortcut:connect": {
7933
- "aliases": [],
7934
- "args": {},
7935
- "description": "Connect to Shortcut workspace and configure authentication",
7936
- "examples": [
7937
- "<%= config.bin %> <%= command.id %>",
7938
- "<%= config.bin %> <%= command.id %> --check",
7939
- "<%= config.bin %> <%= command.id %> --force",
7940
- "<%= config.bin %> <%= command.id %> --disconnect",
7941
- "SHORTCUT_API_TOKEN=... <%= config.bin %> <%= command.id %>",
7942
- "<%= config.bin %> <%= command.id %> --json"
7943
- ],
7944
- "flags": {
7945
- "project": {
7946
- "char": "P",
7947
- "description": "Project ID (uses first project if only one exists)",
7948
- "name": "project",
7949
- "hasDynamicHelp": false,
7950
- "multiple": false,
7951
- "type": "option"
7952
- },
7953
- "json": {
7954
- "description": "Output as JSON for AI agents/scripts",
7955
- "name": "json",
7956
- "allowNo": false,
7957
- "type": "boolean"
7958
- },
7959
- "machine": {
7960
- "char": "m",
7961
- "description": "Output as JSON for AI agents/scripts",
7962
- "name": "machine",
7963
- "allowNo": false,
7964
- "type": "boolean"
7965
- },
7966
- "check": {
7967
- "description": "Only check if Shortcut credentials are valid (do not prompt)",
7968
- "name": "check",
7969
- "allowNo": false,
7970
- "type": "boolean"
7971
- },
7972
- "force": {
7973
- "description": "Force re-authentication even if credentials exist",
7974
- "name": "force",
7975
- "allowNo": false,
7976
- "type": "boolean"
7977
- },
7978
- "disconnect": {
7979
- "description": "Remove stored Shortcut credentials and configuration",
7980
- "name": "disconnect",
8350
+ "name": "once",
7981
8351
  "allowNo": false,
7982
8352
  "type": "boolean"
7983
8353
  }
7984
8354
  },
7985
8355
  "hasDynamicHelp": false,
7986
8356
  "hiddenAliases": [],
7987
- "id": "shortcut:connect",
8357
+ "id": "session:watch",
7988
8358
  "pluginAlias": "@proletariat/cli",
7989
8359
  "pluginName": "@proletariat/cli",
7990
8360
  "pluginType": "core",
@@ -7993,8 +8363,8 @@
7993
8363
  "relativePath": [
7994
8364
  "dist",
7995
8365
  "commands",
7996
- "shortcut",
7997
- "connect.js"
8366
+ "session",
8367
+ "watch.js"
7998
8368
  ]
7999
8369
  },
8000
8370
  "support:book": {
@@ -9918,6 +10288,12 @@
9918
10288
  "name": "force",
9919
10289
  "allowNo": false,
9920
10290
  "type": "boolean"
10291
+ },
10292
+ "no-cleanup": {
10293
+ "description": "Skip automatic worktree cleanup when moving to Done",
10294
+ "name": "no-cleanup",
10295
+ "allowNo": false,
10296
+ "type": "boolean"
9921
10297
  }
9922
10298
  },
9923
10299
  "hasDynamicHelp": false,
@@ -11887,6 +12263,141 @@
11887
12263
  "review.js"
11888
12264
  ]
11889
12265
  },
12266
+ "work:run": {
12267
+ "aliases": [],
12268
+ "args": {},
12269
+ "description": "Run an agent without a ticket — ticketless work mode",
12270
+ "examples": [
12271
+ "<%= config.bin %> <%= command.id %> --prompt \"refactor auth module\"",
12272
+ "<%= config.bin %> <%= command.id %> --dir ~/Projects/other-repo --prompt \"fix the auth bug\"",
12273
+ "<%= config.bin %> <%= command.id %> --repo https://github.com/org/repo --prompt \"add tests\"",
12274
+ "<%= config.bin %> <%= command.id %> --prompt \"add unit tests\" --create-pr",
12275
+ "<%= config.bin %> <%= command.id %> --prompt \"fix flaky test\" --environment host",
12276
+ "<%= config.bin %> <%= command.id %> --name reviewer --keep-alive --prompt \"you are the backend reviewer\"",
12277
+ "<%= config.bin %> <%= command.id %> --prompt \"analyze this CSV data\" --dir ~/data/exports",
12278
+ "<%= config.bin %> <%= command.id %> --prompt \"research best practices for auth\"",
12279
+ "<%= config.bin %> <%= command.id %> --dir ~/Projects/myapp --no-worktree --prompt \"fix tests\""
12280
+ ],
12281
+ "flags": {
12282
+ "prompt": {
12283
+ "char": "p",
12284
+ "description": "Work prompt — what the agent should do",
12285
+ "name": "prompt",
12286
+ "required": true,
12287
+ "hasDynamicHelp": false,
12288
+ "multiple": false,
12289
+ "type": "option"
12290
+ },
12291
+ "dir": {
12292
+ "char": "d",
12293
+ "description": "Working directory (auto-detects git vs non-git)",
12294
+ "name": "dir",
12295
+ "hasDynamicHelp": false,
12296
+ "multiple": false,
12297
+ "type": "option"
12298
+ },
12299
+ "repo": {
12300
+ "char": "r",
12301
+ "description": "Git repo URL to clone and work in",
12302
+ "name": "repo",
12303
+ "hasDynamicHelp": false,
12304
+ "multiple": false,
12305
+ "type": "option"
12306
+ },
12307
+ "no-worktree": {
12308
+ "description": "Work in-place instead of creating a git worktree (for git repos)",
12309
+ "name": "no-worktree",
12310
+ "allowNo": false,
12311
+ "type": "boolean"
12312
+ },
12313
+ "create-pr": {
12314
+ "description": "Create a PR when work is ready (no ticket linking)",
12315
+ "name": "create-pr",
12316
+ "allowNo": false,
12317
+ "type": "boolean"
12318
+ },
12319
+ "keep-alive": {
12320
+ "char": "k",
12321
+ "description": "Persistent agent — survives restarts, accumulates context, responds to pokes",
12322
+ "name": "keep-alive",
12323
+ "allowNo": false,
12324
+ "type": "boolean"
12325
+ },
12326
+ "environment": {
12327
+ "char": "e",
12328
+ "description": "Execution environment",
12329
+ "name": "environment",
12330
+ "default": "host",
12331
+ "hasDynamicHelp": false,
12332
+ "multiple": false,
12333
+ "options": [
12334
+ "host",
12335
+ "sandbox",
12336
+ "docker",
12337
+ "devcontainer"
12338
+ ],
12339
+ "type": "option"
12340
+ },
12341
+ "executor": {
12342
+ "description": "AI executor to use",
12343
+ "name": "executor",
12344
+ "default": "claude-code",
12345
+ "hasDynamicHelp": false,
12346
+ "multiple": false,
12347
+ "options": [
12348
+ "claude-code",
12349
+ "codex"
12350
+ ],
12351
+ "type": "option"
12352
+ },
12353
+ "mode": {
12354
+ "description": "Display mode for agent output",
12355
+ "name": "mode",
12356
+ "hasDynamicHelp": false,
12357
+ "multiple": false,
12358
+ "options": [
12359
+ "terminal",
12360
+ "background",
12361
+ "foreground"
12362
+ ],
12363
+ "type": "option"
12364
+ },
12365
+ "name": {
12366
+ "description": "Agent name (required for --keep-alive, auto-generated otherwise)",
12367
+ "name": "name",
12368
+ "hasDynamicHelp": false,
12369
+ "multiple": false,
12370
+ "type": "option"
12371
+ },
12372
+ "json": {
12373
+ "description": "Output as JSON for AI agents/scripts",
12374
+ "name": "json",
12375
+ "allowNo": false,
12376
+ "type": "boolean"
12377
+ },
12378
+ "machine": {
12379
+ "char": "m",
12380
+ "description": "Output as JSON for AI agents/scripts",
12381
+ "name": "machine",
12382
+ "allowNo": false,
12383
+ "type": "boolean"
12384
+ }
12385
+ },
12386
+ "hasDynamicHelp": false,
12387
+ "hiddenAliases": [],
12388
+ "id": "work:run",
12389
+ "pluginAlias": "@proletariat/cli",
12390
+ "pluginName": "@proletariat/cli",
12391
+ "pluginType": "core",
12392
+ "strict": true,
12393
+ "isESM": true,
12394
+ "relativePath": [
12395
+ "dist",
12396
+ "commands",
12397
+ "work",
12398
+ "run.js"
12399
+ ]
12400
+ },
11890
12401
  "work:ship": {
11891
12402
  "aliases": [],
11892
12403
  "args": {
@@ -12912,6 +13423,17 @@
12912
13423
  "name": "dry-run",
12913
13424
  "allowNo": false,
12914
13425
  "type": "boolean"
13426
+ },
13427
+ "environment": {
13428
+ "description": "Execution environment (devcontainer or host). Use to bypass the environment selection prompt.",
13429
+ "name": "environment",
13430
+ "hasDynamicHelp": false,
13431
+ "multiple": false,
13432
+ "options": [
13433
+ "devcontainer",
13434
+ "host"
13435
+ ],
13436
+ "type": "option"
12915
13437
  }
12916
13438
  },
12917
13439
  "hasDynamicHelp": false,
@@ -13596,6 +14118,172 @@
13596
14118
  "set.js"
13597
14119
  ]
13598
14120
  },
14121
+ "notify:rules:add": {
14122
+ "aliases": [],
14123
+ "args": {
14124
+ "event": {
14125
+ "description": "Event to trigger notification",
14126
+ "name": "event",
14127
+ "required": true
14128
+ }
14129
+ },
14130
+ "description": "Add a notification rule for an event",
14131
+ "examples": [
14132
+ "<%= config.bin %> notify rules add on_agent_died --provider slack",
14133
+ "<%= config.bin %> notify rules add on_ci_failed --provider email --priority 1",
14134
+ "<%= config.bin %> notify rules add on_agent_died --provider sms --escalation-group agent-down --delay 600"
14135
+ ],
14136
+ "flags": {
14137
+ "json": {
14138
+ "description": "Output as JSON for AI agents/scripts",
14139
+ "name": "json",
14140
+ "allowNo": false,
14141
+ "type": "boolean"
14142
+ },
14143
+ "machine": {
14144
+ "char": "m",
14145
+ "description": "Output as JSON for AI agents/scripts",
14146
+ "name": "machine",
14147
+ "allowNo": false,
14148
+ "type": "boolean"
14149
+ },
14150
+ "provider": {
14151
+ "description": "Provider name to notify",
14152
+ "name": "provider",
14153
+ "required": true,
14154
+ "hasDynamicHelp": false,
14155
+ "multiple": false,
14156
+ "type": "option"
14157
+ },
14158
+ "priority": {
14159
+ "description": "Priority (lower = higher priority)",
14160
+ "name": "priority",
14161
+ "default": 0,
14162
+ "hasDynamicHelp": false,
14163
+ "multiple": false,
14164
+ "type": "option"
14165
+ },
14166
+ "delay": {
14167
+ "description": "Escalation delay in seconds (0 = immediate)",
14168
+ "name": "delay",
14169
+ "hasDynamicHelp": false,
14170
+ "multiple": false,
14171
+ "type": "option"
14172
+ },
14173
+ "escalation-group": {
14174
+ "description": "Escalation group name (rules in same group escalate sequentially)",
14175
+ "name": "escalation-group",
14176
+ "hasDynamicHelp": false,
14177
+ "multiple": false,
14178
+ "type": "option"
14179
+ }
14180
+ },
14181
+ "hasDynamicHelp": false,
14182
+ "hiddenAliases": [],
14183
+ "id": "notify:rules:add",
14184
+ "pluginAlias": "@proletariat/cli",
14185
+ "pluginName": "@proletariat/cli",
14186
+ "pluginType": "core",
14187
+ "strict": true,
14188
+ "isESM": true,
14189
+ "relativePath": [
14190
+ "dist",
14191
+ "commands",
14192
+ "notify",
14193
+ "rules",
14194
+ "add.js"
14195
+ ]
14196
+ },
14197
+ "notify:rules:list": {
14198
+ "aliases": [],
14199
+ "args": {},
14200
+ "description": "List notification rules",
14201
+ "examples": [
14202
+ "<%= config.bin %> notify rules list",
14203
+ "<%= config.bin %> notify rules list --event on_agent_died"
14204
+ ],
14205
+ "flags": {
14206
+ "json": {
14207
+ "description": "Output as JSON for AI agents/scripts",
14208
+ "name": "json",
14209
+ "allowNo": false,
14210
+ "type": "boolean"
14211
+ },
14212
+ "machine": {
14213
+ "char": "m",
14214
+ "description": "Output as JSON for AI agents/scripts",
14215
+ "name": "machine",
14216
+ "allowNo": false,
14217
+ "type": "boolean"
14218
+ },
14219
+ "event": {
14220
+ "description": "Filter by event name",
14221
+ "name": "event",
14222
+ "hasDynamicHelp": false,
14223
+ "multiple": false,
14224
+ "type": "option"
14225
+ }
14226
+ },
14227
+ "hasDynamicHelp": false,
14228
+ "hiddenAliases": [],
14229
+ "id": "notify:rules:list",
14230
+ "pluginAlias": "@proletariat/cli",
14231
+ "pluginName": "@proletariat/cli",
14232
+ "pluginType": "core",
14233
+ "strict": true,
14234
+ "isESM": true,
14235
+ "relativePath": [
14236
+ "dist",
14237
+ "commands",
14238
+ "notify",
14239
+ "rules",
14240
+ "list.js"
14241
+ ]
14242
+ },
14243
+ "notify:rules:remove": {
14244
+ "aliases": [],
14245
+ "args": {
14246
+ "id": {
14247
+ "description": "Rule ID to remove",
14248
+ "name": "id",
14249
+ "required": true
14250
+ }
14251
+ },
14252
+ "description": "Remove a notification rule",
14253
+ "examples": [
14254
+ "<%= config.bin %> notify rules remove <rule-id>"
14255
+ ],
14256
+ "flags": {
14257
+ "json": {
14258
+ "description": "Output as JSON for AI agents/scripts",
14259
+ "name": "json",
14260
+ "allowNo": false,
14261
+ "type": "boolean"
14262
+ },
14263
+ "machine": {
14264
+ "char": "m",
14265
+ "description": "Output as JSON for AI agents/scripts",
14266
+ "name": "machine",
14267
+ "allowNo": false,
14268
+ "type": "boolean"
14269
+ }
14270
+ },
14271
+ "hasDynamicHelp": false,
14272
+ "hiddenAliases": [],
14273
+ "id": "notify:rules:remove",
14274
+ "pluginAlias": "@proletariat/cli",
14275
+ "pluginName": "@proletariat/cli",
14276
+ "pluginType": "core",
14277
+ "strict": true,
14278
+ "isESM": true,
14279
+ "relativePath": [
14280
+ "dist",
14281
+ "commands",
14282
+ "notify",
14283
+ "rules",
14284
+ "remove.js"
14285
+ ]
14286
+ },
13599
14287
  "work:hooks:add": {
13600
14288
  "aliases": [],
13601
14289
  "args": {},
@@ -13977,5 +14665,5 @@
13977
14665
  ]
13978
14666
  }
13979
14667
  },
13980
- "version": "0.3.105"
14668
+ "version": "0.3.110"
13981
14669
  }