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

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 (118) hide show
  1. package/CHANGELOG.md +22 -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 +2 -0
  6. package/dist/src/cli/hive.js +49 -13
  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.js +2 -0
  35. package/dist/src/server/app.js.map +1 -1
  36. package/dist/src/server/command-preset-defaults.js +1 -1
  37. package/dist/src/server/command-preset-defaults.js.map +1 -1
  38. package/dist/src/server/dispatch-ledger-store.d.ts +7 -1
  39. package/dist/src/server/dispatch-ledger-store.js +39 -6
  40. package/dist/src/server/dispatch-ledger-store.js.map +1 -1
  41. package/dist/src/server/hive-team-guidance.js +3 -2
  42. package/dist/src/server/hive-team-guidance.js.map +1 -1
  43. package/dist/src/server/http-errors.d.ts +6 -0
  44. package/dist/src/server/http-errors.js +12 -0
  45. package/dist/src/server/http-errors.js.map +1 -1
  46. package/dist/src/server/local-request-guard.d.ts +3 -0
  47. package/dist/src/server/local-request-guard.js +42 -0
  48. package/dist/src/server/local-request-guard.js.map +1 -0
  49. package/dist/src/server/message-log-store.d.ts +7 -2
  50. package/dist/src/server/message-log-store.js +10 -6
  51. package/dist/src/server/message-log-store.js.map +1 -1
  52. package/dist/src/server/orchestrator-launch.d.ts +7 -5
  53. package/dist/src/server/orchestrator-launch.js +28 -6
  54. package/dist/src/server/orchestrator-launch.js.map +1 -1
  55. package/dist/src/server/post-start-input-writer.d.ts +1 -1
  56. package/dist/src/server/post-start-input-writer.js +15 -4
  57. package/dist/src/server/post-start-input-writer.js.map +1 -1
  58. package/dist/src/server/recovery-summary.js +4 -2
  59. package/dist/src/server/recovery-summary.js.map +1 -1
  60. package/dist/src/server/route-helpers.d.ts +3 -1
  61. package/dist/src/server/route-helpers.js +16 -2
  62. package/dist/src/server/route-helpers.js.map +1 -1
  63. package/dist/src/server/route-types.d.ts +3 -0
  64. package/dist/src/server/routes-settings.js +25 -11
  65. package/dist/src/server/routes-settings.js.map +1 -1
  66. package/dist/src/server/routes-team.js +64 -12
  67. package/dist/src/server/routes-team.js.map +1 -1
  68. package/dist/src/server/routes-workspaces.js +9 -3
  69. package/dist/src/server/routes-workspaces.js.map +1 -1
  70. package/dist/src/server/runtime-message-builders.d.ts +1 -0
  71. package/dist/src/server/runtime-message-builders.js +9 -0
  72. package/dist/src/server/runtime-message-builders.js.map +1 -1
  73. package/dist/src/server/runtime-store-helpers.js +2 -1
  74. package/dist/src/server/runtime-store-helpers.js.map +1 -1
  75. package/dist/src/server/runtime-store.d.ts +3 -2
  76. package/dist/src/server/runtime-store.js +1 -0
  77. package/dist/src/server/runtime-store.js.map +1 -1
  78. package/dist/src/server/sqlite-schema-v15.d.ts +2 -0
  79. package/dist/src/server/sqlite-schema-v15.js +74 -0
  80. package/dist/src/server/sqlite-schema-v15.js.map +1 -0
  81. package/dist/src/server/sqlite-schema-v16.d.ts +2 -0
  82. package/dist/src/server/sqlite-schema-v16.js +7 -0
  83. package/dist/src/server/sqlite-schema-v16.js.map +1 -0
  84. package/dist/src/server/sqlite-schema-v17.d.ts +2 -0
  85. package/dist/src/server/sqlite-schema-v17.js +16 -0
  86. package/dist/src/server/sqlite-schema-v17.js.map +1 -0
  87. package/dist/src/server/sqlite-schema-v18.d.ts +2 -0
  88. package/dist/src/server/sqlite-schema-v18.js +7 -0
  89. package/dist/src/server/sqlite-schema-v18.js.map +1 -0
  90. package/dist/src/server/sqlite-schema.d.ts +1 -1
  91. package/dist/src/server/sqlite-schema.js +23 -1
  92. package/dist/src/server/sqlite-schema.js.map +1 -1
  93. package/dist/src/server/startup-command-parser.d.ts +5 -0
  94. package/dist/src/server/startup-command-parser.js +38 -0
  95. package/dist/src/server/startup-command-parser.js.map +1 -0
  96. package/dist/src/server/tasks-websocket-server.js +5 -0
  97. package/dist/src/server/tasks-websocket-server.js.map +1 -1
  98. package/dist/src/server/team-authz.d.ts +1 -1
  99. package/dist/src/server/team-authz.js +2 -2
  100. package/dist/src/server/team-authz.js.map +1 -1
  101. package/dist/src/server/team-operations.d.ts +23 -2
  102. package/dist/src/server/team-operations.js +50 -9
  103. package/dist/src/server/team-operations.js.map +1 -1
  104. package/dist/src/server/terminal-ws-server.js +5 -0
  105. package/dist/src/server/terminal-ws-server.js.map +1 -1
  106. package/dist/src/server/workspace-path-validation.d.ts +1 -0
  107. package/dist/src/server/workspace-path-validation.js +27 -0
  108. package/dist/src/server/workspace-path-validation.js.map +1 -0
  109. package/dist/src/server/workspace-store-support.js +1 -1
  110. package/dist/src/server/workspace-store-support.js.map +1 -1
  111. package/dist/src/server/workspace-store.js +13 -8
  112. package/dist/src/server/workspace-store.js.map +1 -1
  113. package/package.json +2 -1
  114. package/web/dist/assets/index-CIlOwuEZ.js +70 -0
  115. package/web/dist/assets/index-eyw1Uar8.css +1 -0
  116. package/web/dist/index.html +4 -4
  117. package/web/dist/assets/index-BGhNuRRP.css +0 -1
  118. package/web/dist/assets/index-D8sy4JED.js +0 -75
