@ours.network/messenger-server 1.0.31-nightly.1 → 1.0.31-nightly.11

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 (148) hide show
  1. package/README.md +34 -16
  2. package/dist/chunks/{chunk-2XJ35GPQ.js → chunk-Y5H3QIV5.js} +14 -1
  3. package/dist/chunks/{server-SEIAQMRZ.js → server-T57VZPJ5.js} +2370 -2115
  4. package/dist/cli.js +8 -2
  5. package/package.json +8 -35
  6. package/dist/web/assets/abnfDiagram-VCTEODGH-BqAz8UQD.js +0 -2
  7. package/dist/web/assets/abnfDiagram-VCTEODGH-BqAz8UQD.js.map +0 -1
  8. package/dist/web/assets/arc-vSjkUKNX.js +0 -2
  9. package/dist/web/assets/arc-vSjkUKNX.js.map +0 -1
  10. package/dist/web/assets/architectureDiagram-5GKGNRK7-DEi41_Z6.js +0 -37
  11. package/dist/web/assets/architectureDiagram-5GKGNRK7-DEi41_Z6.js.map +0 -1
  12. package/dist/web/assets/blockDiagram-I7D4REHJ-Cnz78ob-.js +0 -130
  13. package/dist/web/assets/blockDiagram-I7D4REHJ-Cnz78ob-.js.map +0 -1
  14. package/dist/web/assets/browser-C0DAtCD1.js +0 -9
  15. package/dist/web/assets/browser-C0DAtCD1.js.map +0 -1
  16. package/dist/web/assets/c4Diagram-7LVT6UL2-B7sY-ec0.js +0 -39
  17. package/dist/web/assets/c4Diagram-7LVT6UL2-B7sY-ec0.js.map +0 -1
  18. package/dist/web/assets/channel-DOrndbCD.js +0 -2
  19. package/dist/web/assets/channel-DOrndbCD.js.map +0 -1
  20. package/dist/web/assets/chunk-2Q5K7J3B-BxgvNgxI.js +0 -2
  21. package/dist/web/assets/chunk-2Q5K7J3B-BxgvNgxI.js.map +0 -1
  22. package/dist/web/assets/chunk-5VM5RSS4-Cp_9gx7_.js +0 -16
  23. package/dist/web/assets/chunk-5VM5RSS4-Cp_9gx7_.js.map +0 -1
  24. package/dist/web/assets/chunk-F27PBJKO-CQXZb_R_.js +0 -2
  25. package/dist/web/assets/chunk-F27PBJKO-CQXZb_R_.js.map +0 -1
  26. package/dist/web/assets/chunk-IMKFNOWR-Bkh2IWwV.js +0 -232
  27. package/dist/web/assets/chunk-IMKFNOWR-Bkh2IWwV.js.map +0 -1
  28. package/dist/web/assets/chunk-JWPE2WC7-CoXjaX6O.js +0 -2
  29. package/dist/web/assets/chunk-JWPE2WC7-CoXjaX6O.js.map +0 -1
  30. package/dist/web/assets/chunk-POPQ4Y6H-CGHoaylt.js +0 -2
  31. package/dist/web/assets/chunk-POPQ4Y6H-CGHoaylt.js.map +0 -1
  32. package/dist/web/assets/chunk-SVP7TREG-CMk_nH7_.js +0 -89
  33. package/dist/web/assets/chunk-SVP7TREG-CMk_nH7_.js.map +0 -1
  34. package/dist/web/assets/chunk-TICWLB2K-BCCkqFwq.js +0 -207
  35. package/dist/web/assets/chunk-TICWLB2K-BCCkqFwq.js.map +0 -1
  36. package/dist/web/assets/chunk-XXDRQBXY-D_mMcepS.js +0 -2
  37. package/dist/web/assets/chunk-XXDRQBXY-D_mMcepS.js.map +0 -1
  38. package/dist/web/assets/classDiagram-ZZMXUADV-Bksch31H.js +0 -2
  39. package/dist/web/assets/classDiagram-ZZMXUADV-Bksch31H.js.map +0 -1
  40. package/dist/web/assets/classDiagram-v2-VYDZK3BY-Bksch31H.js +0 -2
  41. package/dist/web/assets/classDiagram-v2-VYDZK3BY-Bksch31H.js.map +0 -1
  42. package/dist/web/assets/cose-bilkent-JH36ORCC-D6AnU8Sz.js +0 -2
  43. package/dist/web/assets/cose-bilkent-JH36ORCC-D6AnU8Sz.js.map +0 -1
  44. package/dist/web/assets/cynefin-OW5HDTMX-C-Nl_N-o.js +0 -179
  45. package/dist/web/assets/cynefin-OW5HDTMX-C-Nl_N-o.js.map +0 -1
  46. package/dist/web/assets/cynefinDiagram-5FMLGOSQ-B9Hw1CL9.js +0 -63
  47. package/dist/web/assets/cynefinDiagram-5FMLGOSQ-B9Hw1CL9.js.map +0 -1
  48. package/dist/web/assets/cytoscape.esm-CtNdOvlO.js +0 -332
  49. package/dist/web/assets/cytoscape.esm-CtNdOvlO.js.map +0 -1
  50. package/dist/web/assets/dagre-GXQ25YYZ-5mS3E21D.js +0 -5
  51. package/dist/web/assets/dagre-GXQ25YYZ-5mS3E21D.js.map +0 -1
  52. package/dist/web/assets/defaultLocale-DX6XiGOO.js +0 -2
  53. package/dist/web/assets/defaultLocale-DX6XiGOO.js.map +0 -1
  54. package/dist/web/assets/diagram-S7CK7UJ4-BhjxbYsz.js +0 -31
  55. package/dist/web/assets/diagram-S7CK7UJ4-BhjxbYsz.js.map +0 -1
  56. package/dist/web/assets/diagram-UQ7AKVKN-qV5P0M0k.js +0 -42
  57. package/dist/web/assets/diagram-UQ7AKVKN-qV5P0M0k.js.map +0 -1
  58. package/dist/web/assets/diagram-VSXAHHWV-Oq6j8ZfM.js +0 -4
  59. package/dist/web/assets/diagram-VSXAHHWV-Oq6j8ZfM.js.map +0 -1
  60. package/dist/web/assets/diagram-VX7I27RA-DInAwlnh.js +0 -25
  61. package/dist/web/assets/diagram-VX7I27RA-DInAwlnh.js.map +0 -1
  62. package/dist/web/assets/diagram-Z3DM3KII-BeW-U02r.js +0 -25
  63. package/dist/web/assets/diagram-Z3DM3KII-BeW-U02r.js.map +0 -1
  64. package/dist/web/assets/ebnfDiagram-PWID7BFC-BmbliUpQ.js +0 -2
  65. package/dist/web/assets/ebnfDiagram-PWID7BFC-BmbliUpQ.js.map +0 -1
  66. package/dist/web/assets/erDiagram-RLTQ6QDP-DxkIzCfe.js +0 -100
  67. package/dist/web/assets/erDiagram-RLTQ6QDP-DxkIzCfe.js.map +0 -1
  68. package/dist/web/assets/flowDiagram-HODETNUW-yJmK3SnM.js +0 -169
  69. package/dist/web/assets/flowDiagram-HODETNUW-yJmK3SnM.js.map +0 -1
  70. package/dist/web/assets/ganttDiagram-EL5Y4UJY-j40Wexkl.js +0 -293
  71. package/dist/web/assets/ganttDiagram-EL5Y4UJY-j40Wexkl.js.map +0 -1
  72. package/dist/web/assets/gitGraphDiagram-WWUBYQGX-DbxR7jEx.js +0 -107
  73. package/dist/web/assets/gitGraphDiagram-WWUBYQGX-DbxR7jEx.js.map +0 -1
  74. package/dist/web/assets/index-BlqcHRF3.css +0 -1
  75. package/dist/web/assets/index-By5z1V70.js +0 -332
  76. package/dist/web/assets/index-By5z1V70.js.map +0 -1
  77. package/dist/web/assets/infoDiagram-27XIBGKW-9auMmyZp.js +0 -3
  78. package/dist/web/assets/infoDiagram-27XIBGKW-9auMmyZp.js.map +0 -1
  79. package/dist/web/assets/init-Gi6I4Gst.js +0 -2
  80. package/dist/web/assets/init-Gi6I4Gst.js.map +0 -1
  81. package/dist/web/assets/ishikawaDiagram-5VMMS53U-D8i6ItrD.js +0 -71
  82. package/dist/web/assets/ishikawaDiagram-5VMMS53U-D8i6ItrD.js.map +0 -1
  83. package/dist/web/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  84. package/dist/web/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  85. package/dist/web/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  86. package/dist/web/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  87. package/dist/web/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  88. package/dist/web/assets/journeyDiagram-3NMN7TZE-B4RpnTNA.js +0 -140
  89. package/dist/web/assets/journeyDiagram-3NMN7TZE-B4RpnTNA.js.map +0 -1
  90. package/dist/web/assets/jsQR-BswXXPvN.js +0 -2
  91. package/dist/web/assets/jsQR-BswXXPvN.js.map +0 -1
  92. package/dist/web/assets/kanban-definition-UXKFOSKX-BzPWH9UQ.js +0 -90
  93. package/dist/web/assets/kanban-definition-UXKFOSKX-BzPWH9UQ.js.map +0 -1
  94. package/dist/web/assets/katex-HP8lGamR.js +0 -258
  95. package/dist/web/assets/katex-HP8lGamR.js.map +0 -1
  96. package/dist/web/assets/layout-BkWFkc5o.js +0 -2
  97. package/dist/web/assets/layout-BkWFkc5o.js.map +0 -1
  98. package/dist/web/assets/linear-D4_Pa6Ip.js +0 -2
  99. package/dist/web/assets/linear-D4_Pa6Ip.js.map +0 -1
  100. package/dist/web/assets/mermaid.core-zkggUPKI.js +0 -313
  101. package/dist/web/assets/mermaid.core-zkggUPKI.js.map +0 -1
  102. package/dist/web/assets/mindmap-definition-YA3MSWOX-DkyvqLnv.js +0 -97
  103. package/dist/web/assets/mindmap-definition-YA3MSWOX-DkyvqLnv.js.map +0 -1
  104. package/dist/web/assets/ordinal-Cboi1Yqb.js +0 -2
  105. package/dist/web/assets/ordinal-Cboi1Yqb.js.map +0 -1
  106. package/dist/web/assets/pegDiagram-XKGWAZYB-RuQ99eYH.js +0 -2
  107. package/dist/web/assets/pegDiagram-XKGWAZYB-RuQ99eYH.js.map +0 -1
  108. package/dist/web/assets/pieDiagram-E7YTZNPT-DWE-TPuY.js +0 -40
  109. package/dist/web/assets/pieDiagram-E7YTZNPT-DWE-TPuY.js.map +0 -1
  110. package/dist/web/assets/quadrantDiagram-AXDQQJYC-DcyZxwqP.js +0 -8
  111. package/dist/web/assets/quadrantDiagram-AXDQQJYC-DcyZxwqP.js.map +0 -1
  112. package/dist/web/assets/railroadDiagram-O6MQD6OU-hePFuRXU.js +0 -2
  113. package/dist/web/assets/railroadDiagram-O6MQD6OU-hePFuRXU.js.map +0 -1
  114. package/dist/web/assets/requirementDiagram-BXWQKSXE-1qd7WoU1.js +0 -85
  115. package/dist/web/assets/requirementDiagram-BXWQKSXE-1qd7WoU1.js.map +0 -1
  116. package/dist/web/assets/sankeyDiagram-P5KCCOFB-BSBk_tRB.js +0 -41
  117. package/dist/web/assets/sankeyDiagram-P5KCCOFB-BSBk_tRB.js.map +0 -1
  118. package/dist/web/assets/sequenceDiagram-WJ2MYXX4-HLmi7qSs.js +0 -163
  119. package/dist/web/assets/sequenceDiagram-WJ2MYXX4-HLmi7qSs.js.map +0 -1
  120. package/dist/web/assets/sizeCapture-INFHLROL-BSoS7O-N.js +0 -2
  121. package/dist/web/assets/sizeCapture-INFHLROL-BSoS7O-N.js.map +0 -1
  122. package/dist/web/assets/stateDiagram-D77RDMKH-BIeMp3WC.js +0 -2
  123. package/dist/web/assets/stateDiagram-D77RDMKH-BIeMp3WC.js.map +0 -1
  124. package/dist/web/assets/stateDiagram-v2-MP3YSRHH-1Duuzfrj.js +0 -2
  125. package/dist/web/assets/stateDiagram-v2-MP3YSRHH-1Duuzfrj.js.map +0 -1
  126. package/dist/web/assets/swimlanes-42K2YHIH-y620jBvZ.js +0 -2
  127. package/dist/web/assets/swimlanes-42K2YHIH-y620jBvZ.js.map +0 -1
  128. package/dist/web/assets/swimlanesDiagram-VR7AAH4N-CYyk4X70.js +0 -9
  129. package/dist/web/assets/swimlanesDiagram-VR7AAH4N-CYyk4X70.js.map +0 -1
  130. package/dist/web/assets/timeline-definition-24CTP7MA-BIQkfN-j.js +0 -121
  131. package/dist/web/assets/timeline-definition-24CTP7MA-BIQkfN-j.js.map +0 -1
  132. package/dist/web/assets/vennDiagram-4TSXK5OY-N_jmLZE2.js +0 -35
  133. package/dist/web/assets/vennDiagram-4TSXK5OY-N_jmLZE2.js.map +0 -1
  134. package/dist/web/assets/wardleyDiagram-VM6X3IG4-Cjjf9nZX.js +0 -79
  135. package/dist/web/assets/wardleyDiagram-VM6X3IG4-Cjjf9nZX.js.map +0 -1
  136. package/dist/web/assets/xychartDiagram-S5SC5T6Z-CZMQRxG7.js +0 -8
  137. package/dist/web/assets/xychartDiagram-S5SC5T6Z-CZMQRxG7.js.map +0 -1
  138. package/dist/web/icons/apple-touch-icon.png +0 -0
  139. package/dist/web/icons/favicon-16.png +0 -0
  140. package/dist/web/icons/favicon-32.png +0 -0
  141. package/dist/web/icons/icon-192-maskable.png +0 -0
  142. package/dist/web/icons/icon-192.png +0 -0
  143. package/dist/web/icons/icon-512-maskable.png +0 -0
  144. package/dist/web/icons/icon-512.png +0 -0
  145. package/dist/web/index.html +0 -19
  146. package/dist/web/manifest.webmanifest +0 -17
  147. package/dist/web/sw.js +0 -181
  148. package/dist/web/version.json +0 -1
