@mneme-ai/core 2.9.4 → 2.10.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.
@@ -0,0 +1,42 @@
1
+ /**
2
+ * v2.10.0 -- STARGATE: Mneme posts current state to a public paste
3
+ * URL so fetch-capable AIs (ChatGPT browse / Claude with web /
4
+ * Cursor / Copilot) can pull live updates between turns.
5
+ *
6
+ * Provider: dpaste.com (no auth, anonymous, configurable expiry).
7
+ * Caller can substitute any provider via `postOverride`.
8
+ *
9
+ * Privacy: the paste is PUBLIC and unauthenticated. Mneme posts
10
+ * version + commit SHAs only — no secrets, no source content. Users
11
+ * who want stricter privacy should DISABLE Stargate (it's optional in
12
+ * the soul prompt).
13
+ */
14
+ export interface StargateState {
15
+ mnemeVersion: string;
16
+ npmLatest: string | null;
17
+ recentCommits: Array<{
18
+ sha: string;
19
+ subject: string;
20
+ }>;
21
+ generatedAt: string;
22
+ /** Identifier of the parent that posted this state. */
23
+ originator: string;
24
+ }
25
+ export interface StargatePost {
26
+ url: string;
27
+ expiresAt: number;
28
+ state: StargateState;
29
+ }
30
+ export interface PublishInput {
31
+ state: StargateState;
32
+ /** Expiry in seconds. Default 86_400 (1 day). */
33
+ ttlSeconds?: number;
34
+ /** Test seam — replace the actual fetch with a mock. */
35
+ fetchOverride?: typeof fetch;
36
+ }
37
+ /** Post the state to dpaste.com. Returns null on network failure so
38
+ * the caller can fall back to PIGEON-POST round-trip. */
39
+ export declare function publishToStargate(input: PublishInput): Promise<StargatePost | null>;
40
+ /** Compute a tight one-liner for the soul prompt. */
41
+ export declare function formatStargatePulseLine(post: StargatePost | null): string;
42
+ //# sourceMappingURL=stargate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stargate.d.ts","sourceRoot":"","sources":["../../src/nexus_lock/stargate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,KAAK,CAAC;CAC9B;AAED;0DAC0D;AAC1D,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAyBzF;AAED,qDAAqD;AACrD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,MAAM,CAIzE"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * v2.10.0 -- STARGATE: Mneme posts current state to a public paste
3
+ * URL so fetch-capable AIs (ChatGPT browse / Claude with web /
4
+ * Cursor / Copilot) can pull live updates between turns.
5
+ *
6
+ * Provider: dpaste.com (no auth, anonymous, configurable expiry).
7
+ * Caller can substitute any provider via `postOverride`.
8
+ *
9
+ * Privacy: the paste is PUBLIC and unauthenticated. Mneme posts
10
+ * version + commit SHAs only — no secrets, no source content. Users
11
+ * who want stricter privacy should DISABLE Stargate (it's optional in
12
+ * the soul prompt).
13
+ */
14
+ /** Post the state to dpaste.com. Returns null on network failure so
15
+ * the caller can fall back to PIGEON-POST round-trip. */
16
+ export async function publishToStargate(input) {
17
+ const fetchFn = input.fetchOverride ?? globalThis.fetch;
18
+ if (typeof fetchFn !== "function")
19
+ return null;
20
+ const ttl = input.ttlSeconds ?? 86_400;
21
+ const body = new URLSearchParams({
22
+ content: JSON.stringify(input.state, null, 2),
23
+ expiry_days: String(Math.max(1, Math.min(365, Math.ceil(ttl / 86_400)))),
24
+ syntax: "json",
25
+ title: `Mneme STARGATE state — v${input.state.mnemeVersion}`,
26
+ });
27
+ try {
28
+ const r = await fetchFn("https://dpaste.com/api/v2/", {
29
+ method: "POST",
30
+ headers: { "content-type": "application/x-www-form-urlencoded", "user-agent": "mneme-stargate/2.10" },
31
+ body: body.toString(),
32
+ });
33
+ if (!r.ok)
34
+ return null;
35
+ const url = (await r.text()).trim();
36
+ if (!/^https?:\/\//.test(url))
37
+ return null;
38
+ // dpaste returns the HTML page URL; append `.txt` to get raw content.
39
+ const rawUrl = /\.txt$/.test(url) ? url : `${url}.txt`;
40
+ return { url: rawUrl, expiresAt: Date.now() + ttl * 1000, state: input.state };
41
+ }
42
+ catch {
43
+ return null;
44
+ }
45
+ }
46
+ /** Compute a tight one-liner for the soul prompt. */
47
+ export function formatStargatePulseLine(post) {
48
+ if (!post)
49
+ return "STARGATE · OFFLINE (no public paste)";
50
+ const ageMin = Math.floor((Date.now() - Date.parse(post.state.generatedAt)) / 60_000);
51
+ return `STARGATE · ${post.url} · age=${ageMin}min · expires=${new Date(post.expiresAt).toISOString()}`;
52
+ }
53
+ //# sourceMappingURL=stargate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stargate.js","sourceRoot":"","sources":["../../src/nexus_lock/stargate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAyBH;0DAC0D;AAC1D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAmB;IACzD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,IAAI,UAAU,CAAC,KAAK,CAAC;IACxD,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;QAC/B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,2BAA2B,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE;KAC7D,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,4BAA4B,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE,YAAY,EAAE,qBAAqB,EAAE;YACrG,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3C,sEAAsE;QACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC;QACvD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,uBAAuB,CAAC,IAAyB;IAC/D,IAAI,CAAC,IAAI;QAAE,OAAO,sCAAsC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IACtF,OAAO,cAAc,IAAI,CAAC,GAAG,UAAU,MAAM,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AACzG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mneme-ai/core",
3
- "version": "2.9.4",
3
+ "version": "2.10.0",
4
4
  "description": "Core indexing, retrieval, and graph engine for Mneme",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",