@osovv/vv-opencode 1.2.6 → 1.2.8

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 (53) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +29 -2
  3. package/dist/commands/patch-provider.js +2 -0
  4. package/dist/commands/patch-provider.js.map +1 -1
  5. package/dist/commands/plugin-list.js +8 -3
  6. package/dist/commands/plugin-list.js.map +1 -1
  7. package/dist/commands/plugin-toggle.js +8 -1
  8. package/dist/commands/plugin-toggle.js.map +1 -1
  9. package/dist/lib/plugin-toggle-config.d.ts +5 -1
  10. package/dist/lib/plugin-toggle-config.js +15 -10
  11. package/dist/lib/plugin-toggle-config.js.map +1 -1
  12. package/dist/lib/vvoc-config.d.ts +33 -1
  13. package/dist/lib/vvoc-config.js +49 -1
  14. package/dist/lib/vvoc-config.js.map +1 -1
  15. package/dist/plugins/hashline-edit/diff-summary.d.ts +7 -0
  16. package/dist/plugins/hashline-edit/diff-summary.js +79 -0
  17. package/dist/plugins/hashline-edit/diff-summary.js.map +1 -0
  18. package/dist/plugins/hashline-edit/edit-operation-primitives.d.ts +2 -2
  19. package/dist/plugins/hashline-edit/edit-operation-primitives.js +56 -37
  20. package/dist/plugins/hashline-edit/edit-operation-primitives.js.map +1 -1
  21. package/dist/plugins/hashline-edit/edit-operations.d.ts +1 -0
  22. package/dist/plugins/hashline-edit/edit-operations.js +17 -10
  23. package/dist/plugins/hashline-edit/edit-operations.js.map +1 -1
  24. package/dist/plugins/hashline-edit/edit-text-normalization.d.ts +27 -4
  25. package/dist/plugins/hashline-edit/edit-text-normalization.js +45 -56
  26. package/dist/plugins/hashline-edit/edit-text-normalization.js.map +1 -1
  27. package/dist/plugins/hashline-edit/index.js +331 -35
  28. package/dist/plugins/hashline-edit/index.js.map +1 -1
  29. package/dist/plugins/hashline-edit/normalize-edits.js +56 -20
  30. package/dist/plugins/hashline-edit/normalize-edits.js.map +1 -1
  31. package/dist/plugins/hashline-edit/replace-engine.d.ts +24 -0
  32. package/dist/plugins/hashline-edit/replace-engine.js +246 -0
  33. package/dist/plugins/hashline-edit/replace-engine.js.map +1 -0
  34. package/dist/plugins/hashline-edit/routing.d.ts +21 -0
  35. package/dist/plugins/hashline-edit/routing.js +113 -0
  36. package/dist/plugins/hashline-edit/routing.js.map +1 -0
  37. package/dist/plugins/hashline-edit/session-state.d.ts +23 -0
  38. package/dist/plugins/hashline-edit/session-state.js +70 -0
  39. package/dist/plugins/hashline-edit/session-state.js.map +1 -0
  40. package/dist/plugins/hashline-edit/str-replace-editor.d.ts +50 -0
  41. package/dist/plugins/hashline-edit/str-replace-editor.js +285 -0
  42. package/dist/plugins/hashline-edit/str-replace-editor.js.map +1 -0
  43. package/dist/plugins/hashline-edit/tool-description.d.ts +2 -1
  44. package/dist/plugins/hashline-edit/tool-description.js +44 -18
  45. package/dist/plugins/hashline-edit/tool-description.js.map +1 -1
  46. package/dist/plugins/hashline-edit/validation.d.ts +1 -0
  47. package/dist/plugins/hashline-edit/validation.js +13 -3
  48. package/dist/plugins/hashline-edit/validation.js.map +1 -1
  49. package/package.json +1 -1
  50. package/schemas/vvoc/v3.json +29 -2
  51. package/dist/plugins/hashline-edit/autocorrect-replacement-lines.d.ts +0 -1
  52. package/dist/plugins/hashline-edit/autocorrect-replacement-lines.js +0 -188
  53. package/dist/plugins/hashline-edit/autocorrect-replacement-lines.js.map +0 -1
