@northflare/runner 0.0.17 → 0.0.20

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 (154) hide show
  1. package/bin/northflare-runner +17 -3
  2. package/dist/components/claude-sdk-manager.d.ts +6 -3
  3. package/dist/components/claude-sdk-manager.d.ts.map +1 -1
  4. package/dist/components/claude-sdk-manager.js +62 -42
  5. package/dist/components/claude-sdk-manager.js.map +1 -1
  6. package/dist/components/codex-sdk-manager.d.ts +6 -3
  7. package/dist/components/codex-sdk-manager.d.ts.map +1 -1
  8. package/dist/components/codex-sdk-manager.js +60 -16
  9. package/dist/components/codex-sdk-manager.js.map +1 -1
  10. package/dist/components/enhanced-repository-manager.d.ts.map +1 -1
  11. package/dist/components/enhanced-repository-manager.js +2 -1
  12. package/dist/components/enhanced-repository-manager.js.map +1 -1
  13. package/dist/components/message-handler-sse.d.ts.map +1 -1
  14. package/dist/components/message-handler-sse.js +157 -116
  15. package/dist/components/message-handler-sse.js.map +1 -1
  16. package/dist/components/northflare-agent-sdk-manager.d.ts +10 -6
  17. package/dist/components/northflare-agent-sdk-manager.d.ts.map +1 -1
  18. package/dist/components/northflare-agent-sdk-manager.js +350 -98
  19. package/dist/components/northflare-agent-sdk-manager.js.map +1 -1
  20. package/dist/components/repository-manager.d.ts.map +1 -1
  21. package/dist/components/repository-manager.js +2 -1
  22. package/dist/components/repository-manager.js.map +1 -1
  23. package/dist/runner-sse.d.ts.map +1 -1
  24. package/dist/runner-sse.js +7 -0
  25. package/dist/runner-sse.js.map +1 -1
  26. package/dist/types/claude.d.ts +4 -1
  27. package/dist/types/claude.d.ts.map +1 -1
  28. package/dist/utils/console.d.ts +5 -8
  29. package/dist/utils/console.d.ts.map +1 -1
  30. package/dist/utils/console.js +28 -10
  31. package/dist/utils/console.js.map +1 -1
  32. package/dist/utils/debug.d.ts +10 -0
  33. package/dist/utils/debug.d.ts.map +1 -1
  34. package/dist/utils/debug.js +86 -8
  35. package/dist/utils/debug.js.map +1 -1
  36. package/dist/utils/logger.d.ts +2 -1
  37. package/dist/utils/logger.d.ts.map +1 -1
  38. package/dist/utils/logger.js +43 -13
  39. package/dist/utils/logger.js.map +1 -1
  40. package/dist/utils/message-log.d.ts +23 -0
  41. package/dist/utils/message-log.d.ts.map +1 -0
  42. package/dist/utils/message-log.js +69 -0
  43. package/dist/utils/message-log.js.map +1 -0
  44. package/dist/utils/status-line.d.ts +5 -1
  45. package/dist/utils/status-line.d.ts.map +1 -1
  46. package/dist/utils/status-line.js +13 -3
  47. package/dist/utils/status-line.js.map +1 -1
  48. package/package.json +3 -4
  49. package/{lib/codex-sdk/tsup.config.ts → tsup.config.ts} +2 -2
  50. package/lib/codex-sdk/.prettierignore +0 -3
  51. package/lib/codex-sdk/.prettierrc +0 -5
  52. package/lib/codex-sdk/README.md +0 -133
  53. package/lib/codex-sdk/dist/index.d.ts +0 -260
  54. package/lib/codex-sdk/dist/index.js +0 -426
  55. package/lib/codex-sdk/dist/samples/basic_streaming.d.ts +0 -3
  56. package/lib/codex-sdk/dist/samples/basic_streaming.d.ts.map +0 -1
  57. package/lib/codex-sdk/dist/samples/basic_streaming.js +0 -81
  58. package/lib/codex-sdk/dist/samples/basic_streaming.js.map +0 -1
  59. package/lib/codex-sdk/dist/samples/helpers.d.ts +0 -2
  60. package/lib/codex-sdk/dist/samples/helpers.d.ts.map +0 -1
  61. package/lib/codex-sdk/dist/samples/helpers.js +0 -6
  62. package/lib/codex-sdk/dist/samples/helpers.js.map +0 -1
  63. package/lib/codex-sdk/dist/samples/structured_output.d.ts +0 -3
  64. package/lib/codex-sdk/dist/samples/structured_output.d.ts.map +0 -1
  65. package/lib/codex-sdk/dist/samples/structured_output.js +0 -17
  66. package/lib/codex-sdk/dist/samples/structured_output.js.map +0 -1
  67. package/lib/codex-sdk/dist/samples/structured_output_zod.d.ts +0 -3
  68. package/lib/codex-sdk/dist/samples/structured_output_zod.d.ts.map +0 -1
  69. package/lib/codex-sdk/dist/samples/structured_output_zod.js +0 -16
  70. package/lib/codex-sdk/dist/samples/structured_output_zod.js.map +0 -1
  71. package/lib/codex-sdk/dist/src/codex.d.ts +0 -27
  72. package/lib/codex-sdk/dist/src/codex.d.ts.map +0 -1
  73. package/lib/codex-sdk/dist/src/codex.js +0 -33
  74. package/lib/codex-sdk/dist/src/codex.js.map +0 -1
  75. package/lib/codex-sdk/dist/src/codexOptions.d.ts +0 -11
  76. package/lib/codex-sdk/dist/src/codexOptions.d.ts.map +0 -1
  77. package/lib/codex-sdk/dist/src/codexOptions.js +0 -2
  78. package/lib/codex-sdk/dist/src/codexOptions.js.map +0 -1
  79. package/lib/codex-sdk/dist/src/events.d.ts +0 -60
  80. package/lib/codex-sdk/dist/src/events.d.ts.map +0 -1
  81. package/lib/codex-sdk/dist/src/events.js +0 -3
  82. package/lib/codex-sdk/dist/src/events.js.map +0 -1
  83. package/lib/codex-sdk/dist/src/exec.d.ts +0 -27
  84. package/lib/codex-sdk/dist/src/exec.d.ts.map +0 -1
  85. package/lib/codex-sdk/dist/src/exec.js +0 -264
  86. package/lib/codex-sdk/dist/src/exec.js.map +0 -1
  87. package/lib/codex-sdk/dist/src/index.d.ts +0 -9
  88. package/lib/codex-sdk/dist/src/index.d.ts.map +0 -1
  89. package/lib/codex-sdk/dist/src/index.js +0 -3
  90. package/lib/codex-sdk/dist/src/index.js.map +0 -1
  91. package/lib/codex-sdk/dist/src/items.d.ts +0 -103
  92. package/lib/codex-sdk/dist/src/items.d.ts.map +0 -1
  93. package/lib/codex-sdk/dist/src/items.js +0 -3
  94. package/lib/codex-sdk/dist/src/items.js.map +0 -1
  95. package/lib/codex-sdk/dist/src/outputSchemaFile.d.ts +0 -6
  96. package/lib/codex-sdk/dist/src/outputSchemaFile.d.ts.map +0 -1
  97. package/lib/codex-sdk/dist/src/outputSchemaFile.js +0 -33
  98. package/lib/codex-sdk/dist/src/outputSchemaFile.js.map +0 -1
  99. package/lib/codex-sdk/dist/src/thread.d.ts +0 -41
  100. package/lib/codex-sdk/dist/src/thread.d.ts.map +0 -1
  101. package/lib/codex-sdk/dist/src/thread.js +0 -109
  102. package/lib/codex-sdk/dist/src/thread.js.map +0 -1
  103. package/lib/codex-sdk/dist/src/threadOptions.d.ts +0 -16
  104. package/lib/codex-sdk/dist/src/threadOptions.d.ts.map +0 -1
  105. package/lib/codex-sdk/dist/src/threadOptions.js +0 -2
  106. package/lib/codex-sdk/dist/src/threadOptions.js.map +0 -1
  107. package/lib/codex-sdk/dist/src/turnOptions.d.ts +0 -7
  108. package/lib/codex-sdk/dist/src/turnOptions.d.ts.map +0 -1
  109. package/lib/codex-sdk/dist/src/turnOptions.js +0 -2
  110. package/lib/codex-sdk/dist/src/turnOptions.js.map +0 -1
  111. package/lib/codex-sdk/dist/tests/abort.test.d.ts +0 -2
  112. package/lib/codex-sdk/dist/tests/abort.test.d.ts.map +0 -1
  113. package/lib/codex-sdk/dist/tests/abort.test.js +0 -130
  114. package/lib/codex-sdk/dist/tests/abort.test.js.map +0 -1
  115. package/lib/codex-sdk/dist/tests/codexExecSpy.d.ts +0 -6
  116. package/lib/codex-sdk/dist/tests/codexExecSpy.d.ts.map +0 -1
  117. package/lib/codex-sdk/dist/tests/codexExecSpy.js +0 -28
  118. package/lib/codex-sdk/dist/tests/codexExecSpy.js.map +0 -1
  119. package/lib/codex-sdk/dist/tests/responsesProxy.d.ts +0 -56
  120. package/lib/codex-sdk/dist/tests/responsesProxy.d.ts.map +0 -1
  121. package/lib/codex-sdk/dist/tests/responsesProxy.js +0 -155
  122. package/lib/codex-sdk/dist/tests/responsesProxy.js.map +0 -1
  123. package/lib/codex-sdk/dist/tests/run.test.d.ts +0 -2
  124. package/lib/codex-sdk/dist/tests/run.test.d.ts.map +0 -1
  125. package/lib/codex-sdk/dist/tests/run.test.js +0 -524
  126. package/lib/codex-sdk/dist/tests/run.test.js.map +0 -1
  127. package/lib/codex-sdk/dist/tests/runStreamed.test.d.ts +0 -2
  128. package/lib/codex-sdk/dist/tests/runStreamed.test.d.ts.map +0 -1
  129. package/lib/codex-sdk/dist/tests/runStreamed.test.js +0 -153
  130. package/lib/codex-sdk/dist/tests/runStreamed.test.js.map +0 -1
  131. package/lib/codex-sdk/dist/tsup.config.d.ts +0 -3
  132. package/lib/codex-sdk/dist/tsup.config.js +0 -12
  133. package/lib/codex-sdk/eslint.config.js +0 -21
  134. package/lib/codex-sdk/jest.config.cjs +0 -31
  135. package/lib/codex-sdk/package.json +0 -65
  136. package/lib/codex-sdk/samples/basic_streaming.ts +0 -90
  137. package/lib/codex-sdk/samples/helpers.ts +0 -8
  138. package/lib/codex-sdk/samples/structured_output.ts +0 -22
  139. package/lib/codex-sdk/samples/structured_output_zod.ts +0 -19
  140. package/lib/codex-sdk/src/codex.ts +0 -38
  141. package/lib/codex-sdk/src/codexOptions.ts +0 -10
  142. package/lib/codex-sdk/src/events.ts +0 -80
  143. package/lib/codex-sdk/src/exec.ts +0 -336
  144. package/lib/codex-sdk/src/index.ts +0 -39
  145. package/lib/codex-sdk/src/items.ts +0 -127
  146. package/lib/codex-sdk/src/outputSchemaFile.ts +0 -40
  147. package/lib/codex-sdk/src/thread.ts +0 -155
  148. package/lib/codex-sdk/src/threadOptions.ts +0 -18
  149. package/lib/codex-sdk/src/turnOptions.ts +0 -6
  150. package/lib/codex-sdk/tests/abort.test.ts +0 -165
  151. package/lib/codex-sdk/tests/codexExecSpy.ts +0 -37
  152. package/lib/codex-sdk/tests/responsesProxy.ts +0 -225
  153. package/lib/codex-sdk/tests/run.test.ts +0 -687
  154. package/lib/codex-sdk/tests/runStreamed.test.ts +0 -211
