@dorokuma/herdsman 0.6.5 → 0.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.ja.md +2 -2
  2. package/README.md +4 -4
  3. package/dist/src/agent-history/antigravity-proto.d.ts +7 -0
  4. package/dist/src/agent-history/antigravity-proto.d.ts.map +1 -0
  5. package/dist/src/agent-history/antigravity-proto.js +124 -0
  6. package/dist/src/agent-history/antigravity-proto.js.map +1 -0
  7. package/dist/src/agent-history/antigravity-reader.d.ts +11 -0
  8. package/dist/src/agent-history/antigravity-reader.d.ts.map +1 -0
  9. package/dist/src/agent-history/antigravity-reader.js +72 -0
  10. package/dist/src/agent-history/antigravity-reader.js.map +1 -0
  11. package/dist/src/agent-history/discovery.d.ts +2 -1
  12. package/dist/src/agent-history/discovery.d.ts.map +1 -1
  13. package/dist/src/agent-history/discovery.js +168 -2
  14. package/dist/src/agent-history/discovery.js.map +1 -1
  15. package/dist/src/agent-history/grok-reader.d.ts +11 -0
  16. package/dist/src/agent-history/grok-reader.d.ts.map +1 -0
  17. package/dist/src/agent-history/grok-reader.js +54 -0
  18. package/dist/src/agent-history/grok-reader.js.map +1 -0
  19. package/dist/src/agent-history/readers.d.ts +13 -0
  20. package/dist/src/agent-history/readers.d.ts.map +1 -1
  21. package/dist/src/agent-history/readers.js +30 -3
  22. package/dist/src/agent-history/readers.js.map +1 -1
  23. package/dist/src/agent-history/service.d.ts +1 -0
  24. package/dist/src/agent-history/service.d.ts.map +1 -1
  25. package/dist/src/agent-history/service.js +39 -5
  26. package/dist/src/agent-history/service.js.map +1 -1
  27. package/dist/src/agent-history/tool-compaction.js +2 -2
  28. package/dist/src/agent-history/tool-compaction.js.map +1 -1
  29. package/dist/src/cli/herdsman.d.ts +5 -0
  30. package/dist/src/cli/herdsman.d.ts.map +1 -1
  31. package/dist/src/cli/herdsman.js +7 -9
  32. package/dist/src/cli/herdsman.js.map +1 -1
  33. package/dist/src/config/runtime.d.ts.map +1 -1
  34. package/dist/src/config/runtime.js +1 -4
  35. package/dist/src/config/runtime.js.map +1 -1
  36. package/dist/src/daemon/agent-event-reconciler.d.ts +26 -0
  37. package/dist/src/daemon/agent-event-reconciler.d.ts.map +1 -0
  38. package/dist/src/daemon/agent-event-reconciler.js +117 -0
  39. package/dist/src/daemon/agent-event-reconciler.js.map +1 -0
  40. package/dist/src/daemon/client.d.ts.map +1 -1
  41. package/dist/src/daemon/client.js +6 -1
  42. package/dist/src/daemon/client.js.map +1 -1
  43. package/dist/src/daemon/observability-server.d.ts +18 -0
  44. package/dist/src/daemon/observability-server.d.ts.map +1 -1
  45. package/dist/src/daemon/observability-server.js +97 -8
  46. package/dist/src/daemon/observability-server.js.map +1 -1
  47. package/dist/src/daemon/service.d.ts.map +1 -1
  48. package/dist/src/daemon/service.js +14 -0
  49. package/dist/src/daemon/service.js.map +1 -1
  50. package/dist/src/db/agent-context-snapshots.js +12 -1
  51. package/dist/src/db/agent-context-snapshots.js.map +1 -1
  52. package/dist/src/db/agent-events.d.ts +24 -0
  53. package/dist/src/db/agent-events.d.ts.map +1 -1
  54. package/dist/src/db/agent-events.js +128 -11
  55. package/dist/src/db/agent-events.js.map +1 -1
  56. package/dist/src/db/agent-orchestrator-scopes.d.ts +15 -0
  57. package/dist/src/db/agent-orchestrator-scopes.d.ts.map +1 -1
  58. package/dist/src/db/agent-orchestrator-scopes.js +43 -0
  59. package/dist/src/db/agent-orchestrator-scopes.js.map +1 -1
  60. package/dist/src/db/agents.d.ts +5 -0
  61. package/dist/src/db/agents.d.ts.map +1 -1
  62. package/dist/src/db/agents.js +67 -11
  63. package/dist/src/db/agents.js.map +1 -1
  64. package/dist/src/db/schema.d.ts +146 -0
  65. package/dist/src/db/schema.d.ts.map +1 -1
  66. package/dist/src/db/schema.js +12 -1
  67. package/dist/src/db/schema.js.map +1 -1
  68. package/dist/src/observability/agent-context-service.d.ts +1 -0
  69. package/dist/src/observability/agent-context-service.d.ts.map +1 -1
  70. package/dist/src/observability/agent-context-service.js +12 -7
  71. package/dist/src/observability/agent-context-service.js.map +1 -1
  72. package/dist/src/observability/agent-index-service.d.ts +2 -0
  73. package/dist/src/observability/agent-index-service.d.ts.map +1 -1
  74. package/dist/src/observability/agent-index-service.js +116 -19
  75. package/dist/src/observability/agent-index-service.js.map +1 -1
  76. package/dist/src/observability/agent-orchestrator-service.d.ts.map +1 -1
  77. package/dist/src/observability/agent-orchestrator-service.js +74 -9
  78. package/dist/src/observability/agent-orchestrator-service.js.map +1 -1
  79. package/dist/src/observability/contracts.d.ts +16 -1
  80. package/dist/src/observability/contracts.d.ts.map +1 -1
  81. package/dist/src/observability/contracts.js.map +1 -1
  82. package/dist/src/observability/errors.d.ts +53 -0
  83. package/dist/src/observability/errors.d.ts.map +1 -0
  84. package/dist/src/observability/errors.js +30 -0
  85. package/dist/src/observability/errors.js.map +1 -0
  86. package/dist/src/observability/schemas.d.ts +7 -0
  87. package/dist/src/observability/schemas.d.ts.map +1 -1
  88. package/dist/src/observability/schemas.js +7 -0
  89. package/dist/src/observability/schemas.js.map +1 -1
  90. package/dist/src/observability/turn-completion.d.ts +45 -0
  91. package/dist/src/observability/turn-completion.d.ts.map +1 -0
  92. package/dist/src/observability/turn-completion.js +85 -0
  93. package/dist/src/observability/turn-completion.js.map +1 -0
  94. package/drizzle/0006_grok_home.sql +1 -0
  95. package/drizzle/0007_moaning_guardian.sql +10 -0
  96. package/drizzle/meta/0006_snapshot.json +686 -0
  97. package/drizzle/meta/0007_snapshot.json +762 -0
  98. package/drizzle/meta/_journal.json +57 -7
  99. package/package.json +2 -2
