forgeos 0.1.0-alpha.7 → 0.1.0-alpha.70

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 (582) hide show
  1. package/.agents/skills/forge-agent-fabric/SKILL.md +169 -0
  2. package/.agents/skills/forge-agent-fabric/references/managed-workflows.md +95 -0
  3. package/.agents/skills/forge-agent-fabric/references/repository-analysis.md +102 -0
  4. package/.agents/skills/forge-agent-fabric/scripts/fabric.mjs +46 -0
  5. package/.agents/skills/forge-agent-fabric/scripts/repository.mjs +44 -0
  6. package/.npmignore +10 -0
  7. package/AGENTS.md +142 -90
  8. package/CHANGELOG.md +864 -9
  9. package/LICENSE +21 -0
  10. package/README.md +121 -6
  11. package/adapters/go/README.md +23 -0
  12. package/adapters/go/go.mod +3 -0
  13. package/adapters/go/http.go +149 -0
  14. package/adapters/go/registry.go +234 -0
  15. package/adapters/go/types.go +136 -0
  16. package/adapters/java/README.md +68 -0
  17. package/adapters/java/pom.xml +47 -0
  18. package/adapters/java/src/main/java/dev/forgeos/adapter/Auth.java +20 -0
  19. package/adapters/java/src/main/java/dev/forgeos/adapter/Diagnostic.java +16 -0
  20. package/adapters/java/src/main/java/dev/forgeos/adapter/Entry.java +38 -0
  21. package/adapters/java/src/main/java/dev/forgeos/adapter/EntryKind.java +16 -0
  22. package/adapters/java/src/main/java/dev/forgeos/adapter/ErrorInfo.java +4 -0
  23. package/adapters/java/src/main/java/dev/forgeos/adapter/Forge.java +94 -0
  24. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeCall.java +12 -0
  25. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeContext.java +11 -0
  26. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeHandler.java +8 -0
  27. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeHttpHandler.java +179 -0
  28. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeRegistry.java +121 -0
  29. package/adapters/java/src/main/java/dev/forgeos/adapter/Json.java +14 -0
  30. package/adapters/java/src/main/java/dev/forgeos/adapter/Manifest.java +14 -0
  31. package/adapters/java/src/main/java/dev/forgeos/adapter/RequestEnvelope.java +6 -0
  32. package/adapters/java/src/main/java/dev/forgeos/adapter/ResponseEnvelope.java +25 -0
  33. package/adapters/java/src/main/java/dev/forgeos/adapter/Risk.java +18 -0
  34. package/adapters/java/src/main/java/dev/forgeos/adapter/Schemas.java +36 -0
  35. package/adapters/java/src/main/java/dev/forgeos/adapter/Service.java +65 -0
  36. package/adapters/java/src/main/java/dev/forgeos/adapter/TransactionMode.java +18 -0
  37. package/adapters/java/src/main/java/dev/forgeos/adapter/TypedForgeHandler.java +6 -0
  38. package/adapters/java-spring-boot-starter/README.md +32 -0
  39. package/adapters/java-spring-boot-starter/pom.xml +49 -0
  40. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeCommand.java +22 -0
  41. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeExternalService.java +15 -0
  42. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeQuery.java +16 -0
  43. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeServiceBeanCondition.java +18 -0
  44. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeSpringAutoConfiguration.java +16 -0
  45. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeSpringRuntime.java +104 -0
  46. package/adapters/java-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +1 -0
  47. package/bin/forge.mjs +18 -0
  48. package/docs/agent-fabric-programs.md +168 -0
  49. package/docs/agent-fabric.md +584 -0
  50. package/docs/architecture/agent-fabric/PORTABLE_PROJECTS_PLAN.md +136 -0
  51. package/docs/architecture/agent-fabric/README.md +180 -0
  52. package/docs/architecture/agent-fabric/REPOSITORY_MANIFEST_PLAN.md +284 -0
  53. package/docs/architecture/agent-fabric/WORKFLOW_PROGRAM_V2_ADR.md +41 -0
  54. package/docs/architecture/agent-fabric/WORKFLOW_PROGRAM_V2_EVIDENCE.md +109 -0
  55. package/docs/architecture/agent-fabric/WORKFLOW_PROGRAM_V2_PLAN.md +550 -0
  56. package/docs/cair-protocol.md +103 -0
  57. package/docs/changelog.md +1070 -0
  58. package/docs/forge-protocol.md +189 -0
  59. package/docs/repository-agent-benchmark.md +179 -0
  60. package/docs/repository-analysis.md +139 -0
  61. package/docs/repository-context-quality.md +179 -0
  62. package/docs/repository-runtime-observation.md +82 -0
  63. package/examples/agent-fabric-v2/README.md +54 -0
  64. package/examples/agent-fabric-v2/make-request.mjs +4 -0
  65. package/examples/agent-fabric-v2/migrate.workflow.ts +35 -0
  66. package/examples/agent-fabric-v2/registry.example.json +256 -0
  67. package/examples/agent-fabric-v2/workers/check.mjs +2 -0
  68. package/examples/agent-fabric-v2/workers/common.mjs +7 -0
  69. package/examples/agent-fabric-v2/workers/discover.mjs +2 -0
  70. package/examples/agent-fabric-v2/workers/migrate.mjs +4 -0
  71. package/examples/agent-fabric-v2/workers/review.mjs +3 -0
  72. package/examples/go-billing/go.mod +7 -0
  73. package/examples/go-billing/main.go +120 -0
  74. package/examples/java-billing/pom.xml +60 -0
  75. package/examples/java-billing/src/main/java/dev/forgeos/examples/billing/CreateInvoiceInput.java +4 -0
  76. package/examples/java-billing/src/main/java/dev/forgeos/examples/billing/Invoice.java +11 -0
  77. package/examples/java-billing/src/main/java/dev/forgeos/examples/billing/Main.java +127 -0
  78. package/package.json +58 -5
  79. package/schemas/agent-fabric/v0.1/control-event.schema.json +281 -0
  80. package/schemas/forge-manifest.schema.json +389 -0
  81. package/scripts/field-test-forgeos.mjs +1021 -0
  82. package/scripts/install-agent-fabric-skill.mjs +105 -0
  83. package/src/forge/_generated/releaseManifest.json +1 -2
  84. package/src/forge/_generated/releaseManifest.ts +3 -3
  85. package/src/forge/agent-adapters/index.ts +1592 -125
  86. package/src/forge/agent-adapters/types.ts +225 -1
  87. package/src/forge/agent-fabric/adapter.ts +131 -0
  88. package/src/forge/agent-fabric/attached-snapshot.ts +55 -0
  89. package/src/forge/agent-fabric/attached-task-contract.ts +105 -0
  90. package/src/forge/agent-fabric/attached-task-service.ts +127 -0
  91. package/src/forge/agent-fabric/attached-task-store.ts +109 -0
  92. package/src/forge/agent-fabric/authority.ts +298 -0
  93. package/src/forge/agent-fabric/canonical.ts +135 -0
  94. package/src/forge/agent-fabric/codex-adversarial-review.ts +229 -0
  95. package/src/forge/agent-fabric/codex-sdk-worker.ts +201 -0
  96. package/src/forge/agent-fabric/conductor.ts +754 -0
  97. package/src/forge/agent-fabric/dictionary.ts +12 -0
  98. package/src/forge/agent-fabric/errors.ts +32 -0
  99. package/src/forge/agent-fabric/hardened-conductor.ts +485 -0
  100. package/src/forge/agent-fabric/hardened-reducer.ts +211 -0
  101. package/src/forge/agent-fabric/index.ts +48 -0
  102. package/src/forge/agent-fabric/journal.ts +116 -0
  103. package/src/forge/agent-fabric/local-adaptive-digest-worker.mjs +26 -0
  104. package/src/forge/agent-fabric/local-adaptive-harness.ts +343 -0
  105. package/src/forge/agent-fabric/local-adaptive-service.ts +398 -0
  106. package/src/forge/agent-fabric/local-adaptive-worker.ts +146 -0
  107. package/src/forge/agent-fabric/local-approval-window.ts +211 -0
  108. package/src/forge/agent-fabric/local-change-review-service.ts +374 -0
  109. package/src/forge/agent-fabric/local-coding-worker.ts +285 -0
  110. package/src/forge/agent-fabric/local-control-store.ts +239 -0
  111. package/src/forge/agent-fabric/local-effect-broker.ts +348 -0
  112. package/src/forge/agent-fabric/local-evolution-approval.ts +81 -0
  113. package/src/forge/agent-fabric/local-evolution-profile.ts +87 -0
  114. package/src/forge/agent-fabric/local-evolution-registry.ts +427 -0
  115. package/src/forge/agent-fabric/local-evolution-service.ts +200 -0
  116. package/src/forge/agent-fabric/local-intelligence.ts +281 -0
  117. package/src/forge/agent-fabric/local-paths.ts +18 -0
  118. package/src/forge/agent-fabric/local-task-contract.ts +203 -0
  119. package/src/forge/agent-fabric/local-task-inbox.ts +543 -0
  120. package/src/forge/agent-fabric/local-task-server.ts +374 -0
  121. package/src/forge/agent-fabric/local-task-service.ts +982 -0
  122. package/src/forge/agent-fabric/local-verification.ts +551 -0
  123. package/src/forge/agent-fabric/managed-environment.ts +205 -0
  124. package/src/forge/agent-fabric/managed-run-contract.ts +103 -0
  125. package/src/forge/agent-fabric/managed-run-service.ts +401 -0
  126. package/src/forge/agent-fabric/managed-run-store.ts +165 -0
  127. package/src/forge/agent-fabric/managed-workspace.ts +253 -0
  128. package/src/forge/agent-fabric/p0a.ts +104 -0
  129. package/src/forge/agent-fabric/p0b-model-adapter.ts +434 -0
  130. package/src/forge/agent-fabric/planning.ts +155 -0
  131. package/src/forge/agent-fabric/program-contract.ts +229 -0
  132. package/src/forge/agent-fabric/program-dsl.ts +112 -0
  133. package/src/forge/agent-fabric/program-service.ts +619 -0
  134. package/src/forge/agent-fabric/program-store.ts +117 -0
  135. package/src/forge/agent-fabric/program-types.ts +98 -0
  136. package/src/forge/agent-fabric/program-worker.ts +91 -0
  137. package/src/forge/agent-fabric/project-profile.ts +50 -0
  138. package/src/forge/agent-fabric/project-registry.ts +120 -0
  139. package/src/forge/agent-fabric/project-runtime.ts +85 -0
  140. package/src/forge/agent-fabric/readiness.ts +26 -0
  141. package/src/forge/agent-fabric/reducer.ts +863 -0
  142. package/src/forge/agent-fabric/repository-context.ts +83 -0
  143. package/src/forge/agent-fabric/resource-ledger.ts +266 -0
  144. package/src/forge/agent-fabric/serialized-local-adapter.ts +60 -0
  145. package/src/forge/agent-fabric/types.ts +424 -0
  146. package/src/forge/agent-fabric/validation.ts +500 -0
  147. package/src/forge/agent-fabric/workflow-engine.ts +218 -0
  148. package/src/forge/agent-fabric/workflow-task-actions.ts +104 -0
  149. package/src/forge/agent-fabric/workflow-templates.ts +11 -0
  150. package/src/forge/agent-memory/bridge.ts +1728 -0
  151. package/src/forge/agent-memory/context-pack.ts +284 -0
  152. package/src/forge/agent-memory/hook-runner.ts +331 -0
  153. package/src/forge/agent-memory/mcp.ts +597 -0
  154. package/src/forge/agent-memory/normalize.ts +498 -0
  155. package/src/forge/agent-memory/redaction.ts +103 -0
  156. package/src/forge/agent-memory/sources/claude-code.ts +51 -0
  157. package/src/forge/agent-memory/sources/codex-hook-runner.mjs +343 -0
  158. package/src/forge/agent-memory/sources/codex.ts +161 -0
  159. package/src/forge/agent-memory/sources/cursor.ts +35 -0
  160. package/src/forge/agent-memory/types.ts +215 -0
  161. package/src/forge/bench.ts +248 -0
  162. package/src/forge/brownfield-import/index.ts +896 -0
  163. package/src/forge/brownfield-import/types.ts +127 -0
  164. package/src/forge/cair/action-journal.ts +61 -0
  165. package/src/forge/cair/action-parser.ts +314 -0
  166. package/src/forge/cair/action-validator.ts +40 -0
  167. package/src/forge/cair/actions.ts +1818 -0
  168. package/src/forge/cair/format.ts +77 -0
  169. package/src/forge/cair/index.ts +118 -0
  170. package/src/forge/cair/query.ts +478 -0
  171. package/src/forge/cair/snapshot.ts +315 -0
  172. package/src/forge/cair/types.ts +255 -0
  173. package/src/forge/cli/adaptive.ts +51 -0
  174. package/src/forge/cli/ai.ts +16 -1
  175. package/src/forge/cli/auth.ts +459 -15
  176. package/src/forge/cli/authmd.ts +441 -0
  177. package/src/forge/cli/baseline.ts +112 -0
  178. package/src/forge/cli/build.ts +20 -4
  179. package/src/forge/cli/changed.ts +418 -0
  180. package/src/forge/cli/codex-app-server.ts +877 -0
  181. package/src/forge/cli/commands.ts +1859 -20
  182. package/src/forge/cli/db.ts +209 -2
  183. package/src/forge/cli/deploy.ts +1339 -0
  184. package/src/forge/cli/deps.ts +150 -23
  185. package/src/forge/cli/dev.ts +1137 -53
  186. package/src/forge/cli/docs.ts +265 -0
  187. package/src/forge/cli/doctor.ts +297 -0
  188. package/src/forge/cli/env-placeholders.ts +62 -0
  189. package/src/forge/cli/evolution.ts +40 -0
  190. package/src/forge/cli/fabric.ts +253 -0
  191. package/src/forge/cli/field-test.ts +568 -0
  192. package/src/forge/cli/golden-path.ts +487 -0
  193. package/src/forge/cli/handoff.ts +336 -0
  194. package/src/forge/cli/index.ts +1 -0
  195. package/src/forge/cli/last-run.ts +84 -0
  196. package/src/forge/cli/main.ts +194 -3
  197. package/src/forge/cli/new.ts +169 -17
  198. package/src/forge/cli/next-actions.ts +23 -0
  199. package/src/forge/cli/output.ts +398 -6
  200. package/src/forge/cli/parse.ts +1377 -38
  201. package/src/forge/cli/progress.ts +51 -0
  202. package/src/forge/cli/query.ts +32 -0
  203. package/src/forge/cli/release.ts +35 -11
  204. package/src/forge/cli/repository.ts +151 -0
  205. package/src/forge/cli/run.ts +42 -0
  206. package/src/forge/cli/secrets.ts +137 -1
  207. package/src/forge/cli/seed.ts +581 -0
  208. package/src/forge/cli/self-host.ts +56 -14
  209. package/src/forge/cli/studio.ts +2282 -0
  210. package/src/forge/cli/verify.ts +1458 -32
  211. package/src/forge/cli/windows.ts +23 -0
  212. package/src/forge/cli/workos.ts +3509 -0
  213. package/src/forge/compiler/agent-contract/build.ts +728 -64
  214. package/src/forge/compiler/agent-contract/types.ts +45 -2
  215. package/src/forge/compiler/ai-registry/parse.ts +71 -2
  216. package/src/forge/compiler/api-surface/build.ts +47 -0
  217. package/src/forge/compiler/app-graph/build.ts +112 -9
  218. package/src/forge/compiler/app-graph/extract.ts +107 -0
  219. package/src/forge/compiler/app-graph/module-graph.ts +73 -78
  220. package/src/forge/compiler/app-graph/parser.ts +24 -24
  221. package/src/forge/compiler/app-graph/profile.ts +26 -0
  222. package/src/forge/compiler/app-graph/tsconfig-hash.ts +41 -4
  223. package/src/forge/compiler/app-graph/versions.ts +1 -1
  224. package/src/forge/compiler/classifier/capabilities.ts +3 -2
  225. package/src/forge/compiler/classifier/classify.ts +32 -8
  226. package/src/forge/compiler/classifier/secrets.ts +3 -2
  227. package/src/forge/compiler/classifier/signals.ts +91 -1
  228. package/src/forge/compiler/client-sdk/build-manifest.ts +59 -0
  229. package/src/forge/compiler/client-sdk/render-client.ts +295 -13
  230. package/src/forge/compiler/data-graph/build.ts +29 -1
  231. package/src/forge/compiler/data-graph/parse.ts +20 -4
  232. package/src/forge/compiler/data-graph/sql/ddl.ts +144 -31
  233. package/src/forge/compiler/data-graph/sql/serialize.ts +4 -0
  234. package/src/forge/compiler/data-graph/sql/types.ts +1 -0
  235. package/src/forge/compiler/diagnostics/codes.ts +38 -0
  236. package/src/forge/compiler/diagnostics/create.ts +28 -2
  237. package/src/forge/compiler/diagnostics/index.ts +2 -0
  238. package/src/forge/compiler/emitter/barrel.ts +3 -0
  239. package/src/forge/compiler/emitter/render.ts +9 -0
  240. package/src/forge/compiler/external-manifest/registry.ts +217 -0
  241. package/src/forge/compiler/external-manifest/types.ts +91 -0
  242. package/src/forge/compiler/external-manifest/validate.ts +373 -0
  243. package/src/forge/compiler/frontend-graph/build.ts +142 -14
  244. package/src/forge/compiler/integration/add.ts +991 -33
  245. package/src/forge/compiler/integration/plan.ts +43 -12
  246. package/src/forge/compiler/integration/render.ts +29 -0
  247. package/src/forge/compiler/integration/snapshot.ts +2 -0
  248. package/src/forge/compiler/integration/templates/convex.ts +70 -0
  249. package/src/forge/compiler/integration/templates/index.ts +1 -0
  250. package/src/forge/compiler/integration/templates/render.ts +38 -0
  251. package/src/forge/compiler/integration/templates/types.ts +3 -0
  252. package/src/forge/compiler/integration/templates/workos.ts +1439 -0
  253. package/src/forge/compiler/make-registry/build.ts +8 -9
  254. package/src/forge/compiler/orchestrator/fast-check.ts +4 -0
  255. package/src/forge/compiler/orchestrator/generate-lock.ts +14 -3
  256. package/src/forge/compiler/orchestrator/manifest.ts +1 -1
  257. package/src/forge/compiler/orchestrator/plan-profile.ts +23 -0
  258. package/src/forge/compiler/orchestrator/plan.ts +249 -10
  259. package/src/forge/compiler/orchestrator/profile.ts +65 -0
  260. package/src/forge/compiler/orchestrator/run.ts +101 -33
  261. package/src/forge/compiler/orchestrator/serialize.ts +33 -8
  262. package/src/forge/compiler/orchestrator/types.ts +1 -1
  263. package/src/forge/compiler/package-graph/compiler.ts +3 -1
  264. package/src/forge/compiler/package-graph/constants.ts +1 -1
  265. package/src/forge/compiler/package-graph/dts-extractor.ts +14 -1
  266. package/src/forge/compiler/package-manager/adapter.ts +4 -1
  267. package/src/forge/compiler/package-manager/commands.ts +4 -0
  268. package/src/forge/compiler/package-manager/executor.ts +30 -1
  269. package/src/forge/compiler/package-manager/version.ts +36 -12
  270. package/src/forge/compiler/package-upgrades/planner.ts +155 -18
  271. package/src/forge/compiler/package-upgrades/types.ts +2 -0
  272. package/src/forge/compiler/policy-registry/build.ts +47 -2
  273. package/src/forge/compiler/policy-registry/parse.ts +32 -2
  274. package/src/forge/compiler/recipes/definitions.ts +63 -0
  275. package/src/forge/compiler/recipes/index.ts +2 -0
  276. package/src/forge/compiler/recipes/profiles.ts +81 -0
  277. package/src/forge/compiler/recipes/registry.ts +6 -0
  278. package/src/forge/compiler/test-graph/build.ts +11 -3
  279. package/src/forge/compiler/types/app-graph.ts +8 -2
  280. package/src/forge/compiler/types/cli.ts +76 -1
  281. package/src/forge/compiler/types/dev-manifest.ts +4 -0
  282. package/src/forge/compiler/types/emit.ts +2 -0
  283. package/src/forge/compiler/types/frontend-graph.ts +2 -2
  284. package/src/forge/compiler/types/integration.ts +1 -0
  285. package/src/forge/compiler/types/package-graph.ts +6 -0
  286. package/src/forge/compiler/types/policy-registry.ts +3 -1
  287. package/src/forge/delta/broker-runner.mjs +5 -0
  288. package/src/forge/delta/broker.ts +429 -0
  289. package/src/forge/delta/classifier.ts +52 -0
  290. package/src/forge/delta/explain.ts +238 -0
  291. package/src/forge/delta/git-observer.ts +67 -0
  292. package/src/forge/delta/ids.ts +44 -0
  293. package/src/forge/delta/index.ts +25 -0
  294. package/src/forge/delta/process-identity.ts +37 -0
  295. package/src/forge/delta/queue-status.ts +190 -0
  296. package/src/forge/delta/recorder.ts +540 -0
  297. package/src/forge/delta/redaction.ts +50 -0
  298. package/src/forge/delta/schema.ts +240 -0
  299. package/src/forge/delta/session.ts +142 -0
  300. package/src/forge/delta/status.ts +1139 -0
  301. package/src/forge/delta/store.ts +3329 -0
  302. package/src/forge/delta/timeline.ts +178 -0
  303. package/src/forge/dev/server.ts +1061 -22
  304. package/src/forge/dev/types.ts +15 -1
  305. package/src/forge/dev/watch.ts +17 -7
  306. package/src/forge/dev-console/cycle.ts +285 -33
  307. package/src/forge/dev-console/types.ts +47 -1
  308. package/src/forge/impact/index.ts +222 -30
  309. package/src/forge/impact/types.ts +33 -1
  310. package/src/forge/intent/index.ts +35 -16
  311. package/src/forge/make/fields.ts +26 -0
  312. package/src/forge/make/index.ts +42 -6
  313. package/src/forge/make/templates.ts +211 -4
  314. package/src/forge/make/types.ts +2 -1
  315. package/src/forge/policy.ts +1 -1
  316. package/src/forge/react/index.ts +160 -2
  317. package/src/forge/refactor/index.ts +1 -0
  318. package/src/forge/repair/rules/index.ts +2 -2
  319. package/src/forge/repository-analysis/adapters/common.ts +72 -0
  320. package/src/forge/repository-analysis/adapters/docker.ts +185 -0
  321. package/src/forge/repository-analysis/adapters/java.ts +133 -0
  322. package/src/forge/repository-analysis/adapters/typescript.ts +350 -0
  323. package/src/forge/repository-analysis/adapters/vue.ts +71 -0
  324. package/src/forge/repository-analysis/analyze.ts +434 -0
  325. package/src/forge/repository-analysis/benchmark.ts +336 -0
  326. package/src/forge/repository-analysis/cache-gc.ts +154 -0
  327. package/src/forge/repository-analysis/check-selection.ts +123 -0
  328. package/src/forge/repository-analysis/context-node.ts +17 -0
  329. package/src/forge/repository-analysis/context.ts +456 -0
  330. package/src/forge/repository-analysis/http-resolution.ts +135 -0
  331. package/src/forge/repository-analysis/identity.ts +45 -0
  332. package/src/forge/repository-analysis/index.ts +18 -0
  333. package/src/forge/repository-analysis/nuxt-resolution.ts +188 -0
  334. package/src/forge/repository-analysis/quality.ts +60 -0
  335. package/src/forge/repository-analysis/retrieval.ts +309 -0
  336. package/src/forge/repository-analysis/runtime-artifacts.ts +195 -0
  337. package/src/forge/repository-analysis/runtime-observation.ts +325 -0
  338. package/src/forge/repository-analysis/scanner.ts +174 -0
  339. package/src/forge/repository-analysis/storage.ts +193 -0
  340. package/src/forge/repository-analysis/test-associations.ts +59 -0
  341. package/src/forge/repository-analysis/types.ts +99 -0
  342. package/src/forge/repository-manifest/index.ts +178 -0
  343. package/src/forge/repository-manifest/types.ts +63 -0
  344. package/src/forge/review/index.ts +162 -12
  345. package/src/forge/review/types.ts +15 -0
  346. package/src/forge/runtime/ai/providers.ts +19 -4
  347. package/src/forge/runtime/auth/config.ts +17 -0
  348. package/src/forge/runtime/auth/evaluate.ts +15 -2
  349. package/src/forge/runtime/auth/resolve.ts +61 -6
  350. package/src/forge/runtime/auth/types.ts +1 -0
  351. package/src/forge/runtime/db/factory.ts +1 -3
  352. package/src/forge/runtime/db/generated-client.ts +13 -2
  353. package/src/forge/runtime/db/memory-adapter.ts +139 -32
  354. package/src/forge/runtime/db/pglite-adapter.ts +285 -2
  355. package/src/forge/runtime/executor.ts +129 -16
  356. package/src/forge/runtime/external/bridge.ts +663 -0
  357. package/src/forge/runtime/runner/run-entry.ts +16 -7
  358. package/src/forge/runtime/telemetry/buffer.ts +4 -1
  359. package/src/forge/runtime/telemetry/scrubber.ts +35 -5
  360. package/src/forge/runtime/webhooks/security.ts +12 -7
  361. package/src/forge/server.ts +71 -7
  362. package/src/forge/ui/index.ts +831 -19
  363. package/src/forge/ui/types.ts +3 -1
  364. package/src/forge/version.ts +1 -1
  365. package/src/forge/vue/index.ts +422 -0
  366. package/src/forge/workspace/baseline.ts +112 -0
  367. package/src/forge/workspace/change-summary.ts +292 -0
  368. package/src/forge/workspace/forge-cli.ts +42 -0
  369. package/src/forge/workspace/git-summary.ts +393 -0
  370. package/templates/agent-workroom/AGENTS.md +29 -0
  371. package/templates/agent-workroom/README.md +34 -0
  372. package/templates/agent-workroom/forge.config.ts +3 -0
  373. package/templates/agent-workroom/package.json +34 -0
  374. package/templates/agent-workroom/pnpm-workspace.yaml +2 -0
  375. package/templates/agent-workroom/src/actions/indexAgentSignal.ts +10 -0
  376. package/templates/agent-workroom/src/commands/openWorkroom.ts +61 -0
  377. package/templates/agent-workroom/src/commands/recordAgentSignal.ts +119 -0
  378. package/templates/agent-workroom/src/commands/recordCheckRun.ts +52 -0
  379. package/templates/agent-workroom/src/forge/schema.ts +54 -0
  380. package/templates/agent-workroom/src/policies.ts +6 -0
  381. package/templates/agent-workroom/src/queries/listWorkrooms.ts +11 -0
  382. package/templates/agent-workroom/src/queries/liveWorkroom.ts +63 -0
  383. package/templates/agent-workroom/tsconfig.json +16 -0
  384. package/templates/agent-workroom/web/index.html +13 -0
  385. package/templates/agent-workroom/web/package.json +21 -0
  386. package/templates/agent-workroom/web/src/App.tsx +345 -0
  387. package/templates/agent-workroom/web/src/lib/forge.ts +20 -0
  388. package/templates/agent-workroom/web/src/main.tsx +13 -0
  389. package/templates/agent-workroom/web/src/styles.css +545 -0
  390. package/templates/agent-workroom/web/tsconfig.json +27 -0
  391. package/templates/agent-workroom/web/vite.config.ts +36 -0
  392. package/templates/b2b-support-web/package.json +2 -0
  393. package/templates/b2b-support-web/pnpm-workspace.yaml +2 -0
  394. package/templates/b2b-support-web/web/app/page.tsx +2 -2
  395. package/templates/b2b-support-web/web/lib/forge.ts +9 -2
  396. package/templates/b2b-support-web/web/next.config.ts +24 -0
  397. package/templates/b2b-support-web/web/package.json +1 -1
  398. package/templates/minimal-web/package.json +2 -1
  399. package/templates/minimal-web/pnpm-workspace.yaml +2 -0
  400. package/templates/minimal-web/web/index.html +1 -0
  401. package/templates/minimal-web/web/src/App.tsx +12 -6
  402. package/templates/minimal-web/web/src/lib/forge.ts +9 -2
  403. package/templates/minimal-web/web/src/styles.css +34 -0
  404. package/templates/minimal-web/web/vite.config.ts +36 -0
  405. package/templates/nuxt-web/.vscode/settings.json +14 -0
  406. package/templates/nuxt-web/.yarnrc.yml +1 -0
  407. package/templates/nuxt-web/README.md +30 -0
  408. package/templates/nuxt-web/forge.config.ts +3 -0
  409. package/templates/nuxt-web/package.json +37 -0
  410. package/templates/nuxt-web/pnpm-workspace.yaml +2 -0
  411. package/templates/nuxt-web/src/actions/logNoteCreated.ts +11 -0
  412. package/templates/nuxt-web/src/commands/createNote.ts +26 -0
  413. package/templates/nuxt-web/src/forge/schema.ts +12 -0
  414. package/templates/nuxt-web/src/policies.ts +6 -0
  415. package/templates/nuxt-web/src/queries/listNotes.ts +8 -0
  416. package/templates/nuxt-web/src/queries/liveNotes.ts +8 -0
  417. package/templates/nuxt-web/tsconfig.json +17 -0
  418. package/templates/nuxt-web/web/app.vue +67 -0
  419. package/templates/nuxt-web/web/components/LiveNotes.vue +89 -0
  420. package/templates/nuxt-web/web/components/NoteComposer.vue +100 -0
  421. package/templates/nuxt-web/web/composables/forge.ts +13 -0
  422. package/templates/nuxt-web/web/composables/useNotes.ts +24 -0
  423. package/templates/nuxt-web/web/nuxt.config.ts +11 -0
  424. package/templates/nuxt-web/web/package.json +22 -0
  425. package/templates/nuxt-web/web/plugins/forge.client.ts +10 -0
  426. package/templates/nuxt-web/web/plugins/forge.server.ts +10 -0
  427. package/templates/nuxt-web/web/server/api/forge-health.get.ts +7 -0
  428. package/templates/nuxt-web/web/tsconfig.json +6 -0
  429. package/templates/vendor-access/.vscode/settings.json +14 -0
  430. package/templates/vendor-access/README.md +30 -0
  431. package/templates/vendor-access/forge.config.ts +3 -0
  432. package/templates/vendor-access/package.json +35 -0
  433. package/templates/vendor-access/pnpm-workspace.yaml +2 -0
  434. package/templates/vendor-access/src/commands/addEvidence.ts +42 -0
  435. package/templates/vendor-access/src/commands/approveAccessRequest.ts +43 -0
  436. package/templates/vendor-access/src/commands/createAccessRequest.ts +49 -0
  437. package/templates/vendor-access/src/commands/seedVendorAccessDemo.ts +200 -0
  438. package/templates/vendor-access/src/forge/schema.ts +74 -0
  439. package/templates/vendor-access/src/policies.ts +11 -0
  440. package/templates/vendor-access/src/queries/listVendorAccessDashboard.ts +24 -0
  441. package/templates/vendor-access/src/queries/liveVendorAccessDashboard.ts +24 -0
  442. package/templates/vendor-access/tsconfig.json +17 -0
  443. package/templates/vendor-access/web/index.html +13 -0
  444. package/templates/vendor-access/web/package.json +21 -0
  445. package/templates/vendor-access/web/src/App.tsx +573 -0
  446. package/templates/vendor-access/web/src/lib/forge.ts +20 -0
  447. package/templates/vendor-access/web/src/main.tsx +205 -0
  448. package/templates/vendor-access/web/src/styles.css +682 -0
  449. package/templates/vendor-access/web/tsconfig.json +18 -0
  450. package/templates/vendor-access/web/vite.config.ts +36 -0
  451. package/src/forge/_generated/actionSubscriptions.json +0 -2
  452. package/src/forge/_generated/actionSubscriptions.ts +0 -10
  453. package/src/forge/_generated/agentAdapterManifest.json +0 -2
  454. package/src/forge/_generated/agentAdapterManifest.ts +0 -73
  455. package/src/forge/_generated/agentContract.json +0 -2
  456. package/src/forge/_generated/agentContract.ts +0 -7829
  457. package/src/forge/_generated/agentQuickstart.md +0 -34
  458. package/src/forge/_generated/agentTools.json +0 -2
  459. package/src/forge/_generated/agentTools.md +0 -16
  460. package/src/forge/_generated/agentTools.ts +0 -12
  461. package/src/forge/_generated/aiContext.ts +0 -125
  462. package/src/forge/_generated/aiModels.json +0 -2
  463. package/src/forge/_generated/aiModels.ts +0 -51
  464. package/src/forge/_generated/aiProviders.json +0 -2
  465. package/src/forge/_generated/aiProviders.ts +0 -23
  466. package/src/forge/_generated/aiRegistry.json +0 -2
  467. package/src/forge/_generated/aiRegistry.ts +0 -31
  468. package/src/forge/_generated/api.json +0 -2
  469. package/src/forge/_generated/api.ts +0 -8
  470. package/src/forge/_generated/appGraph.json +0 -2
  471. package/src/forge/_generated/appGraph.ts +0 -14937
  472. package/src/forge/_generated/appMap.md +0 -55
  473. package/src/forge/_generated/artifactManifest.json +0 -2
  474. package/src/forge/_generated/artifactManifest.ts +0 -7
  475. package/src/forge/_generated/authClaims.json +0 -2
  476. package/src/forge/_generated/authClaims.ts +0 -13
  477. package/src/forge/_generated/authConfig.json +0 -2
  478. package/src/forge/_generated/authConfig.ts +0 -17
  479. package/src/forge/_generated/authContext.ts +0 -23
  480. package/src/forge/_generated/authRegistry.json +0 -2
  481. package/src/forge/_generated/authRegistry.ts +0 -25
  482. package/src/forge/_generated/buildInfo.json +0 -2
  483. package/src/forge/_generated/buildInfo.ts +0 -9
  484. package/src/forge/_generated/capabilityMap.json +0 -2
  485. package/src/forge/_generated/capabilityMap.md +0 -15
  486. package/src/forge/_generated/capabilityMap.ts +0 -17
  487. package/src/forge/_generated/client.ts +0 -282
  488. package/src/forge/_generated/clientApi.ts +0 -9
  489. package/src/forge/_generated/clientManifest.json +0 -2
  490. package/src/forge/_generated/clientManifest.ts +0 -39
  491. package/src/forge/_generated/clientTypes.ts +0 -78
  492. package/src/forge/_generated/configRegistry.json +0 -2
  493. package/src/forge/_generated/configRegistry.ts +0 -4
  494. package/src/forge/_generated/dataGraph.json +0 -2
  495. package/src/forge/_generated/dataGraph.ts +0 -8
  496. package/src/forge/_generated/db.json +0 -2
  497. package/src/forge/_generated/db.ts +0 -2
  498. package/src/forge/_generated/dbSecurityManifest.json +0 -2
  499. package/src/forge/_generated/dbSecurityManifest.ts +0 -15
  500. package/src/forge/_generated/dbSessionContext.json +0 -2
  501. package/src/forge/_generated/dbSessionContext.ts +0 -39
  502. package/src/forge/_generated/deployManifest.json +0 -2
  503. package/src/forge/_generated/deployManifest.ts +0 -14
  504. package/src/forge/_generated/devManifest.json +0 -2
  505. package/src/forge/_generated/devManifest.ts +0 -62
  506. package/src/forge/_generated/envSchema.json +0 -2
  507. package/src/forge/_generated/envSchema.ts +0 -59
  508. package/src/forge/_generated/frontendGraph.json +0 -2
  509. package/src/forge/_generated/frontendGraph.ts +0 -27
  510. package/src/forge/_generated/importGuards.json +0 -2
  511. package/src/forge/_generated/importGuards.ts +0 -686
  512. package/src/forge/_generated/index.ts +0 -68
  513. package/src/forge/_generated/liveProductionManifest.json +0 -2
  514. package/src/forge/_generated/liveProductionManifest.ts +0 -23
  515. package/src/forge/_generated/liveProtocol.json +0 -2
  516. package/src/forge/_generated/liveProtocol.ts +0 -21
  517. package/src/forge/_generated/liveQueryRegistry.json +0 -2
  518. package/src/forge/_generated/liveQueryRegistry.ts +0 -9
  519. package/src/forge/_generated/liveTransportConfig.json +0 -2
  520. package/src/forge/_generated/liveTransportConfig.ts +0 -19
  521. package/src/forge/_generated/makeRegistry.json +0 -2
  522. package/src/forge/_generated/makeRegistry.ts +0 -177
  523. package/src/forge/_generated/makeTemplates.json +0 -2
  524. package/src/forge/_generated/makeTemplates.ts +0 -66
  525. package/src/forge/_generated/mockMap.json +0 -2
  526. package/src/forge/_generated/mockMap.ts +0 -7
  527. package/src/forge/_generated/operationPlaybooks.md +0 -167
  528. package/src/forge/_generated/packageGraph.json +0 -2
  529. package/src/forge/_generated/packageGraph.ts +0 -249334
  530. package/src/forge/_generated/packageUpgradeRegistry.json +0 -2
  531. package/src/forge/_generated/packageUpgradeRegistry.ts +0 -15
  532. package/src/forge/_generated/permissionMatrix.json +0 -2
  533. package/src/forge/_generated/permissionMatrix.ts +0 -7
  534. package/src/forge/_generated/policyRegistry.json +0 -2
  535. package/src/forge/_generated/policyRegistry.ts +0 -11
  536. package/src/forge/_generated/queryRegistry.json +0 -2
  537. package/src/forge/_generated/queryRegistry.ts +0 -9
  538. package/src/forge/_generated/react.d.ts +0 -22
  539. package/src/forge/_generated/react.ts +0 -29
  540. package/src/forge/_generated/reactManifest.json +0 -2
  541. package/src/forge/_generated/reactManifest.ts +0 -19
  542. package/src/forge/_generated/rlsPolicies.json +0 -2
  543. package/src/forge/_generated/rlsPolicies.sql +0 -34
  544. package/src/forge/_generated/rlsPolicies.ts +0 -6
  545. package/src/forge/_generated/runtimeGraph.json +0 -2
  546. package/src/forge/_generated/runtimeGraph.ts +0 -8
  547. package/src/forge/_generated/runtimeMatrix.json +0 -2
  548. package/src/forge/_generated/runtimeMatrix.ts +0 -334130
  549. package/src/forge/_generated/runtimeRegistry.ts +0 -2
  550. package/src/forge/_generated/runtimeRules.md +0 -91
  551. package/src/forge/_generated/secretRegistry.json +0 -2
  552. package/src/forge/_generated/secretRegistry.ts +0 -50
  553. package/src/forge/_generated/secretsContext.ts +0 -11
  554. package/src/forge/_generated/serverApi.ts +0 -10
  555. package/src/forge/_generated/sourceMapManifest.json +0 -2
  556. package/src/forge/_generated/sourceMapManifest.ts +0 -7
  557. package/src/forge/_generated/sqlPlan.json +0 -2
  558. package/src/forge/_generated/sqlPlan.ts +0 -88
  559. package/src/forge/_generated/subscriptionManifest.json +0 -2
  560. package/src/forge/_generated/subscriptionManifest.ts +0 -7
  561. package/src/forge/_generated/symbolicationManifest.json +0 -2
  562. package/src/forge/_generated/symbolicationManifest.ts +0 -17
  563. package/src/forge/_generated/telemetryRegistry.json +0 -2
  564. package/src/forge/_generated/telemetryRegistry.ts +0 -9
  565. package/src/forge/_generated/telemetrySinks.json +0 -2
  566. package/src/forge/_generated/telemetrySinks.ts +0 -11
  567. package/src/forge/_generated/tenantScope.json +0 -2
  568. package/src/forge/_generated/tenantScope.ts +0 -8
  569. package/src/forge/_generated/testGraph.json +0 -2
  570. package/src/forge/_generated/testGraph.ts +0 -3452
  571. package/src/forge/_generated/testPlanRegistry.json +0 -2
  572. package/src/forge/_generated/testPlanRegistry.ts +0 -33
  573. package/src/forge/_generated/uiRoutes.json +0 -2
  574. package/src/forge/_generated/uiRoutes.ts +0 -16
  575. package/src/forge/_generated/uiScenarios.json +0 -2
  576. package/src/forge/_generated/uiScenarios.ts +0 -30
  577. package/src/forge/_generated/uiTestManifest.json +0 -2
  578. package/src/forge/_generated/uiTestManifest.ts +0 -27
  579. package/src/forge/_generated/workflowRegistry.json +0 -2
  580. package/src/forge/_generated/workflowRegistry.ts +0 -9
  581. package/src/forge/_generated/workflowSubscriptions.json +0 -2
  582. package/src/forge/_generated/workflowSubscriptions.ts +0 -10
