@interf/compiler 0.9.5 → 0.16.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 (365) hide show
  1. package/README.md +135 -91
  2. package/TRADEMARKS.md +2 -13
  3. package/agent-skills/interf-actions/SKILL.md +143 -38
  4. package/agent-skills/interf-actions/references/cli.md +134 -67
  5. package/builtin-methods/interf-default/README.md +3 -4
  6. package/builtin-methods/interf-default/compile/stages/shape/SKILL.md +2 -2
  7. package/builtin-methods/interf-default/compile/stages/summarize/SKILL.md +2 -1
  8. package/builtin-methods/interf-default/improve/SKILL.md +1 -1
  9. package/builtin-methods/interf-default/method.json +10 -4
  10. package/builtin-methods/interf-default/method.schema.json +0 -9
  11. package/builtin-methods/interf-default/use/query/SKILL.md +5 -5
  12. package/dist/cli/commands/agents.d.ts +2 -0
  13. package/dist/cli/commands/agents.js +213 -0
  14. package/dist/cli/commands/compile.d.ts +8 -25
  15. package/dist/cli/commands/compile.js +83 -359
  16. package/dist/cli/commands/doctor.js +2 -2
  17. package/dist/cli/commands/login.d.ts +7 -0
  18. package/dist/cli/commands/login.js +39 -0
  19. package/dist/cli/commands/logout.d.ts +2 -0
  20. package/dist/cli/commands/logout.js +16 -0
  21. package/dist/cli/commands/mcp.d.ts +42 -0
  22. package/dist/cli/commands/mcp.js +239 -0
  23. package/dist/cli/commands/method.d.ts +2 -0
  24. package/dist/cli/commands/method.js +113 -0
  25. package/dist/cli/commands/prep.d.ts +2 -0
  26. package/dist/cli/commands/prep.js +152 -0
  27. package/dist/cli/commands/reset.d.ts +8 -1
  28. package/dist/cli/commands/reset.js +47 -26
  29. package/dist/cli/commands/runs.d.ts +2 -0
  30. package/dist/cli/commands/runs.js +120 -0
  31. package/dist/cli/commands/status.d.ts +6 -1
  32. package/dist/cli/commands/status.js +68 -111
  33. package/dist/cli/commands/verify.d.ts +7 -1
  34. package/dist/cli/commands/verify.js +69 -85
  35. package/dist/cli/commands/web.d.ts +0 -9
  36. package/dist/cli/commands/web.js +201 -121
  37. package/dist/cli/commands/wizard.d.ts +9 -0
  38. package/dist/cli/commands/wizard.js +689 -0
  39. package/dist/cli/index.d.ts +10 -7
  40. package/dist/cli/index.js +19 -12
  41. package/dist/compiler-ui/404.html +1 -1
  42. package/dist/compiler-ui/__next.__PAGE__.txt +2 -2
  43. package/dist/compiler-ui/__next._full.txt +3 -3
  44. package/dist/compiler-ui/__next._head.txt +1 -1
  45. package/dist/compiler-ui/__next._index.txt +2 -2
  46. package/dist/compiler-ui/__next._tree.txt +2 -2
  47. package/dist/compiler-ui/_next/static/chunks/{177mvn4rse235.js → 0jipmpez3_ehh.js} +16 -16
  48. package/dist/compiler-ui/_next/static/chunks/{18a8f2jkv3z.c.css → 13awzu4tooflw.css} +1 -1
  49. package/dist/compiler-ui/_not-found/__next._full.txt +2 -2
  50. package/dist/compiler-ui/_not-found/__next._head.txt +1 -1
  51. package/dist/compiler-ui/_not-found/__next._index.txt +2 -2
  52. package/dist/compiler-ui/_not-found/__next._not-found.__PAGE__.txt +1 -1
  53. package/dist/compiler-ui/_not-found/__next._not-found.txt +1 -1
  54. package/dist/compiler-ui/_not-found/__next._tree.txt +2 -2
  55. package/dist/compiler-ui/_not-found.html +1 -1
  56. package/dist/compiler-ui/_not-found.txt +2 -2
  57. package/dist/compiler-ui/index.html +1 -1
  58. package/dist/compiler-ui/index.txt +3 -3
  59. package/dist/index.d.ts +2 -2
  60. package/dist/index.js +2 -2
  61. package/dist/packages/contracts/index.d.ts +2 -1
  62. package/dist/packages/contracts/index.js +1 -0
  63. package/dist/packages/contracts/lib/preparation-paths.d.ts +117 -0
  64. package/dist/packages/contracts/lib/preparation-paths.js +177 -0
  65. package/dist/packages/contracts/lib/schema.d.ts +187 -13
  66. package/dist/packages/contracts/lib/schema.js +148 -3
  67. package/dist/packages/contracts/utils/filesystem.d.ts +9 -0
  68. package/dist/packages/contracts/utils/filesystem.js +142 -0
  69. package/dist/packages/{local-service → engine}/action-definitions.d.ts +14 -14
  70. package/dist/packages/{local-service → engine}/action-definitions.js +35 -29
  71. package/dist/packages/{local-service → engine}/action-planner.d.ts +1 -1
  72. package/dist/packages/{local-service → engine}/action-planner.js +3 -2
  73. package/dist/packages/{agents → engine/agents}/index.d.ts +3 -0
  74. package/dist/packages/{agents → engine/agents}/index.js +3 -0
  75. package/dist/packages/{agents → engine/agents}/lib/compiled-bootstrap.js +2 -2
  76. package/dist/packages/engine/agents/lib/detection.d.ts +13 -0
  77. package/dist/packages/{agents → engine/agents}/lib/detection.js +11 -0
  78. package/dist/packages/{agents → engine/agents}/lib/executors.d.ts +2 -2
  79. package/dist/packages/{agents → engine/agents}/lib/shells.d.ts +5 -5
  80. package/dist/packages/{agents → engine/agents}/lib/shells.js +117 -58
  81. package/dist/packages/{agents → engine/agents}/lib/user-config.d.ts +4 -2
  82. package/dist/packages/engine/agents/lib/user-config.js +24 -0
  83. package/dist/packages/engine/agents/registry.d.ts +91 -0
  84. package/dist/packages/engine/agents/registry.js +321 -0
  85. package/dist/packages/engine/agents/role-executors.d.ts +35 -0
  86. package/dist/packages/engine/agents/role-executors.js +88 -0
  87. package/dist/packages/engine/agents/role-router.d.ts +66 -0
  88. package/dist/packages/engine/agents/role-router.js +73 -0
  89. package/dist/packages/{local-service → engine}/client.d.ts +59 -60
  90. package/dist/packages/{local-service → engine}/client.js +137 -145
  91. package/dist/packages/{compiler → engine/compile}/artifact-counts.js +1 -1
  92. package/dist/packages/{compiler → engine/compile}/compiled-paths.d.ts +9 -2
  93. package/dist/packages/{compiler → engine/compile}/compiled-paths.js +30 -15
  94. package/dist/packages/{compiler → engine/compile}/compiled-pipeline.d.ts +12 -1
  95. package/dist/packages/{compiler → engine/compile}/compiled-pipeline.js +39 -9
  96. package/dist/packages/{compiler → engine/compile}/compiled-schema.d.ts +2 -2
  97. package/dist/packages/{compiler → engine/compile}/compiled-schema.js +4 -4
  98. package/dist/packages/{compiler → engine/compile}/compiled-stage-plan.d.ts +1 -1
  99. package/dist/packages/{compiler → engine/compile}/compiled-stage-plan.js +8 -4
  100. package/dist/packages/{compiler → engine/compile}/compiled-stage-runner.d.ts +1 -1
  101. package/dist/packages/{compiler → engine/compile}/compiled-stage-runner.js +3 -3
  102. package/dist/packages/{compiler → engine/compile}/compiled-target.d.ts +3 -3
  103. package/dist/packages/{compiler → engine/compile}/compiled-target.js +3 -3
  104. package/dist/packages/{compiler → engine/compile}/discovery.js +1 -1
  105. package/dist/packages/{compiler → engine/compile}/index.d.ts +1 -0
  106. package/dist/packages/{compiler → engine/compile}/index.js +1 -0
  107. package/dist/packages/{compiler → engine/compile}/lib/schema.d.ts +26 -31
  108. package/dist/packages/{compiler → engine/compile}/lib/schema.js +2 -13
  109. package/dist/packages/engine/compile/method-runs.d.ts +14 -0
  110. package/dist/packages/{compiler → engine/compile}/method-runs.js +5 -6
  111. package/dist/packages/{compiler → engine/compile}/reset.js +3 -1
  112. package/dist/packages/{compiler → engine/compile}/runtime-acceptance.js +17 -14
  113. package/dist/packages/{compiler → engine/compile}/runtime-contracts.js +0 -3
  114. package/dist/packages/{compiler → engine/compile}/runtime-prompt.js +1 -1
  115. package/dist/packages/{compiler → engine/compile}/runtime-reconcile.d.ts +1 -1
  116. package/dist/packages/{compiler → engine/compile}/runtime-reconcile.js +12 -10
  117. package/dist/packages/{compiler → engine/compile}/runtime-runs.d.ts +1 -2
  118. package/dist/packages/{compiler → engine/compile}/runtime-runs.js +3 -43
  119. package/dist/packages/{compiler → engine/compile}/runtime-types.d.ts +1 -5
  120. package/dist/packages/{compiler → engine/compile}/runtime.d.ts +2 -2
  121. package/dist/packages/{compiler → engine/compile}/runtime.js +1 -1
  122. package/dist/packages/engine/compile/source-files.d.ts +46 -0
  123. package/dist/packages/engine/compile/source-files.js +149 -0
  124. package/dist/packages/engine/compile/state-artifacts.d.ts +9 -0
  125. package/dist/packages/{compiler → engine/compile}/state-artifacts.js +4 -3
  126. package/dist/packages/{compiler → engine/compile}/state-health.js +2 -2
  127. package/dist/packages/{compiler → engine/compile}/state-io.d.ts +3 -2
  128. package/dist/packages/{compiler → engine/compile}/state-io.js +13 -7
  129. package/dist/packages/{compiler → engine/compile}/state-paths.d.ts +2 -1
  130. package/dist/packages/engine/compile/state-paths.js +16 -0
  131. package/dist/packages/engine/compile/state-view.d.ts +5 -0
  132. package/dist/packages/{compiler → engine/compile}/state-view.js +20 -30
  133. package/dist/packages/engine/compile/state.d.ts +7 -0
  134. package/dist/packages/{compiler → engine/compile}/state.js +3 -3
  135. package/dist/packages/{compiler → engine/compile}/validate-compiled.js +2 -2
  136. package/dist/packages/{compiler → engine/compile}/validate.d.ts +1 -1
  137. package/dist/packages/{compiler → engine/compile}/validate.js +3 -3
  138. package/dist/packages/engine/connection-config.d.ts +38 -0
  139. package/dist/packages/engine/connection-config.js +75 -0
  140. package/dist/packages/{execution → engine/execution}/lib/schema.d.ts +52 -72
  141. package/dist/packages/{execution → engine/execution}/lib/schema.js +3 -3
  142. package/dist/packages/engine/index.d.ts +22 -0
  143. package/dist/packages/engine/index.js +15 -0
  144. package/dist/packages/engine/instance-paths.d.ts +100 -0
  145. package/dist/packages/engine/instance-paths.js +165 -0
  146. package/dist/packages/{local-service → engine}/lib/schema.d.ts +392 -2408
  147. package/dist/packages/{local-service → engine}/lib/schema.js +164 -76
  148. package/dist/packages/{local-service → engine}/native-run-handlers.d.ts +7 -5
  149. package/dist/packages/{local-service → engine}/native-run-handlers.js +71 -27
  150. package/dist/packages/engine/preparation-store.d.ts +104 -0
  151. package/dist/packages/engine/preparation-store.js +194 -0
  152. package/dist/packages/{local-service → engine}/readiness-check-draft.d.ts +2 -2
  153. package/dist/packages/engine/routes.d.ts +78 -0
  154. package/dist/packages/engine/routes.js +92 -0
  155. package/dist/packages/{local-service → engine}/run-observability.d.ts +3 -3
  156. package/dist/packages/{local-service → engine}/run-observability.js +25 -24
  157. package/dist/packages/engine/runtime-caches.d.ts +76 -0
  158. package/dist/packages/engine/runtime-caches.js +191 -0
  159. package/dist/packages/engine/runtime-event-applier.d.ts +12 -0
  160. package/dist/packages/engine/runtime-event-applier.js +177 -0
  161. package/dist/packages/engine/runtime-persistence.d.ts +47 -0
  162. package/dist/packages/engine/runtime-persistence.js +137 -0
  163. package/dist/packages/engine/runtime-proposal-helpers.d.ts +35 -0
  164. package/dist/packages/engine/runtime-proposal-helpers.js +251 -0
  165. package/dist/packages/engine/runtime-resource-builders.d.ts +52 -0
  166. package/dist/packages/engine/runtime-resource-builders.js +149 -0
  167. package/dist/packages/engine/runtime.d.ts +318 -0
  168. package/dist/packages/{local-service → engine}/runtime.js +835 -1011
  169. package/dist/packages/{local-service → engine}/server.d.ts +15 -0
  170. package/dist/packages/engine/server.js +1257 -0
  171. package/dist/packages/engine/service-registry.d.ts +47 -0
  172. package/dist/packages/engine/service-registry.js +137 -0
  173. package/dist/packages/{testing → engine/verify}/lib/schema.d.ts +11 -11
  174. package/dist/packages/{testing → engine/verify}/lib/schema.js +3 -3
  175. package/dist/packages/{testing → engine/verify}/readiness-check-run.d.ts +9 -16
  176. package/dist/packages/{testing → engine/verify}/readiness-check-run.js +38 -94
  177. package/dist/packages/{testing → engine/verify}/test-execution.js +6 -6
  178. package/dist/packages/{testing → engine/verify}/test-paths.js +5 -4
  179. package/dist/packages/{testing → engine/verify}/test-sandbox.d.ts +0 -1
  180. package/dist/packages/{testing → engine/verify}/test-sandbox.js +17 -33
  181. package/dist/packages/{testing → engine/verify}/test-specs.js +1 -1
  182. package/dist/packages/{testing → engine/verify}/test-targets.d.ts +1 -1
  183. package/dist/packages/{testing → engine/verify}/test-targets.js +9 -9
  184. package/dist/packages/{testing → engine/verify}/test.d.ts +1 -1
  185. package/dist/packages/{testing → engine/verify}/test.js +1 -1
  186. package/dist/packages/{method-authoring → methods/authoring}/method-authoring.d.ts +12 -4
  187. package/dist/packages/{method-authoring → methods/authoring}/method-authoring.js +70 -7
  188. package/dist/packages/{method-authoring → methods/authoring}/method-edit-session.d.ts +2 -2
  189. package/dist/packages/{method-authoring → methods/authoring}/method-improvement.d.ts +4 -4
  190. package/dist/packages/{method-authoring → methods/authoring}/method-improvement.js +16 -10
  191. package/dist/packages/{method-package → methods/package}/builtin-compiled-method.d.ts +4 -5
  192. package/dist/packages/{method-package → methods/package}/builtin-compiled-method.js +10 -16
  193. package/dist/packages/{method-package → methods/package}/context-interface.d.ts +5 -41
  194. package/dist/packages/{method-package → methods/package}/context-interface.js +3 -25
  195. package/dist/packages/{method-package → methods/package}/interf-method-package.d.ts +4 -4
  196. package/dist/packages/{method-package → methods/package}/interf-method-package.js +24 -35
  197. package/dist/packages/{method-package → methods/package}/lib/package-root.js +2 -2
  198. package/dist/packages/{method-package → methods/package}/local-methods.d.ts +18 -8
  199. package/dist/packages/{method-package → methods/package}/local-methods.js +64 -45
  200. package/dist/packages/{method-package → methods/package}/method-definitions.d.ts +16 -36
  201. package/dist/packages/{method-package → methods/package}/method-definitions.js +53 -40
  202. package/dist/packages/{method-package → methods/package}/method-helpers.d.ts +2 -14
  203. package/dist/packages/{method-package → methods/package}/method-helpers.js +12 -46
  204. package/dist/packages/{method-package → methods/package}/method-review-paths.d.ts +1 -1
  205. package/dist/packages/{method-package → methods/package}/method-review-paths.js +1 -1
  206. package/dist/packages/{method-package → methods/package}/method-stage-runner.d.ts +4 -9
  207. package/dist/packages/{method-package → methods/package}/method-stage-runner.js +3 -31
  208. package/dist/packages/methods/package/user-methods.d.ts +17 -0
  209. package/dist/packages/methods/package/user-methods.js +77 -0
  210. package/dist/packages/{project-model → project}/index.d.ts +0 -1
  211. package/dist/packages/{project-model → project}/index.js +0 -1
  212. package/dist/packages/{project-model → project}/interf-bootstrap.d.ts +1 -1
  213. package/dist/packages/{project-model → project}/interf-bootstrap.js +1 -1
  214. package/dist/packages/{project-model → project}/interf-detect.d.ts +8 -3
  215. package/dist/packages/{project-model → project}/interf-detect.js +38 -38
  216. package/dist/packages/project/interf-scaffold.d.ts +3 -0
  217. package/dist/packages/{project-model → project}/interf-scaffold.js +30 -39
  218. package/dist/packages/{project-model → project}/lib/schema.d.ts +2 -2
  219. package/dist/packages/{project-model → project}/lib/schema.js +39 -2
  220. package/dist/packages/project/preparation-entries.d.ts +11 -0
  221. package/dist/packages/{project-model → project}/preparation-entries.js +14 -14
  222. package/dist/packages/{project-model → project}/source-config.d.ts +12 -12
  223. package/dist/packages/{project-model → project}/source-config.js +81 -53
  224. package/dist/packages/{project-model → project}/source-folders.d.ts +5 -5
  225. package/dist/packages/{project-model → project}/source-folders.js +16 -16
  226. package/package.json +8 -8
  227. package/CHANGELOG.md +0 -93
  228. package/LICENSE +0 -183
  229. package/dist/cli/commands/action-input-cli.d.ts +0 -25
  230. package/dist/cli/commands/action-input-cli.js +0 -73
  231. package/dist/cli/commands/control-path.d.ts +0 -11
  232. package/dist/cli/commands/control-path.js +0 -72
  233. package/dist/cli/commands/create-method-wizard.d.ts +0 -64
  234. package/dist/cli/commands/create-method-wizard.js +0 -434
  235. package/dist/cli/commands/create.d.ts +0 -6
  236. package/dist/cli/commands/create.js +0 -183
  237. package/dist/cli/commands/default.d.ts +0 -2
  238. package/dist/cli/commands/default.js +0 -39
  239. package/dist/cli/commands/executor-flow.d.ts +0 -29
  240. package/dist/cli/commands/executor-flow.js +0 -163
  241. package/dist/cli/commands/init.d.ts +0 -26
  242. package/dist/cli/commands/init.js +0 -771
  243. package/dist/cli/commands/list.d.ts +0 -2
  244. package/dist/cli/commands/list.js +0 -30
  245. package/dist/cli/commands/preparation-action.d.ts +0 -8
  246. package/dist/cli/commands/preparation-action.js +0 -29
  247. package/dist/cli/commands/preparation-picker.d.ts +0 -5
  248. package/dist/cli/commands/preparation-picker.js +0 -36
  249. package/dist/cli/commands/preparation-selection.d.ts +0 -6
  250. package/dist/cli/commands/preparation-selection.js +0 -11
  251. package/dist/cli/commands/service-action-flow.d.ts +0 -9
  252. package/dist/cli/commands/service-action-flow.js +0 -19
  253. package/dist/cli/commands/source-config-wizard.d.ts +0 -51
  254. package/dist/cli/commands/source-config-wizard.js +0 -670
  255. package/dist/cli/commands/test.d.ts +0 -17
  256. package/dist/cli/commands/test.js +0 -188
  257. package/dist/packages/agents/lib/detection.d.ts +0 -7
  258. package/dist/packages/agents/lib/user-config.js +0 -16
  259. package/dist/packages/compiler/method-runs.d.ts +0 -15
  260. package/dist/packages/compiler/raw-snapshot.d.ts +0 -49
  261. package/dist/packages/compiler/raw-snapshot.js +0 -101
  262. package/dist/packages/compiler/state-artifacts.d.ts +0 -8
  263. package/dist/packages/compiler/state-paths.js +0 -13
  264. package/dist/packages/compiler/state-view.d.ts +0 -4
  265. package/dist/packages/compiler/state.d.ts +0 -7
  266. package/dist/packages/local-service/index.d.ts +0 -18
  267. package/dist/packages/local-service/index.js +0 -13
  268. package/dist/packages/local-service/routes.d.ts +0 -32
  269. package/dist/packages/local-service/routes.js +0 -37
  270. package/dist/packages/local-service/runtime.d.ts +0 -133
  271. package/dist/packages/local-service/server.js +0 -627
  272. package/dist/packages/method-package/index.d.ts +0 -11
  273. package/dist/packages/method-package/index.js +0 -11
  274. package/dist/packages/method-package/method-stage-policy.d.ts +0 -5
  275. package/dist/packages/method-package/method-stage-policy.js +0 -31
  276. package/dist/packages/project-model/interf-scaffold.d.ts +0 -3
  277. package/dist/packages/project-model/preparation-entries.d.ts +0 -11
  278. package/dist/packages/project-model/project-paths.d.ts +0 -12
  279. package/dist/packages/project-model/project-paths.js +0 -33
  280. package/dist/packages/shared/filesystem.d.ts +0 -2
  281. package/dist/packages/shared/filesystem.js +0 -55
  282. /package/dist/compiler-ui/_next/static/{84FaeF3EzBF9kKTMjSEVN → a3UiUF0DiMEbfWy_0gihg}/_buildManifest.js +0 -0
  283. /package/dist/compiler-ui/_next/static/{84FaeF3EzBF9kKTMjSEVN → a3UiUF0DiMEbfWy_0gihg}/_clientMiddlewareManifest.js +0 -0
  284. /package/dist/compiler-ui/_next/static/{84FaeF3EzBF9kKTMjSEVN → a3UiUF0DiMEbfWy_0gihg}/_ssgManifest.js +0 -0
  285. /package/dist/packages/{shared → contracts/utils}/file-types.d.ts +0 -0
  286. /package/dist/packages/{shared → contracts/utils}/file-types.js +0 -0
  287. /package/dist/packages/{shared → contracts/utils}/logger.d.ts +0 -0
  288. /package/dist/packages/{shared → contracts/utils}/logger.js +0 -0
  289. /package/dist/packages/{shared → contracts/utils}/naming.d.ts +0 -0
  290. /package/dist/packages/{shared → contracts/utils}/naming.js +0 -0
  291. /package/dist/packages/{shared → contracts/utils}/parse.d.ts +0 -0
  292. /package/dist/packages/{shared → contracts/utils}/parse.js +0 -0
  293. /package/dist/packages/{shared → contracts/utils}/path-guards.d.ts +0 -0
  294. /package/dist/packages/{shared → contracts/utils}/path-guards.js +0 -0
  295. /package/dist/packages/{local-service → engine}/action-values.d.ts +0 -0
  296. /package/dist/packages/{local-service → engine}/action-values.js +0 -0
  297. /package/dist/packages/{agents → engine/agents}/lib/agents.d.ts +0 -0
  298. /package/dist/packages/{agents → engine/agents}/lib/agents.js +0 -0
  299. /package/dist/packages/{agents → engine/agents}/lib/args.d.ts +0 -0
  300. /package/dist/packages/{agents → engine/agents}/lib/args.js +0 -0
  301. /package/dist/packages/{agents → engine/agents}/lib/chart-guidance.d.ts +0 -0
  302. /package/dist/packages/{agents → engine/agents}/lib/chart-guidance.js +0 -0
  303. /package/dist/packages/{agents → engine/agents}/lib/compiled-bootstrap.d.ts +0 -0
  304. /package/dist/packages/{agents → engine/agents}/lib/constants.d.ts +0 -0
  305. /package/dist/packages/{agents → engine/agents}/lib/constants.js +0 -0
  306. /package/dist/packages/{agents → engine/agents}/lib/execution-profile.d.ts +0 -0
  307. /package/dist/packages/{agents → engine/agents}/lib/execution-profile.js +0 -0
  308. /package/dist/packages/{agents → engine/agents}/lib/execution.d.ts +0 -0
  309. /package/dist/packages/{agents → engine/agents}/lib/execution.js +0 -0
  310. /package/dist/packages/{agents → engine/agents}/lib/executors.js +0 -0
  311. /package/dist/packages/{agents → engine/agents}/lib/logs.d.ts +0 -0
  312. /package/dist/packages/{agents → engine/agents}/lib/logs.js +0 -0
  313. /package/dist/packages/{agents → engine/agents}/lib/preflight.d.ts +0 -0
  314. /package/dist/packages/{agents → engine/agents}/lib/preflight.js +0 -0
  315. /package/dist/packages/{agents → engine/agents}/lib/render.d.ts +0 -0
  316. /package/dist/packages/{agents → engine/agents}/lib/render.js +0 -0
  317. /package/dist/packages/{agents → engine/agents}/lib/schema.d.ts +0 -0
  318. /package/dist/packages/{agents → engine/agents}/lib/schema.js +0 -0
  319. /package/dist/packages/{agents → engine/agents}/lib/status.d.ts +0 -0
  320. /package/dist/packages/{agents → engine/agents}/lib/status.js +0 -0
  321. /package/dist/packages/{agents → engine/agents}/lib/types.d.ts +0 -0
  322. /package/dist/packages/{agents → engine/agents}/lib/types.js +0 -0
  323. /package/dist/packages/{compiler → engine/compile}/artifact-counts.d.ts +0 -0
  324. /package/dist/packages/{compiler → engine/compile}/compiled-compile.d.ts +0 -0
  325. /package/dist/packages/{compiler → engine/compile}/compiled-compile.js +0 -0
  326. /package/dist/packages/{compiler → engine/compile}/discovery.d.ts +0 -0
  327. /package/dist/packages/{compiler → engine/compile}/method-primitives.d.ts +0 -0
  328. /package/dist/packages/{compiler → engine/compile}/method-primitives.js +0 -0
  329. /package/dist/packages/{compiler → engine/compile}/reset.d.ts +0 -0
  330. /package/dist/packages/{compiler → engine/compile}/runtime-acceptance.d.ts +0 -0
  331. /package/dist/packages/{compiler → engine/compile}/runtime-contracts.d.ts +0 -0
  332. /package/dist/packages/{compiler → engine/compile}/runtime-inventory.d.ts +0 -0
  333. /package/dist/packages/{compiler → engine/compile}/runtime-inventory.js +0 -0
  334. /package/dist/packages/{compiler → engine/compile}/runtime-paths.d.ts +0 -0
  335. /package/dist/packages/{compiler → engine/compile}/runtime-paths.js +0 -0
  336. /package/dist/packages/{compiler → engine/compile}/runtime-prompt.d.ts +0 -0
  337. /package/dist/packages/{compiler → engine/compile}/runtime-types.js +0 -0
  338. /package/dist/packages/{compiler → engine/compile}/state-health.d.ts +0 -0
  339. /package/dist/packages/{compiler → engine/compile}/validate-compiled.d.ts +0 -0
  340. /package/dist/packages/{compiler → engine/compile}/validate-helpers.d.ts +0 -0
  341. /package/dist/packages/{compiler → engine/compile}/validate-helpers.js +0 -0
  342. /package/dist/packages/{execution → engine/execution}/adapters.d.ts +0 -0
  343. /package/dist/packages/{execution → engine/execution}/adapters.js +0 -0
  344. /package/dist/packages/{execution → engine/execution}/events.d.ts +0 -0
  345. /package/dist/packages/{execution → engine/execution}/events.js +0 -0
  346. /package/dist/packages/{execution → engine/execution}/index.d.ts +0 -0
  347. /package/dist/packages/{execution → engine/execution}/index.js +0 -0
  348. /package/dist/packages/{local-service → engine}/readiness-check-draft.js +0 -0
  349. /package/dist/packages/{testing → engine/verify}/index.d.ts +0 -0
  350. /package/dist/packages/{testing → engine/verify}/index.js +0 -0
  351. /package/dist/packages/{testing → engine/verify}/test-execution.d.ts +0 -0
  352. /package/dist/packages/{testing → engine/verify}/test-paths.d.ts +0 -0
  353. /package/dist/packages/{testing → engine/verify}/test-profile-presets.d.ts +0 -0
  354. /package/dist/packages/{testing → engine/verify}/test-profile-presets.js +0 -0
  355. /package/dist/packages/{testing → engine/verify}/test-specs.d.ts +0 -0
  356. /package/dist/packages/{testing → engine/verify}/test-types.d.ts +0 -0
  357. /package/dist/packages/{testing → engine/verify}/test-types.js +0 -0
  358. /package/dist/packages/{method-authoring → methods/authoring}/index.d.ts +0 -0
  359. /package/dist/packages/{method-authoring → methods/authoring}/index.js +0 -0
  360. /package/dist/packages/{method-authoring → methods/authoring}/lib/method-edit-utils.d.ts +0 -0
  361. /package/dist/packages/{method-authoring → methods/authoring}/lib/method-edit-utils.js +0 -0
  362. /package/dist/packages/{method-authoring → methods/authoring}/method-edit-session.js +0 -0
  363. /package/dist/packages/{method-package → methods/package}/lib/package-root.d.ts +0 -0
  364. /package/dist/packages/{project-model → project}/interf.d.ts +0 -0
  365. /package/dist/packages/{project-model → project}/interf.js +0 -0
