veryfront 0.1.215 → 0.1.217

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 (305) hide show
  1. package/README.md +1 -1
  2. package/esm/cli/commands/extension/command-help.d.ts +3 -0
  3. package/esm/cli/commands/extension/command-help.d.ts.map +1 -0
  4. package/esm/cli/commands/extension/command-help.js +16 -0
  5. package/esm/cli/commands/extension/handler.d.ts +3 -0
  6. package/esm/cli/commands/extension/handler.d.ts.map +1 -0
  7. package/esm/cli/commands/extension/handler.js +36 -0
  8. package/esm/cli/commands/extension/init-command.d.ts +19 -0
  9. package/esm/cli/commands/extension/init-command.d.ts.map +1 -0
  10. package/esm/cli/commands/extension/init-command.js +122 -0
  11. package/esm/cli/commands/extension/validate-command.d.ts +13 -0
  12. package/esm/cli/commands/extension/validate-command.d.ts.map +1 -0
  13. package/esm/cli/commands/extension/validate-command.js +62 -0
  14. package/esm/cli/commands/generate/integration-generator-helpers.d.ts +35 -0
  15. package/esm/cli/commands/generate/integration-generator-helpers.d.ts.map +1 -0
  16. package/esm/cli/commands/generate/integration-generator-helpers.js +123 -0
  17. package/esm/cli/commands/generate/integration-generator.d.ts +1 -2
  18. package/esm/cli/commands/generate/integration-generator.d.ts.map +1 -1
  19. package/esm/cli/commands/generate/integration-generator.js +1 -123
  20. package/esm/cli/commands/knowledge/command-helpers.d.ts +48 -0
  21. package/esm/cli/commands/knowledge/command-helpers.d.ts.map +1 -0
  22. package/esm/cli/commands/knowledge/command-helpers.js +216 -0
  23. package/esm/cli/commands/knowledge/command.d.ts +12 -17
  24. package/esm/cli/commands/knowledge/command.d.ts.map +1 -1
  25. package/esm/cli/commands/knowledge/command.js +26 -214
  26. package/esm/cli/help/command-definitions.d.ts.map +1 -1
  27. package/esm/cli/help/command-definitions.js +2 -0
  28. package/esm/cli/mcp/remote-file-tool-helpers.d.ts +5 -0
  29. package/esm/cli/mcp/remote-file-tool-helpers.d.ts.map +1 -0
  30. package/esm/cli/mcp/remote-file-tool-helpers.js +22 -0
  31. package/esm/cli/mcp/remote-file-tools.d.ts.map +1 -1
  32. package/esm/cli/mcp/remote-file-tools.js +1 -22
  33. package/esm/cli/router.d.ts.map +1 -1
  34. package/esm/cli/router.js +2 -0
  35. package/esm/cli/templates/integration-loader-helpers.d.ts +8 -0
  36. package/esm/cli/templates/integration-loader-helpers.d.ts.map +1 -0
  37. package/esm/cli/templates/integration-loader-helpers.js +29 -0
  38. package/esm/cli/templates/integration-loader.d.ts.map +1 -1
  39. package/esm/cli/templates/integration-loader.js +5 -21
  40. package/esm/cli/templates/manifest.d.ts +1 -0
  41. package/esm/cli/templates/manifest.js +2 -1
  42. package/esm/deno.d.ts +3 -0
  43. package/esm/deno.js +5 -2
  44. package/esm/src/agent/runtime/index.d.ts.map +1 -1
  45. package/esm/src/agent/runtime/index.js +48 -90
  46. package/esm/src/chat/ag-ui-helpers.d.ts +17 -0
  47. package/esm/src/chat/ag-ui-helpers.d.ts.map +1 -0
  48. package/esm/src/chat/ag-ui-helpers.js +111 -0
  49. package/esm/src/chat/ag-ui.d.ts.map +1 -1
  50. package/esm/src/chat/ag-ui.js +1 -111
  51. package/esm/src/config/schemas/config.schema.d.ts +1 -0
  52. package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
  53. package/esm/src/config/schemas/config.schema.js +11 -0
  54. package/esm/src/config/schemas/index.d.ts +11 -1
  55. package/esm/src/config/schemas/index.d.ts.map +1 -1
  56. package/esm/src/errors/error-registry-helpers.d.ts +6 -0
  57. package/esm/src/errors/error-registry-helpers.d.ts.map +1 -0
  58. package/esm/src/errors/error-registry-helpers.js +9 -0
  59. package/esm/src/errors/error-registry.d.ts.map +1 -1
  60. package/esm/src/errors/error-registry.js +4 -3
  61. package/esm/src/extensions/capabilities.d.ts +20 -0
  62. package/esm/src/extensions/capabilities.d.ts.map +1 -0
  63. package/esm/src/extensions/capabilities.js +77 -0
  64. package/esm/src/extensions/contracts.d.ts +10 -0
  65. package/esm/src/extensions/contracts.d.ts.map +1 -0
  66. package/esm/src/extensions/contracts.js +28 -0
  67. package/esm/src/extensions/discovery.d.ts +48 -0
  68. package/esm/src/extensions/discovery.d.ts.map +1 -0
  69. package/esm/src/extensions/discovery.js +179 -0
  70. package/esm/src/extensions/errors.d.ts +10 -0
  71. package/esm/src/extensions/errors.d.ts.map +1 -0
  72. package/esm/src/extensions/errors.js +34 -0
  73. package/esm/src/extensions/factory-loader.d.ts +29 -0
  74. package/esm/src/extensions/factory-loader.d.ts.map +1 -0
  75. package/esm/src/extensions/factory-loader.js +63 -0
  76. package/esm/src/extensions/index.d.ts +37 -0
  77. package/esm/src/extensions/index.d.ts.map +1 -0
  78. package/esm/src/extensions/index.js +41 -0
  79. package/esm/src/extensions/interfaces/ai-model-provider.d.ts +94 -0
  80. package/esm/src/extensions/interfaces/ai-model-provider.d.ts.map +1 -0
  81. package/esm/src/extensions/interfaces/ai-model-provider.js +8 -0
  82. package/esm/src/extensions/interfaces/auth-provider.d.ts +49 -0
  83. package/esm/src/extensions/interfaces/auth-provider.d.ts.map +1 -0
  84. package/esm/src/extensions/interfaces/auth-provider.js +8 -0
  85. package/esm/src/extensions/interfaces/bundler.d.ts +118 -0
  86. package/esm/src/extensions/interfaces/bundler.d.ts.map +1 -0
  87. package/esm/src/extensions/interfaces/bundler.js +8 -0
  88. package/esm/src/extensions/interfaces/cache-store.d.ts +27 -0
  89. package/esm/src/extensions/interfaces/cache-store.d.ts.map +1 -0
  90. package/esm/src/extensions/interfaces/cache-store.js +8 -0
  91. package/esm/src/extensions/interfaces/code-parser.d.ts +76 -0
  92. package/esm/src/extensions/interfaces/code-parser.d.ts.map +1 -0
  93. package/esm/src/extensions/interfaces/code-parser.js +8 -0
  94. package/esm/src/extensions/interfaces/content-transformer.d.ts +40 -0
  95. package/esm/src/extensions/interfaces/content-transformer.d.ts.map +1 -0
  96. package/esm/src/extensions/interfaces/content-transformer.js +8 -0
  97. package/esm/src/extensions/interfaces/css-processor.d.ts +38 -0
  98. package/esm/src/extensions/interfaces/css-processor.d.ts.map +1 -0
  99. package/esm/src/extensions/interfaces/css-processor.js +8 -0
  100. package/esm/src/extensions/interfaces/database-client.d.ts +31 -0
  101. package/esm/src/extensions/interfaces/database-client.d.ts.map +1 -0
  102. package/esm/src/extensions/interfaces/database-client.js +8 -0
  103. package/esm/src/extensions/interfaces/embedding-provider.d.ts +37 -0
  104. package/esm/src/extensions/interfaces/embedding-provider.d.ts.map +1 -0
  105. package/esm/src/extensions/interfaces/embedding-provider.js +8 -0
  106. package/esm/src/extensions/interfaces/index.d.ts +21 -0
  107. package/esm/src/extensions/interfaces/index.d.ts.map +1 -0
  108. package/esm/src/extensions/interfaces/index.js +9 -0
  109. package/esm/src/extensions/interfaces/node-compat.d.ts +25 -0
  110. package/esm/src/extensions/interfaces/node-compat.d.ts.map +1 -0
  111. package/esm/src/extensions/interfaces/node-compat.js +8 -0
  112. package/esm/src/extensions/interfaces/schema-validator.d.ts +46 -0
  113. package/esm/src/extensions/interfaces/schema-validator.d.ts.map +1 -0
  114. package/esm/src/extensions/interfaces/schema-validator.js +8 -0
  115. package/esm/src/extensions/interfaces/tracing-exporter.d.ts +44 -0
  116. package/esm/src/extensions/interfaces/tracing-exporter.d.ts.map +1 -0
  117. package/esm/src/extensions/interfaces/tracing-exporter.js +8 -0
  118. package/esm/src/extensions/loader.d.ts +33 -0
  119. package/esm/src/extensions/loader.d.ts.map +1 -0
  120. package/esm/src/extensions/loader.js +209 -0
  121. package/esm/src/extensions/orchestrate.d.ts +54 -0
  122. package/esm/src/extensions/orchestrate.d.ts.map +1 -0
  123. package/esm/src/extensions/orchestrate.js +116 -0
  124. package/esm/src/extensions/recommendations.d.ts +7 -0
  125. package/esm/src/extensions/recommendations.d.ts.map +1 -0
  126. package/esm/src/extensions/recommendations.js +22 -0
  127. package/esm/src/extensions/types.d.ts +47 -0
  128. package/esm/src/extensions/types.d.ts.map +1 -0
  129. package/esm/src/extensions/types.js +6 -0
  130. package/esm/src/extensions/validation.d.ts +44 -0
  131. package/esm/src/extensions/validation.d.ts.map +1 -0
  132. package/esm/src/extensions/validation.js +115 -0
  133. package/esm/src/html/styles-builder/plugin-loader.d.ts.map +1 -1
  134. package/esm/src/html/styles-builder/plugin-loader.js +23 -0
  135. package/esm/src/html/styles-builder/tailwind-plugin-allowlist.d.ts +29 -0
  136. package/esm/src/html/styles-builder/tailwind-plugin-allowlist.d.ts.map +1 -0
  137. package/esm/src/html/styles-builder/tailwind-plugin-allowlist.js +48 -0
  138. package/esm/src/modules/react-loader/ssr-module-loader/loader-helpers.d.ts +15 -0
  139. package/esm/src/modules/react-loader/ssr-module-loader/loader-helpers.d.ts.map +1 -0
  140. package/esm/src/modules/react-loader/ssr-module-loader/loader-helpers.js +22 -0
  141. package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts +0 -2
  142. package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts.map +1 -1
  143. package/esm/src/modules/react-loader/ssr-module-loader/loader.js +4 -24
  144. package/esm/src/platform/adapters/fs/veryfront/adapter-helpers.d.ts +19 -0
  145. package/esm/src/platform/adapters/fs/veryfront/adapter-helpers.d.ts.map +1 -0
  146. package/esm/src/platform/adapters/fs/veryfront/adapter-helpers.js +26 -0
  147. package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts.map +1 -1
  148. package/esm/src/platform/adapters/fs/veryfront/adapter.js +4 -20
  149. package/esm/src/platform/adapters/fs/veryfront/read-operations-helpers.d.ts +1 -0
  150. package/esm/src/platform/adapters/fs/veryfront/read-operations-helpers.d.ts.map +1 -1
  151. package/esm/src/platform/adapters/fs/veryfront/read-operations-helpers.js +3 -0
  152. package/esm/src/platform/adapters/fs/veryfront/read-operations.d.ts.map +1 -1
  153. package/esm/src/platform/adapters/fs/veryfront/read-operations.js +4 -7
  154. package/esm/src/platform/adapters/fs/veryfront/websocket-manager-helpers.d.ts +28 -0
  155. package/esm/src/platform/adapters/fs/veryfront/websocket-manager-helpers.d.ts.map +1 -0
  156. package/esm/src/platform/adapters/fs/veryfront/websocket-manager-helpers.js +41 -0
  157. package/esm/src/platform/adapters/fs/veryfront/websocket-manager.d.ts +1 -4
  158. package/esm/src/platform/adapters/fs/veryfront/websocket-manager.d.ts.map +1 -1
  159. package/esm/src/platform/adapters/fs/veryfront/websocket-manager.js +7 -40
  160. package/esm/src/platform/compat/process/command.d.ts +31 -0
  161. package/esm/src/platform/compat/process/command.d.ts.map +1 -0
  162. package/esm/src/platform/compat/process/command.js +193 -0
  163. package/esm/src/platform/compat/process/env.d.ts +31 -0
  164. package/esm/src/platform/compat/process/env.d.ts.map +1 -0
  165. package/esm/src/platform/compat/process/env.js +175 -0
  166. package/esm/src/platform/compat/process/lifecycle.d.ts +98 -0
  167. package/esm/src/platform/compat/process/lifecycle.d.ts.map +1 -0
  168. package/esm/src/platform/compat/process/lifecycle.js +305 -0
  169. package/esm/src/platform/compat/process/runtime-process.d.ts +10 -0
  170. package/esm/src/platform/compat/process/runtime-process.d.ts.map +1 -0
  171. package/esm/src/platform/compat/process/runtime-process.js +24 -0
  172. package/esm/src/platform/compat/process.d.ts +4 -165
  173. package/esm/src/platform/compat/process.d.ts.map +1 -1
  174. package/esm/src/platform/compat/process.js +4 -682
  175. package/esm/src/platform/index.d.ts +1 -1
  176. package/esm/src/platform/index.d.ts.map +1 -1
  177. package/esm/src/provider/runtime-loader/provider-endpoints.d.ts +8 -0
  178. package/esm/src/provider/runtime-loader/provider-endpoints.d.ts.map +1 -0
  179. package/esm/src/provider/runtime-loader/provider-endpoints.js +27 -0
  180. package/esm/src/provider/runtime-loader/provider-request-init.d.ts +32 -0
  181. package/esm/src/provider/runtime-loader/provider-request-init.d.ts.map +1 -0
  182. package/esm/src/provider/runtime-loader/provider-request-init.js +67 -0
  183. package/esm/src/provider/runtime-loader/tool-input-status.d.ts +17 -0
  184. package/esm/src/provider/runtime-loader/tool-input-status.d.ts.map +1 -0
  185. package/esm/src/provider/runtime-loader/tool-input-status.js +155 -0
  186. package/esm/src/provider/runtime-loader.d.ts +2 -3
  187. package/esm/src/provider/runtime-loader.d.ts.map +1 -1
  188. package/esm/src/provider/runtime-loader.js +92 -291
  189. package/esm/src/proxy/handler.d.ts.map +1 -1
  190. package/esm/src/proxy/handler.js +14 -0
  191. package/esm/src/rendering/orchestrator/pipeline-helpers.d.ts +8 -0
  192. package/esm/src/rendering/orchestrator/pipeline-helpers.d.ts.map +1 -0
  193. package/esm/src/rendering/orchestrator/pipeline-helpers.js +20 -0
  194. package/esm/src/rendering/orchestrator/pipeline.d.ts +0 -3
  195. package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
  196. package/esm/src/rendering/orchestrator/pipeline.js +4 -22
  197. package/esm/src/routing/api/module-loader/loader-helpers.d.ts +10 -0
  198. package/esm/src/routing/api/module-loader/loader-helpers.d.ts.map +1 -0
  199. package/esm/src/routing/api/module-loader/loader-helpers.js +62 -0
  200. package/esm/src/routing/api/module-loader/loader.d.ts +1 -1
  201. package/esm/src/routing/api/module-loader/loader.d.ts.map +1 -1
  202. package/esm/src/routing/api/module-loader/loader.js +2 -60
  203. package/esm/src/server/bootstrap.d.ts +22 -2
  204. package/esm/src/server/bootstrap.d.ts.map +1 -1
  205. package/esm/src/server/bootstrap.js +67 -5
  206. package/esm/src/server/dev-ui/manifest.d.ts +2 -0
  207. package/esm/src/server/dev-ui/manifest.js +3 -1
  208. package/esm/src/server/handlers/request/api/project-discovery.d.ts.map +1 -1
  209. package/esm/src/server/handlers/request/api/project-discovery.js +14 -8
  210. package/esm/src/server/production-server.js +1 -1
  211. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
  212. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +2 -2
  213. package/esm/src/server/utils/domain-parser.d.ts.map +1 -1
  214. package/esm/src/server/utils/domain-parser.js +4 -0
  215. package/esm/src/studio/bridge/bridge-bundle.generated.d.ts.map +1 -1
  216. package/esm/src/studio/bridge/bridge-bundle.generated.js +1 -1
  217. package/esm/src/tool/index.d.ts +1 -1
  218. package/esm/src/tool/index.d.ts.map +1 -1
  219. package/esm/src/tool/types.d.ts +20 -0
  220. package/esm/src/tool/types.d.ts.map +1 -1
  221. package/esm/src/utils/version-constant.d.ts +1 -1
  222. package/esm/src/utils/version-constant.js +1 -1
  223. package/package.json +7 -1
  224. package/src/cli/commands/extension/command-help.ts +18 -0
  225. package/src/cli/commands/extension/handler.ts +41 -0
  226. package/src/cli/commands/extension/init-command.ts +140 -0
  227. package/src/cli/commands/extension/validate-command.ts +78 -0
  228. package/src/cli/commands/generate/integration-generator-helpers.ts +185 -0
  229. package/src/cli/commands/generate/integration-generator.ts +12 -168
  230. package/src/cli/commands/knowledge/command-helpers.ts +295 -0
  231. package/src/cli/commands/knowledge/command.ts +34 -261
  232. package/src/cli/help/command-definitions.ts +2 -0
  233. package/src/cli/mcp/remote-file-tool-helpers.ts +27 -0
  234. package/src/cli/mcp/remote-file-tools.ts +6 -28
  235. package/src/cli/router.ts +2 -0
  236. package/src/cli/templates/integration-loader-helpers.ts +49 -0
  237. package/src/cli/templates/integration-loader.ts +10 -28
  238. package/src/cli/templates/manifest.js +2 -1
  239. package/src/deno.js +5 -2
  240. package/src/src/agent/runtime/index.ts +77 -94
  241. package/src/src/chat/ag-ui-helpers.ts +139 -0
  242. package/src/src/chat/ag-ui.ts +11 -139
  243. package/src/src/config/schemas/config.schema.ts +11 -0
  244. package/src/src/config/schemas/index.ts +15 -1
  245. package/src/src/errors/error-registry-helpers.ts +23 -0
  246. package/src/src/errors/error-registry.ts +8 -3
  247. package/src/src/extensions/capabilities.ts +97 -0
  248. package/src/src/extensions/contracts.ts +36 -0
  249. package/src/src/extensions/discovery.ts +221 -0
  250. package/src/src/extensions/errors.ts +39 -0
  251. package/src/src/extensions/factory-loader.ts +76 -0
  252. package/src/src/extensions/index.ts +79 -0
  253. package/src/src/extensions/interfaces/ai-model-provider.ts +100 -0
  254. package/src/src/extensions/interfaces/auth-provider.ts +52 -0
  255. package/src/src/extensions/interfaces/bundler.ts +116 -0
  256. package/src/src/extensions/interfaces/cache-store.ts +27 -0
  257. package/src/src/extensions/interfaces/code-parser.ts +84 -0
  258. package/src/src/extensions/interfaces/content-transformer.ts +38 -0
  259. package/src/src/extensions/interfaces/css-processor.ts +40 -0
  260. package/src/src/extensions/interfaces/database-client.ts +35 -0
  261. package/src/src/extensions/interfaces/embedding-provider.ts +39 -0
  262. package/src/src/extensions/interfaces/index.ts +81 -0
  263. package/src/src/extensions/interfaces/node-compat.ts +25 -0
  264. package/src/src/extensions/interfaces/schema-validator.ts +51 -0
  265. package/src/src/extensions/interfaces/tracing-exporter.ts +42 -0
  266. package/src/src/extensions/loader.ts +245 -0
  267. package/src/src/extensions/orchestrate.ts +184 -0
  268. package/src/src/extensions/recommendations.ts +24 -0
  269. package/src/src/extensions/types.ts +57 -0
  270. package/src/src/extensions/validation.ts +147 -0
  271. package/src/src/html/styles-builder/plugin-loader.ts +32 -0
  272. package/src/src/html/styles-builder/tailwind-plugin-allowlist.ts +51 -0
  273. package/src/src/modules/react-loader/ssr-module-loader/loader-helpers.ts +37 -0
  274. package/src/src/modules/react-loader/ssr-module-loader/loader.ts +8 -39
  275. package/src/src/platform/adapters/fs/veryfront/adapter-helpers.ts +43 -0
  276. package/src/src/platform/adapters/fs/veryfront/adapter.ts +8 -22
  277. package/src/src/platform/adapters/fs/veryfront/read-operations-helpers.ts +4 -0
  278. package/src/src/platform/adapters/fs/veryfront/read-operations.ts +4 -7
  279. package/src/src/platform/adapters/fs/veryfront/websocket-manager-helpers.ts +73 -0
  280. package/src/src/platform/adapters/fs/veryfront/websocket-manager.ts +29 -44
  281. package/src/src/platform/compat/process/command.ts +297 -0
  282. package/src/src/platform/compat/process/env.ts +227 -0
  283. package/src/src/platform/compat/process/lifecycle.ts +330 -0
  284. package/src/src/platform/compat/process/runtime-process.ts +27 -0
  285. package/src/src/platform/compat/process.ts +37 -870
  286. package/src/src/platform/index.ts +1 -0
  287. package/src/src/provider/runtime-loader/provider-endpoints.ts +50 -0
  288. package/src/src/provider/runtime-loader/provider-request-init.ts +101 -0
  289. package/src/src/provider/runtime-loader/tool-input-status.ts +210 -0
  290. package/src/src/provider/runtime-loader.ts +113 -368
  291. package/src/src/proxy/handler.ts +16 -0
  292. package/src/src/rendering/orchestrator/pipeline-helpers.ts +35 -0
  293. package/src/src/rendering/orchestrator/pipeline.ts +8 -35
  294. package/src/src/routing/api/module-loader/loader-helpers.ts +68 -0
  295. package/src/src/routing/api/module-loader/loader.ts +8 -65
  296. package/src/src/server/bootstrap.ts +88 -7
  297. package/src/src/server/dev-ui/manifest.js +3 -1
  298. package/src/src/server/handlers/request/api/project-discovery.ts +19 -8
  299. package/src/src/server/production-server.ts +1 -1
  300. package/src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts +2 -2
  301. package/src/src/server/utils/domain-parser.ts +4 -0
  302. package/src/src/studio/bridge/bridge-bundle.generated.ts +1 -1
  303. package/src/src/tool/index.ts +1 -0
  304. package/src/src/tool/types.ts +21 -0
  305. package/src/src/utils/version-constant.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"read-operations.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/fs/veryfront/read-operations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAKnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAapE,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAY9B,qBAAa,cAAc;IAWvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAfpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAI9B;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,mGAAmG;IACnG,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA6B;gBAGnD,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,cAAc,EAC1B,eAAe,CAAC,EAAE,sBAAsB,YAAA,EACxC,kBAAkB,CAAC,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,aAAA,EAC7C,gBAAgB,CAAC,GAAE,MAAM,OAAO,CAC/C,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CACtD,aAAA;IAKH,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIrD,kBAAkB,IAAI,IAAI;IAK1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAY3C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY3C,OAAO,CAAC,mBAAmB;YAsBb,+BAA+B;YA0C/B,mBAAmB;IA0CjC,OAAO,CAAC,kBAAkB;YAoFZ,2BAA2B;YAmD3B,uCAAuC;IAiCrD,OAAO,CAAC,yBAAyB;IAmCjC,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,qBAAqB;YAYf,YAAY;YA6JZ,qBAAqB;YAwDrB,qBAAqB;YA8CrB,+BAA+B;YAwD/B,iBAAiB;CAuBhC"}
