@tt-a1i/hive 0.6.0-alpha.3 → 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.
Files changed (88) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +15 -4
  3. package/README.zh-CN.md +6 -1
  4. package/dist/src/cli/hive.d.ts +5 -1
  5. package/dist/src/cli/hive.js +14 -16
  6. package/dist/src/cli/hive.js.map +1 -1
  7. package/dist/src/cli/team.d.ts +8 -0
  8. package/dist/src/cli/team.js +69 -26
  9. package/dist/src/cli/team.js.map +1 -1
  10. package/dist/src/server/agent-run-store.d.ts +1 -2
  11. package/dist/src/server/agent-run-store.js +5 -13
  12. package/dist/src/server/agent-run-store.js.map +1 -1
  13. package/dist/src/server/agent-runtime-ports.d.ts +1 -2
  14. package/dist/src/server/agent-session-store.d.ts +1 -1
  15. package/dist/src/server/agent-session-store.js +28 -34
  16. package/dist/src/server/agent-session-store.js.map +1 -1
  17. package/dist/src/server/agent-startup-instructions.js +1 -1
  18. package/dist/src/server/agent-startup-instructions.js.map +1 -1
  19. package/dist/src/server/app-state-store.d.ts +1 -1
  20. package/dist/src/server/app-state-store.js +1 -3
  21. package/dist/src/server/app-state-store.js.map +1 -1
  22. package/dist/src/server/app.d.ts +3 -1
  23. package/dist/src/server/app.js +3 -1
  24. package/dist/src/server/app.js.map +1 -1
  25. package/dist/src/server/command-preset-store.d.ts +1 -1
  26. package/dist/src/server/command-preset-store.js +2 -8
  27. package/dist/src/server/command-preset-store.js.map +1 -1
  28. package/dist/src/server/dispatch-ledger-store.d.ts +18 -4
  29. package/dist/src/server/dispatch-ledger-store.js +0 -66
  30. package/dist/src/server/dispatch-ledger-store.js.map +1 -1
  31. package/dist/src/server/hive-team-guidance.js +7 -4
  32. package/dist/src/server/hive-team-guidance.js.map +1 -1
  33. package/dist/src/server/message-log-store.d.ts +1 -3
  34. package/dist/src/server/message-log-store.js +2 -59
  35. package/dist/src/server/message-log-store.js.map +1 -1
  36. package/dist/src/server/package-version.d.ts +2 -0
  37. package/dist/src/server/package-version.js +18 -0
  38. package/dist/src/server/package-version.js.map +1 -0
  39. package/dist/src/server/role-template-store.d.ts +1 -1
  40. package/dist/src/server/role-template-store.js +2 -6
  41. package/dist/src/server/role-template-store.js.map +1 -1
  42. package/dist/src/server/route-types.d.ts +2 -0
  43. package/dist/src/server/routes-version.d.ts +2 -0
  44. package/dist/src/server/routes-version.js +7 -0
  45. package/dist/src/server/routes-version.js.map +1 -0
  46. package/dist/src/server/routes-workspaces.js +7 -7
  47. package/dist/src/server/routes-workspaces.js.map +1 -1
  48. package/dist/src/server/routes.js +2 -0
  49. package/dist/src/server/routes.js.map +1 -1
  50. package/dist/src/server/runtime-database.d.ts +1 -1
  51. package/dist/src/server/runtime-database.js +8 -4
  52. package/dist/src/server/runtime-database.js.map +1 -1
  53. package/dist/src/server/runtime-store-helpers.js +2 -4
  54. package/dist/src/server/runtime-store-helpers.js.map +1 -1
  55. package/dist/src/server/runtime-store.d.ts +1 -1
  56. package/dist/src/server/runtime-store.js +1 -1
  57. package/dist/src/server/runtime-store.js.map +1 -1
  58. package/dist/src/server/settings-store.d.ts +1 -1
  59. package/dist/src/server/settings-store.js.map +1 -1
  60. package/dist/src/server/team-list-serializer.d.ts +1 -1
  61. package/dist/src/server/team-list-serializer.js +2 -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/version-service.d.ts +16 -0
  67. package/dist/src/server/version-service.js +70 -0
  68. package/dist/src/server/version-service.js.map +1 -0
  69. package/dist/src/server/worker-output-tracker.d.ts +1 -1
  70. package/dist/src/server/worker-output-tracker.js +2 -2
  71. package/dist/src/server/worker-output-tracker.js.map +1 -1
  72. package/dist/src/server/workspace-store-hydration.d.ts +2 -2
  73. package/dist/src/server/workspace-store-hydration.js +1 -4
  74. package/dist/src/server/workspace-store-hydration.js.map +1 -1
  75. package/dist/src/server/workspace-store.d.ts +1 -1
  76. package/dist/src/server/workspace-store.js +5 -5
  77. package/dist/src/server/workspace-store.js.map +1 -1
  78. package/dist/src/shared/types.d.ts +6 -3
  79. package/package.json +5 -1
  80. package/web/dist/assets/addon-clipboard-wHJhZAA4.js +1 -0
  81. package/web/dist/assets/addon-unicode11-Bt8F3D7-.js +7 -0
  82. package/web/dist/assets/addon-web-links-DIbG5aQx.js +1 -0
  83. package/web/dist/assets/addon-webgl-DCtw1yLn.js +64 -0
  84. package/web/dist/assets/index-CMHbdGhT.css +1 -0
  85. package/web/dist/assets/index-CkY03NZW.js +76 -0
  86. package/web/dist/index.html +2 -2
  87. package/web/dist/assets/index-CIlOwuEZ.js +0 -70
  88. package/web/dist/assets/index-eyw1Uar8.css +0 -1
