forgeos 0.1.0-alpha.0 → 0.1.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/.npmignore +9 -1
  2. package/AGENTS.md +6 -1
  3. package/CHANGELOG.md +30 -0
  4. package/CONTRIBUTING.md +22 -1
  5. package/README.md +30 -3
  6. package/bin/forge.mjs +4 -3
  7. package/package.json +3 -1
  8. package/packages/eslint-plugin-forge/index.ts +15 -15
  9. package/packages/eslint-plugin-forge/package.json +10 -10
  10. package/packages/eslint-plugin-forge/src/check-source.ts +95 -95
  11. package/packages/eslint-plugin-forge/src/load-artifacts.ts +24 -24
  12. package/packages/eslint-plugin-forge/src/rule-no-forge-guard-violation.ts +93 -93
  13. package/src/forge/_generated/actionSubscriptions.json +2 -2
  14. package/src/forge/_generated/actionSubscriptions.ts +3 -3
  15. package/src/forge/_generated/agentAdapterManifest.json +2 -2
  16. package/src/forge/_generated/agentAdapterManifest.ts +3 -3
  17. package/src/forge/_generated/agentContract.json +2 -2
  18. package/src/forge/_generated/agentContract.ts +6786 -2
  19. package/src/forge/_generated/agentQuickstart.md +1 -1
  20. package/src/forge/_generated/aiContext.ts +1 -1
  21. package/src/forge/_generated/aiModels.json +1 -1
  22. package/src/forge/_generated/aiModels.ts +1 -1
  23. package/src/forge/_generated/aiProviders.json +1 -1
  24. package/src/forge/_generated/aiProviders.ts +1 -1
  25. package/src/forge/_generated/aiRegistry.json +2 -2
  26. package/src/forge/_generated/aiRegistry.ts +3 -3
  27. package/src/forge/_generated/api.json +2 -2
  28. package/src/forge/_generated/api.ts +1 -1
  29. package/src/forge/_generated/appGraph.json +2 -2
  30. package/src/forge/_generated/appGraph.ts +1297 -1141
  31. package/src/forge/_generated/appMap.md +1 -1
  32. package/src/forge/_generated/artifactManifest.json +2 -2
  33. package/src/forge/_generated/artifactManifest.ts +2 -2
  34. package/src/forge/_generated/authClaims.json +1 -1
  35. package/src/forge/_generated/authClaims.ts +1 -1
  36. package/src/forge/_generated/authConfig.json +1 -1
  37. package/src/forge/_generated/authConfig.ts +1 -1
  38. package/src/forge/_generated/authContext.ts +1 -1
  39. package/src/forge/_generated/authRegistry.json +1 -1
  40. package/src/forge/_generated/authRegistry.ts +1 -1
  41. package/src/forge/_generated/buildInfo.json +2 -2
  42. package/src/forge/_generated/buildInfo.ts +4 -4
  43. package/src/forge/_generated/capabilityMap.json +2 -2
  44. package/src/forge/_generated/capabilityMap.md +1 -1
  45. package/src/forge/_generated/capabilityMap.ts +2 -2
  46. package/src/forge/_generated/client.ts +1 -1
  47. package/src/forge/_generated/clientApi.ts +1 -1
  48. package/src/forge/_generated/clientManifest.json +2 -2
  49. package/src/forge/_generated/clientManifest.ts +3 -3
  50. package/src/forge/_generated/clientTypes.ts +1 -1
  51. package/src/forge/_generated/configRegistry.json +1 -1
  52. package/src/forge/_generated/configRegistry.ts +1 -1
  53. package/src/forge/_generated/dataGraph.json +2 -2
  54. package/src/forge/_generated/dataGraph.ts +3 -3
  55. package/src/forge/_generated/db.json +1 -1
  56. package/src/forge/_generated/db.ts +1 -1
  57. package/src/forge/_generated/dbSecurityManifest.json +1 -1
  58. package/src/forge/_generated/dbSecurityManifest.ts +1 -1
  59. package/src/forge/_generated/dbSessionContext.json +1 -1
  60. package/src/forge/_generated/dbSessionContext.ts +1 -1
  61. package/src/forge/_generated/deployManifest.json +2 -2
  62. package/src/forge/_generated/deployManifest.ts +7 -7
  63. package/src/forge/_generated/devManifest.json +2 -2
  64. package/src/forge/_generated/devManifest.ts +3 -3
  65. package/src/forge/_generated/envSchema.json +1 -1
  66. package/src/forge/_generated/envSchema.ts +1 -1
  67. package/src/forge/_generated/frontendGraph.json +1 -1
  68. package/src/forge/_generated/frontendGraph.ts +1 -1
  69. package/src/forge/_generated/importGuards.json +2 -2
  70. package/src/forge/_generated/importGuards.ts +35 -1
  71. package/src/forge/_generated/index.ts +1 -1
  72. package/src/forge/_generated/liveProductionManifest.json +1 -1
  73. package/src/forge/_generated/liveProductionManifest.ts +1 -1
  74. package/src/forge/_generated/liveProtocol.json +1 -1
  75. package/src/forge/_generated/liveProtocol.ts +1 -1
  76. package/src/forge/_generated/liveQueryRegistry.json +2 -2
  77. package/src/forge/_generated/liveQueryRegistry.ts +3 -3
  78. package/src/forge/_generated/liveTransportConfig.json +1 -1
  79. package/src/forge/_generated/liveTransportConfig.ts +1 -1
  80. package/src/forge/_generated/makeRegistry.json +2 -2
  81. package/src/forge/_generated/makeRegistry.ts +2 -2
  82. package/src/forge/_generated/makeTemplates.json +1 -1
  83. package/src/forge/_generated/makeTemplates.ts +1 -1
  84. package/src/forge/_generated/mockMap.json +1 -1
  85. package/src/forge/_generated/mockMap.ts +1 -1
  86. package/src/forge/_generated/operationPlaybooks.md +7 -5
  87. package/src/forge/_generated/packageGraph.json +2 -2
  88. package/src/forge/_generated/packageGraph.ts +90964 -14284
  89. package/src/forge/_generated/packageUpgradeRegistry.json +2 -2
  90. package/src/forge/_generated/packageUpgradeRegistry.ts +2 -2
  91. package/src/forge/_generated/permissionMatrix.json +2 -2
  92. package/src/forge/_generated/permissionMatrix.ts +3 -3
  93. package/src/forge/_generated/policyRegistry.json +2 -2
  94. package/src/forge/_generated/policyRegistry.ts +3 -3
  95. package/src/forge/_generated/queryRegistry.json +2 -2
  96. package/src/forge/_generated/queryRegistry.ts +3 -3
  97. package/src/forge/_generated/react.d.ts +1 -1
  98. package/src/forge/_generated/react.ts +1 -1
  99. package/src/forge/_generated/reactManifest.json +2 -2
  100. package/src/forge/_generated/reactManifest.ts +3 -3
  101. package/src/forge/_generated/releaseManifest.json +2 -2
  102. package/src/forge/_generated/releaseManifest.ts +3 -3
  103. package/src/forge/_generated/rlsPolicies.json +1 -1
  104. package/src/forge/_generated/rlsPolicies.sql +1 -1
  105. package/src/forge/_generated/rlsPolicies.ts +1 -1
  106. package/src/forge/_generated/runtimeGraph.json +2 -2
  107. package/src/forge/_generated/runtimeGraph.ts +3 -3
  108. package/src/forge/_generated/runtimeMatrix.json +2 -2
  109. package/src/forge/_generated/runtimeMatrix.ts +106177 -7917
  110. package/src/forge/_generated/runtimeRegistry.ts +1 -1
  111. package/src/forge/_generated/runtimeRules.md +1 -1
  112. package/src/forge/_generated/secretRegistry.json +1 -1
  113. package/src/forge/_generated/secretRegistry.ts +1 -1
  114. package/src/forge/_generated/secretsContext.ts +1 -1
  115. package/src/forge/_generated/serverApi.ts +1 -1
  116. package/src/forge/_generated/sourceMapManifest.json +2 -2
  117. package/src/forge/_generated/sourceMapManifest.ts +2 -2
  118. package/src/forge/_generated/sqlPlan.json +1 -1
  119. package/src/forge/_generated/sqlPlan.ts +1 -1
  120. package/src/forge/_generated/subscriptionManifest.json +2 -2
  121. package/src/forge/_generated/subscriptionManifest.ts +3 -3
  122. package/src/forge/_generated/symbolicationManifest.json +2 -2
  123. package/src/forge/_generated/symbolicationManifest.ts +2 -2
  124. package/src/forge/_generated/telemetryRegistry.json +2 -2
  125. package/src/forge/_generated/telemetryRegistry.ts +3 -3
  126. package/src/forge/_generated/telemetrySinks.json +2 -2
  127. package/src/forge/_generated/telemetrySinks.ts +2 -2
  128. package/src/forge/_generated/tenantScope.json +2 -2
  129. package/src/forge/_generated/tenantScope.ts +3 -3
  130. package/src/forge/_generated/testGraph.json +2 -2
  131. package/src/forge/_generated/testGraph.ts +129 -75
  132. package/src/forge/_generated/testPlanRegistry.json +2 -2
  133. package/src/forge/_generated/testPlanRegistry.ts +2 -2
  134. package/src/forge/_generated/uiRoutes.json +1 -1
  135. package/src/forge/_generated/uiRoutes.ts +1 -1
  136. package/src/forge/_generated/uiScenarios.json +1 -1
  137. package/src/forge/_generated/uiScenarios.ts +1 -1
  138. package/src/forge/_generated/uiTestManifest.json +2 -2
  139. package/src/forge/_generated/uiTestManifest.ts +2 -2
  140. package/src/forge/_generated/workflowRegistry.json +2 -2
  141. package/src/forge/_generated/workflowRegistry.ts +3 -3
  142. package/src/forge/_generated/workflowSubscriptions.json +2 -2
  143. package/src/forge/_generated/workflowSubscriptions.ts +3 -3
  144. package/src/forge/cli/commands.ts +861 -861
  145. package/src/forge/cli/deps.ts +178 -11
  146. package/src/forge/cli/dev.ts +32 -5
  147. package/src/forge/cli/index.ts +7 -7
  148. package/src/forge/cli/main.ts +54 -54
  149. package/src/forge/cli/new.ts +29 -1
  150. package/src/forge/cli/output.ts +97 -97
  151. package/src/forge/cli/parse.ts +679 -673
  152. package/src/forge/cli/version.ts +1 -1
  153. package/src/forge/compiler/agent-contract/build.ts +28 -0
  154. package/src/forge/compiler/agent-contract/types.ts +16 -0
  155. package/src/forge/compiler/app-graph/build.ts +112 -112
  156. package/src/forge/compiler/app-graph/classify.ts +10 -10
  157. package/src/forge/compiler/app-graph/dup-symbol.ts +29 -29
  158. package/src/forge/compiler/app-graph/extract.ts +123 -123
  159. package/src/forge/compiler/app-graph/forge-apis.ts +29 -29
  160. package/src/forge/compiler/app-graph/index.ts +11 -11
  161. package/src/forge/compiler/app-graph/module-graph.ts +316 -316
  162. package/src/forge/compiler/app-graph/parser.ts +119 -119
  163. package/src/forge/compiler/app-graph/symbols.ts +48 -48
  164. package/src/forge/compiler/app-graph/tsconfig-hash.ts +62 -62
  165. package/src/forge/compiler/app-graph/types.ts +43 -43
  166. package/src/forge/compiler/app-graph/versions.ts +14 -14
  167. package/src/forge/compiler/cache/index.ts +17 -17
  168. package/src/forge/compiler/cache/key.ts +46 -46
  169. package/src/forge/compiler/cache/scheduler.ts +72 -72
  170. package/src/forge/compiler/cache/store.ts +78 -78
  171. package/src/forge/compiler/classifier/capabilities.ts +78 -78
  172. package/src/forge/compiler/classifier/classify.ts +113 -113
  173. package/src/forge/compiler/classifier/contexts.ts +188 -188
  174. package/src/forge/compiler/classifier/index.ts +18 -18
  175. package/src/forge/compiler/classifier/runtime-matrix.ts +45 -45
  176. package/src/forge/compiler/classifier/secrets.ts +41 -41
  177. package/src/forge/compiler/classifier/signals.ts +129 -129
  178. package/src/forge/compiler/diagnostics/codes.ts +125 -120
  179. package/src/forge/compiler/diagnostics/create.ts +87 -87
  180. package/src/forge/compiler/diagnostics/index.ts +41 -41
  181. package/src/forge/compiler/emitter/artifact-kind.ts +14 -14
  182. package/src/forge/compiler/emitter/barrel.ts +38 -38
  183. package/src/forge/compiler/emitter/constants.ts +7 -7
  184. package/src/forge/compiler/emitter/emit.ts +234 -237
  185. package/src/forge/compiler/emitter/index.ts +24 -24
  186. package/src/forge/compiler/emitter/lock.ts +61 -61
  187. package/src/forge/compiler/emitter/render.ts +73 -73
  188. package/src/forge/compiler/guards/artifacts.ts +96 -96
  189. package/src/forge/compiler/guards/check-import-guards.ts +106 -106
  190. package/src/forge/compiler/guards/index.ts +11 -11
  191. package/src/forge/compiler/guards/propagate-contexts.ts +57 -57
  192. package/src/forge/compiler/index.ts +17 -17
  193. package/src/forge/compiler/integration/add.ts +493 -493
  194. package/src/forge/compiler/integration/index.ts +17 -17
  195. package/src/forge/compiler/integration/plan.ts +279 -279
  196. package/src/forge/compiler/integration/render.ts +189 -189
  197. package/src/forge/compiler/integration/snapshot.ts +52 -52
  198. package/src/forge/compiler/orchestrator/discover.ts +214 -214
  199. package/src/forge/compiler/orchestrator/guards.ts +5 -5
  200. package/src/forge/compiler/orchestrator/index.ts +27 -27
  201. package/src/forge/compiler/orchestrator/manifest.ts +69 -69
  202. package/src/forge/compiler/orchestrator/orphans.ts +51 -51
  203. package/src/forge/compiler/orchestrator/plan.ts +804 -804
  204. package/src/forge/compiler/orchestrator/run.ts +178 -178
  205. package/src/forge/compiler/orchestrator/serialize.ts +859 -859
  206. package/src/forge/compiler/orchestrator/types.ts +23 -23
  207. package/src/forge/compiler/orchestrator/verify.ts +35 -35
  208. package/src/forge/compiler/package-graph/capabilities-stub.ts +33 -33
  209. package/src/forge/compiler/package-graph/checksum.ts +107 -97
  210. package/src/forge/compiler/package-graph/compiler.ts +444 -363
  211. package/src/forge/compiler/package-graph/constants.ts +4 -4
  212. package/src/forge/compiler/package-graph/exports-discovery.ts +91 -84
  213. package/src/forge/compiler/package-graph/extract-dts.ts +32 -32
  214. package/src/forge/compiler/package-graph/index.ts +24 -24
  215. package/src/forge/compiler/package-graph/jsdoc.ts +50 -50
  216. package/src/forge/compiler/package-graph/oracle.ts +326 -0
  217. package/src/forge/compiler/package-graph/read-file.ts +21 -21
  218. package/src/forge/compiler/package-graph/resolve.ts +131 -127
  219. package/src/forge/compiler/package-manager/adapter.ts +232 -232
  220. package/src/forge/compiler/package-manager/commands.ts +47 -47
  221. package/src/forge/compiler/package-manager/detect.ts +65 -65
  222. package/src/forge/compiler/package-manager/executor.ts +29 -29
  223. package/src/forge/compiler/package-manager/index.ts +22 -22
  224. package/src/forge/compiler/package-manager/parse-spec.ts +16 -16
  225. package/src/forge/compiler/package-manager/version.ts +20 -20
  226. package/src/forge/compiler/primitives/compare.ts +26 -26
  227. package/src/forge/compiler/primitives/hash.ts +42 -33
  228. package/src/forge/compiler/primitives/header.ts +43 -43
  229. package/src/forge/compiler/primitives/index.ts +45 -45
  230. package/src/forge/compiler/primitives/paths.ts +24 -24
  231. package/src/forge/compiler/primitives/serialize.ts +66 -66
  232. package/src/forge/compiler/primitives/sort.ts +87 -87
  233. package/src/forge/compiler/recipes/definitions.ts +269 -269
  234. package/src/forge/compiler/recipes/helpers.ts +37 -37
  235. package/src/forge/compiler/recipes/index.ts +21 -21
  236. package/src/forge/compiler/recipes/registry.ts +87 -87
  237. package/src/forge/compiler/sandbox/artifact-sanitize.ts +26 -26
  238. package/src/forge/compiler/sandbox/backends/child.ts +123 -123
  239. package/src/forge/compiler/sandbox/backends/docker.ts +173 -173
  240. package/src/forge/compiler/sandbox/index.ts +51 -51
  241. package/src/forge/compiler/sandbox/inspect.ts +143 -143
  242. package/src/forge/compiler/sandbox/inspector-entry.ts +115 -115
  243. package/src/forge/compiler/sandbox/limits.ts +31 -31
  244. package/src/forge/compiler/sandbox/scrub-env.ts +60 -60
  245. package/src/forge/compiler/sandbox/secret-scan.ts +54 -54
  246. package/src/forge/compiler/sandbox/serialize.ts +106 -106
  247. package/src/forge/compiler/sandbox/types.ts +7 -7
  248. package/src/forge/compiler/types/app-graph.ts +71 -71
  249. package/src/forge/compiler/types/capability.ts +29 -29
  250. package/src/forge/compiler/types/classification.ts +9 -9
  251. package/src/forge/compiler/types/cli.ts +85 -85
  252. package/src/forge/compiler/types/diagnostic.ts +2 -2
  253. package/src/forge/compiler/types/emit.ts +25 -25
  254. package/src/forge/compiler/types/import-guards.ts +19 -19
  255. package/src/forge/compiler/types/index.ts +98 -98
  256. package/src/forge/compiler/types/integration.ts +25 -25
  257. package/src/forge/compiler/types/json.ts +3 -3
  258. package/src/forge/compiler/types/lock.ts +37 -37
  259. package/src/forge/compiler/types/package-graph.ts +122 -77
  260. package/src/forge/compiler/types/runtime-matrix.ts +16 -16
  261. package/src/forge/compiler/types/runtime.ts +30 -30
  262. package/src/forge/compiler/types/sandbox.ts +24 -24
  263. package/src/forge/dev/server.ts +16 -2
  264. package/src/forge/refactor/index.ts +10 -2
  265. package/src/forge/refactor/runtime-rename.ts +598 -0
  266. package/src/forge/runtime/executor.ts +3 -2
  267. package/src/forge/runtime/live/live-query-runner.ts +2 -1
  268. package/src/forge/runtime/outbox/process.ts +2 -1
  269. package/src/forge/runtime/query/run-query.ts +2 -1
  270. package/src/forge/runtime/runner/run-entry.ts +2 -1
  271. package/src/forge/runtime/telemetry/sinks/posthog.ts +4 -5
  272. package/src/forge/runtime/telemetry/sinks/sentry.ts +4 -5
  273. package/src/forge/runtime/workflows/resolve-step.ts +2 -1
  274. package/src/forge/version.ts +3 -0
  275. package/templates/b2b-support-web/src/actions/captureTicketCreated.ts +7 -2
  276. package/templates/b2b-support-web/src/commands/closeTicket.ts +6 -1
  277. package/templates/b2b-support-web/src/commands/createTicket.ts +8 -2
  278. package/templates/b2b-support-web/src/queries/getTicket.ts +8 -1
  279. package/templates/b2b-support-web/web/components/CreateTicketForm.tsx +1 -2
  280. package/templates/b2b-support-web/web/components/PolicyDeniedDemo.tsx +1 -2
  281. package/templates/b2b-support-web/web/components/TicketList.tsx +1 -2
  282. package/templates/b2b-support-web/web/components/TraceDetails.tsx +1 -1
  283. package/templates/b2b-support-web/web/lib/forge.ts +1 -0
