@stephen-netu/design-system 0.1.0 → 0.2.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.
- package/LICENSE +25 -0
- package/README.md +53 -14
- package/{src → dist}/b0-app-shell/clarification-overlay/ClarificationOverlay.svelte +8 -8
- package/dist/b0-app-shell/clarification-overlay/ClarificationOverlay.svelte.d.ts +19 -0
- package/dist/b0-app-shell/clarification-overlay/ClarificationOverlay.svelte.d.ts.map +1 -0
- package/dist/b0-app-shell/clarification-overlay/index.d.ts +2 -0
- package/dist/b0-app-shell/clarification-overlay/index.d.ts.map +1 -0
- package/{src → dist}/b0-app-shell/command-bar/CommandBar.svelte +29 -29
- package/dist/b0-app-shell/command-bar/CommandBar.svelte.d.ts +35 -0
- package/dist/b0-app-shell/command-bar/CommandBar.svelte.d.ts.map +1 -0
- package/dist/b0-app-shell/index.d.ts +14 -0
- package/dist/b0-app-shell/index.d.ts.map +1 -0
- package/{src/b0-app-shell/index.ts → dist/b0-app-shell/index.js} +0 -1
- package/dist/base.css +138 -0
- package/{src → dist}/d0-data-viz/BarChart.svelte +2 -2
- package/dist/d0-data-viz/BarChart.svelte.d.ts +13 -0
- package/dist/d0-data-viz/BarChart.svelte.d.ts.map +1 -0
- package/{src → dist}/d0-data-viz/CheckpointBar.svelte +12 -12
- package/dist/d0-data-viz/CheckpointBar.svelte.d.ts +15 -0
- package/dist/d0-data-viz/CheckpointBar.svelte.d.ts.map +1 -0
- package/{src → dist}/d0-data-viz/CheckpointPill.svelte +14 -12
- package/dist/d0-data-viz/CheckpointPill.svelte.d.ts +14 -0
- package/dist/d0-data-viz/CheckpointPill.svelte.d.ts.map +1 -0
- package/dist/d0-data-viz/ConnectionHealth.svelte +366 -0
- package/dist/d0-data-viz/ConnectionHealth.svelte.d.ts +40 -0
- package/dist/d0-data-viz/ConnectionHealth.svelte.d.ts.map +1 -0
- package/{src → dist}/d0-data-viz/MetricCard.svelte +5 -5
- package/dist/d0-data-viz/MetricCard.svelte.d.ts +5 -0
- package/dist/d0-data-viz/MetricCard.svelte.d.ts.map +1 -0
- package/{src → dist}/d0-data-viz/SparkLine.svelte +1 -1
- package/dist/d0-data-viz/SparkLine.svelte.d.ts +12 -0
- package/dist/d0-data-viz/SparkLine.svelte.d.ts.map +1 -0
- package/{src → dist}/d0-data-viz/StorageMap.svelte +6 -6
- package/dist/d0-data-viz/StorageMap.svelte.d.ts +12 -0
- package/dist/d0-data-viz/StorageMap.svelte.d.ts.map +1 -0
- package/{src → dist}/d0-data-viz/Timeline.svelte +2 -2
- package/dist/d0-data-viz/Timeline.svelte.d.ts +10 -0
- package/dist/d0-data-viz/Timeline.svelte.d.ts.map +1 -0
- package/dist/d0-data-viz/WorldLineTimeline.svelte +329 -0
- package/dist/d0-data-viz/WorldLineTimeline.svelte.d.ts +11 -0
- package/dist/d0-data-viz/WorldLineTimeline.svelte.d.ts.map +1 -0
- package/dist/d0-data-viz/checkpoint-types.d.ts +104 -0
- package/dist/d0-data-viz/checkpoint-types.d.ts.map +1 -0
- package/dist/d0-data-viz/checkpoint-types.js +49 -0
- package/dist/d0-data-viz/d0-tokens.css +32 -0
- package/dist/d0-data-viz/index.d.ts +17 -0
- package/dist/d0-data-viz/index.d.ts.map +1 -0
- package/dist/d0-data-viz/index.js +18 -0
- package/dist/d0-data-viz/storage-map-types.d.ts +50 -0
- package/dist/d0-data-viz/storage-map-types.d.ts.map +1 -0
- package/dist/d0-data-viz/storage-map-types.js +81 -0
- package/dist/d0-data-viz/theme-integration.d.ts +106 -0
- package/dist/d0-data-viz/theme-integration.d.ts.map +1 -0
- package/dist/d0-data-viz/theme-integration.js +116 -0
- package/dist/d0-data-viz/types.d.ts +38 -0
- package/dist/d0-data-viz/types.d.ts.map +1 -0
- package/dist/d0-data-viz/types.js +3 -0
- package/dist/d0-data-viz/world-line-types.d.ts +27 -0
- package/dist/d0-data-viz/world-line-types.d.ts.map +1 -0
- package/dist/d0-data-viz/world-line-types.js +2 -0
- package/{src → dist}/demos/BspSizingInfographic.svelte +7 -7
- package/dist/demos/BspSizingInfographic.svelte.d.ts +19 -0
- package/dist/demos/BspSizingInfographic.svelte.d.ts.map +1 -0
- package/{src → dist}/demos/BspZoneDemo.svelte +4 -4
- package/dist/demos/BspZoneDemo.svelte.d.ts +4 -0
- package/dist/demos/BspZoneDemo.svelte.d.ts.map +1 -0
- package/dist/demos/ControlRoomDemo.svelte.d.ts +8 -0
- package/dist/demos/ControlRoomDemo.svelte.d.ts.map +1 -0
- package/{src → dist}/demos/NodepadBlocksShowcase.svelte +7 -7
- package/dist/demos/NodepadBlocksShowcase.svelte.d.ts +4 -0
- package/dist/demos/NodepadBlocksShowcase.svelte.d.ts.map +1 -0
- package/dist/demos/index.d.ts +5 -0
- package/dist/demos/index.d.ts.map +1 -0
- package/{src/demos/index.ts → dist/demos/index.js} +0 -1
- package/{src → dist}/editor/CodeEditor.svelte +15 -3
- package/dist/editor/CodeEditor.svelte.d.ts +16 -0
- package/dist/editor/CodeEditor.svelte.d.ts.map +1 -0
- package/{src → dist}/editor/FindReplaceDialog.svelte +15 -15
- package/dist/editor/FindReplaceDialog.svelte.d.ts +11 -0
- package/dist/editor/FindReplaceDialog.svelte.d.ts.map +1 -0
- package/{src → dist}/editor/MarkdownEditor.svelte +59 -44
- package/dist/editor/MarkdownEditor.svelte.d.ts +16 -0
- package/dist/editor/MarkdownEditor.svelte.d.ts.map +1 -0
- package/dist/editor/components/CorrectionTooltip.svelte +167 -0
- package/dist/editor/components/CorrectionTooltip.svelte.d.ts +33 -0
- package/dist/editor/components/CorrectionTooltip.svelte.d.ts.map +1 -0
- package/dist/editor/extensions/autocomplete.d.ts +10 -0
- package/dist/editor/extensions/autocomplete.d.ts.map +1 -0
- package/dist/editor/extensions/autocomplete.js +9 -0
- package/dist/editor/extensions/autoformat.d.ts +2 -0
- package/dist/editor/extensions/autoformat.d.ts.map +1 -0
- package/dist/editor/extensions/autoformat.js +69 -0
- package/dist/editor/extensions/autoformat.test.js +344 -0
- package/dist/editor/extensions/expansion.d.ts +5 -0
- package/dist/editor/extensions/expansion.d.ts.map +1 -0
- package/dist/editor/extensions/expansion.js +64 -0
- package/dist/editor/extensions/expansion.test.js +174 -0
- package/dist/editor/extensions/spellcheck.d.ts +7 -0
- package/dist/editor/extensions/spellcheck.d.ts.map +1 -0
- package/dist/editor/extensions/spellcheck.js +44 -0
- package/dist/editor/extensions/types.d.ts +3 -0
- package/dist/editor/extensions/types.d.ts.map +1 -0
- package/dist/editor/extensions/types.js +1 -0
- package/dist/editor/index.d.ts +9 -0
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/index.js +6 -0
- package/{src → dist}/entity-graph-view/WorldView.svelte +3 -3
- package/dist/entity-graph-view/WorldView.svelte.d.ts +11 -0
- package/dist/entity-graph-view/WorldView.svelte.d.ts.map +1 -0
- package/dist/entity-graph-view/index.d.ts +3 -0
- package/dist/entity-graph-view/index.d.ts.map +1 -0
- package/{src/entity-graph-view/index.ts → dist/entity-graph-view/index.js} +0 -1
- package/dist/entity-graph-view/types.d.ts +161 -0
- package/dist/entity-graph-view/types.d.ts.map +1 -0
- package/dist/entity-graph-view/types.js +213 -0
- package/dist/epistemic/index.d.ts +3 -0
- package/dist/epistemic/index.d.ts.map +1 -0
- package/dist/epistemic/types.d.ts +132 -0
- package/dist/epistemic/types.d.ts.map +1 -0
- package/dist/epistemic/types.js +18 -0
- package/dist/epistemic/utils.d.ts +7 -0
- package/dist/epistemic/utils.d.ts.map +1 -0
- package/dist/epistemic/utils.js +29 -0
- package/{src → dist}/f0-forms/checkbox/Checkbox.svelte +3 -3
- package/dist/f0-forms/checkbox/Checkbox.svelte.d.ts +14 -0
- package/dist/f0-forms/checkbox/Checkbox.svelte.d.ts.map +1 -0
- package/dist/f0-forms/checkbox/Checkbox.test.js +41 -0
- package/{src → dist}/f0-forms/field/FormField.svelte +1 -1
- package/dist/f0-forms/field/FormField.svelte.d.ts +13 -0
- package/dist/f0-forms/field/FormField.svelte.d.ts.map +1 -0
- package/dist/f0-forms/field/FormField.test.js +103 -0
- package/dist/f0-forms/index.d.ts +17 -0
- package/dist/f0-forms/index.d.ts.map +1 -0
- package/{src/f0-forms/index.ts → dist/f0-forms/index.js} +0 -2
- package/{src → dist}/f0-forms/radio/RadioGroup.svelte +3 -3
- package/dist/f0-forms/radio/RadioGroup.svelte.d.ts +18 -0
- package/dist/f0-forms/radio/RadioGroup.svelte.d.ts.map +1 -0
- package/dist/f0-forms/radio/RadioGroup.test.js +54 -0
- package/{src → dist}/f0-forms/search/SearchBar.svelte +1 -1
- package/dist/f0-forms/search/SearchBar.svelte.d.ts +12 -0
- package/dist/f0-forms/search/SearchBar.svelte.d.ts.map +1 -0
- package/dist/f0-forms/search/SearchBar.test.js +46 -0
- package/{src → dist}/f0-forms/select/Select.svelte +5 -5
- package/dist/f0-forms/select/Select.svelte.d.ts +21 -0
- package/dist/f0-forms/select/Select.svelte.d.ts.map +1 -0
- package/dist/f0-forms/select/Select.test.js +51 -0
- package/{src → dist}/f0-forms/textarea/TextArea.svelte +2 -2
- package/dist/f0-forms/textarea/TextArea.svelte.d.ts +18 -0
- package/dist/f0-forms/textarea/TextArea.svelte.d.ts.map +1 -0
- package/{src → dist}/f0-forms/toggle/FormToggle.svelte +3 -3
- package/dist/f0-forms/toggle/FormToggle.svelte.d.ts +14 -0
- package/dist/f0-forms/toggle/FormToggle.svelte.d.ts.map +1 -0
- package/dist/f0-forms/toggle/FormToggle.test.js +73 -0
- package/dist/f0-forms/validation/validate.d.ts +12 -0
- package/dist/f0-forms/validation/validate.d.ts.map +1 -0
- package/dist/f0-forms/validation/validate.js +44 -0
- package/dist/f0-forms/validation/validate.test.js +87 -0
- package/{src → dist}/fabric/ai/ChatPanel.svelte +49 -49
- package/dist/fabric/ai/ChatPanel.svelte.d.ts +39 -0
- package/dist/fabric/ai/ChatPanel.svelte.d.ts.map +1 -0
- package/dist/fabric/ai/ResearchPanel.svelte +503 -0
- package/dist/fabric/ai/ResearchPanel.svelte.d.ts +44 -0
- package/dist/fabric/ai/ResearchPanel.svelte.d.ts.map +1 -0
- package/dist/fabric/ai/index.d.ts +12 -0
- package/dist/fabric/ai/index.d.ts.map +1 -0
- package/{src/fabric/ai/index.ts → dist/fabric/ai/index.js} +3 -4
- package/dist/fabric/data/index.d.ts +15 -0
- package/dist/fabric/data/index.d.ts.map +1 -0
- package/dist/fabric/data/index.js +6 -0
- package/{src → dist}/fabric/feedback/StatusBar.svelte +93 -69
- package/dist/fabric/feedback/StatusBar.svelte.d.ts +24 -0
- package/dist/fabric/feedback/StatusBar.svelte.d.ts.map +1 -0
- package/dist/fabric/feedback/StatusBar.test.js +52 -0
- package/dist/fabric/feedback/ToastContainer.svelte +153 -0
- package/dist/fabric/feedback/ToastContainer.svelte.d.ts +16 -0
- package/dist/fabric/feedback/ToastContainer.svelte.d.ts.map +1 -0
- package/dist/fabric/feedback/ToastContainer.test.js +85 -0
- package/{src/fabric/feedback/index.ts → dist/fabric/feedback/index.d.ts} +5 -4
- package/dist/fabric/feedback/index.d.ts.map +1 -0
- package/dist/fabric/feedback/index.js +10 -0
- package/{src/fabric/index.ts → dist/fabric/index.d.ts} +10 -19
- package/dist/fabric/index.d.ts.map +1 -0
- package/dist/fabric/index.js +23 -0
- package/dist/fabric/input/CommandBar.svelte +96 -0
- package/dist/fabric/input/CommandBar.svelte.d.ts +23 -0
- package/dist/fabric/input/CommandBar.svelte.d.ts.map +1 -0
- package/dist/fabric/input/CommandBar.test.js +46 -0
- package/{src → dist}/fabric/input/KeyboardShortcuts.svelte +17 -18
- package/dist/fabric/input/KeyboardShortcuts.svelte.d.ts +22 -0
- package/dist/fabric/input/KeyboardShortcuts.svelte.d.ts.map +1 -0
- package/dist/fabric/input/KeyboardShortcuts.test.js +89 -0
- package/{src/fabric/input/index.ts → dist/fabric/input/index.d.ts} +4 -3
- package/dist/fabric/input/index.d.ts.map +1 -0
- package/dist/fabric/input/index.js +10 -0
- package/dist/fabric/layout/CollapsiblePanel.svelte +378 -0
- package/dist/fabric/layout/CollapsiblePanel.svelte.d.ts +74 -0
- package/dist/fabric/layout/CollapsiblePanel.svelte.d.ts.map +1 -0
- package/dist/fabric/layout/GlassBox.svelte +206 -0
- package/dist/fabric/layout/GlassBox.svelte.d.ts +23 -0
- package/dist/fabric/layout/GlassBox.svelte.d.ts.map +1 -0
- package/{src → dist}/fabric/layout/KanbanBoard.svelte +15 -15
- package/dist/fabric/layout/KanbanBoard.svelte.d.ts +30 -0
- package/dist/fabric/layout/KanbanBoard.svelte.d.ts.map +1 -0
- package/dist/fabric/layout/KanbanBoard.test.js +25 -0
- package/{src → dist}/fabric/layout/KanbanCard.svelte +30 -30
- package/dist/fabric/layout/KanbanCard.svelte.d.ts +23 -0
- package/dist/fabric/layout/KanbanCard.svelte.d.ts.map +1 -0
- package/{src → dist}/fabric/layout/KanbanColumn.svelte +30 -30
- package/dist/fabric/layout/KanbanColumn.svelte.d.ts +26 -0
- package/dist/fabric/layout/KanbanColumn.svelte.d.ts.map +1 -0
- package/dist/fabric/layout/index.d.ts +20 -0
- package/dist/fabric/layout/index.d.ts.map +1 -0
- package/{src/fabric/layout/index.ts → dist/fabric/layout/index.js} +4 -6
- package/{src → dist}/fabric/navigation/ActivityRail.svelte +44 -31
- package/dist/fabric/navigation/ActivityRail.svelte.d.ts +34 -0
- package/dist/fabric/navigation/ActivityRail.svelte.d.ts.map +1 -0
- package/dist/fabric/navigation/ActivityRail.test.js +82 -0
- package/{src/fabric/navigation/index.ts → dist/fabric/navigation/index.d.ts} +3 -3
- package/dist/fabric/navigation/index.d.ts.map +1 -0
- package/dist/fabric/navigation/index.js +9 -0
- package/dist/g0-generative/index.d.ts +18 -0
- package/dist/g0-generative/index.d.ts.map +1 -0
- package/dist/g0-generative/index.js +15 -0
- package/dist/g0-generative/library/ComponentLibrary.d.ts +36 -0
- package/dist/g0-generative/library/ComponentLibrary.d.ts.map +1 -0
- package/dist/g0-generative/library/ComponentLibrary.js +172 -0
- package/dist/g0-generative/library/types.d.ts +30 -0
- package/dist/g0-generative/library/types.d.ts.map +1 -0
- package/dist/g0-generative/library/types.js +6 -0
- package/dist/g0-generative/parser/parseOpenUILang.d.ts +17 -0
- package/dist/g0-generative/parser/parseOpenUILang.d.ts.map +1 -0
- package/dist/g0-generative/parser/parseOpenUILang.js +319 -0
- package/dist/g0-generative/parser/types.d.ts +41 -0
- package/dist/g0-generative/parser/types.d.ts.map +1 -0
- package/dist/g0-generative/parser/types.js +12 -0
- package/dist/g0-generative/prompt-gen/generateSystemPrompt.d.ts +18 -0
- package/dist/g0-generative/prompt-gen/generateSystemPrompt.d.ts.map +1 -0
- package/dist/g0-generative/prompt-gen/generateSystemPrompt.js +28 -0
- package/dist/g0-generative/renderer/OpenUIRenderer.svelte +188 -0
- package/dist/g0-generative/renderer/OpenUIRenderer.svelte.d.ts +20 -0
- package/dist/g0-generative/renderer/OpenUIRenderer.svelte.d.ts.map +1 -0
- package/dist/g0-generative/streaming/StreamingAdapter.d.ts +36 -0
- package/dist/g0-generative/streaming/StreamingAdapter.d.ts.map +1 -0
- package/dist/g0-generative/streaming/StreamingAdapter.js +110 -0
- package/{src → dist}/g0-geo/SovereignMap.svelte +2 -2
- package/dist/g0-geo/SovereignMap.svelte.d.ts +22 -0
- package/dist/g0-geo/SovereignMap.svelte.d.ts.map +1 -0
- package/dist/g0-geo/index.d.ts +2 -0
- package/dist/g0-geo/index.d.ts.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/l0-layout/SectionSplitter.svelte +83 -0
- package/dist/l0-layout/SectionSplitter.svelte.d.ts +8 -0
- package/dist/l0-layout/SectionSplitter.svelte.d.ts.map +1 -0
- package/dist/l0-layout/SnapPanel.svelte +286 -0
- package/dist/l0-layout/SnapPanel.svelte.d.ts +38 -0
- package/dist/l0-layout/SnapPanel.svelte.d.ts.map +1 -0
- package/dist/l0-layout/ValidityScoreDisplay.svelte +155 -0
- package/dist/l0-layout/ValidityScoreDisplay.svelte.d.ts +13 -0
- package/dist/l0-layout/ValidityScoreDisplay.svelte.d.ts.map +1 -0
- package/dist/l0-layout/VirtualGrid.svelte +225 -0
- package/dist/l0-layout/VirtualGrid.svelte.d.ts +47 -0
- package/dist/l0-layout/VirtualGrid.svelte.d.ts.map +1 -0
- package/{src → dist}/l0-layout/block-writer/BlockConnectionLines.svelte +1 -1
- package/dist/l0-layout/block-writer/BlockConnectionLines.svelte.d.ts +11 -0
- package/dist/l0-layout/block-writer/BlockConnectionLines.svelte.d.ts.map +1 -0
- package/{src → dist}/l0-layout/block-writer/BlockContent.svelte +6 -6
- package/dist/l0-layout/block-writer/BlockContent.svelte.d.ts +11 -0
- package/dist/l0-layout/block-writer/BlockContent.svelte.d.ts.map +1 -0
- package/{src → dist}/l0-layout/block-writer/BlockHeader.svelte +1 -1
- package/dist/l0-layout/block-writer/BlockHeader.svelte.d.ts +17 -0
- package/dist/l0-layout/block-writer/BlockHeader.svelte.d.ts.map +1 -0
- package/{src → dist}/l0-layout/block-writer/BlockItem.svelte +7 -7
- package/dist/l0-layout/block-writer/BlockItem.svelte.d.ts +22 -0
- package/dist/l0-layout/block-writer/BlockItem.svelte.d.ts.map +1 -0
- package/dist/l0-layout/block-writer/BlockWriter.svelte.d.ts +23 -0
- package/dist/l0-layout/block-writer/BlockWriter.svelte.d.ts.map +1 -0
- package/dist/l0-layout/block-writer/block-writer-types.d.ts +48 -0
- package/dist/l0-layout/block-writer/block-writer-types.d.ts.map +1 -0
- package/dist/l0-layout/block-writer/block-writer-types.js +13 -0
- package/dist/l0-layout/block-writer/index.d.ts +9 -0
- package/dist/l0-layout/block-writer/index.d.ts.map +1 -0
- package/{src/l0-layout/block-writer/index.ts → dist/l0-layout/block-writer/index.js} +0 -13
- package/dist/l0-layout/block-writer/markdown.d.ts +16 -0
- package/dist/l0-layout/block-writer/markdown.d.ts.map +1 -0
- package/dist/l0-layout/block-writer/markdown.js +96 -0
- package/dist/l0-layout/card/CompactCard.svelte +114 -0
- package/dist/l0-layout/card/CompactCard.svelte.d.ts +11 -0
- package/dist/l0-layout/card/CompactCard.svelte.d.ts.map +1 -0
- package/dist/l0-layout/chat-view/ChatViewLayout.svelte.d.ts +11 -0
- package/dist/l0-layout/chat-view/ChatViewLayout.svelte.d.ts.map +1 -0
- package/{src → dist}/l0-layout/epistemic/AllayDetailPanel.svelte +3 -5
- package/dist/l0-layout/epistemic/AllayDetailPanel.svelte.d.ts +9 -0
- package/dist/l0-layout/epistemic/AllayDetailPanel.svelte.d.ts.map +1 -0
- package/{src → dist}/l0-layout/epistemic/AssayDetailPanel.svelte +10 -9
- package/dist/l0-layout/epistemic/AssayDetailPanel.svelte.d.ts +11 -0
- package/dist/l0-layout/epistemic/AssayDetailPanel.svelte.d.ts.map +1 -0
- package/{src → dist}/l0-layout/epistemic/AvenueTrace.svelte +1 -1
- package/dist/l0-layout/epistemic/AvenueTrace.svelte.d.ts +10 -0
- package/dist/l0-layout/epistemic/AvenueTrace.svelte.d.ts.map +1 -0
- package/{src → dist}/l0-layout/epistemic/KnowledgeDetailPanel.svelte +4 -7
- package/dist/l0-layout/epistemic/KnowledgeDetailPanel.svelte.d.ts +10 -0
- package/dist/l0-layout/epistemic/KnowledgeDetailPanel.svelte.d.ts.map +1 -0
- package/{src → dist}/l0-layout/epistemic/ParadigmLens.svelte +1 -1
- package/dist/l0-layout/epistemic/ParadigmLens.svelte.d.ts +10 -0
- package/dist/l0-layout/epistemic/ParadigmLens.svelte.d.ts.map +1 -0
- package/{src → dist}/l0-layout/epistemic/ProvenanceChain.svelte +2 -3
- package/dist/l0-layout/epistemic/ProvenanceChain.svelte.d.ts +10 -0
- package/dist/l0-layout/epistemic/ProvenanceChain.svelte.d.ts.map +1 -0
- package/{src → dist}/l0-layout/epistemic/TrustView.svelte +4 -8
- package/dist/l0-layout/epistemic/TrustView.svelte.d.ts +10 -0
- package/dist/l0-layout/epistemic/TrustView.svelte.d.ts.map +1 -0
- package/dist/l0-layout/epistemic/index.d.ts +8 -0
- package/dist/l0-layout/epistemic/index.d.ts.map +1 -0
- package/dist/l0-layout/grant/GrantCard.svelte +179 -0
- package/dist/l0-layout/grant/GrantCard.svelte.d.ts +18 -0
- package/dist/l0-layout/grant/GrantCard.svelte.d.ts.map +1 -0
- package/dist/l0-layout/grant/GrantDraftEditor.svelte +413 -0
- package/dist/l0-layout/grant/GrantDraftEditor.svelte.d.ts +28 -0
- package/dist/l0-layout/grant/GrantDraftEditor.svelte.d.ts.map +1 -0
- package/dist/l0-layout/grant/index.d.ts +3 -0
- package/dist/l0-layout/grant/index.d.ts.map +1 -0
- package/dist/l0-layout/grant/index.js +2 -0
- package/dist/l0-layout/grove/AccordCard.svelte.d.ts +12 -0
- package/dist/l0-layout/grove/AccordCard.svelte.d.ts.map +1 -0
- package/dist/l0-layout/grove/GroveCard.svelte.d.ts +16 -0
- package/dist/l0-layout/grove/GroveCard.svelte.d.ts.map +1 -0
- package/dist/l0-layout/grove/MemberBadge.svelte.d.ts +12 -0
- package/dist/l0-layout/grove/MemberBadge.svelte.d.ts.map +1 -0
- package/dist/l0-layout/grove/MemberList.svelte.d.ts +10 -0
- package/dist/l0-layout/grove/MemberList.svelte.d.ts.map +1 -0
- package/dist/l0-layout/grove/grove-types.d.ts +24 -0
- package/dist/l0-layout/grove/grove-types.d.ts.map +1 -0
- package/dist/l0-layout/grove/grove-types.js +2 -0
- package/dist/l0-layout/grove/index.d.ts +6 -0
- package/dist/l0-layout/grove/index.d.ts.map +1 -0
- package/{src/l0-layout/grove/index.ts → dist/l0-layout/grove/index.js} +0 -9
- package/dist/l0-layout/index.d.ts +23 -0
- package/dist/l0-layout/index.d.ts.map +1 -0
- package/{src/l0-layout/index.ts → dist/l0-layout/index.js} +11 -30
- package/{src → dist}/l0-layout/kanban/KanbanBoard.svelte +2 -2
- package/dist/l0-layout/kanban/KanbanBoard.svelte.d.ts +9 -0
- package/dist/l0-layout/kanban/KanbanBoard.svelte.d.ts.map +1 -0
- package/dist/l0-layout/kanban/KanbanCard.svelte.d.ts +28 -0
- package/dist/l0-layout/kanban/KanbanCard.svelte.d.ts.map +1 -0
- package/{src → dist}/l0-layout/kanban/KanbanColumn.svelte +1 -1
- package/dist/l0-layout/kanban/KanbanColumn.svelte.d.ts +18 -0
- package/dist/l0-layout/kanban/KanbanColumn.svelte.d.ts.map +1 -0
- package/dist/l0-layout/kanban/KanbanViewLayout.svelte.d.ts +10 -0
- package/dist/l0-layout/kanban/KanbanViewLayout.svelte.d.ts.map +1 -0
- package/dist/l0-layout/workspace/WorkspaceLayout.svelte.d.ts +12 -0
- package/dist/l0-layout/workspace/WorkspaceLayout.svelte.d.ts.map +1 -0
- package/dist/map/index.d.ts +3 -0
- package/dist/map/index.d.ts.map +1 -0
- package/dist/map/index.js +4 -0
- package/dist/n0-node-graph/GraphEditor.svelte.d.ts +16 -0
- package/dist/n0-node-graph/GraphEditor.svelte.d.ts.map +1 -0
- package/dist/n0-node-graph/GraphHistory.svelte.d.ts +22 -0
- package/dist/n0-node-graph/GraphHistory.svelte.d.ts.map +1 -0
- package/{src → dist}/n0-node-graph/Node.svelte +3 -3
- package/dist/n0-node-graph/Node.svelte.d.ts +20 -0
- package/dist/n0-node-graph/Node.svelte.d.ts.map +1 -0
- package/dist/n0-node-graph/NodeCanvas.svelte.d.ts +12 -0
- package/dist/n0-node-graph/NodeCanvas.svelte.d.ts.map +1 -0
- package/dist/n0-node-graph/NodeEdge.svelte.d.ts +20 -0
- package/dist/n0-node-graph/NodeEdge.svelte.d.ts.map +1 -0
- package/{src → dist}/n0-node-graph/NodePalette.svelte +5 -5
- package/dist/n0-node-graph/NodePalette.svelte.d.ts +9 -0
- package/dist/n0-node-graph/NodePalette.svelte.d.ts.map +1 -0
- package/dist/n0-node-graph/NodePort.svelte.d.ts +18 -0
- package/dist/n0-node-graph/NodePort.svelte.d.ts.map +1 -0
- package/{src/n0-node-graph/index.ts → dist/n0-node-graph/index.d.ts} +2 -24
- package/dist/n0-node-graph/index.d.ts.map +1 -0
- package/dist/n0-node-graph/index.js +11 -0
- package/dist/n0-node-graph/n0-tokens.css +29 -0
- package/dist/n0-node-graph/node-port-types.d.ts +18 -0
- package/dist/n0-node-graph/node-port-types.d.ts.map +1 -0
- package/dist/n0-node-graph/node-port-types.js +3 -0
- package/dist/n0-node-graph/types.d.ts +61 -0
- package/dist/n0-node-graph/types.d.ts.map +1 -0
- package/dist/n0-node-graph/types.js +3 -0
- package/dist/n0-node-graph/validate.d.ts +11 -0
- package/dist/n0-node-graph/validate.d.ts.map +1 -0
- package/dist/n0-node-graph/validate.js +270 -0
- package/dist/n0-node-graph/validate.test.js +646 -0
- package/{src → dist}/n1-flow-canvas/FlowCanvas.svelte +4 -12
- package/dist/n1-flow-canvas/FlowCanvas.svelte.d.ts +11 -0
- package/dist/n1-flow-canvas/FlowCanvas.svelte.d.ts.map +1 -0
- package/dist/n1-flow-canvas/graph-state.svelte.d.ts +18 -0
- package/dist/n1-flow-canvas/graph-state.svelte.d.ts.map +1 -0
- package/dist/n1-flow-canvas/graph-state.svelte.js +81 -0
- package/dist/n1-flow-canvas/index.d.ts +6 -0
- package/dist/n1-flow-canvas/index.d.ts.map +1 -0
- package/{src/n1-flow-canvas/index.ts → dist/n1-flow-canvas/index.js} +0 -15
- package/dist/n1-flow-canvas/layout.d.ts +4 -0
- package/dist/n1-flow-canvas/layout.d.ts.map +1 -0
- package/dist/n1-flow-canvas/layout.js +95 -0
- package/dist/n1-flow-canvas/layout.worker.d.ts +2 -0
- package/dist/n1-flow-canvas/layout.worker.d.ts.map +1 -0
- package/dist/n1-flow-canvas/layout.worker.js +106 -0
- package/dist/n1-flow-canvas/types.d.ts +65 -0
- package/dist/n1-flow-canvas/types.d.ts.map +1 -0
- package/dist/n1-flow-canvas/types.js +6 -0
- package/dist/n1-flow-canvas/utils.d.ts +50 -0
- package/dist/n1-flow-canvas/utils.d.ts.map +1 -0
- package/dist/n1-flow-canvas/utils.js +113 -0
- package/dist/n2-manifold-disk/ManifoldDisk.svelte.d.ts +21 -0
- package/dist/n2-manifold-disk/ManifoldDisk.svelte.d.ts.map +1 -0
- package/dist/n2-manifold-disk/index.d.ts +4 -0
- package/dist/n2-manifold-disk/index.d.ts.map +1 -0
- package/{src/n2-manifold-disk/index.ts → dist/n2-manifold-disk/index.js} +0 -2
- package/dist/n2-manifold-disk/poincare.d.ts +67 -0
- package/dist/n2-manifold-disk/poincare.d.ts.map +1 -0
- package/dist/n2-manifold-disk/poincare.js +134 -0
- package/{src → dist}/n3-force-graph/ForceGraph.svelte +19 -18
- package/dist/n3-force-graph/ForceGraph.svelte.d.ts +36 -0
- package/dist/n3-force-graph/ForceGraph.svelte.d.ts.map +1 -0
- package/dist/n3-force-graph/GraphTooltip.svelte.d.ts +19 -0
- package/dist/n3-force-graph/GraphTooltip.svelte.d.ts.map +1 -0
- package/dist/n3-force-graph/animated-edge.d.ts +18 -0
- package/dist/n3-force-graph/animated-edge.d.ts.map +1 -0
- package/dist/n3-force-graph/animated-edge.js +87 -0
- package/dist/n3-force-graph/health-node.d.ts +20 -0
- package/dist/n3-force-graph/health-node.d.ts.map +1 -0
- package/dist/n3-force-graph/health-node.js +110 -0
- package/dist/n3-force-graph/index.d.ts +7 -0
- package/dist/n3-force-graph/index.d.ts.map +1 -0
- package/{src/n3-force-graph/index.ts → dist/n3-force-graph/index.js} +1 -19
- package/dist/n3-force-graph/types.d.ts +60 -0
- package/dist/n3-force-graph/types.d.ts.map +1 -0
- package/dist/n3-force-graph/types.js +22 -0
- package/{src → dist}/n4-adaptive-manifold/AdaptiveManifold.svelte +1 -1
- package/dist/n4-adaptive-manifold/AdaptiveManifold.svelte.d.ts +24 -0
- package/dist/n4-adaptive-manifold/AdaptiveManifold.svelte.d.ts.map +1 -0
- package/{src → dist}/n4-adaptive-manifold/DetailCard.svelte +9 -9
- package/dist/n4-adaptive-manifold/DetailCard.svelte.d.ts +10 -0
- package/dist/n4-adaptive-manifold/DetailCard.svelte.d.ts.map +1 -0
- package/{src → dist}/n4-adaptive-manifold/SuggestionIndicator.svelte +8 -8
- package/dist/n4-adaptive-manifold/SuggestionIndicator.svelte.d.ts +11 -0
- package/dist/n4-adaptive-manifold/SuggestionIndicator.svelte.d.ts.map +1 -0
- package/dist/n4-adaptive-manifold/classifier.d.ts +6 -0
- package/dist/n4-adaptive-manifold/classifier.d.ts.map +1 -0
- package/dist/n4-adaptive-manifold/classifier.js +123 -0
- package/dist/n4-adaptive-manifold/index.d.ts +12 -0
- package/dist/n4-adaptive-manifold/index.d.ts.map +1 -0
- package/{src/n4-adaptive-manifold/index.ts → dist/n4-adaptive-manifold/index.js} +0 -33
- package/dist/n4-adaptive-manifold/n4-tokens.css +155 -0
- package/dist/n4-adaptive-manifold/orchestrator.d.ts +61 -0
- package/dist/n4-adaptive-manifold/orchestrator.d.ts.map +1 -0
- package/dist/n4-adaptive-manifold/orchestrator.js +231 -0
- package/dist/n4-adaptive-manifold/phase-theme.d.ts +9 -0
- package/dist/n4-adaptive-manifold/phase-theme.d.ts.map +1 -0
- package/dist/n4-adaptive-manifold/phase-theme.js +82 -0
- package/dist/n4-adaptive-manifold/pinnacle-events.d.ts +34 -0
- package/dist/n4-adaptive-manifold/pinnacle-events.d.ts.map +1 -0
- package/dist/n4-adaptive-manifold/pinnacle-events.js +108 -0
- package/dist/n4-adaptive-manifold/providers/gravitational-provider.d.ts +16 -0
- package/dist/n4-adaptive-manifold/providers/gravitational-provider.d.ts.map +1 -0
- package/dist/n4-adaptive-manifold/providers/gravitational-provider.js +162 -0
- package/dist/n4-adaptive-manifold/providers/manifold-provider.d.ts +7 -0
- package/dist/n4-adaptive-manifold/providers/manifold-provider.d.ts.map +1 -0
- package/dist/n4-adaptive-manifold/providers/manifold-provider.js +222 -0
- package/dist/n4-adaptive-manifold/transition.d.ts +19 -0
- package/dist/n4-adaptive-manifold/transition.d.ts.map +1 -0
- package/dist/n4-adaptive-manifold/transition.js +71 -0
- package/dist/n4-adaptive-manifold/types.d.ts +233 -0
- package/dist/n4-adaptive-manifold/types.d.ts.map +1 -0
- package/dist/n4-adaptive-manifold/types.js +17 -0
- package/dist/p0-primitives/ThemeProvider.svelte +183 -0
- package/dist/p0-primitives/ThemeProvider.svelte.d.ts +69 -0
- package/dist/p0-primitives/ThemeProvider.svelte.d.ts.map +1 -0
- package/dist/p0-primitives/canvas-theme.d.ts +17 -0
- package/dist/p0-primitives/canvas-theme.d.ts.map +1 -0
- package/dist/p0-primitives/canvas-theme.js +36 -0
- package/dist/p0-primitives/index.d.ts +8 -0
- package/dist/p0-primitives/index.d.ts.map +1 -0
- package/{src/p0-primitives/index.ts → dist/p0-primitives/index.js} +4 -1
- package/dist/p0-primitives/theme.d.ts +38 -0
- package/dist/p0-primitives/theme.d.ts.map +1 -0
- package/dist/p0-primitives/theme.js +150 -0
- package/dist/p0-primitives/tokens/contrast-audit.d.ts +42 -0
- package/dist/p0-primitives/tokens/contrast-audit.d.ts.map +1 -0
- package/dist/p0-primitives/tokens/contrast-audit.js +331 -0
- package/dist/p0-primitives/tokens/contrast-audit.test.js +84 -0
- package/dist/p0-primitives/tokens/control-room.css +309 -0
- package/dist/p0-primitives/tokens/index.d.ts +2 -0
- package/dist/p0-primitives/tokens/index.d.ts.map +1 -0
- package/dist/p0-primitives/tokens/index.js +2 -0
- package/dist/p0-primitives/tokens/tokens.css +247 -0
- package/dist/p0-primitives/tokens/validity-tokens.css +83 -0
- package/dist/p0-primitives/types/geometry.d.ts +18 -0
- package/dist/p0-primitives/types/geometry.d.ts.map +1 -0
- package/dist/p0-primitives/types/geometry.js +4 -0
- package/dist/p0-primitives/types/index.d.ts +113 -0
- package/dist/p0-primitives/types/index.d.ts.map +1 -0
- package/dist/p0-primitives/types/index.js +5 -0
- package/dist/p0-primitives/types/plugin-types.d.ts +46 -0
- package/dist/p0-primitives/types/plugin-types.d.ts.map +1 -0
- package/dist/p0-primitives/types/plugin-types.js +7 -0
- package/dist/p0-primitives/utils/index.d.ts +13 -0
- package/dist/p0-primitives/utils/index.d.ts.map +1 -0
- package/dist/p0-primitives/utils/index.js +30 -0
- package/dist/platform/hud-protocol.d.ts +14 -0
- package/dist/platform/hud-protocol.d.ts.map +1 -0
- package/dist/platform/hud-protocol.js +6 -0
- package/dist/platform/index.d.ts +2 -0
- package/dist/platform/index.d.ts.map +1 -0
- package/{src/platform/index.ts → dist/platform/index.js} +1 -2
- package/dist/s0-lifecycle/CanvasRenderContext.d.ts +20 -0
- package/dist/s0-lifecycle/CanvasRenderContext.d.ts.map +1 -0
- package/dist/s0-lifecycle/CanvasRenderContext.js +90 -0
- package/dist/s0-lifecycle/ConstraintContext.d.ts +27 -0
- package/dist/s0-lifecycle/ConstraintContext.d.ts.map +1 -0
- package/dist/s0-lifecycle/ConstraintContext.js +3 -0
- package/dist/s0-lifecycle/InteractionContext.d.ts +38 -0
- package/dist/s0-lifecycle/InteractionContext.d.ts.map +1 -0
- package/dist/s0-lifecycle/InteractionContext.js +3 -0
- package/dist/s0-lifecycle/LayoutContext.d.ts +19 -0
- package/dist/s0-lifecycle/LayoutContext.d.ts.map +1 -0
- package/dist/s0-lifecycle/LayoutContext.js +3 -0
- package/dist/s0-lifecycle/Lifecycle.d.ts +60 -0
- package/dist/s0-lifecycle/Lifecycle.d.ts.map +1 -0
- package/dist/s0-lifecycle/Lifecycle.js +38 -0
- package/dist/s0-lifecycle/RenderContext.d.ts +48 -0
- package/dist/s0-lifecycle/RenderContext.d.ts.map +1 -0
- package/dist/s0-lifecycle/RenderContext.js +3 -0
- package/dist/s0-lifecycle/Scene.d.ts +61 -0
- package/dist/s0-lifecycle/Scene.d.ts.map +1 -0
- package/dist/s0-lifecycle/Scene.js +58 -0
- package/dist/s0-lifecycle/index.d.ts +8 -0
- package/dist/s0-lifecycle/index.d.ts.map +1 -0
- package/dist/s0-lifecycle/index.js +19 -0
- package/dist/s0-state/SyncStatus.svelte +275 -0
- package/dist/s0-state/SyncStatus.svelte.d.ts +33 -0
- package/dist/s0-state/SyncStatus.svelte.d.ts.map +1 -0
- package/dist/s0-state/ThemeStore.svelte.d.ts +12 -0
- package/dist/s0-state/ThemeStore.svelte.d.ts.map +1 -0
- package/dist/s0-state/ThemeStore.svelte.js +61 -0
- package/dist/s0-state/ThemeStore.test.js +68 -0
- package/dist/s0-state/create-store.d.ts +23 -0
- package/dist/s0-state/create-store.d.ts.map +1 -0
- package/dist/s0-state/create-store.js +58 -0
- package/dist/s0-state/derived.d.ts +13 -0
- package/dist/s0-state/derived.d.ts.map +1 -0
- package/dist/s0-state/derived.js +25 -0
- package/dist/s0-state/index.d.ts +10 -0
- package/dist/s0-state/index.d.ts.map +1 -0
- package/dist/s0-state/index.js +7 -0
- package/dist/s0-state/modal-stack-store.svelte.d.ts +43 -0
- package/dist/s0-state/modal-stack-store.svelte.d.ts.map +1 -0
- package/dist/s0-state/modal-stack-store.svelte.js +63 -0
- package/dist/s0-state/virtual.d.ts +154 -0
- package/dist/s0-state/virtual.d.ts.map +1 -0
- package/dist/s0-state/virtual.js +207 -0
- package/{src → dist}/showcase/Showcase.svelte +1 -1
- package/dist/showcase/Showcase.svelte.d.ts +4 -0
- package/dist/showcase/Showcase.svelte.d.ts.map +1 -0
- package/dist/spatial/BspTilingCanvas.svelte +196 -0
- package/dist/spatial/BspTilingCanvas.svelte.d.ts +12 -0
- package/dist/spatial/BspTilingCanvas.svelte.d.ts.map +1 -0
- package/dist/spatial/BspTilingSimulation.svelte.d.ts +43 -0
- package/dist/spatial/BspTilingSimulation.svelte.d.ts.map +1 -0
- package/dist/spatial/BspTilingSimulation.svelte.js +183 -0
- package/dist/spatial/CameraController.svelte.d.ts +39 -0
- package/dist/spatial/CameraController.svelte.d.ts.map +1 -0
- package/dist/spatial/CameraController.svelte.js +174 -0
- package/dist/spatial/ForceCanvas.svelte +151 -0
- package/dist/spatial/ForceCanvas.svelte.d.ts +16 -0
- package/dist/spatial/ForceCanvas.svelte.d.ts.map +1 -0
- package/dist/spatial/ForceSimulation.svelte.d.ts +23 -0
- package/dist/spatial/ForceSimulation.svelte.d.ts.map +1 -0
- package/dist/spatial/ForceSimulation.svelte.js +131 -0
- package/{src → dist}/spatial/LodRenderer.svelte +3 -1
- package/dist/spatial/LodRenderer.svelte.d.ts +35 -0
- package/dist/spatial/LodRenderer.svelte.d.ts.map +1 -0
- package/dist/spatial/SnapZoomCamera.svelte +187 -0
- package/dist/spatial/SnapZoomCamera.svelte.d.ts +14 -0
- package/dist/spatial/SnapZoomCamera.svelte.d.ts.map +1 -0
- package/{src → dist}/spatial/ZoneTiler.svelte +26 -7
- package/dist/spatial/ZoneTiler.svelte.d.ts +27 -0
- package/dist/spatial/ZoneTiler.svelte.d.ts.map +1 -0
- package/dist/spatial/camera-types.d.ts +34 -0
- package/dist/spatial/camera-types.d.ts.map +1 -0
- package/dist/spatial/camera-types.js +10 -0
- package/dist/spatial/content-proportional-bsp.d.ts +46 -0
- package/dist/spatial/content-proportional-bsp.d.ts.map +1 -0
- package/dist/spatial/content-proportional-bsp.js +166 -0
- package/dist/spatial/force-canvas-types.d.ts +65 -0
- package/dist/spatial/force-canvas-types.d.ts.map +1 -0
- package/dist/spatial/force-canvas-types.js +32 -0
- package/dist/spatial/index.d.ts +9 -0
- package/dist/spatial/index.d.ts.map +1 -0
- package/{src/spatial/index.ts → dist/spatial/index.js} +4 -2
- package/dist/spatial/lod-types.d.ts +39 -0
- package/dist/spatial/lod-types.d.ts.map +1 -0
- package/dist/spatial/lod-types.js +34 -0
- package/dist/spatial/zone-tiler-types.d.ts +70 -0
- package/dist/spatial/zone-tiler-types.d.ts.map +1 -0
- package/dist/spatial/zone-tiler-types.js +92 -0
- package/dist/stores/vaultStore.svelte.d.ts +24 -0
- package/dist/stores/vaultStore.svelte.d.ts.map +1 -0
- package/dist/t0-transport/connection.d.ts +11 -0
- package/dist/t0-transport/connection.d.ts.map +1 -0
- package/dist/t0-transport/connection.js +22 -0
- package/dist/t0-transport/error.d.ts +13 -0
- package/dist/t0-transport/error.d.ts.map +1 -0
- package/dist/t0-transport/error.js +31 -0
- package/dist/t0-transport/events.d.ts +13 -0
- package/dist/t0-transport/events.d.ts.map +1 -0
- package/dist/t0-transport/events.js +37 -0
- package/dist/t0-transport/index.d.ts +6 -0
- package/dist/t0-transport/index.d.ts.map +1 -0
- package/dist/t0-transport/index.js +7 -0
- package/dist/t0-transport/invoke.d.ts +25 -0
- package/dist/t0-transport/invoke.d.ts.map +1 -0
- package/dist/t0-transport/invoke.js +47 -0
- package/dist/t0-transport/quality.d.ts +39 -0
- package/dist/t0-transport/quality.d.ts.map +1 -0
- package/dist/t0-transport/quality.js +238 -0
- package/dist/tauri/index.d.ts +3 -0
- package/dist/tauri/index.d.ts.map +1 -0
- package/{src/tauri/index.ts → dist/tauri/index.js} +2 -4
- package/dist/u0-primitives/AccordionSection.svelte +186 -0
- package/dist/u0-primitives/AccordionSection.svelte.d.ts +28 -0
- package/dist/u0-primitives/AccordionSection.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/LockIndicator.svelte +244 -0
- package/dist/u0-primitives/LockIndicator.svelte.d.ts +31 -0
- package/dist/u0-primitives/LockIndicator.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/VerticalToolbar.svelte +208 -0
- package/dist/u0-primitives/VerticalToolbar.svelte.d.ts +32 -0
- package/dist/u0-primitives/VerticalToolbar.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/accordion/Accordion.svelte +185 -0
- package/dist/u0-primitives/accordion/Accordion.svelte.d.ts +34 -0
- package/dist/u0-primitives/accordion/Accordion.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/accordion/Accordion.test.js +99 -0
- package/dist/u0-primitives/accordion/index.d.ts +3 -0
- package/dist/u0-primitives/accordion/index.d.ts.map +1 -0
- package/dist/u0-primitives/accordion/index.js +1 -0
- package/dist/u0-primitives/allay-gauge/AllayGauge.svelte +58 -0
- package/dist/u0-primitives/allay-gauge/AllayGauge.svelte.d.ts +10 -0
- package/dist/u0-primitives/allay-gauge/AllayGauge.svelte.d.ts.map +1 -0
- package/{src → dist}/u0-primitives/animated-icon/AnimatedIcon.svelte +7 -7
- package/dist/u0-primitives/animated-icon/AnimatedIcon.svelte.d.ts +22 -0
- package/dist/u0-primitives/animated-icon/AnimatedIcon.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/animated-icon/README.md +70 -0
- package/dist/u0-primitives/animated-icon/index.d.ts +9 -0
- package/dist/u0-primitives/animated-icon/index.d.ts.map +1 -0
- package/dist/u0-primitives/animated-icon/index.js +9 -0
- package/{src → dist}/u0-primitives/avatar/Avatar.svelte +3 -3
- package/dist/u0-primitives/avatar/Avatar.svelte.d.ts +11 -0
- package/dist/u0-primitives/avatar/Avatar.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/avatar/index.d.ts +3 -0
- package/dist/u0-primitives/avatar/index.d.ts.map +1 -0
- package/dist/u0-primitives/avatar/index.js +1 -0
- package/{src → dist}/u0-primitives/badge/Badge.svelte +11 -11
- package/dist/u0-primitives/badge/Badge.svelte.d.ts +12 -0
- package/dist/u0-primitives/badge/Badge.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/badge/Badge.test.js +50 -0
- package/dist/u0-primitives/badge/ValidityBadge.svelte +153 -0
- package/dist/u0-primitives/badge/ValidityBadge.svelte.d.ts +13 -0
- package/dist/u0-primitives/badge/ValidityBadge.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/badge/ValidityBadge.test.js +57 -0
- package/dist/u0-primitives/badge/index.d.ts +3 -0
- package/dist/u0-primitives/badge/index.d.ts.map +1 -0
- package/dist/u0-primitives/badge/index.js +1 -0
- package/dist/u0-primitives/badge/validity-utils.d.ts +8 -0
- package/dist/u0-primitives/badge/validity-utils.d.ts.map +1 -0
- package/dist/u0-primitives/badge/validity-utils.js +18 -0
- package/{src → dist}/u0-primitives/button/Button.svelte +42 -104
- package/dist/u0-primitives/button/Button.svelte.d.ts +18 -0
- package/dist/u0-primitives/button/Button.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/button/Button.test.js +58 -0
- package/dist/u0-primitives/button/index.d.ts +3 -0
- package/dist/u0-primitives/button/index.d.ts.map +1 -0
- package/dist/u0-primitives/button/index.js +1 -0
- package/{src → dist}/u0-primitives/card/Card.svelte +71 -48
- package/dist/u0-primitives/card/Card.svelte.d.ts +18 -0
- package/dist/u0-primitives/card/Card.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/card/index.d.ts +3 -0
- package/dist/u0-primitives/card/index.d.ts.map +1 -0
- package/dist/u0-primitives/card/index.js +1 -0
- package/dist/u0-primitives/command-palette/CommandPalette.svelte +542 -0
- package/dist/u0-primitives/command-palette/CommandPalette.svelte.d.ts +25 -0
- package/dist/u0-primitives/command-palette/CommandPalette.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/command-palette/command-types.d.ts +109 -0
- package/dist/u0-primitives/command-palette/command-types.d.ts.map +1 -0
- package/dist/u0-primitives/command-palette/command-types.js +7 -0
- package/dist/u0-primitives/command-palette/commandStore.svelte.d.ts +100 -0
- package/dist/u0-primitives/command-palette/commandStore.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/command-palette/commandStore.svelte.js +278 -0
- package/dist/u0-primitives/command-palette/index.d.ts +16 -0
- package/dist/u0-primitives/command-palette/index.d.ts.map +1 -0
- package/dist/u0-primitives/command-palette/index.js +14 -0
- package/{src → dist}/u0-primitives/dropdown/Dropdown.svelte +7 -4
- package/dist/u0-primitives/dropdown/Dropdown.svelte.d.ts +21 -0
- package/dist/u0-primitives/dropdown/Dropdown.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/dropdown/Dropdown.test.js +108 -0
- package/dist/u0-primitives/dropdown/index.d.ts +3 -0
- package/dist/u0-primitives/dropdown/index.d.ts.map +1 -0
- package/dist/u0-primitives/dropdown/index.js +1 -0
- package/dist/u0-primitives/grant-badge/GrantStatusBadge.svelte +80 -0
- package/dist/u0-primitives/grant-badge/GrantStatusBadge.svelte.d.ts +9 -0
- package/dist/u0-primitives/grant-badge/GrantStatusBadge.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/grant-badge/index.d.ts +2 -0
- package/dist/u0-primitives/grant-badge/index.d.ts.map +1 -0
- package/dist/u0-primitives/grant-badge/index.js +1 -0
- package/dist/u0-primitives/index.d.ts +27 -0
- package/dist/u0-primitives/index.d.ts.map +1 -0
- package/{src/u0-primitives/index.ts → dist/u0-primitives/index.js} +12 -22
- package/dist/u0-primitives/input/Input.svelte +410 -0
- package/dist/u0-primitives/input/Input.svelte.d.ts +32 -0
- package/dist/u0-primitives/input/Input.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/input/Input.test.js +64 -0
- package/dist/u0-primitives/input/index.d.ts +3 -0
- package/dist/u0-primitives/input/index.d.ts.map +1 -0
- package/dist/u0-primitives/input/index.js +1 -0
- package/{src → dist}/u0-primitives/modal/Modal.svelte +1 -1
- package/dist/u0-primitives/modal/Modal.svelte.d.ts +31 -0
- package/dist/u0-primitives/modal/Modal.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/modal/Modal.test.js +94 -0
- package/dist/u0-primitives/modal/index.d.ts +3 -0
- package/dist/u0-primitives/modal/index.d.ts.map +1 -0
- package/dist/u0-primitives/rsvp/RsvpReader.svelte +256 -0
- package/dist/u0-primitives/rsvp/RsvpReader.svelte.d.ts +13 -0
- package/dist/u0-primitives/rsvp/RsvpReader.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/rsvp/rsvp-utils.d.ts +46 -0
- package/dist/u0-primitives/rsvp/rsvp-utils.d.ts.map +1 -0
- package/dist/u0-primitives/rsvp/rsvp-utils.js +92 -0
- package/{src → dist}/u0-primitives/spinner/Spinner.svelte +3 -3
- package/dist/u0-primitives/spinner/Spinner.svelte.d.ts +9 -0
- package/dist/u0-primitives/spinner/Spinner.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/spinner/Spinner.test.js +58 -0
- package/dist/u0-primitives/spinner/index.d.ts +3 -0
- package/dist/u0-primitives/spinner/index.d.ts.map +1 -0
- package/dist/u0-primitives/spinner/index.js +1 -0
- package/dist/u0-primitives/steps/Steps.svelte +186 -0
- package/dist/u0-primitives/steps/Steps.svelte.d.ts +18 -0
- package/dist/u0-primitives/steps/Steps.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/steps/index.d.ts +3 -0
- package/dist/u0-primitives/steps/index.d.ts.map +1 -0
- package/dist/u0-primitives/steps/index.js +1 -0
- package/{src → dist}/u0-primitives/tabs/Tabs.svelte +2 -2
- package/dist/u0-primitives/tabs/Tabs.svelte.d.ts +14 -0
- package/dist/u0-primitives/tabs/Tabs.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/tabs/Tabs.test.js +81 -0
- package/dist/u0-primitives/tabs/index.d.ts +3 -0
- package/dist/u0-primitives/tabs/index.d.ts.map +1 -0
- package/dist/u0-primitives/tabs/index.js +1 -0
- package/dist/u0-primitives/tabs/tabs-types.d.ts +8 -0
- package/dist/u0-primitives/tabs/tabs-types.d.ts.map +1 -0
- package/dist/u0-primitives/tabs/tabs-types.js +3 -0
- package/{src → dist}/u0-primitives/toggle/Toggle.svelte +8 -10
- package/dist/u0-primitives/toggle/Toggle.svelte.d.ts +13 -0
- package/dist/u0-primitives/toggle/Toggle.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/toggle/Toggle.test.js +46 -0
- package/dist/u0-primitives/toggle/index.d.ts +3 -0
- package/dist/u0-primitives/toggle/index.d.ts.map +1 -0
- package/dist/u0-primitives/toggle/index.js +1 -0
- package/{src → dist}/u0-primitives/tooltip/Tooltip.svelte +1 -1
- package/dist/u0-primitives/tooltip/Tooltip.svelte.d.ts +12 -0
- package/dist/u0-primitives/tooltip/Tooltip.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/tooltip/Tooltip.test.js +150 -0
- package/dist/u0-primitives/tooltip/index.d.ts +3 -0
- package/dist/u0-primitives/tooltip/index.d.ts.map +1 -0
- package/dist/u0-primitives/tooltip/index.js +1 -0
- package/dist/u0-primitives/web-components/button-component.d.ts +13 -0
- package/dist/u0-primitives/web-components/button-component.d.ts.map +1 -0
- package/dist/u0-primitives/web-components/button-component.js +87 -0
- package/dist/u0-primitives/web-components/input-component.d.ts +13 -0
- package/dist/u0-primitives/web-components/input-component.d.ts.map +1 -0
- package/dist/u0-primitives/web-components/input-component.js +91 -0
- package/{src → dist}/v0-diagrams/DiagramPanel.svelte +1 -1
- package/dist/v0-diagrams/DiagramPanel.svelte.d.ts +10 -0
- package/dist/v0-diagrams/DiagramPanel.svelte.d.ts.map +1 -0
- package/dist/v0-diagrams/MarkmapDiagram.svelte.d.ts +9 -0
- package/dist/v0-diagrams/MarkmapDiagram.svelte.d.ts.map +1 -0
- package/dist/v0-diagrams/MermaidDiagram.svelte.d.ts +9 -0
- package/dist/v0-diagrams/MermaidDiagram.svelte.d.ts.map +1 -0
- package/{src/v0-diagrams/index.ts → dist/v0-diagrams/index.d.ts} +1 -0
- package/dist/v0-diagrams/index.d.ts.map +1 -0
- package/dist/v0-diagrams/index.js +3 -0
- package/dist/v0-diagrams/types.d.ts +25 -0
- package/dist/v0-diagrams/types.d.ts.map +1 -0
- package/dist/v0-diagrams/types.js +1 -0
- package/dist/v0-diagrams/v0-tokens.css +6 -0
- package/{src → dist}/x0-enchanted-blocks/components/EnchantedBlock.svelte +15 -15
- package/dist/x0-enchanted-blocks/components/EnchantedBlock.svelte.d.ts +28 -0
- package/dist/x0-enchanted-blocks/components/EnchantedBlock.svelte.d.ts.map +1 -0
- package/{src → dist}/x0-enchanted-blocks/components/NodepadBlock.svelte +13 -13
- package/dist/x0-enchanted-blocks/components/NodepadBlock.svelte.d.ts +11 -0
- package/dist/x0-enchanted-blocks/components/NodepadBlock.svelte.d.ts.map +1 -0
- package/dist/x0-enchanted-blocks/core/block-layout.d.ts +79 -0
- package/dist/x0-enchanted-blocks/core/block-layout.d.ts.map +1 -0
- package/dist/x0-enchanted-blocks/core/block-layout.js +135 -0
- package/dist/x0-enchanted-blocks/core/block-types.d.ts +56 -0
- package/dist/x0-enchanted-blocks/core/block-types.d.ts.map +1 -0
- package/dist/x0-enchanted-blocks/core/block-types.js +151 -0
- package/dist/x0-enchanted-blocks/index.d.ts +7 -0
- package/dist/x0-enchanted-blocks/index.d.ts.map +1 -0
- package/dist/x0-enchanted-blocks/index.js +13 -0
- package/package.json +129 -68
- package/src/base.css +48 -62
- package/src/d0-data-viz/d0-tokens.css +5 -5
- package/src/n0-node-graph/n0-tokens.css +4 -4
- package/src/n4-adaptive-manifold/n4-tokens.css +7 -7
- package/src/p0-primitives/tokens/control-room.css +6 -6
- package/src/p0-primitives/tokens/tokens.css +194 -87
- package/src/p0-primitives/tokens/tokens.json +114 -28
- package/src/p0-primitives/tokens/validity-tokens.css +83 -0
- package/src/u0-primitives/animated-icon/README.md +20 -3
- package/src/d0-data-viz/checkpoint-types.ts +0 -162
- package/src/d0-data-viz/index.ts +0 -58
- package/src/d0-data-viz/storage-map-types.ts +0 -142
- package/src/d0-data-viz/theme-integration.ts +0 -134
- package/src/d0-data-viz/types.ts +0 -53
- package/src/editor/index.ts +0 -2
- package/src/entity-graph-view/types.ts +0 -364
- package/src/epistemic/types.ts +0 -134
- package/src/epistemic/utils.ts +0 -32
- package/src/f0-forms/validation/validate.ts +0 -47
- package/src/fabric/data/index.ts +0 -21
- package/src/fabric/feedback/ToastContainer.svelte +0 -122
- package/src/fabric/input/CommandBar.svelte +0 -79
- package/src/fabric/layout/GlassBox.svelte +0 -193
- package/src/index.ts +0 -68
- package/src/l0-layout/block-writer/block-writer-types.ts +0 -63
- package/src/l0-layout/block-writer/markdown.ts +0 -110
- package/src/l0-layout/grove/grove-types.ts +0 -29
- package/src/n0-node-graph/node-port-types.ts +0 -19
- package/src/n0-node-graph/types.ts +0 -96
- package/src/n0-node-graph/validate.test.ts +0 -722
- package/src/n0-node-graph/validate.ts +0 -371
- package/src/n1-flow-canvas/graph-state.svelte.ts +0 -95
- package/src/n1-flow-canvas/layout.ts +0 -118
- package/src/n1-flow-canvas/layout.worker.ts +0 -128
- package/src/n1-flow-canvas/types.ts +0 -102
- package/src/n1-flow-canvas/utils.ts +0 -146
- package/src/n2-manifold-disk/poincare.ts +0 -184
- package/src/n3-force-graph/animated-edge.ts +0 -107
- package/src/n3-force-graph/health-node.ts +0 -128
- package/src/n3-force-graph/types.ts +0 -94
- package/src/n4-adaptive-manifold/classifier.ts +0 -139
- package/src/n4-adaptive-manifold/orchestrator.ts +0 -301
- package/src/n4-adaptive-manifold/phase-theme.ts +0 -92
- package/src/n4-adaptive-manifold/pinnacle-events.ts +0 -135
- package/src/n4-adaptive-manifold/providers/gravitational-provider.ts +0 -191
- package/src/n4-adaptive-manifold/providers/manifold-provider.ts +0 -276
- package/src/n4-adaptive-manifold/transition.ts +0 -90
- package/src/n4-adaptive-manifold/types.ts +0 -313
- package/src/p0-primitives/tokens/index.ts +0 -6
- package/src/p0-primitives/types/index.ts +0 -123
- package/src/p0-primitives/types/plugin-types.ts +0 -74
- package/src/p0-primitives/utils/index.ts +0 -39
- package/src/platform/hud-protocol.ts +0 -20
- package/src/s0-state/create-store.ts +0 -84
- package/src/s0-state/derived.ts +0 -41
- package/src/s0-state/index.ts +0 -6
- package/src/spatial/BspTilingCanvas.svelte +0 -232
- package/src/spatial/ForceCanvas.svelte +0 -289
- package/src/spatial/SnapZoomCamera.svelte +0 -185
- package/src/spatial/camera-types.ts +0 -45
- package/src/spatial/content-proportional-bsp.ts +0 -253
- package/src/spatial/force-canvas-types.ts +0 -102
- package/src/spatial/lod-types.ts +0 -70
- package/src/spatial/zone-tiler-types.ts +0 -177
- package/src/t0-transport/connection.ts +0 -34
- package/src/t0-transport/error.ts +0 -37
- package/src/t0-transport/events.ts +0 -50
- package/src/t0-transport/index.ts +0 -6
- package/src/t0-transport/invoke.ts +0 -30
- package/src/u0-primitives/allay-gauge/AllayGauge.svelte +0 -90
- package/src/u0-primitives/allay-gauge/index.ts +0 -1
- package/src/u0-primitives/animated-icon/index.ts +0 -31
- package/src/u0-primitives/assay-badge/AssayBadge.svelte +0 -121
- package/src/u0-primitives/assay-badge/AssaySignalBar.svelte +0 -83
- package/src/u0-primitives/assay-badge/index.ts +0 -2
- package/src/u0-primitives/expert-badge/ExpertBadge.svelte +0 -89
- package/src/u0-primitives/expert-badge/index.ts +0 -1
- package/src/u0-primitives/input/Input.svelte +0 -237
- package/src/u0-primitives/tabs/tabs-types.ts +0 -11
- package/src/v0-diagrams/types.ts +0 -28
- package/src/x0-enchanted-blocks/ENCHANTED_BLOCKS_SPEC.md +0 -457
- package/src/x0-enchanted-blocks/core/block-layout.ts +0 -211
- package/src/x0-enchanted-blocks/core/block-types.ts +0 -227
- package/src/x0-enchanted-blocks/index.ts +0 -46
- /package/{src/b0-app-shell/clarification-overlay/index.ts → dist/b0-app-shell/clarification-overlay/index.js} +0 -0
- /package/{src → dist}/demos/ControlRoomDemo.svelte +0 -0
- /package/{src/epistemic/index.ts → dist/epistemic/index.js} +0 -0
- /package/{src/g0-geo/index.ts → dist/g0-geo/index.js} +0 -0
- /package/{src → dist}/l0-layout/block-writer/BlockWriter.svelte +0 -0
- /package/{src → dist}/l0-layout/chat-view/ChatViewLayout.svelte +0 -0
- /package/{src/l0-layout/epistemic/index.ts → dist/l0-layout/epistemic/index.js} +0 -0
- /package/{src → dist}/l0-layout/grove/AccordCard.svelte +0 -0
- /package/{src → dist}/l0-layout/grove/GroveCard.svelte +0 -0
- /package/{src → dist}/l0-layout/grove/MemberBadge.svelte +0 -0
- /package/{src → dist}/l0-layout/grove/MemberList.svelte +0 -0
- /package/{src → dist}/l0-layout/kanban/KanbanCard.svelte +0 -0
- /package/{src → dist}/l0-layout/kanban/KanbanViewLayout.svelte +0 -0
- /package/{src → dist}/l0-layout/workspace/WorkspaceLayout.svelte +0 -0
- /package/{src → dist}/n0-node-graph/GraphEditor.svelte +0 -0
- /package/{src → dist}/n0-node-graph/GraphHistory.svelte +0 -0
- /package/{src → dist}/n0-node-graph/NodeCanvas.svelte +0 -0
- /package/{src → dist}/n0-node-graph/NodeEdge.svelte +0 -0
- /package/{src → dist}/n0-node-graph/NodePort.svelte +0 -0
- /package/{src → dist}/n2-manifold-disk/ManifoldDisk.svelte +0 -0
- /package/{src → dist}/n3-force-graph/GraphTooltip.svelte +0 -0
- /package/{src → dist}/stores/vaultStore.svelte +0 -0
- /package/{src/u0-primitives/modal/index.ts → dist/u0-primitives/modal/index.js} +0 -0
- /package/{src → dist}/v0-diagrams/MarkmapDiagram.svelte +0 -0
- /package/{src → dist}/v0-diagrams/MermaidDiagram.svelte +0 -0
- /package/{src → dist}/vite-env.d.ts +0 -0
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import type { PinnacleEvent, LoopPhase, NodeIndicatorState } from './types.js';
|
|
2
|
-
|
|
3
|
-
/** Minimum gap (ms) between claim and action to infer "thinking" */
|
|
4
|
-
const THINK_GAP_MS = 2000;
|
|
5
|
-
|
|
6
|
-
/** Track per-agent state for gap-based inference */
|
|
7
|
-
interface AgentTracker {
|
|
8
|
-
lastEventSequence: number;
|
|
9
|
-
lastEventTime: number;
|
|
10
|
-
currentTask: string | null;
|
|
11
|
-
loopPhase: LoopPhase;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Tier A inference layer: derives PinnacleEvents from sigchain snapshot deltas.
|
|
16
|
-
*
|
|
17
|
-
* When tier B (direct Garden telemetry) arrives, this class is replaced.
|
|
18
|
-
* The PinnacleEvent shape is the same — canvas code doesn't change.
|
|
19
|
-
*/
|
|
20
|
-
export class PinnacleEventInferrer {
|
|
21
|
-
private agents: Map<string, AgentTracker> = new Map();
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Process a batch of sigchain-derived changes and return PinnacleEvents.
|
|
25
|
-
* Called by PinnacleView on each poller tick.
|
|
26
|
-
*/
|
|
27
|
-
inferFromSnapshot(
|
|
28
|
-
nodes: ReadonlyArray<{ id: string; kind: string; metadata: Record<string, unknown> }>,
|
|
29
|
-
_edges: ReadonlyArray<{ source: string; target: string; relation: string }>,
|
|
30
|
-
sequence: number,
|
|
31
|
-
): PinnacleEvent[] {
|
|
32
|
-
const events: PinnacleEvent[] = [];
|
|
33
|
-
const now = performance.now();
|
|
34
|
-
|
|
35
|
-
// Find all agent nodes
|
|
36
|
-
const agentNodes = nodes.filter((n) => n.kind === 'agent');
|
|
37
|
-
|
|
38
|
-
for (const agent of agentNodes) {
|
|
39
|
-
const existingTracker = this.agents.get(agent.id);
|
|
40
|
-
const isFirstSeen = !existingTracker;
|
|
41
|
-
const tracker = existingTracker ?? {
|
|
42
|
-
lastEventSequence: 0,
|
|
43
|
-
lastEventTime: now,
|
|
44
|
-
currentTask: null,
|
|
45
|
-
loopPhase: 'idle' as LoopPhase,
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
// Determine what the agent is doing from metadata
|
|
49
|
-
const claimedTask = agent.metadata?.current_task as string | undefined;
|
|
50
|
-
const actionSequence = (agent.metadata?.last_action_sequence as number) ?? 0;
|
|
51
|
-
|
|
52
|
-
let loopPhase: LoopPhase = 'idle';
|
|
53
|
-
let targetId: string | null = null;
|
|
54
|
-
|
|
55
|
-
if (claimedTask && claimedTask !== tracker.currentTask) {
|
|
56
|
-
// Agent just claimed a new task (or first seen with a task) → perceive
|
|
57
|
-
loopPhase = 'perceive';
|
|
58
|
-
targetId = claimedTask;
|
|
59
|
-
} else if (claimedTask && actionSequence > tracker.lastEventSequence) {
|
|
60
|
-
// Agent has a task and just performed an action → act
|
|
61
|
-
loopPhase = 'act';
|
|
62
|
-
targetId = claimedTask;
|
|
63
|
-
} else if (!isFirstSeen && claimedTask && now - tracker.lastEventTime > THINK_GAP_MS) {
|
|
64
|
-
// Gap inference only after baseline established — avoids false 'think' on first poll.
|
|
65
|
-
// If constructed 3s before first poll, every agent would immediately enter think.
|
|
66
|
-
loopPhase = 'think';
|
|
67
|
-
targetId = claimedTask;
|
|
68
|
-
} else if (claimedTask) {
|
|
69
|
-
// Agent has a task, recent action, within gap → still acting
|
|
70
|
-
loopPhase = tracker.loopPhase === 'idle' ? 'perceive' : tracker.loopPhase;
|
|
71
|
-
targetId = claimedTask;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// Only emit event if phase changed or target changed
|
|
75
|
-
if (loopPhase !== tracker.loopPhase || targetId !== tracker.currentTask) {
|
|
76
|
-
events.push({
|
|
77
|
-
agentId: agent.id,
|
|
78
|
-
targetId,
|
|
79
|
-
loopPhase,
|
|
80
|
-
sequence,
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
this.agents.set(agent.id, {
|
|
85
|
-
lastEventSequence: actionSequence || tracker.lastEventSequence,
|
|
86
|
-
lastEventTime:
|
|
87
|
-
actionSequence > tracker.lastEventSequence ? now : tracker.lastEventTime,
|
|
88
|
-
currentTask: claimedTask ?? null,
|
|
89
|
-
loopPhase,
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// Detect departed agents (were tracked, no longer in nodes)
|
|
94
|
-
const currentAgentIds = new Set(agentNodes.map((a) => a.id));
|
|
95
|
-
for (const [agentId, tracker] of this.agents) {
|
|
96
|
-
if (!currentAgentIds.has(agentId) && tracker.loopPhase !== 'idle') {
|
|
97
|
-
events.push({
|
|
98
|
-
agentId,
|
|
99
|
-
targetId: null,
|
|
100
|
-
loopPhase: 'idle',
|
|
101
|
-
sequence,
|
|
102
|
-
});
|
|
103
|
-
this.agents.delete(agentId);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
return events;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Convert persistent agent tracker state into NodeIndicatorState map for the canvas.
|
|
112
|
-
*
|
|
113
|
-
* Reads from this.agents (updated by inferFromSnapshot), NOT from emitted events.
|
|
114
|
-
* Events only fire on state changes — reading from the tracker ensures a stable
|
|
115
|
-
* 'think' pulse persists across ticks where nothing changes.
|
|
116
|
-
*
|
|
117
|
-
* Must be called after inferFromSnapshot on the same tick.
|
|
118
|
-
*/
|
|
119
|
-
toIndicatorStates(): Map<string, NodeIndicatorState> {
|
|
120
|
-
const states = new Map<string, NodeIndicatorState>();
|
|
121
|
-
|
|
122
|
-
for (const [agentId, tracker] of this.agents) {
|
|
123
|
-
if (tracker.loopPhase !== 'idle') {
|
|
124
|
-
states.set(agentId, {
|
|
125
|
-
loopPhase: tracker.loopPhase,
|
|
126
|
-
phaseElapsedMs: 0,
|
|
127
|
-
traceTargetId: tracker.currentTask,
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return states;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
}
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
ManifoldSnapshot,
|
|
3
|
-
GravitationalConfig,
|
|
4
|
-
AlgorithmProvider,
|
|
5
|
-
LayoutAlgorithm,
|
|
6
|
-
} from '../types.js';
|
|
7
|
-
import type { NodeLayout, LayoutResult } from '../../n1-flow-canvas/types.js';
|
|
8
|
-
import { DEFAULT_GRAVITATIONAL_CONFIG } from '../types.js';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Node sizes by kind with support for measured content.
|
|
12
|
-
* Checks node.data.measuredSize first (from Enchanted Blocks),
|
|
13
|
-
* then falls back to fixed sizes by kind.
|
|
14
|
-
*/
|
|
15
|
-
function nodeSize(
|
|
16
|
-
kind: string,
|
|
17
|
-
status: string,
|
|
18
|
-
data?: Record<string, unknown>
|
|
19
|
-
): { w: number; h: number } {
|
|
20
|
-
// Check for measured size from Enchanted Blocks integration
|
|
21
|
-
const measured = data?.measuredSize as { w: number; h: number } | undefined;
|
|
22
|
-
if (measured && measured.w > 0 && measured.h > 0) {
|
|
23
|
-
return measured;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// Fall back to fixed sizes by kind
|
|
27
|
-
switch (kind) {
|
|
28
|
-
case 'agent': return { w: 52, h: 46 }; // Large hexagon
|
|
29
|
-
case 'task': return { w: 72, h: 48 }; // Compact badge with ID
|
|
30
|
-
case 'signal': return { w: 10, h: 10 };
|
|
31
|
-
default: return { w: 140, h: 32 };
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Gravitational layout with deterministic spiral placement.
|
|
37
|
-
* Guarantees no overlap by construction using explicit overlap checking.
|
|
38
|
-
*/
|
|
39
|
-
export class GravitationalProvider implements AlgorithmProvider {
|
|
40
|
-
readonly algorithm: LayoutAlgorithm = 'gravitational';
|
|
41
|
-
private config: GravitationalConfig;
|
|
42
|
-
|
|
43
|
-
constructor(config: Partial<GravitationalConfig> = {}) {
|
|
44
|
-
this.config = { ...DEFAULT_GRAVITATIONAL_CONFIG, ...config };
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
updateConfig(config: Partial<GravitationalConfig>): void {
|
|
48
|
-
this.config = { ...this.config, ...config };
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
async layout(
|
|
52
|
-
snapshot: ManifoldSnapshot,
|
|
53
|
-
canvasWidth: number,
|
|
54
|
-
canvasHeight: number,
|
|
55
|
-
): Promise<LayoutResult> {
|
|
56
|
-
const { nodes, edges } = snapshot;
|
|
57
|
-
if (nodes.length === 0) {
|
|
58
|
-
return { positions: new Map(), bfsOrder: [] };
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Layout world: compact to fit viewport
|
|
62
|
-
const layoutDim = Math.max(canvasWidth, canvasHeight) * 1.2;
|
|
63
|
-
const cx = layoutDim / 2;
|
|
64
|
-
const cy = layoutDim / 2;
|
|
65
|
-
|
|
66
|
-
// ── Deterministic spiral layout with guaranteed separation ──────────────
|
|
67
|
-
// Sort nodes: agents first (center), then claimed tasks, then by priority
|
|
68
|
-
const sortedNodes = [...nodes].sort((a, b) => {
|
|
69
|
-
if (a.kind === 'agent' && b.kind !== 'agent') return -1;
|
|
70
|
-
if (a.kind !== 'agent' && b.kind === 'agent') return 1;
|
|
71
|
-
const aClaimed = a.metadata?.claiming_agent ? 1 : 0;
|
|
72
|
-
const bClaimed = b.metadata?.claiming_agent ? 1 : 0;
|
|
73
|
-
if (aClaimed !== bClaimed) return bClaimed - aClaimed;
|
|
74
|
-
const priorityOrder: Record<string, number> = { p0: 0, p1: 1, p2: 2, p3: 3 };
|
|
75
|
-
const aPriority = typeof a.metadata?.priority === 'string' ? a.metadata.priority : '';
|
|
76
|
-
const bPriority = typeof b.metadata?.priority === 'string' ? b.metadata.priority : '';
|
|
77
|
-
return (priorityOrder[aPriority] ?? 4) - (priorityOrder[bPriority] ?? 4);
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
// Place nodes in spiral with guaranteed minimum spacing
|
|
81
|
-
const positions = new Map<string, NodeLayout>();
|
|
82
|
-
const placed: Array<{ x: number; y: number; w: number; h: number }> = [];
|
|
83
|
-
|
|
84
|
-
for (let i = 0; i < sortedNodes.length; i++) {
|
|
85
|
-
const node = sortedNodes[i];
|
|
86
|
-
const { w, h } = nodeSize(node.kind, node.status, node.metadata);
|
|
87
|
-
|
|
88
|
-
// Golden angle spiral for even distribution
|
|
89
|
-
const goldenAngle = Math.PI * (3 - Math.sqrt(5));
|
|
90
|
-
const angle = i * goldenAngle;
|
|
91
|
-
|
|
92
|
-
// Radius grows with sqrt(index) for equal area distribution
|
|
93
|
-
// Start with minimum spacing of 60px between nodes
|
|
94
|
-
const minSpacing = 60;
|
|
95
|
-
const baseRadius = Math.sqrt(i) * minSpacing * 1.5;
|
|
96
|
-
|
|
97
|
-
let x = cx + Math.cos(angle) * baseRadius - w / 2;
|
|
98
|
-
let y = cy + Math.sin(angle) * baseRadius - h / 2;
|
|
99
|
-
|
|
100
|
-
// Check for overlaps with placed nodes and nudge if needed
|
|
101
|
-
let attempts = 0;
|
|
102
|
-
while (attempts < 50) {
|
|
103
|
-
let hasOverlap = false;
|
|
104
|
-
for (const p of placed) {
|
|
105
|
-
const dx = Math.abs((x + w/2) - p.x);
|
|
106
|
-
const dy = Math.abs((y + h/2) - p.y);
|
|
107
|
-
const minDx = (w + p.w) / 2 + minSpacing;
|
|
108
|
-
const minDy = (h + p.h) / 2 + minSpacing;
|
|
109
|
-
if (dx < minDx && dy < minDy) {
|
|
110
|
-
hasOverlap = true;
|
|
111
|
-
// Nudge outward along the angle
|
|
112
|
-
const nudge = minSpacing * (1 + attempts * 0.2);
|
|
113
|
-
x = cx + Math.cos(angle) * (baseRadius + nudge) - w / 2;
|
|
114
|
-
y = cy + Math.sin(angle) * (baseRadius + nudge) - h / 2;
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
if (!hasOverlap) break;
|
|
119
|
-
attempts++;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// Clamp to bounds
|
|
123
|
-
x = Math.max(20, Math.min(layoutDim - w - 20, x));
|
|
124
|
-
y = Math.max(20, Math.min(layoutDim - h - 20, y));
|
|
125
|
-
|
|
126
|
-
positions.set(node.id, { id: node.id, x, y, width: w, height: h });
|
|
127
|
-
placed.push({ x: x + w/2, y: y + h/2, w, h });
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
// BFS order for edge reveal
|
|
131
|
-
const incoming = new Set(edges.map((e) => e.target));
|
|
132
|
-
const roots = nodes.filter((n) => !incoming.has(n.id)).map((n) => n.id);
|
|
133
|
-
const visited = new Set<string>();
|
|
134
|
-
const bfsOrder: string[] = [];
|
|
135
|
-
const queue = [...roots];
|
|
136
|
-
while (queue.length > 0) {
|
|
137
|
-
const id = queue.shift()!;
|
|
138
|
-
if (visited.has(id)) continue;
|
|
139
|
-
visited.add(id);
|
|
140
|
-
bfsOrder.push(id);
|
|
141
|
-
for (const e of edges) {
|
|
142
|
-
if (e.source === id && !visited.has(e.target)) queue.push(e.target);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
for (const n of nodes) {
|
|
146
|
-
if (!visited.has(n.id)) bfsOrder.push(n.id);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
return { positions, bfsOrder };
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/** Classify node into gravitational zone based on kind + metadata */
|
|
153
|
-
private classifyZone(
|
|
154
|
-
kind: string,
|
|
155
|
-
metadata: Record<string, unknown>,
|
|
156
|
-
): 'center' | 'mid' | 'periphery' {
|
|
157
|
-
// Agents: zone depends on dominant rotation axis
|
|
158
|
-
if (kind === 'agent') {
|
|
159
|
-
const sparkByAxis = metadata.spark_by_axis as
|
|
160
|
-
| [number, number, number]
|
|
161
|
-
| undefined;
|
|
162
|
-
if (sparkByAxis) {
|
|
163
|
-
const [i, j, k] = sparkByAxis;
|
|
164
|
-
const max = Math.max(i, j, k);
|
|
165
|
-
// Tie-break: k (relation) beats j (actuation) beats i (accumulation).
|
|
166
|
-
// Intentional: balanced agents (i===j===k) land in 'center' — coordination role.
|
|
167
|
-
if (max === k) return 'center'; // Relation axis dominant → coordination
|
|
168
|
-
if (max === j) return 'mid'; // Actuation axis dominant → worker
|
|
169
|
-
return 'periphery'; // Accumulation axis dominant → epistemic
|
|
170
|
-
}
|
|
171
|
-
return 'mid'; // default for agents without axis data
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// Tasks: active tasks (claimed) pull to mid; idle tasks orbit by priority.
|
|
175
|
-
// p0 = critical → center; p1 = high → mid; p2/p3 = background → periphery.
|
|
176
|
-
// This gives the idle Pinnacle a legible priority hierarchy, not a random scatter.
|
|
177
|
-
if (kind === 'task') {
|
|
178
|
-
if (metadata.claiming_agent) return 'mid';
|
|
179
|
-
const priority = metadata.priority as string | undefined;
|
|
180
|
-
if (priority === 'p0') return 'center';
|
|
181
|
-
if (priority === 'p1') return 'mid';
|
|
182
|
-
return 'periphery';
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// Signals: always middleground
|
|
186
|
-
if (kind === 'signal') return 'mid';
|
|
187
|
-
|
|
188
|
-
// Capabilities, intents: background/deferred
|
|
189
|
-
return 'periphery';
|
|
190
|
-
}
|
|
191
|
-
}
|
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
// ManifoldProvider — S³ stereographic projection layout.
|
|
2
|
-
// Pure arithmetic: quaternion orientation → 2D disk coordinates.
|
|
3
|
-
// O(n), deterministic, zero simulation.
|
|
4
|
-
//
|
|
5
|
-
// Agents: projected from actual [w,i,j,k] via isometric rotation + orthographic flatten.
|
|
6
|
-
// Tasks: positioned by rotation_axis metadata, row-packed within axis clusters.
|
|
7
|
-
//
|
|
8
|
-
// S-02: no Math.random, no HashMap — all placement is arithmetic.
|
|
9
|
-
|
|
10
|
-
import type {
|
|
11
|
-
ManifoldSnapshot,
|
|
12
|
-
AlgorithmProvider,
|
|
13
|
-
LayoutAlgorithm,
|
|
14
|
-
} from '../types.js';
|
|
15
|
-
import type { NodeLayout, LayoutResult } from '../../n1-flow-canvas/types.js';
|
|
16
|
-
|
|
17
|
-
// ── Node sizes (symbol body only, not flag extent) ──────────────────────────
|
|
18
|
-
|
|
19
|
-
function nodeSize(kind: string, status: string): { w: number; h: number } {
|
|
20
|
-
switch (kind) {
|
|
21
|
-
case 'agent': return { w: 54, h: 48 };
|
|
22
|
-
case 'task': return status === 'active' ? { w: 120, h: 32 } : { w: 90, h: 26 };
|
|
23
|
-
case 'signal': return { w: 28, h: 24 };
|
|
24
|
-
default: return { w: 90, h: 26 };
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// ── Axis mapping ─────────────────────────────────────────────────────────────
|
|
29
|
-
// i = Accumulation (left), j = Actuation (right), k = Relation (top)
|
|
30
|
-
// These are the canonical axis positions on the projected disk.
|
|
31
|
-
|
|
32
|
-
const AXIS_POSITIONS: Record<string, { x: number; y: number }> = {
|
|
33
|
-
accumulation: { x: -0.6, y: 0.0 }, // i-axis → left
|
|
34
|
-
actuation: { x: 0.6, y: 0.0 }, // j-axis → right
|
|
35
|
-
relation: { x: 0.0, y: -0.6 }, // k-axis → top
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
// Hybrid axis positions are interpolated between the two axes.
|
|
39
|
-
function hybridPosition(
|
|
40
|
-
axisA: string,
|
|
41
|
-
weightA: number,
|
|
42
|
-
axisB: string,
|
|
43
|
-
weightB: number,
|
|
44
|
-
): { x: number; y: number } {
|
|
45
|
-
const a = AXIS_POSITIONS[axisA] ?? { x: 0, y: 0 };
|
|
46
|
-
const b = AXIS_POSITIONS[axisB] ?? { x: 0, y: 0 };
|
|
47
|
-
return {
|
|
48
|
-
x: a.x * weightA + b.x * weightB,
|
|
49
|
-
y: a.y * weightA + b.y * weightB,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Column-based fallback positions — spread tasks across the disk by TOS lifecycle stage.
|
|
54
|
-
// Used when rotation_axis metadata is not yet set (common during early pipeline stages).
|
|
55
|
-
// Positions are in normalized disk coordinates [-1, 1].
|
|
56
|
-
// Cluster centers are separated so that KiCad flags (~140px wide) don't overlap
|
|
57
|
-
// across clusters. Flags flip direction at x > 55% viewport width, so left-side
|
|
58
|
-
// clusters extend right and right-side clusters extend left — keep same-Y clusters
|
|
59
|
-
// at least 0.45 normalized units apart in X (~180px at 960px canvas width).
|
|
60
|
-
const COLUMN_POSITIONS: Record<string, { x: number; y: number }> = {
|
|
61
|
-
SEED: { x: -0.62, y: -0.28 }, // upper-left — proposing, accumulating
|
|
62
|
-
SPROUT: { x: -0.22, y: -0.70 }, // top-center — growing, active
|
|
63
|
-
WEED: { x: -0.62, y: 0.42 }, // lower-left — being weeded
|
|
64
|
-
GO: { x: 0.65, y: 0.02 }, // right — actuating, running
|
|
65
|
-
CONSULT: { x: 0.52, y: -0.52 }, // upper-right — relation, consulting
|
|
66
|
-
FREEZE: { x: 0.52, y: 0.50 }, // lower-right — blocked, frozen
|
|
67
|
-
COMPOST: { x: 0.00, y: 0.65 }, // bottom — completed
|
|
68
|
-
PRUNE: { x: 0.22, y: 0.65 }, // bottom-right — pruned
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
// Parse rotation_axis string back to a 2D position.
|
|
72
|
-
// Pure axis: "actuation" → AXIS_POSITIONS["actuation"]
|
|
73
|
-
// Hybrid: "accumulation:0.6,actuation:0.4" → interpolated
|
|
74
|
-
// Null with cluster hint: falls back to column-based spread position.
|
|
75
|
-
function axisToPosition(
|
|
76
|
-
rotationAxis: string | null | undefined,
|
|
77
|
-
cluster?: string | null,
|
|
78
|
-
): { x: number; y: number } {
|
|
79
|
-
if (!rotationAxis) {
|
|
80
|
-
// Fall back to column-based spread so tasks aren't all at center
|
|
81
|
-
return COLUMN_POSITIONS[cluster ?? ''] ?? { x: 0, y: 0.3 };
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if (rotationAxis.includes(',')) {
|
|
85
|
-
// Hybrid format: "axisA:weightA,axisB:weightB"
|
|
86
|
-
const parts = rotationAxis.split(',');
|
|
87
|
-
const [axisA, wA] = parts[0].split(':');
|
|
88
|
-
const [axisB, wB] = parts[1].split(':');
|
|
89
|
-
return hybridPosition(axisA, parseFloat(wA), axisB, parseFloat(wB));
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return AXIS_POSITIONS[rotationAxis] ?? { x: 0, y: 0.3 };
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// ── Agent projection: quaternion [w,i,j,k] → 2D disk ────────────────────────
|
|
96
|
-
//
|
|
97
|
-
// The quaternion imaginary components (i, j, k) form a point inside the unit ball
|
|
98
|
-
// (since |q|=1, we have i²+j²+k² ≤ 1). We apply an isometric rotation to get a
|
|
99
|
-
// good viewing angle, then orthographically project to 2D.
|
|
100
|
-
//
|
|
101
|
-
// Isometric rotation: rotate 45° around Y, then 35.264° around X
|
|
102
|
-
// (the standard isometric viewing angle). This spreads the three axes evenly
|
|
103
|
-
// on the 2D plane.
|
|
104
|
-
|
|
105
|
-
const ISO_ANGLE_Y = Math.PI / 4; // 45°
|
|
106
|
-
const ISO_ANGLE_X = Math.asin(1 / Math.sqrt(3)); // ~35.264°
|
|
107
|
-
|
|
108
|
-
function projectQuaternionToDisk(
|
|
109
|
-
orientation: [number, number, number, number], // [w, i, j, k]
|
|
110
|
-
): { x: number; y: number } {
|
|
111
|
-
const [, qi, qj, qk] = orientation;
|
|
112
|
-
|
|
113
|
-
// Rotate around Y axis
|
|
114
|
-
const cosY = Math.cos(ISO_ANGLE_Y);
|
|
115
|
-
const sinY = Math.sin(ISO_ANGLE_Y);
|
|
116
|
-
const rx = qi * cosY + qk * sinY;
|
|
117
|
-
const ry = qj;
|
|
118
|
-
const rz = -qi * sinY + qk * cosY;
|
|
119
|
-
|
|
120
|
-
// Rotate around X axis
|
|
121
|
-
const cosX = Math.cos(ISO_ANGLE_X);
|
|
122
|
-
const sinX = Math.sin(ISO_ANGLE_X);
|
|
123
|
-
const finalY = ry * cosX - rz * sinX;
|
|
124
|
-
|
|
125
|
-
// Orthographic projection: drop Z
|
|
126
|
-
return { x: rx, y: finalY };
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// ── ManifoldProvider ─────────────────────────────────────────────────────────
|
|
130
|
-
|
|
131
|
-
export class ManifoldProvider implements AlgorithmProvider {
|
|
132
|
-
readonly algorithm: LayoutAlgorithm = 'manifold';
|
|
133
|
-
|
|
134
|
-
async layout(
|
|
135
|
-
snapshot: ManifoldSnapshot,
|
|
136
|
-
canvasWidth: number,
|
|
137
|
-
canvasHeight: number,
|
|
138
|
-
): Promise<LayoutResult> {
|
|
139
|
-
const { nodes, edges } = snapshot;
|
|
140
|
-
if (nodes.length === 0) {
|
|
141
|
-
return { positions: new Map(), bfsOrder: [] };
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
// Guard: if canvas hasn't been measured yet, return empty to avoid
|
|
145
|
-
// collapsing all nodes to (0,0).
|
|
146
|
-
if (canvasWidth < 100 || canvasHeight < 100) {
|
|
147
|
-
return { positions: new Map(), bfsOrder: [] };
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// Asymmetric disk radii — use more horizontal space since canvases are typically wider.
|
|
151
|
-
// X uses 42% of width, Y uses 38% of height. This spreads nodes across the full viewport
|
|
152
|
-
// rather than clustering near center.
|
|
153
|
-
const diskRadiusX = canvasWidth * 0.42;
|
|
154
|
-
const diskRadiusY = canvasHeight * 0.38;
|
|
155
|
-
const centerX = canvasWidth / 2;
|
|
156
|
-
const centerY = canvasHeight / 2;
|
|
157
|
-
|
|
158
|
-
const positions = new Map<string, NodeLayout>();
|
|
159
|
-
|
|
160
|
-
// ── Separate agents and tasks ──────────────────────────────────────────
|
|
161
|
-
const agents = nodes.filter(n => n.kind === 'agent');
|
|
162
|
-
const tasks = nodes.filter(n => n.kind === 'task');
|
|
163
|
-
const others = nodes.filter(n => n.kind !== 'agent' && n.kind !== 'task');
|
|
164
|
-
|
|
165
|
-
// ── Agents: project from quaternion orientation ────────────────────────
|
|
166
|
-
// Agents occupy the inner disk (45% radius) so they never land on top of
|
|
167
|
-
// task clusters, which live on the full outer disk (100% radius).
|
|
168
|
-
const AGENT_DISK_SCALE = 0.45;
|
|
169
|
-
for (const agent of agents) {
|
|
170
|
-
const size = nodeSize(agent.kind, agent.status);
|
|
171
|
-
const proj = projectQuaternionToDisk(
|
|
172
|
-
(agent.metadata.orientation as [number, number, number, number]) ?? [1, 0, 0, 0],
|
|
173
|
-
);
|
|
174
|
-
|
|
175
|
-
const x = centerX + proj.x * diskRadiusX * AGENT_DISK_SCALE - size.w / 2;
|
|
176
|
-
const y = centerY + proj.y * diskRadiusY * AGENT_DISK_SCALE - size.h / 2;
|
|
177
|
-
|
|
178
|
-
positions.set(agent.id, {
|
|
179
|
-
id: agent.id,
|
|
180
|
-
x,
|
|
181
|
-
y,
|
|
182
|
-
width: size.w,
|
|
183
|
-
height: size.h,
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// ── Tasks: position by rotation axis, row-packed within clusters ───────
|
|
188
|
-
// Group tasks by their axis position (normalized to a string key)
|
|
189
|
-
const taskGroups = new Map<string, Array<{ task: typeof tasks[number]; pos: { x: number; y: number } }>>();
|
|
190
|
-
for (const task of tasks) {
|
|
191
|
-
const rotationAxis = task.hint?.rotation_axis as string | null | undefined;
|
|
192
|
-
const cluster = task.hint?.cluster as string | null | undefined;
|
|
193
|
-
const pos = axisToPosition(rotationAxis, cluster);
|
|
194
|
-
const key = `${pos.x.toFixed(2)},${pos.y.toFixed(2)}`;
|
|
195
|
-
if (!taskGroups.has(key)) taskGroups.set(key, []);
|
|
196
|
-
taskGroups.get(key)!.push({ task, pos });
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
// Pack tasks within each cluster: row-major, left-to-right.
|
|
200
|
-
//
|
|
201
|
-
// Padding geometry (close-zoom KiCad flag constraints):
|
|
202
|
-
// Flag extends 118px from node center (tip=8 + body=110).
|
|
203
|
-
// Node half-width = 45px. Next col body starts at TASK_PAD_W - 45px.
|
|
204
|
-
// No-overlap condition: 118 < TASK_PAD_W - 45 → TASK_PAD_W > 163 → use 170.
|
|
205
|
-
// FLAG_H_HIT = 36px. No-overlap: TASK_PAD_H > 36 → use 40.
|
|
206
|
-
//
|
|
207
|
-
// MAX_COLS: uncapped sqrt(N). For large clusters (e.g. 207 SEED tasks) this
|
|
208
|
-
// spreads wide (15 cols × 170px = 2550px), forcing fit-zoom below 0.8 (mid-tier
|
|
209
|
-
// chips). At close zoom only ~6 cols are visible at once — no flag overlap.
|
|
210
|
-
const TASK_PAD_W = 170; // 118px flag extent + 52px margin → 7px gap to next col
|
|
211
|
-
const TASK_PAD_H = 40; // 36px FLAG_H_HIT + 4px gap
|
|
212
|
-
|
|
213
|
-
for (const [key, group] of taskGroups) {
|
|
214
|
-
const MAX_COLS = Math.max(1, Math.ceil(Math.sqrt(group.length)));
|
|
215
|
-
const [cx, cy] = key.split(',').map(Number);
|
|
216
|
-
const clusterCenterX = centerX + cx * diskRadiusX;
|
|
217
|
-
const clusterCenterY = centerY + cy * diskRadiusY;
|
|
218
|
-
|
|
219
|
-
const cols = Math.min(MAX_COLS, group.length);
|
|
220
|
-
const totalWidth = cols * TASK_PAD_W;
|
|
221
|
-
const startX = clusterCenterX - totalWidth / 2;
|
|
222
|
-
const startY = clusterCenterY - TASK_PAD_H / 2;
|
|
223
|
-
|
|
224
|
-
for (let i = 0; i < group.length; i++) {
|
|
225
|
-
const { task } = group[i];
|
|
226
|
-
const size = nodeSize(task.kind, task.status);
|
|
227
|
-
const col = i % cols;
|
|
228
|
-
const row = Math.floor(i / cols);
|
|
229
|
-
|
|
230
|
-
const x = startX + col * TASK_PAD_W + (TASK_PAD_W - size.w) / 2;
|
|
231
|
-
const y = startY + row * TASK_PAD_H + (TASK_PAD_H - size.h) / 2;
|
|
232
|
-
|
|
233
|
-
positions.set(task.id, {
|
|
234
|
-
id: task.id,
|
|
235
|
-
x,
|
|
236
|
-
y,
|
|
237
|
-
width: size.w,
|
|
238
|
-
height: size.h,
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
// ── Others (signals, etc.): place at center ────────────────────────────
|
|
244
|
-
for (const node of others) {
|
|
245
|
-
const size = nodeSize(node.kind, node.status);
|
|
246
|
-
positions.set(node.id, {
|
|
247
|
-
id: node.id,
|
|
248
|
-
x: centerX - size.w / 2,
|
|
249
|
-
y: centerY - size.h / 2,
|
|
250
|
-
width: size.w,
|
|
251
|
-
height: size.h,
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// ── BFS order for edge reveal ──────────────────────────────────────────
|
|
256
|
-
const incoming = new Set(edges.map(e => e.target));
|
|
257
|
-
const roots = nodes.filter(n => !incoming.has(n.id)).map(n => n.id);
|
|
258
|
-
const visited = new Set<string>();
|
|
259
|
-
const bfsOrder: string[] = [];
|
|
260
|
-
const queue = [...roots];
|
|
261
|
-
while (queue.length > 0) {
|
|
262
|
-
const id = queue.shift()!;
|
|
263
|
-
if (visited.has(id)) continue;
|
|
264
|
-
visited.add(id);
|
|
265
|
-
bfsOrder.push(id);
|
|
266
|
-
for (const e of edges) {
|
|
267
|
-
if (e.source === id && !visited.has(e.target)) queue.push(e.target);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
for (const n of nodes) {
|
|
271
|
-
if (!visited.has(n.id)) bfsOrder.push(n.id);
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
return { positions, bfsOrder };
|
|
275
|
-
}
|
|
276
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
// N4 TransitionAnimator — Interpolates between two LayoutResults
|
|
2
|
-
// Uses requestAnimationFrame for smooth 60fps transitions.
|
|
3
|
-
// S-02: deterministic interpolation, no random values.
|
|
4
|
-
|
|
5
|
-
import type { AnimationFrame, EasingFn, NodeLayout } from './types.js';
|
|
6
|
-
|
|
7
|
-
/** Named easing functions. All map t∈[0,1] → [0,1]. */
|
|
8
|
-
export const EASING_FUNCTIONS: Record<string, EasingFn> = {
|
|
9
|
-
linear: (t) => t,
|
|
10
|
-
easeInOutCubic: (t) => (t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2),
|
|
11
|
-
easeOutExpo: (t) => (t === 1 ? 1 : 1 - Math.pow(2, -10 * t)),
|
|
12
|
-
spring: (t) => {
|
|
13
|
-
// Damped spring approximation — overshoots ~6% then settles
|
|
14
|
-
const c4 = (2 * Math.PI) / 3;
|
|
15
|
-
return t === 0 ? 0 : t === 1 ? 1 : Math.pow(2, -10 * t) * Math.sin((t * 10 - 0.75) * c4) + 1;
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export class TransitionAnimator {
|
|
20
|
-
private rafId: number | null = null;
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Animate from `from` positions to `to` positions over `durationMs`.
|
|
24
|
-
* Calls `onFrame` on each animation frame with the interpolated moment.
|
|
25
|
-
* Calls `onComplete` when the animation finishes.
|
|
26
|
-
*
|
|
27
|
-
* Nodes present in `to` but not `from` appear at their target position (no lerp).
|
|
28
|
-
* Nodes present in `from` but not `to` are dropped from the interpolated map.
|
|
29
|
-
*/
|
|
30
|
-
animate(
|
|
31
|
-
from: Map<string, NodeLayout>,
|
|
32
|
-
to: Map<string, NodeLayout>,
|
|
33
|
-
durationMs: number,
|
|
34
|
-
easing: EasingFn,
|
|
35
|
-
onFrame: (frame: AnimationFrame) => void,
|
|
36
|
-
onComplete: () => void,
|
|
37
|
-
): void {
|
|
38
|
-
this.cancel();
|
|
39
|
-
|
|
40
|
-
const startTime = performance.now();
|
|
41
|
-
|
|
42
|
-
const tick = (now: number) => {
|
|
43
|
-
const elapsed = now - startTime;
|
|
44
|
-
const rawProgress = Math.min(elapsed / durationMs, 1);
|
|
45
|
-
const progress = easing(rawProgress);
|
|
46
|
-
|
|
47
|
-
const positions = new Map<string, NodeLayout>();
|
|
48
|
-
|
|
49
|
-
for (const [id, target] of to) {
|
|
50
|
-
const source = from.get(id);
|
|
51
|
-
if (!source) {
|
|
52
|
-
// New node — appear at target position
|
|
53
|
-
positions.set(id, { ...target });
|
|
54
|
-
} else {
|
|
55
|
-
// Interpolate
|
|
56
|
-
positions.set(id, {
|
|
57
|
-
id,
|
|
58
|
-
x: source.x + (target.x - source.x) * progress,
|
|
59
|
-
y: source.y + (target.y - source.y) * progress,
|
|
60
|
-
width: source.width + (target.width - source.width) * progress,
|
|
61
|
-
height: source.height + (target.height - source.height) * progress,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
onFrame({ positions, progress, elapsedMs: elapsed });
|
|
67
|
-
|
|
68
|
-
if (rawProgress < 1) {
|
|
69
|
-
this.rafId = requestAnimationFrame(tick);
|
|
70
|
-
} else {
|
|
71
|
-
this.rafId = null;
|
|
72
|
-
onComplete();
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
this.rafId = requestAnimationFrame(tick);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/** Cancel any in-flight animation. */
|
|
80
|
-
cancel(): void {
|
|
81
|
-
if (this.rafId !== null) {
|
|
82
|
-
cancelAnimationFrame(this.rafId);
|
|
83
|
-
this.rafId = null;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
get active(): boolean {
|
|
88
|
-
return this.rafId !== null;
|
|
89
|
-
}
|
|
90
|
-
}
|