package/README.ja.md CHANGED
@@ -40,7 +40,7 @@ herdsman help
40
40
 
41
41
  ## daemon を起動する
42
42
 
43
- Herdsman のagent commandとPi notificationはdaemonを必要とします。daemon は `herdr session list --json` に出る実行中の Herdr session を監視し、60 秒ごとに再スキャンします。停止した Herdr session は index しません。runtime file は標準で `~/.herdsman` に置きます。別の directory を使う場合は `SHEPHERD_HOME` を設定します。
43
+ Herdsman のagent commandとPi notificationはdaemonを必要とします。daemon は `herdr session list --json` に出る実行中の Herdr session を監視し、60 秒ごとに再スキャンします。停止した Herdr session は index しません。runtime file は標準で `~/.herdsman` に置きます。別の directory を使う場合は `HERDSMAN_HOME` を設定します。
44
44
 
45
45
  ```bash
46
46
  herdsman daemon start
@@ -95,7 +95,7 @@ Piからextensionをインストールします。
95
95
  pi install npm:@dorokuma/herdsman-pi
96
96
  ```
97
97
 
98
- extensionにはPi 0.80.6以降が必要です。PiがHerdr内で動くとHerdsman daemonに接続します。接続中のPiはoffの状態でも正確なPi session pathをpresence identityとして登録します。extensionはturnごとのtool resultや最終messageのtelemetryを送信しません。
98
+ extensionにはPi 0.80.6以降が必要です。PiがHerdr内で動くとHerdsman daemonに接続します。接続中のPiはoffの状態でも正確なPi session pathをpresence identityとして登録します。extensionはturnごとのtool resultやmessageのtelemetryは送信しませんが、自身の最終assistant messageがsession fileに書き込まれた後にturn完了シグナルをdaemonへ送るため、completed/blocked outcomeには空でない最終応答が含まれます。
99
99
 
100
100
  Piで`/herdsman on`を入力すると、そのterminalが現在のHerdr sessionとworkspaceにおける唯一のHerdsman ownerになります。cached current-workspace agent context、pending件数、agent update、自動wakeを受け取るのはownerだけです。contextからowner自身のPi terminalを除き、ほかのPi terminalを含めます。通常のpromptではdaemon RPCや履歴読み込みを待たず、local cacheのsnapshotを挿入します。起動直後、reconnect直後、scope移動直後はsnapshotが届くまでcontextが一時的にない場合があります。
101
101
 
package/README.md CHANGED
@@ -3,9 +3,9 @@
3
3
 
4
4
  ## Credits / Acknowledgements
5
5
 
6
- herdsman is forked from ryonakae/shepherd at commit dfdd3a2 (v0.5.1). Thanks to the original author, Ryo Nakae, and the upstream project.
6
+ herdsman is forked from ryonakae/herdsman at commit dfdd3a2 (v0.5.1). Thanks to the original author, Ryo Nakae, and the upstream project.
7
7
 
8
- Upstream: https://github.com/ryonakae/shepherd
8
+ Upstream: https://github.com/ryonakae/herdsman
9
9
 
10
10
  # Herdsman
11
11
 
@@ -47,7 +47,7 @@ herdsman help
47
47
 
48
48
  ## Start the daemon
49
49
 
50
- Herdsman agent commands and Pi notifications require the daemon. The daemon watches all running Herdr sessions reported by `herdr session list --json`, rescans them every 60 seconds, and does not index stopped Herdr sessions. Runtime files live in `~/.herdsman` by default. Set `SHEPHERD_HOME` to use another directory.
50
+ Herdsman agent commands and Pi notifications require the daemon. The daemon watches all running Herdr sessions reported by `herdr session list --json`, rescans them every 60 seconds, and does not index stopped Herdr sessions. Runtime files live in `~/.herdsman` by default. Set `HERDSMAN_HOME` to use another directory.
51
51
 
