@skrr-ai/cli 0.1.10 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/dist/base-command.d.ts +1 -13
  2. package/dist/base-command.js +78 -1
  3. package/dist/commands/browser/skill/show.js +7 -1
  4. package/dist/commands/code/index.d.ts +1 -0
  5. package/dist/commands/code/index.js +9 -1
  6. package/dist/commands/commitments/analytics/index.js +2 -0
  7. package/dist/commands/daemon/byok.d.ts +1 -0
  8. package/dist/commands/daemon/byok.js +2 -1
  9. package/dist/commands/daemon/install.d.ts +15 -0
  10. package/dist/commands/daemon/install.js +39 -2
  11. package/dist/commands/daemon/login.d.ts +31 -0
  12. package/dist/commands/daemon/login.js +56 -0
  13. package/dist/commands/daemon/restart.d.ts +9 -0
  14. package/dist/commands/daemon/restart.js +36 -0
  15. package/dist/commands/daemon/start.d.ts +1 -0
  16. package/dist/commands/daemon/start.js +2 -1
  17. package/dist/commands/daemon/status.d.ts +1 -0
  18. package/dist/commands/daemon/status.js +2 -1
  19. package/dist/commands/daemon/stop.d.ts +1 -0
  20. package/dist/commands/daemon/stop.js +2 -1
  21. package/dist/commands/daemon/uninstall.d.ts +1 -0
  22. package/dist/commands/daemon/uninstall.js +2 -1
  23. package/dist/commands/daemon/unlock.d.ts +9 -0
  24. package/dist/commands/daemon/unlock.js +33 -0
  25. package/dist/commands/goals/key-results/create.js +32 -1
  26. package/dist/commands/goals/key-results/update.d.ts +11 -0
  27. package/dist/commands/goals/key-results/update.js +80 -2
  28. package/dist/commands/goals/plan-now.d.ts +54 -2
  29. package/dist/commands/goals/plan-now.js +175 -18
  30. package/dist/commands/goals/planner-config.d.ts +60 -9
  31. package/dist/commands/goals/planner-config.js +82 -34
  32. package/dist/commands/goals/revisions.js +17 -0
  33. package/dist/commands/goals/show.d.ts +17 -0
  34. package/dist/commands/goals/show.js +90 -3
  35. package/dist/commands/login.js +53 -0
  36. package/dist/commands/spaces/create.js +2 -1
  37. package/dist/commands/spaces/index.js +9 -1
  38. package/dist/commands/spaces/list.d.ts +18 -0
  39. package/dist/commands/spaces/list.js +57 -7
  40. package/dist/commands/spaces/show.js +4 -1
  41. package/dist/commands/spaces/summary.d.ts +4 -0
  42. package/dist/commands/spaces/summary.js +77 -1
  43. package/dist/commands/spaces/update.d.ts +4 -0
  44. package/dist/commands/spaces/update.js +38 -1
  45. package/dist/commands/tasks/actionability.js +40 -1
  46. package/dist/commands/tasks/activity.d.ts +29 -0
  47. package/dist/commands/tasks/activity.js +47 -0
  48. package/dist/commands/tasks/complete.d.ts +47 -0
  49. package/dist/commands/tasks/complete.js +159 -12
  50. package/dist/commands/tasks/create.d.ts +26 -0
  51. package/dist/commands/tasks/create.js +60 -1
  52. package/dist/commands/tasks/events/append.d.ts +2 -0
  53. package/dist/commands/tasks/events/append.js +41 -10
  54. package/dist/commands/tasks/events/list.js +60 -9
  55. package/dist/commands/tasks/output.js +22 -2
  56. package/dist/commands/tasks/ready.d.ts +38 -0
  57. package/dist/commands/tasks/ready.js +37 -0
  58. package/dist/commands/tasks/runs.d.ts +22 -0
  59. package/dist/commands/tasks/runs.js +110 -2
  60. package/dist/commands/tasks/show.d.ts +28 -0
  61. package/dist/commands/tasks/show.js +61 -0
  62. package/dist/commands/tasks/timeline.d.ts +7 -0
  63. package/dist/commands/tasks/timeline.js +34 -3
  64. package/dist/commands/tasks/update.d.ts +20 -0
  65. package/dist/commands/tasks/update.js +38 -1
  66. package/dist/commands/whoami.d.ts +40 -0
  67. package/dist/commands/whoami.js +57 -9
  68. package/dist/commands/wiki/ls.d.ts +23 -0
  69. package/dist/commands/wiki/ls.js +63 -10
  70. package/dist/commands/wiki/mv.d.ts +70 -0
  71. package/dist/commands/wiki/mv.js +198 -4
  72. package/dist/commands/wiki/rm.js +12 -1
  73. package/dist/commands/wiki/write.js +35 -3
  74. package/dist/help.d.ts +27 -0
  75. package/dist/help.js +48 -0
  76. package/dist/hooks/command-not-found.d.ts +31 -0
  77. package/dist/hooks/command-not-found.js +12 -80
  78. package/dist/lib/command-miss.d.ts +60 -0
  79. package/dist/lib/command-miss.js +128 -0
  80. package/dist/lib/commitment-analytics.d.ts +10 -0
  81. package/dist/lib/commitment-analytics.js +10 -0
  82. package/dist/lib/config.js +6 -2
  83. package/dist/lib/daemon-installer.d.ts +62 -0
  84. package/dist/lib/daemon-installer.js +247 -0
  85. package/dist/lib/daemon-setup.d.ts +49 -0
  86. package/dist/lib/daemon-setup.js +103 -0
  87. package/dist/lib/daemonBroker.d.ts +7 -1
  88. package/dist/lib/daemonBroker.js +71 -0
  89. package/dist/lib/daemonHandoff.d.ts +47 -0
  90. package/dist/lib/daemonHandoff.js +304 -0
  91. package/dist/lib/exec-oversky.d.ts +30 -0
  92. package/dist/lib/exec-oversky.js +41 -0
  93. package/dist/lib/format.d.ts +7 -0
  94. package/dist/lib/format.js +27 -5
  95. package/dist/lib/login.js +22 -2
  96. package/dist/lib/sky-code.js +1 -1
  97. package/dist/lib/task-transcript.d.ts +9 -0
  98. package/dist/lib/task-transcript.js +13 -2
  99. package/dist/lib/tasks.d.ts +34 -0
  100. package/dist/lib/tasks.js +70 -1
  101. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/configRoot.d.ts +50 -0
  102. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/configRoot.js +67 -0
  103. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/index.d.ts +3 -0
  104. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/index.js +21 -1
  105. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/releaseKeys.d.ts +87 -0
  106. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/releaseKeys.js +94 -0
  107. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/releaseManifest.d.ts +161 -0
  108. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/releaseManifest.js +235 -0
  109. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/configRoot.d.ts +50 -0
  110. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/configRoot.js +59 -0
  111. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/index.d.ts +3 -0
  112. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/index.js +10 -0
  113. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/releaseKeys.d.ts +87 -0
  114. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/releaseKeys.js +91 -0
  115. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/releaseManifest.d.ts +161 -0
  116. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/releaseManifest.js +227 -0
  117. package/dist/node_modules/@skrr-ai/auth-core/package.json +1 -1
  118. package/dist/node_modules/@skrr-ai/data-provider/index.js +15 -4
  119. package/oclif.manifest.json +1831 -1598
  120. package/package.json +5 -3
@@ -3326,290 +3326,6 @@
3326
3326
  "with.js"
3327
3327
  ]
3328
3328
  },
3329
- "balance:history": {
3330
- "aliases": [],
3331
- "args": {},
3332
- "description": "Legacy token transactions (see `balance statement` for the canonical ledger)",
3333
- "examples": [
3334
- "<%= config.bin %> balance history",
3335
- "<%= config.bin %> balance history --limit 50 --json"
3336
- ],
3337
- "flags": {
3338
- "bare": {
3339
- "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
3340
- "name": "bare",
3341
- "allowNo": false,
3342
- "type": "boolean"
3343
- },
3344
- "token": {
3345
- "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
3346
- "name": "token",
3347
- "hasDynamicHelp": false,
3348
- "multiple": false,
3349
- "type": "option"
3350
- },
3351
- "workspace": {
3352
- "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
3353
- "name": "workspace",
3354
- "hasDynamicHelp": false,
3355
- "multiple": false,
3356
- "type": "option"
3357
- },
3358
- "profile": {
3359
- "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
3360
- "name": "profile",
3361
- "hasDynamicHelp": false,
3362
- "multiple": false,
3363
- "type": "option"
3364
- },
3365
- "json": {
3366
- "description": "Output as JSON",
3367
- "name": "json",
3368
- "allowNo": false,
3369
- "type": "boolean"
3370
- },
3371
- "limit": {
3372
- "description": "Rows to return (1-100)",
3373
- "name": "limit",
3374
- "default": 20,
3375
- "hasDynamicHelp": false,
3376
- "multiple": false,
3377
- "type": "option"
3378
- },
3379
- "cursor": {
3380
- "description": "ISO createdAt from a previous page",
3381
- "name": "cursor",
3382
- "hasDynamicHelp": false,
3383
- "multiple": false,
3384
- "type": "option"
3385
- }
3386
- },
3387
- "hasDynamicHelp": false,
3388
- "hiddenAliases": [],
3389
- "id": "balance:history",
3390
- "pluginAlias": "@skrr-ai/cli",
3391
- "pluginName": "@skrr-ai/cli",
3392
- "pluginType": "core",
3393
- "strict": true,
3394
- "enableJsonFlag": false,
3395
- "resolveSpaceFlag": true,
3396
- "isESM": false,
3397
- "relativePath": [
3398
- "dist",
3399
- "commands",
3400
- "balance",
3401
- "history.js"
3402
- ]
3403
- },
3404
- "balance:show": {
3405
- "aliases": [],
3406
- "args": {},
3407
- "description": "Show your hosted usage balance — or a workspace’s, with --workspace",
3408
- "examples": [
3409
- "<%= config.bin %> balance show",
3410
- "<%= config.bin %> balance show --json",
3411
- "<%= config.bin %> balance show --workspace <workspace-id>"
3412
- ],
3413
- "flags": {
3414
- "bare": {
3415
- "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
3416
- "name": "bare",
3417
- "allowNo": false,
3418
- "type": "boolean"
3419
- },
3420
- "token": {
3421
- "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
3422
- "name": "token",
3423
- "hasDynamicHelp": false,
3424
- "multiple": false,
3425
- "type": "option"
3426
- },
3427
- "workspace": {
3428
- "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
3429
- "name": "workspace",
3430
- "hasDynamicHelp": false,
3431
- "multiple": false,
3432
- "type": "option"
3433
- },
3434
- "profile": {
3435
- "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
3436
- "name": "profile",
3437
- "hasDynamicHelp": false,
3438
- "multiple": false,
3439
- "type": "option"
3440
- },
3441
- "json": {
3442
- "description": "Output as JSON",
3443
- "name": "json",
3444
- "allowNo": false,
3445
- "type": "boolean"
3446
- }
3447
- },
3448
- "hasDynamicHelp": false,
3449
- "hiddenAliases": [],
3450
- "id": "balance:show",
3451
- "pluginAlias": "@skrr-ai/cli",
3452
- "pluginName": "@skrr-ai/cli",
3453
- "pluginType": "core",
3454
- "strict": true,
3455
- "enableJsonFlag": false,
3456
- "resolveSpaceFlag": true,
3457
- "isESM": false,
3458
- "relativePath": [
3459
- "dist",
3460
- "commands",
3461
- "balance",
3462
- "show.js"
3463
- ]
3464
- },
3465
- "balance:statement": {
3466
- "aliases": [],
3467
- "args": {},
3468
- "description": "Canonical billing statement: what each charge was for, and what incurred it — yours, or a workspace’s with --workspace (owner)",
3469
- "examples": [
3470
- "<%= config.bin %> balance statement",
3471
- "<%= config.bin %> balance statement --limit 100 --json",
3472
- "<%= config.bin %> balance statement --workspace <workspace-id>"
3473
- ],
3474
- "flags": {
3475
- "bare": {
3476
- "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
3477
- "name": "bare",
3478
- "allowNo": false,
3479
- "type": "boolean"
3480
- },
3481
- "token": {
3482
- "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
3483
- "name": "token",
3484
- "hasDynamicHelp": false,
3485
- "multiple": false,
3486
- "type": "option"
3487
- },
3488
- "workspace": {
3489
- "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
3490
- "name": "workspace",
3491
- "hasDynamicHelp": false,
3492
- "multiple": false,
3493
- "type": "option"
3494
- },
3495
- "profile": {
3496
- "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
3497
- "name": "profile",
3498
- "hasDynamicHelp": false,
3499
- "multiple": false,
3500
- "type": "option"
3501
- },
3502
- "json": {
3503
- "description": "Output as JSON",
3504
- "name": "json",
3505
- "allowNo": false,
3506
- "type": "boolean"
3507
- },
3508
- "limit": {
3509
- "description": "Rows to return (1-200)",
3510
- "name": "limit",
3511
- "default": 50,
3512
- "hasDynamicHelp": false,
3513
- "multiple": false,
3514
- "type": "option"
3515
- },
3516
- "after": {
3517
- "description": "entryId from a previous page (oldest-first)",
3518
- "name": "after",
3519
- "hasDynamicHelp": false,
3520
- "multiple": false,
3521
- "type": "option"
3522
- },
3523
- "desc": {
3524
- "description": "Show newest entries first",
3525
- "name": "desc",
3526
- "allowNo": false,
3527
- "type": "boolean"
3528
- },
3529
- "before": {
3530
- "description": "entryId from a previous page, paging newest-first (implies --desc)",
3531
- "name": "before",
3532
- "hasDynamicHelp": false,
3533
- "multiple": false,
3534
- "type": "option"
3535
- }
3536
- },
3537
- "hasDynamicHelp": false,
3538
- "hiddenAliases": [],
3539
- "id": "balance:statement",
3540
- "pluginAlias": "@skrr-ai/cli",
3541
- "pluginName": "@skrr-ai/cli",
3542
- "pluginType": "core",
3543
- "strict": true,
3544
- "enableJsonFlag": false,
3545
- "resolveSpaceFlag": true,
3546
- "isESM": false,
3547
- "relativePath": [
3548
- "dist",
3549
- "commands",
3550
- "balance",
3551
- "statement.js"
3552
- ]
3553
- },
3554
- "balance:usage": {
3555
- "aliases": [],
3556
- "args": {},
3557
- "description": "Usage summary against your hosted usage balance",
3558
- "examples": [
3559
- "<%= config.bin %> balance usage"
3560
- ],
3561
- "flags": {
3562
- "bare": {
3563
- "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
3564
- "name": "bare",
3565
- "allowNo": false,
3566
- "type": "boolean"
3567
- },
3568
- "token": {
3569
- "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
3570
- "name": "token",
3571
- "hasDynamicHelp": false,
3572
- "multiple": false,
3573
- "type": "option"
3574
- },
3575
- "workspace": {
3576
- "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
3577
- "name": "workspace",
3578
- "hasDynamicHelp": false,
3579
- "multiple": false,
3580
- "type": "option"
3581
- },
3582
- "profile": {
3583
- "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
3584
- "name": "profile",
3585
- "hasDynamicHelp": false,
3586
- "multiple": false,
3587
- "type": "option"
3588
- },
3589
- "json": {
3590
- "description": "Output as JSON",
3591
- "name": "json",
3592
- "allowNo": false,
3593
- "type": "boolean"
3594
- }
3595
- },
3596
- "hasDynamicHelp": false,
3597
- "hiddenAliases": [],
3598
- "id": "balance:usage",
3599
- "pluginAlias": "@skrr-ai/cli",
3600
- "pluginName": "@skrr-ai/cli",
3601
- "pluginType": "core",
3602
- "strict": true,
3603
- "enableJsonFlag": false,
3604
- "resolveSpaceFlag": true,
3605
- "isESM": false,
3606
- "relativePath": [
3607
- "dist",
3608
- "commands",
3609
- "balance",
3610
- "usage.js"
3611
- ]
3612
- },
3613
3329
  "agents:activity": {
3614
3330
  "aliases": [],
3615
3331
  "args": {
@@ -6307,6 +6023,290 @@
6307
6023
  "visibility.js"
6308
6024
  ]
6309
6025
  },
6026
+ "balance:history": {
6027
+ "aliases": [],
6028
+ "args": {},
6029
+ "description": "Legacy token transactions (see `balance statement` for the canonical ledger)",
6030
+ "examples": [
6031
+ "<%= config.bin %> balance history",
6032
+ "<%= config.bin %> balance history --limit 50 --json"
6033
+ ],
6034
+ "flags": {
6035
+ "bare": {
6036
+ "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
6037
+ "name": "bare",
6038
+ "allowNo": false,
6039
+ "type": "boolean"
6040
+ },
6041
+ "token": {
6042
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
6043
+ "name": "token",
6044
+ "hasDynamicHelp": false,
6045
+ "multiple": false,
6046
+ "type": "option"
6047
+ },
6048
+ "workspace": {
6049
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
6050
+ "name": "workspace",
6051
+ "hasDynamicHelp": false,
6052
+ "multiple": false,
6053
+ "type": "option"
6054
+ },
6055
+ "profile": {
6056
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
6057
+ "name": "profile",
6058
+ "hasDynamicHelp": false,
6059
+ "multiple": false,
6060
+ "type": "option"
6061
+ },
6062
+ "json": {
6063
+ "description": "Output as JSON",
6064
+ "name": "json",
6065
+ "allowNo": false,
6066
+ "type": "boolean"
6067
+ },
6068
+ "limit": {
6069
+ "description": "Rows to return (1-100)",
6070
+ "name": "limit",
6071
+ "default": 20,
6072
+ "hasDynamicHelp": false,
6073
+ "multiple": false,
6074
+ "type": "option"
6075
+ },
6076
+ "cursor": {
6077
+ "description": "ISO createdAt from a previous page",
6078
+ "name": "cursor",
6079
+ "hasDynamicHelp": false,
6080
+ "multiple": false,
6081
+ "type": "option"
6082
+ }
6083
+ },
6084
+ "hasDynamicHelp": false,
6085
+ "hiddenAliases": [],
6086
+ "id": "balance:history",
6087
+ "pluginAlias": "@skrr-ai/cli",
6088
+ "pluginName": "@skrr-ai/cli",
6089
+ "pluginType": "core",
6090
+ "strict": true,
6091
+ "enableJsonFlag": false,
6092
+ "resolveSpaceFlag": true,
6093
+ "isESM": false,
6094
+ "relativePath": [
6095
+ "dist",
6096
+ "commands",
6097
+ "balance",
6098
+ "history.js"
6099
+ ]
6100
+ },
6101
+ "balance:show": {
6102
+ "aliases": [],
6103
+ "args": {},
6104
+ "description": "Show your hosted usage balance — or a workspace’s, with --workspace",
6105
+ "examples": [
6106
+ "<%= config.bin %> balance show",
6107
+ "<%= config.bin %> balance show --json",
6108
+ "<%= config.bin %> balance show --workspace <workspace-id>"
6109
+ ],
6110
+ "flags": {
6111
+ "bare": {
6112
+ "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
6113
+ "name": "bare",
6114
+ "allowNo": false,
6115
+ "type": "boolean"
6116
+ },
6117
+ "token": {
6118
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
6119
+ "name": "token",
6120
+ "hasDynamicHelp": false,
6121
+ "multiple": false,
6122
+ "type": "option"
6123
+ },
6124
+ "workspace": {
6125
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
6126
+ "name": "workspace",
6127
+ "hasDynamicHelp": false,
6128
+ "multiple": false,
6129
+ "type": "option"
6130
+ },
6131
+ "profile": {
6132
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
6133
+ "name": "profile",
6134
+ "hasDynamicHelp": false,
6135
+ "multiple": false,
6136
+ "type": "option"
6137
+ },
6138
+ "json": {
6139
+ "description": "Output as JSON",
6140
+ "name": "json",
6141
+ "allowNo": false,
6142
+ "type": "boolean"
6143
+ }
6144
+ },
6145
+ "hasDynamicHelp": false,
6146
+ "hiddenAliases": [],
6147
+ "id": "balance:show",
6148
+ "pluginAlias": "@skrr-ai/cli",
6149
+ "pluginName": "@skrr-ai/cli",
6150
+ "pluginType": "core",
6151
+ "strict": true,
6152
+ "enableJsonFlag": false,
6153
+ "resolveSpaceFlag": true,
6154
+ "isESM": false,
6155
+ "relativePath": [
6156
+ "dist",
6157
+ "commands",
6158
+ "balance",
6159
+ "show.js"
6160
+ ]
6161
+ },
6162
+ "balance:statement": {
6163
+ "aliases": [],
6164
+ "args": {},
6165
+ "description": "Canonical billing statement: what each charge was for, and what incurred it — yours, or a workspace’s with --workspace (owner)",
6166
+ "examples": [
6167
+ "<%= config.bin %> balance statement",
6168
+ "<%= config.bin %> balance statement --limit 100 --json",
6169
+ "<%= config.bin %> balance statement --workspace <workspace-id>"
6170
+ ],
6171
+ "flags": {
6172
+ "bare": {
6173
+ "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
6174
+ "name": "bare",
6175
+ "allowNo": false,
6176
+ "type": "boolean"
6177
+ },
6178
+ "token": {
6179
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
6180
+ "name": "token",
6181
+ "hasDynamicHelp": false,
6182
+ "multiple": false,
6183
+ "type": "option"
6184
+ },
6185
+ "workspace": {
6186
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
6187
+ "name": "workspace",
6188
+ "hasDynamicHelp": false,
6189
+ "multiple": false,
6190
+ "type": "option"
6191
+ },
6192
+ "profile": {
6193
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
6194
+ "name": "profile",
6195
+ "hasDynamicHelp": false,
6196
+ "multiple": false,
6197
+ "type": "option"
6198
+ },
6199
+ "json": {
6200
+ "description": "Output as JSON",
6201
+ "name": "json",
6202
+ "allowNo": false,
6203
+ "type": "boolean"
6204
+ },
6205
+ "limit": {
6206
+ "description": "Rows to return (1-200)",
6207
+ "name": "limit",
6208
+ "default": 50,
6209
+ "hasDynamicHelp": false,
6210
+ "multiple": false,
6211
+ "type": "option"
6212
+ },
6213
+ "after": {
6214
+ "description": "entryId from a previous page (oldest-first)",
6215
+ "name": "after",
6216
+ "hasDynamicHelp": false,
6217
+ "multiple": false,
6218
+ "type": "option"
6219
+ },
6220
+ "desc": {
6221
+ "description": "Show newest entries first",
6222
+ "name": "desc",
6223
+ "allowNo": false,
6224
+ "type": "boolean"
6225
+ },
6226
+ "before": {
6227
+ "description": "entryId from a previous page, paging newest-first (implies --desc)",
6228
+ "name": "before",
6229
+ "hasDynamicHelp": false,
6230
+ "multiple": false,
6231
+ "type": "option"
6232
+ }
6233
+ },
6234
+ "hasDynamicHelp": false,
6235
+ "hiddenAliases": [],
6236
+ "id": "balance:statement",
6237
+ "pluginAlias": "@skrr-ai/cli",
6238
+ "pluginName": "@skrr-ai/cli",
6239
+ "pluginType": "core",
6240
+ "strict": true,
6241
+ "enableJsonFlag": false,
6242
+ "resolveSpaceFlag": true,
6243
+ "isESM": false,
6244
+ "relativePath": [
6245
+ "dist",
6246
+ "commands",
6247
+ "balance",
6248
+ "statement.js"
6249
+ ]
6250
+ },
6251
+ "balance:usage": {
6252
+ "aliases": [],
6253
+ "args": {},
6254
+ "description": "Usage summary against your hosted usage balance",
6255
+ "examples": [
6256
+ "<%= config.bin %> balance usage"
6257
+ ],
6258
+ "flags": {
6259
+ "bare": {
6260
+ "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
6261
+ "name": "bare",
6262
+ "allowNo": false,
6263
+ "type": "boolean"
6264
+ },
6265
+ "token": {
6266
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
6267
+ "name": "token",
6268
+ "hasDynamicHelp": false,
6269
+ "multiple": false,
6270
+ "type": "option"
6271
+ },
6272
+ "workspace": {
6273
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
6274
+ "name": "workspace",
6275
+ "hasDynamicHelp": false,
6276
+ "multiple": false,
6277
+ "type": "option"
6278
+ },
6279
+ "profile": {
6280
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
6281
+ "name": "profile",
6282
+ "hasDynamicHelp": false,
6283
+ "multiple": false,
6284
+ "type": "option"
6285
+ },
6286
+ "json": {
6287
+ "description": "Output as JSON",
6288
+ "name": "json",
6289
+ "allowNo": false,
6290
+ "type": "boolean"
6291
+ }
6292
+ },
6293
+ "hasDynamicHelp": false,
6294
+ "hiddenAliases": [],
6295
+ "id": "balance:usage",
6296
+ "pluginAlias": "@skrr-ai/cli",
6297
+ "pluginName": "@skrr-ai/cli",
6298
+ "pluginType": "core",
6299
+ "strict": true,
6300
+ "enableJsonFlag": false,
6301
+ "resolveSpaceFlag": true,
6302
+ "isESM": false,
6303
+ "relativePath": [
6304
+ "dist",
6305
+ "commands",
6306
+ "balance",
6307
+ "usage.js"
6308
+ ]
6309
+ },
6310
6310
  "browser:doctor": {
6311
6311
  "aliases": [],
6312
6312
  "args": {},
@@ -13125,7 +13125,7 @@
13125
13125
  "daemons:byok"
13126
13126
  ],
