forgeos 0.1.0-alpha.2 → 0.1.0-alpha.21

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 (406) hide show
  1. package/.npmignore +4 -0
  2. package/AGENTS.md +168 -81
  3. package/CHANGELOG.md +211 -0
  4. package/README.md +88 -14
  5. package/adapters/go/README.md +23 -0
  6. package/adapters/go/go.mod +3 -0
  7. package/adapters/go/http.go +149 -0
  8. package/adapters/go/registry.go +234 -0
  9. package/adapters/go/types.go +136 -0
  10. package/adapters/java/README.md +68 -0
  11. package/adapters/java/pom.xml +34 -0
  12. package/adapters/java/src/main/java/dev/forgeos/adapter/Auth.java +20 -0
  13. package/adapters/java/src/main/java/dev/forgeos/adapter/Diagnostic.java +16 -0
  14. package/adapters/java/src/main/java/dev/forgeos/adapter/Entry.java +38 -0
  15. package/adapters/java/src/main/java/dev/forgeos/adapter/EntryKind.java +16 -0
  16. package/adapters/java/src/main/java/dev/forgeos/adapter/ErrorInfo.java +4 -0
  17. package/adapters/java/src/main/java/dev/forgeos/adapter/Forge.java +94 -0
  18. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeCall.java +12 -0
  19. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeContext.java +11 -0
  20. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeHandler.java +8 -0
  21. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeHttpHandler.java +179 -0
  22. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeRegistry.java +121 -0
  23. package/adapters/java/src/main/java/dev/forgeos/adapter/Json.java +14 -0
  24. package/adapters/java/src/main/java/dev/forgeos/adapter/Manifest.java +14 -0
  25. package/adapters/java/src/main/java/dev/forgeos/adapter/RequestEnvelope.java +6 -0
  26. package/adapters/java/src/main/java/dev/forgeos/adapter/ResponseEnvelope.java +25 -0
  27. package/adapters/java/src/main/java/dev/forgeos/adapter/Risk.java +18 -0
  28. package/adapters/java/src/main/java/dev/forgeos/adapter/Schemas.java +36 -0
  29. package/adapters/java/src/main/java/dev/forgeos/adapter/Service.java +65 -0
  30. package/adapters/java/src/main/java/dev/forgeos/adapter/TransactionMode.java +18 -0
  31. package/adapters/java/src/main/java/dev/forgeos/adapter/TypedForgeHandler.java +6 -0
  32. package/adapters/java/target/classes/dev/forgeos/adapter/Auth.class +0 -0
  33. package/adapters/java/target/classes/dev/forgeos/adapter/Diagnostic.class +0 -0
  34. package/adapters/java/target/classes/dev/forgeos/adapter/Entry.class +0 -0
  35. package/adapters/java/target/classes/dev/forgeos/adapter/EntryKind.class +0 -0
  36. package/adapters/java/target/classes/dev/forgeos/adapter/ErrorInfo.class +0 -0
  37. package/adapters/java/target/classes/dev/forgeos/adapter/Forge.class +0 -0
  38. package/adapters/java/target/classes/dev/forgeos/adapter/ForgeCall.class +0 -0
  39. package/adapters/java/target/classes/dev/forgeos/adapter/ForgeContext.class +0 -0
  40. package/adapters/java/target/classes/dev/forgeos/adapter/ForgeHandler.class +0 -0
  41. package/adapters/java/target/classes/dev/forgeos/adapter/ForgeHttpHandler.class +0 -0
  42. package/adapters/java/target/classes/dev/forgeos/adapter/ForgeRegistry$EntryOption.class +0 -0
  43. package/adapters/java/target/classes/dev/forgeos/adapter/ForgeRegistry$RegisteredEntry.class +0 -0
  44. package/adapters/java/target/classes/dev/forgeos/adapter/ForgeRegistry$RegistryOption.class +0 -0
  45. package/adapters/java/target/classes/dev/forgeos/adapter/ForgeRegistry.class +0 -0
  46. package/adapters/java/target/classes/dev/forgeos/adapter/Json.class +0 -0
  47. package/adapters/java/target/classes/dev/forgeos/adapter/Manifest.class +0 -0
  48. package/adapters/java/target/classes/dev/forgeos/adapter/RequestEnvelope.class +0 -0
  49. package/adapters/java/target/classes/dev/forgeos/adapter/ResponseEnvelope.class +0 -0
  50. package/adapters/java/target/classes/dev/forgeos/adapter/Risk.class +0 -0
  51. package/adapters/java/target/classes/dev/forgeos/adapter/Schemas.class +0 -0
  52. package/adapters/java/target/classes/dev/forgeos/adapter/Service.class +0 -0
  53. package/adapters/java/target/classes/dev/forgeos/adapter/TransactionMode.class +0 -0
  54. package/adapters/java/target/classes/dev/forgeos/adapter/TypedForgeHandler.class +0 -0
  55. package/adapters/java/target/forge-java-adapter-0.1.0-alpha.11.jar +0 -0
  56. package/adapters/java/target/maven-archiver/pom.properties +3 -0
  57. package/adapters/java/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +23 -0
  58. package/adapters/java/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +20 -0
  59. package/adapters/java-spring-boot-starter/README.md +32 -0
  60. package/adapters/java-spring-boot-starter/pom.xml +36 -0
  61. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeCommand.java +22 -0
  62. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeExternalService.java +15 -0
  63. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeQuery.java +16 -0
  64. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeServiceBeanCondition.java +18 -0
  65. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeSpringAutoConfiguration.java +16 -0
  66. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeSpringRuntime.java +104 -0
  67. package/adapters/java-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +1 -0
  68. package/adapters/java-spring-boot-starter/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +1 -0
  69. package/adapters/java-spring-boot-starter/target/classes/dev/forgeos/adapter/spring/ForgeCommand.class +0 -0
  70. package/adapters/java-spring-boot-starter/target/classes/dev/forgeos/adapter/spring/ForgeExternalService.class +0 -0
  71. package/adapters/java-spring-boot-starter/target/classes/dev/forgeos/adapter/spring/ForgeQuery.class +0 -0
  72. package/adapters/java-spring-boot-starter/target/classes/dev/forgeos/adapter/spring/ForgeServiceBeanCondition.class +0 -0
  73. package/adapters/java-spring-boot-starter/target/classes/dev/forgeos/adapter/spring/ForgeSpringAutoConfiguration.class +0 -0
  74. package/adapters/java-spring-boot-starter/target/classes/dev/forgeos/adapter/spring/ForgeSpringRuntime.class +0 -0
  75. package/adapters/java-spring-boot-starter/target/forge-java-spring-boot-starter-0.1.0-alpha.11.jar +0 -0
  76. package/adapters/java-spring-boot-starter/target/maven-archiver/pom.properties +3 -0
  77. package/adapters/java-spring-boot-starter/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +6 -0
  78. package/adapters/java-spring-boot-starter/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +6 -0
  79. package/bin/forge.mjs +18 -0
  80. package/docs/changelog.md +242 -0
  81. package/docs/forge-protocol.md +189 -0
  82. package/examples/go-billing/go.mod +7 -0
  83. package/examples/go-billing/main.go +120 -0
  84. package/examples/java-billing/pom.xml +52 -0
  85. package/examples/java-billing/src/main/java/dev/forgeos/examples/billing/CreateInvoiceInput.java +4 -0
  86. package/examples/java-billing/src/main/java/dev/forgeos/examples/billing/Invoice.java +11 -0
  87. package/examples/java-billing/src/main/java/dev/forgeos/examples/billing/Main.java +127 -0
  88. package/examples/java-billing/target/classes/dev/forgeos/examples/billing/CreateInvoiceInput.class +0 -0
  89. package/examples/java-billing/target/classes/dev/forgeos/examples/billing/Invoice.class +0 -0
  90. package/examples/java-billing/target/classes/dev/forgeos/examples/billing/Main$EmptyInput.class +0 -0
  91. package/examples/java-billing/target/classes/dev/forgeos/examples/billing/Main$Options.class +0 -0
  92. package/examples/java-billing/target/classes/dev/forgeos/examples/billing/Main.class +0 -0
  93. package/examples/java-billing/target/java-billing-0.1.0-alpha.11-all.jar +0 -0
  94. package/examples/java-billing/target/java-billing-0.1.0-alpha.11.jar +0 -0
  95. package/examples/java-billing/target/maven-archiver/pom.properties +3 -0
  96. package/examples/java-billing/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +5 -0
  97. package/examples/java-billing/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +3 -0
  98. package/package.json +29 -7
  99. package/schemas/forge-manifest.schema.json +57 -0
  100. package/src/forge/_generated/releaseManifest.json +1 -2
  101. package/src/forge/_generated/releaseManifest.ts +3 -3
  102. package/src/forge/agent-adapters/index.ts +1511 -123
  103. package/src/forge/agent-adapters/types.ts +216 -1
  104. package/src/forge/agent-memory/bridge.ts +1245 -0
  105. package/src/forge/agent-memory/context-pack.ts +151 -0
  106. package/src/forge/agent-memory/hook-runner.ts +312 -0
  107. package/src/forge/agent-memory/mcp.ts +224 -0
  108. package/src/forge/agent-memory/normalize.ts +498 -0
  109. package/src/forge/agent-memory/redaction.ts +103 -0
  110. package/src/forge/agent-memory/sources/claude-code.ts +51 -0
  111. package/src/forge/agent-memory/sources/codex-hook-runner.mjs +273 -0
  112. package/src/forge/agent-memory/sources/codex.ts +119 -0
  113. package/src/forge/agent-memory/sources/cursor.ts +35 -0
  114. package/src/forge/agent-memory/types.ts +191 -0
  115. package/src/forge/bench.ts +248 -0
  116. package/src/forge/brownfield-import/index.ts +801 -0
  117. package/src/forge/brownfield-import/types.ts +127 -0
  118. package/src/forge/cair/action-journal.ts +61 -0
  119. package/src/forge/cair/action-parser.ts +314 -0
  120. package/src/forge/cair/action-validator.ts +40 -0
  121. package/src/forge/cair/actions.ts +1818 -0
  122. package/src/forge/cair/format.ts +77 -0
  123. package/src/forge/cair/index.ts +106 -0
  124. package/src/forge/cair/query.ts +478 -0
  125. package/src/forge/cair/snapshot.ts +315 -0
  126. package/src/forge/cair/types.ts +248 -0
  127. package/src/forge/cli/ai.ts +671 -3
  128. package/src/forge/cli/auth.ts +36 -1
  129. package/src/forge/cli/build.ts +20 -4
  130. package/src/forge/cli/changed.ts +300 -0
  131. package/src/forge/cli/codex-app-server.ts +877 -0
  132. package/src/forge/cli/commands.ts +1285 -7
  133. package/src/forge/cli/db.ts +121 -2
  134. package/src/forge/cli/deps.ts +79 -12
  135. package/src/forge/cli/dev.ts +502 -38
  136. package/src/forge/cli/docs.ts +265 -0
  137. package/src/forge/cli/handoff.ts +250 -0
  138. package/src/forge/cli/index.ts +1 -0
  139. package/src/forge/cli/main.ts +49 -3
  140. package/src/forge/cli/new.ts +3 -1
  141. package/src/forge/cli/next-actions.ts +23 -0
  142. package/src/forge/cli/output.ts +290 -1
  143. package/src/forge/cli/parse.ts +770 -36
  144. package/src/forge/cli/query.ts +32 -0
  145. package/src/forge/cli/release.ts +35 -11
  146. package/src/forge/cli/rls.ts +568 -17
  147. package/src/forge/cli/run.ts +41 -0
  148. package/src/forge/cli/secrets.ts +46 -1
  149. package/src/forge/cli/security.ts +381 -0
  150. package/src/forge/cli/self-host.ts +56 -14
  151. package/src/forge/cli/studio.ts +2163 -0
  152. package/src/forge/cli/verify.ts +1422 -32
  153. package/src/forge/compiler/agent-contract/build.ts +725 -41
  154. package/src/forge/compiler/agent-contract/types.ts +85 -0
  155. package/src/forge/compiler/ai-registry/build.ts +62 -1
  156. package/src/forge/compiler/ai-registry/constants.ts +1 -1
  157. package/src/forge/compiler/ai-registry/parse.ts +168 -5
  158. package/src/forge/compiler/api-surface/build.ts +47 -0
  159. package/src/forge/compiler/app-graph/build.ts +68 -8
  160. package/src/forge/compiler/app-graph/extract.ts +107 -0
  161. package/src/forge/compiler/app-graph/forge-apis.ts +1 -0
  162. package/src/forge/compiler/app-graph/module-graph.ts +73 -78
  163. package/src/forge/compiler/app-graph/parser.ts +24 -24
  164. package/src/forge/compiler/app-graph/profile.ts +26 -0
  165. package/src/forge/compiler/app-graph/versions.ts +1 -1
  166. package/src/forge/compiler/classifier/capabilities.ts +3 -2
  167. package/src/forge/compiler/classifier/classify.ts +32 -8
  168. package/src/forge/compiler/classifier/secrets.ts +3 -2
  169. package/src/forge/compiler/classifier/signals.ts +91 -1
  170. package/src/forge/compiler/client-sdk/build-manifest.ts +59 -0
  171. package/src/forge/compiler/client-sdk/render-client.ts +188 -13
  172. package/src/forge/compiler/data-graph/parse.ts +3 -3
  173. package/src/forge/compiler/data-graph/sql/ddl.ts +60 -2
  174. package/src/forge/compiler/data-graph/sql/serialize.ts +4 -0
  175. package/src/forge/compiler/data-graph/sql/types.ts +1 -0
  176. package/src/forge/compiler/dev-manifest/build.ts +3 -0
  177. package/src/forge/compiler/diagnostics/codes.ts +35 -0
  178. package/src/forge/compiler/diagnostics/create.ts +8 -3
  179. package/src/forge/compiler/diagnostics/index.ts +2 -0
  180. package/src/forge/compiler/emitter/barrel.ts +3 -0
  181. package/src/forge/compiler/emitter/render.ts +5 -0
  182. package/src/forge/compiler/external-manifest/registry.ts +205 -0
  183. package/src/forge/compiler/external-manifest/types.ts +91 -0
  184. package/src/forge/compiler/external-manifest/validate.ts +373 -0
  185. package/src/forge/compiler/frontend-graph/build.ts +85 -13
  186. package/src/forge/compiler/integration/add.ts +498 -22
  187. package/src/forge/compiler/integration/snapshot.ts +2 -0
  188. package/src/forge/compiler/make-registry/build.ts +19 -7
  189. package/src/forge/compiler/orchestrator/plan-profile.ts +23 -0
  190. package/src/forge/compiler/orchestrator/plan.ts +78 -7
  191. package/src/forge/compiler/orchestrator/profile.ts +65 -0
  192. package/src/forge/compiler/orchestrator/run.ts +97 -31
  193. package/src/forge/compiler/orchestrator/serialize.ts +101 -8
  194. package/src/forge/compiler/package-graph/compiler.ts +13 -3
  195. package/src/forge/compiler/package-manager/adapter.ts +4 -1
  196. package/src/forge/compiler/package-manager/commands.ts +4 -0
  197. package/src/forge/compiler/package-manager/executor.ts +30 -1
  198. package/src/forge/compiler/policy-registry/build.ts +44 -1
  199. package/src/forge/compiler/test-graph/build.ts +11 -3
  200. package/src/forge/compiler/types/ai-registry.ts +25 -1
  201. package/src/forge/compiler/types/app-graph.ts +9 -2
  202. package/src/forge/compiler/types/cli.ts +76 -1
  203. package/src/forge/compiler/types/dev-manifest.ts +3 -0
  204. package/src/forge/compiler/types/frontend-graph.ts +2 -2
  205. package/src/forge/delta/classifier.ts +52 -0
  206. package/src/forge/delta/explain.ts +126 -0
  207. package/src/forge/delta/git-observer.ts +43 -0
  208. package/src/forge/delta/ids.ts +44 -0
  209. package/src/forge/delta/index.ts +13 -0
  210. package/src/forge/delta/recorder.ts +402 -0
  211. package/src/forge/delta/redaction.ts +50 -0
  212. package/src/forge/delta/schema.ts +240 -0
  213. package/src/forge/delta/session.ts +142 -0
  214. package/src/forge/delta/status.ts +489 -0
  215. package/src/forge/delta/store.ts +2975 -0
  216. package/src/forge/delta/timeline.ts +104 -0
  217. package/src/forge/dev/server.ts +768 -15
  218. package/src/forge/dev/types.ts +15 -1
  219. package/src/forge/dev/watch.ts +17 -7
  220. package/src/forge/dev-console/cycle.ts +233 -21
  221. package/src/forge/dev-console/types.ts +46 -1
  222. package/src/forge/impact/index.ts +46 -8
  223. package/src/forge/impact/types.ts +6 -0
  224. package/src/forge/intent/index.ts +35 -16
  225. package/src/forge/make/index.ts +149 -6
  226. package/src/forge/make/templates.ts +343 -2
  227. package/src/forge/make/types.ts +3 -1
  228. package/src/forge/refactor/index.ts +1 -0
  229. package/src/forge/repair/rules/index.ts +2 -2
  230. package/src/forge/review/index.ts +158 -12
  231. package/src/forge/review/types.ts +15 -0
  232. package/src/forge/runtime/ai/context.ts +210 -5
  233. package/src/forge/runtime/ai/types.ts +70 -0
  234. package/src/forge/runtime/auth/claims.ts +32 -0
  235. package/src/forge/runtime/auth/errors.ts +2 -0
  236. package/src/forge/runtime/context/create-context.ts +30 -6
  237. package/src/forge/runtime/db/generated-client.ts +13 -2
  238. package/src/forge/runtime/db/memory-adapter.ts +2 -2
  239. package/src/forge/runtime/db/pglite-adapter.ts +77 -2
  240. package/src/forge/runtime/db/postgres-adapter.ts +6 -3
  241. package/src/forge/runtime/executor.ts +112 -2
  242. package/src/forge/runtime/external/bridge.ts +649 -0
  243. package/src/forge/runtime/runner/run-entry.ts +16 -7
  244. package/src/forge/runtime/telemetry/scrubber.ts +91 -10
  245. package/src/forge/runtime/webhooks/security.ts +184 -0
  246. package/src/forge/server.ts +100 -2
  247. package/src/forge/version.ts +1 -1
  248. package/src/forge/vue/index.ts +407 -0
  249. package/src/forge/workspace/change-summary.ts +209 -0
  250. package/src/forge/workspace/forge-cli.ts +14 -0
  251. package/src/forge/workspace/git-summary.ts +279 -0
  252. package/templates/agent-workroom/AGENTS.md +29 -0
  253. package/templates/agent-workroom/README.md +34 -0
  254. package/templates/agent-workroom/forge.config.ts +3 -0
  255. package/templates/agent-workroom/package.json +33 -0
  256. package/templates/agent-workroom/src/actions/indexAgentSignal.ts +10 -0
  257. package/templates/agent-workroom/src/commands/openWorkroom.ts +61 -0
  258. package/templates/agent-workroom/src/commands/recordAgentSignal.ts +119 -0
  259. package/templates/agent-workroom/src/commands/recordCheckRun.ts +52 -0
  260. package/templates/agent-workroom/src/forge/schema.ts +54 -0
  261. package/templates/agent-workroom/src/policies.ts +6 -0
  262. package/templates/agent-workroom/src/queries/listWorkrooms.ts +11 -0
  263. package/templates/agent-workroom/src/queries/liveWorkroom.ts +63 -0
  264. package/templates/agent-workroom/tsconfig.json +16 -0
  265. package/templates/agent-workroom/web/index.html +12 -0
  266. package/templates/agent-workroom/web/package.json +21 -0
  267. package/templates/agent-workroom/web/src/App.tsx +345 -0
  268. package/templates/agent-workroom/web/src/lib/forge.ts +13 -0
  269. package/templates/agent-workroom/web/src/main.tsx +13 -0
  270. package/templates/agent-workroom/web/src/styles.css +545 -0
  271. package/templates/agent-workroom/web/tsconfig.json +27 -0
  272. package/templates/b2b-support-web/package.json +2 -0
  273. package/templates/b2b-support-web/tsconfig.json +4 -1
  274. package/templates/b2b-support-web/web/package.json +1 -1
  275. package/templates/minimal-web/package.json +2 -1
  276. package/templates/minimal-web/tsconfig.json +3 -1
  277. package/templates/minimal-web/web/package.json +2 -2
  278. package/src/forge/_generated/actionSubscriptions.json +0 -2
  279. package/src/forge/_generated/actionSubscriptions.ts +0 -10
  280. package/src/forge/_generated/agentAdapterManifest.json +0 -2
  281. package/src/forge/_generated/agentAdapterManifest.ts +0 -73
  282. package/src/forge/_generated/agentContract.json +0 -2
  283. package/src/forge/_generated/agentContract.ts +0 -7696
  284. package/src/forge/_generated/agentQuickstart.md +0 -32
  285. package/src/forge/_generated/aiContext.ts +0 -59
  286. package/src/forge/_generated/aiModels.json +0 -2
  287. package/src/forge/_generated/aiModels.ts +0 -35
  288. package/src/forge/_generated/aiProviders.json +0 -2
  289. package/src/forge/_generated/aiProviders.ts +0 -23
  290. package/src/forge/_generated/aiRegistry.json +0 -2
  291. package/src/forge/_generated/aiRegistry.ts +0 -29
  292. package/src/forge/_generated/api.json +0 -2
  293. package/src/forge/_generated/api.ts +0 -8
  294. package/src/forge/_generated/appGraph.json +0 -2
  295. package/src/forge/_generated/appGraph.ts +0 -14667
  296. package/src/forge/_generated/appMap.md +0 -35
  297. package/src/forge/_generated/artifactManifest.json +0 -2
  298. package/src/forge/_generated/artifactManifest.ts +0 -7
  299. package/src/forge/_generated/authClaims.json +0 -2
  300. package/src/forge/_generated/authClaims.ts +0 -13
  301. package/src/forge/_generated/authConfig.json +0 -2
  302. package/src/forge/_generated/authConfig.ts +0 -17
  303. package/src/forge/_generated/authContext.ts +0 -23
  304. package/src/forge/_generated/authRegistry.json +0 -2
  305. package/src/forge/_generated/authRegistry.ts +0 -25
  306. package/src/forge/_generated/buildInfo.json +0 -2
  307. package/src/forge/_generated/buildInfo.ts +0 -9
  308. package/src/forge/_generated/capabilityMap.json +0 -2
  309. package/src/forge/_generated/capabilityMap.md +0 -15
  310. package/src/forge/_generated/capabilityMap.ts +0 -17
  311. package/src/forge/_generated/client.ts +0 -282
  312. package/src/forge/_generated/clientApi.ts +0 -9
  313. package/src/forge/_generated/clientManifest.json +0 -2
  314. package/src/forge/_generated/clientManifest.ts +0 -39
  315. package/src/forge/_generated/clientTypes.ts +0 -78
  316. package/src/forge/_generated/configRegistry.json +0 -2
  317. package/src/forge/_generated/configRegistry.ts +0 -4
  318. package/src/forge/_generated/dataGraph.json +0 -2
  319. package/src/forge/_generated/dataGraph.ts +0 -8
  320. package/src/forge/_generated/db.json +0 -2
  321. package/src/forge/_generated/db.ts +0 -2
  322. package/src/forge/_generated/dbSecurityManifest.json +0 -2
  323. package/src/forge/_generated/dbSecurityManifest.ts +0 -15
  324. package/src/forge/_generated/dbSessionContext.json +0 -2
  325. package/src/forge/_generated/dbSessionContext.ts +0 -39
  326. package/src/forge/_generated/deployManifest.json +0 -2
  327. package/src/forge/_generated/deployManifest.ts +0 -14
  328. package/src/forge/_generated/devManifest.json +0 -2
  329. package/src/forge/_generated/devManifest.ts +0 -47
  330. package/src/forge/_generated/envSchema.json +0 -2
  331. package/src/forge/_generated/envSchema.ts +0 -59
  332. package/src/forge/_generated/frontendGraph.json +0 -2
  333. package/src/forge/_generated/frontendGraph.ts +0 -27
  334. package/src/forge/_generated/importGuards.json +0 -2
  335. package/src/forge/_generated/importGuards.ts +0 -686
  336. package/src/forge/_generated/index.ts +0 -67
  337. package/src/forge/_generated/liveProductionManifest.json +0 -2
  338. package/src/forge/_generated/liveProductionManifest.ts +0 -23
  339. package/src/forge/_generated/liveProtocol.json +0 -2
  340. package/src/forge/_generated/liveProtocol.ts +0 -21
  341. package/src/forge/_generated/liveQueryRegistry.json +0 -2
  342. package/src/forge/_generated/liveQueryRegistry.ts +0 -9
  343. package/src/forge/_generated/liveTransportConfig.json +0 -2
  344. package/src/forge/_generated/liveTransportConfig.ts +0 -19
  345. package/src/forge/_generated/makeRegistry.json +0 -2
  346. package/src/forge/_generated/makeRegistry.ts +0 -163
  347. package/src/forge/_generated/makeTemplates.json +0 -2
  348. package/src/forge/_generated/makeTemplates.ts +0 -61
  349. package/src/forge/_generated/mockMap.json +0 -2
  350. package/src/forge/_generated/mockMap.ts +0 -7
  351. package/src/forge/_generated/operationPlaybooks.md +0 -147
  352. package/src/forge/_generated/packageGraph.json +0 -2
  353. package/src/forge/_generated/packageGraph.ts +0 -245249
  354. package/src/forge/_generated/packageUpgradeRegistry.json +0 -2
  355. package/src/forge/_generated/packageUpgradeRegistry.ts +0 -15
  356. package/src/forge/_generated/permissionMatrix.json +0 -2
  357. package/src/forge/_generated/permissionMatrix.ts +0 -7
  358. package/src/forge/_generated/policyRegistry.json +0 -2
  359. package/src/forge/_generated/policyRegistry.ts +0 -11
  360. package/src/forge/_generated/queryRegistry.json +0 -2
  361. package/src/forge/_generated/queryRegistry.ts +0 -9
  362. package/src/forge/_generated/react.d.ts +0 -22
  363. package/src/forge/_generated/react.ts +0 -29
  364. package/src/forge/_generated/reactManifest.json +0 -2
  365. package/src/forge/_generated/reactManifest.ts +0 -19
  366. package/src/forge/_generated/rlsPolicies.json +0 -2
  367. package/src/forge/_generated/rlsPolicies.sql +0 -34
  368. package/src/forge/_generated/rlsPolicies.ts +0 -6
  369. package/src/forge/_generated/runtimeGraph.json +0 -2
  370. package/src/forge/_generated/runtimeGraph.ts +0 -8
  371. package/src/forge/_generated/runtimeMatrix.json +0 -2
  372. package/src/forge/_generated/runtimeMatrix.ts +0 -327385
  373. package/src/forge/_generated/runtimeRegistry.ts +0 -2
  374. package/src/forge/_generated/runtimeRules.md +0 -79
  375. package/src/forge/_generated/secretRegistry.json +0 -2
  376. package/src/forge/_generated/secretRegistry.ts +0 -50
  377. package/src/forge/_generated/secretsContext.ts +0 -11
  378. package/src/forge/_generated/serverApi.ts +0 -10
  379. package/src/forge/_generated/sourceMapManifest.json +0 -2
  380. package/src/forge/_generated/sourceMapManifest.ts +0 -7
  381. package/src/forge/_generated/sqlPlan.json +0 -2
  382. package/src/forge/_generated/sqlPlan.ts +0 -88
  383. package/src/forge/_generated/subscriptionManifest.json +0 -2
  384. package/src/forge/_generated/subscriptionManifest.ts +0 -7
  385. package/src/forge/_generated/symbolicationManifest.json +0 -2
  386. package/src/forge/_generated/symbolicationManifest.ts +0 -17
  387. package/src/forge/_generated/telemetryRegistry.json +0 -2
  388. package/src/forge/_generated/telemetryRegistry.ts +0 -9
  389. package/src/forge/_generated/telemetrySinks.json +0 -2
  390. package/src/forge/_generated/telemetrySinks.ts +0 -11
  391. package/src/forge/_generated/tenantScope.json +0 -2
  392. package/src/forge/_generated/tenantScope.ts +0 -8
  393. package/src/forge/_generated/testGraph.json +0 -2
  394. package/src/forge/_generated/testGraph.ts +0 -3108
  395. package/src/forge/_generated/testPlanRegistry.json +0 -2
  396. package/src/forge/_generated/testPlanRegistry.ts +0 -33
  397. package/src/forge/_generated/uiRoutes.json +0 -2
  398. package/src/forge/_generated/uiRoutes.ts +0 -16
  399. package/src/forge/_generated/uiScenarios.json +0 -2
  400. package/src/forge/_generated/uiScenarios.ts +0 -30
  401. package/src/forge/_generated/uiTestManifest.json +0 -2
  402. package/src/forge/_generated/uiTestManifest.ts +0 -27
  403. package/src/forge/_generated/workflowRegistry.json +0 -2
  404. package/src/forge/_generated/workflowRegistry.ts +0 -9
  405. package/src/forge/_generated/workflowSubscriptions.json +0 -2
  406. package/src/forge/_generated/workflowSubscriptions.ts +0 -10
