@proletariat/cli 0.3.85 → 0.3.87

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 (142) hide show
  1. package/bin/validate-better-sqlite3.cjs +11 -0
  2. package/dist/commands/config/index.js +42 -0
  3. package/dist/commands/config/index.js.map +1 -1
  4. package/dist/commands/session/cleanup.d.ts +2 -0
  5. package/dist/commands/session/cleanup.js +89 -42
  6. package/dist/commands/session/cleanup.js.map +1 -1
  7. package/dist/commands/session/index.js +4 -0
  8. package/dist/commands/session/index.js.map +1 -1
  9. package/dist/commands/session/poke.d.ts +3 -7
  10. package/dist/commands/session/poke.js +5 -7
  11. package/dist/commands/session/poke.js.map +1 -1
  12. package/dist/commands/session/report.d.ts +27 -0
  13. package/dist/commands/session/report.js +217 -0
  14. package/dist/commands/session/report.js.map +1 -0
  15. package/dist/commands/telemetry/disable.js +1 -1
  16. package/dist/commands/telemetry/disable.js.map +1 -1
  17. package/dist/commands/telemetry/enable.js +1 -1
  18. package/dist/commands/telemetry/enable.js.map +1 -1
  19. package/dist/commands/ticket/cancel.js +2 -0
  20. package/dist/commands/ticket/cancel.js.map +1 -1
  21. package/dist/commands/ticket/complete.js +2 -0
  22. package/dist/commands/ticket/complete.js.map +1 -1
  23. package/dist/commands/ticket/create.d.ts +3 -2
  24. package/dist/commands/ticket/create.js +6 -69
  25. package/dist/commands/ticket/create.js.map +1 -1
  26. package/dist/commands/ticket/delete.js +2 -0
  27. package/dist/commands/ticket/delete.js.map +1 -1
  28. package/dist/commands/ticket/edit.js +5 -0
  29. package/dist/commands/ticket/edit.js.map +1 -1
  30. package/dist/commands/ticket/move.js +2 -0
  31. package/dist/commands/ticket/move.js.map +1 -1
  32. package/dist/commands/ticket/project.js +2 -0
  33. package/dist/commands/ticket/project.js.map +1 -1
  34. package/dist/commands/ticket/reassign.js +2 -0
  35. package/dist/commands/ticket/reassign.js.map +1 -1
  36. package/dist/commands/ticket/resolve.js +2 -0
  37. package/dist/commands/ticket/resolve.js.map +1 -1
  38. package/dist/commands/ticket/update.js +5 -0
  39. package/dist/commands/ticket/update.js.map +1 -1
  40. package/dist/commands/work/complete.js +2 -0
  41. package/dist/commands/work/complete.js.map +1 -1
  42. package/dist/commands/work/groom.d.ts +15 -0
  43. package/dist/commands/work/groom.js +77 -0
  44. package/dist/commands/work/groom.js.map +1 -0
  45. package/dist/commands/work/implement.d.ts +16 -0
  46. package/dist/commands/work/implement.js +85 -0
  47. package/dist/commands/work/implement.js.map +1 -0
  48. package/dist/commands/work/index.js +38 -34
  49. package/dist/commands/work/index.js.map +1 -1
  50. package/dist/commands/work/peek.d.ts +18 -0
  51. package/dist/commands/work/peek.js +82 -0
  52. package/dist/commands/work/peek.js.map +1 -0
  53. package/dist/commands/work/poke.d.ts +18 -0
  54. package/dist/commands/work/poke.js +84 -0
  55. package/dist/commands/work/poke.js.map +1 -0
  56. package/dist/commands/work/ready.js +2 -0
  57. package/dist/commands/work/ready.js.map +1 -1
  58. package/dist/commands/work/review.d.ts +1 -31
  59. package/dist/commands/work/review.js +44 -368
  60. package/dist/commands/work/review.js.map +1 -1
  61. package/dist/commands/work/spawn.js +1 -1
  62. package/dist/commands/work/spawn.js.map +1 -1
  63. package/dist/commands/work/start.d.ts +3 -0
  64. package/dist/commands/work/start.js +69 -20
  65. package/dist/commands/work/start.js.map +1 -1
  66. package/dist/commands/work/stop.d.ts +14 -0
  67. package/dist/commands/work/stop.js +108 -0
  68. package/dist/commands/work/stop.js.map +1 -0
  69. package/dist/hooks/init.d.ts +1 -1
  70. package/dist/hooks/init.js +4 -1
  71. package/dist/hooks/init.js.map +1 -1
  72. package/dist/hooks/postrun.js +3 -0
  73. package/dist/hooks/postrun.js.map +1 -1
  74. package/dist/lib/database/drizzle-schema.d.ts +1 -1
  75. package/dist/lib/database/migrations/0011_add_review_gate.d.ts +8 -0
  76. package/dist/lib/database/migrations/0011_add_review_gate.js +21 -0
  77. package/dist/lib/database/migrations/0011_add_review_gate.js.map +1 -0
  78. package/dist/lib/database/migrations/index.js +2 -0
  79. package/dist/lib/database/migrations/index.js.map +1 -1
  80. package/dist/lib/execution/config.d.ts +17 -1
  81. package/dist/lib/execution/config.js +38 -0
  82. package/dist/lib/execution/config.js.map +1 -1
  83. package/dist/lib/execution/devcontainer.js +0 -1
  84. package/dist/lib/execution/devcontainer.js.map +1 -1
  85. package/dist/lib/execution/runners/docker-management.js +20 -0
  86. package/dist/lib/execution/runners/docker-management.js.map +1 -1
  87. package/dist/lib/execution/runners/prompt-builder.js +50 -17
  88. package/dist/lib/execution/runners/prompt-builder.js.map +1 -1
  89. package/dist/lib/execution/runners/shared.js +3 -1
  90. package/dist/lib/execution/runners/shared.js.map +1 -1
  91. package/dist/lib/execution/spawner.d.ts +3 -1
  92. package/dist/lib/execution/spawner.js +10 -4
  93. package/dist/lib/execution/spawner.js.map +1 -1
  94. package/dist/lib/execution/storage.d.ts +4 -2
  95. package/dist/lib/execution/storage.js +10 -8
  96. package/dist/lib/execution/storage.js.map +1 -1
  97. package/dist/lib/execution/types.d.ts +10 -0
  98. package/dist/lib/execution/types.js.map +1 -1
  99. package/dist/lib/mcp/tools/action.js +34 -0
  100. package/dist/lib/mcp/tools/action.js.map +1 -1
  101. package/dist/lib/mcp/tools/tmux.d.ts +1 -1
  102. package/dist/lib/mcp/tools/tmux.js +1 -1
  103. package/dist/lib/mcp/tools/work.js +4 -35
  104. package/dist/lib/mcp/tools/work.js.map +1 -1
  105. package/dist/lib/pmo/schema.d.ts +2 -2
  106. package/dist/lib/pmo/schema.js +2 -0
  107. package/dist/lib/pmo/schema.js.map +1 -1
  108. package/dist/lib/pmo/storage/actions.js +9 -3
  109. package/dist/lib/pmo/storage/actions.js.map +1 -1
  110. package/dist/lib/pmo/storage/base.js +59 -501
  111. package/dist/lib/pmo/storage/base.js.map +1 -1
  112. package/dist/lib/pmo/storage/index.d.ts +1 -0
  113. package/dist/lib/pmo/storage/index.js +3 -0
  114. package/dist/lib/pmo/storage/index.js.map +1 -1
  115. package/dist/lib/pmo/storage/tickets.d.ts +7 -0
  116. package/dist/lib/pmo/storage/tickets.js +33 -2
  117. package/dist/lib/pmo/storage/tickets.js.map +1 -1
  118. package/dist/lib/pmo/storage/types.d.ts +1 -0
  119. package/dist/lib/pmo/types.d.ts +10 -0
  120. package/dist/lib/pmo/types.js.map +1 -1
  121. package/dist/lib/pmo/utils.d.ts +60 -0
  122. package/dist/lib/pmo/utils.js +92 -0
  123. package/dist/lib/pmo/utils.js.map +1 -1
  124. package/dist/lib/providers/event-emitting-provider.js +13 -2
  125. package/dist/lib/providers/event-emitting-provider.js.map +1 -1
  126. package/dist/lib/telemetry/analytics.d.ts +57 -13
  127. package/dist/lib/telemetry/analytics.js +87 -125
  128. package/dist/lib/telemetry/analytics.js.map +1 -1
  129. package/dist/lib/telemetry/feature-flags.d.ts +12 -37
  130. package/dist/lib/telemetry/feature-flags.js +15 -63
  131. package/dist/lib/telemetry/feature-flags.js.map +1 -1
  132. package/dist/lib/telemetry/telemetry-bridge.d.ts +35 -0
  133. package/dist/lib/telemetry/telemetry-bridge.js +139 -0
  134. package/dist/lib/telemetry/telemetry-bridge.js.map +1 -0
  135. package/dist/lib/work-lifecycle/post-execution.d.ts +5 -1
  136. package/dist/lib/work-lifecycle/post-execution.js +30 -18
  137. package/dist/lib/work-lifecycle/post-execution.js.map +1 -1
  138. package/oclif.manifest.json +923 -661
  139. package/package.json +10 -11
  140. package/dist/commands/work/revise.d.ts +0 -20
  141. package/dist/commands/work/revise.js +0 -377
  142. package/dist/commands/work/revise.js.map +0 -1
@@ -2292,17 +2292,19 @@
2292
2292
  "visit.js"
2293
2293
  ]
2294
2294
  },
