pi-outpost 0.17.1 → 0.19.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.
Files changed (96) hide show
  1. package/README.md +9 -2
  2. package/dist/contract/README.md +30 -6
  3. package/dist/contract/conformance/README.md +5 -0
  4. package/dist/pi-outpost.mjs +586 -195
  5. package/dist/pi-outpost.sea.mjs +810 -419
  6. package/dist/sea-prep.blob +0 -0
  7. package/dist/web/assets/{PdfViewer-C8aAll-_.js → PdfViewer-C1Pkb_e1.js} +2 -2
  8. package/dist/web/assets/{abnfDiagram-VCTEODGH-Db1JTpkh.js → abnfDiagram-VCTEODGH-DvwMyT5Y.js} +1 -1
  9. package/dist/web/assets/architecture-7GRP2DOG-DcKrYML6.js +1 -0
  10. package/dist/web/assets/{architectureDiagram-5GKGNRK7-33q_ab11.js → architectureDiagram-5GKGNRK7-Di_Z2I9P.js} +1 -1
  11. package/dist/web/assets/{blockDiagram-OSKFZWR5-DrFUE2J2.js → blockDiagram-OSKFZWR5-DSJN-AAV.js} +1 -1
  12. package/dist/web/assets/{c4Diagram-7LVT6UL2-yED7o5Q3.js → c4Diagram-7LVT6UL2-DOy6acz7.js} +1 -1
  13. package/dist/web/assets/channel-C4x9Ly5M.js +1 -0
  14. package/dist/web/assets/{chunk-3NF5O7KM-CSi1D5d4.js → chunk-3NF5O7KM-D_wJmWI2.js} +1 -1
  15. package/dist/web/assets/{chunk-4HAMMTFA-DEpyMLBH.js → chunk-4HAMMTFA-DieJHg1X.js} +1 -1
  16. package/dist/web/assets/{chunk-75Z2AOVW-Ds4bSkJa.js → chunk-75Z2AOVW-C5xPPMTA.js} +1 -1
  17. package/dist/web/assets/{chunk-DU6HZSFF-szpygLUP.js → chunk-DU6HZSFF-CwebSH0e.js} +1 -1
  18. package/dist/web/assets/{chunk-F27PBJKO-DxcPzi-C.js → chunk-F27PBJKO-CqcWQhcA.js} +1 -1
  19. package/dist/web/assets/{chunk-GMAD6QVW-BXGe2Uxn.js → chunk-GMAD6QVW-DMdAXsoH.js} +1 -1
  20. package/dist/web/assets/{chunk-GVQU2GXP-DXBSe-mn.js → chunk-GVQU2GXP-BtBQYW2P.js} +1 -1
  21. package/dist/web/assets/{chunk-HLEWEB6X-CsA9Z3tD.js → chunk-HLEWEB6X-Cg-m1dYJ.js} +1 -1
  22. package/dist/web/assets/{chunk-L3NEJ4N5-B3OzqGXT.js → chunk-L3NEJ4N5-BUsy8Oli.js} +1 -1
  23. package/dist/web/assets/{chunk-OSK3NFVY-CldsuFyv.js → chunk-OSK3NFVY-DEm-hsZn.js} +1 -1
  24. package/dist/web/assets/{chunk-P2QGCYS3-BbotNLAn.js → chunk-P2QGCYS3-BVjSAOVD.js} +1 -1
  25. package/dist/web/assets/{chunk-POPQ4Y6H-CrAm8Ugg.js → chunk-POPQ4Y6H-CuUhrbjW.js} +1 -1
  26. package/dist/web/assets/{chunk-PWAF6VOD-DhuIkgVO.js → chunk-PWAF6VOD-CJwp5Fs-.js} +1 -1
  27. package/dist/web/assets/{chunk-SVP7TREG-DibXABfy.js → chunk-SVP7TREG-D6y43P3y.js} +1 -1
  28. package/dist/web/assets/{chunk-ZLD2IHE6-DSIDAkv0.js → chunk-ZLD2IHE6-DQRzu0m3.js} +1 -1
  29. package/dist/web/assets/classDiagram-CYGNFDIV-CLG608pM.js +1 -0
  30. package/dist/web/assets/classDiagram-v2-TLXNO2FR-CLG608pM.js +1 -0
  31. package/dist/web/assets/{cynefin-OW5HDTMX-DKmFeEv7.js → cynefin-OW5HDTMX-D-gsIusK.js} +1 -1
  32. package/dist/web/assets/{cynefinDiagram-5FMLGOSQ-DzfPbW3N.js → cynefinDiagram-5FMLGOSQ-CyQ06GPl.js} +1 -1
  33. package/dist/web/assets/{dagre-OS7QT2EB-DH9WU8Tz.js → dagre-OS7QT2EB-DdWsS_LB.js} +1 -1
  34. package/dist/web/assets/{diagram-S7CK7UJ4-CI5l65Rw.js → diagram-S7CK7UJ4-BzBBx-Qo.js} +1 -1
  35. package/dist/web/assets/{diagram-UQ7AKVKN-C4OXEGq6.js → diagram-UQ7AKVKN-BUQJoqfu.js} +1 -1
  36. package/dist/web/assets/{diagram-VSXAHHWV-Dt7wz4JJ.js → diagram-VSXAHHWV-DnuMoFZ8.js} +1 -1
  37. package/dist/web/assets/{diagram-VX7I27RA-7XMJ249G.js → diagram-VX7I27RA-Cv3rjTst.js} +1 -1
  38. package/dist/web/assets/{diagram-Z3DM3KII-DlPmhb72.js → diagram-Z3DM3KII-Dt7_6D20.js} +1 -1
  39. package/dist/web/assets/{ebnfDiagram-PWID7BFC-DpQd2gZt.js → ebnfDiagram-PWID7BFC-sxe5cMKD.js} +1 -1
  40. package/dist/web/assets/{erDiagram-2YWLMYGG-CLLWbgdW.js → erDiagram-2YWLMYGG-LM7p20RE.js} +1 -1
  41. package/dist/web/assets/eventmodeling-NTZA5JFV-Bt5ZQreO.js +1 -0
  42. package/dist/web/assets/flowDiagram-T62WH6J4-DsTMXnwR.js +1 -0
  43. package/dist/web/assets/{ganttDiagram-EL5Y4UJY-wXGqig-4.js → ganttDiagram-EL5Y4UJY-Cq4J4J_Q.js} +1 -1
  44. package/dist/web/assets/{gitGraph-4MIJSDKK-B6mk9uI8.js → gitGraph-4MIJSDKK-BoypRpyG.js} +1 -1
  45. package/dist/web/assets/{gitGraphDiagram-WWUBYQGX-Dw76kHPl.js → gitGraphDiagram-WWUBYQGX-DwLars5l.js} +1 -1
  46. package/dist/web/assets/index-a2-BTQQk.css +2 -0
  47. package/dist/web/assets/{index-Dhnfwv46.js → index-epcaYgV9.js} +17 -17
  48. package/dist/web/assets/{info-A6RAGUB7-PIRDlfIm.js → info-A6RAGUB7-R3OpdmXx.js} +1 -1
  49. package/dist/web/assets/{infoDiagram-FKFFQAWI-DIDcQO8u.js → infoDiagram-FKFFQAWI-BNExPfh6.js} +1 -1
  50. package/dist/web/assets/{ishikawaDiagram-5VMMS53U-D25IN-cx.js → ishikawaDiagram-5VMMS53U-BVho0ZFq.js} +1 -1
  51. package/dist/web/assets/{journeyDiagram-EYS64GPL-BO_soeGw.js → journeyDiagram-EYS64GPL-D264MMlO.js} +1 -1
  52. package/dist/web/assets/{kanban-definition-UXKFOSKX-Ci8se-6U.js → kanban-definition-UXKFOSKX-CSSba_Fa.js} +1 -1
  53. package/dist/web/assets/{line-DbEpeU15.js → line-iFtNXp4U.js} +1 -1
  54. package/dist/web/assets/{mermaid-parser.core-C3wkoJam.js → mermaid-parser.core-HNHWT5qD.js} +3 -3
  55. package/dist/web/assets/{mermaid.core-iuEQ7W5G.js → mermaid.core-dpm361jh.js} +4 -4
  56. package/dist/web/assets/{mindmap-definition-THT77NOG-BPQQjS6B.js → mindmap-definition-THT77NOG-BvyBXS-r.js} +1 -1
  57. package/dist/web/assets/{packet-AYTQ26CC-BXboZlBA.js → packet-AYTQ26CC-BLT1JcPK.js} +1 -1
  58. package/dist/web/assets/{pdf-CiA8jkHf.js → pdf-DBnooIx5.js} +1 -1
  59. package/dist/web/assets/{pegDiagram-XKGWAZYB-CkhgFtvu.js → pegDiagram-XKGWAZYB-f6vjTIKe.js} +1 -1
  60. package/dist/web/assets/{pie-WAS4IAKB-BRuBI3Jg.js → pie-WAS4IAKB-BHMx3jfM.js} +1 -1
  61. package/dist/web/assets/{pieDiagram-E7YTZNPT-Ckz_COAm.js → pieDiagram-E7YTZNPT-Bji9fUbz.js} +1 -1
  62. package/dist/web/assets/{quadrantDiagram-AXDQQJYC-CT9K6O1Y.js → quadrantDiagram-AXDQQJYC-iX__bBW2.js} +1 -1
  63. package/dist/web/assets/{radar-RG4KPBEZ-rorVltLA.js → radar-RG4KPBEZ-D8BF635N.js} +1 -1
  64. package/dist/web/assets/{railroad-74A4TZTK-Dr8ft4gL.js → railroad-74A4TZTK-DaGmFPNb.js} +1 -1
  65. package/dist/web/assets/railroad-abnf-HS5TGJTU-SKo41qj6.js +1 -0
  66. package/dist/web/assets/railroad-ebnf-LZEXJU2U-CUlkXdER.js +1 -0
  67. package/dist/web/assets/railroad-peg-WCYAUIDC-ZJ-P0eGh.js +1 -0
  68. package/dist/web/assets/{railroadDiagram-O6MQD6OU-C2gzCIN4.js → railroadDiagram-O6MQD6OU-Dd8AeYLV.js} +1 -1
  69. package/dist/web/assets/{requirementDiagram-IS5BZ75X-Bzolo0HO.js → requirementDiagram-IS5BZ75X-DF_XyRPo.js} +1 -1
  70. package/dist/web/assets/{sankeyDiagram-P5KCCOFB-DVlW_7k9.js → sankeyDiagram-P5KCCOFB-D9LgGegF.js} +1 -1
  71. package/dist/web/assets/{sequenceDiagram-WJ2MYXX4-B_Mak3oD.js → sequenceDiagram-WJ2MYXX4-CoE-v8jY.js} +1 -1
  72. package/dist/web/assets/{stateDiagram-XQSTLZYL-B-LgCIeP.js → stateDiagram-XQSTLZYL-B2W4GLJn.js} +1 -1
  73. package/dist/web/assets/stateDiagram-v2-IH3M54BS-c0KspB5G.js +1 -0
  74. package/dist/web/assets/{swimlanes-V6O3JKXN-BNde7mY2.js → swimlanes-V6O3JKXN-BDPxvxCb.js} +1 -1
  75. package/dist/web/assets/swimlanesDiagram-JKAHXJPX-ByPiqS-0.js +8 -0
  76. package/dist/web/assets/{timeline-definition-24CTP7MA-DKsjMNS-.js → timeline-definition-24CTP7MA-HoAXhJJz.js} +1 -1
  77. package/dist/web/assets/{treeView-Q6P3EWNA-ys2pRmxJ.js → treeView-Q6P3EWNA-DEzJQS3D.js} +1 -1
  78. package/dist/web/assets/{treemap-WGGIJYW6-BCHsXa_a.js → treemap-WGGIJYW6-DLUPBE5g.js} +1 -1
  79. package/dist/web/assets/{vennDiagram-4TSXK5OY-Bky0i57O.js → vennDiagram-4TSXK5OY-B6uDVurs.js} +1 -1
  80. package/dist/web/assets/{wardley-WFR3VGLG-CPmf7cHe.js → wardley-WFR3VGLG-8oCGNi0N.js} +1 -1
  81. package/dist/web/assets/{wardleyDiagram-VM6X3IG4-YenJhzWj.js → wardleyDiagram-VM6X3IG4-C45lYxTq.js} +1 -1
  82. package/dist/web/assets/{xychartDiagram-S5SC5T6Z-tzFoA7wR.js → xychartDiagram-S5SC5T6Z-BUwu6Tdt.js} +1 -1
  83. package/dist/web/index.html +2 -2
  84. package/package.json +1 -1
  85. package/dist/web/assets/architecture-7GRP2DOG-DZFv4a-H.js +0 -1
  86. package/dist/web/assets/channel-ChLhUZUf.js +0 -1
  87. package/dist/web/assets/classDiagram-CYGNFDIV-D63Gy4ck.js +0 -1
  88. package/dist/web/assets/classDiagram-v2-TLXNO2FR-D63Gy4ck.js +0 -1
  89. package/dist/web/assets/eventmodeling-NTZA5JFV-D6h8DvjR.js +0 -1
  90. package/dist/web/assets/flowDiagram-T62WH6J4-Cu1dLTgs.js +0 -1
  91. package/dist/web/assets/index-1S2sdaeS.css +0 -2
  92. package/dist/web/assets/railroad-abnf-HS5TGJTU-q1ci31eh.js +0 -1
  93. package/dist/web/assets/railroad-ebnf-LZEXJU2U-DvdG3YCg.js +0 -1
  94. package/dist/web/assets/railroad-peg-WCYAUIDC-C5g6xHWI.js +0 -1
  95. package/dist/web/assets/stateDiagram-v2-IH3M54BS-CqdocFXU.js +0 -1
  96. package/dist/web/assets/swimlanesDiagram-JKAHXJPX-Dcx7H3fF.js +0 -8