package/.npmignore CHANGED
@@ -5,5 +5,9 @@ node_modules/
5
5
  .forge/
6
6
  tests/
7
7
  examples/
8
+ src/forge/_generated/**
9
+ !src/forge/_generated/
10
+ !src/forge/_generated/releaseManifest.json
11
+ !src/forge/_generated/releaseManifest.ts
8
12
  *.tgz
9
13
  npm-debug.log*
package/AGENTS.md CHANGED
@@ -1,4 +1,4 @@
1
- // @forge-generated generator=0.1.0-alpha.2 input=2ce189e4d3555acfca07eb3bb3d103b22a8da52f3c26f9ac2197254f0563234f content=e0bf36433d915daf5ad06ac6265b3ac6f2cd1706269c69618bbbc1cb1f44e465
1
+ // @forge-generated generator=0.1.0-alpha.21 input=e2f2a360a9fd4118a2d21dd1353365628fe3927c40f9f9ce870f448f3e221f90 content=0d493cf0e41b71cb652d5e0e1b0c1f83d2a1281b748321f0b00f0773ba93074e
2
2
  # AGENTS.md
3
3
 
4
4
  <!-- forge-generated:start -->
@@ -7,23 +7,51 @@
7
7
 
8
8
  This is a ForgeOS application named `forgeos`.
9
9
 
10
+ ## CLI entrypoint
11
+
12
+ This is the ForgeOS framework checkout. Use `node bin/forge.mjs ...` so maintainer commands run against this source tree; reserve the global `forge` command for installed-package smoke tests.
13
+
10
14
  ## Required workflow
11
15
 
12
16
  Before editing:
13
17
 
14
18
  ```bash
15
- forge do inspect --json
16
- forge dev --once --json
17
- forge inspect all --json
18
- forge check --json
19
+ node bin/forge.mjs agent onboard --target codex --json
20
+ node bin/forge.mjs status --json
21
+ node bin/forge.mjs changed --json
22
+ node bin/forge.mjs handoff --json
23
+ node bin/forge.mjs do inspect --json
24
+ node bin/forge.mjs dev --once --json
25
+ node bin/forge.mjs agent print-context --json
26
+ node bin/forge.mjs check --json
27
+ ```
28
+
29
+ ## CAIR first
30
+
31
+ Before reading large files or hand-writing patches, prefer the generated CAIR guide:
32
+
33
+ ```bash
34
+ node bin/forge.mjs cair snapshot
35
+ node bin/forge.mjs cair query "Q ST"
36
+ node bin/forge.mjs cair query "Q S name=<symbol>"
37
+ node bin/forge.mjs cair query "Q D S#1"
38
+ node bin/forge.mjs cair query "Q R S#1"
39
+ node bin/forge.mjs cair query "Q I S#1"
40
+ ```
41
+
42
+ Use `src/forge/_generated/agentCairGuide.md` for the full compact protocol. Plan CAIR mutations before applying them:
43
+
44
+ ```bash
45
+ node bin/forge.mjs cair action --plan "A RN t=S#1 nn=<newName>"
46
+ node bin/forge.mjs cair action "A APPLY plan=<returned-plan-path>"
19
47
  ```
20
48
 
21
49
  After editing:
22
50
 
23
51
  ```bash
24
- forge generate
25
- forge check
26
- forge verify --strict
52
+ node bin/forge.mjs generate
53
+ node bin/forge.mjs check
54
+ node bin/forge.mjs verify framework
27
55
  ```
28
56
 
29
57
  ## Do not edit
@@ -34,7 +62,7 @@ Do not:
34
62
  - `forge.lock`
35
63
  - `deploy/docker-compose.yml`, unless changing deployment config intentionally
36
64
 
37
- Template apps may ignore `src/forge/_generated/**` and `forge.lock` in git to reduce visual noise. Recreate them with `forge generate` before checking, testing, or handing work off.
65
+ Template apps may ignore `src/forge/_generated/**` and `forge.lock` in git to reduce visual noise. Recreate them with `node bin/forge.mjs generate` before checking, testing, or handing work off.
38
66
 
39
67
  ## Runtime model
40
68
 
@@ -44,14 +72,14 @@ Template apps may ignore `src/forge/_generated/**` and `forge.lock` in git to re
44
72
  - Workflows orchestrate durable steps.
45
73
  - Production liveQuery uses a durable invalidation log; polling/notify are wakeups only.
46
74
  - Production API calls use `Authorization: Bearer <JWT>` in `jwt` or `oidc` auth mode.
47
- - `dev-headers` auth is for `forge dev`, tests, and local agent workflows only.
75
+ - `dev-headers` auth is for `node bin/forge.mjs dev`, tests, and local agent workflows only.
48
76
  - AI is only allowed in actions, workflows, endpoints, and server code.
49
77
  - Secrets are accessed through `ctx.secrets`.
50
78
 
51
79
  ## Runtime rules
52
80
 
53
81
  - Do not import network packages inside `command`, `query`, or `liveQuery`.
54
- - Do not use `process.env` directly.
82
+ - Do not read secrets or server runtime config through `process.env` in Forge runtime code; use `ctx.secrets` or generated config context. Public frontend bridge env such as `NEXT_PUBLIC_*` and `NUXT_PUBLIC_*` is allowed in web bridge files.
55
83
  - Do not access cross-tenant data.
56
84
  - Commands must use `ctx.emit` for side effects.
57
85
  - Actions and workflows handle side effects after commit.
@@ -60,31 +88,38 @@ Template apps may ignore `src/forge/_generated/**` and `forge.lock` in git to re
60
88
  ## Useful commands
61
89
 
62
90
  ```bash
63
- forge do "<objective>" --json
64
- forge do fix --json
65
- forge do verify --json
66
- forge dev --once --json
67
- forge dev
68
- forge inspect app --json
69
- forge inspect all --json
70
- forge inspect frontend --json
71
- forge inspect capabilities --json
72
- forge deps inspect <package> --json
73
- forge deps api <package> <symbol> --json
74
- forge deps trace <package> --json
75
- forge auth check --json
76
- forge inspect runtime-matrix --json
77
- forge inspect policies --json
78
- forge inspect client --json
79
- forge inspect live-production --json
80
- forge live status --json
81
- forge doctor
82
- forge doctor windows --json
83
- forge setup windows --json
84
- forge agent print-context --json
85
- forge verify --smoke
86
- forge verify --standard
87
- forge verify --strict
91
+ node bin/forge.mjs do "<objective>" --json
92
+ node bin/forge.mjs do fix --json
93
+ node bin/forge.mjs do verify --json
94
+ node bin/forge.mjs dev --once --json
95
+ node bin/forge.mjs dev
96
+ node bin/forge.mjs handoff --json
97
+ node bin/forge.mjs inspect app --json
98
+ node bin/forge.mjs inspect all --json
99
+ node bin/forge.mjs inspect all --full --json
100
+ node bin/forge.mjs inspect frontend --json
101
+ node bin/forge.mjs inspect capabilities --json
102
+ node bin/forge.mjs inspect agent-tools --json
103
+ node bin/forge.mjs deps inspect <package> --json
104
+ node bin/forge.mjs deps api <package> <symbol> --json
105
+ node bin/forge.mjs deps trace <package> --json
106
+ node bin/forge.mjs auth check --json
107
+ node bin/forge.mjs inspect runtime-matrix --json
108
+ node bin/forge.mjs inspect policies --json
109
+ node bin/forge.mjs inspect client --json
110
+ node bin/forge.mjs inspect live-production --json
111
+ node bin/forge.mjs live status --json
112
+ node bin/forge.mjs doctor
113
+ node bin/forge.mjs doctor windows --json
114
+ node bin/forge.mjs setup windows --json
115
+ node bin/forge.mjs agent print-context --json
116
+ node bin/forge.mjs agent doctor --target codex --json
117
+ node bin/forge.mjs ai tools --json
118
+ node bin/forge.mjs ai agents --json
119
+ node bin/forge.mjs ai trace <traceId> --json
120
+ node bin/forge.mjs verify --smoke
121
+ node bin/forge.mjs verify --standard
122
+ node bin/forge.mjs verify framework
88
123
  ```
89
124
 
90
125
  ## Data
@@ -103,6 +138,21 @@ Tenant-scoped tables:
103
138
  - ANTHROPIC_API_KEY (required)
104
139
  - OPENAI_API_KEY (required)
105
140
 
141
+ ## AI Tools And Agents
142
+
143
+ - AI SDK engine: Vercel AI SDK v6.
144
+ - Forge layer: generated registry, runtime rules, telemetry, secrets, tenant/auth context, and agent contract.
145
+ - Use `ctx.agent.run` or `ctx.ai.runAgent` only in actions, workflows, endpoints, and server code.
146
+ - Do not create custom tool loops; use Forge tools and AI SDK `ToolLoopAgent` through the Forge runtime.
147
+
148
+ Tools:
149
+
150
+ - none
151
+
152
+ Agents:
153
+
154
+ - none
155
+
106
156
  ## Auth
107
157
 
108
158
  - Modes: dev-headers, jwt, oidc, disabled
@@ -123,9 +173,9 @@ Tenant-scoped tables:
123
173
 
124
174
  Rules:
125
175
 
126
- - Use the local `web/**/lib/forge.ts` bridge to generated hooks.
127
- - Mount `<ForgeProvider devAuth>` in local development.
128
- - Use `useQuery`, `useCommand`, and `useLiveQuery` instead of raw Forge endpoint fetches in React components.
176
+ - Use the local `web/**/lib/forge.ts` or Nuxt `web/composables/forge.ts` bridge to generated bindings.
177
+ - Mount `<ForgeProvider devAuth>` or install the Nuxt Forge plugin in local development.
178
+ - Use `useQuery`/`useCommand`/`useLiveQuery` or `useForgeQuery`/`useForgeCommand`/`useForgeLiveQuery` instead of raw Forge endpoint fetches in components.
129
179
  - Keep frontend routes reflected in `src/forge/_generated/frontendGraph.json`.
130
180
 
131
181
  ## Common tasks
@@ -135,29 +185,31 @@ Rules:
135
185
  Use:
136
186
 
137
187
  ```bash
