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
@@ -1,164 +0,0 @@
1
- import assert from 'node:assert/strict';
2
- import test from 'node:test';
3
- import { CodexAppServerRuntime } from './codex-app-server-runtime.js';
4
- const CODEX_BACKEND = {
5
- command: 'codex',
6
- runtimeMode: 'app-server',
7
- sessionIdFields: ['thread_id'],
8
- appServer: {
9
- requestTimeoutMs: 30_000,
10
- startupTimeoutMs: 15_000,
11
- approvalPolicy: 'never',
12
- sandbox: 'read-only',
13
- },
14
- };
15
- class FakeAppServerConnection {
16
- requests = [];
17
- notificationListener = null;
18
- fatalListener = null;
19
- turnCount = 0;
20
- async ensureReady() { }
21
- async request(method, params) {
22
- this.requests.push({ method, params });
23
- if (method === 'thread/resume') {
24
- return { thread: { id: params.threadId } };
25
- }
26
- if (method === 'thread/start') {
27
- return { thread: { id: 'thread-started' } };
28
- }
29
- if (method === 'turn/start') {
30
- this.turnCount += 1;
31
- const turnId = `turn-${this.turnCount}`;
32
- const threadId = String(params.threadId);
33
- queueMicrotask(() => {
34
- this.notificationListener?.({
35
- method: 'turn/started',
36
- params: {
37
- threadId,
38
- turn: { id: turnId, status: 'inProgress', error: null },
39
- },
40
- });
41
- this.notificationListener?.({
42
- method: 'error',
43
- params: {
44
- threadId,
45
- turnId,
46
- willRetry: true,
47
- error: {
48
- message: 'Reconnecting... 2/5',
49
- additionalDetails: 'timeout waiting for child process to exit',
50
- },
51
- },
52
- });
53
- this.notificationListener?.({
54
- method: 'item/completed',
55
- params: {
56
- threadId,
57
- turnId,
58
- item: {
59
- type: 'agentMessage',
60
- id: `item-${turnId}`,
61
- text: `READY-${this.turnCount}`,
62
- },
63
- },
64
- });
65
- this.notificationListener?.({
66
- method: 'thread/tokenUsage/updated',
67
- params: {
68
- threadId,
69
- turnId,
70
- tokenUsage: {
71
- last: {
72
- inputTokens: 12,
73
- outputTokens: 3,
74
- cachedInputTokens: 4,
75
- totalTokens: 15,
76
- },
77
- },
78
- },
79
- });
80
- this.notificationListener?.({
81
- method: 'turn/completed',
82
- params: {
83
- threadId,
84
- turn: {
85
- id: turnId,
86
- status: 'completed',
87
- error: null,
88
- },
89
- },
90
- });
91
- });
92
- return { turn: { id: turnId } };
93
- }
94
- if (method === 'turn/interrupt') {
95
- return {};
96
- }
97
- throw new Error(`Unhandled request ${method}`);
98
- }
99
- notify() { }
100
- getRestartCount() {
101
- return 0;
102
- }
103
- onNotification(listener) {
104
- this.notificationListener = listener;
105
- }
106
- onFatalError(listener) {
107
- this.fatalListener = listener;
108
- }
109
- emitFatal(error) {
110
- this.fatalListener?.(error);
111
- }
112
- async dispose() { }
113
- }
114
- function createLogger() {
115
- return {
116
- debug() { return undefined; },
117
- info() { return undefined; },
118
- warn() { return undefined; },
119
- error() { return undefined; },
120
- };
121
- }
122
- test('Codex app-server runtime resumes once and reuses the loaded thread afterwards', async () => {
123
- const connection = new FakeAppServerConnection();
124
- const runtime = new CodexAppServerRuntime({
125
- backend: CODEX_BACKEND,
126
- logger: createLogger(),
127
- connection,
128
- });
129
- const first = await runtime.run({
130
- sessionId: 'session-1',
131
- runtimeSessionId: 'runtime-1',
132
- existingThreadId: 'thread-existing',
133
- model: 'gpt-5.4',
134
- workspaceDir: process.cwd(),
135
- timeoutMs: 60_000,
136
- noProgressTimeoutMs: 10_000,
137
- prompt: 'reply with exactly OK',
138
- });
139
- const second = await runtime.run({
140
- sessionId: 'session-1',
141
- runtimeSessionId: 'runtime-1',
142
- existingThreadId: 'thread-existing',
143
- model: 'gpt-5.4',
144
- workspaceDir: process.cwd(),
145
- timeoutMs: 60_000,
146
- noProgressTimeoutMs: 10_000,
147
- prompt: 'reply with exactly AGAIN',
148
- });
149
- assert.equal(first.cliSessionId, 'thread-existing');
150
- assert.equal(first.isResume, true);
151
- assert.equal(first.text, 'READY-1');
152
- assert.equal(first.usage?.input, 12);
153
- assert.equal(first.usage?.output, 3);
154
- assert.equal(first.usage?.cacheRead, 4);
155
- assert.equal(first.diagnostics.threadOperation, 'resume');
156
- assert.equal(first.diagnostics.reconnectCount, 1);
157
- assert.equal(second.cliSessionId, 'thread-existing');
158
- assert.equal(second.isResume, true);
159
- assert.equal(second.text, 'READY-2');
160
- assert.equal(second.diagnostics.threadOperation, 'reuse');
161
- assert.deepEqual(connection.requests.map((entry) => entry.method), ['thread/resume', 'turn/start', 'turn/start']);
162
- await runtime.teardown();
163
- });
164
- //# sourceMappingURL=codex-app-server-runtime.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex-app-server-runtime.test.js","sourceRoot":"","sources":["../../src/agents/codex-app-server-runtime.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=run-main.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-main.test.d.ts","sourceRoot":"","sources":["../../src/cli/run-main.test.ts"],"names":[],"mappings":""}
@@ -1,17 +0,0 @@
1
- import assert from 'node:assert/strict';
2
- import test from 'node:test';
3
- import { parseCliArgs } from './run-main.js';
4
- test('parseCliArgs treats --version as the version command', () => {
5
- const args = parseCliArgs(['--version']);
6
- assert.equal(args.command, 'version');
7
- assert.equal(args.version, true);
8
- });
9
- test('parseCliArgs accepts the common --verson typo as version', () => {
10
- const args = parseCliArgs(['--verson']);
11
- assert.equal(args.command, 'version');
12
- assert.equal(args.version, true);
13
- });
14
- test('parseCliArgs rejects unknown options instead of silently starting', () => {
15
- assert.throws(() => parseCliArgs(['--wat']), /Unknown option\(s\): --wat/);
16
- });
17
- //# sourceMappingURL=run-main.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-main.test.js","sourceRoot":"","sources":["../../src/cli/run-main.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAChE,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;IACxC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;IACpE,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;IAC7E,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,EAC7B,4BAA4B,CAC7B,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=default-config.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-config.test.d.ts","sourceRoot":"","sources":["../../src/config/default-config.test.ts"],"names":[],"mappings":""}
@@ -1,19 +0,0 @@
1
- import assert from 'node:assert/strict';
2
- import { readFileSync } from 'node:fs';
3
- import { dirname, resolve } from 'node:path';
4
- import test from 'node:test';
5
- import { fileURLToPath } from 'node:url';
6
- import { createDefaultConfig } from './default-config.js';
7
- import { AppConfigSchema } from './zod-schema.js';
8
- const __dirname = dirname(fileURLToPath(import.meta.url));
9
- const rootDir = resolve(__dirname, '..', '..');
10
- test('createDefaultConfig stays aligned with config.example.json', () => {
11
- const expected = createDefaultConfig({
12
- gatewayUrl: 'https://your-botlink.com',
13
- botToken: 'bot_xxx',
14
- selectedModel: 'claude-cli/opus-4.6',
15
- });
16
- const exampleConfig = AppConfigSchema.parse(JSON.parse(readFileSync(resolve(rootDir, 'config.example.json'), 'utf-8').replace(/^\uFEFF/, '')));
17
- assert.deepEqual(exampleConfig, expected);
18
- });
19
- //# sourceMappingURL=default-config.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-config.test.js","sourceRoot":"","sources":["../../src/config/default-config.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACzD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE9C,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;IACtE,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,UAAU,EAAE,0BAA0B;QACtC,QAAQ,EAAE,SAAS;QACnB,aAAa,EAAE,qBAAqB;KACrC,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CACzC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAY,CAC7G,CAAA;IAED,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;AAC3C,CAAC,CAAC,CAAA"}