1
+ {"version":3,"file":"read-operations.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/fs/veryfront/read-operations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAKnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAcpE,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAQ9B,qBAAa,cAAc;IAWvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAfpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAI9B;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,mGAAmG;IACnG,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA6B;gBAGnD,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,cAAc,EAC1B,eAAe,CAAC,EAAE,sBAAsB,YAAA,EACxC,kBAAkB,CAAC,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,aAAA,EAC7C,gBAAgB,CAAC,GAAE,MAAM,OAAO,CAC/C,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CACtD,aAAA;IAKH,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIrD,kBAAkB,IAAI,IAAI;IAK1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAY3C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY3C,OAAO,CAAC,mBAAmB;YAsBb,+BAA+B;YA0C/B,mBAAmB;IA0CjC,OAAO,CAAC,kBAAkB;YAoFZ,2BAA2B;YAmD3B,uCAAuC;IAiCrD,OAAO,CAAC,yBAAyB;IAmCjC,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,qBAAqB;YAYf,YAAY;YA6JZ,qBAAqB;YAwDrB,qBAAqB;YA8CrB,+BAA+B;YAwD/B,iBAAiB;CAuBhC"}
@@ -4,15 +4,12 @@ import { logContentMetric } from "./content-metrics.js";
4
4
  import { FileListIndex } from "./file-list-index.js";
