agents-bridge 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +188 -205
  2. package/config.example.json +131 -117
  3. package/dist/agents/cli-backends.js +3 -3
  4. package/dist/agents/cli-backends.js.map +1 -1
  5. package/dist/agents/cli-runner.d.ts +5 -2
  6. package/dist/agents/cli-runner.d.ts.map +1 -1
  7. package/dist/agents/cli-runner.js +73 -35
  8. package/dist/agents/cli-runner.js.map +1 -1
  9. package/dist/agents/cli-session-store.d.ts +6 -0
  10. package/dist/agents/cli-session-store.d.ts.map +1 -1
  11. package/dist/agents/cli-session-store.js +64 -0
  12. package/dist/agents/cli-session-store.js.map +1 -1
  13. package/dist/agents/codex-app-server-runtime.js +2 -2
  14. package/dist/agents/codex-app-server-runtime.js.map +1 -1
  15. package/dist/channels/command-gating.d.ts.map +1 -1
  16. package/dist/channels/command-gating.js +6 -6
  17. package/dist/channels/command-gating.js.map +1 -1
  18. package/dist/cli/cmd-add-agent.d.ts +19 -0
  19. package/dist/cli/cmd-add-agent.d.ts.map +1 -0
  20. package/dist/cli/cmd-add-agent.js +339 -0
  21. package/dist/cli/cmd-add-agent.js.map +1 -0
  22. package/dist/cli/cmd-onboard.d.ts.map +1 -1
  23. package/dist/cli/cmd-onboard.js +10 -1
  24. package/dist/cli/cmd-onboard.js.map +1 -1
  25. package/dist/cli/cmd-restart.d.ts +3 -0
  26. package/dist/cli/cmd-restart.d.ts.map +1 -0
  27. package/dist/cli/cmd-restart.js +22 -0
  28. package/dist/cli/cmd-restart.js.map +1 -0
  29. package/dist/cli/cmd-start.d.ts.map +1 -1
  30. package/dist/cli/cmd-start.js +35 -10
  31. package/dist/cli/cmd-start.js.map +1 -1
  32. package/dist/cli/cmd-stop.d.ts +5 -0
  33. package/dist/cli/cmd-stop.d.ts.map +1 -1
  34. package/dist/cli/cmd-stop.js +32 -8
  35. package/dist/cli/cmd-stop.js.map +1 -1
  36. package/dist/cli/run-main.d.ts +1 -1
  37. package/dist/cli/run-main.d.ts.map +1 -1
  38. package/dist/cli/run-main.js +16 -12
  39. package/dist/cli/run-main.js.map +1 -1
  40. package/dist/config/default-config.d.ts.map +1 -1
  41. package/dist/config/default-config.js +14 -0
  42. package/dist/config/default-config.js.map +1 -1
  43. package/dist/entry.d.ts.map +1 -1
  44. package/dist/entry.js +8 -0
  45. package/dist/entry.js.map +1 -1
  46. package/dist/types/index.d.ts +6 -0
  47. package/dist/types/index.d.ts.map +1 -1
  48. package/package.json +5 -1
  49. package/dist/agents/cli-output.test.d.ts +0 -2
  50. package/dist/agents/cli-output.test.d.ts.map +0 -1
  51. package/dist/agents/cli-output.test.js +0 -56
  52. package/dist/agents/cli-output.test.js.map +0 -1
  53. package/dist/agents/cli-runner.test.d.ts +0 -2
  54. package/dist/agents/cli-runner.test.d.ts.map +0 -1
  55. package/dist/agents/cli-runner.test.js +0 -119
  56. package/dist/agents/cli-runner.test.js.map +0 -1
  57. package/dist/agents/cli-session-store.test.d.ts +0 -2
  58. package/dist/agents/cli-session-store.test.d.ts.map +0 -1
  59. package/dist/agents/cli-session-store.test.js +0 -30
  60. package/dist/agents/cli-session-store.test.js.map +0 -1
  61. package/dist/agents/codex-app-server-runtime.test.d.ts +0 -2
  62. package/dist/agents/codex-app-server-runtime.test.d.ts.map +0 -1
  63. package/dist/agents/codex-app-server-runtime.test.js +0 -164
  64. package/dist/agents/codex-app-server-runtime.test.js.map +0 -1
  65. package/dist/cli/run-main.test.d.ts +0 -2
  66. package/dist/cli/run-main.test.d.ts.map +0 -1
  67. package/dist/cli/run-main.test.js +0 -17
  68. package/dist/cli/run-main.test.js.map +0 -1
  69. package/dist/config/default-config.test.d.ts +0 -2
  70. package/dist/config/default-config.test.d.ts.map +0 -1
  71. package/dist/config/default-config.test.js +0 -19
  72. package/dist/config/default-config.test.js.map +0 -1
