@winmatrix/daemon 0.2.7 → 1.0.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 (53) hide show
  1. package/package.json +3 -3
  2. package/dist/core/AgentProcessManager.d.ts +0 -92
  3. package/dist/core/AgentProcessManager.d.ts.map +0 -1
  4. package/dist/core/AgentProcessManager.js +0 -323
  5. package/dist/core/AgentProcessManager.js.map +0 -1
  6. package/dist/core/ConfigLoader.d.ts +0 -94
  7. package/dist/core/ConfigLoader.d.ts.map +0 -1
  8. package/dist/core/ConfigLoader.js +0 -245
  9. package/dist/core/ConfigLoader.js.map +0 -1
  10. package/dist/core/DaemonFileLogger.d.ts +0 -34
  11. package/dist/core/DaemonFileLogger.d.ts.map +0 -1
  12. package/dist/core/DaemonFileLogger.js +0 -192
  13. package/dist/core/DaemonFileLogger.js.map +0 -1
  14. package/dist/core/DaemonLifecycle.d.ts +0 -22
  15. package/dist/core/DaemonLifecycle.d.ts.map +0 -1
  16. package/dist/core/DaemonLifecycle.js +0 -156
  17. package/dist/core/DaemonLifecycle.js.map +0 -1
  18. package/dist/core/DiagnosticsServer.d.ts +0 -28
  19. package/dist/core/DiagnosticsServer.d.ts.map +0 -1
  20. package/dist/core/DiagnosticsServer.js +0 -155
  21. package/dist/core/DiagnosticsServer.js.map +0 -1
  22. package/dist/core/InstallationId.d.ts +0 -14
  23. package/dist/core/InstallationId.d.ts.map +0 -1
  24. package/dist/core/InstallationId.js +0 -50
  25. package/dist/core/InstallationId.js.map +0 -1
  26. package/dist/core/RuntimeAvailabilityReporter.d.ts +0 -27
  27. package/dist/core/RuntimeAvailabilityReporter.d.ts.map +0 -1
  28. package/dist/core/RuntimeAvailabilityReporter.js +0 -79
  29. package/dist/core/RuntimeAvailabilityReporter.js.map +0 -1
  30. package/dist/core/WorkspaceScanner.d.ts +0 -45
  31. package/dist/core/WorkspaceScanner.d.ts.map +0 -1
  32. package/dist/core/WorkspaceScanner.js +0 -166
  33. package/dist/core/WorkspaceScanner.js.map +0 -1
  34. package/dist/index.d.ts +0 -16
  35. package/dist/index.d.ts.map +0 -1
  36. package/dist/index.js +0 -238
  37. package/dist/index.js.map +0 -1
  38. package/dist/wrapper/AgentProcessManager.d.ts +0 -80
  39. package/dist/wrapper/AgentProcessManager.d.ts.map +0 -1
  40. package/dist/wrapper/AgentProcessManager.js +0 -474
  41. package/dist/wrapper/AgentProcessManager.js.map +0 -1
  42. package/dist/wrapper/AgentWrapper.d.ts +0 -7
  43. package/dist/wrapper/AgentWrapper.d.ts.map +0 -1
  44. package/dist/wrapper/AgentWrapper.js +0 -229
  45. package/dist/wrapper/AgentWrapper.js.map +0 -1
  46. package/dist/wrapper/claudeCommand.d.ts +0 -2
  47. package/dist/wrapper/claudeCommand.d.ts.map +0 -1
  48. package/dist/wrapper/claudeCommand.js +0 -2
  49. package/dist/wrapper/claudeCommand.js.map +0 -1
  50. package/dist/wrapper/supportedAgentTypes.d.ts +0 -7
  51. package/dist/wrapper/supportedAgentTypes.d.ts.map +0 -1
  52. package/dist/wrapper/supportedAgentTypes.js +0 -6
  53. package/dist/wrapper/supportedAgentTypes.js.map +0 -1
