@principal-ai/subsystems-react 0.50.0 → 0.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/stories/Subsystem/C4Graph/c4Associations.fixture.d.ts +95 -0
- package/dist/stories/Subsystem/C4Graph/c4Associations.fixture.d.ts.map +1 -0
- package/dist/stories/Subsystem/C4Graph/c4Associations.fixture.js +340 -0
- package/dist/stories/Subsystem/C4Graph/c4Associations.fixture.js.map +1 -0
- package/dist/stories/Subsystem/C4Graph/c4Fixture.d.ts +4 -0
- package/dist/stories/Subsystem/C4Graph/c4Fixture.d.ts.map +1 -1
- package/dist/stories/Subsystem/C4Graph/c4Fixture.js +7334 -1
- package/dist/stories/Subsystem/C4Graph/c4Fixture.js.map +1 -1
- package/dist/stories/Subsystem/C4Graph/generateFixture.d.ts +2 -0
- package/dist/stories/Subsystem/C4Graph/generateFixture.d.ts.map +1 -0
- package/dist/stories/Subsystem/C4Graph/generateFixture.js +145 -0
- package/dist/stories/Subsystem/C4Graph/generateFixture.js.map +1 -0
- package/dist/subsystem/C4Graph.d.ts.map +1 -1
- package/dist/subsystem/C4Graph.js +16 -60
- package/dist/subsystem/C4Graph.js.map +1 -1
- package/dist/subsystem/C4NodeCard.d.ts +84 -0
- package/dist/subsystem/C4NodeCard.d.ts.map +1 -0
- package/dist/subsystem/C4NodeCard.js +229 -0
- package/dist/subsystem/C4NodeCard.js.map +1 -0
- package/dist/subsystem/DiagnosticToggle.d.ts +8 -1
- package/dist/subsystem/DiagnosticToggle.d.ts.map +1 -1
- package/dist/subsystem/DiagnosticToggle.js +40 -6
- package/dist/subsystem/DiagnosticToggle.js.map +1 -1
- package/dist/subsystem/c4Associations.d.ts +186 -0
- package/dist/subsystem/c4Associations.d.ts.map +1 -0
- package/dist/subsystem/c4Associations.js +284 -0
- package/dist/subsystem/c4Associations.js.map +1 -0
- package/dist/subsystem/model.d.ts +25 -1
- package/dist/subsystem/model.d.ts.map +1 -1
- package/dist/subsystem/model.js +15 -0
- package/dist/subsystem/model.js.map +1 -1
- package/dist/subsystem/nodes.d.ts.map +1 -1
- package/dist/subsystem/nodes.js +78 -7
- package/dist/subsystem/nodes.js.map +1 -1
- package/dist/subsystem/toC4.d.ts +119 -0
- package/dist/subsystem/toC4.d.ts.map +1 -1
- package/dist/subsystem/toC4.js +95 -5
- package/dist/subsystem/toC4.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +39 -0
- package/src/stories/Subsystem/C4Graph/C4Associations.stories.tsx +273 -0
- package/src/stories/Subsystem/C4Graph/C4NodeGallery.stories.tsx +325 -0
- package/src/stories/Subsystem/C4Graph/c4Associations.fixture.ts +344 -0
- package/src/stories/Subsystem/C4Graph/c4Fixture.ts +7337 -4
- package/src/stories/Subsystem/C4Graph/generateFixture.ts +161 -0
- package/src/stories/Subsystem/ComponentGraph/Deprecated.stories.tsx +358 -0
- package/src/stories/Subsystem/ComponentGraph/Diagnostics.stories.tsx +27 -2
- package/src/stories/Subsystem/ComponentGraph/{Flows.stories.tsx → Trails.stories.tsx} +4 -4
- package/src/subsystem/C4Graph.tsx +51 -92
- package/src/subsystem/C4NodeCard.test.ts +196 -0
- package/src/subsystem/C4NodeCard.tsx +307 -0
- package/src/subsystem/DiagnosticToggle.tsx +58 -4
- package/src/subsystem/c4Associations.test.ts +484 -0
- package/src/subsystem/c4Associations.ts +398 -0
- package/src/subsystem/model.ts +34 -1
- package/src/subsystem/nodes.tsx +124 -5
- package/src/subsystem/toC4.ts +210 -5
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C4 associations — the confirmed, human-approved layer.
|
|
3
|
+
*
|
|
4
|
+
* `toC4.ts` derives a C4 projection from the flat document, but a derivation
|
|
5
|
+
* cannot be right about architecture on its own. The document says *what a
|
|
6
|
+
* symbol is* and *where it runs*; it does not say whether two runs are one
|
|
7
|
+
* deployable unit, whether a library is a container, or whether a store is a
|
|
8
|
+
* C4 data store.
|
|
9
|
+
*
|
|
10
|
+
* So the derivation proposes, and this module records what a person (or an
|
|
11
|
+
* agent a person approved) concluded:
|
|
12
|
+
*
|
|
13
|
+
* process key derived key association
|
|
14
|
+
* ─────────────────────────────────────────────────────────
|
|
15
|
+
* subsystems-studio/host ─┐
|
|
16
|
+
* ├─────► container:studio-host
|
|
17
|
+
* principal-studio/host ─┘ (state: accepted)
|
|
18
|
+
*
|
|
19
|
+
* The association is the join point. It names one C4 element and lists the
|
|
20
|
+
* derived keys that belong to it, which is how dedup works without inventing
|
|
21
|
+
* anything: several keys claimed by one id collapse into one box.
|
|
22
|
+
*
|
|
23
|
+
* ## Why this is not in the subsystem document
|
|
24
|
+
*
|
|
25
|
+
* A `C4Association` is a claim about *architecture*, not about *code*. Putting
|
|
26
|
+
* it on the document would mean every re-audit had to re-derive and re-defend
|
|
27
|
+
* it, and it would make the shared standard carry an opinion the models have
|
|
28
|
+
* no evidence for. Keeping it separate means the portable document stays
|
|
29
|
+
* source-anchored and this layer stays revisable on its own.
|
|
30
|
+
*
|
|
31
|
+
* ## What an agent may and may not do
|
|
32
|
+
*
|
|
33
|
+
* An agent may *propose* associations — `state: 'proposed'` — including merges,
|
|
34
|
+
* including retyping a store as a data store, including writing `technology`
|
|
35
|
+
* and `description` from the source it read. It may not set `state:
|
|
36
|
+
* 'accepted'`. That field is the human's, and it is the only field that
|
|
37
|
+
* changes what is drawn: a proposed association shows as a proposal, an
|
|
38
|
+
* accepted one is part of the architecture, and a rejected one is not drawn.
|
|
39
|
+
*/
|
|
40
|
+
import type { C4Association, C4Model } from './toC4';
|
|
41
|
+
/** The sidecar: a set of associations for one repo (or one composed graph). */
|
|
42
|
+
export interface C4AssociationSet {
|
|
43
|
+
/** Repo key this set describes, e.g. `pkg:github/owner/name`. */
|
|
44
|
+
repoKey: string;
|
|
45
|
+
/** ISO timestamp of the last change. */
|
|
46
|
+
updatedAt?: string;
|
|
47
|
+
associations: C4Association[];
|
|
48
|
+
}
|
|
49
|
+
/** Why an agent proposes what it proposes — the reviewable part. */
|
|
50
|
+
export interface C4AssociationReason {
|
|
51
|
+
/** Stable id of the derived key or association this concerns. */
|
|
52
|
+
target: string;
|
|
53
|
+
kind: C4ConcernKind;
|
|
54
|
+
message: string;
|
|
55
|
+
/** Aliases of the components that triggered the concern. */
|
|
56
|
+
members?: string[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The questions worth a human's attention, derived mechanically.
|
|
60
|
+
*
|
|
61
|
+
* These are the checks from the C4 notation rules that the document cannot
|
|
62
|
+
* answer on its own. An agent turns each into a proposal; a person answers.
|
|
63
|
+
*/
|
|
64
|
+
export type C4ConcernKind =
|
|
65
|
+
/** two or more process keys may be the same deployable unit */
|
|
66
|
+
'merge_candidate'
|
|
67
|
+
/** exactly one member — a lone function is not a deployable unit */
|
|
68
|
+
| 'singleton'
|
|
69
|
+
/** no member that executes at runtime — a library is not a container */
|
|
70
|
+
| 'library_shaped'
|
|
71
|
+
/** C4 requires technology on every container */
|
|
72
|
+
| 'missing_technology'
|
|
73
|
+
/** members claim more than one repo — a container cannot straddle systems */
|
|
74
|
+
| 'spans_repos'
|
|
75
|
+
/** a store whose storage kind was never decided */
|
|
76
|
+
| 'store_unclassified'
|
|
77
|
+
/** external with no resolvable identity */
|
|
78
|
+
| 'external_unidentified'
|
|
79
|
+
/** a runtime component with no process at all */
|
|
80
|
+
| 'unassigned';
|
|
81
|
+
/** The fields `deriveConcerns` reads off a component. Structural on purpose:
|
|
82
|
+
* it accepts a real `SubsystemComponent` as well as a hand-built literal.
|
|
83
|
+
* `declaration` is the full construct-declaration union, so a component
|
|
84
|
+
* passes straight through without the caller reshaping it. */
|
|
85
|
+
export interface C4MemberView {
|
|
86
|
+
alias: string;
|
|
87
|
+
construct: string;
|
|
88
|
+
purl: string;
|
|
89
|
+
process?: string;
|
|
90
|
+
framework?: string;
|
|
91
|
+
declaration?: unknown;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Derive the questions worth asking about one container key.
|
|
95
|
+
*
|
|
96
|
+
* Pure over the rollup, so it runs identically against a single model, the 40
|
|
97
|
+
* composed models, or a fixture.
|
|
98
|
+
*/
|
|
99
|
+
export declare function deriveConcerns(key: string, members: readonly C4MemberView[], tech?: {
|
|
100
|
+
frameworks: readonly string[];
|
|
101
|
+
}): C4AssociationReason[];
|
|
102
|
+
/**
|
|
103
|
+
* Suggest merges between container keys that share a trailing role.
|
|
104
|
+
*
|
|
105
|
+
* `subsystems-studio/host` and `principal-studio/host` are the same role under
|
|
106
|
+
* two app names. This is a *suggestion*, never a merge — the whole question is
|
|
107
|
+
* whether they are one process or two, and only the user knows.
|
|
108
|
+
*/
|
|
109
|
+
export declare function suggestMerges(rollup: ReadonlyArray<{
|
|
110
|
+
key: string;
|
|
111
|
+
memberCount: number;
|
|
112
|
+
}>): Array<{
|
|
113
|
+
role: string;
|
|
114
|
+
keys: string[];
|
|
115
|
+
reason: string;
|
|
116
|
+
}>;
|
|
117
|
+
/**
|
|
118
|
+
* Compose a suggested association set from a derived rollup.
|
|
119
|
+
*
|
|
120
|
+
* This is the agent's starting point: every derived key becomes one proposed
|
|
121
|
+
* association, shaped by the mechanical evidence. Nothing here is accepted —
|
|
122
|
+
* `buildAssociations` is a convenience for authoring, not an oracle.
|
|
123
|
+
*/
|
|
124
|
+
export declare function buildAssociations(options: {
|
|
125
|
+
repoKey: string;
|
|
126
|
+
rollup: ReadonlyArray<{
|
|
127
|
+
key: string;
|
|
128
|
+
members: readonly C4MemberView[];
|
|
129
|
+
frameworks: readonly string[];
|
|
130
|
+
}>;
|
|
131
|
+
/** Merges a person has already decided on: groups of keys → one id. */
|
|
132
|
+
merges?: ReadonlyArray<{
|
|
133
|
+
id: string;
|
|
134
|
+
keys: string[];
|
|
135
|
+
}>;
|
|
136
|
+
author?: string;
|
|
137
|
+
}): C4AssociationSet;
|
|
138
|
+
/**
|
|
139
|
+
* How much evidence backs one association.
|
|
140
|
+
*
|
|
141
|
+
* Computed from the rollup rather than stored, so it never goes stale as
|
|
142
|
+
* models change. Used to pick the survivor of a merge.
|
|
143
|
+
*/
|
|
144
|
+
export declare function associationWeight(a: C4Association, memberCount: ReadonlyMap<string, number>): number;
|
|
145
|
+
/**
|
|
146
|
+
* Fold a decided merge into an association set.
|
|
147
|
+
*
|
|
148
|
+
* Two derived keys that are really one container have to become ONE
|
|
149
|
+
* association claiming BOTH keys — not two associations, and not one
|
|
150
|
+
* association whose key was rewritten to the other's id. `toC4` collapses a
|
|
151
|
+
* box per association id, so a key must stay a key all the way through or the
|
|
152
|
+
* merge silently does nothing.
|
|
153
|
+
*
|
|
154
|
+
* ## Which side survives
|
|
155
|
+
*
|
|
156
|
+
* The **largest** side wins, not the caller's choice. `subsystems-studio/host`
|
|
157
|
+
* holds 113 components and `principal-studio/host` holds 1; folding the big
|
|
158
|
+
* one into the small one would leave the box labelled after an almost-empty
|
|
159
|
+
* process and lose its confirmed technology. Merging is a dedup, so the
|
|
160
|
+
* survivor should be the one carrying the evidence.
|
|
161
|
+
*
|
|
162
|
+
* Returns a new set; the input is untouched. Idempotent: merging an already
|
|
163
|
+
* merged set changes nothing.
|
|
164
|
+
*/
|
|
165
|
+
export declare function mergeAssociations(associations: readonly C4Association[], keys: readonly string[],
|
|
166
|
+
/**
|
|
167
|
+
* Optional caller override — skip it to get the evidence-driven default.
|
|
168
|
+
*/
|
|
169
|
+
preferKey?: string,
|
|
170
|
+
/**
|
|
171
|
+
* Components per derived key, from the rollup. This is what decides the
|
|
172
|
+
* survivor when every side claims a single key, which is the common case:
|
|
173
|
+
* `subsystems-studio/host` and `principal-studio/host` each hold exactly one
|
|
174
|
+
* derived key, so key count cannot break the tie.
|
|
175
|
+
*/
|
|
176
|
+
memberCount?: ReadonlyMap<string, number>): C4Association[];
|
|
177
|
+
/** Summary counts for the confirm UI: how much is proposed vs accepted. */
|
|
178
|
+
export declare function summarizeAssociations(model: C4Model, associations: readonly C4Association[]): {
|
|
179
|
+
confirmed: number;
|
|
180
|
+
proposed: number;
|
|
181
|
+
rejected: number;
|
|
182
|
+
mergedAway: number;
|
|
183
|
+
missingTechnology: number;
|
|
184
|
+
needsDecision: number;
|
|
185
|
+
};
|
|
186
|
+
//# sourceMappingURL=c4Associations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"c4Associations.d.ts","sourceRoot":"","sources":["../../src/subsystem/c4Associations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C4 associations — the confirmed, human-approved layer.
|
|
3
|
+
*
|
|
4
|
+
* `toC4.ts` derives a C4 projection from the flat document, but a derivation
|
|
5
|
+
* cannot be right about architecture on its own. The document says *what a
|
|
6
|
+
* symbol is* and *where it runs*; it does not say whether two runs are one
|
|
7
|
+
* deployable unit, whether a library is a container, or whether a store is a
|
|
8
|
+
* C4 data store.
|
|
9
|
+
*
|
|
10
|
+
* So the derivation proposes, and this module records what a person (or an
|
|
11
|
+
* agent a person approved) concluded:
|
|
12
|
+
*
|
|
13
|
+
* process key derived key association
|
|
14
|
+
* ─────────────────────────────────────────────────────────
|
|
15
|
+
* subsystems-studio/host ─┐
|
|
16
|
+
* ├─────► container:studio-host
|
|
17
|
+
* principal-studio/host ─┘ (state: accepted)
|
|
18
|
+
*
|
|
19
|
+
* The association is the join point. It names one C4 element and lists the
|
|
20
|
+
* derived keys that belong to it, which is how dedup works without inventing
|
|
21
|
+
* anything: several keys claimed by one id collapse into one box.
|
|
22
|
+
*
|
|
23
|
+
* ## Why this is not in the subsystem document
|
|
24
|
+
*
|
|
25
|
+
* A `C4Association` is a claim about *architecture*, not about *code*. Putting
|
|
26
|
+
* it on the document would mean every re-audit had to re-derive and re-defend
|
|
27
|
+
* it, and it would make the shared standard carry an opinion the models have
|
|
28
|
+
* no evidence for. Keeping it separate means the portable document stays
|
|
29
|
+
* source-anchored and this layer stays revisable on its own.
|
|
30
|
+
*
|
|
31
|
+
* ## What an agent may and may not do
|
|
32
|
+
*
|
|
33
|
+
* An agent may *propose* associations — `state: 'proposed'` — including merges,
|
|
34
|
+
* including retyping a store as a data store, including writing `technology`
|
|
35
|
+
* and `description` from the source it read. It may not set `state:
|
|
36
|
+
* 'accepted'`. That field is the human's, and it is the only field that
|
|
37
|
+
* changes what is drawn: a proposed association shows as a proposal, an
|
|
38
|
+
* accepted one is part of the architecture, and a rejected one is not drawn.
|
|
39
|
+
*/
|
|
40
|
+
/** Construct that executes at runtime, i.e. can be a deployable unit's code. */
|
|
41
|
+
const RUNTIME_CONSTRUCTS = new Set(['function', 'class', 'custom_entity']);
|
|
42
|
+
/** A store's declared storage kind, or undefined when it never declared one. */
|
|
43
|
+
function storageOf(m) {
|
|
44
|
+
const d = m.declaration;
|
|
45
|
+
return d?.kind === 'store' ? d.storage : undefined;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Derive the questions worth asking about one container key.
|
|
49
|
+
*
|
|
50
|
+
* Pure over the rollup, so it runs identically against a single model, the 40
|
|
51
|
+
* composed models, or a fixture.
|
|
52
|
+
*/
|
|
53
|
+
export function deriveConcerns(key, members, tech = { frameworks: [] }) {
|
|
54
|
+
const out = [];
|
|
55
|
+
const aliases = members.map((m) => m.alias);
|
|
56
|
+
const runtime = members.filter((m) => RUNTIME_CONSTRUCTS.has(m.construct));
|
|
57
|
+
if (members.length === 1) {
|
|
58
|
+
out.push({
|
|
59
|
+
target: key,
|
|
60
|
+
kind: 'singleton',
|
|
61
|
+
message: `process "${key}" has exactly one member (${aliases[0]}) — a lone function is not a deployable unit`,
|
|
62
|
+
members: aliases,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
// No member executes at runtime ⇒ this cannot be a deployable unit,
|
|
66
|
+
// regardless of how many members it has. A lone interface and a package of
|
|
67
|
+
// interfaces fail the same way.
|
|
68
|
+
if (members.length > 0 && runtime.length === 0) {
|
|
69
|
+
out.push({
|
|
70
|
+
target: key,
|
|
71
|
+
kind: 'library_shaped',
|
|
72
|
+
message: `process "${key}" has ${members.length} member(s) but none execute at runtime (${[...new Set(members.map((m) => m.construct))].join(', ')}) — this reads as a library, not a container`,
|
|
73
|
+
members: aliases,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
if (runtime.length > 0 && tech.frameworks.length === 0) {
|
|
77
|
+
out.push({
|
|
78
|
+
target: key,
|
|
79
|
+
kind: 'missing_technology',
|
|
80
|
+
message: `container "${key}" has no framework signal — C4 requires a technology on every container`,
|
|
81
|
+
members: aliases,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
const repos = new Set(members.map((m) => (m.purl ?? '').split('#')[0]).filter((r) => r && !r.startsWith('external:')));
|
|
85
|
+
if (repos.size > 1) {
|
|
86
|
+
out.push({
|
|
87
|
+
target: key,
|
|
88
|
+
kind: 'spans_repos',
|
|
89
|
+
message: `process "${key}" spans ${repos.size} repo keys (${[...repos].join(', ')}) — a C4 container cannot straddle a system boundary`,
|
|
90
|
+
members: aliases,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
const stores = members.filter((m) => m.construct === 'store');
|
|
94
|
+
const unclassified = stores.filter((m) => !storageOf(m));
|
|
95
|
+
if (unclassified.length > 0) {
|
|
96
|
+
out.push({
|
|
97
|
+
target: key,
|
|
98
|
+
kind: 'store_unclassified',
|
|
99
|
+
message: `${unclassified.length} store(s) in "${key}" declare no storage kind (${unclassified.map((m) => m.alias).join(', ')}) — decide whether each is a C4 data store or an internal detail`,
|
|
100
|
+
members: unclassified.map((m) => m.alias),
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
return out;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Suggest merges between container keys that share a trailing role.
|
|
107
|
+
*
|
|
108
|
+
* `subsystems-studio/host` and `principal-studio/host` are the same role under
|
|
109
|
+
* two app names. This is a *suggestion*, never a merge — the whole question is
|
|
110
|
+
* whether they are one process or two, and only the user knows.
|
|
111
|
+
*/
|
|
112
|
+
export function suggestMerges(rollup) {
|
|
113
|
+
const byRole = new Map();
|
|
114
|
+
for (const { key } of rollup) {
|
|
115
|
+
const slash = key.lastIndexOf('/');
|
|
116
|
+
if (slash <= 0)
|
|
117
|
+
continue; // a bare key has no app/role shape
|
|
118
|
+
const role = key.slice(slash + 1);
|
|
119
|
+
const list = byRole.get(role) ?? [];
|
|
120
|
+
list.push(key);
|
|
121
|
+
byRole.set(role, list);
|
|
122
|
+
}
|
|
123
|
+
const out = [];
|
|
124
|
+
for (const [role, keys] of [...byRole].sort((a, b) => a[0].localeCompare(b[0]))) {
|
|
125
|
+
if (keys.length < 2)
|
|
126
|
+
continue;
|
|
127
|
+
out.push({
|
|
128
|
+
role,
|
|
129
|
+
keys: [...keys].sort(),
|
|
130
|
+
reason: `${keys.length} process keys end in "/${role}" (${keys.sort().join(', ')}) — one deployable unit under two names, or two units?`,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
return out;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Compose a suggested association set from a derived rollup.
|
|
137
|
+
*
|
|
138
|
+
* This is the agent's starting point: every derived key becomes one proposed
|
|
139
|
+
* association, shaped by the mechanical evidence. Nothing here is accepted —
|
|
140
|
+
* `buildAssociations` is a convenience for authoring, not an oracle.
|
|
141
|
+
*/
|
|
142
|
+
export function buildAssociations(options) {
|
|
143
|
+
const merged = new Map();
|
|
144
|
+
for (const m of options.merges ?? []) {
|
|
145
|
+
for (const k of m.keys)
|
|
146
|
+
merged.set(k, m.id);
|
|
147
|
+
}
|
|
148
|
+
const byId = new Map();
|
|
149
|
+
for (const entry of options.rollup) {
|
|
150
|
+
const assocId = merged.get(entry.key);
|
|
151
|
+
const id = assocId ?? `container:${entry.key}`;
|
|
152
|
+
const concerns = deriveConcerns(entry.key, entry.members, { frameworks: entry.frameworks });
|
|
153
|
+
const hasStore = entry.members.some((m) => m.construct === 'store');
|
|
154
|
+
const tech = entry.frameworks.length > 0 ? entry.frameworks.join(' + ') : undefined;
|
|
155
|
+
const existing = byId.get(id);
|
|
156
|
+
if (existing) {
|
|
157
|
+
// Folded into an existing merge group — keep one element, add the key.
|
|
158
|
+
if (!existing.sourceKeys.includes(entry.key))
|
|
159
|
+
existing.sourceKeys.push(entry.key);
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
byId.set(id, {
|
|
163
|
+
id,
|
|
164
|
+
level: 'container',
|
|
165
|
+
sourceKeys: [entry.key],
|
|
166
|
+
label: entry.key,
|
|
167
|
+
type: inferType(entry.members, concerns),
|
|
168
|
+
technology: tech,
|
|
169
|
+
state: 'proposed',
|
|
170
|
+
rationale: concerns.map((c) => c.message).join(' ') || undefined,
|
|
171
|
+
author: options.author,
|
|
172
|
+
});
|
|
173
|
+
void hasStore;
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
repoKey: options.repoKey,
|
|
177
|
+
associations: [...byId.values()].sort((a, b) => a.id.localeCompare(b.id)),
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* How much evidence backs one association.
|
|
182
|
+
*
|
|
183
|
+
* Computed from the rollup rather than stored, so it never goes stale as
|
|
184
|
+
* models change. Used to pick the survivor of a merge.
|
|
185
|
+
*/
|
|
186
|
+
export function associationWeight(a, memberCount) {
|
|
187
|
+
let n = 0;
|
|
188
|
+
for (const k of a.sourceKeys)
|
|
189
|
+
n += memberCount.get(k) ?? 0;
|
|
190
|
+
return n;
|
|
191
|
+
}
|
|
192
|
+
/** Best mechanical guess at a C4 element type, from the evidence available. */
|
|
193
|
+
function inferType(members, concerns) {
|
|
194
|
+
if (concerns.some((c) => c.kind === 'library_shaped'))
|
|
195
|
+
return 'library';
|
|
196
|
+
const stores = members.filter((m) => m.construct === 'store');
|
|
197
|
+
if (stores.length > 0) {
|
|
198
|
+
// Only call it a data store when the storage kind says so; otherwise the
|
|
199
|
+
// store may just be an in-memory detail of the application.
|
|
200
|
+
const persists = stores.some((m) => storageOf(m) === 'external' || storageOf(m) === 'disk');
|
|
201
|
+
return persists ? 'data-store' : 'application';
|
|
202
|
+
}
|
|
203
|
+
return 'application';
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Fold a decided merge into an association set.
|
|
207
|
+
*
|
|
208
|
+
* Two derived keys that are really one container have to become ONE
|
|
209
|
+
* association claiming BOTH keys — not two associations, and not one
|
|
210
|
+
* association whose key was rewritten to the other's id. `toC4` collapses a
|
|
211
|
+
* box per association id, so a key must stay a key all the way through or the
|
|
212
|
+
* merge silently does nothing.
|
|
213
|
+
*
|
|
214
|
+
* ## Which side survives
|
|
215
|
+
*
|
|
216
|
+
* The **largest** side wins, not the caller's choice. `subsystems-studio/host`
|
|
217
|
+
* holds 113 components and `principal-studio/host` holds 1; folding the big
|
|
218
|
+
* one into the small one would leave the box labelled after an almost-empty
|
|
219
|
+
* process and lose its confirmed technology. Merging is a dedup, so the
|
|
220
|
+
* survivor should be the one carrying the evidence.
|
|
221
|
+
*
|
|
222
|
+
* Returns a new set; the input is untouched. Idempotent: merging an already
|
|
223
|
+
* merged set changes nothing.
|
|
224
|
+
*/
|
|
225
|
+
export function mergeAssociations(associations, keys,
|
|
226
|
+
/**
|
|
227
|
+
* Optional caller override — skip it to get the evidence-driven default.
|
|
228
|
+
*/
|
|
229
|
+
preferKey,
|
|
230
|
+
/**
|
|
231
|
+
* Components per derived key, from the rollup. This is what decides the
|
|
232
|
+
* survivor when every side claims a single key, which is the common case:
|
|
233
|
+
* `subsystems-studio/host` and `principal-studio/host` each hold exactly one
|
|
234
|
+
* derived key, so key count cannot break the tie.
|
|
235
|
+
*/
|
|
236
|
+
memberCount) {
|
|
237
|
+
const wanted = [...new Set(keys.map((k) => k.trim()).filter(Boolean))];
|
|
238
|
+
if (wanted.length < 2)
|
|
239
|
+
return [...associations];
|
|
240
|
+
const involved = associations.filter((a) => a.sourceKeys.some((k) => wanted.includes(k)));
|
|
241
|
+
if (involved.length < 2)
|
|
242
|
+
return [...associations];
|
|
243
|
+
const survivor = (preferKey ? involved.find((a) => a.sourceKeys.includes(preferKey.trim())) : undefined) ??
|
|
244
|
+
[...involved].sort((a, b) => {
|
|
245
|
+
const wa = associationWeight(a, memberCount ?? new Map());
|
|
246
|
+
const wb = associationWeight(b, memberCount ?? new Map());
|
|
247
|
+
if (wa !== wb)
|
|
248
|
+
return wb - wa;
|
|
249
|
+
// No evidence either way: stable, and least surprising.
|
|
250
|
+
return a.id.localeCompare(b.id);
|
|
251
|
+
})[0];
|
|
252
|
+
const absorbed = involved.filter((a) => a.id !== survivor.id);
|
|
253
|
+
const absorbedIds = new Set(absorbed.map((a) => a.id));
|
|
254
|
+
const merged = {
|
|
255
|
+
...survivor,
|
|
256
|
+
sourceKeys: [...new Set([...survivor.sourceKeys, ...absorbed.flatMap((a) => a.sourceKeys)])].sort(),
|
|
257
|
+
rationale: [survivor.rationale, ...absorbed.map((a) => a.rationale)].filter(Boolean).join(' | ') || undefined,
|
|
258
|
+
};
|
|
259
|
+
return [...associations.filter((a) => !absorbedIds.has(a.id) && a.id !== survivor.id), merged].sort((a, b) => a.id.localeCompare(b.id));
|
|
260
|
+
}
|
|
261
|
+
/** Summary counts for the confirm UI: how much is proposed vs accepted. */
|
|
262
|
+
export function summarizeAssociations(model, associations) {
|
|
263
|
+
const accepted = associations.filter((a) => a.state === 'accepted');
|
|
264
|
+
const proposed = associations.filter((a) => a.state === 'proposed');
|
|
265
|
+
const rejected = associations.filter((a) => a.state === 'rejected');
|
|
266
|
+
const confirmedIds = new Set(accepted.map((a) => a.id));
|
|
267
|
+
const mergedAway = accepted.reduce((n, a) => n + (a.sourceKeys.length - 1), 0);
|
|
268
|
+
// A raw derived key with no association is unconfirmed, not wrong.
|
|
269
|
+
const derivedKeys = new Set();
|
|
270
|
+
for (const n of model.nodes)
|
|
271
|
+
if (n.kind === 'container')
|
|
272
|
+
derivedKeys.add(n.key ?? n.id);
|
|
273
|
+
const unconfirmed = [...derivedKeys].filter((k) => ![...confirmedIds].some((id) => associations.find((a) => a.id === id)?.sourceKeys.includes(k))).length;
|
|
274
|
+
const missingTechnology = model.nodes.filter((n) => n.kind === 'container' && !n.decoration?.technology).length;
|
|
275
|
+
return {
|
|
276
|
+
confirmed: accepted.length,
|
|
277
|
+
proposed: proposed.length,
|
|
278
|
+
rejected: rejected.length,
|
|
279
|
+
mergedAway,
|
|
280
|
+
missingTechnology,
|
|
281
|
+
needsDecision: proposed.length + unconfirmed,
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=c4Associations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"c4Associations.js","sourceRoot":"","sources":["../../src/subsystem/c4Associations.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { type Edge, type Node } from '@xyflow/react';
|
|
15
15
|
import type { GraphifyComponentDetail } from '../graphify';
|
|
16
|
-
import type { SubsystemConstructDeclaration } from '@principal-ai/subsystems-core';
|
|
16
|
+
import type { SubsystemConstructDeclaration, SubsystemComponentRemoval } from '@principal-ai/subsystems-core';
|
|
17
17
|
import type { SubsystemDeclarationRef } from './declarationRef';
|
|
18
18
|
/**
|
|
19
19
|
* Structured declaration shape — the document's own contract, re-exported from
|
|
@@ -188,6 +188,15 @@ export interface SubsystemComponent {
|
|
|
188
188
|
* `construct` (intended shape) and `role` (topology).
|
|
189
189
|
*/
|
|
190
190
|
proposed?: boolean;
|
|
191
|
+
/**
|
|
192
|
+
* The claim was real but its source is gone upstream — deleted or renamed.
|
|
193
|
+
* The inverse of `proposed`; verification skips source checks the same way.
|
|
194
|
+
* Renders with a slate border and a `deprecated` badge that opens the removal
|
|
195
|
+
* provenance. Transitional — a cleanup pass removes the node.
|
|
196
|
+
*/
|
|
197
|
+
deprecated?: boolean;
|
|
198
|
+
/** Which commit removed this claim's source, and why. Present when deprecated. */
|
|
199
|
+
removedIn?: SubsystemComponentRemoval;
|
|
191
200
|
/**
|
|
192
201
|
* Semantic role — where the node sits in the topology (boundary element,
|
|
193
202
|
* external system), orthogonal to `construct` (what it is). Drives the
|
|
@@ -742,6 +751,20 @@ export declare const FRAMEWORK_BADGE_COLOR: Record<string, string>;
|
|
|
742
751
|
export declare const ROLE_LABEL: Record<SubsystemComponentRole, string>;
|
|
743
752
|
/** Right-badge accent for `proposed: true` (no role, or combined with role). */
|
|
744
753
|
export declare const PROPOSED_COLOR = "#b8860b";
|
|
754
|
+
/**
|
|
755
|
+
* Border accent for `deprecated: true` — the claim was real, its source is gone.
|
|
756
|
+
* A desaturated slate rather than true silver: role badges already own silver
|
|
757
|
+
* (`ROLE_COLOR.entry`), and a retired claim should not read as a boundary
|
|
758
|
+
* element. Transitional state — a cleanup pass removes the node.
|
|
759
|
+
*/
|
|
760
|
+
export declare const DEPRECATED_COLOR = "#6b7280";
|
|
761
|
+
/** Right-badge label + accent for `deprecated: true`; null when not deprecated. */
|
|
762
|
+
export declare function deprecatedBadgeLabel(component: {
|
|
763
|
+
deprecated?: boolean;
|
|
764
|
+
}): string | null;
|
|
765
|
+
export declare function deprecatedBadgeColor(component: {
|
|
766
|
+
deprecated?: boolean;
|
|
767
|
+
}): string | null;
|
|
745
768
|
/**
|
|
746
769
|
* Top-right badge label: proposed wins over role when both are set
|
|
747
770
|
* (proposed is the temporary exception to scan for; role stays on the model).
|
|
@@ -811,6 +834,7 @@ export declare function nodeMinWidthForBadges(component: {
|
|
|
811
834
|
stereotype?: string;
|
|
812
835
|
role?: SubsystemComponentRole;
|
|
813
836
|
proposed?: boolean;
|
|
837
|
+
deprecated?: boolean;
|
|
814
838
|
entityKind?: string;
|
|
815
839
|
declaration?: AnyComponentDetail;
|
|
816
840
|
}): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/subsystem/model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/subsystem/model.ts"],"names":[],"mappings":"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"}
|
package/dist/subsystem/model.js
CHANGED
|
@@ -1036,6 +1036,20 @@ export const ROLE_LABEL = {
|
|
|
1036
1036
|
};
|
|
1037
1037
|
/** Right-badge accent for `proposed: true` (no role, or combined with role). */
|
|
1038
1038
|
export const PROPOSED_COLOR = '#b8860b'; // darkgoldenrod — not-yet-in-source
|
|
1039
|
+
/**
|
|
1040
|
+
* Border accent for `deprecated: true` — the claim was real, its source is gone.
|
|
1041
|
+
* A desaturated slate rather than true silver: role badges already own silver
|
|
1042
|
+
* (`ROLE_COLOR.entry`), and a retired claim should not read as a boundary
|
|
1043
|
+
* element. Transitional state — a cleanup pass removes the node.
|
|
1044
|
+
*/
|
|
1045
|
+
export const DEPRECATED_COLOR = '#6b7280'; // slate — retired, awaiting removal
|
|
1046
|
+
/** Right-badge label + accent for `deprecated: true`; null when not deprecated. */
|
|
1047
|
+
export function deprecatedBadgeLabel(component) {
|
|
1048
|
+
return component.deprecated === true ? 'deprecated' : null;
|
|
1049
|
+
}
|
|
1050
|
+
export function deprecatedBadgeColor(component) {
|
|
1051
|
+
return component.deprecated === true ? DEPRECATED_COLOR : null;
|
|
1052
|
+
}
|
|
1039
1053
|
/**
|
|
1040
1054
|
* Top-right badge label: proposed wins over role when both are set
|
|
1041
1055
|
* (proposed is the temporary exception to scan for; role stays on the model).
|
|
@@ -1154,6 +1168,7 @@ export function nodeMinWidthForBadges(component) {
|
|
|
1154
1168
|
const rightBadges = [
|
|
1155
1169
|
storageBadgeLabel(component),
|
|
1156
1170
|
rightBadgeLabel(component),
|
|
1171
|
+
deprecatedBadgeLabel(component),
|
|
1157
1172
|
].filter((l) => l != null);
|
|
1158
1173
|
if (rightBadges.length === 0) {
|
|
1159
1174
|
return Math.max(NODE_CSS_MIN_WIDTH, BADGE_NODE_BORDER + BADGE_EDGE_INSET + left + BADGE_EDGE_INSET + BADGE_NODE_BORDER);
|