@tt-a1i/hive 0.6.0-alpha.2 → 0.6.0-alpha.4

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 (130) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +16 -9
  3. package/README.zh-CN.md +9 -12
  4. package/SECURITY.md +15 -3
  5. package/dist/src/cli/hive.d.ts +7 -1
  6. package/dist/src/cli/hive.js +46 -12
  7. package/dist/src/cli/hive.js.map +1 -1
  8. package/dist/src/cli/team.js +72 -9
  9. package/dist/src/cli/team.js.map +1 -1
  10. package/dist/src/server/agent-launch-cache.js +2 -0
  11. package/dist/src/server/agent-launch-cache.js.map +1 -1
  12. package/dist/src/server/agent-manager-support.js +88 -9
  13. package/dist/src/server/agent-manager-support.js.map +1 -1
  14. package/dist/src/server/agent-manager.js +0 -2
  15. package/dist/src/server/agent-manager.js.map +1 -1
  16. package/dist/src/server/agent-run-bootstrap.js +2 -0
  17. package/dist/src/server/agent-run-bootstrap.js.map +1 -1
  18. package/dist/src/server/agent-run-starter.js +2 -2
  19. package/dist/src/server/agent-run-starter.js.map +1 -1
  20. package/dist/src/server/agent-run-store.d.ts +5 -0
  21. package/dist/src/server/agent-run-store.js +18 -3
  22. package/dist/src/server/agent-run-store.js.map +1 -1
  23. package/dist/src/server/agent-runtime-close.js +3 -5
  24. package/dist/src/server/agent-runtime-close.js.map +1 -1
  25. package/dist/src/server/agent-runtime-contract.d.ts +4 -1
  26. package/dist/src/server/agent-runtime-ports.d.ts +1 -0
  27. package/dist/src/server/agent-runtime.js +22 -3
  28. package/dist/src/server/agent-runtime.js.map +1 -1
  29. package/dist/src/server/agent-startup-instructions.js +2 -2
  30. package/dist/src/server/agent-startup-instructions.js.map +1 -1
  31. package/dist/src/server/agent-stdin-dispatcher.d.ts +4 -1
  32. package/dist/src/server/agent-stdin-dispatcher.js +12 -3
  33. package/dist/src/server/agent-stdin-dispatcher.js.map +1 -1
  34. package/dist/src/server/app.d.ts +3 -1
  35. package/dist/src/server/app.js +5 -1
  36. package/dist/src/server/app.js.map +1 -1
  37. package/dist/src/server/command-preset-defaults.js +1 -1
  38. package/dist/src/server/command-preset-defaults.js.map +1 -1
  39. package/dist/src/server/dispatch-ledger-store.d.ts +7 -1
  40. package/dist/src/server/dispatch-ledger-store.js +39 -6
  41. package/dist/src/server/dispatch-ledger-store.js.map +1 -1
  42. package/dist/src/server/hive-team-guidance.js +3 -2
  43. package/dist/src/server/hive-team-guidance.js.map +1 -1
  44. package/dist/src/server/http-errors.d.ts +6 -0
  45. package/dist/src/server/http-errors.js +12 -0
  46. package/dist/src/server/http-errors.js.map +1 -1
  47. package/dist/src/server/local-request-guard.d.ts +3 -0
  48. package/dist/src/server/local-request-guard.js +42 -0
  49. package/dist/src/server/local-request-guard.js.map +1 -0
  50. package/dist/src/server/message-log-store.d.ts +7 -2
  51. package/dist/src/server/message-log-store.js +10 -6
  52. package/dist/src/server/message-log-store.js.map +1 -1
  53. package/dist/src/server/orchestrator-launch.d.ts +7 -5
  54. package/dist/src/server/orchestrator-launch.js +28 -6
  55. package/dist/src/server/orchestrator-launch.js.map +1 -1
  56. package/dist/src/server/package-version.d.ts +2 -0
  57. package/dist/src/server/package-version.js +18 -0
  58. package/dist/src/server/package-version.js.map +1 -0
  59. package/dist/src/server/post-start-input-writer.d.ts +1 -1
  60. package/dist/src/server/post-start-input-writer.js +15 -4
  61. package/dist/src/server/post-start-input-writer.js.map +1 -1
  62. package/dist/src/server/recovery-summary.js +4 -2
  63. package/dist/src/server/recovery-summary.js.map +1 -1
  64. package/dist/src/server/route-helpers.d.ts +3 -1
  65. package/dist/src/server/route-helpers.js +16 -2
  66. package/dist/src/server/route-helpers.js.map +1 -1
  67. package/dist/src/server/route-types.d.ts +5 -0
  68. package/dist/src/server/routes-settings.js +25 -11
  69. package/dist/src/server/routes-settings.js.map +1 -1
  70. package/dist/src/server/routes-team.js +64 -12
  71. package/dist/src/server/routes-team.js.map +1 -1
  72. package/dist/src/server/routes-version.d.ts +2 -0
  73. package/dist/src/server/routes-version.js +7 -0
  74. package/dist/src/server/routes-version.js.map +1 -0
  75. package/dist/src/server/routes-workspaces.js +9 -3
  76. package/dist/src/server/routes-workspaces.js.map +1 -1
  77. package/dist/src/server/routes.js +2 -0
  78. package/dist/src/server/routes.js.map +1 -1
  79. package/dist/src/server/runtime-message-builders.d.ts +1 -0
  80. package/dist/src/server/runtime-message-builders.js +9 -0
  81. package/dist/src/server/runtime-message-builders.js.map +1 -1
  82. package/dist/src/server/runtime-store-helpers.js +2 -1
  83. package/dist/src/server/runtime-store-helpers.js.map +1 -1
  84. package/dist/src/server/runtime-store.d.ts +3 -2
  85. package/dist/src/server/runtime-store.js +1 -0
  86. package/dist/src/server/runtime-store.js.map +1 -1
  87. package/dist/src/server/sqlite-schema-v15.d.ts +2 -0
  88. package/dist/src/server/sqlite-schema-v15.js +74 -0
  89. package/dist/src/server/sqlite-schema-v15.js.map +1 -0
  90. package/dist/src/server/sqlite-schema-v16.d.ts +2 -0
  91. package/dist/src/server/sqlite-schema-v16.js +7 -0
  92. package/dist/src/server/sqlite-schema-v16.js.map +1 -0
  93. package/dist/src/server/sqlite-schema-v17.d.ts +2 -0
  94. package/dist/src/server/sqlite-schema-v17.js +16 -0
  95. package/dist/src/server/sqlite-schema-v17.js.map +1 -0
  96. package/dist/src/server/sqlite-schema-v18.d.ts +2 -0
  97. package/dist/src/server/sqlite-schema-v18.js +7 -0
  98. package/dist/src/server/sqlite-schema-v18.js.map +1 -0
  99. package/dist/src/server/sqlite-schema.d.ts +1 -1
  100. package/dist/src/server/sqlite-schema.js +23 -1
  101. package/dist/src/server/sqlite-schema.js.map +1 -1
  102. package/dist/src/server/startup-command-parser.d.ts +5 -0
  103. package/dist/src/server/startup-command-parser.js +38 -0
  104. package/dist/src/server/startup-command-parser.js.map +1 -0
  105. package/dist/src/server/tasks-websocket-server.js +5 -0
  106. package/dist/src/server/tasks-websocket-server.js.map +1 -1
  107. package/dist/src/server/team-authz.d.ts +1 -1
  108. package/dist/src/server/team-authz.js +2 -2
  109. package/dist/src/server/team-authz.js.map +1 -1
  110. package/dist/src/server/team-operations.d.ts +23 -2
  111. package/dist/src/server/team-operations.js +50 -9
  112. package/dist/src/server/team-operations.js.map +1 -1
  113. package/dist/src/server/terminal-ws-server.js +5 -0
  114. package/dist/src/server/terminal-ws-server.js.map +1 -1
  115. package/dist/src/server/version-service.d.ts +16 -0
  116. package/dist/src/server/version-service.js +70 -0
  117. package/dist/src/server/version-service.js.map +1 -0
  118. package/dist/src/server/workspace-path-validation.d.ts +1 -0
  119. package/dist/src/server/workspace-path-validation.js +27 -0
  120. package/dist/src/server/workspace-path-validation.js.map +1 -0
  121. package/dist/src/server/workspace-store-support.js +1 -1
  122. package/dist/src/server/workspace-store-support.js.map +1 -1
  123. package/dist/src/server/workspace-store.js +13 -8
  124. package/dist/src/server/workspace-store.js.map +1 -1
  125. package/package.json +2 -1
  126. package/web/dist/assets/index-CnUabdqK.js +73 -0
  127. package/web/dist/assets/index-DqkpIE12.css +1 -0
  128. package/web/dist/index.html +4 -4
  129. package/web/dist/assets/index-BGhNuRRP.css +0 -1
  130. package/web/dist/assets/index-D8sy4JED.js +0 -75
