@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.
Files changed (90) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/README.en.md +272 -0
  3. package/README.md +103 -143
  4. package/dist/src/cli/team.d.ts +8 -0
  5. package/dist/src/cli/team.js +69 -26
  6. package/dist/src/cli/team.js.map +1 -1
  7. package/dist/src/server/agent-launch-cache.js +2 -2
  8. package/dist/src/server/agent-launch-cache.js.map +1 -1
  9. package/dist/src/server/agent-launch-resolver.d.ts +4 -0
  10. package/dist/src/server/agent-launch-resolver.js +33 -0
  11. package/dist/src/server/agent-launch-resolver.js.map +1 -0
  12. package/dist/src/server/agent-run-store.d.ts +1 -2
  13. package/dist/src/server/agent-run-store.js +5 -13
  14. package/dist/src/server/agent-run-store.js.map +1 -1
  15. package/dist/src/server/agent-runtime-ports.d.ts +1 -2
  16. package/dist/src/server/agent-session-store.d.ts +1 -1
  17. package/dist/src/server/agent-session-store.js +28 -34
  18. package/dist/src/server/agent-session-store.js.map +1 -1
  19. package/dist/src/server/agent-startup-instructions.js +1 -1
  20. package/dist/src/server/agent-startup-instructions.js.map +1 -1
  21. package/dist/src/server/app-state-store.d.ts +1 -1
  22. package/dist/src/server/app-state-store.js +1 -3
  23. package/dist/src/server/app-state-store.js.map +1 -1
  24. package/dist/src/server/command-preset-store.d.ts +1 -1
  25. package/dist/src/server/command-preset-store.js +2 -8
  26. package/dist/src/server/command-preset-store.js.map +1 -1
  27. package/dist/src/server/dispatch-ledger-store.d.ts +18 -4
  28. package/dist/src/server/dispatch-ledger-store.js +0 -66
  29. package/dist/src/server/dispatch-ledger-store.js.map +1 -1
  30. package/dist/src/server/hive-team-guidance.js +8 -4
  31. package/dist/src/server/hive-team-guidance.js.map +1 -1
  32. package/dist/src/server/message-log-store.d.ts +1 -3
  33. package/dist/src/server/message-log-store.js +2 -59
  34. package/dist/src/server/message-log-store.js.map +1 -1
  35. package/dist/src/server/orchestrator-autostart.js +12 -2
  36. package/dist/src/server/orchestrator-autostart.js.map +1 -1
  37. package/dist/src/server/orchestrator-launch.js +2 -27
  38. package/dist/src/server/orchestrator-launch.js.map +1 -1
  39. package/dist/src/server/recovery-summary.js +1 -1
  40. package/dist/src/server/recovery-summary.js.map +1 -1
  41. package/dist/src/server/role-template-store.d.ts +1 -1
  42. package/dist/src/server/role-template-store.js +2 -6
  43. package/dist/src/server/role-template-store.js.map +1 -1
  44. package/dist/src/server/route-types.d.ts +2 -0
  45. package/dist/src/server/routes-workspaces.js +26 -18
  46. package/dist/src/server/routes-workspaces.js.map +1 -1
  47. package/dist/src/server/runtime-database.d.ts +1 -1
  48. package/dist/src/server/runtime-database.js +8 -4
  49. package/dist/src/server/runtime-database.js.map +1 -1
  50. package/dist/src/server/runtime-store-helpers.js +2 -4
  51. package/dist/src/server/runtime-store-helpers.js.map +1 -1
  52. package/dist/src/server/runtime-store.d.ts +1 -1
  53. package/dist/src/server/runtime-store.js +1 -1
  54. package/dist/src/server/runtime-store.js.map +1 -1
  55. package/dist/src/server/settings-store.d.ts +1 -1
  56. package/dist/src/server/settings-store.js.map +1 -1
  57. package/dist/src/server/team-list-enrichment.d.ts +22 -0
  58. package/dist/src/server/team-list-enrichment.js +41 -0
  59. package/dist/src/server/team-list-enrichment.js.map +1 -0
  60. package/dist/src/server/team-list-serializer.d.ts +1 -1
  61. package/dist/src/server/team-list-serializer.js +3 -2
  62. package/dist/src/server/team-list-serializer.js.map +1 -1
  63. package/dist/src/server/terminal-state-mirror.d.ts +1 -1
  64. package/dist/src/server/terminal-state-mirror.js +1 -1
  65. package/dist/src/server/terminal-state-mirror.js.map +1 -1
  66. package/dist/src/server/worker-output-tracker.d.ts +1 -1
  67. package/dist/src/server/worker-output-tracker.js +2 -2
  68. package/dist/src/server/worker-output-tracker.js.map +1 -1
  69. package/dist/src/server/workspace-store-hydration.d.ts +2 -2
  70. package/dist/src/server/workspace-store-hydration.js +1 -4
  71. package/dist/src/server/workspace-store-hydration.js.map +1 -1
  72. package/dist/src/server/workspace-store.d.ts +1 -1
  73. package/dist/src/server/workspace-store.js +5 -5
  74. package/dist/src/server/workspace-store.js.map +1 -1
  75. package/dist/src/shared/types.d.ts +15 -3
  76. package/package.json +7 -3
  77. package/web/dist/assets/addon-clipboard-wHJhZAA4.js +1 -0
  78. package/web/dist/assets/addon-unicode11-Bt8F3D7-.js +7 -0
  79. package/web/dist/assets/addon-web-links-DIbG5aQx.js +1 -0
  80. package/web/dist/assets/addon-webgl-DCtw1yLn.js +64 -0
  81. package/web/dist/assets/index-B8F00qo4.css +1 -0
  82. package/web/dist/assets/index-CGvIlvht.js +80 -0
  83. package/web/dist/cli-icons/claude.png +0 -0
  84. package/web/dist/cli-icons/codex.png +0 -0
  85. package/web/dist/cli-icons/gemini.png +0 -0
  86. package/web/dist/cli-icons/opencode.svg +18 -0
  87. package/web/dist/index.html +2 -2
  88. package/README.zh-CN.md +0 -210
  89. package/web/dist/assets/index-CnUabdqK.js +0 -73
  90. package/web/dist/assets/index-DqkpIE12.css +0 -1