@@ -1,4 +1,6 @@
1
+ import { execFileSync } from 'node:child_process';
1
2
  export const MAX_RUN_OUTPUT_LENGTH = 1_000_000;
3
+ const FORCE_KILL_DELAY_MS = 750;
2
4
  export const toAgentRunSnapshot = (run) => ({
3
5
  runId: run.runId,
4
6
  agentId: run.agentId,
@@ -10,7 +12,7 @@ export const toAgentRunSnapshot = (run) => ({
10
12
  exitCode: run.exitCode,
11
13
  });
12
14
  export const finishAgentRun = (run, exitCode, ptyOutputBus) => {
13
- if ((run.status === 'exited' || run.status === 'error') && run.exitCode !== null)
15
+ if (run.status === 'exited' || run.status === 'error')
14
16
  return;
15
17
  run.status = exitCode === 0 ? 'exited' : 'error';
16
18
  run.exitCode = exitCode;
@@ -19,9 +21,88 @@ export const finishAgentRun = (run, exitCode, ptyOutputBus) => {
19
21
  };
20
22
  export const attachAgentPty = (run, pty, ptyOutputBus) => {
21
23
  let stdinClosed = false;
24
+ let forceKillTimer;
25
+ const resolveProcessGroupId = () => {
26
+ if (process.platform === 'win32' || pty.pid <= 0)
27
+ return null;
28
+ try {
29
+ const value = execFileSync('ps', ['-o', 'pgid=', '-p', String(pty.pid)], {
30
+ encoding: 'utf8',
31
+ stdio: ['ignore', 'pipe', 'ignore'],
32
+ }).trim();
33
+ const groupId = Number(value);
34
+ if (Number.isInteger(groupId) && groupId > 0)
35
+ return groupId;
36
+ }
37
+ catch {
38
+ return pty.pid;
39
+ }
40
+ return pty.pid;
41
+ };
42
+ const processGroupId = resolveProcessGroupId();
43
+ const stopped = () => run.status === 'exited' || run.status === 'error';
44
+ const ignoreMissingProcess = (error) => {
45
+ if (error?.code !== 'ESRCH')
46
+ throw error;
47
+ };
48
+ const ignoreBestEffortGroupKillError = (error) => {
49
+ const code = error?.code;
50
+ if (code !== 'ESRCH' && code !== 'EPERM')
51
+ throw error;
52
+ };
53
+ const killProcessGroup = (signal) => {
54
+ if (process.platform === 'win32' || processGroupId === null)
55
+ return;
56
+ try {
57
+ process.kill(-processGroupId, signal);
58
+ }
59
+ catch (error) {
60
+ ignoreBestEffortGroupKillError(error);
61
+ }
62
+ };
63
+ const killPty = (signal) => {
64
+ try {
65
+ if (process.platform === 'win32')
66
+ pty.kill();
67
+ else
68
+ pty.kill(signal);
69
+ }
70
+ catch (error) {
71
+ ignoreMissingProcess(error);
72
+ }
73
+ killProcessGroup(signal);
74
+ };
75
+ const clearForceKillTimer = () => {
76
+ if (!forceKillTimer)
77
+ return;
78
+ clearTimeout(forceKillTimer);
79
+ forceKillTimer = undefined;
80
+ };
81
+ const cleanupProcessGroup = () => {
82
+ clearForceKillTimer();
83
+ killProcessGroup('SIGKILL');
84
+ };
85
+ const scheduleForceKill = () => {
86
+ if (forceKillTimer)
87
+ return;
88
+ forceKillTimer = setTimeout(() => {
89
+ forceKillTimer = undefined;
90
+ try {
91
+ if (process.platform === 'win32')
92
+ pty.kill();
93
+ else
94
+ pty.kill('SIGKILL');
95
+ }
96
+ catch (error) {
97
+ ignoreMissingProcess(error);
98
+ }
99
+ killProcessGroup('SIGKILL');
100
+ }, FORCE_KILL_DELAY_MS);
101
+ forceKillTimer.unref?.();
102
+ };
22
103
  run.process = {
23
104
  isStopped() {
24
- return run.status === 'exited' || run.status === 'error';
105
+ return stopped();
25
106
  },
26
107
  pause() {
27
108
  pty.pause();
@@ -34,16 +115,13 @@ export const attachAgentPty = (run, pty, ptyOutputBus) => {
34
115
  pty.resume();
35
116
  },
36
117
  stop() {
37
- if (stdinClosed || run.status === 'exited' || run.status === 'error')
118
+ if (stopped()) {
119
+ cleanupProcessGroup();
38
120
  return;
39
- try {
40
- pty.kill();
41
- }
42
- catch (error) {
43
- if (error?.code !== 'ESRCH')
44
- throw error;
45
121
  }
122
+ killPty('SIGTERM');
46
123
  stdinClosed = true;
124
+ scheduleForceKill();
47
125
  },
48
126
  write(text) {
49
127
  if (stdinClosed || run.status === 'exited' || run.status === 'error') {
@@ -62,6 +140,7 @@ export const attachAgentPty = (run, pty, ptyOutputBus) => {
62
140
  });
63
141
  pty.onExit((event) => {
64
142
  stdinClosed = true;
143
+ cleanupProcessGroup();
65
144
  finishAgentRun(run, event.exitCode, ptyOutputBus);
66
145
  });
67
146
  };
@@ -1 +1 @@
1
- {"version":3,"file":"agent-manager-support.js","sourceRoot":"","sources":["../../../src/server/agent-manager-support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-manager-support.js","sourceRoot":"","sources":["../../../src/server/agent-manager-support.ts"],"names":[],"mappings":"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"}
@@ -83,8 +83,6 @@ export const createAgentManager = ({ ptyOutputBus = createPtyOutputBus(), } = {}
83
83
  },
84
84
  stopRun(runId) {
85
85
  const run = getRunRecord(runId);
86
- if (run.status === 'exited' || run.status === 'error')
87
- return;
88
86
  run.process.stop();
89
87
  },
90
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../../../src/server/agent-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../../../src/server/agent-manager.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ const resolveHiveBinDir = () => {
13
13
  const HIVE_BIN_DIR = resolveHiveBinDir();
14
14
  const SESSION_CAPTURE_TIMEOUT_MS = 30_000;
15
15
  const resolveLaunchPreset = (config, getCommandPreset) => {
16
+ if (config.presetAugmentationDisabled)
17
+ return undefined;
16
18
  if (config.commandPresetId)
17
19
  return getCommandPreset(config.commandPresetId);
18
20
  const implicitPreset = getCommandPreset(config.command);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-run-bootstrap.js","sourceRoot":"","sources":["../../../src/server/agent-run-bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-run-bootstrap.js","sourceRoot":"","sources":["../../../src/server/agent-run-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -85,7 +85,7 @@ export const createAgentRunStarter = ({ agentManager, registry, onAgentExit, sto
85
85
  return liveRun;
86
86
  }
87
87
  startAgentRunCapture({ agentId, sessionCaptureSnapshot, sessionStore, startConfig, workspace });
88
- const postStartWriter = createPostStartInputWriter(agentManager, startConfig.command);
88
+ const postStartWriter = createPostStartInputWriter(agentManager, startConfig.interactiveCommand ?? startConfig.command);
89
89
  queueMicrotask(() => {
90
90
  try {
91
91
  const injectedRestartMessage = restartPolicy.injectPostStartMessage({
@@ -98,7 +98,7 @@ export const createAgentRunStarter = ({ agentManager, registry, onAgentExit, sto
98
98
  if (!startConfig.resumedSessionId &&
99
99
  !injectedRestartMessage &&
100
100
  agent &&
101
- isInteractiveAgentCommand(startConfig.command)) {
101
+ isInteractiveAgentCommand(startConfig.interactiveCommand ?? startConfig.command)) {
102
102
  postStartWriter(run.runId, buildAgentStartupInstructions({ agent, workspace }));
103
103
  }
104
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-run-starter.js","sourceRoot":"","sources":["../../../src/server/agent-run-starter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-run-starter.js","sourceRoot":"","sources":["../../../src/server/agent-run-starter.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ export interface AgentLaunchConfigInput {
4
4
  command: string;
5
5
  args?: string[];
6
6
  commandPresetId?: string | null;
7
+ interactiveCommand?: string | null;
8
+ presetAugmentationDisabled?: boolean;
7
9
  resumedSessionId?: string | null;
8
10
  resumeArgsTemplate?: string | null;
9
11
  sessionIdCapture?: SessionIdCaptureConfig | null;
@@ -37,11 +39,14 @@ export declare const createAgentRunStore: (db: Database | undefined) => {
37
39
  command: string;
38
40
  args: string[];
39
41
  commandPresetId: string | null;
42
+ interactiveCommand: string | null;
43
+ presetAugmentationDisabled: boolean;
40
44
  resumeArgsTemplate: string | null;
41
45
  sessionIdCapture: SessionIdCaptureConfig | null;
42
46
  };
43
47
  workspaceId: string;
44
48
  }[];
49
+ markUnfinishedRunsStale: (endedAt?: number) => void;
45
50
  saveLaunchConfig: (workspaceId: string, agentId: string, input: AgentLaunchConfigInput) => void;
46
51
  updatePersistedRun: (runId: string, status: PersistedAgentRun["status"], exitCode: number | null, endedAt: number | null) => void;
47
52
  };
@@ -32,7 +32,7 @@ export const createAgentRunStore = (db) => {
32
32
  return [];
33
33
  }
34
34
  return db
35
- .prepare(`SELECT workspace_id, agent_id, command, args_json, command_preset_id, resume_args_template, session_id_capture_json
35
+ .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
36
  FROM agent_launch_configs ORDER BY updated_at ASC`)
37
37
  .all()
38
38
  .map((row) => {
@@ -43,6 +43,8 @@ export const createAgentRunStore = (db) => {
43
43
  command: typedRow.command,
44
44
  args: parseArgsJson(typedRow.args_json, typedRow.agent_id),
45
45
  commandPresetId: typedRow.command_preset_id,
46
+ interactiveCommand: typedRow.interactive_command,
47
+ presetAugmentationDisabled: typedRow.preset_augmentation_disabled === 1,
46
48
  resumeArgsTemplate: typedRow.resume_args_template,
47
49
  sessionIdCapture: parseSessionIdCaptureJson(typedRow.session_id_capture_json),
48
50
  },
@@ -61,19 +63,23 @@ export const createAgentRunStore = (db) => {
61
63
  command,
62
64
  args_json,
63
65
  command_preset_id,
66
+ interactive_command,
67
+ preset_augmentation_disabled,
64
68
  resume_args_template,
65
69
  session_id_capture_json,
66
70
  created_at,
67
71
  updated_at
68
72
  )
69
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
73
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
70
74
  ON CONFLICT(workspace_id, agent_id) DO UPDATE SET
71
75
  command = excluded.command,
72
76
  args_json = excluded.args_json,
73
77
  command_preset_id = excluded.command_preset_id,
78
+ interactive_command = excluded.interactive_command,
79
+ preset_augmentation_disabled = excluded.preset_augmentation_disabled,
74
80
  resume_args_template = excluded.resume_args_template,
75
81
  session_id_capture_json = excluded.session_id_capture_json,
76
- updated_at = excluded.updated_at`).run(workspaceId, agentId, input.command, JSON.stringify(input.args ?? []), input.commandPresetId ?? null, input.resumeArgsTemplate ?? null, input.sessionIdCapture ? JSON.stringify(input.sessionIdCapture) : null, createdAt, createdAt);
82
+ updated_at = excluded.updated_at`).run(workspaceId, agentId, input.command, JSON.stringify(input.args ?? []), input.commandPresetId ?? null, input.interactiveCommand ?? null, input.presetAugmentationDisabled ? 1 : 0, input.resumeArgsTemplate ?? null, input.sessionIdCapture ? JSON.stringify(input.sessionIdCapture) : null, createdAt, createdAt);
77
83
  };
78
84
  const deleteLaunchConfig = (workspaceId, agentId) => {
79
85
  if (closed) {
@@ -117,6 +123,14 @@ export const createAgentRunStore = (db) => {
117
123
  };
118
124
  });
119
125
  };
126
+ const markUnfinishedRunsStale = (endedAt = Date.now()) => {
127
+ if (closed) {
128
+ return;
129
+ }
130
+ db?.prepare(`UPDATE agent_runs
131
+ SET status = 'error', exit_code = NULL, ended_at = ?, updated_at = ?
132
+ WHERE status IN ('starting', 'running')`).run(endedAt, endedAt);
133
+ };
120
134
  return {
121
135
  close,
122
136
  initialize,
@@ -124,6 +138,7 @@ export const createAgentRunStore = (db) => {
124
138
  deleteLaunchConfig,
125
139
  listAgentRuns,
126
140
  listLaunchConfigs,
141
+ markUnfinishedRunsStale,
127
142
  saveLaunchConfig,
128
143
  updatePersistedRun,
129
144
  };
@@ -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":"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"}
@@ -1,9 +1,7 @@
1
1
  export const closeAgentRuntime = async (agentManager, registry, syncRun) => {
2
- const activeRuns = registry.list().filter((run) => {
3
- const status = syncRun(run).status;
4
- return status === 'starting' || status === 'running';
5
- });
6
- for (const run of activeRuns) {
2
+ const runs = registry.list();
3
+ for (const run of runs) {
4
+ syncRun(run);
7
5
  agentManager?.stopRun(run.runId);
8
6
  }
9
7
  await Promise.all(registry.listExitEntries().map((entry) => entry.promise));
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runtime-close.js","sourceRoot":"","sources":["../../../src/server/agent-runtime-close.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,YAAsC,EACtC,QAAyB,EACzB,OAA4C,EAC5C,EAAE;IACF,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;QAClC,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IAE3E,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAClC,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAClC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"agent-runtime-close.js","sourceRoot":"","sources":["../../../src/server/agent-runtime-close.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,YAAsC,EACtC,QAAyB,EACzB,OAA4C,EAC5C,EAAE;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,CAAA;QACZ,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IAE3E,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAClC,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAClC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;AACH,CAAC,CAAA"}
@@ -25,7 +25,10 @@ export interface AgentRuntime {
25
25
  writeReportPrompt: (workspaceId: string, workerName: string, workerId: string, text: string, artifacts: string[], input?: {
26
26
  requireActiveRun?: boolean;
27
27
  }) => void;
28
- writeSendPrompt: (workspaceId: string, workerId: string, fromAgentName: string, workerDescription: string, text: string) => void;
28
+ writeStatusPrompt: (workspaceId: string, workerName: string, workerId: string, text: string, artifacts: string[], input?: {
29
+ requireActiveRun?: boolean;
30
+ }) => void;
31
+ writeSendPrompt: (workspaceId: string, workerId: string, dispatchId: string, fromAgentName: string, workerDescription: string, text: string) => void;
29
32
  writeUserInputPrompt: (workspaceId: string, text: string) => void;
30
33
  }
31
34
  export type { StartAgentOptions };
@@ -10,6 +10,7 @@ export interface AgentRunStorePort {
10
10
  config: AgentLaunchConfigInput;
11
11
  workspaceId: string;
12
12
  }>;
13
+ markUnfinishedRunsStale?: (endedAt?: number) => void;
13
14
  deleteLaunchConfig: (workspaceId: string, agentId: string) => void;
14
15
  saveLaunchConfig: (workspaceId: string, agentId: string, input: AgentLaunchConfigInput) => void;
15
16
  updatePersistedRun: (runId: string, status: PersistedRunStatus, exitCode: number | null, endedAt: number | null) => void;
@@ -14,6 +14,8 @@ export const createAgentRuntime = (agentManager, agentRunStore, sessionStore, ge
14
14
  const registry = createLiveRunRegistry();
15
15
  const launchCache = createAgentLaunchCache(agentRunStore);
16
16
  const tokenRegistry = createAgentTokenRegistry();
17
+ const startPromises = new Map();
18
+ let closing = false;
17
19
  const requireManager = () => {
18
20
  if (!agentManager)
19
21
  throw new Error('Agent manager is required for PTY terminal operations');
@@ -41,6 +43,8 @@ export const createAgentRuntime = (agentManager, agentRunStore, sessionStore, ge
41
43
  });
42
44
  return {
43
45
  async close() {
46
+ closing = true;
47
+ await Promise.allSettled([...startPromises.values()]);
44
48
  await closeAgentRuntime(agentManager, registry, syncRun);
45
49
  },
46
50
  configureAgentLaunch(workspaceId, agentId, input) {
@@ -80,11 +84,23 @@ export const createAgentRuntime = (agentManager, agentRunStore, sessionStore, ge
80
84
  flowAdapter.resumeRun(runId);
81
85
  },
82
86
  async startAgent(workspace, agentId, input) {
87
+ if (closing)
88
+ throw new Error('Agent runtime is closing');
83
89
  launchCache.setWorkspaceId(agentId, workspace.id);
90
+ const key = `${workspace.id}:${agentId}`;
84
91
  const activeRun = getActiveRunByAgent(registry, launchCache.getWorkspaceId, syncRun, workspace.id, agentId);
85
92
  if (activeRun)
86
93
  return activeRun;
87
- return startLiveRun(workspace, agentId, launchCache.get(workspace.id, agentId), input.hivePort);
94
+ const pendingStart = startPromises.get(key);
95
+ if (pendingStart)
96
+ return pendingStart;
97
+ const startPromise = startLiveRun(workspace, agentId, launchCache.get(workspace.id, agentId), input.hivePort).finally(() => {
98
+ if (startPromises.get(key) === startPromise) {
99
+ startPromises.delete(key);
100
+ }
101
+ });
102
+ startPromises.set(key, startPromise);
103
+ return startPromise;
88
104
  },
89
105
  stopAgentRun(runId) {
90
106
  stopLiveRun(agentManager, registry, syncRun, runId);
@@ -93,8 +109,11 @@ export const createAgentRuntime = (agentManager, agentRunStore, sessionStore, ge
93
109
  writeReportPrompt(workspaceId, workerName, _workerId, text, artifacts, input = {}) {
94
110
  stdinDispatcher.writeReportPrompt(workspaceId, workerName, text, artifacts, input);
95
111
  },
96
- writeSendPrompt(workspaceId, workerId, fromAgentName, workerDescription, text) {
97
- stdinDispatcher.writeSendPrompt(workspaceId, workerId, fromAgentName, workerDescription, text);
112
+ writeStatusPrompt(workspaceId, workerName, _workerId, text, artifacts, input = {}) {
113
+ stdinDispatcher.writeStatusPrompt(workspaceId, workerName, text, artifacts, input);
114
+ },
115
+ writeSendPrompt(workspaceId, workerId, dispatchId, fromAgentName, workerDescription, text) {
116
+ stdinDispatcher.writeSendPrompt(workspaceId, workerId, dispatchId, fromAgentName, workerDescription, text);
98
117
  },
99
118
  writeUserInputPrompt(workspaceId, text) {
100
119
  stdinDispatcher.writeUserInputPrompt(workspaceId, text);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../../../src/server/agent-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../../../src/server/agent-runtime.ts"],"names":[],"mappings":"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"}
@@ -15,10 +15,10 @@ export const buildAgentStartupInstructions = ({ agent, workspace, }) => {
15
15
  '',
16
16
  ];
17
17
  if (agent.role === 'orchestrator') {
18
- lines.push('你的职责:', '- 直接响应 user,澄清需求并拆解任务', `- 维护 ${TASKS_RELATIVE_PATH}`, '- 按 worker 名称派单,并根据汇报推进下一步', '', '可用 team 命令:', '- team list', '- team send <worker-name> "<task>"', '- team report "<结论>"', '', '派单时必须使用 worker name,不要使用 worker id。', '', 'Hive worker 派单规则:', ...getHiveTeamRules(agent));
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 report "<结论>"`。', '失败、阻塞或部分完成也用 `team report "<当前状态与原因>"` 汇报。', '不要调用 team send;worker 之间不能直接派单。', '', 'Hive worker 边界:', ...getHiveTeamRules(agent));
21
+ lines.push('可用 team 命令:', '- team report "<完整汇报>"', '- team status "<当前状态>"', '', '完成任务后必须执行 `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,sBAAsB,EACtB,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,EAAE,EACF,iCAAiC,EACjC,4CAA4C,EAC5C,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,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"}
@@ -13,7 +13,10 @@ export declare const createAgentStdinDispatcher: ({ agentManager, getLaunchConfi
13
13
  writeReportPrompt(workspaceId: string, workerName: string, text: string, artifacts: string[], input?: {
14
14
  requireActiveRun?: boolean;
15
15
  }): void;
16
- writeSendPrompt(workspaceId: string, workerId: string, fromAgentName: string, workerDescription: string, text: string): void;
16
+ writeStatusPrompt(workspaceId: string, workerName: string, text: string, artifacts: string[], input?: {
17
+ requireActiveRun?: boolean;
18
+ }): void;
19
+ writeSendPrompt(workspaceId: string, workerId: string, dispatchId: string, fromAgentName: string, workerDescription: string, text: string): void;
17
20
  writeUserInputPrompt(workspaceId: string, text: string): void;
18
21
  };
19
22
  export {};
@@ -19,7 +19,7 @@ export const createAgentStdinDispatcher = ({ agentManager, getLaunchConfig, getW
19
19
  try {
20
20
  const config = getLaunchConfig(workspaceId, agentId);
21
21
  if (agentManager && config) {
22
- createPostStartInputWriter(agentManager, config.command)(run.runId, text);
22
+ createPostStartInputWriter(agentManager, config.interactiveCommand ?? config.command)(run.runId, text);
23
23
  }
24
24
  else {
25
25
  agentManager?.writeInput(run.runId, text);
@@ -37,16 +37,25 @@ export const createAgentStdinDispatcher = ({ agentManager, getLaunchConfig, getW
37
37
  lines.push('');
38
38
  writeToActiveAgentRun(workspaceId, `${workspaceId}:orchestrator`, lines.join('\n'), input);
39
39
  },
40
- writeSendPrompt(workspaceId, workerId, fromAgentName, workerDescription, text) {
40
+ writeStatusPrompt(workspaceId, workerName, text, artifacts, input = {}) {
41
+ const lines = [`[Hive 系统消息:来自 @${workerName} 的状态更新]`, text];
42
+ for (const artifact of artifacts)
43
+ lines.push(`artifact: ${artifact}`);
44
+ lines.push('');
45
+ writeToActiveAgentRun(workspaceId, `${workspaceId}:orchestrator`, lines.join('\n'), input);
46
+ },
47
+ writeSendPrompt(workspaceId, workerId, dispatchId, fromAgentName, workerDescription, text) {
41
48
  writeToActiveAgentRun(workspaceId, workerId, [
42
49
  `[Hive 系统消息:来自 @${fromAgentName} 的派单]`,
43
50
  '',
44
51
  `你的角色:${workerDescription}`,
45
52
  '',
46
53
  '你必须遵守:',
47
- '- 完成、失败、阻塞或部分完成后,执行 `team report "<完整汇报>"`',
54
+ `- 完成、失败、阻塞或部分完成后,执行 \`team report "<完整汇报>" --dispatch ${dispatchId}\``,
48
55
  '- 不要做无关的事,做完就 report',
49
56
  '',
57
+ `dispatch_id: ${dispatchId}`,
58
+ '',
50
59
  '任务内容:',
51
60
  text,
52
61
  '',
@@ -1 +1 @@
1
- {"version":3,"file":"agent-stdin-dispatcher.js","sourceRoot":"","sources":["../../../src/server/agent-stdin-dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-stdin-dispatcher.js","sourceRoot":"","sources":["../../../src/server/agent-stdin-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ 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';
@@ -80,6 +81,7 @@ export const createApp = ({ store, pickFolderService = pickFolder, tasksFileServ
80
81
  const method = request.method ?? 'GET';
81
82
  const url = new URL(request.url ?? '/', 'http://127.0.0.1');
82
83
  try {
84
+ assertLocalRequest(request);
83
85
  const match = matchRoute(method, url.pathname);
84
86
  if (match) {
85
87
  await match.handler({
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,YAAY,EAA6C,MAAM,WAAW,CAAA;AACnF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAA2B,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,sBAAsB,EAAyB,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAA;AAQvE,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACzD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,GAAG,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAE/E,MAAM,cAAc,GAAG,KAAK,EAAE,SAAiB,EAAE,EAAE;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QAC3D,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE;IACjE,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IACrC,IAAI,QAAQ,KAAK,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IACvF,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAA;IACrD,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,GAAG,EAAE,CAAC;QAAE,OAAO,SAAS,CAAA;IAC7F,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,aAAa,GAA2B;IAC5C,MAAM,EAAE,yBAAyB;IACjC,OAAO,EAAE,0BAA0B;IACnC,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,gCAAgC;IACvC,OAAO,EAAE,iCAAiC;IAC1C,MAAM,EAAE,iCAAiC;IACzC,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,8BAA8B;IACtC,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,kBAAkB;IAC3B,cAAc,EAAE,0CAA0C;IAC1D,OAAO,EAAE,YAAY;IACrB,QAAQ,EAAE,YAAY;CACvB,CAAA;AAED,MAAM,UAAU,GAAG,KAAK,EACtB,QAAwB,EACxB,SAAiB,EACjB,QAAgB,EAChB,OAAwB,EACxB,EAAE;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IACvE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IACxD,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACxC,QAAQ,CAAC,SAAS,CAChB,cAAc,EACd,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,0BAA0B,CAC/D,CAAA;QACD,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAA;QACzB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAC7D,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAE,UAAkB,EAAE,IAAa,EAAE,EAAE;IAC/E,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAA;IACrE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AACpC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACxB,KAAK,EACL,iBAAiB,GAAG,UAAU,EAC9B,gBAAgB,GAAG,sBAAsB,EAAE,GAC1B,EAAE,EAAE;IACrB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,mBAAmB,EAAE,CAAA;IACtE,MAAM,sBAAsB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAA;QACtC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAA;QAE3D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC,OAAO,CAAC;oBAClB,OAAO;oBACP,QAAQ;oBACR,KAAK;oBACL,gBAAgB;oBAChB,iBAAiB;oBACjB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YAED,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;gBAC/C,OAAM;YACR,CAAC;YAED,IAAI,MAAM,sBAAsB,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;gBAC3E,IAAI,MAAM;oBAAE,OAAM;YACpB,CAAC;YAED,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;gBAC/B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC9D,OAAM;YACR,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAA;YACxE,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC,CAAC,CAAA;IACF,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAE5C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AAC1B,CAAC,CAAA"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"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"}