@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.
- package/dist/border/border-paint.d.ts +13 -0
- package/dist/border/border-paint.d.ts.map +1 -0
- package/dist/border/border-paint.js +230 -0
- package/dist/border/border-paint.js.map +1 -0
- package/dist/checkback/checkback-fire.d.ts +8 -0
- package/dist/checkback/checkback-fire.d.ts.map +1 -0
- package/dist/checkback/checkback-fire.js +52 -0
- package/dist/checkback/checkback-fire.js.map +1 -0
- package/dist/checkback/checkback-fire.test.d.ts +2 -0
- package/dist/checkback/checkback-fire.test.d.ts.map +1 -0
- package/dist/checkback/checkback-fire.test.js +36 -0
- package/dist/checkback/checkback-fire.test.js.map +1 -0
- package/dist/connectivity/cc-limit-retry.d.ts +11 -0
- package/dist/connectivity/cc-limit-retry.d.ts.map +1 -0
- package/dist/connectivity/cc-limit-retry.js +73 -0
- package/dist/connectivity/cc-limit-retry.js.map +1 -0
- package/dist/connectivity/connectivity-recovery.d.ts +88 -0
- package/dist/connectivity/connectivity-recovery.d.ts.map +1 -0
- package/dist/connectivity/connectivity-recovery.js +529 -0
- package/dist/connectivity/connectivity-recovery.js.map +1 -0
- package/dist/connectivity/connectivity-recovery.test.d.ts +2 -0
- package/dist/connectivity/connectivity-recovery.test.d.ts.map +1 -0
- package/dist/connectivity/connectivity-recovery.test.js +170 -0
- package/dist/connectivity/connectivity-recovery.test.js.map +1 -0
- package/dist/connectivity/oc-resume-ack.d.ts +32 -0
- package/dist/connectivity/oc-resume-ack.d.ts.map +1 -0
- package/dist/connectivity/oc-resume-ack.js +89 -0
- package/dist/connectivity/oc-resume-ack.js.map +1 -0
- package/dist/connectivity/oc-resume-ack.test.d.ts +2 -0
- package/dist/connectivity/oc-resume-ack.test.d.ts.map +1 -0
- package/dist/connectivity/oc-resume-ack.test.js +23 -0
- package/dist/connectivity/oc-resume-ack.test.js.map +1 -0
- package/dist/connectivity/oc-resume.d.ts +25 -0
- package/dist/connectivity/oc-resume.d.ts.map +1 -0
- package/dist/connectivity/oc-resume.js +84 -0
- package/dist/connectivity/oc-resume.js.map +1 -0
- package/dist/inbox/delivery-hold.d.ts +11 -0
- package/dist/inbox/delivery-hold.d.ts.map +1 -0
- package/dist/inbox/delivery-hold.js +34 -0
- package/dist/inbox/delivery-hold.js.map +1 -0
- package/dist/inbox/delivery-hold.test.d.ts +2 -0
- package/dist/inbox/delivery-hold.test.d.ts.map +1 -0
- package/dist/inbox/delivery-hold.test.js +40 -0
- package/dist/inbox/delivery-hold.test.js.map +1 -0
- package/dist/inbox/inbox-overload.d.ts +19 -0
- package/dist/inbox/inbox-overload.d.ts.map +1 -0
- package/dist/inbox/inbox-overload.js +45 -0
- package/dist/inbox/inbox-overload.js.map +1 -0
- package/dist/inbox/inbox-overload.test.d.ts +2 -0
- package/dist/inbox/inbox-overload.test.d.ts.map +1 -0
- package/dist/inbox/inbox-overload.test.js +43 -0
- package/dist/inbox/inbox-overload.test.js.map +1 -0
- package/dist/inbox/pane-ops-drain.d.ts +14 -0
- package/dist/inbox/pane-ops-drain.d.ts.map +1 -0
- package/dist/inbox/pane-ops-drain.js +53 -0
- package/dist/inbox/pane-ops-drain.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/inject/compose-gate.d.ts +23 -0
- package/dist/inject/compose-gate.d.ts.map +1 -0
- package/dist/inject/compose-gate.js +113 -0
- package/dist/inject/compose-gate.js.map +1 -0
- package/dist/inject/compose-gate.test.d.ts +2 -0
- package/dist/inject/compose-gate.test.d.ts.map +1 -0
- package/dist/inject/compose-gate.test.js +35 -0
- package/dist/inject/compose-gate.test.js.map +1 -0
- package/dist/inject/inject-delivery.d.ts +39 -0
- package/dist/inject/inject-delivery.d.ts.map +1 -0
- package/dist/inject/inject-delivery.js +171 -0
- package/dist/inject/inject-delivery.js.map +1 -0
- package/dist/inject/inject-delivery.test.d.ts +2 -0
- package/dist/inject/inject-delivery.test.d.ts.map +1 -0
- package/dist/inject/inject-delivery.test.js +33 -0
- package/dist/inject/inject-delivery.test.js.map +1 -0
- package/dist/jsonl-store.d.ts.map +1 -1
- package/dist/jsonl-store.js +4 -0
- package/dist/jsonl-store.js.map +1 -1
- package/dist/mesh-inbox-server.js +13 -13
- package/dist/mesh-inbox-server.js.map +1 -1
- package/dist/mesh-orchestrator.d.ts.map +1 -1
- package/dist/mesh-orchestrator.js +1 -0
- package/dist/mesh-orchestrator.js.map +1 -1
- package/dist/notify/notify-act-ui.d.ts +7 -0
- package/dist/notify/notify-act-ui.d.ts.map +1 -0
- package/dist/notify/notify-act-ui.js +59 -0
- package/dist/notify/notify-act-ui.js.map +1 -0
- package/dist/notify/notify-act.d.ts +45 -0
- package/dist/notify/notify-act.d.ts.map +1 -0
- package/dist/notify/notify-act.js +133 -0
- package/dist/notify/notify-act.js.map +1 -0
- package/dist/notify/notify-act.test.d.ts +2 -0
- package/dist/notify/notify-act.test.d.ts.map +1 -0
- package/dist/notify/notify-act.test.js +29 -0
- package/dist/notify/notify-act.test.js.map +1 -0
- package/dist/orchestrator/mesh-orchestrator.d.ts +32 -0
- package/dist/orchestrator/mesh-orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/mesh-orchestrator.js +642 -0
- package/dist/orchestrator/mesh-orchestrator.js.map +1 -0
- package/dist/orchestrator/orchestrator.d.ts +17 -0
- package/dist/orchestrator/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator.js +11 -0
- package/dist/orchestrator/orchestrator.js.map +1 -0
- package/dist/orchestrator/workers.d.ts +11 -0
- package/dist/orchestrator/workers.d.ts.map +1 -0
- package/dist/orchestrator/workers.js +12 -0
- package/dist/orchestrator/workers.js.map +1 -0
- package/dist/peer/peer-backlog.d.ts +18 -0
- package/dist/peer/peer-backlog.d.ts.map +1 -0
- package/dist/peer/peer-backlog.js +288 -0
- package/dist/peer/peer-backlog.js.map +1 -0
- package/dist/peer/peer-backlog.test.d.ts +2 -0
- package/dist/peer/peer-backlog.test.d.ts.map +1 -0
- package/dist/peer/peer-backlog.test.js +38 -0
- package/dist/peer/peer-backlog.test.js.map +1 -0
- package/dist/peer/peer-comms-checkback.d.ts +5 -0
- package/dist/peer/peer-comms-checkback.d.ts.map +1 -0
- package/dist/peer/peer-comms-checkback.js +68 -0
- package/dist/peer/peer-comms-checkback.js.map +1 -0
- package/dist/peer/peer-pending.d.ts +9 -0
- package/dist/peer/peer-pending.d.ts.map +1 -0
- package/dist/peer/peer-pending.js +19 -0
- package/dist/peer/peer-pending.js.map +1 -0
- package/dist/peer/peer-pending.test.d.ts +2 -0
- package/dist/peer/peer-pending.test.d.ts.map +1 -0
- package/dist/peer/peer-pending.test.js +76 -0
- package/dist/peer/peer-pending.test.js.map +1 -0
- package/dist/peer/peer-skip.d.ts +20 -0
- package/dist/peer/peer-skip.d.ts.map +1 -0
- package/dist/peer/peer-skip.js +56 -0
- package/dist/peer/peer-skip.js.map +1 -0
- package/dist/peer/peer-skip.test.d.ts +2 -0
- package/dist/peer/peer-skip.test.d.ts.map +1 -0
- package/dist/peer/peer-skip.test.js +63 -0
- package/dist/peer/peer-skip.test.js.map +1 -0
- package/dist/peer/peer-target-resolve.d.ts +8 -0
- package/dist/peer/peer-target-resolve.d.ts.map +1 -0
- package/dist/peer/peer-target-resolve.js +13 -0
- package/dist/peer/peer-target-resolve.js.map +1 -0
- package/dist/peer-backlog.d.ts.map +1 -1
- package/dist/peer-backlog.js +25 -0
- package/dist/peer-backlog.js.map +1 -1
- package/dist/peer-pending.test.js +17 -0
- package/dist/peer-pending.test.js.map +1 -1
- package/dist/queue/bullmq-runtime.d.ts +19 -0
- package/dist/queue/bullmq-runtime.d.ts.map +1 -0
- package/dist/queue/bullmq-runtime.js +78 -0
- package/dist/queue/bullmq-runtime.js.map +1 -0
- package/dist/state/ppa-state.d.ts +32 -0
- package/dist/state/ppa-state.d.ts.map +1 -0
- package/dist/state/ppa-state.js +63 -0
- package/dist/state/ppa-state.js.map +1 -0
- package/dist/store/create-queue-store.d.ts +8 -0
- package/dist/store/create-queue-store.d.ts.map +1 -0
- package/dist/store/create-queue-store.js +19 -0
- package/dist/store/create-queue-store.js.map +1 -0
- package/dist/store/jsonl-dedupe.test.d.ts +2 -0
- package/dist/store/jsonl-dedupe.test.d.ts.map +1 -0
- package/dist/store/jsonl-dedupe.test.js +62 -0
- package/dist/store/jsonl-dedupe.test.js.map +1 -0
- package/dist/store/jsonl-store.checkback.test.d.ts +2 -0
- package/dist/store/jsonl-store.checkback.test.d.ts.map +1 -0
- package/dist/store/jsonl-store.checkback.test.js +55 -0
- package/dist/store/jsonl-store.checkback.test.js.map +1 -0
- package/dist/store/jsonl-store.d.ts +129 -0
- package/dist/store/jsonl-store.d.ts.map +1 -0
- package/dist/store/jsonl-store.js +316 -0
- package/dist/store/jsonl-store.js.map +1 -0
- package/dist/store/sqlite-store.d.ts +52 -0
- package/dist/store/sqlite-store.d.ts.map +1 -0
- package/dist/store/sqlite-store.js +456 -0
- package/dist/store/sqlite-store.js.map +1 -0
- package/dist/store/sqlite-store.test.d.ts +2 -0
- package/dist/store/sqlite-store.test.d.ts.map +1 -0
- package/dist/store/sqlite-store.test.js +76 -0
- package/dist/store/sqlite-store.test.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-orchestrator.js","sourceRoot":"","sources":["../../src/orchestrator/mesh-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inbox orchestrator — sole pane writer path (see mesh-orchestrator.ts).
|
|
3
|
+
*/
|
|
4
|
+
import type { QueueDrainPolicy, InjectJob, ProviderRegistry } from "@seat-mesh/core";
|
|
5
|
+
import { type MeshOrchestratorCtx, type DrainTickResult } from "./mesh-orchestrator.js";
|
|
6
|
+
export interface OrchestratorDeps {
|
|
7
|
+
registry: ProviderRegistry;
|
|
8
|
+
policy: QueueDrainPolicy;
|
|
9
|
+
ctx: MeshOrchestratorCtx;
|
|
10
|
+
enqueue: (job: InjectJob) => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare class InboxOrchestrator {
|
|
13
|
+
private readonly deps;
|
|
14
|
+
constructor(deps: OrchestratorDeps);
|
|
15
|
+
drainTick(): Promise<DrainTickResult>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,mBAAmB,CAAC;IACzB,OAAO,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,gBAAgB;IAE7C,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;CAG5C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { orchestratorDrainTick, } from "./mesh-orchestrator.js";
|
|
2
|
+
export class InboxOrchestrator {
|
|
3
|
+
deps;
|
|
4
|
+
constructor(deps) {
|
|
5
|
+
this.deps = deps;
|
|
6
|
+
}
|
|
7
|
+
async drainTick() {
|
|
8
|
+
return orchestratorDrainTick(this.deps.ctx);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,GAGtB,MAAM,wBAAwB,CAAC;AAShC,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;IAAG,CAAC;IAEvD,KAAK,CAAC,SAAS;QACb,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BullMQ worker definitions — one worker type per queue channel.
|
|
3
|
+
* Handlers call orchestrator drain + limit hooks; never tmux directly from producers.
|
|
4
|
+
*/
|
|
5
|
+
export declare const QUEUE_NAMES: {
|
|
6
|
+
readonly inject: "mesh-inject";
|
|
7
|
+
readonly limits: "mesh-limits";
|
|
8
|
+
readonly connectivity: "mesh-connectivity";
|
|
9
|
+
readonly checkback: "mesh-checkback";
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=workers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/workers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,WAAW;;;;;CAKd,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BullMQ worker definitions — one worker type per queue channel.
|
|
3
|
+
* Handlers call orchestrator drain + limit hooks; never tmux directly from producers.
|
|
4
|
+
*/
|
|
5
|
+
export const QUEUE_NAMES = {
|
|
6
|
+
inject: "mesh-inject",
|
|
7
|
+
limits: "mesh-limits",
|
|
8
|
+
connectivity: "mesh-connectivity",
|
|
9
|
+
checkback: "mesh-checkback",
|
|
10
|
+
};
|
|
11
|
+
// Phase 3: new Worker(QUEUE_NAMES.inject, processor, { connection })
|
|
12
|
+
//# sourceMappingURL=workers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workers.js","sourceRoot":"","sources":["../../src/orchestrator/workers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,aAAa;IACrB,YAAY,EAAE,mBAAmB;IACjC,SAAS,EAAE,gBAAgB;CACnB,CAAC;AAEX,qEAAqE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ProviderRegistry } from "@seat-mesh/core";
|
|
2
|
+
import type { QueueStore, PeerRow } from "../store/create-queue-store.js";
|
|
3
|
+
export interface PeerBacklogRow extends PeerRow {
|
|
4
|
+
status: "backlog";
|
|
5
|
+
backlogAt: string;
|
|
6
|
+
holdReason: string;
|
|
7
|
+
}
|
|
8
|
+
/** Lightweight mail class (FYI/ACK). May follow-up-steer on cursor while generating. */
|
|
9
|
+
export declare function isAckClassPeer(msg: string): boolean;
|
|
10
|
+
/** Park inbound while the pane is busy/typing/empty-seat. Only PRIORITY / STOP other work pastes. */
|
|
11
|
+
export declare function shouldBacklogPeerHold(reason: string, msg: string): boolean;
|
|
12
|
+
export declare function peerBacklogPath(store: QueueStore): string;
|
|
13
|
+
/** Re-queue oldest backlog row per idle pane (one promote per pane per tick). */
|
|
14
|
+
export declare function promotePeerBacklog(store: QueueStore, registry: ProviderRegistry, log: (line: string) => void): number;
|
|
15
|
+
export declare function parkPeerToBacklog(store: QueueStore, row: PeerRow, holdReason: string, log: (line: string) => void): void;
|
|
16
|
+
export declare function countPeerBacklog(store: QueueStore): number;
|
|
17
|
+
export declare function pendingPeerRows(store: QueueStore): PeerRow[];
|
|
18
|
+
//# sourceMappingURL=peer-backlog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-backlog.d.ts","sourceRoot":"","sources":["../../src/peer/peer-backlog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAI1E,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAYnD;AAED,qGAAqG;AACrG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAS1E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEzD;AA8GD,iFAAiF;AACjF,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC1B,MAAM,CAwGR;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC1B,IAAI,CAoCN;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE1D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,EAAE,CAE5D"}
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import { capturePaneSnapshot, tmux } from "@seat-mesh/tmux";
|
|
3
|
+
import { isPeerDelivered, peerSentToken } from "../store/create-queue-store.js";
|
|
4
|
+
import { isThinRoomUnseenPing } from "./peer-skip.js";
|
|
5
|
+
const BUSY_HOLD = /^held:(busy|typing)/;
|
|
6
|
+
/** Lightweight mail class (FYI/ACK). May follow-up-steer on cursor while generating. */
|
|
7
|
+
export function isAckClassPeer(msg) {
|
|
8
|
+
// Strip every leading [mesh-inbox] / [from:x to:y] / [agent-…] stamp.
|
|
9
|
+
let body = msg.trim();
|
|
10
|
+
for (let i = 0; i < 8; i++) {
|
|
11
|
+
const next = body.replace(/^\[[^\]]+\]\s*/, "").trim();
|
|
12
|
+
if (next === body)
|
|
13
|
+
break;
|
|
14
|
+
body = next;
|
|
15
|
+
}
|
|
16
|
+
// Lead/supervise nudges + ACK-class: safe to follow-up-steer mid-turn.
|
|
17
|
+
return /^(ACK|FYI|STAND-?BY|MCP-?SYNCED|CHECKBACK\?|OPEN\b|INBOX\b|VERIFY\b|CONTINUE\b|REPORT\b|MINI-?(DONE|TASK)\b)/i.test(body);
|
|
18
|
+
}
|
|
19
|
+
/** Park inbound while the pane is busy/typing/empty-seat. Only PRIORITY / STOP other work pastes. */
|
|
20
|
+
export function shouldBacklogPeerHold(reason, msg) {
|
|
21
|
+
if (/\bPRIORITY\b|\bSTOP other work\b/i.test(msg))
|
|
22
|
+
return false;
|
|
23
|
+
if (BUSY_HOLD.test(reason))
|
|
24
|
+
return true;
|
|
25
|
+
// No live agent CLI yet — keep until Composer/Claude/OC loads (do not skip-drop).
|
|
26
|
+
if (/^held:(plain_shell|limit|no_provider)$/.test(reason))
|
|
27
|
+
return true;
|
|
28
|
+
if (/^held:cotyped:/.test(reason))
|
|
29
|
+
return true;
|
|
30
|
+
if (/^held:coord:(wait-busy|wait-typing)/.test(reason))
|
|
31
|
+
return true;
|
|
32
|
+
if (/^held:coord:/.test(reason))
|
|
33
|
+
return false;
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
export function peerBacklogPath(store) {
|
|
37
|
+
return `${store.stateDir}/PEER-BACKLOG.jsonl`;
|
|
38
|
+
}
|
|
39
|
+
function readBacklog(store) {
|
|
40
|
+
const p = peerBacklogPath(store);
|
|
41
|
+
if (!fs.existsSync(p))
|
|
42
|
+
return [];
|
|
43
|
+
return fs
|
|
44
|
+
.readFileSync(p, "utf8")
|
|
45
|
+
.split("\n")
|
|
46
|
+
.map((l) => l.trim())
|
|
47
|
+
.filter(Boolean)
|
|
48
|
+
.map((l) => {
|
|
49
|
+
try {
|
|
50
|
+
return JSON.parse(l);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
})
|
|
56
|
+
.filter((r) => r !== null && r.status === "backlog");
|
|
57
|
+
}
|
|
58
|
+
function writeBacklog(store, rows) {
|
|
59
|
+
// Keep latest entry per id (re-parks used to append forever).
|
|
60
|
+
const byId = new Map();
|
|
61
|
+
for (const r of rows)
|
|
62
|
+
byId.set(r.id, r);
|
|
63
|
+
const deduped = [...byId.values()].sort((a, b) => a.backlogAt.localeCompare(b.backlogAt));
|
|
64
|
+
const p = peerBacklogPath(store);
|
|
65
|
+
fs.writeFileSync(p, deduped.map((r) => JSON.stringify(r)).join("\n") + (deduped.length ? "\n" : ""));
|
|
66
|
+
}
|
|
67
|
+
function paneStatusMark(paneId) {
|
|
68
|
+
return (tmux(["display-message", "-t", paneId, "-p", "#{@mesh_status}"]).out?.trim() ?? "");
|
|
69
|
+
}
|
|
70
|
+
function cursorFollowUpOpen(paneId, registry) {
|
|
71
|
+
const snap = capturePaneSnapshot(paneId);
|
|
72
|
+
if (!snap)
|
|
73
|
+
return false;
|
|
74
|
+
const prov = registry.detect(snap);
|
|
75
|
+
if (!prov)
|
|
76
|
+
return false;
|
|
77
|
+
if (prov.id !== "cursor-agent" && prov.id !== "agent")
|
|
78
|
+
return false;
|
|
79
|
+
const st = prov.composerState(snap);
|
|
80
|
+
return (st.busyLabel === "follow-up" || /Add a follow-up|ctrl\+c to stop/.test(snap.captureTail));
|
|
81
|
+
}
|
|
82
|
+
function paneIdleForPromote(paneId, registry) {
|
|
83
|
+
const mark = paneStatusMark(paneId);
|
|
84
|
+
if (/\bBUSY\b/i.test(mark) && !cursorFollowUpOpen(paneId, registry))
|
|
85
|
+
return false;
|
|
86
|
+
const snap = capturePaneSnapshot(paneId);
|
|
87
|
+
if (!snap)
|
|
88
|
+
return false;
|
|
89
|
+
const prov = registry.detect(snap);
|
|
90
|
+
if (!prov)
|
|
91
|
+
return false;
|
|
92
|
+
const st = prov.composerState(snap);
|
|
93
|
+
// Empty zsh / limit wall — keep backlog; never promote until a real CLI loads.
|
|
94
|
+
if (st.phase === "plain_shell" || st.phase === "limit")
|
|
95
|
+
return false;
|
|
96
|
+
if (st.phase === "empty" || st.phase === "afk")
|
|
97
|
+
return true;
|
|
98
|
+
return cursorFollowUpOpen(paneId, registry);
|
|
99
|
+
}
|
|
100
|
+
/** Rows marked backlog on PEER.jsonl but missing from PEER-BACKLOG.jsonl (inbox restart, etc.). */
|
|
101
|
+
function reconcileBacklogOrphans(store, log) {
|
|
102
|
+
const backlog = readBacklog(store);
|
|
103
|
+
const ids = new Set(backlog.map((r) => r.id));
|
|
104
|
+
let fixed = 0;
|
|
105
|
+
const peer = store.readPeer();
|
|
106
|
+
for (const row of peer) {
|
|
107
|
+
if (row.deliverPane !== "backlog" || ids.has(row.id))
|
|
108
|
+
continue;
|
|
109
|
+
const entry = {
|
|
110
|
+
...row,
|
|
111
|
+
status: "backlog",
|
|
112
|
+
backlogAt: row.sentAt ?? new Date().toISOString(),
|
|
113
|
+
holdReason: "reconcile-orphan",
|
|
114
|
+
};
|
|
115
|
+
backlog.push(entry);
|
|
116
|
+
ids.add(row.id);
|
|
117
|
+
fixed++;
|
|
118
|
+
log(`PEER backlog reconcile orphan id=${row.id} -> ${row.targetLabel}`);
|
|
119
|
+
}
|
|
120
|
+
if (fixed)
|
|
121
|
+
writeBacklog(store, backlog);
|
|
122
|
+
return fixed;
|
|
123
|
+
}
|
|
124
|
+
/** Drop already-pasted backlog rows (do not revive with sent:false — that re-injects). */
|
|
125
|
+
function finalizeAlreadyInjected(peer, row, log) {
|
|
126
|
+
const pane = row.injectedPane || row.targetPane;
|
|
127
|
+
const at = row.injectedAt || row.sentAt || new Date().toISOString();
|
|
128
|
+
const done = {
|
|
129
|
+
...row,
|
|
130
|
+
sent: true,
|
|
131
|
+
sentAt: at,
|
|
132
|
+
deliverPane: pane,
|
|
133
|
+
deliverMode: row.deliverMode ?? "steer",
|
|
134
|
+
injectedPane: row.injectedPane || pane,
|
|
135
|
+
injectedAt: row.injectedAt || at,
|
|
136
|
+
};
|
|
137
|
+
const existing = peer.findIndex((r) => r.id === row.id);
|
|
138
|
+
if (existing >= 0)
|
|
139
|
+
peer[existing] = done;
|
|
140
|
+
else
|
|
141
|
+
peer.push(done);
|
|
142
|
+
log(`PEER backlog drop-already-injected id=${row.id} -> ${row.targetLabel} pane=${pane}`);
|
|
143
|
+
}
|
|
144
|
+
/** Re-queue oldest backlog row per idle pane (one promote per pane per tick). */
|
|
145
|
+
export function promotePeerBacklog(store, registry, log) {
|
|
146
|
+
reconcileBacklogOrphans(store, log);
|
|
147
|
+
const backlog = readBacklog(store);
|
|
148
|
+
if (!backlog.length)
|
|
149
|
+
return 0;
|
|
150
|
+
const peer = store.readPeer();
|
|
151
|
+
const deliveredTokens = new Set(peer
|
|
152
|
+
.filter((r) => isPeerDelivered(r))
|
|
153
|
+
.map((r) => peerSentToken(r.msg))
|
|
154
|
+
.filter((t) => Boolean(t)));
|
|
155
|
+
const byPane = new Map();
|
|
156
|
+
for (const row of backlog) {
|
|
157
|
+
const list = byPane.get(row.targetPane) ?? [];
|
|
158
|
+
list.push(row);
|
|
159
|
+
byPane.set(row.targetPane, list);
|
|
160
|
+
}
|
|
161
|
+
let promoted = 0;
|
|
162
|
+
let dropped = 0;
|
|
163
|
+
const kept = [];
|
|
164
|
+
let peerDirty = false;
|
|
165
|
+
for (const [, rows] of byPane) {
|
|
166
|
+
rows.sort((a, b) => a.backlogAt.localeCompare(b.backlogAt));
|
|
167
|
+
const paneId = rows[0].targetPane;
|
|
168
|
+
// Always strip already-injected / dup-token / thin-room-unseen rows even while pane busy.
|
|
169
|
+
const still = [];
|
|
170
|
+
for (const row of rows) {
|
|
171
|
+
const tok = peerSentToken(row.msg);
|
|
172
|
+
if (row.injectedPane || row.injectedAt || (tok && deliveredTokens.has(tok))) {
|
|
173
|
+
finalizeAlreadyInjected(peer, row, log);
|
|
174
|
+
dropped++;
|
|
175
|
+
peerDirty = true;
|
|
176
|
+
if (tok)
|
|
177
|
+
deliveredTokens.add(tok);
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
if (isThinRoomUnseenPing(row)) {
|
|
181
|
+
// Ledger SoT — drop stuck thin "N unseen" backlog (no promote/repark loop).
|
|
182
|
+
const i = peer.findIndex((r) => r.id === row.id);
|
|
183
|
+
if (i >= 0) {
|
|
184
|
+
peer[i].sent = true;
|
|
185
|
+
peer[i].sentAt = peer[i].sentAt ?? new Date().toISOString();
|
|
186
|
+
peer[i].deliverPane = "skipped";
|
|
187
|
+
peer[i].deliverMode = "idle";
|
|
188
|
+
peerDirty = true;
|
|
189
|
+
}
|
|
190
|
+
log(`PEER backlog drop id=${row.id} -> ${row.targetLabel} reason=thin-room-unseen`);
|
|
191
|
+
dropped++;
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
still.push(row);
|
|
195
|
+
}
|
|
196
|
+
if (!still.length)
|
|
197
|
+
continue;
|
|
198
|
+
const followUpOnly = cursorFollowUpOpen(paneId, registry);
|
|
199
|
+
if (!paneIdleForPromote(paneId, registry)) {
|
|
200
|
+
kept.push(...still);
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
// Follow-up steer: only ACK/FYI — never paste substance mid-turn.
|
|
204
|
+
const eligible = followUpOnly
|
|
205
|
+
? still.filter((r) => isAckClassPeer(r.msg))
|
|
206
|
+
: still;
|
|
207
|
+
if (!eligible.length) {
|
|
208
|
+
kept.push(...still);
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
const restParked = followUpOnly
|
|
212
|
+
? still.filter((r) => !isAckClassPeer(r.msg))
|
|
213
|
+
: [];
|
|
214
|
+
const [first, ...restAck] = eligible;
|
|
215
|
+
const revived = {
|
|
216
|
+
id: first.id,
|
|
217
|
+
at: first.at,
|
|
218
|
+
kind: first.kind,
|
|
219
|
+
fromSlot: first.fromSlot,
|
|
220
|
+
fromPorts: first.fromPorts,
|
|
221
|
+
roomSlug: first.roomSlug,
|
|
222
|
+
fromAgent: first.fromAgent,
|
|
223
|
+
targetPane: first.targetPane,
|
|
224
|
+
targetLabel: first.targetLabel,
|
|
225
|
+
msg: first.msg,
|
|
226
|
+
sent: false,
|
|
227
|
+
// Preserve inject proof if present (should have been dropped above).
|
|
228
|
+
injectedPane: first.injectedPane,
|
|
229
|
+
injectedAt: first.injectedAt,
|
|
230
|
+
};
|
|
231
|
+
// Replace parked peer row — never push a second copy of the same id.
|
|
232
|
+
const existing = peer.findIndex((r) => r.id === first.id);
|
|
233
|
+
if (existing >= 0)
|
|
234
|
+
peer[existing] = revived;
|
|
235
|
+
else
|
|
236
|
+
peer.push(revived);
|
|
237
|
+
promoted++;
|
|
238
|
+
peerDirty = true;
|
|
239
|
+
log(`PEER backlog promote id=${first.id} -> ${first.targetLabel}${followUpOnly ? " (ack-follow-up)" : ""}`);
|
|
240
|
+
kept.push(...restAck, ...restParked);
|
|
241
|
+
}
|
|
242
|
+
if (peerDirty)
|
|
243
|
+
store.writePeer(peer);
|
|
244
|
+
writeBacklog(store, kept);
|
|
245
|
+
return promoted + dropped;
|
|
246
|
+
}
|
|
247
|
+
export function parkPeerToBacklog(store, row, holdReason, log) {
|
|
248
|
+
const peer = store.readPeer();
|
|
249
|
+
const i = peer.findIndex((r) => r.id === row.id);
|
|
250
|
+
if (i < 0)
|
|
251
|
+
return;
|
|
252
|
+
// If already pasted once, do not re-park — that feeds promote→re-inject storms.
|
|
253
|
+
if (row.injectedPane || row.injectedAt) {
|
|
254
|
+
row.sent = true;
|
|
255
|
+
row.sentAt = row.sentAt ?? row.injectedAt ?? new Date().toISOString();
|
|
256
|
+
row.deliverPane = row.injectedPane || row.targetPane;
|
|
257
|
+
peer[i] = row;
|
|
258
|
+
store.writePeer(peer);
|
|
259
|
+
const backlog = readBacklog(store).filter((r) => r.id !== row.id);
|
|
260
|
+
writeBacklog(store, backlog);
|
|
261
|
+
log(`PEER backlog skip-repark id=${row.id} -> ${row.targetLabel} (already injected)`);
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
row.sent = true;
|
|
265
|
+
row.sentAt = new Date().toISOString();
|
|
266
|
+
row.deliverPane = "backlog";
|
|
267
|
+
row.deliverMode = "idle";
|
|
268
|
+
peer[i] = row;
|
|
269
|
+
store.writePeer(peer);
|
|
270
|
+
const entry = {
|
|
271
|
+
...row,
|
|
272
|
+
status: "backlog",
|
|
273
|
+
backlogAt: new Date().toISOString(),
|
|
274
|
+
holdReason,
|
|
275
|
+
};
|
|
276
|
+
// One row per id — re-park updates holdReason instead of bloating the file.
|
|
277
|
+
const backlog = readBacklog(store).filter((r) => r.id !== row.id);
|
|
278
|
+
backlog.push(entry);
|
|
279
|
+
writeBacklog(store, backlog);
|
|
280
|
+
log(`PEER backlog id=${row.id} -> ${row.targetLabel} reason=${holdReason}`);
|
|
281
|
+
}
|
|
282
|
+
export function countPeerBacklog(store) {
|
|
283
|
+
return readBacklog(store).length;
|
|
284
|
+
}
|
|
285
|
+
export function pendingPeerRows(store) {
|
|
286
|
+
return store.readPeer().filter((r) => !isPeerDelivered(r));
|
|
287
|
+
}
|
|
288
|
+
//# sourceMappingURL=peer-backlog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-backlog.js","sourceRoot":"","sources":["../../src/peer/peer-backlog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-backlog.test.d.ts","sourceRoot":"","sources":["../../src/peer/peer-backlog.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { isAckClassPeer } from "./peer-backlog.js";
|
|
3
|
+
import { isPeerDelivered, peerSentToken } from "../store/jsonl-store.js";
|
|
4
|
+
describe("peer backlog harden helpers", () => {
|
|
5
|
+
it("extracts [sent:token] for dedupe", () => {
|
|
6
|
+
expect(peerSentToken("hello\n[sent:smu049eezp47h]")).toBe("smu049eezp47h");
|
|
7
|
+
expect(peerSentToken("no token")).toBeNull();
|
|
8
|
+
});
|
|
9
|
+
it("FIXED path is not ACK-class (must not follow-up-steer promote)", () => {
|
|
10
|
+
const msg = "[from:manager-2 to:secretary] [agent-manager-kiro-cursor-claude] FIXED path (manager-2): flushed";
|
|
11
|
+
expect(isAckClassPeer(msg)).toBe(false);
|
|
12
|
+
});
|
|
13
|
+
it("CONTINUE/REPORT/MINI-DONE are ACK-class for lead follow-up steer", () => {
|
|
14
|
+
expect(isAckClassPeer("[from:manager to:mini-1] [agent-manager-kiro-cursor-claude] CONTINUE one checkbox")).toBe(true);
|
|
15
|
+
expect(isAckClassPeer("[from:secretary to:manager] REPORT Dan: status")).toBe(true);
|
|
16
|
+
expect(isAckClassPeer("MINI-DONE mini-1 PASS: ok")).toBe(true);
|
|
17
|
+
});
|
|
18
|
+
it("injectedPane marks delivered even when parked backlog", () => {
|
|
19
|
+
const row = {
|
|
20
|
+
id: "1",
|
|
21
|
+
at: "",
|
|
22
|
+
kind: "prompt",
|
|
23
|
+
fromSlot: "manager",
|
|
24
|
+
fromPorts: null,
|
|
25
|
+
targetPane: "%16",
|
|
26
|
+
targetLabel: "secretary",
|
|
27
|
+
msg: "FIXED path\n[sent:smu049eezp47h]",
|
|
28
|
+
sent: true,
|
|
29
|
+
sentAt: "2026-01-01T00:00:00.000Z",
|
|
30
|
+
deliverPane: "backlog",
|
|
31
|
+
injectedPane: "%16",
|
|
32
|
+
injectedAt: "2026-01-01T00:00:00.000Z",
|
|
33
|
+
};
|
|
34
|
+
expect(isPeerDelivered(row)).toBe(true);
|
|
35
|
+
expect(peerSentToken(row.msg)).toBe("smu049eezp47h");
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=peer-backlog.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-backlog.test.js","sourceRoot":"","sources":["../../src/peer/peer-backlog.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGzE,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3E,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,GAAG,GACP,kGAAkG,CAAC;QACrG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,CACJ,cAAc,CACZ,mFAAmF,CACpF,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,CAAC,cAAc,CAAC,gDAAgD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,MAAM,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,GAAG,GAAY;YACnB,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,WAAW;YACxB,GAAG,EAAE,kCAAkC;YACvC,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,0BAA0B;YAClC,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,0BAA0B;SACvC,CAAC;QACF,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { LoadedProfile } from "@seat-mesh/core";
|
|
2
|
+
import type { QueueStore, PeerRow } from "../store/create-queue-store.js";
|
|
3
|
+
/** Arm poll-later on recipient after PEER inject (queued path). */
|
|
4
|
+
export declare function armRecipientCheckbackAfterPeer(store: QueueStore, loaded: LoadedProfile, row: PeerRow): void;
|
|
5
|
+
//# sourceMappingURL=peer-comms-checkback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-comms-checkback.d.ts","sourceRoot":"","sources":["../../src/peer/peer-comms-checkback.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAgB,UAAU,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AA6BxF,mEAAmE;AACnE,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,OAAO,GACX,IAAI,CA8CN"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { chatRoomConfigForLoaded, checkbackTimingForExpect, expectPeerReply, expectPeerSlotReply, expectRoomCallPending, expectRoomPeerReply, isCoordKind, parseDurationToSeconds, } from "@seat-mesh/core";
|
|
2
|
+
function expiresIn(duration, fallbackSec = 300) {
|
|
3
|
+
const sec = parseDurationToSeconds(duration) ?? fallbackSec;
|
|
4
|
+
return new Date(Date.now() + sec * 1000).toISOString();
|
|
5
|
+
}
|
|
6
|
+
function expectForPeerRow(row) {
|
|
7
|
+
const callMatch = row.msg.match(/\.\/sm\.sh room accept ([^\s]+)/);
|
|
8
|
+
if (callMatch?.[1])
|
|
9
|
+
return expectRoomCallPending(callMatch[1]);
|
|
10
|
+
const tailMatch = row.msg.match(/\.\/sm\.sh room tail -r ([^\s]+)/);
|
|
11
|
+
if (tailMatch?.[1] && /\[mesh-peer\] ACCEPTED/i.test(row.msg)) {
|
|
12
|
+
return expectRoomPeerReply(tailMatch[1]);
|
|
13
|
+
}
|
|
14
|
+
if (row.kind === "room" && row.roomSlug) {
|
|
15
|
+
const from = row.fromAgent ?? `worker-${row.fromSlot}`;
|
|
16
|
+
return `${expectRoomPeerReply(row.roomSlug)} from ${from}`;
|
|
17
|
+
}
|
|
18
|
+
if (row.kind === "to-slot" || row.kind === "to-mini") {
|
|
19
|
+
return expectPeerSlotReply(row.fromSlot);
|
|
20
|
+
}
|
|
21
|
+
if (row.kind === "prompt") {
|
|
22
|
+
return expectPeerReply(row.targetLabel);
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
/** Arm poll-later on recipient after PEER inject (queued path). */
|
|
27
|
+
export function armRecipientCheckbackAfterPeer(store, loaded, row) {
|
|
28
|
+
if (row.kind !== "room" &&
|
|
29
|
+
row.kind !== "to-slot" &&
|
|
30
|
+
row.kind !== "to-mini" &&
|
|
31
|
+
row.kind !== "prompt") {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const expect = expectForPeerRow(row);
|
|
35
|
+
if (!expect)
|
|
36
|
+
return;
|
|
37
|
+
const lab = (row.targetLabel ?? "").toLowerCase();
|
|
38
|
+
if (isCoordKind(lab) || lab.startsWith("manager")) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const dup = store
|
|
42
|
+
.readCheckbacks()
|
|
43
|
+
.some((r) => r.status === "active" &&
|
|
44
|
+
r.ownerPane === row.targetPane &&
|
|
45
|
+
r.expect === expect &&
|
|
46
|
+
Date.parse(r.expiresAt ?? "") > Date.now());
|
|
47
|
+
if (dup)
|
|
48
|
+
return;
|
|
49
|
+
const cfg = chatRoomConfigForLoaded(loaded);
|
|
50
|
+
const timing = checkbackTimingForExpect(cfg, expect);
|
|
51
|
+
const renew = parseDurationToSeconds(timing.renew) ?? (expect.startsWith("room-call:") ? 60 : 180);
|
|
52
|
+
const now = new Date().toISOString();
|
|
53
|
+
const cb = {
|
|
54
|
+
id: `cb-peer-${Date.now()}-${row.id.slice(0, 8)}`,
|
|
55
|
+
kind: expect.startsWith("room-call:") ? "room-call" : "peer-comms",
|
|
56
|
+
status: "active",
|
|
57
|
+
renewSec: renew,
|
|
58
|
+
expect,
|
|
59
|
+
ownerPane: row.targetPane,
|
|
60
|
+
expiresAt: expiresIn(timing.duration, expect.startsWith("room-call:") ? 60 : 300),
|
|
61
|
+
recipientLabel: row.targetLabel,
|
|
62
|
+
senderLabel: row.fromSlot,
|
|
63
|
+
createdAt: now,
|
|
64
|
+
updatedAt: now,
|
|
65
|
+
};
|
|
66
|
+
store.upsertCheckback(cb);
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=peer-comms-checkback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-comms-checkback.js","sourceRoot":"","sources":["../../src/peer/peer-comms-checkback.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAIzB,SAAS,SAAS,CAAC,QAAgB,EAAE,WAAW,GAAG,GAAG;IACpD,MAAM,GAAG,GAAG,sBAAsB,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC;IAC5D,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACnE,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACpE,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,IAAI,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvD,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,8BAA8B,CAC5C,KAAiB,EACjB,MAAqB,EACrB,GAAY;IAEZ,IACE,GAAG,CAAC,IAAI,KAAK,MAAM;QACnB,GAAG,CAAC,IAAI,KAAK,SAAS;QACtB,GAAG,CAAC,IAAI,KAAK,SAAS;QACtB,GAAG,CAAC,IAAI,KAAK,QAAQ,EACrB,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAClD,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,KAAK;SACd,cAAc,EAAE;SAChB,IAAI,CACH,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,MAAM,KAAK,QAAQ;QACrB,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,UAAU;QAC9B,CAAC,CAAC,MAAM,KAAK,MAAM;QACnB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAC7C,CAAC;IACJ,IAAI,GAAG;QAAE,OAAO;IAEhB,MAAM,GAAG,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnG,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,EAAE,GAAiB;QACvB,EAAE,EAAE,WAAW,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QACjD,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;QAClE,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,KAAK;QACf,MAAM;QACN,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QACjF,cAAc,EAAE,GAAG,CAAC,WAAW;QAC/B,WAAW,EAAE,GAAG,CAAC,QAAQ;QACzB,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAC;IACF,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PeerRow } from "../store/jsonl-store.js";
|
|
2
|
+
import type { QueueStore } from "../store/create-queue-store.js";
|
|
3
|
+
/** Parked in PEER-BACKLOG — not live inbox pressure (do not count on pane banner). */
|
|
4
|
+
export declare function isPeerParked(row: PeerRow): boolean;
|
|
5
|
+
/** Awaiting inject or in-flight delivery (excludes backlog/skipped). */
|
|
6
|
+
export declare function isPeerPendingDelivery(row: PeerRow): boolean;
|
|
7
|
+
export declare function countPeerPendingForPane(store: QueueStore, paneId: string): number;
|
|
8
|
+
export declare function countPeerPendingGlobal(store: QueueStore): number;
|
|
9
|
+
//# sourceMappingURL=peer-pending.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-pending.d.ts","sourceRoot":"","sources":["../../src/peer/peer-pending.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAGlD;AAED,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAG3D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEhE"}
|