52
52
  ```bash
53
53
  herdsman daemon start
@@ -102,7 +102,7 @@ Install the extension through Pi:
102
102
  pi install npm:@dorokuma/herdsman-pi
103
103
  ```
104
104
 
105
- The extension requires Pi 0.80.6 or newer and connects to the Herdsman daemon when Pi runs inside Herdr. Each connected Pi registers its exact Pi session path as presence identity, including while off. The extension does not send per-turn tool-result or final-message telemetry.
105
+ The extension requires Pi 0.80.6 or newer and connects to the Herdsman daemon when Pi runs inside Herdr. Each connected Pi registers its exact Pi session path as presence identity, including while off. The extension sends no per-turn tool-result or message telemetry; after its own final assistant message is written to the session file it sends a turn-completion signal, so completed and blocked outcomes carry a non-empty final response.
106
106
 
107
107
  Enter `/herdsman on` in Pi to make this terminal the sole Herdsman owner for its current Herdr session and workspace. Only the owner receives cached current-workspace agent context, pending counts, agent updates, and automatic wake. Its context excludes its own Pi terminal and includes other Pi terminals. A normal prompt injects the locally cached snapshot without daemon RPC or history reads, so context can be temporarily absent after startup, reconnect, or scope movement until a snapshot arrives.
108
108
 
