@hatiolab/things-scene 10.0.0-beta.13 → 10.0.0-beta.131

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 (465) hide show
  1. package/dist-types/animation/animate.d.ts.map +1 -1
  2. package/dist-types/animation/animations/animation.d.ts +5 -3
  3. package/dist-types/animation/animations/animation.d.ts.map +1 -1
  4. package/dist-types/animation/animations/heartbeat.d.ts +0 -7
  5. package/dist-types/animation/animations/heartbeat.d.ts.map +1 -1
  6. package/dist-types/animation/animations/waypoint.d.ts +45 -4
  7. package/dist-types/animation/animations/waypoint.d.ts.map +1 -1
  8. package/dist-types/animation/interfaces.d.ts +1 -1
  9. package/dist-types/animation/interfaces.d.ts.map +1 -1
  10. package/dist-types/clock/frame-clock.d.ts +119 -0
  11. package/dist-types/clock/frame-clock.d.ts.map +1 -0
  12. package/dist-types/clock/index.d.ts +3 -0
  13. package/dist-types/clock/index.d.ts.map +1 -0
  14. package/dist-types/command/command-migrate.d.ts.map +1 -1
  15. package/dist-types/command/snapshot-commander.d.ts.map +1 -1
  16. package/dist-types/components/audio.d.ts +10 -3
  17. package/dist-types/components/audio.d.ts.map +1 -1
  18. package/dist-types/components/component-data.d.ts +24 -0
  19. package/dist-types/components/component-data.d.ts.map +1 -1
  20. package/dist-types/components/component-drawing.d.ts.map +1 -1
  21. package/dist-types/components/component-geometry.d.ts.map +1 -1
  22. package/dist-types/components/component-hierarchy.d.ts +1 -1
  23. package/dist-types/components/component-hierarchy.d.ts.map +1 -1
  24. package/dist-types/components/component.d.ts +33 -4
  25. package/dist-types/components/component.d.ts.map +1 -1
  26. package/dist-types/components/container-abstract.d.ts +56 -11
  27. package/dist-types/components/container-abstract.d.ts.map +1 -1
  28. package/dist-types/components/container.d.ts +9 -2
  29. package/dist-types/components/container.d.ts.map +1 -1
  30. package/dist-types/components/data/data.d.ts.map +1 -1
  31. package/dist-types/components/data/evaluator.d.ts +27 -0
  32. package/dist-types/components/data/evaluator.d.ts.map +1 -1
  33. package/dist-types/components/donut.d.ts.map +1 -1
  34. package/dist-types/components/drawer/fill.d.ts.map +1 -1
  35. package/dist-types/components/drawer/stroke.d.ts.map +1 -1
  36. package/dist-types/components/ellipse.d.ts +10 -3
  37. package/dist-types/components/ellipse.d.ts.map +1 -1
  38. package/dist-types/components/generic-placeholders.d.ts +294 -0
  39. package/dist-types/components/generic-placeholders.d.ts.map +1 -0
  40. package/dist-types/components/geometry/snap-guide.d.ts +45 -0
  41. package/dist-types/components/geometry/snap-guide.d.ts.map +1 -0
  42. package/dist-types/components/geometry/transcoord.d.ts.map +1 -1
  43. package/dist-types/components/global-ref.d.ts.map +1 -1
  44. package/dist-types/components/group.d.ts +2 -0
  45. package/dist-types/components/group.d.ts.map +1 -1
  46. package/dist-types/components/html/reposition.d.ts.map +1 -1
  47. package/dist-types/components/html/shadow.d.ts +33 -1
  48. package/dist-types/components/html/shadow.d.ts.map +1 -1
  49. package/dist-types/components/html-overlay-container.d.ts +9 -2
  50. package/dist-types/components/html-overlay-container.d.ts.map +1 -1
  51. package/dist-types/components/html-overlay-element.d.ts +19 -5
  52. package/dist-types/components/html-overlay-element.d.ts.map +1 -1
  53. package/dist-types/components/image-view.d.ts +10 -3
  54. package/dist-types/components/image-view.d.ts.map +1 -1
  55. package/dist-types/components/index.d.ts +7 -0
  56. package/dist-types/components/index.d.ts.map +1 -1
  57. package/dist-types/components/info-window.d.ts +10 -3
  58. package/dist-types/components/info-window.d.ts.map +1 -1
  59. package/dist-types/components/line.d.ts +2 -1
  60. package/dist-types/components/line.d.ts.map +1 -1
  61. package/dist-types/components/local-ref.d.ts +10 -3
  62. package/dist-types/components/local-ref.d.ts.map +1 -1
  63. package/dist-types/components/mixins/connectable.d.ts +10 -3
  64. package/dist-types/components/mixins/connectable.d.ts.map +1 -1
  65. package/dist-types/components/mixins/data-source.d.ts +10 -3
  66. package/dist-types/components/mixins/data-source.d.ts.map +1 -1
  67. package/dist-types/components/mixins/gltf-component.d.ts +282 -0
  68. package/dist-types/components/mixins/gltf-component.d.ts.map +1 -0
  69. package/dist-types/components/mixins/holdable.d.ts +12 -0
  70. package/dist-types/components/mixins/holdable.d.ts.map +1 -0
  71. package/dist-types/components/mixins/html-element.d.ts +9 -2
  72. package/dist-types/components/mixins/html-element.d.ts.map +1 -1
  73. package/dist-types/components/mixins/move-handle.d.ts +19 -7
  74. package/dist-types/components/mixins/move-handle.d.ts.map +1 -1
  75. package/dist-types/components/mixins/rect-path.d.ts +10 -3
  76. package/dist-types/components/mixins/rect-path.d.ts.map +1 -1
  77. package/dist-types/components/mixins/three-d-only.d.ts +250 -0
  78. package/dist-types/components/mixins/three-d-only.d.ts.map +1 -0
  79. package/dist-types/components/mixins/value-holder.d.ts +10 -3
  80. package/dist-types/components/mixins/value-holder.d.ts.map +1 -1
  81. package/dist-types/components/mutater/path.d.ts.map +1 -1
  82. package/dist-types/components/node.d.ts +10 -3
  83. package/dist-types/components/node.d.ts.map +1 -1
  84. package/dist-types/components/outline/path-outline.d.ts.map +1 -1
  85. package/dist-types/components/polygon-container.d.ts +61 -0
  86. package/dist-types/components/polygon-container.d.ts.map +1 -0
  87. package/dist-types/components/polygon.d.ts +2 -0
  88. package/dist-types/components/polygon.d.ts.map +1 -1
  89. package/dist-types/components/polyline.d.ts +6 -0
  90. package/dist-types/components/polyline.d.ts.map +1 -1
  91. package/dist-types/components/popup-container.d.ts +25 -0
  92. package/dist-types/components/popup-container.d.ts.map +1 -0
  93. package/dist-types/components/popup.d.ts +40 -3
  94. package/dist-types/components/popup.d.ts.map +1 -1
  95. package/dist-types/components/position/popup-position.d.ts +11 -0
  96. package/dist-types/components/position/popup-position.d.ts.map +1 -1
  97. package/dist-types/components/rect.d.ts +20 -6
  98. package/dist-types/components/rect.d.ts.map +1 -1
  99. package/dist-types/components/retention/retention-manager.d.ts +9 -1
  100. package/dist-types/components/retention/retention-manager.d.ts.map +1 -1
  101. package/dist-types/components/root-container.d.ts +18 -4
  102. package/dist-types/components/root-container.d.ts.map +1 -1
  103. package/dist-types/components/ruler.d.ts +10 -3
  104. package/dist-types/components/ruler.d.ts.map +1 -1
  105. package/dist-types/components/service-component.d.ts +271 -0
  106. package/dist-types/components/service-component.d.ts.map +1 -0
  107. package/dist-types/components/shape.d.ts.map +1 -1
  108. package/dist-types/components/star.d.ts.map +1 -1
  109. package/dist-types/components/text.d.ts +10 -3
  110. package/dist-types/components/text.d.ts.map +1 -1
  111. package/dist-types/core/dom-to-image.d.ts.map +1 -1
  112. package/dist-types/core/logger.d.ts.map +1 -1
  113. package/dist-types/core/memoize.d.ts.map +1 -1
  114. package/dist-types/decorator/decorator-registry.d.ts +14 -1
  115. package/dist-types/decorator/decorator-registry.d.ts.map +1 -1
  116. package/dist-types/decorator/decorators/animated-icon-decorator.d.ts.map +1 -1
  117. package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts +0 -4
  118. package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts.map +1 -1
  119. package/dist-types/decorator/decorators/bouncing-arrow-decorator.d.ts +0 -3
  120. package/dist-types/decorator/decorators/bouncing-arrow-decorator.d.ts.map +1 -1
  121. package/dist-types/decorator/decorators/data-spread-decorator.d.ts +16 -0
  122. package/dist-types/decorator/decorators/data-spread-decorator.d.ts.map +1 -1
  123. package/dist-types/diagnostics/contract-inspector.d.ts +110 -0
  124. package/dist-types/diagnostics/contract-inspector.d.ts.map +1 -0
  125. package/dist-types/diagnostics/data-lag-tracker.d.ts +50 -0
  126. package/dist-types/diagnostics/data-lag-tracker.d.ts.map +1 -0
  127. package/dist-types/diagnostics/inspector.d.ts +192 -5
  128. package/dist-types/diagnostics/inspector.d.ts.map +1 -1
  129. package/dist-types/diagnostics/load-tracker.d.ts +82 -0
  130. package/dist-types/diagnostics/load-tracker.d.ts.map +1 -0
  131. package/dist-types/diagnostics/loading-overlay.d.ts +58 -0
  132. package/dist-types/diagnostics/loading-overlay.d.ts.map +1 -0
  133. package/dist-types/diagnostics/metrics.d.ts +10 -0
  134. package/dist-types/diagnostics/metrics.d.ts.map +1 -1
  135. package/dist-types/effect/shadow.d.ts +3 -1
  136. package/dist-types/effect/shadow.d.ts.map +1 -1
  137. package/dist-types/event-map/index.d.ts +1 -0
  138. package/dist-types/event-map/index.d.ts.map +1 -1
  139. package/dist-types/event-map/transition-handler.d.ts +2 -0
  140. package/dist-types/event-map/transition-handler.d.ts.map +1 -0
  141. package/dist-types/flow/auto-route.d.ts +36 -0
  142. package/dist-types/flow/auto-route.d.ts.map +1 -0
  143. package/dist-types/flow/face-anchors.d.ts +26 -0
  144. package/dist-types/flow/face-anchors.d.ts.map +1 -0
  145. package/dist-types/flow/flow-engine.d.ts +122 -0
  146. package/dist-types/flow/flow-engine.d.ts.map +1 -0
  147. package/dist-types/flow/flow-graph-coordinator.d.ts +80 -0
  148. package/dist-types/flow/flow-graph-coordinator.d.ts.map +1 -0
  149. package/dist-types/flow/flow-graph-validator.d.ts +33 -0
  150. package/dist-types/flow/flow-graph-validator.d.ts.map +1 -0
  151. package/dist-types/flow/flow-graph.d.ts +76 -0
  152. package/dist-types/flow/flow-graph.d.ts.map +1 -0
  153. package/dist-types/flow/flow-introspection.d.ts +36 -0
  154. package/dist-types/flow/flow-introspection.d.ts.map +1 -0
  155. package/dist-types/flow/flow-node.d.ts +69 -0
  156. package/dist-types/flow/flow-node.d.ts.map +1 -0
  157. package/dist-types/flow/flow-orientation-coordinator.d.ts +13 -0
  158. package/dist-types/flow/flow-orientation-coordinator.d.ts.map +1 -0
  159. package/dist-types/flow/flow-orientation.d.ts +42 -0
  160. package/dist-types/flow/flow-orientation.d.ts.map +1 -0
  161. package/dist-types/flow/flow-trace.d.ts +5 -0
  162. package/dist-types/flow/flow-trace.d.ts.map +1 -0
  163. package/dist-types/flow/index.d.ts +16 -0
  164. package/dist-types/flow/index.d.ts.map +1 -0
  165. package/dist-types/flow/segment-topology.d.ts +225 -0
  166. package/dist-types/flow/segment-topology.d.ts.map +1 -0
  167. package/dist-types/flow/station-host-inference.d.ts +23 -0
  168. package/dist-types/flow/station-host-inference.d.ts.map +1 -0
  169. package/dist-types/interfaces/event-handler.d.ts +40 -0
  170. package/dist-types/interfaces/event-handler.d.ts.map +1 -0
  171. package/dist-types/interfaces/index.d.ts +2 -0
  172. package/dist-types/interfaces/index.d.ts.map +1 -1
  173. package/dist-types/interfaces/layout.d.ts +35 -1
  174. package/dist-types/interfaces/layout.d.ts.map +1 -1
  175. package/dist-types/interfaces/providers.d.ts +27 -3
  176. package/dist-types/interfaces/providers.d.ts.map +1 -1
  177. package/dist-types/interfaces/real-object.d.ts +8 -1
  178. package/dist-types/interfaces/real-object.d.ts.map +1 -1
  179. package/dist-types/interfaces/rendering.d.ts +86 -14
  180. package/dist-types/interfaces/rendering.d.ts.map +1 -1
  181. package/dist-types/interfaces/types.d.ts +20 -1
  182. package/dist-types/interfaces/types.d.ts.map +1 -1
  183. package/dist-types/items/arrangement/centering-queue-strategy.d.ts +10 -0
  184. package/dist-types/items/arrangement/centering-queue-strategy.d.ts.map +1 -0
  185. package/dist-types/items/arrangement/index.d.ts +2 -0
  186. package/dist-types/items/arrangement/index.d.ts.map +1 -0
  187. package/dist-types/items/capacity-mixin.d.ts +303 -0
  188. package/dist-types/items/capacity-mixin.d.ts.map +1 -0
  189. package/dist-types/items/capacity.d.ts +53 -0
  190. package/dist-types/items/capacity.d.ts.map +1 -0
  191. package/dist-types/items/index.d.ts +7 -0
  192. package/dist-types/items/index.d.ts.map +1 -0
  193. package/dist-types/items/items-data-binding.d.ts +103 -0
  194. package/dist-types/items/items-data-binding.d.ts.map +1 -0
  195. package/dist-types/items/slot-record.d.ts +23 -0
  196. package/dist-types/items/slot-record.d.ts.map +1 -0
  197. package/dist-types/items/stacking/index.d.ts +3 -0
  198. package/dist-types/items/stacking/index.d.ts.map +1 -0
  199. package/dist-types/items/stacking/stack-layout.d.ts +33 -0
  200. package/dist-types/items/stacking/stack-layout.d.ts.map +1 -0
  201. package/dist-types/items/stacking/stacking-strategy.d.ts +114 -0
  202. package/dist-types/items/stacking/stacking-strategy.d.ts.map +1 -0
  203. package/dist-types/layer/action/popup.d.ts +13 -0
  204. package/dist-types/layer/action/popup.d.ts.map +1 -1
  205. package/dist-types/layer/add-layer.d.ts +8 -0
  206. package/dist-types/layer/add-layer.d.ts.map +1 -1
  207. package/dist-types/layer/dual-canvas-layer.d.ts.map +1 -1
  208. package/dist-types/layer/index.d.ts +1 -0
  209. package/dist-types/layer/index.d.ts.map +1 -1
  210. package/dist-types/layer/layer.d.ts +2 -0
  211. package/dist-types/layer/layer.d.ts.map +1 -1
  212. package/dist-types/layer/model-layer.d.ts +81 -7
  213. package/dist-types/layer/model-layer.d.ts.map +1 -1
  214. package/dist-types/layer/modeler/index.d.ts +1 -0
  215. package/dist-types/layer/modeler/index.d.ts.map +1 -1
  216. package/dist-types/layer/modeler/move-handle-icon.d.ts +2 -0
  217. package/dist-types/layer/modeler/move-handle-icon.d.ts.map +1 -0
  218. package/dist-types/layer/modeler/move-handle-modeler.d.ts +18 -0
  219. package/dist-types/layer/modeler/move-handle-modeler.d.ts.map +1 -0
  220. package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
  221. package/dist-types/layer/modeler/rotator.d.ts.map +1 -1
  222. package/dist-types/layer/modeling-layer.d.ts +19 -0
  223. package/dist-types/layer/modeling-layer.d.ts.map +1 -1
  224. package/dist-types/layer/selection/selected-finder.d.ts +1 -1
  225. package/dist-types/layer/selection/selected-finder.d.ts.map +1 -1
  226. package/dist-types/layer/selection-layer.d.ts +7 -0
  227. package/dist-types/layer/selection-layer.d.ts.map +1 -1
  228. package/dist-types/layer/snap-guide-layer.d.ts +23 -0
  229. package/dist-types/layer/snap-guide-layer.d.ts.map +1 -0
  230. package/dist-types/layout/absolute.d.ts +2 -2
  231. package/dist-types/layout/card.d.ts +2 -2
  232. package/dist-types/layout/linear-horizontal.d.ts +2 -2
  233. package/dist-types/layout/linear-vertical.d.ts +2 -2
  234. package/dist-types/layout/table.d.ts +3 -3
  235. package/dist-types/license/license.d.ts.map +1 -1
  236. package/dist-types/math/component-pose.d.ts +51 -0
  237. package/dist-types/math/component-pose.d.ts.map +1 -0
  238. package/dist-types/math/index.d.ts +3 -0
  239. package/dist-types/math/index.d.ts.map +1 -0
  240. package/dist-types/math/pose6dof.d.ts +93 -0
  241. package/dist-types/math/pose6dof.d.ts.map +1 -0
  242. package/dist-types/navigation/index.d.ts +7 -0
  243. package/dist-types/navigation/index.d.ts.map +1 -0
  244. package/dist-types/navigation/nav-graph.d.ts +55 -0
  245. package/dist-types/navigation/nav-graph.d.ts.map +1 -0
  246. package/dist-types/navigation/path-planner.d.ts +29 -0
  247. package/dist-types/navigation/path-planner.d.ts.map +1 -0
  248. package/dist-types/navigation/reservation-table.d.ts +103 -0
  249. package/dist-types/navigation/reservation-table.d.ts.map +1 -0
  250. package/dist-types/navigation/types.d.ts +145 -0
  251. package/dist-types/navigation/types.d.ts.map +1 -0
  252. package/dist-types/placement/index.d.ts +3 -0
  253. package/dist-types/placement/index.d.ts.map +1 -0
  254. package/dist-types/placement/placement.d.ts +53 -0
  255. package/dist-types/placement/placement.d.ts.map +1 -0
  256. package/dist-types/search/index.d.ts +3 -0
  257. package/dist-types/search/index.d.ts.map +1 -0
  258. package/dist-types/search/scene-search-engine.d.ts +64 -0
  259. package/dist-types/search/scene-search-engine.d.ts.map +1 -0
  260. package/dist-types/search/search-overlay.d.ts +94 -0
  261. package/dist-types/search/search-overlay.d.ts.map +1 -0
  262. package/dist-types/things-scene/api/add-start.d.ts +25 -0
  263. package/dist-types/things-scene/api/add-start.d.ts.map +1 -1
  264. package/dist-types/things-scene/api/align.d.ts.map +1 -1
  265. package/dist-types/things-scene/api/distribute.d.ts.map +1 -1
  266. package/dist-types/things-scene/api/ids.d.ts +4 -1
  267. package/dist-types/things-scene/api/ids.d.ts.map +1 -1
  268. package/dist-types/things-scene/api/index.d.ts +1 -1
  269. package/dist-types/things-scene/api/index.d.ts.map +1 -1
  270. package/dist-types/things-scene/api/place.d.ts.map +1 -1
  271. package/dist-types/things-scene/api/zorder.d.ts.map +1 -1
  272. package/dist-types/things-scene/application-context.d.ts +62 -0
  273. package/dist-types/things-scene/application-context.d.ts.map +1 -1
  274. package/dist-types/things-scene/create.d.ts +43 -3
  275. package/dist-types/things-scene/create.d.ts.map +1 -1
  276. package/dist-types/things-scene/index.d.ts +29 -0
  277. package/dist-types/things-scene/index.d.ts.map +1 -1
  278. package/dist-types/things-scene/scene.d.ts +120 -2
  279. package/dist-types/things-scene/scene.d.ts.map +1 -1
  280. package/dist-types/threed/arrow-3d.d.ts +13 -4
  281. package/dist-types/threed/arrow-3d.d.ts.map +1 -1
  282. package/dist-types/threed/environments/base-environment.d.ts +17 -0
  283. package/dist-types/threed/environments/base-environment.d.ts.map +1 -0
  284. package/dist-types/threed/environments/cloudy-environment.d.ts +10 -0
  285. package/dist-types/threed/environments/cloudy-environment.d.ts.map +1 -0
  286. package/dist-types/threed/environments/factory-environment.d.ts +3 -3
  287. package/dist-types/threed/environments/factory-environment.d.ts.map +1 -1
  288. package/dist-types/threed/environments/home-environment.d.ts +3 -3
  289. package/dist-types/threed/environments/home-environment.d.ts.map +1 -1
  290. package/dist-types/threed/environments/office-environment.d.ts +3 -3
  291. package/dist-types/threed/environments/office-environment.d.ts.map +1 -1
  292. package/dist-types/threed/environments/rainy-environment.d.ts +10 -0
  293. package/dist-types/threed/environments/rainy-environment.d.ts.map +1 -0
  294. package/dist-types/threed/environments/studio-environment.d.ts +2 -3
  295. package/dist-types/threed/environments/studio-environment.d.ts.map +1 -1
  296. package/dist-types/threed/environments/sunny-environment.d.ts +10 -0
  297. package/dist-types/threed/environments/sunny-environment.d.ts.map +1 -0
  298. package/dist-types/threed/environments/warehouse-environment.d.ts +3 -3
  299. package/dist-types/threed/environments/warehouse-environment.d.ts.map +1 -1
  300. package/dist-types/threed/factories/backdrop.d.ts +541 -0
  301. package/dist-types/threed/factories/backdrop.d.ts.map +1 -0
  302. package/dist-types/threed/factories/banner.d.ts +16 -4
  303. package/dist-types/threed/factories/banner.d.ts.map +1 -1
  304. package/dist-types/threed/factories/camera.d.ts +12 -3
  305. package/dist-types/threed/factories/camera.d.ts.map +1 -1
  306. package/dist-types/threed/factories/cube.d.ts +11 -3
  307. package/dist-types/threed/factories/cube.d.ts.map +1 -1
  308. package/dist-types/threed/factories/cylinder.d.ts +1 -0
  309. package/dist-types/threed/factories/cylinder.d.ts.map +1 -1
  310. package/dist-types/threed/factories/decal.d.ts +516 -0
  311. package/dist-types/threed/factories/decal.d.ts.map +1 -0
  312. package/dist-types/threed/factories/floor-plate.d.ts +11 -0
  313. package/dist-types/threed/factories/floor-plate.d.ts.map +1 -0
  314. package/dist-types/threed/factories/gltf-object.d.ts +270 -38
  315. package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
  316. package/dist-types/threed/factories/group.d.ts +2 -0
  317. package/dist-types/threed/factories/group.d.ts.map +1 -0
  318. package/dist-types/threed/factories/light.d.ts +1 -0
  319. package/dist-types/threed/factories/light.d.ts.map +1 -1
  320. package/dist-types/threed/factories/line.d.ts +10 -0
  321. package/dist-types/threed/factories/line.d.ts.map +1 -0
  322. package/dist-types/threed/factories/ortholine.d.ts +10 -0
  323. package/dist-types/threed/factories/ortholine.d.ts.map +1 -0
  324. package/dist-types/threed/factories/polygon.d.ts +19 -0
  325. package/dist-types/threed/factories/polygon.d.ts.map +1 -1
  326. package/dist-types/threed/factories/polyline.d.ts +10 -0
  327. package/dist-types/threed/factories/polyline.d.ts.map +1 -0
  328. package/dist-types/threed/factories/rect.d.ts.map +1 -1
  329. package/dist-types/threed/factories/sphere.d.ts +6 -0
  330. package/dist-types/threed/factories/sphere.d.ts.map +1 -1
  331. package/dist-types/threed/factories/sprite.d.ts +11 -3
  332. package/dist-types/threed/factories/sprite.d.ts.map +1 -1
  333. package/dist-types/threed/factories/triangle.d.ts.map +1 -1
  334. package/dist-types/threed/factories/wall.d.ts +11 -3
  335. package/dist-types/threed/factories/wall.d.ts.map +1 -1
  336. package/dist-types/threed/floor/floor.d.ts.map +1 -1
  337. package/dist-types/threed/handle-3d.d.ts +21 -0
  338. package/dist-types/threed/handle-3d.d.ts.map +1 -0
  339. package/dist-types/threed/html/elements.d.ts.map +1 -1
  340. package/dist-types/threed/index.d.ts +24 -0
  341. package/dist-types/threed/index.d.ts.map +1 -1
  342. package/dist-types/threed/managers/box-selection-manager.d.ts +26 -0
  343. package/dist-types/threed/managers/box-selection-manager.d.ts.map +1 -0
  344. package/dist-types/threed/managers/camera-bookmark-manager.d.ts +66 -32
  345. package/dist-types/threed/managers/camera-bookmark-manager.d.ts.map +1 -1
  346. package/dist-types/threed/managers/camera-manager.d.ts +9 -3
  347. package/dist-types/threed/managers/camera-manager.d.ts.map +1 -1
  348. package/dist-types/threed/managers/controls-manager.d.ts +25 -4
  349. package/dist-types/threed/managers/controls-manager.d.ts.map +1 -1
  350. package/dist-types/threed/managers/event-manager3d.d.ts +14 -0
  351. package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
  352. package/dist-types/threed/managers/gizmo-manager.d.ts +6 -0
  353. package/dist-types/threed/managers/gizmo-manager.d.ts.map +1 -1
  354. package/dist-types/threed/managers/gizmo-operation-manager.d.ts +54 -1
  355. package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
  356. package/dist-types/threed/managers/index.d.ts +3 -1
  357. package/dist-types/threed/managers/index.d.ts.map +1 -1
  358. package/dist-types/threed/managers/interaction-manager.d.ts +17 -0
  359. package/dist-types/threed/managers/interaction-manager.d.ts.map +1 -1
  360. package/dist-types/threed/managers/light-manager.d.ts +15 -0
  361. package/dist-types/threed/managers/light-manager.d.ts.map +1 -1
  362. package/dist-types/threed/managers/renderer-manager.d.ts +37 -0
  363. package/dist-types/threed/managers/renderer-manager.d.ts.map +1 -1
  364. package/dist-types/threed/managers/scene-manager.d.ts +12 -2
  365. package/dist-types/threed/managers/scene-manager.d.ts.map +1 -1
  366. package/dist-types/threed/managers/types.d.ts +4 -2
  367. package/dist-types/threed/managers/types.d.ts.map +1 -1
  368. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +154 -0
  369. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -0
  370. package/dist-types/threed/material-3d.d.ts +5 -2
  371. package/dist-types/threed/material-3d.d.ts.map +1 -1
  372. package/dist-types/threed/ratio-lock-utils.d.ts +9 -0
  373. package/dist-types/threed/ratio-lock-utils.d.ts.map +1 -0
  374. package/dist-types/threed/real-object-dom-element.d.ts +2 -0
  375. package/dist-types/threed/real-object-dom-element.d.ts.map +1 -1
  376. package/dist-types/threed/real-object-dom-texture.d.ts +9 -0
  377. package/dist-types/threed/real-object-dom-texture.d.ts.map +1 -1
  378. package/dist-types/threed/real-object-external-model.d.ts +24 -0
  379. package/dist-types/threed/real-object-external-model.d.ts.map +1 -0
  380. package/dist-types/threed/real-object-extrude.d.ts +16 -1
  381. package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
  382. package/dist-types/threed/real-object-gltf.d.ts +21 -11
  383. package/dist-types/threed/real-object-gltf.d.ts.map +1 -1
  384. package/dist-types/threed/real-object-group.d.ts +2 -0
  385. package/dist-types/threed/real-object-group.d.ts.map +1 -1
  386. package/dist-types/threed/real-object-line.d.ts +83 -0
  387. package/dist-types/threed/real-object-line.d.ts.map +1 -0
  388. package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
  389. package/dist-types/threed/real-object-plane-2d.d.ts +23 -0
  390. package/dist-types/threed/real-object-plane-2d.d.ts.map +1 -1
  391. package/dist-types/threed/real-object-service.d.ts +14 -0
  392. package/dist-types/threed/real-object-service.d.ts.map +1 -0
  393. package/dist-types/threed/real-object-sprite.d.ts +7 -1
  394. package/dist-types/threed/real-object-sprite.d.ts.map +1 -1
  395. package/dist-types/threed/real-object-text.d.ts +5 -0
  396. package/dist-types/threed/real-object-text.d.ts.map +1 -1
  397. package/dist-types/threed/real-object.d.ts +261 -7
  398. package/dist-types/threed/real-object.d.ts.map +1 -1
  399. package/dist-types/threed/text-editor-3d.d.ts +11 -0
  400. package/dist-types/threed/text-editor-3d.d.ts.map +1 -0
  401. package/dist-types/threed/texture/canvas-texture.d.ts +7 -0
  402. package/dist-types/threed/texture/canvas-texture.d.ts.map +1 -1
  403. package/dist-types/threed/texture/fillstyle-texture.d.ts +57 -0
  404. package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -0
  405. package/dist-types/threed/texture/text-texture.d.ts +15 -0
  406. package/dist-types/threed/texture/text-texture.d.ts.map +1 -1
  407. package/dist-types/threed/three-capability.d.ts +131 -15
  408. package/dist-types/threed/three-capability.d.ts.map +1 -1
  409. package/dist-types/threed/three-container.d.ts +0 -1
  410. package/dist-types/threed/three-container.d.ts.map +1 -1
  411. package/dist-types/threed/three-dimensional-container.d.ts +0 -1
  412. package/dist-types/threed/three-dimensional-container.d.ts.map +1 -1
  413. package/dist-types/threed/utils/anchor.d.ts +33 -0
  414. package/dist-types/threed/utils/anchor.d.ts.map +1 -0
  415. package/dist-types/threed/utils/dispose.d.ts.map +1 -1
  416. package/dist-types/threed/utils/polygon-shape.d.ts +21 -0
  417. package/dist-types/threed/utils/polygon-shape.d.ts.map +1 -0
  418. package/dist-types/threed/utils/tether.d.ts +46 -0
  419. package/dist-types/threed/utils/tether.d.ts.map +1 -0
  420. package/dist-types/threed/z-priority.d.ts +27 -0
  421. package/dist-types/threed/z-priority.d.ts.map +1 -0
  422. package/dist-types/tracker/tracker.d.ts +57 -0
  423. package/dist-types/tracker/tracker.d.ts.map +1 -0
  424. package/dist-types/transfer/carrier-line-capability.d.ts +95 -0
  425. package/dist-types/transfer/carrier-line-capability.d.ts.map +1 -0
  426. package/dist-types/transfer/centering-slot-strategy.d.ts +8 -0
  427. package/dist-types/transfer/centering-slot-strategy.d.ts.map +1 -0
  428. package/dist-types/transfer/fixed-slot-strategy.d.ts +8 -0
  429. package/dist-types/transfer/fixed-slot-strategy.d.ts.map +1 -0
  430. package/dist-types/transfer/index.d.ts +24 -0
  431. package/dist-types/transfer/index.d.ts.map +1 -0
  432. package/dist-types/transfer/pickup-helpers.d.ts +75 -0
  433. package/dist-types/transfer/pickup-helpers.d.ts.map +1 -0
  434. package/dist-types/transfer/simulation-clock.d.ts +45 -0
  435. package/dist-types/transfer/simulation-clock.d.ts.map +1 -0
  436. package/dist-types/transfer/tracer.d.ts +35 -0
  437. package/dist-types/transfer/tracer.d.ts.map +1 -0
  438. package/dist-types/transfer/transfer-helpers.d.ts +18 -0
  439. package/dist-types/transfer/transfer-helpers.d.ts.map +1 -0
  440. package/dist-types/transfer/transfer.d.ts +257 -0
  441. package/dist-types/transfer/transfer.d.ts.map +1 -0
  442. package/dist-types/transfer/transferable-mixin.d.ts +275 -0
  443. package/dist-types/transfer/transferable-mixin.d.ts.map +1 -0
  444. package/dist-types/transfer/types.d.ts +462 -0
  445. package/dist-types/transfer/types.d.ts.map +1 -0
  446. package/dist-types/transition/transition-effect.d.ts +117 -0
  447. package/dist-types/transition/transition-effect.d.ts.map +1 -0
  448. package/dist-types/types/bounding.d.ts +1 -1
  449. package/dist-types/types/bounding.d.ts.map +1 -1
  450. package/dist-types/types/capability.d.ts +59 -0
  451. package/dist-types/types/capability.d.ts.map +1 -0
  452. package/dist-types/types/component.d.ts +6 -177
  453. package/dist-types/types/component.d.ts.map +1 -1
  454. package/dist-types/types/event.d.ts +57 -0
  455. package/dist-types/types/event.d.ts.map +1 -1
  456. package/dist-types/types/polygon-path-arc.d.ts +72 -0
  457. package/dist-types/types/polygon-path-arc.d.ts.map +1 -0
  458. package/dist-types/types/polygon-path.d.ts +153 -0
  459. package/dist-types/types/polygon-path.d.ts.map +1 -0
  460. package/package.json +13 -2
  461. package/things-scene-min.js +12 -13
  462. package/things-scene-min.js.map +1 -1
  463. package/things-scene-transfer.mjs +7 -0
  464. package/things-scene.mjs +8 -9
  465. package/things-scene.mjs.map +1 -1