13127
13127
  "args": {},
13128
- "description": "Manage local BYOK provider credentials in the daemon profile Keychain",
13128
+ "description": "Flags are forwarded to `skrrd byok` unchanged, so they are not listed here — run `skrrd byok --help` for this verb's own flags, or `skrrd --help` for global ones such as `--profile`.",
13129
13129
  "examples": [
13130
13130
  "<%= config.bin %> daemon byok status",
13131
13131
  "<%= config.bin %> daemon byok status --json",
@@ -13140,6 +13140,7 @@
13140
13140
  "pluginName": "@skrr-ai/cli",
13141
13141
  "pluginType": "core",
13142
13142
  "strict": false,
13143
+ "summary": "Manage local BYOK provider credentials in the daemon profile Keychain",
13143
13144
  "enableJsonFlag": false,
13144
13145
  "isESM": false,
13145
13146
  "relativePath": [
@@ -13184,7 +13185,7 @@
13184
13185
  "daemons:install"
13185
13186
  ],
13186
13187
  "args": {},
13187
- "description": "Install the local skrr runtime as a background service",
13188
+ "description": "Flags are forwarded to `skrrd install` unchanged, so they are not listed here — run `skrrd install --help` for this verb's own flags, or `skrrd --help` for global ones such as `--profile`. `--server` and `--profile` are filled in from your CLI session unless you pass them.",
13188
13189
  "flags": {},
13189
13190
  "hasDynamicHelp": false,
13190
13191
  "hiddenAliases": [],
@@ -13193,6 +13194,7 @@
13193
13194
  "pluginName": "@skrr-ai/cli",
13194
13195
  "pluginType": "core",
13195
13196
  "strict": false,
13197
+ "summary": "Install the local skrr runtime as a background service",
13196
13198
  "enableJsonFlag": false,
13197
13199
  "isESM": false,
13198
13200
  "relativePath": [
@@ -13202,6 +13204,30 @@
13202
13204
  "install.js"
13203
13205
  ]
13204
13206
  },
13207
+ "daemon:login": {
13208
+ "aliases": [
13209
+ "daemons:login"
13210
+ ],
13211
+ "args": {},
13212
+ "description": "Flags are forwarded to `skrrd login` unchanged, so they are not listed here — run `skrrd login --help` for this verb's own flags, or `skrrd --help` for global ones such as `--profile`. `--server` and `--profile` are filled in from your CLI session unless you pass them.",
13213
+ "flags": {},
13214
+ "hasDynamicHelp": false,
13215
+ "hiddenAliases": [],
13216
+ "id": "daemon:login",
13217
+ "pluginAlias": "@skrr-ai/cli",
13218
+ "pluginName": "@skrr-ai/cli",
13219
+ "pluginType": "core",
13220
+ "strict": false,
13221
+ "summary": "Authenticate the local skrr runtime (separate from `skrr login`)",
13222
+ "enableJsonFlag": false,
13223
+ "isESM": false,
13224
+ "relativePath": [
13225
+ "dist",
13226
+ "commands",
13227
+ "daemon",
13228
+ "login.js"
13229
+ ]
13230
+ },
13205
13231
  "daemon:logs": {
13206
13232
  "aliases": [
13207
13233
  "daemons:logs"
@@ -13260,12 +13286,40 @@
13260
13286
  "logs.js"
13261
13287
  ]
13262
13288
  },
13289
+ "daemon:restart": {
13290
+ "aliases": [
13291
+ "daemons:restart"
13292
+ ],
13293
+ "args": {},
13294
+ "description": "Flags are forwarded to `skrrd restart` unchanged, so they are not listed here — run `skrrd restart --help` for this verb's own flags, or `skrrd --help` for global ones such as `--profile`.",
13295
+ "examples": [
13296
+ "<%= config.bin %> daemon restart",
13297
+ "<%= config.bin %> daemon restart --profile work"
13298
+ ],
13299
+ "flags": {},
13300
+ "hasDynamicHelp": false,
13301
+ "hiddenAliases": [],
13302
+ "id": "daemon:restart",
13303
+ "pluginAlias": "@skrr-ai/cli",
13304
+ "pluginName": "@skrr-ai/cli",
13305
+ "pluginType": "core",
13306
+ "strict": false,
13307
+ "summary": "Restart the local skrr daemon, preserving its current supervision mode",
13308
+ "enableJsonFlag": false,
13309
+ "isESM": false,
13310
+ "relativePath": [
13311
+ "dist",
13312
+ "commands",
13313
+ "daemon",
13314
+ "restart.js"
13315
+ ]
13316
+ },
13263
13317
  "daemon:start": {
13264
13318
  "aliases": [
13265
13319
  "daemons:start"
13266
13320
  ],
13267
13321
  "args": {},
13268
- "description": "Start the local skrr daemon",
13322
+ "description": "Flags are forwarded to `skrrd start` unchanged, so they are not listed here — run `skrrd start --help` for this verb's own flags, or `skrrd --help` for global ones such as `--profile`.",
13269
13323
  "flags": {},
13270
13324
  "hasDynamicHelp": false,
13271
13325
  "hiddenAliases": [],
@@ -13274,6 +13328,7 @@
13274
13328
  "pluginName": "@skrr-ai/cli",
13275
13329
  "pluginType": "core",
13276
13330
  "strict": false,
13331
+ "summary": "Start the local skrr daemon",
13277
13332
  "enableJsonFlag": false,
13278
13333
  "isESM": false,
13279
13334
  "relativePath": [
@@ -13288,7 +13343,7 @@
13288
13343
  "daemons:status"
13289
13344
  ],
13290
13345
  "args": {},
13291
- "description": "Show skrr daemon status (config, connection, services)",
13346
+ "description": "Flags are forwarded to `skrrd status` unchanged, so they are not listed here — run `skrrd status --help` for this verb's own flags, or `skrrd --help` for global ones such as `--profile`.",
13292
13347
  "flags": {},
13293
13348
  "hasDynamicHelp": false,
13294
13349
  "hiddenAliases": [],
@@ -13297,6 +13352,7 @@
13297
13352
  "pluginName": "@skrr-ai/cli",
13298
13353
  "pluginType": "core",
13299
13354
  "strict": false,
13355
+ "summary": "Show skrr daemon status (config, connection, services)",
13300
13356
  "enableJsonFlag": false,
13301
13357
  "isESM": false,
13302
13358
  "relativePath": [
@@ -13311,7 +13367,7 @@
13311
13367
  "daemons:stop"
13312
13368
  ],
13313
13369
  "args": {},
13314
- "description": "Stop the local skrr daemon",
13370
+ "description": "Flags are forwarded to `skrrd stop` unchanged, so they are not listed here — run `skrrd stop --help` for this verb's own flags, or `skrrd --help` for global ones such as `--profile`.",
13315
13371
  "flags": {},
13316
13372
  "hasDynamicHelp": false,
13317
13373
  "hiddenAliases": [],
@@ -13320,6 +13376,7 @@
13320
13376
  "pluginName": "@skrr-ai/cli",
13321
13377
  "pluginType": "core",
13322
13378
  "strict": false,
13379
+ "summary": "Stop the local skrr daemon",
13323
13380
  "enableJsonFlag": false,
13324
13381
  "isESM": false,
13325
13382
  "relativePath": [
@@ -13334,7 +13391,7 @@
13334
13391
  "daemons:uninstall"
13335
13392
  ],
13336
13393
  "args": {},
13337
- "description": "Remove the local skrr runtime's background service (local state is left alone)",
13394
+ "description": "Flags are forwarded to `skrrd uninstall` unchanged, so they are not listed here — run `skrrd uninstall --help` for this verb's own flags, or `skrrd --help` for global ones such as `--profile`.",
13338
13395
  "flags": {},
13339
13396
  "hasDynamicHelp": false,
13340
13397
  "hiddenAliases": [],
@@ -13343,6 +13400,7 @@
13343
13400
  "pluginName": "@skrr-ai/cli",
13344
13401
  "pluginType": "core",
13345
13402
  "strict": false,
13403
+ "summary": "Remove the local skrr runtime's background service (local state is left alone)",
13346
13404
  "enableJsonFlag": false,
13347
13405
  "isESM": false,
13348
13406
  "relativePath": [
@@ -13352,6 +13410,33 @@
13352
13410
  "uninstall.js"
13353
13411
  ]
13354
13412
  },
13413
+ "daemon:unlock": {
13414
+ "aliases": [
13415
+ "daemons:unlock"
13416
+ ],
13417
+ "args": {},
13418
+ "description": "Flags are forwarded to `skrrd unlock` unchanged, so they are not listed here — run `skrrd unlock --help` for this verb's own flags, or `skrrd --help` for global ones such as `--profile`.",
13419
+ "examples": [
13420
+ "<%= config.bin %> daemon unlock"
13421
+ ],
13422
+ "flags": {},
13423
+ "hasDynamicHelp": false,
13424
+ "hiddenAliases": [],
13425
+ "id": "daemon:unlock",
13426
+ "pluginAlias": "@skrr-ai/cli",
13427
+ "pluginName": "@skrr-ai/cli",
13428
+ "pluginType": "core",
13429
+ "strict": false,
13430
+ "summary": "Clear a stranded singleton lock (daemon.lock) left by a crashed skrr daemon",
13431
+ "enableJsonFlag": false,
13432
+ "isESM": false,
13433
+ "relativePath": [
13434
+ "dist",
13435
+ "commands",
13436
+ "daemon",
13437
+ "unlock.js"
13438
+ ]
13439
+ },
13355
13440
  "daemon:usage": {
13356
13441
  "aliases": [
13357
13442
  "daemons:usage"
@@ -15810,7 +15895,7 @@
15810
15895
  "required": true
15811
15896
  }
15812
15897
  },
15813
- "description": "Run one auto-planner tick for a goal right now",
15898
+ "description": "Run one auto-planner tick for a goal right now (a live agent turn that creates and refines tasks)",
15814
15899
  "examples": [
15815
15900
  "<%= config.bin %> goals plan-now <goal-id>",
15816
15901
  "<%= config.bin %> goals plan-now <goal-id> --space <space-id>",
@@ -15851,7 +15936,7 @@
15851
15936
  "type": "boolean"
15852
15937
  },
15853
15938
  "space": {
15854
- "description": "Scope created tasks to this Mission Space (backfills spaceId on existing tasks)",
15939
+ "description": "Scope created tasks to this space (also backfills spaceId on the goal's existing tasks)",
15855
15940
  "name": "space",
15856
15941
  "hasDynamicHelp": false,
15857
15942
  "multiple": false,
@@ -15884,8 +15969,9 @@
15884
15969
  "required": true
15885
15970
  }
15886
15971
  },
15887
- "description": "Configure or disable a goal's auto-planner",
15972
+ "description": "Read, configure, or disable a goal's auto-planner (a recurring agent tick that CREATES and refines tasks under the goal)",
15888
15973
  "examples": [
15974
+ "<%= config.bin %> goals planner-config <goal-id>",
15889
15975
  "<%= config.bin %> goals planner-config <goal-id> --interval-minutes 60",
15890
15976
  "<%= config.bin %> goals planner-config <goal-id> --interval-minutes 60 --max-active-tasks 5 --auto-execute",
15891
15977
  "<%= config.bin %> goals planner-config <goal-id> --no-auto-execute",
@@ -15920,13 +16006,13 @@
15920
16006
  "type": "option"
15921
16007
  },
15922
16008
  "json": {
15923
- "description": "Output the updated goal as JSON",
16009
+ "description": "Output the goal as JSON",
15924
16010
  "name": "json",
15925
16011
  "allowNo": false,
15926
16012
  "type": "boolean"
15927
16013
  },
15928
16014
  "interval-minutes": {
15929
- "description": "Planner tick cadence in minutes (enables the planner)",
16015
+ "description": "How often the planner runs, in minutes. Setting it arms the planner: each tick creates and refines tasks under this goal",
15930
16016
  "exclusive": [
15931
16017
  "interval-ms",
15932
16018
  "disable"
@@ -15937,7 +16023,7 @@
15937
16023
  "type": "option"
15938
16024
  },
15939
16025
  "interval-ms": {
15940
- "description": "Planner tick cadence in milliseconds (enables the planner)",
16026
+ "description": "Same cadence in milliseconds (raw value; arms the planner)",
15941
16027
  "exclusive": [
15942
16028
  "interval-minutes",
15943
16029
  "disable"
@@ -15948,7 +16034,7 @@
15948
16034
  "type": "option"
15949
16035
  },
15950
16036
  "disable": {
15951
- "description": "Disable the auto-planner (clears the tick cadence)",
16037
+ "description": "Disarm the auto-planner clears the cadence so no further ticks run",
15952
16038
  "exclusive": [
15953
16039
  "interval-minutes",
15954
16040
  "interval-ms"
@@ -15958,14 +16044,14 @@
15958
16044
  "type": "boolean"
15959
16045
  },
15960
16046
  "max-active-tasks": {
15961
- "description": "Cap on concurrently-active planner tasks (server bounds: 1–50)",
16047
+ "description": "Stop creating new tasks once this many are active under the goal (server bounds: 1–50)",
15962
16048
  "name": "max-active-tasks",
15963
16049
  "hasDynamicHelp": false,
15964
16050
  "multiple": false,
15965
16051
  "type": "option"
15966
16052
  },
15967
16053
  "auto-execute": {
15968
- "description": "Auto-schedule planner-created tasks that have an assignee (use --no-auto-execute to turn off)",
16054
+ "description": "Also START the agent on each planner-created task that has an assignee, without asking (use --no-auto-execute to turn off)",
15969
16055
  "name": "auto-execute",
15970
16056
  "allowNo": true,
15971
16057
  "type": "boolean"
@@ -31571,6 +31657,13 @@
31571
31657
  "name": "status",
31572
31658
  "hasDynamicHelp": false,
31573
31659
  "multiple": false,
31660
+ "options": [
31661
+ "backlog",
31662
+ "planned",
31663
+ "in_progress",
31664
+ "completed",
31665
+ "cancelled"
31666
+ ],
31574
31667
  "type": "option"
31575
31668
  },
31576
31669
  "color": {
@@ -32181,6 +32274,13 @@
32181
32274
  "name": "status",
32182
32275
  "hasDynamicHelp": false,
32183
32276
  "multiple": false,
32277
+ "options": [
32278
+ "backlog",
32279
+ "planned",
32280
+ "in_progress",
32281
+ "completed",
32282
+ "cancelled"
32283
+ ],
32184
32284
  "type": "option"
32185
32285
  },
32186
32286
  "label": {
@@ -32197,7 +32297,7 @@
32197
32297
  "type": "boolean"
32198
32298
  },
32199
32299
  "q": {
32200
- "description": "Free-text search over title, description, or space ref (case-insensitive)",
32300
+ "description": "Match title, description, or identifier (case-insensitive). Substring, not tokenized — word order matters, so prefer one distinctive word.",
32201
32301
  "name": "q",
32202
32302
  "hasDynamicHelp": false,
32203
32303
  "multiple": false,
@@ -33190,7 +33290,8 @@
33190
33290
  "<%= config.bin %> spaces update <space-id> --status in_progress --color \"#4f46e5\"",
33191
33291
  "<%= config.bin %> spaces update <space-id> --lead-agent <agent-id>",
33192
33292
  "<%= config.bin %> spaces update <space-id> --no-inherit-access",
33193
- "<%= config.bin %> spaces update <space-id> --from-json patch.json"
33293
+ "<%= config.bin %> spaces update <space-id> --from-json patch.json",
33294
+ "<%= config.bin %> spaces update <space-id> --estimate-scale fibonacci --estimate-migration migrate"
33194
33295
  ],
33195
33296
  "flags": {
33196
33297
  "bare": {
@@ -33252,6 +33353,13 @@
33252
33353
  "name": "status",
33253
33354
  "hasDynamicHelp": false,
33254
33355
  "multiple": false,
33356
+ "options": [
33357
+ "backlog",
33358
+ "planned",
33359
+ "in_progress",
33360
+ "completed",
33361
+ "cancelled"
33362
+ ],
33255
33363
  "type": "option"
33256
33364
  },
33257
33365
  "color": {
@@ -33288,6 +33396,44 @@
33288
33396
  "allowNo": true,
33289
33397
  "type": "boolean"
33290
33398
  },
33399
+ "estimate-scale": {
33400
+ "description": "Estimate scale for this space and its descendants. Allowed values per scale: none (none), points 0/1/2/3/5/8, tshirt 1/2/3/4/5, fibonacci 1/2/3/5/8/13/20/40, linear 1/2/3/4/5/6/7/8/9/10",
33401
+ "name": "estimate-scale",
33402
+ "hasDynamicHelp": false,
33403
+ "multiple": false,
33404
+ "options": [
33405
+ "none",
33406
+ "points",
33407
+ "tshirt",
33408
+ "fibonacci",
33409
+ "linear"
33410
+ ],
33411
+ "type": "option"
33412
+ },
33413
+ "estimate-migration": {
33414
+ "description": "What happens to estimates that already exist when the scale changes. Required whenever --estimate-scale changes the EFFECTIVE scale. `migrate` maps each estimate onto the nearest value in the new scale; `clear` DELETES every estimate in this space and its descendants. Changing to `none` accepts only `clear`, since there is nothing to map into.",
33415
+ "name": "estimate-migration",
33416
+ "hasDynamicHelp": false,
33417
+ "multiple": false,
33418
+ "options": [
33419
+ "clear",
33420
+ "migrate"
33421
+ ],
33422
+ "type": "option"
33423
+ },
33424
+ "default-estimate": {
33425
+ "description": "Estimate applied to unestimated tasks when --use-default-estimate is on. Must be a value the scale allows",
33426
+ "name": "default-estimate",
33427
+ "hasDynamicHelp": false,
33428
+ "multiple": false,
33429
+ "type": "option"
33430
+ },
33431
+ "use-default-estimate": {
33432
+ "description": "Whether rollups treat an unestimated task as --default-estimate",
33433
+ "name": "use-default-estimate",
33434
+ "allowNo": true,
33435
+ "type": "boolean"
33436
+ },
33291
33437
  "worktree-isolation": {
33292
33438
  "description": "Space default for how this space's autonomous task runs use git worktrees. 'ephemeral' ⇒ each run cuts a one-shot worktree; 'shared' ⇒ runs on the daemon's tree/branch. A per-task --worktree override wins. Merged into deliveryPolicy without clobbering its other fields.",
33293
33439
  "name": "worktree-isolation",
@@ -34463,6 +34609,12 @@
34463
34609
  "multiple": false,
34464
34610
  "type": "option"
34465
34611
  },
34612
+ "amend": {
34613
+ "description": "Supersede the canonical outcome of an already-completed task. Without it, a differing report on a closed task is refused",
34614
+ "name": "amend",
34615
+ "allowNo": false,
34616
+ "type": "boolean"
34617
+ },
34466
34618
  "status": {
34467
34619
  "description": "TASK_OUTPUT status",
34468
34620
  "name": "status",
@@ -35039,7 +35191,7 @@
35039
35191
  "type": "option"
35040
35192
  },
35041
35193
  "estimate": {
35042
- "description": "Estimate value from the Space estimate scale",
35194
+ "description": "Estimate value from the Space estimate scale. Requires a scale on the Space (or an ancestor it inherits from); with none set, the server drops the value. Set one with `spaces update <space> --estimate-scale <scale> --estimate-migration <clear|migrate>`.",
35043
35195
  "name": "estimate",
35044
35196
  "hasDynamicHelp": false,
35045
35197
  "multiple": false,
@@ -39057,9 +39209,24 @@
39057
39209
  "type": "option"
39058
39210
  },
39059
39211
  "kind": {
39212
+ "description": "Show only work events of this kind (excludes comments, lifecycle, execution)",
39060
39213
  "name": "kind",
39061
39214
  "hasDynamicHelp": false,
39062
39215
  "multiple": false,
39216
+ "options": [
39217
+ "started",
39218
+ "checkpoint",
39219
+ "changed",
39220
+ "evidence",
39221
+ "decision",
39222
+ "blocker",
39223
+ "input_requested",
39224
+ "handoff",
39225
+ "verification",
39226
+ "completed",
39227
+ "failed",
39228
+ "lifecycle"
39229
+ ],
39063
39230
  "type": "option"
39064
39231
  },
39065
39232
  "run": {
@@ -39828,12 +39995,20 @@
39828
39995
  "type": "option"
39829
39996
  },
39830
39997
  "estimate": {
39831
- "description": "New estimate value from the Space estimate scale",
39998
+ "description": "New estimate value from the Space estimate scale. Requires a scale on the Space (or an ancestor it inherits from); with none set, the server drops the value. Set the scale in the web UI — no CLI command configures it.",
39832
39999
  "name": "estimate",
39833
40000
  "hasDynamicHelp": false,
39834
40001
  "multiple": false,
39835
40002
  "type": "option"
39836
40003
  },
40004
+ "status": {
40005
+ "description": "Not supported here — status changes go through `tasks move`.",
40006
+ "hidden": true,
40007
+ "name": "status",
40008
+ "hasDynamicHelp": false,
40009
+ "multiple": false,
40010
+ "type": "option"
40011
+ },
39837
40012
  "duplicate-of": {
39838
40013
  "description": "Mark this task as a duplicate of the canonical task (merges collaboration)",
39839
40014
  "name": "duplicate-of",
@@ -46811,7 +46986,7 @@
46811
46986
  "required": true
46812
46987
  },
46813
46988
  "destination": {
46814
- "description": "Destination path (missing parent folders are created for pages)",
46989
+ "description": "Destination path (missing parent folders are created for pages). An occupied destination is refused unless --force.",
46815
46990
  "name": "destination",
46816
46991
  "required": true
46817
46992
  }
@@ -46821,6 +46996,7 @@
46821
46996
  "<%= config.bin %> wiki mv <space-id> draft Engineering/Runbooks/deploy",
46822
46997
  "<%= config.bin %> wiki mv <space-id> Engineering/old-name Engineering/new-name",
46823
46998
  "<%= config.bin %> wiki mv <space-id> Notes Engineering/Notes",
46999
+ "<%= config.bin %> wiki mv <space-id> new-runbook Engineering/deploy --force",
46824
47000
  "<%= config.bin %> wiki mv <space-id> Engineering/Runbooks Archive/Runbooks --json"
46825
47001
  ],
46826
47002
  "flags": {
@@ -46856,6 +47032,19 @@
46856
47032
  "name": "json",
46857
47033
  "allowNo": false,
46858
47034
  "type": "boolean"
47035
+ },
47036
+ "force": {
47037
+ "aliases": [
47038
+ "yes"
47039
+ ],
47040
+ "char": "f",
47041
+ "charAliases": [
47042
+ "y"
47043
+ ],
47044
+ "description": "Replace an existing page at the destination (deletes it first)",
47045
+ "name": "force",
47046
+ "allowNo": false,
47047
+ "type": "boolean"
46859
47048
  }
46860
47049
  },
46861
47050
  "hasDynamicHelp": false,
@@ -47330,7 +47519,7 @@
47330
47519
  "required": true
47331
47520
  }
47332
47521
  },
