@northflare/runner 0.0.12 → 0.0.13

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 (77) hide show
  1. package/package.json +2 -3
  2. package/coverage/base.css +0 -224
  3. package/coverage/block-navigation.js +0 -87
  4. package/coverage/coverage-final.json +0 -12
  5. package/coverage/favicon.png +0 -0
  6. package/coverage/index.html +0 -176
  7. package/coverage/lib/index.html +0 -116
  8. package/coverage/lib/preload-script.js.html +0 -964
  9. package/coverage/prettify.css +0 -1
  10. package/coverage/prettify.js +0 -2
  11. package/coverage/sort-arrow-sprite.png +0 -0
  12. package/coverage/sorter.js +0 -196
  13. package/coverage/src/collections/index.html +0 -116
  14. package/coverage/src/collections/runner-messages.ts.html +0 -312
  15. package/coverage/src/components/claude-manager.ts.html +0 -1290
  16. package/coverage/src/components/index.html +0 -146
  17. package/coverage/src/components/message-handler.ts.html +0 -730
  18. package/coverage/src/components/repository-manager.ts.html +0 -841
  19. package/coverage/src/index.html +0 -131
  20. package/coverage/src/index.ts.html +0 -448
  21. package/coverage/src/runner.ts.html +0 -1239
  22. package/coverage/src/utils/config.ts.html +0 -780
  23. package/coverage/src/utils/console.ts.html +0 -121
  24. package/coverage/src/utils/index.html +0 -161
  25. package/coverage/src/utils/logger.ts.html +0 -475
  26. package/coverage/src/utils/status-line.ts.html +0 -445
  27. package/exceptions.log +0 -24
  28. package/lib/codex-sdk/src/codex.ts +0 -38
  29. package/lib/codex-sdk/src/codexOptions.ts +0 -10
  30. package/lib/codex-sdk/src/events.ts +0 -80
  31. package/lib/codex-sdk/src/exec.ts +0 -336
  32. package/lib/codex-sdk/src/index.ts +0 -39
  33. package/lib/codex-sdk/src/items.ts +0 -127
  34. package/lib/codex-sdk/src/outputSchemaFile.ts +0 -40
  35. package/lib/codex-sdk/src/thread.ts +0 -155
  36. package/lib/codex-sdk/src/threadOptions.ts +0 -18
  37. package/lib/codex-sdk/src/turnOptions.ts +0 -6
  38. package/lib/codex-sdk/tests/abort.test.ts +0 -165
  39. package/lib/codex-sdk/tests/codexExecSpy.ts +0 -37
  40. package/lib/codex-sdk/tests/responsesProxy.ts +0 -225
  41. package/lib/codex-sdk/tests/run.test.ts +0 -687
  42. package/lib/codex-sdk/tests/runStreamed.test.ts +0 -211
  43. package/lib/codex-sdk/tsconfig.json +0 -24
  44. package/rejections.log +0 -68
  45. package/runner.log +0 -488
  46. package/src/components/claude-sdk-manager.ts +0 -1425
  47. package/src/components/codex-sdk-manager.ts +0 -1358
  48. package/src/components/enhanced-repository-manager.ts +0 -823
  49. package/src/components/message-handler-sse.ts +0 -1097
  50. package/src/components/repository-manager.ts +0 -337
  51. package/src/index.ts +0 -168
  52. package/src/runner-sse.ts +0 -917
  53. package/src/services/RunnerAPIClient.ts +0 -175
  54. package/src/services/SSEClient.ts +0 -258
  55. package/src/types/claude.ts +0 -66
  56. package/src/types/computer-name.d.ts +0 -4
  57. package/src/types/index.ts +0 -64
  58. package/src/types/messages.ts +0 -39
  59. package/src/types/runner-interface.ts +0 -36
  60. package/src/utils/StateManager.ts +0 -187
  61. package/src/utils/config.ts +0 -327
  62. package/src/utils/console.ts +0 -15
  63. package/src/utils/debug.ts +0 -18
  64. package/src/utils/expand-env.ts +0 -22
  65. package/src/utils/logger.ts +0 -134
  66. package/src/utils/model.ts +0 -29
  67. package/src/utils/status-line.ts +0 -122
  68. package/src/utils/tool-response-sanitizer.ts +0 -160
  69. package/test-debug.sh +0 -26
  70. package/tests/retry-strategies.test.ts +0 -410
  71. package/tests/sdk-integration.test.ts +0 -329
  72. package/tests/sdk-streaming.test.ts +0 -1180
  73. package/tests/setup.ts +0 -5
  74. package/tests/test-claude-manager.ts +0 -120
  75. package/tests/tool-response-sanitizer.test.ts +0 -63
  76. package/tsconfig.json +0 -36
  77. package/vitest.config.ts +0 -27
