@interf/compiler 0.22.2 → 0.50.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 (616) hide show
  1. package/README.md +119 -282
  2. package/dist/bin-mcp.d.ts +2 -0
  3. package/dist/bin-mcp.js +63 -0
  4. package/dist/bin-runtime.d.ts +2 -0
  5. package/dist/bin-runtime.js +111 -0
  6. package/dist/cli/commands/agents.js +4 -35
  7. package/dist/cli/commands/auth.d.ts +20 -0
  8. package/dist/cli/commands/auth.js +161 -0
  9. package/dist/cli/commands/benchmark.d.ts +9 -0
  10. package/dist/cli/commands/benchmark.js +58 -0
  11. package/dist/cli/commands/build-plan.js +107 -139
  12. package/dist/cli/commands/build.d.ts +3 -4
  13. package/dist/cli/commands/build.js +16 -45
  14. package/dist/cli/commands/doctor.js +3 -3
  15. package/dist/cli/commands/graphs.d.ts +2 -0
  16. package/dist/cli/commands/graphs.js +344 -0
  17. package/dist/cli/commands/login.js +4 -6
  18. package/dist/cli/commands/logout.js +1 -1
  19. package/dist/cli/commands/mcp.d.ts +4 -2
  20. package/dist/cli/commands/mcp.js +846 -232
  21. package/dist/cli/commands/project.d.ts +2 -0
  22. package/dist/cli/commands/project.js +176 -0
  23. package/dist/cli/commands/reset.d.ts +3 -4
  24. package/dist/cli/commands/reset.js +10 -31
  25. package/dist/cli/commands/runs.js +136 -57
  26. package/dist/cli/commands/runtime.d.ts +24 -0
  27. package/dist/cli/commands/runtime.js +373 -0
  28. package/dist/cli/commands/status.d.ts +1 -0
  29. package/dist/cli/commands/status.js +35 -45
  30. package/dist/cli/commands/traces.d.ts +2 -0
  31. package/dist/cli/commands/traces.js +97 -0
  32. package/dist/cli/commands/wizard.js +171 -178
  33. package/dist/cli/index.d.ts +7 -4
  34. package/dist/cli/index.js +13 -7
  35. package/dist/cli/lib/http-client.d.ts +39 -0
  36. package/dist/cli/lib/http-client.js +73 -0
  37. package/dist/index.d.ts +2 -2
  38. package/dist/index.js +2 -2
  39. package/dist/packages/build-plans/authoring/brief.d.ts +538 -0
  40. package/dist/packages/build-plans/authoring/brief.js +89 -0
  41. package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +52 -11
  42. package/dist/packages/build-plans/authoring/build-plan-authoring.js +493 -46
  43. package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +10 -1
  44. package/dist/packages/build-plans/authoring/build-plan-edit-session.js +27 -4
  45. package/dist/packages/build-plans/authoring/build-plan-improvement.d.ts +9 -6
  46. package/dist/packages/build-plans/authoring/build-plan-improvement.js +97 -46
  47. package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.d.ts +1 -0
  48. package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.js +7 -7
  49. package/dist/packages/build-plans/build-plan-resolution.d.ts +1 -1
  50. package/dist/packages/build-plans/build-plan-resolution.js +3 -3
  51. package/dist/packages/build-plans/index.d.ts +1 -1
  52. package/dist/packages/build-plans/index.js +1 -1
  53. package/dist/packages/build-plans/package/build-plan-definitions.d.ts +14 -13
  54. package/dist/packages/build-plans/package/build-plan-definitions.js +45 -42
  55. package/dist/packages/build-plans/package/build-plan-helpers.d.ts +3 -2
  56. package/dist/packages/build-plans/package/build-plan-helpers.js +27 -13
  57. package/dist/packages/build-plans/package/build-plan-review-paths.d.ts +5 -5
  58. package/dist/packages/build-plans/package/build-plan-review-paths.js +15 -15
  59. package/dist/packages/build-plans/package/build-plan-stage-runner.d.ts +5 -4
  60. package/dist/packages/build-plans/package/build-plan-stage-runner.js +23 -11
  61. package/dist/packages/build-plans/package/builtin-build-plan.d.ts +7 -8
  62. package/dist/packages/build-plans/package/builtin-build-plan.js +10 -11
  63. package/dist/packages/build-plans/package/context-interface.d.ts +14 -9
  64. package/dist/packages/build-plans/package/context-interface.js +14 -33
  65. package/dist/packages/build-plans/package/interf-build-plan-package.d.ts +6 -17
  66. package/dist/packages/build-plans/package/interf-build-plan-package.js +68 -64
  67. package/dist/packages/build-plans/package/local-build-plans.d.ts +21 -14
  68. package/dist/packages/build-plans/package/local-build-plans.js +105 -55
  69. package/dist/packages/build-plans/package/user-build-plans.js +1 -1
  70. package/dist/packages/contracts/index.d.ts +5 -2
  71. package/dist/packages/contracts/index.js +3 -1
  72. package/dist/packages/contracts/lib/context-graph-layer.d.ts +161 -0
  73. package/dist/packages/contracts/lib/context-graph-layer.js +216 -0
  74. package/dist/packages/contracts/lib/project-paths.d.ts +144 -0
  75. package/dist/packages/contracts/lib/project-paths.js +220 -0
  76. package/dist/packages/contracts/lib/project-schema.d.ts +423 -0
  77. package/dist/packages/contracts/lib/project-schema.js +138 -0
  78. package/dist/packages/contracts/lib/schema.d.ts +1273 -81
  79. package/dist/packages/contracts/lib/schema.js +675 -79
  80. package/dist/packages/contracts/utils/filesystem.d.ts +1 -0
  81. package/dist/packages/contracts/utils/filesystem.js +29 -1
  82. package/dist/packages/contracts/utils/parse.js +67 -0
  83. package/dist/packages/projects/index.d.ts +6 -0
  84. package/dist/packages/{project → projects}/index.js +0 -3
  85. package/dist/packages/{project → projects}/interf-detect.d.ts +12 -12
  86. package/dist/packages/{project → projects}/interf-detect.js +56 -50
  87. package/dist/packages/projects/interf.d.ts +2 -0
  88. package/dist/packages/projects/interf.js +1 -0
  89. package/dist/packages/projects/lib/schema.d.ts +77 -0
  90. package/dist/packages/projects/lib/schema.js +91 -0
  91. package/dist/packages/projects/source-config.d.ts +53 -0
  92. package/dist/packages/projects/source-config.js +339 -0
  93. package/dist/packages/projects/source-folders.d.ts +11 -0
  94. package/dist/packages/{project → projects}/source-folders.js +26 -26
  95. package/dist/packages/{engine → runtime}/action-planner.d.ts +1 -1
  96. package/dist/packages/{engine → runtime}/action-planner.js +20 -22
  97. package/dist/packages/runtime/action-values.d.ts +1 -0
  98. package/dist/packages/runtime/action-values.js +1 -0
  99. package/dist/packages/runtime/actions/errors.d.ts +2 -0
  100. package/dist/packages/runtime/actions/errors.js +12 -0
  101. package/dist/packages/runtime/actions/fields.d.ts +86 -0
  102. package/dist/packages/runtime/actions/form-builders.d.ts +14 -0
  103. package/dist/packages/runtime/actions/form-builders.js +667 -0
  104. package/dist/packages/runtime/actions/form-validators.d.ts +8 -0
  105. package/dist/packages/runtime/actions/form-validators.js +134 -0
  106. package/dist/packages/runtime/actions/helpers.d.ts +11 -0
  107. package/dist/packages/runtime/actions/helpers.js +80 -0
  108. package/dist/packages/runtime/actions/index.d.ts +8 -0
  109. package/dist/packages/runtime/actions/index.js +11 -0
  110. package/dist/packages/runtime/actions/registry.d.ts +64 -0
  111. package/dist/packages/runtime/actions/registry.js +62 -0
  112. package/dist/packages/runtime/actions/requests.d.ts +45 -0
  113. package/dist/packages/runtime/actions/requests.js +164 -0
  114. package/dist/packages/runtime/actions/schemas.d.ts +161 -0
  115. package/dist/packages/runtime/actions/schemas.js +37 -0
  116. package/dist/packages/runtime/agent-handoff.d.ts +11 -0
  117. package/dist/packages/runtime/agent-handoff.js +102 -0
  118. package/dist/packages/{engine → runtime}/agents/index.d.ts +1 -2
  119. package/dist/packages/{engine → runtime}/agents/index.js +1 -2
  120. package/dist/packages/runtime/agents/lib/args.d.ts +14 -0
  121. package/dist/packages/runtime/agents/lib/args.js +24 -0
  122. package/dist/packages/{engine → runtime}/agents/lib/constants.d.ts +4 -1
  123. package/dist/packages/runtime/agents/lib/constants.js +13 -0
  124. package/dist/packages/runtime/agents/lib/context-graph-bootstrap.d.ts +3 -0
  125. package/dist/packages/{engine/agents/lib/verifiable-context-bootstrap.js → runtime/agents/lib/context-graph-bootstrap.js} +5 -6
  126. package/dist/packages/{engine → runtime}/agents/lib/detection.d.ts +5 -0
  127. package/dist/packages/{engine → runtime}/agents/lib/detection.js +16 -7
  128. package/dist/packages/{engine → runtime}/agents/lib/execution-profile.d.ts +14 -0
  129. package/dist/packages/{engine → runtime}/agents/lib/execution-profile.js +31 -14
  130. package/dist/packages/{engine → runtime}/agents/lib/execution.js +22 -6
  131. package/dist/packages/{engine → runtime}/agents/lib/executors.d.ts +1 -0
  132. package/dist/packages/{engine → runtime}/agents/lib/executors.js +11 -2
  133. package/dist/packages/runtime/agents/lib/logs.d.ts +12 -0
  134. package/dist/packages/runtime/agents/lib/logs.js +41 -0
  135. package/dist/packages/{engine → runtime}/agents/lib/preflight.js +19 -14
  136. package/dist/packages/runtime/agents/lib/render.d.ts +26 -0
  137. package/dist/packages/{engine → runtime}/agents/lib/render.js +48 -22
  138. package/dist/packages/runtime/agents/lib/shell-fs.d.ts +18 -0
  139. package/dist/packages/runtime/agents/lib/shell-fs.js +190 -0
  140. package/dist/packages/runtime/agents/lib/shell-paths.d.ts +16 -0
  141. package/dist/packages/runtime/agents/lib/shell-paths.js +63 -0
  142. package/dist/packages/runtime/agents/lib/shell-projection.d.ts +25 -0
  143. package/dist/packages/runtime/agents/lib/shell-projection.js +314 -0
  144. package/dist/packages/runtime/agents/lib/shell-templates.d.ts +30 -0
  145. package/dist/packages/runtime/agents/lib/shell-templates.js +494 -0
  146. package/dist/packages/runtime/agents/lib/shell-workspace.d.ts +17 -0
  147. package/dist/packages/runtime/agents/lib/shell-workspace.js +70 -0
  148. package/dist/packages/runtime/agents/lib/shells.d.ts +92 -0
  149. package/dist/packages/runtime/agents/lib/shells.js +509 -0
  150. package/dist/packages/runtime/agents/lib/source-context-scan.d.ts +10 -0
  151. package/dist/packages/runtime/agents/lib/source-context-scan.js +388 -0
  152. package/dist/packages/{engine → runtime}/agents/lib/status.js +1 -14
  153. package/dist/packages/runtime/agents/lib/string-utils.d.ts +16 -0
  154. package/dist/packages/runtime/agents/lib/string-utils.js +36 -0
  155. package/dist/packages/{engine → runtime}/agents/lib/types.d.ts +1 -0
  156. package/dist/packages/{engine → runtime}/agents/lib/user-config.d.ts +8 -2
  157. package/dist/packages/{engine → runtime}/agents/lib/user-config.js +8 -2
  158. package/dist/packages/runtime/agents/providers/claude-code.d.ts +13 -0
  159. package/dist/packages/runtime/agents/providers/claude-code.js +45 -0
  160. package/dist/packages/runtime/agents/providers/codex.d.ts +17 -0
  161. package/dist/packages/runtime/agents/providers/codex.js +66 -0
  162. package/dist/packages/runtime/agents/providers/cursor.d.ts +9 -0
  163. package/dist/packages/runtime/agents/providers/cursor.js +24 -0
  164. package/dist/packages/runtime/agents/providers/index.d.ts +9 -0
  165. package/dist/packages/runtime/agents/providers/index.js +31 -0
  166. package/dist/packages/runtime/agents/providers/types.d.ts +50 -0
  167. package/dist/packages/{engine → runtime}/agents/registry.d.ts +13 -2
  168. package/dist/packages/{engine → runtime}/agents/registry.js +48 -10
  169. package/dist/packages/{engine → runtime}/agents/role-executors.d.ts +1 -1
  170. package/dist/packages/{engine → runtime}/agents/role-executors.js +9 -7
  171. package/dist/packages/{engine → runtime}/agents/role-router.js +7 -5
  172. package/dist/packages/runtime/auth/account-context.d.ts +52 -0
  173. package/dist/packages/runtime/auth/account-context.js +68 -0
  174. package/dist/packages/runtime/auth/auth-flow.d.ts +73 -0
  175. package/dist/packages/runtime/auth/auth-flow.js +189 -0
  176. package/dist/packages/runtime/auth/jwt-validator.d.ts +58 -0
  177. package/dist/packages/runtime/auth/jwt-validator.js +86 -0
  178. package/dist/packages/runtime/auth/keychain.d.ts +35 -0
  179. package/dist/packages/runtime/auth/keychain.js +85 -0
  180. package/dist/packages/runtime/auth/session-store.d.ts +38 -0
  181. package/dist/packages/runtime/auth/session-store.js +96 -0
  182. package/dist/packages/runtime/auth/workos-client.d.ts +58 -0
  183. package/dist/packages/runtime/auth/workos-client.js +87 -0
  184. package/dist/packages/runtime/benchmark-question-draft.d.ts +23 -0
  185. package/dist/packages/runtime/benchmark-question-draft.js +153 -0
  186. package/dist/packages/runtime/build/artifact-counts.d.ts +1 -0
  187. package/dist/packages/{engine → runtime}/build/artifact-counts.js +5 -9
  188. package/dist/packages/{engine → runtime}/build/artifact-status.d.ts +6 -6
  189. package/dist/packages/{engine → runtime}/build/artifact-status.js +26 -24
  190. package/dist/packages/runtime/build/atomic-fs.d.ts +3 -0
  191. package/dist/packages/runtime/build/atomic-fs.js +95 -0
  192. package/dist/packages/runtime/build/billing-events.d.ts +78 -0
  193. package/dist/packages/{engine → runtime}/build/billing-events.js +17 -19
  194. package/dist/packages/runtime/build/build-evidence.d.ts +16 -0
  195. package/dist/packages/runtime/build/build-evidence.js +179 -0
  196. package/dist/packages/{engine → runtime}/build/build-pipeline.d.ts +12 -8
  197. package/dist/packages/runtime/build/build-pipeline.js +388 -0
  198. package/dist/packages/{engine → runtime}/build/build-plan-primitives.d.ts +1 -1
  199. package/dist/packages/{engine → runtime}/build/build-plan-primitives.js +0 -1
  200. package/dist/packages/runtime/build/build-plan-runs.d.ts +14 -0
  201. package/dist/packages/runtime/build/build-plan-runs.js +31 -0
  202. package/dist/packages/runtime/build/build-stage-plan.d.ts +16 -0
  203. package/dist/packages/runtime/build/build-stage-plan.js +101 -0
  204. package/dist/packages/{engine → runtime}/build/build-stage-runner.d.ts +2 -1
  205. package/dist/packages/runtime/build/build-stage-runner.js +302 -0
  206. package/dist/packages/{engine → runtime}/build/build-target.d.ts +7 -4
  207. package/dist/packages/runtime/build/build-target.js +40 -0
  208. package/dist/packages/{engine → runtime}/build/check-evaluator.d.ts +14 -16
  209. package/dist/packages/runtime/build/check-evaluator.js +1226 -0
  210. package/dist/packages/runtime/build/context-graph-paths.d.ts +64 -0
  211. package/dist/packages/runtime/build/context-graph-paths.js +160 -0
  212. package/dist/packages/runtime/build/context-graph-schema.d.ts +19 -0
  213. package/dist/packages/runtime/build/context-graph-schema.js +39 -0
  214. package/dist/packages/{engine → runtime}/build/discovery.d.ts +2 -2
  215. package/dist/packages/{engine → runtime}/build/discovery.js +4 -4
  216. package/dist/packages/{engine → runtime}/build/index.d.ts +7 -5
  217. package/dist/packages/{engine → runtime}/build/index.js +7 -5
  218. package/dist/packages/runtime/build/inspect-map.d.ts +10 -0
  219. package/dist/packages/runtime/build/inspect-map.js +270 -0
  220. package/dist/packages/{engine → runtime}/build/lib/schema.d.ts +449 -123
  221. package/dist/packages/runtime/build/lib/schema.js +494 -0
  222. package/dist/packages/runtime/build/native-entrypoint.d.ts +2 -0
  223. package/dist/packages/runtime/build/native-entrypoint.js +286 -0
  224. package/dist/packages/runtime/build/reset.d.ts +2 -0
  225. package/dist/packages/runtime/build/reset.js +62 -0
  226. package/dist/packages/{engine → runtime}/build/runtime-contracts.js +13 -7
  227. package/dist/packages/runtime/build/runtime-inventory.d.ts +7 -0
  228. package/dist/packages/{engine → runtime}/build/runtime-inventory.js +3 -3
  229. package/dist/packages/runtime/build/runtime-log-paths.d.ts +3 -0
  230. package/dist/packages/runtime/build/runtime-log-paths.js +16 -0
  231. package/dist/packages/{engine → runtime}/build/runtime-prompt.js +12 -9
  232. package/dist/packages/{engine → runtime}/build/runtime-reconcile.d.ts +1 -1
  233. package/dist/packages/{engine → runtime}/build/runtime-reconcile.js +25 -21
  234. package/dist/packages/runtime/build/runtime-runs.d.ts +10 -0
  235. package/dist/packages/runtime/build/runtime-runs.js +318 -0
  236. package/dist/packages/{engine → runtime}/build/runtime-types.d.ts +9 -6
  237. package/dist/packages/runtime/build/runtime-types.js +1 -0
  238. package/dist/packages/runtime/build/runtime.d.ts +8 -0
  239. package/dist/packages/runtime/build/runtime.js +7 -0
  240. package/dist/packages/runtime/build/source-files.d.ts +58 -0
  241. package/dist/packages/runtime/build/source-files.js +193 -0
  242. package/dist/packages/runtime/build/source-inventory.d.ts +28 -0
  243. package/dist/packages/runtime/build/source-inventory.js +512 -0
  244. package/dist/packages/runtime/build/source-manifest.d.ts +63 -0
  245. package/dist/packages/runtime/build/source-manifest.js +220 -0
  246. package/dist/packages/runtime/build/stage-evidence.d.ts +22 -0
  247. package/dist/packages/runtime/build/stage-evidence.js +386 -0
  248. package/dist/packages/runtime/build/stage-manifest.d.ts +45 -0
  249. package/dist/packages/runtime/build/stage-manifest.js +1125 -0
  250. package/dist/packages/runtime/build/stage-reuse.d.ts +11 -0
  251. package/dist/packages/runtime/build/stage-reuse.js +154 -0
  252. package/dist/packages/runtime/build/stage-session.d.ts +81 -0
  253. package/dist/packages/runtime/build/stage-session.js +308 -0
  254. package/dist/packages/runtime/build/state-artifacts.d.ts +9 -0
  255. package/dist/packages/runtime/build/state-artifacts.js +14 -0
  256. package/dist/packages/runtime/build/state-health.d.ts +4 -0
  257. package/dist/packages/{engine → runtime}/build/state-health.js +21 -26
  258. package/dist/packages/runtime/build/state-io.d.ts +12 -0
  259. package/dist/packages/runtime/build/state-io.js +118 -0
  260. package/dist/packages/runtime/build/state-view.d.ts +5 -0
  261. package/dist/packages/runtime/build/state-view.js +121 -0
  262. package/dist/packages/runtime/build/state.d.ts +7 -0
  263. package/dist/packages/runtime/build/state.js +12 -0
  264. package/dist/packages/runtime/build/summary-coverage-index.d.ts +21 -0
  265. package/dist/packages/runtime/build/summary-coverage-index.js +189 -0
  266. package/dist/packages/runtime/build/traces.d.ts +30 -0
  267. package/dist/packages/runtime/build/traces.js +133 -0
  268. package/dist/packages/{engine/build/validate-verifiable-context.d.ts → runtime/build/validate-context-graph.d.ts} +6 -6
  269. package/dist/packages/{engine/build/validate-verifiable-context.js → runtime/build/validate-context-graph.js} +49 -36
  270. package/dist/packages/{engine → runtime}/build/validate.d.ts +5 -5
  271. package/dist/packages/{engine → runtime}/build/validate.js +26 -26
  272. package/dist/packages/{engine → runtime}/client.d.ts +18 -18
  273. package/dist/packages/{engine → runtime}/client.js +48 -36
  274. package/dist/packages/{engine → runtime}/connection-config.d.ts +3 -2
  275. package/dist/packages/{engine → runtime}/connection-config.js +9 -8
  276. package/dist/packages/runtime/context-checks.d.ts +10 -0
  277. package/dist/packages/runtime/context-checks.js +127 -0
  278. package/dist/packages/runtime/context-graph-scaffold.d.ts +9 -0
  279. package/dist/packages/runtime/context-graph-scaffold.js +135 -0
  280. package/dist/packages/runtime/context-graph-semantic-graph.d.ts +9 -0
  281. package/dist/packages/runtime/context-graph-semantic-graph.js +416 -0
  282. package/dist/packages/runtime/entitlement-guard.d.ts +43 -0
  283. package/dist/packages/runtime/entitlement-guard.js +70 -0
  284. package/dist/packages/{engine → runtime}/execution/index.d.ts +2 -2
  285. package/dist/packages/{engine → runtime}/execution/index.js +1 -1
  286. package/dist/packages/{engine → runtime}/execution/lib/schema.d.ts +272 -191
  287. package/dist/packages/{engine → runtime}/execution/lib/schema.js +35 -32
  288. package/dist/packages/runtime/index.d.ts +29 -0
  289. package/dist/packages/runtime/index.js +21 -0
  290. package/dist/packages/runtime/instance-paths.d.ts +30 -0
  291. package/dist/packages/runtime/instance-paths.js +29 -0
  292. package/dist/packages/runtime/native-run-handlers.d.ts +63 -0
  293. package/dist/packages/{engine → runtime}/native-run-handlers.js +217 -166
  294. package/dist/packages/runtime/plan-artifact-contract.d.ts +17 -0
  295. package/dist/packages/runtime/plan-artifact-contract.js +42 -0
  296. package/dist/packages/runtime/project-entries.d.ts +11 -0
  297. package/dist/packages/runtime/project-entries.js +49 -0
  298. package/dist/packages/runtime/project-source-state.d.ts +26 -0
  299. package/dist/packages/runtime/project-source-state.js +56 -0
  300. package/dist/packages/runtime/project-store.d.ts +90 -0
  301. package/dist/packages/runtime/project-store.js +195 -0
  302. package/dist/packages/runtime/requested-artifacts.d.ts +7 -0
  303. package/dist/packages/{engine → runtime}/requested-artifacts.js +23 -1
  304. package/dist/packages/{engine → runtime}/run-observability.d.ts +2 -1
  305. package/dist/packages/{engine → runtime}/run-observability.js +174 -87
  306. package/dist/packages/runtime/runtime-action-proposals.d.ts +7 -0
  307. package/dist/packages/runtime/runtime-action-proposals.js +542 -0
  308. package/dist/packages/runtime/runtime-build-plans.d.ts +5 -0
  309. package/dist/packages/runtime/runtime-build-plans.js +175 -0
  310. package/dist/packages/runtime/runtime-build-runs.d.ts +47 -0
  311. package/dist/packages/runtime/runtime-build-runs.js +555 -0
  312. package/dist/packages/runtime/runtime-caches.d.ts +117 -0
  313. package/dist/packages/runtime/runtime-caches.js +266 -0
  314. package/dist/packages/{engine → runtime}/runtime-event-applier.d.ts +3 -1
  315. package/dist/packages/{engine → runtime}/runtime-event-applier.js +53 -17
  316. package/dist/packages/runtime/runtime-executor.d.ts +22 -0
  317. package/dist/packages/runtime/runtime-executor.js +131 -0
  318. package/dist/packages/runtime/runtime-jobs.d.ts +13 -0
  319. package/dist/packages/runtime/runtime-jobs.js +463 -0
  320. package/dist/packages/runtime/runtime-observability.d.ts +11 -0
  321. package/dist/packages/runtime/runtime-observability.js +39 -0
  322. package/dist/packages/{engine → runtime}/runtime-persistence.d.ts +9 -18
  323. package/dist/packages/{engine → runtime}/runtime-persistence.js +25 -25
  324. package/dist/packages/runtime/runtime-project-mutations.d.ts +7 -0
  325. package/dist/packages/runtime/runtime-project-mutations.js +65 -0
  326. package/dist/packages/runtime/runtime-project-reads.d.ts +18 -0
  327. package/dist/packages/runtime/runtime-project-reads.js +574 -0
  328. package/dist/packages/runtime/runtime-proposal-helpers.d.ts +22 -0
  329. package/dist/packages/runtime/runtime-proposal-helpers.js +223 -0
  330. package/dist/packages/{engine → runtime}/runtime-resource-builders.d.ts +23 -16
  331. package/dist/packages/{engine → runtime}/runtime-resource-builders.js +58 -46
  332. package/dist/packages/runtime/runtime-status.d.ts +14 -0
  333. package/dist/packages/runtime/runtime-status.js +15 -0
  334. package/dist/packages/runtime/runtime-verify-runs.d.ts +84 -0
  335. package/dist/packages/runtime/runtime-verify-runs.js +296 -0
  336. package/dist/packages/runtime/runtime.d.ts +1582 -0
  337. package/dist/packages/runtime/runtime.js +431 -0
  338. package/dist/packages/runtime/schemas/actions.d.ts +1206 -0
  339. package/dist/packages/runtime/schemas/actions.js +117 -0
  340. package/dist/packages/runtime/schemas/agents.d.ts +104 -0
  341. package/dist/packages/runtime/schemas/agents.js +74 -0
  342. package/dist/packages/runtime/schemas/build-plans.d.ts +1132 -0
  343. package/dist/packages/runtime/schemas/build-plans.js +141 -0
  344. package/dist/packages/runtime/schemas/context-graphs.d.ts +1522 -0
  345. package/dist/packages/runtime/schemas/context-graphs.js +110 -0
  346. package/dist/packages/runtime/schemas/files.d.ts +227 -0
  347. package/dist/packages/runtime/schemas/files.js +28 -0
  348. package/dist/packages/runtime/schemas/index.d.ts +9 -0
  349. package/dist/packages/runtime/schemas/index.js +13 -0
  350. package/dist/packages/runtime/schemas/instance.d.ts +141 -0
  351. package/dist/packages/runtime/schemas/instance.js +143 -0
  352. package/dist/packages/runtime/schemas/jobs.d.ts +339 -0
  353. package/dist/packages/runtime/schemas/jobs.js +107 -0
  354. package/dist/packages/runtime/schemas/projects.d.ts +366 -0
  355. package/dist/packages/runtime/schemas/projects.js +160 -0
  356. package/dist/packages/runtime/schemas/runs.d.ts +3445 -0
  357. package/dist/packages/runtime/schemas/runs.js +115 -0
  358. package/dist/packages/runtime/service/index.d.ts +3 -0
  359. package/dist/packages/runtime/service/index.js +3 -0
  360. package/dist/packages/runtime/service/openapi.d.ts +7 -0
  361. package/dist/packages/runtime/service/openapi.js +118 -0
  362. package/dist/packages/runtime/service/operations.d.ts +3011 -0
  363. package/dist/packages/runtime/service/operations.js +375 -0
  364. package/dist/packages/runtime/service/routes.d.ts +114 -0
  365. package/dist/packages/runtime/service/routes.js +128 -0
  366. package/dist/packages/runtime/service/server-api-files.d.ts +10 -0
  367. package/dist/packages/runtime/service/server-api-files.js +85 -0
  368. package/dist/packages/runtime/service/server-app-boot.d.ts +4 -0
  369. package/dist/packages/runtime/service/server-app-boot.js +46 -0
  370. package/dist/packages/runtime/service/server-guards.d.ts +63 -0
  371. package/dist/packages/runtime/service/server-guards.js +181 -0
  372. package/dist/packages/runtime/service/server-helpers.d.ts +38 -0
  373. package/dist/packages/runtime/service/server-helpers.js +108 -0
  374. package/dist/packages/runtime/service/server-instance-helpers.d.ts +30 -0
  375. package/dist/packages/runtime/service/server-instance-helpers.js +114 -0
  376. package/dist/packages/runtime/service/server-routes-action-proposals.d.ts +3 -0
  377. package/dist/packages/runtime/service/server-routes-action-proposals.js +45 -0
  378. package/dist/packages/runtime/service/server-routes-agents.d.ts +4 -0
  379. package/dist/packages/runtime/service/server-routes-agents.js +132 -0
  380. package/dist/packages/runtime/service/server-routes-auth.d.ts +33 -0
  381. package/dist/packages/runtime/service/server-routes-auth.js +138 -0
  382. package/dist/packages/runtime/service/server-routes-build-plans.d.ts +3 -0
  383. package/dist/packages/runtime/service/server-routes-build-plans.js +86 -0
  384. package/dist/packages/runtime/service/server-routes-discovery.d.ts +4 -0
  385. package/dist/packages/runtime/service/server-routes-discovery.js +196 -0
  386. package/dist/packages/runtime/service/server-routes-events.d.ts +5 -0
  387. package/dist/packages/runtime/service/server-routes-events.js +99 -0
  388. package/dist/packages/runtime/service/server-routes-project-context.d.ts +9 -0
  389. package/dist/packages/runtime/service/server-routes-project-context.js +287 -0
  390. package/dist/packages/runtime/service/server-routes-project-jobs.d.ts +9 -0
  391. package/dist/packages/runtime/service/server-routes-project-jobs.js +137 -0
  392. package/dist/packages/runtime/service/server-routes-project-runs.d.ts +14 -0
  393. package/dist/packages/runtime/service/server-routes-project-runs.js +88 -0
  394. package/dist/packages/runtime/service/server-routes-projects.d.ts +4 -0
  395. package/dist/packages/runtime/service/server-routes-projects.js +96 -0
  396. package/dist/packages/runtime/service/server-routes-runs.d.ts +3 -0
  397. package/dist/packages/runtime/service/server-routes-runs.js +119 -0
  398. package/dist/packages/runtime/service/server.d.ts +37 -0
  399. package/dist/packages/runtime/service/server.js +300 -0
  400. package/dist/packages/{engine → runtime/service}/service-registry.d.ts +5 -5
  401. package/dist/packages/{engine → runtime/service}/service-registry.js +7 -7
  402. package/dist/packages/runtime/verify/benchmark-run.d.ts +81 -0
  403. package/dist/packages/runtime/verify/benchmark-run.js +303 -0
  404. package/dist/packages/{engine → runtime}/verify/index.d.ts +2 -2
  405. package/dist/packages/{engine → runtime}/verify/index.js +1 -1
  406. package/dist/packages/{engine → runtime}/verify/lib/schema.d.ts +83 -16
  407. package/dist/packages/{engine → runtime}/verify/lib/schema.js +38 -18
  408. package/dist/packages/runtime/verify/test-file-guard.d.ts +2 -0
  409. package/dist/packages/runtime/verify/test-file-guard.js +29 -0
  410. package/dist/packages/{engine → runtime}/verify/verify-execution.d.ts +7 -0
  411. package/dist/packages/{engine → runtime}/verify/verify-execution.js +119 -45
  412. package/dist/packages/{engine → runtime}/verify/verify-paths.d.ts +5 -4
  413. package/dist/packages/runtime/verify/verify-paths.js +65 -0
  414. package/dist/packages/{engine → runtime}/verify/verify-sandbox.d.ts +1 -1
  415. package/dist/packages/runtime/verify/verify-sandbox.js +88 -0
  416. package/dist/packages/{engine → runtime}/verify/verify-specs.d.ts +2 -0
  417. package/dist/packages/runtime/verify/verify-specs.js +126 -0
  418. package/dist/packages/runtime/verify/verify-targets.d.ts +5 -0
  419. package/dist/packages/{engine → runtime}/verify/verify-targets.js +12 -12
  420. package/dist/packages/runtime/verify/verify-types.js +1 -0
  421. package/dist/packages/{engine → runtime}/verify/verify.d.ts +1 -1
  422. package/dist/packages/{engine → runtime}/verify/verify.js +1 -1
  423. package/dist/packages/runtime/wire-schemas.d.ts +18 -0
  424. package/dist/packages/runtime/wire-schemas.js +27 -0
  425. package/package.json +32 -30
  426. package/public-repo/CONTRIBUTING.md +16 -18
  427. package/public-repo/README.md +119 -282
  428. package/public-repo/SECURITY.md +3 -4
  429. package/public-repo/build-plans/interf-default/README.md +24 -16
  430. package/public-repo/build-plans/interf-default/build/stages/entrypoint/SKILL.md +74 -0
  431. package/public-repo/build-plans/interf-default/build/stages/knowledge/SKILL.md +95 -0
  432. package/public-repo/build-plans/interf-default/build/stages/summarize/SKILL.md +49 -4
  433. package/public-repo/build-plans/interf-default/build-plan.json +49 -39
  434. package/public-repo/build-plans/interf-default/build-plan.schema.json +59 -33
  435. package/public-repo/build-plans/interf-default/improve/SKILL.md +3 -3
  436. package/public-repo/build-plans/interf-default/use/query/SKILL.md +18 -11
  437. package/public-repo/openapi/local-service.openapi.json +14227 -0
  438. package/public-repo/skills/interf/SKILL.md +508 -187
  439. package/dist/cli/commands/prep.d.ts +0 -2
  440. package/dist/cli/commands/prep.js +0 -240
  441. package/dist/cli/commands/test.d.ts +0 -10
  442. package/dist/cli/commands/test.js +0 -85
  443. package/dist/cli/commands/web.d.ts +0 -2
  444. package/dist/cli/commands/web.js +0 -286
  445. package/dist/interf-ui/404.html +0 -1
  446. package/dist/interf-ui/__next.__PAGE__.txt +0 -10
  447. package/dist/interf-ui/__next._full.txt +0 -20
  448. package/dist/interf-ui/__next._head.txt +0 -5
  449. package/dist/interf-ui/__next._index.txt +0 -5
  450. package/dist/interf-ui/__next._tree.txt +0 -5
  451. package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_buildManifest.js +0 -11
  452. package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_clientMiddlewareManifest.js +0 -1
  453. package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_ssgManifest.js +0 -1
  454. package/dist/interf-ui/_next/static/chunks/0.tjb6f4golw..css +0 -3
  455. package/dist/interf-ui/_next/static/chunks/03~yq9q893hmn.js +0 -1
  456. package/dist/interf-ui/_next/static/chunks/085-n_jv2ng_q.css +0 -1
  457. package/dist/interf-ui/_next/static/chunks/0dn41fa_zvgsl.js +0 -1
  458. package/dist/interf-ui/_next/static/chunks/0g-ea0zj5d-0k.js +0 -1
  459. package/dist/interf-ui/_next/static/chunks/0gwqglc4iz583.js +0 -1
  460. package/dist/interf-ui/_next/static/chunks/0haldgm65ve6l.js +0 -1
  461. package/dist/interf-ui/_next/static/chunks/0nv3am99vjzn4.js +0 -1
  462. package/dist/interf-ui/_next/static/chunks/0s77gt_o4jwtx.js +0 -1
  463. package/dist/interf-ui/_next/static/chunks/0y5z3t-z1c8ks.js.map +0 -5
  464. package/dist/interf-ui/_next/static/chunks/0~a36ujuzpaz..js +0 -116
  465. package/dist/interf-ui/_next/static/chunks/10jeodxe4nkgj.js +0 -31
  466. package/dist/interf-ui/_next/static/chunks/119h2rouych2t.js +0 -1
  467. package/dist/interf-ui/_next/static/chunks/13c8b~m8knjsf.js +0 -1
  468. package/dist/interf-ui/_next/static/chunks/14dznb2qpt-ho.js +0 -91
  469. package/dist/interf-ui/_next/static/chunks/15z_en80lrq-3.js +0 -5
  470. package/dist/interf-ui/_next/static/chunks/turbopack-0p.pvcjrtq-jh.js +0 -1
  471. package/dist/interf-ui/_next/static/chunks/turbopack-0usj_75.8frlw.js +0 -1
  472. package/dist/interf-ui/_next/static/chunks/turbopack-worker-0sjn--fhq~1cg.js +0 -1
  473. package/dist/interf-ui/_next/static/media/GeistMono_Variable.p.17jn9btb_52pq.woff2 +0 -0
  474. package/dist/interf-ui/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2 +0 -0
  475. package/dist/interf-ui/_next/static/media/worker.102zas1s52_pf.js +0 -109
  476. package/dist/interf-ui/_not-found/__next._full.txt +0 -15
  477. package/dist/interf-ui/_not-found/__next._head.txt +0 -5
  478. package/dist/interf-ui/_not-found/__next._index.txt +0 -5
  479. package/dist/interf-ui/_not-found/__next._not-found.__PAGE__.txt +0 -5
  480. package/dist/interf-ui/_not-found/__next._not-found.txt +0 -5
  481. package/dist/interf-ui/_not-found/__next._tree.txt +0 -2
  482. package/dist/interf-ui/_not-found.html +0 -1
  483. package/dist/interf-ui/_not-found.txt +0 -15
  484. package/dist/interf-ui/index.html +0 -1
  485. package/dist/interf-ui/index.txt +0 -20
  486. package/dist/packages/contracts/lib/preparation-paths.d.ts +0 -117
  487. package/dist/packages/contracts/lib/preparation-paths.js +0 -177
  488. package/dist/packages/engine/action-definitions.d.ts +0 -407
  489. package/dist/packages/engine/action-definitions.js +0 -1158
  490. package/dist/packages/engine/action-values.d.ts +0 -1
  491. package/dist/packages/engine/action-values.js +0 -1
  492. package/dist/packages/engine/agents/lib/args.d.ts +0 -4
  493. package/dist/packages/engine/agents/lib/args.js +0 -52
  494. package/dist/packages/engine/agents/lib/chart-guidance.d.ts +0 -1
  495. package/dist/packages/engine/agents/lib/chart-guidance.js +0 -8
  496. package/dist/packages/engine/agents/lib/constants.js +0 -28
  497. package/dist/packages/engine/agents/lib/logs.d.ts +0 -2
  498. package/dist/packages/engine/agents/lib/logs.js +0 -17
  499. package/dist/packages/engine/agents/lib/render.d.ts +0 -8
  500. package/dist/packages/engine/agents/lib/schema.d.ts +0 -8
  501. package/dist/packages/engine/agents/lib/schema.js +0 -7
  502. package/dist/packages/engine/agents/lib/shells.d.ts +0 -74
  503. package/dist/packages/engine/agents/lib/shells.js +0 -1052
  504. package/dist/packages/engine/agents/lib/verifiable-context-bootstrap.d.ts +0 -3
  505. package/dist/packages/engine/build/artifact-counts.d.ts +0 -1
  506. package/dist/packages/engine/build/billing-events.d.ts +0 -89
  507. package/dist/packages/engine/build/build-pipeline.js +0 -175
  508. package/dist/packages/engine/build/build-plan-runs.d.ts +0 -14
  509. package/dist/packages/engine/build/build-plan-runs.js +0 -31
  510. package/dist/packages/engine/build/build-stage-plan.d.ts +0 -16
  511. package/dist/packages/engine/build/build-stage-plan.js +0 -100
  512. package/dist/packages/engine/build/build-stage-runner.js +0 -94
  513. package/dist/packages/engine/build/build-target.js +0 -16
  514. package/dist/packages/engine/build/check-evaluator.js +0 -298
  515. package/dist/packages/engine/build/lib/schema.js +0 -316
  516. package/dist/packages/engine/build/reset.d.ts +0 -2
  517. package/dist/packages/engine/build/reset.js +0 -74
  518. package/dist/packages/engine/build/runtime-inventory.d.ts +0 -7
  519. package/dist/packages/engine/build/runtime-paths.d.ts +0 -8
  520. package/dist/packages/engine/build/runtime-paths.js +0 -26
  521. package/dist/packages/engine/build/runtime-runs.d.ts +0 -10
  522. package/dist/packages/engine/build/runtime-runs.js +0 -224
  523. package/dist/packages/engine/build/runtime.d.ts +0 -5
  524. package/dist/packages/engine/build/runtime.js +0 -4
  525. package/dist/packages/engine/build/source-files.d.ts +0 -46
  526. package/dist/packages/engine/build/source-files.js +0 -149
  527. package/dist/packages/engine/build/state-artifacts.d.ts +0 -9
  528. package/dist/packages/engine/build/state-artifacts.js +0 -14
  529. package/dist/packages/engine/build/state-health.d.ts +0 -4
  530. package/dist/packages/engine/build/state-io.d.ts +0 -11
  531. package/dist/packages/engine/build/state-io.js +0 -82
  532. package/dist/packages/engine/build/state-paths.d.ts +0 -5
  533. package/dist/packages/engine/build/state-paths.js +0 -16
  534. package/dist/packages/engine/build/state-view.d.ts +0 -5
  535. package/dist/packages/engine/build/state-view.js +0 -94
  536. package/dist/packages/engine/build/state.d.ts +0 -7
  537. package/dist/packages/engine/build/state.js +0 -12
  538. package/dist/packages/engine/build/validate-helpers.d.ts +0 -12
  539. package/dist/packages/engine/build/validate-helpers.js +0 -41
  540. package/dist/packages/engine/build/verifiable-context-paths.d.ts +0 -47
  541. package/dist/packages/engine/build/verifiable-context-paths.js +0 -121
  542. package/dist/packages/engine/build/verifiable-context-schema.d.ts +0 -21
  543. package/dist/packages/engine/build/verifiable-context-schema.js +0 -126
  544. package/dist/packages/engine/cloud-seams.d.ts +0 -115
  545. package/dist/packages/engine/cloud-seams.js +0 -84
  546. package/dist/packages/engine/index.d.ts +0 -22
  547. package/dist/packages/engine/index.js +0 -15
  548. package/dist/packages/engine/instance-paths.d.ts +0 -106
  549. package/dist/packages/engine/instance-paths.js +0 -171
  550. package/dist/packages/engine/lib/schema.d.ts +0 -6304
  551. package/dist/packages/engine/lib/schema.js +0 -730
  552. package/dist/packages/engine/native-run-handlers.d.ts +0 -25
  553. package/dist/packages/engine/preparation-store.d.ts +0 -105
  554. package/dist/packages/engine/preparation-store.js +0 -213
  555. package/dist/packages/engine/readiness-check-draft.d.ts +0 -20
  556. package/dist/packages/engine/readiness-check-draft.js +0 -111
  557. package/dist/packages/engine/requested-artifacts.d.ts +0 -5
  558. package/dist/packages/engine/routes.d.ts +0 -85
  559. package/dist/packages/engine/routes.js +0 -99
  560. package/dist/packages/engine/runtime-caches.d.ts +0 -76
  561. package/dist/packages/engine/runtime-caches.js +0 -191
  562. package/dist/packages/engine/runtime-proposal-helpers.d.ts +0 -35
  563. package/dist/packages/engine/runtime-proposal-helpers.js +0 -247
  564. package/dist/packages/engine/runtime.d.ts +0 -371
  565. package/dist/packages/engine/runtime.js +0 -2463
  566. package/dist/packages/engine/server.d.ts +0 -58
  567. package/dist/packages/engine/server.js +0 -1399
  568. package/dist/packages/engine/verify/readiness-check-run.d.ts +0 -82
  569. package/dist/packages/engine/verify/readiness-check-run.js +0 -265
  570. package/dist/packages/engine/verify/verify-paths.js +0 -61
  571. package/dist/packages/engine/verify/verify-sandbox.js +0 -88
  572. package/dist/packages/engine/verify/verify-specs.js +0 -114
  573. package/dist/packages/engine/verify/verify-targets.d.ts +0 -5
  574. package/dist/packages/engine/wire-schemas.d.ts +0 -547
  575. package/dist/packages/engine/wire-schemas.js +0 -59
  576. package/dist/packages/project/index.d.ts +0 -9
  577. package/dist/packages/project/interf-bootstrap.d.ts +0 -1
  578. package/dist/packages/project/interf-bootstrap.js +0 -1
  579. package/dist/packages/project/interf-scaffold.d.ts +0 -3
  580. package/dist/packages/project/interf-scaffold.js +0 -136
  581. package/dist/packages/project/interf.d.ts +0 -4
  582. package/dist/packages/project/interf.js +0 -3
  583. package/dist/packages/project/lib/schema.d.ts +0 -328
  584. package/dist/packages/project/lib/schema.js +0 -136
  585. package/dist/packages/project/preparation-entries.d.ts +0 -11
  586. package/dist/packages/project/preparation-entries.js +0 -49
  587. package/dist/packages/project/source-config.d.ts +0 -46
  588. package/dist/packages/project/source-config.js +0 -394
  589. package/dist/packages/project/source-folders.d.ts +0 -11
  590. package/public-repo/build-plans/interf-default/build/stages/shape/SKILL.md +0 -27
  591. package/public-repo/build-plans/interf-default/build/stages/structure/SKILL.md +0 -21
  592. package/public-repo/plugins/README.md +0 -9
  593. package/public-repo/plugins/interf/.claude-plugin/plugin.json +0 -21
  594. package/public-repo/plugins/interf/.mcp.json +0 -12
  595. package/public-repo/plugins/interf/README.md +0 -32
  596. package/public-repo/plugins/interf/skills/interf/SKILL.md +0 -376
  597. /package/dist/packages/{engine/agents/lib/types.js → runtime/actions/fields.js} +0 -0
  598. /package/dist/packages/{engine → runtime}/agents/lib/agents.d.ts +0 -0
  599. /package/dist/packages/{engine → runtime}/agents/lib/agents.js +0 -0
  600. /package/dist/packages/{engine → runtime}/agents/lib/execution.d.ts +0 -0
  601. /package/dist/packages/{engine → runtime}/agents/lib/preflight.d.ts +0 -0
  602. /package/dist/packages/{engine → runtime}/agents/lib/status.d.ts +0 -0
  603. /package/dist/packages/{engine/build/runtime-types.js → runtime/agents/lib/types.js} +0 -0
  604. /package/dist/packages/{engine/verify/verify-types.js → runtime/agents/providers/types.js} +0 -0
  605. /package/dist/packages/{engine → runtime}/agents/role-router.d.ts +0 -0
  606. /package/dist/packages/{engine → runtime}/build/build-execution.d.ts +0 -0
  607. /package/dist/packages/{engine → runtime}/build/build-execution.js +0 -0
  608. /package/dist/packages/{engine → runtime}/build/runtime-contracts.d.ts +0 -0
  609. /package/dist/packages/{engine → runtime}/build/runtime-prompt.d.ts +0 -0
  610. /package/dist/packages/{engine → runtime}/execution/adapters.d.ts +0 -0
  611. /package/dist/packages/{engine → runtime}/execution/adapters.js +0 -0
  612. /package/dist/packages/{engine → runtime}/execution/events.d.ts +0 -0
  613. /package/dist/packages/{engine → runtime}/execution/events.js +0 -0
  614. /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.d.ts +0 -0
  615. /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.js +0 -0
  616. /package/dist/packages/{engine → runtime}/verify/verify-types.d.ts +0 -0
