@sena-ai/runtime-codex 1.4.0 → 1.5.1

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 (38) hide show
  1. package/dist/__tests__/hook-adapter.test.d.ts +2 -0
  2. package/dist/__tests__/hook-adapter.test.d.ts.map +1 -0
  3. package/dist/__tests__/hook-adapter.test.js +149 -0
  4. package/dist/__tests__/hook-adapter.test.js.map +1 -0
  5. package/dist/__tests__/managed-codex.test.d.ts +2 -0
  6. package/dist/__tests__/managed-codex.test.d.ts.map +1 -0
  7. package/dist/__tests__/managed-codex.test.js +55 -0
  8. package/dist/__tests__/managed-codex.test.js.map +1 -0
  9. package/dist/__tests__/mapper.test.js +81 -21
  10. package/dist/__tests__/mapper.test.js.map +1 -1
  11. package/dist/__tests__/runtime.test.d.ts +2 -0
  12. package/dist/__tests__/runtime.test.d.ts.map +1 -0
  13. package/dist/__tests__/runtime.test.js +20 -0
  14. package/dist/__tests__/runtime.test.js.map +1 -0
  15. package/dist/client.d.ts +1 -1
  16. package/dist/client.d.ts.map +1 -1
  17. package/dist/client.js +6 -4
  18. package/dist/client.js.map +1 -1
  19. package/dist/hook-adapter.d.ts +19 -0
  20. package/dist/hook-adapter.d.ts.map +1 -0
  21. package/dist/hook-adapter.js +92 -0
  22. package/dist/hook-adapter.js.map +1 -0
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/managed-codex.d.ts +11 -0
  28. package/dist/managed-codex.d.ts.map +1 -0
  29. package/dist/managed-codex.js +31 -0
  30. package/dist/managed-codex.js.map +1 -0
  31. package/dist/mapper.d.ts.map +1 -1
  32. package/dist/mapper.js +19 -8
  33. package/dist/mapper.js.map +1 -1
  34. package/dist/runtime.d.ts +3 -1
  35. package/dist/runtime.d.ts.map +1 -1
  36. package/dist/runtime.js +96 -19
  37. package/dist/runtime.js.map +1 -1
  38. package/package.json +3 -2
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hook-adapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-adapter.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/hook-adapter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,149 @@
1
+ import { describe, it, expect, vi } from 'vitest';
2
+ import { evaluatePreToolUse, evaluatePostToolUse } from '../hook-adapter.js';
3
+ const BASE_ARGS = {
4
+ toolInput: { command: 'ls' },
5
+ toolUseId: 'tu_1',
6
+ sessionId: 'sess_1',
7
+ cwd: '/tmp',
8
+ };
9
+ // ─── evaluatePreToolUse ────────────────────────────────────────────
10
+ describe('evaluatePreToolUse', () => {
11
+ it('returns allow when there are no hooks', async () => {
12
+ const hooks = {};
13
+ const result = await evaluatePreToolUse(hooks, 'shell:ls', BASE_ARGS.toolInput, BASE_ARGS.toolUseId, BASE_ARGS.sessionId, BASE_ARGS.cwd);
14
+ expect(result).toEqual({ decision: 'allow' });
15
+ });
16
+ it('returns deny when a hook denies', async () => {
17
+ const hooks = {
18
+ onPreToolUse: [
19
+ {
20
+ callback: async () => ({ decision: 'deny', reason: 'blocked by policy' }),
21
+ },
22
+ ],
23
+ };
24
+ const result = await evaluatePreToolUse(hooks, 'shell:rm -rf /', BASE_ARGS.toolInput, BASE_ARGS.toolUseId, BASE_ARGS.sessionId, BASE_ARGS.cwd);
25
+ expect(result).toEqual({ decision: 'deny', reason: 'blocked by policy' });
26
+ });
27
+ it('skips hook when matcher does not match tool name', async () => {
28
+ const callback = vi.fn(async () => ({ decision: 'deny', reason: 'nope' }));
29
+ const hooks = {
30
+ onPreToolUse: [
31
+ {
32
+ toolName: /^file:/,
33
+ callback,
34
+ },
35
+ ],
36
+ };
37
+ const result = await evaluatePreToolUse(hooks, 'shell:ls', BASE_ARGS.toolInput, BASE_ARGS.toolUseId, BASE_ARGS.sessionId, BASE_ARGS.cwd);
38
+ expect(result).toEqual({ decision: 'allow' });
39
+ expect(callback).not.toHaveBeenCalled();
40
+ });
41
+ it('logs warning and returns plain allow when updatedInput is returned', async () => {
42
+ const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
43
+ const hooks = {
44
+ onPreToolUse: [
45
+ {
46
+ callback: async () => ({
47
+ decision: 'allow',
48
+ updatedInput: { command: 'echo safe' },
49
+ }),
50
+ },
51
+ ],
52
+ };
53
+ const result = await evaluatePreToolUse(hooks, 'shell:dangerous', BASE_ARGS.toolInput, BASE_ARGS.toolUseId, BASE_ARGS.sessionId, BASE_ARGS.cwd);
54
+ expect(result).toEqual({ decision: 'allow' });
55
+ expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('updatedInput'));
56
+ warnSpy.mockRestore();
57
+ });
58
+ it('isolates errors — returns allow when a hook throws', async () => {
59
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
60
+ const hooks = {
61
+ onPreToolUse: [
62
+ {
63
+ callback: async () => { throw new Error('boom'); },
64
+ },
65
+ ],
66
+ };
67
+ const result = await evaluatePreToolUse(hooks, 'shell:ls', BASE_ARGS.toolInput, BASE_ARGS.toolUseId, BASE_ARGS.sessionId, BASE_ARGS.cwd);
68
+ expect(result).toEqual({ decision: 'allow' });
69
+ expect(errorSpy).toHaveBeenCalled();
70
+ errorSpy.mockRestore();
71
+ });
72
+ it('returns deny when first hook passes and second denies', async () => {
73
+ const hooks = {
74
+ onPreToolUse: [
75
+ {
76
+ callback: async () => ({ decision: 'pass' }),
77
+ },
78
+ {
79
+ callback: async () => ({ decision: 'deny', reason: 'second hook says no' }),
80
+ },
81
+ ],
82
+ };
83
+ const result = await evaluatePreToolUse(hooks, 'shell:rm', BASE_ARGS.toolInput, BASE_ARGS.toolUseId, BASE_ARGS.sessionId, BASE_ARGS.cwd);
84
+ expect(result).toEqual({ decision: 'deny', reason: 'second hook says no' });
85
+ });
86
+ it('passes correct input shape to callback', async () => {
87
+ const callback = vi.fn(async (_input) => ({ decision: 'allow' }));
88
+ const hooks = {
89
+ onPreToolUse: [{ callback }],
90
+ };
91
+ await evaluatePreToolUse(hooks, 'mcp:server/tool', { arg: 'val' }, 'tu_x', 'sess_x', '/home');
92
+ expect(callback).toHaveBeenCalledWith(expect.objectContaining({
93
+ hookEventName: 'preToolUse',
94
+ toolName: 'mcp:server/tool',
95
+ toolInput: { arg: 'val' },
96
+ turnContext: expect.objectContaining({
97
+ turnId: 'tu_x',
98
+ sessionId: 'sess_x',
99
+ metadata: { cwd: '/home' },
100
+ }),
101
+ }));
102
+ });
103
+ });
104
+ // ─── evaluatePostToolUse ───────────────────────────────────────────
105
+ describe('evaluatePostToolUse', () => {
106
+ it('calls matching hooks with correct input', async () => {
107
+ const callback = vi.fn(async (_input) => { });
108
+ const hooks = {
109
+ onPostToolUse: [
110
+ {
111
+ toolName: /^shell:/,
112
+ callback,
113
+ },
114
+ ],
115
+ };
116
+ await evaluatePostToolUse(hooks, 'shell:ls', { command: 'ls' }, 'file list output', false, 'tu_1', 'sess_1', '/tmp');
117
+ expect(callback).toHaveBeenCalledWith(expect.objectContaining({
118
+ hookEventName: 'postToolUse',
119
+ toolName: 'shell:ls',
120
+ toolInput: { command: 'ls' },
121
+ toolOutput: 'file list output',
122
+ isError: false,
123
+ }));
124
+ });
125
+ it('does not crash when a hook throws', async () => {
126
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
127
+ const hooks = {
128
+ onPostToolUse: [
129
+ {
130
+ callback: async () => { throw new Error('post hook boom'); },
131
+ },
132
+ ],
133
+ };
134
+ await expect(evaluatePostToolUse(hooks, 'shell:ls', {}, 'output', false, 'tu_1', 'sess_1', '/tmp')).resolves.toBeUndefined();
135
+ expect(errorSpy).toHaveBeenCalled();
136
+ errorSpy.mockRestore();
137
+ });
138
+ it('ignores additionalContext returned by hook — Codex limitation (AC-06)', async () => {
139
+ const callback = vi.fn(async () => ({ additionalContext: 'extra info' }));
140
+ const hooks = {
141
+ onPostToolUse: [{ callback }],
142
+ };
143
+ // evaluatePostToolUse returns void — additionalContext from the hook is intentionally ignored
144
+ const result = await evaluatePostToolUse(hooks, 'shell:ls', { command: 'ls' }, 'output', false, 'tu_1', 'sess_1', '/tmp');
145
+ expect(result).toBeUndefined();
146
+ expect(callback).toHaveBeenCalledTimes(1);
147
+ });
148
+ });
149
+ //# sourceMappingURL=hook-adapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-adapter.test.js","sourceRoot":"","sources":["../../src/__tests__/hook-adapter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=managed-codex.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-codex.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/managed-codex.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { getCodexInvocation, resolveManagedCodexBin } from '../managed-codex.js';
3
+ describe('resolveManagedCodexBin', () => {
4
+ it('resolves bin.codex from @openai/codex package.json', () => {
5
+ const resolved = resolveManagedCodexBin({
6
+ requireResolve: (id) => {
7
+ expect(id).toBe('@openai/codex/package.json');
8
+ return '/virtual/node_modules/@openai/codex/package.json';
9
+ },
10
+ readTextFile: () => JSON.stringify({
11
+ bin: {
12
+ codex: 'bin/codex.js',
13
+ },
14
+ }),
15
+ });
16
+ expect(resolved).toBe('/virtual/node_modules/@openai/codex/bin/codex.js');
17
+ });
18
+ it('throws when codex bin entry is missing', () => {
19
+ expect(() => resolveManagedCodexBin({
20
+ requireResolve: () => '/virtual/node_modules/@openai/codex/package.json',
21
+ readTextFile: () => JSON.stringify({ bin: {} }),
22
+ })).toThrow(/bin\.codex/);
23
+ });
24
+ });
25
+ describe('getCodexInvocation', () => {
26
+ it('wraps JS entrypoints with the current node executable', () => {
27
+ const invocation = getCodexInvocation(undefined, {
28
+ requireResolve: () => '/virtual/node_modules/@openai/codex/package.json',
29
+ readTextFile: () => JSON.stringify({
30
+ bin: {
31
+ codex: 'bin/codex.js',
32
+ },
33
+ }),
34
+ });
35
+ expect(invocation).toEqual({
36
+ command: process.execPath,
37
+ args: ['/virtual/node_modules/@openai/codex/bin/codex.js'],
38
+ });
39
+ });
40
+ it('uses explicit override as-is for non-JS binaries', () => {
41
+ const invocation = getCodexInvocation('/custom/bin/codex');
42
+ expect(invocation).toEqual({
43
+ command: '/custom/bin/codex',
44
+ args: [],
45
+ });
46
+ });
47
+ it('wraps explicit JS override with the current node executable', () => {
48
+ const invocation = getCodexInvocation('/custom/bin/codex.js');
49
+ expect(invocation).toEqual({
50
+ command: process.execPath,
51
+ args: ['/custom/bin/codex.js'],
52
+ });
53
+ });
54
+ });
55
+ //# sourceMappingURL=managed-codex.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-codex.test.js","sourceRoot":"","sources":["../../src/__tests__/managed-codex.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEhF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,QAAQ,GAAG,sBAAsB,CAAC;YACtC,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE;gBACrB,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;gBAC7C,OAAO,kDAAkD,CAAA;YAC3D,CAAC;YACD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;gBACjC,GAAG,EAAE;oBACH,KAAK,EAAE,cAAc;iBACtB;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;IAC3E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,GAAG,EAAE,CACV,sBAAsB,CAAC;YACrB,cAAc,EAAE,GAAG,EAAE,CAAC,kDAAkD;YACxE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;SAChD,CAAC,CACH,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,EAAE;YAC/C,cAAc,EAAE,GAAG,EAAE,CAAC,kDAAkD;YACxE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;gBACjC,GAAG,EAAE;oBACH,KAAK,EAAE,cAAc;iBACtB;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YACzB,OAAO,EAAE,OAAO,CAAC,QAAQ;YACzB,IAAI,EAAE,CAAC,kDAAkD,CAAC;SAC3D,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,UAAU,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;QAE1D,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YACzB,OAAO,EAAE,mBAAmB;YAC5B,IAAI,EAAE,EAAE;SACT,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,UAAU,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,CAAA;QAE7D,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YACzB,OAAO,EAAE,OAAO,CAAC,QAAQ;YACzB,IAAI,EAAE,CAAC,sBAAsB,CAAC;SAC/B,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -14,17 +14,29 @@ describe('mapCodexNotification', () => {
14
14
  });
