@indigoai-us/hq-cli 5.345.191 → 5.345.193

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 (122) hide show
  1. package/CHANGELOG.md +398 -0
  2. package/assets/bot-workers/setup/worker.yaml +91 -34
  3. package/dist/command-catalog.generated.d.ts +96 -19
  4. package/dist/command-catalog.generated.js +124 -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 +45 -0
  16. package/dist/commands/signals-run.js +175 -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 +11 -0
  20. package/dist/commands/sources.js +137 -25
  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/hq-cloud-sync-runner/bin/sync-runner.js +31171 -52512
  24. package/dist/hq-cloud-sync-runner/package.json +1 -1
  25. package/dist/lib/bot/api.d.ts +3 -2
  26. package/dist/lib/bot/config.d.ts +2 -0
  27. package/dist/lib/bot/fleet-cron.d.ts +121 -0
  28. package/dist/lib/bot/fleet-cron.js +319 -0
  29. package/dist/lib/bot/fleet-local.d.ts +93 -1
  30. package/dist/lib/bot/fleet-local.js +546 -34
  31. package/dist/lib/bot/fleet-owner-companies.d.ts +12 -0
  32. package/dist/lib/bot/fleet-owner-companies.js +30 -0
  33. package/dist/lib/bot/fleet-watch.d.ts +25 -0
  34. package/dist/lib/bot/fleet-watch.js +51 -0
  35. package/dist/lib/bot/index.d.ts +1 -1
  36. package/dist/lib/bot/index.js +1 -1
  37. package/dist/lib/bot/job-run.d.ts +5 -4
  38. package/dist/lib/bot/job-run.js +5 -4
  39. package/dist/lib/bot/jobs/hot-signal-sync.d.ts +57 -3
  40. package/dist/lib/bot/jobs/hot-signal-sync.js +163 -4
  41. package/dist/lib/bot/local-jobs.d.ts +13 -2
  42. package/dist/lib/bot/local-jobs.js +17 -4
  43. package/dist/lib/bot/progress.d.ts +14 -0
  44. package/dist/lib/bot/progress.js +47 -1
  45. package/dist/lib/bot/run.d.ts +55 -2
  46. package/dist/lib/bot/run.js +192 -10
  47. package/dist/lib/bot/setup-tool-offer.d.ts +1 -0
  48. package/dist/lib/bot/setup-tool-offer.js +16 -0
  49. package/dist/lib/bot/signals-engine-flag.d.ts +18 -0
  50. package/dist/lib/bot/signals-engine-flag.js +30 -0
  51. package/dist/lib/daemon/catalog.d.ts +4 -0
  52. package/dist/lib/daemon/catalog.js +29 -9
  53. package/dist/lib/daemon/legacy.d.ts +6 -0
  54. package/dist/lib/daemon/legacy.js +16 -10
  55. package/dist/lib/daemon/run.d.ts +1 -0
  56. package/dist/lib/daemon/run.js +10 -0
  57. package/dist/lib/flag-registry-worker-source.generated.d.ts +1 -1
  58. package/dist/lib/flag-registry-worker-source.generated.js +1 -1
  59. package/dist/lib/flag-registry.d.ts +13 -1
  60. package/dist/lib/flag-registry.js +46 -0
  61. package/dist/lib/hot-channels/adapters/attio.d.ts +75 -2
  62. package/dist/lib/hot-channels/adapters/attio.js +367 -29
  63. package/dist/lib/hot-channels/adapters/gmail.d.ts +14 -0
  64. package/dist/lib/hot-channels/adapters/gmail.js +59 -2
  65. package/dist/lib/hot-channels/adapters/linear.d.ts +24 -0
  66. package/dist/lib/hot-channels/adapters/linear.js +71 -1
  67. package/dist/lib/hot-channels/adapters/meetings.js +4 -1
  68. package/dist/lib/hot-channels/adapters/slack.js +7 -3
  69. package/dist/lib/hot-channels/alert.js +1 -1
  70. package/dist/lib/hot-channels/contract.d.ts +11 -0
  71. package/dist/lib/hot-channels/contract.js +1 -0
  72. package/dist/lib/hot-channels/cursors.js +1 -1
  73. package/dist/lib/hot-channels/landing.d.ts +6 -2
  74. package/dist/lib/hot-channels/landing.js +13 -6
  75. package/dist/lib/hot-channels/ledger.js +2 -0
  76. package/dist/lib/hot-channels/loop.js +18 -4
  77. package/dist/lib/hot-channels/registry.js +9 -1
  78. package/dist/lib/hot-channels/run.d.ts +18 -0
  79. package/dist/lib/hot-channels/run.js +15 -4
  80. package/dist/lib/hot-channels/signals-pass.d.ts +1 -0
  81. package/dist/lib/hot-channels/signals-pass.js +7 -5
  82. package/dist/lib/hot-channels/sync-lock.js +22 -6
  83. package/dist/lib/mesh/live/daemon/install.d.ts +22 -0
  84. package/dist/lib/mesh/live/daemon/install.js +117 -30
  85. package/dist/lib/signals/adapters-catalog.d.ts +77 -0
  86. package/dist/lib/signals/adapters-catalog.js +194 -0
  87. package/dist/lib/signals/engine.d.ts +196 -0
  88. package/dist/lib/signals/engine.js +495 -0
  89. package/dist/lib/signals/failure-alert.d.ts +89 -0
  90. package/dist/lib/signals/failure-alert.js +175 -0
  91. package/dist/lib/signals/local-date.d.ts +3 -0
  92. package/dist/lib/signals/local-date.js +6 -0
  93. package/dist/lib/signals/projection.d.ts +42 -0
  94. package/dist/lib/signals/projection.js +67 -0
  95. package/dist/lib/signals/reply.d.ts +112 -0
  96. package/dist/lib/signals/reply.js +368 -0
  97. package/dist/lib/signals/run-lock.d.ts +36 -0
  98. package/dist/lib/signals/run-lock.js +148 -0
  99. package/dist/lib/signals/run-record.d.ts +24 -0
  100. package/dist/lib/signals/run-record.js +82 -0
  101. package/dist/lib/signals/sanitize.d.ts +105 -0
  102. package/dist/lib/signals/sanitize.js +439 -0
  103. package/dist/lib/signals/settings.d.ts +10 -0
  104. package/dist/lib/signals/settings.js +48 -0
  105. package/dist/lib/signals/steps/adapters.d.ts +14 -0
  106. package/dist/lib/signals/steps/adapters.js +156 -0
  107. package/dist/lib/signals/steps/entity-similarity.d.ts +10 -0
  108. package/dist/lib/signals/steps/entity-similarity.js +47 -0
  109. package/dist/lib/signals/steps/extract.d.ts +113 -0
  110. package/dist/lib/signals/steps/extract.js +765 -0
  111. package/dist/lib/signals/steps/garden.d.ts +24 -0
  112. package/dist/lib/signals/steps/garden.js +250 -0
  113. package/dist/lib/signals/steps/types.d.ts +112 -0
  114. package/dist/lib/signals/steps/types.js +4 -0
  115. package/dist/lib/signals/steps/upload.d.ts +43 -0
  116. package/dist/lib/signals/steps/upload.js +324 -0
  117. package/dist/lib/signals/write-guard.d.ts +63 -0
  118. package/dist/lib/signals/write-guard.js +287 -0
  119. package/dist/utils/resident-package-preload.js +16 -0
  120. package/package.json +9 -9
  121. package/dist/lib/bot/fleet-default-flag.d.ts +0 -31
  122. 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)";
