@principal-ai/subsystems-react 0.53.6 → 0.54.0
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/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/pierre/PierreTrailCodeView.d.ts.map +1 -1
- package/dist/pierre/PierreTrailCodeView.js +7 -5
- package/dist/pierre/PierreTrailCodeView.js.map +1 -1
- package/dist/stories/Subsystem/ComponentGraph/fixtures.d.ts.map +1 -1
- package/dist/stories/Subsystem/ComponentGraph/fixtures.js +1 -2
- package/dist/stories/Subsystem/ComponentGraph/fixtures.js.map +1 -1
- package/dist/subsystem/C4Graph.d.ts +144 -9
- package/dist/subsystem/C4Graph.d.ts.map +1 -1
- package/dist/subsystem/C4Graph.js +924 -148
- package/dist/subsystem/C4Graph.js.map +1 -1
- package/dist/subsystem/C4NodeCard.d.ts +22 -1
- package/dist/subsystem/C4NodeCard.d.ts.map +1 -1
- package/dist/subsystem/C4NodeCard.js +10 -2
- package/dist/subsystem/C4NodeCard.js.map +1 -1
- package/dist/subsystem/ComponentDeclaration.d.ts +5 -4
- package/dist/subsystem/ComponentDeclaration.d.ts.map +1 -1
- package/dist/subsystem/ComponentDeclaration.js +12 -4
- package/dist/subsystem/ComponentDeclaration.js.map +1 -1
- package/dist/subsystem/ConstructsCatalog.d.ts.map +1 -1
- package/dist/subsystem/ConstructsCatalog.js +10 -7
- package/dist/subsystem/ConstructsCatalog.js.map +1 -1
- package/dist/subsystem/GraphSidebar.d.ts +71 -0
- package/dist/subsystem/GraphSidebar.d.ts.map +1 -0
- package/dist/subsystem/GraphSidebar.js +145 -0
- package/dist/subsystem/GraphSidebar.js.map +1 -0
- package/dist/subsystem/GraphWithSidebar.d.ts +24 -0
- package/dist/subsystem/GraphWithSidebar.d.ts.map +1 -0
- package/dist/subsystem/GraphWithSidebar.js +25 -0
- package/dist/subsystem/GraphWithSidebar.js.map +1 -0
- package/dist/subsystem/SubsystemComponentGraph.d.ts +33 -0
- package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -1
- package/dist/subsystem/SubsystemComponentGraph.js +364 -411
- package/dist/subsystem/SubsystemComponentGraph.js.map +1 -1
- package/dist/subsystem/TrailStepsNav.d.ts +48 -0
- package/dist/subsystem/TrailStepsNav.d.ts.map +1 -0
- package/dist/subsystem/TrailStepsNav.js +189 -0
- package/dist/subsystem/TrailStepsNav.js.map +1 -0
- package/dist/subsystem/TrailsPanel.d.ts.map +1 -1
- package/dist/subsystem/TrailsPanel.js +3 -4
- package/dist/subsystem/TrailsPanel.js.map +1 -1
- package/dist/subsystem/__fixtures__/c4Drilldown.d.ts +151 -0
- package/dist/subsystem/__fixtures__/c4Drilldown.d.ts.map +1 -0
- package/dist/subsystem/__fixtures__/c4Drilldown.js +783 -0
- package/dist/subsystem/__fixtures__/c4Drilldown.js.map +1 -0
- package/dist/subsystem/c4.d.ts +39 -8
- package/dist/subsystem/c4.d.ts.map +1 -1
- package/dist/subsystem/c4.js.map +1 -1
- package/dist/subsystem/declarationRef.d.ts +26 -18
- package/dist/subsystem/declarationRef.d.ts.map +1 -1
- package/dist/subsystem/declarationRef.js +9 -4
- package/dist/subsystem/declarationRef.js.map +1 -1
- package/dist/subsystem/model.d.ts +19 -1
- package/dist/subsystem/model.d.ts.map +1 -1
- package/dist/subsystem/model.js +12 -2
- package/dist/subsystem/model.js.map +1 -1
- package/dist/subsystem/nodes.d.ts.map +1 -1
- package/dist/subsystem/nodes.js +24 -4
- package/dist/subsystem/nodes.js.map +1 -1
- package/dist/subsystem/trailBrief.d.ts.map +1 -1
- package/dist/subsystem/trailBrief.js +6 -1
- package/dist/subsystem/trailBrief.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +9 -2
- package/src/pierre/PierreTrailCodeView.tsx +9 -13
- package/src/stories/Subsystem/C4Graph/C4ToComponentDrill.stories.tsx +496 -0
- package/src/stories/Subsystem/ComponentGraph/AnimatedProgression.stories.tsx +7 -7
- package/src/stories/Subsystem/ComponentGraph/Constructs.stories.tsx +19 -25
- package/src/stories/Subsystem/ComponentGraph/DetailPanel.stories.tsx +8 -10
- package/src/stories/Subsystem/ComponentGraph/Issues.stories.tsx +19 -19
- package/src/stories/Subsystem/ComponentGraph/ProposedTrails.stories.tsx +6 -6
- package/src/stories/Subsystem/ComponentGraph/TrailAutoplay.stories.tsx +7 -7
- package/src/stories/Subsystem/ComponentGraph/Trails.stories.tsx +27 -30
- package/src/stories/Subsystem/ComponentGraph/fixtures.ts +1 -2
- package/src/stories/Subsystem/ConstructsCatalog.stories.tsx +10 -13
- package/src/stories/Subsystem/EgoGraph/EgoGraph.stories.tsx +3 -4
- package/src/stories/Subsystem/Sidebar/GraphSidebar.stories.tsx +206 -0
- package/src/subsystem/C4Graph.groups.test.ts +96 -2
- package/src/subsystem/C4Graph.tsx +1377 -165
- package/src/subsystem/C4NodeCard.test.ts +1 -2
- package/src/subsystem/C4NodeCard.tsx +24 -2
- package/src/subsystem/ComponentDeclaration.tsx +18 -8
- package/src/subsystem/ConstructsCatalog.tsx +23 -8
- package/src/subsystem/GraphSidebar.test.tsx +152 -0
- package/src/subsystem/GraphSidebar.tsx +300 -0
- package/src/subsystem/GraphWithSidebar.test.tsx +78 -0
- package/src/subsystem/GraphWithSidebar.tsx +60 -0
- package/src/subsystem/SubsystemComponentGraph.tsx +284 -370
- package/src/subsystem/TrailStepsNav.test.tsx +179 -0
- package/src/subsystem/TrailStepsNav.tsx +372 -0
- package/src/subsystem/TrailsPanel.tsx +3 -4
- package/src/subsystem/__fixtures__/c4Drilldown.test.ts +338 -0
- package/src/subsystem/__fixtures__/c4Drilldown.ts +847 -0
- package/src/subsystem/c4.ts +41 -8
- package/src/subsystem/declarationRef.ts +28 -19
- package/src/subsystem/model.test.ts +32 -12
- package/src/subsystem/model.ts +30 -1
- package/src/subsystem/nodes.group.test.tsx +82 -0
- package/src/subsystem/nodes.tsx +30 -2
- package/src/subsystem/trailBrief.test.ts +2 -2
- package/src/subsystem/trailBrief.ts +6 -1
|
@@ -646,7 +646,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
646
646
|
to: 'maintain-rpc-handler',
|
|
647
647
|
mechanism: 'calls',
|
|
648
648
|
file: 'packages/subsystems-studio/src/mainview/components/MaintainModelPickerModal.tsx',
|
|
649
|
-
|
|
649
|
+
span: { startLine: 116, endLine: 116, contentHash: 'fixture' },
|
|
650
650
|
symbol: 'MaintainModelPickerModal',
|
|
651
651
|
purl: `${PURL}#packages/subsystems-studio/src/mainview/components/MaintainModelPickerModal.tsx`,
|
|
652
652
|
annotation: 'Fire the maintainSubsystemModel RPC with the selected model.',
|
|
@@ -656,7 +656,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
656
656
|
to: 'maintain-background-runner',
|
|
657
657
|
mechanism: 'calls',
|
|
658
658
|
file: 'packages/subsystems-studio/src/bun/index.ts',
|
|
659
|
-
|
|
659
|
+
span: { startLine: 2522, endLine: 2522, contentHash: 'fixture' },
|
|
660
660
|
symbol: 'maintainSubsystemModelInBackground',
|
|
661
661
|
purl: `${PURL}#packages/subsystems-studio/src/bun/index.ts`,
|
|
662
662
|
annotation: 'RPC returns started:true immediately and hands off to the guarded runner.',
|
|
@@ -666,7 +666,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
666
666
|
to: 'maintain-orchestrator',
|
|
667
667
|
mechanism: 'calls',
|
|
668
668
|
file: 'packages/subsystems-studio/src/bun/index.ts',
|
|
669
|
-
|
|
669
|
+
span: { startLine: 3160, endLine: 3160, contentHash: 'fixture' },
|
|
670
670
|
symbol: 'maintainSubsystemModelInBackground',
|
|
671
671
|
purl: `${PURL}#packages/subsystems-studio/src/bun/index.ts`,
|
|
672
672
|
annotation: 'Run the full install → audit → route-by-verdict → brief pipeline.',
|
|
@@ -676,7 +676,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
676
676
|
to: 'maintain-agent-launcher',
|
|
677
677
|
mechanism: 'calls',
|
|
678
678
|
file: 'packages/subsystems-studio/src/bun/maintain-model.ts',
|
|
679
|
-
|
|
679
|
+
span: { startLine: 854, endLine: 854, contentHash: 'fixture' },
|
|
680
680
|
symbol: 'runMaintainAgent',
|
|
681
681
|
purl: `${PURL}#packages/subsystems-studio/src/bun/maintain-model.ts`,
|
|
682
682
|
annotation: 'Resolve the model then launch the agent run, retrying once on the credentialed fallback if unusable.',
|
|
@@ -686,7 +686,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
686
686
|
to: 'session-runner',
|
|
687
687
|
mechanism: 'calls',
|
|
688
688
|
file: 'packages/subsystems-studio/src/bun/maintain-model.ts',
|
|
689
|
-
|
|
689
|
+
span: { startLine: 742, endLine: 742, contentHash: 'fixture' },
|
|
690
690
|
symbol: 'runOpencodeV2AgentSession',
|
|
691
691
|
purl: `${PURL}#packages/subsystems-studio/src/bun/maintain-model.ts`,
|
|
692
692
|
annotation: 'Hand the brief, agent, and directory to the V2 session runner.',
|
|
@@ -696,7 +696,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
696
696
|
to: 'events-tab',
|
|
697
697
|
mechanism: 'calls',
|
|
698
698
|
file: 'packages/subsystems-studio/src/bun/index.ts',
|
|
699
|
-
|
|
699
|
+
span: { startLine: 3164, endLine: 3164, contentHash: 'fixture' },
|
|
700
700
|
symbol: 'maintainSubsystemModelInBackground',
|
|
701
701
|
purl: `${PURL}#packages/subsystems-studio/src/bun/index.ts`,
|
|
702
702
|
annotation: 'Open the live feed tab the instant the session id exists.',
|
|
@@ -712,7 +712,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
712
712
|
to: 'sse-feed-reader',
|
|
713
713
|
mechanism: 'calls',
|
|
714
714
|
file: 'packages/subsystems-studio/src/bun/opencode-v2-live.ts',
|
|
715
|
-
|
|
715
|
+
span: { startLine: 355, endLine: 355, contentHash: 'fixture' },
|
|
716
716
|
symbol: 'runOpencodeV2AgentSession',
|
|
717
717
|
purl: `${PURL}#packages/subsystems-studio/src/bun/opencode-v2-live.ts`,
|
|
718
718
|
annotation: 'Open the /api/event subscription before creating the session.',
|
|
@@ -722,7 +722,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
722
722
|
to: 'opencode-v2-server',
|
|
723
723
|
mechanism: 'watches',
|
|
724
724
|
file: 'packages/subsystems-studio/src/bun/opencode-v2-live.ts',
|
|
725
|
-
|
|
725
|
+
span: { startLine: 222, endLine: 222, contentHash: 'fixture' },
|
|
726
726
|
symbol: 'readSse',
|
|
727
727
|
purl: `${PURL}#packages/subsystems-studio/src/bun/opencode-v2-live.ts`,
|
|
728
728
|
annotation: "Stream the single SSE feed that carries every session's events.",
|
|
@@ -732,7 +732,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
732
732
|
to: 'service-ensurer',
|
|
733
733
|
mechanism: 'calls',
|
|
734
734
|
file: 'packages/subsystems-studio/src/bun/opencode-v2-live.ts',
|
|
735
|
-
|
|
735
|
+
span: { startLine: 326, endLine: 326, contentHash: 'fixture' },
|
|
736
736
|
symbol: 'runOpencodeV2AgentSession',
|
|
737
737
|
purl: `${PURL}#packages/subsystems-studio/src/bun/opencode-v2-live.ts`,
|
|
738
738
|
annotation: 'Ensure the opencode2 daemon is healthy, starting the service if it is not.',
|
|
@@ -742,7 +742,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
742
742
|
to: 'opencode-v2-server',
|
|
743
743
|
mechanism: 'calls',
|
|
744
744
|
file: 'packages/subsystems-studio/src/bun/opencode-v2-live.ts',
|
|
745
|
-
|
|
745
|
+
span: { startLine: 384, endLine: 384, contentHash: 'fixture' },
|
|
746
746
|
symbol: 'runOpencodeV2AgentSession',
|
|
747
747
|
purl: `${PURL}#packages/subsystems-studio/src/bun/opencode-v2-live.ts`,
|
|
748
748
|
annotation: 'POST /api/session creates the session with a 15s HTTP timeout.',
|
|
@@ -752,7 +752,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
752
752
|
to: 'opencode-v2-server',
|
|
753
753
|
mechanism: 'calls',
|
|
754
754
|
file: 'packages/subsystems-studio/src/bun/opencode-v2-live.ts',
|
|
755
|
-
|
|
755
|
+
span: { startLine: 428, endLine: 428, contentHash: 'fixture' },
|
|
756
756
|
symbol: 'runOpencodeV2AgentSession',
|
|
757
757
|
purl: `${PURL}#packages/subsystems-studio/src/bun/opencode-v2-live.ts`,
|
|
758
758
|
annotation: 'POST /api/session/{id}/prompt feeds the maintain brief with a 15s HTTP timeout.',
|
|
@@ -762,7 +762,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
762
762
|
to: 'terminal-matcher',
|
|
763
763
|
mechanism: 'calls',
|
|
764
764
|
file: 'packages/subsystems-studio/src/bun/opencode-v2-live.ts',
|
|
765
|
-
|
|
765
|
+
span: { startLine: 365, endLine: 365, contentHash: 'fixture' },
|
|
766
766
|
symbol: 'readSse',
|
|
767
767
|
purl: `${PURL}#packages/subsystems-studio/src/bun/opencode-v2-live.ts`,
|
|
768
768
|
annotation: 'Flag sawTerminal when the event is an execution finish or session idle.',
|
|
@@ -772,7 +772,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
772
772
|
to: 'session-runner',
|
|
773
773
|
mechanism: 'feeds',
|
|
774
774
|
file: 'packages/subsystems-studio/src/bun/opencode-v2-live.ts',
|
|
775
|
-
|
|
775
|
+
span: { startLine: 469, endLine: 469, contentHash: 'fixture' },
|
|
776
776
|
symbol: 'runOpencodeV2AgentSession',
|
|
777
777
|
purl: `${PURL}#packages/subsystems-studio/src/bun/opencode-v2-live.ts`,
|
|
778
778
|
annotation: 'Wait loop polls every 400ms until sawTerminal or the 15-minute deadline.',
|
|
@@ -782,7 +782,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
782
782
|
to: 'maintain-probe-registry',
|
|
783
783
|
mechanism: 'reads',
|
|
784
784
|
file: 'packages/subsystems-studio/src/bun/opencode-v2-live.ts',
|
|
785
|
-
|
|
785
|
+
span: { startLine: 484, endLine: 484, contentHash: 'fixture' },
|
|
786
786
|
symbol: 'runOpencodeV2AgentSession',
|
|
787
787
|
purl: `${PURL}#packages/subsystems-studio/src/bun/opencode-v2-live.ts`,
|
|
788
788
|
annotation: "Confirm the model's first tool call landed the liveness probe; abort as unusable on timeout.",
|
|
@@ -792,7 +792,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
792
792
|
to: 'live-feed-store',
|
|
793
793
|
mechanism: 'writes',
|
|
794
794
|
file: 'packages/subsystems-studio/src/bun/opencode-v2-live.ts',
|
|
795
|
-
|
|
795
|
+
span: { startLine: 529, endLine: 529, contentHash: 'fixture' },
|
|
796
796
|
symbol: 'runOpencodeV2AgentSession',
|
|
797
797
|
purl: `${PURL}#packages/subsystems-studio/src/bun/opencode-v2-live.ts`,
|
|
798
798
|
annotation: 'Stamp the feed done (or error) when the wait loop exits.',
|
|
@@ -802,7 +802,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
802
802
|
to: 'maintain-picker',
|
|
803
803
|
mechanism: 'feeds',
|
|
804
804
|
file: 'packages/subsystems-studio/src/bun/index.ts',
|
|
805
|
-
|
|
805
|
+
span: { startLine: 3187, endLine: 3187, contentHash: 'fixture' },
|
|
806
806
|
symbol: 'maintainSubsystemModelInBackground',
|
|
807
807
|
purl: `${PURL}#packages/subsystems-studio/src/bun/index.ts`,
|
|
808
808
|
annotation: 'Broadcast done/error so the Maintain row flips off Running.',
|
|
@@ -818,7 +818,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
818
818
|
to: 'probe-route',
|
|
819
819
|
mechanism: 'calls',
|
|
820
820
|
file: 'packages/subsystems-studio/src/bun/http-server.ts',
|
|
821
|
-
|
|
821
|
+
span: { startLine: 314, endLine: 314, contentHash: 'fixture' },
|
|
822
822
|
symbol: 'handleSubsystemModelRequest',
|
|
823
823
|
purl: `${PURL}#packages/subsystems-studio/src/bun/http-server.ts`,
|
|
824
824
|
annotation: "The agent's step-0 tool call curls POST /api/maintainer/probe with the run token.",
|
|
@@ -828,7 +828,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
828
828
|
to: 'maintain-probe-registry',
|
|
829
829
|
mechanism: 'writes',
|
|
830
830
|
file: 'packages/subsystems-studio/src/bun/http-server.ts',
|
|
831
|
-
|
|
831
|
+
span: { startLine: 318, endLine: 318, contentHash: 'fixture' },
|
|
832
832
|
symbol: 'getMaintainerProbeRegistry',
|
|
833
833
|
purl: `${PURL}#packages/subsystems-studio/src/bun/http-server.ts`,
|
|
834
834
|
annotation: 'mark(runId) records when the probe landed.',
|
|
@@ -838,7 +838,7 @@ const MAINTAIN_TRAILS: SubsystemTrail[] = [
|
|
|
838
838
|
to: 'maintain-probe-registry',
|
|
839
839
|
mechanism: 'reads',
|
|
840
840
|
file: 'packages/subsystems-studio/src/bun/opencode-v2-live.ts',
|
|
841
|
-
|
|
841
|
+
span: { startLine: 484, endLine: 484, contentHash: 'fixture' },
|
|
842
842
|
symbol: 'runOpencodeV2AgentSession',
|
|
843
843
|
purl: `${PURL}#packages/subsystems-studio/src/bun/opencode-v2-live.ts`,
|
|
844
844
|
annotation: 'Each loop tick checks whether the token landed before the probe deadline.',
|
|
@@ -92,7 +92,7 @@ const trails: SubsystemTrail[] = [
|
|
|
92
92
|
to: 'maintain',
|
|
93
93
|
mechanism: 'calls',
|
|
94
94
|
file: 'src/bun/verify-subsystem-component.ts',
|
|
95
|
-
|
|
95
|
+
span: { startLine: 1, endLine: 1, contentHash: 'fixture' },
|
|
96
96
|
symbol: 'auditSubsystemModel',
|
|
97
97
|
annotation: 'Live-only trail — no proposed badge.',
|
|
98
98
|
},
|
|
@@ -107,7 +107,7 @@ const trails: SubsystemTrail[] = [
|
|
|
107
107
|
to: 'maintain',
|
|
108
108
|
mechanism: 'calls',
|
|
109
109
|
file: 'src/bun/verify-subsystem-component.ts',
|
|
110
|
-
|
|
110
|
+
span: { startLine: 1, endLine: 1, contentHash: 'fixture' },
|
|
111
111
|
symbol: 'auditSubsystemModel',
|
|
112
112
|
},
|
|
113
113
|
{
|
|
@@ -115,7 +115,7 @@ const trails: SubsystemTrail[] = [
|
|
|
115
115
|
to: 'lifecycle',
|
|
116
116
|
mechanism: 'uses',
|
|
117
117
|
file: 'src/bun/maintain-model.ts',
|
|
118
|
-
|
|
118
|
+
span: { startLine: 1, endLine: 1, contentHash: 'fixture' },
|
|
119
119
|
symbol: 'runMaintainModel',
|
|
120
120
|
annotation: 'Step onto the proposed lifecycle — step index is tinted.',
|
|
121
121
|
},
|
|
@@ -124,7 +124,7 @@ const trails: SubsystemTrail[] = [
|
|
|
124
124
|
to: 'cli',
|
|
125
125
|
mechanism: 'calls',
|
|
126
126
|
file: 'src/bun/maintain-model.ts',
|
|
127
|
-
|
|
127
|
+
span: { startLine: 1, endLine: 1, contentHash: 'fixture' },
|
|
128
128
|
symbol: 'OpenCodeV2Lifecycle.ensure',
|
|
129
129
|
},
|
|
130
130
|
],
|
|
@@ -138,7 +138,7 @@ const trails: SubsystemTrail[] = [
|
|
|
138
138
|
to: 'cache',
|
|
139
139
|
mechanism: 'writes',
|
|
140
140
|
file: 'src/bun/maintain-model.ts',
|
|
141
|
-
|
|
141
|
+
span: { startLine: 1, endLine: 1, contentHash: 'fixture' },
|
|
142
142
|
symbol: 'LifecycleProbeCache.set',
|
|
143
143
|
annotation: 'Both endpoints are proposed.',
|
|
144
144
|
},
|
|
@@ -153,7 +153,7 @@ const trails: SubsystemTrail[] = [
|
|
|
153
153
|
to: 'cli',
|
|
154
154
|
mechanism: 'uses',
|
|
155
155
|
file: 'src/bun/verify-subsystem-component.ts',
|
|
156
|
-
|
|
156
|
+
span: { startLine: 1, endLine: 1, contentHash: 'fixture' },
|
|
157
157
|
symbol: 'probeCliVersion',
|
|
158
158
|
// Step-level proposed: BOTH endpoints are real components — the
|
|
159
159
|
// seam itself is what is planned. The edge label draws dashed on
|
|
@@ -87,7 +87,7 @@ const trails: SubsystemTrail[] = [
|
|
|
87
87
|
to: 'api',
|
|
88
88
|
mechanism: 'calls',
|
|
89
89
|
file: 'src/ui/BookingPage.tsx',
|
|
90
|
-
|
|
90
|
+
span: { startLine: 42, endLine: 42, contentHash: 'fixture' },
|
|
91
91
|
purl: stepPurl('src/ui/BookingPage.tsx'),
|
|
92
92
|
symbol: 'BookingPage.submit',
|
|
93
93
|
annotation: 'Submit hands the picked slot to the API.',
|
|
@@ -97,7 +97,7 @@ const trails: SubsystemTrail[] = [
|
|
|
97
97
|
to: 'store',
|
|
98
98
|
mechanism: 'writes',
|
|
99
99
|
file: 'src/api/checkout.ts',
|
|
100
|
-
|
|
100
|
+
span: { startLine: 18, endLine: 18, contentHash: 'fixture' },
|
|
101
101
|
purl: stepPurl('src/api/checkout.ts'),
|
|
102
102
|
symbol: 'checkoutApi.book',
|
|
103
103
|
annotation: 'API writes the booking into the store.',
|
|
@@ -107,7 +107,7 @@ const trails: SubsystemTrail[] = [
|
|
|
107
107
|
to: 'db',
|
|
108
108
|
mechanism: 'writes',
|
|
109
109
|
file: 'src/store/bookingStore.ts',
|
|
110
|
-
|
|
110
|
+
span: { startLine: 27, endLine: 27, contentHash: 'fixture' },
|
|
111
111
|
purl: stepPurl('src/store/bookingStore.ts'),
|
|
112
112
|
symbol: 'BookingStore.commit',
|
|
113
113
|
annotation: 'Store commits the row.',
|
|
@@ -117,7 +117,7 @@ const trails: SubsystemTrail[] = [
|
|
|
117
117
|
to: 'ui',
|
|
118
118
|
mechanism: 'produces',
|
|
119
119
|
file: 'src/api/checkout.ts',
|
|
120
|
-
|
|
120
|
+
span: { startLine: 24, endLine: 24, contentHash: 'fixture' },
|
|
121
121
|
purl: stepPurl('src/api/checkout.ts'),
|
|
122
122
|
symbol: 'checkoutApi.respond',
|
|
123
123
|
annotation: 'API returns the confirmed booking.',
|
|
@@ -133,7 +133,7 @@ const trails: SubsystemTrail[] = [
|
|
|
133
133
|
to: 'api',
|
|
134
134
|
mechanism: 'calls',
|
|
135
135
|
file: 'src/ui/BookingPage.tsx',
|
|
136
|
-
|
|
136
|
+
span: { startLine: 61, endLine: 61, contentHash: 'fixture' },
|
|
137
137
|
purl: stepPurl('src/ui/BookingPage.tsx'),
|
|
138
138
|
symbol: 'BookingPage.cancel',
|
|
139
139
|
},
|
|
@@ -142,7 +142,7 @@ const trails: SubsystemTrail[] = [
|
|
|
142
142
|
to: 'store',
|
|
143
143
|
mechanism: 'writes',
|
|
144
144
|
file: 'src/api/checkout.ts',
|
|
145
|
-
|
|
145
|
+
span: { startLine: 33, endLine: 33, contentHash: 'fixture' },
|
|
146
146
|
purl: stepPurl('src/api/checkout.ts'),
|
|
147
147
|
symbol: 'checkoutApi.cancel',
|
|
148
148
|
},
|
|
@@ -151,7 +151,7 @@ const trails: SubsystemTrail[] = [
|
|
|
151
151
|
to: 'db',
|
|
152
152
|
mechanism: 'writes',
|
|
153
153
|
file: 'src/store/bookingStore.ts',
|
|
154
|
-
|
|
154
|
+
span: { startLine: 41, endLine: 41, contentHash: 'fixture' },
|
|
155
155
|
purl: stepPurl('src/store/bookingStore.ts'),
|
|
156
156
|
symbol: 'BookingStore.remove',
|
|
157
157
|
},
|
|
@@ -134,32 +134,32 @@ const drawingTrails: SubsystemTrail[] = [
|
|
|
134
134
|
id: 'tl-open-drawing',
|
|
135
135
|
title: 'Open drawing',
|
|
136
136
|
steps: [
|
|
137
|
-
{ from: 'panel', to: 'storage', mechanism: 'calls', file: 'src/panels/DrawingsLeftPanel.tsx',
|
|
138
|
-
{ from: 'panel', to: 'host', mechanism: 'produces', file: 'src/panels/DrawingsLeftPanel.tsx',
|
|
139
|
-
{ from: 'host', to: 'storage', mechanism: 'calls', file: 'src/hooks/useDrawingsHost.ts',
|
|
140
|
-
{ from: 'host', to: 'shell', mechanism: 'produces', file: 'src/workspace/WorkspaceShell.tsx',
|
|
141
|
-
{ from: 'shell', to: 'tab', mechanism: 'feeds', file: 'src/workspace/WorkspaceShell.tsx',
|
|
142
|
-
{ from: 'storage', to: 'fs', mechanism: 'calls', file: 'src/storage/drawingsStorage.ts',
|
|
143
|
-
{ from: 'tab', to: 'fs', mechanism: 'calls', file: 'src/components/DrawingTabContent.tsx',
|
|
137
|
+
{ from: 'panel', to: 'storage', mechanism: 'calls', file: 'src/panels/DrawingsLeftPanel.tsx', span: { startLine: 56, endLine: 56, contentHash: 'fixture' }, purl: stepPurl('src/panels/DrawingsLeftPanel.tsx'), symbol: 'DrawingsLeftPanel.scan', annotation: 'Lists the drawings directory; each row feeds an open intent.' },
|
|
138
|
+
{ from: 'panel', to: 'host', mechanism: 'produces', file: 'src/panels/DrawingsLeftPanel.tsx', span: { startLine: 85, endLine: 85, contentHash: 'fixture' }, purl: stepPurl('src/panels/DrawingsLeftPanel.tsx'), symbol: 'DrawingsLeftPanel.openDrawing', annotation: 'Emits the open intent up to the host.' },
|
|
139
|
+
{ from: 'host', to: 'storage', mechanism: 'calls', file: 'src/hooks/useDrawingsHost.ts', span: { startLine: 45, endLine: 45, contentHash: 'fixture' }, purl: stepPurl('src/hooks/useDrawingsHost.ts'), symbol: 'useDrawingsHost.openDrawing', annotation: 'Host resolves the path and delegates to storage.' },
|
|
140
|
+
{ from: 'host', to: 'shell', mechanism: 'produces', file: 'src/workspace/WorkspaceShell.tsx', span: { startLine: 369, endLine: 369, contentHash: 'fixture' }, purl: stepPurl('src/workspace/WorkspaceShell.tsx'), symbol: 'WorkspaceShell.openTab', annotation: 'Asks the shell to surface the drawing as a tab.' },
|
|
141
|
+
{ from: 'shell', to: 'tab', mechanism: 'feeds', file: 'src/workspace/WorkspaceShell.tsx', span: { startLine: 372, endLine: 372, contentHash: 'fixture' }, purl: stepPurl('src/workspace/WorkspaceShell.tsx'), symbol: 'WorkspaceShell.mountTab' },
|
|
142
|
+
{ from: 'storage', to: 'fs', mechanism: 'calls', file: 'src/storage/drawingsStorage.ts', span: { startLine: 90, endLine: 90, contentHash: 'fixture' }, purl: stepPurl('src/storage/drawingsStorage.ts'), symbol: 'DrawingsStorage.read', annotation: 'Reads the file through the sandboxed fs service.' },
|
|
143
|
+
{ from: 'tab', to: 'fs', mechanism: 'calls', file: 'src/components/DrawingTabContent.tsx', span: { startLine: 83, endLine: 83, contentHash: 'fixture' }, purl: stepPurl('src/components/DrawingTabContent.tsx'), symbol: 'DrawingTabContent.load' },
|
|
144
144
|
],
|
|
145
145
|
},
|
|
146
146
|
{
|
|
147
147
|
id: 'tl-save-drawing',
|
|
148
148
|
title: 'Save drawing',
|
|
149
149
|
steps: [
|
|
150
|
-
{ from: 'tab', to: 'fs', mechanism: 'calls', file: 'src/components/DrawingTabContent.tsx',
|
|
151
|
-
{ from: 'tab', to: 'host', mechanism: 'produces', file: 'src/components/DrawingTabContent.tsx',
|
|
152
|
-
{ from: 'host', to: 'panel', mechanism: 'produces', file: 'src/hooks/useDrawingsHost.ts',
|
|
153
|
-
{ from: 'panel', to: 'storage', mechanism: 'calls', file: 'src/panels/DrawingsLeftPanel.tsx',
|
|
150
|
+
{ from: 'tab', to: 'fs', mechanism: 'calls', file: 'src/components/DrawingTabContent.tsx', span: { startLine: 112, endLine: 112, contentHash: 'fixture' }, purl: stepPurl('src/components/DrawingTabContent.tsx'), symbol: 'DrawingTabContent.save' },
|
|
151
|
+
{ from: 'tab', to: 'host', mechanism: 'produces', file: 'src/components/DrawingTabContent.tsx', span: { startLine: 121, endLine: 121, contentHash: 'fixture' }, purl: stepPurl('src/components/DrawingTabContent.tsx'), symbol: 'DrawingTabContent.emitSaved' },
|
|
152
|
+
{ from: 'host', to: 'panel', mechanism: 'produces', file: 'src/hooks/useDrawingsHost.ts', span: { startLine: 64, endLine: 64, contentHash: 'fixture' }, purl: stepPurl('src/hooks/useDrawingsHost.ts'), symbol: 'useDrawingsHost.onSaved' },
|
|
153
|
+
{ from: 'panel', to: 'storage', mechanism: 'calls', file: 'src/panels/DrawingsLeftPanel.tsx', span: { startLine: 56, endLine: 56, contentHash: 'fixture' }, purl: stepPurl('src/panels/DrawingsLeftPanel.tsx'), symbol: 'DrawingsLeftPanel.scan' },
|
|
154
154
|
],
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
id: 'tl-delete-drawing',
|
|
158
158
|
title: 'Delete drawing',
|
|
159
159
|
steps: [
|
|
160
|
-
{ from: 'host', to: 'fs', mechanism: 'calls', file: 'src/hooks/useDrawingsHost.ts',
|
|
161
|
-
{ from: 'host', to: 'panel', mechanism: 'produces', file: 'src/hooks/useDrawingsHost.ts',
|
|
162
|
-
{ from: 'panel', to: 'storage', mechanism: 'calls', file: 'src/panels/DrawingsLeftPanel.tsx',
|
|
160
|
+
{ from: 'host', to: 'fs', mechanism: 'calls', file: 'src/hooks/useDrawingsHost.ts', span: { startLine: 64, endLine: 64, contentHash: 'fixture' }, purl: stepPurl('src/hooks/useDrawingsHost.ts'), symbol: 'useDrawingsHost.deleteDrawing' },
|
|
161
|
+
{ from: 'host', to: 'panel', mechanism: 'produces', file: 'src/hooks/useDrawingsHost.ts', span: { startLine: 66, endLine: 66, contentHash: 'fixture' }, purl: stepPurl('src/hooks/useDrawingsHost.ts'), symbol: 'useDrawingsHost.refreshList' },
|
|
162
|
+
{ from: 'panel', to: 'storage', mechanism: 'calls', file: 'src/panels/DrawingsLeftPanel.tsx', span: { startLine: 56, endLine: 56, contentHash: 'fixture' }, purl: stepPurl('src/panels/DrawingsLeftPanel.tsx'), symbol: 'DrawingsLeftPanel.scan' },
|
|
163
163
|
],
|
|
164
164
|
},
|
|
165
165
|
];
|
|
@@ -255,7 +255,7 @@ const proposedTrails: SubsystemTrail[] = [
|
|
|
255
255
|
to: 'storage',
|
|
256
256
|
mechanism: 'calls',
|
|
257
257
|
file: 'src/hooks/useDrawingsHost.ts',
|
|
258
|
-
|
|
258
|
+
span: { startLine: 45, endLine: 45, contentHash: 'fixture' },
|
|
259
259
|
purl: stepPurl('src/hooks/useDrawingsHost.ts'),
|
|
260
260
|
symbol: 'useDrawingsHost.openDrawing',
|
|
261
261
|
annotation: 'Live step — its snippet still renders.',
|
|
@@ -265,7 +265,7 @@ const proposedTrails: SubsystemTrail[] = [
|
|
|
265
265
|
to: 'runs',
|
|
266
266
|
mechanism: 'writes',
|
|
267
267
|
file: 'src/runs/subsystemModelRuns.ts',
|
|
268
|
-
|
|
268
|
+
span: { startLine: 1, endLine: 1, contentHash: 'fixture' },
|
|
269
269
|
purl: stepPurl('src/runs/subsystemModelRuns.ts'),
|
|
270
270
|
symbol: 'SubsystemModelRunStore.write',
|
|
271
271
|
annotation: 'Proposed seam — the file is not in the checkout yet.',
|
|
@@ -350,11 +350,10 @@ const clickableComponents: SubsystemComponent[] = [
|
|
|
350
350
|
symbol: 'LoadPanel',
|
|
351
351
|
purpose: 'loads the drawing list and hands rows to the render surface',
|
|
352
352
|
process: 'draw-list',
|
|
353
|
-
|
|
354
|
-
file: 'src/load/LoadPanel.tsx',
|
|
353
|
+
declarationSpan: {
|
|
355
354
|
startLine: 3,
|
|
356
|
-
|
|
357
|
-
|
|
355
|
+
endLine: 3,
|
|
356
|
+
contentHash: 'story',
|
|
358
357
|
},
|
|
359
358
|
declaration: {
|
|
360
359
|
kind: 'function',
|
|
@@ -374,11 +373,10 @@ const clickableComponents: SubsystemComponent[] = [
|
|
|
374
373
|
symbol: 'DrawingStore.list',
|
|
375
374
|
purpose: 'lists stored drawings for the panel',
|
|
376
375
|
process: 'draw-list',
|
|
377
|
-
|
|
378
|
-
file: 'src/store/DrawingStore.ts',
|
|
376
|
+
declarationSpan: {
|
|
379
377
|
startLine: 4,
|
|
380
|
-
|
|
381
|
-
|
|
378
|
+
endLine: 4,
|
|
379
|
+
contentHash: 'story',
|
|
382
380
|
},
|
|
383
381
|
declaration: {
|
|
384
382
|
kind: 'method',
|
|
@@ -397,11 +395,10 @@ const clickableComponents: SubsystemComponent[] = [
|
|
|
397
395
|
symbol: 'RenderSurface',
|
|
398
396
|
purpose: 'paints a drawing into a surface',
|
|
399
397
|
process: 'draw-host',
|
|
400
|
-
|
|
401
|
-
file: 'src/render/RenderSurface.ts',
|
|
398
|
+
declarationSpan: {
|
|
402
399
|
startLine: 3,
|
|
403
|
-
|
|
404
|
-
|
|
400
|
+
endLine: 3,
|
|
401
|
+
contentHash: 'story',
|
|
405
402
|
},
|
|
406
403
|
declaration: {
|
|
407
404
|
kind: 'class',
|
|
@@ -454,7 +451,7 @@ const clickableTrails: SubsystemTrail[] = [
|
|
|
454
451
|
to: 'drawing-store-list',
|
|
455
452
|
mechanism: 'calls',
|
|
456
453
|
file: 'src/load/LoadPanel.tsx',
|
|
457
|
-
|
|
454
|
+
span: { startLine: 4, endLine: 4, contentHash: 'fixture' },
|
|
458
455
|
purl: stepPurl('src/load/LoadPanel.tsx'),
|
|
459
456
|
symbol: 'LoadPanel.load',
|
|
460
457
|
annotation:
|
|
@@ -465,7 +462,7 @@ const clickableTrails: SubsystemTrail[] = [
|
|
|
465
462
|
to: 'render-surface',
|
|
466
463
|
mechanism: 'calls',
|
|
467
464
|
file: 'src/store/DrawingStore.ts',
|
|
468
|
-
|
|
465
|
+
span: { startLine: 5, endLine: 5, contentHash: 'fixture' },
|
|
469
466
|
purl: stepPurl('src/store/DrawingStore.ts'),
|
|
470
467
|
symbol: 'DrawingStore.list',
|
|
471
468
|
annotation: 'list reads through RenderSurface — click RenderSurface.',
|
|
@@ -38,7 +38,7 @@ export function trailFromSteps(
|
|
|
38
38
|
to,
|
|
39
39
|
mechanism,
|
|
40
40
|
file,
|
|
41
|
-
line,
|
|
41
|
+
span: { startLine: line, endLine: line, contentHash: 'fixture' },
|
|
42
42
|
purl: `pkg:github/storybook/fixture#${file}`,
|
|
43
43
|
symbol: symbol ?? from,
|
|
44
44
|
})),
|
|
@@ -54,7 +54,6 @@ export function graphSpecFromSteps(
|
|
|
54
54
|
to,
|
|
55
55
|
mechanism: mechanism as SubsystemTrailMechanism,
|
|
56
56
|
file: 'story-placeholder.ts',
|
|
57
|
-
line: 1,
|
|
58
57
|
purl: 'pkg:github/storybook/fixture#story-placeholder.ts',
|
|
59
58
|
symbol: from,
|
|
60
59
|
}));
|
|
@@ -43,11 +43,10 @@ const components: SubsystemComponent[] = [
|
|
|
43
43
|
process: 'notes-api/server',
|
|
44
44
|
file: 'src/api/submitNote.ts',
|
|
45
45
|
purpose: 'HTTP/handler entry — validates and hands off to the service.',
|
|
46
|
-
|
|
47
|
-
file: 'src/api/submitNote.ts',
|
|
46
|
+
declarationSpan: {
|
|
48
47
|
startLine: 7,
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
endLine: 7,
|
|
49
|
+
contentHash: 'storybook-placeholder',
|
|
51
50
|
},
|
|
52
51
|
declaration: {
|
|
53
52
|
kind: 'function',
|
|
@@ -69,11 +68,10 @@ const components: SubsystemComponent[] = [
|
|
|
69
68
|
process: 'notes-api/server',
|
|
70
69
|
file: 'src/NoteService.ts',
|
|
71
70
|
purpose: 'Owns intake rules; methods are separate nodes when they matter.',
|
|
72
|
-
|
|
73
|
-
file: 'src/NoteService.ts',
|
|
71
|
+
declarationSpan: {
|
|
74
72
|
startLine: 3,
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
endLine: 3,
|
|
74
|
+
contentHash: 'storybook-placeholder',
|
|
77
75
|
},
|
|
78
76
|
declaration: {
|
|
79
77
|
kind: 'class',
|
|
@@ -101,11 +99,10 @@ const components: SubsystemComponent[] = [
|
|
|
101
99
|
process: 'notes-api/server',
|
|
102
100
|
file: 'src/NoteService.ts',
|
|
103
101
|
purpose: 'Instance method on NoteService — written as its own construct.',
|
|
104
|
-
|
|
105
|
-
file: 'src/NoteService.ts',
|
|
102
|
+
declarationSpan: {
|
|
106
103
|
startLine: 14,
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
endLine: 14,
|
|
105
|
+
contentHash: 'storybook-placeholder',
|
|
109
106
|
},
|
|
110
107
|
declaration: {
|
|
111
108
|
kind: 'method',
|
|
@@ -337,7 +334,7 @@ function renderFileViewer(file: string, opts?: SubsystemOpenFileOptions) {
|
|
|
337
334
|
filePath={file}
|
|
338
335
|
fileName={file.split('/').pop() ?? file}
|
|
339
336
|
startLine={startLine}
|
|
340
|
-
endLine={startLine}
|
|
337
|
+
endLine={opts?.endLine ?? startLine}
|
|
341
338
|
focusLine={startLine}
|
|
342
339
|
contextLines={12}
|
|
343
340
|
readFile={readStoryFile}
|
|
@@ -151,11 +151,10 @@ function toComponent(
|
|
|
151
151
|
...(line != null ? { line } : {}),
|
|
152
152
|
...(line != null
|
|
153
153
|
? {
|
|
154
|
-
|
|
155
|
-
file: node.source_file ?? '',
|
|
154
|
+
declarationSpan: {
|
|
156
155
|
startLine: line,
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
endLine: line,
|
|
157
|
+
contentHash: 'ego-fixture',
|
|
159
158
|
},
|
|
160
159
|
}
|
|
161
160
|
: {}),
|