veryfront 0.1.1237 → 0.1.1239

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 (493) hide show
  1. package/esm/cli/auth/login.d.ts +24 -2
  2. package/esm/cli/auth/login.d.ts.map +1 -1
  3. package/esm/cli/auth/login.js +444 -35
  4. package/esm/cli/commands/build/error-handler.d.ts.map +1 -1
  5. package/esm/cli/commands/build/error-handler.js +41 -3
  6. package/esm/cli/commands/build/handler.d.ts.map +1 -1
  7. package/esm/cli/commands/build/handler.js +1 -1
  8. package/esm/cli/commands/dev/command.d.ts.map +1 -1
  9. package/esm/cli/commands/dev/command.js +14 -1
  10. package/esm/cli/commands/dev/inference-status.d.ts +6 -0
  11. package/esm/cli/commands/dev/inference-status.d.ts.map +1 -1
  12. package/esm/cli/commands/dev/inference-status.js +14 -2
  13. package/esm/cli/commands/generate/command.d.ts.map +1 -1
  14. package/esm/cli/commands/generate/command.js +61 -0
  15. package/esm/cli/commands/init/init-command.d.ts.map +1 -1
  16. package/esm/cli/commands/init/init-command.js +23 -31
  17. package/esm/cli/commands/install/registry.d.ts.map +1 -1
  18. package/esm/cli/commands/install/registry.js +6 -9
  19. package/esm/cli/commands/login/command-help.d.ts.map +1 -1
  20. package/esm/cli/commands/login/command-help.js +3 -1
  21. package/esm/cli/commands/pull/command.d.ts +1 -0
  22. package/esm/cli/commands/pull/command.d.ts.map +1 -1
  23. package/esm/cli/commands/pull/command.js +49 -6
  24. package/esm/cli/commands/push/command-help.d.ts.map +1 -1
  25. package/esm/cli/commands/push/command-help.js +7 -0
  26. package/esm/cli/commands/push/command.d.ts +23 -12
  27. package/esm/cli/commands/push/command.d.ts.map +1 -1
  28. package/esm/cli/commands/push/command.js +461 -44
  29. package/esm/cli/commands/push/plan.d.ts +35 -0
  30. package/esm/cli/commands/push/plan.d.ts.map +1 -0
  31. package/esm/cli/commands/push/plan.js +96 -0
  32. package/esm/cli/commands/schedule/handler.d.ts +21 -2
  33. package/esm/cli/commands/schedule/handler.d.ts.map +1 -1
  34. package/esm/cli/commands/schedule/handler.js +74 -27
  35. package/esm/cli/commands/schema/command-help.js +1 -1
  36. package/esm/cli/commands/up/command.js +1 -1
  37. package/esm/cli/commands/webhook/handler.d.ts.map +1 -1
  38. package/esm/cli/commands/webhook/handler.js +3 -1
  39. package/esm/cli/router.d.ts.map +1 -1
  40. package/esm/cli/router.js +27 -5
  41. package/esm/cli/shared/args.d.ts +15 -1
  42. package/esm/cli/shared/args.d.ts.map +1 -1
  43. package/esm/cli/shared/args.js +56 -3
  44. package/esm/cli/shared/config.d.ts +11 -2
  45. package/esm/cli/shared/config.d.ts.map +1 -1
  46. package/esm/cli/shared/config.js +72 -27
  47. package/esm/cli/shared/project-creation.js +1 -1
  48. package/esm/cli/sync/state.d.ts +20 -0
  49. package/esm/cli/sync/state.d.ts.map +1 -0
  50. package/esm/cli/sync/state.js +193 -0
  51. package/esm/deno.js +2 -2
  52. package/esm/extensions/ext-llm-anthropic/src/anthropic-request-builder.d.ts.map +1 -1
  53. package/esm/extensions/ext-llm-anthropic/src/anthropic-request-builder.js +852 -21
  54. package/esm/extensions/ext-observability-sentry/src/policy.d.ts +2 -0
  55. package/esm/extensions/ext-observability-sentry/src/policy.d.ts.map +1 -1
  56. package/esm/extensions/ext-observability-sentry/src/policy.js +214 -3
  57. package/esm/src/agent/conversation/delegation-policy.d.ts +2 -0
  58. package/esm/src/agent/conversation/delegation-policy.d.ts.map +1 -1
  59. package/esm/src/agent/conversation/delegation-policy.js +13 -3
  60. package/esm/src/agent/conversation/hosted-terminal.d.ts.map +1 -1
  61. package/esm/src/agent/conversation/hosted-terminal.js +6 -2
  62. package/esm/src/agent/conversation/run-chunk-mirror.d.ts.map +1 -1
  63. package/esm/src/agent/conversation/run-chunk-mirror.js +14 -2
  64. package/esm/src/agent/factory.d.ts.map +1 -1
  65. package/esm/src/agent/factory.js +22 -11
  66. package/esm/src/agent/hosted/chat-runtime-tool-assembly.d.ts +2 -0
  67. package/esm/src/agent/hosted/chat-runtime-tool-assembly.d.ts.map +1 -1
  68. package/esm/src/agent/hosted/chat-runtime-tool-assembly.js +6 -1
  69. package/esm/src/agent/hosted/child-fork-execution-runner.d.ts +2 -1
  70. package/esm/src/agent/hosted/child-fork-execution-runner.d.ts.map +1 -1
  71. package/esm/src/agent/hosted/child-fork-execution-runner.js +6 -3
  72. package/esm/src/agent/hosted/child-fork-step-message-preparation.d.ts +12 -3
  73. package/esm/src/agent/hosted/child-fork-step-message-preparation.d.ts.map +1 -1
  74. package/esm/src/agent/hosted/child-fork-step-message-preparation.js +16 -3
  75. package/esm/src/agent/hosted/cloud-agent-chat-execution.d.ts +1 -1
  76. package/esm/src/agent/hosted/cloud-agent-chat-execution.d.ts.map +1 -1
  77. package/esm/src/agent/hosted/cloud-agent-chat-execution.js +3 -3
  78. package/esm/src/agent/hosted/cloud-agent-child-tools.d.ts +11 -0
  79. package/esm/src/agent/hosted/cloud-agent-child-tools.d.ts.map +1 -1
  80. package/esm/src/agent/hosted/cloud-agent-child-tools.js +2 -3
  81. package/esm/src/agent/hosted/cloud-agent-config.d.ts +1 -0
  82. package/esm/src/agent/hosted/cloud-agent-config.d.ts.map +1 -1
  83. package/esm/src/agent/hosted/cloud-runtime-system-messages.d.ts +16 -1
  84. package/esm/src/agent/hosted/cloud-runtime-system-messages.d.ts.map +1 -1
  85. package/esm/src/agent/hosted/cloud-runtime-system-messages.js +13 -3
  86. package/esm/src/agent/hosted/default-chat-runtime.d.ts +2 -1
  87. package/esm/src/agent/hosted/default-chat-runtime.d.ts.map +1 -1
  88. package/esm/src/agent/hosted/default-chat-runtime.js +18 -7
  89. package/esm/src/agent/hosted/default-invoke-agent-tool.d.ts +2 -1
  90. package/esm/src/agent/hosted/default-invoke-agent-tool.d.ts.map +1 -1
  91. package/esm/src/agent/hosted/default-invoke-agent-tool.js +11 -3
  92. package/esm/src/agent/hosted/default-project-steering-refresh.d.ts +2 -1
  93. package/esm/src/agent/hosted/default-project-steering-refresh.d.ts.map +1 -1
  94. package/esm/src/agent/hosted/default-project-steering-refresh.js +4 -1
  95. package/esm/src/agent/hosted/runtime-state-resolver.d.ts +6 -4
  96. package/esm/src/agent/hosted/runtime-state-resolver.d.ts.map +1 -1
  97. package/esm/src/agent/hosted/runtime-state-resolver.js +8 -11
  98. package/esm/src/agent/index.d.ts +3 -3
  99. package/esm/src/agent/index.d.ts.map +1 -1
  100. package/esm/src/agent/project/agent-runtime.d.ts.map +1 -1
  101. package/esm/src/agent/project/agent-runtime.js +6 -3
  102. package/esm/src/agent/runtime/agent-definition.d.ts +68 -66
  103. package/esm/src/agent/runtime/agent-definition.d.ts.map +1 -1
  104. package/esm/src/agent/runtime/agent-definition.js +15 -2
  105. package/esm/src/agent/runtime/agent-invocation-contract.d.ts +2 -0
  106. package/esm/src/agent/runtime/agent-invocation-contract.d.ts.map +1 -1
  107. package/esm/src/agent/runtime/agent-markdown-adapter.js +1 -1
  108. package/esm/src/agent/runtime/agent-runtime-step.d.ts +11 -5
  109. package/esm/src/agent/runtime/agent-runtime-step.d.ts.map +1 -1
  110. package/esm/src/agent/runtime/agent-runtime-step.js +23 -6
  111. package/esm/src/agent/runtime/call-context.d.ts +42 -11
  112. package/esm/src/agent/runtime/call-context.d.ts.map +1 -1
  113. package/esm/src/agent/runtime/call-context.js +480 -42
  114. package/esm/src/agent/runtime/chat-stream-handler.d.ts +18 -0
  115. package/esm/src/agent/runtime/chat-stream-handler.d.ts.map +1 -1
  116. package/esm/src/agent/runtime/chat-stream-handler.js +38 -18
  117. package/esm/src/agent/runtime/effective-agent-system.d.ts +13 -4
  118. package/esm/src/agent/runtime/effective-agent-system.d.ts.map +1 -1
  119. package/esm/src/agent/runtime/effective-agent-system.js +29 -0
  120. package/esm/src/agent/runtime/index.d.ts +1 -0
  121. package/esm/src/agent/runtime/index.d.ts.map +1 -1
  122. package/esm/src/agent/runtime/index.js +638 -53
  123. package/esm/src/agent/runtime/load-skill-tool.d.ts +33 -3
  124. package/esm/src/agent/runtime/load-skill-tool.d.ts.map +1 -1
  125. package/esm/src/agent/runtime/load-skill-tool.js +152 -21
  126. package/esm/src/agent/runtime/model-resolution.d.ts +3 -0
  127. package/esm/src/agent/runtime/model-resolution.d.ts.map +1 -1
  128. package/esm/src/agent/runtime/model-resolution.js +14 -0
  129. package/esm/src/agent/runtime/model-transport.d.ts +1 -0
  130. package/esm/src/agent/runtime/model-transport.d.ts.map +1 -1
  131. package/esm/src/agent/runtime/model-transport.js +5 -2
  132. package/esm/src/agent/runtime/run-runtime-context.d.ts +4 -0
  133. package/esm/src/agent/runtime/run-runtime-context.d.ts.map +1 -1
  134. package/esm/src/agent/runtime/run-runtime-context.js +9 -3
  135. package/esm/src/agent/runtime/runtime-tool-config.d.ts +1 -0
  136. package/esm/src/agent/runtime/runtime-tool-config.d.ts.map +1 -1
  137. package/esm/src/agent/runtime/skill-prompt.d.ts +3 -0
  138. package/esm/src/agent/runtime/skill-prompt.d.ts.map +1 -1
  139. package/esm/src/agent/runtime/skill-prompt.js +113 -25
  140. package/esm/src/agent/runtime/streamed-assistant-message.d.ts +22 -2
  141. package/esm/src/agent/runtime/streamed-assistant-message.d.ts.map +1 -1
  142. package/esm/src/agent/runtime/streamed-assistant-message.js +26 -5
  143. package/esm/src/agent/runtime/tool-inventory.d.ts.map +1 -1
  144. package/esm/src/agent/runtime/tool-inventory.js +13 -9
  145. package/esm/src/agent/runtime/tool-result-continuation.d.ts +4 -2
  146. package/esm/src/agent/runtime/tool-result-continuation.d.ts.map +1 -1
  147. package/esm/src/agent/runtime/tool-result-continuation.js +24 -20
  148. package/esm/src/agent/schemas/agent.schema.d.ts +2 -2
  149. package/esm/src/agent/service/runtime.js +1 -1
  150. package/esm/src/agent/streaming/fork-runtime-stream.d.ts +5 -4
  151. package/esm/src/agent/streaming/fork-runtime-stream.d.ts.map +1 -1
  152. package/esm/src/agent/types.d.ts +14 -1
  153. package/esm/src/agent/types.d.ts.map +1 -1
  154. package/esm/src/chat/chat-ui-message-helpers.d.ts.map +1 -1
  155. package/esm/src/chat/chat-ui-message-helpers.js +75 -16
  156. package/esm/src/config/loader.d.ts.map +1 -1
  157. package/esm/src/config/loader.js +37 -1
  158. package/esm/src/errors/catalog/build-errors.d.ts.map +1 -1
  159. package/esm/src/errors/catalog/build-errors.js +14 -0
  160. package/esm/src/errors/error-registry/build.d.ts +2 -0
  161. package/esm/src/errors/error-registry/build.d.ts.map +1 -1
  162. package/esm/src/errors/error-registry/build.js +8 -0
  163. package/esm/src/errors/error-registry/deploy.d.ts +4 -0
  164. package/esm/src/errors/error-registry/deploy.d.ts.map +1 -1
  165. package/esm/src/errors/error-registry/deploy.js +16 -0
  166. package/esm/src/errors/error-registry.d.ts +3 -0
  167. package/esm/src/errors/error-registry.d.ts.map +1 -1
  168. package/esm/src/errors/index.d.ts +2 -1
  169. package/esm/src/errors/index.d.ts.map +1 -1
  170. package/esm/src/errors/index.js +4 -3
  171. package/esm/src/errors/tenant-classification.d.ts +25 -0
  172. package/esm/src/errors/tenant-classification.d.ts.map +1 -0
  173. package/esm/src/errors/tenant-classification.js +61 -0
  174. package/esm/src/extensions/builtin-extensions.d.ts +10 -15
  175. package/esm/src/extensions/builtin-extensions.d.ts.map +1 -1
  176. package/esm/src/extensions/builtin-extensions.js +32 -26
  177. package/esm/src/extensions/deferred-extension.d.ts +4 -4
  178. package/esm/src/extensions/deferred-extension.js +4 -4
  179. package/esm/src/extensions/index.d.ts +1 -0
  180. package/esm/src/extensions/index.d.ts.map +1 -1
  181. package/esm/src/extensions/index.js +1 -0
  182. package/esm/src/html/hydration-script-builder/hydration-runtime.generated.js +1 -1
  183. package/esm/src/integrations/_data.d.ts.map +1 -1
  184. package/esm/src/integrations/_data.js +6 -0
  185. package/esm/src/integrations/schema.d.ts +8 -0
  186. package/esm/src/integrations/schema.d.ts.map +1 -1
  187. package/esm/src/integrations/schema.js +3 -0
  188. package/esm/src/integrations/types.d.ts +2 -0
  189. package/esm/src/integrations/types.d.ts.map +1 -1
  190. package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
  191. package/esm/src/internal-agents/run-stream.js +35 -20
  192. package/esm/src/internal-agents/run-system-prompt.d.ts +7 -2
  193. package/esm/src/internal-agents/run-system-prompt.d.ts.map +1 -1
  194. package/esm/src/internal-agents/run-system-prompt.js +19 -13
  195. package/esm/src/internal-agents/schema.d.ts +2 -0
  196. package/esm/src/internal-agents/schema.d.ts.map +1 -1
  197. package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts.map +1 -1
  198. package/esm/src/modules/react-loader/ssr-module-loader/loader.js +2 -18
  199. package/esm/src/modules/react-loader/ssr-module-loader/ssr-dependency-validator.d.ts +11 -0
  200. package/esm/src/modules/react-loader/ssr-module-loader/ssr-dependency-validator.d.ts.map +1 -1
  201. package/esm/src/modules/react-loader/ssr-module-loader/ssr-dependency-validator.js +53 -6
  202. package/esm/src/observability/application-error-contract.d.ts +4 -0
  203. package/esm/src/observability/application-error-contract.d.ts.map +1 -1
  204. package/esm/src/observability/application-errors.d.ts.map +1 -1
  205. package/esm/src/observability/application-errors.js +64 -3
  206. package/esm/src/platform/adapters/runtime/deno/http-server.d.ts.map +1 -1
  207. package/esm/src/platform/adapters/runtime/deno/http-server.js +2 -10
  208. package/esm/src/platform/adapters/runtime/shared/request-peer.d.ts +14 -0
  209. package/esm/src/platform/adapters/runtime/shared/request-peer.d.ts.map +1 -1
  210. package/esm/src/platform/adapters/runtime/shared/request-peer.js +82 -0
  211. package/esm/src/platform/compat/http/pinned-fetch.d.ts +1 -1
  212. package/esm/src/provider/runtime-loader/provider-http.d.ts +5 -1
  213. package/esm/src/provider/runtime-loader/provider-http.d.ts.map +1 -1
  214. package/esm/src/provider/runtime-loader/provider-http.js +55 -17
  215. package/esm/src/provider/shared/index.d.ts +1 -0
  216. package/esm/src/provider/shared/index.d.ts.map +1 -1
  217. package/esm/src/provider/shared/index.js +2 -0
  218. package/esm/src/provider/types.d.ts +1 -0
  219. package/esm/src/provider/types.d.ts.map +1 -1
  220. package/esm/src/react/components/ui/adapter/builtin/combobox.d.ts +3 -0
  221. package/esm/src/react/components/ui/adapter/builtin/combobox.d.ts.map +1 -0
  222. package/esm/src/react/components/ui/adapter/builtin/combobox.js +204 -0
  223. package/esm/src/react/components/ui/adapter/builtin/dialog.d.ts +3 -0
  224. package/esm/src/react/components/ui/adapter/builtin/dialog.d.ts.map +1 -0
  225. package/esm/src/react/components/ui/adapter/builtin/dialog.js +20 -0
  226. package/esm/src/react/components/ui/adapter/builtin/drawer.d.ts +3 -0
  227. package/esm/src/react/components/ui/adapter/builtin/drawer.d.ts.map +1 -0
  228. package/esm/src/react/components/ui/adapter/builtin/drawer.js +21 -0
  229. package/esm/src/react/components/ui/adapter/builtin/index.d.ts.map +1 -1
  230. package/esm/src/react/components/ui/adapter/builtin/index.js +10 -0
  231. package/esm/src/react/components/ui/adapter/builtin/popover.d.ts +3 -0
  232. package/esm/src/react/components/ui/adapter/builtin/popover.d.ts.map +1 -0
  233. package/esm/src/react/components/ui/adapter/builtin/popover.js +28 -0
  234. package/esm/src/react/components/ui/adapter/builtin/tabs.d.ts +3 -0
  235. package/esm/src/react/components/ui/adapter/builtin/tabs.d.ts.map +1 -0
  236. package/esm/src/react/components/ui/adapter/builtin/tabs.js +73 -0
  237. package/esm/src/react/components/ui/adapter/context.d.ts.map +1 -1
  238. package/esm/src/react/components/ui/adapter/context.js +10 -0
  239. package/esm/src/react/components/ui/adapter/contract.d.ts +212 -0
  240. package/esm/src/react/components/ui/adapter/contract.d.ts.map +1 -1
  241. package/esm/src/react/components/ui/adapter/token-scope.d.ts +24 -0
  242. package/esm/src/react/components/ui/adapter/token-scope.d.ts.map +1 -0
  243. package/esm/src/react/components/ui/adapter/token-scope.js +26 -0
  244. package/esm/src/react/components/ui/alert-dialog.d.ts +101 -0
  245. package/esm/src/react/components/ui/alert-dialog.d.ts.map +1 -0
  246. package/esm/src/react/components/ui/alert-dialog.js +181 -0
  247. package/esm/src/react/components/ui/aspect-ratio.d.ts +18 -0
  248. package/esm/src/react/components/ui/aspect-ratio.d.ts.map +1 -0
  249. package/esm/src/react/components/ui/aspect-ratio.js +13 -0
  250. package/esm/src/react/components/ui/autocomplete.d.ts +67 -0
  251. package/esm/src/react/components/ui/autocomplete.d.ts.map +1 -0
  252. package/esm/src/react/components/ui/autocomplete.js +59 -0
  253. package/esm/src/react/components/ui/breadcrumb.d.ts +86 -0
  254. package/esm/src/react/components/ui/breadcrumb.d.ts.map +1 -0
  255. package/esm/src/react/components/ui/breadcrumb.js +67 -0
  256. package/esm/src/react/components/ui/calendar.d.ts +40 -0
  257. package/esm/src/react/components/ui/calendar.d.ts.map +1 -0
  258. package/esm/src/react/components/ui/calendar.js +170 -0
  259. package/esm/src/react/components/ui/combobox.d.ts +74 -0
  260. package/esm/src/react/components/ui/combobox.d.ts.map +1 -0
  261. package/esm/src/react/components/ui/combobox.js +100 -0
  262. package/esm/src/react/components/ui/context-menu.d.ts +116 -0
  263. package/esm/src/react/components/ui/context-menu.d.ts.map +1 -0
  264. package/esm/src/react/components/ui/context-menu.js +168 -0
  265. package/esm/src/react/components/ui/date-picker.d.ts +69 -0
  266. package/esm/src/react/components/ui/date-picker.d.ts.map +1 -0
  267. package/esm/src/react/components/ui/date-picker.js +96 -0
  268. package/esm/src/react/components/ui/dialog.d.ts +41 -11
  269. package/esm/src/react/components/ui/dialog.d.ts.map +1 -1
  270. package/esm/src/react/components/ui/dialog.js +47 -28
  271. package/esm/src/react/components/ui/drawer.d.ts +31 -8
  272. package/esm/src/react/components/ui/drawer.d.ts.map +1 -1
  273. package/esm/src/react/components/ui/drawer.js +33 -22
  274. package/esm/src/react/components/ui/dropdown-menu.d.ts.map +1 -1
  275. package/esm/src/react/components/ui/dropdown-menu.js +7 -75
  276. package/esm/src/react/components/ui/field.d.ts +70 -0
  277. package/esm/src/react/components/ui/field.d.ts.map +1 -0
  278. package/esm/src/react/components/ui/field.js +161 -0
  279. package/esm/src/react/components/ui/file-type.d.ts +9 -8
  280. package/esm/src/react/components/ui/file-type.d.ts.map +1 -1
  281. package/esm/src/react/components/ui/file-type.js +8 -8
  282. package/esm/src/react/components/ui/hover-card.d.ts +82 -0
  283. package/esm/src/react/components/ui/hover-card.d.ts.map +1 -0
  284. package/esm/src/react/components/ui/hover-card.js +140 -0
  285. package/esm/src/react/components/ui/index.d.ts +23 -2
  286. package/esm/src/react/components/ui/index.d.ts.map +1 -1
  287. package/esm/src/react/components/ui/index.js +21 -0
  288. package/esm/src/react/components/ui/input-otp.d.ts +37 -0
  289. package/esm/src/react/components/ui/input-otp.d.ts.map +1 -0
  290. package/esm/src/react/components/ui/input-otp.js +42 -0
  291. package/esm/src/react/components/ui/menu-keyboard.d.ts +8 -0
  292. package/esm/src/react/components/ui/menu-keyboard.d.ts.map +1 -0
  293. package/esm/src/react/components/ui/menu-keyboard.js +76 -0
  294. package/esm/src/react/components/ui/menubar.d.ts +98 -0
  295. package/esm/src/react/components/ui/menubar.d.ts.map +1 -0
  296. package/esm/src/react/components/ui/menubar.js +173 -0
  297. package/esm/src/react/components/ui/meter.d.ts +45 -0
  298. package/esm/src/react/components/ui/meter.d.ts.map +1 -0
  299. package/esm/src/react/components/ui/meter.js +59 -0
  300. package/esm/src/react/components/ui/modal-surface.d.ts +7 -1
  301. package/esm/src/react/components/ui/modal-surface.d.ts.map +1 -1
  302. package/esm/src/react/components/ui/modal-surface.js +23 -6
  303. package/esm/src/react/components/ui/navigation-menu.d.ts +101 -0
  304. package/esm/src/react/components/ui/navigation-menu.d.ts.map +1 -0
  305. package/esm/src/react/components/ui/navigation-menu.js +195 -0
  306. package/esm/src/react/components/ui/number-field.d.ts +46 -0
  307. package/esm/src/react/components/ui/number-field.d.ts.map +1 -0
  308. package/esm/src/react/components/ui/number-field.js +121 -0
  309. package/esm/src/react/components/ui/pagination.d.ts +77 -0
  310. package/esm/src/react/components/ui/pagination.d.ts.map +1 -0
  311. package/esm/src/react/components/ui/pagination.js +62 -0
  312. package/esm/src/react/components/ui/popover.d.ts +42 -13
  313. package/esm/src/react/components/ui/popover.d.ts.map +1 -1
  314. package/esm/src/react/components/ui/popover.js +25 -12
  315. package/esm/src/react/components/ui/scroll-area.d.ts +38 -0
  316. package/esm/src/react/components/ui/scroll-area.d.ts.map +1 -0
  317. package/esm/src/react/components/ui/scroll-area.js +35 -0
  318. package/esm/src/react/components/ui/separator.d.ts +20 -0
  319. package/esm/src/react/components/ui/separator.d.ts.map +1 -0
  320. package/esm/src/react/components/ui/separator.js +13 -0
  321. package/esm/src/react/components/ui/slider.d.ts +44 -0
  322. package/esm/src/react/components/ui/slider.d.ts.map +1 -0
  323. package/esm/src/react/components/ui/slider.js +46 -0
  324. package/esm/src/react/components/ui/status.d.ts +6 -5
  325. package/esm/src/react/components/ui/status.d.ts.map +1 -1
  326. package/esm/src/react/components/ui/status.js +4 -4
  327. package/esm/src/react/components/ui/tabs.d.ts +32 -9
  328. package/esm/src/react/components/ui/tabs.d.ts.map +1 -1
  329. package/esm/src/react/components/ui/tabs.js +46 -22
  330. package/esm/src/react/components/ui/toggle.d.ts +26 -0
  331. package/esm/src/react/components/ui/toggle.d.ts.map +1 -0
  332. package/esm/src/react/components/ui/toggle.js +29 -0
  333. package/esm/src/react/components/ui/use-isomorphic-layout-effect.d.ts +2 -1
  334. package/esm/src/react/components/ui/use-isomorphic-layout-effect.d.ts.map +1 -1
  335. package/esm/src/react/components/ui/use-isomorphic-layout-effect.js +6 -3
  336. package/esm/src/rendering/chunk-optimizer/source-imports.d.ts.map +1 -1
  337. package/esm/src/rendering/chunk-optimizer/source-imports.js +4 -114
  338. package/esm/src/rendering/orchestrator/css-candidate-manifest.d.ts.map +1 -1
  339. package/esm/src/rendering/orchestrator/css-candidate-manifest.js +30 -1
  340. package/esm/src/rendering/orchestrator/module-loader/build-failure.d.ts +10 -0
  341. package/esm/src/rendering/orchestrator/module-loader/build-failure.d.ts.map +1 -1
  342. package/esm/src/rendering/orchestrator/module-loader/build-failure.js +50 -3
  343. package/esm/src/rendering/orchestrator/module-loader/dependency-resolver.d.ts +2 -0
  344. package/esm/src/rendering/orchestrator/module-loader/dependency-resolver.d.ts.map +1 -1
  345. package/esm/src/rendering/orchestrator/module-loader/dependency-resolver.js +21 -6
  346. package/esm/src/rendering/orchestrator/module-loader/index.d.ts +2 -1
  347. package/esm/src/rendering/orchestrator/module-loader/index.d.ts.map +1 -1
  348. package/esm/src/rendering/orchestrator/module-loader/index.js +190 -7
  349. package/esm/src/rendering/orchestrator/module-loader/module-persistence.d.ts +4 -0
  350. package/esm/src/rendering/orchestrator/module-loader/module-persistence.d.ts.map +1 -1
  351. package/esm/src/rendering/orchestrator/module-loader/module-persistence.js +374 -7
  352. package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
  353. package/esm/src/rendering/orchestrator/pipeline.js +12 -1
  354. package/esm/src/runs/runs-client.d.ts +2 -4
  355. package/esm/src/runs/runs-client.d.ts.map +1 -1
  356. package/esm/src/runs/schemas.d.ts +18 -8
  357. package/esm/src/runs/schemas.d.ts.map +1 -1
  358. package/esm/src/runs/schemas.js +26 -0
  359. package/esm/src/runtime/model-call-context.d.ts +6 -1
  360. package/esm/src/runtime/model-call-context.d.ts.map +1 -1
  361. package/esm/src/runtime/runtime-bridge.d.ts.map +1 -1
  362. package/esm/src/runtime/runtime-bridge.js +133 -15
  363. package/esm/src/schedule/factory.d.ts +8 -2
  364. package/esm/src/schedule/factory.d.ts.map +1 -1
  365. package/esm/src/schedule/factory.js +0 -8
  366. package/esm/src/schedule/index.d.ts +10 -1
  367. package/esm/src/schedule/index.d.ts.map +1 -1
  368. package/esm/src/schedule/index.js +9 -0
  369. package/esm/src/schedule/types.d.ts +30 -11
  370. package/esm/src/schedule/types.d.ts.map +1 -1
  371. package/esm/src/schedule/validation.d.ts +17 -0
  372. package/esm/src/schedule/validation.d.ts.map +1 -1
  373. package/esm/src/schedule/validation.js +93 -5
  374. package/esm/src/security/sandbox/worker-pool.d.ts.map +1 -1
  375. package/esm/src/security/sandbox/worker-pool.js +6 -1
  376. package/esm/src/server/bootstrap.d.ts.map +1 -1
  377. package/esm/src/server/bootstrap.js +6 -0
  378. package/esm/src/server/dev-server/index.d.ts +1 -1
  379. package/esm/src/server/dev-server/index.d.ts.map +1 -1
  380. package/esm/src/server/dev-server/server.d.ts +7 -3
  381. package/esm/src/server/dev-server/server.d.ts.map +1 -1
  382. package/esm/src/server/dev-server/server.js +12 -3
  383. package/esm/src/server/dev-server/types.d.ts +7 -1
  384. package/esm/src/server/dev-server/types.d.ts.map +1 -1
  385. package/esm/src/server/dev-server.d.ts +1 -1
  386. package/esm/src/server/dev-server.d.ts.map +1 -1
  387. package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
  388. package/esm/src/server/handlers/dev/framework-candidates.generated.js +2509 -34
  389. package/esm/src/server/handlers/dev/projects/index.d.ts.map +1 -1
  390. package/esm/src/server/handlers/dev/projects/index.js +3 -0
  391. package/esm/src/server/handlers/request/agent-stream.handler.d.ts.map +1 -1
  392. package/esm/src/server/handlers/request/agent-stream.handler.js +29 -24
  393. package/esm/src/server/index.d.ts +3 -3
  394. package/esm/src/server/index.d.ts.map +1 -1
  395. package/esm/src/server/index.js +10 -5
  396. package/esm/src/server/node-handler.d.ts.map +1 -1
  397. package/esm/src/server/node-handler.js +4 -1
  398. package/esm/src/server/production-server.d.ts.map +1 -1
  399. package/esm/src/server/production-server.js +2 -1
  400. package/esm/src/server/project-env/cache.d.ts +17 -0
  401. package/esm/src/server/project-env/cache.d.ts.map +1 -1
  402. package/esm/src/server/project-env/cache.js +78 -2
  403. package/esm/src/server/project-env/fetcher.d.ts.map +1 -1
  404. package/esm/src/server/project-env/fetcher.js +24 -14
  405. package/esm/src/server/project-env/index.d.ts +1 -1
  406. package/esm/src/server/project-env/index.d.ts.map +1 -1
  407. package/esm/src/server/project-env/index.js +1 -1
  408. package/esm/src/server/project-env/internal-authorization.d.ts +7 -0
  409. package/esm/src/server/project-env/internal-authorization.d.ts.map +1 -0
  410. package/esm/src/server/project-env/internal-authorization.js +32 -0
  411. package/esm/src/server/runtime-handler/index.d.ts.map +1 -1
  412. package/esm/src/server/runtime-handler/index.js +1 -1
  413. package/esm/src/server/runtime-handler/projects-handler.d.ts +1 -1
  414. package/esm/src/server/runtime-handler/projects-handler.d.ts.map +1 -1
  415. package/esm/src/server/runtime-handler/projects-handler.js +4 -2
  416. package/esm/src/transforms/esm/http-bundler.d.ts.map +1 -1
  417. package/esm/src/transforms/esm/http-bundler.js +6 -5
  418. package/esm/src/transforms/esm/http-cache-helpers.d.ts +11 -0
  419. package/esm/src/transforms/esm/http-cache-helpers.d.ts.map +1 -1
  420. package/esm/src/transforms/esm/http-cache-helpers.js +35 -0
  421. package/esm/src/transforms/esm/http-cache.d.ts.map +1 -1
  422. package/esm/src/transforms/esm/http-cache.js +16 -10
  423. package/esm/src/transforms/esm/specifier-resolver.d.ts.map +1 -1
  424. package/esm/src/transforms/esm/specifier-resolver.js +87 -7
  425. package/esm/src/transforms/import-rewriter/strategies/alias-strategy.d.ts +2 -0
  426. package/esm/src/transforms/import-rewriter/strategies/alias-strategy.d.ts.map +1 -1
  427. package/esm/src/transforms/import-rewriter/strategies/alias-strategy.js +11 -6
  428. package/esm/src/transforms/md/compiler/md-compiler.d.ts.map +1 -1
  429. package/esm/src/transforms/md/compiler/md-compiler.js +12 -5
  430. package/esm/src/transforms/mdx/compiler/frontmatter-extractor.d.ts +2 -0
  431. package/esm/src/transforms/mdx/compiler/frontmatter-extractor.d.ts.map +1 -1
  432. package/esm/src/transforms/mdx/compiler/frontmatter-extractor.js +33 -1
  433. package/esm/src/transforms/mdx/compiler/mdx-compiler.d.ts.map +1 -1
  434. package/esm/src/transforms/mdx/compiler/mdx-compiler.js +46 -7
  435. package/esm/src/transforms/mdx/esm-module-loader/cache/index.d.ts.map +1 -1
  436. package/esm/src/transforms/mdx/esm-module-loader/cache/index.js +8 -2
  437. package/esm/src/transforms/mdx/esm-module-loader/cache-format.d.ts +1 -0
  438. package/esm/src/transforms/mdx/esm-module-loader/cache-format.d.ts.map +1 -1
  439. package/esm/src/transforms/mdx/esm-module-loader/cache-format.js +3 -0
  440. package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.d.ts +4 -0
  441. package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.d.ts.map +1 -1
  442. package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.js +44 -8
  443. package/esm/src/transforms/mdx/esm-module-loader/missing-module.d.ts +2 -0
  444. package/esm/src/transforms/mdx/esm-module-loader/missing-module.d.ts.map +1 -1
  445. package/esm/src/transforms/mdx/esm-module-loader/missing-module.js +4 -0
  446. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.d.ts.map +1 -1
  447. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.js +5 -1
  448. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fetcher.d.ts +2 -0
  449. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fetcher.d.ts.map +1 -1
  450. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fetcher.js +50 -11
  451. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/nested-imports.d.ts +24 -12
  452. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/nested-imports.d.ts.map +1 -1
  453. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/nested-imports.js +201 -18
  454. package/esm/src/transforms/mdx/esm-module-loader/types.d.ts +5 -0
  455. package/esm/src/transforms/mdx/esm-module-loader/types.d.ts.map +1 -1
  456. package/esm/src/transforms/mdx/esm-module-loader/utils/source-spans.d.ts +22 -2
  457. package/esm/src/transforms/mdx/esm-module-loader/utils/source-spans.d.ts.map +1 -1
  458. package/esm/src/transforms/mdx/esm-module-loader/utils/source-spans.js +2080 -129
  459. package/esm/src/transforms/mdx/esm-module-loader/utils/stub-module.d.ts +11 -1
  460. package/esm/src/transforms/mdx/esm-module-loader/utils/stub-module.d.ts.map +1 -1
  461. package/esm/src/transforms/mdx/esm-module-loader/utils/stub-module.js +32 -15
  462. package/esm/src/transforms/pipeline/stages/compile.d.ts.map +1 -1
  463. package/esm/src/transforms/pipeline/stages/compile.js +44 -0
  464. package/esm/src/transforms/shared/specifier-suffix.d.ts +25 -0
  465. package/esm/src/transforms/shared/specifier-suffix.d.ts.map +1 -0
  466. package/esm/src/transforms/shared/specifier-suffix.js +43 -0
  467. package/esm/src/trigger/index.d.ts +2 -2
  468. package/esm/src/trigger/index.d.ts.map +1 -1
  469. package/esm/src/trigger/index.js +1 -1
  470. package/esm/src/trigger/local-runner.d.ts +2 -2
  471. package/esm/src/trigger/local-runner.d.ts.map +1 -1
  472. package/esm/src/trigger/local-runner.js +11 -4
  473. package/esm/src/trigger/target.d.ts +97 -5
  474. package/esm/src/trigger/target.d.ts.map +1 -1
  475. package/esm/src/trigger/target.js +175 -5
  476. package/esm/src/utils/version-constant.d.ts +1 -1
  477. package/esm/src/utils/version-constant.js +1 -1
  478. package/esm/src/webhook/types.d.ts +21 -6
  479. package/esm/src/webhook/types.d.ts.map +1 -1
  480. package/esm/src/webhook/validation.d.ts.map +1 -1
  481. package/esm/src/webhook/validation.js +27 -39
  482. package/esm/templates/index.d.ts +1 -1
  483. package/esm/templates/index.d.ts.map +1 -1
  484. package/esm/templates/loader.d.ts +6 -6
  485. package/esm/templates/loader.d.ts.map +1 -1
  486. package/esm/templates/loader.js +34 -18
  487. package/esm/templates/manifest.generated.d.ts +3 -0
  488. package/esm/templates/manifest.generated.d.ts.map +1 -0
  489. package/esm/templates/manifest.generated.js +2 -0
  490. package/package.json +8 -8
  491. package/esm/templates/manifest.d.ts +0 -664
  492. package/esm/templates/manifest.d.ts.map +0 -1
  493. package/esm/templates/manifest.js +0 -662
