forgeos 0.1.0-alpha.3 → 0.1.0-alpha.30

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 (400) hide show
  1. package/.npmignore +10 -0
  2. package/AGENTS.md +142 -90
  3. package/CHANGELOG.md +321 -0
  4. package/LICENSE +21 -0
  5. package/README.md +86 -13
  6. package/adapters/go/README.md +23 -0
  7. package/adapters/go/go.mod +3 -0
  8. package/adapters/go/http.go +149 -0
  9. package/adapters/go/registry.go +234 -0
  10. package/adapters/go/types.go +136 -0
  11. package/adapters/java/README.md +68 -0
  12. package/adapters/java/pom.xml +34 -0
  13. package/adapters/java/src/main/java/dev/forgeos/adapter/Auth.java +20 -0
  14. package/adapters/java/src/main/java/dev/forgeos/adapter/Diagnostic.java +16 -0
  15. package/adapters/java/src/main/java/dev/forgeos/adapter/Entry.java +38 -0
  16. package/adapters/java/src/main/java/dev/forgeos/adapter/EntryKind.java +16 -0
  17. package/adapters/java/src/main/java/dev/forgeos/adapter/ErrorInfo.java +4 -0
  18. package/adapters/java/src/main/java/dev/forgeos/adapter/Forge.java +94 -0
  19. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeCall.java +12 -0
  20. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeContext.java +11 -0
  21. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeHandler.java +8 -0
  22. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeHttpHandler.java +179 -0
  23. package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeRegistry.java +121 -0
  24. package/adapters/java/src/main/java/dev/forgeos/adapter/Json.java +14 -0
  25. package/adapters/java/src/main/java/dev/forgeos/adapter/Manifest.java +14 -0
  26. package/adapters/java/src/main/java/dev/forgeos/adapter/RequestEnvelope.java +6 -0
  27. package/adapters/java/src/main/java/dev/forgeos/adapter/ResponseEnvelope.java +25 -0
  28. package/adapters/java/src/main/java/dev/forgeos/adapter/Risk.java +18 -0
  29. package/adapters/java/src/main/java/dev/forgeos/adapter/Schemas.java +36 -0
  30. package/adapters/java/src/main/java/dev/forgeos/adapter/Service.java +65 -0
  31. package/adapters/java/src/main/java/dev/forgeos/adapter/TransactionMode.java +18 -0
  32. package/adapters/java/src/main/java/dev/forgeos/adapter/TypedForgeHandler.java +6 -0
  33. package/adapters/java-spring-boot-starter/README.md +32 -0
  34. package/adapters/java-spring-boot-starter/pom.xml +36 -0
  35. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeCommand.java +22 -0
  36. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeExternalService.java +15 -0
  37. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeQuery.java +16 -0
  38. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeServiceBeanCondition.java +18 -0
  39. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeSpringAutoConfiguration.java +16 -0
  40. package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeSpringRuntime.java +104 -0
  41. package/adapters/java-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +1 -0
  42. package/bin/forge.mjs +18 -0
  43. package/docs/cair-protocol.md +103 -0
  44. package/docs/changelog.md +366 -0
  45. package/docs/forge-protocol.md +189 -0
  46. package/examples/go-billing/go.mod +7 -0
  47. package/examples/go-billing/main.go +120 -0
  48. package/examples/java-billing/pom.xml +52 -0
  49. package/examples/java-billing/src/main/java/dev/forgeos/examples/billing/CreateInvoiceInput.java +4 -0
  50. package/examples/java-billing/src/main/java/dev/forgeos/examples/billing/Invoice.java +11 -0
  51. package/examples/java-billing/src/main/java/dev/forgeos/examples/billing/Main.java +127 -0
  52. package/package.json +34 -4
  53. package/schemas/forge-manifest.schema.json +57 -0
  54. package/src/forge/_generated/releaseManifest.json +1 -2
  55. package/src/forge/_generated/releaseManifest.ts +3 -3
  56. package/src/forge/agent-adapters/index.ts +1556 -123
  57. package/src/forge/agent-adapters/types.ts +224 -1
  58. package/src/forge/agent-memory/bridge.ts +1333 -0
  59. package/src/forge/agent-memory/context-pack.ts +277 -0
  60. package/src/forge/agent-memory/hook-runner.ts +312 -0
  61. package/src/forge/agent-memory/mcp.ts +224 -0
  62. package/src/forge/agent-memory/normalize.ts +498 -0
  63. package/src/forge/agent-memory/redaction.ts +103 -0
  64. package/src/forge/agent-memory/sources/claude-code.ts +51 -0
  65. package/src/forge/agent-memory/sources/codex-hook-runner.mjs +273 -0
  66. package/src/forge/agent-memory/sources/codex.ts +119 -0
  67. package/src/forge/agent-memory/sources/cursor.ts +35 -0
  68. package/src/forge/agent-memory/types.ts +204 -0
  69. package/src/forge/bench.ts +248 -0
  70. package/src/forge/brownfield-import/index.ts +801 -0
  71. package/src/forge/brownfield-import/types.ts +127 -0
  72. package/src/forge/cair/action-journal.ts +61 -0
  73. package/src/forge/cair/action-parser.ts +314 -0
  74. package/src/forge/cair/action-validator.ts +40 -0
  75. package/src/forge/cair/actions.ts +1818 -0
  76. package/src/forge/cair/format.ts +77 -0
  77. package/src/forge/cair/index.ts +106 -0
  78. package/src/forge/cair/query.ts +478 -0
  79. package/src/forge/cair/snapshot.ts +315 -0
  80. package/src/forge/cair/types.ts +248 -0
  81. package/src/forge/cli/ai.ts +485 -2
  82. package/src/forge/cli/auth.ts +92 -2
  83. package/src/forge/cli/authmd.ts +356 -0
  84. package/src/forge/cli/build.ts +20 -4
  85. package/src/forge/cli/changed.ts +306 -0
  86. package/src/forge/cli/codex-app-server.ts +877 -0
  87. package/src/forge/cli/commands.ts +1357 -9
  88. package/src/forge/cli/db.ts +121 -2
  89. package/src/forge/cli/deps.ts +79 -12
  90. package/src/forge/cli/dev.ts +502 -38
  91. package/src/forge/cli/docs.ts +265 -0
  92. package/src/forge/cli/handoff.ts +253 -0
  93. package/src/forge/cli/index.ts +1 -0
  94. package/src/forge/cli/main.ts +59 -3
  95. package/src/forge/cli/new.ts +13 -1
  96. package/src/forge/cli/next-actions.ts +23 -0
  97. package/src/forge/cli/output.ts +302 -1
  98. package/src/forge/cli/parse.ts +862 -34
  99. package/src/forge/cli/query.ts +32 -0
  100. package/src/forge/cli/release.ts +35 -11
  101. package/src/forge/cli/rls.ts +568 -17
  102. package/src/forge/cli/run.ts +41 -0
  103. package/src/forge/cli/secrets.ts +46 -1
  104. package/src/forge/cli/security.ts +381 -0
  105. package/src/forge/cli/self-host.ts +56 -14
  106. package/src/forge/cli/studio.ts +2217 -0
  107. package/src/forge/cli/verify.ts +1424 -32
  108. package/src/forge/cli/workos.ts +340 -0
  109. package/src/forge/compiler/agent-contract/build.ts +637 -51
  110. package/src/forge/compiler/agent-contract/types.ts +47 -2
  111. package/src/forge/compiler/ai-registry/parse.ts +71 -2
  112. package/src/forge/compiler/api-surface/build.ts +47 -0
  113. package/src/forge/compiler/app-graph/build.ts +68 -8
  114. package/src/forge/compiler/app-graph/extract.ts +107 -0
  115. package/src/forge/compiler/app-graph/module-graph.ts +73 -78
  116. package/src/forge/compiler/app-graph/parser.ts +24 -24
  117. package/src/forge/compiler/app-graph/profile.ts +26 -0
  118. package/src/forge/compiler/app-graph/versions.ts +1 -1
  119. package/src/forge/compiler/classifier/capabilities.ts +3 -2
  120. package/src/forge/compiler/classifier/classify.ts +32 -8
  121. package/src/forge/compiler/classifier/secrets.ts +3 -2
  122. package/src/forge/compiler/classifier/signals.ts +91 -1
  123. package/src/forge/compiler/client-sdk/build-manifest.ts +59 -0
  124. package/src/forge/compiler/client-sdk/render-client.ts +188 -13
  125. package/src/forge/compiler/data-graph/parse.ts +3 -3
  126. package/src/forge/compiler/data-graph/sql/ddl.ts +60 -2
  127. package/src/forge/compiler/data-graph/sql/serialize.ts +4 -0
  128. package/src/forge/compiler/data-graph/sql/types.ts +1 -0
  129. package/src/forge/compiler/diagnostics/codes.ts +35 -0
  130. package/src/forge/compiler/diagnostics/create.ts +8 -3
  131. package/src/forge/compiler/diagnostics/index.ts +2 -0
  132. package/src/forge/compiler/emitter/barrel.ts +3 -0
  133. package/src/forge/compiler/emitter/render.ts +9 -0
  134. package/src/forge/compiler/external-manifest/registry.ts +205 -0
  135. package/src/forge/compiler/external-manifest/types.ts +91 -0
  136. package/src/forge/compiler/external-manifest/validate.ts +373 -0
  137. package/src/forge/compiler/frontend-graph/build.ts +142 -14
  138. package/src/forge/compiler/integration/add.ts +536 -23
  139. package/src/forge/compiler/integration/plan.ts +17 -11
  140. package/src/forge/compiler/integration/render.ts +20 -0
  141. package/src/forge/compiler/integration/snapshot.ts +2 -0
  142. package/src/forge/compiler/integration/templates/convex.ts +70 -0
  143. package/src/forge/compiler/integration/templates/index.ts +1 -0
  144. package/src/forge/compiler/integration/templates/render.ts +34 -0
  145. package/src/forge/compiler/integration/templates/workos.ts +1063 -0
  146. package/src/forge/compiler/make-registry/build.ts +6 -7
  147. package/src/forge/compiler/orchestrator/fast-check.ts +4 -0
  148. package/src/forge/compiler/orchestrator/manifest.ts +1 -1
  149. package/src/forge/compiler/orchestrator/plan-profile.ts +23 -0
  150. package/src/forge/compiler/orchestrator/plan.ts +240 -10
  151. package/src/forge/compiler/orchestrator/profile.ts +65 -0
  152. package/src/forge/compiler/orchestrator/run.ts +97 -31
  153. package/src/forge/compiler/orchestrator/serialize.ts +33 -8
  154. package/src/forge/compiler/orchestrator/types.ts +1 -1
  155. package/src/forge/compiler/package-graph/compiler.ts +13 -3
  156. package/src/forge/compiler/package-manager/adapter.ts +4 -1
  157. package/src/forge/compiler/package-manager/commands.ts +4 -0
  158. package/src/forge/compiler/package-manager/executor.ts +30 -1
  159. package/src/forge/compiler/policy-registry/build.ts +47 -2
  160. package/src/forge/compiler/policy-registry/parse.ts +32 -2
  161. package/src/forge/compiler/recipes/definitions.ts +63 -0
  162. package/src/forge/compiler/recipes/index.ts +2 -0
  163. package/src/forge/compiler/recipes/registry.ts +6 -0
  164. package/src/forge/compiler/test-graph/build.ts +11 -3
  165. package/src/forge/compiler/types/app-graph.ts +8 -2
  166. package/src/forge/compiler/types/cli.ts +75 -1
  167. package/src/forge/compiler/types/dev-manifest.ts +4 -0
  168. package/src/forge/compiler/types/emit.ts +2 -0
  169. package/src/forge/compiler/types/frontend-graph.ts +2 -2
  170. package/src/forge/compiler/types/integration.ts +1 -0
  171. package/src/forge/compiler/types/policy-registry.ts +3 -1
  172. package/src/forge/delta/classifier.ts +52 -0
  173. package/src/forge/delta/explain.ts +238 -0
  174. package/src/forge/delta/git-observer.ts +43 -0
  175. package/src/forge/delta/ids.ts +44 -0
  176. package/src/forge/delta/index.ts +25 -0
  177. package/src/forge/delta/recorder.ts +540 -0
  178. package/src/forge/delta/redaction.ts +50 -0
  179. package/src/forge/delta/schema.ts +240 -0
  180. package/src/forge/delta/session.ts +142 -0
  181. package/src/forge/delta/status.ts +1126 -0
  182. package/src/forge/delta/store.ts +3284 -0
  183. package/src/forge/delta/timeline.ts +178 -0
  184. package/src/forge/dev/server.ts +777 -17
  185. package/src/forge/dev/types.ts +15 -1
  186. package/src/forge/dev/watch.ts +17 -7
  187. package/src/forge/dev-console/cycle.ts +233 -21
  188. package/src/forge/dev-console/types.ts +46 -1
  189. package/src/forge/impact/index.ts +46 -8
  190. package/src/forge/impact/types.ts +6 -0
  191. package/src/forge/intent/index.ts +35 -16
  192. package/src/forge/make/index.ts +34 -5
  193. package/src/forge/make/templates.ts +155 -2
  194. package/src/forge/make/types.ts +2 -1
  195. package/src/forge/policy.ts +1 -1
  196. package/src/forge/refactor/index.ts +1 -0
  197. package/src/forge/repair/rules/index.ts +2 -2
  198. package/src/forge/review/index.ts +158 -12
  199. package/src/forge/review/types.ts +15 -0
  200. package/src/forge/runtime/auth/claims.ts +32 -0
  201. package/src/forge/runtime/auth/config.ts +17 -0
  202. package/src/forge/runtime/auth/errors.ts +2 -0
  203. package/src/forge/runtime/auth/evaluate.ts +15 -2
  204. package/src/forge/runtime/auth/resolve.ts +29 -4
  205. package/src/forge/runtime/db/generated-client.ts +13 -2
  206. package/src/forge/runtime/db/memory-adapter.ts +2 -2
  207. package/src/forge/runtime/db/pglite-adapter.ts +77 -2
  208. package/src/forge/runtime/db/postgres-adapter.ts +6 -3
  209. package/src/forge/runtime/executor.ts +129 -16
  210. package/src/forge/runtime/external/bridge.ts +649 -0
  211. package/src/forge/runtime/runner/run-entry.ts +16 -7
  212. package/src/forge/runtime/telemetry/buffer.ts +4 -1
  213. package/src/forge/runtime/telemetry/scrubber.ts +91 -10
  214. package/src/forge/runtime/webhooks/security.ts +189 -0
  215. package/src/forge/server.ts +23 -2
  216. package/src/forge/version.ts +1 -1
  217. package/src/forge/vue/index.ts +407 -0
  218. package/src/forge/workspace/change-summary.ts +243 -0
  219. package/src/forge/workspace/forge-cli.ts +14 -0
  220. package/src/forge/workspace/git-summary.ts +328 -0
  221. package/templates/agent-workroom/AGENTS.md +29 -0
  222. package/templates/agent-workroom/README.md +34 -0
  223. package/templates/agent-workroom/forge.config.ts +3 -0
  224. package/templates/agent-workroom/package.json +33 -0
  225. package/templates/agent-workroom/src/actions/indexAgentSignal.ts +10 -0
  226. package/templates/agent-workroom/src/commands/openWorkroom.ts +61 -0
  227. package/templates/agent-workroom/src/commands/recordAgentSignal.ts +119 -0
  228. package/templates/agent-workroom/src/commands/recordCheckRun.ts +52 -0
  229. package/templates/agent-workroom/src/forge/schema.ts +54 -0
  230. package/templates/agent-workroom/src/policies.ts +6 -0
  231. package/templates/agent-workroom/src/queries/listWorkrooms.ts +11 -0
  232. package/templates/agent-workroom/src/queries/liveWorkroom.ts +63 -0
  233. package/templates/agent-workroom/tsconfig.json +16 -0
  234. package/templates/agent-workroom/web/index.html +12 -0
  235. package/templates/agent-workroom/web/package.json +21 -0
  236. package/templates/agent-workroom/web/src/App.tsx +345 -0
  237. package/templates/agent-workroom/web/src/lib/forge.ts +13 -0
  238. package/templates/agent-workroom/web/src/main.tsx +13 -0
  239. package/templates/agent-workroom/web/src/styles.css +545 -0
  240. package/templates/agent-workroom/web/tsconfig.json +27 -0
  241. package/templates/b2b-support-web/package.json +2 -0
  242. package/templates/b2b-support-web/tsconfig.json +4 -1
  243. package/templates/b2b-support-web/web/package.json +1 -1
  244. package/templates/minimal-web/package.json +2 -1
  245. package/templates/minimal-web/tsconfig.json +3 -1
  246. package/templates/minimal-web/web/package.json +2 -2
  247. package/templates/nuxt-web/.vscode/settings.json +14 -0
  248. package/templates/nuxt-web/README.md +30 -0
  249. package/templates/nuxt-web/forge.config.ts +3 -0
  250. package/templates/nuxt-web/package.json +33 -0
  251. package/templates/nuxt-web/src/actions/logNoteCreated.ts +11 -0
  252. package/templates/nuxt-web/src/commands/createNote.ts +26 -0
  253. package/templates/nuxt-web/src/forge/schema.ts +12 -0
  254. package/templates/nuxt-web/src/policies.ts +6 -0
  255. package/templates/nuxt-web/src/queries/listNotes.ts +8 -0
  256. package/templates/nuxt-web/src/queries/liveNotes.ts +8 -0
  257. package/templates/nuxt-web/tsconfig.json +17 -0
  258. package/templates/nuxt-web/web/app.vue +67 -0
  259. package/templates/nuxt-web/web/components/LiveNotes.vue +89 -0
  260. package/templates/nuxt-web/web/components/NoteComposer.vue +100 -0
  261. package/templates/nuxt-web/web/composables/forge.ts +13 -0
  262. package/templates/nuxt-web/web/composables/useNotes.ts +24 -0
  263. package/templates/nuxt-web/web/nuxt.config.ts +11 -0
  264. package/templates/nuxt-web/web/package.json +17 -0
  265. package/templates/nuxt-web/web/plugins/forge.client.ts +10 -0
  266. package/templates/nuxt-web/web/plugins/forge.server.ts +10 -0
  267. package/templates/nuxt-web/web/server/api/forge-health.get.ts +7 -0
  268. package/templates/nuxt-web/web/tsconfig.json +3 -0
  269. package/src/forge/_generated/actionSubscriptions.json +0 -2
  270. package/src/forge/_generated/actionSubscriptions.ts +0 -10
  271. package/src/forge/_generated/agentAdapterManifest.json +0 -2
  272. package/src/forge/_generated/agentAdapterManifest.ts +0 -73
  273. package/src/forge/_generated/agentContract.json +0 -2
  274. package/src/forge/_generated/agentContract.ts +0 -7829
  275. package/src/forge/_generated/agentQuickstart.md +0 -34
  276. package/src/forge/_generated/agentTools.json +0 -2
  277. package/src/forge/_generated/agentTools.md +0 -16
  278. package/src/forge/_generated/agentTools.ts +0 -12
  279. package/src/forge/_generated/aiContext.ts +0 -125
  280. package/src/forge/_generated/aiModels.json +0 -2
  281. package/src/forge/_generated/aiModels.ts +0 -51
  282. package/src/forge/_generated/aiProviders.json +0 -2
  283. package/src/forge/_generated/aiProviders.ts +0 -23
  284. package/src/forge/_generated/aiRegistry.json +0 -2
  285. package/src/forge/_generated/aiRegistry.ts +0 -31
  286. package/src/forge/_generated/api.json +0 -2
  287. package/src/forge/_generated/api.ts +0 -8
  288. package/src/forge/_generated/appGraph.json +0 -2
  289. package/src/forge/_generated/appGraph.ts +0 -14775
  290. package/src/forge/_generated/appMap.md +0 -55
  291. package/src/forge/_generated/artifactManifest.json +0 -2
  292. package/src/forge/_generated/artifactManifest.ts +0 -7
  293. package/src/forge/_generated/authClaims.json +0 -2
  294. package/src/forge/_generated/authClaims.ts +0 -13
  295. package/src/forge/_generated/authConfig.json +0 -2
  296. package/src/forge/_generated/authConfig.ts +0 -17
  297. package/src/forge/_generated/authContext.ts +0 -23
  298. package/src/forge/_generated/authRegistry.json +0 -2
  299. package/src/forge/_generated/authRegistry.ts +0 -25
  300. package/src/forge/_generated/buildInfo.json +0 -2
  301. package/src/forge/_generated/buildInfo.ts +0 -9
  302. package/src/forge/_generated/capabilityMap.json +0 -2
  303. package/src/forge/_generated/capabilityMap.md +0 -15
  304. package/src/forge/_generated/capabilityMap.ts +0 -17
  305. package/src/forge/_generated/client.ts +0 -282
  306. package/src/forge/_generated/clientApi.ts +0 -9
  307. package/src/forge/_generated/clientManifest.json +0 -2
  308. package/src/forge/_generated/clientManifest.ts +0 -39
  309. package/src/forge/_generated/clientTypes.ts +0 -78
  310. package/src/forge/_generated/configRegistry.json +0 -2
  311. package/src/forge/_generated/configRegistry.ts +0 -4
  312. package/src/forge/_generated/dataGraph.json +0 -2
  313. package/src/forge/_generated/dataGraph.ts +0 -8
  314. package/src/forge/_generated/db.json +0 -2
  315. package/src/forge/_generated/db.ts +0 -2
  316. package/src/forge/_generated/dbSecurityManifest.json +0 -2
  317. package/src/forge/_generated/dbSecurityManifest.ts +0 -15
  318. package/src/forge/_generated/dbSessionContext.json +0 -2
  319. package/src/forge/_generated/dbSessionContext.ts +0 -39
  320. package/src/forge/_generated/deployManifest.json +0 -2
  321. package/src/forge/_generated/deployManifest.ts +0 -14
  322. package/src/forge/_generated/devManifest.json +0 -2
  323. package/src/forge/_generated/devManifest.ts +0 -62
  324. package/src/forge/_generated/envSchema.json +0 -2
  325. package/src/forge/_generated/envSchema.ts +0 -59
  326. package/src/forge/_generated/frontendGraph.json +0 -2
  327. package/src/forge/_generated/frontendGraph.ts +0 -27
  328. package/src/forge/_generated/importGuards.json +0 -2
  329. package/src/forge/_generated/importGuards.ts +0 -686
  330. package/src/forge/_generated/index.ts +0 -68
  331. package/src/forge/_generated/liveProductionManifest.json +0 -2
  332. package/src/forge/_generated/liveProductionManifest.ts +0 -23
  333. package/src/forge/_generated/liveProtocol.json +0 -2
  334. package/src/forge/_generated/liveProtocol.ts +0 -21
  335. package/src/forge/_generated/liveQueryRegistry.json +0 -2
  336. package/src/forge/_generated/liveQueryRegistry.ts +0 -9
  337. package/src/forge/_generated/liveTransportConfig.json +0 -2
  338. package/src/forge/_generated/liveTransportConfig.ts +0 -19
  339. package/src/forge/_generated/makeRegistry.json +0 -2
  340. package/src/forge/_generated/makeRegistry.ts +0 -177
  341. package/src/forge/_generated/makeTemplates.json +0 -2
  342. package/src/forge/_generated/makeTemplates.ts +0 -66
  343. package/src/forge/_generated/mockMap.json +0 -2
  344. package/src/forge/_generated/mockMap.ts +0 -7
  345. package/src/forge/_generated/operationPlaybooks.md +0 -167
  346. package/src/forge/_generated/packageGraph.json +0 -2
  347. package/src/forge/_generated/packageGraph.ts +0 -249334
  348. package/src/forge/_generated/packageUpgradeRegistry.json +0 -2
  349. package/src/forge/_generated/packageUpgradeRegistry.ts +0 -15
  350. package/src/forge/_generated/permissionMatrix.json +0 -2
  351. package/src/forge/_generated/permissionMatrix.ts +0 -7
  352. package/src/forge/_generated/policyRegistry.json +0 -2
  353. package/src/forge/_generated/policyRegistry.ts +0 -11
  354. package/src/forge/_generated/queryRegistry.json +0 -2
  355. package/src/forge/_generated/queryRegistry.ts +0 -9
  356. package/src/forge/_generated/react.d.ts +0 -22
  357. package/src/forge/_generated/react.ts +0 -29
  358. package/src/forge/_generated/reactManifest.json +0 -2
  359. package/src/forge/_generated/reactManifest.ts +0 -19
  360. package/src/forge/_generated/rlsPolicies.json +0 -2
  361. package/src/forge/_generated/rlsPolicies.sql +0 -34
  362. package/src/forge/_generated/rlsPolicies.ts +0 -6
  363. package/src/forge/_generated/runtimeGraph.json +0 -2
  364. package/src/forge/_generated/runtimeGraph.ts +0 -8
  365. package/src/forge/_generated/runtimeMatrix.json +0 -2
  366. package/src/forge/_generated/runtimeMatrix.ts +0 -334130
  367. package/src/forge/_generated/runtimeRegistry.ts +0 -2
  368. package/src/forge/_generated/runtimeRules.md +0 -91
  369. package/src/forge/_generated/secretRegistry.json +0 -2
  370. package/src/forge/_generated/secretRegistry.ts +0 -50
  371. package/src/forge/_generated/secretsContext.ts +0 -11
  372. package/src/forge/_generated/serverApi.ts +0 -10
  373. package/src/forge/_generated/sourceMapManifest.json +0 -2
  374. package/src/forge/_generated/sourceMapManifest.ts +0 -7
  375. package/src/forge/_generated/sqlPlan.json +0 -2
  376. package/src/forge/_generated/sqlPlan.ts +0 -88
  377. package/src/forge/_generated/subscriptionManifest.json +0 -2
  378. package/src/forge/_generated/subscriptionManifest.ts +0 -7
  379. package/src/forge/_generated/symbolicationManifest.json +0 -2
  380. package/src/forge/_generated/symbolicationManifest.ts +0 -17
  381. package/src/forge/_generated/telemetryRegistry.json +0 -2
  382. package/src/forge/_generated/telemetryRegistry.ts +0 -9
  383. package/src/forge/_generated/telemetrySinks.json +0 -2
  384. package/src/forge/_generated/telemetrySinks.ts +0 -11
  385. package/src/forge/_generated/tenantScope.json +0 -2
  386. package/src/forge/_generated/tenantScope.ts +0 -8
  387. package/src/forge/_generated/testGraph.json +0 -2
  388. package/src/forge/_generated/testGraph.ts +0 -3118
  389. package/src/forge/_generated/testPlanRegistry.json +0 -2
  390. package/src/forge/_generated/testPlanRegistry.ts +0 -33
  391. package/src/forge/_generated/uiRoutes.json +0 -2
  392. package/src/forge/_generated/uiRoutes.ts +0 -16
  393. package/src/forge/_generated/uiScenarios.json +0 -2
  394. package/src/forge/_generated/uiScenarios.ts +0 -30
  395. package/src/forge/_generated/uiTestManifest.json +0 -2
  396. package/src/forge/_generated/uiTestManifest.ts +0 -27
  397. package/src/forge/_generated/workflowRegistry.json +0 -2
  398. package/src/forge/_generated/workflowRegistry.ts +0 -9
  399. package/src/forge/_generated/workflowSubscriptions.json +0 -2
  400. package/src/forge/_generated/workflowSubscriptions.ts +0 -10
