tweak: allow read tool to accept offset of 0 (#25431)
This commit is contained in:
@@ -154,10 +154,6 @@ export const ReadTool = Tool.define(
|
|||||||
params: Schema.Schema.Type<typeof Parameters>,
|
params: Schema.Schema.Type<typeof Parameters>,
|
||||||
ctx: Tool.Context,
|
ctx: Tool.Context,
|
||||||
) {
|
) {
|
||||||
if (params.offset !== undefined && params.offset < 1) {
|
|
||||||
return yield* Effect.fail(new Error("offset must be greater than or equal to 1"))
|
|
||||||
}
|
|
||||||
|
|
||||||
const instance = yield* InstanceState.context
|
const instance = yield* InstanceState.context
|
||||||
let filepath = params.filePath
|
let filepath = params.filePath
|
||||||
if (!path.isAbsolute(filepath)) {
|
if (!path.isAbsolute(filepath)) {
|
||||||
@@ -192,7 +188,7 @@ export const ReadTool = Tool.define(
|
|||||||
if (stat.type === "Directory") {
|
if (stat.type === "Directory") {
|
||||||
const items = yield* list(filepath)
|
const items = yield* list(filepath)
|
||||||
const limit = params.limit ?? DEFAULT_READ_LIMIT
|
const limit = params.limit ?? DEFAULT_READ_LIMIT
|
||||||
const offset = params.offset ?? 1
|
const offset = params.offset || 1
|
||||||
const start = offset - 1
|
const start = offset - 1
|
||||||
const sliced = items.slice(start, start + limit)
|
const sliced = items.slice(start, start + limit)
|
||||||
const truncated = start + sliced.length < items.length
|
const truncated = start + sliced.length < items.length
|
||||||
@@ -249,7 +245,7 @@ export const ReadTool = Tool.define(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const file = yield* Effect.promise(() =>
|
const file = yield* Effect.promise(() =>
|
||||||
lines(filepath, { limit: params.limit ?? DEFAULT_READ_LIMIT, offset: params.offset ?? 1 }),
|
lines(filepath, { limit: params.limit ?? DEFAULT_READ_LIMIT, offset: params.offset || 1 }),
|
||||||
)
|
)
|
||||||
if (file.count < file.offset && !(file.count === 0 && file.offset === 1)) {
|
if (file.count < file.offset && !(file.count === 0 && file.offset === 1)) {
|
||||||
return yield* Effect.fail(
|
return yield* Effect.fail(
|
||||||
|
|||||||
Reference in New Issue
Block a user