@@ -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"}
@@ -2,12 +2,14 @@ import { type IncomingMessage, type ServerResponse } from 'node:http';
2
2
  import { type PickFolderResponse } from './fs-pick-folder.js';
3
3
  import type { RuntimeStore } from './runtime-store.js';
4
4
  import { type TasksFileService } from './tasks-file.js';
5
+ import { type VersionService } from './version-service.js';
5
6
  interface CreateAppOptions {
6
7
  store: RuntimeStore;
7
8
  pickFolderService?: () => Promise<PickFolderResponse>;
8
9
  tasksFileService?: TasksFileService;
10
+ versionService?: VersionService;
9
11
  }
10
- export declare const createApp: ({ store, pickFolderService, tasksFileService, }: CreateAppOptions) => {
12
+ export declare const createApp: ({ store, pickFolderService, tasksFileService, versionService, }: CreateAppOptions) => {
11
13
  server: import("http").Server<typeof IncomingMessage, typeof ServerResponse>;
12
14
  store: RuntimeStore;
13
15
  };
@@ -9,6 +9,7 @@ import { assertLocalRequest } from './local-request-guard.js';
9
9
  import { matchRoute } from './routes.js';
10
10
  import { createTasksFileService } from './tasks-file.js';
11
11
  import { createTerminalWebSocketServer } from './terminal-ws-server.js';
12
+ import { createVersionService } from './version-service.js';
12
13
  const getDefaultStaticDir = () => {
13
14
  const moduleDir = dirname(fileURLToPath(import.meta.url));
14
15
  if (moduleDir.includes(`${sep}dist${sep}src${sep}`)) {
@@ -74,7 +75,7 @@ const sendJson = (response, statusCode, body) => {
74
75
  response.setHeader('content-type', 'application/json; charset=utf-8');
75
76
  response.end(JSON.stringify(body));
76
77
  };
77
- export const createApp = ({ store, pickFolderService = pickFolder, tasksFileService = createTasksFileService(), }) => {
78
+ export const createApp = ({ store, pickFolderService = pickFolder, tasksFileService = createTasksFileService(), versionService = createVersionService(), }) => {
78
79
  const staticDir = process.env.HIVE_STATIC_DIR ?? getDefaultStaticDir();
79
80
  const staticAvailablePromise = canServeStatic(staticDir);
80
81
  const server = createServer(async (request, response) => {
@@ -90,6 +91,7 @@ export const createApp = ({ store, pickFolderService = pickFolder, tasksFileServ
90
91
  store,
91
92
  tasksFileService,
92
93
  pickFolderService,
94
+ versionService,
93
95
  params: match.params,
94
96
  });
95
97
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"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"}
@@ -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,18 @@
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
4
  '如果只有一个可用 worker,直接用 `team send <worker-name> "<task>"` 派给它;不要把选择题丢回给 user。',
5
5
  '当 user 要你“让 worker ...”时,必须用 `team send <worker-name> "<task>"` 派给 Hive worker。',
6
- '不要使用 Claude Code 内置的 Task / Explore / subagent 来代替 Hive worker;它们不会出现在 Hive UI,也不会更新 Hive 调度状态。',
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,不是 Claude Code 内置 subagent。',
10
- '不要调用 team send,也不要再启动 Claude Code 内置的 Task / Explore / subagent 来替你完成派单。',
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,+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,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 | undefined) => {
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[];