@@ -0,0 +1,33 @@
1
+ import { createStartupCommandLaunch, getStartupCommandExecutable, } from './startup-command-parser.js';
2
+ export const resolveCommandPresetLaunchConfig = (settings, commandPresetId) => {
3
+ const preset = settings.getCommandPreset(commandPresetId);
4
+ if (!preset)
5
+ return undefined;
6
+ return {
7
+ args: preset.args,
8
+ command: preset.command,
9
+ commandPresetId: preset.id,
10
+ };
11
+ };
12
+ const findPresetForStartupCommand = (settings, startupCommand, commandPresetId) => {
13
+ if (commandPresetId)
14
+ return settings.getCommandPreset(commandPresetId);
15
+ const executable = getStartupCommandExecutable(startupCommand);
16
+ return executable ? settings.getCommandPreset(executable) : undefined;
17
+ };
18
+ export const resolveStartupCommandLaunchConfig = (settings, startupCommand, commandPresetId = null) => {
19
+ const trimmedStartupCommand = startupCommand.trim();
20
+ if (!trimmedStartupCommand)
21
+ return undefined;
22
+ const parsed = createStartupCommandLaunch(trimmedStartupCommand);
23
+ const preset = findPresetForStartupCommand(settings, trimmedStartupCommand, commandPresetId);
24
+ return {
25
+ command: parsed.command,
26
+ args: parsed.args,
27
+ commandPresetId: null,
28
+ interactiveCommand: preset?.command ?? getStartupCommandExecutable(trimmedStartupCommand),
29
+ presetAugmentationDisabled: true,
30
+ sessionIdCapture: preset?.sessionIdCapture ?? null,
31
+ };
32
+ };
33
+ //# sourceMappingURL=agent-launch-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-launch-resolver.js","sourceRoot":"","sources":["../../../src/server/agent-launch-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAA;AAEpC,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,QAAuB,EACvB,eAAuB,EACa,EAAE;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;IACzD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC7B,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,eAAe,EAAE,MAAM,CAAC,EAAE;KAC3B,CAAA;AACH,CAAC,CAAA;AAED,MAAM,2BAA2B,GAAG,CAClC,QAAuB,EACvB,cAAsB,EACtB,eAA8B,EAC9B,EAAE;IACF,IAAI,eAAe;QAAE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;IACtE,MAAM,UAAU,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAA;IAC9D,OAAO,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,QAAuB,EACvB,cAAsB,EACtB,kBAAiC,IAAI,EACD,EAAE;IACtC,MAAM,qBAAqB,GAAG,cAAc,CAAC,IAAI,EAAE,CAAA;IACnD,IAAI,CAAC,qBAAqB;QAAE,OAAO,SAAS,CAAA;IAC5C,MAAM,MAAM,GAAG,0BAA0B,CAAC,qBAAqB,CAAC,CAAA;IAChE,MAAM,MAAM,GAAG,2BAA2B,CAAC,QAAQ,EAAE,qBAAqB,EAAE,eAAe,CAAC,CAAA;IAC5F,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,eAAe,EAAE,IAAI;QACrB,kBAAkB,EAAE,MAAM,EAAE,OAAO,IAAI,2BAA2B,CAAC,qBAAqB,CAAC;QACzF,0BAA0B,EAAE,IAAI;QAChC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,IAAI,IAAI;KACnD,CAAA;AACH,CAAC,CAAA"}
@@ -19,9 +19,8 @@ export interface PersistedAgentRun {
19
19
  startedAt: number;
20
20
  endedAt: number | null;
21
21
  }