@@ -1,312 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <title>Code coverage report for src/collections/runner-messages.ts</title>
5
- <meta charset="utf-8" />
6
- <link rel="stylesheet" href="../../prettify.css" />
7
- <link rel="stylesheet" href="../../base.css" />
8
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
9
- <meta name="viewport" content="width=device-width, initial-scale=1" />
10
- <style type="text/css">
11
- .coverage-summary .sorter {
12
- background-image: url(../../sort-arrow-sprite.png);
13
- }
14
- </style>
15
- </head>
16
-
17
- <body>
18
- <div class="wrapper">
19
- <div class="pad1">
20
- <h1>
21
- <a href="../../index.html">All files</a> /
22
- <a href="index.html">src/collections</a> runner-messages.ts
23
- </h1>
24
- <div class="clearfix">
25
- <div class="fl pad1y space-right2">
26
- <span class="strong">0% </span>
27
- <span class="quiet">Statements</span>
28
- <span class="fraction">0/76</span>
29
- </div>
30
-
31
- <div class="fl pad1y space-right2">
32
- <span class="strong">0% </span>
33
- <span class="quiet">Branches</span>
34
- <span class="fraction">0/1</span>
35
- </div>
36
-
37
- <div class="fl pad1y space-right2">
38
- <span class="strong">0% </span>
39
- <span class="quiet">Functions</span>
40
- <span class="fraction">0/1</span>
41
- </div>
42
-
43
- <div class="fl pad1y space-right2">
44
- <span class="strong">0% </span>
45
- <span class="quiet">Lines</span>
46
- <span class="fraction">0/76</span>
47
- </div>
48
- </div>
49
- <p class="quiet">
50
- Press <em>n</em> or <em>j</em> to go to the next uncovered block,
51
- <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
52
- </p>
53
- <template id="filterTemplate">
54
- <div class="quiet">
55
- Filter:
56
- <input type="search" id="fileSearch" />
57
- </div>
58
- </template>
59
- </div>
60
- <div class="status-line low"></div>
61
- <pre><table class="coverage">
62
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
63
- <a name='L2'></a><a href='#L2'>2</a>
64
- <a name='L3'></a><a href='#L3'>3</a>
65
- <a name='L4'></a><a href='#L4'>4</a>
66
- <a name='L5'></a><a href='#L5'>5</a>
67
- <a name='L6'></a><a href='#L6'>6</a>
68
- <a name='L7'></a><a href='#L7'>7</a>
69
- <a name='L8'></a><a href='#L8'>8</a>
70
- <a name='L9'></a><a href='#L9'>9</a>
71
- <a name='L10'></a><a href='#L10'>10</a>
72
- <a name='L11'></a><a href='#L11'>11</a>
73
- <a name='L12'></a><a href='#L12'>12</a>
74
- <a name='L13'></a><a href='#L13'>13</a>
75
- <a name='L14'></a><a href='#L14'>14</a>
76
- <a name='L15'></a><a href='#L15'>15</a>
77
- <a name='L16'></a><a href='#L16'>16</a>
78
- <a name='L17'></a><a href='#L17'>17</a>
79
- <a name='L18'></a><a href='#L18'>18</a>
80
- <a name='L19'></a><a href='#L19'>19</a>
81
- <a name='L20'></a><a href='#L20'>20</a>
82
- <a name='L21'></a><a href='#L21'>21</a>
83
- <a name='L22'></a><a href='#L22'>22</a>
84
- <a name='L23'></a><a href='#L23'>23</a>
85
- <a name='L24'></a><a href='#L24'>24</a>
86
- <a name='L25'></a><a href='#L25'>25</a>
87
- <a name='L26'></a><a href='#L26'>26</a>
88
- <a name='L27'></a><a href='#L27'>27</a>
89
- <a name='L28'></a><a href='#L28'>28</a>
90
- <a name='L29'></a><a href='#L29'>29</a>
91
- <a name='L30'></a><a href='#L30'>30</a>
92
- <a name='L31'></a><a href='#L31'>31</a>
93
- <a name='L32'></a><a href='#L32'>32</a>
94
- <a name='L33'></a><a href='#L33'>33</a>
95
- <a name='L34'></a><a href='#L34'>34</a>
96
- <a name='L35'></a><a href='#L35'>35</a>
97
- <a name='L36'></a><a href='#L36'>36</a>
98
- <a name='L37'></a><a href='#L37'>37</a>
99
- <a name='L38'></a><a href='#L38'>38</a>
100
- <a name='L39'></a><a href='#L39'>39</a>
101
- <a name='L40'></a><a href='#L40'>40</a>
102
- <a name='L41'></a><a href='#L41'>41</a>
103
- <a name='L42'></a><a href='#L42'>42</a>
104
- <a name='L43'></a><a href='#L43'>43</a>
105
- <a name='L44'></a><a href='#L44'>44</a>
106
- <a name='L45'></a><a href='#L45'>45</a>
107
- <a name='L46'></a><a href='#L46'>46</a>
108
- <a name='L47'></a><a href='#L47'>47</a>
109
- <a name='L48'></a><a href='#L48'>48</a>
110
- <a name='L49'></a><a href='#L49'>49</a>
111
- <a name='L50'></a><a href='#L50'>50</a>
112
- <a name='L51'></a><a href='#L51'>51</a>
113
- <a name='L52'></a><a href='#L52'>52</a>
114
- <a name='L53'></a><a href='#L53'>53</a>
115
- <a name='L54'></a><a href='#L54'>54</a>
116
- <a name='L55'></a><a href='#L55'>55</a>
117
- <a name='L56'></a><a href='#L56'>56</a>
118
- <a name='L57'></a><a href='#L57'>57</a>
119
- <a name='L58'></a><a href='#L58'>58</a>
120
- <a name='L59'></a><a href='#L59'>59</a>
121
- <a name='L60'></a><a href='#L60'>60</a>
122
- <a name='L61'></a><a href='#L61'>61</a>
123
- <a name='L62'></a><a href='#L62'>62</a>
124
- <a name='L63'></a><a href='#L63'>63</a>
125
- <a name='L64'></a><a href='#L64'>64</a>
126
- <a name='L65'></a><a href='#L65'>65</a>
127
- <a name='L66'></a><a href='#L66'>66</a>
128
- <a name='L67'></a><a href='#L67'>67</a>
129
- <a name='L68'></a><a href='#L68'>68</a>
130
- <a name='L69'></a><a href='#L69'>69</a>
131
- <a name='L70'></a><a href='#L70'>70</a>
132
- <a name='L71'></a><a href='#L71'>71</a>
133
- <a name='L72'></a><a href='#L72'>72</a>
134
- <a name='L73'></a><a href='#L73'>73</a>
135
- <a name='L74'></a><a href='#L74'>74</a>
136
- <a name='L75'></a><a href='#L75'>75</a>
137
- <a name='L76'></a><a href='#L76'>76</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
138
- <span class="cline-any cline-no">&nbsp;</span>
139
- <span class="cline-any cline-no">&nbsp;</span>
140
- <span class="cline-any cline-no">&nbsp;</span>
141
- <span class="cline-any cline-no">&nbsp;</span>
142
- <span class="cline-any cline-no">&nbsp;</span>
143
- <span class="cline-any cline-no">&nbsp;</span>
144
- <span class="cline-any cline-no">&nbsp;</span>
145
- <span class="cline-any cline-no">&nbsp;</span>
146
- <span class="cline-any cline-no">&nbsp;</span>
147
- <span class="cline-any cline-no">&nbsp;</span>
148
- <span class="cline-any cline-no">&nbsp;</span>
149
- <span class="cline-any cline-no">&nbsp;</span>
150
- <span class="cline-any cline-no">&nbsp;</span>
151
- <span class="cline-any cline-no">&nbsp;</span>
152
- <span class="cline-any cline-no">&nbsp;</span>
153
- <span class="cline-any cline-no">&nbsp;</span>
154
- <span class="cline-any cline-no">&nbsp;</span>
155
- <span class="cline-any cline-no">&nbsp;</span>
156
- <span class="cline-any cline-no">&nbsp;</span>
157
- <span class="cline-any cline-no">&nbsp;</span>
158
- <span class="cline-any cline-no">&nbsp;</span>
159
- <span class="cline-any cline-no">&nbsp;</span>
160
- <span class="cline-any cline-no">&nbsp;</span>
161
- <span class="cline-any cline-no">&nbsp;</span>
162
- <span class="cline-any cline-no">&nbsp;</span>
163
- <span class="cline-any cline-no">&nbsp;</span>
164
- <span class="cline-any cline-no">&nbsp;</span>
165
- <span class="cline-any cline-no">&nbsp;</span>
166
- <span class="cline-any cline-no">&nbsp;</span>
167
- <span class="cline-any cline-no">&nbsp;</span>
168
- <span class="cline-any cline-no">&nbsp;</span>
169
- <span class="cline-any cline-no">&nbsp;</span>
170
- <span class="cline-any cline-no">&nbsp;</span>
171
- <span class="cline-any cline-no">&nbsp;</span>
172
- <span class="cline-any cline-no">&nbsp;</span>
173
- <span class="cline-any cline-no">&nbsp;</span>
174
- <span class="cline-any cline-no">&nbsp;</span>
175
- <span class="cline-any cline-no">&nbsp;</span>
176
- <span class="cline-any cline-no">&nbsp;</span>
177
- <span class="cline-any cline-no">&nbsp;</span>
178
- <span class="cline-any cline-no">&nbsp;</span>
179
- <span class="cline-any cline-no">&nbsp;</span>
180
- <span class="cline-any cline-no">&nbsp;</span>
181
- <span class="cline-any cline-no">&nbsp;</span>
182
- <span class="cline-any cline-no">&nbsp;</span>
183
- <span class="cline-any cline-no">&nbsp;</span>
184
- <span class="cline-any cline-no">&nbsp;</span>
185
- <span class="cline-any cline-no">&nbsp;</span>
186
- <span class="cline-any cline-no">&nbsp;</span>
187
- <span class="cline-any cline-no">&nbsp;</span>
188
- <span class="cline-any cline-no">&nbsp;</span>
189
- <span class="cline-any cline-no">&nbsp;</span>
190
- <span class="cline-any cline-no">&nbsp;</span>
191
- <span class="cline-any cline-no">&nbsp;</span>
192
- <span class="cline-any cline-no">&nbsp;</span>
193
- <span class="cline-any cline-no">&nbsp;</span>
194
- <span class="cline-any cline-no">&nbsp;</span>
195
- <span class="cline-any cline-no">&nbsp;</span>
196
- <span class="cline-any cline-no">&nbsp;</span>
197
- <span class="cline-any cline-no">&nbsp;</span>
198
- <span class="cline-any cline-no">&nbsp;</span>
199
- <span class="cline-any cline-no">&nbsp;</span>
200
- <span class="cline-any cline-no">&nbsp;</span>
201
- <span class="cline-any cline-no">&nbsp;</span>
202
- <span class="cline-any cline-no">&nbsp;</span>
203
- <span class="cline-any cline-no">&nbsp;</span>
204
- <span class="cline-any cline-no">&nbsp;</span>
205
- <span class="cline-any cline-no">&nbsp;</span>
206
- <span class="cline-any cline-no">&nbsp;</span>
207
- <span class="cline-any cline-no">&nbsp;</span>
208
- <span class="cline-any cline-no">&nbsp;</span>
209
- <span class="cline-any cline-no">&nbsp;</span>
210
- <span class="cline-any cline-no">&nbsp;</span>
211
- <span class="cline-any cline-no">&nbsp;</span>
212
- <span class="cline-any cline-no">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >/**</span></span></span>
213
- <span class="cstat-no" title="statement not covered" > * Tanstack DB collection for RunnerMessages with ElectricSQL sync</span>
214
- <span class="cstat-no" title="statement not covered" > */</span>
215
- <span class="cstat-no" title="statement not covered" ></span>
216
- <span class="cstat-no" title="statement not covered" >import { createCollection } from "@tanstack/db";</span>
217
- <span class="cstat-no" title="statement not covered" >import { electricCollectionOptions } from "@tanstack/electric-db-collection";</span>
218
- <span class="cstat-no" title="statement not covered" >import { z } from "zod";</span>
219
- <span class="cstat-no" title="statement not covered" >import { RunnerConfig } from "../types";</span>
220
- <span class="cstat-no" title="statement not covered" ></span>
221
- <span class="cstat-no" title="statement not covered" >// Schema for RunnerMessage</span>
222
- <span class="cstat-no" title="statement not covered" >export const runnerMessageSchema = z.object({</span>
223
- <span class="cstat-no" title="statement not covered" > id: z.string(),</span>
224
- <span class="cstat-no" title="statement not covered" > direction: z.enum(["to_runner", "to_orchestrator"]),</span>
225
- <span class="cstat-no" title="statement not covered" > runnerId: z.string(),</span>
226
- <span class="cstat-no" title="statement not covered" > workspaceId: z.string().nullable(),</span>
227
- <span class="cstat-no" title="statement not covered" > taskId: z.string().nullable(),</span>
228
- <span class="cstat-no" title="statement not covered" > payload: z.any(), // JSONRPC 2.0 message</span>
229
- <span class="cstat-no" title="statement not covered" > processedAt: z.string().nullable(),</span>
230
- <span class="cstat-no" title="statement not covered" > expiresAt: z.string(),</span>
231
- <span class="cstat-no" title="statement not covered" > createdAt: z.string(),</span>
232
- <span class="cstat-no" title="statement not covered" >});</span>
233
- <span class="cstat-no" title="statement not covered" ></span>
234
- <span class="cstat-no" title="statement not covered" >export type RunnerMessage = z.infer&lt;typeof runnerMessageSchema&gt;;</span>
235
- <span class="cstat-no" title="statement not covered" ></span>
236
- <span class="cstat-no" title="statement not covered" >export function createRunnerMessagesCollection(config: RunnerConfig): any {</span>
237
- <span class="cstat-no" title="statement not covered" > const collection = createCollection(</span>
238
- <span class="cstat-no" title="statement not covered" > electricCollectionOptions({</span>
239
- <span class="cstat-no" title="statement not covered" > id: "runnerMessages",</span>
240
- <span class="cstat-no" title="statement not covered" > getKey: (item: RunnerMessage) =&gt; item.id,</span>
241
- <span class="cstat-no" title="statement not covered" > shapeOptions: {</span>
242
- <span class="cstat-no" title="statement not covered" > url: `${config.electricUrl}/v1/shape`,</span>
243
- <span class="cstat-no" title="statement not covered" > params: {</span>
244
- <span class="cstat-no" title="statement not covered" > table: "RunnerMessage",</span>
245
- <span class="cstat-no" title="statement not covered" > // Filter messages for this runner</span>
246
- <span class="cstat-no" title="statement not covered" > where: `direction = 'to_runner' AND runner = '${config.runnerId}'`,</span>
247
- <span class="cstat-no" title="statement not covered" > },</span>
248
- <span class="cstat-no" title="statement not covered" > headers: {</span>
249
- <span class="cstat-no" title="statement not covered" > Authorization: `Bearer ${process.env["NORTHFLARE_RUNNER_TOKEN"]}`,</span>
250
- <span class="cstat-no" title="statement not covered" > },</span>
251
- <span class="cstat-no" title="statement not covered" > },</span>
252
- <span class="cstat-no" title="statement not covered" > })</span>
253
- <span class="cstat-no" title="statement not covered" > );</span>
254
- <span class="cstat-no" title="statement not covered" ></span>
255
- <span class="cstat-no" title="statement not covered" > // Add method to mark message as processed</span>
256
- <span class="cstat-no" title="statement not covered" > const markProcessed = async (messageId: string) =&gt; {</span>
257
- <span class="cstat-no" title="statement not covered" > // Mark as processed via JSONRPC message to orchestrator</span>
258
- <span class="cstat-no" title="statement not covered" > const response = await fetch(</span>
259
- <span class="cstat-no" title="statement not covered" > `${config.orchestratorUrl}/api/runner/messages`,</span>
260
- <span class="cstat-no" title="statement not covered" > {</span>
261
- <span class="cstat-no" title="statement not covered" > method: "POST",</span>
262
- <span class="cstat-no" title="statement not covered" > headers: {</span>
263
- <span class="cstat-no" title="statement not covered" > "Content-Type": "application/json",</span>
264
- <span class="cstat-no" title="statement not covered" > "X-Runner-Id": config.runnerId || "unregistered",</span>
265
- <span class="cstat-no" title="statement not covered" > "Authorization": `Bearer ${process.env["NORTHFLARE_RUNNER_TOKEN"]}`,</span>
266
- <span class="cstat-no" title="statement not covered" > },</span>
267
- <span class="cstat-no" title="statement not covered" > body: JSON.stringify({</span>
268
- <span class="cstat-no" title="statement not covered" > jsonrpc: "2.0",</span>
269
- <span class="cstat-no" title="statement not covered" > method: "message.processed",</span>
270
- <span class="cstat-no" title="statement not covered" > params: {</span>
271
- <span class="cstat-no" title="statement not covered" > messageId,</span>
272
- <span class="cstat-no" title="statement not covered" > runnerId: config.runnerId,</span>
273
- <span class="cstat-no" title="statement not covered" > },</span>
274
- <span class="cstat-no" title="statement not covered" > }),</span>
275
- <span class="cstat-no" title="statement not covered" > }</span>
276
- <span class="cstat-no" title="statement not covered" > );</span>
277
- <span class="cstat-no" title="statement not covered" > </span>
278
- <span class="cstat-no" title="statement not covered" > if (!response.ok) {</span>
279
- <span class="cstat-no" title="statement not covered" > throw new Error(`Failed to mark message as processed: ${response.statusText}`);</span>
280
- <span class="cstat-no" title="statement not covered" > }</span>
281
- <span class="cstat-no" title="statement not covered" > };</span>
282
- <span class="cstat-no" title="statement not covered" ></span>
283
- <span class="cstat-no" title="statement not covered" > return {</span>
284
- <span class="cstat-no" title="statement not covered" > ...collection,</span>
285
- <span class="cstat-no" title="statement not covered" > markProcessed,</span>
286
- <span class="cstat-no" title="statement not covered" > };</span>
287
- <span class="cstat-no" title="statement not covered" >}</span></pre></td></tr></table></pre>
288
-
289
- <div class="push"></div>
290
- <!-- for sticky footer -->
291
- </div>
292
- <!-- /wrapper -->
293
- <div class="footer quiet pad2 space-top1 center small">
294
- Code coverage generated by
295
- <a
296
- href="https://istanbul.js.org/"
297
- target="_blank"
298
- rel="noopener noreferrer"
299
- >istanbul</a
300
- >
301
- at 2025-08-14T21:15:54.473Z
302
- </div>
303
- <script src="../../prettify.js"></script>
304
- <script>
305
- window.onload = function () {
306
- prettyPrint();
307
- };
308
- </script>
309
- <script src="../../sorter.js"></script>
310
- <script src="../../block-navigation.js"></script>
311
- </body>
312
- </html>