@@ -1,9 +1,16 @@
1
1
  /**
2
- * Tabs ported from Veryfront Studio `components/Tabs/Tabs.tsx`, with the
2
+ * Tabs - ported from Veryfront Studio `components/Tabs/Tabs.tsx`, with the
3
3
  * `motion/react` spring-slide forked out: the active pill is a static
4
4
  * background (no dependency, no layout animation), only the `transition-colors`
5
5
  * CSS that Studio already ships. Semantic classes remapped to veryfront's
6
- * `[var(--token)]` vocabulary. Private to the chat module.
6
+ * `[var(--token)]` vocabulary.
7
+ *
8
+ * The selection MECHANICS (`role="tablist"` / `role="tab"`, `aria-selected`,
9
+ * select-on-click) come from the active adapter's `tabs` slot
10
+ * (`useAdapter().tabs`) - with no provider that is the zero-dependency builtin,
11
+ * so behaviour and markup are unchanged. This skin owns only the API shape, the
12
+ * `size` variant, and the visual look (including the active pill), which it
13
+ * drives from the controlled `value` prop.
7
14
  *
8
15
  * Flat, prefixed exports (`Tabs` + `TabsItem`) to match the other `ui/`
9
16
  * primitives (`SelectItem`, `DialogTrigger`, …). Note: `cn` is clsx-only (no
@@ -11,8 +18,23 @@
11
18
  * suffix (e.g. `px-8!`).
12
19
  *
13
20
  * Two sizes:
14
- * - `default` filled track (`--input-bg`), 34/38px, accent pill.
15
- * - `sm` flat, outlined, 32px, for panel headers.
21
+ * - `default` - filled track (`--input-bg`), 34/38px, accent pill.
22
+ * - `sm` - flat, outlined, 32px, for panel headers.
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * import { Tabs, TabsItem } from "veryfront/ui";
27
+ *
28
+ * function Example() {
29
+ * const [tab, setTab] = React.useState("overview");
30
+ * return (
31
+ * <Tabs value={tab} onValueChange={setTab}>
32
+ * <TabsItem value="overview">Overview</TabsItem>
33
+ * <TabsItem value="activity">Activity</TabsItem>
34
+ * </Tabs>
35
+ * );
36
+ * }
37
+ * ```
16
38
  *
17
39
  * @module react/components/ui/tabs
18
40
  */
