@indigoai-us/hq-cli 5.345.191 → 5.345.194

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 (129) hide show
  1. package/CHANGELOG.md +431 -0
  2. package/assets/bot-workers/setup/worker.yaml +91 -34
  3. package/dist/command-catalog.generated.d.ts +145 -19
  4. package/dist/command-catalog.generated.js +184 -21
  5. package/dist/commands/bot-jobs.d.ts +21 -18
  6. package/dist/commands/bot-jobs.js +127 -39
  7. package/dist/commands/bot.d.ts +4 -3
  8. package/dist/commands/bot.js +265 -140
  9. package/dist/commands/core-jobs-schedule.js +10 -0
  10. package/dist/commands/daemon.js +37 -0
  11. package/dist/commands/files.d.ts +41 -6
  12. package/dist/commands/files.js +108 -27
  13. package/dist/commands/pack-start-bot.d.ts +4 -6
  14. package/dist/commands/pack-start-bot.js +4 -8
  15. package/dist/commands/signals-run.d.ts +46 -0
  16. package/dist/commands/signals-run.js +180 -0
  17. package/dist/commands/signals.d.ts +1 -0
  18. package/dist/commands/signals.js +3 -0
  19. package/dist/commands/sources.d.ts +58 -0
  20. package/dist/commands/sources.js +294 -26
  21. package/dist/commands/staff/reset-test-account.d.ts +10 -0
  22. package/dist/commands/staff/reset-test-account.js +18 -2
  23. package/dist/commands/whoami.d.ts +7 -0
  24. package/dist/commands/whoami.js +35 -2
  25. package/dist/hq-cloud-sync-runner/bin/sync-runner.js +31171 -52512
  26. package/dist/hq-cloud-sync-runner/package.json +1 -1
  27. package/dist/lib/bot/api.d.ts +3 -2
  28. package/dist/lib/bot/config.d.ts +2 -0
  29. package/dist/lib/bot/fleet-cron.d.ts +121 -0
  30. package/dist/lib/bot/fleet-cron.js +319 -0
  31. package/dist/lib/bot/fleet-local.d.ts +93 -1
  32. package/dist/lib/bot/fleet-local.js +546 -34
  33. package/dist/lib/bot/fleet-owner-companies.d.ts +12 -0
  34. package/dist/lib/bot/fleet-owner-companies.js +30 -0
  35. package/dist/lib/bot/fleet-watch.d.ts +25 -0
  36. package/dist/lib/bot/fleet-watch.js +51 -0
  37. package/dist/lib/bot/index.d.ts +1 -1
  38. package/dist/lib/bot/index.js +1 -1
  39. package/dist/lib/bot/job-run.d.ts +5 -4
  40. package/dist/lib/bot/job-run.js +5 -4
  41. package/dist/lib/bot/jobs/hot-signal-sync.d.ts +57 -3
  42. package/dist/lib/bot/jobs/hot-signal-sync.js +163 -4
  43. package/dist/lib/bot/local-jobs.d.ts +13 -2
  44. package/dist/lib/bot/local-jobs.js +17 -4
  45. package/dist/lib/bot/progress.d.ts +14 -0
  46. package/dist/lib/bot/progress.js +47 -1
  47. package/dist/lib/bot/run.d.ts +55 -2
  48. package/dist/lib/bot/run.js +192 -10
  49. package/dist/lib/bot/setup-tool-offer.d.ts +1 -0
  50. package/dist/lib/bot/setup-tool-offer.js +16 -0
  51. package/dist/lib/bot/signals-engine-flag.d.ts +18 -0
  52. package/dist/lib/bot/signals-engine-flag.js +30 -0
  53. package/dist/lib/daemon/catalog.d.ts +4 -0
  54. package/dist/lib/daemon/catalog.js +29 -9
  55. package/dist/lib/daemon/legacy.d.ts +6 -0
  56. package/dist/lib/daemon/legacy.js +16 -10
  57. package/dist/lib/daemon/run.d.ts +1 -0
  58. package/dist/lib/daemon/run.js +10 -0
  59. package/dist/lib/flag-registry-worker-source.generated.d.ts +1 -1
  60. package/dist/lib/flag-registry-worker-source.generated.js +1 -1
  61. package/dist/lib/flag-registry.d.ts +13 -1
  62. package/dist/lib/flag-registry.js +46 -0
  63. package/dist/lib/hot-channels/adapters/attio.d.ts +75 -2
  64. package/dist/lib/hot-channels/adapters/attio.js +367 -29
  65. package/dist/lib/hot-channels/adapters/gmail.d.ts +14 -0
  66. package/dist/lib/hot-channels/adapters/gmail.js +59 -2
  67. package/dist/lib/hot-channels/adapters/linear.d.ts +24 -0
  68. package/dist/lib/hot-channels/adapters/linear.js +71 -1
  69. package/dist/lib/hot-channels/adapters/meetings.js +4 -1
  70. package/dist/lib/hot-channels/adapters/slack.js +7 -3
  71. package/dist/lib/hot-channels/alert.js +1 -1
  72. package/dist/lib/hot-channels/contract.d.ts +11 -0
  73. package/dist/lib/hot-channels/contract.js +1 -0
  74. package/dist/lib/hot-channels/cursors.js +1 -1
  75. package/dist/lib/hot-channels/landing.d.ts +6 -2
  76. package/dist/lib/hot-channels/landing.js +13 -6
  77. package/dist/lib/hot-channels/ledger.js +2 -0
  78. package/dist/lib/hot-channels/loop.d.ts +6 -0
  79. package/dist/lib/hot-channels/loop.js +19 -4
  80. package/dist/lib/hot-channels/registry.js +9 -1
  81. package/dist/lib/hot-channels/run.d.ts +18 -0
  82. package/dist/lib/hot-channels/run.js +15 -4
  83. package/dist/lib/hot-channels/signals-pass.d.ts +34 -2
  84. package/dist/lib/hot-channels/signals-pass.js +149 -38
  85. package/dist/lib/hot-channels/signals-redo.d.ts +60 -0
  86. package/dist/lib/hot-channels/signals-redo.js +207 -0
  87. package/dist/lib/hot-channels/sync-lock.js +22 -6
  88. package/dist/lib/mesh/live/daemon/install.d.ts +22 -0
  89. package/dist/lib/mesh/live/daemon/install.js +117 -30
  90. package/dist/lib/signals/adapters-catalog.d.ts +77 -0
  91. package/dist/lib/signals/adapters-catalog.js +194 -0
  92. package/dist/lib/signals/engine.d.ts +202 -0
  93. package/dist/lib/signals/engine.js +504 -0
  94. package/dist/lib/signals/failure-alert.d.ts +89 -0
  95. package/dist/lib/signals/failure-alert.js +175 -0
  96. package/dist/lib/signals/local-date.d.ts +3 -0
  97. package/dist/lib/signals/local-date.js +6 -0
  98. package/dist/lib/signals/projection.d.ts +42 -0
  99. package/dist/lib/signals/projection.js +67 -0
  100. package/dist/lib/signals/reply.d.ts +112 -0
  101. package/dist/lib/signals/reply.js +368 -0
  102. package/dist/lib/signals/run-lock.d.ts +36 -0
  103. package/dist/lib/signals/run-lock.js +148 -0
  104. package/dist/lib/signals/run-record.d.ts +24 -0
  105. package/dist/lib/signals/run-record.js +82 -0
  106. package/dist/lib/signals/sanitize.d.ts +105 -0
  107. package/dist/lib/signals/sanitize.js +439 -0
  108. package/dist/lib/signals/settings.d.ts +10 -0
  109. package/dist/lib/signals/settings.js +48 -0
  110. package/dist/lib/signals/steps/adapters.d.ts +14 -0
  111. package/dist/lib/signals/steps/adapters.js +156 -0
  112. package/dist/lib/signals/steps/entity-similarity.d.ts +10 -0
  113. package/dist/lib/signals/steps/entity-similarity.js +47 -0
  114. package/dist/lib/signals/steps/extract.d.ts +118 -0
  115. package/dist/lib/signals/steps/extract.js +793 -0
  116. package/dist/lib/signals/steps/garden.d.ts +24 -0
  117. package/dist/lib/signals/steps/garden.js +250 -0
  118. package/dist/lib/signals/steps/types.d.ts +117 -0
  119. package/dist/lib/signals/steps/types.js +4 -0
  120. package/dist/lib/signals/steps/upload.d.ts +43 -0
  121. package/dist/lib/signals/steps/upload.js +324 -0
  122. package/dist/lib/signals/write-guard.d.ts +63 -0
  123. package/dist/lib/signals/write-guard.js +287 -0
  124. package/dist/utils/resident-package-preload.js +16 -0
  125. package/dist/utils/vault-api.d.ts +1 -0
  126. package/dist/utils/vault-api.js +1 -1
  127. package/package.json +9 -9
  128. package/dist/lib/bot/fleet-default-flag.d.ts +0 -31
  129. package/dist/lib/bot/fleet-default-flag.js +0 -127
