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
@@ -1,80 +1,125 @@
1
- import type { CapabilitySet } from "./capability.ts";
2
- import type { RuntimeExportShape } from "./sandbox.ts";
3
- import type {
4
- PackageManager,
5
- ResolutionMode,
6
- RuntimeContext,
7
- SandboxBackend,
8
- } from "./runtime.ts";
9
-
10
- export interface JsDoc {
11
- summary: string;
12
- tags: { tag: string; text: string }[];
13
- }
14
-
15
- export interface ExportClassification {
16
- alias: string;
17
- packageName: string;
18
- entrypoint: string;
19
- exportName: string;
20
- compatible: RuntimeContext[];
21
- incompatible: RuntimeContext[];
22
- capabilities: CapabilitySet;
23
- }
24
-
25
- export type ExportKind =
26
- | "function"
27
- | "class"
28
- | "const"
29
- | "type"
30
- | "interface"
31
- | "namespace";
32
-
33
- export interface ExportSignature {
34
- name: string;
35
- kind: ExportKind;
36
- signature: string;
37
- overloads?: string[];
38
- declarations?: string[];
39
- classification: ExportClassification;
40
- jsdoc: JsDoc | null;
41
- examples: string[];
42
- }
43
-
44
- export interface Entrypoint {
45
- subpath: string;
46
- conditions: string[];
47
- patternBacked: boolean;
48
- dtsPath: string | null;
49
- exports: ExportSignature[];
50
- }
51
-
52
- export interface PackageApi {
53
- name: string;
54
- version: string;
55
- packageManager: PackageManager;
56
- resolutionMode: ResolutionMode;
57
- entrypoints: Entrypoint[];
58
- source: "static" | "static+runtime";
59
- runtimeShape?: RuntimeExportShape;
60
- contentChecksum: string;
61
- }
62
-
63
- export interface PackageGraph {
64
- schemaVersion: string;
65
- generatorVersion: string;
66
- analyzerVersion: string;
67
- packages: PackageApi[];
68
- }
69
-
70
- export interface Dependency {
71
- name: string;
72
- version: string;
73
- packageManager: PackageManager;
74
- packageIntegrity?: string;
75
- installPath: string;
76
- }
77
-
1
+ import type { CapabilitySet } from "./capability.ts";
2
+ import type { RuntimeExportKind, RuntimeExportShape } from "./sandbox.ts";
3
+ import type {
4
+ PackageManager,
5
+ ResolutionMode,
6
+ RuntimeContext,
7
+ SandboxBackend,
8
+ } from "./runtime.ts";
9
+
10
+ export interface JsDoc {
11
+ summary: string;
12
+ tags: { tag: string; text: string }[];
13
+ }
14
+
15
+ export interface ExportClassification {
16
+ alias: string;
17
+ packageName: string;
18
+ entrypoint: string;
19
+ exportName: string;
20
+ compatible: RuntimeContext[];
21
+ incompatible: RuntimeContext[];
22
+ capabilities: CapabilitySet;
23
+ }
24
+
25
+ export type ExportKind =
26
+ | "function"
27
+ | "class"
28
+ | "const"
29
+ | "type"
30
+ | "interface"
31
+ | "namespace";
32
+
33
+ export interface ExportSignature {
34
+ name: string;
35
+ kind: ExportKind;
36
+ signature: string;
37
+ overloads?: string[];
38
+ declarations?: string[];
39
+ classification: ExportClassification;
40
+ jsdoc: JsDoc | null;
41
+ examples: string[];
42
+ }
43
+
44
+ export interface ResolutionTraceStep {
45
+ step: string;
46
+ status: "ok" | "miss" | "fallback" | "warning";
47
+ detail: string;
48
+ }
49
+
50
+ export interface RuntimeTypeMismatch {
51
+ entrypoint: string;
52
+ exportName: string;
53
+ kind: "types-only" | "runtime-only" | "kind-mismatch";
54
+ typesKind?: ExportKind;
55
+ runtimeKind?: RuntimeExportKind;
56
+ }
57
+
58
+ export type RuntimeCompatibilityStatus = "compatible" | "risky" | "unknown";
59
+
60
+ export interface PackageRuntimeCompatibility {
61
+ node: RuntimeCompatibilityStatus;
62
+ bun: RuntimeCompatibilityStatus;
63
+ browser: RuntimeCompatibilityStatus;
64
+ edge: RuntimeCompatibilityStatus;
65
+ reasons: string[];
66
+ risks: string[];
67
+ }
68
+
69
+ export interface PackageMetadata {
70
+ type?: "module" | "commonjs";
71
+ engines: Record<string, string>;
72
+ entryFields: {
73
+ main?: string;
74
+ module?: string;
75
+ browser?: string | boolean;
76
+ types?: string;
77
+ };
78
+ peerDependencies: string[];
79
+ optionalPeerDependencies: string[];
80
+ hasInstallScripts: boolean;
81
+ hasNativeBindings: boolean;
82
+ exportSubpathCount: number;
83
+ }
84
+
85
+ export interface Entrypoint {
86
+ subpath: string;
87
+ conditions: string[];
88
+ patternBacked: boolean;
89
+ dtsPath: string | null;
90
+ resolutionTrace?: ResolutionTraceStep[];
91
+ exports: ExportSignature[];
92
+ }
93
+
94
+ export interface PackageApi {
95
+ name: string;
96
+ version: string;
97
+ packageManager: PackageManager;
98
+ resolutionMode: ResolutionMode;
99
+ entrypoints: Entrypoint[];
100
+ source: "static" | "static+runtime";
101
+ runtimeShape?: RuntimeExportShape;
102
+ runtimeTypeMismatches?: RuntimeTypeMismatch[];
103
+ runtimeCompatibility?: PackageRuntimeCompatibility;
104
+ metadata?: PackageMetadata;
105
+ contentChecksum: string;
106
+ }
107
+
108
+ export interface PackageGraph {
109
+ schemaVersion: string;
110
+ generatorVersion: string;
111
+ analyzerVersion: string;
112
+ packages: PackageApi[];
113
+ }
114
+
115
+ export interface Dependency {
116
+ name: string;
117
+ version: string;
118
+ packageManager: PackageManager;
119
+ packageIntegrity?: string;
120
+ installPath: string;
121
+ }
122
+
78
123
  export interface AnalyzeOptions {
79
124
  runtimeInspect: boolean;
80
125
  sandboxBackend?: SandboxBackend;
@@ -1,16 +1,16 @@
1
- import type { ExportClassification } from "./package-graph.ts";
2
- import type { RuntimeContext } from "./runtime.ts";
3
-
4
- export interface RuntimeMatrixEntry {
5
- alias: string;
6
- packageName: string;
7
- compatible: RuntimeContext[];
8
- incompatible: RuntimeContext[];
9
- rationale: Record<RuntimeContext, string>;
10
- perEntrypoint: ExportClassification[];
11
- }
12
-
13
- export interface RuntimeMatrix {
14
- schemaVersion: string;
15
- entries: RuntimeMatrixEntry[];
16
- }
1
+ import type { ExportClassification } from "./package-graph.ts";
2
+ import type { RuntimeContext } from "./runtime.ts";
3
+
4
+ export interface RuntimeMatrixEntry {
5
+ alias: string;
6
+ packageName: string;
7
+ compatible: RuntimeContext[];
8
+ incompatible: RuntimeContext[];
9
+ rationale: Record<RuntimeContext, string>;
10
+ perEntrypoint: ExportClassification[];
11
+ }
12
+
13
+ export interface RuntimeMatrix {
14
+ schemaVersion: string;
15
+ entries: RuntimeMatrixEntry[];
16
+ }
@@ -1,30 +1,30 @@
1
- export const RUNTIME_CONTEXTS = [
2
- "shared",
3
- "client",
4
- "server",
5
- "query",
6
- "liveQuery",
7
- "command",
8
- "action",
9
- "workflow",
10
- "endpoint",
11
- "edge",
12
- "test",
13
- "build",
14
- ] as const;
15
-
16
- export type RuntimeContext = (typeof RUNTIME_CONTEXTS)[number];
17
-
18
- export const DETERMINISTIC_CONTEXTS = [
19
- "command",
20
- "query",
21
- "liveQuery",
22
- ] as const satisfies readonly RuntimeContext[];
23
-
24
- export type DeterministicContext = (typeof DETERMINISTIC_CONTEXTS)[number];
25
-
26
- export type PackageManager = "bun" | "npm" | "pnpm" | "yarn";
27
-
28
- export type ResolutionMode = "nodenext" | "bundler";
29
-
30
- export type SandboxBackend = "none" | "child" | "docker";
1
+ export const RUNTIME_CONTEXTS = [
2
+ "shared",
3
+ "client",
4
+ "server",
5
+ "query",
6
+ "liveQuery",
7
+ "command",
8
+ "action",
9
+ "workflow",
10
+ "endpoint",
11
+ "edge",
12
+ "test",
13
+ "build",
14
+ ] as const;
15
+
16
+ export type RuntimeContext = (typeof RUNTIME_CONTEXTS)[number];
17
+
18
+ export const DETERMINISTIC_CONTEXTS = [
19
+ "command",
20
+ "query",
21
+ "liveQuery",
22
+ ] as const satisfies readonly RuntimeContext[];
23
+
24
+ export type DeterministicContext = (typeof DETERMINISTIC_CONTEXTS)[number];
25
+
26
+ export type PackageManager = "bun" | "npm" | "pnpm" | "yarn";
27
+
28
+ export type ResolutionMode = "nodenext" | "bundler";
29
+
30
+ export type SandboxBackend = "none" | "child" | "docker";
@@ -1,24 +1,24 @@
1
- export type RuntimeExportKind =
2
- | "function"
3
- | "class"
4
- | "const"
5
- | "object"
6
- | "unknown";
7
-
8
- export interface RuntimeExportEntry {
9
- name: string;
10
- kind: RuntimeExportKind;
11
- }
12
-
13
- export interface RuntimeEntrypointShape {
14
- subpath: string;
15
- exports: RuntimeExportEntry[];
16
- }
17
-
18
- export interface RuntimeExportShape {
19
- entrypoints: RuntimeEntrypointShape[];
20
- }
21
-
22
- export function emptyRuntimeExportShape(): RuntimeExportShape {
23
- return { entrypoints: [] };
24
- }
1
+ export type RuntimeExportKind =
2
+ | "function"
3
+ | "class"
4
+ | "const"
5
+ | "object"
6
+ | "unknown";
7
+
8
+ export interface RuntimeExportEntry {
9
+ name: string;
10
+ kind: RuntimeExportKind;
11
+ }
12
+
13
+ export interface RuntimeEntrypointShape {
14
+ subpath: string;
15
+ exports: RuntimeExportEntry[];
16
+ }
17
+
18
+ export interface RuntimeExportShape {
19
+ entrypoints: RuntimeEntrypointShape[];
20
+ }
21
+
22
+ export function emptyRuntimeExportShape(): RuntimeExportShape {
23
+ return { entrypoints: [] };
24
+ }
@@ -114,7 +114,7 @@ async function nodeRequestToFetch(
114
114
  return new Request(url, init);
115
115
  }
116
116
 
117
- async function writeFetchResponse(
117
+ export async function writeFetchResponse(
118
118
  response: ServerResponse,
119
119
  fetchResponse: Response,
120
120
  ): Promise<void> {
@@ -128,7 +128,21 @@ async function writeFetchResponse(
128
128
  return;
129
129
  }
130
130
 
131
- response.end(Buffer.from(await fetchResponse.arrayBuffer()));
131
+ const reader = fetchResponse.body.getReader();
132
+ try {
133
+ while (true) {
134
+ const { done, value } = await reader.read();
135
+ if (done) {
136
+ break;
137
+ }
138
+ response.write(Buffer.from(value));
139
+ }
140
+ response.end();
141
+ } catch (error) {
142
+ response.destroy(error instanceof Error ? error : undefined);
143
+ } finally {
144
+ reader.releaseLock();
145
+ }
132
146
  }
133
147
 
134
148
  async function createNodeFetchServer(
@@ -30,6 +30,9 @@ import {
30
30
  pushUnique,
31
31
  wordReplace,
32
32
  } from "./text-utils.ts";
33
+ import {
34
+ buildRenameRuntimeEntryPlan,
35
+ } from "./runtime-rename.ts";
33
36
 
34
37
  const REFACTOR_DIR = ".forge/refactors";
35
38
 
@@ -1589,8 +1592,13 @@ function planParts(workspaceRoot: string, intent: RefactorIntent): {
1589
1592
  return { patches: result.patches, filesToCreate: [], filesToDelete: [], diagnostics: result.diagnostics };
1590
1593
  }
1591
1594
  if (intent.kind === "renameRuntimeEntry") {
1592
- const result = buildStringRenamePlan(workspaceRoot, intent.from, intent.to, `Rename ${intent.entryKind} ${intent.from} to ${intent.to}`);
1593
- return { patches: result.patches, filesToCreate: [], filesToDelete: [], diagnostics: result.diagnostics };
1595
+ const result = buildRenameRuntimeEntryPlan(workspaceRoot, intent);
1596
+ return {
1597
+ patches: result.patches,
1598
+ filesToCreate: result.filesToCreate,
1599
+ filesToDelete: result.filesToDelete,
1600
+ diagnostics: result.diagnostics,
1601
+ };
1594
1602
  }
1595
1603
  if (intent.kind === "moveComponent") {
1596
1604
  const result = buildMoveComponentPlan(workspaceRoot, intent);