@@ -25,7 +47,7 @@ export interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "o
25
47
  size?: TabsSize;
26
48
  children: React.ReactNode;
27
49
  }
28
- /** Tablist container manages active state and passes context to items. */
50
+ /** Tablist container - delegates selection to the adapter, owns the size + look. */
29
51
  export declare const Tabs: any;
30
52
  /** Props accepted by `<TabsItem>`. */
31
53
  export interface TabsItemProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "value"> {
@@ -34,10 +56,11 @@ export interface TabsItemProps extends Omit<React.ButtonHTMLAttributes<HTMLButto
34
56
  children: React.ReactNode;
35
57
  }
36
58
  /**
37
- * Individual tab renders as a button, or an anchor when `href` is set.
38
- * Forwards native props/ref and composes the caller's `onClick` with the
39
- * internal selection (caller's runs first, then the tab activates), so a
40
- * consumer-supplied handler adds to never overrides selection.
59
+ * Individual tab - renders as a button, or an anchor when `href` is set. The
60
+ * adapter's `tabs.Tab` supplies the `role="tab"` / `aria-selected` / `data-state`
61
+ * mechanics and composes selection onto the caller's `onClick` (caller's runs
62
+ * first, then the tab activates); this skin renders the visual pill and forwards
63
+ * native props/ref.
41
64
  */