package/.npmignore CHANGED
@@ -5,5 +5,15 @@ node_modules/
5
5
  .forge/
6
6
  tests/
7
7
  examples/
8
+ adapters/**/target/
9
+ examples/**/target/
10
+ *.class
11
+ *.jar
12
+ **/*.class
13
+ **/*.jar
14
+ src/forge/_generated/**
15
+ !src/forge/_generated/
16
+ !src/forge/_generated/releaseManifest.json
17
+ !src/forge/_generated/releaseManifest.ts
8
18
  *.tgz
9
19
  npm-debug.log*
package/AGENTS.md CHANGED
@@ -1,4 +1,4 @@
1
- // @forge-generated generator=0.1.0-alpha.3 input=c6d07cc92a729a46f2ff02a05c005e7fe0d71a3a5800be6f670a3fca2db04d6f content=1611635edf59c122b013ba76c85bd333ab3b30b289aaea04a9074f9438782a50
1
+ // @forge-generated generator=0.1.0-alpha.30 input=5d12d4ad2a959d692b306eb18ba706c52f22f2d148c6e4ed541bd67fd8222c84 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,35 +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 inspect agent-tools --json
73
- forge deps inspect <package> --json
74
- forge deps api <package> <symbol> --json
75
- forge deps trace <package> --json
76
- forge auth check --json
77
- forge inspect runtime-matrix --json
78
- forge inspect policies --json
79
- forge inspect client --json
80
- forge inspect live-production --json
81
- forge live status --json
82
- forge doctor
83
- forge doctor windows --json
84
- forge setup windows --json
85
- forge agent print-context --json
86
- forge ai tools --json
87
- forge ai agents --json
88
- forge ai trace <traceId> --json
89
- forge verify --smoke
90
- forge verify --standard
91
- 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
92
123
  ```
93
124
 
94
125
  ## Data
@@ -142,9 +173,9 @@ Agents:
142
173
 
143
174
  Rules:
144
175
 
145
- - Use the local `web/**/lib/forge.ts` bridge to generated hooks.
146
- - Mount `<ForgeProvider devAuth>` in local development.
147
- - 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.
148
179
  - Keep frontend routes reflected in `src/forge/_generated/frontendGraph.json`.
149
180
 
150
181
  ## Common tasks
@@ -154,30 +185,31 @@ Rules:
154
185
  Use:
155
186
 
156
187
  ```bash
