@dorokuma/herdsman 0.13.6 → 0.14.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.
Files changed (61) hide show
  1. package/README.md +2 -2
  2. package/dist/src/agent-history/discovery.d.ts +47 -11
  3. package/dist/src/agent-history/discovery.d.ts.map +1 -1
  4. package/dist/src/agent-history/discovery.js +242 -468
  5. package/dist/src/agent-history/discovery.js.map +1 -1
  6. package/dist/src/agent-history/service.d.ts +4 -7
  7. package/dist/src/agent-history/service.d.ts.map +1 -1
  8. package/dist/src/agent-history/service.js +46 -30
  9. package/dist/src/agent-history/service.js.map +1 -1
  10. package/dist/src/daemon/agent-event-reconciler.js +6 -10
  11. package/dist/src/daemon/agent-event-reconciler.js.map +1 -1
  12. package/dist/src/daemon/herdr-session-watch-manager.js +2 -2
  13. package/dist/src/daemon/herdr-session-watch-manager.js.map +1 -1
  14. package/dist/src/daemon/observability-server.js +6 -6
  15. package/dist/src/daemon/observability-server.js.map +1 -1
  16. package/dist/src/db/agent-events.d.ts +2 -0
  17. package/dist/src/db/agent-events.d.ts.map +1 -1
  18. package/dist/src/db/agent-events.js +20 -0
  19. package/dist/src/db/agent-events.js.map +1 -1
  20. package/dist/src/db/agents.d.ts +0 -2
  21. package/dist/src/db/agents.d.ts.map +1 -1
  22. package/dist/src/db/agents.js +14 -57
  23. package/dist/src/db/agents.js.map +1 -1
  24. package/dist/src/herdr/pane-identity-resolver.d.ts +11 -0
  25. package/dist/src/herdr/pane-identity-resolver.d.ts.map +1 -1
  26. package/dist/src/herdr/pane-identity-resolver.js +27 -15
  27. package/dist/src/herdr/pane-identity-resolver.js.map +1 -1
  28. package/dist/src/herdr/session-list.d.ts.map +1 -1
  29. package/dist/src/herdr/session-list.js +4 -2
  30. package/dist/src/herdr/session-list.js.map +1 -1
  31. package/dist/src/observability/agent-context-service.d.ts +4 -10
  32. package/dist/src/observability/agent-context-service.d.ts.map +1 -1
  33. package/dist/src/observability/agent-context-service.js +37 -58
  34. package/dist/src/observability/agent-context-service.js.map +1 -1
  35. package/dist/src/observability/agent-index-service.d.ts.map +1 -1
  36. package/dist/src/observability/agent-index-service.js +19 -22
  37. package/dist/src/observability/agent-index-service.js.map +1 -1
  38. package/dist/src/observability/contracts.d.ts +1 -2
  39. package/dist/src/observability/contracts.d.ts.map +1 -1
  40. package/dist/src/observability/contracts.js.map +1 -1
  41. package/package.json +1 -1
  42. package/dist/src/agent-history/claude-reader.d.ts +0 -10
  43. package/dist/src/agent-history/claude-reader.d.ts.map +0 -1
  44. package/dist/src/agent-history/claude-reader.js +0 -90
  45. package/dist/src/agent-history/claude-reader.js.map +0 -1
  46. package/dist/src/agent-history/codex-reader.d.ts +0 -10
  47. package/dist/src/agent-history/codex-reader.d.ts.map +0 -1
  48. package/dist/src/agent-history/codex-reader.js +0 -119
  49. package/dist/src/agent-history/codex-reader.js.map +0 -1
  50. package/dist/src/agent-history/gemini-reader.d.ts +0 -10
  51. package/dist/src/agent-history/gemini-reader.d.ts.map +0 -1
  52. package/dist/src/agent-history/gemini-reader.js +0 -96
  53. package/dist/src/agent-history/gemini-reader.js.map +0 -1
  54. package/dist/src/agent-history/grok-reader.d.ts +0 -11
  55. package/dist/src/agent-history/grok-reader.d.ts.map +0 -1
  56. package/dist/src/agent-history/grok-reader.js +0 -54
  57. package/dist/src/agent-history/grok-reader.js.map +0 -1
  58. package/dist/src/agent-history/opencode-reader.d.ts +0 -10
  59. package/dist/src/agent-history/opencode-reader.d.ts.map +0 -1
  60. package/dist/src/agent-history/opencode-reader.js +0 -90
  61. package/dist/src/agent-history/opencode-reader.js.map +0 -1
