@seat-mesh/daemon 0.1.26 → 0.1.29

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 (178) hide show
  1. package/dist/border/border-paint.d.ts +13 -0
  2. package/dist/border/border-paint.d.ts.map +1 -0
  3. package/dist/border/border-paint.js +230 -0
  4. package/dist/border/border-paint.js.map +1 -0
  5. package/dist/checkback/checkback-fire.d.ts +8 -0
  6. package/dist/checkback/checkback-fire.d.ts.map +1 -0
  7. package/dist/checkback/checkback-fire.js +52 -0
  8. package/dist/checkback/checkback-fire.js.map +1 -0
  9. package/dist/checkback/checkback-fire.test.d.ts +2 -0
  10. package/dist/checkback/checkback-fire.test.d.ts.map +1 -0
  11. package/dist/checkback/checkback-fire.test.js +36 -0
  12. package/dist/checkback/checkback-fire.test.js.map +1 -0
  13. package/dist/connectivity/cc-limit-retry.d.ts +11 -0
  14. package/dist/connectivity/cc-limit-retry.d.ts.map +1 -0
  15. package/dist/connectivity/cc-limit-retry.js +73 -0
  16. package/dist/connectivity/cc-limit-retry.js.map +1 -0
  17. package/dist/connectivity/connectivity-recovery.d.ts +88 -0
  18. package/dist/connectivity/connectivity-recovery.d.ts.map +1 -0
  19. package/dist/connectivity/connectivity-recovery.js +529 -0
  20. package/dist/connectivity/connectivity-recovery.js.map +1 -0
  21. package/dist/connectivity/connectivity-recovery.test.d.ts +2 -0
  22. package/dist/connectivity/connectivity-recovery.test.d.ts.map +1 -0
  23. package/dist/connectivity/connectivity-recovery.test.js +170 -0
  24. package/dist/connectivity/connectivity-recovery.test.js.map +1 -0
  25. package/dist/connectivity/oc-resume-ack.d.ts +32 -0
  26. package/dist/connectivity/oc-resume-ack.d.ts.map +1 -0
  27. package/dist/connectivity/oc-resume-ack.js +89 -0
  28. package/dist/connectivity/oc-resume-ack.js.map +1 -0
  29. package/dist/connectivity/oc-resume-ack.test.d.ts +2 -0
  30. package/dist/connectivity/oc-resume-ack.test.d.ts.map +1 -0
  31. package/dist/connectivity/oc-resume-ack.test.js +23 -0
  32. package/dist/connectivity/oc-resume-ack.test.js.map +1 -0
  33. package/dist/connectivity/oc-resume.d.ts +25 -0
  34. package/dist/connectivity/oc-resume.d.ts.map +1 -0
  35. package/dist/connectivity/oc-resume.js +84 -0
  36. package/dist/connectivity/oc-resume.js.map +1 -0
  37. package/dist/inbox/delivery-hold.d.ts +11 -0
  38. package/dist/inbox/delivery-hold.d.ts.map +1 -0
  39. package/dist/inbox/delivery-hold.js +34 -0
  40. package/dist/inbox/delivery-hold.js.map +1 -0
  41. package/dist/inbox/delivery-hold.test.d.ts +2 -0
  42. package/dist/inbox/delivery-hold.test.d.ts.map +1 -0
  43. package/dist/inbox/delivery-hold.test.js +40 -0
  44. package/dist/inbox/delivery-hold.test.js.map +1 -0
  45. package/dist/inbox/inbox-overload.d.ts +19 -0
  46. package/dist/inbox/inbox-overload.d.ts.map +1 -0
  47. package/dist/inbox/inbox-overload.js +45 -0
  48. package/dist/inbox/inbox-overload.js.map +1 -0
  49. package/dist/inbox/inbox-overload.test.d.ts +2 -0
  50. package/dist/inbox/inbox-overload.test.d.ts.map +1 -0
  51. package/dist/inbox/inbox-overload.test.js +43 -0
  52. package/dist/inbox/inbox-overload.test.js.map +1 -0
  53. package/dist/inbox/pane-ops-drain.d.ts +14 -0
  54. package/dist/inbox/pane-ops-drain.d.ts.map +1 -0
  55. package/dist/inbox/pane-ops-drain.js +53 -0
  56. package/dist/inbox/pane-ops-drain.js.map +1 -0
  57. package/dist/index.d.ts +2 -2
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +2 -2
  60. package/dist/index.js.map +1 -1
  61. package/dist/inject/compose-gate.d.ts +23 -0
  62. package/dist/inject/compose-gate.d.ts.map +1 -0
  63. package/dist/inject/compose-gate.js +113 -0
  64. package/dist/inject/compose-gate.js.map +1 -0
  65. package/dist/inject/compose-gate.test.d.ts +2 -0
  66. package/dist/inject/compose-gate.test.d.ts.map +1 -0
  67. package/dist/inject/compose-gate.test.js +35 -0
  68. package/dist/inject/compose-gate.test.js.map +1 -0
  69. package/dist/inject/inject-delivery.d.ts +39 -0
  70. package/dist/inject/inject-delivery.d.ts.map +1 -0
  71. package/dist/inject/inject-delivery.js +171 -0
  72. package/dist/inject/inject-delivery.js.map +1 -0
  73. package/dist/inject/inject-delivery.test.d.ts +2 -0
  74. package/dist/inject/inject-delivery.test.d.ts.map +1 -0
  75. package/dist/inject/inject-delivery.test.js +33 -0
  76. package/dist/inject/inject-delivery.test.js.map +1 -0
  77. package/dist/jsonl-store.d.ts.map +1 -1
  78. package/dist/jsonl-store.js +4 -0
  79. package/dist/jsonl-store.js.map +1 -1
  80. package/dist/mesh-inbox-server.js +13 -13
  81. package/dist/mesh-inbox-server.js.map +1 -1
  82. package/dist/mesh-orchestrator.d.ts.map +1 -1
  83. package/dist/mesh-orchestrator.js +1 -0
  84. package/dist/mesh-orchestrator.js.map +1 -1
  85. package/dist/notify/notify-act-ui.d.ts +7 -0
  86. package/dist/notify/notify-act-ui.d.ts.map +1 -0
  87. package/dist/notify/notify-act-ui.js +59 -0
  88. package/dist/notify/notify-act-ui.js.map +1 -0
  89. package/dist/notify/notify-act.d.ts +45 -0
  90. package/dist/notify/notify-act.d.ts.map +1 -0
  91. package/dist/notify/notify-act.js +133 -0
  92. package/dist/notify/notify-act.js.map +1 -0
  93. package/dist/notify/notify-act.test.d.ts +2 -0
  94. package/dist/notify/notify-act.test.d.ts.map +1 -0
  95. package/dist/notify/notify-act.test.js +29 -0
  96. package/dist/notify/notify-act.test.js.map +1 -0
  97. package/dist/orchestrator/mesh-orchestrator.d.ts +32 -0
  98. package/dist/orchestrator/mesh-orchestrator.d.ts.map +1 -0
  99. package/dist/orchestrator/mesh-orchestrator.js +642 -0
  100. package/dist/orchestrator/mesh-orchestrator.js.map +1 -0
  101. package/dist/orchestrator/orchestrator.d.ts +17 -0
  102. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  103. package/dist/orchestrator/orchestrator.js +11 -0
  104. package/dist/orchestrator/orchestrator.js.map +1 -0
  105. package/dist/orchestrator/workers.d.ts +11 -0
  106. package/dist/orchestrator/workers.d.ts.map +1 -0
  107. package/dist/orchestrator/workers.js +12 -0
  108. package/dist/orchestrator/workers.js.map +1 -0
  109. package/dist/peer/peer-backlog.d.ts +18 -0
  110. package/dist/peer/peer-backlog.d.ts.map +1 -0
  111. package/dist/peer/peer-backlog.js +288 -0
  112. package/dist/peer/peer-backlog.js.map +1 -0
  113. package/dist/peer/peer-backlog.test.d.ts +2 -0
  114. package/dist/peer/peer-backlog.test.d.ts.map +1 -0
  115. package/dist/peer/peer-backlog.test.js +38 -0
  116. package/dist/peer/peer-backlog.test.js.map +1 -0
  117. package/dist/peer/peer-comms-checkback.d.ts +5 -0
  118. package/dist/peer/peer-comms-checkback.d.ts.map +1 -0
  119. package/dist/peer/peer-comms-checkback.js +68 -0
  120. package/dist/peer/peer-comms-checkback.js.map +1 -0
  121. package/dist/peer/peer-pending.d.ts +9 -0
  122. package/dist/peer/peer-pending.d.ts.map +1 -0
  123. package/dist/peer/peer-pending.js +19 -0
  124. package/dist/peer/peer-pending.js.map +1 -0
  125. package/dist/peer/peer-pending.test.d.ts +2 -0
  126. package/dist/peer/peer-pending.test.d.ts.map +1 -0
  127. package/dist/peer/peer-pending.test.js +76 -0
  128. package/dist/peer/peer-pending.test.js.map +1 -0
  129. package/dist/peer/peer-skip.d.ts +20 -0
  130. package/dist/peer/peer-skip.d.ts.map +1 -0
  131. package/dist/peer/peer-skip.js +56 -0
  132. package/dist/peer/peer-skip.js.map +1 -0
  133. package/dist/peer/peer-skip.test.d.ts +2 -0
  134. package/dist/peer/peer-skip.test.d.ts.map +1 -0
  135. package/dist/peer/peer-skip.test.js +63 -0
  136. package/dist/peer/peer-skip.test.js.map +1 -0
  137. package/dist/peer/peer-target-resolve.d.ts +8 -0
  138. package/dist/peer/peer-target-resolve.d.ts.map +1 -0
  139. package/dist/peer/peer-target-resolve.js +13 -0
  140. package/dist/peer/peer-target-resolve.js.map +1 -0
  141. package/dist/peer-backlog.d.ts.map +1 -1
  142. package/dist/peer-backlog.js +25 -0
  143. package/dist/peer-backlog.js.map +1 -1
  144. package/dist/peer-pending.test.js +17 -0
  145. package/dist/peer-pending.test.js.map +1 -1
  146. package/dist/queue/bullmq-runtime.d.ts +19 -0
  147. package/dist/queue/bullmq-runtime.d.ts.map +1 -0
  148. package/dist/queue/bullmq-runtime.js +78 -0
  149. package/dist/queue/bullmq-runtime.js.map +1 -0
  150. package/dist/state/ppa-state.d.ts +32 -0
  151. package/dist/state/ppa-state.d.ts.map +1 -0
  152. package/dist/state/ppa-state.js +63 -0
  153. package/dist/state/ppa-state.js.map +1 -0
  154. package/dist/store/create-queue-store.d.ts +8 -0
  155. package/dist/store/create-queue-store.d.ts.map +1 -0
  156. package/dist/store/create-queue-store.js +19 -0
  157. package/dist/store/create-queue-store.js.map +1 -0
  158. package/dist/store/jsonl-dedupe.test.d.ts +2 -0
  159. package/dist/store/jsonl-dedupe.test.d.ts.map +1 -0
  160. package/dist/store/jsonl-dedupe.test.js +62 -0
  161. package/dist/store/jsonl-dedupe.test.js.map +1 -0
  162. package/dist/store/jsonl-store.checkback.test.d.ts +2 -0
  163. package/dist/store/jsonl-store.checkback.test.d.ts.map +1 -0
  164. package/dist/store/jsonl-store.checkback.test.js +55 -0
  165. package/dist/store/jsonl-store.checkback.test.js.map +1 -0
  166. package/dist/store/jsonl-store.d.ts +129 -0
  167. package/dist/store/jsonl-store.d.ts.map +1 -0
  168. package/dist/store/jsonl-store.js +316 -0
  169. package/dist/store/jsonl-store.js.map +1 -0
  170. package/dist/store/sqlite-store.d.ts +52 -0
  171. package/dist/store/sqlite-store.d.ts.map +1 -0
  172. package/dist/store/sqlite-store.js +456 -0
  173. package/dist/store/sqlite-store.js.map +1 -0
  174. package/dist/store/sqlite-store.test.d.ts +2 -0
  175. package/dist/store/sqlite-store.test.d.ts.map +1 -0
  176. package/dist/store/sqlite-store.test.js +76 -0
  177. package/dist/store/sqlite-store.test.js.map +1 -0
  178. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl-store.js","sourceRoot":"","sources":["../../src/store/jsonl-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { type PaneOpRow } from "@seat-mesh/core";