@@ -1,31 +1,36 @@
1
1
  // FILE: src/plugins/hashline-edit/index.ts
2
- // VERSION: 0.6.0
2
+ // VERSION: 0.8.0
3
3
  // START_MODULE_CONTRACT
4
- // PURPOSE: Override OpenCode's default `edit` tool with a hash-anchored edit implementation and hash-aware read output with context-anchored hash references.
5
- // SCOPE: Hashline-backed edit tool registration, read-output transformation with anchor hashes, anchor validation, file mutation execution, and success metadata emission.
6
- // DEPENDS: [@opencode-ai/plugin, src/lib/config-layers.ts, src/lib/plugin-toggle-config.ts, src/plugins/hashline-edit/edit-operations.ts, src/plugins/hashline-edit/file-text-canonicalization.ts, src/plugins/hashline-edit/hash-computation.ts, src/plugins/hashline-edit/normalize-edits.ts, src/plugins/hashline-edit/tool-description.ts, src/plugins/hashline-edit/validation.ts]
4
+ // PURPOSE: Route per-model edit tooling: register hashline_edit, replace-profile edit, and dsh str_replace_editor; resolve the session edit mode from vvoc routing config; expose only the profile tool to each model; and transform read output with anchors for hashline sessions.
5
+ // SCOPE: Routing config loading, session model/file caches, chat.message tool-visibility mutation, tool.execute.before safety net, routed read transformation, hashline/replace/str_replace_editor execution, bounded post-edit diff feedback, and editMode telemetry metadata.
6
+ // DEPENDS: [@opencode-ai/plugin, node:fs/promises, node:path, src/lib/config-layers.ts, src/plugins/hashline-edit/diff-summary.ts, src/plugins/hashline-edit/edit-operations.ts, src/plugins/hashline-edit/file-text-canonicalization.ts, src/plugins/hashline-edit/hash-computation.ts, src/plugins/hashline-edit/normalize-edits.ts, src/plugins/hashline-edit/replace-engine.ts, src/plugins/hashline-edit/routing.ts, src/plugins/hashline-edit/session-state.ts, src/plugins/hashline-edit/str-replace-editor.ts, src/plugins/hashline-edit/tool-description.ts, src/plugins/hashline-edit/validation.ts]
7
7
  // LINKS: [M-PLUGIN-HASHLINE-EDIT]
8
8
  // ROLE: RUNTIME
9
9
  // MAP_MODE: EXPORTS
10
10
  // END_MODULE_CONTRACT
11
11
  //
12
12
  // START_MODULE_MAP
13
- // HashlineEditPlugin - Registers the hash-anchored `edit` tool override and post-read output enhancer.
13
+ // HashlineEditPlugin - Registers routed edit tools (hashline_edit, edit, str_replace_editor), per-model tool visibility, and the routed read-output enhancer.
14
14
  // END_MODULE_MAP
15
15
  //
16
16
  // START_CHANGE_SUMMARY
17
- // LAST_CHANGE: [v0.6.0 - Hardened rename: path-equivalent source/target are detected via resolve() to avoid write-then-delete data loss, and an existing rename target is refused instead of being silently clobbered.]
17
+ // LAST_CHANGE: [v0.8.0 - Added per-model edit-format routing with native replace and dsh str_replace_editor profiles, per-model tool visibility via chat.message, safety-net rejection, and editMode telemetry.]
18
18
  // END_CHANGE_SUMMARY
19
19
  import { tool } from "@opencode-ai/plugin";
20
- import { resolve } from "node:path";
20
+ import { dirname, resolve } from "node:path";
21
+ import { mkdir, readFile, readdir, stat, writeFile } from "node:fs/promises";
22
+ import { findFirstChangedLine, summarizeEditDiff } from "./diff-summary.js";
21
23
  import { applyHashlineEditsWithReport } from "./edit-operations.js";
22
24
  import { canonicalizeFileText, restoreFileText } from "./file-text-canonicalization.js";
