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,79 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=aa83a281b88ff3a9f4a31b32eac900a871c22a23247ea26b36b46bd6bd1fe9d4 content=7f09595afb7106f9024085f103c559078fd03bd0f2bb80554f0b57c6464354a2
|
|
2
|
+
# Runtime Rules
|
|
3
|
+
|
|
4
|
+
## LiveQuery Production
|
|
5
|
+
|
|
6
|
+
Allowed:
|
|
7
|
+
- durable invalidation rows in _forge_live_invalidations
|
|
8
|
+
- polling fallback
|
|
9
|
+
- Postgres notify wakeups
|
|
10
|
+
- SSE heartbeats and Last-Event-ID resume
|
|
11
|
+
|
|
12
|
+
Forbidden:
|
|
13
|
+
- treating Pub/Sub or in-memory notification as the source of truth
|
|
14
|
+
- unbounded snapshot queues
|
|
15
|
+
- cross-tenant invalidation fanout
|
|
16
|
+
|
|
17
|
+
## command
|
|
18
|
+
|
|
19
|
+
Allowed:
|
|
20
|
+
- ctx.db writes
|
|
21
|
+
- ctx.emit
|
|
22
|
+
- ctx.telemetry buffered events
|
|
23
|
+
|
|
24
|
+
Forbidden:
|
|
25
|
+
- network packages
|
|
26
|
+
- ctx.secrets
|
|
27
|
+
- ctx.ai
|
|
28
|
+
- process.env
|
|
29
|
+
- filesystem access
|
|
30
|
+
|
|
31
|
+
## query
|
|
32
|
+
|
|
33
|
+
Allowed:
|
|
34
|
+
- ctx.db reads
|
|
35
|
+
- ctx.telemetry buffered events
|
|
36
|
+
|
|
37
|
+
Forbidden:
|
|
38
|
+
- insert/update/delete
|
|
39
|
+
- ctx.emit
|
|
40
|
+
- ctx.secrets
|
|
41
|
+
- ctx.ai
|
|
42
|
+
- network integrations
|
|
43
|
+
|
|
44
|
+
## liveQuery
|
|
45
|
+
|
|
46
|
+
Allowed:
|
|
47
|
+
- ctx.db reads
|
|
48
|
+
- tenant-scoped subscriptions
|
|
49
|
+
|
|
50
|
+
Forbidden:
|
|
51
|
+
- insert/update/delete
|
|
52
|
+
- ctx.emit
|
|
53
|
+
- ctx.secrets
|
|
54
|
+
- ctx.ai
|
|
55
|
+
- network integrations
|
|
56
|
+
|
|
57
|
+
## action
|
|
58
|
+
|
|
59
|
+
Allowed:
|
|
60
|
+
- ctx.secrets
|
|
61
|
+
- integrations
|
|
62
|
+
- ctx.ai
|
|
63
|
+
- ctx.db reads/writes
|
|
64
|
+
- network packages
|
|
65
|
+
|
|
66
|
+
Forbidden:
|
|
67
|
+
- uncommitted transactional side effects
|
|
68
|
+
|
|
69
|
+
## workflow
|
|
70
|
+
|
|
71
|
+
Allowed:
|
|
72
|
+
- durable steps
|
|
73
|
+
- ctx.secrets
|
|
74
|
+
- integrations
|
|
75
|
+
- ctx.ai
|
|
76
|
+
- retries
|
|
77
|
+
|
|
78
|
+
Forbidden:
|
|
79
|
+
- non-idempotent step behavior without guards
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=a364a2ec435f1ad252c1d418c40d3d787ffd94db8ab078dc670d129e1ab2d4fd content=dc3749521bc270bf535866b7dc70acbd465cba91051e4730a0011d80e22bb1f7
|
|
2
|
+
{"secrets":[{"allowedContexts":["server","action","workflow","endpoint","test","build"],"integration":"ai-gateway","name":"AI_GATEWAY_API_KEY","public":false,"required":true,"source":"recipe"},{"allowedContexts":["server","action","workflow","endpoint","test","build"],"integration":"ai-provider-anthropic","name":"ANTHROPIC_API_KEY","public":false,"required":true,"source":"recipe"},{"allowedContexts":["server","action","workflow","endpoint","test","build"],"integration":"ai-provider-openai","name":"OPENAI_API_KEY","public":false,"required":true,"source":"recipe"}]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=a364a2ec435f1ad252c1d418c40d3d787ffd94db8ab078dc670d129e1ab2d4fd content=27a3fd362b85da0ebaf11345ce74bd252a9699ef453087fbf9ec48f7a7a7e11a
|
|
2
|
+
export const secretRegistry = {
|
|
3
|
+
"secrets": [
|
|
4
|
+
{
|
|
5
|
+
"allowedContexts": [
|
|
6
|
+
"server",
|
|
7
|
+
"action",
|
|
8
|
+
"workflow",
|
|
9
|
+
"endpoint",
|
|
10
|
+
"test",
|
|
11
|
+
"build"
|
|
12
|
+
],
|
|
13
|
+
"integration": "ai-gateway",
|
|
14
|
+
"name": "AI_GATEWAY_API_KEY",
|
|
15
|
+
"public": false,
|
|
16
|
+
"required": true,
|
|
17
|
+
"source": "recipe"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"allowedContexts": [
|
|
21
|
+
"server",
|
|
22
|
+
"action",
|
|
23
|
+
"workflow",
|
|
24
|
+
"endpoint",
|
|
25
|
+
"test",
|
|
26
|
+
"build"
|
|
27
|
+
],
|
|
28
|
+
"integration": "ai-provider-anthropic",
|
|
29
|
+
"name": "ANTHROPIC_API_KEY",
|
|
30
|
+
"public": false,
|
|
31
|
+
"required": true,
|
|
32
|
+
"source": "recipe"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"allowedContexts": [
|
|
36
|
+
"server",
|
|
37
|
+
"action",
|
|
38
|
+
"workflow",
|
|
39
|
+
"endpoint",
|
|
40
|
+
"test",
|
|
41
|
+
"build"
|
|
42
|
+
],
|
|
43
|
+
"integration": "ai-provider-openai",
|
|
44
|
+
"name": "OPENAI_API_KEY",
|
|
45
|
+
"public": false,
|
|
46
|
+
"required": true,
|
|
47
|
+
"source": "recipe"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
} as const;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=a364a2ec435f1ad252c1d418c40d3d787ffd94db8ab078dc670d129e1ab2d4fd content=f4fb41702a4aa53e0f1783707d82dd624e374d9f753ca2cd0092af42d050d4de
|
|
2
|
+
export interface SecretsContext {
|
|
3
|
+
get(name: string): string;
|
|
4
|
+
optional(name: string): string | undefined;
|
|
5
|
+
has(name: string): boolean;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface ConfigContext {
|
|
9
|
+
get(name: string): string;
|
|
10
|
+
optional(name: string): string | undefined;
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=2a69f73608c9994a8f39399567eecc24ebaaec48af7e2f818a41da7acbc1bfac content=ee2db579330ea2ab0b97114ee7ccc943251367a8b6997d75d8987fff521b92bd
|
|
2
|
+
import { api } from "./api.ts";
|
|
3
|
+
|
|
4
|
+
export const serverApi = {
|
|
5
|
+
queries: api.queries,
|
|
6
|
+
commands: api.commands,
|
|
7
|
+
liveQueries: api.liveQueries,
|
|
8
|
+
actions: api.actions,
|
|
9
|
+
workflows: api.workflows,
|
|
10
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=6b855b87f2f57fce3e0939076b81cc0263cccfeae7bb969d2662613867b1c8ee content=aa285017fd3b19c0d0c24ad6cba86c686fbf97a5bb002ec05eca69bc9db27c85
|
|
2
|
+
{"diagnostics":[],"releaseId":"forgeos@0.1.0-alpha.0+unknown","schemaVersion":"0.1.0","sourceMaps":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=6b855b87f2f57fce3e0939076b81cc0263cccfeae7bb969d2662613867b1c8ee content=26c9701dce3e53e6e268328c3321aad789fff8e08a9ff1430e3253bb49a9b460
|
|
2
|
+
export const sourceMapManifest = {
|
|
3
|
+
"diagnostics": [],
|
|
4
|
+
"releaseId": "forgeos@0.1.0-alpha.0+unknown",
|
|
5
|
+
"schemaVersion": "0.1.0",
|
|
6
|
+
"sourceMaps": []
|
|
7
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=b20eb68e1cea2bf422356daa854f8f1e6b9529fb789ab44800b13b83a169d0af content=1edd73682fcf31fb6419a31733cd4e2e54df9c385c5c950074b9a746dd47a4ae
|
|
2
|
+
{"checksum":"e00b135de6e380256e8116fb3ac28f4d925aef552528a58b4dc5285782737654","diagnostics":[],"indexes":[{"index":{"columns":["revision"],"name":"forge_live_invalidations_revision_idx","table":"_forge_live_invalidations"},"kind":"create_index","sql":"CREATE INDEX IF NOT EXISTS \"forge_live_invalidations_revision_idx\" ON \"_forge_live_invalidations\" (\"revision\")","table":"_forge_live_invalidations"},{"index":{"columns":["table_name","tenant_id","revision"],"name":"forge_live_invalidations_table_tenant_revision_idx","table":"_forge_live_invalidations"},"kind":"create_index","sql":"CREATE INDEX IF NOT EXISTS \"forge_live_invalidations_table_tenant_revision_idx\" ON \"_forge_live_invalidations\" (\"table_name\", \"tenant_id\", \"revision\")","table":"_forge_live_invalidations"}],"migrationId":"migration_e00b135de6e38025","schemaVersion":"1.0.0","systemTables":[{"kind":"create_table","sql":"CREATE TABLE IF NOT EXISTS _forge_migrations (id text PRIMARY KEY, checksum text NOT NULL, applied_at timestamptz NOT NULL DEFAULT now())","table":"_forge_migrations"},{"kind":"create_table","sql":"CREATE TABLE IF NOT EXISTS _forge_outbox (id bigserial PRIMARY KEY, event_type text NOT NULL, payload jsonb NOT NULL, auth_context jsonb, created_at timestamptz NOT NULL DEFAULT now())","table":"_forge_outbox"},{"kind":"create_table","sql":"CREATE TABLE IF NOT EXISTS _forge_outbox_deliveries (id bigserial PRIMARY KEY, outbox_id bigint NOT NULL REFERENCES _forge_outbox(id), action_name text NOT NULL, status text NOT NULL DEFAULT 'pending', attempts integer NOT NULL DEFAULT 0, max_attempts integer NOT NULL DEFAULT 5, next_attempt_at timestamptz NOT NULL DEFAULT now(), locked_at timestamptz, locked_by text, last_error text, processed_at timestamptz, created_at timestamptz NOT NULL DEFAULT now(), UNIQUE(outbox_id, action_name))","table":"_forge_outbox_deliveries"},{"kind":"create_table","sql":"CREATE TABLE IF NOT EXISTS _forge_workflow_runs (id bigserial PRIMARY KEY, workflow_name text NOT NULL, trigger_type text NOT NULL, trigger_outbox_id bigint, idempotency_key text NOT NULL UNIQUE, input jsonb NOT NULL, auth_context jsonb, status text NOT NULL DEFAULT 'pending', current_step text, last_error text, created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now(), started_at timestamptz, completed_at timestamptz, canceled_at timestamptz)","table":"_forge_workflow_runs"},{"kind":"create_table","sql":"CREATE TABLE IF NOT EXISTS _forge_workflow_steps (id bigserial PRIMARY KEY, run_id bigint NOT NULL REFERENCES _forge_workflow_runs(id), step_name text NOT NULL, step_index integer NOT NULL, status text NOT NULL DEFAULT 'pending', input jsonb, output jsonb, attempts integer NOT NULL DEFAULT 0, max_attempts integer NOT NULL DEFAULT 5, next_attempt_at timestamptz NOT NULL DEFAULT now(), locked_at timestamptz, locked_by text, last_error text, started_at timestamptz, completed_at timestamptz, created_at timestamptz NOT NULL DEFAULT now(), UNIQUE(run_id, step_name))","table":"_forge_workflow_steps"},{"kind":"create_table","sql":"CREATE TABLE IF NOT EXISTS _forge_telemetry_events (id bigserial PRIMARY KEY, trace_id text NOT NULL, event_type text NOT NULL, payload jsonb NOT NULL, status text NOT NULL DEFAULT 'pending', sink text, attempts integer NOT NULL DEFAULT 0, max_attempts integer NOT NULL DEFAULT 5, next_attempt_at timestamptz NOT NULL DEFAULT now(), last_error text, created_at timestamptz NOT NULL DEFAULT now(), processed_at timestamptz)","table":"_forge_telemetry_events"},{"kind":"create_table","sql":"CREATE TABLE IF NOT EXISTS _forge_trace_spans (id bigserial PRIMARY KEY, trace_id text NOT NULL, parent_span_id text, span_id text NOT NULL, name text NOT NULL, kind text NOT NULL, attributes jsonb NOT NULL DEFAULT '{}', status text NOT NULL DEFAULT 'ok', started_at timestamptz NOT NULL, ended_at timestamptz, error text)","table":"_forge_trace_spans"},{"kind":"create_sequence","sql":"CREATE SEQUENCE IF NOT EXISTS _forge_live_revision_seq START WITH 2","table":"_forge_live_revision_seq"},{"kind":"create_table","sql":"CREATE TABLE IF NOT EXISTS _forge_live_invalidations (id bigserial PRIMARY KEY, revision bigint NOT NULL, table_name text NOT NULL, tenant_id text, operation text NOT NULL, source_kind text NOT NULL, source_name text, trace_id text, release_id text, deploy_id text, payload jsonb NOT NULL DEFAULT '{}', created_at timestamptz NOT NULL DEFAULT now())","table":"_forge_live_invalidations"},{"kind":"create_table","sql":"CREATE TABLE IF NOT EXISTS _forge_live_subscription_debug (id text PRIMARY KEY, name text NOT NULL, tenant_id text, dependencies jsonb NOT NULL, last_revision bigint, runtime_id text, created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now())","table":"_forge_live_subscription_debug"}],"tables":[]}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=b20eb68e1cea2bf422356daa854f8f1e6b9529fb789ab44800b13b83a169d0af content=d5967c203c4ecb427d0cf694931a3cc8dc6dd88726fcd4b71b79c2ab0c464e10
|
|
2
|
+
export const sqlPlan = {
|
|
3
|
+
"checksum": "e00b135de6e380256e8116fb3ac28f4d925aef552528a58b4dc5285782737654",
|
|
4
|
+
"diagnostics": [],
|
|
5
|
+
"indexes": [
|
|
6
|
+
{
|
|
7
|
+
"index": {
|
|
8
|
+
"columns": [
|
|
9
|
+
"revision"
|
|
10
|
+
],
|
|
11
|
+
"name": "forge_live_invalidations_revision_idx",
|
|
12
|
+
"table": "_forge_live_invalidations"
|
|
13
|
+
},
|
|
14
|
+
"kind": "create_index",
|
|
15
|
+
"sql": "CREATE INDEX IF NOT EXISTS \"forge_live_invalidations_revision_idx\" ON \"_forge_live_invalidations\" (\"revision\")",
|
|
16
|
+
"table": "_forge_live_invalidations"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"index": {
|
|
20
|
+
"columns": [
|
|
21
|
+
"table_name",
|
|
22
|
+
"tenant_id",
|
|
23
|
+
"revision"
|
|
24
|
+
],
|
|
25
|
+
"name": "forge_live_invalidations_table_tenant_revision_idx",
|
|
26
|
+
"table": "_forge_live_invalidations"
|
|
27
|
+
},
|
|
28
|
+
"kind": "create_index",
|
|
29
|
+
"sql": "CREATE INDEX IF NOT EXISTS \"forge_live_invalidations_table_tenant_revision_idx\" ON \"_forge_live_invalidations\" (\"table_name\", \"tenant_id\", \"revision\")",
|
|
30
|
+
"table": "_forge_live_invalidations"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"migrationId": "migration_e00b135de6e38025",
|
|
34
|
+
"schemaVersion": "1.0.0",
|
|
35
|
+
"systemTables": [
|
|
36
|
+
{
|
|
37
|
+
"kind": "create_table",
|
|
38
|
+
"sql": "CREATE TABLE IF NOT EXISTS _forge_migrations (id text PRIMARY KEY, checksum text NOT NULL, applied_at timestamptz NOT NULL DEFAULT now())",
|
|
39
|
+
"table": "_forge_migrations"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"kind": "create_table",
|
|
43
|
+
"sql": "CREATE TABLE IF NOT EXISTS _forge_outbox (id bigserial PRIMARY KEY, event_type text NOT NULL, payload jsonb NOT NULL, auth_context jsonb, created_at timestamptz NOT NULL DEFAULT now())",
|
|
44
|
+
"table": "_forge_outbox"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"kind": "create_table",
|
|
48
|
+
"sql": "CREATE TABLE IF NOT EXISTS _forge_outbox_deliveries (id bigserial PRIMARY KEY, outbox_id bigint NOT NULL REFERENCES _forge_outbox(id), action_name text NOT NULL, status text NOT NULL DEFAULT 'pending', attempts integer NOT NULL DEFAULT 0, max_attempts integer NOT NULL DEFAULT 5, next_attempt_at timestamptz NOT NULL DEFAULT now(), locked_at timestamptz, locked_by text, last_error text, processed_at timestamptz, created_at timestamptz NOT NULL DEFAULT now(), UNIQUE(outbox_id, action_name))",
|
|
49
|
+
"table": "_forge_outbox_deliveries"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"kind": "create_table",
|
|
53
|
+
"sql": "CREATE TABLE IF NOT EXISTS _forge_workflow_runs (id bigserial PRIMARY KEY, workflow_name text NOT NULL, trigger_type text NOT NULL, trigger_outbox_id bigint, idempotency_key text NOT NULL UNIQUE, input jsonb NOT NULL, auth_context jsonb, status text NOT NULL DEFAULT 'pending', current_step text, last_error text, created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now(), started_at timestamptz, completed_at timestamptz, canceled_at timestamptz)",
|
|
54
|
+
"table": "_forge_workflow_runs"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"kind": "create_table",
|
|
58
|
+
"sql": "CREATE TABLE IF NOT EXISTS _forge_workflow_steps (id bigserial PRIMARY KEY, run_id bigint NOT NULL REFERENCES _forge_workflow_runs(id), step_name text NOT NULL, step_index integer NOT NULL, status text NOT NULL DEFAULT 'pending', input jsonb, output jsonb, attempts integer NOT NULL DEFAULT 0, max_attempts integer NOT NULL DEFAULT 5, next_attempt_at timestamptz NOT NULL DEFAULT now(), locked_at timestamptz, locked_by text, last_error text, started_at timestamptz, completed_at timestamptz, created_at timestamptz NOT NULL DEFAULT now(), UNIQUE(run_id, step_name))",
|
|
59
|
+
"table": "_forge_workflow_steps"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"kind": "create_table",
|
|
63
|
+
"sql": "CREATE TABLE IF NOT EXISTS _forge_telemetry_events (id bigserial PRIMARY KEY, trace_id text NOT NULL, event_type text NOT NULL, payload jsonb NOT NULL, status text NOT NULL DEFAULT 'pending', sink text, attempts integer NOT NULL DEFAULT 0, max_attempts integer NOT NULL DEFAULT 5, next_attempt_at timestamptz NOT NULL DEFAULT now(), last_error text, created_at timestamptz NOT NULL DEFAULT now(), processed_at timestamptz)",
|
|
64
|
+
"table": "_forge_telemetry_events"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"kind": "create_table",
|
|
68
|
+
"sql": "CREATE TABLE IF NOT EXISTS _forge_trace_spans (id bigserial PRIMARY KEY, trace_id text NOT NULL, parent_span_id text, span_id text NOT NULL, name text NOT NULL, kind text NOT NULL, attributes jsonb NOT NULL DEFAULT '{}', status text NOT NULL DEFAULT 'ok', started_at timestamptz NOT NULL, ended_at timestamptz, error text)",
|
|
69
|
+
"table": "_forge_trace_spans"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"kind": "create_sequence",
|
|
73
|
+
"sql": "CREATE SEQUENCE IF NOT EXISTS _forge_live_revision_seq START WITH 2",
|
|
74
|
+
"table": "_forge_live_revision_seq"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"kind": "create_table",
|
|
78
|
+
"sql": "CREATE TABLE IF NOT EXISTS _forge_live_invalidations (id bigserial PRIMARY KEY, revision bigint NOT NULL, table_name text NOT NULL, tenant_id text, operation text NOT NULL, source_kind text NOT NULL, source_name text, trace_id text, release_id text, deploy_id text, payload jsonb NOT NULL DEFAULT '{}', created_at timestamptz NOT NULL DEFAULT now())",
|
|
79
|
+
"table": "_forge_live_invalidations"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"kind": "create_table",
|
|
83
|
+
"sql": "CREATE TABLE IF NOT EXISTS _forge_live_subscription_debug (id text PRIMARY KEY, name text NOT NULL, tenant_id text, dependencies jsonb NOT NULL, last_revision bigint, runtime_id text, created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now())",
|
|
84
|
+
"table": "_forge_live_subscription_debug"
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"tables": []
|
|
88
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=eb8d78e749f083957f69f7f316aa4efc3faf5ccd81ff63e3cf32bf7fb7f705ac content=24721b10d2035ff9c4cfd643b4608c7e2cb14f08a03ab6af6224ba3f133713a2
|
|
2
|
+
{"generatorVersion":"0.0.0","inputHash":"dd356f5b886d56bc39e3633c018d348746ab64c4d5e7778b0ba47687e421f568","liveQueries":[],"schemaVersion":"0.1.0"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=eb8d78e749f083957f69f7f316aa4efc3faf5ccd81ff63e3cf32bf7fb7f705ac content=febaeb98c2aac381f511d7c063612d328ac1c5698de18929a7309ea0e5d0d0ba
|
|
2
|
+
export const subscriptionManifest = {
|
|
3
|
+
"generatorVersion": "0.0.0",
|
|
4
|
+
"inputHash": "dd356f5b886d56bc39e3633c018d348746ab64c4d5e7778b0ba47687e421f568",
|
|
5
|
+
"liveQueries": [],
|
|
6
|
+
"schemaVersion": "0.1.0"
|
|
7
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=6b855b87f2f57fce3e0939076b81cc0263cccfeae7bb969d2662613867b1c8ee content=d7a78e250dd7ca7fa0beeb400c5dcb1c83a484d4a6379a150e5231a144122d47
|
|
2
|
+
{"diagnostics":[],"localSymbolication":true,"providers":["local","sentry-compatible","sentry","glitchtip","bugsink","otel","custom"],"releaseId":"forgeos@0.1.0-alpha.0+unknown","schemaVersion":"0.1.0","sourceMapCount":0}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=6b855b87f2f57fce3e0939076b81cc0263cccfeae7bb969d2662613867b1c8ee content=b4ef4cc370fddab2cc9b7c79776d6995b9d296ad2f595e094f4246752d44483e
|
|
2
|
+
export const symbolicationManifest = {
|
|
3
|
+
"diagnostics": [],
|
|
4
|
+
"localSymbolication": true,
|
|
5
|
+
"providers": [
|
|
6
|
+
"local",
|
|
7
|
+
"sentry-compatible",
|
|
8
|
+
"sentry",
|
|
9
|
+
"glitchtip",
|
|
10
|
+
"bugsink",
|
|
11
|
+
"otel",
|
|
12
|
+
"custom"
|
|
13
|
+
],
|
|
14
|
+
"releaseId": "forgeos@0.1.0-alpha.0+unknown",
|
|
15
|
+
"schemaVersion": "0.1.0",
|
|
16
|
+
"sourceMapCount": 0
|
|
17
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=eb8d78e749f083957f69f7f316aa4efc3faf5ccd81ff63e3cf32bf7fb7f705ac content=538c806a4ee0bbd3a2c954b04061237158e542e5990e5bf8956259fc8ae391a9
|
|
2
|
+
{"analyzerVersion":"1.0.0","diagnostics":[],"events":[],"generatorVersion":"0.0.0","inputHash":"b0bf6a280d60ef13fcf378fd45be3ae4ff435da2967062538a2e96c1b1f0a21a","schemaVersion":"1.0.0"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=eb8d78e749f083957f69f7f316aa4efc3faf5ccd81ff63e3cf32bf7fb7f705ac content=258ea3590db1dcab4d1022639a2ebe45054463025c154adc97d46b6c795ae5bf
|
|
2
|
+
export const telemetryRegistry = {
|
|
3
|
+
"analyzerVersion": "1.0.0",
|
|
4
|
+
"diagnostics": [],
|
|
5
|
+
"events": [],
|
|
6
|
+
"generatorVersion": "0.0.0",
|
|
7
|
+
"inputHash": "b0bf6a280d60ef13fcf378fd45be3ae4ff435da2967062538a2e96c1b1f0a21a",
|
|
8
|
+
"schemaVersion": "1.0.0"
|
|
9
|
+
} as const;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=a364a2ec435f1ad252c1d418c40d3d787ffd94db8ab078dc670d129e1ab2d4fd content=0ee44eb5a3fbbfcf2ff342474c9392200bf5df95ff6731da4f0ddd34193229bb
|
|
2
|
+
export const telemetrySinks = {
|
|
3
|
+
"generatorVersion": "0.0.0",
|
|
4
|
+
"schemaVersion": "1.0.0",
|
|
5
|
+
"sinks": [
|
|
6
|
+
{
|
|
7
|
+
"id": "local",
|
|
8
|
+
"kind": "local"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=eb8d78e749f083957f69f7f316aa4efc3faf5ccd81ff63e3cf32bf7fb7f705ac content=8994530a2569cd27aa3069330161f7e7fe8203e5d795c54fe28318c9282a32ca
|
|
2
|
+
{"diagnostics":[],"generatorVersion":"0.0.0","inputHash":"6df72e081ae332c89a8a235adceb5572f09c5723da5e84f94682b5741b28bf8f","schemaVersion":"1.0.0","tables":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=eb8d78e749f083957f69f7f316aa4efc3faf5ccd81ff63e3cf32bf7fb7f705ac content=614e022f1cb1b7d7ec61f8cc7cdba8f32eb81caabe2777fa071749934c1e957a
|
|
2
|
+
export const tenantScope = {
|
|
3
|
+
"diagnostics": [],
|
|
4
|
+
"generatorVersion": "0.0.0",
|
|
5
|
+
"inputHash": "6df72e081ae332c89a8a235adceb5572f09c5723da5e84f94682b5741b28bf8f",
|
|
6
|
+
"schemaVersion": "1.0.0",
|
|
7
|
+
"tables": []
|
|
8
|
+
} as const;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @forge-generated generator=0.0.0 input=045a6cb4b35ff84e44e490cddac563a732ab9b3c9d9e921ed9a1b1d279b62b2b content=8a6e60deb7334aa1d1575e681777f789f9696d27422de87641ade4694108cca5
|
|
2
|
+
{"analyzerVersion":"test-graph-0.1.0","diagnostics":[],"generatorVersion":"0.0.0","inputHash":"045a6cb4b35ff84e44e490cddac563a732ab9b3c9d9e921ed9a1b1d279b62b2b","schemaVersion":"0.1.0","tests":[{"confidence":"probable","cost":"docker","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai","tsx","zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/agent-adapters/h30-agent-adapters.test.ts","kind":"unknown","reasons":["probable: packages ai","probable: packages tsx","probable: packages zod"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/agent-contract/h19-agent-contract.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/agent-contract/h34-full-stack-contract.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["tsx"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/agent-contract/h35-capability-map.test.ts","kind":"unknown","reasons":["probable: packages tsx"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/ai/ai-cli.test.ts","kind":"unknown","reasons":["confirmed: packages ai"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/ai/ai-context.test.ts","kind":"unknown","reasons":["confirmed: packages ai"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/ai/ai-dev-server.test.ts","kind":"unknown","reasons":["confirmed: packages ai"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/ai/ai-forbidden-context.test.ts","kind":"unknown","reasons":["confirmed: packages ai"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/ai/ai-mock-provider.test.ts","kind":"unknown","reasons":["confirmed: packages ai"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/ai/ai-registry.test.ts","kind":"unknown","reasons":["confirmed: packages ai"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/ai/ai-secrets.test.ts","kind":"unknown","reasons":["confirmed: packages ai"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/ai/ai-telemetry.test.ts","kind":"unknown","reasons":["confirmed: packages ai"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/ai/ai-workflow.test.ts","kind":"unknown","reasons":["confirmed: packages ai"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/app-graph/build.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/app-graph/classify.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/app-graph/incremental.test.ts","kind":"unknown","reasons":[]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["jose"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/auth/h20-auth.test.ts","kind":"unknown","reasons":["confirmed: packages jose"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["fast-check","typescript","zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/cache/cache-soundness.property.test.ts","kind":"unknown","reasons":["confirmed: packages fast-check","confirmed: packages typescript","probable: packages zod"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai","zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/cache/cache.test.ts","kind":"unknown","reasons":["probable: packages ai","probable: packages zod"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/ci/ci-workflow.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/ci/publish-workflow.test.ts","kind":"unknown","reasons":[]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai","fast-check","zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/classifier/classification.property.test.ts","kind":"unknown","reasons":["confirmed: packages fast-check","probable: packages ai","probable: packages zod"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/classifier/classify.test.ts","kind":"unknown","reasons":["probable: packages zod"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/cli/cli.test.ts","kind":"unknown","reasons":["probable: packages zod"]},{"confidence":"probable","cost":"slow","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["tsx"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/cli/node-compat.test.ts","kind":"unknown","reasons":["probable: packages tsx"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/cli/windows.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["react"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/client/client-api-generation.test.ts","kind":"unknown","reasons":["probable: packages react"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/client/client-auth-headers.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/client/client-command.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/client/client-errors.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/client/client-query.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/client/client-surface-security.test.ts","kind":"unknown","reasons":["probable: packages ai"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/client/client-tenant-scope.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/data-graph/build.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/data-graph/parse.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/db/db-cli.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/db/generated-db-client.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/db/migrations.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/db/outbox.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/db/pglite-adapter.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/db/sql-compiler.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"docker","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["postgres"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/deploy/self-host.test.ts","kind":"unknown","reasons":["probable: packages postgres"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/deps/h22-deps.test.ts","kind":"unknown","reasons":["probable: packages zod"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/dev/dev-console.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/dev/dev-outbox-worker.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/dev/dev-server-db.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/dev/dev-workflow-worker.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/dev/routes.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/dev/server.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/dev/watch.test.ts","kind":"unknown","reasons":["probable: packages zod"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/diagnostics/codes.test.ts","kind":"unknown","reasons":["probable: packages ai"]},{"confidence":"probable","cost":"slow","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/e2e/pipeline.test.ts","kind":"e2e","reasons":["probable: packages zod"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["fast-check"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/emitter/determinism.property.test.ts","kind":"unknown","reasons":["confirmed: packages fast-check"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/emitter/emitter.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/examples/basic-forge-app.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai","tsx"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/examples/showcase-app.test.ts","kind":"unknown","reasons":["probable: packages ai","probable: packages tsx"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["react"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/feature/h26-feature.test.ts","kind":"unknown","reasons":["probable: packages react"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/fs/file-system.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/guards/eslint-plugin.test.ts","kind":"unknown","reasons":[]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["fast-check"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/guards/guards.property.test.ts","kind":"unknown","reasons":["confirmed: packages fast-check"]},{"confidence":"probable","cost":"slow","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/guards/guards.test.ts","kind":"unknown","reasons":["probable: packages zod"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["react","tsx","zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/impact/h28-impact.test.ts","kind":"unknown","reasons":["probable: packages react","probable: packages tsx","probable: packages zod"]},{"confidence":"probable","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/integration/add.test.ts","kind":"integration","reasons":["probable: packages zod"]},{"confidence":"confirmed","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai","zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/integration/h2-quality.test.ts","kind":"integration","reasons":["confirmed: packages zod","probable: packages ai"]},{"confidence":"confirmed","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["fast-check","zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/integration/lock-integrity.property.test.ts","kind":"integration","reasons":["confirmed: packages fast-check","probable: packages zod"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/intent/h33-intent-router.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["postgres"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/live-production/h24-live-production.test.ts","kind":"unknown","reasons":["probable: packages postgres"]},{"confidence":"weak","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/live/live-query-invalidation.test.ts","kind":"integration","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["tsx"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/make/h25-make.test.ts","kind":"unknown","reasons":["probable: packages tsx"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/orchestrator/.tmp/cli-verify-changed-resolution-019ec6eb-ff1f-7000-83c1-5addbb10155c/tests/changed.test.ts","kind":"unit","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/orchestrator/.tmp/cli-verify-changed-resolution-019ec6ec-3ba7-7000-929c-8dce77d33e14/tests/changed.test.ts","kind":"unit","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/orchestrator/.tmp/cli-verify-changed-resolution-019ec73a-d85f-7000-b667-40f09f20d106/tests/changed.test.ts","kind":"unit","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/orchestrator/.tmp/cli-verify-changed-resolution-019ec73f-9a05-7000-8472-c2e003cbcd45/tests/changed.test.ts","kind":"unit","reasons":[]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["fast-check"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/orchestrator/check-drift.property.test.ts","kind":"unknown","reasons":["confirmed: packages fast-check"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["fast-check"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/orchestrator/fast-check.test.ts","kind":"unknown","reasons":["confirmed: packages fast-check"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["fast-check"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/orchestrator/idempotency.property.test.ts","kind":"unknown","reasons":["confirmed: packages fast-check"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/orchestrator/orchestrator.test.ts","kind":"unknown","reasons":["probable: packages zod"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/outbox/action-subscriptions.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/outbox/outbox-dead-letter.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/outbox/outbox-process.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/outbox/outbox-retry.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai","zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/package-graph/extraction.test.ts","kind":"unknown","reasons":["probable: packages ai","probable: packages zod"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["fast-check","zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/package-graph/static-safety.property.test.ts","kind":"unknown","reasons":["confirmed: packages fast-check","probable: packages zod"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/package-manager/adapter.test.ts","kind":"unknown","reasons":["probable: packages zod"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/package-manager/commands.test.ts","kind":"unknown","reasons":["probable: packages zod"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/package-manager/detect.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/policy/command-auth.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/policy/outbox-auth-propagation.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/policy/policy-denied.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/policy/policy-matrix.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/policy/policy-registry.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/policy/policy-simulate.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/policy/telemetry-policy-denied.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/policy/tenant-scoped-db.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/policy/workflow-auth-context.test.ts","kind":"integration","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/primitives/compare.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/primitives/hash.test.ts","kind":"unknown","reasons":[]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["fast-check"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/primitives/result.test.ts","kind":"unknown","reasons":["confirmed: packages fast-check"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/primitives/serialize.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai","zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/primitives/sort.test.ts","kind":"unknown","reasons":["probable: packages ai","probable: packages zod"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["fast-check"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/primitives/stable-ordering.property.test.ts","kind":"unknown","reasons":["confirmed: packages fast-check"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/queries/query-dev-server.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/queries/query-policy.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/queries/query-readonly.test.ts","kind":"unknown","reasons":["probable: packages ai"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/queries/query-registry.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/queries/query-run.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/queries/query-telemetry.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/queries/query-tenant-scope.test.ts","kind":"unknown","reasons":[]},{"confidence":"confirmed","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai","react"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/react/generated-react.test.ts","kind":"frontend","reasons":["confirmed: packages react","probable: packages ai"]},{"confidence":"confirmed","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["react","react-test-renderer"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/react/hooks.test.ts","kind":"frontend","reasons":["confirmed: packages react","confirmed: packages react-test-renderer"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["@ai-sdk/anthropic","@ai-sdk/openai","ai","zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/recipes/registry.test.ts","kind":"unknown","reasons":["probable: packages @ai-sdk/anthropic","probable: packages @ai-sdk/openai","probable: packages ai","probable: packages zod"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["tsx"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/refactor/h27-refactor.test.ts","kind":"unknown","reasons":["probable: packages tsx"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/release/h23-release.test.ts","kind":"unknown","reasons":[]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/repair/h29-repair.test.ts","kind":"unknown","reasons":["confirmed: packages ai"]},{"confidence":"probable","cost":"docker","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["tsx"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/review/h31-review.test.ts","kind":"unknown","reasons":["probable: packages tsx"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["postgres"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/rls/h21-rls.test.ts","kind":"unknown","reasons":["probable: packages postgres"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/runtime-graph/build.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/runtime/command-persistence.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/runtime/command-transaction.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/runtime/db-generated-client-alias.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/runtime/executor.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/runtime/guard-block.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/runtime/mock.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/sandbox/sandbox.test.ts","kind":"unknown","reasons":["probable: packages zod"]},{"confidence":"confirmed","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["fast-check"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/sandbox/secret-exclusion.property.test.ts","kind":"unknown","reasons":["confirmed: packages fast-check"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/secrets/ctx-secrets.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/secrets/dev-server-env.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/secrets/env-loader.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/secrets/forbidden-context.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/secrets/generated-adapters-secrets.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/secrets/process-env-check.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/secrets/secret-registry-generation.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/secrets/secrets-check.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/secrets/verify-strict.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai","zod"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/smoke/real-packages.test.ts","kind":"unknown","reasons":["probable: packages ai","probable: packages zod"]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/telemetry/telemetry-cli.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/telemetry/telemetry-context.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/telemetry/telemetry-db.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/telemetry/telemetry-dev-server.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/telemetry/telemetry-jsonl-sink.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/telemetry/telemetry-posthog-sink.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/telemetry/telemetry-scrubber.test.ts","kind":"unknown","reasons":[]},{"confidence":"weak","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/telemetry/telemetry-sentry-sink.test.ts","kind":"unknown","reasons":[]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["ai","react","tsx"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/templates/new-b2b-support-web.test.ts","kind":"unknown","reasons":["probable: packages ai","probable: packages react","probable: packages tsx"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["tsx"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/templates/new-minimal-web.test.ts","kind":"unknown","reasons":["probable: packages tsx"]},{"confidence":"probable","cost":"fast","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":["tsx"],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/ui/h32-ui.test.ts","kind":"unknown","reasons":["probable: packages tsx"]},{"confidence":"weak","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/workflows/workflow-cancel.test.ts","kind":"integration","reasons":[]},{"confidence":"weak","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/workflows/workflow-idempotency.test.ts","kind":"integration","reasons":[]},{"confidence":"weak","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/workflows/workflow-process.test.ts","kind":"integration","reasons":[]},{"confidence":"weak","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/workflows/workflow-registry.test.ts","kind":"integration","reasons":[]},{"confidence":"weak","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/workflows/workflow-retry.test.ts","kind":"integration","reasons":[]},{"confidence":"weak","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/workflows/workflow-run-create.test.ts","kind":"integration","reasons":[]},{"confidence":"weak","cost":"standard","covers":{"actions":[],"commands":[],"components":[],"liveQueries":[],"packages":[],"policies":[],"queries":[],"tables":[],"workflows":[]},"file":"tests/workflows/workflow-subscriptions.test.ts","kind":"integration","reasons":[]}]}
|