@indigoai-us/hq-cli 5.345.146 → 5.345.148

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 (138) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +14 -0
  3. package/assets/bot-workers/setup/worker.yaml +11 -0
  4. package/dist/command-catalog.generated.d.ts +326 -4
  5. package/dist/command-catalog.generated.js +403 -4
  6. package/dist/commands/agent-inbox.js +2 -1
  7. package/dist/commands/auth.js +4 -2
  8. package/dist/commands/bot.js +1 -1
  9. package/dist/commands/cloud.js +31 -1
  10. package/dist/commands/core-refresh-vault-access-native.d.ts +17 -0
  11. package/dist/commands/core-refresh-vault-access-native.js +214 -19
  12. package/dist/commands/core-work-mesh-bind-trusted-native.d.ts +9 -0
  13. package/dist/commands/core-work-mesh-bind-trusted-native.js +26 -19
  14. package/dist/commands/core.js +6 -0
  15. package/dist/commands/daemon.d.ts +7 -0
  16. package/dist/commands/daemon.js +37 -3
  17. package/dist/commands/dm.js +9 -2
  18. package/dist/commands/doctor.d.ts +11 -1
  19. package/dist/commands/doctor.js +56 -1
  20. package/dist/commands/files.js +10 -6
  21. package/dist/commands/install-global.d.ts +7 -0
  22. package/dist/commands/install-global.js +129 -35
  23. package/dist/commands/lanes-shared.d.ts +3 -1
  24. package/dist/commands/lanes.d.ts +4 -4
  25. package/dist/commands/lanes.js +380 -25
  26. package/dist/commands/login.js +4 -3
  27. package/dist/commands/pack-install.d.ts +2 -2
  28. package/dist/commands/pack-install.js +133 -35
  29. package/dist/commands/sync-manifest.d.ts +2 -9
  30. package/dist/commands/sync-manifest.js +4 -15
  31. package/dist/hook-engine-path.d.ts +4 -0
  32. package/dist/hook-engine-path.js +36 -0
  33. package/dist/hq-cloud-sync-runner/bin/sync-runner.js +2784 -2360
  34. package/dist/hq-cloud-sync-runner/package.json +1 -1
  35. package/dist/index.js +6 -0
  36. package/dist/lib/agent-kit/inbox-redact.d.ts +44 -0
  37. package/dist/lib/agent-kit/inbox-redact.js +361 -0
  38. package/dist/lib/agent-kit/inbox-state.js +11 -2
  39. package/dist/lib/agent-kit/mcp/tools.js +2 -1
  40. package/dist/lib/agent-kit/run/inbox.js +36 -7
  41. package/dist/lib/anywhere-runtime-flag-key.d.ts +3 -0
  42. package/dist/lib/anywhere-runtime-flag-key.js +9 -0
  43. package/dist/lib/bot/daemon.js +3 -0
  44. package/dist/lib/bot/runtime/index.js +3 -1
  45. package/dist/lib/company-skill-wrapper.js +6 -4
  46. package/dist/lib/daemon/install.d.ts +47 -1
  47. package/dist/lib/daemon/install.js +181 -15
  48. package/dist/lib/daemon/lock.d.ts +32 -0
  49. package/dist/lib/daemon/lock.js +55 -2
  50. package/dist/lib/doctor/__testing__/run-doctor.js +4 -0
  51. package/dist/lib/doctor/checks/anywhere.d.ts +3 -0
  52. package/dist/lib/doctor/checks/anywhere.js +23 -8
  53. package/dist/lib/doctor/checks/cli-path.d.ts +11 -0
  54. package/dist/lib/doctor/checks/cli-path.js +45 -0
  55. package/dist/lib/doctor/checks/hook-engine.d.ts +4 -0
  56. package/dist/lib/doctor/checks/hook-engine.js +16 -0
  57. package/dist/lib/doctor/checks/release-links.d.ts +23 -0
  58. package/dist/lib/doctor/checks/release-links.js +152 -0
  59. package/dist/lib/doctor/checks/sync-health.d.ts +7 -0
  60. package/dist/lib/doctor/checks/sync-health.js +38 -2
  61. package/dist/lib/doctor/checks/temp-homes.d.ts +19 -0
  62. package/dist/lib/doctor/checks/temp-homes.js +54 -0
  63. package/dist/lib/doctor/fix/apply.d.ts +90 -1
  64. package/dist/lib/doctor/fix/apply.js +176 -10
  65. package/dist/lib/doctor/fix/json-output.d.ts +4 -1
  66. package/dist/lib/doctor/fix/json-output.js +6 -0
  67. package/dist/lib/doctor/fix/remediation.d.ts +7 -1
  68. package/dist/lib/doctor/fix/remediation.js +23 -1
  69. package/dist/lib/doctor/registry.js +13 -0
  70. package/dist/lib/doctor/temp-home-sweeper.d.ts +149 -0
  71. package/dist/lib/doctor/temp-home-sweeper.js +418 -0
  72. package/dist/lib/flag-registry-worker-source.generated.d.ts +1 -1
  73. package/dist/lib/flag-registry-worker-source.generated.js +1 -1
  74. package/dist/lib/flag-registry.js +9 -1
  75. package/dist/lib/flag-snapshot-file.js +8 -3
  76. package/dist/lib/hook-engine/resolve.d.ts +31 -0
  77. package/dist/lib/hook-engine/resolve.js +134 -0
  78. package/dist/lib/lanes/admission-host.d.ts +1 -0
  79. package/dist/lib/lanes/admission-host.js +8 -1
  80. package/dist/lib/lanes/admission.d.ts +4 -0
  81. package/dist/lib/lanes/admission.js +6 -2
  82. package/dist/lib/lanes/envelope-repair-dispatch.d.ts +5 -0
  83. package/dist/lib/lanes/envelope-repair-dispatch.js +12 -1
  84. package/dist/lib/lanes/index.d.ts +2 -2
  85. package/dist/lib/lanes/index.js +1 -1
  86. package/dist/lib/lanes/keep-alive.js +4 -1
  87. package/dist/lib/lanes/local-host-identity.d.ts +40 -0
  88. package/dist/lib/lanes/local-host-identity.js +314 -0
  89. package/dist/lib/lanes/reaper.d.ts +1 -1
  90. package/dist/lib/lanes/reaper.js +7 -0
  91. package/dist/lib/lanes/reconcile.d.ts +4 -0
  92. package/dist/lib/lanes/reconcile.js +16 -8
  93. package/dist/lib/lanes/spawn.d.ts +20 -0
  94. package/dist/lib/lanes/spawn.js +48 -2
  95. package/dist/lib/lanes/status-fields.js +6 -1
  96. package/dist/lib/lanes/store.js +8 -1
  97. package/dist/lib/lanes/throttle.d.ts +49 -6
  98. package/dist/lib/lanes/throttle.js +154 -17
  99. package/dist/lib/lanes/types.d.ts +22 -1
  100. package/dist/lib/lanes/types.js +27 -3
  101. package/dist/lib/lanes/watcher.js +27 -2
  102. package/dist/lib/lanes/worker-continuity.d.ts +2 -0
  103. package/dist/lib/lanes/worker-continuity.js +18 -11
  104. package/dist/lib/manifest-disabled.d.ts +13 -0
  105. package/dist/lib/manifest-disabled.js +19 -0
  106. package/dist/lib/service-manager/launchd.d.ts +1 -0
  107. package/dist/lib/service-manager/launchd.js +1 -1
  108. package/dist/lib/windows/user-path.d.ts +48 -0
  109. package/dist/lib/windows/user-path.js +114 -0
  110. package/dist/lib/work-context/auto-bind.d.ts +1 -1
  111. package/dist/lib/work-context/auto-bind.js +22 -3
  112. package/dist/lib/work-context/lane-bind.d.ts +31 -0
  113. package/dist/lib/work-context/lane-bind.js +101 -0
  114. package/dist/lib/work-context/organize.js +1 -0
  115. package/dist/lib/work-context/prd-sync.js +7 -0
  116. package/dist/lib/work-context/project.d.ts +36 -10
  117. package/dist/lib/work-context/project.js +130 -41
  118. package/dist/lib/work-context/reconcile.d.ts +6 -0
  119. package/dist/lib/work-context/reconcile.js +25 -5
  120. package/dist/lib/work-context/state.d.ts +6 -0
  121. package/dist/lib/work-context/state.js +29 -1
  122. package/dist/lib/workers-registry/index.d.ts +6 -0
  123. package/dist/lib/workers-registry/index.js +8 -0
  124. package/dist/utils/copy-tree.d.ts +61 -0
  125. package/dist/utils/copy-tree.js +249 -0
  126. package/dist/utils/environmental-error.js +7 -3
  127. package/dist/utils/headless.d.ts +2 -0
  128. package/dist/utils/headless.js +8 -0
  129. package/dist/utils/login-browser.d.ts +4 -0
  130. package/dist/utils/login-browser.js +122 -0
  131. package/dist/utils/npm-invocation.d.ts +27 -0
  132. package/dist/utils/npm-invocation.js +54 -0
  133. package/dist/utils/safe-link.d.ts +50 -0
  134. package/dist/utils/safe-link.js +300 -0
  135. package/dist/utils/team-upgrade.js +1 -7
  136. package/package.json +17 -5
  137. package/scripts/hook-engine-manifest.mjs +22 -0
  138. package/scripts/install-hook-engine.mjs +10 -0
