@mneme-ai/core 1.97.0 → 1.99.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 (66) hide show
  1. package/dist/flash/devils_advocate.d.ts +66 -0
  2. package/dist/flash/devils_advocate.d.ts.map +1 -0
  3. package/dist/flash/devils_advocate.js +154 -0
  4. package/dist/flash/devils_advocate.js.map +1 -0
  5. package/dist/flash/flash.d.ts +50 -0
  6. package/dist/flash/flash.d.ts.map +1 -0
  7. package/dist/flash/flash.js +67 -0
  8. package/dist/flash/flash.js.map +1 -0
  9. package/dist/flash/flash.test.d.ts +2 -0
  10. package/dist/flash/flash.test.d.ts.map +1 -0
  11. package/dist/flash/flash.test.js +221 -0
  12. package/dist/flash/flash.test.js.map +1 -0
  13. package/dist/flash/grounding.d.ts +55 -0
  14. package/dist/flash/grounding.d.ts.map +1 -0
  15. package/dist/flash/grounding.js +144 -0
  16. package/dist/flash/grounding.js.map +1 -0
  17. package/dist/flash/index.d.ts +18 -0
  18. package/dist/flash/index.d.ts.map +1 -0
  19. package/dist/flash/index.js +18 -0
  20. package/dist/flash/index.js.map +1 -0
  21. package/dist/flash/predictive.d.ts +44 -0
  22. package/dist/flash/predictive.d.ts.map +1 -0
  23. package/dist/flash/predictive.js +76 -0
  24. package/dist/flash/predictive.js.map +1 -0
  25. package/dist/flash/veracity.d.ts +99 -0
  26. package/dist/flash/veracity.d.ts.map +1 -0
  27. package/dist/flash/veracity.js +107 -0
  28. package/dist/flash/veracity.js.map +1 -0
  29. package/dist/index.d.ts +1 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +7 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/permeate/userscript_generator.d.ts.map +1 -1
  34. package/dist/permeate/userscript_generator.js +1 -0
  35. package/dist/permeate/userscript_generator.js.map +1 -1
  36. package/dist/rainbow/index.d.ts +3 -0
  37. package/dist/rainbow/index.d.ts.map +1 -1
  38. package/dist/rainbow/index.js +11 -0
  39. package/dist/rainbow/index.js.map +1 -1
  40. package/dist/rainbow/passport.d.ts +130 -0
  41. package/dist/rainbow/passport.d.ts.map +1 -0
  42. package/dist/rainbow/passport.js +180 -0
  43. package/dist/rainbow/passport.js.map +1 -0
  44. package/dist/rainbow/passport_v99.test.d.ts +2 -0
  45. package/dist/rainbow/passport_v99.test.d.ts.map +1 -0
  46. package/dist/rainbow/passport_v99.test.js +53 -0
  47. package/dist/rainbow/passport_v99.test.js.map +1 -0
  48. package/dist/rainbow/v1_98.test.d.ts +2 -0
  49. package/dist/rainbow/v1_98.test.d.ts.map +1 -0
  50. package/dist/rainbow/v1_98.test.js +307 -0
  51. package/dist/rainbow/v1_98.test.js.map +1 -0
  52. package/dist/rainbow/vendor_probe.d.ts +52 -0
  53. package/dist/rainbow/vendor_probe.d.ts.map +1 -0
  54. package/dist/rainbow/vendor_probe.js +111 -0
  55. package/dist/rainbow/vendor_probe.js.map +1 -0
  56. package/dist/rainbow/vendor_strategy.d.ts +64 -0
  57. package/dist/rainbow/vendor_strategy.d.ts.map +1 -0
  58. package/dist/rainbow/vendor_strategy.js +157 -0
  59. package/dist/rainbow/vendor_strategy.js.map +1 -0
  60. package/dist/relay/deep_link.d.ts +24 -15
  61. package/dist/relay/deep_link.d.ts.map +1 -1
  62. package/dist/relay/deep_link.js +28 -18
  63. package/dist/relay/deep_link.js.map +1 -1
  64. package/dist/v1_87_regression.test.js +3 -2
  65. package/dist/v1_87_regression.test.js.map +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1,157 @@
