@mneme-ai/core 1.89.0 → 1.91.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 (35) hide show
  1. package/dist/agent_manifest.d.ts.map +1 -1
  2. package/dist/agent_manifest.js +3 -1
  3. package/dist/agent_manifest.js.map +1 -1
  4. package/dist/genesplice/soul_prompt.d.ts.map +1 -1
  5. package/dist/genesplice/soul_prompt.js +7 -0
  6. package/dist/genesplice/soul_prompt.js.map +1 -1
  7. package/dist/rainbow/index.d.ts +4 -0
  8. package/dist/rainbow/index.d.ts.map +1 -1
  9. package/dist/rainbow/index.js +4 -0
  10. package/dist/rainbow/index.js.map +1 -1
  11. package/dist/rainbow/multi_paste.d.ts +38 -0
  12. package/dist/rainbow/multi_paste.d.ts.map +1 -0
  13. package/dist/rainbow/multi_paste.js +41 -0
  14. package/dist/rainbow/multi_paste.js.map +1 -0
  15. package/dist/rainbow/page_renderer.d.ts +48 -0
  16. package/dist/rainbow/page_renderer.d.ts.map +1 -0
  17. package/dist/rainbow/page_renderer.js +221 -0
  18. package/dist/rainbow/page_renderer.js.map +1 -0
  19. package/dist/rainbow/resource_hints.d.ts +30 -0
  20. package/dist/rainbow/resource_hints.d.ts.map +1 -0
  21. package/dist/rainbow/resource_hints.js +84 -0
  22. package/dist/rainbow/resource_hints.js.map +1 -0
  23. package/dist/rainbow/tunnel.d.ts +37 -0
  24. package/dist/rainbow/tunnel.d.ts.map +1 -0
  25. package/dist/rainbow/tunnel.js +79 -0
  26. package/dist/rainbow/tunnel.js.map +1 -0
  27. package/dist/rainbow/v1_90.test.d.ts +2 -0
  28. package/dist/rainbow/v1_90.test.d.ts.map +1 -0
  29. package/dist/rainbow/v1_90.test.js +157 -0
  30. package/dist/rainbow/v1_90.test.js.map +1 -0
  31. package/dist/rainbow/v1_91.test.d.ts +2 -0
  32. package/dist/rainbow/v1_91.test.d.ts.map +1 -0
  33. package/dist/rainbow/v1_91.test.js +111 -0
  34. package/dist/rainbow/v1_91.test.js.map +1 -0
  35. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"agent_manifest.d.ts","sourceRoot":"","sources":["../src/agent_manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent_manifest.d.ts","sourceRoot":"","sources":["../src/agent_manifest.ts"],"names":[],"mappings":"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"}
@@ -174,7 +174,9 @@ export const MNEME_COMMAND_CATALOG = [
174
174
  { command: "mneme.anchor.clipboard_write", since: "1.88.0", group: "anchor", what: "Write text to the OS clipboard. With Phone Link / Universal Clipboard / KDE Connect configured, it appears on the user's phone within seconds.", when: "User wants the lowest-friction cross-device handoff path." },
175
175
  // ─── v1.89 RAINBOW (multi-channel handoff orchestrator) ──────────────
176
176
  { command: "mneme.rainbow.probe", since: "1.89.0", group: "rainbow", what: "Probe live handoff channels (LAN / data: URL bridge / dpaste raw / roadmap channels). Returns recommended channel + per-channel scenario coverage.", when: "Before generating a handoff: ask which channels work in the current network state." },
177
- { command: "mneme.rainbow.data_bridge", since: "1.89.0", group: "rainbow", what: "Build a data: URL HTML bridge for a dpaste URL. The wild move -- entire handoff page lives in the QR; phone scans renders fetches soul Web Share button.", when: "Cross-network handoff when LAN bridge isn't reachable AND user wants 1-tap on phone." },
177
+ { command: "mneme.rainbow.data_bridge", since: "1.89.0", group: "rainbow", what: "Build a data: URL HTML bridge for a dpaste URL. NOTE v1.90: modern Chrome/Safari block top-level data: URL navigation; kept for compat but DEPRECATED in favour of cloudflared tunnel.", when: "Legacy only -- prefer mneme.rainbow.tunnel_detect + cloudflared for working cross-network 1-tap." },
178
+ { command: "mneme.rainbow.tunnel_detect", since: "1.90.0", group: "rainbow", what: "Detect cloudflared on PATH (free quick tunnels, no account). Returns availability + version + per-OS install hint.", when: "Before generating cross-network handoff: tunnel = true 1-tap on any network." },
179
+ { command: "mneme.rainbow.multi_paste", since: "1.90.0", group: "rainbow", what: "Upload soul to public paste with automatic backend fallback (dpaste → paste.rs → 0x0.st). Handles rate limits + transient failures with attempt log.", when: "Cross-network handoff fallback when tunnel unavailable or LAN unreachable." },
178
180
  ];
179
181
  const SENTINEL_BEGIN = "<!-- BEGIN MNEME MANIFEST (auto-managed -- do not edit) -->";
180
182
  const SENTINEL_END = "<!-- END MNEME MANIFEST -->";
