@starci/hfs 4.11.21 → 4.12.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 (1088) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +31 -31
  3. package/ci/cli.d.mts +15 -0
  4. package/ci/cli.mjs +71 -52
  5. package/ci/github.d.mts +43 -0
  6. package/ci/github.mjs +33 -28
  7. package/ci/local.d.mts +12 -0
  8. package/ci/local.mjs +145 -108
  9. package/ci/secret.d.mts +15 -0
  10. package/ci/secret.mjs +31 -21
  11. package/ci/vars.d.mts +17 -0
  12. package/ci/vars.mjs +47 -33
  13. package/ci/verify.d.mts +18 -0
  14. package/ci/verify.mjs +52 -40
  15. package/codemod/button-intent.d.mts +63 -0
  16. package/codemod/button-intent.mjs +338 -285
  17. package/coverage/cli.d.mts +28 -0
  18. package/coverage/cli.mjs +65 -51
  19. package/db/backup-receipt.d.mts +28 -0
  20. package/db/backup-receipt.mjs +78 -58
  21. package/db/drift.d.mts +86 -0
  22. package/db/drift.mjs +213 -180
  23. package/db/dump.d.mts +52 -0
  24. package/db/dump.mjs +63 -56
  25. package/db/entity-list.d.mts +4 -0
  26. package/db/entity-list.mjs +0 -2
  27. package/db/image.d.mts +8 -0
  28. package/db/image.mjs +1 -2
  29. package/db/migrate.d.mts +104 -0
  30. package/db/migrate.mjs +207 -167
  31. package/db/new.d.mts +11 -0
  32. package/db/new.mjs +25 -25
  33. package/db/post-cutover.d.mts +5 -0
  34. package/db/post-cutover.mjs +89 -82
  35. package/db/postgres.d.mts +71 -0
  36. package/db/postgres.mjs +62 -61
  37. package/emit/compiler.d.mts +3 -0
  38. package/emit/compiler.mjs +25 -27
  39. package/emit/contracts.d.mts +35 -0
  40. package/emit/contracts.mjs +46 -50
  41. package/emit/events.d.mts +9 -0
  42. package/emit/events.mjs +19 -20
  43. package/emit/form-bounds.d.mts +83 -0
  44. package/emit/form-bounds.mjs +133 -117
  45. package/emit/graphql-input-bounds.d.mts +63 -0
  46. package/emit/graphql-input-bounds.mjs +90 -79
  47. package/emit/input-bounds.d.mts +30 -0
  48. package/emit/input-bounds.mjs +29 -27
  49. package/emit/operation-schemas.d.mts +24 -0
  50. package/emit/operation-schemas.mjs +136 -116
  51. package/emit/operations-worker.d.mts +1 -0
  52. package/emit/operations-worker.mjs +9 -7
  53. package/emit/operations.d.mts +47 -0
  54. package/emit/operations.mjs +124 -133
  55. package/emit/schema-worker.d.mts +1 -0
  56. package/emit/schema-worker.mjs +57 -50
  57. package/emit/static-graph.d.mts +48 -0
  58. package/emit/static-graph.mjs +766 -640
  59. package/emit/type-schema.d.mts +29 -0
  60. package/emit/type-schema.mjs +153 -140
  61. package/lint/bound-sys.cjs +27 -33
  62. package/lint/chunk.d.mts +17 -0
  63. package/lint/chunk.mjs +41 -31
  64. package/lint/run.d.mts +120 -0
  65. package/lint/run.mjs +415 -322
  66. package/package.json +21 -4
  67. package/release/candidate-ci.d.mts +46 -0
  68. package/release/candidate-ci.mjs +76 -70
  69. package/release/gate.d.mts +120 -0
  70. package/release/gate.mjs +358 -330
  71. package/release/index.d.mts +68 -0
  72. package/release/index.mjs +95 -73
  73. package/release/lint-report.d.mts +14 -0
  74. package/release/lint-report.mjs +33 -32
  75. package/release/push.d.mts +32 -0
  76. package/release/push.mjs +92 -79
  77. package/release/records.d.mts +18 -0
  78. package/release/records.mjs +22 -21
  79. package/release/sonar-quality-gate.d.mts +18 -0
  80. package/release/sonar-quality-gate.mjs +60 -52
  81. package/release/urgent.d.mts +20 -0
  82. package/release/urgent.mjs +76 -74
  83. package/report/order.d.mts +1 -0
  84. package/report/sonar.d.mts +73 -0
  85. package/report/sonar.mjs +82 -89
  86. package/runtime/engine/admission.d.mts +209 -0
  87. package/runtime/engine/admission.mjs +225 -204
  88. package/runtime/engine/by-code-unit.d.mts +5 -0
  89. package/runtime/engine/by-code-unit.mjs +6 -6
  90. package/runtime/engine/config.d.mts +333 -0
  91. package/runtime/engine/config.mjs +486 -328
  92. package/runtime/engine/db/blob.d.mts +83 -0
  93. package/runtime/engine/db/blob.mjs +344 -268
  94. package/runtime/engine/db/event-compact.d.mts +21 -0
  95. package/runtime/engine/db/event-compact.mjs +34 -38
  96. package/runtime/engine/db/machine-connection.d.mts +68 -0
  97. package/runtime/engine/db/machine-connection.mjs +166 -119
  98. package/runtime/engine/db/machine-open.d.mts +26 -0
  99. package/runtime/engine/db/machine-open.mjs +59 -45
  100. package/runtime/engine/db/machine-schema.d.mts +34 -0
  101. package/runtime/engine/db/machine-schema.mjs +102 -83
  102. package/runtime/engine/db/machine.d.mts +1746 -0
  103. package/runtime/engine/db/machine.mjs +1040 -734
  104. package/runtime/engine/db/provider-reservations.d.mts +169 -0
  105. package/runtime/engine/db/provider-reservations.mjs +141 -119
  106. package/runtime/engine/db/provision-lock.d.mts +23 -0
  107. package/runtime/engine/db/provision-lock.mjs +14 -14
  108. package/runtime/engine/db/ref-value.d.mts +19 -0
  109. package/runtime/engine/db/ref-value.mjs +36 -35
  110. package/runtime/engine/db/sqlite-types.d.mts +28 -0
  111. package/runtime/engine/db/sqlite-types.mjs +4 -0
  112. package/runtime/engine/digest.d.mts +4 -0
  113. package/runtime/engine/digest.mjs +16 -7
  114. package/runtime/engine/invalid-config.d.mts +13 -0
  115. package/runtime/engine/invalid-config.mjs +17 -11
  116. package/runtime/engine/model-config.d.mts +91 -0
  117. package/runtime/engine/model-config.mjs +98 -76
  118. package/runtime/engine/orca-config.d.mts +26 -0
  119. package/runtime/engine/orca-config.mjs +22 -17
  120. package/runtime/engine/plain-object.d.mts +2 -0
  121. package/runtime/engine/refuse.d.mts +9 -0
  122. package/runtime/engine/refuse.mjs +3 -6
  123. package/runtime/engine/release-config.d.mts +19 -0
  124. package/runtime/engine/release-config.mjs +22 -18
  125. package/runtime/engine/removed-vocabulary.d.mts +12 -0
  126. package/runtime/engine/removed-vocabulary.mjs +21 -20
  127. package/runtime/engine/resources-config.d.mts +34 -0
  128. package/runtime/engine/resources-config.mjs +42 -35
  129. package/runtime/engine/runtime-root.d.mts +28 -0
  130. package/runtime/engine/runtime-root.mjs +11 -13
  131. package/runtime/engine/secrets.d.mts +41 -0
  132. package/runtime/engine/secrets.mjs +170 -102
  133. package/runtime/engine/sonar-config.d.mts +10 -0
  134. package/runtime/engine/sonar-config.mjs +16 -13
  135. package/runtime/engine/temp-root.d.mts +17 -0
  136. package/runtime/engine/temp-root.mjs +3 -9
  137. package/runtime/engine/yaml.d.mts +9 -0
  138. package/runtime/knowledge/hfs/canon-pins.yaml +10 -10
  139. package/runtime/knowledge/hfs/ci-standard.yaml +2 -2
  140. package/runtime/knowledge/hfs/rules.yaml +72 -6
  141. package/runtime/knowledge/hfs/slots.yaml +3 -3
  142. package/runtime/knowledge/sonar-gate.yaml +1 -1
  143. package/runtime/modules/kernel/failure-codes.yaml +43 -32
  144. package/runtime/modules/schemas/application-stacks.schema.yaml +3 -3
  145. package/runtime/packages/cli/src/catalog.generated.d.mts +13 -0
  146. package/runtime/packages/cli/src/catalog.generated.mjs +1853 -14824
  147. package/runtime/packages/cli/src/validate-args.d.mts +74 -0
  148. package/runtime/packages/cli/src/validate-args.mjs +183 -171
  149. package/runtime/packages/jest-preset/sonar-exclusions.cjs +5 -5
  150. package/runtime/scripts/api/fs/claim-file.d.mts +12 -0
  151. package/runtime/scripts/api/fs/claim-file.mjs +31 -17
  152. package/runtime/scripts/api/fs/ensure-temp-root.d.mts +4 -0
  153. package/runtime/scripts/api/fs/ensure-temp-root.mjs +15 -14
  154. package/runtime/scripts/api/fs/forbidden-root.d.mts +15 -0
  155. package/runtime/scripts/api/fs/forbidden-root.mjs +31 -23
  156. package/runtime/scripts/api/fs/is-link-like.d.mts +10 -0
  157. package/runtime/scripts/api/fs/is-link-like.mjs +25 -11
  158. package/runtime/scripts/api/fs/lib.d.mts +12 -0
  159. package/runtime/scripts/api/fs/lib.mjs +28 -8
  160. package/runtime/scripts/api/fs/make-temp-dir.d.mts +5 -0
  161. package/runtime/scripts/api/fs/make-temp-dir.mjs +3 -4
  162. package/runtime/scripts/api/fs/rename-over.d.mts +13 -0
  163. package/runtime/scripts/api/fs/rename-over.mjs +16 -10
  164. package/runtime/scripts/api/fs/safe-remove.d.mts +25 -0
  165. package/runtime/scripts/api/fs/safe-remove.mjs +129 -71
  166. package/runtime/scripts/api/git/add.d.mts +3 -0
  167. package/runtime/scripts/api/git/add.mjs +0 -1
  168. package/runtime/scripts/api/git/cat-file.d.mts +3 -0
  169. package/runtime/scripts/api/git/cat-file.mjs +0 -1
  170. package/runtime/scripts/api/git/check-ignore.d.mts +3 -0
  171. package/runtime/scripts/api/git/check-ignore.mjs +0 -1
  172. package/runtime/scripts/api/git/commit-tree.d.mts +3 -0
  173. package/runtime/scripts/api/git/commit-tree.mjs +0 -1
  174. package/runtime/scripts/api/git/config-get.d.mts +10 -0
  175. package/runtime/scripts/api/git/config-get.mjs +1 -2
  176. package/runtime/scripts/api/git/diff.d.mts +3 -0
  177. package/runtime/scripts/api/git/diff.mjs +0 -1
  178. package/runtime/scripts/api/git/init.d.mts +7 -0
  179. package/runtime/scripts/api/git/init.mjs +1 -2
  180. package/runtime/scripts/api/git/is-ancestor.d.mts +5 -0
  181. package/runtime/scripts/api/git/is-ancestor.mjs +0 -1
  182. package/runtime/scripts/api/git/lib.d.mts +67 -0
  183. package/runtime/scripts/api/git/lib.mjs +32 -32
  184. package/runtime/scripts/api/git/ls-files.d.mts +3 -0
  185. package/runtime/scripts/api/git/ls-files.mjs +0 -1
  186. package/runtime/scripts/api/git/ls-tree.d.mts +3 -0
  187. package/runtime/scripts/api/git/ls-tree.mjs +0 -1
  188. package/runtime/scripts/api/git/merge-base.d.mts +5 -0
  189. package/runtime/scripts/api/git/merge-base.mjs +2 -3
  190. package/runtime/scripts/api/git/remote.d.mts +3 -0
  191. package/runtime/scripts/api/git/remote.mjs +0 -1
  192. package/runtime/scripts/api/git/rev-parse-query.d.mts +3 -0
  193. package/runtime/scripts/api/git/rev-parse-query.mjs +0 -1
  194. package/runtime/scripts/api/git/show.d.mts +3 -0
  195. package/runtime/scripts/api/git/show.mjs +0 -1
  196. package/runtime/scripts/api/git/tag.d.mts +3 -0
  197. package/runtime/scripts/api/git/tag.mjs +0 -1
  198. package/runtime/scripts/api/git/update-ref.d.mts +7 -0
  199. package/runtime/scripts/api/git/update-ref.mjs +1 -2
  200. package/runtime/scripts/api/git/write-tree.d.mts +3 -0
  201. package/runtime/scripts/api/git/write-tree.mjs +0 -1
  202. package/runtime/scripts/api/node/lib.d.mts +7 -0
  203. package/runtime/scripts/api/node/lib.mjs +17 -7
  204. package/runtime/scripts/api/node/run-node.d.mts +3 -0
  205. package/runtime/scripts/api/node/run-node.mjs +0 -3
  206. package/runtime/scripts/api/process/resolve-real-tool.d.mts +12 -0
  207. package/runtime/scripts/api/process/resolve-real-tool.mjs +46 -38
  208. package/runtime/scripts/api/process/run-program.d.mts +3 -0
  209. package/runtime/scripts/api/process/run-program.mjs +5 -2
  210. package/runtime/scripts/api/sops/decrypt.d.mts +9 -0
  211. package/runtime/scripts/api/sops/decrypt.mjs +1 -2
  212. package/runtime/scripts/api/sops/lib.d.mts +149 -0
  213. package/runtime/scripts/api/sops/lib.mjs +417 -318
  214. package/runtime/scripts/api/sops/resolve-sops.d.mts +3 -0
  215. package/runtime/scripts/api/sops/resolve-sops.mjs +1 -2
  216. package/runtime/scripts/api/sops/seal.d.mts +19 -0
  217. package/runtime/scripts/api/sops/seal.mjs +14 -10
  218. package/runtime/scripts/api/sops/selected-age-recipient.d.mts +3 -0
  219. package/runtime/scripts/api/sops/selected-age-recipient.mjs +1 -2
  220. package/runtime/scripts/api/sops/update-keys.d.mts +16 -0
  221. package/runtime/scripts/api/sops/update-keys.mjs +11 -8
  222. package/runtime/scripts/cli/gen-catalog.d.mts +42 -0
  223. package/runtime/scripts/cli/gen-catalog.mjs +72 -0
  224. package/runtime/scripts/gates/runtime-host.d.mts +23 -0
  225. package/runtime/scripts/gates/runtime-host.mjs +48 -41
  226. package/runtime/scripts/gates/sonar-gate.d.mts +219 -0
  227. package/runtime/scripts/gates/sonar-gate.mjs +166 -153
  228. package/runtime/scripts/gates/starcistacks-ci.d.mts +35 -0
  229. package/runtime/scripts/gates/starcistacks-ci.mjs +47 -39
  230. package/runtime/scripts/gates/starcistacks-form.d.mts +80 -0
  231. package/runtime/scripts/gates/starcistacks-form.mjs +16 -14
  232. package/runtime/scripts/gates/starcistacks-runtime.d.mts +1 -0
  233. package/runtime/scripts/gates/starcistacks-value-file.d.mts +2 -0
  234. package/runtime/scripts/gates/starcistacks-value-file.mjs +14 -11
  235. package/runtime/scripts/gates/starcistacks.d.mts +141 -0
  236. package/runtime/scripts/gates/starcistacks.mjs +470 -355
  237. package/runtime/scripts/guards/git-pathspec.d.mts +48 -0
  238. package/runtime/scripts/guards/git-pathspec.mjs +215 -130
  239. package/runtime/scripts/guards/git-policy.d.mts +30 -0
  240. package/runtime/scripts/guards/git-policy.mjs +278 -235
  241. package/runtime/scripts/guards/hook-io.d.mts +22 -0
  242. package/runtime/scripts/guards/hook-io.mjs +77 -63
  243. package/runtime/scripts/guards/push-scan.d.mts +31 -0
  244. package/runtime/scripts/guards/push-scan.mjs +93 -80
  245. package/runtime/scripts/guards/release-push-gate.d.mts +22 -0
  246. package/runtime/scripts/guards/release-push-gate.mjs +40 -38
  247. package/runtime/scripts/hfs/allows.d.mts +24 -0
  248. package/runtime/scripts/hfs/allows.mjs +37 -38
  249. package/runtime/scripts/hfs/app-wiring.d.mts +72 -0
  250. package/runtime/scripts/hfs/app-wiring.mjs +197 -167
  251. package/runtime/scripts/hfs/architecture/ast-walks.d.mts +89 -0
  252. package/runtime/scripts/hfs/architecture/ast-walks.mjs +180 -163
  253. package/runtime/scripts/hfs/architecture/automatic-gates.d.mts +21 -0
  254. package/runtime/scripts/hfs/architecture/automatic-gates.mjs +80 -73
  255. package/runtime/scripts/hfs/architecture/backend-app-files.d.mts +10 -0
  256. package/runtime/scripts/hfs/architecture/backend-app-files.mjs +88 -77
  257. package/runtime/scripts/hfs/architecture/backend.d.mts +5 -0
  258. package/runtime/scripts/hfs/architecture/backend.mjs +378 -357
  259. package/runtime/scripts/hfs/architecture/background-unowned.d.mts +25 -0
  260. package/runtime/scripts/hfs/architecture/background-unowned.mjs +201 -187
  261. package/runtime/scripts/hfs/architecture/canon-clones.d.mts +8 -0
  262. package/runtime/scripts/hfs/architecture/canon-clones.mjs +260 -209
  263. package/runtime/scripts/hfs/architecture/canon-jsx-clones.d.mts +5 -0
  264. package/runtime/scripts/hfs/architecture/canon-jsx-clones.mjs +149 -116
  265. package/runtime/scripts/hfs/architecture/client-reaches-server.d.mts +28 -0
  266. package/runtime/scripts/hfs/architecture/client-reaches-server.mjs +72 -68
  267. package/runtime/scripts/hfs/architecture/clones.d.mts +54 -0
  268. package/runtime/scripts/hfs/architecture/clones.mjs +212 -217
  269. package/runtime/scripts/hfs/architecture/config-unread.d.mts +14 -0
  270. package/runtime/scripts/hfs/architecture/config-unread.mjs +7 -9
  271. package/runtime/scripts/hfs/architecture/config.d.mts +74 -0
  272. package/runtime/scripts/hfs/architecture/config.mjs +302 -268
  273. package/runtime/scripts/hfs/architecture/connection-map.d.mts +33 -0
  274. package/runtime/scripts/hfs/architecture/connection-map.mjs +258 -225
  275. package/runtime/scripts/hfs/architecture/constructor-deps.d.mts +57 -0
  276. package/runtime/scripts/hfs/architecture/constructor-deps.mjs +80 -71
  277. package/runtime/scripts/hfs/architecture/context-coupling.d.mts +21 -0
  278. package/runtime/scripts/hfs/architecture/context-coupling.mjs +82 -77
  279. package/runtime/scripts/hfs/architecture/context-map.d.mts +102 -0
  280. package/runtime/scripts/hfs/architecture/context-map.mjs +267 -234
  281. package/runtime/scripts/hfs/architecture/context-owner.d.mts +15 -0
  282. package/runtime/scripts/hfs/architecture/context-owner.mjs +73 -61
  283. package/runtime/scripts/hfs/architecture/context-platform-tables.d.mts +18 -0
  284. package/runtime/scripts/hfs/architecture/context-platform-tables.mjs +47 -43
  285. package/runtime/scripts/hfs/architecture/context-transaction.d.mts +20 -0
  286. package/runtime/scripts/hfs/architecture/context-transaction.mjs +54 -52
  287. package/runtime/scripts/hfs/architecture/contract-fixture-guard.d.mts +37 -0
  288. package/runtime/scripts/hfs/architecture/contract-fixture-guard.mjs +113 -104
  289. package/runtime/scripts/hfs/architecture/contracts-readonly.d.mts +32 -0
  290. package/runtime/scripts/hfs/architecture/contracts-readonly.mjs +288 -270
  291. package/runtime/scripts/hfs/architecture/contracts.d.mts +30 -0
  292. package/runtime/scripts/hfs/architecture/contracts.mjs +408 -393
  293. package/runtime/scripts/hfs/architecture/cross-app-duplicate.d.mts +27 -0
  294. package/runtime/scripts/hfs/architecture/cross-app-duplicate.mjs +50 -51
  295. package/runtime/scripts/hfs/architecture/dead-exports-bindings.d.mts +21 -0
  296. package/runtime/scripts/hfs/architecture/dead-exports-bindings.mjs +143 -119
  297. package/runtime/scripts/hfs/architecture/dead-exports.d.mts +32 -0
  298. package/runtime/scripts/hfs/architecture/dead-exports.mjs +286 -228
  299. package/runtime/scripts/hfs/architecture/default-deny.d.mts +21 -0
  300. package/runtime/scripts/hfs/architecture/default-deny.mjs +129 -110
  301. package/runtime/scripts/hfs/architecture/doc-language.d.mts +17 -0
  302. package/runtime/scripts/hfs/architecture/doc-language.mjs +24 -19
  303. package/runtime/scripts/hfs/architecture/entity-registry.d.mts +49 -0
  304. package/runtime/scripts/hfs/architecture/entity-registry.mjs +20 -22
  305. package/runtime/scripts/hfs/architecture/entrypoint.d.mts +13 -0
  306. package/runtime/scripts/hfs/architecture/entrypoint.mjs +47 -45
  307. package/runtime/scripts/hfs/architecture/error-codes.d.mts +16 -0
  308. package/runtime/scripts/hfs/architecture/error-codes.mjs +37 -35
  309. package/runtime/scripts/hfs/architecture/error-masked.d.mts +16 -0
  310. package/runtime/scripts/hfs/architecture/error-masked.mjs +55 -59
  311. package/runtime/scripts/hfs/architecture/fe-slot-allows.d.mts +38 -0
  312. package/runtime/scripts/hfs/architecture/fe-slot-allows.mjs +24 -23
  313. package/runtime/scripts/hfs/architecture/feature-shape.d.mts +26 -0
  314. package/runtime/scripts/hfs/architecture/feature-shape.mjs +40 -38
  315. package/runtime/scripts/hfs/architecture/framework-pinned.d.mts +3 -0
  316. package/runtime/scripts/hfs/architecture/framework-pinned.mjs +21 -21
  317. package/runtime/scripts/hfs/architecture/frontend-block-render.d.mts +26 -0
  318. package/runtime/scripts/hfs/architecture/frontend-block-render.mjs +106 -98
  319. package/runtime/scripts/hfs/architecture/frontend-grammar.d.mts +7 -0
  320. package/runtime/scripts/hfs/architecture/frontend-grammar.mjs +153 -150
  321. package/runtime/scripts/hfs/architecture/frontend-routing.d.mts +23 -0
  322. package/runtime/scripts/hfs/architecture/frontend-routing.mjs +161 -149
  323. package/runtime/scripts/hfs/architecture/frontend-world-render.d.mts +72 -0
  324. package/runtime/scripts/hfs/architecture/frontend-world-render.mjs +343 -305
  325. package/runtime/scripts/hfs/architecture/frontend-world.d.mts +94 -0
  326. package/runtime/scripts/hfs/architecture/frontend-world.mjs +340 -294
  327. package/runtime/scripts/hfs/architecture/frontend.d.mts +31 -0
  328. package/runtime/scripts/hfs/architecture/frontend.mjs +174 -184
  329. package/runtime/scripts/hfs/architecture/function-spec-providers.d.mts +27 -0
  330. package/runtime/scripts/hfs/architecture/function-spec-providers.mjs +124 -106
  331. package/runtime/scripts/hfs/architecture/hfs-graph.d.mts +78 -0
  332. package/runtime/scripts/hfs/architecture/hfs-graph.mjs +52 -48
  333. package/runtime/scripts/hfs/architecture/hfs.d.mts +135 -0
  334. package/runtime/scripts/hfs/architecture/hfs.mjs +328 -282
  335. package/runtime/scripts/hfs/architecture/hooks-are-hooks.d.mts +24 -0
  336. package/runtime/scripts/hfs/architecture/hooks-are-hooks.mjs +81 -71
  337. package/runtime/scripts/hfs/architecture/i18n-keys.d.mts +31 -0
  338. package/runtime/scripts/hfs/architecture/i18n-keys.mjs +155 -141
  339. package/runtime/scripts/hfs/architecture/identity.d.mts +7 -0
  340. package/runtime/scripts/hfs/architecture/identity.mjs +141 -125
  341. package/runtime/scripts/hfs/architecture/index.d.mts +101 -0
  342. package/runtime/scripts/hfs/architecture/index.mjs +272 -272
  343. package/runtime/scripts/hfs/architecture/injection-token-exported.d.mts +21 -0
  344. package/runtime/scripts/hfs/architecture/injection-token-exported.mjs +45 -43
  345. package/runtime/scripts/hfs/architecture/jwt-ast.d.mts +16 -0
  346. package/runtime/scripts/hfs/architecture/jwt-ast.mjs +195 -176
  347. package/runtime/scripts/hfs/architecture/machine-ast.d.mts +88 -0
  348. package/runtime/scripts/hfs/architecture/machine-ast.mjs +163 -155
  349. package/runtime/scripts/hfs/architecture/managed-scripts.d.mts +2 -0
  350. package/runtime/scripts/hfs/architecture/managed-scripts.mjs +19 -20
  351. package/runtime/scripts/hfs/architecture/module-per-transport.d.mts +35 -0
  352. package/runtime/scripts/hfs/architecture/module-per-transport.mjs +177 -172
  353. package/runtime/scripts/hfs/architecture/next-data-contract.d.mts +35 -0
  354. package/runtime/scripts/hfs/architecture/next-data-contract.mjs +100 -78
  355. package/runtime/scripts/hfs/architecture/next-data-inference.d.mts +39 -0
  356. package/runtime/scripts/hfs/architecture/next-data-inference.mjs +170 -154
  357. package/runtime/scripts/hfs/architecture/next-data-key.d.mts +50 -0
  358. package/runtime/scripts/hfs/architecture/next-data-key.mjs +311 -275
  359. package/runtime/scripts/hfs/architecture/next-data-symbols.d.mts +5 -0
  360. package/runtime/scripts/hfs/architecture/next-data-symbols.mjs +17 -17
  361. package/runtime/scripts/hfs/architecture/next-data.d.mts +36 -0
  362. package/runtime/scripts/hfs/architecture/next-data.mjs +351 -334
  363. package/runtime/scripts/hfs/architecture/operation-contract-roots.d.mts +10 -0
  364. package/runtime/scripts/hfs/architecture/operation-contract-roots.mjs +39 -37
  365. package/runtime/scripts/hfs/architecture/owners.d.mts +5 -0
  366. package/runtime/scripts/hfs/architecture/owners.mjs +97 -98
  367. package/runtime/scripts/hfs/architecture/package-shape.d.mts +26 -0
  368. package/runtime/scripts/hfs/architecture/package-shape.mjs +56 -55
  369. package/runtime/scripts/hfs/architecture/presentation.d.mts +24 -0
  370. package/runtime/scripts/hfs/architecture/presentation.mjs +138 -130
  371. package/runtime/scripts/hfs/architecture/reachability.d.mts +25 -0
  372. package/runtime/scripts/hfs/architecture/reachability.mjs +258 -241
  373. package/runtime/scripts/hfs/architecture/register-once.d.mts +18 -0
  374. package/runtime/scripts/hfs/architecture/register-once.mjs +152 -139
  375. package/runtime/scripts/hfs/architecture/registration.d.mts +15 -0
  376. package/runtime/scripts/hfs/architecture/registration.mjs +301 -267
  377. package/runtime/scripts/hfs/architecture/required-files.d.mts +64 -0
  378. package/runtime/scripts/hfs/architecture/required-files.mjs +172 -167
  379. package/runtime/scripts/hfs/architecture/route-files-thin.d.mts +23 -0
  380. package/runtime/scripts/hfs/architecture/route-files-thin.mjs +85 -77
  381. package/runtime/scripts/hfs/architecture/schema-owner.d.mts +34 -0
  382. package/runtime/scripts/hfs/architecture/schema-owner.mjs +206 -181
  383. package/runtime/scripts/hfs/architecture/server-action.d.mts +22 -0
  384. package/runtime/scripts/hfs/architecture/server-action.mjs +48 -48
  385. package/runtime/scripts/hfs/architecture/side-boundary.d.mts +3 -0
  386. package/runtime/scripts/hfs/architecture/side-boundary.mjs +2 -5
  387. package/runtime/scripts/hfs/architecture/source-names-shape.d.mts +85 -0
  388. package/runtime/scripts/hfs/architecture/source-names-shape.mjs +261 -259
  389. package/runtime/scripts/hfs/architecture/source-names.d.mts +7 -0
  390. package/runtime/scripts/hfs/architecture/source-names.mjs +304 -278
  391. package/runtime/scripts/hfs/architecture/sql-keys.d.mts +5 -0
  392. package/runtime/scripts/hfs/architecture/sql-keys.mjs +277 -194
  393. package/runtime/scripts/hfs/architecture/sql-owner.d.mts +30 -0
  394. package/runtime/scripts/hfs/architecture/sql-owner.mjs +236 -194
  395. package/runtime/scripts/hfs/architecture/sql-returning.d.mts +22 -0
  396. package/runtime/scripts/hfs/architecture/sql-returning.mjs +46 -45
  397. package/runtime/scripts/hfs/architecture/sql-token-forms.d.mts +21 -0
  398. package/runtime/scripts/hfs/architecture/sql-token-forms.mjs +86 -74
  399. package/runtime/scripts/hfs/architecture/sql-tokens.d.mts +32 -0
  400. package/runtime/scripts/hfs/architecture/sql-tokens.mjs +456 -341
  401. package/runtime/scripts/hfs/architecture/staged-consumers.d.mts +7 -0
  402. package/runtime/scripts/hfs/architecture/staged-consumers.mjs +35 -30
  403. package/runtime/scripts/hfs/architecture/surface.d.mts +26 -0
  404. package/runtime/scripts/hfs/architecture/surface.mjs +64 -74
  405. package/runtime/scripts/hfs/architecture/symbols.d.mts +11 -0
  406. package/runtime/scripts/hfs/architecture/symbols.mjs +209 -216
  407. package/runtime/scripts/hfs/architecture/test-world-files.d.mts +45 -0
  408. package/runtime/scripts/hfs/architecture/test-world-files.mjs +165 -155
  409. package/runtime/scripts/hfs/architecture/tiers.d.mts +29 -0
  410. package/runtime/scripts/hfs/architecture/tiers.mjs +161 -154
  411. package/runtime/scripts/hfs/architecture/transport-owner.d.mts +37 -0
  412. package/runtime/scripts/hfs/architecture/transport-owner.mjs +155 -149
  413. package/runtime/scripts/hfs/architecture/type-context.d.mts +60 -0
  414. package/runtime/scripts/hfs/architecture/type-context.mjs +255 -250
  415. package/runtime/scripts/hfs/architecture/typescript.d.mts +94 -0
  416. package/runtime/scripts/hfs/architecture/typescript.mjs +358 -318
  417. package/runtime/scripts/hfs/architecture/unit-spec-providers.d.mts +34 -0
  418. package/runtime/scripts/hfs/architecture/unit-spec-providers.mjs +110 -92
  419. package/runtime/scripts/hfs/architecture.d.mts +13 -0
  420. package/runtime/scripts/hfs/architecture.mjs +39 -29
  421. package/runtime/scripts/hfs/canon-pins.d.mts +26 -0
  422. package/runtime/scripts/hfs/canon-pins.mjs +5 -8
  423. package/runtime/scripts/hfs/catalog-once.d.mts +2 -0
  424. package/runtime/scripts/hfs/catalog-once.mjs +8 -9
  425. package/runtime/scripts/hfs/check-results.d.mts +29 -0
  426. package/runtime/scripts/hfs/check-results.mjs +14 -18
  427. package/runtime/scripts/hfs/check.d.mts +144 -0
  428. package/runtime/scripts/hfs/check.mjs +309 -329
  429. package/runtime/scripts/hfs/ci-declaration.d.mts +77 -0
  430. package/runtime/scripts/hfs/ci-declaration.mjs +99 -87
  431. package/runtime/scripts/hfs/coverage-from.d.mts +22 -0
  432. package/runtime/scripts/hfs/coverage-from.mjs +52 -49
  433. package/runtime/scripts/hfs/coverage-scope.d.mts +87 -0
  434. package/runtime/scripts/hfs/coverage-scope.mjs +139 -142
  435. package/runtime/scripts/hfs/db-baseline-verb.d.mts +84 -0
  436. package/runtime/scripts/hfs/db-baseline-verb.mjs +327 -266
  437. package/runtime/scripts/hfs/db-errors.d.mts +2 -0
  438. package/runtime/scripts/hfs/db-errors.mjs +2 -1
  439. package/runtime/scripts/hfs/db-plan-verb.d.mts +33 -0
  440. package/runtime/scripts/hfs/db-plan-verb.mjs +174 -128
  441. package/runtime/scripts/hfs/db-restamp-verb.d.mts +5 -0
  442. package/runtime/scripts/hfs/db-restamp-verb.mjs +94 -70
  443. package/runtime/scripts/hfs/db-squash.d.mts +117 -0
  444. package/runtime/scripts/hfs/db-squash.mjs +414 -351
  445. package/runtime/scripts/hfs/declaration-shape.d.mts +3 -0
  446. package/runtime/scripts/hfs/declaration-shape.mjs +140 -103
  447. package/runtime/scripts/hfs/declaration-slots.d.mts +18 -0
  448. package/runtime/scripts/hfs/declaration-slots.mjs +64 -61
  449. package/runtime/scripts/hfs/doc-commands.d.mts +71 -0
  450. package/runtime/scripts/hfs/doc-commands.mjs +257 -250
  451. package/runtime/scripts/hfs/edition-slots.d.mts +37 -0
  452. package/runtime/scripts/hfs/edition-slots.mjs +43 -40
  453. package/runtime/scripts/hfs/example-secrets.d.mts +18 -0
  454. package/runtime/scripts/hfs/example-secrets.mjs +173 -154
  455. package/runtime/scripts/hfs/gate-threshold.d.mts +20 -0
  456. package/runtime/scripts/hfs/gate-threshold.mjs +28 -0
  457. package/runtime/scripts/hfs/grammar-presentation.d.mts +74 -0
  458. package/runtime/scripts/hfs/grammar-presentation.mjs +109 -106
  459. package/runtime/scripts/hfs/linear-text.d.mts +6 -0
  460. package/runtime/scripts/hfs/linear-text.mjs +20 -20
  461. package/runtime/scripts/hfs/manifest-shape.d.mts +216 -0
  462. package/runtime/scripts/hfs/manifest-shape.mjs +399 -324
  463. package/runtime/scripts/hfs/param-names.d.mts +3 -0
  464. package/runtime/scripts/hfs/param-names.mjs +6 -11
  465. package/runtime/scripts/hfs/path-findings.d.mts +22 -0
  466. package/runtime/scripts/hfs/path-findings.mjs +120 -100
  467. package/runtime/scripts/hfs/pin-findings.d.mts +19 -0
  468. package/runtime/scripts/hfs/pin-findings.mjs +26 -21
  469. package/runtime/scripts/hfs/refusal-codes.d.mts +1 -0
  470. package/runtime/scripts/hfs/refusal-codes.mjs +2 -2
  471. package/runtime/scripts/hfs/repo-identity.d.mts +15 -0
  472. package/runtime/scripts/hfs/repo-identity.mjs +55 -42
  473. package/runtime/scripts/hfs/rule-catalog.d.mts +77 -0
  474. package/runtime/scripts/hfs/rule-catalog.mjs +353 -257
  475. package/runtime/scripts/hfs/rule-params-shape.d.mts +10 -0
  476. package/runtime/scripts/hfs/rule-params-shape.mjs +60 -47
  477. package/runtime/scripts/hfs/rules/a15-findings.d.mts +18 -0
  478. package/runtime/scripts/hfs/rules/a15-findings.mjs +59 -55
  479. package/runtime/scripts/hfs/rules/app-env-required.d.mts +9 -0
  480. package/runtime/scripts/hfs/rules/app-env-required.mjs +13 -13
  481. package/runtime/scripts/hfs/rules/app-root.d.mts +15 -0
  482. package/runtime/scripts/hfs/rules/app-root.mjs +20 -21
  483. package/runtime/scripts/hfs/rules/app-workflow-findings.d.mts +12 -0
  484. package/runtime/scripts/hfs/rules/app-workflow-findings.mjs +4 -4
  485. package/runtime/scripts/hfs/rules/assets.d.mts +13 -0
  486. package/runtime/scripts/hfs/rules/assets.mjs +58 -46
  487. package/runtime/scripts/hfs/rules/boot-proof.d.mts +11 -0
  488. package/runtime/scripts/hfs/rules/boot-proof.mjs +7 -8
  489. package/runtime/scripts/hfs/rules/bypass-markers.d.mts +9 -0
  490. package/runtime/scripts/hfs/rules/bypass-markers.mjs +7 -12
  491. package/runtime/scripts/hfs/rules/canon-copy-drift.d.mts +10 -0
  492. package/runtime/scripts/hfs/rules/canon-copy-drift.mjs +70 -68
  493. package/runtime/scripts/hfs/rules/ci-custody.d.mts +7 -0
  494. package/runtime/scripts/hfs/rules/ci-custody.mjs +72 -73
  495. package/runtime/scripts/hfs/rules/ci-standard.d.mts +12 -0
  496. package/runtime/scripts/hfs/rules/ci-standard.mjs +149 -142
  497. package/runtime/scripts/hfs/rules/cli.d.mts +7 -0
  498. package/runtime/scripts/hfs/rules/cli.mjs +24 -23
  499. package/runtime/scripts/hfs/rules/contract-compat.d.mts +11 -0
  500. package/runtime/scripts/hfs/rules/contract-compat.mjs +64 -53
  501. package/runtime/scripts/hfs/rules/contract.d.mts +26 -0
  502. package/runtime/scripts/hfs/rules/contract.mjs +126 -111
  503. package/runtime/scripts/hfs/rules/coverage-below.d.mts +17 -0
  504. package/runtime/scripts/hfs/rules/coverage-below.mjs +200 -167
  505. package/runtime/scripts/hfs/rules/database-access.d.mts +12 -0
  506. package/runtime/scripts/hfs/rules/database-access.mjs +231 -202
  507. package/runtime/scripts/hfs/rules/database-baseline.d.mts +22 -0
  508. package/runtime/scripts/hfs/rules/database-baseline.mjs +104 -104
  509. package/runtime/scripts/hfs/rules/database-config.d.mts +11 -0
  510. package/runtime/scripts/hfs/rules/database-config.mjs +101 -135
  511. package/runtime/scripts/hfs/rules/database-constants.d.mts +36 -0
  512. package/runtime/scripts/hfs/rules/database-constants.mjs +7 -7
  513. package/runtime/scripts/hfs/rules/database-migrations.d.mts +41 -0
  514. package/runtime/scripts/hfs/rules/database-migrations.mjs +428 -388
  515. package/runtime/scripts/hfs/rules/database-plpgsql.d.mts +5 -0
  516. package/runtime/scripts/hfs/rules/database-plpgsql.mjs +278 -259
  517. package/runtime/scripts/hfs/rules/database-queue-sources.d.mts +4 -0
  518. package/runtime/scripts/hfs/rules/database-queue-sources.mjs +48 -43
  519. package/runtime/scripts/hfs/rules/database-queues.d.mts +15 -0
  520. package/runtime/scripts/hfs/rules/database-queues.mjs +211 -182
  521. package/runtime/scripts/hfs/rules/database-sql.d.mts +16 -0
  522. package/runtime/scripts/hfs/rules/database-sql.mjs +394 -394
  523. package/runtime/scripts/hfs/rules/database-transaction.d.mts +3 -0
  524. package/runtime/scripts/hfs/rules/database-transaction.mjs +25 -27
  525. package/runtime/scripts/hfs/rules/database.d.mts +22 -0
  526. package/runtime/scripts/hfs/rules/database.mjs +42 -58
  527. package/runtime/scripts/hfs/rules/deploy-scan.d.mts +10 -0
  528. package/runtime/scripts/hfs/rules/deploy-scan.mjs +177 -168
  529. package/runtime/scripts/hfs/rules/deploy-workflow.d.mts +3 -0
  530. package/runtime/scripts/hfs/rules/deploy-workflow.mjs +194 -171
  531. package/runtime/scripts/hfs/rules/deps.d.mts +6 -0
  532. package/runtime/scripts/hfs/rules/deps.mjs +61 -60
  533. package/runtime/scripts/hfs/rules/doc-fresh.d.mts +11 -0
  534. package/runtime/scripts/hfs/rules/doc-fresh.mjs +242 -223
  535. package/runtime/scripts/hfs/rules/docker-health.d.mts +9 -0
  536. package/runtime/scripts/hfs/rules/docker-health.mjs +222 -196
  537. package/runtime/scripts/hfs/rules/docker.d.mts +13 -0
  538. package/runtime/scripts/hfs/rules/docker.mjs +234 -208
  539. package/runtime/scripts/hfs/rules/edition.d.mts +18 -0
  540. package/runtime/scripts/hfs/rules/edition.mjs +103 -101
  541. package/runtime/scripts/hfs/rules/env-parity.d.mts +25 -0
  542. package/runtime/scripts/hfs/rules/env-parity.mjs +278 -252
  543. package/runtime/scripts/hfs/rules/env-value-shape.d.mts +21 -0
  544. package/runtime/scripts/hfs/rules/env-value-shape.mjs +82 -67
  545. package/runtime/scripts/hfs/rules/event-bus.d.mts +17 -0
  546. package/runtime/scripts/hfs/rules/event-bus.mjs +145 -133
  547. package/runtime/scripts/hfs/rules/event-tables.d.mts +7 -0
  548. package/runtime/scripts/hfs/rules/event-tables.mjs +77 -75
  549. package/runtime/scripts/hfs/rules/fe-build-args.d.mts +10 -0
  550. package/runtime/scripts/hfs/rules/fe-build-args.mjs +116 -99
  551. package/runtime/scripts/hfs/rules/fe-contract-documents.d.mts +7 -0
  552. package/runtime/scripts/hfs/rules/fe-contract-documents.mjs +121 -111
  553. package/runtime/scripts/hfs/rules/fe-no-tests.d.mts +9 -0
  554. package/runtime/scripts/hfs/rules/fe-no-tests.mjs +37 -36
  555. package/runtime/scripts/hfs/rules/fe-stack.d.mts +23 -0
  556. package/runtime/scripts/hfs/rules/fe-stack.mjs +108 -105
  557. package/runtime/scripts/hfs/rules/feature-files.d.mts +10 -0
  558. package/runtime/scripts/hfs/rules/feature-files.mjs +14 -19
  559. package/runtime/scripts/hfs/rules/frontend-tree.d.mts +18 -0
  560. package/runtime/scripts/hfs/rules/frontend-tree.mjs +105 -91
  561. package/runtime/scripts/hfs/rules/integration-specs.d.mts +7 -0
  562. package/runtime/scripts/hfs/rules/integration-specs.mjs +190 -177
  563. package/runtime/scripts/hfs/rules/kinds.d.mts +6 -0
  564. package/runtime/scripts/hfs/rules/kinds.mjs +88 -81
  565. package/runtime/scripts/hfs/rules/lexicon.d.mts +9 -0
  566. package/runtime/scripts/hfs/rules/lexicon.mjs +43 -40
  567. package/runtime/scripts/hfs/rules/lint-suppression.d.mts +5 -0
  568. package/runtime/scripts/hfs/rules/lint-suppression.mjs +22 -20
  569. package/runtime/scripts/hfs/rules/lite-proof-lane.d.mts +9 -0
  570. package/runtime/scripts/hfs/rules/lite-proof-lane.mjs +59 -58
  571. package/runtime/scripts/hfs/rules/lite-secrets.d.mts +12 -0
  572. package/runtime/scripts/hfs/rules/lite-secrets.mjs +60 -63
  573. package/runtime/scripts/hfs/rules/mcp-tools.d.mts +7 -0
  574. package/runtime/scripts/hfs/rules/mcp-tools.mjs +56 -41
  575. package/runtime/scripts/hfs/rules/monorepo.d.mts +17 -0
  576. package/runtime/scripts/hfs/rules/monorepo.mjs +153 -138
  577. package/runtime/scripts/hfs/rules/peer-integrations.d.mts +7 -0
  578. package/runtime/scripts/hfs/rules/peer-integrations.mjs +39 -36
  579. package/runtime/scripts/hfs/rules/pipeline.d.mts +7 -0
  580. package/runtime/scripts/hfs/rules/pipeline.mjs +53 -53
  581. package/runtime/scripts/hfs/rules/proof-commands.d.mts +14 -0
  582. package/runtime/scripts/hfs/rules/proof-commands.mjs +52 -41
  583. package/runtime/scripts/hfs/rules/read.d.mts +7 -0
  584. package/runtime/scripts/hfs/rules/read.mjs +19 -15
  585. package/runtime/scripts/hfs/rules/release-provenance.d.mts +12 -0
  586. package/runtime/scripts/hfs/rules/release-provenance.mjs +196 -159
  587. package/runtime/scripts/hfs/rules/repo-local-checks.d.mts +5 -0
  588. package/runtime/scripts/hfs/rules/repo-local-checks.mjs +19 -17
  589. package/runtime/scripts/hfs/rules/rule-types.d.mts +40 -0
  590. package/runtime/scripts/hfs/rules/rule-types.mjs +4 -0
  591. package/runtime/scripts/hfs/rules/saga-delivery.d.mts +2 -0
  592. package/runtime/scripts/hfs/rules/saga-delivery.mjs +58 -50
  593. package/runtime/scripts/hfs/rules/saga.d.mts +7 -0
  594. package/runtime/scripts/hfs/rules/saga.mjs +151 -145
  595. package/runtime/scripts/hfs/rules/script-hygiene.d.mts +11 -0
  596. package/runtime/scripts/hfs/rules/script-hygiene.mjs +112 -95
  597. package/runtime/scripts/hfs/rules/secret-custody-only.d.mts +7 -0
  598. package/runtime/scripts/hfs/rules/secret-custody-only.mjs +29 -35
  599. package/runtime/scripts/hfs/rules/secrets.d.mts +29 -0
  600. package/runtime/scripts/hfs/rules/secrets.mjs +45 -44
  601. package/runtime/scripts/hfs/rules/services.d.mts +7 -0
  602. package/runtime/scripts/hfs/rules/services.mjs +148 -148
  603. package/runtime/scripts/hfs/rules/spec-placement.d.mts +8 -0
  604. package/runtime/scripts/hfs/rules/spec-placement.mjs +12 -13
  605. package/runtime/scripts/hfs/rules/stack-tooling.d.mts +11 -0
  606. package/runtime/scripts/hfs/rules/stack-tooling.mjs +45 -52
  607. package/runtime/scripts/hfs/rules/stacks-auth-cookie-domain.d.mts +30 -0
  608. package/runtime/scripts/hfs/rules/stacks-auth-cookie-domain.mjs +149 -0
  609. package/runtime/scripts/hfs/rules/stacks-deploy.d.mts +7 -0
  610. package/runtime/scripts/hfs/rules/stacks-deploy.mjs +32 -42
  611. package/runtime/scripts/hfs/rules/stacks-ingress.d.mts +16 -0
  612. package/runtime/scripts/hfs/rules/stacks-ingress.mjs +62 -64
  613. package/runtime/scripts/hfs/rules/stacks-lite-backing.d.mts +17 -0
  614. package/runtime/scripts/hfs/rules/stacks-lite-backing.mjs +111 -116
  615. package/runtime/scripts/hfs/rules/stacks-release.d.mts +26 -0
  616. package/runtime/scripts/hfs/rules/stacks-release.mjs +335 -309
  617. package/runtime/scripts/hfs/rules/stacks-runtime.d.mts +31 -0
  618. package/runtime/scripts/hfs/rules/stacks-runtime.mjs +130 -124
  619. package/runtime/scripts/hfs/rules/stacks-swarm.d.mts +5 -0
  620. package/runtime/scripts/hfs/rules/stacks-swarm.mjs +366 -344
  621. package/runtime/scripts/hfs/rules/stacks.d.mts +7 -0
  622. package/runtime/scripts/hfs/rules/stacks.mjs +37 -38
  623. package/runtime/scripts/hfs/rules/staged-specs.d.mts +10 -0
  624. package/runtime/scripts/hfs/rules/staged-specs.mjs +14 -18
  625. package/runtime/scripts/hfs/rules/supply-chain.d.mts +10 -0
  626. package/runtime/scripts/hfs/rules/supply-chain.mjs +143 -150
  627. package/runtime/scripts/hfs/rules/test-topology.d.mts +5 -0
  628. package/runtime/scripts/hfs/rules/test-topology.mjs +23 -21
  629. package/runtime/scripts/hfs/rules/text-integrity.d.mts +9 -0
  630. package/runtime/scripts/hfs/rules/text-integrity.mjs +47 -43
  631. package/runtime/scripts/hfs/rules/unused-symbol-flow.d.mts +22 -0
  632. package/runtime/scripts/hfs/rules/unused-symbol-flow.mjs +226 -204
  633. package/runtime/scripts/hfs/rules/unused-symbol-ledger.d.mts +7 -0
  634. package/runtime/scripts/hfs/rules/unused-symbol-ledger.mjs +70 -49
  635. package/runtime/scripts/hfs/rules/unused-symbol-properties.d.mts +12 -0
  636. package/runtime/scripts/hfs/rules/unused-symbol-properties.mjs +141 -126
  637. package/runtime/scripts/hfs/rules/unused-symbol-translators.d.mts +8 -0
  638. package/runtime/scripts/hfs/rules/unused-symbol-translators.mjs +160 -140
  639. package/runtime/scripts/hfs/rules/unused-symbol-values.d.mts +9 -0
  640. package/runtime/scripts/hfs/rules/unused-symbol-values.mjs +138 -125
  641. package/runtime/scripts/hfs/rules/unused-symbol.d.mts +11 -0
  642. package/runtime/scripts/hfs/rules/unused-symbol.mjs +283 -253
  643. package/runtime/scripts/hfs/rules/workflow-contexts.d.mts +8 -0
  644. package/runtime/scripts/hfs/rules/workflow-contexts.mjs +79 -67
  645. package/runtime/scripts/hfs/runtime-rules/git-triggers.d.mts +6 -0
  646. package/runtime/scripts/hfs/runtime-rules/git-triggers.mjs +36 -35
  647. package/runtime/scripts/hfs/runtime-rules/hook-shape.d.mts +10 -0
  648. package/runtime/scripts/hfs/runtime-rules/hook-shape.mjs +45 -42
  649. package/runtime/scripts/hfs/runtime-rules/source-ast.d.mts +39 -0
  650. package/runtime/scripts/hfs/runtime-rules/source-ast.mjs +130 -116
  651. package/runtime/scripts/hfs/runtime-rules/workflow-source.d.mts +5 -0
  652. package/runtime/scripts/hfs/runtime-rules/workflow-source.mjs +8 -7
  653. package/runtime/scripts/hfs/sealed-members.d.mts +22 -0
  654. package/runtime/scripts/hfs/sealed-members.mjs +79 -75
  655. package/runtime/scripts/hfs/secret-bootstrap-crypto.d.mts +12 -0
  656. package/runtime/scripts/hfs/secret-bootstrap-crypto.mjs +151 -167
  657. package/runtime/scripts/hfs/secret-document.d.mts +16 -0
  658. package/runtime/scripts/hfs/secret-document.mjs +59 -75
  659. package/runtime/scripts/hfs/secret-edit.d.mts +14 -0
  660. package/runtime/scripts/hfs/secret-edit.mjs +115 -135
  661. package/runtime/scripts/hfs/secret-errors.d.mts +4 -0
  662. package/runtime/scripts/hfs/secret-errors.mjs +19 -16
  663. package/runtime/scripts/hfs/secret-files.d.mts +20 -0
  664. package/runtime/scripts/hfs/secret-files.mjs +103 -112
  665. package/runtime/scripts/hfs/secret-init.d.mts +108 -0
  666. package/runtime/scripts/hfs/secret-init.mjs +304 -346
  667. package/runtime/scripts/hfs/secret-output.d.mts +18 -0
  668. package/runtime/scripts/hfs/secret-output.mjs +52 -80
  669. package/runtime/scripts/hfs/secret-prompt.d.mts +39 -0
  670. package/runtime/scripts/hfs/secret-prompt.mjs +108 -93
  671. package/runtime/scripts/hfs/secret-sops.d.mts +29 -0
  672. package/runtime/scripts/hfs/secret-sops.mjs +161 -199
  673. package/runtime/scripts/hfs/secret-standard.d.mts +89 -0
  674. package/runtime/scripts/hfs/secret-standard.mjs +300 -264
  675. package/runtime/scripts/hfs/secret-store.d.mts +36 -0
  676. package/runtime/scripts/hfs/secret-store.mjs +120 -136
  677. package/runtime/scripts/hfs/secret.d.mts +40 -0
  678. package/runtime/scripts/hfs/secret.mjs +254 -222
  679. package/runtime/scripts/hfs/slot-app-view.d.mts +11 -0
  680. package/runtime/scripts/hfs/slot-app-view.mjs +69 -74
  681. package/runtime/scripts/hfs/slot-classify.d.mts +75 -0
  682. package/runtime/scripts/hfs/slot-classify.mjs +42 -38
  683. package/runtime/scripts/hfs/slot-errors.d.mts +6 -0
  684. package/runtime/scripts/hfs/slot-errors.mjs +8 -7
  685. package/runtime/scripts/hfs/slot-imports.d.mts +8 -0
  686. package/runtime/scripts/hfs/slot-imports.mjs +70 -63
  687. package/runtime/scripts/hfs/slot-manifest-shape.d.mts +9 -0
  688. package/runtime/scripts/hfs/slot-manifest-shape.mjs +74 -52
  689. package/runtime/scripts/hfs/slot-match.d.mts +50 -0
  690. package/runtime/scripts/hfs/slot-match.mjs +122 -111
  691. package/runtime/scripts/hfs/slot-path.d.mts +1 -0
  692. package/runtime/scripts/hfs/slot-path.mjs +0 -2
  693. package/runtime/scripts/hfs/slot-required.d.mts +11 -0
  694. package/runtime/scripts/hfs/slot-required.mjs +65 -59
  695. package/runtime/scripts/hfs/slot-semantic-problems.d.mts +9 -0
  696. package/runtime/scripts/hfs/slot-semantic-problems.mjs +138 -112
  697. package/runtime/scripts/hfs/slot-side-problems.d.mts +3 -0
  698. package/runtime/scripts/hfs/slot-side-problems.mjs +23 -19
  699. package/runtime/scripts/hfs/slots.d.mts +188 -0
  700. package/runtime/scripts/hfs/slots.mjs +175 -152
  701. package/runtime/scripts/hfs/sql/pg-parse.d.mts +9 -0
  702. package/runtime/scripts/hfs/sql/pg-parse.mjs +25 -25
  703. package/runtime/scripts/hfs/stack-config-kit.d.mts +22 -0
  704. package/runtime/scripts/hfs/stack-config-kit.mjs +21 -17
  705. package/runtime/scripts/hfs/stack-deploy-config.d.mts +155 -0
  706. package/runtime/scripts/hfs/stack-deploy-config.mjs +345 -273
  707. package/runtime/scripts/hfs/stack-ingress-config.d.mts +74 -0
  708. package/runtime/scripts/hfs/stack-ingress-config.mjs +211 -177
  709. package/runtime/scripts/hfs/stacks-gate.d.mts +52 -0
  710. package/runtime/scripts/hfs/stacks-gate.mjs +557 -397
  711. package/runtime/scripts/hfs/starcistacks-runtime.d.mts +7 -0
  712. package/runtime/scripts/hfs/starcistacks-runtime.mjs +51 -40
  713. package/runtime/scripts/hfs/test-world-slot.d.mts +2 -0
  714. package/runtime/scripts/hfs/test-world-slot.mjs +0 -1
  715. package/runtime/scripts/hfs/trailing-slashes.d.mts +2 -0
  716. package/runtime/scripts/hfs/trailing-slashes.mjs +4 -4
  717. package/runtime/scripts/hfs/tree-findings.d.mts +9 -0
  718. package/runtime/scripts/hfs/tree-findings.mjs +18 -17
  719. package/runtime/scripts/hfs/tree.d.mts +35 -0
  720. package/runtime/scripts/hfs/tree.mjs +56 -46
  721. package/runtime/scripts/hfs/typescript-programs.d.mts +36 -0
  722. package/runtime/scripts/hfs/typescript-programs.mjs +66 -69
  723. package/runtime/scripts/hfs/view.d.mts +45 -0
  724. package/runtime/scripts/hfs/view.mjs +38 -40
  725. package/runtime/scripts/lib/bypass-markers.d.mts +15 -0
  726. package/runtime/scripts/lib/bypass-markers.mjs +210 -197
  727. package/runtime/scripts/lib/cli-arg.d.mts +67 -0
  728. package/runtime/scripts/lib/cli-arg.mjs +59 -63
  729. package/runtime/scripts/lib/command-tokens.d.mts +11 -0
  730. package/runtime/scripts/lib/command-tokens.mjs +77 -78
  731. package/runtime/scripts/lib/compose-values.d.mts +6 -0
  732. package/runtime/scripts/lib/compose-values.mjs +7 -7
  733. package/runtime/scripts/lib/css-rules.d.mts +36 -0
  734. package/runtime/scripts/lib/css-rules.mjs +181 -171
  735. package/runtime/scripts/lib/deployment-findings.d.mts +9 -0
  736. package/runtime/scripts/lib/deployment-findings.mjs +4 -4
  737. package/runtime/scripts/lib/dockerfile.d.mts +39 -0
  738. package/runtime/scripts/lib/dockerfile.mjs +131 -114
  739. package/runtime/scripts/lib/dom-tree.d.mts +7 -0
  740. package/runtime/scripts/lib/dom-tree.mjs +3 -3
  741. package/runtime/scripts/lib/env.d.mts +12 -0
  742. package/runtime/scripts/lib/env.mjs +3 -6
  743. package/runtime/scripts/lib/escape.d.mts +6 -0
  744. package/runtime/scripts/lib/escape.mjs +2 -6
  745. package/runtime/scripts/lib/event-contract.d.mts +21 -0
  746. package/runtime/scripts/lib/event-contract.mjs +73 -78
  747. package/runtime/scripts/lib/event-items.d.mts +20 -0
  748. package/runtime/scripts/lib/event-items.mjs +27 -15
  749. package/runtime/scripts/lib/example-refs.d.mts +69 -0
  750. package/runtime/scripts/lib/example-refs.mjs +145 -129
  751. package/runtime/scripts/lib/fs-kind.d.mts +12 -0
  752. package/runtime/scripts/lib/fs-kind.mjs +20 -10
  753. package/runtime/scripts/lib/git-hooks-dir.d.mts +15 -0
  754. package/runtime/scripts/lib/git-hooks-dir.mjs +16 -16
  755. package/runtime/scripts/lib/git.d.mts +24 -0
  756. package/runtime/scripts/lib/git.mjs +15 -16
  757. package/runtime/scripts/lib/glob.d.mts +4 -0
  758. package/runtime/scripts/lib/glob.mjs +23 -14
  759. package/runtime/scripts/lib/grammar-lint.d.mts +47 -0
  760. package/runtime/scripts/lib/grammar-lint.mjs +33 -37
  761. package/runtime/scripts/lib/grammar-vendor-parity-jsx.d.mts +40 -0
  762. package/runtime/scripts/lib/grammar-vendor-parity-jsx.mjs +285 -266
  763. package/runtime/scripts/lib/grammar-vendor-parity.d.mts +61 -0
  764. package/runtime/scripts/lib/grammar-vendor-parity.mjs +209 -216
  765. package/runtime/scripts/lib/graphql-contract.d.mts +53 -0
  766. package/runtime/scripts/lib/graphql-contract.mjs +201 -198
  767. package/runtime/scripts/lib/graphql-sdl.d.mts +66 -0
  768. package/runtime/scripts/lib/graphql-sdl.mjs +230 -205
  769. package/runtime/scripts/lib/hook-limits.d.mts +11 -0
  770. package/runtime/scripts/lib/hook-limits.mjs +0 -1
  771. package/runtime/scripts/lib/i18n.d.mts +48 -0
  772. package/runtime/scripts/lib/i18n.mjs +32 -35
  773. package/runtime/scripts/lib/in-order.d.mts +12 -0
  774. package/runtime/scripts/lib/in-order.mjs +57 -38
  775. package/runtime/scripts/lib/is-main.d.mts +6 -0
  776. package/runtime/scripts/lib/is-main.mjs +11 -4
  777. package/runtime/scripts/lib/js-lex.d.mts +32 -0
  778. package/runtime/scripts/lib/js-lex.mjs +196 -162
  779. package/runtime/scripts/lib/json-clone.d.mts +11 -0
  780. package/runtime/scripts/lib/json-clone.mjs +45 -36
  781. package/runtime/scripts/lib/json-schema.d.mts +2 -0
  782. package/runtime/scripts/lib/json-schema.mjs +127 -90
  783. package/runtime/scripts/lib/json.d.mts +16 -0
  784. package/runtime/scripts/lib/json.mjs +26 -14
  785. package/runtime/scripts/lib/language.d.mts +44 -0
  786. package/runtime/scripts/lib/language.mjs +133 -129
  787. package/runtime/scripts/lib/list.d.mts +17 -0
  788. package/runtime/scripts/lib/list.mjs +9 -14
  789. package/runtime/scripts/lib/loosening-budgets.d.mts +12 -0
  790. package/runtime/scripts/lib/loosening-budgets.mjs +35 -29
  791. package/runtime/scripts/lib/loosening-config.d.mts +64 -0
  792. package/runtime/scripts/lib/loosening-config.mjs +267 -236
  793. package/runtime/scripts/lib/loosening-state.d.mts +77 -0
  794. package/runtime/scripts/lib/loosening-state.mjs +134 -128
  795. package/runtime/scripts/lib/mutation-fence.d.mts +11 -0
  796. package/runtime/scripts/lib/mutation-fence.mjs +10 -5
  797. package/runtime/scripts/lib/normalize.d.mts +12 -0
  798. package/runtime/scripts/lib/normalize.mjs +11 -11
  799. package/runtime/scripts/lib/numeric-match.d.mts +2 -0
  800. package/runtime/scripts/lib/numeric-match.mjs +2 -2
  801. package/runtime/scripts/lib/package-at.d.mts +24 -0
  802. package/runtime/scripts/lib/package-at.mjs +34 -31
  803. package/runtime/scripts/lib/path-key.d.mts +76 -0
  804. package/runtime/scripts/lib/path-key.mjs +53 -38
  805. package/runtime/scripts/lib/pid-alive.d.mts +2 -0
  806. package/runtime/scripts/lib/pid-alive.mjs +10 -3
  807. package/runtime/scripts/lib/properties.d.mts +2 -0
  808. package/runtime/scripts/lib/properties.mjs +17 -11
  809. package/runtime/scripts/lib/provision-operation-schema.d.mts +4 -0
  810. package/runtime/scripts/lib/provision-operation-schema.mjs +4 -5
  811. package/runtime/scripts/lib/read-text.d.mts +12 -0
  812. package/runtime/scripts/lib/read-text.mjs +30 -17
  813. package/runtime/scripts/lib/redact.d.mts +52 -0
  814. package/runtime/scripts/lib/redact.mjs +135 -121
  815. package/runtime/scripts/lib/regex.d.mts +2 -0
  816. package/runtime/scripts/lib/regex.mjs +1 -2
  817. package/runtime/scripts/lib/roots.d.mts +32 -0
  818. package/runtime/scripts/lib/roots.mjs +5 -15
  819. package/runtime/scripts/lib/runtime-example.d.mts +1 -0
  820. package/runtime/scripts/lib/runtime-example.mjs +10 -8
  821. package/runtime/scripts/lib/same-text.d.mts +2 -0
  822. package/runtime/scripts/lib/same-text.mjs +0 -1
  823. package/runtime/scripts/lib/sealed-member.d.mts +16 -0
  824. package/runtime/scripts/lib/sealed-member.mjs +8 -13
  825. package/runtime/scripts/lib/secret-patterns.d.mts +30 -0
  826. package/runtime/scripts/lib/secret-patterns.mjs +175 -163
  827. package/runtime/scripts/lib/shell-source.d.mts +2 -0
  828. package/runtime/scripts/lib/shell-source.mjs +0 -1
  829. package/runtime/scripts/lib/sleep-sync.d.mts +2 -0
  830. package/runtime/scripts/lib/sleep-sync.mjs +5 -6
  831. package/runtime/scripts/lib/sops-envelope.d.mts +34 -0
  832. package/runtime/scripts/lib/sops-envelope.mjs +148 -120
  833. package/runtime/scripts/lib/source-phrases.d.mts +4 -0
  834. package/runtime/scripts/lib/source-phrases.mjs +13 -13
  835. package/runtime/scripts/lib/sql-ast.d.mts +13 -0
  836. package/runtime/scripts/lib/sql-ast.mjs +19 -18
  837. package/runtime/scripts/lib/sqlite.d.mts +21 -0
  838. package/runtime/scripts/lib/sqlite.mjs +3 -9
  839. package/runtime/scripts/lib/stack-declaration.d.mts +51 -0
  840. package/runtime/scripts/lib/stack-declaration.mjs +27 -20
  841. package/runtime/scripts/lib/stack-services.d.mts +73 -0
  842. package/runtime/scripts/lib/stack-services.mjs +128 -129
  843. package/runtime/scripts/lib/starciwork-boundary.d.mts +10 -0
  844. package/runtime/scripts/lib/starciwork-boundary.mjs +98 -92
  845. package/runtime/scripts/lib/swarm-stack.d.mts +24 -0
  846. package/runtime/scripts/lib/swarm-stack.mjs +112 -100
  847. package/runtime/scripts/lib/trim-end.d.mts +2 -0
  848. package/runtime/scripts/lib/trim-end.mjs +4 -4
  849. package/runtime/scripts/lib/ts-analysis.d.mts +24 -0
  850. package/runtime/scripts/lib/ts-analysis.mjs +28 -26
  851. package/runtime/scripts/lib/ts-ast.d.mts +36 -0
  852. package/runtime/scripts/lib/ts-ast.mjs +36 -42
  853. package/runtime/scripts/lib/walk.d.mts +19 -0
  854. package/runtime/scripts/lib/walk.mjs +33 -27
  855. package/runtime/scripts/lib/work-edition.d.mts +10 -0
  856. package/runtime/scripts/lib/work-edition.mjs +29 -21
  857. package/runtime/scripts/lib/workflow-events.d.mts +2 -0
  858. package/runtime/scripts/lib/workflow-events.mjs +5 -4
  859. package/runtime/scripts/lib/worktree-exclude.d.mts +16 -0
  860. package/runtime/scripts/lib/worktree-exclude.mjs +6 -8
  861. package/runtime/scripts/lib/yaml-cached.d.mts +2 -0
  862. package/runtime/scripts/lib/yaml-cached.mjs +4 -4
  863. package/runtime/scripts/machine/artifact-hold.d.mts +26 -0
  864. package/runtime/scripts/machine/artifact-hold.mjs +22 -23
  865. package/runtime/scripts/work/asset-slot.d.mts +96 -0
  866. package/runtime/scripts/work/asset-slot.mjs +201 -175
  867. package/runtime/scripts/work/draw/draw-dna-anatomy.d.mts +30 -0
  868. package/runtime/scripts/work/draw/draw-dna-anatomy.mjs +40 -36
  869. package/runtime/scripts/work/draw/draw-dna-findings.d.mts +12 -0
  870. package/runtime/scripts/work/draw/draw-dna-findings.mjs +240 -206
  871. package/runtime/scripts/work/draw/draw-dna-selector.d.mts +7 -0
  872. package/runtime/scripts/work/draw/draw-dna-selector.mjs +28 -28
  873. package/runtime/scripts/work/draw/draw-dna.d.mts +191 -0
  874. package/runtime/scripts/work/draw/draw-dna.mjs +283 -249
  875. package/runtime/scripts/work/grammar-proposal.d.mts +83 -0
  876. package/runtime/scripts/work/grammar-proposal.mjs +215 -178
  877. package/runtime/scripts/work/work-io.d.mts +62 -0
  878. package/runtime/scripts/work/work-io.mjs +82 -63
  879. package/scaffold/add-app.d.mts +15 -0
  880. package/scaffold/add-app.mjs +111 -163
  881. package/scaffold/add-cli-lite.d.mts +8 -0
  882. package/scaffold/add-cli-lite.mjs +173 -207
  883. package/scaffold/add-compose.d.mts +44 -0
  884. package/scaffold/add-compose.mjs +62 -62
  885. package/scaffold/add-database-lite.d.mts +2 -0
  886. package/scaffold/add-database-lite.mjs +10 -10
  887. package/scaffold/add-fe-layout.d.mts +16 -0
  888. package/scaffold/add-fe-layout.mjs +23 -23
  889. package/scaffold/add-fe-overlay.d.mts +17 -0
  890. package/scaffold/add-fe-overlay.mjs +76 -78
  891. package/scaffold/add-fe-page.d.mts +41 -0
  892. package/scaffold/add-fe-page.mjs +84 -89
  893. package/scaffold/add-fe-unit.d.mts +59 -0
  894. package/scaffold/add-fe-unit.mjs +205 -197
  895. package/scaffold/add-inbox-lite.d.mts +17 -0
  896. package/scaffold/add-inbox-lite.mjs +209 -264
  897. package/scaffold/add-plan.d.mts +68 -0
  898. package/scaffold/add-plan.mjs +164 -149
  899. package/scaffold/add-queue-lite.d.mts +34 -0
  900. package/scaffold/add-queue-lite.mjs +267 -267
  901. package/scaffold/add-table.d.mts +16 -0
  902. package/scaffold/add-table.mjs +405 -442
  903. package/scaffold/add.d.mts +34 -0
  904. package/scaffold/add.mjs +260 -246
  905. package/scaffold/app.d.mts +198 -0
  906. package/scaffold/app.mjs +413 -391
  907. package/scaffold/edition-gate.d.mts +49 -0
  908. package/scaffold/edition-gate.mjs +19 -29
  909. package/scaffold/image.d.mts +4 -0
  910. package/scaffold/image.mjs +12 -12
  911. package/scaffold/lite-exports.d.mts +15 -0
  912. package/scaffold/lite-exports.mjs +262 -255
  913. package/scaffold/pattern-file-slots.d.mts +7 -0
  914. package/scaffold/pattern-file-slots.mjs +29 -24
  915. package/scaffold/service.d.mts +60 -0
  916. package/scaffold/service.mjs +297 -279
  917. package/scaffold/test-world.d.mts +31 -0
  918. package/scaffold/test-world.mjs +71 -78
  919. package/scaffold/yaml-block-edit.d.mts +23 -0
  920. package/scaffold/yaml-block-edit.mjs +95 -87
  921. package/scripts/sync-bundles.d.mts +31 -0
  922. package/src/fixtures/bypass-index.d.mts +4 -0
  923. package/src/fixtures/hfs-stack-tooling/passing.d.mts +8 -0
  924. package/src/fixtures/hfs-stack-tooling/violating.d.mts +19 -0
  925. package/src/fixtures/hfs-stacks-full/model-unavailable.d.mts +10 -0
  926. package/src/fixtures/hfs-stacks-full/passing.d.mts +19 -0
  927. package/src/fixtures/hfs-stacks-full/violating.d.mts +10 -0
  928. package/src/fixtures/loosening/adversarial.d.mts +4 -0
  929. package/src/fixtures/loosening/forms.d.mts +16 -0
  930. package/src/fixtures/loosening/swallows.d.mts +5 -0
  931. package/src/helpers/hfs-arch-fixture.d.mts +47 -0
  932. package/src/helpers/hfs-cli-fixture.d.mts +65 -0
  933. package/src/helpers/hfs-hfs-docker-rules-fixture.d.mts +5 -0
  934. package/src/helpers/hfs-secret-fixture.d.mts +19 -0
  935. package/src/helpers/pre-push-fixture.d.mts +21 -0
  936. package/src/helpers/stack-compose.d.mts +6 -0
  937. package/src/helpers/swarm-stack-fixture.d.mts +18 -0
  938. package/src/helpers/tmpdir.d.mts +2 -0
  939. package/src/main.d.mts +58 -0
  940. package/src/main.mjs +494 -346
  941. package/stack/age-install.d.mts +13 -0
  942. package/stack/age-install.mjs +28 -25
  943. package/stack/backup.d.mts +11 -0
  944. package/stack/backup.mjs +76 -69
  945. package/stack/build-args.d.mts +7 -0
  946. package/stack/build-args.mjs +22 -23
  947. package/stack/build.d.mts +8 -0
  948. package/stack/build.mjs +138 -119
  949. package/stack/cli.d.mts +55 -0
  950. package/stack/cli.mjs +187 -130
  951. package/stack/config.d.mts +197 -0
  952. package/stack/config.mjs +47 -33
  953. package/stack/context.d.mts +122 -0
  954. package/stack/context.mjs +63 -65
  955. package/stack/converge.d.mts +13 -0
  956. package/stack/converge.mjs +73 -69
  957. package/stack/deploy.d.mts +88 -0
  958. package/stack/deploy.mjs +272 -224
  959. package/stack/digest.d.mts +8 -0
  960. package/stack/digest.mjs +1 -6
  961. package/stack/docker-transport.d.mts +5 -0
  962. package/stack/docker-transport.mjs +101 -93
  963. package/stack/edge-alias.d.mts +42 -0
  964. package/stack/edge-alias.mjs +62 -60
  965. package/stack/errors.d.mts +18 -0
  966. package/stack/errors.mjs +8 -10
  967. package/stack/image-scan.d.mts +20 -0
  968. package/stack/image-scan.mjs +114 -101
  969. package/stack/ingress-create.d.mts +4 -0
  970. package/stack/ingress-create.mjs +82 -86
  971. package/stack/ingress-publish.d.mts +6 -0
  972. package/stack/ingress-publish.mjs +194 -182
  973. package/stack/ingress.d.mts +55 -0
  974. package/stack/ingress.mjs +534 -524
  975. package/stack/jobs.d.mts +12 -0
  976. package/stack/jobs.mjs +35 -34
  977. package/stack/live-restore.d.mts +35 -0
  978. package/stack/live-restore.mjs +120 -125
  979. package/stack/post-deploy.d.mts +8 -0
  980. package/stack/post-deploy.mjs +25 -25
  981. package/stack/prepare.d.mts +24 -0
  982. package/stack/prepare.mjs +213 -200
  983. package/stack/private-file.d.mts +5 -0
  984. package/stack/private-file.mjs +9 -9
  985. package/stack/provision.d.mts +25 -0
  986. package/stack/provision.mjs +64 -63
  987. package/stack/prune.d.mts +11 -0
  988. package/stack/prune.mjs +38 -27
  989. package/stack/release-store.d.mts +28 -0
  990. package/stack/release-store.mjs +68 -67
  991. package/stack/remote.d.mts +83 -0
  992. package/stack/remote.mjs +176 -162
  993. package/stack/render.d.mts +14 -0
  994. package/stack/render.mjs +132 -124
  995. package/stack/retire.d.mts +9 -0
  996. package/stack/retire.mjs +31 -34
  997. package/stack/sealed.d.mts +46 -0
  998. package/stack/sealed.mjs +78 -82
  999. package/stack/server-key.d.mts +67 -0
  1000. package/stack/server-key.mjs +217 -203
  1001. package/stack/ssh-session.d.mts +29 -0
  1002. package/stack/ssh-session.mjs +133 -123
  1003. package/stack/target-binding.d.mts +21 -0
  1004. package/stack/target-binding.mjs +68 -44
  1005. package/stack/task.d.mts +12 -0
  1006. package/stack/task.mjs +26 -31
  1007. package/stack/urgent-floor.d.mts +106 -0
  1008. package/stack/urgent-floor.mjs +211 -160
  1009. package/stack/urgent-release.d.mts +38 -0
  1010. package/stack/urgent-release.mjs +26 -22
  1011. package/stack/verify.d.mts +14 -0
  1012. package/stack/verify.mjs +75 -65
  1013. package/sync/ci-commands.d.mts +26 -0
  1014. package/sync/ci-commands.mjs +181 -182
  1015. package/sync/cli.d.mts +8 -0
  1016. package/sync/cli.mjs +9 -9
  1017. package/sync/format.d.mts +38 -0
  1018. package/sync/format.mjs +30 -24
  1019. package/sync/hygiene.d.mts +23 -0
  1020. package/sync/hygiene.mjs +113 -99
  1021. package/sync/index.d.mts +237 -0
  1022. package/sync/index.mjs +457 -436
  1023. package/sync/managed.d.mts +23 -0
  1024. package/sync/managed.mjs +104 -94
  1025. package/sync/quality-services.d.mts +35 -0
  1026. package/sync/quality-services.mjs +48 -41
  1027. package/sync/readme-badges.d.mts +13 -0
  1028. package/sync/readme-badges.mjs +45 -44
  1029. package/sync/sonar-key.d.mts +31 -0
  1030. package/sync/sonar-key.mjs +29 -28
  1031. package/sync/stack-images.d.mts +36 -0
  1032. package/sync/stack-images.mjs +85 -95
  1033. package/sync/ts-strict.d.mts +14 -0
  1034. package/sync/ts-strict.mjs +43 -34
  1035. package/templates/app/ci-workflows/github/workflows/ci.yml +1 -1
  1036. package/templates/app/ci-workflows/github/workflows/images.yml +1 -1
  1037. package/templates/app/ci-workflows/github/workflows/stack-deploy.yml +2 -2
  1038. package/templates/app/ci-workflows/github/workflows/stack-key-restore.yml +1 -1
  1039. package/templates/app/ci-workflows-lite/github/workflows/ci.yml +1 -1
  1040. package/templates/app/ci-workflows-lite/github/workflows/db-deploy.yml +3 -3
  1041. package/templates/app/ci-workflows-lite/github/workflows/images.yml +1 -1
  1042. package/templates/app/ci-workflows-lite/github/workflows/stack-deploy.yml +2 -2
  1043. package/templates/app/ci-workflows-lite/github/workflows/stack-key-restore.yml +1 -1
  1044. package/templates/app/codegen-lite/scripts/codegen.mjs +1 -1
  1045. package/templates/app/db-bootstrap/db/bootstrap.sql +1 -1
  1046. package/templates/app/db-image/starcistacks/images/db/Dockerfile +1 -1
  1047. package/templates/app/hooks/husky/pre-commit +2 -2
  1048. package/templates/app/package-scripts/db.json +3 -3
  1049. package/templates/app/package-scripts/package.json +1 -1
  1050. package/templates/app/quality-config/sonar-project.properties +1 -1
  1051. package/templates/app/skeleton/.starcistacks/application-stacks.yaml +2 -2
  1052. package/templates/app/skeleton/.starcistacks/production/README.md +4 -4
  1053. package/templates/app/skeleton/.starcistacks/production/infra/swarm/stack.yaml +8 -3
  1054. package/templates/app/skeleton/README.md +1 -1
  1055. package/templates/app/skeleton-lite/.starcistacks/application-stacks.yaml +2 -2
  1056. package/templates/app/skeleton-lite/.starcistacks/dev/README.md +1 -1
  1057. package/templates/app/skeleton-lite/.starcistacks/dev/infra/swarm/stack.yaml +6 -2
  1058. package/templates/app/skeleton-lite/.starcistacks/dev/runtime/env/KEYS.md +3 -2
  1059. package/templates/app/skeleton-lite/.starcistacks/production/README.md +5 -5
  1060. package/templates/app/skeleton-lite/.starcistacks/production/infra/swarm/stack.yaml +7 -2
  1061. package/templates/app/skeleton-lite/.starcistacks/production/runtime/env/KEYS.md +3 -2
  1062. package/templates/app/skeleton-lite/README.md +2 -2
  1063. package/templates/be/skeleton/apps/cli/src/compose/platform.ts +1 -1
  1064. package/templates/be/skeleton/apps/cli/src/main.ts +6 -4
  1065. package/templates/be/skeleton/src/modules/platform/config/env-source.config.ts +12 -0
  1066. package/templates/be/skeleton/src/modules/platform/database/abstract.entity.ts +19 -0
  1067. package/templates/be/skeleton/src/modules/platform/database/database.module.ts +7 -1
  1068. package/templates/be/skeleton/src/modules/platform/logging/json-logger.service.spec.ts +19 -0
  1069. package/templates/be/skeleton/src/modules/platform/logging/json-logger.service.ts +4 -3
  1070. package/templates/be/skeleton/src/modules/platform/logging/logging.module.ts +1 -1
  1071. package/templates/be/skeleton/src/modules/platform/logging/logging.options.ts +5 -2
  1072. package/templates/be/skeleton-lite/apps/cli/src/compose/platform.ts +1 -1
  1073. package/templates/be/skeleton-lite/src/modules/integrations/passport/passport.config.spec.ts +40 -0
  1074. package/templates/be/skeleton-lite/src/modules/integrations/passport/passport.config.ts +1 -0
  1075. package/templates/be/skeleton-lite/src/modules/integrations/passport/passport.cookie.spec.ts +48 -1
  1076. package/templates/be/skeleton-lite/src/modules/integrations/passport/passport.cookie.ts +5 -0
  1077. package/templates/be/skeleton-lite/src/modules/integrations/passport/passport.options.ts +5 -0
  1078. package/templates/be/skeleton-lite/src/modules/integrations/passport/strategies/google.strategy.ts +1 -1
  1079. package/templates/be/skeleton-lite/src/modules/integrations/passport/strategies/oauth-state.store.ts +7 -3
  1080. package/templates/be/skeleton-lite/src/modules/platform/database/database.module.ts +7 -1
  1081. package/templates/be/table/entity.ts.tpl +4 -15
  1082. package/upgrade/check.d.mts +9 -0
  1083. package/upgrade/check.mjs +8 -8
  1084. package/upgrade/file-state.d.mts +6 -0
  1085. package/upgrade/file-state.mjs +32 -40
  1086. package/upgrade/index.d.mts +13 -0
  1087. package/upgrade/index.mjs +122 -151
  1088. package/vendor-types.d.mts +8 -0