157
- forge do "<objective>" --json
158
- forge do fix --json
159
- forge do connect-ui --json
160
- 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
161
192
  ```
162
193
 
163
- `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.
164
195
 
165
196
  ### Add a command
166
197
 
167
198
  1. Add file in `src/commands`.
168
199
  2. Declare `auth: can("...")`.
169
- 3. Run `forge generate`.
170
- 4. Run `forge verify --strict`.
200
+ 3. Run `node bin/forge.mjs generate`.
201
+ 4. Run `node bin/forge.mjs verify framework`.
171
202
 
172
203
  ### Scaffold a resource
173
204
 
174
205
  Use:
175
206
 
176
207
  ```bash
177
- forge make resource <name> --fields title:text,status:enum(open,closed) --dry-run --json
178
- forge make resource <name> --fields title:text,status:enum(open,closed) --with-ui --yes
179
- forge make ui --framework vite --dry-run --json
180
- forge make ai-chat support --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
181
213
  ```
182
214
 
183
215
  Review the plan before applying when the resource touches schema or policies.
@@ -187,22 +219,22 @@ Review the plan before applying when the resource touches schema or policies.
187
219
  Use:
188
220
 
189
221
  ```bash
190
- forge dev --once --json
191
- forge dev
192
- forge inspect frontend --json
193
- 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
194
226
  ```