@@ -5482,6 +5486,67 @@ export declare const COMMAND_CATALOG: readonly [{
5482
5486
  readonly hidden: false;
5483
5487
  }];
5484
5488
  readonly subcommands: readonly [];
5489
+ }, {
5490
+ readonly name: "run";
5491
+ readonly description: "Run the local signals engine (garden, adapters, extract, garden, upload) for companies with capture on";
5492
+ readonly aliases: readonly [];
5493
+ readonly hidden: false;
5494
+ readonly helpOption: true;
5495
+ readonly helpCommand: false;
5496
+ readonly usage: "[options]";
5497
+ readonly helpText: readonly [];
5498
+ readonly arguments: readonly [];
5499
+ readonly options: readonly [{
5500
+ readonly flags: "--company <slug>";
5501
+ readonly description: "Run one company (default: every company listed in the companies manifest)";
5502
+ readonly hidden: false;
5503
+ }, {
5504
+ readonly flags: "--dry-run";
5505
+ readonly description: "Print what would run; run no mutating step and write nothing";
5506
+ readonly hidden: false;
5507
+ }, {
5508
+ readonly flags: "--step <step>";
5509
+ readonly description: "Run one step";
5510
+ readonly hidden: false;
5511
+ readonly choices: readonly ["garden", "extract", "adapters", "upload", "all"];
5512
+ readonly defaultValue: "all";
5513
+ }, {
5514
+ readonly flags: "--trigger <trigger>";
5515
+ readonly description: "What started the run";
5516
+ readonly hidden: false;
5517
+ readonly choices: readonly ["job", "chat", "manual", "brief"];
5518
+ readonly defaultValue: "manual";
5519
+ }, {
5520
+ readonly flags: "--force";
5521
+ readonly description: "Rerun a job trigger that already ran today";
5522
+ readonly hidden: false;
5523
+ }, {
5524
+ readonly flags: "--catch-up";
5525
+ readonly description: "Mark the run as a catch-up run (also HQ_SIGNALS_CATCH_UP=1)";
5526
+ readonly hidden: false;
5527
+ }, {
5528
+ readonly flags: "--max-turns <n>";
5529
+ readonly description: "Model turn cap for the extract step (default from core/settings/signals.yaml, else 40)";
5530
+ readonly hidden: false;
5531
+ }, {
5532
+ readonly flags: "--max-budget-usd <x>";
5533
+ readonly description: "Spend cap in USD for the extract step (default from core/settings/signals.yaml, else 2.00)";
5534
+ readonly hidden: false;
5535
+ }, {
5536
+ readonly flags: "--json";
5537
+ readonly description: "Print the run record as JSON";
5538
+ readonly hidden: false;
5539
+ }, {
5540
+ readonly flags: "--report-found";
5541
+ readonly description: "Print the owner's run reply only when the run found new signals; print nothing otherwise";
5542
+ readonly hidden: false;
5543
+ }, {
5544
+ readonly flags: "--hq-root <path>";
5545
+ readonly description: "HQ root (default: <runtime-path>)";
5546
+ readonly hidden: false;
5547
+ readonly defaultValue: "<runtime-path>";
5548
+ }];
5549
+ readonly subcommands: readonly [];
5485
5550
  }];
