@indigoai-us/hq-cli 5.313.0 → 5.314.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 (1174) hide show
  1. package/CHANGELOG.md +1 -4300
  2. package/assets/scaffold/core/scripts/checkpoint-stop-gate.sh +43 -281
  3. package/assets/scaffold/core/scripts/hook-lib.sh +50 -345
  4. package/assets/scaffold/core/scripts/hq-session.sh +23 -184
  5. package/assets/scaffold/core/scripts/lib/session-id.sh +2 -3
  6. package/assets/scaffold/core/scripts/lib/session-scope-capability.sh +1 -1
  7. package/assets/scaffold/core/scripts/lib/work-mesh-enqueue.sh +1 -2
  8. package/assets/scaffold/core/scripts/qmd-reindex-after-sync.sh +87 -10
  9. package/assets/scaffold/core/scripts/rebuild-company-knowledge-index.sh +3 -36
  10. package/assets/scaffold/core/scripts/rebuild-projects-index.sh +12 -99
  11. package/assets/scaffold/core/scripts/token-usage-report.sh +20 -81
  12. package/dist/bin/hq-auth-refresh.d.ts +0 -2
  13. package/dist/bin/hq-auth-refresh.js +6 -12
  14. package/dist/commands/__fixtures__/access-vault.d.ts +0 -2
  15. package/dist/commands/__fixtures__/access-vault.js +1 -1
  16. package/dist/commands/_patterns.d.ts +0 -16
  17. package/dist/commands/_patterns.js +3 -20
  18. package/dist/commands/access.d.ts +1 -2
  19. package/dist/commands/access.js +49 -58
  20. package/dist/commands/agents.d.ts +4 -106
  21. package/dist/commands/agents.js +45 -924
  22. package/dist/commands/auth.d.ts +0 -1
  23. package/dist/commands/auth.js +19 -189
  24. package/dist/commands/billing.d.ts +0 -3
  25. package/dist/commands/billing.js +1 -6
  26. package/dist/commands/channels.js +1 -56
  27. package/dist/commands/cloud-demote.js +2 -3
  28. package/dist/commands/cloud-provision.d.ts +0 -14
  29. package/dist/commands/cloud-provision.js +58 -232
  30. package/dist/commands/cloud.d.ts +15 -49
  31. package/dist/commands/cloud.js +122 -357
  32. package/dist/commands/company-transfer.d.ts +28 -4
  33. package/dist/commands/company-transfer.js +49 -5
  34. package/dist/commands/company.js +3 -68
  35. package/dist/commands/core-checkpoint.d.ts +9 -19
  36. package/dist/commands/core-checkpoint.js +37 -301
  37. package/dist/commands/core.d.ts +0 -4
  38. package/dist/commands/core.js +80 -277
  39. package/dist/commands/crm.js +3 -52
  40. package/dist/commands/db-provision.js +4 -4
  41. package/dist/commands/db-sql.js +21 -7
  42. package/dist/commands/dm.d.ts +12 -119
  43. package/dist/commands/dm.js +38 -388
  44. package/dist/commands/doctor.d.ts +0 -12
  45. package/dist/commands/doctor.js +12 -158
  46. package/dist/commands/feedback.d.ts +0 -6
  47. package/dist/commands/feedback.js +37 -86
  48. package/dist/commands/files-browse.d.ts +12 -32
  49. package/dist/commands/files-browse.js +60 -176
  50. package/dist/commands/files.d.ts +0 -17
  51. package/dist/commands/files.js +47 -300
  52. package/dist/commands/group-grants.js +2 -3
  53. package/dist/commands/groups.js +5 -6
  54. package/dist/commands/index-cmd.d.ts +1 -19
  55. package/dist/commands/index-cmd.js +7 -74
  56. package/dist/commands/integrations-api.d.ts +10 -15
  57. package/dist/commands/integrations-api.js +22 -27
  58. package/dist/commands/integrations-connect.d.ts +13 -51
  59. package/dist/commands/integrations-connect.js +71 -86
  60. package/dist/commands/integrations-core.d.ts +6 -6
  61. package/dist/commands/integrations-core.js +11 -25
  62. package/dist/commands/integrations-import.d.ts +1 -1
  63. package/dist/commands/integrations-import.js +24 -43
  64. package/dist/commands/integrations-manage.js +13 -20
  65. package/dist/commands/integrations.d.ts +0 -8
  66. package/dist/commands/integrations.js +7 -94
  67. package/dist/commands/login.js +6 -49
  68. package/dist/commands/mcp-registration.d.ts +25 -32
  69. package/dist/commands/mcp-registration.js +23 -256
  70. package/dist/commands/mcp-status.js +0 -1
  71. package/dist/commands/meetings.js +34 -55
  72. package/dist/commands/members.js +1 -5
  73. package/dist/commands/mesh.d.ts +0 -11
  74. package/dist/commands/mesh.js +76 -1086
  75. package/dist/commands/onboard-identity-guard.d.ts +1 -1
  76. package/dist/commands/onboard.js +5 -24
  77. package/dist/commands/pack-install.js +1 -3
  78. package/dist/commands/packs.js +1 -11
  79. package/dist/commands/people.d.ts +0 -4
  80. package/dist/commands/people.js +3 -37
  81. package/dist/commands/publish.d.ts +1 -8
  82. package/dist/commands/publish.js +4 -17
  83. package/dist/commands/reindex.js +6 -56
  84. package/dist/commands/rescue.d.ts +0 -4
  85. package/dist/commands/rescue.js +17 -27
  86. package/dist/commands/run.js +4 -18
  87. package/dist/commands/safe-extract.d.ts +2 -11
  88. package/dist/commands/safe-extract.js +8 -36
  89. package/dist/commands/scaffold-fast.d.ts +41 -0
  90. package/dist/commands/scaffold-fast.js +57 -0
  91. package/dist/commands/secrets.d.ts +2 -20
  92. package/dist/commands/secrets.js +71 -175
  93. package/dist/commands/skill.d.ts +4 -35
  94. package/dist/commands/skill.js +18 -357
  95. package/dist/commands/sync-mode.d.ts +0 -11
  96. package/dist/commands/sync-mode.js +0 -30
  97. package/dist/commands/sync-narrow.js +5 -36
  98. package/dist/commands/team-sync.js +10 -71
  99. package/dist/commands/update.js +0 -6
  100. package/dist/commands/whoami.d.ts +0 -22
  101. package/dist/commands/whoami.js +4 -137
  102. package/dist/commands/workers.d.ts +14 -2
  103. package/dist/commands/workers.js +10 -7
  104. package/dist/fast-core.d.ts +7 -6
  105. package/dist/fast-core.js +24 -87
  106. package/dist/index.d.ts +4 -3
  107. package/dist/index.js +9 -59
  108. package/dist/lazy-commands.d.ts +44 -20
  109. package/dist/lazy-commands.js +58 -60
  110. package/dist/lib/company-skill-wrapper.d.ts +0 -1
  111. package/dist/lib/company-skill-wrapper.js +29 -121
  112. package/dist/lib/core-utils/codex-skill-bridge.d.ts +1 -2
  113. package/dist/lib/core-utils/qmd-reindex-after-sync.d.ts +1 -14
  114. package/dist/lib/core-utils/qmd-reindex-after-sync.js +17 -101
  115. package/dist/lib/core-utils/soft-timeout.js +1 -1
  116. package/dist/lib/core-utils/timeout-guard.d.ts +3 -3
  117. package/dist/lib/core-utils/timeout-guard.js +13 -28
  118. package/dist/lib/core-utils/token-usage-report.js +3 -17
  119. package/dist/lib/db/control-plane.js +0 -6
  120. package/dist/lib/db/local.d.ts +5 -0
  121. package/dist/lib/db/local.js +1 -1
  122. package/dist/lib/db/migrate.d.ts +12 -0
  123. package/dist/lib/db/migrate.js +5 -5
  124. package/dist/lib/db/remote-sql.d.ts +2 -2
  125. package/dist/lib/db/remote-sql.js +3 -3
  126. package/dist/lib/db/sql.d.ts +10 -0
  127. package/dist/lib/db/sql.js +8 -4
  128. package/dist/lib/doctor/__testing__/fake-hq-tree.d.ts +1 -1
  129. package/dist/lib/doctor/__testing__/fake-hq-tree.js +1 -1
  130. package/dist/lib/doctor/checks/claude-wiring.js +1 -70
  131. package/dist/lib/doctor/checks/codex-wiring.d.ts +4 -0
  132. package/dist/lib/doctor/checks/codex-wiring.js +35 -3
  133. package/dist/lib/doctor/checks/grok-wiring.js +34 -1
  134. package/dist/lib/doctor/checks/integrations.js +0 -11
  135. package/dist/lib/doctor/checks/runtime-health.d.ts +17 -4
  136. package/dist/lib/doctor/checks/runtime-health.js +7 -20
  137. package/dist/lib/doctor/checks/sync-health.d.ts +0 -21
  138. package/dist/lib/doctor/checks/sync-health.js +2 -72
  139. package/dist/lib/doctor/checks/work-context.js +6 -20
  140. package/dist/lib/doctor/compat.d.ts +16 -0
  141. package/dist/lib/doctor/compat.js +3 -4
  142. package/dist/lib/doctor/deep/effects.js +3 -1
  143. package/dist/lib/doctor/deep/executor.d.ts +10 -4
  144. package/dist/lib/doctor/deep/executor.js +1 -1
  145. package/dist/lib/doctor/deep/parity.d.ts +29 -2
  146. package/dist/lib/doctor/deep/parity.js +7 -7
  147. package/dist/lib/doctor/deep/sandbox.d.ts +25 -7
  148. package/dist/lib/doctor/deep/sandbox.js +7 -5
  149. package/dist/lib/doctor/fix/apply.d.ts +8 -79
  150. package/dist/lib/doctor/fix/apply.js +80 -292
  151. package/dist/lib/doctor/fix/remediation.d.ts +6 -14
  152. package/dist/lib/doctor/fix/remediation.js +9 -49
  153. package/dist/lib/doctor/fixtures/schema.js +3 -1
  154. package/dist/lib/doctor/json-output.d.ts +1 -17
  155. package/dist/lib/doctor/json-output.js +2 -7
  156. package/dist/lib/doctor/platform.d.ts +26 -0
  157. package/dist/lib/doctor/platform.js +5 -5
  158. package/dist/lib/doctor/registry.d.ts +0 -14
  159. package/dist/lib/doctor/registry.js +0 -71
  160. package/dist/lib/doctor/report.js +1 -1
  161. package/dist/lib/doctor/types.d.ts +0 -5
  162. package/dist/lib/doctor/types.js +0 -20
  163. package/dist/lib/flag-registry-worker.js +1 -12
  164. package/dist/lib/flag-registry.d.ts +6 -26
  165. package/dist/lib/flag-registry.js +16 -133
  166. package/dist/lib/index-render/companies.d.ts +1 -4
  167. package/dist/lib/index-render/companies.js +3 -66
  168. package/dist/lib/index-render/company-knowledge.js +17 -80
  169. package/dist/lib/index-render/index.d.ts +0 -1
  170. package/dist/lib/index-render/index.js +1 -2
  171. package/dist/lib/index-render/projects.js +5 -82
  172. package/dist/lib/index-render/shared.d.ts +1 -13
  173. package/dist/lib/index-render/shared.js +2 -41
  174. package/dist/lib/mesh/api.d.ts +10 -103
  175. package/dist/lib/mesh/api.js +64 -334
  176. package/dist/lib/mesh/client.d.ts +2 -3
  177. package/dist/lib/mesh/client.js +7 -26
  178. package/dist/lib/mesh/live/backfill-held.d.ts +16 -67
  179. package/dist/lib/mesh/live/backfill-held.js +61 -415
  180. package/dist/lib/mesh/live/backoff.d.ts +2 -2
  181. package/dist/lib/mesh/live/backoff.js +3 -16
  182. package/dist/lib/mesh/live/daemon/board-refresh.d.ts +1 -7
  183. package/dist/lib/mesh/live/daemon/board-refresh.js +30 -78
  184. package/dist/lib/mesh/live/daemon/credentials.d.ts +10 -64
  185. package/dist/lib/mesh/live/daemon/credentials.js +20 -270
  186. package/dist/lib/mesh/live/daemon/doctor.d.ts +0 -53
  187. package/dist/lib/mesh/live/daemon/doctor.js +6 -190
  188. package/dist/lib/mesh/live/daemon/index.d.ts +10 -13
  189. package/dist/lib/mesh/live/daemon/index.js +6 -7
  190. package/dist/lib/mesh/live/daemon/install.d.ts +1 -255
  191. package/dist/lib/mesh/live/daemon/install.js +13 -811
  192. package/dist/lib/mesh/live/daemon/paths.d.ts +0 -2
  193. package/dist/lib/mesh/live/daemon/paths.js +0 -2
  194. package/dist/lib/mesh/live/daemon/presence.d.ts +5 -24
  195. package/dist/lib/mesh/live/daemon/presence.js +10 -79
  196. package/dist/lib/mesh/live/daemon/run.d.ts +2 -48
  197. package/dist/lib/mesh/live/daemon/run.js +33 -485
  198. package/dist/lib/mesh/live/daemon/state.d.ts +2 -19
  199. package/dist/lib/mesh/live/daemon/state.js +2 -34
  200. package/dist/lib/mesh/live/daemon/transcript-watch.d.ts +9 -45
  201. package/dist/lib/mesh/live/daemon/transcript-watch.js +31 -227
  202. package/dist/lib/mesh/live/emit-client.d.ts +0 -8
  203. package/dist/lib/mesh/live/emit-client.js +8 -23
  204. package/dist/lib/mesh/live/emit-evidence.d.ts +0 -19
  205. package/dist/lib/mesh/live/emit-evidence.js +2 -20
  206. package/dist/lib/mesh/live/emit.d.ts +0 -9
  207. package/dist/lib/mesh/live/emit.js +2 -28
  208. package/dist/lib/mesh/live/enqueue.d.ts +0 -5
  209. package/dist/lib/mesh/live/enqueue.js +0 -19
  210. package/dist/lib/mesh/live/flush.d.ts +5 -17
  211. package/dist/lib/mesh/live/flush.js +38 -391
  212. package/dist/lib/mesh/live/format-spool-line.d.ts +2 -5
  213. package/dist/lib/mesh/live/format-spool-line.js +0 -10
  214. package/dist/lib/mesh/live/paths.d.ts +0 -2
  215. package/dist/lib/mesh/live/paths.js +0 -4
  216. package/dist/lib/mesh/live/session-event.schema.json +1 -24
  217. package/dist/lib/mesh/live/session-events-client.d.ts +0 -2
  218. package/dist/lib/mesh/live/session-events-client.js +0 -26
  219. package/dist/lib/mesh/live/spool.d.ts +0 -19
  220. package/dist/lib/mesh/live/spool.js +3 -269
  221. package/dist/lib/mesh/live/validate-session-event.d.ts +1 -1
  222. package/dist/lib/mesh/live/validate-session-event.js +1 -1
  223. package/dist/lib/plan-limit-nag.d.ts +6 -102
  224. package/dist/lib/plan-limit-nag.js +43 -348
  225. package/dist/lib/scan-packages/index.d.ts +0 -2
  226. package/dist/lib/scan-packages/index.js +6 -168
  227. package/dist/lib/search-index/background.d.ts +1 -8
  228. package/dist/lib/search-index/background.js +200 -55
  229. package/dist/lib/search-index/index.d.ts +0 -12
  230. package/dist/lib/search-index/index.js +7 -153
  231. package/dist/lib/work-context/company.d.ts +20 -22
  232. package/dist/lib/work-context/company.js +40 -124
  233. package/dist/lib/work-context/config.d.ts +11 -58
  234. package/dist/lib/work-context/config.js +83 -334
  235. package/dist/lib/work-context/contract.d.ts +0 -13
  236. package/dist/lib/work-context/contract.schema.json +1 -3
  237. package/dist/lib/work-context/index.d.ts +25 -0
  238. package/dist/lib/work-context/index.js +21 -0
  239. package/dist/lib/work-context/outbox.d.ts +5 -27
  240. package/dist/lib/work-context/outbox.js +6 -135
  241. package/dist/lib/work-context/reconcile.d.ts +0 -15
  242. package/dist/lib/work-context/reconcile.js +29 -405
  243. package/dist/lib/work-context/state.d.ts +10 -93
  244. package/dist/lib/work-context/state.js +29 -342
  245. package/dist/lib/workers-registry/index.js +8 -62
  246. package/dist/main.d.ts +0 -32
  247. package/dist/main.js +73 -273
  248. package/dist/node-network-compat.d.ts +30 -2
  249. package/dist/node-network-compat.js +51 -4
  250. package/dist/node-preflight.d.ts +1 -7
  251. package/dist/node-preflight.js +5 -5
  252. package/dist/register-all.d.ts +29 -4
  253. package/dist/register-all.js +233 -4
  254. package/dist/run/discover-schemas.d.ts +1 -2
  255. package/dist/run/env-graph-guard.d.ts +2 -2
  256. package/dist/run/env-graph-guard.js +2 -5
  257. package/dist/run/hq-plugin.d.ts +0 -4
  258. package/dist/run/hq-plugin.js +8 -36
  259. package/dist/sentry-before-send.js +0 -80
  260. package/dist/sentry.d.ts +2 -8
  261. package/dist/sentry.js +13 -117
  262. package/dist/startup-registration.d.ts +2 -26
  263. package/dist/startup-registration.js +15 -116
  264. package/dist/utils/cli-telemetry.d.ts +1 -74
  265. package/dist/utils/cli-telemetry.js +7 -434
  266. package/dist/utils/client-health.d.ts +4 -0
  267. package/dist/utils/client-health.js +2 -2
  268. package/dist/utils/cognito-session.d.ts +0 -71
  269. package/dist/utils/cognito-session.js +27 -481
  270. package/dist/utils/contribution-table.d.ts +1 -1
  271. package/dist/utils/environmental-error.d.ts +0 -18
  272. package/dist/utils/environmental-error.js +7 -240
  273. package/dist/utils/expected-cli-error.d.ts +0 -2
  274. package/dist/utils/expected-cli-error.js +0 -4
  275. package/dist/utils/feedback-diagnostics.d.ts +1 -2
  276. package/dist/utils/feedback-log-bundle.d.ts +26 -51
  277. package/dist/utils/feedback-log-bundle.js +31 -211
  278. package/dist/utils/feedback-logs.d.ts +47 -18
  279. package/dist/utils/feedback-logs.js +21 -50
  280. package/dist/utils/feedback-screenshots.d.ts +1 -0
  281. package/dist/utils/feedback-screenshots.js +1 -1
  282. package/dist/utils/hq-roots.d.ts +2 -25
  283. package/dist/utils/hq-roots.js +7 -67
  284. package/dist/utils/incomplete-install-error.d.ts +19 -87
  285. package/dist/utils/incomplete-install-error.js +68 -319
  286. package/dist/utils/install-tree-torn.d.ts +24 -260
  287. package/dist/utils/install-tree-torn.js +51 -998
  288. package/dist/utils/large-file-guard.d.ts +10 -0
  289. package/dist/utils/large-file-guard.js +1 -1
  290. package/dist/utils/local-files-overview.d.ts +8 -4
  291. package/dist/utils/local-files-overview.js +7 -48
  292. package/dist/utils/login-provider.d.ts +0 -7
  293. package/dist/utils/login-provider.js +0 -34
  294. package/dist/utils/pack-contributions.d.ts +14 -2
  295. package/dist/utils/pack-contributions.js +44 -7
  296. package/dist/utils/package-root-diagnostics.d.ts +1 -1
  297. package/dist/utils/people.d.ts +11 -7
  298. package/dist/utils/people.js +20 -5
  299. package/dist/utils/plan-gate-error.d.ts +10 -52
  300. package/dist/utils/plan-gate-error.js +41 -364
  301. package/dist/utils/qmd-model-download-error.d.ts +8 -0
  302. package/dist/utils/qmd-model-download-error.js +1 -1
  303. package/dist/utils/qmd-query-document-error.d.ts +6 -0
  304. package/dist/utils/qmd-query-document-error.js +1 -1
  305. package/dist/utils/redact-error-text.d.ts +2 -0
  306. package/dist/utils/redact-error-text.js +2 -3
  307. package/dist/utils/run-bundled-script.d.ts +0 -6
  308. package/dist/utils/run-bundled-script.js +4 -117
  309. package/dist/utils/sandbox-runner-client.d.ts +1 -2
  310. package/dist/utils/secrets-cache.d.ts +3 -7
  311. package/dist/utils/secrets-cache.js +14 -162
  312. package/dist/utils/self-update.d.ts +1 -34
  313. package/dist/utils/self-update.js +42 -660
  314. package/dist/utils/sentry-fingerprint.d.ts +1 -23
  315. package/dist/utils/sentry-fingerprint.js +31 -223
  316. package/dist/utils/team-upgrade.d.ts +1 -1
  317. package/dist/utils/team-upgrade.js +3 -4
  318. package/dist/utils/vault-api.d.ts +1 -21
  319. package/dist/utils/vault-api.js +84 -251
  320. package/dist/utils/version-check.d.ts +1 -11
  321. package/dist/utils/version-check.js +3 -32
  322. package/dist/utils/version-gate.d.ts +17 -101
  323. package/dist/utils/version-gate.js +70 -645
  324. package/dist/utils/windows-spawn.d.ts +0 -6
  325. package/dist/utils/windows-spawn.js +0 -37
  326. package/package.json +8 -20
  327. package/README.md +0 -113
  328. package/assets/bot-workers/setup/context/USER-GUIDE.md +0 -404
  329. package/assets/bot-workers/setup/context/quick-reference.md +0 -199
  330. package/assets/bot-workers/setup/skills/agents-and-team.md +0 -167
  331. package/assets/bot-workers/setup/skills/explain-hq.md +0 -35
  332. package/assets/bot-workers/setup/skills/first-company.md +0 -74
  333. package/assets/bot-workers/setup/skills/joining-a-team.md +0 -125
  334. package/assets/bot-workers/setup/skills/pricing.md +0 -92
  335. package/assets/bot-workers/setup/skills/standing-help.md +0 -81
  336. package/assets/bot-workers/setup/skills/your-business.md +0 -281
  337. package/assets/bot-workers/setup/worker.yaml +0 -791
  338. package/assets/lanes-hooks/hq-lanes-drain.json +0 -15
  339. package/assets/lanes-hooks/hq-lanes-drain.mjs +0 -275
  340. package/assets/lanes-hooks/hq-lanes-drain.sh +0 -21
  341. package/assets/lanes-reconcile/hq-lanes-reconcile.service +0 -11
  342. package/assets/lanes-reconcile/hq-lanes-reconcile.timer +0 -12
  343. package/assets/scaffold/.claude/hooks/validate-policy-frontmatter.sh +0 -485
  344. package/assets/scaffold/core/scripts/audit-log.sh +0 -384
  345. package/assets/scaffold/core/scripts/clean-worktree-reconcile-handoff.sh +0 -171
  346. package/assets/scaffold/core/scripts/eval-trigger.sh +0 -193
  347. package/assets/scaffold/core/scripts/git-pack-extension-check.sh +0 -164
  348. package/assets/scaffold/core/scripts/handoff-finalize.sh +0 -688
  349. package/assets/scaffold/core/scripts/handoff-open-steps.sh +0 -81
  350. package/assets/scaffold/core/scripts/handoff-post.sh +0 -252
  351. package/assets/scaffold/core/scripts/hq-delegate-bundle.sh +0 -307
  352. package/assets/scaffold/core/scripts/hq-delegate-grant.sh +0 -252
  353. package/assets/scaffold/core/scripts/hq-delegate-pickup.sh +0 -99
  354. package/assets/scaffold/core/scripts/hq-delegate-publish.sh +0 -91
  355. package/assets/scaffold/core/scripts/hq-delegate-repo.sh +0 -158
  356. package/assets/scaffold/core/scripts/hq-delegate-resolve.sh +0 -145
  357. package/assets/scaffold/core/scripts/hq-delegate-secrets.sh +0 -129
  358. package/assets/scaffold/core/scripts/hq-delegate-send.sh +0 -259
  359. package/assets/scaffold/core/scripts/hq-delegate-transfer.sh +0 -175
  360. package/assets/scaffold/core/scripts/hq-delegate-verify.sh +0 -238
  361. package/assets/scaffold/core/scripts/hq-dm-bind.sh +0 -585
  362. package/assets/scaffold/core/scripts/hq-job-notify.sh +0 -389
  363. package/assets/scaffold/core/scripts/hq-job-probe.sh +0 -835
  364. package/assets/scaffold/core/scripts/hq-job-remediate.sh +0 -359
  365. package/assets/scaffold/core/scripts/hq-job-run.sh +0 -1025
  366. package/assets/scaffold/core/scripts/hq-pin.sh +0 -118
  367. package/assets/scaffold/core/scripts/jobs-schedule-parse.sh +0 -310
  368. package/assets/scaffold/core/scripts/jobs-validate.sh +0 -451
  369. package/assets/scaffold/core/scripts/knowledge-prefs.sh +0 -55
  370. package/assets/scaffold/core/scripts/lib/portable.sh +0 -211
  371. package/assets/scaffold/core/scripts/lib/secret-patterns.sh +0 -58
  372. package/assets/scaffold/core/scripts/lib/work-mesh-live-hook.sh +0 -378
  373. package/assets/scaffold/core/scripts/lib/work-mesh-live-rebind.sh +0 -141
  374. package/assets/scaffold/core/scripts/migrate-policy-triggers.sh +0 -373
  375. package/assets/scaffold/core/scripts/ontology-audience-grant.sh +0 -81
  376. package/assets/scaffold/core/scripts/ontology-brief.mjs +0 -93
  377. package/assets/scaffold/core/scripts/ontology-candidate.sh +0 -100
  378. package/assets/scaffold/core/scripts/ontology-garden.mjs +0 -238
  379. package/assets/scaffold/core/scripts/ontology-source-worklist.sh +0 -79
  380. package/assets/scaffold/core/scripts/outpost-jobs-reconcile.sh +0 -834
  381. package/assets/scaffold/core/scripts/policy-age-report.sh +0 -156
  382. package/assets/scaffold/core/scripts/policy-retire.sh +0 -199
  383. package/assets/scaffold/core/scripts/qmd-reindex-bg.sh +0 -40
  384. package/assets/scaffold/core/scripts/read-policy-frontmatter.sh +0 -32
  385. package/assets/scaffold/core/scripts/refresh-vault-access.sh +0 -188
  386. package/assets/scaffold/core/scripts/register-project.sh +0 -262
  387. package/assets/scaffold/core/scripts/resolve-company.sh +0 -199
  388. package/assets/scaffold/core/scripts/resume-thread-lock.sh +0 -285
  389. package/assets/scaffold/core/scripts/source-yaml-validate.sh +0 -36
  390. package/assets/scaffold/core/scripts/verify-story-deliverables.sh +0 -148
  391. package/assets/scaffold/core/scripts/work-mesh-live-bind-trusted.sh +0 -152
  392. package/assets/scaffold/core/scripts/work-mesh-live-rebind.sh +0 -59
  393. package/assets/scaffold/core/scripts/worktree-gc.sh +0 -362
  394. package/contracts/preflight/v1/fixtures.json +0 -87
  395. package/contracts/preflight/v1/schema.json +0 -58
  396. package/dist/command-catalog.generated.d.ts +0 -10735
  397. package/dist/command-catalog.generated.js +0 -13836
  398. package/dist/command-registration-plan.d.ts +0 -474
  399. package/dist/command-registration-plan.js +0 -136
  400. package/dist/commands/agent-enroll.d.ts +0 -146
  401. package/dist/commands/agent-enroll.js +0 -401
  402. package/dist/commands/agent-inbox.d.ts +0 -9
  403. package/dist/commands/agent-inbox.js +0 -102
  404. package/dist/commands/agent-kit.d.ts +0 -87
  405. package/dist/commands/agent-kit.js +0 -480
  406. package/dist/commands/agent-mcp.d.ts +0 -24
  407. package/dist/commands/agent-mcp.js +0 -127
  408. package/dist/commands/agent-probe.d.ts +0 -77
  409. package/dist/commands/agent-probe.js +0 -335
  410. package/dist/commands/agent.d.ts +0 -13
  411. package/dist/commands/agent.js +0 -40
  412. package/dist/commands/billing-sponsor.d.ts +0 -83
  413. package/dist/commands/billing-sponsor.js +0 -344
  414. package/dist/commands/bot-companies.d.ts +0 -40
  415. package/dist/commands/bot-companies.js +0 -64
  416. package/dist/commands/bot-continuity.d.ts +0 -28
  417. package/dist/commands/bot-continuity.js +0 -68
  418. package/dist/commands/bot-jobs.d.ts +0 -127
  419. package/dist/commands/bot-jobs.js +0 -454
  420. package/dist/commands/bot.d.ts +0 -278
  421. package/dist/commands/bot.js +0 -1982
  422. package/dist/commands/cloud-retire.d.ts +0 -51
  423. package/dist/commands/cloud-retire.js +0 -154
  424. package/dist/commands/company-rename-flag.d.ts +0 -4
  425. package/dist/commands/company-rename-flag.js +0 -7
  426. package/dist/commands/company-rename.d.ts +0 -4
  427. package/dist/commands/company-rename.js +0 -90
  428. package/dist/commands/core-audit-log-native.d.ts +0 -9
  429. package/dist/commands/core-audit-log-native.js +0 -257
  430. package/dist/commands/core-checkpoint-gate-setting.d.ts +0 -59
  431. package/dist/commands/core-checkpoint-gate-setting.js +0 -163
  432. package/dist/commands/core-checkpoint-stop-gate-native.d.ts +0 -34
  433. package/dist/commands/core-checkpoint-stop-gate-native.js +0 -725
  434. package/dist/commands/core-command-catalog.d.ts +0 -34
  435. package/dist/commands/core-command-catalog.js +0 -62
  436. package/dist/commands/core-company-index-scope-flag.d.ts +0 -3
  437. package/dist/commands/core-company-index-scope-flag.js +0 -6
  438. package/dist/commands/core-delegate-w1b.d.ts +0 -10
  439. package/dist/commands/core-delegate-w1b.js +0 -1219
  440. package/dist/commands/core-delegate.d.ts +0 -46
  441. package/dist/commands/core-delegate.js +0 -1040
  442. package/dist/commands/core-dm-bind-native.d.ts +0 -32
  443. package/dist/commands/core-dm-bind-native.js +0 -668
  444. package/dist/commands/core-eval-trigger-native.d.ts +0 -4
  445. package/dist/commands/core-eval-trigger-native.js +0 -12
  446. package/dist/commands/core-git-pack-extension-check-native.d.ts +0 -22
  447. package/dist/commands/core-git-pack-extension-check-native.js +0 -190
  448. package/dist/commands/core-handoff-fast.d.ts +0 -18
  449. package/dist/commands/core-handoff-fast.js +0 -104
  450. package/dist/commands/core-handoff-open-steps.d.ts +0 -21
  451. package/dist/commands/core-handoff-open-steps.js +0 -264
  452. package/dist/commands/core-handoff.d.ts +0 -24
  453. package/dist/commands/core-handoff.js +0 -1144
  454. package/dist/commands/core-hq-session-native.d.ts +0 -39
  455. package/dist/commands/core-hq-session-native.js +0 -579
  456. package/dist/commands/core-job-native-utils.d.ts +0 -6
  457. package/dist/commands/core-job-native-utils.js +0 -80
  458. package/dist/commands/core-job-native.d.ts +0 -5
  459. package/dist/commands/core-job-native.js +0 -16
  460. package/dist/commands/core-job-notify-native.d.ts +0 -36
  461. package/dist/commands/core-job-notify-native.js +0 -359
  462. package/dist/commands/core-job-probe-native.d.ts +0 -45
  463. package/dist/commands/core-job-probe-native.js +0 -564
  464. package/dist/commands/core-job-remediate-native.d.ts +0 -26
  465. package/dist/commands/core-job-remediate-native.js +0 -374
  466. package/dist/commands/core-job-remote-launcher.d.ts +0 -7
  467. package/dist/commands/core-job-remote-launcher.js +0 -51
  468. package/dist/commands/core-job-run-native.d.ts +0 -47
  469. package/dist/commands/core-job-run-native.js +0 -1215
  470. package/dist/commands/core-jobs-native.d.ts +0 -25
  471. package/dist/commands/core-jobs-native.js +0 -1339
  472. package/dist/commands/core-knowledge-prefs.d.ts +0 -11
  473. package/dist/commands/core-knowledge-prefs.js +0 -137
  474. package/dist/commands/core-migrate-policy-triggers-native.d.ts +0 -21
  475. package/dist/commands/core-migrate-policy-triggers-native.js +0 -378
  476. package/dist/commands/core-native-handoff-flag.d.ts +0 -4
  477. package/dist/commands/core-native-handoff-flag.js +0 -7
  478. package/dist/commands/core-native-hook-helper-commands.d.ts +0 -4
  479. package/dist/commands/core-native-hook-helper-commands.js +0 -56
  480. package/dist/commands/core-native-hook-helpers-flag.d.ts +0 -4
  481. package/dist/commands/core-native-hook-helpers-flag.js +0 -7
  482. package/dist/commands/core-native-jobs-flag.d.ts +0 -4
  483. package/dist/commands/core-native-jobs-flag.js +0 -7
  484. package/dist/commands/core-native-policy-flag.d.ts +0 -9
  485. package/dist/commands/core-native-policy-flag.js +0 -12
  486. package/dist/commands/core-native-session-flag.d.ts +0 -4
  487. package/dist/commands/core-native-session-flag.js +0 -7
  488. package/dist/commands/core-native-utilities-flag.d.ts +0 -4
  489. package/dist/commands/core-native-utilities-flag.js +0 -7
  490. package/dist/commands/core-native-utilities.d.ts +0 -29
  491. package/dist/commands/core-native-utilities.js +0 -54
  492. package/dist/commands/core-native-worker-skills-flag.d.ts +0 -4
  493. package/dist/commands/core-native-worker-skills-flag.js +0 -7
  494. package/dist/commands/core-ontology-native.d.ts +0 -17
  495. package/dist/commands/core-ontology-native.js +0 -916
  496. package/dist/commands/core-ontology.d.ts +0 -66
  497. package/dist/commands/core-ontology.js +0 -430
  498. package/dist/commands/core-pin-native.d.ts +0 -14
  499. package/dist/commands/core-pin-native.js +0 -236
  500. package/dist/commands/core-policy-frontmatter.d.ts +0 -8
  501. package/dist/commands/core-policy-frontmatter.js +0 -52
  502. package/dist/commands/core-policy.d.ts +0 -14
  503. package/dist/commands/core-policy.js +0 -1018
  504. package/dist/commands/core-refresh-vault-access-native.d.ts +0 -20
  505. package/dist/commands/core-refresh-vault-access-native.js +0 -229
  506. package/dist/commands/core-register-project-native.d.ts +0 -30
  507. package/dist/commands/core-register-project-native.js +0 -347
  508. package/dist/commands/core-resolve-company-command.d.ts +0 -4
  509. package/dist/commands/core-resolve-company-command.js +0 -42
  510. package/dist/commands/core-resolve-company-native.d.ts +0 -28
  511. package/dist/commands/core-resolve-company-native.js +0 -408
  512. package/dist/commands/core-work-mesh-bind-trusted-native.d.ts +0 -32
  513. package/dist/commands/core-work-mesh-bind-trusted-native.js +0 -190
  514. package/dist/commands/core-work-mesh-live-rebind-native.d.ts +0 -18
  515. package/dist/commands/core-work-mesh-live-rebind-native.js +0 -262
  516. package/dist/commands/core-worker-lint-native.d.ts +0 -4
  517. package/dist/commands/core-worker-lint-native.js +0 -160
  518. package/dist/commands/core-worker-share-native.d.ts +0 -4
  519. package/dist/commands/core-worker-share-native.js +0 -260
  520. package/dist/commands/core-worker-skills-command.d.ts +0 -8
  521. package/dist/commands/core-worker-skills-command.js +0 -33
  522. package/dist/commands/core-worker-skills-runtime.d.ts +0 -33
  523. package/dist/commands/core-worker-skills-runtime.js +0 -86
  524. package/dist/commands/daemon.d.ts +0 -63
  525. package/dist/commands/daemon.js +0 -877
  526. package/dist/commands/deploy-comments.d.ts +0 -3
  527. package/dist/commands/deploy-comments.js +0 -162
  528. package/dist/commands/lanes-accounts.d.ts +0 -28
  529. package/dist/commands/lanes-accounts.js +0 -595
  530. package/dist/commands/lanes-autopilot.d.ts +0 -11
  531. package/dist/commands/lanes-autopilot.js +0 -336
  532. package/dist/commands/lanes-checks.d.ts +0 -51
  533. package/dist/commands/lanes-checks.js +0 -941
  534. package/dist/commands/lanes-hold.d.ts +0 -43
  535. package/dist/commands/lanes-hold.js +0 -655
  536. package/dist/commands/lanes-kpis.d.ts +0 -11
  537. package/dist/commands/lanes-kpis.js +0 -34
  538. package/dist/commands/lanes-message.d.ts +0 -9
  539. package/dist/commands/lanes-message.js +0 -937
  540. package/dist/commands/lanes-move.d.ts +0 -12
  541. package/dist/commands/lanes-move.js +0 -397
  542. package/dist/commands/lanes-questions.d.ts +0 -36
  543. package/dist/commands/lanes-questions.js +0 -1005
  544. package/dist/commands/lanes-report.d.ts +0 -11
  545. package/dist/commands/lanes-report.js +0 -333
  546. package/dist/commands/lanes-resume.d.ts +0 -6
  547. package/dist/commands/lanes-resume.js +0 -564
  548. package/dist/commands/lanes-review.d.ts +0 -10
  549. package/dist/commands/lanes-review.js +0 -56
  550. package/dist/commands/lanes-shared.d.ts +0 -448
  551. package/dist/commands/lanes-shared.js +0 -170
  552. package/dist/commands/lanes-stories.d.ts +0 -15
  553. package/dist/commands/lanes-stories.js +0 -347
  554. package/dist/commands/lanes-watch.d.ts +0 -7
  555. package/dist/commands/lanes-watch.js +0 -216
  556. package/dist/commands/lanes.d.ts +0 -149
  557. package/dist/commands/lanes.js +0 -8973
  558. package/dist/commands/monitor.d.ts +0 -58
  559. package/dist/commands/monitor.js +0 -980
  560. package/dist/commands/onboard-bot-membership.d.ts +0 -32
  561. package/dist/commands/onboard-bot-membership.js +0 -40
  562. package/dist/commands/onboard-create-identity.d.ts +0 -26
  563. package/dist/commands/onboard-create-identity.js +0 -23
  564. package/dist/commands/outpost-pruner.d.ts +0 -3
  565. package/dist/commands/outpost-pruner.js +0 -125
  566. package/dist/commands/personal-connector-settings-flag.d.ts +0 -4
  567. package/dist/commands/personal-connector-settings-flag.js +0 -7
  568. package/dist/commands/personal-targeted-push-flag.d.ts +0 -4
  569. package/dist/commands/personal-targeted-push-flag.js +0 -7
  570. package/dist/commands/personal-targeted-push-paths.d.ts +0 -3
  571. package/dist/commands/personal-targeted-push-paths.js +0 -67
  572. package/dist/commands/report.d.ts +0 -19
  573. package/dist/commands/report.js +0 -537
  574. package/dist/commands/run-feature-telemetry.d.ts +0 -3
  575. package/dist/commands/run-feature-telemetry.js +0 -6
  576. package/dist/commands/staff/reset-test-account.d.ts +0 -110
  577. package/dist/commands/staff/reset-test-account.js +0 -268
  578. package/dist/commands/staff/test-account.d.ts +0 -51
  579. package/dist/commands/staff/test-account.js +0 -196
  580. package/dist/commands/vault-retention-flag.d.ts +0 -3
  581. package/dist/commands/vault-retention-flag.js +0 -9
  582. package/dist/commands/vault-retention.d.ts +0 -11
  583. package/dist/commands/vault-retention.js +0 -69
  584. package/dist/commands/version.d.ts +0 -10
  585. package/dist/commands/version.js +0 -11
  586. package/dist/fast-scaffold.d.ts +0 -86
  587. package/dist/fast-scaffold.js +0 -364
  588. package/dist/lanes-drain-hook.d.ts +0 -14
  589. package/dist/lanes-drain-hook.js +0 -203
  590. package/dist/lib/agent-kit/adopt-identity.d.ts +0 -27
  591. package/dist/lib/agent-kit/adopt-identity.js +0 -60
  592. package/dist/lib/agent-kit/attachment-download.d.ts +0 -24
  593. package/dist/lib/agent-kit/attachment-download.js +0 -47
  594. package/dist/lib/agent-kit/creds.d.ts +0 -106
  595. package/dist/lib/agent-kit/creds.js +0 -163
  596. package/dist/lib/agent-kit/fallback.d.ts +0 -78
  597. package/dist/lib/agent-kit/fallback.js +0 -210
  598. package/dist/lib/agent-kit/inbox-state.d.ts +0 -83
  599. package/dist/lib/agent-kit/inbox-state.js +0 -159
  600. package/dist/lib/agent-kit/kit-config.d.ts +0 -56
  601. package/dist/lib/agent-kit/kit-config.js +0 -65
  602. package/dist/lib/agent-kit/log.d.ts +0 -16
  603. package/dist/lib/agent-kit/log.js +0 -46
  604. package/dist/lib/agent-kit/mcp/attachments.d.ts +0 -126
  605. package/dist/lib/agent-kit/mcp/attachments.js +0 -222
  606. package/dist/lib/agent-kit/mcp/jsonrpc.d.ts +0 -75
  607. package/dist/lib/agent-kit/mcp/jsonrpc.js +0 -164
  608. package/dist/lib/agent-kit/mcp/tools.d.ts +0 -64
  609. package/dist/lib/agent-kit/mcp/tools.js +0 -397
  610. package/dist/lib/agent-kit/paths.d.ts +0 -65
  611. package/dist/lib/agent-kit/paths.js +0 -118
  612. package/dist/lib/agent-kit/private-file.d.ts +0 -29
  613. package/dist/lib/agent-kit/private-file.js +0 -91
  614. package/dist/lib/agent-kit/run/heartbeat.d.ts +0 -72
  615. package/dist/lib/agent-kit/run/heartbeat.js +0 -128
  616. package/dist/lib/agent-kit/run/inbox.d.ts +0 -76
  617. package/dist/lib/agent-kit/run/inbox.js +0 -205
  618. package/dist/lib/agent-kit/run/supervisor.d.ts +0 -35
  619. package/dist/lib/agent-kit/run/supervisor.js +0 -85
  620. package/dist/lib/agent-kit/run/sync.d.ts +0 -33
  621. package/dist/lib/agent-kit/run/sync.js +0 -58
  622. package/dist/lib/agent-kit/services.d.ts +0 -31
  623. package/dist/lib/agent-kit/services.js +0 -55
  624. package/dist/lib/agent-kit/skills.d.ts +0 -18
  625. package/dist/lib/agent-kit/skills.js +0 -151
  626. package/dist/lib/agent-kit/wake.d.ts +0 -83
  627. package/dist/lib/agent-kit/wake.js +0 -243
  628. package/dist/lib/agents/model-catalog.d.ts +0 -62
  629. package/dist/lib/agents/model-catalog.js +0 -275
  630. package/dist/lib/auth-login-provider-state.d.ts +0 -8
  631. package/dist/lib/auth-login-provider-state.js +0 -63
  632. package/dist/lib/aws-sdk-node-warning-output.d.ts +0 -12
  633. package/dist/lib/aws-sdk-node-warning-output.js +0 -22
  634. package/dist/lib/billing/free-month.d.ts +0 -18
  635. package/dist/lib/billing/free-month.js +0 -31
  636. package/dist/lib/billing/plan-limit-refusals.d.ts +0 -69
  637. package/dist/lib/billing/plan-limit-refusals.js +0 -187
  638. package/dist/lib/billing/plan-limit-upgrade-url.d.ts +0 -11
  639. package/dist/lib/billing/plan-limit-upgrade-url.js +0 -66
  640. package/dist/lib/billing/plan-lock.d.ts +0 -143
  641. package/dist/lib/billing/plan-lock.js +0 -439
  642. package/dist/lib/bot/api.d.ts +0 -349
  643. package/dist/lib/bot/api.js +0 -316
  644. package/dist/lib/bot/attachments.d.ts +0 -45
  645. package/dist/lib/bot/attachments.js +0 -89
  646. package/dist/lib/bot/cli-update.d.ts +0 -138
  647. package/dist/lib/bot/cli-update.js +0 -278
  648. package/dist/lib/bot/company-bind.d.ts +0 -27
  649. package/dist/lib/bot/company-bind.js +0 -62
  650. package/dist/lib/bot/config.d.ts +0 -153
  651. package/dist/lib/bot/config.js +0 -233
  652. package/dist/lib/bot/continuity-download.d.ts +0 -28
  653. package/dist/lib/bot/continuity-download.js +0 -75
  654. package/dist/lib/bot/continuity-install.d.ts +0 -14
  655. package/dist/lib/bot/continuity-install.js +0 -101
  656. package/dist/lib/bot/continuity.d.ts +0 -67
  657. package/dist/lib/bot/continuity.js +0 -301
  658. package/dist/lib/bot/creds.d.ts +0 -24
  659. package/dist/lib/bot/creds.js +0 -51
  660. package/dist/lib/bot/daemon.d.ts +0 -173
  661. package/dist/lib/bot/daemon.js +0 -552
  662. package/dist/lib/bot/inbox-poll-backoff-flag.d.ts +0 -24
  663. package/dist/lib/bot/inbox-poll-backoff-flag.js +0 -135
  664. package/dist/lib/bot/inbox-state.d.ts +0 -18
  665. package/dist/lib/bot/inbox-state.js +0 -51
  666. package/dist/lib/bot/index.d.ts +0 -23
  667. package/dist/lib/bot/index.js +0 -23
  668. package/dist/lib/bot/inflight.d.ts +0 -119
  669. package/dist/lib/bot/inflight.js +0 -83
  670. package/dist/lib/bot/job-completions.d.ts +0 -89
  671. package/dist/lib/bot/job-completions.js +0 -132
  672. package/dist/lib/bot/job-run.d.ts +0 -109
  673. package/dist/lib/bot/job-run.js +0 -246
  674. package/dist/lib/bot/local-config.d.ts +0 -61
  675. package/dist/lib/bot/local-config.js +0 -145
  676. package/dist/lib/bot/local-jobs.d.ts +0 -89
  677. package/dist/lib/bot/local-jobs.js +0 -459
  678. package/dist/lib/bot/local-name.d.ts +0 -54
  679. package/dist/lib/bot/local-name.js +0 -114
  680. package/dist/lib/bot/log.d.ts +0 -13
  681. package/dist/lib/bot/log.js +0 -59
  682. package/dist/lib/bot/owner-context.d.ts +0 -79
  683. package/dist/lib/bot/owner-context.js +0 -175
  684. package/dist/lib/bot/paths.d.ts +0 -76
  685. package/dist/lib/bot/paths.js +0 -131
  686. package/dist/lib/bot/progress.d.ts +0 -132
  687. package/dist/lib/bot/progress.js +0 -289
  688. package/dist/lib/bot/promote.d.ts +0 -16
  689. package/dist/lib/bot/promote.js +0 -106
  690. package/dist/lib/bot/promotion-hold.d.ts +0 -24
  691. package/dist/lib/bot/promotion-hold.js +0 -103
  692. package/dist/lib/bot/promotion-receipt.d.ts +0 -9
  693. package/dist/lib/bot/promotion-receipt.js +0 -56
  694. package/dist/lib/bot/promotion-upload.d.ts +0 -16
  695. package/dist/lib/bot/promotion-upload.js +0 -80
  696. package/dist/lib/bot/prompt.d.ts +0 -136
  697. package/dist/lib/bot/prompt.js +0 -433
  698. package/dist/lib/bot/room-policy.d.ts +0 -63
  699. package/dist/lib/bot/room-policy.js +0 -91
  700. package/dist/lib/bot/run.d.ts +0 -217
  701. package/dist/lib/bot/run.js +0 -1869
  702. package/dist/lib/bot/runnable.d.ts +0 -51
  703. package/dist/lib/bot/runnable.js +0 -65
  704. package/dist/lib/bot/runtime/claude.d.ts +0 -50
  705. package/dist/lib/bot/runtime/claude.js +0 -170
  706. package/dist/lib/bot/runtime/codex.d.ts +0 -28
  707. package/dist/lib/bot/runtime/codex.js +0 -153
  708. package/dist/lib/bot/runtime/grok-acp.d.ts +0 -40
  709. package/dist/lib/bot/runtime/grok-acp.js +0 -265
  710. package/dist/lib/bot/runtime/grok.d.ts +0 -41
  711. package/dist/lib/bot/runtime/grok.js +0 -169
  712. package/dist/lib/bot/runtime/index.d.ts +0 -36
  713. package/dist/lib/bot/runtime/index.js +0 -417
  714. package/dist/lib/bot/runtime/messages-stream.d.ts +0 -56
  715. package/dist/lib/bot/runtime/messages-stream.js +0 -194
  716. package/dist/lib/bot/runtime/sanitize.d.ts +0 -18
  717. package/dist/lib/bot/runtime/sanitize.js +0 -28
  718. package/dist/lib/bot/runtime/types.d.ts +0 -159
  719. package/dist/lib/bot/runtime/types.js +0 -51
  720. package/dist/lib/bot/runtime/windows.d.ts +0 -10
  721. package/dist/lib/bot/runtime/windows.js +0 -53
  722. package/dist/lib/bot/runtime-sign-in.d.ts +0 -24
  723. package/dist/lib/bot/runtime-sign-in.js +0 -31
  724. package/dist/lib/bot/scaffold.d.ts +0 -38
  725. package/dist/lib/bot/scaffold.js +0 -94
  726. package/dist/lib/bot/self-heal.d.ts +0 -52
  727. package/dist/lib/bot/self-heal.js +0 -79
  728. package/dist/lib/bot/self-process.d.ts +0 -19
  729. package/dist/lib/bot/self-process.js +0 -35
  730. package/dist/lib/bot/session.d.ts +0 -19
  731. package/dist/lib/bot/session.js +0 -39
  732. package/dist/lib/bot/setup-explain.d.ts +0 -64
  733. package/dist/lib/bot/setup-explain.js +0 -141
  734. package/dist/lib/bot/split.d.ts +0 -32
  735. package/dist/lib/bot/split.js +0 -241
  736. package/dist/lib/bot/status.d.ts +0 -57
  737. package/dist/lib/bot/status.js +0 -66
  738. package/dist/lib/bot/worker-source.d.ts +0 -66
  739. package/dist/lib/bot/worker-source.js +0 -283
  740. package/dist/lib/checkpoint-ontology/aliases.d.ts +0 -17
  741. package/dist/lib/checkpoint-ontology/aliases.js +0 -44
  742. package/dist/lib/checkpoint-ontology/apply.d.ts +0 -110
  743. package/dist/lib/checkpoint-ontology/apply.js +0 -777
  744. package/dist/lib/checkpoint-ontology/company-brief.d.ts +0 -18
  745. package/dist/lib/checkpoint-ontology/company-brief.js +0 -337
  746. package/dist/lib/checkpoint-ontology/company.d.ts +0 -44
  747. package/dist/lib/checkpoint-ontology/company.js +0 -118
  748. package/dist/lib/checkpoint-ontology/drop-aliases.d.ts +0 -41
  749. package/dist/lib/checkpoint-ontology/drop-aliases.js +0 -76
  750. package/dist/lib/checkpoint-ontology/entity-file.d.ts +0 -109
  751. package/dist/lib/checkpoint-ontology/entity-file.js +0 -371
  752. package/dist/lib/checkpoint-ontology/identity.d.ts +0 -38
  753. package/dist/lib/checkpoint-ontology/identity.js +0 -95
  754. package/dist/lib/checkpoint-ontology/merge-copies.d.ts +0 -199
  755. package/dist/lib/checkpoint-ontology/merge-copies.js +0 -1086
  756. package/dist/lib/checkpoint-ontology/multi-writer.d.ts +0 -101
  757. package/dist/lib/checkpoint-ontology/multi-writer.js +0 -394
  758. package/dist/lib/checkpoint-ontology/plan.d.ts +0 -193
  759. package/dist/lib/checkpoint-ontology/plan.js +0 -504
  760. package/dist/lib/checkpoint-ontology/queued-touches.d.ts +0 -29
  761. package/dist/lib/checkpoint-ontology/queued-touches.js +0 -193
  762. package/dist/lib/checkpoint-ontology/sync-client.d.ts +0 -38
  763. package/dist/lib/checkpoint-ontology/sync-client.js +0 -84
  764. package/dist/lib/checkpoint-ontology/tree.d.ts +0 -55
  765. package/dist/lib/checkpoint-ontology/tree.js +0 -198
  766. package/dist/lib/company-errors-sdk-warning-flag.d.ts +0 -5
  767. package/dist/lib/company-errors-sdk-warning-flag.js +0 -8
  768. package/dist/lib/core-utils/hook-timeout-debug-context-flag.d.ts +0 -20
  769. package/dist/lib/core-utils/hook-timeout-debug-context-flag.js +0 -81
  770. package/dist/lib/core-utils/jq-json-serializer.d.ts +0 -5
  771. package/dist/lib/core-utils/jq-json-serializer.js +0 -10
  772. package/dist/lib/core-utils/secret-patterns.d.ts +0 -43
  773. package/dist/lib/core-utils/secret-patterns.js +0 -34
  774. package/dist/lib/core-utils/sentry-report.d.ts +0 -114
  775. package/dist/lib/core-utils/sentry-report.js +0 -1034
  776. package/dist/lib/core-utils/timeout-guard-native.d.ts +0 -7
  777. package/dist/lib/core-utils/timeout-guard-native.js +0 -40
  778. package/dist/lib/core-utils/worktree-resume.d.ts +0 -20
  779. package/dist/lib/core-utils/worktree-resume.js +0 -1198
  780. package/dist/lib/daemon/catalog.d.ts +0 -134
  781. package/dist/lib/daemon/catalog.js +0 -358
  782. package/dist/lib/daemon/config.d.ts +0 -35
  783. package/dist/lib/daemon/config.js +0 -108
  784. package/dist/lib/daemon/flag.d.ts +0 -25
  785. package/dist/lib/daemon/flag.js +0 -59
  786. package/dist/lib/daemon/handoff.d.ts +0 -56
  787. package/dist/lib/daemon/handoff.js +0 -161
  788. package/dist/lib/daemon/hq-cloud.d.ts +0 -79
  789. package/dist/lib/daemon/hq-cloud.js +0 -183
  790. package/dist/lib/daemon/install.d.ts +0 -85
  791. package/dist/lib/daemon/install.js +0 -320
  792. package/dist/lib/daemon/legacy-sync-env.d.ts +0 -10
  793. package/dist/lib/daemon/legacy-sync-env.js +0 -58
  794. package/dist/lib/daemon/legacy.d.ts +0 -45
  795. package/dist/lib/daemon/legacy.js +0 -133
  796. package/dist/lib/daemon/lock.d.ts +0 -47
  797. package/dist/lib/daemon/lock.js +0 -138
  798. package/dist/lib/daemon/machine-type.d.ts +0 -50
  799. package/dist/lib/daemon/machine-type.js +0 -159
  800. package/dist/lib/daemon/migrate.d.ts +0 -77
  801. package/dist/lib/daemon/migrate.js +0 -265
  802. package/dist/lib/daemon/paths.d.ts +0 -24
  803. package/dist/lib/daemon/paths.js +0 -43
  804. package/dist/lib/daemon/protocol-tail.d.ts +0 -33
  805. package/dist/lib/daemon/protocol-tail.js +0 -131
  806. package/dist/lib/daemon/remote-control.d.ts +0 -74
  807. package/dist/lib/daemon/remote-control.js +0 -153
  808. package/dist/lib/daemon/requests.d.ts +0 -28
  809. package/dist/lib/daemon/requests.js +0 -65
  810. package/dist/lib/daemon/run.d.ts +0 -79
  811. package/dist/lib/daemon/run.js +0 -755
  812. package/dist/lib/daemon/succession.d.ts +0 -118
  813. package/dist/lib/daemon/succession.js +0 -263
  814. package/dist/lib/daemon/supervisor.d.ts +0 -132
  815. package/dist/lib/daemon/supervisor.js +0 -836
  816. package/dist/lib/daemon/sync-runner.d.ts +0 -58
  817. package/dist/lib/daemon/sync-runner.js +0 -277
  818. package/dist/lib/daemon/tools.d.ts +0 -52
  819. package/dist/lib/daemon/tools.js +0 -95
  820. package/dist/lib/daemon/updater.d.ts +0 -57
  821. package/dist/lib/daemon/updater.js +0 -163
  822. package/dist/lib/deploy-api.d.ts +0 -5
  823. package/dist/lib/deploy-api.js +0 -21
  824. package/dist/lib/deploy-apps.d.ts +0 -13
  825. package/dist/lib/deploy-apps.js +0 -29
  826. package/dist/lib/doctor/__testing__/run-doctor.d.ts +0 -8
  827. package/dist/lib/doctor/__testing__/run-doctor.js +0 -52
  828. package/dist/lib/doctor/checks/bots.d.ts +0 -13
  829. package/dist/lib/doctor/checks/bots.js +0 -189
  830. package/dist/lib/doctor/checks/scaffold-cli-floor.d.ts +0 -6
  831. package/dist/lib/doctor/checks/scaffold-cli-floor.js +0 -73
  832. package/dist/lib/doctor/checks/sync-runtime.d.ts +0 -11
  833. package/dist/lib/doctor/checks/sync-runtime.js +0 -216
  834. package/dist/lib/doctor/client-health-flag-token.d.ts +0 -15
  835. package/dist/lib/doctor/client-health-flag-token.js +0 -66
  836. package/dist/lib/doctor/client-health-reason-codes-flag.d.ts +0 -27
  837. package/dist/lib/doctor/client-health-reason-codes-flag.js +0 -106
  838. package/dist/lib/doctor/fix/json-output.d.ts +0 -28
  839. package/dist/lib/doctor/fix/json-output.js +0 -33
  840. package/dist/lib/doctor/fix/refresh-sync-outcome.d.ts +0 -12
  841. package/dist/lib/doctor/fix/refresh-sync-outcome.js +0 -25
  842. package/dist/lib/doctor/shared.d.ts +0 -8
  843. package/dist/lib/doctor/shared.js +0 -38
  844. package/dist/lib/doctor/stray-gate-entries.d.ts +0 -35
  845. package/dist/lib/doctor/stray-gate-entries.js +0 -83
  846. package/dist/lib/first-sync-next-step.d.ts +0 -37
  847. package/dist/lib/first-sync-next-step.js +0 -189
  848. package/dist/lib/flag-registry-endpoint.d.ts +0 -5
  849. package/dist/lib/flag-registry-endpoint.js +0 -9
  850. package/dist/lib/flag-registry-worker-source.generated.d.ts +0 -2
  851. package/dist/lib/flag-registry-worker-source.generated.js +0 -3
  852. package/dist/lib/flag-snapshot-file.d.ts +0 -20
  853. package/dist/lib/flag-snapshot-file.js +0 -91
  854. package/dist/lib/heartbeat-identity.d.ts +0 -30
  855. package/dist/lib/heartbeat-identity.js +0 -76
  856. package/dist/lib/lanes/account-home.d.ts +0 -8
  857. package/dist/lib/lanes/account-home.js +0 -10
  858. package/dist/lib/lanes/accounts.d.ts +0 -117
  859. package/dist/lib/lanes/accounts.js +0 -366
  860. package/dist/lib/lanes/admission-host.d.ts +0 -22
  861. package/dist/lib/lanes/admission-host.js +0 -37
  862. package/dist/lib/lanes/admission.d.ts +0 -26
  863. package/dist/lib/lanes/admission.js +0 -210
  864. package/dist/lib/lanes/approval-gate.d.ts +0 -8
  865. package/dist/lib/lanes/approval-gate.js +0 -90
  866. package/dist/lib/lanes/autopilot-metrics.d.ts +0 -99
  867. package/dist/lib/lanes/autopilot-metrics.js +0 -301
  868. package/dist/lib/lanes/autopilot-registry.d.ts +0 -62
  869. package/dist/lib/lanes/autopilot-registry.js +0 -192
  870. package/dist/lib/lanes/autopilot.d.ts +0 -120
  871. package/dist/lib/lanes/autopilot.js +0 -1061
  872. package/dist/lib/lanes/blocker-freshness.d.ts +0 -31
  873. package/dist/lib/lanes/blocker-freshness.js +0 -168
  874. package/dist/lib/lanes/checked-company-path.d.ts +0 -3
  875. package/dist/lib/lanes/checked-company-path.js +0 -39
  876. package/dist/lib/lanes/claude-balance.d.ts +0 -97
  877. package/dist/lib/lanes/claude-balance.js +0 -319
  878. package/dist/lib/lanes/compaction.d.ts +0 -110
  879. package/dist/lib/lanes/compaction.js +0 -293
  880. package/dist/lib/lanes/config.d.ts +0 -94
  881. package/dist/lib/lanes/config.js +0 -606
  882. package/dist/lib/lanes/constants.d.ts +0 -3
  883. package/dist/lib/lanes/constants.js +0 -3
  884. package/dist/lib/lanes/delivery-core.d.ts +0 -15
  885. package/dist/lib/lanes/delivery-core.js +0 -21
  886. package/dist/lib/lanes/delivery.d.ts +0 -180
  887. package/dist/lib/lanes/delivery.js +0 -443
  888. package/dist/lib/lanes/disk-guard.d.ts +0 -66
  889. package/dist/lib/lanes/disk-guard.js +0 -172
  890. package/dist/lib/lanes/dropbox.d.ts +0 -129
  891. package/dist/lib/lanes/dropbox.js +0 -601
  892. package/dist/lib/lanes/effort.d.ts +0 -51
  893. package/dist/lib/lanes/effort.js +0 -113
  894. package/dist/lib/lanes/envelope-repair-dispatch.d.ts +0 -26
  895. package/dist/lib/lanes/envelope-repair-dispatch.js +0 -74
  896. package/dist/lib/lanes/errors.d.ts +0 -39
  897. package/dist/lib/lanes/errors.js +0 -72
  898. package/dist/lib/lanes/flag-keys.d.ts +0 -15
  899. package/dist/lib/lanes/flag-keys.js +0 -15
  900. package/dist/lib/lanes/grants.d.ts +0 -30
  901. package/dist/lib/lanes/grants.js +0 -171
  902. package/dist/lib/lanes/hire-grant-dispatch.d.ts +0 -29
  903. package/dist/lib/lanes/hire-grant-dispatch.js +0 -315
  904. package/dist/lib/lanes/hooks-install.d.ts +0 -82
  905. package/dist/lib/lanes/hooks-install.js +0 -479
  906. package/dist/lib/lanes/host-capacity.d.ts +0 -69
  907. package/dist/lib/lanes/host-capacity.js +0 -254
  908. package/dist/lib/lanes/hq-root.d.ts +0 -19
  909. package/dist/lib/lanes/hq-root.js +0 -28
  910. package/dist/lib/lanes/index.d.ts +0 -76
  911. package/dist/lib/lanes/index.js +0 -42
  912. package/dist/lib/lanes/keep-alive.d.ts +0 -68
  913. package/dist/lib/lanes/keep-alive.js +0 -343
  914. package/dist/lib/lanes/kr-freshness.d.ts +0 -76
  915. package/dist/lib/lanes/kr-freshness.js +0 -413
  916. package/dist/lib/lanes/lane-company.d.ts +0 -10
  917. package/dist/lib/lanes/lane-company.js +0 -41
  918. package/dist/lib/lanes/liveness.d.ts +0 -108
  919. package/dist/lib/lanes/liveness.js +0 -396
  920. package/dist/lib/lanes/machine-identity.d.ts +0 -34
  921. package/dist/lib/lanes/machine-identity.js +0 -92
  922. package/dist/lib/lanes/manager-status-gate.d.ts +0 -17
  923. package/dist/lib/lanes/manager-status-gate.js +0 -133
  924. package/dist/lib/lanes/merge-command.d.ts +0 -15
  925. package/dist/lib/lanes/merge-command.js +0 -629
  926. package/dist/lib/lanes/mesh-events.d.ts +0 -127
  927. package/dist/lib/lanes/mesh-events.js +0 -564
  928. package/dist/lib/lanes/message-replay.d.ts +0 -21
  929. package/dist/lib/lanes/message-replay.js +0 -122
  930. package/dist/lib/lanes/models.d.ts +0 -86
  931. package/dist/lib/lanes/models.js +0 -234
  932. package/dist/lib/lanes/monitor.d.ts +0 -48
  933. package/dist/lib/lanes/monitor.js +0 -428
  934. package/dist/lib/lanes/move-account.d.ts +0 -56
  935. package/dist/lib/lanes/move-account.js +0 -193
  936. package/dist/lib/lanes/orphans.d.ts +0 -25
  937. package/dist/lib/lanes/orphans.js +0 -102
  938. package/dist/lib/lanes/outpost-dispatch.d.ts +0 -147
  939. package/dist/lib/lanes/outpost-dispatch.js +0 -271
  940. package/dist/lib/lanes/outpost-hire-cache.d.ts +0 -22
  941. package/dist/lib/lanes/outpost-hire-cache.js +0 -153
  942. package/dist/lib/lanes/outpost-identity.d.ts +0 -33
  943. package/dist/lib/lanes/outpost-identity.js +0 -59
  944. package/dist/lib/lanes/outpost-profile-repin.d.ts +0 -17
  945. package/dist/lib/lanes/outpost-profile-repin.js +0 -84
  946. package/dist/lib/lanes/outpost-pruner-install.d.ts +0 -37
  947. package/dist/lib/lanes/outpost-pruner-install.js +0 -238
  948. package/dist/lib/lanes/outpost-registry-worker-approval.d.ts +0 -18
  949. package/dist/lib/lanes/outpost-registry-worker-approval.js +0 -109
  950. package/dist/lib/lanes/outpost-snapshot-memo.d.ts +0 -6
  951. package/dist/lib/lanes/outpost-snapshot-memo.js +0 -14
  952. package/dist/lib/lanes/outpost-worktree-pruner-flag.d.ts +0 -19
  953. package/dist/lib/lanes/outpost-worktree-pruner-flag.js +0 -86
  954. package/dist/lib/lanes/outpost-worktree-pruner.d.ts +0 -62
  955. package/dist/lib/lanes/outpost-worktree-pruner.js +0 -1201
  956. package/dist/lib/lanes/profile.d.ts +0 -69
  957. package/dist/lib/lanes/profile.js +0 -552
  958. package/dist/lib/lanes/provider-rejection.d.ts +0 -86
  959. package/dist/lib/lanes/provider-rejection.js +0 -286
  960. package/dist/lib/lanes/questions.d.ts +0 -90
  961. package/dist/lib/lanes/questions.js +0 -384
  962. package/dist/lib/lanes/quota.d.ts +0 -134
  963. package/dist/lib/lanes/quota.js +0 -471
  964. package/dist/lib/lanes/reconcile-install.d.ts +0 -90
  965. package/dist/lib/lanes/reconcile-install.js +0 -257
  966. package/dist/lib/lanes/reconcile.d.ts +0 -161
  967. package/dist/lib/lanes/reconcile.js +0 -3324
  968. package/dist/lib/lanes/registry-flag.d.ts +0 -35
  969. package/dist/lib/lanes/registry-flag.js +0 -164
  970. package/dist/lib/lanes/registry-persona.d.ts +0 -20
  971. package/dist/lib/lanes/registry-persona.js +0 -329
  972. package/dist/lib/lanes/registry.d.ts +0 -122
  973. package/dist/lib/lanes/registry.js +0 -570
  974. package/dist/lib/lanes/reviews.d.ts +0 -38
  975. package/dist/lib/lanes/reviews.js +0 -395
  976. package/dist/lib/lanes/runaway-tool-guard.d.ts +0 -38
  977. package/dist/lib/lanes/runaway-tool-guard.js +0 -284
  978. package/dist/lib/lanes/session-relink.d.ts +0 -25
  979. package/dist/lib/lanes/session-relink.js +0 -216
  980. package/dist/lib/lanes/spawn.d.ts +0 -355
  981. package/dist/lib/lanes/spawn.js +0 -2668
  982. package/dist/lib/lanes/ssm-command-context.d.ts +0 -12
  983. package/dist/lib/lanes/ssm-command-context.js +0 -52
  984. package/dist/lib/lanes/store.d.ts +0 -91
  985. package/dist/lib/lanes/store.js +0 -1822
  986. package/dist/lib/lanes/stories.d.ts +0 -23
  987. package/dist/lib/lanes/stories.js +0 -92
  988. package/dist/lib/lanes/story-ledger.d.ts +0 -80
  989. package/dist/lib/lanes/story-ledger.js +0 -815
  990. package/dist/lib/lanes/story-switch.d.ts +0 -21
  991. package/dist/lib/lanes/story-switch.js +0 -75
  992. package/dist/lib/lanes/text-scan.d.ts +0 -11
  993. package/dist/lib/lanes/text-scan.js +0 -103
  994. package/dist/lib/lanes/throttle.d.ts +0 -116
  995. package/dist/lib/lanes/throttle.js +0 -437
  996. package/dist/lib/lanes/timestamp.d.ts +0 -3
  997. package/dist/lib/lanes/timestamp.js +0 -26
  998. package/dist/lib/lanes/tracker-checks.d.ts +0 -77
  999. package/dist/lib/lanes/tracker-checks.js +0 -134
  1000. package/dist/lib/lanes/tracker-report-state.d.ts +0 -10
  1001. package/dist/lib/lanes/tracker-report-state.js +0 -124
  1002. package/dist/lib/lanes/tracker-report.d.ts +0 -203
  1003. package/dist/lib/lanes/tracker-report.js +0 -522
  1004. package/dist/lib/lanes/tracker-store.d.ts +0 -18
  1005. package/dist/lib/lanes/tracker-store.js +0 -106
  1006. package/dist/lib/lanes/types.d.ts +0 -1030
  1007. package/dist/lib/lanes/types.js +0 -418
  1008. package/dist/lib/lanes/wait.d.ts +0 -39
  1009. package/dist/lib/lanes/wait.js +0 -159
  1010. package/dist/lib/lanes/watch.d.ts +0 -39
  1011. package/dist/lib/lanes/watch.js +0 -249
  1012. package/dist/lib/lanes/watcher-main.d.ts +0 -11
  1013. package/dist/lib/lanes/watcher-main.js +0 -108
  1014. package/dist/lib/lanes/watcher.d.ts +0 -287
  1015. package/dist/lib/lanes/watcher.js +0 -1972
  1016. package/dist/lib/mesh/denial-codes.d.ts +0 -5
  1017. package/dist/lib/mesh/denial-codes.js +0 -14
  1018. package/dist/lib/mesh/live/daemon/config.d.ts +0 -36
  1019. package/dist/lib/mesh/live/daemon/config.js +0 -120
  1020. package/dist/lib/mesh/live/daemon/legacy-listen.d.ts +0 -43
  1021. package/dist/lib/mesh/live/daemon/legacy-listen.js +0 -89
  1022. package/dist/lib/mesh/live/daemon/live-cache.d.ts +0 -26
  1023. package/dist/lib/mesh/live/daemon/live-cache.js +0 -116
  1024. package/dist/lib/mesh/live/daemon/mqtt-events.d.ts +0 -7
  1025. package/dist/lib/mesh/live/daemon/mqtt-events.js +0 -2
  1026. package/dist/lib/mesh/live/daemon/mqtt-events.test-d.d.ts +0 -2
  1027. package/dist/lib/mesh/live/daemon/mqtt-events.test-d.js +0 -10
  1028. package/dist/lib/mesh/live/daemon/version-drift.d.ts +0 -5
  1029. package/dist/lib/mesh/live/daemon/version-drift.js +0 -47
  1030. package/dist/lib/mesh/live/daemon/work-subscribe.d.ts +0 -32
  1031. package/dist/lib/mesh/live/daemon/work-subscribe.js +0 -262
  1032. package/dist/lib/mesh/live/report-summary.d.ts +0 -45
  1033. package/dist/lib/mesh/live/report-summary.js +0 -234
  1034. package/dist/lib/mesh/live/session-seq.d.ts +0 -4
  1035. package/dist/lib/mesh/live/session-seq.js +0 -33
  1036. package/dist/lib/mesh/project-board.d.ts +0 -65
  1037. package/dist/lib/mesh/project-board.js +0 -181
  1038. package/dist/lib/mesh/story-status.d.ts +0 -22
  1039. package/dist/lib/mesh/story-status.js +0 -49
  1040. package/dist/lib/monitor.d.ts +0 -149
  1041. package/dist/lib/monitor.js +0 -519
  1042. package/dist/lib/node-binary.d.ts +0 -50
  1043. package/dist/lib/node-binary.js +0 -133
  1044. package/dist/lib/notify-recipient.d.ts +0 -7
  1045. package/dist/lib/notify-recipient.js +0 -11
  1046. package/dist/lib/onboarding/checkpoint.d.ts +0 -13
  1047. package/dist/lib/onboarding/checkpoint.js +0 -44
  1048. package/dist/lib/onboarding/cli/onboard.d.ts +0 -53
  1049. package/dist/lib/onboarding/cli/onboard.js +0 -135
  1050. package/dist/lib/onboarding/cli/prompts.d.ts +0 -28
  1051. package/dist/lib/onboarding/cli/prompts.js +0 -83
  1052. package/dist/lib/onboarding/errors.d.ts +0 -34
  1053. package/dist/lib/onboarding/errors.js +0 -59
  1054. package/dist/lib/onboarding/index.d.ts +0 -13
  1055. package/dist/lib/onboarding/index.js +0 -13
  1056. package/dist/lib/onboarding/orchestrator.d.ts +0 -47
  1057. package/dist/lib/onboarding/orchestrator.js +0 -569
  1058. package/dist/lib/onboarding/types.d.ts +0 -79
  1059. package/dist/lib/onboarding/types.js +0 -8
  1060. package/dist/lib/policy-validator.d.ts +0 -7
  1061. package/dist/lib/policy-validator.js +0 -187
  1062. package/dist/lib/process-flag-company-context.d.ts +0 -8
  1063. package/dist/lib/process-flag-company-context.js +0 -67
  1064. package/dist/lib/report-publish.d.ts +0 -175
  1065. package/dist/lib/report-publish.js +0 -421
  1066. package/dist/lib/report-run.d.ts +0 -62
  1067. package/dist/lib/report-run.js +0 -123
  1068. package/dist/lib/report-snapshot.d.ts +0 -12
  1069. package/dist/lib/report-snapshot.js +0 -135
  1070. package/dist/lib/report-templates.d.ts +0 -9
  1071. package/dist/lib/report-templates.js +0 -21
  1072. package/dist/lib/scaffold-cli-floor.d.ts +0 -8
  1073. package/dist/lib/scaffold-cli-floor.js +0 -50
  1074. package/dist/lib/search-index/collection-path-repair-flag.d.ts +0 -4
  1075. package/dist/lib/search-index/collection-path-repair-flag.js +0 -7
  1076. package/dist/lib/search-index/embed-lock.d.ts +0 -34
  1077. package/dist/lib/search-index/embed-lock.js +0 -295
  1078. package/dist/lib/search-index/load-gate.d.ts +0 -57
  1079. package/dist/lib/search-index/load-gate.js +0 -270
  1080. package/dist/lib/search-index/max-doc-bytes.d.ts +0 -219
  1081. package/dist/lib/search-index/max-doc-bytes.js +0 -463
  1082. package/dist/lib/search-index/qmd-exit-diagnostics.d.ts +0 -5
  1083. package/dist/lib/search-index/qmd-exit-diagnostics.js +0 -40
  1084. package/dist/lib/search-index/reindex-single-flight-flag.d.ts +0 -5
  1085. package/dist/lib/search-index/reindex-single-flight-flag.js +0 -8
  1086. package/dist/lib/service-manager/index.d.ts +0 -42
  1087. package/dist/lib/service-manager/index.js +0 -105
  1088. package/dist/lib/service-manager/launchd.d.ts +0 -81
  1089. package/dist/lib/service-manager/launchd.js +0 -212
  1090. package/dist/lib/service-manager/systemd.d.ts +0 -19
  1091. package/dist/lib/service-manager/systemd.js +0 -72
  1092. package/dist/lib/service-manager/types.d.ts +0 -34
  1093. package/dist/lib/service-manager/types.js +0 -26
  1094. package/dist/lib/test-utils/isolated-flag-company-context.d.ts +0 -3
  1095. package/dist/lib/test-utils/isolated-flag-company-context.js +0 -18
  1096. package/dist/lib/work-context/bind-best.d.ts +0 -66
  1097. package/dist/lib/work-context/bind-best.js +0 -344
  1098. package/dist/lib/work-context/bind-calling-session.d.ts +0 -26
  1099. package/dist/lib/work-context/bind-calling-session.js +0 -63
  1100. package/dist/lib/work-context/company-rebind.d.ts +0 -23
  1101. package/dist/lib/work-context/company-rebind.js +0 -59
  1102. package/dist/lib/work-context/default-company.d.ts +0 -43
  1103. package/dist/lib/work-context/default-company.js +0 -83
  1104. package/dist/lib/work-context/outbox-quarantine-status-flag.d.ts +0 -4
  1105. package/dist/lib/work-context/outbox-quarantine-status-flag.js +0 -7
  1106. package/dist/lib/work-context/prd-sync.d.ts +0 -56
  1107. package/dist/lib/work-context/prd-sync.js +0 -197
  1108. package/dist/lib/work-context/preflight-contract.d.ts +0 -28
  1109. package/dist/lib/work-context/preflight-contract.js +0 -85
  1110. package/dist/lib/work-context/prompt-rebind.d.ts +0 -25
  1111. package/dist/lib/work-context/prompt-rebind.js +0 -85
  1112. package/dist/lib/work-context/windows-acl.d.ts +0 -123
  1113. package/dist/lib/work-context/windows-acl.js +0 -425
  1114. package/dist/lib/workers-registry/read.d.ts +0 -15
  1115. package/dist/lib/workers-registry/read.js +0 -17
  1116. package/dist/native-fast-route.d.ts +0 -7
  1117. package/dist/native-fast-route.js +0 -45
  1118. package/dist/node-network-compat-core.d.ts +0 -12
  1119. package/dist/node-network-compat-core.js +0 -41
  1120. package/dist/node-network-compat-fast.d.ts +0 -7
  1121. package/dist/node-network-compat-fast.js +0 -23
  1122. package/dist/secrets-env-fast-path.d.ts +0 -5
  1123. package/dist/secrets-env-fast-path.js +0 -16
  1124. package/dist/secrets-env-fast-route.d.ts +0 -18
  1125. package/dist/secrets-env-fast-route.js +0 -54
  1126. package/dist/utils/checkpoint-stamp-write-error.d.ts +0 -28
  1127. package/dist/utils/checkpoint-stamp-write-error.js +0 -99
  1128. package/dist/utils/cli-network-lifecycle.d.ts +0 -4
  1129. package/dist/utils/cli-network-lifecycle.js +0 -11
  1130. package/dist/utils/cognito-refresh-sentry.d.ts +0 -3
  1131. package/dist/utils/cognito-refresh-sentry.js +0 -49
  1132. package/dist/utils/console-origin.d.ts +0 -9
  1133. package/dist/utils/console-origin.js +0 -28
  1134. package/dist/utils/core-eval-trigger.d.ts +0 -4
  1135. package/dist/utils/core-eval-trigger.js +0 -88
  1136. package/dist/utils/exclusive-lock.d.ts +0 -32
  1137. package/dist/utils/exclusive-lock.js +0 -75
  1138. package/dist/utils/fast-stream-errors.d.ts +0 -12
  1139. package/dist/utils/fast-stream-errors.js +0 -18
  1140. package/dist/utils/files-browse-acl.d.ts +0 -5
  1141. package/dist/utils/files-browse-acl.js +0 -11
  1142. package/dist/utils/hq-core-yaml.d.ts +0 -10
  1143. package/dist/utils/hq-core-yaml.js +0 -40
  1144. package/dist/utils/hq-root-resolver.d.ts +0 -13
  1145. package/dist/utils/hq-root-resolver.js +0 -103
  1146. package/dist/utils/redact-url.d.ts +0 -14
  1147. package/dist/utils/redact-url.js +0 -218
  1148. package/dist/utils/scaffold-fast-import-guard.d.ts +0 -2
  1149. package/dist/utils/scaffold-fast-import-guard.js +0 -40
  1150. package/dist/utils/scaffold-packlist-guard.d.ts +0 -7
  1151. package/dist/utils/scaffold-packlist-guard.js +0 -23
  1152. package/dist/utils/scaffold-sibling-references.d.ts +0 -22
  1153. package/dist/utils/scaffold-sibling-references.js +0 -156
  1154. package/dist/utils/secret-load-availability.d.ts +0 -8
  1155. package/dist/utils/secret-load-availability.js +0 -54
  1156. package/dist/utils/staged-install.d.ts +0 -34
  1157. package/dist/utils/staged-install.js +0 -346
  1158. package/dist/utils/staged-npm-install.d.ts +0 -16
  1159. package/dist/utils/staged-npm-install.js +0 -264
  1160. package/dist/utils/sync-log-sources.d.ts +0 -15
  1161. package/dist/utils/sync-log-sources.js +0 -36
  1162. package/dist/utils/table-width.d.ts +0 -7
  1163. package/dist/utils/table-width.js +0 -15
  1164. package/dist/utils/update-command-supervisor.cjs +0 -247
  1165. package/dist/utils/upload-author.d.ts +0 -15
  1166. package/dist/utils/upload-author.js +0 -39
  1167. package/dist/utils/version-report.d.ts +0 -27
  1168. package/dist/utils/version-report.js +0 -105
  1169. package/dist/version-request.d.ts +0 -14
  1170. package/dist/version-request.js +0 -36
  1171. package/scripts/mesh-daemon-if-stale.mjs +0 -20
  1172. package/templates/reports/blank.md +0 -3
  1173. package/templates/reports/daily-digest.md +0 -11
  1174. package/templates/runbooks/update-report.md +0 -21