@@ -5,10 +5,13 @@ import { listFilesRecursive } from "../../contracts/utils/filesystem.js";
5
5
  import { warnInterf } from "../../contracts/utils/logger.js";
6
6
  import { readJsonFileUnchecked, readJsonFileWithSchema } from "../../contracts/utils/parse.js";
7
7
  import { isMarkdownFile } from "../../contracts/utils/file-types.js";
8
- import { BuildPlanEngineApiSchema, BuildPlanPurposeSchema, BuildPlanStageArtifactReadAccessSchema, BuildPlanStageArtifactWriteAccessSchema, } from "../../engine/build/lib/schema.js";
8
+ import { BuildPlanRuntimeApiSchema, BuildPlanPurposeSchema, BuildPlanStageArtifactReadAccessSchema, BuildPlanStageArtifactWriteAccessSchema, } from "../../runtime/build/lib/schema.js";
9
9
  import { RuntimeContractTypeSchema, InterfIdPattern, } from "../../contracts/lib/schema.js";
10
- import { asPreparationDataDir, preparationBuildPlansRoot, } from "../../contracts/lib/preparation-paths.js";
10
+ import { CANONICAL_LAYER_DIRS, } from "../../contracts/lib/context-graph-layer.js";
11
+ import { asProjectDataDir, projectBuildPlansRoot, } from "../../contracts/lib/project-paths.js";
11
12
  import { CONTEXT_INTERFACE_FILE, ContextInterfaceSchema, contextInterfaceExists, contextInterfaceFilePath, listContextInterfaceArtifacts, readContextInterface, BuildPlanInputSpecSchema, writeContextInterface, } from "./context-interface.js";