@@ -2,8 +2,8 @@ export const FORGE_DUP_SYMBOL = "FORGE_DUP_SYMBOL" as const;
2
2
  export const FORGE_DRIFT = "FORGE_DRIFT" as const;
3
3
  export const FORGE_GENERATE_LOCKED = "FORGE_GENERATE_LOCKED" as const;
4
4
  export const FORGE_PKG_NO_TYPES = "FORGE_PKG_NO_TYPES" as const;
5
- export const FORGE_GUARD_VIOLATION = "FORGE_GUARD_VIOLATION" as const;
6
- export const FORGE_SANDBOX_LIMIT = "FORGE_SANDBOX_LIMIT" as const;
5
+ export const FORGE_GUARD_VIOLATION = "FORGE_GUARD_VIOLATION" as const;
6
+ export const FORGE_SANDBOX_LIMIT = "FORGE_SANDBOX_LIMIT" as const;
7
7
  export const FORGE_SECRET_LEAK = "FORGE_SECRET_LEAK" as const;
8
8
  export const FORGE_AGENT_CONTRACT_SECRET_LEAK =
9
9
  "FORGE_AGENT_CONTRACT_SECRET_LEAK" as const;
@@ -19,25 +19,25 @@ export const FORGE_AUTH_DEV_HEADERS_IN_PRODUCTION =
19
19
  "FORGE_AUTH_DEV_HEADERS_IN_PRODUCTION" as const;