package/README.md CHANGED
@@ -7,7 +7,10 @@ npx pi-outpost init # writes a starter pi-outpost.config.json here
7
7
  npx pi-outpost # http://127.0.0.1:3141/
8
8
  ```
9
9
 
10
- Requires Node ≥ 22.19 and [pi](https://github.com/earendil-works/pi) configured (`~/.pi/agent/auth.json`, or a provider variable like `ANTHROPIC_API_KEY`).
10
+ Requires Node ≥ 24 and a model credential (`~/.pi/agent/auth.json`, a provider variable
11
+ like `ANTHROPIC_API_KEY`, or the setup screen). The default embedded runtime already carries
12
+ the [pi coding agent](https://github.com/earendil-works/pi); a separate `pi` executable is
13
+ needed only when `agentRuntime.mode` is `"rpc"`.
11
14
 
12
15
  ## It will not start without a configuration file
13
16
 
@@ -37,8 +40,12 @@ The **first** of these that exists is read, and only that one — configurations
37
40
  | `--cwd <dir>` | Directory the agent works in |
38
41
  | `--agent-dir <dir>` | pi config/session store (default `~/.pi/agent`) |
39
42
  | `--port <n>` / `--host <addr>` | Where to listen (default `127.0.0.1:3141`) |
43
+ | `--offline` | Never fetch remote model catalogs |
44
+ | `--open` / `--no-open` | Whether to open the interface once listening |
45
+ | `--open-in window\|browser` | Open in a standalone window (default) or a browser tab |
40
46
 
41
- Environment: `PI_OUTPOST_PORT` (falls back to `PORT`), `PI_OUTPOST_HOST`, `PI_OUTPOST_CWD`, `PI_OUTPOST_AGENT_DIR`, `PI_OUTPOST_TOKEN`.
47
+ Environment: `PI_OUTPOST_PORT` (falls back to `PORT`), `PI_OUTPOST_HOST`,
48
+ `PI_OUTPOST_CWD`, `PI_OUTPOST_AGENT_DIR`, `PI_OUTPOST_TOKEN`, `PI_OFFLINE`.
42
49
 
43
50
  ## Security
44
51
 
@@ -118,6 +118,28 @@ Diagnostics name the rule and point at the value:
118
118
 
119
119
  Every broken rule is reported, not just the first.
120
120
 
121
+ ## Grouping graph and sequence elements
122
+
123
+ Graphs and sequences may declare `data.containers`, then assign a node or participant with
124
+ its `container` field:
125
+
126
+ ```json
127
+ {
128
+ "schema": "urn:structured-exchange:1",
129
+ "kind": "graph",
130
+ "data": {
131
+ "containers": [{ "id": "backend", "label": "Backend", "kind": "service-group" }],
132
+ "nodes": [{ "id": "billing", "label": "Billing", "container": "backend" }],
133
+ "edges": []
134
+ }
135
+ }
136
+ ```
137
+
138
+ A container groups elements visually; it is not itself an element or relationship endpoint.
139
+ Container identifiers must be unique, and every `container` reference must resolve to one
140
+ declared in the same document. Moving an existing element between containers is a change, so
141
+ put the new container id under `set.container` beside that element's `ref`.
142
+
121
143
  ## Getting a diagram into a document
122
144
 
123
145
  Use **download SVG**, then insert the file as a picture. Word does not accept an SVG
@@ -136,12 +158,14 @@ and an envelope declaring a table with a `target` or a `removal` is refused. It
136
158
  still report on a change it projects. Any row may declare what it plays:
137
159
 
138
160
  ```json
