onlycode 1.18.0 → 1.19.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/package.json +11 -146
- package/src/account/account.ts +0 -463
- package/src/account/repo.ts +0 -173
- package/src/account/schema.ts +0 -99
- package/src/account/url.ts +0 -8
- package/src/acp/agent.ts +0 -95
- package/src/acp/config-option.ts +0 -203
- package/src/acp/content.ts +0 -250
- package/src/acp/directory.ts +0 -210
- package/src/acp/error.ts +0 -90
- package/src/acp/event.ts +0 -342
- package/src/acp/permission.ts +0 -124
- package/src/acp/profile.ts +0 -42
- package/src/acp/service.ts +0 -1048
- package/src/acp/session.ts +0 -231
- package/src/acp/tool.ts +0 -367
- package/src/acp/usage.ts +0 -232
- package/src/agent/agent.ts +0 -459
- package/src/agent/generate.txt +0 -75
- package/src/agent/prompt/compaction.txt +0 -9
- package/src/agent/prompt/explore.txt +0 -18
- package/src/agent/prompt/summary.txt +0 -11
- package/src/agent/prompt/title.txt +0 -44
- package/src/agent/subagent-permissions.ts +0 -27
- package/src/audio.d.ts +0 -14
- package/src/auth/index.ts +0 -99
- package/src/background/job.ts +0 -39
- package/src/bus/global.ts +0 -22
- package/src/cli/bootstrap.ts +0 -11
- package/src/cli/cmd/account.ts +0 -264
- package/src/cli/cmd/acp.ts +0 -73
- package/src/cli/cmd/agent.ts +0 -259
- package/src/cli/cmd/attach.ts +0 -97
- package/src/cli/cmd/cmd.ts +0 -7
- package/src/cli/cmd/db.ts +0 -62
- package/src/cli/cmd/debug/agent.handler.ts +0 -193
- package/src/cli/cmd/debug/agent.ts +0 -27
- package/src/cli/cmd/debug/config.ts +0 -14
- package/src/cli/cmd/debug/file.ts +0 -73
- package/src/cli/cmd/debug/index.ts +0 -87
- package/src/cli/cmd/debug/lsp.ts +0 -50
- package/src/cli/cmd/debug/ripgrep.ts +0 -79
- package/src/cli/cmd/debug/scrap.ts +0 -15
- package/src/cli/cmd/debug/skill.ts +0 -15
- package/src/cli/cmd/debug/snapshot.ts +0 -50
- package/src/cli/cmd/debug/startup.ts +0 -11
- package/src/cli/cmd/debug/v2.ts +0 -44
- package/src/cli/cmd/export.ts +0 -292
- package/src/cli/cmd/generate.ts +0 -54
- package/src/cli/cmd/github.handler.ts +0 -1593
- package/src/cli/cmd/github.shared.ts +0 -30
- package/src/cli/cmd/github.ts +0 -42
- package/src/cli/cmd/import.ts +0 -224
- package/src/cli/cmd/mcp.ts +0 -849
- package/src/cli/cmd/models.ts +0 -66
- package/src/cli/cmd/plug.ts +0 -230
- package/src/cli/cmd/pr.ts +0 -115
- package/src/cli/cmd/prompt-display.ts +0 -1
- package/src/cli/cmd/providers.ts +0 -534
- package/src/cli/cmd/run/demo.ts +0 -1274
- package/src/cli/cmd/run/entry.body.ts +0 -205
- package/src/cli/cmd/run/footer.command.tsx +0 -1064
- package/src/cli/cmd/run/footer.menu.tsx +0 -351
- package/src/cli/cmd/run/footer.permission.tsx +0 -472
- package/src/cli/cmd/run/footer.prompt.tsx +0 -1306
- package/src/cli/cmd/run/footer.question.tsx +0 -573
- package/src/cli/cmd/run/footer.subagent.tsx +0 -173
- package/src/cli/cmd/run/footer.ts +0 -1129
- package/src/cli/cmd/run/footer.view.tsx +0 -943
- package/src/cli/cmd/run/footer.width.ts +0 -27
- package/src/cli/cmd/run/permission.shared.ts +0 -256
- package/src/cli/cmd/run/prompt.editor.ts +0 -157
- package/src/cli/cmd/run/prompt.shared.ts +0 -153
- package/src/cli/cmd/run/question.shared.ts +0 -340
- package/src/cli/cmd/run/runtime.boot.ts +0 -202
- package/src/cli/cmd/run/runtime.lifecycle.ts +0 -406
- package/src/cli/cmd/run/runtime.queue.ts +0 -349
- package/src/cli/cmd/run/runtime.shared.ts +0 -17
- package/src/cli/cmd/run/runtime.stdin.ts +0 -37
- package/src/cli/cmd/run/runtime.ts +0 -814
- package/src/cli/cmd/run/scrollback.shared.ts +0 -92
- package/src/cli/cmd/run/scrollback.surface.ts +0 -431
- package/src/cli/cmd/run/scrollback.writer.tsx +0 -352
- package/src/cli/cmd/run/session-data.ts +0 -1113
- package/src/cli/cmd/run/session-replay.ts +0 -374
- package/src/cli/cmd/run/session.shared.ts +0 -196
- package/src/cli/cmd/run/splash.ts +0 -275
- package/src/cli/cmd/run/stream.transport.ts +0 -1462
- package/src/cli/cmd/run/stream.ts +0 -175
- package/src/cli/cmd/run/subagent-data.ts +0 -876
- package/src/cli/cmd/run/theme.ts +0 -690
- package/src/cli/cmd/run/tool.ts +0 -1489
- package/src/cli/cmd/run/trace.ts +0 -94
- package/src/cli/cmd/run/turn-summary.ts +0 -47
- package/src/cli/cmd/run/types.ts +0 -350
- package/src/cli/cmd/run/variant.shared.ts +0 -215
- package/src/cli/cmd/run.ts +0 -894
- package/src/cli/cmd/serve.ts +0 -24
- package/src/cli/cmd/session.ts +0 -147
- package/src/cli/cmd/stats.ts +0 -393
- package/src/cli/cmd/tui.ts +0 -224
- package/src/cli/cmd/uninstall.ts +0 -353
- package/src/cli/cmd/upgrade.ts +0 -74
- package/src/cli/cmd/web.ts +0 -84
- package/src/cli/effect/prompt.ts +0 -37
- package/src/cli/effect-cmd.ts +0 -96
- package/src/cli/error.ts +0 -130
- package/src/cli/heap.ts +0 -45
- package/src/cli/logo-pixel.ts +0 -35
- package/src/cli/logo.ts +0 -1
- package/src/cli/network.ts +0 -64
- package/src/cli/tui/layer.ts +0 -7
- package/src/cli/tui/validate-session.ts +0 -29
- package/src/cli/tui/worker.ts +0 -71
- package/src/cli/ui.ts +0 -148
- package/src/cli/upgrade.ts +0 -53
- package/src/command/index.ts +0 -184
- package/src/command/template/initialize.txt +0 -66
- package/src/command/template/review.txt +0 -101
- package/src/config/agent.ts +0 -59
- package/src/config/command.ts +0 -39
- package/src/config/config.ts +0 -686
- package/src/config/entry-name.ts +0 -19
- package/src/config/managed.ts +0 -69
- package/src/config/markdown.ts +0 -36
- package/src/config/parse.ts +0 -79
- package/src/config/paths.ts +0 -45
- package/src/config/plugin.ts +0 -79
- package/src/config/tui-cwd.ts +0 -5
- package/src/config/tui-host-attention.ts +0 -21
- package/src/config/tui-migrate.ts +0 -132
- package/src/config/tui.ts +0 -274
- package/src/config/variable.ts +0 -91
- package/src/control-plane/adapters/index.ts +0 -41
- package/src/control-plane/adapters/worktree.ts +0 -96
- package/src/control-plane/dev/README.md +0 -19
- package/src/control-plane/dev/debug-workspace-plugin.ts +0 -73
- package/src/control-plane/types.ts +0 -59
- package/src/control-plane/util.ts +0 -39
- package/src/control-plane/workspace-adapter-runtime.ts +0 -51
- package/src/control-plane/workspace-context.ts +0 -26
- package/src/control-plane/workspace.ts +0 -989
- package/src/effect/app-runtime.ts +0 -132
- package/src/effect/bootstrap-runtime.ts +0 -23
- package/src/effect/bridge.ts +0 -84
- package/src/effect/config-service.ts +0 -67
- package/src/effect/instance-ref.ts +0 -11
- package/src/effect/instance-registry.ts +0 -12
- package/src/effect/instance-state.ts +0 -69
- package/src/effect/promise.ts +0 -17
- package/src/effect/run-service.ts +0 -47
- package/src/effect/runner.ts +0 -217
- package/src/effect/runtime-flags.ts +0 -79
- package/src/env/index.ts +0 -43
- package/src/event-v2-bridge.ts +0 -79
- package/src/format/formatter.ts +0 -404
- package/src/format/index.ts +0 -205
- package/src/git/index.ts +0 -350
- package/src/id/id.ts +0 -80
- package/src/ide/index.ts +0 -61
- package/src/image/image.ts +0 -174
- package/src/index.ts +0 -142
- package/src/installation/index.ts +0 -350
- package/src/lsp/client.ts +0 -650
- package/src/lsp/diagnostic.ts +0 -29
- package/src/lsp/language.ts +0 -121
- package/src/lsp/launch.ts +0 -21
- package/src/lsp/lsp.ts +0 -511
- package/src/lsp/server.ts +0 -1983
- package/src/markdown.d.ts +0 -4
- package/src/mcp/auth.ts +0 -174
- package/src/mcp/catalog.ts +0 -153
- package/src/mcp/index.ts +0 -953
- package/src/mcp/oauth-callback.ts +0 -233
- package/src/mcp/oauth-provider.ts +0 -206
- package/src/node.ts +0 -4
- package/src/patch/index.ts +0 -686
- package/src/permission/arity.ts +0 -163
- package/src/permission/evaluate.ts +0 -1
- package/src/permission/index.ts +0 -230
- package/src/plugin/azure.ts +0 -26
- package/src/plugin/cloudflare.ts +0 -76
- package/src/plugin/digitalocean.ts +0 -383
- package/src/plugin/github-copilot/copilot.ts +0 -414
- package/src/plugin/github-copilot/models.ts +0 -246
- package/src/plugin/index.ts +0 -316
- package/src/plugin/install.ts +0 -439
- package/src/plugin/loader.ts +0 -237
- package/src/plugin/meta.ts +0 -188
- package/src/plugin/openai/README.md +0 -31
- package/src/plugin/openai/codex.ts +0 -641
- package/src/plugin/openai/ws-pool.ts +0 -270
- package/src/plugin/openai/ws.ts +0 -381
- package/src/plugin/pty-environment.ts +0 -24
- package/src/plugin/shared.ts +0 -323
- package/src/plugin/snowflake-cortex.ts +0 -529
- package/src/plugin/tui/internal.ts +0 -10
- package/src/plugin/tui/runtime.ts +0 -1130
- package/src/plugin/xai.ts +0 -716
- package/src/project/bootstrap-service.ts +0 -9
- package/src/project/bootstrap.ts +0 -76
- package/src/project/instance-context.ts +0 -24
- package/src/project/instance-layer.ts +0 -11
- package/src/project/instance-runtime.ts +0 -16
- package/src/project/instance-store.ts +0 -209
- package/src/project/project.ts +0 -519
- package/src/project/vcs.ts +0 -431
- package/src/provider/auth.ts +0 -233
- package/src/provider/error.ts +0 -188
- package/src/provider/model-status.ts +0 -8
- package/src/provider/provider.ts +0 -1975
- package/src/provider/transform.ts +0 -1543
- package/src/question/index.ts +0 -229
- package/src/question/schema.ts +0 -10
- package/src/server/auth.ts +0 -48
- package/src/server/event.ts +0 -13
- package/src/server/global-lifecycle.ts +0 -28
- package/src/server/init-projectors.ts +0 -3
- package/src/server/mdns.ts +0 -47
- package/src/server/projectors.ts +0 -1
- package/src/server/proxy-util.ts +0 -48
- package/src/server/routes/instance/httpapi/AGENTS.md +0 -39
- package/src/server/routes/instance/httpapi/api.ts +0 -78
- package/src/server/routes/instance/httpapi/errors.ts +0 -193
- package/src/server/routes/instance/httpapi/groups/config.ts +0 -65
- package/src/server/routes/instance/httpapi/groups/control-plane.ts +0 -35
- package/src/server/routes/instance/httpapi/groups/control.ts +0 -76
- package/src/server/routes/instance/httpapi/groups/event.ts +0 -29
- package/src/server/routes/instance/httpapi/groups/experimental.ts +0 -275
- package/src/server/routes/instance/httpapi/groups/file.ts +0 -185
- package/src/server/routes/instance/httpapi/groups/global.ts +0 -138
- package/src/server/routes/instance/httpapi/groups/instance.ts +0 -206
- package/src/server/routes/instance/httpapi/groups/mcp.ts +0 -156
- package/src/server/routes/instance/httpapi/groups/metadata.ts +0 -18
- package/src/server/routes/instance/httpapi/groups/permission.ts +0 -61
- package/src/server/routes/instance/httpapi/groups/project-copy.ts +0 -32
- package/src/server/routes/instance/httpapi/groups/project.ts +0 -93
- package/src/server/routes/instance/httpapi/groups/provider.ts +0 -101
- package/src/server/routes/instance/httpapi/groups/pty.ts +0 -172
- package/src/server/routes/instance/httpapi/groups/query.ts +0 -12
- package/src/server/routes/instance/httpapi/groups/question.ts +0 -74
- package/src/server/routes/instance/httpapi/groups/session.ts +0 -462
- package/src/server/routes/instance/httpapi/groups/sync.ts +0 -113
- package/src/server/routes/instance/httpapi/groups/tui.ts +0 -208
- package/src/server/routes/instance/httpapi/groups/workspace.ts +0 -141
- package/src/server/routes/instance/httpapi/handlers/config.ts +0 -34
- package/src/server/routes/instance/httpapi/handlers/control-plane.ts +0 -37
- package/src/server/routes/instance/httpapi/handlers/control.ts +0 -43
- package/src/server/routes/instance/httpapi/handlers/event.ts +0 -99
- package/src/server/routes/instance/httpapi/handlers/experimental.ts +0 -192
- package/src/server/routes/instance/httpapi/handlers/file.ts +0 -139
- package/src/server/routes/instance/httpapi/handlers/global.ts +0 -156
- package/src/server/routes/instance/httpapi/handlers/instance.ts +0 -110
- package/src/server/routes/instance/httpapi/handlers/mcp.ts +0 -111
- package/src/server/routes/instance/httpapi/handlers/permission.ts +0 -41
- package/src/server/routes/instance/httpapi/handlers/project-copy.ts +0 -83
- package/src/server/routes/instance/httpapi/handlers/project.ts +0 -63
- package/src/server/routes/instance/httpapi/handlers/provider.ts +0 -113
- package/src/server/routes/instance/httpapi/handlers/pty.ts +0 -273
- package/src/server/routes/instance/httpapi/handlers/question.ts +0 -54
- package/src/server/routes/instance/httpapi/handlers/session-errors.ts +0 -21
- package/src/server/routes/instance/httpapi/handlers/session.ts +0 -440
- package/src/server/routes/instance/httpapi/handlers/sync.ts +0 -89
- package/src/server/routes/instance/httpapi/handlers/tui.ts +0 -131
- package/src/server/routes/instance/httpapi/handlers/workspace.ts +0 -102
- package/src/server/routes/instance/httpapi/lifecycle.ts +0 -54
- package/src/server/routes/instance/httpapi/middleware/authorization.ts +0 -150
- package/src/server/routes/instance/httpapi/middleware/compression.ts +0 -64
- package/src/server/routes/instance/httpapi/middleware/cors-vary.ts +0 -29
- package/src/server/routes/instance/httpapi/middleware/error.ts +0 -43
- package/src/server/routes/instance/httpapi/middleware/fence.ts +0 -25
- package/src/server/routes/instance/httpapi/middleware/instance-context.ts +0 -43
- package/src/server/routes/instance/httpapi/middleware/proxy.ts +0 -108
- package/src/server/routes/instance/httpapi/middleware/schema-error.ts +0 -41
- package/src/server/routes/instance/httpapi/middleware/workspace-routing.ts +0 -250
- package/src/server/routes/instance/httpapi/public.ts +0 -535
- package/src/server/routes/instance/httpapi/server.ts +0 -298
- package/src/server/routes/instance/httpapi/websocket-tracker.ts +0 -57
- package/src/server/server.ts +0 -225
- package/src/server/shared/fence.ts +0 -60
- package/src/server/shared/pty-ticket.ts +0 -15
- package/src/server/shared/public-ui.ts +0 -12
- package/src/server/shared/tui-control.ts +0 -28
- package/src/server/shared/ui.ts +0 -108
- package/src/server/shared/workspace-routing.ts +0 -38
- package/src/server/tui-event.ts +0 -53
- package/src/session/compaction.ts +0 -620
- package/src/session/instruction.ts +0 -241
- package/src/session/llm/AGENTS.md +0 -90
- package/src/session/llm/ai-sdk.ts +0 -288
- package/src/session/llm/native-request.ts +0 -196
- package/src/session/llm/native-runtime.ts +0 -195
- package/src/session/llm/request.ts +0 -216
- package/src/session/llm.ts +0 -415
- package/src/session/message-error.ts +0 -14
- package/src/session/message-v2.ts +0 -747
- package/src/session/message.ts +0 -148
- package/src/session/overflow.ts +0 -34
- package/src/session/processor.ts +0 -1084
- package/src/session/prompt/anthropic.txt +0 -109
- package/src/session/prompt/beast.txt +0 -151
- package/src/session/prompt/build-switch.txt +0 -9
- package/src/session/prompt/codex.txt +0 -83
- package/src/session/prompt/copilot-gpt-5.txt +0 -147
- package/src/session/prompt/default.txt +0 -99
- package/src/session/prompt/gemini.txt +0 -159
- package/src/session/prompt/gpt.txt +0 -111
- package/src/session/prompt/kimi.txt +0 -99
- package/src/session/prompt/plan-mode.txt +0 -74
- package/src/session/prompt/plan-reminder-anthropic.txt +0 -71
- package/src/session/prompt/plan.txt +0 -30
- package/src/session/prompt/trinity.txt +0 -101
- package/src/session/prompt.ts +0 -1707
- package/src/session/reminders.ts +0 -92
- package/src/session/retry.ts +0 -201
- package/src/session/revert.ts +0 -160
- package/src/session/run-state.ts +0 -156
- package/src/session/schema.ts +0 -26
- package/src/session/session.ts +0 -1119
- package/src/session/status.ts +0 -97
- package/src/session/summary.ts +0 -165
- package/src/session/system.ts +0 -117
- package/src/session/todo.ts +0 -90
- package/src/session/tools.ts +0 -207
- package/src/share/session.ts +0 -61
- package/src/share/share-next.ts +0 -385
- package/src/skill/discovery.ts +0 -109
- package/src/skill/index.ts +0 -366
- package/src/snapshot/index.ts +0 -808
- package/src/sql.d.ts +0 -4
- package/src/storage/schema.ts +0 -5
- package/src/storage/storage.ts +0 -329
- package/src/sync/README.md +0 -179
- package/src/sync/schema.ts +0 -11
- package/src/temporary.ts +0 -31
- package/src/tool/apply_patch.ts +0 -315
- package/src/tool/apply_patch.txt +0 -33
- package/src/tool/apply_patch.zh.txt +0 -33
- package/src/tool/description.ts +0 -100
- package/src/tool/edit.ts +0 -739
- package/src/tool/edit.txt +0 -10
- package/src/tool/edit.zh.txt +0 -10
- package/src/tool/external-directory.ts +0 -49
- package/src/tool/glob.ts +0 -78
- package/src/tool/glob.txt +0 -6
- package/src/tool/glob.zh.txt +0 -6
- package/src/tool/grep.ts +0 -114
- package/src/tool/grep.txt +0 -8
- package/src/tool/grep.zh.txt +0 -8
- package/src/tool/invalid.ts +0 -21
- package/src/tool/json-schema.ts +0 -164
- package/src/tool/lsp.ts +0 -115
- package/src/tool/lsp.txt +0 -24
- package/src/tool/lsp.zh.txt +0 -24
- package/src/tool/mcp-websearch.ts +0 -96
- package/src/tool/plan-enter.txt +0 -14
- package/src/tool/plan-enter.zh.txt +0 -14
- package/src/tool/plan-exit.txt +0 -13
- package/src/tool/plan-exit.zh.txt +0 -13
- package/src/tool/plan.ts +0 -81
- package/src/tool/question.ts +0 -46
- package/src/tool/question.txt +0 -10
- package/src/tool/question.zh.txt +0 -10
- package/src/tool/read.ts +0 -388
- package/src/tool/read.txt +0 -14
- package/src/tool/read.zh.txt +0 -14
- package/src/tool/registry.ts +0 -440
- package/src/tool/schema.ts +0 -14
- package/src/tool/shell/id.ts +0 -19
- package/src/tool/shell/prompt.ts +0 -307
- package/src/tool/shell/shell.txt +0 -21
- package/src/tool/shell.ts +0 -657
- package/src/tool/skill.ts +0 -73
- package/src/tool/skill.txt +0 -5
- package/src/tool/skill.zh.txt +0 -5
- package/src/tool/task.ts +0 -348
- package/src/tool/task.txt +0 -19
- package/src/tool/task.zh.txt +0 -19
- package/src/tool/todo.ts +0 -59
- package/src/tool/todowrite.txt +0 -44
- package/src/tool/todowrite.zh.txt +0 -44
- package/src/tool/tool.ts +0 -183
- package/src/tool/truncate.ts +0 -158
- package/src/tool/truncation-dir.ts +0 -4
- package/src/tool/webfetch.ts +0 -194
- package/src/tool/webfetch.txt +0 -13
- package/src/tool/webfetch.zh.txt +0 -13
- package/src/tool/websearch.ts +0 -145
- package/src/tool/websearch.txt +0 -14
- package/src/tool/websearch.zh.txt +0 -14
- package/src/tool/write.ts +0 -106
- package/src/tool/write.txt +0 -8
- package/src/tool/write.zh.txt +0 -8
- package/src/util/archive.ts +0 -17
- package/src/util/bom.ts +0 -27
- package/src/util/data-url.ts +0 -9
- package/src/util/defer.ts +0 -10
- package/src/util/effect-http-client.ts +0 -11
- package/src/util/error.ts +0 -1
- package/src/util/filesystem.ts +0 -251
- package/src/util/html.ts +0 -8
- package/src/util/iife.ts +0 -3
- package/src/util/lazy.ts +0 -20
- package/src/util/local-context.ts +0 -25
- package/src/util/locale.ts +0 -2
- package/src/util/media.ts +0 -26
- package/src/util/process.ts +0 -177
- package/src/util/proxy-env.ts +0 -72
- package/src/util/queue.ts +0 -32
- package/src/util/record.ts +0 -1
- package/src/util/repository.ts +0 -232
- package/src/util/rpc.ts +0 -66
- package/src/util/signal.ts +0 -12
- package/src/util/timeout.ts +0 -13
- package/src/util/token.ts +0 -1
- package/src/util/wildcard.ts +0 -59
- package/src/worktree/index.ts +0 -654
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { Duration, Effect, Schema } from "effect"
|
|
2
|
-
import { HttpClient, HttpClientRequest } from "effect/unstable/http"
|
|
3
|
-
|
|
4
|
-
export const EXA_URL = process.env.EXA_API_KEY
|
|
5
|
-
? `https://mcp.exa.ai/mcp?exaApiKey=${encodeURIComponent(process.env.EXA_API_KEY)}`
|
|
6
|
-
: "https://mcp.exa.ai/mcp"
|
|
7
|
-
export const PARALLEL_URL = "https://search.parallel.ai/mcp"
|
|
8
|
-
|
|
9
|
-
const McpResult = Schema.Struct({
|
|
10
|
-
result: Schema.Struct({
|
|
11
|
-
content: Schema.Array(
|
|
12
|
-
Schema.Struct({
|
|
13
|
-
type: Schema.String,
|
|
14
|
-
text: Schema.String,
|
|
15
|
-
}),
|
|
16
|
-
),
|
|
17
|
-
}),
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
const decode = Schema.decodeUnknownEffect(Schema.fromJsonString(McpResult))
|
|
21
|
-
|
|
22
|
-
const parsePayload = (payload: string) =>
|
|
23
|
-
Effect.gen(function* () {
|
|
24
|
-
const trimmed = payload.trim()
|
|
25
|
-
if (!trimmed.startsWith("{")) return undefined
|
|
26
|
-
const data = yield* decode(trimmed)
|
|
27
|
-
return data.result.content.find((item) => item.text)?.text
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
export const parseResponse = Effect.fn("McpWebSearch.parseResponse")(function* (body: string) {
|
|
31
|
-
const trimmed = body.trim()
|
|
32
|
-
const direct = trimmed ? yield* parsePayload(trimmed) : undefined
|
|
33
|
-
if (direct) return direct
|
|
34
|
-
|
|
35
|
-
for (const line of body.split("\n")) {
|
|
36
|
-
if (!line.startsWith("data: ")) continue
|
|
37
|
-
const data = yield* parsePayload(line.substring(6))
|
|
38
|
-
if (data) return data
|
|
39
|
-
}
|
|
40
|
-
return undefined
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
export const SearchArgs = Schema.Struct({
|
|
44
|
-
query: Schema.String,
|
|
45
|
-
type: Schema.String,
|
|
46
|
-
numResults: Schema.Number,
|
|
47
|
-
livecrawl: Schema.String,
|
|
48
|
-
contextMaxCharacters: Schema.optional(Schema.Number),
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
export const ParallelSearchArgs = Schema.Struct({
|
|
52
|
-
objective: Schema.String,
|
|
53
|
-
search_queries: Schema.Array(Schema.String),
|
|
54
|
-
session_id: Schema.optional(Schema.String),
|
|
55
|
-
model_name: Schema.optional(Schema.String),
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
const McpRequest = <F extends Schema.Struct.Fields>(args: Schema.Struct<F>) =>
|
|
59
|
-
Schema.Struct({
|
|
60
|
-
jsonrpc: Schema.Literal("2.0"),
|
|
61
|
-
id: Schema.Literal(1),
|
|
62
|
-
method: Schema.Literal("tools/call"),
|
|
63
|
-
params: Schema.Struct({
|
|
64
|
-
name: Schema.String,
|
|
65
|
-
arguments: args,
|
|
66
|
-
}),
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
export const call = <F extends Schema.Struct.Fields>(
|
|
70
|
-
http: HttpClient.HttpClient,
|
|
71
|
-
url: string,
|
|
72
|
-
tool: string,
|
|
73
|
-
args: Schema.Struct<F>,
|
|
74
|
-
value: Schema.Struct.Type<F>,
|
|
75
|
-
timeout: Duration.Input,
|
|
76
|
-
headers?: Record<string, string>,
|
|
77
|
-
) =>
|
|
78
|
-
Effect.gen(function* () {
|
|
79
|
-
const request = yield* HttpClientRequest.post(url).pipe(
|
|
80
|
-
HttpClientRequest.accept("application/json, text/event-stream"),
|
|
81
|
-
HttpClientRequest.setHeaders(headers ?? {}),
|
|
82
|
-
HttpClientRequest.schemaBodyJson(McpRequest(args))({
|
|
83
|
-
jsonrpc: "2.0" as const,
|
|
84
|
-
id: 1 as const,
|
|
85
|
-
method: "tools/call" as const,
|
|
86
|
-
params: { name: tool, arguments: value },
|
|
87
|
-
}),
|
|
88
|
-
)
|
|
89
|
-
const response = yield* HttpClient.filterStatusOk(http)
|
|
90
|
-
.execute(request)
|
|
91
|
-
.pipe(
|
|
92
|
-
Effect.timeoutOrElse({ duration: timeout, orElse: () => Effect.die(new Error(`${tool} request timed out`)) }),
|
|
93
|
-
)
|
|
94
|
-
const body = yield* response.text
|
|
95
|
-
return yield* parseResponse(body)
|
|
96
|
-
})
|
package/src/tool/plan-enter.txt
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
Use this tool to suggest switching to plan agent when the user's request would benefit from planning before implementation.
|
|
2
|
-
|
|
3
|
-
If they explicitly mention wanting to create a plan ALWAYS call this tool first.
|
|
4
|
-
|
|
5
|
-
This tool will ask the user if they want to switch to plan agent.
|
|
6
|
-
|
|
7
|
-
Call this tool when:
|
|
8
|
-
- The user's request is complex and would benefit from planning first
|
|
9
|
-
- You want to research and design before making changes
|
|
10
|
-
- The task involves multiple files or significant architectural decisions
|
|
11
|
-
|
|
12
|
-
Do NOT call this tool:
|
|
13
|
-
- For simple, straightforward tasks
|
|
14
|
-
- When the user explicitly wants immediate implementation
|
package/src/tool/plan-exit.txt
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
Use this tool when you have completed the planning phase and are ready to exit plan agent.
|
|
2
|
-
|
|
3
|
-
This tool will ask the user if they want to switch to build agent to start implementing the plan.
|
|
4
|
-
|
|
5
|
-
Call this tool:
|
|
6
|
-
- After you have written a complete plan to the plan file
|
|
7
|
-
- After you have clarified any questions with the user
|
|
8
|
-
- When you are confident the plan is ready for implementation
|
|
9
|
-
|
|
10
|
-
Do NOT call this tool:
|
|
11
|
-
- Before you have created or finalized the plan
|
|
12
|
-
- If you still have unanswered questions about the implementation
|
|
13
|
-
- If the user has indicated they want to continue planning
|
package/src/tool/plan.ts
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import path from "path"
|
|
2
|
-
import { SessionV1 } from "@opencode-ai/core/v1/session"
|
|
3
|
-
import { Effect, Schema } from "effect"
|
|
4
|
-
import * as Tool from "./tool"
|
|
5
|
-
import { Question } from "../question"
|
|
6
|
-
import { Session } from "@/session/session"
|
|
7
|
-
import { MessageV2 } from "../session/message-v2"
|
|
8
|
-
import { Provider } from "@/provider/provider"
|
|
9
|
-
import { InstanceState } from "@/effect/instance-state"
|
|
10
|
-
import { MessageID, PartID } from "../session/schema"
|
|
11
|
-
import EXIT_DESCRIPTION from "./plan-exit.txt"
|
|
12
|
-
import EXIT_DESCRIPTION_ZH from "./plan-exit.zh.txt"
|
|
13
|
-
import { loadDescription } from "./description"
|
|
14
|
-
|
|
15
|
-
export const Parameters = Schema.Struct({})
|
|
16
|
-
|
|
17
|
-
export const PlanExitTool = Tool.define(
|
|
18
|
-
"plan_exit",
|
|
19
|
-
Effect.gen(function* () {
|
|
20
|
-
const session = yield* Session.Service
|
|
21
|
-
const question = yield* Question.Service
|
|
22
|
-
const provider = yield* Provider.Service
|
|
23
|
-
|
|
24
|
-
return {
|
|
25
|
-
description: loadDescription(EXIT_DESCRIPTION, EXIT_DESCRIPTION_ZH),
|
|
26
|
-
parameters: Parameters,
|
|
27
|
-
execute: (_params: {}, ctx: Tool.Context) =>
|
|
28
|
-
Effect.gen(function* () {
|
|
29
|
-
const instance = yield* InstanceState.context
|
|
30
|
-
const info = yield* session.get(ctx.sessionID)
|
|
31
|
-
const plan = path.relative(instance.worktree, Session.plan(info, instance))
|
|
32
|
-
const answers = yield* question.ask({
|
|
33
|
-
sessionID: ctx.sessionID,
|
|
34
|
-
questions: [
|
|
35
|
-
{
|
|
36
|
-
question: `Plan at ${plan} is complete. Would you like to switch to the build agent and start implementing?`,
|
|
37
|
-
header: "Build Agent",
|
|
38
|
-
custom: false,
|
|
39
|
-
options: [
|
|
40
|
-
{ label: "Yes", description: "Switch to build agent and start implementing the plan" },
|
|
41
|
-
{ label: "No", description: "Stay with plan agent to continue refining the plan" },
|
|
42
|
-
],
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
tool: ctx.callID ? { messageID: ctx.messageID, callID: ctx.callID } : undefined,
|
|
46
|
-
})
|
|
47
|
-
|
|
48
|
-
if (answers[0]?.[0] === "No") yield* new Question.RejectedError()
|
|
49
|
-
|
|
50
|
-
const messages = yield* session.messages({ sessionID: ctx.sessionID }).pipe(Effect.orDie)
|
|
51
|
-
const lastUser = messages.findLast((item) => item.info.role === "user" && item.info.model)
|
|
52
|
-
const model =
|
|
53
|
-
lastUser?.info.role === "user" && lastUser.info.model ? lastUser.info.model : yield* provider.defaultModel()
|
|
54
|
-
|
|
55
|
-
const msg: SessionV1.User = {
|
|
56
|
-
id: MessageID.ascending(),
|
|
57
|
-
sessionID: ctx.sessionID,
|
|
58
|
-
role: "user",
|
|
59
|
-
time: { created: Date.now() },
|
|
60
|
-
agent: "build",
|
|
61
|
-
model,
|
|
62
|
-
}
|
|
63
|
-
yield* session.updateMessage(msg)
|
|
64
|
-
yield* session.updatePart({
|
|
65
|
-
id: PartID.ascending(),
|
|
66
|
-
messageID: msg.id,
|
|
67
|
-
sessionID: ctx.sessionID,
|
|
68
|
-
type: "text",
|
|
69
|
-
text: `The plan at ${plan} has been approved, you can now edit files. Execute the plan`,
|
|
70
|
-
synthetic: true,
|
|
71
|
-
} satisfies SessionV1.TextPart)
|
|
72
|
-
|
|
73
|
-
return {
|
|
74
|
-
title: "Switching to build agent",
|
|
75
|
-
output: "User approved switching to build agent. Wait for further instructions.",
|
|
76
|
-
metadata: {},
|
|
77
|
-
}
|
|
78
|
-
}).pipe(Effect.orDie),
|
|
79
|
-
}
|
|
80
|
-
}),
|
|
81
|
-
)
|
package/src/tool/question.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Effect, Schema } from "effect"
|
|
2
|
-
import * as Tool from "./tool"
|
|
3
|
-
import { Question } from "../question"
|
|
4
|
-
import DESCRIPTION from "./question.txt"
|
|
5
|
-
import DESCRIPTION_ZH from "./question.zh.txt"
|
|
6
|
-
import { loadDescription } from "./description"
|
|
7
|
-
|
|
8
|
-
export const Parameters = Schema.Struct({
|
|
9
|
-
questions: Schema.mutable(Schema.Array(Question.Prompt)).annotate({ description: "Questions to ask" }),
|
|
10
|
-
})
|
|
11
|
-
|
|
12
|
-
type Metadata = {
|
|
13
|
-
answers: ReadonlyArray<Question.Answer>
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export const QuestionTool = Tool.define<typeof Parameters, Metadata, Question.Service>(
|
|
17
|
-
"question",
|
|
18
|
-
Effect.gen(function* () {
|
|
19
|
-
const question = yield* Question.Service
|
|
20
|
-
|
|
21
|
-
return {
|
|
22
|
-
description: loadDescription(DESCRIPTION, DESCRIPTION_ZH),
|
|
23
|
-
parameters: Parameters,
|
|
24
|
-
execute: (params: Schema.Schema.Type<typeof Parameters>, ctx: Tool.Context<Metadata>) =>
|
|
25
|
-
Effect.gen(function* () {
|
|
26
|
-
const answers = yield* question.ask({
|
|
27
|
-
sessionID: ctx.sessionID,
|
|
28
|
-
questions: params.questions,
|
|
29
|
-
tool: ctx.callID ? { messageID: ctx.messageID, callID: ctx.callID } : undefined,
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
const formatted = params.questions
|
|
33
|
-
.map((q, i) => `"${q.question}"="${answers[i]?.length ? answers[i].join(", ") : "Unanswered"}"`)
|
|
34
|
-
.join(", ")
|
|
35
|
-
|
|
36
|
-
return {
|
|
37
|
-
title: `Asked ${params.questions.length} question${params.questions.length > 1 ? "s" : ""}`,
|
|
38
|
-
output: `User has answered your questions: ${formatted}. You can now continue with the user's answers in mind.`,
|
|
39
|
-
metadata: {
|
|
40
|
-
answers,
|
|
41
|
-
},
|
|
42
|
-
}
|
|
43
|
-
}).pipe(Effect.orDie),
|
|
44
|
-
}
|
|
45
|
-
}),
|
|
46
|
-
)
|
package/src/tool/question.txt
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Use this tool when you need to ask the user questions during execution. This allows you to:
|
|
2
|
-
1. Gather user preferences or requirements
|
|
3
|
-
2. Clarify ambiguous instructions
|
|
4
|
-
3. Get decisions on implementation choices as you work
|
|
5
|
-
4. Offer choices to the user about what direction to take.
|
|
6
|
-
|
|
7
|
-
Usage notes:
|
|
8
|
-
- When `custom` is enabled (default), a "Type your own answer" option is added automatically; don't include "Other" or catch-all options
|
|
9
|
-
- Answers are returned as arrays of labels; set `multiple: true` to allow selecting more than one
|
|
10
|
-
- If you recommend a specific option, make that the first option in the list and add "(Recommended)" at the end of the label
|
package/src/tool/question.zh.txt
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
当您需要在执行过程中向用户提问时使用此工具。这允许您:
|
|
2
|
-
1. 收集用户偏好或要求
|
|
3
|
-
2. 澄清模糊的指令
|
|
4
|
-
3. 在工作过程中获取关于实现选择的决定
|
|
5
|
-
4. 向用户提供关于采取何种方向的选择。
|
|
6
|
-
|
|
7
|
-
使用说明:
|
|
8
|
-
- 当启用 `custom` 时(默认),会自动添加 "Type your own answer" 选项;不要包含 "Other" 或包罗万象的选项
|
|
9
|
-
- 答案以标签数组的形式返回;设置 `multiple: true` 以允许多选
|
|
10
|
-
- 如果您推荐特定选项,请将其作为列表中的第一个选项,并在标签末尾添加 "(Recommended)"
|