@agentdeck/bridge 1.2.0 → 1.2.1
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/apme/classifier.d.ts.map +1 -1
- package/dist/apme/classifier.js +18 -10
- package/dist/apme/classifier.js.map +1 -1
- package/dist/apme/claude-transcript-reader.d.ts +36 -0
- package/dist/apme/claude-transcript-reader.d.ts.map +1 -1
- package/dist/apme/claude-transcript-reader.js +78 -2
- package/dist/apme/claude-transcript-reader.js.map +1 -1
- package/dist/apme/collector.d.ts +109 -3
- package/dist/apme/collector.d.ts.map +1 -1
- package/dist/apme/collector.js +408 -44
- package/dist/apme/collector.js.map +1 -1
- package/dist/apme/dashboard-html.d.ts.map +1 -1
- package/dist/apme/dashboard-html.js +4 -2
- package/dist/apme/dashboard-html.js.map +1 -1
- package/dist/apme/graph.d.ts +1 -1
- package/dist/apme/graph.d.ts.map +1 -1
- package/dist/apme/graph.js +51 -1
- package/dist/apme/graph.js.map +1 -1
- package/dist/apme/http.d.ts.map +1 -1
- package/dist/apme/http.js +4 -0
- package/dist/apme/http.js.map +1 -1
- package/dist/apme/index.d.ts +4 -0
- package/dist/apme/index.d.ts.map +1 -1
- package/dist/apme/index.js +13 -1
- package/dist/apme/index.js.map +1 -1
- package/dist/apme/runner.d.ts +90 -0
- package/dist/apme/runner.d.ts.map +1 -1
- package/dist/apme/runner.js +524 -48
- package/dist/apme/runner.js.map +1 -1
- package/dist/apme/sample-to-timeline.d.ts.map +1 -1
- package/dist/apme/sample-to-timeline.js +5 -0
- package/dist/apme/sample-to-timeline.js.map +1 -1
- package/dist/apme/settings.d.ts +8 -0
- package/dist/apme/settings.d.ts.map +1 -1
- package/dist/apme/settings.js +4 -0
- package/dist/apme/settings.js.map +1 -1
- package/dist/apme/store.d.ts +77 -8
- package/dist/apme/store.d.ts.map +1 -1
- package/dist/apme/store.js +189 -17
- package/dist/apme/store.js.map +1 -1
- package/dist/apme/task-gradeability.d.ts +82 -0
- package/dist/apme/task-gradeability.d.ts.map +1 -0
- package/dist/apme/task-gradeability.js +126 -0
- package/dist/apme/task-gradeability.js.map +1 -0
- package/dist/awaiting-overlay.d.ts +13 -26
- package/dist/awaiting-overlay.d.ts.map +1 -1
- package/dist/awaiting-overlay.js +7 -40
- package/dist/awaiting-overlay.js.map +1 -1
- package/dist/claude-permission-rules.d.ts +20 -32
- package/dist/claude-permission-rules.d.ts.map +1 -1
- package/dist/claude-permission-rules.js +19 -102
- package/dist/claude-permission-rules.js.map +1 -1
- package/dist/claude-usage-recovery.d.ts +54 -0
- package/dist/claude-usage-recovery.d.ts.map +1 -0
- package/dist/claude-usage-recovery.js +200 -0
- package/dist/claude-usage-recovery.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +28 -8
- package/dist/cli.js.map +1 -1
- package/dist/codex-rollout-response.d.ts +43 -0
- package/dist/codex-rollout-response.d.ts.map +1 -1
- package/dist/codex-rollout-response.js +67 -0
- package/dist/codex-rollout-response.js.map +1 -1
- package/dist/coordination-evidence.d.ts +150 -0
- package/dist/coordination-evidence.d.ts.map +1 -0
- package/dist/coordination-evidence.js +455 -0
- package/dist/coordination-evidence.js.map +1 -0
- package/dist/daemon-server.d.ts.map +1 -1
- package/dist/daemon-server.js +329 -34
- package/dist/daemon-server.js.map +1 -1
- package/dist/daemon.js +1 -1
- package/dist/deferred-reply-read.d.ts +24 -0
- package/dist/deferred-reply-read.d.ts.map +1 -0
- package/dist/deferred-reply-read.js +42 -0
- package/dist/deferred-reply-read.js.map +1 -0
- package/dist/esp32-serial.d.ts +11 -0
- package/dist/esp32-serial.d.ts.map +1 -1
- package/dist/esp32-serial.js +57 -2
- package/dist/esp32-serial.js.map +1 -1
- package/dist/hook-codex-sessions.d.ts +9 -0
- package/dist/hook-codex-sessions.d.ts.map +1 -1
- package/dist/hook-codex-sessions.js +35 -2
- package/dist/hook-codex-sessions.js.map +1 -1
- package/dist/hook-opencode-sessions.d.ts +62 -0
- package/dist/hook-opencode-sessions.d.ts.map +1 -0
- package/dist/hook-opencode-sessions.js +180 -0
- package/dist/hook-opencode-sessions.js.map +1 -0
- package/dist/hook-response-source.d.ts +40 -0
- package/dist/hook-response-source.d.ts.map +1 -0
- package/dist/hook-response-source.js +31 -0
- package/dist/hook-response-source.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/native-dependency-diagnostics.d.ts +29 -0
- package/dist/native-dependency-diagnostics.d.ts.map +1 -0
- package/dist/native-dependency-diagnostics.js +95 -0
- package/dist/native-dependency-diagnostics.js.map +1 -0
- package/dist/observed-steering.d.ts +4 -4
- package/dist/observed-steering.d.ts.map +1 -1
- package/dist/observed-steering.js +28 -32
- package/dist/observed-steering.js.map +1 -1
- package/dist/openclaw-gateway-stability.d.ts +94 -0
- package/dist/openclaw-gateway-stability.d.ts.map +1 -0
- package/dist/openclaw-gateway-stability.js +176 -0
- package/dist/openclaw-gateway-stability.js.map +1 -0
- package/dist/passive-observer.d.ts +5 -0
- package/dist/passive-observer.d.ts.map +1 -1
- package/dist/passive-observer.js +6 -0
- package/dist/passive-observer.js.map +1 -1
- package/dist/review-runner.js +1 -1
- package/dist/subagent-timeline.d.ts +27 -0
- package/dist/subagent-timeline.d.ts.map +1 -1
- package/dist/subagent-timeline.js +52 -5
- package/dist/subagent-timeline.js.map +1 -1
- package/dist/usage-api.d.ts +3 -0
- package/dist/usage-api.d.ts.map +1 -1
- package/dist/usage-api.js +101 -36
- package/dist/usage-api.js.map +1 -1
- package/dist/usage-event.d.ts.map +1 -1
- package/dist/usage-event.js +2 -1
- package/dist/usage-event.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../src/apme/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../src/apme/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAK5C,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IAEvB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAE1B,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAID,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,UAAU,GACV,QAAQ,GACR,WAAW,GACX,aAAa,GACb,QAAQ,GACR,KAAK,GACL,cAAc,GACd,aAAa,GACb,SAAS,CAAC;AAEd,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAGlD,CAAC;AAMF,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAmF3E;AAwDD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAK3D;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,CAI7G;AAoBD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,CA6DvB;AAED,0EAA0E;AAC1E,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE,CAAC,CAenF"}
|
package/dist/apme/classifier.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* tag <id> <category>`. The taxonomy is intentionally simple — the raw
|
|
12
12
|
* signals are always available for re-classification with a smarter model.
|
|
13
13
|
*/
|
|
14
|
+
import { loadMlxSettings, resolveMlxModel } from '@agentdeck/shared';
|
|
14
15
|
export const TASK_CATEGORIES = [
|
|
15
16
|
'planning', 'research', 'coding', 'debugging', 'refactoring',
|
|
16
17
|
'review', 'ops', 'conversation', 'multi_agent', 'unknown',
|
|
@@ -205,20 +206,27 @@ Tools used: ${toolSummary || 'none'} (${signals.totalToolCalls} total)
|
|
|
205
206
|
Files modified: ${signals.filesModified}, created: ${signals.filesCreated}
|
|
206
207
|
Duration: ${signals.sessionDurationSec}s, turns: ${signals.turnCount}`;
|
|
207
208
|
try {
|
|
208
|
-
//
|
|
209
|
-
|
|
209
|
+
// Use the explicit llm.mlx pin before catalog discovery. mlx-vlm's model
|
|
210
|
+
// endpoint lists downloaded models, not just the loaded one; treating its
|
|
211
|
+
// first row as active can unload the operating model and hot-swap an old
|
|
212
|
+
// candidate. Only probe when the user has not pinned a model.
|
|
213
|
+
const pinnedModel = loadMlxSettings().model;
|
|
214
|
+
let probedModel = null;
|
|
210
215
|
const base = 'http://127.0.0.1:8800';
|
|
211
|
-
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
216
|
+
if (!pinnedModel) {
|
|
217
|
+
for (const path of ['/v1/models', '/models']) {
|
|
218
|
+
const mResp = await fetch(`${base}${path}`, { signal: AbortSignal.timeout(2000) }).catch(() => null);
|
|
219
|
+
if (mResp?.ok) {
|
|
220
|
+
const mJson = await mResp.json();
|
|
221
|
+
const first = mJson.data?.find(m => m.id && !m.id.toLowerCase().includes('nanollava'))?.id;
|
|
222
|
+
if (first) {
|
|
223
|
+
probedModel = first;
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
219
226
|
}
|
|
220
227
|
}
|
|
221
228
|
}
|
|
229
|
+
const model = resolveMlxModel(probedModel);
|
|
222
230
|
const resp = await fetch(`${base}/chat/completions`, {
|
|
223
231
|
method: 'POST',
|
|
224
232
|
headers: { 'Content-Type': 'application/json' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/apme/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/apme/classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,4 +121,40 @@ export declare function readTurnEndProbe(transcriptPath: string): TurnEndProbe |
|
|
|
121
121
|
* evidence belonging to an earlier turn can neither be found nor paid for.
|
|
122
122
|
*/
|
|
123
123
|
export declare function readOpenTurnEvidence(transcriptPath: string, sinceMs: number): OpenTurnEvidence | null;
|
|
124
|
+
/**
|
|
125
|
+
* Where Claude Code keeps a session's transcript, found by id rather than
|
|
126
|
+
* carried on a hook. Claude names the project directory after the working
|
|
127
|
+
* directory with every non-alphanumeric character replaced by `-`
|
|
128
|
+
* (`/Users/x/github/foo` → `-Users-x-github-foo`); that guess is tried first
|
|
129
|
+
* and a scan of every project directory covers a session whose cwd is not
|
|
130
|
+
* recorded (or was recorded differently). Null when no file exists — never
|
|
131
|
+
* a guessed path, since the callers read it as evidence.
|
|
132
|
+
*/
|
|
133
|
+
export declare function locateClaudeTranscript(sessionId: string, projectPath?: string | null, projectsRoot?: string): string | null;
|
|
134
|
+
/** How a Claude turn that opened at or after `sinceMs` ended, per its own
|
|
135
|
+
* transcript — the same three answers the next-prompt close distinguishes. */
|
|
136
|
+
export interface ClaudeTurnCompletion {
|
|
137
|
+
/** Transcript stamp of the record that ended the turn, epoch ms. */
|
|
138
|
+
endedAt: number;
|
|
139
|
+
/** Which signal the transcript proves: the model finished (`synthetic_stop`,
|
|
140
|
+
* since no Stop hook reached us), the user cancelled, or the client aborted. */
|
|
141
|
+
source: 'synthetic_stop' | 'interrupted' | 'aborted';
|
|
142
|
+
/** The turn's final assistant text; empty for a cancel or abort. */
|
|
143
|
+
text: string;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Did the Claude turn that opened at or after `sinceMs` END, per the transcript?
|
|
147
|
+
*
|
|
148
|
+
* Answers the question `rehydrateOpenRuns` has for a turn it found open in the
|
|
149
|
+
* store: the daemon that would have taken its Stop is gone, and the transcript
|
|
150
|
+
* is the only record left of whether that Stop was ever owed. Null when the
|
|
151
|
+
* transcript is missing, unreadable, or its tail is still mid-turn (an
|
|
152
|
+
* assistant `tool_use` or a `user` tool_result) — the session may be alive and
|
|
153
|
+
* the turn genuinely open, so nothing is claimed. Measured before it was
|
|
154
|
+
* written (2026-09-03): two worker sessions whose final `end_turn` landed 75
|
|
155
|
+
* minutes before a restart were adopted with their turn open and stayed open
|
|
156
|
+
* for 17 hours, because the adopted run counted as live to the reaper and no
|
|
157
|
+
* hook was ever coming.
|
|
158
|
+
*/
|
|
159
|
+
export declare function claudeTurnCompletionSince(sessionId: string, projectPath: string | null | undefined, sinceMs: number, projectsRoot?: string): ClaudeTurnCompletion | null;
|
|
124
160
|
//# sourceMappingURL=claude-transcript-reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-transcript-reader.d.ts","sourceRoot":"","sources":["../../src/apme/claude-transcript-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"claude-transcript-reader.d.ts","sourceRoot":"","sources":["../../src/apme/claude-transcript-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAsD3E;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyB7E;AAED,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qEAAqE;IACrE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;2EACuE;IACvE,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;gCAWgC;AAChC,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAExD;;qDAEqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sEAAsE;IACtE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;mEAC+D;IAC/D,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAkC5E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CA8BrG;AAoDD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,EAC3B,YAAY,GAAE,MAA+C,GAC5D,MAAM,GAAG,IAAI,CAcf;AAED;+EAC+E;AAC/E,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB;qFACiF;IACjF,MAAM,EAAE,gBAAgB,GAAG,aAAa,GAAG,SAAS,CAAC;IACrD,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,oBAAoB,GAAG,IAAI,CAY7B"}
|
|
@@ -15,9 +15,12 @@
|
|
|
15
15
|
* build, Task 2's `response_kind` heuristic (empty text + tool_calls > 0 →
|
|
16
16
|
* `tool_only`) is the fallback.
|
|
17
17
|
*/
|
|
18
|
-
import { readFileSync, openSync, readSync, fstatSync, closeSync } from 'fs';
|
|
18
|
+
import { readFileSync, openSync, readSync, fstatSync, closeSync, existsSync, readdirSync } from 'fs';
|
|
19
|
+
import { homedir } from 'os';
|
|
20
|
+
import { join } from 'path';
|
|
19
21
|
import { debug } from '../logger.js';
|
|
20
22
|
import { isClaudeInterruptRecord } from '../claude-interrupt-marker.js';
|
|
23
|
+
import { lastAssistantTextFromTranscript } from '../session-transcript-timeline.js';
|
|
21
24
|
/**
|
|
22
25
|
* Parse the last user→assistant turn from a Claude Code transcript JSONL.
|
|
23
26
|
*
|
|
@@ -116,7 +119,10 @@ export function readModelFromTranscript(transcriptPath) {
|
|
|
116
119
|
try {
|
|
117
120
|
const rec = JSON.parse(line);
|
|
118
121
|
const model = rec?.message?.model;
|
|
119
|
-
|
|
122
|
+
// `<synthetic>` is what Claude Code stamps on the client-authored abort
|
|
123
|
+
// notice ("You've hit your session limit…"); it names no model, and
|
|
124
|
+
// 18 of one week's runs carried it as their identity.
|
|
125
|
+
if (rec?.message?.role === 'assistant' && typeof model === 'string' && model && !model.startsWith('<')) {
|
|
120
126
|
return model;
|
|
121
127
|
}
|
|
122
128
|
}
|
|
@@ -310,4 +316,74 @@ function extractAssistantBlocks(content) {
|
|
|
310
316
|
}
|
|
311
317
|
return { text: parts.join('\n'), toolUses };
|
|
312
318
|
}
|
|
319
|
+
/**
|
|
320
|
+
* Where Claude Code keeps a session's transcript, found by id rather than
|
|
321
|
+
* carried on a hook. Claude names the project directory after the working
|
|
322
|
+
* directory with every non-alphanumeric character replaced by `-`
|
|
323
|
+
* (`/Users/x/github/foo` → `-Users-x-github-foo`); that guess is tried first
|
|
324
|
+
* and a scan of every project directory covers a session whose cwd is not
|
|
325
|
+
* recorded (or was recorded differently). Null when no file exists — never
|
|
326
|
+
* a guessed path, since the callers read it as evidence.
|
|
327
|
+
*/
|
|
328
|
+
export function locateClaudeTranscript(sessionId, projectPath, projectsRoot = join(homedir(), '.claude', 'projects')) {
|
|
329
|
+
if (!/^[0-9a-f-]{36}$/i.test(sessionId))
|
|
330
|
+
return null;
|
|
331
|
+
const file = `${sessionId}.jsonl`;
|
|
332
|
+
if (projectPath) {
|
|
333
|
+
const guess = join(projectsRoot, projectPath.replace(/[^a-zA-Z0-9]/g, '-'), file);
|
|
334
|
+
if (existsSync(guess))
|
|
335
|
+
return guess;
|
|
336
|
+
}
|
|
337
|
+
let dirs;
|
|
338
|
+
try {
|
|
339
|
+
dirs = readdirSync(projectsRoot);
|
|
340
|
+
}
|
|
341
|
+
catch {
|
|
342
|
+
return null;
|
|
343
|
+
}
|
|
344
|
+
for (const dir of dirs) {
|
|
345
|
+
const candidate = join(projectsRoot, dir, file);
|
|
346
|
+
if (existsSync(candidate))
|
|
347
|
+
return candidate;
|
|
348
|
+
}
|
|
349
|
+
return null;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Did the Claude turn that opened at or after `sinceMs` END, per the transcript?
|
|
353
|
+
*
|
|
354
|
+
* Answers the question `rehydrateOpenRuns` has for a turn it found open in the
|
|
355
|
+
* store: the daemon that would have taken its Stop is gone, and the transcript
|
|
356
|
+
* is the only record left of whether that Stop was ever owed. Null when the
|
|
357
|
+
* transcript is missing, unreadable, or its tail is still mid-turn (an
|
|
358
|
+
* assistant `tool_use` or a `user` tool_result) — the session may be alive and
|
|
359
|
+
* the turn genuinely open, so nothing is claimed. Measured before it was
|
|
360
|
+
* written (2026-09-03): two worker sessions whose final `end_turn` landed 75
|
|
361
|
+
* minutes before a restart were adopted with their turn open and stayed open
|
|
362
|
+
* for 17 hours, because the adopted run counted as live to the reaper and no
|
|
363
|
+
* hook was ever coming.
|
|
364
|
+
*/
|
|
365
|
+
export function claudeTurnCompletionSince(sessionId, projectPath, sinceMs, projectsRoot) {
|
|
366
|
+
const path = locateClaudeTranscript(sessionId, projectPath, projectsRoot);
|
|
367
|
+
if (!path)
|
|
368
|
+
return null;
|
|
369
|
+
const probe = readTurnEndProbe(path);
|
|
370
|
+
if (!probe || probe.timestampMs == null || probe.timestampMs < sinceMs)
|
|
371
|
+
return null;
|
|
372
|
+
if (probe.interrupted)
|
|
373
|
+
return { endedAt: probe.timestampMs, source: 'interrupted', text: '' };
|
|
374
|
+
if (probe.role !== 'assistant')
|
|
375
|
+
return null;
|
|
376
|
+
if (probe.stopReason === CLIENT_ABORT_STOP_REASON)
|
|
377
|
+
return { endedAt: probe.timestampMs, source: 'aborted', text: '' };
|
|
378
|
+
if (probe.stopReason !== 'end_turn')
|
|
379
|
+
return null;
|
|
380
|
+
let text = '';
|
|
381
|
+
try {
|
|
382
|
+
text = lastAssistantTextFromTranscript(path);
|
|
383
|
+
}
|
|
384
|
+
catch {
|
|
385
|
+
text = '';
|
|
386
|
+
}
|
|
387
|
+
return { endedAt: probe.timestampMs, source: 'synthetic_stop', text };
|
|
388
|
+
}
|
|
313
389
|
//# sourceMappingURL=claude-transcript-reader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-transcript-reader.js","sourceRoot":"","sources":["../../src/apme/claude-transcript-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-transcript-reader.js","sourceRoot":"","sources":["../../src/apme/claude-transcript-reader.ts"],"names":[],"mappings":"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"}
|
package/dist/apme/collector.d.ts
CHANGED
|
@@ -16,7 +16,9 @@ import type { SessionEntry } from '../session-registry.js';
|
|
|
16
16
|
import type { ApmeStore } from './store.js';
|
|
17
17
|
import type { AgentType, TelemetrySpan, ApmeSampleEventRow, TurnEndSource } from '@agentdeck/shared';
|
|
18
18
|
import type { ApmeHwSampler } from './hw-sampler.js';
|
|
19
|
-
import { type OpenTurnEvidence } from './claude-transcript-reader.js';
|
|
19
|
+
import { type OpenTurnEvidence, type ClaudeTurnCompletion } from './claude-transcript-reader.js';
|
|
20
|
+
import { type CodexTurnCompletion } from '../codex-rollout-response.js';
|
|
21
|
+
import type { SubagentSampleEvent } from '../subagent-timeline.js';
|
|
20
22
|
export interface OpenRunInput {
|
|
21
23
|
sessionId: string;
|
|
22
24
|
agentType: AgentType;
|
|
@@ -98,6 +100,14 @@ export declare class ApmeCollector {
|
|
|
98
100
|
private readonly openTurnProbe;
|
|
99
101
|
/** Injectable for tests only — production call sites take the default. */
|
|
100
102
|
private readonly idleGapMs;
|
|
103
|
+
/** Whether a Codex turn open at startup completed per its rollout — see
|
|
104
|
+
* `rehydrateOpenRuns`. Injectable for tests; the default reads the
|
|
105
|
+
* rollout tail under `~/.codex/sessions`. */
|
|
106
|
+
private readonly codexCompletionProbe;
|
|
107
|
+
/** Whether a Claude turn open at startup ended per its transcript — the
|
|
108
|
+
* Claude half of the same question. Injectable for tests; the default
|
|
109
|
+
* locates the transcript under `~/.claude/projects` by session id. */
|
|
110
|
+
private readonly claudeCompletionProbe;
|
|
101
111
|
private readonly sessionToRun;
|
|
102
112
|
private readonly sessionToAgentType;
|
|
103
113
|
private readonly sessionToTurn;
|
|
@@ -131,13 +141,61 @@ export declare class ApmeCollector {
|
|
|
131
141
|
* turn open / task close. See `AGENT_IDLE_GAP_MS` for the measurement the
|
|
132
142
|
* constant rests on. */
|
|
133
143
|
private readonly sessionToIdleGapTimer;
|
|
144
|
+
/** Sessions whose run was re-adopted from the store at startup — lets a
|
|
145
|
+
* newer open run for the same session replace the older one during the
|
|
146
|
+
* same rehydrate pass without touching runs opened live since. */
|
|
147
|
+
private readonly rehydratedSessions;
|
|
134
148
|
constructor(store: ApmeStore, hwSampler?: ApmeHwSampler | undefined,
|
|
135
149
|
/** What the transcript proves about a turn open since a timestamp — cancel,
|
|
136
150
|
* client abort, or never having run at all. Injectable for tests; the
|
|
137
151
|
* default reads the Claude transcript tail once for all three. */
|
|
138
152
|
openTurnProbe?: (transcriptPath: string, sinceMs: number) => OpenTurnEvidence | null,
|
|
139
153
|
/** Injectable for tests only — production call sites take the default. */
|
|
140
|
-
idleGapMs?: number
|
|
154
|
+
idleGapMs?: number,
|
|
155
|
+
/** Whether a Codex turn open at startup completed per its rollout — see
|
|
156
|
+
* `rehydrateOpenRuns`. Injectable for tests; the default reads the
|
|
157
|
+
* rollout tail under `~/.codex/sessions`. */
|
|
158
|
+
codexCompletionProbe?: (sessionId: string, sinceMs: number) => CodexTurnCompletion | null,
|
|
159
|
+
/** Whether a Claude turn open at startup ended per its transcript — the
|
|
160
|
+
* Claude half of the same question. Injectable for tests; the default
|
|
161
|
+
* locates the transcript under `~/.claude/projects` by session id. */
|
|
162
|
+
claudeCompletionProbe?: (sessionId: string, projectPath: string | null, sinceMs: number) => ClaudeTurnCompletion | null);
|
|
163
|
+
/** Re-adopt every run the store still holds open, so the daemon that just
|
|
164
|
+
* started continues them instead of stranding them.
|
|
165
|
+
*
|
|
166
|
+
* The collector's whole state is in-memory maps, and a daemon restart drops
|
|
167
|
+
* all of it while the sessions it was observing carry on. Before this, the
|
|
168
|
+
* next hook from such a session found no run, opened a fresh one, and the
|
|
169
|
+
* old one sat open until the abandoned-run reaper closed it two hours
|
|
170
|
+
* later — its task `orphaned`, its open turn's tool counters at zero, and
|
|
171
|
+
* the Stop that did arrive discarded for want of a turn to close. Measured
|
|
172
|
+
* over 5.5 days (2026-09-03) on a dev machine that restarted the daemon 40
|
|
173
|
+
* times: 60 of the 68 tasks the reaper closed straddled a restart, and the
|
|
174
|
+
* idle-gap boundary that had just been added could not fire for any of
|
|
175
|
+
* them, since its timer lived in the process that died.
|
|
176
|
+
*
|
|
177
|
+
* Per open run, in store order: the session→run edge is restored; the open
|
|
178
|
+
* task (if any) is rebuilt with its real turn span and first prompt; an
|
|
179
|
+
* open turn is rebuilt with its counters recovered from the trajectory it
|
|
180
|
+
* wrote; and when there is no open turn but a closed one, the idle-gap
|
|
181
|
+
* timer is armed for whatever remains of the gap — zero if it already
|
|
182
|
+
* elapsed during the downtime, which closes the task on the next tick as
|
|
183
|
+
* the `idle_gap` it always was. A Codex turn still open is checked once
|
|
184
|
+
* against its rollout: a `task_complete` newer than the turn is the Stop
|
|
185
|
+
* this daemon never received, and closes it as `synthetic_stop` with the
|
|
186
|
+
* reply the rollout recorded.
|
|
187
|
+
*
|
|
188
|
+
* Two runs open under one session id (an older defect's residue) resolve
|
|
189
|
+
* to the newest; the rest stay for the reaper. Must run before the first
|
|
190
|
+
* hook is served, and only in the process that owns the hook port — a
|
|
191
|
+
* session bridge adopting the daemon's runs would steal them. */
|
|
192
|
+
rehydrateOpenRuns(now?: number): {
|
|
193
|
+
runs: number;
|
|
194
|
+
tasks: number;
|
|
195
|
+
turns: number;
|
|
196
|
+
armed: number;
|
|
197
|
+
recovered: number;
|
|
198
|
+
};
|
|
141
199
|
/** Start a new run and return its id. Safe to call if store disabled (returns ''). */
|
|
142
200
|
openRun(input: OpenRunInput): string;
|
|
143
201
|
/** Record a hook event as a step + manage turn lifecycle.
|
|
@@ -203,7 +261,7 @@ export declare class ApmeCollector {
|
|
|
203
261
|
* model turn and owes exactly one Stop, which closes the LAST of them.
|
|
204
262
|
* A displaced row with no assistant record behind it at all is that
|
|
205
263
|
* artifact, not a lost hook. */
|
|
206
|
-
private
|
|
264
|
+
private resolveDisplacedTurn;
|
|
207
265
|
/** Close the current turn for a session (called on Stop, new prompt, or
|
|
208
266
|
* session end). `source` records which of those it was — see
|
|
209
267
|
* `TurnEndSource`. */
|
|
@@ -261,6 +319,12 @@ export declare class ApmeCollector {
|
|
|
261
319
|
* whose user simply stepped away mid-turn, and the row would then be closed
|
|
262
320
|
* underneath the collector that is still writing to it. */
|
|
263
321
|
isLiveRun(runId: string): boolean;
|
|
322
|
+
/** Drop every in-memory edge to `runId` after the reaper closed it in the
|
|
323
|
+
* store, so a hook that arrives later opens a fresh run instead of writing
|
|
324
|
+
* turns into a row that is already finalised. */
|
|
325
|
+
releaseRun(runId: string): void;
|
|
326
|
+
/** The session spoke: an adopted run is now owned for real. */
|
|
327
|
+
private heard;
|
|
264
328
|
/** Agent type established for a session at `openRun` (survives closeRun so a
|
|
265
329
|
* late-attributed timeline row still resolves its brand). This is the single
|
|
266
330
|
* authoritative agentType source the timeline attributor backfills from, so
|
|
@@ -280,6 +344,48 @@ export declare class ApmeCollector {
|
|
|
280
344
|
* only when a row was actually inserted (not a dup), so the timeline
|
|
281
345
|
* projection never double-emits. */
|
|
282
346
|
private appendSampleEvent;
|
|
347
|
+
/** Persist a child-agent lifecycle event on its parent task. Child hooks are
|
|
348
|
+
* deliberately consumed before ordinary APME ingestion so they cannot
|
|
349
|
+
* mutate parent state or controls; SubagentTimelineTracker explicitly
|
|
350
|
+
* hands just this observation-safe evidence back to the collector.
|
|
351
|
+
*
|
|
352
|
+
* This is the producer for SampleModelConfig.subagents. The richer event
|
|
353
|
+
* also powers the judge rollup and Graph node without promoting a child to
|
|
354
|
+
* a separately steerable session. Returns false when no parent task is
|
|
355
|
+
* active, which is honest: there is no task edge to guess. */
|
|
356
|
+
noteSubagentLifecycle(sessionId: string, event: SubagentSampleEvent): boolean;
|
|
357
|
+
/** Persist a free-form annotation on the session's active task (a task-list
|
|
358
|
+
* item checked off, a team event without a child identity). Returns false
|
|
359
|
+
* when no task is open — there is nothing honest to attach it to. */
|
|
360
|
+
noteInfo(sessionId: string, event: {
|
|
361
|
+
label: string;
|
|
362
|
+
detail?: string | null;
|
|
363
|
+
ts?: number;
|
|
364
|
+
}): boolean;
|
|
365
|
+
/** Persist a cross-session coordination observation (`RelationEvent`) on
|
|
366
|
+
* the session's active task. Like child lifecycle, this is evidence for the
|
|
367
|
+
* work board and the collaboration lens, never a steerable session or a
|
|
368
|
+
* parent link guessed from project membership: the producer
|
|
369
|
+
* (`CoordinationTracker`) only calls this with what a process table, a
|
|
370
|
+
* SendMessage tool call or a cross-session envelope actually said. */
|
|
371
|
+
noteRelation(sessionId: string, event: {
|
|
372
|
+
relation: 'spawned' | 'messaged' | 'waiting_on';
|
|
373
|
+
direction: 'in' | 'out';
|
|
374
|
+
phase: 'open' | 'closed';
|
|
375
|
+
peerSessionId?: string | null;
|
|
376
|
+
peerName?: string | null;
|
|
377
|
+
evidence: string;
|
|
378
|
+
detail?: string | null;
|
|
379
|
+
ts?: number;
|
|
380
|
+
/** Identity the dedup key is built on — the peer pid / session / message
|
|
381
|
+
* hash — so a re-scan does not append the same open relation twice. */
|
|
382
|
+
key: string;
|
|
383
|
+
}): boolean;
|
|
384
|
+
/** Merge instead of replacing the sample identity header. Model updates can
|
|
385
|
+
* arrive after subagent starts (and vice versa); overwriting model_config
|
|
386
|
+
* here was why a future subagents producer would have appeared to work and
|
|
387
|
+
* then silently vanished on the next usage/model hook. */
|
|
388
|
+
private mergedTaskModelConfig;
|
|
283
389
|
/** Reverse-lookup sessionId for a runId (best-effort; only the live map). */
|
|
284
390
|
private runToSessionId;
|
|
285
391
|
/** Store Claude's response text on the current turn.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/apme/collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/apme/collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAA0C,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7I,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAmD,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAClJ,OAAO,EAA4B,KAAK,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqFD,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnG;oEACoE;AACpE,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,kBAAkB,CAAC;IACnC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;wEAEoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd;;4EAEwE;IACxE,eAAe,EAAE,OAAO,CAAC;CAC1B,KAAK,IAAI,CAAC;AAEX;;;iEAGiE;AACjE,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,kBAAkB,CAAC;CAC3B,KAAK,IAAI,CAAC;AAEX;sEACsE;AACtE,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB;;uEAEmE;IACnE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,KAAK,IAAI,CAAC;AAEX;;;;qBAIqB;AACrB,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,EAAE,EAAE,MAAM,CAAC;CACZ,KAAK,IAAI,CAAC;AAkCX,qBAAa,aAAa;IA+CtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B;;uEAEmE;IACnE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B;;kDAE8C;IAC9C,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC;;2EAEuE;IACvE,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IA7DxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuE;IACtG;;;;;yEAKqE;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuD;IAE1F;yDACqD;IAC9C,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IAEhD;kFAC8E;IACvE,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IAEhD;2DACuD;IAChD,aAAa,EAAE,aAAa,GAAG,IAAI,CAAQ;IAElD;0EACsE;IAC/D,eAAe,EAAE,eAAe,GAAG,IAAI,CAAQ;IAEtD;yEACqE;IACrE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE;;6BAEyB;IACzB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAoD;IAE1F;;uEAEmE;IACnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;gBAGrC,KAAK,EAAE,SAAS,EAChB,SAAS,CAAC,EAAE,aAAa,YAAA;IAC1C;;uEAEmE;IAClD,aAAa,GAAE,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,gBAAgB,GAAG,IAA2B;IAC3H,0EAA0E;IACzD,SAAS,GAAE,MAA0B;IACtD;;kDAE8C;IAC7B,oBAAoB,GAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,mBAAmB,GAAG,IAA+B;IACpI;;2EAEuE;IACtD,qBAAqB,GAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,oBAAoB,GAAG,IAAgC;IAGrK;;;;;;;;;;;;;;;;;;;;;;;;;;;;sEA4BkE;IAClE,iBAAiB,CAAC,GAAG,GAAE,MAAmB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAmH7H,sFAAsF;IACtF,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IA2BpC;;;;;;;;;4EASwE;IACxE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAoMpF;;;;kEAI8D;IAC9D,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,aAAsB,GAAG,IAAI;IAI5E;;;;;;;;;;;;;;;;;;oFAkBgF;IAChF,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAgBnH;;;;;;;;;;;;;;;;;;;;;wCAqBoC;IACpC,OAAO,CAAC,oBAAoB;IAiD5B;;2BAEuB;IACvB,OAAO,CAAC,SAAS;IA6BjB,6DAA6D;IAC7D,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIjD,gFAAgF;IAChF,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIjD;;mDAE+C;IAC/C,OAAO,CAAC,iBAAiB;IAgCzB;;;;;;;;;;0FAUsF;IACtF,OAAO,CAAC,cAAc;IA+BtB;;;;;uEAKmE;IACnE,OAAO,CAAC,6BAA6B;IAsBrC;;2EAEuE;IACvE,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,iBAAiB;IAQzB;;;;;;oBAMgB;IAChB,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,kBAA6B,EAC7C,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GACrD,OAAO;IAWV;;;2EAGuE;IACvE,OAAO,CAAC,SAAS;IAwFjB,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI1C;;;;gEAI4D;IAC5D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAcjC;;sDAEkD;IAClD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAa/B,+DAA+D;IAC/D,OAAO,CAAC,KAAK;IAIb;;;;oFAIgF;IAChF,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAMpD;;8EAE0E;IAC1E,OAAO,CAAC,gBAAgB;IAoBxB;;iFAE6E;IAC7E,OAAO,CAAC,SAAS;IAIjB;;;yCAGqC;IACrC,OAAO,CAAC,iBAAiB;IAyDzB;;;;;;;;mEAQ+D;IAC/D,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO;IAiC7E;;0EAEsE;IACtE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAgBnG;;;;;2EAKuE;IACvE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;QACrC,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;QAChD,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC;QACxB,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ;gFACwE;QACxE,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,OAAO;IAsBX;;;+DAG2D;IAC3D,OAAO,CAAC,qBAAqB;IA2B7B,6EAA6E;IAC7E,OAAO,CAAC,cAAc;IAKtB;;;yDAGqD;IACrD,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,YAAY,GAAG,4BAA4B,GAAG,QAAmB,GACxE,IAAI;IAmDP;6EACyE;IACzE,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAqCpE;;;;;;;qDAOiD;IACjD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAkIxD,wDAAwD;IACxD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAatG;;;0CAGsC;IACtC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAC3E,IAAI;IA0BP,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IA+E7D;;qDAEiD;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA6BhE,sEAAsE;IACtE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI;IAWxE;;6EAEyE;IACzE,OAAO,CAAC,kBAAkB;IAyD1B;;sDAEkD;IAClD,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,GAAE,aAA6B,GAC3C,MAAM,GAAG,IAAI;IAgEhB,kEAAkE;IAClE,OAAO,CAAC,gBAAgB;IA6BxB,yEAAyE;IACzE,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,YAAY;CASpH"}
|