forgeos 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.npmignore +1 -0
- package/AGENTS.md +277 -0
- package/CHANGELOG.md +8 -0
- package/CONTRIBUTING.md +58 -0
- package/README.md +377 -0
- package/bin/forge-bun.mjs +110 -0
- package/bin/forge.mjs +19 -0
- package/package.json +96 -0
- package/packages/eslint-plugin-forge/index.ts +15 -0
- package/packages/eslint-plugin-forge/package.json +10 -0
- package/packages/eslint-plugin-forge/src/check-source.ts +95 -0
- package/packages/eslint-plugin-forge/src/load-artifacts.ts +24 -0
- package/packages/eslint-plugin-forge/src/rule-no-forge-guard-violation.ts +93 -0
- package/src/forge/_generated/actionSubscriptions.json +2 -0
- package/src/forge/_generated/actionSubscriptions.ts +10 -0
- package/src/forge/_generated/agentAdapterManifest.json +2 -0
- package/src/forge/_generated/agentAdapterManifest.ts +73 -0
- package/src/forge/_generated/agentContract.json +2 -0
- package/src/forge/_generated/agentContract.ts +912 -0
- package/src/forge/_generated/agentQuickstart.md +32 -0
- package/src/forge/_generated/aiContext.ts +59 -0
- package/src/forge/_generated/aiModels.json +2 -0
- package/src/forge/_generated/aiModels.ts +35 -0
- package/src/forge/_generated/aiProviders.json +2 -0
- package/src/forge/_generated/aiProviders.ts +23 -0
- package/src/forge/_generated/aiRegistry.json +2 -0
- package/src/forge/_generated/aiRegistry.ts +29 -0
- package/src/forge/_generated/api.json +2 -0
- package/src/forge/_generated/api.ts +8 -0
- package/src/forge/_generated/appGraph.json +2 -0
- package/src/forge/_generated/appGraph.ts +14511 -0
- package/src/forge/_generated/appMap.md +35 -0
- package/src/forge/_generated/artifactManifest.json +2 -0
- package/src/forge/_generated/artifactManifest.ts +7 -0
- package/src/forge/_generated/authClaims.json +2 -0
- package/src/forge/_generated/authClaims.ts +13 -0
- package/src/forge/_generated/authConfig.json +2 -0
- package/src/forge/_generated/authConfig.ts +17 -0
- package/src/forge/_generated/authContext.ts +23 -0
- package/src/forge/_generated/authRegistry.json +2 -0
- package/src/forge/_generated/authRegistry.ts +25 -0
- package/src/forge/_generated/buildInfo.json +2 -0
- package/src/forge/_generated/buildInfo.ts +9 -0
- package/src/forge/_generated/capabilityMap.json +2 -0
- package/src/forge/_generated/capabilityMap.md +15 -0
- package/src/forge/_generated/capabilityMap.ts +17 -0
- package/src/forge/_generated/client.ts +282 -0
- package/src/forge/_generated/clientApi.ts +9 -0
- package/src/forge/_generated/clientManifest.json +2 -0
- package/src/forge/_generated/clientManifest.ts +39 -0
- package/src/forge/_generated/clientTypes.ts +78 -0
- package/src/forge/_generated/configRegistry.json +2 -0
- package/src/forge/_generated/configRegistry.ts +4 -0
- package/src/forge/_generated/dataGraph.json +2 -0
- package/src/forge/_generated/dataGraph.ts +8 -0
- package/src/forge/_generated/db.json +2 -0
- package/src/forge/_generated/db.ts +2 -0
- package/src/forge/_generated/dbSecurityManifest.json +2 -0
- package/src/forge/_generated/dbSecurityManifest.ts +15 -0
- package/src/forge/_generated/dbSessionContext.json +2 -0
- package/src/forge/_generated/dbSessionContext.ts +39 -0
- package/src/forge/_generated/deployManifest.json +2 -0
- package/src/forge/_generated/deployManifest.ts +14 -0
- package/src/forge/_generated/devManifest.json +2 -0
- package/src/forge/_generated/devManifest.ts +47 -0
- package/src/forge/_generated/envSchema.json +2 -0
- package/src/forge/_generated/envSchema.ts +59 -0
- package/src/forge/_generated/frontendGraph.json +2 -0
- package/src/forge/_generated/frontendGraph.ts +27 -0
- package/src/forge/_generated/importGuards.json +2 -0
- package/src/forge/_generated/importGuards.ts +652 -0
- package/src/forge/_generated/index.ts +67 -0
- package/src/forge/_generated/liveProductionManifest.json +2 -0
- package/src/forge/_generated/liveProductionManifest.ts +23 -0
- package/src/forge/_generated/liveProtocol.json +2 -0
- package/src/forge/_generated/liveProtocol.ts +21 -0
- package/src/forge/_generated/liveQueryRegistry.json +2 -0
- package/src/forge/_generated/liveQueryRegistry.ts +9 -0
- package/src/forge/_generated/liveTransportConfig.json +2 -0
- package/src/forge/_generated/liveTransportConfig.ts +19 -0
- package/src/forge/_generated/makeRegistry.json +2 -0
- package/src/forge/_generated/makeRegistry.ts +163 -0
- package/src/forge/_generated/makeTemplates.json +2 -0
- package/src/forge/_generated/makeTemplates.ts +61 -0
- package/src/forge/_generated/mockMap.json +2 -0
- package/src/forge/_generated/mockMap.ts +7 -0
- package/src/forge/_generated/operationPlaybooks.md +145 -0
- package/src/forge/_generated/packageGraph.json +2 -0
- package/src/forge/_generated/packageGraph.ts +168569 -0
- package/src/forge/_generated/packageUpgradeRegistry.json +2 -0
- package/src/forge/_generated/packageUpgradeRegistry.ts +15 -0
- package/src/forge/_generated/permissionMatrix.json +2 -0
- package/src/forge/_generated/permissionMatrix.ts +7 -0
- package/src/forge/_generated/policyRegistry.json +2 -0
- package/src/forge/_generated/policyRegistry.ts +11 -0
- package/src/forge/_generated/queryRegistry.json +2 -0
- package/src/forge/_generated/queryRegistry.ts +9 -0
- package/src/forge/_generated/react.d.ts +22 -0
- package/src/forge/_generated/react.ts +29 -0
- package/src/forge/_generated/reactManifest.json +2 -0
- package/src/forge/_generated/reactManifest.ts +19 -0
- package/src/forge/_generated/releaseManifest.json +2 -0
- package/src/forge/_generated/releaseManifest.ts +25 -0
- package/src/forge/_generated/rlsPolicies.json +2 -0
- package/src/forge/_generated/rlsPolicies.sql +34 -0
- package/src/forge/_generated/rlsPolicies.ts +6 -0
- package/src/forge/_generated/runtimeGraph.json +2 -0
- package/src/forge/_generated/runtimeGraph.ts +8 -0
- package/src/forge/_generated/runtimeMatrix.json +2 -0
- package/src/forge/_generated/runtimeMatrix.ts +229125 -0
- package/src/forge/_generated/runtimeRegistry.ts +2 -0
- package/src/forge/_generated/runtimeRules.md +79 -0
- package/src/forge/_generated/secretRegistry.json +2 -0
- package/src/forge/_generated/secretRegistry.ts +50 -0
- package/src/forge/_generated/secretsContext.ts +11 -0
- package/src/forge/_generated/serverApi.ts +10 -0
- package/src/forge/_generated/sourceMapManifest.json +2 -0
- package/src/forge/_generated/sourceMapManifest.ts +7 -0
- package/src/forge/_generated/sqlPlan.json +2 -0
- package/src/forge/_generated/sqlPlan.ts +88 -0
- package/src/forge/_generated/subscriptionManifest.json +2 -0
- package/src/forge/_generated/subscriptionManifest.ts +7 -0
- package/src/forge/_generated/symbolicationManifest.json +2 -0
- package/src/forge/_generated/symbolicationManifest.ts +17 -0
- package/src/forge/_generated/telemetryRegistry.json +2 -0
- package/src/forge/_generated/telemetryRegistry.ts +9 -0
- package/src/forge/_generated/telemetrySinks.json +2 -0
- package/src/forge/_generated/telemetrySinks.ts +11 -0
- package/src/forge/_generated/tenantScope.json +2 -0
- package/src/forge/_generated/tenantScope.ts +8 -0
- package/src/forge/_generated/testGraph.json +2 -0
- package/src/forge/_generated/testGraph.ts +3054 -0
- package/src/forge/_generated/testPlanRegistry.json +2 -0
- package/src/forge/_generated/testPlanRegistry.ts +33 -0
- package/src/forge/_generated/uiRoutes.json +2 -0
- package/src/forge/_generated/uiRoutes.ts +16 -0
- package/src/forge/_generated/uiScenarios.json +2 -0
- package/src/forge/_generated/uiScenarios.ts +30 -0
- package/src/forge/_generated/uiTestManifest.json +2 -0
- package/src/forge/_generated/uiTestManifest.ts +27 -0
- package/src/forge/_generated/workflowRegistry.json +2 -0
- package/src/forge/_generated/workflowRegistry.ts +9 -0
- package/src/forge/_generated/workflowSubscriptions.json +2 -0
- package/src/forge/_generated/workflowSubscriptions.ts +10 -0
- package/src/forge/agent-adapters/index.ts +1002 -0
- package/src/forge/agent-adapters/types.ts +135 -0
- package/src/forge/cli/agent-contract.ts +50 -0
- package/src/forge/cli/ai.ts +148 -0
- package/src/forge/cli/auth.ts +198 -0
- package/src/forge/cli/build.ts +105 -0
- package/src/forge/cli/bun-exec.ts +4 -0
- package/src/forge/cli/commands.ts +1130 -0
- package/src/forge/cli/db.ts +316 -0
- package/src/forge/cli/deps.ts +277 -0
- package/src/forge/cli/dev.ts +529 -0
- package/src/forge/cli/doctor.ts +209 -0
- package/src/forge/cli/feature.ts +485 -0
- package/src/forge/cli/index.ts +25 -0
- package/src/forge/cli/lint-forge.ts +119 -0
- package/src/forge/cli/live.ts +179 -0
- package/src/forge/cli/main.ts +92 -0
- package/src/forge/cli/make.ts +133 -0
- package/src/forge/cli/new.ts +505 -0
- package/src/forge/cli/outbox.ts +297 -0
- package/src/forge/cli/output.ts +114 -0
- package/src/forge/cli/parse.ts +2211 -0
- package/src/forge/cli/policy.ts +204 -0
- package/src/forge/cli/query.ts +91 -0
- package/src/forge/cli/refactor.ts +221 -0
- package/src/forge/cli/release.ts +285 -0
- package/src/forge/cli/rls.ts +322 -0
- package/src/forge/cli/run.ts +76 -0
- package/src/forge/cli/secrets.ts +274 -0
- package/src/forge/cli/self-host.ts +468 -0
- package/src/forge/cli/serve.ts +93 -0
- package/src/forge/cli/telemetry.ts +219 -0
- package/src/forge/cli/verify.ts +587 -0
- package/src/forge/cli/version.ts +1 -0
- package/src/forge/cli/windows.ts +413 -0
- package/src/forge/cli/worker.ts +87 -0
- package/src/forge/cli/workflow.ts +424 -0
- package/src/forge/compiler/action-subscriptions/build.ts +116 -0
- package/src/forge/compiler/action-subscriptions/constants.ts +2 -0
- package/src/forge/compiler/action-subscriptions/index.ts +6 -0
- package/src/forge/compiler/action-subscriptions/parse.ts +6 -0
- package/src/forge/compiler/agent-contract/build.ts +1651 -0
- package/src/forge/compiler/agent-contract/types.ts +326 -0
- package/src/forge/compiler/ai-registry/build.ts +165 -0
- package/src/forge/compiler/ai-registry/constants.ts +2 -0
- package/src/forge/compiler/ai-registry/parse.ts +56 -0
- package/src/forge/compiler/api-surface/build.ts +107 -0
- package/src/forge/compiler/app-graph/build.ts +121 -0
- package/src/forge/compiler/app-graph/classify.ts +10 -0
- package/src/forge/compiler/app-graph/dup-symbol.ts +29 -0
- package/src/forge/compiler/app-graph/extract.ts +124 -0
- package/src/forge/compiler/app-graph/forge-apis.ts +29 -0
- package/src/forge/compiler/app-graph/index.ts +15 -0
- package/src/forge/compiler/app-graph/module-graph.ts +320 -0
- package/src/forge/compiler/app-graph/parser.ts +119 -0
- package/src/forge/compiler/app-graph/symbols.ts +48 -0
- package/src/forge/compiler/app-graph/tsconfig-hash.ts +62 -0
- package/src/forge/compiler/app-graph/types.ts +43 -0
- package/src/forge/compiler/app-graph/versions.ts +14 -0
- package/src/forge/compiler/cache/index.ts +17 -0
- package/src/forge/compiler/cache/key.ts +46 -0
- package/src/forge/compiler/cache/scheduler.ts +72 -0
- package/src/forge/compiler/cache/store.ts +78 -0
- package/src/forge/compiler/classifier/capabilities.ts +78 -0
- package/src/forge/compiler/classifier/classify.ts +113 -0
- package/src/forge/compiler/classifier/contexts.ts +188 -0
- package/src/forge/compiler/classifier/index.ts +18 -0
- package/src/forge/compiler/classifier/runtime-matrix.ts +45 -0
- package/src/forge/compiler/classifier/secrets.ts +41 -0
- package/src/forge/compiler/classifier/signals.ts +129 -0
- package/src/forge/compiler/client-sdk/build-manifest.ts +151 -0
- package/src/forge/compiler/client-sdk/render-client.ts +432 -0
- package/src/forge/compiler/data-graph/build.ts +131 -0
- package/src/forge/compiler/data-graph/constants.ts +5 -0
- package/src/forge/compiler/data-graph/index.ts +6 -0
- package/src/forge/compiler/data-graph/parse.ts +176 -0
- package/src/forge/compiler/data-graph/rls/build.ts +222 -0
- package/src/forge/compiler/data-graph/rls/types.ts +62 -0
- package/src/forge/compiler/data-graph/sql/ddl.ts +390 -0
- package/src/forge/compiler/data-graph/sql/naming.ts +10 -0
- package/src/forge/compiler/data-graph/sql/serialize.ts +85 -0
- package/src/forge/compiler/data-graph/sql/types.ts +37 -0
- package/src/forge/compiler/dev-manifest/build.ts +170 -0
- package/src/forge/compiler/dev-manifest/constants.ts +5 -0
- package/src/forge/compiler/diagnostics/codes.ts +611 -0
- package/src/forge/compiler/diagnostics/create.ts +245 -0
- package/src/forge/compiler/diagnostics/index.ts +55 -0
- package/src/forge/compiler/emitter/artifact-kind.ts +14 -0
- package/src/forge/compiler/emitter/barrel.ts +44 -0
- package/src/forge/compiler/emitter/constants.ts +7 -0
- package/src/forge/compiler/emitter/emit.ts +237 -0
- package/src/forge/compiler/emitter/index.ts +24 -0
- package/src/forge/compiler/emitter/lock.ts +62 -0
- package/src/forge/compiler/emitter/render.ts +73 -0
- package/src/forge/compiler/emitter/write.ts +35 -0
- package/src/forge/compiler/frontend-graph/build.ts +495 -0
- package/src/forge/compiler/fs/index.ts +23 -0
- package/src/forge/compiler/fs/memory.ts +233 -0
- package/src/forge/compiler/fs/node.ts +139 -0
- package/src/forge/compiler/fs/profile.ts +108 -0
- package/src/forge/compiler/fs/types.ts +52 -0
- package/src/forge/compiler/guards/artifacts.ts +96 -0
- package/src/forge/compiler/guards/check-ai-usage.ts +98 -0
- package/src/forge/compiler/guards/check-import-guards.ts +106 -0
- package/src/forge/compiler/guards/check-process-env.ts +98 -0
- package/src/forge/compiler/guards/check-query-usage.ts +76 -0
- package/src/forge/compiler/guards/index.ts +11 -0
- package/src/forge/compiler/guards/propagate-contexts.ts +57 -0
- package/src/forge/compiler/index.ts +17 -0
- package/src/forge/compiler/integration/add.ts +496 -0
- package/src/forge/compiler/integration/index.ts +17 -0
- package/src/forge/compiler/integration/plan.ts +283 -0
- package/src/forge/compiler/integration/render.ts +189 -0
- package/src/forge/compiler/integration/snapshot.ts +52 -0
- package/src/forge/compiler/integration/templates/ai.ts +131 -0
- package/src/forge/compiler/integration/templates/index.ts +8 -0
- package/src/forge/compiler/integration/templates/posthog.ts +145 -0
- package/src/forge/compiler/integration/templates/render.ts +113 -0
- package/src/forge/compiler/integration/templates/sentry.ts +151 -0
- package/src/forge/compiler/integration/templates/stripe.ts +109 -0
- package/src/forge/compiler/integration/templates/types.ts +14 -0
- package/src/forge/compiler/integration/templates/zod.ts +55 -0
- package/src/forge/compiler/live-production/types.ts +122 -0
- package/src/forge/compiler/live-query-registry/build.ts +150 -0
- package/src/forge/compiler/live-query-registry/constants.ts +2 -0
- package/src/forge/compiler/make-registry/build.ts +179 -0
- package/src/forge/compiler/orchestrator/discover.ts +214 -0
- package/src/forge/compiler/orchestrator/fast-check.ts +117 -0
- package/src/forge/compiler/orchestrator/generate-lock.ts +138 -0
- package/src/forge/compiler/orchestrator/guards.ts +5 -0
- package/src/forge/compiler/orchestrator/index.ts +27 -0
- package/src/forge/compiler/orchestrator/manifest-hashes.ts +21 -0
- package/src/forge/compiler/orchestrator/manifest.ts +92 -0
- package/src/forge/compiler/orchestrator/orphans.ts +51 -0
- package/src/forge/compiler/orchestrator/plan.ts +876 -0
- package/src/forge/compiler/orchestrator/profile.ts +36 -0
- package/src/forge/compiler/orchestrator/run.ts +277 -0
- package/src/forge/compiler/orchestrator/serialize.ts +886 -0
- package/src/forge/compiler/orchestrator/session.ts +96 -0
- package/src/forge/compiler/orchestrator/types.ts +31 -0
- package/src/forge/compiler/orchestrator/verify.ts +38 -0
- package/src/forge/compiler/orchestrator/workspace-index.ts +154 -0
- package/src/forge/compiler/package-graph/capabilities-stub.ts +33 -0
- package/src/forge/compiler/package-graph/checksum.ts +97 -0
- package/src/forge/compiler/package-graph/compiler.ts +392 -0
- package/src/forge/compiler/package-graph/constants.ts +4 -0
- package/src/forge/compiler/package-graph/dts-extractor.ts +142 -0
- package/src/forge/compiler/package-graph/exports-discovery.ts +84 -0
- package/src/forge/compiler/package-graph/extract-dts.ts +32 -0
- package/src/forge/compiler/package-graph/index.ts +33 -0
- package/src/forge/compiler/package-graph/jsdoc.ts +62 -0
- package/src/forge/compiler/package-graph/read-file.ts +21 -0
- package/src/forge/compiler/package-graph/resolve.ts +127 -0
- package/src/forge/compiler/package-manager/adapter.ts +237 -0
- package/src/forge/compiler/package-manager/bun-executable.ts +92 -0
- package/src/forge/compiler/package-manager/commands.ts +47 -0
- package/src/forge/compiler/package-manager/detect.ts +79 -0
- package/src/forge/compiler/package-manager/executor.ts +117 -0
- package/src/forge/compiler/package-manager/index.ts +22 -0
- package/src/forge/compiler/package-manager/parse-spec.ts +16 -0
- package/src/forge/compiler/package-manager/version.ts +27 -0
- package/src/forge/compiler/package-upgrades/apply.ts +195 -0
- package/src/forge/compiler/package-upgrades/comparator.ts +181 -0
- package/src/forge/compiler/package-upgrades/impact.ts +139 -0
- package/src/forge/compiler/package-upgrades/markdown.ts +97 -0
- package/src/forge/compiler/package-upgrades/planner.ts +532 -0
- package/src/forge/compiler/package-upgrades/risk.ts +208 -0
- package/src/forge/compiler/package-upgrades/types.ts +174 -0
- package/src/forge/compiler/policy-registry/build.ts +266 -0
- package/src/forge/compiler/policy-registry/constants.ts +2 -0
- package/src/forge/compiler/policy-registry/parse.ts +81 -0
- package/src/forge/compiler/primitives/compare.ts +26 -0
- package/src/forge/compiler/primitives/hash.ts +40 -0
- package/src/forge/compiler/primitives/header.ts +45 -0
- package/src/forge/compiler/primitives/index.ts +45 -0
- package/src/forge/compiler/primitives/paths.ts +24 -0
- package/src/forge/compiler/primitives/result.ts +164 -0
- package/src/forge/compiler/primitives/serialize.ts +66 -0
- package/src/forge/compiler/primitives/sort.ts +87 -0
- package/src/forge/compiler/query-registry/build.ts +114 -0
- package/src/forge/compiler/query-registry/constants.ts +2 -0
- package/src/forge/compiler/recipes/definitions.ts +289 -0
- package/src/forge/compiler/recipes/helpers.ts +37 -0
- package/src/forge/compiler/recipes/index.ts +21 -0
- package/src/forge/compiler/recipes/registry.ts +102 -0
- package/src/forge/compiler/release/build.ts +100 -0
- package/src/forge/compiler/release/types.ts +119 -0
- package/src/forge/compiler/runtime-graph/build.ts +137 -0
- package/src/forge/compiler/runtime-graph/constants.ts +5 -0
- package/src/forge/compiler/runtime-graph/index.ts +5 -0
- package/src/forge/compiler/sandbox/artifact-sanitize.ts +26 -0
- package/src/forge/compiler/sandbox/backends/child.ts +123 -0
- package/src/forge/compiler/sandbox/backends/docker.ts +173 -0
- package/src/forge/compiler/sandbox/index.ts +51 -0
- package/src/forge/compiler/sandbox/inspect.ts +143 -0
- package/src/forge/compiler/sandbox/inspector-entry.ts +115 -0
- package/src/forge/compiler/sandbox/limits.ts +31 -0
- package/src/forge/compiler/sandbox/scrub-env.ts +60 -0
- package/src/forge/compiler/sandbox/secret-scan.ts +54 -0
- package/src/forge/compiler/sandbox/serialize.ts +106 -0
- package/src/forge/compiler/sandbox/types.ts +7 -0
- package/src/forge/compiler/secret-registry/build.ts +123 -0
- package/src/forge/compiler/telemetry-registry/build.ts +89 -0
- package/src/forge/compiler/telemetry-registry/constants.ts +2 -0
- package/src/forge/compiler/telemetry-registry/parse.ts +13 -0
- package/src/forge/compiler/test-graph/build.ts +277 -0
- package/src/forge/compiler/types/action-subscriptions.ts +19 -0
- package/src/forge/compiler/types/ai-registry.ts +33 -0
- package/src/forge/compiler/types/app-graph.ts +80 -0
- package/src/forge/compiler/types/capability.ts +29 -0
- package/src/forge/compiler/types/classification.ts +9 -0
- package/src/forge/compiler/types/cli.ts +159 -0
- package/src/forge/compiler/types/data-graph.ts +24 -0
- package/src/forge/compiler/types/dev-manifest.ts +41 -0
- package/src/forge/compiler/types/diagnostic.ts +12 -0
- package/src/forge/compiler/types/emit.ts +25 -0
- package/src/forge/compiler/types/frontend-graph.ts +81 -0
- package/src/forge/compiler/types/import-guards.ts +19 -0
- package/src/forge/compiler/types/index.ts +98 -0
- package/src/forge/compiler/types/integration.ts +25 -0
- package/src/forge/compiler/types/json.ts +3 -0
- package/src/forge/compiler/types/live-query-registry.ts +32 -0
- package/src/forge/compiler/types/lock.ts +37 -0
- package/src/forge/compiler/types/package-graph.ts +84 -0
- package/src/forge/compiler/types/policy-registry.ts +69 -0
- package/src/forge/compiler/types/query-registry.ts +18 -0
- package/src/forge/compiler/types/runtime-graph.ts +30 -0
- package/src/forge/compiler/types/runtime-matrix.ts +16 -0
- package/src/forge/compiler/types/runtime.ts +30 -0
- package/src/forge/compiler/types/sandbox.ts +24 -0
- package/src/forge/compiler/types/secret-registry.ts +38 -0
- package/src/forge/compiler/types/telemetry-registry.ts +26 -0
- package/src/forge/compiler/types/test-graph.ts +45 -0
- package/src/forge/compiler/types/workflow-registry.ts +42 -0
- package/src/forge/compiler/workflow-registry/build.ts +180 -0
- package/src/forge/compiler/workflow-registry/constants.ts +2 -0
- package/src/forge/compiler/workflow-registry/index.ts +5 -0
- package/src/forge/compiler/workflow-registry/parse.ts +19 -0
- package/src/forge/dev/server.ts +1379 -0
- package/src/forge/dev/types.ts +49 -0
- package/src/forge/dev/watch.ts +109 -0
- package/src/forge/dev-console/cycle.ts +652 -0
- package/src/forge/dev-console/types.ts +99 -0
- package/src/forge/feature/compiler.ts +656 -0
- package/src/forge/feature/examples.ts +125 -0
- package/src/forge/feature/types.ts +177 -0
- package/src/forge/impact/index.ts +1160 -0
- package/src/forge/impact/types.ts +151 -0
- package/src/forge/intent/index.ts +490 -0
- package/src/forge/intent/types.ts +73 -0
- package/src/forge/make/fields.ts +146 -0
- package/src/forge/make/index.ts +1101 -0
- package/src/forge/make/naming.ts +42 -0
- package/src/forge/make/templates.ts +525 -0
- package/src/forge/make/types.ts +151 -0
- package/src/forge/platform/module.ts +20 -0
- package/src/forge/policy.ts +1 -0
- package/src/forge/react/index.ts +418 -0
- package/src/forge/refactor/index.ts +1936 -0
- package/src/forge/refactor/text-utils.ts +34 -0
- package/src/forge/refactor/types.ts +191 -0
- package/src/forge/refactor/workspace-fs.ts +171 -0
- package/src/forge/repair/index.ts +656 -0
- package/src/forge/repair/rules/index.ts +476 -0
- package/src/forge/repair/types.ts +175 -0
- package/src/forge/review/index.ts +992 -0
- package/src/forge/review/types.ts +196 -0
- package/src/forge/runtime/ai/check.ts +86 -0
- package/src/forge/runtime/ai/context.ts +394 -0
- package/src/forge/runtime/ai/cost-estimator.ts +41 -0
- package/src/forge/runtime/ai/mock.ts +49 -0
- package/src/forge/runtime/ai/providers.ts +78 -0
- package/src/forge/runtime/ai/state.ts +17 -0
- package/src/forge/runtime/ai/types.ts +67 -0
- package/src/forge/runtime/auth/authenticate.ts +58 -0
- package/src/forge/runtime/auth/claims.ts +119 -0
- package/src/forge/runtime/auth/config.ts +148 -0
- package/src/forge/runtime/auth/errors.ts +45 -0
- package/src/forge/runtime/auth/evaluate.ts +126 -0
- package/src/forge/runtime/auth/resolve.ts +74 -0
- package/src/forge/runtime/auth/types.ts +87 -0
- package/src/forge/runtime/auth/verifier.ts +138 -0
- package/src/forge/runtime/context/create-context.ts +204 -0
- package/src/forge/runtime/context/create-query-context.ts +34 -0
- package/src/forge/runtime/db/adapter.ts +31 -0
- package/src/forge/runtime/db/factory.ts +83 -0
- package/src/forge/runtime/db/generated-client.ts +294 -0
- package/src/forge/runtime/db/memory-adapter.ts +706 -0
- package/src/forge/runtime/db/migrate.ts +132 -0
- package/src/forge/runtime/db/outbox.ts +54 -0
- package/src/forge/runtime/db/pglite-adapter.ts +51 -0
- package/src/forge/runtime/db/postgres-adapter.ts +112 -0
- package/src/forge/runtime/db/read-only-client.ts +97 -0
- package/src/forge/runtime/db/session-context.ts +62 -0
- package/src/forge/runtime/executor.ts +446 -0
- package/src/forge/runtime/live/dependency-tracker.ts +57 -0
- package/src/forge/runtime/live/invalidation-log.ts +189 -0
- package/src/forge/runtime/live/live-query-runner.ts +267 -0
- package/src/forge/runtime/live/registry.ts +28 -0
- package/src/forge/runtime/live/sse.ts +75 -0
- package/src/forge/runtime/live/subscription-manager.ts +443 -0
- package/src/forge/runtime/live/types.ts +143 -0
- package/src/forge/runtime/outbox/claim.ts +153 -0
- package/src/forge/runtime/outbox/process.ts +298 -0
- package/src/forge/runtime/outbox/retry.ts +8 -0
- package/src/forge/runtime/outbox/subscriptions.ts +33 -0
- package/src/forge/runtime/outbox/types.ts +69 -0
- package/src/forge/runtime/policy/check.ts +157 -0
- package/src/forge/runtime/policy/load.ts +55 -0
- package/src/forge/runtime/query/registry.ts +19 -0
- package/src/forge/runtime/query/run-query.ts +347 -0
- package/src/forge/runtime/release/runtime.ts +322 -0
- package/src/forge/runtime/release/symbolicate.ts +175 -0
- package/src/forge/runtime/runner/command-transaction.ts +193 -0
- package/src/forge/runtime/runner/run-entry.ts +226 -0
- package/src/forge/runtime/secrets/check.ts +78 -0
- package/src/forge/runtime/secrets/create-context.ts +138 -0
- package/src/forge/runtime/secrets/env-loader.ts +94 -0
- package/src/forge/runtime/secrets/runtime-bundle.ts +47 -0
- package/src/forge/runtime/secrets/types.ts +31 -0
- package/src/forge/runtime/telemetry/buffer.ts +87 -0
- package/src/forge/runtime/telemetry/context.ts +192 -0
- package/src/forge/runtime/telemetry/correlation.ts +13 -0
- package/src/forge/runtime/telemetry/flush.ts +190 -0
- package/src/forge/runtime/telemetry/process.ts +20 -0
- package/src/forge/runtime/telemetry/scrubber.ts +115 -0
- package/src/forge/runtime/telemetry/sinks/local-jsonl.ts +39 -0
- package/src/forge/runtime/telemetry/sinks/posthog.ts +64 -0
- package/src/forge/runtime/telemetry/sinks/sentry.ts +60 -0
- package/src/forge/runtime/telemetry/spans.ts +58 -0
- package/src/forge/runtime/telemetry/types.ts +64 -0
- package/src/forge/runtime/workflows/cancel.ts +26 -0
- package/src/forge/runtime/workflows/create-run.ts +98 -0
- package/src/forge/runtime/workflows/process-run.ts +182 -0
- package/src/forge/runtime/workflows/process-step.ts +190 -0
- package/src/forge/runtime/workflows/process.ts +260 -0
- package/src/forge/runtime/workflows/registry.ts +51 -0
- package/src/forge/runtime/workflows/resolve-step.ts +46 -0
- package/src/forge/runtime/workflows/retry-run.ts +44 -0
- package/src/forge/runtime/workflows/retry.ts +8 -0
- package/src/forge/runtime/workflows/sanitize.ts +19 -0
- package/src/forge/runtime/workflows/start-from-outbox.ts +71 -0
- package/src/forge/runtime/workflows/types.ts +77 -0
- package/src/forge/server.ts +96 -0
- package/src/forge/ui/index.ts +770 -0
- package/src/forge/ui/types.ts +191 -0
- package/templates/b2b-support-web/.env.example +22 -0
- package/templates/b2b-support-web/.vscode/settings.json +14 -0
- package/templates/b2b-support-web/AGENTS.md +108 -0
- package/templates/b2b-support-web/README.md +48 -0
- package/templates/b2b-support-web/forge.config.ts +3 -0
- package/templates/b2b-support-web/package.json +34 -0
- package/templates/b2b-support-web/src/actions/captureTicketCreated.ts +14 -0
- package/templates/b2b-support-web/src/commands/closeTicket.ts +20 -0
- package/templates/b2b-support-web/src/commands/createTicket.ts +47 -0
- package/templates/b2b-support-web/src/commands/manageBilling.ts +9 -0
- package/templates/b2b-support-web/src/forge/schema.ts +35 -0
- package/templates/b2b-support-web/src/policies.ts +9 -0
- package/templates/b2b-support-web/src/queries/getTicket.ts +6 -0
- package/templates/b2b-support-web/src/queries/listTickets.ts +6 -0
- package/templates/b2b-support-web/src/queries/liveTickets.ts +9 -0
- package/templates/b2b-support-web/src/workflows/triageTicketWorkflow.ts +64 -0
- package/templates/b2b-support-web/tsconfig.json +14 -0
- package/templates/b2b-support-web/web/app/globals.css +77 -0
- package/templates/b2b-support-web/web/app/layout.tsx +13 -0
- package/templates/b2b-support-web/web/app/page.tsx +13 -0
- package/templates/b2b-support-web/web/app/providers.tsx +21 -0
- package/templates/b2b-support-web/web/app/tickets/page.tsx +21 -0
- package/templates/b2b-support-web/web/components/CreateTicketForm.tsx +43 -0
- package/templates/b2b-support-web/web/components/PolicyDeniedDemo.tsx +31 -0
- package/templates/b2b-support-web/web/components/TicketList.tsx +52 -0
- package/templates/b2b-support-web/web/components/TraceDetails.tsx +18 -0
- package/templates/b2b-support-web/web/components/TriageStatus.tsx +13 -0
- package/templates/b2b-support-web/web/lib/forge.ts +13 -0
- package/templates/b2b-support-web/web/next-env.d.ts +5 -0
- package/templates/b2b-support-web/web/next.config.ts +8 -0
- package/templates/b2b-support-web/web/package.json +21 -0
- package/templates/b2b-support-web/web/tsconfig.json +30 -0
- package/templates/minimal-web/.vscode/settings.json +14 -0
- package/templates/minimal-web/README.md +21 -0
- package/templates/minimal-web/forge.config.ts +3 -0
- package/templates/minimal-web/package.json +32 -0
- package/templates/minimal-web/src/actions/logNoteCreated.ts +11 -0
- package/templates/minimal-web/src/commands/createNote.ts +26 -0
- package/templates/minimal-web/src/forge/schema.ts +12 -0
- package/templates/minimal-web/src/policies.ts +6 -0
- package/templates/minimal-web/src/queries/listNotes.ts +8 -0
- package/templates/minimal-web/src/queries/liveNotes.ts +8 -0
- package/templates/minimal-web/tsconfig.json +15 -0
- package/templates/minimal-web/web/index.html +12 -0
- package/templates/minimal-web/web/package.json +21 -0
- package/templates/minimal-web/web/src/App.tsx +89 -0
- package/templates/minimal-web/web/src/lib/forge.ts +13 -0
- package/templates/minimal-web/web/src/main.tsx +13 -0
- package/templates/minimal-web/web/src/styles.css +156 -0
- package/templates/minimal-web/web/tsconfig.json +18 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=6c20676780d2128492bff9f4ba9f149b0cb26d7bf18f682568c96e4ef5a91a56 content=b122f97bc3d917dbc7dc48156b07b134d75446ffdcec0e1b46c8332ff9a53508
|
|
2
|
+
export * from "./actionSubscriptions";
|
|
3
|
+
export * from "./agentAdapterManifest";
|
|
4
|
+
export * from "./agentContract";
|
|
5
|
+
export * from "./aiContext";
|
|
6
|
+
export * from "./aiModels";
|
|
7
|
+
export * from "./aiProviders";
|
|
8
|
+
export * from "./aiRegistry";
|
|
9
|
+
export * from "./api";
|
|
10
|
+
export * from "./appGraph";
|
|
11
|
+
export * from "./artifactManifest";
|
|
12
|
+
export * from "./authClaims";
|
|
13
|
+
export * from "./authConfig";
|
|
14
|
+
export * from "./authContext";
|
|
15
|
+
export * from "./authRegistry";
|
|
16
|
+
export * from "./buildInfo";
|
|
17
|
+
export * from "./capabilityMap";
|
|
18
|
+
export * from "./client";
|
|
19
|
+
export * from "./clientApi";
|
|
20
|
+
export * from "./clientManifest";
|
|
21
|
+
export * from "./clientTypes";
|
|
22
|
+
export * from "./configRegistry";
|
|
23
|
+
export * from "./dataGraph";
|
|
24
|
+
export * from "./db";
|
|
25
|
+
export * from "./dbSecurityManifest";
|
|
26
|
+
export * from "./dbSessionContext";
|
|
27
|
+
export * from "./deployManifest";
|
|
28
|
+
export * from "./devManifest";
|
|
29
|
+
export * from "./envSchema";
|
|
30
|
+
export * from "./frontendGraph";
|
|
31
|
+
export * from "./importGuards";
|
|
32
|
+
export * from "./liveProductionManifest";
|
|
33
|
+
export * from "./liveProtocol";
|
|
34
|
+
export * from "./liveQueryRegistry";
|
|
35
|
+
export * from "./liveTransportConfig";
|
|
36
|
+
export * from "./makeRegistry";
|
|
37
|
+
export * from "./makeTemplates";
|
|
38
|
+
export * from "./mockMap";
|
|
39
|
+
export * from "./packageGraph";
|
|
40
|
+
export * from "./packageUpgradeRegistry";
|
|
41
|
+
export * from "./permissionMatrix";
|
|
42
|
+
export * from "./policyRegistry";
|
|
43
|
+
export * from "./queryRegistry";
|
|
44
|
+
export * from "./react";
|
|
45
|
+
export * from "./reactManifest";
|
|
46
|
+
export * from "./releaseManifest";
|
|
47
|
+
export * from "./rlsPolicies";
|
|
48
|
+
export * from "./runtimeGraph";
|
|
49
|
+
export * from "./runtimeMatrix";
|
|
50
|
+
export * from "./runtimeRegistry";
|
|
51
|
+
export * from "./secretRegistry";
|
|
52
|
+
export * from "./secretsContext";
|
|
53
|
+
export * from "./serverApi";
|
|
54
|
+
export * from "./sourceMapManifest";
|
|
55
|
+
export * from "./sqlPlan";
|
|
56
|
+
export * from "./subscriptionManifest";
|
|
57
|
+
export * from "./symbolicationManifest";
|
|
58
|
+
export * from "./telemetryRegistry";
|
|
59
|
+
export * from "./telemetrySinks";
|
|
60
|
+
export * from "./tenantScope";
|
|
61
|
+
export * from "./testGraph";
|
|
62
|
+
export * from "./testPlanRegistry";
|
|
63
|
+
export * from "./uiRoutes";
|
|
64
|
+
export * from "./uiScenarios";
|
|
65
|
+
export * from "./uiTestManifest";
|
|
66
|
+
export * from "./workflowRegistry";
|
|
67
|
+
export * from "./workflowSubscriptions";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=688a8f80ae64b3520539b60ed79d8f0dde426f02cd0d42dec906896865312d99 content=967f429b3fb0e3fbcef692494eb289adc5e9f1a733f54b93923473b52877be39
|
|
2
|
+
{"dependencyGranularity":"table-tenant","invalidationSource":"durable-table","limits":{"heartbeatIntervalMs":15000,"maxPendingMessagesPerSubscription":5,"maxSnapshotBytes":1000000,"maxSubscriptionsPerClient":50,"maxSubscriptionsPerTenant":500,"rerunDebounceMs":50},"liveQueries":[],"mode":"production-hardened","schemaVersion":"0.1.0","transports":["sse"],"wakeupAdapters":["postgres-notify","polling"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=688a8f80ae64b3520539b60ed79d8f0dde426f02cd0d42dec906896865312d99 content=0439047e248d49da4c0bad6c54d6accfbdd68738a961a52f373ffb440742f841
|
|
2
|
+
export const liveProductionManifest = {
|
|
3
|
+
"dependencyGranularity": "table-tenant",
|
|
4
|
+
"invalidationSource": "durable-table",
|
|
5
|
+
"limits": {
|
|
6
|
+
"heartbeatIntervalMs": 15000,
|
|
7
|
+
"maxPendingMessagesPerSubscription": 5,
|
|
8
|
+
"maxSnapshotBytes": 1000000,
|
|
9
|
+
"maxSubscriptionsPerClient": 50,
|
|
10
|
+
"maxSubscriptionsPerTenant": 500,
|
|
11
|
+
"rerunDebounceMs": 50
|
|
12
|
+
},
|
|
13
|
+
"liveQueries": [],
|
|
14
|
+
"mode": "production-hardened",
|
|
15
|
+
"schemaVersion": "0.1.0",
|
|
16
|
+
"transports": [
|
|
17
|
+
"sse"
|
|
18
|
+
],
|
|
19
|
+
"wakeupAdapters": [
|
|
20
|
+
"postgres-notify",
|
|
21
|
+
"polling"
|
|
22
|
+
]
|
|
23
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=688a8f80ae64b3520539b60ed79d8f0dde426f02cd0d42dec906896865312d99 content=2547500ca2a41f806de71a91fb967c7d242fadc9f669a903f44d48ae6447fb66
|
|
2
|
+
{"messages":["hello","snapshot","error","heartbeat","reset"],"protocolVersion":"0.1.0","resume":{"queryParam":"lastRevision","sseLastEventId":true},"schemaVersion":"0.1.0","snapshot":{"fullSnapshotOnly":true,"includesReleaseId":true,"includesRevision":true}}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=688a8f80ae64b3520539b60ed79d8f0dde426f02cd0d42dec906896865312d99 content=9893ba2b2189291fef35ab6ea0abea261f01415a078c25760333a00933c313ed
|
|
2
|
+
export const liveProtocol = {
|
|
3
|
+
"messages": [
|
|
4
|
+
"hello",
|
|
5
|
+
"snapshot",
|
|
6
|
+
"error",
|
|
7
|
+
"heartbeat",
|
|
8
|
+
"reset"
|
|
9
|
+
],
|
|
10
|
+
"protocolVersion": "0.1.0",
|
|
11
|
+
"resume": {
|
|
12
|
+
"queryParam": "lastRevision",
|
|
13
|
+
"sseLastEventId": true
|
|
14
|
+
},
|
|
15
|
+
"schemaVersion": "0.1.0",
|
|
16
|
+
"snapshot": {
|
|
17
|
+
"fullSnapshotOnly": true,
|
|
18
|
+
"includesReleaseId": true,
|
|
19
|
+
"includesRevision": true
|
|
20
|
+
}
|
|
21
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=eb8d78e749f083957f69f7f316aa4efc3faf5ccd81ff63e3cf32bf7fb7f705ac content=6c163d104c50a1c2df29828caf0f0295cb55bdfcb73258d203b2c3e510c20390
|
|
2
|
+
{"analyzerVersion":"0.1.0","diagnostics":[],"generatorVersion":"0.0.0","inputHash":"dd356f5b886d56bc39e3633c018d348746ab64c4d5e7778b0ba47687e421f568","liveQueries":[],"schemaVersion":"0.1.0"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=eb8d78e749f083957f69f7f316aa4efc3faf5ccd81ff63e3cf32bf7fb7f705ac content=7ffa554973eba85079d4ab97e057cf5e78aa35b527431dd59bd6b9b886da45a1
|
|
2
|
+
export const liveQueryRegistry = {
|
|
3
|
+
"analyzerVersion": "0.1.0",
|
|
4
|
+
"diagnostics": [],
|
|
5
|
+
"generatorVersion": "0.0.0",
|
|
6
|
+
"inputHash": "dd356f5b886d56bc39e3633c018d348746ab64c4d5e7778b0ba47687e421f568",
|
|
7
|
+
"liveQueries": [],
|
|
8
|
+
"schemaVersion": "0.1.0"
|
|
9
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=688a8f80ae64b3520539b60ed79d8f0dde426f02cd0d42dec906896865312d99 content=b8074453717d4c465dd2928bfd4ed51ecbf4d9ce9bff5d20e63c8a026f4b1cc8
|
|
2
|
+
{"defaultTransport":"sse","schemaVersion":"0.1.0","selfHostEnv":{"FORGE_LIVE_HEARTBEAT_MS":"15000","FORGE_LIVE_INVALIDATION":"polling,postgres-notify","FORGE_LIVE_POLL_INTERVAL_MS":"1000","FORGE_LIVE_TRANSPORT":"sse"},"transports":{"sse":{"endpoint":"/live/:name","heartbeat":true,"multiplexEndpoint":"/live/stream","oneConnectionPerClientRecommended":true}}}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=688a8f80ae64b3520539b60ed79d8f0dde426f02cd0d42dec906896865312d99 content=9166cbf6c2ee6161ea374ec2da35d146fc04efd6f2a1ca307eb3518c4f6c2046
|
|
2
|
+
export const liveTransportConfig = {
|
|
3
|
+
"defaultTransport": "sse",
|
|
4
|
+
"schemaVersion": "0.1.0",
|
|
5
|
+
"selfHostEnv": {
|
|
6
|
+
"FORGE_LIVE_HEARTBEAT_MS": "15000",
|
|
7
|
+
"FORGE_LIVE_INVALIDATION": "polling,postgres-notify",
|
|
8
|
+
"FORGE_LIVE_POLL_INTERVAL_MS": "1000",
|
|
9
|
+
"FORGE_LIVE_TRANSPORT": "sse"
|
|
10
|
+
},
|
|
11
|
+
"transports": {
|
|
12
|
+
"sse": {
|
|
13
|
+
"endpoint": "/live/:name",
|
|
14
|
+
"heartbeat": true,
|
|
15
|
+
"multiplexEndpoint": "/live/stream",
|
|
16
|
+
"oneConnectionPerClientRecommended": true
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=caf049950405a6022290d7ace56f44ae9b4892557c40e94a08bf463799a04c24 content=6869b097473d93b65249814c121887ba2c9b9ed211a25742defd99b2e0b29392
|
|
2
|
+
{"commands":["forge make list --json","forge make explain <primitive> --json","forge make ui --framework vite --dry-run --json","forge make resource <name> --fields title:text,status:enum(open,closed) --dry-run --json","forge make resource <name> --fields title:text --with-ui --yes","forge make apply <planId>","forge make rollback <planId>"],"generatorVersion":"0.0.0","planDirectory":".forge/make-plans","primitives":[{"creates":[],"examples":["forge make table invoices --fields amount:number,status:text"],"modifies":["src/forge/schema.ts"],"name":"table","summary":"Add a schema table declaration."},{"creates":[],"examples":["forge make field invoices.status --type enum --values draft,paid"],"modifies":["src/forge/schema.ts"],"name":"field","summary":"Add a field to an existing table declaration."},{"creates":["src/policies.ts when missing"],"examples":["forge make policy invoices.read --roles owner,admin,member"],"modifies":["src/policies.ts"],"name":"policy","summary":"Add a named policy with allowed roles."},{"creates":["src/commands/<name>.ts"],"examples":["forge make command invoices.create --table invoices --policy invoices.create --emit invoice.created"],"modifies":[],"name":"command","summary":"Add a transactional command with policy and optional event emission."},{"creates":["src/queries/<name>.ts"],"examples":["forge make query invoices.list --table invoices --policy invoices.read"],"modifies":[],"name":"query","summary":"Add a read-only query."},{"creates":["src/queries/live<Name>.ts"],"examples":["forge make livequery invoices.live --table invoices --policy invoices.read"],"modifies":[],"name":"livequery","summary":"Add a read-only liveQuery for reactive clients."},{"creates":["src/actions/<name>.ts"],"examples":["forge make action captureInvoiceCreated --event invoice.created"],"modifies":[],"name":"action","summary":"Add an after-commit action subscribed to an event."},{"creates":["src/workflows/<name>.ts"],"examples":["forge make workflow invoiceWorkflow --table invoices --trigger invoice.created"],"modifies":[],"name":"workflow","summary":"Add a durable workflow triggered by an event."},{"creates":["web/components/<Component>.tsx"],"examples":["forge make component InvoiceList --table invoices"],"modifies":[],"name":"component","summary":"Add a React component that uses generated Forge client hooks."},{"creates":["web/app/<route>/page.tsx"],"examples":["forge make page invoices --table invoices --with-create-form"],"modifies":[],"name":"page","summary":"Add a minimal app page wired to generated components."},{"creates":["web/package.json","web/index.html","web/src/lib/forge.ts","web/src/main.tsx","web/src/App.tsx"],"examples":["forge make ui --framework vite --yes"],"modifies":[],"name":"ui","summary":"Add a Vite React frontend shell with ForgeProvider devAuth and a generated client bridge."},{"creates":["src/commands/*","src/queries/*","src/actions/*","web/components/*","web/app/*","tests/make-generated/*"],"examples":["forge make resource invoices --fields amount:number,status:enum(draft,paid) --with-ui --yes"],"modifies":["src/forge/schema.ts","src/policies.ts"],"name":"resource","summary":"Add schema, policies, CRUD, queries, liveQuery, optional UI, and tests."}],"schemaVersion":"0.1.0"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=caf049950405a6022290d7ace56f44ae9b4892557c40e94a08bf463799a04c24 content=983a7102a05fff669953a71b674b5e38d26dcca6c8beb120da6ea22efd5e43da
|
|
2
|
+
export const makeRegistry = {
|
|
3
|
+
"commands": [
|
|
4
|
+
"forge make list --json",
|
|
5
|
+
"forge make explain <primitive> --json",
|
|
6
|
+
"forge make ui --framework vite --dry-run --json",
|
|
7
|
+
"forge make resource <name> --fields title:text,status:enum(open,closed) --dry-run --json",
|
|
8
|
+
"forge make resource <name> --fields title:text --with-ui --yes",
|
|
9
|
+
"forge make apply <planId>",
|
|
10
|
+
"forge make rollback <planId>"
|
|
11
|
+
],
|
|
12
|
+
"generatorVersion": "0.0.0",
|
|
13
|
+
"planDirectory": ".forge/make-plans",
|
|
14
|
+
"primitives": [
|
|
15
|
+
{
|
|
16
|
+
"creates": [],
|
|
17
|
+
"examples": [
|
|
18
|
+
"forge make table invoices --fields amount:number,status:text"
|
|
19
|
+
],
|
|
20
|
+
"modifies": [
|
|
21
|
+
"src/forge/schema.ts"
|
|
22
|
+
],
|
|
23
|
+
"name": "table",
|
|
24
|
+
"summary": "Add a schema table declaration."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"creates": [],
|
|
28
|
+
"examples": [
|
|
29
|
+
"forge make field invoices.status --type enum --values draft,paid"
|
|
30
|
+
],
|
|
31
|
+
"modifies": [
|
|
32
|
+
"src/forge/schema.ts"
|
|
33
|
+
],
|
|
34
|
+
"name": "field",
|
|
35
|
+
"summary": "Add a field to an existing table declaration."
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"creates": [
|
|
39
|
+
"src/policies.ts when missing"
|
|
40
|
+
],
|
|
41
|
+
"examples": [
|
|
42
|
+
"forge make policy invoices.read --roles owner,admin,member"
|
|
43
|
+
],
|
|
44
|
+
"modifies": [
|
|
45
|
+
"src/policies.ts"
|
|
46
|
+
],
|
|
47
|
+
"name": "policy",
|
|
48
|
+
"summary": "Add a named policy with allowed roles."
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"creates": [
|
|
52
|
+
"src/commands/<name>.ts"
|
|
53
|
+
],
|
|
54
|
+
"examples": [
|
|
55
|
+
"forge make command invoices.create --table invoices --policy invoices.create --emit invoice.created"
|
|
56
|
+
],
|
|
57
|
+
"modifies": [],
|
|
58
|
+
"name": "command",
|
|
59
|
+
"summary": "Add a transactional command with policy and optional event emission."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"creates": [
|
|
63
|
+
"src/queries/<name>.ts"
|
|
64
|
+
],
|
|
65
|
+
"examples": [
|
|
66
|
+
"forge make query invoices.list --table invoices --policy invoices.read"
|
|
67
|
+
],
|
|
68
|
+
"modifies": [],
|
|
69
|
+
"name": "query",
|
|
70
|
+
"summary": "Add a read-only query."
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"creates": [
|
|
74
|
+
"src/queries/live<Name>.ts"
|
|
75
|
+
],
|
|
76
|
+
"examples": [
|
|
77
|
+
"forge make livequery invoices.live --table invoices --policy invoices.read"
|
|
78
|
+
],
|
|
79
|
+
"modifies": [],
|
|
80
|
+
"name": "livequery",
|
|
81
|
+
"summary": "Add a read-only liveQuery for reactive clients."
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"creates": [
|
|
85
|
+
"src/actions/<name>.ts"
|
|
86
|
+
],
|
|
87
|
+
"examples": [
|
|
88
|
+
"forge make action captureInvoiceCreated --event invoice.created"
|
|
89
|
+
],
|
|
90
|
+
"modifies": [],
|
|
91
|
+
"name": "action",
|
|
92
|
+
"summary": "Add an after-commit action subscribed to an event."
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"creates": [
|
|
96
|
+
"src/workflows/<name>.ts"
|
|
97
|
+
],
|
|
98
|
+
"examples": [
|
|
99
|
+
"forge make workflow invoiceWorkflow --table invoices --trigger invoice.created"
|
|
100
|
+
],
|
|
101
|
+
"modifies": [],
|
|
102
|
+
"name": "workflow",
|
|
103
|
+
"summary": "Add a durable workflow triggered by an event."
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"creates": [
|
|
107
|
+
"web/components/<Component>.tsx"
|
|
108
|
+
],
|
|
109
|
+
"examples": [
|
|
110
|
+
"forge make component InvoiceList --table invoices"
|
|
111
|
+
],
|
|
112
|
+
"modifies": [],
|
|
113
|
+
"name": "component",
|
|
114
|
+
"summary": "Add a React component that uses generated Forge client hooks."
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"creates": [
|
|
118
|
+
"web/app/<route>/page.tsx"
|
|
119
|
+
],
|
|
120
|
+
"examples": [
|
|
121
|
+
"forge make page invoices --table invoices --with-create-form"
|
|
122
|
+
],
|
|
123
|
+
"modifies": [],
|
|
124
|
+
"name": "page",
|
|
125
|
+
"summary": "Add a minimal app page wired to generated components."
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"creates": [
|
|
129
|
+
"web/package.json",
|
|
130
|
+
"web/index.html",
|
|
131
|
+
"web/src/lib/forge.ts",
|
|
132
|
+
"web/src/main.tsx",
|
|
133
|
+
"web/src/App.tsx"
|
|
134
|
+
],
|
|
135
|
+
"examples": [
|
|
136
|
+
"forge make ui --framework vite --yes"
|
|
137
|
+
],
|
|
138
|
+
"modifies": [],
|
|
139
|
+
"name": "ui",
|
|
140
|
+
"summary": "Add a Vite React frontend shell with ForgeProvider devAuth and a generated client bridge."
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"creates": [
|
|
144
|
+
"src/commands/*",
|
|
145
|
+
"src/queries/*",
|
|
146
|
+
"src/actions/*",
|
|
147
|
+
"web/components/*",
|
|
148
|
+
"web/app/*",
|
|
149
|
+
"tests/make-generated/*"
|
|
150
|
+
],
|
|
151
|
+
"examples": [
|
|
152
|
+
"forge make resource invoices --fields amount:number,status:enum(draft,paid) --with-ui --yes"
|
|
153
|
+
],
|
|
154
|
+
"modifies": [
|
|
155
|
+
"src/forge/schema.ts",
|
|
156
|
+
"src/policies.ts"
|
|
157
|
+
],
|
|
158
|
+
"name": "resource",
|
|
159
|
+
"summary": "Add schema, policies, CRUD, queries, liveQuery, optional UI, and tests."
|
|
160
|
+
}
|
|
161
|
+
],
|
|
162
|
+
"schemaVersion": "0.1.0"
|
|
163
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=caf049950405a6022290d7ace56f44ae9b4892557c40e94a08bf463799a04c24 content=3ded5d373abd46034055220ea12a715a71c2f706cf4a87a75e7d66d72bf79f33
|
|
2
|
+
{"schemaVersion":"0.1.0","templates":[{"name":"schema-table","outputPattern":"src/forge/schema.ts","sourceKind":"schema"},{"name":"policy","outputPattern":"src/policies.ts","sourceKind":"policy"},{"name":"command","outputPattern":"src/commands/<name>.ts","sourceKind":"runtime"},{"name":"query","outputPattern":"src/queries/<name>.ts","sourceKind":"runtime"},{"name":"livequery","outputPattern":"src/queries/live<Name>.ts","sourceKind":"runtime"},{"name":"action","outputPattern":"src/actions/<name>.ts","sourceKind":"runtime"},{"name":"workflow","outputPattern":"src/workflows/<name>.ts","sourceKind":"runtime"},{"name":"component","outputPattern":"web/components/<name>.tsx","sourceKind":"frontend"},{"name":"page","outputPattern":"web/app/<route>/page.tsx","sourceKind":"frontend"},{"name":"ui","outputPattern":"web/src/App.tsx","sourceKind":"frontend"},{"name":"placeholder-test","outputPattern":"tests/make-generated/<name>.test.ts","sourceKind":"test"}]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=caf049950405a6022290d7ace56f44ae9b4892557c40e94a08bf463799a04c24 content=bec3e76f4a2feb0f6a1f4e3fb74d038a13ce13c7da0796fe16f4567ca0594f6e
|
|
2
|
+
export const makeTemplates = {
|
|
3
|
+
"schemaVersion": "0.1.0",
|
|
4
|
+
"templates": [
|
|
5
|
+
{
|
|
6
|
+
"name": "schema-table",
|
|
7
|
+
"outputPattern": "src/forge/schema.ts",
|
|
8
|
+
"sourceKind": "schema"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "policy",
|
|
12
|
+
"outputPattern": "src/policies.ts",
|
|
13
|
+
"sourceKind": "policy"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "command",
|
|
17
|
+
"outputPattern": "src/commands/<name>.ts",
|
|
18
|
+
"sourceKind": "runtime"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "query",
|
|
22
|
+
"outputPattern": "src/queries/<name>.ts",
|
|
23
|
+
"sourceKind": "runtime"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"name": "livequery",
|
|
27
|
+
"outputPattern": "src/queries/live<Name>.ts",
|
|
28
|
+
"sourceKind": "runtime"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "action",
|
|
32
|
+
"outputPattern": "src/actions/<name>.ts",
|
|
33
|
+
"sourceKind": "runtime"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "workflow",
|
|
37
|
+
"outputPattern": "src/workflows/<name>.ts",
|
|
38
|
+
"sourceKind": "runtime"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "component",
|
|
42
|
+
"outputPattern": "web/components/<name>.tsx",
|
|
43
|
+
"sourceKind": "frontend"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "page",
|
|
47
|
+
"outputPattern": "web/app/<route>/page.tsx",
|
|
48
|
+
"sourceKind": "frontend"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "ui",
|
|
52
|
+
"outputPattern": "web/src/App.tsx",
|
|
53
|
+
"sourceKind": "frontend"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "placeholder-test",
|
|
57
|
+
"outputPattern": "tests/make-generated/<name>.test.ts",
|
|
58
|
+
"sourceKind": "test"
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=a364a2ec435f1ad252c1d418c40d3d787ffd94db8ab078dc670d129e1ab2d4fd content=ce79e45d4228d202a492670aa76f238986b5500c8bb53774b328c216a1ccc6d8
|
|
2
|
+
{"entries":[{"mockFile":"src/forge/_generated/testkits/ai.anthropic.mock.ts","packageName":"@ai-sdk/anthropic"},{"mockFile":"src/forge/_generated/testkits/ai.openai.mock.ts","packageName":"@ai-sdk/openai"},{"mockFile":"src/forge/_generated/testkits/ai.gateway.mock.ts","packageName":"ai"},{"mockFile":"src/forge/_generated/testkits/zod.mock.ts","packageName":"zod"}]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=a364a2ec435f1ad252c1d418c40d3d787ffd94db8ab078dc670d129e1ab2d4fd content=4c569da5df387f6bb7fe7fd94d42b4cc6b05f5218ab0bc129d9637c184625057
|
|
2
|
+
export const mockMap = {
|
|
3
|
+
"@ai-sdk/anthropic": "src/forge/_generated/testkits/ai.anthropic.mock.ts",
|
|
4
|
+
"@ai-sdk/openai": "src/forge/_generated/testkits/ai.openai.mock.ts",
|
|
5
|
+
"ai": "src/forge/_generated/testkits/ai.gateway.mock.ts",
|
|
6
|
+
"zod": "src/forge/_generated/testkits/zod.mock.ts"
|
|
7
|
+
} as const;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=c66c98a8c537973af073e7571f522683b815b3f5adafa2cc9a3135b370a91b9e content=6dd405e3d1dbf89a38afa243593c1f4443d1ce9e86fb69fa12c16140ff3c5dad
|
|
2
|
+
# Operation Playbooks
|
|
3
|
+
|
|
4
|
+
## Choose the right workflow
|
|
5
|
+
|
|
6
|
+
1. Run forge do "<objective>" --json when the next command is not obvious.
|
|
7
|
+
2. Use forge do fix --json for failures, forge do verify --json before handoff, and forge do connect-ui --json for frontend wiring.
|
|
8
|
+
3. Follow the returned plan, filesToInspect, risks, and nextAction before using lower-level commands directly.
|
|
9
|
+
|
|
10
|
+
## Add a command
|
|
11
|
+
|
|
12
|
+
1. Add a file under src/commands.
|
|
13
|
+
2. Declare auth with can("policy.name") unless intentionally public/system.
|
|
14
|
+
3. Use ctx.db for transactional writes.
|
|
15
|
+
4. Use ctx.emit for side effects.
|
|
16
|
+
5. Run forge generate.
|
|
17
|
+
6. Run forge verify --strict.
|
|
18
|
+
|
|
19
|
+
## Add a query
|
|
20
|
+
|
|
21
|
+
1. Add a file under src/queries.
|
|
22
|
+
2. Keep it read-only.
|
|
23
|
+
3. Declare auth explicitly.
|
|
24
|
+
4. Run forge generate.
|
|
25
|
+
5. Run forge check.
|
|
26
|
+
|
|
27
|
+
## Add a liveQuery
|
|
28
|
+
|
|
29
|
+
1. Add a liveQuery under src/queries.
|
|
30
|
+
2. Keep it read-only and tenant-scoped when reading tenant tables.
|
|
31
|
+
3. Run forge generate.
|
|
32
|
+
4. Use forge inspect client --json to confirm client exposure.
|
|
33
|
+
|
|
34
|
+
## Debug a stale liveQuery
|
|
35
|
+
|
|
36
|
+
1. Run forge live status --json.
|
|
37
|
+
2. Run forge live invalidations list --json and confirm the table and tenant changed.
|
|
38
|
+
3. Run forge live debug <subscriptionId> --json when a subscription id is available.
|
|
39
|
+
4. Check that _forge_live_invalidations has revisions newer than the last sent snapshot.
|
|
40
|
+
5. Reconnect with Last-Event-ID or ?lastRevision=<revision> to verify resume behavior.
|
|
41
|
+
|
|
42
|
+
## Add a table
|
|
43
|
+
|
|
44
|
+
1. Edit src/forge/schema.ts.
|
|
45
|
+
2. Include tenantId for tenant-scoped data.
|
|
46
|
+
3. Run forge generate.
|
|
47
|
+
4. Run forge db diff.
|
|
48
|
+
5. Run forge verify --strict.
|
|
49
|
+
|
|
50
|
+
## Scaffold a resource
|
|
51
|
+
|
|
52
|
+
1. Run forge make resource <name> --fields name:type,status:enum(open,closed) --dry-run --json.
|
|
53
|
+
2. Review the plan and diagnostics.
|
|
54
|
+
3. Run forge make resource <name> --fields name:type --with-ui --yes when the resource should be visible in the web app.
|
|
55
|
+
4. Run forge generate.
|
|
56
|
+
5. Run forge verify --strict.
|
|
57
|
+
|
|
58
|
+
## Apply a feature blueprint
|
|
59
|
+
|
|
60
|
+
1. Write a JSON blueprint under .forge/blueprints.
|
|
61
|
+
2. Run forge feature validate <blueprint> --json.
|
|
62
|
+
3. Run forge feature plan <blueprint>.
|
|
63
|
+
4. Review the plan, impact, and risk.
|
|
64
|
+
5. Run forge feature apply <blueprint> --yes.
|
|
65
|
+
6. Run forge verify --strict.
|
|
66
|
+
|
|
67
|
+
## Safely refactor a feature
|
|
68
|
+
|
|
69
|
+
1. Run forge refactor rename field <table.field> <table.field> --dry-run --json.
|
|
70
|
+
2. Rename codemods are AST-aware for extract-action, rename field, and rename table.
|
|
71
|
+
3. Field renames are scoped to the target table, so tickets.priority only rewrites references linked to tickets.
|
|
72
|
+
4. Review filesToModify, migrationPlan, diagnostics, and risk.
|
|
73
|
+
5. Use --allow-high-risk only for intentional high-risk refactors.
|
|
74
|
+
6. Apply with forge refactor rename field <table.field> <table.field> --yes.
|
|
75
|
+
7. Run forge generate.
|
|
76
|
+
8. Run forge verify --strict.
|
|
77
|
+
|
|
78
|
+
## Plan impact-based tests
|
|
79
|
+
|
|
80
|
+
1. Run forge impact --changed --json.
|
|
81
|
+
2. Run forge test plan --changed --json.
|
|
82
|
+
3. Run forge test run --changed --timeout-ms 120000 --json for targeted checks.
|
|
83
|
+
4. Use forge verify --changed for the fast impact gate.
|
|
84
|
+
5. Run forge verify --strict before final handoff.
|
|
85
|
+
|
|
86
|
+
## Repair a failing check
|
|
87
|
+
|
|
88
|
+
1. Run forge test run --changed --json.
|
|
89
|
+
2. Run forge repair diagnose --from-last-test-run --json.
|
|
90
|
+
3. Review the failureKind, likelyCause, suggestedRepairs, and confidence.
|
|
91
|
+
4. Apply only high-confidence repairs automatically.
|
|
92
|
+
5. Run forge verify --changed.
|
|
93
|
+
6. Run forge verify --strict before final handoff.
|
|
94
|
+
|
|
95
|
+
## Add a package
|
|
96
|
+
|
|
97
|
+
1. Use forge add <alias>.
|
|
98
|
+
2. Do not install packages manually unless the architecture exception is intentional.
|
|
99
|
+
3. Run forge generate.
|
|
100
|
+
4. Run forge check.
|
|
101
|
+
|
|
102
|
+
## Upgrade a package
|
|
103
|
+
|
|
104
|
+
1. Run forge deps upgrade-plan <package> --to latest.
|
|
105
|
+
2. Read .forge/upgrades/.../plan.md.
|
|
106
|
+
3. If risk is high, inspect affected files and generated adapters before applying.
|
|
107
|
+
4. Apply with forge deps upgrade-apply <plan>.
|
|
108
|
+
5. Finish with forge verify --strict.
|
|
109
|
+
|
|
110
|
+
## Debug a policy error
|
|
111
|
+
|
|
112
|
+
1. Capture the traceId from the response or frontend.
|
|
113
|
+
2. Run forge telemetry inspect <traceId>.
|
|
114
|
+
3. Run forge policy simulate <policy> --role <role>.
|
|
115
|
+
|
|
116
|
+
## Run dev
|
|
117
|
+
|
|
118
|
+
1. Run forge dev for the full local loop: generated checks, API runtime, web app, DB, worker, watch, and startup URLs.
|
|
119
|
+
2. Run forge dev --once --json for a one-shot diagnostic cycle.
|
|
120
|
+
3. Use --api-only, --web-only, --no-watch, or --no-worker only when narrowing the loop intentionally.
|
|
121
|
+
4. When a web app exists, forge dev starts the API runtime and the web dev server together and prints both URLs.
|
|
122
|
+
5. Use generated client and React hooks through web/lib/forge.ts.
|
|
123
|
+
|
|
124
|
+
## Add or update frontend
|
|
125
|
+
|
|
126
|
+
1. Run forge make ui --framework vite --dry-run --json when the app does not have a web root.
|
|
127
|
+
2. Use web/lib/forge.ts as the generated client bridge.
|
|
128
|
+
3. Mount ForgeProvider once in the web app provider/layout layer; use devAuth for local development.
|
|
129
|
+
4. Use useQuery, useCommand, and useLiveQuery instead of raw /commands or /queries fetches.
|
|
130
|
+
5. Run forge generate so frontendGraph and agentContract include routes and bindings.
|
|
131
|
+
6. Run forge inspect capabilities --json to confirm UI actions map to runtime capabilities.
|
|
132
|
+
7. Run forge dev --once --json and forge doctor --json.
|
|
133
|
+
|
|
134
|
+
## Self-host
|
|
135
|
+
|
|
136
|
+
1. Run forge self-host compose.
|
|
137
|
+
2. Review deploy/.env.example.
|
|
138
|
+
3. Run forge self-host check.
|
|
139
|
+
|
|
140
|
+
## Debug a production stack trace
|
|
141
|
+
|
|
142
|
+
1. Run forge release inspect <releaseId> --json.
|
|
143
|
+
2. Run forge release sourcemaps symbolicate --input stacktrace.json --json.
|
|
144
|
+
3. Open the original source file and line from the symbolicated frame.
|
|
145
|
+
4. Use forge telemetry inspect <traceId> --with-release --json when a trace id is available.
|