nolo-cli 0.1.32 → 0.1.33

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 (230) hide show
  1. package/README.md +0 -6
  2. package/agent-runtime/agentRecordConfig.ts +2 -0
  3. package/agent-runtime/hostAdapter.ts +1 -0
  4. package/agent-runtime/index.ts +0 -21
  5. package/agent-runtime/localToolPolicy.ts +6 -13
  6. package/agent-runtime/localWorkspaceTools.ts +30 -333
  7. package/agent-runtime/platformChatProvider.ts +1 -4
  8. package/agent-runtime/runtimeToolPolicy.ts +47 -32
  9. package/agentAliases.ts +14 -83
  10. package/agentCommandSupport.ts +3 -6
  11. package/agentInternalCommandEntries.ts +2 -13
  12. package/agentListCommands.ts +19 -28
  13. package/agentMachineCommands.ts +40 -336
  14. package/agentPullCommand.ts +36 -56
  15. package/agentRecordCommands.ts +3 -5
  16. package/agentRecordHelpers.ts +22 -189
  17. package/agentRunCommand.ts +438 -107
  18. package/agentRuntimeLocal.ts +0 -10
  19. package/ai/agent/cliExecutor.ts +19 -323
  20. package/authCommands.ts +2 -36
  21. package/cli/agentAliases.ts +14 -83
  22. package/cli/agentCommandSupport.ts +3 -6
  23. package/cli/agentInternalCommandEntries.ts +2 -13
  24. package/cli/agentListCommands.ts +19 -28
  25. package/cli/agentMachineCommands.ts +40 -336
  26. package/cli/agentPullCommand.ts +36 -56
  27. package/cli/agentRecordCommands.ts +3 -5
  28. package/cli/agentRecordHelpers.ts +22 -189
  29. package/cli/agentRunCommand.ts +438 -107
  30. package/cli/agentRuntimeLocal.ts +0 -10
  31. package/cli/authCommands.ts +2 -36
  32. package/cli/cliEnvHelpers.ts +21 -162
  33. package/cli/client/agentRun.ts +853 -57
  34. package/cli/client/localRuntimeAdapter.ts +22 -159
  35. package/cli/client/streamingOutput.ts +3 -1
  36. package/cli/client/taskRunPrompt.ts +24 -7
  37. package/cli/commandRegistry.ts +2 -3
  38. package/cli/connectorRunArtifact.ts +10 -34
  39. package/cli/connectorWebSocketTarget.ts +6 -10
  40. package/cli/internalCommandEntries.ts +0 -8
  41. package/cli/localRuntimeDb.ts +2 -39
  42. package/cli/machineCommands.ts +189 -190
  43. package/cli/machineDaemonCommands.ts +165 -9
  44. package/cli/machineHeartbeatCommands.ts +2 -1
  45. package/cli/machineStatusCommands.ts +13 -5
  46. package/cli/machineWatchCommands.ts +1 -1
  47. package/cli/machineWsRunDispatch.ts +14 -48
  48. package/cli/machineWsSession.ts +0 -2
  49. package/cli/offlineMarxistsAgentCommand.ts +314 -0
  50. package/cli/runtimeDoctorCommands.ts +69 -18
  51. package/cli/scriptCommandEntries.ts +45 -5
  52. package/cli/tableCommands.ts +133 -33
  53. package/cli/taskRunCommand.ts +211 -16
  54. package/cli/tui/session.ts +372 -43
  55. package/cli/workflowInternalCommandEntries.ts +0 -20
  56. package/cliEnvHelpers.ts +21 -162
  57. package/client/agentConfigResolver.test.ts +2 -0
  58. package/client/agentRun.test.ts +12 -208
  59. package/client/agentRun.ts +853 -57
  60. package/client/localRuntimeAdapter.test.ts +9 -168
  61. package/client/localRuntimeAdapter.ts +22 -159
  62. package/client/localToolPolicy.test.ts +4 -28
  63. package/client/streamingOutput.ts +3 -1
  64. package/client/taskRunPrompt.ts +24 -7
  65. package/commandRegistry.ts +2 -3
  66. package/connectorRunArtifact.ts +10 -34
  67. package/connectorWebSocketTarget.ts +6 -10
  68. package/database/server/db.ts +34 -15
  69. package/internalCommandEntries.ts +0 -8
  70. package/localRuntimeDb.ts +2 -39
  71. package/machineCommands.ts +189 -190
  72. package/machineDaemonCommands.ts +165 -9
  73. package/machineHeartbeatCommands.ts +2 -1
  74. package/machineStatusCommands.ts +13 -5
  75. package/machineWatchCommands.ts +1 -1
  76. package/machineWsRunDispatch.ts +14 -48
  77. package/machineWsSession.ts +0 -2
  78. package/offlineMarxistsAgentCommand.ts +314 -0
  79. package/package.json +49 -193
  80. package/runtimeDoctorCommands.ts +69 -18
  81. package/scriptCommandEntries.ts +45 -5
  82. package/tableCommands.ts +133 -33
  83. package/taskRunCommand.ts +211 -16
  84. package/tui/session.ts +372 -43
  85. package/workflowInternalCommandEntries.ts +0 -20
  86. package/agent-runtime/dialogStatus.ts +0 -139
  87. package/agent-runtime/hostRuntimeConfig.ts +0 -86
  88. package/agentCreateCustomCommands.ts +0 -278
  89. package/agentDialogsCommands.ts +0 -227
  90. package/agentDoctorCommands.ts +0 -203
  91. package/agentRunLocalWorkspace.ts +0 -182
  92. package/agentRunParsing.ts +0 -298
  93. package/agentSuperviseCommands.ts +0 -8
  94. package/agentUnpublishCommands.ts +0 -113
  95. package/ai/agent/agentRunDialogLineage.ts +0 -56
  96. package/ai/policy/types.ts +0 -64
  97. package/ai/skills/skillSummaryMarker.ts +0 -26
  98. package/app/types.ts +0 -358
  99. package/build.ts +0 -16
  100. package/buildPublish.ts +0 -138
  101. package/buildPublishArtifactAssembly.ts +0 -724
  102. package/buildPublishImportAnalysis.ts +0 -242
  103. package/chat/messages/fetchMessages.ts +0 -84
  104. package/chat/messages/types.ts +0 -185
  105. package/cli/agentCreateCustomCommands.ts +0 -278
  106. package/cli/agentDialogsCommands.ts +0 -227
  107. package/cli/agentDoctorCommands.ts +0 -203
  108. package/cli/agentRunLocalWorkspace.ts +0 -182
  109. package/cli/agentRunParsing.ts +0 -298
  110. package/cli/agentSuperviseCommands.ts +0 -8
  111. package/cli/agentUnpublishCommands.ts +0 -113
  112. package/cli/buildPublish.ts +0 -138
  113. package/cli/buildPublishArtifactAssembly.ts +0 -724
  114. package/cli/buildPublishImportAnalysis.ts +0 -242
  115. package/cli/cliIoTypes.ts +0 -3
  116. package/cli/cliRuntimeDoctorReport.ts +0 -193
  117. package/cli/client/agentRunInput.ts +0 -10
  118. package/cli/client/agentRunLocalExecution.ts +0 -124
  119. package/cli/client/agentRunLocalExecutor.ts +0 -179
  120. package/cli/client/agentRunRuntimeSelection.ts +0 -145
  121. package/cli/client/agentRunServerTransport.ts +0 -397
  122. package/cli/client/agentRunTaskRunRecorder.ts +0 -176
  123. package/cli/customCodingAgentFlow.ts +0 -208
  124. package/cli/customCodingAgentRecord.ts +0 -179
  125. package/cli/dialogDataAccess.ts +0 -186
  126. package/cli/dialogInternalCommandEntries.ts +0 -11
  127. package/cli/dialogReadCommands.ts +0 -180
  128. package/cli/dialogReadHelpers.ts +0 -226
  129. package/cli/dialogStatusCommands.ts +0 -123
  130. package/cli/docInternalCommandEntries.ts +0 -20
  131. package/cli/hybridReadHelpers.ts +0 -109
  132. package/cli/machineCommandPrompts.ts +0 -79
  133. package/cli/machineCommandResolution.ts +0 -43
  134. package/cli/noloReadBridgePrompt.ts +0 -16
  135. package/cli/pageCreateCommands.ts +0 -219
  136. package/cli/pageDeleteCommands.ts +0 -167
  137. package/cli/pageReadCommands.ts +0 -151
  138. package/cli/pageUpdateCommands.ts +0 -249
  139. package/cli/pageWriteHelpers.ts +0 -209
  140. package/cli/publishPackage.ts +0 -36
  141. package/cli/runtimeInternalCommandEntries.ts +0 -15
  142. package/cli/runtimePassthroughCommands.ts +0 -22
  143. package/cli/scriptPassthroughHelpers.ts +0 -28
  144. package/cli/secretScanHelpers.ts +0 -31
  145. package/cli/spaceAttachCommands.ts +0 -134
  146. package/cli/spaceCategoryCommands.ts +0 -263
  147. package/cli/spaceCommands.ts +0 -295
  148. package/cli/spaceDeleteCommands.ts +0 -312
  149. package/cli/spaceInternalCommandEntries.ts +0 -21
  150. package/cli/spaceMutationHelpers.ts +0 -135
  151. package/cli/spaceReadCommands.ts +0 -323
  152. package/cli/tableDataOutput.ts +0 -41
  153. package/cli/tableDataSafety.ts +0 -26
  154. package/cli/tableMetaCommands.ts +0 -307
  155. package/cli/tableMutationCommands.ts +0 -266
  156. package/cli/tableQueryParsing.ts +0 -90
  157. package/cli/tableQueryRequest.ts +0 -53
  158. package/cli/taskRunActions.ts +0 -122
  159. package/cli/taskRunParsing.ts +0 -86
  160. package/cli/taskRunPromptShared.ts +0 -55
  161. package/cli/tui/tuiCatalog.ts +0 -22
  162. package/cli/tui/tuiCommandInterpreter.ts +0 -253
  163. package/cli/tui/tuiPresentation.ts +0 -146
  164. package/cliIoTypes.ts +0 -3
  165. package/cliRuntimeDoctorReport.ts +0 -193
  166. package/client/agentRunInput.ts +0 -10
  167. package/client/agentRunLocalExecution.test.ts +0 -123
  168. package/client/agentRunLocalExecution.ts +0 -124
  169. package/client/agentRunLocalExecutor.ts +0 -179
  170. package/client/agentRunRuntimeSelection.test.ts +0 -159
  171. package/client/agentRunRuntimeSelection.ts +0 -145
  172. package/client/agentRunServerTransport.ts +0 -397
  173. package/client/agentRunTaskRunRecorder.ts +0 -176
  174. package/connector-experimental/daemonLauncher.ts +0 -223
  175. package/create/space/spaceKeys.ts +0 -65
  176. package/create/types.ts +0 -21
  177. package/customCodingAgentFlow.ts +0 -208
  178. package/customCodingAgentRecord.ts +0 -179
  179. package/database/keys.ts +0 -765
  180. package/database/server/authorityStoreTypes.ts +0 -31
  181. package/database/server/legacyServerDb.ts +0 -58
  182. package/database/server/levelAuthorityStore.ts +0 -75
  183. package/database/server/memoryAuthorityStore.ts +0 -133
  184. package/database/server/serverStoreFactory.ts +0 -124
  185. package/database/tombstones.ts +0 -52
  186. package/database/utils/ulid.ts +0 -1
  187. package/dialogDataAccess.ts +0 -186
  188. package/dialogInternalCommandEntries.ts +0 -11
  189. package/dialogReadCommands.ts +0 -180
  190. package/dialogReadHelpers.ts +0 -226
  191. package/dialogStatusCommands.ts +0 -123
  192. package/docInternalCommandEntries.ts +0 -20
  193. package/hybridReadHelpers.ts +0 -109
  194. package/machineCommandPrompts.ts +0 -79
  195. package/machineCommandResolution.ts +0 -43
  196. package/noloReadBridgePrompt.ts +0 -16
  197. package/pageCreateCommands.ts +0 -219
  198. package/pageDeleteCommands.ts +0 -167
  199. package/pageReadCommands.ts +0 -151
  200. package/pageUpdateCommands.ts +0 -249
  201. package/pageWriteHelpers.ts +0 -209
  202. package/publishPackage.ts +0 -36
  203. package/runtimeInternalCommandEntries.ts +0 -15
  204. package/runtimePassthroughCommands.ts +0 -22
  205. package/scriptPassthroughHelpers.ts +0 -28
  206. package/secretScanHelpers.ts +0 -31
  207. package/share/helpers.ts +0 -302
  208. package/share/keys.ts +0 -243
  209. package/share/types.ts +0 -100
  210. package/spaceAttachCommands.ts +0 -134
  211. package/spaceCategoryCommands.ts +0 -263
  212. package/spaceCommands.ts +0 -295
  213. package/spaceDeleteCommands.ts +0 -312
  214. package/spaceInternalCommandEntries.ts +0 -21
  215. package/spaceMutationHelpers.ts +0 -135
  216. package/spaceReadCommands.ts +0 -323
  217. package/tableDataOutput.ts +0 -41
  218. package/tableDataSafety.ts +0 -26
  219. package/tableMetaCommands.ts +0 -307
  220. package/tableMutationCommands.ts +0 -266
  221. package/tableQueryParsing.ts +0 -90
  222. package/tableQueryRequest.ts +0 -53
  223. package/taskRunActions.ts +0 -122
  224. package/taskRunParsing.ts +0 -86
  225. package/taskRunPromptShared.ts +0 -55
  226. package/tui/tuiCatalog.ts +0 -22
  227. package/tui/tuiCommandInterpreter.test.ts +0 -169
  228. package/tui/tuiCommandInterpreter.ts +0 -253
  229. package/tui/tuiPresentation.test.ts +0 -154
  230. package/tui/tuiPresentation.ts +0 -146