42
65
  export declare const TabsItem: any;
43
66
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/tabs.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;AAUjC,0DAA0D;AAC1D,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACvF,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,4EAA4E;AAC5E,eAAO,MAAM,IAAI,KAsBf,CAAC;AAGH,sCAAsC;AACtC,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,KA6CpB,CAAC"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/tabs.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;AAWjC,0DAA0D;AAC1D,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACvF,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,oFAAoF;AACpF,eAAO,MAAM,IAAI,KAwBf,CAAC;AAGH,sCAAsC;AACtC,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,KAyCpB,CAAC"}
@@ -1,9 +1,16 @@
1
1
  /**
2
- * Tabs ported from Veryfront Studio `components/Tabs/Tabs.tsx`, with the
2
+ * Tabs - ported from Veryfront Studio `components/Tabs/Tabs.tsx`, with the
3
3
  * `motion/react` spring-slide forked out: the active pill is a static
4
4
  * background (no dependency, no layout animation), only the `transition-colors`
5
5
  * CSS that Studio already ships. Semantic classes remapped to veryfront's
6
- * `[var(--token)]` vocabulary. Private to the chat module.
6
+ * `[var(--token)]` vocabulary.
7
+ *
8
+ * The selection MECHANICS (`role="tablist"` / `role="tab"`, `aria-selected`,
9
+ * select-on-click) come from the active adapter's `tabs` slot
10
+ * (`useAdapter().tabs`) - with no provider that is the zero-dependency builtin,
11
+ * so behaviour and markup are unchanged. This skin owns only the API shape, the
12
+ * `size` variant, and the visual look (including the active pill), which it
13
+ * drives from the controlled `value` prop.
7
14
  *
8
15
  * Flat, prefixed exports (`Tabs` + `TabsItem`) to match the other `ui/`
9
16
  * primitives (`SelectItem`, `DialogTrigger`, …). Note: `cn` is clsx-only (no
@@ -11,40 +18,57 @@
11
18
  * suffix (e.g. `px-8!`).
12
19
  *
13
20
  * Two sizes:
14
- * - `default` filled track (`--input-bg`), 34/38px, accent pill.
15
- * - `sm` flat, outlined, 32px, for panel headers.
21
+ * - `default` - filled track (`--input-bg`), 34/38px, accent pill.
22
+ * - `sm` - flat, outlined, 32px, for panel headers.
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * import { Tabs, TabsItem } from "veryfront/ui";
27
+ *
28
+ * function Example() {
29
+ * const [tab, setTab] = React.useState("overview");
30
+ * return (
31
+ * <Tabs value={tab} onValueChange={setTab}>
32
+ * <TabsItem value="overview">Overview</TabsItem>
33
+ * <TabsItem value="activity">Activity</TabsItem>
34
+ * </Tabs>
35
+ * );
36
+ * }
37
+ * ```
16
38
  *
17
39
  * @module react/components/ui/tabs
18
40
  */
