@proletariat/cli 0.3.84 → 0.3.86

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 (85) hide show
  1. package/bin/validate-better-sqlite3.cjs +11 -0
  2. package/dist/commands/session/cleanup.d.ts +2 -0
  3. package/dist/commands/session/cleanup.js +89 -42
  4. package/dist/commands/session/cleanup.js.map +1 -1
  5. package/dist/commands/session/index.js +4 -0
  6. package/dist/commands/session/index.js.map +1 -1
  7. package/dist/commands/session/report.d.ts +27 -0
  8. package/dist/commands/session/report.js +217 -0
  9. package/dist/commands/session/report.js.map +1 -0
  10. package/dist/commands/telemetry/disable.js +1 -1
  11. package/dist/commands/telemetry/disable.js.map +1 -1
  12. package/dist/commands/telemetry/enable.js +1 -1
  13. package/dist/commands/telemetry/enable.js.map +1 -1
  14. package/dist/commands/ticket/create.d.ts +3 -2
  15. package/dist/commands/ticket/create.js +6 -69
  16. package/dist/commands/ticket/create.js.map +1 -1
  17. package/dist/commands/work/groom.d.ts +15 -0
  18. package/dist/commands/work/groom.js +77 -0
  19. package/dist/commands/work/groom.js.map +1 -0
  20. package/dist/commands/work/implement.d.ts +16 -0
  21. package/dist/commands/work/implement.js +85 -0
  22. package/dist/commands/work/implement.js.map +1 -0
  23. package/dist/commands/work/index.js +38 -34
  24. package/dist/commands/work/index.js.map +1 -1
  25. package/dist/commands/work/peek.d.ts +18 -0
  26. package/dist/commands/work/peek.js +78 -0
  27. package/dist/commands/work/peek.js.map +1 -0
  28. package/dist/commands/work/poke.d.ts +19 -0
  29. package/dist/commands/work/poke.js +79 -0
  30. package/dist/commands/work/poke.js.map +1 -0
  31. package/dist/commands/work/review.d.ts +1 -31
  32. package/dist/commands/work/review.js +44 -368
  33. package/dist/commands/work/review.js.map +1 -1
  34. package/dist/commands/work/spawn.js +1 -1
  35. package/dist/commands/work/spawn.js.map +1 -1
  36. package/dist/commands/work/start.d.ts +2 -0
  37. package/dist/commands/work/start.js +24 -19
  38. package/dist/commands/work/start.js.map +1 -1
  39. package/dist/commands/work/stop.d.ts +14 -0
  40. package/dist/commands/work/stop.js +103 -0
  41. package/dist/commands/work/stop.js.map +1 -0
  42. package/dist/hooks/init.d.ts +1 -1
  43. package/dist/hooks/init.js +1 -1
  44. package/dist/lib/execution/config.d.ts +17 -1
  45. package/dist/lib/execution/config.js +38 -0
  46. package/dist/lib/execution/config.js.map +1 -1
  47. package/dist/lib/execution/devcontainer.js +0 -1
  48. package/dist/lib/execution/devcontainer.js.map +1 -1
  49. package/dist/lib/execution/runners/docker-management.js +20 -0
  50. package/dist/lib/execution/runners/docker-management.js.map +1 -1
  51. package/dist/lib/execution/runners/prompt-builder.js +1 -2
  52. package/dist/lib/execution/runners/prompt-builder.js.map +1 -1
  53. package/dist/lib/execution/runners/shared.js +3 -1
  54. package/dist/lib/execution/runners/shared.js.map +1 -1
  55. package/dist/lib/execution/spawner.d.ts +3 -1
  56. package/dist/lib/execution/spawner.js +10 -4
  57. package/dist/lib/execution/spawner.js.map +1 -1
  58. package/dist/lib/execution/storage.d.ts +2 -1
  59. package/dist/lib/execution/storage.js +4 -3
  60. package/dist/lib/execution/storage.js.map +1 -1
  61. package/dist/lib/execution/types.d.ts +9 -0
  62. package/dist/lib/execution/types.js.map +1 -1
  63. package/dist/lib/mcp/tools/tmux.d.ts +1 -1
  64. package/dist/lib/mcp/tools/tmux.js +1 -1
  65. package/dist/lib/mcp/tools/work.js +4 -35
  66. package/dist/lib/mcp/tools/work.js.map +1 -1
  67. package/dist/lib/pmo/schema.d.ts +1 -1
  68. package/dist/lib/pmo/schema.js +1 -0
  69. package/dist/lib/pmo/schema.js.map +1 -1
  70. package/dist/lib/pmo/storage/base.js +59 -501
  71. package/dist/lib/pmo/storage/base.js.map +1 -1
  72. package/dist/lib/pmo/utils.d.ts +22 -0
  73. package/dist/lib/pmo/utils.js +31 -0
  74. package/dist/lib/pmo/utils.js.map +1 -1
  75. package/dist/lib/telemetry/analytics.d.ts +10 -13
  76. package/dist/lib/telemetry/analytics.js +36 -126
  77. package/dist/lib/telemetry/analytics.js.map +1 -1
  78. package/dist/lib/telemetry/feature-flags.d.ts +12 -37
  79. package/dist/lib/telemetry/feature-flags.js +15 -63
  80. package/dist/lib/telemetry/feature-flags.js.map +1 -1
  81. package/oclif.manifest.json +846 -583
  82. package/package.json +2 -3
  83. package/dist/commands/work/revise.d.ts +0 -20
  84. package/dist/commands/work/revise.js +0 -377
  85. package/dist/commands/work/revise.js.map +0 -1
@@ -7233,6 +7233,99 @@
7233
7233
  "index.js"
7234
7234
  ]
7235
7235
  },
7236
+ "run": {
7237
+ "aliases": [],
7238
+ "args": {
7239
+ "task": {
7240
+ "description": "Task description for the agent",
7241
+ "name": "task",
7242
+ "required": true
7243
+ }
7244
+ },
7245
+ "description": "Spawn an agent to work on a task (works anywhere, no HQ required)",
7246
+ "examples": [
7247
+ "<%= config.bin %> run \"fix the login bug\"",
7248
+ "<%= config.bin %> run --runner claude-code \"add dark mode\"",
7249
+ "<%= config.bin %> run -d \"fix the bug\"",
7250
+ "<%= config.bin %> run --runner codex \"add tests\""
7251
+ ],
7252
+ "flags": {
7253
+ "json": {
7254
+ "description": "Output as JSON for AI agents/scripts",
7255
+ "name": "json",
7256
+ "allowNo": false,
7257
+ "type": "boolean"
7258
+ },
7259
+ "machine": {
7260
+ "char": "m",
7261
+ "description": "Output as JSON for AI agents/scripts",
7262
+ "name": "machine",
7263
+ "allowNo": false,
7264
+ "type": "boolean"
7265
+ },
7266
+ "runner": {
7267
+ "char": "r",
7268
+ "description": "Runner to use (claude-code, codex, pi)",
7269
+ "name": "runner",
7270
+ "hasDynamicHelp": false,
7271
+ "multiple": false,
7272
+ "type": "option"
7273
+ },
7274
+ "detached": {
7275
+ "char": "d",
7276
+ "description": "Run in background (detached)",
7277
+ "name": "detached",
7278
+ "allowNo": false,
7279
+ "type": "boolean"
7280
+ },
7281
+ "directory": {
7282
+ "description": "Working directory (default: cwd)",
7283
+ "name": "directory",
7284
+ "hasDynamicHelp": false,
7285
+ "multiple": false,
7286
+ "type": "option"
7287
+ },
7288
+ "permission-mode": {
7289
+ "char": "p",
7290
+ "description": "Permission mode (danger: skip prompts, safe: require approval)",
7291
+ "name": "permission-mode",
7292
+ "hasDynamicHelp": false,
7293
+ "multiple": false,
7294
+ "options": [
7295
+ "danger",
7296
+ "safe"
7297
+ ],
7298
+ "type": "option"
7299
+ },
7300
+ "environment": {
7301
+ "char": "e",
7302
+ "description": "Environment to run in",
7303
+ "name": "environment",
7304
+ "hasDynamicHelp": false,
7305
+ "multiple": false,
7306
+ "options": [
7307
+ "host",
7308
+ "docker",
7309
+ "podman"
7310
+ ],
7311
+ "type": "option"
7312
+ }
7313
+ },
7314
+ "hasDynamicHelp": false,
7315
+ "hiddenAliases": [],
7316
+ "id": "run",
7317
+ "pluginAlias": "@proletariat/cli",
7318
+ "pluginName": "@proletariat/cli",
7319
+ "pluginType": "core",
7320
+ "strict": true,
7321
+ "isESM": true,
7322
+ "relativePath": [
7323
+ "dist",
7324
+ "commands",
7325
+ "run",
7326
+ "index.js"
7327
+ ]
7328
+ },
7236
7329
  "repo:add": {
7237
7330
  "aliases": [],
7238
7331
  "args": {
@@ -7678,99 +7771,6 @@
7678
7771
  "view.js"
7679
7772
  ]
7680
7773
  },
