@tt-a1i/hive 0.6.0-alpha.4 → 0.6.0-alpha.5
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 +44 -0
- package/README.md +15 -4
- package/README.zh-CN.md +6 -1
- 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-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 +7 -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/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/routes-workspaces.js +7 -7
- 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-serializer.d.ts +1 -1
- package/dist/src/server/team-list-serializer.js +2 -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 +6 -3
- package/package.json +5 -1
- 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-CMHbdGhT.css +1 -0
- package/web/dist/assets/index-CkY03NZW.js +76 -0
- package/web/dist/index.html +2 -2
- package/web/dist/assets/index-CnUabdqK.js +0 -73
- package/web/dist/assets/index-DqkpIE12.css +0 -1
|
@@ -37,8 +37,6 @@ const toRecord = (row) => ({
|
|
|
37
37
|
});
|
|
38
38
|
export const createCommandPresetStore = (db) => {
|
|
39
39
|
const get = (id) => {
|
|
40
|
-
if (!db)
|
|
41
|
-
return undefined;
|
|
42
40
|
const row = db
|
|
43
41
|
.prepare(`SELECT id, display_name, command, args, env, resume_args_template, session_id_capture, yolo_args_template, is_builtin
|
|
44
42
|
FROM command_presets WHERE id = ?`)
|
|
@@ -46,8 +44,6 @@ export const createCommandPresetStore = (db) => {
|
|
|
46
44
|
return row ? toRecord(row) : undefined;
|
|
47
45
|
};
|
|
48
46
|
const list = () => {
|
|
49
|
-
if (!db)
|
|
50
|
-
return [];
|
|
51
47
|
return db
|
|
52
48
|
.prepare(`SELECT id, display_name, command, args, env, resume_args_template, session_id_capture, yolo_args_template, is_builtin
|
|
53
49
|
FROM command_presets ORDER BY is_builtin DESC, created_at ASC`)
|
|
@@ -56,8 +52,6 @@ export const createCommandPresetStore = (db) => {
|
|
|
56
52
|
};
|
|
57
53
|
const create = (input) => {
|
|
58
54
|
const record = { id: randomUUID(), ...input, isBuiltin: false };
|
|
59
|
-
if (!db)
|
|
60
|
-
return record;
|
|
61
55
|
const now = Date.now();
|
|
62
56
|
db.prepare(`INSERT INTO command_presets (
|
|
63
57
|
id, display_name, command, args, env, resume_args_template, session_id_capture,
|
|
@@ -71,7 +65,7 @@ export const createCommandPresetStore = (db) => {
|
|
|
71
65
|
throw new Error(`Command preset not found: ${id}`);
|
|
72
66
|
if (current.isBuiltin)
|
|
73
67
|
throw new ConflictError(`Builtin command preset is read-only: ${id}`);
|
|
74
|
-
db
|
|
68
|
+
db.prepare(`UPDATE command_presets
|
|
75
69
|
SET display_name = ?, command = ?, args = ?, env = ?, resume_args_template = ?,
|
|
76
70
|
session_id_capture = ?, yolo_args_template = ?, updated_at = ?
|
|
77
71
|
WHERE id = ?`).run(input.displayName, input.command, serializeArgs(input.args), serializeEnv(input.env), input.resumeArgsTemplate, serializeBlob(input.sessionIdCapture), serializeYolo(input.yoloArgsTemplate), Date.now(), id);
|
|
@@ -83,7 +77,7 @@ export const createCommandPresetStore = (db) => {
|
|
|
83
77
|
throw new Error(`Command preset not found: ${id}`);
|
|
84
78
|
if (current.isBuiltin)
|
|
85
79
|
throw new ConflictError(`Builtin command preset is read-only: ${id}`);
|
|
86
|
-
db
|
|
80
|
+
db.prepare('DELETE FROM command_presets WHERE id = ?').run(id);
|
|
87
81
|
};
|
|
88
82
|
return { create, get, list, remove, update };
|
|
89
83
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-preset-store.js","sourceRoot":"","sources":["../../../src/server/command-preset-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAIxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAA+B,MAAM,sBAAsB,CAAA;AAwBzF,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,KAAoB,EAAE,EAAE;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AACjD,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;AACzE,MAAM,aAAa,GAAG,CAAC,KAAoC,EAAE,EAAE,CAC7D,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACtC,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAExF,MAAM,QAAQ,GAAG,CAAC,GAUjB,EAAuB,EAAE,CAAC,CAAC;IAC1B,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,WAAW,EAAE,GAAG,CAAC,YAAY;IAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;IACpB,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;IAChC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB,kBAAkB,EAAE,GAAG,CAAC,oBAAoB;IAC5C,gBAAgB,EAAE,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACvD,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC1D,SAAS,EAAE,GAAG,CAAC,UAAU,KAAK,CAAC;CAChC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"command-preset-store.js","sourceRoot":"","sources":["../../../src/server/command-preset-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAIxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAA+B,MAAM,sBAAsB,CAAA;AAwBzF,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,KAAoB,EAAE,EAAE;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AACjD,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;AACzE,MAAM,aAAa,GAAG,CAAC,KAAoC,EAAE,EAAE,CAC7D,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACtC,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAExF,MAAM,QAAQ,GAAG,CAAC,GAUjB,EAAuB,EAAE,CAAC,CAAC;IAC1B,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,WAAW,EAAE,GAAG,CAAC,YAAY;IAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;IACpB,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;IAChC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB,kBAAkB,EAAE,GAAG,CAAC,oBAAoB;IAC5C,gBAAgB,EAAE,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACvD,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC1D,SAAS,EAAE,GAAG,CAAC,UAAU,KAAK,CAAC;CAChC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EAAY,EAAE,EAAE;IACvD,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,EAAE;aACX,OAAO,CACN;2CACmC,CACpC;aACA,GAAG,CAAC,EAAE,CAAC,CAAA;QACV,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAqC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1E,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,OAAO,EAAE;aACN,OAAO,CACN;uEAC+D,CAChE;aACA,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAqC,CAAC,CAAC,CAAA;IAClE,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,KAAyB,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,EAAE,CAAC,OAAO,CACR;;;kDAG4C,CAC7C,CAAC,GAAG,CACH,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,OAAO,EACd,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAC1B,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EACxB,MAAM,CAAC,kBAAkB,EACzB,aAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,EACtC,aAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,EACtC,GAAG,EACH,GAAG,CACJ,CAAA;QACD,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,KAAyB,EAAE,EAAE;QACvD,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAA;QAChE,IAAI,OAAO,CAAC,SAAS;YAAE,MAAM,IAAI,aAAa,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAA;QAC5F,EAAE,CAAC,OAAO,CACR;;;oBAGc,CACf,CAAC,GAAG,CACH,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,OAAO,EACb,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EACzB,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EACvB,KAAK,CAAC,kBAAkB,EACxB,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,EACrC,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,EACrC,IAAI,CAAC,GAAG,EAAE,EACV,EAAE,CACH,CAAA;QACD,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,CAAA;IACjC,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE;QAC5B,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAA;QAChE,IAAI,OAAO,CAAC,SAAS;YAAE,MAAM,IAAI,aAAa,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAA;QAC5F,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC,CAAA;IAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAC9C,CAAC,CAAA"}
|
|
@@ -33,19 +33,33 @@ export interface ListDispatchesOptions {
|
|
|
33
33
|
offset?: number;
|
|
34
34
|
status?: DispatchStatus;
|
|
35
35
|
}
|
|
36
|
-
export declare const createDispatchLedgerStore: (db: Database
|
|
36
|
+
export declare const createDispatchLedgerStore: (db: Database) => {
|
|
37
37
|
createDispatch: (input: CreateDispatchInput) => DispatchRecord;
|
|
38
38
|
deleteDispatch: (dispatchId: string) => void;
|
|
39
39
|
deleteWorkerDispatches: (workspaceId: string, workerId: string) => void;
|
|
40
40
|
deleteWorkspaceDispatches: (workspaceId: string) => void;
|
|
41
41
|
findOpenDispatch: (workspaceId: string, toAgentId: string, dispatchId?: string) => DispatchRecord | undefined;
|
|
42
|
-
listOpenDispatchKinds: () => {
|
|
42
|
+
listOpenDispatchKinds: () => Array<{
|
|
43
43
|
type: "send";
|
|
44
44
|
worker_id: string;
|
|
45
45
|
workspace_id: string;
|
|
46
|
-
}
|
|
46
|
+
}>;
|
|
47
47
|
listWorkspaceDispatches: (workspaceId: string, options?: ListDispatchesOptions) => DispatchRecord[];
|
|
48
|
-
markReportedByWorker: (input: ReportDispatchInput) =>
|
|
48
|
+
markReportedByWorker: (input: ReportDispatchInput) => {
|
|
49
|
+
artifacts: string[];
|
|
50
|
+
reportedAt: number;
|
|
51
|
+
reportText: string;
|
|
52
|
+
status: "reported";
|
|
53
|
+
createdAt: number;
|
|
54
|
+
deliveredAt: number | null;
|
|
55
|
+
fromAgentId: string | null;
|
|
56
|
+
id: string;
|
|
57
|
+
sequence: number | null;
|
|
58
|
+
submittedAt: number | null;
|
|
59
|
+
text: string;
|
|
60
|
+
toAgentId: string;
|
|
61
|
+
workspaceId: string;
|
|
62
|
+
} | undefined;
|
|
49
63
|
markSubmitted: (dispatchId: string) => void;
|
|
50
64
|
};
|
|
51
65
|
export {};
|
|
@@ -28,7 +28,6 @@ const toRecord = (row) => ({
|
|
|
28
28
|
workspaceId: row.workspace_id,
|
|
29
29
|
});
|
|
30
30
|
export const createDispatchLedgerStore = (db) => {
|
|
31
|
-
const memoryDispatches = new Map();
|
|
32
31
|
const createDispatch = (input) => {
|
|
33
32
|
const record = {
|
|
34
33
|
artifacts: [],
|
|
@@ -45,11 +44,6 @@ export const createDispatchLedgerStore = (db) => {
|
|
|
45
44
|
toAgentId: input.toAgentId,
|
|
46
45
|
workspaceId: input.workspaceId,
|
|
47
46
|
};
|
|
48
|
-
if (!db) {
|
|
49
|
-
record.sequence = memoryDispatches.size + 1;
|
|
50
|
-
memoryDispatches.set(record.id, record);
|
|
51
|
-
return record;
|
|
52
|
-
}
|
|
53
47
|
db.prepare(`INSERT INTO dispatches (
|
|
54
48
|
id,
|
|
55
49
|
workspace_id,
|
|
@@ -67,36 +61,15 @@ export const createDispatchLedgerStore = (db) => {
|
|
|
67
61
|
return record;
|
|
68
62
|
};
|
|
69
63
|
const deleteDispatch = (dispatchId) => {
|
|
70
|
-
if (!db) {
|
|
71
|
-
memoryDispatches.delete(dispatchId);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
64
|
db.prepare('DELETE FROM dispatches WHERE id = ?').run(dispatchId);
|
|
75
65
|
};
|
|
76
66
|
const markSubmitted = (dispatchId) => {
|
|
77
67
|
const submittedAt = Date.now();
|
|
78
|
-
if (!db) {
|
|
79
|
-
const record = memoryDispatches.get(dispatchId);
|
|
80
|
-
if (record) {
|
|
81
|
-
record.status = 'submitted';
|
|
82
|
-
record.submittedAt = submittedAt;
|
|
83
|
-
}
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
68
|
db.prepare(`UPDATE dispatches
|
|
87
69
|
SET status = ?, submitted_at = ?
|
|
88
70
|
WHERE id = ?`).run('submitted', submittedAt, dispatchId);
|
|
89
71
|
};
|
|
90
72
|
const findOpenDispatch = (workspaceId, toAgentId, dispatchId) => {
|
|
91
|
-
if (!db) {
|
|
92
|
-
const openDispatches = Array.from(memoryDispatches.values()).filter((record) => record.workspaceId === workspaceId &&
|
|
93
|
-
record.toAgentId === toAgentId &&
|
|
94
|
-
record.status !== 'reported');
|
|
95
|
-
if (dispatchId) {
|
|
96
|
-
return openDispatches.find((record) => record.id === dispatchId);
|
|
97
|
-
}
|
|
98
|
-
return openDispatches.sort((a, b) => (a.sequence ?? a.createdAt) - (b.sequence ?? b.createdAt))[0];
|
|
99
|
-
}
|
|
100
73
|
if (dispatchId) {
|
|
101
74
|
const row = db
|
|
102
75
|
.prepare(`SELECT *
|
|
@@ -126,13 +99,6 @@ export const createDispatchLedgerStore = (db) => {
|
|
|
126
99
|
return undefined;
|
|
127
100
|
}
|
|
128
101
|
const reportedAt = Date.now();
|
|
129
|
-
if (!db) {
|
|
130
|
-
dispatch.status = 'reported';
|
|
131
|
-
dispatch.reportedAt = reportedAt;
|
|
132
|
-
dispatch.reportText = input.reportText;
|
|
133
|
-
dispatch.artifacts = input.artifacts;
|
|
134
|
-
return dispatch;
|
|
135
|
-
}
|
|
136
102
|
db.prepare(`UPDATE dispatches
|
|
137
103
|
SET status = ?,
|
|
138
104
|
reported_at = ?,
|
|
@@ -150,13 +116,6 @@ export const createDispatchLedgerStore = (db) => {
|
|
|
150
116
|
const listWorkspaceDispatches = (workspaceId, options = {}) => {
|
|
151
117
|
const offset = options.offset ?? 0;
|
|
152
118
|
const limit = options.limit ?? 100;
|
|
153
|
-
if (!db) {
|
|
154
|
-
return Array.from(memoryDispatches.values())
|
|
155
|
-
.filter((record) => record.workspaceId === workspaceId &&
|
|
156
|
-
(options.status === undefined || record.status === options.status))
|
|
157
|
-
.sort((a, b) => (a.sequence ?? a.createdAt) - (b.sequence ?? b.createdAt))
|
|
158
|
-
.slice(offset, offset + limit);
|
|
159
|
-
}
|
|
160
119
|
if (options.status) {
|
|
161
120
|
return db
|
|
162
121
|
.prepare(`SELECT *
|
|
@@ -176,16 +135,6 @@ export const createDispatchLedgerStore = (db) => {
|
|
|
176
135
|
.all(workspaceId, limit, offset).map(toRecord);
|
|
177
136
|
};
|
|
178
137
|
const listOpenDispatchKinds = () => {
|
|
179
|
-
if (!db) {
|
|
180
|
-
return Array.from(memoryDispatches.values())
|
|
181
|
-
.filter((record) => record.status !== 'reported')
|
|
182
|
-
.sort((a, b) => (a.sequence ?? a.createdAt) - (b.sequence ?? b.createdAt))
|
|
183
|
-
.map((record) => ({
|
|
184
|
-
type: 'send',
|
|
185
|
-
worker_id: record.toAgentId,
|
|
186
|
-
workspace_id: record.workspaceId,
|
|
187
|
-
}));
|
|
188
|
-
}
|
|
189
138
|
return db
|
|
190
139
|
.prepare(`SELECT workspace_id, to_agent_id AS worker_id, 'send' AS type
|
|
191
140
|
FROM dispatches
|
|
@@ -194,24 +143,9 @@ export const createDispatchLedgerStore = (db) => {
|
|
|
194
143
|
.all();
|
|
195
144
|
};
|
|
196
145
|
const deleteWorkspaceDispatches = (workspaceId) => {
|
|
197
|
-
if (!db) {
|
|
198
|
-
for (const [id, record] of memoryDispatches) {
|
|
199
|
-
if (record.workspaceId === workspaceId)
|
|
200
|
-
memoryDispatches.delete(id);
|
|
201
|
-
}
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
204
146
|
db.prepare('DELETE FROM dispatches WHERE workspace_id = ?').run(workspaceId);
|
|
205
147
|
};
|
|
206
148
|
const deleteWorkerDispatches = (workspaceId, workerId) => {
|
|
207
|
-
if (!db) {
|
|
208
|
-
for (const [id, record] of memoryDispatches) {
|
|
209
|
-
if (record.workspaceId === workspaceId && record.toAgentId === workerId) {
|
|
210
|
-
memoryDispatches.delete(id);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
149
|
db.prepare('DELETE FROM dispatches WHERE workspace_id = ? AND to_agent_id = ?').run(workspaceId, workerId);
|
|
216
150
|
};
|
|
217
151
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-ledger-store.js","sourceRoot":"","sources":["../../../src/server/dispatch-ledger-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AA2DxC,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAE,EAAE;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAA;QAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAsB,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC;YAC/E,CAAC,CAAC,EAAE,CAAA;IACR,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,GAAgB,EAAkB,EAAE,CAAC,CAAC;IACtD,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;IACxC,SAAS,EAAE,GAAG,CAAC,UAAU;IACzB,WAAW,EAAE,GAAG,CAAC,YAAY;IAC7B,WAAW,EAAE,GAAG,CAAC,aAAa;IAC9B,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,UAAU,EAAE,GAAG,CAAC,WAAW;IAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;IAC3B,QAAQ,EAAE,GAAG,CAAC,QAAQ;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,WAAW,EAAE,GAAG,CAAC,YAAY;IAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,SAAS,EAAE,GAAG,CAAC,WAAW;IAC1B,WAAW,EAAE,GAAG,CAAC,YAAY;CAC9B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"dispatch-ledger-store.js","sourceRoot":"","sources":["../../../src/server/dispatch-ledger-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
const ORCHESTRATOR_RULES = [
|
|
2
|
-
'Hive worker 是右侧卡片里的真实 CLI agent
|
|
2
|
+
'Hive worker 是右侧卡片里的真实 CLI agent,不是你所在 CLI 的内置 subagent / 子代理工具。',
|
|
3
3
|
'当 user 要你“让 worker ... / 给 worker 找活 / 让成员处理”时,先执行 `team list` 确认真实 Hive worker。',
|
|
4
4
|
'如果只有一个可用 worker,直接用 `team send <worker-name> "<task>"` 派给它;不要把选择题丢回给 user。',
|
|
5
5
|
'当 user 要你“让 worker ...”时,必须用 `team send <worker-name> "<task>"` 派给 Hive worker。',
|
|
6
|
-
'
|
|
6
|
+
'不要使用你所在 CLI 的内置 subagent / 子代理工具(如 Task / Explore 等)来代替 Hive worker;它们不会出现在 Hive UI,也不会更新 Hive 调度状态。',
|
|
7
|
+
'`team list` 返回的 `last_pty_line` 是该 worker PTY 终端的最后一行原始输出(含任意 stdout / help / 控制序列噪声),**不是** worker 的正式汇报。正式汇报只来自 stdin 注入的 `[Hive 系统消息:来自 @<name> 的汇报]` 或 `[Hive 系统消息:来自 @<name> 的状态更新]`——只把这两种来源当作 reply。',
|
|
7
8
|
];
|
|
8
9
|
const WORKER_RULES = [
|
|
9
|
-
'你是 Hive 右侧卡片里的真实 CLI worker
|
|
10
|
-
'不要调用 team send
|
|
10
|
+
'你是 Hive 右侧卡片里的真实 CLI worker,不是你所在 CLI 的内置 subagent。',
|
|
11
|
+
'不要调用 team send,也不要再启动你所在 CLI 的内置 subagent / 子代理工具(如 Task / Explore 等)来替你完成派单。',
|
|
11
12
|
'完成或阻塞已派发任务时必须用 `team report` 汇报给 Orchestrator。',
|
|
12
13
|
'如果当前没有明确派发任务,只是汇报待命、环境或状态,使用 `team status "<当前状态>"`。',
|
|
14
|
+
'`team --help` 只用于查命令语法,**绝不是** 汇报手段;其输出不会进入 Orchestrator 视野,跑完后仍需正式调用 `team report` / `team status`。',
|
|
15
|
+
'`team report` / `team status` 报错时会同时打印 USAGE,按 USAGE 修正参数后重试;不要把 `team --help` 当成"自我探查"的替身。',
|
|
13
16
|
];
|
|
14
17
|
export const getHiveTeamRules = (agent) => agent.role === 'orchestrator' ? ORCHESTRATOR_RULES : WORKER_RULES;
|
|
15
18
|
//# sourceMappingURL=hive-team-guidance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hive-team-guidance.js","sourceRoot":"","sources":["../../../src/server/hive-team-guidance.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG;IACzB
|
|
1
|
+
{"version":3,"file":"hive-team-guidance.js","sourceRoot":"","sources":["../../../src/server/hive-team-guidance.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG;IACzB,iEAAiE;IACjE,kFAAkF;IAClF,4EAA4E;IAC5E,iFAAiF;IACjF,sGAAsG;IACtG,6MAA6M;CAC9M,CAAA;AAED,MAAM,YAAY,GAAG;IACnB,qDAAqD;IACrD,+EAA+E;IAC/E,gDAAgD;IAChD,sDAAsD;IACtD,sGAAsG;IACtG,6FAA6F;CAC9F,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAiC,EAAE,EAAE,CACpE,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAA"}
|
|
@@ -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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"}
|
|
@@ -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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"}
|
|
@@ -6,17 +6,17 @@ import { serializeTeamListItem } from './team-list-serializer.js';
|
|
|
6
6
|
import { requireUiTokenFromRequest } from './ui-auth-helpers.js';
|
|
7
7
|
import { validateWorkspacePath } from './workspace-path-validation.js';
|
|
8
8
|
import { getOrchestratorId } from './workspace-store-support.js';
|
|
9
|
-
const
|
|
10
|
-
const line = store.
|
|
11
|
-
return line === null ? worker : { ...worker,
|
|
9
|
+
const enrichWithLastPtyLine = (workspaceId, store, workers) => workers.map((worker) => {
|
|
10
|
+
const line = store.getLastPtyLineForAgent(workspaceId, worker.id);
|
|
11
|
+
return line === null ? worker : { ...worker, lastPtyLine: line };
|
|
12
12
|
});
|
|
13
13
|
const getSerializedWorker = (workspaceId, workerId, store) => {
|
|
14
14
|
const worker = store.listWorkers(workspaceId).find((item) => item.id === workerId);
|
|
15
15
|
if (!worker) {
|
|
16
16
|
throw new Error(`Worker not found: ${workerId}`);
|
|
17
17
|
}
|
|
18
|
-
const line = store.
|
|
19
|
-
return serializeTeamListItem(line === null ? worker : { ...worker,
|
|
18
|
+
const line = store.getLastPtyLineForAgent(workspaceId, workerId);
|
|
19
|
+
return serializeTeamListItem(line === null ? worker : { ...worker, lastPtyLine: line });
|
|
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, enrichWithLastPtyLine(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, enrichWithLastPtyLine(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');
|
|
@@ -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,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAEhE,MAAM,
|
|
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);
|