@principal-ai/subsystems-react 0.50.0 → 0.51.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/pierre/PierreTrailCodeView.d.ts +1 -1
- package/dist/pierre/PierreTrailCodeView.d.ts.map +1 -1
- package/dist/pierre/PierreTrailCodeView.js +44 -21
- package/dist/pierre/PierreTrailCodeView.js.map +1 -1
- package/dist/stories/Subsystem/C4Graph/c4ProposedElements.fixture.d.ts +493 -0
- package/dist/stories/Subsystem/C4Graph/c4ProposedElements.fixture.d.ts.map +1 -0
- package/dist/stories/Subsystem/C4Graph/c4ProposedElements.fixture.js +329 -0
- package/dist/stories/Subsystem/C4Graph/c4ProposedElements.fixture.js.map +1 -0
- package/dist/subsystem/C4Graph.d.ts +2 -2
- package/dist/subsystem/C4Graph.d.ts.map +1 -1
- package/dist/subsystem/C4Graph.js +38 -73
- package/dist/subsystem/C4Graph.js.map +1 -1
- package/dist/subsystem/C4NodeCard.d.ts +119 -0
- package/dist/subsystem/C4NodeCard.d.ts.map +1 -0
- package/dist/subsystem/C4NodeCard.js +223 -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/FileDrawer.d.ts.map +1 -1
- package/dist/subsystem/FileDrawer.js +20 -21
- package/dist/subsystem/FileDrawer.js.map +1 -1
- package/dist/subsystem/IssueList.js +1 -1
- package/dist/subsystem/IssueList.js.map +1 -1
- package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -1
- package/dist/subsystem/SubsystemComponentGraph.js +13 -4
- package/dist/subsystem/SubsystemComponentGraph.js.map +1 -1
- package/dist/subsystem/c4.d.ts +272 -0
- package/dist/subsystem/c4.d.ts.map +1 -0
- package/dist/subsystem/c4.js +322 -0
- package/dist/subsystem/c4.js.map +1 -0
- package/dist/subsystem/c4Evidence.d.ts +143 -0
- package/dist/subsystem/c4Evidence.d.ts.map +1 -0
- package/dist/subsystem/c4Evidence.js +240 -0
- package/dist/subsystem/c4Evidence.js.map +1 -0
- package/dist/subsystem/model.d.ts +27 -7
- 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/package.json +3 -2
- package/src/index.ts +37 -0
- package/src/pierre/PierreTrailCodeView.tsx +49 -21
- package/src/stories/Subsystem/C4Graph/C4NodeGallery.stories.tsx +413 -0
- package/src/stories/Subsystem/C4Graph/ProposedElements.stories.tsx +293 -0
- package/src/stories/Subsystem/C4Graph/c4ProposedElements.fixture.ts +366 -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/IssueOverlay.stories.tsx +1 -1
- package/src/stories/Subsystem/ComponentGraph/Issues.stories.tsx +1 -1
- package/src/stories/Subsystem/ComponentGraph/{Flows.stories.tsx → Trails.stories.tsx} +4 -4
- package/src/subsystem/C4Graph.tsx +81 -107
- package/src/subsystem/C4NodeCard.test.ts +301 -0
- package/src/subsystem/C4NodeCard.tsx +301 -0
- package/src/subsystem/DiagnosticToggle.tsx +58 -4
- package/src/subsystem/FileDrawer.tsx +32 -34
- package/src/subsystem/IssueList.tsx +1 -1
- package/src/subsystem/SubsystemComponentGraph.tsx +13 -5
- package/src/subsystem/c4.test.ts +573 -0
- package/src/subsystem/c4.ts +558 -0
- package/src/subsystem/c4Evidence.test.ts +386 -0
- package/src/subsystem/c4Evidence.ts +329 -0
- package/src/subsystem/model.ts +36 -7
- package/src/subsystem/nodes.tsx +124 -5
- package/dist/stories/Subsystem/C4Graph/c4Fixture.d.ts +0 -3
- package/dist/stories/Subsystem/C4Graph/c4Fixture.d.ts.map +0 -1
- package/dist/stories/Subsystem/C4Graph/c4Fixture.js +0 -2
- package/dist/stories/Subsystem/C4Graph/c4Fixture.js.map +0 -1
- package/dist/subsystem/toC4.d.ts +0 -95
- package/dist/subsystem/toC4.d.ts.map +0 -1
- package/dist/subsystem/toC4.js +0 -192
- package/dist/subsystem/toC4.js.map +0 -1
- package/src/stories/Subsystem/C4Graph/C4Container.stories.tsx +0 -101
- package/src/stories/Subsystem/C4Graph/c4Fixture.ts +0 -6
- package/src/subsystem/toC4.test.ts +0 -114
- package/src/subsystem/toC4.ts +0 -273
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C4 evidence — what an agent needs in order to propose elements.
|
|
3
|
+
*
|
|
4
|
+
* This module does not decide anything. It answers "what is worth asking
|
|
5
|
+
* about?" so an agent can go and read the source, then propose a
|
|
6
|
+
* `C4Element` with a rationale. The questions come from the C4 notation
|
|
7
|
+
* rules the document cannot satisfy on its own:
|
|
8
|
+
*
|
|
9
|
+
* - every container needs a technology
|
|
10
|
+
* - every element needs a description
|
|
11
|
+
* - a container is a runtime boundary, so a library is not one
|
|
12
|
+
* - a container cannot straddle two software systems
|
|
13
|
+
*
|
|
14
|
+
* The output is a set of concerns. Resolving one is the agent's job, and the
|
|
15
|
+
* answer lands in an element's `rationale`.
|
|
16
|
+
*/
|
|
17
|
+
import type { C4ContainerKind, C4Element, C4ElementSet } from './c4';
|
|
18
|
+
/** What a concern is about — a derived key, or an existing element id. */
|
|
19
|
+
export interface C4Concern {
|
|
20
|
+
/** The process key, module path, or element id this concerns. */
|
|
21
|
+
target: string;
|
|
22
|
+
kind: C4ConcernKind;
|
|
23
|
+
message: string;
|
|
24
|
+
/** Aliases that triggered it. */
|
|
25
|
+
members?: string[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The questions worth a human's attention.
|
|
29
|
+
*
|
|
30
|
+
* Each maps to something an agent cannot settle by reading a string — it has
|
|
31
|
+
* to open the source, or ask the user.
|
|
32
|
+
*/
|
|
33
|
+
export type C4ConcernKind =
|
|
34
|
+
/** two or more process keys may be the same deployable unit */
|
|
35
|
+
'merge_candidate'
|
|
36
|
+
/** exactly one member — a lone function is not a deployable unit */
|
|
37
|
+
| 'singleton'
|
|
38
|
+
/** no member executes at runtime — a library is not a container */
|
|
39
|
+
| 'library_shaped'
|
|
40
|
+
/** a store whose storage kind was never decided */
|
|
41
|
+
| 'store_unclassified'
|
|
42
|
+
/** members claim more than one repo — a container cannot straddle systems */
|
|
43
|
+
| 'spans_repos'
|
|
44
|
+
/** an external with no resolvable identity */
|
|
45
|
+
| 'external_unidentified'
|
|
46
|
+
/** a runtime component with no process at all */
|
|
47
|
+
| 'unassigned'
|
|
48
|
+
/** C4 requires technology on every container */
|
|
49
|
+
| 'missing_technology';
|
|
50
|
+
/** The fields a concern check reads off a component. */
|
|
51
|
+
export interface C4MemberView {
|
|
52
|
+
alias: string;
|
|
53
|
+
construct: string;
|
|
54
|
+
purl: string;
|
|
55
|
+
process?: string;
|
|
56
|
+
framework?: string;
|
|
57
|
+
module?: string;
|
|
58
|
+
role?: string;
|
|
59
|
+
declaration?: unknown;
|
|
60
|
+
}
|
|
61
|
+
/** True when a component runs, and so can be part of a deployable unit. */
|
|
62
|
+
export declare function isRuntimeConstruct(construct: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Derive the questions worth asking about one candidate element.
|
|
65
|
+
*
|
|
66
|
+
* Pure over the rollup, so it runs identically against a single model, the 40
|
|
67
|
+
* composed models, or a fixture. Pure *questions* — it never proposes an
|
|
68
|
+
* answer, because the answers are architectural.
|
|
69
|
+
*/
|
|
70
|
+
export declare function deriveConcerns(key: string, members: readonly C4MemberView[], tech?: {
|
|
71
|
+
frameworks: readonly string[];
|
|
72
|
+
}): C4Concern[];
|
|
73
|
+
/**
|
|
74
|
+
* Suggest merges between keys that share a trailing role.
|
|
75
|
+
*
|
|
76
|
+
* `subsystems-studio/host` and `principal-studio/host` are the same role under
|
|
77
|
+
* two app names. This is a *question*, never a merge — only the user knows
|
|
78
|
+
* whether they are one process or two.
|
|
79
|
+
*/
|
|
80
|
+
export declare function suggestMerges(rollup: ReadonlyArray<{
|
|
81
|
+
key: string;
|
|
82
|
+
memberCount: number;
|
|
83
|
+
}>): Array<{
|
|
84
|
+
role: string;
|
|
85
|
+
keys: string[];
|
|
86
|
+
reason: string;
|
|
87
|
+
}>;
|
|
88
|
+
/**
|
|
89
|
+
* Runtime components that state no `process` at all.
|
|
90
|
+
*
|
|
91
|
+
* These are the components an agent cannot place by inference, because there
|
|
92
|
+
* is nothing to infer from. They are a standing question, not a per-element
|
|
93
|
+
* concern.
|
|
94
|
+
*/
|
|
95
|
+
export declare function findUnassigned(members: readonly C4MemberView[]): C4MemberView[];
|
|
96
|
+
/**
|
|
97
|
+
* Fold a decided merge into an element set.
|
|
98
|
+
*
|
|
99
|
+
* Two process keys that are really one container become ONE element holding
|
|
100
|
+
* both sets of members. The survivor keeps the id, label, and confirmed
|
|
101
|
+
* attributes; the other disappears and its members move across.
|
|
102
|
+
*
|
|
103
|
+
* Which side survives is the **evidence-heavy** one — the element holding more
|
|
104
|
+
* members — because folding the 113-member host into the 1-member one would
|
|
105
|
+
* leave the box labelled after an almost-empty process and lose its confirmed
|
|
106
|
+
* technology. Pass `preferId` to override.
|
|
107
|
+
*
|
|
108
|
+
* Returns a new set; the input is untouched. Idempotent.
|
|
109
|
+
*/
|
|
110
|
+
export declare function mergeElements(elements: readonly C4Element[], derivedFromKeys: readonly string[], preferId?: string, memberCountByKey?: ReadonlyMap<string, number>): C4Element[];
|
|
111
|
+
/**
|
|
112
|
+
* A starting point for an agent: one proposed element per derived key, shaped
|
|
113
|
+
* by the mechanical evidence, with the open questions in the rationale.
|
|
114
|
+
*
|
|
115
|
+
* Every element comes back `proposed`. This is a scaffold to edit and argue
|
|
116
|
+
* with — not an answer, and never `accepted`.
|
|
117
|
+
*/
|
|
118
|
+
export declare function proposeElements(options: {
|
|
119
|
+
repoKey: string;
|
|
120
|
+
rollup: ReadonlyArray<{
|
|
121
|
+
key: string;
|
|
122
|
+
members: readonly C4MemberView[];
|
|
123
|
+
frameworks: readonly string[];
|
|
124
|
+
}>;
|
|
125
|
+
author?: string;
|
|
126
|
+
}): C4ElementSet;
|
|
127
|
+
/**
|
|
128
|
+
* A first guess at what sort of container this is, offered as a *default* for
|
|
129
|
+
* the agent to override.
|
|
130
|
+
*
|
|
131
|
+
* Note there is no `library` answer, even for a library-shaped group. C4 says
|
|
132
|
+
* a module "typically" is not an element at all, so the honest response to a
|
|
133
|
+
* library is a review comment: the `library_shaped` concern carries the
|
|
134
|
+
* question, and the element is proposed as `application` for a person to
|
|
135
|
+
* reject or demote. There is deliberately no `concerns` parameter here for the
|
|
136
|
+
* caller to consult — passing one would only invite a fifth kind back into the
|
|
137
|
+
* vocabulary.
|
|
138
|
+
*
|
|
139
|
+
* The store split is deliberately conservative: only durable storage becomes
|
|
140
|
+
* `data-store`, because over-claiming that is the more damaging error.
|
|
141
|
+
*/
|
|
142
|
+
export declare function suggestContainerKind(members: readonly C4MemberView[]): C4ContainerKind;
|
|
143
|
+
//# sourceMappingURL=c4Evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"c4Evidence.d.ts","sourceRoot":"","sources":["../../src/subsystem/c4Evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAe,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAElF,0EAA0E;AAC1E,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa;AACvB,+DAA+D;AAC7D,iBAAiB;AACnB,oEAAoE;GAClE,WAAW;AACb,mEAAmE;GACjE,gBAAgB;AAClB,mDAAmD;GACjD,oBAAoB;AACtB,6EAA6E;GAC3E,aAAa;AACf,8CAA8C;GAC5C,uBAAuB;AACzB,iDAAiD;GAC/C,YAAY;AACd,gDAAgD;GAC9C,oBAAoB,CAAC;AAEzB,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAUD,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,IAAI,GAAE;IAAE,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAAuB,GAC3D,SAAS,EAAE,CAwEb;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1D,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBzD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,YAAY,EAAE,CAE/E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,QAAQ,CAAC,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7C,SAAS,EAAE,CAwCb;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;QAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACxG,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,YAAY,CAyBd;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,eAAe,CAOtF"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C4 evidence — what an agent needs in order to propose elements.
|
|
3
|
+
*
|
|
4
|
+
* This module does not decide anything. It answers "what is worth asking
|
|
5
|
+
* about?" so an agent can go and read the source, then propose a
|
|
6
|
+
* `C4Element` with a rationale. The questions come from the C4 notation
|
|
7
|
+
* rules the document cannot satisfy on its own:
|
|
8
|
+
*
|
|
9
|
+
* - every container needs a technology
|
|
10
|
+
* - every element needs a description
|
|
11
|
+
* - a container is a runtime boundary, so a library is not one
|
|
12
|
+
* - a container cannot straddle two software systems
|
|
13
|
+
*
|
|
14
|
+
* The output is a set of concerns. Resolving one is the agent's job, and the
|
|
15
|
+
* answer lands in an element's `rationale`.
|
|
16
|
+
*/
|
|
17
|
+
/** Constructs that execute at runtime — the only things a container can be. */
|
|
18
|
+
const RUNTIME_CONSTRUCTS = new Set(['function', 'class', 'custom_entity']);
|
|
19
|
+
function storageOf(m) {
|
|
20
|
+
const d = m.declaration;
|
|
21
|
+
return d?.kind === 'store' ? d.storage : undefined;
|
|
22
|
+
}
|
|
23
|
+
/** True when a component runs, and so can be part of a deployable unit. */
|
|
24
|
+
export function isRuntimeConstruct(construct) {
|
|
25
|
+
return RUNTIME_CONSTRUCTS.has(construct);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Derive the questions worth asking about one candidate element.
|
|
29
|
+
*
|
|
30
|
+
* Pure over the rollup, so it runs identically against a single model, the 40
|
|
31
|
+
* composed models, or a fixture. Pure *questions* — it never proposes an
|
|
32
|
+
* answer, because the answers are architectural.
|
|
33
|
+
*/
|
|
34
|
+
export function deriveConcerns(key, members, tech = { frameworks: [] }) {
|
|
35
|
+
const out = [];
|
|
36
|
+
const aliases = members.map((m) => m.alias);
|
|
37
|
+
const runtime = members.filter((m) => isRuntimeConstruct(m.construct));
|
|
38
|
+
if (members.length === 1) {
|
|
39
|
+
out.push({
|
|
40
|
+
target: key,
|
|
41
|
+
kind: 'singleton',
|
|
42
|
+
message: `process "${key}" has exactly one member (${aliases[0]}) — a lone function is not a deployable unit`,
|
|
43
|
+
members: aliases,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
// No member executes at runtime ⇒ this cannot be a deployable unit,
|
|
47
|
+
// regardless of how many members it has. A lone interface and a package of
|
|
48
|
+
// interfaces fail the same way.
|
|
49
|
+
if (members.length > 0 && runtime.length === 0) {
|
|
50
|
+
out.push({
|
|
51
|
+
target: key,
|
|
52
|
+
kind: 'library_shaped',
|
|
53
|
+
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`,
|
|
54
|
+
members: aliases,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (runtime.length > 0 && tech.frameworks.length === 0) {
|
|
58
|
+
out.push({
|
|
59
|
+
target: key,
|
|
60
|
+
kind: 'missing_technology',
|
|
61
|
+
message: `container "${key}" has no framework signal — C4 requires a technology on every container`,
|
|
62
|
+
members: aliases,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
const repos = new Set(members
|
|
66
|
+
.map((m) => (m.purl ?? '').split('#')[0])
|
|
67
|
+
.filter((r) => r && !r.startsWith('external:')));
|
|
68
|
+
if (repos.size > 1) {
|
|
69
|
+
out.push({
|
|
70
|
+
target: key,
|
|
71
|
+
kind: 'spans_repos',
|
|
72
|
+
message: `process "${key}" spans ${repos.size} repo keys (${[...repos].join(', ')}) — a C4 container cannot straddle a system boundary`,
|
|
73
|
+
members: aliases,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
const unclassified = members.filter((m) => m.construct === 'store' && !storageOf(m));
|
|
77
|
+
if (unclassified.length > 0) {
|
|
78
|
+
out.push({
|
|
79
|
+
target: key,
|
|
80
|
+
kind: 'store_unclassified',
|
|
81
|
+
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`,
|
|
82
|
+
members: unclassified.map((m) => m.alias),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
const unidentified = members.filter((m) => m.construct === 'external' && (!m.purl || m.purl === 'external' || m.purl.startsWith('external:proposed')));
|
|
86
|
+
if (unidentified.length > 0) {
|
|
87
|
+
out.push({
|
|
88
|
+
target: key,
|
|
89
|
+
kind: 'external_unidentified',
|
|
90
|
+
message: `${unidentified.length} external(s) have no resolvable identity (${unidentified.map((m) => m.alias).join(', ')}) — a C4 box named "external" is not a diagram`,
|
|
91
|
+
members: unidentified.map((m) => m.alias),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return out;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Suggest merges between keys that share a trailing role.
|
|
98
|
+
*
|
|
99
|
+
* `subsystems-studio/host` and `principal-studio/host` are the same role under
|
|
100
|
+
* two app names. This is a *question*, never a merge — only the user knows
|
|
101
|
+
* whether they are one process or two.
|
|
102
|
+
*/
|
|
103
|
+
export function suggestMerges(rollup) {
|
|
104
|
+
const byRole = new Map();
|
|
105
|
+
for (const { key } of rollup) {
|
|
106
|
+
const slash = key.lastIndexOf('/');
|
|
107
|
+
if (slash <= 0)
|
|
108
|
+
continue; // a bare key has no app/role shape
|
|
109
|
+
const role = key.slice(slash + 1);
|
|
110
|
+
const list = byRole.get(role) ?? [];
|
|
111
|
+
list.push(key);
|
|
112
|
+
byRole.set(role, list);
|
|
113
|
+
}
|
|
114
|
+
const out = [];
|
|
115
|
+
for (const [role, keys] of [...byRole].sort((a, b) => a[0].localeCompare(b[0]))) {
|
|
116
|
+
if (keys.length < 2)
|
|
117
|
+
continue;
|
|
118
|
+
out.push({
|
|
119
|
+
role,
|
|
120
|
+
keys: [...keys].sort(),
|
|
121
|
+
reason: `${keys.length} process keys end in "/${role}" (${[...keys].sort().join(', ')}) — one deployable unit under two names, or two units?`,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return out;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Runtime components that state no `process` at all.
|
|
128
|
+
*
|
|
129
|
+
* These are the components an agent cannot place by inference, because there
|
|
130
|
+
* is nothing to infer from. They are a standing question, not a per-element
|
|
131
|
+
* concern.
|
|
132
|
+
*/
|
|
133
|
+
export function findUnassigned(members) {
|
|
134
|
+
return members.filter((m) => !m.process && isRuntimeConstruct(m.construct));
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Fold a decided merge into an element set.
|
|
138
|
+
*
|
|
139
|
+
* Two process keys that are really one container become ONE element holding
|
|
140
|
+
* both sets of members. The survivor keeps the id, label, and confirmed
|
|
141
|
+
* attributes; the other disappears and its members move across.
|
|
142
|
+
*
|
|
143
|
+
* Which side survives is the **evidence-heavy** one — the element holding more
|
|
144
|
+
* members — because folding the 113-member host into the 1-member one would
|
|
145
|
+
* leave the box labelled after an almost-empty process and lose its confirmed
|
|
146
|
+
* technology. Pass `preferId` to override.
|
|
147
|
+
*
|
|
148
|
+
* Returns a new set; the input is untouched. Idempotent.
|
|
149
|
+
*/
|
|
150
|
+
export function mergeElements(elements, derivedFromKeys, preferId, memberCountByKey) {
|
|
151
|
+
const wanted = new Set(derivedFromKeys.map((k) => k.trim()).filter(Boolean));
|
|
152
|
+
if (wanted.size < 2)
|
|
153
|
+
return [...elements];
|
|
154
|
+
const involved = elements.filter((e) => e.derivedFrom?.some((k) => wanted.has(k)));
|
|
155
|
+
if (involved.length < 2)
|
|
156
|
+
return [...elements];
|
|
157
|
+
// Only containers merge. A component has a required `container` field, and
|
|
158
|
+
// folding one into another would silently repoint it at a new parent.
|
|
159
|
+
if (involved.some((e) => e.kind !== 'container'))
|
|
160
|
+
return [...elements];
|
|
161
|
+
const weight = (e) => {
|
|
162
|
+
if (memberCountByKey) {
|
|
163
|
+
let n = 0;
|
|
164
|
+
for (const k of e.derivedFrom ?? [])
|
|
165
|
+
n += memberCountByKey.get(k) ?? 0;
|
|
166
|
+
return n;
|
|
167
|
+
}
|
|
168
|
+
return e.members.length;
|
|
169
|
+
};
|
|
170
|
+
const survivor = (preferId ? involved.find((e) => e.id === preferId) : undefined) ??
|
|
171
|
+
[...involved].sort((a, b) => weight(b) - weight(a) || a.id.localeCompare(b.id))[0];
|
|
172
|
+
const absorbed = involved.filter((e) => e.id !== survivor.id);
|
|
173
|
+
const absorbedIds = new Set(absorbed.map((e) => e.id));
|
|
174
|
+
const merged = {
|
|
175
|
+
...survivor,
|
|
176
|
+
members: [...new Set([...survivor.members, ...absorbed.flatMap((e) => e.members)])],
|
|
177
|
+
derivedFrom: [
|
|
178
|
+
...new Set([...(survivor.derivedFrom ?? []), ...absorbed.flatMap((e) => e.derivedFrom ?? [])]),
|
|
179
|
+
],
|
|
180
|
+
rationale: [survivor.rationale, ...absorbed.map((e) => e.rationale)].filter(Boolean).join(' | ') ||
|
|
181
|
+
undefined,
|
|
182
|
+
};
|
|
183
|
+
return [...elements.filter((e) => e.id !== survivor.id && !absorbedIds.has(e.id)), merged].sort((a, b) => a.id.localeCompare(b.id));
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* A starting point for an agent: one proposed element per derived key, shaped
|
|
187
|
+
* by the mechanical evidence, with the open questions in the rationale.
|
|
188
|
+
*
|
|
189
|
+
* Every element comes back `proposed`. This is a scaffold to edit and argue
|
|
190
|
+
* with — not an answer, and never `accepted`.
|
|
191
|
+
*/
|
|
192
|
+
export function proposeElements(options) {
|
|
193
|
+
const elements = options.rollup.map(({ key, members, frameworks }) => {
|
|
194
|
+
const concerns = deriveConcerns(key, members, { frameworks });
|
|
195
|
+
return {
|
|
196
|
+
id: `container:${key}`,
|
|
197
|
+
kind: 'container',
|
|
198
|
+
members: members.map((m) => m.alias),
|
|
199
|
+
derivedFrom: [key],
|
|
200
|
+
label: key,
|
|
201
|
+
containerKind: suggestContainerKind(members),
|
|
202
|
+
// C4 requires a technology on every container. With no framework signal
|
|
203
|
+
// the honest value is empty and `summarizeElements` reports the gap —
|
|
204
|
+
// inventing "TypeScript" here would be exactly the derivation this
|
|
205
|
+
// module stopped doing.
|
|
206
|
+
technology: frameworks.length > 0 ? frameworks.join(' + ') : '',
|
|
207
|
+
state: 'proposed',
|
|
208
|
+
rationale: concerns.map((c) => c.message).join(' ') || undefined,
|
|
209
|
+
author: options.author,
|
|
210
|
+
};
|
|
211
|
+
});
|
|
212
|
+
return {
|
|
213
|
+
repoKey: options.repoKey,
|
|
214
|
+
elements: elements.sort((a, b) => a.id.localeCompare(b.id)),
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* A first guess at what sort of container this is, offered as a *default* for
|
|
219
|
+
* the agent to override.
|
|
220
|
+
*
|
|
221
|
+
* Note there is no `library` answer, even for a library-shaped group. C4 says
|
|
222
|
+
* a module "typically" is not an element at all, so the honest response to a
|
|
223
|
+
* library is a review comment: the `library_shaped` concern carries the
|
|
224
|
+
* question, and the element is proposed as `application` for a person to
|
|
225
|
+
* reject or demote. There is deliberately no `concerns` parameter here for the
|
|
226
|
+
* caller to consult — passing one would only invite a fifth kind back into the
|
|
227
|
+
* vocabulary.
|
|
228
|
+
*
|
|
229
|
+
* The store split is deliberately conservative: only durable storage becomes
|
|
230
|
+
* `data-store`, because over-claiming that is the more damaging error.
|
|
231
|
+
*/
|
|
232
|
+
export function suggestContainerKind(members) {
|
|
233
|
+
const stores = members.filter((m) => m.construct === 'store');
|
|
234
|
+
if (stores.length > 0) {
|
|
235
|
+
const persists = stores.some((m) => storageOf(m) === 'external' || storageOf(m) === 'disk');
|
|
236
|
+
return persists ? 'data-store' : 'application';
|
|
237
|
+
}
|
|
238
|
+
return 'application';
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=c4Evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"c4Evidence.js","sourceRoot":"","sources":["../../src/subsystem/c4Evidence.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
|
|
@@ -258,12 +267,8 @@ export interface SubsystemComponent {
|
|
|
258
267
|
*/
|
|
259
268
|
declaration?: SubsystemConstructDeclaration;
|
|
260
269
|
/**
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
* as matching the code. `authored` = written by the authoring agent/human
|
|
264
|
-
* to highlight specific inputs/outputs — informative, not checked against
|
|
265
|
-
* source. Declaration without provenance is treated as `authored`; only
|
|
266
|
-
* tooling may claim `verified`.
|
|
270
|
+
* @deprecated No longer used — verification now tracks at the model level
|
|
271
|
+
* via `verifiedAtCommits`. Keeping the field temporarily for migration.
|
|
267
272
|
*/
|
|
268
273
|
declarationProvenance?: SubsystemDeclarationProvenance;
|
|
269
274
|
/**
|
|
@@ -742,6 +747,20 @@ export declare const FRAMEWORK_BADGE_COLOR: Record<string, string>;
|
|
|
742
747
|
export declare const ROLE_LABEL: Record<SubsystemComponentRole, string>;
|
|
743
748
|
/** Right-badge accent for `proposed: true` (no role, or combined with role). */
|
|
744
749
|
export declare const PROPOSED_COLOR = "#b8860b";
|
|
750
|
+
/**
|
|
751
|
+
* Border accent for `deprecated: true` — the claim was real, its source is gone.
|
|
752
|
+
* A desaturated slate rather than true silver: role badges already own silver
|
|
753
|
+
* (`ROLE_COLOR.entry`), and a retired claim should not read as a boundary
|
|
754
|
+
* element. Transitional state — a cleanup pass removes the node.
|
|
755
|
+
*/
|
|
756
|
+
export declare const DEPRECATED_COLOR = "#6b7280";
|
|
757
|
+
/** Right-badge label + accent for `deprecated: true`; null when not deprecated. */
|
|
758
|
+
export declare function deprecatedBadgeLabel(component: {
|
|
759
|
+
deprecated?: boolean;
|
|
760
|
+
}): string | null;
|
|
761
|
+
export declare function deprecatedBadgeColor(component: {
|
|
762
|
+
deprecated?: boolean;
|
|
763
|
+
}): string | null;
|
|
745
764
|
/**
|
|
746
765
|
* Top-right badge label: proposed wins over role when both are set
|
|
747
766
|
* (proposed is the temporary exception to scan for; role stays on the model).
|
|
@@ -811,6 +830,7 @@ export declare function nodeMinWidthForBadges(component: {
|
|
|
811
830
|
stereotype?: string;
|
|
812
831
|
role?: SubsystemComponentRole;
|
|
813
832
|
proposed?: boolean;
|
|
833
|
+
deprecated?: boolean;
|
|
814
834
|
entityKind?: string;
|
|
815
835
|
declaration?: AnyComponentDetail;
|
|
816
836
|
}): 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);
|