2295
- "board": {
2295
+ "asana:connect": {
2296
2296
  "aliases": [],
2297
2297
  "args": {},
2298
- "description": "Interactive menu for board operations",
2298
+ "description": "Authenticate with Asana and configure workspace/project defaults",
2299
2299
  "examples": [
2300
- "<%= config.bin %> <%= command.id %>"
2300
+ "<%= config.bin %> <%= command.id %>",
2301
+ "<%= config.bin %> <%= command.id %> --check",
2302
+ "<%= config.bin %> <%= command.id %> --workspace \"Product Team\" --project \"Roadmap\"",
2303
+ "ASANA_ACCESS_TOKEN=... <%= config.bin %> <%= command.id %>"
2301
2304
  ],
2302
2305
  "flags": {
2303
2306
  "project": {
2304
- "char": "P",
2305
- "description": "Project ID (uses first project if only one exists)",
2307
+ "description": "Default project gid or name",
2306
2308
  "name": "project",
2307
2309
  "hasDynamicHelp": false,
2308
2310
  "multiple": false,
@@ -2321,30 +2323,35 @@
2321
2323
  "allowNo": false,
2322
2324
  "type": "boolean"
2323
2325
  },
2324
- "action": {
2325
- "description": "Action to execute directly (view, markdown, export, sync)",
2326
- "name": "action",
2327
- "hasDynamicHelp": false,
2328
- "multiple": false,
2329
- "options": [
2330
- "view",
2331
- "open",
2332
- "markdown",
2333
- "export",
2334
- "sync"
2335
- ],
2336
- "type": "option"
2326
+ "check": {
2327
+ "description": "Only check if Asana credentials exist (do not prompt)",
2328
+ "name": "check",
2329
+ "allowNo": false,
2330
+ "type": "boolean"
2337
2331
  },
2338
2332
  "force": {
2339
- "description": "Skip confirmation prompts",
2333
+ "description": "Force re-authentication even if credentials exist",
2340
2334
  "name": "force",
2341
2335
  "allowNo": false,
2342
2336
  "type": "boolean"
2337
+ },
2338
+ "disconnect": {
2339
+ "description": "Remove stored Asana credentials",
2340
+ "name": "disconnect",
2341
+ "allowNo": false,
2342
+ "type": "boolean"
2343
+ },
2344
+ "workspace": {
2345
+ "description": "Default workspace gid or name",
2346
+ "name": "workspace",
2347
+ "hasDynamicHelp": false,
2348
+ "multiple": false,
2349
+ "type": "option"
2343
2350
  }
2344
2351
  },
2345
2352
  "hasDynamicHelp": false,
2346
2353
  "hiddenAliases": [],
2347
- "id": "board",
2354
+ "id": "asana:connect",
2348
2355
  "pluginAlias": "@proletariat/cli",
2349
2356
  "pluginName": "@proletariat/cli",
2350
2357
  "pluginType": "core",
@@ -2353,18 +2360,20 @@
2353
2360
  "relativePath": [
2354
2361
  "dist",
2355
2362
  "commands",
2356
- "board",
2357
- "index.js"
2363
+ "asana",
2364
+ "connect.js"
2358
2365
  ]
2359
2366
  },
2360
- "board:view": {
2367
+ "asana:import": {
2361
2368
  "aliases": [],
2362
2369
  "args": {},
2363
- "description": "View the kanban board",
2370
+ "description": "Import Asana tasks into PMO as tickets",
2364
2371
  "examples": [
2365
- "<%= config.bin %> <%= command.id %>",
2366
- "<%= config.bin %> <%= command.id %> --compact",
2367
- "<%= config.bin %> <%= command.id %> --json"
2372
+ "<%= config.bin %> <%= command.id %> # Interactive: select tasks from project",
2373
+ "<%= config.bin %> <%= command.id %> --limit 50 # Import up to 50 tasks",
2374
+ "<%= config.bin %> <%= command.id %> --all # Import all matching tasks",
2375
+ "<%= config.bin %> <%= command.id %> --dry-run # Preview what would be imported",
2376
+ "<%= config.bin %> <%= command.id %> --json # JSON output for scripting"
2368
2377
  ],
2369
2378
  "flags": {
2370
2379
  "project": {
@@ -2388,17 +2397,32 @@
2388
2397
  "allowNo": false,
2389
2398
  "type": "boolean"
2390
2399
  },
2391
- "compact": {
2392
- "char": "c",
2393
- "description": "Show compact ticket view (ID and title only)",
2394
- "name": "compact",
2400
+ "limit": {
2401
+ "char": "n",
2402
+ "description": "Maximum number of tasks to import",
2403
+ "name": "limit",
2404
+ "default": 50,
2405
+ "hasDynamicHelp": false,
2406
+ "multiple": false,
2407
+ "type": "option"
2408
+ },
2409
+ "all": {
2410
+ "char": "a",
2411
+ "description": "Import all matching tasks without interactive selection",
2412
+ "name": "all",
2413
+ "allowNo": false,
2414
+ "type": "boolean"
2415
+ },
2416
+ "dry-run": {
2417
+ "description": "Preview tasks that would be imported without creating tickets",
2418
+ "name": "dry-run",
2395
2419
  "allowNo": false,
2396
2420
  "type": "boolean"
2397
2421
  }
2398
2422
  },
2399
2423
  "hasDynamicHelp": false,
2400
2424
  "hiddenAliases": [],
2401
- "id": "board:view",
2425
+ "id": "asana:import",
2402
2426
  "pluginAlias": "@proletariat/cli",
2403
2427
  "pluginName": "@proletariat/cli",
2404
2428
  "pluginType": "core",
@@ -2407,22 +2431,22 @@
2407
2431
  "relativePath": [
2408
2432
  "dist",
2409
2433
  "commands",
2410
- "board",
2411
- "view.js"
2434
+ "asana",
2435
+ "import.js"
2412
2436
  ]
2413
2437
  },
2414
- "board:watch": {
2438
+ "asana:sync": {
2415
2439
  "aliases": [],
2416
2440
  "args": {},
2417
- "description": "Watch board.md for changes and auto-sync to SQLite",
2441
+ "description": "Sync PMO tickets to Asana tasks",
2418
2442
  "examples": [
2419
- "<%= config.bin %> <%= command.id %>",
2420
- "<%= config.bin %> <%= command.id %> --debounce 1000"
2443
+ "<%= config.bin %> <%= command.id %> --ticket TKT-001 --task 123456789",
2444
+ "<%= config.bin %> <%= command.id %> --ticket TKT-001 --create-missing",
2445
+ "<%= config.bin %> <%= command.id %> --dry-run"
2421
2446
  ],
2422
2447
  "flags": {
2423
2448
  "project": {
2424
- "char": "P",
2425
- "description": "Project ID (uses first project if only one exists)",
2449
+ "description": "Asana project gid used with --create-missing",
2426
2450
  "name": "project",
2427
2451
  "hasDynamicHelp": false,
2428
2452
  "multiple": false,
@@ -2441,19 +2465,36 @@
2441
2465
  "allowNo": false,
2442
2466
  "type": "boolean"
2443
2467
  },
2444
- "debounce": {
2445
- "char": "d",
2446
- "description": "Debounce delay in milliseconds",
2447
- "name": "debounce",
2448
- "default": 500,
2468
+ "ticket": {
2469
+ "description": "PMO ticket ID to sync (syncs all mapped tickets if omitted)",
2470
+ "name": "ticket",
2449
2471
  "hasDynamicHelp": false,
2450
2472
  "multiple": false,
2451
2473
  "type": "option"
2474
+ },
2475
+ "task": {
2476
+ "description": "Asana task gid to map to --ticket",
2477
+ "name": "task",
2478
+ "hasDynamicHelp": false,
2479
+ "multiple": false,
2480
+ "type": "option"
2481
+ },
2482
+ "create-missing": {
2483
+ "description": "Create Asana task when no mapping exists (requires project)",
2484
+ "name": "create-missing",
2485
+ "allowNo": false,
2486
+ "type": "boolean"
2487
+ },
2488
+ "dry-run": {
2489
+ "description": "Preview sync operations without making changes",
2490
+ "name": "dry-run",
2491
+ "allowNo": false,
2492
+ "type": "boolean"
2452
2493
  }
2453
2494
  },
2454
2495
  "hasDynamicHelp": false,
2455
2496
  "hiddenAliases": [],
2456
- "id": "board:watch",
2497
+ "id": "asana:sync",
2457
2498
  "pluginAlias": "@proletariat/cli",
2458
2499
  "pluginName": "@proletariat/cli",
2459
2500
  "pluginType": "core",
@@ -2462,23 +2503,21 @@
2462
2503
  "relativePath": [
2463
2504
  "dist",
2464
2505
  "commands",
2465
- "board",
2466
- "watch.js"
2506
+ "asana",
2507
+ "sync.js"
2467
2508
  ]
2468
2509
  },
2469
- "asana:connect": {
2510
+ "board": {
2470
2511
  "aliases": [],
2471
2512
  "args": {},
2472
- "description": "Authenticate with Asana and configure workspace/project defaults",
2513
+ "description": "Interactive menu for board operations",
2473
2514
  "examples": [
2474
- "<%= config.bin %> <%= command.id %>",
2475
- "<%= config.bin %> <%= command.id %> --check",
2476
- "<%= config.bin %> <%= command.id %> --workspace \"Product Team\" --project \"Roadmap\"",
2477
- "ASANA_ACCESS_TOKEN=... <%= config.bin %> <%= command.id %>"
2515
+ "<%= config.bin %> <%= command.id %>"
2478
2516
  ],
2479
2517
  "flags": {
2480
2518
  "project": {
2481
- "description": "Default project gid or name",
2519
+ "char": "P",
2520
+ "description": "Project ID (uses first project if only one exists)",
2482
2521
  "name": "project",
2483
2522
  "hasDynamicHelp": false,
2484
2523
  "multiple": false,
@@ -2497,35 +2536,30 @@
2497
2536
  "allowNo": false,
2498
2537
  "type": "boolean"
2499
2538
  },
2500
- "check": {
2501
- "description": "Only check if Asana credentials exist (do not prompt)",
2502
- "name": "check",
2503
- "allowNo": false,
2504
- "type": "boolean"
2539
+ "action": {
2540
+ "description": "Action to execute directly (view, markdown, export, sync)",
2541
+ "name": "action",
2542
+ "hasDynamicHelp": false,
2543
+ "multiple": false,
2544
+ "options": [
2545
+ "view",
2546
+ "open",
2547
+ "markdown",
2548
+ "export",
2549
+ "sync"
2550
+ ],
2551
+ "type": "option"
2505
2552
  },
2506
2553
  "force": {
2507
- "description": "Force re-authentication even if credentials exist",
2554
+ "description": "Skip confirmation prompts",
2508
2555
  "name": "force",
2509
2556
  "allowNo": false,
2510
2557
  "type": "boolean"
2511
- },
2512
- "disconnect": {
2513
- "description": "Remove stored Asana credentials",
2514
- "name": "disconnect",
2515
- "allowNo": false,
2516
- "type": "boolean"
2517
- },
2518
- "workspace": {
2519
- "description": "Default workspace gid or name",
2520
- "name": "workspace",
2521
- "hasDynamicHelp": false,
2522
- "multiple": false,
2523
- "type": "option"
2524
2558
  }
2525
2559
  },
2526
2560
  "hasDynamicHelp": false,
2527
2561
  "hiddenAliases": [],
2528
- "id": "asana:connect",
2562
+ "id": "board",
2529
2563
  "pluginAlias": "@proletariat/cli",
2530
2564
  "pluginName": "@proletariat/cli",
2531
2565
  "pluginType": "core",
@@ -2534,20 +2568,18 @@
2534
2568
  "relativePath": [
2535
2569
  "dist",
2536
2570
  "commands",
2537
- "asana",
2538
- "connect.js"
2571
+ "board",
2572
+ "index.js"
2539
2573
  ]
2540
2574
  },
2541
- "asana:import": {
2575
+ "board:view": {
2542
2576
  "aliases": [],
2543
2577
  "args": {},
2544
- "description": "Import Asana tasks into PMO as tickets",
2578
+ "description": "View the kanban board",
2545
2579
  "examples": [
2546
- "<%= config.bin %> <%= command.id %> # Interactive: select tasks from project",
2547
- "<%= config.bin %> <%= command.id %> --limit 50 # Import up to 50 tasks",
2548
- "<%= config.bin %> <%= command.id %> --all # Import all matching tasks",
2549
- "<%= config.bin %> <%= command.id %> --dry-run # Preview what would be imported",
2550
- "<%= config.bin %> <%= command.id %> --json # JSON output for scripting"
2580
+ "<%= config.bin %> <%= command.id %>",
2581
+ "<%= config.bin %> <%= command.id %> --compact",
2582
+ "<%= config.bin %> <%= command.id %> --json"
2551
2583
  ],
2552
2584
  "flags": {
2553
2585
  "project": {
@@ -2571,32 +2603,17 @@
2571
2603
  "allowNo": false,
2572
2604
  "type": "boolean"
2573
2605
  },
2574
- "limit": {
2575
- "char": "n",
2576
- "description": "Maximum number of tasks to import",
2577
- "name": "limit",
2578
- "default": 50,
2579
- "hasDynamicHelp": false,
2580
- "multiple": false,
2581
- "type": "option"
2582
- },
2583
- "all": {
2584
- "char": "a",
2585
- "description": "Import all matching tasks without interactive selection",
2586
- "name": "all",
2587
- "allowNo": false,
2588
- "type": "boolean"
2589
- },
2590
- "dry-run": {
2591
- "description": "Preview tasks that would be imported without creating tickets",
2592
- "name": "dry-run",
2606
+ "compact": {
2607
+ "char": "c",
2608
+ "description": "Show compact ticket view (ID and title only)",
2609
+ "name": "compact",
2593
2610
  "allowNo": false,
2594
2611
  "type": "boolean"
2595
2612
  }
2596
2613
  },
2597
2614
  "hasDynamicHelp": false,
2598
2615
  "hiddenAliases": [],
2599
- "id": "asana:import",
2616
+ "id": "board:view",
2600
2617
  "pluginAlias": "@proletariat/cli",
2601
2618
  "pluginName": "@proletariat/cli",
2602
2619
  "pluginType": "core",
@@ -2605,22 +2622,22 @@
2605
2622
  "relativePath": [
2606
2623
  "dist",
2607
2624
  "commands",
2608
- "asana",
2609
- "import.js"
2625
+ "board",
2626
+ "view.js"
2610
2627
  ]
2611
2628
  },
2612
- "asana:sync": {
2629
+ "board:watch": {
2613
2630
  "aliases": [],
2614
2631
  "args": {},
2615
- "description": "Sync PMO tickets to Asana tasks",
2632
+ "description": "Watch board.md for changes and auto-sync to SQLite",
2616
2633
  "examples": [
2617
- "<%= config.bin %> <%= command.id %> --ticket TKT-001 --task 123456789",
2618
- "<%= config.bin %> <%= command.id %> --ticket TKT-001 --create-missing",
2619
- "<%= config.bin %> <%= command.id %> --dry-run"
2634
+ "<%= config.bin %> <%= command.id %>",
2635
+ "<%= config.bin %> <%= command.id %> --debounce 1000"
2620
2636
  ],
2621
2637
  "flags": {
2622
2638
  "project": {
2623
- "description": "Asana project gid used with --create-missing",
2639
+ "char": "P",
2640
+ "description": "Project ID (uses first project if only one exists)",
2624
2641
  "name": "project",
2625
2642
  "hasDynamicHelp": false,
2626
2643
  "multiple": false,
@@ -2639,36 +2656,19 @@
2639
2656
  "allowNo": false,
2640
2657
  "type": "boolean"
2641
2658
  },
2642
- "ticket": {
2643
- "description": "PMO ticket ID to sync (syncs all mapped tickets if omitted)",
2644
- "name": "ticket",
2645
- "hasDynamicHelp": false,
2646
- "multiple": false,
2647
- "type": "option"
2648
- },
2649
- "task": {
2650
- "description": "Asana task gid to map to --ticket",
2651
- "name": "task",
2659
+ "debounce": {
2660
+ "char": "d",
2661
+ "description": "Debounce delay in milliseconds",
2662
+ "name": "debounce",
2663
+ "default": 500,
2652
2664
  "hasDynamicHelp": false,
2653
2665
  "multiple": false,
2654
2666
  "type": "option"
2655
- },
2656
- "create-missing": {
2657
- "description": "Create Asana task when no mapping exists (requires project)",
2658
- "name": "create-missing",
2659
- "allowNo": false,
2660
- "type": "boolean"
2661
- },
2662
- "dry-run": {
2663
- "description": "Preview sync operations without making changes",
2664
- "name": "dry-run",
2665
- "allowNo": false,
2666
- "type": "boolean"
2667
2667
  }
2668
2668
  },
2669
2669
  "hasDynamicHelp": false,
2670
2670
  "hiddenAliases": [],
2671
- "id": "asana:sync",
2671
+ "id": "board:watch",
2672
2672
  "pluginAlias": "@proletariat/cli",
2673
2673
  "pluginName": "@proletariat/cli",
2674
2674
  "pluginType": "core",
@@ -2677,8 +2677,8 @@
2677
2677
  "relativePath": [
2678
2678
  "dist",
2679
2679
  "commands",
2680
- "asana",
2681
- "sync.js"
2680
+ "board",
2681
+ "watch.js"
2682
2682
  ]
2683
2683
  },
2684
2684
  "branch:create": {
@@ -3509,6 +3509,7 @@
3509
3509
  "<%= config.bin %> <%= command.id %> --set terminal.app iTerm",
3510
3510
  "<%= config.bin %> <%= command.id %> --set terminal.openInBackground true",
3511
3511
  "<%= config.bin %> <%= command.id %> --set firewall.allowlistDomains \"api.staging.example.com\"",
3512
+ "<%= config.bin %> <%= command.id %> --set review_gate auto # Set workspace review gate to auto",
3512
3513
  "<%= config.bin %> <%= command.id %> --setting terminal.app --json # Show terminal app choices"
3513
3514
  ],
3514
3515
  "flags": {
@@ -4602,13 +4603,15 @@
4602
4603
  "sync.js"
4603
4604
  ]
4604
4605
  },
4605
- "feedback": {
4606
+ "gh": {
4606
4607
  "aliases": [],
4607
4608
  "args": {},
4608
- "description": "Interactive menu for feedback and issue operations",
4609
+ "description": "GitHub CLI setup and status for PR workflow",
4609
4610
  "examples": [
4610
4611
  "<%= config.bin %> <%= command.id %>",
4611
- "<%= config.bin %> <%= command.id %> --action submit"
4612
+ "<%= config.bin %> <%= command.id %> status",
4613
+ "<%= config.bin %> <%= command.id %> login",
4614
+ "<%= config.bin %> <%= command.id %> token"
4612
4615
  ],
4613
4616
  "flags": {
4614
4617
  "json": {
@@ -4623,24 +4626,11 @@
4623
4626
  "name": "machine",
4624
4627
  "allowNo": false,
4625
4628
  "type": "boolean"
4626
- },
4627
- "action": {
4628
- "char": "a",
4629
- "description": "Action to perform (submit, list, view)",
4630
- "name": "action",
4631
- "hasDynamicHelp": false,
4632
- "multiple": false,
4633
- "options": [
4634
- "submit",
4635
- "list",
4636
- "view"
4637
- ],
4638
- "type": "option"
4639
4629
  }
4640
4630
  },
4641
4631
  "hasDynamicHelp": false,
4642
4632
  "hiddenAliases": [],
4643
- "id": "feedback",
4633
+ "id": "gh",
4644
4634
  "pluginAlias": "@proletariat/cli",
4645
4635
  "pluginName": "@proletariat/cli",
4646
4636
  "pluginType": "core",
@@ -4650,19 +4640,16 @@
4650
4640
  "relativePath": [
4651
4641
  "dist",
4652
4642
  "commands",
4653
- "feedback",
4643
+ "gh",
4654
4644
  "index.js"
4655
4645
  ]
4656
4646
  },
4657
- "feedback:list": {
4647
+ "gh:login": {
4658
4648
  "aliases": [],
4659
4649
  "args": {},
4660
- "description": "List recent feedback issues from the repository",
4650
+ "description": "Login to GitHub CLI for PR workflow",
4661
4651
  "examples": [
4662
- "<%= config.bin %> <%= command.id %>",
4663
- "<%= config.bin %> <%= command.id %> --category bug",
4664
- "<%= config.bin %> <%= command.id %> --state closed --limit 10",
4665
- "<%= config.bin %> <%= command.id %> --json"
4652
+ "<%= config.bin %> <%= command.id %>"
4666
4653
  ],
4667
4654
  "flags": {
4668
4655
  "json": {
@@ -4677,47 +4664,11 @@
4677
4664
  "name": "machine",
4678
4665
  "allowNo": false,
4679
4666
  "type": "boolean"
4680
- },
4681
- "category": {
4682
- "char": "c",
4683
- "description": "Filter by category (bug, feature, general)",
4684
- "name": "category",
4685
- "hasDynamicHelp": false,
4686
- "multiple": false,
4687
- "options": [
4688
- "bug",
4689
- "feature",
4690
- "general"
4691
- ],
4692
- "type": "option"
4693
- },
4694
- "state": {
4695
- "char": "s",
4696
- "description": "Filter by state",
4697
- "name": "state",
4698
- "default": "open",
4699
- "hasDynamicHelp": false,
4700
- "multiple": false,
4701
- "options": [
4702
- "open",
4703
- "closed",
4704
- "all"
4705
- ],
4706
- "type": "option"
4707
- },
4708
- "limit": {
4709
- "char": "l",
4710
- "description": "Maximum number of issues to show",
4711
- "name": "limit",
4712
- "default": 20,
4713
- "hasDynamicHelp": false,
4714
- "multiple": false,
4715
- "type": "option"
4716
4667
  }
4717
4668
  },
4718
4669
  "hasDynamicHelp": false,
4719
4670
  "hiddenAliases": [],
4720
- "id": "feedback:list",
4671
+ "id": "gh:login",
4721
4672
  "pluginAlias": "@proletariat/cli",
4722
4673
  "pluginName": "@proletariat/cli",
4723
4674
  "pluginType": "core",
@@ -4727,18 +4678,16 @@
4727
4678
  "relativePath": [
4728
4679
  "dist",
4729
4680
  "commands",
4730
- "feedback",
4731
- "list.js"
4681
+ "gh",
4682
+ "login.js"
4732
4683
  ]
4733
4684
  },
4734
- "feedback:submit": {
4685
+ "gh:status": {
4735
4686
  "aliases": [],
4736
4687
  "args": {},
4737
- "description": "Submit feedback, bug reports, or feature requests to GitHub Issues",
4688
+ "description": "Check GitHub CLI status for PR workflow",
4738
4689
  "examples": [
4739
- "<%= config.bin %> <%= command.id %>",
4740
- "<%= config.bin %> <%= command.id %> --title \"Bug in CLI\" --body \"Description here\" --category bug",
4741
- "<%= config.bin %> <%= command.id %> --json"
4690
+ "<%= config.bin %> <%= command.id %>"
4742
4691
  ],
4743
4692
  "flags": {
4744
4693
  "json": {
@@ -4753,65 +4702,30 @@
4753
4702
  "name": "machine",
4754
4703
  "allowNo": false,
4755
4704
  "type": "boolean"
4756
- },
4757
- "title": {
4758
- "char": "t",
4759
- "description": "Issue title (one-liner) [required for non-interactive]",
4760
- "name": "title",
4761
- "hasDynamicHelp": false,
4762
- "multiple": false,
4763
- "type": "option"
4764
- },
4765
- "body": {
4766
- "char": "b",
4767
- "description": "Issue description [required for non-interactive]",
4768
- "name": "body",
4769
- "hasDynamicHelp": false,
4770
- "multiple": false,
4771
- "type": "option"
4772
- },
4773
- "category": {
4774
- "char": "c",
4775
- "description": "Feedback category",
4776
- "name": "category",
4777
- "hasDynamicHelp": false,
4778
- "multiple": false,
4779
- "options": [
4780
- "bug",
4781
- "feature",
4782
- "general"
4783
- ],
4784
- "type": "option"
4785
4705
  }
4786
4706
  },
4787
4707
  "hasDynamicHelp": false,
4788
4708
  "hiddenAliases": [],
4789
- "id": "feedback:submit",
4709
+ "id": "gh:status",
4790
4710
  "pluginAlias": "@proletariat/cli",
4791
4711
  "pluginName": "@proletariat/cli",
4792
4712
  "pluginType": "core",
4793
4713
  "strict": true,
4714
+ "enableJsonFlag": false,
4794
4715
  "isESM": true,
4795
4716
  "relativePath": [
4796
4717
  "dist",
4797
4718
  "commands",
4798
- "feedback",
4799
- "submit.js"
4719
+ "gh",
4720
+ "status.js"
4800
4721
  ]
4801
4722
  },
4802
- "feedback:view": {
4723
+ "gh:token": {
4803
4724
  "aliases": [],
4804
- "args": {
4805
- "number": {
4806
- "description": "Issue number to view",
4807
- "name": "number",
4808
- "required": true
4809
- }
4810
- },
4811
- "description": "View details of a specific feedback issue",
4725
+ "args": {},
4726
+ "description": "Show GH_TOKEN setup for devcontainer PR creation",
4812
4727
  "examples": [
4813
- "<%= config.bin %> <%= command.id %> 123",
4814
- "<%= config.bin %> <%= command.id %> 123 --json"
4728
+ "<%= config.bin %> <%= command.id %>"
4815
4729
  ],
4816
4730
  "flags": {
4817
4731
  "json": {
@@ -4830,7 +4744,7 @@
4830
4744
  },
4831
4745
  "hasDynamicHelp": false,
4832
4746
  "hiddenAliases": [],
4833
- "id": "feedback:view",
4747
+ "id": "gh:token",
4834
4748
  "pluginAlias": "@proletariat/cli",
4835
4749
  "pluginName": "@proletariat/cli",
4836
4750
  "pluginType": "core",
@@ -4840,19 +4754,17 @@
4840
4754
  "relativePath": [
4841
4755
  "dist",
4842
4756
  "commands",
4843
- "feedback",
4844
- "view.js"
4757
+ "gh",
4758
+ "token.js"
4845
4759
  ]
4846
4760
  },
4847
- "gh": {
4761
+ "feedback": {
4848
4762
  "aliases": [],
4849
4763
  "args": {},
4850
- "description": "GitHub CLI setup and status for PR workflow",
4764
+ "description": "Interactive menu for feedback and issue operations",
4851
4765
  "examples": [
4852
4766
  "<%= config.bin %> <%= command.id %>",
4853
- "<%= config.bin %> <%= command.id %> status",
4854
- "<%= config.bin %> <%= command.id %> login",
4855
- "<%= config.bin %> <%= command.id %> token"
4767
+ "<%= config.bin %> <%= command.id %> --action submit"
4856
4768
  ],
4857
4769
  "flags": {
4858
4770
  "json": {
@@ -4867,11 +4779,24 @@
4867
4779
  "name": "machine",
4868
4780
  "allowNo": false,
4869
4781
  "type": "boolean"
4782
+ },
4783
+ "action": {
4784
+ "char": "a",
4785
+ "description": "Action to perform (submit, list, view)",
4786
+ "name": "action",
4787
+ "hasDynamicHelp": false,
4788
+ "multiple": false,
4789
+ "options": [
4790
+ "submit",
4791
+ "list",
4792
+ "view"
4793
+ ],
4794
+ "type": "option"
4870
4795
  }
4871
4796
  },
4872
4797
  "hasDynamicHelp": false,
4873
4798
  "hiddenAliases": [],
4874
- "id": "gh",
4799
+ "id": "feedback",
4875
4800
  "pluginAlias": "@proletariat/cli",
4876
4801
  "pluginName": "@proletariat/cli",
4877
4802
  "pluginType": "core",
@@ -4881,16 +4806,19 @@
4881
4806
  "relativePath": [
4882
4807
  "dist",
4883
4808
  "commands",
4884
- "gh",
4809
+ "feedback",
4885
4810
  "index.js"
4886
4811
  ]
4887
4812
  },
4888
- "gh:login": {
4813
+ "feedback:list": {
4889
4814
  "aliases": [],
4890
4815
  "args": {},
4891
- "description": "Login to GitHub CLI for PR workflow",
4816
+ "description": "List recent feedback issues from the repository",
4892
4817
  "examples": [
4893
- "<%= config.bin %> <%= command.id %>"
4818
+ "<%= config.bin %> <%= command.id %>",
4819
+ "<%= config.bin %> <%= command.id %> --category bug",
4820
+ "<%= config.bin %> <%= command.id %> --state closed --limit 10",
4821
+ "<%= config.bin %> <%= command.id %> --json"
4894
4822
  ],
4895
4823
  "flags": {
4896
4824
  "json": {
@@ -4905,11 +4833,47 @@
4905
4833
  "name": "machine",
4906
4834
  "allowNo": false,
4907
4835
  "type": "boolean"
4836
+ },
4837
+ "category": {
4838
+ "char": "c",
4839
+ "description": "Filter by category (bug, feature, general)",
4840
+ "name": "category",
4841
+ "hasDynamicHelp": false,
4842
+ "multiple": false,
4843
+ "options": [
4844
+ "bug",
4845
+ "feature",
4846
+ "general"
4847
+ ],
4848
+ "type": "option"
4849
+ },
4850
+ "state": {
4851
+ "char": "s",
4852
+ "description": "Filter by state",
4853
+ "name": "state",
4854
+ "default": "open",
4855
+ "hasDynamicHelp": false,
4856
+ "multiple": false,
4857
+ "options": [
4858
+ "open",
4859
+ "closed",
4860
+ "all"
4861
+ ],
4862
+ "type": "option"
4863
+ },
4864
+ "limit": {
4865
+ "char": "l",
4866
+ "description": "Maximum number of issues to show",
4867
+ "name": "limit",
4868
+ "default": 20,
4869
+ "hasDynamicHelp": false,
4870
+ "multiple": false,
4871
+ "type": "option"
4908
4872
  }
4909
4873
  },
4910
4874
  "hasDynamicHelp": false,
4911
4875
  "hiddenAliases": [],
4912
- "id": "gh:login",
4876
+ "id": "feedback:list",
4913
4877
  "pluginAlias": "@proletariat/cli",
4914
4878
  "pluginName": "@proletariat/cli",
4915
4879
  "pluginType": "core",
@@ -4919,16 +4883,18 @@
4919
4883
  "relativePath": [
4920
4884
  "dist",
4921
4885
  "commands",
4922
- "gh",
4923
- "login.js"
4886
+ "feedback",
4887
+ "list.js"
4924
4888
  ]
4925
4889
  },
4926
- "gh:status": {
4890
+ "feedback:submit": {
4927
4891
  "aliases": [],
4928
4892
  "args": {},
4929
- "description": "Check GitHub CLI status for PR workflow",
4893
+ "description": "Submit feedback, bug reports, or feature requests to GitHub Issues",
4930
4894
  "examples": [
4931
- "<%= config.bin %> <%= command.id %>"
4895
+ "<%= config.bin %> <%= command.id %>",
4896
+ "<%= config.bin %> <%= command.id %> --title \"Bug in CLI\" --body \"Description here\" --category bug",
4897
+ "<%= config.bin %> <%= command.id %> --json"
4932
4898
  ],
4933
4899
  "flags": {
4934
4900
  "json": {
@@ -4943,30 +4909,65 @@
4943
4909
  "name": "machine",
4944
4910
  "allowNo": false,
4945
4911
  "type": "boolean"
4912
+ },
4913
+ "title": {
4914
+ "char": "t",
4915
+ "description": "Issue title (one-liner) [required for non-interactive]",
4916
+ "name": "title",
4917
+ "hasDynamicHelp": false,
4918
+ "multiple": false,
4919
+ "type": "option"
4920
+ },
4921
+ "body": {
4922
+ "char": "b",
4923
+ "description": "Issue description [required for non-interactive]",
4924
+ "name": "body",
4925
+ "hasDynamicHelp": false,
4926
+ "multiple": false,
4927
+ "type": "option"
4928
+ },
4929
+ "category": {
4930
+ "char": "c",
4931
+ "description": "Feedback category",
4932
+ "name": "category",
4933
+ "hasDynamicHelp": false,
4934
+ "multiple": false,
4935
+ "options": [
4936
+ "bug",
4937
+ "feature",
4938
+ "general"
4939
+ ],
4940
+ "type": "option"
4946
4941
  }
4947
4942
  },
4948
4943
  "hasDynamicHelp": false,
4949
4944
  "hiddenAliases": [],
4950
- "id": "gh:status",
4945
+ "id": "feedback:submit",
4951
4946
  "pluginAlias": "@proletariat/cli",
4952
4947
  "pluginName": "@proletariat/cli",
4953
4948
  "pluginType": "core",
4954
4949
  "strict": true,
4955
- "enableJsonFlag": false,
4956
4950
  "isESM": true,
4957
4951
  "relativePath": [
4958
4952
  "dist",
4959
4953
  "commands",
4960
- "gh",
4961
- "status.js"
4954
+ "feedback",
4955
+ "submit.js"
4962
4956
  ]
4963
4957
  },
4964
- "gh:token": {
4958
+ "feedback:view": {
4965
4959
  "aliases": [],
4966
- "args": {},
4967
- "description": "Show GH_TOKEN setup for devcontainer PR creation",
4960
+ "args": {
4961
+ "number": {
4962
+ "description": "Issue number to view",
4963
+ "name": "number",
4964
+ "required": true
4965
+ }
4966
+ },
4967
+ "description": "View details of a specific feedback issue",
4968
4968
  "examples": [
4969
- "<%= config.bin %> <%= command.id %>"
4969
+ "<%= config.bin %> <%= command.id %> 123",
4970
+ "<%= config.bin %> <%= command.id %> 123 --json"
4970
4971
  ],
4971
4972
  "flags": {
4972
4973
  "json": {
@@ -4985,7 +4986,7 @@
4985
4986
  },
4986
4987
  "hasDynamicHelp": false,
4987
4988
  "hiddenAliases": [],
4988
- "id": "gh:token",
4989
+ "id": "feedback:view",
4989
4990
  "pluginAlias": "@proletariat/cli",
4990
4991
  "pluginName": "@proletariat/cli",
4991
4992
  "pluginType": "core",
@@ -4995,8 +4996,8 @@
4995
4996
  "relativePath": [
4996
4997
  "dist",
4997
4998
  "commands",
4998
- "gh",
4999
- "token.js"
4999
+ "feedback",
5000
+ "view.js"
5000
5001
  ]
5001
5002
  },
5002
5003
  "linear:auth": {
@@ -7233,6 +7234,99 @@
7233
7234
  "index.js"
7234
7235
  ]
7235
7236
  },
7237
+ "run": {
7238
+ "aliases": [],
7239
+ "args": {
7240
+ "task": {
7241
+ "description": "Task description for the agent",
7242
+ "name": "task",
7243
+ "required": true
7244
+ }
7245
+ },
7246
+ "description": "Spawn an agent to work on a task (works anywhere, no HQ required)",
7247
+ "examples": [
7248
+ "<%= config.bin %> run \"fix the login bug\"",
7249
+ "<%= config.bin %> run --runner claude-code \"add dark mode\"",
7250
+ "<%= config.bin %> run -d \"fix the bug\"",
7251
+ "<%= config.bin %> run --runner codex \"add tests\""
7252
+ ],
7253
+ "flags": {
7254
+ "json": {
7255
+ "description": "Output as JSON for AI agents/scripts",
7256
+ "name": "json",
7257
+ "allowNo": false,
7258
+ "type": "boolean"
7259
+ },
7260
+ "machine": {
7261
+ "char": "m",
7262
+ "description": "Output as JSON for AI agents/scripts",
7263
+ "name": "machine",
7264
+ "allowNo": false,
7265
+ "type": "boolean"
7266
+ },
7267
+ "runner": {
7268
+ "char": "r",
7269
+ "description": "Runner to use (claude-code, codex, pi)",
7270
+ "name": "runner",
7271
+ "hasDynamicHelp": false,
7272
+ "multiple": false,
7273
+ "type": "option"
7274
+ },
7275
+ "detached": {
7276
+ "char": "d",
7277
+ "description": "Run in background (detached)",
7278
+ "name": "detached",
7279
+ "allowNo": false,
7280
+ "type": "boolean"
7281
+ },
7282
+ "directory": {
7283
+ "description": "Working directory (default: cwd)",
7284
+ "name": "directory",
7285
+ "hasDynamicHelp": false,
7286
+ "multiple": false,
7287
+ "type": "option"
7288
+ },
7289
+ "permission-mode": {
7290
+ "char": "p",
7291
+ "description": "Permission mode (danger: skip prompts, safe: require approval)",
7292
+ "name": "permission-mode",
7293
+ "hasDynamicHelp": false,
7294
+ "multiple": false,
7295
+ "options": [
7296
+ "danger",
7297
+ "safe"
7298
+ ],
7299
+ "type": "option"
7300
+ },
7301
+ "environment": {
7302
+ "char": "e",
7303
+ "description": "Environment to run in",
7304
+ "name": "environment",
7305
+ "hasDynamicHelp": false,
7306
+ "multiple": false,
7307
+ "options": [
7308
+ "host",
7309
+ "docker",
7310
+ "podman"
7311
+ ],
7312
+ "type": "option"
7313
+ }
7314
+ },
7315
+ "hasDynamicHelp": false,
7316
+ "hiddenAliases": [],
7317
+ "id": "run",
7318
+ "pluginAlias": "@proletariat/cli",
7319
+ "pluginName": "@proletariat/cli",
7320
+ "pluginType": "core",
7321
+ "strict": true,
7322
+ "isESM": true,
7323
+ "relativePath": [
7324
+ "dist",
7325
+ "commands",
7326
+ "run",
7327
+ "index.js"
7328
+ ]
7329
+ },
7236
7330
  "repo:add": {
7237
7331
  "aliases": [],
7238
7332
  "args": {
@@ -7630,71 +7724,25 @@
7630
7724
  "aliases": [],
7631
7725
  "args": {
7632
7726
  "name": {
7633
- "description": "Repository name to view",
7634
- "name": "name",
7635
- "required": false
7636
- }
7637
- },
7638
- "description": "View detailed information about a repository",
7639
- "examples": [
7640
- "<%= config.bin %> <%= command.id %> my-repo",
7641
- "<%= config.bin %> <%= command.id %>"
7642
- ],
7643
- "flags": {
7644
- "project": {
7645
- "char": "P",
7646
- "description": "Project ID (uses first project if only one exists)",
7647
- "name": "project",
7648
- "hasDynamicHelp": false,
7649
- "multiple": false,
7650
- "type": "option"
7651
- },
7652
- "json": {
7653
- "description": "Output as JSON for AI agents/scripts",
7654
- "name": "json",
7655
- "allowNo": false,
7656
- "type": "boolean"
7657
- },
7658
- "machine": {
7659
- "char": "m",
7660
- "description": "Output as JSON for AI agents/scripts",
7661
- "name": "machine",
7662
- "allowNo": false,
7663
- "type": "boolean"
7664
- }
7665
- },
7666
- "hasDynamicHelp": false,
7667
- "hiddenAliases": [],
7668
- "id": "repo:view",
7669
- "pluginAlias": "@proletariat/cli",
7670
- "pluginName": "@proletariat/cli",
7671
- "pluginType": "core",
7672
- "strict": true,
7673
- "isESM": true,
7674
- "relativePath": [
7675
- "dist",
7676
- "commands",
7677
- "repo",
7678
- "view.js"
7679
- ]
7680
- },
7681
- "run": {
7682
- "aliases": [],
7683
- "args": {
7684
- "task": {
7685
- "description": "Task description for the agent",
7686
- "name": "task",
7687
- "required": true
7727
+ "description": "Repository name to view",
7728
+ "name": "name",
7729
+ "required": false
7688
7730
  }
7689
7731
  },
7690
- "description": "Spawn an agent to work on a task (works anywhere, no HQ required)",
7732
+ "description": "View detailed information about a repository",
7691
7733
  "examples": [
7692
- "<%= config.bin %> run \"fix the login bug\"",
7693
- "<%= config.bin %> run --runner claude-code \"add dark mode\"",
7694
- "<%= config.bin %> run -d \"fix the bug\"",
7695
- "<%= config.bin %> run --runner codex \"add tests\""
7734
+ "<%= config.bin %> <%= command.id %> my-repo",
7735
+ "<%= config.bin %> <%= command.id %>"
7696
7736
  ],
7697
7737
  "flags": {
7738
+ "project": {
7739
+ "char": "P",
7740
+ "description": "Project ID (uses first project if only one exists)",
7741
+ "name": "project",
7742
+ "hasDynamicHelp": false,
7743
+ "multiple": false,
7744
+ "type": "option"
7745
+ },
7698
7746
  "json": {
7699
7747
  "description": "Output as JSON for AI agents/scripts",
7700
7748
  "name": "json",
@@ -7707,58 +7755,11 @@
7707
7755
  "name": "machine",
7708
7756
  "allowNo": false,
7709
7757
  "type": "boolean"
7710
- },
7711
- "runner": {
7712
- "char": "r",
7713
- "description": "Runner to use (claude-code, codex, pi)",
7714
- "name": "runner",
7715
- "hasDynamicHelp": false,
7716
- "multiple": false,
7717
- "type": "option"
7718
- },
7719
- "detached": {
7720
- "char": "d",
7721
- "description": "Run in background (detached)",
7722
- "name": "detached",
7723
- "allowNo": false,
7724
- "type": "boolean"
7725
- },
7726
- "directory": {
7727
- "description": "Working directory (default: cwd)",
7728
- "name": "directory",
7729
- "hasDynamicHelp": false,
7730
- "multiple": false,
7731
- "type": "option"
7732
- },
7733
- "permission-mode": {
7734
- "char": "p",
7735
- "description": "Permission mode (danger: skip prompts, safe: require approval)",
7736
- "name": "permission-mode",
7737
- "hasDynamicHelp": false,
7738
- "multiple": false,
7739
- "options": [
7740
- "danger",
7741
- "safe"
7742
- ],
7743
- "type": "option"
7744
- },
7745
- "environment": {
7746
- "char": "e",
7747
- "description": "Environment to run in",
7748
- "name": "environment",
7749
- "hasDynamicHelp": false,
7750
- "multiple": false,
7751
- "options": [
7752
- "host",
7753
- "docker",
7754
- "podman"
7755
- ],
7756
- "type": "option"
7757
7758
  }
7758
7759
  },
7759
7760
  "hasDynamicHelp": false,
7760
7761
  "hiddenAliases": [],
7761
- "id": "run",
7762
+ "id": "repo:view",
7762
7763
  "pluginAlias": "@proletariat/cli",
7763
7764
  "pluginName": "@proletariat/cli",
7764
7765
  "pluginType": "core",
@@ -7767,8 +7768,8 @@
7767
7768
  "relativePath": [
7768
7769
  "dist",
7769
7770
  "commands",
7770
- "run",
7771
- "index.js"
7771
+ "repo",
7772
+ "view.js"
7772
7773
  ]
7773
7774
  },
7774
7775
  "shortcut:connect": {
@@ -7922,7 +7923,8 @@
7922
7923
  "examples": [
7923
7924
  "<%= config.bin %> session cleanup",
7924
7925
  "<%= config.bin %> session cleanup --dry-run",
7925
- "<%= config.bin %> session cleanup --force"
7926
+ "<%= config.bin %> session cleanup --force",
7927
+ "<%= config.bin %> session cleanup --force --yes"
7926
7928
  ],
7927
7929
  "flags": {
7928
7930
  "project": {
@@ -7959,6 +7961,13 @@
7959
7961
  "name": "force",
7960
7962
  "allowNo": false,
7961
7963
  "type": "boolean"
7964
+ },
7965
+ "yes": {
7966
+ "char": "y",
7967
+ "description": "Skip confirmation prompt when using --force",
7968
+ "name": "yes",
7969
+ "allowNo": false,
7970
+ "type": "boolean"
7962
7971
  }
7963
7972
  },
7964
7973
  "hasDynamicHelp": false,
@@ -8475,14 +8484,6 @@
8475
8484
  "echo \"multi-line message\" | <%= config.bin %> session poke altman -"
8476
8485
  ],
8477
8486
  "flags": {
8478
- "project": {
8479
- "char": "P",
8480
- "description": "Project ID (uses first project if only one exists)",
8481
- "name": "project",
8482
- "hasDynamicHelp": false,
8483
- "multiple": false,
8484
- "type": "option"
8485
- },
8486
8487
  "json": {
8487
8488
  "description": "Output as JSON for AI agents/scripts",
8488
8489
  "name": "json",
@@ -8612,6 +8613,75 @@
8612
8613
  "prune.js"
8613
8614
  ]
8614
8615
  },
8616
+ "session:report": {
8617
+ "aliases": [],
8618
+ "args": {},
8619
+ "description": "Report agent session lifecycle events and trigger cleanup",
8620
+ "examples": [
8621
+ "<%= config.bin %> session report --agent bold-turing --status exited",
8622
+ "<%= config.bin %> session report --agent bold-turing --status completed",
8623
+ "<%= config.bin %> session report --agent bold-turing --status errored"
8624
+ ],
8625
+ "flags": {
8626
+ "project": {
8627
+ "char": "P",
8628
+ "description": "Project ID (uses first project if only one exists)",
8629
+ "name": "project",
8630
+ "hasDynamicHelp": false,
8631
+ "multiple": false,
8632
+ "type": "option"
8633
+ },
8634
+ "json": {
8635
+ "description": "Output as JSON for AI agents/scripts",
8636
+ "name": "json",
8637
+ "allowNo": false,
8638
+ "type": "boolean"
8639
+ },
8640
+ "machine": {
8641
+ "char": "m",
8642
+ "description": "Output as JSON for AI agents/scripts",
8643
+ "name": "machine",
8644
+ "allowNo": false,
8645
+ "type": "boolean"
8646
+ },
8647
+ "agent": {
8648
+ "description": "Agent name",
8649
+ "name": "agent",
8650
+ "required": true,
8651
+ "hasDynamicHelp": false,
8652
+ "multiple": false,
8653
+ "type": "option"
8654
+ },
8655
+ "status": {
8656
+ "description": "Session status (started, completed, errored, exited)",
8657
+ "name": "status",
8658
+ "required": true,
8659
+ "hasDynamicHelp": false,
8660
+ "multiple": false,
8661
+ "options": [
8662
+ "started",
8663
+ "completed",
8664
+ "errored",
8665
+ "exited"
8666
+ ],
8667
+ "type": "option"
8668
+ }
8669
+ },
8670
+ "hasDynamicHelp": false,
8671
+ "hiddenAliases": [],
8672
+ "id": "session:report",
8673
+ "pluginAlias": "@proletariat/cli",
8674
+ "pluginName": "@proletariat/cli",
8675
+ "pluginType": "core",
8676
+ "strict": true,
8677
+ "isESM": true,
8678
+ "relativePath": [
8679
+ "dist",
8680
+ "commands",
8681
+ "session",
8682
+ "report.js"
8683
+ ]
8684
+ },
8615
8685
  "session:restart": {
8616
8686
  "aliases": [],
8617
8687
  "args": {
@@ -9885,6 +9955,58 @@
9885
9955
  "sync.js"
9886
9956
  ]
9887
9957
  },
9958
+ "version:bump": {
9959
+ "aliases": [],
9960
+ "args": {
9961
+ "type": {
9962
+ "description": "Version bump type",
9963
+ "name": "type",
9964
+ "options": [
9965
+ "major",
9966
+ "minor",
9967
+ "patch"
9968
+ ],
9969
+ "required": true
9970
+ }
9971
+ },
9972
+ "description": "Bump the CLI version (major, minor, or patch), commit, push, and create a PR",
9973
+ "examples": [
9974
+ "<%= config.bin %> version bump patch",
9975
+ "<%= config.bin %> version bump minor",
9976
+ "<%= config.bin %> version bump major",
9977
+ "<%= config.bin %> version bump patch --json"
9978
+ ],
9979
+ "flags": {
9980
+ "json": {
9981
+ "description": "Output as JSON for AI agents/scripts",
9982
+ "name": "json",
9983
+ "allowNo": false,
9984
+ "type": "boolean"
9985
+ },
9986
+ "machine": {
9987
+ "char": "m",
9988
+ "description": "Output as JSON for AI agents/scripts",
9989
+ "name": "machine",
9990
+ "allowNo": false,
9991
+ "type": "boolean"
9992
+ }
9993
+ },
9994
+ "hasDynamicHelp": false,
9995
+ "hiddenAliases": [],
9996
+ "id": "version:bump",
9997
+ "pluginAlias": "@proletariat/cli",
9998
+ "pluginName": "@proletariat/cli",
9999
+ "pluginType": "core",
10000
+ "strict": true,
10001
+ "enableJsonFlag": false,
10002
+ "isESM": true,
10003
+ "relativePath": [
10004
+ "dist",
10005
+ "commands",
10006
+ "version",
10007
+ "bump.js"
10008
+ ]
10009
+ },
9888
10010
  "ticket:bulk": {
9889
10011
  "aliases": [],
9890
10012
  "args": {},
@@ -11456,68 +11578,17 @@
11456
11578
  "description": "View detailed ticket information",
11457
11579
  "examples": [
11458
11580
  "<%= config.bin %> <%= command.id %> TICK-001",
11459
- "<%= config.bin %> <%= command.id %> # Interactive mode"
11460
- ],
11461
- "flags": {
11462
- "project": {
11463
- "char": "P",
11464
- "description": "Project ID (uses first project if only one exists)",
11465
- "name": "project",
11466
- "hasDynamicHelp": false,
11467
- "multiple": false,
11468
- "type": "option"
11469
- },
11470
- "json": {
11471
- "description": "Output as JSON for AI agents/scripts",
11472
- "name": "json",
11473
- "allowNo": false,
11474
- "type": "boolean"
11475
- },
11476
- "machine": {
11477
- "char": "m",
11478
- "description": "Output as JSON for AI agents/scripts",
11479
- "name": "machine",
11480
- "allowNo": false,
11481
- "type": "boolean"
11482
- }
11483
- },
11484
- "hasDynamicHelp": false,
11485
- "hiddenAliases": [],
11486
- "id": "ticket:view",
11487
- "pluginAlias": "@proletariat/cli",
11488
- "pluginName": "@proletariat/cli",
11489
- "pluginType": "core",
11490
- "strict": true,
11491
- "isESM": true,
11492
- "relativePath": [
11493
- "dist",
11494
- "commands",
11495
- "ticket",
11496
- "view.js"
11497
- ]
11498
- },
11499
- "version:bump": {
11500
- "aliases": [],
11501
- "args": {
11502
- "type": {
11503
- "description": "Version bump type",
11504
- "name": "type",
11505
- "options": [
11506
- "major",
11507
- "minor",
11508
- "patch"
11509
- ],
11510
- "required": true
11511
- }
11512
- },
11513
- "description": "Bump the CLI version (major, minor, or patch), commit, push, and create a PR",
11514
- "examples": [
11515
- "<%= config.bin %> version bump patch",
11516
- "<%= config.bin %> version bump minor",
11517
- "<%= config.bin %> version bump major",
11518
- "<%= config.bin %> version bump patch --json"
11581
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
11519
11582
  ],
11520
11583
  "flags": {
11584
+ "project": {
11585
+ "char": "P",
11586
+ "description": "Project ID (uses first project if only one exists)",
11587
+ "name": "project",
11588
+ "hasDynamicHelp": false,
11589
+ "multiple": false,
11590
+ "type": "option"
11591
+ },
11521
11592
  "json": {
11522
11593
  "description": "Output as JSON for AI agents/scripts",
11523
11594
  "name": "json",
@@ -11534,18 +11605,17 @@
11534
11605
  },
11535
11606
  "hasDynamicHelp": false,
11536
11607
  "hiddenAliases": [],
11537
- "id": "version:bump",
11608
+ "id": "ticket:view",
11538
11609
  "pluginAlias": "@proletariat/cli",
11539
11610
  "pluginName": "@proletariat/cli",
11540
11611
  "pluginType": "core",
11541
11612
  "strict": true,
11542
- "enableJsonFlag": false,
11543
11613
  "isESM": true,
11544
11614
  "relativePath": [
11545
11615
  "dist",
11546
11616
  "commands",
11547
- "version",
11548
- "bump.js"
11617
+ "ticket",
11618
+ "view.js"
11549
11619
  ]
11550
11620
  },
11551
11621
  "workspace:add": {
@@ -11964,6 +12034,128 @@
11964
12034
  "complete.js"
11965
12035
  ]
11966
12036
  },
12037
+ "work:groom": {
12038
+ "aliases": [],
12039
+ "args": {
12040
+ "ticketId": {
12041
+ "description": "Ticket ID(s) to groom - prompts with picker if not provided",
12042
+ "name": "ticketId",
12043
+ "required": false
12044
+ }
12045
+ },
12046
+ "description": "Enrich a ticket with requirements, acceptance criteria, and subtasks",
12047
+ "examples": [
12048
+ "<%= config.bin %> work groom TKT-001",
12049
+ "<%= config.bin %> work groom TKT-001 TKT-002",
12050
+ "<%= config.bin %> work groom # Interactive picker for backlog tickets"
12051
+ ],
12052
+ "flags": {
12053
+ "project": {
12054
+ "char": "P",
12055
+ "description": "Project ID (uses first project if only one exists)",
12056
+ "name": "project",
12057
+ "hasDynamicHelp": false,
12058
+ "multiple": false,
12059
+ "type": "option"
12060
+ },
12061
+ "json": {
12062
+ "aliases": [
12063
+ "machine"
12064
+ ],
12065
+ "char": "m",
12066
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
12067
+ "name": "json",
12068
+ "allowNo": false,
12069
+ "type": "boolean"
12070
+ },
12071
+ "machine": {
12072
+ "char": "m",
12073
+ "description": "Output as JSON for AI agents/scripts",
12074
+ "name": "machine",
12075
+ "allowNo": false,
12076
+ "type": "boolean"
12077
+ }
12078
+ },
12079
+ "hasDynamicHelp": false,
12080
+ "hiddenAliases": [],
12081
+ "id": "work:groom",
12082
+ "pluginAlias": "@proletariat/cli",
12083
+ "pluginName": "@proletariat/cli",
12084
+ "pluginType": "core",
12085
+ "strict": false,
12086
+ "isESM": true,
12087
+ "relativePath": [
12088
+ "dist",
12089
+ "commands",
12090
+ "work",
12091
+ "groom.js"
12092
+ ]
12093
+ },
12094
+ "work:implement": {
12095
+ "aliases": [],
12096
+ "args": {
12097
+ "ticketId": {
12098
+ "description": "Ticket ID(s) to work on - prompts with picker if not provided",
12099
+ "name": "ticketId",
12100
+ "required": false
12101
+ }
12102
+ },
12103
+ "description": "Spawn agent to implement, continue, revise, or test a ticket (context-driven)",
12104
+ "examples": [
12105
+ "<%= config.bin %> work implement TKT-001",
12106
+ "<%= config.bin %> work implement TKT-001 --message \"Focus on the auth module\"",
12107
+ "<%= config.bin %> work implement # Interactive picker for todo/in-progress tickets"
12108
+ ],
12109
+ "flags": {
12110
+ "project": {
12111
+ "char": "P",
12112
+ "description": "Project ID (uses first project if only one exists)",
12113
+ "name": "project",
12114
+ "hasDynamicHelp": false,
12115
+ "multiple": false,
12116
+ "type": "option"
12117
+ },
12118
+ "json": {
12119
+ "aliases": [
12120
+ "machine"
12121
+ ],
12122
+ "char": "m",
12123
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
12124
+ "name": "json",
12125
+ "allowNo": false,
12126
+ "type": "boolean"
12127
+ },
12128
+ "machine": {
12129
+ "char": "m",
12130
+ "description": "Output as JSON for AI agents/scripts",
12131
+ "name": "machine",
12132
+ "allowNo": false,
12133
+ "type": "boolean"
12134
+ },
12135
+ "message": {
12136
+ "char": "M",
12137
+ "description": "Additional instructions for the agent",
12138
+ "name": "message",
12139
+ "hasDynamicHelp": false,
12140
+ "multiple": false,
12141
+ "type": "option"
12142
+ }
12143
+ },
12144
+ "hasDynamicHelp": false,
12145
+ "hiddenAliases": [],
12146
+ "id": "work:implement",
12147
+ "pluginAlias": "@proletariat/cli",
12148
+ "pluginName": "@proletariat/cli",
12149
+ "pluginType": "core",
12150
+ "strict": false,
12151
+ "isESM": true,
12152
+ "relativePath": [
12153
+ "dist",
12154
+ "commands",
12155
+ "work",
12156
+ "implement.js"
12157
+ ]
12158
+ },
11967
12159
  "work": {
11968
12160
  "aliases": [],
11969
12161
  "args": {},
@@ -12298,7 +12490,174 @@
12298
12490
  },
12299
12491
  "hasDynamicHelp": false,
12300
12492
  "hiddenAliases": [],
12301
- "id": "work:linear",
12493
+ "id": "work:linear",
12494
+ "pluginAlias": "@proletariat/cli",
12495
+ "pluginName": "@proletariat/cli",
12496
+ "pluginType": "core",
12497
+ "strict": true,
12498
+ "isESM": true,
12499
+ "relativePath": [
12500
+ "dist",
12501
+ "commands",
12502
+ "work",
12503
+ "linear.js"
12504
+ ]
12505
+ },
12506
+ "work:peek": {
12507
+ "aliases": [],
12508
+ "args": {
12509
+ "ticketId": {
12510
+ "description": "Ticket ID to peek at",
12511
+ "name": "ticketId",
12512
+ "required": true
12513
+ }
12514
+ },
12515
+ "description": "View what an agent is doing on a ticket (non-interactive)",
12516
+ "examples": [
12517
+ "<%= config.bin %> work peek TKT-001",
12518
+ "<%= config.bin %> work peek TKT-001 --lines 100",
12519
+ "<%= config.bin %> work peek TKT-001 --follow",
12520
+ "<%= config.bin %> work peek TKT-001 --full"
12521
+ ],
12522
+ "flags": {
12523
+ "project": {
12524
+ "char": "P",
12525
+ "description": "Project ID (uses first project if only one exists)",
12526
+ "name": "project",
12527
+ "hasDynamicHelp": false,
12528
+ "multiple": false,
12529
+ "type": "option"
12530
+ },
12531
+ "json": {
12532
+ "aliases": [
12533
+ "machine"
12534
+ ],
12535
+ "char": "m",
12536
+ "description": "Output as JSON",
12537
+ "name": "json",
12538
+ "allowNo": false,
12539
+ "type": "boolean"
12540
+ },
12541
+ "machine": {
12542
+ "char": "m",
12543
+ "description": "Output as JSON for AI agents/scripts",
12544
+ "name": "machine",
12545
+ "allowNo": false,
12546
+ "type": "boolean"
12547
+ },
12548
+ "lines": {
12549
+ "char": "l",
12550
+ "description": "Number of scrollback lines to capture",
12551
+ "name": "lines",
12552
+ "default": 200,
12553
+ "hasDynamicHelp": false,
12554
+ "multiple": false,
12555
+ "type": "option"
12556
+ },
12557
+ "full": {
12558
+ "description": "Capture entire scrollback buffer",
12559
+ "name": "full",
12560
+ "allowNo": false,
12561
+ "type": "boolean"
12562
+ },
12563
+ "follow": {
12564
+ "char": "f",
12565
+ "description": "Stream output continuously (like tail -f)",
12566
+ "name": "follow",
12567
+ "allowNo": false,
12568
+ "type": "boolean"
12569
+ },
12570
+ "since": {
12571
+ "description": "Filter output to lines after this timestamp (ISO 8601)",
12572
+ "name": "since",
12573
+ "hasDynamicHelp": false,
12574
+ "multiple": false,
12575
+ "type": "option"
12576
+ }
12577
+ },
12578
+ "hasDynamicHelp": false,
12579
+ "hiddenAliases": [],
12580
+ "id": "work:peek",
12581
+ "pluginAlias": "@proletariat/cli",
12582
+ "pluginName": "@proletariat/cli",
12583
+ "pluginType": "core",
12584
+ "strict": true,
12585
+ "isESM": true,
12586
+ "relativePath": [
12587
+ "dist",
12588
+ "commands",
12589
+ "work",
12590
+ "peek.js"
12591
+ ]
12592
+ },
12593
+ "work:poke": {
12594
+ "aliases": [
12595
+ "work:steer"
12596
+ ],
12597
+ "args": {
12598
+ "ticketId": {
12599
+ "description": "Ticket ID of the running agent",
12600
+ "name": "ticketId",
12601
+ "required": true
12602
+ },
12603
+ "message": {
12604
+ "description": "Message to send (use \"-\" to read from stdin, or omit with --file)",
12605
+ "name": "message",
12606
+ "required": false
12607
+ }
12608
+ },
12609
+ "description": "Send a message to steer an agent working on a ticket",
12610
+ "examples": [
12611
+ "<%= config.bin %> work poke TKT-001 \"Focus on the tests first\"",
12612
+ "<%= config.bin %> work poke TKT-001 --file instructions.md",
12613
+ "<%= config.bin %> work poke TKT-001 \"Run the tests\" --wait",
12614
+ "<%= config.bin %> work steer TKT-001 \"Add error handling\""
12615
+ ],
12616
+ "flags": {
12617
+ "json": {
12618
+ "aliases": [
12619
+ "machine"
12620
+ ],
12621
+ "char": "m",
12622
+ "description": "Output as JSON",
12623
+ "name": "json",
12624
+ "allowNo": false,
12625
+ "type": "boolean"
12626
+ },
12627
+ "machine": {
12628
+ "char": "m",
12629
+ "description": "Output as JSON for AI agents/scripts",
12630
+ "name": "machine",
12631
+ "allowNo": false,
12632
+ "type": "boolean"
12633
+ },
12634
+ "file": {
12635
+ "char": "F",
12636
+ "description": "Read message from a file",
12637
+ "name": "file",
12638
+ "hasDynamicHelp": false,
12639
+ "multiple": false,
12640
+ "type": "option"
12641
+ },
12642
+ "wait": {
12643
+ "char": "w",
12644
+ "description": "Wait for response after sending",
12645
+ "name": "wait",
12646
+ "allowNo": false,
12647
+ "type": "boolean"
12648
+ },
12649
+ "timeout": {
12650
+ "description": "Timeout in seconds for --wait mode",
12651
+ "name": "timeout",
12652
+ "default": 120,
12653
+ "hasDynamicHelp": false,
12654
+ "multiple": false,
12655
+ "type": "option"
12656
+ }
12657
+ },
12658
+ "hasDynamicHelp": false,
12659
+ "hiddenAliases": [],
12660
+ "id": "work:poke",
12302
12661
  "pluginAlias": "@proletariat/cli",
12303
12662
  "pluginName": "@proletariat/cli",
12304
12663
  "pluginType": "core",
@@ -12308,7 +12667,7 @@
12308
12667
  "dist",
12309
12668
  "commands",
12310
12669
  "work",
12311
- "linear.js"
12670
+ "poke.js"
12312
12671
  ]
12313
12672
  },
12314
12673
  "work:ready": {
@@ -12445,17 +12804,16 @@
12445
12804
  "aliases": [],
12446
12805
  "args": {
12447
12806
  "ticketId": {
12448
- "description": "Ticket ID to review",
12807
+ "description": "Ticket ID(s) to review - prompts with picker if not provided",
12449
12808
  "name": "ticketId",
12450
12809
  "required": false
12451
12810
  }
12452
12811
  },
12453
- "description": "Automated review-fix pipeline: review fix re-review until clean",
12812
+ "description": "Evaluate the output/PR for a ticket (model decides whether to comment, fix, or both)",
12454
12813
  "examples": [
12455
- "<%= config.bin %> <%= command.id %> TKT-001",
12456
- "<%= config.bin %> <%= command.id %> TKT-001 --max-cycles 5",
12457
- "<%= config.bin %> <%= command.id %> TKT-001 --auto # Skip confirmations between cycles",
12458
- "<%= config.bin %> <%= command.id %> # Interactive mode"
12814
+ "<%= config.bin %> work review TKT-001",
12815
+ "<%= config.bin %> work review TKT-001 TKT-002",
12816
+ "<%= config.bin %> work review # Interactive picker for reviewable tickets"
12459
12817
  ],
12460
12818
  "flags": {
12461
12819
  "project": {
@@ -12467,7 +12825,11 @@
12467
12825
  "type": "option"
12468
12826
  },
12469
12827
  "json": {
12470
- "description": "Output as JSON for AI agents/scripts",
12828
+ "aliases": [
12829
+ "machine"
12830
+ ],
12831
+ "char": "m",
12832
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
12471
12833
  "name": "json",
12472
12834
  "allowNo": false,
12473
12835
  "type": "boolean"
@@ -12478,87 +12840,6 @@
12478
12840
  "name": "machine",
12479
12841
  "allowNo": false,
12480
12842
  "type": "boolean"
12481
- },
12482
- "max-cycles": {
12483
- "description": "Maximum review-fix cycles before stopping (default: 3)",
12484
- "name": "max-cycles",
12485
- "default": 3,
12486
- "hasDynamicHelp": false,
12487
- "multiple": false,
12488
- "type": "option"
12489
- },
12490
- "auto": {
12491
- "description": "Skip confirmations between cycles (fully automated)",
12492
- "name": "auto",
12493
- "allowNo": false,
12494
- "type": "boolean"
12495
- },
12496
- "executor": {
12497
- "char": "e",
12498
- "description": "Override executor",
12499
- "name": "executor",
12500
- "hasDynamicHelp": false,
12501
- "multiple": false,
12502
- "options": [
12503
- "claude-code",
12504
- "codex",
12505
- "custom"
12506
- ],
12507
- "type": "option"
12508
- },
12509
- "run-on-host": {
12510
- "description": "Run on host even if devcontainer exists (bypasses sandbox)",
12511
- "name": "run-on-host",
12512
- "allowNo": false,
12513
- "type": "boolean"
12514
- },
12515
- "skip-permissions": {
12516
- "description": "Skip permission checks for agents",
12517
- "name": "skip-permissions",
12518
- "allowNo": false,
12519
- "type": "boolean"
12520
- },
12521
- "display": {
12522
- "char": "d",
12523
- "description": "Display mode for agents",
12524
- "name": "display",
12525
- "default": "background",
12526
- "hasDynamicHelp": false,
12527
- "multiple": false,
12528
- "options": [
12529
- "foreground",
12530
- "terminal",
12531
- "background"
12532
- ],
12533
- "type": "option"
12534
- },
12535
- "session": {
12536
- "char": "s",
12537
- "description": "Session manager inside container",
12538
- "name": "session",
12539
- "default": "tmux",
12540
- "hasDynamicHelp": false,
12541
- "multiple": false,
12542
- "options": [
12543
- "tmux",
12544
- "direct"
12545
- ],
12546
- "type": "option"
12547
- },
12548
- "poll-interval": {
12549
- "description": "Polling interval in seconds to check agent completion (default: 10)",
12550
- "name": "poll-interval",
12551
- "default": 10,
12552
- "hasDynamicHelp": false,
12553
- "multiple": false,
12554
- "type": "option"
12555
- },
12556
- "force": {
12557
- "char": "f",
12558
- "description": "Force spawn even if ticket has running executions",
12559
- "name": "force",
12560
- "allowNo": false,
12561
- "type": "boolean"
12562
12843
  }
12563
12844
  },
12564
12845
  "hasDynamicHelp": false,
@@ -12567,7 +12848,7 @@
12567
12848
  "pluginAlias": "@proletariat/cli",
12568
12849
  "pluginName": "@proletariat/cli",
12569
12850
  "pluginType": "core",
12570
- "strict": true,
12851
+ "strict": false,
12571
12852
  "isESM": true,
12572
12853
  "relativePath": [
12573
12854
  "dist",
@@ -12576,113 +12857,6 @@
12576
12857
  "review.js"
12577
12858
  ]
12578
12859
  },
12579
- "work:revise": {
12580
- "aliases": [],
12581
- "args": {
12582
- "ticketId": {
12583
- "description": "Ticket ID - prompts with dropdown if not provided",
12584
- "name": "ticketId",
12585
- "required": false
12586
- }
12587
- },
12588
- "description": "Address PR feedback on a ticket (fetches reviews/comments and spawns agent)",
12589
- "examples": [
12590
- "<%= config.bin %> <%= command.id %> TKT-001",
12591
- "<%= config.bin %> <%= command.id %> # Interactive mode",
12592
- "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
12593
- ],
12594
- "flags": {
12595
- "project": {
12596
- "char": "P",
12597
- "description": "Project ID (uses first project if only one exists)",
12598
- "name": "project",
12599
- "hasDynamicHelp": false,
12600
- "multiple": false,
12601
- "type": "option"
12602
- },
12603
- "json": {
12604
- "description": "Output as JSON for AI agents/scripts",
12605
- "name": "json",
12606
- "allowNo": false,
12607
- "type": "boolean"
12608
- },
12609
- "machine": {
12610
- "char": "m",
12611
- "description": "Output as JSON for AI agents/scripts",
12612
- "name": "machine",
12613
- "allowNo": false,
12614
- "type": "boolean"
12615
- },
12616
- "mode": {
12617
- "char": "d",
12618
- "description": "Runtime mode",
12619
- "name": "mode",
12620
- "hasDynamicHelp": false,
12621
- "multiple": false,
12622
- "options": [
12623
- "foreground",
12624
- "background",
12625
- "tmux",
12626
- "terminal",
12627
- "devcontainer"
12628
- ],
12629
- "type": "option"
12630
- },
12631
- "executor": {
12632
- "char": "e",
12633
- "description": "Override executor",
12634
- "name": "executor",
12635
- "hasDynamicHelp": false,
12636
- "multiple": false,
12637
- "options": [
12638
- "claude-code",
12639
- "codex",
12640
- "custom"
12641
- ],
12642
- "type": "option"
12643
- },
12644
- "force": {
12645
- "char": "f",
12646
- "description": "Start even if no pending feedback",
12647
- "name": "force",
12648
- "allowNo": false,
12649
- "type": "boolean"
12650
- },
12651
- "run-on-host": {
12652
- "description": "Run on host even if devcontainer exists (bypasses sandbox)",
12653
- "name": "run-on-host",
12654
- "allowNo": false,
12655
- "type": "boolean"
12656
- },
12657
- "session": {
12658
- "char": "s",
12659
- "description": "Session manager inside container (tmux runs agent in tmux inside container)",
12660
- "name": "session",
12661
- "default": "tmux",
12662
- "hasDynamicHelp": false,
12663
- "multiple": false,
12664
- "options": [
12665
- "tmux",
12666
- "direct"
12667
- ],
12668
- "type": "option"
12669
- }
12670
- },
12671
- "hasDynamicHelp": false,
12672
- "hiddenAliases": [],
12673
- "id": "work:revise",
12674
- "pluginAlias": "@proletariat/cli",
12675
- "pluginName": "@proletariat/cli",
12676
- "pluginType": "core",
12677
- "strict": true,
12678
- "isESM": true,
12679
- "relativePath": [
12680
- "dist",
12681
- "commands",
12682
- "work",
12683
- "revise.js"
12684
- ]
12685
- },
12686
12860
  "work:shortcut": {
12687
12861
  "aliases": [],
12688
12862
  "args": {},
@@ -13240,7 +13414,9 @@
13240
13414
  "<%= config.bin %> <%= command.id %> --from shortcut:sc-123 # Unified: Shortcut shorthand",
13241
13415
  "<%= config.bin %> <%= command.id %> --from trello:abc123 # Unified: Trello shorthand",
13242
13416
  "<%= config.bin %> <%= command.id %> PRLT-933 # Auto-detect: resolves via default source",
13243
- "<%= config.bin %> <%= command.id %> --from-issue # Uses workspace default source"
13417
+ "<%= config.bin %> <%= command.id %> --from-issue # Uses workspace default source",
13418
+ "<%= config.bin %> <%= command.id %> TKT-001 --review-gate auto # Ship directly, no approval needed",
13419
+ "<%= config.bin %> <%= command.id %> TKT-001 --review-gate post # Ship then human reviews after"
13244
13420
  ],
13245
13421
  "flags": {
13246
13422
  "project": {
@@ -13472,6 +13648,18 @@
13472
13648
  "allowNo": false,
13473
13649
  "type": "boolean"
13474
13650
  },
13651
+ "review-gate": {
13652
+ "description": "Review gate mode: required (human approves before landing), auto (ship directly), post (ship then review)",
13653
+ "name": "review-gate",
13654
+ "hasDynamicHelp": false,
13655
+ "multiple": false,
13656
+ "options": [
13657
+ "required",
13658
+ "auto",
13659
+ "post"
13660
+ ],
13661
+ "type": "option"
13662
+ },
13475
13663
  "session-action": {
13476
13664
  "description": "Action when existing session found (attach, spawn, kill, cancel). Skips interactive menu.",
13477
13665
  "name": "session-action",
@@ -13505,6 +13693,24 @@
13505
13693
  "hasDynamicHelp": false,
13506
13694
  "multiple": false,
13507
13695
  "type": "option"
13696
+ },
13697
+ "keep-alive": {
13698
+ "description": "Keep container running after agent exits (shorthand for --cleanup persistent)",
13699
+ "name": "keep-alive",
13700
+ "allowNo": false,
13701
+ "type": "boolean"
13702
+ },
13703
+ "cleanup": {
13704
+ "description": "Container cleanup policy (on-exit, persistent, on-error-keep)",
13705
+ "name": "cleanup",
13706
+ "hasDynamicHelp": false,
13707
+ "multiple": false,
13708
+ "options": [
13709
+ "on-exit",
13710
+ "persistent",
13711
+ "on-error-keep"
13712
+ ],
13713
+ "type": "option"
13508
13714
  }
13509
13715
  },
13510
13716
  "hasDynamicHelp": false,
@@ -13568,6 +13774,62 @@
13568
13774
  "status.js"
13569
13775
  ]
13570
13776
  },
13777
+ "work:stop": {
13778
+ "aliases": [],
13779
+ "args": {
13780
+ "ticketId": {
13781
+ "description": "Ticket ID to stop",
13782
+ "name": "ticketId",
13783
+ "required": true
13784
+ }
13785
+ },
13786
+ "description": "Stop a running agent working on a ticket",
13787
+ "examples": [
13788
+ "<%= config.bin %> work stop TKT-001",
13789
+ "<%= config.bin %> work stop TKT-001 --json"
13790
+ ],
13791
+ "flags": {
13792
+ "project": {
13793
+ "char": "P",
13794
+ "description": "Project ID (uses first project if only one exists)",
13795
+ "name": "project",
13796
+ "hasDynamicHelp": false,
13797
+ "multiple": false,
13798
+ "type": "option"
13799
+ },
13800
+ "json": {
13801
+ "aliases": [
13802
+ "machine"
13803
+ ],
13804
+ "char": "m",
13805
+ "description": "Output as JSON",
13806
+ "name": "json",
13807
+ "allowNo": false,
13808
+ "type": "boolean"
13809
+ },
13810
+ "machine": {
13811
+ "char": "m",
13812
+ "description": "Output as JSON for AI agents/scripts",
13813
+ "name": "machine",
13814
+ "allowNo": false,
13815
+ "type": "boolean"
13816
+ }
13817
+ },
13818
+ "hasDynamicHelp": false,
13819
+ "hiddenAliases": [],
13820
+ "id": "work:stop",
13821
+ "pluginAlias": "@proletariat/cli",
13822
+ "pluginName": "@proletariat/cli",
13823
+ "pluginType": "core",
13824
+ "strict": true,
13825
+ "isESM": true,
13826
+ "relativePath": [
13827
+ "dist",
13828
+ "commands",
13829
+ "work",
13830
+ "stop.js"
13831
+ ]
13832
+ },
13571
13833
  "work:watch": {
13572
13834
  "aliases": [],
13573
13835
  "args": {},
@@ -14759,5 +15021,5 @@
14759
15021
  ]
14760
15022
  }
14761
15023
  },
14762
- "version": "0.3.85"
15024
+ "version": "0.3.87"
14763
15025
  }