13
+ import { BuildPlanAuthoringBriefSchema, } from "../authoring/brief.js";
14
+ import { DEFAULT_BUILD_PLAN_ID } from "../build-plan-resolution.js";
12
15
  import { PACKAGE_ROOT } from "./lib/package-root.js";
13
16
  const LocalBuildPlanStageDefinitionSchema = z.object({
14
17
  id: z.string().regex(InterfIdPattern),
@@ -23,8 +26,9 @@ const LocalBuildPlanStageDefinitionSchema = z.object({
23
26
  const LocalBuildPlanDefinitionSchema = z.object({
24
27
  id: z.string().regex(InterfIdPattern),
25
28
  type: z.literal("build-plan"),
26
- engine_api: BuildPlanEngineApiSchema.optional(),
29
+ runtime_api: BuildPlanRuntimeApiSchema.optional(),
27
30
  purpose: BuildPlanPurposeSchema.optional(),
31
+ brief: BuildPlanAuthoringBriefSchema.optional(),
28
32
  inputs: z.array(BuildPlanInputSpecSchema).min(1).optional(),
29
33
  label: z.string().min(1),
30
34
  hint: z.string().min(1),
@@ -62,25 +66,29 @@ export function mergeStagePolicyNotesForStages(stages, baseNotes, overrideNotes)
62
66
  }
63
67
  return Object.keys(merged).length > 0 ? merged : undefined;
64
68
  }
65
- function buildPlanRootPath(prepDataDir) {
66
- return preparationBuildPlansRoot(asPreparationDataDir(prepDataDir));
69
+ function buildPlanRootPath(projectDataDir) {
70
+ return projectBuildPlansRoot(asProjectDataDir(projectDataDir));
67
71
  }
68
72
  export function builtinBuildPlanPackagePath(buildPlanId) {
69
73
  return join(PACKAGE_ROOT, "public-repo", "build-plans", buildPlanId);
70
74
  }
71
- export function buildPlanDefinitionPath(prepDataDir, id) {
72
- return join(buildPlanRootPath(prepDataDir), id);
75
+ export function buildPlanDefinitionPath(projectDataDir, id) {
76
+ return join(buildPlanRootPath(projectDataDir), id);
73
77
  }
78
+ // The single, readable list of which package-relative docs `collectStarterDocs`
79
+ // and `buildPlanPackageCopyPaths` treat as portable starter docs: the package
80
+ // README plus the three authoring-doc trees. A relative path qualifies when it
81
+ // equals or lives under one of these entries.
82
+ const SUPPORTED_STARTER_DOC_PATHS = [
83
+ "README.md",
84
+ "improve/",
85
+ "use/query/",
86
+ "build/stages/",
87
+ ];
74
88
  function isSupportedBuildPlanStarterDocPath(relativePath) {
75
- if (relativePath === "README.md")
76
- return true;
77
- if (relativePath.startsWith("improve/"))
78
- return true;
79
- if (relativePath.startsWith("use/query/"))
80
- return true;
81
- if (relativePath.startsWith("build/stages/"))
82
- return true;
83
- return false;
89
+ return SUPPORTED_STARTER_DOC_PATHS.some((supported) => supported.endsWith("/")
90
+ ? relativePath.startsWith(supported)
91
+ : relativePath === supported);
84
92
  }
85
93
  function collectStarterDocs(dirPath) {
86
94
  return listFilesRecursive(dirPath, isMarkdownFile)
@@ -90,7 +98,11 @@ function collectStarterDocs(dirPath) {
90
98
  relativePath,
91
99
  content: readFileSync(join(dirPath, relativePath), "utf8"),
92
100
  }))
93
- .sort((a, b) => a.relativePath.localeCompare(b.relativePath));
101
+ // Codepoint order, not locale order: starter-doc ordering must be
102
+ // deterministic across machines (full vs small ICU, LANG/LC_ALL). With
103
+ // localeCompare, "README.md" sorts before lowercase paths in some locales
104
+ // and after in others, which made this collection environment-dependent.
105
+ .sort((a, b) => (a.relativePath < b.relativePath ? -1 : a.relativePath > b.relativePath ? 1 : 0));
94
106
  }
95
107
  function buildPlanPackageCopyPaths(dirPath) {
96
108
  return [
@@ -139,7 +151,7 @@ export function loadBuildPlanDefinitionFromDir(dirPath) {
139
151
  buildPlanSchemaPath: contextInterfaceFilePath(dirPath),
140
152
  };
141
153
  }
142
- export function isNeutralScaffoldBuildPlanDefinition(definition) {
154
+ function isNeutralScaffoldBuildPlanDefinition(definition) {
143
155
  const hasScaffoldPurpose = definition.purpose?.label === "From-scratch Build Plan draft" ||
144
156
  Boolean(definition.purpose?.task_hint?.includes("Replace this neutral scaffold"));
145
157
  const hasScaffoldStage = Boolean(definition.stages?.some((stage) => stage.id === "prepare" &&
@@ -149,9 +161,9 @@ export function isNeutralScaffoldBuildPlanDefinition(definition) {
149
161
  artifact.description.includes("neutral authoring scaffold"));
150
162
  return hasScaffoldPurpose || hasScaffoldStage || hasScaffoldArtifact;
151
163
  }
152
- export function listLocalBuildPlanDefinitions(prepDataDir) {
164
+ export function listLocalBuildPlanDefinitions(projectDataDir) {
153
165
  const definitions = new Map();
154
- const root = buildPlanRootPath(prepDataDir);
166
+ const root = buildPlanRootPath(projectDataDir);
155
167
  if (existsSync(root)) {
156
168
  for (const entryPath of readdirSync(root).map((entry) => join(root, entry))) {
157
169
  try {
@@ -169,14 +181,14 @@ export function listLocalBuildPlanDefinitions(prepDataDir) {
169
181
  }
170
182
  return [...definitions.values()].sort((a, b) => a.label.localeCompare(b.label));
171
183
  }
172
- export function loadLocalBuildPlanDefinition(prepDataDir, id) {
173
- const definition = loadBuildPlanDefinitionFromDir(buildPlanDefinitionPath(prepDataDir, id));
184
+ export function loadLocalBuildPlanDefinition(projectDataDir, id) {
185
+ const definition = loadBuildPlanDefinitionFromDir(buildPlanDefinitionPath(projectDataDir, id));
174
186
  if (!definition || isNeutralScaffoldBuildPlanDefinition(definition))
175
187
  return null;
176
188
  return definition;
177
189
  }
178
- export function resolveBuildPlanPackageSourcePath(prepDataDir, buildPlanId) {
179
- const localPath = buildPlanDefinitionPath(prepDataDir, buildPlanId);
190
+ export function resolveBuildPlanPackageSourcePath(projectDataDir, buildPlanId) {
191
+ const localPath = buildPlanDefinitionPath(projectDataDir, buildPlanId);
180
192
  const local = loadBuildPlanDefinitionFromDir(localPath);
181
193
  if (local && !isNeutralScaffoldBuildPlanDefinition(local))
182
194
  return localPath;
@@ -186,8 +198,8 @@ export function resolveBuildPlanPackageSourcePath(prepDataDir, buildPlanId) {
186
198
  return null;
187
199
  }
188
200
  export function seedLocalDefaultBuildPlan(options) {
189
- const buildPlanId = "interf-default";
190
- const targetPath = buildPlanDefinitionPath(options.prepDataDir, buildPlanId);
201
+ const buildPlanId = DEFAULT_BUILD_PLAN_ID;
202
+ const targetPath = buildPlanDefinitionPath(options.projectDataDir, buildPlanId);
191
203
  if (existsSync(join(targetPath, "build-plan.json"))) {
192
204
  return { buildPlanId, targetPath, alreadyExisted: true };
193
205
  }
@@ -199,7 +211,7 @@ export function seedLocalDefaultBuildPlan(options) {
199
211
  patchBuildPlanPackageMetadata(targetPath, {
200
212
  id: buildPlanId,
201
213
  label: "Built-in Interf Build Plan",
202
- hint: "Built-in file-processing Build Plan: summarize source-grounded evidence, structure cross-file connections, and shape verifiable context around the saved readiness checks.",
214
+ hint: "Built-in file-processing Build Plan: summarize source-grounded evidence, build task-aware knowledge, and shape the Context Graph around the Project intent and coverage metrics.",
203
215
  });
204
216
  return { buildPlanId, targetPath, alreadyExisted: false };
205
217
  }
@@ -226,7 +238,7 @@ export function patchBuildPlanPackageMetadata(dirPath, options) {
226
238
  const nextBuildPlanJson = {
227
239
  ...buildPlanJson,
228
240
  type: "build-plan",
229
- engine_api: buildPlanJson.engine_api ?? {
241
+ runtime_api: buildPlanJson.runtime_api ?? {
230
242
  kind: "build",
231
243
  version: 1,
232
244
  },
@@ -377,11 +389,12 @@ export function validateBuildPlanPackage(dirPath) {
377
389
  if (buildPlanSchema) {
378
390
  const stages = def.stages ?? [];
379
391
  const stageIds = new Set(stages.map((stage) => stage.id));
380
- const seenPaths = new Map();
392
+ const seenArtifactsByPath = new Map();
381
393
  const seenArtifactIds = new Set();
382
394
  const schemaArtifacts = listContextInterfaceArtifacts(buildPlanSchema);
383
395
  const artifactById = new Map(schemaArtifacts.map((artifact) => [artifact.id, artifact]));
384
396
  const normalizedParts = (value) => value.replaceAll("\\", "/").split("/").filter(Boolean);
397
+ const normalizedPathKey = (value) => normalizedParts(value).join("/");
385
398
  const hasOverlappingPath = (value, other) => {
386
399
  const a = normalizedParts(value);
387
400
  const b = normalizedParts(other);
@@ -389,49 +402,74 @@ export function validateBuildPlanPackage(dirPath) {
389
402
  const longer = a.length <= b.length ? b : a;
390
403
  return shorter.every((part, index) => longer[index] === part);
391
404
  };
405
+ // Canonical required layer dirs come from the central layer model. Package
406
+ // validation is a strict-declaration context (it mirrors authoring), so it
407
+ // matches the exact lowercase dir name a Build Plan must declare.
408
+ const requiredLayerPaths = new Set(CANONICAL_LAYER_DIRS);
409
+ const isRequiredLayerArtifact = (artifact) => artifact.kind === "directory" && requiredLayerPaths.has(normalizedPathKey(artifact.path));
410
+ const allowsRequiredLayerContainment = (artifact, existingArtifact) => {
411
+ const artifactPath = normalizedPathKey(artifact.path);
412
+ const existingPath = normalizedPathKey(existingArtifact.path);
413
+ if (artifactPath === existingPath)
414
+ return false;
415
+ if (!hasOverlappingPath(artifact.path, existingArtifact.path))
416
+ return false;
417
+ return isRequiredLayerArtifact(artifact) || isRequiredLayerArtifact(existingArtifact);
418
+ };
392
419
  for (const artifact of schemaArtifacts) {
393
420
  if (seenArtifactIds.has(artifact.id)) {
394
- errors.push(`build-plan.schema.json repeats Artifact id "${artifact.id}".`);
421
+ errors.push(`build-plan.schema.json repeats requested output id "${artifact.id}".`);
395
422
  }
396
423
  seenArtifactIds.add(artifact.id);
397
- const existingPathOwner = seenPaths.get(artifact.path);
424
+ const pathKey = normalizedPathKey(artifact.path);
425
+ const existingPathOwner = seenArtifactsByPath.get(pathKey);
398
426
  if (existingPathOwner) {
399
- errors.push(`build-plan.schema.json repeats Artifact path "${artifact.path}".`);
427
+ errors.push(`build-plan.schema.json repeats requested output path "${artifact.path}".`);
400
428
  }
401
- for (const [existingPath, existingZoneId] of seenPaths.entries()) {
402
- if (existingPath === artifact.path)
429
+ for (const existingArtifact of seenArtifactsByPath.values()) {
430
+ if (normalizedPathKey(existingArtifact.path) === pathKey)
403
431
  continue;
404
- if (hasOverlappingPath(artifact.path, existingPath)) {
405
- errors.push(`build-plan.schema.json Artifacts "${artifact.id}" and "${existingZoneId}" overlap on path "${artifact.path}" / "${existingPath}".`);
432
+ if (hasOverlappingPath(artifact.path, existingArtifact.path) &&
433
+ !allowsRequiredLayerContainment(artifact, existingArtifact)) {
434
+ errors.push(`build-plan.schema.json requested outputs "${artifact.id}" and "${existingArtifact.id}" overlap on path "${artifact.path}" / "${existingArtifact.path}".`);
406
435
  }
407
436
  }
408
- seenPaths.set(artifact.path, artifact.id);
409
- if ((artifact.role === "input" || artifact.role === "runtime") && artifact.owned_by.length > 0) {
410
- errors.push(`build-plan.schema.json Artifact "${artifact.id}" cannot declare owners because its role is "${artifact.role}".`);
411
- }
437
+ seenArtifactsByPath.set(pathKey, artifact);
412
438
  for (const owner of artifact.owned_by) {
413
439
  if (!stageIds.has(owner)) {
414
- errors.push(`build-plan.schema.json references unknown stage "${owner}" for Artifact path "${artifact.path}".`);
440
+ errors.push(`build-plan.schema.json references unknown stage "${owner}" for requested output path "${artifact.path}".`);
441
+ continue;
442
+ }
443
+ const ownerStage = stages.find((stage) => stage.id === owner);
444
+ if (ownerStage && !ownerStage.writes.includes(artifact.id)) {
445
+ errors.push(`build-plan.schema.json requested output "${artifact.id}" is owned by stage "${owner}" but that stage does not write it in build-plan.json.`);
415
446
  }
416
447
  }
417
448
  }
449
+ for (const requiredPath of CANONICAL_LAYER_DIRS) {
450
+ const artifact = seenArtifactsByPath.get(requiredPath);
451
+ if (!artifact) {
452
+ errors.push(`File-based Build Plan packages must declare a writable requested output at "${requiredPath}".`);
453
+ continue;
454
+ }
455
+ if (artifact.owned_by.length === 0) {
456
+ errors.push(`File-based Build Plan requested output "${artifact.id}" at "${requiredPath}" must be owned by at least one stage.`);
457
+ }
458
+ }
418
459
  for (const stage of stages) {
419
460
  for (const artifactId of stage.reads) {
420
461
  if (!artifactById.has(artifactId)) {
421
- errors.push(`Stage "${stage.id}" reads unknown Artifact "${artifactId}".`);
462
+ errors.push(`Stage "${stage.id}" reads unknown requested output "${artifactId}".`);
422
463
  }
423
464
  }
424
465
  for (const artifactId of stage.writes) {
425
466
  const artifact = artifactById.get(artifactId);
426
467
  if (!artifact) {
427
- errors.push(`Stage "${stage.id}" writes unknown Artifact "${artifactId}".`);
468
+ errors.push(`Stage "${stage.id}" writes unknown requested output "${artifactId}".`);
428
469
  continue;
429
470
  }
430
- if (artifact.role === "input" || artifact.role === "runtime") {
431
- errors.push(`Stage "${stage.id}" writes Artifact "${artifactId}" but Artifacts with role "${artifact.role}" are engine-owned inputs, not writable stage outputs.`);
432
- }
433
471
  if (!artifact.owned_by.includes(stage.id)) {
434
- errors.push(`Stage "${stage.id}" writes Artifact "${artifactId}" but that Artifact is not owned by the stage in build-plan.schema.json.`);
472
+ errors.push(`Stage "${stage.id}" writes requested output "${artifactId}" but that output is not owned by the stage in build-plan.schema.json.`);
435
473
  }
436
474
  }
437
475
  }
@@ -452,21 +490,33 @@ export function validateBuildPlanPackage(dirPath) {
452
490
  counts,
453
491
  };
454
492
  }
455
- function describeContextInterfaceValidationIssues(dirPath) {
493
+ /**
494
+ * Explain WHY a `build-plan.schema.json` failed to read. Exported so the
495
+ * regression test can assert the corrected branch directly: a valid schema must
496
+ * return `[]` (no issues), an invalid one must return the concrete Zod issues.
497
+ * The previous inverted `if (parsed.success)` reported a VALID schema as
498
+ * "missing or invalid."
499
+ */
500
+ export function describeContextInterfaceValidationIssues(dirPath) {
456
501
  const buildPlanSchemaPath = contextInterfaceFilePath(dirPath);
457
502
  if (!existsSync(buildPlanSchemaPath)) {
458
503
  return ["build-plan.schema.json is missing."];
459
504
  }
460
- const raw = readJsonFileUnchecked(buildPlanSchemaPath, "Build Plan context interface");
505
+ const raw = readJsonFileUnchecked(buildPlanSchemaPath, "Build Plan requested output contract");
461
506
  if (raw === null) {
462
507
  return ["build-plan.schema.json is invalid JSON."];
463
508
  }
464
509
  const parsed = ContextInterfaceSchema.safeParse(raw);
465
- if (parsed.success) {
466
- return ["build-plan.schema.json is missing or invalid."];
510
+ if (!parsed.success) {
511
+ // Invalid schema: surface the concrete Zod issues. Matches the sibling
512
+ // `readContextInterface` (context-interface.ts:174), which treats
513
+ // `!parsed.success` as the failure case. The previous `if (parsed.success)`
514
+ // was inverted and reported a VALID schema as "missing or invalid."
515
+ return parsed.error.issues.map((issue) => {
516
+ const path = issue.path.length > 0 ? issue.path.join(".") : "<root>";
517
+ return `build-plan.schema.json ${path}: ${issue.message}`;
518
+ });
467
519
  }
468
- return parsed.error.issues.map((issue) => {
469
- const path = issue.path.length > 0 ? issue.path.join(".") : "<root>";
470
- return `build-plan.schema.json ${path}: ${issue.message}`;
471
- });
520
+ // A valid schema has no issues to describe.
521
+ return [];
472
522
  }
@@ -1,7 +1,7 @@
1
1
  import { cpSync, existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync, } from "node:fs";
2
2
  import { dirname, join, resolve } from "node:path";
3
3
  import { warnInterf } from "../../contracts/utils/logger.js";
4
- import { userBuildPlanPackagePath, userBuildPlansRoot, } from "../../contracts/lib/preparation-paths.js";
4
+ import { userBuildPlanPackagePath, userBuildPlansRoot, } from "../../contracts/lib/project-paths.js";
5
5
  import { loadBuildPlanDefinitionFromDir, } from "./local-build-plans.js";
6
6
  export function userBuildPlanPath(id) {
7
7
  return userBuildPlanPackagePath(id);
@@ -1,3 +1,6 @@
1
1
  export * as schema from "./lib/schema.js";
2
- export type { AgentRecord, AgentsRegistry, Artifact, ArtifactId, ArtifactShape, ArtifactStatus, CanonicalRole, Check, CheckKind, GateStatus, Locator, LocatorKind, BuildPlanId, PreparationName, Proof, ReadinessGate, ReadinessStatus, Readiness, ReadyVerdict, RoleMap, RuntimeContractType, RuntimeExecutorInfo, RuntimeStage, RuntimeTargetType, Source, SourceFile, SourceFiles, SourceKind, SourceSnapshot, StageInput, StageInputs, StandardEvidenceFrontmatterKey, TestCaseExpect, TestTargetType, VerifyTargetResult, } from "./lib/schema.js";
3
- export { CANONICAL_ROLES, CHECK_KINDS, STANDARD_EVIDENCE_FRONTMATTER_KEYS, } from "./lib/schema.js";
2
+ export * as projectSchema from "./lib/project-schema.js";
3
+ export type { AgentRecord, AgentsRegistry, Artifact, ArtifactId, ArtifactShape, ArtifactStatus, CanonicalRole, Check, CheckKind, BuildCheckRow, BuildEvidenceIssueState, BuildEvidenceMetric, BuildEvidenceRef, BuildEvidenceResource, ContextCheck, ContextCheckDeclaration, ContextCheckProjection, ContextCheckStatus, GateStatus, Locator, LocatorKind, BuildPlanId, ProjectId, ProjectIntent, CheckResult, ReadinessGate, ReadinessStatus, Readiness, ReadyVerdict, RoleMap, RuntimeContractType, RuntimeExecutorInfo, RuntimeStage, RuntimeTargetType, Source, SourceBinding, SourceFile, SourceFiles, SourceKind, SourceState, StageEvidence, StageEvidenceCount, StageEvidenceEdge, StageEvidenceItem, StageEvidenceOutputRef, StageEvidenceSourceRef, StageInput, StageInputs, StandardEvidenceFrontmatterKey, TestCaseExpect, TestTargetType, VerifyTargetResult, } from "./lib/schema.js";
4
+ export type { ContextGraph, ContextGraphArtifactHandoff, ContextGraphHandoff, ContextGraphLocator, ContextGraphPortableHandoff, DriftKind, ProjectName, ProjectSourceState, Trace, Traces, } from "./lib/project-schema.js";
5
+ export { CANONICAL_ROLES, CHECK_PARAM_CONTRACTS, CHECK_KINDS, ContextCheckDeclarationSchema, ContextCheckProjectionSchema, ContextCheckSchema, ContextCheckStatusSchema, ProjectIntentSchema, SourceBindingSchema, BuildCheckRowSchema, BuildEvidenceIssueStateSchema, BuildEvidenceMetricSchema, BuildEvidenceRefSchema, BuildEvidenceResourceSchema, EvidenceCountKeySchema, StageEvidenceCountSchema, StageEvidenceEdgeSchema, StageEvidenceItemSchema, StageEvidenceOutputRefSchema, StageEvidenceSchema, StageEvidenceSourceRefSchema, STANDARD_EVIDENCE_FRONTMATTER_KEYS, } from "./lib/schema.js";
6
+ export { ContextGraphArtifactHandoffSchema, ContextGraphHandoffSchema, ContextGraphPortableHandoffSchema, } from "./lib/project-schema.js";
@@ -1,2 +1,4 @@
1
1
  export * as schema from "./lib/schema.js";
2
- export { CANONICAL_ROLES, CHECK_KINDS, STANDARD_EVIDENCE_FRONTMATTER_KEYS, } from "./lib/schema.js";
2
+ export * as projectSchema from "./lib/project-schema.js";
3
+ export { CANONICAL_ROLES, CHECK_PARAM_CONTRACTS, CHECK_KINDS, ContextCheckDeclarationSchema, ContextCheckProjectionSchema, ContextCheckSchema, ContextCheckStatusSchema, ProjectIntentSchema, SourceBindingSchema, BuildCheckRowSchema, BuildEvidenceIssueStateSchema, BuildEvidenceMetricSchema, BuildEvidenceRefSchema, BuildEvidenceResourceSchema, EvidenceCountKeySchema, StageEvidenceCountSchema, StageEvidenceEdgeSchema, StageEvidenceItemSchema, StageEvidenceOutputRefSchema, StageEvidenceSchema, StageEvidenceSourceRefSchema, STANDARD_EVIDENCE_FRONTMATTER_KEYS, } from "./lib/schema.js";
4
+ export { ContextGraphArtifactHandoffSchema, ContextGraphHandoffSchema, ContextGraphPortableHandoffSchema, } from "./lib/project-schema.js";
@@ -0,0 +1,161 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * The Context Graph layer model — defined ONCE here and imported by every
4
+ * consumer (Build Plan authoring validation, package validation, StageManifest
5
+ * role inference, the graph-relative link scanner, and the deterministic check
6
+ * defaults). This is the single source of truth for "what are the canonical
7
+ * top-level layers of a Context Graph, and how does a path classify into one."
8
+ *
9
+ * The architecture is FIXED top-level layers / FLEXIBLE interior:
10
+ * - `summaries/` — the grounding/coverage layer (one folder per Source file).
11
+ * - `knowledge/` — the knowledge graph layer; its interior is free
12
+ * (`knowledge/claims/`, `knowledge/entities/`, `knowledge/timelines/`, …).
13
+ * - `artifacts/` — task handoffs / supplemental entrypoints.
14
+ * - `home.md` — the primary entrypoint spine file (exact, no children).
15
+ *
16
+ * Two faces, one definition:
17
+ * - The canonical lowercase set (`CANONICAL_LAYER_DIRS`, `CanonicalLayerSchema`,
18
+ * `isCanonicalLayerDeclaration`) is what a Build Plan may DECLARE. Authoring
19
+ * is strict: a layer must be declared in exact lowercase (`knowledge/`, not
20
+ * `Knowledge/`).
21
+ * - The tolerant classifier (`layerForPath`, `roleForLayerPath`) is DEFENSIVE
22
+ * POLICING of already-built (possibly hand-edited or bad) outputs. It is
23
+ * case-insensitive so a graph that shipped `Knowledge/` notes is still
24
+ * routed into the knowledge layer and still policed by the orphan / web
25
+ * gates — casing can never be used to dodge a gate. Classification only ever
26
+ * widens membership; it never narrows it.
27
+ */
28
+ /**
29
+ * The three canonical top-level DIRECTORY layers, in lockstep lowercase. These
30
+ * are the only top-level folders a Build Plan may declare for core derived
31
+ * content. `home.md` is the spine FILE and is handled separately (it is not a
32
+ * directory layer).
33
+ */
34
+ export declare const CANONICAL_LAYER_DIRS: readonly ["summaries", "knowledge", "artifacts"];
35
+ export type CanonicalLayerDir = (typeof CANONICAL_LAYER_DIRS)[number];
36
+ /**
37
+ * Set form of the canonical directory layers, for membership tests at call
38
+ * sites (authoring guard, package validation) that previously hand-rolled their
39
+ * own `new Set(["summaries", "knowledge", "artifacts"])`.
40
+ */
41
+ export declare const CANONICAL_LAYER_DIR_SET: ReadonlySet<CanonicalLayerDir>;
42
+ /**
43
+ * The canonical layer "label" a path resolves to. Mirrors the directory layers
44
+ * plus `home` (the spine) and `other` (anything outside the canonical
45
+ * skeleton). This is the layer identity used for role inference and per-layer
46
+ * rollups.
47
+ */
48
+ export declare const CanonicalLayerSchema: z.ZodEnum<{
49
+ other: "other";
50
+ knowledge: "knowledge";
51
+ summaries: "summaries";
52
+ artifacts: "artifacts";
53
+ home: "home";
54
+ }>;
55
+ export type CanonicalLayer = z.infer<typeof CanonicalLayerSchema>;
56
+ /**
57
+ * The exact spine file name. Canonical only as the top-level file `home.md`
58
+ * with no children.
59
+ */
60
+ export declare const HOME_SPINE_FILE = "home.md";
61
+ /**
62
+ * Normalize a path to forward slashes with no leading `./` and no trailing
63
+ * slashes. Shared so every consumer normalizes identically before classifying
64
+ * — a layer must not depend on `\` vs `/` or a stray trailing separator.
65
+ */
66
+ export declare function normalizeLayerPath(value: string): string;
67
+ /**
68
+ * The FIRST path segment of a normalized path (the top-level folder, or the
69
+ * file name when the path is a bare top-level file). Empty string for an empty
70
+ * path. Layer membership keys off this segment only, so the entire interior of
71
+ * `knowledge/` is unconstrained.
72
+ */
73
+ export declare function topLevelSegment(value: string): string;
74
+ /**
75
+ * Is `segment` an EXACT canonical layer declaration a Build Plan may use? Used
76
+ * by authoring validation. Strict: `knowledge` passes, `Knowledge` does NOT.
77
+ * The mixed-case form is rejected at authoring so a declaration can never pass
78
+ * authoring and then break the lowercase-path-based package validators and
79
+ * runtime scanners downstream.
80
+ */
81
+ export declare function isCanonicalLayerDeclaration(segment: string): boolean;
82
+ /**
83
+ * Is this normalized top-level path a legal canonical DECLARATION? Accepts the
84
+ * exact lowercase layer dirs (and their interiors, since only the first segment
85
+ * is checked) and the exact spine file `home.md`. Strict on case. A non-path
86
+ * artifact (no folder) is the caller's concern; this only judges path shape.
87
+ */
88
+ export declare function isCanonicalDeclarationPath(rawPath: string): boolean;
89
+ /**
90
+ * Classify any path into its canonical layer. Case-INSENSITIVE on the top-level
91
+ * segment: a custom plan (or a hand-edited output) writing notes into
92
+ * `Knowledge/` (or `Summaries/`/`Artifacts/`) still classifies into the right
93
+ * layer, so the orphan + web + connectivity gates can't be dodged by path
94
+ * casing. Canonical layers are lowercase; this only WIDENS membership, never
95
+ * narrows it, and is the single classifier every consumer (note role, stage
96
+ * role, disconnected/web checks, metrics) routes through.
97
+ *
98
+ * Returns `home` for the spine file, a directory layer for `summaries/`,
99
+ * `knowledge/`, `artifacts/`, and `other` for anything else.
100
+ */
101
+ export declare function layerForPath(rawPath: string): CanonicalLayer;
102
+ /**
103
+ * The directory layer (or `null`) a check should scan for a given artifact
104
+ * target path. `home` and `other` have no scannable directory layer, so they
105
+ * return `null`; the three directory layers return their lowercase dir name.
106
+ * Used by the deterministic checks to derive their scan root from the artifact
107
+ * they are attached to instead of hardcoding a layer dir.
108
+ */
109
+ export declare function layerDirForPath(rawPath: string): CanonicalLayerDir | null;
110
+ /**
111
+ * The fine-grained kind of a note INSIDE the knowledge layer, by the structural
112
+ * convention every consumer agreed on: a `knowledge/claims/` folder (or a
113
+ * `claim-` leaf) is a claim, `knowledge/entities/` (or `entity-`) an entity,
114
+ * `knowledge/indexes/` (or `index-`) an index. `null` means "knowledge note
115
+ * with no recognized sub-kind". This is the single definition both the
116
+ * StageManifest note-kind labels and the semantic-graph node kinds delegate to,
117
+ * so the `knowledge/claims/` / `claim-` rules can never drift between them.
118
+ *
119
+ * Only the STRUCTURAL rules live here (folder prefix + leaf-token prefix). The
120
+ * looser "leaf merely contains `index`" heuristic is intentionally NOT here; it
121
+ * is a semantic-graph display nicety, and folding it in would silently
122
+ * reclassify manifest note kinds. Case-insensitive, like the rest of this
123
+ * module, so casing can never dodge the classification.
124
+ */
125
+ export type KnowledgeNoteKind = "claim" | "entity" | "index" | null;
126
+ export declare function knowledgeNoteKind(rawPath: string): KnowledgeNoteKind;
127
+ /**
128
+ * The ResourceRef role a canonical layer maps to. `summaries → summary`,
129
+ * `knowledge → knowledge`, `artifacts`/`home → entrypoint`, `other → other`.
130
+ * Kept here (next to the layer model) so manifest role inference and the layer
131
+ * classifier never drift apart. The string union is the same as
132
+ * `ResourceRoleSchema`'s layer-bearing members; it is intentionally a plain
133
+ * union so this module has no import cycle back into the big schema.
134
+ */
135
+ export type ContextGraphLayerRole = "summary" | "knowledge" | "entrypoint" | "other";
136
+ export declare function roleForLayer(layer: CanonicalLayer): ContextGraphLayerRole;
137
+ /**
138
+ * Role for a produced-note path (or any graph-relative path), via the tolerant
139
+ * classifier. This is the single mapping `roleForPath` callers route through.
140
+ */
141
+ export declare function roleForLayerPath(rawPath: string): ContextGraphLayerRole;
142
+ /**
143
+ * Role for a Build Plan artifact's WRITE path. A directory artifact declared as
144
+ * a bare layer token (`knowledge`, `summaries`, `artifacts`) carries no
145
+ * trailing segment; it is still classified as that layer because classification
146
+ * keys off the (case-insensitive) first segment. The `home`/`home.md` spine is
147
+ * the entrypoint. This makes a custom plan that writes artifact id "claims" to
148
+ * path `knowledge/` (or the bare token `knowledge`) still classify as the
149
+ * knowledge layer, with no reliance on stringly ids.
150
+ */
151
+ export declare function roleForWritePath(rawPath: string): ContextGraphLayerRole;
152
+ /**
153
+ * Matches a graph-relative reference to a canonical layer note inside free text
154
+ * (note bodies): `summaries/…`, `knowledge/…`, `artifacts/…` (optionally ending
155
+ * `.md`), or the exact `home.md`, when bounded by whitespace/brackets/quotes.
156
+ * Derived from `CANONICAL_LAYER_DIRS` so the scanner and the layer model can
157
+ * never list different folders. A fresh RegExp is returned each call because the
158
+ * pattern is stateful (`/g`) and reusing one instance across `matchAll` loops
159
+ * would carry `lastIndex` between callers.
160
+ */
161
+ export declare function graphRelativePathPattern(): RegExp;