@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.
- package/dist/agent_manifest.d.ts.map +1 -1
- package/dist/agent_manifest.js +3 -1
- package/dist/agent_manifest.js.map +1 -1
- package/dist/genesplice/soul_prompt.d.ts.map +1 -1
- package/dist/genesplice/soul_prompt.js +7 -0
- package/dist/genesplice/soul_prompt.js.map +1 -1
- package/dist/rainbow/index.d.ts +4 -0
- package/dist/rainbow/index.d.ts.map +1 -1
- package/dist/rainbow/index.js +4 -0
- package/dist/rainbow/index.js.map +1 -1
- package/dist/rainbow/multi_paste.d.ts +38 -0
- package/dist/rainbow/multi_paste.d.ts.map +1 -0
- package/dist/rainbow/multi_paste.js +41 -0
- package/dist/rainbow/multi_paste.js.map +1 -0
- package/dist/rainbow/page_renderer.d.ts +48 -0
- package/dist/rainbow/page_renderer.d.ts.map +1 -0
- package/dist/rainbow/page_renderer.js +221 -0
- package/dist/rainbow/page_renderer.js.map +1 -0
- package/dist/rainbow/resource_hints.d.ts +30 -0
- package/dist/rainbow/resource_hints.d.ts.map +1 -0
- package/dist/rainbow/resource_hints.js +84 -0
- package/dist/rainbow/resource_hints.js.map +1 -0
- package/dist/rainbow/tunnel.d.ts +37 -0
- package/dist/rainbow/tunnel.d.ts.map +1 -0
- package/dist/rainbow/tunnel.js +79 -0
- package/dist/rainbow/tunnel.js.map +1 -0
- package/dist/rainbow/v1_90.test.d.ts +2 -0
- package/dist/rainbow/v1_90.test.d.ts.map +1 -0
- package/dist/rainbow/v1_90.test.js +157 -0
- package/dist/rainbow/v1_90.test.js.map +1 -0
- package/dist/rainbow/v1_91.test.d.ts +2 -0
- package/dist/rainbow/v1_91.test.d.ts.map +1 -0
- package/dist/rainbow/v1_91.test.js +111 -0
- package/dist/rainbow/v1_91.test.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent_manifest.d.ts","sourceRoot":"","sources":["../src/agent_manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC7a;AAED;;+CAE+C;AAC/C,eAAO,MAAM,qBAAqB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"agent_manifest.d.ts","sourceRoot":"","sources":["../src/agent_manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/agent_manifest.js
CHANGED
|
@@ -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.
|
|
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;
|
|
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;
|
|
1
|
+
{"version":3,"file":"soul_prompt.js","sourceRoot":"","sources":["../../src/genesplice/soul_prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/rainbow/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/rainbow/index.js
CHANGED
|
@@ -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, "&")
|
|
27
|
+
.replace(/</g, "<")
|
|
28
|
+
.replace(/>/g, ">")
|
|
29
|
+
.replace(/"/g, """)
|
|
30
|
+
.replace(/'/g, "'");
|
|
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 @@
|
|
|
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 @@
|
|
|
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("<script>alert(1)</script>");
|
|
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