pi-outpost 0.35.0 → 0.35.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/contract/README.md +3 -1
  2. package/dist/contract/conformance/README.md +8 -0
  3. package/dist/contract/validate-structured-exchange.mjs +13 -2
  4. package/dist/pi-outpost-tools.mjs +12 -1
  5. package/dist/pi-outpost.mjs +101 -85
  6. package/dist/pi-outpost.sea.mjs +2 -2
  7. package/dist/sea-prep.blob +2 -2
  8. package/dist/web/assets/PdfViewer-CptfuY34.js +2 -0
  9. package/dist/web/assets/{abnfDiagram-YUKMZFIV-C_v5KfC7.js → abnfDiagram-YUKMZFIV-kB5t-7AM.js} +1 -1
  10. package/dist/web/assets/architecture-WOLXFQ4H-BuU5EQCD.js +1 -0
  11. package/dist/web/assets/{architectureDiagram-47P4ROYG-DTpA3_fr.js → architectureDiagram-47P4ROYG-C5hzR07F.js} +1 -1
  12. package/dist/web/assets/{blockDiagram-E7TT5TSB-JiGNkbrY.js → blockDiagram-E7TT5TSB-DdpYvXs8.js} +1 -1
  13. package/dist/web/assets/{c4Diagram-CRA5TL53-BqyaF5aA.js → c4Diagram-CRA5TL53-Di3h58ks.js} +1 -1
  14. package/dist/web/assets/channel-DVH-eaz_.js +1 -0
  15. package/dist/web/assets/{chunk-2BW5OAIV-SBPwGrjA.js → chunk-2BW5OAIV-BIIX2R6x.js} +1 -1
  16. package/dist/web/assets/{chunk-3YJQHVM4-MV5Ex8sq.js → chunk-3YJQHVM4-Dt99sj0b.js} +1 -1
  17. package/dist/web/assets/{chunk-4EA7E6EY-CKvXXyhx.js → chunk-4EA7E6EY-yvJMWemR.js} +1 -1
  18. package/dist/web/assets/{chunk-7TKQ45FW-D6DuC99K.js → chunk-7TKQ45FW-Dob6DuOQ.js} +1 -1
  19. package/dist/web/assets/{chunk-AW2ZBBNX-C4rsmcm9.js → chunk-AW2ZBBNX-DB6rxZAL.js} +1 -1
  20. package/dist/web/assets/{chunk-DBDB3WZW-DYwidElu.js → chunk-DBDB3WZW-BIeIRFel.js} +1 -1
  21. package/dist/web/assets/{chunk-E2ZNV5FY-CYbRGGQf.js → chunk-E2ZNV5FY-k59zNMXy.js} +1 -1
  22. package/dist/web/assets/{chunk-EU5HNXII-DxNjjYiq.js → chunk-EU5HNXII-ND0WZFFM.js} +1 -1
  23. package/dist/web/assets/{chunk-FVRAUYC3-cRWf5LC3.js → chunk-FVRAUYC3-D1LdAmKs.js} +1 -1
  24. package/dist/web/assets/{chunk-HJ2JQQFS-D9pDNejT.js → chunk-HJ2JQQFS-_yet-jCS.js} +1 -1
  25. package/dist/web/assets/{chunk-HTAEGDNF-B_PVN4qe.js → chunk-HTAEGDNF-DKo1PJAZ.js} +1 -1
  26. package/dist/web/assets/{chunk-KQW6MTUR-BvQfG-IU.js → chunk-KQW6MTUR-evHULq4-.js} +1 -1
  27. package/dist/web/assets/{chunk-NTY3LDVX-C_c1c_yY.js → chunk-NTY3LDVX-C2IFjend.js} +1 -1
  28. package/dist/web/assets/{chunk-VPRB5NB3-BneD2tFR.js → chunk-VPRB5NB3-CCVn2tFZ.js} +1 -1
  29. package/dist/web/assets/{chunk-XC4XBNZT-BfvNm2P2.js → chunk-XC4XBNZT-DjwT4Fb8.js} +1 -1
  30. package/dist/web/assets/{classDiagram-v2-K4WV4PDN-D3Jwj4hF.js → classDiagram-v2-K4WV4PDN-7vBzSF1K.js} +1 -1
  31. package/dist/web/assets/{conversationExport-B_MfzYyo.js → conversationExport-1pQ1kKRb.js} +2 -2
  32. package/dist/web/assets/{cynefin-EF2NZ3EQ-D0UE3xaA.js → cynefin-EF2NZ3EQ-EkVSUZoC.js} +1 -1
  33. package/dist/web/assets/{cynefinDiagram-3GCD6N5R-CCBRrG1y.js → cynefinDiagram-3GCD6N5R-TqsWGFj_.js} +1 -1
  34. package/dist/web/assets/{dagre-W4DXFKR2-zRL24iZJ.js → dagre-W4DXFKR2-Bs7WDnka.js} +1 -1
  35. package/dist/web/assets/{diagram-2UJZ2QOL-LHcLpXvO.js → diagram-2UJZ2QOL-BCCQWZ6Q.js} +1 -1
  36. package/dist/web/assets/{diagram-OVF4WLC6-8BeDZk_g.js → diagram-OVF4WLC6-ClTJAriq.js} +1 -1
  37. package/dist/web/assets/{diagram-PFPMY2P6-CKBnlJR4.js → diagram-PFPMY2P6-DRS4uv3o.js} +1 -1
  38. package/dist/web/assets/{diagram-UMYRVEAY-CRVvTnHL.js → diagram-UMYRVEAY-oQDIgSp_.js} +1 -1
  39. package/dist/web/assets/{diagram-YEKJPTXX-C77BIwU0.js → diagram-YEKJPTXX-DGvp5HHA.js} +1 -1
  40. package/dist/web/assets/{diagram-ZIFT7M5P-VCN0ewTA.js → diagram-ZIFT7M5P-DTOvOJP9.js} +1 -1
  41. package/dist/web/assets/{docxExport-Cx1UE4r4.js → docxExport-70RM2cmX.js} +2 -2
  42. package/dist/web/assets/{ebnfDiagram-VR2GEFS7-DE3BquXX.js → ebnfDiagram-VR2GEFS7-Bt9AsQhf.js} +1 -1
  43. package/dist/web/assets/{elk-IJKZMXRS-BMBFeeLM.js → elk-IJKZMXRS-43BtmMFC.js} +1 -1
  44. package/dist/web/assets/{erDiagram-O2IAPWRE-BpvBfZtG.js → erDiagram-O2IAPWRE-Cg5FjWxt.js} +1 -1
  45. package/dist/web/assets/eventmodeling-K75KTNOO-D-1S3G_r.js +1 -0
  46. package/dist/web/assets/flowDiagram-OXPTDLAJ-BwBlCFbR.js +1 -0
  47. package/dist/web/assets/{ganttDiagram-R7TSEDQI-Vx8rdpBL.js → ganttDiagram-R7TSEDQI-Drk9ZBL_.js} +1 -1
  48. package/dist/web/assets/{gitGraph-VSP46ZUC-CXqfxKB6.js → gitGraph-VSP46ZUC-_W77O0wc.js} +1 -1
  49. package/dist/web/assets/{gitGraphDiagram-XJZIOB7I-CtT_GFza.js → gitGraphDiagram-XJZIOB7I-BFVa-iQn.js} +1 -1
  50. package/dist/web/assets/index-DXN0nanq.js +350 -0
  51. package/dist/web/assets/{info-OHQRW6UA-Dzy6-ufv.js → info-OHQRW6UA-Ctq9vAkc.js} +1 -1
  52. package/dist/web/assets/{infoDiagram-5W2HQ5XZ-CFRmWQIO.js → infoDiagram-5W2HQ5XZ-9s3DGUEP.js} +1 -1
  53. package/dist/web/assets/{ishikawaDiagram-K3B6WC7H-Cibrnarh.js → ishikawaDiagram-K3B6WC7H-Bb66YtFg.js} +1 -1
  54. package/dist/web/assets/{journeyDiagram-COXZFDF6-DFoq_6Ri.js → journeyDiagram-COXZFDF6-DZ-UCzYx.js} +1 -1
  55. package/dist/web/assets/{kanban-definition-P3RFRI5V-B_ksgbTL.js → kanban-definition-P3RFRI5V-CXBbbpKw.js} +1 -1
  56. package/dist/web/assets/{line-DK5MzjMr.js → line-DI6oDPYR.js} +1 -1
  57. package/dist/web/assets/{loadReferencedImage-BAkXtzog.js → loadReferencedImage-BQpK9GNN.js} +2 -2
  58. package/dist/web/assets/{mermaid-parser.core-0hMEi6f9.js → mermaid-parser.core-F143UNdq.js} +3 -3
  59. package/dist/web/assets/{mermaid.core-D2DiwiHi.js → mermaid.core-FqGqI1ho.js} +4 -4
  60. package/dist/web/assets/{mindmap-definition-LZFPQGKD-DiJiFNch.js → mindmap-definition-LZFPQGKD-B6Q2fkYK.js} +1 -1
  61. package/dist/web/assets/{packet-JDAUHWVQ-BGr5cgVG.js → packet-JDAUHWVQ-DA9k8-fU.js} +1 -1
  62. package/dist/web/assets/{pdf-DUYUQwoI.js → pdf-DhwAPtjt.js} +1 -1
  63. package/dist/web/assets/{pegDiagram-BGZESJAR-BXEDbek_.js → pegDiagram-BGZESJAR-DGymYtc-.js} +1 -1
  64. package/dist/web/assets/{pie-XZMESJXO-Cf8_kbHC.js → pie-XZMESJXO-BWjAcopM.js} +1 -1
  65. package/dist/web/assets/{pieDiagram-CAPJLFHJ-Co9YXMsu.js → pieDiagram-CAPJLFHJ-BcDIEPPQ.js} +1 -1
  66. package/dist/web/assets/{quadrantDiagram-GDMTTRAM-CfS7tD05.js → quadrantDiagram-GDMTTRAM-DJQxy266.js} +1 -1
  67. package/dist/web/assets/{radar-ABXABTNO-BEGsrsAA.js → radar-ABXABTNO-DhsSZPg3.js} +1 -1
  68. package/dist/web/assets/{railroad-I3PHUGI6-CFT2jtUv.js → railroad-I3PHUGI6-DJ7oN14G.js} +1 -1
  69. package/dist/web/assets/railroad-abnf-LNEFI6M7-BZj4c-IW.js +1 -0
  70. package/dist/web/assets/railroad-ebnf-DWYD2UWJ-BnSjVGRJ.js +1 -0
  71. package/dist/web/assets/railroad-peg-JR7BVNR7-Cf0UiINZ.js +1 -0
  72. package/dist/web/assets/{railroadDiagram-SM67HX2B-CbQqJD5P.js → railroadDiagram-SM67HX2B-BaHuLDd3.js} +1 -1
  73. package/dist/web/assets/{requirementDiagram-X7JNWC4A-BGmGKspK.js → requirementDiagram-X7JNWC4A-Cdx0JkRV.js} +1 -1
  74. package/dist/web/assets/{sankeyDiagram-UM26HJRW-BrgJVT7k.js → sankeyDiagram-UM26HJRW-Wmb1OXw9.js} +1 -1
  75. package/dist/web/assets/{sequenceDiagram-ZO4K6R2Y-VgSVGmd4.js → sequenceDiagram-ZO4K6R2Y-B0l0Rf12.js} +1 -1
  76. package/dist/web/assets/{stateDiagram-v2-TBUQTH76-DyoK2VR4.js → stateDiagram-v2-TBUQTH76-DzgT3ME7.js} +1 -1
  77. package/dist/web/assets/{swimlanes-N4OXWK64-DFGFtJZB.js → swimlanes-N4OXWK64-CiDMShdL.js} +1 -1
  78. package/dist/web/assets/swimlanesDiagram-K3J5GTZL-BNLW10Yk.js +8 -0
  79. package/dist/web/assets/{timeline-definition-YOQAKGHF-Cqgm-mFB.js → timeline-definition-YOQAKGHF-C0vevBVy.js} +1 -1
  80. package/dist/web/assets/{treeView-D4JQ5SDB-CSP5w1GL.js → treeView-D4JQ5SDB-0qXyE7XG.js} +1 -1
  81. package/dist/web/assets/{treemap-SAJKECNS-DkHwZurr.js → treemap-SAJKECNS-DzfA771k.js} +1 -1
  82. package/dist/web/assets/{usecaseDiagram-VIAY4XPW-C4OqICTk.js → usecaseDiagram-VIAY4XPW-tA8gpVwy.js} +1 -1
  83. package/dist/web/assets/{vennDiagram-BLWOH2XV-C9lYHAeZ.js → vennDiagram-BLWOH2XV-DwCrnY44.js} +1 -1
  84. package/dist/web/assets/{wardley-7MLQ67FV-CPzWT6B3.js → wardley-7MLQ67FV-BdlgtOCQ.js} +1 -1
  85. package/dist/web/assets/{wardleyDiagram-YMQ3BMBF-DXD2__kE.js → wardleyDiagram-YMQ3BMBF-hSTGOEfh.js} +1 -1
  86. package/dist/web/assets/{xychartDiagram-TAQBALBS-Dqxktrov.js → xychartDiagram-TAQBALBS-CDqueuac.js} +1 -1
  87. package/dist/web/index.html +1 -1
  88. package/package.json +2 -2
  89. package/dist/web/assets/PdfViewer-GOg5r-bG.js +0 -2
  90. package/dist/web/assets/architecture-WOLXFQ4H-DqYyXFjD.js +0 -1
  91. package/dist/web/assets/channel-BQKcNNxJ.js +0 -1
  92. package/dist/web/assets/eventmodeling-K75KTNOO-DLCfkEm-.js +0 -1
  93. package/dist/web/assets/flowDiagram-OXPTDLAJ-BqkbyaSw.js +0 -1
  94. package/dist/web/assets/index-D8PP343M.js +0 -350
  95. package/dist/web/assets/railroad-abnf-LNEFI6M7-BeOImRGm.js +0 -1
  96. package/dist/web/assets/railroad-ebnf-DWYD2UWJ-BZhyClCm.js +0 -1
  97. package/dist/web/assets/railroad-peg-JR7BVNR7-DXhvwuLk.js +0 -1
  98. package/dist/web/assets/swimlanesDiagram-K3J5GTZL-BmwDNPXX.js +0 -8