7681
- "run": {
7682
- "aliases": [],
7683
- "args": {
7684
- "task": {
7685
- "description": "Task description for the agent",
7686
- "name": "task",
7687
- "required": true
7688
- }
7689
- },
7690
- "description": "Spawn an agent to work on a task (works anywhere, no HQ required)",
7691
- "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\""
7696
- ],
7697
- "flags": {
7698
- "json": {
7699
- "description": "Output as JSON for AI agents/scripts",
7700
- "name": "json",
7701
- "allowNo": false,
7702
- "type": "boolean"
7703
- },
7704
- "machine": {
7705
- "char": "m",
7706
- "description": "Output as JSON for AI agents/scripts",
7707
- "name": "machine",
7708
- "allowNo": false,
7709
- "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
- },
7759
- "hasDynamicHelp": false,
7760
- "hiddenAliases": [],
7761
- "id": "run",
7762
- "pluginAlias": "@proletariat/cli",
7763
- "pluginName": "@proletariat/cli",
7764
- "pluginType": "core",
7765
- "strict": true,
7766
- "isESM": true,
7767
- "relativePath": [
7768
- "dist",
7769
- "commands",
7770
- "run",
7771
- "index.js"
7772
- ]
7773
- },
7774
7774
  "shortcut:connect": {
7775
7775
  "aliases": [],
7776
7776
  "args": {},
@@ -7922,7 +7922,8 @@
7922
7922
  "examples": [
7923
7923
  "<%= config.bin %> session cleanup",
7924
7924
  "<%= config.bin %> session cleanup --dry-run",
7925
- "<%= config.bin %> session cleanup --force"
7925
+ "<%= config.bin %> session cleanup --force",
7926
+ "<%= config.bin %> session cleanup --force --yes"
7926
7927
  ],
7927
7928
  "flags": {
7928
7929
  "project": {
@@ -7959,6 +7960,13 @@
7959
7960
  "name": "force",
7960
7961
  "allowNo": false,
7961
7962
  "type": "boolean"
7963
+ },
7964
+ "yes": {
7965
+ "char": "y",
7966
+ "description": "Skip confirmation prompt when using --force",
7967
+ "name": "yes",
7968
+ "allowNo": false,
7969
+ "type": "boolean"
7962
7970
  }
7963
7971
  },
7964
7972
  "hasDynamicHelp": false,
@@ -8612,6 +8620,75 @@
8612
8620
  "prune.js"
8613
8621
  ]
8614
8622
  },
8623
+ "session:report": {
8624
+ "aliases": [],
8625
+ "args": {},
8626
+ "description": "Report agent session lifecycle events and trigger cleanup",
8627
+ "examples": [
8628
+ "<%= config.bin %> session report --agent bold-turing --status exited",
8629
+ "<%= config.bin %> session report --agent bold-turing --status completed",
8630
+ "<%= config.bin %> session report --agent bold-turing --status errored"
8631
+ ],
8632
+ "flags": {
8633
+ "project": {
8634
+ "char": "P",
8635
+ "description": "Project ID (uses first project if only one exists)",
8636
+ "name": "project",
8637
+ "hasDynamicHelp": false,
8638
+ "multiple": false,
8639
+ "type": "option"
8640
+ },
8641
+ "json": {
8642
+ "description": "Output as JSON for AI agents/scripts",
8643
+ "name": "json",
8644
+ "allowNo": false,
8645
+ "type": "boolean"
8646
+ },
8647
+ "machine": {
8648
+ "char": "m",
8649
+ "description": "Output as JSON for AI agents/scripts",
8650
+ "name": "machine",
8651
+ "allowNo": false,
8652
+ "type": "boolean"
8653
+ },
8654
+ "agent": {
8655
+ "description": "Agent name",
8656
+ "name": "agent",
8657
+ "required": true,
8658
+ "hasDynamicHelp": false,
8659
+ "multiple": false,
8660
+ "type": "option"
8661
+ },
8662
+ "status": {
8663
+ "description": "Session status (started, completed, errored, exited)",
8664
+ "name": "status",
8665
+ "required": true,
8666
+ "hasDynamicHelp": false,
8667
+ "multiple": false,
8668
+ "options": [
8669
+ "started",
8670
+ "completed",
8671
+ "errored",
8672
+ "exited"
8673
+ ],
8674
+ "type": "option"
8675
+ }
8676
+ },
8677
+ "hasDynamicHelp": false,
8678
+ "hiddenAliases": [],
8679
+ "id": "session:report",
8680
+ "pluginAlias": "@proletariat/cli",
8681
+ "pluginName": "@proletariat/cli",
8682
+ "pluginType": "core",
8683
+ "strict": true,
8684
+ "isESM": true,
8685
+ "relativePath": [
8686
+ "dist",
8687
+ "commands",
8688
+ "session",
8689
+ "report.js"
8690
+ ]
8691
+ },
8615
8692
  "session:restart": {
8616
8693
  "aliases": [],
8617
8694
  "args": {
@@ -8952,30 +9029,14 @@
8952
9029
  "logs.js"
8953
9030
  ]
8954
9031
  },