20
20
  export const FORGE_AUTH_MODE_INVALID = "FORGE_AUTH_MODE_INVALID" as const;
21
21
  export const FORGE_AUTH_DISABLED = "FORGE_AUTH_DISABLED" as const;
22
- export const FORGE_ORPHANED_GENERATED_FILE =
23
- "FORGE_ORPHANED_GENERATED_FILE" as const;
24
- export const FORGE_SANDBOX_ABNORMAL = "FORGE_SANDBOX_ABNORMAL" as const;
25
- export const FORGE_DUP_RUNTIME_ENTRY = "FORGE_DUP_RUNTIME_ENTRY" as const;
26
- export const FORGE_RUNTIME_UNRESOLVABLE = "FORGE_RUNTIME_UNRESOLVABLE" as const;
27
- export const FORGE_RUNTIME_NOT_FOUND = "FORGE_RUNTIME_NOT_FOUND" as const;
28
- export const FORGE_RUNTIME_GUARD_BLOCKED = "FORGE_RUNTIME_GUARD_BLOCKED" as const;
22
+ export const FORGE_ORPHANED_GENERATED_FILE =
23
+ "FORGE_ORPHANED_GENERATED_FILE" as const;
24
+ export const FORGE_SANDBOX_ABNORMAL = "FORGE_SANDBOX_ABNORMAL" as const;
25
+ export const FORGE_DUP_RUNTIME_ENTRY = "FORGE_DUP_RUNTIME_ENTRY" as const;
26
+ export const FORGE_RUNTIME_UNRESOLVABLE = "FORGE_RUNTIME_UNRESOLVABLE" as const;
27
+ export const FORGE_RUNTIME_NOT_FOUND = "FORGE_RUNTIME_NOT_FOUND" as const;
28
+ export const FORGE_RUNTIME_GUARD_BLOCKED = "FORGE_RUNTIME_GUARD_BLOCKED" as const;
29
29
  export const FORGE_DEV_SERVER_ERROR = "FORGE_DEV_SERVER_ERROR" as const;