5
5
  import { InFlightRequestDeduper } from "./in-flight-dedupe.js";
6
6
  import { getRequestScopedFile, setRequestScopedFile } from "./multi-project-adapter.js";
7
- import { assertProjectSourcePath, buildExtensionCandidatePaths, buildReadFetchState, createNotFoundLikeError, getResolvedCacheKey, isNotFoundLikeError, READ_OPERATION_EXTENSION_PRIORITY as EXTENSION_PRIORITY, splitKnownFileExtension, } from "./read-operations-helpers.js";
7
+ import { assertProjectSourcePath, buildContentPreview, buildExtensionCandidatePaths, buildReadFetchState, createNotFoundLikeError, getResolvedCacheKey, isNotFoundLikeError, READ_OPERATION_EXTENSION_PRIORITY as EXTENSION_PRIORITY, splitKnownFileExtension, } from "./read-operations-helpers.js";
8
8
  export { endRequestMetrics, getContentMetricsSnapshot, resetContentMetrics, startRequestMetrics, } from "./content-metrics.js";
9
9
  const logger = baseLogger.component("read-operations");
10
10
  const IN_FLIGHT_REQUEST_TIMEOUT_MS = 15_000;
11
11
  const MAX_IN_FLIGHT_REQUESTS = 100;
12
12
  const IN_FLIGHT_CLEANUP_INTERVAL_MS = 1_000;