19
41
  import * as React from "react";
20
42
  import { createStrictContext } from "../create-strict-context.js";
21
43
  import { cx as cn } from "./cva.js";
22
- const [TabsContext, useTabs] = createStrictContext("TabsItem", "Tabs");
23
- /** Tablist container manages active state and passes context to items. */
44
+ import { useAdapter } from "./adapter/context.js";
45
+ const [TabsSkinContext, useTabsSkin] = createStrictContext("TabsItem", "Tabs");
46
+ /** Tablist container - delegates selection to the adapter, owns the size + look. */
24
47
  export const Tabs = React.forwardRef(function Tabs({ value, onValueChange, size = "default", className, children, ...props }, ref) {
25
- return (React.createElement(TabsContext.Provider, { value: { value, onValueChange, size } },
26
- React.createElement("div", { ref: ref, ...props, role: "tablist", className: cn("inline-flex w-fit items-center rounded-full", size === "sm"
48
+ const { tabs } = useAdapter();
49
+ return (React.createElement(TabsSkinContext.Provider, { value: { value, size } },
50
+ React.createElement(tabs.Root, { ref: ref, value: value, onValueChange: onValueChange, ...props, className: cn("inline-flex w-fit items-center rounded-full", size === "sm"
27
51
  ? "h-[32px] gap-0 border border-[var(--edge)] bg-transparent p-0.5"
28
52
  : "h-[34px] gap-2 bg-[var(--input-bg)] p-1 md:h-[38px]", className) }, children)));
29
53
  });
30
54
  Tabs.displayName = "Tabs";
31
55
  /**
32
- * Individual tab renders as a button, or an anchor when `href` is set.
33
- * Forwards native props/ref and composes the caller's `onClick` with the
34
- * internal selection (caller's runs first, then the tab activates), so a
35
- * consumer-supplied handler adds to never overrides selection.
56
+ * Individual tab - renders as a button, or an anchor when `href` is set. The
57
+ * adapter's `tabs.Tab` supplies the `role="tab"` / `aria-selected` / `data-state`
58
+ * mechanics and composes selection onto the caller's `onClick` (caller's runs
59
+ * first, then the tab activates); this skin renders the visual pill and forwards
60
+ * native props/ref.
36
61
  */
37
62
  export const TabsItem = React.forwardRef(function TabsItem({ value, href, children, className, onClick, ...props }, ref) {
38
- const ctx = useTabs();
39
- const isActive = ctx.value === value;
63
+ const { tabs } = useAdapter();
64
+ const { value: selected, size } = useTabsSkin();
65
+ const isActive = selected === value;
40
66
  const Comp = (href ? "a" : "button");
41
- return (React.createElement(Comp, { ref: ref, ...(href ? { href } : { type: "button" }), ...props, role: "tab", "aria-selected": isActive, onClick: (e) => {
42
- onClick?.(e);
43
- ctx.onValueChange(value);
44
- }, className: cn("relative inline-flex items-center h-full rounded-full font-normal transition-colors cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--edge-medium)]", ctx.size === "sm" ? "px-3 text-sm" : "px-5 md:px-6 text-sm md:text-base", isActive
45
- ? cn("text-[var(--foreground)]", ctx.size === "default" && "dark:text-[var(--background)]")
46
- : "text-[var(--foreground)] opacity-50 hover:opacity-100", className) },
47
- isActive && (React.createElement("div", { className: cn("absolute inset-0 rounded-full bg-[var(--accent)]", ctx.size === "default" && "dark:bg-[var(--foreground)]") })),
48
- React.createElement("span", { className: "relative z-10" }, children)));
67
+ return (React.createElement(tabs.Tab, { value: value, asChild: true, ref: ref, onClick: onClick },
68
+ React.createElement(Comp, { ...(href ? { href } : { type: "button" }), ...props, className: cn("relative inline-flex items-center h-full rounded-full font-normal transition-colors cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--edge-medium)]", size === "sm" ? "px-3 text-sm" : "px-5 md:px-6 text-sm md:text-base", isActive
69
+ ? cn("text-[var(--foreground)]", size === "default" && "dark:text-[var(--background)]")
70
+ : "text-[var(--foreground)] opacity-50 hover:opacity-100", className) },
71
+ isActive && (React.createElement("div", { className: cn("absolute inset-0 rounded-full bg-[var(--accent)]", size === "default" && "dark:bg-[var(--foreground)]") })),
72
+ React.createElement("span", { className: "relative z-10" }, children))));
49
73
  });
50
74
  TabsItem.displayName = "TabsItem";
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Toggle - a two-state pressed button (on / off). Behavioural but self-contained
3
+ * (a single `aria-pressed` button, no floating engine needed): controlled via
4
+ * `pressed`/`onPressedChange` or uncontrolled via `defaultPressed`. State is
5
+ * exposed as `data-state="on" | "off"` for styling; `asChild` grafts the toggle
6
+ * behaviour onto your own element. Skinned entirely with veryfront theme tokens.
7
+ *
8
+ * @module react/components/ui/toggle
9
+ */
10
+ import * as React from "react";
11
+ /** Props accepted by `<Toggle>`. */
12
+ export interface ToggleProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onChange"> {
13
+ /** Controlled pressed state. Pair with `onPressedChange`. */
14
+ pressed?: boolean;
15
+ /** Initial pressed state when uncontrolled. @default false */
16
+ defaultPressed?: boolean;
17
+ /** Fires with the next pressed state on user activation. */
18
+ onPressedChange?: (pressed: boolean) => void;
19
+ /** Render as a Slot, merging the toggle behaviour onto the child element. */
20
+ asChild?: boolean;
21
+ /** React 19: ref is a regular prop. */
22
+ ref?: React.Ref<HTMLButtonElement>;
23
+ }
24
+ /** Render a pressed toggle button. */
25
+ export declare function Toggle({ pressed, defaultPressed, onPressedChange, asChild, disabled, className, onClick, ref, ...props }: ToggleProps): React.ReactElement;
26
+ //# sourceMappingURL=toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/toggle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,oCAAoC;AACpC,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACvE,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;CACpC;AAED,sCAAsC;AACtC,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,cAAsB,EACtB,eAAe,EACf,OAAe,EACf,QAAQ,EACR,SAAS,EACT,OAAO,EACP,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAsClC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Toggle - a two-state pressed button (on / off). Behavioural but self-contained
3
+ * (a single `aria-pressed` button, no floating engine needed): controlled via
4
+ * `pressed`/`onPressedChange` or uncontrolled via `defaultPressed`. State is
5
+ * exposed as `data-state="on" | "off"` for styling; `asChild` grafts the toggle
6
+ * behaviour onto your own element. Skinned entirely with veryfront theme tokens.
7
+ *
8
+ * @module react/components/ui/toggle
9
+ */
10
+ import * as React from "react";
11
+ import { cx as cn } from "./cva.js";
12
+ import { Slot } from "./slot.js";
13
+ /** Render a pressed toggle button. */
14
+ export function Toggle({ pressed, defaultPressed = false, onPressedChange, asChild = false, disabled, className, onClick, ref, ...props }) {
15
+ const isControlled = pressed !== undefined;
16
+ const [internal, setInternal] = React.useState(defaultPressed);
17
+ const isOn = isControlled ? pressed : internal;
18
+ const handleClick = (event) => {
19
+ onClick?.(event);
20
+ if (event.defaultPrevented)
21
+ return;
22
+ const next = !isOn;
23
+ if (!isControlled)
24
+ setInternal(next);
25
+ onPressedChange?.(next);
26
+ };
27
+ const Comp = asChild ? Slot : "button";
28
+ return (React.createElement(Comp, { ref: ref, type: asChild ? undefined : "button", "aria-pressed": isOn, "data-state": isOn ? "on" : "off", "data-disabled": disabled ? "" : undefined, disabled: disabled, onClick: handleClick, className: cn("inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-md", "h-[38px] min-w-[38px] px-3 text-base font-normal", "transition-[background-color,color] duration-150 ease-in", "text-[var(--foreground)] hover:bg-[var(--accent)]", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--edge-medium)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--background)]", "data-[state=on]:bg-[var(--secondary)] data-[state=on]:text-[var(--foreground)]", "disabled:pointer-events-none disabled:opacity-50", "[&_svg]:size-4 [&_svg]:shrink-0", className), ...props }));
29
+ }
@@ -1,6 +1,7 @@
1
+ import * as React from "react";
1
2
  /**
2
3
  * Use a layout effect in browsers without emitting React's server-rendering
3
4
  * warning when a primitive is rendered on the server.
4
5
  */
5
- export declare const useIsomorphicLayoutEffect: any;
6
+ export declare const useIsomorphicLayoutEffect: typeof React.useLayoutEffect;
6
7
  //# sourceMappingURL=use-isomorphic-layout-effect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-isomorphic-layout-effect.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/use-isomorphic-layout-effect.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,yBAAyB,KAEb,CAAC"}
1
+ {"version":3,"file":"use-isomorphic-layout-effect.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/ui/use-isomorphic-layout-effect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,OAAO,KAAK,CAAC,eAKpD,CAAC"}
@@ -3,6 +3,9 @@ import * as React from "react";
3
3
  * Use a layout effect in browsers without emitting React's server-rendering
4
4
  * warning when a primitive is rendered on the server.
5
5
  */
6
- export const useIsomorphicLayoutEffect = typeof globalThis.document === "undefined"
7
- ? React.useEffect
8
- : React.useLayoutEffect;
6
+ export const useIsomorphicLayoutEffect = (effect, deps) => {
7
+ const useEffectHook = typeof globalThis.document === "undefined"
8
+ ? React.useEffect
9
+ : React.useLayoutEffect;
10
+ return useEffectHook(effect, deps);
11
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"source-imports.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/chunk-optimizer/source-imports.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAKjE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAqXD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAwBhE;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"source-imports.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/chunk-optimizer/source-imports.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAKjE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AA8PD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAwBhE;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -179,123 +179,13 @@ function maskMarkdownRegions(source) {
179
179
  }
180
180
  return maskHtmlComments(parts.join(""));
181
181
  }
182
- function readHexDigit(char) {
183
- if (char === undefined)
184
- return -1;
185
- const code = char.charCodeAt(0);
186
- if (code >= 0x30 && code <= 0x39)
187
- return code - 0x30;
188
- if (code >= 0x41 && code <= 0x46)
189
- return code - 0x41 + 10;
190
- if (code >= 0x61 && code <= 0x66)
191
- return code - 0x61 + 10;
192
- return -1;
193
- }
194
- function readFixedHex(value, start, length) {
195
- let parsed = 0;
196
- for (let index = 0; index < length; index++) {
197
- const digit = readHexDigit(value[start + index]);
198
- if (digit === -1) {
199
- throw new SyntaxError("Invalid escaped module specifier");
200
- }
201
- parsed = parsed * 16 + digit;
202
- }
203
- return { value: parsed, end: start + length };
204
- }
205
- function decodeModuleSpecifier(value) {
206
- if (!value.includes("\\"))
207
- return value;
208
- let decoded = "";
209
- let cursor = 0;
210
- while (cursor < value.length) {
211
- const char = value[cursor++];
212
- if (char !== "\\") {
213
- if (char === "\n" || char === "\r") {
214
- throw new SyntaxError("Module specifiers cannot contain line terminators");
215
- }
216
- decoded += char;
217
- continue;
218
- }
219
- if (cursor >= value.length) {
220
- throw new SyntaxError("Invalid escaped module specifier");
221
- }
222
- const escaped = value[cursor++];
223
- const simple = {
224
- b: "\b",
225
- f: "\f",
226
- n: "\n",
227
- r: "\r",
228
- t: "\t",
229
- v: "\v",
230
- "\\": "\\",
231
- "'": "'",
232
- '"': '"',
233
- };
234
- if (Object.hasOwn(simple, escaped)) {
235
- decoded += simple[escaped];
236
- continue;
237
- }
238
- if (escaped === "\n")
239
- continue;
240
- if (escaped === "\r") {
241
- if (value[cursor] === "\n")
242
- cursor++;
243
- continue;
244
- }
245
- if (escaped === "0") {
246
- if (/[0-9]/.test(value[cursor] ?? "")) {
247
- throw new SyntaxError("Legacy octal escapes are not valid in module specifiers");
248
- }
249
- decoded += "\0";
250
- continue;
251
- }
252
- if (escaped === "x") {
253
- const parsed = readFixedHex(value, cursor, 2);
254
- decoded += String.fromCharCode(parsed.value);
255
- cursor = parsed.end;
256
- continue;
257
- }
258
- if (escaped === "u") {
259
- if (value[cursor] === "{") {
260
- const closing = value.indexOf("}", cursor + 1);
261
- if (closing === -1 || closing === cursor + 1) {
262
- throw new SyntaxError("Invalid Unicode escape in module specifier");
263
- }
264
- let codePoint = 0;
265
- for (let index = cursor + 1; index < closing; index++) {
266
- const digit = readHexDigit(value[index]);
267
- if (digit === -1) {
268
- throw new SyntaxError("Invalid Unicode escape in module specifier");
269
- }
270
- codePoint = codePoint * 16 + digit;
271
- if (codePoint > 0x10ffff) {
272
- throw new SyntaxError("Module specifier Unicode escape is out of range");
273
- }
274
- }
275
- decoded += String.fromCodePoint(codePoint);
276
- cursor = closing + 1;
277
- continue;
278
- }
279
- const parsed = readFixedHex(value, cursor, 4);
280
- decoded += String.fromCharCode(parsed.value);
281
- cursor = parsed.end;
282
- continue;
283
- }
284
- if (escaped >= "1" && escaped <= "9") {
285
- throw new SyntaxError("Legacy numeric escapes are not valid in module specifiers");
286
- }
287
- decoded += escaped;
288
- }
289
- return decoded;
290
- }
291
182
  function validateImportSpecifier(value) {
292
- const decoded = decodeModuleSpecifier(value);
293
- if (decoded.length === 0 ||
294
- decoded.length > MAX_IMPORT_SPECIFIER_CHARS ||
295
- hasControlCharacter(decoded)) {
183
+ if (value.length === 0 ||
184
+ value.length > MAX_IMPORT_SPECIFIER_CHARS ||
185
+ hasControlCharacter(value)) {
296
186
  throw new TypeError(`Chunk analysis import specifiers must contain between 1 and ${MAX_IMPORT_SPECIFIER_CHARS} characters without control characters`);
297
187
  }
298
- return decoded;
188
+ return value;
299
189
  }
300
190
  /**
301
191
  * Run a span scanner one match past the per-page bound and fail closed there.
@@ -1 +1 @@
1
- {"version":3,"file":"css-candidate-manifest.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/css-candidate-manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,kDAAkD,CAAC;AAK1D,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAQD,UAAU,qBAAqB;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,UAAU,uBAAuB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAqBD,wBAAgB,8BAA8B,IAAI;IAChD,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,eAAe,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D,CAUA;AA8GD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC,CAoD9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,GAAG,CAAC,MAAM,CAAC,CAGlF;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAc/E"}
1
+ {"version":3,"file":"css-candidate-manifest.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/css-candidate-manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,kDAAkD,CAAC;AAK1D,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAQD,UAAU,qBAAqB;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,UAAU,uBAAuB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAqBD,wBAAgB,8BAA8B,IAAI;IAChD,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,eAAe,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D,CAUA;AA2ID;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC,CAoD9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,GAAG,CAAC,MAAM,CAAC,CAGlF;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAc/E"}
@@ -40,6 +40,19 @@ function toRelativeProjectPath(path, projectDir) {
40
40
  }
41
41
  return normalized.replace(/^\/+/, "");
42
42
  }
43
+ function toDiagnosticProjectPath(path, projectDir) {
44
+ const normalized = normalizePath(path);
45
+ const normalizedProjectDir = normalizePath(projectDir).replace(/\/+$/, "");
46
+ if (normalized === normalizedProjectDir)
47
+ return ".";
48
+ if (normalized.startsWith(`${normalizedProjectDir}/`)) {
49
+ return normalized.slice(normalizedProjectDir.length + 1);
50
+ }
51
+ if (/^(?:[A-Za-z]:)?\//.test(normalized)) {
52
+ return `[outside-project]/${normalized.split("/").pop() ?? "unknown"}`;
53
+ }
54
+ return normalized.replace(/^\/+/, "");
55
+ }
43
56
  function buildManifestCacheKey(projectScope, projectVersion, styleProfileHash) {
44
57
  return `${projectScope}:${projectVersion}:${styleProfileHash ?? "default"}`;
45
58
  }
@@ -71,7 +84,23 @@ function buildCandidateManifest(files, projectDir) {
71
84
  continue;
72
85
  if (!SOURCE_EXTENSIONS.some((ext) => file.path.endsWith(ext)))
73
86
  continue;
74
- const candidates = new Set(extractCandidates(file.content));
87
+ // A file the tokenizer refuses to admit (over the byte or candidate-count
88
+ // cap) must degrade to "contributes no candidates", not abort the manifest:
89
+ // an escaping throw here propagates to the SSR boundary and, because it
90
+ // happens before manifestCache.set, is rebuilt and re-thrown on every
91
+ // request to the project (VERYFRONT-SERVER-F).
92
+ let extracted;
93
+ try {
94
+ extracted = extractCandidates(file.content);
95
+ }
96
+ catch (error) {
97
+ logger.warn("Skipping file rejected by candidate extraction", {
98
+ path: toDiagnosticProjectPath(file.path, projectDir),
99
+ error: error instanceof Error ? error.message : String(error),
100
+ });
101
+ continue;
102
+ }
103
+ const candidates = new Set(extracted);
75
104
  const relativePath = toRelativeProjectPath(file.path, projectDir);
76
105
  const absolutePath = normalizePath(file.path);
77
106
  fileCandidates.set(relativePath, candidates);
@@ -15,6 +15,16 @@
15
15
  */
16
16
  /** Tag `error` as a build failure and return it. */
17
17
  export declare function markBuildFailure(error: unknown): unknown;
18
+ /**
19
+ * Tag `error` as a build failure the tenant's own source caused, and return it.
20
+ *
21
+ * For seams that know the provenance from control flow rather than from a
22
+ * registry slug — an import specifier that still does not resolve after a full
23
+ * rebuild, for instance, is a path the project authored.
24
+ */
25
+ export declare function markTenantBuildFailure(error: unknown): unknown;
18
26
  /** True when `error` was raised while compiling or resolving project source. */
19
27
  export declare function isBuildFailure(error: unknown): boolean;
28
+ /** True only for a build failure explicitly classified as tenant source. */
29
+ export declare function isTenantBuildFailure(error: unknown): boolean;
20
30
  //# sourceMappingURL=build-failure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-failure.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/orchestrator/module-loader/build-failure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,oDAAoD;AACpD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGxD;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEtD"}
1
+ {"version":3,"file":"build-failure.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/orchestrator/module-loader/build-failure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiCH,oDAAoD;AACpD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMxD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM9D;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEtD;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE5D"}
@@ -13,14 +13,61 @@
13
13
  * Only the loader is in a position to know which happened, so it tags the
14
14
  * error at the point of failure instead of leaving later layers to infer it.
15
15
  */
16
+ import { isTenantSourceBuildError } from "../../../errors/tenant-classification.js";
17
+ const ObjectDefineProperty = Object.defineProperty;
18
+ const ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty;
19
+ const ReflectApply = Reflect.apply;
20
+ const ReflectGetOwnPropertyDescriptor = Reflect.getOwnPropertyDescriptor;
16
21
  const BUILD_FAILURE = Symbol.for("veryfront.module-loader.build-failure");
22
+ const TENANT_BUILD_FAILURE = Symbol.for("veryfront.module-loader.tenant-build-failure");
23
+ /**
24
+ * Modules are strict mode, so a plain assignment onto a frozen error throws.
25
+ * These taggers run inside `catch` blocks, where a throw would replace the
26
+ * original error with a `TypeError` and lose the failure entirely.
27
+ */
28
+ function defineTag(error, tag) {
29
+ try {
30
+ ObjectDefineProperty(error, tag, { value: true, configurable: true });
31
+ }
32
+ catch {
33
+ // Sealed or non-configurable: the error stays untagged, which degrades to
34
+ // the pre-classification behavior rather than destroying the error.
35
+ }
36
+ }
37
+ function hasOwnTrueTag(error, tag) {
38
+ const descriptor = ReflectGetOwnPropertyDescriptor(error, tag);
39
+ return descriptor !== undefined &&
40
+ ReflectApply(ObjectPrototypeHasOwnProperty, descriptor, ["value"]) === true &&
41
+ descriptor.value === true;
42
+ }
17
43
  /** Tag `error` as a build failure and return it. */
18
44
  export function markBuildFailure(error) {
19
- if (error instanceof Error)
20
- error[BUILD_FAILURE] = true;
45
+ if (error instanceof Error) {
46
+ defineTag(error, BUILD_FAILURE);
47
+ if (isTenantSourceBuildError(error))
48
+ defineTag(error, TENANT_BUILD_FAILURE);
49
+ }
50
+ return error;
51
+ }
52
+ /**
53
+ * Tag `error` as a build failure the tenant's own source caused, and return it.
54
+ *
55
+ * For seams that know the provenance from control flow rather than from a
56
+ * registry slug — an import specifier that still does not resolve after a full
57
+ * rebuild, for instance, is a path the project authored.
58
+ */
59
+ export function markTenantBuildFailure(error) {
60
+ if (error instanceof Error) {
61
+ defineTag(error, BUILD_FAILURE);
62
+ defineTag(error, TENANT_BUILD_FAILURE);
63
+ }
21
64
  return error;
22
65
  }
23
66
  /** True when `error` was raised while compiling or resolving project source. */
24
67
  export function isBuildFailure(error) {
25
- return error instanceof Error && error[BUILD_FAILURE] === true;
68
+ return error instanceof Error && hasOwnTrueTag(error, BUILD_FAILURE);
69
+ }
70
+ /** True only for a build failure explicitly classified as tenant source. */
71
+ export function isTenantBuildFailure(error) {
72
+ return error instanceof Error && hasOwnTrueTag(error, TENANT_BUILD_FAILURE);
26
73
  }
@@ -10,6 +10,8 @@ export type ResolvedModuleDependency = {
10
10
  isLocalLib: boolean;
11
11
  /** True when discovered inside `import("…")` rather than a static import. */
12
12
  isDynamic: boolean;
13
+ /** True when discovered in a bare `import "…"` statement. */
14
+ isSideEffect?: boolean;
13
15
  };
14
16
  /** Resolved dependency after its source module has been transformed to a temp file. */
15
17
  export type TransformedModuleDependency = ResolvedModuleDependency & {
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/orchestrator/module-loader/dependency-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAmDzE,sEAAsE;AACtE,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,GAAG;IACnE,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,sEAAsE;AACtE,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;CACzB;AAwHD,yEAAyE;AACzE,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAuBrC;AAED,2EAA2E;AAC3E,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,2BAA2B,EAAE,GAC7C,MAAM,CAaR"}
1
+ {"version":3,"file":"dependency-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/orchestrator/module-loader/dependency-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAsDzE,sEAAsE;AACtE,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,GAAG;IACnE,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,sEAAsE;AACtE,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;CACzB;AAyID,yEAAyE;AACzE,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAuBrC;AAED,2EAA2E;AAC3E,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,2BAA2B,EAAE,GAC7C,MAAM,CAiBR"}
@@ -1,6 +1,6 @@
1
1
  import { dirname, join, normalize, toFileUrl } from "../../../platform/compat/path/index.js";
2
2
  import { parallelMap, rendererLogger } from "../../../utils/index.js";
3
- import { findDynamicImportSpans, findStaticImportFromSpans, replaceSourceSpans, } from "../../../transforms/mdx/esm-module-loader/utils/source-spans.js";
3
+ import { findDynamicImportSpans, findStaticImportFromSpans, findStaticSideEffectImportSpans, replaceSourceSpans, } from "../../../transforms/mdx/esm-module-loader/utils/source-spans.js";
4
4
  import { findSourceFile } from "../file-resolver/index.js";
5
5
  const logger = rendererLogger.component("module-loader");
6
6
  const MAX_IMPORTS_PER_KIND = 500;
@@ -22,16 +22,26 @@ function collectBoundedSpans(scan, kind) {
22
22
  const matchAlias = (specifier) => specifier.startsWith("@/") ? specifier : null;
23
23
  const matchRelative = (specifier) => specifier.match(/^(\.\.?\/[^?]+)(?:\?.*)?$/)?.[1];
24
24
  function collectAliasImports(fileContent) {
25
- const toAlias = (isDynamic) => ({ original, path, start, end }) => ({ full: original, path, start, end, isDynamic });
25
+ const toAlias = (isDynamic, isSideEffect = false) => ({ original, path, start, end }) => ({ full: original, path, start, end, isDynamic, isSideEffect });
26
26
  return [
27
27
  ...collectBoundedSpans((maxMatches) => findStaticImportFromSpans(fileContent, matchAlias, maxMatches), "static alias").map(toAlias(false)),
28
+ ...collectBoundedSpans((maxMatches) => findStaticSideEffectImportSpans(fileContent, matchAlias, maxMatches), "side-effect alias").map(toAlias(false, true)),
28
29
  ...collectBoundedSpans((maxMatches) => findDynamicImportSpans(fileContent, matchAlias, maxMatches), "dynamic alias").map(toAlias(true)),
29
30
  ];
30
31
  }
31
32
  function collectRelativeImports(fileContent, fileDir) {
32
- const toRelative = (isDynamic) => ({ original, path, start, end }) => ({ full: original, path, fromDir: fileDir, start, end, isDynamic });
33
+ const toRelative = (isDynamic, isSideEffect = false) => ({ original, path, start, end }) => ({
34
+ full: original,
35
+ path,
36
+ fromDir: fileDir,
37
+ start,
38
+ end,
39
+ isDynamic,
40
+ isSideEffect,
41
+ });
33
42
  return [
34
43
  ...collectBoundedSpans((maxMatches) => findStaticImportFromSpans(fileContent, matchRelative, maxMatches), "static relative").map(toRelative(false)),
44
+ ...collectBoundedSpans((maxMatches) => findStaticSideEffectImportSpans(fileContent, matchRelative, maxMatches), "side-effect relative").map(toRelative(false, true)),
35
45
  ...collectBoundedSpans((maxMatches) => findDynamicImportSpans(fileContent, matchRelative, maxMatches), "dynamic relative").map(toRelative(true)),
36
46
  ]
37
47
  // Ignore already-transformed file:// imports.
@@ -85,6 +95,7 @@ async function resolveRelativeImport(imp, adapter) {
85
95
  depFilePath,
86
96
  isLocalLib: false,
87
97
  isDynamic: imp.isDynamic,
98
+ isSideEffect: imp.isSideEffect,
88
99
  };
89
100
  }
90
101
  /** Resolves @/ alias and relative local imports from a source module. */
@@ -111,9 +122,13 @@ export function rewriteResolvedDependencyImports(fileContent, transformedDeps) {
111
122
  start: dep.start,
112
123
  end: dep.end,
113
124
  expected: dep.full,
114
- // A dynamic span covers only the quoted specifier; a static one covers the
115
- // whole `from "…"` clause.
116
- replacement: dep.isDynamic ? `"${moduleUrl}"` : `from "${moduleUrl}"`,
125
+ // A dynamic span covers only the quoted specifier, a side-effect span
126
+ // covers the bare import, and a static binding span covers `from "…"`.
127
+ replacement: dep.isSideEffect
128
+ ? `import "${moduleUrl}"`
129
+ : dep.isDynamic
130
+ ? `"${moduleUrl}"`
131
+ : `from "${moduleUrl}"`,
117
132
  };
118
133
  });
119
134
  return replaceSourceSpans(fileContent, replacements);