@principal-ai/subsystems-react 0.25.1 → 0.26.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.
Files changed (35) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/stories/Subsystem/ComponentGraph/aggregateFixture.d.ts +5 -0
  6. package/dist/stories/Subsystem/ComponentGraph/aggregateFixture.d.ts.map +1 -0
  7. package/dist/stories/Subsystem/ComponentGraph/aggregateFixture.js +4 -0
  8. package/dist/stories/Subsystem/ComponentGraph/aggregateFixture.js.map +1 -0
  9. package/dist/stories/Subsystem/ComponentGraph/aggregateViewFixture.d.ts +5 -0
  10. package/dist/stories/Subsystem/ComponentGraph/aggregateViewFixture.d.ts.map +1 -0
  11. package/dist/stories/Subsystem/ComponentGraph/aggregateViewFixture.js +4 -0
  12. package/dist/stories/Subsystem/ComponentGraph/aggregateViewFixture.js.map +1 -0
  13. package/dist/stories/Subsystem/ComponentGraph/composedFixture.d.ts +5 -0
  14. package/dist/stories/Subsystem/ComponentGraph/composedFixture.d.ts.map +1 -0
  15. package/dist/stories/Subsystem/ComponentGraph/composedFixture.js +4 -0
  16. package/dist/stories/Subsystem/ComponentGraph/composedFixture.js.map +1 -0
  17. package/dist/subsystem/SubsystemAggregateGraph.d.ts +70 -0
  18. package/dist/subsystem/SubsystemAggregateGraph.d.ts.map +1 -0
  19. package/dist/subsystem/SubsystemAggregateGraph.js +385 -0
  20. package/dist/subsystem/SubsystemAggregateGraph.js.map +1 -0
  21. package/dist/subsystem/model.d.ts +7 -0
  22. package/dist/subsystem/model.d.ts.map +1 -1
  23. package/dist/subsystem/model.js +35 -0
  24. package/dist/subsystem/model.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/index.ts +8 -0
  27. package/src/stories/Subsystem/ComponentGraph/AggregateFrameGraph.stories.tsx +61 -0
  28. package/src/stories/Subsystem/ComponentGraph/AggregateGraph.stories.tsx +61 -0
  29. package/src/stories/Subsystem/ComponentGraph/ComposedGraph.stories.tsx +73 -0
  30. package/src/stories/Subsystem/ComponentGraph/aggregateFixture.ts +8 -0
  31. package/src/stories/Subsystem/ComponentGraph/aggregateViewFixture.ts +8 -0
  32. package/src/stories/Subsystem/ComponentGraph/composedFixture.ts +9 -0
  33. package/src/subsystem/SubsystemAggregateGraph.tsx +607 -0
  34. package/src/subsystem/model.test.ts +17 -0
  35. package/src/subsystem/model.ts +34 -0