@@ -0,0 +1,191 @@
1
+ /**
2
+ * Runtime read-side caches.
3
+ *
4
+ * The local service runtime fronts a filesystem-backed model: every
5
+ * "list" or "get" call walks `.interf/runtime/...`, parses each JSON
6
+ * record through Zod, and returns the typed shape. Polling clients
7
+ * (Compiler UI, CLI status loops) hit those endpoints multiple times
8
+ * per second; on workspaces with hundreds of compile / test runs this
9
+ * shows up as the dominant CPU cost.
10
+ *
11
+ * The caches here memoize the parsed-and-validated results. Each cache
12
+ * is per-workspace so multi-workspace runtimes do not cross-pollinate,
13
+ * and each cache exposes both a read path (`get(...)`) and an explicit
14
+ * invalidation hook (`invalidate(...)`). The runtime calls
15
+ * `invalidate*` whenever it writes, so the next read repopulates from
16
+ * disk. Invalidation is intentionally broad (per-preparation, not
17
+ * per-record) — staleness is the only correctness bug worth avoiding,
18
+ * and per-record invalidation introduces fan-out without measurably
19
+ * lowering recompute cost.
20
+ */
21
+ import { existsSync, statSync } from "node:fs";
22
+ import { resolve } from "node:path";
23
+ /**
24
+ * Per-(workspace, preparation) cache for compile run records, plus a
25
+ * runId -> preparation index so `getCompileRun(runId)` can resolve to
26
+ * the owning preparation without scanning every preparation's runs.
27
+ */
28
+ export class RunListingCache {
29
+ /** prepDataDir -> preparation -> records (newest-first sorted). */
30
+ byWorkspace = new Map();
31
+ /** prepDataDir -> runId -> preparation. */
32
+ runIndex = new Map();
33
+ get(prepDataDir, preparation, fill, runIdOf) {
34
+ const wsKey = resolve(prepDataDir);
35
+ let bucket = this.byWorkspace.get(wsKey);
36
+ if (!bucket) {
37
+ bucket = new Map();
38
+ this.byWorkspace.set(wsKey, bucket);
39
+ }
40
+ const cached = bucket.get(preparation);
41
+ if (cached)
42
+ return cached;
43
+ const fresh = fill();
44
+ bucket.set(preparation, fresh);
45
+ let index = this.runIndex.get(wsKey);
46
+ if (!index) {
47
+ index = new Map();
48
+ this.runIndex.set(wsKey, index);
49
+ }
50
+ for (const record of fresh) {
51
+ index.set(runIdOf(record), preparation);
52
+ }
53
+ return fresh;
54
+ }
55
+ /** Look up which preparation owns this runId, if known. */
56
+ preparationFor(prepDataDir, runId) {
57
+ const wsKey = resolve(prepDataDir);
58
+ return this.runIndex.get(wsKey)?.get(runId) ?? null;
59
+ }
60
+ /** Invalidate a single preparation's cached records and id index. */
61
+ invalidatePreparation(prepDataDir, preparation) {
62
+ const wsKey = resolve(prepDataDir);
63
+ const bucket = this.byWorkspace.get(wsKey);
64
+ if (bucket) {
65
+ bucket.delete(preparation);
66
+ if (bucket.size === 0)
67
+ this.byWorkspace.delete(wsKey);
68
+ }
69
+ const index = this.runIndex.get(wsKey);
70
+ if (index) {
71
+ for (const [runId, owner] of index) {
72
+ if (owner === preparation)
73
+ index.delete(runId);
74
+ }
75
+ if (index.size === 0)
76
+ this.runIndex.delete(wsKey);
77
+ }
78
+ }
79
+ /** Drop everything for a workspace (e.g. after a reset). */
80
+ invalidateWorkspace(prepDataDir) {
81
+ const wsKey = resolve(prepDataDir);
82
+ this.byWorkspace.delete(wsKey);
83
+ this.runIndex.delete(wsKey);
84
+ }
85
+ }
86
+ /**
87
+ * Per-(workspace, preparation) readiness cache. Readiness joins compile
88
+ * runs, test runs, readiness-check runs, and the preparation config; it
89
+ * is computed on every poll. The cache invalidates when the runtime
90
+ * writes any of those underlying objects for a given preparation.
91
+ */
92
+ export class ReadinessCache {
93
+ byWorkspace = new Map();
94
+ get(prepDataDir, preparation, compute) {
95
+ const wsKey = resolve(prepDataDir);
96
+ let bucket = this.byWorkspace.get(wsKey);
97
+ if (!bucket) {
98
+ bucket = new Map();
99
+ this.byWorkspace.set(wsKey, bucket);
100
+ }
101
+ const cached = bucket.get(preparation);
102
+ if (cached !== undefined)
103
+ return cached;
104
+ const fresh = compute();
105
+ bucket.set(preparation, fresh);
106
+ return fresh;
107
+ }
108
+ invalidatePreparation(prepDataDir, preparation) {
109
+ const wsKey = resolve(prepDataDir);
110
+ const bucket = this.byWorkspace.get(wsKey);
111
+ if (bucket) {
112
+ bucket.delete(preparation);
113
+ if (bucket.size === 0)
114
+ this.byWorkspace.delete(wsKey);
115
+ }
116
+ }
117
+ invalidateWorkspace(prepDataDir) {
118
+ this.byWorkspace.delete(resolve(prepDataDir));
119
+ }
120
+ }
121
+ /**
122
+ * Source-folder listing cache keyed by `(cacheKey, folderRootMtime)`.
123
+ * `cacheKey` is the slot identifier; `folderPath` is the directory the
124
+ * cache stats for an mtime probe. UI polling is the hot path; CLI
125
+ * commands rarely hit the same path twice in <2s, hence the short TTL
126
+ * fallback.
127
+ */
128
+ export class MtimeListingCache {
129
+ static TTL_MS = 2000;
130
+ cache = new Map();
131
+ get(cacheKey, folderPath, fill) {
132
+ const now = Date.now();
133
+ const stat = safeStat(folderPath);
134
+ const currentMtime = stat?.mtimeMs ?? 0;
135
+ const entry = this.cache.get(cacheKey);
136
+ if (entry
137
+ && entry.mtimeMs === currentMtime
138
+ && entry.expiresAt > now) {
139
+ return entry.value;
140
+ }
141
+ const value = fill();
142
+ this.cache.set(cacheKey, {
143
+ mtimeMs: currentMtime,
144
+ expiresAt: now + MtimeListingCache.TTL_MS,
145
+ value,
146
+ });
147
+ return value;
148
+ }
149
+ invalidate(cacheKey) {
150
+ this.cache.delete(cacheKey);
151
+ }
152
+ invalidateAll() {
153
+ this.cache.clear();
154
+ }
155
+ }
156
+ /**
157
+ * Method-package listing cache keyed by the joined mtimes of the
158
+ * builtin / user / workspace method roots. If any of those ticks (a
159
+ * new local Method, an edit to the user library, etc.) the cache
160
+ * misses and we re-resolve.
161
+ */
162
+ export class MethodListingCache {
163
+ cache = new Map();
164
+ get(cacheKey, rootPaths, fill) {
165
+ const fingerprint = rootPaths
166
+ .map((path) => `${path}:${safeStat(path)?.mtimeMs ?? 0}`)
167
+ .join("|");
168
+ const entry = this.cache.get(cacheKey);
169
+ if (entry && entry.key === fingerprint)
170
+ return entry.value;
171
+ const value = fill();
172
+ this.cache.set(cacheKey, { key: fingerprint, value });
173
+ return value;
174
+ }
175
+ invalidate(cacheKey) {
176
+ this.cache.delete(cacheKey);
177
+ }
178
+ invalidateAll() {
179
+ this.cache.clear();
180
+ }
181
+ }
182
+ function safeStat(path) {
183
+ try {
184
+ if (!existsSync(path))
185
+ return null;
186
+ return statSync(path);
187
+ }
188
+ catch {
189
+ return null;
190
+ }
191
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Pure event-to-resource transformations for the local service runtime.
3
+ *
4
+ * Each apply function takes the current run resource plus one event and
5
+ * returns the next resource — no side effects, no shared state. This is
6
+ * what lets the runtime coordinator stay small: every other handler can
7
+ * compose these without learning the resource shape.
8
+ */
9
+ import { type CompileRun, type InterfRunEvent } from "./execution/lib/schema.js";
10
+ import { type LocalJobEvent, type LocalJobRunResource } from "./lib/schema.js";
11
+ export declare function applyEventToCompileRun(run: CompileRun, event: InterfRunEvent): CompileRun;
12
+ export declare function applyEventToLocalJob(run: LocalJobRunResource, event: LocalJobEvent): LocalJobRunResource;
@@ -0,0 +1,177 @@
1
+ import { uniqueArtifacts } from "./run-observability.js";
2
+ export function applyEventToCompileRun(run, event) {
3
+ const now = event.timestamp;
4
+ const stageFor = (stageId) => {
5
+ const existing = run.stages.find((stage) => stage.stage_id === stageId);
6
+ if (existing)
7
+ return existing;
8
+ const created = {
9
+ run_id: run.run_id,
10
+ stage_id: stageId,
11
+ status: "queued",
12
+ artifacts: [],
13
+ };
14
+ run.stages.push(created);
15
+ return created;
16
+ };
17
+ const updateStage = (stageId, patch) => {
18
+ const current = stageFor(stageId);
19
+ Object.assign(current, patch);
20
+ };
21
+ switch (event.type) {
22
+ case "run.started":
23
+ return {
24
+ ...run,
25
+ status: "running",
26
+ started_at: run.started_at ?? now,
27
+ events: [...run.events, event],
28
+ };
29
+ case "stage.started":
30
+ updateStage(event.stage_id, {
31
+ status: "running",
32
+ started_at: now,
33
+ stage_index: event.stage_index,
34
+ stage_total: event.stage_total,
35
+ });
36
+ break;
37
+ case "artifact.written": {
38
+ const stage = stageFor(event.stage_id);
39
+ updateStage(event.stage_id, {
40
+ artifacts: uniqueArtifacts([...(stage.artifacts ?? []), event.artifact]),
41
+ });
42
+ break;
43
+ }
44
+ case "proof.updated":
45
+ if (event.stage_id) {
46
+ updateStage(event.stage_id, {
47
+ latest_proof: event.proof,
48
+ });
49
+ }
50
+ return {
51
+ ...run,
52
+ latest_proof: event.proof,
53
+ events: [...run.events, event],
54
+ };
55
+ case "log.appended":
56
+ break;
57
+ case "stage.passed":
58
+ updateStage(event.stage_id, {
59
+ status: "succeeded",
60
+ finished_at: now,
61
+ summary: event.summary ?? null,
62
+ failure: null,
63
+ });
64
+ break;
65
+ case "stage.failed":
66
+ updateStage(event.stage_id, {
67
+ status: "failed",
68
+ finished_at: now,
69
+ summary: event.error,
70
+ failure: event.error,
71
+ });
72
+ break;
73
+ case "run.completed":
74
+ return {
75
+ ...run,
76
+ // Once cancelled, the cancelled status is sticky; the handler may
77
+ // still emit a completion event after the cancel signal has landed.
78
+ status: run.status === "cancelled" ? "cancelled" : "succeeded",
79
+ finished_at: run.finished_at ?? now,
80
+ events: [...run.events, event],
81
+ };
82
+ case "run.failed":
83
+ return {
84
+ ...run,
85
+ status: run.status === "cancelled" ? "cancelled" : "failed",
86
+ finished_at: run.finished_at ?? now,
87
+ events: [...run.events, event],
88
+ };
89
+ case "readiness.updated":
90
+ return {
91
+ ...run,
92
+ readiness: event.readiness,
93
+ events: [...run.events, event],
94
+ };
95
+ default:
96
+ break;
97
+ }
98
+ return {
99
+ ...run,
100
+ events: [...run.events, event],
101
+ };
102
+ }
103
+ export function applyEventToLocalJob(run, event) {
104
+ const stepFor = (stepId) => {
105
+ const existing = run.steps.find((step) => step.id === stepId);
106
+ if (existing)
107
+ return existing;
108
+ const created = {
109
+ id: stepId,
110
+ label: stepId,
111
+ status: "queued",
112
+ };
113
+ run.steps.push(created);
114
+ return created;
115
+ };
116
+ const updateStep = (stepId, patch) => {
117
+ if (!stepId)
118
+ return;
119
+ Object.assign(stepFor(stepId), patch);
120
+ };
121
+ switch (event.type) {
122
+ case "job.started":
123
+ return {
124
+ ...run,
125
+ status: "running",
126
+ started_at: run.started_at ?? event.timestamp,
127
+ events: [...run.events, event],
128
+ };
129
+ case "step.started":
130
+ updateStep(event.step_id, {
131
+ status: "running",
132
+ started_at: event.timestamp,
133
+ ...(event.input ? { input: event.input } : {}),
134
+ });
135
+ break;
136
+ case "step.completed":
137
+ updateStep(event.step_id, {
138
+ status: "succeeded",
139
+ finished_at: event.timestamp,
140
+ summary: event.message ?? null,
141
+ ...(event.output ? { output: event.output } : {}),
142
+ });
143
+ break;
144
+ case "step.failed":
145
+ updateStep(event.step_id, {
146
+ status: "failed",
147
+ finished_at: event.timestamp,
148
+ summary: event.message ?? null,
149
+ ...(event.output ? { output: event.output } : {}),
150
+ });
151
+ break;
152
+ case "job.completed":
153
+ return {
154
+ ...run,
155
+ status: "succeeded",
156
+ finished_at: run.finished_at ?? event.timestamp,
157
+ events: [...run.events, event],
158
+ };
159
+ case "job.failed":
160
+ return {
161
+ ...run,
162
+ status: "failed",
163
+ finished_at: run.finished_at ?? event.timestamp,
164
+ error: event.message ?? "Job failed.",
165
+ events: [...run.events, event],
166
+ };
167
+ case "artifact.written":
168
+ case "log.appended":
169
+ break;
170
+ default:
171
+ break;
172
+ }
173
+ return {
174
+ ...run,
175
+ events: [...run.events, event],
176
+ };
177
+ }
@@ -0,0 +1,47 @@
1
+ import { type CompileRun } from "./execution/lib/schema.js";
2
+ import { type RuntimeRun } from "./compile/lib/schema.js";
3
+ import { type ActionProposalResource, type LocalJobRunResource, type VerifyRunResource } from "./lib/schema.js";
4
+ export declare function compileRunsRoot(compiledPath: string): string;
5
+ export declare function compileRunPath(compiledPath: string, runId: string): string;
6
+ export declare function verifyRunsRoot(compiledPath: string): string;
7
+ export declare function verifyRunPath(compiledPath: string, runId: string): string;
8
+ export declare function localJobsRoot(rootPath: string): string;
9
+ export declare function localJobPath(rootPath: string, runId: string): string;
10
+ export declare function actionProposalsRoot(rootPath: string): string;
11
+ export declare function actionProposalPath(rootPath: string, proposalId: string): string;
12
+ export declare function readJsonFile(filePath: string): unknown | null;
13
+ export declare function writeJsonFile(filePath: string, value: unknown): void;
14
+ export declare function readJsonOrNull<T>(filePath: string, schema: {
15
+ safeParse(value: unknown): {
16
+ success: true;
17
+ data: T;
18
+ } | {
19
+ success: false;
20
+ };
21
+ }): T | null;
22
+ export declare function listJsonFiles(dirPath: string): string[];
23
+ export declare function readCompileRunAt(filePath: string): CompileRun | null;
24
+ export declare function readVerifyRunAt(filePath: string): VerifyRunResource | null;
25
+ export declare function readLocalJobRunAt(filePath: string): LocalJobRunResource | null;
26
+ export declare function readActionProposalAt(filePath: string): ActionProposalResource | null;
27
+ /**
28
+ * Read the per-stage runtime-run history NDJSON. Each line is a `RuntimeRun`
29
+ * record; lines that fail to parse are silently skipped so the runtime can
30
+ * tolerate a partially-written tail without crashing.
31
+ */
32
+ export declare function readRuntimeRunHistory(compiledPath: string): RuntimeRun[];
33
+ /**
34
+ * Sort items newest-first using `started_at` (with a `finished_at` fallback).
35
+ * Used for compile/test run lists where the canonical order is by activity
36
+ * window, not by record-creation time.
37
+ */
38
+ export declare function newestFirst<T extends {
39
+ started_at?: string | null;
40
+ finished_at?: string | null;
41
+ }>(items: T[]): T[];
42
+ /** Sort items newest-first using their `created_at` timestamp. */
43
+ export declare function byCreatedAtDesc<T extends {
44
+ created_at: string;
45
+ }>(items: T[]): T[];
46
+ /** Parse an ISO timestamp into milliseconds; returns 0 for invalid input. */
47
+ export declare function timestampKey(value?: string | null): number;
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Filesystem and JSON persistence helpers for the local service runtime.
3
+ *
4
+ * These functions are pure: they take absolute paths and return values, with
5
+ * no shared state. Every other runtime module composes on top of this layer
6
+ * so the runtime coordinator stays small.
7
+ */
8
+ import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync, } from "node:fs";
9
+ import { dirname, join } from "node:path";
10
+ import { CompileRunSchema, } from "./execution/lib/schema.js";
11
+ import { compiledRuntimeRunHistoryPath, compiledRuntimeRoot, testRootForCompiled, } from "./compile/compiled-paths.js";
12
+ import { RuntimeRunSchema, } from "./compile/lib/schema.js";
13
+ import { asPreparationDataDir, preparationServiceActionProposalsRoot, preparationServiceJobsRoot, } from "../contracts/lib/preparation-paths.js";
14
+ import { ActionProposalResourceSchema, LocalJobRunResourceSchema, VerifyRunResourceSchema, } from "./lib/schema.js";
15
+ // ---- Path helpers --------------------------------------------------------
16
+ export function compileRunsRoot(compiledPath) {
17
+ return join(compiledRuntimeRoot(compiledPath), "compile-runs");
18
+ }
19
+ export function compileRunPath(compiledPath, runId) {
20
+ return join(compileRunsRoot(compiledPath), `${runId}.json`);
21
+ }
22
+ export function verifyRunsRoot(compiledPath) {
23
+ return join(testRootForCompiled(compiledPath), "service-runs");
24
+ }
25
+ export function verifyRunPath(compiledPath, runId) {
26
+ return join(verifyRunsRoot(compiledPath), `${runId}.json`);
27
+ }
28
+ export function localJobsRoot(rootPath) {
29
+ return preparationServiceJobsRoot(asPreparationDataDir(rootPath));
30
+ }
31
+ export function localJobPath(rootPath, runId) {
32
+ return join(localJobsRoot(rootPath), `${runId}.json`);
33
+ }
34
+ export function actionProposalsRoot(rootPath) {
35
+ return preparationServiceActionProposalsRoot(asPreparationDataDir(rootPath));
36
+ }
37
+ export function actionProposalPath(rootPath, proposalId) {
38
+ return join(actionProposalsRoot(rootPath), `${proposalId}.json`);
39
+ }
40
+ // ---- JSON IO -------------------------------------------------------------
41
+ export function readJsonFile(filePath) {
42
+ try {
43
+ return JSON.parse(readFileSync(filePath, "utf8"));
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ }
49
+ export function writeJsonFile(filePath, value) {
50
+ mkdirSync(dirname(filePath), { recursive: true });
51
+ writeFileSync(filePath, `${JSON.stringify(value, null, 2)}\n`);
52
+ }
53
+ export function readJsonOrNull(filePath, schema) {
54
+ const raw = readJsonFile(filePath);
55
+ if (raw === null)
56
+ return null;
57
+ const parsed = schema.safeParse(raw);
58
+ return parsed.success ? parsed.data : null;
59
+ }
60
+ export function listJsonFiles(dirPath) {
61
+ if (!existsSync(dirPath))
62
+ return [];
63
+ try {
64
+ if (!statSync(dirPath).isDirectory())
65
+ return [];
66
+ }
67
+ catch {
68
+ return [];
69
+ }
70
+ return readdirSync(dirPath)
71
+ .filter((entry) => entry.endsWith(".json"))
72
+ .map((entry) => join(dirPath, entry));
73
+ }
74
+ // ---- Typed readers -------------------------------------------------------
75
+ export function readCompileRunAt(filePath) {
76
+ return readJsonOrNull(filePath, CompileRunSchema);
77
+ }
78
+ export function readVerifyRunAt(filePath) {
79
+ return readJsonOrNull(filePath, VerifyRunResourceSchema);
80
+ }
81
+ export function readLocalJobRunAt(filePath) {
82
+ return readJsonOrNull(filePath, LocalJobRunResourceSchema);
83
+ }
84
+ export function readActionProposalAt(filePath) {
85
+ return readJsonOrNull(filePath, ActionProposalResourceSchema);
86
+ }
87
+ /**
88
+ * Read the per-stage runtime-run history NDJSON. Each line is a `RuntimeRun`
89
+ * record; lines that fail to parse are silently skipped so the runtime can
90
+ * tolerate a partially-written tail without crashing.
91
+ */
92
+ export function readRuntimeRunHistory(compiledPath) {
93
+ const historyPath = compiledRuntimeRunHistoryPath(compiledPath);
94
+ if (!existsSync(historyPath))
95
+ return [];
96
+ try {
97
+ return readFileSync(historyPath, "utf8")
98
+ .split(/\r?\n/)
99
+ .map((line) => line.trim())
100
+ .filter((line) => line.length > 0)
101
+ .map((line) => {
102
+ try {
103
+ return RuntimeRunSchema.safeParse(JSON.parse(line));
104
+ }
105
+ catch {
106
+ return { success: false };
107
+ }
108
+ })
109
+ .filter((parsed) => parsed.success)
110
+ .map((parsed) => parsed.data);
111
+ }
112
+ catch {
113
+ return [];
114
+ }
115
+ }
116
+ // ---- Sort helpers --------------------------------------------------------
117
+ /**
118
+ * Sort items newest-first using `started_at` (with a `finished_at` fallback).
119
+ * Used for compile/test run lists where the canonical order is by activity
120
+ * window, not by record-creation time.
121
+ */
122
+ export function newestFirst(items) {
123
+ return [...items].sort((left, right) => {
124
+ const leftTime = Date.parse(left.started_at ?? left.finished_at ?? "");
125
+ const rightTime = Date.parse(right.started_at ?? right.finished_at ?? "");
126
+ return (Number.isFinite(rightTime) ? rightTime : 0) - (Number.isFinite(leftTime) ? leftTime : 0);
127
+ });
128
+ }
129
+ /** Sort items newest-first using their `created_at` timestamp. */
130
+ export function byCreatedAtDesc(items) {
131
+ return [...items].sort((left, right) => Date.parse(right.created_at) - Date.parse(left.created_at));
132
+ }
133
+ /** Parse an ISO timestamp into milliseconds; returns 0 for invalid input. */
134
+ export function timestampKey(value) {
135
+ const parsed = Date.parse(value ?? "");
136
+ return Number.isFinite(parsed) ? parsed : 0;
137
+ }
@@ -0,0 +1,35 @@
1
+ import { type SourcePreparationConfig } from "../project/lib/schema.js";
2
+ import { type ActionProposalPlanActionType, type ActionProposalResource } from "./lib/schema.js";
3
+ export declare const ACTION_PLANNER_CLARIFICATION_MESSAGE = "I can help with this Interf Workspace. Ask a question about Interf, or ask me to create a Preparation, prepare, check readiness, improve, or draft a Method and I will prepare an approval proposal.";
4
+ export type LocalTestMode = "source-files" | "compiled" | "both";
5
+ export declare function createActionProposalId(): string;
6
+ export declare function sanitizeActionProposalPlan(value: unknown): unknown;
7
+ export declare function configuredAgentName(): string | null;
8
+ export declare function detectedExecutorOptions(currentAgentName: string | null): {
9
+ name: string;
10
+ display_name: string;
11
+ command: string;
12
+ current: boolean;
13
+ }[];
14
+ export declare function slugFromText(value: string): string;
15
+ export declare function escapeRegExp(value: string): string;
16
+ export declare function stringValue(values: Record<string, unknown> | undefined, key: string): string | null;
17
+ export declare function actionTypeFromValues(values: Record<string, unknown> | undefined): ActionProposalPlanActionType | null;
18
+ export declare function directServiceEndpointForAction(actionType: ActionProposalPlanActionType): string | null;
19
+ export declare function numberValue(values: Record<string, unknown> | undefined, key: string): number | null;
20
+ export declare function testModeFromValues(values: Record<string, unknown> | undefined): LocalTestMode | null;
21
+ export declare function testModeValue(values: Record<string, unknown> | undefined, defaultMode?: LocalTestMode): LocalTestMode;
22
+ export declare function testModeCliTarget(mode: LocalTestMode): "source-files" | "portable-context" | "both";
23
+ export declare function methodIdForProposal(message: string, values: Record<string, unknown> | undefined): string;
24
+ export declare function actionValueMethodTaskPrompt(values: Record<string, unknown> | undefined): string | null;
25
+ export declare function normalizeMethodAuthoringText(value: string): string;
26
+ export declare function extractMethodAuthoringSection(value: string, label: string): string | null;
27
+ export declare function stripMethodCommandPrefix(value: string, methodId: string): string;
28
+ export declare function methodAuthoringPromptFallback(message: string, methodId: string): string;
29
+ export declare function methodAuthoringHintFromPrompt(prompt: string): string;
30
+ export declare function methodLabelFromId(methodId: string): string;
31
+ export declare function detachMethodFromPreparation(preparation: SourcePreparationConfig, methodId: string): SourcePreparationConfig;
32
+ export declare function requireSelectedMethod(preparation: SourcePreparationConfig): string;
33
+ export declare function actionCommandPreview(actionType: ActionProposalResource["action_type"], preparationName: string | null, methodId: string | null, values: Record<string, unknown> | undefined): string;
34
+ export declare function hasCompiledTestTarget(sourcePath: string, preparationConfig: SourcePreparationConfig): boolean;
35
+ export declare function actionAssistantMessage(actionType: ActionProposalResource["action_type"], preparationName: string | null, commandPreview: string): string;