195
227
 
196
- `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.
197
229
 
198
230
  ### Apply a feature blueprint
199
231
 
200
232
  Use:
201
233
 
202
234
  ```bash
203
- forge feature validate .forge/blueprints/<name>.json --json
204
- forge feature plan .forge/blueprints/<name>.json
205
- 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
206
238
  ```
207
239
 
208
240
  Review high-risk plans before applying. Use `--allow-high-risk` only when intentional.
@@ -212,10 +244,10 @@ Review high-risk plans before applying. Use `--allow-high-risk` only when intent
212
244
  Use:
213
245
 
214
246
  ```bash
215
- forge refactor rename field tickets.priority tickets.urgency --dry-run --json
216
- forge refactor rename field tickets.priority tickets.urgency --yes
217
- forge refactor rename command createTicket openTicket --dry-run --json
218
- forge refactor rename command createTicket openTicket --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
219
251
  ```
220
252
 
221
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`.
@@ -227,21 +259,21 @@ Never edit `src/forge/_generated/**` directly. Review migration hints before app
227
259
  Use:
228
260
 
229
261
  ```bash
230
- forge impact --changed --json
231
- forge test plan --changed --json
232
- forge test run --changed --timeout-ms 120000 --json
233
- 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
234
266
  ```
235
267
 