@@ -1,1086 +0,0 @@
1
- /**
2
- * Merge numbered entity copies (`<slug> 2.md`) into their original file and
3
- * delete them (CO-54, owner decision CO-D-007 option 2).
4
- *
5
- * Gated by `checkpoint.ontology.merge-copies`. A copy is a file named
6
- * `<slug> <n>.md` next to `<slug>.md` of the same type, with the same `id`,
7
- * in one duplicate group. Other members of a group are never touched.
8
- *
9
- * Two steps, run separately so sync can push the merged original before its
10
- * copy goes away:
11
- *
12
- * - merge: the copy's fresh aliases, back-references and relationship lines
13
- * are added to the original, `signal_count` takes the higher value, and
14
- * entity files that link to the copy are re-pointed at the original. Every
15
- * rewritten file is recorded in the outbox before it is written, so sync
16
- * pushes it. Keys the checkpoint does not own keep the original's value.
17
- * - delete: a copy is deleted from the vault, by exact key, only when merging
18
- * it again would change nothing and no entity file or signal links to it.
19
- * The vault keeps every old version. The local file goes after the vault
20
- * delete succeeds, or when the vault no longer has the key.
21
- *
22
- * Copies of one original merge in path order, each into the result of the
23
- * previous one, and none of them counts as holding a name the others move.
24
- * A copy whose body has lines the merged original lacks (prose the merge does
25
- * not carry) is merged but never deleted. A copy linked from any file the
26
- * merge cannot rewrite (a copy, a knowledge file, a signal) is held.
27
- *
28
- * A signal whose `entity_refs` names a copy holds that copy: signals are
29
- * server-owned, so the ref cannot be re-pointed from here. With `rewriteRefs`
30
- * (flag `checkpoint.ontology.merge-rewrite-refs`) invoice and bill links and
31
- * knowledge links are re-pointed at the survivor and the survivor receives
32
- * the copy's `external_ids` and `web_domains`. A signal ref or a link from a
33
- * source still holds the pair (`server_owned_refs`): the sync client cannot
34
- * push those files. A link from another copy or an external id conflict also
35
- * holds a pair.
36
- *
37
- * With `pairKind: "variants"` (flag `checkpoint.ontology.merge-variants`) the
38
- * pairs are two-file duplicate groups whose canonical names differ only in
39
- * case, spacing or punctuation; the survivor is the spaced name, then the
40
- * higher `signal_count`, then path order. The copy's canonical name becomes
41
- * an alias of the survivor. Merge and delete work as for numbered copies.
42
- *
43
- * With `pairKind: "listed"` (flag `checkpoint.ontology.merge-listed-pairs`)
44
- * the pairs are exactly the `only` entries, reviewed by a person: no finder
45
- * runs, so the names may differ. Each entry must name two entities of one
46
- * type; a copy listed twice, or listed both as a copy and as an original, is
47
- * skipped as `listed_conflict`. Holds, merge and delete work as for numbered
48
- * copies.
49
- */
50
- import * as fs from "node:fs";
51
- import * as path from "node:path";
52
- import { isDeepStrictEqual } from "node:util";
53
- import { freshAliases, ownNames } from "./aliases.js";
54
- import { entitiesRoot, safeWriteFile } from "./company.js";
55
- import { appendBackRefs, OWNED_KEYS, parseEntityFile, patchEntityFile, setIdentityKeys } from "./entity-file.js";
56
- import { isWritableEntityType, normalizeEntityName } from "./identity.js";
57
- import { findDuplicateGroups, readBackRefs, recordOutbox } from "./multi-writer.js";
58
- import { buildEntityIndex, listSignalFiles, readSignal } from "./tree.js";
59
- export const MERGE_COPIES_FLAG = "checkpoint.ontology.merge-copies";
60
- /**
61
- * `merge-copies --variants`: merge two-file duplicate groups whose canonical
62
- * names differ only in spacing, case or punctuation (CO-65).
63
- */
64
- export const MERGE_VARIANTS_FLAG = "checkpoint.ontology.merge-variants";
65
- /** `merge-copies --listed`: merge exactly the reviewed `--only` pairs (CO-74). */
66
- export const MERGE_LISTED_PAIRS_FLAG = "checkpoint.ontology.merge-listed-pairs";
67
- /**
68
- * `merge-copies --rewrite-refs`: re-point signal `entity_refs`, invoice and
69
- * bill links, source and knowledge links from a copy to its survivor, and
70
- * carry the copy's `external_ids` and `web_domains` to the survivor.
71
- */
72
- export const MERGE_REWRITE_REFS_FLAG = "checkpoint.ontology.merge-rewrite-refs";
73
- /** `<slug> <n>.md`, the name a file manager gives a second copy. */
74
- const COPY_NAME = /^(.+) (\d+)\.md$/;
75
- /** A relationship list item with a link, as the gardener and checkpoint write them. */
76
- const LINK_ITEM = /^- .*\]\([^)\n]+\)\s*$/;
77
- const BACKREF_ITEM = /^- Referenced in \[/;
78
- const MD_LINK = /\]\(([^)\n]+)\)/g;
79
- /** Keys that differ between copies for reasons that say nothing about content. */
80
- const IGNORED_KEYS = new Set(["first_seen", "confidence"]);
81
- function sectionLines(body) {
82
- const match = /(^|\n)##\s+Relationships\s*\n([\s\S]*?)(?=\n##\s|$)/.exec(body);
83
- return match ? match[2].split(/\r?\n/).map((line) => line.trimEnd()) : [];
84
- }
85
- function splitBody(content) {
86
- const match = /^(---\r?\n[\s\S]*?\r?\n---\r?\n?)([\s\S]*)$/.exec(content);
87
- return match ? { frontmatter: match[1], body: match[2] } : null;
88
- }
89
- /**
90
- * A line of the copy whose every link points at the copy itself or at its
91
- * original. Moved to the original it would link the survivor to itself or to
92
- * the file about to be deleted, so it is neither moved nor unmerged content.
93
- */
94
- function isPairSelfLine(line, pair) {
95
- const targets = [...line.matchAll(MD_LINK)].map((match) => resolveLink(pair.copy, match[1]));
96
- return targets.length > 0 && targets.every((target) => target === pair.copy || target === pair.original);
97
- }
98
- /** Relationship lines of the copy that the original lacks (back-references and self links excluded). */
99
- function missingRelationshipLines(originalContent, copyContent, pair) {
100
- const original = splitBody(originalContent);
101
- const copy = splitBody(copyContent);
102
- if (!original || !copy)
103
- return [];
104
- const have = new Set(original.body.split(/\r?\n/).map((line) => line.trimEnd()));
105
- const out = [];
106
- for (const line of sectionLines(copy.body)) {
107
- if (!LINK_ITEM.test(line) || BACKREF_ITEM.test(line) || have.has(line) || isPairSelfLine(line, pair))
108
- continue;
109
- have.add(line);
110
- out.push(line);
111
- }
112
- return out;
113
- }
114
- /** Append lines to `## Relationships`, creating the section when it is missing. */
115
- function appendRelationshipLines(content, lines) {
116
- if (lines.length === 0)
117
- return content;
118
- const parts = splitBody(content);
119
- const body = parts.body;
120
- const section = /(^|\n)(##\s+Relationships\s*\n)([\s\S]*?)(?=\n##\s|\s*$)/.exec(body);
121
- let next;
122
- if (section) {
123
- const before = body.slice(0, section.index + section[1].length);
124
- const kept = section[3].replace(/\s+$/, "");
125
- const after = body.slice(section.index + section[0].length);
126
- next = `${before}${section[2]}${kept ? `${kept}\n${lines.join("\n")}` : lines.join("\n")}\n${after}`;
127
- }
128
- else {
129
- const trimmed = body.replace(/\s+$/, "");
130
- next = `${trimmed.length > 0 ? `${trimmed}\n\n` : "\n"}## Relationships\n\n${lines.join("\n")}\n`;
131
- }
132
- return `${parts.frontmatter}${next}`;
133
- }
134
- /** Remove one entity from the name indexes so its names stop counting as taken. */
135
- function unindex(index, rel) {
136
- index.byRel.delete(rel);
137
- for (const map of [index.canonical, index.alias, index.squashed]) {
138
- for (const [key, rels] of map) {
139
- if (!rels.delete(rel))
140
- continue;
141
- if (rels.size === 0)
142
- map.delete(key);
143
- }
144
- }
145
- }
146
- /** Copies in scope, and the ones skipped with a reason. Read-only. */
147
- export function findCopyPairs(index) {
148
- const groupOf = new Map();
149
- findDuplicateGroups(index).forEach((group, i) => {
150
- for (const rel of group.paths)
151
- groupOf.set(rel, i);
152
- });
153
- const pairs = [];
154
- const skipped = [];
155
- const candidates = [...index.byRel.values()]
156
- .filter((entity) => isWritableEntityType(entity.type) && COPY_NAME.test(path.posix.basename(entity.rel)))
157
- .sort((a, b) => a.rel.localeCompare(b.rel));
158
- for (const copy of candidates) {
159
- const base = COPY_NAME.exec(path.posix.basename(copy.rel))[1];
160
- const original = `${path.posix.dirname(copy.rel)}/${base}.md`;
161
- const target = index.byRel.get(original);
162
- if (!target) {
163
- skipped.push({ copy: copy.rel, reason: index.invalid.has(original) ? "original_invalid" : "no_original" });
164
- }
165
- else if (target.id !== copy.id || target.type !== copy.type) {
166
- skipped.push({ copy: copy.rel, reason: "identity_differs" });
167
- }
168
- else if (groupOf.get(copy.rel) === undefined || groupOf.get(copy.rel) !== groupOf.get(original)) {
169
- skipped.push({ copy: copy.rel, reason: "not_in_duplicate_group" });
170
- }
171
- else {
172
- pairs.push({ type: copy.type, copy: copy.rel, original });
173
- }
174
- }
175
- return { pairs, skipped };
176
- }
177
- /** The canonical name with case, spacing and punctuation removed. */
178
- function compactName(name, type) {
179
- return normalizeEntityName(name, type).replace(/[^\p{L}\p{N}]/gu, "");
180
- }
181
- /**
182
- * Two-file duplicate groups whose canonical names differ only in case, spacing
183
- * or punctuation. Numbered copies are left to `findCopyPairs`. Read-only.
184
- */
185
- export function findVariantPairs(index) {
186
- const pairs = [];
187
- const skipped = [];
188
- for (const group of findDuplicateGroups(index)) {
189
- const paths = [...group.paths].sort((a, b) => a.localeCompare(b));
190
- const numbered = paths.filter((rel) => COPY_NAME.test(path.posix.basename(rel)));
191
- if (numbered.length > 0) {
192
- for (const rel of numbered)
193
- skipped.push({ copy: rel, reason: "numbered_copy" });
194
- continue;
195
- }
196
- if (paths.length !== 2) {
197
- skipped.push({ copy: paths[0], reason: "group_size" });
198
- continue;
199
- }
200
- const left = index.byRel.get(paths[0]);
201
- const right = index.byRel.get(paths[1]);
202
- if (!left || !right) {
203
- skipped.push({ copy: paths[0], reason: "no_original" });
204
- continue;
205
- }
206
- if (left.type !== right.type) {
207
- skipped.push({ copy: paths[0], reason: "type_differs" });
208
- continue;
209
- }
210
- const leftName = compactName(left.canonical_name, left.type);
211
- const rightName = compactName(right.canonical_name, right.type);
212
- if (leftName === "" || rightName === "" || leftName !== rightName) {
213
- skipped.push({ copy: paths[0], reason: "names_differ" });
214
- continue;
215
- }
216
- const leftSpaced = left.canonical_name.includes(" ");
217
- const rightSpaced = right.canonical_name.includes(" ");
218
- let originalRel = paths[0];
219
- let copyRel = paths[1];
220
- if (leftSpaced !== rightSpaced) {
221
- originalRel = leftSpaced ? paths[0] : paths[1];
222
- copyRel = leftSpaced ? paths[1] : paths[0];
223
- }
224
- else if (left.signal_count !== right.signal_count) {
225
- originalRel = left.signal_count > right.signal_count ? paths[0] : paths[1];
226
- copyRel = originalRel === paths[0] ? paths[1] : paths[0];
227
- }
228
- pairs.push({ type: left.type, copy: copyRel, original: originalRel });
229
- }
230
- pairs.sort((a, b) => a.copy.localeCompare(b.copy));
231
- return { pairs, skipped };
232
- }
233
- /**
234
- * The reviewed pairs themselves, for `pairKind: "listed"`. An entry is kept
235
- * when both files are indexed entities of one writable type. Read-only.
236
- */
237
- export function findListedPairs(index, only) {
238
- const pairs = [];
239
- const skipped = [];
240
- const copyCount = new Map();
241
- for (const entry of only)
242
- copyCount.set(entry.copy, (copyCount.get(entry.copy) ?? 0) + 1);
243
- const originals = new Set(only.map((entry) => entry.original));
244
- for (const entry of only) {
245
- const copy = index.byRel.get(entry.copy);
246
- const original = index.byRel.get(entry.original);
247
- if (copyCount.get(entry.copy) > 1 || originals.has(entry.copy) || entry.copy === entry.original) {
248
- skipped.push({ copy: entry.copy, reason: "listed_conflict" });
249
- }
250
- else if (!copy || !original) {
251
- skipped.push({ copy: entry.copy, reason: index.invalid.has(entry.original) ? "original_invalid" : "no_original" });
252
- }
253
- else if (copy.type !== original.type || !isWritableEntityType(copy.type)) {
254
- skipped.push({ copy: entry.copy, reason: "type_differs" });
255
- }
256
- else {
257
- pairs.push({ type: copy.type, copy: entry.copy, original: entry.original });
258
- }
259
- }
260
- pairs.sort((a, b) => a.copy.localeCompare(b.copy));
261
- return { pairs, skipped };
262
- }
263
- /** Resolve a relative link in `fromRel` to a company-relative path, or null. */
264
- function resolveLink(fromRel, href) {
265
- if (/^[a-z][a-z0-9+.-]*:/i.test(href) || href.startsWith("#") || href.startsWith("/"))
266
- return null;
267
- let decoded;
268
- try {
269
- decoded = decodeURI(href.split("#")[0]);
270
- }
271
- catch {
272
- return null;
273
- }
274
- const resolved = path.posix.normalize(path.posix.join(path.posix.dirname(fromRel), decoded));
275
- return resolved.startsWith("..") ? null : resolved;
276
- }
277
- function listEntityFiles(company) {
278
- const root = entitiesRoot(company);
279
- const out = [];
280
- let types;
281
- try {
282
- types = fs.readdirSync(root, { withFileTypes: true });
283
- }
284
- catch (error) {
285
- if (error.code === "ENOENT")
286
- return out;
287
- throw error;
288
- }
289
- for (const type of types.filter((entry) => entry.isDirectory())) {
290
- for (const file of fs.readdirSync(path.join(root, type.name), { withFileTypes: true })) {
291
- if (file.isFile() && file.name.endsWith(".md"))
292
- out.push(`ontology/entities/${type.name}/${file.name}`);
293
- }
294
- }
295
- return out.sort();
296
- }
297
- /** Company-relative `.md` files outside the entity tree and the rendered brief. */
298
- function listOtherFiles(company) {
299
- const out = [];
300
- const walk = (rel) => {
301
- for (const entry of fs.readdirSync(path.join(company.dir, rel), { withFileTypes: true })) {
302
- if (entry.name.startsWith(".") || entry.name === "node_modules")
303
- continue;
304
- const child = rel ? `${rel}/${entry.name}` : entry.name;
305
- if (entry.isDirectory()) {
306
- if (child !== "ontology/entities")
307
- walk(child);
308
- }
309
- else if (entry.isFile() && entry.name.endsWith(".md") && child !== "company-brief.md") {
310
- out.push(child);
311
- }
312
- }
313
- };
314
- walk("");
315
- return out.sort();
316
- }
317
- /**
318
- * Files outside the entity tree that link to a copy, by markdown link,
319
- * `[[ontology/entities/...]]` annotation or a front-matter `path:` entry.
320
- * These files are not the merge's to rewrite, so a copy they name is held.
321
- */
322
- function scanOtherLinks(company, copies) {
323
- const out = new Map();
324
- if (copies.size === 0)
325
- return out;
326
- const names = [...new Set([...copies].map((copy) => path.posix.basename(copy, ".md")))];
327
- const add = (target, rel) => {
328
- if (!copies.has(target))
329
- return;
330
- let set = out.get(target);
331
- if (!set)
332
- out.set(target, (set = new Set()));
333
- set.add(rel);
334
- };
335
- for (const rel of listOtherFiles(company)) {
336
- const content = read(company, rel);
337
- if (!names.some((name) => content.includes(name) || content.includes(encodeURI(name))))
338
- continue;
339
- for (const match of content.matchAll(MD_LINK)) {
340
- const target = resolveLink(rel, match[1]);
341
- if (target)
342
- add(target, rel);
343
- }
344
- for (const match of content.matchAll(/\[\[(ontology\/entities\/[^\]|\n]+?)(?:\|[^\]\n]*)?\]\]/g)) {
345
- add(match[1].endsWith(".md") ? match[1] : `${match[1]}.md`, rel);
346
- }
347
- for (const match of content.matchAll(/^\s*(?:- )?path:\s*["']?(ontology\/entities\/[^"'\n]+?\.md)["']?\s*$/gm))
348
- add(match[1], rel);
349
- }
350
- return out;
351
- }
352
- function scanLinks(company) {
353
- const scan = { inbound: new Map(), broken: 0 };
354
- for (const rel of listEntityFiles(company)) {
355
- const content = fs.readFileSync(path.join(company.dir, rel), "utf8");
356
- for (const match of content.matchAll(MD_LINK)) {
357
- const target = resolveLink(rel, match[1]);
358
- if (!target)
359
- continue;
360
- if (!fs.existsSync(path.join(company.dir, target)))
361
- scan.broken += 1;
362
- if (target === rel)
363
- continue;
364
- let set = scan.inbound.get(target);
365
- if (!set)
366
- scan.inbound.set(target, (set = new Set()));
367
- set.add(rel);
368
- }
369
- }
370
- return scan;
371
- }
372
- /** Signal files whose `entity_refs` name a copy, keyed by the copy's path. */
373
- function scanSignalRefs(company, copies) {
374
- const out = new Map();
375
- if (copies.size === 0)
376
- return out;
377
- const byRef = new Map();
378
- for (const copy of copies) {
379
- const [, , type, file] = copy.split("/");
380
- byRef.set(`${type}/${file.slice(0, -3)}`, copy);
381
- }
382
- for (const rel of listSignalFiles(company.dir)) {
383
- for (const ref of readSignal(company.dir, rel)?.refs ?? []) {
384
- // Signals write refs both as `type/slug` and as `type/slug.md`.
385
- const copy = byRef.get(ref.endsWith(".md") ? ref.slice(0, -3) : ref);
386
- if (copy)
387
- out.set(copy, [...(out.get(copy) ?? []), rel]);
388
- }
389
- }
390
- return out;
391
- }
392
- /** Re-point every link in `content` that resolves to `copy` at `original`. */
393
- function relink(fromRel, content, copy, original) {
394
- return content.replace(MD_LINK, (whole, href) => {
395
- if (resolveLink(fromRel, href) !== copy)
396
- return whole;
397
- const hash = href.indexOf("#");
398
- const target = hash === -1 ? href : href.slice(0, hash);
399
- const fragment = hash === -1 ? "" : href.slice(hash);
400
- const cut = target.lastIndexOf("/");
401
- const name = path.posix.basename(original);
402
- const encoded = target.slice(cut + 1).includes("%20") ? encodeURI(name) : name;
403
- return `](${target.slice(0, cut + 1)}${encoded}${fragment})`;
404
- });
405
- }
406
- const FRONT_RE = /^---\r?\n([\s\S]*?)\r?\n---(\r?\n|$)/;
407
- const REL_REF = /^(\s*(?:- )?[A-Za-z_][A-Za-z0-9_]*:\s*)(["']?)(\.\.\/[^"'\n]+?\.md)\2\s*$/;
408
- const WIKI_LINK = /\[\[(ontology\/entities\/[^\]|\n]+?)(\|[^\]\n]*)?\]\]/g;
409
- const PATH_LINE = /^(\s*(?:- )?path:\s*)(["']?)(ontology\/entities\/[^"'\n]+?\.md)\2\s*$/;
410
- function frontLines(content) {
411
- const match = FRONT_RE.exec(content);
412
- if (!match)
413
- return null;
414
- return { start: match.index + match[0].indexOf(match[1]), lines: match[1].split(/\r?\n/) };
415
- }
416
- /** Put rewritten front-matter lines back; every byte outside them stays. */
417
- function withFrontLines(content, front, lines, newline) {
418
- const originalLength = front.lines.join(newline).length;
419
- return `${content.slice(0, front.start)}${lines.join(newline)}${content.slice(front.start + originalLength)}`;
420
- }
421
- function fileNewline(content) {
422
- return content.includes("\r\n") ? "\r\n" : "\n";
423
- }
424
- /** In the front matter only, re-point a `../…md` value that resolves to `copy`. */
425
- function rewriteRelRefs(fromRel, content, copy, original) {
426
- const front = frontLines(content);
427
- if (!front)
428
- return content;
429
- const name = path.posix.basename(original);
430
- let changed = false;
431
- const lines = front.lines.map((line) => {
432
- const match = REL_REF.exec(line);
433
- if (!match || resolveLink(fromRel, match[3]) !== copy)
434
- return line;
435
- const value = match[3];
436
- const cut = value.lastIndexOf("/");
437
- changed = true;
438
- return `${match[1]}${match[2]}${value.slice(0, cut + 1)}${name}${match[2]}`;
439
- });
440
- if (!changed)
441
- return content;
442
- return withFrontLines(content, front, lines, fileNewline(content));
443
- }
444
- /** Entity files whose front matter points at a copy through a relative ref. */
445
- function scanRelRefs(company, copies) {
446
- const out = new Map();
447
- if (copies.size === 0)
448
- return out;
449
- for (const rel of listEntityFiles(company)) {
450
- const front = frontLines(read(company, rel));
451
- if (!front)
452
- continue;
453
- for (const line of front.lines) {
454
- const match = REL_REF.exec(line);
455
- if (!match)
456
- continue;
457
- const target = resolveLink(rel, match[3]);
458
- if (!target || !copies.has(target))
459
- continue;
460
- let set = out.get(target);
461
- if (!set)
462
- out.set(target, (set = new Set()));
463
- set.add(rel);
464
- }
465
- }
466
- return out;
467
- }
468
- function listItemBounds(lines, pathIndex) {
469
- let start = pathIndex;
470
- let dashIndent = -1;
471
- while (start >= 0) {
472
- const dash = /^(\s*)- /.exec(lines[start]);
473
- if (dash) {
474
- dashIndent = dash[1].length;
475
- break;
476
- }
477
- start -= 1;
478
- }
479
- if (dashIndent < 0)
480
- return null;
481
- let keyIndent = -1;
482
- for (let i = start + 1; i < lines.length; i += 1) {
483
- if (lines[i].trim() === "")
484
- continue;
485
- const indent = /^(\s*)/.exec(lines[i])[1].length;
486
- if (indent <= dashIndent)
487
- break;
488
- keyIndent = indent;
489
- break;
490
- }
491
- if (keyIndent < 0)
492
- keyIndent = dashIndent + 1;
493
- let end = start + 1;
494
- while (end < lines.length) {
495
- const line = lines[end];
496
- const dash = /^(\s*)- /.exec(line);
497
- if (dash && dash[1].length === dashIndent)
498
- break;
499
- if (line.trim() !== "" && /^(\s*)/.exec(line)[1].length < keyIndent)
500
- break;
501
- end += 1;
502
- }
503
- return { start, end };
504
- }
505
- function rewriteWikiLinks(content, copy, original) {
506
- WIKI_LINK.lastIndex = 0;
507
- return content.replace(WIKI_LINK, (whole, target, label) => {
508
- const resolved = target.endsWith(".md") ? target : `${target}.md`;
509
- if (resolved !== copy)
510
- return whole;
511
- const next = target.endsWith(".md") ? original : original.slice(0, -3);
512
- return `[[${next}${label ?? ""}]]`;
513
- });
514
- }
515
- /**
516
- * Re-point markdown links, wiki-links, annotation `path:` lines and, when both
517
- * ids are known, the `id:` of that same list item.
518
- */
519
- function rewriteOtherFile(fromRel, content, copy, original, copyId, originalId) {
520
- const linked = rewriteWikiLinks(relink(fromRel, content, copy, original), copy, original);
521
- const newline = fileNewline(content);
522
- const lines = linked.split(/\r?\n/);
523
- for (let i = 0; i < lines.length; i += 1) {
524
- const pathMatch = PATH_LINE.exec(lines[i]);
525
- if (!pathMatch || pathMatch[3] !== copy)
526
- continue;
527
- lines[i] = `${pathMatch[1]}${pathMatch[2]}${original}${pathMatch[2]}`;
528
- if (typeof copyId !== "string" || typeof originalId !== "string")
529
- continue;
530
- const bounds = listItemBounds(lines, i);
531
- if (!bounds)
532
- continue;
533
- for (let j = bounds.start; j < bounds.end; j += 1) {
534
- const idMatch = /^(\s*id:\s*)(["']?)([^"'\n]*?)\2(\s*)$/.exec(lines[j]);
535
- if (idMatch && idMatch[3] === copyId)
536
- lines[j] = `${idMatch[1]}${idMatch[2]}${originalId}${idMatch[2]}${idMatch[4]}`;
537
- }
538
- }
539
- return lines.join(newline);
540
- }
541
- /** True when `content` still names `copy` by a link, wiki-link, path or front-matter ref. */
542
- function referencesCopy(fromRel, content, copy) {
543
- MD_LINK.lastIndex = 0;
544
- for (const match of content.matchAll(MD_LINK)) {
545
- if (resolveLink(fromRel, match[1]) === copy)
546
- return true;
547
- }
548
- WIKI_LINK.lastIndex = 0;
549
- for (const match of content.matchAll(WIKI_LINK)) {
550
- const target = match[1].endsWith(".md") ? match[1] : `${match[1]}.md`;
551
- if (target === copy)
552
- return true;
553
- }
554
- for (const line of content.split(/\r?\n/)) {
555
- const pathMatch = PATH_LINE.exec(line);
556
- if (pathMatch && pathMatch[3] === copy)
557
- return true;
558
- }
559
- const front = frontLines(content);
560
- if (front) {
561
- for (const line of front.lines) {
562
- const rel = REL_REF.exec(line);
563
- if (rel && resolveLink(fromRel, rel[3]) === copy)
564
- return true;
565
- }
566
- }
567
- return false;
568
- }
569
- /**
570
- * Signals and sources are written by the server pipeline and the sync
571
- * client never pushes them, so a rewrite made here would not reach the
572
- * vault (hq-cloud cloud-authoritative.ts).
573
- */
574
- function isServerOwnedRel(rel) {
575
- return rel.startsWith("signals/") || rel.startsWith("sources/");
576
- }
577
- const REF_KEYS = new Set(["system", "namespace", "objectType", "recordId"]);
578
- function refKey(ref) {
579
- return `${ref.system}:${ref.namespace}:${ref.recordId}`.toLowerCase();
580
- }
581
- /** An `external_refs` entry, or null when it has another shape (so it is never rewritten). */
582
- function readRef(raw) {
583
- if (raw === null || typeof raw !== "object" || Array.isArray(raw))
584
- return null;
585
- const record = raw;
586
- if (!Object.keys(record).every((key) => REF_KEYS.has(key)))
587
- return null;
588
- if (!Object.values(record).every((value) => typeof value === "string" && value.length > 0))
589
- return null;
590
- if (record.system === undefined || record.namespace === undefined || record.recordId === undefined)
591
- return null;
592
- return record;
593
- }
594
- /** `external_ids` and `web_domains` of a front matter, or "identity_shape". */
595
- function readIdentity(frontmatter) {
596
- let ids = {};
597
- if (frontmatter.external_ids !== undefined) {
598
- const raw = frontmatter.external_ids;
599
- if (raw === null || typeof raw !== "object" || Array.isArray(raw))
600
- return "identity_shape";
601
- ids = {};
602
- for (const [key, value] of Object.entries(raw)) {
603
- if (typeof value !== "string")
604
- return "identity_shape";
605
- ids[key] = value;
606
- }
607
- }
608
- if (frontmatter.web_domains !== undefined) {
609
- if (!Array.isArray(frontmatter.web_domains) || !frontmatter.web_domains.every((domain) => typeof domain === "string")) {
610
- return "identity_shape";
611
- }
612
- }
613
- const domains = frontmatter.web_domains === undefined ? [] : frontmatter.web_domains;
614
- const refs = [];
615
- if (frontmatter.external_refs !== undefined) {
616
- if (!Array.isArray(frontmatter.external_refs))
617
- return "identity_shape";
618
- for (const raw of frontmatter.external_refs) {
619
- const ref = readRef(raw);
620
- if (!ref)
621
- return "identity_shape";
622
- refs.push(ref);
623
- }
624
- }
625
- return { ids, domains, refs };
626
- }
627
- /**
628
- * The survivor's identity after taking in the copy's. Two different ids for
629
- * one provider are a conflict unless `resolution` names one of them as
630
- * primary; the other is then kept in `external_refs`.
631
- */
632
- function unionIdentity(original, copy, resolution) {
633
- const ids = { ...original.ids };
634
- const addIds = [];
635
- const conflicts = [];
636
- const refs = [...original.refs];
637
- const addRefs = [];
638
- const seenRefs = new Set(refs.map(refKey));
639
- const addRef = (ref) => {
640
- const key = refKey(ref);
641
- if (seenRefs.has(key))
642
- return;
643
- seenRefs.add(key);
644
- refs.push(ref);
645
- addRefs.push(key);
646
- };
647
- for (const ref of copy.refs)
648
- addRef(ref);
649
- for (const [key, value] of Object.entries(copy.ids)) {
650
- if (!(key in ids)) {
651
- ids[key] = value;
652
- addIds.push(key);
653
- }
654
- else if (ids[key] !== value) {
655
- const settle = Object.hasOwn(resolution ?? {}, key) ? resolution[key] : undefined;
656
- if (!settle || (settle.primary !== ids[key] && settle.primary !== value)) {
657
- conflicts.push(key);
658
- continue;
659
- }
660
- const secondary = settle.primary === ids[key] ? value : ids[key];
661
- ids[key] = settle.primary;
662
- addRef({
663
- system: key,
664
- namespace: settle.namespace,
665
- ...(settle.object_type !== undefined ? { objectType: settle.object_type } : {}),
666
- recordId: secondary,
667
- });
668
- }
669
- }
670
- const domains = [...original.domains];
671
- const addDomains = [];
672
- const seen = new Set(original.domains.map((domain) => domain.toLowerCase().trim()));
673
- for (const domain of copy.domains) {
674
- const key = domain.toLowerCase().trim();
675
- if (seen.has(key))
676
- continue;
677
- seen.add(key);
678
- domains.push(domain);
679
- addDomains.push(domain);
680
- }
681
- return { ids, domains, refs, addIds, addDomains, addRefs, conflicts };
682
- }
683
- function frontMatterId(content) {
684
- const id = parseEntityFile(content)?.frontmatter.id;
685
- return typeof id === "string" ? id : null;
686
- }
687
- /**
688
- * The original's content with the copy merged in. Never removes anything from
689
- * the original. `siblings` are all copies of the same original; none of them
690
- * counts as holding a name.
691
- */
692
- function mergeCopy(index, pair, siblings, originalContent, copyContent, now) {
693
- const original = parseEntityFile(originalContent);
694
- const copy = parseEntityFile(copyContent);
695
- if (!original || !copy)
696
- return "unparseable";
697
- const copyEntity = index.byRel.get(pair.copy);
698
- const originalEntity = index.byRel.get(pair.original);
699
- if (!copyEntity || !originalEntity)
700
- return "not_indexed";
701
- const scratch = {
702
- ...index,
703
- byRel: new Map(index.byRel),
704
- canonical: new Map([...index.canonical].map(([k, v]) => [k, new Set(v)])),
705
- alias: new Map([...index.alias].map(([k, v]) => [k, new Set(v)])),
706
- squashed: new Map([...index.squashed].map(([k, v]) => [k, new Set(v)])),
707
- };
708
- for (const sibling of siblings)
709
- unindex(scratch, sibling);
710
- const own = ownNames(scratch, pair.original, []);
711
- const names = [copyEntity.canonical_name, ...copyEntity.aliases];
712
- const aliases = freshAliases(scratch, pair.type, pair.original, own, names);
713
- const moved = new Set(aliases.map((alias) => normalizeEntityName(alias, pair.type)));
714
- const dropped = names.filter((name) => {
715
- const normalized = normalizeEntityName(name, pair.type);
716
- return normalized !== "" && !own.has(normalized) && !moved.has(normalized);
717
- });
718
- const withRefs = appendBackRefs(originalContent, readBackRefs(copy.body));
719
- const lines = missingRelationshipLines(withRefs.content, copyContent, pair);
720
- const body = appendRelationshipLines(withRefs.content, lines);
721
- const raise = copyEntity.signal_count > originalEntity.signal_count ? copyEntity.signal_count : undefined;
722
- const patched = patchEntityFile(body, {
723
- addAliases: aliases,
724
- signalCount: copyEntity.signal_count,
725
- lastUpdated: now.toISOString(),
726
- bodyChanged: withRefs.added > 0 || lines.length > 0,
727
- });
728
- if (!patched.ok)
729
- return patched.reason;
730
- const have = new Set(splitBody(patched.content)?.body.split(/\r?\n/).map((line) => line.trim()) ?? []);
731
- // The copy's `# Name` heading is not content: its name moves to an alias.
732
- // The `## Relationships` heading is not content either: its lines count one by one.
733
- const heading = `# ${copyEntity.canonical_name}`;
734
- const leftover = (splitBody(copyContent)?.body.split(/\r?\n/) ?? [])
735
- .map((line) => line.trim())
736
- .filter((line) => line !== "" &&
737
- line !== heading &&
738
- !/^##\s+Relationships$/.test(line) &&
739
- !have.has(line) &&
740
- !(LINK_ITEM.test(line) && !BACKREF_ITEM.test(line) && isPairSelfLine(line, pair))).length;
741
- const keys = [...new Set([...Object.keys(original.frontmatter), ...Object.keys(copy.frontmatter)])].sort();
742
- const kept = keys.filter((key) => !OWNED_KEYS.has(key) && !IGNORED_KEYS.has(key) && !isDeepStrictEqual(original.frontmatter[key], copy.frontmatter[key]));
743
- return {
744
- content: patched.content,
745
- changed: patched.changed,
746
- aliases,
747
- dropped,
748
- backrefs: withRefs.added,
749
- lines: lines.length,
750
- ...(raise !== undefined ? { raise } : {}),
751
- kept,
752
- leftover,
753
- };
754
- }
755
- function read(company, rel) {
756
- return fs.readFileSync(path.join(company.dir, rel), "utf8");
757
- }
758
- /** Links to copies in the company brief (rendered, so reported and not rewritten). */
759
- function briefLinks(company, copies) {
760
- let content;
761
- try {
762
- content = fs.readFileSync(path.join(company.dir, "company-brief.md"), "utf8");
763
- }
764
- catch {
765
- return [];
766
- }
767
- const out = new Set();
768
- for (const match of content.matchAll(MD_LINK)) {
769
- const target = resolveLink("company-brief.md", match[1]);
770
- if (target && copies.has(target))
771
- out.add(target);
772
- }
773
- return [...out].sort();
774
- }
775
- function plan(company, index, pairs, allPairs, now, rewriteRefs, resolutions = new Map()) {
776
- const links = scanLinks(company);
777
- const copies = new Set(allPairs.map((pair) => pair.copy));
778
- const other = scanOtherLinks(company, copies);
779
- if (rewriteRefs) {
780
- for (const [copy, rels] of scanRelRefs(company, copies)) {
781
- let set = other.get(copy);
782
- if (!set)
783
- other.set(copy, (set = new Set()));
784
- for (const rel of rels)
785
- set.add(rel);
786
- }
787
- }
788
- const signalRefs = scanSignalRefs(company, copies);
789
- const siblingsOf = new Map();
790
- for (const pair of allPairs)
791
- siblingsOf.set(pair.original, [...(siblingsOf.get(pair.original) ?? []), pair.copy]);
792
- const out = { plans: [], merges: new Map(), finals: new Map(), notReady: new Map() };
793
- for (const pair of pairs) {
794
- const inbound = [...new Set([...(links.inbound.get(pair.copy) ?? []), ...(other.get(pair.copy) ?? [])])].sort();
795
- const refs = (signalRefs.get(pair.copy) ?? []).sort();
796
- const siblings = siblingsOf.get(pair.original) ?? [pair.copy];
797
- const copyContent = read(company, pair.copy);
798
- const onDisk = read(company, pair.original);
799
- let merged = mergeCopy(index, pair, siblings, out.finals.get(pair.original) ?? onDisk, copyContent, now);
800
- let identity = null;
801
- const resolution = resolutions.get(pair.copy);
802
- if (rewriteRefs && typeof merged !== "string") {
803
- const mergedFront = parseEntityFile(merged.content)?.frontmatter;
804
- const copyFront = parseEntityFile(copyContent)?.frontmatter;
805
- const mergedIdentity = mergedFront ? readIdentity(mergedFront) : "identity_shape";
806
- const copyIdentity = copyFront ? readIdentity(copyFront) : "identity_shape";
807
- if (!mergedFront || !copyFront || mergedIdentity === "identity_shape" || copyIdentity === "identity_shape") {
808
- merged = "identity_shape";
809
- }
810
- else {
811
- const union = unionIdentity(mergedIdentity, copyIdentity, resolution);
812
- if (union.conflicts.length > 0) {
813
- identity = union;
814
- }
815
- else {
816
- const ids = setIdentityKeys(merged.content, {
817
- externalIds: union.ids,
818
- webDomains: union.domains,
819
- ...(union.addRefs.length > 0 ? { externalRefs: union.refs } : {}),
820
- lastUpdated: now.toISOString(),
821
- });
822
- if (!ids.ok) {
823
- merged = ids.reason;
824
- }
825
- else {
826
- merged = { ...merged, content: ids.content, changed: merged.changed || ids.changed };
827
- identity = union;
828
- }
829
- }
830
- }
831
- }
832
- const entry = {
833
- ...pair,
834
- add_aliases: typeof merged === "string" ? [] : merged.aliases,
835
- dropped_aliases: typeof merged === "string" ? [] : merged.dropped,
836
- add_backrefs: typeof merged === "string" ? 0 : merged.backrefs,
837
- add_relationship_lines: typeof merged === "string" ? 0 : merged.lines,
838
- ...(typeof merged !== "string" && merged.raise !== undefined ? { raise_signal_count: merged.raise } : {}),
839
- kept_original_keys: typeof merged === "string" ? [] : merged.kept,
840
- inbound_links: inbound,
841
- signal_refs: refs,
842
- unmerged_body_lines: typeof merged === "string" ? 0 : merged.leftover,
843
- };
844
- if (rewriteRefs && identity && identity.conflicts.length === 0 && typeof merged !== "string") {
845
- entry.add_external_ids = identity.addIds;
846
- entry.add_web_domains = identity.addDomains;
847
- entry.add_external_refs = identity.addRefs;
848
- }
849
- const unwritable = rewriteRefs
850
- ? inbound.filter((rel) => copies.has(rel))
851
- : inbound.filter((rel) => !rel.startsWith("ontology/entities/") || !isWritableEntityType(rel.split("/")[2]) || copies.has(rel));
852
- const serverOwned = rewriteRefs ? [...refs, ...inbound.filter(isServerOwnedRel)] : [];
853
- if (typeof merged === "string") {
854
- entry.held = "merge_invalid";
855
- entry.detail = merged;
856
- }
857
- else if (identity && identity.conflicts.length > 0) {
858
- entry.held = "external_id_conflict";
859
- entry.detail = identity.conflicts.join(", ");
860
- }
861
- else if (serverOwned.length > 0) {
862
- entry.held = "server_owned_refs";
863
- entry.detail = [...new Set(serverOwned)].sort().join(", ");
864
- }
865
- else if (!rewriteRefs && refs.length > 0) {
866
- entry.held = "signal_refs";
867
- }
868
- else if (unwritable.length > 0) {
869
- entry.held = "linked_from_unwritable";
870
- entry.detail = unwritable.join(", ");
871
- }
872
- else {
873
- out.merges.set(pair.copy, merged);
874
- out.finals.set(pair.original, merged.content);
875
- // Deletion is judged against the original as it is on disk now.
876
- const current = mergeCopy(index, pair, siblings, onDisk, copyContent, now);
877
- let reason;
878
- if (!rewriteRefs) {
879
- reason =
880
- typeof current === "string"
881
- ? "merge_invalid"
882
- : current.changed
883
- ? "not_merged"
884
- : current.leftover > 0
885
- ? "unmerged_body"
886
- : inbound.length > 0
887
- ? "linked"
888
- : null;
889
- }
890
- else if (typeof current === "string") {
891
- reason = "merge_invalid";
892
- }
893
- else {
894
- const diskFront = parseEntityFile(onDisk)?.frontmatter;
895
- const copyFront = parseEntityFile(copyContent)?.frontmatter;
896
- const diskIdentity = diskFront ? readIdentity(diskFront) : "identity_shape";
897
- const copyIdentity = copyFront ? readIdentity(copyFront) : "identity_shape";
898
- if (!diskFront || !copyFront || diskIdentity === "identity_shape" || copyIdentity === "identity_shape") {
899
- reason = "merge_invalid";
900
- }
901
- else {
902
- const union = unionIdentity(diskIdentity, copyIdentity, resolution);
903
- const patched = setIdentityKeys(current.content, {
904
- externalIds: union.ids,
905
- webDomains: union.domains,
906
- ...(union.addRefs.length > 0 ? { externalRefs: union.refs } : {}),
907
- lastUpdated: now.toISOString(),
908
- });
909
- reason = union.conflicts.length > 0
910
- ? "external_id_conflict"
911
- : !patched.ok
912
- ? "merge_invalid"
913
- : current.changed || patched.changed
914
- ? "not_merged"
915
- : current.leftover > 0
916
- ? "unmerged_body"
917
- : inbound.length > 0
918
- ? "linked"
919
- : refs.length > 0
920
- ? "signal_refs"
921
- : null;
922
- }
923
- }
924
- if (reason)
925
- out.notReady.set(pair.copy, reason);
926
- }
927
- out.plans.push(entry);
928
- }
929
- return out;
930
- }
931
- function writeEntity(hqRoot, company, rel, content, now) {
932
- // Outbox first: sync pushes an entity file only when its bytes match.
933
- const write = { rel, content };
934
- recordOutbox(hqRoot, company, [write], now);
935
- safeWriteFile(hqRoot, [entitiesRoot(company)], path.join(company.dir, rel), content);
936
- }
937
- /**
938
- * Plan, merge or delete numbered copies for one company. The dry run writes
939
- * nothing; merge writes entity files only; delete removes vault keys and
940
- * local copy files only.
941
- */
942
- export async function mergeCopies(options) {
943
- const { hqRoot, company, mode, now } = options;
944
- const index = buildEntityIndex(company.dir);
945
- const pairKind = options.pairKind ?? "numbered";
946
- if (pairKind === "listed" && !options.only)
947
- throw new Error("merge-copies: listed pairs need an only list");
948
- const found = pairKind === "listed"
949
- ? findListedPairs(index, options.only)
950
- : pairKind === "variants"
951
- ? findVariantPairs(index)
952
- : findCopyPairs(index);
953
- const listed = options.only
954
- ? found.pairs.filter((pair) => options.only.some((entry) => entry.copy === pair.copy && entry.original === pair.original))
955
- : found.pairs;
956
- const pairs = options.limit !== undefined ? listed.slice(0, Math.max(0, options.limit)) : listed;
957
- const before = scanLinks(company).broken;
958
- const rewriteRefs = options.rewriteRefs === true;
959
- const resolutions = new Map();
960
- for (const entry of options.only ?? []) {
961
- if (entry.resolve_external_ids)
962
- resolutions.set(entry.copy, entry.resolve_external_ids);
963
- }
964
- const { plans, merges, finals, notReady } = plan(company, index, pairs, found.pairs, now, rewriteRefs, resolutions);
965
- const report = {
966
- company: company.slug,
967
- mode,
968
- pair_kind: pairKind,
969
- duplicate_groups_before: findDuplicateGroups(index).length,
970
- duplicate_groups_after: 0,
971
- copies_found: found.pairs.length,
972
- plans,
973
- skipped: options.only
974
- ? [
975
- ...found.skipped,
976
- ...found.pairs
977
- .filter((pair) => !listed.includes(pair))
978
- .map((pair) => ({ copy: pair.copy, reason: "not_listed" })),
979
- ]
980
- : found.skipped,
981
- ...(options.only
982
- ? {
983
- only_unmatched: options.only.filter((entry) => !found.pairs.some((pair) => pair.copy === entry.copy && pair.original === entry.original)),
984
- }
985
- : {}),
986
- merged: [],
987
- relinked: [],
988
- ...(rewriteRefs ? { rewritten: [] } : {}),
989
- deleted: [],
990
- vault_already_absent: [],
991
- not_ready: [],
992
- errors: [],
993
- broken_links_before: before,
994
- broken_links_after: before,
995
- brief_links_to_copies: briefLinks(company, new Set(pairs.map((pair) => pair.copy))),
996
- };
997
- if (mode === "merge") {
998
- // Originals first, once each with every copy merged in; then links, read
999
- // back from disk so a relinked original keeps its merge.
1000
- for (const [original, content] of finals) {
1001
- try {
1002
- if (content === read(company, original))
1003
- continue;
1004
- writeEntity(hqRoot, company, original, content, now);
1005
- report.merged.push(original);
1006
- }
1007
- catch (error) {
1008
- report.errors.push({ path: original, error: error.name });
1009
- }
1010
- }
1011
- for (const entry of plans) {
1012
- if (!merges.has(entry.copy))
1013
- continue;
1014
- const copyId = rewriteRefs ? frontMatterId(read(company, entry.copy)) : null;
1015
- const originalId = rewriteRefs ? frontMatterId(read(company, entry.original)) : null;
1016
- for (const rel of entry.inbound_links) {
1017
- try {
1018
- const content = read(company, rel);
1019
- if (!rewriteRefs) {
1020
- const next = relink(rel, content, entry.copy, entry.original);
1021
- if (next === content)
1022
- continue;
1023
- writeEntity(hqRoot, company, rel, next, now);
1024
- if (!report.relinked.includes(rel))
1025
- report.relinked.push(rel);
1026
- continue;
1027
- }
1028
- const next = rel.startsWith("ontology/entities/")
1029
- ? rewriteRelRefs(rel, relink(rel, content, entry.copy, entry.original), entry.copy, entry.original)
1030
- : rewriteOtherFile(rel, content, entry.copy, entry.original, copyId, originalId);
1031
- if (next === content)
1032
- continue;
1033
- if (referencesCopy(rel, next, entry.copy)) {
1034
- report.errors.push({ path: rel, error: "link_not_rewritten" });
1035
- continue;
1036
- }
1037
- if (rel.startsWith("ontology/entities/")) {
1038
- writeEntity(hqRoot, company, rel, next, now);
1039
- if (!report.relinked.includes(rel))
1040
- report.relinked.push(rel);
1041
- }
1042
- else {
1043
- safeWriteFile(hqRoot, [company.dir], path.join(company.dir, rel), next);
1044
- if (!report.rewritten.includes(rel))
1045
- report.rewritten.push(rel);
1046
- }
1047
- }
1048
- catch (error) {
1049
- report.errors.push({ path: rel, error: error.name });
1050
- }
1051
- }
1052
- }
1053
- }
1054
- if (mode === "delete") {
1055
- if (!options.deleteVaultKey)
1056
- throw new Error("merge-copies: delete needs a vault client");
1057
- for (const entry of plans) {
1058
- const reason = entry.held ?? notReady.get(entry.copy) ?? null;
1059
- if (reason) {
1060
- report.not_ready.push({ copy: entry.copy, reason });
1061
- continue;
1062
- }
1063
- try {
1064
- const deleted = await options.deleteVaultKey(entry.copy);
1065
- // 0 means the exact key is already gone (a run that stopped before the
1066
- // local removal, or a copy that never synced): finish the local side.
1067
- if (deleted !== 1 && deleted !== 0) {
1068
- report.errors.push({ path: entry.copy, error: `vault_deleted_${deleted}` });
1069
- continue;
1070
- }
1071
- fs.rmSync(path.join(company.dir, entry.copy), { force: true });
1072
- report.deleted.push(entry.copy);
1073
- if (deleted === 0)
1074
- report.vault_already_absent.push(entry.copy);
1075
- }
1076
- catch (error) {
1077
- report.errors.push({ path: entry.copy, error: error.message || error.name });
1078
- }
1079
- }
1080
- }
1081
- const after = buildEntityIndex(company.dir);
1082
- report.duplicate_groups_after = findDuplicateGroups(after).length;
1083
- report.broken_links_after = scanLinks(company).broken;
1084
- return report;
1085
- }
1086
- //# sourceMappingURL=merge-copies.js.map