@dorokuma/herdsman 0.6.6 → 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.
- package/README.ja.md +2 -2
- package/README.md +4 -4
- package/dist/src/agent-history/antigravity-proto.d.ts +7 -0
- package/dist/src/agent-history/antigravity-proto.d.ts.map +1 -0
- package/dist/src/agent-history/antigravity-proto.js +124 -0
- package/dist/src/agent-history/antigravity-proto.js.map +1 -0
- package/dist/src/agent-history/antigravity-reader.d.ts +11 -0
- package/dist/src/agent-history/antigravity-reader.d.ts.map +1 -0
- package/dist/src/agent-history/antigravity-reader.js +72 -0
- package/dist/src/agent-history/antigravity-reader.js.map +1 -0
- package/dist/src/agent-history/discovery.d.ts +2 -1
- package/dist/src/agent-history/discovery.d.ts.map +1 -1
- package/dist/src/agent-history/discovery.js +124 -1
- package/dist/src/agent-history/discovery.js.map +1 -1
- package/dist/src/agent-history/grok-reader.d.ts +11 -0
- package/dist/src/agent-history/grok-reader.d.ts.map +1 -0
- package/dist/src/agent-history/grok-reader.js +54 -0
- package/dist/src/agent-history/grok-reader.js.map +1 -0
- package/dist/src/agent-history/readers.d.ts +13 -0
- package/dist/src/agent-history/readers.d.ts.map +1 -1
- package/dist/src/agent-history/readers.js +30 -3
- package/dist/src/agent-history/readers.js.map +1 -1
- package/dist/src/agent-history/service.d.ts +1 -0
- package/dist/src/agent-history/service.d.ts.map +1 -1
- package/dist/src/agent-history/service.js +39 -5
- package/dist/src/agent-history/service.js.map +1 -1
- package/dist/src/agent-history/tool-compaction.js +2 -2
- package/dist/src/agent-history/tool-compaction.js.map +1 -1
- package/dist/src/cli/herdsman.d.ts +5 -0
- package/dist/src/cli/herdsman.d.ts.map +1 -1
- package/dist/src/cli/herdsman.js +7 -9
- package/dist/src/cli/herdsman.js.map +1 -1
- package/dist/src/config/runtime.d.ts.map +1 -1
- package/dist/src/config/runtime.js +1 -4
- package/dist/src/config/runtime.js.map +1 -1
- package/dist/src/daemon/agent-event-reconciler.d.ts +26 -0
- package/dist/src/daemon/agent-event-reconciler.d.ts.map +1 -0
- package/dist/src/daemon/agent-event-reconciler.js +117 -0
- package/dist/src/daemon/agent-event-reconciler.js.map +1 -0
- package/dist/src/daemon/client.d.ts.map +1 -1
- package/dist/src/daemon/client.js +6 -1
- package/dist/src/daemon/client.js.map +1 -1
- package/dist/src/daemon/observability-server.d.ts +18 -0
- package/dist/src/daemon/observability-server.d.ts.map +1 -1
- package/dist/src/daemon/observability-server.js +91 -8
- package/dist/src/daemon/observability-server.js.map +1 -1
- package/dist/src/daemon/service.d.ts.map +1 -1
- package/dist/src/daemon/service.js +14 -0
- package/dist/src/daemon/service.js.map +1 -1
- package/dist/src/db/agent-events.d.ts +24 -0
- package/dist/src/db/agent-events.d.ts.map +1 -1
- package/dist/src/db/agent-events.js +128 -11
- package/dist/src/db/agent-events.js.map +1 -1
- package/dist/src/db/agent-orchestrator-scopes.d.ts +15 -0
- package/dist/src/db/agent-orchestrator-scopes.d.ts.map +1 -1
- package/dist/src/db/agent-orchestrator-scopes.js +43 -0
- package/dist/src/db/agent-orchestrator-scopes.js.map +1 -1
- package/dist/src/db/agents.d.ts +5 -0
- package/dist/src/db/agents.d.ts.map +1 -1
- package/dist/src/db/agents.js +67 -11
- package/dist/src/db/agents.js.map +1 -1
- package/dist/src/db/schema.d.ts +146 -0
- package/dist/src/db/schema.d.ts.map +1 -1
- package/dist/src/db/schema.js +12 -1
- package/dist/src/db/schema.js.map +1 -1
- package/dist/src/observability/agent-context-service.d.ts +1 -0
- package/dist/src/observability/agent-context-service.d.ts.map +1 -1
- package/dist/src/observability/agent-context-service.js +12 -7
- package/dist/src/observability/agent-context-service.js.map +1 -1
- package/dist/src/observability/agent-index-service.d.ts +2 -0
- package/dist/src/observability/agent-index-service.d.ts.map +1 -1
- package/dist/src/observability/agent-index-service.js +116 -19
- package/dist/src/observability/agent-index-service.js.map +1 -1
- package/dist/src/observability/agent-orchestrator-service.d.ts.map +1 -1
- package/dist/src/observability/agent-orchestrator-service.js +72 -9
- package/dist/src/observability/agent-orchestrator-service.js.map +1 -1
- package/dist/src/observability/contracts.d.ts +16 -1
- package/dist/src/observability/contracts.d.ts.map +1 -1
- package/dist/src/observability/contracts.js.map +1 -1
- package/dist/src/observability/errors.d.ts +53 -0
- package/dist/src/observability/errors.d.ts.map +1 -0
- package/dist/src/observability/errors.js +30 -0
- package/dist/src/observability/errors.js.map +1 -0
- package/dist/src/observability/schemas.d.ts +7 -0
- package/dist/src/observability/schemas.d.ts.map +1 -1
- package/dist/src/observability/schemas.js +7 -0
- package/dist/src/observability/schemas.js.map +1 -1
- package/dist/src/observability/turn-completion.d.ts +45 -0
- package/dist/src/observability/turn-completion.d.ts.map +1 -0
- package/dist/src/observability/turn-completion.js +85 -0
- package/dist/src/observability/turn-completion.js.map +1 -0
- package/drizzle/0006_grok_home.sql +1 -0
- package/drizzle/0007_moaning_guardian.sql +10 -0
- package/drizzle/meta/0006_snapshot.json +686 -0
- package/drizzle/meta/0007_snapshot.json +762 -0
- package/drizzle/meta/_journal.json +57 -7
- 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 を使う場合は `
|
|
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
|
|
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/
|
|
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/
|
|
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 `
|
|
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
|
|
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 ["/
|
|
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,
|
|
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 = ["/
|
|
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") {
|
|
@@ -25,6 +25,27 @@ export async function discoverAgentHistory(input) {
|
|
|
25
25
|
const homeDir = input.homeDir ?? process.env.HOME ?? "";
|
|
26
26
|
if (input.agentSession?.kind === "id") {
|
|
27
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
|
+
}
|
|
28
49
|
if (source === "pi-jsonl") {
|
|
29
50
|
const roots = new Set([join(homeDir, ".pi", "agent", "sessions"), ...ALLOWED_SESSION_ROOTS]);
|
|
30
51
|
for (const root of roots) {
|
|
@@ -68,6 +89,20 @@ export async function discoverAgentHistory(input) {
|
|
|
68
89
|
if (ref)
|
|
69
90
|
return ref;
|
|
70
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
|
+
}
|
|
71
106
|
const ranked = candidates
|
|
72
107
|
.filter((candidate) => normalizedCwd !== null && normalizeCwd(candidate.cwd) === normalizedCwd)
|
|
73
108
|
.filter((candidate) => !input.occupiedSessionPaths?.has(candidate.path))
|
|
@@ -86,6 +121,13 @@ export async function discoverAgentHistory(input) {
|
|
|
86
121
|
export function historySourceFromSessionRef(ref) {
|
|
87
122
|
const agent = ref.agent.toLowerCase();
|
|
88
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";
|
|
89
131
|
if (agent === "pi" || source.includes("pi"))
|
|
90
132
|
return "pi-jsonl";
|
|
91
133
|
if (agent === "claude" || source.includes("claude"))
|
|
@@ -104,6 +146,12 @@ export function safeAllowedSessionPath(value, homeDir) {
|
|
|
104
146
|
const resolved = normalize(value);
|
|
105
147
|
try {
|
|
106
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;
|
|
107
155
|
const homeSessionRoot = join(homeDir ?? process.env.HOME ?? "/root", ".pi/agent/sessions");
|
|
108
156
|
const roots = [homeSessionRoot, ...ALLOWED_SESSION_ROOTS];
|
|
109
157
|
return roots.some((root) => {
|
|
@@ -189,6 +237,7 @@ async function listJsonlFiles(root, depth = 0, state = { count: 0 }) {
|
|
|
189
237
|
}
|
|
190
238
|
async function readCandidateCwd(path) {
|
|
191
239
|
const input = createReadStream(path, { encoding: "utf8", start: 0, end: 256 * 1024 - 1 });
|
|
240
|
+
input.on("error", () => { });
|
|
192
241
|
const lines = createInterface({ input, crlfDelay: Infinity });
|
|
193
242
|
let inspected = 0;
|
|
194
243
|
try {
|
|
@@ -259,6 +308,80 @@ async function listGeminiSessionFiles(chatsDir) {
|
|
|
259
308
|
.filter((entry) => entry.isFile() && entry.name.startsWith("session-") && entry.name.endsWith(".json"))
|
|
260
309
|
.map((entry) => join(chatsDir, entry.name));
|
|
261
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
|
+
}
|
|
262
385
|
function discoverOpenCodeSession(input) {
|
|
263
386
|
const dbPath = resolveOpenCodeDbPath(input.homeDir);
|
|
264
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":"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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
|
+
/** 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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { compactFromMessages, limitMessages, readJsonl, } from "./readers.js";
|
|
2
|
+
import { messageRef, timestampFrom } from "./text.js";
|
|
3
|
+
/** Grok's pane-visible transcript is chat_history.jsonl; updates.jsonl is not selected here. */
|
|
4
|
+
export class GrokHistoryReader {
|
|
5
|
+
canRead(ref) {
|
|
6
|
+
return ref.source === "grok-jsonl" && Boolean(ref.path ?? ref.value);
|
|
7
|
+
}
|
|
8
|
+
async read(ref, options = {}) {
|
|
9
|
+
const path = ref.path ?? ref.value;
|
|
10
|
+
const messages = [];
|
|
11
|
+
for (const entry of await readJsonl(path)) {
|
|
12
|
+
const role = entry.value.type === "user" || entry.value.type === "assistant" ? entry.value.type : null;
|
|
13
|
+
if (!role)
|
|
14
|
+
continue;
|
|
15
|
+
// Deliberately inspect only the ordinary content field. In particular,
|
|
16
|
+
// reasoning.encrypted_content must never enter the observable history.
|
|
17
|
+
const text = grokText(entry.value.content);
|
|
18
|
+
if (!text)
|
|
19
|
+
continue;
|
|
20
|
+
messages.push({
|
|
21
|
+
ref: messageRef(path, typeof entry.value.id === "string" ? entry.value.id : undefined, entry.line),
|
|
22
|
+
role,
|
|
23
|
+
text,
|
|
24
|
+
timestamp: timestampFrom(entry.value.timestamp) ?? timestampFrom(entry.value.created_at),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return limitMessages(messages, options.limit);
|
|
28
|
+
}
|
|
29
|
+
async readCompact(ref) {
|
|
30
|
+
return compactFromMessages(ref, await this.read(ref));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function grokText(value) {
|
|
34
|
+
if (typeof value === "string")
|
|
35
|
+
return value;
|
|
36
|
+
if (!Array.isArray(value))
|
|
37
|
+
return null;
|
|
38
|
+
const parts = value
|
|
39
|
+
.map((item) => {
|
|
40
|
+
if (typeof item === "string")
|
|
41
|
+
return item;
|
|
42
|
+
if (!item || typeof item !== "object")
|
|
43
|
+
return "";
|
|
44
|
+
const block = item;
|
|
45
|
+
return typeof block.text === "string"
|
|
46
|
+
? block.text
|
|
47
|
+
: typeof block.content === "string"
|
|
48
|
+
? block.content
|
|
49
|
+
: "";
|
|
50
|
+
})
|
|
51
|
+
.filter(Boolean);
|
|
52
|
+
return parts.length ? parts.join("\n") : null;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=grok-reader.js.map
|