@@ -0,0 +1,339 @@
1
+ import { copyFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { createInterface } from 'node:readline/promises';
4
+ import { stdin, stdout } from 'node:process';
5
+ import { ensureDataDirs } from '../config/agent-dirs.js';
6
+ import { ONBOARD_MODEL_CHOICES } from '../config/default-config.js';
7
+ import { readEnvOverrides } from '../config/env-vars.js';
8
+ import { DATA_CONFIG_PATH, DATA_DIR } from '../config/paths.js';
9
+ import { AppConfigSchema, normalizeBotlinkChannelConfigs, } from '../config/zod-schema.js';
10
+ const AGENT_ID_REGEX = /^[a-z0-9][a-z0-9_-]{0,63}$/;
11
+ function createConfigBackupPath(configPath) {
12
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
13
+ return `${configPath}.bak.${timestamp}`;
14
+ }
15
+ function resolveExistingConfigPath(explicitConfigPath) {
16
+ const env = readEnvOverrides();
17
+ const paths = [
18
+ explicitConfigPath,
19
+ env.configPath,
20
+ './config.json',
21
+ DATA_CONFIG_PATH,
22
+ ].filter(Boolean);
23
+ for (const candidate of paths) {
24
+ const resolved = resolve(candidate);
25
+ if (existsSync(resolved)) {
26
+ return resolved;
27
+ }
28
+ }
29
+ return null;
30
+ }
31
+ function readConfigForMutation(explicitConfigPath) {
32
+ const configPath = resolveExistingConfigPath(explicitConfigPath);
33
+ if (!configPath) {
34
+ throw new Error('No config file found. Run `agents-bridge onboard` first or pass `-c <path>`.');
35
+ }
36
+ const raw = JSON.parse(readFileSync(configPath, 'utf-8').replace(/^\uFEFF/, ''));
37
+ return {
38
+ path: configPath,
39
+ config: AppConfigSchema.parse(raw),
40
+ };
41
+ }
42
+ function buildAgentList(config) {
43
+ const existing = config.agents.list;
44
+ if (existing && existing.length > 0) {
45
+ return [...existing];
46
+ }
47
+ return [{ id: 'default', default: true }];
48
+ }
49
+ function isCatchAllBinding(binding) {
50
+ return binding.match.channel === '*'
51
+ && binding.match.accountId === undefined
52
+ && binding.match.peer === undefined
53
+ && binding.match.userId === undefined;
54
+ }
55
+ export function addAgentToConfig(config, input) {
56
+ const list = buildAgentList(config);
57
+ if (list.some(agent => agent.id === input.id)) {
58
+ throw new Error(`Agent "${input.id}" already exists.`);
59
+ }
60
+ const nextList = list.map(agent => (input.default ? { ...agent, default: false } : { ...agent }));
61
+ const agent = {
62
+ id: input.id,
63
+ ...(input.default ? { default: true } : {}),
64
+ ...(input.name ? { name: input.name } : {}),
65
+ ...(input.model ? { model: input.model } : {}),
66
+ ...(input.workspace ? { workspace: input.workspace } : {}),
67
+ ...(input.cliSessionId ? { cliSessionId: input.cliSessionId } : {}),
68
+ };
69
+ nextList.push(agent);
70
+ const existingAccountIds = new Set(normalizeBotlinkChannelConfigs(config.channels.botlink).map(account => account.accountId));
71
+ let botlink = { ...config.channels.botlink };
72
+ let bindingAccountId = input.accountId;
73
+ if (input.account) {
74
+ if (existingAccountIds.has(input.account.id)) {
75
+ throw new Error(`botlink account "${input.account.id}" already exists.`);
76
+ }
77
+ botlink = {
78
+ ...config.channels.botlink,
79
+ accounts: {
80
+ ...(config.channels.botlink.accounts ?? {}),
81
+ [input.account.id]: {
82
+ gateway_url: input.account.gatewayUrl,
83
+ bot_token: input.account.botToken,
84
+ poll_timeout: config.channels.botlink.poll_timeout,
85
+ retry_interval: config.channels.botlink.retry_interval,
86
+ max_retry_interval: config.channels.botlink.max_retry_interval,
87
+ },
88
+ },
89
+ };
90
+ bindingAccountId = input.account.id;
91
+ existingAccountIds.add(input.account.id);
92
+ }
93
+ let bindings = [...(config.bindings ?? [])];
94
+ if (bindingAccountId) {
95
+ if (!existingAccountIds.has(bindingAccountId)) {
96
+ throw new Error(`Unknown botlink account "${bindingAccountId}".`);
97
+ }
98
+ const conflict = bindings.find(binding => binding.match.channel === 'botlink' && binding.match.accountId === bindingAccountId);
99
+ if (conflict) {
100
+ throw new Error(`botlink account "${bindingAccountId}" is already bound to agent "${conflict.agentId}".`);
101
+ }
102
+ bindings.push({
103
+ agentId: input.id,
104
+ match: {
105
+ channel: 'botlink',
106
+ accountId: bindingAccountId,
107
+ },
108
+ });
109
+ }
110
+ if (input.default) {
111
+ bindings = bindings.map(binding => (isCatchAllBinding(binding)
112
+ ? { ...binding, agentId: input.id }
113
+ : binding));
114
+ }
115
+ return AppConfigSchema.parse({
116
+ ...config,
117
+ channels: {
118
+ ...config.channels,
119
+ botlink,
120
+ },
121
+ agents: {
122
+ ...config.agents,
123
+ list: nextList,
124
+ },
125
+ ...(bindings.length > 0 ? { bindings } : {}),
126
+ });
127
+ }
128
+ function uniqueModelChoices(config) {
129
+ const models = new Set([
130
+ config.agents.defaults.model.primary,
131
+ ...(config.agents.defaults.model.fallbacks ?? []),
132
+ ...ONBOARD_MODEL_CHOICES,
133
+ ]);
134
+ for (const agent of config.agents.list ?? []) {
135
+ if (typeof agent.model === 'string') {
136
+ models.add(agent.model);
137
+ }
138
+ else if (agent.model?.primary) {
139
+ models.add(agent.model.primary);
140
+ for (const fallback of agent.model.fallbacks ?? []) {
141
+ models.add(fallback);
142
+ }
143
+ }
144
+ }
145
+ return [...models];
146
+ }
147
+ async function askRequired(rl, prompt, defaultValue) {
148
+ while (true) {
149
+ const suffix = defaultValue ? ` (default: ${defaultValue})` : '';
150
+ const answer = (await rl.question(`${prompt}${suffix}: `)).trim();
151
+ const value = answer || defaultValue || '';
152
+ if (value) {
153
+ return value;
154
+ }
155
+ console.log('This field is required.');
156
+ }
157
+ }
158
+ async function askAgentId(rl, existingIds, defaultValue) {
159
+ while (true) {
160
+ const id = await askRequired(rl, 'Agent ID', defaultValue);
161
+ if (!AGENT_ID_REGEX.test(id)) {
162
+ console.log('Agent ID must match ^[a-z0-9][a-z0-9_-]{0,63}$.');
163
+ continue;
164
+ }
165
+ if (existingIds.has(id)) {
166
+ console.log(`Agent "${id}" already exists.`);
167
+ continue;
168
+ }
169
+ return id;
170
+ }
171
+ }
172
+ async function askOptional(rl, prompt, defaultValue) {
173
+ const suffix = defaultValue ? ` (default: ${defaultValue})` : ' (optional)';
174
+ const answer = (await rl.question(`${prompt}${suffix}: `)).trim();
175
+ const value = answer || defaultValue || '';
176
+ return value ? value : undefined;
177
+ }
178
+ async function askOptionalWhenEnabled(rl, enablePrompt, fieldPrompt, options) {
179
+ const enabled = await askYesNo(rl, enablePrompt, options?.defaultEnabled ?? false);
180
+ if (!enabled) {
181
+ return undefined;
182
+ }
183
+ if (options?.requiredWhenEnabled) {
184
+ return askRequired(rl, fieldPrompt, options.defaultValue);
185
+ }
186
+ return askOptional(rl, fieldPrompt, options?.defaultValue);
187
+ }
188
+ async function askYesNo(rl, prompt, defaultValue = false) {
189
+ const hint = defaultValue ? '[Y/n]' : '[y/N]';
190
+ while (true) {
191
+ const answer = (await rl.question(`${prompt} ${hint} `)).trim().toLowerCase();
192
+ if (!answer)
193
+ return defaultValue;
194
+ if (answer === 'y' || answer === 'yes')
195
+ return true;
196
+ if (answer === 'n' || answer === 'no')
197
+ return false;
198
+ console.log('Please answer y or n.');
199
+ }
200
+ }
201
+ async function askModel(rl, config, defaultValue) {
202
+ const choices = uniqueModelChoices(config);
203
+ console.log('\nAvailable models:');
204
+ choices.forEach((model, index) => console.log(` ${index + 1}. ${model}`));
205
+ while (true) {
206
+ const raw = await askRequired(rl, 'Model number or model ref', defaultValue ?? config.agents.defaults.model.primary);
207
+ const idx = Number.parseInt(raw, 10);
208
+ if (Number.isInteger(idx) && idx >= 1 && idx <= choices.length) {
209
+ return choices[idx - 1];
210
+ }
211
+ if (raw.includes('/')) {
212
+ return raw;
213
+ }
214
+ console.log('Enter a list number or a model ref like codex-cli/gpt-5.4.');
215
+ }
216
+ }
217
+ async function askAccountId(rl, config, defaultValue) {
218
+ const accounts = normalizeBotlinkChannelConfigs(config.channels.botlink).map(account => account.accountId);
219
+ if (accounts.length === 0) {
220
+ return undefined;
221
+ }
222
+ console.log('\nAvailable botlink accounts:');
223
+ accounts.forEach((accountId, index) => console.log(` ${index + 1}. ${accountId}`));
224
+ console.log('Leave blank to skip binding for now.');
225
+ while (true) {
226
+ const answer = (await rl.question(`Bind to botlink account (number or id${defaultValue ? `, default: ${defaultValue}` : ''}): `)).trim();
227
+ const value = answer || defaultValue || '';
228
+ if (!value) {
229
+ return undefined;
230
+ }
231
+ const idx = Number.parseInt(value, 10);
232
+ if (Number.isInteger(idx) && idx >= 1 && idx <= accounts.length) {
233
+ return accounts[idx - 1];
234
+ }
235
+ if (accounts.includes(value)) {
236
+ return value;
237
+ }
238
+ console.log(`Unknown account "${value}". Available accounts: ${accounts.join(', ')}`);
239
+ }
240
+ }
241
+ async function askNewAccountId(rl, existingAccountIds) {
242
+ while (true) {
243
+ const accountId = await askRequired(rl, 'New botlink account ID');
244
+ if (existingAccountIds.has(accountId)) {
245
+ console.log(`botlink account "${accountId}" already exists.`);
246
+ continue;
247
+ }
248
+ return accountId;
249
+ }
250
+ }
251
+ async function askAccountSelection(rl, config, defaultValue) {
252
+ const normalizedAccounts = normalizeBotlinkChannelConfigs(config.channels.botlink);
253
+ const existingAccountIds = new Set(normalizedAccounts.map(account => account.accountId));
254
+ if (normalizedAccounts.length > 0) {
255
+ console.log('\nAvailable botlink accounts:');
256
+ normalizedAccounts.forEach((account, index) => console.log(` ${index + 1}. ${account.accountId}`));
257
+ }
258
+ else {
259
+ console.log('\nNo named botlink accounts configured yet.');
260
+ }
261
+ if (!await askYesNo(rl, 'Bind this agent to a botlink account?', normalizedAccounts.length > 0)) {
262
+ return { type: 'none' };
263
+ }
264
+ if (normalizedAccounts.length > 0) {
265
+ const useExisting = await askYesNo(rl, 'Use an existing botlink account?', true);
266
+ if (useExisting) {
267
+ const accountId = await askAccountId(rl, config, defaultValue);
268
+ if (!accountId) {
269
+ return { type: 'none' };
270
+ }
271
+ return { type: 'existing', accountId };
272
+ }
273
+ }
274
+ const accountId = await askNewAccountId(rl, existingAccountIds);
275
+ const gatewayUrl = await askRequired(rl, 'Botlink gateway URL', normalizedAccounts[0]?.config.gateway_url ?? config.channels.botlink.gateway_url);
276
+ const botToken = await askRequired(rl, 'Bot token');
277
+ return {
278
+ type: 'new',
279
+ account: {
280
+ id: accountId,
281
+ gatewayUrl,
282
+ botToken,
283
+ },
284
+ };
285
+ }
286
+ export async function cmdAddAgent(args) {
287
+ console.log('agents-bridge - Add Agent\n');
288
+ if (!existsSync(DATA_DIR)) {
289
+ mkdirSync(DATA_DIR, { recursive: true });
290
+ }
291
+ ensureDataDirs();
292
+ const { path: configPath, config } = readConfigForMutation(args.config);
293
+ const existingIds = new Set(buildAgentList(config).map(agent => agent.id));
294
+ const [restId, restModel, restAccountId, restWorkspace] = args.rest;
295
+ const rl = createInterface({ input: stdin, output: stdout });
296
+ try {
297
+ const id = await askAgentId(rl, existingIds, restId);
298
+ const name = await askOptional(rl, 'Display name');
299
+ const model = await askModel(rl, config, restModel ?? config.agents.defaults.model.primary);
300
+ const workspace = await askOptionalWhenEnabled(rl, 'Configure workspace path?', 'Workspace path', {
301
+ defaultEnabled: Boolean(restWorkspace),
302
+ defaultValue: restWorkspace ?? process.cwd(),
303
+ requiredWhenEnabled: true,
304
+ });
305
+ const cliSessionId = await askOptionalWhenEnabled(rl, 'Configure CLI session ID?', 'CLI session ID', {
306
+ defaultEnabled: false,
307
+ });
308
+ const accountSelection = await askAccountSelection(rl, config, restAccountId);
309
+ const nextConfig = addAgentToConfig(config, {
310
+ id,
311
+ ...(name ? { name } : {}),
312
+ ...(model ? { model } : {}),
313
+ ...(workspace ? { workspace } : {}),
314
+ ...(cliSessionId ? { cliSessionId } : {}),
315
+ ...(accountSelection.type === 'existing' ? { accountId: accountSelection.accountId } : {}),
316
+ ...(accountSelection.type === 'new' ? { account: accountSelection.account } : {}),
317
+ });
318
+ const backupPath = createConfigBackupPath(configPath);
319
+ copyFileSync(configPath, backupPath);
320
+ writeFileSync(configPath, JSON.stringify(nextConfig, null, 2) + '\n', 'utf-8');
321
+ console.log(`\nAdded agent "${id}" to ${configPath}`);
322
+ console.log(`Backup saved to ${backupPath}`);
323
+ if (accountSelection.type === 'existing') {
324
+ console.log(`Bound botlink account "${accountSelection.accountId}" -> "${id}"`);
325
+ }
326
+ else if (accountSelection.type === 'new') {
327
+ console.log(`Created botlink account "${accountSelection.account.id}"`);
328
+ console.log(`Bound botlink account "${accountSelection.account.id}" -> "${id}"`);
329
+ }
330
+ else {
331
+ console.log('No binding added. Configure `bindings` manually if this agent should receive traffic.');
332
+ }
333
+ console.log('\nRun `agents-bridge start` to reload the updated config.');
334
+ }
335
+ finally {
336
+ rl.close();
337
+ }
338
+ }
339
+ //# sourceMappingURL=cmd-add-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmd-add-agent.js","sourceRoot":"","sources":["../../src/cli/cmd-add-agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cmd-onboard.d.ts","sourceRoot":"","sources":["../../src/cli/cmd-onboard.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,wBAAsB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAwC9D"}
1
+ {"version":3,"file":"cmd-onboard.d.ts","sourceRoot":"","sources":["../../src/cli/cmd-onboard.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAO5C,wBAAsB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C9D"}
@@ -1,9 +1,13 @@
1
- import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
1
+ import { copyFileSync, existsSync, mkdirSync, writeFileSync } from 'node:fs';
2
2
  import { createInterface } from 'node:readline/promises';
3
3
  import { stdin, stdout } from 'node:process';
4
4
  import { DATA_DIR, DATA_CONFIG_PATH } from '../config/paths.js';
5
5
  import { ensureDataDirs } from '../config/agent-dirs.js';
6
6
  import { createDefaultConfig, ONBOARD_MODEL_CHOICES } from '../config/default-config.js';
7
+ function createConfigBackupPath() {
8
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
9
+ return `${DATA_CONFIG_PATH}.bak.${timestamp}`;
10
+ }
7
11
  export async function cmdOnboard(_args) {
8
12
  console.log('agents-bridge - Interactive Setup\n');
9
13
  if (!existsSync(DATA_DIR)) {
@@ -33,6 +37,11 @@ export async function cmdOnboard(_args) {
33
37
  botToken,
34
38
  selectedModel,
35
39
  });
40
+ if (existsSync(DATA_CONFIG_PATH)) {
41
+ const backupPath = createConfigBackupPath();
42
+ copyFileSync(DATA_CONFIG_PATH, backupPath);
43
+ console.log(`\nExisting config backed up to ${backupPath}`);
44
+ }
36
45
  writeFileSync(DATA_CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8');
37
46
  console.log(`\nConfiguration saved to ${DATA_CONFIG_PATH}`);
38
47
  console.log('\nRun `agents-bridge start` to start the gateway.');
@@ -1 +1 @@
1
- {"version":3,"file":"cmd-onboard.js","sourceRoot":"","sources":["../../src/cli/cmd-onboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAGxF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAc;IAC7C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;IAElD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,CAAC;IACD,cAAc,EAAE,CAAA;IAEhB,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,4BAA4B,gBAAgB,EAAE,CAAC,CAAA;QAC3D,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;QACrD,EAAE,CAAC,KAAK,EAAE,CAAA;QACV,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAE5D,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IAC7D,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IAEjD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAClC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACxE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,qBAAqB,CAAC,MAAM,kBAAkB,CAAC,CAAA;IAC7G,MAAM,aAAa,GAAG,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAA;IAEnG,EAAE,CAAC,KAAK,EAAE,CAAA;IAEV,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,UAAU;QACV,QAAQ;QACR,aAAa;KACd,CAAC,CAAA;IAEF,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAA;IAChF,OAAO,CAAC,GAAG,CAAC,4BAA4B,gBAAgB,EAAE,CAAC,CAAA;IAC3D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;AAClE,CAAC"}
1
+ {"version":3,"file":"cmd-onboard.js","sourceRoot":"","sources":["../../src/cli/cmd-onboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAGxF,SAAS,sBAAsB;IAC7B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAChE,OAAO,GAAG,gBAAgB,QAAQ,SAAS,EAAE,CAAA;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAc;IAC7C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;IAElD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,CAAC;IACD,cAAc,EAAE,CAAA;IAEhB,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,4BAA4B,gBAAgB,EAAE,CAAC,CAAA;QAC3D,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;QACrD,EAAE,CAAC,KAAK,EAAE,CAAA;QACV,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAE5D,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IAC7D,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IAEjD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAClC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACxE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,qBAAqB,CAAC,MAAM,kBAAkB,CAAC,CAAA;IAC7G,MAAM,aAAa,GAAG,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAA;IAEnG,EAAE,CAAC,KAAK,EAAE,CAAA;IAEV,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,UAAU;QACV,QAAQ;QACR,aAAa;KACd,CAAC,CAAA;IAEF,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAA;QAC3C,YAAY,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAA;IAChF,OAAO,CAAC,GAAG,CAAC,4BAA4B,gBAAgB,EAAE,CAAC,CAAA;IAC3D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;AAClE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CliArgs } from './run-main.js';
2
+ export declare function cmdRestart(args: CliArgs): Promise<void>;
3
+ //# sourceMappingURL=cmd-restart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmd-restart.d.ts","sourceRoot":"","sources":["../../src/cli/cmd-restart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAI5C,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7D"}
@@ -0,0 +1,22 @@
1
+ import { cmdStart } from './cmd-start.js';
2
+ import { stopRunningInstance } from './cmd-stop.js';
3
+ export async function cmdRestart(args) {
4
+ try {
5
+ const result = await stopRunningInstance();
6
+ if (result.status === 'stopped') {
7
+ console.log(`Stopped agents-bridge (pid: ${result.pid})`);
8
+ }
9
+ else if (result.status === 'stale-pid') {
10
+ console.log(`Process ${result.pid} not found - cleaned up stale PID file`);
11
+ }
12
+ else {
13
+ console.log('agents-bridge is not running; starting a new instance');
14
+ }
15
+ }
16
+ catch (err) {
17
+ console.error(`Failed to restart agents-bridge: ${err instanceof Error ? err.message : String(err)}`);
18
+ process.exit(1);
19
+ }
20
+ await cmdStart(args);
21
+ }
22
+ //# sourceMappingURL=cmd-restart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmd-restart.js","sourceRoot":"","sources":["../../src/cli/cmd-restart.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAa;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAA;QAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;QAC3D,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,GAAG,wCAAwC,CAAC,CAAA;QAC5E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,oCAAoC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACrG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cmd-start.d.ts","sourceRoot":"","sources":["../../src/cli/cmd-start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAsB5C,wBAAsB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAuN3D"}
1
+ {"version":3,"file":"cmd-start.d.ts","sourceRoot":"","sources":["../../src/cli/cmd-start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAuB5C,wBAAsB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA0P3D"}
@@ -12,13 +12,17 @@ import { resolveAgent } from '../agents/agent-router.js';
12
12
  import { cleanupPidFile, ensureNoRunningInstance, writePidFile } from './pid-file.js';
13
13
  import { normalizeBotlinkChannelConfigs, } from '../config/zod-schema.js';
14
14
  import { TypingLifecycle } from '../channels/typing-lifecycle.js';
15
+ import { parseCommand } from '../channels/command-gating.js';
15
16
  import { agentSessionStorePath } from '../config/paths.js';
16
17
  import { extractProvider, extractModel, isCliBackend } from '../agents/cli-backends.js';
17
18
  export async function cmdStart(args) {
18
19
  ensureNoRunningInstance();
19
20
  if (args.daemon) {
20
21
  const { spawn } = await import('node:child_process');
21
- const childArgs = process.argv.slice(2).filter((arg) => arg !== '--daemon' && arg !== '-d');
22
+ const childArgs = ['start'];
23
+ if (args.config) {
24
+ childArgs.push('--config', args.config);
25
+ }
22
26
  const child = spawn(process.execPath, [process.argv[1], ...childArgs], {
23
27
  detached: true,
24
28
  stdio: 'ignore',
@@ -67,12 +71,13 @@ export async function cmdStart(args) {
67
71
  async dispatch(envelope) {
68
72
  const botlinkConfig = resolveBotlinkAccountConfig(config.channels.botlink, envelope);
69
73
  const agent = resolveAgent(envelope, config.bindings ?? [], resolvedAgents, defaultAgentId);
70
- const agentSessionKey = makeAgentSessionKey(agent.id, envelope.sessionId);
74
+ const rootAgentSessionKey = makeAgentSessionKey(agent.id, envelope.sessionId);
71
75
  logger.info({ sessionId: envelope.sessionId, agentId: agent.id, chatType: envelope.source.chatType }, 'Dispatching message');
72
76
  sessionManager.getOrCreate(envelope);
73
77
  const primaryModelRef = agent.model.primary;
74
78
  const provider = extractProvider(primaryModelRef);
75
79
  const model = extractModel(primaryModelRef);
80
+ const sessionStore = sessionStores.get(agent.id);
76
81
  if (!isCliBackend(primaryModelRef, agent.cliBackends)) {
77
82
  logger.warn({ sessionId: envelope.sessionId, agentId: agent.id, model: primaryModelRef }, 'Primary API model runtime is not implemented yet');
78
83
  await sendBotlinkTextReply(botlinkConfig, envelope, '当前仅支持 CLI 模式模型。');
@@ -82,15 +87,35 @@ export async function cmdStart(args) {
82
87
  if (!cliExecutor) {
83
88
  throw new Error(`No CLI executor found for agent "${agent.id}"`);
84
89
  }
90
+ if (!sessionStore) {
91
+ throw new Error(`No session store found for agent "${agent.id}"`);
92
+ }
93
+ const command = parseCommand(envelope.content.text);
94
+ if (command?.command === 'new') {
95
+ const created = await sessionStore.createFreshSession(rootAgentSessionKey);
96
+ if (provider === 'codex-cli') {
97
+ await cliExecutor.rotateCodexRuntime();
98
+ }
99
+ logger.info({
100
+ sessionId: envelope.sessionId,
101
+ agentId: agent.id,
102
+ provider,
103
+ rootAgentSessionKey,
104
+ activeAgentSessionKey: created.sessionKey,
105
+ branchCounter: created.branchCounter,
106
+ }, 'Created fresh chat session via /new');
107
+ await sendBotlinkTextReply(botlinkConfig, envelope, provider === 'codex-cli'
108
+ ? '已创建新的 Codex 会话,后续消息将连接到新窗口。'
109
+ : '已创建新的会话,后续消息将连接到新会话。');
110
+ return;
111
+ }
112
+ const agentSessionKey = await sessionStore.resolveActiveSessionKey(rootAgentSessionKey);
85
113
  // Seed CLI session ID from agent config (one-time, does not overwrite runtime values)
86
- if (agent.cliSessionId) {
87
- const sessionStore = sessionStores.get(agent.id);
88
- if (sessionStore) {
89
- const existing = await sessionStore.getCliSessionId(agentSessionKey, provider);
90
- if (!existing) {
91
- await sessionStore.setCliSessionId(agentSessionKey, provider, agent.cliSessionId, { model });
92
- logger.info({ agentId: agent.id, provider, cliSessionId: agent.cliSessionId }, 'Seeded CLI session ID from agent config');
93
- }
114
+ if (agent.cliSessionId && agentSessionKey === rootAgentSessionKey) {
115
+ const existing = await sessionStore.getCliSessionId(agentSessionKey, provider);
116
+ if (!existing) {
117
+ await sessionStore.setCliSessionId(agentSessionKey, provider, agent.cliSessionId, { model });
118
+ logger.info({ agentId: agent.id, provider, cliSessionId: agent.cliSessionId }, 'Seeded CLI session ID from agent config');
94
119
  }
95
120
  }
96
121
  let typing = null;
@@ -1 +1 @@
1
- {"version":3,"file":"cmd-start.js","sourceRoot":"","sources":["../../src/cli/cmd-start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmd-start.js","sourceRoot":"","sources":["../../src/cli/cmd-start.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
1
  import type { CliArgs } from './run-main.js';
2
+ export interface StopResult {
3
+ status: 'stopped' | 'not-running' | 'stale-pid';
4
+ pid?: number;
5
+ }
6
+ export declare function stopRunningInstance(): Promise<StopResult>;
2
7
  export declare function cmdStop(_args: CliArgs): Promise<void>;
3
8
  //# sourceMappingURL=cmd-stop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cmd-stop.d.ts","sourceRoot":"","sources":["../../src/cli/cmd-stop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,wBAAsB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B3D"}
1
+ {"version":3,"file":"cmd-stop.d.ts","sourceRoot":"","sources":["../../src/cli/cmd-stop.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAA;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC,CAiC/D;AAED,wBAAsB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3D"}