@@ -1 +1 @@
1
- {"version":3,"file":"agent_manifest.js","sourceRoot":"","sources":["../src/agent_manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent_manifest.js","sourceRoot":"","sources":["../src/agent_manifest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"soul_prompt.d.ts","sourceRoot":"","sources":["../../src/genesplice/soul_prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAMpF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB;uEACmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;2CAGuC;IACvC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAcD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,UAAU,CA+DvE;AAED,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gCAAgC;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;CAC9D;AAED;;0CAE0C;AAC1C,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAsDrF"}
1
+ {"version":3,"file":"soul_prompt.d.ts","sourceRoot":"","sources":["../../src/genesplice/soul_prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAOpF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB;uEACmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;2CAGuC;IACvC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAcD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,UAAU,CAqEvE;AAED,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gCAAgC;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;CAC9D;AAED;;0CAE0C;AAC1C,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAsDrF"}
@@ -46,6 +46,7 @@ import { renderVoiceDirective } from "../seamless/voice_directive.js";
46
46
  import { renderDictionary } from "../lattice/dictionary.js";
47
47
  import { renderRelayBlock } from "../conduit/relay_prompt.js";
48
48
  import { renderVersionGate } from "../conduit/version_gate.js";
49
+ import { renderHomunculusRequest } from "../abyss/homunculus.js";
49
50
  const TOK_PER_WORD = 1.3;
50
51
  function estTokens(s) {
51
52
  return Math.round(s.split(/\s+/).filter(Boolean).length * TOK_PER_WORD);
@@ -88,6 +89,12 @@ export function compressToSoulPrompt(input) {
88
89
  "",
89
90
  renderVersionGate(capsule.createdAt),
90
91
  "",
92
+ // v1.91: embed HOMUNCULUS request by default so receiving AIs know
93
+ // to emit a structured RETURN block the user can paste back to the
94
+ // editor AI for actual Mneme tool execution. Closes the cycle:
95
+ // editor → web (memory) → web suggests → user pastes back → editor executes.
96
+ renderHomunculusRequest({ originatorVendor: capsule.originVendor, ask: ["decisions", "reasoning", "next-actions"] }),
97
+ "",
91
98
  `## Origin`,
92
99
  `vendor=${capsule.originVendor} capsule=${capsule.id} fingerprint=${capsule.repoFingerprint} createdAt=${capsule.createdAt}`,
93
100
  "",
@@ -1 +1 @@
1
- {"version":3,"file":"soul_prompt.js","sourceRoot":"","sources":["../../src/genesplice/soul_prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,EAAE,uBAAuB,EAAkB,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AA2B/D,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,QAAgB;IAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACxC,2BAA2B;IAC3B,6EAA6E;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAElD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC;IAEnF,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;SAC5C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAElF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;SACxD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAE/G,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;SAClD,KAAK,CAAC,CAAC,CAAC,CAAC;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAElF,MAAM,IAAI,GAAG;QACX,wBAAwB;QACxB,mGAAmG;QACnG,EAAE;QACF,oBAAoB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;QAC3E,EAAE;QACF,gBAAgB,EAAE;QAClB,EAAE;QACF,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;QAC5D,EAAE;QACF,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC;QACpC,EAAE;QACF,WAAW;QACX,UAAU,OAAO,CAAC,YAAY,aAAa,OAAO,CAAC,EAAE,iBAAiB,OAAO,CAAC,eAAe,eAAe,OAAO,CAAC,SAAS,EAAE;QAC/H,EAAE;QACF,YAAY;QACZ,GAAG;QACH,EAAE;QACF,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,GAAG,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,EAAE,GAAG,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,KAAK;QACL,yBAAyB;QACzB,oEAAoE,OAAO,CAAC,YAAY,mSAAmS;KAC5X,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,WAAmB,CAAC;IACxB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrE,WAAW,GAAG,GAAG,IAAI,WAAW,IAAI,SAAS,EAAE,IAAI,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,GAAG,IAAI,SAAS,EAAE,IAAI,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC5E,CAAC;AAoBD;;0CAE0C;AAC1C,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,YAAqB;IACjE,MAAM,GAAG,GAAqB;QAC5B,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI;QACvE,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE;QAClD,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW;KAClE,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAAE,OAAO,GAAG,CAAC;IAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACrG,IAAI,WAAW,EAAE,CAAC;QAChB,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;QACnC,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;QAChC,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;QAClC,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;IAClC,CAAC;IAED,sDAAsD;IACtD,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,2CAA2C,CAAC;IAC9D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;IACD,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/C,GAAG,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5H,GAAG,CAAC,mBAAmB,GAAG,CAAC,QAAQ,CAAC,mCAAmC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzJ,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACzC,IAAI,EAAE;YAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACnD,IAAI,OAAO;QAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACvD,IAAI,SAAS;QAAE,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;IAExC,eAAe;IACf,IAAI,YAAY,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7B,0EAA0E;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/E,GAAG,CAAC,OAAO,GAAG,QAAQ,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;IACjE,CAAC;SAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACpB,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,iCAAiC;IAC7D,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC;IAC3B,CAAC;IACD,8CAA8C;IAC9C,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC;IAC5B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"soul_prompt.js","sourceRoot":"","sources":["../../src/genesplice/soul_prompt.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,8 @@
12
12
  * 📡 WebRTC P2P browser-native peer-to-peer
13
13
  */
14
14
  export * from "./handoff.js";
15
+ export * from "./tunnel.js";
16
+ export * from "./multi_paste.js";
17
+ export * from "./resource_hints.js";
18
+ export * from "./page_renderer.js";
15
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rainbow/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rainbow/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -12,4 +12,8 @@
12
12
  * 📡 WebRTC P2P browser-native peer-to-peer
13
13
  */
14
14
  export * from "./handoff.js";
15
+ export * from "./tunnel.js";
16
+ export * from "./multi_paste.js";
17
+ export * from "./resource_hints.js";
18
+ export * from "./page_renderer.js";
15
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rainbow/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rainbow/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * v1.90.0 -- RAINBOW: multi-backend paste upload with retry + rate-limit
3
+ * handling.
4
+ *
5
+ * Free public paste services have unpredictable rate limits (dpaste
6
+ * is 1 req/sec; paste.rs throttles; 0x0.st returns 503 on overload).
7
+ * For reliable cross-network handoff we need a fallback chain.
8
+ *
9
+ * Strategy:
10
+ * 1. Try preferred backend (default: dpaste)
11
+ * 2. On rate-limit (429) or failure, wait + try next backend
12
+ * 3. Return first success OR aggregate error
13
+ *
14
+ * Optional: exponential backoff between attempts.
15
+ */
16
+ export type Backend = "dpaste" | "pasters" | "zero-x-zero";
17
+ export interface ResilientUploadResult {
18
+ ok: boolean;
19
+ url: string | null;
20
+ backend: Backend | null;
21
+ attempts: Array<{
22
+ backend: Backend;
23
+ ok: boolean;
24
+ reason?: string;
25
+ elapsedMs: number;
26
+ }>;
27
+ totalMs: number;
28
+ }
29
+ export interface ResilientUploadInput {
30
+ content: string;
31
+ order?: Backend[];
32
+ /** Wait before each retry (ms). Default 1100ms (dpaste 1 req/sec). */
33
+ retryWaitMs?: number;
34
+ /** Test seam. */
35
+ fetchImpl?: typeof fetch;
36
+ }
37
+ export declare function uploadResilient(input: ResilientUploadInput): Promise<ResilientUploadResult>;
38
+ //# sourceMappingURL=multi_paste.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi_paste.d.ts","sourceRoot":"","sources":["../../src/rainbow/multi_paste.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAMD,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAoBjG"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * v1.90.0 -- RAINBOW: multi-backend paste upload with retry + rate-limit
3
+ * handling.
4
+ *
5
+ * Free public paste services have unpredictable rate limits (dpaste
6
+ * is 1 req/sec; paste.rs throttles; 0x0.st returns 503 on overload).
7
+ * For reliable cross-network handoff we need a fallback chain.
8
+ *
9
+ * Strategy:
10
+ * 1. Try preferred backend (default: dpaste)
11
+ * 2. On rate-limit (429) or failure, wait + try next backend
12
+ * 3. Return first success OR aggregate error
13
+ *
14
+ * Optional: exponential backoff between attempts.
15
+ */
16
+ import { uploadToDpaste, uploadToPasteRs, uploadToZeroXZero } from "../relay/paste_backend.js";
17
+ function sleep(ms) {
18
+ return new Promise((r) => setTimeout(r, ms));
19
+ }
20
+ export async function uploadResilient(input) {
21
+ const order = input.order ?? ["dpaste", "pasters", "zero-x-zero"];
22
+ const wait = input.retryWaitMs ?? 1100;
23
+ const attempts = [];
24
+ const start = Date.now();
25
+ for (let i = 0; i < order.length; i++) {
26
+ const backend = order[i];
27
+ const attemptStart = Date.now();
28
+ const fn = backend === "dpaste" ? uploadToDpaste : backend === "pasters" ? uploadToPasteRs : uploadToZeroXZero;
29
+ const r = await fn({ content: input.content, fetchImpl: input.fetchImpl });
30
+ const elapsedMs = Date.now() - attemptStart;
31
+ attempts.push({ backend, ok: r.ok, reason: r.reason, elapsedMs });
32
+ if (r.ok && r.url) {
33
+ return { ok: true, url: r.url, backend, attempts, totalMs: Date.now() - start };
34
+ }
35
+ // Wait before next backend to respect rate limits.
36
+ if (i < order.length - 1)
37
+ await sleep(wait);
38
+ }
39
+ return { ok: false, url: null, backend: null, attempts, totalMs: Date.now() - start };
40
+ }
41
+ //# sourceMappingURL=multi_paste.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi_paste.js","sourceRoot":"","sources":["../../src/rainbow/multi_paste.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAqB/F,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAA2B;IAC/D,MAAM,KAAK,GAAc,KAAK,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;IACvC,MAAM,QAAQ,GAAsC,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC/G,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;QAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;YAClB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;QAClF,CAAC;QACD,mDAAmD;QACnD,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;AACxF,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * v1.91.0 -- RAINBOW: PC + mobile page renderers.
3
+ *
4
+ * Was previously inline JS inside `.brain-show*.mjs` scripts. v1.91
5
+ * promotes them into proper, testable, reusable modules.
6
+ *
7
+ * renderMobilePage({ soulText, lang })
8
+ * → HTML page served from LAN/tunnel; phone scans → opens here
9
+ * → green Share button + blue Copy button (3-tier fallback)
10
+ * → bilingual EN/TH toggle
11
+ * → honest capability matrix (paste vs editor-AI MCP truth)
12
+ *
13
+ * renderPcPage({ primaryUrl, label, note, soulTokens, hasTunnel })
14
+ * → Page that opens in PC default browser
15
+ * → ONE big primary QR (no second-QR confusion)
16
+ * → STOP button (no Ctrl+C jargon)
17
+ * → bilingual toggle
18
+ *
19
+ * Both pages: zero external CSS/JS deps. Single-file output.
20
+ */
21
+ export interface MobilePageInput {
22
+ soulText: string;
23
+ /** Optional override for default lang. Default "en" with toggle. */
24
+ defaultLang?: "en" | "th";
25
+ }
26
+ export interface PcPageInput {
27
+ primaryUrl: string;
28
+ /** Channel label (e.g. "Same Wi-Fi · 1 tap" / "Works ANYWHERE · 1 tap"). */
29
+ label: {
30
+ en: string;
31
+ th: string;
32
+ };
33
+ /** Channel note (e.g. "Phone MUST be on the SAME WiFi"). */
34
+ note: {
35
+ en: string;
36
+ th: string;
37
+ };
38
+ /** Soul prompt size in tokens (for footer). */
39
+ soulTokens: number;
40
+ /** True if cloudflared tunnel is in use (footer mention). */
41
+ hasTunnel: boolean;
42
+ /** True if a paste fallback exists. */
43
+ hasPaste: boolean;
44
+ defaultLang?: "en" | "th";
45
+ }
46
+ export declare function renderMobilePage(input: MobilePageInput): string;
47
+ export declare function renderPcPage(input: PcPageInput): string;
48
+ //# sourceMappingURL=page_renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page_renderer.d.ts","sourceRoot":"","sources":["../../src/rainbow/page_renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,4DAA4D;IAC5D,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,SAAS,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAmBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAuG/D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAkFvD"}
@@ -0,0 +1,221 @@
1
+ /**
2
+ * v1.91.0 -- RAINBOW: PC + mobile page renderers.
3
+ *
4
+ * Was previously inline JS inside `.brain-show*.mjs` scripts. v1.91
5
+ * promotes them into proper, testable, reusable modules.
6
+ *
7
+ * renderMobilePage({ soulText, lang })
8
+ * → HTML page served from LAN/tunnel; phone scans → opens here
9
+ * → green Share button + blue Copy button (3-tier fallback)
10
+ * → bilingual EN/TH toggle
11
+ * → honest capability matrix (paste vs editor-AI MCP truth)
12
+ *
13
+ * renderPcPage({ primaryUrl, label, note, soulTokens, hasTunnel })
14
+ * → Page that opens in PC default browser
15
+ * → ONE big primary QR (no second-QR confusion)
16
+ * → STOP button (no Ctrl+C jargon)
17
+ * → bilingual toggle
18
+ *
19
+ * Both pages: zero external CSS/JS deps. Single-file output.
20
+ */
21
+ function jsSafe(s) {
22
+ return JSON.stringify(s).replace(/<\/(script)/gi, "<\\/$1");
23
+ }
24
+ function escapeHtml(s) {
25
+ return s
26
+ .replace(/&/g, "&amp;")
27
+ .replace(/</g, "&lt;")
28
+ .replace(/>/g, "&gt;")
29
+ .replace(/"/g, "&quot;")
30
+ .replace(/'/g, "&#39;");
31
+ }
32
+ function buildQrUrl(payload, size = 360) {
33
+ return `https://api.qrserver.com/v1/create-qr-code/?size=${size}x${size}&format=svg&margin=10&data=${encodeURIComponent(payload)}`;
34
+ }
35
+ export function renderMobilePage(input) {
36
+ const lang = input.defaultLang ?? "en";
37
+ return `<!doctype html><html lang="${lang}"><head>
38
+ <meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
39
+ <title>Mneme</title>
40
+ <style>
41
+ *{box-sizing:border-box;margin:0;padding:0}
42
+ body{font-family:-apple-system,sans-serif;background:#1abc9c;color:#fff;min-height:100vh;padding:24px 18px}
43
+ .wrap{max-width:540px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
44
+ h1{font-size:32px;text-align:center;font-weight:800}
45
+ .lang{position:fixed;top:14px;right:14px;background:rgba(0,0,0,0.4);border:0;color:#fff;padding:10px 16px;border-radius:8px;font-weight:700;cursor:pointer;font-size:15px}
46
+ .btn{width:100%;background:#fff;color:#16a085;border:0;padding:24px;border-radius:14px;font-weight:800;font-size:22px;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,0.3)}
47
+ .btn:active{transform:scale(0.97)}
48
+ .btn.blue{background:#3498db;color:#fff}
49
+ .step{background:rgba(0,0,0,0.25);padding:18px;border-radius:12px;font-size:18px;line-height:1.6}
50
+ .matrix{background:rgba(0,0,0,0.3);padding:18px;border-radius:12px;font-size:14px;line-height:1.6}
51
+ .matrix h3{font-size:17px;margin-bottom:10px}
52
+ .matrix table{width:100%;border-collapse:collapse}
53
+ .matrix td{padding:8px 4px;border-bottom:1px solid rgba(255,255,255,0.15)}
54
+ .matrix td:last-child{text-align:center;font-weight:700}
55
+ .ok{display:none;background:#27ae60;padding:18px;border-radius:12px;text-align:center;font-weight:800;font-size:17px}
56
+ textarea{width:100%;height:1px;opacity:0;position:absolute;left:-9999px}
57
+ .preview{background:rgba(0,0,0,0.4);padding:14px;border-radius:8px;font-family:monospace;font-size:11px;line-height:1.4;max-height:140px;overflow:auto;white-space:pre-wrap;word-break:break-word;-webkit-user-select:all;user-select:all}
58
+ details summary{cursor:pointer;padding:14px;background:rgba(0,0,0,0.25);border-radius:10px;font-weight:700;font-size:16px}
59
+ .grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
60
+ .grid a{display:block;background:rgba(255,255,255,0.18);padding:16px;border-radius:10px;text-align:center;text-decoration:none;color:#fff;font-weight:700;font-size:15px}
61
+ </style></head><body>
62
+ <button class="lang" id="lang">ไทย</button>
63
+ <div class="wrap">
64
+ <h1 data-en="Mneme handoff" data-th="ส่งสมอง Mneme"></h1>
65
+ <div class="step" data-en="Tap GREEN to send. If share menu doesn't appear, tap BLUE COPY then paste in any AI." data-th="กดปุ่มเขียวเพื่อส่ง. ถ้าไม่มี share menu ขึ้น กด COPY สีฟ้าแล้ว paste ใน AI"></div>
66
+ <button id="s" class="btn">📤 Send to AI app</button>
67
+ <div id="ok" class="ok" data-en="✓ Sent! Open your AI to check." data-th="✓ ส่งแล้ว เปิด AI ดู"></div>
68
+ <button id="c" class="btn blue">📋 Copy soul prompt</button>
69
+ <details>
70
+ <summary data-en="🔧 Backup: long-press to copy" data-th="🔧 สำรอง: กดค้างเพื่อก๊อป"></summary>
71
+ <div style="padding:10px 0;font-size:14px" data-en="If both buttons fail, long-press the box → Select All → Copy:" data-th="ถ้าปุ่มทั้งสองไม่ work กดค้างกล่องล่าง → Select All → Copy:"></div>
72
+ <div class="preview" id="prev"></div>
73
+ </details>
74
+ <div class="grid">
75
+ <a href="https://chatgpt.com/" target="_blank">🟢 ChatGPT</a>
76
+ <a href="https://gemini.google.com/app" target="_blank">🔵 Gemini</a>
77
+ <a href="https://claude.ai/new" target="_blank">🟣 Claude</a>
78
+ <a href="https://www.perplexity.ai/" target="_blank">⚪ Perplexity</a>
79
+ </div>
80
+ <div class="matrix">
81
+ <h3 data-en="🎯 What this AI can do AFTER you paste" data-th="🎯 หลัง paste แล้ว AI ทำอะไรได้บ้าง"></h3>
82
+ <table>
83
+ <tr><td data-en="Read this conversation" data-th="อ่านบทสนทนานี้"></td><td>✅</td></tr>
84
+ <tr><td data-en="Continue discussing it" data-th="คุยต่อจากเดิม"></td><td>✅</td></tr>
85
+ <tr><td data-en="Understand recent decisions" data-th="เข้าใจการตัดสินใจล่าสุด"></td><td>✅</td></tr>
86
+ <tr><td data-en="Suggest next actions back" data-th="เสนอ next actions กลับมา"></td><td>✅</td></tr>
87
+ <tr><td data-en="Call Mneme MCP tools (live)" data-th="เรียก MCP tools จริง"></td><td>❌</td></tr>
88
+ <tr><td data-en="Read your .mneme/ files" data-th="อ่านไฟล์ .mneme/ บน PC"></td><td>❌</td></tr>
89
+ <tr><td data-en="True real-time sync" data-th="sync แบบ real-time จริง"></td><td>❌</td></tr>
90
+ </table>
91
+ <div style="margin-top:12px;padding:12px;background:rgba(255,255,255,0.1);border-radius:8px;font-size:13px;line-height:1.5">
92
+ <span data-en="The soul prompt gives the AI MEMORY (read-only). The HOMUNCULUS request inside it asks the AI to emit a HOMUNCULUS RETURN block with suggestions you paste BACK to your editor AI for execution. Web AI = brain. Editor AI = hands. You = courier." data-th="soul prompt ให้ AI เห็น MEMORY (อ่านอย่างเดียว). HOMUNCULUS request ที่อยู่ในนั้นจะขอให้ AI ตอบกลับเป็น HOMUNCULUS RETURN block ที่คุณ paste กลับไป editor AI เพื่อ execute. Web AI = สมอง. Editor AI = มือ. คุณ = courier"></span>
93
+ </div>
94
+ </div>
95
+ </div>
96
+ <textarea id="ta"></textarea>
97
+ <script>
98
+ const SOUL = ${jsSafe(input.soulText)};
99
+ let lang = ${JSON.stringify(lang)};
100
+ function applyLang() {
101
+ document.querySelectorAll("[data-en]").forEach(el => { el.textContent = el.dataset[lang] || el.dataset.en; });
102
+ document.getElementById("lang").textContent = lang === "en" ? "ไทย" : "EN";
103
+ document.documentElement.lang = lang;
104
+ }
105
+ applyLang();
106
+ document.getElementById("lang").onclick = () => { lang = lang === "en" ? "th" : "en"; applyLang(); };
107
+ document.getElementById("prev").textContent = SOUL;
108
+ document.getElementById("ta").value = SOUL;
109
+ document.getElementById("s").onclick = async () => {
110
+ if (navigator.share) {
111
+ try { await navigator.share({ text: SOUL, title: "Mneme" }); document.getElementById("ok").style.display = "block"; return; }
112
+ catch (e) {}
113
+ }
114
+ copySoul();
115
+ };
116
+ function copySoul() {
117
+ if (navigator.clipboard && window.isSecureContext) {
118
+ navigator.clipboard.writeText(SOUL).then(() => {
119
+ document.getElementById("c").textContent = lang === "th" ? "✓ ก๊อปแล้ว เปิด AI app paste เลย" : "✓ Copied! Open AI app and paste.";
120
+ }).catch(() => fallbackCopy());
121
+ } else { fallbackCopy(); }
122
+ }
123
+ function fallbackCopy() {
124
+ const ta = document.getElementById("ta");
125
+ ta.value = SOUL; ta.style.opacity = "1"; ta.style.position = "static"; ta.style.height = "60px"; ta.style.left = "0";
126
+ ta.focus(); ta.select(); ta.setSelectionRange(0, SOUL.length);
127
+ try {
128
+ if (document.execCommand("copy")) {
129
+ document.getElementById("c").textContent = lang === "th" ? "✓ ก๊อปแล้ว" : "✓ Copied!";
130
+ ta.style.opacity = "0"; ta.style.position = "absolute"; ta.style.height = "1px"; ta.style.left = "-9999px";
131
+ return;
132
+ }
133
+ } catch (e) {}
134
+ document.getElementById("c").textContent = lang === "th" ? "⬇ กดค้างกล่อง → Select All → Copy" : "⬇ Long-press box → Select All → Copy";
135
+ }
136
+ document.getElementById("c").onclick = copySoul;
137
+ </script></body></html>`;
138
+ }
139
+ export function renderPcPage(input) {
140
+ const lang = input.defaultLang ?? "en";
141
+ const labelEn = escapeHtml(input.label.en);
142
+ const labelTh = escapeHtml(input.label.th);
143
+ const noteEn = escapeHtml(input.note.en);
144
+ const noteTh = escapeHtml(input.note.th);
145
+ const url = escapeHtml(input.primaryUrl);
146
+ const tunnelMention = input.hasTunnel ? "Cloudflare tunnel + " : "";
147
+ const pasteMention = input.hasPaste ? " · paste fallback" : "";
148
+ return `<!doctype html><html lang="${lang}"><head>
149
+ <meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
150
+ <title>Mneme — Send brain to phone</title>
151
+ <style>
152
+ *{box-sizing:border-box;margin:0;padding:0}
153
+ body{font-family:-apple-system,"Segoe UI",sans-serif;background:linear-gradient(135deg,#1abc9c 0%,#16a085 50%,#2c3e50 100%);color:#fff;min-height:100vh;padding:32px 24px}
154
+ .wrap{max-width:760px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:28px}
155
+ .lang-btn,.stop-btn{position:fixed;top:18px;background:rgba(0,0,0,0.4);border:0;color:#fff;padding:12px 20px;border-radius:10px;font-weight:700;font-size:16px;cursor:pointer;z-index:99}
156
+ .lang-btn{right:18px}
157
+ .stop-btn{right:130px;background:#c0392b}
158
+ .stop-btn:hover{background:#e74c3c}
159
+ h1{font-size:46px;text-align:center;font-weight:800}
160
+ .tagline{font-size:22px;opacity:0.92;text-align:center;line-height:1.5;max-width:600px}
161
+ .primary{background:rgba(255,255,255,0.1);border:2px solid rgba(255,255,255,0.25);border-radius:24px;padding:32px;display:flex;flex-direction:column;align-items:center;gap:18px;width:100%;max-width:520px;box-shadow:0 24px 70px rgba(0,0,0,0.4)}
162
+ .pill{display:inline-block;background:#27ae60;padding:10px 22px;border-radius:99px;font-size:18px;font-weight:800}
163
+ h2{font-size:32px;text-align:center}
164
+ .qr-box{background:#fff;padding:22px;border-radius:18px}
165
+ .qr-box img{display:block;width:320px;height:320px}
166
+ .url{font-family:monospace;font-size:16px;background:rgba(0,0,0,0.35);padding:12px 18px;border-radius:8px;word-break:break-all;text-align:center;max-width:100%}
167
+ .note{font-size:20px;text-align:center;line-height:1.5;opacity:0.95}
168
+ .howto{background:rgba(0,0,0,0.3);border-radius:14px;padding:22px;font-size:19px;line-height:1.7;width:100%;max-width:600px}
169
+ .howto h3{font-size:22px;margin-bottom:12px}
170
+ .howto ol{padding-left:28px}
171
+ .howto li{margin:8px 0}
172
+ .warn-soft{background:rgba(241,196,15,0.2);border:1px solid rgba(241,196,15,0.4);padding:18px;border-radius:12px;font-size:17px;line-height:1.5;text-align:center;max-width:600px}
173
+ footer{font-size:14px;opacity:0.7;text-align:center;line-height:1.6;max-width:700px;padding:16px;background:rgba(0,0,0,0.2);border-radius:10px}
174
+ </style></head><body>
175
+ <button class="lang-btn" id="lang">ไทย</button>
176
+ <button class="stop-btn" id="stop" data-en="🛑 STOP" data-th="🛑 หยุด"></button>
177
+ <div class="wrap">
178
+ <h1 data-en="Send brain to phone" data-th="ส่งสมองไปมือถือ"></h1>
179
+ <div class="tagline" data-en="Open your phone camera. Scan the QR. Tap the link. Tap green button." data-th="เปิดกล้องมือถือ → สแกน QR → กดที่ link → กดปุ่มเขียว"></div>
180
+ <div class="primary">
181
+ <span class="pill" data-en="${labelEn}" data-th="${labelTh}"></span>
182
+ <h2 data-en="Scan this QR" data-th="สแกน QR นี้"></h2>
183
+ <div class="qr-box"><img src="${escapeHtml(buildQrUrl(input.primaryUrl, 360))}" alt=""></div>
184
+ <div class="url">${url}</div>
185
+ <div class="note" data-en="${noteEn}" data-th="${noteTh}"></div>
186
+ </div>
187
+ <div class="howto">
188
+ <h3 data-en="📱 What happens after you scan" data-th="📱 หลังสแกน QR จะเกิดอะไรขึ้น"></h3>
189
+ <ol>
190
+ <li data-en="Phone camera shows the URL — tap it." data-th="กล้องมือถือแสดง URL — กดที่ URL"></li>
191
+ <li data-en="Mobile browser opens a page with a green button + capability matrix." data-th="เบราว์เซอร์เปิดหน้าเว็บที่มีปุ่มเขียว + ตารางความสามารถ"></li>
192
+ <li data-en="Tap green → pick AI app from share menu → tap send." data-th="กดปุ่มเขียว → เลือก AI app จาก share menu → กด send"></li>
193
+ <li data-en="If share menu doesn't appear, tap blue COPY → open AI app → paste." data-th="ถ้าไม่มี share menu ขึ้น กด COPY สีฟ้า → เปิด AI app → paste"></li>
194
+ </ol>
195
+ </div>
196
+ <div class="warn-soft">
197
+ <span data-en="⚠ Honest truth: paste gives the AI READ-ONLY memory. For LIVE Mneme tool execution that AI must have Mneme installed (Cursor / Claude Code / Codex / VS Code MCP). Web AIs (chatgpt.com, gemini.com) read but can NOT call MCP. They CAN suggest next actions back via HOMUNCULUS RETURN block — paste it back to your editor AI to execute." data-th="⚠ ความจริง: paste ให้ AI เห็น MEMORY แบบอ่านอย่างเดียว. ถ้าจะให้ AI เรียก Mneme tools จริง AI ตัวนั้นต้องติดตั้ง Mneme (Cursor / Claude Code / Codex / VS Code MCP). Web AIs อ่านได้แต่เรียก MCP ไม่ได้. แต่มัน suggest next actions กลับมาเป็น HOMUNCULUS RETURN block ได้ — paste กลับไป editor AI เพื่อ execute"></span>
198
+ </div>
199
+ <footer>
200
+ <span data-en="Soul ${input.soulTokens} tokens · ${tunnelMention}LAN :7741${pasteMention}" data-th="สมอง ${input.soulTokens} โทเค็น · ${tunnelMention}LAN :7741${pasteMention}"></span><br>
201
+ <span data-en="Done? Click the red STOP button at top-right." data-th="เสร็จแล้ว? กดปุ่ม STOP สีแดงมุมขวาบน"></span>
202
+ </footer>
203
+ </div>
204
+ <script>
205
+ let lang = ${JSON.stringify(lang)};
206
+ function applyLang() {
207
+ document.querySelectorAll("[data-en]").forEach(el => { el.textContent = el.dataset[lang] || el.dataset.en; });
208
+ document.getElementById("lang").textContent = lang === "en" ? "ไทย" : "EN";
209
+ document.documentElement.lang = lang;
210
+ }
211
+ applyLang();
212
+ document.getElementById("lang").onclick = () => { lang = lang === "en" ? "th" : "en"; applyLang(); };
213
+ document.getElementById("stop").onclick = async () => {
214
+ if (!confirm(lang === "th" ? "หยุด server? หน้านี้จะใช้ไม่ได้แล้ว" : "Stop the server? This page will stop working.")) return;
215
+ try { await fetch(${jsSafe(input.primaryUrl)} + "/stop"); } catch (e) {}
216
+ document.body.innerHTML = '<div style="padding:60px;text-align:center;font-size:24px;color:#fff;background:#16a085;min-height:100vh">' + (lang === "th" ? "✓ Server หยุดแล้ว ปิด tab นี้ได้" : "✓ Server stopped. You can close this tab.") + '</div>';
217
+ };
218
+ </script>
219
+ </body></html>`;
220
+ }
221
+ //# sourceMappingURL=page_renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page_renderer.js","sourceRoot":"","sources":["../../src/rainbow/page_renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAuBH,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,IAAI,GAAG,GAAG;IAC7C,OAAO,oDAAoD,IAAI,IAAI,IAAI,8BAA8B,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;AACrI,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;IACvC,OAAO,8BAA8B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA6D5B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;aACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAsCT,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAkB;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;IACvC,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D,OAAO,8BAA8B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAiCX,OAAO,cAAc,OAAO;;kCAE1B,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;qBAC1D,GAAG;+BACO,MAAM,cAAc,MAAM;;;;;;;;;;;;;;;wBAejC,KAAK,CAAC,UAAU,aAAa,aAAa,YAAY,YAAY,mBAAmB,KAAK,CAAC,UAAU,aAAa,aAAa,YAAY,YAAY;;;;;aAKlK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;;;;;;;;;sBAUX,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;;;;eAI/B,CAAC;AAChB,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * v1.90.0 -- RAINBOW: mobile resource hints.
3
+ *
4
+ * The mobile page detects the visiting device's constraints via
5
+ * standard browser APIs and adapts UI accordingly. We emit the JS
6
+ * snippet that runs on the phone; this module is a pure renderer
7
+ * (no Node-side detection).
8
+ *
9
+ * Detected:
10
+ * - navigator.connection.effectiveType (4g / 3g / 2g / slow-2g)
11
+ * - navigator.deviceMemory (GB, may be undefined on iOS)
12
+ * - navigator.hardwareConcurrency (logical CPU cores)
13
+ * - screen.width × screen.height (viewport)
14
+ * - navigator.userAgent (rough OS sniff)
15
+ *
16
+ * Decisions the page makes from these:
17
+ * - slow network → DON'T fetch soul eagerly; show "Tap to load" button
18
+ * - low memory → split soul into chunks before Share
19
+ * - small screen → bigger font, less spacing
20
+ * - iOS Safari → use clipboard API differently (some restrictions)
21
+ */
22
+ export interface ResourceHintsScriptOptions {
23
+ /** Threshold below which we treat the network as slow. Default "3g". */
24
+ slowNetworkThreshold?: "slow-2g" | "2g" | "3g" | "4g";
25
+ }
26
+ export declare function renderResourceHintsScript(_opts?: ResourceHintsScriptOptions): string;
27
+ /** JS snippet that LAZY-LOADS the soul from a URL when user taps Share.
28
+ * Avoids embedding the full soul in the page (saves memory + network). */
29
+ export declare function renderLazyShareScript(soulUrl: string): string;
30
+ //# sourceMappingURL=resource_hints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource_hints.d.ts","sourceRoot":"","sources":["../../src/rainbow/resource_hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,0BAA0B;IACzC,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACvD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,GAAE,0BAA+B,GAAG,MAAM,CAmBxF;AASD;2EAC2E;AAC3E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiC7D"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * v1.90.0 -- RAINBOW: mobile resource hints.
3
+ *
4
+ * The mobile page detects the visiting device's constraints via
5
+ * standard browser APIs and adapts UI accordingly. We emit the JS
6
+ * snippet that runs on the phone; this module is a pure renderer
7
+ * (no Node-side detection).
8
+ *
9
+ * Detected:
10
+ * - navigator.connection.effectiveType (4g / 3g / 2g / slow-2g)
11
+ * - navigator.deviceMemory (GB, may be undefined on iOS)
12
+ * - navigator.hardwareConcurrency (logical CPU cores)
13
+ * - screen.width × screen.height (viewport)
14
+ * - navigator.userAgent (rough OS sniff)
15
+ *
16
+ * Decisions the page makes from these:
17
+ * - slow network → DON'T fetch soul eagerly; show "Tap to load" button
18
+ * - low memory → split soul into chunks before Share
19
+ * - small screen → bigger font, less spacing
20
+ * - iOS Safari → use clipboard API differently (some restrictions)
21
+ */
22
+ export function renderResourceHintsScript(_opts = {}) {
23
+ return `
24
+ (function() {
25
+ const conn = navigator.connection || navigator.mozConnection || navigator.webkitConnection || {};
26
+ const slow = conn.effectiveType && /(slow-2g|2g)/.test(conn.effectiveType);
27
+ const lowMem = (navigator.deviceMemory || 4) < 2;
28
+ const smallScreen = Math.min(screen.width, screen.height) < 360;
29
+ const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
30
+ window.__mnemeHints = { slow, lowMem, smallScreen, isIOS, effectiveType: conn.effectiveType || "unknown", deviceMemory: navigator.deviceMemory || null, cores: navigator.hardwareConcurrency || null };
31
+ if (smallScreen) document.documentElement.style.fontSize = "20px";
32
+ if (lowMem || slow) {
33
+ const banner = document.createElement("div");
34
+ banner.style.cssText = "background:#e67e22;color:#fff;padding:12px;border-radius:8px;margin:12px 0;text-align:center;font-size:14px";
35
+ banner.textContent = slow ? "Slow network detected — tapping a button starts the fetch" : "Low memory device — using lightweight mode";
36
+ const wrap = document.querySelector(".wrap") || document.body;
37
+ wrap.insertBefore(banner, wrap.firstChild);
38
+ }
39
+ })();
40
+ `.trim();
41
+ }
42
+ /** JS-safe quote: JSON.stringify does NOT escape `/` (the spec allows
43
+ * forward slash unescaped), so `</script>` could break out of an
44
+ * inline `<script>` tag. We post-process to escape `/` after `<`. */
45
+ function jsSafeString(s) {
46
+ return JSON.stringify(s).replace(/<\/(script)/gi, "<\\/$1");
47
+ }
48
+ /** JS snippet that LAZY-LOADS the soul from a URL when user taps Share.
49
+ * Avoids embedding the full soul in the page (saves memory + network). */
50
+ export function renderLazyShareScript(soulUrl) {
51
+ return `
52
+ (function() {
53
+ const btn = document.getElementById("s");
54
+ const ok = document.getElementById("ok");
55
+ if (!btn) return;
56
+ let cached = null;
57
+ async function fetchSoul() {
58
+ if (cached) return cached;
59
+ btn.textContent = "Loading soul...";
60
+ btn.disabled = true;
61
+ const r = await fetch(${jsSafeString(soulUrl)});
62
+ cached = await r.text();
63
+ btn.disabled = false;
64
+ btn.textContent = "📤 Send to AI app";
65
+ return cached;
66
+ }
67
+ btn.onclick = async () => {
68
+ try {
69
+ const soul = await fetchSoul();
70
+ if (navigator.share) {
71
+ await navigator.share({ text: soul, title: "Mneme" });
72
+ if (ok) ok.style.display = "block";
73
+ } else {
74
+ await navigator.clipboard.writeText(soul);
75
+ btn.textContent = "✓ Copied! Open AI and paste.";
76
+ }
77
+ } catch (e) {
78
+ btn.textContent = "❌ " + (e && e.message ? e.message : "Error");
79
+ }
80
+ };
81
+ })();
82
+ `.trim();
83
+ }
84
+ //# sourceMappingURL=resource_hints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource_hints.js","sourceRoot":"","sources":["../../src/rainbow/resource_hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,MAAM,UAAU,yBAAyB,CAAC,QAAoC,EAAE;IAC9E,OAAO;;;;;;;;;;;;;;;;;GAiBN,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAED;;sEAEsE;AACtE,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAED;2EAC2E;AAC3E,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO;;;;;;;;;;8BAUqB,YAAY,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;GAqBhD,CAAC,IAAI,EAAE,CAAC;AACX,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * v1.90.0 -- RAINBOW: cloudflared tunnel auto-detection + start.
3
+ *
4
+ * Pre-condition: `cloudflared` binary on PATH (free, no account needed
5
+ * for quick tunnels). When absent we report unavailable; caller falls
6
+ * back to LAN-only mode.
7
+ *
8
+ * Tunnel lifecycle:
9
+ * 1. detectCloudflared() -- returns version or null
10
+ * 2. startQuickTunnel(port) -- spawns child + waits for URL
11
+ * 3. <use returned URL>
12
+ * 4. stopTunnel(handle) -- kills child + closes pipes
13
+ */
14
+ import { type ChildProcess } from "node:child_process";
15
+ export interface CloudflaredDetection {
16
+ available: boolean;
17
+ version: string | null;
18
+ path: string | null;
19
+ installHint: string;
20
+ }
21
+ export declare function detectCloudflared(): CloudflaredDetection;
22
+ export interface TunnelHandle {
23
+ url: string;
24
+ process: ChildProcess;
25
+ stop: () => void;
26
+ }
27
+ export interface StartTunnelOptions {
28
+ port: number;
29
+ /** Max time (ms) to wait for the trycloudflare URL line. Default 20s. */
30
+ timeoutMs?: number;
31
+ /** Test-only stub for the spawned child output. */
32
+ spawnOverride?: (cmd: string, args: string[]) => ChildProcess;
33
+ }
34
+ /** Start a quick tunnel + return the public URL when it appears.
35
+ * Resolves null on timeout. Process keeps running until stop() called. */
36
+ export declare function startQuickTunnel(opts: StartTunnelOptions): Promise<TunnelHandle | null>;
37
+ //# sourceMappingURL=tunnel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../src/rainbow/tunnel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAQD,wBAAgB,iBAAiB,IAAI,oBAAoB,CAcxD;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,YAAY,CAAC;CAC/D;AAID;2EAC2E;AAC3E,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA4B7F"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * v1.90.0 -- RAINBOW: cloudflared tunnel auto-detection + start.
3
+ *
4
+ * Pre-condition: `cloudflared` binary on PATH (free, no account needed
5
+ * for quick tunnels). When absent we report unavailable; caller falls
6
+ * back to LAN-only mode.
7
+ *
8
+ * Tunnel lifecycle:
9
+ * 1. detectCloudflared() -- returns version or null
10
+ * 2. startQuickTunnel(port) -- spawns child + waits for URL
11
+ * 3. <use returned URL>
12
+ * 4. stopTunnel(handle) -- kills child + closes pipes
13
+ */
14
+ import { spawnSync, spawn } from "node:child_process";
15
+ const INSTALL_HINT_BY_PLATFORM = {
16
+ win32: "winget install --id Cloudflare.cloudflared (or scoop install cloudflare-warp)",
17
+ darwin: "brew install cloudflared",
18
+ linux: "Download from https://github.com/cloudflare/cloudflared/releases (or your distro package manager)",
19
+ };
20
+ export function detectCloudflared() {
21
+ const hint = INSTALL_HINT_BY_PLATFORM[process.platform] ?? "see https://github.com/cloudflare/cloudflared";
22
+ try {
23
+ const r = spawnSync("cloudflared", ["--version"], { encoding: "utf8", windowsHide: true });
24
+ if (r.status !== 0) {
25
+ return { available: false, version: null, path: null, installHint: hint };
26
+ }
27
+ const versionLine = (r.stdout ?? "").split("\n")[0]?.trim() ?? "";
28
+ const which = spawnSync(process.platform === "win32" ? "where" : "which", ["cloudflared"], { encoding: "utf8", windowsHide: true });
29
+ const path = which.status === 0 ? (which.stdout ?? "").split(/\r?\n/)[0].trim() : null;
30
+ return { available: true, version: versionLine, path, installHint: hint };
31
+ }
32
+ catch {
33
+ return { available: false, version: null, path: null, installHint: hint };
34
+ }
35
+ }
36
+ const TUNNEL_URL_RE = /https:\/\/[a-z0-9-]+\.trycloudflare\.com/;
37
+ /** Start a quick tunnel + return the public URL when it appears.
38
+ * Resolves null on timeout. Process keeps running until stop() called. */
39
+ export async function startQuickTunnel(opts) {
40
+ const timeoutMs = opts.timeoutMs ?? 20_000;
41
+ const spawnFn = opts.spawnOverride ?? ((c, a) => spawn(c, a, { stdio: ["ignore", "pipe", "pipe"], windowsHide: true }));
42
+ const proc = spawnFn("cloudflared", ["tunnel", "--no-autoupdate", "--url", `http://localhost:${opts.port}`]);
43
+ return new Promise((resolve) => {
44
+ let resolved = false;
45
+ const timer = setTimeout(() => {
46
+ if (!resolved) {
47
+ resolved = true;
48
+ resolve(null);
49
+ }
50
+ }, timeoutMs);
51
+ const onData = (chunk) => {
52
+ if (resolved)
53
+ return;
54
+ const m = chunk.toString().match(TUNNEL_URL_RE);
55
+ if (m) {
56
+ resolved = true;
57
+ clearTimeout(timer);
58
+ resolve({
59
+ url: m[0],
60
+ process: proc,
61
+ stop: () => { try {
62
+ proc.kill();
63
+ }
64
+ catch { /* ignore */ } },
65
+ });
66
+ }
67
+ };
68
+ proc.stdout?.on("data", onData);
69
+ proc.stderr?.on("data", onData);
70
+ proc.on("exit", () => {
71
+ if (!resolved) {
72
+ resolved = true;
73
+ clearTimeout(timer);
74
+ resolve(null);
75
+ }
76
+ });
77
+ });
78
+ }
79
+ //# sourceMappingURL=tunnel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../src/rainbow/tunnel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=v1_90.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1_90.test.d.ts","sourceRoot":"","sources":["../../src/rainbow/v1_90.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,157 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { detectCloudflared } from "./tunnel.js";
3
+ import { uploadResilient } from "./multi_paste.js";
4
+ import { renderResourceHintsScript, renderLazyShareScript } from "./resource_hints.js";
5
+ function mockFetch(seq) {
6
+ let i = 0;
7
+ return (async () => {
8
+ const r = seq[Math.min(i, seq.length - 1)];
9
+ i++;
10
+ return new Response(r.body, { status: r.status });
11
+ });
12
+ }
13
+ describe("v1.90 RAINBOW · cloudflared detection", () => {
14
+ it("detectCloudflared returns structured result", () => {
15
+ const r = detectCloudflared();
16
+ expect(typeof r.available).toBe("boolean");
17
+ expect(typeof r.installHint).toBe("string");
18
+ expect(r.installHint.length).toBeGreaterThan(10);
19
+ if (r.available) {
20
+ expect(r.version).toBeTruthy();
21
+ }
22
+ else {
23
+ expect(r.version).toBeNull();
24
+ }
25
+ });
26
+ it("installHint mentions install command for this platform", () => {
27
+ const r = detectCloudflared();
28
+ if (process.platform === "win32")
29
+ expect(r.installHint).toMatch(/winget|scoop/i);
30
+ if (process.platform === "darwin")
31
+ expect(r.installHint).toMatch(/brew/i);
32
+ if (process.platform === "linux")
33
+ expect(r.installHint).toMatch(/github\.com|package manager/i);
34
+ });
35
+ });
36
+ describe("v1.90 RAINBOW · multi-paste resilient upload", () => {
37
+ it("returns first success when primary backend works", async () => {
38
+ const r = await uploadResilient({
39
+ content: "test",
40
+ fetchImpl: mockFetch([{ status: 200, body: "https://dpaste.com/AB12CD" }]),
41
+ retryWaitMs: 10,
42
+ });
43
+ expect(r.ok).toBe(true);
44
+ expect(r.backend).toBe("dpaste");
45
+ expect(r.attempts.length).toBe(1);
46
+ });
47
+ it("falls through to paste.rs on dpaste failure", async () => {
48
+ const r = await uploadResilient({
49
+ content: "test",
50
+ fetchImpl: mockFetch([
51
+ { status: 429, body: "rate limit" }, // dpaste fails
52
+ { status: 200, body: "https://paste.rs/aBcD" }, // pasters wins
53
+ ]),
54
+ retryWaitMs: 10,
55
+ });
56
+ expect(r.ok).toBe(true);
57
+ expect(r.backend).toBe("pasters");
58
+ expect(r.attempts.length).toBe(2);
59
+ expect(r.attempts[0].ok).toBe(false);
60
+ expect(r.attempts[1].ok).toBe(true);
61
+ });
62
+ it("falls through to 0x0.st when both above fail", async () => {
63
+ const r = await uploadResilient({
64
+ content: "test",
65
+ fetchImpl: mockFetch([
66
+ { status: 429, body: "rate" },
67
+ { status: 503, body: "unavail" },
68
+ { status: 200, body: "https://0x0.st/abc.txt" },
69
+ ]),
70
+ retryWaitMs: 10,
71
+ });
72
+ expect(r.ok).toBe(true);
73
+ expect(r.backend).toBe("zero-x-zero");
74
+ expect(r.attempts.length).toBe(3);
75
+ });
76
+ it("aggregates all failures when no backend succeeds", async () => {
77
+ const r = await uploadResilient({
78
+ content: "test",
79
+ fetchImpl: mockFetch([
80
+ { status: 500, body: "err1" },
81
+ { status: 500, body: "err2" },
82
+ { status: 500, body: "err3" },
83
+ ]),
84
+ retryWaitMs: 10,
85
+ });
86
+ expect(r.ok).toBe(false);
87
+ expect(r.url).toBeNull();
88
+ expect(r.attempts.length).toBe(3);
89
+ for (const a of r.attempts)
90
+ expect(a.ok).toBe(false);
91
+ });
92
+ it("respects custom backend order", async () => {
93
+ const r = await uploadResilient({
94
+ content: "test",
95
+ order: ["pasters", "dpaste"],
96
+ fetchImpl: mockFetch([{ status: 200, body: "https://paste.rs/x" }]),
97
+ retryWaitMs: 10,
98
+ });
99
+ expect(r.backend).toBe("pasters");
100
+ expect(r.attempts[0].backend).toBe("pasters");
101
+ });
102
+ it("records elapsed time per attempt", async () => {
103
+ const r = await uploadResilient({
104
+ content: "test",
105
+ fetchImpl: mockFetch([{ status: 200, body: "https://dpaste.com/X" }]),
106
+ retryWaitMs: 10,
107
+ });
108
+ expect(r.attempts[0].elapsedMs).toBeGreaterThanOrEqual(0);
109
+ expect(r.totalMs).toBeGreaterThanOrEqual(0);
110
+ });
111
+ });
112
+ describe("v1.90 RAINBOW · resource hints renderer", () => {
113
+ it("renderResourceHintsScript emits self-executing IIFE", () => {
114
+ const s = renderResourceHintsScript();
115
+ expect(s).toContain("(function()");
116
+ expect(s).toContain("navigator.connection");
117
+ expect(s).toContain("window.__mnemeHints");
118
+ });
119
+ it("script detects slow networks + low memory + small screens + iOS", () => {
120
+ const s = renderResourceHintsScript();
121
+ expect(s).toContain("slow-2g|2g");
122
+ expect(s).toContain("deviceMemory");
123
+ expect(s).toContain("iPhone|iPad|iPod");
124
+ expect(s).toContain("smallScreen");
125
+ });
126
+ it("renderLazyShareScript embeds the soul URL safely", () => {
127
+ const s = renderLazyShareScript("https://dpaste.com/abc.txt");
128
+ expect(s).toContain('"https://dpaste.com/abc.txt"');
129
+ expect(s).toContain("navigator.share");
130
+ expect(s).toContain("navigator.clipboard");
131
+ });
132
+ it("renderLazyShareScript escapes </script> via JSON.stringify (XSS-safe)", () => {
133
+ const s = renderLazyShareScript('https://evil.com/"</script><img onerror=alert(1)>');
134
+ // The critical XSS vector: </script> must be escaped so it can't
135
+ // close the surrounding <script> tag in the served HTML.
136
+ expect(s).not.toContain("</script>");
137
+ expect(s).toContain("<\\/script>");
138
+ });
139
+ });
140
+ describe("v1.90 RAINBOW · cross-cutting", () => {
141
+ it("multi-paste handles empty content gracefully", async () => {
142
+ const r = await uploadResilient({
143
+ content: "",
144
+ fetchImpl: mockFetch([{ status: 200, body: "https://dpaste.com/X" }]),
145
+ retryWaitMs: 10,
146
+ });
147
+ // Empty content still uploaded (paste services accept it)
148
+ expect(r.ok).toBe(true);
149
+ });
150
+ it("multi-paste fetchImpl error becomes an attempt failure", async () => {
151
+ const erroring = (async () => { throw new Error("network kaboom"); });
152
+ const r = await uploadResilient({ content: "x", fetchImpl: erroring, retryWaitMs: 10, order: ["dpaste"] });
153
+ expect(r.ok).toBe(false);
154
+ expect(r.attempts[0].reason).toContain("kaboom");
155
+ });
156
+ });
157
+ //# sourceMappingURL=v1_90.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1_90.test.js","sourceRoot":"","sources":["../../src/rainbow/v1_90.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=v1_91.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1_91.test.d.ts","sourceRoot":"","sources":["../../src/rainbow/v1_91.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,111 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { renderMobilePage, renderPcPage } from "./page_renderer.js";
3
+ describe("v1.91 RAINBOW · mobile page renderer", () => {
4
+ it("emits a complete HTML document", () => {
5
+ const html = renderMobilePage({ soulText: "# SOUL\nbody" });
6
+ expect(html.startsWith("<!doctype html>")).toBe(true);
7
+ expect(html).toContain("</html>");
8
+ expect(html).toContain("Mneme handoff");
9
+ });
10
+ it("includes Web Share API + clipboard + textarea fallback chain", () => {
11
+ const html = renderMobilePage({ soulText: "x" });
12
+ expect(html).toContain("navigator.share");
13
+ expect(html).toContain("navigator.clipboard");
14
+ expect(html).toContain("execCommand");
15
+ });
16
+ it("XSS-safe: closing </script> in soul is escaped", () => {
17
+ const html = renderMobilePage({ soulText: 'evil </script><img onerror=alert(1)>' });
18
+ expect(html).toContain("<\\/script>");
19
+ // Original (raw) </script> token must NOT appear in the JS string section
20
+ const scriptStart = html.indexOf("const SOUL = ");
21
+ const scriptEnd = html.indexOf(";", scriptStart);
22
+ const soulLiteral = html.slice(scriptStart, scriptEnd);
23
+ expect(soulLiteral).not.toContain("</script>");
24
+ });
25
+ it("ships bilingual data-en/data-th attributes for UI strings", () => {
26
+ const html = renderMobilePage({ soulText: "x" });
27
+ expect(html).toContain('data-en="Mneme handoff"');
28
+ expect(html).toContain('data-th="ส่งสมอง Mneme"');
29
+ });
30
+ it("includes the honest capability matrix (paste vs MCP truth)", () => {
31
+ const html = renderMobilePage({ soulText: "x" });
32
+ expect(html).toContain("Read this conversation");
33
+ expect(html).toContain("Call Mneme MCP tools");
34
+ expect(html).toContain("HOMUNCULUS RETURN block");
35
+ });
36
+ it("includes 4-vendor quick links (ChatGPT/Gemini/Claude/Perplexity)", () => {
37
+ const html = renderMobilePage({ soulText: "x" });
38
+ expect(html).toContain("chatgpt.com");
39
+ expect(html).toContain("gemini.google.com");
40
+ expect(html).toContain("claude.ai");
41
+ expect(html).toContain("perplexity.ai");
42
+ });
43
+ it("respects defaultLang option", () => {
44
+ const en = renderMobilePage({ soulText: "x", defaultLang: "en" });
45
+ const th = renderMobilePage({ soulText: "x", defaultLang: "th" });
46
+ expect(en).toContain('let lang = "en"');
47
+ expect(th).toContain('let lang = "th"');
48
+ });
49
+ });
50
+ describe("v1.91 RAINBOW · PC page renderer", () => {
51
+ const baseInput = {
52
+ primaryUrl: "http://192.168.1.10:7741",
53
+ label: { en: "Same Wi-Fi · 1 tap", th: "WiFi เดียวกัน · 1 แตะ" },
54
+ note: { en: "Phone MUST be on the same WiFi", th: "มือถือต้องอยู่ WiFi เดียวกับ PC" },
55
+ soulTokens: 1234,
56
+ hasTunnel: false,
57
+ hasPaste: true,
58
+ };
59
+ it("emits a complete HTML page", () => {
60
+ const html = renderPcPage(baseInput);
61
+ expect(html.startsWith("<!doctype html>")).toBe(true);
62
+ expect(html).toContain("</html>");
63
+ expect(html).toContain("Send brain to phone");
64
+ });
65
+ it("renders ONE primary QR pointing at the QR rendering service", () => {
66
+ const html = renderPcPage(baseInput);
67
+ expect(html).toContain("api.qrserver.com");
68
+ expect(html).toContain(encodeURIComponent("http://192.168.1.10:7741"));
69
+ });
70
+ it("includes STOP button (no Ctrl+C jargon)", () => {
71
+ const html = renderPcPage(baseInput);
72
+ expect(html).toContain("🛑 STOP");
73
+ expect(html).toContain('id="stop"');
74
+ expect(html).not.toContain("Ctrl+C in the terminal");
75
+ expect(html).not.toContain("Press Ctrl+C");
76
+ });
77
+ it("STOP button confirms before stopping (in selected language)", () => {
78
+ const html = renderPcPage(baseInput);
79
+ expect(html).toContain("confirm(");
80
+ expect(html).toContain("Server stopped");
81
+ expect(html).toContain("Server หยุดแล้ว");
82
+ });
83
+ it("footer reflects tunnel + paste availability", () => {
84
+ const noTunnel = renderPcPage({ ...baseInput, hasTunnel: false, hasPaste: false });
85
+ expect(noTunnel).not.toContain("Cloudflare tunnel");
86
+ const withTunnel = renderPcPage({ ...baseInput, hasTunnel: true, hasPaste: true });
87
+ expect(withTunnel).toContain("Cloudflare tunnel");
88
+ expect(withTunnel).toContain("paste fallback");
89
+ });
90
+ it("escapes HTML in label/note (XSS-safe)", () => {
91
+ const evil = {
92
+ ...baseInput,
93
+ label: { en: '<script>alert(1)</script>', th: 'ก' },
94
+ note: { en: 'a"b', th: 'b' },
95
+ };
96
+ const html = renderPcPage(evil);
97
+ expect(html).not.toContain("<script>alert(1)</script>");
98
+ expect(html).toContain("&lt;script&gt;alert(1)&lt;/script&gt;");
99
+ });
100
+ it("primary URL appears as displayed text + inside the QR encoder URL", () => {
101
+ const html = renderPcPage({ ...baseInput, primaryUrl: "https://abc.trycloudflare.com" });
102
+ expect(html).toContain("https://abc.trycloudflare.com");
103
+ expect(html).toContain(encodeURIComponent("https://abc.trycloudflare.com"));
104
+ });
105
+ it("STOP fetch URL is the primaryUrl + /stop, JSON-encoded for safety", () => {
106
+ const html = renderPcPage({ ...baseInput, primaryUrl: 'http://x.com/"</script>' });
107
+ // </script> in fetch arg must be escaped
108
+ expect(html).toContain("<\\/script>");
109
+ });
110
+ });
111
+ //# sourceMappingURL=v1_91.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1_91.test.js","sourceRoot":"","sources":["../../src/rainbow/v1_91.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
- {
1
+ {
2
2
  "name": "@mneme-ai/core",
3
- "version": "1.89.0",
3
+ "version": "1.91.0",
4
4
  "description": "Core indexing, retrieval, and graph engine for Mneme",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",