@vibesdotdev/runnable 0.0.0-stage → 1.0.0-rc.1

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 (675) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +4 -2
  3. package/dist/artifact-data.d.ts +8 -0
  4. package/dist/artifact-data.d.ts.map +1 -0
  5. package/dist/artifact-data.js +12 -0
  6. package/dist/artifact-data.js.map +1 -0
  7. package/dist/change-source.d.ts +54 -0
  8. package/dist/change-source.d.ts.map +1 -0
  9. package/dist/change-source.js +37 -0
  10. package/dist/change-source.js.map +1 -0
  11. package/dist/client/client.d.ts +1002 -0
  12. package/dist/client/client.d.ts.map +1 -0
  13. package/dist/client/client.js +148 -0
  14. package/dist/client/client.js.map +1 -0
  15. package/dist/client/execution/failure.d.ts +3 -0
  16. package/dist/client/execution/failure.d.ts.map +1 -0
  17. package/dist/client/execution/failure.js +20 -0
  18. package/dist/client/execution/failure.js.map +1 -0
  19. package/dist/client/execution/finalize.d.ts +81 -0
  20. package/dist/client/execution/finalize.d.ts.map +1 -0
  21. package/dist/client/execution/finalize.js +71 -0
  22. package/dist/client/execution/finalize.js.map +1 -0
  23. package/dist/client/execution/memo.d.ts +25 -0
  24. package/dist/client/execution/memo.d.ts.map +1 -0
  25. package/dist/client/execution/memo.js +56 -0
  26. package/dist/client/execution/memo.js.map +1 -0
  27. package/dist/client/execution/native-admission.d.ts +7 -0
  28. package/dist/client/execution/native-admission.d.ts.map +1 -0
  29. package/dist/client/execution/native-admission.js +22 -0
  30. package/dist/client/execution/native-admission.js.map +1 -0
  31. package/dist/client/execution/prepare-input.d.ts +19 -0
  32. package/dist/client/execution/prepare-input.d.ts.map +1 -0
  33. package/dist/client/execution/prepare-input.js +27 -0
  34. package/dist/client/execution/prepare-input.js.map +1 -0
  35. package/dist/client/execution/prepare-record.d.ts +271 -0
  36. package/dist/client/execution/prepare-record.d.ts.map +1 -0
  37. package/dist/client/execution/prepare-record.js +115 -0
  38. package/dist/client/execution/prepare-record.js.map +1 -0
  39. package/dist/client/execution/produce.d.ts +44 -0
  40. package/dist/client/execution/produce.d.ts.map +1 -0
  41. package/dist/client/execution/produce.js +78 -0
  42. package/dist/client/execution/produce.js.map +1 -0
  43. package/dist/client/execution/recorded.d.ts +28 -0
  44. package/dist/client/execution/recorded.d.ts.map +1 -0
  45. package/dist/client/execution/recorded.js +74 -0
  46. package/dist/client/execution/recorded.js.map +1 -0
  47. package/dist/client/execution/selection.d.ts +19 -0
  48. package/dist/client/execution/selection.d.ts.map +1 -0
  49. package/dist/client/execution/selection.js +38 -0
  50. package/dist/client/execution/selection.js.map +1 -0
  51. package/dist/client/native/completion.d.ts +19 -0
  52. package/dist/client/native/completion.d.ts.map +1 -0
  53. package/dist/client/native/completion.js +158 -0
  54. package/dist/client/native/completion.js.map +1 -0
  55. package/dist/client/native/controls.d.ts +18 -0
  56. package/dist/client/native/controls.d.ts.map +1 -0
  57. package/dist/client/native/controls.js +69 -0
  58. package/dist/client/native/controls.js.map +1 -0
  59. package/dist/client/native/owner.d.ts +36 -0
  60. package/dist/client/native/owner.d.ts.map +1 -0
  61. package/dist/client/native/owner.js +111 -0
  62. package/dist/client/native/owner.js.map +1 -0
  63. package/dist/client/native/supervision.d.ts +12 -0
  64. package/dist/client/native/supervision.d.ts.map +1 -0
  65. package/dist/client/native/supervision.js +56 -0
  66. package/dist/client/native/supervision.js.map +1 -0
  67. package/dist/client/records/authority.d.ts +20 -0
  68. package/dist/client/records/authority.d.ts.map +1 -0
  69. package/dist/client/records/authority.js +186 -0
  70. package/dist/client/records/authority.js.map +1 -0
  71. package/dist/client/records/identity.d.ts +4 -0
  72. package/dist/client/records/identity.d.ts.map +1 -0
  73. package/dist/client/records/identity.js +7 -0
  74. package/dist/client/records/identity.js.map +1 -0
  75. package/dist/client/records/input-admission.d.ts +5 -0
  76. package/dist/client/records/input-admission.d.ts.map +1 -0
  77. package/dist/client/records/input-admission.js +26 -0
  78. package/dist/client/records/input-admission.js.map +1 -0
  79. package/dist/client/records/owner.d.ts +254 -0
  80. package/dist/client/records/owner.d.ts.map +1 -0
  81. package/dist/client/records/owner.js +127 -0
  82. package/dist/client/records/owner.js.map +1 -0
  83. package/dist/client/records/query.d.ts +11 -0
  84. package/dist/client/records/query.d.ts.map +1 -0
  85. package/dist/client/records/query.js +60 -0
  86. package/dist/client/records/query.js.map +1 -0
  87. package/dist/client/records/recording.d.ts +9 -0
  88. package/dist/client/records/recording.d.ts.map +1 -0
  89. package/dist/client/records/recording.js +160 -0
  90. package/dist/client/records/recording.js.map +1 -0
  91. package/dist/client/resolve.d.ts +10 -0
  92. package/dist/client/resolve.d.ts.map +1 -0
  93. package/dist/client/resolve.js +33 -0
  94. package/dist/client/resolve.js.map +1 -0
  95. package/dist/client/tracking/artifact-data.d.ts +8 -0
  96. package/dist/client/tracking/artifact-data.d.ts.map +1 -0
  97. package/dist/client/tracking/artifact-data.js +12 -0
  98. package/dist/client/tracking/artifact-data.js.map +1 -0
  99. package/dist/client/tracking/client.d.ts +20 -0
  100. package/dist/client/tracking/client.d.ts.map +1 -0
  101. package/dist/client/tracking/client.js +187 -0
  102. package/dist/client/tracking/client.js.map +1 -0
  103. package/dist/client/tracking/panel-bindings.d.ts +8 -0
  104. package/dist/client/tracking/panel-bindings.d.ts.map +1 -0
  105. package/dist/client/tracking/panel-bindings.js +81 -0
  106. package/dist/client/tracking/panel-bindings.js.map +1 -0
  107. package/dist/client/tracking/panels.d.ts +62 -0
  108. package/dist/client/tracking/panels.d.ts.map +1 -0
  109. package/dist/client/tracking/panels.js +56 -0
  110. package/dist/client/tracking/panels.js.map +1 -0
  111. package/dist/client/tracking/projection.d.ts +17 -0
  112. package/dist/client/tracking/projection.d.ts.map +1 -0
  113. package/dist/client/tracking/projection.js +100 -0
  114. package/dist/client/tracking/projection.js.map +1 -0
  115. package/dist/client/tracking/watch.d.ts +10 -0
  116. package/dist/client/tracking/watch.d.ts.map +1 -0
  117. package/dist/client/tracking/watch.js +128 -0
  118. package/dist/client/tracking/watch.js.map +1 -0
  119. package/dist/client/transport.d.ts +14 -0
  120. package/dist/client/transport.d.ts.map +1 -0
  121. package/dist/client/transport.js +52 -0
  122. package/dist/client/transport.js.map +1 -0
  123. package/dist/client.d.ts +460 -0
  124. package/dist/client.d.ts.map +1 -0
  125. package/dist/client.js +1181 -0
  126. package/dist/client.js.map +1 -0
  127. package/dist/context.d.ts +14 -0
  128. package/dist/context.d.ts.map +1 -0
  129. package/dist/context.js +98 -0
  130. package/dist/context.js.map +1 -0
  131. package/dist/docs/runnable.context.docs.descriptor.d.ts +4 -0
  132. package/dist/docs/runnable.context.docs.descriptor.d.ts.map +1 -0
  133. package/dist/docs/runnable.context.docs.descriptor.js +419 -0
  134. package/dist/docs/runnable.context.docs.descriptor.js.map +1 -0
  135. package/dist/docs/runnable.graphs.docs.descriptor.d.ts +4 -0
  136. package/dist/docs/runnable.graphs.docs.descriptor.d.ts.map +1 -0
  137. package/dist/docs/runnable.graphs.docs.descriptor.js +51 -0
  138. package/dist/docs/runnable.graphs.docs.descriptor.js.map +1 -0
  139. package/dist/docs/runnable.nodes.docs.descriptor.d.ts +4 -0
  140. package/dist/docs/runnable.nodes.docs.descriptor.d.ts.map +1 -0
  141. package/dist/docs/runnable.nodes.docs.descriptor.js +327 -0
  142. package/dist/docs/runnable.nodes.docs.descriptor.js.map +1 -0
  143. package/dist/event-broker.d.ts +54 -0
  144. package/dist/event-broker.d.ts.map +1 -0
  145. package/dist/event-broker.js +157 -0
  146. package/dist/event-broker.js.map +1 -0
  147. package/dist/events.d.ts +16 -0
  148. package/dist/events.d.ts.map +1 -0
  149. package/dist/events.js +144 -0
  150. package/dist/events.js.map +1 -0
  151. package/dist/execution.contract.d.ts +10 -0
  152. package/dist/execution.contract.d.ts.map +1 -0
  153. package/dist/execution.contract.js +30 -0
  154. package/dist/execution.contract.js.map +1 -0
  155. package/dist/execution.d.ts +24 -0
  156. package/dist/execution.d.ts.map +1 -0
  157. package/dist/execution.js +172 -0
  158. package/dist/execution.js.map +1 -0
  159. package/dist/execution.telemetry.descriptor.d.ts +4 -0
  160. package/dist/execution.telemetry.descriptor.d.ts.map +1 -0
  161. package/dist/execution.telemetry.descriptor.js +6 -0
  162. package/dist/execution.telemetry.descriptor.js.map +1 -0
  163. package/dist/host.d.ts +95 -0
  164. package/dist/host.d.ts.map +1 -0
  165. package/dist/host.js +12 -0
  166. package/dist/host.js.map +1 -0
  167. package/dist/identity.d.ts +3 -0
  168. package/dist/identity.d.ts.map +1 -0
  169. package/dist/identity.js +6 -0
  170. package/dist/identity.js.map +1 -0
  171. package/dist/index.d.ts +32 -0
  172. package/dist/index.d.ts.map +1 -0
  173. package/dist/index.js +24 -0
  174. package/dist/index.js.map +1 -0
  175. package/dist/input-admission.d.ts +5 -0
  176. package/dist/input-admission.d.ts.map +1 -0
  177. package/dist/input-admission.js +43 -0
  178. package/dist/input-admission.js.map +1 -0
  179. package/dist/invocation.d.ts +17 -0
  180. package/dist/invocation.d.ts.map +1 -0
  181. package/dist/invocation.js +32 -0
  182. package/dist/invocation.js.map +1 -0
  183. package/dist/issues.d.ts +4 -0
  184. package/dist/issues.d.ts.map +1 -0
  185. package/dist/issues.js +5 -0
  186. package/dist/issues.js.map +1 -0
  187. package/dist/json-field.d.ts +4 -0
  188. package/dist/json-field.d.ts.map +1 -0
  189. package/dist/json-field.js +16 -0
  190. package/dist/json-field.js.map +1 -0
  191. package/dist/kinds/config.d.ts +3 -0
  192. package/dist/kinds/config.d.ts.map +1 -0
  193. package/dist/kinds/config.js +14 -0
  194. package/dist/kinds/config.js.map +1 -0
  195. package/dist/kinds/ingest-mapping.d.ts +3 -0
  196. package/dist/kinds/ingest-mapping.d.ts.map +1 -0
  197. package/dist/kinds/ingest-mapping.js +30 -0
  198. package/dist/kinds/ingest-mapping.js.map +1 -0
  199. package/dist/kinds/result.d.ts +3 -0
  200. package/dist/kinds/result.d.ts.map +1 -0
  201. package/dist/kinds/result.js +14 -0
  202. package/dist/kinds/result.js.map +1 -0
  203. package/dist/kinds/runnable.d.ts +3 -0
  204. package/dist/kinds/runnable.d.ts.map +1 -0
  205. package/dist/kinds/runnable.js +19 -0
  206. package/dist/kinds/runnable.js.map +1 -0
  207. package/dist/kinds/telemetry.d.ts +3 -0
  208. package/dist/kinds/telemetry.d.ts.map +1 -0
  209. package/dist/kinds/telemetry.js +14 -0
  210. package/dist/kinds/telemetry.js.map +1 -0
  211. package/dist/kinds/type.d.ts +3 -0
  212. package/dist/kinds/type.d.ts.map +1 -0
  213. package/dist/kinds/type.js +14 -0
  214. package/dist/kinds/type.js.map +1 -0
  215. package/dist/kinds/visualization.d.ts +3 -0
  216. package/dist/kinds/visualization.d.ts.map +1 -0
  217. package/dist/kinds/visualization.js +14 -0
  218. package/dist/kinds/visualization.js.map +1 -0
  219. package/dist/metrics/runnable.metrics.descriptor.d.ts +16 -0
  220. package/dist/metrics/runnable.metrics.descriptor.d.ts.map +1 -0
  221. package/dist/metrics/runnable.metrics.descriptor.js +16 -0
  222. package/dist/metrics/runnable.metrics.descriptor.js.map +1 -0
  223. package/dist/metrics/runnable.metrics.impl.d.ts +13 -0
  224. package/dist/metrics/runnable.metrics.impl.d.ts.map +1 -0
  225. package/dist/metrics/runnable.metrics.impl.js +60 -0
  226. package/dist/metrics/runnable.metrics.impl.js.map +1 -0
  227. package/dist/panels.d.ts +31 -0
  228. package/dist/panels.d.ts.map +1 -0
  229. package/dist/panels.js +58 -0
  230. package/dist/panels.js.map +1 -0
  231. package/dist/plugin.d.ts +3 -0
  232. package/dist/plugin.d.ts.map +1 -0
  233. package/dist/plugin.js +71 -0
  234. package/dist/plugin.js.map +1 -0
  235. package/dist/projection.d.ts +26 -0
  236. package/dist/projection.d.ts.map +1 -0
  237. package/dist/projection.js +100 -0
  238. package/dist/projection.js.map +1 -0
  239. package/dist/recording.d.ts +9 -0
  240. package/dist/recording.d.ts.map +1 -0
  241. package/dist/recording.js +121 -0
  242. package/dist/recording.js.map +1 -0
  243. package/dist/records/authority.d.ts +20 -0
  244. package/dist/records/authority.d.ts.map +1 -0
  245. package/dist/records/authority.js +142 -0
  246. package/dist/records/authority.js.map +1 -0
  247. package/dist/records/query.d.ts +11 -0
  248. package/dist/records/query.d.ts.map +1 -0
  249. package/dist/records/query.js +60 -0
  250. package/dist/records/query.js.map +1 -0
  251. package/dist/runnable.cloud.plugin.d.ts +3 -0
  252. package/dist/runnable.cloud.plugin.d.ts.map +1 -0
  253. package/dist/runnable.cloud.plugin.js +3 -0
  254. package/dist/runnable.cloud.plugin.js.map +1 -0
  255. package/dist/runnable.consumer.plugin.d.ts +15 -0
  256. package/dist/runnable.consumer.plugin.d.ts.map +1 -0
  257. package/dist/runnable.consumer.plugin.js +15 -0
  258. package/dist/runnable.consumer.plugin.js.map +1 -0
  259. package/dist/runnable.plugin.d.ts +3 -0
  260. package/dist/runnable.plugin.d.ts.map +1 -0
  261. package/dist/runnable.plugin.js +3 -0
  262. package/dist/runnable.plugin.js.map +1 -0
  263. package/dist/runner.d.ts +13 -0
  264. package/dist/runner.d.ts.map +1 -0
  265. package/dist/runner.js +151 -0
  266. package/dist/runner.js.map +1 -0
  267. package/dist/runtime/change-source.d.ts +39 -0
  268. package/dist/runtime/change-source.d.ts.map +1 -0
  269. package/dist/runtime/change-source.js +36 -0
  270. package/dist/runtime/change-source.js.map +1 -0
  271. package/dist/runtime/event-broker.d.ts +41 -0
  272. package/dist/runtime/event-broker.d.ts.map +1 -0
  273. package/dist/runtime/event-broker.js +157 -0
  274. package/dist/runtime/event-broker.js.map +1 -0
  275. package/dist/runtime/events.d.ts +16 -0
  276. package/dist/runtime/events.d.ts.map +1 -0
  277. package/dist/runtime/events.js +144 -0
  278. package/dist/runtime/events.js.map +1 -0
  279. package/dist/runtime/execution/contract.d.ts +10 -0
  280. package/dist/runtime/execution/contract.d.ts.map +1 -0
  281. package/dist/runtime/execution/contract.js +30 -0
  282. package/dist/runtime/execution/contract.js.map +1 -0
  283. package/dist/runtime/execution/exit.d.ts +5 -0
  284. package/dist/runtime/execution/exit.d.ts.map +1 -0
  285. package/dist/runtime/execution/exit.js +39 -0
  286. package/dist/runtime/execution/exit.js.map +1 -0
  287. package/dist/runtime/execution/index.d.ts +23 -0
  288. package/dist/runtime/execution/index.d.ts.map +1 -0
  289. package/dist/runtime/execution/index.js +136 -0
  290. package/dist/runtime/execution/index.js.map +1 -0
  291. package/dist/runtime/host.d.ts +60 -0
  292. package/dist/runtime/host.d.ts.map +1 -0
  293. package/dist/runtime/host.js +13 -0
  294. package/dist/runtime/host.js.map +1 -0
  295. package/dist/runtime/invocation.d.ts +10 -0
  296. package/dist/runtime/invocation.d.ts.map +1 -0
  297. package/dist/runtime/invocation.js +27 -0
  298. package/dist/runtime/invocation.js.map +1 -0
  299. package/dist/runtime/plugins/plugin.d.ts +3 -0
  300. package/dist/runtime/plugins/plugin.d.ts.map +1 -0
  301. package/dist/runtime/plugins/plugin.js +69 -0
  302. package/dist/runtime/plugins/plugin.js.map +1 -0
  303. package/dist/runtime/plugins/runnable.cloud.plugin.d.ts +3 -0
  304. package/dist/runtime/plugins/runnable.cloud.plugin.d.ts.map +1 -0
  305. package/dist/runtime/plugins/runnable.cloud.plugin.js +3 -0
  306. package/dist/runtime/plugins/runnable.cloud.plugin.js.map +1 -0
  307. package/dist/runtime/plugins/runnable.consumer.plugin.d.ts +15 -0
  308. package/dist/runtime/plugins/runnable.consumer.plugin.d.ts.map +1 -0
  309. package/dist/runtime/plugins/runnable.consumer.plugin.js +15 -0
  310. package/dist/runtime/plugins/runnable.consumer.plugin.js.map +1 -0
  311. package/dist/runtime/plugins/runnable.metrics.plugin.d.ts +4 -0
  312. package/dist/runtime/plugins/runnable.metrics.plugin.d.ts.map +1 -0
  313. package/dist/runtime/plugins/runnable.metrics.plugin.js +13 -0
  314. package/dist/runtime/plugins/runnable.metrics.plugin.js.map +1 -0
  315. package/dist/runtime/plugins/runnable.plugin.d.ts +3 -0
  316. package/dist/runtime/plugins/runnable.plugin.d.ts.map +1 -0
  317. package/dist/runtime/plugins/runnable.plugin.js +3 -0
  318. package/dist/runtime/plugins/runnable.plugin.js.map +1 -0
  319. package/dist/runtime/runner.d.ts +13 -0
  320. package/dist/runtime/runner.d.ts.map +1 -0
  321. package/dist/runtime/runner.js +154 -0
  322. package/dist/runtime/runner.js.map +1 -0
  323. package/dist/runtime/state/index.d.ts +4 -0
  324. package/dist/runtime/state/index.d.ts.map +1 -0
  325. package/dist/runtime/state/index.js +4 -0
  326. package/dist/runtime/state/index.js.map +1 -0
  327. package/dist/runtime/state/manager.d.ts +20 -0
  328. package/dist/runtime/state/manager.d.ts.map +1 -0
  329. package/dist/runtime/state/manager.js +135 -0
  330. package/dist/runtime/state/manager.js.map +1 -0
  331. package/dist/runtime/state/snapshot.d.ts +10 -0
  332. package/dist/runtime/state/snapshot.d.ts.map +1 -0
  333. package/dist/runtime/state/snapshot.js +59 -0
  334. package/dist/runtime/state/snapshot.js.map +1 -0
  335. package/dist/runtime/state/time-series.d.ts +36 -0
  336. package/dist/runtime/state/time-series.d.ts.map +1 -0
  337. package/dist/runtime/state/time-series.js +151 -0
  338. package/dist/runtime/state/time-series.js.map +1 -0
  339. package/dist/schemas/context.d.ts +64 -0
  340. package/dist/schemas/context.d.ts.map +1 -0
  341. package/dist/schemas/context.js +37 -0
  342. package/dist/schemas/context.js.map +1 -0
  343. package/dist/schemas/contracts/events.d.ts +33 -0
  344. package/dist/schemas/contracts/events.d.ts.map +1 -0
  345. package/dist/schemas/contracts/events.js +5 -0
  346. package/dist/schemas/contracts/events.js.map +1 -0
  347. package/dist/schemas/contracts/execution.d.ts +211 -0
  348. package/dist/schemas/contracts/execution.d.ts.map +1 -0
  349. package/dist/schemas/contracts/execution.js +40 -0
  350. package/dist/schemas/contracts/execution.js.map +1 -0
  351. package/dist/schemas/contracts/host.d.ts +37 -0
  352. package/dist/schemas/contracts/host.d.ts.map +1 -0
  353. package/dist/schemas/contracts/host.js +2 -0
  354. package/dist/schemas/contracts/host.js.map +1 -0
  355. package/dist/schemas/contracts/index.d.ts +77 -0
  356. package/dist/schemas/contracts/index.d.ts.map +1 -0
  357. package/dist/schemas/contracts/index.js +28 -0
  358. package/dist/schemas/contracts/index.js.map +1 -0
  359. package/dist/schemas/contracts/invocation.d.ts +9 -0
  360. package/dist/schemas/contracts/invocation.d.ts.map +1 -0
  361. package/dist/schemas/contracts/invocation.js +8 -0
  362. package/dist/schemas/contracts/invocation.js.map +1 -0
  363. package/dist/schemas/contracts/runner.d.ts +61 -0
  364. package/dist/schemas/contracts/runner.d.ts.map +1 -0
  365. package/dist/schemas/contracts/runner.js +3 -0
  366. package/dist/schemas/contracts/runner.js.map +1 -0
  367. package/dist/schemas/contracts/state.d.ts +147 -0
  368. package/dist/schemas/contracts/state.d.ts.map +1 -0
  369. package/dist/schemas/contracts/state.js +16 -0
  370. package/dist/schemas/contracts/state.js.map +1 -0
  371. package/dist/schemas/contracts/storage.d.ts +231 -0
  372. package/dist/schemas/contracts/storage.d.ts.map +1 -0
  373. package/dist/schemas/contracts/storage.js +39 -0
  374. package/dist/schemas/contracts/storage.js.map +1 -0
  375. package/dist/schemas/contracts/test-scenario.d.ts +60 -0
  376. package/dist/schemas/contracts/test-scenario.d.ts.map +1 -0
  377. package/dist/schemas/contracts/test-scenario.js +2 -0
  378. package/dist/schemas/contracts/test-scenario.js.map +1 -0
  379. package/dist/schemas/contracts/watch.d.ts +49 -0
  380. package/dist/schemas/contracts/watch.d.ts.map +1 -0
  381. package/dist/schemas/contracts/watch.js +2 -0
  382. package/dist/schemas/contracts/watch.js.map +1 -0
  383. package/dist/schemas/contracts.d.ts +192 -0
  384. package/dist/schemas/contracts.d.ts.map +1 -0
  385. package/dist/schemas/contracts.js +38 -0
  386. package/dist/schemas/contracts.js.map +1 -0
  387. package/dist/schemas/description.d.ts +68 -0
  388. package/dist/schemas/description.d.ts.map +1 -0
  389. package/dist/schemas/description.js +12 -0
  390. package/dist/schemas/description.js.map +1 -0
  391. package/dist/schemas/descriptors.d.ts +429 -0
  392. package/dist/schemas/descriptors.d.ts.map +1 -0
  393. package/dist/schemas/descriptors.js +125 -0
  394. package/dist/schemas/descriptors.js.map +1 -0
  395. package/dist/schemas/events.d.ts +359 -0
  396. package/dist/schemas/events.d.ts.map +1 -0
  397. package/dist/schemas/events.js +109 -0
  398. package/dist/schemas/events.js.map +1 -0
  399. package/dist/schemas/index.d.ts +12 -0
  400. package/dist/schemas/index.d.ts.map +1 -0
  401. package/dist/schemas/index.js +12 -0
  402. package/dist/schemas/index.js.map +1 -0
  403. package/dist/schemas/issues.d.ts +142 -0
  404. package/dist/schemas/issues.d.ts.map +1 -0
  405. package/dist/schemas/issues.js +44 -0
  406. package/dist/schemas/issues.js.map +1 -0
  407. package/dist/schemas/outcome.d.ts +111 -0
  408. package/dist/schemas/outcome.d.ts.map +1 -0
  409. package/dist/schemas/outcome.js +32 -0
  410. package/dist/schemas/outcome.js.map +1 -0
  411. package/dist/schemas/panels.d.ts +164 -0
  412. package/dist/schemas/panels.d.ts.map +1 -0
  413. package/dist/schemas/panels.js +25 -0
  414. package/dist/schemas/panels.js.map +1 -0
  415. package/dist/schemas/projection.d.ts +301 -0
  416. package/dist/schemas/projection.d.ts.map +1 -0
  417. package/dist/schemas/projection.js +64 -0
  418. package/dist/schemas/projection.js.map +1 -0
  419. package/dist/schemas/runs.d.ts +2428 -0
  420. package/dist/schemas/runs.d.ts.map +1 -0
  421. package/dist/schemas/runs.js +163 -0
  422. package/dist/schemas/runs.js.map +1 -0
  423. package/dist/schemas/writes.d.ts +103 -0
  424. package/dist/schemas/writes.d.ts.map +1 -0
  425. package/dist/schemas/writes.js +28 -0
  426. package/dist/schemas/writes.js.map +1 -0
  427. package/dist/state.d.ts +175 -0
  428. package/dist/state.d.ts.map +1 -0
  429. package/dist/state.js +356 -0
  430. package/dist/state.js.map +1 -0
  431. package/dist/storage/context-sql.d.ts +9 -0
  432. package/dist/storage/context-sql.d.ts.map +1 -0
  433. package/dist/storage/context-sql.js +77 -0
  434. package/dist/storage/context-sql.js.map +1 -0
  435. package/dist/storage/local/catalog.d.ts +62 -0
  436. package/dist/storage/local/catalog.d.ts.map +1 -0
  437. package/dist/storage/local/catalog.js +88 -0
  438. package/dist/storage/local/catalog.js.map +1 -0
  439. package/dist/storage/local/descriptors.d.ts +8 -0
  440. package/dist/storage/local/descriptors.d.ts.map +1 -0
  441. package/dist/storage/local/descriptors.js +32 -0
  442. package/dist/storage/local/descriptors.js.map +1 -0
  443. package/dist/storage/local/host.d.ts +5 -0
  444. package/dist/storage/local/host.d.ts.map +1 -0
  445. package/dist/storage/local/host.js +100 -0
  446. package/dist/storage/local/host.js.map +1 -0
  447. package/dist/storage/local/index.d.ts +4 -0
  448. package/dist/storage/local/index.d.ts.map +1 -0
  449. package/dist/storage/local/index.js +22 -0
  450. package/dist/storage/local/index.js.map +1 -0
  451. package/dist/storage/local/refusal.d.ts +2 -0
  452. package/dist/storage/local/refusal.d.ts.map +1 -0
  453. package/dist/storage/local/refusal.js +7 -0
  454. package/dist/storage/local/refusal.js.map +1 -0
  455. package/dist/storage/local/state-host.d.ts +5 -0
  456. package/dist/storage/local/state-host.d.ts.map +1 -0
  457. package/dist/storage/local/state-host.js +149 -0
  458. package/dist/storage/local/state-host.js.map +1 -0
  459. package/dist/storage/local/telemetry.d.ts +19 -0
  460. package/dist/storage/local/telemetry.d.ts.map +1 -0
  461. package/dist/storage/local/telemetry.js +52 -0
  462. package/dist/storage/local/telemetry.js.map +1 -0
  463. package/dist/storage/local.d.ts +3 -0
  464. package/dist/storage/local.d.ts.map +1 -0
  465. package/dist/storage/local.js +408 -0
  466. package/dist/storage/local.js.map +1 -0
  467. package/dist/storage/plugin.d.ts +7 -0
  468. package/dist/storage/plugin.d.ts.map +1 -0
  469. package/dist/storage/plugin.js +116 -0
  470. package/dist/storage/plugin.js.map +1 -0
  471. package/dist/storage/records.d.ts +8 -0
  472. package/dist/storage/records.d.ts.map +1 -0
  473. package/dist/storage/records.js +68 -0
  474. package/dist/storage/records.js.map +1 -0
  475. package/dist/svelte/components/ArtifactList.svelte +198 -0
  476. package/dist/svelte/components/ArtifactList.svelte.d.ts +10 -0
  477. package/dist/svelte/components/ArtifactList.svelte.d.ts.map +1 -0
  478. package/dist/svelte/components/ArtifactPreview.svelte +19 -0
  479. package/dist/svelte/components/ArtifactPreview.svelte.d.ts +8 -0
  480. package/dist/svelte/components/ArtifactPreview.svelte.d.ts.map +1 -0
  481. package/dist/svelte/components/FleetRuns.svelte +50 -0
  482. package/dist/svelte/components/FleetRuns.svelte.d.ts +8 -0
  483. package/dist/svelte/components/FleetRuns.svelte.d.ts.map +1 -0
  484. package/dist/svelte/components/LogViewer.svelte +98 -0
  485. package/dist/svelte/components/LogViewer.svelte.d.ts +13 -0
  486. package/dist/svelte/components/LogViewer.svelte.d.ts.map +1 -0
  487. package/dist/svelte/components/MetricCard.svelte +176 -0
  488. package/dist/svelte/components/MetricCard.svelte.d.ts +5 -0
  489. package/dist/svelte/components/MetricCard.svelte.d.ts.map +1 -0
  490. package/dist/svelte/components/RunActivity.svelte +32 -0
  491. package/dist/svelte/components/RunActivity.svelte.d.ts +13 -0
  492. package/dist/svelte/components/RunActivity.svelte.d.ts.map +1 -0
  493. package/dist/svelte/components/RunBrowser.svelte +86 -0
  494. package/dist/svelte/components/RunBrowser.svelte.d.ts +13 -0
  495. package/dist/svelte/components/RunBrowser.svelte.d.ts.map +1 -0
  496. package/dist/svelte/components/RunComparison.svelte +76 -0
  497. package/dist/svelte/components/RunComparison.svelte.d.ts +12 -0
  498. package/dist/svelte/components/RunComparison.svelte.d.ts.map +1 -0
  499. package/dist/svelte/components/RunContext.svelte +29 -0
  500. package/dist/svelte/components/RunContext.svelte.d.ts +10 -0
  501. package/dist/svelte/components/RunContext.svelte.d.ts.map +1 -0
  502. package/dist/svelte/components/RunEvidence.svelte +30 -0
  503. package/dist/svelte/components/RunEvidence.svelte.d.ts +8 -0
  504. package/dist/svelte/components/RunEvidence.svelte.d.ts.map +1 -0
  505. package/dist/svelte/components/RunIssues.svelte +114 -0
  506. package/dist/svelte/components/RunIssues.svelte.d.ts +12 -0
  507. package/dist/svelte/components/RunIssues.svelte.d.ts.map +1 -0
  508. package/dist/svelte/components/RunObservation.svelte +32 -0
  509. package/dist/svelte/components/RunObservation.svelte.d.ts +12 -0
  510. package/dist/svelte/components/RunObservation.svelte.d.ts.map +1 -0
  511. package/dist/svelte/components/RunOutcomeBadge.svelte +11 -0
  512. package/dist/svelte/components/RunOutcomeBadge.svelte.d.ts +8 -0
  513. package/dist/svelte/components/RunOutcomeBadge.svelte.d.ts.map +1 -0
  514. package/dist/svelte/components/RunPanels.svelte +64 -0
  515. package/dist/svelte/components/RunPanels.svelte.d.ts +15 -0
  516. package/dist/svelte/components/RunPanels.svelte.d.ts.map +1 -0
  517. package/dist/svelte/components/RunStatusBadge.svelte +38 -0
  518. package/dist/svelte/components/RunStatusBadge.svelte.d.ts +9 -0
  519. package/dist/svelte/components/RunStatusBadge.svelte.d.ts.map +1 -0
  520. package/dist/svelte/components/RunSummary.svelte +42 -0
  521. package/dist/svelte/components/RunSummary.svelte.d.ts +11 -0
  522. package/dist/svelte/components/RunSummary.svelte.d.ts.map +1 -0
  523. package/dist/svelte/components/RunsView.svelte +162 -0
  524. package/dist/svelte/components/RunsView.svelte.d.ts +17 -0
  525. package/dist/svelte/components/RunsView.svelte.d.ts.map +1 -0
  526. package/dist/svelte/components/TypePicker.svelte +337 -0
  527. package/dist/svelte/components/TypePicker.svelte.d.ts +12 -0
  528. package/dist/svelte/components/TypePicker.svelte.d.ts.map +1 -0
  529. package/dist/svelte/components/records/RunDetail.svelte +214 -0
  530. package/dist/svelte/components/records/RunDetail.svelte.d.ts +20 -0
  531. package/dist/svelte/components/records/RunDetail.svelte.d.ts.map +1 -0
  532. package/dist/svelte/components/records/RunList.svelte +190 -0
  533. package/dist/svelte/components/records/RunList.svelte.d.ts +14 -0
  534. package/dist/svelte/components/records/RunList.svelte.d.ts.map +1 -0
  535. package/dist/svelte/components/records/RunTree.svelte +186 -0
  536. package/dist/svelte/components/records/RunTree.svelte.d.ts +5 -0
  537. package/dist/svelte/components/records/RunTree.svelte.d.ts.map +1 -0
  538. package/dist/svelte/components/records/tree-navigation.d.ts +3 -0
  539. package/dist/svelte/components/records/tree-navigation.d.ts.map +1 -0
  540. package/dist/svelte/components/records/tree-navigation.js +29 -0
  541. package/dist/svelte/components/records/tree-projection.d.ts +16 -0
  542. package/dist/svelte/components/records/tree-projection.d.ts.map +1 -0
  543. package/dist/svelte/components/records/tree-projection.js +134 -0
  544. package/dist/svelte/index.d.ts +27 -0
  545. package/dist/svelte/index.d.ts.map +1 -0
  546. package/dist/svelte/index.js +22 -0
  547. package/dist/svelte/lib/artifact-blob.d.ts +2 -0
  548. package/dist/svelte/lib/artifact-blob.d.ts.map +1 -0
  549. package/dist/svelte/lib/artifact-blob.js +1 -0
  550. package/dist/svelte/lib/run-investigation.d.ts +17 -0
  551. package/dist/svelte/lib/run-investigation.d.ts.map +1 -0
  552. package/dist/svelte/lib/run-investigation.js +44 -0
  553. package/dist/svelte/lib/run-issues.d.ts +34 -0
  554. package/dist/svelte/lib/run-issues.d.ts.map +1 -0
  555. package/dist/svelte/lib/run-issues.js +59 -0
  556. package/dist/svelte/lib/run-presentation.d.ts +16 -0
  557. package/dist/svelte/lib/run-presentation.d.ts.map +1 -0
  558. package/dist/svelte/lib/run-presentation.js +69 -0
  559. package/dist/svelte/lib/run-tree.d.ts +22 -0
  560. package/dist/svelte/lib/run-tree.d.ts.map +1 -0
  561. package/dist/svelte/lib/run-tree.js +93 -0
  562. package/dist/svelte/lib/status.d.ts +19 -0
  563. package/dist/svelte/lib/status.d.ts.map +1 -0
  564. package/dist/svelte/lib/status.js +122 -0
  565. package/dist/svelte/query-form.d.ts +50 -0
  566. package/dist/svelte/query-form.d.ts.map +1 -0
  567. package/dist/svelte/query-form.js +19 -0
  568. package/dist/svelte/runs/data.svelte.d.ts +678 -0
  569. package/dist/svelte/runs/data.svelte.d.ts.map +1 -0
  570. package/dist/svelte/runs/data.svelte.js +28 -0
  571. package/dist/svelte/runs/opening.d.ts +8 -0
  572. package/dist/svelte/runs/opening.d.ts.map +1 -0
  573. package/dist/svelte/runs/opening.js +110 -0
  574. package/dist/svelte/runs/query.d.ts +3 -0
  575. package/dist/svelte/runs/query.d.ts.map +1 -0
  576. package/dist/svelte/runs/query.js +16 -0
  577. package/dist/svelte/runs/selection.d.ts +3 -0
  578. package/dist/svelte/runs/selection.d.ts.map +1 -0
  579. package/dist/svelte/runs/selection.js +42 -0
  580. package/dist/svelte/runs/shutdown.d.ts +9 -0
  581. package/dist/svelte/runs/shutdown.d.ts.map +1 -0
  582. package/dist/svelte/runs/shutdown.js +104 -0
  583. package/dist/svelte/runs.store.svelte.d.ts +427 -0
  584. package/dist/svelte/runs.store.svelte.d.ts.map +1 -0
  585. package/dist/svelte/runs.store.svelte.js +90 -0
  586. package/dist/svelte/styles.css +16 -0
  587. package/dist/svelte/types.d.ts +29 -0
  588. package/dist/svelte/types.d.ts.map +1 -0
  589. package/dist/svelte/types.js +1 -0
  590. package/dist/svelte/viz/DescriptorPanel.svelte +104 -0
  591. package/dist/svelte/viz/DescriptorPanel.svelte.d.ts +18 -0
  592. package/dist/svelte/viz/DescriptorPanel.svelte.d.ts.map +1 -0
  593. package/dist/svelte/viz/crystal/Crystal3D.svelte +137 -0
  594. package/dist/svelte/viz/crystal/Crystal3D.svelte.d.ts +12 -0
  595. package/dist/svelte/viz/crystal/Crystal3D.svelte.d.ts.map +1 -0
  596. package/dist/svelte/viz/crystal/Crystal3DControls.svelte +253 -0
  597. package/dist/svelte/viz/crystal/Crystal3DControls.svelte.d.ts +18 -0
  598. package/dist/svelte/viz/crystal/Crystal3DControls.svelte.d.ts.map +1 -0
  599. package/dist/svelte/viz/crystal/Crystal3DRenderer.svelte +941 -0
  600. package/dist/svelte/viz/crystal/Crystal3DRenderer.svelte.d.ts +16 -0
  601. package/dist/svelte/viz/crystal/Crystal3DRenderer.svelte.d.ts.map +1 -0
  602. package/dist/svelte/viz/crystal/Crystal3DStats.svelte +110 -0
  603. package/dist/svelte/viz/crystal/Crystal3DStats.svelte.d.ts +12 -0
  604. package/dist/svelte/viz/crystal/Crystal3DStats.svelte.d.ts.map +1 -0
  605. package/dist/svelte/viz/crystal/LatticePanel.svelte +230 -0
  606. package/dist/svelte/viz/crystal/LatticePanel.svelte.d.ts +13 -0
  607. package/dist/svelte/viz/crystal/LatticePanel.svelte.d.ts.map +1 -0
  608. package/dist/svelte/viz/crystal/index.d.ts +8 -0
  609. package/dist/svelte/viz/crystal/index.d.ts.map +1 -0
  610. package/dist/svelte/viz/crystal/index.js +6 -0
  611. package/dist/svelte/viz/crystal/types.d.ts +59 -0
  612. package/dist/svelte/viz/crystal/types.d.ts.map +1 -0
  613. package/dist/svelte/viz/crystal/types.js +27 -0
  614. package/dist/svelte/viz/index.d.ts +18 -0
  615. package/dist/svelte/viz/index.d.ts.map +1 -0
  616. package/dist/svelte/viz/index.js +16 -0
  617. package/dist/svelte/viz/mfd/MFDArcGauge.svelte +59 -0
  618. package/dist/svelte/viz/mfd/MFDArcGauge.svelte.d.ts +21 -0
  619. package/dist/svelte/viz/mfd/MFDArcGauge.svelte.d.ts.map +1 -0
  620. package/dist/svelte/viz/mfd/MFDBarMeter.svelte +58 -0
  621. package/dist/svelte/viz/mfd/MFDBarMeter.svelte.d.ts +21 -0
  622. package/dist/svelte/viz/mfd/MFDBarMeter.svelte.d.ts.map +1 -0
  623. package/dist/svelte/viz/mfd/MFDHexMatrix.svelte +58 -0
  624. package/dist/svelte/viz/mfd/MFDHexMatrix.svelte.d.ts +21 -0
  625. package/dist/svelte/viz/mfd/MFDHexMatrix.svelte.d.ts.map +1 -0
  626. package/dist/svelte/viz/mfd/MFDPanel.svelte +372 -0
  627. package/dist/svelte/viz/mfd/MFDPanel.svelte.d.ts +19 -0
  628. package/dist/svelte/viz/mfd/MFDPanel.svelte.d.ts.map +1 -0
  629. package/dist/svelte/viz/mfd/MFDScope.svelte +59 -0
  630. package/dist/svelte/viz/mfd/MFDScope.svelte.d.ts +21 -0
  631. package/dist/svelte/viz/mfd/MFDScope.svelte.d.ts.map +1 -0
  632. package/dist/svelte/viz/mfd/MFDStatusGrid.svelte +65 -0
  633. package/dist/svelte/viz/mfd/MFDStatusGrid.svelte.d.ts +25 -0
  634. package/dist/svelte/viz/mfd/MFDStatusGrid.svelte.d.ts.map +1 -0
  635. package/dist/svelte/viz/mfd/grid.d.ts +37 -0
  636. package/dist/svelte/viz/mfd/grid.d.ts.map +1 -0
  637. package/dist/svelte/viz/mfd/grid.js +51 -0
  638. package/dist/svelte/viz/mfd/palette.d.ts +22 -0
  639. package/dist/svelte/viz/mfd/palette.d.ts.map +1 -0
  640. package/dist/svelte/viz/mfd/palette.js +105 -0
  641. package/dist/svelte/viz/mfd/pipeline/store.svelte.d.ts +42 -0
  642. package/dist/svelte/viz/mfd/pipeline/store.svelte.d.ts.map +1 -0
  643. package/dist/svelte/viz/mfd/pipeline/store.svelte.js +115 -0
  644. package/dist/svelte/viz/mfd/renderer/context.d.ts +47 -0
  645. package/dist/svelte/viz/mfd/renderer/context.d.ts.map +1 -0
  646. package/dist/svelte/viz/mfd/renderer/context.js +272 -0
  647. package/dist/svelte/viz/mfd/renderer/pipeline.d.ts +32 -0
  648. package/dist/svelte/viz/mfd/renderer/pipeline.d.ts.map +1 -0
  649. package/dist/svelte/viz/mfd/renderer/pipeline.js +188 -0
  650. package/dist/svelte/viz/mfd/renderer/shaders.d.ts +35 -0
  651. package/dist/svelte/viz/mfd/renderer/shaders.d.ts.map +1 -0
  652. package/dist/svelte/viz/mfd/renderer/shaders.js +837 -0
  653. package/dist/svelte/viz/mfd/types.d.ts +88 -0
  654. package/dist/svelte/viz/mfd/types.d.ts.map +1 -0
  655. package/dist/svelte/viz/mfd/types.js +31 -0
  656. package/dist/svelte/viz/registry.d.ts +36 -0
  657. package/dist/svelte/viz/registry.d.ts.map +1 -0
  658. package/dist/svelte/viz/registry.js +74 -0
  659. package/dist/test-scenario/test-scenario-emitter.d.ts +35 -0
  660. package/dist/test-scenario/test-scenario-emitter.d.ts.map +1 -0
  661. package/dist/test-scenario/test-scenario-emitter.js +64 -0
  662. package/dist/test-scenario/test-scenario-emitter.js.map +1 -0
  663. package/dist/test-scenario/test-scenario.plugin.d.ts +11 -0
  664. package/dist/test-scenario/test-scenario.plugin.d.ts.map +1 -0
  665. package/dist/test-scenario/test-scenario.plugin.js +19 -0
  666. package/dist/test-scenario/test-scenario.plugin.js.map +1 -0
  667. package/dist/test-scenario/test-scenario.type.descriptor.d.ts +12 -0
  668. package/dist/test-scenario/test-scenario.type.descriptor.d.ts.map +1 -0
  669. package/dist/test-scenario/test-scenario.type.descriptor.js +21 -0
  670. package/dist/test-scenario/test-scenario.type.descriptor.js.map +1 -0
  671. package/dist/watch.d.ts +13 -0
  672. package/dist/watch.d.ts.map +1 -0
  673. package/dist/watch.js +127 -0
  674. package/dist/watch.js.map +1 -0
  675. package/package.json +355 -4