@@ -82,7 +82,9 @@ and validates nothing — validation happens where the rendering decision is mad
82
82
  The agent can author these too, guided by [`skills/structured-exchange`](../skills/structured-exchange/SKILL.md).
83
83
  It presents one through the `present_structure` tool, which validates before showing
84
84
  anything and hands back the diagnostics when it refuses, so a document can be corrected
85
- without leaving the exchange.
85
+ without leaving the exchange. When `schema` or `kind` was written inside `data`, the first
86
+ diagnostic says so (`envelope-inside-data`), ahead of the schema's reasons about every form
87
+ `data` could have taken.
86
88
 
87
89
  Some models write the document straight into their reply instead, as a ```` ```json ````
88
90
  block. Such a block is drawn in place, provided it declares the contract's `schema` and
@@ -100,6 +100,14 @@ JSON Schema decides shape. These are the relational rules that follow it, and th
100
100
  Rules prefixed `schema/` come from the JSON Schema itself; the suffix is the keyword
101
101
  that refused it.
102
102
 
103
+ One diagnostic only ever accompanies those. `envelope-inside-data` names a `schema` or
104
+ `kind` written inside `data` instead of beside it, at its path there (`/data/kind`), and
105
+ comes first: without a top-level `schema` a document is judged as version 1, and without
106
+ a top-level `kind` every form `data` can take says why it is not that form, so the fix
107
+ would otherwise be buried under reasons about graphs, sequences and tables nobody sent.
108
+ It is added to a refusal the schema already makes, never decides one, and removes none
109
+ of the other diagnostics.
110
+
103
111
  ## Running it here
104
112
 
105
113
  ```