@@ -0,0 +1,7 @@
1
+ export type AntigravityDecodedMessage = {
2
+ role: "user" | "assistant" | "tool_result";
3
+ text: string;
4
+ };
5
+ /** Decode the stable, envelope-level fields used by agy's step protobuf. */
6
+ export declare function decodeAntigravityMessage(value: unknown): AntigravityDecodedMessage | null;
7
+ //# sourceMappingURL=antigravity-proto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity-proto.d.ts","sourceRoot":"","sources":["../../../src/agent-history/antigravity-proto.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAIF,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,yBAAyB,GAAG,IAAI,CAoBzF"}
@@ -0,0 +1,124 @@
1
+ /** Decode the stable, envelope-level fields used by agy's step protobuf. */
2
+ export function decodeAntigravityMessage(value) {
3
+ if (!Buffer.isBuffer(value) && !(value instanceof Uint8Array))
4
+ return null;
5
+ const fields = parseFields(Buffer.from(value));
6
+ // These are structural message envelopes, not step_type values. Field 19 is
7
+ // the user turn; field 20 is the model turn. Field 30 is a tool execution.
8
+ const user = firstTextAtPaths(fields, [
9
+ [19, 3, 1],
10
+ [19, 3, 2],
11
+ [19, 2],
12
+ ]);
13
+ if (user)
14
+ return { role: "user", text: user };
15
+ const assistant = firstTextAtPaths(fields, [
16
+ [20, 8],
17
+ [20, 3],
18
+ [20, 1],
19
+ ]);
20
+ if (assistant)
21
+ return { role: "assistant", text: assistant };
22
+ const tool = stringsIn(fieldsFor(fields, 30));
23
+ if (tool.length > 0)
24
+ return { role: "tool_result", text: tool[0] };
25
+ return null;
26
+ }
27
+ function parseFields(bytes) {
28
+ const result = [];
29
+ let offset = 0;
30
+ try {
31
+ while (offset < bytes.length) {
32
+ const tag = readVarint(bytes, offset);
33
+ offset = tag.offset;
34
+ const number = Number(tag.value >> 3n);
35
+ const wireType = Number(tag.value & 7n);
36
+ if (number < 1 || number > 536_870_911)
37
+ return [];
38
+ if (wireType === 0) {
39
+ const v = readVarint(bytes, offset);
40
+ offset = v.offset;
41
+ result.push({ number, wireType, value: Number(v.value) });
42
+ }
43
+ else if (wireType === 1) {
44
+ offset += 8;
45
+ result.push({ number, wireType, value: 0 });
46
+ }
47
+ else if (wireType === 2) {
48
+ const length = readVarint(bytes, offset);
49
+ offset = length.offset;
50
+ const end = offset + Number(length.value);
51
+ if (end > bytes.length)
52
+ return [];
53
+ result.push({ number, wireType, value: bytes.subarray(offset, end) });
54
+ offset = end;
55
+ }
56
+ else if (wireType === 5) {
57
+ offset += 4;
58
+ result.push({ number, wireType, value: 0 });
59
+ }
60
+ else
61
+ return [];
62
+ if (offset > bytes.length)
63
+ return [];
64
+ }
65
+ }
66
+ catch {
67
+ return [];
68
+ }
69
+ return result;
70
+ }
71
+ function readVarint(bytes, offset) {
72
+ let value = 0n;
73
+ let shift = 0n;
74
+ while (offset < bytes.length && shift <= 63n) {
75
+ const byte = bytes[offset++];
76
+ value |= BigInt(byte & 127) << shift;
77
+ if (!(byte & 128))
78
+ return { value, offset };
79
+ shift += 7n;
80
+ }
81
+ throw new Error("invalid protobuf varint");
82
+ }
83
+ function fieldsFor(fields, number) {
84
+ return fields
85
+ .filter((field) => field.number === number && field.wireType === 2)
86
+ .map((field) => field.value);
87
+ }
88
+ function firstTextAtPaths(fields, paths) {
89
+ for (const path of paths) {
90
+ const text = textAtPath(fields, path);
91
+ if (text)
92
+ return text;
93
+ }
94
+ return null;
95
+ }
96
+ function textAtPath(fields, path) {
97
+ let current = fields;
98
+ for (let index = 0; index < path.length; index += 1) {
99
+ const field = current.find((item) => item.number === path[index] && item.wireType === 2);
100
+ if (!field)
101
+ return null;
102
+ const bytes = Buffer.from(field.value);
103
+ if (index === path.length - 1) {
104
+ const text = bytes.toString("utf8");
105
+ return text && !text.includes("\uFFFD") ? text : null;
106
+ }
107
+ current = parseFields(bytes);
108
+ }
109
+ return null;
110
+ }
111
+ function stringsIn(values) {
112
+ const result = [];
113
+ for (const value of values) {
114
+ const text = Buffer.from(value).toString("utf8");
115
+ if (text &&
116
+ [...text].every((char) => char === "\n" || char === "\r" || char === "\t" || char.charCodeAt(0) >= 0x20) &&
117
+ !text.includes("\uFFFD"))
118
+ result.push(text);
119
+ for (const nested of parseFields(Buffer.from(value)))
120
+ result.push(...(nested.wireType === 2 ? stringsIn([nested.value]) : []));
121
+ }
122
+ return result.filter((text) => text.trim().length > 0).sort((a, b) => b.length - a.length);
123
+ }
124
+ //# sourceMappingURL=antigravity-proto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity-proto.js","sourceRoot":"","sources":["../../../src/agent-history/antigravity-proto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { AgentHistoryMessage, AgentHistoryRef } from "../observability/contracts.js";
2
+ import { type AgentHistoryReader } from "./readers.js";
3
+ /** Reads explicit envelopes and agy's protobuf step envelopes. */
4
+ export declare class AntigravityHistoryReader implements AgentHistoryReader {
5
+ canRead(ref: AgentHistoryRef): boolean;
6
+ read(ref: AgentHistoryRef, options?: {
7
+ limit?: number;
8
+ }): Promise<AgentHistoryMessage[]>;
9
+ readCompact(ref: AgentHistoryRef): Promise<import("../observability/contracts.js").CompactAgentHistory>;
10
+ }
11
+ //# sourceMappingURL=antigravity-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity-reader.d.ts","sourceRoot":"","sources":["../../../src/agent-history/antigravity-reader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEzF,OAAO,EAAE,KAAK,kBAAkB,EAAsC,MAAM,cAAc,CAAC;AAG3F,kEAAkE;AAClE,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,OAAO,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO;IAIhC,IAAI,CACR,GAAG,EAAE,eAAe,EACpB,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAC/B,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAsD3B,WAAW,CAAC,GAAG,EAAE,eAAe;CAGvC"}
@@ -0,0 +1,72 @@
1
+ import { DatabaseSync } from "node:sqlite";
2
+ import { decodeAntigravityMessage } from "./antigravity-proto.js";
3
+ import { compactFromMessages, limitMessages } from "./readers.js";
4
+ import { messageRef, timestampFrom } from "./text.js";
5
+ /** Reads explicit envelopes and agy's protobuf step envelopes. */
6
+ export class AntigravityHistoryReader {
7
+ canRead(ref) {
8
+ return ref.source === "antigravity-sqlite" && Boolean(ref.path) && Boolean(ref.value);
9
+ }
10
+ async read(ref, options = {}) {
11
+ if (!ref.path || !ref.value || ref.path.includes(".."))
12
+ return [];
13
+ let db = null;
14
+ try {
15
+ db = new DatabaseSync(ref.path, { readOnly: true });
16
+ const tables = db.prepare("select name from sqlite_master where type = 'table'").all();
17
+ const table = tables.find((item) => ["steps", "conversation_steps", "step"].includes(item.name))?.name;
18
+ if (!table)
19
+ return [];
20
+ const columns = db.prepare(`pragma table_info(${quote(table)})`).all();
21
+ const names = new Set(columns.map((column) => column.name));
22
+ const roleColumn = ["role", "envelope_role", "message_role"].find((name) => names.has(name));
23
+ const payloadColumn = ["step_payload", "payload", "content", "message"].find((name) => names.has(name));
24
+ if (!payloadColumn)
25
+ return [];
26
+ const idColumn = names.has("id") ? "id" : names.has("step_id") ? "step_id" : "idx";
27
+ const timeColumn = names.has("created_at")
28
+ ? "created_at"
29
+ : names.has("timestamp")
30
+ ? "timestamp"
31
+ : null;
32
+ const rows = db
33
+ .prepare(`select ${quote(idColumn)} as id, ${roleColumn ? `${quote(roleColumn)} as role,` : ""} ${quote(payloadColumn)} as payload${timeColumn ? `, ${quote(timeColumn)} as time` : ""} from ${quote(table)} order by rowid`)
34
+ .all();
35
+ const messages = rows.flatMap((row) => {
36
+ const explicitRole = row.role === "user" || row.role === "assistant" ? row.role : null;
37
+ const decoded = explicitRole
38
+ ? { role: explicitRole, text: payloadText(row.payload) }
39
+ : decodeAntigravityMessage(row.payload);
40
+ if (!decoded?.text)
41
+ return [];
42
+ return [
43
+ {
44
+ ref: messageRef(ref.path, String(row.id), 0),
45
+ role: decoded.role,
46
+ text: decoded.text,
47
+ timestamp: timestampFrom(row.time),
48
+ },
49
+ ];
50
+ });
51
+ return limitMessages(messages, options.limit);
52
+ }
53
+ catch {
54
+ return [];
55
+ }
56
+ finally {
57
+ db?.close();
58
+ }
59
+ }
60
+ async readCompact(ref) {
61
+ return compactFromMessages(ref, await this.read(ref));
62
+ }
63
+ }
64
+ function payloadText(value) {
65
+ if (typeof value === "string")
66
+ return value || null;
67
+ return null;
68
+ }
69
+ function quote(value) {
70
+ return `"${value.replaceAll('"', '""')}"`;
71
+ }
72
+ //# sourceMappingURL=antigravity-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity-reader.js","sourceRoot":"","sources":["../../../src/agent-history/antigravity-reader.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { AgentHistoryRef, AgentSessionRef } from "../observability/contracts.js";
2
- export declare const ALLOWED_SESSION_ROOTS: readonly ["/root/.pi/agent/sessions", "/tmp/pi-role-sessions"];
2
+ export declare const ALLOWED_SESSION_ROOTS: readonly ["/tmp/pi-role-sessions"];
3
3
  export declare const DISCOVERY_RECENCY_GRACE_MS: number;