@@ -1,119 +0,0 @@
1
- import { compactFromMessages, limitMessages, readJsonl, } from "./readers.js";
2
- import { messageRef, textFromContent, timestampFrom } from "./text.js";
3
- import { compactToolResult } from "./tool-compaction.js";
4
- export class CodexHistoryReader {
5
- canRead(ref) {
6
- return ref.source === "codex-jsonl" && Boolean(ref.path ?? ref.value);
7
- }
8
- async read(ref, options = {}) {
9
- const path = ref.path ?? ref.value;
10
- const messages = [];
11
- const toolNamesByCallId = new Map();
12
- for (const entry of await readJsonl(path)) {
13
- const type = stringValue(entry.value.type);
14
- const payload = record(entry.value.payload);
15
- const payloadType = stringValue(payload.type);
16
- const id = stringValue(payload.id) ?? stringValue(payload.call_id) ?? stringValue(entry.value.id);
17
- const timestamp = timestampFrom(payload.timestamp) ??
18
- timestampFrom(payload.started_at) ??
19
- timestampFrom(entry.value.timestamp);
20
- const refValue = messageRef(path, id ?? undefined, entry.line);
21
- if (type === "event_msg") {
22
- if (payloadType === "user_message") {
23
- const text = stringValue(payload.message);
24
- if (text && !isSystemCodexMessage(text)) {
25
- messages.push({ ref: refValue, role: "user", text, timestamp });
26
- }
27
- continue;
28
- }
29
- if (payloadType === "agent_message") {
30
- const text = stringValue(payload.message);
31
- if (text)
32
- messages.push({ ref: refValue, role: "assistant", text, timestamp });
33
- continue;
34
- }
35
- if (payloadType === "task_complete") {
36
- const text = stringValue(payload.last_agent_message);
37
- if (text)
38
- messages.push({ ref: refValue, role: "assistant", text, timestamp });
39
- continue;
40
- }
41
- }
42
- if (type !== "response_item")
43
- continue;
44
- if (payloadType === "function_call" || payloadType === "custom_tool_call") {
45
- const callId = stringValue(payload.call_id);
46
- const name = stringValue(payload.name);
47
- if (callId && name)
48
- toolNamesByCallId.set(callId, name);
49
- continue;
50
- }
51
- if (payloadType === "function_call_output" || payloadType === "custom_tool_call_output") {
52
- const callId = stringValue(payload.call_id);
53
- const toolName = (callId ? toolNamesByCallId.get(callId) : null) ?? "unknown";
54
- const text = textFromCodexOutput(payload.output);
55
- const compact = compactToolResult({ isError: false, ref: refValue, text, toolName });
56
- messages.push({
57
- compact,
58
- ref: refValue,
59
- role: "tool_result",
60
- text: compact.text,
61
- timestamp,
62
- toolName,
63
- });
64
- continue;
65
- }
66
- if (payloadType === "message") {
67
- const role = stringValue(payload.role);
68
- if (role === "developer")
69
- continue;
70
- if (role === "user") {
71
- const text = textFromCodexContent(payload.content, "input_text");
72
- if (text && !isSystemCodexMessage(text)) {
73
- messages.push({ ref: refValue, role: "user", text, timestamp });
74
- }
75
- continue;
76
- }
77
- if (role === "assistant") {
78
- const text = textFromCodexContent(payload.content, "output_text") ??
79
- textFromContent(payload.content);
80
- if (text)
81
- messages.push({ ref: refValue, role: "assistant", text, timestamp });
82
- }
83
- }
84
- }
85
- return limitMessages(messages, options.limit);
86
- }
87
- async readCompact(ref) {
88
- return compactFromMessages(ref, await this.read(ref));
89
- }
90
- }
91
- function textFromCodexContent(content, blockType) {
92
- if (!Array.isArray(content))
93
- return typeof content === "string" ? content : null;
94
- const parts = content
95
- .map((block) => {
96
- const item = record(block);
97
- if (item.type !== blockType)
98
- return "";
99
- return stringValue(item.text) ?? "";
100
- })
101
- .filter((part) => part.trim().length > 0);
102
- return parts.length > 0 ? parts.join("\n") : null;
103
- }
104
- function textFromCodexOutput(value) {
105
- if (typeof value === "string")
106
- return value;
107
- return JSON.stringify(value ?? "");
108
- }
109
- function isSystemCodexMessage(text) {
110
- const trimmed = text.trim();
111
- return trimmed.startsWith("<environment_context>") || trimmed.startsWith("<user_instructions>");
112
- }
113
- function record(value) {
114
- return typeof value === "object" && value !== null ? value : {};
115
- }
116
- function stringValue(value) {
117
- return typeof value === "string" && value.length > 0 ? value : null;
118
- }
119
- //# sourceMappingURL=codex-reader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex-reader.js","sourceRoot":"","sources":["../../../src/agent-history/codex-reader.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { AgentHistoryMessage, AgentHistoryRef } from "../observability/contracts.js";
2
- import { type AgentHistoryReader } from "./readers.js";
3
- export declare class GeminiHistoryReader implements AgentHistoryReader {
4
- canRead(ref: AgentHistoryRef): boolean;
5
- read(ref: AgentHistoryRef, options?: {
6
- limit?: number;
7
- }): Promise<AgentHistoryMessage[]>;
8
- readCompact(ref: AgentHistoryRef): Promise<import("../observability/contracts.js").CompactAgentHistory>;
9
- }
10
- //# sourceMappingURL=gemini-reader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini-reader.d.ts","sourceRoot":"","sources":["../../../src/agent-history/gemini-reader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,KAAK,kBAAkB,EAAsC,MAAM,cAAc,CAAC;AAI3F,qBAAa,mBAAoB,YAAW,kBAAkB;IAC5D,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;IAuD3B,WAAW,CAAC,GAAG,EAAE,eAAe;CAGvC"}
@@ -1,96 +0,0 @@
1
- import { readFile } from "node:fs/promises";
2
- import { compactFromMessages, limitMessages } from "./readers.js";
3
- import { messageRef, textFromContent, timestampFrom } from "./text.js";
4
- import { compactToolResult } from "./tool-compaction.js";
5
- export class GeminiHistoryReader {
6
- canRead(ref) {
7
- return ref.source === "gemini-json" && Boolean(ref.path ?? ref.value);
8
- }
9
- async read(ref, options = {}) {
10
- const path = ref.path ?? ref.value;
11
- let parsed;
12
- try {
13
- parsed = JSON.parse(await readFile(path, "utf8"));
14
- }
15
- catch {
16
- return [];
17
- }
18
- const records = geminiMessages(parsed);
19
- const messages = [];
20
- for (let index = 0; index < records.length; index += 1) {
21
- const record = records[index];
22
- if (!record)
23
- continue;
24
- const type = stringValue(record.type);
25
- const id = stringValue(record.id);
26
- const timestamp = timestampFrom(record.timestamp) ??
27
- timestampFrom(record.time) ??
28
- timestampFrom(record.createdAt);
29
- const refValue = messageRef(path, id ?? undefined, index + 1);
30
- if (type === "user") {
31
- const text = geminiText(record.content);
32
- if (text)
33
- messages.push({ ref: refValue, role: "user", text, timestamp });
34
- continue;
35
- }
36
- if (type === "gemini" || type === "assistant" || type === "model") {
37
- const text = geminiText(record.content);
38
- if (text)
39
- messages.push({ ref: refValue, role: "assistant", text, timestamp });
40
- continue;
41
- }
42
- if (type === "tool" || type === "tool_result" || type === "tool_response") {
43
- const toolName = stringValue(record.tool) ?? stringValue(record.name) ?? "unknown";
44
- const output = record.output ?? record.response ?? record.content ?? record.result ?? record;
45
- const text = typeof output === "string" ? output : JSON.stringify(output);
46
- const isError = record.isError === true || record.error !== undefined;
47
- const compact = compactToolResult({ isError, ref: refValue, text, toolName });
48
- messages.push({
49
- compact,
50
- ref: refValue,
51
- role: "tool_result",
52
- text: compact.text,
53
- timestamp,
54
- toolName,
55
- });
56
- }
57
- }
58
- return limitMessages(messages, options.limit);
59
- }
60
- async readCompact(ref) {
61
- return compactFromMessages(ref, await this.read(ref));
62
- }
63
- }
64
- function geminiMessages(value) {
65
- if (Array.isArray(value))
66
- return value.map(record).filter((item) => Object.keys(item).length > 0);
67
- const root = record(value);
68
- const messages = root.messages;
69
- return Array.isArray(messages)
70
- ? messages.map(record).filter((item) => Object.keys(item).length > 0)
71
- : [];
72
- }
73
- function geminiText(value) {
74
- if (typeof value === "string")
75
- return value;
76
- const text = textFromContent(value);
77
- if (text)
78
- return text;
79
- if (Array.isArray(value)) {
80
- const parts = value
81
- .map((item) => {
82
- const block = record(item);
83
- return stringValue(block.text) ?? stringValue(block.content) ?? "";
84
- })
85
- .filter((part) => part.trim().length > 0);
86
- return parts.length > 0 ? parts.join("\n") : null;
87
- }
88
- return null;
89
- }
90
- function record(value) {
91
- return typeof value === "object" && value !== null ? value : {};
92
- }
93
- function stringValue(value) {
94
- return typeof value === "string" && value.length > 0 ? value : null;
95
- }
96
- //# sourceMappingURL=gemini-reader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini-reader.js","sourceRoot":"","sources":["../../../src/agent-history/gemini-reader.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,54 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"grok-reader.js","sourceRoot":"","sources":["../../../src/agent-history/grok-reader.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { AgentHistoryMessage, AgentHistoryRef } from "../observability/contracts.js";
2
- import { type AgentHistoryReader } from "./readers.js";
3
- export declare class OpenCodeHistoryReader implements AgentHistoryReader {
4
- canRead(ref: AgentHistoryRef): boolean;
5
- read(ref: AgentHistoryRef, options?: {
6
- limit?: number;
7
- }): Promise<AgentHistoryMessage[]>;
8
- readCompact(ref: AgentHistoryRef): Promise<import("../observability/contracts.js").CompactAgentHistory>;
9
- }
10
- //# sourceMappingURL=opencode-reader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opencode-reader.d.ts","sourceRoot":"","sources":["../../../src/agent-history/opencode-reader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,KAAK,kBAAkB,EAAsC,MAAM,cAAc,CAAC;AAa3F,qBAAa,qBAAsB,YAAW,kBAAkB;IAC9D,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;IA8D3B,WAAW,CAAC,GAAG,EAAE,eAAe;CAGvC"}
@@ -1,90 +0,0 @@
1
- import { DatabaseSync } from "node:sqlite";
2
- import { compactFromMessages, limitMessages } from "./readers.js";
3
- import { messageRef, textFromContent, timestampFrom } from "./text.js";
4
- import { compactToolResult } from "./tool-compaction.js";
5
- export class OpenCodeHistoryReader {
6
- canRead(ref) {
7
- return ref.source === "opencode-sqlite" && Boolean(ref.path) && Boolean(ref.value);
8
- }
9
- async read(ref, options = {}) {
10
- const dbPath = ref.path;
11
- if (!dbPath)
12
- return [];
13
- let sqlite = null;
14
- try {
15
- sqlite = new DatabaseSync(dbPath, { readOnly: true });
16
- const rows = sqlite
17
- .prepare(`
18
- select
19
- m.id as message_id,
20
- m.time_created as message_time,
21
- json_extract(m.data, '$.role') as role,
22
- p.id as part_id,
23
- p.time_created as part_time,
24
- p.data as part_data
25
- from message m
26
- left join part p on p.message_id = m.id
27
- where m.session_id = ?
28
- order by m.time_created asc, p.time_created asc, p.id asc
29
- `)
30
- .all(ref.value);
31
- const messages = [];
32
- for (const row of rows) {
33
- if (!row.part_data)
34
- continue;
35
- const part = parseJsonRecord(row.part_data);
36
- const partType = stringValue(part.type);
37
- const timestamp = timestampFrom(row.part_time ?? row.message_time);
38
- const refValue = messageRef(dbPath, row.part_id ?? row.message_id, 0);
39
- if (partType === "text") {
40
- const role = row.role === "assistant" || row.role === "user" ? row.role : null;
41
- const text = stringValue(part.text) ?? textFromContent(part.content);
42
- if (role && text)
43
- messages.push({ ref: refValue, role, text, timestamp });
44
- continue;
45
- }
46
- if (partType === "tool") {
47
- const toolName = stringValue(part.tool) ?? "unknown";
48
- const state = record(part.state);
49
- const output = state.output ?? state.error ?? part.output ?? part.content ?? part;
50
- const text = typeof output === "string" ? output : JSON.stringify(output);
51
- const isError = Boolean(state.error) || stringValue(state.status) === "error";
52
- const compact = compactToolResult({ isError, ref: refValue, text, toolName });
53
- messages.push({
54
- compact,
55
- ref: refValue,
56
- role: "tool_result",
57
- text: compact.text,
58
- timestamp,
59
- toolName,
60
- });
61
- }
62
- }
63
- return limitMessages(messages, options.limit);
64
- }
65
- catch {
66
- return [];
67
- }
68
- finally {
69
- sqlite?.close();
70
- }
71
- }
72
- async readCompact(ref) {
73
- return compactFromMessages(ref, await this.read(ref));
74
- }
75
- }
76
- function parseJsonRecord(value) {
77
- try {
78
- return record(JSON.parse(value));
79
- }
80
- catch {
81
- return {};
82
- }
83
- }
84
- function record(value) {
85
- return typeof value === "object" && value !== null ? value : {};
86
- }
87
- function stringValue(value) {
88
- return typeof value === "string" && value.length > 0 ? value : null;
89
- }
90
- //# sourceMappingURL=opencode-reader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opencode-reader.js","sourceRoot":"","sources":["../../../src/agent-history/opencode-reader.ts"],"names":[],"mappings":"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"}