@@ -1,211 +0,0 @@
1
- import path from "node:path";
2
-
3
- import { describe, expect, it } from "@jest/globals";
4
-
5
- import { Codex } from "../src/codex";
6
- import { ThreadEvent } from "../src/index";
7
-
8
- import {
9
- assistantMessage,
10
- responseCompleted,
11
- responseStarted,
12
- sse,
13
- startResponsesTestProxy,
14
- } from "./responsesProxy";
15
-
16
- const codexExecPath = path.join(process.cwd(), "..", "..", "codex-rs", "target", "debug", "codex");
17
-
18
- describe("Codex", () => {
19
- it("returns thread events", async () => {
20
- const { url, close } = await startResponsesTestProxy({
21
- statusCode: 200,
22
- responseBodies: [sse(responseStarted(), assistantMessage("Hi!"), responseCompleted())],
23
- });
24
-
25
- try {
26
- const client = new Codex({ codexPathOverride: codexExecPath, baseUrl: url, apiKey: "test" });
27
-
28
- const thread = client.startThread();
29
- const result = await thread.runStreamed("Hello, world!");
30
-
31
- const events: ThreadEvent[] = [];
32
- for await (const event of result.events) {
33
- events.push(event);
34
- }
35
-
36
- expect(events).toEqual([
37
- {
38
- type: "thread.started",
39
- thread_id: expect.any(String),
40
- },
41
- {
42
- type: "turn.started",
43
- },
44
- {
45
- type: "item.completed",
46
- item: {
47
- id: "item_0",
48
- type: "agent_message",
49
- text: "Hi!",
50
- },
51
- },
52
- {
53
- type: "turn.completed",
54
- usage: {
55
- cached_input_tokens: 12,
56
- input_tokens: 42,
57
- output_tokens: 5,
58
- },
59
- },
60
- ]);
61
- expect(thread.id).toEqual(expect.any(String));
62
- } finally {
63
- await close();
64
- }
65
- });
66
-
67
- it("sends previous items when runStreamed is called twice", async () => {
68
- const { url, close, requests } = await startResponsesTestProxy({
69
- statusCode: 200,
70
- responseBodies: [
71
- sse(
72
- responseStarted("response_1"),
73
- assistantMessage("First response", "item_1"),
74
- responseCompleted("response_1"),
75
- ),
76
- sse(
77
- responseStarted("response_2"),
78
- assistantMessage("Second response", "item_2"),
79
- responseCompleted("response_2"),
80
- ),
81
- ],
82
- });
83
-
84
- try {
85
- const client = new Codex({ codexPathOverride: codexExecPath, baseUrl: url, apiKey: "test" });
86
-
87
- const thread = client.startThread();
88
- const first = await thread.runStreamed("first input");
89
- await drainEvents(first.events);
90
-
91
- const second = await thread.runStreamed("second input");
92
- await drainEvents(second.events);
93
-
94
- // Check second request continues the same thread
95
- expect(requests.length).toBeGreaterThanOrEqual(2);
96
- const secondRequest = requests[1];
97
- expect(secondRequest).toBeDefined();
98
- const payload = secondRequest!.json;
99
-
100
- const assistantEntry = payload.input.find(
101
- (entry: { role: string }) => entry.role === "assistant",
102
- );
103
- expect(assistantEntry).toBeDefined();
104
- const assistantText = assistantEntry?.content?.find(
105
- (item: { type: string; text: string }) => item.type === "output_text",
106
- )?.text;
107
- expect(assistantText).toBe("First response");
108
- } finally {
109
- await close();
110
- }
111
- });
112
-
113
- it("resumes thread by id when streaming", async () => {
114
- const { url, close, requests } = await startResponsesTestProxy({
115
- statusCode: 200,
116
- responseBodies: [
117
- sse(
118
- responseStarted("response_1"),
119
- assistantMessage("First response", "item_1"),
120
- responseCompleted("response_1"),
121
- ),
122
- sse(
123
- responseStarted("response_2"),
124
- assistantMessage("Second response", "item_2"),
125
- responseCompleted("response_2"),
126
- ),
127
- ],
128
- });
129
-
130
- try {
131
- const client = new Codex({ codexPathOverride: codexExecPath, baseUrl: url, apiKey: "test" });
132
-
133
- const originalThread = client.startThread();
134
- const first = await originalThread.runStreamed("first input");
135
- await drainEvents(first.events);
136
-
137
- const resumedThread = client.resumeThread(originalThread.id!);
138
- const second = await resumedThread.runStreamed("second input");
139
- await drainEvents(second.events);
140
-
141
- expect(resumedThread.id).toBe(originalThread.id);
142
-
143
- expect(requests.length).toBeGreaterThanOrEqual(2);
144
- const secondRequest = requests[1];
145
- expect(secondRequest).toBeDefined();
146
- const payload = secondRequest!.json;
147
-
148
- const assistantEntry = payload.input.find(
149
- (entry: { role: string }) => entry.role === "assistant",
150
- );
151
- expect(assistantEntry).toBeDefined();
152
- const assistantText = assistantEntry?.content?.find(
153
- (item: { type: string; text: string }) => item.type === "output_text",
154
- )?.text;
155
- expect(assistantText).toBe("First response");
156
- } finally {
157
- await close();
158
- }
159
- });
160
-
161
- it("applies output schema turn options when streaming", async () => {
162
- const { url, close, requests } = await startResponsesTestProxy({
163
- statusCode: 200,
164
- responseBodies: [
165
- sse(
166
- responseStarted("response_1"),
167
- assistantMessage("Structured response", "item_1"),
168
- responseCompleted("response_1"),
169
- ),
170
- ],
171
- });
172
-
173
- const schema = {
174
- type: "object",
175
- properties: {
176
- answer: { type: "string" },
177
- },
178
- required: ["answer"],
179
- additionalProperties: false,
180
- } as const;
181
-
182
- try {
183
- const client = new Codex({ codexPathOverride: codexExecPath, baseUrl: url, apiKey: "test" });
184
-
185
- const thread = client.startThread();
186
- const streamed = await thread.runStreamed("structured", { outputSchema: schema });
187
- await drainEvents(streamed.events);
188
-
189
- expect(requests.length).toBeGreaterThanOrEqual(1);
190
- const payload = requests[0];
191
- expect(payload).toBeDefined();
192
- const text = payload!.json.text;
193
- expect(text).toBeDefined();
194
- expect(text?.format).toEqual({
195
- name: "codex_output_schema",
196
- type: "json_schema",
197
- strict: true,
198
- schema,
199
- });
200
- } finally {
201
- await close();
202
- }
203
- });
204
- });
205
-
206
- async function drainEvents(events: AsyncGenerator<ThreadEvent>): Promise<void> {
207
- let done = false;
208
- do {
209
- done = (await events.next()).done ?? false;
210
- } while (!done);
211
- }