138
- forge do "<objective>" --json
139
- forge do fix --json
140
- forge do connect-ui --json
141
- forge do verify --json
188
+ node bin/forge.mjs do "<objective>" --json
189
+ node bin/forge.mjs do fix --json
190
+ node bin/forge.mjs do connect-ui --json
191
+ node bin/forge.mjs do verify --json
142
192
  ```
143
193
 
144
- `forge do` returns intent, plan, filesToInspect, filesToChange, risks, concrete commands, and nextAction. Prefer it before choosing lower-level CLI commands manually.
194
+ `node bin/forge.mjs do` returns intent, plan, filesToInspect, filesToChange, risks, concrete commands, and nextAction. Prefer it before choosing lower-level CLI commands manually.
145
195
 
146
196
  ### Add a command
147
197
 
148
198
  1. Add file in `src/commands`.
149
199
  2. Declare `auth: can("...")`.
150
- 3. Run `forge generate`.
151
- 4. Run `forge verify --strict`.
200
+ 3. Run `node bin/forge.mjs generate`.
201
+ 4. Run `node bin/forge.mjs verify framework`.
152
202
 
153
203
  ### Scaffold a resource
154
204
 
155
205
  Use:
156
206
 
157
207
  ```bash
158
- forge make resource <name> --fields title:text,status:enum(open,closed) --dry-run --json
159
- forge make resource <name> --fields title:text,status:enum(open,closed) --with-ui --yes
160
- forge make ui --framework vite --dry-run --json
208
+ node bin/forge.mjs make resource <name> --fields title:text,status:enum(open,closed) --dry-run --json
209
+ node bin/forge.mjs make resource <name> --fields title:text,status:enum(open,closed) --with-ui --yes
210
+ node bin/forge.mjs make ui --framework vite --dry-run --json
211
+ node bin/forge.mjs make ui --framework nuxt --dry-run --json
212
+ node bin/forge.mjs make ai-chat support --dry-run --json
161
213
  ```
162
214
 
163
215
  Review the plan before applying when the resource touches schema or policies.
@@ -167,22 +219,22 @@ Review the plan before applying when the resource touches schema or policies.
167
219
  Use:
168
220
 
169
221
  ```bash
