@proletariat/cli 0.3.109 → 0.3.110

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1978,66 +1978,6 @@
1978
1978
  "sync.js"
1979
1979
  ]
1980
1980
  },
1981
- "autocomplete:setup": {
1982
- "aliases": [],
1983
- "args": {},
1984
- "description": "Auto-detect shell and set up autocomplete",
1985
- "examples": [
1986
- "<%= config.bin %> <%= command.id %>",
1987
- "<%= config.bin %> <%= command.id %> --install",
1988
- "<%= config.bin %> <%= command.id %> --shell zsh",
1989
- "<%= config.bin %> <%= command.id %> --shell zsh --install --machine"
1990
- ],
1991
- "flags": {
1992
- "json": {
1993
- "description": "Output as JSON for AI agents/scripts",
1994
- "name": "json",
1995
- "allowNo": false,
1996
- "type": "boolean"
1997
- },
1998
- "machine": {
1999
- "char": "m",
2000
- "description": "Output as JSON for AI agents/scripts",
2001
- "name": "machine",
2002
- "allowNo": false,
2003
- "type": "boolean"
2004
- },
2005
- "install": {
2006
- "char": "i",
2007
- "description": "Automatically install to shell config file",
2008
- "name": "install",
2009
- "allowNo": false,
2010
- "type": "boolean"
2011
- },
2012
- "shell": {
2013
- "char": "s",
2014
- "description": "Override shell detection (zsh, bash, powershell)",
2015
- "name": "shell",
2016
- "hasDynamicHelp": false,
2017
- "multiple": false,
2018
- "options": [
2019
- "zsh",
2020
- "bash",
2021
- "powershell"
2022
- ],
2023
- "type": "option"
2024
- }
2025
- },
2026
- "hasDynamicHelp": false,
2027
- "hiddenAliases": [],
2028
- "id": "autocomplete:setup",
2029
- "pluginAlias": "@proletariat/cli",
2030
- "pluginName": "@proletariat/cli",
2031
- "pluginType": "core",
2032
- "strict": true,
2033
- "isESM": true,
2034
- "relativePath": [
2035
- "dist",
2036
- "commands",
2037
- "autocomplete",
2038
- "setup.js"
2039
- ]
2040
- },
2041
1981
  "branch:create": {
2042
1982
  "aliases": [],
2043
1983
  "args": {
@@ -2394,6 +2334,66 @@
2394
2334
  "where.js"
2395
2335
  ]
2396
2336
  },
2337
+ "autocomplete:setup": {
2338
+ "aliases": [],
2339
+ "args": {},
2340
+ "description": "Auto-detect shell and set up autocomplete",
2341
+ "examples": [
2342
+ "<%= config.bin %> <%= command.id %>",
2343
+ "<%= config.bin %> <%= command.id %> --install",
2344
+ "<%= config.bin %> <%= command.id %> --shell zsh",
2345
+ "<%= config.bin %> <%= command.id %> --shell zsh --install --machine"
2346
+ ],
2347
+ "flags": {
2348
+ "json": {
2349
+ "description": "Output as JSON for AI agents/scripts",
2350
+ "name": "json",
2351
+ "allowNo": false,
2352
+ "type": "boolean"
2353
+ },
2354
+ "machine": {
2355
+ "char": "m",
2356
+ "description": "Output as JSON for AI agents/scripts",
2357
+ "name": "machine",
2358
+ "allowNo": false,
2359
+ "type": "boolean"
2360
+ },
2361
+ "install": {
2362
+ "char": "i",
2363
+ "description": "Automatically install to shell config file",
2364
+ "name": "install",
2365
+ "allowNo": false,
2366
+ "type": "boolean"
2367
+ },
2368
+ "shell": {
2369
+ "char": "s",
2370
+ "description": "Override shell detection (zsh, bash, powershell)",
2371
+ "name": "shell",
2372
+ "hasDynamicHelp": false,
2373
+ "multiple": false,
2374
+ "options": [
2375
+ "zsh",
2376
+ "bash",
2377
+ "powershell"
2378
+ ],
2379
+ "type": "option"
2380
+ }
2381
+ },
2382
+ "hasDynamicHelp": false,
2383
+ "hiddenAliases": [],
2384
+ "id": "autocomplete:setup",
2385
+ "pluginAlias": "@proletariat/cli",
2386
+ "pluginName": "@proletariat/cli",
2387
+ "pluginType": "core",
2388
+ "strict": true,
2389
+ "isESM": true,
2390
+ "relativePath": [
2391
+ "dist",
2392
+ "commands",
2393
+ "autocomplete",
2394
+ "setup.js"
2395
+ ]
2396
+ },
2397
2397
  "caffeinate": {
2398
2398
  "aliases": [],
2399
2399
  "args": {},
@@ -3015,20 +3015,41 @@
3015
3015
  "repair.js"
3016
3016
  ]
3017
3017
  },