@@ -1402,6 +1402,11 @@ export const COMMAND_CATALOG = [
1402
1402
  "flags": "--provider <provider>",
1403
1403
  "description": "OAuth provider to use: google, microsoft, or picker",
1404
1404
  "hidden": false
1405
+ },
1406
+ {
1407
+ "flags": "--no-browser",
1408
+ "description": "Print the sign-in URL without opening a browser",
1409
+ "hidden": false
1405
1410
  }
1406
1411
  ],
1407
1412
  "subcommands": []
@@ -1917,6 +1922,11 @@ export const COMMAND_CATALOG = [
1917
1922
  "flags": "--provider <provider>",
1918
1923
  "description": "OAuth provider to use: google, microsoft, or picker",
1919
1924
  "hidden": false
1925
+ },
1926
+ {
1927
+ "flags": "--no-browser",
1928
+ "description": "Print the sign-in URL without opening a browser",
1929
+ "hidden": false
1920
1930
  }
1921
1931
  ],
1922
1932
  "subcommands": []
@@ -3409,7 +3419,7 @@ export const COMMAND_CATALOG = [
3409
3419
  },
3410
3420
  {
3411
3421
  "name": "unshare",
3412
- "description": "Remove a named file access grant, or remove an empty ACL row without --with.",
3422
+ "description": "Remove a named file access grant, or remove an empty ACL row or grantee-less entries without --with.",
3413
3423
  "aliases": [],
3414
3424
  "hidden": false,
3415
3425
  "helpOption": true,
@@ -8932,9 +8942,19 @@ export const COMMAND_CATALOG = [
8932
8942
  "description": "Provision the company's Outpost instead of your personal box",
8933
8943
  "hidden": false
8934
8944
  },
8945
+ {
8946
+ "flags": "--name <name>",
8947
+ "description": "With --company: not sent. This server creates the company's main Outpost and does not take a name yet",
8948
+ "hidden": false
8949
+ },
8935
8950
  {
8936
8951
  "flags": "--yes",
8937
- "description": "Confirm the $80/month charge (required to provision)",
8952
+ "description": "Confirm the monthly charge (required to provision or create)",
8953
+ "hidden": false
8954
+ },
8955
+ {
8956
+ "flags": "--json",
8957
+ "description": "With --company, emit one JSON object. Progress goes to stderr.",
8938
8958
  "hidden": false
8939
8959
  }
8940
8960
  ],
