@namzu/sdk 51.1.0 → 52.1.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 +119 -0
- package/dist/agents/QueryAgent.d.ts.map +1 -1
- package/dist/agents/QueryAgent.js +2 -0
- package/dist/agents/QueryAgent.js.map +1 -1
- package/dist/agents/SupervisorAgent.d.ts +1 -1
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/agents/examples/SupervisorAgent.d.ts +42 -0
- package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/examples/SupervisorAgent.js +80 -4
- package/dist/agents/examples/SupervisorAgent.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/authorization/protected-paths.d.ts +36 -0
- package/dist/authorization/protected-paths.d.ts.map +1 -0
- package/dist/authorization/protected-paths.js +107 -0
- package/dist/authorization/protected-paths.js.map +1 -0
- package/dist/authorization/readonly-commands.d.ts +39 -0
- package/dist/authorization/readonly-commands.d.ts.map +1 -0
- package/dist/authorization/readonly-commands.js +797 -0
- package/dist/authorization/readonly-commands.js.map +1 -0
- package/dist/authorization/readonly-flags.d.ts +19 -0
- package/dist/authorization/readonly-flags.d.ts.map +1 -0
- package/dist/authorization/readonly-flags.js +178 -0
- package/dist/authorization/readonly-flags.js.map +1 -0
- package/dist/authorization/removal.d.ts +52 -0
- package/dist/authorization/removal.d.ts.map +1 -0
- package/dist/authorization/removal.js +283 -0
- package/dist/authorization/removal.js.map +1 -0
- package/dist/authorization/shell-paths.d.ts +66 -0
- package/dist/authorization/shell-paths.d.ts.map +1 -0
- package/dist/authorization/shell-paths.js +697 -0
- package/dist/authorization/shell-paths.js.map +1 -0
- package/dist/bridge/acp/update.d.ts.map +1 -1
- package/dist/bridge/acp/update.js +1 -0
- package/dist/bridge/acp/update.js.map +1 -1
- package/dist/compaction/context-window.d.ts +24 -0
- package/dist/compaction/context-window.d.ts.map +1 -1
- package/dist/compaction/context-window.js +34 -0
- package/dist/compaction/context-window.js.map +1 -1
- package/dist/compaction/manual.d.ts.map +1 -1
- package/dist/compaction/manual.js +10 -2
- package/dist/compaction/manual.js.map +1 -1
- package/dist/compaction/plan.d.ts +4 -0
- package/dist/compaction/plan.d.ts.map +1 -1
- package/dist/compaction/plan.js +6 -2
- package/dist/compaction/plan.js.map +1 -1
- package/dist/compaction/verifier.d.ts +11 -1
- package/dist/compaction/verifier.d.ts.map +1 -1
- package/dist/compaction/verifier.js +75 -23
- package/dist/compaction/verifier.js.map +1 -1
- package/dist/config/runtime.d.ts +55 -7
- package/dist/config/runtime.d.ts.map +1 -1
- package/dist/config/runtime.js +23 -2
- package/dist/config/runtime.js.map +1 -1
- package/dist/connector/web/guarded-fetch.d.ts.map +1 -1
- package/dist/connector/web/guarded-fetch.js +24 -0
- package/dist/connector/web/guarded-fetch.js.map +1 -1
- package/dist/connector/web/index.d.ts +1 -1
- package/dist/connector/web/index.d.ts.map +1 -1
- package/dist/connector/web/page.d.ts +59 -0
- package/dist/connector/web/page.d.ts.map +1 -0
- package/dist/connector/web/page.js +112 -0
- package/dist/connector/web/page.js.map +1 -0
- package/dist/connector/web/types.d.ts +47 -0
- package/dist/connector/web/types.d.ts.map +1 -1
- package/dist/connector/web/types.js.map +1 -1
- package/dist/constants/continuation.d.ts +8 -0
- package/dist/constants/continuation.d.ts.map +1 -1
- package/dist/constants/continuation.js +8 -0
- package/dist/constants/continuation.js.map +1 -1
- package/dist/constants/plugin/index.d.ts +1 -1
- package/dist/constants/plugin/index.d.ts.map +1 -1
- package/dist/constants/plugin/index.js +1 -1
- package/dist/constants/plugin/index.js.map +1 -1
- package/dist/contracts/a2a.d.ts +2 -2
- package/dist/manager/agent/lifecycle.d.ts +7 -0
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +11 -2
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/session/turn-recorder.d.ts.map +1 -1
- package/dist/manager/session/turn-recorder.js +4 -2
- package/dist/manager/session/turn-recorder.js.map +1 -1
- package/dist/plugin/index.d.ts +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +1 -1
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/lifecycle.d.ts +6 -0
- package/dist/plugin/lifecycle.d.ts.map +1 -1
- package/dist/plugin/lifecycle.js +98 -114
- package/dist/plugin/lifecycle.js.map +1 -1
- package/dist/plugin/shell-hook.d.ts +90 -22
- package/dist/plugin/shell-hook.d.ts.map +1 -1
- package/dist/plugin/shell-hook.js +434 -41
- package/dist/plugin/shell-hook.js.map +1 -1
- package/dist/provider/capabilities.d.ts +9 -0
- package/dist/provider/capabilities.d.ts.map +1 -1
- package/dist/provider/capabilities.js +15 -0
- package/dist/provider/capabilities.js.map +1 -1
- package/dist/provider/errors.d.ts.map +1 -1
- package/dist/provider/errors.js +13 -0
- package/dist/provider/errors.js.map +1 -1
- package/dist/provider/fallback.d.ts.map +1 -1
- package/dist/provider/fallback.js +10 -0
- package/dist/provider/fallback.js.map +1 -1
- package/dist/provider/idle-timeout.d.ts.map +1 -1
- package/dist/provider/idle-timeout.js +5 -0
- package/dist/provider/idle-timeout.js.map +1 -1
- package/dist/provider/image-input-refusal.d.ts +9 -0
- package/dist/provider/image-input-refusal.d.ts.map +1 -0
- package/dist/provider/image-input-refusal.js +54 -0
- package/dist/provider/image-input-refusal.js.map +1 -0
- package/dist/provider/index.d.ts +2 -1
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +2 -1
- package/dist/provider/index.js.map +1 -1
- package/dist/provider/retry.d.ts +7 -2
- package/dist/provider/retry.d.ts.map +1 -1
- package/dist/provider/retry.js +38 -4
- package/dist/provider/retry.js.map +1 -1
- package/dist/public-runtime.d.ts +5 -2
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +5 -2
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-types.d.ts +2 -2
- package/dist/public-types.d.ts.map +1 -1
- package/dist/runtime/jobs/registry.d.ts +21 -0
- package/dist/runtime/jobs/registry.d.ts.map +1 -1
- package/dist/runtime/jobs/registry.js +15 -2
- package/dist/runtime/jobs/registry.js.map +1 -1
- package/dist/runtime/query/deferred-sandbox.d.ts +54 -0
- package/dist/runtime/query/deferred-sandbox.d.ts.map +1 -0
- package/dist/runtime/query/deferred-sandbox.js +75 -0
- package/dist/runtime/query/deferred-sandbox.js.map +1 -0
- package/dist/runtime/query/executor/tool-call-admission.d.ts +10 -0
- package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.js +74 -13
- package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +51 -2
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +214 -9
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/finalize-turn.d.ts +6 -0
- package/dist/runtime/query/finalize-turn.d.ts.map +1 -1
- package/dist/runtime/query/finalize-turn.js +1 -1
- package/dist/runtime/query/finalize-turn.js.map +1 -1
- package/dist/runtime/query/index.d.ts +29 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +108 -28
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +57 -0
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +380 -28
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction-breaker.d.ts +61 -0
- package/dist/runtime/query/iteration/phases/compaction-breaker.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/compaction-breaker.js +94 -0
- package/dist/runtime/query/iteration/phases/compaction-breaker.js.map +1 -0
- package/dist/runtime/query/iteration/phases/compaction.d.ts +42 -1
- package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +203 -23
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +10 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +165 -2
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/iteration/provider-rejected-image.d.ts +21 -1
- package/dist/runtime/query/iteration/provider-rejected-image.d.ts.map +1 -1
- package/dist/runtime/query/iteration/provider-rejected-image.js +53 -7
- package/dist/runtime/query/iteration/provider-rejected-image.js.map +1 -1
- package/dist/runtime/query/iteration/request-repair.d.ts +108 -0
- package/dist/runtime/query/iteration/request-repair.d.ts.map +1 -0
- package/dist/runtime/query/iteration/request-repair.js +593 -0
- package/dist/runtime/query/iteration/request-repair.js.map +1 -0
- package/dist/runtime/query/iteration/stream-turn.d.ts +6 -0
- package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.js +2 -2
- package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
- package/dist/runtime/query/path-escalation.d.ts +36 -0
- package/dist/runtime/query/path-escalation.d.ts.map +1 -0
- package/dist/runtime/query/path-escalation.js +184 -0
- package/dist/runtime/query/path-escalation.js.map +1 -0
- package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
- package/dist/runtime/query/plugin-hooks.js +8 -0
- package/dist/runtime/query/plugin-hooks.js.map +1 -1
- package/dist/runtime/query/reminders.d.ts +35 -0
- package/dist/runtime/query/reminders.d.ts.map +1 -0
- package/dist/runtime/query/reminders.js +7 -0
- package/dist/runtime/query/reminders.js.map +1 -0
- package/dist/runtime/query/request-rich-content.d.ts +5 -1
- package/dist/runtime/query/request-rich-content.d.ts.map +1 -1
- package/dist/runtime/query/request-rich-content.js +67 -25
- package/dist/runtime/query/request-rich-content.js.map +1 -1
- package/dist/runtime/query/resume-pending.d.ts.map +1 -1
- package/dist/runtime/query/resume-pending.js +26 -0
- package/dist/runtime/query/resume-pending.js.map +1 -1
- package/dist/runtime/query/review-policy.d.ts +26 -0
- package/dist/runtime/query/review-policy.d.ts.map +1 -1
- package/dist/runtime/query/review-policy.js +79 -5
- package/dist/runtime/query/review-policy.js.map +1 -1
- package/dist/runtime/query/tool-output-budget.d.ts +46 -0
- package/dist/runtime/query/tool-output-budget.d.ts.map +1 -1
- package/dist/runtime/query/tool-output-budget.js +85 -1
- package/dist/runtime/query/tool-output-budget.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +1 -0
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +5 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/session/paths.d.ts +5 -1
- package/dist/session/paths.d.ts.map +1 -1
- package/dist/session/paths.js +8 -0
- package/dist/session/paths.js.map +1 -1
- package/dist/store/memory/disk.d.ts.map +1 -1
- package/dist/store/memory/disk.js +2 -2
- package/dist/store/memory/disk.js.map +1 -1
- package/dist/store/memory/markdown.d.ts.map +1 -1
- package/dist/store/memory/markdown.js +2 -2
- package/dist/store/memory/markdown.js.map +1 -1
- package/dist/store/memory/naming.d.ts +9 -0
- package/dist/store/memory/naming.d.ts.map +1 -1
- package/dist/store/memory/naming.js +12 -0
- package/dist/store/memory/naming.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts +30 -1
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +170 -26
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/computer-use.d.ts +1 -1
- package/dist/tools/builtins/computer-use.d.ts.map +1 -1
- package/dist/tools/builtins/computer-use.js +12 -5
- package/dist/tools/builtins/computer-use.js.map +1 -1
- package/dist/tools/builtins/content-fingerprint.d.ts +2 -0
- package/dist/tools/builtins/content-fingerprint.d.ts.map +1 -1
- package/dist/tools/builtins/content-fingerprint.js +4 -0
- package/dist/tools/builtins/content-fingerprint.js.map +1 -1
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +60 -18
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/grep.d.ts +8 -1
- package/dist/tools/builtins/grep.d.ts.map +1 -1
- package/dist/tools/builtins/grep.js +152 -33
- package/dist/tools/builtins/grep.js.map +1 -1
- package/dist/tools/builtins/read-file.d.ts +1 -0
- package/dist/tools/builtins/read-file.d.ts.map +1 -1
- package/dist/tools/builtins/read-file.js +44 -5
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/read-render.d.ts +52 -0
- package/dist/tools/builtins/read-render.d.ts.map +1 -1
- package/dist/tools/builtins/read-render.js +143 -0
- package/dist/tools/builtins/read-render.js.map +1 -1
- package/dist/tools/builtins/web.d.ts +13 -2
- package/dist/tools/builtins/web.d.ts.map +1 -1
- package/dist/tools/builtins/web.js +225 -32
- package/dist/tools/builtins/web.js.map +1 -1
- package/dist/tools/coordinator/ask-user-question.d.ts +2 -0
- package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
- package/dist/tools/coordinator/ask-user-question.js +256 -92
- package/dist/tools/coordinator/ask-user-question.js.map +1 -1
- package/dist/tools/coordinator/question-options.d.ts +1 -0
- package/dist/tools/coordinator/question-options.d.ts.map +1 -1
- package/dist/tools/coordinator/question-options.js +6 -1
- package/dist/tools/coordinator/question-options.js.map +1 -1
- package/dist/tools/defineTool.d.ts +4 -1
- package/dist/tools/defineTool.d.ts.map +1 -1
- package/dist/tools/defineTool.js +6 -1
- package/dist/tools/defineTool.js.map +1 -1
- package/dist/tools/paths.d.ts +6 -0
- package/dist/tools/paths.d.ts.map +1 -1
- package/dist/tools/paths.js +1 -1
- package/dist/tools/paths.js.map +1 -1
- package/dist/types/agent/query.d.ts +3 -0
- package/dist/types/agent/query.d.ts.map +1 -1
- package/dist/types/errors/catalog.js +1 -1
- package/dist/types/errors/catalog.js.map +1 -1
- package/dist/types/hitl/index.d.ts +104 -0
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js.map +1 -1
- package/dist/types/message/index.d.ts +1 -1
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +2 -0
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/plugin/index.d.ts +93 -19
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/plugin/index.js +3 -0
- package/dist/types/plugin/index.js.map +1 -1
- package/dist/types/provider/errors.d.ts +19 -0
- package/dist/types/provider/errors.d.ts.map +1 -1
- package/dist/types/provider/errors.js +54 -5
- package/dist/types/provider/errors.js.map +1 -1
- package/dist/types/provider/interface.d.ts +12 -0
- package/dist/types/provider/interface.d.ts.map +1 -1
- package/dist/types/provider/stream.d.ts +1 -1
- package/dist/types/session/config.d.ts +14 -0
- package/dist/types/session/config.d.ts.map +1 -1
- package/dist/types/session/events.d.ts +27 -4
- package/dist/types/session/events.d.ts.map +1 -1
- package/dist/types/session/events.js.map +1 -1
- package/dist/types/session/records.d.ts +9 -9
- package/dist/types/session/records.d.ts.map +1 -1
- package/dist/types/session/records.js +1 -0
- package/dist/types/session/records.js.map +1 -1
- package/dist/types/session/stop-reason.d.ts +5 -0
- package/dist/types/session/stop-reason.d.ts.map +1 -1
- package/dist/types/tool/index.d.ts +52 -0
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/package.json +4 -2
- package/src/agents/QueryAgent.ts +5 -1
- package/src/agents/SupervisorAgent.ts +1 -1
- package/src/agents/examples/SupervisorAgent.ts +217 -106
- package/src/agents/index.ts +1 -1
- package/src/authorization/protected-paths.ts +110 -0
- package/src/authorization/readonly-commands.ts +771 -0
- package/src/authorization/readonly-flags.ts +196 -0
- package/src/authorization/removal.ts +326 -0
- package/src/authorization/shell-paths.ts +927 -0
- package/src/bridge/acp/update.ts +1 -0
- package/src/compaction/context-window.ts +41 -0
- package/src/compaction/manual.ts +10 -2
- package/src/compaction/plan.ts +11 -2
- package/src/compaction/verifier.ts +84 -22
- package/src/config/runtime.ts +23 -2
- package/src/connector/web/guarded-fetch.ts +26 -0
- package/src/connector/web/index.ts +3 -0
- package/src/connector/web/page.ts +130 -0
- package/src/connector/web/types.ts +47 -0
- package/src/constants/continuation.ts +10 -0
- package/src/constants/plugin/index.ts +1 -1
- package/src/manager/agent/lifecycle.ts +12 -4
- package/src/manager/session/turn-recorder.ts +10 -2
- package/src/plugin/index.ts +1 -0
- package/src/plugin/lifecycle.ts +107 -119
- package/src/plugin/shell-hook.ts +477 -43
- package/src/provider/capabilities.ts +17 -0
- package/src/provider/errors.ts +13 -0
- package/src/provider/fallback.ts +10 -0
- package/src/provider/idle-timeout.ts +5 -0
- package/src/provider/image-input-refusal.ts +54 -0
- package/src/provider/index.ts +2 -0
- package/src/provider/retry.ts +42 -4
- package/src/public-runtime.ts +11 -0
- package/src/public-types.ts +4 -0
- package/src/runtime/jobs/registry.ts +39 -2
- package/src/runtime/query/deferred-sandbox.ts +110 -0
- package/src/runtime/query/executor/tool-call-admission.ts +79 -13
- package/src/runtime/query/executor.ts +267 -11
- package/src/runtime/query/finalize-turn.ts +7 -1
- package/src/runtime/query/index.ts +169 -52
- package/src/runtime/query/iteration/index.ts +439 -35
- package/src/runtime/query/iteration/phases/compaction-breaker.ts +108 -0
- package/src/runtime/query/iteration/phases/compaction.ts +241 -38
- package/src/runtime/query/iteration/phases/context.ts +11 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +177 -2
- package/src/runtime/query/iteration/provider-rejected-image.ts +71 -5
- package/src/runtime/query/iteration/request-repair.ts +743 -0
- package/src/runtime/query/iteration/stream-turn.ts +11 -1
- package/src/runtime/query/path-escalation.ts +204 -0
- package/src/runtime/query/plugin-hooks.ts +8 -0
- package/src/runtime/query/reminders.ts +45 -0
- package/src/runtime/query/request-rich-content.ts +77 -27
- package/src/runtime/query/resume-pending.ts +27 -0
- package/src/runtime/query/review-policy.ts +106 -5
- package/src/runtime/query/tool-output-budget.ts +115 -1
- package/src/runtime/query/tooling.ts +6 -0
- package/src/session/paths.ts +11 -1
- package/src/store/memory/disk.ts +2 -1
- package/src/store/memory/markdown.ts +2 -1
- package/src/store/memory/naming.ts +13 -0
- package/src/tools/builtins/bash.ts +203 -34
- package/src/tools/builtins/computer-use.ts +13 -4
- package/src/tools/builtins/content-fingerprint.ts +5 -0
- package/src/tools/builtins/edit.ts +69 -19
- package/src/tools/builtins/grep.ts +159 -38
- package/src/tools/builtins/read-file.ts +48 -5
- package/src/tools/builtins/read-render.ts +193 -0
- package/src/tools/builtins/web.ts +258 -33
- package/src/tools/coordinator/ask-user-question.ts +309 -103
- package/src/tools/coordinator/question-options.ts +8 -1
- package/src/tools/defineTool.ts +11 -2
- package/src/tools/paths.ts +1 -1
- package/src/types/agent/query.ts +3 -0
- package/src/types/errors/catalog.ts +1 -1
- package/src/types/hitl/index.ts +104 -0
- package/src/types/message/index.ts +2 -0
- package/src/types/plugin/index.ts +101 -18
- package/src/types/provider/errors.ts +66 -5
- package/src/types/provider/interface.ts +13 -0
- package/src/types/provider/stream.ts +1 -1
- package/src/types/session/config.ts +14 -0
- package/src/types/session/events.ts +32 -4
- package/src/types/session/records.ts +1 -0
- package/src/types/session/stop-reason.ts +5 -0
- package/src/types/tool/index.ts +53 -2
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { readFile } from 'node:fs/promises';
|
|
1
|
+
import { readFile, stat } from 'node:fs/promises';
|
|
2
2
|
import { extname } from 'node:path';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { defineTool } from '../defineTool.js';
|
|
5
5
|
import { resolveWithinAnyReal, toolRoots } from '../paths.js';
|
|
6
6
|
import { looksBinary } from '../text-window.js';
|
|
7
7
|
import { fingerprintContent } from './content-fingerprint.js';
|
|
8
|
-
import {
|
|
8
|
+
import { renderCappedRead } from './read-render.js';
|
|
9
9
|
const inputSchema = z.object({
|
|
10
10
|
path: z.string().describe('Path to the file to read (absolute or relative)'),
|
|
11
11
|
// A two-element ARRAY, not a `z.tuple`, and the distinction is the whole
|
|
@@ -29,10 +29,14 @@ const inputSchema = z.object({
|
|
|
29
29
|
.optional()
|
|
30
30
|
.describe('Starting line number (0-indexed). Defaults to 0 (beginning of file).'),
|
|
31
31
|
limit: z.coerce.number().optional().describe('Maximum number of lines to read'),
|
|
32
|
+
allow_large: z
|
|
33
|
+
.boolean()
|
|
34
|
+
.optional()
|
|
35
|
+
.describe('Raise the size and token caps for this one read. Set it only after a read was refused as too large and you genuinely need all of the file.'),
|
|
32
36
|
});
|
|
33
37
|
export const ReadFileTool = defineTool({
|
|
34
38
|
name: 'read',
|
|
35
|
-
description: 'Reads a file and returns its contents with line numbers. Supports readRange ([start,end], 1-indexed inclusive) or offset/limit for large files. Without a window it returns the first 2000 lines and says so — pass offset/limit to continue.',
|
|
39
|
+
description: 'Reads a file and returns its contents with line numbers. Supports readRange ([start,end], 1-indexed inclusive) or offset/limit for large files. Without a window it returns the first 2000 lines and says so — pass offset/limit to continue. A file over 256 KiB is refused unless a window is named, and a result over about 25,000 tokens is cut to a first page that names the next call; pass allow_large only when you need all of it.',
|
|
36
40
|
inputSchema,
|
|
37
41
|
category: 'filesystem',
|
|
38
42
|
// Declared so a path outside the turn's roots can be reviewed before the
|
|
@@ -42,6 +46,9 @@ export const ReadFileTool = defineTool({
|
|
|
42
46
|
readOnly: true,
|
|
43
47
|
destructive: false,
|
|
44
48
|
concurrencySafe: true,
|
|
49
|
+
// Bounded by the size and token caps in `renderCappedRead`, so the turn's
|
|
50
|
+
// default per-result cap and the per-message budget leave it alone.
|
|
51
|
+
selfLimitingOutput: true,
|
|
45
52
|
presentCall(input) {
|
|
46
53
|
if (typeof input.path !== 'string')
|
|
47
54
|
return undefined;
|
|
@@ -76,7 +83,10 @@ export const ReadFileTool = defineTool({
|
|
|
76
83
|
};
|
|
77
84
|
}
|
|
78
85
|
const content = buffer.toString('utf-8');
|
|
79
|
-
const
|
|
86
|
+
const capped = renderCappedRead(content, buffer.length, input, capOptions(input, context));
|
|
87
|
+
if (!capped.ok)
|
|
88
|
+
return refusedRead(input.path, buffer.length, capped.message, true);
|
|
89
|
+
const rendered = capped.rendered;
|
|
80
90
|
recordObservedRead(context, input.path, content, rendered);
|
|
81
91
|
return {
|
|
82
92
|
success: true,
|
|
@@ -92,6 +102,14 @@ export const ReadFileTool = defineTool({
|
|
|
92
102
|
};
|
|
93
103
|
}
|
|
94
104
|
const filePath = await resolveWithinAnyReal(toolRoots(context), input.path);
|
|
105
|
+
// Refused on the size alone, before the file is in memory, when no window
|
|
106
|
+
// was named: the cap exists so a huge file is never loaded to be refused.
|
|
107
|
+
if (input.readRange === undefined && input.limit === undefined) {
|
|
108
|
+
const { size } = await stat(filePath);
|
|
109
|
+
const early = renderCappedRead('', size, input, capOptions(input, context));
|
|
110
|
+
if (!early.ok)
|
|
111
|
+
return refusedRead(filePath, size, early.message, false);
|
|
112
|
+
}
|
|
95
113
|
const buffer = await readFile(filePath);
|
|
96
114
|
const binaryGuidance = describeStructuredBinaryRead(filePath, buffer);
|
|
97
115
|
if (binaryGuidance) {
|
|
@@ -111,7 +129,10 @@ export const ReadFileTool = defineTool({
|
|
|
111
129
|
};
|
|
112
130
|
}
|
|
113
131
|
const content = buffer.toString('utf-8');
|
|
114
|
-
const
|
|
132
|
+
const capped = renderCappedRead(content, buffer.length, input, capOptions(input, context));
|
|
133
|
+
if (!capped.ok)
|
|
134
|
+
return refusedRead(filePath, buffer.length, capped.message, false);
|
|
135
|
+
const rendered = capped.rendered;
|
|
115
136
|
recordObservedRead(context, filePath, content, rendered);
|
|
116
137
|
return {
|
|
117
138
|
success: true,
|
|
@@ -126,6 +147,24 @@ export const ReadFileTool = defineTool({
|
|
|
126
147
|
};
|
|
127
148
|
},
|
|
128
149
|
});
|
|
150
|
+
function capOptions(input, context) {
|
|
151
|
+
const tokens = Number(context.env?.NAMZU_FILE_READ_MAX_OUTPUT_TOKENS);
|
|
152
|
+
return {
|
|
153
|
+
path: input.path,
|
|
154
|
+
ext: extname(input.path).toLowerCase(),
|
|
155
|
+
...(input.allow_large === true ? { allowLarge: true } : {}),
|
|
156
|
+
...(Number.isFinite(tokens) && tokens > 0 ? { caps: { maxTokens: tokens } } : {}),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
function refusedRead(path, bytes, message, sandboxed) {
|
|
160
|
+
return {
|
|
161
|
+
success: false,
|
|
162
|
+
output: '',
|
|
163
|
+
error: message,
|
|
164
|
+
data: { path, tooLarge: true, ...(sandboxed ? { sandboxed: true } : {}) },
|
|
165
|
+
facts: { kind: 'read', path, bytes },
|
|
166
|
+
};
|
|
167
|
+
}
|
|
129
168
|
/**
|
|
130
169
|
* What a read returned, as fields. A file that is not text is named as such,
|
|
131
170
|
* so a host says "Binary file, 4 KB" instead of drawing the bytes the model's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../../src/tools/builtins/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../../src/tools/builtins/read-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,4 +53,56 @@ export declare function resolveReadWindow(input: ReadWindowRequest, totalLines:
|
|
|
53
53
|
start: number;
|
|
54
54
|
end: number;
|
|
55
55
|
};
|
|
56
|
+
/**
|
|
57
|
+
* Largest file `read` returns whole when the caller named no window.
|
|
58
|
+
* A file over it is refused with the way to read part of it.
|
|
59
|
+
*/
|
|
60
|
+
export declare const MAX_READ_BYTES = 262144;
|
|
61
|
+
/** Largest read result, in estimated tokens. */
|
|
62
|
+
export declare const MAX_READ_TOKENS = 25000;
|
|
63
|
+
/**
|
|
64
|
+
* What `allow_large` multiplies both caps by.
|
|
65
|
+
*
|
|
66
|
+
* The caps it lifts are "what still fits in the context left this turn",
|
|
67
|
+
* which this kernel does not track, so it lifts them by a fixed factor.
|
|
68
|
+
*/
|
|
69
|
+
export declare const ALLOW_LARGE_FACTOR = 4;
|
|
70
|
+
/** The ways a read can be refused before it returns anything. */
|
|
71
|
+
export type ReadRefusal = string;
|
|
72
|
+
export interface ReadCaps {
|
|
73
|
+
readonly maxBytes: number;
|
|
74
|
+
readonly maxTokens: number;
|
|
75
|
+
}
|
|
76
|
+
export interface ReadCapOptions {
|
|
77
|
+
readonly path: string;
|
|
78
|
+
/** File extension with the dot, lower case; JSON text is denser per token. */
|
|
79
|
+
readonly ext: string;
|
|
80
|
+
readonly allowLarge?: boolean;
|
|
81
|
+
/** Overrides for the defaults, from the host's environment. */
|
|
82
|
+
readonly caps?: Partial<ReadCaps>;
|
|
83
|
+
}
|
|
84
|
+
/** Estimated tokens: characters over four, over two for JSON text. */
|
|
85
|
+
export declare function estimateReadTokens(text: string, ext: string): number;
|
|
86
|
+
/**
|
|
87
|
+
* Render a read, or refuse it, under the size and token caps.
|
|
88
|
+
*
|
|
89
|
+
* Three rules, in the order they are checked:
|
|
90
|
+
*
|
|
91
|
+
* 1. No window named and the file over {@link MAX_READ_BYTES}: refuse. A caller
|
|
92
|
+
* that asked for a window (`readRange`, `limit`) has chosen its size.
|
|
93
|
+
* 2. A selected window over `maxTokens * 128` bytes: refuse.
|
|
94
|
+
* 3. The selected text over `maxTokens` by estimate: for the first page of an
|
|
95
|
+
* unwindowed read, return the lines that fit with a notice naming the next
|
|
96
|
+
* call; for any other read, refuse and report the count.
|
|
97
|
+
*
|
|
98
|
+
* Pure, like {@link renderNumberedRead}; a read that none of this touches
|
|
99
|
+
* renders byte for byte as `renderNumberedRead` does.
|
|
100
|
+
*/
|
|
101
|
+
export declare function renderCappedRead(content: string, byteLength: number, input: ReadWindowRequest, options: ReadCapOptions): {
|
|
102
|
+
ok: true;
|
|
103
|
+
rendered: RenderedRead;
|
|
104
|
+
} | {
|
|
105
|
+
ok: false;
|
|
106
|
+
message: ReadRefusal;
|
|
107
|
+
};
|
|
56
108
|
//# sourceMappingURL=read-render.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-render.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/read-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAEtC,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IACjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAW1F;AAsBD,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAahC"}
|
|
1
|
+
{"version":3,"file":"read-render.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/read-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAEtC,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IACjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAW1F;AAsBD,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAahC;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,SAAU,CAAA;AAErC,gDAAgD;AAChD,eAAO,MAAM,eAAe,QAAS,CAAA;AASrC;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAKnC,iEAAiE;AACjE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAEhC,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,8EAA8E;IAC9E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;CACjC;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGpE;AAcD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,cAAc,GACrB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CA2C5E"}
|
|
@@ -70,4 +70,147 @@ export function resolveReadWindow(input, totalLines) {
|
|
|
70
70
|
const end = input.limit ? start + input.limit : Math.min(totalLines, start + DEFAULT_READ_LINES);
|
|
71
71
|
return { start, end };
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Largest file `read` returns whole when the caller named no window.
|
|
75
|
+
* A file over it is refused with the way to read part of it.
|
|
76
|
+
*/
|
|
77
|
+
export const MAX_READ_BYTES = 262_144;
|
|
78
|
+
/** Largest read result, in estimated tokens. */
|
|
79
|
+
export const MAX_READ_TOKENS = 25_000;
|
|
80
|
+
/**
|
|
81
|
+
* Bytes of text one token is allowed to stand for when bounding a SELECTED
|
|
82
|
+
* window by its bytes: a window may hold at most `tokens * 128` bytes before
|
|
83
|
+
* it is refused outright, without estimating anything.
|
|
84
|
+
*/
|
|
85
|
+
const SELECTED_BYTES_PER_TOKEN = 128;
|
|
86
|
+
/**
|
|
87
|
+
* What `allow_large` multiplies both caps by.
|
|
88
|
+
*
|
|
89
|
+
* The caps it lifts are "what still fits in the context left this turn",
|
|
90
|
+
* which this kernel does not track, so it lifts them by a fixed factor.
|
|
91
|
+
*/
|
|
92
|
+
export const ALLOW_LARGE_FACTOR = 4;
|
|
93
|
+
/** Share of the page a trimmed first page is aimed at, so the estimate lands under the cap. */
|
|
94
|
+
const TRIM_TARGET = 0.85;
|
|
95
|
+
/** Estimated tokens: characters over four, over two for JSON text. */
|
|
96
|
+
export function estimateReadTokens(text, ext) {
|
|
97
|
+
const perToken = ext === '.json' || ext === '.jsonl' || ext === '.jsonc' ? 2 : 4;
|
|
98
|
+
return Math.round(text.length / perToken);
|
|
99
|
+
}
|
|
100
|
+
function humanBytes(n) {
|
|
101
|
+
if (n >= 1024 * 1024)
|
|
102
|
+
return `${(n / (1024 * 1024)).toFixed(1)} MiB`;
|
|
103
|
+
if (n >= 1024)
|
|
104
|
+
return `${Math.round(n / 1024)} KiB`;
|
|
105
|
+
return `${n} B`;
|
|
106
|
+
}
|
|
107
|
+
function allowLargeHint(allowedAlready) {
|
|
108
|
+
return allowedAlready
|
|
109
|
+
? ' Even with allow_large this is more than a read may return.'
|
|
110
|
+
: ' To read it anyway, call read again with allow_large: true, but only if you need all of it or were asked for the whole file.';
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Render a read, or refuse it, under the size and token caps.
|
|
114
|
+
*
|
|
115
|
+
* Three rules, in the order they are checked:
|
|
116
|
+
*
|
|
117
|
+
* 1. No window named and the file over {@link MAX_READ_BYTES}: refuse. A caller
|
|
118
|
+
* that asked for a window (`readRange`, `limit`) has chosen its size.
|
|
119
|
+
* 2. A selected window over `maxTokens * 128` bytes: refuse.
|
|
120
|
+
* 3. The selected text over `maxTokens` by estimate: for the first page of an
|
|
121
|
+
* unwindowed read, return the lines that fit with a notice naming the next
|
|
122
|
+
* call; for any other read, refuse and report the count.
|
|
123
|
+
*
|
|
124
|
+
* Pure, like {@link renderNumberedRead}; a read that none of this touches
|
|
125
|
+
* renders byte for byte as `renderNumberedRead` does.
|
|
126
|
+
*/
|
|
127
|
+
export function renderCappedRead(content, byteLength, input, options) {
|
|
128
|
+
const factor = options.allowLarge ? ALLOW_LARGE_FACTOR : 1;
|
|
129
|
+
const maxBytes = (options.caps?.maxBytes ?? MAX_READ_BYTES) * factor;
|
|
130
|
+
const maxTokens = (options.caps?.maxTokens ?? MAX_READ_TOKENS) * factor;
|
|
131
|
+
const hint = allowLargeHint(options.allowLarge === true);
|
|
132
|
+
const windowed = input.readRange !== undefined || input.limit !== undefined;
|
|
133
|
+
if (!windowed && byteLength > maxBytes) {
|
|
134
|
+
return {
|
|
135
|
+
ok: false,
|
|
136
|
+
message: `File content (${humanBytes(byteLength)}) exceeds the maximum allowed size (${humanBytes(maxBytes)}). Use offset and limit to read part of it, or search for what you need instead of reading all of it.${hint}`,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
const lines = content.split('\n');
|
|
140
|
+
const { start, end } = resolveReadWindow(input, lines.length);
|
|
141
|
+
const selected = lines.slice(start, end);
|
|
142
|
+
const selectedText = selected.join('\n');
|
|
143
|
+
const selectedBytes = Buffer.byteLength(selectedText, 'utf8');
|
|
144
|
+
if (selectedBytes > maxTokens * SELECTED_BYTES_PER_TOKEN) {
|
|
145
|
+
return {
|
|
146
|
+
ok: false,
|
|
147
|
+
message: `The requested lines hold over ${humanBytes(maxTokens * SELECTED_BYTES_PER_TOKEN)} of text, more than a read can return. Use a smaller limit; if a single line is this large, no limit will fit it, so search for what you need instead.${hint}`,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
const tokens = estimateReadTokens(selectedText, options.ext);
|
|
151
|
+
if (tokens <= maxTokens) {
|
|
152
|
+
return { ok: true, rendered: renderNumberedRead(content, input) };
|
|
153
|
+
}
|
|
154
|
+
const firstPage = input.readRange === undefined && input.limit === undefined && start === 0;
|
|
155
|
+
if (!firstPage) {
|
|
156
|
+
return {
|
|
157
|
+
ok: false,
|
|
158
|
+
message: `File content (${tokens} tokens) exceeds the maximum allowed tokens (${maxTokens}). Use offset and limit to read part of it, or search for what you need instead of reading all of it.${hint}`,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
ok: true,
|
|
163
|
+
rendered: trimFirstPage(selected, lines.length, selectedText, tokens, maxTokens, options.path),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* The first page of a file whose first window is over the token cap: the
|
|
168
|
+
* leading lines that fit, numbered, and a notice that says it is a page and
|
|
169
|
+
* names the next call.
|
|
170
|
+
*
|
|
171
|
+
* Sized from the measured ratio of characters to tokens, aimed at
|
|
172
|
+
* {@link TRIM_TARGET} of the cap, and shrunk by 30% up to six times if the
|
|
173
|
+
* estimate still lands over. A page whose first lines are themselves too long
|
|
174
|
+
* falls back to a character excerpt, which cannot be paged by line.
|
|
175
|
+
*/
|
|
176
|
+
function trimFirstPage(selected, totalLines, selectedText, tokens, maxTokens, path) {
|
|
177
|
+
const charsPerToken = Math.max(0.5, selectedText.length / Math.max(1, tokens));
|
|
178
|
+
const fits = (text) => text.length / charsPerToken <= maxTokens;
|
|
179
|
+
let keep = Math.max(1, Math.min(selected.length, Math.floor(((selected.length * maxTokens) / Math.max(1, tokens)) * TRIM_TARGET)));
|
|
180
|
+
let page = selected.slice(0, keep).join('\n');
|
|
181
|
+
for (let i = 0; i < 6; i++) {
|
|
182
|
+
if (fits(page) || keep <= 1)
|
|
183
|
+
break;
|
|
184
|
+
keep = Math.max(1, Math.floor(keep * 0.7));
|
|
185
|
+
page = selected.slice(0, keep).join('\n');
|
|
186
|
+
}
|
|
187
|
+
const tail = 'Do NOT answer from this page alone if the answer may be further in the file.]';
|
|
188
|
+
if (!fits(page) || page.trim() === '') {
|
|
189
|
+
let chars = Math.max(1, Math.floor(maxTokens * charsPerToken * TRIM_TARGET));
|
|
190
|
+
let excerpt = selectedText.slice(0, chars);
|
|
191
|
+
for (let i = 0; i < 6 && !fits(excerpt); i++) {
|
|
192
|
+
chars = Math.max(1, Math.floor(chars * 0.7));
|
|
193
|
+
excerpt = selectedText.slice(0, chars);
|
|
194
|
+
}
|
|
195
|
+
const last = excerpt.charCodeAt(excerpt.length - 1);
|
|
196
|
+
if (last >= 0xd800 && last <= 0xdbff)
|
|
197
|
+
excerpt = excerpt.slice(0, -1);
|
|
198
|
+
const shown = excerpt.split('\n').length;
|
|
199
|
+
return {
|
|
200
|
+
output: `${numbered(excerpt.split('\n'))}\n\n[Truncated: PARTIAL view — ${path}: showing the first ${excerpt.length} of ${selectedText.length} characters (${tokens} tokens, cap ${maxTokens}); this file has very long lines and cannot be paged by line. Use grep to find a specific section, or read with offset and limit. ${tail}`,
|
|
201
|
+
totalLines,
|
|
202
|
+
returnedLines: shown,
|
|
203
|
+
partial: true,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
return {
|
|
207
|
+
output: `${numbered(selected.slice(0, keep))}\n\n[Truncated: PARTIAL view — ${path}: showing lines 1-${keep} of ${totalLines} total (${tokens} tokens, cap ${maxTokens}). Call read with offset=${keep} limit=${keep} for the next page, or grep to find a specific section. ${tail}`,
|
|
208
|
+
totalLines,
|
|
209
|
+
returnedLines: keep,
|
|
210
|
+
partial: true,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
function numbered(lines) {
|
|
214
|
+
return lines.map((line, i) => `${i + 1}\t${line}`).join('\n');
|
|
215
|
+
}
|
|
73
216
|
//# sourceMappingURL=read-render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-render.js","sourceRoot":"","sources":["../../../src/tools/builtins/read-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAA;AA4BtC;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,KAAwB;IAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClF,OAAO;QACN,MAAM,EAAE,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;QAC1E,UAAU,EAAE,KAAK,CAAC,MAAM;QACxB,aAAa,EAAE,QAAQ,CAAC,MAAM;QAC9B,OAAO,EAAE,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;KACvC,CAAA;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,KAAa,EAAE,QAAgB,EAAE,KAAa;IACxE,IAAI,QAAQ,IAAI,KAAK;QAAE,OAAO,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAA;IAChC,OAAO;QACN,EAAE;QACF,EAAE;QACF,yBAAyB,KAAK,GAAG,CAAC,IAAI,OAAO,OAAO,KAAK,GAAG;QAC5D,gCAAgC,OAAO,sCAAsC;KAC7E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACb,CAAC;AAED,MAAM,UAAU,iBAAiB,CAChC,KAAwB,EACxB,UAAkB;IAElB,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAA;IAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;QACvD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IACtB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;IAC5C,oEAAoE;IACpE,uEAAuE;IACvE,sEAAsE;IACtE,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,GAAG,kBAAkB,CAAC,CAAA;IAChG,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"read-render.js","sourceRoot":"","sources":["../../../src/tools/builtins/read-render.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
export declare const WEB_FETCH_TOOL_NAME = "web_fetch";
|
|
2
2
|
export declare const WEB_SEARCH_TOOL_NAME = "web_search";
|
|
3
|
-
|
|
3
|
+
/** A server that can answer in markdown is asked to; HTML is the usual reply. */
|
|
4
|
+
export declare const WEB_FETCH_ACCEPT = "text/markdown, text/html, */*";
|
|
5
|
+
/**
|
|
6
|
+
* How a model is asked about a page. The page is data written by someone else,
|
|
7
|
+
* so it is told so, and the answer is held to short quotes.
|
|
8
|
+
*/
|
|
9
|
+
export declare const WEB_EXTRACT_INSTRUCTION: string;
|
|
10
|
+
/** The user message for one question about one page. */
|
|
11
|
+
export declare function webExtractBody(prompt: string, content: string): string;
|
|
12
|
+
export declare const WebFetchTool: import("../../types/tool/index.js").ToolDefinition<{
|
|
13
|
+
prompt: string;
|
|
4
14
|
url: string;
|
|
15
|
+
offset?: number | undefined;
|
|
5
16
|
}>;
|
|
6
|
-
export declare const WebSearchTool: import("../../
|
|
17
|
+
export declare const WebSearchTool: import("../../types/tool/index.js").ToolDefinition<{
|
|
7
18
|
query: string;
|
|
8
19
|
limit?: number | undefined;
|
|
9
20
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/web.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/web.ts"],"names":[],"mappings":"AA4DA,eAAO,MAAM,mBAAmB,cAAc,CAAA;AAC9C,eAAO,MAAM,oBAAoB,eAAe,CAAA;AAEhD,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,kCAAkC,CAAA;AAM/D;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAKxB,CAAA;AAEZ,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtE;AAuDD,eAAO,MAAM,YAAY;;;;EAmIvB,CAAA;AA8DF,eAAO,MAAM,aAAa;;;EAgDxB,CAAA"}
|