@@ -0,0 +1,168 @@
1
+ # Agent Fabric program workflows v2
2
+
3
+ Program workflows are an opt-in interpreter hosted by the existing authenticated local
4
+ project owner. Version-1 managed runs and accompanied task records retain their original
5
+ commands, persistence and meaning. No existing run is automatically converted.
6
+
7
+ Author a `WorkflowProgramV2` JSON value, or supply finite TypeScript source with named
8
+ imports from `forgeos/agent-fabric/workflows`. The static lowerer accepts const data,
9
+ literal arrays/objects, constructors and spreads of already lowered const data objects.
10
+ It rejects arbitrary imports, loops, closures, accessors, computed properties, array
11
+ spreads, runtime I/O and malformed syntax. Workflow source is never executed.
12
+
13
+ The shipped example is `examples/agent-fabric-v2/`. Its file-conversion reviewers are
14
+ deterministic command fixtures; configure a real distinct reviewer and project checks
15
+ for coding acceptance. See the architecture ADR for normative boundaries.
16
+
17
+ ## Owner configuration and commands
18
+
19
+ The owner reads `.forge/fabric-programs.json`, with versioned `schemas`, `executors`,
20
+ `policies`, `acceptance`, `populations` and optional child `programs` registries.
21
+ Requests cannot replace that registry. Each run pins its registry and external contracts.
22
+ An author chooses registered references, not weaker review, coverage or effect authority.
23
+
24
+ Keep `forge fabric serve` alive. Every mutation uses a unique `requestId`; subsequent
25
+ mutations also require `runId` and `expectedVersion`. A repeated identical request is
26
+ idempotent; changed contents under that request ID conflict. After a version conflict,
27
+ read current status and use a new request ID for a changed decision.
28
+
29
+ | CLI action | Meaning |
30
+ | --- | --- |
31
+ | `program-validate --file request.json` | Lower and validate without dispatch |
32
+ | `program-start --file request.json` | Persist baseline, input and program before scheduling |
33
+ | `program-status --run-id ID` | Read authoritative state |
34
+ | `program-wait --file request.json` | Bounded wait using `{runId,cursor,waitMs}` |
35
+ | `program-pause`, `program-resume` | Stop new dispatch / explicitly resume settled work |
36
+ | `program-signal` | Persist an authorized event with target, generation, type and correlation |
37
+ | `program-replan` | New program with barrier/additive/fenced modes |
38
+ | `program-cancel` | Request cancellation; unobserved effects stay uncertain |
39
+ | `program-reconcile` | Record observed failure or reconcile publication |
40
+ | `program-apply` | Apply a gated candidate to local scoped files |
41
+
42
+ Use `--file request.json --json` for mutations. Start accepts `{requestId,source,input}`
43
+ or `{requestId,program,input}`. MCP exposes the same actions as
44
+ `fabric_program_*`, using `{request: BODY}` for mutations and `{runId}` for status.
45
+ Both transports use the same owner, state store and capability boundaries.
46
+ The shared authenticated HTTP owner limits each request body to 40 KiB. Keep source and
47
+ input below that transport bound; the offline lowerer's separate source cap is 256 KiB.
48
+
49
+ ## Operators and contracts
50
+
51
+ `value`, `agent`, `command`, `map`, `branch`, `loop`, `repair`, `compose`, `gate`,
52
+ `subworkflow` and `waitEvent` are finite primitives. Explicit output references infer
53
+ dependencies; parent/body cycles are rejected before dispatch. Branches mark the other
54
+ arm skipped. Child programs inherit policy/acceptance and global attempt/deadline limits.
55
+ Loops require bounded rounds and a progress/termination decision. Each materialized
56
+ operation has a stable invocation ID, generation and input/semantic digests.
57
+
58
+ Schemas use a bounded JSON Schema subset: types, enum/const, properties, required,
59
+ additionalProperties, items, array/string/numeric bounds and anyOf. Unsupported keywords
60
+ are rejected. Conservative static inference checks known field, child-input, branch-merge
61
+ and result types. Unknown shapes still require runtime validation. A completed process
62
+ does not imply a valid output or approval: review payloads distinguish approved,
63
+ changes_requested and inconclusive from operational failure.
64
+
65
+ `repair@v1` is a built-in deterministic recipe. `implement-first` edits before assessment;
66
+ `assess-first` can approve with zero edits. Every assessment reviews/checks the same
67
+ candidate, with a distinct readonly reviewer and registered command checks. Candidate,
68
+ feedback, phase, implementation/assessment/infrastructure counters and measured progress
69
+ are checkpointed. Resume cannot replenish exhausted budgets. Nonaccepted recipes keep
70
+ diagnostic output and stop their consumers; later values cannot mask rejection.
71
+
72
+ `map` requires finite unique NFC keys, bounded concurrency, a seal and explicit completion:
73
+ all-required, partial or quorum. All-required discovery must match the owner population.
74
+ Coverage alone does not prove work was accepted: a separate closed collection ledger
75
+ binds each item's accepted assessment and candidate contribution. Population gates require
76
+ that ledger and retain every item's deltas/producers in the final candidate. Empty work
77
+ requires explicit allowNoWork in both population and acceptance contracts.
78
+
79
+ The initial inventory adapter enumerates files under captured `inventoryRoots` and optional
80
+ extensions. It is a concrete file inventory, not a semantic proof that a glob found all
81
+ components. Semantic populations require owner-supplied evidence and exact baseline pinning.
82
+ Exclusions require an inventory member and a reason. Population changes require a successor
83
+ run with a new captured contract; current replan cannot replace external contracts.
84
+
85
+ ## Candidate acceptance and application
86
+
87
+ Candidates are immutable snapshot identities with ordered producer-specific deltas and
88
+ parents. A shared ancestor is composed once; equal patches from independent producers
89
+ are not silently deduplicated. Independent overlaps require resolution. Beforeimages,
90
+ captured environment context, source types and scopes are checked before local writes.
91
+
92
+ `completed` means a data program reached its typed result without a final acceptance gate.
93
+ It is a re-openable computation checkpoint; it does not authorize application. Replan and
94
+ resume are explicit owner decisions and the earlier state remains in immutable history.
95
+ `acceptance-ready` requires an owner-issued gate and `acceptedCandidate`. A declared
96
+ accepted result cannot bypass that gate or point to another candidate. Uncertain/active
97
+ attempts block completion and application. `applied` and `canceled` require explicit successor
98
+ runs for new work. No lifecycle state asserts human or production acceptance.
99
+
100
+ `program-apply` requires current version, gate and authorization provenance. The owner
101
+ commits ApplyIntent with candidate/program/contract digests, semantic version, seals and
102
+ expected files before the first write. Signals received during application stay
103
+ pending-after-apply. Publication checks each beforeimage, checks cancellation before each
104
+ write, and stores observed completion. Multiple files are not one filesystem transaction.
105
+ An interrupted/partial/divergent publication becomes apply-uncertain; it never silently retries.
106
+
107
+ Publication reconciliation accepts `publication: true` only after observing all expected
108
+ files. `publication: "retry"` requires authorization and the complete original baseline;
109
+ it clears the old intent and pauses for explicit resume/revalidation. Partial or divergent
110
+ files are preserved. Worker reconciliation requires attemptId, `resolution: "failed"`
111
+ and an observed reason; parent uncertainty is reconciled after its worker attempts.
112
+
113
+ ## Durability, replan, effects and reuse
114
+
115
+ Each run has one checksummed authoritative atomic record in
116
+ `.forge/local/agent-fabric/program-runs`. Immutable artifacts and full stateRefs are fsynced
117
+ before referencing transitions. Every historical transition points to the exact state,
118
+ including prior programs, generations, decisions and counters. Store.history and artifact
119
+ get APIs inspect that history. Locks use linked complete owner files and guarded dead-owner
120
+ reclamation. Recovery marks incomplete dispatch/application uncertain and does not start work.
121
+ Process-crash/replay behavior is tested. Directory fsync/power-loss durability across every
122
+ filesystem is not asserted. Archive/GC is manual; preserving evidence consumes disk.
123
+
124
+ Barrier replan requires settled work. Additive replan preserves all existing templates;
125
+ after the previous scheduler cycle settles, controls and final gates are recomputed for
126
+ the new semantic version. Fenced replan is owner opt-in: affected operations/dependents
127
+ receive monotonic generations; running attempts become uncertain and receive abort requests.
128
+ It currently uses a **global scheduling barrier**. Unaffected running work may finish, but
129
+ resume waits for the scheduler to settle and uncertainty to be reconciled. Removed historical
130
+ operations are retired/skipped after observation; history is retained. This is not arbitrary
131
+ live replacement with independent branch schedulers.
132
+
133
+ Commands use explicit argv, resolved/hashed actual executables, scrubbed environment,
134
+ frozen clone inputs and optional locked dependencies with scripts ignored. They are
135
+ cooperative OS processes, not a network/filesystem sandbox. Strong disabled-network claims
136
+ are refused for commands. Codex workers use readonly/workspace-write sandbox, disabled
137
+ network and inherited MCP isolation. captureScope is distinct from write authority, allowing
138
+ readonly programs without granting source writes. Generated paths cannot conceal captured
139
+ source; external scratch is separate from candidate files. Cancellation does not prove a
140
+ process tree stopped; unknown outcomes require observation.
141
+
142
+ Outputs are not reused by default. `cache: "workspace"` is an owner declaration for command
143
+ executors whose complete relevant inputs are their captured workspace/data, observed binary,
144
+ dependency tree and environment. External/network/time/global filesystem inputs invalidate
145
+ that declaration unless separately closed by an adapter. Compatible completed outputs receive
146
+ explicit reuse receipts. SDK output reuse is disabled because effective global instructions,
147
+ plugins and model inputs are not yet fully attested. Prompt caching is a separate provider feature.
148
+
149
+ Recommended initial concurrency is four. Hard caps: concurrency32, depth32, items10000,
150
+ attempts10000, operations20000, output4MiB, state32MiB and20 plan revisions. Expression/DSL
151
+ expansion is bounded before concatenation/cloning. A dispatch reserve leaves record space
152
+ for recovery. These are limits, not measured performance claims at maximum scale.
153
+
154
+ ## Verification and remaining scope
155
+
156
+ Tests cover finite lowering, output/generation/counter contracts, 80-item coverage, fabricated
157
+ receipts, no-work, events, cache attestation, recovery, additive/fenced races, real commands,
158
+ two-file composition, three same-file corrections, diamond ancestry, identical independent
159
+ patch conflicts, application idempotency, beforeimage preservation and authenticated transport.
160
+ The opt-in SDK pilot script performs a real readonly typed activity and records its bounded
161
+ evidence separately. It is excluded from normal CI to avoid account/model usage.
162
+
163
+ This alpha implements the bounded v2 foundation and conservative online controls. It does
164
+ not establish complete F6/F7 product acceptance, semantic inventory adapters, extensible recipe
165
+ registries, external effects exactly-once, streaming discovery, automatic GC, SDK output cache,
166
+ high-concurrency scale, a live independent-branch scheduler or Claude product superiority.
167
+ The benchmark harness labels its procedural comparison as a reference model, never as a
168
+ measured Claude run. Production/EasyGrow/native-hook/App-closed acceptance remains separate.