@@ -8942,7 +8962,7 @@ export const COMMAND_CATALOG = [
8942
8962
  },
8943
8963
  {
8944
8964
  "name": "list",
8945
- "description": "List every Outpost you own",
8965
+ "description": "List every Outpost you own, or a company's Outposts with --company",
8946
8966
  "aliases": [],
8947
8967
  "hidden": false,
8948
8968
  "helpOption": true,
@@ -8951,6 +8971,11 @@ export const COMMAND_CATALOG = [
8951
8971
  "helpText": [],
8952
8972
  "arguments": [],
8953
8973
  "options": [
8974
+ {
8975
+ "flags": "--company <slug>",
8976
+ "description": "List the company's Outposts",
8977
+ "hidden": false
8978
+ },
8954
8979
  {
8955
8980
  "flags": "--json",
8956
8981
  "description": "Emit raw JSON",
@@ -8980,6 +9005,11 @@ export const COMMAND_CATALOG = [
8980
9005
  "description": "Show the company Outpost, its jobs, and each job's run status",
8981
9006
  "hidden": false
8982
9007
  },
9008
+ {
9009
+ "flags": "--outpost <name|id>",
9010
+ "description": "Which company Outpost, when the company has more than one",
9011
+ "hidden": false
9012
+ },
8983
9013
  {
8984
9014
  "flags": "--json",
8985
9015
  "description": "Emit raw JSON",
@@ -8990,7 +9020,7 @@ export const COMMAND_CATALOG = [
8990
9020
  },
8991
9021
  {
8992
9022
  "name": "jobs",
8993
- "description": "Register a job on a company Outpost",
9023
+ "description": "Register, edit, pause, resume, delete, or run a job on a company Outpost",
8994
9024
  "aliases": [],
8995
9025
  "hidden": false,
8996
9026
  "helpOption": true,
@@ -9046,6 +9076,11 @@ export const COMMAND_CATALOG = [
9046
9076
  "description": "Optional JSON object stored with the job",
9047
9077
  "hidden": false
9048
9078
  },
9079
+ {
9080
+ "flags": "--outpost <name|id>",
9081
+ "description": "Which company Outpost runs the job, when the company has more than one",
9082
+ "hidden": false
9083
+ },
9049
9084
  {
9050
9085
  "flags": "--json",
9051
9086
  "description": "Emit the job id and accepted revision as JSON",
@@ -9053,6 +9088,256 @@ export const COMMAND_CATALOG = [
9053
9088
  }
9054
9089
  ],
9055
9090
  "subcommands": []
9091
+ },
9092
+ {
9093
+ "name": "edit",
9094
+ "description": "Change a company job. Omitted fields stay as they are. Requires --revision",
9095
+ "aliases": [],
9096
+ "hidden": false,
9097
+ "helpOption": true,
9098
+ "helpCommand": false,
9099
+ "usage": "[options] <jobId>",
9100
+ "helpText": [],
9101
+ "arguments": [
9102
+ {
9103
+ "name": "jobId",
9104
+ "required": true,
9105
+ "variadic": false,
9106
+ "description": "Job id from hq outposts status --company <slug>"
9107
+ }
9108
+ ],
9109
+ "options": [
9110
+ {
9111
+ "flags": "--company <slug>",
9112
+ "description": "Company that owns the Outpost",
9113
+ "hidden": false
9114
+ },
9115
+ {
9116
+ "flags": "--outpost <name|id>",
9117
+ "description": "Which company Outpost, when the company has more than one",
9118
+ "hidden": false
9119
+ },
9120
+ {
9121
+ "flags": "--revision <rev>",
9122
+ "description": "Accepted revision you last saw. Required for edit and delete --yes",
9123
+ "hidden": false
9124
+ },
9125
+ {
9126
+ "flags": "--prompt <text>",
9127
+ "description": "What the job should do. Omit to keep the current prompt",
9128
+ "hidden": false
9129
+ },
9130
+ {
9131
+ "flags": "--timezone <name>",
9132
+ "description": "IANA timezone, such as America/New_York. Omit to keep the current timezone",
9133
+ "hidden": false
9134
+ },
9135
+ {
9136
+ "flags": "--cron <expr>",
9137
+ "description": "Recurring schedule: rate(N minutes|hours|days), a five-field cron with * for day of month and month (such as \"*/15 * * * *\"; translated to the AWS form), or cron(MIN HOUR ? * DOW *). Omit to keep the current schedule",
9138
+ "hidden": false
9139
+ },
9140
+ {
9141
+ "flags": "--at <iso>",
9142
+ "description": "One-time ISO-8601 instant. Do not combine with --cron",
9143
+ "hidden": false
9144
+ },
9145
+ {
9146
+ "flags": "--script <text>",
9147
+ "description": "Precondition script stored with the job. Omit to keep the current script",
9148
+ "hidden": false
9149
+ },
9150
+ {
9151
+ "flags": "--context <json>",
9152
+ "description": "JSON object stored with the job. Omit to keep the current context",
9153
+ "hidden": false
9154
+ },
9155
+ {
9156
+ "flags": "--clear-script",
9157
+ "description": "Remove the job's precondition script",
9158
+ "hidden": false
9159
+ },
9160
+ {
9161
+ "flags": "--clear-context",
9162
+ "description": "Remove the job's stored context",
9163
+ "hidden": false
9164
+ },
9165
+ {
9166
+ "flags": "--json",
9167
+ "description": "Emit the result as JSON",
9168
+ "hidden": false
9169
+ }
9170
+ ],
9171
+ "subcommands": []
9172
+ },
9173
+ {
9174
+ "name": "pause",
9175
+ "description": "Pause a company job",
9176
+ "aliases": [],
9177
+ "hidden": false,
9178
+ "helpOption": true,
9179
+ "helpCommand": false,
9180
+ "usage": "[options] <jobId>",
9181
+ "helpText": [],
9182
+ "arguments": [
9183
+ {
9184
+ "name": "jobId",
9185
+ "required": true,
9186
+ "variadic": false,
9187
+ "description": "Job id from hq outposts status --company <slug>"
9188
+ }
9189
+ ],
9190
+ "options": [
9191
+ {
9192
+ "flags": "--company <slug>",
9193
+ "description": "Company that owns the Outpost",
9194
+ "hidden": false
9195
+ },
9196
+ {
9197
+ "flags": "--outpost <name|id>",
9198
+ "description": "Which company Outpost, when the company has more than one",
9199
+ "hidden": false
9200
+ },
9201
+ {
9202
+ "flags": "--revision <rev>",
9203
+ "description": "Accepted revision you last saw. Required for edit and delete --yes",
9204
+ "hidden": false
9205
+ },
9206
+ {
9207
+ "flags": "--json",
9208
+ "description": "Emit the result as JSON",
9209
+ "hidden": false
9210
+ }
9211
+ ],
9212
+ "subcommands": []
9213
+ },
9214
+ {
9215
+ "name": "resume",
9216
+ "description": "Resume a paused company job",
9217
+ "aliases": [],
9218
+ "hidden": false,
9219
+ "helpOption": true,
9220
+ "helpCommand": false,
9221
+ "usage": "[options] <jobId>",
9222
+ "helpText": [],
9223
+ "arguments": [
9224
+ {
9225
+ "name": "jobId",
9226
+ "required": true,
9227
+ "variadic": false,
9228
+ "description": "Job id from hq outposts status --company <slug>"
9229
+ }
9230
+ ],
9231
+ "options": [
9232
+ {
9233
+ "flags": "--company <slug>",
9234
+ "description": "Company that owns the Outpost",
9235
+ "hidden": false
9236
+ },
9237
+ {
9238
+ "flags": "--outpost <name|id>",
9239
+ "description": "Which company Outpost, when the company has more than one",
9240
+ "hidden": false
9241
+ },
9242
+ {
9243
+ "flags": "--revision <rev>",
9244
+ "description": "Accepted revision you last saw. Required for edit and delete --yes",
9245
+ "hidden": false
9246
+ },
9247
+ {
9248
+ "flags": "--json",
9249
+ "description": "Emit the result as JSON",
9250
+ "hidden": false
9251
+ }
9252
+ ],
9253
+ "subcommands": []
9254
+ },
9255
+ {
9256
+ "name": "delete",
9257
+ "description": "Delete a company job (requires --yes)",
9258
+ "aliases": [],
9259
+ "hidden": false,
9260
+ "helpOption": true,
9261
+ "helpCommand": false,
9262
+ "usage": "[options] <jobId>",
9263
+ "helpText": [],
9264
+ "arguments": [
9265
+ {
9266
+ "name": "jobId",
9267
+ "required": true,
9268
+ "variadic": false,
9269
+ "description": "Job id from hq outposts status --company <slug>"
9270
+ }
9271
+ ],
9272
+ "options": [
9273
+ {
9274
+ "flags": "--company <slug>",
9275
+ "description": "Company that owns the Outpost",
9276
+ "hidden": false
9277
+ },
9278
+ {
9279
+ "flags": "--outpost <name|id>",
9280
+ "description": "Which company Outpost, when the company has more than one",
9281
+ "hidden": false
9282
+ },
9283
+ {
9284
+ "flags": "--revision <rev>",
9285
+ "description": "Accepted revision you last saw. Required for edit and delete --yes",
9286
+ "hidden": false
9287
+ },
9288
+ {
9289
+ "flags": "--yes",
9290
+ "description": "Confirm deletion of this job",
9291
+ "hidden": false
9292
+ },
9293
+ {
9294
+ "flags": "--json",
9295
+ "description": "Emit the result as JSON",
9296
+ "hidden": false
9297
+ }
9298
+ ],
9299
+ "subcommands": []
9300
+ },
9301
+ {
9302
+ "name": "run-now",
9303
+ "description": "Run a company job once now",
9304
+ "aliases": [],
9305
+ "hidden": false,
9306
+ "helpOption": true,
9307
+ "helpCommand": false,
9308
+ "usage": "[options] <jobId>",
9309
+ "helpText": [],
9310
+ "arguments": [
9311
+ {
9312
+ "name": "jobId",
9313
+ "required": true,
9314
+ "variadic": false,
9315
+ "description": "Job id from hq outposts status --company <slug>"
9316
+ }
9317
+ ],
9318
+ "options": [
9319
+ {
9320
+ "flags": "--company <slug>",
9321
+ "description": "Company that owns the Outpost",
9322
+ "hidden": false
9323
+ },
9324
+ {
9325
+ "flags": "--outpost <name|id>",
9326
+ "description": "Which company Outpost, when the company has more than one",
9327
+ "hidden": false
9328
+ },
9329
+ {
9330
+ "flags": "--revision <rev>",
9331
+ "description": "Accepted revision you last saw. Required for edit and delete --yes",
9332
+ "hidden": false
9333
+ },
9334
+ {
9335
+ "flags": "--json",
9336
+ "description": "Emit the result as JSON",
9337
+ "hidden": false
9338
+ }
9339
+ ],
9340
+ "subcommands": []
9056
9341
  }
9057
9342
  ]
9058
9343
  },
@@ -9245,6 +9530,35 @@ export const COMMAND_CATALOG = [
9245
9530
  ],
9246
9531
  "subcommands": []
9247
9532
  },
9533
+ {
9534
+ "name": "refresh-config",
9535
+ "description": "Re-apply the server's job runner configuration to the company Outpost (owner or admin)",
9536
+ "aliases": [],
9537
+ "hidden": false,
9538
+ "helpOption": true,
9539
+ "helpCommand": false,
9540
+ "usage": "[options]",
9541
+ "helpText": [],
9542
+ "arguments": [],
9543
+ "options": [
9544
+ {
9545
+ "flags": "--company <slug>",
9546
+ "description": "Company slug",
9547
+ "hidden": false
9548
+ },
9549
+ {
9550
+ "flags": "--outpost <name|id>",
9551
+ "description": "Which company Outpost, when the company has more than one",
9552
+ "hidden": false
9553
+ },
9554
+ {
9555
+ "flags": "--json",
9556
+ "description": "Emit raw JSON",
9557
+ "hidden": false
9558
+ }
9559
+ ],
9560
+ "subcommands": []
9561
+ },
9248
9562
  {
9249
9563
  "name": "codex-enable",
9250
9564
  "description": "Enable (or retry) Codex on an Outpost",
@@ -9290,6 +9604,11 @@ export const COMMAND_CATALOG = [
9290
9604
  "description": "Request a new sign-in link for the company's Outpost (owner or admin)",
9291
9605
  "hidden": false
9292
9606
  },
9607
+ {
9608
+ "flags": "--outpost <name|id>",
9609
+ "description": "Which company Outpost, when the company has more than one",
9610
+ "hidden": false
9611
+ },
9293
9612
  {
9294
9613
  "flags": "--json",
9295
9614
  "description": "Emit raw JSON",
@@ -9326,6 +9645,11 @@ export const COMMAND_CATALOG = [
9326
9645
  "description": "Sign in the company's Outpost (owner or admin)",
9327
9646
  "hidden": false
9328
9647
  },
9648
+ {
9649
+ "flags": "--outpost <name|id>",
9650
+ "description": "Which company Outpost, when the company has more than one",
9651
+ "hidden": false
9652
+ },
9329
9653
  {
9330
9654
  "flags": "--json",
9331
9655
  "description": "Emit raw JSON",
@@ -9902,6 +10226,25 @@ export const COMMAND_CATALOG = [
9902
10226
  ],
9903
10227
  "subcommands": []
9904
10228
  },
10229
+ {
10230
+ "name": "hook-engine-path",
10231
+ "description": "Print the offline, version-pinned native hook engine path",
10232
+ "aliases": [],
10233
+ "hidden": false,
10234
+ "helpOption": true,
10235
+ "helpCommand": false,
10236
+ "usage": "[options]",
10237
+ "helpText": [],
10238
+ "arguments": [],
10239
+ "options": [
10240
+ {
10241
+ "flags": "--repair",
10242
+ "description": "Repair the pinned copy after closing running hook processes",
10243
+ "hidden": false
10244
+ }
10245
+ ],
10246
+ "subcommands": []
10247
+ },
9905
10248
  {
9906
10249
  "name": "ontology",
9907
10250
  "description": "Checkpoint ontology steps run by the checkpoint sibling (gated by checkpoint.ontology)",
@@ -12882,6 +13225,16 @@ export const COMMAND_CATALOG = [
12882
13225
  "description": "Resolve the opt-in hq-flags gate used by the client-health report hook.",
12883
13226
  "hidden": true
12884
13227
  },
13228
+ {
13229
+ "flags": "--sweep-temp-homes",
13230
+ "description": "Delete idle temp homes (90+ minutes untouched, not in use): tmp.* folders holding .rustup or .cargo, and hq-temp-home.* folders left by the wrapper. Reports GB freed.",
13231
+ "hidden": false
13232
+ },
13233
+ {
13234
+ "flags": "--dry-run",
13235
+ "description": "With --sweep-temp-homes, list what would be removed and delete nothing.",
13236
+ "hidden": false
13237
+ },
12885
13238
  {
12886
13239
  "flags": "--yes",
12887
13240
  "description": "Skip the interactive --fix confirmation (non-interactive use).",
@@ -17072,6 +17425,11 @@ export const COMMAND_CATALOG = [
17072
17425
  "description": "claude | codex | grok",
17073
17426
  "hidden": false
17074
17427
  },
17428
+ {
17429
+ "flags": "--runner <kind>",
17430
+ "description": "process (default) | subagent: register a lane an in-session Claude subagent runs; skips admission and starts no process",
17431
+ "hidden": false
17432
+ },
17075
17433
  {
17076
17434
  "flags": "--remote-control",
17077
17435
  "description": "Open a Claude lane in Remote Control using account a for login and the selected account for inference",
@@ -17151,6 +17509,47 @@ export const COMMAND_CATALOG = [
17151
17509
  ],
17152
17510
  "subcommands": []
17153
17511
  },
17512
+ {
17513
+ "name": "progress",
17514
+ "description": "Report on a subagent lane: a progress line, the final envelope, or a failure",
17515
+ "aliases": [],
17516
+ "hidden": false,
17517
+ "helpOption": true,
17518
+ "helpCommand": false,
17519
+ "usage": "[options] <lane-id>",
17520
+ "helpText": [],
17521
+ "arguments": [
17522
+ {
17523
+ "name": "lane-id",
17524
+ "required": true,
17525
+ "variadic": false,
17526
+ "description": "Lane id"
17527
+ }
17528
+ ],
17529
+ "options": [
17530
+ {
17531
+ "flags": "--line <text>",
17532
+ "description": "Progress line shown as the lane's last line",
17533
+ "hidden": false
17534
+ },
17535
+ {
17536
+ "flags": "--envelope <path>",
17537
+ "description": "Final hq-lane-envelope.v1 file; the lane state follows its decision",
17538
+ "hidden": false
17539
+ },
17540
+ {
17541
+ "flags": "--failed <reason>",
17542
+ "description": "Mark the lane failed when the subagent ended without an envelope",
17543
+ "hidden": false
17544
+ },
17545
+ {
17546
+ "flags": "--json",
17547
+ "description": "JSON on stdout (always)",
17548
+ "hidden": false
17549
+ }
17550
+ ],
17551
+ "subcommands": []
17552
+ },
17154
17553
  {
17155
17554
  "name": "approve-target",
17156
17555
  "description": "",
@@ -8,6 +8,7 @@ import chalk from "chalk";
8
8
  import * as os from "node:os";
9
9
  import { ensureCognitoToken } from "../utils/cognito-session.js";
10
10
  import { vaultApiFetch } from "../utils/vault-api.js";
11
+ import { redactAgentInboxItem } from "../lib/agent-kit/inbox-redact.js";
11
12
  import { markInboxDone, mergeAgentInbox, readDoneIds, summarizeInboxEntry } from "../lib/agent-kit/inbox-state.js";
12
13
  import { agentKitPaths } from "../lib/agent-kit/paths.js";
13
14
  import { requireExternalCreds } from "./agent-kit.js";
@@ -36,7 +37,7 @@ export function registerAgentInboxCommand(agent) {
36
37
  });
37
38
  const rows = entries
38
39
  .filter((e) => opts.all || !done.has(e.id))
39
- .map((e) => summarizeInboxEntry(e, done.has(e.id)));
40
+ .map((e) => summarizeInboxEntry(redactAgentInboxItem(e), done.has(e.id)));
40
41
  if (opts.json) {
41
42
  console.log(JSON.stringify({ count: rows.length, messages: rows, ...(note ? { note } : {}) }, null, 2));
42
43
  return;
@@ -14,13 +14,14 @@
14
14
  * session is kept valid by `hq auth refresh` / `hq-auth-refresh` and consumed
15
15
  * by the deploy + sync skills.
16
16
  */
17
+ import { loginWithBrowserPreference } from "../utils/login-browser.js";
17
18
  import { releaseCurrentPackageUseLease, releasePackageUseLeaseAfterResidentPreload } from "../utils/package-use-lease.js";
18
19
  import { preloadResidentPackageModules, reportResidentPackagePreloadFailure } from "../utils/resident-package-preload.js";
19
20
  import * as fs from "node:fs";
20
21
  import { open, realpath } from "node:fs/promises";
21
22
  import path from "node:path";
22
23
  import chalk from "chalk";
23
- import { browserLogin, clearCachedTokens, loadCachedTokens, isExpiring, loadMachineCreds, CognitoAuthError, } from "@indigoai-us/hq-cloud";
24
+ import { clearCachedTokens, loadCachedTokens, isExpiring, loadMachineCreds, CognitoAuthError, } from "@indigoai-us/hq-cloud";
24
25
  import { DEFAULT_COGNITO, refreshCachedSession, resolveCognitoTokenSource, ensureMachineSessionTokens, personTokenCacheFile, machineTokenCacheFile, loadMachineCachedTokens, } from "../utils/cognito-session.js";
25
26
  // Static (node builtins only): a lazy import here would need a resident
26
27
  // preload entry for the auth-login path.
@@ -212,6 +213,7 @@ export function registerAuthCommands(program) {
212
213
  .command("login")
213
214
  .description("Sign in to HQ — opens the Cognito Hosted UI and caches tokens locally")
214
215
  .option("--provider <provider>", "OAuth provider to use: google, microsoft, or picker")
216
+ .option("--no-browser", "Print the sign-in URL without opening a browser")
215
217
  .action(async (options) => {
216
218
  if (resolveCognitoTokenSource() === "machine") {
217
219
  console.log(chalk.green(`Running as ${machineIdentityLabel()} — sessions mint automatically; no browser login needed.`));
@@ -237,7 +239,7 @@ export function registerAuthCommands(program) {
237
239
  }
238
240
  const selection = resolveLoginProviderSelection(options.provider, process.env, rememberedProvider);
239
241
  await releasePackageUseLeaseAfterResidentPreload(() => preloadResidentPackageModules("auth-login"), reportResidentPackagePreloadFailure, releaseCurrentPackageUseLease);
240
- const tokens = await browserLogin(selection.config);
242
+ const tokens = await loginWithBrowserPreference(selection.config, options.browser);
241
243
  try {
242
244
  storeLastLoginProvider(providerFromIdToken(tokens.idToken) ?? selection.providerToRemember);
243
245
  }
@@ -243,7 +243,7 @@ export function spawnDetachedRun(name, dir) {
243
243
  detached: true,
244
244
  windowsHide: true,
245
245
  stdio: ["ignore", fd, fd],
246
- env: { ...process.env, HQ_NO_UPDATE_CHECK: "1" },
246
+ env: { ...process.env, HQ_NO_UPDATE_CHECK: "1", HQ_NO_ENSURE_HQ_DESKTOP: "1" },
247
247
  });
248
248
  fs.closeSync(fd);
249
249
  child.unref();
@@ -1074,7 +1074,8 @@ export function registerCloudCommands(program) {
1074
1074
  }
1075
1075
  }
1076
1076
  else {
1077
- log(chalk.green(`\n✓ Pushed ${result.filesUploaded} file(s) (${formatBytes(result.bytesUploaded)}, ${result.filesSkipped} skipped)`));
1077
+ const skipSummary = formatPushSkipSummary(result);
1078
+ log(chalk.green(`\n✓ Pushed ${result.filesUploaded} file(s) (${formatBytes(result.bytesUploaded)}, ${skipSummary})`));
1078
1079
  }
1079
1080
  await syncHealth.succeeded();
1080
1081
  const exitCode = scopeExcludedExitCode(result.filesExcludedByScope + staleRefusalCount);
@@ -2058,6 +2059,35 @@ function scopeLabel(slug) {
2058
2059
  return "personal (companies/personal)";
2059
2060
  return slug;
2060
2061
  }
2062
+ function formatPushSkipSummary(result) {
2063
+ const detail = result.filesSkippedDetail;
2064
+ if (!detail)
2065
+ return `${result.filesSkipped} skipped`;
2066
+ const parts = [];
2067
+ if (detail.upToDate > 0)
2068
+ parts.push(`${detail.upToDate} already up to date`);
2069
+ const otherTotal = detail.conflict + detail.brokenLink + detail.other;
2070
+ if (otherTotal > 0) {
2071
+ const named = [];
2072
+ if (detail.conflict > 0) {
2073
+ named.push(`${detail.conflict} conflict${detail.conflict === 1 ? "" : "s"}`);
2074
+ }
2075
+ if (detail.brokenLink > 0) {
2076
+ named.push(`${detail.brokenLink} broken link${detail.brokenLink === 1 ? "" : "s"}`);
2077
+ }
2078
+ if (detail.other > 0)
2079
+ named.push(`${detail.other} other`);
2080
+ if (detail.conflict > 0 || detail.brokenLink > 0) {
2081
+ parts.push(`${otherTotal} skipped (${named.join(", ")})`);
2082
+ }
2083
+ else {
2084
+ parts.push(`${otherTotal} skipped`);
2085
+ }
2086
+ }
2087
+ if (parts.length === 0)
2088
+ return `${result.filesSkipped} skipped`;
2089
+ return parts.join(", ");
2090
+ }
2061
2091
  function formatBytes(bytes) {
2062
2092
  if (bytes === 0)
2063
2093
  return "0 B";
@@ -14,8 +14,25 @@ export type RefreshVaultAccessDependencies = {
14
14
  now: () => Date;
15
15
  hqAvailable: boolean;
16
16
  runHq?: (args: string[], cwd: string) => HqResult;
17
+ /** How long to wait for another refresh to release the manifest lock. */
18
+ lockWaitMs?: number;
17
19
  };
18
20
  export declare function createRefreshVaultAccessDependencies(cwd: string, env: NodeJS.ProcessEnv, now: () => Date): RefreshVaultAccessDependencies;
19
21
  export declare function runRefreshVaultAccess(args: string[], deps: RefreshVaultAccessDependencies): UtilityOutput;
22
+ /** Test seam: runs after a waiter has judged the lock stale and before it takes the lock over. */
23
+ export interface ManifestLockHooks {
24
+ afterStaleCheck?: () => void;
25
+ }
26
+ /**
27
+ * Take the manifest lock and return its owner token, or undefined when the
28
+ * lock stays busy past `waitMs`. The lock file is created by hard-linking a
29
+ * file that already holds the token, so it never exists without an owner. A
30
+ * stale lock (older than LOCK_STALE_MS, or whose holder on this host has
31
+ * exited) is taken over through removeLockIf, so two waiters that both judge
32
+ * it stale cannot remove each other's new lock.
33
+ */
34
+ export declare function acquireManifestLock(lock: string, waitMs: number, hooks?: ManifestLockHooks): string | undefined;
35
+ /** Release the lock if `token` still owns it. Returns false when another process has taken it over. */
36
+ export declare function releaseManifestLock(lock: string, token: string): boolean;
20
37
  export declare function registerCoreRefreshVaultAccessNative(core: Command): void;
21
38
  //# sourceMappingURL=core-refresh-vault-access-native.d.ts.map