139
- "rows": [
140
- { "role": "added", "cells": ["REQ-5", "Log every actuation.", "draft"] },
141
- { "role": "changed", "cells": ["REQ-2", "Signal a fault within 200 ms.", "in review"] },
142
- { "role": "removed", "cells": ["REQ-3", "Read battery voltage at 10 Hz.", "withdrawn"] },
143
- { "cells": ["REQ-1", "Stop within 40 m.", "approved"] }
144
- ]
161
+ {
162
+ "rows": [
163
+ { "role": "added", "cells": ["REQ-5", "Log every actuation.", "draft"] },
164
+ { "role": "changed", "cells": ["REQ-2", "Signal a fault within 200 ms.", "in review"] },
165
+ { "role": "removed", "cells": ["REQ-3", "Read battery voltage at 10 Hz.", "withdrawn"] },
166
+ { "cells": ["REQ-1", "Stop within 40 m.", "approved"] }
167
+ ]
168
+ }
145
169
  ```
146
170
 
147
171
  `role` is `added`, `changed`, `context` or `removed`, and it is rendered with the
@@ -23,11 +23,16 @@ JSON Schema decides shape. These are the relational rules that follow it, and th
23
23
  | Rule | What it refuses |
24
24
  |---|---|
25
25
  | `duplicate-identifier` | two elements sharing an envelope-scoped `id` |
26
+ | `duplicate-container-identifier` | two containers sharing an `id` |
26
27
  | `unresolved-endpoint` | a relationship endpoint that no declared element carries |
28
+ | `unresolved-container` | an element assigned to a container the document never declares |
27
29
  | `kind-data-mismatch` | a declared `kind` that disagrees with the data variant present |
28
30
  | `kind-not-proposable` | a `table` carrying a `target` or a `removal` |
29
31
  | `removal-without-target` | a removal in a document that targets nothing |
30
32
  | `duplicate-reference` | the same reference addressed twice — changed twice, or changed and removed |
33
+ | `change-without-reference` | a `set` with no `ref` naming what should change |
34
+ | `change-without-target` | a `set` in an envelope that names no target authority |
35
+ | `too-many-kinds` | more distinct element or relationship kinds than the rendering can distinguish |
31
36
  | `row-column-mismatch` | a row whose length differs from the declared columns |
32
37
 
33
38
  Rules prefixed `schema/` come from the JSON Schema itself; the suffix is the keyword