13
- function previewText(content, max = 80) {
14
- return content.length > max ? `${content.slice(0, max)}...` : content;
15
- }
16
13
  export class ReadOperations {
17
14
  client;
18
15
  cache;
@@ -71,7 +68,7 @@ export class ReadOperations {
71
68
  path: normalizedPath,
72
69
  cacheKey,
73
70
  contentLength: requestCached.length,
74
- preview: previewText(requestCached).replace(/\n/g, "\\n"),
71
+ preview: buildContentPreview(requestCached).replace(/\n/g, "\\n"),
75
72
  });
76
73
  return requestCached;
77
74
  }
@@ -101,7 +98,7 @@ export class ReadOperations {
101
98
  path: normalizedPath,
102
99
  cacheKey,
103
100
  contentLength: cached.length,
104
- preview: previewText(cached).replace(/\n/g, "\\n"),
101
+ preview: buildContentPreview(cached).replace(/\n/g, "\\n"),
105
102
  });
106
103
  setRequestScopedFile(cacheKey, cached);
107
104
  return cached;
@@ -481,7 +478,7 @@ export class ReadOperations {
481
478
  logger.debug("API_FETCH_DONE - got content from API", {
482
479
  path: normalizedPath,
483
480
  contentLength: content.length,
484
- preview: previewText(content).replace(/\n/g, "\\n"),
481
+ preview: buildContentPreview(content).replace(/\n/g, "\\n"),
485
482
  willCache: shouldCache,
486
483
  });
487
484
  return this.storeFetchedContent(cacheKey, content, shouldCache);
@@ -0,0 +1,28 @@
1
+ import type { ContentSource, ResolvedContentContext } from "./types.js";
2
+ export declare const INVALIDATION_DEBOUNCE_MS = 100;
3
+ export declare const WS_RECONNECT_DELAY_MS = 5000;
4
+ export declare const WS_RECONNECT_MAX_DELAY_MS = 120000;
5
+ export declare const WS_RECONNECT_MAX_FAILURES = 10;
6
+ export declare const WS_HEARTBEAT_INTERVAL_MS = 60000;
7
+ export declare const WS_HEARTBEAT_TIMEOUT_MS = 300000;
8
+ export interface PreviewStyleArtifactInfo {
9
+ hash: string;
10
+ assetPath: string;
11
+ }
12
+ export declare function getConnectionLogContext(projectSlug: string | undefined, context?: Record<string, unknown>): Record<string, unknown>;
13
+ export declare function getPreviewInvalidationPrefixes(contentContext: ResolvedContentContext | null): string[];
14
+ export declare function getReconnectDelay(consecutiveFailures: number): number;
15
+ export declare function buildReloadProjectContext(contentContext: ResolvedContentContext | null, projectSlug: string, projectId: string, preparedStyleArtifact?: PreviewStyleArtifactInfo): {
16
+ projectSlug: string;
17
+ projectId: string;
18
+ environment: "preview" | "production";
19
+ branch: string | null;
20
+ releaseId: string | null;
21
+ styleArtifactHash: string | undefined;
22
+ styleAssetPath: string | undefined;
23
+ };
24
+ export declare function buildContentSourceLabel(getContentSource: () => ContentSource, getContentContext: () => ResolvedContentContext | null): {
25
+ contentSource: ContentSource;
26
+ branch: string | null;
27
+ };
28
+ //# sourceMappingURL=websocket-manager-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-manager-helpers.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/fs/veryfront/websocket-manager-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGxE,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAChD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGzB;AAED,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,sBAAsB,GAAG,IAAI,GAC5C,MAAM,EAAE,CAGV;AAED,wBAAgB,iBAAiB,CAAC,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,sBAAsB,GAAG,IAAI,EAC7C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,qBAAqB,CAAC,EAAE,wBAAwB,GAC/C;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC;IACtC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAcA;AAED,wBAAgB,uBAAuB,CACrC,gBAAgB,EAAE,MAAM,aAAa,EACrC,iBAAiB,EAAE,MAAM,sBAAsB,GAAG,IAAI,GACrD;IAAE,aAAa,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAKzD"}
@@ -0,0 +1,41 @@
1
+ import { buildFileCacheKeyPrefix } from "./cache-keys.js";
2
+ export const INVALIDATION_DEBOUNCE_MS = 100;
3
+ export const WS_RECONNECT_DELAY_MS = 5000;
4
+ export const WS_RECONNECT_MAX_DELAY_MS = 120000;
5
+ export const WS_RECONNECT_MAX_FAILURES = 10;
6
+ export const WS_HEARTBEAT_INTERVAL_MS = 60000;
7
+ export const WS_HEARTBEAT_TIMEOUT_MS = 300000;
8
+ export function getConnectionLogContext(projectSlug, context = {}) {
9
+ if (!projectSlug)
10
+ return context;
11
+ return { projectSlug, ...context };
12
+ }
13
+ export function getPreviewInvalidationPrefixes(contentContext) {
14
+ if (contentContext?.sourceType !== "branch")
15
+ return [];
16
+ return [buildFileCacheKeyPrefix(contentContext)];
17
+ }
18
+ export function getReconnectDelay(consecutiveFailures) {
19
+ const delay = WS_RECONNECT_DELAY_MS * Math.pow(2, consecutiveFailures - 1);
20
+ return Math.min(delay, WS_RECONNECT_MAX_DELAY_MS);
21
+ }
22
+ export function buildReloadProjectContext(contentContext, projectSlug, projectId, preparedStyleArtifact) {
23
+ const environment = contentContext?.sourceType === "branch"
24
+ ? "preview"
25
+ : "production";
26
+ return {
27
+ projectSlug,
28
+ projectId,
29
+ environment,
30
+ branch: contentContext?.branch ?? null,
31
+ releaseId: contentContext?.releaseId ?? null,
32
+ styleArtifactHash: preparedStyleArtifact?.hash,
33
+ styleAssetPath: preparedStyleArtifact?.assetPath,
34
+ };
35
+ }
36
+ export function buildContentSourceLabel(getContentSource, getContentContext) {
37
+ return {
38
+ contentSource: getContentSource(),
39
+ branch: getContentContext()?.branch ?? null,
40
+ };
41
+ }
@@ -1,10 +1,7 @@
1
1
  import type { FileCache } from "../cache/file-cache.js";
2
2
  import type { VeryfrontApiClient } from "../../veryfront-api-client/index.js";
3
3
  import type { ContentSource, InvalidationCallbacks, ResolvedContentContext } from "./types.js";
4
- interface PreviewStyleArtifactInfo {
5
- hash: string;
6
- assetPath: string;
7
- }
4
+ import { type PreviewStyleArtifactInfo } from "./websocket-manager-helpers.js";
8
5
  interface WebSocketDeps {
9
6
  apiBaseUrl: string;
10
7
  apiToken: string;
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-manager.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/fs/veryfront/websocket-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAwB/F,UAAU,wBAAwB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,qBAAqB,EAAE,qBAAqB,CAAC;IAE7C,iBAAiB,EAAE,MAAM,sBAAsB,GAAG,IAAI,CAAC;IACvD,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,aAAa,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACxC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,gBAAgB,EAAE,CAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,KAC7C,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,KAC7C,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAC;CACpD;AAED,qBAAa,gBAAgB;IAqBf,OAAO,CAAC,QAAQ,CAAC,IAAI;IApBjC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,gBAAgB,CAAsD;IAC9E,OAAO,CAAC,gBAAgB,CAAuD;IAC/E,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,iBAAiB,CAAsD;IAC/E,OAAO,CAAC,0BAA0B,CAAsD;IACxF,OAAO,CAAC,mBAAmB,CAAqB;IAEhD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,0BAA0B,CAAK;IACvC,OAAO,CAAC,iCAAiC,CAAqB;IAC9D,OAAO,CAAC,WAAW,CAIjB;gBAE2B,IAAI,EAAE,aAAa;IAEhD,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,8BAA8B;IAOtC,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,2BAA2B;IAUnC,cAAc,IAAI;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAID,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IA+GhC,OAAO,CAAC,iBAAiB;IAMzB,OAAO,IAAI,IAAI;IA8Bf,OAAO,CAAC,iBAAiB;IAyJzB,OAAO,CAAC,8BAA8B;IA0GtC,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,6BAA6B;YAiBvB,4BAA4B;YA8I5B,mBAAmB;IAiJjC,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,WAAW;CAyBpB"}
1
+ {"version":3,"file":"websocket-manager.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/fs/veryfront/websocket-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAY/F,OAAO,EAOL,KAAK,wBAAwB,EAK9B,MAAM,gCAAgC,CAAC;AAMxC,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,qBAAqB,EAAE,qBAAqB,CAAC;IAE7C,iBAAiB,EAAE,MAAM,sBAAsB,GAAG,IAAI,CAAC;IACvD,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,aAAa,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACxC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,gBAAgB,EAAE,CAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,KAC7C,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,KAC7C,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAC;CACpD;AAED,qBAAa,gBAAgB;IAqBf,OAAO,CAAC,QAAQ,CAAC,IAAI;IApBjC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,gBAAgB,CAAsD;IAC9E,OAAO,CAAC,gBAAgB,CAAuD;IAC/E,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,iBAAiB,CAAsD;IAC/E,OAAO,CAAC,0BAA0B,CAAsD;IACxF,OAAO,CAAC,mBAAmB,CAAqB;IAEhD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,0BAA0B,CAAK;IACvC,OAAO,CAAC,iCAAiC,CAAqB;IAC9D,OAAO,CAAC,WAAW,CAIjB;gBAE2B,IAAI,EAAE,aAAa;IAEhD,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,8BAA8B;IAMtC,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,2BAA2B;IAUnC,cAAc,IAAI;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAID,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IA8GhC,OAAO,CAAC,iBAAiB;IAKzB,OAAO,IAAI,IAAI;IA8Bf,OAAO,CAAC,iBAAiB;IAyJzB,OAAO,CAAC,8BAA8B;IA0GtC,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,6BAA6B;YAiBvB,4BAA4B;YAwI5B,mBAAmB;IA2IjC,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,WAAW;CAyBpB"}
@@ -2,13 +2,8 @@ import * as dntShim from "../../../../../_dnt.shims.js";
2
2
  import { getBaseLogger } from "../../../../utils/logger/logger.js";
3
3
  import { buildDirCacheKeyPrefix, buildFileCacheKeyPrefix, buildFileListCacheKey, buildStatCacheKeyPrefix, } from "./cache-keys.js";
4
4
  import { addPendingInvalidation, getPendingInvalidationsCount, removePendingInvalidation, } from "./invalidation-state.js";
5
+ import { buildContentSourceLabel, buildReloadProjectContext, getConnectionLogContext as getConnectionLogContextHelper, getPreviewInvalidationPrefixes as getPreviewInvalidationPrefixesHelper, getReconnectDelay as getReconnectDelayHelper, INVALIDATION_DEBOUNCE_MS, WS_HEARTBEAT_INTERVAL_MS, WS_HEARTBEAT_TIMEOUT_MS, WS_RECONNECT_MAX_DELAY_MS, WS_RECONNECT_MAX_FAILURES, } from "./websocket-manager-helpers.js";
5
6
  const logger = getBaseLogger("SERVER", { injectTraceContext: false }).component("web-socket-manager");
6
- const INVALIDATION_DEBOUNCE_MS = 100;
7
- const WS_RECONNECT_DELAY_MS = 5000;
8
- const WS_RECONNECT_MAX_DELAY_MS = 120000;
9
- const WS_RECONNECT_MAX_FAILURES = 10;
10
- const WS_HEARTBEAT_INTERVAL_MS = 60000;
11
- const WS_HEARTBEAT_TIMEOUT_MS = 300000;
12
7
  export class WebSocketManager {
13
8
  deps;
14
9
  ws = null;
@@ -33,14 +28,10 @@ export class WebSocketManager {
33
28
  this.deps = deps;
34
29
  }
35
30
  getConnectionLogContext(context = {}) {
36
- if (!this.deps.projectSlug)
37
- return context;
38
- return { projectSlug: this.deps.projectSlug, ...context };
31
+ return getConnectionLogContextHelper(this.deps.projectSlug, context);
39
32
  }
40
33
  getPreviewInvalidationPrefixes(contentContext) {
41
- if (contentContext?.sourceType !== "branch")
42
- return [];
43
- return [buildFileCacheKeyPrefix(contentContext)];
34
+ return getPreviewInvalidationPrefixesHelper(contentContext);
44
35
  }
45
36
  beginPreviewInvalidation(contentContext) {
46
37
  const prefixes = this.getPreviewInvalidationPrefixes(contentContext);
@@ -105,8 +96,7 @@ export class WebSocketManager {
105
96
  logger.debug("WebSocket connected to events channel", this.getConnectionLogContext({
106
97
  projectId,
107
98
  connectionId: this.wsConnectionId,
108
- contentSource: this.deps.getContentSource(),
109
- branch: this.deps.getContentContext()?.branch,
99
+ ...buildContentSourceLabel(this.deps.getContentSource, this.deps.getContentContext),
110
100
  }));
111
101
  this.wsLastPong = Date.now();
112
102
  this.startHeartbeat(projectId);
@@ -155,8 +145,7 @@ export class WebSocketManager {
155
145
  }
156
146
  getReconnectDelay() {
157
147
  // Exponential backoff: 5s, 10s, 20s, 40s, 80s, capped at 120s
158
- const delay = WS_RECONNECT_DELAY_MS * Math.pow(2, this.wsConsecutiveFailures - 1);
159
- return Math.min(delay, WS_RECONNECT_MAX_DELAY_MS);
148
+ return getReconnectDelayHelper(this.wsConsecutiveFailures);
160
149
  }
161
150
  dispose() {
162
151
  this.disposed = true;
@@ -502,18 +491,7 @@ export class WebSocketManager {
502
491
  projectId: this.deps.client.getProjectId(),
503
492
  hasTriggerReloadCallback: !!this.deps.invalidationCallbacks.triggerReload,
504
493
  });
505
- const environment = contentContext?.sourceType === "branch"
506
- ? "preview"
507
- : "production";
508
- const projectContext = {
509
- projectSlug: this.deps.projectSlug,
510
- projectId: this.deps.client.getProjectId(),
511
- environment,
512
- branch: contentContext?.branch ?? null,
513
- releaseId: contentContext?.releaseId ?? null,
514
- styleArtifactHash: preparedStyleArtifact?.hash,
515
- styleAssetPath: preparedStyleArtifact?.assetPath,
516
- };
494
+ const projectContext = buildReloadProjectContext(contentContext, this.deps.projectSlug, this.deps.client.getProjectId(), preparedStyleArtifact);
517
495
  this.deps.invalidationCallbacks.triggerReload?.(changedPaths, projectContext);
518
496
  logger.info("Selective invalidation complete - HMR triggered", {
519
497
  changedPaths,
@@ -610,18 +588,7 @@ export class WebSocketManager {
610
588
  projectId: this.deps.client.getProjectId(),
611
589
  hasTriggerReloadCallback: !!this.deps.invalidationCallbacks.triggerReload,
612
590
  });
613
- const environment = contentContext?.sourceType === "branch"
614
- ? "preview"
615
- : "production";
616
- const projectContext = {
617
- projectSlug: this.deps.projectSlug,
618
- projectId: this.deps.client.getProjectId(),
619
- environment,
620
- branch: contentContext?.branch ?? null,
621
- releaseId: contentContext?.releaseId ?? null,
622
- styleArtifactHash: preparedStyleArtifact?.hash,
623
- styleAssetPath: preparedStyleArtifact?.assetPath,
624
- };
591
+ const projectContext = buildReloadProjectContext(contentContext, this.deps.projectSlug, this.deps.client.getProjectId(), preparedStyleArtifact);
625
592
  this.deps.invalidationCallbacks.triggerReload?.(undefined, projectContext);
626
593
  logger.debug("CACHE INVALIDATION COMPLETE", {
627
594
  fileCacheCleared: totalFileCount,
@@ -0,0 +1,31 @@
1
+ export interface CommandResult {
2
+ success: boolean;
3
+ code: number;
4
+ stdout?: string;
5
+ stderr?: string;
6
+ }
7
+ export interface CommandOptions {
8
+ args?: string[];
9
+ cwd?: string;
10
+ env?: Record<string, string>;
11
+ /** Capture stdout/stderr to return in result */
12
+ capture?: boolean;
13
+ /** Inherit stdio from parent process (shows output in terminal) */
14
+ inherit?: boolean;
15
+ /** Use shell to run the command (needed for .cmd files on Windows) */
16
+ shell?: boolean;
17
+ /** Kill the command if it exceeds this duration (milliseconds) */
18
+ timeoutMs?: number;
19
+ }
20
+ /**
21
+ * Run a command and return the result.
22
+ * Works across Deno, Node.js, and Bun.
23
+ *
24
+ * @param cmd - Command to run
25
+ * @param options - Command options
26
+ * @param options.capture - Capture stdout/stderr to return in result
27
+ * @param options.inherit - Inherit stdio from parent (shows output in terminal)
28
+ * @param options.shell - Use shell to run command (needed for .cmd on Windows)
29
+ */
30
+ export declare function runCommand(cmd: string, options?: CommandOptions): Promise<CommandResult>;
31
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/compat/process/command.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6ED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAsLxB"}
@@ -0,0 +1,193 @@
1
+ import * as dntShim from "../../../../_dnt.shims.js";
2
+ import { dynamicImport } from "../dynamic-import.js";
3
+ import { isBun as IS_BUN, isDeno as IS_DENO } from "../runtime.js";
4
+ import { isWindowsPlatform, runtimeProcess } from "./runtime-process.js";
5
+ const COMMAND_TIMEOUT_EXIT_CODE = 124;
6
+ const FORCE_KILL_GRACE_MS = 250;
7
+ function createTimeoutResult(timeoutMs, stdout, stderr) {
8
+ return {
9
+ success: false,
10
+ code: COMMAND_TIMEOUT_EXIT_CODE,
11
+ stdout,
12
+ stderr: `${stderr ?? ""}\nCommand timed out after ${timeoutMs}ms`.trim(),
13
+ };
14
+ }
15
+ function createProcessTimeout(timeoutMs, terminate, forceTerminate) {
16
+ let timedOut = false;
17
+ let timeoutId;
18
+ let forceKillId;
19
+ if (timeoutMs && timeoutMs > 0) {
20
+ timeoutId = dntShim.setTimeout(() => {
21
+ timedOut = true;
22
+ try {
23
+ terminate();
24
+ }
25
+ catch (_) {
26
+ /* expected: best-effort terminate may fail if process already exited */
27
+ }
28
+ forceKillId = dntShim.setTimeout(() => {
29
+ try {
30
+ forceTerminate();
31
+ }
32
+ catch (_) {
33
+ /* expected: best-effort force terminate may fail if process already exited */
34
+ }
35
+ }, FORCE_KILL_GRACE_MS);
36
+ }, timeoutMs);
37
+ }
38
+ return {
39
+ hasTimedOut: () => timedOut,
40
+ clear: () => {
41
+ if (timeoutId)
42
+ clearTimeout(timeoutId);
43
+ if (forceKillId)
44
+ clearTimeout(forceKillId);
45
+ },
46
+ };
47
+ }
48
+ async function readStreamToString(stream) {
49
+ const reader = stream.getReader();
50
+ const chunks = [];
51
+ while (true) {
52
+ const { done, value } = await reader.read();
53
+ if (done)
54
+ break;
55
+ if (value)
56
+ chunks.push(value);
57
+ }
58
+ const total = chunks.reduce((acc, c) => acc + c.length, 0);
59
+ const merged = new Uint8Array(total);
60
+ let offset = 0;
61
+ for (const chunk of chunks) {
62
+ merged.set(chunk, offset);
63
+ offset += chunk.length;
64
+ }
65
+ return new TextDecoder().decode(merged);
66
+ }
67
+ /**
68
+ * Run a command and return the result.
69
+ * Works across Deno, Node.js, and Bun.
70
+ *
71
+ * @param cmd - Command to run
72
+ * @param options - Command options
73
+ * @param options.capture - Capture stdout/stderr to return in result
74
+ * @param options.inherit - Inherit stdio from parent (shows output in terminal)
75
+ * @param options.shell - Use shell to run command (needed for .cmd on Windows)
76
+ */
77
+ export async function runCommand(cmd, options = {}) {
78
+ const { args = [], cwd: cmdCwd, env: cmdEnv, capture = false, inherit = false, shell = false, timeoutMs, } = options;
79
+ const effectiveTimeoutMs = timeoutMs && timeoutMs > 0 ? Math.floor(timeoutMs) : undefined;
80
+ // Determine stdio mode: inherit > capture > null
81
+ const stdioMode = inherit ? "inherit" : capture ? "piped" : "null";
82
+ if (IS_DENO) {
83
+ const command = new dntShim.Deno.Command(cmd, {
84
+ args,
85
+ cwd: cmdCwd,
86
+ env: cmdEnv,
87
+ stdin: inherit ? "inherit" : "null",
88
+ stdout: stdioMode,
89
+ stderr: stdioMode,
90
+ });
91
+ const child = command.spawn();
92
+ const timeout = createProcessTimeout(effectiveTimeoutMs, () => child.kill("SIGTERM"), () => child.kill("SIGKILL"));
93
+ try {
94
+ const [status, stdout, stderr] = await Promise.all([
95
+ child.status,
96
+ capture && child.stdout ? readStreamToString(child.stdout) : Promise.resolve(undefined),
97
+ capture && child.stderr ? readStreamToString(child.stderr) : Promise.resolve(undefined),
98
+ ]);
99
+ if (timeout.hasTimedOut()) {
100
+ return createTimeoutResult(effectiveTimeoutMs ?? 0, stdout, stderr);
101
+ }
102
+ return {
103
+ success: status.success,
104
+ code: status.code,
105
+ stdout,
106
+ stderr,
107
+ };
108
+ }
109
+ finally {
110
+ timeout.clear();
111
+ }
112
+ }
113
+ if (IS_BUN) {
114
+ const bunGlobal = dntShim.dntGlobalThis;
115
+ const bunStdio = inherit ? "inherit" : capture ? "pipe" : "ignore";
116
+ const isWindows = isWindowsPlatform();
117
+ const bunCmd = shell
118
+ ? args.length === 0
119
+ ? isWindows ? ["cmd", "/c", cmd] : ["sh", "-c", cmd]
120
+ : isWindows
121
+ ? ["cmd", "/c", cmd, ...args]
122
+ : ["sh", "-c", 'exec "$@"', "sh", cmd, ...args]
123
+ : [cmd, ...args];
124
+ const proc = bunGlobal.Bun.spawn({
125
+ cmd: bunCmd,
126
+ cwd: cmdCwd,
127
+ env: cmdEnv,
128
+ stdout: bunStdio,
129
+ stderr: bunStdio,
130
+ });
131
+ const timeout = createProcessTimeout(effectiveTimeoutMs, () => proc.kill?.("SIGTERM"), () => proc.kill?.("SIGKILL"));
132
+ try {
133
+ const [code, stdout, stderr] = await Promise.all([
134
+ proc.exited,
135
+ capture && proc.stdout ? readStreamToString(proc.stdout) : Promise.resolve(undefined),
136
+ capture && proc.stderr ? readStreamToString(proc.stderr) : Promise.resolve(undefined),
137
+ ]);
138
+ if (timeout.hasTimedOut()) {
139
+ return createTimeoutResult(effectiveTimeoutMs ?? 0, stdout, stderr);
140
+ }
141
+ return { success: code === 0, code, stdout, stderr };
142
+ }
143
+ finally {
144
+ timeout.clear();
145
+ }
146
+ }
147
+ if (!runtimeProcess)
148
+ return { success: false, code: 1 };
149
+ const process = runtimeProcess;
150
+ const { spawn } = await dynamicImport("node:child_process");
151
+ const nodeStdio = inherit
152
+ ? ["inherit", "inherit", "inherit"]
153
+ : capture
154
+ ? ["ignore", "pipe", "pipe"]
155
+ : ["ignore", "ignore", "ignore"];
156
+ return await new Promise((resolve) => {
157
+ const child = spawn(cmd, args, {
158
+ cwd: cmdCwd,
159
+ env: cmdEnv ? { ...process.env, ...cmdEnv } : undefined,
160
+ stdio: nodeStdio,
161
+ shell,
162
+ });
163
+ let stdout = "";
164
+ let stderr = "";
165
+ const decoder = new TextDecoder();
166
+ const timeout = createProcessTimeout(effectiveTimeoutMs, () => child.kill("SIGTERM"), () => child.kill("SIGKILL"));
167
+ if (capture) {
168
+ child.stdout?.on("data", (data) => {
169
+ stdout += decoder.decode(data);
170
+ });
171
+ child.stderr?.on("data", (data) => {
172
+ stderr += decoder.decode(data);
173
+ });
174
+ }
175
+ child.on("close", (code) => {
176
+ timeout.clear();
177
+ if (timeout.hasTimedOut()) {
178
+ resolve(createTimeoutResult(effectiveTimeoutMs ?? 0, capture ? stdout : undefined, capture ? stderr : undefined));
179
+ return;
180
+ }
181
+ resolve({
182
+ success: code === 0,
183
+ code: code ?? 1,
184
+ stdout: capture ? stdout : undefined,
185
+ stderr: capture ? stderr : undefined,
186
+ });
187
+ });
188
+ child.on("error", () => {
189
+ timeout.clear();
190
+ resolve({ success: false, code: 1 });
191
+ });
192
+ });
193
+ }
@@ -0,0 +1,31 @@
1
+ export type EnvOverlayStorage = {
2
+ getStore: () => unknown;
3
+ run?: <T>(store: unknown, fn: () => T) => T;
4
+ enterWith?: (store: unknown) => void;
5
+ };
6
+ export declare function env(): Record<string, string>;
7
+ /**
8
+ * Read a host-level environment variable without consulting any project env overlay.
9
+ * Use this for framework-owned runtime configuration that should not be shadowed by tenant env.
10
+ */
11
+ export declare function getHostEnv(key: string): string | undefined;
12
+ export declare function getEnv(key: string): string | undefined;
13
+ export interface EnvBooleanOptions {
14
+ trueValues?: readonly string[];
15
+ falseValues?: readonly string[];
16
+ trim?: boolean;
17
+ caseSensitive?: boolean;
18
+ }
19
+ export declare function getEnvString(key: string): string | undefined;
20
+ export declare function getEnvString(key: string, fallback: string): string;
21
+ export declare function getEnvNumber(key: string): number | undefined;
22
+ export declare function getEnvNumber(key: string, fallback: number): number;
23
+ export declare function getEnvBoolean(key: string, fallback?: boolean, options?: EnvBooleanOptions): boolean;
24
+ export declare function setEnv(key: string, value: string): void;
25
+ export declare function deleteEnv(key: string): void;
26
+ /**
27
+ * Get an AsyncLocalStorage-based env overlay storage if installed.
28
+ * This enables per-async-context env isolation (e.g., in tests).
29
+ */
30
+ export declare function getEnvOverlayStorage(): EnvOverlayStorage | null;
31
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/compat/process/env.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC,CAAC;AAoBF,wBAAgB,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmB5C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS1D;AAqCD,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWtD;AAKD,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAUD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAC9D,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;AAOpE,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAC9D,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;AAUpE,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,UAAQ,EAChB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAmBT;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAgBvD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAgB3C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAS/D"}