@@ -0,0 +1,58 @@
1
+ import type { LoadTracker } from './load-tracker.js';
2
+ import type { DataLagTracker } from './data-lag-tracker.js';
3
+ export declare class LoadingOverlay {
4
+ private _tracker?;
5
+ private _lagTracker?;
6
+ private _container?;
7
+ private _targetElement?;
8
+ private _updateTimer?;
9
+ private _visible;
10
+ private _manualOpen;
11
+ /**
12
+ * 로딩 취소 콜백. 호스트(앱)가 "무엇이 취소인지"를 정의한다.
13
+ * 미지정 시 window.history.back()(뒤로가기)으로 폴백한다.
14
+ */
15
+ onCancel?: () => void;
16
+ private _headerEl?;
17
+ private _progressFillEl?;
18
+ private _progressTextEl?;
19
+ private _phaseListEl?;
20
+ private _phaseRenderedCount;
21
+ private _pendingListEl?;
22
+ private _lagSectionEl?;
23
+ private _footerRowEl?;
24
+ attach(targetElement: HTMLElement, tracker?: LoadTracker, lagTracker?: DataLagTracker): void;
25
+ toggle(): void;
26
+ show(): void;
27
+ hide(): void;
28
+ destroy(): void;
29
+ get isVisible(): boolean;
30
+ get isAttached(): boolean;
31
+ private _show;
32
+ private _hide;
33
+ private _update;
34
+ private _updateProgress;
35
+ private _updatePhaseList;
36
+ private _updateAssetList;
37
+ private _updateLagDisplay;
38
+ private _renderHistorySummary;
39
+ /**
40
+ * 게이지 좌표 계산 — **baseline 은 항상 트랙 중심(50%)**, 좌우 대칭 스케일로 매핑한다.
41
+ * (tracker 가 워밍업 중에도 러닝 평균을 baseline 으로 주므로 baseline 은 늘 [min,max] 안의 실제 값.)
42
+ * 반경 R = 중심에서 더 먼 극단까지 거리 = max(baseline−min, max−baseline), 최소 ±1초 floor.
43
+ * 먼 쪽 극단만 끝(0% / 100%)에 닿고, 가까운 쪽 극단은 안쪽에 놓인다 —
44
+ * 시각적 거리 = 실제 ms 편차에 정비례. cur<baseline→왼쪽(leading), cur>baseline→오른쪽(lagging).
45
+ */
46
+ private _lagGauge;
47
+ /** 중심(50%)→cur 채움 막대의 left/width CSS. */
48
+ private _lagFill;
49
+ private _renderLagSection;
50
+ private _createPendingRow;
51
+ private _updatePendingRow;
52
+ private _updateLagSection;
53
+ private _shortUrl;
54
+ /** 로딩 취소 — 오버레이를 닫고, onCancel 지정 시 그것을, 아니면 브라우저 뒤로가기. */
55
+ private _cancel;
56
+ private _buildDOM;
57
+ }
58
+ //# sourceMappingURL=loading-overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-overlay.d.ts","sourceRoot":"","sources":["../../src/diagnostics/loading-overlay.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAwB,MAAM,mBAAmB,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,uBAAuB,CAAA;AAiDrE,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,YAAY,CAAC,CAAgC;IACrD,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,WAAW,CAAQ;IAE3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAGrB,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,mBAAmB,CAAI;IAC/B,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,aAAa,CAAC,CAAa;IACnC,OAAO,CAAC,YAAY,CAAC,CAAa;IAElC,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI;IAsC5F,MAAM,IAAI,IAAI;IAUd,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;IAKZ,OAAO,IAAI,IAAI;IAYf,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAID,OAAO,CAAC,KAAK;IA4Bb,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,OAAO;IAkCf,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,gBAAgB;IAsDxB,OAAO,CAAC,gBAAgB;IAwCxB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,qBAAqB;IA8B7B;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;IAYjB,yCAAyC;IACzC,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,iBAAiB;IA4CzB,OAAO,CAAC,SAAS;IAOjB,0DAA0D;IAC1D,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,SAAS;CA2GlB"}
@@ -8,6 +8,12 @@ interface ResidentData {
8
8
  }>;