47333
- "description": "Write a wiki page, creating it (and any missing folders) if needed. Markdown by default; `__x__` stays literal (use `**x**` for bold) and a backslash before punctuation escapes itsee docs/cli/SKRR_WIKI.md.",
47522
+ "description": "Write a wiki page, creating it (and any missing folders) if needed. Markdown by default: `__x__` stays literal (use `**x**` for bold), and a backslash before ASCII punctuation is an escape, so the backslash itself is CONSUMED and not stored `\\d+\\.\\d+` becomes `\\d+.\\d+`. Double it (`\\\\.`) to keep a literal backslash, or put the text in a code span or fence, where nothing is interpreted. A backslash before anything else (a letter, a space) is kept as written.",
47334
47523
  "examples": [
47335
47524
  "<%= config.bin %> wiki write <space-id> Engineering/deploy --file runbook.md",
47336
47525
  "cat notes.md | <%= config.bin %> wiki write <space-id> notes --stdin",
@@ -47404,7 +47593,7 @@
47404
47593
  "type": "boolean"
47405
47594
  },
47406
47595
  "title": {
47407
- "description": "Title for a newly-created page (defaults to the slug)",
47596
+ "description": "Title for a NEWLY-CREATED page (defaults to the slug). Retitle an existing page with `wiki update --title`",
47408
47597
  "name": "title",
47409
47598
  "hasDynamicHelp": false,
47410
47599
  "multiple": false,
@@ -53949,164 +54138,70 @@
53949
54138
  "list.js"
53950
54139
  ]
53951
54140
  },
