@dorokuma/herdsman 0.6.0
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/LICENSE +23 -0
- package/README.ja.md +143 -0
- package/README.md +150 -0
- package/dist/drizzle.config.d.ts +3 -0
- package/dist/drizzle.config.d.ts.map +1 -0
- package/dist/drizzle.config.js +7 -0
- package/dist/drizzle.config.js.map +1 -0
- package/dist/src/agent-history/claude-reader.d.ts +10 -0
- package/dist/src/agent-history/claude-reader.d.ts.map +1 -0
- package/dist/src/agent-history/claude-reader.js +90 -0
- package/dist/src/agent-history/claude-reader.js.map +1 -0
- package/dist/src/agent-history/codex-reader.d.ts +10 -0
- package/dist/src/agent-history/codex-reader.d.ts.map +1 -0
- package/dist/src/agent-history/codex-reader.js +119 -0
- package/dist/src/agent-history/codex-reader.js.map +1 -0
- package/dist/src/agent-history/discovery.d.ts +13 -0
- package/dist/src/agent-history/discovery.d.ts.map +1 -0
- package/dist/src/agent-history/discovery.js +220 -0
- package/dist/src/agent-history/discovery.js.map +1 -0
- package/dist/src/agent-history/gemini-reader.d.ts +10 -0
- package/dist/src/agent-history/gemini-reader.d.ts.map +1 -0
- package/dist/src/agent-history/gemini-reader.js +96 -0
- package/dist/src/agent-history/gemini-reader.js.map +1 -0
- package/dist/src/agent-history/opencode-reader.d.ts +10 -0
- package/dist/src/agent-history/opencode-reader.d.ts.map +1 -0
- package/dist/src/agent-history/opencode-reader.js +90 -0
- package/dist/src/agent-history/opencode-reader.js.map +1 -0
- package/dist/src/agent-history/pi-reader.d.ts +10 -0
- package/dist/src/agent-history/pi-reader.d.ts.map +1 -0
- package/dist/src/agent-history/pi-reader.js +59 -0
- package/dist/src/agent-history/pi-reader.js.map +1 -0
- package/dist/src/agent-history/readers.d.ts +16 -0
- package/dist/src/agent-history/readers.d.ts.map +1 -0
- package/dist/src/agent-history/readers.js +45 -0
- package/dist/src/agent-history/readers.js.map +1 -0
- package/dist/src/agent-history/service.d.ts +43 -0
- package/dist/src/agent-history/service.d.ts.map +1 -0
- package/dist/src/agent-history/service.js +124 -0
- package/dist/src/agent-history/service.js.map +1 -0
- package/dist/src/agent-history/text.d.ts +10 -0
- package/dist/src/agent-history/text.d.ts.map +1 -0
- package/dist/src/agent-history/text.js +64 -0
- package/dist/src/agent-history/text.js.map +1 -0
- package/dist/src/agent-history/tool-compaction.d.ts +8 -0
- package/dist/src/agent-history/tool-compaction.d.ts.map +1 -0
- package/dist/src/agent-history/tool-compaction.js +134 -0
- package/dist/src/agent-history/tool-compaction.js.map +1 -0
- package/dist/src/cli/herdsman-daemon.d.ts +3 -0
- package/dist/src/cli/herdsman-daemon.d.ts.map +1 -0
- package/dist/src/cli/herdsman-daemon.js +18 -0
- package/dist/src/cli/herdsman-daemon.js.map +1 -0
- package/dist/src/cli/herdsman.d.ts +42 -0
- package/dist/src/cli/herdsman.d.ts.map +1 -0
- package/dist/src/cli/herdsman.js +338 -0
- package/dist/src/cli/herdsman.js.map +1 -0
- package/dist/src/config/load.d.ts +14 -0
- package/dist/src/config/load.d.ts.map +1 -0
- package/dist/src/config/load.js +28 -0
- package/dist/src/config/load.js.map +1 -0
- package/dist/src/config/runtime.d.ts +40 -0
- package/dist/src/config/runtime.d.ts.map +1 -0
- package/dist/src/config/runtime.js +111 -0
- package/dist/src/config/runtime.js.map +1 -0
- package/dist/src/config/schema.d.ts +25 -0
- package/dist/src/config/schema.d.ts.map +1 -0
- package/dist/src/config/schema.js +26 -0
- package/dist/src/config/schema.js.map +1 -0
- package/dist/src/daemon/client.d.ts +9 -0
- package/dist/src/daemon/client.d.ts.map +1 -0
- package/dist/src/daemon/client.js +51 -0
- package/dist/src/daemon/client.js.map +1 -0
- package/dist/src/daemon/herdr-session-watch-manager.d.ts +33 -0
- package/dist/src/daemon/herdr-session-watch-manager.d.ts.map +1 -0
- package/dist/src/daemon/herdr-session-watch-manager.js +245 -0
- package/dist/src/daemon/herdr-session-watch-manager.js.map +1 -0
- package/dist/src/daemon/observability-server.d.ts +60 -0
- package/dist/src/daemon/observability-server.d.ts.map +1 -0
- package/dist/src/daemon/observability-server.js +501 -0
- package/dist/src/daemon/observability-server.js.map +1 -0
- package/dist/src/daemon/process-manager.d.ts +80 -0
- package/dist/src/daemon/process-manager.d.ts.map +1 -0
- package/dist/src/daemon/process-manager.js +178 -0
- package/dist/src/daemon/process-manager.js.map +1 -0
- package/dist/src/daemon/service.d.ts +5 -0
- package/dist/src/daemon/service.d.ts.map +1 -0
- package/dist/src/daemon/service.js +104 -0
- package/dist/src/daemon/service.js.map +1 -0
- package/dist/src/db/agent-context-snapshots.d.ts +11 -0
- package/dist/src/db/agent-context-snapshots.d.ts.map +1 -0
- package/dist/src/db/agent-context-snapshots.js +129 -0
- package/dist/src/db/agent-context-snapshots.js.map +1 -0
- package/dist/src/db/agent-events.d.ts +54 -0
- package/dist/src/db/agent-events.d.ts.map +1 -0
- package/dist/src/db/agent-events.js +124 -0
- package/dist/src/db/agent-events.js.map +1 -0
- package/dist/src/db/agent-history-cache.d.ts +31 -0
- package/dist/src/db/agent-history-cache.d.ts.map +1 -0
- package/dist/src/db/agent-history-cache.js +46 -0
- package/dist/src/db/agent-history-cache.js.map +1 -0
- package/dist/src/db/agent-orchestrator-scopes.d.ts +40 -0
- package/dist/src/db/agent-orchestrator-scopes.d.ts.map +1 -0
- package/dist/src/db/agent-orchestrator-scopes.js +148 -0
- package/dist/src/db/agent-orchestrator-scopes.js.map +1 -0
- package/dist/src/db/agents.d.ts +34 -0
- package/dist/src/db/agents.d.ts.map +1 -0
- package/dist/src/db/agents.js +295 -0
- package/dist/src/db/agents.js.map +1 -0
- package/dist/src/db/apply-migrations.d.ts +4 -0
- package/dist/src/db/apply-migrations.d.ts.map +1 -0
- package/dist/src/db/apply-migrations.js +37 -0
- package/dist/src/db/apply-migrations.js.map +1 -0
- package/dist/src/db/client.d.ts +5 -0
- package/dist/src/db/client.d.ts.map +1 -0
- package/dist/src/db/client.js +6 -0
- package/dist/src/db/client.js.map +1 -0
- package/dist/src/db/herdr-sessions.d.ts +18 -0
- package/dist/src/db/herdr-sessions.d.ts.map +1 -0
- package/dist/src/db/herdr-sessions.js +67 -0
- package/dist/src/db/herdr-sessions.js.map +1 -0
- package/dist/src/db/herdr-workspaces.d.ts +14 -0
- package/dist/src/db/herdr-workspaces.d.ts.map +1 -0
- package/dist/src/db/herdr-workspaces.js +53 -0
- package/dist/src/db/herdr-workspaces.js.map +1 -0
- package/dist/src/db/migrate.d.ts +2 -0
- package/dist/src/db/migrate.d.ts.map +1 -0
- package/dist/src/db/migrate.js +8 -0
- package/dist/src/db/migrate.js.map +1 -0
- package/dist/src/db/schema.d.ts +1258 -0
- package/dist/src/db/schema.d.ts.map +1 -0
- package/dist/src/db/schema.js +102 -0
- package/dist/src/db/schema.js.map +1 -0
- package/dist/src/herdr/pane-identity-resolver.d.ts +14 -0
- package/dist/src/herdr/pane-identity-resolver.d.ts.map +1 -0
- package/dist/src/herdr/pane-identity-resolver.js +34 -0
- package/dist/src/herdr/pane-identity-resolver.js.map +1 -0
- package/dist/src/herdr/session-list.d.ts +14 -0
- package/dist/src/herdr/session-list.d.ts.map +1 -0
- package/dist/src/herdr/session-list.js +44 -0
- package/dist/src/herdr/session-list.js.map +1 -0
- package/dist/src/herdr/session-snapshot.d.ts +10 -0
- package/dist/src/herdr/session-snapshot.d.ts.map +1 -0
- package/dist/src/herdr/session-snapshot.js +19 -0
- package/dist/src/herdr/session-snapshot.js.map +1 -0
- package/dist/src/herdr/socket-client.d.ts +19 -0
- package/dist/src/herdr/socket-client.d.ts.map +1 -0
- package/dist/src/herdr/socket-client.js +230 -0
- package/dist/src/herdr/socket-client.js.map +1 -0
- package/dist/src/observability/agent-context-service.d.ts +29 -0
- package/dist/src/observability/agent-context-service.d.ts.map +1 -0
- package/dist/src/observability/agent-context-service.js +170 -0
- package/dist/src/observability/agent-context-service.js.map +1 -0
- package/dist/src/observability/agent-index-service.d.ts +60 -0
- package/dist/src/observability/agent-index-service.d.ts.map +1 -0
- package/dist/src/observability/agent-index-service.js +376 -0
- package/dist/src/observability/agent-index-service.js.map +1 -0
- package/dist/src/observability/agent-orchestrator-service.d.ts +42 -0
- package/dist/src/observability/agent-orchestrator-service.d.ts.map +1 -0
- package/dist/src/observability/agent-orchestrator-service.js +95 -0
- package/dist/src/observability/agent-orchestrator-service.js.map +1 -0
- package/dist/src/observability/contracts.d.ts +161 -0
- package/dist/src/observability/contracts.d.ts.map +1 -0
- package/dist/src/observability/contracts.js +10 -0
- package/dist/src/observability/contracts.js.map +1 -0
- package/dist/src/observability/schemas.d.ts +49 -0
- package/dist/src/observability/schemas.d.ts.map +1 -0
- package/dist/src/observability/schemas.js +47 -0
- package/dist/src/observability/schemas.js.map +1 -0
- package/dist/src/shared/json-lines.d.ts +7 -0
- package/dist/src/shared/json-lines.d.ts.map +1 -0
- package/dist/src/shared/json-lines.js +25 -0
- package/dist/src/shared/json-lines.js.map +1 -0
- package/drizzle/0000_rare_robin_chapel.sql +90 -0
- package/drizzle/0001_opposite_toxin.sql +13 -0
- package/drizzle/0002_worthless_energizer.sql +2 -0
- package/drizzle/0003_opposite_tarantula.sql +14 -0
- package/drizzle/0004_serious_lorna_dane.sql +1 -0
- package/drizzle/0005_pane_generation.sql +7 -0
- package/drizzle/meta/0000_snapshot.json +621 -0
- package/drizzle/meta/0001_snapshot.json +709 -0
- package/drizzle/meta/0002_snapshot.json +563 -0
- package/drizzle/meta/0003_snapshot.json +657 -0
- package/drizzle/meta/0004_snapshot.json +664 -0
- package/drizzle/meta/_journal.json +12 -0
- package/package.json +82 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { AgentEventStore } from "../db/agent-events.js";
|
|
2
|
+
import type { AgentOrchestratorScopeStore } from "../db/agent-orchestrator-scopes.js";
|
|
3
|
+
import type { AgentStore } from "../db/agents.js";
|
|
4
|
+
import type { AgentEventRecord, AgentOrchestratorChangeReason, AgentOrchestratorState, AgentScope } from "../observability/contracts.js";
|
|
5
|
+
export type AgentOrchestratorChange = {
|
|
6
|
+
current: AgentOrchestratorState;
|
|
7
|
+
previous: AgentOrchestratorState;
|
|
8
|
+
reason: AgentOrchestratorChangeReason;
|
|
9
|
+
};
|
|
10
|
+
export declare class AgentOrchestratorService {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(options: {
|
|
13
|
+
agentEvents: AgentEventStore;
|
|
14
|
+
agents: AgentStore;
|
|
15
|
+
scopes: AgentOrchestratorScopeStore;
|
|
16
|
+
});
|
|
17
|
+
status(scope: AgentScope): AgentOrchestratorState | undefined;
|
|
18
|
+
claim(input: AgentScope & {
|
|
19
|
+
paneId: string;
|
|
20
|
+
terminalId: string;
|
|
21
|
+
}): AgentOrchestratorChange;
|
|
22
|
+
release(input: AgentScope & {
|
|
23
|
+
reason: "disconnected" | "released" | "startup_timeout";
|
|
24
|
+
terminalId: string;
|
|
25
|
+
}): AgentOrchestratorChange | undefined;
|
|
26
|
+
pending(input: AgentScope & {
|
|
27
|
+
limit?: number;
|
|
28
|
+
terminalId: string;
|
|
29
|
+
}): AgentEventRecord[];
|
|
30
|
+
ack(input: AgentScope & {
|
|
31
|
+
eventId: number;
|
|
32
|
+
terminalId: string;
|
|
33
|
+
}): AgentOrchestratorState;
|
|
34
|
+
move(input: {
|
|
35
|
+
from: AgentScope;
|
|
36
|
+
paneId: string;
|
|
37
|
+
terminalId: string;
|
|
38
|
+
to: AgentScope;
|
|
39
|
+
}): AgentOrchestratorChange[];
|
|
40
|
+
persistedOwners(): AgentOrchestratorState[];
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=agent-orchestrator-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-orchestrator-service.d.ts","sourceRoot":"","sources":["../../../src/observability/agent-orchestrator-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EACV,gBAAgB,EAChB,6BAA6B,EAC7B,sBAAsB,EACtB,UAAU,EACX,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,MAAM,EAAE,6BAA6B,CAAC;CACvC,CAAC;AAEF,qBAAa,wBAAwB;;gBAKvB,OAAO,EAAE;QACnB,WAAW,EAAE,eAAe,CAAC;QAC7B,MAAM,EAAE,UAAU,CAAC;QACnB,MAAM,EAAE,2BAA2B,CAAC;KACrC;IAMD,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,sBAAsB,GAAG,SAAS;IAI7D,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,uBAAuB;IAK1F,OAAO,CACL,KAAK,EAAE,UAAU,GAAG;QAClB,MAAM,EAAE,cAAc,GAAG,UAAU,GAAG,iBAAiB,CAAC;QACxD,UAAU,EAAE,MAAM,CAAC;KACpB,GACA,uBAAuB,GAAG,SAAS;IAMtC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,EAAE;IAqCvF,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,sBAAsB;IAyBxF,IAAI,CAAC,KAAK,EAAE;QACV,IAAI,EAAE,UAAU,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,EAAE,EAAE,UAAU,CAAC;KAChB,GAAG,uBAAuB,EAAE;IAM7B,eAAe,IAAI,sBAAsB,EAAE;CAQ5C"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export class AgentOrchestratorService {
|
|
2
|
+
#agentEvents;
|
|
3
|
+
#agents;
|
|
4
|
+
#scopes;
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.#agentEvents = options.agentEvents;
|
|
7
|
+
this.#agents = options.agents;
|
|
8
|
+
this.#scopes = options.scopes;
|
|
9
|
+
}
|
|
10
|
+
status(scope) {
|
|
11
|
+
return this.#scopes.get(scope);
|
|
12
|
+
}
|
|
13
|
+
claim(input) {
|
|
14
|
+
const change = this.#scopes.claim({ ...input, ackedEventId: this.#claimCursor(input) });
|
|
15
|
+
return { ...change, reason: "claimed" };
|
|
16
|
+
}
|
|
17
|
+
release(input) {
|
|
18
|
+
const change = this.#scopes.releaseIfOwner(input);
|
|
19
|
+
if (!change.changed || !change.current || !change.previous)
|
|
20
|
+
return undefined;
|
|
21
|
+
return { current: change.current, previous: change.previous, reason: input.reason };
|
|
22
|
+
}
|
|
23
|
+
pending(input) {
|
|
24
|
+
const state = this.#scopes.get(input);
|
|
25
|
+
if (!state?.owner || state.owner.terminalId !== input.terminalId)
|
|
26
|
+
return [];
|
|
27
|
+
const limit = input.limit ?? 100;
|
|
28
|
+
const validAgents = new Map(this.#agents
|
|
29
|
+
.list(input)
|
|
30
|
+
.map((agent) => [agent.id, agent.paneId]));
|
|
31
|
+
const pending = [];
|
|
32
|
+
let afterEventId = state.ackedEventId;
|
|
33
|
+
let scanned = 0;
|
|
34
|
+
while (pending.length < limit && scanned < 1_000) {
|
|
35
|
+
const batch = this.#agentEvents.listAfter({
|
|
36
|
+
...input,
|
|
37
|
+
afterEventId,
|
|
38
|
+
limit: Math.min(100, 1_000 - scanned),
|
|
39
|
+
});
|
|
40
|
+
if (batch.length === 0)
|
|
41
|
+
break;
|
|
42
|
+
scanned += batch.length;
|
|
43
|
+
afterEventId = batch.at(-1)?.id ?? afterEventId;
|
|
44
|
+
for (const event of batch) {
|
|
45
|
+
// Strict identity prevents an old event from being delivered after a pane is rebound.
|
|
46
|
+
const valid = event.agentId !== null &&
|
|
47
|
+
validAgents.get(event.agentId) === event.paneId &&
|
|
48
|
+
event.herdrSessionName === input.herdrSessionName;
|
|
49
|
+
if (valid && event.terminalId !== null && event.terminalId !== input.terminalId) {
|
|
50
|
+
pending.push(event);
|
|
51
|
+
}
|
|
52
|
+
if (pending.length === limit)
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return pending;
|
|
57
|
+
}
|
|
58
|
+
ack(input) {
|
|
59
|
+
const state = this.#scopes.get(input);
|
|
60
|
+
if (!state?.owner || state.owner.terminalId !== input.terminalId) {
|
|
61
|
+
throw new Error("Only the current orchestrator can acknowledge notifications");
|
|
62
|
+
}
|
|
63
|
+
if (input.eventId <= state.ackedEventId)
|
|
64
|
+
return state;
|
|
65
|
+
const next = this.#agentEvents.nextDeliverableAfter({
|
|
66
|
+
...input,
|
|
67
|
+
afterEventId: state.ackedEventId,
|
|
68
|
+
ownerTerminalId: input.terminalId,
|
|
69
|
+
});
|
|
70
|
+
if (next?.id === input.eventId)
|
|
71
|
+
return this.#scopes.ack(input);
|
|
72
|
+
if (!next) {
|
|
73
|
+
const candidate = this.#agentEvents.get(input.eventId);
|
|
74
|
+
if (candidate.herdrSessionName === input.herdrSessionName &&
|
|
75
|
+
candidate.workspaceId === input.workspaceId &&
|
|
76
|
+
candidate.id > state.ackedEventId) {
|
|
77
|
+
return this.#scopes.ack(input);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
throw new Error("Only the next pending orchestrator event can be acknowledged");
|
|
81
|
+
}
|
|
82
|
+
move(input) {
|
|
83
|
+
return this.#scopes
|
|
84
|
+
.moveOwner({ ...input, targetAckedEventId: this.#claimCursor(input.to) })
|
|
85
|
+
.map((change) => ({ ...change, reason: "moved" }));
|
|
86
|
+
}
|
|
87
|
+
persistedOwners() {
|
|
88
|
+
return this.#scopes.listOwned();
|
|
89
|
+
}
|
|
90
|
+
#claimCursor(scope) {
|
|
91
|
+
const current = this.#scopes.get(scope);
|
|
92
|
+
return current?.owner ? current.ackedEventId : this.#agentEvents.latestEventId(scope);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=agent-orchestrator-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-orchestrator-service.js","sourceRoot":"","sources":["../../../src/observability/agent-orchestrator-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
export type AgentStatus = "blocked" | "done" | "idle" | "unknown" | "working";
|
|
2
|
+
export type HerdrSessionRecord = {
|
|
3
|
+
lastScannedAt: Date | null;
|
|
4
|
+
name: string;
|
|
5
|
+
running: boolean;
|
|
6
|
+
sessionDir: string;
|
|
7
|
+
socketPath: string;
|
|
8
|
+
updatedAt: Date;
|
|
9
|
+
};
|
|
10
|
+
export type HerdrWorkspaceRecord = {
|
|
11
|
+
agentStatus: AgentStatus;
|
|
12
|
+
focused: boolean;
|
|
13
|
+
herdrSessionName: string;
|
|
14
|
+
label: string | null;
|
|
15
|
+
lastSeenAt: Date;
|
|
16
|
+
workspaceId: string;
|
|
17
|
+
};
|
|
18
|
+
export type AgentSessionRef = {
|
|
19
|
+
agent: string;
|
|
20
|
+
kind: "id" | "path";
|
|
21
|
+
source: string;
|
|
22
|
+
value: string;
|
|
23
|
+
};
|
|
24
|
+
export type AgentIndexRecord = {
|
|
25
|
+
agent: string | null;
|
|
26
|
+
agentSession: AgentSessionRef | null;
|
|
27
|
+
agentStatus: AgentStatus;
|
|
28
|
+
cwd: string | null;
|
|
29
|
+
firstSeenAt: Date;
|
|
30
|
+
focused: boolean;
|
|
31
|
+
foregroundCwd: string | null;
|
|
32
|
+
herdrSessionName: string;
|
|
33
|
+
id: string;
|
|
34
|
+
lastSeenAt: Date;
|
|
35
|
+
name: string | null;
|
|
36
|
+
paneId: string;
|
|
37
|
+
paneRevision: number | null;
|
|
38
|
+
paneGeneration?: string | null;
|
|
39
|
+
tabId: string | null;
|
|
40
|
+
terminalId: string | null;
|
|
41
|
+
workspaceId: string;
|
|
42
|
+
};
|
|
43
|
+
export type AgentHistoryRef = {
|
|
44
|
+
kind: "agent_session" | "discovered_file";
|
|
45
|
+
path?: string;
|
|
46
|
+
source: "claude-jsonl" | "codex-jsonl" | "gemini-json" | "opencode-sqlite" | "pi-jsonl" | "unknown";
|
|
47
|
+
value: string;
|
|
48
|
+
};
|
|
49
|
+
export type AgentHistoryExcerpt = {
|
|
50
|
+
ref: string;
|
|
51
|
+
text: string;
|
|
52
|
+
timestamp: string | null;
|
|
53
|
+
};
|
|
54
|
+
export type CompactToolResult = {
|
|
55
|
+
compaction: {
|
|
56
|
+
mode: "failure_focus" | "grouped_matches" | "structured_summary" | "truncated_passthrough" | "web_sources" | "unknown";
|
|
57
|
+
originalChars: number;
|
|
58
|
+
returnedChars: number;
|
|
59
|
+
};
|
|
60
|
+
isError: boolean;
|
|
61
|
+
ref: string;
|
|
62
|
+
text: string;
|
|
63
|
+
toolName: string;
|
|
64
|
+
};
|
|
65
|
+
export type CompactAgentHistory = {
|
|
66
|
+
historyRef: AgentHistoryRef | null;
|
|
67
|
+
lastAssistantMessage: AgentHistoryExcerpt | null;
|
|
68
|
+
lastToolResult: CompactToolResult | null;
|
|
69
|
+
lastUserMessage: AgentHistoryExcerpt | null;
|
|
70
|
+
messageCount: number;
|
|
71
|
+
source: string | null;
|
|
72
|
+
updatedAt: string | null;
|
|
73
|
+
};
|
|
74
|
+
export type AgentHistorySourceFingerprint = {
|
|
75
|
+
mtimeMs: number;
|
|
76
|
+
path: string;
|
|
77
|
+
size: number;
|
|
78
|
+
};
|
|
79
|
+
export type AgentContextSnapshotRecord = {
|
|
80
|
+
agentId: string;
|
|
81
|
+
compactHistory: CompactAgentHistory;
|
|
82
|
+
historyRef: AgentHistoryRef | null;
|
|
83
|
+
paneRevision: number | null;
|
|
84
|
+
sourceFingerprint: AgentHistorySourceFingerprint | null;
|
|
85
|
+
updatedAt: Date;
|
|
86
|
+
};
|
|
87
|
+
export type AgentHistoryMessage = {
|
|
88
|
+
compact?: CompactToolResult;
|
|
89
|
+
ref: string;
|
|
90
|
+
role: "assistant" | "tool_result" | "user";
|
|
91
|
+
text: string;
|
|
92
|
+
timestamp: string | null;
|
|
93
|
+
toolName?: string;
|
|
94
|
+
};
|
|
95
|
+
export type AgentListItem = AgentIndexRecord & {
|
|
96
|
+
history: Pick<CompactAgentHistory, "lastAssistantMessage" | "lastUserMessage" | "source" | "updatedAt">;
|
|
97
|
+
};
|
|
98
|
+
export type AgentGetResult = AgentIndexRecord & {
|
|
99
|
+
history: CompactAgentHistory;
|
|
100
|
+
};
|
|
101
|
+
export type AgentReadResult = AgentIndexRecord & {
|
|
102
|
+
historyRef: AgentHistoryRef | null;
|
|
103
|
+
messages: AgentHistoryMessage[];
|
|
104
|
+
};
|
|
105
|
+
export type AgentEventType = "agent.blocked" | "agent.done" | "agent.idle" | "agent.status.changed" | "agent.tool.failed";
|
|
106
|
+
export type AgentEventRecord = {
|
|
107
|
+
agentId: string | null;
|
|
108
|
+
compactHistory: CompactAgentHistory | null;
|
|
109
|
+
createdAt: Date;
|
|
110
|
+
herdrSessionName: string;
|
|
111
|
+
id: number;
|
|
112
|
+
paneId: string | null;
|
|
113
|
+
paneGeneration?: string | null;
|
|
114
|
+
payload: unknown;
|
|
115
|
+
terminalId: string | null;
|
|
116
|
+
type: AgentEventType;
|
|
117
|
+
workspaceId: string | null;
|
|
118
|
+
};
|
|
119
|
+
export type AgentScope = {
|
|
120
|
+
herdrSessionName: string;
|
|
121
|
+
workspaceId: string;
|
|
122
|
+
};
|
|
123
|
+
export type AgentWorkspaceContextSnapshot = AgentScope & {
|
|
124
|
+
agents: AgentListItem[];
|
|
125
|
+
updatedAt: string;
|
|
126
|
+
};
|
|
127
|
+
export type AgentOrchestratorOwner = {
|
|
128
|
+
paneId: string;
|
|
129
|
+
terminalId: string;
|
|
130
|
+
};
|
|
131
|
+
export type AgentOrchestratorState = AgentScope & {
|
|
132
|
+
ackedEventId: number;
|
|
133
|
+
owner: AgentOrchestratorOwner | null;
|
|
134
|
+
updatedAt: Date;
|
|
135
|
+
};
|
|
136
|
+
export type AgentOrchestratorWireState = AgentScope & {
|
|
137
|
+
ackedEventId: number;
|
|
138
|
+
owner: AgentOrchestratorOwner | null;
|
|
139
|
+
updatedAt: string;
|
|
140
|
+
};
|
|
141
|
+
export type AgentOrchestratorChangeReason = "claimed" | "disconnected" | "moved" | "released" | "startup_timeout";
|
|
142
|
+
export type AgentOrchestratorChanged = {
|
|
143
|
+
current: AgentOrchestratorWireState;
|
|
144
|
+
previous: AgentOrchestratorWireState;
|
|
145
|
+
reason: AgentOrchestratorChangeReason;
|
|
146
|
+
};
|
|
147
|
+
export type PiPresenceRegistration = {
|
|
148
|
+
herdrSocketPath: string;
|
|
149
|
+
paneId: string;
|
|
150
|
+
sessionRef: AgentSessionRef;
|
|
151
|
+
subscriberId: string;
|
|
152
|
+
subscriberKind: "pi";
|
|
153
|
+
workspaceId: string;
|
|
154
|
+
};
|
|
155
|
+
export type AgentQueryScope = {
|
|
156
|
+
all?: boolean;
|
|
157
|
+
herdrSessionName?: string;
|
|
158
|
+
workspaceId?: string;
|
|
159
|
+
};
|
|
160
|
+
export declare function parseAgentStatus(value: unknown): AgentStatus;
|
|
161
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/observability/contracts.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,eAAe,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,WAAW,CAAC;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,WAAW,EAAE,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,eAAe,GAAG,iBAAiB,CAAC;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EACF,cAAc,GACd,aAAa,GACb,aAAa,GACb,iBAAiB,GACjB,UAAU,GACV,SAAS,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE;QACV,IAAI,EACA,eAAe,GACf,iBAAiB,GACjB,oBAAoB,GACpB,uBAAuB,GACvB,aAAa,GACb,SAAS,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,oBAAoB,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACjD,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,eAAe,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,mBAAmB,CAAC;IACpC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACxD,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,MAAM,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG;IAC7C,OAAO,EAAE,IAAI,CACX,mBAAmB,EACnB,sBAAsB,GAAG,iBAAiB,GAAG,QAAQ,GAAG,WAAW,CACpE,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG;IAC9C,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC/C,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB,eAAe,GACf,YAAY,GACZ,YAAY,GACZ,sBAAsB,GACtB,mBAAmB,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,cAAc,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,IAAI,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,UAAU,GAAG;IACvD,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,UAAU,GAAG;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GACrC,SAAS,GACT,cAAc,GACd,OAAO,GACP,UAAU,GACV,iBAAiB,CAAC;AAEtB,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,0BAA0B,CAAC;IACpC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,MAAM,EAAE,6BAA6B,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAQ5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/observability/contracts.ts"],"names":[],"mappings":"AAkNA,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,KAAK,KAAK,SAAS;QACxB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,SAAS;QACnB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export declare const agentSessionRefSchema: import("@sinclair/typebox").TObject<{
|
|
2
|
+
agent: import("@sinclair/typebox").TString;
|
|
3
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"id">, import("@sinclair/typebox").TLiteral<"path">]>;
|
|
4
|
+
source: import("@sinclair/typebox").TString;
|
|
5
|
+
value: import("@sinclair/typebox").TString;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const agentListInputSchema: import("@sinclair/typebox").TObject<{
|
|
8
|
+
all: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
9
|
+
herdrSessionName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
10
|
+
workspaceId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
11
|
+
}>;
|
|
12
|
+
export declare const agentGetInputSchema: import("@sinclair/typebox").TObject<{
|
|
13
|
+
herdrSessionName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
14
|
+
target: import("@sinclair/typebox").TString;
|
|
15
|
+
workspaceId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
16
|
+
}>;
|
|
17
|
+
export declare const agentReadInputSchema: import("@sinclair/typebox").TObject<{
|
|
18
|
+
herdrSessionName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
19
|
+
limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
20
|
+
target: import("@sinclair/typebox").TString;
|
|
21
|
+
workspaceId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
22
|
+
}>;
|
|
23
|
+
export declare const agentEventsInputSchema: import("@sinclair/typebox").TObject<{
|
|
24
|
+
afterEventId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
25
|
+
herdrSessionName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
26
|
+
limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
27
|
+
workspaceId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
28
|
+
}>;
|
|
29
|
+
export declare const agentOrchestratorRegisterInputSchema: import("@sinclair/typebox").TObject<{
|
|
30
|
+
herdrSocketPath: import("@sinclair/typebox").TString;
|
|
31
|
+
paneId: import("@sinclair/typebox").TString;
|
|
32
|
+
sessionRef: import("@sinclair/typebox").TObject<{
|
|
33
|
+
agent: import("@sinclair/typebox").TLiteral<"pi">;
|
|
34
|
+
kind: import("@sinclair/typebox").TLiteral<"path">;
|
|
35
|
+
source: import("@sinclair/typebox").TString;
|
|
36
|
+
value: import("@sinclair/typebox").TString;
|
|
37
|
+
}>;
|
|
38
|
+
subscriberId: import("@sinclair/typebox").TString;
|
|
39
|
+
subscriberKind: import("@sinclair/typebox").TLiteral<"pi">;
|
|
40
|
+
workspaceId: import("@sinclair/typebox").TString;
|
|
41
|
+
}>;
|
|
42
|
+
export declare const agentOrchestratorSetInputSchema: import("@sinclair/typebox").TObject<{
|
|
43
|
+
enabled: import("@sinclair/typebox").TBoolean;
|
|
44
|
+
}>;
|
|
45
|
+
export declare const agentOrchestratorGetInputSchema: import("@sinclair/typebox").TObject<{}>;
|
|
46
|
+
export declare const agentOrchestratorAckInputSchema: import("@sinclair/typebox").TObject<{
|
|
47
|
+
eventId: import("@sinclair/typebox").TInteger;
|
|
48
|
+
}>;
|
|
49
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/observability/schemas.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB;;;;;EAQjC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;EAOhC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;EAO/B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;EAQhC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;EAQlC,CAAC;AAYF,eAAO,MAAM,oCAAoC;;;;;;;;;;;;EAUhD,CAAC;AAEF,eAAO,MAAM,+BAA+B;;EAG3C,CAAC;AAEF,eAAO,MAAM,+BAA+B,yCAAmD,CAAC;AAEhG,eAAO,MAAM,+BAA+B;;EAG3C,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Type } from "@sinclair/typebox";
|
|
2
|
+
export const agentSessionRefSchema = Type.Object({
|
|
3
|
+
agent: Type.String({ minLength: 1 }),
|
|
4
|
+
kind: Type.Union([Type.Literal("id"), Type.Literal("path")]),
|
|
5
|
+
source: Type.String({ minLength: 1 }),
|
|
6
|
+
value: Type.String({ minLength: 1 }),
|
|
7
|
+
}, { additionalProperties: false });
|
|
8
|
+
export const agentListInputSchema = Type.Object({
|
|
9
|
+
all: Type.Optional(Type.Boolean()),
|
|
10
|
+
herdrSessionName: Type.Optional(Type.String({ minLength: 1 })),
|
|
11
|
+
workspaceId: Type.Optional(Type.String({ minLength: 1 })),
|
|
12
|
+
}, { additionalProperties: false });
|
|
13
|
+
export const agentGetInputSchema = Type.Object({
|
|
14
|
+
herdrSessionName: Type.Optional(Type.String({ minLength: 1 })),
|
|
15
|
+
target: Type.String({ minLength: 1 }),
|
|
16
|
+
workspaceId: Type.Optional(Type.String({ minLength: 1 })),
|
|
17
|
+
}, { additionalProperties: false });
|
|
18
|
+
export const agentReadInputSchema = Type.Object({
|
|
19
|
+
herdrSessionName: Type.Optional(Type.String({ minLength: 1 })),
|
|
20
|
+
limit: Type.Optional(Type.Integer({ minimum: 1, maximum: 500 })),
|
|
21
|
+
target: Type.String({ minLength: 1 }),
|
|
22
|
+
workspaceId: Type.Optional(Type.String({ minLength: 1 })),
|
|
23
|
+
}, { additionalProperties: false });
|
|
24
|
+
export const agentEventsInputSchema = Type.Object({
|
|
25
|
+
afterEventId: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
26
|
+
herdrSessionName: Type.Optional(Type.String({ minLength: 1 })),
|
|
27
|
+
limit: Type.Optional(Type.Integer({ minimum: 1, maximum: 500 })),
|
|
28
|
+
workspaceId: Type.Optional(Type.String({ minLength: 1 })),
|
|
29
|
+
}, { additionalProperties: false });
|
|
30
|
+
const piPresenceSessionRefSchema = Type.Object({
|
|
31
|
+
agent: Type.Literal("pi"),
|
|
32
|
+
kind: Type.Literal("path"),
|
|
33
|
+
source: Type.String({ minLength: 1 }),
|
|
34
|
+
value: Type.String({ minLength: 1 }),
|
|
35
|
+
}, { additionalProperties: false });
|
|
36
|
+
export const agentOrchestratorRegisterInputSchema = Type.Object({
|
|
37
|
+
herdrSocketPath: Type.String({ minLength: 1 }),
|
|
38
|
+
paneId: Type.String({ minLength: 1 }),
|
|
39
|
+
sessionRef: piPresenceSessionRefSchema,
|
|
40
|
+
subscriberId: Type.String({ minLength: 1 }),
|
|
41
|
+
subscriberKind: Type.Literal("pi"),
|
|
42
|
+
workspaceId: Type.String({ minLength: 1 }),
|
|
43
|
+
}, { additionalProperties: false });
|
|
44
|
+
export const agentOrchestratorSetInputSchema = Type.Object({ enabled: Type.Boolean() }, { additionalProperties: false });
|
|
45
|
+
export const agentOrchestratorGetInputSchema = Type.Object({}, { additionalProperties: false });
|
|
46
|
+
export const agentOrchestratorAckInputSchema = Type.Object({ eventId: Type.Integer({ minimum: 1 }) }, { additionalProperties: false });
|
|
47
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/observability/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-lines.d.ts","sourceRoot":"","sources":["../../../src/shared/json-lines.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQrD;AAED,qBAAa,eAAe;;IAG1B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE;IAS9B,KAAK,IAAI,OAAO,EAAE;CASnB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function encodeJsonLine(value) {
|
|
2
|
+
const encoded = JSON.stringify(value);
|
|
3
|
+
if (encoded === undefined) {
|
|
4
|
+
throw new TypeError("JSON Lines values must be JSON-serializable");
|
|
5
|
+
}
|
|
6
|
+
return `${encoded}\n`;
|
|
7
|
+
}
|
|
8
|
+
export class JsonLineDecoder {
|
|
9
|
+
#buffer = "";
|
|
10
|
+
push(chunk) {
|
|
11
|
+
this.#buffer += chunk;
|
|
12
|
+
const lines = this.#buffer.split("\n");
|
|
13
|
+
this.#buffer = lines.pop() ?? "";
|
|
14
|
+
return lines.filter((line) => line.length > 0).map((line) => JSON.parse(line));
|
|
15
|
+
}
|
|
16
|
+
flush() {
|
|
17
|
+
if (this.#buffer.length === 0) {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
const line = this.#buffer;
|
|
21
|
+
this.#buffer = "";
|
|
22
|
+
return [JSON.parse(line)];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=json-lines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-lines.js","sourceRoot":"","sources":["../../../src/shared/json-lines.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,GAAG,OAAO,IAAI,CAAC;AACxB,CAAC;AAED,MAAM,OAAO,eAAe;IAC1B,OAAO,GAAG,EAAE,CAAC;IAEb,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;QAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAEjC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
CREATE TABLE `agent_events` (
|
|
2
|
+
`agent_id` text,
|
|
3
|
+
`compact_history_json` text,
|
|
4
|
+
`created_at` integer NOT NULL,
|
|
5
|
+
`herdr_session_name` text NOT NULL,
|
|
6
|
+
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
7
|
+
`idempotency_key` text,
|
|
8
|
+
`pane_id` text,
|
|
9
|
+
`payload_json` text NOT NULL,
|
|
10
|
+
`type` text NOT NULL,
|
|
11
|
+
`workspace_id` text,
|
|
12
|
+
FOREIGN KEY (`agent_id`) REFERENCES `agents`(`id`) ON UPDATE no action ON DELETE set null,
|
|
13
|
+
FOREIGN KEY (`herdr_session_name`) REFERENCES `herdr_sessions`(`name`) ON UPDATE no action ON DELETE cascade
|
|
14
|
+
);
|
|
15
|
+
--> statement-breakpoint
|
|
16
|
+
CREATE UNIQUE INDEX `agent_events_session_idempotency_idx` ON `agent_events` (`herdr_session_name`,`idempotency_key`);--> statement-breakpoint
|
|
17
|
+
CREATE TABLE `agent_history_cache` (
|
|
18
|
+
`compact_history_json` text NOT NULL,
|
|
19
|
+
`formatter_version` text NOT NULL,
|
|
20
|
+
`history_ref_json` text NOT NULL,
|
|
21
|
+
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
22
|
+
`source_mtime_ms` integer NOT NULL,
|
|
23
|
+
`source_path` text NOT NULL,
|
|
24
|
+
`source_size` integer NOT NULL,
|
|
25
|
+
`updated_at` integer NOT NULL
|
|
26
|
+
);
|
|
27
|
+
--> statement-breakpoint
|
|
28
|
+
CREATE UNIQUE INDEX `agent_history_cache_source_formatter_idx` ON `agent_history_cache` (`source_path`,`formatter_version`);--> statement-breakpoint
|
|
29
|
+
CREATE TABLE `agent_notification_cursors` (
|
|
30
|
+
`acked_event_id` integer DEFAULT 0 NOT NULL,
|
|
31
|
+
`auto_resume_event_id` integer DEFAULT 0 NOT NULL,
|
|
32
|
+
`delivered_event_id` integer DEFAULT 0 NOT NULL,
|
|
33
|
+
`hidden_context_event_id` integer DEFAULT 0 NOT NULL,
|
|
34
|
+
`subscription_id` text PRIMARY KEY NOT NULL,
|
|
35
|
+
`updated_at` integer NOT NULL,
|
|
36
|
+
FOREIGN KEY (`subscription_id`) REFERENCES `agent_notification_subscriptions`(`id`) ON UPDATE no action ON DELETE cascade
|
|
37
|
+
);
|
|
38
|
+
--> statement-breakpoint
|
|
39
|
+
CREATE TABLE `agent_notification_subscriptions` (
|
|
40
|
+
`auto_resume` integer NOT NULL,
|
|
41
|
+
`created_at` integer NOT NULL,
|
|
42
|
+
`herdr_session_name` text,
|
|
43
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
44
|
+
`subscriber_id` text NOT NULL,
|
|
45
|
+
`subscriber_kind` text NOT NULL,
|
|
46
|
+
`updated_at` integer NOT NULL,
|
|
47
|
+
`workspace_id` text
|
|
48
|
+
);
|
|
49
|
+
--> statement-breakpoint
|
|
50
|
+
CREATE UNIQUE INDEX `agent_notification_subscriptions_scope_subscriber_idx` ON `agent_notification_subscriptions` (`herdr_session_name`,`workspace_id`,`subscriber_id`);--> statement-breakpoint
|
|
51
|
+
CREATE TABLE `agents` (
|
|
52
|
+
`agent` text,
|
|
53
|
+
`agent_session_json` text,
|
|
54
|
+
`agent_status` text NOT NULL,
|
|
55
|
+
`cwd` text,
|
|
56
|
+
`first_seen_at` integer NOT NULL,
|
|
57
|
+
`focused` integer NOT NULL,
|
|
58
|
+
`foreground_cwd` text,
|
|
59
|
+
`herdr_session_name` text NOT NULL,
|
|
60
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
61
|
+
`last_seen_at` integer NOT NULL,
|
|
62
|
+
`pane_id` text NOT NULL,
|
|
63
|
+
`tab_id` text,
|
|
64
|
+
`terminal_id` text,
|
|
65
|
+
`workspace_id` text NOT NULL,
|
|
66
|
+
FOREIGN KEY (`herdr_session_name`) REFERENCES `herdr_sessions`(`name`) ON UPDATE no action ON DELETE cascade
|
|
67
|
+
);
|
|
68
|
+
--> statement-breakpoint
|
|
69
|
+
CREATE UNIQUE INDEX `agents_session_pane_idx` ON `agents` (`herdr_session_name`,`pane_id`);--> statement-breakpoint
|
|
70
|
+
CREATE UNIQUE INDEX `agents_session_terminal_idx` ON `agents` (`herdr_session_name`,`terminal_id`);--> statement-breakpoint
|
|
71
|
+
CREATE TABLE `herdr_sessions` (
|
|
72
|
+
`last_scanned_at` integer,
|
|
73
|
+
`name` text PRIMARY KEY NOT NULL,
|
|
74
|
+
`running` integer NOT NULL,
|
|
75
|
+
`session_dir` text NOT NULL,
|
|
76
|
+
`socket_path` text NOT NULL,
|
|
77
|
+
`updated_at` integer NOT NULL
|
|
78
|
+
);
|
|
79
|
+
--> statement-breakpoint
|
|
80
|
+
CREATE TABLE `herdr_workspaces` (
|
|
81
|
+
`agent_status` text NOT NULL,
|
|
82
|
+
`focused` integer NOT NULL,
|
|
83
|
+
`herdr_session_name` text NOT NULL,
|
|
84
|
+
`label` text,
|
|
85
|
+
`last_seen_at` integer NOT NULL,
|
|
86
|
+
`workspace_id` text NOT NULL,
|
|
87
|
+
FOREIGN KEY (`herdr_session_name`) REFERENCES `herdr_sessions`(`name`) ON UPDATE no action ON DELETE cascade
|
|
88
|
+
);
|
|
89
|
+
--> statement-breakpoint
|
|
90
|
+
CREATE UNIQUE INDEX `herdr_workspaces_session_workspace_idx` ON `herdr_workspaces` (`herdr_session_name`,`workspace_id`);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
CREATE TABLE `agent_orchestrator_scopes` (
|
|
2
|
+
`acked_event_id` integer NOT NULL,
|
|
3
|
+
`created_at` integer NOT NULL,
|
|
4
|
+
`herdr_session_name` text NOT NULL,
|
|
5
|
+
`owner_pane_id` text,
|
|
6
|
+
`owner_terminal_id` text,
|
|
7
|
+
`updated_at` integer NOT NULL,
|
|
8
|
+
`workspace_id` text NOT NULL,
|
|
9
|
+
PRIMARY KEY(`herdr_session_name`, `workspace_id`),
|
|
10
|
+
FOREIGN KEY (`herdr_session_name`) REFERENCES `herdr_sessions`(`name`) ON UPDATE no action ON DELETE cascade
|
|
11
|
+
);
|
|
12
|
+
--> statement-breakpoint
|
|
13
|
+
ALTER TABLE `agent_events` ADD `terminal_id` text;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
CREATE TABLE `agent_context_snapshots` (
|
|
2
|
+
`agent_id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`compact_history_json` text NOT NULL,
|
|
4
|
+
`history_ref_json` text,
|
|
5
|
+
`pane_revision` integer,
|
|
6
|
+
`source_path` text,
|
|
7
|
+
`source_mtime_ms` integer,
|
|
8
|
+
`source_size` integer,
|
|
9
|
+
`updated_at` integer NOT NULL,
|
|
10
|
+
FOREIGN KEY (`agent_id`) REFERENCES `agents`(`id`) ON UPDATE no action ON DELETE cascade
|
|
11
|
+
);
|
|
12
|
+
--> statement-breakpoint
|
|
13
|
+
ALTER TABLE `agents` ADD `agent_session_hint_json` text;--> statement-breakpoint
|
|
14
|
+
ALTER TABLE `agents` ADD `pane_revision` integer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ALTER TABLE `agents` ADD `name` text;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
ALTER TABLE `agents` ADD `pane_generation` text;
|
|
2
|
+
--> statement-breakpoint
|
|
3
|
+
ALTER TABLE `agent_events` ADD `pane_generation` text;
|
|
4
|
+
--> statement-breakpoint
|
|
5
|
+
ALTER TABLE `agent_events` ADD `deliverable` integer NOT NULL DEFAULT 1;
|
|
6
|
+
--> statement-breakpoint
|
|
7
|
+
CREATE INDEX `agent_events_session_pane_generation_idx` ON `agent_events` (`herdr_session_name`,`pane_id`,`pane_generation`);
|