@@ -0,0 +1,272 @@
1
+ // ═══════════════════════════════════════════════════════════════
2
+ // NERV MFD — Global WebGL2 Rendering Context
3
+ //
4
+ // Single canvas, single GL context. All MFD panels render as scissored
5
+ // viewports into this one surface. CRT post-processing is applied globally.
6
+ // ═══════════════════════════════════════════════════════════════
7
+ import { MAX_DATA_SIZE, CRT_DEFAULTS } from '../types';
8
+ import { linkProgram, QUAD_VERT, CRT_FRAG, MODULE_SHADERS, getUniforms } from './shaders';
9
+ const COMMON_UNIFORMS = [
10
+ 'u_time',
11
+ 'u_resolution',
12
+ 'u_color',
13
+ 'u_accent',
14
+ 'u_dim',
15
+ 'u_grid',
16
+ 'u_glow',
17
+ 'u_warning',
18
+ 'u_intensity',
19
+ 'u_params',
20
+ 'u_dataCount',
21
+ 'u_data'
22
+ ];
23
+ const CRT_UNIFORMS = [
24
+ 'u_scene',
25
+ 'u_resolution',
26
+ 'u_time',
27
+ 'u_scanlineIntensity',
28
+ 'u_scanlineCount',
29
+ 'u_barrelDistortion',
30
+ 'u_chromaticAberration',
31
+ 'u_bloom',
32
+ 'u_noise',
33
+ 'u_vignette',
34
+ 'u_flicker'
35
+ ];
36
+ export class GLContext {
37
+ canvas;
38
+ gl;
39
+ dpr;
40
+ programs = new Map();
41
+ crtProgram = null;
42
+ quadVAO;
43
+ sceneFBO;
44
+ sceneTexture;
45
+ /**
46
+ * True once the canvas has been sized to non-zero dimensions AND
47
+ * the scene FBO has been allocated at that size. Render frame hooks
48
+ * short-circuit when this is false so they don't spam the console
49
+ * with GL_INVALID_FRAMEBUFFER_OPERATION when the canvas is in a
50
+ * zero-sized container (collapsed panel, hidden tab, pre-layout).
51
+ */
52
+ hasValidSize = false;
53
+ crt = { ...CRT_DEFAULTS };
54
+ constructor(canvas, gl) {
55
+ this.canvas = canvas;
56
+ this.gl = gl;
57
+ this.dpr = Math.min(window.devicePixelRatio, 2);
58
+ const verts = new Float32Array([-1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1]);
59
+ this.quadVAO = gl.createVertexArray();
60
+ const vbo = gl.createBuffer();
61
+ gl.bindVertexArray(this.quadVAO);
62
+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo);
63
+ gl.bufferData(gl.ARRAY_BUFFER, verts, gl.STATIC_DRAW);
64
+ gl.enableVertexAttribArray(0);
65
+ gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);
66
+ gl.bindVertexArray(null);
67
+ this.sceneTexture = gl.createTexture();
68
+ this.sceneFBO = gl.createFramebuffer();
69
+ this._initFBO();
70
+ gl.enable(gl.BLEND);
71
+ gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
72
+ gl.enable(gl.SCISSOR_TEST);
73
+ gl.getExtension('EXT_color_buffer_float');
74
+ gl.getExtension('OES_texture_float_linear');
75
+ }
76
+ static create(container) {
77
+ const canvas = document.createElement('canvas');
78
+ canvas.style.cssText = `
79
+ position: absolute; inset: 0; width: 100%; height: 100%;
80
+ pointer-events: none; z-index: 5;
81
+ `;
82
+ container.appendChild(canvas);
83
+ const gl = canvas.getContext('webgl2', {
84
+ alpha: true,
85
+ antialias: false,
86
+ premultipliedAlpha: false,
87
+ preserveDrawingBuffer: false,
88
+ powerPreference: 'high-performance'
89
+ });
90
+ if (!gl)
91
+ throw new Error('WebGL2 not available');
92
+ const ctx = new GLContext(canvas, gl);
93
+ ctx.resize();
94
+ ctx._compileCRT();
95
+ return ctx;
96
+ }
97
+ resize() {
98
+ // Use the canvas container dimensions, not window dimensions.
99
+ // The canvas is position:absolute inside its container.
100
+ const parent = this.canvas.parentElement;
101
+ const w = parent ? parent.offsetWidth : window.innerWidth;
102
+ const h = parent ? parent.offsetHeight : window.innerHeight;
103
+ this.dpr = Math.min(window.devicePixelRatio, 2);
104
+ const pw = Math.round(w * this.dpr);
105
+ const ph = Math.round(h * this.dpr);
106
+ // If the container hasn't been laid out yet (hidden tab, collapsed
107
+ // panel, pre-mount) the computed size is 0. Leave `hasValidSize`
108
+ // false so frame hooks skip gl.clear() until the next resize()
109
+ // call finds a real size. A future ResizeObserver tick from the
110
+ // pipeline will re-invoke us once layout settles.
111
+ if (pw <= 0 || ph <= 0) {
112
+ this.hasValidSize = false;
113
+ return;
114
+ }
115
+ if (this.canvas.width !== pw || this.canvas.height !== ph) {
116
+ this.canvas.width = pw;
117
+ this.canvas.height = ph;
118
+ this._initFBO();
119
+ }
120
+ this.hasValidSize = true;
121
+ }
122
+ /** True when the canvas + FBO are sized for rendering. */
123
+ get ready() {
124
+ return this.hasValidSize;
125
+ }
126
+ _initFBO() {
127
+ const gl = this.gl;
128
+ const w = this.canvas.width;
129
+ const h = this.canvas.height;
130
+ gl.bindTexture(gl.TEXTURE_2D, this.sceneTexture);
131
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA16F, w, h, 0, gl.RGBA, gl.HALF_FLOAT, null);
132
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
133
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
134
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
135
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
136
+ gl.bindFramebuffer(gl.FRAMEBUFFER, this.sceneFBO);
137
+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this.sceneTexture, 0);
138
+ gl.bindFramebuffer(gl.FRAMEBUFFER, null);
139
+ }
140
+ _compileCRT() {
141
+ const prog = linkProgram(this.gl, QUAD_VERT, CRT_FRAG);
142
+ this.crtProgram = { program: prog, uniforms: getUniforms(this.gl, prog, CRT_UNIFORMS) };
143
+ }
144
+ getModuleProgram(moduleType) {
145
+ let cp = this.programs.get(moduleType);
146
+ if (cp)
147
+ return cp;
148
+ const fragSrc = MODULE_SHADERS[moduleType];
149
+ if (!fragSrc)
150
+ throw new Error(`Unknown module type: ${moduleType}`);
151
+ const prog = linkProgram(this.gl, QUAD_VERT, fragSrc);
152
+ const uniforms = getUniforms(this.gl, prog, COMMON_UNIFORMS);
153
+ cp = { program: prog, uniforms };
154
+ this.programs.set(moduleType, cp);
155
+ return cp;
156
+ }
157
+ createDataTexture(width = MAX_DATA_SIZE) {
158
+ const gl = this.gl;
159
+ const tex = gl.createTexture();
160
+ gl.bindTexture(gl.TEXTURE_2D, tex);
161
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.R32F, width, 1, 0, gl.RED, gl.FLOAT, null);
162
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
163
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
164
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
165
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
166
+ return tex;
167
+ }
168
+ createDataTexture2D(width, height) {
169
+ const gl = this.gl;
170
+ const tex = gl.createTexture();
171
+ gl.bindTexture(gl.TEXTURE_2D, tex);
172
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.R32F, width, height, 0, gl.RED, gl.FLOAT, null);
173
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
174
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
175
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
176
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
177
+ return tex;
178
+ }
179
+ updateDataTexture(tex, data) {
180
+ const gl = this.gl;
181
+ gl.bindTexture(gl.TEXTURE_2D, tex);
182
+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, data.length, 1, gl.RED, gl.FLOAT, data);
183
+ }
184
+ updateDataTexture2D(tex, data, width, height) {
185
+ const gl = this.gl;
186
+ gl.bindTexture(gl.TEXTURE_2D, tex);
187
+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, gl.RED, gl.FLOAT, data);
188
+ }
189
+ beginFrame() {
190
+ // Skip entirely when the canvas has no valid size — the scene
191
+ // FBO's color attachment is 0×0 and gl.clear() would throw
192
+ // GL_INVALID_FRAMEBUFFER_OPERATION on every frame.
193
+ if (!this.hasValidSize)
194
+ return;
195
+ const gl = this.gl;
196
+ gl.bindFramebuffer(gl.FRAMEBUFFER, this.sceneFBO);
197
+ gl.viewport(0, 0, this.canvas.width, this.canvas.height);
198
+ gl.scissor(0, 0, this.canvas.width, this.canvas.height);
199
+ gl.clearColor(0, 0, 0, 0);
200
+ gl.clear(gl.COLOR_BUFFER_BIT);
201
+ }
202
+ renderPanel(moduleType, viewport, time, color, accent, dim, grid, glow, warning, intensity, params, dataTexture, dataCount) {
203
+ const gl = this.gl;
204
+ const { program, uniforms } = this.getModuleProgram(moduleType);
205
+ const x = Math.round(viewport.x);
206
+ const y = Math.round(viewport.y);
207
+ const w = Math.round(viewport.width);
208
+ const h = Math.round(viewport.height);
209
+ gl.viewport(x, y, w, h);
210
+ gl.scissor(x, y, w, h);
211
+ gl.useProgram(program);
212
+ const u = (name) => uniforms.get(name) ?? null;
213
+ gl.uniform1f(u('u_time'), time);
214
+ gl.uniform2f(u('u_resolution'), w, h);
215
+ gl.uniform3f(u('u_color'), color[0], color[1], color[2]);
216
+ gl.uniform3f(u('u_accent'), accent[0], accent[1], accent[2]);
217
+ gl.uniform3f(u('u_dim'), dim[0], dim[1], dim[2]);
218
+ gl.uniform3f(u('u_grid'), grid[0], grid[1], grid[2]);
219
+ gl.uniform3f(u('u_glow'), glow[0], glow[1], glow[2]);
220
+ gl.uniform3f(u('u_warning'), warning[0], warning[1], warning[2]);
221
+ gl.uniform1f(u('u_intensity'), intensity);
222
+ gl.uniform4fv(u('u_params'), params);
223
+ gl.uniform1f(u('u_dataCount'), dataCount);
224
+ gl.activeTexture(gl.TEXTURE0);
225
+ gl.bindTexture(gl.TEXTURE_2D, dataTexture);
226
+ gl.uniform1i(u('u_data'), 0);
227
+ gl.bindVertexArray(this.quadVAO);
228
+ gl.drawArrays(gl.TRIANGLES, 0, 6);
229
+ gl.bindVertexArray(null);
230
+ }
231
+ endFrame(time) {
232
+ // Paired guard with beginFrame(): when the canvas is 0-sized the
233
+ // default framebuffer clear would throw too.
234
+ if (!this.hasValidSize)
235
+ return;
236
+ const gl = this.gl;
237
+ const crt = this.crt;
238
+ const cp = this.crtProgram;
239
+ gl.bindFramebuffer(gl.FRAMEBUFFER, null);
240
+ gl.viewport(0, 0, this.canvas.width, this.canvas.height);
241
+ gl.scissor(0, 0, this.canvas.width, this.canvas.height);
242
+ gl.clearColor(0, 0, 0, 0);
243
+ gl.clear(gl.COLOR_BUFFER_BIT);
244
+ gl.useProgram(cp.program);
245
+ const u = (name) => cp.uniforms.get(name) ?? null;
246
+ gl.activeTexture(gl.TEXTURE0);
247
+ gl.bindTexture(gl.TEXTURE_2D, this.sceneTexture);
248
+ gl.uniform1i(u('u_scene'), 0);
249
+ gl.uniform2f(u('u_resolution'), this.canvas.width, this.canvas.height);
250
+ gl.uniform1f(u('u_time'), time);
251
+ gl.uniform1f(u('u_scanlineIntensity'), crt.scanlineIntensity);
252
+ gl.uniform1f(u('u_scanlineCount'), crt.scanlineCount);
253
+ gl.uniform1f(u('u_barrelDistortion'), crt.barrelDistortion);
254
+ gl.uniform1f(u('u_chromaticAberration'), crt.chromaticAberration);
255
+ gl.uniform1f(u('u_bloom'), crt.bloom);
256
+ gl.uniform1f(u('u_noise'), crt.noise);
257
+ gl.uniform1f(u('u_vignette'), crt.vignette);
258
+ gl.uniform1f(u('u_flicker'), crt.flickerAmount);
259
+ gl.bindVertexArray(this.quadVAO);
260
+ gl.drawArrays(gl.TRIANGLES, 0, 6);
261
+ gl.bindVertexArray(null);
262
+ }
263
+ destroy() {
264
+ const gl = this.gl;
265
+ this.programs.forEach((cp) => gl.deleteProgram(cp.program));
266
+ if (this.crtProgram)
267
+ gl.deleteProgram(this.crtProgram.program);
268
+ gl.deleteFramebuffer(this.sceneFBO);
269
+ gl.deleteTexture(this.sceneTexture);
270
+ this.canvas.remove();
271
+ }
272
+ }
@@ -0,0 +1,32 @@
1
+ import type { PanelState, MFDModuleType, MFDSize, PaletteName } from '../types';
2
+ import { GLContext } from './context';
3
+ export declare class RenderPipeline {
4
+ private ctx;
5
+ private panels;
6
+ private dataCounts;
7
+ private rafId;
8
+ private startTime;
9
+ private running;
10
+ private observers;
11
+ private elements;
12
+ private _onResize;
13
+ private _onScroll;
14
+ constructor(ctx: GLContext);
15
+ register(id: string, moduleType: MFDModuleType, size: MFDSize, palette?: PaletteName): PanelState;
16
+ unregister(id: string): void;
17
+ bindElement(id: string, el: HTMLElement): void;
18
+ setData(id: string, data: Float32Array | number[]): void;
19
+ setParams(id: string, params: [number, number, number, number]): void;
20
+ setPalette(id: string, palette: PaletteName): void;
21
+ setIntensity(id: string, intensity: number): void;
22
+ setEnabled(id: string, enabled: boolean): void;
23
+ start(): void;
24
+ stop(): void;
25
+ getPanel(id: string): PanelState | undefined;
26
+ getPanelIds(): string[];
27
+ private _frame;
28
+ private _updateViewport;
29
+ updateAllViewports(): void;
30
+ destroy(): void;
31
+ }
32
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../../src/svelte/viz/mfd/renderer/pipeline.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIhF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,qBAAa,cAAc;IAC1B,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,QAAQ,CAAkC;IAElD,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAa;gBAElB,GAAG,EAAE,SAAS;IAa1B,QAAQ,CACP,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,EACzB,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,WAAwB,GAC/B,UAAU;IAqCb,UAAU,CAAC,EAAE,EAAE,MAAM;IAerB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW;IAQvC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE;IAmBjD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAM9D,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;IAK3C,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAK1C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAKvC,KAAK;IAOL,IAAI;IAQJ,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI5C,WAAW,IAAI,MAAM,EAAE;IAIvB,OAAO,CAAC,MAAM,CA2BZ;IAEF,OAAO,CAAC,eAAe;IASvB,kBAAkB;IAIlB,OAAO;CAcP"}
@@ -0,0 +1,188 @@
1
+ // ═══════════════════════════════════════════════════════════════
2
+ // NERV MFD — Render Pipeline
3
+ //
4
+ // Orchestrates the frame loop: iterates all registered panels, renders each
5
+ // via the global GLContext, applies CRT post-process, manages data textures.
6
+ // ═══════════════════════════════════════════════════════════════
7
+ import { MAX_DATA_SIZE, HISTORY_DEPTH } from '../types';
8
+ import { getPalette } from '../palette';
9
+ import { panelViewport } from '../grid';
10
+ export class RenderPipeline {
11
+ ctx;
12
+ panels = new Map();
13
+ dataCounts = new Map();
14
+ rafId = 0;
15
+ startTime = 0;
16
+ running = false;
17
+ observers = new Map();
18
+ elements = new Map();
19
+ _onResize;
20
+ _onScroll;
21
+ constructor(ctx) {
22
+ this.ctx = ctx;
23
+ this.startTime = performance.now() / 1000;
24
+ this._onResize = () => {
25
+ this.ctx.resize();
26
+ this.updateAllViewports();
27
+ };
28
+ window.addEventListener('resize', this._onResize);
29
+ this._onScroll = () => this.updateAllViewports();
30
+ window.addEventListener('scroll', this._onScroll, true);
31
+ }
32
+ register(id, moduleType, size, palette = 'phosphor') {
33
+ const existing = this.panels.get(id);
34
+ if (existing) {
35
+ if (existing._dataTexture)
36
+ this.ctx.gl.deleteTexture(existing._dataTexture);
37
+ }
38
+ this.ctx.getModuleProgram(moduleType);
39
+ const needsHistory = moduleType === 'waterfall' || moduleType === 'hex-matrix';
40
+ const histW = needsHistory ? MAX_DATA_SIZE : 0;
41
+ const histH = needsHistory ? HISTORY_DEPTH : 0;
42
+ const panel = {
43
+ id,
44
+ moduleType,
45
+ size,
46
+ viewport: { x: 0, y: 0, width: 1, height: 1 },
47
+ palette,
48
+ intensity: 1.0,
49
+ speed: 1.0,
50
+ data: new Float32Array(MAX_DATA_SIZE),
51
+ params: new Float32Array(4),
52
+ enabled: true,
53
+ _dataTexture: needsHistory
54
+ ? this.ctx.createDataTexture2D(histW, histH)
55
+ : this.ctx.createDataTexture(),
56
+ _history: needsHistory ? new Float32Array(histW * histH) : null,
57
+ _historyWidth: histW,
58
+ _historyHeight: histH,
59
+ _historyRow: 0
60
+ };
61
+ this.panels.set(id, panel);
62
+ this.dataCounts.set(id, 0);
63
+ return panel;
64
+ }
65
+ unregister(id) {
66
+ const panel = this.panels.get(id);
67
+ if (panel?._dataTexture) {
68
+ this.ctx.gl.deleteTexture(panel._dataTexture);
69
+ }
70
+ this.panels.delete(id);
71
+ this.dataCounts.delete(id);
72
+ const obs = this.observers.get(id);
73
+ if (obs) {
74
+ obs.disconnect();
75
+ this.observers.delete(id);
76
+ }
77
+ this.elements.delete(id);
78
+ }
79
+ bindElement(id, el) {
80
+ this.elements.set(id, el);
81
+ const obs = new ResizeObserver(() => this._updateViewport(id));
82
+ obs.observe(el);
83
+ this.observers.set(id, obs);
84
+ this._updateViewport(id);
85
+ }
86
+ setData(id, data) {
87
+ const panel = this.panels.get(id);
88
+ if (!panel)
89
+ return;
90
+ const src = data instanceof Float32Array ? data : new Float32Array(data);
91
+ this.dataCounts.set(id, Math.min(src.length, MAX_DATA_SIZE));
92
+ if (panel._history) {
93
+ const w = panel._historyWidth;
94
+ const row = panel._historyRow;
95
+ panel._history.set(src.subarray(0, Math.min(src.length, w)), row * w);
96
+ panel._historyRow = (row + 1) % panel._historyHeight;
97
+ this.ctx.updateDataTexture2D(panel._dataTexture, panel._history, w, panel._historyHeight);
98
+ }
99
+ else {
100
+ panel.data.fill(0);
101
+ panel.data.set(src.subarray(0, Math.min(src.length, MAX_DATA_SIZE)));
102
+ this.ctx.updateDataTexture(panel._dataTexture, panel.data);
103
+ }
104
+ }
105
+ setParams(id, params) {
106
+ const panel = this.panels.get(id);
107
+ if (!panel)
108
+ return;
109
+ panel.params.set(params);
110
+ }
111
+ setPalette(id, palette) {
112
+ const panel = this.panels.get(id);
113
+ if (panel)
114
+ panel.palette = palette;
115
+ }
116
+ setIntensity(id, intensity) {
117
+ const panel = this.panels.get(id);
118
+ if (panel)
119
+ panel.intensity = intensity;
120
+ }
121
+ setEnabled(id, enabled) {
122
+ const panel = this.panels.get(id);
123
+ if (panel)
124
+ panel.enabled = enabled;
125
+ }
126
+ start() {
127
+ if (this.running)
128
+ return;
129
+ this.running = true;
130
+ this.startTime = performance.now() / 1000;
131
+ this._frame();
132
+ }
133
+ stop() {
134
+ this.running = false;
135
+ if (this.rafId) {
136
+ cancelAnimationFrame(this.rafId);
137
+ this.rafId = 0;
138
+ }
139
+ }
140
+ getPanel(id) {
141
+ return this.panels.get(id);
142
+ }
143
+ getPanelIds() {
144
+ return Array.from(this.panels.keys());
145
+ }
146
+ _frame = () => {
147
+ if (!this.running)
148
+ return;
149
+ const time = performance.now() / 1000 - this.startTime;
150
+ this.ctx.beginFrame();
151
+ for (const panel of this.panels.values()) {
152
+ if (!panel.enabled || panel.viewport.width < 1 || panel.viewport.height < 1)
153
+ continue;
154
+ const pal = getPalette(panel.palette);
155
+ this.ctx.renderPanel(panel.moduleType, panel.viewport, time * panel.speed, pal.primary, pal.accent, pal.dim, pal.grid, pal.glow, pal.warning, panel.intensity, panel.params, panel._dataTexture, this.dataCounts.get(panel.id) ?? 0);
156
+ }
157
+ this.ctx.endFrame(time);
158
+ this.rafId = requestAnimationFrame(this._frame);
159
+ };
160
+ _updateViewport(id) {
161
+ const el = this.elements.get(id);
162
+ const panel = this.panels.get(id);
163
+ if (!el || !panel)
164
+ return;
165
+ const rect = el.getBoundingClientRect();
166
+ const canvas = this.ctx.canvas.getBoundingClientRect();
167
+ panel.viewport = panelViewport(rect, canvas.height, this.ctx.dpr, canvas);
168
+ }
169
+ updateAllViewports() {
170
+ for (const id of this.elements.keys())
171
+ this._updateViewport(id);
172
+ }
173
+ destroy() {
174
+ this.stop();
175
+ window.removeEventListener('resize', this._onResize);
176
+ window.removeEventListener('scroll', this._onScroll, true);
177
+ this.observers.forEach((obs) => obs.disconnect());
178
+ this.observers.clear();
179
+ this.elements.clear();
180
+ for (const panel of this.panels.values()) {
181
+ if (panel._dataTexture)
182
+ this.ctx.gl.deleteTexture(panel._dataTexture);
183
+ }
184
+ this.panels.clear();
185
+ this.dataCounts.clear();
186
+ this.ctx.destroy();
187
+ }
188
+ }
@@ -0,0 +1,35 @@
1
+ export declare function compileShader(gl: WebGL2RenderingContext, type: number, source: string): WebGLShader;
2
+ export declare function linkProgram(gl: WebGL2RenderingContext, vertSrc: string, fragSrc: string): WebGLProgram;
3
+ export declare function getUniforms(gl: WebGL2RenderingContext, program: WebGLProgram, names: string[]): Map<string, WebGLUniformLocation | null>;
4
+ export declare const QUAD_VERT = "#version 300 es\nprecision highp float;\nin vec2 a_position;\nout vec2 v_uv;\nvoid main() {\n v_uv = a_position * 0.5 + 0.5;\n gl_Position = vec4(a_position, 0.0, 1.0);\n}\n";
5
+ export declare const FRAG_COMMON = "#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform float u_time;\nuniform vec2 u_resolution;\nuniform vec3 u_color;\nuniform vec3 u_accent;\nuniform vec3 u_dim;\nuniform vec3 u_grid;\nuniform vec3 u_glow;\nuniform vec3 u_warning;\nuniform float u_intensity;\nuniform vec4 u_params;\nuniform float u_dataCount;\nuniform sampler2D u_data;\n\n#define PI 3.14159265359\n#define TAU 6.28318530718\n\nfloat pulse(float x, float center, float width) {\n float hw = width * 0.5;\n return smoothstep(center - hw, center, x) - smoothstep(center, center + hw, x);\n}\n\nfloat sdCircle(vec2 p, float r) {\n return length(p) - r;\n}\n\nfloat sdBox(vec2 p, vec2 b) {\n vec2 d = abs(p) - b;\n return length(max(d, 0.0)) + min(max(d.x, d.y), 0.0);\n}\n\nfloat sdRoundBox(vec2 p, vec2 b, float r) {\n vec2 d = abs(p) - b + r;\n return length(max(d, 0.0)) + min(max(d.x, d.y), 0.0) - r;\n}\n\nfloat sdSegment(vec2 p, vec2 a, vec2 b) {\n vec2 pa = p - a, ba = b - a;\n float h = clamp(dot(pa, ba) / dot(ba, ba), 0.0, 1.0);\n return length(pa - ba * h);\n}\n\nfloat sdArc(vec2 p, float angle, float aperture, float ra, float rb) {\n float ca = cos(angle), sa = sin(angle);\n p = mat2(ca, sa, -sa, ca) * p;\n p.x = abs(p.x);\n float an = aperture;\n vec2 scb = vec2(sin(an), cos(an));\n float k = (scb.y * p.x > scb.x * p.y) ? dot(p, scb) : length(p);\n return sqrt(max(dot(p, p) + ra * ra - 2.0 * ra * k, 0.0)) - rb;\n}\n\nfloat hash(vec2 p) {\n return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453);\n}\n\nfloat noise(vec2 p) {\n vec2 i = floor(p);\n vec2 f = fract(p);\n f = f * f * (3.0 - 2.0 * f);\n return mix(\n mix(hash(i), hash(i + vec2(1, 0)), f.x),\n mix(hash(i + vec2(0, 1)), hash(i + vec2(1, 1)), f.x),\n f.y\n );\n}\n\nfloat sampleData(float x) {\n return texture(u_data, vec2(x, 0.5)).r;\n}\n\nfloat sampleScope(float x) {\n float index = clamp(x, 0.0, 1.0) * max(u_dataCount - 1.0, 0.0);\n return texture(u_data, vec2((index + 0.5) / float(textureSize(u_data, 0).x), 0.5)).r;\n}\n\nfloat sampleData2D(vec2 uv) {\n return texture(u_data, uv).r;\n}\n\nfloat gridLines(vec2 uv, float spacing, float thickness) {\n vec2 g = abs(fract(uv * spacing) - 0.5);\n float d = min(g.x, g.y);\n return 1.0 - smoothstep(0.0, thickness, d);\n}\n\nvec3 glow(float d, vec3 color, float intensity, float radius) {\n return color * intensity * exp(-abs(d) / radius);\n}\n";
6
+ export declare const CRT_FRAG = "#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform sampler2D u_scene;\nuniform vec2 u_resolution;\nuniform float u_time;\nuniform float u_scanlineIntensity;\nuniform float u_scanlineCount;\nuniform float u_barrelDistortion;\nuniform float u_chromaticAberration;\nuniform float u_bloom;\nuniform float u_noise;\nuniform float u_vignette;\nuniform float u_flicker;\n\nfloat hash(vec2 p) {\n return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453);\n}\n\nvec2 distort(vec2 uv, float k) {\n vec2 c = uv - 0.5;\n float r2 = dot(c, c);\n return uv + c * r2 * k;\n}\n\nvoid main() {\n vec2 uv = v_uv;\n\n vec2 duv = distort(uv, u_barrelDistortion);\n\n float sceneAlpha = texture(u_scene, duv).a;\n\n if (sceneAlpha < 0.005) {\n fragColor = vec4(0.0);\n return;\n }\n\n float ca = u_chromaticAberration;\n float r = texture(u_scene, distort(uv, u_barrelDistortion + ca)).r;\n float g = texture(u_scene, duv).g;\n float b = texture(u_scene, distort(uv, u_barrelDistortion - ca)).b;\n vec3 color = vec3(r, g, b);\n\n vec3 bloom = vec3(0.0);\n float bloomAlpha = 0.0;\n float bw = 3.0 / u_resolution.x;\n float bh = 3.0 / u_resolution.y;\n for (int x = -2; x <= 2; x++) {\n for (int y = -2; y <= 2; y++) {\n vec4 s = texture(u_scene, duv + vec2(float(x) * bw, float(y) * bh));\n bloom += s.rgb;\n bloomAlpha += s.a;\n }\n }\n bloom /= 25.0;\n bloomAlpha /= 25.0;\n color += bloom * u_bloom;\n sceneAlpha = max(sceneAlpha, bloomAlpha * u_bloom);\n\n float scanline = sin(duv.y * u_scanlineCount * 3.14159) * 0.5 + 0.5;\n color *= 1.0 - u_scanlineIntensity * (1.0 - scanline);\n\n float px = fract(gl_FragCoord.x / 3.0);\n vec3 mask = vec3(\n smoothstep(0.0, 0.33, px) - smoothstep(0.33, 0.66, px),\n smoothstep(0.33, 0.66, px) - smoothstep(0.66, 1.0, px),\n smoothstep(0.66, 1.0, px)\n );\n color *= mix(vec3(1.0), mask * 1.5 + 0.5, 0.12);\n\n float n = hash(uv * u_resolution + u_time * 1000.0) * u_noise;\n color += n * sceneAlpha;\n\n vec2 vc = uv - 0.5;\n float vig = 1.0 - dot(vc, vc) * u_vignette * 2.5;\n color *= vig;\n\n float flicker = 1.0 - u_flicker * sin(u_time * 8.3) * sin(u_time * 11.7);\n color *= flicker;\n\n if (duv.x < 0.0 || duv.x > 1.0 || duv.y < 0.0 || duv.y > 1.0) {\n fragColor = vec4(0.0);\n return;\n }\n\n fragColor = vec4(color, sceneAlpha);\n}\n";
7
+ export declare const SCOPE_FRAG: string;
8
+ export declare const MULTI_LINE_SCOPE_FRAG: string;
9
+ export declare const ARC_GAUGE_FRAG: string;
10
+ export declare const BAR_METER_FRAG: string;
11
+ export declare const RADAR_FRAG: string;
12
+ export declare const HEX_MATRIX_FRAG: string;
13
+ export declare const WATERFALL_FRAG: string;
14
+ export declare const TOPO_FRAG: string;
15
+ export declare const VECTOR_SCOPE_FRAG: string;
16
+ export declare const PROGRESS_RING_FRAG: string;
17
+ export declare const DIGITAL_READOUT_FRAG: string;
18
+ export declare const STATUS_GRID_FRAG: string;
19
+ export declare const TOGGLE_FRAG: string;
20
+ export declare const MODULE_SHADERS: {
21
+ scope: string;
22
+ 'multi-line-scope': string;
23
+ 'arc-gauge': string;
24
+ 'bar-meter': string;
25
+ radar: string;
26
+ 'hex-matrix': string;
27
+ waterfall: string;
28
+ topo: string;
29
+ 'vector-scope': string;
30
+ 'progress-ring': string;
31
+ 'digital-readout': string;
32
+ 'status-grid': string;
33
+ toggle: string;
34
+ };
35
+ //# sourceMappingURL=shaders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shaders.d.ts","sourceRoot":"","sources":["../../../../../src/svelte/viz/mfd/renderer/shaders.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAC5B,EAAE,EAAE,sBAAsB,EAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACZ,WAAW,CAUb;AAED,wBAAgB,WAAW,CAC1B,EAAE,EAAE,sBAAsB,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACb,YAAY,CAgBd;AAED,wBAAgB,WAAW,CAC1B,EAAE,EAAE,sBAAsB,EAC1B,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,MAAM,EAAE,GACb,GAAG,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC,CAM1C;AAID,eAAO,MAAM,SAAS,oLAQrB,CAAC;AAEF,eAAO,MAAM,WAAW,u7EA8FvB,CAAC;AAIF,eAAO,MAAM,QAAQ,k4EA0FpB,CAAC;AAIF,eAAO,MAAM,UAAU,QAgEtB,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAoEjC,CAAC;AAEF,eAAO,MAAM,cAAc,QAwD1B,CAAC;AAEF,eAAO,MAAM,cAAc,QAyC1B,CAAC;AAEF,eAAO,MAAM,UAAU,QAgDtB,CAAC;AAEF,eAAO,MAAM,eAAe,QA+C3B,CAAC;AAEF,eAAO,MAAM,cAAc,QAgC1B,CAAC;AAEF,eAAO,MAAM,SAAS,QA+BrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAuC7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAkC9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAkDhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAqC5B,CAAC;AAEF,eAAO,MAAM,WAAW,QAuCvB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;CAc1B,CAAC"}