1
+ /**
2
+ * v1.98.0 -- RAINBOW · Vendor strategy map.
3
+ *
4
+ * Replaces the broken "one-size-fits-all RELAY" assumption with explicit
5
+ * per-vendor strategies. Each vendor (web AI, mobile app, MCP-capable
6
+ * editor, etc.) gets the transport that ACTUALLY works for its
7
+ * capability tier.
8
+ *
9
+ * Strategies:
10
+ * clipboard-first — copy plain text + open vendor home page. User pastes.
11
+ * Works on EVERY Web AI's free tier. The default.
12
+ * plain-qr — render plain-text soul as QR (NO encryption, NO
13
+ * fetch-instruction). Phone scans → copies → pastes.
14
+ * mcp-direct — vendor is MCP-aware (Claude Code, Cursor, Codex CLI,
15
+ * Continue) — Mneme MCP server exposes tools directly.
16
+ * No copy/paste needed.
17
+ * prefill-and-paste— vendor honors ?q= deep link AND has web-fetch
18
+ * (paid-tier ChatGPT Plus / Gemini Advanced). The
19
+ * old RELAY path. Used ONLY when caller explicitly
20
+ * asserts "I have a paid-tier AI with browsing".
21
+ * app-deeplink-NA — vendor mobile app does NOT honor any URL scheme.
22
+ * Mneme cannot help; tell the user honestly.
23
+ *
24
+ * Every entry has `verified` (boolean) + `lastChecked` (ISO date) so
25
+ * stale-URL claims like "Verified May 2026" cannot lie silently. The
26
+ * companion `vendor_probe.ts` actually hits each URL with HEAD + asserts.
27
+ */
28
+ /** Canonical vendor table. Source of truth for strategy decisions. */
29
+ export const VENDOR_REGISTRY = [
30
+ {
31
+ id: "chatgpt-web",
32
+ label: "ChatGPT (web)",
33
+ homeUrl: "https://chatgpt.com/",
34
+ freeStrategy: "clipboard-first",
35
+ paidStrategy: "prefill-and-paste",
36
+ qParamWorks: false, // ChatGPT Free does not reliably prefill; old chat.openai.com 308-redirects
37
+ webFetchAvailable: false,
38
+ lastChecked: "2026-05-13",
39
+ reasoning: "OpenAI rebranded chat.openai.com → chatgpt.com (308 redirect). Free tier has no web-fetch. ?q= prefill is silent in the chat UI for Free. Clipboard works.",
40
+ },
41
+ {
42
+ id: "gemini-web",
43
+ label: "Gemini (web)",
44
+ homeUrl: "https://gemini.google.com/app",
45
+ freeStrategy: "clipboard-first",
46
+ paidStrategy: "clipboard-first", // even Gemini Advanced doesn't reliably prefill from ?q=
47
+ qParamWorks: false, // verified empirically — ?q= returns 200 but does NOT pre-fill the input
48
+ webFetchAvailable: false,
49
+ lastChecked: "2026-05-13",
50
+ reasoning: "Verified by user: ?q= returns 200 but input is not prefilled. Free tier has no web-fetch. Clipboard works on every tier.",
51
+ },
52
+ {
53
+ id: "claude-web",
54
+ label: "Claude (web)",
55
+ homeUrl: "https://claude.ai/new",
56
+ freeStrategy: "clipboard-first",
57
+ paidStrategy: "clipboard-first",
58
+ qParamWorks: false, // Cloudflare 403 on headless; live behavior unverified
59
+ webFetchAvailable: false, // Claude has artifacts but not arbitrary URL fetch in chat
60
+ lastChecked: "2026-05-13",
61
+ reasoning: "Cloudflare blocks headless probes (returns 403). User-agent matters. Claude has artifact tool, not generic web-fetch. Clipboard works.",
62
+ },
63
+ {
64
+ id: "claude-code",
65
+ label: "Claude Code (CLI)",
66
+ homeUrl: "claude://", // not actually used; MCP path is direct
67
+ freeStrategy: "mcp-direct",
68
+ paidStrategy: "mcp-direct",
69
+ qParamWorks: false,
70
+ webFetchAvailable: true,
71
+ lastChecked: "2026-05-13",
72
+ reasoning: "MCP-aware editor. Mneme MCP server exposes tools directly. No clipboard, no QR, no URL needed.",
73
+ },
74
+ {
75
+ id: "cursor",
76
+ label: "Cursor (editor)",
77
+ homeUrl: "cursor://",
78
+ freeStrategy: "mcp-direct",
79
+ paidStrategy: "mcp-direct",
80
+ qParamWorks: false,
81
+ webFetchAvailable: true,
82
+ lastChecked: "2026-05-13",
83
+ reasoning: "MCP-aware. Same as Claude Code path.",
84
+ },
85
+ {
86
+ id: "copilot-web",
87
+ label: "GitHub Copilot Chat (web)",
88
+ homeUrl: "https://github.com/copilot",
89
+ freeStrategy: "clipboard-first",
90
+ paidStrategy: "clipboard-first",
91
+ qParamWorks: false,
92
+ webFetchAvailable: false,
93
+ lastChecked: "2026-05-13",
94
+ reasoning: "No documented ?q= parameter. Clipboard works.",
95
+ },
96
+ {
97
+ id: "perplexity-web",
98
+ label: "Perplexity (web)",
99
+ homeUrl: "https://www.perplexity.ai/",
100
+ freeStrategy: "clipboard-first",
101
+ paidStrategy: "clipboard-first",
102
+ qParamWorks: true, // perplexity DOES support ?q= reliably across tiers
103
+ webFetchAvailable: true, // Perplexity is search-grounded; fetch works
104
+ lastChecked: "2026-05-13",
105
+ reasoning: "Perplexity is the one major exception — ?q= prefill IS reliable. But for consistency Mneme defaults to clipboard-first; callers can opt in to prefill-and-paste.",
106
+ },
107
+ {
108
+ id: "gemini-mobile",
109
+ label: "Gemini (mobile app)",
110
+ homeUrl: "gemini://", // does not exist
111
+ freeStrategy: "app-deeplink-NA",
112
+ paidStrategy: "app-deeplink-NA",
113
+ qParamWorks: false,
114
+ webFetchAvailable: false,
115
+ lastChecked: "2026-05-13",
116
+ reasoning: "Gemini iOS/Android does NOT register a custom URL scheme. Tapping a gemini:// link from outside fails. Use plain-qr → user opens browser tab → pastes.",
117
+ },
118
+ {
119
+ id: "chatgpt-mobile",
120
+ label: "ChatGPT (mobile app)",
121
+ homeUrl: "chatgpt://",
122
+ freeStrategy: "app-deeplink-NA",
123
+ paidStrategy: "app-deeplink-NA",
124
+ qParamWorks: false,
125
+ webFetchAvailable: false,
126
+ lastChecked: "2026-05-13",
127
+ reasoning: "Same as Gemini mobile. No public URL scheme that prefills from outside.",
128
+ },
129
+ {
130
+ id: "any-mobile-browser",
131
+ label: "Mobile browser (any AI website)",
132
+ homeUrl: "",
133
+ freeStrategy: "plain-qr",
134
+ paidStrategy: "plain-qr",
135
+ qParamWorks: false,
136
+ webFetchAvailable: false,
137
+ lastChecked: "2026-05-13",
138
+ reasoning: "Render the soul prompt as a plain-text QR — phone scans, gets plain text, pastes into any AI app the user has open. No encryption, no fetch dependency.",
139
+ },
140
+ ];
141
+ export function entryOf(id) {
142
+ return VENDOR_REGISTRY.find((v) => v.id === id) ?? null;
143
+ }
144
+ /** Decide strategy given vendor + whether user has paid tier. */
145
+ export function pickStrategy(vendorId, opts = {}) {
146
+ const e = entryOf(vendorId);
147
+ if (!e)
148
+ return { strategy: "clipboard-first", entry: null, reason: `unknown vendor '${vendorId}' — defaulting to clipboard-first (always-safe)` };
149
+ const strategy = opts.paidTier ? e.paidStrategy : e.freeStrategy;
150
+ return { strategy, entry: e, reason: `${vendorId}: free='${e.freeStrategy}', paid='${e.paidStrategy}', user opts.paidTier=${!!opts.paidTier} → '${strategy}'. ${e.reasoning}` };
151
+ }
152
+ /** Render the strategy decision as a pulse line. */
153
+ export function formatStrategyPulseLine(vendorId, opts = {}) {
154
+ const r = pickStrategy(vendorId, opts);
155
+ return `VENDOR-STRATEGY · ${vendorId} · ${r.strategy}${r.entry ? ` · ?q=${r.entry.qParamWorks ? "yes" : "no"} fetch=${r.entry.webFetchAvailable ? "yes" : "no"}` : ""}`;
156
+ }
157
+ //# sourceMappingURL=vendor_strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendor_strategy.js","sourceRoot":"","sources":["../../src/rainbow/vendor_strategy.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,23 @@
1
1
  /**
2
2
  * v1.87.0 -- RELAY: vendor-specific deep links.
3
+ * v1.98.0 -- HONEST UPDATE: 4 things to know
4
+ * 1. chat.openai.com → chatgpt.com (OpenAI rebranded; old URL 308-redirects)
5
+ * 2. The original `composePrompt` asks the AI to fetch+decrypt — Free tier
6
+ * Web AIs (Gemini-Free, ChatGPT-Free) cannot do EITHER. See bug_truth.ts.
7
+ * 3. `?q=` prefill is NOT reliably honored by current Gemini Web (verified).
8
+ * 4. `composeCleanPrompt` is the v1.98 replacement: plain identification, no
9
+ * fetch / decrypt instruction. The PAGE that the user opens copies plain
10
+ * text to clipboard — the AI just reads what's pasted.
3
11
  *
4
- * Modern AI apps + web AIs accept a query parameter that pre-fills
5
- * the chat input. Combine that with a paste URL + decryption code
6
- * user scans QR AI app opens with the full instruction ready
7
- * to send. ONE TAP cross-device handover.
12
+ * Updated vendor URLs (May 2026, with redirect-trace verification):
13
+ * - Gemini web: gemini.google.com/?q=<urlenc> (200, ?q= unreliable)
14
+ * - ChatGPT web: chatgpt.com/?q=<urlenc> (chat.openai.com 308chatgpt.com)
15
+ * - Claude web: claude.ai/new?q=<urlenc> (Cloudflare may 403 headless)
8
16
  *
9
- * Verified URL params (May 2026):
10
- * - Gemini web: gemini.google.com/?q=<urlenc>
11
- * - ChatGPT web: chat.openai.com/?q=<urlenc>
12
- * - Claude web: claude.ai/new?q=<urlenc>
13
- * - Generic fallback: any text the user copies manually
14
- *
15
- * QR encoding limit: ~250 bytes for v10. We keep the URL compact:
16
- * `https://gemini.google.com/?q=Fetch%20<URL>%20with%20code%20<CODE>%20and%20resume`
17
- * ~ 150 chars → fits in v6 QR easily.
17
+ * v1.98 callers should prefer `composeCleanPrompt` + the clipboard-first
18
+ * strategy from `vendor_strategy.ts`. The fetch+decrypt path lives on for
19
+ * backward compatibility with `Mneme + Pro tier AI` flows where web-fetch
20
+ * IS available, but it must NEVER be the default.
18
21
  */