8955
- "terminal:title": {
9032
+ "telemetry:disable": {
8956
9033
  "aliases": [],
8957
- "args": {
8958
- "title": {
8959
- "description": "Title to set for the terminal tab/window",
8960
- "name": "title",
8961
- "required": false
8962
- }
8963
- },
8964
- "description": "Set the terminal tab/window title",
9034
+ "args": {},
9035
+ "description": "Disable anonymous telemetry",
8965
9036
  "examples": [
8966
- "<%= config.bin %> <%= command.id %> \"My Custom Name\"",
8967
- "<%= config.bin %> <%= command.id %> # Interactive prompt",
8968
- "<%= config.bin %> <%= command.id %> --reset",
8969
- "<%= config.bin %> <%= command.id %> --machine # JSON mode for agents"
9037
+ "<%= config.bin %> <%= command.id %>"
8970
9038
  ],
8971
9039
  "flags": {
8972
- "reset": {
8973
- "char": "r",
8974
- "description": "Reset terminal title to default",
8975
- "name": "reset",
8976
- "allowNo": false,
8977
- "type": "boolean"
8978
- },
8979
9040
  "json": {
8980
9041
  "description": "Output as JSON for AI agents/scripts",
8981
9042
  "name": "json",
@@ -8992,23 +9053,24 @@
8992
9053
  },
8993
9054
  "hasDynamicHelp": false,
8994
9055
  "hiddenAliases": [],
8995
- "id": "terminal:title",
9056
+ "id": "telemetry:disable",
8996
9057
  "pluginAlias": "@proletariat/cli",
8997
9058
  "pluginName": "@proletariat/cli",
8998
9059
  "pluginType": "core",
8999
9060
  "strict": true,
9061
+ "enableJsonFlag": false,
9000
9062
  "isESM": true,
9001
9063
  "relativePath": [
9002
9064
  "dist",
9003
9065
  "commands",
9004
- "terminal",
9005
- "title.js"
9066
+ "telemetry",
9067
+ "disable.js"
9006
9068
  ]
9007
9069
  },
9008
- "telemetry:disable": {
9070
+ "telemetry:enable": {
9009
9071
  "aliases": [],
9010
9072
  "args": {},
9011
- "description": "Disable anonymous telemetry",
9073
+ "description": "Enable anonymous telemetry",
9012
9074
  "examples": [
9013
9075
  "<%= config.bin %> <%= command.id %>"
9014
9076
  ],
@@ -9029,7 +9091,7 @@
9029
9091
  },
9030
9092
  "hasDynamicHelp": false,
9031
9093
  "hiddenAliases": [],
9032
- "id": "telemetry:disable",
9094
+ "id": "telemetry:enable",
9033
9095
  "pluginAlias": "@proletariat/cli",
9034
9096
  "pluginName": "@proletariat/cli",
9035
9097
  "pluginType": "core",
@@ -9040,15 +9102,16 @@
9040
9102
  "dist",
9041
9103
  "commands",
9042
9104
  "telemetry",
9043
- "disable.js"
9105
+ "enable.js"
9044
9106
  ]
9045
9107
  },
9046
- "telemetry:enable": {
9108
+ "telemetry": {
9047
9109
  "aliases": [],
9048
9110
  "args": {},
9049
- "description": "Enable anonymous telemetry",
9111
+ "description": "Show telemetry status",
9050
9112
  "examples": [
9051
- "<%= config.bin %> <%= command.id %>"
9113
+ "<%= config.bin %> <%= command.id %>",
9114
+ "<%= config.bin %> <%= command.id %> --json"
9052
9115
  ],
9053
9116
  "flags": {
9054
9117
  "json": {
@@ -9067,7 +9130,7 @@
9067
9130
  },
9068
9131
  "hasDynamicHelp": false,
9069
9132
  "hiddenAliases": [],
9070
- "id": "telemetry:enable",
9133
+ "id": "telemetry",
9071
9134
  "pluginAlias": "@proletariat/cli",
9072
9135
  "pluginName": "@proletariat/cli",
9073
9136
  "pluginType": "core",
@@ -9078,16 +9141,15 @@
9078
9141
  "dist",
9079
9142
  "commands",
9080
9143
  "telemetry",
9081
- "enable.js"
9144
+ "index.js"
9082
9145
  ]
9083
9146
  },
9084
- "telemetry": {
9147
+ "telemetry:status": {
9085
9148
  "aliases": [],
9086
9149
  "args": {},
9087
9150
  "description": "Show telemetry status",
9088
9151
  "examples": [
9089
- "<%= config.bin %> <%= command.id %>",
9090
- "<%= config.bin %> <%= command.id %> --json"
9152
+ "<%= config.bin %> telemetry status"
9091
9153
  ],
9092
9154
  "flags": {
9093
9155
  "json": {
@@ -9106,7 +9168,7 @@
9106
9168
  },
9107
9169
  "hasDynamicHelp": false,
9108
9170
  "hiddenAliases": [],
9109
- "id": "telemetry",
9171
+ "id": "telemetry:status",
9110
9172
  "pluginAlias": "@proletariat/cli",
9111
9173
  "pluginName": "@proletariat/cli",
9112
9174
  "pluginType": "core",
@@ -9117,17 +9179,33 @@
9117
9179
  "dist",
9118
9180
  "commands",
9119
9181
  "telemetry",
9120
- "index.js"
9182
+ "status.js"
9121
9183
  ]
9122
9184
  },
9123
- "telemetry:status": {
9185
+ "terminal:title": {
9124
9186
  "aliases": [],
9125
- "args": {},
9126
- "description": "Show telemetry status",
9187
+ "args": {
9188
+ "title": {
9189
+ "description": "Title to set for the terminal tab/window",
9190
+ "name": "title",
9191
+ "required": false
9192
+ }
9193
+ },
9194
+ "description": "Set the terminal tab/window title",
9127
9195
  "examples": [
9128
- "<%= config.bin %> telemetry status"
9196
+ "<%= config.bin %> <%= command.id %> \"My Custom Name\"",
9197
+ "<%= config.bin %> <%= command.id %> # Interactive prompt",
9198
+ "<%= config.bin %> <%= command.id %> --reset",
9199
+ "<%= config.bin %> <%= command.id %> --machine # JSON mode for agents"
9129
9200
  ],
9130
9201
  "flags": {
9202
+ "reset": {
9203
+ "char": "r",
9204
+ "description": "Reset terminal title to default",
9205
+ "name": "reset",
9206
+ "allowNo": false,
9207
+ "type": "boolean"
9208
+ },
9131
9209
  "json": {
9132
9210
  "description": "Output as JSON for AI agents/scripts",
9133
9211
  "name": "json",
@@ -9144,18 +9222,17 @@
9144
9222
  },
9145
9223
  "hasDynamicHelp": false,
9146
9224
  "hiddenAliases": [],
9147
- "id": "telemetry:status",
9225
+ "id": "terminal:title",
9148
9226
  "pluginAlias": "@proletariat/cli",
9149
9227
  "pluginName": "@proletariat/cli",
9150
9228
  "pluginType": "core",
9151
9229
  "strict": true,
9152
- "enableJsonFlag": false,
9153
9230
  "isESM": true,
9154
9231
  "relativePath": [
9155
9232
  "dist",
9156
9233
  "commands",
9157
- "telemetry",
9158
- "status.js"
9234
+ "terminal",
9235
+ "title.js"
9159
9236
  ]
9160
9237
  },
9161
9238
  "theme:add-names": {
@@ -9391,30 +9468,27 @@
9391
9468
  "set.js"
9392
9469
  ]
9393
9470
  },
9394
- "tools:add": {
9471
+ "trello:configure": {
9395
9472
  "aliases": [],
9396
- "args": {
9397
- "type": {
9398
- "description": "Tool type (mcp or cli)",
9399
- "name": "type",
9400
- "options": [
9401
- "mcp",
9402
- "cli"
9403
- ],
9404
- "required": true
9405
- },
9406
- "name": {
9407
- "description": "Tool name (unique identifier)",
9408
- "name": "name",
9409
- "required": true
9410
- }
9411
- },
9412
- "description": "Register an MCP server or CLI tool",
9473
+ "args": {},
9474
+ "description": "Connect to Trello and configure authentication",
9413
9475
  "examples": [
9414
- "<%= config.bin %> tools add mcp arcade --url https://api.arcade.dev/mcp --auth ARCADE_API_KEY --description \"Arcade integrations\"",
9415
- "<%= config.bin %> tools add cli gh --command gh --detect \"which gh\" --install \"brew install gh\" --description \"GitHub CLI\""
9476
+ "<%= config.bin %> <%= command.id %>",
9477
+ "<%= config.bin %> <%= command.id %> --check",
9478
+ "<%= config.bin %> <%= command.id %> --force",
9479
+ "<%= config.bin %> <%= command.id %> --disconnect",
9480
+ "TRELLO_API_KEY=... TRELLO_API_TOKEN=... <%= config.bin %> <%= command.id %>",
9481
+ "<%= config.bin %> <%= command.id %> --json"
9416
9482
  ],
9417
9483
  "flags": {
9484
+ "project": {
9485
+ "char": "P",
9486
+ "description": "Project ID (uses first project if only one exists)",
9487
+ "name": "project",
9488
+ "hasDynamicHelp": false,
9489
+ "multiple": false,
9490
+ "type": "option"
9491
+ },
9418
9492
  "json": {
9419
9493
  "description": "Output as JSON for AI agents/scripts",
9420
9494
  "name": "json",
@@ -9428,46 +9502,27 @@
9428
9502
  "allowNo": false,
9429
9503
  "type": "boolean"
9430
9504
  },
9431
- "url": {
9432
- "description": "MCP server URL (for remote servers)",
9433
- "name": "url",
9434
- "hasDynamicHelp": false,
9435
- "multiple": false,
9436
- "type": "option"
9437
- },
9438
- "command": {
9439
- "description": "Command to run (MCP server command or CLI tool binary)",
9440
- "name": "command",
9441
- "hasDynamicHelp": false,
9442
- "multiple": false,
9443
- "type": "option"
9444
- },
9445
- "auth": {
9446
- "description": "Environment variable for authentication (e.g., ARCADE_API_KEY)",
9447
- "name": "auth",
9448
- "hasDynamicHelp": false,
9449
- "multiple": false,
9450
- "type": "option"
9505
+ "check": {
9506
+ "description": "Only check if Trello credentials are valid (do not prompt)",
9507
+ "name": "check",
9508
+ "allowNo": false,
9509
+ "type": "boolean"
9451
9510
  },
9452
- "detect": {
9453
- "description": "Shell command to detect if CLI tool is installed",
9454
- "name": "detect",
9455
- "hasDynamicHelp": false,
9456
- "multiple": false,
9457
- "type": "option"
9511
+ "force": {
9512
+ "description": "Force re-authentication even if credentials exist",
9513
+ "name": "force",
9514
+ "allowNo": false,
9515
+ "type": "boolean"
9458
9516
  },
9459
- "install": {
9460
- "description": "Shell command to install the CLI tool",
9461
- "name": "install",
9462
- "hasDynamicHelp": false,
9463
- "multiple": false,
9464
- "type": "option"
9517
+ "disconnect": {
9518
+ "description": "Remove stored Trello credentials and configuration",
9519
+ "name": "disconnect",
9520
+ "allowNo": false,
9521
+ "type": "boolean"
9465
9522
  },
9466
- "description": {
9467
- "char": "d",
9468
- "description": "Human-readable description",
9469
- "name": "description",
9470
- "required": true,
9523
+ "board": {
9524
+ "description": "Default board ID or name",
9525
+ "name": "board",
9471
9526
  "hasDynamicHelp": false,
9472
9527
  "multiple": false,
9473
9528
  "type": "option"
@@ -9475,7 +9530,7 @@
9475
9530
  },
9476
9531
  "hasDynamicHelp": false,
9477
9532
  "hiddenAliases": [],
9478
- "id": "tools:add",
9533
+ "id": "trello:configure",
9479
9534
  "pluginAlias": "@proletariat/cli",
9480
9535
  "pluginName": "@proletariat/cli",
9481
9536
  "pluginType": "core",
@@ -9484,19 +9539,30 @@
9484
9539
  "relativePath": [
9485
9540
  "dist",
9486
9541
  "commands",
9487
- "tools",
9488
- "add.js"
9542
+ "trello",
9543
+ "configure.js"
9489
9544
  ]
9490
9545
  },
9491
- "tools:check": {
9546
+ "trello:import": {
9492
9547
  "aliases": [],
9493
9548
  "args": {},
9494
- "description": "Verify all registered tools are available and healthy",
9549
+ "description": "Import Trello cards into PMO as tickets",
9495
9550
  "examples": [
9496
- "<%= config.bin %> tools check",
9497
- "<%= config.bin %> tools check --json"
9551
+ "<%= config.bin %> <%= command.id %> # Interactive: select cards from board",
9552
+ "<%= config.bin %> <%= command.id %> --limit 50 # Import up to 50 cards",
9553
+ "<%= config.bin %> <%= command.id %> --all # Import all matching cards",
9554
+ "<%= config.bin %> <%= command.id %> --dry-run # Preview what would be imported",
9555
+ "<%= config.bin %> <%= command.id %> --json # JSON output for scripting"
9498
9556
  ],
9499
9557
  "flags": {
9558
+ "project": {
9559
+ "char": "P",
9560
+ "description": "Project ID (uses first project if only one exists)",
9561
+ "name": "project",
9562
+ "hasDynamicHelp": false,
9563
+ "multiple": false,
9564
+ "type": "option"
9565
+ },
9500
9566
  "json": {
9501
9567
  "description": "Output as JSON for AI agents/scripts",
9502
9568
  "name": "json",
@@ -9509,34 +9575,63 @@
9509
9575
  "name": "machine",
9510
9576
  "allowNo": false,
9511
9577
  "type": "boolean"
9578
+ },
9579
+ "limit": {
9580
+ "char": "n",
9581
+ "description": "Maximum number of cards to import",
9582
+ "name": "limit",
9583
+ "default": 50,
9584
+ "hasDynamicHelp": false,
9585
+ "multiple": false,
9586
+ "type": "option"
9587
+ },
9588
+ "all": {
9589
+ "char": "a",
9590
+ "description": "Import all matching cards without interactive selection",
9591
+ "name": "all",
9592
+ "allowNo": false,
9593
+ "type": "boolean"
9594
+ },
9595
+ "dry-run": {
9596
+ "description": "Preview cards that would be imported without creating tickets",
9597
+ "name": "dry-run",
9598
+ "allowNo": false,
9599
+ "type": "boolean"
9512
9600
  }
9513
9601
  },
9514
9602
  "hasDynamicHelp": false,
9515
9603
  "hiddenAliases": [],
9516
- "id": "tools:check",
9604
+ "id": "trello:import",
9517
9605
  "pluginAlias": "@proletariat/cli",
9518
9606
  "pluginName": "@proletariat/cli",
9519
9607
  "pluginType": "core",
9520
9608
  "strict": true,
9521
- "enableJsonFlag": false,
9522
9609
  "isESM": true,
9523
9610
  "relativePath": [
9524
9611
  "dist",
9525
9612
  "commands",
9526
- "tools",
9527
- "check.js"
9613
+ "trello",
9614
+ "import.js"
9528
9615
  ]
9529
9616
  },
9530
- "tools:detect": {
9617
+ "trello:sync": {
9531
9618
  "aliases": [],
9532
9619
  "args": {},
9533
- "description": "Auto-detect common CLI tools on the system and register them",
9620
+ "description": "Sync PMO tickets to Trello cards",
9534
9621
  "examples": [
9535
- "<%= config.bin %> tools detect",
9536
- "<%= config.bin %> tools detect --auto",
9537
- "<%= config.bin %> tools detect --json"
9622
+ "<%= config.bin %> <%= command.id %> --ticket TKT-001 --card abc123",
9623
+ "<%= config.bin %> <%= command.id %> --ticket TKT-001 --create-missing",
9624
+ "<%= config.bin %> <%= command.id %> --dry-run"
9538
9625
  ],
9539
9626
  "flags": {
9627
+ "project": {
9628
+ "char": "P",
9629
+ "description": "Project ID (uses first project if only one exists)",
9630
+ "name": "project",
9631
+ "hasDynamicHelp": false,
9632
+ "multiple": false,
9633
+ "type": "option"
9634
+ },
9540
9635
  "json": {
9541
9636
  "description": "Output as JSON for AI agents/scripts",
9542
9637
  "name": "json",
@@ -9550,38 +9645,77 @@
9550
9645
  "allowNo": false,
9551
9646
  "type": "boolean"
9552
9647
  },
9553
- "auto": {
9554
- "description": "Automatically register all detected tools without prompting",
9555
- "name": "auto",
9556
- "allowNo": false,
9557
- "type": "boolean"
9558
- }
9559
- },
9560
- "hasDynamicHelp": false,
9648
+ "ticket": {
9649
+ "description": "PMO ticket ID to sync (syncs all mapped tickets if omitted)",
9650
+ "name": "ticket",
9651
+ "hasDynamicHelp": false,
9652
+ "multiple": false,
9653
+ "type": "option"
9654
+ },
9655
+ "card": {
9656
+ "description": "Trello card ID to map to --ticket",
9657
+ "name": "card",
9658
+ "hasDynamicHelp": false,
9659
+ "multiple": false,
9660
+ "type": "option"
9661
+ },
9662
+ "list": {
9663
+ "description": "Trello list ID used with --create-missing",
9664
+ "name": "list",
9665
+ "hasDynamicHelp": false,
9666
+ "multiple": false,
9667
+ "type": "option"
9668
+ },
9669
+ "create-missing": {
9670
+ "description": "Create Trello card when no mapping exists (requires list)",
9671
+ "name": "create-missing",
9672
+ "allowNo": false,
9673
+ "type": "boolean"
9674
+ },
9675
+ "dry-run": {
9676
+ "description": "Preview sync operations without making changes",
9677
+ "name": "dry-run",
9678
+ "allowNo": false,
9679
+ "type": "boolean"
9680
+ }
9681
+ },
9682
+ "hasDynamicHelp": false,
9561
9683
  "hiddenAliases": [],
9562
- "id": "tools:detect",
9684
+ "id": "trello:sync",
9563
9685
  "pluginAlias": "@proletariat/cli",
9564
9686
  "pluginName": "@proletariat/cli",
9565
9687
  "pluginType": "core",
9566
9688
  "strict": true,
9567
- "enableJsonFlag": false,
9568
9689
  "isESM": true,
9569
9690
  "relativePath": [
9570
9691
  "dist",
9571
9692
  "commands",
9572
- "tools",
9573
- "detect.js"
9693
+ "trello",
9694
+ "sync.js"
9574
9695
  ]
9575
9696
  },
9576
- "tools": {
9577
- "aliases": [
9578
- "tools:list"
9579
- ],
9580
- "args": {},
9581
- "description": "Show all registered MCP servers and CLI tools",
9697
+ "tools:add": {
9698
+ "aliases": [],
9699
+ "args": {
9700
+ "type": {
9701
+ "description": "Tool type (mcp or cli)",
9702
+ "name": "type",
9703
+ "options": [
9704
+ "mcp",
9705
+ "cli"
9706
+ ],
9707
+ "required": true
9708
+ },
9709
+ "name": {
9710
+ "description": "Tool name (unique identifier)",
9711
+ "name": "name",
9712
+ "required": true
9713
+ }
9714
+ },
9715
+ "description": "Register an MCP server or CLI tool",
9582
9716
  "examples": [
9583
- "<%= config.bin %> tools",
9584
- "<%= config.bin %> tools --json"
9717
+ "<%= config.bin %> tools add mcp arcade --url https://api.arcade.dev/mcp --auth ARCADE_API_KEY --description \"Arcade integrations\"",
9718
+ "<%= config.bin %> tools add cli gh --command gh --detect \"which gh\" --install \"brew install gh\" --description \"GitHub CLI\""
9585
9719
  ],
9586
9720
  "flags": {
9587
9721
  "json": {
@@ -9596,37 +9730,74 @@
9596
9730
  "name": "machine",
9597
9731
  "allowNo": false,
9598
9732
  "type": "boolean"
9733
+ },
9734
+ "url": {
9735
+ "description": "MCP server URL (for remote servers)",
9736
+ "name": "url",
9737
+ "hasDynamicHelp": false,
9738
+ "multiple": false,
9739
+ "type": "option"
9740
+ },
9741
+ "command": {
9742
+ "description": "Command to run (MCP server command or CLI tool binary)",
9743
+ "name": "command",
9744
+ "hasDynamicHelp": false,
9745
+ "multiple": false,
9746
+ "type": "option"
9747
+ },
9748
+ "auth": {
9749
+ "description": "Environment variable for authentication (e.g., ARCADE_API_KEY)",
9750
+ "name": "auth",
9751
+ "hasDynamicHelp": false,
9752
+ "multiple": false,
9753
+ "type": "option"
9754
+ },
9755
+ "detect": {
9756
+ "description": "Shell command to detect if CLI tool is installed",
9757
+ "name": "detect",
9758
+ "hasDynamicHelp": false,
9759
+ "multiple": false,
9760
+ "type": "option"
9761
+ },
9762
+ "install": {
9763
+ "description": "Shell command to install the CLI tool",
9764
+ "name": "install",
9765
+ "hasDynamicHelp": false,
9766
+ "multiple": false,
9767
+ "type": "option"
9768
+ },
9769
+ "description": {
9770
+ "char": "d",
9771
+ "description": "Human-readable description",
9772
+ "name": "description",
9773
+ "required": true,
9774
+ "hasDynamicHelp": false,
9775
+ "multiple": false,
9776
+ "type": "option"
9599
9777
  }
9600
9778
  },
9601
9779
  "hasDynamicHelp": false,
9602
9780
  "hiddenAliases": [],
9603
- "id": "tools",
9781
+ "id": "tools:add",
9604
9782
  "pluginAlias": "@proletariat/cli",
9605
9783
  "pluginName": "@proletariat/cli",
9606
9784
  "pluginType": "core",
9607
9785
  "strict": true,
9608
- "enableJsonFlag": false,
9609
9786
  "isESM": true,
9610
9787
  "relativePath": [
9611
9788
  "dist",
9612
9789
  "commands",
9613
9790
  "tools",
9614
- "index.js"
9791
+ "add.js"
9615
9792
  ]
9616
9793
  },
9617
- "tools:remove": {
9794
+ "tools:check": {
9618
9795
  "aliases": [],
9619
- "args": {
9620
- "name": {
9621
- "description": "Tool name to remove",
9622
- "name": "name",
9623
- "required": true
9624
- }
9625
- },
9626
- "description": "Remove a tool from the registry",
9796
+ "args": {},
9797
+ "description": "Verify all registered tools are available and healthy",
9627
9798
  "examples": [
9628
- "<%= config.bin %> tools remove arcade",
9629
- "<%= config.bin %> tools remove ffmpeg"
9799
+ "<%= config.bin %> tools check",
9800
+ "<%= config.bin %> tools check --json"
9630
9801
  ],
9631
9802
  "flags": {
9632
9803
  "json": {
@@ -9645,7 +9816,7 @@
9645
9816
  },
9646
9817
  "hasDynamicHelp": false,
9647
9818
  "hiddenAliases": [],
9648
- "id": "tools:remove",
9819
+ "id": "tools:check",
9649
9820
  "pluginAlias": "@proletariat/cli",
9650
9821
  "pluginName": "@proletariat/cli",
9651
9822
  "pluginType": "core",
@@ -9656,30 +9827,19 @@
9656
9827
  "dist",
9657
9828
  "commands",
9658
9829
  "tools",
9659
- "remove.js"
9830
+ "check.js"
9660
9831
  ]
9661
9832
  },
9662
- "trello:configure": {
9833
+ "tools:detect": {
9663
9834
  "aliases": [],
9664
9835
  "args": {},
9665
- "description": "Connect to Trello and configure authentication",
9836
+ "description": "Auto-detect common CLI tools on the system and register them",
9666
9837
  "examples": [
9667
- "<%= config.bin %> <%= command.id %>",
9668
- "<%= config.bin %> <%= command.id %> --check",
9669
- "<%= config.bin %> <%= command.id %> --force",
9670
- "<%= config.bin %> <%= command.id %> --disconnect",
9671
- "TRELLO_API_KEY=... TRELLO_API_TOKEN=... <%= config.bin %> <%= command.id %>",
9672
- "<%= config.bin %> <%= command.id %> --json"
9838
+ "<%= config.bin %> tools detect",
9839
+ "<%= config.bin %> tools detect --auto",
9840
+ "<%= config.bin %> tools detect --json"
9673
9841
  ],
9674
9842
  "flags": {
9675
- "project": {
9676
- "char": "P",
9677
- "description": "Project ID (uses first project if only one exists)",
9678
- "name": "project",
9679
- "hasDynamicHelp": false,
9680
- "multiple": false,
9681
- "type": "option"
9682
- },
9683
9843
  "json": {
9684
9844
  "description": "Output as JSON for AI agents/scripts",
9685
9845
  "name": "json",
@@ -9693,67 +9853,40 @@
9693
9853
  "allowNo": false,
9694
9854
  "type": "boolean"
9695
9855
  },
9696
- "check": {
9697
- "description": "Only check if Trello credentials are valid (do not prompt)",
9698
- "name": "check",
9699
- "allowNo": false,
9700
- "type": "boolean"
9701
- },
9702
- "force": {
9703
- "description": "Force re-authentication even if credentials exist",
9704
- "name": "force",
9705
- "allowNo": false,
9706
- "type": "boolean"
9707
- },
9708
- "disconnect": {
9709
- "description": "Remove stored Trello credentials and configuration",
9710
- "name": "disconnect",
9856
+ "auto": {
9857
+ "description": "Automatically register all detected tools without prompting",
9858
+ "name": "auto",
9711
9859
  "allowNo": false,
9712
9860
  "type": "boolean"
9713
- },
9714
- "board": {
9715
- "description": "Default board ID or name",
9716
- "name": "board",
9717
- "hasDynamicHelp": false,
9718
- "multiple": false,
9719
- "type": "option"
9720
9861
  }
9721
9862
  },
9722
9863
  "hasDynamicHelp": false,
9723
9864
  "hiddenAliases": [],
9724
- "id": "trello:configure",
9865
+ "id": "tools:detect",
9725
9866
  "pluginAlias": "@proletariat/cli",
9726
9867
  "pluginName": "@proletariat/cli",
9727
9868
  "pluginType": "core",
9728
9869
  "strict": true,
9870
+ "enableJsonFlag": false,
9729
9871
  "isESM": true,
9730
9872
  "relativePath": [
9731
9873
  "dist",
9732
9874
  "commands",
9733
- "trello",
9734
- "configure.js"
9875
+ "tools",
9876
+ "detect.js"
9735
9877
  ]
9736
9878
  },
9737
- "trello:import": {
9738
- "aliases": [],
9879
+ "tools": {
9880
+ "aliases": [
9881
+ "tools:list"
9882
+ ],
9739
9883
  "args": {},
9740
- "description": "Import Trello cards into PMO as tickets",
9884
+ "description": "Show all registered MCP servers and CLI tools",
9741
9885
  "examples": [
9742
- "<%= config.bin %> <%= command.id %> # Interactive: select cards from board",
9743
- "<%= config.bin %> <%= command.id %> --limit 50 # Import up to 50 cards",
9744
- "<%= config.bin %> <%= command.id %> --all # Import all matching cards",
9745
- "<%= config.bin %> <%= command.id %> --dry-run # Preview what would be imported",
9746
- "<%= config.bin %> <%= command.id %> --json # JSON output for scripting"
9886
+ "<%= config.bin %> tools",
9887
+ "<%= config.bin %> tools --json"
9747
9888
  ],
9748
9889
  "flags": {
9749
- "project": {
9750
- "char": "P",
9751
- "description": "Project ID (uses first project if only one exists)",
9752
- "name": "project",
9753
- "hasDynamicHelp": false,
9754
- "multiple": false,
9755
- "type": "option"
9756
- },
9757
9890
  "json": {
9758
9891
  "description": "Output as JSON for AI agents/scripts",
9759
9892
  "name": "json",
@@ -9766,63 +9899,39 @@
9766
9899
  "name": "machine",
9767
9900
  "allowNo": false,
9768
9901
  "type": "boolean"
9769
- },
9770
- "limit": {
9771
- "char": "n",
9772
- "description": "Maximum number of cards to import",
9773
- "name": "limit",
9774
- "default": 50,
9775
- "hasDynamicHelp": false,
9776
- "multiple": false,
9777
- "type": "option"
9778
- },
9779
- "all": {
9780
- "char": "a",
9781
- "description": "Import all matching cards without interactive selection",
9782
- "name": "all",
9783
- "allowNo": false,
9784
- "type": "boolean"
9785
- },
9786
- "dry-run": {
9787
- "description": "Preview cards that would be imported without creating tickets",
9788
- "name": "dry-run",
9789
- "allowNo": false,
9790
- "type": "boolean"
9791
9902
  }
9792
9903
  },
9793
9904
  "hasDynamicHelp": false,
9794
9905
  "hiddenAliases": [],
9795
- "id": "trello:import",
9906
+ "id": "tools",
9796
9907
  "pluginAlias": "@proletariat/cli",
9797
9908
  "pluginName": "@proletariat/cli",
9798
9909
  "pluginType": "core",
9799
9910
  "strict": true,
9911
+ "enableJsonFlag": false,
9800
9912
  "isESM": true,
9801
9913
  "relativePath": [
9802
9914
  "dist",
9803
9915
  "commands",
9804
- "trello",
9805
- "import.js"
9916
+ "tools",
9917
+ "index.js"
9806
9918
  ]
9807
9919
  },
9808
- "trello:sync": {
9920
+ "tools:remove": {
9809
9921
  "aliases": [],
9810
- "args": {},
9811
- "description": "Sync PMO tickets to Trello cards",
9922
+ "args": {
9923
+ "name": {
9924
+ "description": "Tool name to remove",
9925
+ "name": "name",
9926
+ "required": true
9927
+ }
9928
+ },
9929
+ "description": "Remove a tool from the registry",
9812
9930
  "examples": [
9813
- "<%= config.bin %> <%= command.id %> --ticket TKT-001 --card abc123",
9814
- "<%= config.bin %> <%= command.id %> --ticket TKT-001 --create-missing",
9815
- "<%= config.bin %> <%= command.id %> --dry-run"
9931
+ "<%= config.bin %> tools remove arcade",
9932
+ "<%= config.bin %> tools remove ffmpeg"
9816
9933
  ],
9817
9934
  "flags": {
9818
- "project": {
9819
- "char": "P",
9820
- "description": "Project ID (uses first project if only one exists)",
9821
- "name": "project",
9822
- "hasDynamicHelp": false,
9823
- "multiple": false,
9824
- "type": "option"
9825
- },
9826
9935
  "json": {
9827
9936
  "description": "Output as JSON for AI agents/scripts",
9828
9937
  "name": "json",
@@ -9835,54 +9944,22 @@
9835
9944
  "name": "machine",
9836
9945
  "allowNo": false,
9837
9946
  "type": "boolean"
9838
- },
9839
- "ticket": {
9840
- "description": "PMO ticket ID to sync (syncs all mapped tickets if omitted)",
9841
- "name": "ticket",
9842
- "hasDynamicHelp": false,
9843
- "multiple": false,
9844
- "type": "option"
9845
- },
9846
- "card": {
9847
- "description": "Trello card ID to map to --ticket",
9848
- "name": "card",
9849
- "hasDynamicHelp": false,
9850
- "multiple": false,
9851
- "type": "option"
9852
- },
9853
- "list": {
9854
- "description": "Trello list ID used with --create-missing",
9855
- "name": "list",
9856
- "hasDynamicHelp": false,
9857
- "multiple": false,
9858
- "type": "option"
9859
- },
9860
- "create-missing": {
9861
- "description": "Create Trello card when no mapping exists (requires list)",
9862
- "name": "create-missing",
9863
- "allowNo": false,
9864
- "type": "boolean"
9865
- },
9866
- "dry-run": {
9867
- "description": "Preview sync operations without making changes",
9868
- "name": "dry-run",
9869
- "allowNo": false,
9870
- "type": "boolean"
9871
9947
  }
9872
9948
  },
9873
9949
  "hasDynamicHelp": false,
9874
9950
  "hiddenAliases": [],
9875
- "id": "trello:sync",
9951
+ "id": "tools:remove",
9876
9952
  "pluginAlias": "@proletariat/cli",
9877
9953
  "pluginName": "@proletariat/cli",
9878
9954
  "pluginType": "core",
9879
9955
  "strict": true,
9956
+ "enableJsonFlag": false,
9880
9957
  "isESM": true,
9881
9958
  "relativePath": [
9882
9959
  "dist",
9883
9960
  "commands",
9884
- "trello",
9885
- "sync.js"
9961
+ "tools",
9962
+ "remove.js"
9886
9963
  ]
9887
9964
  },
9888
9965
  "ticket:bulk": {
@@ -11730,6 +11807,128 @@
11730
11807
  "complete.js"
11731
11808
  ]
11732
11809
  },
11810
+ "work:groom": {
11811
+ "aliases": [],
11812
+ "args": {
11813
+ "ticketId": {
11814
+ "description": "Ticket ID(s) to groom - prompts with picker if not provided",
11815
+ "name": "ticketId",
11816
+ "required": false
11817
+ }
11818
+ },
11819
+ "description": "Enrich a ticket with requirements, acceptance criteria, and subtasks",
11820
+ "examples": [
11821
+ "<%= config.bin %> work groom TKT-001",
11822
+ "<%= config.bin %> work groom TKT-001 TKT-002",
11823
+ "<%= config.bin %> work groom # Interactive picker for backlog tickets"
11824
+ ],
11825
+ "flags": {
11826
+ "project": {
11827
+ "char": "P",
11828
+ "description": "Project ID (uses first project if only one exists)",
11829
+ "name": "project",
11830
+ "hasDynamicHelp": false,
11831
+ "multiple": false,
11832
+ "type": "option"
11833
+ },
11834
+ "json": {
11835
+ "aliases": [
11836
+ "machine"
11837
+ ],
11838
+ "char": "m",
11839
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
11840
+ "name": "json",
11841
+ "allowNo": false,
11842
+ "type": "boolean"
11843
+ },
11844
+ "machine": {
11845
+ "char": "m",
11846
+ "description": "Output as JSON for AI agents/scripts",
11847
+ "name": "machine",
11848
+ "allowNo": false,
11849
+ "type": "boolean"
11850
+ }
11851
+ },
11852
+ "hasDynamicHelp": false,
11853
+ "hiddenAliases": [],
11854
+ "id": "work:groom",
11855
+ "pluginAlias": "@proletariat/cli",
11856
+ "pluginName": "@proletariat/cli",
11857
+ "pluginType": "core",
11858
+ "strict": false,
11859
+ "isESM": true,
11860
+ "relativePath": [
11861
+ "dist",
11862
+ "commands",
11863
+ "work",
11864
+ "groom.js"
11865
+ ]
11866
+ },
11867
+ "work:implement": {
11868
+ "aliases": [],
11869
+ "args": {
11870
+ "ticketId": {
11871
+ "description": "Ticket ID(s) to work on - prompts with picker if not provided",
11872
+ "name": "ticketId",
11873
+ "required": false
11874
+ }
11875
+ },
11876
+ "description": "Spawn agent to implement, continue, revise, or test a ticket (context-driven)",
11877
+ "examples": [
11878
+ "<%= config.bin %> work implement TKT-001",
11879
+ "<%= config.bin %> work implement TKT-001 --message \"Focus on the auth module\"",
11880
+ "<%= config.bin %> work implement # Interactive picker for todo/in-progress tickets"
11881
+ ],
11882
+ "flags": {
11883
+ "project": {
11884
+ "char": "P",
11885
+ "description": "Project ID (uses first project if only one exists)",
11886
+ "name": "project",
11887
+ "hasDynamicHelp": false,
11888
+ "multiple": false,
11889
+ "type": "option"
11890
+ },
11891
+ "json": {
11892
+ "aliases": [
11893
+ "machine"
11894
+ ],
11895
+ "char": "m",
11896
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
11897
+ "name": "json",
11898
+ "allowNo": false,
11899
+ "type": "boolean"
11900
+ },
11901
+ "machine": {
11902
+ "char": "m",
11903
+ "description": "Output as JSON for AI agents/scripts",
11904
+ "name": "machine",
11905
+ "allowNo": false,
11906
+ "type": "boolean"
11907
+ },
11908
+ "message": {
11909
+ "char": "M",
11910
+ "description": "Additional instructions for the agent",
11911
+ "name": "message",
11912
+ "hasDynamicHelp": false,
11913
+ "multiple": false,
11914
+ "type": "option"
11915
+ }
11916
+ },
11917
+ "hasDynamicHelp": false,
11918
+ "hiddenAliases": [],
11919
+ "id": "work:implement",
11920
+ "pluginAlias": "@proletariat/cli",
11921
+ "pluginName": "@proletariat/cli",
11922
+ "pluginType": "core",
11923
+ "strict": false,
11924
+ "isESM": true,
11925
+ "relativePath": [
11926
+ "dist",
11927
+ "commands",
11928
+ "work",
11929
+ "implement.js"
11930
+ ]
11931
+ },
11733
11932
  "work": {
11734
11933
  "aliases": [],
11735
11934
  "args": {},
@@ -12054,17 +12253,192 @@
12054
12253
  "allowNo": false,
12055
12254
  "type": "boolean"
12056
12255
  },
12057
- "yes": {
12058
- "char": "y",
12059
- "description": "Skip confirmation prompts in downstream work start",
12060
- "name": "yes",
12256
+ "yes": {
12257
+ "char": "y",
12258
+ "description": "Skip confirmation prompts in downstream work start",
12259
+ "name": "yes",
12260
+ "allowNo": false,
12261
+ "type": "boolean"
12262
+ }
12263
+ },
12264
+ "hasDynamicHelp": false,
12265
+ "hiddenAliases": [],
12266
+ "id": "work:linear",
12267
+ "pluginAlias": "@proletariat/cli",
12268
+ "pluginName": "@proletariat/cli",
12269
+ "pluginType": "core",
12270
+ "strict": true,
12271
+ "isESM": true,
12272
+ "relativePath": [
12273
+ "dist",
12274
+ "commands",
12275
+ "work",
12276
+ "linear.js"
12277
+ ]
12278
+ },
12279
+ "work:peek": {
12280
+ "aliases": [],
12281
+ "args": {
12282
+ "ticketId": {
12283
+ "description": "Ticket ID to peek at",
12284
+ "name": "ticketId",
12285
+ "required": true
12286
+ }
12287
+ },
12288
+ "description": "View what an agent is doing on a ticket (non-interactive)",
12289
+ "examples": [
12290
+ "<%= config.bin %> work peek TKT-001",
12291
+ "<%= config.bin %> work peek TKT-001 --lines 100",
12292
+ "<%= config.bin %> work peek TKT-001 --follow",
12293
+ "<%= config.bin %> work peek TKT-001 --full"
12294
+ ],
12295
+ "flags": {
12296
+ "project": {
12297
+ "char": "P",
12298
+ "description": "Project ID (uses first project if only one exists)",
12299
+ "name": "project",
12300
+ "hasDynamicHelp": false,
12301
+ "multiple": false,
12302
+ "type": "option"
12303
+ },
12304
+ "json": {
12305
+ "aliases": [
12306
+ "machine"
12307
+ ],
12308
+ "char": "m",
12309
+ "description": "Output as JSON",
12310
+ "name": "json",
12311
+ "allowNo": false,
12312
+ "type": "boolean"
12313
+ },
12314
+ "machine": {
12315
+ "char": "m",
12316
+ "description": "Output as JSON for AI agents/scripts",
12317
+ "name": "machine",
12318
+ "allowNo": false,
12319
+ "type": "boolean"
12320
+ },
12321
+ "lines": {
12322
+ "char": "l",
12323
+ "description": "Number of scrollback lines to capture",
12324
+ "name": "lines",
12325
+ "default": 200,
12326
+ "hasDynamicHelp": false,
12327
+ "multiple": false,
12328
+ "type": "option"
12329
+ },
12330
+ "full": {
12331
+ "description": "Capture entire scrollback buffer",
12332
+ "name": "full",
12333
+ "allowNo": false,
12334
+ "type": "boolean"
12335
+ },
12336
+ "follow": {
12337
+ "char": "f",
12338
+ "description": "Stream output continuously (like tail -f)",
12339
+ "name": "follow",
12340
+ "allowNo": false,
12341
+ "type": "boolean"
12342
+ },
12343
+ "since": {
12344
+ "description": "Filter output to lines after this timestamp (ISO 8601)",
12345
+ "name": "since",
12346
+ "hasDynamicHelp": false,
12347
+ "multiple": false,
12348
+ "type": "option"
12349
+ }
12350
+ },
12351
+ "hasDynamicHelp": false,
12352
+ "hiddenAliases": [],
12353
+ "id": "work:peek",
12354
+ "pluginAlias": "@proletariat/cli",
12355
+ "pluginName": "@proletariat/cli",
12356
+ "pluginType": "core",
12357
+ "strict": true,
12358
+ "isESM": true,
12359
+ "relativePath": [
12360
+ "dist",
12361
+ "commands",
12362
+ "work",
12363
+ "peek.js"
12364
+ ]
12365
+ },
12366
+ "work:poke": {
12367
+ "aliases": [
12368
+ "work:steer"
12369
+ ],
12370
+ "args": {
12371
+ "ticketId": {
12372
+ "description": "Ticket ID of the running agent",
12373
+ "name": "ticketId",
12374
+ "required": true
12375
+ },
12376
+ "message": {
12377
+ "description": "Message to send (use \"-\" to read from stdin, or omit with --file)",
12378
+ "name": "message",
12379
+ "required": false
12380
+ }
12381
+ },
12382
+ "description": "Send a message to steer an agent working on a ticket",
12383
+ "examples": [
12384
+ "<%= config.bin %> work poke TKT-001 \"Focus on the tests first\"",
12385
+ "<%= config.bin %> work poke TKT-001 --file instructions.md",
12386
+ "<%= config.bin %> work poke TKT-001 \"Run the tests\" --wait",
12387
+ "<%= config.bin %> work steer TKT-001 \"Add error handling\""
12388
+ ],
12389
+ "flags": {
12390
+ "project": {
12391
+ "char": "P",
12392
+ "description": "Project ID (uses first project if only one exists)",
12393
+ "name": "project",
12394
+ "hasDynamicHelp": false,
12395
+ "multiple": false,
12396
+ "type": "option"
12397
+ },
12398
+ "json": {
12399
+ "aliases": [
12400
+ "machine"
12401
+ ],
12402
+ "char": "m",
12403
+ "description": "Output as JSON",
12404
+ "name": "json",
12405
+ "allowNo": false,
12406
+ "type": "boolean"
12407
+ },
12408
+ "machine": {
12409
+ "char": "m",
12410
+ "description": "Output as JSON for AI agents/scripts",
12411
+ "name": "machine",
12412
+ "allowNo": false,
12413
+ "type": "boolean"
12414
+ },
12415
+ "file": {
12416
+ "char": "F",
12417
+ "description": "Read message from a file",
12418
+ "name": "file",
12419
+ "hasDynamicHelp": false,
12420
+ "multiple": false,
12421
+ "type": "option"
12422
+ },
12423
+ "wait": {
12424
+ "char": "w",
12425
+ "description": "Wait for response after sending",
12426
+ "name": "wait",
12061
12427
  "allowNo": false,
12062
12428
  "type": "boolean"
12429
+ },
12430
+ "timeout": {
12431
+ "description": "Timeout in seconds for --wait mode",
12432
+ "name": "timeout",
12433
+ "default": 120,
12434
+ "hasDynamicHelp": false,
12435
+ "multiple": false,
12436
+ "type": "option"
12063
12437
  }
12064
12438
  },
12065
12439
  "hasDynamicHelp": false,
12066
12440
  "hiddenAliases": [],
12067
- "id": "work:linear",
12441
+ "id": "work:poke",
12068
12442
  "pluginAlias": "@proletariat/cli",
12069
12443
  "pluginName": "@proletariat/cli",
12070
12444
  "pluginType": "core",
@@ -12074,7 +12448,7 @@
12074
12448
  "dist",
12075
12449
  "commands",
12076
12450
  "work",
12077
- "linear.js"
12451
+ "poke.js"
12078
12452
  ]
12079
12453
  },
12080
12454
  "work:ready": {
@@ -12211,17 +12585,16 @@
12211
12585
  "aliases": [],
12212
12586
  "args": {
12213
12587
  "ticketId": {
12214
- "description": "Ticket ID to review",
12588
+ "description": "Ticket ID(s) to review - prompts with picker if not provided",
12215
12589
  "name": "ticketId",
12216
12590
  "required": false
12217
12591
  }
12218
12592
  },
12219
- "description": "Automated review-fix pipeline: review fix re-review until clean",
12593
+ "description": "Evaluate the output/PR for a ticket (model decides whether to comment, fix, or both)",
12220
12594
  "examples": [
12221
- "<%= config.bin %> <%= command.id %> TKT-001",
12222
- "<%= config.bin %> <%= command.id %> TKT-001 --max-cycles 5",
12223
- "<%= config.bin %> <%= command.id %> TKT-001 --auto # Skip confirmations between cycles",
12224
- "<%= config.bin %> <%= command.id %> # Interactive mode"
12595
+ "<%= config.bin %> work review TKT-001",
12596
+ "<%= config.bin %> work review TKT-001 TKT-002",
12597
+ "<%= config.bin %> work review # Interactive picker for reviewable tickets"
12225
12598
  ],
12226
12599
  "flags": {
12227
12600
  "project": {
@@ -12233,7 +12606,11 @@
12233
12606
  "type": "option"
12234
12607
  },
12235
12608
  "json": {
12236
- "description": "Output as JSON for AI agents/scripts",
12609
+ "aliases": [
12610
+ "machine"
12611
+ ],
12612
+ "char": "m",
12613
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
12237
12614
  "name": "json",
12238
12615
  "allowNo": false,
12239
12616
  "type": "boolean"
@@ -12244,87 +12621,6 @@
12244
12621
  "name": "machine",
12245
12622
  "allowNo": false,
12246
12623
  "type": "boolean"
12247
- },
12248
- "max-cycles": {
12249
- "description": "Maximum review-fix cycles before stopping (default: 3)",
12250
- "name": "max-cycles",
12251
- "default": 3,
12252
- "hasDynamicHelp": false,
12253
- "multiple": false,
12254
- "type": "option"
12255
- },
12256
- "auto": {
12257
- "description": "Skip confirmations between cycles (fully automated)",
12258
- "name": "auto",
12259
- "allowNo": false,
12260
- "type": "boolean"
12261
- },
12262
- "executor": {
12263
- "char": "e",
12264
- "description": "Override executor",
12265
- "name": "executor",
12266
- "hasDynamicHelp": false,
12267
- "multiple": false,
12268
- "options": [
12269
- "claude-code",
12270
- "codex",
12271
- "custom"
12272
- ],
12273
- "type": "option"
12274
- },
12275
- "run-on-host": {
12276
- "description": "Run on host even if devcontainer exists (bypasses sandbox)",
12277
- "name": "run-on-host",
12278
- "allowNo": false,
12279
- "type": "boolean"
12280
- },
12281
- "skip-permissions": {
12282
- "description": "Skip permission checks for agents",
12283
- "name": "skip-permissions",
12284
- "allowNo": false,
12285
- "type": "boolean"
12286
- },
12287
- "display": {
12288
- "char": "d",
12289
- "description": "Display mode for agents",
12290
- "name": "display",
12291
- "default": "background",
12292
- "hasDynamicHelp": false,
12293
- "multiple": false,
12294
- "options": [
12295
- "foreground",
12296
- "terminal",
12297
- "background"
12298
- ],
12299
- "type": "option"
12300
- },
12301
- "session": {
12302
- "char": "s",
12303
- "description": "Session manager inside container",
12304
- "name": "session",
12305
- "default": "tmux",
12306
- "hasDynamicHelp": false,
12307
- "multiple": false,
12308
- "options": [
12309
- "tmux",
12310
- "direct"
12311
- ],
12312
- "type": "option"
12313
- },
12314
- "poll-interval": {
12315
- "description": "Polling interval in seconds to check agent completion (default: 10)",
12316
- "name": "poll-interval",
12317
- "default": 10,
12318
- "hasDynamicHelp": false,
12319
- "multiple": false,
12320
- "type": "option"
12321
- },
12322
- "force": {
12323
- "char": "f",
12324
- "description": "Force spawn even if ticket has running executions",
12325
- "name": "force",
12326
- "allowNo": false,
12327
- "type": "boolean"
12328
12624
  }
12329
12625
  },
12330
12626
  "hasDynamicHelp": false,
@@ -12333,7 +12629,7 @@
12333
12629
  "pluginAlias": "@proletariat/cli",
12334
12630
  "pluginName": "@proletariat/cli",
12335
12631
  "pluginType": "core",
12336
- "strict": true,
12632
+ "strict": false,
12337
12633
  "isESM": true,
12338
12634
  "relativePath": [
12339
12635
  "dist",
@@ -12342,113 +12638,6 @@
12342
12638
  "review.js"
12343
12639
  ]
12344
12640
  },
12345
- "work:revise": {
12346
- "aliases": [],
12347
- "args": {
12348
- "ticketId": {
12349
- "description": "Ticket ID - prompts with dropdown if not provided",
12350
- "name": "ticketId",
12351
- "required": false
12352
- }
12353
- },
12354
- "description": "Address PR feedback on a ticket (fetches reviews/comments and spawns agent)",
12355
- "examples": [
12356
- "<%= config.bin %> <%= command.id %> TKT-001",
12357
- "<%= config.bin %> <%= command.id %> # Interactive mode",
12358
- "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
12359
- ],
12360
- "flags": {
12361
- "project": {
12362
- "char": "P",
12363
- "description": "Project ID (uses first project if only one exists)",
12364
- "name": "project",
12365
- "hasDynamicHelp": false,
12366
- "multiple": false,
12367
- "type": "option"
12368
- },
12369
- "json": {
12370
- "description": "Output as JSON for AI agents/scripts",
12371
- "name": "json",
12372
- "allowNo": false,
12373
- "type": "boolean"
12374
- },
12375
- "machine": {
12376
- "char": "m",
12377
- "description": "Output as JSON for AI agents/scripts",
12378
- "name": "machine",
12379
- "allowNo": false,
12380
- "type": "boolean"
12381
- },
12382
- "mode": {
12383
- "char": "d",
12384
- "description": "Runtime mode",
12385
- "name": "mode",
12386
- "hasDynamicHelp": false,
12387
- "multiple": false,
12388
- "options": [
12389
- "foreground",
12390
- "background",
12391
- "tmux",
12392
- "terminal",
12393
- "devcontainer"
12394
- ],
12395
- "type": "option"
12396
- },
12397
- "executor": {
12398
- "char": "e",
12399
- "description": "Override executor",
12400
- "name": "executor",
12401
- "hasDynamicHelp": false,
12402
- "multiple": false,
12403
- "options": [
12404
- "claude-code",
12405
- "codex",
12406
- "custom"
12407
- ],
12408
- "type": "option"
12409
- },
12410
- "force": {
12411
- "char": "f",
12412
- "description": "Start even if no pending feedback",
12413
- "name": "force",
12414
- "allowNo": false,
12415
- "type": "boolean"
12416
- },
12417
- "run-on-host": {
12418
- "description": "Run on host even if devcontainer exists (bypasses sandbox)",
12419
- "name": "run-on-host",
12420
- "allowNo": false,
12421
- "type": "boolean"
12422
- },
12423
- "session": {
12424
- "char": "s",
12425
- "description": "Session manager inside container (tmux runs agent in tmux inside container)",
12426
- "name": "session",
12427
- "default": "tmux",
12428
- "hasDynamicHelp": false,
12429
- "multiple": false,
12430
- "options": [
12431
- "tmux",
12432
- "direct"
12433
- ],
12434
- "type": "option"
12435
- }
12436
- },
12437
- "hasDynamicHelp": false,
12438
- "hiddenAliases": [],
12439
- "id": "work:revise",
12440
- "pluginAlias": "@proletariat/cli",
12441
- "pluginName": "@proletariat/cli",
12442
- "pluginType": "core",
12443
- "strict": true,
12444
- "isESM": true,
12445
- "relativePath": [
12446
- "dist",
12447
- "commands",
12448
- "work",
12449
- "revise.js"
12450
- ]
12451
- },
12452
12641
  "work:shortcut": {
12453
12642
  "aliases": [],
12454
12643
  "args": {},
@@ -13271,6 +13460,24 @@
13271
13460
  "hasDynamicHelp": false,
13272
13461
  "multiple": false,
13273
13462
  "type": "option"
13463
+ },
13464
+ "keep-alive": {
13465
+ "description": "Keep container running after agent exits (shorthand for --cleanup persistent)",
13466
+ "name": "keep-alive",
13467
+ "allowNo": false,
13468
+ "type": "boolean"
13469
+ },
13470
+ "cleanup": {
13471
+ "description": "Container cleanup policy (on-exit, persistent, on-error-keep)",
13472
+ "name": "cleanup",
13473
+ "hasDynamicHelp": false,
13474
+ "multiple": false,
13475
+ "options": [
13476
+ "on-exit",
13477
+ "persistent",
13478
+ "on-error-keep"
13479
+ ],
13480
+ "type": "option"
13274
13481
  }
13275
13482
  },
13276
13483
  "hasDynamicHelp": false,
@@ -13334,6 +13541,62 @@
13334
13541
  "status.js"
13335
13542
  ]
13336
13543
  },
13544
+ "work:stop": {
13545
+ "aliases": [],
13546
+ "args": {
13547
+ "ticketId": {
13548
+ "description": "Ticket ID to stop",
13549
+ "name": "ticketId",
13550
+ "required": true
13551
+ }
13552
+ },
13553
+ "description": "Stop a running agent working on a ticket",
13554
+ "examples": [
13555
+ "<%= config.bin %> work stop TKT-001",
13556
+ "<%= config.bin %> work stop TKT-001 --json"
13557
+ ],
13558
+ "flags": {
13559
+ "project": {
13560
+ "char": "P",
13561
+ "description": "Project ID (uses first project if only one exists)",
13562
+ "name": "project",
13563
+ "hasDynamicHelp": false,
13564
+ "multiple": false,
13565
+ "type": "option"
13566
+ },
13567
+ "json": {
13568
+ "aliases": [
13569
+ "machine"
13570
+ ],
13571
+ "char": "m",
13572
+ "description": "Output as JSON",
13573
+ "name": "json",
13574
+ "allowNo": false,
13575
+ "type": "boolean"
13576
+ },
13577
+ "machine": {
13578
+ "char": "m",
13579
+ "description": "Output as JSON for AI agents/scripts",
13580
+ "name": "machine",
13581
+ "allowNo": false,
13582
+ "type": "boolean"
13583
+ }
13584
+ },
13585
+ "hasDynamicHelp": false,
13586
+ "hiddenAliases": [],
13587
+ "id": "work:stop",
13588
+ "pluginAlias": "@proletariat/cli",
13589
+ "pluginName": "@proletariat/cli",
13590
+ "pluginType": "core",
13591
+ "strict": true,
13592
+ "isESM": true,
13593
+ "relativePath": [
13594
+ "dist",
13595
+ "commands",
13596
+ "work",
13597
+ "stop.js"
13598
+ ]
13599
+ },
13337
13600
  "work:watch": {
13338
13601
  "aliases": [],
13339
13602
  "args": {},
@@ -14759,5 +15022,5 @@
14759
15022
  ]
14760
15023
  }
14761
15024
  },
14762
- "version": "0.3.84"
15025
+ "version": "0.3.86"
14763
15026
  }