22
- export declare const createAgentRunStore: (db: Database | undefined) => {
22
+ export declare const createAgentRunStore: (db: Database) => {
23
23
  close: () => void;
24
- initialize: () => void;
25
24
  insertAgentRun: (runId: string, agentId: string, startedAt: number, pid: number | null, status?: PersistedAgentRun["status"], exitCode?: number | null, endedAt?: number | null) => void;
26
25
  deleteLaunchConfig: (workspaceId: string, agentId: string) => void;
27
26
  listAgentRuns: (agentId: string) => {
@@ -20,7 +20,6 @@ const parseSessionIdCaptureJson = (value) => {
20
20
  };
21
21
  export const createAgentRunStore = (db) => {
22
22
  let closed = false;
23
- const initialize = () => { };
24
23
  const close = () => {
25
24
  closed = true;
26
25
  };
@@ -28,9 +27,6 @@ export const createAgentRunStore = (db) => {
28
27
  if (closed) {
29
28
  return [];
30
29
  }
31
- if (!db) {
32
- return [];
33
- }
34
30
  return db
35
31
  .prepare(`SELECT workspace_id, agent_id, command, args_json, command_preset_id, interactive_command, preset_augmentation_disabled, resume_args_template, session_id_capture_json
36
32
  FROM agent_launch_configs ORDER BY updated_at ASC`)
@@ -57,7 +53,7 @@ export const createAgentRunStore = (db) => {
57
53
  return;
58
54
  }
59
55
  const createdAt = Date.now();
60
- db?.prepare(`INSERT INTO agent_launch_configs (
56
+ db.prepare(`INSERT INTO agent_launch_configs (
61
57
  workspace_id,
62
58
  agent_id,
63
59
  command,
@@ -85,28 +81,25 @@ export const createAgentRunStore = (db) => {
85
81
  if (closed) {
86
82
  return;
87
83
  }
88
- db?.prepare('DELETE FROM agent_launch_configs WHERE workspace_id = ? AND agent_id = ?').run(workspaceId, agentId);
84
+ db.prepare('DELETE FROM agent_launch_configs WHERE workspace_id = ? AND agent_id = ?').run(workspaceId, agentId);
89
85
  };
90
86
  const insertAgentRun = (runId, agentId, startedAt, pid, status = 'starting', exitCode = null, endedAt = null) => {
91
87
  if (closed) {
92
88
  return;
93
89
  }
94
- db?.prepare(`INSERT INTO agent_runs (run_id, agent_id, pid, status, exit_code, started_at, ended_at, created_at, updated_at)
90
+ db.prepare(`INSERT INTO agent_runs (run_id, agent_id, pid, status, exit_code, started_at, ended_at, created_at, updated_at)
95
91
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(runId, agentId, pid, status, exitCode, startedAt, endedAt, startedAt, startedAt);
96
92
  };
97
93
  const updatePersistedRun = (runId, status, exitCode, endedAt) => {
98
94
  if (closed) {
99
95
  return;
100
96
  }
101
- db?.prepare('UPDATE agent_runs SET status = ?, exit_code = ?, ended_at = ?, updated_at = ? WHERE run_id = ?').run(status, exitCode, endedAt, Date.now(), runId);
97
+ db.prepare('UPDATE agent_runs SET status = ?, exit_code = ?, ended_at = ?, updated_at = ? WHERE run_id = ?').run(status, exitCode, endedAt, Date.now(), runId);
102
98
  };
103
99
  const listAgentRuns = (agentId) => {
104
100
  if (closed) {
105
101
  return [];
106
102
  }
107
- if (!db) {
108
- return [];
109
- }
110
103
  return db
111
104
  .prepare('SELECT run_id, agent_id, pid, status, exit_code, started_at, ended_at FROM agent_runs WHERE agent_id = ? ORDER BY started_at DESC')
112
105
  .all(agentId)
@@ -127,13 +120,12 @@ export const createAgentRunStore = (db) => {
127
120
  if (closed) {
128
121
  return;
129
122
  }
130
- db?.prepare(`UPDATE agent_runs
123
+ db.prepare(`UPDATE agent_runs
131
124
  SET status = 'error', exit_code = NULL, ended_at = ?, updated_at = ?
132
125
  WHERE status IN ('starting', 'running')`).run(endedAt, endedAt);
133
126
  };
134
127
  return {
135
128
  close,
136
- initialize,
137
129
  insertAgentRun,
138
130
  deleteLaunchConfig,
139
131
  listAgentRuns,
@@ -1 +1 @@
1
- {"version":3,"file":"agent-run-store.js","sourceRoot":"","sources":["../../../src/server/agent-run-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-run-store.js","sourceRoot":"","sources":["../../../src/server/agent-run-store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAuB5D,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,EAAE;IAC1D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAY,CAAA;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC9E,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,+BAA+B,OAAO,8BAA8B,EAAE,KAAK,CAAC,CAAA;QACzF,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,+BAA+B,OAAO,8BAA8B,CAAC,CAAA;IAClF,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAcD,MAAM,yBAAyB,GAAG,CAAC,KAAoB,EAAE,EAAE;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AACjD,CAAC,CAAA;AAYD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAY,EAAE,EAAE;IAClD,IAAI,MAAM,GAAG,KAAK,CAAA;IAElB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,MAAM,GAAG,IAAI,CAAA;IACf,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,EAAE,CAAA;QACX,CAAC;QAED,OAAO,EAAE;aACN,OAAO,CACN;2DACmD,CACpD;aACA,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,GAAY,EAAE,EAAE;YACpB,MAAM,QAAQ,GAAG,GAAsB,CAAA;YACvC,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,QAAQ;gBAC1B,MAAM,EAAE;oBACN,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC;oBAC1D,eAAe,EAAE,QAAQ,CAAC,iBAAiB;oBAC3C,kBAAkB,EAAE,QAAQ,CAAC,mBAAmB;oBAChD,0BAA0B,EAAE,QAAQ,CAAC,4BAA4B,KAAK,CAAC;oBACvE,kBAAkB,EAAE,QAAQ,CAAC,oBAAoB;oBACjD,gBAAgB,EAAE,yBAAyB,CAAC,QAAQ,CAAC,uBAAuB,CAAC;iBAC9E;gBACD,WAAW,EAAE,QAAQ,CAAC,YAAY;aACnC,CAAA;QACH,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,CACvB,WAAmB,EACnB,OAAe,EACf,KAA6B,EAC7B,EAAE;QACF,IAAI,MAAM,EAAE,CAAC;YACX,OAAM;QACR,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,EAAE,CAAC,OAAO,CACR;;;;;;;;;;;;;;;;;;;;;;2CAsBqC,CACtC,CAAC,GAAG,CACH,WAAW,EACX,OAAO,EACP,KAAK,CAAC,OAAO,EACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAChC,KAAK,CAAC,eAAe,IAAI,IAAI,EAC7B,KAAK,CAAC,kBAAkB,IAAI,IAAI,EAChC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxC,KAAK,CAAC,kBAAkB,IAAI,IAAI,EAChC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,EACtE,SAAS,EACT,SAAS,CACV,CAAA;IACH,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,CAAC,WAAmB,EAAE,OAAe,EAAE,EAAE;QAClE,IAAI,MAAM,EAAE,CAAC;YACX,OAAM;QACR,CAAC;QACD,EAAE,CAAC,OAAO,CAAC,0EAA0E,CAAC,CAAC,GAAG,CACxF,WAAW,EACX,OAAO,CACR,CAAA;IACH,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CACrB,KAAa,EACb,OAAe,EACf,SAAiB,EACjB,GAAkB,EAClB,SAAsC,UAAU,EAChD,WAA0B,IAAI,EAC9B,UAAyB,IAAI,EAC7B,EAAE;QACF,IAAI,MAAM,EAAE,CAAC;YACX,OAAM;QACR,CAAC;QACD,EAAE,CAAC,OAAO,CACR;0CACoC,CACrC,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IACxF,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,CACzB,KAAa,EACb,MAAmC,EACnC,QAAuB,EACvB,OAAsB,EACtB,EAAE;QACF,IAAI,MAAM,EAAE,CAAC;YACX,OAAM;QACR,CAAC;QACD,EAAE,CAAC,OAAO,CACR,gGAAgG,CACjG,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAA;IACrD,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,EAAE,CAAA;QACX,CAAC;QAED,OAAO,EAAE;aACN,OAAO,CACN,mIAAmI,CACpI;aACA,GAAG,CAAC,OAAO,CAAC;aACZ,GAAG,CAAC,CAAC,GAAY,EAAE,EAAE;YACpB,MAAM,QAAQ,GAAG,GAAkB,CAAA;YACnC,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,OAAO,EAAE,QAAQ,CAAC,QAAQ;gBAC1B,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,QAAQ,CAAC,SAAS;gBAC5B,SAAS,EAAE,QAAQ,CAAC,UAAU;gBAC9B,OAAO,EAAE,QAAQ,CAAC,QAAQ;aAC3B,CAAA;QACH,CAAC,CAA+B,CAAA;IACpC,CAAC,CAAA;IAED,MAAM,uBAAuB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE;QACvD,IAAI,MAAM,EAAE,CAAC;YACX,OAAM;QACR,CAAC;QACD,EAAE,CAAC,OAAO,CACR;;+CAEyC,CAC1C,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,OAAO;QACL,KAAK;QACL,cAAc;QACd,kBAAkB;QAClB,aAAa;QACb,iBAAiB;QACjB,uBAAuB;QACvB,gBAAgB;QAChB,kBAAkB;KACnB,CAAA;AACH,CAAC,CAAA"}
@@ -2,7 +2,6 @@ import type { AgentLaunchConfigInput, PersistedAgentRun } from './agent-run-stor
2
2
  type PersistedRunStatus = PersistedAgentRun['status'];
3
3
  export interface AgentRunStorePort {
4
4
  close?: () => void;
5
- initialize?: () => void;
6
5
  insertAgentRun: (runId: string, agentId: string, startedAt: number, pid: number | null, status?: PersistedRunStatus, exitCode?: number | null, endedAt?: number | null) => void;
7
6
  listAgentRuns: (agentId: string) => PersistedAgentRun[];
8
7
  listLaunchConfigs: () => Array<{
@@ -10,7 +9,7 @@ export interface AgentRunStorePort {
10
9
  config: AgentLaunchConfigInput;
11
10
  workspaceId: string;
12
11
  }>;
13
- markUnfinishedRunsStale?: (endedAt?: number) => void;
12
+ markUnfinishedRunsStale: (endedAt?: number) => void;
14
13
  deleteLaunchConfig: (workspaceId: string, agentId: string) => void;
15
14
  saveLaunchConfig: (workspaceId: string, agentId: string, input: AgentLaunchConfigInput) => void;
16
15
  updatePersistedRun: (runId: string, status: PersistedRunStatus, exitCode: number | null, endedAt: number | null) => void;
@@ -4,4 +4,4 @@ export interface AgentSessionStore {
4
4
  getLastSessionId: (workspaceId: string, agentId: string) => string | undefined;
5
5
  setLastSessionId: (workspaceId: string, agentId: string, sessionId: string) => void;
6
6
  }
7
- export declare const createAgentSessionStore: (db: Database | undefined) => AgentSessionStore;
7
+ export declare const createAgentSessionStore: (db: Database) => AgentSessionStore;
@@ -1,20 +1,16 @@
1
1
  export const createAgentSessionStore = (db) => {
2
2
  const lastSessionIds = new Map();
3
- if (db) {
4
- for (const row of db
5
- .prepare('SELECT agent_id, workspace_id, last_session_id FROM agent_sessions ORDER BY updated_at ASC')
6
- .all()) {
7
- lastSessionIds.set(`${row.workspace_id}:${row.agent_id}`, row.last_session_id);
8
- }
3
+ for (const row of db
4
+ .prepare('SELECT agent_id, workspace_id, last_session_id FROM agent_sessions ORDER BY updated_at ASC')
5
+ .all()) {
6
+ lastSessionIds.set(`${row.workspace_id}:${row.agent_id}`, row.last_session_id);
9
7
  }
10
8
  return {
11
9
  clearLastSessionId(workspaceId, agentId) {
12
- if (db) {
13
- db.transaction(() => {
14
- db.prepare('DELETE FROM agent_sessions WHERE workspace_id = ? AND agent_id = ?').run(workspaceId, agentId);
15
- db.prepare('UPDATE workers SET last_session_id = NULL WHERE id = ? AND workspace_id = ?').run(agentId, workspaceId);
16
- })();
17
- }
10
+ db.transaction(() => {
11
+ db.prepare('DELETE FROM agent_sessions WHERE workspace_id = ? AND agent_id = ?').run(workspaceId, agentId);
12
+ db.prepare('UPDATE workers SET last_session_id = NULL WHERE id = ? AND workspace_id = ?').run(agentId, workspaceId);
13
+ })();
18
14
  lastSessionIds.delete(`${workspaceId}:${agentId}`);
19
15
  },
20
16
  getLastSessionId(workspaceId, agentId) {
@@ -22,29 +18,27 @@ export const createAgentSessionStore = (db) => {
22
18
  },
23
19
  setLastSessionId(workspaceId, agentId, sessionId) {
24
20
  const updatedAt = Date.now();
25
- if (db) {
26
- const workerExists = Boolean(db
27
- .prepare('SELECT 1 FROM workers WHERE workspace_id = ? AND id = ?')
28
- .get(workspaceId, agentId));
29
- const isOrchestrator = agentId === `${workspaceId}:orchestrator`;
30
- const workspaceExists = isOrchestrator &&
31
- Boolean(db.prepare('SELECT 1 FROM workspaces WHERE id = ?').get(workspaceId));
32
- if (!workerExists && !workspaceExists) {
33
- lastSessionIds.delete(`${workspaceId}:${agentId}`);
34
- return;
35
- }
36
- db.transaction(() => {
37
- db.prepare(`INSERT INTO agent_sessions (agent_id, workspace_id, last_session_id, updated_at)
38
- VALUES (?, ?, ?, ?)
39
- ON CONFLICT(workspace_id, agent_id) DO UPDATE SET
40
- workspace_id = excluded.workspace_id,
41
- last_session_id = excluded.last_session_id,
42
- updated_at = excluded.updated_at`).run(agentId, workspaceId, sessionId, updatedAt);
43
- if (workerExists) {
44
- db.prepare('UPDATE workers SET last_session_id = ? WHERE id = ? AND workspace_id = ?').run(sessionId, agentId, workspaceId);
45
- }
46
- })();
21
+ const workerExists = Boolean(db
22
+ .prepare('SELECT 1 FROM workers WHERE workspace_id = ? AND id = ?')
23
+ .get(workspaceId, agentId));
24
+ const isOrchestrator = agentId === `${workspaceId}:orchestrator`;
25
+ const workspaceExists = isOrchestrator &&
26
+ Boolean(db.prepare('SELECT 1 FROM workspaces WHERE id = ?').get(workspaceId));
27
+ if (!workerExists && !workspaceExists) {
28
+ lastSessionIds.delete(`${workspaceId}:${agentId}`);
29
+ return;
47
30
  }
31
+ db.transaction(() => {
32
+ db.prepare(`INSERT INTO agent_sessions (agent_id, workspace_id, last_session_id, updated_at)
33
+ VALUES (?, ?, ?, ?)
34
+ ON CONFLICT(workspace_id, agent_id) DO UPDATE SET
35
+ workspace_id = excluded.workspace_id,
36
+ last_session_id = excluded.last_session_id,
37
+ updated_at = excluded.updated_at`).run(agentId, workspaceId, sessionId, updatedAt);
38
+ if (workerExists) {
39
+ db.prepare('UPDATE workers SET last_session_id = ? WHERE id = ? AND workspace_id = ?').run(sessionId, agentId, workspaceId);
40
+ }
41
+ })();
48
42
  lastSessionIds.set(`${workspaceId}:${agentId}`, sessionId);
49
43
  },
50
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-store.js","sourceRoot":"","sources":["../../../src/server/agent-session-store.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAwB,EAAqB,EAAE;IACrF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEhD,IAAI,EAAE,EAAE,CAAC;QACP,KAAK,MAAM,GAAG,IAAI,EAAE;aACjB,OAAO,CACN,4FAA4F,CAC7F;aACA,GAAG,EAAuB,EAAE,CAAC;YAC9B,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,eAAe,CAAC,CAAA;QAChF,CAAC;IACH,CAAC;IAED,OAAO;QACL,kBAAkB,CAAC,WAAW,EAAE,OAAO;YACrC,IAAI,EAAE,EAAE,CAAC;gBACP,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;oBAClB,EAAE,CAAC,OAAO,CAAC,oEAAoE,CAAC,CAAC,GAAG,CAClF,WAAW,EACX,OAAO,CACR,CAAA;oBACD,EAAE,CAAC,OAAO,CACR,6EAA6E,CAC9E,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;gBAC7B,CAAC,CAAC,EAAE,CAAA;YACN,CAAC;YACD,cAAc,CAAC,MAAM,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC,CAAA;QACpD,CAAC;QACD,gBAAgB,CAAC,WAAW,EAAE,OAAO;YACnC,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC,CAAA;QACxD,CAAC;QACD,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,YAAY,GAAG,OAAO,CAC1B,EAAE;qBACC,OAAO,CAAC,yDAAyD,CAAC;qBAClE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAC7B,CAAA;gBACD,MAAM,cAAc,GAAG,OAAO,KAAK,GAAG,WAAW,eAAe,CAAA;gBAChE,MAAM,eAAe,GACnB,cAAc;oBACd,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;gBAC/E,IAAI,CAAC,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;oBACtC,cAAc,CAAC,MAAM,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC,CAAA;oBAClD,OAAM;gBACR,CAAC;gBACD,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;oBAClB,EAAE,CAAC,OAAO,CACR;;;;;gDAKoC,CACrC,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;oBACjD,IAAI,YAAY,EAAE,CAAC;wBACjB,EAAE,CAAC,OAAO,CACR,0EAA0E,CAC3E,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;oBACxC,CAAC;gBACH,CAAC,CAAC,EAAE,CAAA;YACN,CAAC;YACD,cAAc,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,EAAE,SAAS,CAAC,CAAA;QAC5D,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"agent-session-store.js","sourceRoot":"","sources":["../../../src/server/agent-session-store.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAY,EAAqB,EAAE;IACzE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEhD,KAAK,MAAM,GAAG,IAAI,EAAE;SACjB,OAAO,CACN,4FAA4F,CAC7F;SACA,GAAG,EAAuB,EAAE,CAAC;QAC9B,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,eAAe,CAAC,CAAA;IAChF,CAAC;IAED,OAAO;QACL,kBAAkB,CAAC,WAAW,EAAE,OAAO;YACrC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;gBAClB,EAAE,CAAC,OAAO,CAAC,oEAAoE,CAAC,CAAC,GAAG,CAClF,WAAW,EACX,OAAO,CACR,CAAA;gBACD,EAAE,CAAC,OAAO,CACR,6EAA6E,CAC9E,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;YAC7B,CAAC,CAAC,EAAE,CAAA;YACJ,cAAc,CAAC,MAAM,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC,CAAA;QACpD,CAAC;QACD,gBAAgB,CAAC,WAAW,EAAE,OAAO;YACnC,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC,CAAA;QACxD,CAAC;QACD,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,MAAM,YAAY,GAAG,OAAO,CAC1B,EAAE;iBACC,OAAO,CAAC,yDAAyD,CAAC;iBAClE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAC7B,CAAA;YACD,MAAM,cAAc,GAAG,OAAO,KAAK,GAAG,WAAW,eAAe,CAAA;YAChE,MAAM,eAAe,GACnB,cAAc;gBACd,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;YAC/E,IAAI,CAAC,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;gBACtC,cAAc,CAAC,MAAM,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC,CAAA;gBAClD,OAAM;YACR,CAAC;YACD,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;gBAClB,EAAE,CAAC,OAAO,CACR;;;;;8CAKoC,CACrC,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;gBACjD,IAAI,YAAY,EAAE,CAAC;oBACjB,EAAE,CAAC,OAAO,CACR,0EAA0E,CAC3E,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;gBACxC,CAAC;YACH,CAAC,CAAC,EAAE,CAAA;YACJ,cAAc,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,EAAE,SAAS,CAAC,CAAA;QAC5D,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
@@ -18,7 +18,7 @@ export const buildAgentStartupInstructions = ({ agent, workspace, }) => {
18
18
  lines.push('你的职责:', '- 直接响应 user,澄清需求并拆解任务', `- 维护 ${TASKS_RELATIVE_PATH}`, '- 按 worker 名称派单,并根据汇报推进下一步', '', '可用 team 命令:', '- team list', '- team send <worker-name> "<task>"', '', '派单时必须使用 worker name,不要使用 worker id。', '', 'Hive worker 派单规则:', ...getHiveTeamRules(agent));
19
19
  }
20
20
  else {
21
- lines.push('可用 team 命令:', '- team report "<完整汇报>"', '- team status "<当前状态>"', '', '完成任务后必须执行 `team report "<结论>"`。', '失败、阻塞或部分完成也用 `team report "<当前状态与原因>"` 汇报。', '没有进行中的任务时,用 `team status "<当前状态>"` 汇报接入、待命或阻塞状态。', '不要调用 team send;worker 之间不能直接派单。', '', 'Hive worker 边界:', ...getHiveTeamRules(agent));
21
+ lines.push('可用 team 命令:', '- team report "<完整汇报>" [--dispatch <id>] [--artifact <path>] 完成/失败/阻塞汇报', '- team report --stdin [--dispatch <id>] [--artifact <path>] 同上,从 stdin 读正文(适合多行/含引号/特殊字符)', '- team status "<当前状态>" [--artifact <path>] 中段进度/待命/接入状态', '- team status --stdin [--artifact <path>] 同上,从 stdin 读正文', '- team list 查看 workspace 内的 worker(含状态)', '- team --help 仅查命令用法;**不是**汇报手段', '', '语法要点:', '- 正文是第一个 positional argument,flag 顺序任意:`team report "结论" --dispatch X` 和 `team report --dispatch X "结论"` 都成立。', "- 长正文(多行 / 含引号 / shell 特殊字符 / heredoc)一律走 `--stdin`,并用 *quoted* heredoc(`<<'EOF'`)防止 shell 展开 $vars / 反引号 / 命令替换:", " 例:`team report --stdin --dispatch <id> <<'EOF'`", ' `... 长报告(含 $VAR、`backtick`、"引号" 都按字面量保留)...`', ' `EOF`', '- CLI 报错会同时打印 USAGE,可直接对照修正参数。', '', '完成任务后必须执行 `team report "<结论>"`。', '失败、阻塞或部分完成也用 `team report "<当前状态与原因>"` 汇报。', '没有进行中的任务时,用 `team status "<当前状态>"` 汇报接入、待命或阻塞状态。', '不要调用 team send;worker 之间不能直接派单。', '', 'Hive worker 边界:', ...getHiveTeamRules(agent));
22
22
  }
23
23
  lines.push('');
24
24
  return lines.join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"agent-startup-instructions.js","sourceRoot":"","sources":["../../../src/server/agent-startup-instructions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAC7C,KAAK,EACL,SAAS,GAIV,EAAE,EAAE,CAAC,sCAAsC,SAAS,CAAC,EAAE,cAAc,KAAK,CAAC,EAAE,EAAE,CAAA;AAEhF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAC7C,KAAK,EACL,SAAS,GAIV,EAAE,EAAE,CAAC,MAAM,SAAS,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,CAAA;AAE5D,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAC5C,KAAK,EACL,SAAS,GAIV,EAAE,EAAE;IACH,MAAM,KAAK,GAAG;QACZ,kBAAkB;QAClB,EAAE;QACF,8BAA8B,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACpD,iBAAiB,SAAS,CAAC,IAAI,EAAE;QACjC,SAAS,SAAS,CAAC,IAAI,EAAE;QACzB,8BAA8B,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACpD,EAAE;QACF,QAAQ,KAAK,CAAC,WAAW,EAAE;QAC3B,EAAE;KACH,CAAA;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CACR,OAAO,EACP,uBAAuB,EACvB,QAAQ,mBAAmB,EAAE,EAC7B,4BAA4B,EAC5B,EAAE,EACF,aAAa,EACb,aAAa,EACb,oCAAoC,EACpC,EAAE,EACF,qCAAqC,EACrC,EAAE,EACF,mBAAmB,EACnB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAC3B,CAAA;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CACR,aAAa,EACb,wBAAwB,EACxB,wBAAwB,EACxB,EAAE,EACF,iCAAiC,EACjC,4CAA4C,EAC5C,kDAAkD,EAClD,iCAAiC,EACjC,EAAE,EACF,iBAAiB,EACjB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAC3B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC,CAAA"}
1
+ {"version":3,"file":"agent-startup-instructions.js","sourceRoot":"","sources":["../../../src/server/agent-startup-instructions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAC7C,KAAK,EACL,SAAS,GAIV,EAAE,EAAE,CAAC,sCAAsC,SAAS,CAAC,EAAE,cAAc,KAAK,CAAC,EAAE,EAAE,CAAA;AAEhF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAC7C,KAAK,EACL,SAAS,GAIV,EAAE,EAAE,CAAC,MAAM,SAAS,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,CAAA;AAE5D,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAC5C,KAAK,EACL,SAAS,GAIV,EAAE,EAAE;IACH,MAAM,KAAK,GAAG;QACZ,kBAAkB;QAClB,EAAE;QACF,8BAA8B,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACpD,iBAAiB,SAAS,CAAC,IAAI,EAAE;QACjC,SAAS,SAAS,CAAC,IAAI,EAAE;QACzB,8BAA8B,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACpD,EAAE;QACF,QAAQ,KAAK,CAAC,WAAW,EAAE;QAC3B,EAAE;KACH,CAAA;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CACR,OAAO,EACP,uBAAuB,EACvB,QAAQ,mBAAmB,EAAE,EAC7B,4BAA4B,EAC5B,EAAE,EACF,aAAa,EACb,aAAa,EACb,oCAAoC,EACpC,EAAE,EACF,qCAAqC,EACrC,EAAE,EACF,mBAAmB,EACnB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAC3B,CAAA;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CACR,aAAa,EACb,4EAA4E,EAC5E,mGAAmG,EACnG,+EAA+E,EAC/E,mFAAmF,EACnF,gGAAgG,EAChG,sFAAsF,EACtF,EAAE,EACF,OAAO,EACP,+GAA+G,EAC/G,mHAAmH,EACnH,mDAAmD,EACnD,qDAAqD,EACrD,cAAc,EACd,gCAAgC,EAChC,EAAE,EACF,iCAAiC,EACjC,4CAA4C,EAC5C,kDAAkD,EAClD,iCAAiC,EACjC,EAAE,EACF,iBAAiB,EACjB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAC3B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC,CAAA"}
@@ -4,7 +4,7 @@ export interface AppStateRecord {
4
4
  key: string;
5
5
  value: AppStateValue;
6
6
  }
7
- export declare const createAppStateStore: (db: Database | undefined) => {
7
+ export declare const createAppStateStore: (db: Database) => {
8
8
  get: (key: string) => AppStateRecord | undefined;
9
9
  set: (key: string, value: AppStateValue) => void;
10
10
  };
@@ -1,12 +1,10 @@
1
1
  export const createAppStateStore = (db) => {
2
2
  const get = (key) => {
3
- if (!db)
4
- return undefined;
5
3
  const row = db.prepare('SELECT key, value FROM app_state WHERE key = ?').get(key);
6
4
  return row ? { key: row.key, value: row.value } : undefined;
7
5
  };
8
6
  const set = (key, value) => {
9
- db?.prepare(`INSERT INTO app_state (key, value, updated_at)
7
+ db.prepare(`INSERT INTO app_state (key, value, updated_at)
10
8
  VALUES (?, ?, ?)
11
9
  ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = excluded.updated_at`).run(key, value, Date.now());
12
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"app-state-store.js","sourceRoot":"","sources":["../../../src/server/app-state-store.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAwB,EAAE,EAAE;IAC9D,MAAM,GAAG,GAAG,CAAC,GAAW,EAA8B,EAAE;QACtD,IAAI,CAAC,EAAE;YAAE,OAAO,SAAS,CAAA;QACzB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,CAAC,GAAG,CAEnE,CAAA;QACb,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7D,CAAC,CAAA;IAED,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,KAAoB,EAAE,EAAE;QAChD,EAAE,EAAE,OAAO,CACT;;+FAEyF,CAC1F,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"app-state-store.js","sourceRoot":"","sources":["../../../src/server/app-state-store.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAY,EAAE,EAAE;IAClD,MAAM,GAAG,GAAG,CAAC,GAAW,EAA8B,EAAE;QACtD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,CAAC,GAAG,CAEnE,CAAA;QACb,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7D,CAAC,CAAA;IAED,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,KAAoB,EAAE,EAAE;QAChD,EAAE,CAAC,OAAO,CACR;;+FAEyF,CAC1F,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AACrB,CAAC,CAAA"}
@@ -20,7 +20,7 @@ export interface CommandPresetInput {
20
20
  sessionIdCapture: SessionIdCaptureConfig | null;
21
21
  yoloArgsTemplate: string[] | null;
22
22
  }
23
- export declare const createCommandPresetStore: (db: Database | undefined) => {
23
+ export declare const createCommandPresetStore: (db: Database) => {
24
24
  create: (input: CommandPresetInput) => {
25
25
  isBuiltin: boolean;
26
26
  displayName: string;
@@ -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?.prepare(`UPDATE command_presets
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?.prepare('DELETE FROM command_presets WHERE id = ?').run(id);
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":"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"}
1
+ {"version":3,"file":"command-preset-store.js","sourceRoot":"","sources":["../../../src/server/command-preset-store.ts"],"names":[],"mappings":"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"}
@@ -33,19 +33,33 @@ export interface ListDispatchesOptions {
33
33
  offset?: number;
34
34
  status?: DispatchStatus;
35
35
  }
36
- export declare const createDispatchLedgerStore: (db: Database | undefined) => {
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) => DispatchRecord | undefined;
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":"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"}
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,19 @@
1
1
  const ORCHESTRATOR_RULES = [
2
- 'Hive worker 是右侧卡片里的真实 CLI agent,不是 Claude Code 内置的 Task / Explore / subagent。',
2
+ 'Hive worker 是右侧卡片里的真实 CLI agent,不是你所在 CLI 的内置 subagent / 子代理工具。',
3
3
  '当 user 要你“让 worker ... / 给 worker 找活 / 让成员处理”时,先执行 `team list` 确认真实 Hive worker。',
4
+ '普通、低风险、几分钟内能直接完成的小任务可以自己做;不要为了形式感派 worker。需要并行、长时间执行、独立 review/test、专门角色,或 user 明确要求 worker/成员处理时,再用 `team send`。',
4
5
  '如果只有一个可用 worker,直接用 `team send <worker-name> "<task>"` 派给它;不要把选择题丢回给 user。',
5
6
  '当 user 要你“让 worker ...”时,必须用 `team send <worker-name> "<task>"` 派给 Hive worker。',
6
- '不要使用 Claude Code 内置的 Task / Explore / subagent 来代替 Hive worker;它们不会出现在 Hive UI,也不会更新 Hive 调度状态。',
7
+ '不要使用你所在 CLI 的内置 subagent / 子代理工具(如 Task / Explore 等)来代替 Hive worker;它们不会出现在 Hive UI,也不会更新 Hive 调度状态。',
8
+ '`team list` 返回的 `last_pty_line` 是该 worker PTY 终端的最后一行原始输出(含任意 stdout / help / 控制序列噪声),**不是** worker 的正式汇报。正式汇报只来自 stdin 注入的 `[Hive 系统消息:来自 @<name> 的汇报]` 或 `[Hive 系统消息:来自 @<name> 的状态更新]`——只把这两种来源当作 reply。',
7
9
  ];
8
10
  const WORKER_RULES = [
9
- '你是 Hive 右侧卡片里的真实 CLI worker,不是 Claude Code 内置 subagent。',
10
- '不要调用 team send,也不要再启动 Claude Code 内置的 Task / Explore / subagent 来替你完成派单。',
11
+ '你是 Hive 右侧卡片里的真实 CLI worker,不是你所在 CLI 的内置 subagent。',
12
+ '不要调用 team send,也不要再启动你所在 CLI 的内置 subagent / 子代理工具(如 Task / Explore 等)来替你完成派单。',
11
13
  '完成或阻塞已派发任务时必须用 `team report` 汇报给 Orchestrator。',
12
14
  '如果当前没有明确派发任务,只是汇报待命、环境或状态,使用 `team status "<当前状态>"`。',
15
+ '`team --help` 只用于查命令语法,**绝不是** 汇报手段;其输出不会进入 Orchestrator 视野,跑完后仍需正式调用 `team report` / `team status`。',
16
+ '`team report` / `team status` 报错时会同时打印 USAGE,按 USAGE 修正参数后重试;不要把 `team --help` 当成"自我探查"的替身。',
13
17
  ];
14
18
  export const getHiveTeamRules = (agent) => agent.role === 'orchestrator' ? ORCHESTRATOR_RULES : WORKER_RULES;
15
19
  //# 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,+EAA+E;IAC/E,kFAAkF;IAClF,4EAA4E;IAC5E,iFAAiF;IACjF,iGAAiG;CAClG,CAAA;AAED,MAAM,YAAY,GAAG;IACnB,yDAAyD;IACzD,0EAA0E;IAC1E,gDAAgD;IAChD,sDAAsD;CACvD,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"}
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,mHAAmH;IACnH,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"}