236
- 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.
237
269
 
238
270
  ### Repair a failing check
239
271
 
240
272
  When a Forge check fails, do not guess. Use:
241
273
 
242
274
  ```bash
243
- forge repair diagnose --from-last-test-run --json
244
- 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
245
277
  ```
246
278
 
247
279
  Apply only high-confidence deterministic repairs automatically. Review medium or low confidence repairs before changing code.
@@ -251,10 +283,11 @@ Apply only high-confidence deterministic repairs automatically. Review medium or
251
283
  Use:
252
284
 
253
285
  ```bash
254
- forge generate
255
- forge inspect all --json
256
- forge ai check --json
257
- forge ai trace <traceId> --json
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
258
291
  ```
259
292
 
260
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`.
@@ -264,10 +297,10 @@ Define tools with `aiTool({ inputSchema, outputSchema, risk, needsApproval, hand
264
297
  Use:
265
298
 
266
299
  ```bash
267
- forge agent export --target generic
268
- forge agent export --target codex
269
- forge agent export --target cursor
270
- 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
271
304
  ```
272
305
 
273
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.
@@ -277,7 +310,7 @@ Adapter files are derived from `agentContract.json`, `appMap.md`, `runtimeRules.
277
310
  Use:
278
311
 
279
312
  ```bash
280
- forge add <alias>
313
+ node bin/forge.mjs add <alias>
281
314
  ```
282
315
 
283
316
  Do not install packages manually unless intentional.
@@ -287,11 +320,11 @@ Do not install packages manually unless intentional.
287
320
  Use:
288
321
 
289
322
  ```bash
290
- forge deps upgrade-plan <package> --to latest
291
- forge deps inspect <package> --json
292
- forge deps api <package> <symbol> --json
293
- forge deps upgrade-apply <plan>
294
- 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
295
328
  ```
296
329
 
297
330
  Do not manually edit `package.json` for package upgrades unless necessary.
@@ -301,9 +334,9 @@ Do not manually edit `package.json` for package upgrades unless necessary.
301
334
  Use:
302
335
 
303
336
  ```bash
304
- forge live status --json
305
- forge live invalidations list --json
306
- 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
307
340
  ```
308
341
 
309
342
  Durable invalidations live in `_forge_live_invalidations`.
@@ -314,4 +347,23 @@ Durable invalidations live in `_forge_live_invalidations`.
314
347
 
315
348
  Project-specific notes can go here.
316
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
+
317
369
  <!-- user-notes:end -->