23
25
  import { computeAnchorHash, computeLineHash } from "./hash-computation.js";
24
26
  import { normalizeHashlineEdits } from "./normalize-edits.js";
25
- import { HASHLINE_EDIT_DESCRIPTION } from "./tool-description.js";
27
+ import { applyReplaceEdit, formatReplaceSuccess } from "./replace-engine.js";
28
+ import { parseHashlineEditPluginEntry, resolveEditMode, } from "./routing.js";
29
+ import { SessionFileCache, SessionModelCache } from "./session-state.js";
30
+ import { STR_REPLACE_EDITOR_DESCRIPTION, StrReplaceEditor, } from "./str-replace-editor.js";
31
+ import { HASHLINE_EDIT_DESCRIPTION, REPLACE_EDIT_DESCRIPTION } from "./tool-description.js";
26
32
  import { HashlineMismatchError } from "./validation.js";
27
33
  import { loadVvocConfig } from "../../lib/config-layers.js";
28
- import { isVvocPluginEnabled } from "../../lib/plugin-toggle-config.js";
29
34
  const z = tool.schema;
30
35
  const CONTENT_OPEN_TAG = "<content>";
31
36
  const CONTENT_CLOSE_TAG = "</content>";
@@ -34,23 +39,86 @@ const FILE_CLOSE_TAG = "</file>";
34
39
  const OPENCODE_LINE_TRUNCATION_SUFFIX = "... (line truncated to 2000 chars)";
35
40
  const COLON_READ_LINE_PATTERN = /^\s*(\d+): ?(.*)$/;
36
41
  const PIPE_READ_LINE_PATTERN = /^\s*(\d+)\| ?(.*)$/;
42
+ // START_BLOCK_ROUTING_CONSTANTS
43
+ const EDIT_TYPE_TOOLS = ["hashline_edit", "edit", "str_replace_editor"];
44
+ function isEditTypeTool(toolName) {
45
+ return EDIT_TYPE_TOOLS.includes(toolName);
46
+ }
47
+ function visibleToolsForMode(mode) {
48
+ switch (mode) {
49
+ case "hashline":
50
+ return ["hashline_edit"];
51
+ case "replace":
52
+ return ["edit"];
53
+ case "str_replace_editor":
54
+ return ["str_replace_editor"];
55
+ case "passthrough":
56
+ return [];
57
+ }
58
+ }
59
+ // START_BLOCK_FS_HELPERS
60
+ async function statSnapshot(filePath) {
61
+ try {
62
+ const info = await stat(filePath);
63
+ if (!info.isFile()) {
64
+ return undefined;
65
+ }
66
+ return { mtimeMs: info.mtimeMs, size: info.size };
67
+ }
68
+ catch {
69
+ return undefined;
70
+ }
71
+ }
72
+ function createNodeStrReplaceFs() {
73
+ return {
74
+ async exists(path) {
75
+ try {
76
+ await stat(path);
77
+ return true;
78
+ }
79
+ catch {
80
+ return false;
81
+ }
82
+ },
83
+ async isDirectory(path) {
84
+ try {
85
+ return (await stat(path)).isDirectory();
86
+ }
87
+ catch {
88
+ return false;
89
+ }
90
+ },
91
+ async readText(path) {
92
+ return readFile(path, "utf8");
93
+ },
94
+ async writeText(path, content) {
95
+ await writeFile(path, content, "utf8");
96
+ },
97
+ async listDir(path) {
98
+ const entries = await readdir(path, { withFileTypes: true });
99
+ return entries.map((entry) => {
100
+ const type = entry.isDirectory() ? "directory" : "file";
101
+ return { name: entry.name, type };
102
+ });
103
+ },
104
+ async stat(path) {
105
+ try {
106
+ const info = await stat(path);
107
+ return { mtimeMs: info.mtimeMs, size: info.isFile() ? info.size : 0 };
108
+ }
109
+ catch {
110
+ return undefined;
111
+ }
112
+ },
113
+ };
114
+ }
115
+ // END_BLOCK_FS_HELPERS
37
116
  function canCreateFromMissingFile(edits) {
38
117
  if (edits.length === 0) {
39
118
  return false;
40
119
  }
41
120
  return edits.every((edit) => (edit.op === "append" || edit.op === "prepend") && edit.pos === undefined);
42
121
  }
43
- function findFirstChangedLine(beforeContent, afterContent) {
44
- const beforeLines = beforeContent.split("\n");
45
- const afterLines = afterContent.split("\n");
46
- const maxLength = Math.max(beforeLines.length, afterLines.length);
47
- for (let index = 0; index < maxLength; index += 1) {
48
- if ((beforeLines[index] ?? "") !== (afterLines[index] ?? "")) {
49
- return index + 1;
50
- }
51
- }
52
- return undefined;
53
- }
54
122
  function publishSuccessMetadata(args) {
55
123
  args.context.metadata({
56
124
  title: args.filePath,
@@ -61,6 +129,9 @@ function publishSuccessMetadata(args) {
61
129
  noopEdits: args.noopEdits,
62
130
  deduplicatedEdits: args.deduplicatedEdits,
63
131
  firstChangedLine: findFirstChangedLine(args.beforeContent, args.afterContent),
132
+ editMode: args.telemetry.editMode,
133
+ providerID: args.telemetry.providerID,
134
+ modelID: args.telemetry.modelID,
64
135
  filediff: {
65
136
  file: args.filePath,
66
137
  path: args.filePath,
@@ -255,7 +326,8 @@ function transformReadOutput(output, sourceLines) {
255
326
  const result = formatReadLines(parsedLines, lines, sourceMatchesVisibleRows(sourceLines, parsedLines) ? sourceLines : undefined);
256
327
  return result.join("\n");
257
328
  }
258
- async function executeHashlineEdit(args, context) {
329
+ // START_BLOCK_HASHLINE_EXECUTE
330
+ async function executeHashlineEdit(args, context, telemetry) {
259
331
  try {
260
332
  const { filePath, rename, delete: deleteMode } = args;
261
333
  if (deleteMode && rename) {
@@ -314,8 +386,23 @@ async function executeHashlineEdit(args, context) {
314
386
  afterContent: canonicalNewContent,
315
387
  noopEdits: applyResult.noopEdits,
316
388
  deduplicatedEdits: applyResult.deduplicatedEdits,
389
+ telemetry,
317
390
  });
318
- return isMove ? `Moved ${filePath} to ${rename}` : `Updated ${effectivePath}`;
391
+ const diffSummary = summarizeEditDiff(oldEnvelope.content, canonicalNewContent);
392
+ const firstChangedLine = findFirstChangedLine(oldEnvelope.content, canonicalNewContent);
393
+ const stats = `+${diffSummary.additions}/-${diffSummary.deletions}${firstChangedLine !== undefined ? `, first change line ${firstChangedLine}` : ""}`;
394
+ const headline = isMove
395
+ ? `Moved ${filePath} to ${rename} (${stats})`
396
+ : `Updated ${effectivePath} (${stats})`;
397
+ const outputParts = [headline];
398
+ for (const warning of applyResult.warnings) {
399
+ outputParts.push(`Warning: ${warning}`);
400
+ }
401
+ if (applyResult.deduplicatedEdits > 0) {
402
+ outputParts.push(`Note: ${applyResult.deduplicatedEdits} duplicate edit(s) were applied only once.`);
403
+ }
404
+ outputParts.push(...diffSummary.rendered);
405
+ return outputParts.join("\n");
319
406
  }
320
407
  catch (error) {
321
408
  const message = error instanceof Error ? error.message : String(error);
@@ -325,13 +412,173 @@ async function executeHashlineEdit(args, context) {
325
412
  return `Error: ${message}`;
326
413
  }
327
414
  }
415
+ // END_BLOCK_HASHLINE_EXECUTE
416
+ // START_BLOCK_REPLACE_EXECUTE
417
+ async function executeReplaceEdit(args, context, sessionID, fileCache, telemetry) {
418
+ const filePath = args.filePath ?? args.file_path;
419
+ if (!filePath || filePath.trim().length === 0) {
420
+ return "Error: filePath is required (filePath or file_path)";
421
+ }
422
+ const oldString = args.oldString ?? args.old_string ?? "";
423
+ const newString = args.newString ?? args.new_string ?? "";
424
+ const replaceAll = args.replaceAll ?? args.replace_all ?? false;
425
+ try {
426
+ const fileSnapshot = await statSnapshot(filePath);
427
+ if (fileSnapshot === undefined && oldString === "") {
428
+ await mkdir(dirname(filePath), { recursive: true });
429
+ await writeFile(filePath, newString, "utf8");
430
+ const created = await statSnapshot(filePath);
431
+ if (created) {
432
+ fileCache.record(sessionID, filePath, created);
433
+ }
434
+ publishSuccessMetadata({
435
+ context,
436
+ filePath,
437
+ beforeContent: "",
438
+ afterContent: newString,
439
+ noopEdits: 0,
440
+ deduplicatedEdits: 0,
441
+ telemetry,
442
+ });
443
+ return `Created ${filePath}\n${formatReplaceSuccess(filePath, "", {
444
+ content: newString,
445
+ layer: "exact",
446
+ replacements: 1,
447
+ warnings: [],
448
+ })}`;
449
+ }
450
+ if (fileSnapshot === undefined) {
451
+ return `Error: File not found: ${filePath}`;
452
+ }
453
+ const verdict = fileCache.check(sessionID, filePath, fileSnapshot);
454
+ if (verdict === "unread") {
455
+ return `Error: ${filePath} has not been read in this session. Use the Read tool to load the file first, then retry the edit.`;
456
+ }
457
+ if (verdict === "drifted") {
458
+ return `Error: ${filePath} changed since it was last read. Re-read the file and retry the edit against the current content.`;
459
+ }
460
+ const rawContent = await readFile(filePath, "utf8");
461
+ const envelope = canonicalizeFileText(rawContent);
462
+ const result = applyReplaceEdit(envelope.content, { oldString, newString, replaceAll });
463
+ if (!result.ok) {
464
+ return `Error: ${result.error}`;
465
+ }
466
+ await writeFile(filePath, restoreFileText(result.content, envelope), "utf8");
467
+ const updated = await statSnapshot(filePath);
468
+ if (updated) {
469
+ fileCache.record(sessionID, filePath, updated);
470
+ }
471
+ publishSuccessMetadata({
472
+ context,
473
+ filePath,
474
+ beforeContent: envelope.content,
475
+ afterContent: result.content,
476
+ noopEdits: 0,
477
+ deduplicatedEdits: 0,
478
+ telemetry,
479
+ });
480
+ return formatReplaceSuccess(filePath, envelope.content, result);
481
+ }
482
+ catch (error) {
483
+ const message = error instanceof Error ? error.message : String(error);
484
+ return `Error: ${message}`;
485
+ }
486
+ }
487
+ // END_BLOCK_REPLACE_EXECUTE
488
+ // START_BLOCK_STR_REPLACE_EXECUTE
489
+ async function executeStrReplaceEditor(args, context, sessionID, fileCache, telemetry) {
490
+ const editor = new StrReplaceEditor({
491
+ fs: createNodeStrReplaceFs(),
492
+ onViewed: (path, snapshot) => fileCache.record(sessionID, path, snapshot),
493
+ checkFreshness: (path, current) => fileCache.check(sessionID, path, current),
494
+ });
495
+ const result = await editor.execute(args);
496
+ if (!result.ok) {
497
+ return `Error: ${result.error}`;
498
+ }
499
+ if (args.command !== "view") {
500
+ context.metadata({
501
+ title: args.path,
502
+ metadata: {
503
+ filePath: args.path,
504
+ path: args.path,
505
+ file: args.path,
506
+ editMode: telemetry.editMode,
507
+ providerID: telemetry.providerID,
508
+ modelID: telemetry.modelID,
509
+ },
510
+ });
511
+ }
512
+ return result.output;
513
+ }
514
+ // END_BLOCK_STR_REPLACE_EXECUTE
515
+ // START_BLOCK_PLUGIN
328
516
  export const HashlineEditPlugin = async ({ directory }) => {
329
517
  const vvoc = await loadVvocConfig({ cwd: directory });
330
- if (!isVvocPluginEnabled(vvoc.config, "hashline-edit"))
518
+ const settings = parseHashlineEditPluginEntry(vvoc.config.plugins?.["hashline-edit"]);
519
+ if (!settings.enabled)
331
520
  return {};
521
+ const routing = settings.routing;
522
+ const modelCache = new SessionModelCache();
523
+ const fileCache = new SessionFileCache();
524
+ const resolveSessionMode = (sessionID) => resolveEditMode(routing, modelCache.get(sessionID));
525
+ const telemetryFor = (sessionID) => {
526
+ const model = modelCache.get(sessionID);
527
+ return {
528
+ editMode: resolveEditMode(routing, model),
529
+ providerID: model?.providerID,
530
+ modelID: model?.modelID,
531
+ };
532
+ };
332
533
  return {
534
+ "chat.message": async (input, output) => {
535
+ const model = output.message?.model;
536
+ if (input.sessionID &&
537
+ model &&
538
+ typeof model.providerID === "string" &&
539
+ typeof model.modelID === "string") {
540
+ modelCache.set(input.sessionID, { providerID: model.providerID, modelID: model.modelID });
541
+ }
542
+ const mode = resolveEditMode(routing, model);
543
+ const visible = new Set(visibleToolsForMode(mode));
544
+ const message = output.message;
545
+ if (!message)
546
+ return;
547
+ const toolsMap = message.tools ?? {};
548
+ for (const toolName of EDIT_TYPE_TOOLS) {
549
+ if (!visible.has(toolName)) {
550
+ toolsMap[toolName] = false;
551
+ }
552
+ }
553
+ message.tools = toolsMap;
554
+ },
555
+ "tool.execute.before": async (input) => {
556
+ if (!isEditTypeTool(input.tool)) {
557
+ return;
558
+ }
559
+ const mode = resolveSessionMode(input.sessionID);
560
+ const visible = visibleToolsForMode(mode);
561
+ if (visible.includes(input.tool)) {
562
+ return;
563
+ }
564
+ const preferred = visible[0] ?? "the host-provided edit tool (for example apply_patch)";
565
+ throw new Error(`${input.tool} is not available for this session's model (edit mode: ${mode}). Use ${preferred} instead.`);
566
+ },
333
567
  "tool.execute.after": async (input, output) => {
334
- if (!isReadTool(input.tool) || typeof output.output !== "string") {
568
+ if (!isReadTool(input.tool)) {
569
+ return;
570
+ }
571
+ const filePath = readArgFilePath(input.args);
572
+ if (filePath) {
573
+ const snapshot = await statSnapshot(filePath);
574
+ if (snapshot) {
575
+ fileCache.record(input.sessionID, filePath, snapshot);
576
+ }
577
+ }
578
+ if (typeof output.output !== "string") {
579
+ return;
580
+ }
581
+ if (resolveSessionMode(input.sessionID) !== "hashline") {
335
582
  return;
336
583
  }
337
584
  if (!isHashlineEligibleReadOutput(output.output)) {
@@ -340,35 +587,84 @@ export const HashlineEditPlugin = async ({ directory }) => {
340
587
  output.output = transformReadOutput(output.output, await readSourceLines(input.args));
341
588
  },
342
589
  tool: {
343
- edit: tool({
590
+ hashline_edit: tool({
344
591
  description: HASHLINE_EDIT_DESCRIPTION,
345
592
  args: {
346
593
  filePath: z.string().describe("Absolute path to the file to edit"),
347
594
  delete: z.boolean().optional().describe("Delete the file instead of editing it"),
348
595
  rename: z.string().optional().describe("Rename the file after edits are applied"),
349
596
  edits: z
350
- .array(z
351
- .object({
597
+ .array(z.object({
352
598
  op: z.enum(["replace", "replace_range", "append", "prepend"]),
353
- pos: z.string().optional().describe("Primary anchor in LINE#HASH#ANCHOR format"),
599
+ pos: z
600
+ .string()
601
+ .optional()
602
+ .describe("Primary anchor in LINE#HASH#ANCHOR three-part format"),
354
603
  end: z
355
604
  .string()
356
605
  .optional()
357
- .describe("Range end for replace_range in LINE#HASH#ANCHOR format (required for replace_range, rejected for replace)"),
606
+ .describe("Optional range end anchor in LINE#HASH#ANCHOR format. With end, replace covers the inclusive range pos..end; required when op is replace_range."),
358
607
  lines: z
359
608
  .union([z.array(z.string()), z.string(), z.null()])
360
609
  .describe("Replacement or inserted lines as plain text content"),
361
- })
362
- .refine((obj) => !(obj.op === "replace" && Array.isArray(obj.lines) && obj.lines.length > 1), {
363
- message: "replace accepts at most 1 replacement line. " +
364
- "Use array with 1 element, a string, or null. " +
365
- "For multi-line replacement, use replace_range with pos + end.",
366
610
  }))
367
611
  .describe("Hash-anchored edit operations to apply to the file"),
368
612
  },
369
- execute: (args, context) => executeHashlineEdit(args, context),
613
+ execute: (args, context) => executeHashlineEdit(args, context, telemetryFor(context.sessionID)),
614
+ }),
615
+ edit: tool({
616
+ description: REPLACE_EDIT_DESCRIPTION,
617
+ args: {
618
+ filePath: z.string().optional().describe("Absolute path to the file to modify"),
619
+ file_path: z
620
+ .string()
621
+ .optional()
622
+ .describe("Alias of filePath (snake_case form used by some models)"),
623
+ oldString: z.string().optional().describe("Exact text to replace"),
624
+ old_string: z.string().optional().describe("Alias of oldString"),
625
+ newString: z.string().optional().describe("Replacement text"),
626
+ new_string: z.string().optional().describe("Alias of newString"),
627
+ replaceAll: z
628
+ .boolean()
629
+ .optional()
630
+ .describe("Replace every occurrence instead of requiring a unique match"),
631
+ replace_all: z.boolean().optional().describe("Alias of replaceAll"),
632
+ },
633
+ execute: (args, context) => executeReplaceEdit(args, context, context.sessionID, fileCache, telemetryFor(context.sessionID)),
634
+ }),
635
+ str_replace_editor: tool({
636
+ description: STR_REPLACE_EDITOR_DESCRIPTION,
637
+ args: {
638
+ command: z
639
+ .enum(["view", "create", "str_replace", "insert"])
640
+ .describe("The command to run: view, create, str_replace, or insert"),
641
+ path: z.string().describe("Absolute path to file or directory"),
642
+ file_text: z
643
+ .string()
644
+ .optional()
645
+ .describe("Required parameter of create command with the content of the new file"),
646
+ old_str: z
647
+ .string()
648
+ .optional()
649
+ .describe("Required parameter of str_replace command: the exact text to replace"),
650
+ new_str: z
651
+ .string()
652
+ .optional()
653
+ .describe("Optional parameter of str_replace command with the replacement text; required for insert"),
654
+ insert_line: z
655
+ .number()
656
+ .int()
657
+ .optional()
658
+ .describe("Required parameter of insert command; new_str is inserted AFTER this line"),
659
+ view_range: z
660
+ .array(z.number().int())
661
+ .optional()
662
+ .describe("Optional [start, end] line range for view; end may be -1 for end of file"),
663
+ },
664
+ execute: (args, context) => executeStrReplaceEditor(args, context, context.sessionID, fileCache, telemetryFor(context.sessionID)),
370
665
  }),
371
666
  },
372
667
  };
373
668
  };
669
+ // END_BLOCK_PLUGIN
374
670
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/index.ts"],"names":[],"mappings":"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"}