@rubytech/create-maxy-code 0.1.566 → 0.1.568
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/__tests__/brand-agent-root.test.js +91 -0
- package/dist/brand-agent-root.js +58 -0
- package/dist/index.js +25 -28
- package/package.json +1 -1
- package/payload/platform/neo4j/schema.cypher +9 -0
- package/payload/platform/package-lock.json +66 -1
- package/payload/platform/plugins/.claude-plugin/marketplace.json +5 -0
- package/payload/platform/plugins/admin/hooks/lib/maxy-mcp-plugins.txt +1 -0
- package/payload/platform/plugins/admin/mcp/dist/index.js +7 -1
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/roster-census.d.ts +10 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/roster-census.d.ts.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/roster-census.js +6 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/roster-census.js.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/tools/capabilities-here.d.ts +9 -0
- package/payload/platform/plugins/admin/mcp/dist/tools/capabilities-here.d.ts.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/tools/capabilities-here.js +1 -1
- package/payload/platform/plugins/admin/mcp/dist/tools/capabilities-here.js.map +1 -1
- package/payload/platform/plugins/admin/skills/capabilities-here/SKILL.md +1 -1
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +91 -1
- package/payload/platform/plugins/admin/skills/public-agent-manager/SKILL.md +5 -1
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +13 -0
- package/payload/platform/plugins/docs/references/channel-wake-and-prompt.md +90 -0
- package/payload/platform/plugins/inventory/.claude-plugin/plugin.json +21 -0
- package/payload/platform/plugins/inventory/PLUGIN.md +75 -0
- package/payload/platform/plugins/inventory/lib/mcp-spawn-tee/index.js +204 -0
- package/payload/platform/plugins/inventory/lib/mcp-spawn-tee/package.json +3 -0
- package/payload/platform/plugins/inventory/mcp/dist/index.d.ts +2 -0
- package/payload/platform/plugins/inventory/mcp/dist/index.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/index.js +241 -0
- package/payload/platform/plugins/inventory/mcp/dist/index.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/forecast.d.ts +20 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/forecast.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/forecast.js +29 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/forecast.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/neo4j.d.ts +5 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/neo4j.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/neo4j.js +40 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/neo4j.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/read.d.ts +28 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/read.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/read.js +91 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/read.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/replenish.d.ts +56 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/replenish.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/replenish.js +107 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/replenish.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/types.d.ts +98 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/types.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/types.js +7 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/types.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/write-rejects.d.ts +12 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/write-rejects.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/write-rejects.js +49 -0
- package/payload/platform/plugins/inventory/mcp/dist/lib/write-rejects.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/demand-record.d.ts +20 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/demand-record.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/demand-record.js +53 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/demand-record.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/forecast.d.ts +23 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/forecast.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/forecast.js +18 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/forecast.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/policy-set.d.ts +25 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/policy-set.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/policy-set.js +37 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/policy-set.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/purchase-order-record.d.ts +25 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/purchase-order-record.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/purchase-order-record.js +43 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/purchase-order-record.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/replenish-plan.d.ts +29 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/replenish-plan.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/replenish-plan.js +95 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/replenish-plan.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/stock-record.d.ts +21 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/stock-record.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/stock-record.js +46 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/stock-record.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/supplier-terms-set.d.ts +24 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/supplier-terms-set.d.ts.map +1 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/supplier-terms-set.js +29 -0
- package/payload/platform/plugins/inventory/mcp/dist/tools/supplier-terms-set.js.map +1 -0
- package/payload/platform/plugins/inventory/mcp/package.json +21 -0
- package/payload/platform/plugins/memory/references/schema-retail.md +20 -0
- package/payload/platform/scripts/lib/provision-account-dir.sh +0 -2
- package/payload/platform/services/claude-session-manager/dist/account-agent-registry.d.ts +19 -0
- package/payload/platform/services/claude-session-manager/dist/account-agent-registry.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/account-agent-registry.js +146 -0
- package/payload/platform/services/claude-session-manager/dist/account-agent-registry.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +8 -0
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/fs-watcher.d.ts +5 -0
- package/payload/platform/services/claude-session-manager/dist/fs-watcher.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/fs-watcher.js +5 -5
- package/payload/platform/services/claude-session-manager/dist/fs-watcher.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +11 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +124 -17
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/index.js +25 -13
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-census.d.ts +6 -1
- package/payload/platform/services/claude-session-manager/dist/pty-census.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-census.js +6 -3
- package/payload/platform/services/claude-session-manager/dist/pty-census.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +21 -8
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +38 -15
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/public-spawn-model.d.ts +28 -0
- package/payload/platform/services/claude-session-manager/dist/public-spawn-model.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/public-spawn-model.js +58 -0
- package/payload/platform/services/claude-session-manager/dist/public-spawn-model.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts +2 -0
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.js +4 -1
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/reaper.d.ts +3 -0
- package/payload/platform/services/claude-session-manager/dist/reaper.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/reaper.js +2 -1
- package/payload/platform/services/claude-session-manager/dist/reaper.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/session-cap-audit.d.ts +2 -0
- package/payload/platform/services/claude-session-manager/dist/session-cap-audit.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/session-cap-audit.js +5 -2
- package/payload/platform/services/claude-session-manager/dist/session-cap-audit.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/slice-memory-policy.d.ts +2 -0
- package/payload/platform/services/claude-session-manager/dist/slice-memory-policy.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/slice-memory-policy.js +5 -3
- package/payload/platform/services/claude-session-manager/dist/slice-memory-policy.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/systemd-scope.d.ts +26 -16
- package/payload/platform/services/claude-session-manager/dist/systemd-scope.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/systemd-scope.js +84 -31
- package/payload/platform/services/claude-session-manager/dist/systemd-scope.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.d.ts +7 -0
- package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.js +6 -0
- package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.js.map +1 -1
- package/payload/platform/services/telegram-channel/dist/notification.d.ts +10 -2
- package/payload/platform/services/telegram-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/telegram-channel/dist/notification.js +15 -3
- package/payload/platform/services/telegram-channel/dist/notification.js.map +1 -1
- package/payload/platform/services/telegram-channel/dist/server.d.ts +5 -0
- package/payload/platform/services/telegram-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/telegram-channel/dist/server.js +57 -5
- package/payload/platform/services/telegram-channel/dist/server.js.map +1 -1
- package/payload/platform/services/telegram-channel/dist/turn-follow.d.ts +44 -2
- package/payload/platform/services/telegram-channel/dist/turn-follow.d.ts.map +1 -1
- package/payload/platform/services/telegram-channel/dist/turn-follow.js +188 -15
- package/payload/platform/services/telegram-channel/dist/turn-follow.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/server.d.ts +5 -0
- package/payload/platform/services/webchat-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/server.js +53 -4
- package/payload/platform/services/webchat-channel/dist/server.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/turn-follow.d.ts +44 -2
- package/payload/platform/services/webchat-channel/dist/turn-follow.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/turn-follow.js +188 -15
- package/payload/platform/services/webchat-channel/dist/turn-follow.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/instructions.d.ts +9 -0
- package/payload/platform/services/whatsapp-channel/dist/instructions.d.ts.map +1 -0
- package/payload/platform/services/whatsapp-channel/dist/instructions.js +22 -0
- package/payload/platform/services/whatsapp-channel/dist/instructions.js.map +1 -0
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +3 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.js +10 -2
- package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/server.d.ts +10 -2
- package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/server.js +71 -8
- package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts +34 -2
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.js +153 -15
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.js.map +1 -1
- package/payload/server/server.js +254 -96
|
@@ -11,6 +11,27 @@ export interface TurnOutcome {
|
|
|
11
11
|
* offsets; `followTurnEnds` overwrites both before calling back. */
|
|
12
12
|
segmentStart: number;
|
|
13
13
|
segmentEnd: number;
|
|
14
|
+
/** Task 2451 — `message.id` of the closing end_turn row; '' when the row
|
|
15
|
+
* carries none. Claude Code 2.1.222 can persist ONE assistant message as
|
|
16
|
+
* several rows, each stamped end_turn, so this is the identity
|
|
17
|
+
* `followTurnEnds` merges a split message on. */
|
|
18
|
+
messageId: string;
|
|
19
|
+
/** Task 2451 — `type:'tool_use'` blocks across EVERY assistant row in the
|
|
20
|
+
* segment. `replied` cannot serve here: it matches only the retired reply
|
|
21
|
+
* tool names, so a turn that called Read or Bash reports replied=false
|
|
22
|
+
* with tool_use present. The hold rule needs "this turn called no tool
|
|
23
|
+
* at all". */
|
|
24
|
+
toolUseBlocks: number;
|
|
25
|
+
/**
|
|
26
|
+
* Task 2456 — how many channel inbounds this turn answered. `followTurnEnds`
|
|
27
|
+
* segments on ANY assistant end_turn, so a turn woken by something other than
|
|
28
|
+
* a channel message arrives at the callback too and must consume nothing:
|
|
29
|
+
* measured on the laptop 2026-08-06, 2 of 15 telegram turn segments and 113
|
|
30
|
+
* of 411 webchat segments hold no channel row at all. Non-zero counts also
|
|
31
|
+
* matter: the harness answers every inbound queued while it was busy in ONE
|
|
32
|
+
* turn, so a turn-end can owe several credits, not one.
|
|
33
|
+
*/
|
|
34
|
+
consumedInbounds: number;
|
|
14
35
|
/** Task 2364 — the turn's token and thinking counts, for the gateway's
|
|
15
36
|
* op=turn-context line. */
|
|
16
37
|
context: TurnContextCounts;
|
|
@@ -50,13 +71,34 @@ export type OnTurnEnd = (outcome: TurnOutcome) => void;
|
|
|
50
71
|
* claude-session-manager/src/jsonl-path.ts) to avoid a cross-package dep.
|
|
51
72
|
*/
|
|
52
73
|
export declare function findJsonlForSessionId(sessionId: string, env?: NodeJS.ProcessEnv): string | null;
|
|
74
|
+
/**
|
|
75
|
+
* Task 2451 — the follower's live hold state, mutated in place so the owning
|
|
76
|
+
* channel server can log a standing census without the follower importing a
|
|
77
|
+
* logger. A held segment that never resolves emits no event of its own; the
|
|
78
|
+
* census is the only surface that shows it.
|
|
79
|
+
*/
|
|
80
|
+
export interface FollowerState {
|
|
81
|
+
/** True while a thinking-only close is held awaiting the rest of its message. */
|
|
82
|
+
held: boolean;
|
|
83
|
+
/** `message.id` of the held segment; '' when not holding. */
|
|
84
|
+
heldMessageId: string;
|
|
85
|
+
/** Clock value when the hold began; -1 when not holding. */
|
|
86
|
+
heldSinceMs: number;
|
|
87
|
+
/** `message.id` of the last outcome emitted; '' before the first. */
|
|
88
|
+
lastMessageId: string;
|
|
89
|
+
}
|
|
53
90
|
/**
|
|
54
91
|
* Tail `jsonlPath` from `startOffset` for the life of the session, invoking
|
|
55
|
-
* `onTurnEnd` once
|
|
92
|
+
* `onTurnEnd` once per TURN. Task 2451: that is once per assistant end_turn
|
|
93
|
+
* EXCEPT where one message was split across several end_turn rows, which are
|
|
94
|
+
* merged into a single call. It
|
|
56
95
|
* segments the JSONL at each end_turn so a follow-on turn produced from a
|
|
57
96
|
* mid-turn-queued message is reported too. The process dies with the session,
|
|
58
97
|
* so there is no per-turn timeout; the promise resolves only when the file
|
|
59
98
|
* becomes unreadable. Never rejects. (Mirror of the WhatsApp twin.)
|
|
60
99
|
*/
|
|
61
|
-
export declare function followTurnEnds(jsonlPath: string, startOffset: number, onTurnEnd: OnTurnEnd
|
|
100
|
+
export declare function followTurnEnds(jsonlPath: string, startOffset: number, onTurnEnd: OnTurnEnd, opts?: {
|
|
101
|
+
state?: FollowerState;
|
|
102
|
+
now?: () => number;
|
|
103
|
+
}): Promise<void>;
|
|
62
104
|
//# sourceMappingURL=turn-follow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-follow.d.ts","sourceRoot":"","sources":["../src/turn-follow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"turn-follow.d.ts","sourceRoot":"","sources":["../src/turn-follow.ts"],"names":[],"mappings":"AA6DA,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAA;IAChB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,cAAc,EAAE,OAAO,CAAA;IACvB;;;yEAGqE;IACrE,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB;;;sDAGkD;IAClD,SAAS,EAAE,MAAM,CAAA;IACjB;;;;mBAIe;IACf,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;;;;OAQG;IACH,gBAAgB,EAAE,MAAM,CAAA;IACxB;gCAC4B;IAC5B,OAAO,EAAE,iBAAiB,CAAA;CAC3B;AAYD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;yEAEqE;IACrE,eAAe,EAAE,MAAM,CAAA;IACvB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAA;IACpB;;;6DAGyD;IACzD,cAAc,EAAE,MAAM,CAAA;IACtB;;gEAE4D;IAC5D,aAAa,EAAE,MAAM,CAAA;CACtB;AAOD,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAmFhE;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;AAkBtD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,IAAI,CAmBf;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,iFAAiF;IACjF,IAAI,EAAE,OAAO,CAAA;IACb,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAA;IACrB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAA;CACtB;AAmCD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,SAAS,EACpB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,aAAa,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GACvD,OAAO,CAAC,IAAI,CAAC,CA+Jf"}
|
|
@@ -20,6 +20,38 @@ import { join } from 'node:path';
|
|
|
20
20
|
// literal here to avoid a cross-package import. This channel exposes no
|
|
21
21
|
// reply-document tool, so this set has one named member plus the generic alias.
|
|
22
22
|
const REPLY_TOOL_NAMES = new Set(['mcp__telegram-channel__reply', 'mcp__channel__reply']);
|
|
23
|
+
// Task 2456 — the `<channel source="…">` envelope Claude Code wraps a channel
|
|
24
|
+
// notification in. Platform channels also stamp the row `isMeta: true` +
|
|
25
|
+
// `origin.kind === 'channel'`; a native Claude Code channel emits the wrapper
|
|
26
|
+
// with no stamp, so stamp-or-wrapper is accepted on both branches. Ported
|
|
27
|
+
// verbatim from whatsapp-channel/turn-follow.ts, where Task 2111 measured the
|
|
28
|
+
// two discriminators never disagreeing across 86 channel prompts.
|
|
29
|
+
const CHANNEL_WRAPPER_PREFIX = /^<channel\b[^>]*>/;
|
|
30
|
+
function isChannelStamped(v) {
|
|
31
|
+
return (v?.isMeta === true &&
|
|
32
|
+
typeof v.origin === 'object' &&
|
|
33
|
+
v.origin !== null &&
|
|
34
|
+
v.origin.kind === 'channel');
|
|
35
|
+
}
|
|
36
|
+
/** True iff this JSONL row is one channel inbound the turn answered. */
|
|
37
|
+
function isConsumedInbound(ev) {
|
|
38
|
+
if (ev.type === 'user') {
|
|
39
|
+
const content = ev.message?.content;
|
|
40
|
+
// Array content is a tool_result carrier, never an inbound.
|
|
41
|
+
if (typeof content !== 'string')
|
|
42
|
+
return false;
|
|
43
|
+
return isChannelStamped(ev) || CHANNEL_WRAPPER_PREFIX.test(content);
|
|
44
|
+
}
|
|
45
|
+
if (ev.type === 'attachment') {
|
|
46
|
+
const att = ev.attachment;
|
|
47
|
+
if (att?.type !== 'queued_command' || typeof att.prompt !== 'string')
|
|
48
|
+
return false;
|
|
49
|
+
return isChannelStamped(att) || CHANNEL_WRAPPER_PREFIX.test(att.prompt);
|
|
50
|
+
}
|
|
51
|
+
// `queue-operation` rows carry the same prompt text on enqueue/remove, so
|
|
52
|
+
// counting them would multiply each inbound. They are never counted.
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
23
55
|
/** A usage figure the row actually reported, or -1. */
|
|
24
56
|
function usageNum(v) {
|
|
25
57
|
return typeof v === 'number' && Number.isFinite(v) ? v : -1;
|
|
@@ -34,6 +66,9 @@ export function reduceTurnFromLines(lines) {
|
|
|
34
66
|
let outputTokens = -1;
|
|
35
67
|
let thinkingBlocks = 0;
|
|
36
68
|
let thinkingChars = 0;
|
|
69
|
+
let messageId = '';
|
|
70
|
+
let toolUseBlocks = 0;
|
|
71
|
+
let consumedInbounds = 0;
|
|
37
72
|
for (const line of lines) {
|
|
38
73
|
if (!line)
|
|
39
74
|
continue;
|
|
@@ -44,14 +79,22 @@ export function reduceTurnFromLines(lines) {
|
|
|
44
79
|
catch {
|
|
45
80
|
continue;
|
|
46
81
|
}
|
|
47
|
-
if (ev.type !== 'assistant')
|
|
82
|
+
if (ev.type !== 'assistant') {
|
|
83
|
+
if (isConsumedInbound(ev))
|
|
84
|
+
consumedInbounds++;
|
|
48
85
|
continue;
|
|
86
|
+
}
|
|
49
87
|
const msg = ev.message;
|
|
50
88
|
const isEnd = msg?.stop_reason === 'end_turn';
|
|
51
89
|
// Task 2364 — counted ahead of the content-shape guard below so every
|
|
52
90
|
// assistant row in the turn contributes, not only the end_turn row.
|
|
53
91
|
if (msg && Array.isArray(msg.content)) {
|
|
54
92
|
for (const block of msg.content) {
|
|
93
|
+
// Task 2451 — counted here, in the same unguarded pass as thinking, so
|
|
94
|
+
// a row whose content is present but whose shape fails the later guard
|
|
95
|
+
// still contributes its tool calls.
|
|
96
|
+
if (block?.type === 'tool_use')
|
|
97
|
+
toolUseBlocks++;
|
|
55
98
|
if (block?.type !== 'thinking')
|
|
56
99
|
continue;
|
|
57
100
|
thinkingBlocks++;
|
|
@@ -59,18 +102,22 @@ export function reduceTurnFromLines(lines) {
|
|
|
59
102
|
thinkingChars += block.thinking.length;
|
|
60
103
|
}
|
|
61
104
|
}
|
|
62
|
-
//
|
|
63
|
-
//
|
|
105
|
+
// Task 2451 — a segment normally holds exactly one end_turn row, but a MERGED
|
|
106
|
+
// segment holds every end_turn row of one split assistant message. Those rows
|
|
107
|
+
// carry identical `id` and `usage` (measured on msg_011Cdk9NsrGoTd4dEsi25uvq),
|
|
108
|
+
// so re-assigning per row is last-wins over equal values.
|
|
64
109
|
if (isEnd) {
|
|
110
|
+
messageId = typeof msg?.id === 'string' ? msg.id : '';
|
|
65
111
|
cacheReadTokens = usageNum(msg?.usage?.cache_read_input_tokens);
|
|
66
112
|
inputTokens = usageNum(msg?.usage?.input_tokens);
|
|
67
113
|
outputTokens = usageNum(msg?.usage?.output_tokens);
|
|
68
114
|
}
|
|
69
115
|
if (!msg || !Array.isArray(msg.content)) {
|
|
70
|
-
|
|
116
|
+
// Task 2451 — `finalText` is NOT cleared here. It is '' unless an earlier
|
|
117
|
+
// end_turn row of the same merged message already contributed text, and
|
|
118
|
+
// erasing that would drop an answer this segment holds.
|
|
119
|
+
if (isEnd)
|
|
71
120
|
reachedEndTurn = true;
|
|
72
|
-
finalText = '';
|
|
73
|
-
}
|
|
74
121
|
continue;
|
|
75
122
|
}
|
|
76
123
|
let endText = '';
|
|
@@ -84,7 +131,10 @@ export function reduceTurnFromLines(lines) {
|
|
|
84
131
|
}
|
|
85
132
|
if (isEnd) {
|
|
86
133
|
reachedEndTurn = true;
|
|
87
|
-
|
|
134
|
+
// Task 2451 — accumulate rather than assign: a split message is ONE answer,
|
|
135
|
+
// so its text is the concatenation of its rows. Identical to assignment on
|
|
136
|
+
// an ordinary segment, which holds a single end_turn row.
|
|
137
|
+
finalText += endText;
|
|
88
138
|
}
|
|
89
139
|
}
|
|
90
140
|
return {
|
|
@@ -93,6 +143,9 @@ export function reduceTurnFromLines(lines) {
|
|
|
93
143
|
reachedEndTurn,
|
|
94
144
|
segmentStart: -1,
|
|
95
145
|
segmentEnd: -1,
|
|
146
|
+
messageId,
|
|
147
|
+
toolUseBlocks,
|
|
148
|
+
consumedInbounds,
|
|
96
149
|
context: { cacheReadTokens, inputTokens, outputTokens, thinkingBlocks, thinkingChars },
|
|
97
150
|
};
|
|
98
151
|
}
|
|
@@ -142,15 +195,52 @@ export function findJsonlForSessionId(sessionId, env = process.env) {
|
|
|
142
195
|
}
|
|
143
196
|
return null;
|
|
144
197
|
}
|
|
198
|
+
/** The `message.id` of an assistant row, or '' for any other row shape. */
|
|
199
|
+
function rowMessageId(line) {
|
|
200
|
+
if (!line)
|
|
201
|
+
return '';
|
|
202
|
+
let ev;
|
|
203
|
+
try {
|
|
204
|
+
ev = JSON.parse(line);
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
return '';
|
|
208
|
+
}
|
|
209
|
+
if (ev.type !== 'assistant')
|
|
210
|
+
return '';
|
|
211
|
+
return typeof ev.message?.id === 'string' ? ev.message.id : '';
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Task 2451 — a close reducing to no text, no tool use and at least one thinking
|
|
215
|
+
* block is not a finished turn. Claude Code 2.1.222 persists one assistant
|
|
216
|
+
* message as one row per content block, each stamped end_turn, so the thinking
|
|
217
|
+
* row closes the turn before the text row exists. Measured on account 5bc2c0e2:
|
|
218
|
+
* 89 of 481 end_turn rows are thinking-only and 89 of 89 are followed by a text
|
|
219
|
+
* end_turn row of the same message.
|
|
220
|
+
*/
|
|
221
|
+
function isIncompleteClose(o) {
|
|
222
|
+
// A close with no `message.id` is never held. The hold is released by the
|
|
223
|
+
// first row whose id differs, and `rowMessageId` reports '' for EVERY
|
|
224
|
+
// non-assistant row, so a hold keyed on '' matches the next user row instead
|
|
225
|
+
// of releasing on it: that row joins the held segment, the empty turn takes
|
|
226
|
+
// its inbound, and the real answer arrives with nothing left to consume and is
|
|
227
|
+
// discarded at the server's credit guard. That is precisely the loss this
|
|
228
|
+
// hold exists to prevent, reintroduced by the identity test degenerating.
|
|
229
|
+
if (o.messageId === '')
|
|
230
|
+
return false;
|
|
231
|
+
return o.finalText === '' && o.toolUseBlocks === 0 && o.context.thinkingBlocks >= 1;
|
|
232
|
+
}
|
|
145
233
|
/**
|
|
146
234
|
* Tail `jsonlPath` from `startOffset` for the life of the session, invoking
|
|
147
|
-
* `onTurnEnd` once
|
|
235
|
+
* `onTurnEnd` once per TURN. Task 2451: that is once per assistant end_turn
|
|
236
|
+
* EXCEPT where one message was split across several end_turn rows, which are
|
|
237
|
+
* merged into a single call. It
|
|
148
238
|
* segments the JSONL at each end_turn so a follow-on turn produced from a
|
|
149
239
|
* mid-turn-queued message is reported too. The process dies with the session,
|
|
150
240
|
* so there is no per-turn timeout; the promise resolves only when the file
|
|
151
241
|
* becomes unreadable. Never rejects. (Mirror of the WhatsApp twin.)
|
|
152
242
|
*/
|
|
153
|
-
export async function followTurnEnds(jsonlPath, startOffset, onTurnEnd) {
|
|
243
|
+
export async function followTurnEnds(jsonlPath, startOffset, onTurnEnd, opts = {}) {
|
|
154
244
|
let baseSize;
|
|
155
245
|
try {
|
|
156
246
|
baseSize = statSync(jsonlPath).size;
|
|
@@ -170,6 +260,43 @@ export async function followTurnEnds(jsonlPath, startOffset, onTurnEnd) {
|
|
|
170
260
|
let segStart = Math.min(startOffset, baseSize);
|
|
171
261
|
let segEnd = segStart;
|
|
172
262
|
let segment = [];
|
|
263
|
+
const state = opts.state;
|
|
264
|
+
const now = opts.now ?? (() => Date.now());
|
|
265
|
+
// Task 2451 — the held segment's lines and its byte start. `heldId` is the
|
|
266
|
+
// message identity a later row must match to extend it. Null when not holding.
|
|
267
|
+
let heldSegment = null;
|
|
268
|
+
let heldId = '';
|
|
269
|
+
let heldStart = 0;
|
|
270
|
+
/** Emit an outcome over the given lines and record it on the shared state. */
|
|
271
|
+
const emit = (lines, start, end) => {
|
|
272
|
+
const outcome = reduceTurnFromLines(lines);
|
|
273
|
+
outcome.segmentStart = start;
|
|
274
|
+
outcome.segmentEnd = end;
|
|
275
|
+
if (state)
|
|
276
|
+
state.lastMessageId = outcome.messageId;
|
|
277
|
+
onTurnEnd(outcome);
|
|
278
|
+
};
|
|
279
|
+
/** Release a held segment as its own (empty-answer) turn. */
|
|
280
|
+
const clearHold = () => {
|
|
281
|
+
heldSegment = null;
|
|
282
|
+
heldId = '';
|
|
283
|
+
if (state) {
|
|
284
|
+
state.held = false;
|
|
285
|
+
state.heldMessageId = '';
|
|
286
|
+
state.heldSinceMs = -1;
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
// Declared ahead of `settle`, which calls it: both are const arrow functions
|
|
290
|
+
// in one scope, so the reverse order throws a TDZ ReferenceError on the
|
|
291
|
+
// watcher-error path, which TypeScript does not report.
|
|
292
|
+
const flushHeld = (end) => {
|
|
293
|
+
if (!heldSegment)
|
|
294
|
+
return;
|
|
295
|
+
const lines = heldSegment;
|
|
296
|
+
const start = heldStart;
|
|
297
|
+
clearHold();
|
|
298
|
+
emit(lines, start, end);
|
|
299
|
+
};
|
|
173
300
|
let settled = false;
|
|
174
301
|
const settle = () => {
|
|
175
302
|
if (settled)
|
|
@@ -177,6 +304,10 @@ export async function followTurnEnds(jsonlPath, startOffset, onTurnEnd) {
|
|
|
177
304
|
settled = true;
|
|
178
305
|
watcher.close();
|
|
179
306
|
clearInterval(poll);
|
|
307
|
+
// Task 2451 — a hold outstanding when the session ends is that answer's
|
|
308
|
+
// last chance to be reported. Flush before the promise resolves and the
|
|
309
|
+
// owning server clears its counters.
|
|
310
|
+
flushHeld(segEnd);
|
|
180
311
|
resolve();
|
|
181
312
|
};
|
|
182
313
|
// Poll as well as watch: fs.watch misses appends on some platforms (notably
|
|
@@ -215,16 +346,58 @@ export async function followTurnEnds(jsonlPath, startOffset, onTurnEnd) {
|
|
|
215
346
|
const line = carry.slice(0, nl);
|
|
216
347
|
carry = carry.slice(nl + 1);
|
|
217
348
|
nl = carry.indexOf('\n');
|
|
218
|
-
|
|
349
|
+
// Task 2451 — a row belonging to a different message ends the held one.
|
|
350
|
+
// Releasing here rather than at the next end_turn keeps the hold as short
|
|
351
|
+
// as the transcript allows: a following user or tool row frees it at once.
|
|
352
|
+
// `segEnd` has not yet advanced past this line, so the flushed segment's
|
|
353
|
+
// end offset correctly excludes the releasing row, and `segStart` must
|
|
354
|
+
// move to that same boundary or the next outcome's byte range re-covers
|
|
355
|
+
// the flushed turn (webchat ships those offsets to the gateway).
|
|
356
|
+
if (heldSegment && rowMessageId(line) !== heldId) {
|
|
357
|
+
flushHeld(segEnd);
|
|
358
|
+
segStart = segEnd;
|
|
359
|
+
}
|
|
360
|
+
if (heldSegment) {
|
|
361
|
+
heldSegment.push(line);
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
segment.push(line);
|
|
365
|
+
}
|
|
219
366
|
segEnd += Buffer.byteLength(line, 'utf8') + 1;
|
|
220
|
-
if (isAssistantEndTurn(line))
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
367
|
+
if (!isAssistantEndTurn(line))
|
|
368
|
+
continue;
|
|
369
|
+
if (heldSegment) {
|
|
370
|
+
// Same message.id and it closes again: the rest of the split message
|
|
371
|
+
// has arrived. Emit the merged segment, empty text included — a merge
|
|
372
|
+
// that is still empty is an honest empty-answer turn.
|
|
373
|
+
const lines = heldSegment;
|
|
374
|
+
const start = heldStart;
|
|
375
|
+
clearHold();
|
|
376
|
+
emit(lines, start, segEnd);
|
|
377
|
+
segStart = segEnd;
|
|
378
|
+
continue;
|
|
379
|
+
}
|
|
380
|
+
const outcome = reduceTurnFromLines(segment);
|
|
381
|
+
if (isIncompleteClose(outcome)) {
|
|
382
|
+
heldSegment = segment;
|
|
383
|
+
heldId = outcome.messageId;
|
|
384
|
+
heldStart = segStart;
|
|
385
|
+
if (state) {
|
|
386
|
+
state.held = true;
|
|
387
|
+
state.heldMessageId = outcome.messageId;
|
|
388
|
+
state.heldSinceMs = now();
|
|
389
|
+
}
|
|
225
390
|
segment = [];
|
|
226
391
|
segStart = segEnd;
|
|
392
|
+
continue;
|
|
227
393
|
}
|
|
394
|
+
outcome.segmentStart = segStart;
|
|
395
|
+
outcome.segmentEnd = segEnd;
|
|
396
|
+
if (state)
|
|
397
|
+
state.lastMessageId = outcome.messageId;
|
|
398
|
+
onTurnEnd(outcome);
|
|
399
|
+
segment = [];
|
|
400
|
+
segStart = segEnd;
|
|
228
401
|
}
|
|
229
402
|
};
|
|
230
403
|
const watcher = watch(jsonlPath, { persistent: false }, () => drain());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-follow.js","sourceRoot":"","sources":["../src/turn-follow.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,iFAAiF;AACjF,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,qDAAqD;AACrD,EAAE;AACF,+EAA+E;AAC/E,qEAAqE;AACrE,iFAAiF;AACjF,uEAAuE;AACvE,4EAA4E;AAC5E,iEAAiE;AACjE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACjG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,iFAAiF;AACjF,iFAAiF;AACjF,gFAAgF;AAChF,wEAAwE;AACxE,gFAAgF;AAChF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAC,CAAA;AAuDzF,uDAAuD;AACvD,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,KAAe;IACjD,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,IAAI,cAAc,GAAG,KAAK,CAAA;IAC1B,IAAI,eAAe,GAAG,CAAC,CAAC,CAAA;IACxB,IAAI,WAAW,GAAG,CAAC,CAAC,CAAA;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC,CAAA;IACrB,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,IAAI,aAAa,GAAG,CAAC,CAAA;IACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI;YAAE,SAAQ;QACnB,IAAI,EAAsC,CAAA;QAC1C,IAAI,CAAC;YACH,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QACD,IAAK,EAAwB,CAAC,IAAI,KAAK,WAAW;YAAE,SAAQ;QAC5D,MAAM,GAAG,GAAI,EAAqB,CAAC,OAAO,CAAA;QAC1C,MAAM,KAAK,GAAG,GAAG,EAAE,WAAW,KAAK,UAAU,CAAA;QAC7C,sEAAsE;QACtE,oEAAoE;QACpE,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU;oBAAE,SAAQ;gBACxC,cAAc,EAAE,CAAA;gBAChB,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;oBAAE,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAA;YAChF,CAAC;QACH,CAAC;QACD,qEAAqE;QACrE,yEAAyE;QACzE,IAAI,KAAK,EAAE,CAAC;YACV,eAAe,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAA;YAC/D,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;YAChD,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAA;QACpD,CAAC;QACD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,KAAK,EAAE,CAAC;gBACV,cAAc,GAAG,IAAI,CAAA;gBACrB,SAAS,GAAG,EAAE,CAAA;YAChB,CAAC;YACD,SAAQ;QACV,CAAC;QACD,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrG,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;iBAAM,IAAI,KAAK,EAAE,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC7E,OAAO,IAAI,KAAK,CAAC,IAAI,CAAA;YACvB,CAAC;QACH,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,cAAc,GAAG,IAAI,CAAA;YACrB,SAAS,GAAG,OAAO,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO;QACL,OAAO;QACP,SAAS;QACT,cAAc;QACd,YAAY,EAAE,CAAC,CAAC;QAChB,UAAU,EAAE,CAAC,CAAC;QACd,OAAO,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE;KACvF,CAAA;AACH,CAAC;AAID,2EAA2E;AAC3E,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACvB,IAAI,EAAgE,CAAA;IACpE,IAAI,CAAC;QACH,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,EAAE,CAAC,IAAI,KAAK,WAAW,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,UAAU,CAAA;AAC1E,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAsB;IAC9C,OAAO,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAA;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAA;IAC5D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1C,IAAI,KAAe,CAAA;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,WAAW,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACvD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,SAAS,QAAQ,CAAA;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC/C,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC9D,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAA;IAC3C,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,WAAmB,EACnB,SAAoB;IAEpB,IAAI,QAAgB,CAAA;IACpB,IAAI,CAAC;QACH,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAM;IACR,CAAC;IACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QAC5C,IAAI,KAAK,GAAG,EAAE,CAAA;QACd,0EAA0E;QAC1E,mEAAmE;QACnE,0EAA0E;QAC1E,iEAAiE;QACjE,wEAAwE;QACxE,oBAAoB;QACpB,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QAC9C,IAAI,MAAM,GAAG,QAAQ,CAAA;QACrB,IAAI,OAAO,GAAa,EAAE,CAAA;QAC1B,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,OAAO,CAAC,KAAK,EAAE,CAAA;YACf,aAAa,CAAC,IAAI,CAAC,CAAA;YACnB,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;QACD,4EAA4E;QAC5E,yEAAyE;QACzE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAA;QAE5C,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,IAAI,GAAW,CAAA;YACf,IAAI,CAAC;gBACH,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAA;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,EAAE,CAAA;gBACR,OAAM;YACR,CAAC;YACD,IAAI,GAAG,IAAI,MAAM;gBAAE,OAAM;YACzB,IAAI,GAAW,CAAA;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;gBACnC,IAAI,CAAC;oBACH,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAA;oBAChC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAC1C,CAAC;wBAAS,CAAC;oBACT,SAAS,CAAC,EAAE,CAAC,CAAA;gBACf,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,EAAE,CAAA;gBACR,OAAM;YACR,CAAC;YACD,MAAM,GAAG,GAAG,CAAA;YACZ,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAC7B,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC5B,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC/B,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;gBAC3B,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAClB,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC7C,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7B,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;oBAC5C,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAA;oBAC/B,OAAO,CAAC,UAAU,GAAG,MAAM,CAAA;oBAC3B,SAAS,CAAC,OAAO,CAAC,CAAA;oBAClB,OAAO,GAAG,EAAE,CAAA;oBACZ,QAAQ,GAAG,MAAM,CAAA;gBACnB,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;QACtE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;QACnC,KAAK,EAAE,CAAA,CAAC,0DAA0D;IACpE,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"turn-follow.js","sourceRoot":"","sources":["../src/turn-follow.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,11 @@ export declare const mcp: Server<{
|
|
|
35
35
|
} | undefined;
|
|
36
36
|
} | undefined;
|
|
37
37
|
}>;
|
|
38
|
+
/** Task 2451 — how often the follower's hold state is reported. A held segment
|
|
39
|
+
* that never resolves emits nothing of its own, so this census is the only
|
|
40
|
+
* surface that shows it. Exported so tests assert the value without waiting it
|
|
41
|
+
* out. */
|
|
42
|
+
export declare const CENSUS_INTERVAL_MS = 60000;
|
|
38
43
|
export declare function subscribeInbound(): Promise<void>;
|
|
39
44
|
export declare function main(): Promise<void>;
|
|
40
45
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAoBA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAmDlE,eAAO,MAAM,YAAY,QAA4B,CAAA;AAErD,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBf,CAAA;AAgKD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAoBA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAmDlE,eAAO,MAAM,YAAY,QAA4B,CAAA;AAErD,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBf,CAAA;AAgKD;;;WAGW;AACX,eAAO,MAAM,kBAAkB,QAAS,CAAA;AAExC,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiNtD;AAED,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAO1C"}
|
|
@@ -230,6 +230,11 @@ async function postReady() {
|
|
|
230
230
|
body: JSON.stringify({ key: KEY }),
|
|
231
231
|
}).catch(() => { });
|
|
232
232
|
}
|
|
233
|
+
/** Task 2451 — how often the follower's hold state is reported. A held segment
|
|
234
|
+
* that never resolves emits nothing of its own, so this census is the only
|
|
235
|
+
* surface that shows it. Exported so tests assert the value without waiting it
|
|
236
|
+
* out. */
|
|
237
|
+
export const CENSUS_INTERVAL_MS = 60_000;
|
|
233
238
|
export async function subscribeInbound() {
|
|
234
239
|
// Task 2077 — declare the role this server runs as, so the gateway can refuse
|
|
235
240
|
// an inbound whose asserted role does not match the live session holding this
|
|
@@ -357,18 +362,62 @@ export async function subscribeInbound() {
|
|
|
357
362
|
followerStarted = true;
|
|
358
363
|
const followPath = jsonlPath;
|
|
359
364
|
const followStart = turnStartOffset;
|
|
365
|
+
// Task 2451 — a held segment that never resolves emits no event of
|
|
366
|
+
// its own. This census is the only surface that shows it, and the
|
|
367
|
+
// only place credit drift is visible between turns.
|
|
368
|
+
const followerState = { held: false, heldMessageId: '', heldSinceMs: -1, lastMessageId: '' };
|
|
369
|
+
const census = setInterval(() => {
|
|
370
|
+
const heldAgeMs = followerState.held && followerState.heldSinceMs >= 0 ? Date.now() - followerState.heldSinceMs : -1;
|
|
371
|
+
console.error(`[webchat-turn-census] op=census sessionId=${SESSION_ID} pending=${pendingTurns} held=${followerState.held ? 1 : 0} heldMessageId=${followerState.heldMessageId} heldAgeMs=${heldAgeMs} lastMessageId=${followerState.lastMessageId}`);
|
|
372
|
+
}, CENSUS_INTERVAL_MS);
|
|
373
|
+
census.unref?.();
|
|
360
374
|
void followTurnEnds(followPath, followStart, (outcome) => {
|
|
361
|
-
|
|
375
|
+
// Task 2456 — a turn that answered no channel inbound decides
|
|
376
|
+
// nothing and consumes nothing. `followTurnEnds` segments on ANY
|
|
377
|
+
// assistant end_turn, so a turn woken by a background
|
|
378
|
+
// task-notification arrives here too: measured on the laptop
|
|
379
|
+
// 2026-08-06, 113 of 411 webchat segments hold no channel row at
|
|
380
|
+
// all, 109 of them carrying text. Charging one of those resolves
|
|
381
|
+
// a public visitor's held-open POST with the wrong byte range and
|
|
382
|
+
// strands the real answer behind the no-credit branch below.
|
|
383
|
+
// Mirrors whatsapp-channel/server.ts.
|
|
384
|
+
if (outcome.consumedInbounds <= 0) {
|
|
385
|
+
console.error(`[webchat-channel] op=turn-drop sessionId=${SESSION_ID} messageId=${outcome.messageId} finalBytes=${Buffer.byteLength(outcome.finalText.trim(), 'utf8')} reason=no-consumed-inbound`);
|
|
362
386
|
return;
|
|
363
|
-
|
|
364
|
-
|
|
387
|
+
}
|
|
388
|
+
// Task 2451 — an answer discarded here was rendered in the reader
|
|
389
|
+
// and never reached the chat. finalBytes>0 is a parity breach;
|
|
390
|
+
// this line is the only place it is countable.
|
|
391
|
+
if (pendingTurns <= 0) {
|
|
392
|
+
console.error(`[webchat-channel] op=turn-drop sessionId=${SESSION_ID} messageId=${outcome.messageId} finalBytes=${Buffer.byteLength(outcome.finalText.trim(), 'utf8')} reason=no-credit`);
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
// Task 2456 — consume exactly the inbounds this turn answered, no
|
|
396
|
+
// more and no fewer, so the queue stays in bijection with the
|
|
397
|
+
// pushes. The harness answers every inbound queued while it was
|
|
398
|
+
// busy in ONE turn; the measured distribution on this door is
|
|
399
|
+
// {1: 260, 2: 25, 3: 9, 4: 2, 6: 1, 11: 1}, so a fixed decrement
|
|
400
|
+
// of one strands 64 credits across 411 segments, and every
|
|
401
|
+
// stranded credit lets a later zero-consumed turn pass the guard
|
|
402
|
+
// above. `consumed.length`, not `outcome.consumedInbounds`, so
|
|
403
|
+
// the decrement is bounded by what the queue really held.
|
|
404
|
+
const consumed = pendingInteractive.splice(0, outcome.consumedInbounds);
|
|
405
|
+
pendingTurns -= consumed.length;
|
|
406
|
+
// Task 2456 — one value for a turn that answered several inbounds:
|
|
407
|
+
// a person is waiting if any consumed entry was interactive. This
|
|
408
|
+
// is what `pendingInteractive.shift()` produced over the old
|
|
409
|
+
// one-per-turn FIFO. No empty-set default: `pendingInteractive` is
|
|
410
|
+
// in lockstep with `pendingTurns`, which the guard above proved
|
|
411
|
+
// positive, so `consumed` always holds at least one entry.
|
|
412
|
+
const interactive = consumed.some(Boolean);
|
|
365
413
|
const finalBytes = Buffer.byteLength(outcome.finalText.trim(), 'utf8');
|
|
366
414
|
void fetch(`${GATEWAY_URL}/webchat-channel/turn-end`, {
|
|
367
415
|
method: 'POST',
|
|
368
416
|
headers: { 'content-type': 'application/json' },
|
|
369
417
|
body: JSON.stringify(buildTurnEndPostBody(KEY, SESSION_ID, ROLE, interactive, finalBytes, outcome.segmentStart, outcome.segmentEnd, outcome.context)),
|
|
370
418
|
}).catch(() => { });
|
|
371
|
-
}).finally(() => {
|
|
419
|
+
}, { state: followerState }).finally(() => {
|
|
420
|
+
clearInterval(census);
|
|
372
421
|
// The follower settles only on a stat failure (file unreadable —
|
|
373
422
|
// the session is ending). Clear any outstanding count so a
|
|
374
423
|
// replacement follower started by a later inbound begins clean.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,27 @@ export interface TurnOutcome {
|
|
|
11
11
|
* offsets; `followTurnEnds` overwrites both before calling back. */
|
|
12
12
|
segmentStart: number;
|
|
13
13
|
segmentEnd: number;
|
|
14
|
+
/** Task 2451 — `message.id` of the closing end_turn row; '' when the row
|
|
15
|
+
* carries none. Claude Code 2.1.222 can persist ONE assistant message as
|
|
16
|
+
* several rows, each stamped end_turn, so this is the identity
|
|
17
|
+
* `followTurnEnds` merges a split message on. */
|
|
18
|
+
messageId: string;
|
|
19
|
+
/** Task 2451 — `type:'tool_use'` blocks across EVERY assistant row in the
|
|
20
|
+
* segment. `replied` cannot serve here: it matches only the retired reply
|
|
21
|
+
* tool names, so a turn that called Read or Bash reports replied=false
|
|
22
|
+
* with tool_use present. The hold rule needs "this turn called no tool
|
|
23
|
+
* at all". */
|
|
24
|
+
toolUseBlocks: number;
|
|
25
|
+
/**
|
|
26
|
+
* Task 2456 — how many channel inbounds this turn answered. `followTurnEnds`
|
|
27
|
+
* segments on ANY assistant end_turn, so a turn woken by something other than
|
|
28
|
+
* a channel message arrives at the callback too and must consume nothing:
|
|
29
|
+
* measured on the laptop 2026-08-06, 2 of 15 telegram turn segments and 113
|
|
30
|
+
* of 411 webchat segments hold no channel row at all. Non-zero counts also
|
|
31
|
+
* matter: the harness answers every inbound queued while it was busy in ONE
|
|
32
|
+
* turn, so a turn-end can owe several credits, not one.
|
|
33
|
+
*/
|
|
34
|
+
consumedInbounds: number;
|
|
14
35
|
/** Task 2364 — the turn's token and thinking counts, for the gateway's
|
|
15
36
|
* op=turn-context line. */
|
|
16
37
|
context: TurnContextCounts;
|
|
@@ -50,13 +71,34 @@ export type OnTurnEnd = (outcome: TurnOutcome) => void;
|
|
|
50
71
|
* claude-session-manager/src/jsonl-path.ts) to avoid a cross-package dep.
|
|
51
72
|
*/
|
|
52
73
|
export declare function findJsonlForSessionId(sessionId: string, env?: NodeJS.ProcessEnv): string | null;
|
|
74
|
+
/**
|
|
75
|
+
* Task 2451 — the follower's live hold state, mutated in place so the owning
|
|
76
|
+
* channel server can log a standing census without the follower importing a
|
|
77
|
+
* logger. A held segment that never resolves emits no event of its own; the
|
|
78
|
+
* census is the only surface that shows it.
|
|
79
|
+
*/
|
|
80
|
+
export interface FollowerState {
|
|
81
|
+
/** True while a thinking-only close is held awaiting the rest of its message. */
|
|
82
|
+
held: boolean;
|
|
83
|
+
/** `message.id` of the held segment; '' when not holding. */
|
|
84
|
+
heldMessageId: string;
|
|
85
|
+
/** Clock value when the hold began; -1 when not holding. */
|
|
86
|
+
heldSinceMs: number;
|
|
87
|
+
/** `message.id` of the last outcome emitted; '' before the first. */
|
|
88
|
+
lastMessageId: string;
|
|
89
|
+
}
|
|
53
90
|
/**
|
|
54
91
|
* Tail `jsonlPath` from `startOffset` for the life of the session, invoking
|
|
55
|
-
* `onTurnEnd` once
|
|
92
|
+
* `onTurnEnd` once per TURN. Task 2451: that is once per assistant end_turn
|
|
93
|
+
* EXCEPT where one message was split across several end_turn rows, which are
|
|
94
|
+
* merged into a single call. It
|
|
56
95
|
* segments the JSONL at each end_turn so a follow-on turn produced from a
|
|
57
96
|
* mid-turn-queued message is reported too. The process dies with the session,
|
|
58
97
|
* so there is no per-turn timeout; the promise resolves only when the file
|
|
59
98
|
* becomes unreadable. Never rejects. (Mirror of the WhatsApp twin.)
|
|
60
99
|
*/
|
|
61
|
-
export declare function followTurnEnds(jsonlPath: string, startOffset: number, onTurnEnd: OnTurnEnd
|
|
100
|
+
export declare function followTurnEnds(jsonlPath: string, startOffset: number, onTurnEnd: OnTurnEnd, opts?: {
|
|
101
|
+
state?: FollowerState;
|
|
102
|
+
now?: () => number;
|
|
103
|
+
}): Promise<void>;
|
|
62
104
|
//# sourceMappingURL=turn-follow.d.ts.map
|