30
30
  export const FORGE_DEV_WATCH_FAILED = "FORGE_DEV_WATCH_FAILED" as const;
31
31
  export const FORGE_DEV_INVOKE_FAILED = "FORGE_DEV_INVOKE_FAILED" as const;
32
32
  export const FORGE_DEV_DOCTOR_MISSING_ARTIFACT =
33
33
  "FORGE_DEV_DOCTOR_MISSING_ARTIFACT" as const;
34
- export const FORGE_DB_CONNECT_FAILED = "FORGE_DB_CONNECT_FAILED" as const;
35
- export const FORGE_DB_MIGRATION_FAILED = "FORGE_DB_MIGRATION_FAILED" as const;
36
- export const FORGE_DB_UNSUPPORTED_FIELD_TYPE =
37
- "FORGE_DB_UNSUPPORTED_FIELD_TYPE" as const;
38
- export const FORGE_DB_INVALID_SQL_PLAN = "FORGE_DB_INVALID_SQL_PLAN" as const;
39
- export const FORGE_DB_TRANSACTION_FAILED = "FORGE_DB_TRANSACTION_FAILED" as const;
40
- export const FORGE_DB_OUTBOX_WRITE_FAILED = "FORGE_DB_OUTBOX_WRITE_FAILED" as const;
34
+ export const FORGE_DB_CONNECT_FAILED = "FORGE_DB_CONNECT_FAILED" as const;
35
+ export const FORGE_DB_MIGRATION_FAILED = "FORGE_DB_MIGRATION_FAILED" as const;
36
+ export const FORGE_DB_UNSUPPORTED_FIELD_TYPE =
37
+ "FORGE_DB_UNSUPPORTED_FIELD_TYPE" as const;
38
+ export const FORGE_DB_INVALID_SQL_PLAN = "FORGE_DB_INVALID_SQL_PLAN" as const;
39
+ export const FORGE_DB_TRANSACTION_FAILED = "FORGE_DB_TRANSACTION_FAILED" as const;
40
+ export const FORGE_DB_OUTBOX_WRITE_FAILED = "FORGE_DB_OUTBOX_WRITE_FAILED" as const;
41
41
  export const FORGE_DB_ADAPTER_UNAVAILABLE = "FORGE_DB_ADAPTER_UNAVAILABLE" as const;
42
42
  export const FORGE_RLS_POLICY_MISSING = "FORGE_RLS_POLICY_MISSING" as const;
43
43
  export const FORGE_RLS_TENANT_FIELD_MISSING =
@@ -82,6 +82,9 @@ export const FORGE_DEPS_ENGINE_INCOMPATIBLE =
82
82
  export const FORGE_DEPS_APPLY_FAILED = "FORGE_DEPS_APPLY_FAILED" as const;
83
83
  export const FORGE_DEPS_ROLLBACK_FAILED = "FORGE_DEPS_ROLLBACK_FAILED" as const;
84
84
  export const FORGE_DEPS_LOCKFILE_DRIFT = "FORGE_DEPS_LOCKFILE_DRIFT" as const;
85
+ export const FORGE_DEPS_UNKNOWN_EXPORT = "FORGE_DEPS_UNKNOWN_EXPORT" as const;
86
+ export const FORGE_DEPS_RUNTIME_TYPE_MISMATCH =
87
+ "FORGE_DEPS_RUNTIME_TYPE_MISMATCH" as const;
85
88
  export const FORGE_RELEASE_DIRTY_WORKTREE =
86
89
  "FORGE_RELEASE_DIRTY_WORKTREE" as const;
87
90
  export const FORGE_RELEASE_GENERATED_DRIFT =
@@ -295,52 +298,52 @@ export const FORGE_UI_TESTID_MISSING = "FORGE_UI_TESTID_MISSING" as const;
295
298
  export const FORGE_UI_AUTH_SETUP_FAILED =
296
299
  "FORGE_UI_AUTH_SETUP_FAILED" as const;
297
300
  export const FORGE_OUTBOX_PROCESS_FAILED = "FORGE_OUTBOX_PROCESS_FAILED" as const;