19
22
  export type DeepLinkVendor = "gemini" | "chatgpt" | "claude" | "any";
20
23
  export interface DeepLinkInput {
@@ -22,9 +25,15 @@ export interface DeepLinkInput {
22
25
  nexusCode: string;
23
26
  vendor?: DeepLinkVendor;
24
27
  }
25
- /** Compose a single-line instruction the destination AI will receive
26
- * as its first message. Kept SHORT so URL+query fits in a QR. */
28
+ /** @deprecated v1.98 relies on Web AI fetching the paste URL + decrypting
29
+ * AES-256-GCM. Free-tier Web AIs cannot do either. Use `composeCleanPrompt`
30
+ * instead, paired with clipboard-first strategy in `vendor_strategy.ts`.
31
+ * Retained for `Mneme + Pro-tier AI` flows where web-fetch is enabled. */
27
32
  export declare function composePrompt(pasteUrl: string, nexusCode: string): string;
33
+ /** v1.98 — clean prompt: just identifies the soul as Mneme. NO fetch
34
+ * instruction, NO decryption instruction. The PAGE that handles the
35
+ * user's clipboard puts the actual soul prompt in the AI's input box. */
36
+ export declare function composeCleanPrompt(): string;
28
37
  export interface DeepLink {
29
38
  vendor: DeepLinkVendor;
30
39
  /** Final URL the user opens (or QR scans into). */
@@ -1 +1 @@
1
- {"version":3,"file":"deep_link.d.ts","sourceRoot":"","sources":["../../src/relay/deep_link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AASD;kEACkE;AAClE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAM5D;AAED;mEACmE;AACnE,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAS3D"}
1
+ {"version":3,"file":"deep_link.d.ts","sourceRoot":"","sources":["../../src/relay/deep_link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAUD;;;2EAG2E;AAC3E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;0EAE0E;AAC1E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAM5D;AAED;mEACmE;AACnE,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAS3D"}
@@ -1,34 +1,44 @@
1
1
  /**
2
2
  * v1.87.0 -- RELAY: vendor-specific deep links.
3
+ * v1.98.0 -- HONEST UPDATE: 4 things to know
4
+ * 1. chat.openai.com → chatgpt.com (OpenAI rebranded; old URL 308-redirects)
5
+ * 2. The original `composePrompt` asks the AI to fetch+decrypt — Free tier
6
+ * Web AIs (Gemini-Free, ChatGPT-Free) cannot do EITHER. See bug_truth.ts.
7
+ * 3. `?q=` prefill is NOT reliably honored by current Gemini Web (verified).
8
+ * 4. `composeCleanPrompt` is the v1.98 replacement: plain identification, no
9
+ * fetch / decrypt instruction. The PAGE that the user opens copies plain
10
+ * text to clipboard — the AI just reads what's pasted.
3
11
  *
4
- * Modern AI apps + web AIs accept a query parameter that pre-fills
5
- * the chat input. Combine that with a paste URL + decryption code
6
- * user scans QR AI app opens with the full instruction ready
7
- * to send. ONE TAP cross-device handover.
12
+ * Updated vendor URLs (May 2026, with redirect-trace verification):
13
+ * - Gemini web: gemini.google.com/?q=<urlenc> (200, ?q= unreliable)
14
+ * - ChatGPT web: chatgpt.com/?q=<urlenc> (chat.openai.com 308chatgpt.com)
15
+ * - Claude web: claude.ai/new?q=<urlenc> (Cloudflare may 403 headless)
8
16
  *
9
- * Verified URL params (May 2026):
10
- * - Gemini web: gemini.google.com/?q=<urlenc>
11
- * - ChatGPT web: chat.openai.com/?q=<urlenc>
12
- * - Claude web: claude.ai/new?q=<urlenc>
13
- * - Generic fallback: any text the user copies manually
14
- *
15
- * QR encoding limit: ~250 bytes for v10. We keep the URL compact:
16
- * `https://gemini.google.com/?q=Fetch%20<URL>%20with%20code%20<CODE>%20and%20resume`
17
- * ~ 150 chars → fits in v6 QR easily.
17
+ * v1.98 callers should prefer `composeCleanPrompt` + the clipboard-first
18
+ * strategy from `vendor_strategy.ts`. The fetch+decrypt path lives on for
19
+ * backward compatibility with `Mneme + Pro tier AI` flows where web-fetch
20
+ * IS available, but it must NEVER be the default.
18
21
  */
19
22
  const TEMPLATES = {
20
23
  gemini: "https://gemini.google.com/?q=",
21
- chatgpt: "https://chat.openai.com/?q=",
24
+ // v1.98: was chat.openai.com (308-redirects to chatgpt.com). Direct URL.
25
+ chatgpt: "https://chatgpt.com/?q=",
22
26
  claude: "https://claude.ai/new?q=",
23
27
  any: "", // copy-only fallback
24
28
  };
25
- /** Compose a single-line instruction the destination AI will receive
26
- * as its first message. Kept SHORT so URL+query fits in a QR. */
29
+ /** @deprecated v1.98 relies on Web AI fetching the paste URL + decrypting
30
+ * AES-256-GCM. Free-tier Web AIs cannot do either. Use `composeCleanPrompt`
31
+ * instead, paired with clipboard-first strategy in `vendor_strategy.ts`.
32
+ * Retained for `Mneme + Pro-tier AI` flows where web-fetch is enabled. */
27
33
  export function composePrompt(pasteUrl, nexusCode) {
28
- // v1.87: shortened from 240→~140 chars so deep-link URLs stay
29
- // under the v10 QR capacity (~270 bytes) after URL encoding.
30
34
  return `Fetch ${pasteUrl} . Decrypt with AES-256-GCM (PBKDF2 200k, code ${nexusCode}). It's a Mneme soul prompt -- resume.`;
31
35
  }
36
+ /** v1.98 — clean prompt: just identifies the soul as Mneme. NO fetch
37
+ * instruction, NO decryption instruction. The PAGE that handles the
38
+ * user's clipboard puts the actual soul prompt in the AI's input box. */
39
+ export function composeCleanPrompt() {
40
+ return "[Mneme soul prompt — paste from clipboard to continue this conversation across vendors. See https://mneme.dev for context.]";
41
+ }
32
42
  export function buildDeepLink(input) {
33
43
  const vendor = input.vendor ?? "any";
34
44
  const prompt = composePrompt(input.pasteUrl, input.nexusCode);
@@ -1 +1 @@
1
- {"version":3,"file":"deep_link.js","sourceRoot":"","sources":["../../src/relay/deep_link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAUH,MAAM,SAAS,GAAmC;IAChD,MAAM,EAAE,+BAA+B;IACvC,OAAO,EAAE,6BAA6B;IACtC,MAAM,EAAE,0BAA0B;IAClC,GAAG,EAAE,EAAE,EAAE,qBAAqB;CAC/B,CAAC;AAEF;kEACkE;AAClE,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,SAAiB;IAC/D,8DAA8D;IAC9D,6DAA6D;IAC7D,OAAO,SAAS,QAAQ,kDAAkD,SAAS,wCAAwC,CAAC;AAC9H,CAAC;AAYD,MAAM,UAAU,aAAa,CAAC,KAAoB;IAChD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACnE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;AACvF,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,MAAM,UAAU,GAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5E,IAAI,IAAI,GAAoB,IAAI,CAAC;IACjC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,CAAC,QAAQ;YAAE,SAAS;QAC3B,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,IAAI,GAAG,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,IAAI,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"deep_link.js","sourceRoot":"","sources":["../../src/relay/deep_link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAUH,MAAM,SAAS,GAAmC;IAChD,MAAM,EAAE,+BAA+B;IACvC,yEAAyE;IACzE,OAAO,EAAE,yBAAyB;IAClC,MAAM,EAAE,0BAA0B;IAClC,GAAG,EAAE,EAAE,EAAE,qBAAqB;CAC/B,CAAC;AAEF;;;2EAG2E;AAC3E,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,SAAiB;IAC/D,OAAO,SAAS,QAAQ,kDAAkD,SAAS,wCAAwC,CAAC;AAC9H,CAAC;AAED;;0EAE0E;AAC1E,MAAM,UAAU,kBAAkB;IAChC,OAAO,6HAA6H,CAAC;AACvI,CAAC;AAYD,MAAM,UAAU,aAAa,CAAC,KAAoB;IAChD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACnE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;AACvF,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,MAAM,UAAU,GAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5E,IAAI,IAAI,GAAoB,IAAI,CAAC;IACjC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,CAAC,QAAQ;YAAE,SAAS;QAC3B,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,IAAI,GAAG,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,IAAI,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5D,CAAC"}
@@ -51,9 +51,10 @@ describe("v1.87 RELAY · deep link builder", () => {
51
51
  expect(dl.url.startsWith("https://gemini.google.com/?q=")).toBe(true);
52
52
  expect(dl.fitsInQR).toBe(true);
53
53
  });
54
- it("buildDeepLink for ChatGPT uses chat.openai.com", () => {
54
+ it("buildDeepLink for ChatGPT uses chatgpt.com (v1.98: was chat.openai.com → 308 redirect)", () => {
55
55
  const dl = buildDeepLink({ pasteUrl: "https://dpaste.com/x", nexusCode: "ABC123", vendor: "chatgpt" });
56
- expect(dl.url.startsWith("https://chat.openai.com/?q=")).toBe(true);
56
+ expect(dl.url.startsWith("https://chatgpt.com/?q=")).toBe(true);
57
+ expect(dl.url).not.toContain("chat.openai.com");
57
58
  });
58
59
  it("vendor='any' returns the prompt verbatim (copy-only fallback)", () => {
59
60
  const dl = buildDeepLink({ pasteUrl: "https://dpaste.com/x", nexusCode: "ABC123", vendor: "any" });
@@ -1 +1 @@
1
- {"version":3,"file":"v1_87_regression.test.js","sourceRoot":"","sources":["../src/v1_87_regression.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v1_87_regression.test.js","sourceRoot":"","sources":["../src/v1_87_regression.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,GAAG,YAAY,CAAC,2BAA2B,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QACtC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,GAAG,aAAa,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;QAC5D,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACpD,mFAAmF;QACnF,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,EAAE,GAAG,aAAa,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,GAAG,EAAE;QAChG,MAAM,EAAE,GAAG,aAAa,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACvG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,EAAE,GAAG,aAAa,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACnG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrF,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrF,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAClD,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,GAAG,kBAAkB,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9E,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,GAAG,kBAAkB,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;QAC5C,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mneme-ai/core",
3
- "version": "1.97.0",
3
+ "version": "1.99.0",
4
4
  "description": "Core indexing, retrieval, and graph engine for Mneme",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",