pi-outpost 0.8.0 → 0.9.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/contract/conformance/index.json +31 -0
- package/dist/contract/conformance/invalid/container-as-endpoint.json +26 -0
- package/dist/contract/conformance/invalid/container-duplicate-id.json +24 -0
- package/dist/contract/conformance/invalid/container-unknown-membership.json +20 -0
- package/dist/contract/conformance/invalid/containers-over-the-ceiling.json +220 -0
- package/dist/contract/conformance/valid/graph-containers-at-the-ceiling.json +216 -0
- package/dist/contract/conformance/valid/graph-proposal-moves-a-member.json +28 -0
- package/dist/contract/conformance/valid/graph-with-containers.json +55 -0
- package/dist/contract/conformance/valid/graph-with-empty-container.json +24 -0
- package/dist/contract/conformance/valid/sequence-with-containers.json +45 -0
- package/dist/contract/schemas/structured-exchange-1.json +40 -0
- package/dist/contract/validate-structured-exchange.mjs +68 -0
- package/dist/pi-outpost.mjs +199 -80
- package/dist/pi-outpost.sea.mjs +265 -146
- package/dist/sea-prep.blob +0 -0
- package/dist/skills/structured-exchange/SKILL.md +40 -0
- package/dist/skills/structured-exchange/structured-exchange-1.json +40 -0
- package/dist/web/assets/{PdfViewer-x2xiBxe4.js → PdfViewer-CEAp6biY.js} +2 -2
- package/dist/web/assets/{abnfDiagram-N423BO3Z-kee00MEd.js → abnfDiagram-N423BO3Z-BE4AMXSH.js} +1 -1
- package/dist/web/assets/architecture-TIHT7OUA-DgTbwInB.js +1 -0
- package/dist/web/assets/{architectureDiagram-T3A2C74G-FQrRA7W5.js → architectureDiagram-T3A2C74G-tjG-eidb.js} +1 -1
- package/dist/web/assets/{blockDiagram-VBNYF7ZC-DvskKqA0.js → blockDiagram-VBNYF7ZC-Bwzla1cD.js} +1 -1
- package/dist/web/assets/{c4Diagram-5PPSVZJV-BZRDgGhx.js → c4Diagram-5PPSVZJV-BbNH9mqH.js} +1 -1
- package/dist/web/assets/channel-CXbqHDJA.js +1 -0
- package/dist/web/assets/{chunk-2GRJ4B5K-BKAhH8lI.js → chunk-2GRJ4B5K-BTjPaaWT.js} +1 -1
- package/dist/web/assets/{chunk-3NCLNEKW-CDW_UFrj.js → chunk-3NCLNEKW-DfGGO5Az.js} +1 -1
- package/dist/web/assets/{chunk-4I5QYGJK-DexlHym3.js → chunk-4I5QYGJK-Bajr_p-3.js} +1 -1
- package/dist/web/assets/{chunk-5RXB4S5H-Dy5vrF_c.js → chunk-5RXB4S5H-CbDXtSwX.js} +1 -1
- package/dist/web/assets/{chunk-6Q2QTUOP-CgZiYapq.js → chunk-6Q2QTUOP-Cj5IB9-q.js} +1 -1
- package/dist/web/assets/{chunk-7Z6QIM7H-CJnQz0bE.js → chunk-7Z6QIM7H-BIsTfYEd.js} +1 -1
- package/dist/web/assets/{chunk-GF5L2VYU-CNU1cTmN.js → chunk-GF5L2VYU-CYLPBeKA.js} +1 -1
- package/dist/web/assets/{chunk-I66GZJ75-CAg8Cp7h.js → chunk-I66GZJ75-BjZt7BZl.js} +3 -3
- package/dist/web/assets/{chunk-J7OUQ5F2-DPUu4PC3.js → chunk-J7OUQ5F2-B3gViRUp.js} +2 -2
- package/dist/web/assets/{chunk-JQJVKLGR-BvvzMzOD.js → chunk-JQJVKLGR-Dg177seh.js} +1 -1
- package/dist/web/assets/{chunk-KBJHAD2P-CU234oZY.js → chunk-KBJHAD2P-B_2jByMg.js} +1 -1
- package/dist/web/assets/{chunk-NSK5VX7P-DC9AvBMO.js → chunk-NSK5VX7P-B5w-3_Ed.js} +1 -1
- package/dist/web/assets/{chunk-QR6OTTB3-NGKRGHT-.js → chunk-QR6OTTB3-DCJRxmQT.js} +1 -1
- package/dist/web/assets/{chunk-UBXNYLIW-BdEuaF2V.js → chunk-UBXNYLIW-DBuIxFzr.js} +1 -1
- package/dist/web/assets/{chunk-W5SLKNZC-DI52N2zG.js → chunk-W5SLKNZC-B-cGIOQF.js} +1 -1
- package/dist/web/assets/{chunk-WRU74C26-Z4jYNWlA.js → chunk-WRU74C26-CLOxZV1w.js} +1 -1
- package/dist/web/assets/classDiagram-JCYQIIEL-lv93WkUc.js +1 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-lv93WkUc.js +1 -0
- package/dist/web/assets/{cynefin-VYW2F7L2-pqhisvct.js → cynefin-VYW2F7L2-Bk96SN7L.js} +1 -1
- package/dist/web/assets/{cynefinDiagram-MW4NZA55-dph1hMaU.js → cynefinDiagram-MW4NZA55-ooeswKGp.js} +1 -1
- package/dist/web/assets/{dagre-VZM6K2ZE-dkUSGnsd.js → dagre-VZM6K2ZE-CSwH_rTA.js} +1 -1
- package/dist/web/assets/{diagram-7IWD3JNH-Dr227O8k.js → diagram-7IWD3JNH-DVtrh_uV.js} +1 -1
- package/dist/web/assets/{diagram-B4RE2ZJO-ntl1e6sh.js → diagram-B4RE2ZJO-CYE5VmiD.js} +1 -1
- package/dist/web/assets/{diagram-LBJQPF4R-DOjM-sZd.js → diagram-LBJQPF4R-BYOlHlmg.js} +1 -1
- package/dist/web/assets/{diagram-Q27KOJAE-B-MjzCeJ.js → diagram-Q27KOJAE-DJWxpvu9.js} +1 -1
- package/dist/web/assets/{diagram-UB23O5K3-DC7MbtQl.js → diagram-UB23O5K3-B1g-vwj0.js} +1 -1
- package/dist/web/assets/{ebnfDiagram-BXEA7PRR-y-LOEsHH.js → ebnfDiagram-BXEA7PRR-BX8Jv2Vd.js} +1 -1
- package/dist/web/assets/{erDiagram-JOGREHBK-k8AoIy3Q.js → erDiagram-JOGREHBK-9hxklGu2.js} +1 -1
- package/dist/web/assets/eventmodeling-45OFAUF4-CSvMsqcO.js +1 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-CPmAOaGQ.js +1 -0
- package/dist/web/assets/{ganttDiagram-PKOTCBZU-BzS1g8HQ.js → ganttDiagram-PKOTCBZU-D0kAnvoM.js} +1 -1
- package/dist/web/assets/{gitGraph-TEB2WS4Q-Dc63nekB.js → gitGraph-TEB2WS4Q-C9UMPCgj.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-BTWw_ecn.js → gitGraphDiagram-DS77QQ5N-6tPgqwE6.js} +1 -1
- package/dist/web/assets/index-CZwzQTfU.css +2 -0
- package/dist/web/assets/index-De86t3J_.js +323 -0
- package/dist/web/assets/{info-DKCQHKI2-D_28_vN7.js → info-DKCQHKI2-BBV4qqmE.js} +1 -1
- package/dist/web/assets/{infoDiagram-6WML65LV-77gNLZvi.js → infoDiagram-6WML65LV-Bmhc86CN.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-7XDMgYt5.js → ishikawaDiagram-WSZJBQD7-5wn4Yv2C.js} +1 -1
- package/dist/web/assets/{journeyDiagram-NVQOT4AX-vsyfZeiY.js → journeyDiagram-NVQOT4AX-DJLLpQlS.js} +1 -1
- package/dist/web/assets/{kanban-definition-27J2QSJJ-DQ5g-1NC.js → kanban-definition-27J2QSJJ-7h9EMbUW.js} +1 -1
- package/dist/web/assets/{line-DtXn_0p6.js → line-Uu7s3CmK.js} +1 -1
- package/dist/web/assets/{mermaid-parser.core-Dyx1WWw_.js → mermaid-parser.core-DwpLoctN.js} +3 -3
- package/dist/web/assets/{mermaid.core-uKmrA7tr.js → mermaid.core-CRSZr8Y7.js} +3 -3
- package/dist/web/assets/{mindmap-definition-FAOFIHXS-BYgTwh7C.js → mindmap-definition-FAOFIHXS-DPic1KLK.js} +1 -1
- package/dist/web/assets/{packet-7NZHBO7P-BZKnuEXR.js → packet-7NZHBO7P-CMRjleUu.js} +1 -1
- package/dist/web/assets/{pdf-pU3WmOmo.js → pdf-DGJrgWix.js} +1 -1
- package/dist/web/assets/{pegDiagram-VL7TDLO6-CBsL2dth.js → pegDiagram-VL7TDLO6-CdECC4cs.js} +1 -1
- package/dist/web/assets/{pie-RZYD4A2V-DGE1bbOE.js → pie-RZYD4A2V-C5X4oGn0.js} +1 -1
- package/dist/web/assets/{pieDiagram-7S7Q4E2Y-BwURarOq.js → pieDiagram-7S7Q4E2Y-Bvs4Q2O-.js} +1 -1
- package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-BqFQ2trs.js → quadrantDiagram-CIZ2JOQS-FsUrYDg7.js} +1 -1
- package/dist/web/assets/{radar-I7S5WNFK-Bg6p9yp7.js → radar-I7S5WNFK-tvx7HrZO.js} +1 -1
- package/dist/web/assets/{railroad-3IZDKUUU-DNI6o4Em.js → railroad-3IZDKUUU-DBks1QD-.js} +1 -1
- package/dist/web/assets/railroad-abnf-AHOZXSZD-BnvB29Nv.js +1 -0
- package/dist/web/assets/railroad-ebnf-EBAXGLYW-BUSDQ0vn.js +1 -0
- package/dist/web/assets/railroad-peg-LSFZ7HO6-CZV0givf.js +1 -0
- package/dist/web/assets/{railroadDiagram-AXF67PYL-oEpcqk-W.js → railroadDiagram-AXF67PYL-CBvFYCmN.js} +1 -1
- package/dist/web/assets/{requirementDiagram-LRYGKXZP-BKxgubC8.js → requirementDiagram-LRYGKXZP-C-rumttI.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-W5VNT64P-DR5jQRd_.js → sankeyDiagram-W5VNT64P-ClOK2cdj.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-SI44F4Z6-C7L40Nsa.js → sequenceDiagram-SI44F4Z6-B0pKllVj.js} +1 -1
- package/dist/web/assets/{stateDiagram-OKZ733FA-D3mb8r39.js → stateDiagram-OKZ733FA-BoAWywzk.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-CHrsco-w.js +1 -0
- package/dist/web/assets/{swimlanes-SLNWSIFB-BEeA1QZ_.js → swimlanes-SLNWSIFB-cdgjeXSf.js} +1 -1
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-DPjAUQdL.js +8 -0
- package/dist/web/assets/{timeline-definition-Z64GVDOM-DJzDXvxa.js → timeline-definition-Z64GVDOM-ByMPGIEh.js} +1 -1
- package/dist/web/assets/{treeView-QDETBFTQ-C7Ygr33N.js → treeView-QDETBFTQ-zBqwQF47.js} +1 -1
- package/dist/web/assets/{treemap-6X3UGDF4-Cvo79BWQ.js → treemap-6X3UGDF4-C2U9S2di.js} +1 -1
- package/dist/web/assets/{vennDiagram-T6HMQDX7-K4-0i3bx.js → vennDiagram-T6HMQDX7-CyJfOcB0.js} +1 -1
- package/dist/web/assets/{wardley-OPB4EBWU-vPJ7z6yC.js → wardley-OPB4EBWU-CDxzQuvF.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-T6FBY63Y-ZMc27dHf.js → wardleyDiagram-T6FBY63Y-IO8_CDTG.js} +1 -1
- package/dist/web/assets/{xychartDiagram-ELKLHX3M-CC9smjjw.js → xychartDiagram-ELKLHX3M-UUfxFEDc.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/architecture-TIHT7OUA-s5QlE0U9.js +0 -1
- package/dist/web/assets/channel-Ca0hg8PC.js +0 -1
- package/dist/web/assets/classDiagram-JCYQIIEL-D6TSE_k7.js +0 -1
- package/dist/web/assets/classDiagram-v2-OCEON4UE-D6TSE_k7.js +0 -1
- package/dist/web/assets/eventmodeling-45OFAUF4-CtFKjGJF.js +0 -1
- package/dist/web/assets/flowDiagram-UKHOOZJN-j1XVLSIh.js +0 -1
- package/dist/web/assets/index-BWflhMWc.js +0 -323
- package/dist/web/assets/index-DpjN669x.css +0 -2
- package/dist/web/assets/railroad-abnf-AHOZXSZD-BNrH9Ci1.js +0 -1
- package/dist/web/assets/railroad-ebnf-EBAXGLYW-Dz3SvEbQ.js +0 -1
- package/dist/web/assets/railroad-peg-LSFZ7HO6-DTIkD36f.js +0 -1
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-Dmyli1R9.js +0 -1
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CGGlb8e_.js +0 -8
|
@@ -24,6 +24,26 @@
|
|
|
24
24
|
"type": "string",
|
|
25
25
|
"maxLength": 500
|
|
26
26
|
},
|
|
27
|
+
"container": {
|
|
28
|
+
"description": "A named group of elements or participants. Grouping only: relationships connect elements and cross container boundaries freely, and a container carries no relationship of its own.",
|
|
29
|
+
"type": "object",
|
|
30
|
+
"additionalProperties": false,
|
|
31
|
+
"required": [
|
|
32
|
+
"id",
|
|
33
|
+
"label"
|
|
34
|
+
],
|
|
35
|
+
"properties": {
|
|
36
|
+
"id": {
|
|
37
|
+
"$ref": "#/$defs/localId"
|
|
38
|
+
},
|
|
39
|
+
"label": {
|
|
40
|
+
"$ref": "#/$defs/label"
|
|
41
|
+
},
|
|
42
|
+
"kind": {
|
|
43
|
+
"$ref": "#/$defs/kind"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
27
47
|
"kind": {
|
|
28
48
|
"description": "The producing tool's type or stereotype for this thing \u2014 'block', 'sensor', 'power', 'thermal'. Free text, because the vocabulary belongs to the domain and not to this contract. Carries meaning, not presentation: a reader may colour by it, and a consumer may map it back to its own type system.",
|
|
29
49
|
"type": "string",
|
|
@@ -51,6 +71,9 @@
|
|
|
51
71
|
},
|
|
52
72
|
"set": {
|
|
53
73
|
"$ref": "#/$defs/elementChange"
|
|
74
|
+
},
|
|
75
|
+
"container": {
|
|
76
|
+
"$ref": "#/$defs/localId"
|
|
54
77
|
}
|
|
55
78
|
},
|
|
56
79
|
"if": {
|
|
@@ -185,6 +208,9 @@
|
|
|
185
208
|
},
|
|
186
209
|
"kind": {
|
|
187
210
|
"$ref": "#/$defs/kind"
|
|
211
|
+
},
|
|
212
|
+
"container": {
|
|
213
|
+
"$ref": "#/$defs/localId"
|
|
188
214
|
}
|
|
189
215
|
}
|
|
190
216
|
},
|
|
@@ -257,6 +283,13 @@
|
|
|
257
283
|
"items": {
|
|
258
284
|
"$ref": "#/$defs/edge"
|
|
259
285
|
}
|
|
286
|
+
},
|
|
287
|
+
"containers": {
|
|
288
|
+
"type": "array",
|
|
289
|
+
"maxItems": 50,
|
|
290
|
+
"items": {
|
|
291
|
+
"$ref": "#/$defs/container"
|
|
292
|
+
}
|
|
260
293
|
}
|
|
261
294
|
}
|
|
262
295
|
},
|
|
@@ -282,6 +315,13 @@
|
|
|
282
315
|
"items": {
|
|
283
316
|
"$ref": "#/$defs/message"
|
|
284
317
|
}
|
|
318
|
+
},
|
|
319
|
+
"containers": {
|
|
320
|
+
"type": "array",
|
|
321
|
+
"maxItems": 50,
|
|
322
|
+
"items": {
|
|
323
|
+
"$ref": "#/$defs/container"
|
|
324
|
+
}
|
|
285
325
|
}
|
|
286
326
|
}
|
|
287
327
|
},
|
|
@@ -114,6 +114,11 @@ function relationshipsOf(envelope) {
|
|
|
114
114
|
if (envelope.kind === "sequence") return envelope.data.messages;
|
|
115
115
|
return [];
|
|
116
116
|
}
|
|
117
|
+
function containersOf(envelope) {
|
|
118
|
+
if (envelope.kind === "graph") return envelope.data.containers ?? [];
|
|
119
|
+
if (envelope.kind === "sequence") return envelope.data.containers ?? [];
|
|
120
|
+
return [];
|
|
121
|
+
}
|
|
117
122
|
function elementsPointer(envelope) {
|
|
118
123
|
return envelope.kind === "graph" ? "/data/nodes" : "/data/participants";
|
|
119
124
|
}
|
|
@@ -167,6 +172,29 @@ function validateStructuredExchangeSemantics(envelope) {
|
|
|
167
172
|
});
|
|
168
173
|
}
|
|
169
174
|
});
|
|
175
|
+
const seenContainers = /* @__PURE__ */ new Map();
|
|
176
|
+
containersOf(envelope).forEach((container, index3) => {
|
|
177
|
+
const first = seenContainers.get(container.id);
|
|
178
|
+
if (first === void 0) seenContainers.set(container.id, index3);
|
|
179
|
+
else {
|
|
180
|
+
issues.push({
|
|
181
|
+
rule: "duplicate-container-identifier",
|
|
182
|
+
path: `/data/containers/${index3}/id`,
|
|
183
|
+
message: `container "${container.id}" is already declared at /data/containers/${first}`
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
elements.forEach((element, index3) => {
|
|
188
|
+
for (const [field, named] of [["container", element.container], ["set/container", element.set?.container]]) {
|
|
189
|
+
if (named !== void 0 && !seenContainers.has(named)) {
|
|
190
|
+
issues.push({
|
|
191
|
+
rule: "unresolved-container",
|
|
192
|
+
path: `${elementsAt}/${index3}/${field}`,
|
|
193
|
+
message: `"${named}" is not a container declared in /data/containers`
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
});
|
|
170
198
|
const relationshipsAt = relationshipsPointer(envelope);
|
|
171
199
|
relationshipsOf(envelope).forEach((relationship, index3) => {
|
|
172
200
|
for (const side of ["from", "to"]) {
|
|
@@ -8202,6 +8230,26 @@ var structured_exchange_1_default = {
|
|
|
8202
8230
|
type: "string",
|
|
8203
8231
|
maxLength: 500
|
|
8204
8232
|
},
|
|
8233
|
+
container: {
|
|
8234
|
+
description: "A named group of elements or participants. Grouping only: relationships connect elements and cross container boundaries freely, and a container carries no relationship of its own.",
|
|
8235
|
+
type: "object",
|
|
8236
|
+
additionalProperties: false,
|
|
8237
|
+
required: [
|
|
8238
|
+
"id",
|
|
8239
|
+
"label"
|
|
8240
|
+
],
|
|
8241
|
+
properties: {
|
|
8242
|
+
id: {
|
|
8243
|
+
$ref: "#/$defs/localId"
|
|
8244
|
+
},
|
|
8245
|
+
label: {
|
|
8246
|
+
$ref: "#/$defs/label"
|
|
8247
|
+
},
|
|
8248
|
+
kind: {
|
|
8249
|
+
$ref: "#/$defs/kind"
|
|
8250
|
+
}
|
|
8251
|
+
}
|
|
8252
|
+
},
|
|
8205
8253
|
kind: {
|
|
8206
8254
|
description: "The producing tool's type or stereotype for this thing \u2014 'block', 'sensor', 'power', 'thermal'. Free text, because the vocabulary belongs to the domain and not to this contract. Carries meaning, not presentation: a reader may colour by it, and a consumer may map it back to its own type system.",
|
|
8207
8255
|
type: "string",
|
|
@@ -8229,6 +8277,9 @@ var structured_exchange_1_default = {
|
|
|
8229
8277
|
},
|
|
8230
8278
|
set: {
|
|
8231
8279
|
$ref: "#/$defs/elementChange"
|
|
8280
|
+
},
|
|
8281
|
+
container: {
|
|
8282
|
+
$ref: "#/$defs/localId"
|
|
8232
8283
|
}
|
|
8233
8284
|
},
|
|
8234
8285
|
if: {
|
|
@@ -8363,6 +8414,9 @@ var structured_exchange_1_default = {
|
|
|
8363
8414
|
},
|
|
8364
8415
|
kind: {
|
|
8365
8416
|
$ref: "#/$defs/kind"
|
|
8417
|
+
},
|
|
8418
|
+
container: {
|
|
8419
|
+
$ref: "#/$defs/localId"
|
|
8366
8420
|
}
|
|
8367
8421
|
}
|
|
8368
8422
|
},
|
|
@@ -8435,6 +8489,13 @@ var structured_exchange_1_default = {
|
|
|
8435
8489
|
items: {
|
|
8436
8490
|
$ref: "#/$defs/edge"
|
|
8437
8491
|
}
|
|
8492
|
+
},
|
|
8493
|
+
containers: {
|
|
8494
|
+
type: "array",
|
|
8495
|
+
maxItems: 50,
|
|
8496
|
+
items: {
|
|
8497
|
+
$ref: "#/$defs/container"
|
|
8498
|
+
}
|
|
8438
8499
|
}
|
|
8439
8500
|
}
|
|
8440
8501
|
},
|
|
@@ -8460,6 +8521,13 @@ var structured_exchange_1_default = {
|
|
|
8460
8521
|
items: {
|
|
8461
8522
|
$ref: "#/$defs/message"
|
|
8462
8523
|
}
|
|
8524
|
+
},
|
|
8525
|
+
containers: {
|
|
8526
|
+
type: "array",
|
|
8527
|
+
maxItems: 50,
|
|
8528
|
+
items: {
|
|
8529
|
+
$ref: "#/$defs/container"
|
|
8530
|
+
}
|
|
8463
8531
|
}
|
|
8464
8532
|
}
|
|
8465
8533
|
},
|