298
- export const FORGE_OUTBOX_NO_SUBSCRIPTIONS = "FORGE_OUTBOX_NO_SUBSCRIPTIONS" as const;
299
- export const FORGE_OUTBOX_DELIVERY_NOT_FOUND = "FORGE_OUTBOX_DELIVERY_NOT_FOUND" as const;
300
- export const FORGE_ACTION_EVENT_UNPARSEABLE = "FORGE_ACTION_EVENT_UNPARSEABLE" as const;
301
- export const FORGE_WORKFLOW_UNKNOWN = "FORGE_WORKFLOW_UNKNOWN" as const;
302
- export const FORGE_WORKFLOW_STEP_FAILED = "FORGE_WORKFLOW_STEP_FAILED" as const;
303
- export const FORGE_WORKFLOW_STEP_DEAD = "FORGE_WORKFLOW_STEP_DEAD" as const;
304
- export const FORGE_WORKFLOW_RUN_NOT_FOUND = "FORGE_WORKFLOW_RUN_NOT_FOUND" as const;
305
- export const FORGE_WORKFLOW_DUPLICATE_RUN = "FORGE_WORKFLOW_DUPLICATE_RUN" as const;
306
- export const FORGE_WORKFLOW_INVALID_TRIGGER = "FORGE_WORKFLOW_INVALID_TRIGGER" as const;
307
- export const FORGE_WORKFLOW_INVALID_STEP = "FORGE_WORKFLOW_INVALID_STEP" as const;
308
- export const FORGE_WORKFLOW_CANCELED = "FORGE_WORKFLOW_CANCELED" as const;
309
- export const FORGE_TELEMETRY_SECRET_REDACTED =
310
- "FORGE_TELEMETRY_SECRET_REDACTED" as const;
311
- export const FORGE_TELEMETRY_PAYLOAD_TRUNCATED =
312
- "FORGE_TELEMETRY_PAYLOAD_TRUNCATED" as const;
313
- export const FORGE_TELEMETRY_SINK_FAILED = "FORGE_TELEMETRY_SINK_FAILED" as const;
314
- export const FORGE_TELEMETRY_UNKNOWN_SINK = "FORGE_TELEMETRY_UNKNOWN_SINK" as const;
315
- export const FORGE_POLICY_DENIED = "FORGE_POLICY_DENIED" as const;
316
- export const FORGE_POLICY_MISSING = "FORGE_POLICY_MISSING" as const;
317
- export const FORGE_POLICY_UNKNOWN = "FORGE_POLICY_UNKNOWN" as const;
318
- export const FORGE_POLICY_DUPLICATE = "FORGE_POLICY_DUPLICATE" as const;
319
- export const FORGE_POLICY_ROLE_EMPTY = "FORGE_POLICY_ROLE_EMPTY" as const;
320
- export const FORGE_TENANT_TABLE_WITHOUT_TENANT_ID =
321
- "FORGE_TENANT_TABLE_WITHOUT_TENANT_ID" as const;
322
- export const FORGE_TENANT_SCOPE_VIOLATION = "FORGE_TENANT_SCOPE_VIOLATION" as const;
323
- export const FORGE_SECRET_MISSING = "FORGE_SECRET_MISSING" as const;
324
- export const FORGE_SECRET_FORBIDDEN_CONTEXT =
325
- "FORGE_SECRET_FORBIDDEN_CONTEXT" as const;
326
- export const FORGE_SECRET_DIRECT_PROCESS_ENV =
327
- "FORGE_SECRET_DIRECT_PROCESS_ENV" as const;
328
- export const FORGE_ENV_PUBLIC_SECRET = "FORGE_ENV_PUBLIC_SECRET" as const;
329
- export const FORGE_ENV_UNKNOWN_REQUIRED = "FORGE_ENV_UNKNOWN_REQUIRED" as const;
330
- export const FORGE_VERIFY_POLICY = "FORGE_VERIFY_POLICY" as const;
331
- export const FORGE_AI_FORBIDDEN_CONTEXT = "FORGE_AI_FORBIDDEN_CONTEXT" as const;
332
- export const FORGE_AI_PROVIDER_UNKNOWN = "FORGE_AI_PROVIDER_UNKNOWN" as const;
333
- export const FORGE_AI_MODEL_MISSING = "FORGE_AI_MODEL_MISSING" as const;
334
- export const FORGE_AI_SECRET_MISSING = "FORGE_AI_SECRET_MISSING" as const;
335
- export const FORGE_AI_DYNAMIC_PROVIDER = "FORGE_AI_DYNAMIC_PROVIDER" as const;
336
- export const FORGE_AI_GENERATION_FAILED = "FORGE_AI_GENERATION_FAILED" as const;
337
- export const FORGE_AI_USAGE_UNAVAILABLE = "FORGE_AI_USAGE_UNAVAILABLE" as const;
338
- export const FORGE_QUERY_WRITE_FORBIDDEN = "FORGE_QUERY_WRITE_FORBIDDEN" as const;
339
- export const FORGE_QUERY_EMIT_FORBIDDEN = "FORGE_QUERY_EMIT_FORBIDDEN" as const;
340
- export const FORGE_QUERY_SECRET_FORBIDDEN = "FORGE_QUERY_SECRET_FORBIDDEN" as const;
341
- export const FORGE_QUERY_AI_FORBIDDEN = "FORGE_QUERY_AI_FORBIDDEN" as const;
342
- export const FORGE_QUERY_INTEGRATION_FORBIDDEN =
343
- "FORGE_QUERY_INTEGRATION_FORBIDDEN" as const;
301
+ export const FORGE_OUTBOX_NO_SUBSCRIPTIONS = "FORGE_OUTBOX_NO_SUBSCRIPTIONS" as const;
302
+ export const FORGE_OUTBOX_DELIVERY_NOT_FOUND = "FORGE_OUTBOX_DELIVERY_NOT_FOUND" as const;
303
+ export const FORGE_ACTION_EVENT_UNPARSEABLE = "FORGE_ACTION_EVENT_UNPARSEABLE" as const;
304
+ export const FORGE_WORKFLOW_UNKNOWN = "FORGE_WORKFLOW_UNKNOWN" as const;
305
+ export const FORGE_WORKFLOW_STEP_FAILED = "FORGE_WORKFLOW_STEP_FAILED" as const;
306
+ export const FORGE_WORKFLOW_STEP_DEAD = "FORGE_WORKFLOW_STEP_DEAD" as const;
307
+ export const FORGE_WORKFLOW_RUN_NOT_FOUND = "FORGE_WORKFLOW_RUN_NOT_FOUND" as const;
308
+ export const FORGE_WORKFLOW_DUPLICATE_RUN = "FORGE_WORKFLOW_DUPLICATE_RUN" as const;
309
+ export const FORGE_WORKFLOW_INVALID_TRIGGER = "FORGE_WORKFLOW_INVALID_TRIGGER" as const;
310
+ export const FORGE_WORKFLOW_INVALID_STEP = "FORGE_WORKFLOW_INVALID_STEP" as const;
311
+ export const FORGE_WORKFLOW_CANCELED = "FORGE_WORKFLOW_CANCELED" as const;
312
+ export const FORGE_TELEMETRY_SECRET_REDACTED =
313
+ "FORGE_TELEMETRY_SECRET_REDACTED" as const;
314
+ export const FORGE_TELEMETRY_PAYLOAD_TRUNCATED =
315
+ "FORGE_TELEMETRY_PAYLOAD_TRUNCATED" as const;
316
+ export const FORGE_TELEMETRY_SINK_FAILED = "FORGE_TELEMETRY_SINK_FAILED" as const;
317
+ export const FORGE_TELEMETRY_UNKNOWN_SINK = "FORGE_TELEMETRY_UNKNOWN_SINK" as const;
318
+ export const FORGE_POLICY_DENIED = "FORGE_POLICY_DENIED" as const;
319
+ export const FORGE_POLICY_MISSING = "FORGE_POLICY_MISSING" as const;
320
+ export const FORGE_POLICY_UNKNOWN = "FORGE_POLICY_UNKNOWN" as const;
321
+ export const FORGE_POLICY_DUPLICATE = "FORGE_POLICY_DUPLICATE" as const;
322
+ export const FORGE_POLICY_ROLE_EMPTY = "FORGE_POLICY_ROLE_EMPTY" as const;
323
+ export const FORGE_TENANT_TABLE_WITHOUT_TENANT_ID =
324
+ "FORGE_TENANT_TABLE_WITHOUT_TENANT_ID" as const;
325
+ export const FORGE_TENANT_SCOPE_VIOLATION = "FORGE_TENANT_SCOPE_VIOLATION" as const;
326
+ export const FORGE_SECRET_MISSING = "FORGE_SECRET_MISSING" as const;
327
+ export const FORGE_SECRET_FORBIDDEN_CONTEXT =
328
+ "FORGE_SECRET_FORBIDDEN_CONTEXT" as const;
329
+ export const FORGE_SECRET_DIRECT_PROCESS_ENV =
330
+ "FORGE_SECRET_DIRECT_PROCESS_ENV" as const;
331
+ export const FORGE_ENV_PUBLIC_SECRET = "FORGE_ENV_PUBLIC_SECRET" as const;
332
+ export const FORGE_ENV_UNKNOWN_REQUIRED = "FORGE_ENV_UNKNOWN_REQUIRED" as const;
333
+ export const FORGE_VERIFY_POLICY = "FORGE_VERIFY_POLICY" as const;
334
+ export const FORGE_AI_FORBIDDEN_CONTEXT = "FORGE_AI_FORBIDDEN_CONTEXT" as const;
335
+ export const FORGE_AI_PROVIDER_UNKNOWN = "FORGE_AI_PROVIDER_UNKNOWN" as const;
336
+ export const FORGE_AI_MODEL_MISSING = "FORGE_AI_MODEL_MISSING" as const;
337
+ export const FORGE_AI_SECRET_MISSING = "FORGE_AI_SECRET_MISSING" as const;
338
+ export const FORGE_AI_DYNAMIC_PROVIDER = "FORGE_AI_DYNAMIC_PROVIDER" as const;
339
+ export const FORGE_AI_GENERATION_FAILED = "FORGE_AI_GENERATION_FAILED" as const;
340
+ export const FORGE_AI_USAGE_UNAVAILABLE = "FORGE_AI_USAGE_UNAVAILABLE" as const;
341
+ export const FORGE_QUERY_WRITE_FORBIDDEN = "FORGE_QUERY_WRITE_FORBIDDEN" as const;
342
+ export const FORGE_QUERY_EMIT_FORBIDDEN = "FORGE_QUERY_EMIT_FORBIDDEN" as const;
343
+ export const FORGE_QUERY_SECRET_FORBIDDEN = "FORGE_QUERY_SECRET_FORBIDDEN" as const;
344
+ export const FORGE_QUERY_AI_FORBIDDEN = "FORGE_QUERY_AI_FORBIDDEN" as const;
345
+ export const FORGE_QUERY_INTEGRATION_FORBIDDEN =
346
+ "FORGE_QUERY_INTEGRATION_FORBIDDEN" as const;
344
347
  export const FORGE_QUERY_NOT_FOUND = "FORGE_QUERY_NOT_FOUND" as const;