3018
- "execution:config": {
3018
+ "docker:clean": {
3019
3019
  "aliases": [],
3020
3020
  "args": {},
3021
- "description": "View and update execution preferences",
3021
+ "description": "Remove orphaned containers (containers without running agents)",
3022
3022
  "examples": [
3023
- "<%= config.bin %> execution config # Interactive menu",
3024
- "<%= config.bin %> execution config --json # Output current config as JSON",
3025
- "<%= config.bin %> execution config --list # Show all settings",
3026
- "<%= config.bin %> execution config --set defaultEnvironment host",
3027
- "<%= config.bin %> execution config --set outputMode interactive",
3028
- "<%= config.bin %> execution config --set permissionMode safe",
3029
- "<%= config.bin %> execution config --setting outputMode --json # Show output mode choices"
3023
+ "<%= config.bin %> <%= command.id %>",
3024
+ "<%= config.bin %> <%= command.id %> --force",
3025
+ "<%= config.bin %> <%= command.id %> --dry-run"
3030
3026
  ],
3031
3027
  "flags": {
3028
+ "force": {
3029
+ "aliases": [
3030
+ "yes",
3031
+ "y"
3032
+ ],
3033
+ "char": "f",
3034
+ "description": "Skip confirmation prompt",
3035
+ "name": "force",
3036
+ "allowNo": false,
3037
+ "type": "boolean"
3038
+ },
3039
+ "dry-run": {
3040
+ "char": "d",
3041
+ "description": "Show what would be removed without removing",
3042
+ "name": "dry-run",
3043
+ "allowNo": false,
3044
+ "type": "boolean"
3045
+ },
3046
+ "all": {
3047
+ "char": "a",
3048
+ "description": "Remove all stopped devcontainers (not just orphaned)",
3049
+ "name": "all",
3050
+ "allowNo": false,
3051
+ "type": "boolean"
3052
+ },
3032
3053
  "json": {
3033
3054
  "description": "Output as JSON for AI agents/scripts",
3034
3055
  "name": "json",
@@ -3041,54 +3062,41 @@
3041
3062
  "name": "machine",
3042
3063
  "allowNo": false,
3043
3064
  "type": "boolean"
3044
- },
3045
- "set": {
3046
- "char": "s",
3047
- "description": "Set a config value (format: key value)",
3048
- "name": "set",
3049
- "hasDynamicHelp": false,
3050
- "multiple": true,
3051
- "type": "option"
3052
- },
3053
- "list": {
3054
- "char": "l",
3055
- "description": "List all configuration values",
3056
- "name": "list",
3057
- "allowNo": false,
3058
- "type": "boolean"
3059
- },
3060
- "setting": {
3061
- "description": "Navigate to a specific setting prompt (for agent navigation)",
3062
- "name": "setting",
3063
- "hasDynamicHelp": false,
3064
- "multiple": false,
3065
- "type": "option"
3066
3065
  }
3067
3066
  },
3068
3067
  "hasDynamicHelp": false,
3069
3068
  "hiddenAliases": [],
3070
- "id": "execution:config",
3069
+ "id": "docker:clean",
3071
3070
  "pluginAlias": "@proletariat/cli",
3072
3071
  "pluginName": "@proletariat/cli",
3073
3072
  "pluginType": "core",
3074
3073
  "strict": true,
3074
+ "enableJsonFlag": false,
3075
3075
  "isESM": true,
3076
3076
  "relativePath": [
3077
3077
  "dist",
3078
3078
  "commands",
3079
- "execution",
3080
- "config.js"
3079
+ "docker",
3080
+ "clean.js"
3081
3081
  ]
3082
3082
  },
3083
- "execution": {
3083
+ "docker": {
3084
3084
  "aliases": [],
3085
3085
  "args": {},
3086
- "description": "Single execution operations (view, logs, stop)",
3086
+ "description": "Manage Docker containers used by agents",
3087
3087
  "examples": [
3088
3088
  "<%= config.bin %> <%= command.id %>",
3089
- "<%= config.bin %> <%= command.id %> view WORK-001",
3090
- "<%= config.bin %> <%= command.id %> logs WORK-001",
3091
- "<%= config.bin %> <%= command.id %> stop WORK-001"
3089
+ "<%= config.bin %> docker status",
3090
+ "<%= config.bin %> docker list",
3091
+ "<%= config.bin %> docker logs WORK-001",
3092
+ "<%= config.bin %> docker start WORK-001",
3093
+ "<%= config.bin %> docker stop kalanick",
3094
+ "<%= config.bin %> docker shell WORK-001",
3095
+ "<%= config.bin %> docker restart abc123",
3096
+ "<%= config.bin %> docker sync",
3097
+ "<%= config.bin %> docker rebuild-cache",
3098
+ "<%= config.bin %> docker clean",
3099
+ "<%= config.bin %> docker prune"
3092
3100
  ],
3093
3101
  "flags": {
3094
3102
  "json": {
@@ -3107,7 +3115,7 @@
3107
3115
  },
3108
3116
  "hasDynamicHelp": false,
3109
3117
  "hiddenAliases": [],
3110
- "id": "execution",
3118
+ "id": "docker",
3111
3119
  "pluginAlias": "@proletariat/cli",
3112
3120
  "pluginName": "@proletariat/cli",
3113
3121
  "pluginType": "core",
@@ -3116,19 +3124,18 @@
3116
3124
  "relativePath": [
3117
3125
  "dist",
3118
3126
  "commands",
3119
- "execution",
3127
+ "docker",
3120
3128
  "index.js"
3121
3129
  ]
3122
3130
  },
3123
- "execution:list": {
3131
+ "docker:list": {
3124
3132
  "aliases": [],
3125
3133
  "args": {},
3126
- "description": "List running and recent executions",
3134
+ "description": "Show Docker containers from agent_work table with status",
3127
3135
  "examples": [
3128
3136
  "<%= config.bin %> <%= command.id %>",
3129
- "<%= config.bin %> <%= command.id %> --status running",
3130
- "<%= config.bin %> <%= command.id %> --agent alice",
3131
- "<%= config.bin %> <%= command.id %> --limit 50"
3137
+ "<%= config.bin %> <%= command.id %> --all",
3138
+ "<%= config.bin %> <%= command.id %> --running"
3132
3139
  ],
3133
3140
  "flags": {
3134
3141
  "json": {
@@ -3144,69 +3151,52 @@
3144
3151
  "allowNo": false,
3145
3152
  "type": "boolean"
3146
3153
  },
3147
- "status": {
3148
- "char": "s",
3149
- "description": "Filter by status",
3150
- "name": "status",
3151
- "hasDynamicHelp": false,
3152
- "multiple": false,
3153
- "options": [
3154
- "starting",
3155
- "running",
3156
- "completed",
3157
- "failed",
3158
- "stopped"
3159
- ],
3160
- "type": "option"
3161
- },
3162
- "agent": {
3154
+ "all": {
3163
3155
  "char": "a",
3164
- "description": "Filter by agent name",
3165
- "name": "agent",
3166
- "hasDynamicHelp": false,
3167
- "multiple": false,
3168
- "type": "option"
3156
+ "description": "Show all containers (including non-devcontainer)",
3157
+ "name": "all",
3158
+ "allowNo": false,
3159
+ "type": "boolean"
3169
3160
  },
3170
- "limit": {
3171
- "char": "l",
3172
- "description": "Number of results",
3173
- "name": "limit",
3174
- "default": 20,
3175
- "hasDynamicHelp": false,
3176
- "multiple": false,
3177
- "type": "option"
3178
- }
3179
- },
3180
- "hasDynamicHelp": false,
3161
+ "running": {
3162
+ "char": "r",
3163
+ "description": "Only show running containers",
3164
+ "name": "running",
3165
+ "allowNo": false,
3166
+ "type": "boolean"
3167
+ }
3168
+ },
3169
+ "hasDynamicHelp": false,
3181
3170
  "hiddenAliases": [],
3182
- "id": "execution:list",
3171
+ "id": "docker:list",
3183
3172
  "pluginAlias": "@proletariat/cli",
3184
3173
  "pluginName": "@proletariat/cli",
3185
3174
  "pluginType": "core",
3186
3175
  "strict": true,
3176
+ "enableJsonFlag": false,
3187
3177
  "isESM": true,
3188
3178
  "relativePath": [
3189
3179
  "dist",
3190
3180
  "commands",
3191
- "execution",
3181
+ "docker",
3192
3182
  "list.js"
3193
3183
  ]
3194
3184
  },
3195
- "execution:logs": {
3185
+ "docker:logs": {
3196
3186
  "aliases": [],
3197
3187
  "args": {
3198
- "id": {
3199
- "description": "Execution ID - prompts if not provided",
3200
- "name": "id",
3201
- "required": false
3188
+ "target": {
3189
+ "description": "Execution ID (WORK-XXX), agent name, or container ID",
3190
+ "name": "target",
3191
+ "required": true
3202
3192
  }
3203
3193
  },
3204
- "description": "View execution logs",
3194
+ "description": "View logs from a container (by execution ID, agent name, or container ID)",
3205
3195
  "examples": [
3206
3196
  "<%= config.bin %> <%= command.id %> WORK-001",
3207
- "<%= config.bin %> <%= command.id %> WORK-001 --follow",
3208
- "<%= config.bin %> <%= command.id %> WORK-001 --tail 50",
3209
- "<%= config.bin %> <%= command.id %> # Interactive mode"
3197
+ "<%= config.bin %> <%= command.id %> kalanick",
3198
+ "<%= config.bin %> <%= command.id %> abc123 --follow",
3199
+ "<%= config.bin %> <%= command.id %> WORK-001 --tail 100"
3210
3200
  ],
3211
3201
  "flags": {
3212
3202
  "json": {
@@ -3224,119 +3214,86 @@
3224
3214
  },
3225
3215
  "follow": {
3226
3216
  "char": "f",
3227
- "description": "Stream logs in real-time",
3217
+ "description": "Follow log output",
3228
3218
  "name": "follow",
3229
3219
  "allowNo": false,
3230
3220
  "type": "boolean"
3231
3221
  },
3232
3222
  "tail": {
3233
3223
  "char": "n",
3234
- "description": "Show last n lines",
3224
+ "description": "Number of lines to show from the end",
3235
3225
  "name": "tail",
3226
+ "default": 100,
3236
3227
  "hasDynamicHelp": false,
3237
3228
  "multiple": false,
3238
3229
  "type": "option"
3230
+ },
3231
+ "timestamps": {
3232
+ "char": "t",
3233
+ "description": "Show timestamps",
3234
+ "name": "timestamps",
3235
+ "allowNo": false,
3236
+ "type": "boolean"
3239
3237
  }
3240
3238
  },
3241
3239
  "hasDynamicHelp": false,
3242
3240
  "hiddenAliases": [],
3243
- "id": "execution:logs",
3241
+ "id": "docker:logs",
3244
3242
  "pluginAlias": "@proletariat/cli",
3245
3243
  "pluginName": "@proletariat/cli",
3246
3244
  "pluginType": "core",
3247
3245
  "strict": true,
3246
+ "enableJsonFlag": false,
3248
3247
  "isESM": true,
3249
3248
  "relativePath": [
3250
3249
  "dist",
3251
3250
  "commands",
3252
- "execution",
3251
+ "docker",
3253
3252
  "logs.js"
3254
3253
  ]
3255
3254
  },
3256
- "execution:stop": {
3255
+ "docker:prune": {
3257
3256
  "aliases": [],
3258
- "args": {
3259
- "id": {
3260
- "description": "Execution ID - prompts if not provided (ignored if --all or --agent used)",
3261
- "name": "id",
3262
- "required": false
3263
- }
3264
- },
3265
- "description": "Stop running execution(s)",
3257
+ "args": {},
3258
+ "description": "Remove unused Docker resources (containers, images, volumes, networks)",
3266
3259
  "examples": [
3267
- "<%= config.bin %> <%= command.id %> WORK-001",
3268
- "<%= config.bin %> <%= command.id %> WORK-001 --force",
3269
- "<%= config.bin %> <%= command.id %> # Interactive mode",
3260
+ "<%= config.bin %> <%= command.id %>",
3270
3261
  "<%= config.bin %> <%= command.id %> --all",
3271
- "<%= config.bin %> <%= command.id %> --all --force",
3272
- "<%= config.bin %> <%= command.id %> --agent altman"
3262
+ "<%= config.bin %> <%= command.id %> --volumes",
3263
+ "<%= config.bin %> <%= command.id %> --dry-run"
3273
3264
  ],
3274
3265
  "flags": {
3275
- "json": {
3276
- "description": "Output as JSON for AI agents/scripts",
3277
- "name": "json",
3266
+ "force": {
3267
+ "aliases": [
3268
+ "yes",
3269
+ "y"
3270
+ ],
3271
+ "char": "f",
3272
+ "description": "Skip confirmation prompt",
3273
+ "name": "force",
3278
3274
  "allowNo": false,
3279
3275
  "type": "boolean"
3280
3276
  },
3281
- "machine": {
3282
- "char": "m",
3283
- "description": "Output as JSON for AI agents/scripts",
3284
- "name": "machine",
3277
+ "dry-run": {
3278
+ "char": "d",
3279
+ "description": "Show what would be removed without removing",
3280
+ "name": "dry-run",
3285
3281
  "allowNo": false,
3286
3282
  "type": "boolean"
3287
3283
  },
3288
- "force": {
3289
- "char": "f",
3290
- "description": "Force kill (SIGKILL instead of SIGTERM)",
3291
- "name": "force",
3284
+ "all": {
3285
+ "char": "a",
3286
+ "description": "Remove all unused images, not just dangling ones",
3287
+ "name": "all",
3292
3288
  "allowNo": false,
3293
3289
  "type": "boolean"
3294
3290
  },
3295
- "all": {
3296
- "description": "Stop all running executions",
3297
- "name": "all",
3291
+ "volumes": {
3292
+ "description": "Also prune volumes (dangerous - data loss possible)",
3293
+ "name": "volumes",
3298
3294
  "allowNo": false,
3299
3295
  "type": "boolean"
3300
3296
  },
3301
- "agent": {
3302
- "char": "a",
3303
- "description": "Stop all executions for a specific agent",
3304
- "name": "agent",
3305
- "hasDynamicHelp": false,
3306
- "multiple": false,
3307
- "type": "option"
3308
- }
3309
- },
3310
- "hasDynamicHelp": false,
3311
- "hiddenAliases": [],
3312
- "id": "execution:stop",
3313
- "pluginAlias": "@proletariat/cli",
3314
- "pluginName": "@proletariat/cli",
3315
- "pluginType": "core",
3316
- "strict": true,
3317
- "isESM": true,
3318
- "relativePath": [
3319
- "dist",
3320
- "commands",
3321
- "execution",
3322
- "stop.js"
3323
- ]
3324
- },
3325
- "execution:view": {
3326
- "aliases": [],
3327
- "args": {
3328
- "id": {
3329
- "description": "Execution ID - prompts if not provided",
3330
- "name": "id",
3331
- "required": false
3332
- }
3333
- },
3334
- "description": "View details of a specific execution",
3335
- "examples": [
3336
- "<%= config.bin %> <%= command.id %> WORK-001",
3337
- "<%= config.bin %> <%= command.id %> # Interactive mode"
3338
- ],
3339
- "flags": {
3340
3297
  "json": {
3341
3298
  "description": "Output as JSON for AI agents/scripts",
3342
3299
  "name": "json",
@@ -3353,51 +3310,39 @@
3353
3310
  },
3354
3311
  "hasDynamicHelp": false,
3355
3312
  "hiddenAliases": [],
3356
- "id": "execution:view",
3313
+ "id": "docker:prune",
3357
3314
  "pluginAlias": "@proletariat/cli",
3358
3315
  "pluginName": "@proletariat/cli",
3359
3316
  "pluginType": "core",
3360
3317
  "strict": true,
3318
+ "enableJsonFlag": false,
3361
3319
  "isESM": true,
3362
3320
  "relativePath": [
3363
3321
  "dist",
3364
3322
  "commands",
3365
- "execution",
3366
- "view.js"
3323
+ "docker",
3324
+ "prune.js"
3367
3325
  ]
3368
3326
  },
3369
- "docker:clean": {
3327
+ "docker:rebuild-cache": {
3370
3328
  "aliases": [],
3371
3329
  "args": {},
3372
- "description": "Remove orphaned containers (containers without running agents)",
3330
+ "description": "Rebuild the shared pnpm store cache volume for fast agent installs",
3373
3331
  "examples": [
3374
3332
  "<%= config.bin %> <%= command.id %>",
3375
- "<%= config.bin %> <%= command.id %> --force",
3376
- "<%= config.bin %> <%= command.id %> --dry-run"
3333
+ "<%= config.bin %> <%= command.id %> --force"
3377
3334
  ],
3378
3335
  "flags": {
3379
3336
  "force": {
3380
- "aliases": [
3381
- "yes",
3382
- "y"
3383
- ],
3384
3337
  "char": "f",
3385
- "description": "Skip confirmation prompt",
3338
+ "description": "Delete and rebuild the cache even if it already exists",
3386
3339
  "name": "force",
3387
3340
  "allowNo": false,
3388
3341
  "type": "boolean"
3389
3342
  },
3390
- "dry-run": {
3391
- "char": "d",
3392
- "description": "Show what would be removed without removing",
3393
- "name": "dry-run",
3394
- "allowNo": false,
3395
- "type": "boolean"
3396
- },
3397
- "all": {
3398
- "char": "a",
3399
- "description": "Remove all stopped devcontainers (not just orphaned)",
3400
- "name": "all",
3343
+ "delete-only": {
3344
+ "description": "Only delete the cache volume (next agent spawn rebuilds it)",
3345
+ "name": "delete-only",
3401
3346
  "allowNo": false,
3402
3347
  "type": "boolean"
3403
3348
  },
@@ -3417,7 +3362,7 @@
3417
3362
  },
3418
3363
  "hasDynamicHelp": false,
3419
3364
  "hiddenAliases": [],
3420
- "id": "docker:clean",
3365
+ "id": "docker:rebuild-cache",
3421
3366
  "pluginAlias": "@proletariat/cli",
3422
3367
  "pluginName": "@proletariat/cli",
3423
3368
  "pluginType": "core",
@@ -3428,28 +3373,45 @@
3428
3373
  "dist",
3429
3374
  "commands",
3430
3375
  "docker",
3431
- "clean.js"
3376
+ "rebuild-cache.js"
3432
3377
  ]
3433
3378
  },
3434
- "docker": {
3379
+ "docker:restart": {
3435
3380
  "aliases": [],
3436
- "args": {},
3437
- "description": "Manage Docker containers used by agents",
3381
+ "args": {
3382
+ "target": {
3383
+ "description": "Execution ID (WORK-XXX), agent name, or container ID",
3384
+ "name": "target",
3385
+ "required": true
3386
+ }
3387
+ },
3388
+ "description": "Restart a container (by execution ID, agent name, or container ID)",
3438
3389
  "examples": [
3439
- "<%= config.bin %> <%= command.id %>",
3440
- "<%= config.bin %> docker status",
3441
- "<%= config.bin %> docker list",
3442
- "<%= config.bin %> docker logs WORK-001",
3443
- "<%= config.bin %> docker start WORK-001",
3444
- "<%= config.bin %> docker stop kalanick",
3445
- "<%= config.bin %> docker shell WORK-001",
3446
- "<%= config.bin %> docker restart abc123",
3447
- "<%= config.bin %> docker sync",
3448
- "<%= config.bin %> docker rebuild-cache",
3449
- "<%= config.bin %> docker clean",
3450
- "<%= config.bin %> docker prune"
3390
+ "<%= config.bin %> <%= command.id %> WORK-001",
3391
+ "<%= config.bin %> <%= command.id %> kalanick",
3392
+ "<%= config.bin %> <%= command.id %> abc123 --force"
3451
3393
  ],
3452
3394
  "flags": {
3395
+ "force": {
3396
+ "aliases": [
3397
+ "yes",
3398
+ "y"
3399
+ ],
3400
+ "char": "f",
3401
+ "description": "Skip confirmation prompt",
3402
+ "name": "force",
3403
+ "allowNo": false,
3404
+ "type": "boolean"
3405
+ },
3406
+ "time": {
3407
+ "char": "t",
3408
+ "description": "Seconds to wait before killing the container during stop",
3409
+ "name": "time",
3410
+ "default": 10,
3411
+ "hasDynamicHelp": false,
3412
+ "multiple": false,
3413
+ "type": "option"
3414
+ },
3453
3415
  "json": {
3454
3416
  "description": "Output as JSON for AI agents/scripts",
3455
3417
  "name": "json",
@@ -3466,27 +3428,34 @@
3466
3428
  },
3467
3429
  "hasDynamicHelp": false,
3468
3430
  "hiddenAliases": [],
3469
- "id": "docker",
3431
+ "id": "docker:restart",
3470
3432
  "pluginAlias": "@proletariat/cli",
3471
3433
  "pluginName": "@proletariat/cli",
3472
3434
  "pluginType": "core",
3473
3435
  "strict": true,
3436
+ "enableJsonFlag": false,
3474
3437
  "isESM": true,
3475
3438
  "relativePath": [
3476
3439
  "dist",
3477
3440
  "commands",
3478
3441
  "docker",
3479
- "index.js"
3442
+ "restart.js"
3480
3443
  ]
3481
3444
  },
3482
- "docker:list": {
3445
+ "docker:shell": {
3483
3446
  "aliases": [],
3484
- "args": {},
3485
- "description": "Show Docker containers from agent_work table with status",
3447
+ "args": {
3448
+ "target": {
3449
+ "description": "Execution ID (WORK-XXX), agent name, or container ID",
3450
+ "name": "target",
3451
+ "required": true
3452
+ }
3453
+ },
3454
+ "description": "Open a shell in a running container (by execution ID, agent name, or container ID)",
3486
3455
  "examples": [
3487
- "<%= config.bin %> <%= command.id %>",
3488
- "<%= config.bin %> <%= command.id %> --all",
3489
- "<%= config.bin %> <%= command.id %> --running"
3456
+ "<%= config.bin %> <%= command.id %> WORK-001",
3457
+ "<%= config.bin %> <%= command.id %> kalanick",
3458
+ "<%= config.bin %> <%= command.id %> abc123 --shell /bin/bash"
3490
3459
  ],
3491
3460
  "flags": {
3492
3461
  "json": {
@@ -3502,24 +3471,35 @@
3502
3471
  "allowNo": false,
3503
3472
  "type": "boolean"
3504
3473
  },
3505
- "all": {
3506
- "char": "a",
3507
- "description": "Show all containers (including non-devcontainer)",
3508
- "name": "all",
3509
- "allowNo": false,
3510
- "type": "boolean"
3511
- },
3512
- "running": {
3513
- "char": "r",
3514
- "description": "Only show running containers",
3515
- "name": "running",
3516
- "allowNo": false,
3517
- "type": "boolean"
3474
+ "shell": {
3475
+ "char": "s",
3476
+ "description": "Shell to use",
3477
+ "name": "shell",
3478
+ "default": "/bin/sh",
3479
+ "hasDynamicHelp": false,
3480
+ "multiple": false,
3481
+ "type": "option"
3482
+ },
3483
+ "user": {
3484
+ "char": "u",
3485
+ "description": "User to run as",
3486
+ "name": "user",
3487
+ "hasDynamicHelp": false,
3488
+ "multiple": false,
3489
+ "type": "option"
3490
+ },
3491
+ "workdir": {
3492
+ "char": "w",
3493
+ "description": "Working directory inside the container",
3494
+ "name": "workdir",
3495
+ "hasDynamicHelp": false,
3496
+ "multiple": false,
3497
+ "type": "option"
3518
3498
  }
3519
3499
  },
3520
3500
  "hasDynamicHelp": false,
3521
3501
  "hiddenAliases": [],
3522
- "id": "docker:list",
3502
+ "id": "docker:shell",
3523
3503
  "pluginAlias": "@proletariat/cli",
3524
3504
  "pluginName": "@proletariat/cli",
3525
3505
  "pluginType": "core",
@@ -3530,10 +3510,10 @@
3530
3510
  "dist",
3531
3511
  "commands",
3532
3512
  "docker",
3533
- "list.js"
3513
+ "shell.js"
3534
3514
  ]
3535
3515
  },
3536
- "docker:logs": {
3516
+ "docker:start": {
3537
3517
  "aliases": [],
3538
3518
  "args": {
3539
3519
  "target": {
@@ -3542,12 +3522,11 @@
3542
3522
  "required": true
3543
3523
  }
3544
3524
  },
3545
- "description": "View logs from a container (by execution ID, agent name, or container ID)",
3525
+ "description": "Start a stopped container (by execution ID, agent name, or container ID)",
3546
3526
  "examples": [
3547
3527
  "<%= config.bin %> <%= command.id %> WORK-001",
3548
3528
  "<%= config.bin %> <%= command.id %> kalanick",
3549
- "<%= config.bin %> <%= command.id %> abc123 --follow",
3550
- "<%= config.bin %> <%= command.id %> WORK-001 --tail 100"
3529
+ "<%= config.bin %> <%= command.id %> abc123"
3551
3530
  ],
3552
3531
  "flags": {
3553
3532
  "json": {
@@ -3563,105 +3542,17 @@
3563
3542
  "allowNo": false,
3564
3543
  "type": "boolean"
3565
3544
  },
3566
- "follow": {
3567
- "char": "f",
3568
- "description": "Follow log output",
3569
- "name": "follow",
3570
- "allowNo": false,
3571
- "type": "boolean"
3572
- },
3573
- "tail": {
3574
- "char": "n",
3575
- "description": "Number of lines to show from the end",
3576
- "name": "tail",
3577
- "default": 100,
3578
- "hasDynamicHelp": false,
3579
- "multiple": false,
3580
- "type": "option"
3581
- },
3582
- "timestamps": {
3583
- "char": "t",
3584
- "description": "Show timestamps",
3585
- "name": "timestamps",
3586
- "allowNo": false,
3587
- "type": "boolean"
3588
- }
3589
- },
3590
- "hasDynamicHelp": false,
3591
- "hiddenAliases": [],
3592
- "id": "docker:logs",
3593
- "pluginAlias": "@proletariat/cli",
3594
- "pluginName": "@proletariat/cli",
3595
- "pluginType": "core",
3596
- "strict": true,
3597
- "enableJsonFlag": false,
3598
- "isESM": true,
3599
- "relativePath": [
3600
- "dist",
3601
- "commands",
3602
- "docker",
3603
- "logs.js"
3604
- ]
3605
- },
3606
- "docker:prune": {
3607
- "aliases": [],
3608
- "args": {},
3609
- "description": "Remove unused Docker resources (containers, images, volumes, networks)",
3610
- "examples": [
3611
- "<%= config.bin %> <%= command.id %>",
3612
- "<%= config.bin %> <%= command.id %> --all",
3613
- "<%= config.bin %> <%= command.id %> --volumes",
3614
- "<%= config.bin %> <%= command.id %> --dry-run"
3615
- ],
3616
- "flags": {
3617
- "force": {
3618
- "aliases": [
3619
- "yes",
3620
- "y"
3621
- ],
3622
- "char": "f",
3623
- "description": "Skip confirmation prompt",
3624
- "name": "force",
3625
- "allowNo": false,
3626
- "type": "boolean"
3627
- },
3628
- "dry-run": {
3629
- "char": "d",
3630
- "description": "Show what would be removed without removing",
3631
- "name": "dry-run",
3632
- "allowNo": false,
3633
- "type": "boolean"
3634
- },
3635
- "all": {
3545
+ "attach": {
3636
3546
  "char": "a",
3637
- "description": "Remove all unused images, not just dangling ones",
3638
- "name": "all",
3639
- "allowNo": false,
3640
- "type": "boolean"
3641
- },
3642
- "volumes": {
3643
- "description": "Also prune volumes (dangerous - data loss possible)",
3644
- "name": "volumes",
3645
- "allowNo": false,
3646
- "type": "boolean"
3647
- },
3648
- "json": {
3649
- "description": "Output as JSON for AI agents/scripts",
3650
- "name": "json",
3651
- "allowNo": false,
3652
- "type": "boolean"
3653
- },
3654
- "machine": {
3655
- "char": "m",
3656
- "description": "Output as JSON for AI agents/scripts",
3657
- "name": "machine",
3547
+ "description": "Attach to container after starting",
3548
+ "name": "attach",
3658
3549
  "allowNo": false,
3659
3550
  "type": "boolean"
3660
3551
  }
3661
3552
  },
3662
3553
  "hasDynamicHelp": false,
3663
3554
  "hiddenAliases": [],
3664
- "id": "docker:prune",
3555
+ "id": "docker:start",
3665
3556
  "pluginAlias": "@proletariat/cli",
3666
3557
  "pluginName": "@proletariat/cli",
3667
3558
  "pluginType": "core",
@@ -3672,31 +3563,17 @@
3672
3563
  "dist",
3673
3564
  "commands",
3674
3565
  "docker",
3675
- "prune.js"
3566
+ "start.js"
3676
3567
  ]
3677
3568
  },
3678
- "docker:rebuild-cache": {
3569
+ "docker:status": {
3679
3570
  "aliases": [],
3680
3571
  "args": {},
3681
- "description": "Rebuild the shared pnpm store cache volume for fast agent installs",
3572
+ "description": "Check if Docker daemon is running",
3682
3573
  "examples": [
3683
- "<%= config.bin %> <%= command.id %>",
3684
- "<%= config.bin %> <%= command.id %> --force"
3574
+ "<%= config.bin %> <%= command.id %>"
3685
3575
  ],
3686
3576
  "flags": {
3687
- "force": {
3688
- "char": "f",
3689
- "description": "Delete and rebuild the cache even if it already exists",
3690
- "name": "force",
3691
- "allowNo": false,
3692
- "type": "boolean"
3693
- },
3694
- "delete-only": {
3695
- "description": "Only delete the cache volume (next agent spawn rebuilds it)",
3696
- "name": "delete-only",
3697
- "allowNo": false,
3698
- "type": "boolean"
3699
- },
3700
3577
  "json": {
3701
3578
  "description": "Output as JSON for AI agents/scripts",
3702
3579
  "name": "json",
@@ -3713,7 +3590,7 @@
3713
3590
  },
3714
3591
  "hasDynamicHelp": false,
3715
3592
  "hiddenAliases": [],
3716
- "id": "docker:rebuild-cache",
3593
+ "id": "docker:status",
3717
3594
  "pluginAlias": "@proletariat/cli",
3718
3595
  "pluginName": "@proletariat/cli",
3719
3596
  "pluginType": "core",
@@ -3724,10 +3601,10 @@
3724
3601
  "dist",
3725
3602
  "commands",
3726
3603
  "docker",
3727
- "rebuild-cache.js"
3604
+ "status.js"
3728
3605
  ]
3729
3606
  },
3730
- "docker:restart": {
3607
+ "docker:stop": {
3731
3608
  "aliases": [],
3732
3609
  "args": {
3733
3610
  "target": {
@@ -3736,7 +3613,7 @@
3736
3613
  "required": true
3737
3614
  }
3738
3615
  },
3739
- "description": "Restart a container (by execution ID, agent name, or container ID)",
3616
+ "description": "Stop a running container (by execution ID, agent name, or container ID)",
3740
3617
  "examples": [
3741
3618
  "<%= config.bin %> <%= command.id %> WORK-001",
3742
3619
  "<%= config.bin %> <%= command.id %> kalanick",
@@ -3756,7 +3633,7 @@
3756
3633
  },
3757
3634
  "time": {
3758
3635
  "char": "t",
3759
- "description": "Seconds to wait before killing the container during stop",
3636
+ "description": "Seconds to wait before killing the container",
3760
3637
  "name": "time",
3761
3638
  "default": 10,
3762
3639
  "hasDynamicHelp": false,
@@ -3779,7 +3656,7 @@
3779
3656
  },
3780
3657
  "hasDynamicHelp": false,
3781
3658
  "hiddenAliases": [],
3782
- "id": "docker:restart",
3659
+ "id": "docker:stop",
3783
3660
  "pluginAlias": "@proletariat/cli",
3784
3661
  "pluginName": "@proletariat/cli",
3785
3662
  "pluginType": "core",
@@ -3790,23 +3667,15 @@
3790
3667
  "dist",
3791
3668
  "commands",
3792
3669
  "docker",
3793
- "restart.js"
3670
+ "stop.js"
3794
3671
  ]
3795
3672
  },
3796
- "docker:shell": {
3673
+ "docker:sync": {
3797
3674
  "aliases": [],
3798
- "args": {
3799
- "target": {
3800
- "description": "Execution ID (WORK-XXX), agent name, or container ID",
3801
- "name": "target",
3802
- "required": true
3803
- }
3804
- },
3805
- "description": "Open a shell in a running container (by execution ID, agent name, or container ID)",
3675
+ "args": {},
3676
+ "description": "Sync container status from Docker into the database",
3806
3677
  "examples": [
3807
- "<%= config.bin %> <%= command.id %> WORK-001",
3808
- "<%= config.bin %> <%= command.id %> kalanick",
3809
- "<%= config.bin %> <%= command.id %> abc123 --shell /bin/bash"
3678
+ "<%= config.bin %> <%= command.id %>"
3810
3679
  ],
3811
3680
  "flags": {
3812
3681
  "json": {
@@ -3821,36 +3690,11 @@
3821
3690
  "name": "machine",
3822
3691
  "allowNo": false,
3823
3692
  "type": "boolean"
3824
- },
3825
- "shell": {
3826
- "char": "s",
3827
- "description": "Shell to use",
3828
- "name": "shell",
3829
- "default": "/bin/sh",
3830
- "hasDynamicHelp": false,
3831
- "multiple": false,
3832
- "type": "option"
3833
- },
3834
- "user": {
3835
- "char": "u",
3836
- "description": "User to run as",
3837
- "name": "user",
3838
- "hasDynamicHelp": false,
3839
- "multiple": false,
3840
- "type": "option"
3841
- },
3842
- "workdir": {
3843
- "char": "w",
3844
- "description": "Working directory inside the container",
3845
- "name": "workdir",
3846
- "hasDynamicHelp": false,
3847
- "multiple": false,
3848
- "type": "option"
3849
3693
  }
3850
3694
  },
3851
3695
  "hasDynamicHelp": false,
3852
3696
  "hiddenAliases": [],
3853
- "id": "docker:shell",
3697
+ "id": "docker:sync",
3854
3698
  "pluginAlias": "@proletariat/cli",
3855
3699
  "pluginName": "@proletariat/cli",
3856
3700
  "pluginType": "core",
@@ -3861,23 +3705,21 @@
3861
3705
  "dist",
3862
3706
  "commands",
3863
3707
  "docker",
3864
- "shell.js"
3708
+ "sync.js"
3865
3709
  ]
3866
3710
  },
3867
- "docker:start": {
3711
+ "execution:config": {
3868
3712
  "aliases": [],
3869
- "args": {
3870
- "target": {
3871
- "description": "Execution ID (WORK-XXX), agent name, or container ID",
3872
- "name": "target",
3873
- "required": true
3874
- }
3875
- },
3876
- "description": "Start a stopped container (by execution ID, agent name, or container ID)",
3713
+ "args": {},
3714
+ "description": "View and update execution preferences",
3877
3715
  "examples": [
3878
- "<%= config.bin %> <%= command.id %> WORK-001",
3879
- "<%= config.bin %> <%= command.id %> kalanick",
3880
- "<%= config.bin %> <%= command.id %> abc123"
3716
+ "<%= config.bin %> execution config # Interactive menu",
3717
+ "<%= config.bin %> execution config --json # Output current config as JSON",
3718
+ "<%= config.bin %> execution config --list # Show all settings",
3719
+ "<%= config.bin %> execution config --set defaultEnvironment host",
3720
+ "<%= config.bin %> execution config --set outputMode interactive",
3721
+ "<%= config.bin %> execution config --set permissionMode safe",
3722
+ "<%= config.bin %> execution config --setting outputMode --json # Show output mode choices"
3881
3723
  ],
3882
3724
  "flags": {
3883
3725
  "json": {
@@ -3893,36 +3735,53 @@
3893
3735
  "allowNo": false,
3894
3736
  "type": "boolean"
3895
3737
  },
3896
- "attach": {
3897
- "char": "a",
3898
- "description": "Attach to container after starting",
3899
- "name": "attach",
3738
+ "set": {
3739
+ "char": "s",
3740
+ "description": "Set a config value (format: key value)",
3741
+ "name": "set",
3742
+ "hasDynamicHelp": false,
3743
+ "multiple": true,
3744
+ "type": "option"
3745
+ },
3746
+ "list": {
3747
+ "char": "l",
3748
+ "description": "List all configuration values",
3749
+ "name": "list",
3900
3750
  "allowNo": false,
3901
3751
  "type": "boolean"
3752
+ },
3753
+ "setting": {
3754
+ "description": "Navigate to a specific setting prompt (for agent navigation)",
3755
+ "name": "setting",
3756
+ "hasDynamicHelp": false,
3757
+ "multiple": false,
3758
+ "type": "option"
3902
3759
  }
3903
3760
  },
3904
3761
  "hasDynamicHelp": false,
3905
3762
  "hiddenAliases": [],
3906
- "id": "docker:start",
3763
+ "id": "execution:config",
3907
3764
  "pluginAlias": "@proletariat/cli",
3908
3765
  "pluginName": "@proletariat/cli",
3909
3766
  "pluginType": "core",
3910
3767
  "strict": true,
3911
- "enableJsonFlag": false,
3912
3768
  "isESM": true,
3913
3769
  "relativePath": [
3914
3770
  "dist",
3915
3771
  "commands",
3916
- "docker",
3917
- "start.js"
3772
+ "execution",
3773
+ "config.js"
3918
3774
  ]
3919
3775
  },
3920
- "docker:status": {
3776
+ "execution": {
3921
3777
  "aliases": [],
3922
3778
  "args": {},
3923
- "description": "Check if Docker daemon is running",
3779
+ "description": "Single execution operations (view, logs, stop)",
3924
3780
  "examples": [
3925
- "<%= config.bin %> <%= command.id %>"
3781
+ "<%= config.bin %> <%= command.id %>",
3782
+ "<%= config.bin %> <%= command.id %> view WORK-001",
3783
+ "<%= config.bin %> <%= command.id %> logs WORK-001",
3784
+ "<%= config.bin %> <%= command.id %> stop WORK-001"
3926
3785
  ],
3927
3786
  "flags": {
3928
3787
  "json": {
@@ -3941,56 +3800,171 @@
3941
3800
  },
3942
3801
  "hasDynamicHelp": false,
3943
3802
  "hiddenAliases": [],
3944
- "id": "docker:status",
3803
+ "id": "execution",
3945
3804
  "pluginAlias": "@proletariat/cli",
3946
3805
  "pluginName": "@proletariat/cli",
3947
3806
  "pluginType": "core",
3948
3807
  "strict": true,
3949
- "enableJsonFlag": false,
3950
3808
  "isESM": true,
3951
3809
  "relativePath": [
3952
3810
  "dist",
3953
3811
  "commands",
3954
- "docker",
3955
- "status.js"
3812
+ "execution",
3813
+ "index.js"
3956
3814
  ]
3957
3815
  },
3958
- "docker:stop": {
3816
+ "execution:list": {
3817
+ "aliases": [],
3818
+ "args": {},
3819
+ "description": "List running and recent executions",
3820
+ "examples": [
3821
+ "<%= config.bin %> <%= command.id %>",
3822
+ "<%= config.bin %> <%= command.id %> --status running",
3823
+ "<%= config.bin %> <%= command.id %> --agent alice",
3824
+ "<%= config.bin %> <%= command.id %> --limit 50"
3825
+ ],
3826
+ "flags": {
3827
+ "json": {
3828
+ "description": "Output as JSON for AI agents/scripts",
3829
+ "name": "json",
3830
+ "allowNo": false,
3831
+ "type": "boolean"
3832
+ },
3833
+ "machine": {
3834
+ "char": "m",
3835
+ "description": "Output as JSON for AI agents/scripts",
3836
+ "name": "machine",
3837
+ "allowNo": false,
3838
+ "type": "boolean"
3839
+ },
3840
+ "status": {
3841
+ "char": "s",
3842
+ "description": "Filter by status",
3843
+ "name": "status",
3844
+ "hasDynamicHelp": false,
3845
+ "multiple": false,
3846
+ "options": [
3847
+ "starting",
3848
+ "running",
3849
+ "completed",
3850
+ "failed",
3851
+ "stopped"
3852
+ ],
3853
+ "type": "option"
3854
+ },
3855
+ "agent": {
3856
+ "char": "a",
3857
+ "description": "Filter by agent name",
3858
+ "name": "agent",
3859
+ "hasDynamicHelp": false,
3860
+ "multiple": false,
3861
+ "type": "option"
3862
+ },
3863
+ "limit": {
3864
+ "char": "l",
3865
+ "description": "Number of results",
3866
+ "name": "limit",
3867
+ "default": 20,
3868
+ "hasDynamicHelp": false,
3869
+ "multiple": false,
3870
+ "type": "option"
3871
+ }
3872
+ },
3873
+ "hasDynamicHelp": false,
3874
+ "hiddenAliases": [],
3875
+ "id": "execution:list",
3876
+ "pluginAlias": "@proletariat/cli",
3877
+ "pluginName": "@proletariat/cli",
3878
+ "pluginType": "core",
3879
+ "strict": true,
3880
+ "isESM": true,
3881
+ "relativePath": [
3882
+ "dist",
3883
+ "commands",
3884
+ "execution",
3885
+ "list.js"
3886
+ ]
3887
+ },
3888
+ "execution:logs": {
3959
3889
  "aliases": [],
3960
3890
  "args": {
3961
- "target": {
3962
- "description": "Execution ID (WORK-XXX), agent name, or container ID",
3963
- "name": "target",
3964
- "required": true
3891
+ "id": {
3892
+ "description": "Execution ID - prompts if not provided",
3893
+ "name": "id",
3894
+ "required": false
3965
3895
  }
3966
3896
  },
3967
- "description": "Stop a running container (by execution ID, agent name, or container ID)",
3897
+ "description": "View execution logs",
3968
3898
  "examples": [
3969
3899
  "<%= config.bin %> <%= command.id %> WORK-001",
3970
- "<%= config.bin %> <%= command.id %> kalanick",
3971
- "<%= config.bin %> <%= command.id %> abc123 --force"
3900
+ "<%= config.bin %> <%= command.id %> WORK-001 --follow",
3901
+ "<%= config.bin %> <%= command.id %> WORK-001 --tail 50",
3902
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
3972
3903
  ],
3973
3904
  "flags": {
3974
- "force": {
3975
- "aliases": [
3976
- "yes",
3977
- "y"
3978
- ],
3905
+ "json": {
3906
+ "description": "Output as JSON for AI agents/scripts",
3907
+ "name": "json",
3908
+ "allowNo": false,
3909
+ "type": "boolean"
3910
+ },
3911
+ "machine": {
3912
+ "char": "m",
3913
+ "description": "Output as JSON for AI agents/scripts",
3914
+ "name": "machine",
3915
+ "allowNo": false,
3916
+ "type": "boolean"
3917
+ },
3918
+ "follow": {
3979
3919
  "char": "f",
3980
- "description": "Skip confirmation prompt",
3981
- "name": "force",
3920
+ "description": "Stream logs in real-time",
3921
+ "name": "follow",
3982
3922
  "allowNo": false,
3983
3923
  "type": "boolean"
3984
3924
  },
3985
- "time": {
3986
- "char": "t",
3987
- "description": "Seconds to wait before killing the container",
3988
- "name": "time",
3989
- "default": 10,
3925
+ "tail": {
3926
+ "char": "n",
3927
+ "description": "Show last n lines",
3928
+ "name": "tail",
3990
3929
  "hasDynamicHelp": false,
3991
3930
  "multiple": false,
3992
3931
  "type": "option"
3993
- },
3932
+ }
3933
+ },
3934
+ "hasDynamicHelp": false,
3935
+ "hiddenAliases": [],
3936
+ "id": "execution:logs",
3937
+ "pluginAlias": "@proletariat/cli",
3938
+ "pluginName": "@proletariat/cli",
3939
+ "pluginType": "core",
3940
+ "strict": true,
3941
+ "isESM": true,
3942
+ "relativePath": [
3943
+ "dist",
3944
+ "commands",
3945
+ "execution",
3946
+ "logs.js"
3947
+ ]
3948
+ },
3949
+ "execution:stop": {
3950
+ "aliases": [],
3951
+ "args": {
3952
+ "id": {
3953
+ "description": "Execution ID - prompts if not provided (ignored if --all or --agent used)",
3954
+ "name": "id",
3955
+ "required": false
3956
+ }
3957
+ },
3958
+ "description": "Stop running execution(s)",
3959
+ "examples": [
3960
+ "<%= config.bin %> <%= command.id %> WORK-001",
3961
+ "<%= config.bin %> <%= command.id %> WORK-001 --force",
3962
+ "<%= config.bin %> <%= command.id %> # Interactive mode",
3963
+ "<%= config.bin %> <%= command.id %> --all",
3964
+ "<%= config.bin %> <%= command.id %> --all --force",
3965
+ "<%= config.bin %> <%= command.id %> --agent altman"
3966
+ ],
3967
+ "flags": {
3994
3968
  "json": {
3995
3969
  "description": "Output as JSON for AI agents/scripts",
3996
3970
  "name": "json",
@@ -4003,30 +3977,57 @@
4003
3977
  "name": "machine",
4004
3978
  "allowNo": false,
4005
3979
  "type": "boolean"
3980
+ },
3981
+ "force": {
3982
+ "char": "f",
3983
+ "description": "Force kill (SIGKILL instead of SIGTERM)",
3984
+ "name": "force",
3985
+ "allowNo": false,
3986
+ "type": "boolean"
3987
+ },
3988
+ "all": {
3989
+ "description": "Stop all running executions",
3990
+ "name": "all",
3991
+ "allowNo": false,
3992
+ "type": "boolean"
3993
+ },
3994
+ "agent": {
3995
+ "char": "a",
3996
+ "description": "Stop all executions for a specific agent",
3997
+ "name": "agent",
3998
+ "hasDynamicHelp": false,
3999
+ "multiple": false,
4000
+ "type": "option"
4006
4001
  }
4007
4002
  },
4008
4003
  "hasDynamicHelp": false,
4009
4004
  "hiddenAliases": [],
4010
- "id": "docker:stop",
4005
+ "id": "execution:stop",
4011
4006
  "pluginAlias": "@proletariat/cli",
4012
4007
  "pluginName": "@proletariat/cli",
4013
4008
  "pluginType": "core",
4014
4009
  "strict": true,
4015
- "enableJsonFlag": false,
4016
4010
  "isESM": true,
4017
4011
  "relativePath": [
4018
4012
  "dist",
4019
4013
  "commands",
4020
- "docker",
4014
+ "execution",
4021
4015
  "stop.js"
4022
4016
  ]
4023
4017
  },
4024
- "docker:sync": {
4018
+ "execution:view": {
4025
4019
  "aliases": [],
4026
- "args": {},
4027
- "description": "Sync container status from Docker into the database",
4020
+ "args": {
4021
+ "id": {
4022
+ "description": "Execution ID - prompts if not provided",
4023
+ "name": "id",
4024
+ "required": false
4025
+ }
4026
+ },
4027
+ "description": "View details of a specific execution",
4028
4028
  "examples": [
4029
- "<%= config.bin %> <%= command.id %>"
4029
+ "<%= config.bin %> <%= command.id %> WORK-001",
4030
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
4030
4031
  ],
4031
4032
  "flags": {
4032
4033
  "json": {
@@ -4045,18 +4046,17 @@
4045
4046
  },
4046
4047
  "hasDynamicHelp": false,
4047
4048
  "hiddenAliases": [],
4048
- "id": "docker:sync",
4049
+ "id": "execution:view",
4049
4050
  "pluginAlias": "@proletariat/cli",
4050
4051
  "pluginName": "@proletariat/cli",
4051
4052
  "pluginType": "core",
4052
4053
  "strict": true,
4053
- "enableJsonFlag": false,
4054
4054
  "isESM": true,
4055
4055
  "relativePath": [
4056
4056
  "dist",
4057
4057
  "commands",
4058
- "docker",
4059
- "sync.js"
4058
+ "execution",
4059
+ "view.js"
4060
4060
  ]
4061
4061
  },
4062
4062
  "feedback": {
@@ -6137,79 +6137,20 @@
6137
6137
  "stop.js"
6138
6138
  ]
6139
6139
  },
6140
- "project:configure": {
6140
+ "pr:checks": {
6141
6141
  "aliases": [],
6142
- "args": {},
6143
- "description": "Configure workflow column mapping for a project",
6142
+ "args": {
6143
+ "prNumber": {
6144
+ "description": "PR number (defaults to PR for current branch)",
6145
+ "name": "prNumber",
6146
+ "required": false
6147
+ }
6148
+ },
6149
+ "description": "Show CI check status for a pull request",
6144
6150
  "examples": [
6145
- "<%= config.bin %> <%= command.id %> --workflow",
6146
- "<%= config.bin %> <%= command.id %> --workflow --show"
6147
- ],
6148
- "flags": {
6149
- "project": {
6150
- "char": "P",
6151
- "description": "Project ID (uses first project if only one exists)",
6152
- "name": "project",
6153
- "hasDynamicHelp": false,
6154
- "multiple": false,
6155
- "type": "option"
6156
- },
6157
- "json": {
6158
- "description": "Output as JSON for AI agents/scripts",
6159
- "name": "json",
6160
- "allowNo": false,
6161
- "type": "boolean"
6162
- },
6163
- "machine": {
6164
- "char": "m",
6165
- "description": "Output as JSON for AI agents/scripts",
6166
- "name": "machine",
6167
- "allowNo": false,
6168
- "type": "boolean"
6169
- },
6170
- "workflow": {
6171
- "char": "w",
6172
- "description": "Configure workflow column mapping",
6173
- "name": "workflow",
6174
- "allowNo": false,
6175
- "type": "boolean"
6176
- },
6177
- "show": {
6178
- "description": "Show current workflow mapping without prompting",
6179
- "name": "show",
6180
- "allowNo": false,
6181
- "type": "boolean"
6182
- }
6183
- },
6184
- "hasDynamicHelp": false,
6185
- "hiddenAliases": [],
6186
- "id": "project:configure",
6187
- "pluginAlias": "@proletariat/cli",
6188
- "pluginName": "@proletariat/cli",
6189
- "pluginType": "core",
6190
- "strict": true,
6191
- "isESM": true,
6192
- "relativePath": [
6193
- "dist",
6194
- "commands",
6195
- "project",
6196
- "configure.js"
6197
- ]
6198
- },
6199
- "pr:checks": {
6200
- "aliases": [],
6201
- "args": {
6202
- "prNumber": {
6203
- "description": "PR number (defaults to PR for current branch)",
6204
- "name": "prNumber",
6205
- "required": false
6206
- }
6207
- },
6208
- "description": "Show CI check status for a pull request",
6209
- "examples": [
6210
- "<%= config.bin %> <%= command.id %>",
6211
- "<%= config.bin %> <%= command.id %> 123",
6212
- "<%= config.bin %> <%= command.id %> --json"
6151
+ "<%= config.bin %> <%= command.id %>",
6152
+ "<%= config.bin %> <%= command.id %> 123",
6153
+ "<%= config.bin %> <%= command.id %> --json"
6213
6154
  ],
6214
6155
  "flags": {
6215
6156
  "json": {
@@ -6768,6 +6709,65 @@
6768
6709
  "status.js"
6769
6710
  ]
6770
6711
  },
6712
+ "project:configure": {
6713
+ "aliases": [],
6714
+ "args": {},
6715
+ "description": "Configure workflow column mapping for a project",
6716
+ "examples": [
6717
+ "<%= config.bin %> <%= command.id %> --workflow",
6718
+ "<%= config.bin %> <%= command.id %> --workflow --show"
6719
+ ],
6720
+ "flags": {
6721
+ "project": {
6722
+ "char": "P",
6723
+ "description": "Project ID (uses first project if only one exists)",
6724
+ "name": "project",
6725
+ "hasDynamicHelp": false,
6726
+ "multiple": false,
6727
+ "type": "option"
6728
+ },
6729
+ "json": {
6730
+ "description": "Output as JSON for AI agents/scripts",
6731
+ "name": "json",
6732
+ "allowNo": false,
6733
+ "type": "boolean"
6734
+ },
6735
+ "machine": {
6736
+ "char": "m",
6737
+ "description": "Output as JSON for AI agents/scripts",
6738
+ "name": "machine",
6739
+ "allowNo": false,
6740
+ "type": "boolean"
6741
+ },
6742
+ "workflow": {
6743
+ "char": "w",
6744
+ "description": "Configure workflow column mapping",
6745
+ "name": "workflow",
6746
+ "allowNo": false,
6747
+ "type": "boolean"
6748
+ },
6749
+ "show": {
6750
+ "description": "Show current workflow mapping without prompting",
6751
+ "name": "show",
6752
+ "allowNo": false,
6753
+ "type": "boolean"
6754
+ }
6755
+ },
6756
+ "hasDynamicHelp": false,
6757
+ "hiddenAliases": [],
6758
+ "id": "project:configure",
6759
+ "pluginAlias": "@proletariat/cli",
6760
+ "pluginName": "@proletariat/cli",
6761
+ "pluginType": "core",
6762
+ "strict": true,
6763
+ "isESM": true,
6764
+ "relativePath": [
6765
+ "dist",
6766
+ "commands",
6767
+ "project",
6768
+ "configure.js"
6769
+ ]
6770
+ },
6771
6771
  "qa": {
6772
6772
  "aliases": [
6773
6773
  "explore"
@@ -8626,23 +8626,14 @@
8626
8626
  "logs.js"
8627
8627
  ]
8628
8628
  },
8629
- "sync": {
8629
+ "telemetry:disable": {
8630
8630
  "aliases": [],
8631
8631
  "args": {},
8632
- "description": "Reconcile ticket state with GitHub PR status",
8632
+ "description": "Disable anonymous telemetry",
8633
8633
  "examples": [
8634
- "<%= config.bin %> <%= command.id %>",
8635
- "<%= config.bin %> <%= command.id %> --dry-run"
8634
+ "<%= config.bin %> <%= command.id %>"
8636
8635
  ],
8637
8636
  "flags": {
8638
- "project": {
8639
- "char": "P",
8640
- "description": "Project ID (uses first project if only one exists)",
8641
- "name": "project",
8642
- "hasDynamicHelp": false,
8643
- "multiple": false,
8644
- "type": "option"
8645
- },
8646
8637
  "json": {
8647
8638
  "description": "Output as JSON for AI agents/scripts",
8648
8639
  "name": "json",
@@ -8655,33 +8646,28 @@
8655
8646
  "name": "machine",
8656
8647
  "allowNo": false,
8657
8648
  "type": "boolean"
8658
- },
8659
- "dry-run": {
8660
- "description": "Show what would change without applying",
8661
- "name": "dry-run",
8662
- "allowNo": false,
8663
- "type": "boolean"
8664
8649
  }
8665
8650
  },
8666
8651
  "hasDynamicHelp": false,
8667
8652
  "hiddenAliases": [],
8668
- "id": "sync",
8653
+ "id": "telemetry:disable",
8669
8654
  "pluginAlias": "@proletariat/cli",
8670
8655
  "pluginName": "@proletariat/cli",
8671
8656
  "pluginType": "core",
8672
8657
  "strict": true,
8658
+ "enableJsonFlag": false,
8673
8659
  "isESM": true,
8674
8660
  "relativePath": [
8675
8661
  "dist",
8676
8662
  "commands",
8677
- "sync",
8678
- "index.js"
8663
+ "telemetry",
8664
+ "disable.js"
8679
8665
  ]
8680
8666
  },
8681
- "sync:pause": {
8667
+ "telemetry:enable": {
8682
8668
  "aliases": [],
8683
8669
  "args": {},
8684
- "description": "Pause the merge queue (keep monitoring but stop merging)",
8670
+ "description": "Enable anonymous telemetry",
8685
8671
  "examples": [
8686
8672
  "<%= config.bin %> <%= command.id %>"
8687
8673
  ],
@@ -8702,25 +8688,27 @@
8702
8688
  },
8703
8689
  "hasDynamicHelp": false,
8704
8690
  "hiddenAliases": [],
8705
- "id": "sync:pause",
8691
+ "id": "telemetry:enable",
8706
8692
  "pluginAlias": "@proletariat/cli",
8707
8693
  "pluginName": "@proletariat/cli",
8708
8694
  "pluginType": "core",
8709
8695
  "strict": true,
8696
+ "enableJsonFlag": false,
8710
8697
  "isESM": true,
8711
8698
  "relativePath": [
8712
8699
  "dist",
8713
8700
  "commands",
8714
- "sync",
8715
- "pause.js"
8701
+ "telemetry",
8702
+ "enable.js"
8716
8703
  ]
8717
8704
  },
8718
- "sync:queue": {
8705
+ "telemetry": {
8719
8706
  "aliases": [],
8720
8707
  "args": {},
8721
- "description": "Show the merge queue state",
8708
+ "description": "Show telemetry status",
8722
8709
  "examples": [
8723
- "<%= config.bin %> <%= command.id %>"
8710
+ "<%= config.bin %> <%= command.id %>",
8711
+ "<%= config.bin %> <%= command.id %> --json"
8724
8712
  ],
8725
8713
  "flags": {
8726
8714
  "json": {
@@ -8739,25 +8727,26 @@
8739
8727
  },
8740
8728
  "hasDynamicHelp": false,
8741
8729
  "hiddenAliases": [],
8742
- "id": "sync:queue",
8730
+ "id": "telemetry",
8743
8731
  "pluginAlias": "@proletariat/cli",
8744
8732
  "pluginName": "@proletariat/cli",
8745
8733
  "pluginType": "core",
8746
8734
  "strict": true,
8735
+ "enableJsonFlag": false,
8747
8736
  "isESM": true,
8748
8737
  "relativePath": [
8749
8738
  "dist",
8750
8739
  "commands",
8751
- "sync",
8752
- "queue.js"
8740
+ "telemetry",
8741
+ "index.js"
8753
8742
  ]
8754
8743
  },
8755
- "sync:resume": {
8744
+ "telemetry:status": {
8756
8745
  "aliases": [],
8757
8746
  "args": {},
8758
- "description": "Resume the merge queue",
8747
+ "description": "Show telemetry status",
8759
8748
  "examples": [
8760
- "<%= config.bin %> <%= command.id %>"
8749
+ "<%= config.bin %> telemetry status"
8761
8750
  ],
8762
8751
  "flags": {
8763
8752
  "json": {
@@ -8776,28 +8765,37 @@
8776
8765
  },
8777
8766
  "hasDynamicHelp": false,
8778
8767
  "hiddenAliases": [],
8779
- "id": "sync:resume",
8768
+ "id": "telemetry:status",
8780
8769
  "pluginAlias": "@proletariat/cli",
8781
8770
  "pluginName": "@proletariat/cli",
8782
8771
  "pluginType": "core",
8783
8772
  "strict": true,
8773
+ "enableJsonFlag": false,
8784
8774
  "isESM": true,
8785
8775
  "relativePath": [
8786
8776
  "dist",
8787
8777
  "commands",
8788
- "sync",
8789
- "resume.js"
8778
+ "telemetry",
8779
+ "status.js"
8790
8780
  ]
8791
8781
  },
8792
- "sync:start": {
8782
+ "sync": {
8793
8783
  "aliases": [],
8794
8784
  "args": {},
8795
- "description": "Start the board sync daemon",
8785
+ "description": "Reconcile ticket state with GitHub PR status",
8796
8786
  "examples": [
8797
8787
  "<%= config.bin %> <%= command.id %>",
8798
- "<%= config.bin %> <%= command.id %> --interval 30"
8788
+ "<%= config.bin %> <%= command.id %> --dry-run"
8799
8789
  ],
8800
8790
  "flags": {
8791
+ "project": {
8792
+ "char": "P",
8793
+ "description": "Project ID (uses first project if only one exists)",
8794
+ "name": "project",
8795
+ "hasDynamicHelp": false,
8796
+ "multiple": false,
8797
+ "type": "option"
8798
+ },
8801
8799
  "json": {
8802
8800
  "description": "Output as JSON for AI agents/scripts",
8803
8801
  "name": "json",
@@ -8811,19 +8809,16 @@
8811
8809
  "allowNo": false,
8812
8810
  "type": "boolean"
8813
8811
  },
8814
- "interval": {
8815
- "char": "i",
8816
- "description": "Poll interval in seconds",
8817
- "name": "interval",
8818
- "default": 60,
8819
- "hasDynamicHelp": false,
8820
- "multiple": false,
8821
- "type": "option"
8812
+ "dry-run": {
8813
+ "description": "Show what would change without applying",
8814
+ "name": "dry-run",
8815
+ "allowNo": false,
8816
+ "type": "boolean"
8822
8817
  }
8823
8818
  },
8824
8819
  "hasDynamicHelp": false,
8825
8820
  "hiddenAliases": [],
8826
- "id": "sync:start",
8821
+ "id": "sync",
8827
8822
  "pluginAlias": "@proletariat/cli",
8828
8823
  "pluginName": "@proletariat/cli",
8829
8824
  "pluginType": "core",
@@ -8833,13 +8828,13 @@
8833
8828
  "dist",
8834
8829
  "commands",
8835
8830
  "sync",
8836
- "start.js"
8831
+ "index.js"
8837
8832
  ]
8838
8833
  },
8839
- "sync:status": {
8834
+ "sync:pause": {
8840
8835
  "aliases": [],
8841
8836
  "args": {},
8842
- "description": "Check the board sync daemon status",
8837
+ "description": "Pause the merge queue (keep monitoring but stop merging)",
8843
8838
  "examples": [
8844
8839
  "<%= config.bin %> <%= command.id %>"
8845
8840
  ],
@@ -8860,7 +8855,7 @@
8860
8855
  },
8861
8856
  "hasDynamicHelp": false,
8862
8857
  "hiddenAliases": [],
8863
- "id": "sync:status",
8858
+ "id": "sync:pause",
8864
8859
  "pluginAlias": "@proletariat/cli",
8865
8860
  "pluginName": "@proletariat/cli",
8866
8861
  "pluginType": "core",
@@ -8870,13 +8865,13 @@
8870
8865
  "dist",
8871
8866
  "commands",
8872
8867
  "sync",
8873
- "status.js"
8868
+ "pause.js"
8874
8869
  ]
8875
8870
  },
8876
- "sync:stop": {
8871
+ "sync:queue": {
8877
8872
  "aliases": [],
8878
8873
  "args": {},
8879
- "description": "Stop the board sync daemon",
8874
+ "description": "Show the merge queue state",
8880
8875
  "examples": [
8881
8876
  "<%= config.bin %> <%= command.id %>"
8882
8877
  ],
@@ -8897,7 +8892,7 @@
8897
8892
  },
8898
8893
  "hasDynamicHelp": false,
8899
8894
  "hiddenAliases": [],
8900
- "id": "sync:stop",
8895
+ "id": "sync:queue",
8901
8896
  "pluginAlias": "@proletariat/cli",
8902
8897
  "pluginName": "@proletariat/cli",
8903
8898
  "pluginType": "core",
@@ -8907,13 +8902,13 @@
8907
8902
  "dist",
8908
8903
  "commands",
8909
8904
  "sync",
8910
- "stop.js"
8905
+ "queue.js"
8911
8906
  ]
8912
8907
  },
8913
- "telemetry:disable": {
8908
+ "sync:resume": {
8914
8909
  "aliases": [],
8915
8910
  "args": {},
8916
- "description": "Disable anonymous telemetry",
8911
+ "description": "Resume the merge queue",
8917
8912
  "examples": [
8918
8913
  "<%= config.bin %> <%= command.id %>"
8919
8914
  ],
@@ -8934,26 +8929,26 @@
8934
8929
  },
8935
8930
  "hasDynamicHelp": false,
8936
8931
  "hiddenAliases": [],
8937
- "id": "telemetry:disable",
8932
+ "id": "sync:resume",
8938
8933
  "pluginAlias": "@proletariat/cli",
8939
8934
  "pluginName": "@proletariat/cli",
8940
8935
  "pluginType": "core",
8941
8936
  "strict": true,
8942
- "enableJsonFlag": false,
8943
8937
  "isESM": true,
8944
8938
  "relativePath": [
8945
8939
  "dist",
8946
8940
  "commands",
8947
- "telemetry",
8948
- "disable.js"
8941
+ "sync",
8942
+ "resume.js"
8949
8943
  ]
8950
8944
  },
8951
- "telemetry:enable": {
8945
+ "sync:start": {
8952
8946
  "aliases": [],
8953
8947
  "args": {},
8954
- "description": "Enable anonymous telemetry",
8948
+ "description": "Start the board sync daemon",
8955
8949
  "examples": [
8956
- "<%= config.bin %> <%= command.id %>"
8950
+ "<%= config.bin %> <%= command.id %>",
8951
+ "<%= config.bin %> <%= command.id %> --interval 30"
8957
8952
  ],
8958
8953
  "flags": {
8959
8954
  "json": {
@@ -8968,31 +8963,38 @@
8968
8963
  "name": "machine",
8969
8964
  "allowNo": false,
8970
8965
  "type": "boolean"
8971
- }
8972
- },
8973
- "hasDynamicHelp": false,
8966
+ },
8967
+ "interval": {
8968
+ "char": "i",
8969
+ "description": "Poll interval in seconds",
8970
+ "name": "interval",
8971
+ "default": 60,
8972
+ "hasDynamicHelp": false,
8973
+ "multiple": false,
8974
+ "type": "option"
8975
+ }
8976
+ },
8977
+ "hasDynamicHelp": false,
8974
8978
  "hiddenAliases": [],
8975
- "id": "telemetry:enable",
8979
+ "id": "sync:start",
8976
8980
  "pluginAlias": "@proletariat/cli",
8977
8981
  "pluginName": "@proletariat/cli",
8978
8982
  "pluginType": "core",
8979
8983
  "strict": true,
8980
- "enableJsonFlag": false,
8981
8984
  "isESM": true,
8982
8985
  "relativePath": [
8983
8986
  "dist",
8984
8987
  "commands",
8985
- "telemetry",
8986
- "enable.js"
8988
+ "sync",
8989
+ "start.js"
8987
8990
  ]
8988
8991
  },
8989
- "telemetry": {
8992
+ "sync:status": {
8990
8993
  "aliases": [],
8991
8994
  "args": {},
8992
- "description": "Show telemetry status",
8995
+ "description": "Check the board sync daemon status",
8993
8996
  "examples": [
8994
- "<%= config.bin %> <%= command.id %>",
8995
- "<%= config.bin %> <%= command.id %> --json"
8997
+ "<%= config.bin %> <%= command.id %>"
8996
8998
  ],
8997
8999
  "flags": {
8998
9000
  "json": {
@@ -9011,26 +9013,25 @@
9011
9013
  },
9012
9014
  "hasDynamicHelp": false,
9013
9015
  "hiddenAliases": [],
9014
- "id": "telemetry",
9016
+ "id": "sync:status",
9015
9017
  "pluginAlias": "@proletariat/cli",
9016
9018
  "pluginName": "@proletariat/cli",
9017
9019
  "pluginType": "core",
9018
9020
  "strict": true,
9019
- "enableJsonFlag": false,
9020
9021
  "isESM": true,
9021
9022
  "relativePath": [
9022
9023
  "dist",
9023
9024
  "commands",
9024
- "telemetry",
9025
- "index.js"
9025
+ "sync",
9026
+ "status.js"
9026
9027
  ]
9027
9028
  },
9028
- "telemetry:status": {
9029
+ "sync:stop": {
9029
9030
  "aliases": [],
9030
9031
  "args": {},
9031
- "description": "Show telemetry status",
9032
+ "description": "Stop the board sync daemon",
9032
9033
  "examples": [
9033
- "<%= config.bin %> telemetry status"
9034
+ "<%= config.bin %> <%= command.id %>"
9034
9035
  ],
9035
9036
  "flags": {
9036
9037
  "json": {
@@ -9049,18 +9050,17 @@
9049
9050
  },
9050
9051
  "hasDynamicHelp": false,
9051
9052
  "hiddenAliases": [],
9052
- "id": "telemetry:status",
9053
+ "id": "sync:stop",
9053
9054
  "pluginAlias": "@proletariat/cli",
9054
9055
  "pluginName": "@proletariat/cli",
9055
9056
  "pluginType": "core",
9056
9057
  "strict": true,
9057
- "enableJsonFlag": false,
9058
9058
  "isESM": true,
9059
9059
  "relativePath": [
9060
9060
  "dist",
9061
9061
  "commands",
9062
- "telemetry",
9063
- "status.js"
9062
+ "sync",
9063
+ "stop.js"
9064
9064
  ]
9065
9065
  },
9066
9066
  "terminal:title": {
@@ -9349,32 +9349,30 @@
9349
9349
  "set.js"
9350
9350
  ]
9351
9351
  },
9352
- "ticket:create": {
9352
+ "tools:add": {
9353
9353
  "aliases": [],
9354
- "args": {},
9355
- "description": "Create a new ticket (routes to Linear when configured, or local PMO)",
9354
+ "args": {
9355
+ "type": {
9356
+ "description": "Tool type (mcp or cli)",
9357
+ "name": "type",
9358
+ "options": [
9359
+ "mcp",
9360
+ "cli"
9361
+ ],
9362
+ "required": true
9363
+ },
9364
+ "name": {
9365
+ "description": "Tool name (unique identifier)",
9366
+ "name": "name",
9367
+ "required": true
9368
+ }
9369
+ },
9370
+ "description": "Register an MCP server or CLI tool",
9356
9371
  "examples": [
9357
- "<%= config.bin %> <%= command.id %>",
9358
- "<%= config.bin %> <%= command.id %> --title \"Fix login bug\" --column Backlog",
9359
- "<%= config.bin %> <%= command.id %> -t \"Add feature\" -c \"In Progress\" -p P1",
9360
- "<%= config.bin %> <%= command.id %> --project mobile-app -t \"New feature\"",
9361
- "<%= config.bin %> <%= command.id %> --epic EPIC-001 -t \"Implement auth flow\"",
9362
- "<%= config.bin %> <%= command.id %> --title \"My ticket\" --description-file ./ticket-desc.md",
9363
- "<%= config.bin %> <%= command.id %> --title \"My ticket\" --description-file - # Read from stdin",
9364
- "<%= config.bin %> <%= command.id %> --json # Output column choices as JSON",
9365
- "<%= config.bin %> <%= command.id %> --title \"Test\" -P PROJ-001 --dry-run --json # Validate without creating",
9366
- "<%= config.bin %> <%= command.id %> --source linear -t \"Fix bug\" --team ENG",
9367
- "<%= config.bin %> <%= command.id %> --source pmo -t \"Local task\" -c Backlog"
9372
+ "<%= config.bin %> tools add mcp arcade --url https://api.arcade.dev/mcp --auth ARCADE_API_KEY --description \"Arcade integrations\"",
9373
+ "<%= config.bin %> tools add cli gh --command gh --detect \"which gh\" --install \"brew install gh\" --description \"GitHub CLI\""
9368
9374
  ],
9369
9375
  "flags": {
9370
- "project": {
9371
- "char": "P",
9372
- "description": "Project ID (uses first project if only one exists)",
9373
- "name": "project",
9374
- "hasDynamicHelp": false,
9375
- "multiple": false,
9376
- "type": "option"
9377
- },
9378
9376
  "json": {
9379
9377
  "description": "Output as JSON for AI agents/scripts",
9380
9378
  "name": "json",
@@ -9388,119 +9386,46 @@
9388
9386
  "allowNo": false,
9389
9387
  "type": "boolean"
9390
9388
  },
9391
- "title": {
9392
- "char": "t",
9393
- "description": "Ticket title [required for non-interactive]",
9394
- "name": "title",
9395
- "hasDynamicHelp": false,
9396
- "multiple": false,
9397
- "type": "option"
9398
- },
9399
- "column": {
9400
- "char": "c",
9401
- "description": "Column to place the ticket in",
9402
- "name": "column",
9403
- "hasDynamicHelp": false,
9404
- "multiple": false,
9405
- "type": "option"
9406
- },
9407
- "priority": {
9408
- "char": "p",
9409
- "description": "Ticket priority (uses workspace priority scale)",
9410
- "name": "priority",
9411
- "hasDynamicHelp": false,
9412
- "multiple": false,
9413
- "type": "option"
9414
- },
9415
- "category": {
9416
- "description": "Ticket category (e.g., bug, feature, refactor)",
9417
- "name": "category",
9418
- "hasDynamicHelp": false,
9419
- "multiple": false,
9420
- "type": "option"
9421
- },
9422
- "description": {
9423
- "char": "d",
9424
- "description": "Ticket description",
9425
- "name": "description",
9426
- "hasDynamicHelp": false,
9427
- "multiple": false,
9428
- "type": "option"
9429
- },
9430
- "description-file": {
9431
- "char": "D",
9432
- "description": "Path to a markdown file for the ticket description (use - for stdin)",
9433
- "exclusive": [
9434
- "description"
9435
- ],
9436
- "name": "description-file",
9437
- "hasDynamicHelp": false,
9438
- "multiple": false,
9439
- "type": "option"
9440
- },
9441
- "id": {
9442
- "description": "Custom ticket ID (auto-generated if not provided)",
9443
- "name": "id",
9389
+ "url": {
9390
+ "description": "MCP server URL (for remote servers)",
9391
+ "name": "url",
9444
9392
  "hasDynamicHelp": false,
9445
9393
  "multiple": false,
9446
9394
  "type": "option"
9447
9395
  },
9448
- "interactive": {
9449
- "char": "i",
9450
- "description": "Interactive mode",
9451
- "name": "interactive",
9452
- "allowNo": false,
9453
- "type": "boolean"
9454
- },
9455
- "epic": {
9456
- "char": "e",
9457
- "description": "Link ticket to an epic (e.g., EPIC-001)",
9458
- "name": "epic",
9396
+ "command": {
9397
+ "description": "Command to run (MCP server command or CLI tool binary)",
9398
+ "name": "command",
9459
9399
  "hasDynamicHelp": false,
9460
9400
  "multiple": false,
9461
9401
  "type": "option"
9462
9402
  },
9463
- "template": {
9464
- "char": "T",
9465
- "description": "Create from a template (e.g., bug-report, feature-request)",
9466
- "name": "template",
9403
+ "auth": {
9404
+ "description": "Environment variable for authentication (e.g., ARCADE_API_KEY)",
9405
+ "name": "auth",
9467
9406
  "hasDynamicHelp": false,
9468
9407
  "multiple": false,
9469
9408
  "type": "option"
9470
9409
  },
9471
- "labels": {
9472
- "aliases": [
9473
- "label"
9474
- ],
9475
- "char": "l",
9476
- "description": "Labels (comma-separated)",
9477
- "name": "labels",
9410
+ "detect": {
9411
+ "description": "Shell command to detect if CLI tool is installed",
9412
+ "name": "detect",
9478
9413
  "hasDynamicHelp": false,
9479
9414
  "multiple": false,
9480
9415
  "type": "option"
9481
9416
  },
9482
- "dry-run": {
9483
- "description": "Validate inputs without creating ticket (use with --json for structured output)",
9484
- "name": "dry-run",
9485
- "allowNo": false,
9486
- "type": "boolean"
9487
- },
9488
- "source": {
9489
- "description": "Ticket source: \"pmo\" for local DB, \"linear\" for Linear API, or \"auto\" to detect (default: auto)",
9490
- "name": "source",
9491
- "default": "auto",
9417
+ "install": {
9418
+ "description": "Shell command to install the CLI tool",
9419
+ "name": "install",
9492
9420
  "hasDynamicHelp": false,
9493
9421
  "multiple": false,
9494
- "options": [
9495
- "auto",
9496
- "pmo",
9497
- "linear"
9498
- ],
9499
9422
  "type": "option"
9500
9423
  },
9501
- "team": {
9502
- "description": "Linear team key (fallback: PRLT_LINEAR_TEAM)",
9503
- "name": "team",
9424
+ "description": {
9425
+ "char": "d",
9426
+ "description": "Human-readable description",
9427
+ "name": "description",
9428
+ "required": true,
9504
9429
  "hasDynamicHelp": false,
9505
9430
  "multiple": false,
9506
9431
  "type": "option"
@@ -9508,7 +9433,7 @@
9508
9433
  },
9509
9434
  "hasDynamicHelp": false,
9510
9435
  "hiddenAliases": [],
9511
- "id": "ticket:create",
9436
+ "id": "tools:add",
9512
9437
  "pluginAlias": "@proletariat/cli",
9513
9438
  "pluginName": "@proletariat/cli",
9514
9439
  "pluginType": "core",
@@ -9517,36 +9442,19 @@
9517
9442
  "relativePath": [
9518
9443
  "dist",
9519
9444
  "commands",
9520
- "ticket",
9521
- "create.js"
9445
+ "tools",
9446
+ "add.js"
9522
9447
  ]
9523
9448
  },
9524
- "ticket:delete": {
9449
+ "tools:check": {
9525
9450
  "aliases": [],
9526
- "args": {
9527
- "ticketId": {
9528
- "description": "Ticket ID to delete - prompts with dropdown if not provided",
9529
- "name": "ticketId",
9530
- "required": false
9531
- }
9532
- },
9533
- "description": "Delete ticket(s) permanently",
9451
+ "args": {},
9452
+ "description": "Verify all registered tools are available and healthy",
9534
9453
  "examples": [
9535
- "<%= config.bin %> <%= command.id %> TICK-001",
9536
- "<%= config.bin %> <%= command.id %> TICK-001 --force",
9537
- "<%= config.bin %> <%= command.id %> # Interactive mode",
9538
- "<%= config.bin %> <%= command.id %> --bulk",
9539
- "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
9454
+ "<%= config.bin %> tools check",
9455
+ "<%= config.bin %> tools check --json"
9540
9456
  ],
9541
9457
  "flags": {
9542
- "project": {
9543
- "char": "P",
9544
- "description": "Project ID (uses first project if only one exists)",
9545
- "name": "project",
9546
- "hasDynamicHelp": false,
9547
- "multiple": false,
9548
- "type": "option"
9549
- },
9550
9458
  "json": {
9551
9459
  "description": "Output as JSON for AI agents/scripts",
9552
9460
  "name": "json",
@@ -9559,64 +9467,34 @@
9559
9467
  "name": "machine",
9560
9468
  "allowNo": false,
9561
9469
  "type": "boolean"
9562
- },
9563
- "force": {
9564
- "char": "f",
9565
- "description": "Skip confirmation prompt",
9566
- "name": "force",
9567
- "allowNo": false,
9568
- "type": "boolean"
9569
- },
9570
- "bulk": {
9571
- "char": "b",
9572
- "description": "Enable bulk mode to delete multiple tickets",
9573
- "name": "bulk",
9574
- "allowNo": false,
9575
- "type": "boolean"
9576
9470
  }
9577
9471
  },
9578
9472
  "hasDynamicHelp": false,
9579
9473
  "hiddenAliases": [],
9580
- "id": "ticket:delete",
9474
+ "id": "tools:check",
9581
9475
  "pluginAlias": "@proletariat/cli",
9582
9476
  "pluginName": "@proletariat/cli",
9583
9477
  "pluginType": "core",
9584
9478
  "strict": true,
9479
+ "enableJsonFlag": false,
9585
9480
  "isESM": true,
9586
9481
  "relativePath": [
9587
9482
  "dist",
9588
9483
  "commands",
9589
- "ticket",
9590
- "delete.js"
9484
+ "tools",
9485
+ "check.js"
9591
9486
  ]
9592
9487
  },
9593
- "ticket:edit": {
9488
+ "tools:detect": {
9594
9489
  "aliases": [],
9595
- "args": {
9596
- "ticketId": {
9597
- "description": "Ticket ID to edit - prompts with dropdown if not provided",
9598
- "name": "ticketId",
9599
- "required": false
9600
- }
9601
- },
9602
- "description": "Edit an existing ticket",
9490
+ "args": {},
9491
+ "description": "Auto-detect common CLI tools on the system and register them",
9603
9492
  "examples": [
9604
- "<%= config.bin %> <%= command.id %> TICK-001",
9605
- "<%= config.bin %> <%= command.id %> TICK-001 --title \"New title\"",
9606
- "<%= config.bin %> <%= command.id %> TICK-001 --priority P1 --category bug",
9607
- "<%= config.bin %> <%= command.id %> TICK-001 --add-subtask \"Implement feature\" --add-subtask \"Write tests\"",
9608
- "<%= config.bin %> <%= command.id %> TICK-001 --owner \"john\" --assignee \"agent-1\"",
9609
- "<%= config.bin %> <%= command.id %> # Interactive mode"
9493
+ "<%= config.bin %> tools detect",
9494
+ "<%= config.bin %> tools detect --auto",
9495
+ "<%= config.bin %> tools detect --json"
9610
9496
  ],
9611
9497
  "flags": {
9612
- "project": {
9613
- "char": "P",
9614
- "description": "Project ID (uses first project if only one exists)",
9615
- "name": "project",
9616
- "hasDynamicHelp": false,
9617
- "multiple": false,
9618
- "type": "option"
9619
- },
9620
9498
  "json": {
9621
9499
  "description": "Output as JSON for AI agents/scripts",
9622
9500
  "name": "json",
@@ -9630,122 +9508,83 @@
9630
9508
  "allowNo": false,
9631
9509
  "type": "boolean"
9632
9510
  },
9633
- "title": {
9634
- "char": "t",
9635
- "description": "New ticket title",
9636
- "name": "title",
9637
- "hasDynamicHelp": false,
9638
- "multiple": false,
9639
- "type": "option"
9640
- },
9641
- "description": {
9642
- "char": "d",
9643
- "description": "New ticket description",
9644
- "name": "description",
9645
- "hasDynamicHelp": false,
9646
- "multiple": false,
9647
- "type": "option"
9648
- },
9649
- "priority": {
9650
- "char": "p",
9651
- "description": "New ticket priority (uses workspace priority scale, \"none\" to clear)",
9652
- "name": "priority",
9653
- "hasDynamicHelp": false,
9654
- "multiple": false,
9655
- "type": "option"
9656
- },
9657
- "category": {
9658
- "description": "New ticket category",
9659
- "name": "category",
9660
- "hasDynamicHelp": false,
9661
- "multiple": false,
9662
- "type": "option"
9663
- },
9664
- "owner": {
9665
- "char": "o",
9666
- "description": "Ticket owner (human responsible)",
9667
- "name": "owner",
9668
- "hasDynamicHelp": false,
9669
- "multiple": false,
9670
- "type": "option"
9671
- },
9672
- "assignee": {
9673
- "char": "a",
9674
- "description": "Ticket assignee (who executes)",
9675
- "name": "assignee",
9676
- "hasDynamicHelp": false,
9677
- "multiple": false,
9678
- "type": "option"
9679
- },
9680
- "add-subtask": {
9681
- "description": "Add a subtask (can be used multiple times)",
9682
- "name": "add-subtask",
9683
- "hasDynamicHelp": false,
9684
- "multiple": true,
9685
- "type": "option"
9686
- },
9687
- "clear-subtasks": {
9688
- "description": "Clear all existing subtasks before adding new ones",
9689
- "name": "clear-subtasks",
9511
+ "auto": {
9512
+ "description": "Automatically register all detected tools without prompting",
9513
+ "name": "auto",
9690
9514
  "allowNo": false,
9691
9515
  "type": "boolean"
9692
- },
9693
- "add-label": {
9694
- "description": "Add a label (can be used multiple times)",
9695
- "name": "add-label",
9696
- "hasDynamicHelp": false,
9697
- "multiple": true,
9698
- "type": "option"
9699
- },
9700
- "remove-label": {
9701
- "description": "Remove a label",
9702
- "name": "remove-label",
9703
- "hasDynamicHelp": false,
9704
- "multiple": true,
9705
- "type": "option"
9706
- },
9707
- "add-ac": {
9708
- "description": "Add an acceptance criterion (can be used multiple times)",
9709
- "name": "add-ac",
9710
- "hasDynamicHelp": false,
9711
- "multiple": true,
9712
- "type": "option"
9713
- },
9714
- "clear-ac": {
9715
- "description": "Clear all existing acceptance criteria before adding new ones",
9716
- "name": "clear-ac",
9516
+ }
9517
+ },
9518
+ "hasDynamicHelp": false,
9519
+ "hiddenAliases": [],
9520
+ "id": "tools:detect",
9521
+ "pluginAlias": "@proletariat/cli",
9522
+ "pluginName": "@proletariat/cli",
9523
+ "pluginType": "core",
9524
+ "strict": true,
9525
+ "enableJsonFlag": false,
9526
+ "isESM": true,
9527
+ "relativePath": [
9528
+ "dist",
9529
+ "commands",
9530
+ "tools",
9531
+ "detect.js"
9532
+ ]
9533
+ },
9534
+ "tools": {
9535
+ "aliases": [
9536
+ "tools:list"
9537
+ ],
9538
+ "args": {},
9539
+ "description": "Show all registered MCP servers and CLI tools",
9540
+ "examples": [
9541
+ "<%= config.bin %> tools",
9542
+ "<%= config.bin %> tools --json"
9543
+ ],
9544
+ "flags": {
9545
+ "json": {
9546
+ "description": "Output as JSON for AI agents/scripts",
9547
+ "name": "json",
9717
9548
  "allowNo": false,
9718
9549
  "type": "boolean"
9719
9550
  },
9720
- "interactive": {
9721
- "char": "i",
9722
- "description": "Interactive mode - prompts for all fields",
9723
- "name": "interactive",
9551
+ "machine": {
9552
+ "char": "m",
9553
+ "description": "Output as JSON for AI agents/scripts",
9554
+ "name": "machine",
9724
9555
  "allowNo": false,
9725
9556
  "type": "boolean"
9726
9557
  }
9727
9558
  },
9728
9559
  "hasDynamicHelp": false,
9729
9560
  "hiddenAliases": [],
9730
- "id": "ticket:edit",
9561
+ "id": "tools",
9731
9562
  "pluginAlias": "@proletariat/cli",
9732
9563
  "pluginName": "@proletariat/cli",
9733
9564
  "pluginType": "core",
9734
9565
  "strict": true,
9566
+ "enableJsonFlag": false,
9735
9567
  "isESM": true,
9736
9568
  "relativePath": [
9737
9569
  "dist",
9738
9570
  "commands",
9739
- "ticket",
9740
- "edit.js"
9571
+ "tools",
9572
+ "index.js"
9741
9573
  ]
9742
9574
  },
9743
- "ticket": {
9575
+ "tools:remove": {
9744
9576
  "aliases": [],
9745
- "args": {},
9746
- "description": "Interactive menu for ticket operations",
9577
+ "args": {
9578
+ "name": {
9579
+ "description": "Tool name to remove",
9580
+ "name": "name",
9581
+ "required": true
9582
+ }
9583
+ },
9584
+ "description": "Remove a tool from the registry",
9747
9585
  "examples": [
9748
- "<%= config.bin %> <%= command.id %>"
9586
+ "<%= config.bin %> tools remove arcade",
9587
+ "<%= config.bin %> tools remove ffmpeg"
9749
9588
  ],
9750
9589
  "flags": {
9751
9590
  "json": {
@@ -9764,35 +9603,36 @@
9764
9603
  },
9765
9604
  "hasDynamicHelp": false,
9766
9605
  "hiddenAliases": [],
9767
- "id": "ticket",
9606
+ "id": "tools:remove",
9768
9607
  "pluginAlias": "@proletariat/cli",
9769
9608
  "pluginName": "@proletariat/cli",
9770
9609
  "pluginType": "core",
9771
9610
  "strict": true,
9611
+ "enableJsonFlag": false,
9772
9612
  "isESM": true,
9773
9613
  "relativePath": [
9774
9614
  "dist",
9775
9615
  "commands",
9776
- "ticket",
9777
- "index.js"
9616
+ "tools",
9617
+ "remove.js"
9778
9618
  ]
9779
9619
  },
9780
- "ticket:list": {
9620
+ "ticket:create": {
9781
9621
  "aliases": [],
9782
9622
  "args": {},
9783
- "description": "List tickets from the PMO board",
9623
+ "description": "Create a new ticket (routes to Linear when configured, or local PMO)",
9784
9624
  "examples": [
9785
9625
  "<%= config.bin %> <%= command.id %>",
9786
- "<%= config.bin %> <%= command.id %> --column Backlog",
9787
- "<%= config.bin %> <%= command.id %> --priority P0",
9788
- "<%= config.bin %> <%= command.id %> --category bug",
9789
- "<%= config.bin %> <%= command.id %> --search \"login\"",
9790
- "<%= config.bin %> <%= command.id %> --project mobile-app",
9791
- "<%= config.bin %> <%= command.id %> --all",
9792
- "<%= config.bin %> <%= command.id %> --all --group-by priority",
9793
- "<%= config.bin %> <%= command.id %> -g priority",
9794
- "<%= config.bin %> <%= command.id %> --limit 10",
9795
- "<%= config.bin %> <%= command.id %> --limit 10 --offset 20"
9626
+ "<%= config.bin %> <%= command.id %> --title \"Fix login bug\" --column Backlog",
9627
+ "<%= config.bin %> <%= command.id %> -t \"Add feature\" -c \"In Progress\" -p P1",
9628
+ "<%= config.bin %> <%= command.id %> --project mobile-app -t \"New feature\"",
9629
+ "<%= config.bin %> <%= command.id %> --epic EPIC-001 -t \"Implement auth flow\"",
9630
+ "<%= config.bin %> <%= command.id %> --title \"My ticket\" --description-file ./ticket-desc.md",
9631
+ "<%= config.bin %> <%= command.id %> --title \"My ticket\" --description-file - # Read from stdin",
9632
+ "<%= config.bin %> <%= command.id %> --json # Output column choices as JSON",
9633
+ "<%= config.bin %> <%= command.id %> --title \"Test\" -P PROJ-001 --dry-run --json # Validate without creating",
9634
+ "<%= config.bin %> <%= command.id %> --source linear -t \"Fix bug\" --team ENG",
9635
+ "<%= config.bin %> <%= command.id %> --source pmo -t \"Local task\" -c Backlog"
9796
9636
  ],
9797
9637
  "flags": {
9798
9638
  "project": {
@@ -9816,9 +9656,17 @@
9816
9656
  "allowNo": false,
9817
9657
  "type": "boolean"
9818
9658
  },
9659
+ "title": {
9660
+ "char": "t",
9661
+ "description": "Ticket title [required for non-interactive]",
9662
+ "name": "title",
9663
+ "hasDynamicHelp": false,
9664
+ "multiple": false,
9665
+ "type": "option"
9666
+ },
9819
9667
  "column": {
9820
9668
  "char": "c",
9821
- "description": "Filter by column",
9669
+ "description": "Column to place the ticket in",
9822
9670
  "name": "column",
9823
9671
  "hasDynamicHelp": false,
9824
9672
  "multiple": false,
@@ -9826,83 +9674,85 @@
9826
9674
  },
9827
9675
  "priority": {
9828
9676
  "char": "p",
9829
- "description": "Filter by priority (uses workspace priority scale)",
9677
+ "description": "Ticket priority (uses workspace priority scale)",
9830
9678
  "name": "priority",
9831
9679
  "hasDynamicHelp": false,
9832
9680
  "multiple": false,
9833
9681
  "type": "option"
9834
9682
  },
9835
9683
  "category": {
9836
- "description": "Filter by category",
9684
+ "description": "Ticket category (e.g., bug, feature, refactor)",
9837
9685
  "name": "category",
9838
9686
  "hasDynamicHelp": false,
9839
9687
  "multiple": false,
9840
9688
  "type": "option"
9841
9689
  },
9842
- "search": {
9843
- "char": "s",
9844
- "description": "Search in title and description",
9845
- "name": "search",
9690
+ "description": {
9691
+ "char": "d",
9692
+ "description": "Ticket description",
9693
+ "name": "description",
9846
9694
  "hasDynamicHelp": false,
9847
9695
  "multiple": false,
9848
9696
  "type": "option"
9849
9697
  },
9850
- "format": {
9851
- "char": "f",
9852
- "description": "Output format",
9853
- "name": "format",
9854
- "default": "table",
9698
+ "description-file": {
9699
+ "char": "D",
9700
+ "description": "Path to a markdown file for the ticket description (use - for stdin)",
9701
+ "exclusive": [
9702
+ "description"
9703
+ ],
9704
+ "name": "description-file",
9855
9705
  "hasDynamicHelp": false,
9856
9706
  "multiple": false,
9857
- "options": [
9858
- "table",
9859
- "compact",
9860
- "json"
9861
- ],
9862
9707
  "type": "option"
9863
9708
  },
9864
- "all": {
9865
- "char": "a",
9866
- "description": "Show tickets across all projects",
9867
- "name": "all",
9868
- "allowNo": false,
9869
- "type": "boolean"
9870
- },
9871
- "label": {
9872
- "description": "Filter by label name",
9873
- "name": "label",
9874
- "hasDynamicHelp": false,
9709
+ "id": {
9710
+ "description": "Custom ticket ID (auto-generated if not provided)",
9711
+ "name": "id",
9712
+ "hasDynamicHelp": false,
9875
9713
  "multiple": false,
9876
9714
  "type": "option"
9877
9715
  },
9878
- "group-by": {
9879
- "char": "g",
9880
- "description": "Group tickets by field",
9881
- "name": "group-by",
9882
- "default": "status",
9716
+ "interactive": {
9717
+ "char": "i",
9718
+ "description": "Interactive mode",
9719
+ "name": "interactive",
9720
+ "allowNo": false,
9721
+ "type": "boolean"
9722
+ },
9723
+ "epic": {
9724
+ "char": "e",
9725
+ "description": "Link ticket to an epic (e.g., EPIC-001)",
9726
+ "name": "epic",
9883
9727
  "hasDynamicHelp": false,
9884
9728
  "multiple": false,
9885
- "options": [
9886
- "status",
9887
- "priority"
9888
- ],
9889
9729
  "type": "option"
9890
9730
  },
9891
- "limit": {
9892
- "char": "l",
9893
- "description": "Maximum number of tickets to display",
9894
- "name": "limit",
9731
+ "template": {
9732
+ "char": "T",
9733
+ "description": "Create from a template (e.g., bug-report, feature-request)",
9734
+ "name": "template",
9895
9735
  "hasDynamicHelp": false,
9896
9736
  "multiple": false,
9897
9737
  "type": "option"
9898
9738
  },
9899
- "offset": {
9900
- "description": "Skip first N tickets (for pagination)",
9901
- "name": "offset",
9739
+ "labels": {
9740
+ "aliases": [
9741
+ "label"
9742
+ ],
9743
+ "char": "l",
9744
+ "description": "Labels (comma-separated)",
9745
+ "name": "labels",
9902
9746
  "hasDynamicHelp": false,
9903
9747
  "multiple": false,
9904
9748
  "type": "option"
9905
9749
  },
9750
+ "dry-run": {
9751
+ "description": "Validate inputs without creating ticket (use with --json for structured output)",
9752
+ "name": "dry-run",
9753
+ "allowNo": false,
9754
+ "type": "boolean"
9755
+ },
9906
9756
  "source": {
9907
9757
  "description": "Ticket source: \"pmo\" for local DB, \"linear\" for Linear API, or \"auto\" to detect (default: auto)",
9908
9758
  "name": "source",
@@ -9926,42 +9776,35 @@
9926
9776
  },
9927
9777
  "hasDynamicHelp": false,
9928
9778
  "hiddenAliases": [],
9929
- "id": "ticket:list",
9779
+ "id": "ticket:create",
9930
9780
  "pluginAlias": "@proletariat/cli",
9931
9781
  "pluginName": "@proletariat/cli",
9932
9782
  "pluginType": "core",
9933
9783
  "strict": true,
9934
- "enableJsonFlag": false,
9935
9784
  "isESM": true,
9936
9785
  "relativePath": [
9937
9786
  "dist",
9938
9787
  "commands",
9939
9788
  "ticket",
9940
- "list.js"
9789
+ "create.js"
9941
9790
  ]
9942
9791
  },
9943
- "ticket:move": {
9792
+ "ticket:delete": {
9944
9793
  "aliases": [],
9945
9794
  "args": {
9946
9795
  "ticketId": {
9947
- "description": "Ticket ID - prompts with dropdown if not provided",
9796
+ "description": "Ticket ID to delete - prompts with dropdown if not provided",
9948
9797
  "name": "ticketId",
9949
9798
  "required": false
9950
- },
9951
- "column": {
9952
- "description": "Target column - prompts with dropdown if not provided",
9953
- "name": "column",
9954
- "required": false
9955
9799
  }
9956
9800
  },
9957
- "description": "Move ticket(s) to a different column",
9801
+ "description": "Delete ticket(s) permanently",
9958
9802
  "examples": [
9959
- "<%= config.bin %> <%= command.id %> my-ticket \"In Progress\"",
9960
- "<%= config.bin %> <%= command.id %> implement-auth Done",
9961
- "<%= config.bin %> <%= command.id %> TKT-123 --status \"In Review\"",
9962
- "<%= config.bin %> <%= command.id %> fix-bug \"In Review\" --position 0",
9963
- "<%= config.bin %> <%= command.id %> TKT-123 --to-project PROJ-002",
9964
- "<%= config.bin %> <%= command.id %> --bulk"
9803
+ "<%= config.bin %> <%= command.id %> TICK-001",
9804
+ "<%= config.bin %> <%= command.id %> TICK-001 --force",
9805
+ "<%= config.bin %> <%= command.id %> # Interactive mode",
9806
+ "<%= config.bin %> <%= command.id %> --bulk",
9807
+ "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
9965
9808
  ],
9966
9809
  "flags": {
9967
9810
  "project": {
@@ -9985,52 +9828,24 @@
9985
9828
  "allowNo": false,
9986
9829
  "type": "boolean"
9987
9830
  },
9988
- "status": {
9989
- "char": "s",
9990
- "description": "Target status/column (alternative to positional column argument)",
9991
- "name": "status",
9992
- "hasDynamicHelp": false,
9993
- "multiple": false,
9994
- "type": "option"
9995
- },
9996
- "position": {
9997
- "description": "Position within the column (0 = top)",
9998
- "name": "position",
9999
- "hasDynamicHelp": false,
10000
- "multiple": false,
10001
- "type": "option"
10002
- },
10003
- "to-project": {
10004
- "description": "Move ticket to a different project (uses Backlog/default column)",
10005
- "name": "to-project",
10006
- "hasDynamicHelp": false,
10007
- "multiple": false,
10008
- "type": "option"
10009
- },
10010
- "bulk": {
10011
- "char": "b",
10012
- "description": "Enable bulk mode to move multiple tickets",
10013
- "name": "bulk",
10014
- "allowNo": false,
10015
- "type": "boolean"
10016
- },
10017
9831
  "force": {
10018
9832
  "char": "f",
10019
- "description": "Skip confirmation prompt (bulk mode only)",
9833
+ "description": "Skip confirmation prompt",
10020
9834
  "name": "force",
10021
9835
  "allowNo": false,
10022
9836
  "type": "boolean"
10023
9837
  },
10024
- "no-cleanup": {
10025
- "description": "Skip automatic worktree cleanup when moving to Done",
10026
- "name": "no-cleanup",
9838
+ "bulk": {
9839
+ "char": "b",
9840
+ "description": "Enable bulk mode to delete multiple tickets",
9841
+ "name": "bulk",
10027
9842
  "allowNo": false,
10028
9843
  "type": "boolean"
10029
9844
  }
10030
9845
  },
10031
9846
  "hasDynamicHelp": false,
10032
9847
  "hiddenAliases": [],
10033
- "id": "ticket:move",
9848
+ "id": "ticket:delete",
10034
9849
  "pluginAlias": "@proletariat/cli",
10035
9850
  "pluginName": "@proletariat/cli",
10036
9851
  "pluginType": "core",
@@ -10040,82 +9855,27 @@
10040
9855
  "dist",
10041
9856
  "commands",
10042
9857
  "ticket",
10043
- "move.js"
9858
+ "delete.js"
10044
9859
  ]
10045
9860
  },
10046
- "ticket:show": {
9861
+ "ticket:edit": {
10047
9862
  "aliases": [],
10048
9863
  "args": {
10049
9864
  "ticketId": {
10050
- "description": "Ticket ID to view - prompts with dropdown if not provided",
9865
+ "description": "Ticket ID to edit - prompts with dropdown if not provided",
10051
9866
  "name": "ticketId",
10052
9867
  "required": false
10053
9868
  }
10054
9869
  },
10055
- "description": "View detailed ticket information",
9870
+ "description": "Edit an existing ticket",
10056
9871
  "examples": [
10057
9872
  "<%= config.bin %> <%= command.id %> TICK-001",
9873
+ "<%= config.bin %> <%= command.id %> TICK-001 --title \"New title\"",
9874
+ "<%= config.bin %> <%= command.id %> TICK-001 --priority P1 --category bug",
9875
+ "<%= config.bin %> <%= command.id %> TICK-001 --add-subtask \"Implement feature\" --add-subtask \"Write tests\"",
9876
+ "<%= config.bin %> <%= command.id %> TICK-001 --owner \"john\" --assignee \"agent-1\"",
10058
9877
  "<%= config.bin %> <%= command.id %> # Interactive mode"
10059
9878
  ],
10060
- "flags": {
10061
- "project": {
10062
- "char": "P",
10063
- "description": "Project ID (uses first project if only one exists)",
10064
- "name": "project",
10065
- "hasDynamicHelp": false,
10066
- "multiple": false,
10067
- "type": "option"
10068
- },
10069
- "json": {
10070
- "description": "Output as JSON for AI agents/scripts",
10071
- "name": "json",
10072
- "allowNo": false,
10073
- "type": "boolean"
10074
- },
10075
- "machine": {
10076
- "char": "m",
10077
- "description": "Output as JSON for AI agents/scripts",
10078
- "name": "machine",
10079
- "allowNo": false,
10080
- "type": "boolean"
10081
- }
10082
- },
10083
- "hasDynamicHelp": false,
10084
- "hiddenAliases": [],
10085
- "id": "ticket:show",
10086
- "pluginAlias": "@proletariat/cli",
10087
- "pluginName": "@proletariat/cli",
10088
- "pluginType": "core",
10089
- "strict": true,
10090
- "isESM": true,
10091
- "relativePath": [
10092
- "dist",
10093
- "commands",
10094
- "ticket",
10095
- "show.js"
10096
- ]
10097
- },
10098
- "ticket:update": {
10099
- "aliases": [],
10100
- "args": {
10101
- "ticketId": {
10102
- "description": "Ticket ID - prompts with dropdown if not provided",
10103
- "name": "ticketId",
10104
- "required": false
10105
- }
10106
- },
10107
- "description": "Update ticket fields (title, description, priority, category, labels, status)",
10108
- "examples": [
10109
- "<%= config.bin %> <%= command.id %> TKT-001 --title \"New title\"",
10110
- "<%= config.bin %> <%= command.id %> TKT-001 --description \"Updated description\"",
10111
- "<%= config.bin %> <%= command.id %> TKT-001 --description-file ./spec.md",
10112
- "<%= config.bin %> <%= command.id %> TKT-001 --priority P1",
10113
- "<%= config.bin %> <%= command.id %> TKT-001 --category bug",
10114
- "<%= config.bin %> <%= command.id %> TKT-001 --labels frontend,urgent",
10115
- "<%= config.bin %> <%= command.id %> TKT-001 --status \"In Progress\"",
10116
- "<%= config.bin %> <%= command.id %> TKT-001 --title \"Fix auth\" --priority P0 --status \"In Progress\" --json",
10117
- "<%= config.bin %> <%= command.id %> --bulk --priority P1"
10118
- ],
10119
9879
  "flags": {
10120
9880
  "project": {
10121
9881
  "char": "P",
@@ -10140,7 +9900,7 @@
10140
9900
  },
10141
9901
  "title": {
10142
9902
  "char": "t",
10143
- "description": "Set ticket title",
9903
+ "description": "New ticket title",
10144
9904
  "name": "title",
10145
9905
  "hasDynamicHelp": false,
10146
9906
  "multiple": false,
@@ -10148,103 +9908,112 @@
10148
9908
  },
10149
9909
  "description": {
10150
9910
  "char": "d",
10151
- "description": "Set ticket description",
9911
+ "description": "New ticket description",
10152
9912
  "name": "description",
10153
9913
  "hasDynamicHelp": false,
10154
9914
  "multiple": false,
10155
9915
  "type": "option"
10156
9916
  },
10157
- "description-file": {
10158
- "description": "Read ticket description from a file",
10159
- "name": "description-file",
10160
- "hasDynamicHelp": false,
10161
- "multiple": false,
10162
- "type": "option"
10163
- },
10164
9917
  "priority": {
10165
9918
  "char": "p",
10166
- "description": "Set priority (uses workspace priority scale, \"none\" to clear)",
9919
+ "description": "New ticket priority (uses workspace priority scale, \"none\" to clear)",
10167
9920
  "name": "priority",
10168
9921
  "hasDynamicHelp": false,
10169
9922
  "multiple": false,
10170
9923
  "type": "option"
10171
9924
  },
10172
9925
  "category": {
10173
- "char": "c",
10174
- "description": "Set category (e.g., feature, bug, refactor, \"none\" to clear)",
9926
+ "description": "New ticket category",
10175
9927
  "name": "category",
10176
9928
  "hasDynamicHelp": false,
10177
9929
  "multiple": false,
10178
9930
  "type": "option"
10179
9931
  },
10180
- "labels": {
10181
- "char": "l",
10182
- "description": "Set labels (comma-separated, replaces existing labels; use \"\" to clear)",
10183
- "name": "labels",
9932
+ "owner": {
9933
+ "char": "o",
9934
+ "description": "Ticket owner (human responsible)",
9935
+ "name": "owner",
10184
9936
  "hasDynamicHelp": false,
10185
9937
  "multiple": false,
10186
9938
  "type": "option"
10187
9939
  },
10188
- "status": {
10189
- "char": "s",
10190
- "description": "Set status/column (e.g., \"In Progress\", \"Done\")",
10191
- "name": "status",
9940
+ "assignee": {
9941
+ "char": "a",
9942
+ "description": "Ticket assignee (who executes)",
9943
+ "name": "assignee",
10192
9944
  "hasDynamicHelp": false,
10193
9945
  "multiple": false,
10194
9946
  "type": "option"
10195
9947
  },
10196
- "bulk": {
10197
- "char": "b",
10198
- "description": "Enable bulk mode to update multiple tickets",
10199
- "name": "bulk",
10200
- "allowNo": false,
10201
- "type": "boolean"
9948
+ "add-subtask": {
9949
+ "description": "Add a subtask (can be used multiple times)",
9950
+ "name": "add-subtask",
9951
+ "hasDynamicHelp": false,
9952
+ "multiple": true,
9953
+ "type": "option"
10202
9954
  },
10203
- "force": {
10204
- "char": "f",
10205
- "description": "Skip confirmation prompt",
10206
- "name": "force",
9955
+ "clear-subtasks": {
9956
+ "description": "Clear all existing subtasks before adding new ones",
9957
+ "name": "clear-subtasks",
10207
9958
  "allowNo": false,
10208
9959
  "type": "boolean"
10209
- }
10210
- },
10211
- "hasDynamicHelp": false,
10212
- "hiddenAliases": [],
10213
- "id": "ticket:update",
10214
- "pluginAlias": "@proletariat/cli",
10215
- "pluginName": "@proletariat/cli",
10216
- "pluginType": "core",
10217
- "strict": true,
10218
- "isESM": true,
10219
- "relativePath": [
10220
- "dist",
10221
- "commands",
10222
- "ticket",
10223
- "update.js"
10224
- ]
10225
- },
10226
- "tools:add": {
10227
- "aliases": [],
10228
- "args": {
10229
- "type": {
10230
- "description": "Tool type (mcp or cli)",
10231
- "name": "type",
10232
- "options": [
10233
- "mcp",
10234
- "cli"
10235
- ],
10236
- "required": true
10237
9960
  },
10238
- "name": {
10239
- "description": "Tool name (unique identifier)",
10240
- "name": "name",
10241
- "required": true
9961
+ "add-label": {
9962
+ "description": "Add a label (can be used multiple times)",
9963
+ "name": "add-label",
9964
+ "hasDynamicHelp": false,
9965
+ "multiple": true,
9966
+ "type": "option"
9967
+ },
9968
+ "remove-label": {
9969
+ "description": "Remove a label",
9970
+ "name": "remove-label",
9971
+ "hasDynamicHelp": false,
9972
+ "multiple": true,
9973
+ "type": "option"
9974
+ },
9975
+ "add-ac": {
9976
+ "description": "Add an acceptance criterion (can be used multiple times)",
9977
+ "name": "add-ac",
9978
+ "hasDynamicHelp": false,
9979
+ "multiple": true,
9980
+ "type": "option"
9981
+ },
9982
+ "clear-ac": {
9983
+ "description": "Clear all existing acceptance criteria before adding new ones",
9984
+ "name": "clear-ac",
9985
+ "allowNo": false,
9986
+ "type": "boolean"
9987
+ },
9988
+ "interactive": {
9989
+ "char": "i",
9990
+ "description": "Interactive mode - prompts for all fields",
9991
+ "name": "interactive",
9992
+ "allowNo": false,
9993
+ "type": "boolean"
10242
9994
  }
10243
9995
  },
10244
- "description": "Register an MCP server or CLI tool",
9996
+ "hasDynamicHelp": false,
9997
+ "hiddenAliases": [],
9998
+ "id": "ticket:edit",
9999
+ "pluginAlias": "@proletariat/cli",
10000
+ "pluginName": "@proletariat/cli",
10001
+ "pluginType": "core",
10002
+ "strict": true,
10003
+ "isESM": true,
10004
+ "relativePath": [
10005
+ "dist",
10006
+ "commands",
10007
+ "ticket",
10008
+ "edit.js"
10009
+ ]
10010
+ },
10011
+ "ticket": {
10012
+ "aliases": [],
10013
+ "args": {},
10014
+ "description": "Interactive menu for ticket operations",
10245
10015
  "examples": [
10246
- "<%= config.bin %> tools add mcp arcade --url https://api.arcade.dev/mcp --auth ARCADE_API_KEY --description \"Arcade integrations\"",
10247
- "<%= config.bin %> tools add cli gh --command gh --detect \"which gh\" --install \"brew install gh\" --description \"GitHub CLI\""
10016
+ "<%= config.bin %> <%= command.id %>"
10248
10017
  ],
10249
10018
  "flags": {
10250
10019
  "json": {
@@ -10259,55 +10028,11 @@
10259
10028
  "name": "machine",
10260
10029
  "allowNo": false,
10261
10030
  "type": "boolean"
10262
- },
10263
- "url": {
10264
- "description": "MCP server URL (for remote servers)",
10265
- "name": "url",
10266
- "hasDynamicHelp": false,
10267
- "multiple": false,
10268
- "type": "option"
10269
- },
10270
- "command": {
10271
- "description": "Command to run (MCP server command or CLI tool binary)",
10272
- "name": "command",
10273
- "hasDynamicHelp": false,
10274
- "multiple": false,
10275
- "type": "option"
10276
- },
10277
- "auth": {
10278
- "description": "Environment variable for authentication (e.g., ARCADE_API_KEY)",
10279
- "name": "auth",
10280
- "hasDynamicHelp": false,
10281
- "multiple": false,
10282
- "type": "option"
10283
- },
10284
- "detect": {
10285
- "description": "Shell command to detect if CLI tool is installed",
10286
- "name": "detect",
10287
- "hasDynamicHelp": false,
10288
- "multiple": false,
10289
- "type": "option"
10290
- },
10291
- "install": {
10292
- "description": "Shell command to install the CLI tool",
10293
- "name": "install",
10294
- "hasDynamicHelp": false,
10295
- "multiple": false,
10296
- "type": "option"
10297
- },
10298
- "description": {
10299
- "char": "d",
10300
- "description": "Human-readable description",
10301
- "name": "description",
10302
- "required": true,
10303
- "hasDynamicHelp": false,
10304
- "multiple": false,
10305
- "type": "option"
10306
10031
  }
10307
10032
  },
10308
10033
  "hasDynamicHelp": false,
10309
10034
  "hiddenAliases": [],
10310
- "id": "tools:add",
10035
+ "id": "ticket",
10311
10036
  "pluginAlias": "@proletariat/cli",
10312
10037
  "pluginName": "@proletariat/cli",
10313
10038
  "pluginType": "core",
@@ -10316,19 +10041,36 @@
10316
10041
  "relativePath": [
10317
10042
  "dist",
10318
10043
  "commands",
10319
- "tools",
10320
- "add.js"
10044
+ "ticket",
10045
+ "index.js"
10321
10046
  ]
10322
10047
  },
10323
- "tools:check": {
10048
+ "ticket:list": {
10324
10049
  "aliases": [],
10325
10050
  "args": {},
10326
- "description": "Verify all registered tools are available and healthy",
10051
+ "description": "List tickets from the PMO board",
10327
10052
  "examples": [
10328
- "<%= config.bin %> tools check",
10329
- "<%= config.bin %> tools check --json"
10053
+ "<%= config.bin %> <%= command.id %>",
10054
+ "<%= config.bin %> <%= command.id %> --column Backlog",
10055
+ "<%= config.bin %> <%= command.id %> --priority P0",
10056
+ "<%= config.bin %> <%= command.id %> --category bug",
10057
+ "<%= config.bin %> <%= command.id %> --search \"login\"",
10058
+ "<%= config.bin %> <%= command.id %> --project mobile-app",
10059
+ "<%= config.bin %> <%= command.id %> --all",
10060
+ "<%= config.bin %> <%= command.id %> --all --group-by priority",
10061
+ "<%= config.bin %> <%= command.id %> -g priority",
10062
+ "<%= config.bin %> <%= command.id %> --limit 10",
10063
+ "<%= config.bin %> <%= command.id %> --limit 10 --offset 20"
10330
10064
  ],
10331
10065
  "flags": {
10066
+ "project": {
10067
+ "char": "P",
10068
+ "description": "Project ID (uses first project if only one exists)",
10069
+ "name": "project",
10070
+ "hasDynamicHelp": false,
10071
+ "multiple": false,
10072
+ "type": "option"
10073
+ },
10332
10074
  "json": {
10333
10075
  "description": "Output as JSON for AI agents/scripts",
10334
10076
  "name": "json",
@@ -10341,11 +10083,118 @@
10341
10083
  "name": "machine",
10342
10084
  "allowNo": false,
10343
10085
  "type": "boolean"
10086
+ },
10087
+ "column": {
10088
+ "char": "c",
10089
+ "description": "Filter by column",
10090
+ "name": "column",
10091
+ "hasDynamicHelp": false,
10092
+ "multiple": false,
10093
+ "type": "option"
10094
+ },
10095
+ "priority": {
10096
+ "char": "p",
10097
+ "description": "Filter by priority (uses workspace priority scale)",
10098
+ "name": "priority",
10099
+ "hasDynamicHelp": false,
10100
+ "multiple": false,
10101
+ "type": "option"
10102
+ },
10103
+ "category": {
10104
+ "description": "Filter by category",
10105
+ "name": "category",
10106
+ "hasDynamicHelp": false,
10107
+ "multiple": false,
10108
+ "type": "option"
10109
+ },
10110
+ "search": {
10111
+ "char": "s",
10112
+ "description": "Search in title and description",
10113
+ "name": "search",
10114
+ "hasDynamicHelp": false,
10115
+ "multiple": false,
10116
+ "type": "option"
10117
+ },
10118
+ "format": {
10119
+ "char": "f",
10120
+ "description": "Output format",
10121
+ "name": "format",
10122
+ "default": "table",
10123
+ "hasDynamicHelp": false,
10124
+ "multiple": false,
10125
+ "options": [
10126
+ "table",
10127
+ "compact",
10128
+ "json"
10129
+ ],
10130
+ "type": "option"
10131
+ },
10132
+ "all": {
10133
+ "char": "a",
10134
+ "description": "Show tickets across all projects",
10135
+ "name": "all",
10136
+ "allowNo": false,
10137
+ "type": "boolean"
10138
+ },
10139
+ "label": {
10140
+ "description": "Filter by label name",
10141
+ "name": "label",
10142
+ "hasDynamicHelp": false,
10143
+ "multiple": false,
10144
+ "type": "option"
10145
+ },
10146
+ "group-by": {
10147
+ "char": "g",
10148
+ "description": "Group tickets by field",
10149
+ "name": "group-by",
10150
+ "default": "status",
10151
+ "hasDynamicHelp": false,
10152
+ "multiple": false,
10153
+ "options": [
10154
+ "status",
10155
+ "priority"
10156
+ ],
10157
+ "type": "option"
10158
+ },
10159
+ "limit": {
10160
+ "char": "l",
10161
+ "description": "Maximum number of tickets to display",
10162
+ "name": "limit",
10163
+ "hasDynamicHelp": false,
10164
+ "multiple": false,
10165
+ "type": "option"
10166
+ },
10167
+ "offset": {
10168
+ "description": "Skip first N tickets (for pagination)",
10169
+ "name": "offset",
10170
+ "hasDynamicHelp": false,
10171
+ "multiple": false,
10172
+ "type": "option"
10173
+ },
10174
+ "source": {
10175
+ "description": "Ticket source: \"pmo\" for local DB, \"linear\" for Linear API, or \"auto\" to detect (default: auto)",
10176
+ "name": "source",
10177
+ "default": "auto",
10178
+ "hasDynamicHelp": false,
10179
+ "multiple": false,
10180
+ "options": [
10181
+ "auto",
10182
+ "pmo",
10183
+ "linear"
10184
+ ],
10185
+ "type": "option"
10186
+ },
10187
+ "team": {
10188
+ "description": "Linear team key (fallback: PRLT_LINEAR_TEAM)",
10189
+ "name": "team",
10190
+ "hasDynamicHelp": false,
10191
+ "multiple": false,
10192
+ "type": "option"
10344
10193
  }
10345
10194
  },
10346
10195
  "hasDynamicHelp": false,
10347
10196
  "hiddenAliases": [],
10348
- "id": "tools:check",
10197
+ "id": "ticket:list",
10349
10198
  "pluginAlias": "@proletariat/cli",
10350
10199
  "pluginName": "@proletariat/cli",
10351
10200
  "pluginType": "core",
@@ -10355,20 +10204,42 @@
10355
10204
  "relativePath": [
10356
10205
  "dist",
10357
10206
  "commands",
10358
- "tools",
10359
- "check.js"
10207
+ "ticket",
10208
+ "list.js"
10360
10209
  ]
10361
10210
  },
10362
- "tools:detect": {
10211
+ "ticket:move": {
10363
10212
  "aliases": [],
10364
- "args": {},
10365
- "description": "Auto-detect common CLI tools on the system and register them",
10213
+ "args": {
10214
+ "ticketId": {
10215
+ "description": "Ticket ID - prompts with dropdown if not provided",
10216
+ "name": "ticketId",
10217
+ "required": false
10218
+ },
10219
+ "column": {
10220
+ "description": "Target column - prompts with dropdown if not provided",
10221
+ "name": "column",
10222
+ "required": false
10223
+ }
10224
+ },
10225
+ "description": "Move ticket(s) to a different column",
10366
10226
  "examples": [
10367
- "<%= config.bin %> tools detect",
10368
- "<%= config.bin %> tools detect --auto",
10369
- "<%= config.bin %> tools detect --json"
10227
+ "<%= config.bin %> <%= command.id %> my-ticket \"In Progress\"",
10228
+ "<%= config.bin %> <%= command.id %> implement-auth Done",
10229
+ "<%= config.bin %> <%= command.id %> TKT-123 --status \"In Review\"",
10230
+ "<%= config.bin %> <%= command.id %> fix-bug \"In Review\" --position 0",
10231
+ "<%= config.bin %> <%= command.id %> TKT-123 --to-project PROJ-002",
10232
+ "<%= config.bin %> <%= command.id %> --bulk"
10370
10233
  ],
10371
10234
  "flags": {
10235
+ "project": {
10236
+ "char": "P",
10237
+ "description": "Project ID (uses first project if only one exists)",
10238
+ "name": "project",
10239
+ "hasDynamicHelp": false,
10240
+ "multiple": false,
10241
+ "type": "option"
10242
+ },
10372
10243
  "json": {
10373
10244
  "description": "Output as JSON for AI agents/scripts",
10374
10245
  "name": "json",
@@ -10382,40 +10253,87 @@
10382
10253
  "allowNo": false,
10383
10254
  "type": "boolean"
10384
10255
  },
10385
- "auto": {
10386
- "description": "Automatically register all detected tools without prompting",
10387
- "name": "auto",
10256
+ "status": {
10257
+ "char": "s",
10258
+ "description": "Target status/column (alternative to positional column argument)",
10259
+ "name": "status",
10260
+ "hasDynamicHelp": false,
10261
+ "multiple": false,
10262
+ "type": "option"
10263
+ },
10264
+ "position": {
10265
+ "description": "Position within the column (0 = top)",
10266
+ "name": "position",
10267
+ "hasDynamicHelp": false,
10268
+ "multiple": false,
10269
+ "type": "option"
10270
+ },
10271
+ "to-project": {
10272
+ "description": "Move ticket to a different project (uses Backlog/default column)",
10273
+ "name": "to-project",
10274
+ "hasDynamicHelp": false,
10275
+ "multiple": false,
10276
+ "type": "option"
10277
+ },
10278
+ "bulk": {
10279
+ "char": "b",
10280
+ "description": "Enable bulk mode to move multiple tickets",
10281
+ "name": "bulk",
10282
+ "allowNo": false,
10283
+ "type": "boolean"
10284
+ },
10285
+ "force": {
10286
+ "char": "f",
10287
+ "description": "Skip confirmation prompt (bulk mode only)",
10288
+ "name": "force",
10289
+ "allowNo": false,
10290
+ "type": "boolean"
10291
+ },
10292
+ "no-cleanup": {
10293
+ "description": "Skip automatic worktree cleanup when moving to Done",
10294
+ "name": "no-cleanup",
10388
10295
  "allowNo": false,
10389
10296
  "type": "boolean"
10390
10297
  }
10391
10298
  },
10392
10299
  "hasDynamicHelp": false,
10393
10300
  "hiddenAliases": [],
10394
- "id": "tools:detect",
10301
+ "id": "ticket:move",
10395
10302
  "pluginAlias": "@proletariat/cli",
10396
10303
  "pluginName": "@proletariat/cli",
10397
10304
  "pluginType": "core",
10398
10305
  "strict": true,
10399
- "enableJsonFlag": false,
10400
10306
  "isESM": true,
10401
10307
  "relativePath": [
10402
10308
  "dist",
10403
10309
  "commands",
10404
- "tools",
10405
- "detect.js"
10310
+ "ticket",
10311
+ "move.js"
10406
10312
  ]
10407
10313
  },
10408
- "tools": {
10409
- "aliases": [
10410
- "tools:list"
10411
- ],
10412
- "args": {},
10413
- "description": "Show all registered MCP servers and CLI tools",
10314
+ "ticket:show": {
10315
+ "aliases": [],
10316
+ "args": {
10317
+ "ticketId": {
10318
+ "description": "Ticket ID to view - prompts with dropdown if not provided",
10319
+ "name": "ticketId",
10320
+ "required": false
10321
+ }
10322
+ },
10323
+ "description": "View detailed ticket information",
10414
10324
  "examples": [
10415
- "<%= config.bin %> tools",
10416
- "<%= config.bin %> tools --json"
10325
+ "<%= config.bin %> <%= command.id %> TICK-001",
10326
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
10417
10327
  ],
10418
10328
  "flags": {
10329
+ "project": {
10330
+ "char": "P",
10331
+ "description": "Project ID (uses first project if only one exists)",
10332
+ "name": "project",
10333
+ "hasDynamicHelp": false,
10334
+ "multiple": false,
10335
+ "type": "option"
10336
+ },
10419
10337
  "json": {
10420
10338
  "description": "Output as JSON for AI agents/scripts",
10421
10339
  "name": "json",
@@ -10432,35 +10350,49 @@
10432
10350
  },
10433
10351
  "hasDynamicHelp": false,
10434
10352
  "hiddenAliases": [],
10435
- "id": "tools",
10353
+ "id": "ticket:show",
10436
10354
  "pluginAlias": "@proletariat/cli",
10437
10355
  "pluginName": "@proletariat/cli",
10438
10356
  "pluginType": "core",
10439
10357
  "strict": true,
10440
- "enableJsonFlag": false,
10441
10358
  "isESM": true,
10442
10359
  "relativePath": [
10443
10360
  "dist",
10444
10361
  "commands",
10445
- "tools",
10446
- "index.js"
10362
+ "ticket",
10363
+ "show.js"
10447
10364
  ]
10448
10365
  },
10449
- "tools:remove": {
10366
+ "ticket:update": {
10450
10367
  "aliases": [],
10451
10368
  "args": {
10452
- "name": {
10453
- "description": "Tool name to remove",
10454
- "name": "name",
10455
- "required": true
10369
+ "ticketId": {
10370
+ "description": "Ticket ID - prompts with dropdown if not provided",
10371
+ "name": "ticketId",
10372
+ "required": false
10456
10373
  }
10457
10374
  },
10458
- "description": "Remove a tool from the registry",
10375
+ "description": "Update ticket fields (title, description, priority, category, labels, status)",
10459
10376
  "examples": [
10460
- "<%= config.bin %> tools remove arcade",
10461
- "<%= config.bin %> tools remove ffmpeg"
10377
+ "<%= config.bin %> <%= command.id %> TKT-001 --title \"New title\"",
10378
+ "<%= config.bin %> <%= command.id %> TKT-001 --description \"Updated description\"",
10379
+ "<%= config.bin %> <%= command.id %> TKT-001 --description-file ./spec.md",
10380
+ "<%= config.bin %> <%= command.id %> TKT-001 --priority P1",
10381
+ "<%= config.bin %> <%= command.id %> TKT-001 --category bug",
10382
+ "<%= config.bin %> <%= command.id %> TKT-001 --labels frontend,urgent",
10383
+ "<%= config.bin %> <%= command.id %> TKT-001 --status \"In Progress\"",
10384
+ "<%= config.bin %> <%= command.id %> TKT-001 --title \"Fix auth\" --priority P0 --status \"In Progress\" --json",
10385
+ "<%= config.bin %> <%= command.id %> --bulk --priority P1"
10462
10386
  ],
10463
10387
  "flags": {
10388
+ "project": {
10389
+ "char": "P",
10390
+ "description": "Project ID (uses first project if only one exists)",
10391
+ "name": "project",
10392
+ "hasDynamicHelp": false,
10393
+ "multiple": false,
10394
+ "type": "option"
10395
+ },
10464
10396
  "json": {
10465
10397
  "description": "Output as JSON for AI agents/scripts",
10466
10398
  "name": "json",
@@ -10473,22 +10405,90 @@
10473
10405
  "name": "machine",
10474
10406
  "allowNo": false,
10475
10407
  "type": "boolean"
10408
+ },
10409
+ "title": {
10410
+ "char": "t",
10411
+ "description": "Set ticket title",
10412
+ "name": "title",
10413
+ "hasDynamicHelp": false,
10414
+ "multiple": false,
10415
+ "type": "option"
10416
+ },
10417
+ "description": {
10418
+ "char": "d",
10419
+ "description": "Set ticket description",
10420
+ "name": "description",
10421
+ "hasDynamicHelp": false,
10422
+ "multiple": false,
10423
+ "type": "option"
10424
+ },
10425
+ "description-file": {
10426
+ "description": "Read ticket description from a file",
10427
+ "name": "description-file",
10428
+ "hasDynamicHelp": false,
10429
+ "multiple": false,
10430
+ "type": "option"
10431
+ },
10432
+ "priority": {
10433
+ "char": "p",
10434
+ "description": "Set priority (uses workspace priority scale, \"none\" to clear)",
10435
+ "name": "priority",
10436
+ "hasDynamicHelp": false,
10437
+ "multiple": false,
10438
+ "type": "option"
10439
+ },
10440
+ "category": {
10441
+ "char": "c",
10442
+ "description": "Set category (e.g., feature, bug, refactor, \"none\" to clear)",
10443
+ "name": "category",
10444
+ "hasDynamicHelp": false,
10445
+ "multiple": false,
10446
+ "type": "option"
10447
+ },
10448
+ "labels": {
10449
+ "char": "l",
10450
+ "description": "Set labels (comma-separated, replaces existing labels; use \"\" to clear)",
10451
+ "name": "labels",
10452
+ "hasDynamicHelp": false,
10453
+ "multiple": false,
10454
+ "type": "option"
10455
+ },
10456
+ "status": {
10457
+ "char": "s",
10458
+ "description": "Set status/column (e.g., \"In Progress\", \"Done\")",
10459
+ "name": "status",
10460
+ "hasDynamicHelp": false,
10461
+ "multiple": false,
10462
+ "type": "option"
10463
+ },
10464
+ "bulk": {
10465
+ "char": "b",
10466
+ "description": "Enable bulk mode to update multiple tickets",
10467
+ "name": "bulk",
10468
+ "allowNo": false,
10469
+ "type": "boolean"
10470
+ },
10471
+ "force": {
10472
+ "char": "f",
10473
+ "description": "Skip confirmation prompt",
10474
+ "name": "force",
10475
+ "allowNo": false,
10476
+ "type": "boolean"
10476
10477
  }
10477
10478
  },
10478
10479
  "hasDynamicHelp": false,
10479
10480
  "hiddenAliases": [],
10480
- "id": "tools:remove",
10481
+ "id": "ticket:update",
10481
10482
  "pluginAlias": "@proletariat/cli",
10482
10483
  "pluginName": "@proletariat/cli",
10483
10484
  "pluginType": "core",
10484
10485
  "strict": true,
10485
- "enableJsonFlag": false,
10486
10486
  "isESM": true,
10487
10487
  "relativePath": [
10488
10488
  "dist",
10489
10489
  "commands",
10490
- "tools",
10491
- "remove.js"
10490
+ "ticket",
10491
+ "update.js"
10492
10492
  ]
10493
10493
  },
10494
10494
  "trello:configure": {
@@ -14665,5 +14665,5 @@
14665
14665
  ]
14666
14666
  }
14667
14667
  },
14668
- "version": "0.3.109"
14668
+ "version": "0.3.110"
14669
14669
  }