@indigoai-us/hq-cli 5.314.0 → 5.315.0

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 (1178) hide show
  1. package/CHANGELOG.md +4311 -1
  2. package/README.md +113 -0
  3. package/assets/bot-workers/setup/context/USER-GUIDE.md +404 -0
  4. package/assets/bot-workers/setup/context/quick-reference.md +199 -0
  5. package/assets/bot-workers/setup/skills/agents-and-team.md +167 -0
  6. package/assets/bot-workers/setup/skills/explain-hq.md +35 -0
  7. package/assets/bot-workers/setup/skills/first-company.md +74 -0
  8. package/assets/bot-workers/setup/skills/joining-a-team.md +125 -0
  9. package/assets/bot-workers/setup/skills/pricing.md +92 -0
  10. package/assets/bot-workers/setup/skills/standing-help.md +81 -0
  11. package/assets/bot-workers/setup/skills/your-business.md +281 -0
  12. package/assets/bot-workers/setup/worker.yaml +791 -0
  13. package/assets/lanes-hooks/hq-lanes-drain.json +15 -0
  14. package/assets/lanes-hooks/hq-lanes-drain.mjs +275 -0
  15. package/assets/lanes-hooks/hq-lanes-drain.sh +21 -0
  16. package/assets/lanes-reconcile/hq-lanes-reconcile.service +11 -0
  17. package/assets/lanes-reconcile/hq-lanes-reconcile.timer +12 -0
  18. package/assets/scaffold/.claude/hooks/validate-policy-frontmatter.sh +485 -0
  19. package/assets/scaffold/core/scripts/audit-log.sh +384 -0
  20. package/assets/scaffold/core/scripts/checkpoint-stop-gate.sh +281 -43
  21. package/assets/scaffold/core/scripts/clean-worktree-reconcile-handoff.sh +171 -0
  22. package/assets/scaffold/core/scripts/eval-trigger.sh +193 -0
  23. package/assets/scaffold/core/scripts/git-pack-extension-check.sh +164 -0
  24. package/assets/scaffold/core/scripts/handoff-finalize.sh +688 -0
  25. package/assets/scaffold/core/scripts/handoff-open-steps.sh +81 -0
  26. package/assets/scaffold/core/scripts/handoff-post.sh +252 -0
  27. package/assets/scaffold/core/scripts/hook-lib.sh +345 -50
  28. package/assets/scaffold/core/scripts/hq-delegate-bundle.sh +307 -0
  29. package/assets/scaffold/core/scripts/hq-delegate-grant.sh +252 -0
  30. package/assets/scaffold/core/scripts/hq-delegate-pickup.sh +99 -0
  31. package/assets/scaffold/core/scripts/hq-delegate-publish.sh +91 -0
  32. package/assets/scaffold/core/scripts/hq-delegate-repo.sh +158 -0
  33. package/assets/scaffold/core/scripts/hq-delegate-resolve.sh +145 -0
  34. package/assets/scaffold/core/scripts/hq-delegate-secrets.sh +129 -0
  35. package/assets/scaffold/core/scripts/hq-delegate-send.sh +259 -0
  36. package/assets/scaffold/core/scripts/hq-delegate-transfer.sh +175 -0
  37. package/assets/scaffold/core/scripts/hq-delegate-verify.sh +238 -0
  38. package/assets/scaffold/core/scripts/hq-dm-bind.sh +585 -0
  39. package/assets/scaffold/core/scripts/hq-job-notify.sh +389 -0
  40. package/assets/scaffold/core/scripts/hq-job-probe.sh +835 -0
  41. package/assets/scaffold/core/scripts/hq-job-remediate.sh +359 -0
  42. package/assets/scaffold/core/scripts/hq-job-run.sh +1025 -0
  43. package/assets/scaffold/core/scripts/hq-pin.sh +118 -0
  44. package/assets/scaffold/core/scripts/hq-session.sh +184 -23
  45. package/assets/scaffold/core/scripts/jobs-schedule-parse.sh +310 -0
  46. package/assets/scaffold/core/scripts/jobs-validate.sh +451 -0
  47. package/assets/scaffold/core/scripts/knowledge-prefs.sh +55 -0
  48. package/assets/scaffold/core/scripts/lib/portable.sh +211 -0
  49. package/assets/scaffold/core/scripts/lib/secret-patterns.sh +58 -0
  50. package/assets/scaffold/core/scripts/lib/session-id.sh +3 -2
  51. package/assets/scaffold/core/scripts/lib/session-scope-capability.sh +1 -1
  52. package/assets/scaffold/core/scripts/lib/work-mesh-enqueue.sh +2 -1
  53. package/assets/scaffold/core/scripts/lib/work-mesh-live-hook.sh +378 -0
  54. package/assets/scaffold/core/scripts/lib/work-mesh-live-rebind.sh +141 -0
  55. package/assets/scaffold/core/scripts/migrate-policy-triggers.sh +378 -0
  56. package/assets/scaffold/core/scripts/ontology-audience-grant.sh +81 -0
  57. package/assets/scaffold/core/scripts/ontology-brief.mjs +93 -0
  58. package/assets/scaffold/core/scripts/ontology-candidate.sh +100 -0
  59. package/assets/scaffold/core/scripts/ontology-garden.mjs +238 -0
  60. package/assets/scaffold/core/scripts/ontology-source-worklist.sh +79 -0
  61. package/assets/scaffold/core/scripts/outpost-jobs-reconcile.sh +834 -0
  62. package/assets/scaffold/core/scripts/policy-age-report.sh +156 -0
  63. package/assets/scaffold/core/scripts/policy-retire.sh +199 -0
  64. package/assets/scaffold/core/scripts/qmd-reindex-after-sync.sh +10 -87
  65. package/assets/scaffold/core/scripts/qmd-reindex-bg.sh +40 -0
  66. package/assets/scaffold/core/scripts/read-policy-frontmatter.sh +32 -0
  67. package/assets/scaffold/core/scripts/rebuild-company-knowledge-index.sh +36 -3
  68. package/assets/scaffold/core/scripts/rebuild-projects-index.sh +99 -12
  69. package/assets/scaffold/core/scripts/refresh-vault-access.sh +188 -0
  70. package/assets/scaffold/core/scripts/register-project.sh +262 -0
  71. package/assets/scaffold/core/scripts/resolve-company.sh +199 -0
  72. package/assets/scaffold/core/scripts/resume-thread-lock.sh +285 -0
  73. package/assets/scaffold/core/scripts/source-yaml-validate.sh +36 -0
  74. package/assets/scaffold/core/scripts/token-usage-report.sh +81 -20
  75. package/assets/scaffold/core/scripts/verify-story-deliverables.sh +148 -0
  76. package/assets/scaffold/core/scripts/work-mesh-live-bind-trusted.sh +152 -0
  77. package/assets/scaffold/core/scripts/work-mesh-live-rebind.sh +59 -0
  78. package/assets/scaffold/core/scripts/worktree-gc.sh +362 -0
  79. package/contracts/preflight/v1/fixtures.json +87 -0
  80. package/contracts/preflight/v1/schema.json +58 -0
  81. package/dist/bin/hq-auth-refresh.d.ts +2 -0
  82. package/dist/bin/hq-auth-refresh.js +12 -6
  83. package/dist/command-catalog.generated.d.ts +10753 -0
  84. package/dist/command-catalog.generated.js +13859 -0
  85. package/dist/command-registration-plan.d.ts +474 -0
  86. package/dist/command-registration-plan.js +136 -0
  87. package/dist/commands/__fixtures__/access-vault.d.ts +2 -0
  88. package/dist/commands/__fixtures__/access-vault.js +1 -1
  89. package/dist/commands/_patterns.d.ts +16 -0
  90. package/dist/commands/_patterns.js +20 -3
  91. package/dist/commands/access.d.ts +2 -1
  92. package/dist/commands/access.js +58 -49
  93. package/dist/commands/agent-enroll.d.ts +146 -0
  94. package/dist/commands/agent-enroll.js +401 -0
  95. package/dist/commands/agent-inbox.d.ts +9 -0
  96. package/dist/commands/agent-inbox.js +102 -0
  97. package/dist/commands/agent-kit.d.ts +87 -0
  98. package/dist/commands/agent-kit.js +480 -0
  99. package/dist/commands/agent-mcp.d.ts +24 -0
  100. package/dist/commands/agent-mcp.js +127 -0
  101. package/dist/commands/agent-probe.d.ts +77 -0
  102. package/dist/commands/agent-probe.js +335 -0
  103. package/dist/commands/agent.d.ts +13 -0
  104. package/dist/commands/agent.js +40 -0
  105. package/dist/commands/agents.d.ts +106 -4
  106. package/dist/commands/agents.js +924 -45
  107. package/dist/commands/auth.d.ts +1 -0
  108. package/dist/commands/auth.js +189 -19
  109. package/dist/commands/billing-sponsor.d.ts +83 -0
  110. package/dist/commands/billing-sponsor.js +344 -0
  111. package/dist/commands/billing.d.ts +3 -0
  112. package/dist/commands/billing.js +6 -1
  113. package/dist/commands/bot-companies.d.ts +40 -0
  114. package/dist/commands/bot-companies.js +64 -0
  115. package/dist/commands/bot-continuity.d.ts +28 -0
  116. package/dist/commands/bot-continuity.js +68 -0
  117. package/dist/commands/bot-jobs.d.ts +127 -0
  118. package/dist/commands/bot-jobs.js +454 -0
  119. package/dist/commands/bot.d.ts +278 -0
  120. package/dist/commands/bot.js +1982 -0
  121. package/dist/commands/channels.js +56 -1
  122. package/dist/commands/cloud-demote.js +3 -2
  123. package/dist/commands/cloud-provision.d.ts +14 -0
  124. package/dist/commands/cloud-provision.js +232 -58
  125. package/dist/commands/cloud-retire.d.ts +51 -0
  126. package/dist/commands/cloud-retire.js +154 -0
  127. package/dist/commands/cloud.d.ts +49 -15
  128. package/dist/commands/cloud.js +357 -122
  129. package/dist/commands/company-rename-flag.d.ts +4 -0
  130. package/dist/commands/company-rename-flag.js +7 -0
  131. package/dist/commands/company-rename.d.ts +4 -0
  132. package/dist/commands/company-rename.js +90 -0
  133. package/dist/commands/company-transfer.d.ts +4 -28
  134. package/dist/commands/company-transfer.js +5 -49
  135. package/dist/commands/company.js +68 -3
  136. package/dist/commands/core-audit-log-native.d.ts +9 -0
  137. package/dist/commands/core-audit-log-native.js +257 -0
  138. package/dist/commands/core-checkpoint-gate-setting.d.ts +59 -0
  139. package/dist/commands/core-checkpoint-gate-setting.js +163 -0
  140. package/dist/commands/core-checkpoint-stop-gate-native.d.ts +34 -0
  141. package/dist/commands/core-checkpoint-stop-gate-native.js +725 -0
  142. package/dist/commands/core-checkpoint.d.ts +19 -9
  143. package/dist/commands/core-checkpoint.js +301 -37
  144. package/dist/commands/core-command-catalog.d.ts +34 -0
  145. package/dist/commands/core-command-catalog.js +62 -0
  146. package/dist/commands/core-company-index-scope-flag.d.ts +3 -0
  147. package/dist/commands/core-company-index-scope-flag.js +6 -0
  148. package/dist/commands/core-delegate-w1b.d.ts +10 -0
  149. package/dist/commands/core-delegate-w1b.js +1219 -0
  150. package/dist/commands/core-delegate.d.ts +46 -0
  151. package/dist/commands/core-delegate.js +1040 -0
  152. package/dist/commands/core-dm-bind-native.d.ts +32 -0
  153. package/dist/commands/core-dm-bind-native.js +668 -0
  154. package/dist/commands/core-eval-trigger-native.d.ts +4 -0
  155. package/dist/commands/core-eval-trigger-native.js +12 -0
  156. package/dist/commands/core-git-pack-extension-check-native.d.ts +22 -0
  157. package/dist/commands/core-git-pack-extension-check-native.js +190 -0
  158. package/dist/commands/core-handoff-fast.d.ts +18 -0
  159. package/dist/commands/core-handoff-fast.js +104 -0
  160. package/dist/commands/core-handoff-open-steps.d.ts +21 -0
  161. package/dist/commands/core-handoff-open-steps.js +264 -0
  162. package/dist/commands/core-handoff.d.ts +24 -0
  163. package/dist/commands/core-handoff.js +1144 -0
  164. package/dist/commands/core-hq-session-native.d.ts +39 -0
  165. package/dist/commands/core-hq-session-native.js +579 -0
  166. package/dist/commands/core-job-native-utils.d.ts +6 -0
  167. package/dist/commands/core-job-native-utils.js +80 -0
  168. package/dist/commands/core-job-native.d.ts +5 -0
  169. package/dist/commands/core-job-native.js +16 -0
  170. package/dist/commands/core-job-notify-native.d.ts +36 -0
  171. package/dist/commands/core-job-notify-native.js +359 -0
  172. package/dist/commands/core-job-probe-native.d.ts +45 -0
  173. package/dist/commands/core-job-probe-native.js +564 -0
  174. package/dist/commands/core-job-remediate-native.d.ts +26 -0
  175. package/dist/commands/core-job-remediate-native.js +374 -0
  176. package/dist/commands/core-job-remote-launcher.d.ts +7 -0
  177. package/dist/commands/core-job-remote-launcher.js +51 -0
  178. package/dist/commands/core-job-run-native.d.ts +47 -0
  179. package/dist/commands/core-job-run-native.js +1215 -0
  180. package/dist/commands/core-jobs-native.d.ts +25 -0
  181. package/dist/commands/core-jobs-native.js +1339 -0
  182. package/dist/commands/core-knowledge-prefs.d.ts +11 -0
  183. package/dist/commands/core-knowledge-prefs.js +137 -0
  184. package/dist/commands/core-migrate-policy-triggers-native.d.ts +21 -0
  185. package/dist/commands/core-migrate-policy-triggers-native.js +374 -0
  186. package/dist/commands/core-native-handoff-flag.d.ts +4 -0
  187. package/dist/commands/core-native-handoff-flag.js +7 -0
  188. package/dist/commands/core-native-hook-helper-commands.d.ts +4 -0
  189. package/dist/commands/core-native-hook-helper-commands.js +56 -0
  190. package/dist/commands/core-native-hook-helpers-flag.d.ts +4 -0
  191. package/dist/commands/core-native-hook-helpers-flag.js +7 -0
  192. package/dist/commands/core-native-jobs-flag.d.ts +4 -0
  193. package/dist/commands/core-native-jobs-flag.js +7 -0
  194. package/dist/commands/core-native-policy-flag.d.ts +9 -0
  195. package/dist/commands/core-native-policy-flag.js +12 -0
  196. package/dist/commands/core-native-session-flag.d.ts +4 -0
  197. package/dist/commands/core-native-session-flag.js +7 -0
  198. package/dist/commands/core-native-utilities-flag.d.ts +4 -0
  199. package/dist/commands/core-native-utilities-flag.js +7 -0
  200. package/dist/commands/core-native-utilities.d.ts +29 -0
  201. package/dist/commands/core-native-utilities.js +54 -0
  202. package/dist/commands/core-native-worker-skills-flag.d.ts +4 -0
  203. package/dist/commands/core-native-worker-skills-flag.js +7 -0
  204. package/dist/commands/core-ontology-native.d.ts +17 -0
  205. package/dist/commands/core-ontology-native.js +916 -0
  206. package/dist/commands/core-ontology.d.ts +66 -0
  207. package/dist/commands/core-ontology.js +430 -0
  208. package/dist/commands/core-pin-native.d.ts +14 -0
  209. package/dist/commands/core-pin-native.js +236 -0
  210. package/dist/commands/core-policy-frontmatter.d.ts +8 -0
  211. package/dist/commands/core-policy-frontmatter.js +52 -0
  212. package/dist/commands/core-policy.d.ts +14 -0
  213. package/dist/commands/core-policy.js +1018 -0
  214. package/dist/commands/core-refresh-vault-access-native.d.ts +20 -0
  215. package/dist/commands/core-refresh-vault-access-native.js +229 -0
  216. package/dist/commands/core-register-project-native.d.ts +30 -0
  217. package/dist/commands/core-register-project-native.js +347 -0
  218. package/dist/commands/core-resolve-company-command.d.ts +4 -0
  219. package/dist/commands/core-resolve-company-command.js +42 -0
  220. package/dist/commands/core-resolve-company-native.d.ts +28 -0
  221. package/dist/commands/core-resolve-company-native.js +408 -0
  222. package/dist/commands/core-work-mesh-bind-trusted-native.d.ts +32 -0
  223. package/dist/commands/core-work-mesh-bind-trusted-native.js +190 -0
  224. package/dist/commands/core-work-mesh-live-rebind-native.d.ts +18 -0
  225. package/dist/commands/core-work-mesh-live-rebind-native.js +262 -0
  226. package/dist/commands/core-worker-lint-native.d.ts +4 -0
  227. package/dist/commands/core-worker-lint-native.js +160 -0
  228. package/dist/commands/core-worker-share-native.d.ts +4 -0
  229. package/dist/commands/core-worker-share-native.js +260 -0
  230. package/dist/commands/core-worker-skills-command.d.ts +8 -0
  231. package/dist/commands/core-worker-skills-command.js +33 -0
  232. package/dist/commands/core-worker-skills-runtime.d.ts +33 -0
  233. package/dist/commands/core-worker-skills-runtime.js +86 -0
  234. package/dist/commands/core.d.ts +4 -0
  235. package/dist/commands/core.js +277 -80
  236. package/dist/commands/crm.js +52 -3
  237. package/dist/commands/daemon.d.ts +63 -0
  238. package/dist/commands/daemon.js +877 -0
  239. package/dist/commands/db-provision.js +4 -4
  240. package/dist/commands/db-sql.js +7 -21
  241. package/dist/commands/deploy-comments.d.ts +3 -0
  242. package/dist/commands/deploy-comments.js +162 -0
  243. package/dist/commands/dm.d.ts +119 -12
  244. package/dist/commands/dm.js +388 -38
  245. package/dist/commands/doctor.d.ts +12 -0
  246. package/dist/commands/doctor.js +158 -12
  247. package/dist/commands/feedback.d.ts +6 -0
  248. package/dist/commands/feedback.js +86 -37
  249. package/dist/commands/files-browse.d.ts +32 -12
  250. package/dist/commands/files-browse.js +176 -60
  251. package/dist/commands/files.d.ts +17 -0
  252. package/dist/commands/files.js +300 -47
  253. package/dist/commands/group-grants.js +3 -2
  254. package/dist/commands/groups.js +6 -5
  255. package/dist/commands/index-cmd.d.ts +19 -1
  256. package/dist/commands/index-cmd.js +74 -7
  257. package/dist/commands/integrations-api.d.ts +15 -10
  258. package/dist/commands/integrations-api.js +27 -22
  259. package/dist/commands/integrations-connect.d.ts +51 -13
  260. package/dist/commands/integrations-connect.js +86 -71
  261. package/dist/commands/integrations-core.d.ts +6 -6
  262. package/dist/commands/integrations-core.js +25 -11
  263. package/dist/commands/integrations-import.d.ts +1 -1
  264. package/dist/commands/integrations-import.js +43 -24
  265. package/dist/commands/integrations-manage.js +20 -13
  266. package/dist/commands/integrations.d.ts +8 -0
  267. package/dist/commands/integrations.js +94 -7
  268. package/dist/commands/lanes-accounts.d.ts +28 -0
  269. package/dist/commands/lanes-accounts.js +595 -0
  270. package/dist/commands/lanes-autopilot.d.ts +11 -0
  271. package/dist/commands/lanes-autopilot.js +336 -0
  272. package/dist/commands/lanes-checks.d.ts +51 -0
  273. package/dist/commands/lanes-checks.js +941 -0
  274. package/dist/commands/lanes-hold.d.ts +43 -0
  275. package/dist/commands/lanes-hold.js +655 -0
  276. package/dist/commands/lanes-keep-alive-audit.d.ts +10 -0
  277. package/dist/commands/lanes-keep-alive-audit.js +19 -0
  278. package/dist/commands/lanes-kpis.d.ts +11 -0
  279. package/dist/commands/lanes-kpis.js +34 -0
  280. package/dist/commands/lanes-message.d.ts +9 -0
  281. package/dist/commands/lanes-message.js +946 -0
  282. package/dist/commands/lanes-move.d.ts +12 -0
  283. package/dist/commands/lanes-move.js +397 -0
  284. package/dist/commands/lanes-questions.d.ts +36 -0
  285. package/dist/commands/lanes-questions.js +1005 -0
  286. package/dist/commands/lanes-report.d.ts +11 -0
  287. package/dist/commands/lanes-report.js +333 -0
  288. package/dist/commands/lanes-resume.d.ts +6 -0
  289. package/dist/commands/lanes-resume.js +564 -0
  290. package/dist/commands/lanes-review.d.ts +10 -0
  291. package/dist/commands/lanes-review.js +56 -0
  292. package/dist/commands/lanes-shared.d.ts +449 -0
  293. package/dist/commands/lanes-shared.js +170 -0
  294. package/dist/commands/lanes-stories.d.ts +15 -0
  295. package/dist/commands/lanes-stories.js +347 -0
  296. package/dist/commands/lanes-watch.d.ts +7 -0
  297. package/dist/commands/lanes-watch.js +216 -0
  298. package/dist/commands/lanes.d.ts +149 -0
  299. package/dist/commands/lanes.js +8983 -0
  300. package/dist/commands/login.js +49 -6
  301. package/dist/commands/mcp-registration.d.ts +32 -25
  302. package/dist/commands/mcp-registration.js +256 -23
  303. package/dist/commands/mcp-status.js +1 -0
  304. package/dist/commands/meetings.js +55 -34
  305. package/dist/commands/members.js +5 -1
  306. package/dist/commands/mesh.d.ts +11 -0
  307. package/dist/commands/mesh.js +1086 -76
  308. package/dist/commands/monitor.d.ts +58 -0
  309. package/dist/commands/monitor.js +980 -0
  310. package/dist/commands/onboard-bot-membership.d.ts +32 -0
  311. package/dist/commands/onboard-bot-membership.js +40 -0
  312. package/dist/commands/onboard-create-identity.d.ts +26 -0
  313. package/dist/commands/onboard-create-identity.js +23 -0
  314. package/dist/commands/onboard-identity-guard.d.ts +1 -1
  315. package/dist/commands/onboard.js +24 -5
  316. package/dist/commands/outpost-pruner.d.ts +3 -0
  317. package/dist/commands/outpost-pruner.js +125 -0
  318. package/dist/commands/pack-install.js +3 -1
  319. package/dist/commands/packs.js +11 -1
  320. package/dist/commands/people.d.ts +4 -0
  321. package/dist/commands/people.js +37 -3
  322. package/dist/commands/personal-connector-settings-flag.d.ts +4 -0
  323. package/dist/commands/personal-connector-settings-flag.js +7 -0
  324. package/dist/commands/personal-targeted-push-flag.d.ts +4 -0
  325. package/dist/commands/personal-targeted-push-flag.js +7 -0
  326. package/dist/commands/personal-targeted-push-paths.d.ts +3 -0
  327. package/dist/commands/personal-targeted-push-paths.js +67 -0
  328. package/dist/commands/publish.d.ts +8 -1
  329. package/dist/commands/publish.js +17 -4
  330. package/dist/commands/reindex.js +56 -6
  331. package/dist/commands/report.d.ts +19 -0
  332. package/dist/commands/report.js +537 -0
  333. package/dist/commands/rescue.d.ts +4 -0
  334. package/dist/commands/rescue.js +27 -17
  335. package/dist/commands/run-feature-telemetry.d.ts +3 -0
  336. package/dist/commands/run-feature-telemetry.js +6 -0
  337. package/dist/commands/run.js +18 -4
  338. package/dist/commands/safe-extract.d.ts +11 -2
  339. package/dist/commands/safe-extract.js +36 -8
  340. package/dist/commands/secrets.d.ts +20 -2
  341. package/dist/commands/secrets.js +175 -71
  342. package/dist/commands/skill.d.ts +35 -4
  343. package/dist/commands/skill.js +357 -18
  344. package/dist/commands/staff/reset-test-account.d.ts +110 -0
  345. package/dist/commands/staff/reset-test-account.js +268 -0
  346. package/dist/commands/staff/test-account.d.ts +51 -0
  347. package/dist/commands/staff/test-account.js +196 -0
  348. package/dist/commands/sync-mode.d.ts +11 -0
  349. package/dist/commands/sync-mode.js +30 -0
  350. package/dist/commands/sync-narrow.js +36 -5
  351. package/dist/commands/team-sync.js +71 -10
  352. package/dist/commands/update.js +6 -0
  353. package/dist/commands/vault-retention-flag.d.ts +3 -0
  354. package/dist/commands/vault-retention-flag.js +9 -0
  355. package/dist/commands/vault-retention.d.ts +11 -0
  356. package/dist/commands/vault-retention.js +69 -0
  357. package/dist/commands/version.d.ts +10 -0
  358. package/dist/commands/version.js +11 -0
  359. package/dist/commands/whoami.d.ts +22 -0
  360. package/dist/commands/whoami.js +137 -4
  361. package/dist/commands/workers.d.ts +2 -14
  362. package/dist/commands/workers.js +7 -10
  363. package/dist/fast-core.d.ts +6 -7
  364. package/dist/fast-core.js +87 -24
  365. package/dist/fast-scaffold.d.ts +86 -0
  366. package/dist/fast-scaffold.js +364 -0
  367. package/dist/index.d.ts +3 -4
  368. package/dist/index.js +59 -9
  369. package/dist/lanes-drain-hook.d.ts +14 -0
  370. package/dist/lanes-drain-hook.js +203 -0
  371. package/dist/lazy-commands.d.ts +20 -44
  372. package/dist/lazy-commands.js +60 -58
  373. package/dist/lib/agent-kit/adopt-identity.d.ts +27 -0
  374. package/dist/lib/agent-kit/adopt-identity.js +60 -0
  375. package/dist/lib/agent-kit/attachment-download.d.ts +24 -0
  376. package/dist/lib/agent-kit/attachment-download.js +47 -0
  377. package/dist/lib/agent-kit/creds.d.ts +106 -0
  378. package/dist/lib/agent-kit/creds.js +163 -0
  379. package/dist/lib/agent-kit/fallback.d.ts +78 -0
  380. package/dist/lib/agent-kit/fallback.js +210 -0
  381. package/dist/lib/agent-kit/inbox-state.d.ts +83 -0
  382. package/dist/lib/agent-kit/inbox-state.js +159 -0
  383. package/dist/lib/agent-kit/kit-config.d.ts +56 -0
  384. package/dist/lib/agent-kit/kit-config.js +65 -0
  385. package/dist/lib/agent-kit/log.d.ts +16 -0
  386. package/dist/lib/agent-kit/log.js +46 -0
  387. package/dist/lib/agent-kit/mcp/attachments.d.ts +126 -0
  388. package/dist/lib/agent-kit/mcp/attachments.js +222 -0
  389. package/dist/lib/agent-kit/mcp/jsonrpc.d.ts +75 -0
  390. package/dist/lib/agent-kit/mcp/jsonrpc.js +164 -0
  391. package/dist/lib/agent-kit/mcp/tools.d.ts +64 -0
  392. package/dist/lib/agent-kit/mcp/tools.js +397 -0
  393. package/dist/lib/agent-kit/paths.d.ts +65 -0
  394. package/dist/lib/agent-kit/paths.js +118 -0
  395. package/dist/lib/agent-kit/private-file.d.ts +29 -0
  396. package/dist/lib/agent-kit/private-file.js +91 -0
  397. package/dist/lib/agent-kit/run/heartbeat.d.ts +72 -0
  398. package/dist/lib/agent-kit/run/heartbeat.js +128 -0
  399. package/dist/lib/agent-kit/run/inbox.d.ts +76 -0
  400. package/dist/lib/agent-kit/run/inbox.js +205 -0
  401. package/dist/lib/agent-kit/run/supervisor.d.ts +35 -0
  402. package/dist/lib/agent-kit/run/supervisor.js +85 -0
  403. package/dist/lib/agent-kit/run/sync.d.ts +33 -0
  404. package/dist/lib/agent-kit/run/sync.js +58 -0
  405. package/dist/lib/agent-kit/services.d.ts +31 -0
  406. package/dist/lib/agent-kit/services.js +55 -0
  407. package/dist/lib/agent-kit/skills.d.ts +18 -0
  408. package/dist/lib/agent-kit/skills.js +151 -0
  409. package/dist/lib/agent-kit/wake.d.ts +83 -0
  410. package/dist/lib/agent-kit/wake.js +243 -0
  411. package/dist/lib/agents/model-catalog.d.ts +62 -0
  412. package/dist/lib/agents/model-catalog.js +275 -0
  413. package/dist/lib/auth-login-provider-state.d.ts +8 -0
  414. package/dist/lib/auth-login-provider-state.js +63 -0
  415. package/dist/lib/aws-sdk-node-warning-output.d.ts +12 -0
  416. package/dist/lib/aws-sdk-node-warning-output.js +22 -0
  417. package/dist/lib/billing/free-month.d.ts +18 -0
  418. package/dist/lib/billing/free-month.js +31 -0
  419. package/dist/lib/billing/plan-limit-refusals.d.ts +69 -0
  420. package/dist/lib/billing/plan-limit-refusals.js +187 -0
  421. package/dist/lib/billing/plan-limit-upgrade-url.d.ts +11 -0
  422. package/dist/lib/billing/plan-limit-upgrade-url.js +66 -0
  423. package/dist/lib/billing/plan-lock.d.ts +143 -0
  424. package/dist/lib/billing/plan-lock.js +439 -0
  425. package/dist/lib/bot/api.d.ts +349 -0
  426. package/dist/lib/bot/api.js +316 -0
  427. package/dist/lib/bot/attachments.d.ts +45 -0
  428. package/dist/lib/bot/attachments.js +89 -0
  429. package/dist/lib/bot/cli-update.d.ts +138 -0
  430. package/dist/lib/bot/cli-update.js +278 -0
  431. package/dist/lib/bot/company-bind.d.ts +27 -0
  432. package/dist/lib/bot/company-bind.js +62 -0
  433. package/dist/lib/bot/config.d.ts +153 -0
  434. package/dist/lib/bot/config.js +233 -0
  435. package/dist/lib/bot/continuity-download.d.ts +28 -0
  436. package/dist/lib/bot/continuity-download.js +75 -0
  437. package/dist/lib/bot/continuity-install.d.ts +14 -0
  438. package/dist/lib/bot/continuity-install.js +101 -0
  439. package/dist/lib/bot/continuity.d.ts +67 -0
  440. package/dist/lib/bot/continuity.js +301 -0
  441. package/dist/lib/bot/creds.d.ts +24 -0
  442. package/dist/lib/bot/creds.js +51 -0
  443. package/dist/lib/bot/daemon.d.ts +173 -0
  444. package/dist/lib/bot/daemon.js +552 -0
  445. package/dist/lib/bot/inbox-poll-backoff-flag.d.ts +24 -0
  446. package/dist/lib/bot/inbox-poll-backoff-flag.js +135 -0
  447. package/dist/lib/bot/inbox-state.d.ts +18 -0
  448. package/dist/lib/bot/inbox-state.js +51 -0
  449. package/dist/lib/bot/index.d.ts +23 -0
  450. package/dist/lib/bot/index.js +23 -0
  451. package/dist/lib/bot/inflight.d.ts +119 -0
  452. package/dist/lib/bot/inflight.js +83 -0
  453. package/dist/lib/bot/job-completions.d.ts +89 -0
  454. package/dist/lib/bot/job-completions.js +132 -0
  455. package/dist/lib/bot/job-run.d.ts +109 -0
  456. package/dist/lib/bot/job-run.js +246 -0
  457. package/dist/lib/bot/local-config.d.ts +61 -0
  458. package/dist/lib/bot/local-config.js +145 -0
  459. package/dist/lib/bot/local-jobs.d.ts +89 -0
  460. package/dist/lib/bot/local-jobs.js +459 -0
  461. package/dist/lib/bot/local-name.d.ts +54 -0
  462. package/dist/lib/bot/local-name.js +114 -0
  463. package/dist/lib/bot/log.d.ts +13 -0
  464. package/dist/lib/bot/log.js +59 -0
  465. package/dist/lib/bot/owner-context.d.ts +79 -0
  466. package/dist/lib/bot/owner-context.js +175 -0
  467. package/dist/lib/bot/paths.d.ts +76 -0
  468. package/dist/lib/bot/paths.js +131 -0
  469. package/dist/lib/bot/progress.d.ts +132 -0
  470. package/dist/lib/bot/progress.js +289 -0
  471. package/dist/lib/bot/promote.d.ts +16 -0
  472. package/dist/lib/bot/promote.js +106 -0
  473. package/dist/lib/bot/promotion-hold.d.ts +24 -0
  474. package/dist/lib/bot/promotion-hold.js +103 -0
  475. package/dist/lib/bot/promotion-receipt.d.ts +9 -0
  476. package/dist/lib/bot/promotion-receipt.js +56 -0
  477. package/dist/lib/bot/promotion-upload.d.ts +16 -0
  478. package/dist/lib/bot/promotion-upload.js +80 -0
  479. package/dist/lib/bot/prompt.d.ts +136 -0
  480. package/dist/lib/bot/prompt.js +433 -0
  481. package/dist/lib/bot/room-policy.d.ts +63 -0
  482. package/dist/lib/bot/room-policy.js +91 -0
  483. package/dist/lib/bot/run.d.ts +217 -0
  484. package/dist/lib/bot/run.js +1869 -0
  485. package/dist/lib/bot/runnable.d.ts +51 -0
  486. package/dist/lib/bot/runnable.js +65 -0
  487. package/dist/lib/bot/runtime/claude.d.ts +50 -0
  488. package/dist/lib/bot/runtime/claude.js +170 -0
  489. package/dist/lib/bot/runtime/codex.d.ts +28 -0
  490. package/dist/lib/bot/runtime/codex.js +153 -0
  491. package/dist/lib/bot/runtime/grok-acp.d.ts +40 -0
  492. package/dist/lib/bot/runtime/grok-acp.js +265 -0
  493. package/dist/lib/bot/runtime/grok.d.ts +41 -0
  494. package/dist/lib/bot/runtime/grok.js +169 -0
  495. package/dist/lib/bot/runtime/index.d.ts +36 -0
  496. package/dist/lib/bot/runtime/index.js +417 -0
  497. package/dist/lib/bot/runtime/messages-stream.d.ts +56 -0
  498. package/dist/lib/bot/runtime/messages-stream.js +194 -0
  499. package/dist/lib/bot/runtime/sanitize.d.ts +18 -0
  500. package/dist/lib/bot/runtime/sanitize.js +28 -0
  501. package/dist/lib/bot/runtime/types.d.ts +159 -0
  502. package/dist/lib/bot/runtime/types.js +51 -0
  503. package/dist/lib/bot/runtime/windows.d.ts +10 -0
  504. package/dist/lib/bot/runtime/windows.js +53 -0
  505. package/dist/lib/bot/runtime-sign-in.d.ts +24 -0
  506. package/dist/lib/bot/runtime-sign-in.js +31 -0
  507. package/dist/lib/bot/scaffold.d.ts +38 -0
  508. package/dist/lib/bot/scaffold.js +94 -0
  509. package/dist/lib/bot/self-heal.d.ts +52 -0
  510. package/dist/lib/bot/self-heal.js +79 -0
  511. package/dist/lib/bot/self-process.d.ts +19 -0
  512. package/dist/lib/bot/self-process.js +35 -0
  513. package/dist/lib/bot/session.d.ts +19 -0
  514. package/dist/lib/bot/session.js +39 -0
  515. package/dist/lib/bot/setup-explain.d.ts +64 -0
  516. package/dist/lib/bot/setup-explain.js +141 -0
  517. package/dist/lib/bot/split.d.ts +32 -0
  518. package/dist/lib/bot/split.js +241 -0
  519. package/dist/lib/bot/status.d.ts +57 -0
  520. package/dist/lib/bot/status.js +66 -0
  521. package/dist/lib/bot/worker-source.d.ts +66 -0
  522. package/dist/lib/bot/worker-source.js +283 -0
  523. package/dist/lib/checkpoint-ontology/aliases.d.ts +17 -0
  524. package/dist/lib/checkpoint-ontology/aliases.js +44 -0
  525. package/dist/lib/checkpoint-ontology/apply.d.ts +110 -0
  526. package/dist/lib/checkpoint-ontology/apply.js +777 -0
  527. package/dist/lib/checkpoint-ontology/company-brief.d.ts +18 -0
  528. package/dist/lib/checkpoint-ontology/company-brief.js +337 -0
  529. package/dist/lib/checkpoint-ontology/company.d.ts +44 -0
  530. package/dist/lib/checkpoint-ontology/company.js +118 -0
  531. package/dist/lib/checkpoint-ontology/drop-aliases.d.ts +41 -0
  532. package/dist/lib/checkpoint-ontology/drop-aliases.js +76 -0
  533. package/dist/lib/checkpoint-ontology/entity-file.d.ts +109 -0
  534. package/dist/lib/checkpoint-ontology/entity-file.js +371 -0
  535. package/dist/lib/checkpoint-ontology/identity.d.ts +38 -0
  536. package/dist/lib/checkpoint-ontology/identity.js +95 -0
  537. package/dist/lib/checkpoint-ontology/merge-copies.d.ts +199 -0
  538. package/dist/lib/checkpoint-ontology/merge-copies.js +1086 -0
  539. package/dist/lib/checkpoint-ontology/multi-writer.d.ts +101 -0
  540. package/dist/lib/checkpoint-ontology/multi-writer.js +394 -0
  541. package/dist/lib/checkpoint-ontology/plan.d.ts +193 -0
  542. package/dist/lib/checkpoint-ontology/plan.js +504 -0
  543. package/dist/lib/checkpoint-ontology/queued-touches.d.ts +29 -0
  544. package/dist/lib/checkpoint-ontology/queued-touches.js +193 -0
  545. package/dist/lib/checkpoint-ontology/sync-client.d.ts +38 -0
  546. package/dist/lib/checkpoint-ontology/sync-client.js +84 -0
  547. package/dist/lib/checkpoint-ontology/tree.d.ts +55 -0
  548. package/dist/lib/checkpoint-ontology/tree.js +198 -0
  549. package/dist/lib/company-errors-sdk-warning-flag.d.ts +5 -0
  550. package/dist/lib/company-errors-sdk-warning-flag.js +8 -0
  551. package/dist/lib/company-skill-wrapper.d.ts +1 -0
  552. package/dist/lib/company-skill-wrapper.js +121 -29
  553. package/dist/lib/core-utils/codex-skill-bridge.d.ts +2 -1
  554. package/dist/lib/core-utils/hook-timeout-debug-context-flag.d.ts +20 -0
  555. package/dist/lib/core-utils/hook-timeout-debug-context-flag.js +81 -0
  556. package/dist/lib/core-utils/jq-json-serializer.d.ts +5 -0
  557. package/dist/lib/core-utils/jq-json-serializer.js +10 -0
  558. package/dist/lib/core-utils/qmd-reindex-after-sync.d.ts +14 -1
  559. package/dist/lib/core-utils/qmd-reindex-after-sync.js +101 -17
  560. package/dist/lib/core-utils/secret-patterns.d.ts +43 -0
  561. package/dist/lib/core-utils/secret-patterns.js +34 -0
  562. package/dist/lib/core-utils/sentry-report.d.ts +114 -0
  563. package/dist/lib/core-utils/sentry-report.js +1055 -0
  564. package/dist/lib/core-utils/soft-timeout.js +1 -1
  565. package/dist/lib/core-utils/timeout-guard-native.d.ts +7 -0
  566. package/dist/lib/core-utils/timeout-guard-native.js +40 -0
  567. package/dist/lib/core-utils/timeout-guard.d.ts +3 -3
  568. package/dist/lib/core-utils/timeout-guard.js +28 -13
  569. package/dist/lib/core-utils/token-usage-report.js +17 -3
  570. package/dist/lib/core-utils/worktree-resume.d.ts +20 -0
  571. package/dist/lib/core-utils/worktree-resume.js +1198 -0
  572. package/dist/lib/daemon/catalog.d.ts +134 -0
  573. package/dist/lib/daemon/catalog.js +358 -0
  574. package/dist/lib/daemon/config.d.ts +35 -0
  575. package/dist/lib/daemon/config.js +108 -0
  576. package/dist/lib/daemon/flag.d.ts +25 -0
  577. package/dist/lib/daemon/flag.js +59 -0
  578. package/dist/lib/daemon/handoff.d.ts +56 -0
  579. package/dist/lib/daemon/handoff.js +161 -0
  580. package/dist/lib/daemon/hq-cloud.d.ts +79 -0
  581. package/dist/lib/daemon/hq-cloud.js +183 -0
  582. package/dist/lib/daemon/install.d.ts +85 -0
  583. package/dist/lib/daemon/install.js +320 -0
  584. package/dist/lib/daemon/legacy-sync-env.d.ts +10 -0
  585. package/dist/lib/daemon/legacy-sync-env.js +58 -0
  586. package/dist/lib/daemon/legacy.d.ts +45 -0
  587. package/dist/lib/daemon/legacy.js +133 -0
  588. package/dist/lib/daemon/lock.d.ts +47 -0
  589. package/dist/lib/daemon/lock.js +138 -0
  590. package/dist/lib/daemon/machine-type.d.ts +50 -0
  591. package/dist/lib/daemon/machine-type.js +159 -0
  592. package/dist/lib/daemon/migrate.d.ts +77 -0
  593. package/dist/lib/daemon/migrate.js +265 -0
  594. package/dist/lib/daemon/paths.d.ts +24 -0
  595. package/dist/lib/daemon/paths.js +43 -0
  596. package/dist/lib/daemon/protocol-tail.d.ts +33 -0
  597. package/dist/lib/daemon/protocol-tail.js +131 -0
  598. package/dist/lib/daemon/remote-control.d.ts +74 -0
  599. package/dist/lib/daemon/remote-control.js +153 -0
  600. package/dist/lib/daemon/requests.d.ts +28 -0
  601. package/dist/lib/daemon/requests.js +65 -0
  602. package/dist/lib/daemon/run.d.ts +79 -0
  603. package/dist/lib/daemon/run.js +755 -0
  604. package/dist/lib/daemon/succession.d.ts +118 -0
  605. package/dist/lib/daemon/succession.js +263 -0
  606. package/dist/lib/daemon/supervisor.d.ts +132 -0
  607. package/dist/lib/daemon/supervisor.js +836 -0
  608. package/dist/lib/daemon/sync-runner.d.ts +58 -0
  609. package/dist/lib/daemon/sync-runner.js +277 -0
  610. package/dist/lib/daemon/tools.d.ts +52 -0
  611. package/dist/lib/daemon/tools.js +95 -0
  612. package/dist/lib/daemon/updater.d.ts +57 -0
  613. package/dist/lib/daemon/updater.js +163 -0
  614. package/dist/lib/db/control-plane.js +6 -0
  615. package/dist/lib/db/local.d.ts +0 -5
  616. package/dist/lib/db/local.js +1 -1
  617. package/dist/lib/db/migrate.d.ts +0 -12
  618. package/dist/lib/db/migrate.js +5 -5
  619. package/dist/lib/db/remote-sql.d.ts +2 -2
  620. package/dist/lib/db/remote-sql.js +3 -3
  621. package/dist/lib/db/sql.d.ts +0 -10
  622. package/dist/lib/db/sql.js +4 -8
  623. package/dist/lib/deploy-api.d.ts +5 -0
  624. package/dist/lib/deploy-api.js +21 -0
  625. package/dist/lib/deploy-apps.d.ts +13 -0
  626. package/dist/lib/deploy-apps.js +29 -0
  627. package/dist/lib/doctor/__testing__/fake-hq-tree.d.ts +1 -1
  628. package/dist/lib/doctor/__testing__/fake-hq-tree.js +1 -1
  629. package/dist/lib/doctor/__testing__/run-doctor.d.ts +8 -0
  630. package/dist/lib/doctor/__testing__/run-doctor.js +52 -0
  631. package/dist/lib/doctor/checks/bots.d.ts +13 -0
  632. package/dist/lib/doctor/checks/bots.js +189 -0
  633. package/dist/lib/doctor/checks/claude-wiring.js +70 -1
  634. package/dist/lib/doctor/checks/codex-wiring.d.ts +0 -4
  635. package/dist/lib/doctor/checks/codex-wiring.js +3 -35
  636. package/dist/lib/doctor/checks/grok-wiring.js +1 -34
  637. package/dist/lib/doctor/checks/integrations.js +11 -0
  638. package/dist/lib/doctor/checks/runtime-health.d.ts +4 -17
  639. package/dist/lib/doctor/checks/runtime-health.js +20 -7
  640. package/dist/lib/doctor/checks/scaffold-cli-floor.d.ts +6 -0
  641. package/dist/lib/doctor/checks/scaffold-cli-floor.js +73 -0
  642. package/dist/lib/doctor/checks/sync-health.d.ts +21 -0
  643. package/dist/lib/doctor/checks/sync-health.js +72 -2
  644. package/dist/lib/doctor/checks/sync-runtime.d.ts +11 -0
  645. package/dist/lib/doctor/checks/sync-runtime.js +216 -0
  646. package/dist/lib/doctor/checks/work-context.js +20 -6
  647. package/dist/lib/doctor/client-health-flag-token.d.ts +15 -0
  648. package/dist/lib/doctor/client-health-flag-token.js +66 -0
  649. package/dist/lib/doctor/client-health-reason-codes-flag.d.ts +27 -0
  650. package/dist/lib/doctor/client-health-reason-codes-flag.js +106 -0
  651. package/dist/lib/doctor/compat.d.ts +0 -16
  652. package/dist/lib/doctor/compat.js +4 -3
  653. package/dist/lib/doctor/deep/effects.js +1 -3
  654. package/dist/lib/doctor/deep/executor.d.ts +4 -10
  655. package/dist/lib/doctor/deep/executor.js +1 -1
  656. package/dist/lib/doctor/deep/parity.d.ts +2 -29
  657. package/dist/lib/doctor/deep/parity.js +7 -7
  658. package/dist/lib/doctor/deep/sandbox.d.ts +7 -25
  659. package/dist/lib/doctor/deep/sandbox.js +5 -7
  660. package/dist/lib/doctor/fix/apply.d.ts +79 -8
  661. package/dist/lib/doctor/fix/apply.js +292 -80
  662. package/dist/lib/doctor/fix/json-output.d.ts +28 -0
  663. package/dist/lib/doctor/fix/json-output.js +33 -0
  664. package/dist/lib/doctor/fix/refresh-sync-outcome.d.ts +12 -0
  665. package/dist/lib/doctor/fix/refresh-sync-outcome.js +25 -0
  666. package/dist/lib/doctor/fix/remediation.d.ts +14 -6
  667. package/dist/lib/doctor/fix/remediation.js +49 -9
  668. package/dist/lib/doctor/fixtures/schema.js +1 -3
  669. package/dist/lib/doctor/json-output.d.ts +17 -1
  670. package/dist/lib/doctor/json-output.js +7 -2
  671. package/dist/lib/doctor/platform.d.ts +0 -26
  672. package/dist/lib/doctor/platform.js +5 -5
  673. package/dist/lib/doctor/registry.d.ts +14 -0
  674. package/dist/lib/doctor/registry.js +71 -0
  675. package/dist/lib/doctor/report.js +1 -1
  676. package/dist/lib/doctor/shared.d.ts +8 -0
  677. package/dist/lib/doctor/shared.js +38 -0
  678. package/dist/lib/doctor/stray-gate-entries.d.ts +35 -0
  679. package/dist/lib/doctor/stray-gate-entries.js +83 -0
  680. package/dist/lib/doctor/types.d.ts +5 -0
  681. package/dist/lib/doctor/types.js +20 -0
  682. package/dist/lib/first-sync-next-step.d.ts +34 -0
  683. package/dist/lib/first-sync-next-step.js +179 -0
  684. package/dist/lib/flag-registry-endpoint.d.ts +5 -0
  685. package/dist/lib/flag-registry-endpoint.js +9 -0
  686. package/dist/lib/flag-registry-worker-source.generated.d.ts +2 -0
  687. package/dist/lib/flag-registry-worker-source.generated.js +3 -0
  688. package/dist/lib/flag-registry-worker.js +12 -1
  689. package/dist/lib/flag-registry.d.ts +26 -6
  690. package/dist/lib/flag-registry.js +133 -16
  691. package/dist/lib/flag-snapshot-file.d.ts +20 -0
  692. package/dist/lib/flag-snapshot-file.js +91 -0
  693. package/dist/lib/heartbeat-identity.d.ts +30 -0
  694. package/dist/lib/heartbeat-identity.js +76 -0
  695. package/dist/lib/index-render/companies.d.ts +4 -1
  696. package/dist/lib/index-render/companies.js +66 -3
  697. package/dist/lib/index-render/company-knowledge.js +80 -17
  698. package/dist/lib/index-render/index.d.ts +1 -0
  699. package/dist/lib/index-render/index.js +2 -1
  700. package/dist/lib/index-render/projects.js +82 -5
  701. package/dist/lib/index-render/shared.d.ts +13 -1
  702. package/dist/lib/index-render/shared.js +41 -2
  703. package/dist/lib/lanes/account-home.d.ts +8 -0
  704. package/dist/lib/lanes/account-home.js +10 -0
  705. package/dist/lib/lanes/accounts.d.ts +117 -0
  706. package/dist/lib/lanes/accounts.js +366 -0
  707. package/dist/lib/lanes/admission-host.d.ts +22 -0
  708. package/dist/lib/lanes/admission-host.js +37 -0
  709. package/dist/lib/lanes/admission.d.ts +26 -0
  710. package/dist/lib/lanes/admission.js +210 -0
  711. package/dist/lib/lanes/approval-gate.d.ts +8 -0
  712. package/dist/lib/lanes/approval-gate.js +90 -0
  713. package/dist/lib/lanes/autopilot-metrics.d.ts +99 -0
  714. package/dist/lib/lanes/autopilot-metrics.js +301 -0
  715. package/dist/lib/lanes/autopilot-registry.d.ts +62 -0
  716. package/dist/lib/lanes/autopilot-registry.js +192 -0
  717. package/dist/lib/lanes/autopilot.d.ts +133 -0
  718. package/dist/lib/lanes/autopilot.js +1222 -0
  719. package/dist/lib/lanes/blocker-freshness.d.ts +31 -0
  720. package/dist/lib/lanes/blocker-freshness.js +168 -0
  721. package/dist/lib/lanes/checked-company-path.d.ts +3 -0
  722. package/dist/lib/lanes/checked-company-path.js +39 -0
  723. package/dist/lib/lanes/claude-balance.d.ts +97 -0
  724. package/dist/lib/lanes/claude-balance.js +319 -0
  725. package/dist/lib/lanes/compaction.d.ts +110 -0
  726. package/dist/lib/lanes/compaction.js +293 -0
  727. package/dist/lib/lanes/config.d.ts +94 -0
  728. package/dist/lib/lanes/config.js +606 -0
  729. package/dist/lib/lanes/constants.d.ts +3 -0
  730. package/dist/lib/lanes/constants.js +3 -0
  731. package/dist/lib/lanes/delivery-core.d.ts +15 -0
  732. package/dist/lib/lanes/delivery-core.js +21 -0
  733. package/dist/lib/lanes/delivery.d.ts +180 -0
  734. package/dist/lib/lanes/delivery.js +443 -0
  735. package/dist/lib/lanes/disk-guard.d.ts +66 -0
  736. package/dist/lib/lanes/disk-guard.js +172 -0
  737. package/dist/lib/lanes/dropbox.d.ts +129 -0
  738. package/dist/lib/lanes/dropbox.js +601 -0
  739. package/dist/lib/lanes/effort.d.ts +51 -0
  740. package/dist/lib/lanes/effort.js +113 -0
  741. package/dist/lib/lanes/envelope-repair-dispatch.d.ts +26 -0
  742. package/dist/lib/lanes/envelope-repair-dispatch.js +74 -0
  743. package/dist/lib/lanes/errors.d.ts +39 -0
  744. package/dist/lib/lanes/errors.js +72 -0
  745. package/dist/lib/lanes/flag-keys.d.ts +22 -0
  746. package/dist/lib/lanes/flag-keys.js +22 -0
  747. package/dist/lib/lanes/grants.d.ts +30 -0
  748. package/dist/lib/lanes/grants.js +171 -0
  749. package/dist/lib/lanes/hire-grant-dispatch.d.ts +29 -0
  750. package/dist/lib/lanes/hire-grant-dispatch.js +315 -0
  751. package/dist/lib/lanes/hooks-install.d.ts +82 -0
  752. package/dist/lib/lanes/hooks-install.js +479 -0
  753. package/dist/lib/lanes/host-capacity.d.ts +69 -0
  754. package/dist/lib/lanes/host-capacity.js +254 -0
  755. package/dist/lib/lanes/hq-root.d.ts +19 -0
  756. package/dist/lib/lanes/hq-root.js +28 -0
  757. package/dist/lib/lanes/index.d.ts +76 -0
  758. package/dist/lib/lanes/index.js +42 -0
  759. package/dist/lib/lanes/keep-alive-audit.d.ts +46 -0
  760. package/dist/lib/lanes/keep-alive-audit.js +370 -0
  761. package/dist/lib/lanes/keep-alive.d.ts +68 -0
  762. package/dist/lib/lanes/keep-alive.js +343 -0
  763. package/dist/lib/lanes/kr-freshness.d.ts +76 -0
  764. package/dist/lib/lanes/kr-freshness.js +413 -0
  765. package/dist/lib/lanes/lane-company.d.ts +10 -0
  766. package/dist/lib/lanes/lane-company.js +41 -0
  767. package/dist/lib/lanes/liveness.d.ts +108 -0
  768. package/dist/lib/lanes/liveness.js +396 -0
  769. package/dist/lib/lanes/machine-identity.d.ts +34 -0
  770. package/dist/lib/lanes/machine-identity.js +92 -0
  771. package/dist/lib/lanes/manager-status-gate.d.ts +17 -0
  772. package/dist/lib/lanes/manager-status-gate.js +133 -0
  773. package/dist/lib/lanes/merge-command.d.ts +15 -0
  774. package/dist/lib/lanes/merge-command.js +629 -0
  775. package/dist/lib/lanes/mesh-events.d.ts +127 -0
  776. package/dist/lib/lanes/mesh-events.js +564 -0
  777. package/dist/lib/lanes/message-replay.d.ts +21 -0
  778. package/dist/lib/lanes/message-replay.js +122 -0
  779. package/dist/lib/lanes/models.d.ts +86 -0
  780. package/dist/lib/lanes/models.js +234 -0
  781. package/dist/lib/lanes/monitor.d.ts +48 -0
  782. package/dist/lib/lanes/monitor.js +428 -0
  783. package/dist/lib/lanes/move-account.d.ts +56 -0
  784. package/dist/lib/lanes/move-account.js +193 -0
  785. package/dist/lib/lanes/orphans.d.ts +25 -0
  786. package/dist/lib/lanes/orphans.js +102 -0
  787. package/dist/lib/lanes/outpost-dispatch.d.ts +147 -0
  788. package/dist/lib/lanes/outpost-dispatch.js +271 -0
  789. package/dist/lib/lanes/outpost-hire-cache.d.ts +22 -0
  790. package/dist/lib/lanes/outpost-hire-cache.js +153 -0
  791. package/dist/lib/lanes/outpost-identity.d.ts +33 -0
  792. package/dist/lib/lanes/outpost-identity.js +59 -0
  793. package/dist/lib/lanes/outpost-profile-repin.d.ts +17 -0
  794. package/dist/lib/lanes/outpost-profile-repin.js +84 -0
  795. package/dist/lib/lanes/outpost-pruner-install.d.ts +37 -0
  796. package/dist/lib/lanes/outpost-pruner-install.js +238 -0
  797. package/dist/lib/lanes/outpost-registry-worker-approval.d.ts +18 -0
  798. package/dist/lib/lanes/outpost-registry-worker-approval.js +109 -0
  799. package/dist/lib/lanes/outpost-snapshot-memo.d.ts +6 -0
  800. package/dist/lib/lanes/outpost-snapshot-memo.js +14 -0
  801. package/dist/lib/lanes/outpost-worktree-pruner-flag.d.ts +19 -0
  802. package/dist/lib/lanes/outpost-worktree-pruner-flag.js +86 -0
  803. package/dist/lib/lanes/outpost-worktree-pruner.d.ts +62 -0
  804. package/dist/lib/lanes/outpost-worktree-pruner.js +1201 -0
  805. package/dist/lib/lanes/profile.d.ts +69 -0
  806. package/dist/lib/lanes/profile.js +552 -0
  807. package/dist/lib/lanes/provider-rejection.d.ts +86 -0
  808. package/dist/lib/lanes/provider-rejection.js +286 -0
  809. package/dist/lib/lanes/questions.d.ts +90 -0
  810. package/dist/lib/lanes/questions.js +384 -0
  811. package/dist/lib/lanes/quota.d.ts +134 -0
  812. package/dist/lib/lanes/quota.js +471 -0
  813. package/dist/lib/lanes/reconcile-install.d.ts +90 -0
  814. package/dist/lib/lanes/reconcile-install.js +257 -0
  815. package/dist/lib/lanes/reconcile.d.ts +161 -0
  816. package/dist/lib/lanes/reconcile.js +3343 -0
  817. package/dist/lib/lanes/registry-flag.d.ts +35 -0
  818. package/dist/lib/lanes/registry-flag.js +164 -0
  819. package/dist/lib/lanes/registry-persona.d.ts +20 -0
  820. package/dist/lib/lanes/registry-persona.js +329 -0
  821. package/dist/lib/lanes/registry.d.ts +122 -0
  822. package/dist/lib/lanes/registry.js +570 -0
  823. package/dist/lib/lanes/reviews.d.ts +38 -0
  824. package/dist/lib/lanes/reviews.js +395 -0
  825. package/dist/lib/lanes/runaway-tool-guard.d.ts +38 -0
  826. package/dist/lib/lanes/runaway-tool-guard.js +284 -0
  827. package/dist/lib/lanes/session-relink.d.ts +25 -0
  828. package/dist/lib/lanes/session-relink.js +216 -0
  829. package/dist/lib/lanes/spawn.d.ts +355 -0
  830. package/dist/lib/lanes/spawn.js +2668 -0
  831. package/dist/lib/lanes/ssm-command-context.d.ts +12 -0
  832. package/dist/lib/lanes/ssm-command-context.js +52 -0
  833. package/dist/lib/lanes/store.d.ts +91 -0
  834. package/dist/lib/lanes/store.js +1822 -0
  835. package/dist/lib/lanes/stories.d.ts +23 -0
  836. package/dist/lib/lanes/stories.js +92 -0
  837. package/dist/lib/lanes/story-ledger.d.ts +80 -0
  838. package/dist/lib/lanes/story-ledger.js +815 -0
  839. package/dist/lib/lanes/story-switch.d.ts +21 -0
  840. package/dist/lib/lanes/story-switch.js +75 -0
  841. package/dist/lib/lanes/text-scan.d.ts +11 -0
  842. package/dist/lib/lanes/text-scan.js +103 -0
  843. package/dist/lib/lanes/throttle.d.ts +116 -0
  844. package/dist/lib/lanes/throttle.js +437 -0
  845. package/dist/lib/lanes/timestamp.d.ts +3 -0
  846. package/dist/lib/lanes/timestamp.js +26 -0
  847. package/dist/lib/lanes/tracker-checks.d.ts +77 -0
  848. package/dist/lib/lanes/tracker-checks.js +134 -0
  849. package/dist/lib/lanes/tracker-report-state.d.ts +10 -0
  850. package/dist/lib/lanes/tracker-report-state.js +124 -0
  851. package/dist/lib/lanes/tracker-report.d.ts +203 -0
  852. package/dist/lib/lanes/tracker-report.js +522 -0
  853. package/dist/lib/lanes/tracker-store.d.ts +18 -0
  854. package/dist/lib/lanes/tracker-store.js +106 -0
  855. package/dist/lib/lanes/types.d.ts +1030 -0
  856. package/dist/lib/lanes/types.js +418 -0
  857. package/dist/lib/lanes/wait.d.ts +39 -0
  858. package/dist/lib/lanes/wait.js +159 -0
  859. package/dist/lib/lanes/watch.d.ts +39 -0
  860. package/dist/lib/lanes/watch.js +249 -0
  861. package/dist/lib/lanes/watcher-main.d.ts +11 -0
  862. package/dist/lib/lanes/watcher-main.js +108 -0
  863. package/dist/lib/lanes/watcher.d.ts +287 -0
  864. package/dist/lib/lanes/watcher.js +1972 -0
  865. package/dist/lib/mesh/api.d.ts +103 -10
  866. package/dist/lib/mesh/api.js +334 -64
  867. package/dist/lib/mesh/client.d.ts +3 -2
  868. package/dist/lib/mesh/client.js +26 -7
  869. package/dist/lib/mesh/denial-codes.d.ts +5 -0
  870. package/dist/lib/mesh/denial-codes.js +14 -0
  871. package/dist/lib/mesh/live/backfill-held.d.ts +67 -16
  872. package/dist/lib/mesh/live/backfill-held.js +415 -61
  873. package/dist/lib/mesh/live/backoff.d.ts +2 -2
  874. package/dist/lib/mesh/live/backoff.js +16 -3
  875. package/dist/lib/mesh/live/daemon/board-refresh.d.ts +7 -1
  876. package/dist/lib/mesh/live/daemon/board-refresh.js +78 -30
  877. package/dist/lib/mesh/live/daemon/config.d.ts +36 -0
  878. package/dist/lib/mesh/live/daemon/config.js +120 -0
  879. package/dist/lib/mesh/live/daemon/credentials.d.ts +64 -10
  880. package/dist/lib/mesh/live/daemon/credentials.js +270 -20
  881. package/dist/lib/mesh/live/daemon/doctor.d.ts +53 -0
  882. package/dist/lib/mesh/live/daemon/doctor.js +190 -6
  883. package/dist/lib/mesh/live/daemon/index.d.ts +13 -10
  884. package/dist/lib/mesh/live/daemon/index.js +7 -6
  885. package/dist/lib/mesh/live/daemon/install.d.ts +255 -1
  886. package/dist/lib/mesh/live/daemon/install.js +811 -13
  887. package/dist/lib/mesh/live/daemon/legacy-listen.d.ts +43 -0
  888. package/dist/lib/mesh/live/daemon/legacy-listen.js +89 -0
  889. package/dist/lib/mesh/live/daemon/live-cache.d.ts +26 -0
  890. package/dist/lib/mesh/live/daemon/live-cache.js +116 -0
  891. package/dist/lib/mesh/live/daemon/mqtt-events.d.ts +7 -0
  892. package/dist/lib/mesh/live/daemon/mqtt-events.js +2 -0
  893. package/dist/lib/mesh/live/daemon/mqtt-events.test-d.d.ts +2 -0
  894. package/dist/lib/mesh/live/daemon/mqtt-events.test-d.js +10 -0
  895. package/dist/lib/mesh/live/daemon/paths.d.ts +2 -0
  896. package/dist/lib/mesh/live/daemon/paths.js +2 -0
  897. package/dist/lib/mesh/live/daemon/presence.d.ts +24 -5
  898. package/dist/lib/mesh/live/daemon/presence.js +79 -10
  899. package/dist/lib/mesh/live/daemon/run.d.ts +48 -2
  900. package/dist/lib/mesh/live/daemon/run.js +485 -33
  901. package/dist/lib/mesh/live/daemon/state.d.ts +19 -2
  902. package/dist/lib/mesh/live/daemon/state.js +34 -2
  903. package/dist/lib/mesh/live/daemon/transcript-watch.d.ts +45 -9
  904. package/dist/lib/mesh/live/daemon/transcript-watch.js +227 -31
  905. package/dist/lib/mesh/live/daemon/version-drift.d.ts +5 -0
  906. package/dist/lib/mesh/live/daemon/version-drift.js +47 -0
  907. package/dist/lib/mesh/live/daemon/work-subscribe.d.ts +32 -0
  908. package/dist/lib/mesh/live/daemon/work-subscribe.js +262 -0
  909. package/dist/lib/mesh/live/emit-client.d.ts +8 -0
  910. package/dist/lib/mesh/live/emit-client.js +23 -8
  911. package/dist/lib/mesh/live/emit-evidence.d.ts +19 -0
  912. package/dist/lib/mesh/live/emit-evidence.js +20 -2
  913. package/dist/lib/mesh/live/emit.d.ts +9 -0
  914. package/dist/lib/mesh/live/emit.js +28 -2
  915. package/dist/lib/mesh/live/enqueue.d.ts +5 -0
  916. package/dist/lib/mesh/live/enqueue.js +19 -0
  917. package/dist/lib/mesh/live/flush.d.ts +17 -5
  918. package/dist/lib/mesh/live/flush.js +391 -38
  919. package/dist/lib/mesh/live/format-spool-line.d.ts +5 -2
  920. package/dist/lib/mesh/live/format-spool-line.js +10 -0
  921. package/dist/lib/mesh/live/paths.d.ts +2 -0
  922. package/dist/lib/mesh/live/paths.js +4 -0
  923. package/dist/lib/mesh/live/report-summary.d.ts +45 -0
  924. package/dist/lib/mesh/live/report-summary.js +234 -0
  925. package/dist/lib/mesh/live/session-event.schema.json +24 -1
  926. package/dist/lib/mesh/live/session-events-client.d.ts +2 -0
  927. package/dist/lib/mesh/live/session-events-client.js +26 -0
  928. package/dist/lib/mesh/live/session-seq.d.ts +4 -0
  929. package/dist/lib/mesh/live/session-seq.js +33 -0
  930. package/dist/lib/mesh/live/spool.d.ts +19 -0
  931. package/dist/lib/mesh/live/spool.js +269 -3
  932. package/dist/lib/mesh/live/validate-session-event.d.ts +1 -1
  933. package/dist/lib/mesh/live/validate-session-event.js +1 -1
  934. package/dist/lib/mesh/project-board.d.ts +65 -0
  935. package/dist/lib/mesh/project-board.js +181 -0
  936. package/dist/lib/mesh/story-status.d.ts +22 -0
  937. package/dist/lib/mesh/story-status.js +49 -0
  938. package/dist/lib/monitor.d.ts +149 -0
  939. package/dist/lib/monitor.js +519 -0
  940. package/dist/lib/node-binary.d.ts +50 -0
  941. package/dist/lib/node-binary.js +133 -0
  942. package/dist/lib/notify-recipient.d.ts +7 -0
  943. package/dist/lib/notify-recipient.js +11 -0
  944. package/dist/lib/onboarding/checkpoint.d.ts +13 -0
  945. package/dist/lib/onboarding/checkpoint.js +44 -0
  946. package/dist/lib/onboarding/cli/onboard.d.ts +53 -0
  947. package/dist/lib/onboarding/cli/onboard.js +135 -0
  948. package/dist/lib/onboarding/cli/prompts.d.ts +28 -0
  949. package/dist/lib/onboarding/cli/prompts.js +83 -0
  950. package/dist/lib/onboarding/errors.d.ts +34 -0
  951. package/dist/lib/onboarding/errors.js +59 -0
  952. package/dist/lib/onboarding/index.d.ts +13 -0
  953. package/dist/lib/onboarding/index.js +13 -0
  954. package/dist/lib/onboarding/orchestrator.d.ts +47 -0
  955. package/dist/lib/onboarding/orchestrator.js +569 -0
  956. package/dist/lib/onboarding/types.d.ts +79 -0
  957. package/dist/lib/onboarding/types.js +8 -0
  958. package/dist/lib/plan-limit-nag.d.ts +102 -6
  959. package/dist/lib/plan-limit-nag.js +348 -43
  960. package/dist/lib/policy-validator.d.ts +7 -0
  961. package/dist/lib/policy-validator.js +187 -0
  962. package/dist/lib/process-flag-company-context.d.ts +8 -0
  963. package/dist/lib/process-flag-company-context.js +67 -0
  964. package/dist/lib/report-publish.d.ts +175 -0
  965. package/dist/lib/report-publish.js +421 -0
  966. package/dist/lib/report-run.d.ts +62 -0
  967. package/dist/lib/report-run.js +123 -0
  968. package/dist/lib/report-snapshot.d.ts +12 -0
  969. package/dist/lib/report-snapshot.js +135 -0
  970. package/dist/lib/report-templates.d.ts +9 -0
  971. package/dist/lib/report-templates.js +21 -0
  972. package/dist/lib/scaffold-cli-floor.d.ts +8 -0
  973. package/dist/lib/scaffold-cli-floor.js +50 -0
  974. package/dist/lib/scan-packages/index.d.ts +2 -0
  975. package/dist/lib/scan-packages/index.js +168 -6
  976. package/dist/lib/search-index/background.d.ts +8 -1
  977. package/dist/lib/search-index/background.js +55 -200
  978. package/dist/lib/search-index/collection-path-repair-flag.d.ts +4 -0
  979. package/dist/lib/search-index/collection-path-repair-flag.js +7 -0
  980. package/dist/lib/search-index/embed-lock.d.ts +34 -0
  981. package/dist/lib/search-index/embed-lock.js +295 -0
  982. package/dist/lib/search-index/index.d.ts +12 -0
  983. package/dist/lib/search-index/index.js +153 -7
  984. package/dist/lib/search-index/load-gate.d.ts +57 -0
  985. package/dist/lib/search-index/load-gate.js +270 -0
  986. package/dist/lib/search-index/max-doc-bytes.d.ts +219 -0
  987. package/dist/lib/search-index/max-doc-bytes.js +463 -0
  988. package/dist/lib/search-index/qmd-exit-diagnostics.d.ts +5 -0
  989. package/dist/lib/search-index/qmd-exit-diagnostics.js +40 -0
  990. package/dist/lib/search-index/reindex-single-flight-flag.d.ts +5 -0
  991. package/dist/lib/search-index/reindex-single-flight-flag.js +8 -0
  992. package/dist/lib/service-manager/index.d.ts +42 -0
  993. package/dist/lib/service-manager/index.js +105 -0
  994. package/dist/lib/service-manager/launchd.d.ts +81 -0
  995. package/dist/lib/service-manager/launchd.js +212 -0
  996. package/dist/lib/service-manager/systemd.d.ts +19 -0
  997. package/dist/lib/service-manager/systemd.js +72 -0
  998. package/dist/lib/service-manager/types.d.ts +34 -0
  999. package/dist/lib/service-manager/types.js +26 -0
  1000. package/dist/lib/test-utils/isolated-flag-company-context.d.ts +3 -0
  1001. package/dist/lib/test-utils/isolated-flag-company-context.js +18 -0
  1002. package/dist/lib/work-context/bind-best.d.ts +66 -0
  1003. package/dist/lib/work-context/bind-best.js +344 -0
  1004. package/dist/lib/work-context/bind-calling-session.d.ts +26 -0
  1005. package/dist/lib/work-context/bind-calling-session.js +63 -0
  1006. package/dist/lib/work-context/company-rebind.d.ts +23 -0
  1007. package/dist/lib/work-context/company-rebind.js +59 -0
  1008. package/dist/lib/work-context/company.d.ts +22 -20
  1009. package/dist/lib/work-context/company.js +124 -40
  1010. package/dist/lib/work-context/config.d.ts +58 -11
  1011. package/dist/lib/work-context/config.js +334 -83
  1012. package/dist/lib/work-context/contract.d.ts +13 -0
  1013. package/dist/lib/work-context/contract.schema.json +3 -1
  1014. package/dist/lib/work-context/default-company.d.ts +43 -0
  1015. package/dist/lib/work-context/default-company.js +83 -0
  1016. package/dist/lib/work-context/outbox-quarantine-status-flag.d.ts +4 -0
  1017. package/dist/lib/work-context/outbox-quarantine-status-flag.js +7 -0
  1018. package/dist/lib/work-context/outbox.d.ts +27 -5
  1019. package/dist/lib/work-context/outbox.js +135 -6
  1020. package/dist/lib/work-context/prd-sync.d.ts +56 -0
  1021. package/dist/lib/work-context/prd-sync.js +197 -0
  1022. package/dist/lib/work-context/preflight-contract.d.ts +28 -0
  1023. package/dist/lib/work-context/preflight-contract.js +85 -0
  1024. package/dist/lib/work-context/prompt-rebind.d.ts +25 -0
  1025. package/dist/lib/work-context/prompt-rebind.js +85 -0
  1026. package/dist/lib/work-context/reconcile.d.ts +15 -0
  1027. package/dist/lib/work-context/reconcile.js +405 -29
  1028. package/dist/lib/work-context/state.d.ts +93 -10
  1029. package/dist/lib/work-context/state.js +342 -29
  1030. package/dist/lib/work-context/windows-acl.d.ts +123 -0
  1031. package/dist/lib/work-context/windows-acl.js +425 -0
  1032. package/dist/lib/workers-registry/index.js +62 -8
  1033. package/dist/lib/workers-registry/read.d.ts +15 -0
  1034. package/dist/lib/workers-registry/read.js +17 -0
  1035. package/dist/main.d.ts +32 -0
  1036. package/dist/main.js +273 -73
  1037. package/dist/native-fast-route.d.ts +7 -0
  1038. package/dist/native-fast-route.js +45 -0
  1039. package/dist/node-network-compat-core.d.ts +12 -0
  1040. package/dist/node-network-compat-core.js +41 -0
  1041. package/dist/node-network-compat-fast.d.ts +7 -0
  1042. package/dist/node-network-compat-fast.js +23 -0
  1043. package/dist/node-network-compat.d.ts +2 -30
  1044. package/dist/node-network-compat.js +4 -51
  1045. package/dist/node-preflight.d.ts +7 -1
  1046. package/dist/node-preflight.js +5 -5
  1047. package/dist/register-all.d.ts +4 -29
  1048. package/dist/register-all.js +4 -233
  1049. package/dist/run/discover-schemas.d.ts +2 -1
  1050. package/dist/run/env-graph-guard.d.ts +2 -2
  1051. package/dist/run/env-graph-guard.js +5 -2
  1052. package/dist/run/hq-plugin.d.ts +4 -0
  1053. package/dist/run/hq-plugin.js +36 -8
  1054. package/dist/secrets-env-fast-path.d.ts +5 -0
  1055. package/dist/secrets-env-fast-path.js +16 -0
  1056. package/dist/secrets-env-fast-route.d.ts +18 -0
  1057. package/dist/secrets-env-fast-route.js +54 -0
  1058. package/dist/sentry-before-send.js +80 -0
  1059. package/dist/sentry.d.ts +16 -4
  1060. package/dist/sentry.js +179 -18
  1061. package/dist/startup-registration.d.ts +26 -2
  1062. package/dist/startup-registration.js +116 -15
  1063. package/dist/utils/checkpoint-stamp-write-error.d.ts +28 -0
  1064. package/dist/utils/checkpoint-stamp-write-error.js +99 -0
  1065. package/dist/utils/cli-network-lifecycle.d.ts +4 -0
  1066. package/dist/utils/cli-network-lifecycle.js +11 -0
  1067. package/dist/utils/cli-telemetry.d.ts +75 -1
  1068. package/dist/utils/cli-telemetry.js +433 -7
  1069. package/dist/utils/client-health.d.ts +0 -4
  1070. package/dist/utils/client-health.js +2 -2
  1071. package/dist/utils/cognito-refresh-sentry.d.ts +3 -0
  1072. package/dist/utils/cognito-refresh-sentry.js +49 -0
  1073. package/dist/utils/cognito-session.d.ts +71 -0
  1074. package/dist/utils/cognito-session.js +481 -27
  1075. package/dist/utils/console-origin.d.ts +9 -0
  1076. package/dist/utils/console-origin.js +28 -0
  1077. package/dist/utils/contribution-table.d.ts +1 -1
  1078. package/dist/utils/core-eval-trigger.d.ts +4 -0
  1079. package/dist/utils/core-eval-trigger.js +88 -0
  1080. package/dist/utils/environmental-error.d.ts +18 -0
  1081. package/dist/utils/environmental-error.js +240 -7
  1082. package/dist/utils/exclusive-lock.d.ts +32 -0
  1083. package/dist/utils/exclusive-lock.js +75 -0
  1084. package/dist/utils/expected-cli-error.d.ts +2 -0
  1085. package/dist/utils/expected-cli-error.js +4 -0
  1086. package/dist/utils/fast-stream-errors.d.ts +12 -0
  1087. package/dist/utils/fast-stream-errors.js +18 -0
  1088. package/dist/utils/feedback-diagnostics.d.ts +2 -1
  1089. package/dist/utils/feedback-log-bundle.d.ts +51 -26
  1090. package/dist/utils/feedback-log-bundle.js +211 -31
  1091. package/dist/utils/feedback-logs.d.ts +18 -47
  1092. package/dist/utils/feedback-logs.js +50 -21
  1093. package/dist/utils/feedback-screenshots.d.ts +0 -1
  1094. package/dist/utils/feedback-screenshots.js +1 -1
  1095. package/dist/utils/files-browse-acl.d.ts +5 -0
  1096. package/dist/utils/files-browse-acl.js +11 -0
  1097. package/dist/utils/hq-core-yaml.d.ts +10 -0
  1098. package/dist/utils/hq-core-yaml.js +40 -0
  1099. package/dist/utils/hq-root-resolver.d.ts +13 -0
  1100. package/dist/utils/hq-root-resolver.js +103 -0
  1101. package/dist/utils/hq-roots.d.ts +25 -2
  1102. package/dist/utils/hq-roots.js +67 -7
  1103. package/dist/utils/incomplete-install-error.d.ts +87 -19
  1104. package/dist/utils/incomplete-install-error.js +319 -68
  1105. package/dist/utils/install-tree-torn.d.ts +260 -24
  1106. package/dist/utils/install-tree-torn.js +998 -51
  1107. package/dist/utils/large-file-guard.d.ts +0 -10
  1108. package/dist/utils/large-file-guard.js +1 -1
  1109. package/dist/utils/local-files-overview.d.ts +4 -8
  1110. package/dist/utils/local-files-overview.js +48 -7
  1111. package/dist/utils/login-provider.d.ts +7 -0
  1112. package/dist/utils/login-provider.js +34 -0
  1113. package/dist/utils/pack-contributions.d.ts +2 -14
  1114. package/dist/utils/pack-contributions.js +7 -44
  1115. package/dist/utils/package-root-diagnostics.d.ts +1 -1
  1116. package/dist/utils/people.d.ts +7 -11
  1117. package/dist/utils/people.js +5 -20
  1118. package/dist/utils/plan-gate-error.d.ts +52 -10
  1119. package/dist/utils/plan-gate-error.js +364 -41
  1120. package/dist/utils/qmd-model-download-error.d.ts +0 -8
  1121. package/dist/utils/qmd-model-download-error.js +1 -1
  1122. package/dist/utils/qmd-query-document-error.d.ts +0 -6
  1123. package/dist/utils/qmd-query-document-error.js +1 -1
  1124. package/dist/utils/redact-error-text.d.ts +0 -2
  1125. package/dist/utils/redact-error-text.js +3 -2
  1126. package/dist/utils/redact-url.d.ts +14 -0
  1127. package/dist/utils/redact-url.js +218 -0
  1128. package/dist/utils/run-bundled-script.d.ts +6 -0
  1129. package/dist/utils/run-bundled-script.js +117 -4
  1130. package/dist/utils/sandbox-runner-client.d.ts +2 -1
  1131. package/dist/utils/scaffold-fast-import-guard.d.ts +2 -0
  1132. package/dist/utils/scaffold-fast-import-guard.js +40 -0
  1133. package/dist/utils/scaffold-packlist-guard.d.ts +7 -0
  1134. package/dist/utils/scaffold-packlist-guard.js +23 -0
  1135. package/dist/utils/scaffold-sibling-references.d.ts +22 -0
  1136. package/dist/utils/scaffold-sibling-references.js +156 -0
  1137. package/dist/utils/secret-load-availability.d.ts +8 -0
  1138. package/dist/utils/secret-load-availability.js +54 -0
  1139. package/dist/utils/secrets-cache.d.ts +7 -3
  1140. package/dist/utils/secrets-cache.js +162 -14
  1141. package/dist/utils/self-update.d.ts +34 -1
  1142. package/dist/utils/self-update.js +660 -42
  1143. package/dist/utils/sentry-fingerprint.d.ts +23 -1
  1144. package/dist/utils/sentry-fingerprint.js +223 -31
  1145. package/dist/utils/staged-install.d.ts +34 -0
  1146. package/dist/utils/staged-install.js +346 -0
  1147. package/dist/utils/staged-npm-install.d.ts +16 -0
  1148. package/dist/utils/staged-npm-install.js +264 -0
  1149. package/dist/utils/sync-log-sources.d.ts +15 -0
  1150. package/dist/utils/sync-log-sources.js +36 -0
  1151. package/dist/utils/table-width.d.ts +7 -0
  1152. package/dist/utils/table-width.js +15 -0
  1153. package/dist/utils/team-upgrade.d.ts +1 -1
  1154. package/dist/utils/team-upgrade.js +4 -3
  1155. package/dist/utils/update-command-supervisor.cjs +247 -0
  1156. package/dist/utils/upload-author.d.ts +15 -0
  1157. package/dist/utils/upload-author.js +39 -0
  1158. package/dist/utils/vault-api.d.ts +21 -1
  1159. package/dist/utils/vault-api.js +251 -84
  1160. package/dist/utils/version-check.d.ts +11 -1
  1161. package/dist/utils/version-check.js +32 -3
  1162. package/dist/utils/version-gate.d.ts +101 -17
  1163. package/dist/utils/version-gate.js +645 -70
  1164. package/dist/utils/version-report.d.ts +27 -0
  1165. package/dist/utils/version-report.js +105 -0
  1166. package/dist/utils/windows-spawn.d.ts +6 -0
  1167. package/dist/utils/windows-spawn.js +37 -0
  1168. package/dist/version-request.d.ts +14 -0
  1169. package/dist/version-request.js +36 -0
  1170. package/package.json +20 -8
  1171. package/scripts/mesh-daemon-if-stale.mjs +20 -0
  1172. package/templates/reports/blank.md +3 -0
  1173. package/templates/reports/daily-digest.md +11 -0
  1174. package/templates/runbooks/update-report.md +21 -0
  1175. package/dist/commands/scaffold-fast.d.ts +0 -41
  1176. package/dist/commands/scaffold-fast.js +0 -57
  1177. package/dist/lib/work-context/index.d.ts +0 -25
  1178. package/dist/lib/work-context/index.js +0 -21