170
- forge dev --once --json
171
- forge dev
172
- forge inspect frontend --json
173
- forge inspect capabilities --json
222
+ node bin/forge.mjs dev --once --json
223
+ node bin/forge.mjs dev
224
+ node bin/forge.mjs inspect frontend --json
225
+ node bin/forge.mjs inspect capabilities --json
174
226
  ```
175
227
 
176
- `forge dev` starts the API runtime and web app together when `web/` exists. `forge dev --once --json` reports routes, components, `ForgeProvider`, bridge files, generated client bindings, direct runtime fetch warnings, capability-map parity warnings, and fix hints.
228
+ `node bin/forge.mjs dev` starts the API runtime and web app together when `web/` exists. `node bin/forge.mjs dev --once --json` reports routes, components, providers/plugins, bridge files, generated client bindings, direct runtime fetch warnings, capability-map parity warnings, and fix hints.
177
229
 
178
230
  ### Apply a feature blueprint
179
231
 
180
232
  Use:
181
233
 
182
234
  ```bash
183
- forge feature validate .forge/blueprints/<name>.json --json
184
- forge feature plan .forge/blueprints/<name>.json
185
- forge feature apply .forge/blueprints/<name>.json --yes
235
+ node bin/forge.mjs feature validate .forge/blueprints/<name>.json --json
236
+ node bin/forge.mjs feature plan .forge/blueprints/<name>.json
237
+ node bin/forge.mjs feature apply .forge/blueprints/<name>.json --yes
186
238
  ```
187
239
 
188
240
  Review high-risk plans before applying. Use `--allow-high-risk` only when intentional.
@@ -192,47 +244,63 @@ Review high-risk plans before applying. Use `--allow-high-risk` only when intent
192
244
  Use:
193
245
 
194
246
  ```bash