@@ -11342,6 +11342,17 @@ function declaredSchemaOf(document) {
11342
11342
  if (typeof schema2 !== "string" || !schema2.startsWith(STRUCTURED_EXCHANGE_SCHEMA_PREFIX)) return void 0;
11343
11343
  return schema2;
11344
11344
  }
11345
+ function misplacedEnvelopeIssues(document) {
11346
+ if (typeof document !== "object" || document === null || Array.isArray(document)) return [];
11347
+ const envelope = document;
11348
+ const data = envelope.data;
11349
+ if (typeof data !== "object" || data === null || Array.isArray(data)) return [];
11350
+ return ["schema", "kind"].filter((field) => envelope[field] === void 0 && data[field] !== void 0).map((field) => ({
11351
+ rule: "envelope-inside-data",
11352
+ path: `/data/${field}`,
11353
+ message: `"${field}" belongs beside "data", at the top of the document, not inside it`
11354
+ }));
11355
+ }
11345
11356
 
11346
11357
  // shared/src/structuredExchangeSchemaNode.ts
11347
11358
  function unwrapSchemaModule(module) {
@@ -11491,7 +11502,7 @@ var checkStructuredExchangeSchema = (document) => {
11491
11502
  })()
11492
11503
  });
11493
11504
  }
11494
- return issues.sort((left, right) => right.path.split("/").length - left.path.split("/").length);
11505
+ return [...misplacedEnvelopeIssues(document), ...issues.sort((left, right) => right.path.split("/").length - left.path.split("/").length)];
11495
11506
  };