package/README.md CHANGED
@@ -54,7 +54,7 @@ exit unsuccessfully; repeated close calls retain that result.
54
54
 
55
55
  ## Running
56
56
 
57
- Install and start the shared daemon with `@ours.network/cli`, create the identity
57
+ Install and start the shared daemon with `@ours.network/daemon`, create the identity
58
58
  there, then start messenger with the same daemon selection. The following
59
59
  example uses the temporary local configuration path:
60
60
 
@@ -62,9 +62,9 @@ example uses the temporary local configuration path:
62
62
  npm install
63
63
  npm run build
64
64
 
65
- # One-time host setup. These commands come from @ours.network/cli.
66
- ours config setup --port 3070 --state-dir /srv/ours
67
- ours daemon start
65
+ # One-time host setup: daemon lifecycle is separate from API client commands.
66
+ ours-daemon config setup --port 3070 --state-dir /srv/ours
67
+ ours-daemon start
68
68
  ours identity create-root --name 'Ada@server'
69
69
 
70
70
  OURS_MESSENGER_STATE_DIR=/srv/ours-messenger \
@@ -95,11 +95,11 @@ OURS_MESSENGER_VAPID_PRIVATE_KEY optional secret; never expose to the browser
95
95
  OURS_MESSENGER_VAPID_SUBJECT default mailto:admin@localhost