195
- forge refactor rename field tickets.priority tickets.urgency --dry-run --json
196
- forge refactor rename field tickets.priority tickets.urgency --yes
247
+ node bin/forge.mjs refactor rename field tickets.priority tickets.urgency --dry-run --json
248
+ node bin/forge.mjs refactor rename field tickets.priority tickets.urgency --yes
249
+ node bin/forge.mjs refactor rename command createTicket openTicket --dry-run --json
250
+ node bin/forge.mjs refactor rename command createTicket openTicket --yes
197
251
  ```
198
252
 
199
- These codemods are AST-aware for `extract-action`, `rename field`, and `rename table`. Field renames are scoped to the target table, so `tickets.priority` only rewrites references linked to `tickets`.
253
+ These codemods are AST-aware for `extract-action`, `rename command`, `rename field`, and `rename table`. Command renames update runtime registries, generated client references, frontend hooks, tests, and string references where safe. Field renames are scoped to the target table, so `tickets.priority` only rewrites references linked to `tickets`.
200
254
 
201
- Never edit `src/forge/_generated/**` directly. Review migration hints before applying field or table renames.
255
+ Never edit `src/forge/_generated/**` directly. Review migration hints before applying command, field, or table renames.
202
256
 
203
257
  ### Plan impact-based tests
204
258
 
205
259
  Use:
206
260
 
207
261
  ```bash
208
- forge impact --changed --json
209
- forge test plan --changed --json
210
- forge test run --changed --timeout-ms 120000 --json
211
- forge verify --standard
262
+ node bin/forge.mjs impact --changed --json
263
+ node bin/forge.mjs test plan --changed --json
264
+ node bin/forge.mjs test run --changed --timeout-ms 120000 --json
265
+ node bin/forge.mjs verify --standard
212
266
  ```
213
267
 
214
- Use `forge verify --standard` for the normal agent development loop. Finish handoffs with `forge verify --strict` when the change is ready.
268
+ Use `node bin/forge.mjs verify --standard` for the normal agent development loop. Finish handoffs with `node bin/forge.mjs verify framework` when the change is ready.
215
269
 
216
270
  ### Repair a failing check
217
271
 
218
272
  When a Forge check fails, do not guess. Use:
219
273
 
220
274
  ```bash
221
- forge repair diagnose --from-last-test-run --json
222
- forge repair plan --from-last-test-run --write
275
+ node bin/forge.mjs repair diagnose --from-last-test-run --json
276
+ node bin/forge.mjs repair plan --from-last-test-run --write
223
277
  ```
224
278
 
225
279
  Apply only high-confidence deterministic repairs automatically. Review medium or low confidence repairs before changing code.
226
280
 
281
+ ### Add AI tools or agents
282
+
283
+ Use:
284
+
285
+ ```bash
286
+ node bin/forge.mjs generate
287
+ node bin/forge.mjs inspect ai --json
288
+ node bin/forge.mjs agent print-context --json
289
+ node bin/forge.mjs ai check --json
290
+ node bin/forge.mjs ai trace <traceId> --json
291
+ ```
292
+
293
+ Define tools with `aiTool({ inputSchema, outputSchema, risk, needsApproval, handler })` and agents with `agent({ provider, model, instructions, tools, stopWhen })`. Execute agents with `ctx.agent.run` or `ctx.ai.runAgent` only from actions, workflows, endpoints, or server code. In dev, POST `/ai/agents/run` returns JSON for automation and POST `/ai/agents/chat` returns an AI SDK UIMessage stream for React `useChat`; both accept `agent: "<exportedAgentName>"` and use generated auto-tools from `agentTools.json`.
294
+
227
295
  ### Export agent adapters
228
296
 
229
297
  Use:
230
298
 
231
299
  ```bash
232
- forge agent export --target generic
233
- forge agent export --target codex
234
- forge agent export --target cursor
235
- forge agent export --target claude
300
+ node bin/forge.mjs agent export --target generic
301
+ node bin/forge.mjs agent export --target codex
302
+ node bin/forge.mjs agent export --target cursor
303
+ node bin/forge.mjs agent export --target claude
236
304
  ```
237
305
 
238
306
  Adapter files are derived from `agentContract.json`, `appMap.md`, `runtimeRules.md`, `operationPlaybooks.md`, and this `AGENTS.md`. Do not treat Codex, Cursor, Claude, or custom adapter files as the source of truth.
@@ -242,7 +310,7 @@ Adapter files are derived from `agentContract.json`, `appMap.md`, `runtimeRules.
242
310
  Use:
243
311
 
244
312
  ```bash
245
- forge add <alias>
313
+ node bin/forge.mjs add <alias>
246
314
  ```
247
315
 
248
316
  Do not install packages manually unless intentional.
@@ -252,11 +320,11 @@ Do not install packages manually unless intentional.
252
320
  Use:
253
321
 
254
322
  ```bash
255
- forge deps upgrade-plan <package> --to latest
256
- forge deps inspect <package> --json
257
- forge deps api <package> <symbol> --json
258
- forge deps upgrade-apply <plan>
259
- forge verify --strict
323
+ node bin/forge.mjs deps upgrade-plan <package> --to latest
324
+ node bin/forge.mjs deps inspect <package> --json
325
+ node bin/forge.mjs deps api <package> <symbol> --json
326
+ node bin/forge.mjs deps upgrade-apply <plan>
327
+ node bin/forge.mjs verify framework
260
328
  ```
261
329
 
262
330
  Do not manually edit `package.json` for package upgrades unless necessary.
@@ -266,9 +334,9 @@ Do not manually edit `package.json` for package upgrades unless necessary.
266
334
  Use:
267
335
 
268
336
  ```bash
269
- forge live status --json
270
- forge live invalidations list --json
271
- forge live debug <subscriptionId> --json
337
+ node bin/forge.mjs live status --json
338
+ node bin/forge.mjs live invalidations list --json
339
+ node bin/forge.mjs live debug <subscriptionId> --json
272
340
  ```
273
341
 
274
342
  Durable invalidations live in `_forge_live_invalidations`.
@@ -279,4 +347,23 @@ Durable invalidations live in `_forge_live_invalidations`.
279
347
 
280
348
  Project-specific notes can go here.
281
349
 
350
+ ## Cursor Cloud specific instructions
351
+
352
+ This repo is the ForgeOS framework/compiler itself (package `forgeos`), not a generated app. The development toolchain is Node.js (>= 22.14, present) plus **Bun**, which is the repo's test runner and canonical package manager (`bun.lock`). The Cloud VM snapshot has Bun pre-installed at `~/.bun/bin/bun` (added to `PATH` via `~/.bashrc`); if `bun` is not on `PATH` in a non-login shell, use `~/.bun/bin/bun` or `export PATH="$HOME/.bun/bin:$PATH"`.
353
+
354
+ Standard commands (see `package.json`, `CONTRIBUTING.md`, `.github/workflows/ci.yml`):
355
+
356
+ - Install deps: `bun install --ignore-scripts` (the update script runs this). `--ignore-scripts` matches CI; native deps like `tree-sitter` are not built and tests do not need them.
357
+ - Lint: `npm run lint` (runs `node --import tsx ./src/forge/cli/lint-forge.ts`).
358
+ - Typecheck: `npm run typecheck` (`tsc --noEmit`).
359
+ - Tests: `bun test` (~2 min, 650 tests). 4 tests are skipped by design unless extra tooling/env is set (`FORGE_SMOKE_REAL=1`, a real Postgres, `FORGE_MAVEN`).
360
+ - Generate + verify: `bun run forge generate` then `bun run forge verify --standard --script-timeout-ms 120000`.
361
+
362
+ Non-obvious gotchas:
363
+
364
+ - `bun run forge generate` rewrites `src/forge/_generated/**`, `forge.lock`, and the `// @forge-generated` header `input=` hash in `AGENTS.md`. These regenerated diffs are environment-dependent and should NOT be committed (per "Do not edit" above). `forge verify` regenerates internally, so `generate-check` can pass even while `git status` shows these as dirty. Run `git checkout -- .` to discard them before committing unrelated work.
365
+ - The CLI runs under Node via `tsx` (`node ./bin/forge.mjs ...` or `npm run forge -- ...`); only the test runner needs Bun.
366
+ - To run an actual Forge app end-to-end, scaffold one from a template and run the dev servers. From a temp dir: `node /workspace/bin/forge.mjs new notes-app --template minimal-web --package-manager npm --forge-spec "file:/workspace" --install --no-git`, then `cd notes-app && npm run dev`. `forge dev` starts the API runtime (pglite, default `http://127.0.0.1:3765`) and the Vite web app (default `http://127.0.0.1:5173`); use `forge dev --api-only` for backend only.
367
+ - Hitting the runtime directly: POST `/commands/<name>` and `/queries/<name>` with body shaped as `{ "args": { ... } }`. In `dev-headers` auth mode pass `x-forge-user-id` and `x-forge-role` (e.g. `owner`) headers; `<ForgeProvider devAuth>` defaults to user `dev-user`, tenant `dev-tenant`, role `owner`.
368
+
282
369
  <!-- user-notes:end -->
package/CHANGELOG.md CHANGED
@@ -1,5 +1,216 @@
1
1
  # forgeos
2
2
 
3
+ ## 0.1.0-alpha.21
4
+
5
+ ### Patch Changes
6
+
7
+ - Harden Codex hook queue privacy and brownfield import classification.
8
+
9
+ - Queue new Codex hook events as redacted payloads instead of storing raw prompts, tool inputs, tool responses, or transcripts in `.forge/agent/events.ndjson`.
10
+ - Compact consumed hook queue history into redacted `.history` lines so old raw queue entries are not copied forward during drain retention.
11
+ - Scope brownfield route classification to the detected route handler, so read-only GET handlers are not marked command-like because a sibling route in the same file writes state.
12
+ - Mark read-shaped `POST /search`, `/query`, `/filter`, `/lookup`, and `/graphql` routes as `command-candidate` with `ambiguous-post-query` risk instead of treating them as normal writes.
13
+ - Sync the public docs changelog/CLI reference and clarify the alpha/latest npm dist-tag policy.
14
+
15
+ ## 0.1.0-alpha.20
16
+
17
+ ### Patch Changes
18
+
19
+ - Fix generated-change diagnostics, Codex hook queue handling, and external stdio command parsing.
20
+
21
+ - Classify generated `AGENTS.md` blocks and `.forge/agent/context.json` as derived artifacts in `forge changed`/`forge status`.
22
+ - Skip probe, invalid, and out-of-workspace queued hook events during Agent Memory drain, and bound queue inspection for large hook queues.
23
+ - Preserve empty stdio command arguments, diagnose malformed command strings, and support structured `service.commandArgs` in external manifests.
24
+ - Include the basic example client demo in typecheck coverage.
25
+
26
+ ## Unreleased
27
+
28
+ ## 0.1.0-alpha.19
29
+
30
+ Alpha hardening:
31
+
32
+ - Added the `agent-workroom` app template for Forge Studio style demos: external
33
+ agents edit the app, while ForgeOS shows preview URL, agent signals, check
34
+ runs, and handoff evidence through generated commands and liveQuery bindings.
35
+ - Added `forge studio attach` for Studio-style observer apps: writes `.forge/studio/attachment.json`, prepares external-agent adapters/hooks, and returns the target preview URL.
36
+ - Added `summary.preview` and `summary.urls.suggestedPreview` to `forge dev --once --json` so observer UIs can target the app under construction instead of pointing at themselves.
37
+ - Improved `forge dev` port-busy failures with a `port_busy` JSON failure kind and suggested recovery commands, including the common "Is port X in use?" startup error shape.
38
+ - `forge dev` now resolves the web app port before startup and automatically moves to the next available port when the default web port is busy, keeping the printed/JSON web URL truthful.
39
+ - Improved `forge check --json` next actions by surfacing diagnostic-specific repair/inspect commands instead of a generic last-test-run repair hint.
40
+ - Added `forge doctor agent --target <agent>` as the top-level agent readiness check.
41
+ - Added explicit `forge agent ingest <source> --watch --file <events.ndjson>` support for opt-in hook/export file ingestion.
42
+ - Added human-friendly verifier aliases: `forge verify quick`, `forge verify agent`, and `forge verify release`.
43
+ - Made `forge status --human` an explicit accepted spelling and documented `forge add <npm-package> --workspace web` as the normal package-add path.
44
+ - Made bare `forge inspect` default to the compact `summary` target instead of returning a usage error.
45
+ - Added `forge release doctor`, `release check --allow-missing-local-release`, and `self-host check --prepared-only` so release readiness can distinguish hard failures from not-yet-prepared local artifacts.
46
+ - Hardened the public packed-package smoke with dry-run mode, per-step JSON evidence, step timeouts, installed-global CLI coverage, hook smoke readiness, Studio open coverage, and preview-port cleanup checks.
47
+ - Expanded `forge docs check` with YAML shape checks, internal Markdown link validation, optional ReadTheDocs-style venv installation, and strict MkDocs build execution.
48
+ - Added authored-only review paths through `forge changed --authored` and `forge diff authored`, keeping generated artifacts collapsed unless explicitly requested.
49
+ - Added `forge delta status --verbose --json` for schema, lock, path, and aggregate-count diagnostics without expanding the default status payload.
50
+ - Added explicit hook readiness levels (`none`, `canary`, `trusted-native`) and documented `.codex/hooks.json` as versioned adapter configuration while keeping `.forge/agent/**` as local operational state.
51
+
52
+ ## 0.1.0-alpha.18
53
+
54
+ Codex hook memory hardening:
55
+
56
+ - Hardened Codex hook ingestion by deriving useful tool-call metadata from the documented hook wire format while keeping raw prompts, tool inputs, tool responses, transcripts, and secrets out of Agent Memory.
57
+ - Added safe command summaries, tool-call ids, result status, exit codes, response summaries, inferred files, and inferred runtime entries for Codex `PreToolUse`, `PermissionRequest`, and `PostToolUse` events.
58
+ - Updated the Codex hook installer with hook timeouts and status messages, and added a local wrapper so repo hooks can use the checkout implementation.
59
+ - Documented the safe Codex hook metadata surface and added regression coverage for real hook payload shapes.
60
+
61
+ ## 0.1.0-alpha.17
62
+
63
+ External runtime timeline metadata:
64
+
65
+ - Enriched DeltaDB runtime call recording for imported Go/Java/external services by reading generated `externalServices.json` metadata during `forge run` and `forge query`.
66
+ - `forge timeline` and `forge explain` now report external runtime `service`, `language`, `risk`, `policy`, `tenantScoped`, and `needsApproval` state instead of falling back to null/false values after successful external calls.
67
+ - Added a DeltaDB schema migration for `runtime_calls.needs_approval` and bumped the local DeltaDB schema to `0.3.1`.
68
+ - Added regression coverage for the real CLI recorder path so manifest-imported external commands keep semantic metadata in timelines.
69
+ - Promotes this release on npm as both `alpha` and `latest`.
70
+
71
+ ## 0.1.0-alpha.16
72
+
73
+ Stability alignment:
74
+
75
+ - Fixed H47 `forge timeline` and `forge explain` crashes after large `artifact.generated` payloads by replacing unsafe JSON string truncation with a safe summary/hash envelope.
76
+ - Summarized generated artifact batches in the Semantic Timeline with count, hash, sample, and omitted count instead of embedding every artifact in timeline event data.
77
+ - Fixed H49 brownfield import detection for root-level Next.js App Router and Pages API routes such as `app/api/.../route.ts` and `pages/api/...`.
78
+ - Updated public CLI and DeltaDB docs for timeline/session/explain/MCP/agent-memory commands and clarified that `.forge/delta/delta.db` is a PGlite/Postgres data directory.
79
+ - Verified the release against a public GitHub `main` smoke app using `generate`, `check`, `delta status`, `timeline`, `explain`, `import analyze`, and `inspect imported`.
80
+
81
+ ## 0.1.0-alpha.15
82
+
83
+ Brownfield import analysis:
84
+
85
+ - Added H49 `forge import analyze` and `forge import inspect` for static brownfield TypeScript/JavaScript app inventory.
86
+ - Detects Next.js App Router routes, Pages API routes, Express/Nest-style handlers, frontend `fetch`/`axios` calls, env usage, framework/data/external package signals, and conservative candidate command/query entries.
87
+ - Writes `.forge/import` artifacts including inventory, routes, frontend calls, candidate entries, risk report, migration plan, and imported agent contract.
88
+ - Keeps imported entries hidden from agents by default with `origin: imported`, `assurance: static-scan`, `reviewStatus: needs-review`, `visibleToAgent: false`, and approval required for command-like or risky entries.
89
+ - Added `forge inspect imported --json` plus focused H49 CLI and scanner coverage.
90
+
91
+ ## 0.1.0-alpha.14
92
+
93
+ Java and Nuxt/Vue support:
94
+
95
+ - Added the Java external runtime adapter with a lightweight JDK HTTP bridge, manifest export, typed handlers, tenant/auth context, diagnostics, and command/query registration.
96
+ - Added a Spring Boot starter for Java services that want annotation-based Forge command/query exposure.
97
+ - Added the `java-billing` conformance example and packaged it with the public alpha line.
98
+ - Added generated Vue bindings and a `forgeos/vue` export with `provideForge`, `ForgeVuePlugin`, `useForgeQuery`, `useForgeCommand`, and `useForgeLiveQuery`.
99
+ - Added Nuxt UI scaffolding through `forge make ui --framework nuxt`, including plugin wiring, composable bridge files, and frontend graph detection for `.vue` routes/components.
100
+ - Updated docs, agent adapter guidance, generated manifests, and focused Java/Vue/Nuxt tests.
101
+ - Kept H44-H48 memory, sessions, timeline, grouping, and MCP surfaces intact while merging the Java/Nuxt work into `main`.
102
+
103
+ ## 0.1.0-alpha.13
104
+
105
+ Agent Memory Bridge:
106
+
107
+ - Added the H48 Agent Memory Bridge alpha with redacted external agent event ingestion and normalized `forge.agent-event.v1` envelopes.
108
+ - Added Codex and Claude Code hook installers plus Cursor MCP/rules setup, all with raw prompts, completions, tool args, transcripts, and cloud sync off by default.
109
+ - Added `forge mcp serve` with context, memory, timeline, and inspect tools for external agents.
110
+ - Added `forge agent install`, `forge agent ingest`, `forge agent context`, and `forge agent memory` commands.
111
+ - Persisted external agent activity in DeltaDB and linked agent/tool/file events into the semantic timeline.
112
+ - Added focused privacy, ingest, MCP, installer, and CLI parse coverage for the H48 bridge.
113
+
114
+ ## 0.1.0-alpha.12
115
+
116
+ Semantic Timeline:
117
+
118
+ - Added the H47 Semantic Timeline projection for DeltaDB with rebuildable timeline events, entity indexes, causal edges, and projection state.
119
+ - Upgraded `forge timeline` from a raw operation log view into an entity-oriented semantic timeline for runtime entries, policies, diagnostics, proofs, services, files, and sessions.
120
+ - Added proof staleness detection and causal links for denial -> policy repair -> successful execution flows.
121
+ - Updated `forge explain` to include semantic timeline context and current-state summaries when available.
122
+ - Documented the timeline projection/rebuild model and added focused DeltaDB coverage for runtime, policy, diagnostic, proof, and deterministic rebuild scenarios.
123
+
124
+ ## 0.1.0-alpha.11
125
+
126
+ Strict verify performance:
127
+
128
+ - Reduced the validated `forge verify --strict` wall time from roughly 358-454s to about 116s on the current Windows test machine.
129
+ - Added stable repo-local `tsx` CLI caching under `node_modules/.cache/forge-tsx-cli` so spawned CLI tests reuse the warm compiler path.
130
+ - Balanced TestGraph strict execution across shared and isolated lanes, bringing the slowest files down from roughly 50s to under 10s in the updated profile.
131
+ - Moved heavy refactor/impact/external runtime suites onto faster shared paths where safe and kept isolation for process-sensitive tests.
132
+ - Documented and guarded the cache behavior so future test helpers preserve the speedup without checking cache contents into git.
133
+ - Added guarded alpha release workflow support for promoting the public `latest` dist-tag when npm token auth is configured.
134
+
135
+ ## 0.1.0-alpha.10
136
+
137
+ Launch polish:
138
+
139
+ - Fixed `forge run <external-command> --args ...` so CLI arguments reach the external runtime bridge.
140
+ - Added direct external query CLI support through `forge query <service.query> --args ...`.
141
+ - Emit generated `.json` artifacts as pure JSON while keeping deterministic headers on code/text artifacts.
142
+ - Relaxed the `minimal-web` template verify script to `forge verify --smoke` and added the missing `check` script to `b2b-support-web`.
143
+ - Updated public protocol/changelog docs for the external runtime and Go adapter alpha line.
144
+ - Bumped the create-app wrapper package line to `create-forgeos-app@0.1.0-alpha.4`.
145
+
146
+ ## 0.1.0-alpha.9
147
+
148
+ ### Patch Changes
149
+
150
+ - Added the Forge external runtime protocol bridge for manifest-backed commands and queries.
151
+ - Added the Go adapter MVP with a real `go-billing` conformance example.
152
+ - Emitted external service metadata into inspect/API/agent artifacts, including `needsApproval` for agent tools.
153
+ - Reuse compiler classifier package signals across export classification, dropping repeated package signal scans.
154
+ - Reuse serialized graph JSON when rendering the largest generated TypeScript graph artifacts.
155
+ - Keep generated Forge artifacts aligned with the `0.1.0-alpha.9` compiler/runtime version.
156
+
157
+ ## 0.1.0-alpha.8
158
+
159
+ ### Patch Changes
160
+
161
+ - [`7568756`](https://github.com/Stahldavid/forge/commit/756875688873dd60d3d6cf700a7bb7c211968c69) Thanks [@Stahldavid](https://github.com/Stahldavid)! - Publish prerelease packages through the ForgeOS alpha publisher so npm dist-tags stay aligned.
162
+
163
+ ## 0.1.0-alpha.7
164
+
165
+ ### Patch Changes
166
+
167
+ - [`4ace311`](https://github.com/Stahldavid/forge/commit/4ace3113e3298b5c306000870922fcfbae9c1861) Thanks [@Stahldavid](https://github.com/Stahldavid)! - Keep npm prerelease publishing on the public alpha dist-tag.
168
+
169
+ ## 0.1.0-alpha.6
170
+
171
+ ### Patch Changes
172
+
173
+ - [`c30f906`](https://github.com/Stahldavid/forge/commit/c30f9069c99ac747ce143ab5fbcbf13912ed8760) Thanks [@Stahldavid](https://github.com/Stahldavid)! - Add CLI version output, align create-app help with package metadata, and add release dependency audit evidence.
174
+
175
+ ## 0.1.0-alpha.5
176
+
177
+ Release alignment for the public alpha channel:
178
+
179
+ - Added `forge ai redteam --model-level --json` with deterministic prompt-injection, secret-exfiltration, approval-bypass, cross-tenant, and indirect tool-injection probes.
180
+ - Added `forge security prove --full --json` support for source checkouts, with graceful structural-proof fallback when packaged apps do not include ForgeOS test fixtures.
181
+ - Strengthened npm publish workflows to run `security prove --db postgres --full --json`.
182
+ - Added public registry smoke coverage for `forgeos@alpha` and `create-forgeos-app@alpha`.
183
+ - Bumped the create-app wrapper package line to `create-forgeos-app@0.1.0-alpha.1`.
184
+
185
+ ## 0.1.0-alpha.4
186
+
187
+ Security assurance and release evidence hardening:
188
+
189
+ - Added value-aware telemetry redaction for known secret values in safe-looking fields, messages, details, outputs, and stack traces.
190
+ - Added webhook signature, timestamp, and replay protection helpers with Stripe/GitHub/generic HMAC coverage.
191
+ - Added HTTP tenant-isolation tests that exercise the dev server/API boundary, not only the internal runtime executor.
192
+ - Added `forge rls mutate-test --json` to kill dangerous generated RLS mutations such as missing FORCE RLS, missing policies, unconditional predicates, and `BYPASSRLS`.
193
+ - Extended `forge security prove --json` with RLS mutation proof and invariant-level evidence metadata.
194
+ - Added scripts to split security evidence by invariant and emit basic release supply-chain evidence plus CycloneDX SBOM.
195
+ - Strengthened publish/security workflows so release gates use Postgres-backed security proof, RLS mutation proof, release evidence, and SBOM generation.
196
+
197
+ ## 0.1.0-alpha.3
198
+
199
+ Native Forge AI agents on top of Vercel AI SDK v6:
200
+
201
+ - Added `aiTool` and `agent` primitives with generated `agentTools.json` / `agentTools.md`.
202
+ - Added `ctx.agent.run` and `ctx.ai.runAgent` using AI SDK `ToolLoopAgent`.
203
+ - Added auto-tools for commands, queries, and liveQueries with read-only vs approval-required writes.
204
+ - Added dev agent endpoints: `POST /ai/agents/run` and `POST /ai/agents/chat`.
205
+ - Extended `forge ai` CLI with `tools`, `agents`, and `trace` subcommands.
206
+ - Added `forge inspect agent-tools` and agent tool metadata in `agentContract.json`.
207
+ - Upgraded runtime dependency to AI SDK v6 for tool calling, streaming UI, and MCP compatibility.
208
+
209
+ Documentation:
210
+
211
+ - Added public [AI](https://forgeos.readthedocs.io/en/latest/ai/) page and AST-aware `rename command` codemod docs.
212
+ - Expanded ReadTheDocs to full agent-native coverage: agent workflow (`forge do`), frontend/liveQuery, security/data, authoring, testing/repair, self-host, templates, Material theme, and changelog page.
213
+
3
214
  ## 0.1.0-alpha.2
4
215
 
5
216
  Windows and generated-app hardening: