@stonerzju/opencode 1.2.17 → 1.2.19
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/bin/opencode +29 -157
- package/package.json +29 -29
- package/src/acp/agent.ts +4 -4
- package/src/acp/session.ts +1 -1
- package/src/agent/agent.ts +3 -3
- package/src/bun/index.ts +2 -2
- package/src/cli/cmd/acp.ts +3 -3
- package/src/cli/cmd/debug/file.ts +1 -1
- package/src/cli/cmd/github.ts +2 -2
- package/src/cli/cmd/pr.ts +1 -1
- package/src/cli/cmd/tui/app.tsx +24 -24
- package/src/cli/cmd/tui/attach.ts +3 -3
- package/src/cli/cmd/tui/component/dialog-agent.tsx +3 -3
- package/src/cli/cmd/tui/component/dialog-command.tsx +3 -3
- package/src/cli/cmd/tui/component/dialog-mcp.tsx +5 -5
- package/src/cli/cmd/tui/component/dialog-model.tsx +4 -4
- package/src/cli/cmd/tui/component/dialog-provider.tsx +4 -4
- package/src/cli/cmd/tui/component/dialog-session-list.tsx +5 -5
- package/src/cli/cmd/tui/component/dialog-session-rename.tsx +3 -3
- package/src/cli/cmd/tui/component/dialog-skill.tsx +3 -3
- package/src/cli/cmd/tui/component/dialog-stash.tsx +3 -3
- package/src/cli/cmd/tui/component/dialog-status.tsx +2 -2
- package/src/cli/cmd/tui/component/dialog-tag.tsx +3 -3
- package/src/cli/cmd/tui/component/logo.tsx +2 -2
- package/src/cli/cmd/tui/component/prompt/autocomplete.tsx +6 -6
- package/src/cli/cmd/tui/component/prompt/frecency.tsx +2 -2
- package/src/cli/cmd/tui/component/prompt/history.tsx +2 -2
- package/src/cli/cmd/tui/component/prompt/index.tsx +14 -14
- package/src/cli/cmd/tui/component/prompt/stash.tsx +2 -2
- package/src/cli/cmd/tui/component/textarea-keybindings.ts +1 -1
- package/src/cli/cmd/tui/component/tips.tsx +1 -1
- package/src/cli/cmd/tui/context/directory.ts +1 -1
- package/src/cli/cmd/tui/context/exit.tsx +1 -1
- package/src/cli/cmd/tui/context/keybind.tsx +2 -2
- package/src/cli/cmd/tui/context/kv.tsx +2 -2
- package/src/cli/cmd/tui/context/local.tsx +6 -6
- package/src/cli/cmd/tui/context/sync.tsx +4 -4
- package/src/cli/cmd/tui/context/theme/opencode.json +245 -0
- package/src/cli/cmd/tui/context/theme.tsx +2 -2
- package/src/cli/cmd/tui/context/tui-config.tsx +1 -1
- package/src/cli/cmd/tui/event.ts +2 -2
- package/src/cli/cmd/tui/routes/home.tsx +6 -6
- package/src/cli/cmd/tui/routes/session/dialog-fork-from-timeline.tsx +6 -6
- package/src/cli/cmd/tui/routes/session/dialog-message.tsx +6 -6
- package/src/cli/cmd/tui/routes/session/dialog-subagent.tsx +2 -2
- package/src/cli/cmd/tui/routes/session/dialog-timeline.tsx +3 -3
- package/src/cli/cmd/tui/routes/session/header.tsx +5 -5
- package/src/cli/cmd/tui/routes/session/index.tsx +32 -32
- package/src/cli/cmd/tui/routes/session/permission.tsx +4 -4
- package/src/cli/cmd/tui/routes/session/sidebar.tsx +4 -4
- package/src/cli/cmd/tui/thread.ts +9 -9
- package/src/cli/cmd/tui/ui/dialog-confirm.tsx +1 -1
- package/src/cli/cmd/tui/ui/dialog-help.tsx +2 -2
- package/src/cli/cmd/tui/ui/dialog-select.tsx +5 -5
- package/src/cli/cmd/tui/ui/dialog.tsx +3 -3
- package/src/cli/cmd/tui/ui/toast.tsx +1 -1
- package/src/cli/cmd/tui/util/editor.ts +3 -3
- package/src/cli/cmd/tui/util/transcript.ts +1 -1
- package/src/cli/cmd/tui/worker.ts +10 -10
- package/src/cli/error.ts +1 -1
- package/src/cli/ui.ts +1 -1
- package/src/cli/upgrade.ts +4 -4
- package/src/command/index.ts +1 -1
- package/src/config/config.ts +10 -10
- package/src/config/markdown.ts +1 -1
- package/src/config/migrate-tui-config.ts +5 -5
- package/src/config/paths.ts +4 -4
- package/src/config/tui.ts +4 -4
- package/src/control/control.sql.ts +1 -1
- package/src/control/index.ts +1 -1
- package/src/control-plane/adaptors/worktree.ts +1 -1
- package/src/control-plane/session-proxy-middleware.ts +1 -1
- package/src/control-plane/workspace.sql.ts +1 -1
- package/src/control-plane/workspace.ts +7 -7
- package/src/file/index.ts +1 -1
- package/src/file/ripgrep.ts +2 -2
- package/src/file/watcher.ts +5 -5
- package/src/format/formatter.ts +1 -1
- package/src/ide/index.ts +3 -3
- package/src/index.ts +1 -1
- package/src/installation/index.ts +3 -3
- package/src/lsp/client.ts +3 -3
- package/src/lsp/index.ts +3 -3
- package/src/mcp/index.ts +4 -4
- package/src/permission/index.ts +2 -2
- package/src/permission/next.ts +10 -10
- package/src/plugin/codex.ts +1 -1
- package/src/plugin/copilot.ts +2 -2
- package/src/plugin/index.ts +1 -1
- package/src/project/bootstrap.ts +2 -2
- package/src/project/instance.ts +4 -4
- package/src/project/project.sql.ts +1 -1
- package/src/project/project.ts +5 -5
- package/src/project/state.ts +1 -1
- package/src/project/vcs.ts +4 -4
- package/src/provider/auth.ts +4 -4
- package/src/provider/error.ts +1 -1
- package/src/provider/models-snapshot.ts +2 -0
- package/src/provider/models.ts +1 -1
- package/src/provider/provider.ts +2 -2
- package/src/provider/transform.ts +2 -2
- package/src/pty/index.ts +5 -5
- package/src/question/index.ts +5 -5
- package/src/server/event.ts +1 -1
- package/src/server/mdns.ts +1 -1
- package/src/server/routes/global.ts +3 -3
- package/src/server/routes/permission.ts +1 -1
- package/src/server/routes/pty.ts +1 -1
- package/src/server/routes/session.ts +4 -4
- package/src/server/routes/tui.ts +1 -1
- package/src/server/server.ts +3 -3
- package/src/session/compaction.ts +7 -7
- package/src/session/index.ts +10 -10
- package/src/session/instruction.ts +1 -1
- package/src/session/llm.ts +11 -11
- package/src/session/message-v2.ts +10 -10
- package/src/session/message.ts +1 -1
- package/src/session/processor.ts +10 -10
- package/src/session/prompt.ts +8 -8
- package/src/session/retry.ts +2 -2
- package/src/session/revert.ts +1 -1
- package/src/session/session.sql.ts +3 -3
- package/src/session/status.ts +3 -3
- package/src/session/summary.ts +5 -5
- package/src/session/system.ts +1 -1
- package/src/session/todo.ts +2 -2
- package/src/share/share-next.ts +7 -7
- package/src/share/share.sql.ts +1 -1
- package/src/shell/shell.ts +3 -3
- package/src/skill/skill.ts +6 -6
- package/src/storage/db.ts +1 -1
- package/src/storage/storage.ts +1 -1
- package/src/tool/bash.ts +6 -6
- package/src/tool/edit.ts +1 -1
- package/src/tool/registry.ts +2 -2
- package/src/tool/skill.ts +1 -1
- package/src/tool/task.ts +3 -3
- package/src/util/array.ts +10 -0
- package/src/util/binary.ts +41 -0
- package/src/util/encode.ts +51 -0
- package/src/util/error.ts +54 -0
- package/src/util/identifier.ts +48 -0
- package/src/util/lazy.ts +4 -16
- package/src/util/path.ts +37 -0
- package/src/util/retry.ts +41 -0
- package/src/util/slug.ts +74 -0
- package/src/worktree/index.ts +3 -3
- package/AGENTS.md +0 -10
- package/BUN_SHELL_MIGRATION_PLAN.md +0 -136
- package/Dockerfile +0 -18
- package/README.md +0 -15
- package/bunfig.toml +0 -7
- package/drizzle.config.ts +0 -10
- package/script/build.ts +0 -224
- package/script/check-migrations.ts +0 -16
- package/script/postinstall.mjs +0 -131
- package/script/publish.ts +0 -181
- package/script/schema.ts +0 -63
- package/script/seed-e2e.ts +0 -50
- package/sst-env.d.ts +0 -10
- package/test/AGENTS.md +0 -81
- package/test/acp/agent-interface.test.ts +0 -51
- package/test/acp/event-subscription.test.ts +0 -683
- package/test/agent/agent.test.ts +0 -689
- package/test/bun.test.ts +0 -53
- package/test/cli/github-action.test.ts +0 -197
- package/test/cli/github-remote.test.ts +0 -80
- package/test/cli/import.test.ts +0 -38
- package/test/cli/plugin-auth-picker.test.ts +0 -120
- package/test/cli/tui/transcript.test.ts +0 -322
- package/test/config/agent-color.test.ts +0 -71
- package/test/config/config.test.ts +0 -1886
- package/test/config/fixtures/empty-frontmatter.md +0 -4
- package/test/config/fixtures/frontmatter.md +0 -28
- package/test/config/fixtures/markdown-header.md +0 -11
- package/test/config/fixtures/no-frontmatter.md +0 -1
- package/test/config/fixtures/weird-model-id.md +0 -13
- package/test/config/markdown.test.ts +0 -228
- package/test/config/tui.test.ts +0 -510
- package/test/control-plane/session-proxy-middleware.test.ts +0 -147
- package/test/control-plane/sse.test.ts +0 -56
- package/test/control-plane/workspace-server-sse.test.ts +0 -65
- package/test/control-plane/workspace-sync.test.ts +0 -97
- package/test/file/ignore.test.ts +0 -10
- package/test/file/index.test.ts +0 -394
- package/test/file/path-traversal.test.ts +0 -198
- package/test/file/ripgrep.test.ts +0 -39
- package/test/file/time.test.ts +0 -361
- package/test/fixture/db.ts +0 -11
- package/test/fixture/fixture.ts +0 -45
- package/test/fixture/lsp/fake-lsp-server.js +0 -77
- package/test/fixture/skills/agents-sdk/SKILL.md +0 -152
- package/test/fixture/skills/agents-sdk/references/callable.md +0 -92
- package/test/fixture/skills/cloudflare/SKILL.md +0 -211
- package/test/fixture/skills/index.json +0 -6
- package/test/ide/ide.test.ts +0 -82
- package/test/keybind.test.ts +0 -421
- package/test/lsp/client.test.ts +0 -95
- package/test/mcp/headers.test.ts +0 -153
- package/test/mcp/oauth-browser.test.ts +0 -249
- package/test/memory/abort-leak.test.ts +0 -136
- package/test/patch/patch.test.ts +0 -348
- package/test/permission/arity.test.ts +0 -33
- package/test/permission/next.test.ts +0 -689
- package/test/permission-task.test.ts +0 -319
- package/test/plugin/auth-override.test.ts +0 -44
- package/test/plugin/codex.test.ts +0 -123
- package/test/preload.ts +0 -80
- package/test/project/project.test.ts +0 -348
- package/test/project/worktree-remove.test.ts +0 -65
- package/test/provider/amazon-bedrock.test.ts +0 -446
- package/test/provider/copilot/convert-to-copilot-messages.test.ts +0 -523
- package/test/provider/copilot/copilot-chat-model.test.ts +0 -592
- package/test/provider/gitlab-duo.test.ts +0 -262
- package/test/provider/provider.test.ts +0 -2220
- package/test/provider/transform.test.ts +0 -2353
- package/test/pty/pty-output-isolation.test.ts +0 -140
- package/test/question/question.test.ts +0 -300
- package/test/scheduler.test.ts +0 -73
- package/test/server/global-session-list.test.ts +0 -89
- package/test/server/session-list.test.ts +0 -90
- package/test/server/session-select.test.ts +0 -78
- package/test/session/compaction.test.ts +0 -423
- package/test/session/instruction.test.ts +0 -170
- package/test/session/llm.test.ts +0 -667
- package/test/session/message-v2.test.ts +0 -924
- package/test/session/prompt.test.ts +0 -211
- package/test/session/retry.test.ts +0 -188
- package/test/session/revert-compact.test.ts +0 -285
- package/test/session/session.test.ts +0 -71
- package/test/session/structured-output-integration.test.ts +0 -233
- package/test/session/structured-output.test.ts +0 -385
- package/test/skill/discovery.test.ts +0 -110
- package/test/skill/skill.test.ts +0 -388
- package/test/snapshot/snapshot.test.ts +0 -1180
- package/test/storage/json-migration.test.ts +0 -846
- package/test/tool/__snapshots__/tool.test.ts.snap +0 -9
- package/test/tool/apply_patch.test.ts +0 -566
- package/test/tool/bash.test.ts +0 -402
- package/test/tool/edit.test.ts +0 -496
- package/test/tool/external-directory.test.ts +0 -127
- package/test/tool/fixtures/large-image.png +0 -0
- package/test/tool/fixtures/models-api.json +0 -38413
- package/test/tool/grep.test.ts +0 -110
- package/test/tool/question.test.ts +0 -107
- package/test/tool/read.test.ts +0 -504
- package/test/tool/registry.test.ts +0 -122
- package/test/tool/skill.test.ts +0 -112
- package/test/tool/truncation.test.ts +0 -160
- package/test/tool/webfetch.test.ts +0 -100
- package/test/tool/write.test.ts +0 -348
- package/test/util/filesystem.test.ts +0 -443
- package/test/util/format.test.ts +0 -59
- package/test/util/glob.test.ts +0 -164
- package/test/util/iife.test.ts +0 -36
- package/test/util/lazy.test.ts +0 -50
- package/test/util/lock.test.ts +0 -72
- package/test/util/process.test.ts +0 -59
- package/test/util/timeout.test.ts +0 -21
- package/test/util/wildcard.test.ts +0 -90
- package/tsconfig.json +0 -16
package/test/tool/grep.test.ts
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from "bun:test"
|
|
2
|
-
import path from "path"
|
|
3
|
-
import { GrepTool } from "../../src/tool/grep"
|
|
4
|
-
import { Instance } from "../../src/project/instance"
|
|
5
|
-
import { tmpdir } from "../fixture/fixture"
|
|
6
|
-
|
|
7
|
-
const ctx = {
|
|
8
|
-
sessionID: "test",
|
|
9
|
-
messageID: "",
|
|
10
|
-
callID: "",
|
|
11
|
-
agent: "build",
|
|
12
|
-
abort: AbortSignal.any([]),
|
|
13
|
-
messages: [],
|
|
14
|
-
metadata: () => {},
|
|
15
|
-
ask: async () => {},
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const projectRoot = path.join(__dirname, "../..")
|
|
19
|
-
|
|
20
|
-
describe("tool.grep", () => {
|
|
21
|
-
test("basic search", async () => {
|
|
22
|
-
await Instance.provide({
|
|
23
|
-
directory: projectRoot,
|
|
24
|
-
fn: async () => {
|
|
25
|
-
const grep = await GrepTool.init()
|
|
26
|
-
const result = await grep.execute(
|
|
27
|
-
{
|
|
28
|
-
pattern: "export",
|
|
29
|
-
path: path.join(projectRoot, "src/tool"),
|
|
30
|
-
include: "*.ts",
|
|
31
|
-
},
|
|
32
|
-
ctx,
|
|
33
|
-
)
|
|
34
|
-
expect(result.metadata.matches).toBeGreaterThan(0)
|
|
35
|
-
expect(result.output).toContain("Found")
|
|
36
|
-
},
|
|
37
|
-
})
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
test("no matches returns correct output", async () => {
|
|
41
|
-
await using tmp = await tmpdir({
|
|
42
|
-
init: async (dir) => {
|
|
43
|
-
await Bun.write(path.join(dir, "test.txt"), "hello world")
|
|
44
|
-
},
|
|
45
|
-
})
|
|
46
|
-
await Instance.provide({
|
|
47
|
-
directory: tmp.path,
|
|
48
|
-
fn: async () => {
|
|
49
|
-
const grep = await GrepTool.init()
|
|
50
|
-
const result = await grep.execute(
|
|
51
|
-
{
|
|
52
|
-
pattern: "xyznonexistentpatternxyz123",
|
|
53
|
-
path: tmp.path,
|
|
54
|
-
},
|
|
55
|
-
ctx,
|
|
56
|
-
)
|
|
57
|
-
expect(result.metadata.matches).toBe(0)
|
|
58
|
-
expect(result.output).toBe("No files found")
|
|
59
|
-
},
|
|
60
|
-
})
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
test("handles CRLF line endings in output", async () => {
|
|
64
|
-
// This test verifies the regex split handles both \n and \r\n
|
|
65
|
-
await using tmp = await tmpdir({
|
|
66
|
-
init: async (dir) => {
|
|
67
|
-
// Create a test file with content
|
|
68
|
-
await Bun.write(path.join(dir, "test.txt"), "line1\nline2\nline3")
|
|
69
|
-
},
|
|
70
|
-
})
|
|
71
|
-
await Instance.provide({
|
|
72
|
-
directory: tmp.path,
|
|
73
|
-
fn: async () => {
|
|
74
|
-
const grep = await GrepTool.init()
|
|
75
|
-
const result = await grep.execute(
|
|
76
|
-
{
|
|
77
|
-
pattern: "line",
|
|
78
|
-
path: tmp.path,
|
|
79
|
-
},
|
|
80
|
-
ctx,
|
|
81
|
-
)
|
|
82
|
-
expect(result.metadata.matches).toBeGreaterThan(0)
|
|
83
|
-
},
|
|
84
|
-
})
|
|
85
|
-
})
|
|
86
|
-
})
|
|
87
|
-
|
|
88
|
-
describe("CRLF regex handling", () => {
|
|
89
|
-
test("regex correctly splits Unix line endings", () => {
|
|
90
|
-
const unixOutput = "file1.txt|1|content1\nfile2.txt|2|content2\nfile3.txt|3|content3"
|
|
91
|
-
const lines = unixOutput.trim().split(/\r?\n/)
|
|
92
|
-
expect(lines.length).toBe(3)
|
|
93
|
-
expect(lines[0]).toBe("file1.txt|1|content1")
|
|
94
|
-
expect(lines[2]).toBe("file3.txt|3|content3")
|
|
95
|
-
})
|
|
96
|
-
|
|
97
|
-
test("regex correctly splits Windows CRLF line endings", () => {
|
|
98
|
-
const windowsOutput = "file1.txt|1|content1\r\nfile2.txt|2|content2\r\nfile3.txt|3|content3"
|
|
99
|
-
const lines = windowsOutput.trim().split(/\r?\n/)
|
|
100
|
-
expect(lines.length).toBe(3)
|
|
101
|
-
expect(lines[0]).toBe("file1.txt|1|content1")
|
|
102
|
-
expect(lines[2]).toBe("file3.txt|3|content3")
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
test("regex handles mixed line endings", () => {
|
|
106
|
-
const mixedOutput = "file1.txt|1|content1\nfile2.txt|2|content2\r\nfile3.txt|3|content3"
|
|
107
|
-
const lines = mixedOutput.trim().split(/\r?\n/)
|
|
108
|
-
expect(lines.length).toBe(3)
|
|
109
|
-
})
|
|
110
|
-
})
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test, spyOn, beforeEach, afterEach } from "bun:test"
|
|
2
|
-
import { z } from "zod"
|
|
3
|
-
import { QuestionTool } from "../../src/tool/question"
|
|
4
|
-
import * as QuestionModule from "../../src/question"
|
|
5
|
-
|
|
6
|
-
const ctx = {
|
|
7
|
-
sessionID: "test-session",
|
|
8
|
-
messageID: "test-message",
|
|
9
|
-
callID: "test-call",
|
|
10
|
-
agent: "test-agent",
|
|
11
|
-
abort: AbortSignal.any([]),
|
|
12
|
-
messages: [],
|
|
13
|
-
metadata: () => {},
|
|
14
|
-
ask: async () => {},
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
describe("tool.question", () => {
|
|
18
|
-
let askSpy: any
|
|
19
|
-
|
|
20
|
-
beforeEach(() => {
|
|
21
|
-
askSpy = spyOn(QuestionModule.Question, "ask").mockImplementation(async () => {
|
|
22
|
-
return []
|
|
23
|
-
})
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
afterEach(() => {
|
|
27
|
-
askSpy.mockRestore()
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
test("should successfully execute with valid question parameters", async () => {
|
|
31
|
-
const tool = await QuestionTool.init()
|
|
32
|
-
const questions = [
|
|
33
|
-
{
|
|
34
|
-
question: "What is your favorite color?",
|
|
35
|
-
header: "Color",
|
|
36
|
-
options: [
|
|
37
|
-
{ label: "Red", description: "The color of passion" },
|
|
38
|
-
{ label: "Blue", description: "The color of sky" },
|
|
39
|
-
],
|
|
40
|
-
multiple: false,
|
|
41
|
-
},
|
|
42
|
-
]
|
|
43
|
-
|
|
44
|
-
askSpy.mockResolvedValueOnce([["Red"]])
|
|
45
|
-
|
|
46
|
-
const result = await tool.execute({ questions }, ctx)
|
|
47
|
-
expect(askSpy).toHaveBeenCalledTimes(1)
|
|
48
|
-
expect(result.title).toBe("Asked 1 question")
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
test("should now pass with a header longer than 12 but less than 30 chars", async () => {
|
|
52
|
-
const tool = await QuestionTool.init()
|
|
53
|
-
const questions = [
|
|
54
|
-
{
|
|
55
|
-
question: "What is your favorite animal?",
|
|
56
|
-
header: "This Header is Over 12",
|
|
57
|
-
options: [{ label: "Dog", description: "Man's best friend" }],
|
|
58
|
-
},
|
|
59
|
-
]
|
|
60
|
-
|
|
61
|
-
askSpy.mockResolvedValueOnce([["Dog"]])
|
|
62
|
-
|
|
63
|
-
const result = await tool.execute({ questions }, ctx)
|
|
64
|
-
expect(result.output).toContain(`"What is your favorite animal?"="Dog"`)
|
|
65
|
-
})
|
|
66
|
-
|
|
67
|
-
// intentionally removed the zod validation due to tool call errors, hoping prompting is gonna be good enough
|
|
68
|
-
// test("should throw an Error for header exceeding 30 characters", async () => {
|
|
69
|
-
// const tool = await QuestionTool.init()
|
|
70
|
-
// const questions = [
|
|
71
|
-
// {
|
|
72
|
-
// question: "What is your favorite animal?",
|
|
73
|
-
// header: "This Header is Definitely More Than Thirty Characters Long",
|
|
74
|
-
// options: [{ label: "Dog", description: "Man's best friend" }],
|
|
75
|
-
// },
|
|
76
|
-
// ]
|
|
77
|
-
// try {
|
|
78
|
-
// await tool.execute({ questions }, ctx)
|
|
79
|
-
// // If it reaches here, the test should fail
|
|
80
|
-
// expect(true).toBe(false)
|
|
81
|
-
// } catch (e: any) {
|
|
82
|
-
// expect(e).toBeInstanceOf(Error)
|
|
83
|
-
// expect(e.cause).toBeInstanceOf(z.ZodError)
|
|
84
|
-
// }
|
|
85
|
-
// })
|
|
86
|
-
|
|
87
|
-
// test("should throw an Error for label exceeding 30 characters", async () => {
|
|
88
|
-
// const tool = await QuestionTool.init()
|
|
89
|
-
// const questions = [
|
|
90
|
-
// {
|
|
91
|
-
// question: "A question with a very long label",
|
|
92
|
-
// header: "Long Label",
|
|
93
|
-
// options: [
|
|
94
|
-
// { label: "This is a very, very, very long label that will exceed the limit", description: "A description" },
|
|
95
|
-
// ],
|
|
96
|
-
// },
|
|
97
|
-
// ]
|
|
98
|
-
// try {
|
|
99
|
-
// await tool.execute({ questions }, ctx)
|
|
100
|
-
// // If it reaches here, the test should fail
|
|
101
|
-
// expect(true).toBe(false)
|
|
102
|
-
// } catch (e: any) {
|
|
103
|
-
// expect(e).toBeInstanceOf(Error)
|
|
104
|
-
// expect(e.cause).toBeInstanceOf(z.ZodError)
|
|
105
|
-
// }
|
|
106
|
-
// })
|
|
107
|
-
})
|