yarramate 1.2.0 → 1.4.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/catalogues/core-enrichment.yaml +237 -2
- package/dist/adapters/visual/session-server.js +16 -1
- package/dist/adapters/visual/view-identity.d.ts +1 -1
- package/dist/adapters/visual/view-identity.js +61 -3
- package/dist/adapters/visual/wire.d.ts +30 -0
- package/dist/adapters/visual/workspace-model.d.ts +35 -3
- package/dist/adapters/visual/workspace-model.js +62 -2
- package/dist/ask-command.js +37 -14
- package/dist/cli-support.d.ts +1 -1
- package/dist/cli-support.js +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +26 -5
- package/dist/compiler.d.ts +13 -1
- package/dist/compiler.js +646 -0
- package/dist/concept-drafting.d.ts +13 -2
- package/dist/concept-drafting.js +15 -3
- package/dist/design-command.js +30 -4
- package/dist/evidence.js +25 -0
- package/dist/graph-projection.d.ts +10 -0
- package/dist/graph-projection.js +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/interrogate-command.d.ts +37 -1
- package/dist/interrogate-command.js +93 -42
- package/dist/interrogation-entry.d.ts +1 -1
- package/dist/layout-direction.d.ts +14 -0
- package/dist/layout-direction.js +5 -0
- package/dist/projection.d.ts +22 -6
- package/dist/projection.js +23 -2
- package/dist/relationship-drafting.d.ts +21 -2
- package/dist/relationship-drafting.js +49 -4
- package/dist/subject-references.js +5 -0
- package/dist/visual-app/assets/index-Rkq6smL2.css +1 -0
- package/dist/visual-app/assets/index-yCHtmQUH.js +394 -0
- package/dist/visual-app/index.html +2 -2
- package/dist/visual-app-lib/editor.js +29639 -27514
- package/dist/visual-app-lib/styles.css +1 -1
- package/dist/visual-app-lib/types/adapters/visual/view-identity.d.ts +1 -1
- package/dist/visual-app-lib/types/adapters/visual/wire.d.ts +30 -0
- package/dist/visual-app-lib/types/adapters/visual/workspace-model.d.ts +35 -3
- package/dist/visual-app-lib/types/compiler.d.ts +13 -1
- package/dist/visual-app-lib/types/concept-drafting.d.ts +13 -2
- package/dist/visual-app-lib/types/graph-projection.d.ts +10 -0
- package/dist/visual-app-lib/types/interrogate-command.d.ts +207 -0
- package/dist/visual-app-lib/types/layout-direction.d.ts +14 -0
- package/dist/visual-app-lib/types/projection.d.ts +22 -6
- package/dist/visual-app-lib/types/relationship-drafting.d.ts +21 -2
- package/dist/visual-app-lib/types/subject-identity.d.ts +34 -0
- package/dist/visual-app-lib/types/visual-app/App.d.ts +27 -2
- package/dist/visual-app-lib/types/visual-app/badges.d.ts +1 -0
- package/dist/visual-app-lib/types/visual-app/connection-panel.d.ts +9 -1
- package/dist/visual-app-lib/types/visual-app/context-menu-model.d.ts +15 -6
- package/dist/visual-app-lib/types/visual-app/graph-canvas.d.ts +77 -6
- package/dist/visual-app-lib/types/visual-app/kind-palette.d.ts +37 -0
- package/dist/visual-app-lib/types/visual-app/local-host.d.ts +42 -0
- package/dist/visual-app-lib/types/visual-app/mount.d.ts +73 -2
- package/dist/visual-app-lib/types/visual-app/open-questions.d.ts +15 -0
- package/dist/visual-app-lib/types/visual-app/query-fields.d.ts +3 -2
- package/dist/visual-app-lib/types/visual-app/query-panel.d.ts +8 -1
- package/dist/visual-app-lib/types/visual-app/save-view.d.ts +11 -5
- package/dist/visual-app-lib/types/visual-app/shipped-catalogue.d.ts +10 -0
- package/dist/visual-app-lib/types/visual-app/state.d.ts +15 -4
- package/dist/visual-app-lib/types/visual-app/subject-draft-panel.d.ts +13 -1
- package/dist/visual-app-lib/types/visual-app/subject-filter.d.ts +35 -0
- package/dist/visual-app-lib/types/visual-app/subject-form.d.ts +8 -0
- package/dist/visual-app-lib/types/visual-app/view-tree-model.d.ts +42 -9
- package/dist/visual-app-lib/types/visual-app/view-tree.d.ts +11 -2
- package/dist/visual-app-lib/types/visual-app/workspace-state.d.ts +81 -11
- package/dist/visual-app-lib/types/workspace.d.ts +2 -0
- package/dist/workspace.d.ts +2 -0
- package/dist/workspace.js +1 -0
- package/docs/CONSUMING-YARRAMATE.md +81 -0
- package/package.json +2 -1
- package/schema/yarramate-design-step.schema.json +26 -0
- package/schema/yarramate-document.schema.json +14 -0
- package/schema/yarramate-interrogation-report.schema.json +31 -0
- package/schema/yarramate-pattern.schema.json +133 -0
- package/schema/yarramate-projection.schema.json +9 -0
- package/schema/yarramate-question-catalogue.schema.json +34 -0
- package/schema/yarramate-visual-graph.schema.json +9 -0
- package/schema/yarramate-workspace.schema.json +4 -0
- package/skills/yarramate-architecture/SKILL.md +5 -0
- package/dist/visual-app/assets/index-CcmfL3oY.js +0 -394
- package/dist/visual-app/assets/index-DLutIWES.css +0 -1
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://yarramate.org/schema/pattern/v1",
|
|
4
|
+
"title": "YarraMate structural pattern",
|
|
5
|
+
"description": "The shape a concept kind promises: the parts an instance binds and the wiring the compiler mints between them (ADR 0123). A pattern declares structure; a profile declares vocabulary. Expansion is compile-time and lands in the semantic graph, never in a document.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["format", "id", "version", "patterns"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"format": {
|
|
11
|
+
"const": "yarramate/pattern/v1"
|
|
12
|
+
},
|
|
13
|
+
"id": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
|
|
16
|
+
},
|
|
17
|
+
"version": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"pattern": "^[0-9]+\\.[0-9]+$"
|
|
20
|
+
},
|
|
21
|
+
"patterns": {
|
|
22
|
+
"type": "array",
|
|
23
|
+
"minItems": 1,
|
|
24
|
+
"items": {
|
|
25
|
+
"$ref": "#/$defs/pattern"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"$defs": {
|
|
30
|
+
"pattern": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"additionalProperties": false,
|
|
33
|
+
"required": ["kind", "parts", "wiring"],
|
|
34
|
+
"properties": {
|
|
35
|
+
"kind": {
|
|
36
|
+
"description": "The globally qualified concept kind this pattern shapes. The kind's anchor is whatever the profile says it specializes; a pattern never restates it.",
|
|
37
|
+
"$ref": "#/$defs/qualifiedKind"
|
|
38
|
+
},
|
|
39
|
+
"parts": {
|
|
40
|
+
"description": "The slots an instance binds, by name. A slot names the kind the bound subject must be, and whether an instance must bind it.",
|
|
41
|
+
"type": "object",
|
|
42
|
+
"minProperties": 1,
|
|
43
|
+
"additionalProperties": false,
|
|
44
|
+
"propertyNames": {
|
|
45
|
+
"$ref": "#/$defs/slotName"
|
|
46
|
+
},
|
|
47
|
+
"patternProperties": {
|
|
48
|
+
"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$": {
|
|
49
|
+
"$ref": "#/$defs/part"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"ports": {
|
|
54
|
+
"description": "Where a macro-grain edge lands canonically (#268 phase 2, ADR 0124). A relationship authored between two instances whose patterns both declare a port for its kind is expanded: `out` names the slot it leaves from on the source instance, `in` the slot it arrives at on the target. The macro edge itself survives - it is an authored fact, which is what gives a collapsed view edges to draw.",
|
|
55
|
+
"type": "array",
|
|
56
|
+
"minItems": 1,
|
|
57
|
+
"items": {
|
|
58
|
+
"$ref": "#/$defs/port"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"wiring": {
|
|
62
|
+
"description": "The relationships the compiler mints between an instance and its bound parts. Where an authored relationship already says exactly this, nothing is minted. Any other authored relationship between the same pair contradicts the pattern and fails compilation.",
|
|
63
|
+
"type": "array",
|
|
64
|
+
"minItems": 1,
|
|
65
|
+
"items": {
|
|
66
|
+
"$ref": "#/$defs/wire"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"part": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"additionalProperties": false,
|
|
74
|
+
"required": ["kind"],
|
|
75
|
+
"properties": {
|
|
76
|
+
"kind": {
|
|
77
|
+
"$ref": "#/$defs/qualifiedKind"
|
|
78
|
+
},
|
|
79
|
+
"required": {
|
|
80
|
+
"description": "An instance that leaves a required slot unbound fails compilation (YM416). Absent means optional.",
|
|
81
|
+
"type": "boolean"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"port": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"additionalProperties": false,
|
|
88
|
+
"required": ["kind", "out", "in"],
|
|
89
|
+
"properties": {
|
|
90
|
+
"kind": {
|
|
91
|
+
"$ref": "#/$defs/qualifiedKind"
|
|
92
|
+
},
|
|
93
|
+
"out": {
|
|
94
|
+
"description": "The slot a macro edge of this kind leaves from, on the SOURCE instance. Never `self`: an edge that left from the instance would be the macro edge again.",
|
|
95
|
+
"$ref": "#/$defs/slotName"
|
|
96
|
+
},
|
|
97
|
+
"in": {
|
|
98
|
+
"description": "The slot a macro edge of this kind arrives at, on the TARGET instance.",
|
|
99
|
+
"$ref": "#/$defs/slotName"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"wire": {
|
|
104
|
+
"type": "object",
|
|
105
|
+
"additionalProperties": false,
|
|
106
|
+
"required": ["from", "kind", "to"],
|
|
107
|
+
"properties": {
|
|
108
|
+
"from": {
|
|
109
|
+
"$ref": "#/$defs/endpoint"
|
|
110
|
+
},
|
|
111
|
+
"kind": {
|
|
112
|
+
"$ref": "#/$defs/qualifiedKind"
|
|
113
|
+
},
|
|
114
|
+
"to": {
|
|
115
|
+
"$ref": "#/$defs/endpoint"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"endpoint": {
|
|
120
|
+
"description": "A slot name declared in `parts`, or `self` for the instance itself.",
|
|
121
|
+
"type": "string",
|
|
122
|
+
"pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
|
|
123
|
+
},
|
|
124
|
+
"slotName": {
|
|
125
|
+
"type": "string",
|
|
126
|
+
"pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
|
|
127
|
+
},
|
|
128
|
+
"qualifiedKind": {
|
|
129
|
+
"type": "string",
|
|
130
|
+
"pattern": "^[a-z][a-z0-9-]*(?:/[a-z][a-z0-9-]*)+@[0-9]+\\.[0-9]+#[a-z][A-Za-z0-9-]*$"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -36,6 +36,15 @@
|
|
|
36
36
|
"$ref": "#/$defs/subjectIdentity"
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
|
+
"exclude": {
|
|
40
|
+
"description": "Subjects this query would otherwise select and the author has taken out: the exception a rule cannot state (#267, ADR 0122). Applied after every other facet and after relationship expansion, so an excluded subject is out whichever way it would have come back in. Naming a subject no facet selects is allowed and inert until the model grows into the rule.",
|
|
41
|
+
"type": "array",
|
|
42
|
+
"minItems": 1,
|
|
43
|
+
"uniqueItems": true,
|
|
44
|
+
"items": {
|
|
45
|
+
"$ref": "#/$defs/subjectIdentity"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
39
48
|
"documents": {
|
|
40
49
|
"type": "array",
|
|
41
50
|
"uniqueItems": true,
|
|
@@ -63,6 +63,14 @@
|
|
|
63
63
|
},
|
|
64
64
|
"description": {
|
|
65
65
|
"$ref": "#/$defs/nonEmptyText"
|
|
66
|
+
},
|
|
67
|
+
"opensWhen": {
|
|
68
|
+
"description": "Conditions that must all hold before this wave opens (#334, ADR 0125). A wave that has not opened asks nothing: its questions are premature rather than answered, and the report says so with `opened: false` and no questions rather than reporting them closed. Written in the same condition vocabulary a question's trigger uses, so a reviewer reads a gate the way they already read a trigger. Absent means the wave is always open, which is what every wave did before this existed.",
|
|
69
|
+
"type": "array",
|
|
70
|
+
"minItems": 1,
|
|
71
|
+
"items": {
|
|
72
|
+
"$ref": "#/$defs/condition"
|
|
73
|
+
}
|
|
66
74
|
}
|
|
67
75
|
}
|
|
68
76
|
}
|
|
@@ -502,6 +510,32 @@
|
|
|
502
510
|
"const": "unscoped-succession"
|
|
503
511
|
}
|
|
504
512
|
}
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
"type": "object",
|
|
516
|
+
"additionalProperties": false,
|
|
517
|
+
"description": "The workspace holds at least one concept (#334, ADR 0125). The guard a late wave needs to say \"only once the model has substance\": an empty model is not an architecture at rest, it has not started, and asking it how the planned architecture becomes real greets someone ahead of question one.",
|
|
518
|
+
"required": [
|
|
519
|
+
"condition"
|
|
520
|
+
],
|
|
521
|
+
"properties": {
|
|
522
|
+
"condition": {
|
|
523
|
+
"const": "has-any-subject"
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
"type": "object",
|
|
529
|
+
"additionalProperties": false,
|
|
530
|
+
"description": "The workspace's evidence overlay records observations and every one is a frictionless confirmation: no contradicted, unknown, or not-observed result, and no recorded search (ADR 0107). A discovery that never records anything but success never tested a claim it might fail. The one condition that reads the evidence overlay rather than the compiled graph; where the evaluating consumer supplies no overlay it stays quiet (ADR 0120).",
|
|
531
|
+
"required": [
|
|
532
|
+
"condition"
|
|
533
|
+
],
|
|
534
|
+
"properties": {
|
|
535
|
+
"condition": {
|
|
536
|
+
"const": "unchallenged-evidence"
|
|
537
|
+
}
|
|
538
|
+
}
|
|
505
539
|
}
|
|
506
540
|
]
|
|
507
541
|
},
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"kind",
|
|
32
32
|
"kindLabel",
|
|
33
33
|
"coreKindLabel",
|
|
34
|
+
"portKinds",
|
|
34
35
|
"layer",
|
|
35
36
|
"aspect",
|
|
36
37
|
"name",
|
|
@@ -64,6 +65,14 @@
|
|
|
64
65
|
"kindLabel": {
|
|
65
66
|
"type": "string"
|
|
66
67
|
},
|
|
68
|
+
"portKinds": {
|
|
69
|
+
"description": "The core relationship kinds this node's pattern ports, or [] where its kind has no pattern with ports (#268 phase 3, ADR 0124). A macro edge needs both ends to port its kind, so an editor offering a palette between two instances intersects the two lists.",
|
|
70
|
+
"type": "array",
|
|
71
|
+
"uniqueItems": true,
|
|
72
|
+
"items": {
|
|
73
|
+
"type": "string"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
67
76
|
"coreKindLabel": {
|
|
68
77
|
"type": "string"
|
|
69
78
|
},
|
|
@@ -28,6 +28,10 @@
|
|
|
28
28
|
"projections": {
|
|
29
29
|
"$ref": "#/$defs/patterns"
|
|
30
30
|
},
|
|
31
|
+
"patterns": {
|
|
32
|
+
"description": "yarramate/pattern/v1 documents: the shape a concept kind promises, and the wiring the compiler mints between an instance and the parts it binds (ADR 0123). Structure, where profiles declare vocabulary. Optional, like evidence and contracts.",
|
|
33
|
+
"$ref": "#/$defs/patterns"
|
|
34
|
+
},
|
|
31
35
|
"adapterMappings": {
|
|
32
36
|
"$ref": "#/$defs/patterns"
|
|
33
37
|
},
|
|
@@ -267,6 +267,11 @@ request
|
|
|
267
267
|
-> End or failure: recover, optionally read the transcript, stop, resume
|
|
268
268
|
```
|
|
269
269
|
|
|
270
|
+
The canvas itself carries the interview: subjects with open questions wear
|
|
271
|
+
a count chip, and the Open questions panel scopes to the selected subject
|
|
272
|
+
(workspace-scoped questions show when nothing is selected). Landing answers
|
|
273
|
+
through the editor's changeset closes them on the next model frame.
|
|
274
|
+
|
|
270
275
|
Read [references/visual-conversations.md](references/visual-conversations.md)
|
|
271
276
|
before starting a session. It owns the request builder and its refusals, the
|
|
272
277
|
capability test, the exact commands and documents, the delegated child's prompt
|