@@ -1,166 +0,0 @@
1
- /**
2
- * WorkspaceScanner - 扫描 workDir 获取项目元数据
3
- *
4
- * 在 Agent 注册成功后调用,将扫描结果通过 Daemon WS 上报至 Server。
5
- * 安全约束:不上报绝对路径、文件内容、环境变量、含凭据的 Git remote。
6
- */
7
- import { readdir, readFile } from 'node:fs/promises';
8
- import { basename } from 'node:path';
9
- import { execFile } from 'node:child_process';
10
- import { promisify } from 'node:util';
11
- const execFileAsync = promisify(execFile);
12
- /** 常用 CLI 工具列表 */
13
- const COMMON_CLI_TOOLS = ['git', 'docker', 'pnpm', 'yarn', 'npm', 'python', 'go', 'cargo', 'node'];
14
- /** 对 execFile 调用的超时(毫秒) */
15
- const EXEC_TIMEOUT_MS = 5000;
16
- /**
17
- * 扫描指定工作目录,提取项目元数据。
18
- * 所有 git/which 调用均带 5s 超时,失败不影响整体结果。
19
- */
20
- export async function scanWorkDir(workDir) {
21
- const result = {
22
- pathSummary: basename(workDir),
23
- };
24
- try {
25
- const files = await readdir(workDir);
26
- // 仅判断是否存在 package.json,不读取内容(后续统一读取)
27
- const hasPackageJson = files.includes('package.json');
28
- // 读取 package.json 提取关键字段
29
- if (hasPackageJson) {
30
- try {
31
- const pkgRaw = await readFile(`${workDir}/package.json`, 'utf-8');
32
- const pkg = JSON.parse(pkgRaw);
33
- const techStack = {};
34
- if (pkg.name) {
35
- // name 仅用于内部识别
36
- }
37
- // 提取 scripts(最多 20 个 key,防止 package.json 异常膨胀)
38
- const scriptKeys = Object.keys(pkg.scripts ?? {}).slice(0, 20);
39
- if (scriptKeys.length > 0) {
40
- result.scripts = {};
41
- for (const key of scriptKeys) {
42
- result.scripts[key] = String(pkg.scripts[key]);
43
- }
44
- }
45
- // 提取技术栈信息(从 dependencies/devDependencies 推断)
46
- const allDeps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };
47
- const depNames = Object.keys(allDeps);
48
- if (depNames.includes('vue')) {
49
- techStack.framework = 'vue';
50
- techStack.frameworkVersion = allDeps.vue;
51
- }
52
- else if (depNames.includes('react')) {
53
- techStack.framework = 'react';
54
- techStack.frameworkVersion = allDeps.react;
55
- }
56
- if (depNames.includes('vite')) {
57
- techStack.bundler = 'vite';
58
- techStack.bundlerVersion = allDeps.vite;
59
- }
60
- else if (depNames.includes('webpack')) {
61
- techStack.bundler = 'webpack';
62
- techStack.bundlerVersion = allDeps.webpack;
63
- }
64
- if (depNames.includes('typescript')) {
65
- techStack.language = 'typescript';
66
- techStack.languageVersion = allDeps.typescript;
67
- }
68
- else if (allDeps['@types/node'] || depNames.some((d) => d.startsWith('@types/'))) {
69
- techStack.language = 'typescript';
70
- }
71
- const runtimeEntry = depNames.find((d) => d === 'next' || d === 'nuxt' || d === 'express' || d === 'fastify');
72
- if (runtimeEntry) {
73
- techStack.runtime = runtimeEntry;
74
- techStack.runtimeVersion = allDeps[runtimeEntry];
75
- }
76
- else if (depNames.includes('node')) {
77
- techStack.runtime = 'node';
78
- }
79
- // 包管理器检测
80
- const lockFiles = files.filter((f) => ['pnpm-lock.yaml', 'yarn.lock', 'package-lock.json', 'bun.lockb'].includes(f));
81
- if (lockFiles.includes('pnpm-lock.yaml'))
82
- techStack.packageManager = 'pnpm';
83
- else if (lockFiles.includes('yarn.lock'))
84
- techStack.packageManager = 'yarn';
85
- else if (lockFiles.includes('package-lock.json'))
86
- techStack.packageManager = 'npm';
87
- else if (lockFiles.includes('bun.lockb'))
88
- techStack.packageManager = 'bun';
89
- if (Object.keys(techStack).length > 0) {
90
- result.techStack = techStack;
91
- }
92
- }
93
- catch {
94
- // package.json 读取或解析失败,静默跳过
95
- }
96
- }
97
- // Git 信息
98
- try {
99
- const { stdout: remoteOut } = await execFileAsync('git', ['-C', workDir, 'remote', 'get-url', 'origin'], { timeout: EXEC_TIMEOUT_MS });
100
- result.gitRemote = sanitizeGitRemote(remoteOut.trim());
101
- }
102
- catch {
103
- // git remote 获取失败
104
- }
105
- try {
106
- const { stdout: branchOut } = await execFileAsync('git', ['-C', workDir, 'rev-parse', '--abbrev-ref', 'HEAD'], { timeout: EXEC_TIMEOUT_MS });
107
- result.gitBranch = branchOut.trim();
108
- }
109
- catch {
110
- // git branch 获取失败
111
- }
112
- // 扫描已安装 CLI 工具
113
- const installedCli = [];
114
- for (const cli of COMMON_CLI_TOOLS) {
115
- try {
116
- await execFileAsync('which', [cli], { timeout: EXEC_TIMEOUT_MS });
117
- installedCli.push(cli);
118
- }
119
- catch {
120
- // CLI 未安装
121
- }
122
- }
123
- if (installedCli.length > 0) {
124
- result.installedCli = installedCli;
125
- }
126
- }
127
- catch {
128
- // readdir 失败(权限不足或路径不存在),返回基本信息
129
- }
130
- return result;
131
- }
132
- /**
133
- * 脱敏 Git remote URL:
134
- * - HTTPS: 移除 userinfo(用户名:密码@)
135
- * - SSH: 保持原样(git@host:org/repo)
136
- * - 仅保留 host/org/repo
137
- */
138
- export function sanitizeGitRemote(remote) {
139
- // HTTPS with credentials: https://user:token@github.com/org/repo.git
140
- const httpsMatch = remote.match(/^https?:\/\/(?:[^@]+@)?(.+)$/i);
141
- if (httpsMatch) {
142
- return httpsMatch[1].replace(/\.git$/, '');
143
- }
144
- // SSH: git@github.com:org/repo.git - already safe
145
- const sshMatch = remote.match(/^git@(.+)$/);
146
- if (sshMatch) {
147
- return sshMatch[0].replace(/\.git$/, '');
148
- }
149
- // Unknown format: return as-is but strip potential userinfo
150
- return remote.replace(/\/\/[^@]+@/, '//').replace(/\.git$/, '');
151
- }
152
- /**
153
- * 检测运行时可用的运行时版本信息。
154
- * 基于 agentType 选择性检测,避免不必要的磁盘扫描。
155
- */
156
- export async function detectRuntimeInfo(runtimeBinary) {
157
- try {
158
- const { stdout } = await execFileAsync(runtimeBinary, ['--version'], { timeout: EXEC_TIMEOUT_MS });
159
- const version = stdout.trim().split('\n')[0]; // 取第一行
160
- return { version, available: true };
161
- }
162
- catch {
163
- return { available: false };
164
- }
165
- }
166
- //# sourceMappingURL=WorkspaceScanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkspaceScanner.js","sourceRoot":"","sources":["../../src/core/WorkspaceScanner.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * WinMatrix Daemon v2 — CLI Entry Point
4
- *
5
- * 使用 @winmatrix/agent-sdk 的 DaemonClient + AgentAdapter 架构。
6
- * 方案 B:adapter 在 daemon 进程内直接运行,不再 spawn 子进程。
7
- *
8
- * 1. 解析 CLI 参数
9
- * 2. 加载或生成持久化 installation UUID
10
- * 3. 检测本地 AI runtimes
11
- * 4. 注册 adapters 到全局 registry
12
- * 5. 连接 WinMatrix Server (DaemonClient)
13
- * 6. 监听 agent.create / agent.stop 信令
14
- */
15
- export {};
16
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG"}
package/dist/index.js DELETED
@@ -1,238 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * WinMatrix Daemon v2 — CLI Entry Point
4
- *
5
- * 使用 @winmatrix/agent-sdk 的 DaemonClient + AgentAdapter 架构。
6
- * 方案 B:adapter 在 daemon 进程内直接运行,不再 spawn 子进程。
7
- *
8
- * 1. 解析 CLI 参数
9
- * 2. 加载或生成持久化 installation UUID
10
- * 3. 检测本地 AI runtimes
11
- * 4. 注册 adapters 到全局 registry
12
- * 5. 连接 WinMatrix Server (DaemonClient)
13
- * 6. 监听 agent.create / agent.stop 信令
14
- */
15
- import { loadDaemonStartupOptions, persistDaemonCredentialsToDisk, sanitizeConfig, describeDaemonCredentialFile, } from './core/ConfigLoader.js';
16
- import { getOrCreateInstallationId } from './core/InstallationId.js';
17
- import { AgentProcessManager, } from './core/AgentProcessManager.js';
18
- import { DaemonFileLogger, mirrorConsoleToFile } from './core/DaemonFileLogger.js';
19
- import { startDiagnosticsServer } from './core/DiagnosticsServer.js';
20
- import { writeDaemonPidFile, clearDaemonPidFile, runSetup, runRestart, printCliHelp, } from './core/DaemonLifecycle.js';
21
- import { DaemonClient, getGlobalRegistry, ClaudeAdapter, HermesAdapter, OpenClawAdapter, detectRuntimes, } from '@winmatrix/agent-sdk';
22
- /* ── Constants ── */
23
- const DAEMON_VERSION = '0.2.0';
24
- /* ── Helpers ── */
25
- function logConfig(config) {
26
- const safe = sanitizeConfig(config);
27
- const src = config.tokenSource ? ` (${config.tokenSource})` : '';
28
- console.log(`[daemon] Server URL: ${safe.serverUrl}`);
29
- console.log(`[daemon] Computer token: ${safe.token}${src}`);
30
- }
31
- function logRuntimes(runtimes) {
32
- const available = runtimes.filter((r) => r.available);
33
- const unavailable = runtimes.filter((r) => !r.available);
34
- console.log(`[daemon] Detected ${available.length} available runtime(s):`);
35
- for (const r of available) {
36
- console.log(`[daemon] - ${r.name}${r.version ? ` (${r.version})` : ''}`);
37
- }
38
- if (unavailable.length > 0) {
39
- console.log(`[daemon] ${unavailable.length} runtime(s) not found: ${unavailable.map((r) => r.name).join(', ')}`);
40
- }
41
- }
42
- function registerAdapters() {
43
- const registry = getGlobalRegistry();
44
- registry.register('claude-code', ClaudeAdapter);
45
- registry.register('hermes', HermesAdapter);
46
- registry.register('openclaw', OpenClawAdapter);
47
- console.log(`[daemon] Registered ${registry.listTypes().length} adapter(s): ${registry.listTypes().join(', ')}`);
48
- }
49
- /* ── Main ── */
50
- function runDaemon(configArgv) {
51
- console.log(`[daemon] WinMatrix Daemon v${DAEMON_VERSION} starting...`);
52
- // Step 1: Load configuration
53
- const { config, persistCredentials } = loadDaemonStartupOptions(configArgv);
54
- const fileLogger = new DaemonFileLogger();
55
- mirrorConsoleToFile(fileLogger);
56
- const retentionTimer = fileLogger.startRetentionTimer();
57
- if (persistCredentials && config.token.length > 0) {
58
- persistDaemonCredentialsToDisk(config);
59
- console.log('[daemon] Saved server URL and computerToken to ~/.winmatrix/daemon.json');
60
- }
61
- logConfig(config);
62
- writeDaemonPidFile();
63
- if (config.token.length === 0) {
64
- const st = describeDaemonCredentialFile();
65
- const detail = !st.fileExists
66
- ? `未找到配置文件 ${st.pathLabel}。请执行一次:winmatrix-daemon setup --token wmc_...(可选 --server ws://.../connect)。`
67
- : `${st.pathLabel} 中未配置有效的 computerToken,或 JSON 无法解析。可编辑该文件添加 "computerToken",或:winmatrix-daemon setup --token wmc_...;也可在本终端 export WINMATRIX_TOKEN 后再执行 winmatrix-daemon restart。`;
68
- console.warn(`[daemon] WARNING: No computer token. ${detail}`);
69
- }
70
- // Step 2: Get or create installation ID
71
- const installationId = getOrCreateInstallationId();
72
- console.log(`[daemon] Installation ID: ${installationId}`);
73
- // Step 3: Detect runtimes
74
- const runtimes = detectRuntimes();
75
- logRuntimes(runtimes);
76
- // Step 4: Register adapters
77
- registerAdapters();
78
- // Step 5: Create Agent Manager
79
- const agentManager = new AgentProcessManager();
80
- // Step 6: Connect to server as Computer
81
- let daemonClient = null;
82
- let isShuttingDown = false;
83
- const diagDisabled = process.env.WINMATRIX_DAEMON_DIAG_DISABLE === '1' ||
84
- process.env.WINMATRIX_DAEMON_DIAG_DISABLE === 'true';
85
- const diagnosticsServer = !diagDisabled
86
- ? startDiagnosticsServer({
87
- fileLogger,
88
- agentManager,
89
- getContext: () => ({
90
- version: DAEMON_VERSION,
91
- installationId,
92
- serverUrl: config.serverUrl,
93
- computerState: daemonClient?.getState() ?? null,
94
- computerId: daemonClient?.getComputerId() ?? null,
95
- uptimeSec: Math.floor(process.uptime()),
96
- }),
97
- onRescanProfiles: async () => {
98
- try {
99
- await agentManager.rescanAndReportProfiles();
100
- await daemonClient?.sendHeartbeatNow();
101
- return { ok: true };
102
- }
103
- catch (err) {
104
- return { ok: false, error: err instanceof Error ? err.message : String(err) };
105
- }
106
- },
107
- })
108
- : null;
109
- function connectDaemon() {
110
- if (isShuttingDown)
111
- return;
112
- console.log(`[daemon] Connecting to ${config.serverUrl}...`);
113
- daemonClient = new DaemonClient({
114
- url: config.serverUrl,
115
- token: config.token,
116
- installationId,
117
- hostOs: `${process.platform} ${process.version}`,
118
- hostArch: process.arch,
119
- hostname: process.env.HOSTNAME ?? process.env.HOST ?? process.env.COMPUTERNAME ?? 'unknown',
120
- daemonVersion: DAEMON_VERSION,
121
- autoReconnect: true,
122
- runtimes: runtimes.map((r) => ({
123
- name: r.name,
124
- version: r.version,
125
- available: r.available,
126
- })),
127
- });
128
- // Wire profile collection: DaemonClient reads from AgentProcessManager
129
- daemonClient.setProfileCollector(() => agentManager.collectAgentProfiles());
130
- agentManager.setOnProfilesChanged(() => {
131
- void daemonClient?.sendHeartbeatNow();
132
- });
133
- // Handle agent.create
134
- daemonClient.onDaemonEvent('agent.create', async (payload) => {
135
- const raw = payload;
136
- const agentId = typeof raw.agentId === 'string' ? raw.agentId : '';
137
- const agentType = typeof raw.agentType === 'string' ? raw.agentType : '';
138
- if (!agentId || !agentType) {
139
- console.error('[daemon] Invalid agent.create payload');
140
- return;
141
- }
142
- const agentApiKey = (typeof raw.apiKey === 'string' ? raw.apiKey : '').trim();
143
- if (!agentApiKey) {
144
- console.error('[daemon] Invalid agent.create: missing apiKey for agent');
145
- return;
146
- }
147
- const agentPayload = {
148
- agentId,
149
- agentType,
150
- name: typeof raw.name === 'string' ? raw.name : undefined,
151
- serverUrl: config.serverUrl,
152
- apiKey: agentApiKey,
153
- workDir: typeof raw.workDir === 'string' ? raw.workDir : undefined,
154
- adapterConfig: {
155
- mcpBridgeUrl: typeof raw.mcpBridgeUrl === 'string' ? raw.mcpBridgeUrl : undefined,
156
- mcpApiKey: typeof raw.mcpApiKey === 'string' ? raw.mcpApiKey : undefined,
157
- token: typeof raw.endpointToken === 'string' ? raw.endpointToken : undefined,
158
- agentId: agentId,
159
- hermesPath: typeof raw.hermesEndpoint === 'string' ? raw.hermesEndpoint : undefined,
160
- },
161
- };
162
- const result = await agentManager.createAgent(agentPayload);
163
- if (!result.ok) {
164
- console.error(`[daemon] Failed to create agent: ${result.error}`);
165
- // Notify server of failure via the daemon connection
166
- daemonClient?.sendAgentError(agentId, result.error);
167
- }
168
- });
169
- // Handle agent.stop
170
- daemonClient.onDaemonEvent('agent.stop', async (payload) => {
171
- const raw = payload;
172
- const stopAgentId = typeof raw.agentId === 'string' ? raw.agentId : '';
173
- if (!stopAgentId) {
174
- console.error('[daemon] Invalid agent.stop payload');
175
- return;
176
- }
177
- const result = await agentManager.stopAgent({ agentId: stopAgentId });
178
- if (!result.ok) {
179
- console.error(`[daemon] Failed to stop agent: ${result.error}`);
180
- }
181
- });
182
- // Connect
183
- daemonClient.connect().catch((err) => {
184
- console.error(`[daemon] Connection failed: ${err.message}`);
185
- });
186
- }
187
- async function shutdown() {
188
- if (isShuttingDown)
189
- return;
190
- isShuttingDown = true;
191
- console.log('[daemon] Shutting down...');
192
- clearInterval(retentionTimer);
193
- diagnosticsServer?.close();
194
- clearDaemonPidFile();
195
- // Await agent shutdown with timeout
196
- try {
197
- await Promise.race([
198
- agentManager.stopAllAgents(),
199
- new Promise((r) => setTimeout(r, 5_000)),
200
- ]);
201
- }
202
- catch (err) {
203
- console.error(`[daemon] Error stopping agents: ${err instanceof Error ? err.message : String(err)}`);
204
- }
205
- if (daemonClient) {
206
- daemonClient.disconnect();
207
- }
208
- console.log('[daemon] Goodbye.');
209
- process.exit(0);
210
- }
211
- // Register signal handlers
212
- process.on('SIGINT', shutdown);
213
- process.on('SIGTERM', shutdown);
214
- // Start connection
215
- connectDaemon();
216
- }
217
- async function mainEntry() {
218
- const argv = process.argv.slice(2);
219
- const cmd = argv[0];
220
- if (cmd === 'setup') {
221
- runSetup(argv.slice(1));
222
- process.exit(0);
223
- }
224
- if (cmd === 'restart') {
225
- await runRestart(argv.slice(1));
226
- process.exit(process.exitCode ?? 0);
227
- }
228
- if (cmd === 'help' || cmd === '--help' || cmd === '-h') {
229
- printCliHelp(DAEMON_VERSION);
230
- process.exit(0);
231
- }
232
- runDaemon(argv);
233
- }
234
- mainEntry().catch((err) => {
235
- console.error(err instanceof Error ? err.message : String(err));
236
- process.exit(1);
237
- });
238
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- /**
2
- * @deprecated Multiprocess wrapper path — process spawn/kill lifecycle for AgentWrapper.
3
- * Scheme B (in-process adapters) uses core/AgentProcessManager instead.
4
- */
5
- import { type ChildProcess } from 'node:child_process';
6
- export interface WrapperConfig {
7
- agentId: string;
8
- apiKey: string;
9
- name: string;
10
- agentType: string;
11
- runtime: string;
12
- workDir?: string;
13
- hermesEndpoint?: string;
14
- endpoint?: string;
15
- endpointToken?: string;
16
- mcpBridgeUrl?: string;
17
- mcpApiKey?: string;
18
- }
19
- export interface TaskAssignPayload {
20
- taskId: string;
21
- input: string;
22
- mode?: 'oneshot' | 'session';
23
- workDir?: string;
24
- env?: Record<string, string>;
25
- claude?: ClaudeTaskConfig;
26
- hermes?: HermesTaskConfig;
27
- endpoint?: string;
28
- endpointToken?: string;
29
- context?: unknown;
30
- streaming?: boolean;
31
- systemPrompt?: string;
32
- mcpToken?: string;
33
- }
34
- interface ClaudeTaskConfig {
35
- sessionId?: string;
36
- resumeSession?: boolean;
37
- forkSession?: boolean;
38
- tools?: string[];
39
- disallowedTools?: string[];
40
- permissionMode?: 'auto' | 'acceptEdits' | 'default';
41
- maxBudgetUsd?: number;
42
- systemPrompt?: string;
43
- }
44
- interface HermesTaskConfig {
45
- endpoint?: string;
46
- timeoutMs?: number;
47
- }
48
- export interface RunningTask {
49
- taskId: string;
50
- process: ChildProcess | null;
51
- abortController: AbortController | null;
52
- startedAt: number;
53
- stdoutChunks: string[];
54
- completed: boolean;
55
- completionPromise?: Promise<void>;
56
- }
57
- export interface TaskCallbacks {
58
- onDelta: (taskId: string, content: string, meta?: Record<string, unknown>) => void;
59
- onComplete: (taskId: string, result: unknown, sessionId?: string, usage?: {
60
- input_tokens: number;
61
- output_tokens: number;
62
- }) => void;
63
- onError: (taskId: string, error: string) => void;
64
- }
65
- export declare class WrapperProcessManager {
66
- private readonly config;
67
- private readonly callbacks;
68
- private readonly runningTasks;
69
- constructor(config: WrapperConfig, callbacks: TaskCallbacks);
70
- getRunningTaskCount(): number;
71
- routeTask(task: TaskAssignPayload): void;
72
- cancelTask(taskId: string): void;
73
- shutdown(): Promise<void>;
74
- private cleanupTask;
75
- private spawnClaudeCodeTask;
76
- private spawnHttpTask;
77
- private spawnGenericTask;
78
- }
79
- export {};
80
- //# sourceMappingURL=AgentProcessManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentProcessManager.d.ts","sourceRoot":"","sources":["../../src/wrapper/AgentProcessManager.ts"],"names":[],"mappings":"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"}