11496
11507
 
11497
11508
  // shared/src/structuredExchangeProfile.ts
@@ -14177,7 +14188,7 @@ function rulePatterns(profile, rules, sources) {
14177
14188
  }
14178
14189
 
14179
14190
  // shared/bin/validate-structured-exchange.mjs
14180
- var VERSION = `validate-structured-exchange ${false ? "development" : "0.35.0"}`;
14191
+ var VERSION = `validate-structured-exchange ${false ? "development" : "0.35.2"}`;
14181
14192
  var USAGE = `validate-structured-exchange [file]
14182
14193
  validate-structured-exchange --profile <profile.json> [file]
14183
14194
  validate-structured-exchange --check-profile <profile.json>
@@ -161494,6 +161494,17 @@ function declaredSchemaOf(document4) {
161494
161494
  if (typeof schema2 !== "string" || !schema2.startsWith(STRUCTURED_EXCHANGE_SCHEMA_PREFIX)) return void 0;
161495
161495
  return schema2;
161496
161496
  }
161497
+ function misplacedEnvelopeIssues(document4) {
161498
+ if (typeof document4 !== "object" || document4 === null || Array.isArray(document4)) return [];
161499
+ const envelope = document4;
161500
+ const data = envelope.data;
161501
+ if (typeof data !== "object" || data === null || Array.isArray(data)) return [];
161502
+ return ["schema", "kind"].filter((field) => envelope[field] === void 0 && data[field] !== void 0).map((field) => ({
161503
+ rule: "envelope-inside-data",
161504
+ path: `/data/${field}`,
161505
+ message: `"${field}" belongs beside "data", at the top of the document, not inside it`
161506
+ }));
161507
+ }
161497
161508
  function readStructuredExchangeDocument(serialized, checkSchema, limits) {
161498
161509
  const tooLarge = checkDocumentBytes(serialized, limits);
161499
161510
  if (tooLarge !== void 0) return { status: "too-large", issue: tooLarge };
@@ -172468,7 +172479,7 @@ var checkStructuredExchangeSchema = (document4) => {
172468
172479
  })()
172469
172480
  });
172470
172481
  }
172471
- return issues.sort((left, right) => right.path.split("/").length - left.path.split("/").length);
172482
+ return [...misplacedEnvelopeIssues(document4), ...issues.sort((left, right) => right.path.split("/").length - left.path.split("/").length)];
172472
172483
  };
172473
172484
 
172474
172485
  // ../shared/src/structuredExchangeProfile.ts