@@ -0,0 +1,8 @@
1
+ // GENERATED from live store data — do not hand-edit.
2
+ import type { SubsystemComponent, SubsystemRelation, SubsystemWalkthrough } from "../../../subsystem/model";
3
+
4
+ export const aggregateComponents: SubsystemComponent[] = JSON.parse("[{\"alias\":\"process:site/web\",\"name\":\"site/web\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"3 members · 1 model\"},{\"alias\":\"process:subsystems-core/types\",\"name\":\"subsystems-core/types\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"3 members · 1 model\"},{\"alias\":\"process:external/github\",\"name\":\"external/github\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"},{\"alias\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"name\":\"SubsystemComponentGraph.tsx\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 8 models\"},{\"alias\":\"process:principal-studio-cli\",\"name\":\"principal-studio-cli\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"},{\"alias\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"name\":\"subsystem-model-store.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"6 members · 7 models\"},{\"alias\":\"process:subsystems-studio/host\",\"name\":\"subsystems-studio/host\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"44 members · 12 models\"},{\"alias\":\"process:local/disk\",\"name\":\"local/disk\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"},{\"alias\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"name\":\"SubsystemModelsView.tsx\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"2 members · 5 models\"},{\"alias\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"name\":\"SubsystemModelView.tsx\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"2 members · 6 models\"},{\"alias\":\"process:proposed/studio-gist\",\"name\":\"proposed/studio-gist\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"2 members · 1 model\"},{\"alias\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"name\":\"http-server.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"2 members · 3 models\"},{\"alias\":\"process:subsystems-studio/renderer\",\"name\":\"subsystems-studio/renderer\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"19 members · 8 models\"},{\"alias\":\"process:subsystems-react\",\"name\":\"subsystems-react\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"11 members · 3 models\"},{\"alias\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"name\":\"model.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"9 members · 4 models\"},{\"alias\":\"process:subsystems-core\",\"name\":\"subsystems-core\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"4 members · 4 models\"},{\"alias\":\"process:opencode\",\"name\":\"opencode\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"2 members · 1 model\"},{\"alias\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"name\":\"verify-subsystem-component.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"3 members · 4 models\"},{\"alias\":\"module:packages/subsystems-studio/src/bun/regular-audit.ts\",\"name\":\"regular-audit.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"},{\"alias\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"name\":\"index.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"7 members · 4 models\"},{\"alias\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"name\":\"rpc.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"3 members · 2 models\"},{\"alias\":\"module:packages/subsystems-react/src/utils/elkLayout.ts\",\"name\":\"elkLayout.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"2 members · 3 models\"},{\"alias\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"name\":\"App.tsx\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 2 models\"},{\"alias\":\"process:opencode/v2\",\"name\":\"opencode/v2\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"3 members · 1 model\"},{\"alias\":\"module:packages/subsystems-studio/src/bun/proposal-store.ts\",\"name\":\"proposal-store.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"2 members · 2 models\"},{\"alias\":\"process:opencode2/service\",\"name\":\"opencode2/service\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"},{\"alias\":\"process:opencode/sqlite\",\"name\":\"opencode/sqlite\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"4 members · 1 model\"},{\"alias\":\"module:packages/subsystems-react/src/subsystem/nodes.tsx\",\"name\":\"nodes.tsx\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 2 models\"},{\"alias\":\"process:principal-studio/renderer\",\"name\":\"principal-studio/renderer\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"7 members · 2 models\"},{\"alias\":\"process:principal-studio/host\",\"name\":\"principal-studio/host\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"2 members · 1 model\"},{\"alias\":\"ungrouped\",\"name\":\"ungrouped\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"},{\"alias\":\"module:packages/subsystems-studio/src/mainview/components/TabStrip.tsx\",\"name\":\"TabStrip.tsx\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"},{\"alias\":\"module:packages/subsystems-studio/src/shared/contract.ts\",\"name\":\"contract.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"3 members · 2 models\"},{\"alias\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"name\":\"alexandria.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"2 members · 1 model\"},{\"alias\":\"module:packages/subsystems-studio/src/bun/graphify-store.ts\",\"name\":\"graphify-store.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"2 members · 1 model\"},{\"alias\":\"process:alexandria\",\"name\":\"alexandria\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"},{\"alias\":\"module:packages/subsystems-studio/src/mainview/excalidraw/subsystemToExcalidraw.ts\",\"name\":\"subsystemToExcalidraw.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"},{\"alias\":\"module:packages/subsystems-studio/src/mainview/excalidraw/excalidrawToSubsystem.ts\",\"name\":\"excalidrawToSubsystem.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"},{\"alias\":\"module:packages/subsystems-studio/src/bun/merge-submodel-models.ts\",\"name\":\"merge-submodel-models.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"},{\"alias\":\"module:packages/subsystems-react/src/subsystem/paths.ts\",\"name\":\"paths.ts\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"},{\"alias\":\"module:packages/subsystems-react/src/subsystem/SubsystemFileTree.tsx\",\"name\":\"SubsystemFileTree.tsx\",\"construct\":\"external\",\"file\":\"\",\"purl\":\"external\",\"purpose\":\"1 member · 1 model\"}]");
5
+
6
+ export const aggregateRelations: SubsystemRelation[] = JSON.parse("[{\"id\":\"ref-extends-host\",\"from\":\"process:proposed/studio-gist\",\"to\":\"process:subsystems-core/types\",\"relationType\":\"extends\",\"refs\":[\"external:proposed\"]},{\"id\":\"schema-vs-react-parallel\",\"from\":\"process:subsystems-core\",\"to\":\"process:subsystems-react\",\"relationType\":\"references\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-core/src/types/subsystem-model.ts\"]},{\"id\":\"declaration-mirrors-detail\",\"from\":\"process:subsystems-core\",\"to\":\"process:subsystems-react\",\"relationType\":\"references\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-react/src/graphify/consolidated.ts\"]},{\"id\":\"declaration-not-read\",\"from\":\"process:subsystems-react\",\"to\":\"process:subsystems-core\",\"relationType\":\"references\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-react/src/subsystem/formatDeclaration.ts\"]},{\"id\":\"graph-imports-build\",\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"relationType\":\"imports\"},{\"id\":\"graph-imports-group-node\",\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/nodes.tsx\",\"relationType\":\"imports\"},{\"id\":\"build-imports-elk\",\"from\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"to\":\"module:packages/subsystems-react/src/utils/elkLayout.ts\",\"relationType\":\"imports\"},{\"id\":\"graph-imports-build__dup1\",\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"relationType\":\"imports\"},{\"id\":\"graph-imports-group\",\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/nodes.tsx\",\"relationType\":\"imports\"},{\"id\":\"build-imports-elk__dup1\",\"from\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"to\":\"module:packages/subsystems-react/src/utils/elkLayout.ts\",\"relationType\":\"imports\"},{\"id\":\"r-view-graph\",\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"relationType\":\"imports\"},{\"id\":\"r-view-issues\",\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"relationType\":\"imports\"},{\"id\":\"r-view-verification\",\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"relationType\":\"imports\"},{\"id\":\"r-view-flow\",\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"relationType\":\"imports\"},{\"id\":\"r-graph-node\",\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"relationType\":\"imports\"},{\"id\":\"r-graph-chip\",\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"relationType\":\"imports\"},{\"id\":\"r-graph-list\",\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"relationType\":\"imports\"},{\"id\":\"r-audit-save\",\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"relationType\":\"imports\"},{\"id\":\"r-component-anchor\",\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"relationType\":\"imports\"},{\"id\":\"r-audit-topology\",\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"relationType\":\"imports\"},{\"id\":\"r-audit-boundary\",\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"relationType\":\"imports\"},{\"id\":\"r-comp-infer\",\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"relationType\":\"imports\"},{\"id\":\"r-comp-constructs\",\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"relationType\":\"imports\"},{\"id\":\"r-comp-signatures\",\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"relationType\":\"imports\"},{\"id\":\"smv-imports-graph\",\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\"]},{\"id\":\"smv-imports-file-view\",\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:principal-studio/renderer\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-react/src/pierre/PierreFileView.tsx\"]},{\"id\":\"smv-imports-snippet-view\",\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:principal-studio/renderer\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-react/src/pierre/PierreSnippetView.tsx\"]},{\"id\":\"graph-imports-drawer\",\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"process:principal-studio/renderer\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\"]},{\"id\":\"get-model-imports-fs\",\"from\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"to\":\"process:principal-studio/host\",\"relationType\":\"imports\"},{\"id\":\"app-renders-strip\",\"from\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"to\":\"module:packages/subsystems-studio/src/mainview/components/TabStrip.tsx\",\"relationType\":\"references\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/mainview/App.tsx\"]},{\"id\":\"app-uses-requests\",\"from\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"to\":\"module:packages/subsystems-studio/src/shared/contract.ts\",\"relationType\":\"references\"},{\"id\":\"bridge-uses-requests\",\"from\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"to\":\"module:packages/subsystems-studio/src/shared/contract.ts\",\"relationType\":\"references\"},{\"id\":\"bridge-uses-messages\",\"from\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"to\":\"module:packages/subsystems-studio/src/shared/contract.ts\",\"relationType\":\"references\"},{\"id\":\"broadcast-uses-messages\",\"from\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"to\":\"module:packages/subsystems-studio/src/shared/contract.ts\",\"relationType\":\"references\"},{\"id\":\"route-to-validation\",\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"process:subsystems-studio/host\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/bun/http-server.ts\"]},{\"id\":\"route-to-store-create\",\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/bun/http-server.ts\"]},{\"id\":\"route-to-alexandria-register\",\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/bun/http-server.ts\"]},{\"id\":\"validation-to-cross-field\",\"from\":\"process:subsystems-studio/host\",\"to\":\"process:subsystems-core\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/bun/subsystem-model-validation.ts\"]},{\"id\":\"register-roots-to-alexandria\",\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/bun/http-server.ts\"]},{\"id\":\"resolve-root-to-alexandria\",\"from\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/bun/subsystem-model-store.ts\"]},{\"id\":\"resolve-purl-root-to-alexandria\",\"from\":\"module:packages/subsystems-studio/src/bun/graphify-store.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/bun/graphify-store.ts\"]},{\"id\":\"listing-to-derivation\",\"from\":\"process:principal-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"relationType\":\"references\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\"]},{\"id\":\"merge-reads-store\",\"from\":\"module:packages/subsystems-studio/src/bun/merge-submodel-models.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"relationType\":\"references\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/bun/merge-submodel-models.ts\"]},{\"id\":\"rebuild-imports-meta\",\"from\":\"module:packages/subsystems-studio/src/mainview/excalidraw/excalidrawToSubsystem.ts\",\"to\":\"module:packages/subsystems-studio/src/mainview/excalidraw/subsystemToExcalidraw.ts\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/mainview/excalidraw/excalidrawToSubsystem.ts\"]},{\"id\":\"fix-adopt-reads-store\",\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/bun/verify-subsystem-component.ts\"]},{\"id\":\"proposal-create-reads-store\",\"from\":\"module:packages/subsystems-studio/src/bun/proposal-store.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"relationType\":\"imports\",\"refs\":[\"pkg:github/principal-ai/subsystem-modeling#packages/subsystems-studio/src/bun/proposal-store.ts\"]},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"id\":\"detail-uses-repos\",\"relationType\":\"references\",\"to\":\"module:packages/subsystems-react/src/subsystem/paths.ts\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"id\":\"detail-uses-tree\",\"relationType\":\"references\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemFileTree.tsx\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"id\":\"panel-uses-repos\",\"relationType\":\"references\",\"to\":\"module:packages/subsystems-react/src/subsystem/paths.ts\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"id\":\"panel-uses-tree\",\"relationType\":\"references\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemFileTree.tsx\"},{\"from\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"id\":\"rpc-reads-index\",\"relationType\":\"references\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"id\":\"view-renders-summary\",\"relationType\":\"references\",\"to\":\"module:packages/subsystems-studio/src/shared/contract.ts\"}]");
7
+
8
+ export const aggregateWalkthroughs: SubsystemWalkthrough[] = JSON.parse("[{\"id\":\"tl-site-view-gist\",\"title\":\"Someone opens the shared gist on the site\",\"steps\":[{\"from\":\"process:site/web\",\"to\":\"process:external/github\",\"mechanism\":\"calls\",\"file\":\"site/src/lib/gist.ts\",\"line\":94,\"symbol\":\"loadSubsystemModelFromGist\",\"annotation\":\"Read the public gist JSON (no Studio disk involved).\"},{\"from\":\"process:site/web\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"mechanism\":\"uses\",\"file\":\"site/src/pages/Gist.tsx\",\"line\":184,\"symbol\":\"Gist\",\"annotation\":\"Render the shared model in the browser.\"}]},{\"id\":\"tl-persist-local-store\",\"title\":\"Persist a local model to ~/.principal/subsystem-models\",\"steps\":[{\"from\":\"process:principal-studio-cli\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanism\":\"calls\",\"file\":\"packages/principal-studio-cli/src/commands/subsystem-model.ts\",\"line\":186,\"symbol\":\"createAction\",\"annotation\":\"CLI/agent create path — always a new local sg- id today.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"to\":\"process:local/disk\",\"mechanism\":\"writes\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"line\":929,\"symbol\":\"createSubsystemModel\",\"annotation\":\"Host create writes a record into the shared ~/.principal/subsystem-models directory (CLI can write the same store).\"},{\"from\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"writes\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"line\":951,\"symbol\":\"createSubsystemModel\",\"annotation\":\"Mirror listing fields into _index.json.\"},{\"from\":\"process:principal-studio-cli\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/principal-studio-cli/src/commands/subsystem-model.ts\",\"line\":205,\"symbol\":\"createAction\",\"annotation\":\"Open the local model in Studio.\"}]},{\"id\":\"tl-proposed-share-gist\",\"title\":\"Proposed: share local model as gist (create or update)\",\"steps\":[{\"from\":\"process:proposed/studio-gist\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"line\":919,\"symbol\":\"getSubsystemModel\",\"annotation\":\"Load the hydrated local record from the disk store.\"},{\"from\":\"process:proposed/studio-gist\",\"to\":\"process:site/web\",\"mechanism\":\"calls\",\"file\":\"site/src/lib/gist.ts\",\"line\":161,\"symbol\":\"toPortableDocument\",\"annotation\":\"Strip host fields so the gist file is portable-only.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:proposed/studio-gist\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"line\":849,\"symbol\":\"indexEntryFor\",\"annotation\":\"Index/host gist ref decides PATCH existing gist vs POST a new one.\"},{\"from\":\"process:proposed/studio-gist\",\"to\":\"process:external/github\",\"mechanism\":\"calls\",\"file\":\"site/src/lib/gist.ts\",\"line\":94,\"symbol\":\"loadSubsystemModelFromGist\",\"annotation\":\"POST /gists (first share) or PATCH /gists/{id} (subsequent) — token required.\"},{\"from\":\"process:proposed/studio-gist\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"line\":957,\"symbol\":\"updateSubsystemModel\",\"annotation\":\"Stamp gist.id on the local record + index so the next share updates in place.\"}]},{\"id\":\"tl-first-open-ok\",\"title\":\"First open — cover lifts\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-react\",\"mechanism\":\"uses\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":258,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Mount SubsystemComponentGraph for a freshly loaded graph.\"},{\"from\":\"process:subsystems-react\",\"to\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":407,\"symbol\":\"Inner\",\"annotation\":\"Pass 1: buildSubsystemGraph without measured sizes.\"},{\"from\":\"process:subsystems-react\",\"to\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":454,\"symbol\":\"triggerPass2\",\"annotation\":\"Pass 2 re-runs buildSubsystemGraph with measured widths.\"}]},{\"id\":\"tl-update-stuck\",\"title\":\"Bug (before fix) — update stuck on cover\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/http-server.ts\",\"line\":324,\"symbol\":\"handleSubsystemModelRequest\",\"annotation\":\"Agent PUT patches the open graph.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:subsystems-studio/renderer\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":2007,\"symbol\":\"broadcastSubsystemModelChanged\",\"annotation\":\"Send subsystemModelChanged into the renderer.\"},{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"line\":95,\"symbol\":\"subsystemModelChangeSubscribers\",\"annotation\":\"Fan the push out to every subscribed tab.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-react\",\"mechanism\":\"uses\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":258,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Same Inner instance gets new components/edges props.\"},{\"from\":\"process:subsystems-react\",\"to\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":407,\"symbol\":\"Inner\",\"annotation\":\"Pass 1 rebuilds then setLayoutReady(false) drops the cover.\"}]},{\"id\":\"tl-proposed-fix\",\"title\":\"Fix — reuse dims + kick Pass 2\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/http-server.ts\",\"line\":324,\"symbol\":\"handleSubsystemModelRequest\",\"annotation\":\"Same live PUT into an open tab.\"},{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":69,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Tab reloads; Inner stays mounted.\"},{\"from\":\"process:subsystems-react\",\"to\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":407,\"symbol\":\"Inner\",\"annotation\":\"Pass 1 still estimates; cover drops via setLayoutReady(false).\"},{\"from\":\"process:subsystems-react\",\"to\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":454,\"symbol\":\"triggerPass2\",\"annotation\":\"Measured ELK; .catch reveals on error.\"}]},{\"id\":\"tl-probe-status\",\"title\":\"Probe OpenCode server status\",\"steps\":[{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1406,\"symbol\":\"probeOpencodeServer\",\"annotation\":\"RPC getOpencodeServerStatus delegates to probeOpencodeServer.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/server-sessions.ts\",\"line\":108,\"symbol\":\"probeOpencodeServer\",\"annotation\":\"Basic-auth GET /api/health against the live OpenCode server.\"}]},{\"id\":\"tl-watch-live-sessions\",\"title\":\"Watch live OpenCode sessions\",\"steps\":[{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/components/ServerSessionsModal.tsx\",\"line\":102,\"symbol\":\"ServerSessionsModal\",\"annotation\":\"Enable the host SSE watch when the modal mounts.\"},{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1407,\"symbol\":\"listRecentServerSessions\",\"annotation\":\"RPC getServerSessions delegates to listRecentServerSessions.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/server-sessions.ts\",\"line\":182,\"symbol\":\"listRecentServerSessions\",\"annotation\":\"Build Basic-auth headers before fetching session list and active set.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode\",\"mechanism\":\"watches\",\"file\":\"packages/subsystems-studio/src/bun/server-sessions.ts\",\"line\":302,\"symbol\":\"startWatch\",\"annotation\":\"Open the /api/event SSE stream with the same Basic-auth headers.\"}]},{\"id\":\"tl-load-historical\",\"title\":\"Load historical OpenCode session events\",\"steps\":[{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1286,\"symbol\":\"buildSessionIndex\",\"annotation\":\"listSessions RPC builds the recent-window index from opencode.db.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/session-pipeline.ts\",\"line\":801,\"symbol\":\"buildSessionIndex\",\"annotation\":\"Resolve the OpenCode data-dir sqlite path for the index scan.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/session-pipeline.ts\",\"line\":1270,\"symbol\":\"processSessionEvents\",\"annotation\":\"Cache-key the OpenCode session before reading its sqlite event rows.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:subsystems-core\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/session-pipeline.ts\",\"line\":1310,\"symbol\":\"processSessionEvents\",\"annotation\":\"Convert raw OpenCode rows into universal events before normalize/accumulate.\"}]},{\"id\":\"tl-extract-concepts\",\"title\":\"Extract concepts via opencode run\",\"steps\":[{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1961,\"symbol\":\"analyzeSessionInBackground\",\"annotation\":\"analyzeSession RPC starts background extraction for a new analysis id.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/extraction.ts\",\"line\":263,\"symbol\":\"runOpenCodeExtraction\",\"annotation\":\"Spawn OPENCODE_BIN run --agent concept-extractor and parse the JSON stream.\"}]},{\"id\":\"tl-run-audit\",\"title\":\"Run a dry-run audit from the Audit button\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":347,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Collect unique component purls that need a graphify cache, skipping externals.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":364,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Subscribe to graphifyChanged pushes while a background build runs.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":374,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Ensure the graphify cache over RPC and wait when the status is building.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":443,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Invoke the host dry-run audit once caches are ready.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/renderer\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":452,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Deliver the report into the modal done phase without mutating the graph.\"}]},{\"id\":\"tl-host-checks\",\"title\":\"Deterministic checks inside the host audit\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":598,\"symbol\":\"auditSubsystemModel\",\"annotation\":\"Check every file exists and every claimed symbol is declared.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":227,\"symbol\":\"verifySubsystemComponent\",\"annotation\":\"Test the claimed symbol declaration against file contents.\"}]},{\"id\":\"wt-regular-audit\",\"title\":\"Background regular audit pass\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/bun/regular-audit.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":2683,\"symbol\":\"auditOne\",\"annotation\":\"Hand the next stored model to the quiet re-audit once the timer fires.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":2662,\"symbol\":\"reauditSubsystemModelQuietly\",\"annotation\":\"Re-run the deterministic dry-run audit for the model.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"mechanism\":\"produces\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":871,\"symbol\":\"auditSubsystemModel\",\"annotation\":\"Produce the fresh report the quiet pass persists.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/regular-audit.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"mechanism\":\"produces\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":2686,\"symbol\":\"broadcastRegularAuditChanged\",\"annotation\":\"Emit scheduler status on every enable, tick and pass finish.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"to\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"line\":151,\"symbol\":\"broadcastRegularAuditChanged\",\"annotation\":\"Fan the pushed status out to every registered renderer callback.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"to\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"line\":645,\"symbol\":\"regularAuditChangeSubscribers\",\"annotation\":\"Re-render the model list countdown and running badge.\"}]},{\"id\":\"tl-click-load\",\"title\":\"Click subsystem, tab already open (fast path)\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"line\":981,\"symbol\":\"onOpen\",\"annotation\":\"Row click fires openSubsystemModel RPC; host takes the zero-IO focus path.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1018,\"symbol\":\"openSubsystemModelTab\",\"annotation\":\"Host broadcasts focus before any disk IO so the tab switches instantly.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"line\":829,\"symbol\":\"touchSubsystemModelOpened\",\"annotation\":\"Stamp path re-reads the graph file, then writes record plus index.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":79,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Remount fetches the full graph over the bridge.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"mechanism\":\"uses\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":377,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Detail mounts the React Flow graph with full components and edges.\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":537,\"symbol\":\"SubsystemComponentGraph\",\"annotation\":\"Graph runs pass 1 ELK layout with estimated node sizes.\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"to\":\"module:packages/subsystems-react/src/utils/elkLayout.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"line\":1408,\"symbol\":\"buildSubsystemGraph\",\"annotation\":\"Builder runs orthogonal ELK on the main thread.\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"process:subsystems-react\",\"mechanism\":\"uses\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":2122,\"symbol\":\"SubsystemComponentGraph\",\"annotation\":\"Cover stays opaque 650ms after layout ready plus 200ms fade.\"}]},{\"id\":\"tl-optimistic-open\",\"title\":\"First open with empty state (implemented)\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"line\":981,\"symbol\":\"onOpen\",\"annotation\":\"Row click fires RPC; host resolves title from the small index file.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"mechanism\":\"writes\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1051,\"symbol\":\"openSubsystemModelTab\",\"annotation\":\"Host creates tab from index title, no full graph read.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1054,\"symbol\":\"openSubsystemModelTab\",\"annotation\":\"Host broadcasts focus immediately; stamp moves to background.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"to\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"mechanism\":\"uses\",\"file\":\"packages/subsystems-studio/src/mainview/App.tsx\",\"line\":303,\"symbol\":\"App\",\"annotation\":\"Renderer switches tab and mounts detail view without waiting.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"mechanism\":\"uses\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":361,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Detail shows Loading placeholder while graph fetches.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":79,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Detail fetches full graph in background and fills in on arrival.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"mechanism\":\"uses\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":377,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Once loaded, detail mounts graph canvas; tab already visible.\"}]},{\"id\":\"tl-debug-install\",\"title\":\"Debug tab detects and installs OpenCode V2\",\"steps\":[{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/OpencodeV2DebugView.tsx\",\"line\":22,\"symbol\":\"OpencodeV2DebugView\",\"annotation\":\"Tab loads status over RPC getOpencodeV2Status.\"},{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/OpencodeV2DebugView.tsx\",\"line\":66,\"symbol\":\"OpencodeV2DebugView\",\"annotation\":\"Install button kicks installOpencodeV2 in the background.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode/v2\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/opencode-v2.ts\",\"line\":147,\"symbol\":\"installOpencodeV2\",\"annotation\":\"Runs npm install -g @opencode-ai/cli@beta when the binary is missing.\"}]},{\"id\":\"tl-ensure-opencode-v2\",\"title\":\"Studio ensures OpenCode V2 runtime\",\"steps\":[{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode/v2\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/opencode-v2.ts\",\"line\":24,\"symbol\":\"resolveOpencode2Bin\",\"annotation\":\"If missing or behind, Studio installs/updates @opencode-ai/cli@beta (mirrors studio-version detect+update).\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode/v2\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/maintain-model.ts\",\"line\":650,\"symbol\":\"runMaintainAgent\",\"annotation\":\"Service.ensure([opencode2, serve, --service]) starts or reuses the shared V2 background server.\"}]},{\"id\":\"tl-start-maintain-via-v2\",\"title\":\"Start Maintain via OpenCode V2\",\"steps\":[{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/components/MaintainModelPickerModal.tsx\",\"line\":89,\"symbol\":\"MaintainModelPickerModal\",\"annotation\":\"RPC maintainSubsystemModel kicks the host; UI returns as soon as the run is accepted.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode/v2\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/opencode-v2.ts\",\"line\":24,\"symbol\":\"resolveOpencode2Bin\",\"annotation\":\"If missing or behind beta, Studio installs/updates @opencode-ai/cli@beta (same idea as studio-version update).\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode/v2\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/maintain-model.ts\",\"line\":650,\"symbol\":\"runMaintainAgent\",\"annotation\":\"Service.ensure([opencode2, serve, --service]) starts or reuses the shared V2 background server.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode/v2\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/maintain-model.ts\",\"line\":651,\"symbol\":\"runMaintainAgent\",\"annotation\":\"Create session + prompt on the ensured V2 service (replaces Bun.spawn opencode run).\"}]},{\"id\":\"tl-live-progress-sse\",\"title\":\"Live progress over V2 SSE\",\"steps\":[{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode/v2\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/maintain-model.ts\",\"line\":651,\"symbol\":\"runMaintainAgent\",\"annotation\":\"Same seam also opens client.event.subscribe() scoped to the Maintain session.\"},{\"from\":\"process:opencode/v2\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"produces\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":2319,\"symbol\":\"maintainSubsystemModelInBackground\",\"annotation\":\"Proposed: forward message/part/tool events into Maintain broadcasts instead of waiting for process exit.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:subsystems-studio/renderer\",\"mechanism\":\"produces\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":2325,\"symbol\":\"maintainSubsystemModelInBackground\",\"annotation\":\"Host pushes subsystemModelMaintainChanged. StudioMessageSubscriber now types the payload; renderer subscription sites are the fan-out.\"}]},{\"id\":\"tl-agent-proposes\",\"title\":\"Agent proposes via Studio HTTP\",\"steps\":[{\"from\":\"process:opencode/v2\",\"to\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/http-server.ts\",\"line\":354,\"symbol\":\"handleSubsystemModelRequest\",\"annotation\":\"Agent curls POST /api/subsystem-model/:id/proposals using Access commands from the brief.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/proposal-store.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/http-server.ts\",\"line\":354,\"symbol\":\"handleSubsystemModelRequest\",\"annotation\":\"HTTP handler validates body and creates a pending proposal in the proposal store.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"process:subsystems-studio/renderer\",\"mechanism\":\"produces\",\"file\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"line\":71,\"symbol\":\"subsystemModelProposalsChangeSubscribers\",\"annotation\":\"HTTP onProposalsChanged dispatch lands on the contract type node — the fan-out bag is plumbing under the refactor.\"}]},{\"id\":\"tl-list-maintain\",\"title\":\"List Maintenance Sessions\",\"steps\":[{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/AgentSessions.tsx\",\"line\":360,\"symbol\":\"AgentSessionsOverviewView\",\"annotation\":\"Renderer RPC listMaintainSessions for the day window.\"}]},{\"id\":\"tl-load-timeline-gap\",\"title\":\"Load timeline (empty for V2 Maintain)\",\"steps\":[{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/AgentSessions.tsx\",\"line\":411,\"symbol\":\"AgentSessionsOverviewView\",\"annotation\":\"Seed the panel via getAgentSessionsOverview({ scope: maintain }).\"}]},{\"id\":\"tl-create-maintain\",\"title\":\"Create a Maintain run\",\"steps\":[{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode2/service\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/opencode-v2-live.ts\",\"line\":291,\"symbol\":\"runOpencodeV2AgentSession\",\"annotation\":\"Create+prompt against the running opencode2 HTTP service.\"}]},{\"id\":\"tl-maintain-list\",\"title\":\"List Maintenance Sessions\",\"steps\":[{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/AgentSessions.tsx\",\"line\":360,\"symbol\":\"AgentSessionsOverviewView\",\"annotation\":\"scope=maintain calls listMaintainSessions for the day window.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode/sqlite\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/maintain-sessions.ts\",\"line\":161,\"symbol\":\"listMaintainSessions\",\"annotation\":\"SELECT from session_v2 where agent is issue-fixer/gap-filler or title is Maintain — …\"}]},{\"id\":\"tl-v1-timeline\",\"title\":\"V1 timeline (event table)\",\"steps\":[{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/AgentSessions.tsx\",\"line\":411,\"symbol\":\"AgentSessionsOverviewView\",\"annotation\":\"Overview loads processed timelines via getAgentSessionsOverview → processSessionEvents.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode/sqlite\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/session-pipeline.ts\",\"line\":1200,\"symbol\":\"processSessionEvents\",\"annotation\":\"V1 identity: row exists in session (e.g. version 1.18.30).\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode/sqlite\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/session-pipeline.ts\",\"line\":1292,\"symbol\":\"processSessionEvents\",\"annotation\":\"SELECT FROM event WHERE aggregate_id = ? — today's OpenCode path.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:subsystems-core\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/session-pipeline.ts\",\"line\":1318,\"symbol\":\"opencodeRowsToUniversalEvents\",\"annotation\":\"Map event rows to UniversalAgentSessionEvent.\"},{\"from\":\"process:subsystems-core\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/bun/session-pipeline.ts\",\"line\":1336,\"symbol\":\"accumulateEvents\",\"annotation\":\"Accumulate into SessionEventRow for the panel.\"}]},{\"id\":\"tl-v2-timeline\",\"title\":\"V2 timeline (session_message)\",\"steps\":[{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/AgentSessions.tsx\",\"line\":411,\"symbol\":\"AgentSessionsOverviewView\",\"annotation\":\"Same overview load path; kind routing chooses the V2 reader.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode/sqlite\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/maintain-sessions.ts\",\"line\":161,\"symbol\":\"listMaintainSessions\",\"annotation\":\"V2 identity signal is the session_v2 metadata row (same table listing uses).\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:opencode/sqlite\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/session-pipeline.ts\",\"line\":1200,\"symbol\":\"processSessionEvents\",\"annotation\":\"Planned: read session_message instead of event for v2 ids.\"}]},{\"id\":\"tl-authored-renders-unknown\",\"title\":\"Authored declaration → panel shows = unknown\",\"steps\":[{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"process:subsystems-react\",\"mechanism\":\"uses\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":1776,\"symbol\":\"SubsystemComponentGraph\",\"annotation\":\"Selected node opens ComponentDeclaration with the raw component.\"}]},{\"id\":\"tl-verified-detail-works\",\"title\":\"Verified graphify capture → detail → panel\",\"steps\":[{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:subsystems-react\",\"mechanism\":\"writes\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":1428,\"symbol\":\"buildDetailFromAdoptedSignature\",\"annotation\":\"Audit adopt-signature writes verified detail onto the component.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:subsystems-react\",\"mechanism\":\"writes\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"line\":486,\"symbol\":\"normalizeDetailProvenance\",\"annotation\":\"Store defaults provenance and backfills required detail arrays.\"}]},{\"id\":\"tl-proposed-single-source\",\"title\":\"Proposed: panel reads schema declaration\",\"steps\":[{\"from\":\"process:subsystems-react\",\"to\":\"process:subsystems-core\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-core/src/types/subsystem-model.ts\",\"line\":224,\"symbol\":\"SubsystemConstructDeclaration\",\"annotation\":\"Repoint generateDeclarationString at this union (and migrate capture into it).\"}]},{\"id\":\"wt-frame-today\",\"title\":\"Frame a document (today)\",\"steps\":[{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":424,\"symbol\":\"SubsystemComponentGraph\",\"annotation\":\"Document change triggers buildSubsystemGraph.\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"to\":\"module:packages/subsystems-react/src/utils/elkLayout.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"line\":1009,\"symbol\":\"buildSubsystemGraph\",\"annotation\":\"computeElkLayout gets a flat groups[] — one parent level only.\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/nodes.tsx\",\"mechanism\":\"uses\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":178,\"symbol\":\"SubsystemComponentGraph\",\"annotation\":\"RF registers SubsystemGroupNode for type subsystem-group.\"}]},{\"id\":\"wt-nest\",\"title\":\"Nest process → module → export\",\"steps\":[{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":424,\"symbol\":\"SubsystemComponentGraph\",\"annotation\":\"Document change triggers buildSubsystemGraph.\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"to\":\"module:packages/subsystems-react/src/utils/elkLayout.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"line\":1081,\"symbol\":\"buildSubsystemGraph\",\"annotation\":\"computeElkLayout gets nested groups[] with parentId.\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/nodes.tsx\",\"mechanism\":\"uses\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":178,\"symbol\":\"SubsystemComponentGraph\",\"annotation\":\"RF registers SubsystemGroupNode for type subsystem-group.\"}]},{\"id\":\"wt-paint\",\"title\":\"Paint the diagnostics\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":2030,\"symbol\":\"loadSubsystemModelAudit\",\"annotation\":\"The getSubsystemModelAudit RPC is served here by reading the saved report.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":318,\"symbol\":\"auditReportToIssues\",\"annotation\":\"Map the report's findings to presentation issues.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":377,\"symbol\":\"SubsystemComponentGraph\",\"annotation\":\"Pass issues, diagnostic status, and (planned) verification into the graph.\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":226,\"symbol\":\"nodeTypes\",\"annotation\":\"Each node's data carries the verification ladder and hover issue.\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":1547,\"symbol\":\"SubsystemDiagnosticToggle\",\"annotation\":\"The title row renders the status chip.\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":1614,\"symbol\":\"SubsystemIssueList\",\"annotation\":\"The sidebar bottom panel renders the grouped issue list.\"}]},{\"id\":\"wt-run\",\"title\":\"Run the audit\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":294,\"symbol\":\"runSubsystemModelAuditFlow\",\"annotation\":\"Chip click with no or stale report runs the audit flow.\"},{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/auditSubsystemModelFlow.ts\",\"line\":271,\"symbol\":\"auditSubsystemModel\",\"annotation\":\"Run the host audit over the RPC bridge.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"writes\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":1333,\"symbol\":\"saveSubsystemModelAudit\",\"annotation\":\"Persist the fresh report so the view can fetch it.\"}]},{\"id\":\"wt-audit\",\"title\":\"Audit (dry-run, graphify-backed)\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":429,\"symbol\":\"resolveComponentAnchor\",\"annotation\":\"Anchor file+symbol onto a graphify definition node before construct/signature checks.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":1233,\"symbol\":\"auditTopologyRelations\",\"annotation\":\"Layer 2: relations[] endpoints + soft corroboration.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":1263,\"symbol\":\"auditBoundaryFields\",\"annotation\":\"Layer 3: module/file membership + process nesting.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":530,\"symbol\":\"inferConstructFromGraphify\",\"annotation\":\"Infer the construct kind from the anchored node (heuristic hint).\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":581,\"symbol\":\"constructsMatch\",\"annotation\":\"Compare the claimed construct against the inferred one.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":649,\"symbol\":\"compareSignatures\",\"annotation\":\"Compare authored named types against graphify signature edges.\"}]},{\"id\":\"wt-open-file\",\"title\":\"Open a file in the graph\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":377,\"symbol\":\"SubsystemModelView\",\"annotation\":\"Host injects the path-keyed file viewer and readFile closure into the graph.\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"process:principal-studio/renderer\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"line\":2049,\"symbol\":\"SubsystemComponentGraph\",\"annotation\":\"A click sets the drawer target, opens the bottom drawer, and re-tags every node for file spotlight.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:principal-studio/renderer\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"line\":149,\"symbol\":\"renderFileViewer\",\"annotation\":\"renderFileViewer mounts the full-file viewer, or PierreSnippetView for a declaration line.\"}]},{\"id\":\"wt-read-file\",\"title\":\"Read the file and paint it\",\"steps\":[{\"from\":\"process:principal-studio/renderer\",\"to\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-react/src/pierre/PierreFileView.tsx\",\"line\":60,\"symbol\":\"PierreFileView\",\"annotation\":\"Viewer calls the host readFile closure for this path.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1460,\"symbol\":\"readFile\",\"annotation\":\"Each open re-reads and JSON-parses the entire graph record because the host caches nothing.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:principal-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1467,\"symbol\":\"readFile\",\"annotation\":\"Handler resolves the repo-relative path under the graph's root and rejects traversal.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:principal-studio/host\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1468,\"symbol\":\"readFile\",\"annotation\":\"Reads the target file content and returns it over IPC as one string.\"}]},{\"id\":\"wt-close-cmd-w\",\"title\":\"Close the active tab with ⌘W\",\"steps\":[{\"from\":\"ungrouped\",\"to\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":3299,\"symbol\":\"ApplicationMenu\",\"annotation\":\"The File > Close Tab accelerator fires closeActiveTab; the host closes its *suggested* tab, which setActiveTab keeps in sync with the renderer's active tab.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"to\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"line\":111,\"symbol\":\"tabsChanged\",\"annotation\":\"Host pushes tabsChanged across the RPC bridge; the renderer handler fans it out to every subscriber.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"to\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"line\":111,\"symbol\":\"tabsChanged\",\"annotation\":\"App's registered refresh callback runs, dropping the closed tab from local state.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"to\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/App.tsx\",\"line\":340,\"symbol\":\"refresh\",\"annotation\":\"The shell asks the host for the current tab list.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1425,\"symbol\":\"listTabs\",\"annotation\":\"listTabs serializes the registry plus the resume suggestion; the shell re-derives its active tab from the result.\"}]},{\"id\":\"wt-close-strip-x\",\"title\":\"Close a tab from the strip's × button\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"to\":\"module:packages/subsystems-studio/src/mainview/components/TabStrip.tsx\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/App.tsx\",\"line\":415,\"symbol\":\"App\",\"annotation\":\"App wires its onClose callback into the strip — the × affordance invokes it.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"to\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/App.tsx\",\"line\":381,\"symbol\":\"onClose\",\"annotation\":\"onClose asks the host to close that specific tab id (the click path closes the tab you clicked, not the suggestion).\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1450,\"symbol\":\"closeTab\",\"annotation\":\"The host's closeTab handler funnels into the same closeTabById choke point ⌘W uses.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"to\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"line\":111,\"symbol\":\"tabsChanged\",\"annotation\":\"Same host notification, same renderer fan-out.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"to\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"line\":111,\"symbol\":\"tabsChanged\",\"annotation\":\"The shell refreshes and falls back to a remaining tab.\"}]},{\"id\":\"wt-create\",\"title\":\"Create or update a model\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/http-server.ts\",\"line\":328,\"symbol\":\"handleSubsystemModelRequest\",\"annotation\":\"Reject an invalid document before anything is persisted.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/http-server.ts\",\"line\":134,\"symbol\":\"registerSuppliedRoots\",\"annotation\":\"Learn the roots into Alexandria, not the record.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/http-server.ts\",\"line\":334,\"symbol\":\"handleSubsystemModelRequest\",\"annotation\":\"Persist the validated document.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"line\":413,\"symbol\":\"resolveRepoRootForComponent\",\"annotation\":\"Delegate the purl lookup to the registry.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"to\":\"process:alexandria\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/alexandria.ts\",\"line\":200,\"symbol\":\"resolveRepoRootFromAlexandria\",\"annotation\":\"Match the repo's remote against registered projects.\"}]},{\"id\":\"wt-list\",\"title\":\"List models as repo cards\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"line\":645,\"symbol\":\"refresh\",\"annotation\":\"Renderer asks the host for the model list over RPC.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"line\":1997,\"symbol\":\"githubReposFromComponents\",\"annotation\":\"Derive each model's repos from its component purls — no stored repo field.\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"process:principal-studio/renderer\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"line\":329,\"symbol\":\"collectReposFromGraphs\",\"annotation\":\"Group models into repo cards from the derived repos.\"}]},{\"id\":\"wt-audit__dup1\",\"title\":\"Audit a model\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/graphify-store.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":1179,\"symbol\":\"auditSubsystemModel\",\"annotation\":\"Ask which component purls have a current graphify cache.\"},{\"from\":\"module:packages/subsystems-studio/src/bun/graphify-store.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"mechanism\":\"calls\",\"file\":\"packages/subsystems-studio/src/bun/graphify-store.ts\",\"line\":279,\"symbol\":\"resolveRepoRootForPurl\",\"annotation\":\"Same registry lookup the write path uses.\"}]},{\"id\":\"wt-propose\",\"title\":\"Propose and accept a correction bound to a component id\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/proposal-store.ts\",\"mechanism\":\"produces\",\"file\":\"packages/subsystems-studio/src/bun/proposal-store.ts\",\"line\":522,\"symbol\":\"createSubsystemModelProposal\",\"annotation\":\"Audit findings drive an agent-proposed correction; the change list targets component ids (and topology endpoints).\"}]},{\"id\":\"wt-adopt\",\"title\":\"Adopt graphify findings onto a component\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"line\":1366,\"symbol\":\"applySubsystemModelAuditFix\",\"annotation\":\"Re-reads the record and rewrites the component that owns the id.\"}]},{\"id\":\"wt-excalidraw\",\"title\":\"Excalidraw round-trip of a model\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"to\":\"module:packages/subsystems-studio/src/mainview/excalidraw/subsystemToExcalidraw.ts\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/excalidraw/subsystemToExcalidraw.ts\",\"line\":152,\"symbol\":\"principalMetaForComponent\",\"annotation\":\"Each component carries its id onto its element so the scene holds the model's identity.\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/excalidraw/subsystemToExcalidraw.ts\",\"to\":\"module:packages/subsystems-studio/src/mainview/excalidraw/excalidrawToSubsystem.ts\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/mainview/excalidraw/excalidrawToSubsystem.ts\",\"line\":140,\"symbol\":\"excalidrawSceneToSubsystemModel\",\"annotation\":\"The edited scene becomes a document again; ids ride through the metadata verbatim.\"}]},{\"id\":\"wt-merge\",\"title\":\"Compose a repo's models into one graph (proposed)\",\"steps\":[{\"from\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/merge-submodel-models.ts\",\"mechanism\":\"feeds\",\"file\":\"packages/subsystems-studio/src/bun/merge-submodel-models.ts\",\"line\":1,\"symbol\":\"mergeSubsystemModels\",\"annotation\":\"Reads every model touching a repo-key (proposed — this is the compose flow this model is the brief for).\"},{\"from\":\"module:packages/subsystems-studio/src/bun/merge-submodel-models.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanism\":\"reads\",\"file\":\"packages/subsystems-studio/src/bun/merge-submodel-models.ts\",\"line\":1,\"symbol\":\"mergeSubsystemModels\",\"annotation\":\"Same code identity unifies to one node keyed consistently and uniquely; each model's edges resolve in its own alias-space (proposed; an agent pass aligns the composed nodes later).\"}]},{\"id\":\"wt-list-today\",\"steps\":[{\"annotation\":\"Polls listSubsystemModels every 10s. Summaries carry counts and repos, never files.\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"line\":701,\"mechanism\":\"calls\",\"symbol\":\"refresh\",\"to\":\"module:packages/subsystems-studio/src/bun/index.ts\"},{\"annotation\":\"Reads the lightweight index with counts and timestamps only.\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"from\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"line\":1950,\"mechanism\":\"calls\",\"symbol\":\"listSubsystemModels\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\"},{\"annotation\":\"Loads each full model to derive repos, graphify and audit, then drops component files before replying.\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"from\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"line\":1953,\"mechanism\":\"calls\",\"symbol\":\"listSubsystemModels\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\"}],\"title\":\"List subsystems today — files stop at the host\"},{\"id\":\"wt-file-panel\",\"steps\":[{\"annotation\":\"Loads the full model once per selected id and caches it, invalidating on subsystemModelChanged.\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"line\":958,\"mechanism\":\"calls\",\"symbol\":\"onShowAuditReport\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\"},{\"annotation\":\"Groups the selected components file and purl pairs by repo.\",\"file\":\"packages/subsystems-react/src/subsystem/paths.ts\",\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"line\":93,\"mechanism\":\"calls\",\"symbol\":\"buildRepoGroups\",\"to\":\"module:packages/subsystems-react/src/subsystem/paths.ts\"},{\"annotation\":\"Renders one tree per repo group like the detail graph. Clicking a file opens the graph tab with the file drawer.\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemFileTree.tsx\",\"from\":\"module:packages/subsystems-react/src/subsystem/paths.ts\",\"line\":29,\"mechanism\":\"feeds\",\"symbol\":\"SubsystemFileTree\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemFileTree.tsx\"}],\"title\":\"Proposed — file trees for the selected subsystem\"}]");
@@ -0,0 +1,8 @@
1
+ // GENERATED from live store data — do not hand-edit.
2
+ import type { AggregateFrameNode, AggregateFrameEdge, AggregateHub } from "../../../subsystem/SubsystemAggregateGraph";
3
+
4
+ export const aggregateFrames: AggregateFrameNode[] = JSON.parse("[{\"id\":\"process:site/web\",\"kind\":\"process\",\"key\":\"site/web\",\"label\":\"site/web\",\"members\":[{\"alias\":\"site-gist-page\",\"name\":\"Gist\",\"file\":\"site/src/pages/Gist.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\"]},{\"alias\":\"gist-load\",\"name\":\"loadSubsystemModelFromGist\",\"file\":\"site/src/lib/gist.ts\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\"]},{\"alias\":\"to-portable\",\"name\":\"toPortableDocument\",\"file\":\"site/src/lib/gist.ts\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\"]}],\"models\":[\"sg-1788913589907-ieokymqg9\"],\"group\":{\"key\":\"site/web\",\"kind\":\"process\"}},{\"id\":\"process:subsystems-core/types\",\"kind\":\"process\",\"key\":\"subsystems-core/types\",\"label\":\"subsystems-core/types\",\"members\":[{\"alias\":\"is-portable\",\"name\":\"isSubsystemModelDocument\",\"file\":\"packages/subsystems-core/src/types/subsystem-model.ts\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\"]},{\"alias\":\"portable-doc\",\"name\":\"SubsystemModelDocument\",\"file\":\"packages/subsystems-core/src/types/subsystem-model.ts\",\"construct\":\"interface\",\"models\":[\"sg-1788913589907-ieokymqg9\"]},{\"alias\":\"host-binding\",\"name\":\"SubsystemModelHostBinding\",\"file\":\"packages/subsystems-core/src/types/subsystem-model.ts\",\"construct\":\"interface\",\"models\":[\"sg-1788913589907-ieokymqg9\"]}],\"models\":[\"sg-1788913589907-ieokymqg9\"],\"group\":{\"key\":\"subsystems-core/types\",\"kind\":\"process\"}},{\"id\":\"external:external/github\",\"kind\":\"external\",\"key\":\"external/github\",\"label\":\"external/github\",\"members\":[{\"alias\":\"github-gists-api\",\"name\":\"GitHub Gists API\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1788913589907-ieokymqg9\"]}],\"models\":[\"sg-1788913589907-ieokymqg9\"],\"group\":{\"key\":\"external\",\"kind\":\"external\"}},{\"id\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"kind\":\"module\",\"key\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"label\":\"SubsystemComponentGraph.tsx\",\"members\":[{\"alias\":\"react-graph\",\"name\":\"SubsystemComponentGraph\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\",\"sg-1788974222416-tvd82jthf\",\"sg-1789167817307-w3wtd7e47\",\"sg-1789244409127-fc6kmjrkp\",\"sg-1789249246380-7iscyspb1\",\"sg-1789512356216-zbiy5x0wb\",\"sg-1789515244955-up4vbkmuk\",\"sg-1789677925327-bhekgwkc4\"]}],\"models\":[\"sg-1788913589907-ieokymqg9\",\"sg-1788974222416-tvd82jthf\",\"sg-1789167817307-w3wtd7e47\",\"sg-1789244409127-fc6kmjrkp\",\"sg-1789249246380-7iscyspb1\",\"sg-1789512356216-zbiy5x0wb\",\"sg-1789515244955-up4vbkmuk\",\"sg-1789677925327-bhekgwkc4\"],\"group\":{\"key\":\"subsystems-react/ui\",\"kind\":\"process\"}},{\"id\":\"process:principal-studio-cli\",\"kind\":\"process\",\"key\":\"principal-studio-cli\",\"label\":\"principal-studio-cli\",\"members\":[{\"alias\":\"cli-create\",\"name\":\"createAction\",\"file\":\"packages/principal-studio-cli/src/commands/subsystem-model.ts\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\"]}],\"models\":[\"sg-1788913589907-ieokymqg9\"],\"group\":{\"key\":\"principal-studio-cli\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"label\":\"subsystem-model-store.ts\",\"members\":[{\"alias\":\"studio-create\",\"name\":\"createSubsystemModel\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\",\"sg-1789513798636-ld358u4pr\",\"sg-1789619568543-5uww1cd5z\"]},{\"alias\":\"studio-get\",\"name\":\"getSubsystemModel\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\",\"sg-1788974222416-tvd82jthf\",\"sg-1789515244955-up4vbkmuk\",\"sg-1789619568543-5uww1cd5z\",\"sg-1789677925327-bhekgwkc4\"]},{\"alias\":\"verify-files\",\"name\":\"verifyModelFiles\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1788970320680-bcv3xkg96\",\"sg-1789513798636-ld358u4pr\",\"sg-1789619568543-5uww1cd5z\"]},{\"alias\":\"declares-symbol\",\"name\":\"fileDeclaresSymbol\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1788970320680-bcv3xkg96\",\"sg-1789513798636-ld358u4pr\"]},{\"alias\":\"resolve-root\",\"name\":\"resolveRepoRootForComponent\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1789513798636-ld358u4pr\",\"sg-1789619568543-5uww1cd5z\"]},{\"alias\":\"store-list\",\"name\":\"listSubsystemModels\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\",\"sg-1789677925327-bhekgwkc4\"]}],\"models\":[\"sg-1788913589907-ieokymqg9\",\"sg-1789513798636-ld358u4pr\",\"sg-1789619568543-5uww1cd5z\",\"sg-1788974222416-tvd82jthf\",\"sg-1789515244955-up4vbkmuk\",\"sg-1789677925327-bhekgwkc4\",\"sg-1788970320680-bcv3xkg96\"],\"group\":{\"key\":\"subsystems-studio/host\",\"kind\":\"process\"}},{\"id\":\"process:subsystems-studio/host\",\"kind\":\"process\",\"key\":\"subsystems-studio/host\",\"label\":\"subsystems-studio/host\",\"members\":[{\"alias\":\"studio-update\",\"name\":\"updateSubsystemModel\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\",\"sg-1788914761888-v0kch2fs1\"]},{\"alias\":\"index-entry\",\"name\":\"indexEntryFor\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\"]},{\"alias\":\"open-tab\",\"name\":\"openSubsystemModelTab\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\",\"sg-1788974222416-tvd82jthf\"]},{\"alias\":\"emit\",\"name\":\"emitSubsystemModelChange\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1788914761888-v0kch2fs1\"]},{\"alias\":\"broadcast\",\"name\":\"broadcastSubsystemModelChanged\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1788914761888-v0kch2fs1\"]},{\"alias\":\"resolve-connection\",\"name\":\"resolveOpencodeConnection\",\"file\":\"packages/subsystems-studio/src/bun/server-sessions.ts\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\"]},{\"alias\":\"probe-server\",\"name\":\"probeOpencodeServer\",\"file\":\"packages/subsystems-studio/src/bun/server-sessions.ts\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\"]},{\"alias\":\"list-server-sessions\",\"name\":\"listRecentServerSessions\",\"file\":\"packages/subsystems-studio/src/bun/server-sessions.ts\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\"]},{\"alias\":\"set-event-watch\",\"name\":\"setServerEventWatch\",\"file\":\"packages/subsystems-studio/src/bun/server-sessions.ts\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\"]},{\"alias\":\"build-session-index\",\"name\":\"buildSessionIndex\",\"file\":\"packages/subsystems-studio/src/bun/session-pipeline.ts\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\"]},{\"alias\":\"process-session-events\",\"name\":\"processSessionEvents\",\"file\":\"packages/subsystems-studio/src/bun/session-pipeline.ts\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\",\"sg-1789075684426-hqu0p9jfc\",\"sg-1789078130739-z7z1qvwf4\"]},{\"alias\":\"analyze-session-bg\",\"name\":\"analyzeSessionInBackground\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\"]},{\"alias\":\"analyze-beats\",\"name\":\"analyzeBeats\",\"file\":\"packages/subsystems-studio/src/bun/beat-analysis.ts\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\"]},{\"alias\":\"run-opencode-extraction\",\"name\":\"runOpenCodeExtraction\",\"file\":\"packages/subsystems-studio/src/bun/extraction.ts\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\"]},{\"alias\":\"ensure-graphify\",\"name\":\"ensureGraphifyGraph\",\"file\":\"packages/subsystems-studio/src/bun/graphify-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1788970320680-bcv3xkg96\"]},{\"alias\":\"open-stamp\",\"name\":\"touchSubsystemModelOpened\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1788974222416-tvd82jthf\"]},{\"alias\":\"maintain-background\",\"name\":\"maintainSubsystemModelInBackground\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1789054599792-4avspr98v\"]},{\"alias\":\"maintain-orchestrator\",\"name\":\"maintainSubsystemModel\",\"file\":\"packages/subsystems-studio/src/bun/maintain-model.ts\",\"construct\":\"function\",\"models\":[\"sg-1789054599792-4avspr98v\"]},{\"alias\":\"run-maintain-agent\",\"name\":\"runMaintainAgent\",\"file\":\"packages/subsystems-studio/src/bun/maintain-model.ts\",\"construct\":\"function\",\"models\":[\"sg-1789054599792-4avspr98v\"]},{\"alias\":\"opencode-bin\",\"name\":\"resolveOpencode2Bin\",\"file\":\"packages/subsystems-studio/src/bun/opencode-v2.ts\",\"construct\":\"function\",\"models\":[\"sg-1789054599792-4avspr98v\"]},{\"alias\":\"get-opencode-v2-status\",\"name\":\"getOpencodeV2Status\",\"file\":\"packages/subsystems-studio/src/bun/opencode-v2.ts\",\"construct\":\"function\",\"models\":[\"sg-1789054599792-4avspr98v\"]},{\"alias\":\"install-opencode-v2\",\"name\":\"installOpencodeV2\",\"file\":\"packages/subsystems-studio/src/bun/opencode-v2.ts\",\"construct\":\"function\",\"models\":[\"sg-1789054599792-4avspr98v\"]},{\"alias\":\"list-maintain-sessions\",\"name\":\"listMaintainSessions\",\"file\":\"packages/subsystems-studio/src/bun/maintain-sessions.ts\",\"construct\":\"function\",\"models\":[\"sg-1789075684426-hqu0p9jfc\",\"sg-1789078130739-z7z1qvwf4\"]},{\"alias\":\"rpc-overview\",\"name\":\"getAgentSessionsOverview\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1789075684426-hqu0p9jfc\"]},{\"alias\":\"run-opencode-v2-session\",\"name\":\"runOpencodeV2AgentSession\",\"file\":\"packages/subsystems-studio/src/bun/opencode-v2-live.ts\",\"construct\":\"function\",\"models\":[\"sg-1789075684426-hqu0p9jfc\"]},{\"alias\":\"resolve-kind\",\"name\":\"resolveOpencodeSessionKind\",\"file\":\"packages/subsystems-studio/src/bun/opencode-v2-messages.ts\",\"construct\":\"function\",\"models\":[\"sg-1789078130739-z7z1qvwf4\"]},{\"alias\":\"session-messages-to-universal\",\"name\":\"sessionMessagesToUniversalEvents\",\"file\":\"packages/subsystems-studio/src/bun/opencode-v2-messages.ts\",\"construct\":\"function\",\"models\":[\"sg-1789078130739-z7z1qvwf4\"]},{\"alias\":\"accumulate-events\",\"name\":\"accumulateEvents\",\"file\":\"packages/subsystems-core/src/opencode/pipeline.ts\",\"construct\":\"function\",\"models\":[\"sg-1789078130739-z7z1qvwf4\"]},{\"alias\":\"normalize-detail\",\"name\":\"normalizeDetailProvenance\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1789167817307-w3wtd7e47\"]},{\"alias\":\"adopt-detail\",\"name\":\"buildDetailFromAdoptedSignature\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"construct\":\"function\",\"models\":[\"sg-1789167817307-w3wtd7e47\"]},{\"alias\":\"report-save\",\"name\":\"saveSubsystemModelAudit\",\"file\":\"packages/subsystems-studio/src/bun/audit-report-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1789512356216-zbiy5x0wb\"]},{\"alias\":\"report-load\",\"name\":\"loadSubsystemModelAudit\",\"file\":\"packages/subsystems-studio/src/bun/audit-report-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1789512356216-zbiy5x0wb\"]},{\"alias\":\"topology\",\"name\":\"auditTopologyRelations\",\"file\":\"packages/subsystems-studio/src/bun/topology-audit.ts\",\"construct\":\"function\",\"models\":[\"sg-1789513798636-ld358u4pr\"]},{\"alias\":\"boundary\",\"name\":\"auditBoundaryFields\",\"file\":\"packages/subsystems-studio/src/bun/boundary-audit.ts\",\"construct\":\"function\",\"models\":[\"sg-1789513798636-ld358u4pr\"]},{\"alias\":\"anchor\",\"name\":\"resolveComponentAnchor\",\"file\":\"packages/subsystems-react/src/graphify/anchor.ts\",\"construct\":\"function\",\"models\":[\"sg-1789513798636-ld358u4pr\"]},{\"alias\":\"module-agrees\",\"name\":\"moduleAgreesWithFile\",\"file\":\"packages/subsystems-studio/src/bun/boundary-audit.ts\",\"construct\":\"function\",\"models\":[\"sg-1789513798636-ld358u4pr\"]},{\"alias\":\"compare-signatures\",\"name\":\"compareSignatures\",\"file\":\"packages/subsystems-react/src/graphify/signature.ts\",\"construct\":\"function\",\"models\":[\"sg-1789513798636-ld358u4pr\"]},{\"alias\":\"infer-construct\",\"name\":\"inferConstructFromGraphify\",\"file\":\"packages/subsystems-react/src/graphify/construct.ts\",\"construct\":\"function\",\"models\":[\"sg-1789513798636-ld358u4pr\"]},{\"alias\":\"constructs-match\",\"name\":\"constructsMatch\",\"file\":\"packages/subsystems-react/src/graphify/construct.ts\",\"construct\":\"function\",\"models\":[\"sg-1789513798636-ld358u4pr\"]},{\"alias\":\"topo-relation\",\"name\":\"graphifyHasRelationBetween\",\"file\":\"packages/subsystems-studio/src/bun/topology-audit.ts\",\"construct\":\"function\",\"models\":[\"sg-1789513798636-ld358u4pr\"]},{\"alias\":\"topo-hints\",\"name\":\"graphifyHasRelationTowardHints\",\"file\":\"packages/subsystems-studio/src/bun/topology-audit.ts\",\"construct\":\"function\",\"models\":[\"sg-1789513798636-ld358u4pr\"]},{\"alias\":\"input-validation\",\"name\":\"findSubsystemModelProblems\",\"file\":\"packages/subsystems-studio/src/bun/subsystem-model-validation.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]},{\"alias\":\"repo-derivation\",\"name\":\"githubReposFromComponents\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]}],\"models\":[\"sg-1788913589907-ieokymqg9\",\"sg-1788914761888-v0kch2fs1\",\"sg-1788974222416-tvd82jthf\",\"sg-1788961422683-bxt28y6yc\",\"sg-1789075684426-hqu0p9jfc\",\"sg-1789078130739-z7z1qvwf4\",\"sg-1788970320680-bcv3xkg96\",\"sg-1789054599792-4avspr98v\",\"sg-1789167817307-w3wtd7e47\",\"sg-1789512356216-zbiy5x0wb\",\"sg-1789513798636-ld358u4pr\",\"sg-1789619568543-5uww1cd5z\"],\"group\":{\"key\":\"subsystems-studio/host\",\"kind\":\"process\"}},{\"id\":\"external:local/disk\",\"kind\":\"external\",\"key\":\"local/disk\",\"label\":\"local/disk\",\"members\":[{\"alias\":\"model-disk-store\",\"name\":\"~/.principal/subsystem-models\",\"file\":\"\",\"construct\":\"store\",\"models\":[\"sg-1788913589907-ieokymqg9\"]}],\"models\":[\"sg-1788913589907-ieokymqg9\"],\"group\":{\"key\":\"external\",\"kind\":\"external\"}},{\"id\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"label\":\"SubsystemModelsView.tsx\",\"members\":[{\"alias\":\"studio-list\",\"name\":\"SubsystemModelsView\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\",\"sg-1788970320680-bcv3xkg96\",\"sg-1788974222416-tvd82jthf\",\"sg-1789619568543-5uww1cd5z\",\"sg-1789677925327-bhekgwkc4\"]},{\"alias\":\"file-panel\",\"name\":\"SubsystemFilePanel\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789677925327-bhekgwkc4\"]}],\"models\":[\"sg-1788913589907-ieokymqg9\",\"sg-1788970320680-bcv3xkg96\",\"sg-1788974222416-tvd82jthf\",\"sg-1789619568543-5uww1cd5z\",\"sg-1789677925327-bhekgwkc4\"],\"group\":{\"key\":\"subsystems-studio/renderer\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"label\":\"SubsystemModelView.tsx\",\"members\":[{\"alias\":\"studio-model-view\",\"name\":\"SubsystemModelView\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788913589907-ieokymqg9\",\"sg-1788914761888-v0kch2fs1\",\"sg-1788970320680-bcv3xkg96\",\"sg-1788974222416-tvd82jthf\",\"sg-1789512356216-zbiy5x0wb\",\"sg-1789515244955-up4vbkmuk\"]},{\"alias\":\"read-file\",\"name\":\"readFile\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789515244955-up4vbkmuk\"]}],\"models\":[\"sg-1788913589907-ieokymqg9\",\"sg-1788914761888-v0kch2fs1\",\"sg-1788970320680-bcv3xkg96\",\"sg-1788974222416-tvd82jthf\",\"sg-1789512356216-zbiy5x0wb\",\"sg-1789515244955-up4vbkmuk\"],\"group\":{\"key\":\"subsystems-studio/renderer\",\"kind\":\"process\"}},{\"id\":\"external:proposed/studio-gist\",\"kind\":\"external\",\"key\":\"proposed/studio-gist\",\"label\":\"proposed/studio-gist\",\"members\":[{\"alias\":\"gist-share-ui\",\"name\":\"StudioGistShare\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1788913589907-ieokymqg9\"]},{\"alias\":\"gist-ref\",\"name\":\"StoredGistRef\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1788913589907-ieokymqg9\"]}],\"models\":[\"sg-1788913589907-ieokymqg9\"],\"group\":{\"key\":\"external\",\"kind\":\"external\"}},{\"id\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/bun/http-server.ts\",\"label\":\"http-server.ts\",\"members\":[{\"alias\":\"http-put\",\"name\":\"handleSubsystemModelRequest\",\"file\":\"packages/subsystems-studio/src/bun/http-server.ts\",\"construct\":\"function\",\"models\":[\"sg-1788914761888-v0kch2fs1\",\"sg-1789054599792-4avspr98v\",\"sg-1789619568543-5uww1cd5z\"]},{\"alias\":\"register-roots\",\"name\":\"registerSuppliedRoots\",\"file\":\"packages/subsystems-studio/src/bun/http-server.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]}],\"models\":[\"sg-1788914761888-v0kch2fs1\",\"sg-1789054599792-4avspr98v\",\"sg-1789619568543-5uww1cd5z\"],\"group\":{\"key\":\"subsystems-studio/host\",\"kind\":\"process\"}},{\"id\":\"process:subsystems-studio/renderer\",\"kind\":\"process\",\"key\":\"subsystems-studio/renderer\",\"label\":\"subsystems-studio/renderer\",\"members\":[{\"alias\":\"rpc-fanout\",\"name\":\"subsystemModelChangeSubscribers\",\"file\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"construct\":\"store\",\"models\":[\"sg-1788914761888-v0kch2fs1\"]},{\"alias\":\"app-header\",\"name\":\"AppHeader\",\"file\":\"packages/subsystems-studio/src/mainview/components/AppHeader.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\"]},{\"alias\":\"server-sessions-modal\",\"name\":\"ServerSessionsModal\",\"file\":\"packages/subsystems-studio/src/mainview/components/ServerSessionsModal.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\"]},{\"alias\":\"agent-sessions-overview\",\"name\":\"AgentSessionsOverviewView\",\"file\":\"packages/subsystems-studio/src/mainview/views/AgentSessions.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\",\"sg-1789075684426-hqu0p9jfc\",\"sg-1789078130739-z7z1qvwf4\"]},{\"alias\":\"graphify-targets\",\"name\":\"graphifyTargets\",\"file\":\"packages/subsystems-studio/src/mainview/auditSubsystemModelFlow.ts\",\"construct\":\"function\",\"models\":[\"sg-1788970320680-bcv3xkg96\"]},{\"alias\":\"wait-graphify\",\"name\":\"waitForGraphifyEnsure\",\"file\":\"packages/subsystems-studio/src/mainview/auditSubsystemModelFlow.ts\",\"construct\":\"function\",\"models\":[\"sg-1788970320680-bcv3xkg96\"]},{\"alias\":\"audit-modal\",\"name\":\"AuditResultsModal\",\"file\":\"packages/subsystems-studio/src/mainview/components/AuditResultsModal.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788970320680-bcv3xkg96\"]},{\"alias\":\"empty-state\",\"name\":\"CenteredMessage\",\"file\":\"packages/subsystems-studio/src/mainview/ui.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788974222416-tvd82jthf\"]},{\"alias\":\"maintain-picker\",\"name\":\"MaintainModelPickerModal\",\"file\":\"packages/subsystems-studio/src/mainview/components/MaintainModelPickerModal.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789054599792-4avspr98v\"]},{\"alias\":\"opencode-v2-debug-view\",\"name\":\"OpencodeV2DebugView\",\"file\":\"packages/subsystems-studio/src/mainview/views/OpencodeV2DebugView.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789054599792-4avspr98v\"]},{\"alias\":\"studio-message-subscriber\",\"name\":\"StudioMessageSubscriber\",\"file\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"construct\":\"type_alias\",\"models\":[\"sg-1789054599792-4avspr98v\"]},{\"alias\":\"render-static-view\",\"name\":\"renderStaticView\",\"file\":\"packages/subsystems-studio/src/mainview/App.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789075684426-hqu0p9jfc\"]},{\"alias\":\"build-agent-sessions-view\",\"name\":\"buildAgentSessionsView\",\"file\":\"packages/subsystems-studio/src/mainview/views/AgentSessions.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789075684426-hqu0p9jfc\"]},{\"alias\":\"map-issues\",\"name\":\"auditReportToIssues\",\"file\":\"packages/subsystems-studio/src/mainview/subsystemIssues.ts\",\"construct\":\"function\",\"models\":[\"sg-1789512356216-zbiy5x0wb\"]},{\"alias\":\"map-verification\",\"name\":\"auditReportToVerification\",\"file\":\"packages/subsystems-studio/src/mainview/subsystemIssues.ts\",\"construct\":\"function\",\"models\":[\"sg-1789512356216-zbiy5x0wb\"]},{\"alias\":\"audit-flow\",\"name\":\"runSubsystemModelAuditFlow\",\"file\":\"packages/subsystems-studio/src/mainview/auditSubsystemModelFlow.ts\",\"construct\":\"function\",\"models\":[\"sg-1789512356216-zbiy5x0wb\"]},{\"alias\":\"node\",\"name\":\"SubsystemComponentNode\",\"file\":\"packages/subsystems-react/src/subsystem/nodes.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789512356216-zbiy5x0wb\"]},{\"alias\":\"chip\",\"name\":\"SubsystemDiagnosticToggle\",\"file\":\"packages/subsystems-react/src/subsystem/DiagnosticToggle.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789512356216-zbiy5x0wb\"]},{\"alias\":\"issue-list\",\"name\":\"SubsystemIssueList\",\"file\":\"packages/subsystems-react/src/subsystem/IssueList.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789512356216-zbiy5x0wb\"]}],\"models\":[\"sg-1788914761888-v0kch2fs1\",\"sg-1788961422683-bxt28y6yc\",\"sg-1789075684426-hqu0p9jfc\",\"sg-1789078130739-z7z1qvwf4\",\"sg-1788970320680-bcv3xkg96\",\"sg-1788974222416-tvd82jthf\",\"sg-1789054599792-4avspr98v\",\"sg-1789512356216-zbiy5x0wb\"],\"group\":{\"key\":\"subsystems-studio/renderer\",\"kind\":\"process\"}},{\"id\":\"process:subsystems-react\",\"kind\":\"process\",\"key\":\"subsystems-react\",\"label\":\"subsystems-react\",\"members\":[{\"alias\":\"graph-inner\",\"name\":\"Inner\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788914761888-v0kch2fs1\"]},{\"alias\":\"layout-key\",\"name\":\"subsystemGraphLayoutKey\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"construct\":\"function\",\"models\":[\"sg-1788914761888-v0kch2fs1\"]},{\"alias\":\"measured-dims\",\"name\":\"measuredDimsRef\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"construct\":\"store\",\"models\":[\"sg-1788914761888-v0kch2fs1\"]},{\"alias\":\"remount-key\",\"name\":\"baseNodesKey\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788914761888-v0kch2fs1\"]},{\"alias\":\"trigger-pass2\",\"name\":\"triggerPass2\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788914761888-v0kch2fs1\"]},{\"alias\":\"layout-cover\",\"name\":\"GraphLayoutCover\",\"file\":\"packages/subsystems-react/src/subsystem/GraphLayoutCover.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788914761888-v0kch2fs1\",\"sg-1788974222416-tvd82jthf\"]},{\"alias\":\"react-component\",\"name\":\"SubsystemComponent\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"construct\":\"interface\",\"models\":[\"sg-1789167817307-w3wtd7e47\"]},{\"alias\":\"graphify-detail\",\"name\":\"GraphifyComponentDetail\",\"file\":\"packages/subsystems-react/src/graphify/consolidated.ts\",\"construct\":\"type_alias\",\"models\":[\"sg-1789167817307-w3wtd7e47\"]},{\"alias\":\"generate-decl-string\",\"name\":\"generateDeclarationString\",\"file\":\"packages/subsystems-react/src/subsystem/formatDeclaration.ts\",\"construct\":\"function\",\"models\":[\"sg-1789167817307-w3wtd7e47\"]},{\"alias\":\"tokenize-component\",\"name\":\"tokenizeComponent\",\"file\":\"packages/subsystems-react/src/subsystem/tokenizeComponent.ts\",\"construct\":\"function\",\"models\":[\"sg-1789167817307-w3wtd7e47\"]},{\"alias\":\"component-declaration\",\"name\":\"ComponentDeclaration\",\"file\":\"packages/subsystems-react/src/subsystem/ComponentDeclaration.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789167817307-w3wtd7e47\"]}],\"models\":[\"sg-1788914761888-v0kch2fs1\",\"sg-1788974222416-tvd82jthf\",\"sg-1789167817307-w3wtd7e47\"],\"group\":{\"key\":\"subsystems-react\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-react/src/subsystem/model.ts\",\"label\":\"model.ts\",\"members\":[{\"alias\":\"build-graph\",\"name\":\"buildSubsystemGraph\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"construct\":\"function\",\"models\":[\"sg-1788914761888-v0kch2fs1\",\"sg-1788974222416-tvd82jthf\",\"sg-1789244409127-fc6kmjrkp\",\"sg-1789249246380-7iscyspb1\"]},{\"alias\":\"to-nodes\",\"name\":\"convertSubsystemToNodes\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"construct\":\"function\",\"models\":[\"sg-1789244409127-fc6kmjrkp\",\"sg-1789249246380-7iscyspb1\"]},{\"alias\":\"process-regions\",\"name\":\"getSubsystemRegions\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"construct\":\"function\",\"models\":[\"sg-1789244409127-fc6kmjrkp\",\"sg-1789249246380-7iscyspb1\"]},{\"alias\":\"module-regions\",\"name\":\"getSubsystemModuleRegions\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"construct\":\"function\",\"models\":[\"sg-1789244409127-fc6kmjrkp\",\"sg-1789249246380-7iscyspb1\"]},{\"alias\":\"boundary-id\",\"name\":\"boundaryGroupNodeId\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"construct\":\"function\",\"models\":[\"sg-1789244409127-fc6kmjrkp\"]},{\"alias\":\"module-id\",\"name\":\"moduleGroupNodeId\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"construct\":\"function\",\"models\":[\"sg-1789244409127-fc6kmjrkp\"]},{\"alias\":\"process-id\",\"name\":\"processGroupNodeId\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"construct\":\"function\",\"models\":[\"sg-1789244409127-fc6kmjrkp\"]},{\"alias\":\"region-type\",\"name\":\"SubsystemProcessRegion\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"construct\":\"type_alias\",\"models\":[\"sg-1789244409127-fc6kmjrkp\"]},{\"alias\":\"layout-groups\",\"name\":\"buildBoundaryLayoutGroups\",\"file\":\"packages/subsystems-react/src/subsystem/model.ts\",\"construct\":\"function\",\"models\":[\"sg-1789249246380-7iscyspb1\"]}],\"models\":[\"sg-1788914761888-v0kch2fs1\",\"sg-1788974222416-tvd82jthf\",\"sg-1789244409127-fc6kmjrkp\",\"sg-1789249246380-7iscyspb1\"],\"group\":{\"key\":\"subsystems-react\",\"kind\":\"process\"}},{\"id\":\"process:subsystems-core\",\"kind\":\"process\",\"key\":\"subsystems-core\",\"label\":\"subsystems-core\",\"members\":[{\"alias\":\"opencode-rows-to-universal\",\"name\":\"opencodeRowsToUniversalEvents\",\"file\":\"packages/subsystems-core/src/opencode/pipeline.ts\",\"construct\":\"function\",\"models\":[\"sg-1788961422683-bxt28y6yc\",\"sg-1789078130739-z7z1qvwf4\"]},{\"alias\":\"core-component\",\"name\":\"SubsystemComponent\",\"file\":\"packages/subsystems-core/src/types/subsystem-model.ts\",\"construct\":\"interface\",\"models\":[\"sg-1789167817307-w3wtd7e47\"]},{\"alias\":\"core-declaration\",\"name\":\"SubsystemConstructDeclaration\",\"file\":\"packages/subsystems-core/src/types/subsystem-model.ts\",\"construct\":\"type_alias\",\"models\":[\"sg-1789167817307-w3wtd7e47\"]},{\"alias\":\"cross-field-rules\",\"name\":\"validateSubsystemModelCrossField\",\"file\":\"packages/subsystems-core/src/validation.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]}],\"models\":[\"sg-1788961422683-bxt28y6yc\",\"sg-1789078130739-z7z1qvwf4\",\"sg-1789167817307-w3wtd7e47\",\"sg-1789619568543-5uww1cd5z\"],\"group\":{\"key\":\"subsystems-core\",\"kind\":\"process\"}},{\"id\":\"external:opencode\",\"kind\":\"external\",\"key\":\"opencode\",\"label\":\"opencode\",\"members\":[{\"alias\":\"opencode-v2-server\",\"name\":\"OpenCode v2 server\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1788961422683-bxt28y6yc\"]},{\"alias\":\"opencode-cli\",\"name\":\"OpenCode CLI\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1788961422683-bxt28y6yc\"]}],\"models\":[\"sg-1788961422683-bxt28y6yc\"],\"group\":{\"key\":\"external\",\"kind\":\"external\"}},{\"id\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"label\":\"verify-subsystem-component.ts\",\"members\":[{\"alias\":\"audit-model\",\"name\":\"auditSubsystemModel\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"construct\":\"function\",\"models\":[\"sg-1788970320680-bcv3xkg96\",\"sg-1789512356216-zbiy5x0wb\",\"sg-1789513798636-ld358u4pr\",\"sg-1789619568543-5uww1cd5z\"]},{\"alias\":\"verify-component\",\"name\":\"verifySubsystemComponent\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"construct\":\"function\",\"models\":[\"sg-1788970320680-bcv3xkg96\",\"sg-1789513798636-ld358u4pr\"]},{\"alias\":\"fix-adopt\",\"name\":\"applySubsystemModelAuditFix\",\"file\":\"packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]}],\"models\":[\"sg-1788970320680-bcv3xkg96\",\"sg-1789512356216-zbiy5x0wb\",\"sg-1789513798636-ld358u4pr\",\"sg-1789619568543-5uww1cd5z\"],\"group\":{\"key\":\"subsystems-studio/host\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-studio/src/bun/regular-audit.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/bun/regular-audit.ts\",\"label\":\"regular-audit.ts\",\"members\":[{\"alias\":\"regular-audit-scheduler\",\"name\":\"createRegularAuditScheduler\",\"file\":\"packages/subsystems-studio/src/bun/regular-audit.ts\",\"construct\":\"function\",\"models\":[\"sg-1788970320680-bcv3xkg96\"]}],\"models\":[\"sg-1788970320680-bcv3xkg96\"],\"group\":{\"key\":\"subsystems-studio/host\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/bun/index.ts\",\"label\":\"index.ts\",\"members\":[{\"alias\":\"regular-audit-run\",\"name\":\"reauditSubsystemModelQuietly\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1788970320680-bcv3xkg96\"]},{\"alias\":\"regular-audit-status\",\"name\":\"broadcastRegularAuditChanged\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1788970320680-bcv3xkg96\"]},{\"alias\":\"tab-registry\",\"name\":\"tabs\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"store\",\"models\":[\"sg-1788974222416-tvd82jthf\",\"sg-1789577690053-1mbsoli8a\"]},{\"alias\":\"close-tab\",\"name\":\"closeTabById\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1789577690053-1mbsoli8a\"]},{\"alias\":\"is-permanent\",\"name\":\"isPermanentTabId\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1789577690053-1mbsoli8a\"]},{\"alias\":\"broadcast-tabs\",\"name\":\"broadcastTabsChanged\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1789577690053-1mbsoli8a\"]},{\"alias\":\"list-rpc\",\"name\":\"listSubsystemModels RPC handler\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1789677925327-bhekgwkc4\"]}],\"models\":[\"sg-1788970320680-bcv3xkg96\",\"sg-1788974222416-tvd82jthf\",\"sg-1789577690053-1mbsoli8a\",\"sg-1789677925327-bhekgwkc4\"],\"group\":{\"key\":\"subsystems-studio/host\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"label\":\"rpc.ts\",\"members\":[{\"alias\":\"regular-audit-subscribers\",\"name\":\"regularAuditChangeSubscribers\",\"file\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"construct\":\"store\",\"models\":[\"sg-1788970320680-bcv3xkg96\"]},{\"alias\":\"rpc-bridge\",\"name\":\"electrobun\",\"file\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"construct\":\"store\",\"models\":[\"sg-1789577690053-1mbsoli8a\"]},{\"alias\":\"reload-subs\",\"name\":\"reloadSubscribers\",\"file\":\"packages/subsystems-studio/src/mainview/rpc.ts\",\"construct\":\"store\",\"models\":[\"sg-1789577690053-1mbsoli8a\"]}],\"models\":[\"sg-1788970320680-bcv3xkg96\",\"sg-1789577690053-1mbsoli8a\"],\"group\":{\"key\":\"subsystems-studio/renderer\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-react/src/utils/elkLayout.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-react/src/utils/elkLayout.ts\",\"label\":\"elkLayout.ts\",\"members\":[{\"alias\":\"elk\",\"name\":\"computeElkLayout\",\"file\":\"packages/subsystems-react/src/utils/elkLayout.ts\",\"construct\":\"function\",\"models\":[\"sg-1788974222416-tvd82jthf\",\"sg-1789244409127-fc6kmjrkp\",\"sg-1789249246380-7iscyspb1\"]},{\"alias\":\"nest-groups\",\"name\":\"nestCompoundGroups\",\"file\":\"packages/subsystems-react/src/utils/elkLayout.ts\",\"construct\":\"function\",\"models\":[\"sg-1789244409127-fc6kmjrkp\"]}],\"models\":[\"sg-1788974222416-tvd82jthf\",\"sg-1789244409127-fc6kmjrkp\",\"sg-1789249246380-7iscyspb1\"],\"group\":{\"key\":\"subsystems-studio/renderer\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/mainview/App.tsx\",\"label\":\"App.tsx\",\"members\":[{\"alias\":\"app-shell\",\"name\":\"App\",\"file\":\"packages/subsystems-studio/src/mainview/App.tsx\",\"construct\":\"function\",\"models\":[\"sg-1788974222416-tvd82jthf\",\"sg-1789577690053-1mbsoli8a\"]}],\"models\":[\"sg-1788974222416-tvd82jthf\",\"sg-1789577690053-1mbsoli8a\"],\"group\":{\"key\":\"subsystems-studio/renderer\",\"kind\":\"process\"}},{\"id\":\"external:opencode/v2\",\"kind\":\"external\",\"key\":\"opencode/v2\",\"label\":\"opencode/v2\",\"members\":[{\"alias\":\"opencode-v2-service\",\"name\":\"OpenCodeV2Service\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789054599792-4avspr98v\"]},{\"alias\":\"maintain-agent\",\"name\":\"MaintainAgent\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789054599792-4avspr98v\"]},{\"alias\":\"opencode-cli-npm\",\"name\":\"OpenCodeCliNpm\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789054599792-4avspr98v\"]}],\"models\":[\"sg-1789054599792-4avspr98v\"],\"group\":{\"key\":\"external\",\"kind\":\"external\"}},{\"id\":\"module:packages/subsystems-studio/src/bun/proposal-store.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/bun/proposal-store.ts\",\"label\":\"proposal-store.ts\",\"members\":[{\"alias\":\"create-proposal\",\"name\":\"createSubsystemModelProposal\",\"file\":\"packages/subsystems-studio/src/bun/proposal-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1789054599792-4avspr98v\",\"sg-1789619568543-5uww1cd5z\"]},{\"alias\":\"proposal-accept\",\"name\":\"acceptSubsystemModelProposal\",\"file\":\"packages/subsystems-studio/src/bun/proposal-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]}],\"models\":[\"sg-1789054599792-4avspr98v\",\"sg-1789619568543-5uww1cd5z\"],\"group\":{\"key\":\"subsystems-studio/host\",\"kind\":\"process\"}},{\"id\":\"external:subsystems-studio/host\",\"kind\":\"external\",\"key\":\"subsystems-studio/host\",\"label\":\"subsystems-studio/host\",\"members\":[{\"alias\":\"opencode-v2-lifecycle\",\"name\":\"OpenCodeV2Lifecycle\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789054599792-4avspr98v\"]}],\"models\":[\"sg-1789054599792-4avspr98v\"],\"group\":{\"key\":\"external\",\"kind\":\"external\"}},{\"id\":\"external:opencode2/service\",\"kind\":\"external\",\"key\":\"opencode2/service\",\"label\":\"opencode2/service\",\"members\":[{\"alias\":\"opencode2-service\",\"name\":\"opencode2 serve\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789075684426-hqu0p9jfc\"]}],\"models\":[\"sg-1789075684426-hqu0p9jfc\"],\"group\":{\"key\":\"external\",\"kind\":\"external\"}},{\"id\":\"external:opencode/sqlite\",\"kind\":\"external\",\"key\":\"opencode/sqlite\",\"label\":\"opencode/sqlite\",\"members\":[{\"alias\":\"store-session\",\"name\":\"session (opencode.db)\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789078130739-z7z1qvwf4\"]},{\"alias\":\"store-session-v2\",\"name\":\"session_v2 (opencode.db)\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789078130739-z7z1qvwf4\"]},{\"alias\":\"store-event\",\"name\":\"event (opencode.db)\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789078130739-z7z1qvwf4\"]},{\"alias\":\"store-session-message\",\"name\":\"session_message (opencode.db)\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789078130739-z7z1qvwf4\"]}],\"models\":[\"sg-1789078130739-z7z1qvwf4\"],\"group\":{\"key\":\"external\",\"kind\":\"external\"}},{\"id\":\"module:packages/subsystems-react/src/subsystem/nodes.tsx\",\"kind\":\"module\",\"key\":\"packages/subsystems-react/src/subsystem/nodes.tsx\",\"label\":\"nodes.tsx\",\"members\":[{\"alias\":\"group-node\",\"name\":\"SubsystemGroupNode\",\"file\":\"packages/subsystems-react/src/subsystem/nodes.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789244409127-fc6kmjrkp\",\"sg-1789249246380-7iscyspb1\"]}],\"models\":[\"sg-1789244409127-fc6kmjrkp\",\"sg-1789249246380-7iscyspb1\"]},{\"id\":\"process:principal-studio/renderer\",\"kind\":\"process\",\"key\":\"principal-studio/renderer\",\"label\":\"principal-studio/renderer\",\"members\":[{\"alias\":\"file-drawer\",\"name\":\"FileDrawer\",\"file\":\"packages/subsystems-react/src/subsystem/FileDrawer.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789515244955-up4vbkmuk\"]},{\"alias\":\"pierre-file-view\",\"name\":\"PierreFileView\",\"file\":\"packages/subsystems-react/src/pierre/PierreFileView.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789515244955-up4vbkmuk\"]},{\"alias\":\"pierre-snippet-view\",\"name\":\"PierreSnippetView\",\"file\":\"packages/subsystems-react/src/pierre/PierreSnippetView.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789515244955-up4vbkmuk\"]},{\"alias\":\"highlighter-store\",\"name\":\"SharedHighlighter\",\"file\":\"packages/subsystems-react/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.js\",\"construct\":\"store\",\"models\":[\"sg-1789515244955-up4vbkmuk\"]},{\"alias\":\"model-listing\",\"name\":\"collectReposFromGraphs\",\"file\":\"packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]}],\"models\":[\"sg-1789515244955-up4vbkmuk\",\"sg-1789619568543-5uww1cd5z\"],\"group\":{\"key\":\"principal-studio/renderer\",\"kind\":\"process\"}},{\"id\":\"external:principal-studio/renderer\",\"kind\":\"external\",\"key\":\"principal-studio/renderer\",\"label\":\"principal-studio/renderer\",\"members\":[{\"alias\":\"preload-highlighter\",\"name\":\"preloadHighlighter\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789515244955-up4vbkmuk\"]},{\"alias\":\"pierre-file-component\",\"name\":\"File\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789515244955-up4vbkmuk\"]}],\"models\":[\"sg-1789515244955-up4vbkmuk\"],\"group\":{\"key\":\"external\",\"kind\":\"external\"}},{\"id\":\"process:principal-studio/host\",\"kind\":\"process\",\"key\":\"principal-studio/host\",\"label\":\"principal-studio/host\",\"members\":[{\"alias\":\"resolve-sandboxed\",\"name\":\"resolveSandboxed\",\"file\":\"packages/subsystems-studio/src/bun/index.ts\",\"construct\":\"function\",\"models\":[\"sg-1789515244955-up4vbkmuk\"]}],\"models\":[\"sg-1789515244955-up4vbkmuk\"],\"group\":{\"key\":\"principal-studio/host\",\"kind\":\"process\"}},{\"id\":\"external:principal-studio/host\",\"kind\":\"external\",\"key\":\"principal-studio/host\",\"label\":\"principal-studio/host\",\"members\":[{\"alias\":\"node-fs\",\"name\":\"fs.readFile\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789515244955-up4vbkmuk\"]}],\"models\":[\"sg-1789515244955-up4vbkmuk\"],\"group\":{\"key\":\"external\",\"kind\":\"external\"}},{\"id\":\"external:unassigned\",\"kind\":\"external\",\"key\":\"unassigned\",\"label\":\"unassigned\",\"members\":[{\"alias\":\"app-menu\",\"name\":\"ApplicationMenu\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789577690053-1mbsoli8a\"]}],\"models\":[\"sg-1789577690053-1mbsoli8a\"],\"group\":{\"key\":\"external\",\"kind\":\"external\"}},{\"id\":\"module:packages/subsystems-studio/src/mainview/components/TabStrip.tsx\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/mainview/components/TabStrip.tsx\",\"label\":\"TabStrip.tsx\",\"members\":[{\"alias\":\"tab-strip\",\"name\":\"TabStrip\",\"file\":\"packages/subsystems-studio/src/mainview/components/TabStrip.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789577690053-1mbsoli8a\"]}],\"models\":[\"sg-1789577690053-1mbsoli8a\"],\"group\":{\"key\":\"subsystems-studio/renderer\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-studio/src/shared/contract.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/shared/contract.ts\",\"label\":\"contract.ts\",\"members\":[{\"alias\":\"studio-requests\",\"name\":\"StudioRequests\",\"file\":\"packages/subsystems-studio/src/shared/contract.ts\",\"construct\":\"interface\",\"models\":[\"sg-1789577690053-1mbsoli8a\"]},{\"alias\":\"studio-messages\",\"name\":\"StudioMessages\",\"file\":\"packages/subsystems-studio/src/shared/contract.ts\",\"construct\":\"interface\",\"models\":[\"sg-1789577690053-1mbsoli8a\"]},{\"alias\":\"summary\",\"name\":\"SubsystemModelSummary\",\"file\":\"packages/subsystems-studio/src/shared/contract.ts\",\"construct\":\"interface\",\"models\":[\"sg-1789677925327-bhekgwkc4\"]}],\"models\":[\"sg-1789577690053-1mbsoli8a\",\"sg-1789677925327-bhekgwkc4\"],\"group\":{\"key\":\"subsystems-studio/shared\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/bun/alexandria.ts\",\"label\":\"alexandria.ts\",\"members\":[{\"alias\":\"alexandria-register\",\"name\":\"registerProjectInAlexandria\",\"file\":\"packages/subsystems-studio/src/bun/alexandria.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]},{\"alias\":\"alexandria-resolve\",\"name\":\"resolveRepoRootFromAlexandria\",\"file\":\"packages/subsystems-studio/src/bun/alexandria.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]}],\"models\":[\"sg-1789619568543-5uww1cd5z\"],\"group\":{\"key\":\"subsystems-studio/host\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-studio/src/bun/graphify-store.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/bun/graphify-store.ts\",\"label\":\"graphify-store.ts\",\"members\":[{\"alias\":\"resolve-purl-root\",\"name\":\"resolveRepoRootForPurl\",\"file\":\"packages/subsystems-studio/src/bun/graphify-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]},{\"alias\":\"audit-readiness\",\"name\":\"assessSubsystemGraphifyReadiness\",\"file\":\"packages/subsystems-studio/src/bun/graphify-store.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]}],\"models\":[\"sg-1789619568543-5uww1cd5z\"],\"group\":{\"key\":\"subsystems-studio/host\",\"kind\":\"process\"}},{\"id\":\"external:alexandria\",\"kind\":\"external\",\"key\":\"alexandria\",\"label\":\"alexandria\",\"members\":[{\"alias\":\"registry-file\",\"name\":\"Alexandria project registry\",\"file\":\"\",\"construct\":\"external\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]}],\"models\":[\"sg-1789619568543-5uww1cd5z\"],\"group\":{\"key\":\"external\",\"kind\":\"external\"}},{\"id\":\"module:packages/subsystems-studio/src/mainview/excalidraw/subsystemToExcalidraw.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/mainview/excalidraw/subsystemToExcalidraw.ts\",\"label\":\"subsystemToExcalidraw.ts\",\"members\":[{\"alias\":\"excalidraw-scene-build\",\"name\":\"principalMetaForComponent\",\"file\":\"packages/subsystems-studio/src/mainview/excalidraw/subsystemToExcalidraw.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]}],\"models\":[\"sg-1789619568543-5uww1cd5z\"],\"group\":{\"key\":\"principal-studio/renderer\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-studio/src/mainview/excalidraw/excalidrawToSubsystem.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/mainview/excalidraw/excalidrawToSubsystem.ts\",\"label\":\"excalidrawToSubsystem.ts\",\"members\":[{\"alias\":\"excalidraw-model-rebuild\",\"name\":\"excalidrawSceneToSubsystemModel\",\"file\":\"packages/subsystems-studio/src/mainview/excalidraw/excalidrawToSubsystem.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]}],\"models\":[\"sg-1789619568543-5uww1cd5z\"],\"group\":{\"key\":\"principal-studio/renderer\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-studio/src/bun/merge-submodel-models.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-studio/src/bun/merge-submodel-models.ts\",\"label\":\"merge-submodel-models.ts\",\"members\":[{\"alias\":\"merge-models\",\"name\":\"mergeSubsystemModels\",\"file\":\"packages/subsystems-studio/src/bun/merge-submodel-models.ts\",\"construct\":\"function\",\"models\":[\"sg-1789619568543-5uww1cd5z\"]}],\"models\":[\"sg-1789619568543-5uww1cd5z\"],\"group\":{\"key\":\"subsystems-studio/host\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-react/src/subsystem/paths.ts\",\"kind\":\"module\",\"key\":\"packages/subsystems-react/src/subsystem/paths.ts\",\"label\":\"paths.ts\",\"members\":[{\"alias\":\"repo-groups\",\"name\":\"buildRepoGroups\",\"file\":\"packages/subsystems-react/src/subsystem/paths.ts\",\"construct\":\"function\",\"models\":[\"sg-1789677925327-bhekgwkc4\"]}],\"models\":[\"sg-1789677925327-bhekgwkc4\"],\"group\":{\"key\":\"subsystems-studio/renderer\",\"kind\":\"process\"}},{\"id\":\"module:packages/subsystems-react/src/subsystem/SubsystemFileTree.tsx\",\"kind\":\"module\",\"key\":\"packages/subsystems-react/src/subsystem/SubsystemFileTree.tsx\",\"label\":\"SubsystemFileTree.tsx\",\"members\":[{\"alias\":\"file-tree\",\"name\":\"SubsystemFileTree\",\"file\":\"packages/subsystems-react/src/subsystem/SubsystemFileTree.tsx\",\"construct\":\"function\",\"models\":[\"sg-1789677925327-bhekgwkc4\"]}],\"models\":[\"sg-1789677925327-bhekgwkc4\"],\"group\":{\"key\":\"subsystems-studio/renderer\",\"kind\":\"process\"}}]");
5
+
6
+ export const aggregateEdges: AggregateFrameEdge[] = JSON.parse("[{\"from\":\"process:site/web\",\"to\":\"hub:in:external:external\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-site-view-gist\"],\"steps\":1,\"source\":\"process:site/web\"},{\"from\":\"hub:in:external:external\",\"to\":\"external:external/github\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-site-view-gist\"],\"steps\":1,\"target\":\"external:external/github\"},{\"from\":\"process:site/web\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"mechanisms\":[\"uses\"],\"walkthroughIds\":[\"tl-site-view-gist\"],\"steps\":1,\"source\":\"process:site/web\",\"target\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\"},{\"from\":\"process:principal-studio-cli\",\"to\":\"hub:in:process:subsystems-studio/host\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-persist-local-store\"],\"steps\":2,\"source\":\"process:principal-studio-cli\"},{\"from\":\"hub:in:process:subsystems-studio/host\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-persist-local-store\",\"tl-proposed-share-gist\",\"tl-click-load\",\"tl-optimistic-open\",\"wt-read-file\",\"wt-list\",\"wt-file-panel\"],\"steps\":4,\"target\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"to\":\"hub:out:process:subsystems-studio/host\",\"mechanisms\":[\"writes\",\"feeds\"],\"walkthroughIds\":[\"tl-persist-local-store\",\"wt-excalidraw\"],\"steps\":2,\"source\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\"},{\"from\":\"hub:out:process:subsystems-studio/host\",\"to\":\"hub:in:external:external\",\"mechanisms\":[\"writes\",\"reads\",\"calls\",\"watches\"],\"walkthroughIds\":[\"tl-persist-local-store\",\"tl-proposed-share-gist\",\"tl-probe-status\",\"tl-watch-live-sessions\",\"tl-load-historical\",\"tl-extract-concepts\",\"tl-debug-install\",\"tl-start-maintain-via-v2\",\"tl-live-progress-sse\",\"tl-ensure-opencode-v2\",\"tl-create-maintain\",\"tl-maintain-list\",\"tl-v1-timeline\",\"tl-v2-timeline\",\"wt-create\"],\"steps\":8},{\"from\":\"hub:in:external:external\",\"to\":\"external:local/disk\",\"mechanisms\":[\"writes\"],\"walkthroughIds\":[\"tl-persist-local-store\"],\"steps\":1,\"target\":\"external:local/disk\"},{\"from\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanisms\":[\"writes\",\"feeds\"],\"walkthroughIds\":[\"tl-persist-local-store\",\"wt-list\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"target\":\"process:subsystems-studio/host\"},{\"from\":\"hub:in:process:subsystems-studio/host\",\"to\":\"process:subsystems-studio/host\",\"mechanisms\":[\"calls\",\"reads\",\"produces\",\"feeds\"],\"walkthroughIds\":[\"tl-persist-local-store\",\"tl-proposed-share-gist\",\"tl-probe-status\",\"tl-watch-live-sessions\",\"tl-load-historical\",\"tl-extract-concepts\",\"tl-debug-install\",\"tl-start-maintain-via-v2\",\"tl-list-maintain\",\"tl-load-timeline-gap\",\"tl-maintain-list\",\"tl-v1-timeline\",\"tl-v2-timeline\",\"tl-run-audit\",\"wt-paint\",\"tl-click-load\",\"tl-optimistic-open\",\"tl-ensure-opencode-v2\",\"tl-live-progress-sse\"],\"steps\":8,\"target\":\"process:subsystems-studio/host\"},{\"from\":\"external:proposed/studio-gist\",\"to\":\"hub:out:external:external\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-proposed-share-gist\"],\"steps\":3,\"source\":\"external:proposed/studio-gist\"},{\"from\":\"hub:out:external:external\",\"to\":\"hub:in:process:subsystems-studio/host\",\"mechanisms\":[\"calls\",\"reads\",\"produces\"],\"walkthroughIds\":[\"tl-proposed-share-gist\",\"tl-ensure-opencode-v2\",\"tl-start-maintain-via-v2\",\"tl-live-progress-sse\",\"tl-agent-proposes\",\"wt-close-cmd-w\"],\"steps\":6},{\"from\":\"hub:out:external:external\",\"to\":\"process:site/web\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-proposed-share-gist\"],\"steps\":1,\"target\":\"process:site/web\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"hub:out:process:subsystems-studio/host\",\"mechanisms\":[\"reads\",\"feeds\",\"produces\",\"calls\",\"watches\",\"writes\"],\"walkthroughIds\":[\"tl-proposed-share-gist\",\"tl-update-stuck\",\"tl-live-progress-sse\",\"tl-probe-status\",\"tl-watch-live-sessions\",\"tl-load-historical\",\"tl-extract-concepts\",\"tl-v1-timeline\",\"tl-click-load\",\"tl-optimistic-open\",\"tl-debug-install\",\"tl-start-maintain-via-v2\",\"tl-ensure-opencode-v2\",\"tl-create-maintain\",\"tl-maintain-list\",\"tl-v2-timeline\",\"tl-verified-detail-works\",\"wt-list\"],\"steps\":12,\"source\":\"process:subsystems-studio/host\"},{\"from\":\"hub:in:external:external\",\"to\":\"external:proposed/studio-gist\",\"mechanisms\":[\"reads\"],\"walkthroughIds\":[\"tl-proposed-share-gist\"],\"steps\":1,\"target\":\"external:proposed/studio-gist\"},{\"from\":\"external:proposed/studio-gist\",\"to\":\"external:external/github\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-proposed-share-gist\"],\"steps\":1,\"source\":\"external:proposed/studio-gist\",\"target\":\"external:external/github\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"hub:out:process:subsystems-studio/renderer\",\"mechanisms\":[\"uses\",\"calls\",\"feeds\",\"reads\"],\"walkthroughIds\":[\"tl-first-open-ok\",\"tl-update-stuck\",\"tl-run-audit\",\"wt-paint\",\"tl-click-load\",\"tl-optimistic-open\",\"wt-read-file\",\"wt-open-file\"],\"steps\":8,\"source\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\"},{\"from\":\"hub:out:process:subsystems-studio/renderer\",\"to\":\"hub:in:process:subsystems-react\",\"mechanisms\":[\"uses\"],\"walkthroughIds\":[\"tl-first-open-ok\",\"tl-update-stuck\"],\"steps\":1},{\"from\":\"hub:in:process:subsystems-react\",\"to\":\"process:subsystems-react\",\"mechanisms\":[\"uses\",\"writes\"],\"walkthroughIds\":[\"tl-first-open-ok\",\"tl-update-stuck\",\"tl-click-load\",\"tl-authored-renders-unknown\",\"tl-verified-detail-works\"],\"steps\":3,\"target\":\"process:subsystems-react\"},{\"from\":\"process:subsystems-react\",\"to\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-first-open-ok\",\"tl-update-stuck\",\"tl-proposed-fix\"],\"steps\":1,\"source\":\"process:subsystems-react\",\"target\":\"module:packages/subsystems-react/src/subsystem/model.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-update-stuck\",\"tl-proposed-fix\",\"wt-create\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"target\":\"process:subsystems-studio/host\"},{\"from\":\"hub:out:process:subsystems-studio/host\",\"to\":\"hub:in:process:subsystems-studio/renderer\",\"mechanisms\":[\"feeds\",\"produces\"],\"walkthroughIds\":[\"tl-update-stuck\",\"tl-live-progress-sse\",\"tl-run-audit\",\"wt-regular-audit\",\"wt-close-cmd-w\",\"wt-close-strip-x\",\"tl-click-load\",\"tl-optimistic-open\",\"tl-agent-proposes\"],\"steps\":6},{\"from\":\"hub:in:process:subsystems-studio/renderer\",\"to\":\"process:subsystems-studio/renderer\",\"mechanisms\":[\"feeds\",\"produces\"],\"walkthroughIds\":[\"tl-update-stuck\",\"tl-live-progress-sse\",\"tl-run-audit\",\"tl-agent-proposes\",\"wt-paint\"],\"steps\":4,\"target\":\"process:subsystems-studio/renderer\"},{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"tl-update-stuck\",\"tl-proposed-fix\"],\"steps\":1,\"source\":\"process:subsystems-studio/renderer\",\"target\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\"},{\"from\":\"process:subsystems-studio/renderer\",\"to\":\"hub:out:process:subsystems-studio/renderer\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-probe-status\",\"tl-watch-live-sessions\",\"tl-load-historical\",\"tl-extract-concepts\",\"tl-debug-install\",\"tl-start-maintain-via-v2\",\"tl-list-maintain\",\"tl-load-timeline-gap\",\"tl-maintain-list\",\"tl-v1-timeline\",\"tl-v2-timeline\",\"wt-run\"],\"steps\":2,\"source\":\"process:subsystems-studio/renderer\"},{\"from\":\"hub:out:process:subsystems-studio/renderer\",\"to\":\"hub:in:process:subsystems-studio/host\",\"mechanisms\":[\"calls\",\"reads\"],\"walkthroughIds\":[\"tl-probe-status\",\"tl-watch-live-sessions\",\"tl-load-historical\",\"tl-extract-concepts\",\"tl-debug-install\",\"tl-start-maintain-via-v2\",\"tl-list-maintain\",\"tl-load-timeline-gap\",\"tl-maintain-list\",\"tl-v1-timeline\",\"tl-v2-timeline\",\"tl-run-audit\",\"wt-paint\",\"tl-click-load\",\"tl-optimistic-open\",\"wt-read-file\",\"wt-run\",\"wt-close-cmd-w\",\"wt-close-strip-x\",\"wt-list\",\"wt-file-panel\",\"wt-list-today\"],\"steps\":9},{\"from\":\"hub:in:external:external\",\"to\":\"external:opencode\",\"mechanisms\":[\"calls\",\"watches\",\"reads\"],\"walkthroughIds\":[\"tl-probe-status\",\"tl-watch-live-sessions\",\"tl-load-historical\",\"tl-extract-concepts\"],\"steps\":1,\"target\":\"external:opencode\"},{\"from\":\"hub:out:process:subsystems-studio/host\",\"to\":\"process:subsystems-core\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-load-historical\",\"tl-v1-timeline\"],\"steps\":1,\"target\":\"process:subsystems-core\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"to\":\"process:subsystems-studio/renderer\",\"mechanisms\":[\"calls\",\"uses\"],\"walkthroughIds\":[\"tl-run-audit\",\"tl-optimistic-open\",\"wt-paint\",\"wt-run\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"target\":\"process:subsystems-studio/renderer\"},{\"from\":\"hub:in:process:subsystems-studio/host\",\"to\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-run-audit\",\"wt-run\"],\"steps\":2,\"target\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"hub:out:process:subsystems-studio/host\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"tl-run-audit\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanisms\":[\"calls\",\"reads\"],\"walkthroughIds\":[\"tl-host-checks\",\"wt-adopt\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/regular-audit.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"mechanisms\":[\"calls\",\"produces\"],\"walkthroughIds\":[\"wt-regular-audit\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/regular-audit.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/index.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-regular-audit\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"mechanisms\":[\"produces\"],\"walkthroughIds\":[\"wt-regular-audit\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/index.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"to\":\"hub:out:process:subsystems-studio/host\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"wt-regular-audit\",\"wt-close-cmd-w\",\"wt-close-strip-x\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/index.ts\"},{\"from\":\"hub:in:process:subsystems-studio/renderer\",\"to\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"wt-regular-audit\",\"wt-close-cmd-w\",\"wt-close-strip-x\"],\"steps\":1,\"target\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"to\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"wt-regular-audit\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"target\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"to\":\"hub:out:process:subsystems-studio/renderer\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-click-load\",\"tl-optimistic-open\",\"wt-list\",\"wt-file-panel\",\"wt-list-today\"],\"steps\":3,\"source\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\"},{\"from\":\"hub:in:process:subsystems-studio/renderer\",\"to\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"mechanisms\":[\"feeds\",\"calls\"],\"walkthroughIds\":[\"tl-click-load\",\"wt-read-file\"],\"steps\":2,\"target\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-click-load\"],\"steps\":1,\"source\":\"process:subsystems-studio/host\",\"target\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\"},{\"from\":\"hub:out:process:subsystems-studio/renderer\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"mechanisms\":[\"uses\",\"feeds\"],\"walkthroughIds\":[\"tl-click-load\",\"tl-optimistic-open\",\"wt-paint\",\"wt-open-file\"],\"steps\":1,\"target\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"hub:in:process:subsystems-react\",\"mechanisms\":[\"calls\",\"uses\"],\"walkthroughIds\":[\"tl-click-load\",\"wt-frame-today\",\"wt-nest\",\"tl-authored-renders-unknown\"],\"steps\":2,\"source\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\"},{\"from\":\"hub:in:process:subsystems-react\",\"to\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-click-load\",\"wt-frame-today\",\"wt-nest\"],\"steps\":1,\"target\":\"module:packages/subsystems-react/src/subsystem/model.ts\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/model.ts\",\"to\":\"hub:out:process:subsystems-react\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-click-load\",\"wt-frame-today\",\"wt-nest\"],\"steps\":1,\"source\":\"module:packages/subsystems-react/src/subsystem/model.ts\"},{\"from\":\"hub:out:process:subsystems-react\",\"to\":\"hub:in:process:subsystems-studio/renderer\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-click-load\",\"wt-frame-today\",\"wt-nest\"],\"steps\":1},{\"from\":\"hub:in:process:subsystems-studio/renderer\",\"to\":\"module:packages/subsystems-react/src/utils/elkLayout.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-click-load\",\"wt-frame-today\",\"wt-nest\"],\"steps\":1,\"target\":\"module:packages/subsystems-react/src/utils/elkLayout.ts\"},{\"from\":\"process:subsystems-studio/host\",\"to\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"mechanisms\":[\"writes\"],\"walkthroughIds\":[\"tl-optimistic-open\"],\"steps\":1,\"source\":\"process:subsystems-studio/host\",\"target\":\"module:packages/subsystems-studio/src/bun/index.ts\"},{\"from\":\"hub:in:process:subsystems-studio/renderer\",\"to\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"tl-optimistic-open\"],\"steps\":1,\"target\":\"module:packages/subsystems-studio/src/mainview/App.tsx\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"to\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\",\"mechanisms\":[\"uses\"],\"walkthroughIds\":[\"tl-optimistic-open\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"target\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelView.tsx\"},{\"from\":\"hub:in:external:external\",\"to\":\"external:opencode/v2\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-debug-install\",\"tl-start-maintain-via-v2\",\"tl-live-progress-sse\"],\"steps\":1,\"target\":\"external:opencode/v2\"},{\"from\":\"hub:in:external:external\",\"to\":\"external:subsystems-studio/host\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-ensure-opencode-v2\",\"tl-start-maintain-via-v2\"],\"steps\":1,\"target\":\"external:subsystems-studio/host\"},{\"from\":\"external:subsystems-studio/host\",\"to\":\"hub:out:external:external\",\"mechanisms\":[\"reads\"],\"walkthroughIds\":[\"tl-ensure-opencode-v2\",\"tl-start-maintain-via-v2\"],\"steps\":1,\"source\":\"external:subsystems-studio/host\"},{\"from\":\"external:subsystems-studio/host\",\"to\":\"external:opencode/v2\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-ensure-opencode-v2\",\"tl-start-maintain-via-v2\"],\"steps\":1,\"source\":\"external:subsystems-studio/host\",\"target\":\"external:opencode/v2\"},{\"from\":\"external:opencode/v2\",\"to\":\"hub:out:external:external\",\"mechanisms\":[\"produces\",\"calls\"],\"walkthroughIds\":[\"tl-live-progress-sse\",\"tl-agent-proposes\"],\"steps\":2,\"source\":\"external:opencode/v2\"},{\"from\":\"hub:in:process:subsystems-studio/host\",\"to\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-agent-proposes\"],\"steps\":1,\"target\":\"module:packages/subsystems-studio/src/bun/http-server.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/proposal-store.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-agent-proposes\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/proposal-store.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"hub:out:process:subsystems-studio/host\",\"mechanisms\":[\"produces\"],\"walkthroughIds\":[\"tl-agent-proposes\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/http-server.ts\"},{\"from\":\"hub:in:external:external\",\"to\":\"external:opencode2/service\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"tl-create-maintain\"],\"steps\":1,\"target\":\"external:opencode2/service\"},{\"from\":\"hub:in:external:external\",\"to\":\"external:opencode/sqlite\",\"mechanisms\":[\"reads\"],\"walkthroughIds\":[\"tl-maintain-list\",\"tl-v1-timeline\",\"tl-v2-timeline\"],\"steps\":1,\"target\":\"external:opencode/sqlite\"},{\"from\":\"process:subsystems-core\",\"to\":\"hub:in:process:subsystems-studio/host\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"tl-v1-timeline\"],\"steps\":1,\"source\":\"process:subsystems-core\"},{\"from\":\"hub:out:process:subsystems-studio/host\",\"to\":\"hub:in:process:subsystems-react\",\"mechanisms\":[\"writes\"],\"walkthroughIds\":[\"tl-verified-detail-works\"],\"steps\":1},{\"from\":\"process:subsystems-react\",\"to\":\"hub:out:process:subsystems-react\",\"mechanisms\":[\"reads\"],\"walkthroughIds\":[\"tl-proposed-single-source\"],\"steps\":1,\"source\":\"process:subsystems-react\"},{\"from\":\"hub:out:process:subsystems-react\",\"to\":\"process:subsystems-core\",\"mechanisms\":[\"reads\"],\"walkthroughIds\":[\"tl-proposed-single-source\"],\"steps\":1,\"target\":\"process:subsystems-core\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/nodes.tsx\",\"mechanisms\":[\"uses\"],\"walkthroughIds\":[\"wt-frame-today\",\"wt-nest\"],\"steps\":1,\"source\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"target\":\"module:packages/subsystems-react/src/subsystem/nodes.tsx\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"hub:in:process:subsystems-studio/renderer\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"wt-paint\"],\"steps\":1,\"source\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"process:subsystems-studio/host\",\"mechanisms\":[\"writes\",\"calls\"],\"walkthroughIds\":[\"wt-run\",\"wt-audit\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"target\":\"process:subsystems-studio/host\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\",\"to\":\"hub:in:process:principal-studio/renderer\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"wt-open-file\"],\"steps\":1,\"source\":\"module:packages/subsystems-react/src/subsystem/SubsystemComponentGraph.tsx\"},{\"from\":\"hub:in:process:principal-studio/renderer\",\"to\":\"process:principal-studio/renderer\",\"mechanisms\":[\"feeds\",\"writes\"],\"walkthroughIds\":[\"wt-open-file\",\"wt-read-file\",\"wt-list\"],\"steps\":4,\"target\":\"process:principal-studio/renderer\"},{\"from\":\"hub:out:process:subsystems-studio/renderer\",\"to\":\"hub:in:process:principal-studio/renderer\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"wt-open-file\"],\"steps\":1},{\"from\":\"process:principal-studio/renderer\",\"to\":\"hub:out:process:principal-studio/renderer\",\"mechanisms\":[\"calls\",\"feeds\"],\"walkthroughIds\":[\"wt-read-file\"],\"steps\":2,\"source\":\"process:principal-studio/renderer\"},{\"from\":\"hub:out:process:principal-studio/renderer\",\"to\":\"hub:in:process:subsystems-studio/renderer\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-read-file\"],\"steps\":1},{\"from\":\"hub:out:process:subsystems-studio/renderer\",\"to\":\"process:principal-studio/host\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-read-file\"],\"steps\":1,\"target\":\"process:principal-studio/host\"},{\"from\":\"hub:out:process:subsystems-studio/renderer\",\"to\":\"hub:in:external:external\",\"mechanisms\":[\"reads\"],\"walkthroughIds\":[\"wt-read-file\"],\"steps\":1},{\"from\":\"hub:in:external:external\",\"to\":\"external:principal-studio/host\",\"mechanisms\":[\"reads\"],\"walkthroughIds\":[\"wt-read-file\"],\"steps\":1,\"target\":\"external:principal-studio/host\"},{\"from\":\"hub:out:process:principal-studio/renderer\",\"to\":\"hub:in:external:external\",\"mechanisms\":[\"calls\",\"feeds\"],\"walkthroughIds\":[\"wt-read-file\"],\"steps\":1},{\"from\":\"hub:in:external:external\",\"to\":\"external:principal-studio/renderer\",\"mechanisms\":[\"calls\",\"feeds\"],\"walkthroughIds\":[\"wt-read-file\"],\"steps\":1,\"target\":\"external:principal-studio/renderer\"},{\"from\":\"external:principal-studio/renderer\",\"to\":\"hub:out:external:external\",\"mechanisms\":[\"writes\"],\"walkthroughIds\":[\"wt-read-file\"],\"steps\":1,\"source\":\"external:principal-studio/renderer\"},{\"from\":\"hub:out:external:external\",\"to\":\"hub:in:process:principal-studio/renderer\",\"mechanisms\":[\"writes\"],\"walkthroughIds\":[\"wt-read-file\"],\"steps\":1},{\"from\":\"external:unassigned\",\"to\":\"hub:out:external:external\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-close-cmd-w\"],\"steps\":1,\"source\":\"external:unassigned\"},{\"from\":\"hub:in:process:subsystems-studio/host\",\"to\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"mechanisms\":[\"calls\",\"reads\"],\"walkthroughIds\":[\"wt-close-cmd-w\",\"wt-close-strip-x\",\"wt-list-today\"],\"steps\":3,\"target\":\"module:packages/subsystems-studio/src/bun/index.ts\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"to\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-close-cmd-w\",\"wt-close-strip-x\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"target\":\"module:packages/subsystems-studio/src/mainview/App.tsx\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"to\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-close-cmd-w\",\"wt-close-strip-x\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"target\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\",\"to\":\"hub:out:process:subsystems-studio/renderer\",\"mechanisms\":[\"reads\",\"calls\"],\"walkthroughIds\":[\"wt-close-cmd-w\",\"wt-close-strip-x\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/mainview/rpc.ts\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"to\":\"module:packages/subsystems-studio/src/mainview/components/TabStrip.tsx\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"wt-close-strip-x\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/mainview/App.tsx\",\"target\":\"module:packages/subsystems-studio/src/mainview/components/TabStrip.tsx\"},{\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-create\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-create\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/http-server.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-create\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"to\":\"hub:out:process:subsystems-studio/host\",\"mechanisms\":[\"reads\"],\"walkthroughIds\":[\"wt-create\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\"},{\"from\":\"hub:in:external:external\",\"to\":\"external:alexandria\",\"mechanisms\":[\"reads\"],\"walkthroughIds\":[\"wt-create\"],\"steps\":1,\"target\":\"external:alexandria\"},{\"from\":\"hub:out:process:subsystems-studio/host\",\"to\":\"hub:in:process:principal-studio/renderer\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"wt-list\",\"wt-excalidraw\"],\"steps\":2},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/graphify-store.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-audit__dup1\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/graphify-store.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/graphify-store.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-audit__dup1\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/graphify-store.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/alexandria.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/proposal-store.ts\",\"mechanisms\":[\"produces\"],\"walkthroughIds\":[\"wt-propose\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/verify-subsystem-component.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/proposal-store.ts\"},{\"from\":\"hub:in:process:principal-studio/renderer\",\"to\":\"module:packages/subsystems-studio/src/mainview/excalidraw/subsystemToExcalidraw.ts\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"wt-excalidraw\"],\"steps\":1,\"target\":\"module:packages/subsystems-studio/src/mainview/excalidraw/subsystemToExcalidraw.ts\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/excalidraw/subsystemToExcalidraw.ts\",\"to\":\"module:packages/subsystems-studio/src/mainview/excalidraw/excalidrawToSubsystem.ts\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"wt-excalidraw\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/mainview/excalidraw/subsystemToExcalidraw.ts\",\"target\":\"module:packages/subsystems-studio/src/mainview/excalidraw/excalidrawToSubsystem.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/merge-submodel-models.ts\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"wt-merge\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/merge-submodel-models.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/merge-submodel-models.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanisms\":[\"reads\"],\"walkthroughIds\":[\"wt-merge\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/merge-submodel-models.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\"},{\"from\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"to\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-list-today\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/bun/index.ts\",\"target\":\"module:packages/subsystems-studio/src/bun/subsystem-model-store.ts\"},{\"from\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"to\":\"module:packages/subsystems-react/src/subsystem/paths.ts\",\"mechanisms\":[\"calls\"],\"walkthroughIds\":[\"wt-file-panel\"],\"steps\":1,\"source\":\"module:packages/subsystems-studio/src/mainview/views/SubsystemModelsView.tsx\",\"target\":\"module:packages/subsystems-react/src/subsystem/paths.ts\"},{\"from\":\"module:packages/subsystems-react/src/subsystem/paths.ts\",\"to\":\"module:packages/subsystems-react/src/subsystem/SubsystemFileTree.tsx\",\"mechanisms\":[\"feeds\"],\"walkthroughIds\":[\"wt-file-panel\"],\"steps\":1,\"source\":\"module:packages/subsystems-react/src/subsystem/paths.ts\",\"target\":\"module:packages/subsystems-react/src/subsystem/SubsystemFileTree.tsx\"}]");
7
+
8
+ export const aggregateHubs: AggregateHub[] = JSON.parse("[{\"id\":\"hub:in:external:external\",\"group\":{\"key\":\"external\",\"kind\":\"external\"},\"kind\":\"intake\",\"label\":\"external in\"},{\"id\":\"hub:out:external:external\",\"group\":{\"key\":\"external\",\"kind\":\"external\"},\"kind\":\"outtake\",\"label\":\"external out\"},{\"id\":\"hub:in:process:subsystems-studio/host\",\"group\":{\"key\":\"subsystems-studio/host\",\"kind\":\"process\"},\"kind\":\"intake\",\"label\":\"subsystems-studio/host in\"},{\"id\":\"hub:out:process:subsystems-studio/host\",\"group\":{\"key\":\"subsystems-studio/host\",\"kind\":\"process\"},\"kind\":\"outtake\",\"label\":\"subsystems-studio/host out\"},{\"id\":\"hub:in:process:subsystems-studio/renderer\",\"group\":{\"key\":\"subsystems-studio/renderer\",\"kind\":\"process\"},\"kind\":\"intake\",\"label\":\"subsystems-studio/renderer in\"},{\"id\":\"hub:out:process:subsystems-studio/renderer\",\"group\":{\"key\":\"subsystems-studio/renderer\",\"kind\":\"process\"},\"kind\":\"outtake\",\"label\":\"subsystems-studio/renderer out\"},{\"id\":\"hub:in:process:subsystems-react\",\"group\":{\"key\":\"subsystems-react\",\"kind\":\"process\"},\"kind\":\"intake\",\"label\":\"subsystems-react in\"},{\"id\":\"hub:out:process:subsystems-react\",\"group\":{\"key\":\"subsystems-react\",\"kind\":\"process\"},\"kind\":\"outtake\",\"label\":\"subsystems-react out\"},{\"id\":\"hub:in:process:principal-studio/renderer\",\"group\":{\"key\":\"principal-studio/renderer\",\"kind\":\"process\"},\"kind\":\"intake\",\"label\":\"principal-studio/renderer in\"},{\"id\":\"hub:out:process:principal-studio/renderer\",\"group\":{\"key\":\"principal-studio/renderer\",\"kind\":\"process\"},\"kind\":\"outtake\",\"label\":\"principal-studio/renderer out\"}]");