96
96
  ```
97
97
 
98
- The production build is an installable React 18 + TypeScript PWA emitted by Vite under
99
- `dist/web`: `index.html` is no-cache, while content-hashed `/assets/*` are served
100
- immutable with explicit MIME types and `nosniff`. During frontend-only work,
101
- `npm run dev` starts Vite on loopback and proxies `/api` and `/mcp` to the
102
- messenger server; use `npm run dev:server` for the backend process.
98
+ The browser application is built in the standalone `ours-web` repository. Set
99
+ `OURS_MESSENGER_WEB_DIR` to its `dist/web` directory if this server should host
100
+ that artifact; without it the API remains available and frontend routes report
101
+ 503. Static hosting keeps `index.html` uncached and hashed assets immutable.
102
+ Use `npm run dev:server` for backend development.
103
103
 
104
104
  Every state-changing HTTP request must carry `Content-Type: application/json`,
105
105
  an exact single `Origin` equal to `OURS_MESSENGER_PUBLIC_ORIGIN`, and
@@ -134,9 +134,7 @@ The focused client does not persist messages, identities, receipts, or API
134
134
  responses in browser storage. Its service worker caches only the application
135
135
  shell and static assets for offline launch; all `/api/*` requests bypass it.
136
136
 
137
- The web UI and its same-origin transport adapter are maintained together in
138
- this repository; their presentation scope and transport exclusions are recorded
139
- in `web/src/CANONICAL_UI_PROVENANCE.md`. The interface
137
+ The web UI and its same-origin transport adapter now live in the standalone `ours-web` repository. This repository builds only the Messenger backend. To optionally serve a separately built frontend, set `OURS_MESSENGER_WEB_DIR` to its `dist/web` directory; otherwise deploy the API behind the same-origin frontend gateway. The interface
140
138
  includes grouped identity-root contacts; contact add, approval, rename and
141
139
  removal; one-time/public invite creation and revocation; public bio editing;
142
140
  message and attachment replies; drag/drop/paste and picker uploads with bounded
@@ -313,10 +311,11 @@ conversation reads, graceful lease release, bundle execution, token redaction,
313
311
  `/mcp` 404, programmatic shutdown and partial-start rollback, receipt semantics,
314
312
  REST/WebPush encryption and full payloads, reply correlation, immutable media and
315
313
  version round-trips, hostile top-level media navigation, exact voice MIME/bytes,
316
- sandboxed previews, corrupt push-state preservation/recovery, PWA cache
317
- isolation/installability/offline launch in Chromium, SSE backpressure and
318
- reconnect, cursor paging with stable scroll anchoring, invite-dialog reopen,
319
- focused-client contracts and the exact-dialog read gate.
314
+ sandboxed preview responses, corrupt push-state preservation/recovery and SSE
315
+ backpressure. UI, PWA, browser layout, and client read-gate tests live in `ours-web`.
316
+ The optional `tests/v1-live-push.integration.mjs` service integration requires
317
+ Firefox, public Autopush egress, and an explicit `OURS_MESSENGER_WEB_DIR` pointing
318
+ to a separately built frontend; it is outside the default local test suite.
320
319
 
321
320
  ## SDK lifecycle boundary
322
321
 
@@ -391,3 +390,22 @@ node scripts/check-build-selected.mjs --sdk /artifacts/ours.network-sdk-3.7.2.tg
391
390
  ```
392
391
 
393
392
  For development against the selected, unpublished SDK/CLI sources, see [selected-source development](docs/selected-source-development.md).
393
+
394
+ ### Gateway mount path
395
+
396
+ Set `OURS_MESSENGER_BASE_PATH=/base/messenger/` when a reverse proxy strips that prefix before forwarding to Messenger. `OURS_MESSENGER_PUBLIC_ORIGIN` remains the exact external origin, for example `https://ours.example`, with no path. Assets, API requests, browser routes, service-worker scope and presence WebSockets retain the configured mount. `ours-messenger-server capabilities` reports `messenger.gateway-prefix-v1`.
397
+
398
+ Messenger still has no application authentication. Use the installer's loopback gateway or an authenticated external proxy/tunnel. A shared gateway origin trusts every hosted application; path prefixes and Cowork's separate server-token prompt do not isolate or authenticate Messenger. Keep backend ports private and use the installer documentation's browser-authenticated entry configuration.
399
+
400
+ ### Fleet web application
401
+
402
+ The live local Fleet application is available at `/fleet`; Messenger remains at `/chats`.
403
+ Use the companion Fleet gateway and its local password/session authentication.
404
+ See [Fleet setup and verification](docs/FLEET-PREVIEW.md) for connection requirements,
405
+ current coverage and limitations. `npm run test:fleet` runs the current isolated fixture gates.
406
+ The older mock walkthrough and its browser tests describe an earlier design stage.
407
+
408
+
409
+ ### Dedicated notification service
410
+
411
+ Set `OURS_NOTIFICATIONS_ORIGIN` and a Messenger-scoped `OURS_NOTIFICATIONS_PRODUCER_TOKEN` to forward incoming messages/files to [ours-notifications](https://github.com/adapt-toolkit/ours-notifications). Both settings must be provided together. The canonical watcher durably queues notifications even without a local push binding, freezes projected content before its first HTTP attempt, and retries the same payload after outages/restarts. Keep the Messenger state directory across restarts. When configured, new events use the dedicated service; legacy pending push jobs may finish. Existing standalone push endpoints remain for compatibility.
@@ -38,10 +38,21 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
38
38
  var define_MESSENGER_BUILD_INFO_default;
39
39
  var init_define_MESSENGER_BUILD_INFO = __esm({
40
40
  "<define:__MESSENGER_BUILD_INFO__>"() {
41
- define_MESSENGER_BUILD_INFO_default = { name: "@ours.network/messenger-server", version: "1.0.31-nightly.1", sha: "1f3321299aaedb9412f2a4b733c317b3ccdeccf5", dirty: true };
41
+ define_MESSENGER_BUILD_INFO_default = { name: "@ours.network/messenger-server", version: "1.0.31-nightly.11", sha: "0b84916c7fa85aa89cc5fcc004fb6b7cd79a26cd", dirty: true };
42
42
  }
43
43
  });
44
44
 
45
+ // src/base-path.ts
46
+ init_define_MESSENGER_BUILD_INFO();
47
+ function normalizeBasePath(value = "/") {
48
+ if (!/^\/(?:[A-Za-z0-9_-]+\/)*[A-Za-z0-9_-]*$/.test(value)) throw new Error("Base path must contain plain URL path segments");
49
+ return value === "/" ? "/" : value.replace(/\/$/, "") + "/";
50
+ }
51
+ function prefixDocument(html, basePath) {
52
+ const base = normalizeBasePath(basePath);
53
+ return html.replace("<head>", `<head><meta name="ours-base-path" content="${base}">`).replace(/((?:src|href)=")\.?\/(?!\/)([^"\s]+)(")/g, `$1${base}$2$3`);
54
+ }
55
+
45
56
  // src/security.ts
46
57
  init_define_MESSENGER_BUILD_INFO();
47
58
  import { randomUUID } from "node:crypto";
@@ -84,6 +95,8 @@ export {
84
95
  __toESM,
85
96
  init_define_MESSENGER_BUILD_INFO,
86
97
  define_MESSENGER_BUILD_INFO_default,
98
+ normalizeBasePath,
99
+ prefixDocument,
87
100
  ConfigurationError,
88
101
  operatorError,
89
102
  reportFailure,