@@ -5,9 +5,11 @@ import { dirname, extname, join, resolve, sep } from 'node:path';
5
5
  import { fileURLToPath } from 'node:url';
6
6
  import { pickFolder } from './fs-pick-folder.js';
7
7
  import { HttpError } from './http-errors.js';
8
+ import { assertLocalRequest } from './local-request-guard.js';
8
9
  import { matchRoute } from './routes.js';
9
10
  import { createTasksFileService } from './tasks-file.js';
10
11
  import { createTerminalWebSocketServer } from './terminal-ws-server.js';
12
+ import { createVersionService } from './version-service.js';
11
13
  const getDefaultStaticDir = () => {
12
14
  const moduleDir = dirname(fileURLToPath(import.meta.url));
13
15
  if (moduleDir.includes(`${sep}dist${sep}src${sep}`)) {
@@ -73,13 +75,14 @@ const sendJson = (response, statusCode, body) => {
73
75
  response.setHeader('content-type', 'application/json; charset=utf-8');
74
76
  response.end(JSON.stringify(body));
75
77
  };
76
- export const createApp = ({ store, pickFolderService = pickFolder, tasksFileService = createTasksFileService(), }) => {
78
+ export const createApp = ({ store, pickFolderService = pickFolder, tasksFileService = createTasksFileService(), versionService = createVersionService(), }) => {
77
79
  const staticDir = process.env.HIVE_STATIC_DIR ?? getDefaultStaticDir();
78
80
  const staticAvailablePromise = canServeStatic(staticDir);
79
81
  const server = createServer(async (request, response) => {
80
82
  const method = request.method ?? 'GET';
81
83
  const url = new URL(request.url ?? '/', 'http://127.0.0.1');
82
84
  try {
85
+ assertLocalRequest(request);
83
86
  const match = matchRoute(method, url.pathname);
84
87
  if (match) {
85
88
  await match.handler({
@@ -88,6 +91,7 @@ export const createApp = ({ store, pickFolderService = pickFolder, tasksFileServ
88
91
  store,
89
92
  tasksFileService,
90
93
  pickFolderService,
94
+ versionService,
91
95
  params: match.params,
92
96
  });
93
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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"}
@@ -1,6 +1,6 @@
1
1
  import { CLAUDE_DEFAULT_YOLO_ARGS } from './claude-command-defaults.js';
2
2
  const CODEX_DEFAULT_YOLO_ARGS = ['--dangerously-bypass-approvals-and-sandbox'];
3
- const OPENCODE_DEFAULT_YOLO_ARGS = ['--dangerously-skip-permissions'];
3
+ const OPENCODE_DEFAULT_YOLO_ARGS = [];
4
4
  const GEMINI_DEFAULT_YOLO_ARGS = ['--yolo'];
5
5
  export const BUILTIN_COMMAND_PRESETS = [
6
6
  {
@@ -1 +1 @@
1
- {"version":3,"file":"command-preset-defaults.js","sourceRoot":"","sources":["../../../src/server/command-preset-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAYvE,MAAM,uBAAuB,GAAG,CAAC,4CAA4C,CAAC,CAAA;AAC9E,MAAM,0BAA0B,GAAG,CAAC,gCAAgC,CAAC,CAAA;AACrE,MAAM,wBAAwB,GAAG,CAAC,QAAQ,CAAC,CAAA;AAE3C,MAAM,CAAC,MAAM,uBAAuB,GAAmC;IACrE;QACE,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,kBAAkB;QAC/B,EAAE,EAAE,QAAQ;QACZ,kBAAkB,EAAE,uBAAuB;QAC3C,gBAAgB,EAAE;YAChB,OAAO,EAAE,0CAA0C;YACnD,MAAM,EAAE,0BAA0B;SACnC;QACD,gBAAgB,EAAE,wBAAwB;KAC3C;IACD;QACE,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,OAAO;QACpB,EAAE,EAAE,OAAO;QACX,kBAAkB,EAAE,qBAAqB;QACzC,gBAAgB,EAAE;YAChB,OAAO,EAAE,8BAA8B;YACvC,MAAM,EAAE,yBAAyB;SAClC;QACD,gBAAgB,EAAE,uBAAuB;KAC1C;IACD;QACE,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,UAAU;QACvB,EAAE,EAAE,UAAU;QACd,kBAAkB,EAAE,wBAAwB;QAC5C,gBAAgB,EAAE;YAChB,OAAO,EAAE,qCAAqC;YAC9C,MAAM,EAAE,qBAAqB;SAC9B;QACD,gBAAgB,EAAE,0BAA0B;KAC7C;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,QAAQ;QACrB,EAAE,EAAE,QAAQ;QACZ,kBAAkB,EAAE,uBAAuB;QAC3C,gBAAgB,EAAE;YAChB,OAAO,EAAE,8BAA8B;YACvC,MAAM,EAAE,yBAAyB;SAClC;QACD,gBAAgB,EAAE,wBAAwB;KAC3C;CACF,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAU,EAAE,EAAE,CACpD,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"command-preset-defaults.js","sourceRoot":"","sources":["../../../src/server/command-preset-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAYvE,MAAM,uBAAuB,GAAG,CAAC,4CAA4C,CAAC,CAAA;AAC9E,MAAM,0BAA0B,GAAa,EAAE,CAAA;AAC/C,MAAM,wBAAwB,GAAG,CAAC,QAAQ,CAAC,CAAA;AAE3C,MAAM,CAAC,MAAM,uBAAuB,GAAmC;IACrE;QACE,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,kBAAkB;QAC/B,EAAE,EAAE,QAAQ;QACZ,kBAAkB,EAAE,uBAAuB;QAC3C,gBAAgB,EAAE;YAChB,OAAO,EAAE,0CAA0C;YACnD,MAAM,EAAE,0BAA0B;SACnC;QACD,gBAAgB,EAAE,wBAAwB;KAC3C;IACD;QACE,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,OAAO;QACpB,EAAE,EAAE,OAAO;QACX,kBAAkB,EAAE,qBAAqB;QACzC,gBAAgB,EAAE;YAChB,OAAO,EAAE,8BAA8B;YACvC,MAAM,EAAE,yBAAyB;SAClC;QACD,gBAAgB,EAAE,uBAAuB;KAC1C;IACD;QACE,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,UAAU;QACvB,EAAE,EAAE,UAAU;QACd,kBAAkB,EAAE,wBAAwB;QAC5C,gBAAgB,EAAE;YAChB,OAAO,EAAE,qCAAqC;YAC9C,MAAM,EAAE,qBAAqB;SAC9B;QACD,gBAAgB,EAAE,0BAA0B;KAC7C;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,QAAQ;QACrB,EAAE,EAAE,QAAQ;QACZ,kBAAkB,EAAE,uBAAuB;QAC3C,gBAAgB,EAAE;YAChB,OAAO,EAAE,8BAA8B;YACvC,MAAM,EAAE,yBAAyB;SAClC;QACD,gBAAgB,EAAE,wBAAwB;KAC3C;CACF,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAU,EAAE,EAAE,CACpD,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA"}
@@ -23,6 +23,7 @@ interface CreateDispatchInput {
23
23
  }
24
24
  interface ReportDispatchInput {
25
25
  artifacts: string[];
26
+ dispatchId?: string;
26
27
  reportText: string;
27
28
  toAgentId: string;
28
29
  workspaceId: string;
@@ -37,7 +38,12 @@ export declare const createDispatchLedgerStore: (db: Database | undefined) => {
37
38
  deleteDispatch: (dispatchId: string) => void;
38
39
  deleteWorkerDispatches: (workspaceId: string, workerId: string) => void;
39
40
  deleteWorkspaceDispatches: (workspaceId: string) => void;
40
- findOpenDispatch: (workspaceId: string, toAgentId: string) => DispatchRecord | undefined;
41
+ findOpenDispatch: (workspaceId: string, toAgentId: string, dispatchId?: string) => DispatchRecord | undefined;
42
+ listOpenDispatchKinds: () => {
43
+ type: "send";
44
+ worker_id: string;
45
+ workspace_id: string;
46
+ }[];
41
47
  listWorkspaceDispatches: (workspaceId: string, options?: ListDispatchesOptions) => DispatchRecord[];
42
48
  markReportedByWorker: (input: ReportDispatchInput) => DispatchRecord | undefined;
43
49
  markSubmitted: (dispatchId: string) => void;
@@ -87,13 +87,27 @@ export const createDispatchLedgerStore = (db) => {
87
87
  SET status = ?, submitted_at = ?
88
88
  WHERE id = ?`).run('submitted', submittedAt, dispatchId);
89
89
  };
90
- const findOpenDispatch = (workspaceId, toAgentId) => {
90
+ const findOpenDispatch = (workspaceId, toAgentId, dispatchId) => {
91
91
  if (!db) {
92
- return Array.from(memoryDispatches.values())
93
- .filter((record) => record.workspaceId === workspaceId &&
92
+ const openDispatches = Array.from(memoryDispatches.values()).filter((record) => record.workspaceId === workspaceId &&
94
93
  record.toAgentId === toAgentId &&
95
- record.status !== 'reported')
96
- .sort((a, b) => (a.sequence ?? a.createdAt) - (b.sequence ?? b.createdAt))[0];
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
+ if (dispatchId) {
101
+ const row = db
102
+ .prepare(`SELECT *
103
+ FROM dispatches
104
+ WHERE id = ?
105
+ AND workspace_id = ?
106
+ AND to_agent_id = ?
107
+ AND status != 'reported'
108
+ LIMIT 1`)
109
+ .get(dispatchId, workspaceId, toAgentId);
110
+ return row ? toRecord(row) : undefined;
97
111
  }
98
112
  const row = db
99
113
  .prepare(`SELECT *
@@ -107,7 +121,7 @@ export const createDispatchLedgerStore = (db) => {
107
121
  return row ? toRecord(row) : undefined;
108
122
  };
109
123
  const markReportedByWorker = (input) => {
110
- const dispatch = findOpenDispatch(input.workspaceId, input.toAgentId);
124
+ const dispatch = findOpenDispatch(input.workspaceId, input.toAgentId, input.dispatchId);
111
125
  if (!dispatch) {
112
126
  return undefined;
113
127
  }
@@ -161,6 +175,24 @@ export const createDispatchLedgerStore = (db) => {
161
175
  LIMIT ? OFFSET ?`)
162
176
  .all(workspaceId, limit, offset).map(toRecord);
163
177
  };
178
+ 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
+ return db
190
+ .prepare(`SELECT workspace_id, to_agent_id AS worker_id, 'send' AS type
191
+ FROM dispatches
192
+ WHERE status != 'reported'
193
+ ORDER BY sequence ASC`)
194
+ .all();
195
+ };
164
196
  const deleteWorkspaceDispatches = (workspaceId) => {
165
197
  if (!db) {
166
198
  for (const [id, record] of memoryDispatches) {
@@ -188,6 +220,7 @@ export const createDispatchLedgerStore = (db) => {
188
220
  deleteWorkerDispatches,
189
221
  deleteWorkspaceDispatches,
190
222
  findOpenDispatch,
223
+ listOpenDispatchKinds,
191
224
  listWorkspaceDispatches,
192
225
  markReportedByWorker,
193
226
  markSubmitted,
@@ -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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"}
@@ -3,12 +3,13 @@ const ORCHESTRATOR_RULES = [
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,也不会触发 pending_task_count / team report。',
6
+ '不要使用 Claude Code 内置的 Task / Explore / subagent 来代替 Hive worker;它们不会出现在 Hive UI,也不会更新 Hive 调度状态。',
7
7
  ];
8
8
  const WORKER_RULES = [
9
9
  '你是 Hive 右侧卡片里的真实 CLI worker,不是 Claude Code 内置 subagent。',
10
10
  '不要调用 team send,也不要再启动 Claude Code 内置的 Task / Explore / subagent 来替你完成派单。',
11
- '完成或阻塞时必须用 `team report` 汇报给 Orchestrator。',
11
+ '完成或阻塞已派发任务时必须用 `team report` 汇报给 Orchestrator。',
12
+ '如果当前没有明确派发任务,只是汇报待命、环境或状态,使用 `team status "<当前状态>"`。',
12
13
  ];
13
14
  export const getHiveTeamRules = (agent) => agent.role === 'orchestrator' ? ORCHESTRATOR_RULES : WORKER_RULES;
14
15
  //# 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,wHAAwH;CACzH,CAAA;AAED,MAAM,YAAY,GAAG;IACnB,yDAAyD;IACzD,0EAA0E;IAC1E,2CAA2C;CAC5C,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,+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"}
@@ -11,6 +11,12 @@ export declare class UnauthorizedError extends HttpError {
11
11
  export declare class ForbiddenError extends HttpError {
12
12
  constructor(message: string);
13
13
  }
14
+ export declare class BadRequestError extends HttpError {
15
+ constructor(message: string);
16
+ }
17
+ export declare class PayloadTooLargeError extends HttpError {
18
+ constructor(message: string);
19
+ }
14
20
  export declare class ConflictError extends HttpError {
15
21
  constructor(message: string);
16
22
  }
@@ -24,6 +24,18 @@ export class ForbiddenError extends HttpError {
24
24
  this.name = 'ForbiddenError';
25
25
  }
26
26
  }
27
+ export class BadRequestError extends HttpError {
28
+ constructor(message) {
29
+ super(400, message);
30
+ this.name = 'BadRequestError';
31
+ }
32
+ }
33
+ export class PayloadTooLargeError extends HttpError {
34
+ constructor(message) {
35
+ super(413, message);
36
+ this.name = 'PayloadTooLargeError';
37
+ }
38
+ }
27
39
  export class ConflictError extends HttpError {
28
40
  constructor(message) {
29
41
  super(409, message);
@@ -1 +1 @@
1
- {"version":3,"file":"http-errors.js","sourceRoot":"","sources":["../../../src/server/http-errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,UAAU,CAAQ;IAE3B,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;IAChC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"http-errors.js","sourceRoot":"","sources":["../../../src/server/http-errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,UAAU,CAAQ;IAE3B,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;IAChC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC7B,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import type { IncomingMessage } from 'node:http';
2
+ export declare const getLocalRequestRejection: (request: IncomingMessage) => string | null;
3
+ export declare const assertLocalRequest: (request: IncomingMessage) => void;
@@ -0,0 +1,42 @@
1
+ import { ForbiddenError } from './http-errors.js';
2
+ const LOCAL_HOSTNAMES = new Set(['localhost', '127.0.0.1', '::1']);
3
+ const LOCAL_REMOTE_ADDRESSES = new Set(['127.0.0.1', '::1']);
4
+ const firstHeader = (value) => Array.isArray(value) ? value[0] : value;
5
+ const normalizeHostname = (hostname) => hostname.replace(/^\[|\]$/g, '').toLowerCase();
6
+ const isLocalHostname = (hostname) => LOCAL_HOSTNAMES.has(normalizeHostname(hostname));
7
+ const normalizeRemoteAddress = (address) => normalizeHostname(address).replace(/^::ffff:/, '');
8
+ const isLocalRemoteAddress = (address) => LOCAL_REMOTE_ADDRESSES.has(normalizeRemoteAddress(address));
9
+ const isLocalAuthority = (authority) => {
10
+ try {
11
+ return isLocalHostname(new URL(`http://${authority}`).hostname);
12
+ }
13
+ catch {
14
+ return false;
15
+ }
16
+ };
17
+ const isLocalOrigin = (origin) => {
18
+ try {
19
+ return isLocalHostname(new URL(origin).hostname);
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ };
25
+ export const getLocalRequestRejection = (request) => {
26
+ const remoteAddress = request.socket.remoteAddress;
27
+ if (remoteAddress && !isLocalRemoteAddress(remoteAddress))
28
+ return 'non-local remote address';
29
+ const host = firstHeader(request.headers.host);
30
+ if (host && !isLocalAuthority(host))
31
+ return 'non-local Host header';
32
+ const origin = firstHeader(request.headers.origin);
33
+ if (origin && !isLocalOrigin(origin))
34
+ return 'non-local Origin header';
35
+ return null;
36
+ };
37
+ export const assertLocalRequest = (request) => {
38
+ const reason = getLocalRequestRejection(request);
39
+ if (reason)
40
+ throw new ForbiddenError(`Local runtime rejected ${reason}`);
41
+ };
42
+ //# sourceMappingURL=local-request-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-request-guard.js","sourceRoot":"","sources":["../../../src/server/local-request-guard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAA;AAClE,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAA;AAE5D,MAAM,WAAW,GAAG,CAAC,KAAoC,EAAE,EAAE,CAC3D,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAEzC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;AAE9F,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAA;AAE9F,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAE,EAAE,CACjD,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AAEpD,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAE,EAAE,CAC/C,sBAAsB,CAAC,GAAG,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAA;AAE7D,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC7C,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,GAAG,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE;IACvC,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAwB,EAAiB,EAAE;IAClF,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAA;IAClD,IAAI,aAAa,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;QAAE,OAAO,0BAA0B,CAAA;IAE5F,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAAE,OAAO,uBAAuB,CAAA;IAEnE,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAClD,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,yBAAyB,CAAA;IAEtE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAwB,EAAE,EAAE;IAC7D,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;IAChD,IAAI,MAAM;QAAE,MAAM,IAAI,cAAc,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAA;AAC1E,CAAC,CAAA"}
@@ -6,7 +6,7 @@ export interface MessageLogRecord {
6
6
  status?: string;
7
7
  text: string;
8
8
  toAgentId?: string;
9
- type: 'user_input' | 'send' | 'report' | 'system_env_sync' | 'system_recovery_summary';
9
+ type: 'user_input' | 'send' | 'report' | 'status' | 'system_env_sync' | 'system_recovery_summary';
10
10
  workerId: string;
11
11
  workspaceId: string;
12
12
  }
@@ -32,7 +32,12 @@ interface ReportRecoveryMessage extends RecoveryMessageBase {
32
32
  status?: string;
33
33
  type: 'report';
34
34
  }
35
- export type RecoveryMessage = UserInputRecoveryMessage | SendRecoveryMessage | ReportRecoveryMessage;
35
+ interface StatusRecoveryMessage extends RecoveryMessageBase {
36
+ artifacts: string[];
37
+ from: string;
38
+ type: 'status';
39
+ }
40
+ export type RecoveryMessage = UserInputRecoveryMessage | SendRecoveryMessage | ReportRecoveryMessage | StatusRecoveryMessage;
36
41
  interface MessageKindRow {
37
42
  type: 'send' | 'report';
38
43
  worker_id: string;
@@ -74,7 +74,7 @@ export const createMessageLogStore = (db) => {
74
74
  }
75
75
  return recoveryMessage;
76
76
  }
77
- if (message.type !== 'report') {
77
+ if (message.type !== 'report' && message.type !== 'status') {
78
78
  return null;
79
79
  }
80
80
  const recoveryMessage = {
@@ -82,10 +82,12 @@ export const createMessageLogStore = (db) => {
82
82
  createdAt: message.createdAt,
83
83
  from: message.fromAgentId ?? message.workerId,
84
84
  text: message.text,
85
- type: 'report',
85
+ type: message.type,
86
86
  };
87
- if (message.status)
87
+ if (message.type === 'report' && message.status) {
88
+ ;
88
89
  recoveryMessage.status = message.status;
90
+ }
89
91
  return recoveryMessage;
90
92
  })
91
93
  .filter((message) => message !== null);
@@ -117,7 +119,7 @@ export const createMessageLogStore = (db) => {
117
119
  }
118
120
  return message;
119
121
  }
120
- if (typedRow.type !== 'report') {
122
+ if (typedRow.type !== 'report' && typedRow.type !== 'status') {
121
123
  return null;
122
124
  }
123
125
  const recoveryMessage = {
@@ -125,10 +127,12 @@ export const createMessageLogStore = (db) => {
125
127
  createdAt: typedRow.created_at,
126
128
  from: typedRow.from_agent_id ?? typedRow.worker_id,
127
129
  text: typedRow.text ?? '',
128
- type: 'report',
130
+ type: typedRow.type,
129
131
  };
130
- if (typedRow.status)
132
+ if (typedRow.type === 'report' && typedRow.status) {
133
+ ;
131
134
  recoveryMessage.status = typedRow.status;
135
+ }
132
136
  return recoveryMessage;
133
137
  })
134
138
  .filter((message) => message !== null);
@@ -1 +1 @@
1
- {"version":3,"file":"message-log-store.js","sourceRoot":"","sources":["../../../src/server/message-log-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-log-store.js","sourceRoot":"","sources":["../../../src/server/message-log-store.ts"],"names":[],"mappings":"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"}
@@ -6,17 +6,19 @@ interface ConfigurePort {
6
6
  }
7
7
  /**
8
8
  * Resolve the orchestrator's launch config in priority order:
9
- * 1. Explicit workspace-create command preset chosen by the user.
10
- * 2. `HIVE_ORCHESTRATOR_COMMAND` env var (with optional `HIVE_ORCHESTRATOR_ARGS_JSON`).
9
+ * 1. Explicit startup command pasted by the user. It runs through their shell
10
+ * so aliases/functions like `ccs --resume ...` can expand.
11
+ * 2. Explicit workspace-create command preset chosen by the user.
12
+ * 3. `HIVE_ORCHESTRATOR_COMMAND` env var (with optional `HIVE_ORCHESTRATOR_ARGS_JSON`).
11
13
  * Tests use this to inject a dummy CLI like `bash -c 'echo queen up; sleep 60'`
12
14
  * so autostart can run end-to-end without depending on a real `claude` binary.
13
- * 3. The seeded `orchestrator` role template (defaults to `claude`).
15
+ * 4. The seeded `orchestrator` role template (defaults to `claude`).
14
16
  * Returns `undefined` when neither source has a usable command.
15
17
  */
16
- export declare const resolveOrchestratorLaunchConfig: (settings: SettingsStore, commandPresetId?: string | null) => AgentLaunchConfigInput | undefined;
18
+ export declare const resolveOrchestratorLaunchConfig: (settings: SettingsStore, commandPresetId?: string | null, startupCommand?: string | null) => AgentLaunchConfigInput | undefined;
17
19
  /**
18
20
  * Idempotent: only seeds when no existing launch config is present for the
19
21
  * orchestrator (prevents stomping on user-customized configs across restarts).
20
22
  */
21
- export declare const seedOrchestratorLaunchConfig: (port: ConfigurePort, settings: SettingsStore, workspaceId: string, commandPresetId?: string | null) => void;
23
+ export declare const seedOrchestratorLaunchConfig: (port: ConfigurePort, settings: SettingsStore, workspaceId: string, commandPresetId?: string | null, startupCommand?: string | null) => void;
22
24
  export {};
@@ -1,3 +1,4 @@
1
+ import { createStartupCommandLaunch, getStartupCommandExecutable, } from './startup-command-parser.js';
1
2
  import { getOrchestratorId } from './workspace-store-support.js';
2
3
  const parseArgsEnv = (raw) => {
3
4
  if (raw === undefined)
@@ -25,16 +26,37 @@ const resolveCommandPresetLaunchConfig = (settings, commandPresetId) => {
25
26
  commandPresetId: preset.id,
26
27
  };
27
28
  };
29
+ const findPresetForStartupCommand = (settings, startupCommand, commandPresetId) => {
30
+ if (commandPresetId)
31
+ return settings.getCommandPreset(commandPresetId);
32
+ const executable = getStartupCommandExecutable(startupCommand);
33
+ return executable ? settings.getCommandPreset(executable) : undefined;
34
+ };
28
35
  /**
29
36
  * Resolve the orchestrator's launch config in priority order:
30
- * 1. Explicit workspace-create command preset chosen by the user.
31
- * 2. `HIVE_ORCHESTRATOR_COMMAND` env var (with optional `HIVE_ORCHESTRATOR_ARGS_JSON`).
37
+ * 1. Explicit startup command pasted by the user. It runs through their shell
38
+ * so aliases/functions like `ccs --resume ...` can expand.
39
+ * 2. Explicit workspace-create command preset chosen by the user.
40
+ * 3. `HIVE_ORCHESTRATOR_COMMAND` env var (with optional `HIVE_ORCHESTRATOR_ARGS_JSON`).
32
41
  * Tests use this to inject a dummy CLI like `bash -c 'echo queen up; sleep 60'`
33
42
  * so autostart can run end-to-end without depending on a real `claude` binary.
34
- * 3. The seeded `orchestrator` role template (defaults to `claude`).
43
+ * 4. The seeded `orchestrator` role template (defaults to `claude`).
35
44
  * Returns `undefined` when neither source has a usable command.
36
45
  */
37
- export const resolveOrchestratorLaunchConfig = (settings, commandPresetId = null) => {
46
+ export const resolveOrchestratorLaunchConfig = (settings, commandPresetId = null, startupCommand = null) => {
47
+ const trimmedStartupCommand = startupCommand?.trim();
48
+ if (trimmedStartupCommand) {
49
+ const parsed = createStartupCommandLaunch(trimmedStartupCommand);
50
+ const preset = findPresetForStartupCommand(settings, trimmedStartupCommand, commandPresetId);
51
+ return {
52
+ command: parsed.command,
53
+ args: parsed.args,
54
+ commandPresetId: null,
55
+ interactiveCommand: preset?.command ?? getStartupCommandExecutable(trimmedStartupCommand),
56
+ presetAugmentationDisabled: true,
57
+ sessionIdCapture: preset?.sessionIdCapture ?? null,
58
+ };
59
+ }
38
60
  if (commandPresetId) {
39
61
  return resolveCommandPresetLaunchConfig(settings, commandPresetId);
40
62
  }
@@ -63,11 +85,11 @@ export const resolveOrchestratorLaunchConfig = (settings, commandPresetId = null
63
85
  * Idempotent: only seeds when no existing launch config is present for the
64
86
  * orchestrator (prevents stomping on user-customized configs across restarts).
65
87
  */
66
- export const seedOrchestratorLaunchConfig = (port, settings, workspaceId, commandPresetId = null) => {
88
+ export const seedOrchestratorLaunchConfig = (port, settings, workspaceId, commandPresetId = null, startupCommand = null) => {
67
89
  const orchestratorId = getOrchestratorId(workspaceId);
68
90
  if (port.peekAgentLaunchConfig(workspaceId, orchestratorId))
69
91
  return;
70
- const config = resolveOrchestratorLaunchConfig(settings, commandPresetId);
92
+ const config = resolveOrchestratorLaunchConfig(settings, commandPresetId, startupCommand);
71
93
  if (!config)
72
94
  return;
73
95
  port.configureAgentLaunch(workspaceId, orchestratorId, config);
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-launch.js","sourceRoot":"","sources":["../../../src/server/orchestrator-launch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAchE,MAAM,YAAY,GAAG,CAAC,GAAuB,EAAwB,EAAE;IACrE,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAA;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;YAAE,OAAO,MAAM,CAAA;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,gCAAgC,GAAG,CACvC,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;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,QAAuB,EACvB,kBAAiC,IAAI,EACD,EAAE;IACtC,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,gCAAgC,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;IACpE,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAA;IACxD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,EAAE;YACjE,eAAe,EAAE,IAAI;SACtB,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAA;IAChG,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/B,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,sEAAsE;IACtE,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,cAAc;QAChC,IAAI,EAAE,QAAQ,CAAC,WAAW;QAC1B,eAAe,EAAE,IAAI;KACtB,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,IAAmB,EACnB,QAAuB,EACvB,WAAmB,EACnB,kBAAiC,IAAI,EAC/B,EAAE;IACR,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;IACrD,IAAI,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,cAAc,CAAC;QAAE,OAAM;IACnE,MAAM,MAAM,GAAG,+BAA+B,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;IACzE,IAAI,CAAC,MAAM;QAAE,OAAM;IACnB,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;AAChE,CAAC,CAAA"}
1
+ {"version":3,"file":"orchestrator-launch.js","sourceRoot":"","sources":["../../../src/server/orchestrator-launch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const PACKAGE_NAME = "@tt-a1i/hive";
2
+ export declare const readPackageVersion: () => string;
@@ -0,0 +1,18 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ export const PACKAGE_NAME = '@tt-a1i/hive';
5
+ export const readPackageVersion = () => {
6
+ let dir = dirname(fileURLToPath(import.meta.url));
7
+ for (let depth = 0; depth < 8; depth += 1) {
8
+ const candidate = join(dir, 'package.json');
9
+ if (existsSync(candidate)) {
10
+ const parsed = JSON.parse(readFileSync(candidate, 'utf8'));
11
+ if (typeof parsed.version === 'string')
12
+ return parsed.version;
13
+ }
14
+ dir = dirname(dir);
15
+ }
16
+ return 'unknown';
17
+ };
18
+ //# sourceMappingURL=package-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-version.js","sourceRoot":"","sources":["../../../src/server/package-version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAA;AAE1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACjD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;QAC3C,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAA0B,CAAA;YACnF,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC,OAAO,CAAA;QAC/D,CAAC;QACD,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import type { AgentManager } from './agent-manager.js';
2
2
  export declare const toBracketedPasteSubmission: (text: string) => string;
3
3
  export declare const isInteractiveAgentCommand: (command: string) => boolean;
4
- export declare const hasInteractivePromptReady: (output: string) => boolean;
4
+ export declare const hasInteractivePromptReady: (output: string, command?: string) => boolean;
5
5
  export declare const hasBracketedPasteAcknowledgement: (output: string, baselineLength: number) => boolean;
6
6
  export declare const createPostStartInputWriter: (agentManager: AgentManager, command: string) => ((runId: string, text: string) => void);
@@ -8,12 +8,21 @@ const PASTE_CHARS_PER_DELAY_MS = 4;
8
8
  const PASTE_ACK_CHECK_INTERVAL_MS = 50;
9
9
  const PASTE_ACK_SETTLE_DELAY_MS = 100;
10
10
  const PASTE_ACK_TIMEOUT_MS = 3000;
11
+ const COMMANDS_WITH_BRACKETED_PASTE = new Set(['claude', 'codex', 'opencode']);
11
12
  export const toBracketedPasteSubmission = (text) => `\u001b[200~${text}\u001b[201~`;
12
13
  const getSubmitAfterPasteDelayMs = (text) => Math.min(MAX_SUBMIT_AFTER_PASTE_DELAY_MS, Math.max(MIN_SUBMIT_AFTER_PASTE_DELAY_MS, Math.ceil(text.length / PASTE_CHARS_PER_DELAY_MS)));
13
14
  export const isInteractiveAgentCommand = (command) => INTERACTIVE_COMMANDS.has(basename(command).toLowerCase());
14
- export const hasInteractivePromptReady = (output) => /(?:^|[\r\n])\s*[❯›]\s*/u.test(output);
15
+ const getCommandName = (command) => basename(command).toLowerCase();
16
+ const hasGeminiPromptReady = (output) => /\bType your message\b/u.test(output);
17
+ export const hasInteractivePromptReady = (output, command = '') => {
18
+ const commandName = getCommandName(command);
19
+ return (/(?:^|[\r\n])\s*[❯›]\s*/u.test(output) ||
20
+ (commandName === 'gemini' && hasGeminiPromptReady(output)));
21
+ };
15
22
  export const hasBracketedPasteAcknowledgement = (output, baselineLength) => /\[Pasted text #\d+/u.test(output.slice(baselineLength));
16
- const isClaudeCommand = (command) => basename(command).toLowerCase() === 'claude';
23
+ const isClaudeCommand = (command) => getCommandName(command) === 'claude';
24
+ const usesBracketedPaste = (command) => COMMANDS_WITH_BRACKETED_PASTE.has(getCommandName(command));
25
+ const canTimeoutBeforePromptReady = (command) => getCommandName(command) !== 'gemini';
17
26
  const isWritableRunStatus = (status) => status === undefined || status === 'starting' || status === 'running';
18
27
  const writeIfRunWritable = (agentManager, runId, text) => {
19
28
  let run;
@@ -91,10 +100,12 @@ export const createPostStartInputWriter = (agentManager, command) => {
91
100
  }
92
101
  if (output === null)
93
102
  return;
94
- if (hasInteractivePromptReady(output) || Date.now() - startedAt >= READY_TIMEOUT_MS) {
103
+ if (hasInteractivePromptReady(output, command) ||
104
+ (canTimeoutBeforePromptReady(command) && Date.now() - startedAt >= READY_TIMEOUT_MS)) {
95
105
  const baselineLength = output.length;
106
+ const input = usesBracketedPaste(command) ? toBracketedPasteSubmission(text) : text;
96
107
  try {
97
- if (!writeIfRunWritable(agentManager, runId, toBracketedPasteSubmission(text)))
108
+ if (!writeIfRunWritable(agentManager, runId, input))
98
109
  return;
99
110
  }
100
111
  catch (error) {