@nomad-e/bluma-cli 0.13.0 → 0.14.1

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.
@@ -40,21 +40,21 @@
40
40
  "type": "function",
41
41
  "function": {
42
42
  "name": "edit_tool",
43
- "description": "Replaces exact text in file(s) or creates files.\n\n MANDATORY: Always call `read_file_lines` on the target file immediately before this tool. Never edit from memory or context — file content may have changed. Copy `old_string` verbatim from the read output.\n\n**Prefer batching:** use `edits` with multiple `{file_path, old_string, new_string}` entries in **one** call when you need several replacements (same or different files) to save model turns. Order matters: later entries see the result of earlier ones on the same path.\n\n**Single-file mode:** `file_path` + `old_string` + `new_string` (legacy).\n\n**Avoid line-by-line surgery:** do not chain dozens of one-line calls; batch related changes or use one wide `old_string` block.\n- After `read_file_lines`, copy a **contiguous block** with unique context into `old_string`.\n- Include 2–3 lines of surrounding context to make `old_string` unique in the file.\n- If no match, re-read the file — do not guess or adjust blindly.\n- Match indentation and whitespace **exactly** as it appears in the file.\n\n**Checklist before calling:**\n1. Did I call `read_file_lines` on this file in this turn?\n2. Is `old_string` copied verbatim from that output?\n3. Does the indentation match exactly?\n4. Is `old_string` unique in the file (no accidental double-replace)?\n\nNew file: `old_string` must be empty string.",
43
+ "description": "Replaces exact text in file(s) or creates files.\n\n MANDATORY: Always call `read_file_lines` on the target file immediately before this tool. Never edit from memory or context — file content may have changed. Copy `old_string` verbatim from the read output.\n\n**Two modes (provide ONE, not both):**\n1. **Single-edit:** `file_path` + `old_string` + `new_string` (omit `edits`).\n2. **Batch:** non-empty `edits[]` with `{file_path, old_string, new_string}` per item (omit single-edit fields).\n\n**Prefer batching:** use `edits` with multiple entries in **one** call when you need several replacements. Order matters on the same path.\n\n**Avoid line-by-line surgery:** batch related changes or use one wide `old_string` block.\n- After `read_file_lines`, copy a **contiguous block** with unique context into `old_string`.\n- Include 2–3 lines of surrounding context to make `old_string` unique in the file.\n- If no match, re-read the file — do not guess or adjust blindly.\n- Match indentation and whitespace **exactly** as it appears in the file.\n\n**Checklist before calling:**\n1. Did I call `read_file_lines` on this file in this turn?\n2. Is `old_string` copied verbatim from that output?\n3. Does the indentation match exactly?\n4. Is `old_string` unique in the file (no accidental double-replace)?\n\nNew file: `old_string` must be empty string.",
44
44
  "parameters": {
45
45
  "type": "object",
46
46
  "properties": {
47
47
  "file_path": {
48
48
  "type": "string",
49
- "description": "Path to the file (single-edit mode only). Omit when using `edits[]`."
49
+ "description": "Single-edit mode: path to the file. Do not set when using `edits[]`."
50
50
  },
51
51
  "old_string": {
52
52
  "type": "string",
53
- "description": "Exact text to replace (single-edit mode). Empty string only to create a new file. Omit when using `edits[]`."
53
+ "description": "Single-edit mode: exact text to replace. Empty string only to create a new file."
54
54
  },
55
55
  "new_string": {
56
56
  "type": "string",
57
- "description": "Replacement text (single-edit mode). Omit when using `edits[]`."
57
+ "description": "Single-edit mode: replacement text."
58
58
  },
59
59
  "expected_replacements": {
60
60
  "type": "integer",
@@ -64,7 +64,7 @@
64
64
  "edits": {
65
65
  "type": "array",
66
66
  "maxItems": 64,
67
- "description": "Batch mode: several edits in one tool invocation. Each item is one replacement. Same file: list edits in application order.",
67
+ "description": "Batch mode: several edits in one call. When set, omit file_path/old_string/new_string at the top level.",
68
68
  "items": {
69
69
  "type": "object",
70
70
  "properties": {
@@ -90,24 +90,12 @@
90
90
  "file_path",
91
91
  "old_string",
92
92
  "new_string"
93
- ]
93
+ ],
94
+ "additionalProperties": false
94
95
  }
95
96
  }
96
97
  },
97
- "anyOf": [
98
- {
99
- "required": [
100
- "file_path",
101
- "old_string",
102
- "new_string"
103
- ]
104
- },
105
- {
106
- "required": [
107
- "edits"
108
- ]
109
- }
110
- ]
98
+ "additionalProperties": false
111
99
  }
112
100
  }
113
101
  },