53952
- "agents:tone:clear": {
54141
+ "code:acp": {
53953
54142
  "aliases": [],
53954
54143
  "args": {},
53955
- "description": "Clear an agent’s tone it stays plain and ignores the default",
54144
+ "description": "Run the skrr Code ACP server over stdio (used by the skrr daemon)",
53956
54145
  "examples": [
53957
- "<%= config.bin %> agents tone clear --agent <agent-id>",
53958
- "<%= config.bin %> agents tone clear --agent <agent-id> --keep-notes",
53959
- "<%= config.bin %> agents tone clear --json"
54146
+ "<%= config.bin %> code acp"
53960
54147
  ],
53961
- "flags": {
53962
- "bare": {
53963
- "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
53964
- "name": "bare",
53965
- "allowNo": false,
53966
- "type": "boolean"
53967
- },
53968
- "token": {
53969
- "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
53970
- "name": "token",
53971
- "hasDynamicHelp": false,
53972
- "multiple": false,
53973
- "type": "option"
53974
- },
53975
- "workspace": {
53976
- "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
53977
- "name": "workspace",
53978
- "hasDynamicHelp": false,
53979
- "multiple": false,
53980
- "type": "option"
53981
- },
53982
- "profile": {
53983
- "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
53984
- "name": "profile",
53985
- "hasDynamicHelp": false,
53986
- "multiple": false,
53987
- "type": "option"
53988
- },
53989
- "json": {
53990
- "description": "Output the resolved tone as JSON",
53991
- "name": "json",
53992
- "allowNo": false,
53993
- "type": "boolean"
53994
- },
53995
- "agent": {
53996
- "description": "Agent ID. Omit to use the session agent (OVERSKY_SESSION_AGENT_ID).",
53997
- "name": "agent",
53998
- "hasDynamicHelp": false,
53999
- "multiple": false,
54000
- "type": "option"
54001
- },
54002
- "keep-notes": {
54003
- "description": "Keep the per-agent tone notes (they are cleared by default)",
54004
- "name": "keep-notes",
54005
- "allowNo": false,
54006
- "type": "boolean"
54007
- }
54008
- },
54148
+ "flags": {},
54009
54149
  "hasDynamicHelp": false,
54010
54150
  "hiddenAliases": [],
54011
- "id": "agents:tone:clear",
54151
+ "id": "code:acp",
54012
54152
  "pluginAlias": "@skrr-ai/cli",
54013
54153
  "pluginName": "@skrr-ai/cli",
54014
54154
  "pluginType": "core",
54015
- "strict": true,
54155
+ "strict": false,
54016
54156
  "enableJsonFlag": false,
54017
- "resolveSpaceFlag": true,
54018
54157
  "isESM": false,
54019
54158
  "relativePath": [
54020
54159
  "dist",
54021
54160
  "commands",
54022
- "agents",
54023
- "tone",
54024
- "clear.js"
54161
+ "code",
54162
+ "acp.js"
54025
54163
  ]
54026
54164
  },
54027
- "agents:tone:inherit": {
54165
+ "code:doctor": {
54028
54166
  "aliases": [],
54029
54167
  "args": {},
54030
- "description": "Make an agent inherit your account default tone",
54168
+ "description": "Diagnose the local skrr Code engine, config sources, and trust posture",
54031
54169
  "examples": [
54032
- "<%= config.bin %> agents tone inherit --agent <agent-id>",
54033
- "<%= config.bin %> agents tone inherit --json"
54170
+ "<%= config.bin %> code doctor",
54171
+ "<%= config.bin %> code doctor --json"
54034
54172
  ],
54035
54173
  "flags": {
54036
- "bare": {
54037
- "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
54038
- "name": "bare",
54039
- "allowNo": false,
54040
- "type": "boolean"
54041
- },
54042
- "token": {
54043
- "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
54044
- "name": "token",
54045
- "hasDynamicHelp": false,
54046
- "multiple": false,
54047
- "type": "option"
54048
- },
54049
- "workspace": {
54050
- "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
54051
- "name": "workspace",
54052
- "hasDynamicHelp": false,
54053
- "multiple": false,
54054
- "type": "option"
54055
- },
54056
- "profile": {
54057
- "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
54058
- "name": "profile",
54059
- "hasDynamicHelp": false,
54060
- "multiple": false,
54061
- "type": "option"
54062
- },
54063
54174
  "json": {
54064
- "description": "Output the resolved tone as JSON",
54175
+ "description": "Emit the report as JSON",
54065
54176
  "name": "json",
54066
54177
  "allowNo": false,
54067
54178
  "type": "boolean"
54068
- },
54069
- "agent": {
54070
- "description": "Agent ID. Omit to use the session agent (OVERSKY_SESSION_AGENT_ID).",
54071
- "name": "agent",
54072
- "hasDynamicHelp": false,
54073
- "multiple": false,
54074
- "type": "option"
54075
54179
  }
54076
54180
  },
54077
54181
  "hasDynamicHelp": false,
54078
54182
  "hiddenAliases": [],
54079
- "id": "agents:tone:inherit",
54183
+ "id": "code:doctor",
54080
54184
  "pluginAlias": "@skrr-ai/cli",
54081
54185
  "pluginName": "@skrr-ai/cli",
54082
54186
  "pluginType": "core",
54083
54187
  "strict": true,
54084
54188
  "enableJsonFlag": false,
54085
- "resolveSpaceFlag": true,
54086
54189
  "isESM": false,
54087
54190
  "relativePath": [
54088
54191
  "dist",
54089
54192
  "commands",
54090
- "agents",
54091
- "tone",
54092
- "inherit.js"
54193
+ "code",
54194
+ "doctor.js"
54093
54195
  ]
54094
54196
  },
54095
- "agents:tone:set": {
54197
+ "code:handover": {
54096
54198
  "aliases": [],
54097
- "args": {
54098
- "tone": {
54099
- "description": "Tone id, preset key, or exact tone name",
54100
- "name": "tone",
54101
- "required": true
54102
- }
54103
- },
54104
- "description": "Set the tone an agent speaks in",
54199
+ "args": {},
54200
+ "description": "Hand the work in this directory to an agent on a cloud runtime",
54105
54201
  "examples": [
54106
- "<%= config.bin %> agents tone set brief --agent <agent-id>",
54107
- "<%= config.bin %> agents tone set ctone_1a2b --agent <agent-id> --notes \"Answer in Chinese first.\"",
54108
- "<%= config.bin %> agents tone set tone_calm --agent <agent-id> --json",
54109
- "<%= config.bin %> agents tone set brief # the session agent"
54202
+ "<%= config.bin %> code handover --to \"Frontend Agent\" --brief \"finish the bundle-size fix\"",
54203
+ "<%= config.bin %> code handover --to agent_abc --brief \"continue the parser refactor\" --base main",
54204
+ "<%= config.bin %> code handover --to \"Engineer\" --brief \"...\" --allow-dirty --json"
54110
54205
  ],
54111
54206
  "flags": {
54112
54207
  "bare": {
@@ -54136,30 +54231,52 @@
54136
54231
  "multiple": false,
54137
54232
  "type": "option"
54138
54233
  },
54139
- "json": {
54140
- "description": "Output the resolved tone as JSON",
54141
- "name": "json",
54142
- "allowNo": false,
54143
- "type": "boolean"
54234
+ "to": {
54235
+ "description": "Agent that takes over id or name",
54236
+ "name": "to",
54237
+ "required": true,
54238
+ "hasDynamicHelp": false,
54239
+ "multiple": false,
54240
+ "type": "option"
54144
54241
  },
54145
- "agent": {
54146
- "description": "Agent ID. Omit to use the session agent (OVERSKY_SESSION_AGENT_ID).",
54147
- "name": "agent",
54242
+ "brief": {
54243
+ "description": "What the receiving agent should continue. This is the handover.",
54244
+ "name": "brief",
54245
+ "required": true,
54148
54246
  "hasDynamicHelp": false,
54149
54247
  "multiple": false,
54150
54248
  "type": "option"
54151
54249
  },
54152
- "notes": {
54153
- "description": "Per-agent addendum rendered inside the tone block, so one shared tone can be tuned without forking it",
54154
- "name": "notes",
54250
+ "repo": {
54251
+ "description": "GitHub repo as owner/name (default: derived from the git remote)",
54252
+ "name": "repo",
54253
+ "hasDynamicHelp": false,
54254
+ "multiple": false,
54255
+ "type": "option"
54256
+ },
54257
+ "base": {
54258
+ "description": "Branch the runtime clones (default: the current branch)",
54259
+ "name": "base",
54155
54260
  "hasDynamicHelp": false,
54156
54261
  "multiple": false,
54157
54262
  "type": "option"
54263
+ },
54264
+ "allow-dirty": {
54265
+ "description": "Hand over anyway when the working tree is dirty or the branch is unpushed. The cloud agent will NOT see that work.",
54266
+ "name": "allow-dirty",
54267
+ "allowNo": false,
54268
+ "type": "boolean"
54269
+ },
54270
+ "json": {
54271
+ "description": "Output the created task as JSON",
54272
+ "name": "json",
54273
+ "allowNo": false,
54274
+ "type": "boolean"
54158
54275
  }
54159
54276
  },
54160
54277
  "hasDynamicHelp": false,
54161
54278
  "hiddenAliases": [],
54162
- "id": "agents:tone:set",
54279
+ "id": "code:handover",
54163
54280
  "pluginAlias": "@skrr-ai/cli",
54164
54281
  "pluginName": "@skrr-ai/cli",
54165
54282
  "pluginType": "core",
@@ -54170,26 +54287,47 @@
54170
54287
  "relativePath": [
54171
54288
  "dist",
54172
54289
  "commands",
54173
- "agents",
54174
- "tone",
54175
- "set.js"
54290
+ "code",
54291
+ "handover.js"
54176
54292
  ]
54177
54293
  },
54178
- "agents:tone:show": {
54294
+ "code": {
54179
54295
  "aliases": [],
54180
- "args": {
54181
- "id": {
54182
- "description": "Agent ID. Omit to use the session agent (OVERSKY_SESSION_AGENT_ID).",
54183
- "name": "id",
54184
- "required": false
54185
- }
54186
- },
54187
- "description": "Show the tone an agent speaks in, and where it came from",
54296
+ "args": {},
54297
+ "description": "Everything after `code` is forwarded to the engine unchanged, so engine flags are not listed here — run `skrr code run --help` for this wrapper, or the engine's own help for its flags. --skrr-agent is the one flag this wrapper consumes itself.",
54188
54298
  "examples": [
54189
- "<%= config.bin %> agents tone show",
54190
- "<%= config.bin %> agents tone show <agent-id>",
54191
- "<%= config.bin %> agents tone show --agent <agent-id> --json",
54192
- "<%= config.bin %> agents tone show --rendered"
54299
+ "<%= config.bin %> code",
54300
+ "<%= config.bin %> code --model claude-opus-5",
54301
+ "<%= config.bin %> code --skrr-agent Engineer",
54302
+ "<%= config.bin %> code run \"fix the failing test\"",
54303
+ "<%= config.bin %> code doctor"
54304
+ ],
54305
+ "flags": {},
54306
+ "hasDynamicHelp": false,
54307
+ "hiddenAliases": [],
54308
+ "id": "code",
54309
+ "pluginAlias": "@skrr-ai/cli",
54310
+ "pluginName": "@skrr-ai/cli",
54311
+ "pluginType": "core",
54312
+ "strict": false,
54313
+ "summary": "Start the skrr Code interactive coding agent in this directory",
54314
+ "enableJsonFlag": false,
54315
+ "isESM": false,
54316
+ "relativePath": [
54317
+ "dist",
54318
+ "commands",
54319
+ "code",
54320
+ "index.js"
54321
+ ]
54322
+ },
54323
+ "code:install": {
54324
+ "aliases": [],
54325
+ "args": {},
54326
+ "description": "Install the skrr Code engine on this machine, through the daemon",
54327
+ "examples": [
54328
+ "<%= config.bin %> code install",
54329
+ "<%= config.bin %> code install --daemon d_6a323ae4...",
54330
+ "<%= config.bin %> code install --json"
54193
54331
  ],
54194
54332
  "flags": {
54195
54333
  "bare": {
@@ -54219,42 +54357,209 @@
54219
54357
  "multiple": false,
54220
54358
  "type": "option"
54221
54359
  },
54360
+ "daemon": {
54361
+ "description": "Which daemon installs it. Defaults to the only active one; required when you have several.",
54362
+ "name": "daemon",
54363
+ "hasDynamicHelp": false,
54364
+ "multiple": false,
54365
+ "type": "option"
54366
+ },
54367
+ "wait": {
54368
+ "description": "Follow the install job until it finishes. --no-wait returns the job id.",
54369
+ "name": "wait",
54370
+ "allowNo": true,
54371
+ "type": "boolean"
54372
+ },
54222
54373
  "json": {
54223
- "description": "Output as JSON",
54374
+ "description": "Emit the result as JSON",
54224
54375
  "name": "json",
54225
54376
  "allowNo": false,
54226
54377
  "type": "boolean"
54378
+ }
54379
+ },
54380
+ "hasDynamicHelp": false,
54381
+ "hiddenAliases": [],
54382
+ "id": "code:install",
54383
+ "pluginAlias": "@skrr-ai/cli",
54384
+ "pluginName": "@skrr-ai/cli",
54385
+ "pluginType": "core",
54386
+ "strict": true,
54387
+ "enableJsonFlag": false,
54388
+ "resolveSpaceFlag": true,
54389
+ "isESM": false,
54390
+ "relativePath": [
54391
+ "dist",
54392
+ "commands",
54393
+ "code",
54394
+ "install.js"
54395
+ ]
54396
+ },
54397
+ "code:migrate": {
54398
+ "aliases": [],
54399
+ "args": {
54400
+ "source": {
54401
+ "default": "opencode",
54402
+ "description": "What to migrate from",
54403
+ "name": "source",
54404
+ "options": [
54405
+ "opencode"
54406
+ ]
54407
+ }
54408
+ },
54409
+ "description": "Migrate an existing OpenCode configuration into skrr Code",
54410
+ "examples": [
54411
+ "<%= config.bin %> code migrate opencode",
54412
+ "<%= config.bin %> code migrate opencode --apply",
54413
+ "<%= config.bin %> code migrate opencode --apply --overwrite"
54414
+ ],
54415
+ "flags": {
54416
+ "apply": {
54417
+ "description": "Actually perform the migration (default is a dry run)",
54418
+ "name": "apply",
54419
+ "allowNo": false,
54420
+ "type": "boolean"
54227
54421
  },
54228
- "agent": {
54229
- "description": "Agent ID (alias for the positional argument)",
54230
- "name": "agent",
54422
+ "overwrite": {
54423
+ "dependsOn": [
54424
+ "apply"
54425
+ ],
54426
+ "description": "Replace existing skrr Code files, moving each aside to a timestamped .bak first",
54427
+ "name": "overwrite",
54428
+ "allowNo": false,
54429
+ "type": "boolean"
54430
+ },
54431
+ "scope": {
54432
+ "description": "Which configuration scope to migrate",
54433
+ "name": "scope",
54434
+ "default": "both",
54435
+ "hasDynamicHelp": false,
54436
+ "multiple": false,
54437
+ "options": [
54438
+ "project",
54439
+ "user",
54440
+ "both"
54441
+ ],
54442
+ "type": "option"
54443
+ }
54444
+ },
54445
+ "hasDynamicHelp": false,
54446
+ "hiddenAliases": [],
54447
+ "id": "code:migrate",
54448
+ "pluginAlias": "@skrr-ai/cli",
54449
+ "pluginName": "@skrr-ai/cli",
54450
+ "pluginType": "core",
54451
+ "strict": true,
54452
+ "enableJsonFlag": false,
54453
+ "isESM": false,
54454
+ "relativePath": [
54455
+ "dist",
54456
+ "commands",
54457
+ "code",
54458
+ "migrate.js"
54459
+ ]
54460
+ },
54461
+ "code:oversky-agent": {
54462
+ "aliases": [
54463
+ "code:skrr-agent"
54464
+ ],
54465
+ "args": {},
54466
+ "description": "Show or set the skrr agent a managed skrr Code session is attributed to",
54467
+ "examples": [
54468
+ "<%= config.bin %> code skrr-agent",
54469
+ "<%= config.bin %> code skrr-agent --set Engineer",
54470
+ "<%= config.bin %> code skrr-agent --set agent_abc123",
54471
+ "<%= config.bin %> code skrr-agent --clear",
54472
+ "<%= config.bin %> code skrr-agent --json"
54473
+ ],
54474
+ "flags": {
54475
+ "show": {
54476
+ "description": "Show the agent this machine resolves to, and where it came from",
54477
+ "exclusive": [
54478
+ "set",
54479
+ "clear"
54480
+ ],
54481
+ "name": "show",
54482
+ "allowNo": false,
54483
+ "type": "boolean"
54484
+ },
54485
+ "set": {
54486
+ "description": "Persist an agent by id or name; resolved before it is written",
54487
+ "exclusive": [
54488
+ "clear",
54489
+ "show"
54490
+ ],
54491
+ "name": "set",
54231
54492
  "hasDynamicHelp": false,
54232
54493
  "multiple": false,
54233
54494
  "type": "option"
54234
54495
  },
54235
- "rendered": {
54236
- "description": "Print the exact prompt block the model receives",
54237
- "name": "rendered",
54496
+ "clear": {
54497
+ "description": "Remove the stored \"skyCodeAgentId\" setting",
54498
+ "exclusive": [
54499
+ "set",
54500
+ "show"
54501
+ ],
54502
+ "name": "clear",
54503
+ "allowNo": false,
54504
+ "type": "boolean"
54505
+ },
54506
+ "create": {
54507
+ "description": "With no other flag, establish the default agent if none resolves (a real write)",
54508
+ "exclusive": [
54509
+ "set",
54510
+ "clear"
54511
+ ],
54512
+ "name": "create",
54513
+ "allowNo": false,
54514
+ "type": "boolean"
54515
+ },
54516
+ "json": {
54517
+ "description": "Emit the result as JSON",
54518
+ "name": "json",
54238
54519
  "allowNo": false,
54239
54520
  "type": "boolean"
54240
54521
  }
54241
54522
  },
54242
54523
  "hasDynamicHelp": false,
54243
54524
  "hiddenAliases": [],
54244
- "id": "agents:tone:show",
54525
+ "id": "code:oversky-agent",
54245
54526
  "pluginAlias": "@skrr-ai/cli",
54246
54527
  "pluginName": "@skrr-ai/cli",
54247
54528
  "pluginType": "core",
54248
54529
  "strict": true,
54249
54530
  "enableJsonFlag": false,
54250
- "resolveSpaceFlag": true,
54251
54531
  "isESM": false,
54252
54532
  "relativePath": [
54253
54533
  "dist",
54254
54534
  "commands",
54255
- "agents",
54256
- "tone",
54257
- "show.js"
54535
+ "code",
54536
+ "oversky-agent.js"
54537
+ ]
54538
+ },
54539
+ "code:run": {
54540
+ "aliases": [],
54541
+ "args": {},
54542
+ "description": "Run skrr Code headlessly on a single prompt",
54543
+ "examples": [
54544
+ "<%= config.bin %> code run \"add a regression test for the parser\"",
54545
+ "<%= config.bin %> code run --json \"summarize the diff\"",
54546
+ "<%= config.bin %> code run --oversky-agent Engineer \"fix the failing test\""
54547
+ ],
54548
+ "flags": {},
54549
+ "hasDynamicHelp": false,
54550
+ "hiddenAliases": [],
54551
+ "id": "code:run",
54552
+ "pluginAlias": "@skrr-ai/cli",
54553
+ "pluginName": "@skrr-ai/cli",
54554
+ "pluginType": "core",
54555
+ "strict": false,
54556
+ "enableJsonFlag": false,
54557
+ "isESM": false,
54558
+ "relativePath": [
54559
+ "dist",
54560
+ "commands",
54561
+ "code",
54562
+ "run.js"
54258
54563
  ]
54259
54564
  },
54260
54565
  "agents:triggers:create": {
@@ -58104,7 +58409,9 @@
58104
58409
  "operations-queue",
58105
58410
  "governance-exceptions",
58106
58411
  "distribution",
58412
+ "distribution-tripwire",
58107
58413
  "attention-budget",
58414
+ "decision-inbox",
58108
58415
  "action-adapters-audit",
58109
58416
  "recovery-metrics",
58110
58417
  "recovery",
@@ -59905,70 +60212,24 @@
59905
60212
  "shadow.js"
59906
60213
  ]
59907
60214
  },
59908
- "code:acp": {
59909
- "aliases": [],
59910
- "args": {},
59911
- "description": "Run the skrr Code ACP server over stdio (used by the skrr daemon)",
59912
- "examples": [
59913
- "<%= config.bin %> code acp"
59914
- ],
59915
- "flags": {},
59916
- "hasDynamicHelp": false,
59917
- "hiddenAliases": [],
59918
- "id": "code:acp",
59919
- "pluginAlias": "@skrr-ai/cli",
59920
- "pluginName": "@skrr-ai/cli",
59921
- "pluginType": "core",
59922
- "strict": false,
59923
- "enableJsonFlag": false,
59924
- "isESM": false,
59925
- "relativePath": [
59926
- "dist",
59927
- "commands",
59928
- "code",
59929
- "acp.js"
59930
- ]
59931
- },
59932
- "code:doctor": {
60215
+ "dm:thread:broadcast": {
59933
60216
  "aliases": [],
59934
- "args": {},
59935
- "description": "Diagnose the local skrr Code engine, config sources, and trust posture",
59936
- "examples": [
59937
- "<%= config.bin %> code doctor",
59938
- "<%= config.bin %> code doctor --json"
59939
- ],
59940
- "flags": {
59941
- "json": {
59942
- "description": "Emit the report as JSON",
59943
- "name": "json",
59944
- "allowNo": false,
59945
- "type": "boolean"
60217
+ "args": {
60218
+ "agent": {
60219
+ "description": "Agent ID (or use --agent)",
60220
+ "name": "agent",
60221
+ "required": false
60222
+ },
60223
+ "root": {
60224
+ "description": "Main-message ID that roots the Thread",
60225
+ "name": "root",
60226
+ "required": false
59946
60227
  }
59947
60228
  },
59948
- "hasDynamicHelp": false,
59949
- "hiddenAliases": [],
59950
- "id": "code:doctor",
59951
- "pluginAlias": "@skrr-ai/cli",
59952
- "pluginName": "@skrr-ai/cli",
59953
- "pluginType": "core",
59954
- "strict": true,
59955
- "enableJsonFlag": false,
59956
- "isESM": false,
59957
- "relativePath": [
59958
- "dist",
59959
- "commands",
59960
- "code",
59961
- "doctor.js"
59962
- ]
59963
- },
59964
- "code:handover": {
59965
- "aliases": [],
59966
- "args": {},
59967
- "description": "Hand the work in this directory to an agent on a cloud runtime",
60229
+ "description": "Mirror one Agent DM Thread reply into the main chat",
59968
60230
  "examples": [
59969
- "<%= config.bin %> code handover --to \"Frontend Agent\" --brief \"finish the bundle-size fix\"",
59970
- "<%= config.bin %> code handover --to agent_abc --brief \"continue the parser refactor\" --base main",
59971
- "<%= config.bin %> code handover --to \"Engineer\" --brief \"...\" --allow-dirty --json"
60231
+ "<%= config.bin %> dm thread broadcast <agent-id> <root-message-id> --text \"Shipping Friday\"",
60232
+ "<%= config.bin %> dm thread broadcast <root-message-id> --agent <agent-id> --text \"...\" --json"
59972
60233
  ],
59973
60234
  "flags": {
59974
60235
  "bare": {
@@ -59998,44 +60259,36 @@
59998
60259
  "multiple": false,
59999
60260
  "type": "option"
60000
60261
  },
60001
- "to": {
60002
- "description": "Agent that takes over id or name",
60003
- "name": "to",
60004
- "required": true,
60262
+ "agent": {
60263
+ "description": "Agent ID; prefer this in scripts",
60264
+ "name": "agent",
60005
60265
  "hasDynamicHelp": false,
60006
60266
  "multiple": false,
60007
60267
  "type": "option"
60008
60268
  },
60009
- "brief": {
60010
- "description": "What the receiving agent should continue. This is the handover.",
60011
- "name": "brief",
60012
- "required": true,
60269
+ "root": {
60270
+ "description": "Main-message ID that roots the Thread; prefer this in scripts",
60271
+ "name": "root",
60013
60272
  "hasDynamicHelp": false,
60014
60273
  "multiple": false,
60015
60274
  "type": "option"
60016
60275
  },
60017
- "repo": {
60018
- "description": "GitHub repo as owner/name (default: derived from the git remote)",
60019
- "name": "repo",
60276
+ "text": {
60277
+ "description": "The reply text to mirror into the main chat",
60278
+ "name": "text",
60020
60279
  "hasDynamicHelp": false,
60021
60280
  "multiple": false,
60022
60281
  "type": "option"
60023
60282
  },
60024
- "base": {
60025
- "description": "Branch the runtime clones (default: the current branch)",
60026
- "name": "base",
60283
+ "idempotency-key": {
60284
+ "description": "Names this one broadcast, so a retry rewrites it instead of duplicating it",
60285
+ "name": "idempotency-key",
60027
60286
  "hasDynamicHelp": false,
60028
60287
  "multiple": false,
60029
60288
  "type": "option"
60030
60289
  },
60031
- "allow-dirty": {
60032
- "description": "Hand over anyway when the working tree is dirty or the branch is unpushed. The cloud agent will NOT see that work.",
60033
- "name": "allow-dirty",
60034
- "allowNo": false,
60035
- "type": "boolean"
60036
- },
60037
60290
  "json": {
60038
- "description": "Output the created task as JSON",
60291
+ "description": "Output JSON",
60039
60292
  "name": "json",
60040
60293
  "allowNo": false,
60041
60294
  "type": "boolean"
@@ -60043,7 +60296,7 @@
60043
60296
  },
60044
60297
  "hasDynamicHelp": false,
60045
60298
  "hiddenAliases": [],
60046
- "id": "code:handover",
60299
+ "id": "dm:thread:broadcast",
60047
60300
  "pluginAlias": "@skrr-ai/cli",
60048
60301
  "pluginName": "@skrr-ai/cli",
60049
60302
  "pluginType": "core",
@@ -60054,46 +60307,29 @@
60054
60307
  "relativePath": [
60055
60308
  "dist",
60056
60309
  "commands",
60057
- "code",
60058
- "handover.js"
60059
- ]
60060
- },
60061
- "code": {
60062
- "aliases": [],
60063
- "args": {},
60064
- "description": "Start the skrr Code interactive coding agent in this directory. Everything after `code` is forwarded to the engine unchanged, so engine flags are not listed here — run `skrr code run --help` for this wrapper, or the engine's own help for its flags. --skrr-agent is the one flag this wrapper consumes itself.",
60065
- "examples": [
60066
- "<%= config.bin %> code",
60067
- "<%= config.bin %> code --model claude-opus-5",
60068
- "<%= config.bin %> code --skrr-agent Engineer",
60069
- "<%= config.bin %> code run \"fix the failing test\"",
60070
- "<%= config.bin %> code doctor"
60071
- ],
60072
- "flags": {},
60073
- "hasDynamicHelp": false,
60074
- "hiddenAliases": [],
60075
- "id": "code",
60076
- "pluginAlias": "@skrr-ai/cli",
60077
- "pluginName": "@skrr-ai/cli",
60078
- "pluginType": "core",
60079
- "strict": false,
60080
- "enableJsonFlag": false,
60081
- "isESM": false,
60082
- "relativePath": [
60083
- "dist",
60084
- "commands",
60085
- "code",
60086
- "index.js"
60310
+ "dm",
60311
+ "thread",
60312
+ "broadcast.js"
60087
60313
  ]
60088
60314
  },
60089
- "code:install": {
60315
+ "dm:thread:follow": {
60090
60316
  "aliases": [],
60091
- "args": {},
60092
- "description": "Install the skrr Code engine on this machine, through the daemon",
60317
+ "args": {
60318
+ "agent": {
60319
+ "description": "Agent ID (or use --agent)",
60320
+ "name": "agent",
60321
+ "required": false
60322
+ },
60323
+ "root": {
60324
+ "description": "Main-message ID that roots the Thread",
60325
+ "name": "root",
60326
+ "required": false
60327
+ }
60328
+ },
60329
+ "description": "Follow or unfollow an Agent DM Thread",
60093
60330
  "examples": [
60094
- "<%= config.bin %> code install",
60095
- "<%= config.bin %> code install --daemon d_6a323ae4...",
60096
- "<%= config.bin %> code install --json"
60331
+ "<%= config.bin %> dm thread follow <agent-id> <root-message-id>",
60332
+ "<%= config.bin %> dm thread follow <root-message-id> --agent <agent-id> --unfollow"
60097
60333
  ],
60098
60334
  "flags": {
60099
60335
  "bare": {
@@ -60123,21 +60359,28 @@
60123
60359
  "multiple": false,
60124
60360
  "type": "option"
60125
60361
  },
60126
- "daemon": {
60127
- "description": "Which daemon installs it. Defaults to the only active one; required when you have several.",
60128
- "name": "daemon",
60362
+ "agent": {
60363
+ "description": "Agent ID; prefer this in scripts",
60364
+ "name": "agent",
60129
60365
  "hasDynamicHelp": false,
60130
60366
  "multiple": false,
60131
60367
  "type": "option"
60132
60368
  },
60133
- "wait": {
60134
- "description": "Follow the install job until it finishes. --no-wait returns the job id.",
60135
- "name": "wait",
60136
- "allowNo": true,
60369
+ "root": {
60370
+ "description": "Main-message ID that roots the Thread; prefer this in scripts",
60371
+ "name": "root",
60372
+ "hasDynamicHelp": false,
60373
+ "multiple": false,
60374
+ "type": "option"
60375
+ },
60376
+ "unfollow": {
60377
+ "description": "Remove this Thread from the default followed Threads list",
60378
+ "name": "unfollow",
60379
+ "allowNo": false,
60137
60380
  "type": "boolean"
60138
60381
  },
60139
60382
  "json": {
60140
- "description": "Emit the result as JSON",
60383
+ "description": "Output JSON",
60141
60384
  "name": "json",
60142
60385
  "allowNo": false,
60143
60386
  "type": "boolean"
@@ -60145,7 +60388,7 @@
60145
60388
  },
60146
60389
  "hasDynamicHelp": false,
60147
60390
  "hiddenAliases": [],
60148
- "id": "code:install",
60391
+ "id": "dm:thread:follow",
60149
60392
  "pluginAlias": "@skrr-ai/cli",
60150
60393
  "pluginName": "@skrr-ai/cli",
60151
60394
  "pluginType": "core",
@@ -60156,131 +60399,90 @@
60156
60399
  "relativePath": [
60157
60400
  "dist",
60158
60401
  "commands",
60159
- "code",
60160
- "install.js"
60402
+ "dm",
60403
+ "thread",
60404
+ "follow.js"
60161
60405
  ]
60162
60406
  },
60163
- "code:migrate": {
60407
+ "dm:thread:messages": {
60164
60408
  "aliases": [],
60165
60409
  "args": {
60166
- "source": {
60167
- "default": "opencode",
60168
- "description": "What to migrate from",
60169
- "name": "source",
60170
- "options": [
60171
- "opencode"
60172
- ]
60410
+ "agent": {
60411
+ "description": "Agent ID (or use --agent)",
60412
+ "name": "agent",
60413
+ "required": false
60414
+ },
60415
+ "root": {
60416
+ "description": "Main-message ID that roots the Thread",
60417
+ "name": "root",
60418
+ "required": false
60173
60419
  }
60174
60420
  },
60175
- "description": "Migrate an existing OpenCode configuration into skrr Code",
60421
+ "description": "List replies in an Agent DM Thread",
60176
60422
  "examples": [
60177
- "<%= config.bin %> code migrate opencode",
60178
- "<%= config.bin %> code migrate opencode --apply",
60179
- "<%= config.bin %> code migrate opencode --apply --overwrite"
60423
+ "<%= config.bin %> dm thread messages <agent-id> <root-message-id>",
60424
+ "<%= config.bin %> dm thread messages <root-message-id> --agent <agent-id>",
60425
+ "<%= config.bin %> dm thread messages <agent-id> <root-message-id> --limit 50 --json"
60180
60426
  ],
60181
60427
  "flags": {
60182
- "apply": {
60183
- "description": "Actually perform the migration (default is a dry run)",
60184
- "name": "apply",
60428
+ "bare": {
60429
+ "description": "Bare mode ignore keychain/file credential sources. Token must come from env or --token.",
60430
+ "name": "bare",
60185
60431
  "allowNo": false,
60186
60432
  "type": "boolean"
60187
60433
  },
60188
- "overwrite": {
60189
- "dependsOn": [
60190
- "apply"
60191
- ],
60192
- "description": "Replace existing skrr Code files, moving each aside to a timestamped .bak first",
60193
- "name": "overwrite",
60194
- "allowNo": false,
60195
- "type": "boolean"
60434
+ "token": {
60435
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
60436
+ "name": "token",
60437
+ "hasDynamicHelp": false,
60438
+ "multiple": false,
60439
+ "type": "option"
60196
60440
  },
60197
- "scope": {
60198
- "description": "Which configuration scope to migrate",
60199
- "name": "scope",
60200
- "default": "both",
60441
+ "workspace": {
60442
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
60443
+ "name": "workspace",
60201
60444
  "hasDynamicHelp": false,
60202
60445
  "multiple": false,
60203
- "options": [
60204
- "project",
60205
- "user",
60206
- "both"
60207
- ],
60208
60446
  "type": "option"
60209
- }
60210
- },
60211
- "hasDynamicHelp": false,
60212
- "hiddenAliases": [],
60213
- "id": "code:migrate",
60214
- "pluginAlias": "@skrr-ai/cli",
60215
- "pluginName": "@skrr-ai/cli",
60216
- "pluginType": "core",
60217
- "strict": true,
60218
- "enableJsonFlag": false,
60219
- "isESM": false,
60220
- "relativePath": [
60221
- "dist",
60222
- "commands",
60223
- "code",
60224
- "migrate.js"
60225
- ]
60226
- },
60227
- "code:oversky-agent": {
60228
- "aliases": [
60229
- "code:skrr-agent"
60230
- ],
60231
- "args": {},
60232
- "description": "Show or set the skrr agent a managed skrr Code session is attributed to",
60233
- "examples": [
60234
- "<%= config.bin %> code skrr-agent",
60235
- "<%= config.bin %> code skrr-agent --set Engineer",
60236
- "<%= config.bin %> code skrr-agent --set agent_abc123",
60237
- "<%= config.bin %> code skrr-agent --clear",
60238
- "<%= config.bin %> code skrr-agent --json"
60239
- ],
60240
- "flags": {
60241
- "show": {
60242
- "description": "Show the agent this machine resolves to, and where it came from",
60243
- "exclusive": [
60244
- "set",
60245
- "clear"
60246
- ],
60247
- "name": "show",
60248
- "allowNo": false,
60249
- "type": "boolean"
60250
60447
  },
60251
- "set": {
60252
- "description": "Persist an agent by id or name; resolved before it is written",
60253
- "exclusive": [
60254
- "clear",
60255
- "show"
60256
- ],
60257
- "name": "set",
60448
+ "profile": {
60449
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
60450
+ "name": "profile",
60258
60451
  "hasDynamicHelp": false,
60259
60452
  "multiple": false,
60260
60453
  "type": "option"
60261
60454
  },
60262
- "clear": {
60263
- "description": "Remove the stored \"skyCodeAgentId\" setting",
60264
- "exclusive": [
60265
- "set",
60266
- "show"
60267
- ],
60268
- "name": "clear",
60269
- "allowNo": false,
60270
- "type": "boolean"
60455
+ "agent": {
60456
+ "description": "Agent ID; must agree with positional agent",
60457
+ "name": "agent",
60458
+ "hasDynamicHelp": false,
60459
+ "multiple": false,
60460
+ "type": "option"
60271
60461
  },
60272
- "create": {
60273
- "description": "With no other flag, establish the default agent if none resolves (a real write)",
60274
- "exclusive": [
60275
- "set",
60276
- "clear"
60277
- ],
60278
- "name": "create",
60279
- "allowNo": false,
60280
- "type": "boolean"
60462
+ "root": {
60463
+ "description": "Main-message ID that roots the Thread; prefer this in scripts",
60464
+ "name": "root",
60465
+ "hasDynamicHelp": false,
60466
+ "multiple": false,
60467
+ "type": "option"
60468
+ },
60469
+ "cursor": {
60470
+ "description": "Opaque nextCursor from a previous response, for older replies",
60471
+ "name": "cursor",
60472
+ "hasDynamicHelp": false,
60473
+ "multiple": false,
60474
+ "type": "option"
60475
+ },
60476
+ "limit": {
60477
+ "description": "Maximum replies to return (1-200)",
60478
+ "name": "limit",
60479
+ "default": 50,
60480
+ "hasDynamicHelp": false,
60481
+ "multiple": false,
60482
+ "type": "option"
60281
60483
  },
60282
60484
  "json": {
60283
- "description": "Emit the result as JSON",
60485
+ "description": "Output JSON",
60284
60486
  "name": "json",
60285
60487
  "allowNo": false,
60286
60488
  "type": "boolean"
@@ -60288,47 +60490,23 @@
60288
60490
  },
60289
60491
  "hasDynamicHelp": false,
60290
60492
  "hiddenAliases": [],
60291
- "id": "code:oversky-agent",
60493
+ "id": "dm:thread:messages",
60292
60494
  "pluginAlias": "@skrr-ai/cli",
60293
60495
  "pluginName": "@skrr-ai/cli",
60294
60496
  "pluginType": "core",
60295
60497
  "strict": true,
60296
60498
  "enableJsonFlag": false,
60499
+ "resolveSpaceFlag": true,
60297
60500
  "isESM": false,
60298
60501
  "relativePath": [
60299
60502
  "dist",
60300
60503
  "commands",
60301
- "code",
60302
- "oversky-agent.js"
60303
- ]
60304
- },
60305
- "code:run": {
60306
- "aliases": [],
60307
- "args": {},
60308
- "description": "Run skrr Code headlessly on a single prompt",
60309
- "examples": [
60310
- "<%= config.bin %> code run \"add a regression test for the parser\"",
60311
- "<%= config.bin %> code run --json \"summarize the diff\"",
60312
- "<%= config.bin %> code run --oversky-agent Engineer \"fix the failing test\""
60313
- ],
60314
- "flags": {},
60315
- "hasDynamicHelp": false,
60316
- "hiddenAliases": [],
60317
- "id": "code:run",
60318
- "pluginAlias": "@skrr-ai/cli",
60319
- "pluginName": "@skrr-ai/cli",
60320
- "pluginType": "core",
60321
- "strict": false,
60322
- "enableJsonFlag": false,
60323
- "isESM": false,
60324
- "relativePath": [
60325
- "dist",
60326
- "commands",
60327
- "code",
60328
- "run.js"
60504
+ "dm",
60505
+ "thread",
60506
+ "messages.js"
60329
60507
  ]
60330
60508
  },
60331
- "dm:thread:broadcast": {
60509
+ "dm:thread:mute": {
60332
60510
  "aliases": [],
60333
60511
  "args": {
60334
60512
  "agent": {
@@ -60342,10 +60520,10 @@
60342
60520
  "required": false
60343
60521
  }
60344
60522
  },
60345
- "description": "Mirror one Agent DM Thread reply into the main chat",
60523
+ "description": "Mute or unmute notifications for an Agent DM Thread",
60346
60524
  "examples": [
60347
- "<%= config.bin %> dm thread broadcast <agent-id> <root-message-id> --text \"Shipping Friday\"",
60348
- "<%= config.bin %> dm thread broadcast <root-message-id> --agent <agent-id> --text \"...\" --json"
60525
+ "<%= config.bin %> dm thread mute <agent-id> <root-message-id>",
60526
+ "<%= config.bin %> dm thread mute <root-message-id> --agent <agent-id> --unmute"
60349
60527
  ],
60350
60528
  "flags": {
60351
60529
  "bare": {
@@ -60389,19 +60567,11 @@
60389
60567
  "multiple": false,
60390
60568
  "type": "option"
60391
60569
  },
60392
- "text": {
60393
- "description": "The reply text to mirror into the main chat",
60394
- "name": "text",
60395
- "hasDynamicHelp": false,
60396
- "multiple": false,
60397
- "type": "option"
60398
- },
60399
- "idempotency-key": {
60400
- "description": "Names this one broadcast, so a retry rewrites it instead of duplicating it",
60401
- "name": "idempotency-key",
60402
- "hasDynamicHelp": false,
60403
- "multiple": false,
60404
- "type": "option"
60570
+ "unmute": {
60571
+ "description": "Restore Thread notifications",
60572
+ "name": "unmute",
60573
+ "allowNo": false,
60574
+ "type": "boolean"
60405
60575
  },
60406
60576
  "json": {
60407
60577
  "description": "Output JSON",
@@ -60412,7 +60582,7 @@
60412
60582
  },
60413
60583
  "hasDynamicHelp": false,
60414
60584
  "hiddenAliases": [],
60415
- "id": "dm:thread:broadcast",
60585
+ "id": "dm:thread:mute",
60416
60586
  "pluginAlias": "@skrr-ai/cli",
60417
60587
  "pluginName": "@skrr-ai/cli",
60418
60588
  "pluginType": "core",
@@ -60425,10 +60595,10 @@
60425
60595
  "commands",
60426
60596
  "dm",
60427
60597
  "thread",
60428
- "broadcast.js"
60598
+ "mute.js"
60429
60599
  ]
60430
60600
  },
60431
- "dm:thread:follow": {
60601
+ "dm:thread:share": {
60432
60602
  "aliases": [],
60433
60603
  "args": {
60434
60604
  "agent": {
@@ -60442,10 +60612,10 @@
60442
60612
  "required": false
60443
60613
  }
60444
60614
  },
60445
- "description": "Follow or unfollow an Agent DM Thread",
60615
+ "description": "Share an Agent DM Thread summary to the main chat",
60446
60616
  "examples": [
60447
- "<%= config.bin %> dm thread follow <agent-id> <root-message-id>",
60448
- "<%= config.bin %> dm thread follow <root-message-id> --agent <agent-id> --unfollow"
60617
+ "<%= config.bin %> dm thread share <agent-id> <root-message-id>",
60618
+ "<%= config.bin %> dm thread share <root-message-id> --agent <agent-id> --json"
60449
60619
  ],
60450
60620
  "flags": {
60451
60621
  "bare": {
@@ -60489,12 +60659,6 @@
60489
60659
  "multiple": false,
60490
60660
  "type": "option"
60491
60661
  },
60492
- "unfollow": {
60493
- "description": "Remove this Thread from the default followed Threads list",
60494
- "name": "unfollow",
60495
- "allowNo": false,
60496
- "type": "boolean"
60497
- },
60498
60662
  "json": {
60499
60663
  "description": "Output JSON",
60500
60664
  "name": "json",
@@ -60504,7 +60668,7 @@
60504
60668
  },
60505
60669
  "hasDynamicHelp": false,
60506
60670
  "hiddenAliases": [],
60507
- "id": "dm:thread:follow",
60671
+ "id": "dm:thread:share",
60508
60672
  "pluginAlias": "@skrr-ai/cli",
60509
60673
  "pluginName": "@skrr-ai/cli",
60510
60674
  "pluginType": "core",
@@ -60517,10 +60681,10 @@
60517
60681
  "commands",
60518
60682
  "dm",
60519
60683
  "thread",
60520
- "follow.js"
60684
+ "share.js"
60521
60685
  ]
60522
60686
  },
60523
- "dm:thread:messages": {
60687
+ "dm:thread:show": {
60524
60688
  "aliases": [],
60525
60689
  "args": {
60526
60690
  "agent": {
@@ -60534,11 +60698,11 @@
60534
60698
  "required": false
60535
60699
  }
60536
60700
  },
60537
- "description": "List replies in an Agent DM Thread",
60701
+ "description": "Show an Agent DM Thread rooted at a main message",
60538
60702
  "examples": [
60539
- "<%= config.bin %> dm thread messages <agent-id> <root-message-id>",
60540
- "<%= config.bin %> dm thread messages <root-message-id> --agent <agent-id>",
60541
- "<%= config.bin %> dm thread messages <agent-id> <root-message-id> --limit 50 --json"
60703
+ "<%= config.bin %> dm thread show <agent-id> <root-message-id>",
60704
+ "<%= config.bin %> dm thread show <root-message-id> --agent <agent-id>",
60705
+ "<%= config.bin %> dm thread show <agent-id> <root-message-id> --json"
60542
60706
  ],
60543
60707
  "flags": {
60544
60708
  "bare": {
@@ -60582,21 +60746,6 @@
60582
60746
  "multiple": false,
60583
60747
  "type": "option"
60584
60748
  },
60585
- "cursor": {
60586
- "description": "Opaque nextCursor from a previous response, for older replies",
60587
- "name": "cursor",
60588
- "hasDynamicHelp": false,
60589
- "multiple": false,
60590
- "type": "option"
60591
- },
60592
- "limit": {
60593
- "description": "Maximum replies to return (1-200)",
60594
- "name": "limit",
60595
- "default": 50,
60596
- "hasDynamicHelp": false,
60597
- "multiple": false,
60598
- "type": "option"
60599
- },
60600
60749
  "json": {
60601
60750
  "description": "Output JSON",
60602
60751
  "name": "json",
@@ -60606,7 +60755,7 @@
60606
60755
  },
60607
60756
  "hasDynamicHelp": false,
60608
60757
  "hiddenAliases": [],
60609
- "id": "dm:thread:messages",
60758
+ "id": "dm:thread:show",
60610
60759
  "pluginAlias": "@skrr-ai/cli",
60611
60760
  "pluginName": "@skrr-ai/cli",
60612
60761
  "pluginType": "core",
@@ -60619,27 +60768,91 @@
60619
60768
  "commands",
60620
60769
  "dm",
60621
60770
  "thread",
60622
- "messages.js"
60771
+ "show.js"
60623
60772
  ]
60624
60773
  },
60625
- "dm:thread:mute": {
60774
+ "agents:tone:clear": {
60626
60775
  "aliases": [],
60627
- "args": {
60776
+ "args": {},
60777
+ "description": "Clear an agent’s tone — it stays plain and ignores the default",
60778
+ "examples": [
60779
+ "<%= config.bin %> agents tone clear --agent <agent-id>",
60780
+ "<%= config.bin %> agents tone clear --agent <agent-id> --keep-notes",
60781
+ "<%= config.bin %> agents tone clear --json"
60782
+ ],
60783
+ "flags": {
60784
+ "bare": {
60785
+ "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
60786
+ "name": "bare",
60787
+ "allowNo": false,
60788
+ "type": "boolean"
60789
+ },
60790
+ "token": {
60791
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
60792
+ "name": "token",
60793
+ "hasDynamicHelp": false,
60794
+ "multiple": false,
60795
+ "type": "option"
60796
+ },
60797
+ "workspace": {
60798
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
60799
+ "name": "workspace",
60800
+ "hasDynamicHelp": false,
60801
+ "multiple": false,
60802
+ "type": "option"
60803
+ },
60804
+ "profile": {
60805
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
60806
+ "name": "profile",
60807
+ "hasDynamicHelp": false,
60808
+ "multiple": false,
60809
+ "type": "option"
60810
+ },
60811
+ "json": {
60812
+ "description": "Output the resolved tone as JSON",
60813
+ "name": "json",
60814
+ "allowNo": false,
60815
+ "type": "boolean"
60816
+ },
60628
60817
  "agent": {
60629
- "description": "Agent ID (or use --agent)",
60818
+ "description": "Agent ID. Omit to use the session agent (OVERSKY_SESSION_AGENT_ID).",
60630
60819
  "name": "agent",
60631
- "required": false
60820
+ "hasDynamicHelp": false,
60821
+ "multiple": false,
60822
+ "type": "option"
60632
60823
  },
60633
- "root": {
60634
- "description": "Main-message ID that roots the Thread",
60635
- "name": "root",
60636
- "required": false
60824
+ "keep-notes": {
60825
+ "description": "Keep the per-agent tone notes (they are cleared by default)",
60826
+ "name": "keep-notes",
60827
+ "allowNo": false,
60828
+ "type": "boolean"
60637
60829
  }
60638
60830
  },
60639
- "description": "Mute or unmute notifications for an Agent DM Thread",
60831
+ "hasDynamicHelp": false,
60832
+ "hiddenAliases": [],
60833
+ "id": "agents:tone:clear",
60834
+ "pluginAlias": "@skrr-ai/cli",
60835
+ "pluginName": "@skrr-ai/cli",
60836
+ "pluginType": "core",
60837
+ "strict": true,
60838
+ "enableJsonFlag": false,
60839
+ "resolveSpaceFlag": true,
60840
+ "isESM": false,
60841
+ "relativePath": [
60842
+ "dist",
60843
+ "commands",
60844
+ "agents",
60845
+ "tone",
60846
+ "clear.js"
60847
+ ]
60848
+ },
60849
+ "agents:tone:inherit": {
60850
+ "aliases": [],
60851
+ "args": {},
60852
+ "description": "Make an agent inherit your account default tone",
60640
60853
  "examples": [
60641
- "<%= config.bin %> dm thread mute <agent-id> <root-message-id>",
60642
- "<%= config.bin %> dm thread mute <root-message-id> --agent <agent-id> --unmute"
60854
+ "<%= config.bin %> agents tone inherit --agent <agent-id>",
60855
+ "<%= config.bin %> agents tone inherit --json"
60643
60856
  ],
60644
60857
  "flags": {
60645
60858
  "bare": {
@@ -60669,36 +60882,23 @@
60669
60882
  "multiple": false,
60670
60883
  "type": "option"
60671
60884
  },
60885
+ "json": {
60886
+ "description": "Output the resolved tone as JSON",
60887
+ "name": "json",
60888
+ "allowNo": false,
60889
+ "type": "boolean"
60890
+ },
60672
60891
  "agent": {
60673
- "description": "Agent ID; prefer this in scripts",
60892
+ "description": "Agent ID. Omit to use the session agent (OVERSKY_SESSION_AGENT_ID).",
60674
60893
  "name": "agent",
60675
60894
  "hasDynamicHelp": false,
60676
60895
  "multiple": false,
60677
60896
  "type": "option"
60678
- },
60679
- "root": {
60680
- "description": "Main-message ID that roots the Thread; prefer this in scripts",
60681
- "name": "root",
60682
- "hasDynamicHelp": false,
60683
- "multiple": false,
60684
- "type": "option"
60685
- },
60686
- "unmute": {
60687
- "description": "Restore Thread notifications",
60688
- "name": "unmute",
60689
- "allowNo": false,
60690
- "type": "boolean"
60691
- },
60692
- "json": {
60693
- "description": "Output JSON",
60694
- "name": "json",
60695
- "allowNo": false,
60696
- "type": "boolean"
60697
60897
  }
60698
60898
  },
60699
60899
  "hasDynamicHelp": false,
60700
60900
  "hiddenAliases": [],
60701
- "id": "dm:thread:mute",
60901
+ "id": "agents:tone:inherit",
60702
60902
  "pluginAlias": "@skrr-ai/cli",
60703
60903
  "pluginName": "@skrr-ai/cli",
60704
60904
  "pluginType": "core",
@@ -60709,29 +60909,26 @@
60709
60909
  "relativePath": [
60710
60910
  "dist",
60711
60911
  "commands",
60712
- "dm",
60713
- "thread",
60714
- "mute.js"
60912
+ "agents",
60913
+ "tone",
60914
+ "inherit.js"
60715
60915
  ]
60716
60916
  },
60717
- "dm:thread:share": {
60917
+ "agents:tone:set": {
60718
60918
  "aliases": [],
60719
60919
  "args": {
60720
- "agent": {
60721
- "description": "Agent ID (or use --agent)",
60722
- "name": "agent",
60723
- "required": false
60724
- },
60725
- "root": {
60726
- "description": "Main-message ID that roots the Thread",
60727
- "name": "root",
60728
- "required": false
60920
+ "tone": {
60921
+ "description": "Tone id, preset key, or exact tone name",
60922
+ "name": "tone",
60923
+ "required": true
60729
60924
  }
60730
60925
  },
60731
- "description": "Share an Agent DM Thread summary to the main chat",
60926
+ "description": "Set the tone an agent speaks in",
60732
60927
  "examples": [
60733
- "<%= config.bin %> dm thread share <agent-id> <root-message-id>",
60734
- "<%= config.bin %> dm thread share <root-message-id> --agent <agent-id> --json"
60928
+ "<%= config.bin %> agents tone set brief --agent <agent-id>",
60929
+ "<%= config.bin %> agents tone set ctone_1a2b --agent <agent-id> --notes \"Answer in Chinese first.\"",
60930
+ "<%= config.bin %> agents tone set tone_calm --agent <agent-id> --json",
60931
+ "<%= config.bin %> agents tone set brief # the session agent"
60735
60932
  ],
60736
60933
  "flags": {
60737
60934
  "bare": {
@@ -60761,30 +60958,30 @@
60761
60958
  "multiple": false,
60762
60959
  "type": "option"
60763
60960
  },
60961
+ "json": {
60962
+ "description": "Output the resolved tone as JSON",
60963
+ "name": "json",
60964
+ "allowNo": false,
60965
+ "type": "boolean"
60966
+ },
60764
60967
  "agent": {
60765
- "description": "Agent ID; prefer this in scripts",
60968
+ "description": "Agent ID. Omit to use the session agent (OVERSKY_SESSION_AGENT_ID).",
60766
60969
  "name": "agent",
60767
60970
  "hasDynamicHelp": false,
60768
60971
  "multiple": false,
60769
60972
  "type": "option"
60770
60973
  },
60771
- "root": {
60772
- "description": "Main-message ID that roots the Thread; prefer this in scripts",
60773
- "name": "root",
60974
+ "notes": {
60975
+ "description": "Per-agent addendum rendered inside the tone block, so one shared tone can be tuned without forking it",
60976
+ "name": "notes",
60774
60977
  "hasDynamicHelp": false,
60775
60978
  "multiple": false,
60776
60979
  "type": "option"
60777
- },
60778
- "json": {
60779
- "description": "Output JSON",
60780
- "name": "json",
60781
- "allowNo": false,
60782
- "type": "boolean"
60783
60980
  }
60784
60981
  },
60785
60982
  "hasDynamicHelp": false,
60786
60983
  "hiddenAliases": [],
60787
- "id": "dm:thread:share",
60984
+ "id": "agents:tone:set",
60788
60985
  "pluginAlias": "@skrr-ai/cli",
60789
60986
  "pluginName": "@skrr-ai/cli",
60790
60987
  "pluginType": "core",
@@ -60795,30 +60992,26 @@
60795
60992
  "relativePath": [
60796
60993
  "dist",
60797
60994
  "commands",
60798
- "dm",
60799
- "thread",
60800
- "share.js"
60995
+ "agents",
60996
+ "tone",
60997
+ "set.js"
60801
60998
  ]
60802
60999
  },
60803
- "dm:thread:show": {
61000
+ "agents:tone:show": {
60804
61001
  "aliases": [],
60805
61002
  "args": {
60806
- "agent": {
60807
- "description": "Agent ID (or use --agent)",
60808
- "name": "agent",
60809
- "required": false
60810
- },
60811
- "root": {
60812
- "description": "Main-message ID that roots the Thread",
60813
- "name": "root",
61003
+ "id": {
61004
+ "description": "Agent ID. Omit to use the session agent (OVERSKY_SESSION_AGENT_ID).",
61005
+ "name": "id",
60814
61006
  "required": false
60815
61007
  }
60816
61008
  },
60817
- "description": "Show an Agent DM Thread rooted at a main message",
61009
+ "description": "Show the tone an agent speaks in, and where it came from",
60818
61010
  "examples": [
60819
- "<%= config.bin %> dm thread show <agent-id> <root-message-id>",
60820
- "<%= config.bin %> dm thread show <root-message-id> --agent <agent-id>",
60821
- "<%= config.bin %> dm thread show <agent-id> <root-message-id> --json"
61011
+ "<%= config.bin %> agents tone show",
61012
+ "<%= config.bin %> agents tone show <agent-id>",
61013
+ "<%= config.bin %> agents tone show --agent <agent-id> --json",
61014
+ "<%= config.bin %> agents tone show --rendered"
60822
61015
  ],
60823
61016
  "flags": {
60824
61017
  "bare": {
@@ -60848,30 +61041,29 @@
60848
61041
  "multiple": false,
60849
61042
  "type": "option"
60850
61043
  },
61044
+ "json": {
61045
+ "description": "Output as JSON",
61046
+ "name": "json",
61047
+ "allowNo": false,
61048
+ "type": "boolean"
61049
+ },
60851
61050
  "agent": {
60852
- "description": "Agent ID; must agree with positional agent",
61051
+ "description": "Agent ID (alias for the positional argument)",
60853
61052
  "name": "agent",
60854
61053
  "hasDynamicHelp": false,
60855
61054
  "multiple": false,
60856
61055
  "type": "option"
60857
61056
  },
60858
- "root": {
60859
- "description": "Main-message ID that roots the Thread; prefer this in scripts",
60860
- "name": "root",
60861
- "hasDynamicHelp": false,
60862
- "multiple": false,
60863
- "type": "option"
60864
- },
60865
- "json": {
60866
- "description": "Output JSON",
60867
- "name": "json",
61057
+ "rendered": {
61058
+ "description": "Print the exact prompt block the model receives",
61059
+ "name": "rendered",
60868
61060
  "allowNo": false,
60869
61061
  "type": "boolean"
60870
61062
  }
60871
61063
  },
60872
61064
  "hasDynamicHelp": false,
60873
61065
  "hiddenAliases": [],
60874
- "id": "dm:thread:show",
61066
+ "id": "agents:tone:show",
60875
61067
  "pluginAlias": "@skrr-ai/cli",
60876
61068
  "pluginName": "@skrr-ai/cli",
60877
61069
  "pluginType": "core",
@@ -60882,8 +61074,8 @@
60882
61074
  "relativePath": [
60883
61075
  "dist",
60884
61076
  "commands",
60885
- "dm",
60886
- "thread",
61077
+ "agents",
61078
+ "tone",
60887
61079
  "show.js"
60888
61080
  ]
60889
61081
  },
@@ -62549,20 +62741,20 @@
62549
62741
  "show.js"
62550
62742
  ]
62551
62743
  },
62552
- "integrations:connections:connect": {
62744
+ "integrations:tools:allow": {
62553
62745
  "aliases": [],
62554
62746
  "args": {
62555
62747
  "toolkit": {
62556
- "description": "Toolkit to connect (e.g. gmail, github, slack)",
62748
+ "description": "Toolkit app name (e.g. gmail, github, slack)",
62557
62749
  "name": "toolkit",
62558
62750
  "required": true
62559
62751
  }
62560
62752
  },
62561
- "description": "Connect an integration toolkit (OAuth). Prints redirect URL; polls until completion.",
62753
+ "description": "Set the allowed-tools list for an integration toolkit connection",
62562
62754
  "examples": [
62563
- "<%= config.bin %> integrations connections connect gmail --agent abc123",
62564
- "<%= config.bin %> integrations connections connect github --no-interactive --json",
62565
- "<%= config.bin %> integrations connections connect gmail --provider composio --agent abc123"
62755
+ "<%= config.bin %> integrations tools allow gmail --tools GMAIL_SEND_EMAIL,GMAIL_LIST_THREADS",
62756
+ "<%= config.bin %> integrations tools allow github --tools GITHUB_CREATE_ISSUE --agent abc123 --json",
62757
+ "<%= config.bin %> integrations tools allow gmail --provider composio --tools GMAIL_SEND_EMAIL --json"
62566
62758
  ],
62567
62759
  "flags": {
62568
62760
  "bare": {
@@ -62592,29 +62784,23 @@
62592
62784
  "multiple": false,
62593
62785
  "type": "option"
62594
62786
  },
62595
- "agent": {
62596
- "description": "Agent ID (falls back to OVERSKY_AGENT_ID, then primary agent)",
62597
- "name": "agent",
62787
+ "tools": {
62788
+ "description": "Comma-separated list of tool names to allow (replaces current allowlist)",
62789
+ "name": "tools",
62790
+ "required": true,
62598
62791
  "hasDynamicHelp": false,
62599
62792
  "multiple": false,
62600
62793
  "type": "option"
62601
62794
  },
62602
- "no-interactive": {
62603
- "description": "Non-interactive mode: print {requestId, redirectUrl, toolkit} as JSON and exit. Use `skrr integrations connections finalize <requestId>` after the user completes OAuth.",
62604
- "name": "no-interactive",
62605
- "allowNo": false,
62606
- "type": "boolean"
62607
- },
62608
- "timeout": {
62609
- "description": "Poll timeout in seconds (interactive mode only)",
62610
- "name": "timeout",
62611
- "default": 90,
62795
+ "agent": {
62796
+ "description": "Agent ID (falls back to OVERSKY_AGENT_ID, then primary agent)",
62797
+ "name": "agent",
62612
62798
  "hasDynamicHelp": false,
62613
62799
  "multiple": false,
62614
62800
  "type": "option"
62615
62801
  },
62616
62802
  "json": {
62617
- "description": "Output as JSON (implied by --no-interactive)",
62803
+ "description": "Output result as JSON",
62618
62804
  "name": "json",
62619
62805
  "allowNo": false,
62620
62806
  "type": "boolean"
@@ -62629,7 +62815,7 @@
62629
62815
  },
62630
62816
  "hasDynamicHelp": false,
62631
62817
  "hiddenAliases": [],
62632
- "id": "integrations:connections:connect",
62818
+ "id": "integrations:tools:allow",
62633
62819
  "pluginAlias": "@skrr-ai/cli",
62634
62820
  "pluginName": "@skrr-ai/cli",
62635
62821
  "pluginType": "core",
@@ -62641,24 +62827,19 @@
62641
62827
  "dist",
62642
62828
  "commands",
62643
62829
  "integrations",
62644
- "connections",
62645
- "connect.js"
62830
+ "tools",
62831
+ "allow.js"
62646
62832
  ]
62647
62833
  },
62648
- "integrations:connections:disconnect": {
62834
+ "integrations:tools:list": {
62649
62835
  "aliases": [],
62650
- "args": {
62651
- "toolkit": {
62652
- "description": "Toolkit app name to disconnect (e.g. gmail, github)",
62653
- "name": "toolkit",
62654
- "required": true
62655
- }
62656
- },
62657
- "description": "Disconnect an integration toolkit (revoke OAuth grant)",
62836
+ "args": {},
62837
+ "description": "List integration tools currently available to an agent",
62658
62838
  "examples": [
62659
- "<%= config.bin %> integrations connections disconnect gmail --agent abc123",
62660
- "<%= config.bin %> integrations connections disconnect github --json",
62661
- "<%= config.bin %> integrations connections disconnect gmail --provider composio --json"
62839
+ "<%= config.bin %> integrations tools list",
62840
+ "<%= config.bin %> integrations tools list --agent abc123 --json",
62841
+ "<%= config.bin %> integrations tools list --cached --json",
62842
+ "<%= config.bin %> integrations tools list --provider composio --json"
62662
62843
  ],
62663
62844
  "flags": {
62664
62845
  "bare": {
@@ -62695,8 +62876,14 @@
62695
62876
  "multiple": false,
62696
62877
  "type": "option"
62697
62878
  },
62879
+ "cached": {
62880
+ "description": "Return cached tool list (faster, may be slightly stale)",
62881
+ "name": "cached",
62882
+ "allowNo": false,
62883
+ "type": "boolean"
62884
+ },
62698
62885
  "json": {
62699
- "description": "Output result as JSON",
62886
+ "description": "Output results as JSON",
62700
62887
  "name": "json",
62701
62888
  "allowNo": false,
62702
62889
  "type": "boolean"
@@ -62711,7 +62898,7 @@
62711
62898
  },
62712
62899
  "hasDynamicHelp": false,
62713
62900
  "hiddenAliases": [],
62714
- "id": "integrations:connections:disconnect",
62901
+ "id": "integrations:tools:list",
62715
62902
  "pluginAlias": "@skrr-ai/cli",
62716
62903
  "pluginName": "@skrr-ai/cli",
62717
62904
  "pluginType": "core",
@@ -62723,24 +62910,24 @@
62723
62910
  "dist",
62724
62911
  "commands",
62725
62912
  "integrations",
62726
- "connections",
62727
- "disconnect.js"
62913
+ "tools",
62914
+ "list.js"
62728
62915
  ]
62729
62916
  },
62730
- "integrations:connections:finalize": {
62917
+ "integrations:connections:connect": {
62731
62918
  "aliases": [],
62732
62919
  "args": {
62733
- "requestId": {
62734
- "description": "OAuth request ID returned by `skrr integrations connections connect --no-interactive`",
62735
- "name": "requestId",
62920
+ "toolkit": {
62921
+ "description": "Toolkit to connect (e.g. gmail, github, slack)",
62922
+ "name": "toolkit",
62736
62923
  "required": true
62737
62924
  }
62738
62925
  },
62739
- "description": "Finalize an in-progress integration OAuth connection by request ID. Used after `skrr integrations connections connect --no-interactive` once the user has completed browser auth.",
62926
+ "description": "Connect an integration toolkit (OAuth). Prints redirect URL; polls until completion.",
62740
62927
  "examples": [
62741
- "<%= config.bin %> integrations connections finalize req_abc123 --agent abc123",
62742
- "<%= config.bin %> integrations connections finalize req_abc123 --timeout 120 --json",
62743
- "<%= config.bin %> integrations connections finalize req_abc123 --provider composio --json"
62928
+ "<%= config.bin %> integrations connections connect gmail --agent abc123",
62929
+ "<%= config.bin %> integrations connections connect github --no-interactive --json",
62930
+ "<%= config.bin %> integrations connections connect gmail --provider composio --agent abc123"
62744
62931
  ],
62745
62932
  "flags": {
62746
62933
  "bare": {
@@ -62777,8 +62964,14 @@
62777
62964
  "multiple": false,
62778
62965
  "type": "option"
62779
62966
  },
62967
+ "no-interactive": {
62968
+ "description": "Non-interactive mode: print {requestId, redirectUrl, toolkit} as JSON and exit. Use `skrr integrations connections finalize <requestId>` after the user completes OAuth.",
62969
+ "name": "no-interactive",
62970
+ "allowNo": false,
62971
+ "type": "boolean"
62972
+ },
62780
62973
  "timeout": {
62781
- "description": "Poll timeout in seconds",
62974
+ "description": "Poll timeout in seconds (interactive mode only)",
62782
62975
  "name": "timeout",
62783
62976
  "default": 90,
62784
62977
  "hasDynamicHelp": false,
@@ -62786,7 +62979,7 @@
62786
62979
  "type": "option"
62787
62980
  },
62788
62981
  "json": {
62789
- "description": "Output result as JSON",
62982
+ "description": "Output as JSON (implied by --no-interactive)",
62790
62983
  "name": "json",
62791
62984
  "allowNo": false,
62792
62985
  "type": "boolean"
@@ -62801,7 +62994,7 @@
62801
62994
  },
62802
62995
  "hasDynamicHelp": false,
62803
62996
  "hiddenAliases": [],
62804
- "id": "integrations:connections:finalize",
62997
+ "id": "integrations:connections:connect",
62805
62998
  "pluginAlias": "@skrr-ai/cli",
62806
62999
  "pluginName": "@skrr-ai/cli",
62807
63000
  "pluginType": "core",
@@ -62814,17 +63007,23 @@
62814
63007
  "commands",
62815
63008
  "integrations",
62816
63009
  "connections",
62817
- "finalize.js"
63010
+ "connect.js"
62818
63011
  ]
62819
63012
  },
62820
- "integrations:connections:list": {
63013
+ "integrations:connections:disconnect": {
62821
63014
  "aliases": [],
62822
- "args": {},
62823
- "description": "List an agent's integration connections (connected accounts)",
63015
+ "args": {
63016
+ "toolkit": {
63017
+ "description": "Toolkit app name to disconnect (e.g. gmail, github)",
63018
+ "name": "toolkit",
63019
+ "required": true
63020
+ }
63021
+ },
63022
+ "description": "Disconnect an integration toolkit (revoke OAuth grant)",
62824
63023
  "examples": [
62825
- "<%= config.bin %> integrations connections list",
62826
- "<%= config.bin %> integrations connections list --agent abc123 --json",
62827
- "<%= config.bin %> integrations connections list --provider composio --json"
63024
+ "<%= config.bin %> integrations connections disconnect gmail --agent abc123",
63025
+ "<%= config.bin %> integrations connections disconnect github --json",
63026
+ "<%= config.bin %> integrations connections disconnect gmail --provider composio --json"
62828
63027
  ],
62829
63028
  "flags": {
62830
63029
  "bare": {
@@ -62862,7 +63061,7 @@
62862
63061
  "type": "option"
62863
63062
  },
62864
63063
  "json": {
62865
- "description": "Output results as JSON",
63064
+ "description": "Output result as JSON",
62866
63065
  "name": "json",
62867
63066
  "allowNo": false,
62868
63067
  "type": "boolean"
@@ -62877,7 +63076,7 @@
62877
63076
  },
62878
63077
  "hasDynamicHelp": false,
62879
63078
  "hiddenAliases": [],
62880
- "id": "integrations:connections:list",
63079
+ "id": "integrations:connections:disconnect",
62881
63080
  "pluginAlias": "@skrr-ai/cli",
62882
63081
  "pluginName": "@skrr-ai/cli",
62883
63082
  "pluginType": "core",
@@ -62890,23 +63089,23 @@
62890
63089
  "commands",
62891
63090
  "integrations",
62892
63091
  "connections",
62893
- "list.js"
63092
+ "disconnect.js"
62894
63093
  ]
62895
63094
  },
62896
- "integrations:connections:reconnect": {
63095
+ "integrations:connections:finalize": {
62897
63096
  "aliases": [],
62898
63097
  "args": {
62899
- "toolkit": {
62900
- "description": "Toolkit app name to reconnect (e.g. gmail, github)",
62901
- "name": "toolkit",
63098
+ "requestId": {
63099
+ "description": "OAuth request ID returned by `skrr integrations connections connect --no-interactive`",
63100
+ "name": "requestId",
62902
63101
  "required": true
62903
63102
  }
62904
63103
  },
62905
- "description": "Revoke and re-initiate an OAuth connection for an integration toolkit (use when token refresh fails)",
63104
+ "description": "Finalize an in-progress integration OAuth connection by request ID. Used after `skrr integrations connections connect --no-interactive` once the user has completed browser auth.",
62906
63105
  "examples": [
62907
- "<%= config.bin %> integrations connections reconnect gmail --agent abc123",
62908
- "<%= config.bin %> integrations connections reconnect github --no-interactive --json",
62909
- "<%= config.bin %> integrations connections reconnect gmail --provider composio --agent abc123"
63106
+ "<%= config.bin %> integrations connections finalize req_abc123 --agent abc123",
63107
+ "<%= config.bin %> integrations connections finalize req_abc123 --timeout 120 --json",
63108
+ "<%= config.bin %> integrations connections finalize req_abc123 --provider composio --json"
62910
63109
  ],
62911
63110
  "flags": {
62912
63111
  "bare": {
@@ -62943,14 +63142,8 @@
62943
63142
  "multiple": false,
62944
63143
  "type": "option"
62945
63144
  },
62946
- "no-interactive": {
62947
- "description": "Non-interactive mode: print {requestId, redirectUrl, toolkit} as JSON and exit.",
62948
- "name": "no-interactive",
62949
- "allowNo": false,
62950
- "type": "boolean"
62951
- },
62952
63145
  "timeout": {
62953
- "description": "Poll timeout in seconds (interactive mode only)",
63146
+ "description": "Poll timeout in seconds",
62954
63147
  "name": "timeout",
62955
63148
  "default": 90,
62956
63149
  "hasDynamicHelp": false,
@@ -62958,7 +63151,7 @@
62958
63151
  "type": "option"
62959
63152
  },
62960
63153
  "json": {
62961
- "description": "Output as JSON (implied by --no-interactive)",
63154
+ "description": "Output result as JSON",
62962
63155
  "name": "json",
62963
63156
  "allowNo": false,
62964
63157
  "type": "boolean"
@@ -62973,7 +63166,7 @@
62973
63166
  },
62974
63167
  "hasDynamicHelp": false,
62975
63168
  "hiddenAliases": [],
62976
- "id": "integrations:connections:reconnect",
63169
+ "id": "integrations:connections:finalize",
62977
63170
  "pluginAlias": "@skrr-ai/cli",
62978
63171
  "pluginName": "@skrr-ai/cli",
62979
63172
  "pluginType": "core",
@@ -62986,23 +63179,17 @@
62986
63179
  "commands",
62987
63180
  "integrations",
62988
63181
  "connections",
62989
- "reconnect.js"
63182
+ "finalize.js"
62990
63183
  ]
62991
63184
  },
62992
- "integrations:tools:allow": {
63185
+ "integrations:connections:list": {
62993
63186
  "aliases": [],
62994
- "args": {
62995
- "toolkit": {
62996
- "description": "Toolkit app name (e.g. gmail, github, slack)",
62997
- "name": "toolkit",
62998
- "required": true
62999
- }
63000
- },
63001
- "description": "Set the allowed-tools list for an integration toolkit connection",
63187
+ "args": {},
63188
+ "description": "List an agent's integration connections (connected accounts)",
63002
63189
  "examples": [
63003
- "<%= config.bin %> integrations tools allow gmail --tools GMAIL_SEND_EMAIL,GMAIL_LIST_THREADS",
63004
- "<%= config.bin %> integrations tools allow github --tools GITHUB_CREATE_ISSUE --agent abc123 --json",
63005
- "<%= config.bin %> integrations tools allow gmail --provider composio --tools GMAIL_SEND_EMAIL --json"
63190
+ "<%= config.bin %> integrations connections list",
63191
+ "<%= config.bin %> integrations connections list --agent abc123 --json",
63192
+ "<%= config.bin %> integrations connections list --provider composio --json"
63006
63193
  ],
63007
63194
  "flags": {
63008
63195
  "bare": {
@@ -63032,14 +63219,6 @@
63032
63219
  "multiple": false,
63033
63220
  "type": "option"
63034
63221
  },
63035
- "tools": {
63036
- "description": "Comma-separated list of tool names to allow (replaces current allowlist)",
63037
- "name": "tools",
63038
- "required": true,
63039
- "hasDynamicHelp": false,
63040
- "multiple": false,
63041
- "type": "option"
63042
- },
63043
63222
  "agent": {
63044
63223
  "description": "Agent ID (falls back to OVERSKY_AGENT_ID, then primary agent)",
63045
63224
  "name": "agent",
@@ -63048,7 +63227,7 @@
63048
63227
  "type": "option"
63049
63228
  },
63050
63229
  "json": {
63051
- "description": "Output result as JSON",
63230
+ "description": "Output results as JSON",
63052
63231
  "name": "json",
63053
63232
  "allowNo": false,
63054
63233
  "type": "boolean"
@@ -63063,7 +63242,7 @@
63063
63242
  },
63064
63243
  "hasDynamicHelp": false,
63065
63244
  "hiddenAliases": [],
63066
- "id": "integrations:tools:allow",
63245
+ "id": "integrations:connections:list",
63067
63246
  "pluginAlias": "@skrr-ai/cli",
63068
63247
  "pluginName": "@skrr-ai/cli",
63069
63248
  "pluginType": "core",
@@ -63075,19 +63254,24 @@
63075
63254
  "dist",
63076
63255
  "commands",
63077
63256
  "integrations",
63078
- "tools",
63079
- "allow.js"
63257
+ "connections",
63258
+ "list.js"
63080
63259
  ]
63081
63260
  },
63082
- "integrations:tools:list": {
63261
+ "integrations:connections:reconnect": {
63083
63262
  "aliases": [],
63084
- "args": {},
63085
- "description": "List integration tools currently available to an agent",
63263
+ "args": {
63264
+ "toolkit": {
63265
+ "description": "Toolkit app name to reconnect (e.g. gmail, github)",
63266
+ "name": "toolkit",
63267
+ "required": true
63268
+ }
63269
+ },
63270
+ "description": "Revoke and re-initiate an OAuth connection for an integration toolkit (use when token refresh fails)",
63086
63271
  "examples": [
63087
- "<%= config.bin %> integrations tools list",
63088
- "<%= config.bin %> integrations tools list --agent abc123 --json",
63089
- "<%= config.bin %> integrations tools list --cached --json",
63090
- "<%= config.bin %> integrations tools list --provider composio --json"
63272
+ "<%= config.bin %> integrations connections reconnect gmail --agent abc123",
63273
+ "<%= config.bin %> integrations connections reconnect github --no-interactive --json",
63274
+ "<%= config.bin %> integrations connections reconnect gmail --provider composio --agent abc123"
63091
63275
  ],
63092
63276
  "flags": {
63093
63277
  "bare": {
@@ -63124,14 +63308,22 @@
63124
63308
  "multiple": false,
63125
63309
  "type": "option"
63126
63310
  },
63127
- "cached": {
63128
- "description": "Return cached tool list (faster, may be slightly stale)",
63129
- "name": "cached",
63311
+ "no-interactive": {
63312
+ "description": "Non-interactive mode: print {requestId, redirectUrl, toolkit} as JSON and exit.",
63313
+ "name": "no-interactive",
63130
63314
  "allowNo": false,
63131
63315
  "type": "boolean"
63132
63316
  },
63317
+ "timeout": {
63318
+ "description": "Poll timeout in seconds (interactive mode only)",
63319
+ "name": "timeout",
63320
+ "default": 90,
63321
+ "hasDynamicHelp": false,
63322
+ "multiple": false,
63323
+ "type": "option"
63324
+ },
63133
63325
  "json": {
63134
- "description": "Output results as JSON",
63326
+ "description": "Output as JSON (implied by --no-interactive)",
63135
63327
  "name": "json",
63136
63328
  "allowNo": false,
63137
63329
  "type": "boolean"
@@ -63146,7 +63338,7 @@
63146
63338
  },
63147
63339
  "hasDynamicHelp": false,
63148
63340
  "hiddenAliases": [],
63149
- "id": "integrations:tools:list",
63341
+ "id": "integrations:connections:reconnect",
63150
63342
  "pluginAlias": "@skrr-ai/cli",
63151
63343
  "pluginName": "@skrr-ai/cli",
63152
63344
  "pluginType": "core",
@@ -63158,8 +63350,8 @@
63158
63350
  "dist",
63159
63351
  "commands",
63160
63352
  "integrations",
63161
- "tools",
63162
- "list.js"
63353
+ "connections",
63354
+ "reconnect.js"
63163
63355
  ]
63164
63356
  },
63165
63357
  "machines:hosted:connect": {
@@ -67032,190 +67224,56 @@
67032
67224
  "type": "option"
67033
67225
  },
67034
67226
  "json": {
67035
- "description": "Output the saved brief as JSON",
67036
- "name": "json",
67037
- "allowNo": false,
67038
- "type": "boolean"
67039
- },
67040
- "principal": {
67041
- "description": "Principal type",
67042
- "name": "principal",
67043
- "required": true,
67044
- "hasDynamicHelp": false,
67045
- "multiple": false,
67046
- "options": [
67047
- "user",
67048
- "agent"
67049
- ],
67050
- "type": "option"
67051
- },
67052
- "id": {
67053
- "description": "Principal ID",
67054
- "name": "id",
67055
- "required": true,
67056
- "hasDynamicHelp": false,
67057
- "multiple": false,
67058
- "type": "option"
67059
- },
67060
- "content": {
67061
- "description": "Brief content string",
67062
- "name": "content",
67063
- "hasDynamicHelp": false,
67064
- "multiple": false,
67065
- "type": "option"
67066
- },
67067
- "content-file": {
67068
- "description": "Path to a file whose content becomes the brief",
67069
- "name": "content-file",
67070
- "hasDynamicHelp": false,
67071
- "multiple": false,
67072
- "type": "option"
67073
- },
67074
- "from-json": {
67075
- "description": "Path to a JSON file (or \"-\" for stdin) containing { content: string }",
67076
- "name": "from-json",
67077
- "hasDynamicHelp": false,
67078
- "multiple": false,
67079
- "type": "option"
67080
- }
67081
- },
67082
- "hasDynamicHelp": false,
67083
- "hiddenAliases": [],
67084
- "id": "spaces:briefs:set",
67085
- "pluginAlias": "@skrr-ai/cli",
67086
- "pluginName": "@skrr-ai/cli",
67087
- "pluginType": "core",
67088
- "strict": true,
67089
- "enableJsonFlag": false,
67090
- "resolveSpaceFlag": true,
67091
- "isESM": false,
67092
- "relativePath": [
67093
- "dist",
67094
- "commands",
67095
- "spaces",
67096
- "briefs",
67097
- "set.js"
67098
- ]
67099
- },
67100
- "spaces:github-automations:set": {
67101
- "aliases": [],
67102
- "args": {
67103
- "id": {
67104
- "description": "Space ID",
67105
- "name": "id",
67106
- "required": true
67107
- }
67108
- },
67109
- "description": "Replace a Space's GitHub PR lifecycle automation policy with JSON",
67110
- "flags": {
67111
- "bare": {
67112
- "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
67113
- "name": "bare",
67114
- "allowNo": false,
67115
- "type": "boolean"
67116
- },
67117
- "token": {
67118
- "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
67119
- "name": "token",
67120
- "hasDynamicHelp": false,
67121
- "multiple": false,
67122
- "type": "option"
67123
- },
67124
- "workspace": {
67125
- "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
67126
- "name": "workspace",
67127
- "hasDynamicHelp": false,
67128
- "multiple": false,
67129
- "type": "option"
67130
- },
67131
- "profile": {
67132
- "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
67133
- "name": "profile",
67134
- "hasDynamicHelp": false,
67135
- "multiple": false,
67136
- "type": "option"
67137
- },
67138
- "config": {
67139
- "description": "JSON object, or \"null\" to restore defaults",
67140
- "name": "config",
67141
- "required": true,
67142
- "hasDynamicHelp": false,
67143
- "multiple": false,
67144
- "type": "option"
67145
- },
67146
- "json": {
67147
- "description": "Output JSON",
67148
- "name": "json",
67149
- "allowNo": false,
67150
- "type": "boolean"
67151
- }
67152
- },
67153
- "hasDynamicHelp": false,
67154
- "hiddenAliases": [],
67155
- "id": "spaces:github-automations:set",
67156
- "pluginAlias": "@skrr-ai/cli",
67157
- "pluginName": "@skrr-ai/cli",
67158
- "pluginType": "core",
67159
- "strict": true,
67160
- "enableJsonFlag": false,
67161
- "resolveSpaceFlag": true,
67162
- "isESM": false,
67163
- "relativePath": [
67164
- "dist",
67165
- "commands",
67166
- "spaces",
67167
- "github-automations",
67168
- "set.js"
67169
- ]
67170
- },
67171
- "spaces:github-automations:show": {
67172
- "aliases": [],
67173
- "args": {
67174
- "id": {
67175
- "description": "Space ID",
67176
- "name": "id",
67177
- "required": true
67178
- }
67179
- },
67180
- "description": "Show a Space's GitHub PR lifecycle automation policy",
67181
- "flags": {
67182
- "bare": {
67183
- "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
67184
- "name": "bare",
67185
- "allowNo": false,
67186
- "type": "boolean"
67187
- },
67188
- "token": {
67189
- "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
67190
- "name": "token",
67191
- "hasDynamicHelp": false,
67192
- "multiple": false,
67193
- "type": "option"
67194
- },
67195
- "workspace": {
67196
- "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
67197
- "name": "workspace",
67198
- "hasDynamicHelp": false,
67199
- "multiple": false,
67200
- "type": "option"
67201
- },
67202
- "profile": {
67203
- "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
67204
- "name": "profile",
67205
- "hasDynamicHelp": false,
67206
- "multiple": false,
67207
- "type": "option"
67208
- },
67209
- "json": {
67210
- "description": "Output JSON",
67227
+ "description": "Output the saved brief as JSON",
67211
67228
  "name": "json",
67212
67229
  "allowNo": false,
67213
67230
  "type": "boolean"
67231
+ },
67232
+ "principal": {
67233
+ "description": "Principal type",
67234
+ "name": "principal",
67235
+ "required": true,
67236
+ "hasDynamicHelp": false,
67237
+ "multiple": false,
67238
+ "options": [
67239
+ "user",
67240
+ "agent"
67241
+ ],
67242
+ "type": "option"
67243
+ },
67244
+ "id": {
67245
+ "description": "Principal ID",
67246
+ "name": "id",
67247
+ "required": true,
67248
+ "hasDynamicHelp": false,
67249
+ "multiple": false,
67250
+ "type": "option"
67251
+ },
67252
+ "content": {
67253
+ "description": "Brief content string",
67254
+ "name": "content",
67255
+ "hasDynamicHelp": false,
67256
+ "multiple": false,
67257
+ "type": "option"
67258
+ },
67259
+ "content-file": {
67260
+ "description": "Path to a file whose content becomes the brief",
67261
+ "name": "content-file",
67262
+ "hasDynamicHelp": false,
67263
+ "multiple": false,
67264
+ "type": "option"
67265
+ },
67266
+ "from-json": {
67267
+ "description": "Path to a JSON file (or \"-\" for stdin) containing { content: string }",
67268
+ "name": "from-json",
67269
+ "hasDynamicHelp": false,
67270
+ "multiple": false,
67271
+ "type": "option"
67214
67272
  }
67215
67273
  },
67216
67274
  "hasDynamicHelp": false,
67217
67275
  "hiddenAliases": [],
67218
- "id": "spaces:github-automations:show",
67276
+ "id": "spaces:briefs:set",
67219
67277
  "pluginAlias": "@skrr-ai/cli",
67220
67278
  "pluginName": "@skrr-ai/cli",
67221
67279
  "pluginType": "core",
@@ -67227,8 +67285,8 @@
67227
67285
  "dist",
67228
67286
  "commands",
67229
67287
  "spaces",
67230
- "github-automations",
67231
- "show.js"
67288
+ "briefs",
67289
+ "set.js"
67232
67290
  ]
67233
67291
  },
67234
67292
  "spaces:cycles:create": {
@@ -67764,20 +67822,93 @@
67764
67822
  "update.js"
67765
67823
  ]
67766
67824
  },
67767
- "spaces:heartbeats:create": {
67825
+ "spaces:files:delete": {
67768
67826
  "aliases": [],
67769
67827
  "args": {
67770
67828
  "id": {
67771
67829
  "description": "Space ID",
67772
67830
  "name": "id",
67773
67831
  "required": true
67832
+ },
67833
+ "file": {
67834
+ "description": "File ID",
67835
+ "name": "file",
67836
+ "required": true
67774
67837
  }
67775
67838
  },
67776
- "description": "Create a heartbeat for an agent in a space",
67839
+ "description": "Delete a file stored in a space",
67840
+ "flags": {
67841
+ "bare": {
67842
+ "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
67843
+ "name": "bare",
67844
+ "allowNo": false,
67845
+ "type": "boolean"
67846
+ },
67847
+ "token": {
67848
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
67849
+ "name": "token",
67850
+ "hasDynamicHelp": false,
67851
+ "multiple": false,
67852
+ "type": "option"
67853
+ },
67854
+ "workspace": {
67855
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
67856
+ "name": "workspace",
67857
+ "hasDynamicHelp": false,
67858
+ "multiple": false,
67859
+ "type": "option"
67860
+ },
67861
+ "profile": {
67862
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
67863
+ "name": "profile",
67864
+ "hasDynamicHelp": false,
67865
+ "multiple": false,
67866
+ "type": "option"
67867
+ },
67868
+ "yes": {
67869
+ "description": "Skip confirmation",
67870
+ "name": "yes",
67871
+ "allowNo": false,
67872
+ "type": "boolean"
67873
+ },
67874
+ "json": {
67875
+ "description": "Output as JSON",
67876
+ "name": "json",
67877
+ "allowNo": false,
67878
+ "type": "boolean"
67879
+ }
67880
+ },
67881
+ "hasDynamicHelp": false,
67882
+ "hiddenAliases": [],
67883
+ "id": "spaces:files:delete",
67884
+ "pluginAlias": "@skrr-ai/cli",
67885
+ "pluginName": "@skrr-ai/cli",
67886
+ "pluginType": "core",
67887
+ "strict": true,
67888
+ "enableJsonFlag": false,
67889
+ "resolveSpaceFlag": true,
67890
+ "isESM": false,
67891
+ "relativePath": [
67892
+ "dist",
67893
+ "commands",
67894
+ "spaces",
67895
+ "files",
67896
+ "delete.js"
67897
+ ]
67898
+ },
67899
+ "spaces:files:list": {
67900
+ "aliases": [],
67901
+ "args": {
67902
+ "id": {
67903
+ "description": "Space ID",
67904
+ "name": "id",
67905
+ "required": true
67906
+ }
67907
+ },
67908
+ "description": "List files stored in a space",
67777
67909
  "examples": [
67778
- "<%= config.bin %> spaces heartbeats create <space-id> --agent <agent-id> --frequency \"0 9 * * *\" --prompt \"Good morning\"",
67779
- "<%= config.bin %> spaces heartbeats create <space-id> --agent <agent-id> --frequency \"0 9 * * *\" --prompt \"Brief\" --timezone America/New_York",
67780
- "<%= config.bin %> spaces heartbeats create <space-id> --from-json heartbeat.json"
67910
+ "<%= config.bin %> spaces files list <space-id>",
67911
+ "<%= config.bin %> spaces files list <space-id> --json"
67781
67912
  ],
67782
67913
  "flags": {
67783
67914
  "bare": {
@@ -67807,83 +67938,173 @@
67807
67938
  "multiple": false,
67808
67939
  "type": "option"
67809
67940
  },
67810
- "json": {
67811
- "description": "Output the created heartbeat as JSON",
67812
- "name": "json",
67813
- "allowNo": false,
67814
- "type": "boolean"
67815
- },
67816
- "from-json": {
67817
- "description": "Path to a JSON file (or \"-\" for stdin) to use as the request body",
67818
- "name": "from-json",
67819
- "hasDynamicHelp": false,
67820
- "multiple": false,
67821
- "type": "option"
67822
- },
67823
- "agent": {
67824
- "description": "Agent ID (required unless set via --from-json)",
67825
- "name": "agent",
67826
- "hasDynamicHelp": false,
67827
- "multiple": false,
67828
- "type": "option"
67829
- },
67830
- "frequency": {
67831
- "description": "Cron expression for heartbeat frequency",
67832
- "name": "frequency",
67833
- "hasDynamicHelp": false,
67834
- "multiple": false,
67835
- "type": "option"
67836
- },
67837
- "prompt": {
67838
- "description": "Prompt sent to the agent on each heartbeat",
67839
- "name": "prompt",
67840
- "hasDynamicHelp": false,
67841
- "multiple": false,
67842
- "type": "option"
67843
- },
67844
- "timezone": {
67845
- "description": "Timezone for the cron schedule (e.g. America/New_York)",
67846
- "name": "timezone",
67847
- "hasDynamicHelp": false,
67848
- "multiple": false,
67849
- "type": "option"
67850
- },
67851
- "max-unread-before-extend": {
67852
- "description": "Max unread messages before extending the schedule (1-10)",
67853
- "name": "max-unread-before-extend",
67854
- "hasDynamicHelp": false,
67855
- "multiple": false,
67856
- "type": "option"
67857
- },
67858
- "max-extension-level": {
67859
- "description": "Maximum extension level",
67860
- "name": "max-extension-level",
67861
- "hasDynamicHelp": false,
67862
- "multiple": false,
67863
- "type": "option"
67864
- },
67865
- "ceiling-behavior": {
67866
- "description": "Behavior when ceiling is reached",
67867
- "name": "ceiling-behavior",
67941
+ "json": {
67942
+ "description": "Output as JSON",
67943
+ "name": "json",
67944
+ "allowNo": false,
67945
+ "type": "boolean"
67946
+ }
67947
+ },
67948
+ "hasDynamicHelp": false,
67949
+ "hiddenAliases": [],
67950
+ "id": "spaces:files:list",
67951
+ "pluginAlias": "@skrr-ai/cli",
67952
+ "pluginName": "@skrr-ai/cli",
67953
+ "pluginType": "core",
67954
+ "strict": true,
67955
+ "enableJsonFlag": false,
67956
+ "resolveSpaceFlag": true,
67957
+ "isESM": false,
67958
+ "relativePath": [
67959
+ "dist",
67960
+ "commands",
67961
+ "spaces",
67962
+ "files",
67963
+ "list.js"
67964
+ ]
67965
+ },
67966
+ "spaces:files:move": {
67967
+ "aliases": [],
67968
+ "args": {
67969
+ "id": {
67970
+ "description": "Space ID",
67971
+ "name": "id",
67972
+ "required": true
67973
+ },
67974
+ "file": {
67975
+ "description": "File ID",
67976
+ "name": "file",
67977
+ "required": true
67978
+ }
67979
+ },
67980
+ "description": "Move a space file into a folder or to the root",
67981
+ "flags": {
67982
+ "bare": {
67983
+ "description": "Bare mode ignore keychain/file credential sources. Token must come from env or --token.",
67984
+ "name": "bare",
67985
+ "allowNo": false,
67986
+ "type": "boolean"
67987
+ },
67988
+ "token": {
67989
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
67990
+ "name": "token",
67991
+ "hasDynamicHelp": false,
67992
+ "multiple": false,
67993
+ "type": "option"
67994
+ },
67995
+ "workspace": {
67996
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
67997
+ "name": "workspace",
67998
+ "hasDynamicHelp": false,
67999
+ "multiple": false,
68000
+ "type": "option"
68001
+ },
68002
+ "profile": {
68003
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
68004
+ "name": "profile",
68005
+ "hasDynamicHelp": false,
68006
+ "multiple": false,
68007
+ "type": "option"
68008
+ },
68009
+ "folder": {
68010
+ "description": "Destination folder ID; omit with --root",
68011
+ "name": "folder",
68012
+ "hasDynamicHelp": false,
68013
+ "multiple": false,
68014
+ "type": "option"
68015
+ },
68016
+ "root": {
68017
+ "description": "Move to the space root",
68018
+ "name": "root",
68019
+ "allowNo": false,
68020
+ "type": "boolean"
68021
+ },
68022
+ "json": {
68023
+ "description": "Output as JSON",
68024
+ "name": "json",
68025
+ "allowNo": false,
68026
+ "type": "boolean"
68027
+ }
68028
+ },
68029
+ "hasDynamicHelp": false,
68030
+ "hiddenAliases": [],
68031
+ "id": "spaces:files:move",
68032
+ "pluginAlias": "@skrr-ai/cli",
68033
+ "pluginName": "@skrr-ai/cli",
68034
+ "pluginType": "core",
68035
+ "strict": true,
68036
+ "enableJsonFlag": false,
68037
+ "resolveSpaceFlag": true,
68038
+ "isESM": false,
68039
+ "relativePath": [
68040
+ "dist",
68041
+ "commands",
68042
+ "spaces",
68043
+ "files",
68044
+ "move.js"
68045
+ ]
68046
+ },
68047
+ "spaces:files:rename": {
68048
+ "aliases": [],
68049
+ "args": {
68050
+ "id": {
68051
+ "description": "Space ID",
68052
+ "name": "id",
68053
+ "required": true
68054
+ },
68055
+ "file": {
68056
+ "description": "File ID",
68057
+ "name": "file",
68058
+ "required": true
68059
+ }
68060
+ },
68061
+ "description": "Rename a file stored in a space",
68062
+ "flags": {
68063
+ "bare": {
68064
+ "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
68065
+ "name": "bare",
68066
+ "allowNo": false,
68067
+ "type": "boolean"
68068
+ },
68069
+ "token": {
68070
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
68071
+ "name": "token",
68072
+ "hasDynamicHelp": false,
68073
+ "multiple": false,
68074
+ "type": "option"
68075
+ },
68076
+ "workspace": {
68077
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
68078
+ "name": "workspace",
68079
+ "hasDynamicHelp": false,
68080
+ "multiple": false,
68081
+ "type": "option"
68082
+ },
68083
+ "profile": {
68084
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
68085
+ "name": "profile",
68086
+ "hasDynamicHelp": false,
68087
+ "multiple": false,
68088
+ "type": "option"
68089
+ },
68090
+ "filename": {
68091
+ "description": "New filename",
68092
+ "name": "filename",
68093
+ "required": true,
67868
68094
  "hasDynamicHelp": false,
67869
68095
  "multiple": false,
67870
- "options": [
67871
- "stop",
67872
- "hold"
67873
- ],
67874
68096
  "type": "option"
67875
68097
  },
67876
- "heartbeat-md": {
67877
- "description": "Markdown content for the heartbeat context",
67878
- "name": "heartbeat-md",
67879
- "hasDynamicHelp": false,
67880
- "multiple": false,
67881
- "type": "option"
68098
+ "json": {
68099
+ "description": "Output as JSON",
68100
+ "name": "json",
68101
+ "allowNo": false,
68102
+ "type": "boolean"
67882
68103
  }
67883
68104
  },
67884
68105
  "hasDynamicHelp": false,
67885
68106
  "hiddenAliases": [],
67886
- "id": "spaces:heartbeats:create",
68107
+ "id": "spaces:files:rename",
67887
68108
  "pluginAlias": "@skrr-ai/cli",
67888
68109
  "pluginName": "@skrr-ai/cli",
67889
68110
  "pluginType": "core",
@@ -67895,28 +68116,24 @@
67895
68116
  "dist",
67896
68117
  "commands",
67897
68118
  "spaces",
67898
- "heartbeats",
67899
- "create.js"
68119
+ "files",
68120
+ "rename.js"
67900
68121
  ]
67901
68122
  },
67902
- "spaces:heartbeats:delete": {
68123
+ "spaces:files:upload": {
67903
68124
  "aliases": [],
67904
68125
  "args": {
67905
68126
  "id": {
67906
68127
  "description": "Space ID",
67907
68128
  "name": "id",
67908
68129
  "required": true
67909
- },
67910
- "agentId": {
67911
- "description": "Agent ID",
67912
- "name": "agentId",
67913
- "required": true
67914
68130
  }
67915
68131
  },
67916
- "description": "Delete a heartbeat for an agent in a space",
68132
+ "description": "Upload a file to a space",
67917
68133
  "examples": [
67918
- "<%= config.bin %> spaces heartbeats delete <space-id> <agent-id>",
67919
- "<%= config.bin %> spaces heartbeats delete <space-id> <agent-id> --yes"
68134
+ "<%= config.bin %> spaces files upload <space-id> --file ./architecture.md",
68135
+ "<%= config.bin %> spaces files upload <space-id> --file ./report.pdf --folder <folder-id>",
68136
+ "<%= config.bin %> spaces files upload <space-id> --file ./architecture.md --json"
67920
68137
  ],
67921
68138
  "flags": {
67922
68139
  "bare": {
@@ -67946,23 +68163,31 @@
67946
68163
  "multiple": false,
67947
68164
  "type": "option"
67948
68165
  },
68166
+ "file": {
68167
+ "description": "Path to the file to upload",
68168
+ "name": "file",
68169
+ "required": true,
68170
+ "hasDynamicHelp": false,
68171
+ "multiple": false,
68172
+ "type": "option"
68173
+ },
68174
+ "folder": {
68175
+ "description": "Optional destination folder ID",
68176
+ "name": "folder",
68177
+ "hasDynamicHelp": false,
68178
+ "multiple": false,
68179
+ "type": "option"
68180
+ },
67949
68181
  "json": {
67950
- "description": "Output as JSON",
68182
+ "description": "Output the uploaded file as JSON",
67951
68183
  "name": "json",
67952
68184
  "allowNo": false,
67953
68185
  "type": "boolean"
67954
- },
67955
- "yes": {
67956
- "char": "y",
67957
- "description": "Skip confirmation prompt",
67958
- "name": "yes",
67959
- "allowNo": false,
67960
- "type": "boolean"
67961
68186
  }
67962
68187
  },
67963
68188
  "hasDynamicHelp": false,
67964
68189
  "hiddenAliases": [],
67965
- "id": "spaces:heartbeats:delete",
68190
+ "id": "spaces:files:upload",
67966
68191
  "pluginAlias": "@skrr-ai/cli",
67967
68192
  "pluginName": "@skrr-ai/cli",
67968
68193
  "pluginType": "core",
@@ -67974,11 +68199,11 @@
67974
68199
  "dist",
67975
68200
  "commands",
67976
68201
  "spaces",
67977
- "heartbeats",
67978
- "delete.js"
68202
+ "files",
68203
+ "upload.js"
67979
68204
  ]
67980
68205
  },
67981
- "spaces:heartbeats:list": {
68206
+ "spaces:github-automations:set": {
67982
68207
  "aliases": [],
67983
68208
  "args": {
67984
68209
  "id": {
@@ -67987,11 +68212,7 @@
67987
68212
  "required": true
67988
68213
  }
67989
68214
  },
67990
- "description": "List heartbeats configured for a space",
67991
- "examples": [
67992
- "<%= config.bin %> spaces heartbeats list <space-id>",
67993
- "<%= config.bin %> spaces heartbeats list <space-id> --json"
67994
- ],
68215
+ "description": "Replace a Space's GitHub PR lifecycle automation policy with JSON",
67995
68216
  "flags": {
67996
68217
  "bare": {
67997
68218
  "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
@@ -68020,8 +68241,16 @@
68020
68241
  "multiple": false,
68021
68242
  "type": "option"
68022
68243
  },
68244
+ "config": {
68245
+ "description": "JSON object, or \"null\" to restore defaults",
68246
+ "name": "config",
68247
+ "required": true,
68248
+ "hasDynamicHelp": false,
68249
+ "multiple": false,
68250
+ "type": "option"
68251
+ },
68023
68252
  "json": {
68024
- "description": "Output as JSON",
68253
+ "description": "Output JSON",
68025
68254
  "name": "json",
68026
68255
  "allowNo": false,
68027
68256
  "type": "boolean"
@@ -68029,7 +68258,7 @@
68029
68258
  },
68030
68259
  "hasDynamicHelp": false,
68031
68260
  "hiddenAliases": [],
68032
- "id": "spaces:heartbeats:list",
68261
+ "id": "spaces:github-automations:set",
68033
68262
  "pluginAlias": "@skrr-ai/cli",
68034
68263
  "pluginName": "@skrr-ai/cli",
68035
68264
  "pluginType": "core",
@@ -68041,29 +68270,20 @@
68041
68270
  "dist",
68042
68271
  "commands",
68043
68272
  "spaces",
68044
- "heartbeats",
68045
- "list.js"
68273
+ "github-automations",
68274
+ "set.js"
68046
68275
  ]
68047
68276
  },
68048
- "spaces:heartbeats:status": {
68277
+ "spaces:github-automations:show": {
68049
68278
  "aliases": [],
68050
68279
  "args": {
68051
68280
  "id": {
68052
68281
  "description": "Space ID",
68053
68282
  "name": "id",
68054
68283
  "required": true
68055
- },
68056
- "agentId": {
68057
- "description": "Agent ID",
68058
- "name": "agentId",
68059
- "required": true
68060
68284
  }
68061
68285
  },
68062
- "description": "Get the live status of a heartbeat for an agent in a space",
68063
- "examples": [
68064
- "<%= config.bin %> spaces heartbeats status <space-id> <agent-id>",
68065
- "<%= config.bin %> spaces heartbeats status <space-id> <agent-id> --json"
68066
- ],
68286
+ "description": "Show a Space's GitHub PR lifecycle automation policy",
68067
68287
  "flags": {
68068
68288
  "bare": {
68069
68289
  "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
@@ -68093,7 +68313,7 @@
68093
68313
  "type": "option"
68094
68314
  },
68095
68315
  "json": {
68096
- "description": "Output as JSON",
68316
+ "description": "Output JSON",
68097
68317
  "name": "json",
68098
68318
  "allowNo": false,
68099
68319
  "type": "boolean"
@@ -68101,7 +68321,7 @@
68101
68321
  },
68102
68322
  "hasDynamicHelp": false,
68103
68323
  "hiddenAliases": [],
68104
- "id": "spaces:heartbeats:status",
68324
+ "id": "spaces:github-automations:show",
68105
68325
  "pluginAlias": "@skrr-ai/cli",
68106
68326
  "pluginName": "@skrr-ai/cli",
68107
68327
  "pluginType": "core",
@@ -68113,29 +68333,24 @@
68113
68333
  "dist",
68114
68334
  "commands",
68115
68335
  "spaces",
68116
- "heartbeats",
68117
- "status.js"
68336
+ "github-automations",
68337
+ "show.js"
68118
68338
  ]
68119
68339
  },
68120
- "spaces:heartbeats:update": {
68340
+ "spaces:heartbeats:create": {
68121
68341
  "aliases": [],
68122
68342
  "args": {
68123
68343
  "id": {
68124
68344
  "description": "Space ID",
68125
68345
  "name": "id",
68126
68346
  "required": true
68127
- },
68128
- "agentId": {
68129
- "description": "Agent ID",
68130
- "name": "agentId",
68131
- "required": true
68132
68347
  }
68133
68348
  },
68134
- "description": "Update a heartbeat for an agent in a space",
68349
+ "description": "Create a heartbeat for an agent in a space",
68135
68350
  "examples": [
68136
- "<%= config.bin %> spaces heartbeats update <space-id> <agent-id> --frequency \"0 10 * * *\"",
68137
- "<%= config.bin %> spaces heartbeats update <space-id> <agent-id> --enabled false",
68138
- "<%= config.bin %> spaces heartbeats update <space-id> <agent-id> --from-json patch.json"
68351
+ "<%= config.bin %> spaces heartbeats create <space-id> --agent <agent-id> --frequency \"0 9 * * *\" --prompt \"Good morning\"",
68352
+ "<%= config.bin %> spaces heartbeats create <space-id> --agent <agent-id> --frequency \"0 9 * * *\" --prompt \"Brief\" --timezone America/New_York",
68353
+ "<%= config.bin %> spaces heartbeats create <space-id> --from-json heartbeat.json"
68139
68354
  ],
68140
68355
  "flags": {
68141
68356
  "bare": {
@@ -68166,18 +68381,25 @@
68166
68381
  "type": "option"
68167
68382
  },
68168
68383
  "json": {
68169
- "description": "Output the updated heartbeat as JSON",
68384
+ "description": "Output the created heartbeat as JSON",
68170
68385
  "name": "json",
68171
68386
  "allowNo": false,
68172
68387
  "type": "boolean"
68173
68388
  },
68174
68389
  "from-json": {
68175
- "description": "Path to a JSON file (or \"-\" for stdin) to use as the patch body",
68390
+ "description": "Path to a JSON file (or \"-\" for stdin) to use as the request body",
68176
68391
  "name": "from-json",
68177
68392
  "hasDynamicHelp": false,
68178
68393
  "multiple": false,
68179
68394
  "type": "option"
68180
68395
  },
68396
+ "agent": {
68397
+ "description": "Agent ID (required unless set via --from-json)",
68398
+ "name": "agent",
68399
+ "hasDynamicHelp": false,
68400
+ "multiple": false,
68401
+ "type": "option"
68402
+ },
68181
68403
  "frequency": {
68182
68404
  "description": "Cron expression for heartbeat frequency",
68183
68405
  "name": "frequency",
@@ -68193,20 +68415,14 @@
68193
68415
  "type": "option"
68194
68416
  },
68195
68417
  "timezone": {
68196
- "description": "Timezone for the cron schedule",
68418
+ "description": "Timezone for the cron schedule (e.g. America/New_York)",
68197
68419
  "name": "timezone",
68198
68420
  "hasDynamicHelp": false,
68199
68421
  "multiple": false,
68200
68422
  "type": "option"
68201
68423
  },
68202
- "enabled": {
68203
- "description": "Enable or disable the heartbeat",
68204
- "name": "enabled",
68205
- "allowNo": true,
68206
- "type": "boolean"
68207
- },
68208
68424
  "max-unread-before-extend": {
68209
- "description": "Max unread messages before extending (1-10)",
68425
+ "description": "Max unread messages before extending the schedule (1-10)",
68210
68426
  "name": "max-unread-before-extend",
68211
68427
  "hasDynamicHelp": false,
68212
68428
  "multiple": false,
@@ -68231,7 +68447,7 @@
68231
68447
  "type": "option"
68232
68448
  },
68233
68449
  "heartbeat-md": {
68234
- "description": "Markdown content for heartbeat context",
68450
+ "description": "Markdown content for the heartbeat context",
68235
68451
  "name": "heartbeat-md",
68236
68452
  "hasDynamicHelp": false,
68237
68453
  "multiple": false,
@@ -68240,7 +68456,7 @@
68240
68456
  },
68241
68457
  "hasDynamicHelp": false,
68242
68458
  "hiddenAliases": [],
68243
- "id": "spaces:heartbeats:update",
68459
+ "id": "spaces:heartbeats:create",
68244
68460
  "pluginAlias": "@skrr-ai/cli",
68245
68461
  "pluginName": "@skrr-ai/cli",
68246
68462
  "pluginType": "core",
@@ -68253,10 +68469,10 @@
68253
68469
  "commands",
68254
68470
  "spaces",
68255
68471
  "heartbeats",
68256
- "update.js"
68472
+ "create.js"
68257
68473
  ]
68258
68474
  },
68259
- "spaces:files:delete": {
68475
+ "spaces:heartbeats:delete": {
68260
68476
  "aliases": [],
68261
68477
  "args": {
68262
68478
  "id": {
@@ -68264,13 +68480,17 @@
68264
68480
  "name": "id",
68265
68481
  "required": true
68266
68482
  },
68267
- "file": {
68268
- "description": "File ID",
68269
- "name": "file",
68483
+ "agentId": {
68484
+ "description": "Agent ID",
68485
+ "name": "agentId",
68270
68486
  "required": true
68271
68487
  }
68272
68488
  },
68273
- "description": "Delete a file stored in a space",
68489
+ "description": "Delete a heartbeat for an agent in a space",
68490
+ "examples": [
68491
+ "<%= config.bin %> spaces heartbeats delete <space-id> <agent-id>",
68492
+ "<%= config.bin %> spaces heartbeats delete <space-id> <agent-id> --yes"
68493
+ ],
68274
68494
  "flags": {
68275
68495
  "bare": {
68276
68496
  "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
@@ -68299,22 +68519,23 @@
68299
68519
  "multiple": false,
68300
68520
  "type": "option"
68301
68521
  },
68302
- "yes": {
68303
- "description": "Skip confirmation",
68304
- "name": "yes",
68305
- "allowNo": false,
68306
- "type": "boolean"
68307
- },
68308
68522
  "json": {
68309
68523
  "description": "Output as JSON",
68310
68524
  "name": "json",
68311
68525
  "allowNo": false,
68312
68526
  "type": "boolean"
68527
+ },
68528
+ "yes": {
68529
+ "char": "y",
68530
+ "description": "Skip confirmation prompt",
68531
+ "name": "yes",
68532
+ "allowNo": false,
68533
+ "type": "boolean"
68313
68534
  }
68314
68535
  },
68315
68536
  "hasDynamicHelp": false,
68316
68537
  "hiddenAliases": [],
68317
- "id": "spaces:files:delete",
68538
+ "id": "spaces:heartbeats:delete",
68318
68539
  "pluginAlias": "@skrr-ai/cli",
68319
68540
  "pluginName": "@skrr-ai/cli",
68320
68541
  "pluginType": "core",
@@ -68326,11 +68547,11 @@
68326
68547
  "dist",
68327
68548
  "commands",
68328
68549
  "spaces",
68329
- "files",
68550
+ "heartbeats",
68330
68551
  "delete.js"
68331
68552
  ]
68332
68553
  },
68333
- "spaces:files:list": {
68554
+ "spaces:heartbeats:list": {
68334
68555
  "aliases": [],
68335
68556
  "args": {
68336
68557
  "id": {
@@ -68339,10 +68560,10 @@
68339
68560
  "required": true
68340
68561
  }
68341
68562
  },
68342
- "description": "List files stored in a space",
68563
+ "description": "List heartbeats configured for a space",
68343
68564
  "examples": [
68344
- "<%= config.bin %> spaces files list <space-id>",
68345
- "<%= config.bin %> spaces files list <space-id> --json"
68565
+ "<%= config.bin %> spaces heartbeats list <space-id>",
68566
+ "<%= config.bin %> spaces heartbeats list <space-id> --json"
68346
68567
  ],
68347
68568
  "flags": {
68348
68569
  "bare": {
@@ -68381,7 +68602,7 @@
68381
68602
  },
68382
68603
  "hasDynamicHelp": false,
68383
68604
  "hiddenAliases": [],
68384
- "id": "spaces:files:list",
68605
+ "id": "spaces:heartbeats:list",
68385
68606
  "pluginAlias": "@skrr-ai/cli",
68386
68607
  "pluginName": "@skrr-ai/cli",
68387
68608
  "pluginType": "core",
@@ -68393,11 +68614,11 @@
68393
68614
  "dist",
68394
68615
  "commands",
68395
68616
  "spaces",
68396
- "files",
68617
+ "heartbeats",
68397
68618
  "list.js"
68398
68619
  ]
68399
68620
  },
68400
- "spaces:files:move": {
68621
+ "spaces:heartbeats:status": {
68401
68622
  "aliases": [],
68402
68623
  "args": {
68403
68624
  "id": {
@@ -68405,13 +68626,17 @@
68405
68626
  "name": "id",
68406
68627
  "required": true
68407
68628
  },
68408
- "file": {
68409
- "description": "File ID",
68410
- "name": "file",
68629
+ "agentId": {
68630
+ "description": "Agent ID",
68631
+ "name": "agentId",
68411
68632
  "required": true
68412
68633
  }
68413
68634
  },
68414
- "description": "Move a space file into a folder or to the root",
68635
+ "description": "Get the live status of a heartbeat for an agent in a space",
68636
+ "examples": [
68637
+ "<%= config.bin %> spaces heartbeats status <space-id> <agent-id>",
68638
+ "<%= config.bin %> spaces heartbeats status <space-id> <agent-id> --json"
68639
+ ],
68415
68640
  "flags": {
68416
68641
  "bare": {
68417
68642
  "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
@@ -68440,19 +68665,6 @@
68440
68665
  "multiple": false,
68441
68666
  "type": "option"
68442
68667
  },
68443
- "folder": {
68444
- "description": "Destination folder ID; omit with --root",
68445
- "name": "folder",
68446
- "hasDynamicHelp": false,
68447
- "multiple": false,
68448
- "type": "option"
68449
- },
68450
- "root": {
68451
- "description": "Move to the space root",
68452
- "name": "root",
68453
- "allowNo": false,
68454
- "type": "boolean"
68455
- },
68456
68668
  "json": {
68457
68669
  "description": "Output as JSON",
68458
68670
  "name": "json",
@@ -68462,7 +68674,7 @@
68462
68674
  },
68463
68675
  "hasDynamicHelp": false,
68464
68676
  "hiddenAliases": [],
68465
- "id": "spaces:files:move",
68677
+ "id": "spaces:heartbeats:status",
68466
68678
  "pluginAlias": "@skrr-ai/cli",
68467
68679
  "pluginName": "@skrr-ai/cli",
68468
68680
  "pluginType": "core",
@@ -68474,11 +68686,11 @@
68474
68686
  "dist",
68475
68687
  "commands",
68476
68688
  "spaces",
68477
- "files",
68478
- "move.js"
68689
+ "heartbeats",
68690
+ "status.js"
68479
68691
  ]
68480
68692
  },
68481
- "spaces:files:rename": {
68693
+ "spaces:heartbeats:update": {
68482
68694
  "aliases": [],
68483
68695
  "args": {
68484
68696
  "id": {
@@ -68486,13 +68698,18 @@
68486
68698
  "name": "id",
68487
68699
  "required": true
68488
68700
  },
68489
- "file": {
68490
- "description": "File ID",
68491
- "name": "file",
68701
+ "agentId": {
68702
+ "description": "Agent ID",
68703
+ "name": "agentId",
68492
68704
  "required": true
68493
68705
  }
68494
68706
  },
68495
- "description": "Rename a file stored in a space",
68707
+ "description": "Update a heartbeat for an agent in a space",
68708
+ "examples": [
68709
+ "<%= config.bin %> spaces heartbeats update <space-id> <agent-id> --frequency \"0 10 * * *\"",
68710
+ "<%= config.bin %> spaces heartbeats update <space-id> <agent-id> --enabled false",
68711
+ "<%= config.bin %> spaces heartbeats update <space-id> <agent-id> --from-json patch.json"
68712
+ ],
68496
68713
  "flags": {
68497
68714
  "bare": {
68498
68715
  "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
@@ -68521,107 +68738,82 @@
68521
68738
  "multiple": false,
68522
68739
  "type": "option"
68523
68740
  },
68524
- "filename": {
68525
- "description": "New filename",
68526
- "name": "filename",
68527
- "required": true,
68528
- "hasDynamicHelp": false,
68529
- "multiple": false,
68530
- "type": "option"
68531
- },
68532
68741
  "json": {
68533
- "description": "Output as JSON",
68742
+ "description": "Output the updated heartbeat as JSON",
68534
68743
  "name": "json",
68535
68744
  "allowNo": false,
68536
68745
  "type": "boolean"
68537
- }
68538
- },
68539
- "hasDynamicHelp": false,
68540
- "hiddenAliases": [],
68541
- "id": "spaces:files:rename",
68542
- "pluginAlias": "@skrr-ai/cli",
68543
- "pluginName": "@skrr-ai/cli",
68544
- "pluginType": "core",
68545
- "strict": true,
68546
- "enableJsonFlag": false,
68547
- "resolveSpaceFlag": true,
68548
- "isESM": false,
68549
- "relativePath": [
68550
- "dist",
68551
- "commands",
68552
- "spaces",
68553
- "files",
68554
- "rename.js"
68555
- ]
68556
- },
68557
- "spaces:files:upload": {
68558
- "aliases": [],
68559
- "args": {
68560
- "id": {
68561
- "description": "Space ID",
68562
- "name": "id",
68563
- "required": true
68564
- }
68565
- },
68566
- "description": "Upload a file to a space",
68567
- "examples": [
68568
- "<%= config.bin %> spaces files upload <space-id> --file ./architecture.md",
68569
- "<%= config.bin %> spaces files upload <space-id> --file ./report.pdf --folder <folder-id>",
68570
- "<%= config.bin %> spaces files upload <space-id> --file ./architecture.md --json"
68571
- ],
68572
- "flags": {
68573
- "bare": {
68574
- "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
68575
- "name": "bare",
68576
- "allowNo": false,
68577
- "type": "boolean"
68578
68746
  },
68579
- "token": {
68580
- "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
68581
- "name": "token",
68747
+ "from-json": {
68748
+ "description": "Path to a JSON file (or \"-\" for stdin) to use as the patch body",
68749
+ "name": "from-json",
68582
68750
  "hasDynamicHelp": false,
68583
68751
  "multiple": false,
68584
68752
  "type": "option"
68585
68753
  },
68586
- "workspace": {
68587
- "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
68588
- "name": "workspace",
68754
+ "frequency": {
68755
+ "description": "Cron expression for heartbeat frequency",
68756
+ "name": "frequency",
68589
68757
  "hasDynamicHelp": false,
68590
68758
  "multiple": false,
68591
68759
  "type": "option"
68592
68760
  },
68593
- "profile": {
68594
- "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
68595
- "name": "profile",
68761
+ "prompt": {
68762
+ "description": "Prompt sent to the agent on each heartbeat",
68763
+ "name": "prompt",
68596
68764
  "hasDynamicHelp": false,
68597
68765
  "multiple": false,
68598
68766
  "type": "option"
68599
68767
  },
68600
- "file": {
68601
- "description": "Path to the file to upload",
68602
- "name": "file",
68603
- "required": true,
68768
+ "timezone": {
68769
+ "description": "Timezone for the cron schedule",
68770
+ "name": "timezone",
68604
68771
  "hasDynamicHelp": false,
68605
68772
  "multiple": false,
68606
68773
  "type": "option"
68607
68774
  },
68608
- "folder": {
68609
- "description": "Optional destination folder ID",
68610
- "name": "folder",
68775
+ "enabled": {
68776
+ "description": "Enable or disable the heartbeat",
68777
+ "name": "enabled",
68778
+ "allowNo": true,
68779
+ "type": "boolean"
68780
+ },
68781
+ "max-unread-before-extend": {
68782
+ "description": "Max unread messages before extending (1-10)",
68783
+ "name": "max-unread-before-extend",
68611
68784
  "hasDynamicHelp": false,
68612
68785
  "multiple": false,
68613
68786
  "type": "option"
68614
68787
  },
68615
- "json": {
68616
- "description": "Output the uploaded file as JSON",
68617
- "name": "json",
68618
- "allowNo": false,
68619
- "type": "boolean"
68788
+ "max-extension-level": {
68789
+ "description": "Maximum extension level",
68790
+ "name": "max-extension-level",
68791
+ "hasDynamicHelp": false,
68792
+ "multiple": false,
68793
+ "type": "option"
68794
+ },
68795
+ "ceiling-behavior": {
68796
+ "description": "Behavior when ceiling is reached",
68797
+ "name": "ceiling-behavior",
68798
+ "hasDynamicHelp": false,
68799
+ "multiple": false,
68800
+ "options": [
68801
+ "stop",
68802
+ "hold"
68803
+ ],
68804
+ "type": "option"
68805
+ },
68806
+ "heartbeat-md": {
68807
+ "description": "Markdown content for heartbeat context",
68808
+ "name": "heartbeat-md",
68809
+ "hasDynamicHelp": false,
68810
+ "multiple": false,
68811
+ "type": "option"
68620
68812
  }
68621
68813
  },
68622
68814
  "hasDynamicHelp": false,
68623
68815
  "hiddenAliases": [],
68624
- "id": "spaces:files:upload",
68816
+ "id": "spaces:heartbeats:update",
68625
68817
  "pluginAlias": "@skrr-ai/cli",
68626
68818
  "pluginName": "@skrr-ai/cli",
68627
68819
  "pluginType": "core",
@@ -68633,8 +68825,8 @@
68633
68825
  "dist",
68634
68826
  "commands",
68635
68827
  "spaces",
68636
- "files",
68637
- "upload.js"
68828
+ "heartbeats",
68829
+ "update.js"
68638
68830
  ]
68639
68831
  },
68640
68832
  "spaces:labels:add": {
@@ -77328,11 +77520,17 @@
77328
77520
  "aliases": [],
77329
77521
  "args": {
77330
77522
  "id": {
77523
+ "description": "Task ID. Optional inside a task runtime, which supplies it",
77331
77524
  "name": "id",
77332
77525
  "required": false
77333
77526
  }
77334
77527
  },
77335
- "description": "Append a typed, durable task event",
77528
+ "description": "Records one meaningful work boundary — a decision, a material change, evidence, a blocker, or a handoff — on the task you are executing. Not a log of tool calls: an event that is worth reading six weeks from now. `skrr tasks timeline <id>` reads them back.",
77529
+ "examples": [
77530
+ "<%= config.bin %> tasks events append <task-id> --kind checkpoint --idempotency-key \"<task-id>:first-pass\" --summary \"Parser handles nested fences\"",
77531
+ "<%= config.bin %> tasks events append <task-id> --kind decision --idempotency-key \"<task-id>:storage-choice\" --summary \"Chose the CRDT path\" --evidence \"A direct contentHtml write is reverted by the next render tick\"",
77532
+ "<%= config.bin %> tasks events append <task-id> --kind verification --idempotency-key \"<task-id>:verified\" --summary \"Repro no longer reproduces\" --artifact <commit-sha>"
77533
+ ],
77336
77534
  "flags": {
77337
77535
  "bare": {
77338
77536
  "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
@@ -77362,17 +77560,20 @@
77362
77560
  "type": "option"
77363
77561
  },
77364
77562
  "task": {
77563
+ "description": "Task ID; overrides the runtime context and the positional",
77365
77564
  "name": "task",
77366
77565
  "hasDynamicHelp": false,
77367
77566
  "multiple": false,
77368
77567
  "type": "option"
77369
77568
  },
77370
77569
  "json": {
77570
+ "description": "Output the created event as JSON",
77371
77571
  "name": "json",
77372
77572
  "allowNo": false,
77373
77573
  "type": "boolean"
77374
77574
  },
77375
77575
  "idempotency-key": {
77576
+ "description": "Stable key naming THIS update permanently, e.g. \"<task-id>:verified\". Reuse it only to retry the same update — reused with identical text the original is returned, with different text the server refuses (409 TASK_EVENT_IDEMPOTENCY_CONFLICT)",
77376
77577
  "name": "idempotency-key",
77377
77578
  "required": true,
77378
77579
  "hasDynamicHelp": false,
@@ -77402,6 +77603,7 @@
77402
77603
  "type": "option"
77403
77604
  },
77404
77605
  "summary": {
77606
+ "description": "What is newly true, in one sentence",
77405
77607
  "name": "summary",
77406
77608
  "required": true,
77407
77609
  "hasDynamicHelp": false,
@@ -77409,25 +77611,28 @@
77409
77611
  "type": "option"
77410
77612
  },
77411
77613
  "changed": {
77614
+ "description": "What moved — the concrete change this event records",
77412
77615
  "name": "changed",
77413
77616
  "hasDynamicHelp": false,
77414
77617
  "multiple": false,
77415
77618
  "type": "option"
77416
77619
  },
77417
77620
  "next": {
77621
+ "description": "What happens next, or who owns the next decision",
77418
77622
  "name": "next",
77419
77623
  "hasDynamicHelp": false,
77420
77624
  "multiple": false,
77421
77625
  "type": "option"
77422
77626
  },
77423
77627
  "evidence": {
77628
+ "description": "Why it is true — an observation, command output, or a before → after",
77424
77629
  "name": "evidence",
77425
77630
  "hasDynamicHelp": false,
77426
77631
  "multiple": false,
77427
77632
  "type": "option"
77428
77633
  },
77429
77634
  "artifact": {
77430
- "description": "Artifact reference; repeatable",
77635
+ "description": "Durable reference: a file path, commit sha, or URL. Repeatable. \"in the conversation\" is not an artifact",
77431
77636
  "name": "artifact",
77432
77637
  "hasDynamicHelp": false,
77433
77638
  "multiple": true,
@@ -77441,6 +77646,7 @@
77441
77646
  "pluginName": "@skrr-ai/cli",
77442
77647
  "pluginType": "core",
77443
77648
  "strict": true,
77649
+ "summary": "Append a typed, durable task event",
77444
77650
  "enableJsonFlag": false,
77445
77651
  "resolveSpaceFlag": true,
77446
77652
  "isESM": false,
@@ -77456,6 +77662,7 @@
77456
77662
  "aliases": [],
77457
77663
  "args": {
77458
77664
  "id": {
77665
+ "description": "Task ID. Optional inside a task runtime, which supplies it",
77459
77666
  "name": "id",
77460
77667
  "required": false
77461
77668
  }
@@ -77490,17 +77697,20 @@
77490
77697
  "type": "option"
77491
77698
  },
77492
77699
  "task": {
77700
+ "description": "Task ID; overrides the runtime context and the positional",
77493
77701
  "name": "task",
77494
77702
  "hasDynamicHelp": false,
77495
77703
  "multiple": false,
77496
77704
  "type": "option"
77497
77705
  },
77498
77706
  "json": {
77707
+ "description": "Output the raw event list as JSON",
77499
77708
  "name": "json",
77500
77709
  "allowNo": false,
77501
77710
  "type": "boolean"
77502
77711
  },
77503
77712
  "limit": {
77713
+ "description": "Maximum events to return",
77504
77714
  "name": "limit",
77505
77715
  "default": 50,
77506
77716
  "hasDynamicHelp": false,
@@ -77508,27 +77718,50 @@
77508
77718
  "type": "option"
77509
77719
  },
77510
77720
  "cursor": {
77721
+ "description": "Continue a previous page, from its next_cursor",
77511
77722
  "name": "cursor",
77512
77723
  "hasDynamicHelp": false,
77513
77724
  "multiple": false,
77514
77725
  "type": "option"
77515
77726
  },
77516
77727
  "kind": {
77728
+ "description": "Show only events of this kind",
77517
77729
  "name": "kind",
77518
77730
  "hasDynamicHelp": false,
77519
77731
  "multiple": false,
77732
+ "options": [
77733
+ "started",
77734
+ "checkpoint",
77735
+ "changed",
77736
+ "evidence",
77737
+ "decision",
77738
+ "blocker",
77739
+ "input_requested",
77740
+ "handoff",
77741
+ "verification",
77742
+ "completed",
77743
+ "failed",
77744
+ "lifecycle"
77745
+ ],
77520
77746
  "type": "option"
77521
77747
  },
77522
77748
  "run": {
77749
+ "description": "Show only events from this execution run",
77523
77750
  "name": "run",
77524
77751
  "hasDynamicHelp": false,
77525
77752
  "multiple": false,
77526
77753
  "type": "option"
77527
77754
  },
77528
77755
  "actor": {
77756
+ "description": "Show only events from this actor kind",
77529
77757
  "name": "actor",
77530
77758
  "hasDynamicHelp": false,
77531
77759
  "multiple": false,
77760
+ "options": [
77761
+ "user",
77762
+ "agent",
77763
+ "system"
77764
+ ],
77532
77765
  "type": "option"
77533
77766
  }
77534
77767
  },
@@ -79231,7 +79464,96 @@
79231
79464
  "type": "boolean"
79232
79465
  },
79233
79466
  "all-in-space": {
79234
- "description": "Bulk mode: pin onto every task in this space instead of a single task (all positionals become skill ids)",
79467
+ "description": "Bulk mode: pin onto every task in this space instead of a single task (all positionals become skill ids)",
79468
+ "name": "all-in-space",
79469
+ "hasDynamicHelp": false,
79470
+ "multiple": false,
79471
+ "type": "option"
79472
+ },
79473
+ "status": {
79474
+ "dependsOn": [
79475
+ "all-in-space"
79476
+ ],
79477
+ "description": "Bulk mode only: comma-separated status filter (e.g. \"todo,backlog\") for --all-in-space",
79478
+ "name": "status",
79479
+ "hasDynamicHelp": false,
79480
+ "multiple": false,
79481
+ "type": "option"
79482
+ }
79483
+ },
79484
+ "hasDynamicHelp": false,
79485
+ "hiddenAliases": [],
79486
+ "id": "tasks:skills:pin",
79487
+ "pluginAlias": "@skrr-ai/cli",
79488
+ "pluginName": "@skrr-ai/cli",
79489
+ "pluginType": "core",
79490
+ "strict": false,
79491
+ "enableJsonFlag": false,
79492
+ "resolveSpaceFlag": true,
79493
+ "isESM": false,
79494
+ "relativePath": [
79495
+ "dist",
79496
+ "commands",
79497
+ "tasks",
79498
+ "skills",
79499
+ "pin.js"
79500
+ ]
79501
+ },
79502
+ "tasks:skills:unpin": {
79503
+ "aliases": [],
79504
+ "args": {
79505
+ "id": {
79506
+ "description": "Task ID",
79507
+ "name": "id",
79508
+ "required": false
79509
+ },
79510
+ "skillIds": {
79511
+ "description": "Skill ID(s) to unpin. Repeatable as positionals.",
79512
+ "name": "skillIds",
79513
+ "required": false
79514
+ }
79515
+ },
79516
+ "description": "Unpin one or more skills from a task",
79517
+ "examples": [
79518
+ "<%= config.bin %> tasks skills unpin <task-id> <skill-id>",
79519
+ "<%= config.bin %> tasks skills unpin <task-id> <skill-id-a> <skill-id-b>"
79520
+ ],
79521
+ "flags": {
79522
+ "bare": {
79523
+ "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
79524
+ "name": "bare",
79525
+ "allowNo": false,
79526
+ "type": "boolean"
79527
+ },
79528
+ "token": {
79529
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
79530
+ "name": "token",
79531
+ "hasDynamicHelp": false,
79532
+ "multiple": false,
79533
+ "type": "option"
79534
+ },
79535
+ "workspace": {
79536
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
79537
+ "name": "workspace",
79538
+ "hasDynamicHelp": false,
79539
+ "multiple": false,
79540
+ "type": "option"
79541
+ },
79542
+ "profile": {
79543
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
79544
+ "name": "profile",
79545
+ "hasDynamicHelp": false,
79546
+ "multiple": false,
79547
+ "type": "option"
79548
+ },
79549
+ "json": {
79550
+ "description": "Output the updated task as JSON",
79551
+ "name": "json",
79552
+ "allowNo": false,
79553
+ "type": "boolean"
79554
+ },
79555
+ "all-in-space": {
79556
+ "description": "Bulk mode: unpin from every task in this space instead of a single task (all positionals become skill ids)",
79235
79557
  "name": "all-in-space",
79236
79558
  "hasDynamicHelp": false,
79237
79559
  "multiple": false,
@@ -79250,7 +79572,7 @@
79250
79572
  },
79251
79573
  "hasDynamicHelp": false,
79252
79574
  "hiddenAliases": [],
79253
- "id": "tasks:skills:pin",
79575
+ "id": "tasks:skills:unpin",
79254
79576
  "pluginAlias": "@skrr-ai/cli",
79255
79577
  "pluginName": "@skrr-ai/cli",
79256
79578
  "pluginType": "core",
@@ -79263,27 +79585,22 @@
79263
79585
  "commands",
79264
79586
  "tasks",
79265
79587
  "skills",
79266
- "pin.js"
79588
+ "unpin.js"
79267
79589
  ]
79268
79590
  },
79269
- "tasks:skills:unpin": {
79591
+ "tasks:tags:add": {
79270
79592
  "aliases": [],
79271
79593
  "args": {
79272
79594
  "id": {
79273
79595
  "description": "Task ID",
79274
79596
  "name": "id",
79275
- "required": false
79276
- },
79277
- "skillIds": {
79278
- "description": "Skill ID(s) to unpin. Repeatable as positionals.",
79279
- "name": "skillIds",
79280
- "required": false
79597
+ "required": true
79281
79598
  }
79282
79599
  },
79283
- "description": "Unpin one or more skills from a task",
79600
+ "description": "Add one or more tags to a task (incremental, deduped)",
79284
79601
  "examples": [
79285
- "<%= config.bin %> tasks skills unpin <task-id> <skill-id>",
79286
- "<%= config.bin %> tasks skills unpin <task-id> <skill-id-a> <skill-id-b>"
79602
+ "<%= config.bin %> tasks tags add <task-id> --tag urgent",
79603
+ "<%= config.bin %> tasks tags add <task-id> --tag urgent --tag follow-up"
79287
79604
  ],
79288
79605
  "flags": {
79289
79606
  "bare": {
@@ -79319,31 +79636,97 @@
79319
79636
  "allowNo": false,
79320
79637
  "type": "boolean"
79321
79638
  },
79322
- "all-in-space": {
79323
- "description": "Bulk mode: unpin from every task in this space instead of a single task (all positionals become skill ids)",
79324
- "name": "all-in-space",
79639
+ "tag": {
79640
+ "description": "Tag to add (repeatable). Lowercased + deduped server-style.",
79641
+ "name": "tag",
79642
+ "required": true,
79643
+ "hasDynamicHelp": false,
79644
+ "multiple": true,
79645
+ "type": "option"
79646
+ }
79647
+ },
79648
+ "hasDynamicHelp": false,
79649
+ "hiddenAliases": [],
79650
+ "id": "tasks:tags:add",
79651
+ "pluginAlias": "@skrr-ai/cli",
79652
+ "pluginName": "@skrr-ai/cli",
79653
+ "pluginType": "core",
79654
+ "strict": true,
79655
+ "enableJsonFlag": false,
79656
+ "resolveSpaceFlag": true,
79657
+ "isESM": false,
79658
+ "relativePath": [
79659
+ "dist",
79660
+ "commands",
79661
+ "tasks",
79662
+ "tags",
79663
+ "add.js"
79664
+ ]
79665
+ },
79666
+ "tasks:tags:remove": {
79667
+ "aliases": [],
79668
+ "args": {
79669
+ "id": {
79670
+ "description": "Task ID",
79671
+ "name": "id",
79672
+ "required": true
79673
+ }
79674
+ },
79675
+ "description": "Remove one or more tags from a task (case-insensitive)",
79676
+ "examples": [
79677
+ "<%= config.bin %> tasks tags remove <task-id> --tag urgent",
79678
+ "<%= config.bin %> tasks tags remove <task-id> --tag urgent --tag follow-up"
79679
+ ],
79680
+ "flags": {
79681
+ "bare": {
79682
+ "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
79683
+ "name": "bare",
79684
+ "allowNo": false,
79685
+ "type": "boolean"
79686
+ },
79687
+ "token": {
79688
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
79689
+ "name": "token",
79325
79690
  "hasDynamicHelp": false,
79326
79691
  "multiple": false,
79327
79692
  "type": "option"
79328
79693
  },
79329
- "status": {
79330
- "dependsOn": [
79331
- "all-in-space"
79332
- ],
79333
- "description": "Bulk mode only: comma-separated status filter (e.g. \"todo,backlog\") for --all-in-space",
79334
- "name": "status",
79694
+ "workspace": {
79695
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
79696
+ "name": "workspace",
79697
+ "hasDynamicHelp": false,
79698
+ "multiple": false,
79699
+ "type": "option"
79700
+ },
79701
+ "profile": {
79702
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
79703
+ "name": "profile",
79335
79704
  "hasDynamicHelp": false,
79336
79705
  "multiple": false,
79337
79706
  "type": "option"
79707
+ },
79708
+ "json": {
79709
+ "description": "Output the updated task as JSON",
79710
+ "name": "json",
79711
+ "allowNo": false,
79712
+ "type": "boolean"
79713
+ },
79714
+ "tag": {
79715
+ "description": "Tag to remove (repeatable)",
79716
+ "name": "tag",
79717
+ "required": true,
79718
+ "hasDynamicHelp": false,
79719
+ "multiple": true,
79720
+ "type": "option"
79338
79721
  }
79339
79722
  },
79340
79723
  "hasDynamicHelp": false,
79341
79724
  "hiddenAliases": [],
79342
- "id": "tasks:skills:unpin",
79725
+ "id": "tasks:tags:remove",
79343
79726
  "pluginAlias": "@skrr-ai/cli",
79344
79727
  "pluginName": "@skrr-ai/cli",
79345
79728
  "pluginType": "core",
79346
- "strict": false,
79729
+ "strict": true,
79347
79730
  "enableJsonFlag": false,
79348
79731
  "resolveSpaceFlag": true,
79349
79732
  "isESM": false,
@@ -79351,8 +79734,8 @@
79351
79734
  "dist",
79352
79735
  "commands",
79353
79736
  "tasks",
79354
- "skills",
79355
- "unpin.js"
79737
+ "tags",
79738
+ "remove.js"
79356
79739
  ]
79357
79740
  },
79358
79741
  "tasks:templates:create": {
@@ -79888,156 +80271,6 @@
79888
80271
  "update.js"
79889
80272
  ]
79890
80273
  },
79891
- "tasks:tags:add": {
79892
- "aliases": [],
79893
- "args": {
79894
- "id": {
79895
- "description": "Task ID",
79896
- "name": "id",
79897
- "required": true
79898
- }
79899
- },
79900
- "description": "Add one or more tags to a task (incremental, deduped)",
79901
- "examples": [
79902
- "<%= config.bin %> tasks tags add <task-id> --tag urgent",
79903
- "<%= config.bin %> tasks tags add <task-id> --tag urgent --tag follow-up"
79904
- ],
79905
- "flags": {
79906
- "bare": {
79907
- "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
79908
- "name": "bare",
79909
- "allowNo": false,
79910
- "type": "boolean"
79911
- },
79912
- "token": {
79913
- "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
79914
- "name": "token",
79915
- "hasDynamicHelp": false,
79916
- "multiple": false,
79917
- "type": "option"
79918
- },
79919
- "workspace": {
79920
- "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
79921
- "name": "workspace",
79922
- "hasDynamicHelp": false,
79923
- "multiple": false,
79924
- "type": "option"
79925
- },
79926
- "profile": {
79927
- "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
79928
- "name": "profile",
79929
- "hasDynamicHelp": false,
79930
- "multiple": false,
79931
- "type": "option"
79932
- },
79933
- "json": {
79934
- "description": "Output the updated task as JSON",
79935
- "name": "json",
79936
- "allowNo": false,
79937
- "type": "boolean"
79938
- },
79939
- "tag": {
79940
- "description": "Tag to add (repeatable). Lowercased + deduped server-style.",
79941
- "name": "tag",
79942
- "required": true,
79943
- "hasDynamicHelp": false,
79944
- "multiple": true,
79945
- "type": "option"
79946
- }
79947
- },
79948
- "hasDynamicHelp": false,
79949
- "hiddenAliases": [],
79950
- "id": "tasks:tags:add",
79951
- "pluginAlias": "@skrr-ai/cli",
79952
- "pluginName": "@skrr-ai/cli",
79953
- "pluginType": "core",
79954
- "strict": true,
79955
- "enableJsonFlag": false,
79956
- "resolveSpaceFlag": true,
79957
- "isESM": false,
79958
- "relativePath": [
79959
- "dist",
79960
- "commands",
79961
- "tasks",
79962
- "tags",
79963
- "add.js"
79964
- ]
79965
- },
79966
- "tasks:tags:remove": {
79967
- "aliases": [],
79968
- "args": {
79969
- "id": {
79970
- "description": "Task ID",
79971
- "name": "id",
79972
- "required": true
79973
- }
79974
- },
79975
- "description": "Remove one or more tags from a task (case-insensitive)",
79976
- "examples": [
79977
- "<%= config.bin %> tasks tags remove <task-id> --tag urgent",
79978
- "<%= config.bin %> tasks tags remove <task-id> --tag urgent --tag follow-up"
79979
- ],
79980
- "flags": {
79981
- "bare": {
79982
- "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
79983
- "name": "bare",
79984
- "allowNo": false,
79985
- "type": "boolean"
79986
- },
79987
- "token": {
79988
- "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
79989
- "name": "token",
79990
- "hasDynamicHelp": false,
79991
- "multiple": false,
79992
- "type": "option"
79993
- },
79994
- "workspace": {
79995
- "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
79996
- "name": "workspace",
79997
- "hasDynamicHelp": false,
79998
- "multiple": false,
79999
- "type": "option"
80000
- },
80001
- "profile": {
80002
- "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE.",
80003
- "name": "profile",
80004
- "hasDynamicHelp": false,
80005
- "multiple": false,
80006
- "type": "option"
80007
- },
80008
- "json": {
80009
- "description": "Output the updated task as JSON",
80010
- "name": "json",
80011
- "allowNo": false,
80012
- "type": "boolean"
80013
- },
80014
- "tag": {
80015
- "description": "Tag to remove (repeatable)",
80016
- "name": "tag",
80017
- "required": true,
80018
- "hasDynamicHelp": false,
80019
- "multiple": true,
80020
- "type": "option"
80021
- }
80022
- },
80023
- "hasDynamicHelp": false,
80024
- "hiddenAliases": [],
80025
- "id": "tasks:tags:remove",
80026
- "pluginAlias": "@skrr-ai/cli",
80027
- "pluginName": "@skrr-ai/cli",
80028
- "pluginType": "core",
80029
- "strict": true,
80030
- "enableJsonFlag": false,
80031
- "resolveSpaceFlag": true,
80032
- "isESM": false,
80033
- "relativePath": [
80034
- "dist",
80035
- "commands",
80036
- "tasks",
80037
- "tags",
80038
- "remove.js"
80039
- ]
80040
- },
80041
80274
  "tasks:workflow:approve-merge": {
80042
80275
  "aliases": [],
80043
80276
  "args": {
@@ -82699,5 +82932,5 @@
82699
82932
  ]
82700
82933
  }
82701
82934
  },
82702
- "version": "0.1.10"
82935
+ "version": "0.1.12"
82703
82936
  }