@namzu/sdk 62.6.1 → 62.8.0
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/CHANGELOG.md +42 -0
- package/dist/agents/QueryAgent.d.ts.map +1 -1
- package/dist/agents/QueryAgent.js +5 -0
- package/dist/agents/QueryAgent.js.map +1 -1
- package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/examples/SupervisorAgent.js +1 -0
- package/dist/agents/examples/SupervisorAgent.js.map +1 -1
- package/dist/agents/explore.d.ts.map +1 -1
- package/dist/agents/explore.js +2 -1
- package/dist/agents/explore.js.map +1 -1
- package/dist/compaction/index.d.ts +1 -1
- package/dist/compaction/index.d.ts.map +1 -1
- package/dist/compaction/index.js +1 -1
- package/dist/compaction/index.js.map +1 -1
- package/dist/compaction/model-summary.js +2 -2
- package/dist/compaction/model-summary.js.map +1 -1
- package/dist/compaction/summary.d.ts +16 -1
- package/dist/compaction/summary.d.ts.map +1 -1
- package/dist/compaction/summary.js +25 -2
- package/dist/compaction/summary.js.map +1 -1
- package/dist/config/runtime.d.ts +8 -0
- package/dist/config/runtime.d.ts.map +1 -1
- package/dist/config/runtime.js +15 -0
- package/dist/config/runtime.js.map +1 -1
- package/dist/execution/workflow/runtime.d.ts.map +1 -1
- package/dist/execution/workflow/runtime.js +3 -0
- package/dist/execution/workflow/runtime.js.map +1 -1
- package/dist/execution/workflow/types.d.ts +8 -0
- package/dist/execution/workflow/types.d.ts.map +1 -1
- package/dist/manager/agent/child-session.d.ts +12 -0
- package/dist/manager/agent/child-session.d.ts.map +1 -1
- package/dist/manager/agent/child-session.js +29 -0
- package/dist/manager/agent/child-session.js.map +1 -1
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +8 -0
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/session/turn-recorder.d.ts +13 -2
- package/dist/manager/session/turn-recorder.d.ts.map +1 -1
- package/dist/manager/session/turn-recorder.js +107 -29
- package/dist/manager/session/turn-recorder.js.map +1 -1
- package/dist/prompt/coding-agent-doctrine.d.ts +3 -3
- package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
- package/dist/prompt/coding-agent-doctrine.js +5 -3
- package/dist/prompt/coding-agent-doctrine.js.map +1 -1
- package/dist/provider/fallback.d.ts.map +1 -1
- package/dist/provider/fallback.js +5 -1
- package/dist/provider/fallback.js.map +1 -1
- package/dist/provider/retry.d.ts +25 -0
- package/dist/provider/retry.d.ts.map +1 -1
- package/dist/provider/retry.js +28 -0
- package/dist/provider/retry.js.map +1 -1
- package/dist/public-runtime.d.ts +3 -3
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +3 -3
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +4 -2
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +5 -2
- package/dist/public-tools.js.map +1 -1
- package/dist/runtime/query/auto-review/classifier.d.ts +7 -1
- package/dist/runtime/query/auto-review/classifier.d.ts.map +1 -1
- package/dist/runtime/query/auto-review/classifier.js +8 -4
- package/dist/runtime/query/auto-review/classifier.js.map +1 -1
- package/dist/runtime/query/auto-review/prompt.d.ts.map +1 -1
- package/dist/runtime/query/auto-review/prompt.js +2 -0
- package/dist/runtime/query/auto-review/prompt.js.map +1 -1
- package/dist/runtime/query/auto-review/script-evidence.d.ts +93 -0
- package/dist/runtime/query/auto-review/script-evidence.d.ts.map +1 -0
- package/dist/runtime/query/auto-review/script-evidence.js +566 -0
- package/dist/runtime/query/auto-review/script-evidence.js.map +1 -0
- package/dist/runtime/query/checkpoint.d.ts +13 -0
- package/dist/runtime/query/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/checkpoint.js +37 -0
- package/dist/runtime/query/checkpoint.js.map +1 -1
- package/dist/runtime/query/context.d.ts.map +1 -1
- package/dist/runtime/query/context.js +28 -2
- package/dist/runtime/query/context.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +38 -1
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +154 -13
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/finalize-turn.d.ts +7 -1
- package/dist/runtime/query/finalize-turn.d.ts.map +1 -1
- package/dist/runtime/query/finalize-turn.js +2 -0
- package/dist/runtime/query/finalize-turn.js.map +1 -1
- package/dist/runtime/query/index.d.ts +8 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +7 -0
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +32 -1
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +158 -10
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.d.ts +12 -0
- package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +48 -1
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js +5 -0
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.js +3 -3
- package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
- package/dist/runtime/query/prelude-lease.d.ts.map +1 -1
- package/dist/runtime/query/prelude-lease.js +22 -0
- package/dist/runtime/query/prelude-lease.js.map +1 -1
- package/dist/runtime/query/prepare-turn.d.ts.map +1 -1
- package/dist/runtime/query/prepare-turn.js +30 -12
- package/dist/runtime/query/prepare-turn.js.map +1 -1
- package/dist/runtime/query/review-policy.d.ts.map +1 -1
- package/dist/runtime/query/review-policy.js +29 -0
- package/dist/runtime/query/review-policy.js.map +1 -1
- package/dist/runtime/query/session-storage.d.ts.map +1 -1
- package/dist/runtime/query/session-storage.js +44 -3
- package/dist/runtime/query/session-storage.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +2 -0
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +1 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/runtime/query/turn/completion-audit.d.ts +27 -1
- package/dist/runtime/query/turn/completion-audit.d.ts.map +1 -1
- package/dist/runtime/query/turn/completion-audit.js +71 -6
- package/dist/runtime/query/turn/completion-audit.js.map +1 -1
- package/dist/runtime/query/turn/outcome-ledger.d.ts +113 -0
- package/dist/runtime/query/turn/outcome-ledger.d.ts.map +1 -0
- package/dist/runtime/query/turn/outcome-ledger.js +578 -0
- package/dist/runtime/query/turn/outcome-ledger.js.map +1 -0
- package/dist/sandbox/file-walk.d.ts +7 -1
- package/dist/sandbox/file-walk.d.ts.map +1 -1
- package/dist/sandbox/file-walk.js +30 -4
- package/dist/sandbox/file-walk.js.map +1 -1
- package/dist/sandbox/glob-segment.d.ts +8 -1
- package/dist/sandbox/glob-segment.d.ts.map +1 -1
- package/dist/sandbox/glob-segment.js +28 -9
- package/dist/sandbox/glob-segment.js.map +1 -1
- package/dist/store/checkpoint/contract.d.ts +12 -0
- package/dist/store/checkpoint/contract.d.ts.map +1 -1
- package/dist/store/checkpoint/contract.js.map +1 -1
- package/dist/store/checkpoint/disk.d.ts.map +1 -1
- package/dist/store/checkpoint/disk.js +34 -2
- package/dist/store/checkpoint/disk.js.map +1 -1
- package/dist/store/checkpoint/prune.d.ts.map +1 -1
- package/dist/store/checkpoint/prune.js +6 -0
- package/dist/store/checkpoint/prune.js.map +1 -1
- package/dist/store/evidence/disk.js +40 -3
- package/dist/store/evidence/disk.js.map +1 -1
- package/dist/store/session-log/incremental.d.ts +23 -0
- package/dist/store/session-log/incremental.d.ts.map +1 -0
- package/dist/store/session-log/incremental.js +117 -0
- package/dist/store/session-log/incremental.js.map +1 -0
- package/dist/store/session-log/index.d.ts +1 -0
- package/dist/store/session-log/index.d.ts.map +1 -1
- package/dist/store/session-log/index.js +1 -0
- package/dist/store/session-log/index.js.map +1 -1
- package/dist/store/session-log/turn-outcome.d.ts +37 -0
- package/dist/store/session-log/turn-outcome.d.ts.map +1 -0
- package/dist/store/session-log/turn-outcome.js +77 -0
- package/dist/store/session-log/turn-outcome.js.map +1 -0
- package/dist/tools/admit-facts.d.ts.map +1 -1
- package/dist/tools/admit-facts.js +1 -0
- package/dist/tools/admit-facts.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +11 -2
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/bounded-file-read.d.ts +19 -1
- package/dist/tools/builtins/bounded-file-read.d.ts.map +1 -1
- package/dist/tools/builtins/bounded-file-read.js +56 -3
- package/dist/tools/builtins/bounded-file-read.js.map +1 -1
- package/dist/tools/builtins/edit-apply.d.ts.map +1 -1
- package/dist/tools/builtins/edit-apply.js +24 -3
- package/dist/tools/builtins/edit-apply.js.map +1 -1
- package/dist/tools/builtins/edit.d.ts +31 -17
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +92 -27
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/glob.js +1 -1
- package/dist/tools/builtins/glob.js.map +1 -1
- package/dist/tools/builtins/grep.d.ts +8 -0
- package/dist/tools/builtins/grep.d.ts.map +1 -1
- package/dist/tools/builtins/grep.js +148 -21
- package/dist/tools/builtins/grep.js.map +1 -1
- package/dist/tools/builtins/notebook-guard.d.ts +19 -0
- package/dist/tools/builtins/notebook-guard.d.ts.map +1 -0
- package/dist/tools/builtins/notebook-guard.js +75 -0
- package/dist/tools/builtins/notebook-guard.js.map +1 -0
- package/dist/tools/builtins/read-render.d.ts.map +1 -1
- package/dist/tools/builtins/read-render.js +8 -2
- package/dist/tools/builtins/read-render.js.map +1 -1
- package/dist/tools/builtins/search-support.d.ts +8 -0
- package/dist/tools/builtins/search-support.d.ts.map +1 -1
- package/dist/tools/builtins/search-support.js +66 -0
- package/dist/tools/builtins/search-support.js.map +1 -1
- package/dist/tools/builtins/write-file.d.ts.map +1 -1
- package/dist/tools/builtins/write-file.js +14 -1
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/coordinator/agent.d.ts.map +1 -1
- package/dist/tools/coordinator/agent.js +25 -6
- package/dist/tools/coordinator/agent.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +6 -1
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/coordinator/outcome-record.d.ts +22 -0
- package/dist/tools/coordinator/outcome-record.d.ts.map +1 -0
- package/dist/tools/coordinator/outcome-record.js +91 -0
- package/dist/tools/coordinator/outcome-record.js.map +1 -0
- package/dist/tools/defineTool.d.ts +2 -0
- package/dist/tools/defineTool.d.ts.map +1 -1
- package/dist/tools/defineTool.js +1 -0
- package/dist/tools/defineTool.js.map +1 -1
- package/dist/tools/file-read-tracker.d.ts +23 -2
- package/dist/tools/file-read-tracker.d.ts.map +1 -1
- package/dist/tools/file-read-tracker.js +37 -2
- package/dist/tools/file-read-tracker.js.map +1 -1
- package/dist/tools/untrusted-envelope.d.ts +6 -0
- package/dist/tools/untrusted-envelope.d.ts.map +1 -1
- package/dist/tools/untrusted-envelope.js +22 -1
- package/dist/tools/untrusted-envelope.js.map +1 -1
- package/dist/toolsets/manager.d.ts.map +1 -1
- package/dist/toolsets/manager.js +3 -4
- package/dist/toolsets/manager.js.map +1 -1
- package/dist/toolsets/validation-issues.d.ts +27 -0
- package/dist/toolsets/validation-issues.d.ts.map +1 -0
- package/dist/toolsets/validation-issues.js +83 -0
- package/dist/toolsets/validation-issues.js.map +1 -0
- package/dist/turn/memory-recall.d.ts +13 -0
- package/dist/turn/memory-recall.d.ts.map +1 -1
- package/dist/turn/memory-recall.js +18 -0
- package/dist/turn/memory-recall.js.map +1 -1
- package/dist/types/agent/base.d.ts +19 -0
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/agent/query.d.ts +2 -0
- package/dist/types/agent/query.d.ts.map +1 -1
- package/dist/types/common/index.d.ts +17 -0
- package/dist/types/common/index.d.ts.map +1 -1
- package/dist/types/common/index.js +8 -1
- package/dist/types/common/index.js.map +1 -1
- package/dist/types/hitl/index.d.ts +22 -0
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js.map +1 -1
- package/dist/types/session/config.d.ts +20 -0
- package/dist/types/session/config.d.ts.map +1 -1
- package/dist/types/session/events.d.ts +3 -3
- package/dist/types/session/events.d.ts.map +1 -1
- package/dist/types/session/index.d.ts +1 -0
- package/dist/types/session/index.d.ts.map +1 -1
- package/dist/types/session/index.js +1 -0
- package/dist/types/session/index.js.map +1 -1
- package/dist/types/session/outcome.d.ts +95 -0
- package/dist/types/session/outcome.d.ts.map +1 -0
- package/dist/types/session/outcome.js +45 -0
- package/dist/types/session/outcome.js.map +1 -0
- package/dist/types/session/prepare-step.d.ts +2 -0
- package/dist/types/session/prepare-step.d.ts.map +1 -1
- package/dist/types/session/records.d.ts +167 -2
- package/dist/types/session/records.d.ts.map +1 -1
- package/dist/types/session/records.js +42 -0
- package/dist/types/session/records.js.map +1 -1
- package/dist/types/session/turn.d.ts +18 -0
- package/dist/types/session/turn.d.ts.map +1 -1
- package/dist/types/session/turn.js.map +1 -1
- package/dist/types/tool/index.d.ts +30 -0
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/types/tool/presentation.d.ts +6 -0
- package/dist/types/tool/presentation.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/agents/QueryAgent.ts +5 -0
- package/src/agents/examples/SupervisorAgent.ts +1 -0
- package/src/agents/explore.ts +2 -1
- package/src/compaction/index.ts +1 -0
- package/src/compaction/model-summary.ts +2 -2
- package/src/compaction/summary.ts +30 -2
- package/src/config/runtime.ts +15 -0
- package/src/execution/workflow/runtime.ts +4 -0
- package/src/execution/workflow/types.ts +9 -0
- package/src/manager/agent/child-session.ts +36 -0
- package/src/manager/agent/lifecycle.ts +9 -0
- package/src/manager/session/turn-recorder.ts +115 -30
- package/src/pricing/rates.source.json +1 -1
- package/src/prompt/coding-agent-doctrine.ts +5 -3
- package/src/provider/fallback.ts +6 -1
- package/src/provider/retry.ts +51 -0
- package/src/public-runtime.ts +10 -1
- package/src/public-tools.ts +6 -1
- package/src/runtime/query/auto-review/classifier.ts +21 -5
- package/src/runtime/query/auto-review/prompt.ts +2 -0
- package/src/runtime/query/auto-review/script-evidence.ts +618 -0
- package/src/runtime/query/checkpoint.ts +53 -1
- package/src/runtime/query/context.ts +33 -6
- package/src/runtime/query/executor.ts +183 -21
- package/src/runtime/query/finalize-turn.ts +8 -1
- package/src/runtime/query/index.ts +19 -0
- package/src/runtime/query/iteration/index.ts +167 -14
- package/src/runtime/query/iteration/phases/compaction.ts +53 -3
- package/src/runtime/query/iteration/phases/context.ts +6 -0
- package/src/runtime/query/iteration/stream-turn.ts +3 -3
- package/src/runtime/query/prelude-lease.ts +19 -0
- package/src/runtime/query/prepare-turn.ts +29 -12
- package/src/runtime/query/review-policy.ts +33 -0
- package/src/runtime/query/session-storage.ts +42 -3
- package/src/runtime/query/tooling.ts +3 -0
- package/src/runtime/query/turn/completion-audit.ts +76 -5
- package/src/runtime/query/turn/outcome-ledger.ts +633 -0
- package/src/sandbox/file-walk.ts +41 -4
- package/src/sandbox/glob-segment.ts +48 -24
- package/src/store/checkpoint/contract.ts +15 -0
- package/src/store/checkpoint/disk.ts +34 -2
- package/src/store/checkpoint/prune.ts +13 -0
- package/src/store/evidence/disk.ts +57 -2
- package/src/store/session-log/incremental.ts +147 -0
- package/src/store/session-log/index.ts +7 -0
- package/src/store/session-log/turn-outcome.ts +84 -0
- package/src/tools/admit-facts.ts +1 -0
- package/src/tools/builtins/bash.ts +12 -2
- package/src/tools/builtins/bounded-file-read.ts +59 -2
- package/src/tools/builtins/edit-apply.ts +26 -4
- package/src/tools/builtins/edit.ts +106 -41
- package/src/tools/builtins/glob.ts +1 -1
- package/src/tools/builtins/grep.ts +173 -27
- package/src/tools/builtins/notebook-guard.ts +76 -0
- package/src/tools/builtins/read-render.ts +12 -2
- package/src/tools/builtins/search-support.ts +62 -0
- package/src/tools/builtins/write-file.ts +12 -1
- package/src/tools/coordinator/agent.ts +31 -7
- package/src/tools/coordinator/index.ts +6 -1
- package/src/tools/coordinator/outcome-record.ts +93 -0
- package/src/tools/defineTool.ts +3 -0
- package/src/tools/file-read-tracker.ts +51 -2
- package/src/tools/untrusted-envelope.ts +23 -1
- package/src/toolsets/manager.ts +6 -10
- package/src/toolsets/validation-issues.ts +97 -0
- package/src/turn/memory-recall.ts +28 -0
- package/src/types/agent/base.ts +20 -0
- package/src/types/agent/query.ts +2 -0
- package/src/types/common/index.ts +25 -1
- package/src/types/hitl/index.ts +27 -0
- package/src/types/session/config.ts +20 -0
- package/src/types/session/events.ts +3 -3
- package/src/types/session/index.ts +1 -0
- package/src/types/session/outcome.ts +139 -0
- package/src/types/session/prepare-step.ts +2 -0
- package/src/types/session/records.ts +67 -1
- package/src/types/session/turn.ts +19 -0
- package/src/types/tool/index.ts +30 -0
- package/src/types/tool/presentation.ts +6 -0
|
@@ -9,7 +9,72 @@ import { applyEdit, normalizeEditInput, } from './edit-apply.js';
|
|
|
9
9
|
import { withFileMutationLock } from './file-mutation-lock.js';
|
|
10
10
|
import { jsonStringEscapes } from './json-string-hint.js';
|
|
11
11
|
import { lineDiff } from './line-diff.js';
|
|
12
|
+
import { notebookRefusal } from './notebook-guard.js';
|
|
12
13
|
import { staleBeforeReview } from './stale-before-review.js';
|
|
14
|
+
const ONE_SHAPE_EACH = 'Single edit: {"path":"file.md","old_string":"exact unique text","new_string":"replacement text"}\nSeveral edits: {"path":"file.md","edits":[{"old_string":"a","new_string":"b"},{"old_string":"c","new_string":"d"}]}';
|
|
15
|
+
const hasTopLevelEdit = (value) => value.old_string !== undefined ||
|
|
16
|
+
value.oldStr !== undefined ||
|
|
17
|
+
value.new_string !== undefined ||
|
|
18
|
+
value.newStr !== undefined ||
|
|
19
|
+
value.insertLine !== undefined;
|
|
20
|
+
/**
|
|
21
|
+
* A top-level edit that is exactly the one entry of a one-entry batch: the same
|
|
22
|
+
* call said twice, not two intentions. Anything else (a different text, a
|
|
23
|
+
* longer list, an insertion) is a real conflict and stays refused.
|
|
24
|
+
*/
|
|
25
|
+
function restatesTheBatch(value) {
|
|
26
|
+
const entries = value.edits;
|
|
27
|
+
if (entries === undefined || entries.length !== 1 || value.insertLine !== undefined)
|
|
28
|
+
return false;
|
|
29
|
+
const [entry] = entries;
|
|
30
|
+
return (entry !== undefined &&
|
|
31
|
+
(value.old_string ?? value.oldStr) === entry.old_string &&
|
|
32
|
+
(value.new_string ?? value.newStr) === entry.new_string &&
|
|
33
|
+
(value.replace_all ?? false) === (entry.replace_all ?? false));
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Which of the two shapes this call is, and what to say when it is neither.
|
|
37
|
+
*
|
|
38
|
+
* An empty `edits` beside a top-level edit, and a one-entry `edits` that restates
|
|
39
|
+
* the top-level edit, are the single edit: the intent is not in doubt and nothing
|
|
40
|
+
* is dropped. A batch beside a DIFFERENT top-level edit stays refused, because
|
|
41
|
+
* any precedence would silently drop an edit somebody believes was made.
|
|
42
|
+
*/
|
|
43
|
+
function checkEditShape(value) {
|
|
44
|
+
const batch = value.edits !== undefined && value.edits.length > 0;
|
|
45
|
+
const top = hasTopLevelEdit(value);
|
|
46
|
+
if (value.edits !== undefined && !batch && !top) {
|
|
47
|
+
return `\`edits\` is an empty list, so there is nothing to change. Send exactly one of these, and leave out the field you are not using:\n${ONE_SHAPE_EACH}`;
|
|
48
|
+
}
|
|
49
|
+
if (batch && top && !restatesTheBatch(value)) {
|
|
50
|
+
return `This call has both an \`edits\` list and a different top-level edit, and only one can be applied. Send exactly one of these, and leave out the field you are not using:\n${ONE_SHAPE_EACH}`;
|
|
51
|
+
}
|
|
52
|
+
if (batch)
|
|
53
|
+
return undefined;
|
|
54
|
+
if (typeof value.new_string !== 'string' && typeof value.newStr !== 'string') {
|
|
55
|
+
return 'Either new_string or newStr is required.';
|
|
56
|
+
}
|
|
57
|
+
if (value.insertLine === undefined &&
|
|
58
|
+
typeof value.old_string !== 'string' &&
|
|
59
|
+
typeof value.oldStr !== 'string') {
|
|
60
|
+
return 'Either old_string/oldStr or insertLine is required.';
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The input every later stage sees: one shape, with the redundant half gone. The
|
|
66
|
+
* review card, the classifier, the dry run and the apply step all read this, so
|
|
67
|
+
* none of them meets `edits: []` or a restated edit.
|
|
68
|
+
*/
|
|
69
|
+
function canonicalEditInput(value) {
|
|
70
|
+
if (value.edits === undefined)
|
|
71
|
+
return value;
|
|
72
|
+
const { edits, ...rest } = value;
|
|
73
|
+
if (edits.length === 0)
|
|
74
|
+
return rest;
|
|
75
|
+
const { old_string, oldStr, new_string, newStr, insertLine, ...kept } = rest;
|
|
76
|
+
return { ...kept, edits };
|
|
77
|
+
}
|
|
13
78
|
/**
|
|
14
79
|
* Two schemas, on purpose.
|
|
15
80
|
*
|
|
@@ -82,31 +147,20 @@ const inputSchema = z
|
|
|
82
147
|
.describe('Replace every occurrence of this old_string instead of requiring one.'),
|
|
83
148
|
})
|
|
84
149
|
.strict())
|
|
85
|
-
|
|
150
|
+
// No `.min(1)`: a model that fills every optional field of a flat object
|
|
151
|
+
// sends `edits: []` next to a single top-level edit, and that is the
|
|
152
|
+
// single edit, not an error. An empty list with nothing beside it is
|
|
153
|
+
// refused by `checkEditShape` below, in a sentence that says what to send.
|
|
86
154
|
.optional()
|
|
87
|
-
.describe('Several replacements in one file, applied in order and committed together. Nothing is written unless every one applies.'),
|
|
155
|
+
.describe('Several replacements in one file, applied in order and committed together. Nothing is written unless every one applies. Leave out when sending a single old_string/new_string.'),
|
|
88
156
|
})
|
|
89
157
|
.strict()
|
|
90
|
-
.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
typeof value.oldStr === 'string', { message: 'Either old_string/oldStr or insertLine is required.' })
|
|
97
|
-
// Refused rather than resolved. A call carrying both an `edits` list and a
|
|
98
|
-
// top-level replacement is two different intentions in one object, and any
|
|
99
|
-
// precedence this code picked would be a guess about which the model meant
|
|
100
|
-
// — silently dropping the other. There is no reading of that which is safe:
|
|
101
|
-
// the dropped half is an edit somebody believes was made.
|
|
102
|
-
.refine((value) => value.edits === undefined ||
|
|
103
|
-
(value.old_string === undefined &&
|
|
104
|
-
value.oldStr === undefined &&
|
|
105
|
-
value.new_string === undefined &&
|
|
106
|
-
value.newStr === undefined &&
|
|
107
|
-
value.insertLine === undefined), {
|
|
108
|
-
message: 'Use either `edits` or a single top-level edit, not both. Move the top-level old_string/new_string into the edits list.',
|
|
109
|
-
});
|
|
158
|
+
.superRefine((value, ctx) => {
|
|
159
|
+
const problem = checkEditShape(value);
|
|
160
|
+
if (problem)
|
|
161
|
+
ctx.addIssue({ code: 'custom', message: problem });
|
|
162
|
+
})
|
|
163
|
+
.transform(canonicalEditInput);
|
|
110
164
|
/**
|
|
111
165
|
* What an `edit` call WOULD produce for a file body, without touching any file.
|
|
112
166
|
*
|
|
@@ -135,7 +189,12 @@ export function dryRunEdit(content, input) {
|
|
|
135
189
|
};
|
|
136
190
|
}
|
|
137
191
|
const result = applyEdit(content, normalized.operations);
|
|
138
|
-
|
|
192
|
+
if (!result.success)
|
|
193
|
+
return result;
|
|
194
|
+
const notebook = notebookRefusal(parsed.data.path, result.content, content);
|
|
195
|
+
if (notebook)
|
|
196
|
+
return { success: false, error: notebook };
|
|
197
|
+
return { success: true, content: result.content };
|
|
139
198
|
}
|
|
140
199
|
/**
|
|
141
200
|
* What a capable provider constrains the model to emit: one shape, closed.
|
|
@@ -154,7 +213,7 @@ const modelInputSchema = {
|
|
|
154
213
|
},
|
|
155
214
|
old_string: {
|
|
156
215
|
type: 'string',
|
|
157
|
-
description: '
|
|
216
|
+
description: 'For a single change: exact unique text from the file, without read-tool line-number prefixes. Must not be empty. Do not send together with edits.',
|
|
158
217
|
},
|
|
159
218
|
new_string: {
|
|
160
219
|
type: 'string',
|
|
@@ -228,7 +287,7 @@ const modelInputSchema = {
|
|
|
228
287
|
required: ['old_string', 'new_string'],
|
|
229
288
|
additionalProperties: false,
|
|
230
289
|
},
|
|
231
|
-
description: '
|
|
290
|
+
description: 'For SEVERAL changes to one file: a non-empty list, applied in order and committed together. Nothing is written unless every one applies. Leave this field out entirely when you send old_string/new_string; never send an empty list.',
|
|
232
291
|
},
|
|
233
292
|
},
|
|
234
293
|
// `old_string` is deliberately NOT required, and this is the fix.
|
|
@@ -367,7 +426,7 @@ function refusedEdit(result, path) {
|
|
|
367
426
|
}
|
|
368
427
|
export const EditTool = defineTool({
|
|
369
428
|
name: 'edit',
|
|
370
|
-
description: 'Makes targeted edits to a file using exact string find-and-replace or line insertion. To change an existing file, use `edit`: `write` overwrites the whole body and discards earlier work on partial failure, while `edit` keeps the rest of the file byte-for-byte intact and is recoverable: if a single edit fails (old_string/oldStr ambiguous, broader restructuring needed), follow up with another `edit` instead of re-emitting the entire file via `write`. The old_string/oldStr must be unique in the file unless replace_all is true. For insertions, pass insertLine plus new_string/newStr; use insertLine: "end" to extend a file at the end. Keep new_string/newStr under 12000 characters, because a longer payload can be cut off mid-call and fail; use repeated bounded edits for long sections. Preserves file formatting and indentation. To make several changes to one file that only make sense together, send them as `edits
|
|
429
|
+
description: 'Makes targeted edits to a file using exact string find-and-replace or line insertion. To change an existing file, use `edit`: `write` overwrites the whole body and discards earlier work on partial failure, while `edit` keeps the rest of the file byte-for-byte intact and is recoverable: if a single edit fails (old_string/oldStr ambiguous, broader restructuring needed), follow up with another `edit` instead of re-emitting the entire file via `write`. The old_string/oldStr must be unique in the file unless replace_all is true. For insertions, pass insertLine plus new_string/newStr; use insertLine: "end" to extend a file at the end. Keep new_string/newStr under 12000 characters, because a longer payload can be cut off mid-call and fail; use repeated bounded edits for long sections. Preserves file formatting and indentation. To make several changes to one file that only make sense together, send them as `edits` (and then no top-level old_string/new_string; for a single change leave `edits` out): a list of {old_string, new_string} applied in order and committed as one write — if any of them does not apply, nothing is written and the reply names which one, so the file is never left half-changed. An edit that would leave a `.ipynb` file as invalid notebook JSON is refused and the file is unchanged.',
|
|
371
430
|
inputSchema,
|
|
372
431
|
modelInputSchema,
|
|
373
432
|
enforceModelInput: true,
|
|
@@ -387,7 +446,7 @@ export const EditTool = defineTool({
|
|
|
387
446
|
refuseBeforeReview: (input, context) => staleBeforeReview(context, input.path, 'edit'),
|
|
388
447
|
// The classifier judges which file changes and in what way, in a line.
|
|
389
448
|
classifierInput: (input) => {
|
|
390
|
-
if (input.edits !== undefined) {
|
|
449
|
+
if (input.edits !== undefined && input.edits.length > 0) {
|
|
391
450
|
const shown = input.edits.slice(0, 5).map((e) => describeChange(e.old_string, e.new_string));
|
|
392
451
|
const more = input.edits.length > shown.length ? `; ${input.edits.length - shown.length} more` : '';
|
|
393
452
|
return clip(`${input.path}: ${input.edits.length} edits: ${shown.join('; ')}${more}`, 1500);
|
|
@@ -491,6 +550,9 @@ export const EditTool = defineTool({
|
|
|
491
550
|
const result = admitted.result;
|
|
492
551
|
if (!result.success)
|
|
493
552
|
return refusedEdit(result, parsed.data.path);
|
|
553
|
+
const notebook = notebookRefusal(parsed.data.path, result.content, content);
|
|
554
|
+
if (notebook)
|
|
555
|
+
return { success: false, output: '', error: notebook };
|
|
494
556
|
await context.sandbox.writeFile(parsed.data.path, result.content);
|
|
495
557
|
recordEditedContent(context, parsed.data.path, result.content);
|
|
496
558
|
const changed = editFacts(parsed.data.path, result.replacements, content, result.content);
|
|
@@ -513,6 +575,9 @@ export const EditTool = defineTool({
|
|
|
513
575
|
const result = admitted.result;
|
|
514
576
|
if (!result.success)
|
|
515
577
|
return refusedEdit(result, hostPath);
|
|
578
|
+
const notebook = notebookRefusal(hostPath, result.content, content);
|
|
579
|
+
if (notebook)
|
|
580
|
+
return { success: false, output: '', error: notebook };
|
|
516
581
|
// Temp file, fsync, rename — a reader sees the old body or the new
|
|
517
582
|
// one, never a half-written one. A plain `writeFile` that fails
|
|
518
583
|
// partway leaves the user's source truncated.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/tools/builtins/edit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/tools/builtins/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ function relativePattern(pattern, root, sandboxed) {
|
|
|
43
43
|
}
|
|
44
44
|
export const GlobTool = defineTool({
|
|
45
45
|
name: 'glob',
|
|
46
|
-
description: 'Finds regular files by glob pattern in a bounded search. "*" searches one directory; use "**" explicitly for recursive discovery. Skips files that .gitignore and .ignore rules exclude unless include_ignored is set, and files the read rules of the session deny. Returns at most 500 paths and says when a result is limited or a search stopped early. Does not follow symlinks.',
|
|
46
|
+
description: 'Finds regular files by glob pattern in a bounded search. "*" searches one directory; use "**" explicitly for recursive discovery. Skips files that .gitignore and .ignore rules exclude unless include_ignored is set, and files the read rules of the session deny. Returns at most 500 paths and says when a result is limited or a search stopped early. Does not follow symlinks. To search inside files, use grep.',
|
|
47
47
|
inputSchema,
|
|
48
48
|
category: 'filesystem',
|
|
49
49
|
// Declared so a path outside the turn's roots can be reviewed before the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../src/tools/builtins/glob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC9F,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,gBAAgB,EAChB,aAAa,GACb,MAAM,qBAAqB,CAAA;AAE5B,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAE5B,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,OAAO,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,CACR,sMAAsM,CACtM;IACF,IAAI,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACR,qGAAqG,CACrG;IACF,cAAc,EAAE,CAAC;SACf,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACR,0HAA0H,CAC1H;IACF,eAAe,EAAE,CAAC;SAChB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACR,qHAAqH,CACrH;CACF,CAAC,CAAA;AAEF,sEAAsE;AACtE,SAAS,eAAe,CAAC,OAAe,EAAE,IAAY,EAAE,SAAkB;IACzE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC/D,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACd,yGAAyG,CACzG,CAAA;IACF,CAAC;IACD,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC7F,MAAM,GAAG,SAAS;YACjB,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;YAChC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACxD,OAAO,MAAM,IAAI,GAAG,CAAA;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;IAClC,IAAI,EAAE,MAAM;IACZ,WAAW,EACV,
|
|
1
|
+
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../src/tools/builtins/glob.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Largest file the local reader reads synchronously, by the size on the open
|
|
3
|
+
* handle. One synchronous read of a file is one uninterrupted block, which on a
|
|
4
|
+
* slow mount can last tens of milliseconds; a larger file is read through the
|
|
5
|
+
* asynchronous bounded read instead, which lets the event loop run between
|
|
6
|
+
* chunks.
|
|
7
|
+
*/
|
|
8
|
+
export declare const LOCAL_SYNC_READ_MAX_BYTES: number;
|
|
1
9
|
/** Entries returned when `head_limit` is not given. */
|
|
2
10
|
export declare const DEFAULT_HEAD_LIMIT = 250;
|
|
3
11
|
/** A matching or context line longer than this is replaced by a notice, not printed. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/grep.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/grep.ts"],"names":[],"mappings":"AA8DA;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,QAAY,CAAA;AA4HlD,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,MAAM,CAAA;AAErC,wFAAwF;AACxF,eAAO,MAAM,gBAAgB,MAAM,CAAA;AAwInC,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;EAoWnB,CAAA"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { stat } from 'node:fs/promises';
|
|
2
|
-
import { isAbsolute, join, relative, sep } from 'node:path';
|
|
2
|
+
import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { walkFilesLocally } from '../../sandbox/file-walk.js';
|
|
5
5
|
import { subscribeToAbort } from '../../utils/abort.js';
|
|
6
6
|
import { defineTool } from '../defineTool.js';
|
|
7
|
-
import { resolveWithin, resolveWithinAny, resolveWithinAnyReal, resolveWithinReal, toolRoots, } from '../paths.js';
|
|
7
|
+
import { canonicalize, resolveWithin, resolveWithinAny, resolveWithinAnyReal, resolveWithinReal, toolRoots, } from '../paths.js';
|
|
8
8
|
import { relativePosix, resolveWithinPosix } from '../posix-path.js';
|
|
9
|
-
import { readBoundedChunks, readBoundedFile } from './bounded-file-read.js';
|
|
10
|
-
import { MAX_FILES_SEARCHED, SEARCH_BUDGET_MS, hostDisplayPath, ignoredHint, isEntryLimit, isReadDenied, openSearchBudget, plural, stoppedNotice, } from './search-support.js';
|
|
9
|
+
import { CAN_REFUSE_LINKS, REFUSE_LINK_FLAG, readBoundedChunks, readBoundedFile, readBoundedFileSync, } from './bounded-file-read.js';
|
|
10
|
+
import { MAX_FILES_SEARCHED, SEARCH_BUDGET_MS, hostDisplayPath, ignoredHint, isEntryLimit, isReadDenied, openSearchBudget, plural, readAhead, stoppedNotice, } from './search-support.js';
|
|
11
11
|
/** A remote read has no signal parameter; stop consuming it when the turn ends. */
|
|
12
12
|
async function readWithSignal(read, signal) {
|
|
13
13
|
signal?.throwIfAborted();
|
|
@@ -31,6 +31,112 @@ async function readWithSignal(read, signal) {
|
|
|
31
31
|
dispose?.();
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
+
/** Longest the local read loop holds the event loop before it yields. */
|
|
35
|
+
const READ_SLICE_MS = 8;
|
|
36
|
+
/**
|
|
37
|
+
* Largest file the local reader reads synchronously, by the size on the open
|
|
38
|
+
* handle. One synchronous read of a file is one uninterrupted block, which on a
|
|
39
|
+
* slow mount can last tens of milliseconds; a larger file is read through the
|
|
40
|
+
* asynchronous bounded read instead, which lets the event loop run between
|
|
41
|
+
* chunks.
|
|
42
|
+
*/
|
|
43
|
+
export const LOCAL_SYNC_READ_MAX_BYTES = 64 * 1024;
|
|
44
|
+
/**
|
|
45
|
+
* Reads files of a local search root. Each directory is resolved to its real
|
|
46
|
+
* path once and checked against the real root once; a file is then one open
|
|
47
|
+
* (links refused at the last component), fstat, read and close, all
|
|
48
|
+
* synchronous, with a yield to the event loop every few milliseconds. That is
|
|
49
|
+
* the same containment decision as resolving every file, because the walk
|
|
50
|
+
* lists only regular files in real directories and the open refuses a file
|
|
51
|
+
* that has become a link. Not used for a sandbox, nor where the platform cannot
|
|
52
|
+
* refuse links.
|
|
53
|
+
*/
|
|
54
|
+
function createLocalReader(root, signal) {
|
|
55
|
+
const scratch = Buffer.allocUnsafe(64 * 1024);
|
|
56
|
+
const rootRealPromise = canonicalize(resolve(root));
|
|
57
|
+
const directories = new Map();
|
|
58
|
+
let sliceStart = performance.now();
|
|
59
|
+
const realDirectory = (directory) => {
|
|
60
|
+
let known = directories.get(directory);
|
|
61
|
+
if (!known) {
|
|
62
|
+
known = canonicalize(directory);
|
|
63
|
+
directories.set(directory, known);
|
|
64
|
+
}
|
|
65
|
+
return known;
|
|
66
|
+
};
|
|
67
|
+
let rootReal;
|
|
68
|
+
return {
|
|
69
|
+
async read(filePath) {
|
|
70
|
+
if (performance.now() - sliceStart > READ_SLICE_MS) {
|
|
71
|
+
await new Promise((done) => setImmediate(done));
|
|
72
|
+
sliceStart = performance.now();
|
|
73
|
+
}
|
|
74
|
+
signal?.throwIfAborted();
|
|
75
|
+
const directory = dirname(filePath);
|
|
76
|
+
const real = await realDirectory(directory);
|
|
77
|
+
rootReal ??= await rootRealPromise;
|
|
78
|
+
const contained = real === directory ? filePath : join(real, filePath.slice(directory.length + 1));
|
|
79
|
+
if (!(contained.startsWith(rootReal + sep) || contained === rootReal)) {
|
|
80
|
+
const rel = relative(rootReal, contained);
|
|
81
|
+
if (rel.startsWith('..') || isAbsolute(rel)) {
|
|
82
|
+
throw new Error('Path escapes the working directory through a link.');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
signal?.throwIfAborted();
|
|
86
|
+
try {
|
|
87
|
+
const read = readBoundedFileSync(contained, MAX_FILE_SIZE, scratch, LOCAL_SYNC_READ_MAX_BYTES);
|
|
88
|
+
if (read !== 'large')
|
|
89
|
+
return { buffer: read, contained };
|
|
90
|
+
// The handle that measured the file is closed; the asynchronous read opens it
|
|
91
|
+
// again with the same flags (links refused) and repeats every check.
|
|
92
|
+
const large = await readBoundedFile(contained, MAX_FILE_SIZE, signal, undefined, REFUSE_LINK_FLAG);
|
|
93
|
+
sliceStart = performance.now();
|
|
94
|
+
return { buffer: large, contained };
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
// Gone since the walk listed it: absent, as a walk that ran later would find it.
|
|
98
|
+
const code = error.code;
|
|
99
|
+
if (code === 'ENOENT' || code === 'ENOTDIR')
|
|
100
|
+
return { buffer: 'gone', contained };
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/** A walked path that is already inside `root` in normal form, or null when it needs the full check. */
|
|
107
|
+
const PLAIN_TAIL = /(^|\/)\.{1,2}(\/|$)|\/\/|\/$/;
|
|
108
|
+
/**
|
|
109
|
+
* The fast form of what `resolveWithin` and the display path compute for the
|
|
110
|
+
* walk's own entries on a POSIX host: a path the walk built under `root` is
|
|
111
|
+
* already normal, so it is returned as it is and its display name is a
|
|
112
|
+
* prefix plus the tail. Anything else, and every other platform, takes the
|
|
113
|
+
* full computation.
|
|
114
|
+
*/
|
|
115
|
+
function createWalkedPaths(root, lexicalRoot, workingDirectory) {
|
|
116
|
+
if (sep !== '/')
|
|
117
|
+
return undefined;
|
|
118
|
+
const prefix = root === '/' ? '/' : `${root}/`;
|
|
119
|
+
const rootRel = relative(workingDirectory, lexicalRoot);
|
|
120
|
+
const display = rootRel.startsWith('..') || isAbsolute(rootRel) ? undefined : rootRel;
|
|
121
|
+
return {
|
|
122
|
+
within(path) {
|
|
123
|
+
if (path.startsWith(prefix) && path.length > prefix.length) {
|
|
124
|
+
if (!PLAIN_TAIL.test(path.slice(prefix.length)))
|
|
125
|
+
return path;
|
|
126
|
+
}
|
|
127
|
+
return resolveWithin(root, path);
|
|
128
|
+
},
|
|
129
|
+
displayName(path) {
|
|
130
|
+
if (display === undefined || !path.startsWith(prefix) || path.length === prefix.length) {
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
const tail = path.slice(prefix.length);
|
|
134
|
+
if (PLAIN_TAIL.test(tail))
|
|
135
|
+
return undefined;
|
|
136
|
+
return display === '' ? tail : `${display}/${tail}`;
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
}
|
|
34
140
|
function relativeInclude(include, root, sandboxed) {
|
|
35
141
|
let pattern = sandboxed ? include : include.split(sep).join('/');
|
|
36
142
|
if (pattern.split('/').includes('..'))
|
|
@@ -164,16 +270,11 @@ const inputSchema = z.object({
|
|
|
164
270
|
const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5 MB — skip binaries/large files
|
|
165
271
|
const BINARY_CHECK_BYTES = 512;
|
|
166
272
|
function isBinaryContent(buffer) {
|
|
167
|
-
|
|
168
|
-
for (const byte of check) {
|
|
169
|
-
if (byte === 0)
|
|
170
|
-
return true;
|
|
171
|
-
}
|
|
172
|
-
return false;
|
|
273
|
+
return buffer.subarray(0, BINARY_CHECK_BYTES).includes(0);
|
|
173
274
|
}
|
|
174
275
|
export const GrepTool = defineTool({
|
|
175
276
|
name: 'grep',
|
|
176
|
-
description: 'Searches file contents using a regular expression. By default returns the paths of matching files, newest first; output_mode "content" returns matching lines with file paths, line numbers and optional context lines, and "count" returns the number of matching lines per file. Set multiline for a pattern that spans lines and type (js, py, rust, ...) to search one kind of file. In content mode, before_context and after_context override symmetric context_lines; only_matching returns matched substrings without context. Results are paged: head_limit (default 250, 0 for none) and offset. A line over 500 characters is replaced by a notice. Searches hidden files unless include_hidden is false. Skips files that .gitignore and .ignore rules exclude unless include_ignored is set, and files the read rules of the session deny. Says when a result is limited or a search stopped early. Skips binary files, files over 5 MB, and symlinks. Choose the narrowest relevant directory.',
|
|
277
|
+
description: 'Searches file contents using a regular expression. By default returns the paths of matching files, newest first; output_mode "content" returns matching lines with file paths, line numbers and optional context lines, and "count" returns the number of matching lines per file. Set multiline for a pattern that spans lines and type (js, py, rust, ...) to search one kind of file. In content mode, before_context and after_context override symmetric context_lines; only_matching returns matched substrings without context. Results are paged: head_limit (default 250, 0 for none) and offset. A line over 500 characters is replaced by a notice. Searches hidden files unless include_hidden is false. Skips files that .gitignore and .ignore rules exclude unless include_ignored is set, and files the read rules of the session deny. Says when a result is limited or a search stopped early. Skips binary files, files over 5 MB, and symlinks. Choose the narrowest relevant directory. To find files by name, use glob.',
|
|
177
278
|
inputSchema,
|
|
178
279
|
category: 'analysis',
|
|
179
280
|
// Declared so a path outside the turn's roots can be reviewed before the
|
|
@@ -251,7 +352,11 @@ export const GrepTool = defineTool({
|
|
|
251
352
|
walkEnd = value;
|
|
252
353
|
},
|
|
253
354
|
};
|
|
254
|
-
|
|
355
|
+
// A local walk is read ahead so its directory reads overlap with matching; a
|
|
356
|
+
// sandbox's walk is left as the adapter produces it.
|
|
357
|
+
const entries = walkSandbox
|
|
358
|
+
? walkSandbox(root, options)
|
|
359
|
+
: readAhead(walkFilesLocally(root, { ...options, withoutSizes: CAN_REFUSE_LINKS }));
|
|
255
360
|
// `execute` is reachable without the schema's defaults.
|
|
256
361
|
const mode = input.output_mode ?? 'files_with_matches';
|
|
257
362
|
// `max_results` predates `head_limit`; it keeps meaning "at most this many".
|
|
@@ -278,12 +383,16 @@ export const GrepTool = defineTool({
|
|
|
278
383
|
// for can be served.
|
|
279
384
|
const filesToCollect = headLimit > 0 ? offset + Math.max(headLimit * 4, 1000) : Number.POSITIVE_INFINITY;
|
|
280
385
|
let enough = false;
|
|
386
|
+
const walked = sandbox
|
|
387
|
+
? undefined
|
|
388
|
+
: createWalkedPaths(root, lexicalRoot, context.workingDirectory);
|
|
389
|
+
const localReader = !sandbox && CAN_REFUSE_LINKS ? createLocalReader(root, signal) : undefined;
|
|
281
390
|
try {
|
|
282
391
|
for await (const entry of entries) {
|
|
283
392
|
signal?.throwIfAborted();
|
|
284
393
|
const filePath = sandbox
|
|
285
394
|
? resolveWithinPosix(root, entry.path)
|
|
286
|
-
: resolveWithin(root, entry.path);
|
|
395
|
+
: (walked?.within(entry.path) ?? resolveWithin(root, entry.path));
|
|
287
396
|
if (filesSearched >= MAX_FILES_SEARCHED) {
|
|
288
397
|
fileLimit = true;
|
|
289
398
|
break;
|
|
@@ -298,12 +407,27 @@ export const GrepTool = defineTool({
|
|
|
298
407
|
let content;
|
|
299
408
|
let contained;
|
|
300
409
|
try {
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
410
|
+
let buffer;
|
|
411
|
+
if (localReader) {
|
|
412
|
+
const read = await localReader.read(filePath);
|
|
413
|
+
contained = read.contained;
|
|
414
|
+
// Over the cap by the size on the open handle: skipped, not unreadable.
|
|
415
|
+
if (read.buffer === 'too-large')
|
|
416
|
+
continue;
|
|
417
|
+
// Gone since the walk listed it: as if the walk had not listed it.
|
|
418
|
+
if (read.buffer === 'gone') {
|
|
419
|
+
filesSearched--;
|
|
420
|
+
continue;
|
|
421
|
+
}
|
|
422
|
+
buffer = read.buffer;
|
|
423
|
+
}
|
|
424
|
+
else
|
|
425
|
+
buffer = await readWithSignal(() => sandbox
|
|
426
|
+
? readBoundedChunks((offset, length) => sandbox.readFile(filePath, { offset, length, signal: signal }), MAX_FILE_SIZE, signal)
|
|
427
|
+
: resolveWithinReal(root, filePath).then((path) => {
|
|
428
|
+
contained = path;
|
|
429
|
+
return readBoundedFile(path, MAX_FILE_SIZE, signal);
|
|
430
|
+
}), signal);
|
|
307
431
|
signal?.throwIfAborted();
|
|
308
432
|
if (buffer.length > MAX_FILE_SIZE || isBinaryContent(buffer))
|
|
309
433
|
continue;
|
|
@@ -319,7 +443,8 @@ export const GrepTool = defineTool({
|
|
|
319
443
|
let fileMatches = 0;
|
|
320
444
|
const relPath = sandbox
|
|
321
445
|
? relativePosix(sandbox.rootDir, filePath)
|
|
322
|
-
:
|
|
446
|
+
: (walked?.displayName(filePath) ??
|
|
447
|
+
hostDisplayPath(context.workingDirectory, join(lexicalRoot, relative(root, filePath))));
|
|
323
448
|
if (mode === 'content' && input.only_matching) {
|
|
324
449
|
for (const fragment of matchingFragments(content, regex, multiline)) {
|
|
325
450
|
signal?.throwIfAborted();
|
|
@@ -531,7 +656,9 @@ async function sortByNewest(files) {
|
|
|
531
656
|
function lineHits(lines, regex, context) {
|
|
532
657
|
const hits = [];
|
|
533
658
|
for (let i = 0; i < lines.length; i++) {
|
|
534
|
-
|
|
659
|
+
// A cancellation is seen within a few hundred lines; per line it cost more than the match.
|
|
660
|
+
if ((i & 255) === 0)
|
|
661
|
+
context.abortSignal?.throwIfAborted();
|
|
535
662
|
regex.lastIndex = 0;
|
|
536
663
|
if (regex.test(lines[i] ?? ''))
|
|
537
664
|
hits.push([i, i]);
|