4
4
  export type AgentHistoryLookupInput = {
5
5
  agent: string | null;
@@ -7,6 +7,7 @@ export type AgentHistoryLookupInput = {
7
7
  cwd: string | null;
8
8
  foregroundCwd: string | null;
9
9
  firstSeenAtMs?: number;
10
+ grokHome?: string;
10
11
  homeDir?: string;
11
12
  occupiedSessionPaths?: ReadonlySet<string>;
12
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/agent-history/discovery.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AASrF,eAAO,MAAM,qBAAqB,gEAAiE,CAAC;AAEpG,eAAO,MAAM,0BAA0B,QAAc,CAAC;AACtD,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,eAAe,GAAG,IAAI,CAAC;IACrC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5C,CAAC;AASF,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyDjC;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,CAS3F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgBrF"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/agent-history/discovery.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AASrF,eAAO,MAAM,qBAAqB,oCAAqC,CAAC;AAExE,eAAO,MAAM,0BAA0B,QAAc,CAAC;AACtD,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,eAAe,GAAG,IAAI,CAAC;IACrC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5C,CAAC;AASF,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA0GjC;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,CAiB3F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwBrF"}
@@ -10,7 +10,7 @@ import { DatabaseSync } from "node:sqlite";
10
10
  // Herdr observation delay is on the second scale, so a 10-minute grace window
11
11
  // is far more generous than needed; it only discards sessions that had already
12
12
  // stopped being written well before the agent appeared.
13
- export const ALLOWED_SESSION_ROOTS = ["/root/.pi/agent/sessions", "/tmp/pi-role-sessions"];
13
+ export const ALLOWED_SESSION_ROOTS = ["/tmp/pi-role-sessions"];
14
14
  export const DISCOVERY_RECENCY_GRACE_MS = 10 * 60_000;
15
15
  export async function discoverAgentHistory(input) {
16
16
  if (input.agentSession?.kind === "path") {
@@ -21,9 +21,46 @@ export async function discoverAgentHistory(input) {
21
21
  }
22
22
  }
23
23
  const cwd = input.cwd ?? input.foregroundCwd;
24
+ const normalizedCwd = normalizeCwd(cwd);
24
25
  const homeDir = input.homeDir ?? process.env.HOME ?? "";
25
26
  if (input.agentSession?.kind === "id") {
26
27
  const source = historySourceFromSessionRef(input.agentSession);
28
+ if (source === "grok-jsonl") {
29
+ const matches = await discoverGrokSessions({
30
+ homeDir,
31
+ cwd,
32
+ sessionId: input.agentSession.value,
33
+ ...(input.grokHome === undefined ? {} : { grokHome: input.grokHome }),
34
+ });
35
+ const candidate = selectUniqueCandidate(matches, normalizedCwd, input.occupiedSessionPaths);
36
+ if (candidate)
37
+ return {
38
+ kind: "agent_session",
39
+ path: candidate.path,
40
+ source,
41
+ value: input.agentSession.value,
42
+ };
43
+ }
44
+ if (source === "antigravity-sqlite") {
45
+ const ref = discoverAntigravitySession(homeDir, input.agentSession.value);
46
+ if (ref)
47
+ return { ...ref, kind: "agent_session" };
48
+ }
49
+ if (source === "pi-jsonl") {
50
+ const roots = new Set([join(homeDir, ".pi", "agent", "sessions"), ...ALLOWED_SESSION_ROOTS]);
51
+ for (const root of roots) {
52
+ const matches = await scanRootById(root, input.agentSession.value, source);
53
+ const candidate = matches.find((item) => !input.occupiedSessionPaths?.has(item.path));
54
+ if (candidate) {
55
+ return {
56
+ kind: "agent_session",
57
+ path: candidate.path,
58
+ source,
59
+ value: input.agentSession.value,
60
+ };
61
+ }
62
+ }
63
+ }
27
64
  if (source === "opencode-sqlite") {
28
65
  const ref = discoverOpenCodeSession({ cwd, homeDir, sessionId: input.agentSession.value });
29
66
  if (ref)
@@ -52,8 +89,22 @@ export async function discoverAgentHistory(input) {
52
89
  if (ref)
53
90
  return ref;
54
91
  }
92
+ if (agent === "grok") {
93
+ const matches = await discoverGrokSessions({
94
+ homeDir,
95
+ cwd,
96
+ sessionId: null,
97
+ ...(input.grokHome === undefined ? {} : { grokHome: input.grokHome }),
98
+ });
99
+ candidates.push(...matches);
100
+ }
101
+ if (agent === "agy" || agent === "antigravity" || agent === "antigravity_cli") {
102
+ const ref = discoverAntigravitySession(homeDir, null);
103
+ if (ref)
104
+ return ref;
105
+ }
55
106
  const ranked = candidates
56
- .filter((candidate) => cwd !== null && candidate.cwd === cwd)
107
+ .filter((candidate) => normalizedCwd !== null && normalizeCwd(candidate.cwd) === normalizedCwd)
57
108
  .filter((candidate) => !input.occupiedSessionPaths?.has(candidate.path))
58
109
  .filter((candidate) => input.firstSeenAtMs === undefined ||
59
110
  candidate.mtimeMs >= input.firstSeenAtMs - DISCOVERY_RECENCY_GRACE_MS)
@@ -70,6 +121,13 @@ export async function discoverAgentHistory(input) {
70
121
  export function historySourceFromSessionRef(ref) {
71
122
  const agent = ref.agent.toLowerCase();
72
123
  const source = ref.source.toLowerCase();
124
+ if (agent === "agy" ||
125
+ agent === "antigravity" ||
126
+ agent === "antigravity_cli" ||
127
+ source.includes("antigravity"))
128
+ return "antigravity-sqlite";
129
+ if (agent === "grok" || source.includes("grok"))
130
+ return "grok-jsonl";
73
131
  if (agent === "pi" || source.includes("pi"))
74
132
  return "pi-jsonl";
75
133
  if (agent === "claude" || source.includes("claude"))
@@ -88,6 +146,12 @@ export function safeAllowedSessionPath(value, homeDir) {
88
146
  const resolved = normalize(value);
89
147
  try {
90
148
  const real = realpathSync(resolved);
149
+ const target = lstatSync(real);
150
+ if (!target.isFile() ||
151
+ target.isSymbolicLink() ||
152
+ target.uid !== CURRENT_EUID ||
153
+ (target.mode & 0o022) !== 0)
154
+ return null;
91
155
  const homeSessionRoot = join(homeDir ?? process.env.HOME ?? "/root", ".pi/agent/sessions");
92
156
  const roots = [homeSessionRoot, ...ALLOWED_SESSION_ROOTS];
93
157
  return roots.some((root) => {
@@ -102,6 +166,33 @@ export function safeAllowedSessionPath(value, homeDir) {
102
166
  }
103
167
  }
104
168
  const CURRENT_EUID = process.geteuid?.() ?? -1;
169
+ async function scanRootById(root, id, source) {
170
+ if (!existsSync(root))
171
+ return [];
172
+ const rootStats = await stat(root).catch(() => null);
173
+ if (!rootStats || rootStats.uid !== CURRENT_EUID || (rootStats.mode & 0o022) !== 0) {
174
+ console.warn(`Skipping unsafe discovery root: ${root}`);
175
+ return [];
176
+ }
177
+ const files = (await listJsonlFiles(root)).filter((path) => path.split("/").pop()?.includes(id));
178
+ const candidates = [];
179
+ for (const path of files) {
180
+ const stats = await stat(path).catch(() => null);
181
+ const linkStats = await lstat(path).catch(() => null);
182
+ if (!stats?.isFile() || !linkStats?.isFile() || stats.uid !== CURRENT_EUID)
183
+ continue;
184
+ candidates.push({ cwd: null, mtimeMs: stats.mtimeMs, path, source });
185
+ }
186
+ return candidates;
187
+ }
188
+ function normalizeCwd(value) {
189
+ if (value === null)
190
+ return null;
191
+ const compact = value.replace(/\/{2,}/g, "/");
192
+ if (compact === "/")
193
+ return compact;
194
+ return compact.replace(/\/+$/, "");
195
+ }
105
196
  async function scanRoot(root, source) {
106
197
  if (!existsSync(root))
107
198
  return [];
@@ -146,6 +237,7 @@ async function listJsonlFiles(root, depth = 0, state = { count: 0 }) {
146
237
  }
147
238
  async function readCandidateCwd(path) {
148
239
  const input = createReadStream(path, { encoding: "utf8", start: 0, end: 256 * 1024 - 1 });
240
+ input.on("error", () => { });
149
241
  const lines = createInterface({ input, crlfDelay: Infinity });
150
242
  let inspected = 0;
151
243
  try {
@@ -216,6 +308,80 @@ async function listGeminiSessionFiles(chatsDir) {
216
308
  .filter((entry) => entry.isFile() && entry.name.startsWith("session-") && entry.name.endsWith(".json"))
217
309
  .map((entry) => join(chatsDir, entry.name));
218
310
  }
311
+ function discoverGrokSessions(input) {
312
+ const root = join(input.grokHome ?? process.env.GROK_HOME ?? join(input.homeDir, ".grok"), "sessions");
313
+ return listGrokCandidates(root, input.cwd, input.sessionId);
314
+ }
315
+ async function listGrokCandidates(root, cwd, sessionId) {
316
+ if (!existsSync(root))
317
+ return [];
318
+ const rootStats = await stat(root).catch(() => null);
319
+ if (!rootStats || rootStats.uid !== CURRENT_EUID || (rootStats.mode & 0o022) !== 0)
320
+ return [];
321
+ const entries = await readdir(root, { withFileTypes: true }).catch(() => []);
322
+ const result = [];
323
+ for (const encoded of entries) {
324
+ if (!encoded.isDirectory())
325
+ continue;
326
+ let decodedCwd;
327
+ try {
328
+ decodedCwd = decodeURIComponent(encoded.name);
329
+ }
330
+ catch {
331
+ continue;
332
+ }
333
+ if (cwd && normalizeCwd(decodedCwd) !== normalizeCwd(cwd))
334
+ continue;
335
+ const sessions = await readdir(join(root, encoded.name), { withFileTypes: true }).catch(() => []);
336
+ for (const session of sessions) {
337
+ if (!session.isDirectory() ||
338
+ !isUuid(session.name) ||
339
+ (sessionId && session.name !== sessionId))
340
+ continue;
341
+ const path = join(root, encoded.name, session.name, "chat_history.jsonl");
342
+ const link = await lstat(path).catch(() => null);
343
+ const stats = await stat(path).catch(() => null);
344
+ if (!link?.isFile() || !stats?.isFile() || stats.uid !== CURRENT_EUID)
345
+ continue;
346
+ result.push({ cwd: decodedCwd, mtimeMs: stats.mtimeMs, path, source: "grok-jsonl" });
347
+ }
348
+ }
349
+ return result;
350
+ }
351
+ function selectUniqueCandidate(candidates, cwd, occupied) {
352
+ const filtered = candidates.filter((item) => !occupied?.has(item.path));
353
+ if (cwd) {
354
+ const matching = filtered.filter((item) => normalizeCwd(item.cwd) === normalizeCwd(cwd));
355
+ return matching.length === 1 ? (matching[0] ?? null) : null;
356
+ }
357
+ return filtered.length === 1 ? (filtered[0] ?? null) : null;
358
+ }
359
+ function isUuid(value) {
360
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value);
361
+ }
362
+ function discoverAntigravitySession(homeDir, sessionId) {
363
+ if (sessionId && !isUuid(sessionId))
364
+ return null;
365
+ const dir = join(homeDir, ".gemini", "antigravity-cli", "conversations");
366
+ if (sessionId) {
367
+ const path = join(dir, `${sessionId}.db`);
368
+ return safeConversationDb(path, sessionId)
369
+ ? { kind: "discovered_file", path, source: "antigravity-sqlite", value: sessionId }
370
+ : null;
371
+ }
372
+ return null;
373
+ }
374
+ function safeConversationDb(path, sessionId) {
375
+ if (!isUuid(sessionId) || !existsSync(path))
376
+ return false;
377
+ try {
378
+ const stats = lstatSync(path);
379
+ return stats.isFile() && (stats.mode & 0o077) === 0;
380
+ }
381
+ catch {
382
+ return false;
383
+ }
384
+ }
219
385
  function discoverOpenCodeSession(input) {
220
386
  const dbPath = resolveOpenCodeDbPath(input.homeDir);
221
387
  if (!existsSync(dbPath))
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/agent-history/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/agent-history/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,2EAA2E;AAC3E,yEAAyE;AACzE,6EAA6E;AAC7E,uEAAuE;AACvE,8EAA8E;AAC9E,+EAA+E;AAC/E,wDAAwD;AACxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,uBAAuB,CAAU,CAAC;AAExE,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,GAAG,MAAM,CAAC;AAmBtD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAA8B;IAE9B,IAAI,KAAK,CAAC,YAAY,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACjF,IAAI,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,2BAA2B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC/D,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC;IAC7C,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAExD,IAAI,KAAK,CAAC,YAAY,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,2BAA2B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC;gBACzC,OAAO;gBACP,GAAG;gBACH,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK;gBACnC,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;aACtE,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC5F,IAAI,SAAS;gBACX,OAAO;oBACL,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,MAAM;oBACN,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK;iBAChC,CAAC;QACN,CAAC;QACD,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,0BAA0B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1E,IAAI,GAAG;gBAAE,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;QACpD,CAAC;QACD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC;YAC7F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtF,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO;wBACL,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,MAAM;wBACN,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK;qBAChC,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,MAAM,KAAK,iBAAiB,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,uBAAuB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3F,IAAI,GAAG;gBAAE,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC1F,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC;QAC7F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,uBAAuB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC;YACzC,OAAO;YACP,GAAG;YACH,SAAS,EAAE,IAAI;YACf,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;SACtE,CAAC,CAAC;QACH,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,iBAAiB,EAAE,CAAC;QAC9E,MAAM,GAAG,GAAG,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,MAAM,MAAM,GAAG,UAAU;SACtB,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,aAAa,CAAC;SAC9F,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACvE,MAAM,CACL,CAAC,SAAS,EAAE,EAAE,CACZ,KAAK,CAAC,aAAa,KAAK,SAAS;QACjC,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,aAAa,GAAG,0BAA0B,CACxE;SACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QAC1D,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACL,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,IAAI;QACT,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;QACrF,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,GAAoB;IAC9D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACxC,IACE,KAAK,KAAK,KAAK;QACf,KAAK,KAAK,aAAa;QACvB,KAAK,KAAK,iBAAiB;QAC3B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;QAE9B,OAAO,oBAAoB,CAAC;IAC9B,IAAI,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,YAAY,CAAC;IACrE,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IAC/D,IAAI,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,cAAc,CAAC;IAC3E,IAAI,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,aAAa,CAAC;IACxE,IAAI,KAAK,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAClF,IAAI,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,aAAa,CAAC;IAC1E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,OAAgB;IACpE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IACE,CAAC,MAAM,CAAC,MAAM,EAAE;YAChB,MAAM,CAAC,cAAc,EAAE;YACvB,MAAM,CAAC,GAAG,KAAK,YAAY;YAC3B,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;YAE3B,OAAO,IAAI,CAAC;QACd,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAG,CAAC,eAAe,EAAE,GAAG,qBAAqB,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAClC,OAAO,IAAI,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC;YACA,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AACD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAE/C,KAAK,UAAU,YAAY,CACzB,IAAY,EACZ,EAAU,EACV,MAAiC;IAEjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY;YAAE,SAAS;QACrF,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,KAAoB;IACxC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,OAAO,CAAC;IACpC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,MAAiC;IACrE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY;YAAE,SAAS;QACrF,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;IACzE,IAAI,KAAK,GAAG,mBAAmB,IAAI,KAAK,CAAC,KAAK,IAAI,mBAAmB;QAAE,OAAO,EAAE,CAAC;IACjF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,KAAK,IAAI,mBAAmB;YAAE,MAAM;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACvF,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE;gBAAE,SAAS;YACzE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAY;IAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1F,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9D,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACvC,SAAS,IAAI,CAAC,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;gBAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBACnC,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC1E,IAAI,GAAG;oBAAE,OAAO,GAAG,CAAC;gBACpB,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACnF,IAAI,UAAU;oBAAE,OAAO,UAAU,CAAC;gBAClC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAClF,IAAI,SAAS;oBAAE,OAAO,SAAS,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,8EAA8E;YAChF,CAAC;YACD,IAAI,SAAS,IAAI,GAAG;gBAAE,MAAM;QAC9B,CAAC;IACH,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAY;IACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,GAAG,GACP,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;QAC7F,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACzE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;gBAAE,SAAS;YAC/B,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAY;IAC/C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QACnC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,QAAgB;IACpD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACjF,OAAO,OAAO;SACX,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CACtF;SACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,oBAAoB,CAAC,KAK7B;IACC,MAAM,IAAI,GAAG,IAAI,CACf,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EACvE,UAAU,CACX,CAAC;IACF,OAAO,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,IAAY,EACZ,GAAkB,EAClB,SAAyB;IAEzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9F,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;YAAE,SAAS;QACrC,IAAI,UAAkB,CAAC;QACvB,IAAI,CAAC;YACH,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,YAAY,CAAC,GAAG,CAAC;YAAE,SAAS;QACpE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CACrF,GAAG,EAAE,CAAC,EAAE,CACT,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IACE,CAAC,OAAO,CAAC,WAAW,EAAE;gBACtB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBACrB,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;gBAEzC,SAAS;YACX,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;YAC1E,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY;gBAAE,SAAS;YAChF,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAuB,EACvB,GAAkB,EAClB,QAA8B;IAE9B,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACzF,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,4EAA4E,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,0BAA0B,CACjC,OAAe,EACf,SAAwB;IAExB,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC;IACzE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC;QAC1C,OAAO,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC;YACxC,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE;YACnF,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,SAAiB;IACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AACD,SAAS,uBAAuB,CAAC,KAIhC;IACC,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,MAAM,GAAwB,IAAI,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,MAAM;iBACf,OAAO,CAAC,6CAA6C,CAAC;iBACtD,GAAG,CAAC,KAAK,CAAC,SAAS,CAA+B,CAAC;YACtD,OAAO,GAAG;gBACR,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE;gBACrF,CAAC,CAAC,IAAI,CAAC;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM;aACf,OAAO,CAAC,+EAA+E,CAAC;aACxF,GAAG,CAAC,KAAK,CAAC,GAAG,CAA+B,CAAC;QAChD,OAAO,GAAG;YACR,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE;YACrF,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,KAAK,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACzC,IAAI,QAAQ,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;YAC7B,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { AgentHistoryMessage, AgentHistoryRef } from "../observability/contracts.js";
2
+ import { type AgentHistoryReader } from "./readers.js";
3
+ /** Grok's pane-visible transcript is chat_history.jsonl; updates.jsonl is not selected here. */
4
+ export declare class GrokHistoryReader implements AgentHistoryReader {
5
+ canRead(ref: AgentHistoryRef): boolean;
6
+ read(ref: AgentHistoryRef, options?: {
7
+ limit?: number;
8
+ }): Promise<AgentHistoryMessage[]>;
9
+ readCompact(ref: AgentHistoryRef): Promise<import("../observability/contracts.js").CompactAgentHistory>;
10
+ }
11
+ //# sourceMappingURL=grok-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grok-reader.d.ts","sourceRoot":"","sources":["../../../src/agent-history/grok-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,cAAc,CAAC;AAGtB,gGAAgG;AAChG,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO;IAIhC,IAAI,CACR,GAAG,EAAE,eAAe,EACpB,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAC/B,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAyB3B,WAAW,CAAC,GAAG,EAAE,eAAe;CAGvC"}