@@ -49,8 +49,8 @@ describe("cli agent run client", () => {
49
49
  });
50
50
 
51
51
  test("calls the Nolo HTTP API directly when AUTH_TOKEN is present", async () => {
52
- const output = new CaptureOutput();
53
- const requests: Array<{ url: string; body: any; auth: string | null }> = [];
52
+ const output = new CaptureOutput();
53
+ const requests: Array<{ url: string; body: any; auth: string | null }> = [];
54
54
 
55
55
  const result = await runAgentTurn({
56
56
  agentName: "nolo",
@@ -97,124 +97,10 @@ describe("cli agent run client", () => {
97
97
  ]);
98
98
  expect(result).toEqual({ exitCode: 0, dialogId: "dialog-1" });
99
99
  expect(output.text()).toContain("nolo -> working");
100
- expect(output.text()).toContain("nolo > hi");
100
+ expect(output.text()).toContain("nolo > hi");
101
101
  expect(output.text()).not.toContain("tokens=");
102
102
  });
103
103
 
104
- test("retries machine-bound cluster runs on a sibling server when the primary registry is unavailable", async () => {
105
- const output = new CaptureOutput();
106
- const requests: string[] = [];
107
-
108
- const result = await runAgentTurn({
109
- agentName: "frontend",
110
- agentKey: "frontend-implementer",
111
- serverUrl: "https://nolo.chat",
112
- message: "hello",
113
- scriptDir: "C:/missing/scripts",
114
- env: { AUTH_TOKEN: "token-123" },
115
- output,
116
- runtimeMode: "server",
117
- scriptPathExists: () => false,
118
- fetchImpl: async (url) => {
119
- requests.push(String(url));
120
- if (String(url) === "https://nolo.chat/api/agent/run") {
121
- return Response.json({
122
- error: "Runtime binding unavailable",
123
- reason: "bound_machine_unavailable",
124
- message: "Bound runtime machine is not available on this cluster node.",
125
- }, { status: 409 });
126
- }
127
- return Response.json({
128
- content: "cluster ok",
129
- dialogId: "dialog-us",
130
- });
131
- },
132
- });
133
-
134
- expect(result).toEqual({ exitCode: 0, dialogId: "dialog-us" });
135
- expect(requests).toEqual([
136
- "https://nolo.chat/api/agent/run",
137
- "https://us.nolo.chat/api/agent/run",
138
- ]);
139
- expect(output.text()).toContain("retrying https://us.nolo.chat");
140
- expect(output.text()).toContain("frontend > cluster ok");
141
- });
142
-
143
- test("follows an explicit retryServerBase hint before cluster sibling fallback", async () => {
144
- const output = new CaptureOutput();
145
- const requests: string[] = [];
146
-
147
- const result = await runAgentTurn({
148
- agentName: "frontend",
149
- agentKey: "frontend-implementer",
150
- serverUrl: "https://router.nolo.chat",
151
- message: "hello",
152
- scriptDir: "C:/missing/scripts",
153
- env: { AUTH_TOKEN: "token-123" },
154
- output,
155
- runtimeMode: "server",
156
- scriptPathExists: () => false,
157
- fetchImpl: async (url) => {
158
- requests.push(String(url));
159
- if (String(url) === "https://router.nolo.chat/api/agent/run") {
160
- return Response.json({
161
- error: "Runtime binding unavailable",
162
- reason: "bound_machine_unavailable",
163
- message: "Bound runtime machine is not available on this cluster node.",
164
- retryServerBase: "https://us.nolo.chat",
165
- }, { status: 409 });
166
- }
167
- return Response.json({
168
- content: "sticky ok",
169
- dialogId: "dialog-sticky",
170
- });
171
- },
172
- });
173
-
174
- expect(result).toEqual({ exitCode: 0, dialogId: "dialog-sticky" });
175
- expect(requests).toEqual([
176
- "https://router.nolo.chat/api/agent/run",
177
- "https://us.nolo.chat/api/agent/run",
178
- ]);
179
- expect(output.text()).toContain("retrying https://us.nolo.chat");
180
- expect(output.text()).toContain("frontend > sticky ok");
181
- });
182
-
183
- test("does not retry sibling cluster nodes on owner mismatch and prints the detailed binding message", async () => {
184
- const output = new CaptureOutput();
185
- const requests: string[] = [];
186
-
187
- const result = await runAgentTurn({
188
- agentName: "frontend",
189
- agentKey: "frontend-implementer",
190
- serverUrl: "https://nolo.chat",
191
- message: "hello",
192
- scriptDir: "C:/missing/scripts",
193
- env: { AUTH_TOKEN: "token-123" },
194
- output,
195
- runtimeMode: "server",
196
- scriptPathExists: () => false,
197
- fetchImpl: async (url) => {
198
- requests.push(String(url));
199
- return Response.json({
200
- error: "Runtime binding unavailable",
201
- reason: "bound_machine_owner_mismatch",
202
- message:
203
- "Bound runtime machine machine-main is online for the current caller account, " +
204
- "but this agent is bound to a different runtimeBinding.ownerUserId. " +
205
- "Rebind the agent or connect the machine under the binding owner account.",
206
- }, { status: 409 });
207
- },
208
- });
209
-
210
- expect(result).toEqual({ exitCode: 1 });
211
- expect(requests).toEqual(["https://nolo.chat/api/agent/run"]);
212
- expect(output.text()).toContain("Runtime binding unavailable");
213
- expect(output.text()).toContain("Bound runtime machine machine-main is online for the current caller account");
214
- expect(output.text()).toContain("reason=bound_machine_owner_mismatch");
215
- expect(output.text()).not.toContain("retrying https://us.nolo.chat");
216
- });
217
-
218
104
  test("prepends task-run context for HTTP agent runs", async () => {
219
105
  const output = new CaptureOutput();
220
106
  const requests: Array<{ body: any }> = [];
@@ -363,66 +249,6 @@ describe("cli agent run client", () => {
363
249
  expect(result).toEqual({ exitCode: 0, dialogId: "dialog-1" });
364
250
  });
365
251
 
366
- test("drops inherited lineage when continueDialogId is authoritative for HTTP runs and trims it", async () => {
367
- const output = new CaptureOutput();
368
- const requests: Array<{ body: any }> = [];
369
-
370
- await runAgentTurn({
371
- agentName: "nolo",
372
- agentKey: "agent-pub-test",
373
- serverUrl: "https://nolo.chat",
374
- message: "hello",
375
- continueDialogId: " dialog-existing ",
376
- inheritedFromDialogKey: "dialog-user-1-dialog-2",
377
- parentDialogId: "dialog-2",
378
- scriptDir: "C:/missing/scripts",
379
- env: { AUTH_TOKEN: "token-123" },
380
- output,
381
- runtimeMode: "server",
382
- scriptPathExists: () => false,
383
- fetchImpl: async (_url, init) => {
384
- requests.push({ body: JSON.parse(String(init?.body)) });
385
- return Response.json({ content: "ok", dialogId: "dialog-1" });
386
- },
387
- });
388
-
389
- expect(requests[0]?.body).toMatchObject({
390
- continueDialogId: "dialog-existing",
391
- });
392
- expect(requests[0]?.body).not.toHaveProperty("inheritedFromDialogKey");
393
- expect(requests[0]?.body).not.toHaveProperty("parentDialogId");
394
- });
395
-
396
- test("treats blank continueDialogId as absent for HTTP runs", async () => {
397
- const output = new CaptureOutput();
398
- const requests: Array<{ body: any }> = [];
399
-
400
- await runAgentTurn({
401
- agentName: "nolo",
402
- agentKey: "agent-pub-test",
403
- serverUrl: "https://nolo.chat",
404
- message: "hello",
405
- continueDialogId: " ",
406
- inheritedFromDialogKey: "dialog-user-1-dialog-2",
407
- parentDialogId: "dialog-2",
408
- scriptDir: "C:/missing/scripts",
409
- env: { AUTH_TOKEN: "token-123" },
410
- output,
411
- runtimeMode: "server",
412
- scriptPathExists: () => false,
413
- fetchImpl: async (_url, init) => {
414
- requests.push({ body: JSON.parse(String(init?.body)) });
415
- return Response.json({ content: "ok", dialogId: "dialog-1" });
416
- },
417
- });
418
-
419
- expect(requests[0]?.body).not.toHaveProperty("continueDialogId");
420
- expect(requests[0]?.body).toMatchObject({
421
- inheritedFromDialogKey: "dialog-user-1-dialog-2",
422
- parentDialogId: "dialog-2",
423
- });
424
- });
425
-
426
252
  test("records background task-run handoff as running instead of completed", async () => {
427
253
  const output = new CaptureOutput();
428
254
  const writebacks: any[] = [];
@@ -1040,7 +866,7 @@ describe("cli agent run client", () => {
1040
866
  expect(output.text()).toContain("queryTableRows, taskRun");
1041
867
  });
1042
868
 
1043
- test("auto mode falls back to HTTP when local config cannot be read for a non-platform agent", async () => {
869
+ test("auto mode skips known platform agents when local config cannot be read", async () => {
1044
870
  const output = new CaptureOutput();
1045
871
  const httpCalls: Array<{ url: string; body: any }> = [];
1046
872
 
@@ -1082,7 +908,7 @@ describe("cli agent run client", () => {
1082
908
  expect(result).toEqual({ exitCode: 0, dialogId: "dialog-server" });
1083
909
  expect(httpCalls).toHaveLength(1);
1084
910
  expect(httpCalls[0]?.body.agentKey).toBe(NOLO_PROJECT_MANAGER_AGENT_KEY);
1085
- expect(output.text()).toContain("nolo-project-manager -> working locally");
911
+ expect(output.text()).toContain("known platform agent");
1086
912
  expect(output.text()).toContain("nolo-project-manager -> working");
1087
913
  expect(output.text()).toContain("nolo-project-manager > server ok");
1088
914
  });
@@ -1238,8 +1064,8 @@ describe("cli agent run client", () => {
1238
1064
  expect(output.text()).toContain("Set AUTH_TOKEN");
1239
1065
  });
1240
1066
 
1241
- test("prints a friendly connection hint instead of crashing on transport errors", async () => {
1242
- const output = new CaptureOutput();
1067
+ test("prints a friendly connection hint instead of crashing on transport errors", async () => {
1068
+ const output = new CaptureOutput();
1243
1069
 
1244
1070
  const result = await runAgentTurn({
1245
1071
  agentName: "nolo",
@@ -1255,30 +1081,8 @@ describe("cli agent run client", () => {
1255
1081
  },
1256
1082
  });
1257
1083
 
1258
- expect(result).toEqual({ exitCode: 1 });
1259
- expect(output.text()).toContain("Could not reach http://127.0.0.1:38123/api/agent/run");
1260
- expect(output.text()).toContain("set NOLO_SERVER");
1261
- });
1262
-
1263
- test("mentions sandboxed network isolation for remote transport failures", async () => {
1264
- const output = new CaptureOutput();
1265
-
1266
- const result = await runAgentTurn({
1267
- agentName: "nolo",
1268
- agentKey: "agent-pub-test",
1269
- serverUrl: "https://nolo.chat",
1270
- message: "hello",
1271
- scriptDir: "C:/missing/scripts",
1272
- env: { AUTH_TOKEN: "token-123" },
1273
- output,
1274
- scriptPathExists: () => false,
1275
- fetchImpl: async () => {
1276
- throw new TypeError("Unable to connect. Is the computer able to access the url?");
1277
- },
1278
- });
1279
-
1280
- expect(result).toEqual({ exitCode: 1 });
1281
- expect(output.text()).toContain("sandboxed agent session");
1282
- expect(output.text()).toContain("host machine can reach the server");
1283
- });
1284
- });
1084
+ expect(result).toEqual({ exitCode: 1 });
1085
+ expect(output.text()).toContain("Could not reach http://127.0.0.1:38123/api/agent/run");
1086
+ expect(output.text()).toContain("set NOLO_SERVER");
1087
+ });
1088
+ });