@@ -0,0 +1,877 @@
1
+ /**
2
+ * `hq daemon` — one supervisor for every HQ background service on a machine.
3
+ *
4
+ * hq daemon status (same as `hq daemon status`)
5
+ * hq daemon install detect the machine type, install the one OS unit
6
+ * hq daemon run what the OS unit runs; starts the default services
7
+ * hq daemon status [--json]
8
+ * hq daemon logs [unit] [--follow] [--lines N]
9
+ * hq daemon restart [unit] | trigger <unit>
10
+ * hq daemon enable|disable <service...> per-machine overrides
11
+ * hq daemon migrate list the older units it would take over (read-only)
12
+ * hq daemon uninstall [--purge]
13
+ *
14
+ * Hidden from `hq --help` while it rolls out.
15
+ */
16
+ import * as fs from "node:fs";
17
+ import * as os from "node:os";
18
+ import * as path from "node:path";
19
+ import { major as semverMajor, valid as validSemver } from "semver";
20
+ import { DEFAULT_SERVICES, SERVICE_DESCRIPTIONS, enabledServices, hqCloudUnits } from "../lib/daemon/catalog.js";
21
+ import { applyServiceToggle, effectiveSyncOwner, readDaemonConfig, writeDaemonConfig } from "../lib/daemon/config.js";
22
+ import { daemonUnitInstalled } from "../lib/daemon/handoff.js";
23
+ import { adoptLegacyUnits, readAdoptedUnits, restoreLegacyUnits } from "../lib/daemon/migrate.js";
24
+ import { ROOT_REFUSAL, SYSTEM_UNIT_DIR, daemonRootRefusal, installDaemonUnit, installScopeFor, uninstallDaemonUnit, } from "../lib/daemon/install.js";
25
+ import { describeLegacyUnit, findLegacyUnits } from "../lib/daemon/legacy.js";
26
+ import { isDaemonProcess, runningDaemonPid } from "../lib/daemon/lock.js";
27
+ import { bundledHqCloud } from "../lib/daemon/hq-cloud.js";
28
+ import { MACHINE_TYPE_MARKER_PATH, detectMachineType, homeFromPasswd, } from "../lib/daemon/machine-type.js";
29
+ import { daemonPaths } from "../lib/daemon/paths.js";
30
+ import { processCommandLine } from "../lib/daemon/lock.js";
31
+ import { writeControlRequest } from "../lib/daemon/requests.js";
32
+ import { isSyncRunnerCommandLine, readWatchRunnerOwnerStatus, watchRunnerOwnerStatusPath } from "../lib/daemon/sync-runner.js";
33
+ import { getSyncModeForCompany, setSyncMode } from "./sync-mode.js";
34
+ import { resolveDefaultHqRoot } from "../utils/cognito-session.js";
35
+ class DaemonCommandError extends Error {
36
+ }
37
+ /**
38
+ * The HQ folder install records: --hq-root, else the CLI's shared resolution
39
+ * (HQ_ROOT, the tree around the current folder, the folder the installer or
40
+ * menubar recorded, the well-known locations). Undefined when none resolves.
41
+ */
42
+ /** Validate `hq daemon run --host`; the desktop app is the only host. */
43
+ export function parseDaemonHost(value) {
44
+ if (value === undefined)
45
+ return undefined;
46
+ if (value === "desktop")
47
+ return value;
48
+ throw new Error(`--host must be "desktop" (got "${value}")`);
49
+ }
50
+ export function resolveDaemonHqRoot(flag, where) {
51
+ if (flag)
52
+ return path.resolve(flag);
53
+ try {
54
+ return resolveDefaultHqRoot({ onMissing: "throw", env: where.env, cwd: where.cwd, home: where.home });
55
+ }
56
+ catch {
57
+ // resolveDefaultHqRoot throws only when nothing resolves; install then
58
+ // says the folder is not set.
59
+ return undefined;
60
+ }
61
+ }
62
+ async function loadDefaults(over) {
63
+ const env = over.env ?? process.env;
64
+ const home = over.home ?? os.homedir();
65
+ const platform = over.platform ?? process.platform;
66
+ const needsBinaries = over.nodeBinary === undefined || over.hqBinary === undefined;
67
+ const mesh = needsBinaries || over.windowsUser === undefined ? await import("../lib/mesh/live/daemon/install.js") : null;
68
+ const serviceManager = over.run ? null : await import("../lib/service-manager/index.js");
69
+ const run = over.run ?? serviceManager.defaultRunCommand;
70
+ return {
71
+ env,
72
+ home,
73
+ platform,
74
+ out: over.out ?? ((l) => console.log(l)),
75
+ err: over.err ?? ((l) => console.error(l)),
76
+ run,
77
+ nodeBinary: over.nodeBinary ?? mesh.resolveAbsoluteNodeBinary(),
78
+ hqBinary: over.hqBinary ?? mesh.resolveHqBinary(),
79
+ uid: over.uid ?? (typeof process.getuid === "function" ? process.getuid() : 0),
80
+ isRoot: over.isRoot ?? (typeof process.getuid === "function" && process.getuid() === 0),
81
+ fileExists: over.fileExists ?? fs.existsSync,
82
+ readFile: over.readFile ?? ((p) => fs.readFileSync(p, "utf8")),
83
+ writeFile: over.writeFile ??
84
+ ((p, text) => {
85
+ fs.mkdirSync(path.dirname(p), { recursive: true });
86
+ fs.writeFileSync(p, text, { mode: 0o644 });
87
+ }),
88
+ legacyUnits: over.legacyUnits ??
89
+ ((dir) => findLegacyUnits({
90
+ platform,
91
+ home: dir ?? home,
92
+ existsSync: fs.existsSync,
93
+ listDir: (dir) => fs.readdirSync(dir),
94
+ launchdJobLoaded: (label) => run("launchctl", ["print", `gui/${process.getuid?.() ?? 0}/${label}`]).status === 0,
95
+ windowsTaskExists: (task) => run("schtasks.exe", ["/Query", "/TN", task]).status === 0,
96
+ })),
97
+ resolveHqRoot: over.resolveHqRoot ?? ((flag) => resolveDaemonHqRoot(flag, { env, cwd: process.cwd(), home })),
98
+ userHome: over.userHome ?? ((user) => loginHome(user, run)),
99
+ daemonAlive: over.daemonAlive ?? ((pid) => isDaemonProcess(pid)),
100
+ windowsUser: over.windowsUser ?? (platform === "win32" ? mesh.resolveWindowsUser(env) : ""),
101
+ windowsHeadlessLauncher: over.windowsHeadlessLauncher ?? (platform === "win32" ? mesh.resolveWindowsHeadlessLauncher(env) : undefined),
102
+ systemUnitDir: over.systemUnitDir ?? SYSTEM_UNIT_DIR,
103
+ syncModeClient: over.syncModeClient,
104
+ systemRecordPath: over.systemRecordPath ?? path.join(SYSTEM_ADOPTED_ROOT, "adopted.json"),
105
+ };
106
+ }
107
+ function detect(d, flag, config) {
108
+ return detectMachineType(flag, {
109
+ platform: d.platform,
110
+ env: d.env,
111
+ home: d.home,
112
+ savedType: config.machineType,
113
+ existsSync: d.fileExists,
114
+ readFileSync: d.readFile,
115
+ });
116
+ }
117
+ function describeServices(machineType, config) {
118
+ return enabledServices(machineType, config).map((s) => ` ${s.padEnd(16)} ${SERVICE_DESCRIPTIONS[s]}`);
119
+ }
120
+ function hostFor(d, paths, pathEnv) {
121
+ const env = {};
122
+ if (pathEnv && d.env.PATH)
123
+ env.PATH = d.env.PATH;
124
+ if (d.env.HQ_DAEMON_DIR)
125
+ env.HQ_DAEMON_DIR = d.env.HQ_DAEMON_DIR;
126
+ return {
127
+ platform: d.platform,
128
+ home: d.home,
129
+ nodeBinary: d.nodeBinary,
130
+ hqBinary: d.hqBinary,
131
+ daemonDir: paths.root,
132
+ uid: d.uid,
133
+ isRoot: d.isRoot,
134
+ windowsUser: d.windowsUser ?? "",
135
+ windowsHeadlessLauncher: d.windowsHeadlessLauncher,
136
+ systemUnitDir: d.systemUnitDir ?? SYSTEM_UNIT_DIR,
137
+ env,
138
+ };
139
+ }
140
+ /**
141
+ * The login user's home from the account database: `getent` covers LDAP and
142
+ * other NSS sources, /etc/passwd covers hosts without it. Accounts are not
143
+ * required to live under /home (root, service accounts under /var/lib).
144
+ */
145
+ function loginHome(user, run) {
146
+ const entry = run("getent", ["passwd", user]);
147
+ const fromGetent = entry.status === 0 ? homeFromPasswd(entry.stdout, user) : null;
148
+ if (fromGetent)
149
+ return fromGetent;
150
+ let passwd;
151
+ try {
152
+ passwd = fs.readFileSync("/etc/passwd", "utf8");
153
+ }
154
+ catch (err) {
155
+ throw new DaemonCommandError(`Could not look up the home directory of ${user}: ${err.message}`);
156
+ }
157
+ const fromFile = homeFromPasswd(passwd, user);
158
+ if (!fromFile)
159
+ throw new DaemonCommandError(`The login user ${user} from /etc/hq/machine-type does not exist on this machine.`);
160
+ return fromFile;
161
+ }
162
+ /**
163
+ * Where the daemon's files are for this machine. On boxes the system unit runs
164
+ * as the login user, so its files live in that user's home, not root's.
165
+ */
166
+ function hostPaths(d, flag, userFlag) {
167
+ const own = daemonPaths(d.home, d.env);
168
+ const detected = detect(d, flag, readDaemonConfig(own.configPath));
169
+ if (installScopeFor(detected.type) !== "system")
170
+ return { paths: own, detected };
171
+ // An explicit --user, then the marker or the outpost runner's User=, then
172
+ // the account that ran sudo.
173
+ const sudoUser = d.env.SUDO_USER?.trim();
174
+ const runAsUser = userFlag ?? detected.runAsUser ?? (sudoUser && sudoUser !== "root" ? sudoUser : undefined);
175
+ if (runAsUser === "root")
176
+ throw new DaemonCommandError(`${ROOT_REFUSAL} Pass the box's login user with --user <name>.`);
177
+ if (!runAsUser) {
178
+ throw new DaemonCommandError("A box install needs the login user the daemon runs as: pass --user <name>, or provisioning writes it to /etc/hq/machine-type (user=<name>).");
179
+ }
180
+ const paths = daemonPaths(d.userHome(runAsUser), d.env);
181
+ if (flag !== undefined || userFlag !== undefined)
182
+ return { paths, detected, runAsUser };
183
+ // Root normally has no saved config; the login user's saved type is the real one.
184
+ const saved = readDaemonConfig(paths.configPath);
185
+ const again = saved.machineType ? detect(d, undefined, saved) : detected;
186
+ return { paths, detected: again, runAsUser: again.runAsUser ?? runAsUser };
187
+ }
188
+ /** hostPaths for the everyday verbs: a box without a known login user falls back to this user's own files. */
189
+ function currentHost(d) {
190
+ try {
191
+ return hostPaths(d, undefined);
192
+ }
193
+ catch (err) {
194
+ if (!(err instanceof DaemonCommandError))
195
+ throw err;
196
+ const paths = daemonPaths(d.home, d.env);
197
+ return { paths, detected: detect(d, undefined, readDaemonConfig(paths.configPath)) };
198
+ }
199
+ }
200
+ /** Files root writes for a box's daemon must stay readable by the login user it runs as. */
201
+ function handOver(d, host) {
202
+ if (host.runAsUser && d.isRoot)
203
+ d.run("chown", ["-R", `${host.runAsUser}:`, host.paths.root]);
204
+ }
205
+ async function runInstall(d, opts) {
206
+ const { paths, detected, runAsUser } = hostPaths(d, opts.machineType, opts.user);
207
+ const scope = installScopeFor(detected.type);
208
+ // A per-user unit installed by root would run every service as root.
209
+ const refusal = scope === "user" ? daemonRootRefusal(d.isRoot, detected.type) : null;
210
+ if (refusal)
211
+ throw new DaemonCommandError(refusal);
212
+ const config = {
213
+ ...readDaemonConfig(paths.configPath),
214
+ machineType: detected.type,
215
+ };
216
+ const hqRoot = d.resolveHqRoot(opts.hqRoot) ?? config.hqRoot;
217
+ if (hqRoot)
218
+ config.hqRoot = hqRoot;
219
+ writeDaemonConfig(paths.configPath, config);
220
+ for (const w of detected.warnings ?? [])
221
+ d.err(`warning: ${w}`);
222
+ d.out(`Machine type: ${detected.type} (${detected.detail})`);
223
+ d.out(hqRoot ? `HQ folder: ${hqRoot}` : "HQ folder: not set (sync, lanes and search wait until `hq daemon install --hq-root <path>`)");
224
+ d.out("Services that start automatically:");
225
+ for (const line of describeServices(detected.type, config))
226
+ d.out(line);
227
+ const migratable = d.legacyUnits().filter((u) => u.migratable);
228
+ for (const u of migratable) {
229
+ d.out(`Note: ${describeLegacyUnit(u)} still runs ${u.unitId}. The daemon leaves it alone until \`hq daemon migrate\` takes it over.`);
230
+ }
231
+ // A box worked out from its runner unit, --user or sudo gets the marker file
232
+ // provisioning would have written: `migrate --apply` moves the runner unit
233
+ // aside, and later root commands (uninstall) must still find the box's type
234
+ // and login user.
235
+ if (scope === "system" && runAsUser && d.isRoot && !d.fileExists(MACHINE_TYPE_MARKER_PATH)) {
236
+ d.writeFile(MACHINE_TYPE_MARKER_PATH, `type=${detected.type}\nuser=${runAsUser}\n`);
237
+ }
238
+ const runAsHome = runAsUser ? d.userHome(runAsUser) : undefined;
239
+ const result = installDaemonUnit(hostFor(d, paths, scope === "user"), { scope, runAsUser, runAsHome }, { run: d.run });
240
+ handOver(d, { paths, detected, runAsUser });
241
+ if (result.kind === "manual") {
242
+ d.out(`This platform has no supported service manager. Start the daemon yourself with:\n ${result.manualCommand}`);
243
+ return;
244
+ }
245
+ if (!result.running) {
246
+ throw new DaemonCommandError(`Installed ${result.unitPath}, but it did not start: ${result.error ?? "unknown error"}`);
247
+ }
248
+ d.out(`Installed and started: ${result.unitPath}`);
249
+ }
250
+ /** Root acting for a box's login user needs that user's uid to reach their systemd manager. */
251
+ function loginUid(d, user) {
252
+ const r = d.run("id", ["-u", user]);
253
+ const uid = Number(r.stdout.trim());
254
+ if (r.status !== 0 || !Number.isInteger(uid) || uid < 0 || r.stdout.trim() === "") {
255
+ throw new DaemonCommandError(`Could not look up the uid of ${user}.`);
256
+ }
257
+ return uid;
258
+ }
259
+ /** Where the older units are: a box's login user's home when root runs this for them. */
260
+ function legacyUnitsFor(d, host) {
261
+ return d.isRoot && host.runAsUser ? d.legacyUnits(d.userHome(host.runAsUser)) : d.legacyUnits();
262
+ }
263
+ function migrateDeps(d, paths, runAsUser) {
264
+ return {
265
+ run: d.run,
266
+ uid: d.uid,
267
+ isRoot: d.isRoot,
268
+ userUnitsOwner: d.isRoot && runAsUser ? { user: runAsUser, uid: loginUid(d, runAsUser) } : undefined,
269
+ adoptedDir: path.join(paths.root, "adopted"),
270
+ recordPath: path.join(paths.root, "adopted.json"),
271
+ // Box system units: root-owned, outside the login user's daemon folder (which handOver chowns to that user).
272
+ systemAdoptedDir: path.join(SYSTEM_ADOPTED_ROOT, "adopted"),
273
+ systemRecordPath: d.systemRecordPath ?? path.join(SYSTEM_ADOPTED_ROOT, "adopted.json"),
274
+ systemUnitDir: d.systemUnitDir ?? SYSTEM_UNIT_DIR,
275
+ };
276
+ }
277
+ const SYSTEM_ADOPTED_ROOT = "/var/lib/hq/daemon";
278
+ /** Every unit the daemon took over that has not been given back (the system store only when root can read it). */
279
+ function unrestoredUnits(d, migrate) {
280
+ const own = readAdoptedUnits(migrate.recordPath);
281
+ return d.isRoot ? [...own, ...readAdoptedUnits(migrate.systemRecordPath)] : own;
282
+ }
283
+ async function runUninstall(d, opts) {
284
+ const host = currentHost(d);
285
+ const { paths, detected } = host;
286
+ // Only a restore acts on the login user's units.
287
+ const migrate = migrateDeps(d, paths, opts.restoreLegacy ? host.runAsUser : undefined);
288
+ const adopted = unrestoredUnits(d, migrate);
289
+ if (opts.purge && !opts.restoreLegacy && adopted.length > 0) {
290
+ throw new DaemonCommandError(`hq daemon took over ${adopted.map((u) => u.unitId).join(", ")}, and their original units are kept in ${migrate.adoptedDir}. ` +
291
+ "Run `hq daemon uninstall --restore-legacy --purge` to give them back first, so --purge does not delete them.");
292
+ }
293
+ const result = uninstallDaemonUnit(hostFor(d, paths, false), { scope: installScopeFor(detected.type) }, { run: d.run });
294
+ d.out(result.removed ? `Removed ${result.unitPath}` : "hq daemon was not installed.");
295
+ if (opts.restoreLegacy) {
296
+ const restored = restoreLegacyUnits(migrate);
297
+ for (const u of restored.restored)
298
+ d.out(`Gave ${u.unitId} back to ${describeLegacyUnit(u)}`);
299
+ for (const f of restored.failed)
300
+ d.err(`Could not give ${f.unit.unitId} back to ${describeLegacyUnit(f.unit)}: ${f.error}`);
301
+ if (restored.restored.length === 0 && restored.failed.length === 0)
302
+ d.out("hq daemon had not taken over any older units.");
303
+ if (restored.failed.length > 0) {
304
+ handOver(d, host);
305
+ throw new DaemonCommandError(`Some units were not restored; they are still listed in ${migrate.recordPath}.`);
306
+ }
307
+ }
308
+ if (opts.purge) {
309
+ fs.rmSync(paths.root, { recursive: true, force: true });
310
+ d.out(`Deleted ${paths.root}`);
311
+ }
312
+ else {
313
+ d.out(`Kept settings in ${paths.configPath}`);
314
+ }
315
+ }
316
+ function readState(paths) {
317
+ try {
318
+ return JSON.parse(fs.readFileSync(paths.statePath, "utf8"));
319
+ }
320
+ catch (err) {
321
+ if (err.code === "ENOENT")
322
+ return null;
323
+ throw new DaemonCommandError(`could not read ${paths.statePath}: ${err.message}`);
324
+ }
325
+ }
326
+ function formatUnit(u) {
327
+ const detail = u.status === "running" && u.pid
328
+ ? `pid ${u.pid}`
329
+ : u.status === "idle" && u.lastResult
330
+ ? `last run ${u.lastResult}`
331
+ : (u.reason ?? "");
332
+ const restarts = u.restarts > 0 ? ` (restarted ${u.restarts}x)` : "";
333
+ return ` ${u.id.padEnd(22)} ${u.status.padEnd(12)} ${detail}${restarts}`;
334
+ }
335
+ async function runStatus(d, opts) {
336
+ const host = currentHost(d);
337
+ const { paths } = host;
338
+ const pid = runningDaemonPid(paths.lockPath, d.daemonAlive);
339
+ const state = pid ? readState(paths) : null;
340
+ const config = readDaemonConfig(paths.configPath);
341
+ if (opts.json) {
342
+ d.out(JSON.stringify({ running: pid !== null, pid, machineType: state?.machineType ?? config.machineType ?? null, units: state?.units ?? [] }, null, 2));
343
+ return;
344
+ }
345
+ if (!pid || !state) {
346
+ const { detected } = host;
347
+ d.out(`hq daemon is not running. Machine type: ${detected.type} (${detected.detail}).`);
348
+ d.out("Default services for this machine:");
349
+ for (const line of describeServices(detected.type, config))
350
+ d.out(line);
351
+ return;
352
+ }
353
+ d.out(`hq daemon is running (pid ${pid}) on a ${state.machineType} machine.`);
354
+ for (const u of state.units)
355
+ d.out(formatUnit(u));
356
+ }
357
+ function tailLines(file, lines) {
358
+ const text = fs.readFileSync(file, "utf8");
359
+ return text.split("\n").filter((l, i, all) => i < all.length - 1 || l !== "").slice(-lines);
360
+ }
361
+ async function runLogs(d, unit, opts) {
362
+ const { paths } = currentHost(d);
363
+ const file = unit ? paths.unitLogPath(unit) : paths.supervisorLogPath;
364
+ if (!fs.existsSync(file))
365
+ throw new DaemonCommandError(`No log yet at ${file}`);
366
+ const n = Number(opts.lines ?? 50);
367
+ for (const line of tailLines(file, Number.isFinite(n) && n > 0 ? n : 50))
368
+ d.out(line);
369
+ if (!opts.follow)
370
+ return;
371
+ let offset = fs.statSync(file).size;
372
+ await new Promise(() => {
373
+ setInterval(() => {
374
+ const size = fs.statSync(file).size;
375
+ if (size < offset)
376
+ offset = 0;
377
+ if (size === offset)
378
+ return;
379
+ const fd = fs.openSync(file, "r");
380
+ const buf = Buffer.alloc(size - offset);
381
+ fs.readSync(fd, buf, 0, buf.length, offset);
382
+ fs.closeSync(fd);
383
+ offset = size;
384
+ process.stdout.write(buf.toString("utf8"));
385
+ }, 500);
386
+ });
387
+ }
388
+ function queueRequest(d, request, what) {
389
+ const host = currentHost(d);
390
+ const { paths } = host;
391
+ writeControlRequest(paths.requestsDir, request);
392
+ handOver(d, host);
393
+ const running = runningDaemonPid(paths.lockPath, d.daemonAlive) !== null;
394
+ d.out(running ? `Asked the daemon to ${what}.` : `Queued "${what}"; the daemon is not running, so it applies when it starts.`);
395
+ }
396
+ function daemonSyncModeClient(d) {
397
+ if (d.syncModeClient)
398
+ return d.syncModeClient();
399
+ return (async () => {
400
+ const [{ VaultClient }, { buildVaultConfig, ensureCognitoToken }] = await Promise.all([
401
+ import("@indigoai-us/hq-cloud"),
402
+ import("../utils/cognito-session.js"),
403
+ ]);
404
+ const token = await ensureCognitoToken();
405
+ return new VaultClient(buildVaultConfig(token));
406
+ })();
407
+ }
408
+ function daemonSyncStatus(d) {
409
+ const host = currentHost(d);
410
+ const { paths } = host;
411
+ const config = readDaemonConfig(paths.configPath);
412
+ const daemonPid = runningDaemonPid(paths.lockPath, d.daemonAlive);
413
+ const daemonState = daemonPid === null ? null : readState(paths);
414
+ const syncUnit = daemonState?.units.find((unit) => unit.id === "sync");
415
+ const hqRoot = config.hqRoot ?? d.env.HQ_ROOT?.trim();
416
+ let ownerStatusCandidate = null;
417
+ if (hqRoot) {
418
+ try {
419
+ ownerStatusCandidate = readWatchRunnerOwnerStatus(watchRunnerOwnerStatusPath(hqRoot, d.home, d.env));
420
+ }
421
+ catch (error) {
422
+ const detail = error instanceof Error ? error.message : String(error);
423
+ d.err(`Could not read sync runner owner status; treating it as unavailable: ${detail}`);
424
+ }
425
+ }
426
+ const ownerCommandLine = ownerStatusCandidate
427
+ ? processCommandLine(ownerStatusCandidate.pid, { platform: d.platform, run: d.run })
428
+ : null;
429
+ const ownerStatus = ownerCommandLine && isSyncRunnerCommandLine(ownerCommandLine)
430
+ ? ownerStatusCandidate
431
+ : null;
432
+ return {
433
+ running: syncUnit?.status === "running",
434
+ paused: config.syncPaused === true,
435
+ syncOwner: effectiveSyncOwner(config, host.detected.type),
436
+ owner: ownerStatus?.owner ?? (syncUnit?.status === "running" ? "hq-daemon" : null),
437
+ runnerPid: ownerStatus?.pid ?? syncUnit?.pid ?? null,
438
+ hqCloudVersion: ownerStatus?.version ?? null,
439
+ lastHeartbeat: syncUnit?.lastHeartbeatAt ?? ownerStatus?.heartbeatAt ?? null,
440
+ lastPassResult: syncUnit?.lastPassResult ?? null,
441
+ unitStatus: syncUnit?.status ?? "not-running",
442
+ reason: syncUnit?.reason ?? null,
443
+ logPath: paths.unitLogPath("sync"),
444
+ };
445
+ }
446
+ async function runDaemonSyncStatus(d, opts) {
447
+ const status = daemonSyncStatus(d);
448
+ if (opts.json) {
449
+ d.out(JSON.stringify(status, null, 2));
450
+ return;
451
+ }
452
+ d.out(`Sync ${status.running ? "running" : status.unitStatus}${status.paused ? " (paused)" : ""}.`);
453
+ d.out(`Configured sync owner: ${status.syncOwner}.`);
454
+ d.out(`Owner: ${status.owner ?? "none"}; runner pid: ${status.runnerPid ?? "none"}; hq-cloud: ${status.hqCloudVersion ?? "unknown"}.`);
455
+ if (status.reason)
456
+ d.out(`Reason: ${status.reason}`);
457
+ d.out(`Log: ${status.logPath}`);
458
+ }
459
+ function queueDaemonSyncControl(d, request) {
460
+ const host = currentHost(d);
461
+ writeControlRequest(host.paths.requestsDir, request);
462
+ handOver(d, host);
463
+ return runningDaemonPid(host.paths.lockPath, d.daemonAlive) !== null;
464
+ }
465
+ async function runDaemonSyncNow(d, opts) {
466
+ const host = currentHost(d);
467
+ const config = readDaemonConfig(host.paths.configPath);
468
+ if (config.syncPaused)
469
+ throw new DaemonCommandError("sync is paused; run `hq daemon sync resume` first");
470
+ if (!enabledServices(host.detected.type, config).includes("sync")) {
471
+ throw new DaemonCommandError("sync is disabled for this machine; run `hq daemon enable sync` first");
472
+ }
473
+ const running = queueDaemonSyncControl(d, { action: "restart", unit: "sync" });
474
+ const result = { accepted: true, action: "restart-sync-runner", daemonRunning: running };
475
+ d.out(opts.json ? JSON.stringify(result, null, 2) : running ? "Asked the daemon to start a fresh sync pass." : "Queued a fresh sync pass for the next daemon start.");
476
+ }
477
+ async function runDaemonSyncInstantSyncSet(d, enabled, opts) {
478
+ const host = currentHost(d);
479
+ const config = readDaemonConfig(host.paths.configPath);
480
+ const changed = config.instantSyncEnabled !== enabled;
481
+ if (changed)
482
+ writeDaemonConfig(host.paths.configPath, { ...config, instantSyncEnabled: enabled });
483
+ const daemonRunning = runningDaemonPid(host.paths.lockPath, d.daemonAlive) !== null;
484
+ if (changed && daemonRunning)
485
+ queueDaemonSyncControl(d, { action: "restart-daemon" });
486
+ const result = { instantSyncEnabled: enabled, persisted: true, daemonRestartRequested: changed && daemonRunning };
487
+ d.out(opts.json ? JSON.stringify(result, null, 2) : `Instant Sync ${enabled ? "enabled" : "disabled"}${daemonRunning ? "; asked the daemon to restart" : "; saved for the next daemon start"}.`);
488
+ }
489
+ async function runDaemonSyncPause(d, paused, opts) {
490
+ const host = currentHost(d);
491
+ const config = readDaemonConfig(host.paths.configPath);
492
+ if (config.syncPaused !== paused)
493
+ writeDaemonConfig(host.paths.configPath, { ...config, syncPaused: paused });
494
+ const daemonRunning = queueDaemonSyncControl(d, { action: "reconcile" });
495
+ const result = { paused, persisted: true, daemonRunning };
496
+ d.out(opts.json ? JSON.stringify(result, null, 2) : `Sync ${paused ? "paused" : "resumed"}${daemonRunning ? "" : "; the setting will apply when the daemon starts"}.`);
497
+ }
498
+ async function runDaemonSyncTakeOwnership(d, opts) {
499
+ const host = currentHost(d);
500
+ const config = readDaemonConfig(host.paths.configPath);
501
+ if (config.syncOwner !== "daemon")
502
+ writeDaemonConfig(host.paths.configPath, { ...config, syncOwner: "daemon" });
503
+ const daemonRunning = queueDaemonSyncControl(d, { action: "reconcile" });
504
+ const result = { syncOwner: "daemon", persisted: true, daemonRunning };
505
+ d.out(opts.json ? JSON.stringify(result, null, 2) : `Daemon sync ownership persisted${daemonRunning ? "; asked the daemon to reconcile" : "; it applies when the daemon starts"}.`);
506
+ }
507
+ async function runDaemonSyncModeGet(d, companySlug, opts) {
508
+ const result = await getSyncModeForCompany({ companySlug, vaultClient: await daemonSyncModeClient(d) });
509
+ const value = {
510
+ companySlug: result.companySlug,
511
+ membershipId: result.membershipId,
512
+ mode: result.config.syncMode,
513
+ isDefault: result.config.isDefault,
514
+ ...(result.config.updatedAt ? { updatedAt: result.config.updatedAt } : {}),
515
+ };
516
+ d.out(opts.json ? JSON.stringify(value, null, 2) : `${value.companySlug}: ${value.mode}${value.isDefault ? " (default)" : ""}`);
517
+ }
518
+ async function runDaemonSyncModeSet(d, companySlug, mode, opts) {
519
+ if (mode !== "all" && mode !== "shared") {
520
+ throw new DaemonCommandError(`Invalid sync mode '${mode}'. Use all or shared.`);
521
+ }
522
+ const result = await setSyncMode({
523
+ mode,
524
+ companySlug,
525
+ vaultClient: await daemonSyncModeClient(d),
526
+ });
527
+ const value = {
528
+ companySlug: result.companySlug,
529
+ membershipId: result.membershipId,
530
+ previousMode: result.previousMode,
531
+ mode: result.newMode,
532
+ isDefault: result.newConfig.isDefault,
533
+ ...(result.newConfig.updatedAt ? { updatedAt: result.newConfig.updatedAt } : {}),
534
+ };
535
+ d.out(opts.json ? JSON.stringify(value, null, 2) : `${value.companySlug}: ${value.previousMode} → ${value.mode}`);
536
+ }
537
+ async function runToggle(d, action, services) {
538
+ const host = currentHost(d);
539
+ const { paths } = host;
540
+ const config = readDaemonConfig(paths.configPath);
541
+ const machineType = host.detected.type;
542
+ const next = applyServiceToggle(config, action, services, DEFAULT_SERVICES[machineType]);
543
+ writeDaemonConfig(paths.configPath, next);
544
+ handOver(d, host);
545
+ d.out(`Services for this ${machineType} machine:`);
546
+ for (const line of describeServices(machineType, next))
547
+ d.out(line);
548
+ d.out("A running daemon picks this up within 15 seconds.");
549
+ }
550
+ async function runPinHqCloud(d, version, opts) {
551
+ if (opts.clear === Boolean(version)) {
552
+ throw new DaemonCommandError("Pass one exact semver version, or use --clear.");
553
+ }
554
+ const host = currentHost(d);
555
+ const { paths } = host;
556
+ const config = readDaemonConfig(paths.configPath);
557
+ if (opts.clear) {
558
+ delete config.hqCloudVersion;
559
+ writeDaemonConfig(paths.configPath, config);
560
+ handOver(d, host);
561
+ d.out("Cleared the hq-cloud version pin.");
562
+ }
563
+ else {
564
+ if (!version || validSemver(version) !== version) {
565
+ throw new DaemonCommandError(`Invalid hq-cloud version "${version ?? ""}". Pass an exact semver version, including prereleases if needed.`);
566
+ }
567
+ const bundled = bundledHqCloud();
568
+ if (!bundled || semverMajor(bundled.version) !== semverMajor(version)) {
569
+ throw new DaemonCommandError(`The hq-cloud pin must use the same major version as the bundled hq-cloud${bundled ? ` (${semverMajor(bundled.version)})` : ""}.`);
570
+ }
571
+ writeDaemonConfig(paths.configPath, { ...config, hqCloudVersion: version });
572
+ handOver(d, host);
573
+ d.out(`Pinned hq-cloud to ${version}.`);
574
+ }
575
+ d.out("Run `hq daemon trigger updater`; wait for the hq-cloud update or current-version message in `hq daemon logs updater`, then restart `hq daemon restart sync`, `hq daemon restart heartbeat`, and `hq daemon restart session-host`.");
576
+ }
577
+ async function runMigrate(d, opts) {
578
+ const host = currentHost(d);
579
+ const units = legacyUnitsFor(d, host);
580
+ if (units.length === 0) {
581
+ d.out("No older HQ background units found. Nothing to migrate.");
582
+ return;
583
+ }
584
+ if (opts.apply) {
585
+ // Stopping the older units with nothing installed to replace them would
586
+ // leave their services off.
587
+ const installed = daemonUnitInstalled({
588
+ platform: d.platform,
589
+ home: d.home,
590
+ systemUnitDir: d.systemUnitDir,
591
+ windowsTaskExists: (task) => d.run("schtasks.exe", ["/Query", "/TN", task]).status === 0,
592
+ });
593
+ if (!installed) {
594
+ throw new DaemonCommandError("hq daemon is not installed here yet. Run `hq daemon install` first, then `hq daemon migrate --apply`.");
595
+ }
596
+ const result = adoptLegacyUnits(units, migrateDeps(d, host.paths, host.runAsUser));
597
+ handOver(d, host);
598
+ for (const a of result.adopted)
599
+ d.out(`Took over ${a.unitId} from ${describeLegacyUnit(a)}`);
600
+ for (const s of result.skipped)
601
+ d.out(`Left ${s.unit.unitId} to ${describeLegacyUnit(s.unit)}: ${s.reason}`);
602
+ for (const f of result.failed)
603
+ d.err(`Could not take over ${f.unit.unitId} from ${describeLegacyUnit(f.unit)}: ${f.error}`);
604
+ if (result.adopted.length > 0) {
605
+ d.out("The daemon starts these services within a minute. `hq daemon uninstall --restore-legacy` puts the old units back.");
606
+ }
607
+ if (result.failed.length > 0)
608
+ throw new DaemonCommandError("Some units could not be taken over; they are still running as before.");
609
+ return;
610
+ }
611
+ for (const u of units) {
612
+ if (u.migratable)
613
+ d.out(`Would take over ${u.unitId} from ${describeLegacyUnit(u)}${u.path ? ` (${u.path})` : ""}`);
614
+ else
615
+ d.out(`Leaving ${u.unitId} to ${describeLegacyUnit(u)} (owned by the HQ desktop app)`);
616
+ }
617
+ d.out("Nothing was changed. `hq daemon migrate --apply` takes them over.");
618
+ }
619
+ async function runServiceSelfUpdate(d) {
620
+ const [{ daemonSelfUpdate }, { hostToolUpdater, runDaemonUpdater, updaterEnv }, { TOOL_NAMES }, { cliSelfUpdatable }, { updateManagedHqCloud },] = await Promise.all([
621
+ import("../utils/self-update.js"),
622
+ import("../lib/daemon/updater.js"),
623
+ import("../lib/daemon/tools.js"),
624
+ import("../lib/daemon/run.js"),
625
+ import("../lib/daemon/hq-cloud.js"),
626
+ ]);
627
+ const { paths, detected } = currentHost(d);
628
+ const env = updaterEnv(d.env);
629
+ const result = await runDaemonUpdater({
630
+ // Same guard as every self-update: never replace a dev checkout or a project's copy with a global install.
631
+ updateCli: cliSelfUpdatable() ? () => daemonSelfUpdate({ env }) : null,
632
+ tools: TOOL_NAMES.map((name) => hostToolUpdater(name, env, d.home)),
633
+ updateHqCloud: async () => updateManagedHqCloud(paths.root, env),
634
+ hqCloudUnits: hqCloudUnits(detected.type, enabledServices(detected.type, readDaemonConfig(paths.configPath))),
635
+ requestDaemonRestart: () => writeControlRequest(paths.requestsDir, { action: "restart-daemon" }),
636
+ requestRestart: (unit) => writeControlRequest(paths.requestsDir, { action: "restart", unit }),
637
+ log: d.out,
638
+ });
639
+ if (!result.ok)
640
+ process.exitCode = 1;
641
+ }
642
+ async function runTmuxService(d, opts) {
643
+ const { runRemoteControlHost, toolFingerprint } = await import("../lib/daemon/remote-control.js");
644
+ const { findOnPath } = await import("../lib/daemon/run.js");
645
+ const hqRoot = d.env.HQ_ROOT?.trim();
646
+ if (!hqRoot)
647
+ throw new DaemonCommandError(`${opts.label} needs HQ_ROOT (the daemon sets it from the saved HQ folder)`);
648
+ const tmux = findOnPath("tmux", d.env);
649
+ if (!tmux)
650
+ throw new DaemonCommandError("tmux is not installed");
651
+ const controller = new AbortController();
652
+ const stop = () => controller.abort();
653
+ process.once("SIGTERM", stop);
654
+ process.once("SIGINT", stop);
655
+ try {
656
+ process.exitCode = await runRemoteControlHost({
657
+ tmux,
658
+ session: opts.session,
659
+ cwd: hqRoot,
660
+ argv: opts.argv,
661
+ label: opts.label,
662
+ // Only a new version of the tool restarts the session: not a same-version
663
+ // reinstall, and not an hq-cli release (the host's own code rarely matters).
664
+ binaryFingerprint: () => toolFingerprint(opts.watch),
665
+ now: () => Date.now(),
666
+ run: d.run,
667
+ pollMs: 5_000,
668
+ signal: controller.signal,
669
+ sleep: (ms) => new Promise((resolve) => {
670
+ const timer = setTimeout(resolve, ms);
671
+ controller.signal.addEventListener("abort", () => {
672
+ clearTimeout(timer);
673
+ resolve();
674
+ }, { once: true });
675
+ }),
676
+ log: d.out,
677
+ });
678
+ }
679
+ finally {
680
+ process.off("SIGTERM", stop);
681
+ process.off("SIGINT", stop);
682
+ }
683
+ }
684
+ /** The claude or codex a remote-control host runs: --claude/--codex, else the one installed now. */
685
+ async function hostTool(d, name, given) {
686
+ const [{ serviceTool }, { findUserBinary }] = await Promise.all([
687
+ import("../lib/daemon/remote-control.js"),
688
+ import("../lib/daemon/run.js"),
689
+ ]);
690
+ try {
691
+ return serviceTool(name, given, (tool) => findUserBinary(tool, d.env, d.home));
692
+ }
693
+ catch (err) {
694
+ throw new DaemonCommandError(err.message);
695
+ }
696
+ }
697
+ async function runServiceRemoteControl(d, opts) {
698
+ const { TMUX_SESSION, remoteControlArgs } = await import("../lib/daemon/remote-control.js");
699
+ const claude = await hostTool(d, "claude", opts.claude);
700
+ await runTmuxService(d, {
701
+ session: TMUX_SESSION,
702
+ argv: [claude, ...remoteControlArgs({ name: opts.name, permissionMode: opts.permissionMode })],
703
+ label: "claude remote-control",
704
+ watch: claude,
705
+ });
706
+ }
707
+ async function runServiceCodexRemoteControl(d, opts) {
708
+ const { CODEX_TMUX_SESSION } = await import("../lib/daemon/remote-control.js");
709
+ const codex = await hostTool(d, "codex", opts.codex);
710
+ await runTmuxService(d, {
711
+ session: CODEX_TMUX_SESSION,
712
+ argv: ["bash", opts.script],
713
+ label: "codex remote-control",
714
+ watch: codex,
715
+ });
716
+ }
717
+ export function registerDaemonCommand(program, over = {}) {
718
+ let resolved = null;
719
+ const deps = () => (resolved ??= loadDefaults(over));
720
+ const wrap = (fn) => async (...args) => {
721
+ const d = await deps();
722
+ try {
723
+ await fn(d, ...args);
724
+ }
725
+ catch (err) {
726
+ d.err(err instanceof Error ? err.message : String(err));
727
+ process.exitCode = 1;
728
+ }
729
+ };
730
+ const daemon = program
731
+ .command("daemon", { hidden: true })
732
+ .description("Run all of this machine's HQ background services under one supervisor")
733
+ .action(wrap((d) => runStatus(d, {})));
734
+ daemon
735
+ .command("install")
736
+ .description("Detect this machine's type, install the daemon, and start its default services")
737
+ .option("--machine-type <type>", "desktop | self-hosted | outpost | agent-box | agent-kit (skips detection)")
738
+ .option("--hq-root <path>", "HQ folder the services work against")
739
+ .option("--user <login>", "on a box: the login user the daemon runs as (never root)")
740
+ .action(wrap((d, opts) => runInstall(d, opts)));
741
+ daemon
742
+ .command("uninstall")
743
+ .description("Stop the daemon and remove its OS unit")
744
+ .option("--purge", "Also delete ~/.hq/daemon (settings, state and logs)")
745
+ .option("--restore-legacy", "Give the services `hq daemon migrate --apply` took over back to their original units")
746
+ .action(wrap((d, opts) => runUninstall(d, opts)));
747
+ daemon
748
+ .command("run")
749
+ .description("Run the supervisor (this is what the OS unit starts)")
750
+ .option("--foreground", "Also print the supervisor log to the terminal")
751
+ .option("--daemon-dir <path>", "Use this folder instead of ~/.hq/daemon (how the Windows task passes HQ_DAEMON_DIR)")
752
+ .option("--managed", "Started by the OS unit, which starts the daemon again whenever it exits")
753
+ .option("--host <app>", "Run as a child of this app (only \"desktop\"), which has handed sync over to the daemon")
754
+ .action(wrap(async (d, opts) => {
755
+ const host = parseDaemonHost(opts.host);
756
+ const { runDaemon } = await import("../lib/daemon/run.js");
757
+ // Services inherit this environment, so they see the same folder.
758
+ const env = opts.daemonDir ? { ...d.env, HQ_DAEMON_DIR: opts.daemonDir } : d.env;
759
+ process.exitCode = await runDaemon({
760
+ foreground: opts.foreground,
761
+ managed: opts.managed,
762
+ host,
763
+ home: d.home,
764
+ env,
765
+ nodeBinary: d.nodeBinary,
766
+ hqBinary: d.hqBinary,
767
+ });
768
+ }));
769
+ daemon
770
+ .command("status")
771
+ .description("Show the machine type and each service's state")
772
+ .option("--json", "Print machine-readable JSON")
773
+ .action(wrap((d, opts) => runStatus(d, opts)));
774
+ const sync = daemon
775
+ .command("sync")
776
+ .description("Inspect and control the daemon's company sync runner");
777
+ sync
778
+ .command("status")
779
+ .description("Show sync ownership, heartbeat, last pass and log path")
780
+ .option("--json", "Print machine-readable JSON")
781
+ .action(wrap((d, opts) => runDaemonSyncStatus(d, opts)));
782
+ sync
783
+ .command("now")
784
+ .description("Start a fresh sync pass immediately")
785
+ .option("--json", "Print machine-readable JSON")
786
+ .action(wrap((d, opts) => runDaemonSyncNow(d, opts)));
787
+ const instantSync = sync.command("instant-sync").description("Control daemon Instant Sync");
788
+ instantSync
789
+ .command("set <state>")
790
+ .description("Set whether daemon sync uses Instant Sync")
791
+ .option("--json", "Print machine-readable JSON")
792
+ .action(wrap((d, state, opts) => {
793
+ if (state !== "on" && state !== "off")
794
+ throw new DaemonCommandError("Use on or off for Instant Sync.");
795
+ return runDaemonSyncInstantSyncSet(d, state === "on", opts);
796
+ }));
797
+ sync
798
+ .command("pause")
799
+ .description("Pause daemon sync until resumed")
800
+ .option("--json", "Print machine-readable JSON")
801
+ .action(wrap((d, opts) => runDaemonSyncPause(d, true, opts)));
802
+ sync
803
+ .command("resume")
804
+ .description("Resume daemon sync after a pause")
805
+ .option("--json", "Print machine-readable JSON")
806
+ .action(wrap((d, opts) => runDaemonSyncPause(d, false, opts)));
807
+ sync
808
+ .command("take-ownership")
809
+ .description("Persist daemon ownership of desktop sync and reconcile")
810
+ .option("--json", "Print machine-readable JSON")
811
+ .action(wrap((d, opts) => runDaemonSyncTakeOwnership(d, opts)));
812
+ const mode = sync.command("mode").description("Read or change a company's sync footprint");
813
+ mode
814
+ .command("get <company>")
815
+ .description("Read a company's current all/shared sync mode")
816
+ .option("--json", "Print machine-readable JSON")
817
+ .action(wrap((d, company, opts) => runDaemonSyncModeGet(d, company, opts)));
818
+ mode
819
+ .command("set <company> <mode>")
820
+ .description("Set a company's sync mode to all or shared")
821
+ .option("--json", "Print machine-readable JSON")
822
+ .action(wrap((d, company, mode, opts) => runDaemonSyncModeSet(d, company, mode, opts)));
823
+ daemon
824
+ .command("logs [unit]")
825
+ .description("Print the supervisor log, or one service's log")
826
+ .option("-f, --follow", "Keep printing new lines")
827
+ .option("-n, --lines <n>", "How many lines to print first", "50")
828
+ .action(wrap((d, unit, opts) => runLogs(d, unit, opts)));
829
+ daemon
830
+ .command("restart [unit]")
831
+ .description("Restart one service, or every running service")
832
+ .action(wrap(async (d, unit) => queueRequest(d, unit ? { action: "restart", unit } : { action: "restart" }, unit ? `restart ${unit}` : "restart all services")));
833
+ daemon
834
+ .command("trigger <unit>")
835
+ .description("Run a scheduled service now (for example search-index)")
836
+ .action(wrap(async (d, unit) => queueRequest(d, { action: "trigger", unit }, `run ${unit} now`)));
837
+ daemon
838
+ .command("enable <services...>")
839
+ .description("Turn services on for this machine, beyond its defaults")
840
+ .action(wrap((d, services) => runToggle(d, "enable", services)));
841
+ daemon
842
+ .command("disable <services...>")
843
+ .description("Turn default services off for this machine")
844
+ .action(wrap((d, services) => runToggle(d, "disable", services)));
845
+ daemon
846
+ .command("pin-hq-cloud [version]")
847
+ .description("Pin hq-cloud to an exact version, or clear the pin")
848
+ .option("--clear", "Clear the saved hq-cloud version pin")
849
+ .action(wrap((d, version, opts) => runPinHqCloud(d, version, opts)));
850
+ daemon
851
+ .command("migrate")
852
+ .description("List the older HQ background units the daemon would take over; --apply takes them over")
853
+ .option("--apply", "Stop the older units and let the daemon run their services")
854
+ .action(wrap((d, opts) => runMigrate(d, opts)));
855
+ const service = daemon
856
+ .command("service", { hidden: true })
857
+ .description("Entry points the daemon runs for services that have no command of their own");
858
+ service
859
+ .command("self-update")
860
+ .description("Update the hq CLI, Claude, Codex and Grok, then restart the daemon onto a new CLI")
861
+ .action(wrap((d) => runServiceSelfUpdate(d)));
862
+ service
863
+ .command("remote-control")
864
+ .description("Keep `claude remote-control` running in a tmux session in the HQ folder")
865
+ .option("--claude <path>", "claude binary (default: the one installed for this user)")
866
+ .requiredOption("--name <name>", "remote-control session name")
867
+ .option("--permission-mode <mode>", "claude --permission-mode")
868
+ .action(wrap((d, opts) => runServiceRemoteControl(d, opts)));
869
+ service
870
+ .command("codex-remote-control")
871
+ .description("Keep the box's Codex remote-control runner going in a tmux session, restarting it after a Codex update")
872
+ .requiredOption("--script <path>", "the box's Codex runner script")
873
+ .option("--codex <path>", "codex binary, watched for updates (default: the one installed for this user)")
874
+ .action(wrap((d, opts) => runServiceCodexRemoteControl(d, opts)));
875
+ return daemon;
876
+ }
877
+ //# sourceMappingURL=daemon.js.map