9
9
  }
10
10
  declare class SceneMetrics {
11
+ /**
12
+ * Opt-in 게이트. 디폴트 OFF — Chrome 확장이 없을 때 hot path 측정 비용 0.
13
+ * 확장의 injected.js 가 scene 발견 시 enable() 호출.
14
+ * 확장 미설치 사용자는 카운터 증가 / performance.now() / FrameClock 측정 모두 건너뜀.
15
+ */
16
+ enabled: boolean;
11
17
  drawCount: number;
12
18
  drawTimeSum: number;
13
19
  drawTimeLast: number;
@@ -18,6 +24,10 @@ declare class SceneMetrics {
18
24
  private _lastSnapshotTime;
19
25
  private _frameCount;
20
26
  private _getResidents;
27
+ /** 측정 활성화 — 누적된 stale 카운터를 리셋하고 게이트를 켠다. */
28
+ enable(): void;
29
+ /** 측정 비활성화 — hot path 다시 0 비용. */
30
+ disable(): void;
21
31
  /**
22
32
  * Component/Scene/ReferenceMap에서 resident 데이터를 제공하는 함수를 등록한다.
23
33
  * things-scene/index.ts에서 모든 모듈 로드 후 1회 호출.
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/diagnostics/metrics.ts"],"names":[],"mappings":"AAQA,UAAU,YAAY;IACpB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,0BAA0B,EAAE,MAAM,CAAA;IAClC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC7D;AAED,cAAM,YAAY;IAEhB,SAAS,SAAI;IACb,WAAW,SAAI;IACf,YAAY,SAAI;IAGhB,eAAe,SAAI;IAGnB,YAAY,SAAI;IAGhB,QAAQ,SAAI;IACZ,SAAS,SAAI;IAGb,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,WAAW,CAAI;IAGvB,OAAO,CAAC,aAAa,CAAoC;IAEzD;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,YAAY;IAI5C;;;OAGG;IACH,UAAU,IAAI,IAAI;IAIlB;;;;OAIG;IACH,QAAQ;;;;;gBA/C6B,MAAM;kBAAQ,MAAM;;;;;;;;;;CAwF1D;AAED,eAAO,MAAM,OAAO,cAAqB,CAAA"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/diagnostics/metrics.ts"],"names":[],"mappings":"AAQA,UAAU,YAAY;IACpB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,0BAA0B,EAAE,MAAM,CAAA;IAClC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC7D;AAED,cAAM,YAAY;IAChB;;;;OAIG;IACH,OAAO,UAAQ;IAGf,SAAS,SAAI;IACb,WAAW,SAAI;IACf,YAAY,SAAI;IAGhB,eAAe,SAAI;IAGnB,YAAY,SAAI;IAGhB,QAAQ,SAAI;IACZ,SAAS,SAAI;IAGb,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,WAAW,CAAI;IAGvB,OAAO,CAAC,aAAa,CAAoC;IAEzD,4CAA4C;IAC5C,MAAM,IAAI,IAAI;IAad,kCAAkC;IAClC,OAAO,IAAI,IAAI;IAIf;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,YAAY;IAI5C;;;OAGG;IACH,UAAU,IAAI,IAAI;IAIlB;;;;OAIG;IACH,QAAQ;;;;;gBAzE6B,MAAM;kBAAQ,MAAM;;;;;;;;;;CAsH1D;AAED,eAAO,MAAM,OAAO,cAAqB,CAAA"}
@@ -1,3 +1,5 @@
1
- export declare function setShadow(context: CanvasRenderingContext2D, shadow: any, component: any): void;
1
+ import type { Component } from '../types/component';
2
+ import type { Shadow } from '../interfaces/rendering';
3
+ export declare function setShadow(context: CanvasRenderingContext2D, shadow: Shadow, component: Component): void;
2
4
  export declare function resetShadow(context: CanvasRenderingContext2D): void;
3
5
  //# sourceMappingURL=shadow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/effect/shadow.ts"],"names":[],"mappings":"AAWA,wBAAgB,SAAS,CAAC,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,QASvF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,wBAAwB,QAE5D"}
1
+ {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/effect/shadow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AA6CrD,wBAAgB,SAAS,CACvB,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,GACnB,IAAI,CAWN;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAEnE"}
@@ -4,5 +4,6 @@ import './shift-handler.js';
4
4
  import './zoom-handler.js';
5
5
  import './paste-handler.js';
6
6
  import './waypoint-handler.js';
7
+ import './transition-handler.js';
7
8
  export { default as EventMap } from './event-map.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/event-map/index.ts"],"names":[],"mappings":"AAIA,OAAO,uBAAuB,CAAA;AAC9B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,uBAAuB,CAAA;AAE9B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/event-map/index.ts"],"names":[],"mappings":"AAIA,OAAO,uBAAuB,CAAA;AAC9B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transition-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition-handler.d.ts","sourceRoot":"","sources":["../../src/event-map/transition-handler.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ import { type SegmentTopology, type SegmentBounds, type MatchTolerance } from './segment-topology.js';
2
+ interface SegmentLike {
3
+ state?: {
4
+ id?: string;
5
+ };
6
+ parent?: any;
7
+ rootModel?: any;
8
+ root?: any;
9
+ getSegmentTopology(): SegmentTopology;
10
+ }
11
+ /**
12
+ * Component tree 의 *_getSegmentTopology 를 노출하는 component_* 모두 수집.
13
+ * 자기 자신 제외. id 없는 컴포넌트 제외 (= downstreamRef target 으로 사용 불가).
14
+ *
15
+ * traversal 시작점 — *_self.parent_* (= model-layer 등 sibling 영역). 만약
16
+ * sibling 만으로 부족하면 *_rootModel 또는 root 의 재귀 descend_* 까지. things-
17
+ * scene 의 root 는 RootContainer 라 *_.components 가 layer 들_*만 — 우리 segment
18
+ * 는 model-layer 자식 이므로 sibling 또는 재귀 필요.
19
+ */
20
+ export declare function collectAdjacentSegments(startRoot: any, exclude: any): Array<{
21
+ id: string;
22
+ topology: SegmentTopology;
23
+ bounds?: SegmentBounds;
24
+ }>;
25
+ /**
26
+ * 자기 outbound 의 *_가장 가까운 downstream segment id_*. inbound 가진 후보들
27
+ * 만 매칭. multi-outbound segment 의 경우 outbound[0] 만 — 분기 segment 는
28
+ * 자체 logic 으로 override 권장.
29
+ *
30
+ * traversal 시작점: self.parent (= 직접 sibling 영역) 우선, 부재 시 rootModel
31
+ * → root fallback. RootContainer 의 .components 가 layer 들이라 *_재귀 descend_*
32
+ * 까지 처리하는 collectAdjacentSegments 사용.
33
+ */
34
+ export declare function inferDownstreamId(self: SegmentLike, tolerance?: MatchTolerance): string | null;
35
+ export {};
36
+ //# sourceMappingURL=auto-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-route.d.ts","sourceRoot":"","sources":["../../src/flow/auto-route.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAErH,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACvB,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,kBAAkB,IAAI,eAAe,CAAA;CACtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,GAAG,EACd,OAAO,EAAE,GAAG,GACX,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAC;IAAC,MAAM,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC,CAmC1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EACjB,SAAS,CAAC,EAAE,cAAc,GACzB,MAAM,GAAG,IAAI,CAwBf"}
@@ -0,0 +1,26 @@
1
+ /** XZ 평면 anchor (scene world 좌표; Y=floor-level 무시). */
2
+ export interface FaceAnchor {
3
+ worldPos: {
4
+ x: number;
5
+ z: number;
6
+ };
7
+ /** 진행 방향 단위 vector (carrier 속도 vector 와 일치). */
8
+ direction: {
9
+ x: number;
10
+ z: number;
11
+ };
12
+ /** 면 절반 길이 — segment 겹침 판정용. */
13
+ halfSpan?: number;
14
+ }
15
+ /**
16
+ * state(left/top/width/height/rotation) → 4면 anchor. kind='inbound' 면 inward(받는 면),
17
+ * 'outbound' 면 outward(내보내는 면). 회전 반영.
18
+ */
19
+ export declare function rectFaceAnchors(state: {
20
+ left?: number;
21
+ top?: number;
22
+ width?: number;
23
+ height?: number;
24
+ rotation?: number;
25
+ }, kind: 'inbound' | 'outbound'): FaceAnchor[];
26
+ //# sourceMappingURL=face-anchors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"face-anchors.d.ts","sourceRoot":"","sources":["../../src/flow/face-anchors.ts"],"names":[],"mappings":"AASA,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAClC,gDAAgD;IAChD,SAAS,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1F,IAAI,EAAE,SAAS,GAAG,UAAU,GAC3B,UAAU,EAAE,CAiCd"}
@@ -0,0 +1,122 @@
1
+ import { sinksForDestination, componentForNode, nodeIdOf, isRoutingTarget, type BalancingPolicy, allDestinations } from './flow-graph-coordinator.js';
2
+ import { type FlowGraph } from './flow-graph.js';
3
+ import { type FlowGraphIssue } from './flow-graph-validator.js';
4
+ export interface RoutingResult {
5
+ /** 다음 노드 id (graph node id — state.id ?? refid). */
6
+ targetId: string;
7
+ /** 다음 노드 컴포넌트 (이미 resolved). */
8
+ component: any;
9
+ /**
10
+ * 결정 origin — Phase 7 (graph overlay) 에서 색 구분.
11
+ * - explicit: 명시 RoutingLinks edge
12
+ * - inferred: capability 기반 자동 추론
13
+ * 현재는 구분 미확정 — Phase 7 에서 coordinator 가 metadata 부착 후 정확화.
14
+ */
15
+ origin: 'explicit' | 'inferred';
16
+ }
17
+ /**
18
+ * 분기점이 carrier 를 어느 하류로 보낼지 — 단일 진입점.
19
+ *
20
+ * @param fromComp 결정 주체 (joint / sorter / chute 등)
21
+ * @param carrier 결정 대상 — `carrier.state.meta.destination` 으로 목적지 매칭
22
+ * @param options Phase B2 — balancing policy 명시 override. 미명시 시 host/root state 의
23
+ * balancingPolicy / routingBalancingPolicy → default 'round-robin'.
24
+ * @returns 다음 노드 — 미상 / 도달 불가 시 null (호출부가 fallback)
25
+ */
26
+ export declare function next(fromComp: any, carrier?: any, options?: {
27
+ policy?: BalancingPolicy;
28
+ }): RoutingResult | null;
29
+ /**
30
+ * fromComp 의 직속 outbound[0] — chute 의 flush target 같은 단순 하류 1순위.
31
+ * resolveNextHop 과 다른 점: destination 매칭·tie-break 없이 *_그래프 첫 outbound_* 만.
32
+ */
33
+ export declare function downstream(fromComp: any): {
34
+ id: string;
35
+ component: any;
36
+ } | null;
37
+ /**
38
+ * fromComp 에서 도달 가능한 *_RoutingTarget value_* 목록 — generator 의 destination 후보 등.
39
+ */
40
+ export declare function reachableDestinations(fromComp: any): string[];
41
+ /**
42
+ * startId 기반 reachableDestinations — startId 가 graph node id (= componentForNode 의 key).
43
+ * generator 처럼 *_자기 컴포넌트가 startId 가 아닌_* 경우 (별도 시작점) 에 사용.
44
+ */
45
+ export declare function reachableDestinationsFrom(root: any, startId: string): string[];
46
+ /** destination + 그 destination 의 sink 들의 가중치 합. */
47
+ export interface WeightedDestination {
48
+ /** destination value (예: "서울"). */
49
+ value: string;
50
+ /**
51
+ * 가중치 합. 각 sink 의 측정:
52
+ * - routingWeight() 명시 시 → 그 값 (사용자 override)
53
+ * - 미명시 시 → 그 sink 의 *_incoming edge 수_* (경로 갯수 = 자연 capacity)
54
+ * - incoming 0 fallback = 1
55
+ */
56
+ weight: number;
57
+ }
58
+ /**
59
+ * reachableDestinationsFrom 의 *_가중치 버전_*. item-generator 의 _pickDestination 이 가중치
60
+ * 비례 random pick 에 사용.
61
+ *
62
+ * # 가중치 측정의 의미 (2026-06-17 사용자 통찰)
63
+ *
64
+ * 처음 (B3) 은 sink 수 비례 (각 sink weight 1). 그러나 사용자 통찰:
65
+ * "실제 생성 밸런스는 *_경로의 갯수_* 에 따라야 한다"
66
+ *
67
+ * 즉 destination 의 처리 capacity = *_그 destination 의 sink 들이 받을 수 있는 path 수_*.
68
+ * 사용자가 board 만들 때 경로 갯수를 의도적으로 설계 — 그 자체가 의도 표현.
69
+ *
70
+ * # 예
71
+ * 부산: 1 stockpile, *_3 chute_* 가 도달 → weight 3
72
+ * 제주: 2 stockpile, 각 1 chute 도달 → weight 2
73
+ * → 부산 60% / 제주 40% 자연 생성
74
+ *
75
+ * # 명시 override (routingWeight) 의 역할
76
+ * 사용자가 `state.weight = N` 명시했다면 *_그래프 구조 무관 강제로 N_*. 드문 시나리오 —
77
+ * 자연 capacity 측정과 다른 비중을 부여하고 싶을 때만.
78
+ *
79
+ * # 결정론 / 비용
80
+ * incoming edge 수 = 그래프의 in-degree (한 번 walk). graph cache 의 root 당 1 회 측정.
81
+ */
82
+ export declare function reachableDestinationsWeightedFrom(root: any, startId: string): WeightedDestination[];
83
+ /**
84
+ * FlowGraph 자체 — diagnostics / overlay 용. hot path 는 next() / downstream() 사용 권장.
85
+ */
86
+ export declare function graphFor(root: any): FlowGraph | null;
87
+ /**
88
+ * Phase 3 — FlowGraph invariant 검증. board load / topology change 후 호출 권장.
89
+ * orphan / dead-end / cycle / unreachable-target 의 4 종 issue 신고.
90
+ *
91
+ * - error 가 있으면 시뮬 시작 차단 권장 (호출부 결정)
92
+ * - warning 은 사용자 안내 (UI overlay)
93
+ * - 의도 cycle (LoopSorter 등) 은 capability-based loopCapableIds 로 skip
94
+ *
95
+ * @returns issues — 빈 array 면 통과
96
+ */
97
+ export declare function validate(root: any): FlowGraphIssue[];
98
+ export { componentForNode, nodeIdOf, isRoutingTarget, sinksForDestination, allDestinations };
99
+ /**
100
+ * FlowEngine namespace — call site 가 `FlowEngine.next(this, carrier)` 형태로 사용.
101
+ * (개별 함수 export 와 동일 — 호출 스타일 옵션.)
102
+ */
103
+ /**
104
+ * WeightedDestination[] 에서 가중치 비례 random pick. item-generator 의 _pickDestination
105
+ * 본문 로직 — helper 로 분리하여 단위 테스트 가능 (사용자 의문, 2026-06-17 — E2E 검증).
106
+ *
107
+ * 결정론 아님 (Math.random 사용). 통계적 분산만 보장.
108
+ */
109
+ export declare function pickWeightedDestination(weighted: WeightedDestination[]): string | undefined;
110
+ export declare const FlowEngine: {
111
+ next: typeof next;
112
+ downstream: typeof downstream;
113
+ reachableDestinations: typeof reachableDestinations;
114
+ reachableDestinationsFrom: typeof reachableDestinationsFrom;
115
+ reachableDestinationsWeightedFrom: typeof reachableDestinationsWeightedFrom;
116
+ pickWeightedDestination: typeof pickWeightedDestination;
117
+ graphFor: typeof graphFor;
118
+ validate: typeof validate;
119
+ };
120
+ export type { FlowGraphIssue } from './flow-graph-validator.js';
121
+ export type { BalancingPolicy } from './flow-graph-coordinator.js';
122
+ //# sourceMappingURL=flow-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-engine.d.ts","sourceRoot":"","sources":["../../src/flow/flow-engine.ts"],"names":[],"mappings":"AA0BA,OAAO,EAEL,mBAAmB,EACnB,gBAAgB,EAChB,QAAQ,EACR,eAAe,EAEf,KAAK,eAAe,EACpB,eAAe,EAChB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1F,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAA;IAChB,gCAAgC;IAChC,SAAS,EAAE,GAAG,CAAA;IACd;;;;;OAKG;IACH,MAAM,EAAE,UAAU,GAAG,UAAU,CAAA;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,eAAe,CAAA;CAAE,GAAG,aAAa,GAAG,IAAI,CAO/G;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,GAAG,CAAA;CAAE,GAAG,IAAI,CAS/E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,EAAE,CAI7D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAa9E;AAED,mDAAmD;AACnD,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAmCnG;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAEpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,cAAc,EAAE,CAsBpD;AAID,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAA;AAE5F;;;GAGG;AACH;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,MAAM,GAAG,SAAS,CAa3F;AAED,eAAO,MAAM,UAAU;;;;;;;;;CAStB,CAAA;AAGD,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG/D,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA"}
@@ -0,0 +1,80 @@
1
+ import { type FlowGraph, type NextHopCandidate } from './flow-graph.js';
2
+ import { type FlowGraphIssue } from './flow-graph-validator.js';
3
+ /** RoutingTarget capability — sink 가 자기 담당 행선지 값을 자가선언. */
4
+ export interface RoutingTarget {
5
+ /** 담당 행선지 값 (매칭 전용 — findById 대상 아님). */
6
+ routingDestination(): string;
7
+ /** (optional, Phase B1) 같은 destination N sink 분산 가중치. 미구현 = 1. */
8
+ routingWeight?(): number;
9
+ }
10
+ export declare function isRoutingTarget(c: any): c is RoutingTarget;
11
+ /**
12
+ * board load 시점 검출된 validate issues — UI overlay / 사용자 안내 진입점.
13
+ * 빈 array = 통과. error 가 있으면 호출부가 시뮬 시작 차단 권장.
14
+ */
15
+ export declare function flowGraphIssues(root: any): FlowGraphIssue[];
16
+ /** root 의 방향 그래프 (캐시). 노드 0 이면 null. */
17
+ export declare function flowGraphFor(root: any): FlowGraph | null;
18
+ /** 행선지 값 → 담당 sink 노드 id 들. */
19
+ export declare function sinksForDestination(root: any, destination: string): string[];
20
+ /** 노드 id → 컴포넌트. */
21
+ export declare function componentForNode(root: any, id: string): any;
22
+ /** root 전체의 행선지 값 목록 (중복 제거). generator 가 후보로 사용. */
23
+ export declare function allDestinations(root: any): string[];
24
+ /** 컴포넌트의 그래프 노드 id (id ?? refid). 분기점이 자기 노드 식별에. */
25
+ export declare function nodeIdOf(c: any): string | undefined;
26
+ /**
27
+ * Phase B2 — balancing 정책.
28
+ * - index : outbound index 순 첫 후보 (= legacy 동작)
29
+ * - round-robin : 같은 hops 동률 후보 사이 순환 (default)
30
+ * - weight : 동률 후보의 target sink 의 routingWeight 비례 weighted-round-robin
31
+ * (random 회피 — 결정론 보장)
32
+ * - utilization : 동률 후보의 target sink 의 점유율 (inventoryCount / capacity) 가장 낮은
33
+ */
34
+ export type BalancingPolicy = 'index' | 'round-robin' | 'weight' | 'utilization';
35
+ /** per-root balancing state — round-robin counter. root 가 새로 생기면 자동 초기화 (cache 와 동일). */
36
+ export interface BalancingState {
37
+ /** hostId → counter. round-robin / weight 정책이 사용. */
38
+ counters: Map<string, number>;
39
+ }
40
+ /**
41
+ * Phase B2 balancing — 동률 후보 중 정책으로 선택. *_Internal helper, exported for unit test_*.
42
+ */
43
+ export declare function applyPolicy(policy: BalancingPolicy, hostId: string, state: BalancingState, tied: NextHopCandidate[], components: Map<string, any>): NextHopCandidate;
44
+ /**
45
+ * 분기점(joint/sorter)이 carrier 를 어느 하류로 보낼지 — 목적지 지향 next-hop.
46
+ * 반환 = 고른 *하류 이웃 노드 id* (= 그 OUT 의 연결 대상). 없으면 null (목적지
47
+ * 미상/도달 불가/그래프 없음 → 호출부가 기존 로직 fallback). 호출부는 이 id 로
48
+ * 자기 port/opening(targetRef/neighborId) 을 매칭 — index 정렬 불일치 회피.
49
+ *
50
+ * # 절차
51
+ * 1. carrier.meta.destination(행선지 값) → 그 값을 담당하는 sink 노드들
52
+ * (없으면 dest 자체를 노드 id 로 — 단일 sink fallback).
53
+ * 2. nextHopsToAnyDetailed — 각 outbound 의 가까운 sink + hops 측정. 도달 불가
54
+ * outbound 는 자연 제외.
55
+ * 3. canReceive=true 후보만 필터 (capacity-reactive). 전부 막힘 → 최단으로 대기.
56
+ * 4. *_도달 가능한 모든 outbound_* 에 balancing policy 적용 (hops 동률 제약 없음).
57
+ *
58
+ * # 왜 hops 동률 제약을 두지 않는가 (Phase B6 의 본질 결정, 2026-06-17)
59
+ * "효율 (최단 hops)" 과 "분산 (throughput / capacity)" 의 두 가치가 충돌하면, 시스템
60
+ * 이 자동 선택할 수 없다 — 사용자 의도가 어느 쪽인지 *_시스템은 모름_*. 추측은
61
+ * 마술적이지만 잘못됐을 때 제어 불가.
62
+ *
63
+ * 그러나 *_사용자가 같은 destination 의 N sink 를 board 에 만든 사실 자체_* 가
64
+ * 이미 의도의 표현이다. 효율만 원했다면 1 개만 만들었을 것 — N 개 만든 것은:
65
+ * - "이 destination 의 capacity 를 N 배로" (예: chute 막힘 회피)
66
+ * - "후속 처리 N 라인 동시 부하" (throughput)
67
+ * 어느 쪽이든 *_분산 우선_* 의 표현.
68
+ *
69
+ * 따라서 default = *_모든 도달 가능 sink 사이 분산_* (hops 무관). 효율 우선 시나리오
70
+ * (드물게 있다면) 는 향후 `'shortest'` 같은 opt-in 정책으로 *_명시_* 표현하면 됨.
71
+ *
72
+ * # Phase B2 — 정책 enum
73
+ * policy 결정 우선순위: options.policy → per-host (self.state.balancingPolicy)
74
+ * → root (root.state.routingBalancingPolicy) → default 'round-robin'.
75
+ * 모든 정책은 *_도달 가능한 receivable 전체_* 에 적용 (= Phase B6 의 원칙).
76
+ */
77
+ export declare function resolveNextHop(self: any, carrier: any, options?: {
78
+ policy?: BalancingPolicy;
79
+ }): string | null;
80
+ //# sourceMappingURL=flow-graph-coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-graph-coordinator.d.ts","sourceRoot":"","sources":["../../src/flow/flow-graph-coordinator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAyC,KAAK,SAAS,EAAsB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElI,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG1F,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,kBAAkB,IAAI,MAAM,CAAA;IAC5B,kEAAkE;IAClE,aAAa,CAAC,IAAI,MAAM,CAAA;CACzB;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,aAAa,CAE1D;AA+LD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,cAAc,EAAE,CAE3D;AAED,wCAAwC;AACxC,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAGxD;AAED,+BAA+B;AAC/B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5E;AAED,oBAAoB;AACpB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,GAAG,CAE3D;AAED,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,CAGnD;AAED,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAEnD;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,aAAa,CAAA;AAEhF,yFAAyF;AACzF,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC9B;AAiCD;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,gBAAgB,EAAE,EACxB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,gBAAgB,CAsClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,eAAe,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAqC7G"}
@@ -0,0 +1,33 @@
1
+ import type { FlowGraph } from './flow-graph.js';
2
+ export type IssueSeverity = 'error' | 'warning';
3
+ export type IssueCode = 'orphan-source' | 'dead-end' | 'cycle' | 'unreachable-target' | 'invalid-weight';
4
+ export interface FlowGraphIssue {
5
+ severity: IssueSeverity;
6
+ code: IssueCode;
7
+ nodeId?: string;
8
+ /** cycle 의 경우 노드 체인 (정렬: 시작 = lexically min id, 결정론). */
9
+ cycle?: string[];
10
+ message: string;
11
+ }
12
+ export interface ValidateOptions {
13
+ /**
14
+ * 의도 cycle 자격 — 해당 노드 id 의 cycle 은 skip (예: LoopSorter / LoopConveyor).
15
+ * 호출자가 root walk 로 isLoop capability 식별 후 전달. validator 자체는 순수.
16
+ */
17
+ loopCapableIds?: ReadonlySet<string>;
18
+ /**
19
+ * RoutingTarget 자격 노드 id 목록 — sink (dead-end 자격 면제) 판단 + unreachable 검사.
20
+ * coordinator 의 destToSinks 키로 도출 가능.
21
+ */
22
+ routingTargetIds?: ReadonlySet<string>;
23
+ /**
24
+ * (Phase B1) routingWeight 추출 결과 — nodeId → weight. 미선언/default 1 인 노드는
25
+ * 생략 가능. validator 가 weight ≤ 0 의 invalid-weight warning 검출.
26
+ */
27
+ routingWeights?: ReadonlyMap<string, number>;
28
+ }
29
+ /**
30
+ * graph 의 invariants 검증. 같은 입력 → 같은 결과 (결정론).
31
+ */
32
+ export declare function validate(graph: FlowGraph, opts?: ValidateOptions): FlowGraphIssue[];
33
+ //# sourceMappingURL=flow-graph-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-graph-validator.d.ts","sourceRoot":"","sources":["../../src/flow/flow-graph-validator.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAA;AAC/C,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,UAAU,GAAG,OAAO,GAAG,oBAAoB,GAAG,gBAAgB,CAAA;AAExG,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,aAAa,CAAA;IACvB,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAEpC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAEtC;;;OAGG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,GAAE,eAAoB,GAAG,cAAc,EAAE,CA8FvF"}
@@ -0,0 +1,76 @@
1
+ import { type SegmentTopology, type SegmentBounds, type MatchTolerance } from './segment-topology.js';
2
+ /** 그래프 노드 입력 — collectAdjacentSegments 출력과 동일 shape. */
3
+ export interface FlowGraphNode {
4
+ id: string;
5
+ topology: SegmentTopology;
6
+ bounds?: SegmentBounds;
7
+ /**
8
+ * 명시 링크 — 사용자가 *명시 id* 로 지정한 그래프 엣지. 인접(기하) 자동연결로는
9
+ * 못 잇는 *떨어진 타겟*(예: 슈트 → 멀리 있는 StockPile)을 연결. 인접 엣지에 *추가*
10
+ * (대체 아님). coordinator 가 RoutingLinks capability 에서 채운다. refid 아님(시스템
11
+ * auto-link 와 별개) — 사용자 명시 id.
12
+ */
13
+ links?: {
14
+ /** 이 노드 → target 노드 id(들). */
15
+ downstream?: string[];
16
+ /** source 노드 id(들) → 이 노드. */
17
+ upstream?: string[];
18
+ };
19
+ }
20
+ /** 산출된 방향 그래프. */
21
+ export interface FlowGraph {
22
+ /** id → 노드. */
23
+ nodes: Map<string, FlowGraphNode>;
24
+ /** id → outbound 별 연결 대상 id (없으면 null). index = outbound 순서. */
25
+ out: Map<string, Array<string | null>>;
26
+ /** 말단(outbound 연결 0) — 목적지 후보. */
27
+ sinks: Set<string>;
28
+ /** 진입원(inbound 연결 0). */
29
+ sources: Set<string>;
30
+ }
31
+ /**
32
+ * 노드 목록 → 방향 그래프. 간선은 matchOutbounds(anchor 정밀 + footprint 배달)
33
+ * 재사용 — 컨베이어 자동연결과 *동일 판정*이라 그래프가 실제 흐름과 일치.
34
+ */
35
+ export declare function buildFlowGraph(nodes: ReadonlyArray<FlowGraphNode>, tolerance?: MatchTolerance): FlowGraph;
36
+ /**
37
+ * fromId 의 *각 outbound* 에서 도달 가능한 노드 집합. 반환 index = outbound 순서.
38
+ * 연결 없는 outbound = 빈 집합. 분기점 next-hop 선택의 1차 재료.
39
+ */
40
+ export declare function reachableByOutbound(graph: FlowGraph, fromId: string): Set<string>[];
41
+ /**
42
+ * fromId 에서 destId 로 가까워지는 *outbound index 목록*, **최단 hop 우선 정렬**.
43
+ * 동률은 index 순(결정적). 여러 개면 상위(resolver)가 capacity 등으로 tie-break.
44
+ * 빈 배열 = 도달 불가(이 노드에선 막힘).
45
+ */
46
+ export declare function nextHops(graph: FlowGraph, fromId: string, destId: string): number[];
47
+ /**
48
+ * fromId 에서 destId 로 가는 *최단 outbound index 1개* (없으면 -1). resolver 가
49
+ * capacity 무관할 때의 기본 선택. capacity-reactive 는 nextHops 전체를 받아 거른다.
50
+ */
51
+ export declare function nextHop(graph: FlowGraph, fromId: string, destId: string): number;
52
+ /** fromId 가 destId 에 도달 가능한가 (어느 outbound 로든). dispatcher canReach 의 망 판정. */
53
+ export declare function canReach(graph: FlowGraph, fromId: string, destId: string): boolean;
54
+ /** fromId 에서 도달 가능한 *말단(sink) 노드 집합*. generator 가 보낼 수 있는 목적지 후보. */
55
+ export declare function reachableSinks(graph: FlowGraph, fromId: string): Set<string>;
56
+ /**
57
+ * fromId 에서 *목적지 값을 담당하는 여러 sink 중 아무거나* 로 가까워지는 outbound
58
+ * index 목록 (최단 hop 우선). 논리 목적지를 담당하는 물리 sink 가 여럿일 때
59
+ * (= 부하분산 여지). destIds = 그 목적지를 담당하는 sink 노드 id 들.
60
+ */
61
+ export declare function nextHopsToAny(graph: FlowGraph, fromId: string, destIds: Iterable<string>): number[];
62
+ /** Outbound 후보 — Phase B2 balancing 정책에서 hops 동률 그룹 + target sink id 사용. */
63
+ export interface NextHopCandidate {
64
+ /** outbound port index (FlowGraphNode.topology.outbounds 의 index, = graph.out 의 index). */
65
+ index: number;
66
+ /** 이 outbound 의 *_가까운 sink_* 까지의 최단 hop 수 (자기 포함 = 1). */
67
+ hops: number;
68
+ /** 그 hop 의 *_가까운 sink id_* (동률 시 lexical first — 결정론). */
69
+ target: string;
70
+ }
71
+ /**
72
+ * nextHopsToAny 의 *_상세 버전_* — index + hops + target sink id. balancing 정책이
73
+ * *_같은 hops 동률 그룹화_* + *_target sink 의 routingWeight 조회_* 등에 사용 (Phase B2).
74
+ */
75
+ export declare function nextHopsToAnyDetailed(graph: FlowGraph, fromId: string, destIds: Iterable<string>): NextHopCandidate[];
76
+ //# sourceMappingURL=flow-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-graph.d.ts","sourceRoot":"","sources":["../../src/flow/flow-graph.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAErH,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,eAAe,CAAA;IACzB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB;;;;;OAKG;IACH,KAAK,CAAC,EAAE;QACN,8BAA8B;QAC9B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;QACrB,8BAA8B;QAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;CACF;AAED,kBAAkB;AAClB,MAAM,WAAW,SAAS;IACxB,eAAe;IACf,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACjC,gEAAgE;IAChE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;IACtC,kCAAkC;IAClC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAClB,yBAAyB;IACzB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACrB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,EAAE,cAAc,GAAG,SAAS,CAwCzG;AA6BD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CASnF;AA8BD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAanF;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGhF;AAED,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAGlF;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAM5E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAEnG;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,2FAA2F;IAC3F,KAAK,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GACxB,gBAAgB,EAAE,CAwBpB"}
@@ -0,0 +1,36 @@
1
+ export interface DataScenario {
2
+ /** 이 시나리오의 carrier data — 경로의 모든 constraint AND merge. */
3
+ data: Record<string, any>;
4
+ /** sampling weight — default 1 (= 균등). 향후 demand-driven 등 확장. */
5
+ weight: number;
6
+ /** debug — 경로의 segment id 들. */
7
+ pathIds?: string[];
8
+ /**
9
+ * 경로의 *종착 sink id* (= carrier 의 최종 목적지). generator 가 carrier.meta.
10
+ * destination 에 주입 → 분기점이 목적지 지향 next-hop 라우팅(flow-graph.canReach)
11
+ * 으로 분기하게 될 토대. 미상이면 undefined (= 목적지 없는 carrier).
12
+ */
13
+ destination?: string;
14
+ }
15
+ interface SegmentLike {
16
+ state?: {
17
+ id?: string;
18
+ };
19
+ parent?: any;
20
+ rootModel?: any;
21
+ root?: any;
22
+ getSegmentTopology?: () => any;
23
+ }
24
+ /**
25
+ * 생성기 (= source) 부터 BFS — RoutingCapability 의 constraints 누적 + sink 도달
26
+ * 시 시나리오 추가. 결과: 가능 data 시나리오 list.
27
+ *
28
+ * @returns 데이터 시나리오 list (균등 weight). 빈 list = downstream 추론 실패.
29
+ */
30
+ export declare function enumerateDataScenarios(source: SegmentLike, maxDepth?: number): DataScenario[];
31
+ /**
32
+ * AND merge — 두 constraint 의 key-value 합치기. key 충돌 (= 다른 value) 시 null.
33
+ */
34
+ export declare function mergeConstraints(base: Record<string, any>, add: Record<string, any>): Record<string, any> | null;
35
+ export {};
36
+ //# sourceMappingURL=flow-introspection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-introspection.d.ts","sourceRoot":"","sources":["../../src/flow/flow-introspection.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACzB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAA;IACd,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACvB,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,kBAAkB,CAAC,EAAE,MAAM,GAAG,CAAA;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,QAAQ,SAAK,GACZ,YAAY,EAAE,CAmGhB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACvB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAO5B"}