@tt-a1i/hive 0.6.0-alpha.4 → 0.6.0-alpha.7
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/CHANGELOG.md +81 -0
- package/README.en.md +272 -0
- package/README.md +103 -143
- package/dist/src/cli/team.d.ts +8 -0
- package/dist/src/cli/team.js +69 -26
- package/dist/src/cli/team.js.map +1 -1
- package/dist/src/server/agent-launch-cache.js +2 -2
- package/dist/src/server/agent-launch-cache.js.map +1 -1
- package/dist/src/server/agent-launch-resolver.d.ts +4 -0
- package/dist/src/server/agent-launch-resolver.js +33 -0
- package/dist/src/server/agent-launch-resolver.js.map +1 -0
- package/dist/src/server/agent-run-store.d.ts +1 -2
- package/dist/src/server/agent-run-store.js +5 -13
- package/dist/src/server/agent-run-store.js.map +1 -1
- package/dist/src/server/agent-runtime-ports.d.ts +1 -2
- package/dist/src/server/agent-session-store.d.ts +1 -1
- package/dist/src/server/agent-session-store.js +28 -34
- package/dist/src/server/agent-session-store.js.map +1 -1
- package/dist/src/server/agent-startup-instructions.js +1 -1
- package/dist/src/server/agent-startup-instructions.js.map +1 -1
- package/dist/src/server/app-state-store.d.ts +1 -1
- package/dist/src/server/app-state-store.js +1 -3
- package/dist/src/server/app-state-store.js.map +1 -1
- package/dist/src/server/command-preset-store.d.ts +1 -1
- package/dist/src/server/command-preset-store.js +2 -8
- package/dist/src/server/command-preset-store.js.map +1 -1
- package/dist/src/server/dispatch-ledger-store.d.ts +18 -4
- package/dist/src/server/dispatch-ledger-store.js +0 -66
- package/dist/src/server/dispatch-ledger-store.js.map +1 -1
- package/dist/src/server/hive-team-guidance.js +8 -4
- package/dist/src/server/hive-team-guidance.js.map +1 -1
- package/dist/src/server/message-log-store.d.ts +1 -3
- package/dist/src/server/message-log-store.js +2 -59
- package/dist/src/server/message-log-store.js.map +1 -1
- package/dist/src/server/orchestrator-autostart.js +12 -2
- package/dist/src/server/orchestrator-autostart.js.map +1 -1
- package/dist/src/server/orchestrator-launch.js +2 -27
- package/dist/src/server/orchestrator-launch.js.map +1 -1
- package/dist/src/server/recovery-summary.js +1 -1
- package/dist/src/server/recovery-summary.js.map +1 -1
- package/dist/src/server/role-template-store.d.ts +1 -1
- package/dist/src/server/role-template-store.js +2 -6
- package/dist/src/server/role-template-store.js.map +1 -1
- package/dist/src/server/route-types.d.ts +2 -0
- package/dist/src/server/routes-workspaces.js +26 -18
- package/dist/src/server/routes-workspaces.js.map +1 -1
- package/dist/src/server/runtime-database.d.ts +1 -1
- package/dist/src/server/runtime-database.js +8 -4
- package/dist/src/server/runtime-database.js.map +1 -1
- package/dist/src/server/runtime-store-helpers.js +2 -4
- package/dist/src/server/runtime-store-helpers.js.map +1 -1
- package/dist/src/server/runtime-store.d.ts +1 -1
- package/dist/src/server/runtime-store.js +1 -1
- package/dist/src/server/runtime-store.js.map +1 -1
- package/dist/src/server/settings-store.d.ts +1 -1
- package/dist/src/server/settings-store.js.map +1 -1
- package/dist/src/server/team-list-enrichment.d.ts +22 -0
- package/dist/src/server/team-list-enrichment.js +41 -0
- package/dist/src/server/team-list-enrichment.js.map +1 -0
- package/dist/src/server/team-list-serializer.d.ts +1 -1
- package/dist/src/server/team-list-serializer.js +3 -2
- package/dist/src/server/team-list-serializer.js.map +1 -1
- package/dist/src/server/terminal-state-mirror.d.ts +1 -1
- package/dist/src/server/terminal-state-mirror.js +1 -1
- package/dist/src/server/terminal-state-mirror.js.map +1 -1
- package/dist/src/server/worker-output-tracker.d.ts +1 -1
- package/dist/src/server/worker-output-tracker.js +2 -2
- package/dist/src/server/worker-output-tracker.js.map +1 -1
- package/dist/src/server/workspace-store-hydration.d.ts +2 -2
- package/dist/src/server/workspace-store-hydration.js +1 -4
- package/dist/src/server/workspace-store-hydration.js.map +1 -1
- package/dist/src/server/workspace-store.d.ts +1 -1
- package/dist/src/server/workspace-store.js +5 -5
- package/dist/src/server/workspace-store.js.map +1 -1
- package/dist/src/shared/types.d.ts +15 -3
- package/package.json +7 -3
- package/web/dist/assets/addon-clipboard-wHJhZAA4.js +1 -0
- package/web/dist/assets/addon-unicode11-Bt8F3D7-.js +7 -0
- package/web/dist/assets/addon-web-links-DIbG5aQx.js +1 -0
- package/web/dist/assets/addon-webgl-DCtw1yLn.js +64 -0
- package/web/dist/assets/index-B8F00qo4.css +1 -0
- package/web/dist/assets/index-CGvIlvht.js +80 -0
- package/web/dist/cli-icons/claude.png +0 -0
- package/web/dist/cli-icons/codex.png +0 -0
- package/web/dist/cli-icons/gemini.png +0 -0
- package/web/dist/cli-icons/opencode.svg +18 -0
- package/web/dist/index.html +2 -2
- package/README.zh-CN.md +0 -210
- package/web/dist/assets/index-CnUabdqK.js +0 -73
- package/web/dist/assets/index-DqkpIE12.css +0 -1
|
@@ -11,7 +11,6 @@ export interface MessageLogRecord {
|
|
|
11
11
|
workspaceId: string;
|
|
12
12
|
}
|
|
13
13
|
export interface MessageLogHandle {
|
|
14
|
-
kind: 'db' | 'memory';
|
|
15
14
|
sequence: number;
|
|
16
15
|
}
|
|
17
16
|
interface RecoveryMessageBase {
|
|
@@ -43,9 +42,8 @@ interface MessageKindRow {
|
|
|
43
42
|
worker_id: string;
|
|
44
43
|
workspace_id: string;
|
|
45
44
|
}
|
|
46
|
-
export declare const createMessageLogStore: (db: Database
|
|
45
|
+
export declare const createMessageLogStore: (db: Database) => {
|
|
47
46
|
deleteMessage: (handle: MessageLogHandle) => void;
|
|
48
|
-
initialize: () => void;
|
|
49
47
|
insertMessage: (input: MessageLogRecord) => MessageLogHandle;
|
|
50
48
|
listMessageKinds: () => MessageKindRow[];
|
|
51
49
|
listMessagesForRecovery: (workspaceId: string, sinceMs: number) => RecoveryMessage[];
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
export const createMessageLogStore = (db) => {
|
|
2
|
-
let memorySequence = 0;
|
|
3
|
-
const memoryMessages = new Map();
|
|
4
|
-
const initialize = () => { };
|
|
5
2
|
const listMessageKinds = () => {
|
|
6
|
-
if (!db) {
|
|
7
|
-
return [];
|
|
8
|
-
}
|
|
9
3
|
return db
|
|
10
4
|
.prepare(`SELECT workspace_id, worker_id, type
|
|
11
5
|
FROM messages
|
|
@@ -14,11 +8,6 @@ export const createMessageLogStore = (db) => {
|
|
|
14
8
|
.all();
|
|
15
9
|
};
|
|
16
10
|
const insertMessage = (input) => {
|
|
17
|
-
if (!db) {
|
|
18
|
-
memorySequence += 1;
|
|
19
|
-
memoryMessages.set(memorySequence, input);
|
|
20
|
-
return { kind: 'memory', sequence: memorySequence };
|
|
21
|
-
}
|
|
22
11
|
const result = db
|
|
23
12
|
.prepare(`INSERT INTO messages (
|
|
24
13
|
workspace_id,
|
|
@@ -32,14 +21,10 @@ export const createMessageLogStore = (db) => {
|
|
|
32
21
|
created_at
|
|
33
22
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
34
23
|
.run(input.workspaceId, input.workerId, input.type, input.fromAgentId ?? null, input.toAgentId ?? null, input.text, input.status ?? null, input.artifacts ? JSON.stringify(input.artifacts) : null, input.createdAt);
|
|
35
|
-
return {
|
|
24
|
+
return { sequence: Number(result.lastInsertRowid) };
|
|
36
25
|
};
|
|
37
26
|
const deleteMessage = (handle) => {
|
|
38
|
-
|
|
39
|
-
memoryMessages.delete(handle.sequence);
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
db?.prepare('DELETE FROM messages WHERE sequence = ?').run(handle.sequence);
|
|
27
|
+
db.prepare('DELETE FROM messages WHERE sequence = ?').run(handle.sequence);
|
|
43
28
|
};
|
|
44
29
|
const parseArtifacts = (value) => {
|
|
45
30
|
if (!value) {
|
|
@@ -51,47 +36,6 @@ export const createMessageLogStore = (db) => {
|
|
|
51
36
|
: [];
|
|
52
37
|
};
|
|
53
38
|
const listMessagesForRecovery = (workspaceId, sinceMs) => {
|
|
54
|
-
if (!db) {
|
|
55
|
-
return Array.from(memoryMessages.values())
|
|
56
|
-
.filter((message) => message.workspaceId === workspaceId && message.createdAt >= sinceMs)
|
|
57
|
-
.map((message) => {
|
|
58
|
-
if (message.type === 'user_input') {
|
|
59
|
-
return {
|
|
60
|
-
createdAt: message.createdAt,
|
|
61
|
-
text: message.text,
|
|
62
|
-
type: 'user_input',
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
if (message.type === 'send') {
|
|
66
|
-
const recoveryMessage = {
|
|
67
|
-
createdAt: message.createdAt,
|
|
68
|
-
text: message.text,
|
|
69
|
-
to: message.toAgentId ?? message.workerId,
|
|
70
|
-
type: 'send',
|
|
71
|
-
};
|
|
72
|
-
if (message.fromAgentId) {
|
|
73
|
-
recoveryMessage.from = message.fromAgentId;
|
|
74
|
-
}
|
|
75
|
-
return recoveryMessage;
|
|
76
|
-
}
|
|
77
|
-
if (message.type !== 'report' && message.type !== 'status') {
|
|
78
|
-
return null;
|
|
79
|
-
}
|
|
80
|
-
const recoveryMessage = {
|
|
81
|
-
artifacts: message.artifacts ?? [],
|
|
82
|
-
createdAt: message.createdAt,
|
|
83
|
-
from: message.fromAgentId ?? message.workerId,
|
|
84
|
-
text: message.text,
|
|
85
|
-
type: message.type,
|
|
86
|
-
};
|
|
87
|
-
if (message.type === 'report' && message.status) {
|
|
88
|
-
;
|
|
89
|
-
recoveryMessage.status = message.status;
|
|
90
|
-
}
|
|
91
|
-
return recoveryMessage;
|
|
92
|
-
})
|
|
93
|
-
.filter((message) => message !== null);
|
|
94
|
-
}
|
|
95
39
|
return db
|
|
96
40
|
.prepare(`SELECT worker_id, type, from_agent_id, to_agent_id, text, status, artifacts, created_at
|
|
97
41
|
FROM messages
|
|
@@ -139,7 +83,6 @@ export const createMessageLogStore = (db) => {
|
|
|
139
83
|
};
|
|
140
84
|
return {
|
|
141
85
|
deleteMessage,
|
|
142
|
-
initialize,
|
|
143
86
|
insertMessage,
|
|
144
87
|
listMessageKinds,
|
|
145
88
|
listMessagesForRecovery,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-log-store.js","sourceRoot":"","sources":["../../../src/server/message-log-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message-log-store.js","sourceRoot":"","sources":["../../../src/server/message-log-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getStartupCommandExecutable } from './startup-command-parser.js';
|
|
1
2
|
// SETTLE_WAIT_MS: how long we wait before declaring autostart "ok". Must be
|
|
2
3
|
// long enough to observe an early exit when the child shell prints
|
|
3
4
|
// "command not found" then dies with exit 127 (typically <100ms in practice).
|
|
@@ -40,6 +41,15 @@ const formatEarlyExitError = (command, exitCode) => {
|
|
|
40
41
|
}
|
|
41
42
|
return `${command} failed to start (exit ${exitCode ?? 'null'})`;
|
|
42
43
|
};
|
|
44
|
+
const getLaunchErrorCommand = (config) => {
|
|
45
|
+
if (config.presetAugmentationDisabled) {
|
|
46
|
+
const startupCommand = config.args?.at(-1);
|
|
47
|
+
const executable = startupCommand ? getStartupCommandExecutable(startupCommand) : null;
|
|
48
|
+
if (executable)
|
|
49
|
+
return executable;
|
|
50
|
+
}
|
|
51
|
+
return config.interactiveCommand ?? config.command;
|
|
52
|
+
};
|
|
43
53
|
/**
|
|
44
54
|
* Wraps `store.startAgent` so spawn failures never bubble up: callers always
|
|
45
55
|
* receive a structured result. The HTTP layer uses this to keep workspace
|
|
@@ -86,7 +96,7 @@ export const autostartAgent = async (port, workspaceId, agentId, hivePort, optio
|
|
|
86
96
|
if (status === 'error' || (status === 'exited' && (exitCode ?? 0) !== 0)) {
|
|
87
97
|
return {
|
|
88
98
|
ok: false,
|
|
89
|
-
error: formatEarlyExitError(config
|
|
99
|
+
error: formatEarlyExitError(getLaunchErrorCommand(config), exitCode),
|
|
90
100
|
run_id: run.runId,
|
|
91
101
|
};
|
|
92
102
|
}
|
|
@@ -95,7 +105,7 @@ export const autostartAgent = async (port, workspaceId, agentId, hivePort, optio
|
|
|
95
105
|
catch (error) {
|
|
96
106
|
return {
|
|
97
107
|
ok: false,
|
|
98
|
-
error: formatStartError(error, config
|
|
108
|
+
error: formatStartError(error, getLaunchErrorCommand(config)),
|
|
99
109
|
run_id: null,
|
|
100
110
|
};
|
|
101
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator-autostart.js","sourceRoot":"","sources":["../../../src/server/orchestrator-autostart.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator-autostart.js","sourceRoot":"","sources":["../../../src/server/orchestrator-autostart.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveCommandPresetLaunchConfig, resolveStartupCommandLaunchConfig, } from './agent-launch-resolver.js';
|
|
2
2
|
import { getOrchestratorId } from './workspace-store-support.js';
|
|
3
3
|
const parseArgsEnv = (raw) => {
|
|
4
4
|
if (raw === undefined)
|
|
@@ -16,22 +16,6 @@ const parseArgsEnv = (raw) => {
|
|
|
16
16
|
}
|
|
17
17
|
return undefined;
|
|
18
18
|
};
|
|
19
|
-
const resolveCommandPresetLaunchConfig = (settings, commandPresetId) => {
|
|
20
|
-
const preset = settings.getCommandPreset(commandPresetId);
|
|
21
|
-
if (!preset)
|
|
22
|
-
return undefined;
|
|
23
|
-
return {
|
|
24
|
-
args: preset.args,
|
|
25
|
-
command: preset.command,
|
|
26
|
-
commandPresetId: preset.id,
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
const findPresetForStartupCommand = (settings, startupCommand, commandPresetId) => {
|
|
30
|
-
if (commandPresetId)
|
|
31
|
-
return settings.getCommandPreset(commandPresetId);
|
|
32
|
-
const executable = getStartupCommandExecutable(startupCommand);
|
|
33
|
-
return executable ? settings.getCommandPreset(executable) : undefined;
|
|
34
|
-
};
|
|
35
19
|
/**
|
|
36
20
|
* Resolve the orchestrator's launch config in priority order:
|
|
37
21
|
* 1. Explicit startup command pasted by the user. It runs through their shell
|
|
@@ -46,16 +30,7 @@ const findPresetForStartupCommand = (settings, startupCommand, commandPresetId)
|
|
|
46
30
|
export const resolveOrchestratorLaunchConfig = (settings, commandPresetId = null, startupCommand = null) => {
|
|
47
31
|
const trimmedStartupCommand = startupCommand?.trim();
|
|
48
32
|
if (trimmedStartupCommand) {
|
|
49
|
-
|
|
50
|
-
const preset = findPresetForStartupCommand(settings, trimmedStartupCommand, commandPresetId);
|
|
51
|
-
return {
|
|
52
|
-
command: parsed.command,
|
|
53
|
-
args: parsed.args,
|
|
54
|
-
commandPresetId: null,
|
|
55
|
-
interactiveCommand: preset?.command ?? getStartupCommandExecutable(trimmedStartupCommand),
|
|
56
|
-
presetAugmentationDisabled: true,
|
|
57
|
-
sessionIdCapture: preset?.sessionIdCapture ?? null,
|
|
58
|
-
};
|
|
33
|
+
return resolveStartupCommandLaunchConfig(settings, trimmedStartupCommand, commandPresetId);
|
|
59
34
|
}
|
|
60
35
|
if (commandPresetId) {
|
|
61
36
|
return resolveCommandPresetLaunchConfig(settings, commandPresetId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator-launch.js","sourceRoot":"","sources":["../../../src/server/orchestrator-launch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator-launch.js","sourceRoot":"","sources":["../../../src/server/orchestrator-launch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAchE,MAAM,YAAY,GAAG,CAAC,GAAuB,EAAwB,EAAE;IACrE,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAA;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;YAAE,OAAO,MAAM,CAAA;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,QAAuB,EACvB,kBAAiC,IAAI,EACrC,iBAAgC,IAAI,EACA,EAAE;IACtC,MAAM,qBAAqB,GAAG,cAAc,EAAE,IAAI,EAAE,CAAA;IACpD,IAAI,qBAAqB,EAAE,CAAC;QAC1B,OAAO,iCAAiC,CAAC,QAAQ,EAAE,qBAAqB,EAAE,eAAe,CAAC,CAAA;IAC5F,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,gCAAgC,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;IACpE,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAA;IACxD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,EAAE;YACjE,eAAe,EAAE,IAAI;SACtB,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAA;IAChG,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/B,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,sEAAsE;IACtE,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,cAAc;QAChC,IAAI,EAAE,QAAQ,CAAC,WAAW;QAC1B,eAAe,EAAE,IAAI;KACtB,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,IAAmB,EACnB,QAAuB,EACvB,WAAmB,EACnB,kBAAiC,IAAI,EACrC,iBAAgC,IAAI,EAC9B,EAAE;IACR,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;IACrD,IAAI,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,cAAc,CAAC;QAAE,OAAM;IACnE,MAAM,MAAM,GAAG,+BAA+B,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAAA;IACzF,IAAI,CAAC,MAAM;QAAE,OAAM;IACnB,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;AAChE,CAAC,CAAA"}
|
|
@@ -66,7 +66,7 @@ const formatWorkers = (workers) => {
|
|
|
66
66
|
const getTaskSectionTitle = (agent) => agent.role === 'orchestrator' ? '## 你已派出的任务' : '## 最近派给你的任务';
|
|
67
67
|
export const buildRecoverySummary = ({ agent, allTaskMessages, messages, tasksContent, workers, workspace, }) => wrapSystemMessage([
|
|
68
68
|
`你是 ${workspace.name} 的 ${agent.name}(${agent.role})。`,
|
|
69
|
-
'
|
|
69
|
+
'你刚被 Hive 重启了,且无法通过原生 session resume 恢复。下面是接力上下文。',
|
|
70
70
|
'',
|
|
71
71
|
'## 最近 1 小时与 user 的对话',
|
|
72
72
|
...formatUserInputs(messages),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-summary.js","sourceRoot":"","sources":["../../../src/server/recovery-summary.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"recovery-summary.js","sourceRoot":"","sources":["../../../src/server/recovery-summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export interface RoleTemplateInput {
|
|
|
18
18
|
defaultArgs: string[];
|
|
19
19
|
defaultEnv: Record<string, string>;
|
|
20
20
|
}
|
|
21
|
-
export declare const createRoleTemplateStore: (db: Database
|
|
21
|
+
export declare const createRoleTemplateStore: (db: Database) => {
|
|
22
22
|
create: (input: RoleTemplateInput) => {
|
|
23
23
|
isBuiltin: boolean;
|
|
24
24
|
name: string;
|
|
@@ -28,8 +28,6 @@ const toRecord = (row) => ({
|
|
|
28
28
|
});
|
|
29
29
|
export const createRoleTemplateStore = (db) => {
|
|
30
30
|
const list = () => {
|
|
31
|
-
if (!db)
|
|
32
|
-
return [];
|
|
33
31
|
return db
|
|
34
32
|
.prepare(`SELECT id, name, role_type, description, default_command, default_args, default_env, is_builtin
|
|
35
33
|
FROM role_templates ORDER BY is_builtin DESC, created_at ASC`)
|
|
@@ -38,8 +36,6 @@ export const createRoleTemplateStore = (db) => {
|
|
|
38
36
|
};
|
|
39
37
|
const create = (input) => {
|
|
40
38
|
const record = { id: randomUUID(), ...input, isBuiltin: false };
|
|
41
|
-
if (!db)
|
|
42
|
-
return record;
|
|
43
39
|
const now = Date.now();
|
|
44
40
|
db.prepare(`INSERT INTO role_templates (
|
|
45
41
|
id, name, role_type, description, default_command, default_args, default_env,
|
|
@@ -53,7 +49,7 @@ export const createRoleTemplateStore = (db) => {
|
|
|
53
49
|
throw new Error(`Role template not found: ${id}`);
|
|
54
50
|
if (current.isBuiltin)
|
|
55
51
|
throw new ConflictError(`Builtin role template is read-only: ${id}`);
|
|
56
|
-
db
|
|
52
|
+
db.prepare(`UPDATE role_templates
|
|
57
53
|
SET name = ?, role_type = ?, description = ?, default_command = ?, default_args = ?, default_env = ?, updated_at = ?
|
|
58
54
|
WHERE id = ?`).run(input.name, input.roleType, input.description, input.defaultCommand, serializeArgs(input.defaultArgs), serializeEnv(input.defaultEnv), Date.now(), id);
|
|
59
55
|
return { ...current, ...input };
|
|
@@ -64,7 +60,7 @@ export const createRoleTemplateStore = (db) => {
|
|
|
64
60
|
throw new Error(`Role template not found: ${id}`);
|
|
65
61
|
if (current.isBuiltin)
|
|
66
62
|
throw new ConflictError(`Builtin role template is read-only: ${id}`);
|
|
67
|
-
db
|
|
63
|
+
db.prepare('DELETE FROM role_templates WHERE id = ?').run(id);
|
|
68
64
|
};
|
|
69
65
|
return { create, list, remove, update };
|
|
70
66
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-template-store.js","sourceRoot":"","sources":["../../../src/server/role-template-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAIxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAwBhD,MAAM,gBAAgB,GAAG,CAAC,KAAoB,EAAE,EAAE;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAA;IAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;AAChG,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAE,EAAE;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAA;IAC3C,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACnE,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3B,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CACnE,CACF;QACH,CAAC,CAAC,EAAE,CAAA;AACR,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAC9D,MAAM,YAAY,GAAG,CAAC,GAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;AAEzE,MAAM,QAAQ,GAAG,CAAC,GASjB,EAAsB,EAAE,CAAC,CAAC;IACzB,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,QAAQ,EAAE,GAAG,CAAC,SAAS;IACvB,WAAW,EAAE,GAAG,CAAC,WAAW;IAC5B,cAAc,EAAE,GAAG,CAAC,eAAe;IACnC,WAAW,EAAE,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC;IAC/C,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;IACrC,SAAS,EAAE,GAAG,CAAC,UAAU,KAAK,CAAC;CAChC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"role-template-store.js","sourceRoot":"","sources":["../../../src/server/role-template-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,8 @@ export interface CreateWorkerBody {
|
|
|
37
37
|
description?: string;
|
|
38
38
|
name: string;
|
|
39
39
|
role: WorkerRole;
|
|
40
|
+
/** Optional full startup command. When set, this overrides command_preset_id. */
|
|
41
|
+
startup_command?: string | null;
|
|
40
42
|
}
|
|
41
43
|
export interface UserInputBody {
|
|
42
44
|
text: string;
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
+
import { resolveCommandPresetLaunchConfig, resolveStartupCommandLaunchConfig, } from './agent-launch-resolver.js';
|
|
1
2
|
import { autostartAgent, autostartOrchestrator } from './orchestrator-autostart.js';
|
|
2
3
|
import { seedOrchestratorLaunchConfig } from './orchestrator-launch.js';
|
|
3
4
|
import { getRequiredParam, readJsonBody, route, sendJson } from './route-helpers.js';
|
|
4
5
|
import { authenticateCliAgent, requireCommandForRole } from './team-authz.js';
|
|
6
|
+
import { enrichTeamList } from './team-list-enrichment.js';
|
|
5
7
|
import { serializeTeamListItem } from './team-list-serializer.js';
|
|
6
8
|
import { requireUiTokenFromRequest } from './ui-auth-helpers.js';
|
|
7
9
|
import { validateWorkspacePath } from './workspace-path-validation.js';
|
|
8
10
|
import { getOrchestratorId } from './workspace-store-support.js';
|
|
9
|
-
const enrichWithLastOutput = (workspaceId, store, workers) => workers.map((worker) => {
|
|
10
|
-
const line = store.getLastOutputLineForAgent(workspaceId, worker.id);
|
|
11
|
-
return line === null ? worker : { ...worker, lastOutputLine: line };
|
|
12
|
-
});
|
|
13
11
|
const getSerializedWorker = (workspaceId, workerId, store) => {
|
|
14
12
|
const worker = store.listWorkers(workspaceId).find((item) => item.id === workerId);
|
|
15
13
|
if (!worker) {
|
|
16
14
|
throw new Error(`Worker not found: ${workerId}`);
|
|
17
15
|
}
|
|
18
|
-
const
|
|
19
|
-
|
|
16
|
+
const [enriched] = enrichTeamList(workspaceId, store, [worker]);
|
|
17
|
+
if (!enriched)
|
|
18
|
+
throw new Error(`Worker enrichment failed: ${workerId}`);
|
|
19
|
+
return serializeTeamListItem(enriched);
|
|
20
20
|
};
|
|
21
21
|
const getRuntimePort = (request) => String(request.socket.localPort ?? '');
|
|
22
22
|
export const workspaceRoutes = [
|
|
@@ -61,7 +61,7 @@ export const workspaceRoutes = [
|
|
|
61
61
|
return;
|
|
62
62
|
}
|
|
63
63
|
requireUiTokenFromRequest(request, store.validateUiToken);
|
|
64
|
-
sendJson(response, 200,
|
|
64
|
+
sendJson(response, 200, enrichTeamList(workspaceId, store, store.listWorkers(workspaceId)).map(serializeTeamListItem));
|
|
65
65
|
}),
|
|
66
66
|
route('GET', '/api/workspaces/:workspaceId/team', ({ params, request, response, store }) => {
|
|
67
67
|
const workspaceId = getRequiredParam(response, params, 'workspaceId', 'Workspace id is required');
|
|
@@ -78,7 +78,7 @@ export const workspaceRoutes = [
|
|
|
78
78
|
workspaceId,
|
|
79
79
|
});
|
|
80
80
|
requireCommandForRole(agent, 'list');
|
|
81
|
-
sendJson(response, 200,
|
|
81
|
+
sendJson(response, 200, enrichTeamList(workspaceId, store, store.listWorkers(workspaceId)).map(serializeTeamListItem));
|
|
82
82
|
}),
|
|
83
83
|
route('POST', '/api/workspaces/:workspaceId/workers', async ({ params, request, response, store }) => {
|
|
84
84
|
const workspaceId = getRequiredParam(response, params, 'workspaceId', 'Workspace id is required');
|
|
@@ -87,17 +87,25 @@ export const workspaceRoutes = [
|
|
|
87
87
|
}
|
|
88
88
|
requireUiTokenFromRequest(request, store.validateUiToken);
|
|
89
89
|
const body = await readJsonBody(request);
|
|
90
|
-
const worker = store.addWorker(workspaceId, body);
|
|
91
90
|
const presetId = body.command_preset_id ?? null;
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
91
|
+
const startupCommand = typeof body.startup_command === 'string' ? body.startup_command : null;
|
|
92
|
+
const launchConfig = startupCommand?.trim()
|
|
93
|
+
? resolveStartupCommandLaunchConfig(store.settings, startupCommand, presetId)
|
|
94
|
+
: presetId
|
|
95
|
+
? resolveCommandPresetLaunchConfig(store.settings, presetId)
|
|
96
|
+
: undefined;
|
|
97
|
+
if (presetId && !startupCommand?.trim() && !launchConfig) {
|
|
98
|
+
throw new Error(`Command preset not found: ${presetId}`);
|
|
99
|
+
}
|
|
100
|
+
const worker = store.addWorker(workspaceId, body);
|
|
101
|
+
if (launchConfig) {
|
|
102
|
+
try {
|
|
103
|
+
store.configureAgentLaunch(workspaceId, worker.id, launchConfig);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
store.deleteWorker(workspaceId, worker.id);
|
|
107
|
+
throw error;
|
|
108
|
+
}
|
|
101
109
|
}
|
|
102
110
|
const agentStart = body.autostart === true
|
|
103
111
|
? await autostartAgent(store, workspaceId, worker.id, getRuntimePort(request), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes-workspaces.js","sourceRoot":"","sources":["../../../src/server/routes-workspaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACnF,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAQpF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"routes-workspaces.js","sourceRoot":"","sources":["../../../src/server/routes-workspaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Database } from 'better-sqlite3';
|
|
2
|
-
export declare const openRuntimeDatabase: (dataDir?: string) => Database
|
|
2
|
+
export declare const openRuntimeDatabase: (dataDir?: string) => Database;
|
|
@@ -3,10 +3,14 @@ import { join } from 'node:path';
|
|
|
3
3
|
import BetterSqlite3 from 'better-sqlite3';
|
|
4
4
|
import { initializeRuntimeDatabase } from './sqlite-schema.js';
|
|
5
5
|
export const openRuntimeDatabase = (dataDir) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
let database;
|
|
7
|
+
if (dataDir) {
|
|
8
|
+
mkdirSync(dataDir, { recursive: true });
|
|
9
|
+
database = new BetterSqlite3(join(dataDir, 'runtime.sqlite'));
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
database = new BetterSqlite3(':memory:');
|
|
13
|
+
}
|
|
10
14
|
initializeRuntimeDatabase(database);
|
|
11
15
|
return database;
|
|
12
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-database.js","sourceRoot":"","sources":["../../../src/server/runtime-database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAgB,
|
|
1
|
+
{"version":3,"file":"runtime-database.js","sourceRoot":"","sources":["../../../src/server/runtime-database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAY,EAAE;IAChE,IAAI,QAAkB,CAAA;IACtB,IAAI,OAAO,EAAE,CAAC;QACZ,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACvC,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAC/D,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,CAAA;IAC1C,CAAC;IACD,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACnC,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
|
|
@@ -33,9 +33,7 @@ export const createRuntimeStoreServices = (options = {}) => {
|
|
|
33
33
|
},
|
|
34
34
|
});
|
|
35
35
|
const uiAuth = createUiAuth();
|
|
36
|
-
|
|
37
|
-
agentRunStore.initialize();
|
|
38
|
-
agentRunStore.markUnfinishedRunsStale?.();
|
|
36
|
+
agentRunStore.markUnfinishedRunsStale();
|
|
39
37
|
const workspaceStore = createWorkspaceStore(db, dispatchLedgerStore.listOpenDispatchKinds());
|
|
40
38
|
const startExistingWorkspaceWatches = () => {
|
|
41
39
|
for (const workspace of workspaceStore.listWorkspaces()) {
|
|
@@ -143,7 +141,7 @@ export const createRuntimeStoreLifecycle = ({ agentManager, services, }) => {
|
|
|
143
141
|
await services.tasksFileWatcher.close();
|
|
144
142
|
services.workerOutputTracker?.closeAll();
|
|
145
143
|
services.agentRunStore.close?.();
|
|
146
|
-
services.db
|
|
144
|
+
services.db.close();
|
|
147
145
|
},
|
|
148
146
|
configureAgentLaunch: (workspaceId, agentId, input) => {
|
|
149
147
|
services.workspaceStore.getAgent(workspaceId, agentId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-store-helpers.js","sourceRoot":"","sources":["../../../src/server/runtime-store-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAA;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,yBAAyB,EAA4B,MAAM,4BAA4B,CAAA;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AA4B3D,MAAM,kBAAkB,GAAG,CACzB,SAA8D,EAC9D,WAAmB,EACnB,OAAe,EACf,EAAE;IACF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAChC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,UAA6C,EAAE,EACzB,EAAE;IACxB,MAAM,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,MAAM,eAAe,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAA;IACjD,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,EAAE,CAAC,CAAA;IACzD,MAAM,aAAa,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAC7C,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;IACxC,MAAM,gBAAgB,GAAG,sBAAsB,EAAE,CAAA;IACjD,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAkD,CAAA;IACzF,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;QAC9C,cAAc,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE;YACvC,kBAAkB,CAAC,uBAAuB,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;QACnE,CAAC;KACF,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAE7B,
|
|
1
|
+
{"version":3,"file":"runtime-store-helpers.js","sourceRoot":"","sources":["../../../src/server/runtime-store-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ interface RuntimeStore {
|
|
|
23
23
|
statusTask: (workspaceId: string, workerId: string, input?: StatusTaskInput) => ReportTaskResult;
|
|
24
24
|
listDispatches: (workspaceId: string, options?: ListDispatchesOptions) => DispatchRecord[];
|
|
25
25
|
listWorkers: (workspaceId: string) => TeamListItem[];
|
|
26
|
-
|
|
26
|
+
getLastPtyLineForAgent: (workspaceId: string, agentId: string) => string | null;
|
|
27
27
|
getWorkspaceSnapshot: (workspaceId: string) => WorkspaceRecord;
|
|
28
28
|
getWorker: (workspaceId: string, workerId: string) => AgentSummary;
|
|
29
29
|
getAgent: (workspaceId: string, agentId: string) => AgentSummary;
|
|
@@ -53,7 +53,7 @@ export const createRuntimeStore = (options = {}) => {
|
|
|
53
53
|
statusTask: services.teamOps.statusTask,
|
|
54
54
|
listDispatches: services.dispatchLedgerStore.listWorkspaceDispatches,
|
|
55
55
|
listWorkers: (workspaceId) => services.workspaceStore.listWorkers(workspaceId),
|
|
56
|
-
|
|
56
|
+
getLastPtyLineForAgent: (workspaceId, agentId) => services.workerOutputTracker?.getLastPtyLine(workspaceId, agentId) ?? null,
|
|
57
57
|
getWorkspaceSnapshot: (workspaceId) => services.workspaceStore.getWorkspaceSnapshot(workspaceId),
|
|
58
58
|
getWorker: (workspaceId, workerId) => services.workspaceStore.getWorker(workspaceId, workerId),
|
|
59
59
|
getAgent: (workspaceId, agentId) => services.workspaceStore.getAgent(workspaceId, agentId),
|