@@ -3245,7 +3245,7 @@ export declare const COMMAND_CATALOG: readonly [{
3245
3245
  readonly subcommands: readonly [];
3246
3246
  }, {
3247
3247
  readonly name: "purge";
3248
- readonly description: "Permanently delete ONE retained (noncurrent) version of an exact vault key, for example a version that held data which must not live in HQ. Owner only; audited; cannot be undone. Delete the file first if the version is current. Use --personal for your personal vault.";
3248
+ readonly description: "Schedule permanent deletion of ONE retained (noncurrent) version of an exact vault key, for example a version that held data which must not live in HQ. The version is deleted 7 days later and can be cancelled until then with --cancel. Owner only; audited. Delete the file first if the version is current. Use --personal for your personal vault.";
3249
3249
  readonly aliases: readonly [];
3250
3250
  readonly hidden: false;
3251
3251
  readonly helpOption: true;
@@ -3266,6 +3266,10 @@ export declare const COMMAND_CATALOG: readonly [{
3266
3266
  readonly flags: "--version-id <id>";
3267
3267
  readonly description: "Exact version ID to purge (see `hq files versions`)";
3268
3268
  readonly hidden: false;
3269
+ }, {
3270
+ readonly flags: "--cancel";
3271
+ readonly description: "Cancel a scheduled purge of this version instead of scheduling one";
3272
+ readonly hidden: false;
3269
3273
  }, {
3270
3274
  readonly flags: "-y, --yes";
3271
3275
  readonly description: "Skip the confirmation prompt (for scripts)";
@@ -5331,6 +5335,51 @@ export declare const COMMAND_CATALOG: readonly [{
5331
5335
  readonly defaultValue: "<runtime-path>";
5332
5336
  }];
5333
5337
  readonly subcommands: readonly [];
5338
+ }, {
5339
+ readonly name: "signals";
5340
+ readonly description: "Process landed sources for signals again: queue them for the signals pass and run it now (the pass's document cap still applies)";
5341
+ readonly aliases: readonly [];
5342
+ readonly hidden: false;
5343
+ readonly helpOption: true;
5344
+ readonly helpCommand: false;
5345
+ readonly usage: "[options]";
5346
+ readonly helpText: readonly [];
5347
+ readonly arguments: readonly [];
5348
+ readonly options: readonly [{
5349
+ readonly flags: "--company <slug>";
5350
+ readonly description: "Company slug (defaults to .hq/config.json activeCompany)";
5351
+ readonly hidden: false;
5352
+ }, {
5353
+ readonly flags: "--since <date>";
5354
+ readonly description: "Landed documents from this date on (YYYY-MM-DD is local midnight) that have no signals yet";
5355
+ readonly hidden: false;
5356
+ }, {
5357
+ readonly flags: "--key <key>";
5358
+ readonly description: "A landed document to process again, signals or not (sources/<channel>/<id>.md; repeatable)";
5359
+ readonly hidden: false;
5360
+ }, {
5361
+ readonly flags: "--channel <channel>";
5362
+ readonly description: "Limit --since to one channel";
5363
+ readonly hidden: false;
5364
+ }, {
5365
+ readonly flags: "--max-docs <n>";
5366
+ readonly description: "Documents sent to claude in this run (default 20)";
5367
+ readonly hidden: false;
5368
+ }, {
5369
+ readonly flags: "--dry-run";
5370
+ readonly description: "Print what would be queued; queue nothing and call no model";
5371
+ readonly hidden: false;
5372
+ }, {
5373
+ readonly flags: "--json";
5374
+ readonly description: "Print the report as JSON";
5375
+ readonly hidden: false;
5376
+ }, {
5377
+ readonly flags: "--hq-root <path>";
5378
+ readonly description: "Local HQ tree root (default: <runtime-path>)";
5379
+ readonly hidden: false;
5380
+ readonly defaultValue: "<runtime-path>";
5381
+ }];
5382
+ readonly subcommands: readonly [];
5334
5383
  }, {
5335
5384
  readonly name: "sync";
5336
5385
  readonly description: "Run every hot channel now: each adapter once per connection you can use";
@@ -5482,6 +5531,71 @@ export declare const COMMAND_CATALOG: readonly [{
5482
5531
  readonly hidden: false;
5483
5532
  }];
5484
5533
  readonly subcommands: readonly [];
5534
+ }, {
5535
+ readonly name: "run";
5536
+ readonly description: "Run the local signals engine (garden, adapters, extract, garden, upload) for companies with capture on";
5537
+ readonly aliases: readonly [];
5538
+ readonly hidden: false;
5539
+ readonly helpOption: true;
5540
+ readonly helpCommand: false;
5541
+ readonly usage: "[options]";
5542
+ readonly helpText: readonly [];
5543
+ readonly arguments: readonly [];
5544
+ readonly options: readonly [{
5545
+ readonly flags: "--company <slug>";
5546
+ readonly description: "Run one company (default: every company listed in the companies manifest)";
5547
+ readonly hidden: false;
5548
+ }, {
5549
+ readonly flags: "--dry-run";
5550
+ readonly description: "Print what would run; run no mutating step and write nothing";
5551
+ readonly hidden: false;
5552
+ }, {
5553
+ readonly flags: "--step <step>";
5554
+ readonly description: "Run one step";
5555
+ readonly hidden: false;
5556
+ readonly choices: readonly ["garden", "extract", "adapters", "upload", "all"];
5557
+ readonly defaultValue: "all";
5558
+ }, {
5559
+ readonly flags: "--trigger <trigger>";
5560
+ readonly description: "What started the run";
5561
+ readonly hidden: false;
5562
+ readonly choices: readonly ["job", "chat", "manual", "brief"];
5563
+ readonly defaultValue: "manual";
5564
+ }, {
5565
+ readonly flags: "--force";
5566
+ readonly description: "Rerun a job trigger that already ran today";
5567
+ readonly hidden: false;
5568
+ }, {
5569
+ readonly flags: "--catch-up";
5570
+ readonly description: "Mark the run as a catch-up run (also HQ_SIGNALS_CATCH_UP=1)";
5571
+ readonly hidden: false;
5572
+ }, {
5573
+ readonly flags: "--max-turns <n>";
5574
+ readonly description: "Model turn cap for the extract step (default from core/settings/signals.yaml, else 40)";
5575
+ readonly hidden: false;
5576
+ }, {
5577
+ readonly flags: "--max-budget-usd <x>";
5578
+ readonly description: "Spend cap in USD for the extract step (default from core/settings/signals.yaml, else 2.00)";
5579
+ readonly hidden: false;
5580
+ }, {
5581
+ readonly flags: "--json";
5582
+ readonly description: "Print the run record as JSON";
5583
+ readonly hidden: false;
5584
+ }, {
5585
+ readonly flags: "--report-found";
5586
+ readonly description: "Print the owner's run reply only when the run found new signals; print nothing otherwise";
5587
+ readonly hidden: false;
5588
+ }, {
5589
+ readonly flags: "--redo <file>";
5590
+ readonly description: "Process a source item again (sources/<channel>/<file>.md; repeatable; needs --company): the extract step re-queues it in the ontology worklist before listing";
5591
+ readonly hidden: false;
5592
+ }, {
5593
+ readonly flags: "--hq-root <path>";
5594
+ readonly description: "HQ root (default: <runtime-path>)";
5595
+ readonly hidden: false;
5596
+ readonly defaultValue: "<runtime-path>";
5597
+ }];
5598
+ readonly subcommands: readonly [];
5485
5599
  }];
5486
5600
  }, {
5487
5601
  readonly name: "integrations";
@@ -8277,7 +8391,7 @@ export declare const COMMAND_CATALOG: readonly [{
8277
8391
  readonly subcommands: readonly [];
8278
8392
  }, {
8279
8393
  readonly name: "provision";
8280
- readonly description: "Provision a new Outpost ($80/month — requires --yes)";
8394
+ readonly description: "Provision a new Outpost (priced by size: small, medium, large or xlarge; requires --yes)";
8281
8395
  readonly aliases: readonly ["create"];
8282
8396
  readonly hidden: false;
8283
8397
  readonly helpOption: true;
@@ -8286,6 +8400,10 @@ export declare const COMMAND_CATALOG: readonly [{
8286
8400
  readonly helpText: readonly [];
8287
8401
  readonly arguments: readonly [];
8288
8402
  readonly options: readonly [{
8403
+ readonly flags: "--size <size>";
8404
+ readonly description: "Outpost size: small | medium | large | xlarge. Without it, a terminal shows a menu with prices; the default is $100/month";
8405
+ readonly hidden: false;
8406
+ }, {
8289
8407
  readonly flags: "--runtime <runtime>";
8290
8408
  readonly description: "Agent runtime: claude | codex (default claude). Personal boxes only.";
8291
8409
  readonly hidden: false;
@@ -8307,7 +8425,7 @@ export declare const COMMAND_CATALOG: readonly [{
8307
8425
  readonly hidden: false;
8308
8426
  }, {
8309
8427
  readonly flags: "--yes";
8310
- readonly description: "Confirm the monthly charge (required to provision or create)";
8428
+ readonly description: "Confirm the monthly charge for the chosen size (required to provision or create)";
8311
8429
  readonly hidden: false;
8312
8430
  }, {
8313
8431
  readonly flags: "--json";
@@ -18637,6 +18755,18 @@ export declare const COMMAND_CATALOG: readonly [{
18637
18755
  readonly arguments: readonly [];
18638
18756
  readonly options: readonly [];
18639
18757
  readonly subcommands: readonly [];
18758
+ }, {
18759
+ readonly name: "fleet-bots-update";
18760
+ readonly description: "Move each installed HQ Fleet bot to the current runtime release while it is idle, and restart it";
18761
+ readonly aliases: readonly [];
18762
+ readonly hidden: false;
18763
+ readonly helpOption: true;
18764
+ readonly helpCommand: false;
18765
+ readonly usage: "[options]";
18766
+ readonly helpText: readonly [];
18767
+ readonly arguments: readonly [];
18768
+ readonly options: readonly [];
18769
+ readonly subcommands: readonly [];
18640
18770
  }, {
18641
18771
  readonly name: "sync-core-reconcile";
18642
18772
  readonly description: "Read each company's new-sync-engine switch and write this machine's engine homes and legacy off-switches";
@@ -19015,31 +19145,27 @@ export declare const COMMAND_CATALOG: readonly [{
19015
19145
  readonly defaultValue: readonly [];
19016
19146
  }, {
19017
19147
  readonly flags: "--runtime <runtime>";
19018
- readonly description: "Model CLI to run the bot with: claude|codex|grok";
19148
+ readonly description: "Model provider the bot answers with: claude|codex|grok (same as --provider; default claude)";
19019
19149
  readonly hidden: false;
19020
19150
  }, {
19021
19151
  readonly flags: "--provider <provider>";
19022
- readonly description: "HQ Fleet provider: claude|codex|grok (interactive Fleet creation prompts when omitted)";
19152
+ readonly description: "HQ Fleet provider: claude|codex|grok (default claude)";
19023
19153
  readonly hidden: false;
19024
19154
  }, {
19025
19155
  readonly flags: "--hq-fleet-runtime";
19026
- readonly description: "Create this personal bot with the local HQ Fleet Runtime";
19156
+ readonly description: "Accepted for compatibility; every new bot runs on the HQ Fleet Runtime";
19027
19157
  readonly hidden: false;
19028
19158
  }, {
19029
19159
  readonly flags: "--legacy-runtime";
19030
- readonly description: "Run this bot with the model CLI even where the HQ Fleet Runtime is the default";
19160
+ readonly description: "No longer supported; new bots always run on the HQ Fleet Runtime";
19031
19161
  readonly hidden: false;
19032
19162
  }, {
19033
19163
  readonly flags: "--model <model>";
19034
- readonly description: "Model override passed to the runtime CLI";
19035
- readonly hidden: false;
19036
- }, {
19037
- readonly flags: "--effort <level>";
19038
- readonly description: "Thinking level: claude low|medium|high|xhigh|max; codex minimal|low|medium|high|xhigh; grok low|medium|high|xhigh (default medium)";
19164
+ readonly description: "Model the bot answers with";
19039
19165
  readonly hidden: false;
19040
19166
  }, {
19041
- readonly flags: "--no-auto-approve";
19042
- readonly description: "Keep the runtime's permission gates (default: everything pre-approved; a headless bot cannot answer prompts)";
19167
+ readonly flags: "--auto-approve";
19168
+ readonly description: "Turn the runtime's command approval prompts off for every sender (default: prompts stay on; the owner's own turns are always allowed)";
19043
19169
  readonly hidden: false;
19044
19170
  }, {
19045
19171
  readonly flags: "--worker <workerId>";
@@ -19062,13 +19188,9 @@ export declare const COMMAND_CATALOG: readonly [{
19062
19188
  readonly description: "Where the bot keeps its memory: synced (personal/workers/<name>/memory in HQ) or local (~/.hq/bots/<name>/memory, this computer only)";
19063
19189
  readonly hidden: false;
19064
19190
  readonly defaultValue: "synced";
19065
- }, {
19066
- readonly flags: "--lean";
19067
- readonly description: "Claude bots: run each turn without this computer's plugins, MCP servers and HQ's session hooks (HQ's tool hooks still run), so replies take seconds";
19068
- readonly hidden: false;
19069
19191
  }, {
19070
19192
  readonly flags: "--no-daemon";
19071
- readonly description: "Do not install the launchd agent (macOS)";
19193
+ readonly description: "Accepted for compatibility; HQ Fleet bots run under their own background service";
19072
19194
  readonly hidden: false;
19073
19195
  }, {
19074
19196
  readonly flags: "--no-start";
@@ -20430,6 +20552,10 @@ export declare const COMMAND_CATALOG: readonly [{
20430
20552
  readonly flags: "-y, --yes";
20431
20553
  readonly description: "Skip the typed-email confirmation prompt (still sends confirmEmail).";
20432
20554
  readonly hidden: false;
20555
+ }, {
20556
+ readonly flags: "--handoff-shared-companies";
20557
+ readonly description: "Keep a company with real members and hand it to one, instead of refusing the reset.";
20558
+ readonly hidden: false;
20433
20559
  }];
20434
20560
  readonly subcommands: readonly [];
20435
20561
  }, {
@@ -3914,7 +3914,7 @@ export const COMMAND_CATALOG = [
3914
3914
  },
3915
3915
  {
3916
3916
  "name": "purge",
3917
- "description": "Permanently delete ONE retained (noncurrent) version of an exact vault key, for example a version that held data which must not live in HQ. Owner only; audited; cannot be undone. Delete the file first if the version is current. Use --personal for your personal vault.",
3917
+ "description": "Schedule permanent deletion of ONE retained (noncurrent) version of an exact vault key, for example a version that held data which must not live in HQ. The version is deleted 7 days later and can be cancelled until then with --cancel. Owner only; audited. Delete the file first if the version is current. Use --personal for your personal vault.",
3918
3918
  "aliases": [],
3919
3919
  "hidden": false,
3920
3920
  "helpOption": true,
@@ -3940,6 +3940,11 @@ export const COMMAND_CATALOG = [
3940
3940
  "description": "Exact version ID to purge (see `hq files versions`)",
3941
3941
  "hidden": false
3942
3942
  },
3943
+ {
3944
+ "flags": "--cancel",
3945
+ "description": "Cancel a scheduled purge of this version instead of scheduling one",
3946
+ "hidden": false
3947
+ },
3943
3948
  {
3944
3949
  "flags": "-y, --yes",
3945
3950
  "description": "Skip the confirmation prompt (for scripts)",
@@ -6466,6 +6471,61 @@ export const COMMAND_CATALOG = [
6466
6471
  ],
6467
6472
  "subcommands": []
6468
6473
  },
6474
+ {
6475
+ "name": "signals",
6476
+ "description": "Process landed sources for signals again: queue them for the signals pass and run it now (the pass's document cap still applies)",
6477
+ "aliases": [],
6478
+ "hidden": false,
6479
+ "helpOption": true,
6480
+ "helpCommand": false,
6481
+ "usage": "[options]",
6482
+ "helpText": [],
6483
+ "arguments": [],
6484
+ "options": [
6485
+ {
6486
+ "flags": "--company <slug>",
6487
+ "description": "Company slug (defaults to .hq/config.json activeCompany)",
6488
+ "hidden": false
6489
+ },
6490
+ {
6491
+ "flags": "--since <date>",
6492
+ "description": "Landed documents from this date on (YYYY-MM-DD is local midnight) that have no signals yet",
6493
+ "hidden": false
6494
+ },
6495
+ {
6496
+ "flags": "--key <key>",
6497
+ "description": "A landed document to process again, signals or not (sources/<channel>/<id>.md; repeatable)",
6498
+ "hidden": false
6499
+ },
6500
+ {
6501
+ "flags": "--channel <channel>",
6502
+ "description": "Limit --since to one channel",
6503
+ "hidden": false
6504
+ },
6505
+ {
6506
+ "flags": "--max-docs <n>",
6507
+ "description": "Documents sent to claude in this run (default 20)",
6508
+ "hidden": false
6509
+ },
6510
+ {
6511
+ "flags": "--dry-run",
6512
+ "description": "Print what would be queued; queue nothing and call no model",
6513
+ "hidden": false
6514
+ },
6515
+ {
6516
+ "flags": "--json",
6517
+ "description": "Print the report as JSON",
6518
+ "hidden": false
6519
+ },
6520
+ {
6521
+ "flags": "--hq-root <path>",
6522
+ "description": "Local HQ tree root (default: <runtime-path>)",
6523
+ "hidden": false,
6524
+ "defaultValue": "<runtime-path>"
6525
+ }
6526
+ ],
6527
+ "subcommands": []
6528
+ },
6469
6529
  {
6470
6530
  "name": "sync",
6471
6531
  "description": "Run every hot channel now: each adapter once per connection you can use",
@@ -6646,6 +6706,96 @@ export const COMMAND_CATALOG = [
6646
6706
  }
6647
6707
  ],
6648
6708
  "subcommands": []
6709
+ },
6710
+ {
6711
+ "name": "run",
6712
+ "description": "Run the local signals engine (garden, adapters, extract, garden, upload) for companies with capture on",
6713
+ "aliases": [],
6714
+ "hidden": false,
6715
+ "helpOption": true,
6716
+ "helpCommand": false,
6717
+ "usage": "[options]",
6718
+ "helpText": [],
6719
+ "arguments": [],
6720
+ "options": [
6721
+ {
6722
+ "flags": "--company <slug>",
6723
+ "description": "Run one company (default: every company listed in the companies manifest)",
6724
+ "hidden": false
6725
+ },
6726
+ {
6727
+ "flags": "--dry-run",
6728
+ "description": "Print what would run; run no mutating step and write nothing",
6729
+ "hidden": false
6730
+ },
6731
+ {
6732
+ "flags": "--step <step>",
6733
+ "description": "Run one step",
6734
+ "hidden": false,
6735
+ "choices": [
6736
+ "garden",
6737
+ "extract",
6738
+ "adapters",
6739
+ "upload",
6740
+ "all"
6741
+ ],
6742
+ "defaultValue": "all"
6743
+ },
6744
+ {
6745
+ "flags": "--trigger <trigger>",
6746
+ "description": "What started the run",
6747
+ "hidden": false,
6748
+ "choices": [
6749
+ "job",
6750
+ "chat",
6751
+ "manual",
6752
+ "brief"
6753
+ ],
6754
+ "defaultValue": "manual"
6755
+ },
6756
+ {
6757
+ "flags": "--force",
6758
+ "description": "Rerun a job trigger that already ran today",
6759
+ "hidden": false
6760
+ },
6761
+ {
6762
+ "flags": "--catch-up",
6763
+ "description": "Mark the run as a catch-up run (also HQ_SIGNALS_CATCH_UP=1)",
6764
+ "hidden": false
6765
+ },
6766
+ {
6767
+ "flags": "--max-turns <n>",
6768
+ "description": "Model turn cap for the extract step (default from core/settings/signals.yaml, else 40)",
6769
+ "hidden": false
6770
+ },
6771
+ {
6772
+ "flags": "--max-budget-usd <x>",
6773
+ "description": "Spend cap in USD for the extract step (default from core/settings/signals.yaml, else 2.00)",
6774
+ "hidden": false
6775
+ },
6776
+ {
6777
+ "flags": "--json",
6778
+ "description": "Print the run record as JSON",
6779
+ "hidden": false
6780
+ },
6781
+ {
6782
+ "flags": "--report-found",
6783
+ "description": "Print the owner's run reply only when the run found new signals; print nothing otherwise",
6784
+ "hidden": false
6785
+ },
6786
+ {
6787
+ "flags": "--redo <file>",
6788
+ "description": "Process a source item again (sources/<channel>/<file>.md; repeatable; needs --company): the extract step re-queues it in the ontology worklist before listing",
6789
+ "hidden": false
6790
+ },
6791
+ {
6792
+ "flags": "--hq-root <path>",
6793
+ "description": "HQ root (default: <runtime-path>)",
6794
+ "hidden": false,
6795
+ "defaultValue": "<runtime-path>"
6796
+ }
6797
+ ],
6798
+ "subcommands": []
6649
6799
  }
6650
6800
  ]
6651
6801
  },
@@ -10092,7 +10242,7 @@ export const COMMAND_CATALOG = [
10092
10242
  },
10093
10243
  {
10094
10244
  "name": "provision",
10095
- "description": "Provision a new Outpost ($80/month — requires --yes)",
10245
+ "description": "Provision a new Outpost (priced by size: small, medium, large or xlarge; requires --yes)",
10096
10246
  "aliases": [
10097
10247
  "create"
10098
10248
  ],
@@ -10103,6 +10253,11 @@ export const COMMAND_CATALOG = [
10103
10253
  "helpText": [],
10104
10254
  "arguments": [],
10105
10255
  "options": [
10256
+ {
10257
+ "flags": "--size <size>",
10258
+ "description": "Outpost size: small | medium | large | xlarge. Without it, a terminal shows a menu with prices; the default is $100/month",
10259
+ "hidden": false
10260
+ },
10106
10261
  {
10107
10262
  "flags": "--runtime <runtime>",
10108
10263
  "description": "Agent runtime: claude | codex (default claude). Personal boxes only.",
@@ -10130,7 +10285,7 @@ export const COMMAND_CATALOG = [
10130
10285
  },
10131
10286
  {
10132
10287
  "flags": "--yes",
10133
- "description": "Confirm the monthly charge (required to provision or create)",
10288
+ "description": "Confirm the monthly charge for the chosen size (required to provision or create)",
10134
10289
  "hidden": false
10135
10290
  },
10136
10291
  {
@@ -22712,6 +22867,19 @@ export const COMMAND_CATALOG = [
22712
22867
  "options": [],
22713
22868
  "subcommands": []
22714
22869
  },
22870
+ {
22871
+ "name": "fleet-bots-update",
22872
+ "description": "Move each installed HQ Fleet bot to the current runtime release while it is idle, and restart it",
22873
+ "aliases": [],
22874
+ "hidden": false,
22875
+ "helpOption": true,
22876
+ "helpCommand": false,
22877
+ "usage": "[options]",
22878
+ "helpText": [],
22879
+ "arguments": [],
22880
+ "options": [],
22881
+ "subcommands": []
22882
+ },
22715
22883
  {
22716
22884
  "name": "sync-core-reconcile",
22717
22885
  "description": "Read each company's new-sync-engine switch and write this machine's engine homes and legacy off-switches",
@@ -23171,37 +23339,32 @@ export const COMMAND_CATALOG = [
23171
23339
  },
23172
23340
  {
23173
23341
  "flags": "--runtime <runtime>",
23174
- "description": "Model CLI to run the bot with: claude|codex|grok",
23342
+ "description": "Model provider the bot answers with: claude|codex|grok (same as --provider; default claude)",
23175
23343
  "hidden": false
23176
23344
  },
23177
23345
  {
23178
23346
  "flags": "--provider <provider>",
23179
- "description": "HQ Fleet provider: claude|codex|grok (interactive Fleet creation prompts when omitted)",
23347
+ "description": "HQ Fleet provider: claude|codex|grok (default claude)",
23180
23348
  "hidden": false
23181
23349
  },
23182
23350
  {
23183
23351
  "flags": "--hq-fleet-runtime",
23184
- "description": "Create this personal bot with the local HQ Fleet Runtime",
23352
+ "description": "Accepted for compatibility; every new bot runs on the HQ Fleet Runtime",
23185
23353
  "hidden": false
23186
23354
  },
23187
23355
  {
23188
23356
  "flags": "--legacy-runtime",
23189
- "description": "Run this bot with the model CLI even where the HQ Fleet Runtime is the default",
23357
+ "description": "No longer supported; new bots always run on the HQ Fleet Runtime",
23190
23358
  "hidden": false
23191
23359
  },
23192
23360
  {
23193
23361
  "flags": "--model <model>",
23194
- "description": "Model override passed to the runtime CLI",
23195
- "hidden": false
23196
- },
23197
- {
23198
- "flags": "--effort <level>",
23199
- "description": "Thinking level: claude low|medium|high|xhigh|max; codex minimal|low|medium|high|xhigh; grok low|medium|high|xhigh (default medium)",
23362
+ "description": "Model the bot answers with",
23200
23363
  "hidden": false
23201
23364
  },
23202
23365
  {
23203
- "flags": "--no-auto-approve",
23204
- "description": "Keep the runtime's permission gates (default: everything pre-approved; a headless bot cannot answer prompts)",
23366
+ "flags": "--auto-approve",
23367
+ "description": "Turn the runtime's command approval prompts off for every sender (default: prompts stay on; the owner's own turns are always allowed)",
23205
23368
  "hidden": false
23206
23369
  },
23207
23370
  {
@@ -23230,14 +23393,9 @@ export const COMMAND_CATALOG = [
23230
23393
  "hidden": false,
23231
23394
  "defaultValue": "synced"
23232
23395
  },
23233
- {
23234
- "flags": "--lean",
23235
- "description": "Claude bots: run each turn without this computer's plugins, MCP servers and HQ's session hooks (HQ's tool hooks still run), so replies take seconds",
23236
- "hidden": false
23237
- },
23238
23396
  {
23239
23397
  "flags": "--no-daemon",
23240
- "description": "Do not install the launchd agent (macOS)",
23398
+ "description": "Accepted for compatibility; HQ Fleet bots run under their own background service",
23241
23399
  "hidden": false
23242
23400
  },
23243
23401
  {
@@ -24913,6 +25071,11 @@ export const COMMAND_CATALOG = [
24913
25071
  "flags": "-y, --yes",
24914
25072
  "description": "Skip the typed-email confirmation prompt (still sends confirmEmail).",
24915
25073
  "hidden": false
25074
+ },
25075
+ {
25076
+ "flags": "--handoff-shared-companies",
25077
+ "description": "Keep a company with real members and hand it to one, instead of refusing the reset.",
25078
+ "hidden": false
24916
25079
  }
24917
25080
  ],
24918
25081
  "subcommands": []
@@ -10,13 +10,16 @@
10
10
  * The schedule lives with the bot: its jobs sit in the bot's own folder
11
11
  * (lib/bot/local-jobs.ts) and the bot's inbox loop fires them while it runs
12
12
  * (see lib/bot/job-run.ts). Nothing here writes a crontab, a launchd plist, or
13
- * a systemd unit — by rule. Schedules are still written in the EventBridge form
14
- * and held to the same limits, so a job reads the same wherever it runs.
13
+ * a systemd unit — by rule. A schedule is stored as a six-field
14
+ * `cron(m h dom mon dow year)` string (Sunday = 1, `?` in one day field), the
15
+ * same string format hosted agent jobs use, and lib/bot/local-jobs.ts reads it
16
+ * back when it checks what is due.
15
17
  */
16
18
  import type { Command } from "commander";
17
19
  import { type LocalJobsApi } from "../lib/bot/local-jobs.js";
18
20
  import { type BotJobRecord, type CreateJobInput } from "../lib/bot/api.js";
19
21
  import { type BotConfig, type BotKind } from "../lib/bot/config.js";
22
+ import { type FleetCronJob, type FleetCronOps } from "../lib/bot/fleet-cron.js";
20
23
  /** Mirrors hq-pro-agents `MIN_RECURRING_INTERVAL_SECONDS`. */
21
24
  export declare const MIN_RECURRING_INTERVAL_SECONDS: number;
22
25
  /** Mirrors hq-pro-agents `DEFAULT_MAX_ACTIVE_JOBS_PER_AGENT`. */
@@ -29,9 +32,11 @@ export declare class BotJobsError extends Error {
29
32
  /** The machine's own IANA zone, so "9am" means 9am where the owner lives. */
30
33
  export declare function machineTimezone(): string;
31
34
  /**
32
- * Standard 5-field cron → the EventBridge form the cloud stores.
35
+ * Standard 5-field cron → the six-field `cron(...)` string a job is stored as.
33
36
  *
34
- * EventBridge cron has SIX fields (a trailing year), numbers its days of week
37
+ * The stored form (the six-field cron syntax hosted agent jobs also use, so
38
+ * local and hosted jobs share one format; the function keeps its historical
39
+ * name) has SIX fields (a trailing year), numbers its days of week
35
40
  * 1–7 with SUNDAY = 1 (standard cron uses 0–6 with SUNDAY = 0), and refuses
36
41
  * `*` in BOTH the day-of-month and day-of-week fields — exactly one must be
37
42
  * `?`. An expression that is already `cron(...)` or `rate(...)` is passed
@@ -45,7 +50,7 @@ export declare function toEventBridgeCron(expr: string): string;
45
50
  * the server's own reason instead of a round-trip and a raw 400.
46
51
  */
47
52
  export declare function recurringIntervalSeconds(expr: string): number | null;
48
- /** Refuse a schedule the cloud would refuse, with the cloud's own reason. */
53
+ /** Refuse a schedule that fires more often than the recurring floor (the same floor hosted agent jobs use). */
49
54
  export declare function assertScheduleWithinFloor(expr: string): void;
50
55
  export interface ParsedSchedule {
51
56
  /** Standard 5-field cron, as the HQ helper emits it. */
@@ -58,7 +63,7 @@ export interface ParsedSchedule {
58
63
  export declare function parseScheduleText(text: string, opts: {
59
64
  timezone: string;
60
65
  }): ParsedSchedule;
61
- /** The create body the cloud expects, with the client-side limits enforced first. */
66
+ /** The create body for a new job, with the schedule limits enforced first. */
62
67
  export declare function buildCreateJobBody(input: {
63
68
  prompt: string;
64
69
  cron: string;
@@ -66,27 +71,24 @@ export declare function buildCreateJobBody(input: {
66
71
  context?: Record<string, unknown>;
67
72
  quiet?: boolean;
68
73
  }): CreateJobInput;
74
+ export declare function fromEventBridgeCron(expr: string): string;
75
+ export declare function fleetJobRecord(job: FleetCronJob, timezone: string): BotJobRecord;
76
+ export declare function fleetJobsClient(config: Pick<BotConfig, "ownerUid" | "hqRoot">, ops: FleetCronOps, timezone: string): Required<LocalJobsApi>;
69
77
  /** A schedule in plain words, falling back to the raw expression. */
70
78
  export declare function describeSchedule(job: BotJobRecord): string;
71
79
  /** A small humaniser for the shapes `--every` actually produces. */
72
80
  export declare function cronInWords(expr: string): string | null;
81
+ export declare function utcMinute(iso: string): string;
73
82
  /** "never run yet" / "succeeded 2026-09-15 09:00 UTC". */
74
83
  export declare function describeLastRun(job: BotJobRecord): string;
75
84
  export declare function formatJobsList(botName: string, jobs: BotJobRecord[], showQuietOption?: boolean): string;
76
85
  /**
77
- * Turn a jobs-route failure into one plain line.
86
+ * Turn a jobs failure into one plain line.
78
87
  *
79
- * Personal bots are refused by the cloud today: their JWT carries the owner's
80
- * `per_…` company claim and the jobs routes require a `cmp_…`, so the fail-closed
81
- * guard answers 403 `CROSS_AGENT_JOB` (hq-pro-agents jobs/errors.ts
82
- * `CrossAgentJobError`). That server fix is a separate change; until it lands the
83
- * refusal must read as "not available yet for this kind of bot", not as a raw 403.
84
- * Once the server accepts personal bots the refusal simply stops happening — no
85
- * client change needed.
86
- *
87
- * ONLY that exact code is rewritten. Every other 403, and every 404, keeps its
88
- * real message: masking them would hide a genuinely missing job or a different
89
- * permission problem behind copy about the wrong thing.
88
+ * `hq bot jobs` answers from the bot's own jobs.json (localJobsClient), for
89
+ * personal and company bots alike, so there is no cloud refusal to explain
90
+ * here. Only the local client's own errors (quota, unknown job, validation)
91
+ * get rewritten; anything else keeps its real message.
90
92
  */
91
93
  export declare function jobsErrorMessage(err: unknown, ctx: {
92
94
  botName: string;
@@ -106,6 +108,7 @@ export interface BotJobsDeps {
106
108
  out?: (line: string) => void;
107
109
  /** Test seam for the default-off quiet-job rollout gate. */
108
110
  quietOptionEnabled?: () => boolean | Promise<boolean>;
111
+ fleetCron?: (agentUid: string) => FleetCronOps;
109
112
  }
110
113
  export interface BotJobsOptions {
111
114
  add?: string;