2
+ import { type CheckbackRow, type PeerRow, type ToMasterRow } from "./jsonl-store.js";
3
+ export declare function migrateJsonlDirToSqlite(dbPath: string, jsonlDir: string, log: (line: string) => void): boolean;
4
+ export declare class SqliteStore {
5
+ readonly stateDir: string;
6
+ readonly log: (line: string) => void;
7
+ private readonly db;
8
+ constructor(dbPath: string, stateDir: string, log?: (line: string) => void);
9
+ close(): void;
10
+ setMeta(key: string, value: string): void;
11
+ get checkbackPath(): string;
12
+ get inboxPath(): string;
13
+ get peerPath(): string;
14
+ get paneOpsPath(): string;
15
+ readCheckbacks(): CheckbackRow[];
16
+ writeCheckbacks(rows: CheckbackRow[]): void;
17
+ upsertCheckback(row: CheckbackRow): CheckbackRow;
18
+ findCheckback(id: string): CheckbackRow | null;
19
+ resetCheckback(id: string, expiresAt: string): CheckbackRow | null;
20
+ ackCheckback(id: string, yes: boolean): {
21
+ ok: boolean;
22
+ action?: string;
23
+ id?: string;
24
+ error?: string;
25
+ };
26
+ cancelCheckback(id: string): boolean;
27
+ cancelAllCheckbacks(): number;
28
+ cancelCheckbacksForPaneExpect(ownerPane: string, expect: string): number;
29
+ clearPaneOps(): number;
30
+ readInbox(): ToMasterRow[];
31
+ writeInbox(rows: ToMasterRow[]): void;
32
+ appendInbox(row: ToMasterRow): void;
33
+ resolveInbox(opts: {
34
+ id?: string;
35
+ all?: boolean;
36
+ }): {
37
+ resolved: number;
38
+ ids: string[];
39
+ };
40
+ readPeer(): PeerRow[];
41
+ writePeer(rows: PeerRow[]): void;
42
+ appendPeer(row: PeerRow): void;
43
+ appendPeers(rows: PeerRow[]): void;
44
+ readPaneOps(): PaneOpRow[];
45
+ writePaneOps(rows: PaneOpRow[]): void;
46
+ appendPaneOp(row: PaneOpRow): void;
47
+ updatePaneOp(row: PaneOpRow): void;
48
+ countPaneOpsPending(): number;
49
+ formatInboxInject(row: ToMasterRow, targetRole?: "manager" | "secretary"): string;
50
+ compactPeer(): number;
51
+ }
52
+ //# sourceMappingURL=sqlite-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../../src/store/sqlite-store.ts"],"names":[],"mappings":"AAGA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAmH1B,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC1B,OAAO,CAoCT;AAED,qBAAa,WAAW;IAKpB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IALtC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;gBAG5B,MAAM,EAAE,MAAM,EACL,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe;IAQjD,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQzC,IAAI,aAAa,IAAI,MAAM,CAE1B;IACD,IAAI,SAAS,IAAI,MAAM,CAEtB;IACD,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,cAAc,IAAI,YAAY,EAAE;IAOhC,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI;IAY3C,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;IAchD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAS9C,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAYlE,YAAY,CACV,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,OAAO,GACX;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAchE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IASpC,mBAAmB,IAAI,MAAM;IAS7B,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IASxE,YAAY,IAAI,MAAM;IAQtB,SAAS,IAAI,WAAW,EAAE;IAI1B,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI;IAmBrC,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAcnC,YAAY,CAAC,IAAI,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE;IAwBvF,QAAQ,IAAI,OAAO,EAAE;IASrB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAchC,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAS9B,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAIlC,WAAW,IAAI,SAAS,EAAE;IAS1B,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI;IASrC,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAMlC,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAIlC,mBAAmB,IAAI,MAAM;IAI7B,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,GAAE,SAAS,GAAG,WAAuB,GAAG,MAAM;IAiB5F,WAAW,IAAI,MAAM;CAUtB"}
@@ -0,0 +1,456 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { createRequire } from "node:module";
4
+ import { formatMeshSteeringInject } from "@seat-mesh/core";
5
+ import { dedupeJsonlRowsById, } from "./jsonl-store.js";
6
+ const require = createRequire(import.meta.url);
7
+ function openSqliteDb(dbPath) {
8
+ const Ctor = require("better-sqlite3");
9
+ return new Ctor(dbPath);
10
+ }
11
+ function sqlRows(rows, map) {
12
+ return rows.map((row) => map(row));
13
+ }
14
+ function sqlChanges(result) {
15
+ return Number(result.changes ?? 0);
16
+ }
17
+ const SCHEMA = `
18
+ PRAGMA journal_mode = WAL;
19
+ PRAGMA synchronous = NORMAL;
20
+
21
+ CREATE TABLE IF NOT EXISTS meta (
22
+ key TEXT PRIMARY KEY,
23
+ value TEXT NOT NULL
24
+ );
25
+
26
+ CREATE TABLE IF NOT EXISTS inbox (
27
+ id TEXT PRIMARY KEY,
28
+ at TEXT NOT NULL,
29
+ from_agent TEXT NOT NULL,
30
+ slot TEXT,
31
+ ports TEXT,
32
+ msg TEXT NOT NULL,
33
+ sent INTEGER NOT NULL DEFAULT 0,
34
+ sent_at TEXT,
35
+ delivered_to TEXT,
36
+ deliver_pane TEXT,
37
+ deliver_mode TEXT,
38
+ resolved INTEGER NOT NULL DEFAULT 0,
39
+ read_flag INTEGER NOT NULL DEFAULT 0
40
+ );
41
+
42
+ CREATE TABLE IF NOT EXISTS peer (
43
+ id TEXT PRIMARY KEY,
44
+ at TEXT NOT NULL,
45
+ kind TEXT NOT NULL,
46
+ from_slot TEXT NOT NULL,
47
+ from_ports TEXT,
48
+ room_slug TEXT,
49
+ from_agent TEXT,
50
+ target_pane TEXT NOT NULL,
51
+ target_label TEXT NOT NULL,
52
+ msg TEXT NOT NULL,
53
+ sent INTEGER NOT NULL DEFAULT 0,
54
+ sent_at TEXT,
55
+ deliver_pane TEXT,
56
+ deliver_mode TEXT
57
+ );
58
+
59
+ CREATE TABLE IF NOT EXISTS checkback (
60
+ id TEXT PRIMARY KEY,
61
+ kind TEXT,
62
+ status TEXT NOT NULL,
63
+ renew_sec INTEGER,
64
+ expect TEXT,
65
+ owner_pane TEXT,
66
+ expires_at TEXT,
67
+ sender_label TEXT,
68
+ recipient_label TEXT,
69
+ created_at TEXT NOT NULL,
70
+ updated_at TEXT NOT NULL
71
+ );
72
+
73
+ CREATE TABLE IF NOT EXISTS pane_ops (
74
+ id TEXT PRIMARY KEY,
75
+ row_json TEXT NOT NULL
76
+ );
77
+
78
+ CREATE INDEX IF NOT EXISTS idx_inbox_pending ON inbox(sent, resolved);
79
+ CREATE INDEX IF NOT EXISTS idx_peer_pending ON peer(sent);
80
+ CREATE INDEX IF NOT EXISTS idx_checkback_active ON checkback(status, expires_at);
81
+ `;
82
+ function bool(v) {
83
+ return v ? 1 : 0;
84
+ }
85
+ function readJsonlFile(file) {
86
+ if (!fs.existsSync(file))
87
+ return [];
88
+ return fs
89
+ .readFileSync(file, "utf8")
90
+ .split("\n")
91
+ .map((l) => l.trim())
92
+ .filter(Boolean)
93
+ .map((l) => {
94
+ try {
95
+ return JSON.parse(l);
96
+ }
97
+ catch {
98
+ return null;
99
+ }
100
+ })
101
+ .filter((r) => r !== null);
102
+ }
103
+ export function migrateJsonlDirToSqlite(dbPath, jsonlDir, log) {
104
+ if (fs.existsSync(dbPath)) {
105
+ const db = openSqliteDb(dbPath);
106
+ const row = db.prepare("SELECT value FROM meta WHERE key = ?").get("migrated_from_jsonl");
107
+ db.close();
108
+ if (row)
109
+ return false;
110
+ }
111
+ const inboxPath = path.join(jsonlDir, "INBOX.jsonl");
112
+ const peerPath = path.join(jsonlDir, "PEER.jsonl");
113
+ const checkPath = path.join(jsonlDir, "CHECKBACK.jsonl");
114
+ const panePath = path.join(jsonlDir, "PANE_OPS.jsonl");
115
+ const hasAny = fs.existsSync(inboxPath) ||
116
+ fs.existsSync(peerPath) ||
117
+ fs.existsSync(checkPath) ||
118
+ fs.existsSync(panePath);
119
+ if (!hasAny)
120
+ return false;
121
+ fs.mkdirSync(path.dirname(dbPath), { recursive: true });
122
+ const store = new SqliteStore(dbPath, jsonlDir, log);
123
+ const inbox = readJsonlFile(inboxPath);
124
+ const peer = dedupeJsonlRowsById(readJsonlFile(peerPath));
125
+ const checkbacks = readJsonlFile(checkPath);
126
+ const paneOps = readJsonlFile(panePath);
127
+ if (inbox.length)
128
+ store.writeInbox(inbox);
129
+ if (peer.length)
130
+ store.writePeer(peer);
131
+ if (checkbacks.length)
132
+ store.writeCheckbacks(checkbacks);
133
+ if (paneOps.length)
134
+ store.writePaneOps(paneOps);
135
+ store.setMeta("migrated_from_jsonl", new Date().toISOString());
136
+ log(`SQLITE migrate jsonl -> ${dbPath} inbox=${inbox.length} peer=${peer.length} checkback=${checkbacks.length} pane_ops=${paneOps.length}`);
137
+ return true;
138
+ }
139
+ export class SqliteStore {
140
+ stateDir;
141
+ log;
142
+ db;
143
+ constructor(dbPath, stateDir, log = () => { }) {
144
+ this.stateDir = stateDir;
145
+ this.log = log;
146
+ fs.mkdirSync(stateDir, { recursive: true });
147
+ fs.mkdirSync(path.dirname(dbPath), { recursive: true });
148
+ this.db = openSqliteDb(dbPath);
149
+ this.db.exec(SCHEMA);
150
+ }
151
+ close() {
152
+ this.db.close();
153
+ }
154
+ setMeta(key, value) {
155
+ this.db
156
+ .prepare("INSERT INTO meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value")
157
+ .run(key, value);
158
+ }
159
+ get checkbackPath() {
160
+ return path.join(this.stateDir, "CHECKBACK.jsonl");
161
+ }
162
+ get inboxPath() {
163
+ return path.join(this.stateDir, "INBOX.jsonl");
164
+ }
165
+ get peerPath() {
166
+ return path.join(this.stateDir, "PEER.jsonl");
167
+ }
168
+ get paneOpsPath() {
169
+ return path.join(this.stateDir, "PANE_OPS.jsonl");
170
+ }
171
+ readCheckbacks() {
172
+ return sqlRows(this.db.prepare("SELECT * FROM checkback ORDER BY created_at").all(), rowToCheckback);
173
+ }
174
+ writeCheckbacks(rows) {
175
+ const del = this.db.prepare("DELETE FROM checkback");
176
+ const ins = this.db.prepare(`
177
+ INSERT INTO checkback(id, kind, status, renew_sec, expect, owner_pane, expires_at, sender_label, recipient_label, created_at, updated_at)
178
+ VALUES (@id, @kind, @status, @renewSec, @expect, @ownerPane, @expiresAt, @senderLabel, @recipientLabel, @createdAt, @updatedAt)
179
+ `);
180
+ this.db.transaction(() => {
181
+ del.run();
182
+ for (const r of rows)
183
+ ins.run(r);
184
+ })();
185
+ }
186
+ upsertCheckback(row) {
187
+ this.db
188
+ .prepare(`
189
+ INSERT INTO checkback(id, kind, status, renew_sec, expect, owner_pane, expires_at, sender_label, recipient_label, created_at, updated_at)
190
+ VALUES (@id, @kind, @status, @renewSec, @expect, @ownerPane, @expiresAt, @senderLabel, @recipientLabel, @createdAt, @updatedAt)
191
+ ON CONFLICT(id) DO UPDATE SET
192
+ kind=excluded.kind, status=excluded.status, renew_sec=excluded.renew_sec, expect=excluded.expect,
193
+ owner_pane=excluded.owner_pane, expires_at=excluded.expires_at, sender_label=excluded.sender_label,
194
+ recipient_label=excluded.recipient_label, updated_at=excluded.updated_at
195
+ `)
196
+ .run(row);
197
+ return row;
198
+ }
199
+ findCheckback(id) {
200
+ const needle = String(id || "").trim().toLowerCase();
201
+ if (!needle)
202
+ return null;
203
+ const row = this.db
204
+ .prepare("SELECT * FROM checkback WHERE id = ? OR lower(id) LIKE ? LIMIT 1")
205
+ .get(id, `${needle}%`);
206
+ return row ? rowToCheckback(row) : null;
207
+ }
208
+ resetCheckback(id, expiresAt) {
209
+ const row = this.findCheckback(id);
210
+ if (!row || Number.isNaN(Date.parse(expiresAt)))
211
+ return null;
212
+ const now = new Date().toISOString();
213
+ this.db
214
+ .prepare("UPDATE checkback SET status = 'active', expires_at = ?, updated_at = ? WHERE id = ?")
215
+ .run(expiresAt, now, row.id);
216
+ return { ...row, status: "active", expiresAt, updatedAt: now };
217
+ }
218
+ ackCheckback(id, yes) {
219
+ const row = this.findCheckback(id);
220
+ if (!row)
221
+ return { ok: false, error: "not found" };
222
+ if (row.status !== "active")
223
+ return { ok: false, error: `status=${row.status}` };
224
+ if (yes) {
225
+ const now = new Date().toISOString();
226
+ this.db
227
+ .prepare("UPDATE checkback SET status = 'cancelled', updated_at = ? WHERE id = ?")
228
+ .run(now, row.id);
229
+ return { ok: true, action: "matched", id: row.id };
230
+ }
231
+ return { ok: true, action: "ignored", id: row.id };
232
+ }
233
+ cancelCheckback(id) {
234
+ const r = this.db
235
+ .prepare("UPDATE checkback SET status = 'cancelled', updated_at = ? WHERE status = 'active' AND (id = ? OR id LIKE ?)")
236
+ .run(new Date().toISOString(), id, `${id}%`);
237
+ return sqlChanges(r) > 0;
238
+ }
239
+ cancelAllCheckbacks() {
240
+ const r = this.db
241
+ .prepare("UPDATE checkback SET status = 'cancelled', updated_at = ? WHERE status = 'active'")
242
+ .run(new Date().toISOString());
243
+ return sqlChanges(r);
244
+ }
245
+ cancelCheckbacksForPaneExpect(ownerPane, expect) {
246
+ const r = this.db
247
+ .prepare("UPDATE checkback SET status = 'cancelled', updated_at = ? WHERE status = 'active' AND owner_pane = ? AND expect = ?")
248
+ .run(new Date().toISOString(), ownerPane, expect);
249
+ return sqlChanges(r);
250
+ }
251
+ clearPaneOps() {
252
+ const rows = this.readPaneOps();
253
+ const open = rows.filter((r) => r.status === "pending" || r.status === "running");
254
+ const kept = rows.filter((r) => r.status !== "pending" && r.status !== "running");
255
+ if (open.length)
256
+ this.writePaneOps(kept);
257
+ return open.length;
258
+ }
259
+ readInbox() {
260
+ return sqlRows(this.db.prepare("SELECT * FROM inbox ORDER BY at").all(), rowToInbox);
261
+ }
262
+ writeInbox(rows) {
263
+ const del = this.db.prepare("DELETE FROM inbox");
264
+ const ins = this.db.prepare(`
265
+ INSERT INTO inbox(id, at, from_agent, slot, ports, msg, sent, sent_at, delivered_to, deliver_pane, deliver_mode, resolved, read_flag)
266
+ VALUES (@id, @at, @from, @slot, @ports, @msg, @sent, @sentAt, @deliveredTo, @deliverPane, @deliverMode, @resolved, @read)
267
+ `);
268
+ this.db.transaction(() => {
269
+ del.run();
270
+ for (const r of rows) {
271
+ ins.run({
272
+ ...r,
273
+ sent: bool(r.sent),
274
+ resolved: bool(r.resolved),
275
+ read: bool(r.read),
276
+ });
277
+ }
278
+ })();
279
+ }
280
+ appendInbox(row) {
281
+ this.db
282
+ .prepare(`
283
+ INSERT OR REPLACE INTO inbox(id, at, from_agent, slot, ports, msg, sent, sent_at, delivered_to, deliver_pane, deliver_mode, resolved, read_flag)
284
+ VALUES (@id, @at, @from, @slot, @ports, @msg, @sent, @sentAt, @deliveredTo, @deliverPane, @deliverMode, @resolved, @read)
285
+ `)
286
+ .run({
287
+ ...row,
288
+ sent: bool(row.sent),
289
+ resolved: bool(row.resolved),
290
+ read: bool(row.read),
291
+ });
292
+ }
293
+ resolveInbox(opts) {
294
+ const rows = this.readInbox();
295
+ const ids = [];
296
+ let resolved = 0;
297
+ for (const r of rows) {
298
+ if (r.resolved)
299
+ continue;
300
+ const hit = opts.all === true ||
301
+ (opts.id != null && (r.id === opts.id || r.id.startsWith(opts.id)));
302
+ if (!hit)
303
+ continue;
304
+ r.resolved = true;
305
+ r.read = true;
306
+ ids.push(r.id);
307
+ resolved++;
308
+ }
309
+ if (resolved > 0) {
310
+ const stmt = this.db.prepare("UPDATE inbox SET resolved = 1, read_flag = 1 WHERE id = ?");
311
+ for (const id of ids)
312
+ stmt.run(id);
313
+ }
314
+ return { resolved, ids };
315
+ }
316
+ readPeer() {
317
+ return dedupeJsonlRowsById(this.db
318
+ .prepare("SELECT * FROM peer ORDER BY at")
319
+ .all()
320
+ .map((row) => rowToPeer(row)));
321
+ }
322
+ writePeer(rows) {
323
+ const del = this.db.prepare("DELETE FROM peer");
324
+ const ins = this.db.prepare(`
325
+ INSERT INTO peer(id, at, kind, from_slot, from_ports, room_slug, from_agent, target_pane, target_label, msg, sent, sent_at, deliver_pane, deliver_mode)
326
+ VALUES (@id, @at, @kind, @fromSlot, @fromPorts, @roomSlug, @fromAgent, @targetPane, @targetLabel, @msg, @sent, @sentAt, @deliverPane, @deliverMode)
327
+ `);
328
+ this.db.transaction(() => {
329
+ del.run();
330
+ for (const r of rows) {
331
+ ins.run({ ...r, sent: bool(r.sent) });
332
+ }
333
+ })();
334
+ }
335
+ appendPeer(row) {
336
+ this.db
337
+ .prepare(`
338
+ INSERT OR REPLACE INTO peer(id, at, kind, from_slot, from_ports, room_slug, from_agent, target_pane, target_label, msg, sent, sent_at, deliver_pane, deliver_mode)
339
+ VALUES (@id, @at, @kind, @fromSlot, @fromPorts, @roomSlug, @fromAgent, @targetPane, @targetLabel, @msg, @sent, @sentAt, @deliverPane, @deliverMode)
340
+ `)
341
+ .run({ ...row, sent: bool(row.sent) });
342
+ }
343
+ appendPeers(rows) {
344
+ for (const row of rows)
345
+ this.appendPeer(row);
346
+ }
347
+ readPaneOps() {
348
+ return this.db
349
+ .prepare("SELECT row_json FROM pane_ops")
350
+ .all()
351
+ .map((row) => JSON.parse(String(row.row_json)));
352
+ }
353
+ writePaneOps(rows) {
354
+ const del = this.db.prepare("DELETE FROM pane_ops");
355
+ const ins = this.db.prepare("INSERT INTO pane_ops(id, row_json) VALUES (?, ?)");
356
+ this.db.transaction(() => {
357
+ del.run();
358
+ for (const r of rows)
359
+ ins.run(r.id, JSON.stringify(r));
360
+ })();
361
+ }
362
+ appendPaneOp(row) {
363
+ this.db
364
+ .prepare("INSERT OR REPLACE INTO pane_ops(id, row_json) VALUES (?, ?)")
365
+ .run(row.id, JSON.stringify(row));
366
+ }
367
+ updatePaneOp(row) {
368
+ this.appendPaneOp(row);
369
+ }
370
+ countPaneOpsPending() {
371
+ return this.readPaneOps().filter((r) => r.status === "pending" || r.status === "running").length;
372
+ }
373
+ formatInboxInject(row, targetRole = "manager") {
374
+ const from = String(row.from ?? "").trim();
375
+ const slot = row.slot != null ? String(row.slot) : "";
376
+ let who;
377
+ if (from === "secretary" || from === "manager" || slot === "secretary" || slot === "manager") {
378
+ who = from || slot;
379
+ }
380
+ else if (/^\d+$/.test(slot)) {
381
+ who = `slot-${slot}${row.ports ? ` (${row.ports})` : ""}`;
382
+ }
383
+ else {
384
+ who = from || slot || "unknown";
385
+ }
386
+ const body = String(row.msg || "").trim().slice(0, 400);
387
+ const label = targetRole === "secretary" ? `TO-SECRETARY from ${who}` : `TO-MASTER from ${who}`;
388
+ return formatMeshSteeringInject({ role: targetRole }, label, body);
389
+ }
390
+ compactPeer() {
391
+ const raw = this.db
392
+ .prepare("SELECT * FROM peer ORDER BY at")
393
+ .all()
394
+ .map((row) => rowToPeer(row));
395
+ const deduped = dedupeJsonlRowsById(raw);
396
+ if (deduped.length === raw.length)
397
+ return 0;
398
+ this.writePeer(deduped);
399
+ return raw.length - deduped.length;
400
+ }
401
+ }
402
+ function rowToInbox(row) {
403
+ return {
404
+ id: String(row.id),
405
+ at: String(row.at),
406
+ from: String(row.from_agent),
407
+ slot: row.slot != null ? String(row.slot) : null,
408
+ ports: row.ports != null ? String(row.ports) : null,
409
+ msg: String(row.msg),
410
+ sent: Number(row.sent) === 1,
411
+ sentAt: row.sent_at != null ? String(row.sent_at) : undefined,
412
+ deliveredTo: row.delivered_to != null ? String(row.delivered_to) : undefined,
413
+ deliverPane: row.deliver_pane != null ? String(row.deliver_pane) : undefined,
414
+ deliverMode: row.deliver_mode === "idle" || row.deliver_mode === "steer"
415
+ ? row.deliver_mode
416
+ : undefined,
417
+ resolved: Number(row.resolved) === 1,
418
+ read: Number(row.read_flag) === 1,
419
+ };
420
+ }
421
+ function rowToPeer(row) {
422
+ return {
423
+ id: String(row.id),
424
+ at: String(row.at),
425
+ kind: row.kind,
426
+ fromSlot: String(row.from_slot),
427
+ fromPorts: row.from_ports != null ? String(row.from_ports) : null,
428
+ roomSlug: row.room_slug != null ? String(row.room_slug) : null,
429
+ fromAgent: row.from_agent != null ? String(row.from_agent) : null,
430
+ targetPane: String(row.target_pane),
431
+ targetLabel: String(row.target_label),
432
+ msg: String(row.msg),
433
+ sent: Number(row.sent) === 1,
434
+ sentAt: row.sent_at != null ? String(row.sent_at) : undefined,
435
+ deliverPane: row.deliver_pane != null ? String(row.deliver_pane) : undefined,
436
+ deliverMode: row.deliver_mode === "idle" || row.deliver_mode === "steer"
437
+ ? row.deliver_mode
438
+ : undefined,
439
+ };
440
+ }
441
+ function rowToCheckback(row) {
442
+ return {
443
+ id: String(row.id),
444
+ kind: String(row.kind ?? ""),
445
+ status: row.status === "cancelled" ? "cancelled" : "active",
446
+ renewSec: row.renew_sec != null ? Number(row.renew_sec) : undefined,
447
+ expect: row.expect != null ? String(row.expect) : undefined,
448
+ ownerPane: row.owner_pane != null ? String(row.owner_pane) : undefined,
449
+ expiresAt: row.expires_at != null ? String(row.expires_at) : undefined,
450
+ senderLabel: row.sender_label != null ? String(row.sender_label) : undefined,
451
+ recipientLabel: row.recipient_label != null ? String(row.recipient_label) : undefined,
452
+ createdAt: String(row.created_at),
453
+ updatedAt: String(row.updated_at),
454
+ };
455
+ }
456
+ //# sourceMappingURL=sqlite-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-store.js","sourceRoot":"","sources":["../../src/store/sqlite-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sqlite-store.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-store.test.d.ts","sourceRoot":"","sources":["../../src/store/sqlite-store.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,76 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { createRequire } from "node:module";
5
+ import { describe, expect, it } from "vitest";
6
+ import { JsonlStore } from "./jsonl-store.js";
7
+ import { migrateJsonlDirToSqlite, SqliteStore } from "./sqlite-store.js";
8
+ const require = createRequire(import.meta.url);
9
+ function sqliteNativeAvailable() {
10
+ try {
11
+ const Ctor = require("better-sqlite3");
12
+ const db = new Ctor(":memory:");
13
+ db.close();
14
+ return true;
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ }
20
+ describe.skipIf(!sqliteNativeAvailable())("SqliteStore", () => {
21
+ it("roundtrips inbox and peer rows", () => {
22
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), "sm-sqlite-"));
23
+ const db = path.join(dir, "mesh.sqlite");
24
+ const store = new SqliteStore(db, path.join(dir, "daemon"));
25
+ store.appendInbox({
26
+ id: "in-1",
27
+ at: new Date().toISOString(),
28
+ from: "worker",
29
+ slot: "3",
30
+ ports: "3030/3031",
31
+ msg: "DONE: test",
32
+ sent: false,
33
+ resolved: false,
34
+ read: false,
35
+ });
36
+ store.appendPeer({
37
+ id: "pe-1",
38
+ at: new Date().toISOString(),
39
+ kind: "room",
40
+ fromSlot: "3",
41
+ fromPorts: null,
42
+ targetPane: "%0",
43
+ targetLabel: "slot-3",
44
+ msg: "FYI",
45
+ sent: false,
46
+ });
47
+ expect(store.readInbox()).toHaveLength(1);
48
+ expect(store.readPeer()).toHaveLength(1);
49
+ store.close();
50
+ });
51
+ it("migrates jsonl dir once", () => {
52
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), "sm-migrate-"));
53
+ const jsonlDir = path.join(dir, "daemon");
54
+ fs.mkdirSync(jsonlDir, { recursive: true });
55
+ const jl = new JsonlStore(jsonlDir);
56
+ jl.appendInbox({
57
+ id: "m1",
58
+ at: new Date().toISOString(),
59
+ from: "worker",
60
+ slot: "1",
61
+ ports: null,
62
+ msg: "migrate me",
63
+ sent: false,
64
+ resolved: false,
65
+ read: false,
66
+ });
67
+ const db = path.join(dir, "mesh.sqlite");
68
+ const log = [];
69
+ expect(migrateJsonlDirToSqlite(db, jsonlDir, (l) => log.push(l))).toBe(true);
70
+ const store = new SqliteStore(db, jsonlDir);
71
+ expect(store.readInbox()).toHaveLength(1);
72
+ expect(migrateJsonlDirToSqlite(db, jsonlDir, () => { })).toBe(false);
73
+ store.close();
74
+ });
75
+ });
76
+ //# sourceMappingURL=sqlite-store.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-store.test.js","sourceRoot":"","sources":["../../src/store/sqlite-store.test.ts"],"names":[],"mappings":"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"}