@cerebriline/core 4.100.255 → 4.100.256
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.
- package/assets/prompt-templates/claude.md +123 -90
- package/assets/prompt-templates/deepseek.md +62 -20
- package/assets/prompt-templates/default.md +14 -14
- package/assets/prompt-templates/gemma.md +46 -18
- package/assets/prompt-templates/glm.md +60 -35
- package/assets/prompt-templates/kimi-k3.md +41 -32
- package/assets/prompt-templates/kimi.md +35 -31
- package/assets/prompt-templates/minimax-m3.1-flash.md +563 -0
- package/assets/prompt-templates/minimax.md +72 -92
- package/assets/prompt-templates/nemotron.md +50 -78
- package/assets/prompt-templates/qwen.md +83 -69
- package/dist/cloud/index.js +1 -1
- package/dist/document-reader-child.js +13 -13
- package/dist/extensions/config/prompt-template-review.d.ts +41 -1
- package/dist/extensions/context/agentic-compaction.d.ts +2 -1
- package/dist/extensions/context/capped-thinking.d.ts +24 -2
- package/dist/extensions/context/compaction-shared.d.ts +47 -11
- package/dist/extensions/context/compaction.d.ts +1 -1
- package/dist/extensions/context/council-compaction.d.ts +3 -1
- package/dist/extensions/context/replay-compaction.d.ts +1 -1
- package/dist/extensions/context/tool-ledger.d.ts +6 -0
- package/dist/extensions/tools/edit-verification.d.ts +7 -5
- package/dist/extensions/tools/executors/bash.d.ts +22 -0
- package/dist/extensions/tools/executors/document/formats.d.ts +6 -0
- package/dist/extensions/tools/executors/read-receipts.d.ts +12 -0
- package/dist/extensions/tools/helpers.d.ts +12 -0
- package/dist/extensions/tools/list-files.d.ts +1 -1
- package/dist/extensions/tools/schemas.d.ts +32 -0
- package/dist/extensions/tools/team/delegated-agent.d.ts +8 -1
- package/dist/hub/daemon/entry.js +609 -595
- package/dist/hub/index.js +626 -612
- package/dist/index.js +1409 -3746
- package/dist/remote/remote-helper-entry.js +1 -1
- package/dist/remote/remote-helper.js +1 -1
- package/dist/runtime/atomic/file-revisions.d.ts +2 -0
- package/dist/runtime/atomic/revision-capture.d.ts +1 -1
- package/dist/runtime/host/loop-cut-log.d.ts +18 -0
- package/dist/runtime/orchestration/session-runtime.d.ts +5 -0
- package/dist/runtime/safety/struggle-detector.d.ts +1 -1
- package/dist/services/llms/apihandler-agent-model-adapter.d.ts +4 -2
- package/dist/services/retrieval/tar-extract.d.ts +4 -0
- package/dist/session/persisted-tool-result-content.d.ts +10 -1
- package/dist/session/services/message-builder.d.ts +15 -1
- package/dist/session/tool-result-format-pin.d.ts +17 -0
- package/dist/types/config.d.ts +9 -2
- package/package.json +4 -4
|
@@ -7,17 +7,29 @@ match:
|
|
|
7
7
|
|
|
8
8
|
<!-- PROVENANCE -- written by scripts/review-prompt-templates.mts, not by the model.
|
|
9
9
|
|
|
10
|
-
Sections `grep`, `sed`, `
|
|
10
|
+
Sections `apply_patch`, `awk`, `editor`, `fetch_web_content`, `grep`, `read_files`, `search_codebase`, `sed`, `check_file` written by glm-5.3-flash-tpl2:latest (family declared as `glm5_next`, because the tag reports none of its own) on 2026-10-22.
|
|
11
|
+
Every other section is as it was. Before this run:
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
Sections `grep`, `sed`, `awk` written by glm-5.3:cloud (Ollama family `glm_dsa_moe`) on 2026-09-12.
|
|
14
|
+
|
|
15
|
+
Every other section is unchanged. Written by glm-5.3-flash-tpl2:latest (family declared as `glm5_next`, because the tag reports none of its own) on 2026-09-12.
|
|
16
|
+
Run, with its log: prompt-reviews/regen/20260912-2340-glm-5.3-cloud
|
|
17
|
+
|
|
18
|
+
Run, with its log: prompt-reviews/regen/20261022-0652-glm-5.3-flash-tpl2-latest
|
|
14
19
|
|
|
15
20
|
Sampler asked for by the generator, overriding the model's own:
|
|
16
21
|
temperature 0.2
|
|
17
22
|
|
|
18
23
|
Sampler the tag sources (`/api/show`), which applies to every key
|
|
19
24
|
the request above does not set:
|
|
20
|
-
|
|
25
|
+
num_predict 131072
|
|
26
|
+
presence_penalty 0.1
|
|
27
|
+
repeat_last_n 2048
|
|
28
|
+
repeat_penalty 1.1
|
|
29
|
+
temperature 1
|
|
30
|
+
top_p 0.95
|
|
31
|
+
frequency_penalty 0.1
|
|
32
|
+
num_ctx 262144
|
|
21
33
|
|
|
22
34
|
The script hands a model the prompt it would really receive, names the
|
|
23
35
|
failures observed with models in its family, and asks for the version it
|
|
@@ -57,52 +69,56 @@ If the request is a simple question with no coding work in it, answer it directl
|
|
|
57
69
|
{{CLINE_METADATA}}
|
|
58
70
|
|
|
59
71
|
# tool: read_files
|
|
72
|
+
|
|
60
73
|
Reads text and image files at absolute paths. This is how a file gets read — not `cat`, `head` or `tail` through `run_commands`.
|
|
61
74
|
|
|
62
75
|
`files` is a list of objects, one per file: `path` (required), plus optional `start_line` and `end_line` for an inclusive one-based range on that file, and optional `line_numbers` — set it to `false` when you are reading in order to copy text into `editor`, because returned text carries a ` 92 | ` gutter that will not match anything if pasted into another tool.
|
|
63
76
|
|
|
64
|
-
|
|
77
|
+
One read returns at most 2000 lines or ~47k characters; a longer file reports its total line count instead, and you page through it with `start_line`/`end_line` on that file's entry.
|
|
65
78
|
|
|
66
|
-
|
|
67
|
-
|
|
79
|
+
Read ranges, not files. A diagnostic, a stack trace, a `search_codebase` hit or an `ask_lsp` result already names a line: read about 30 lines either side of it, and widen only if what you needed turns out to lie outside. Reading a file whole is for when you have no line to start from and the file is genuinely small. Every line returned stays in the conversation for the rest of the task, so reading more than you need crowds out the room left to reason with. When you already know several files you need, read them all in one call, in the same response as your other independent calls. Binary files that are not images, and very large files, are not supported.
|
|
80
|
+
|
|
81
|
+
Output: one entry per requested file, in the order requested — each entry is named by the path you asked for, as `path:start-end` when you gave a range, and holds that file's content with every line prefixed by its number as ` 92 | text`; those numbers are how you aim an edit, and they are not in the file. A failed entry says that it failed and why.
|
|
68
82
|
|
|
69
83
|
# tool: search_codebase
|
|
84
|
+
|
|
70
85
|
Regex search across the codebase, for text. Symbol questions — where is this defined, what uses it, what implements it — belong to `ask_lsp`, which answers exactly in one call; a search here hands you several files to open and disambiguate by hand. Use this for what a language server cannot see: string literals, log messages, config keys, comments, and occurrences of a name you are pattern-matching rather than asking about as a symbol.
|
|
71
86
|
|
|
72
87
|
`queries` is a list of regex strings — run every independent pattern in one call, alongside your other independent calls. `context_lines` (integer, default 2) sets how many lines surround each match. `max_per_file` (integer, default 1) reports one match per file, which answers "which files mention this"; raise it when you need every occurrence inside a file and where each one sits. Output past ~48k characters per query is middle-truncated, so a narrow pattern beats a broad one — search the distinctive part of the name, not the common prefix.
|
|
73
88
|
|
|
74
|
-
Output: one
|
|
75
|
-
{{DEFAULT}}
|
|
89
|
+
Output: one entry per pattern — each entry is named by the pattern you sent and holds the matching lines with their file paths and line numbers, and a failed entry says that it failed and why. A pattern that matched nothing comes back empty, not failed: that is an answer, and re-running it will not change it.
|
|
76
90
|
|
|
77
91
|
# tool: fetch_web_content
|
|
92
|
+
|
|
78
93
|
Fetches web pages and extracts from each one what you asked for. Use it for documentation, API references, changelogs, and error messages you want explained — anything you would otherwise open and read in a browser.
|
|
79
94
|
|
|
80
95
|
`requests` is a list of `{url, prompt}` objects, one per page. The `prompt` says what to pull out of that page, so make it specific — "the signature and return type of function X", "the section on rate limits" — not "tell me about this page". Fetch independent URLs together in one call, in the same response as your other independent calls.
|
|
81
96
|
|
|
82
|
-
Output: one
|
|
83
|
-
{{DEFAULT}}
|
|
97
|
+
Output: one entry per request, in the order requested — each entry is named by the URL and holds what was extracted from that page for your prompt, as text. A failed entry says that it failed and why.
|
|
84
98
|
|
|
85
99
|
# tool: editor
|
|
86
|
-
Edits the text file at `path` (absolute). This, or `apply_patch`, is how a file gets changed — never `sed -i`, `echo >`, or a heredoc through `run_commands`.
|
|
87
100
|
|
|
88
|
-
What
|
|
101
|
+
Edits the text file at `file_path` (absolute). This, or `apply_patch`, is how a file gets changed — never `sed -i`, `echo >`, or a heredoc through `run_commands`. What the call does is decided by which arguments you send:
|
|
102
|
+
|
|
89
103
|
- Change some text: `old_text` + `new_text`. `old_text` must match exactly, indentation included. If it occurs more than once, add `occurrence` (one-based, in file order) to pick which one, or `replace_all: true` to change every one.
|
|
90
104
|
- Change whole lines: `start_line` + `new_text`, with optional `end_line` (inclusive; defaults to `start_line`). No `old_text` needed, so it cannot be ambiguous — prefer this when the text is long, minified or repeated, and a diagnostic has already given you the line number. An empty `new_text` deletes the range.
|
|
91
|
-
- Change characters on a line: `start_line` + `start_column` + `new_text`, with optional `end_line`/`end_column` (both inclusive; each defaults to its start). This is the unit a diagnostic speaks in — `Line
|
|
105
|
+
- Change characters on a line: `start_line` + `start_column` + `new_text`, with optional `end_line`/`end_column` (both inclusive; each defaults to its start). This is the unit a diagnostic speaks in — `Line 12, column 640` — and on a long or minified line it is the only edit that leaves the other 400 characters alone. `start_column` with no end replaces exactly one character.
|
|
92
106
|
- Insert without replacing: `insert_line` + `new_text` inserts before that line; `line_count + 1` appends at end of file. Add `insert_column` to insert inside that line, before the character at that column — this is how you add one missing bracket; `line_length + 1` appends at the end of the line.
|
|
93
107
|
- Create a file, or replace one whole: `new_text` alone. A missing file is created; an existing file has every line replaced, which is allowed once you have read the file, since reading is what tells you what you are overwriting. `start_line: 1` with `end_line: <line count>` is the same write by another name. A whole-file write has no size limit, but reach for it only after a targeted edit has failed — a rewrite that is a little wrong quietly discards whatever you did not mean to touch. Do not delete a file to start fresh: this call is the clean slate, and a deleted file is just gone if the turn ends before you write it back.
|
|
94
108
|
|
|
95
|
-
|
|
109
|
+
Put the short arguments first — `file_path`, the line and column numbers, `old_text` — and `new_text` last: it is the long part of the call, and whatever is written after a long text is the part most easily left out.
|
|
96
110
|
|
|
97
|
-
|
|
111
|
+
Read the lines you are about to change before you change them — an edit aimed at text you have not read in its current state will be refused. Your own edits move line numbers: an edit that changes the file's length shifts every line below it, so re-read a region before editing it a second time, and distrust line numbers carried over from an earlier turn, a task summary, or a diagnostic issued before your last edit.
|
|
98
112
|
|
|
99
|
-
An edit replaces
|
|
113
|
+
An edit replaces the range or text you name. Repeating the lines already in the range at the top of `new_text` and then continuing is allowed — that is how you insert after them: the range says which lines you mean, so repeating them is your choice. What is refused is `new_text` that goes on to repeat lines from outside the range — that would append a second copy of text the file already has somewhere else — and the refusal names the lines it matched, so you can aim the next call at them.
|
|
100
114
|
|
|
101
|
-
|
|
102
|
-
|
|
115
|
+
One edit at a time, confirmed, before the next — reads and searches batch; edits do not.
|
|
116
|
+
|
|
117
|
+
Output: one result for this one edit, named `edit:<path>` or `insert:<path>`, describing what changed. That result is the confirmation the edit landed; do not re-read the file to check. A failed edit changes nothing: the result says it failed and names the fix, and the file is exactly as it was — resending the same call is not the fix. Text copied from a `read_files` result must have its `123 | ` gutter stripped first or it will not match.
|
|
103
118
|
|
|
104
119
|
# tool: apply_patch
|
|
105
|
-
|
|
120
|
+
|
|
121
|
+
Edits files with the canonical freeform patch grammar — the second way to change a file, alongside `editor`. Pass the whole patch as the `input` string; do not route it through the shell.
|
|
106
122
|
|
|
107
123
|
*** Begin Patch
|
|
108
124
|
*** Update File: path/to/file.ts
|
|
@@ -115,10 +131,23 @@ Edits files with the freeform patch grammar — the second way to change a file,
|
|
|
115
131
|
|
|
116
132
|
Actions: `*** Add File: <path>`, `*** Update File: <path>`, `*** Delete File: <path>`, and `*** Move to: <new path>` on the line after an Update File header.
|
|
117
133
|
|
|
118
|
-
Rules: in an Add File section every content line starts with `+`; in an Update section, context lines plus `-` and `+` lines describe the change; add `@@` markers when repeated code blocks need disambiguating; no line numbers —
|
|
134
|
+
Rules: in an Add File section every content line starts with `+`; in an Update section, context lines plus `-` and `+` lines describe the change; add `@@` markers when repeated code blocks need disambiguating; and there are no line numbers — the patch matches on context, so the context lines must be copied from the file as it stands now. Send the patch body directly; legacy shell wrappers such as `%%bash` and `apply_patch <<"EOF"` are accepted but not preferred.
|
|
119
135
|
|
|
120
|
-
|
|
121
|
-
|
|
136
|
+
One whole patch — context lines copied from the file, one line added:
|
|
137
|
+
|
|
138
|
+
*** Begin Patch
|
|
139
|
+
*** Update File: src/page.tsx
|
|
140
|
+
@@
|
|
141
|
+
return (
|
|
142
|
+
<div>
|
|
143
|
+
<button onClick={() => console.log("clicked")}>Click me</button>
|
|
144
|
+
+ <button onClick={() => console.log("cancel clicked")}>Cancel</button>
|
|
145
|
+
</div>
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
*** End Patch
|
|
149
|
+
|
|
150
|
+
Output: one result covering the whole patch, saying which files were added, updated, moved or deleted. A patch that did not apply — almost always because its context lines no longer match the file — comes back failed and says why; re-read the file and rebuild the patch from what is actually there instead of resending.
|
|
122
151
|
|
|
123
152
|
# tool: ask_question
|
|
124
153
|
Ask when you need the answer to proceed — a decision only the user can make, a requirement only they know. Not for permission: if the sensible path is clear, take it.
|
|
@@ -141,16 +170,16 @@ Runs one of the skills installed on this machine, by name, with optional `args`.
|
|
|
141
170
|
{{DEFAULT}}
|
|
142
171
|
|
|
143
172
|
# tool: check_file
|
|
144
|
-
|
|
173
|
+
|
|
174
|
+
Asks the editor's language servers (LSP) for errors and warnings in the files you name. This is the linter — and the type checker, the syntax check, and the Problems panel, whichever word the question uses. It is how you find out whether a file is valid: milliseconds, for the files you name, no project build. Where a language server covers the file's language, it answers the same question as `tsc`, `eslint`, `biome`, `ruff`, `mypy`, `go build` or `cargo check` — so do not run those through the shell for a one-file answer.
|
|
145
175
|
|
|
146
176
|
`paths` is a list of absolute paths; pass every file you want checked in one call.
|
|
147
177
|
|
|
148
|
-
Call it after every edit, before you build on the edit; alongside whatever runs the code — tests, build, program, page — in the same response; on every file you changed before reporting the task finished; and on a file you are about to change, to learn what was already wrong with it. The report is live, current as of the moment you ask: if it still names a problem after your edit, the problem is still there
|
|
178
|
+
Call it whenever the question is about lint errors, diagnostics, warnings, type errors or syntax errors — "how many errors is the linter reporting?", "is it clean now?", "what is still broken?" You have no other way to know, and a report shown after an earlier edit does not answer it: that was true then, and you have edited since. Call it after every edit, before you build on the edit; alongside whatever runs the code — tests, build, program, page — in the same response; on every file you changed before reporting the task finished; and on a file you are about to change, to learn what was already wrong with it. The report is live, current as of the moment you ask: if it still names a problem after your edit, the problem is still there. Restarting a language server is neither possible nor necessary from here.
|
|
149
179
|
|
|
150
|
-
Output: plain text, one section per file, each problem on its own line as `file:line:column` with its severity and message. A file with nothing wrong says so in one line.
|
|
180
|
+
Output: plain text, one section per file, each problem on its own line as `file:line:column` with its severity and message. A file with nothing wrong says so in one line. A list of problems is this tool working, not failing.
|
|
151
181
|
|
|
152
|
-
Two things to read carefully. "No problems" is conclusive only where a language server covers that file, and it does not for every language on every machine: if you have reason to expect a problem, or the project has a checker the language servers do not run, run that checker with `run_commands` — tests and builds are always `run_commands`. And when a file's brackets do not match, a `Delimiter scan` section names the line to edit and how many brackets that line is out by, one line for each place the mismatch begins; a parse error is always reported where the parser gave up — the closing bracket — so the line named is the one the error itself cannot name.
|
|
153
|
-
{{DEFAULT}}
|
|
182
|
+
Two things to read carefully. "No problems" is conclusive only where a language server covers that file, and it does not for every language on every machine: if you have reason to expect a problem, or the project has a checker the language servers do not run, run that checker with `run_commands` — tests and builds are always `run_commands`. And when a file's brackets do not match, a `Delimiter scan` section names the line to edit and how many brackets that line is out by, one line for each place the mismatch begins; a parse error is always reported where the parser gave up — the closing bracket — so the line named is the one the error itself cannot name. Work through every line the scan lists before re-checking — a file can be broken in several spots at once — and trust those lines over counting brackets yourself: the scan skips strings, comments and regex literals, which counting characters does not. The scan runs whether or not the editor reported anything; inside an `.html` file's script it may be the only report you get.
|
|
154
183
|
|
|
155
184
|
# tool: list_files
|
|
156
185
|
{{DEFAULT}}
|
|
@@ -307,8 +336,7 @@ Reach for this over `editor` when one mechanical change applies in many places o
|
|
|
307
336
|
|
|
308
337
|
An in-place run is refused on a file you have not read, the same way an `editor` call is — and a script addressed by line number is refused unless you have read those lines. Read first. A line number in a script describes the file as you last read it — an edit that changes the file's length shifts every line below it — so re-read before aiming a line-numbered script at a file that has changed since.
|
|
309
338
|
|
|
310
|
-
Output: one
|
|
311
|
-
{{DEFAULT}}
|
|
339
|
+
Output: one entry per file, in the order listed — each entry is named `sed:<file>` and holds that file's printed output, or, for an in-place run, a sentence saying what was written. The files do not share a fate: one may be written while the next is refused, so read every entry. A failed entry means that file was NOT touched, and it says why. A script that matched nothing has not failed — it ran, there was nothing to do, and the file is as it was; running it again unchanged will not change it.
|
|
312
340
|
|
|
313
341
|
# tool: grep
|
|
314
342
|
|
|
@@ -322,9 +350,7 @@ Flags: `ignore_case`, `invert` (the lines that do not match), `word` (whole word
|
|
|
322
350
|
|
|
323
351
|
Use it to find where something is before you read or edit it — it is cheaper than reading whole files, and a match records that you have read those lines.
|
|
324
352
|
|
|
325
|
-
Output:
|
|
326
|
-
|
|
327
|
-
{{DEFAULT}}
|
|
353
|
+
Output: one result for the whole call, named `grep:<pattern>`, holding the matching lines, each prefixed with its path and line number. A search that could not run comes back failed and says why. A pattern that matched nothing has not failed, and the result says so in words: that is an answer, and running the same search again will not change it.
|
|
328
354
|
|
|
329
355
|
# tool: awk
|
|
330
356
|
|
|
@@ -336,8 +362,7 @@ This is the tool for questions about columns and totals, where `grep` would only
|
|
|
336
362
|
|
|
337
363
|
It is read-only, and deliberately so: output redirection, pipes, `system()` and `getline` are all refused rather than quietly ignored. Use `sed` or `editor` to change a file.
|
|
338
364
|
|
|
339
|
-
Output:
|
|
340
|
-
{{DEFAULT}}
|
|
365
|
+
Output: one result for the whole call, named `awk:<program>`, holding everything the program printed. A program that could not run comes back failed and says why. A program that printed nothing has not failed — that is the program's answer.
|
|
341
366
|
|
|
342
367
|
# tool: extract_document
|
|
343
368
|
{{DEFAULT}}
|
|
@@ -7,32 +7,37 @@ match:
|
|
|
7
7
|
|
|
8
8
|
<!-- PROVENANCE -- written by scripts/review-prompt-templates.mts, not by the model.
|
|
9
9
|
|
|
10
|
-
Sections `
|
|
10
|
+
Sections `apply_patch`, `awk`, `editor`, `fetch_web_content`, `grep`, `read_files`, `search_codebase`, `sed`, `check_file`, `run_commands` written by kimi-k3:cloud (Ollama family `kimi-k3`) on 2026-10-22.
|
|
11
11
|
Every other section is as it was. Before this run:
|
|
12
12
|
|
|
13
|
-
Sections `
|
|
14
|
-
|
|
15
|
-
Run, with its log: prompt-reviews/regen/20260913-0452-kimi-k3-cloud
|
|
13
|
+
Sections `read_files`, `editor`, `check_file` written by kimi-k3:cloud (Ollama family `kimi-k3`) on 2026-09-23.
|
|
14
|
+
Every other section is as it was. Before this run:
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
Sections `grep` and `run_commands` written by kimi-k3:cloud (Ollama
|
|
17
|
+
family `kimi-k3`) on 2026-09-13 at temperature 0.6, clean on attempt 4.
|
|
18
|
+
Run, with its log: prompt-reviews/regen/20260913-0452-kimi-k3-cloud
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
returned the hand-written text with a single sentence extended, both
|
|
25
|
-
times borrowing the tail of its own `grep` section to do it. Three
|
|
26
|
-
sections of this file are the model's words and this one is not, which
|
|
27
|
-
is the whole reason this header distinguishes them.
|
|
20
|
+
Section `awk` written by kimi-k3:cloud on 2026-09-13 at temperature 0.9,
|
|
21
|
+
clean on attempt 3; the 0.6 run had changed one sentence of it and no
|
|
22
|
+
more. Run, with its log: prompt-reviews/regen/20260913-0456-kimi-k3-cloud
|
|
28
23
|
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
Section `sed` is still written by hand, from 2026-09-12. kimi-k3:cloud
|
|
25
|
+
will not rewrite it. Asked six times on 2026-09-12 it returned the
|
|
26
|
+
built-in text verbatim; asked again on 2026-09-13 at 0.6 and at 0.9 it
|
|
27
|
+
returned the hand-written text with a single sentence extended, both
|
|
28
|
+
times borrowing the tail of its own `grep` section to do it. Three
|
|
29
|
+
sections of this file are the model's words and this one is not, which
|
|
30
|
+
is the whole reason this header distinguishes them.
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Every other section is unchanged. Written by kimi-k3:cloud (Ollama
|
|
33
|
+
family `kimi-k3`) on 2026-09-12.
|
|
34
|
+
|
|
35
|
+
Run, with its log: prompt-reviews/regen/20260923-1648-kimi-k3-cloud
|
|
36
|
+
|
|
37
|
+
Run, with its log: prompt-reviews/regen/20261022-0650-kimi-k3-cloud
|
|
33
38
|
|
|
34
39
|
Sampler asked for by the generator, overriding the model's own:
|
|
35
|
-
temperature 0.
|
|
40
|
+
temperature 0.2
|
|
36
41
|
|
|
37
42
|
Sampler the tag sources (`/api/show`), which applies to every key
|
|
38
43
|
the request above does not set:
|
|
@@ -105,9 +110,10 @@ Locate first, then read: a diagnostic or stack trace already names the line, `se
|
|
|
105
110
|
|
|
106
111
|
Binary files that are not images and very large files are not supported.
|
|
107
112
|
|
|
108
|
-
Output: one
|
|
113
|
+
Output: one entry per requested file, in the order requested — each entry names what it answers, then what came back, and a failed entry says that it failed and why. An entry is named by the path you asked for (as `path:start-end` when you gave a range), and what came back is that file's content, with every line prefixed by its number as ` 92 | text`. Those numbers are how you address an edit, and they are not in the file. Never paste them into another tool: text carrying a `92 | ` prefix will not match anything. When you are reading in order to copy text into `editor`, set `line_numbers: false` on that file's entry and get it clean.
|
|
109
114
|
|
|
110
115
|
# tool: search_codebase
|
|
116
|
+
|
|
111
117
|
Run regex searches across the codebase. Multiple independent patterns go in one call, together with other independent tool calls in the same response. Use for finding patterns, definitions, classes, imports, etc.
|
|
112
118
|
|
|
113
119
|
Arguments:
|
|
@@ -117,7 +123,7 @@ Arguments:
|
|
|
117
123
|
|
|
118
124
|
Output per query is middle-truncated beyond ~48k characters; specific patterns beat broad ones.
|
|
119
125
|
|
|
120
|
-
Output: one
|
|
126
|
+
Output: one entry per pattern — each entry names what it answers, then what came back, and a failed entry says that it failed and why. An entry is named by the pattern you sent and holds the matching lines with their file paths. A pattern that matched nothing comes back empty, not failed; that is an answer, and re-running it will not change it.
|
|
121
127
|
|
|
122
128
|
# tool: grep
|
|
123
129
|
|
|
@@ -132,7 +138,7 @@ Arguments:
|
|
|
132
138
|
|
|
133
139
|
Use `search_codebase` when you do not yet know which files are involved — it takes several patterns at once and reports one hit per file, which answers "where is this". Use `grep` when you already know the file or directory and want grep's own semantics: every matching line, a count, an inverted match, a window of context. Neither answers questions about a symbol; `ask_lsp` does.
|
|
134
140
|
|
|
135
|
-
Output:
|
|
141
|
+
Output: one result, named `grep:<pattern>`, holding the matching lines prefixed with their path and line number. A search that could not run says that it failed and why. A pattern that matched nothing is not a failure, and the result says so in words: that is an answer, and re-running the same search will not change it. Lines returned here count as read.
|
|
136
142
|
|
|
137
143
|
# tool: awk
|
|
138
144
|
|
|
@@ -147,32 +153,34 @@ Use this for columnar questions and aggregations — summing a column, extractin
|
|
|
147
153
|
|
|
148
154
|
This tool is read-only, and that is enforced rather than assumed: output redirection, pipes, `system()` and `getline` are refused. To modify a file, use `sed` or `editor`.
|
|
149
155
|
|
|
150
|
-
Output:
|
|
156
|
+
Output: one result, named `awk:<program>`, holding everything the program printed. A program that could not run says that it failed and why. A program that printed nothing has not failed — that is the program's answer.
|
|
151
157
|
|
|
152
158
|
# tool: extract_document
|
|
153
159
|
{{DEFAULT}}
|
|
154
160
|
|
|
155
161
|
# tool: fetch_web_content
|
|
162
|
+
|
|
156
163
|
Fetch web pages and extract information using a prompt. Each request needs a `url` and a `prompt` describing what to extract. Batch independent URLs into one call, together with other independent tool calls in the same response.
|
|
157
164
|
|
|
158
|
-
Output: one
|
|
165
|
+
Output: one entry per request — each entry names what it answers, then what came back, and a failed entry says that it failed and why. An entry is named by the URL and holds what was extracted from that page for your prompt, as text.
|
|
159
166
|
|
|
160
167
|
# tool: editor
|
|
161
168
|
|
|
162
|
-
Make precise edits to a single text file at `
|
|
169
|
+
Make precise edits to a single text file at `file_path`. Six modes, chosen by which arguments you send:
|
|
163
170
|
|
|
164
171
|
- Replace text: `old_text` plus `new_text`. When `old_text` occurs more than once, add `occurrence` (one-based, in file order) to pick one, or `replace_all: true` to change every one.
|
|
165
172
|
- Replace lines: `start_line` plus `new_text`, with optional `end_line` (inclusive, defaults to `start_line`). No `old_text` needed. Prefer this when the text is long, minified or repeated: a diagnostic already gives you the line number, and a line number cannot be ambiguous. An empty `new_text` deletes the range.
|
|
166
|
-
- Replace characters: `start_line` and `start_column` plus `new_text`, with optional `end_line`/`end_column` (both inclusive, each defaulting to its start). This is the unit a diagnostic speaks in — `Line
|
|
173
|
+
- Replace characters: `start_line` and `start_column` plus `new_text`, with optional `end_line`/`end_column` (both inclusive, each defaulting to its start). This is the unit a diagnostic speaks in — `Line 12, column 640` — and on a long or minified line it is the only edit that leaves the rest of the line untouched. `start_column` on its own replaces exactly one character.
|
|
167
174
|
- Insert: `insert_line` plus `new_text`, which adds text before that line without replacing anything. Use `line_count + 1` to append at EOF. Add `insert_column` to insert inside that line instead, before the character at that column — this is how you add one missing bracket, with `line_length + 1` appending at the end of the line.
|
|
168
175
|
- Create or replace whole: `new_text` alone. Creates the file when it does not exist; replaces every line when it does, which needs the file read first. No size limit on this one — a file written whole cannot be split. Never `rm` a file to write it fresh: this is that, and a deleted file is gone if the turn ends first.
|
|
169
176
|
|
|
170
|
-
Write the arguments in this order: `
|
|
177
|
+
Write the arguments in this order: `file_path` and every other short argument first — line and column numbers, `intent`, `task_progress`, `old_text` — and `new_text` last. The text you are writing is the long part of the call, and whatever is written after a long text is the part most easily left out.
|
|
171
178
|
Use this rather than a shell command for anything that changes a file. Make one edit at a time and check it before starting the next: reads and searches cost nothing if one turns out to be unnecessary, but several edits made together and checked once leave several things to undo and no way to tell which one was wrong. Read the lines you are about to change before you change them: an edit aimed at a range you have not read in its current state is refused. Your own edits count — one that changes the file's length moves every line below it, so read that region again before editing it a second time. Line numbers taken from an earlier turn, from a task summary, or from a diagnostic issued before your last edit are the ones that go stale. Repeating the lines already in the range and then continuing is how you insert after them, and it is allowed — the range says which lines you mean, so repeating them is your own choice. What is refused is a `new_text` that goes on to repeat lines from *outside* the range: that appends a second copy of text already elsewhere in the file rather than replacing anything, and the refusal names the lines it matched so you can aim the next call at them.
|
|
172
179
|
|
|
173
|
-
Output:
|
|
180
|
+
Output: one result for this one edit, named `edit:<path>` or `insert:<path>`, describing what changed. A failed edit changes nothing: the result says it failed and why, and the file is exactly as it was. Do not resend the same call — the reason names the fix. In particular, text copied out of a `read_files` result must have its `123 | ` line-number gutter removed first.
|
|
174
181
|
|
|
175
182
|
# tool: sed
|
|
183
|
+
|
|
176
184
|
Apply a `sed` script to one or more files. Runs in this process, not through the shell.
|
|
177
185
|
|
|
178
186
|
Arguments:
|
|
@@ -185,9 +193,10 @@ Use this when one mechanical change applies in many places or across many files
|
|
|
185
193
|
|
|
186
194
|
The read rule is the same as `editor`'s and exists for the same reason: an in-place run is refused on a file you have not read, and a script addressed by line number is refused unless you have read those lines. In plan mode `in_place` is refused outright, as `sed -i` through the shell is; the preview still works.
|
|
187
195
|
|
|
188
|
-
Output: one
|
|
196
|
+
Output: one entry per file — each entry names what it answers, then what came back, and a failed entry says that it failed and why. An entry is named `sed:<file>` and holds that file's output, or a sentence saying what was written. The files do not share a fate: one may be written while the next is refused, so read every entry. A failed entry means that file was **not** touched, and it says why. A script that matched nothing has not failed — it ran, and that is its answer; running it again unchanged will not change it.
|
|
189
197
|
|
|
190
198
|
# tool: apply_patch
|
|
199
|
+
|
|
191
200
|
Apply a freeform patch to edit one or more files. Pass the patch text as `input`. Preferred format:
|
|
192
201
|
|
|
193
202
|
*** Begin Patch
|
|
@@ -208,7 +217,7 @@ Rules:
|
|
|
208
217
|
- No line numbers; context-based only.
|
|
209
218
|
- Prefer sending the patch body directly. Legacy wrappers like `%%bash` are accepted but not preferred.
|
|
210
219
|
|
|
211
|
-
Output:
|
|
220
|
+
Output: one result covering the whole patch, saying which files were added, updated, moved or deleted. A patch that did not apply — usually because its context lines no longer match the file — comes back failed and says why; re-read the file and rebuild the patch from what is actually there rather than resending it.
|
|
212
221
|
|
|
213
222
|
# tool: ask_question
|
|
214
223
|
{{DEFAULT}}
|
|
@@ -222,7 +231,7 @@ Execute shell commands in the working directory. This is the tool for builds, te
|
|
|
222
231
|
|
|
223
232
|
When you need multiple independent commands, send them all in one call. Each command runs in its own shell, so `cd` in one does not affect the next. Use absolute paths or chain with `&&` when a command depends on being in a specific directory.
|
|
224
233
|
|
|
225
|
-
Output: one
|
|
234
|
+
Output: one entry per command, in order — each entry names what it answers, then what came back, and a failed entry says that it failed and why. An entry is named by the command string and holds stdout and stderr combined.
|
|
226
235
|
|
|
227
236
|
{{DEFAULT}}
|
|
228
237
|
|
|
@@ -245,7 +254,7 @@ Pass every file you want checked in one call.
|
|
|
245
254
|
|
|
246
255
|
Read a clean result carefully. "No problems reported by the editor" is conclusive only where a language server covers that file, and it does not for every language on every machine. If this reports nothing and you have reason to expect a problem, or the project has a checker the language servers do not run, run that checker with `run_commands`. Tests and builds are always `run_commands`; this tool does not run them.
|
|
247
256
|
|
|
248
|
-
Output:
|
|
257
|
+
Output: one section per file you named, each problem on its own line as `file:line:column` with its severity and message. A file with nothing wrong says so in one line. Problems being listed is this tool working, not failing.
|
|
249
258
|
|
|
250
259
|
When a file's brackets do not match, a `Delimiter scan` section names the line to edit and how many brackets that line is out by, one line per place the trouble starts — a file can be broken in several spots at once, so work through every line it lists before re-checking rather than re-checking after each one. A parse error is always reported where the parser gave up, which is the closing bracket; the line named here is the one the error cannot name. Trust those lines over counting brackets yourself — the scan skips strings, comments and regex literals, which counting characters does not. It runs whether or not the editor reported anything, so it can appear beneath a file the editor called clean — no language server checks the script inside an `.html` file, and there this is the only report you will get.
|
|
251
260
|
|
|
@@ -254,7 +263,7 @@ List the files in the workspace. Use this to find out what exists, rather than r
|
|
|
254
263
|
|
|
255
264
|
How to ask:
|
|
256
265
|
- `path` — list one directory. Absolute, or relative to the workspace root. Omit it for the root.
|
|
257
|
-
- `pattern` — a glob searched across the workspace, e.g. `**/*.html` or `**/
|
|
266
|
+
- `pattern` — a glob searched across the workspace, e.g. `**/*.html` or `**/config.*`. Use it when you know part of a name but not where it lives. Given this, `path` is ignored.
|
|
258
267
|
- `max_results` — caps the listing.
|
|
259
268
|
|
|
260
269
|
The excludes in the user's settings apply, so `node_modules`, `.git` and build output stay out of the way. A path outside the workspace is refused rather than listed.
|