345
348
  export const FORGE_QUERY_FAILED = "FORGE_QUERY_FAILED" as const;
346
349
  export const FORGE_LIVEQUERY_WRITE_FORBIDDEN =
@@ -360,13 +363,13 @@ export const FORGE_LIVEQUERY_SUBSCRIPTION_FAILED =
360
363
  "FORGE_LIVEQUERY_SUBSCRIPTION_FAILED" as const;
361
364
  export const FORGE_LIVEQUERY_RERUN_FAILED =
362
365
  "FORGE_LIVEQUERY_RERUN_FAILED" as const;
363
-
364
- export const DIAGNOSTIC_CODES = [
365
- FORGE_DUP_SYMBOL,
366
- FORGE_DRIFT,
367
- FORGE_PKG_NO_TYPES,
368
- FORGE_GUARD_VIOLATION,
369
- FORGE_SANDBOX_LIMIT,
366
+
367
+ export const DIAGNOSTIC_CODES = [
368
+ FORGE_DUP_SYMBOL,
369
+ FORGE_DRIFT,
370
+ FORGE_PKG_NO_TYPES,
371
+ FORGE_GUARD_VIOLATION,
372
+ FORGE_SANDBOX_LIMIT,
370
373
  FORGE_SECRET_LEAK,
371
374
  FORGE_AGENT_CONTRACT_SECRET_LEAK,
372
375
  FORGE_AUTH_MISSING_TOKEN,
@@ -380,20 +383,20 @@ export const DIAGNOSTIC_CODES = [
380
383
  FORGE_AUTH_DEV_HEADERS_IN_PRODUCTION,
381
384
  FORGE_AUTH_MODE_INVALID,
382
385
  FORGE_AUTH_DISABLED,
383
- FORGE_ORPHANED_GENERATED_FILE,
384
- FORGE_SANDBOX_ABNORMAL,
385
- FORGE_DUP_RUNTIME_ENTRY,
386
- FORGE_RUNTIME_UNRESOLVABLE,
387
- FORGE_RUNTIME_NOT_FOUND,
388
- FORGE_RUNTIME_GUARD_BLOCKED,
386
+ FORGE_ORPHANED_GENERATED_FILE,
387
+ FORGE_SANDBOX_ABNORMAL,
388
+ FORGE_DUP_RUNTIME_ENTRY,
389
+ FORGE_RUNTIME_UNRESOLVABLE,
390
+ FORGE_RUNTIME_NOT_FOUND,
391
+ FORGE_RUNTIME_GUARD_BLOCKED,
389
392
  FORGE_DEV_SERVER_ERROR,
390
393
  FORGE_DEV_WATCH_FAILED,
391
394
  FORGE_DEV_INVOKE_FAILED,
392
395
  FORGE_DEV_DOCTOR_MISSING_ARTIFACT,
393
- FORGE_DB_CONNECT_FAILED,
394
- FORGE_DB_MIGRATION_FAILED,
395
- FORGE_DB_UNSUPPORTED_FIELD_TYPE,
396
- FORGE_DB_INVALID_SQL_PLAN,
396
+ FORGE_DB_CONNECT_FAILED,
397
+ FORGE_DB_MIGRATION_FAILED,
398
+ FORGE_DB_UNSUPPORTED_FIELD_TYPE,
399
+ FORGE_DB_INVALID_SQL_PLAN,
397
400
  FORGE_DB_TRANSACTION_FAILED,
398
401
  FORGE_DB_OUTBOX_WRITE_FAILED,
399
402
  FORGE_DB_ADAPTER_UNAVAILABLE,
@@ -425,6 +428,8 @@ export const DIAGNOSTIC_CODES = [
425
428
  FORGE_DEPS_APPLY_FAILED,
426
429
  FORGE_DEPS_ROLLBACK_FAILED,
427
430
  FORGE_DEPS_LOCKFILE_DRIFT,
431
+ FORGE_DEPS_UNKNOWN_EXPORT,
432
+ FORGE_DEPS_RUNTIME_TYPE_MISMATCH,
428
433
  FORGE_RELEASE_DIRTY_WORKTREE,
429
434
  FORGE_RELEASE_GENERATED_DRIFT,
430
435
  FORGE_RELEASE_ID_MISSING,
@@ -555,45 +560,45 @@ export const DIAGNOSTIC_CODES = [
555
560
  FORGE_UI_TESTID_MISSING,
556
561
  FORGE_UI_AUTH_SETUP_FAILED,
557
562
  FORGE_OUTBOX_PROCESS_FAILED,
558
- FORGE_OUTBOX_NO_SUBSCRIPTIONS,
559
- FORGE_OUTBOX_DELIVERY_NOT_FOUND,
560
- FORGE_ACTION_EVENT_UNPARSEABLE,
561
- FORGE_WORKFLOW_UNKNOWN,
562
- FORGE_WORKFLOW_STEP_FAILED,
563
- FORGE_WORKFLOW_STEP_DEAD,
564
- FORGE_WORKFLOW_RUN_NOT_FOUND,
565
- FORGE_WORKFLOW_DUPLICATE_RUN,
566
- FORGE_WORKFLOW_INVALID_TRIGGER,
567
- FORGE_WORKFLOW_INVALID_STEP,
568
- FORGE_WORKFLOW_CANCELED,
569
- FORGE_TELEMETRY_SECRET_REDACTED,
570
- FORGE_TELEMETRY_PAYLOAD_TRUNCATED,
571
- FORGE_TELEMETRY_SINK_FAILED,
572
- FORGE_TELEMETRY_UNKNOWN_SINK,
573
- FORGE_POLICY_DENIED,
574
- FORGE_POLICY_MISSING,
575
- FORGE_POLICY_UNKNOWN,
576
- FORGE_POLICY_DUPLICATE,
577
- FORGE_POLICY_ROLE_EMPTY,
578
- FORGE_TENANT_TABLE_WITHOUT_TENANT_ID,
579
- FORGE_TENANT_SCOPE_VIOLATION,
580
- FORGE_SECRET_MISSING,
581
- FORGE_SECRET_FORBIDDEN_CONTEXT,
582
- FORGE_SECRET_DIRECT_PROCESS_ENV,
583
- FORGE_ENV_PUBLIC_SECRET,
584
- FORGE_ENV_UNKNOWN_REQUIRED,
585
- FORGE_VERIFY_POLICY,
586
- FORGE_AI_FORBIDDEN_CONTEXT,
587
- FORGE_AI_PROVIDER_UNKNOWN,
588
- FORGE_AI_MODEL_MISSING,
589
- FORGE_AI_SECRET_MISSING,
590
- FORGE_AI_DYNAMIC_PROVIDER,
591
- FORGE_AI_GENERATION_FAILED,
592
- FORGE_AI_USAGE_UNAVAILABLE,
593
- FORGE_QUERY_WRITE_FORBIDDEN,
594
- FORGE_QUERY_EMIT_FORBIDDEN,
595
- FORGE_QUERY_SECRET_FORBIDDEN,
596
- FORGE_QUERY_AI_FORBIDDEN,
563
+ FORGE_OUTBOX_NO_SUBSCRIPTIONS,
564
+ FORGE_OUTBOX_DELIVERY_NOT_FOUND,
565
+ FORGE_ACTION_EVENT_UNPARSEABLE,
566
+ FORGE_WORKFLOW_UNKNOWN,
567
+ FORGE_WORKFLOW_STEP_FAILED,
568
+ FORGE_WORKFLOW_STEP_DEAD,
569
+ FORGE_WORKFLOW_RUN_NOT_FOUND,
570
+ FORGE_WORKFLOW_DUPLICATE_RUN,
571
+ FORGE_WORKFLOW_INVALID_TRIGGER,
572
+ FORGE_WORKFLOW_INVALID_STEP,
573
+ FORGE_WORKFLOW_CANCELED,
574
+ FORGE_TELEMETRY_SECRET_REDACTED,
575
+ FORGE_TELEMETRY_PAYLOAD_TRUNCATED,
576
+ FORGE_TELEMETRY_SINK_FAILED,
577
+ FORGE_TELEMETRY_UNKNOWN_SINK,
578
+ FORGE_POLICY_DENIED,
579
+ FORGE_POLICY_MISSING,
580
+ FORGE_POLICY_UNKNOWN,
581
+ FORGE_POLICY_DUPLICATE,
582
+ FORGE_POLICY_ROLE_EMPTY,
583
+ FORGE_TENANT_TABLE_WITHOUT_TENANT_ID,
584
+ FORGE_TENANT_SCOPE_VIOLATION,
585
+ FORGE_SECRET_MISSING,
586
+ FORGE_SECRET_FORBIDDEN_CONTEXT,
587
+ FORGE_SECRET_DIRECT_PROCESS_ENV,
588
+ FORGE_ENV_PUBLIC_SECRET,
589
+ FORGE_ENV_UNKNOWN_REQUIRED,
590
+ FORGE_VERIFY_POLICY,
591
+ FORGE_AI_FORBIDDEN_CONTEXT,
592
+ FORGE_AI_PROVIDER_UNKNOWN,
593
+ FORGE_AI_MODEL_MISSING,
594
+ FORGE_AI_SECRET_MISSING,
595
+ FORGE_AI_DYNAMIC_PROVIDER,
596
+ FORGE_AI_GENERATION_FAILED,
597
+ FORGE_AI_USAGE_UNAVAILABLE,
598
+ FORGE_QUERY_WRITE_FORBIDDEN,
599
+ FORGE_QUERY_EMIT_FORBIDDEN,
600
+ FORGE_QUERY_SECRET_FORBIDDEN,
601
+ FORGE_QUERY_AI_FORBIDDEN,
597
602
  FORGE_QUERY_INTEGRATION_FORBIDDEN,
598
603
  FORGE_QUERY_NOT_FOUND,
599
604
  FORGE_QUERY_FAILED,
@@ -607,5 +612,5 @@ export const DIAGNOSTIC_CODES = [
607
612
  FORGE_LIVEQUERY_SUBSCRIPTION_FAILED,
608
613
  FORGE_LIVEQUERY_RERUN_FAILED,
609
614
  ] as const;
610
-
611
- export type DiagnosticCode = (typeof DIAGNOSTIC_CODES)[number];
615
+
616
+ export type DiagnosticCode = (typeof DIAGNOSTIC_CODES)[number];
@@ -1,6 +1,6 @@
1
- import type { Diagnostic, DiagnosticSeverity } from "../types/diagnostic.ts";
2
- import type { DiagnosticCode } from "./codes.ts";
3
-
1
+ import type { Diagnostic, DiagnosticSeverity } from "../types/diagnostic.ts";
2
+ import type { DiagnosticCode } from "./codes.ts";
3
+
4
4
  export interface DiagnosticInput {
5
5
  severity: DiagnosticSeverity;
6
6
  code: DiagnosticCode | string;
@@ -142,46 +142,46 @@ export function createDiagnostic(input: DiagnosticInput): Diagnostic {
142
142
  ...(input.docs ?? guidance?.docs ? { docs: input.docs ?? guidance?.docs } : {}),
143
143
  };
144
144
  }
145
-
146
- export function forgeDupSymbol(
147
- qualifiedName: string,
148
- file: string,
149
- ): Diagnostic {
150
- return createDiagnostic({
151
- severity: "warning",
152
- code: "FORGE_DUP_SYMBOL",
153
- message: `duplicate symbol id for '${qualifiedName}'`,
154
- file,
155
- });
156
- }
157
-
158
- export function forgeDrift(file: string): Diagnostic {
159
- return createDiagnostic({
160
- severity: "warning",
161
- code: "FORGE_DRIFT",
162
- message: `generated file drift detected: ${file}`,
163
- file,
164
- });
165
- }
166
-
167
- export function forgePkgNoTypes(
168
- packageName: string,
169
- subpath: string,
170
- ): Diagnostic {
171
- return createDiagnostic({
172
- severity: "warning",
173
- code: "FORGE_PKG_NO_TYPES",
174
- message: `no types found for '${packageName}' subpath '${subpath}'`,
175
- });
176
- }
177
-
178
- export function forgeGuardViolation(
179
- packageName: string,
180
- context: string,
181
- rationale: string,
182
- file: string,
183
- span: { start: number; end: number },
184
- ): Diagnostic {
145
+
146
+ export function forgeDupSymbol(
147
+ qualifiedName: string,
148
+ file: string,
149
+ ): Diagnostic {
150
+ return createDiagnostic({
151
+ severity: "warning",
152
+ code: "FORGE_DUP_SYMBOL",
153
+ message: `duplicate symbol id for '${qualifiedName}'`,
154
+ file,
155
+ });
156
+ }
157
+
158
+ export function forgeDrift(file: string): Diagnostic {
159
+ return createDiagnostic({
160
+ severity: "warning",
161
+ code: "FORGE_DRIFT",
162
+ message: `generated file drift detected: ${file}`,
163
+ file,
164
+ });
165
+ }
166
+
167
+ export function forgePkgNoTypes(
168
+ packageName: string,
169
+ subpath: string,
170
+ ): Diagnostic {
171
+ return createDiagnostic({
172
+ severity: "warning",
173
+ code: "FORGE_PKG_NO_TYPES",
174
+ message: `no types found for '${packageName}' subpath '${subpath}'`,
175
+ });
176
+ }
177
+
178
+ export function forgeGuardViolation(
179
+ packageName: string,
180
+ context: string,
181
+ rationale: string,
182
+ file: string,
183
+ span: { start: number; end: number },
184
+ ): Diagnostic {
185
185
  return createDiagnostic({
186
186
  severity: "error",
187
187
  code: "FORGE_GUARD_VIOLATION",
@@ -199,47 +199,47 @@ export function forgeGuardViolation(
199
199
  docs: ["src/forge/_generated/runtimeRules.md", "AGENTS.md"],
200
200
  });
201
201
  }
202
-
203
- export function forgeSandboxLimit(packageName: string): Diagnostic {
204
- return createDiagnostic({
205
- severity: "warning",
206
- code: "FORGE_SANDBOX_LIMIT",
207
- message: `sandbox limit exceeded while inspecting '${packageName}'; falling back to static analysis`,
208
- });
209
- }
210
-
211
- export function forgeSandboxAbnormal(packageName: string, detail?: string): Diagnostic {
212
- const suffix = detail ? ` (${detail})` : "";
213
- return createDiagnostic({
214
- severity: "warning",
215
- code: "FORGE_SANDBOX_ABNORMAL",
216
- message: `runtime inspection process exited abnormally for '${packageName}'; falling back to static-only package analysis${suffix}`,
217
- });
218
- }
219
-
220
- export function forgeSecretLeak(): Diagnostic {
221
- return createDiagnostic({
222
- severity: "error",
223
- code: "FORGE_SECRET_LEAK",
224
- message:
225
- "secret leak detected in sandbox inspection result; withholding runtime data",
226
- });
227
- }
228
-
229
- export function forgeOrphanedGeneratedFile(file: string): Diagnostic {
230
- return createDiagnostic({
231
- severity: "error",
232
- code: "FORGE_ORPHANED_GENERATED_FILE",
233
- message: `orphaned generated file: ${file}`,
234
- file,
235
- });
236
- }
237
-
238
- export function forgeWriteError(file: string): Diagnostic {
239
- return createDiagnostic({
240
- severity: "error",
241
- code: "FORGE_WRITE_ERROR",
242
- message: `failed to write generated file: ${file}`,
243
- file,
244
- });
245
- }
202
+
203
+ export function forgeSandboxLimit(packageName: string): Diagnostic {
204
+ return createDiagnostic({
205
+ severity: "warning",
206
+ code: "FORGE_SANDBOX_LIMIT",
207
+ message: `sandbox limit exceeded while inspecting '${packageName}'; falling back to static analysis`,
208
+ });
209
+ }
210
+
211
+ export function forgeSandboxAbnormal(packageName: string, detail?: string): Diagnostic {
212
+ const suffix = detail ? ` (${detail})` : "";
213
+ return createDiagnostic({
214
+ severity: "warning",
215
+ code: "FORGE_SANDBOX_ABNORMAL",
216
+ message: `runtime inspection process exited abnormally for '${packageName}'; falling back to static-only package analysis${suffix}`,
217
+ });
218
+ }
219
+
220
+ export function forgeSecretLeak(): Diagnostic {
221
+ return createDiagnostic({
222
+ severity: "error",
223
+ code: "FORGE_SECRET_LEAK",
224
+ message:
225
+ "secret leak detected in sandbox inspection result; withholding runtime data",
226
+ });
227
+ }
228
+
229
+ export function forgeOrphanedGeneratedFile(file: string): Diagnostic {
230
+ return createDiagnostic({
231
+ severity: "error",
232
+ code: "FORGE_ORPHANED_GENERATED_FILE",
233
+ message: `orphaned generated file: ${file}`,
234
+ file,
235
+ });
236
+ }
237
+
238
+ export function forgeWriteError(file: string): Diagnostic {
239
+ return createDiagnostic({
240
+ severity: "error",
241
+ code: "FORGE_WRITE_ERROR",
242
+ message: `failed to write generated file: ${file}`,
243
+ file,
244
+ });
245
+ }
@@ -1,30 +1,30 @@
1
- export {
2
- FORGE_DUP_SYMBOL,
3
- FORGE_DRIFT,
4
- FORGE_PKG_NO_TYPES,
5
- FORGE_GUARD_VIOLATION,
6
- FORGE_SANDBOX_LIMIT,
7
- FORGE_SECRET_LEAK,
8
- FORGE_ORPHANED_GENERATED_FILE,
9
- FORGE_SANDBOX_ABNORMAL,
10
- FORGE_DUP_RUNTIME_ENTRY,
11
- FORGE_RUNTIME_UNRESOLVABLE,
12
- FORGE_RUNTIME_NOT_FOUND,
13
- FORGE_RUNTIME_GUARD_BLOCKED,
14
- FORGE_DEV_SERVER_ERROR,
15
- FORGE_DEV_WATCH_FAILED,
16
- FORGE_DEV_INVOKE_FAILED,
17
- FORGE_DB_CONNECT_FAILED,
18
- FORGE_DB_MIGRATION_FAILED,
19
- FORGE_DB_UNSUPPORTED_FIELD_TYPE,
20
- FORGE_DB_INVALID_SQL_PLAN,
21
- FORGE_DB_TRANSACTION_FAILED,
22
- FORGE_DB_OUTBOX_WRITE_FAILED,
23
- FORGE_DB_ADAPTER_UNAVAILABLE,
24
- FORGE_AI_FORBIDDEN_CONTEXT,
25
- FORGE_AI_PROVIDER_UNKNOWN,
26
- FORGE_AI_MODEL_MISSING,
27
- FORGE_AI_SECRET_MISSING,
1
+ export {
2
+ FORGE_DUP_SYMBOL,
3
+ FORGE_DRIFT,
4
+ FORGE_PKG_NO_TYPES,
5
+ FORGE_GUARD_VIOLATION,
6
+ FORGE_SANDBOX_LIMIT,
7
+ FORGE_SECRET_LEAK,
8
+ FORGE_ORPHANED_GENERATED_FILE,
9
+ FORGE_SANDBOX_ABNORMAL,
10
+ FORGE_DUP_RUNTIME_ENTRY,
11
+ FORGE_RUNTIME_UNRESOLVABLE,
12
+ FORGE_RUNTIME_NOT_FOUND,
13
+ FORGE_RUNTIME_GUARD_BLOCKED,
14
+ FORGE_DEV_SERVER_ERROR,
15
+ FORGE_DEV_WATCH_FAILED,
16
+ FORGE_DEV_INVOKE_FAILED,
17
+ FORGE_DB_CONNECT_FAILED,
18
+ FORGE_DB_MIGRATION_FAILED,
19
+ FORGE_DB_UNSUPPORTED_FIELD_TYPE,
20
+ FORGE_DB_INVALID_SQL_PLAN,
21
+ FORGE_DB_TRANSACTION_FAILED,
22
+ FORGE_DB_OUTBOX_WRITE_FAILED,
23
+ FORGE_DB_ADAPTER_UNAVAILABLE,
24
+ FORGE_AI_FORBIDDEN_CONTEXT,
25
+ FORGE_AI_PROVIDER_UNKNOWN,
26
+ FORGE_AI_MODEL_MISSING,
27
+ FORGE_AI_SECRET_MISSING,
28
28
  FORGE_AI_DYNAMIC_PROVIDER,
29
29
  FORGE_AI_GENERATION_FAILED,
30
30
  FORGE_AI_USAGE_UNAVAILABLE,
@@ -39,17 +39,17 @@ export {
39
39
  FORGE_LIVEQUERY_RERUN_FAILED,
40
40
  DIAGNOSTIC_CODES,
41
41
  } from "./codes.ts";
42
- export type { DiagnosticCode } from "./codes.ts";
43
- export {
44
- createDiagnostic,
45
- forgeDupSymbol,
46
- forgeDrift,
47
- forgePkgNoTypes,
48
- forgeGuardViolation,
49
- forgeSandboxLimit,
50
- forgeSandboxAbnormal,
51
- forgeSecretLeak,
52
- forgeOrphanedGeneratedFile,
53
- forgeWriteError,
54
- } from "./create.ts";
55
- export type { DiagnosticInput } from "./create.ts";
42
+ export type { DiagnosticCode } from "./codes.ts";
43
+ export {
44
+ createDiagnostic,
45
+ forgeDupSymbol,
46
+ forgeDrift,
47
+ forgePkgNoTypes,
48
+ forgeGuardViolation,
49
+ forgeSandboxLimit,
50
+ forgeSandboxAbnormal,
51
+ forgeSecretLeak,
52
+ forgeOrphanedGeneratedFile,
53
+ forgeWriteError,
54
+ } from "./create.ts";
55
+ export type { DiagnosticInput } from "./create.ts";
@@ -1,14 +1,14 @@
1
- export type ArtifactKind = "json" | "typescript" | "markdown" | "text";
2
-
3
- export function detectArtifactKind(path: string): ArtifactKind {
4
- if (path.endsWith(".json")) {
5
- return "json";
6
- }
7
- if (path.endsWith(".ts") || path.endsWith(".tsx")) {
8
- return "typescript";
9
- }
10
- if (path.endsWith(".md")) {
11
- return "markdown";
12
- }
13
- return "text";
14
- }
1
+ export type ArtifactKind = "json" | "typescript" | "markdown" | "text";
2
+
3
+ export function detectArtifactKind(path: string): ArtifactKind {
4
+ if (path.endsWith(".json")) {
5
+ return "json";
6
+ }
7
+ if (path.endsWith(".ts") || path.endsWith(".tsx")) {
8
+ return "typescript";
9
+ }
10
+ if (path.endsWith(".md")) {
11
+ return "markdown";
12
+ }
13
+ return "text";
14
+ }