15
15
  expect(event).toEqual({ type: 'tool.start', toolName: 'shell:ls -la' });
16
16
  });
17
- it('maps commandExecution item/completed to tool.end', () => {
17
+ it('maps commandExecution item/completed to tool.end with toolInput and toolResponse', () => {
18
18
  const event = mapCodexNotification('item/completed', {
19
- item: { type: 'commandExecution', command: 'npm test', exitCode: 0 },
19
+ item: { type: 'commandExecution', command: 'npm test', args: ['--watch'], exitCode: 0, output: 'ok' },
20
+ });
21
+ expect(event).toEqual({
22
+ type: 'tool.end',
23
+ toolName: 'shell:npm test',
24
+ isError: false,
25
+ toolInput: { command: 'npm test', args: ['--watch'] },
26
+ toolResponse: { exitCode: 0, output: 'ok' },
20
27
  });
21
- expect(event).toEqual({ type: 'tool.end', toolName: 'shell:npm test', isError: false });
22
28
  });
23
- it('maps failed command to tool.end with isError', () => {
29
+ it('maps failed command to tool.end with isError and tool data', () => {
24
30
  const event = mapCodexNotification('item/completed', {
25
- item: { type: 'commandExecution', command: 'bad-cmd', exitCode: 1 },
31
+ item: { type: 'commandExecution', command: 'bad-cmd', exitCode: 1, output: 'not found' },
32
+ });
33
+ expect(event).toEqual({
34
+ type: 'tool.end',
35
+ toolName: 'shell:bad-cmd',
36
+ isError: true,
37
+ toolInput: { command: 'bad-cmd', args: undefined },
38
+ toolResponse: { exitCode: 1, output: 'not found' },
26
39
  });
27
- expect(event).toEqual({ type: 'tool.end', toolName: 'shell:bad-cmd', isError: true });
28
40
  });
29
41
  it('maps turn/completed success to result', () => {
30
42
  const event = mapCodexNotification('turn/completed', {
@@ -37,6 +49,17 @@ describe('mapCodexNotification', () => {
37
49
  });
38
50
  expect(event).toEqual({ type: 'result', text: 'Done!' });
39
51
  });
52
+ it('maps turn/completed success using agentMessage.text when present', () => {
53
+ const event = mapCodexNotification('turn/completed', {
54
+ turn: {
55
+ status: 'completed',
56
+ items: [
57
+ { type: 'agentMessage', text: 'Done from text field' },
58
+ ],
59
+ },
60
+ });
61
+ expect(event).toEqual({ type: 'result', text: 'Done from text field' });
62
+ });
40
63
  it('maps turn/completed failed to error', () => {
41
64
  const event = mapCodexNotification('turn/completed', {
42
65
  turn: { status: 'failed', error: 'Context window exceeded' },
@@ -62,11 +85,18 @@ describe('mapCodexNotification', () => {
62
85
  });
63
86
  expect(event).toEqual({ type: 'tool.start', toolName: 'file:/tmp/test.ts' });
64
87
  });
65
- it('maps fileChange item/completed to tool.end', () => {
88
+ it('maps fileChange item/completed to tool.end with toolInput and toolResponse', () => {
89
+ const changes = [{ path: '/tmp/test.ts', content: 'new content' }];
66
90
  const event = mapCodexNotification('item/completed', {
67
- item: { type: 'fileChange', changes: [{ path: '/tmp/test.ts' }] }
91
+ item: { type: 'fileChange', changes }
92
+ });
93
+ expect(event).toEqual({
94
+ type: 'tool.end',
95
+ toolName: 'file:/tmp/test.ts',
96
+ isError: false,
97
+ toolInput: { path: '/tmp/test.ts' },
98
+ toolResponse: { changes },
68
99
  });
69
- expect(event).toEqual({ type: 'tool.end', toolName: 'file:/tmp/test.ts', isError: false });
70
100
  });
71
101
  it('maps mcpToolCall item/started to tool.start', () => {
72
102
  const event = mapCodexNotification('item/started', {
@@ -74,17 +104,29 @@ describe('mapCodexNotification', () => {
74
104
  });
75
105
  expect(event).toEqual({ type: 'tool.start', toolName: 'mcp:slack/post_message' });
76
106
  });
77
- it('maps mcpToolCall item/completed to tool.end', () => {
107
+ it('maps mcpToolCall item/completed to tool.end with toolInput and toolResponse', () => {
78
108
  const event = mapCodexNotification('item/completed', {
79
- item: { type: 'mcpToolCall', server: 'slack', tool: 'post_message', error: null }
109
+ item: { type: 'mcpToolCall', server: 'slack', tool: 'post_message', error: null, arguments: { channel: '#general' }, result: { ok: true } }
110
+ });
111
+ expect(event).toEqual({
112
+ type: 'tool.end',
113
+ toolName: 'mcp:slack/post_message',
114
+ isError: false,
115
+ toolInput: { channel: '#general' },
116
+ toolResponse: { ok: true },
80
117
  });
81
- expect(event).toEqual({ type: 'tool.end', toolName: 'mcp:slack/post_message', isError: false });
82
118
  });
83
- it('maps mcpToolCall item/completed with error', () => {
119
+ it('maps mcpToolCall item/completed with error as toolResponse', () => {
84
120
  const event = mapCodexNotification('item/completed', {
85
- item: { type: 'mcpToolCall', server: 'slack', tool: 'post_message', error: { message: 'timeout' } }
121
+ item: { type: 'mcpToolCall', server: 'slack', tool: 'post_message', error: { message: 'timeout' }, arguments: { channel: '#general' } }
122
+ });
123
+ expect(event).toEqual({
124
+ type: 'tool.end',
125
+ toolName: 'mcp:slack/post_message',
126
+ isError: true,
127
+ toolInput: { channel: '#general' },
128
+ toolResponse: { message: 'timeout' },
86
129
  });
87
- expect(event).toEqual({ type: 'tool.end', toolName: 'mcp:slack/post_message', isError: true });
88
130
  });
89
131
  it('maps dynamicToolCall item/started to tool.start', () => {
90
132
  const event = mapCodexNotification('item/started', {
@@ -92,17 +134,29 @@ describe('mapCodexNotification', () => {
92
134
  });
93
135
  expect(event).toEqual({ type: 'tool.start', toolName: 'tool:custom_search' });
94
136
  });
95
- it('maps dynamicToolCall item/completed to tool.end', () => {
137
+ it('maps dynamicToolCall item/completed to tool.end with toolInput and toolResponse', () => {
96
138
  const event = mapCodexNotification('item/completed', {
97
- item: { type: 'dynamicToolCall', tool: 'custom_search', success: true }
139
+ item: { type: 'dynamicToolCall', tool: 'custom_search', success: true, arguments: { query: 'test' }, result: { hits: 5 } }
140
+ });
141
+ expect(event).toEqual({
142
+ type: 'tool.end',
143
+ toolName: 'tool:custom_search',
144
+ isError: false,
145
+ toolInput: { query: 'test' },
146
+ toolResponse: { hits: 5 },
98
147
  });
99
- expect(event).toEqual({ type: 'tool.end', toolName: 'tool:custom_search', isError: false });
100
148
  });
101
- it('maps dynamicToolCall item/completed with failure', () => {
149
+ it('maps dynamicToolCall item/completed with failure and tool data', () => {
102
150
  const event = mapCodexNotification('item/completed', {
103
- item: { type: 'dynamicToolCall', tool: 'custom_search', success: false }
151
+ item: { type: 'dynamicToolCall', tool: 'custom_search', success: false, arguments: { query: 'bad' }, result: null }
152
+ });
153
+ expect(event).toEqual({
154
+ type: 'tool.end',
155
+ toolName: 'tool:custom_search',
156
+ isError: true,
157
+ toolInput: { query: 'bad' },
158
+ toolResponse: null,
104
159
  });
105
- expect(event).toEqual({ type: 'tool.end', toolName: 'tool:custom_search', isError: true });
106
160
  });
107
161
  it('returns null for item/started with unrecognized type', () => {
108
162
  expect(mapCodexNotification('item/started', { item: { type: 'userMessage' } })).toBeNull();
@@ -122,5 +176,11 @@ describe('mapCodexNotification', () => {
122
176
  });
123
177
  expect(event).toEqual({ type: 'progress', text: 'hello world' });
124
178
  });
179
+ it('extracts text from agentMessage.text in item/completed', () => {
180
+ const event = mapCodexNotification('item/completed', {
181
+ item: { type: 'agentMessage', text: 'hello from text field' }
182
+ });
183
+ expect(event).toEqual({ type: 'progress', text: 'hello from text field' });
184
+ });
125
185
  });
126
186
  //# sourceMappingURL=mapper.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.test.js","sourceRoot":"","sources":["../../src/__tests__/mapper.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapper.test.js","sourceRoot":"","sources":["../../src/__tests__/mapper.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEnD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,KAAK,GAAG,oBAAoB,CAAC,yBAAyB,EAAE;YAC5D,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;YACrD,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,KAAK,GAAG,oBAAoB,CAAC,cAAc,EAAE;YACjD,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE;SACtD,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC1F,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;SACtG,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,gBAAgB;YAC1B,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE;YACrD,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;SAC5C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE;SACzF,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,eAAe;YACzB,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YAClD,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE;SACnD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE;gBACJ,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE;oBACL,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;iBACrE;aACF;SACF,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE;gBACJ,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE;oBACL,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,sBAAsB,EAAE;iBACvD;aACF;SACF,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,yBAAyB,EAAE;SAC7D,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE;YAC1C,KAAK,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;YACzC,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,oBAAoB,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;QAClE,MAAM,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,KAAK,GAAG,oBAAoB,CAAC,cAAc,EAAE;YACjD,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE;SAClE,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAA;QAClE,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE;SACtC,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,mBAAmB;YAC7B,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;YACnC,YAAY,EAAE,EAAE,OAAO,EAAE;SAC1B,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG,oBAAoB,CAAC,cAAc,EAAE;YACjD,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE;SACrE,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,CAAA;IACnF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;SAC5I,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,wBAAwB;YAClC,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;YAClC,YAAY,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SAC3B,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;SACxI,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,wBAAwB;YAClC,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;YAClC,YAAY,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;SACrC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,KAAK,GAAG,oBAAoB,CAAC,cAAc,EAAE;YACjD,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,EAAE;SACzD,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAA;IAC/E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;SAC3H,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,oBAAoB;YAC9B,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;YAC5B,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;SAC1B,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACpH,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,oBAAoB;YAC9B,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;YAC3B,YAAY,EAAE,IAAI;SACnB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,oBAAoB,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC5F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC/D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;SAC7G,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE;YACnD,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,uBAAuB,EAAE;SAC9D,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runtime.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/runtime.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { applyCodexResultTextFallback } from '../runtime.js';
3
+ describe('applyCodexResultTextFallback', () => {
4
+ it('fills empty result text from accumulated assistant text', () => {
5
+ const event = { type: 'result', text: '' };
6
+ expect(applyCodexResultTextFallback(event, 'SENA_E2E_OK')).toEqual({
7
+ type: 'result',
8
+ text: 'SENA_E2E_OK',
9
+ });
10
+ });
11
+ it('does not overwrite non-empty result text', () => {
12
+ const event = { type: 'result', text: 'final answer' };
13
+ expect(applyCodexResultTextFallback(event, 'fallback')).toEqual(event);
14
+ });
15
+ it('does nothing for non-result events', () => {
16
+ const event = { type: 'progress.delta', text: 'S' };
17
+ expect(applyCodexResultTextFallback(event, 'fallback')).toEqual(event);
18
+ });
19
+ });
20
+ //# sourceMappingURL=runtime.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.test.js","sourceRoot":"","sources":["../../src/__tests__/runtime.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;AAG5D,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QAExD,MAAM,CAAC,4BAA4B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;YACjE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,aAAa;SACpB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;QAEpE,MAAM,CAAC,4BAA4B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;QAEjE,MAAM,CAAC,4BAA4B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
package/dist/client.d.ts CHANGED
@@ -15,7 +15,7 @@ export declare class CodexAppServerClient extends EventEmitter {
15
15
  private rl;
16
16
  private nextId;
17
17
  private pending;
18
- private codexBin;
18
+ private codexBin?;
19
19
  constructor(codexBin?: string);
20
20
  spawn(configOverrides?: string[]): void;
21
21
  private onLine;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAC1D,CAAA;AAOD,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,SAAU;IAK9B,KAAK,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAkBvC,OAAO,CAAC,MAAM;IAmCd,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQzD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,IAAI;IAIjD,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAIpC,UAAU,CAAC,UAAU,SAAiB,EAAE,OAAO,SAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAS5E,WAAW,CAAC,MAAM,EAAE;QACxB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ3B,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IASrE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAU3F,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IASpG,KAAK,IAAI,IAAI;CAUd"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG1C,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAC1D,CAAA;AAOD,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,QAAQ,CAAC,CAAQ;gBAEb,QAAQ,CAAC,EAAE,MAAM;IAK7B,KAAK,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAqBvC,OAAO,CAAC,MAAM;IAmCd,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQzD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,IAAI;IAIjD,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAIpC,UAAU,CAAC,UAAU,SAAiB,EAAE,OAAO,SAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAS5E,WAAW,CAAC,MAAM,EAAE;QACxB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ3B,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IASrE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAU3F,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IASpG,KAAK,IAAI,IAAI;CAUd"}
package/dist/client.js CHANGED
@@ -1,24 +1,26 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { createInterface } from 'node:readline';
3
3
  import { EventEmitter } from 'node:events';
4
+ import { getCodexInvocation } from './managed-codex.js';
4
5
  export class CodexAppServerClient extends EventEmitter {
5
6
  child = null;
6
7
  rl = null;
7
8
  nextId = 0;
8
9
  pending = new Map();
9
10
  codexBin;
10
- constructor(codexBin = 'codex') {
11
+ constructor(codexBin) {
11
12
  super();
12
13
  this.codexBin = codexBin;
13
14
  }
14
15
  spawn(configOverrides) {
15
- const args = ['app-server'];
16
+ const appServerArgs = ['app-server'];
16
17
  if (configOverrides?.length) {
17
18
  for (const c of configOverrides) {
18
- args.push('-c', c);
19
+ appServerArgs.push('-c', c);
19
20
  }
20
21
  }
21
- this.child = spawn(this.codexBin, args, {
22
+ const invocation = getCodexInvocation(this.codexBin);
23
+ this.child = spawn(invocation.command, [...invocation.args, ...appServerArgs], {
22
24
  stdio: ['pipe', 'pipe', 'inherit'],
23
25
  });
24
26
  this.rl = createInterface({ input: this.child.stdout });
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAkB,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAe1C,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IAC5C,KAAK,GAAwB,IAAI,CAAA;IACjC,EAAE,GAAqB,IAAI,CAAA;IAC3B,MAAM,GAAG,CAAC,CAAA;IACV,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAA;IAC3C,QAAQ,CAAQ;IAExB,YAAY,QAAQ,GAAG,OAAO;QAC5B,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,eAA0B;QAC9B,MAAM,IAAI,GAAG,CAAC,YAAY,CAAC,CAAA;QAC3B,IAAI,eAAe,EAAE,MAAM,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;YACtC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;SACnC,CAAC,CAAA;QAEF,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAO,EAAE,CAAC,CAAA;QACxD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAE/C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAA;QAC9D,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IAC1D,CAAC;IAEO,MAAM,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAM;QACxB,IAAI,GAAmB,CAAA;QACvB,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAM;QACR,CAAC;QAED,+BAA+B;QAC/B,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACrD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAE,CAAA;YACrD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC3B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACrB,CAAC;YACD,OAAM;QACR,CAAC;QAED,oEAAoE;QACpE,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;YAChC,OAAM;QACR,CAAC;QAED,8BAA8B;QAC9B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,oEAAoE;YACpE,qEAAqE;YACrE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,GAAW;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,MAAc;QACpC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAA;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACzC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACnC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,SAAiB,EAAE;QACxC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,CAAC,EAAU,EAAE,MAAe;QACjC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAU,GAAG,cAAc,EAAE,OAAO,GAAG,OAAO;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE;YACzC,YAAY,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;SACxC,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAC1B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAMjB;QACC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YAChD,GAAG,MAAM;YACT,sBAAsB,EAAE,IAAI;SAC7B,CAA+B,CAAA;QAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,SAAiB,EAAE;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YACnC,QAAQ;YACR,GAAG,MAAM;YACT,qBAAqB,EAAE,KAAK;YAC5B,sBAAsB,EAAE,IAAI;SAC7B,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,IAAY,EAAE,SAAiB,EAAE;QACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC9C,QAAQ;YACR,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC/B,sBAAsB,EAAE,IAAI;YAC5B,GAAG,MAAM;SACV,CAA6B,CAAA;QAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,IAAY,EAAE,cAAsB;QACpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC9C,QAAQ;YACR,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC/B,cAAc;SACf,CAAuB,CAAA;QACxB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;IAClC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAA;QAChB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAA;QACd,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;QACpC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { RuntimeHooks, PreToolUseDecision } from '@sena-ai/core';
2
+ /**
3
+ * Evaluates all matching `onPreToolUse` hooks against the given tool invocation.
4
+ *
5
+ * - Matchers use regex pattern matching on tool name (Codex patterns: `shell:cmd`, `file:path`, etc.)
6
+ * - A matcher with no `toolName` regex matches all tools.
7
+ * - `deny` wins immediately — first deny short-circuits.
8
+ * - `updatedInput` is NOT supported by Codex; logged as warning and treated as plain `allow`.
9
+ * - Errors in callbacks are logged and treated as `pass`.
10
+ * - Default (no decisive hook): `{ decision: 'allow' }`.
11
+ */
12
+ export declare function evaluatePreToolUse(hooks: RuntimeHooks, toolName: string, toolInput: Record<string, unknown>, toolUseId: string, sessionId: string, cwd: string): Promise<PreToolUseDecision>;
13
+ /**
14
+ * Evaluates all matching `onPostToolUse` hooks (fire-and-forget).
15
+ *
16
+ * Same matcher logic as `evaluatePreToolUse`. Errors are logged and swallowed.
17
+ */
18
+ export declare function evaluatePostToolUse(hooks: RuntimeHooks, toolName: string, toolInput: Record<string, unknown>, toolResponse: string, isError: boolean, toolUseId: string, sessionId: string, cwd: string): Promise<void>;
19
+ //# sourceMappingURL=hook-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-adapter.d.ts","sourceRoot":"","sources":["../src/hook-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAInB,MAAM,eAAe,CAAA;AAEtB;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,kBAAkB,CAAC,CAkD7B;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Evaluates all matching `onPreToolUse` hooks against the given tool invocation.
3
+ *
4
+ * - Matchers use regex pattern matching on tool name (Codex patterns: `shell:cmd`, `file:path`, etc.)
5
+ * - A matcher with no `toolName` regex matches all tools.
6
+ * - `deny` wins immediately — first deny short-circuits.
7
+ * - `updatedInput` is NOT supported by Codex; logged as warning and treated as plain `allow`.
8
+ * - Errors in callbacks are logged and treated as `pass`.
9
+ * - Default (no decisive hook): `{ decision: 'allow' }`.
10
+ */
11
+ export async function evaluatePreToolUse(hooks, toolName, toolInput, toolUseId, sessionId, cwd) {
12
+ const matchers = hooks.onPreToolUse;
13
+ if (!matchers || matchers.length === 0) {
14
+ return { decision: 'allow' };
15
+ }
16
+ const turnContext = buildTurnContext(toolUseId, sessionId, cwd);
17
+ const input = {
18
+ hookEventName: 'preToolUse',
19
+ toolName,
20
+ toolInput,
21
+ turnContext,
22
+ };
23
+ for (const matcher of matchers) {
24
+ if (matcher.toolName && !matcher.toolName.test(toolName)) {
25
+ continue;
26
+ }
27
+ try {
28
+ const result = await matcher.callback(input);
29
+ if (result.decision === 'pass') {
30
+ continue;
31
+ }
32
+ if (result.decision === 'deny') {
33
+ return result;
34
+ }
35
+ if (result.decision === 'allow') {
36
+ if ('updatedInput' in result && result.updatedInput !== undefined) {
37
+ console.warn(`[sena][codex] Hook returned updatedInput for tool "${toolName}", but Codex does not support input rewriting. Treating as plain allow.`);
38
+ return { decision: 'allow' };
39
+ }
40
+ return result;
41
+ }
42
+ }
43
+ catch (err) {
44
+ console.error(`[sena][codex] PreToolUse hook error for tool "${toolName}":`, err);
45
+ // Treat error as pass — continue to next hook
46
+ }
47
+ }
48
+ return { decision: 'allow' };
49
+ }
50
+ /**
51
+ * Evaluates all matching `onPostToolUse` hooks (fire-and-forget).
52
+ *
53
+ * Same matcher logic as `evaluatePreToolUse`. Errors are logged and swallowed.
54
+ */
55
+ export async function evaluatePostToolUse(hooks, toolName, toolInput, toolResponse, isError, toolUseId, sessionId, cwd) {
56
+ const matchers = hooks.onPostToolUse;
57
+ if (!matchers || matchers.length === 0) {
58
+ return;
59
+ }
60
+ const turnContext = buildTurnContext(toolUseId, sessionId, cwd);
61
+ const input = {
62
+ hookEventName: 'postToolUse',
63
+ toolName,
64
+ toolInput,
65
+ toolOutput: toolResponse,
66
+ isError,
67
+ turnContext,
68
+ };
69
+ for (const matcher of matchers) {
70
+ if (matcher.toolName && !matcher.toolName.test(toolName)) {
71
+ continue;
72
+ }
73
+ try {
74
+ await matcher.callback(input);
75
+ }
76
+ catch (err) {
77
+ console.error(`[sena][codex] PostToolUse hook error for tool "${toolName}":`, err);
78
+ }
79
+ }
80
+ }
81
+ // ─── Helpers ───────────────────────────────────────────────────────
82
+ function buildTurnContext(turnId, sessionId, cwd) {
83
+ return {
84
+ turnId,
85
+ agentName: 'codex',
86
+ trigger: 'programmatic',
87
+ input: '',
88
+ sessionId,
89
+ metadata: { cwd },
90
+ };
91
+ }
92
+ //# sourceMappingURL=hook-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-adapter.js","sourceRoot":"","sources":["../src/hook-adapter.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { codexRuntime } from './runtime.js';
2
2
  export type { CodexRuntimeOptions } from './runtime.js';
3
3
  export { CodexAppServerClient } from './client.js';
4
+ export { getCodexInvocation, resolveManagedCodexBin } from './managed-codex.js';
4
5
  export { mapCodexNotification } from './mapper.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { codexRuntime } from './runtime.js';
2
2
  export { CodexAppServerClient } from './client.js';
3
+ export { getCodexInvocation, resolveManagedCodexBin } from './managed-codex.js';
3
4
  export { mapCodexNotification } from './mapper.js';
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,11 @@
1
+ export type ManagedCodexResolverDeps = {
2
+ requireResolve?: (id: string) => string;
3
+ readTextFile?: (path: string) => string;
4
+ };
5
+ export type CodexInvocation = {
6
+ command: string;
7
+ args: string[];
8
+ };
9
+ export declare function resolveManagedCodexBin(deps?: ManagedCodexResolverDeps): string;
10
+ export declare function getCodexInvocation(codexBin?: string, deps?: ManagedCodexResolverDeps): CodexInvocation;
11
+ //# sourceMappingURL=managed-codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-codex.d.ts","sourceRoot":"","sources":["../src/managed-codex.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;CACf,CAAA;AAED,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,wBAA6B,GAAG,MAAM,CAelF;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,GAAE,wBAA6B,GAClC,eAAe,CAcjB"}
@@ -0,0 +1,31 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { createRequire } from 'node:module';
3
+ import { dirname, resolve } from 'node:path';
4
+ const requireFromHere = createRequire(import.meta.url);
5
+ export function resolveManagedCodexBin(deps = {}) {
6
+ const requireResolve = deps.requireResolve ?? requireFromHere.resolve.bind(requireFromHere);
7
+ const readTextFile = deps.readTextFile ?? ((path) => readFileSync(path, 'utf-8'));
8
+ const packageJsonPath = requireResolve('@openai/codex/package.json');
9
+ const packageJson = JSON.parse(readTextFile(packageJsonPath));
10
+ const bin = typeof packageJson.bin === 'string'
11
+ ? packageJson.bin
12
+ : packageJson.bin?.codex;
13
+ if (!bin) {
14
+ throw new Error('Failed to resolve Codex executable: missing "bin.codex" in @openai/codex package.json');
15
+ }
16
+ return resolve(dirname(packageJsonPath), bin);
17
+ }
18
+ export function getCodexInvocation(codexBin, deps = {}) {
19
+ const executable = codexBin ?? resolveManagedCodexBin(deps);
20
+ if (/\.(?:c|m)?js$/i.test(executable)) {
21
+ return {
22
+ command: process.execPath,
23
+ args: [executable],
24
+ };
25
+ }
26
+ return {
27
+ command: executable,
28
+ args: [],
29
+ };
30
+ }
31
+ //# sourceMappingURL=managed-codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-codex.js","sourceRoot":"","sources":["../src/managed-codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAE5C,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAgBtD,MAAM,UAAU,sBAAsB,CAAC,OAAiC,EAAE;IACxE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAC3F,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAEzF,MAAM,eAAe,GAAG,cAAc,CAAC,4BAA4B,CAAC,CAAA;IACpE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CAAqB,CAAA;IACjF,MAAM,GAAG,GAAG,OAAO,WAAW,CAAC,GAAG,KAAK,QAAQ;QAC7C,CAAC,CAAC,WAAW,CAAC,GAAG;QACjB,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAA;IAE1B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAA;IAC1G,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAiB,EACjB,OAAiC,EAAE;IAEnC,MAAM,UAAU,GAAG,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAE3D,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,QAAQ;YACzB,IAAI,EAAE,CAAC,UAAU,CAAC;SACnB,CAAA;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,EAAE;KACT,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../src/mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,YAAY,GAAG,IAAI,CAuFrF"}
1
+ {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../src/mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAajD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,YAAY,GAAG,IAAI,CAyFrF"}
package/dist/mapper.js CHANGED
@@ -1,3 +1,12 @@
1
+ function extractAgentMessageText(item) {
2
+ if (typeof item?.text === 'string' && item.text.length > 0) {
3
+ return item.text;
4
+ }
5
+ return item?.content
6
+ ?.filter((b) => b.type === 'text')
7
+ ?.map((b) => b.text)
8
+ ?.join('') ?? '';
9
+ }
1
10
  export function mapCodexNotification(method, params) {
2
11
  switch (method) {
3
12
  case 'item/agentMessage/delta':
@@ -28,30 +37,35 @@ export function mapCodexNotification(method, params) {
28
37
  type: 'tool.end',
29
38
  toolName: `shell:${item.command ?? 'unknown'}`,
30
39
  isError: item.exitCode != null ? item.exitCode !== 0 : false,
40
+ toolInput: { command: item.command, args: item.args },
41
+ toolResponse: { exitCode: item.exitCode, output: item.output },
31
42
  };
32
43
  case 'fileChange':
33
44
  return {
34
45
  type: 'tool.end',
35
46
  toolName: `file:${item.changes?.[0]?.path ?? 'unknown'}`,
36
47
  isError: false,
48
+ toolInput: { path: item.changes?.[0]?.path },
49
+ toolResponse: { changes: item.changes },
37
50
  };
38
51
  case 'mcpToolCall':
39
52
  return {
40
53
  type: 'tool.end',
41
54
  toolName: `mcp:${item.server ?? 'unknown'}/${item.tool ?? 'unknown'}`,
42
55
  isError: item.error != null,
56
+ toolInput: item.arguments,
57
+ toolResponse: item.error ?? item.result,
43
58
  };
44
59
  case 'dynamicToolCall':
45
60
  return {
46
61
  type: 'tool.end',
47
62
  toolName: `tool:${item.tool ?? 'unknown'}`,
48
63
  isError: item.success === false,
64
+ toolInput: item.arguments,
65
+ toolResponse: item.result,
49
66
  };
50
67
  case 'agentMessage': {
51
- const text = item.content
52
- ?.filter((b) => b.type === 'text')
53
- ?.map((b) => b.text)
54
- ?.join('') ?? '';
68
+ const text = extractAgentMessageText(item);
55
69
  if (text)
56
70
  return { type: 'progress', text };
57
71
  return null;
@@ -67,10 +81,7 @@ export function mapCodexNotification(method, params) {
67
81
  if (turn.status === 'completed') {
68
82
  const agentItems = (turn.items ?? []).filter((i) => i.type === 'agentMessage');
69
83
  const lastMsg = agentItems[agentItems.length - 1];
70
- const text = lastMsg?.content
71
- ?.filter((b) => b.type === 'text')
72
- ?.map((b) => b.text)
73
- ?.join('') ?? '';
84
+ const text = extractAgentMessageText(lastMsg);
74
85
  return { type: 'result', text };
75
86
  }
76
87
  if (turn.status === 'failed') {
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.js","sourceRoot":"","sources":["../src/mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapper.js","sourceRoot":"","sources":["../src/mapper.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -1,12 +1,14 @@
1
- import type { Runtime, McpToolPort } from '@sena-ai/core';
1
+ import type { Runtime, RuntimeEvent, McpToolPort } from '@sena-ai/core';
2
2
  export type CodexRuntimeOptions = {
3
3
  model?: string;
4
4
  apiKey?: string;
5
5
  reasoningEffort?: 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
6
6
  sandboxMode?: 'read-only' | 'workspace-write' | 'danger-full-access';
7
7
  approvalPolicy?: 'never' | 'on-request' | 'always';
8
+ /** Explicit override for the Codex executable path or command. */
8
9
  codexBin?: string;
9
10
  };
10
11
  export declare function buildCodexConfigOverrides(inlineBridgeUrl: string | null, mcpTools: McpToolPort[]): string[];
12
+ export declare function applyCodexResultTextFallback(event: RuntimeEvent, assistantText: string): RuntimeEvent;
11
13
  export declare function codexRuntime(options?: CodexRuntimeOptions): Runtime;
12
14
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAuD,WAAW,EAAkB,MAAM,eAAe,CAAA;AAK9H,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACjE,WAAW,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAA;IACpE,cAAc,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAA;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,QAAQ,EAAE,WAAW,EAAE,GACtB,MAAM,EAAE,CA0BV;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAyKvE"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAyC,WAAW,EAAkB,MAAM,eAAe,CAAA;AAM9H,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACjE,WAAW,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAA;IACpE,cAAc,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAA;IAClD,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,QAAQ,EAAE,WAAW,EAAE,GACtB,MAAM,EAAE,CA0BV;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG,YAAY,CAKrG;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAoOvE"}
package/dist/runtime.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { CodexAppServerClient } from './client.js';
2
2
  import { mapCodexNotification } from './mapper.js';
3
3
  import { startInlineMcpHttpServer } from './inline-mcp-server.js';
4
+ import { evaluatePreToolUse, evaluatePostToolUse } from './hook-adapter.js';
4
5
  export function buildCodexConfigOverrides(inlineBridgeUrl, mcpTools) {
5
6
  const overrides = [];
6
7
  if (inlineBridgeUrl) {
@@ -28,12 +29,18 @@ export function buildCodexConfigOverrides(inlineBridgeUrl, mcpTools) {
28
29
  }
29
30
  return overrides;
30
31
  }
32
+ export function applyCodexResultTextFallback(event, assistantText) {
33
+ if (event.type === 'result' && event.text === '' && assistantText !== '') {
34
+ return { ...event, text: assistantText };
35
+ }
36
+ return event;
37
+ }
31
38
  export function codexRuntime(options = {}) {
32
- const { model, apiKey, reasoningEffort = 'medium', sandboxMode = 'danger-full-access', approvalPolicy = 'never', codexBin = 'codex', } = options;
39
+ const { model, apiKey, reasoningEffort = 'medium', sandboxMode = 'danger-full-access', approvalPolicy = 'never', codexBin, } = options;
33
40
  return {
34
41
  name: 'codex',
35
42
  async *createStream(streamOptions) {
36
- const { contextFragments, prompt: promptIterable, sessionId, cwd, abortSignal, tools = [], pendingMessages, } = streamOptions;
43
+ const { contextFragments, prompt: promptIterable, sessionId, cwd, abortSignal, tools = [], pendingMessages, hooks, } = streamOptions;
37
44
  if (apiKey) {
38
45
  process.env.OPENAI_API_KEY = apiKey;
39
46
  }
@@ -46,6 +53,7 @@ export function codexRuntime(options = {}) {
46
53
  let resolveWait = null;
47
54
  let turnDone = false;
48
55
  let expectedTurnId = null;
56
+ let latestAssistantText = '';
49
57
  function pushEvent(event) {
50
58
  eventQueue.push(event);
51
59
  resolveWait?.();
@@ -66,28 +74,67 @@ export function codexRuntime(options = {}) {
66
74
  turnDone = true;
67
75
  resolveWait?.();
68
76
  }
69
- const event = mapCodexNotification(msg.method, params);
70
- if (event)
77
+ let event = mapCodexNotification(msg.method, params);
78
+ if (event) {
79
+ if (event.type === 'progress') {
80
+ latestAssistantText = event.text;
81
+ }
82
+ else if (event.type === 'progress.delta') {
83
+ latestAssistantText += event.text;
84
+ }
85
+ else if (event.type === 'result') {
86
+ event = applyCodexResultTextFallback(event, latestAssistantText);
87
+ }
88
+ // Fire-and-forget postToolUse hooks for tool.end events
89
+ if (event.type === 'tool.end' && hooks) {
90
+ evaluatePostToolUse(hooks, event.toolName, event.toolInput ?? {}, typeof event.toolResponse === 'string' ? event.toolResponse : JSON.stringify(event.toolResponse ?? ''), event.isError, expectedTurnId ?? 'unknown', sessionId ?? 'unknown', cwd || process.cwd()).catch((err) => {
91
+ console.error('[sena][codex] PostToolUse hook error (fire-and-forget):', err);
92
+ });
93
+ }
71
94
  pushEvent(event);
95
+ }
72
96
  });
73
97
  // Server requests requiring client response (approval, input, etc.)
74
98
  client.on('server-request', (msg) => {
75
- switch (msg.method) {
76
- // Official approval request methods per ServerRequest.ts
77
- case 'item/commandExecution/requestApproval':
78
- case 'item/fileChange/requestApproval':
79
- case 'item/permissions/requestApproval':
80
- case 'applyPatchApproval':
81
- case 'execCommandApproval': {
82
- const decision = approvalPolicy === 'never' ? 'acceptForSession' : 'accept';
83
- client.respond(msg.id, { decision });
84
- break;
99
+ const handleApproval = async () => {
100
+ const params = msg.params;
101
+ switch (msg.method) {
102
+ // Official approval request methods per ServerRequest.ts
103
+ case 'item/commandExecution/requestApproval':
104
+ case 'item/fileChange/requestApproval':
105
+ case 'item/permissions/requestApproval':
106
+ case 'applyPatchApproval':
107
+ case 'execCommandApproval': {
108
+ // Evaluate preToolUse hooks before applying approval policy
109
+ if (hooks) {
110
+ const toolName = extractToolNameFromApproval(msg.method, params);
111
+ const toolInput = extractToolInputFromApproval(msg.method, params);
112
+ try {
113
+ const hookDecision = await evaluatePreToolUse(hooks, toolName, toolInput, expectedTurnId ?? 'unknown', sessionId ?? 'unknown', cwd || process.cwd());
114
+ if (hookDecision.decision === 'deny') {
115
+ client.respond(msg.id, { decision: 'decline' });
116
+ return;
117
+ }
118
+ }
119
+ catch (err) {
120
+ console.error('[sena][codex] PreToolUse hook error:', err);
121
+ // Fall through to default approval policy
122
+ }
123
+ }
124
+ const decision = approvalPolicy === 'never' ? 'acceptForSession' : 'accept';
125
+ client.respond(msg.id, { decision });
126
+ break;
127
+ }
128
+ default:
129
+ // Unknown server request — accept to avoid blocking
130
+ client.respond(msg.id, { decision: 'accept' });
131
+ break;
85
132
  }
86
- default:
87
- // Unknown server request — accept to avoid blocking
88
- client.respond(msg.id, { decision: 'accept' });
89
- break;
90
- }
133
+ };
134
+ handleApproval().catch((err) => {
135
+ console.error('[sena][codex] Approval handler error:', err);
136
+ client.respond(msg.id, { decision: 'accept' });
137
+ });
91
138
  });
92
139
  abortSignal.addEventListener('abort', () => {
93
140
  client.close();
@@ -198,6 +245,36 @@ function wrapUserMessage(text, prepend, append) {
198
245
  parts.push(append);
199
246
  return parts.join('\n\n');
200
247
  }
248
+ function extractToolNameFromApproval(method, params) {
249
+ const item = params?.item;
250
+ switch (method) {
251
+ case 'item/commandExecution/requestApproval':
252
+ case 'execCommandApproval':
253
+ return `shell:${item?.command ?? params?.command ?? 'unknown'}`;
254
+ case 'item/fileChange/requestApproval':
255
+ case 'applyPatchApproval':
256
+ return `file:${item?.path ?? params?.path ?? 'unknown'}`;
257
+ case 'item/permissions/requestApproval':
258
+ return `permissions:${item?.type ?? 'unknown'}`;
259
+ default:
260
+ return `unknown:${method}`;
261
+ }
262
+ }
263
+ function extractToolInputFromApproval(method, params) {
264
+ const item = params?.item;
265
+ switch (method) {
266
+ case 'item/commandExecution/requestApproval':
267
+ case 'execCommandApproval':
268
+ return { command: item?.command ?? params?.command, args: item?.args ?? params?.args };
269
+ case 'item/fileChange/requestApproval':
270
+ case 'applyPatchApproval':
271
+ return { path: item?.path ?? params?.path, changes: item?.changes ?? params?.changes };
272
+ case 'item/permissions/requestApproval':
273
+ return { type: item?.type ?? params?.type };
274
+ default:
275
+ return params ?? {};
276
+ }
277
+ }
201
278
  // codex-cli 0.114.0 expects the legacy string form here, not the newer tagged union.
202
279
  function sandboxModeToCodex(mode) {
203
280
  switch (mode) {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sena-ai/runtime-codex",
3
- "version": "1.4.0",
3
+ "version": "1.5.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -14,8 +14,9 @@
14
14
  ],
15
15
  "dependencies": {
16
16
  "@modelcontextprotocol/sdk": "^1.27.1",
17
+ "@openai/codex": "0.118.0",
17
18
  "zod": "^4.3.6",
18
- "@sena-ai/core": "1.4.0"
19
+ "@sena-ai/core": "1.5.1"
19
20
  },
20
21
  "devDependencies": {
21
22
  "typescript": "^5.8.0"