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.
- package/.npmignore +10 -0
- package/AGENTS.md +142 -90
- package/CHANGELOG.md +321 -0
- package/LICENSE +21 -0
- package/README.md +86 -13
- package/adapters/go/README.md +23 -0
- package/adapters/go/go.mod +3 -0
- package/adapters/go/http.go +149 -0
- package/adapters/go/registry.go +234 -0
- package/adapters/go/types.go +136 -0
- package/adapters/java/README.md +68 -0
- package/adapters/java/pom.xml +34 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/Auth.java +20 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/Diagnostic.java +16 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/Entry.java +38 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/EntryKind.java +16 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/ErrorInfo.java +4 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/Forge.java +94 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeCall.java +12 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeContext.java +11 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeHandler.java +8 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeHttpHandler.java +179 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/ForgeRegistry.java +121 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/Json.java +14 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/Manifest.java +14 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/RequestEnvelope.java +6 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/ResponseEnvelope.java +25 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/Risk.java +18 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/Schemas.java +36 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/Service.java +65 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/TransactionMode.java +18 -0
- package/adapters/java/src/main/java/dev/forgeos/adapter/TypedForgeHandler.java +6 -0
- package/adapters/java-spring-boot-starter/README.md +32 -0
- package/adapters/java-spring-boot-starter/pom.xml +36 -0
- package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeCommand.java +22 -0
- package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeExternalService.java +15 -0
- package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeQuery.java +16 -0
- package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeServiceBeanCondition.java +18 -0
- package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeSpringAutoConfiguration.java +16 -0
- package/adapters/java-spring-boot-starter/src/main/java/dev/forgeos/adapter/spring/ForgeSpringRuntime.java +104 -0
- package/adapters/java-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +1 -0
- package/bin/forge.mjs +18 -0
- package/docs/cair-protocol.md +103 -0
- package/docs/changelog.md +366 -0
- package/docs/forge-protocol.md +189 -0
- package/examples/go-billing/go.mod +7 -0
- package/examples/go-billing/main.go +120 -0
- package/examples/java-billing/pom.xml +52 -0
- package/examples/java-billing/src/main/java/dev/forgeos/examples/billing/CreateInvoiceInput.java +4 -0
- package/examples/java-billing/src/main/java/dev/forgeos/examples/billing/Invoice.java +11 -0
- package/examples/java-billing/src/main/java/dev/forgeos/examples/billing/Main.java +127 -0
- package/package.json +34 -4
- package/schemas/forge-manifest.schema.json +57 -0
- package/src/forge/_generated/releaseManifest.json +1 -2
- package/src/forge/_generated/releaseManifest.ts +3 -3
- package/src/forge/agent-adapters/index.ts +1556 -123
- package/src/forge/agent-adapters/types.ts +224 -1
- package/src/forge/agent-memory/bridge.ts +1333 -0
- package/src/forge/agent-memory/context-pack.ts +277 -0
- package/src/forge/agent-memory/hook-runner.ts +312 -0
- package/src/forge/agent-memory/mcp.ts +224 -0
- package/src/forge/agent-memory/normalize.ts +498 -0
- package/src/forge/agent-memory/redaction.ts +103 -0
- package/src/forge/agent-memory/sources/claude-code.ts +51 -0
- package/src/forge/agent-memory/sources/codex-hook-runner.mjs +273 -0
- package/src/forge/agent-memory/sources/codex.ts +119 -0
- package/src/forge/agent-memory/sources/cursor.ts +35 -0
- package/src/forge/agent-memory/types.ts +204 -0
- package/src/forge/bench.ts +248 -0
- package/src/forge/brownfield-import/index.ts +801 -0
- package/src/forge/brownfield-import/types.ts +127 -0
- package/src/forge/cair/action-journal.ts +61 -0
- package/src/forge/cair/action-parser.ts +314 -0
- package/src/forge/cair/action-validator.ts +40 -0
- package/src/forge/cair/actions.ts +1818 -0
- package/src/forge/cair/format.ts +77 -0
- package/src/forge/cair/index.ts +106 -0
- package/src/forge/cair/query.ts +478 -0
- package/src/forge/cair/snapshot.ts +315 -0
- package/src/forge/cair/types.ts +248 -0
- package/src/forge/cli/ai.ts +485 -2
- package/src/forge/cli/auth.ts +92 -2
- package/src/forge/cli/authmd.ts +356 -0
- package/src/forge/cli/build.ts +20 -4
- package/src/forge/cli/changed.ts +306 -0
- package/src/forge/cli/codex-app-server.ts +877 -0
- package/src/forge/cli/commands.ts +1357 -9
- package/src/forge/cli/db.ts +121 -2
- package/src/forge/cli/deps.ts +79 -12
- package/src/forge/cli/dev.ts +502 -38
- package/src/forge/cli/docs.ts +265 -0
- package/src/forge/cli/handoff.ts +253 -0
- package/src/forge/cli/index.ts +1 -0
- package/src/forge/cli/main.ts +59 -3
- package/src/forge/cli/new.ts +13 -1
- package/src/forge/cli/next-actions.ts +23 -0
- package/src/forge/cli/output.ts +302 -1
- package/src/forge/cli/parse.ts +862 -34
- package/src/forge/cli/query.ts +32 -0
- package/src/forge/cli/release.ts +35 -11
- package/src/forge/cli/rls.ts +568 -17
- package/src/forge/cli/run.ts +41 -0
- package/src/forge/cli/secrets.ts +46 -1
- package/src/forge/cli/security.ts +381 -0
- package/src/forge/cli/self-host.ts +56 -14
- package/src/forge/cli/studio.ts +2217 -0
- package/src/forge/cli/verify.ts +1424 -32
- package/src/forge/cli/workos.ts +340 -0
- package/src/forge/compiler/agent-contract/build.ts +637 -51
- package/src/forge/compiler/agent-contract/types.ts +47 -2
- package/src/forge/compiler/ai-registry/parse.ts +71 -2
- package/src/forge/compiler/api-surface/build.ts +47 -0
- package/src/forge/compiler/app-graph/build.ts +68 -8
- package/src/forge/compiler/app-graph/extract.ts +107 -0
- package/src/forge/compiler/app-graph/module-graph.ts +73 -78
- package/src/forge/compiler/app-graph/parser.ts +24 -24
- package/src/forge/compiler/app-graph/profile.ts +26 -0
- package/src/forge/compiler/app-graph/versions.ts +1 -1
- package/src/forge/compiler/classifier/capabilities.ts +3 -2
- package/src/forge/compiler/classifier/classify.ts +32 -8
- package/src/forge/compiler/classifier/secrets.ts +3 -2
- package/src/forge/compiler/classifier/signals.ts +91 -1
- package/src/forge/compiler/client-sdk/build-manifest.ts +59 -0
- package/src/forge/compiler/client-sdk/render-client.ts +188 -13
- package/src/forge/compiler/data-graph/parse.ts +3 -3
- package/src/forge/compiler/data-graph/sql/ddl.ts +60 -2
- package/src/forge/compiler/data-graph/sql/serialize.ts +4 -0
- package/src/forge/compiler/data-graph/sql/types.ts +1 -0
- package/src/forge/compiler/diagnostics/codes.ts +35 -0
- package/src/forge/compiler/diagnostics/create.ts +8 -3
- package/src/forge/compiler/diagnostics/index.ts +2 -0
- package/src/forge/compiler/emitter/barrel.ts +3 -0
- package/src/forge/compiler/emitter/render.ts +9 -0
- package/src/forge/compiler/external-manifest/registry.ts +205 -0
- package/src/forge/compiler/external-manifest/types.ts +91 -0
- package/src/forge/compiler/external-manifest/validate.ts +373 -0
- package/src/forge/compiler/frontend-graph/build.ts +142 -14
- package/src/forge/compiler/integration/add.ts +536 -23
- package/src/forge/compiler/integration/plan.ts +17 -11
- package/src/forge/compiler/integration/render.ts +20 -0
- package/src/forge/compiler/integration/snapshot.ts +2 -0
- package/src/forge/compiler/integration/templates/convex.ts +70 -0
- package/src/forge/compiler/integration/templates/index.ts +1 -0
- package/src/forge/compiler/integration/templates/render.ts +34 -0
- package/src/forge/compiler/integration/templates/workos.ts +1063 -0
- package/src/forge/compiler/make-registry/build.ts +6 -7
- package/src/forge/compiler/orchestrator/fast-check.ts +4 -0
- package/src/forge/compiler/orchestrator/manifest.ts +1 -1
- package/src/forge/compiler/orchestrator/plan-profile.ts +23 -0
- package/src/forge/compiler/orchestrator/plan.ts +240 -10
- package/src/forge/compiler/orchestrator/profile.ts +65 -0
- package/src/forge/compiler/orchestrator/run.ts +97 -31
- package/src/forge/compiler/orchestrator/serialize.ts +33 -8
- package/src/forge/compiler/orchestrator/types.ts +1 -1
- package/src/forge/compiler/package-graph/compiler.ts +13 -3
- package/src/forge/compiler/package-manager/adapter.ts +4 -1
- package/src/forge/compiler/package-manager/commands.ts +4 -0
- package/src/forge/compiler/package-manager/executor.ts +30 -1
- package/src/forge/compiler/policy-registry/build.ts +47 -2
- package/src/forge/compiler/policy-registry/parse.ts +32 -2
- package/src/forge/compiler/recipes/definitions.ts +63 -0
- package/src/forge/compiler/recipes/index.ts +2 -0
- package/src/forge/compiler/recipes/registry.ts +6 -0
- package/src/forge/compiler/test-graph/build.ts +11 -3
- package/src/forge/compiler/types/app-graph.ts +8 -2
- package/src/forge/compiler/types/cli.ts +75 -1
- package/src/forge/compiler/types/dev-manifest.ts +4 -0
- package/src/forge/compiler/types/emit.ts +2 -0
- package/src/forge/compiler/types/frontend-graph.ts +2 -2
- package/src/forge/compiler/types/integration.ts +1 -0
- package/src/forge/compiler/types/policy-registry.ts +3 -1
- package/src/forge/delta/classifier.ts +52 -0
- package/src/forge/delta/explain.ts +238 -0
- package/src/forge/delta/git-observer.ts +43 -0
- package/src/forge/delta/ids.ts +44 -0
- package/src/forge/delta/index.ts +25 -0
- package/src/forge/delta/recorder.ts +540 -0
- package/src/forge/delta/redaction.ts +50 -0
- package/src/forge/delta/schema.ts +240 -0
- package/src/forge/delta/session.ts +142 -0
- package/src/forge/delta/status.ts +1126 -0
- package/src/forge/delta/store.ts +3284 -0
- package/src/forge/delta/timeline.ts +178 -0
- package/src/forge/dev/server.ts +777 -17
- package/src/forge/dev/types.ts +15 -1
- package/src/forge/dev/watch.ts +17 -7
- package/src/forge/dev-console/cycle.ts +233 -21
- package/src/forge/dev-console/types.ts +46 -1
- package/src/forge/impact/index.ts +46 -8
- package/src/forge/impact/types.ts +6 -0
- package/src/forge/intent/index.ts +35 -16
- package/src/forge/make/index.ts +34 -5
- package/src/forge/make/templates.ts +155 -2
- package/src/forge/make/types.ts +2 -1
- package/src/forge/policy.ts +1 -1
- package/src/forge/refactor/index.ts +1 -0
- package/src/forge/repair/rules/index.ts +2 -2
- package/src/forge/review/index.ts +158 -12
- package/src/forge/review/types.ts +15 -0
- package/src/forge/runtime/auth/claims.ts +32 -0
- package/src/forge/runtime/auth/config.ts +17 -0
- package/src/forge/runtime/auth/errors.ts +2 -0
- package/src/forge/runtime/auth/evaluate.ts +15 -2
- package/src/forge/runtime/auth/resolve.ts +29 -4
- package/src/forge/runtime/db/generated-client.ts +13 -2
- package/src/forge/runtime/db/memory-adapter.ts +2 -2
- package/src/forge/runtime/db/pglite-adapter.ts +77 -2
- package/src/forge/runtime/db/postgres-adapter.ts +6 -3
- package/src/forge/runtime/executor.ts +129 -16
- package/src/forge/runtime/external/bridge.ts +649 -0
- package/src/forge/runtime/runner/run-entry.ts +16 -7
- package/src/forge/runtime/telemetry/buffer.ts +4 -1
- package/src/forge/runtime/telemetry/scrubber.ts +91 -10
- package/src/forge/runtime/webhooks/security.ts +189 -0
- package/src/forge/server.ts +23 -2
- package/src/forge/version.ts +1 -1
- package/src/forge/vue/index.ts +407 -0
- package/src/forge/workspace/change-summary.ts +243 -0
- package/src/forge/workspace/forge-cli.ts +14 -0
- package/src/forge/workspace/git-summary.ts +328 -0
- package/templates/agent-workroom/AGENTS.md +29 -0
- package/templates/agent-workroom/README.md +34 -0
- package/templates/agent-workroom/forge.config.ts +3 -0
- package/templates/agent-workroom/package.json +33 -0
- package/templates/agent-workroom/src/actions/indexAgentSignal.ts +10 -0
- package/templates/agent-workroom/src/commands/openWorkroom.ts +61 -0
- package/templates/agent-workroom/src/commands/recordAgentSignal.ts +119 -0
- package/templates/agent-workroom/src/commands/recordCheckRun.ts +52 -0
- package/templates/agent-workroom/src/forge/schema.ts +54 -0
- package/templates/agent-workroom/src/policies.ts +6 -0
- package/templates/agent-workroom/src/queries/listWorkrooms.ts +11 -0
- package/templates/agent-workroom/src/queries/liveWorkroom.ts +63 -0
- package/templates/agent-workroom/tsconfig.json +16 -0
- package/templates/agent-workroom/web/index.html +12 -0
- package/templates/agent-workroom/web/package.json +21 -0
- package/templates/agent-workroom/web/src/App.tsx +345 -0
- package/templates/agent-workroom/web/src/lib/forge.ts +13 -0
- package/templates/agent-workroom/web/src/main.tsx +13 -0
- package/templates/agent-workroom/web/src/styles.css +545 -0
- package/templates/agent-workroom/web/tsconfig.json +27 -0
- package/templates/b2b-support-web/package.json +2 -0
- package/templates/b2b-support-web/tsconfig.json +4 -1
- package/templates/b2b-support-web/web/package.json +1 -1
- package/templates/minimal-web/package.json +2 -1
- package/templates/minimal-web/tsconfig.json +3 -1
- package/templates/minimal-web/web/package.json +2 -2
- package/templates/nuxt-web/.vscode/settings.json +14 -0
- package/templates/nuxt-web/README.md +30 -0
- package/templates/nuxt-web/forge.config.ts +3 -0
- package/templates/nuxt-web/package.json +33 -0
- package/templates/nuxt-web/src/actions/logNoteCreated.ts +11 -0
- package/templates/nuxt-web/src/commands/createNote.ts +26 -0
- package/templates/nuxt-web/src/forge/schema.ts +12 -0
- package/templates/nuxt-web/src/policies.ts +6 -0
- package/templates/nuxt-web/src/queries/listNotes.ts +8 -0
- package/templates/nuxt-web/src/queries/liveNotes.ts +8 -0
- package/templates/nuxt-web/tsconfig.json +17 -0
- package/templates/nuxt-web/web/app.vue +67 -0
- package/templates/nuxt-web/web/components/LiveNotes.vue +89 -0
- package/templates/nuxt-web/web/components/NoteComposer.vue +100 -0
- package/templates/nuxt-web/web/composables/forge.ts +13 -0
- package/templates/nuxt-web/web/composables/useNotes.ts +24 -0
- package/templates/nuxt-web/web/nuxt.config.ts +11 -0
- package/templates/nuxt-web/web/package.json +17 -0
- package/templates/nuxt-web/web/plugins/forge.client.ts +10 -0
- package/templates/nuxt-web/web/plugins/forge.server.ts +10 -0
- package/templates/nuxt-web/web/server/api/forge-health.get.ts +7 -0
- package/templates/nuxt-web/web/tsconfig.json +3 -0
- package/src/forge/_generated/actionSubscriptions.json +0 -2
- package/src/forge/_generated/actionSubscriptions.ts +0 -10
- package/src/forge/_generated/agentAdapterManifest.json +0 -2
- package/src/forge/_generated/agentAdapterManifest.ts +0 -73
- package/src/forge/_generated/agentContract.json +0 -2
- package/src/forge/_generated/agentContract.ts +0 -7829
- package/src/forge/_generated/agentQuickstart.md +0 -34
- package/src/forge/_generated/agentTools.json +0 -2
- package/src/forge/_generated/agentTools.md +0 -16
- package/src/forge/_generated/agentTools.ts +0 -12
- package/src/forge/_generated/aiContext.ts +0 -125
- package/src/forge/_generated/aiModels.json +0 -2
- package/src/forge/_generated/aiModels.ts +0 -51
- package/src/forge/_generated/aiProviders.json +0 -2
- package/src/forge/_generated/aiProviders.ts +0 -23
- package/src/forge/_generated/aiRegistry.json +0 -2
- package/src/forge/_generated/aiRegistry.ts +0 -31
- package/src/forge/_generated/api.json +0 -2
- package/src/forge/_generated/api.ts +0 -8
- package/src/forge/_generated/appGraph.json +0 -2
- package/src/forge/_generated/appGraph.ts +0 -14775
- package/src/forge/_generated/appMap.md +0 -55
- package/src/forge/_generated/artifactManifest.json +0 -2
- package/src/forge/_generated/artifactManifest.ts +0 -7
- package/src/forge/_generated/authClaims.json +0 -2
- package/src/forge/_generated/authClaims.ts +0 -13
- package/src/forge/_generated/authConfig.json +0 -2
- package/src/forge/_generated/authConfig.ts +0 -17
- package/src/forge/_generated/authContext.ts +0 -23
- package/src/forge/_generated/authRegistry.json +0 -2
- package/src/forge/_generated/authRegistry.ts +0 -25
- package/src/forge/_generated/buildInfo.json +0 -2
- package/src/forge/_generated/buildInfo.ts +0 -9
- package/src/forge/_generated/capabilityMap.json +0 -2
- package/src/forge/_generated/capabilityMap.md +0 -15
- package/src/forge/_generated/capabilityMap.ts +0 -17
- package/src/forge/_generated/client.ts +0 -282
- package/src/forge/_generated/clientApi.ts +0 -9
- package/src/forge/_generated/clientManifest.json +0 -2
- package/src/forge/_generated/clientManifest.ts +0 -39
- package/src/forge/_generated/clientTypes.ts +0 -78
- package/src/forge/_generated/configRegistry.json +0 -2
- package/src/forge/_generated/configRegistry.ts +0 -4
- package/src/forge/_generated/dataGraph.json +0 -2
- package/src/forge/_generated/dataGraph.ts +0 -8
- package/src/forge/_generated/db.json +0 -2
- package/src/forge/_generated/db.ts +0 -2
- package/src/forge/_generated/dbSecurityManifest.json +0 -2
- package/src/forge/_generated/dbSecurityManifest.ts +0 -15
- package/src/forge/_generated/dbSessionContext.json +0 -2
- package/src/forge/_generated/dbSessionContext.ts +0 -39
- package/src/forge/_generated/deployManifest.json +0 -2
- package/src/forge/_generated/deployManifest.ts +0 -14
- package/src/forge/_generated/devManifest.json +0 -2
- package/src/forge/_generated/devManifest.ts +0 -62
- package/src/forge/_generated/envSchema.json +0 -2
- package/src/forge/_generated/envSchema.ts +0 -59
- package/src/forge/_generated/frontendGraph.json +0 -2
- package/src/forge/_generated/frontendGraph.ts +0 -27
- package/src/forge/_generated/importGuards.json +0 -2
- package/src/forge/_generated/importGuards.ts +0 -686
- package/src/forge/_generated/index.ts +0 -68
- package/src/forge/_generated/liveProductionManifest.json +0 -2
- package/src/forge/_generated/liveProductionManifest.ts +0 -23
- package/src/forge/_generated/liveProtocol.json +0 -2
- package/src/forge/_generated/liveProtocol.ts +0 -21
- package/src/forge/_generated/liveQueryRegistry.json +0 -2
- package/src/forge/_generated/liveQueryRegistry.ts +0 -9
- package/src/forge/_generated/liveTransportConfig.json +0 -2
- package/src/forge/_generated/liveTransportConfig.ts +0 -19
- package/src/forge/_generated/makeRegistry.json +0 -2
- package/src/forge/_generated/makeRegistry.ts +0 -177
- package/src/forge/_generated/makeTemplates.json +0 -2
- package/src/forge/_generated/makeTemplates.ts +0 -66
- package/src/forge/_generated/mockMap.json +0 -2
- package/src/forge/_generated/mockMap.ts +0 -7
- package/src/forge/_generated/operationPlaybooks.md +0 -167
- package/src/forge/_generated/packageGraph.json +0 -2
- package/src/forge/_generated/packageGraph.ts +0 -249334
- package/src/forge/_generated/packageUpgradeRegistry.json +0 -2
- package/src/forge/_generated/packageUpgradeRegistry.ts +0 -15
- package/src/forge/_generated/permissionMatrix.json +0 -2
- package/src/forge/_generated/permissionMatrix.ts +0 -7
- package/src/forge/_generated/policyRegistry.json +0 -2
- package/src/forge/_generated/policyRegistry.ts +0 -11
- package/src/forge/_generated/queryRegistry.json +0 -2
- package/src/forge/_generated/queryRegistry.ts +0 -9
- package/src/forge/_generated/react.d.ts +0 -22
- package/src/forge/_generated/react.ts +0 -29
- package/src/forge/_generated/reactManifest.json +0 -2
- package/src/forge/_generated/reactManifest.ts +0 -19
- package/src/forge/_generated/rlsPolicies.json +0 -2
- package/src/forge/_generated/rlsPolicies.sql +0 -34
- package/src/forge/_generated/rlsPolicies.ts +0 -6
- package/src/forge/_generated/runtimeGraph.json +0 -2
- package/src/forge/_generated/runtimeGraph.ts +0 -8
- package/src/forge/_generated/runtimeMatrix.json +0 -2
- package/src/forge/_generated/runtimeMatrix.ts +0 -334130
- package/src/forge/_generated/runtimeRegistry.ts +0 -2
- package/src/forge/_generated/runtimeRules.md +0 -91
- package/src/forge/_generated/secretRegistry.json +0 -2
- package/src/forge/_generated/secretRegistry.ts +0 -50
- package/src/forge/_generated/secretsContext.ts +0 -11
- package/src/forge/_generated/serverApi.ts +0 -10
- package/src/forge/_generated/sourceMapManifest.json +0 -2
- package/src/forge/_generated/sourceMapManifest.ts +0 -7
- package/src/forge/_generated/sqlPlan.json +0 -2
- package/src/forge/_generated/sqlPlan.ts +0 -88
- package/src/forge/_generated/subscriptionManifest.json +0 -2
- package/src/forge/_generated/subscriptionManifest.ts +0 -7
- package/src/forge/_generated/symbolicationManifest.json +0 -2
- package/src/forge/_generated/symbolicationManifest.ts +0 -17
- package/src/forge/_generated/telemetryRegistry.json +0 -2
- package/src/forge/_generated/telemetryRegistry.ts +0 -9
- package/src/forge/_generated/telemetrySinks.json +0 -2
- package/src/forge/_generated/telemetrySinks.ts +0 -11
- package/src/forge/_generated/tenantScope.json +0 -2
- package/src/forge/_generated/tenantScope.ts +0 -8
- package/src/forge/_generated/testGraph.json +0 -2
- package/src/forge/_generated/testGraph.ts +0 -3118
- package/src/forge/_generated/testPlanRegistry.json +0 -2
- package/src/forge/_generated/testPlanRegistry.ts +0 -33
- package/src/forge/_generated/uiRoutes.json +0 -2
- package/src/forge/_generated/uiRoutes.ts +0 -16
- package/src/forge/_generated/uiScenarios.json +0 -2
- package/src/forge/_generated/uiScenarios.ts +0 -30
- package/src/forge/_generated/uiTestManifest.json +0 -2
- package/src/forge/_generated/uiTestManifest.ts +0 -27
- package/src/forge/_generated/workflowRegistry.json +0 -2
- package/src/forge/_generated/workflowRegistry.ts +0 -9
- package/src/forge/_generated/workflowSubscriptions.json +0 -2
- 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.
|
|
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
|
|
16
|
-
forge
|
|
17
|
-
forge
|
|
18
|
-
forge
|
|
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
|
|
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
|
|
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
|
|
69
|
-
forge inspect
|
|
70
|
-
forge inspect
|
|
71
|
-
forge inspect
|
|
72
|
-
forge inspect
|
|
73
|
-
forge
|
|
74
|
-
forge
|
|
75
|
-
forge deps
|
|
76
|
-
forge
|
|
77
|
-
forge
|
|
78
|
-
forge
|
|
79
|
-
forge inspect
|
|
80
|
-
forge inspect
|
|
81
|
-
forge
|
|
82
|
-
forge
|
|
83
|
-
forge
|
|
84
|
-
forge
|
|
85
|
-
forge
|
|
86
|
-
forge
|
|
87
|
-
forge
|
|
88
|
-
forge
|
|
89
|
-
forge
|
|
90
|
-
forge
|
|
91
|
-
forge
|
|
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
|
|
146
|
-
- Mount `<ForgeProvider devAuth>` in local development.
|
|
147
|
-
- Use `useQuery
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
256
|
-
forge
|
|
257
|
-
forge ai
|
|
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
|
|
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 -->
|