5486
5551
  }, {
5487
5552
  readonly name: "integrations";
@@ -8277,7 +8342,7 @@ export declare const COMMAND_CATALOG: readonly [{
8277
8342
  readonly subcommands: readonly [];
8278
8343
  }, {
8279
8344
  readonly name: "provision";
8280
- readonly description: "Provision a new Outpost ($80/month — requires --yes)";
8345
+ readonly description: "Provision a new Outpost (priced by size: small, medium, large or xlarge; requires --yes)";
8281
8346
  readonly aliases: readonly ["create"];
8282
8347
  readonly hidden: false;
8283
8348
  readonly helpOption: true;
@@ -8286,6 +8351,10 @@ export declare const COMMAND_CATALOG: readonly [{
8286
8351
  readonly helpText: readonly [];
8287
8352
  readonly arguments: readonly [];
8288
8353
  readonly options: readonly [{
8354
+ readonly flags: "--size <size>";
8355
+ readonly description: "Outpost size: small | medium | large | xlarge. Without it, a terminal shows a menu with prices; the default is $100/month";
8356
+ readonly hidden: false;
8357
+ }, {
8289
8358
  readonly flags: "--runtime <runtime>";
8290
8359
  readonly description: "Agent runtime: claude | codex (default claude). Personal boxes only.";
8291
8360
  readonly hidden: false;
@@ -8307,7 +8376,7 @@ export declare const COMMAND_CATALOG: readonly [{
8307
8376
  readonly hidden: false;
8308
8377
  }, {
8309
8378
  readonly flags: "--yes";
8310
- readonly description: "Confirm the monthly charge (required to provision or create)";
8379
+ readonly description: "Confirm the monthly charge for the chosen size (required to provision or create)";
8311
8380
  readonly hidden: false;
8312
8381
  }, {
8313
8382
  readonly flags: "--json";
@@ -18637,6 +18706,18 @@ export declare const COMMAND_CATALOG: readonly [{
18637
18706
  readonly arguments: readonly [];
18638
18707
  readonly options: readonly [];
18639
18708
  readonly subcommands: readonly [];
18709
+ }, {
18710
+ readonly name: "fleet-bots-update";
18711
+ readonly description: "Move each installed HQ Fleet bot to the current runtime release while it is idle, and restart it";
18712
+ readonly aliases: readonly [];
18713
+ readonly hidden: false;
18714
+ readonly helpOption: true;
18715
+ readonly helpCommand: false;
18716
+ readonly usage: "[options]";
18717
+ readonly helpText: readonly [];
18718
+ readonly arguments: readonly [];
18719
+ readonly options: readonly [];
18720
+ readonly subcommands: readonly [];
18640
18721
  }, {
18641
18722
  readonly name: "sync-core-reconcile";
18642
18723
  readonly description: "Read each company's new-sync-engine switch and write this machine's engine homes and legacy off-switches";
@@ -19015,31 +19096,27 @@ export declare const COMMAND_CATALOG: readonly [{
19015
19096
  readonly defaultValue: readonly [];
19016
19097
  }, {
19017
19098
  readonly flags: "--runtime <runtime>";
19018
- readonly description: "Model CLI to run the bot with: claude|codex|grok";
19099
+ readonly description: "Model provider the bot answers with: claude|codex|grok (same as --provider; default claude)";
19019
19100
  readonly hidden: false;
19020
19101
  }, {
19021
19102
  readonly flags: "--provider <provider>";
19022
- readonly description: "HQ Fleet provider: claude|codex|grok (interactive Fleet creation prompts when omitted)";
19103
+ readonly description: "HQ Fleet provider: claude|codex|grok (default claude)";
19023
19104
  readonly hidden: false;
19024
19105
  }, {
19025
19106
  readonly flags: "--hq-fleet-runtime";
19026
- readonly description: "Create this personal bot with the local HQ Fleet Runtime";
19107
+ readonly description: "Accepted for compatibility; every new bot runs on the HQ Fleet Runtime";
19027
19108
  readonly hidden: false;
19028
19109
  }, {
19029
19110
  readonly flags: "--legacy-runtime";
19030
- readonly description: "Run this bot with the model CLI even where the HQ Fleet Runtime is the default";
19111
+ readonly description: "No longer supported; new bots always run on the HQ Fleet Runtime";
19031
19112
  readonly hidden: false;
19032
19113
  }, {
19033
19114
  readonly flags: "--model <model>";
19034
- readonly description: "Model override passed to the runtime CLI";
19115
+ readonly description: "Model the bot answers with";
19035
19116
  readonly hidden: false;
19036
19117
  }, {
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)";
19039
- readonly hidden: false;
19040
- }, {
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)";
19118
+ readonly flags: "--auto-approve";
19119
+ 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
19120
  readonly hidden: false;
19044
19121
  }, {
19045
19122
  readonly flags: "--worker <workerId>";
@@ -19062,13 +19139,9 @@ export declare const COMMAND_CATALOG: readonly [{
19062
19139
  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
19140
  readonly hidden: false;
19064
19141
  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
19142
  }, {
19070
19143
  readonly flags: "--no-daemon";
19071
- readonly description: "Do not install the launchd agent (macOS)";
19144
+ readonly description: "Accepted for compatibility; HQ Fleet bots run under their own background service";
19072
19145
  readonly hidden: false;
19073
19146
  }, {
19074
19147
  readonly flags: "--no-start";
@@ -20430,6 +20503,10 @@ export declare const COMMAND_CATALOG: readonly [{
20430
20503
  readonly flags: "-y, --yes";
20431
20504
  readonly description: "Skip the typed-email confirmation prompt (still sends confirmEmail).";
20432
20505
  readonly hidden: false;
20506
+ }, {
20507
+ readonly flags: "--handoff-shared-companies";
20508
+ readonly description: "Keep a company with real members and hand it to one, instead of refusing the reset.";
20509
+ readonly hidden: false;
20433
20510
  }];
20434
20511
  readonly subcommands: readonly [];
20435
20512
  }, {
@@ -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)",
@@ -6646,6 +6651,91 @@ export const COMMAND_CATALOG = [
6646
6651
  }
6647
6652
  ],
6648
6653
  "subcommands": []
6654
+ },
6655
+ {
6656
+ "name": "run",
6657
+ "description": "Run the local signals engine (garden, adapters, extract, garden, upload) for companies with capture on",
6658
+ "aliases": [],
6659
+ "hidden": false,
6660
+ "helpOption": true,
6661
+ "helpCommand": false,
6662
+ "usage": "[options]",
6663
+ "helpText": [],
6664
+ "arguments": [],
6665
+ "options": [
6666
+ {
6667
+ "flags": "--company <slug>",
6668
+ "description": "Run one company (default: every company listed in the companies manifest)",
6669
+ "hidden": false
6670
+ },
6671
+ {
6672
+ "flags": "--dry-run",
6673
+ "description": "Print what would run; run no mutating step and write nothing",
6674
+ "hidden": false
6675
+ },
6676
+ {
6677
+ "flags": "--step <step>",
6678
+ "description": "Run one step",
6679
+ "hidden": false,
6680
+ "choices": [
6681
+ "garden",
6682
+ "extract",
6683
+ "adapters",
6684
+ "upload",
6685
+ "all"
6686
+ ],
6687
+ "defaultValue": "all"
6688
+ },
6689
+ {
6690
+ "flags": "--trigger <trigger>",
6691
+ "description": "What started the run",
6692
+ "hidden": false,
6693
+ "choices": [
6694
+ "job",
6695
+ "chat",
6696
+ "manual",
6697
+ "brief"
6698
+ ],
6699
+ "defaultValue": "manual"
6700
+ },
6701
+ {
6702
+ "flags": "--force",
6703
+ "description": "Rerun a job trigger that already ran today",
6704
+ "hidden": false
6705
+ },
6706
+ {
6707
+ "flags": "--catch-up",
6708
+ "description": "Mark the run as a catch-up run (also HQ_SIGNALS_CATCH_UP=1)",
6709
+ "hidden": false
6710
+ },
6711
+ {
6712
+ "flags": "--max-turns <n>",
6713
+ "description": "Model turn cap for the extract step (default from core/settings/signals.yaml, else 40)",
6714
+ "hidden": false
6715
+ },
6716
+ {
6717
+ "flags": "--max-budget-usd <x>",
6718
+ "description": "Spend cap in USD for the extract step (default from core/settings/signals.yaml, else 2.00)",
6719
+ "hidden": false
6720
+ },
6721
+ {
6722
+ "flags": "--json",
6723
+ "description": "Print the run record as JSON",
6724
+ "hidden": false
6725
+ },
6726
+ {
6727
+ "flags": "--report-found",
6728
+ "description": "Print the owner's run reply only when the run found new signals; print nothing otherwise",
6729
+ "hidden": false
6730
+ },
6731
+ {
6732
+ "flags": "--hq-root <path>",
6733
+ "description": "HQ root (default: <runtime-path>)",
6734
+ "hidden": false,
6735
+ "defaultValue": "<runtime-path>"
6736
+ }
6737
+ ],
6738
+ "subcommands": []
6649
6739
  }
6650
6740
  ]
6651
6741
  },
@@ -10092,7 +10182,7 @@ export const COMMAND_CATALOG = [
10092
10182
  },
10093
10183
  {
10094
10184
  "name": "provision",
10095
- "description": "Provision a new Outpost ($80/month — requires --yes)",
10185
+ "description": "Provision a new Outpost (priced by size: small, medium, large or xlarge; requires --yes)",
10096
10186
  "aliases": [
10097
10187
  "create"
10098
10188
  ],
@@ -10103,6 +10193,11 @@ export const COMMAND_CATALOG = [
10103
10193
  "helpText": [],
10104
10194
  "arguments": [],
10105
10195
  "options": [
10196
+ {
10197
+ "flags": "--size <size>",
10198
+ "description": "Outpost size: small | medium | large | xlarge. Without it, a terminal shows a menu with prices; the default is $100/month",
10199
+ "hidden": false
10200
+ },
10106
10201
  {
10107
10202
  "flags": "--runtime <runtime>",
10108
10203
  "description": "Agent runtime: claude | codex (default claude). Personal boxes only.",
@@ -10130,7 +10225,7 @@ export const COMMAND_CATALOG = [
10130
10225
  },
10131
10226
  {
10132
10227
  "flags": "--yes",
10133
- "description": "Confirm the monthly charge (required to provision or create)",
10228
+ "description": "Confirm the monthly charge for the chosen size (required to provision or create)",
10134
10229
  "hidden": false
10135
10230
  },
10136
10231
  {
@@ -22712,6 +22807,19 @@ export const COMMAND_CATALOG = [
22712
22807
  "options": [],
22713
22808
  "subcommands": []
22714
22809
  },
22810
+ {
22811
+ "name": "fleet-bots-update",
22812
+ "description": "Move each installed HQ Fleet bot to the current runtime release while it is idle, and restart it",
22813
+ "aliases": [],
22814
+ "hidden": false,
22815
+ "helpOption": true,
22816
+ "helpCommand": false,
22817
+ "usage": "[options]",
22818
+ "helpText": [],
22819
+ "arguments": [],
22820
+ "options": [],
22821
+ "subcommands": []
22822
+ },
22715
22823
  {
22716
22824
  "name": "sync-core-reconcile",
22717
22825
  "description": "Read each company's new-sync-engine switch and write this machine's engine homes and legacy off-switches",
@@ -23171,37 +23279,32 @@ export const COMMAND_CATALOG = [
23171
23279
  },
23172
23280
  {
23173
23281
  "flags": "--runtime <runtime>",
23174
- "description": "Model CLI to run the bot with: claude|codex|grok",
23282
+ "description": "Model provider the bot answers with: claude|codex|grok (same as --provider; default claude)",
23175
23283
  "hidden": false
23176
23284
  },
23177
23285
  {
23178
23286
  "flags": "--provider <provider>",
23179
- "description": "HQ Fleet provider: claude|codex|grok (interactive Fleet creation prompts when omitted)",
23287
+ "description": "HQ Fleet provider: claude|codex|grok (default claude)",
23180
23288
  "hidden": false
23181
23289
  },
23182
23290
  {
23183
23291
  "flags": "--hq-fleet-runtime",
23184
- "description": "Create this personal bot with the local HQ Fleet Runtime",
23292
+ "description": "Accepted for compatibility; every new bot runs on the HQ Fleet Runtime",
23185
23293
  "hidden": false
23186
23294
  },
23187
23295
  {
23188
23296
  "flags": "--legacy-runtime",
23189
- "description": "Run this bot with the model CLI even where the HQ Fleet Runtime is the default",
23297
+ "description": "No longer supported; new bots always run on the HQ Fleet Runtime",
23190
23298
  "hidden": false
23191
23299
  },
23192
23300
  {
23193
23301
  "flags": "--model <model>",
23194
- "description": "Model override passed to the runtime CLI",
23302
+ "description": "Model the bot answers with",
23195
23303
  "hidden": false
23196
23304
  },
23197
23305
  {
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)",
23200
- "hidden": false
23201
- },
23202
- {
23203
- "flags": "--no-auto-approve",
23204
- "description": "Keep the runtime's permission gates (default: everything pre-approved; a headless bot cannot answer prompts)",
23306
+ "flags": "--auto-approve",
23307
+ "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
23308
  "hidden": false
23206
23309
  },
23207
23310
  {
@@ -23230,14 +23333,9 @@ export const COMMAND_CATALOG = [
23230
23333
  "hidden": false,
23231
23334
  "defaultValue": "synced"
23232
23335
  },
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
23336
  {
23239
23337
  "flags": "--no-daemon",
23240
- "description": "Do not install the launchd agent (macOS)",
23338
+ "description": "Accepted for compatibility; HQ Fleet bots run under their own background service",
23241
23339
  "hidden": false
23242
23340
  },
23243
23341
  {
@@ -24913,6 +25011,11 @@ export const COMMAND_CATALOG = [
24913
25011
  "flags": "-y, --yes",
24914
25012
  "description": "Skip the typed-email confirmation prompt (still sends confirmEmail).",
24915
25013
  "hidden": false
25014
+ },
25015
+ {
25016
+ "flags": "--handoff-shared-companies",
25017
+ "description": "Keep a company with real members and hand it to one, instead of refusing the reset.",
25018
+ "hidden": false
24916
25019
  }
24917
25020
  ],
24918
25021
  "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;