clanka 0.0.21 → 0.0.22

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.
@@ -23,7 +23,8 @@ describe("AgentTools", () => {
23
23
  expect(output).toContain("readonly path: string;");
24
24
  expect(output).toContain("readonly startLine?: number | undefined;");
25
25
  expect(output).toContain("readonly endLine?: number | undefined;");
26
- expect(output).toContain("/** Apply a git diff / unified diff patch across one or more files. */");
26
+ expect(output).toContain("readonly noIgnore?: boolean | undefined;");
27
+ expect(output).toContain("/** Apply a git diff / unified diff patch, or a wrapped apply_patch patch, across one or more files. */");
27
28
  expect(output).toContain("declare function applyPatch(patch: string): Promise<string>");
28
29
  expect(output).not.toContain("declare function python(");
29
30
  }).pipe(Effect.provide([
@@ -135,6 +136,486 @@ describe("AgentTools", () => {
135
136
  Executor.layer,
136
137
  ToolkitRenderer.layer,
137
138
  ]), Effect.provide(NodeServices.layer)));
139
+ it.effect("applies wrapped apply_patch patches", () => Effect.gen(function* () {
140
+ const fs = yield* FileSystem.FileSystem;
141
+ const tempRoot = yield* makeTempRoot("clanka-apply-patch-wrapped-");
142
+ yield* fs.makeDirectory(join(tempRoot, "src"), { recursive: true });
143
+ yield* fs.writeFileString(join(tempRoot, "src", "app.txt"), "old\n");
144
+ yield* fs.writeFileString(join(tempRoot, "obsolete.txt"), "remove me\n");
145
+ const executor = yield* Executor;
146
+ const tools = yield* AgentTools;
147
+ const output = yield* executor
148
+ .execute({
149
+ tools,
150
+ script: [
151
+ "const output = await applyPatch(`",
152
+ "*** Begin Patch",
153
+ "*** Update File: src/app.txt",
154
+ "*** Move to: src/main.txt",
155
+ "@@",
156
+ "-old",
157
+ "+new",
158
+ "*** Delete File: obsolete.txt",
159
+ "*** Add File: notes/hello.txt",
160
+ "+hello",
161
+ "*** End Patch",
162
+ "`)",
163
+ "console.log(output)",
164
+ ].join("\n"),
165
+ })
166
+ .pipe(Stream.mkString, Effect.provideServices(makeContextNoop(tempRoot)));
167
+ expect(output).toContain("A notes/hello.txt");
168
+ expect(output).toContain("M src/main.txt");
169
+ expect(output).toContain("D obsolete.txt");
170
+ expect(yield* fs.readFileString(join(tempRoot, "notes", "hello.txt"))).toBe("hello\n");
171
+ expect(yield* fs.readFileString(join(tempRoot, "src", "main.txt"))).toBe("new\n");
172
+ yield* Effect.flip(fs.readFileString(join(tempRoot, "obsolete.txt")));
173
+ yield* Effect.flip(fs.readFileString(join(tempRoot, "src", "app.txt")));
174
+ }).pipe(Effect.provide([
175
+ AgentToolHandlers,
176
+ Executor.layer,
177
+ ToolkitRenderer.layer,
178
+ ]), Effect.provide(NodeServices.layer)));
179
+ it.effect("applies larger wrapped apply_patch patches across multiple files", () => Effect.gen(function* () {
180
+ const fs = yield* FileSystem.FileSystem;
181
+ const tempRoot = yield* makeTempRoot("clanka-apply-patch-wrapped-large-");
182
+ yield* fs.makeDirectory(join(tempRoot, "src"), { recursive: true });
183
+ yield* fs.makeDirectory(join(tempRoot, "docs"), { recursive: true });
184
+ yield* fs.writeFileString(join(tempRoot, "src", "app.txt"), "alpha\nbeta\n");
185
+ yield* fs.writeFileString(join(tempRoot, "src", "config.json"), '{"enabled":false}\n');
186
+ yield* fs.writeFileString(join(tempRoot, "docs", "old.md"), "legacy\n");
187
+ yield* fs.writeFileString(join(tempRoot, "README.md"), "# Title\nOld intro\n");
188
+ const executor = yield* Executor;
189
+ const tools = yield* AgentTools;
190
+ const output = yield* executor
191
+ .execute({
192
+ tools,
193
+ script: [
194
+ "const output = await applyPatch(`",
195
+ "*** Begin Patch",
196
+ "",
197
+ "*** Update File: src/app.txt",
198
+ "*** Move to: src/main.txt",
199
+ "@@",
200
+ " alpha",
201
+ "-beta",
202
+ "+gamma",
203
+ "",
204
+ "*** Update File: src/config.json",
205
+ "@@",
206
+ '-{"enabled":false}',
207
+ '+{"enabled":true}',
208
+ "",
209
+ "*** Update File: README.md",
210
+ "@@",
211
+ " # Title",
212
+ "-Old intro",
213
+ "+New intro",
214
+ "+More details",
215
+ "",
216
+ "*** Delete File: docs/old.md",
217
+ "",
218
+ "*** Add File: docs/new.md",
219
+ "+# Docs",
220
+ "+",
221
+ "+Updated",
222
+ "",
223
+ "*** Add File: notes/todo.txt",
224
+ "+one",
225
+ "+two",
226
+ "*** End Patch",
227
+ "`)",
228
+ "console.log(output)",
229
+ ].join("\n"),
230
+ })
231
+ .pipe(Stream.mkString, Effect.provideServices(makeContextNoop(tempRoot)));
232
+ expect(output).toContain("M src/main.txt");
233
+ expect(output).toContain("M src/config.json");
234
+ expect(output).toContain("M README.md");
235
+ expect(output).toContain("D docs/old.md");
236
+ expect(output).toContain("A docs/new.md");
237
+ expect(output).toContain("A notes/todo.txt");
238
+ expect(yield* fs.readFileString(join(tempRoot, "src", "main.txt"))).toBe("alpha\ngamma\n");
239
+ expect(yield* fs.readFileString(join(tempRoot, "src", "config.json"))).toBe('{"enabled":true}\n');
240
+ expect(yield* fs.readFileString(join(tempRoot, "README.md"))).toBe("# Title\nNew intro\nMore details\n");
241
+ expect(yield* fs.readFileString(join(tempRoot, "docs", "new.md"))).toBe("# Docs\n\nUpdated\n");
242
+ expect(yield* fs.readFileString(join(tempRoot, "notes", "todo.txt"))).toBe("one\ntwo\n");
243
+ yield* Effect.flip(fs.readFileString(join(tempRoot, "docs", "old.md")));
244
+ yield* Effect.flip(fs.readFileString(join(tempRoot, "src", "app.txt")));
245
+ }).pipe(Effect.provide([
246
+ AgentToolHandlers,
247
+ Executor.layer,
248
+ ToolkitRenderer.layer,
249
+ ]), Effect.provide(NodeServices.layer)));
250
+ it.effect("chains wrapped apply_patch updates through in-memory renamed state", () => Effect.gen(function* () {
251
+ const fs = yield* FileSystem.FileSystem;
252
+ const tempRoot = yield* makeTempRoot("clanka-apply-patch-wrapped-state-");
253
+ yield* fs.makeDirectory(join(tempRoot, "src"), { recursive: true });
254
+ yield* fs.writeFileString(join(tempRoot, "src", "app.txt"), "old\n");
255
+ const executor = yield* Executor;
256
+ const tools = yield* AgentTools;
257
+ const output = yield* executor
258
+ .execute({
259
+ tools,
260
+ script: [
261
+ "const output = await applyPatch(`",
262
+ "*** Begin Patch",
263
+ "*** Update File: src/app.txt",
264
+ "*** Move to: src/main.txt",
265
+ "@@",
266
+ "-old",
267
+ "+new",
268
+ "*** Update File: src/main.txt",
269
+ "@@",
270
+ "-new",
271
+ "+newer",
272
+ "*** Add File: notes/hello.txt",
273
+ "+hello",
274
+ "*** Update File: notes/hello.txt",
275
+ "@@",
276
+ "-hello",
277
+ "+hello again",
278
+ "*** End Patch",
279
+ "`)",
280
+ "console.log(output)",
281
+ ].join("\n"),
282
+ })
283
+ .pipe(Stream.mkString, Effect.provideServices(makeContextNoop(tempRoot)));
284
+ expect(output).toContain("M src/main.txt");
285
+ expect(output).toContain("A notes/hello.txt");
286
+ expect(output).toContain("M notes/hello.txt");
287
+ expect(yield* fs.readFileString(join(tempRoot, "src", "main.txt"))).toBe("newer\n");
288
+ expect(yield* fs.readFileString(join(tempRoot, "notes", "hello.txt"))).toBe("hello again\n");
289
+ yield* Effect.flip(fs.readFileString(join(tempRoot, "src", "app.txt")));
290
+ }).pipe(Effect.provide([
291
+ AgentToolHandlers,
292
+ Executor.layer,
293
+ ToolkitRenderer.layer,
294
+ ]), Effect.provide(NodeServices.layer)));
295
+ it.effect("applies wrapped apply_patch patches with multiple hunks", () => Effect.gen(function* () {
296
+ const fs = yield* FileSystem.FileSystem;
297
+ const tempRoot = yield* makeTempRoot("clanka-apply-patch-wrapped-hunks-");
298
+ yield* fs.writeFileString(join(tempRoot, "multi.txt"), "line1\nline2\nline3\nline4\n");
299
+ const executor = yield* Executor;
300
+ const tools = yield* AgentTools;
301
+ const output = yield* executor
302
+ .execute({
303
+ tools,
304
+ script: [
305
+ "const output = await applyPatch(`",
306
+ "*** Begin Patch",
307
+ "*** Update File: multi.txt",
308
+ "@@",
309
+ "-line2",
310
+ "+changed2",
311
+ "@@",
312
+ "-line4",
313
+ "+changed4",
314
+ "*** End Patch",
315
+ "`)",
316
+ "console.log(output)",
317
+ ].join("\n"),
318
+ })
319
+ .pipe(Stream.mkString, Effect.provideServices(makeContextNoop(tempRoot)));
320
+ expect(output).toContain("M multi.txt");
321
+ expect(yield* fs.readFileString(join(tempRoot, "multi.txt"))).toBe("line1\nchanged2\nline3\nchanged4\n");
322
+ }).pipe(Effect.provide([
323
+ AgentToolHandlers,
324
+ Executor.layer,
325
+ ToolkitRenderer.layer,
326
+ ]), Effect.provide(NodeServices.layer)));
327
+ it.effect("applies realistic multi-file git patches with repeated multi-hunk updates", () => Effect.gen(function* () {
328
+ const fs = yield* FileSystem.FileSystem;
329
+ const tempRoot = yield* makeTempRoot("clanka-apply-patch-realistic-");
330
+ yield* fs.makeDirectory(join(tempRoot, "dist", "internal"), {
331
+ recursive: true,
332
+ });
333
+ const initial = [
334
+ "if (reasoningStarted && !textStarted) {",
335
+ " controller.enqueue({",
336
+ ' type: "reasoning-end",',
337
+ " id: reasoningId || generateId()",
338
+ " });",
339
+ "}",
340
+ "",
341
+ "separator",
342
+ "",
343
+ "if (reasoningStarted) {",
344
+ " controller.enqueue({",
345
+ ' type: "reasoning-end",',
346
+ " id: reasoningId || generateId()",
347
+ " });",
348
+ "}",
349
+ "",
350
+ ].join("\n");
351
+ for (const path of [
352
+ join(tempRoot, "dist", "index.js"),
353
+ join(tempRoot, "dist", "index.mjs"),
354
+ join(tempRoot, "dist", "internal", "index.js"),
355
+ join(tempRoot, "dist", "internal", "index.mjs"),
356
+ ]) {
357
+ yield* fs.writeFileString(path, initial);
358
+ }
359
+ const executor = yield* Executor;
360
+ const tools = yield* AgentTools;
361
+ const output = yield* executor
362
+ .execute({
363
+ tools,
364
+ script: [
365
+ "const output = await applyPatch(`",
366
+ "diff --git a/dist/index.js b/dist/index.js",
367
+ "index f33510a..e887a60 100644",
368
+ "--- a/dist/index.js",
369
+ "+++ b/dist/index.js",
370
+ "@@ -1,7 +1,12 @@",
371
+ " if (reasoningStarted && !textStarted) {",
372
+ " controller.enqueue({",
373
+ ' type: "reasoning-end",',
374
+ "- id: reasoningId || generateId()",
375
+ "+ id: reasoningId || generateId(),",
376
+ "+ providerMetadata: accumulatedReasoningDetails.length > 0 ? {",
377
+ "+ openrouter: {",
378
+ "+ reasoning_details: accumulatedReasoningDetails",
379
+ "+ }",
380
+ "+ } : undefined",
381
+ " });",
382
+ " }",
383
+ "@@ -10,7 +15,12 @@",
384
+ " if (reasoningStarted) {",
385
+ " controller.enqueue({",
386
+ ' type: "reasoning-end",',
387
+ "- id: reasoningId || generateId()",
388
+ "+ id: reasoningId || generateId(),",
389
+ "+ providerMetadata: accumulatedReasoningDetails.length > 0 ? {",
390
+ "+ openrouter: {",
391
+ "+ reasoning_details: accumulatedReasoningDetails",
392
+ "+ }",
393
+ "+ } : undefined",
394
+ " });",
395
+ " }",
396
+ "diff --git a/dist/index.mjs b/dist/index.mjs",
397
+ "index 8a68833..6310cb8 100644",
398
+ "--- a/dist/index.mjs",
399
+ "+++ b/dist/index.mjs",
400
+ "@@ -1,7 +1,12 @@",
401
+ " if (reasoningStarted && !textStarted) {",
402
+ " controller.enqueue({",
403
+ ' type: "reasoning-end",',
404
+ "- id: reasoningId || generateId()",
405
+ "+ id: reasoningId || generateId(),",
406
+ "+ providerMetadata: accumulatedReasoningDetails.length > 0 ? {",
407
+ "+ openrouter: {",
408
+ "+ reasoning_details: accumulatedReasoningDetails",
409
+ "+ }",
410
+ "+ } : undefined",
411
+ " });",
412
+ " }",
413
+ "@@ -10,7 +15,12 @@",
414
+ " if (reasoningStarted) {",
415
+ " controller.enqueue({",
416
+ ' type: "reasoning-end",',
417
+ "- id: reasoningId || generateId()",
418
+ "+ id: reasoningId || generateId(),",
419
+ "+ providerMetadata: accumulatedReasoningDetails.length > 0 ? {",
420
+ "+ openrouter: {",
421
+ "+ reasoning_details: accumulatedReasoningDetails",
422
+ "+ }",
423
+ "+ } : undefined",
424
+ " });",
425
+ " }",
426
+ "diff --git a/dist/internal/index.js b/dist/internal/index.js",
427
+ "index d40fa66..8dd86d1 100644",
428
+ "--- a/dist/internal/index.js",
429
+ "+++ b/dist/internal/index.js",
430
+ "@@ -1,7 +1,12 @@",
431
+ " if (reasoningStarted && !textStarted) {",
432
+ " controller.enqueue({",
433
+ ' type: "reasoning-end",',
434
+ "- id: reasoningId || generateId()",
435
+ "+ id: reasoningId || generateId(),",
436
+ "+ providerMetadata: accumulatedReasoningDetails.length > 0 ? {",
437
+ "+ openrouter: {",
438
+ "+ reasoning_details: accumulatedReasoningDetails",
439
+ "+ }",
440
+ "+ } : undefined",
441
+ " });",
442
+ " }",
443
+ "@@ -10,7 +15,12 @@",
444
+ " if (reasoningStarted) {",
445
+ " controller.enqueue({",
446
+ ' type: "reasoning-end",',
447
+ "- id: reasoningId || generateId()",
448
+ "+ id: reasoningId || generateId(),",
449
+ "+ providerMetadata: accumulatedReasoningDetails.length > 0 ? {",
450
+ "+ openrouter: {",
451
+ "+ reasoning_details: accumulatedReasoningDetails",
452
+ "+ }",
453
+ "+ } : undefined",
454
+ " });",
455
+ " }",
456
+ "diff --git a/dist/internal/index.mjs b/dist/internal/index.mjs",
457
+ "index b0ed9d1..5695930 100644",
458
+ "--- a/dist/internal/index.mjs",
459
+ "+++ b/dist/internal/index.mjs",
460
+ "@@ -1,7 +1,12 @@",
461
+ " if (reasoningStarted && !textStarted) {",
462
+ " controller.enqueue({",
463
+ ' type: "reasoning-end",',
464
+ "- id: reasoningId || generateId()",
465
+ "+ id: reasoningId || generateId(),",
466
+ "+ providerMetadata: accumulatedReasoningDetails.length > 0 ? {",
467
+ "+ openrouter: {",
468
+ "+ reasoning_details: accumulatedReasoningDetails",
469
+ "+ }",
470
+ "+ } : undefined",
471
+ " });",
472
+ " }",
473
+ "@@ -10,7 +15,12 @@",
474
+ " if (reasoningStarted) {",
475
+ " controller.enqueue({",
476
+ ' type: "reasoning-end",',
477
+ "- id: reasoningId || generateId()",
478
+ "+ id: reasoningId || generateId(),",
479
+ "+ providerMetadata: accumulatedReasoningDetails.length > 0 ? {",
480
+ "+ openrouter: {",
481
+ "+ reasoning_details: accumulatedReasoningDetails",
482
+ "+ }",
483
+ "+ } : undefined",
484
+ " });",
485
+ " }",
486
+ "`)",
487
+ "console.log(output)",
488
+ ].join("\n"),
489
+ })
490
+ .pipe(Stream.mkString, Effect.provideServices(makeContextNoop(tempRoot)));
491
+ expect(output).toContain("M dist/index.js");
492
+ expect(output).toContain("M dist/index.mjs");
493
+ expect(output).toContain("M dist/internal/index.js");
494
+ expect(output).toContain("M dist/internal/index.mjs");
495
+ const expected = [
496
+ "if (reasoningStarted && !textStarted) {",
497
+ " controller.enqueue({",
498
+ ' type: "reasoning-end",',
499
+ " id: reasoningId || generateId(),",
500
+ " providerMetadata: accumulatedReasoningDetails.length > 0 ? {",
501
+ " openrouter: {",
502
+ " reasoning_details: accumulatedReasoningDetails",
503
+ " }",
504
+ " } : undefined",
505
+ " });",
506
+ "}",
507
+ "",
508
+ "separator",
509
+ "",
510
+ "if (reasoningStarted) {",
511
+ " controller.enqueue({",
512
+ ' type: "reasoning-end",',
513
+ " id: reasoningId || generateId(),",
514
+ " providerMetadata: accumulatedReasoningDetails.length > 0 ? {",
515
+ " openrouter: {",
516
+ " reasoning_details: accumulatedReasoningDetails",
517
+ " }",
518
+ " } : undefined",
519
+ " });",
520
+ "}",
521
+ "",
522
+ ].join("\n");
523
+ for (const path of [
524
+ join(tempRoot, "dist", "index.js"),
525
+ join(tempRoot, "dist", "index.mjs"),
526
+ join(tempRoot, "dist", "internal", "index.js"),
527
+ join(tempRoot, "dist", "internal", "index.mjs"),
528
+ ]) {
529
+ expect(yield* fs.readFileString(path)).toBe(expected);
530
+ }
531
+ }).pipe(Effect.provide([
532
+ AgentToolHandlers,
533
+ Executor.layer,
534
+ ToolkitRenderer.layer,
535
+ ]), Effect.provide(NodeServices.layer)));
536
+ it.effect("fails multi-file git patches atomically", () => Effect.gen(function* () {
537
+ const fs = yield* FileSystem.FileSystem;
538
+ const tempRoot = yield* makeTempRoot("clanka-apply-patch-git-fail-");
539
+ yield* fs.makeDirectory(join(tempRoot, "src"), { recursive: true });
540
+ yield* fs.writeFileString(join(tempRoot, "src", "app.txt"), "old\n");
541
+ yield* fs.writeFileString(join(tempRoot, "keep.txt"), "keep\n");
542
+ const executor = yield* Executor;
543
+ const tools = yield* AgentTools;
544
+ const output = yield* executor
545
+ .execute({
546
+ tools,
547
+ script: [
548
+ "await applyPatch(`",
549
+ "diff --git a/src/app.txt b/src/main.txt",
550
+ "similarity index 100%",
551
+ "rename from src/app.txt",
552
+ "rename to src/main.txt",
553
+ "--- a/src/app.txt",
554
+ "+++ b/src/main.txt",
555
+ "@@ -1 +1 @@",
556
+ "-missing",
557
+ "+new",
558
+ "diff --git a/keep.txt b/keep.txt",
559
+ "deleted file mode 100644",
560
+ "--- a/keep.txt",
561
+ "+++ /dev/null",
562
+ "diff --git a/dev/null b/notes/hello.txt",
563
+ "new file mode 100644",
564
+ "--- /dev/null",
565
+ "+++ b/notes/hello.txt",
566
+ "@@ -0,0 +1 @@",
567
+ "+hello",
568
+ "`)",
569
+ ].join("\n"),
570
+ })
571
+ .pipe(Stream.mkString, Effect.provideServices(makeContextNoop(tempRoot)));
572
+ expect(output).toContain("applyPatch verification failed");
573
+ expect(output).toContain("Failed to find expected lines");
574
+ expect(yield* fs.readFileString(join(tempRoot, "src", "app.txt"))).toBe("old\n");
575
+ expect(yield* fs.readFileString(join(tempRoot, "keep.txt"))).toBe("keep\n");
576
+ yield* Effect.flip(fs.readFileString(join(tempRoot, "src", "main.txt")));
577
+ yield* Effect.flip(fs.readFileString(join(tempRoot, "notes", "hello.txt")));
578
+ }).pipe(Effect.provide([
579
+ AgentToolHandlers,
580
+ Executor.layer,
581
+ ToolkitRenderer.layer,
582
+ ]), Effect.provide(NodeServices.layer)));
583
+ it.effect("fails wrapped apply_patch patches atomically", () => Effect.gen(function* () {
584
+ const fs = yield* FileSystem.FileSystem;
585
+ const tempRoot = yield* makeTempRoot("clanka-apply-patch-wrapped-fail-");
586
+ yield* fs.makeDirectory(join(tempRoot, "src"), { recursive: true });
587
+ yield* fs.writeFileString(join(tempRoot, "src", "app.txt"), "old\n");
588
+ yield* fs.writeFileString(join(tempRoot, "keep.txt"), "keep\n");
589
+ const executor = yield* Executor;
590
+ const tools = yield* AgentTools;
591
+ const output = yield* executor
592
+ .execute({
593
+ tools,
594
+ script: [
595
+ "await applyPatch(`",
596
+ "*** Begin Patch",
597
+ "*** Update File: src/app.txt",
598
+ "@@",
599
+ "-missing",
600
+ "+new",
601
+ "*** Delete File: keep.txt",
602
+ "*** Add File: notes/hello.txt",
603
+ "+hello",
604
+ "*** End Patch",
605
+ "`)",
606
+ ].join("\n"),
607
+ })
608
+ .pipe(Stream.mkString, Effect.provideServices(makeContextNoop(tempRoot)));
609
+ expect(output).toContain("applyPatch verification failed");
610
+ expect(output).toContain("Failed to find expected lines");
611
+ expect(yield* fs.readFileString(join(tempRoot, "src", "app.txt"))).toBe("old\n");
612
+ expect(yield* fs.readFileString(join(tempRoot, "keep.txt"))).toBe("keep\n");
613
+ yield* Effect.flip(fs.readFileString(join(tempRoot, "notes", "hello.txt")));
614
+ }).pipe(Effect.provide([
615
+ AgentToolHandlers,
616
+ Executor.layer,
617
+ ToolkitRenderer.layer,
618
+ ]), Effect.provide(NodeServices.layer)));
138
619
  it.effect("renames a file", () => Effect.gen(function* () {
139
620
  const fs = yield* FileSystem.FileSystem;
140
621
  const tempRoot = yield* makeTempRoot("clanka-rename-file-");
@@ -162,5 +643,72 @@ describe("AgentTools", () => {
162
643
  ToolkitRenderer.layer,
163
644
  NodeFileSystem.layer,
164
645
  ]), Effect.provide(NodeServices.layer)));
646
+ it.effect("rg respects ignore files by default and can disable them", () => Effect.gen(function* () {
647
+ const fs = yield* FileSystem.FileSystem;
648
+ const tempRoot = yield* makeTempRoot("clanka-rg-ignore-");
649
+ yield* fs.writeFileString(join(tempRoot, ".ignore"), "ignored.txt\n");
650
+ yield* fs.writeFileString(join(tempRoot, "visible.txt"), "match visible\n");
651
+ yield* fs.writeFileString(join(tempRoot, "ignored.txt"), "match ignored\n");
652
+ const executor = yield* Executor;
653
+ const tools = yield* AgentTools;
654
+ const defaultOutput = yield* executor
655
+ .execute({
656
+ tools,
657
+ script: [
658
+ 'const output = await rg({ pattern: "match" })',
659
+ "console.log(output)",
660
+ ].join("\n"),
661
+ })
662
+ .pipe(Stream.mkString, Effect.provideServices(makeContextNoop(tempRoot)));
663
+ expect(defaultOutput).toContain("visible.txt:1:match visible");
664
+ expect(defaultOutput).not.toContain("ignored.txt:1:match ignored");
665
+ const noIgnoreOutput = yield* executor
666
+ .execute({
667
+ tools,
668
+ script: [
669
+ 'const output = await rg({ pattern: "match", noIgnore: true })',
670
+ "console.log(output)",
671
+ ].join("\n"),
672
+ })
673
+ .pipe(Stream.mkString, Effect.provideServices(makeContextNoop(tempRoot)));
674
+ expect(noIgnoreOutput).toContain("visible.txt:1:match visible");
675
+ expect(noIgnoreOutput).toContain("ignored.txt:1:match ignored");
676
+ }).pipe(Effect.provide([
677
+ AgentToolHandlers,
678
+ Executor.layer,
679
+ ToolkitRenderer.layer,
680
+ ]), Effect.provide(NodeServices.layer)));
681
+ it.effect("rg combines noIgnore with glob and maxLines", () => Effect.gen(function* () {
682
+ const fs = yield* FileSystem.FileSystem;
683
+ const tempRoot = yield* makeTempRoot("clanka-rg-no-ignore-glob-");
684
+ yield* fs.writeFileString(join(tempRoot, ".ignore"), "ignored-*.txt\n");
685
+ yield* fs.writeFileString(join(tempRoot, "ignored-a.txt"), "needle one\n");
686
+ yield* fs.writeFileString(join(tempRoot, "ignored-b.txt"), "needle two\n");
687
+ yield* fs.writeFileString(join(tempRoot, "visible.txt"), "needle visible\n");
688
+ const executor = yield* Executor;
689
+ const tools = yield* AgentTools;
690
+ const output = yield* executor
691
+ .execute({
692
+ tools,
693
+ script: [
694
+ "const output = await rg({",
695
+ ' pattern: "needle",',
696
+ ' glob: "ignored-*.txt",',
697
+ " noIgnore: true,",
698
+ " maxLines: 1,",
699
+ "})",
700
+ "console.log(output)",
701
+ ].join("\n"),
702
+ })
703
+ .pipe(Stream.mkString, Effect.provideServices(makeContextNoop(tempRoot)));
704
+ const lines = output.trimEnd().split("\n");
705
+ expect(lines).toHaveLength(1);
706
+ expect(lines[0]).toMatch(/ignored-[ab]\.txt:1:needle (one|two)/);
707
+ expect(output).not.toContain("visible.txt:1:needle visible");
708
+ }).pipe(Effect.provide([
709
+ AgentToolHandlers,
710
+ Executor.layer,
711
+ ToolkitRenderer.layer,
712
+ ]), Effect.provide(NodeServices.layer)));
165
713
  });
166
714
  //# sourceMappingURL=AgentTools.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentTools.test.js","sourceRoot":"","sources":["../src/AgentTools.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentTools.test.js","sourceRoot":"","sources":["../src/AgentTools.test.ts"],"names":[],"mappings":"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"}