@@ -0,0 +1,1746 @@
1
+ import type { SqlDb, SqlRow, SqlRunResult } from './sqlite-types.mjs';
2
+ import type { Recovery, ResilientDb } from './machine-connection.mjs';
3
+ import { pidAlive } from '../../scripts/lib/pid-alive.mjs';
4
+ import { releaseObservedProvisionLock, renewProvisionLock, releaseProvisionLock } from './provision-lock.mjs';
5
+ export { MACHINE_BUSY_CODE, isMachineBusy, isBusyError } from './machine-connection.mjs';
6
+ type Env = NodeJS.ProcessEnv;
7
+ /** Camel-case columns passed through to a table (the pass-through writers: seat, terminal, worktree ...). */
8
+ type Fields = Record<string, unknown>;
9
+ /** What the read-only functions need of a handle: the connection (a writer, a reader and an observer all have one). */
10
+ type Reader = {
11
+ db: SqlDb;
12
+ };
13
+ /** One registered ledger (a row of the ledgers table, camel-cased). */
14
+ export interface Ledger {
15
+ ledgerId: string;
16
+ name: string;
17
+ product: string | null;
18
+ repoRoot: string;
19
+ file: string;
20
+ state: string;
21
+ schemaVersion: number | null;
22
+ registeredAt: number;
23
+ seenAt: number;
24
+ retiredAt: number | null;
25
+ retiredReason: string | null;
26
+ }
27
+ /** The options every way of opening machine.sqlite shares. */
28
+ export interface OpenMachineOptions {
29
+ file?: string | null;
30
+ env?: Env;
31
+ now?: () => number;
32
+ checkpointer?: boolean;
33
+ tempDirs?: string[] | null;
34
+ }
35
+ /** One machine_logs row to append. */
36
+ export interface LogRow {
37
+ actor: string;
38
+ kind: unknown;
39
+ msg?: unknown;
40
+ level?: string;
41
+ controller?: string | null;
42
+ ledgerId?: string | null;
43
+ workflowId?: string | null;
44
+ jobId?: string | null;
45
+ attemptId?: number | string | null;
46
+ actionId?: string | null;
47
+ traceId?: string | null;
48
+ spanId?: string | null;
49
+ data?: unknown;
50
+ refs?: unknown;
51
+ src?: string | null;
52
+ at?: number;
53
+ }
54
+ /** One push to record. */
55
+ export interface PushInput {
56
+ repoRoot: string;
57
+ branch?: string | null;
58
+ head: string;
59
+ fromSha?: string | null;
60
+ toSha?: string | null;
61
+ result: string;
62
+ reason?: unknown;
63
+ failureSignature?: string | null;
64
+ ms?: number | null;
65
+ actionId?: string | null;
66
+ scan?: unknown;
67
+ stdout?: unknown;
68
+ stderr?: unknown;
69
+ }
70
+ /** One land-gate run to record. */
71
+ export interface LandRunInput {
72
+ ticketId?: string | null;
73
+ lane?: string | null;
74
+ spanId?: string;
75
+ parentSpanId?: string | null;
76
+ commitSha: string;
77
+ commits?: unknown;
78
+ landedSha?: string | null;
79
+ result: string;
80
+ reason?: string | null;
81
+ pushId?: number | null;
82
+ specs?: unknown;
83
+ stdout?: unknown;
84
+ stderr?: unknown;
85
+ startedAt?: number;
86
+ finishedAt?: number;
87
+ }
88
+ /** The handle's own state and fenced transaction, before its typed functions are bound. */
89
+ export interface MachineCore {
90
+ schema: string;
91
+ file: string;
92
+ path: string;
93
+ db: ResilientDb;
94
+ env: Env;
95
+ now: () => number;
96
+ live: boolean;
97
+ readOnly: boolean;
98
+ checkpointer: boolean;
99
+ transaction<T>(fn: (db: SqlDb) => T): T;
100
+ /** Retries that recovered on this handle ({where, retries, at}); close() records them as one machine_logs warn row. */
101
+ recovered: Recovery[];
102
+ close(): void;
103
+ tempDirs: string[];
104
+ }
105
+ /** A typed function of the API bound to a handle: fn(handle, ...args) becomes handle.fn(...args). */
106
+ type Bound<F> = F extends (m: never, ...args: infer A) => infer R ? (...args: A) => R : never;
107
+ /** The typed functions on a writer or reader handle. */
108
+ export type MachineApi = {
109
+ [K in keyof typeof API]: Bound<(typeof API)[K]>;
110
+ };
111
+ /** A machine.sqlite handle: openMachine, openMachineReader and withMachine hand it out. */
112
+ export type Machine = MachineCore & MachineApi;
113
+ /** The observation-only handle: the supported reads, no recovery or incident writes. */
114
+ export interface MachineObserverCore {
115
+ schema: string;
116
+ file: string;
117
+ path: string;
118
+ readOnly: true;
119
+ db: ResilientDb;
120
+ recovered: Recovery[];
121
+ close(): void;
122
+ }
123
+ /** The reads an observer binds. */
124
+ declare const OBSERVER_READS: () => {
125
+ listLedgers: typeof listLedgers;
126
+ services: (m: Reader) => {
127
+ lastProbe: unknown;
128
+ }[];
129
+ seats: (m: Reader) => SqlRow[];
130
+ providerHealth: (m: Reader) => SqlRow[];
131
+ logs: typeof logs;
132
+ latestMetrics: (m: Reader, { kind, ledgerId, workflowId }?: {
133
+ kind?: string;
134
+ ledgerId?: string | null;
135
+ workflowId?: string | null;
136
+ }) => {
137
+ data: unknown;
138
+ } | null;
139
+ throttleState: (m: Reader) => {
140
+ slotTargets: unknown;
141
+ priorities: unknown;
142
+ } | null;
143
+ poolBackoff: (m: Reader, pool?: string | null) => SqlRow | SqlRow[] | null;
144
+ quotas: (m: Reader) => SqlRow[];
145
+ hostLeases: (m: Reader) => SqlRow[];
146
+ budgets: (m: Reader) => SqlRow[];
147
+ };
148
+ export type MachineObserver = MachineObserverCore & {
149
+ [K in keyof ReturnType<typeof OBSERVER_READS>]: Bound<ReturnType<typeof OBSERVER_READS>[K]>;
150
+ };
151
+ export declare const MACHINE_SCHEMA = "starci/machine@1";
152
+ export declare const MACHINE_VERSION = 3;
153
+ /** Test seam: STARCI_MACHINE_BUSY_TIMEOUT_MS (a positive integer) replaces the writer's busy_timeout; unset in production. */
154
+ export declare const INIT_SQL_FILE: string;
155
+ export declare const CONTROLLERS: readonly string[];
156
+ /**
157
+ * Overrides the per-host state base itself (machine.sqlite, projects/, archive/), the one seam starciLocalRoot reads. Debug probes and
158
+ * throwaway repos point this at a temp directory so they never touch the real
159
+ * <runtime root>/.runtime and leak fake ledgers/workflows into it (2026-09-30 incident: probe-*, dbg-ask-*, dbg-env*
160
+ * repos left six fake-worker ledgers in the live store). STARCI_PROJECTS_ROOT (ledger-db.mjs) and
161
+ * STARCI_TEST_MACHINE_FILE (TEST_REGISTRY_ENV) are narrower overrides that still win over this one when set.
162
+ */
163
+ export { LOCAL_ROOT_ENV, starciLocalRoot } from '../runtime-root.mjs';
164
+ /** <local root>/projects: one directory per ledger (decision Q1). */
165
+ export declare const localProjectsRoot: (env?: Env) => string;
166
+ /** The explicit test registry: a machine.sqlite that replaces the host's for this process tree (e2e/setup/isolated-registry.mjs). */
167
+ export declare const TEST_REGISTRY_ENV = "STARCI_TEST_MACHINE_FILE";
168
+ /** True when `file` sits under the OS temp directory or the configured temp root, as written or as its realpath. */
169
+ export declare function isUnderTempDir(file: unknown, { env, tempDirs }?: {
170
+ env?: Env;
171
+ tempDirs?: string[];
172
+ }): boolean;
173
+ /**
174
+ * machine.sqlite for `env`: TEST_REGISTRY_ENV when set; else <starciLocalRoot>/machine.sqlite (beside projects/) — except inside a node --test
175
+ * process tree whose runtime root is not under the temp directory, which gets a shared temp registry instead.
176
+ */
177
+ export declare const machineFileFor: (env?: Env) => string;
178
+ export declare const newTraceId: () => string;
179
+ export declare const newSpanId: () => string;
180
+ export { pidAlive };
181
+ /**
182
+ * The rev of the runtime this process runs, as its callers know it: '<HEAD committer time, ms, 13 digits>:<short sha>' of
183
+ * the harness checkout, which the caller computes and passes in (`rev`,
184
+ * `writerRev`, `sourceRev`). The db never spawns git: with no rev passed the default is STARCI_RUNTIME_REV, else
185
+ * 'unknown'. The time prefix orders two revs, so a writer can refuse a store row written by a NEWER runtime (MB-15);
186
+ * 'unknown' sorts before every real rev.
187
+ */
188
+ export declare function runtimeRev(): string;
189
+ /**
190
+ * Open machine.sqlite read-write (creating it from schema/machine.sql on an empty file). Every connection runs wal_autocheckpoint=0;
191
+ * `checkpointer:true` marks the reconciler engine's connection, the only one allowed to call checkpoint(), and only while
192
+ * the engine_leader row names it (header).
193
+ */
194
+ export declare function openMachine({ file, env, now, checkpointer, tempDirs }?: OpenMachineOptions): Machine;
195
+ /** Open machine.sqlite read-only (query_only); null when the file does not exist yet. */
196
+ export declare function openMachineReader({ file, env, now }?: Pick<OpenMachineOptions, "file" | "env" | "now">): Machine | null;
197
+ /** Observation-only reads: supported schemas, bounded retries and diagnostics without incident or recovery writes. */
198
+ export declare function openMachineObserver({ file, env, now }?: Pick<OpenMachineOptions, "file" | "env" | "now">): MachineObserver | null;
199
+ /** fn(handle) over a writer, closed afterwards. */
200
+ export declare function withMachine<T>(fn: (m: Machine) => T, options?: OpenMachineOptions): T;
201
+ /** fn(handle) over a reader; `fallback` when the store does not exist or cannot be read — but a corrupt store is thrown, never hidden. */
202
+ export declare function readMachine<T>(fn: (m: Machine) => T, fallback?: null, options?: Pick<OpenMachineOptions, 'file' | 'env' | 'now'>): T | null;
203
+ export declare function readMachine<T, F>(fn: (m: Machine) => T, fallback: F, options?: Pick<OpenMachineOptions, 'file' | 'env' | 'now'>): T | F;
204
+ /** Store bytes (Buffer | string | file path via {file}) in the blob store and record the blobs row. Returns the sha. */
205
+ declare function putMachineBlob(m: MachineCore, content: unknown, { mediaType, pinned }?: {
206
+ mediaType?: string;
207
+ pinned?: boolean;
208
+ }): string;
209
+ /** A JSON value as `{json, sha}`: inline when it fits `limit`, else a small stub inline and the full value as a blob. */
210
+ declare function jsonOrBlob(m: MachineCore, value: unknown, limit?: number): {
211
+ json: string | null;
212
+ sha: string | null;
213
+ };
214
+ /** The full JSON value behind a jsonOrBlob stub ({truncated, sha256}); the value itself otherwise. */
215
+ export declare function fullJson(value: unknown): unknown;
216
+ /**
217
+ * Register (or refresh) a ledger. `ledgerId` is the ledger's own meta.ledger_id. A new row needs name and repoRoot;
218
+ * `file` defaults to projectLedgerFile(ledgerId). The live registry refuses a ledger file under the OS temp directory
219
+ * (returns {registered:false, refused}); nothing is written then.
220
+ */
221
+ /** What registerLedger reports: registered, or refused with the reason (and a code when typed). */
222
+ export interface RegisterLedgerResult {
223
+ ledgerId: string;
224
+ registered: boolean;
225
+ file?: string;
226
+ code?: string;
227
+ refused?: string;
228
+ }
229
+ declare function registerLedger(m: MachineCore, { ledgerId, name, repoRoot, file, product, schemaVersion }?: {
230
+ ledgerId?: string | null;
231
+ name?: string | null;
232
+ repoRoot?: string | null;
233
+ file?: string | null;
234
+ product?: string | null;
235
+ schemaVersion?: number | string | null;
236
+ }): RegisterLedgerResult;
237
+ /**
238
+ * The ledger for a repository root, name or id; null when unregistered. `create:true` with repoRoot (and name) mints a
239
+ * new ledger id, registers it at projectLedgerFile(id) and returns it — the caller then creates runtime.sqlite there
240
+ * with meta.ledger_id = ledgerId.
241
+ */
242
+ declare function resolveLedger(m: MachineCore, { ledgerId, name, repoRoot, create, product }?: {
243
+ ledgerId?: string | null;
244
+ name?: string | null;
245
+ repoRoot?: string | null;
246
+ create?: boolean;
247
+ product?: string | null;
248
+ }): Ledger | null;
249
+ declare function listLedgers(m: Reader, { state, includeRetired }?: {
250
+ state?: string | null;
251
+ includeRetired?: boolean;
252
+ }): Ledger[];
253
+ declare function touchLedger(m: MachineCore, ledgerId: string, { at }?: {
254
+ at?: number;
255
+ }): boolean;
256
+ declare function setLedgerState(m: MachineCore, ledgerId: string, state: string, { reason }?: {
257
+ reason?: string | null;
258
+ }): boolean;
259
+ declare function upsertRepository(m: MachineCore, { repoRoot, name, role, ledgerId, defaultBranch, remote }: {
260
+ repoRoot: string;
261
+ name: string;
262
+ role: string;
263
+ ledgerId?: string | null;
264
+ defaultBranch?: string | null;
265
+ remote?: string | null;
266
+ }): SqlRunResult;
267
+ /**
268
+ * Run fn({ledger, db}) over every registered ledger opened READ-ONLY, one at a time (B8: no ATTACH-UNION). A ledger that
269
+ * cannot be opened yields {ledger, error}. Returns the array of results.
270
+ */
271
+ declare function forEachLedger<T>(m: MachineCore, fn: (context: {
272
+ ledger: Ledger;
273
+ db: SqlDb;
274
+ }) => T, { state }?: {
275
+ state?: string;
276
+ }): Array<{
277
+ ledger: Ledger;
278
+ result: T;
279
+ } | {
280
+ ledger: Ledger;
281
+ error: string;
282
+ }>;
283
+ /** Manual queries only: ATTACH up to 9 ledgers read-only to this handle as l0..l8. Returns the attached names. */
284
+ declare function attachLedgers(m: MachineCore, ledgers?: Ledger[]): {
285
+ ledgerId: string;
286
+ name: string;
287
+ product: string | null;
288
+ repoRoot: string;
289
+ file: string;
290
+ state: string;
291
+ schemaVersion: number | null;
292
+ registeredAt: number;
293
+ seenAt: number;
294
+ retiredAt: number | null;
295
+ retiredReason: string | null;
296
+ alias: string;
297
+ }[];
298
+ /** Append one sup_events row; the digest chain is computed here (JS), inside the caller's or a new transaction. */
299
+ declare function supEvent(m: MachineCore, { entityType, entityId, kind, payload, spanId, at, eventId }: {
300
+ entityType?: string;
301
+ entityId?: string | number;
302
+ kind: string;
303
+ payload?: unknown;
304
+ spanId?: string | null;
305
+ at?: number;
306
+ eventId?: string | null;
307
+ }): {
308
+ seq: number;
309
+ eventId: string;
310
+ digest: string;
311
+ };
312
+ declare function supEvents(m: Reader, { kind, kinds, entityType, entityId, since, limit, order }?: {
313
+ kind?: string | null;
314
+ kinds?: string[] | null;
315
+ entityType?: string | null;
316
+ entityId?: string | number | null;
317
+ since?: number | null;
318
+ limit?: number;
319
+ order?: string;
320
+ }): {
321
+ payload: unknown;
322
+ }[];
323
+ declare const newestSupEvent: (m: Reader, kind: string) => {
324
+ payload: unknown;
325
+ } | null;
326
+ declare function upsertSupJob(m: MachineCore, { jobId, traceId, kind, role, cluster, title, status, lane, files, brief, payload }: {
327
+ jobId: string;
328
+ traceId?: string | null;
329
+ kind: string;
330
+ role?: string;
331
+ cluster?: string | null;
332
+ title: string;
333
+ status?: string;
334
+ lane?: string | null;
335
+ files?: unknown;
336
+ brief?: string | null;
337
+ payload?: unknown;
338
+ }): SqlRunResult;
339
+ declare function setSupJobStatus(m: MachineCore, jobId: string, status: string, { payload }?: {
340
+ payload?: unknown;
341
+ }): boolean;
342
+ declare const supJob: (m: Reader, jobId: string) => {
343
+ files: unknown;
344
+ payload: unknown;
345
+ } | null;
346
+ declare function listSupJobs(m: Reader, { status, statuses, kind }?: {
347
+ status?: string | null;
348
+ statuses?: string[] | null;
349
+ kind?: string | null;
350
+ }): {
351
+ files: unknown;
352
+ payload: unknown;
353
+ }[];
354
+ declare function acquireSupLeases(m: MachineCore, jobId: string, paths: string[], { ttlMs }?: {
355
+ ttlMs?: number;
356
+ }): {
357
+ ok: boolean;
358
+ conflicts: ({
359
+ path: string | undefined;
360
+ holder: any;
361
+ } | null)[];
362
+ } | {
363
+ ok: boolean;
364
+ conflicts?: never;
365
+ };
366
+ declare const releaseSupLeases: (m: MachineCore, jobId: string) => number;
367
+ declare function startSupAttempt(m: MachineCore, { jobId, spanId, parentSpanId, ...rest }: {
368
+ jobId: string;
369
+ spanId?: string;
370
+ parentSpanId?: string | null;
371
+ [column: string]: unknown;
372
+ }): {
373
+ attemptId: number;
374
+ dispatchSeq: number;
375
+ spanId: string;
376
+ };
377
+ declare const updateSupAttempt: (m: MachineCore, attemptId: number, fields: Fields) => boolean;
378
+ declare const latestSupAttempt: (m: Reader, jobId: string) => SqlRow | null;
379
+ declare function recordSupReport(m: MachineCore, { attemptId, jobId, outcome, report, reportText }: {
380
+ attemptId: number;
381
+ jobId: string;
382
+ outcome: string;
383
+ report?: unknown;
384
+ reportText?: string | null;
385
+ }): {
386
+ reportId: number;
387
+ reportSha: string | null;
388
+ };
389
+ declare const supReports: (m: Reader, { jobId, unconsumed }?: {
390
+ jobId?: string | null;
391
+ unconsumed?: boolean;
392
+ }) => {
393
+ report: unknown;
394
+ }[];
395
+ declare const consumeSupReport: (m: MachineCore, reportId: number) => boolean;
396
+ /**
397
+ * Open a Supervisor Decision Item, idempotent on its key (MB-07: '<kind>:<entity>:<signature>:<head>', no empty part).
398
+ * Returns {diId, created}. An existing open item with the same key is returned unchanged.
399
+ */
400
+ declare function openSupDecision(m: MachineCore, { keyParts, kind, decider, summary, ledgerId, workflowId, entityType, entityId, openedBy, dueAt, escalateTo, evidence, options, allowedVerbs, payload }: {
401
+ keyParts: Record<string, unknown>;
402
+ kind: string;
403
+ decider?: string;
404
+ summary: string;
405
+ ledgerId?: string | null;
406
+ workflowId?: string | null;
407
+ entityType?: string | null;
408
+ entityId?: string | null;
409
+ openedBy?: string;
410
+ dueAt?: number | null;
411
+ escalateTo?: string | null;
412
+ evidence?: unknown;
413
+ options?: unknown;
414
+ allowedVerbs?: unknown;
415
+ payload?: unknown;
416
+ }): {
417
+ diId: any;
418
+ created: boolean;
419
+ status: any;
420
+ };
421
+ declare function setSupDecision(m: MachineCore, diId: string, { status, by, verb, choice, rationale, result, supersededBy, spanId }: {
422
+ status: string;
423
+ by?: string | null;
424
+ verb?: string | null;
425
+ choice?: string | null;
426
+ rationale?: string | null;
427
+ result?: unknown;
428
+ supersededBy?: string | null;
429
+ spanId?: string;
430
+ }): {
431
+ changed: boolean;
432
+ decisionId: string | null;
433
+ };
434
+ declare const markSupDecisionDelivered: (m: MachineCore, diId: string) => boolean;
435
+ declare function listSupDecisions(m: Reader, { open, kind }?: {
436
+ open?: boolean;
437
+ kind?: string | null;
438
+ }): {
439
+ keyParts: unknown;
440
+ payload: unknown;
441
+ evidence: unknown;
442
+ }[];
443
+ declare function openOwed(m: MachineCore, { owedId, kind, subject, cluster, dueAt, detail }: {
444
+ owedId: string;
445
+ kind: string;
446
+ subject: string;
447
+ cluster?: string | null;
448
+ dueAt?: number | null;
449
+ detail?: unknown;
450
+ }): {
451
+ owedId: string;
452
+ created: boolean;
453
+ state: any;
454
+ };
455
+ declare const ackOwed: (m: MachineCore, owedId: string, { by }?: {
456
+ by?: string;
457
+ }) => boolean;
458
+ declare function upsertLearning(m: MachineCore, { itemId, kind, parentId, title, state, sourceRef, lane, landedSha, detail }: {
459
+ itemId: string;
460
+ kind: string;
461
+ parentId?: string | null;
462
+ title: string;
463
+ state?: string | null;
464
+ sourceRef?: string | null;
465
+ lane?: string | null;
466
+ landedSha?: string | null;
467
+ detail?: unknown;
468
+ }): SqlRunResult;
469
+ declare function upsertBridge(m: MachineCore, { bridgeId, ledgerId, action, state, approvedBy, detail }: {
470
+ bridgeId: string;
471
+ ledgerId?: string | null;
472
+ action: string;
473
+ state: string;
474
+ approvedBy?: string | null;
475
+ detail?: unknown;
476
+ }): SqlRunResult;
477
+ declare function recordSupMessage(m: MachineCore, { msgId, direction, channel, chatId, messageId, from, to, via, text, ok, at }: {
478
+ msgId?: string;
479
+ direction: string;
480
+ channel: string;
481
+ chatId?: string | null;
482
+ messageId?: string | null;
483
+ from?: string | null;
484
+ to?: string | null;
485
+ via?: string | null;
486
+ text: string;
487
+ ok?: boolean | null;
488
+ at?: number;
489
+ }): string;
490
+ declare const supMessages: (m: Reader, { direction, unread, limit }?: {
491
+ direction?: string | null;
492
+ unread?: boolean;
493
+ limit?: number;
494
+ }) => SqlRow[];
495
+ declare function setSupSignal(m: MachineCore, { scope, key, value, token, holderPid, expiresAt }: {
496
+ scope: string;
497
+ key?: string;
498
+ value?: unknown;
499
+ token?: string | null;
500
+ holderPid?: number;
501
+ expiresAt?: number | null;
502
+ }): SqlRunResult;
503
+ declare const supSignal: (m: Reader, scope: string, key?: string) => {
504
+ value: unknown;
505
+ } | null;
506
+ declare function recordMachineLlmUsage(m: MachineCore, { subjectType, supAttemptId, turnRef, spanId, provider, requestModel, responseModel, source, ...counts }: {
507
+ subjectType: string;
508
+ supAttemptId?: number | null;
509
+ turnRef?: string | null;
510
+ spanId?: string | null;
511
+ provider: string;
512
+ requestModel?: string | null;
513
+ responseModel?: string | null;
514
+ source?: string;
515
+ [count: string]: unknown;
516
+ }): number;
517
+ /** A long-lived runtime process starts (MB-04, G1). Returns run_id. */
518
+ declare function startProcessRun(m: MachineCore, { role, pid, rev, epoch, parentActionId, startReason }: {
519
+ role: string;
520
+ pid?: number;
521
+ rev?: string;
522
+ epoch?: number | null;
523
+ parentActionId?: string | null;
524
+ startReason?: string;
525
+ }): number;
526
+ declare const heartbeatProcessRun: (m: MachineCore, runId: number, { draining }?: {
527
+ draining?: boolean | null;
528
+ }) => boolean;
529
+ /** A process run ends, once (trigger process_runs_end_once). exitReason: clean|reload-handover|crash|killed|lost-lease|stopped|unknown. */
530
+ declare function endProcessRun(m: MachineCore, runId: number, { exitCode, exitReason, killedBy }: {
531
+ exitCode?: number | null;
532
+ exitReason: string;
533
+ killedBy?: string | null;
534
+ }): boolean;
535
+ declare const openProcessRuns: (m: Reader, { role }?: {
536
+ role?: string | null;
537
+ }) => SqlRow[];
538
+ declare const leaderOf: (m: Reader, name?: string) => SqlRow | null;
539
+ /**
540
+ * Acquire or renew the leader lease (fencing epoch). A fresh/expired lease is taken with a new epoch and a leader_history
541
+ * row; renewal by the holder keeps the epoch. Returns {leader:boolean, epoch, row}.
542
+ */
543
+ declare function acquireLeader(m: MachineCore, { name, holder, pid, leaseMs, rev, processRunId, handover }: {
544
+ name?: string;
545
+ holder: string;
546
+ pid?: number;
547
+ leaseMs: number;
548
+ rev?: string;
549
+ processRunId?: number | null;
550
+ handover?: boolean;
551
+ }): {
552
+ leader: boolean;
553
+ epoch: any;
554
+ renewed: boolean;
555
+ holder?: never;
556
+ pid?: never;
557
+ } | {
558
+ leader: boolean;
559
+ epoch: any;
560
+ holder: any;
561
+ pid: any;
562
+ renewed?: never;
563
+ };
564
+ /** Renew only if still the holder at `epoch` (fence). Also records pass stats. */
565
+ declare function renewLeader(m: MachineCore, { name, epoch, leaseMs, passes, lastPassMs, lastError, draining }: {
566
+ name?: string;
567
+ epoch: number;
568
+ leaseMs: number;
569
+ passes?: number | null;
570
+ lastPassMs?: number | null;
571
+ lastError?: string | null | undefined;
572
+ draining?: boolean | null;
573
+ }): boolean;
574
+ /** Release the lease held at `epoch`; closes its leader_history row with the reason (reload|lost|killed|stop|crash). */
575
+ declare function releaseLeader(m: MachineCore, { name, epoch, reason }: {
576
+ name?: string;
577
+ epoch: number;
578
+ reason?: string;
579
+ }): boolean;
580
+ declare const cursorOf: (m: Reader, ledgerId: string) => any;
581
+ declare const setCursor: (m: MachineCore, ledgerId: string, lastSeq: number) => SqlRunResult;
582
+ declare const cursors: (m: Reader) => SqlRow[];
583
+ declare function enqueue(m: MachineCore, { controller, key, dueAt, reason }: {
584
+ controller: string;
585
+ key: string;
586
+ dueAt?: number;
587
+ reason?: string | null;
588
+ }): SqlRunResult;
589
+ declare const requeue: (m: MachineCore, { controller, key, dueAt, error }: {
590
+ controller: string;
591
+ key: string;
592
+ dueAt: number;
593
+ error?: string | null;
594
+ }) => boolean;
595
+ /** MB-01: the schedule row of a periodic duty; created with next_due_at = now + interval when absent (never "first run now"). */
596
+ declare function ensureSchedule(m: MachineCore, { controller, duty, intervalMs, firstDueAt }: {
597
+ controller: string;
598
+ duty: string;
599
+ intervalMs: number;
600
+ firstDueAt?: number | null;
601
+ }): SqlRow | undefined;
602
+ /** Claim a due duty (no overlap): true when this caller should run it now. */
603
+ /**
604
+ * Claim a due duty (no overlap): true when this caller should run it now. A claim whose holder process is dead, or that
605
+ * is older than `ttlMs` (default: the interval, at least 1 h), is released first, so a crashed run never blocks the duty.
606
+ */
607
+ declare function claimSchedule(m: MachineCore, { controller, duty, actionId, pid, ttlMs, alive }: {
608
+ controller: string;
609
+ duty: string;
610
+ actionId?: string | null;
611
+ pid?: number;
612
+ ttlMs?: number | null;
613
+ alive?: (pid: number) => boolean;
614
+ }): boolean;
615
+ declare function finishSchedule(m: MachineCore, { controller, duty, result, digest, nextDueAt }: {
616
+ controller: string;
617
+ duty: string;
618
+ result?: string;
619
+ digest?: string | null;
620
+ nextDueAt?: number | null;
621
+ }): boolean;
622
+ declare const schedules: (m: Reader) => SqlRow[];
623
+ /** Record an action intent (idempotent on id). */
624
+ declare function actionIntent(m: MachineCore, { id, controller, duty, key, verb, argvDigest, epoch, observedGeneration, spanId, traceId, mode, ledgerId, workflowId, jobId, attemptId }: {
625
+ id?: string | null;
626
+ controller: string;
627
+ duty?: string | null;
628
+ key?: string | null;
629
+ verb?: string | null;
630
+ argvDigest?: string | null;
631
+ epoch?: number | null;
632
+ observedGeneration?: number | null;
633
+ spanId?: string;
634
+ traceId?: string | null;
635
+ mode?: string | null;
636
+ ledgerId?: string | null;
637
+ workflowId?: string | null;
638
+ jobId?: string | null;
639
+ attemptId?: number | string | null;
640
+ }): string;
641
+ declare const actionRunning: (m: MachineCore, id: string, { requestId, childRunId }?: {
642
+ requestId?: string | null;
643
+ childRunId?: number | string | null;
644
+ }) => boolean;
645
+ /**
646
+ * Finish an action (MB-03): `result` is kept IN FULL as a blob (result_sha); result_json holds only a ≤8 KiB summary.
647
+ * stdout/stderr are stored in full as blobs.
648
+ */
649
+ declare function actionFinish(m: MachineCore, id: string, { state, exitCode, result: rawResult, summary: rawSummary, stdout, stderr, errorSignature }: {
650
+ state?: string;
651
+ exitCode?: number | null;
652
+ result?: unknown;
653
+ summary?: unknown;
654
+ stdout?: unknown;
655
+ stderr?: unknown;
656
+ errorSignature?: string | null;
657
+ }): boolean;
658
+ declare const actionOf: (m: MachineCore, id: string) => {
659
+ result: unknown;
660
+ } | null;
661
+ declare function actions(m: MachineCore, { controller, state, sinceMs, limit }?: {
662
+ controller?: string | null;
663
+ state?: string | null;
664
+ sinceMs?: number | null;
665
+ limit?: number;
666
+ }): {
667
+ result: unknown;
668
+ }[];
669
+ declare function actionStep(m: MachineCore, actionId: string, { step, ms, ok, detail }: {
670
+ step: string;
671
+ ms?: number | null;
672
+ ok?: boolean | null;
673
+ detail?: unknown;
674
+ }): number;
675
+ declare const controllerModes: (m: Reader) => Record<string, string>;
676
+ /** Change a controller mode: a mode_changes row first (who and why, G6), then controller_modes (trigger enforces the order). */
677
+ declare function setControllerMode(m: MachineCore, { controller, mode, by, reason }: {
678
+ controller: string;
679
+ mode: string;
680
+ by: string;
681
+ reason: string;
682
+ }): {
683
+ changed: boolean;
684
+ mode: string;
685
+ from?: never;
686
+ } | {
687
+ changed: boolean;
688
+ from: any;
689
+ mode: string;
690
+ };
691
+ /** Open an SLA episode for (entity,state) unless one is open (G3). Returns the episode id. */
692
+ declare function openSlaEpisode(m: MachineCore, { entity, state, code, severity, ledgerId, workflowId, slaMs, enteredAt }: {
693
+ entity: string;
694
+ state: string;
695
+ code: string;
696
+ severity?: string;
697
+ ledgerId?: string | null;
698
+ workflowId?: string | null;
699
+ slaMs: number;
700
+ enteredAt?: number;
701
+ }): number;
702
+ declare const markSlaViolated: (m: MachineCore, episodeId: number) => boolean;
703
+ declare const markSlaReported: (m: MachineCore, episodeId: number, { diId }?: {
704
+ diId?: string | null;
705
+ }) => boolean;
706
+ declare function clearSla(m: MachineCore, { entity, state, reason }: {
707
+ entity: string;
708
+ state?: string | null;
709
+ reason?: string;
710
+ }): number;
711
+ declare function recordViolation(m: MachineCore, { code, severity, entity, ledgerId, workflowId, episodeId, diId, lessonId, detail }: {
712
+ code: string;
713
+ severity?: string;
714
+ entity: string;
715
+ ledgerId?: string | null;
716
+ workflowId?: string | null;
717
+ episodeId?: number | null;
718
+ diId?: string | null;
719
+ lessonId?: string | null;
720
+ detail?: unknown;
721
+ }): number;
722
+ /** Set a service's state; a change appends service_events (G5). */
723
+ declare function setService(m: MachineCore, { name, kind, state, pid, port, url, probe, quarantinedUntil, action, actionId, probeMs, probeError }: {
724
+ name: string;
725
+ kind: string;
726
+ state: string;
727
+ pid?: number | null;
728
+ port?: number | null;
729
+ url?: string | null;
730
+ probe?: unknown;
731
+ quarantinedUntil?: number | null;
732
+ action?: string | null;
733
+ actionId?: string | null;
734
+ probeMs?: number | null;
735
+ probeError?: string | null;
736
+ }): {
737
+ changed: boolean;
738
+ from: any;
739
+ };
740
+ declare const recordProbe: (m: MachineCore, { name, ok, latencyMs, detail }: {
741
+ name: string;
742
+ ok: boolean;
743
+ latencyMs?: number | null;
744
+ detail?: unknown;
745
+ }) => SqlRunResult;
746
+ declare const services: (m: Reader) => {
747
+ lastProbe: unknown;
748
+ }[];
749
+ declare const upsertSeat: (m: MachineCore, seat: Fields) => SqlRunResult;
750
+ declare const seatOf: (m: Reader, seatId: string) => {
751
+ detail: unknown;
752
+ } | null;
753
+ declare const seats: (m: Reader) => SqlRow[];
754
+ /** One delivery attempt to a seat (G11, MB-02); the trigger counts consecutive input failures on the seat. */
755
+ declare function recordDelivery(m: MachineCore, { messageKind, messageRef, ledgerId, seatId, terminalHandle, channel, outcome, turnId, detail }: {
756
+ messageKind: string;
757
+ messageRef: unknown;
758
+ ledgerId?: string | null;
759
+ seatId?: string | null;
760
+ terminalHandle?: string | null;
761
+ channel: string;
762
+ outcome: string;
763
+ turnId?: number | null;
764
+ detail?: unknown;
765
+ }): number;
766
+ /**
767
+ * MB-05: count one wake of a seat. The outcome becomes a deliveries row; the deliveries trigger keeps
768
+ * seats.input_failures_consecutive / _total (a refused input adds one, a delivered one resets). A seat whose
769
+ * terminal changed starts from zero. Returns {failures, since, replace} with replace at `max` in a row.
770
+ */
771
+ declare function recordSeatInput(m: MachineCore, { seatId, terminal, action, messageKind, messageRef, channel, role, max, detail }: {
772
+ seatId: string;
773
+ terminal?: string | null;
774
+ action: string;
775
+ messageKind?: string;
776
+ messageRef?: string;
777
+ channel?: string;
778
+ role?: string;
779
+ max?: number;
780
+ detail?: string | null;
781
+ }): {
782
+ failures: number;
783
+ since: any;
784
+ replace: boolean;
785
+ };
786
+ declare function seatTranscriptSnapshot(m: MachineCore, { seatId, terminalHandle, text }: {
787
+ seatId: string;
788
+ terminalHandle?: string | null;
789
+ text: unknown;
790
+ }): string;
791
+ declare const upsertTerminal: (m: MachineCore, terminal: Fields) => SqlRunResult;
792
+ declare const closeTerminal: (m: MachineCore, handle: string, { by, verified }?: {
793
+ by?: string | null;
794
+ verified?: boolean;
795
+ }) => boolean;
796
+ /**
797
+ * Take a host lock (replaces connectors/*.lock and *.starting.json): succeeds when free, released, expired, or already
798
+ * ours. Returns {ok, holder?}.
799
+ */
800
+ declare function acquireHostLock(m: MachineCore, { name, holder, pid, ttlMs, processRunId, state, retainExpired }: {
801
+ name: string;
802
+ holder?: string | null;
803
+ pid?: number;
804
+ ttlMs?: number;
805
+ processRunId?: number | null;
806
+ state?: string;
807
+ retainExpired?: boolean;
808
+ }): {
809
+ ok: boolean;
810
+ holder: SqlRow;
811
+ } | {
812
+ ok: boolean;
813
+ holder?: never;
814
+ };
815
+ declare const renewHostLock: (m: MachineCore, { name, pid, ttlMs, state }: {
816
+ name: string;
817
+ pid?: number;
818
+ ttlMs?: number;
819
+ state?: string | undefined;
820
+ }) => boolean;
821
+ declare const releaseHostLock: (m: MachineCore, { name, pid, force }: {
822
+ name: string;
823
+ pid?: number;
824
+ force?: boolean;
825
+ }) => boolean;
826
+ declare const hostLock: (m: Reader, name: string) => SqlRow | null;
827
+ declare function claimResource(m: MachineCore, { resourcePath, kind, ownerActionId, ownerPid, ownerRunId, hasJunctions }: {
828
+ resourcePath: string;
829
+ kind: string;
830
+ ownerActionId?: string | null;
831
+ ownerPid?: number;
832
+ ownerRunId?: number | null;
833
+ hasJunctions?: boolean;
834
+ }): number;
835
+ declare const releaseClaim: (m: MachineCore, claimId: number) => boolean;
836
+ declare const throttleState: (m: Reader) => {
837
+ slotTargets: unknown;
838
+ priorities: unknown;
839
+ } | null;
840
+ /** Write the current throttle row (MB-15: writer + rev). A mode change appends throttle_events first (G7). */
841
+ declare function setThrottle(m: MachineCore, { mode, effectiveCap, heavyCap, running, freeRamPct, freeRamMb, cpuPct, cpuHot, reason, writer, writerRev, slotTargets, priorities, sample }: {
842
+ mode: string;
843
+ effectiveCap?: number | null;
844
+ heavyCap?: number | null;
845
+ running?: number | null;
846
+ freeRamPct?: number | null;
847
+ freeRamMb?: number | null;
848
+ cpuPct?: number | null;
849
+ cpuHot?: boolean | number | null;
850
+ reason?: string | null;
851
+ writer: string;
852
+ writerRev?: string;
853
+ slotTargets?: unknown;
854
+ priorities?: unknown;
855
+ sample?: unknown;
856
+ }): {
857
+ changed: boolean;
858
+ refused: string;
859
+ from: any;
860
+ } | {
861
+ changed: boolean;
862
+ from: any;
863
+ refused?: never;
864
+ };
865
+ declare const recordThrottleDecision: (m: MachineCore, { ledgerId, workflowId, jobId, reason, waitedMs }: {
866
+ ledgerId?: string | null;
867
+ workflowId?: string | null;
868
+ jobId?: string | null;
869
+ reason: string;
870
+ waitedMs?: number | null;
871
+ }) => number;
872
+ declare const releaseThrottleDecision: (m: MachineCore, seq: number) => boolean;
873
+ declare const recordHostSample: (m: MachineCore, sample: Fields) => number;
874
+ declare function setProviderHealth(m: MachineCore, { provider, status, failureKind, strikes, strikeLimit, circuitOpenUntil, reason, ledgerId, attemptId, detail }: {
875
+ provider: string;
876
+ status: string;
877
+ failureKind?: string | null;
878
+ strikes?: number;
879
+ strikeLimit?: number | null;
880
+ circuitOpenUntil?: number | null;
881
+ reason?: string | null;
882
+ ledgerId?: string | null;
883
+ attemptId?: string | null;
884
+ detail?: unknown;
885
+ }): {
886
+ changed: boolean;
887
+ };
888
+ declare const providerHealth: (m: Reader) => SqlRow[];
889
+ declare const poolBackoff: (m: Reader, pool?: string | null) => SqlRow | SqlRow[] | null;
890
+ declare const setPoolBackoff: (m: MachineCore, { pool, untilAt, strikes, reason }: {
891
+ pool: string;
892
+ untilAt?: number | null;
893
+ strikes?: number;
894
+ reason?: string | null;
895
+ }) => SqlRunResult;
896
+ declare const clearPoolBackoff: (m: MachineCore, pool: string) => boolean;
897
+ declare const setQuota: (m: MachineCore, { provider, window, used, limitValue, resetAt, source }: {
898
+ provider: string;
899
+ window: string;
900
+ used?: number | null;
901
+ limitValue?: number | null;
902
+ resetAt?: number | null;
903
+ source?: string | null;
904
+ }) => SqlRunResult;
905
+ declare const quotas: (m: Reader) => SqlRow[];
906
+ declare const reserveProvider: (m: import("./sqlite-types.mjs").StoreHandle, { provider, account, attemptId, role, model, maxParallel, scope, quota, estimate, override }?: import("./provider-reservations.mjs").ReserveOptions) => {
907
+ ok: boolean;
908
+ reason: string;
909
+ reservation: import("./provider-reservations.mjs").ProviderReservation | null;
910
+ reused?: never;
911
+ running?: never;
912
+ maxParallel?: never;
913
+ } | {
914
+ ok: boolean;
915
+ reason: string;
916
+ reused: boolean;
917
+ reservation: import("./provider-reservations.mjs").ProviderReservation | null;
918
+ running?: never;
919
+ maxParallel?: never;
920
+ } | {
921
+ ok: boolean;
922
+ reason: string;
923
+ running: number;
924
+ maxParallel: number;
925
+ reservation?: never;
926
+ reused?: never;
927
+ }, providerReservations: (m: import("./sqlite-types.mjs").StoreHandle, { provider, account, activeOnly, tier, limit }?: import("./provider-reservations.mjs").ReservationFilter) => import("./provider-reservations.mjs").ProviderReservation[], providerReservationUsage: (m: import("./sqlite-types.mjs").StoreHandle, { provider, account }?: {
928
+ provider?: string | null | undefined;
929
+ account?: string;
930
+ }) => {
931
+ running: number;
932
+ reservations: import("./provider-reservations.mjs").ProviderReservation[];
933
+ observed: true;
934
+ }, markProviderReservation: (m: import("./sqlite-types.mjs").StoreHandle, { id, fence, attemptId, provider, account, model, role, state, launchIdentity, hostRequestId, handle, pid }?: import("./provider-reservations.mjs").MarkOptions) => {
935
+ ok: boolean;
936
+ reason: string;
937
+ reservation?: never;
938
+ } | {
939
+ ok: boolean;
940
+ reason: string;
941
+ reservation: import("./provider-reservations.mjs").ProviderReservation | null;
942
+ } | {
943
+ ok: boolean;
944
+ reservation: import("./provider-reservations.mjs").ProviderReservation | null;
945
+ reason?: never;
946
+ }, releaseProviderReservation: (m: import("./sqlite-types.mjs").StoreHandle, { id, fence, attemptId, proof }?: import("./provider-reservations.mjs").ReservationKey & {
947
+ proof?: import("./provider-reservations.mjs").ReservationProof | null;
948
+ }) => {
949
+ ok: boolean;
950
+ reason: string;
951
+ reused?: never;
952
+ reservation?: never;
953
+ } | {
954
+ ok: boolean;
955
+ reused: boolean;
956
+ reservation: import("./provider-reservations.mjs").ProviderReservation | null;
957
+ reason?: never;
958
+ } | {
959
+ ok: boolean;
960
+ reason: string;
961
+ reservation: import("./provider-reservations.mjs").ProviderReservation | null;
962
+ reused?: never;
963
+ };
964
+ /** Host leases (the machine side of a ledger's two-phase reserve): drop by token. */
965
+ declare function releaseHostLeases(m: MachineCore, tokens: unknown): {
966
+ ok: true;
967
+ released: number;
968
+ };
969
+ declare const setBudget: (m: MachineCore, { scopeKey, limitValue, window }: {
970
+ scopeKey: string;
971
+ limitValue: number;
972
+ window?: string | null;
973
+ }) => SqlRunResult;
974
+ /** Reserve units against a budget; refuses when used+reserved+units > limit. */
975
+ declare function reserveBudget(m: MachineCore, { scopeKey, ledgerId, jobId, units }: {
976
+ scopeKey: string;
977
+ ledgerId: string;
978
+ jobId: string;
979
+ units: number;
980
+ }): {
981
+ ok: boolean;
982
+ reason: string;
983
+ already?: never;
984
+ budget?: never;
985
+ } | {
986
+ ok: boolean;
987
+ already: boolean;
988
+ reason?: never;
989
+ budget?: never;
990
+ } | {
991
+ ok: boolean;
992
+ reason: string;
993
+ budget: SqlRow;
994
+ already?: never;
995
+ } | {
996
+ ok: boolean;
997
+ reason?: never;
998
+ already?: never;
999
+ budget?: never;
1000
+ };
1001
+ /** Settle a reservation: `used` units move to used_value, the rest is returned. */
1002
+ declare function settleBudget(m: MachineCore, { scopeKey, ledgerId, jobId, used }: {
1003
+ scopeKey: string;
1004
+ ledgerId: string;
1005
+ jobId: string;
1006
+ used?: number | null;
1007
+ }): boolean;
1008
+ declare const budgets: (m: Reader) => SqlRow[];
1009
+ declare const startGcRun: (m: MachineCore, { trigger, actionId, collectors, startedAt }?: {
1010
+ trigger?: string;
1011
+ actionId?: string | null;
1012
+ collectors?: unknown;
1013
+ startedAt?: number;
1014
+ }) => number;
1015
+ /** Finish a GC run; the full report is a blob (G4). */
1016
+ declare function finishGcRun(m: MachineCore, runId: number, { freedBytes, counts, errors, report, finishedAt }?: {
1017
+ freedBytes?: number | null;
1018
+ counts?: unknown;
1019
+ errors?: unknown;
1020
+ report?: unknown;
1021
+ finishedAt?: number;
1022
+ }): boolean;
1023
+ /** One thing GC touched (G4, MB-14). `outcome` is the final fate; a retry sets nextTryAt past the grace window. */
1024
+ declare const recordGcItem: (m: MachineCore, item: Fields) => number;
1025
+ declare function gcMark(m: MachineCore, runId: number, entries: Array<{
1026
+ sha256: string;
1027
+ source: string;
1028
+ pinned?: boolean;
1029
+ }>): number;
1030
+ declare const gcRuns: (m: Reader, { limit }?: {
1031
+ limit?: number;
1032
+ }) => SqlRow[];
1033
+ declare function upsertLane(m: MachineCore, { name, worktreePath, branch, baseSha, headSha, owner, supJobId, state }: {
1034
+ name: string;
1035
+ worktreePath: string;
1036
+ branch: string;
1037
+ baseSha?: string | null;
1038
+ headSha?: string | null;
1039
+ owner: string;
1040
+ supJobId?: string | null;
1041
+ state?: string;
1042
+ }): SqlRunResult;
1043
+ declare function setLaneState(m: MachineCore, name: string, state: string, { reportText, headSha }?: {
1044
+ reportText?: string | null;
1045
+ headSha?: string | null;
1046
+ }): boolean;
1047
+ declare const laneOf: (m: Reader, name: string) => SqlRow | null;
1048
+ declare const lanes: (m: Reader, { state }?: {
1049
+ state?: string | null;
1050
+ }) => SqlRow[];
1051
+ /** Enqueue a land ticket (replaces the land queue dirs). The lane row is created when absent (FK). */
1052
+ declare function enqueueLand(m: MachineCore, { ticketId, lane, commitSha, commits, requestedBy }: {
1053
+ ticketId?: string;
1054
+ lane?: string | null;
1055
+ commitSha: string;
1056
+ commits?: unknown;
1057
+ requestedBy?: string;
1058
+ }): string;
1059
+ /** The head of the queue enters the gate when nothing is running. Returns the ticket, or {busy: running ticket}. */
1060
+ /** requested_by 'pid:<n>' names the process that waits for and then runs the ticket. */
1061
+ declare function claimLandGate(m: MachineCore, { ticketId, alive }: {
1062
+ ticketId: string;
1063
+ alive?: (pid: number) => boolean;
1064
+ }): {
1065
+ ok: boolean;
1066
+ busy: SqlRow;
1067
+ behind?: never;
1068
+ ticket?: never;
1069
+ } | {
1070
+ ok: boolean;
1071
+ behind: any;
1072
+ busy?: never;
1073
+ ticket?: never;
1074
+ } | {
1075
+ ok: boolean;
1076
+ ticket: SqlRow | undefined;
1077
+ busy?: never;
1078
+ behind?: never;
1079
+ };
1080
+ declare const finishLandTicket: (m: MachineCore, ticketId: string, state: string) => boolean;
1081
+ declare const landQueue: (m: Reader, { open }?: {
1082
+ open?: boolean;
1083
+ }) => SqlRow[];
1084
+ /** One land-gate run with full stdout/stderr blobs. */
1085
+ declare function recordLandRun(m: MachineCore, { ticketId, lane, spanId, parentSpanId, commitSha, commits, landedSha, result, reason, pushId, specs, stdout, stderr, startedAt, finishedAt }: LandRunInput): number;
1086
+ /**
1087
+ * The core record of one land in ONE transaction, idempotent on spanId (a replay from the outbox or a second try never
1088
+ * doubles it): the lane row when absent, the push row, the land_runs row, the lane head and the log line (its data gets
1089
+ * runId). {runId, pushId, duplicate}.
1090
+ */
1091
+ declare function recordLandOutcome(m: MachineCore, { spanId, lane, push, run, laneHead, log: logRow }: {
1092
+ spanId: string;
1093
+ lane?: string | null;
1094
+ push?: PushInput | null;
1095
+ run: LandRunInput;
1096
+ laneHead?: string | null;
1097
+ log?: (LogRow & {
1098
+ data?: Record<string, unknown>;
1099
+ }) | null;
1100
+ }): {
1101
+ runId: number;
1102
+ pushId: number | null;
1103
+ duplicate: boolean;
1104
+ };
1105
+ declare const landRuns: (m: Reader, { lane, limit }?: {
1106
+ lane?: string | null;
1107
+ limit?: number;
1108
+ }) => SqlRow[];
1109
+ /** One push (G8, MB-03): a refusal needs a stable failure signature; logs are full blobs. */
1110
+ declare function recordPush(m: MachineCore, { repoRoot, branch, head, fromSha, toSha, result, reason, failureSignature, ms, actionId, scan, stdout, stderr }: PushInput): number;
1111
+ declare const pushes: (m: Reader, { repoRoot, limit }?: {
1112
+ repoRoot?: string | null;
1113
+ limit?: number;
1114
+ }) => SqlRow[];
1115
+ declare const removedWorktree: (m: MachineCore, wtPath: string, { error, archivedRef }?: {
1116
+ error?: string | null;
1117
+ archivedRef?: string | null;
1118
+ }) => boolean;
1119
+ /**
1120
+ * The worktree registry (scripts/machine/worktree-registry.mjs and the worktree api files are its callers): reserve a row for a worktree about to be created,
1121
+ * atomically against the per-repo cap. BEGIN IMMEDIATE: two dispatches never both take the last slot. `cap` null: no cap.
1122
+ * {ok, live} | {ok:false, reason:'worktree-cap', live, cap}
1123
+ */
1124
+ declare function reserveWorktree(m: MachineCore, wt: Fields & {
1125
+ path: string;
1126
+ repoRoot: string;
1127
+ }, { cap }?: {
1128
+ cap?: number | null;
1129
+ }): {
1130
+ ok: boolean;
1131
+ reason: string;
1132
+ live: number;
1133
+ cap: number;
1134
+ } | {
1135
+ ok: boolean;
1136
+ live: number;
1137
+ reason?: never;
1138
+ cap?: never;
1139
+ };
1140
+ /** Live (not removed) registry rows, optionally of one repo. */
1141
+ declare const liveWorktrees: (m: Reader, { repoRoot }?: {
1142
+ repoRoot?: string | null;
1143
+ }) => SqlRow[];
1144
+ declare const worktreeRow: (m: Reader, wtPath: string) => SqlRow | null;
1145
+ /** Every repo the registry ever held a worktree of. */
1146
+ declare const worktreeRepos: (m: Reader) => string[];
1147
+ /** A reservation whose `git worktree add` failed: the row goes, nothing was created. */
1148
+ /** A GC collector's resume point (machine_meta gc_cursor:<name>): where its last bounded pass stopped, or null. */
1149
+ declare const gcCursor: (m: Reader, name: string) => any;
1150
+ declare const setGcCursor: (m: MachineCore, name: string, value: unknown) => boolean;
1151
+ /** The worktree GC's stop mark (a removal changed the main checkout): {at, damage, path} or null. set(null) clears it. */
1152
+ declare const worktreeGcStop: (m: Reader) => unknown;
1153
+ declare const setWorktreeGcStop: (m: MachineCore, stop: unknown) => boolean;
1154
+ declare const dropWorktree: (m: MachineCore, wtPath: string) => boolean;
1155
+ declare const upsertEnvServer: (m: MachineCore, server: Fields) => SqlRunResult;
1156
+ declare const envServer: (m: Reader, serverId: string) => SqlRow | null;
1157
+ declare const envServers: (m: Reader, { live }?: {
1158
+ live?: boolean;
1159
+ }) => SqlRow[];
1160
+ declare const upsertUatSlot: (m: MachineCore, slot: Fields) => SqlRunResult;
1161
+ declare const releaseUatSlot: (m: MachineCore, slotId: string) => boolean;
1162
+ declare const connectorOf: (m: Reader, name: string) => {
1163
+ config: unknown;
1164
+ cursor: unknown;
1165
+ } | null;
1166
+ declare const upsertAsk: (m: MachineCore, ask: Fields) => SqlRunResult;
1167
+ /**
1168
+ * Append machine_logs rows ({actor, kind, msg, level?, controller?, ledgerId?, workflowId?, jobId?, attemptId?, actionId?,
1169
+ * traceId?, spanId?, data?, refs?, src?, at?}). `src` is a unique idempotency key (a duplicate is skipped). data larger than
1170
+ * 64 KiB goes to a blob. Returns the number written.
1171
+ */
1172
+ declare function log(m: MachineCore, rows: LogRow | null | undefined | ReadonlyArray<LogRow | null | undefined>): number;
1173
+ declare function logs(m: Reader, { actor, kind, level, ledgerId, workflowId, jobId, since, search, limit }?: {
1174
+ actor?: string | null;
1175
+ kind?: string | null;
1176
+ level?: string | null;
1177
+ ledgerId?: string | null;
1178
+ workflowId?: string | null;
1179
+ jobId?: string | null;
1180
+ since?: number | null;
1181
+ search?: string | null;
1182
+ limit?: number;
1183
+ }): {
1184
+ data: unknown;
1185
+ refs: unknown;
1186
+ }[];
1187
+ /** Retention (DBTREE B6): debug rows older than 14 days, the rest older than 90 days. Returns rows deleted. */
1188
+ declare function pruneLogs(m: MachineCore, { debugMs, restMs }?: {
1189
+ debugMs?: number;
1190
+ restMs?: number;
1191
+ }): number;
1192
+ declare function recordMetrics(m: MachineCore, { kind, ledgerId, workflowId, windowMs, subject, data }: {
1193
+ kind: string;
1194
+ ledgerId?: string | null;
1195
+ workflowId?: string | null;
1196
+ windowMs?: number | null;
1197
+ subject?: string | null;
1198
+ data: unknown;
1199
+ }): number;
1200
+ /** A notification, deduplicated on dedupeKey (replaces telegram-sent.json). Returns {id, duplicate}. */
1201
+ declare function recordNotification(m: MachineCore, { channel, kind, text, media, mediaType, sentAt, delivery, ref, dedupeKey }: {
1202
+ channel: string;
1203
+ kind: string;
1204
+ text: string;
1205
+ media?: unknown;
1206
+ mediaType?: string;
1207
+ sentAt?: number | null;
1208
+ delivery?: string | null;
1209
+ ref?: string | null;
1210
+ dedupeKey?: string | null;
1211
+ }): {
1212
+ id: number;
1213
+ duplicate: boolean;
1214
+ };
1215
+ declare function projectCatalog(m: MachineCore, { agents, models, sourceRev }: {
1216
+ agents?: Array<{
1217
+ agent: string;
1218
+ provider?: string | null;
1219
+ spawnCard?: string | null;
1220
+ cliName?: string | null;
1221
+ }>;
1222
+ models?: Array<{
1223
+ profile: string;
1224
+ agent?: string | null;
1225
+ model?: string | null;
1226
+ pool?: string | null;
1227
+ maxParallel?: number | null;
1228
+ roles?: unknown;
1229
+ cost?: unknown;
1230
+ }>;
1231
+ sourceRev?: string;
1232
+ }): {
1233
+ agents: number;
1234
+ models: number;
1235
+ };
1236
+ /**
1237
+ * The ONE checkpoint of machine.sqlite: PASSIVE, on the checkpointer handle (openMachine({checkpointer:true}), the engine),
1238
+ * and only while the engine_leader row `name` still names `holder` at `epoch` with a live lease. A standby, a draining or a
1239
+ * superseded engine gets {skipped} and checkpoints nothing, so two engines never checkpoint back to back (WAL-reset bug).
1240
+ * Returns {busy, log, checkpointed} or {skipped: reason}.
1241
+ */
1242
+ declare function checkpoint(m: MachineCore, { name, holder, epoch }?: {
1243
+ name?: string;
1244
+ holder?: string;
1245
+ epoch?: number | string;
1246
+ }): SqlRow | undefined;
1247
+ /** machine_meta as an object. */
1248
+ declare const meta: (m: Reader) => Record<string, string>;
1249
+ /** withMachine(API[op](m, ...args)); when the store refuses it, the write goes to the outbox. {ok, value} | {ok:false, deferred, error}. */
1250
+ export declare function writeOrDefer(op: string, args?: unknown[], { env, file }?: {
1251
+ env?: Env;
1252
+ file?: string | null;
1253
+ }): {
1254
+ ok: boolean;
1255
+ value: unknown;
1256
+ deferred?: never;
1257
+ error?: never;
1258
+ } | {
1259
+ ok: boolean;
1260
+ deferred: string;
1261
+ error: string;
1262
+ value?: never;
1263
+ };
1264
+ /**
1265
+ * Apply every outbox line through its typed writer (each in its own transaction). A line that fails again goes back to
1266
+ * the outbox; a claimed file of a dead flusher is taken over. {flushed, failed, pending}.
1267
+ */
1268
+ declare function flushOutbox(m: MachineCore): {
1269
+ flushed: number;
1270
+ failed: number;
1271
+ pending: string;
1272
+ busy: string;
1273
+ } | {
1274
+ flushed: number;
1275
+ failed: number;
1276
+ pending: string | null;
1277
+ busy?: never;
1278
+ };
1279
+ declare const API: {
1280
+ insert: (m: MachineCore, table: string, row: Fields, opts?: {
1281
+ orIgnore?: boolean;
1282
+ }) => SqlRunResult;
1283
+ upsert: (m: MachineCore, table: string, row: Fields, keys: readonly string[]) => SqlRunResult;
1284
+ update: (m: MachineCore, table: string, set: Fields, where: Fields) => SqlRunResult;
1285
+ putMachineBlob: typeof putMachineBlob;
1286
+ jsonOrBlob: typeof jsonOrBlob;
1287
+ meta: (m: Reader) => Record<string, string>;
1288
+ checkpoint: typeof checkpoint;
1289
+ registerLedger: typeof registerLedger;
1290
+ resolveLedger: typeof resolveLedger;
1291
+ listLedgers: typeof listLedgers;
1292
+ touchLedger: typeof touchLedger;
1293
+ setLedgerState: typeof setLedgerState;
1294
+ upsertRepository: typeof upsertRepository;
1295
+ forEachLedger: typeof forEachLedger;
1296
+ attachLedgers: typeof attachLedgers;
1297
+ supEvent: typeof supEvent;
1298
+ supEvents: typeof supEvents;
1299
+ newestSupEvent: (m: Reader, kind: string) => {
1300
+ payload: unknown;
1301
+ } | null;
1302
+ upsertSupJob: typeof upsertSupJob;
1303
+ setSupJobStatus: typeof setSupJobStatus;
1304
+ supJob: (m: Reader, jobId: string) => {
1305
+ files: unknown;
1306
+ payload: unknown;
1307
+ } | null;
1308
+ listSupJobs: typeof listSupJobs;
1309
+ acquireSupLeases: typeof acquireSupLeases;
1310
+ releaseSupLeases: (m: MachineCore, jobId: string) => number;
1311
+ supLeases: (m: Reader) => SqlRow[];
1312
+ startSupAttempt: typeof startSupAttempt;
1313
+ updateSupAttempt: (m: MachineCore, attemptId: number, fields: Fields) => boolean;
1314
+ latestSupAttempt: (m: Reader, jobId: string) => SqlRow | null;
1315
+ recordSupReport: typeof recordSupReport;
1316
+ supReports: (m: Reader, { jobId, unconsumed }?: {
1317
+ jobId?: string | null;
1318
+ unconsumed?: boolean;
1319
+ }) => {
1320
+ report: unknown;
1321
+ }[];
1322
+ consumeSupReport: (m: MachineCore, reportId: number) => boolean;
1323
+ openSupDecision: typeof openSupDecision;
1324
+ setSupDecision: typeof setSupDecision;
1325
+ markSupDecisionDelivered: (m: MachineCore, diId: string) => boolean;
1326
+ listSupDecisions: typeof listSupDecisions;
1327
+ openOwed: typeof openOwed;
1328
+ ackOwed: (m: MachineCore, owedId: string, { by }?: {
1329
+ by?: string;
1330
+ }) => boolean;
1331
+ closeOwed: (m: MachineCore, owedId: string) => boolean;
1332
+ listOwed: (m: Reader, { open }?: {
1333
+ open?: boolean;
1334
+ }) => {
1335
+ detail: unknown;
1336
+ }[];
1337
+ upsertLearning: typeof upsertLearning;
1338
+ listLearning: (m: Reader, { kind }?: {
1339
+ kind?: string | null;
1340
+ }) => {
1341
+ detail: unknown;
1342
+ }[];
1343
+ recordOwnerRuling: (m: MachineCore, { rulingId, saidAt, channel, verbatim, paraphrase, appliesTo, contractRef, recordedBy }: {
1344
+ rulingId?: string;
1345
+ saidAt: number | string;
1346
+ channel?: string | null;
1347
+ verbatim: string;
1348
+ paraphrase?: string | null;
1349
+ appliesTo?: string | null;
1350
+ contractRef?: string | null;
1351
+ recordedBy?: string | null;
1352
+ }) => string;
1353
+ upsertBridge: typeof upsertBridge;
1354
+ recordSupMessage: typeof recordSupMessage;
1355
+ supMessages: (m: Reader, { direction, unread, limit }?: {
1356
+ direction?: string | null;
1357
+ unread?: boolean;
1358
+ limit?: number;
1359
+ }) => SqlRow[];
1360
+ markSupMessagesRead: (m: MachineCore, ids: Iterable<string>) => number;
1361
+ setSupSignal: typeof setSupSignal;
1362
+ supSignal: (m: Reader, scope: string, key?: string) => {
1363
+ value: unknown;
1364
+ } | null;
1365
+ clearSupSignal: (m: MachineCore, scope: string, key?: string) => boolean;
1366
+ recordMachineLlmUsage: typeof recordMachineLlmUsage;
1367
+ startProcessRun: typeof startProcessRun;
1368
+ heartbeatProcessRun: (m: MachineCore, runId: number, { draining }?: {
1369
+ draining?: boolean | null;
1370
+ }) => boolean;
1371
+ endProcessRun: typeof endProcessRun;
1372
+ openProcessRuns: (m: Reader, { role }?: {
1373
+ role?: string | null;
1374
+ }) => SqlRow[];
1375
+ processRuns: (m: MachineCore, { role, sinceMs, limit }?: {
1376
+ role?: string | null;
1377
+ sinceMs?: number | null;
1378
+ limit?: number;
1379
+ }) => SqlRow[];
1380
+ leaderOf: (m: Reader, name?: string) => SqlRow | null;
1381
+ acquireLeader: typeof acquireLeader;
1382
+ renewLeader: typeof renewLeader;
1383
+ releaseLeader: typeof releaseLeader;
1384
+ leaderHistory: (m: Reader, { limit }?: {
1385
+ limit?: number;
1386
+ }) => SqlRow[];
1387
+ cursorOf: (m: Reader, ledgerId: string) => any;
1388
+ setCursor: (m: MachineCore, ledgerId: string, lastSeq: number) => SqlRunResult;
1389
+ cursors: (m: Reader) => SqlRow[];
1390
+ enqueue: typeof enqueue;
1391
+ dueQueue: (m: MachineCore, { controller, limit }?: {
1392
+ controller?: string | null;
1393
+ limit?: number;
1394
+ }) => SqlRow[];
1395
+ queueRows: (m: Reader) => SqlRow[];
1396
+ dequeue: (m: MachineCore, controller: string, key: string) => boolean;
1397
+ requeue: (m: MachineCore, { controller, key, dueAt, error }: {
1398
+ controller: string;
1399
+ key: string;
1400
+ dueAt: number;
1401
+ error?: string | null;
1402
+ }) => boolean;
1403
+ ensureSchedule: typeof ensureSchedule;
1404
+ claimSchedule: typeof claimSchedule;
1405
+ finishSchedule: typeof finishSchedule;
1406
+ schedules: (m: Reader) => SqlRow[];
1407
+ actionIntent: typeof actionIntent;
1408
+ actionRunning: (m: MachineCore, id: string, { requestId, childRunId }?: {
1409
+ requestId?: string | null;
1410
+ childRunId?: number | string | null;
1411
+ }) => boolean;
1412
+ actionFinish: typeof actionFinish;
1413
+ markStaleActionsUnknown: (m: MachineCore, { olderThanMs, exceptEpoch }?: {
1414
+ olderThanMs?: number;
1415
+ exceptEpoch?: number | null;
1416
+ }) => number;
1417
+ actionOf: (m: MachineCore, id: string) => {
1418
+ result: unknown;
1419
+ } | null;
1420
+ actions: typeof actions;
1421
+ actionStep: typeof actionStep;
1422
+ controllerModes: (m: Reader) => Record<string, string>;
1423
+ setControllerMode: typeof setControllerMode;
1424
+ modeChanges: (m: Reader, { limit }?: {
1425
+ limit?: number;
1426
+ }) => SqlRow[];
1427
+ openSlaEpisode: typeof openSlaEpisode;
1428
+ markSlaViolated: (m: MachineCore, episodeId: number) => boolean;
1429
+ markSlaReported: (m: MachineCore, episodeId: number, { diId }?: {
1430
+ diId?: string | null;
1431
+ }) => boolean;
1432
+ clearSla: typeof clearSla;
1433
+ openSla: (m: Reader) => SqlRow[];
1434
+ recordViolation: typeof recordViolation;
1435
+ clearViolation: (m: MachineCore, violationId: number) => boolean;
1436
+ setService: typeof setService;
1437
+ recordProbe: (m: MachineCore, { name, ok, latencyMs, detail }: {
1438
+ name: string;
1439
+ ok: boolean;
1440
+ latencyMs?: number | null;
1441
+ detail?: unknown;
1442
+ }) => SqlRunResult;
1443
+ services: (m: Reader) => {
1444
+ lastProbe: unknown;
1445
+ }[];
1446
+ serviceEvents: (m: MachineCore, { name, sinceMs }?: {
1447
+ name?: string | null;
1448
+ sinceMs?: number;
1449
+ }) => SqlRow[];
1450
+ upsertSeat: (m: MachineCore, seat: Fields) => SqlRunResult;
1451
+ seatOf: (m: Reader, seatId: string) => {
1452
+ detail: unknown;
1453
+ } | null;
1454
+ seats: (m: Reader) => SqlRow[];
1455
+ recordDelivery: typeof recordDelivery;
1456
+ recordSeatInput: typeof recordSeatInput;
1457
+ startSeatTurn: (m: MachineCore, { seatId, wokenByDelivery, spanId }: {
1458
+ seatId: string;
1459
+ wokenByDelivery?: number | null;
1460
+ spanId?: string;
1461
+ }) => number;
1462
+ endSeatTurn: (m: MachineCore, turnId: number, { endReason, actionsCount }?: {
1463
+ endReason?: string;
1464
+ actionsCount?: number | null;
1465
+ }) => boolean;
1466
+ seatTranscriptSnapshot: typeof seatTranscriptSnapshot;
1467
+ upsertTerminal: (m: MachineCore, terminal: Fields) => SqlRunResult;
1468
+ closeTerminal: (m: MachineCore, handle: string, { by, verified }?: {
1469
+ by?: string | null;
1470
+ verified?: boolean;
1471
+ }) => boolean;
1472
+ acquireHostLock: typeof acquireHostLock;
1473
+ renewHostLock: (m: MachineCore, { name, pid, ttlMs, state }: {
1474
+ name: string;
1475
+ pid?: number;
1476
+ ttlMs?: number;
1477
+ state?: string | undefined;
1478
+ }) => boolean;
1479
+ releaseHostLock: (m: MachineCore, { name, pid, force }: {
1480
+ name: string;
1481
+ pid?: number;
1482
+ force?: boolean;
1483
+ }) => boolean;
1484
+ releaseObservedProvisionLock: typeof releaseObservedProvisionLock;
1485
+ renewProvisionLock: typeof renewProvisionLock;
1486
+ releaseProvisionLock: typeof releaseProvisionLock;
1487
+ hostLock: (m: Reader, name: string) => SqlRow | null;
1488
+ hostLocks: (m: Reader) => SqlRow[];
1489
+ claimResource: typeof claimResource;
1490
+ releaseClaim: (m: MachineCore, claimId: number) => boolean;
1491
+ sweptClaim: (m: MachineCore, claimId: number, { error }?: {
1492
+ error?: string | null;
1493
+ }) => boolean;
1494
+ liveClaims: (m: Reader) => SqlRow[];
1495
+ upsertAgentSession: (m: MachineCore, session: Fields) => SqlRunResult;
1496
+ throttleState: (m: Reader) => {
1497
+ slotTargets: unknown;
1498
+ priorities: unknown;
1499
+ } | null;
1500
+ setThrottle: typeof setThrottle;
1501
+ throttleEvents: (m: MachineCore, { sinceMs }?: {
1502
+ sinceMs?: number;
1503
+ }) => SqlRow[];
1504
+ recordThrottleDecision: (m: MachineCore, { ledgerId, workflowId, jobId, reason, waitedMs }: {
1505
+ ledgerId?: string | null;
1506
+ workflowId?: string | null;
1507
+ jobId?: string | null;
1508
+ reason: string;
1509
+ waitedMs?: number | null;
1510
+ }) => number;
1511
+ releaseThrottleDecision: (m: MachineCore, seq: number) => boolean;
1512
+ recordHostSample: (m: MachineCore, sample: Fields) => number;
1513
+ hostSamples: (m: MachineCore, { kind, sinceMs }?: {
1514
+ kind?: string;
1515
+ sinceMs?: number;
1516
+ }) => SqlRow[];
1517
+ setProviderHealth: typeof setProviderHealth;
1518
+ providerHealth: (m: Reader) => SqlRow[];
1519
+ poolBackoff: (m: Reader, pool?: string | null) => SqlRow | SqlRow[] | null;
1520
+ setPoolBackoff: (m: MachineCore, { pool, untilAt, strikes, reason }: {
1521
+ pool: string;
1522
+ untilAt?: number | null;
1523
+ strikes?: number;
1524
+ reason?: string | null;
1525
+ }) => SqlRunResult;
1526
+ clearPoolBackoff: (m: MachineCore, pool: string) => boolean;
1527
+ setQuota: (m: MachineCore, { provider, window, used, limitValue, resetAt, source }: {
1528
+ provider: string;
1529
+ window: string;
1530
+ used?: number | null;
1531
+ limitValue?: number | null;
1532
+ resetAt?: number | null;
1533
+ source?: string | null;
1534
+ }) => SqlRunResult;
1535
+ quotas: (m: Reader) => SqlRow[];
1536
+ reserveProvider: (m: import("./sqlite-types.mjs").StoreHandle, { provider, account, attemptId, role, model, maxParallel, scope, quota, estimate, override }?: import("./provider-reservations.mjs").ReserveOptions) => {
1537
+ ok: boolean;
1538
+ reason: string;
1539
+ reservation: import("./provider-reservations.mjs").ProviderReservation | null;
1540
+ reused?: never;
1541
+ running?: never;
1542
+ maxParallel?: never;
1543
+ } | {
1544
+ ok: boolean;
1545
+ reason: string;
1546
+ reused: boolean;
1547
+ reservation: import("./provider-reservations.mjs").ProviderReservation | null;
1548
+ running?: never;
1549
+ maxParallel?: never;
1550
+ } | {
1551
+ ok: boolean;
1552
+ reason: string;
1553
+ running: number;
1554
+ maxParallel: number;
1555
+ reservation?: never;
1556
+ reused?: never;
1557
+ };
1558
+ providerReservations: (m: import("./sqlite-types.mjs").StoreHandle, { provider, account, activeOnly, tier, limit }?: import("./provider-reservations.mjs").ReservationFilter) => import("./provider-reservations.mjs").ProviderReservation[];
1559
+ providerReservationUsage: (m: import("./sqlite-types.mjs").StoreHandle, { provider, account }?: {
1560
+ provider?: string | null | undefined;
1561
+ account?: string;
1562
+ }) => {
1563
+ running: number;
1564
+ reservations: import("./provider-reservations.mjs").ProviderReservation[];
1565
+ observed: true;
1566
+ };
1567
+ markProviderReservation: (m: import("./sqlite-types.mjs").StoreHandle, { id, fence, attemptId, provider, account, model, role, state, launchIdentity, hostRequestId, handle, pid }?: import("./provider-reservations.mjs").MarkOptions) => {
1568
+ ok: boolean;
1569
+ reason: string;
1570
+ reservation?: never;
1571
+ } | {
1572
+ ok: boolean;
1573
+ reason: string;
1574
+ reservation: import("./provider-reservations.mjs").ProviderReservation | null;
1575
+ } | {
1576
+ ok: boolean;
1577
+ reservation: import("./provider-reservations.mjs").ProviderReservation | null;
1578
+ reason?: never;
1579
+ };
1580
+ releaseProviderReservation: (m: import("./sqlite-types.mjs").StoreHandle, { id, fence, attemptId, proof }?: import("./provider-reservations.mjs").ReservationKey & {
1581
+ proof?: import("./provider-reservations.mjs").ReservationProof | null;
1582
+ }) => {
1583
+ ok: boolean;
1584
+ reason: string;
1585
+ reused?: never;
1586
+ reservation?: never;
1587
+ } | {
1588
+ ok: boolean;
1589
+ reused: boolean;
1590
+ reservation: import("./provider-reservations.mjs").ProviderReservation | null;
1591
+ reason?: never;
1592
+ } | {
1593
+ ok: boolean;
1594
+ reason: string;
1595
+ reservation: import("./provider-reservations.mjs").ProviderReservation | null;
1596
+ reused?: never;
1597
+ };
1598
+ upsertGuardJob: (m: MachineCore, { jobId, ledgerId, workflowId, attemptId, allow, hooks, ttlMs }: {
1599
+ jobId: string;
1600
+ ledgerId?: string | null;
1601
+ workflowId?: string | null;
1602
+ attemptId?: string | null;
1603
+ allow: unknown;
1604
+ hooks?: unknown;
1605
+ ttlMs?: number;
1606
+ }) => SqlRunResult;
1607
+ guardJob: (m: MachineCore, jobId: string) => {
1608
+ allow: unknown;
1609
+ hooks: unknown;
1610
+ } | null;
1611
+ releaseGuardJob: (m: MachineCore, jobId: string) => boolean;
1612
+ recordGuardRefusal: (m: MachineCore, refusal: Fields) => number;
1613
+ releaseHostLeases: typeof releaseHostLeases;
1614
+ release: typeof releaseHostLeases;
1615
+ hostLeases: (m: Reader) => SqlRow[];
1616
+ setBudget: (m: MachineCore, { scopeKey, limitValue, window }: {
1617
+ scopeKey: string;
1618
+ limitValue: number;
1619
+ window?: string | null;
1620
+ }) => SqlRunResult;
1621
+ reserveBudget: typeof reserveBudget;
1622
+ settleBudget: typeof settleBudget;
1623
+ budgets: (m: Reader) => SqlRow[];
1624
+ startGcRun: (m: MachineCore, { trigger, actionId, collectors, startedAt }?: {
1625
+ trigger?: string;
1626
+ actionId?: string | null;
1627
+ collectors?: unknown;
1628
+ startedAt?: number;
1629
+ }) => number;
1630
+ finishGcRun: typeof finishGcRun;
1631
+ recordGcItem: (m: MachineCore, item: Fields) => number;
1632
+ addGcItem: (m: MachineCore, item: Fields) => number;
1633
+ updateGcItem: (m: MachineCore, itemId: number, fields: Fields) => boolean;
1634
+ gcItems: (m: Reader, { runId, open, collector, limit }?: {
1635
+ runId?: number | null;
1636
+ open?: boolean;
1637
+ collector?: string | null;
1638
+ limit?: number;
1639
+ }) => SqlRow[];
1640
+ gcMark: typeof gcMark;
1641
+ addGcMarks: typeof gcMark;
1642
+ gcRuns: (m: Reader, { limit }?: {
1643
+ limit?: number;
1644
+ }) => SqlRow[];
1645
+ markMachineBlobArchived: (m: MachineCore, { sha256: sha, archivedAt, archiveRef }: {
1646
+ sha256: string;
1647
+ archivedAt?: number;
1648
+ archiveRef: string;
1649
+ }) => boolean;
1650
+ pruneSeatSnapshots: (m: MachineCore, { now, seatMs }: {
1651
+ now?: number;
1652
+ seatMs: number;
1653
+ }) => number;
1654
+ upsertLane: typeof upsertLane;
1655
+ setLaneState: typeof setLaneState;
1656
+ laneOf: (m: Reader, name: string) => SqlRow | null;
1657
+ lanes: (m: Reader, { state }?: {
1658
+ state?: string | null;
1659
+ }) => SqlRow[];
1660
+ enqueueLand: typeof enqueueLand;
1661
+ claimLandGate: typeof claimLandGate;
1662
+ finishLandTicket: (m: MachineCore, ticketId: string, state: string) => boolean;
1663
+ landQueue: (m: Reader, { open }?: {
1664
+ open?: boolean;
1665
+ }) => SqlRow[];
1666
+ recordLandRun: typeof recordLandRun;
1667
+ recordLandOutcome: typeof recordLandOutcome;
1668
+ landRuns: (m: Reader, { lane, limit }?: {
1669
+ lane?: string | null;
1670
+ limit?: number;
1671
+ }) => SqlRow[];
1672
+ recordPush: typeof recordPush;
1673
+ pushes: (m: Reader, { repoRoot, limit }?: {
1674
+ repoRoot?: string | null;
1675
+ limit?: number;
1676
+ }) => SqlRow[];
1677
+ flushOutbox: typeof flushOutbox;
1678
+ upsertWorktree: (m: MachineCore, wt: Fields & {
1679
+ path: string;
1680
+ }) => SqlRunResult;
1681
+ removedWorktree: (m: MachineCore, wtPath: string, { error, archivedRef }?: {
1682
+ error?: string | null;
1683
+ archivedRef?: string | null;
1684
+ }) => boolean;
1685
+ reserveWorktree: typeof reserveWorktree;
1686
+ liveWorktrees: (m: Reader, { repoRoot }?: {
1687
+ repoRoot?: string | null;
1688
+ }) => SqlRow[];
1689
+ worktreeRow: (m: Reader, wtPath: string) => SqlRow | null;
1690
+ worktreeRepos: (m: Reader) => string[];
1691
+ dropWorktree: (m: MachineCore, wtPath: string) => boolean;
1692
+ worktreeGcStop: (m: Reader) => unknown;
1693
+ setWorktreeGcStop: (m: MachineCore, stop: unknown) => boolean;
1694
+ gcCursor: (m: Reader, name: string) => any;
1695
+ setGcCursor: (m: MachineCore, name: string, value: unknown) => boolean;
1696
+ upsertEnvServer: (m: MachineCore, server: Fields) => SqlRunResult;
1697
+ envServer: (m: Reader, serverId: string) => SqlRow | null;
1698
+ envServers: (m: Reader, { live }?: {
1699
+ live?: boolean;
1700
+ }) => SqlRow[];
1701
+ upsertUatSlot: (m: MachineCore, slot: Fields) => SqlRunResult;
1702
+ uatSlots: (m: Reader, { live }?: {
1703
+ live?: boolean;
1704
+ }) => SqlRow[];
1705
+ releaseUatSlot: (m: MachineCore, slotId: string) => boolean;
1706
+ upsertConnector: (m: MachineCore, { name, kind, state, pid, port, publicUrl, config, cursor }: {
1707
+ name: string;
1708
+ kind?: string | null;
1709
+ state?: string | null;
1710
+ pid?: number | null;
1711
+ port?: number | null;
1712
+ publicUrl?: string | null;
1713
+ config?: unknown;
1714
+ cursor?: unknown;
1715
+ }) => SqlRunResult;
1716
+ connectorOf: (m: Reader, name: string) => {
1717
+ config: unknown;
1718
+ cursor: unknown;
1719
+ } | null;
1720
+ upsertAsk: (m: MachineCore, ask: Fields) => SqlRunResult;
1721
+ log: typeof log;
1722
+ logs: typeof logs;
1723
+ pruneLogs: typeof pruneLogs;
1724
+ recordMetrics: typeof recordMetrics;
1725
+ latestMetrics: (m: Reader, { kind, ledgerId, workflowId }?: {
1726
+ kind?: string;
1727
+ ledgerId?: string | null;
1728
+ workflowId?: string | null;
1729
+ }) => {
1730
+ data: unknown;
1731
+ } | null;
1732
+ recordNotification: typeof recordNotification;
1733
+ notificationSent: (m: Reader, dedupeKey: string) => boolean;
1734
+ markNotificationSent: (m: MachineCore, id: number, { delivery }?: {
1735
+ delivery?: string;
1736
+ }) => boolean;
1737
+ recordArchive: (m: MachineCore, archive: Fields) => SqlRunResult;
1738
+ projectCatalog: typeof projectCatalog;
1739
+ };
1740
+ /** Every typed function at module level too: fn(handle, ...args) — blob-gc and callers holding a handle. */
1741
+ export { putMachineBlob, meta, checkpoint, registerLedger, resolveLedger, listLedgers, setLedgerState, upsertRepository, forEachLedger, attachLedgers, supEvent, supEvents, newestSupEvent, upsertSupJob, setSupJobStatus, supJob, listSupJobs, acquireSupLeases, releaseSupLeases, startSupAttempt, updateSupAttempt, latestSupAttempt, recordSupReport, supReports, consumeSupReport, openSupDecision, setSupDecision, markSupDecisionDelivered, listSupDecisions, ackOwed, upsertLearning, recordSupMessage, supMessages, setSupSignal, supSignal, recordMachineLlmUsage, startProcessRun, heartbeatProcessRun, endProcessRun, openProcessRuns, leaderOf, acquireLeader, renewLeader, releaseLeader, cursorOf, setCursor, cursors, enqueue, requeue, ensureSchedule, claimSchedule, finishSchedule, schedules, actionIntent, actionRunning, actionFinish, actionOf, actions, controllerModes, setControllerMode, openSlaEpisode, markSlaViolated, markSlaReported, clearSla, recordViolation, setService, recordProbe, services, upsertSeat, seatOf, seats, recordDelivery, recordSeatInput, seatTranscriptSnapshot, upsertTerminal, closeTerminal, acquireHostLock, renewHostLock, releaseHostLock, hostLock, claimResource, releaseClaim, throttleState, setThrottle, recordThrottleDecision, releaseThrottleDecision, recordHostSample, setProviderHealth, providerHealth, poolBackoff, setPoolBackoff, clearPoolBackoff, setQuota, quotas, setBudget, budgets, startGcRun, finishGcRun, recordGcItem, gcRuns, upsertLane, laneOf, lanes, enqueueLand, claimLandGate, finishLandTicket, landQueue, recordLandRun, recordLandOutcome, landRuns, recordPush, pushes, flushOutbox, removedWorktree, reserveWorktree, liveWorktrees, worktreeRow, worktreeRepos, dropWorktree, worktreeGcStop, setWorktreeGcStop, gcCursor, setGcCursor, upsertEnvServer, envServer, envServers, upsertUatSlot, releaseUatSlot, connectorOf, upsertAsk, log, logs, recordMetrics };
1742
+ export { reserveProvider, providerReservations, providerReservationUsage, markProviderReservation, releaseProviderReservation };
1743
+ /** Best-effort machine log line from anywhere (never throws): opens, appends, closes. */
1744
+ export declare function machineLog(row: LogRow, { env }?: {
1745
+ env?: Env;
1746
+ }): number;