bonecode 1.0.0 → 1.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/LICENSE +21 -0
- package/README.md +64 -50
- package/bone/output/agent/.dockerignore +7 -7
- package/bone/output/agent/.env.example +36 -36
- package/bone/output/agent/.github/workflows/ci.yaml +58 -58
- package/bone/output/agent/AgentDomain.bone.map +349 -349
- package/bone/output/agent/AgentDomain.postman_collection.json +957 -957
- package/bone/output/agent/Dockerfile +22 -22
- package/bone/output/agent/README.md +47 -47
- package/bone/output/agent/admin/index.html +739 -739
- package/bone/output/agent/docker-compose.yaml +22 -22
- package/bone/output/agent/k8s/deployment.yaml +75 -75
- package/bone/output/agent/migrations/agent.sql +36 -36
- package/bone/output/agent/migrations/agent_instance.sql +36 -36
- package/bone/output/agent/migrations/audit_log.sql +18 -18
- package/bone/output/agent/migrations/build_step.sql +34 -34
- package/bone/output/agent/migrations/event_outbox.sql +31 -31
- package/bone/output/agent/migrations/plan.sql +30 -30
- package/bone/output/agent/migrations/task.sql +30 -30
- package/bone/output/agent/migrations/tool_call.sql +33 -33
- package/bone/output/agent/openapi.yaml +1116 -1116
- package/bone/output/agent/package.json +35 -35
- package/bone/output/agent/schema.graphql +233 -233
- package/bone/output/agent/sdk/client.ts +231 -231
- package/bone/output/agent/src/algorithms.ts +2 -2
- package/bone/output/agent/src/audit.ts +44 -44
- package/bone/output/agent/src/auth.ts +57 -57
- package/bone/output/agent/src/cron.ts +12 -12
- package/bone/output/agent/src/db.ts +31 -31
- package/bone/output/agent/src/debug.ts +66 -66
- package/bone/output/agent/src/events.ts +243 -243
- package/bone/output/agent/src/extensions.ts +54 -54
- package/bone/output/agent/src/failure_rules.ts +322 -322
- package/bone/output/agent/src/flows.ts +168 -168
- package/bone/output/agent/src/health.ts +43 -43
- package/bone/output/agent/src/index.ts +99 -99
- package/bone/output/agent/src/logger.ts +69 -66
- package/bone/output/agent/src/metrics.ts +75 -75
- package/bone/output/agent/src/migrate.ts +351 -351
- package/bone/output/agent/src/migration_diff.ts +108 -108
- package/bone/output/agent/src/notify.ts +125 -125
- package/bone/output/agent/src/routes/plan.ts +91 -91
- package/bone/output/agent/src/routes/task.ts +105 -105
- package/bone/output/agent/src/routes/tool_call.ts +166 -166
- package/bone/output/agent/src/schemas.ts +384 -384
- package/bone/output/agent/src/state_machines/agent_instance.ts +24 -24
- package/bone/output/agent/src/state_machines/build_step.ts +22 -22
- package/bone/output/agent/src/state_machines/plan.ts +22 -22
- package/bone/output/agent/src/state_machines/task.ts +22 -22
- package/bone/output/agent/src/state_machines/tool_call.ts +22 -22
- package/bone/output/agent/src/tests.ts +361 -361
- package/bone/output/agent/src/websocket.ts +200 -200
- package/bone/output/agent/tsconfig.json +24 -24
- package/bone/output/rag/.dockerignore +7 -7
- package/bone/output/rag/.env.example +36 -36
- package/bone/output/rag/.github/workflows/ci.yaml +58 -58
- package/bone/output/rag/Dockerfile +22 -22
- package/bone/output/rag/RAGDomain.bone.map +286 -286
- package/bone/output/rag/RAGDomain.postman_collection.json +922 -922
- package/bone/output/rag/README.md +47 -47
- package/bone/output/rag/admin/index.html +817 -817
- package/bone/output/rag/docker-compose.yaml +22 -22
- package/bone/output/rag/k8s/deployment.yaml +75 -75
- package/bone/output/rag/migrations/audit_log.sql +18 -18
- package/bone/output/rag/migrations/code_chunk.sql +34 -34
- package/bone/output/rag/migrations/code_file.sql +33 -33
- package/bone/output/rag/migrations/event_outbox.sql +31 -31
- package/bone/output/rag/migrations/indexing_job.sql +33 -33
- package/bone/output/rag/migrations/knowledge_base.sql +35 -35
- package/bone/output/rag/migrations/memory_entry.sql +34 -34
- package/bone/output/rag/openapi.yaml +1097 -1097
- package/bone/output/rag/package.json +35 -35
- package/bone/output/rag/schema.graphql +245 -245
- package/bone/output/rag/sdk/client.ts +234 -234
- package/bone/output/rag/src/algorithms.ts +2 -2
- package/bone/output/rag/src/audit.ts +37 -37
- package/bone/output/rag/src/auth.ts +57 -57
- package/bone/output/rag/src/cron.ts +12 -12
- package/bone/output/rag/src/db.ts +31 -31
- package/bone/output/rag/src/debug.ts +66 -66
- package/bone/output/rag/src/events.ts +243 -243
- package/bone/output/rag/src/extensions.ts +350 -350
- package/bone/output/rag/src/failure_rules.ts +314 -314
- package/bone/output/rag/src/flows.ts +239 -239
- package/bone/output/rag/src/health.ts +43 -43
- package/bone/output/rag/src/index.ts +94 -94
- package/bone/output/rag/src/logger.ts +69 -66
- package/bone/output/rag/src/metrics.ts +75 -75
- package/bone/output/rag/src/migrate.ts +363 -363
- package/bone/output/rag/src/migration_diff.ts +108 -108
- package/bone/output/rag/src/notify.ts +99 -99
- package/bone/output/rag/src/routes/code_chunk.ts +75 -75
- package/bone/output/rag/src/routes/code_file.ts +101 -101
- package/bone/output/rag/src/routes/indexing_job.ts +87 -87
- package/bone/output/rag/src/routes/knowledge_base.ts +230 -230
- package/bone/output/rag/src/routes/memory_entry.ts +87 -87
- package/bone/output/rag/src/schemas.ts +394 -394
- package/bone/output/rag/src/state_machines/code_file.ts +23 -23
- package/bone/output/rag/src/state_machines/indexing_job.ts +22 -22
- package/bone/output/rag/src/state_machines/knowledge_base.ts +23 -23
- package/bone/output/rag/src/state_machines/memory_entry.ts +20 -20
- package/bone/output/rag/src/tests.ts +339 -339
- package/bone/output/rag/tsconfig.json +24 -24
- package/bone/output/session/.dockerignore +7 -7
- package/bone/output/session/.env.example +36 -36
- package/bone/output/session/.github/workflows/ci.yaml +58 -58
- package/bone/output/session/Dockerfile +22 -22
- package/bone/output/session/README.md +47 -47
- package/bone/output/session/SessionDomain.bone.map +349 -349
- package/bone/output/session/SessionDomain.postman_collection.json +957 -957
- package/bone/output/session/admin/index.html +666 -666
- package/bone/output/session/docker-compose.yaml +22 -22
- package/bone/output/session/k8s/deployment.yaml +75 -75
- package/bone/output/session/migrations/audit_log.sql +18 -18
- package/bone/output/session/migrations/event_outbox.sql +31 -31
- package/bone/output/session/migrations/message.sql +31 -31
- package/bone/output/session/migrations/part.sql +28 -28
- package/bone/output/session/migrations/permission.sql +28 -28
- package/bone/output/session/migrations/project.sql +28 -28
- package/bone/output/session/migrations/session.sql +38 -38
- package/bone/output/session/openapi.yaml +1101 -1101
- package/bone/output/session/package.json +35 -35
- package/bone/output/session/schema.graphql +222 -222
- package/bone/output/session/sdk/client.ts +225 -225
- package/bone/output/session/src/algorithms.ts +2 -2
- package/bone/output/session/src/audit.ts +44 -44
- package/bone/output/session/src/auth.ts +57 -57
- package/bone/output/session/src/cron.ts +12 -12
- package/bone/output/session/src/db.ts +31 -31
- package/bone/output/session/src/debug.ts +66 -66
- package/bone/output/session/src/events.ts +270 -270
- package/bone/output/session/src/extensions.ts +215 -215
- package/bone/output/session/src/failure_rules.ts +283 -283
- package/bone/output/session/src/flows.ts +168 -168
- package/bone/output/session/src/health.ts +43 -43
- package/bone/output/session/src/index.ts +99 -99
- package/bone/output/session/src/logger.ts +67 -66
- package/bone/output/session/src/metrics.ts +75 -75
- package/bone/output/session/src/migrate.ts +331 -331
- package/bone/output/session/src/migration_diff.ts +108 -108
- package/bone/output/session/src/notify.ts +112 -112
- package/bone/output/session/src/routes/message.ts +93 -93
- package/bone/output/session/src/routes/part.ts +79 -79
- package/bone/output/session/src/routes/permission.ts +79 -79
- package/bone/output/session/src/routes/project.ts +79 -79
- package/bone/output/session/src/routes/session.ts +294 -294
- package/bone/output/session/src/schemas.ts +357 -357
- package/bone/output/session/src/state_machines/session.ts +23 -23
- package/bone/output/session/src/tests.ts +325 -325
- package/bone/output/session/src/websocket.ts +223 -200
- package/bone/output/session/tsconfig.json +24 -24
- package/bone/output/workspace/.dockerignore +7 -7
- package/bone/output/workspace/.env.example +36 -36
- package/bone/output/workspace/.github/workflows/ci.yaml +58 -58
- package/bone/output/workspace/Dockerfile +22 -22
- package/bone/output/workspace/README.md +45 -45
- package/bone/output/workspace/WorkspaceDomain.bone.map +188 -188
- package/bone/output/workspace/WorkspaceDomain.postman_collection.json +620 -620
- package/bone/output/workspace/admin/index.html +484 -484
- package/bone/output/workspace/docker-compose.yaml +22 -22
- package/bone/output/workspace/k8s/deployment.yaml +75 -75
- package/bone/output/workspace/migrations/audit_log.sql +18 -18
- package/bone/output/workspace/migrations/codebase.sql +34 -34
- package/bone/output/workspace/migrations/event_outbox.sql +31 -31
- package/bone/output/workspace/migrations/snapshot.sql +32 -32
- package/bone/output/workspace/migrations/workspace.sql +33 -33
- package/bone/output/workspace/openapi.yaml +721 -721
- package/bone/output/workspace/package.json +35 -35
- package/bone/output/workspace/schema.graphql +153 -153
- package/bone/output/workspace/sdk/client.ts +155 -155
- package/bone/output/workspace/src/algorithms.ts +2 -2
- package/bone/output/workspace/src/audit.ts +37 -37
- package/bone/output/workspace/src/auth.ts +57 -57
- package/bone/output/workspace/src/cron.ts +12 -12
- package/bone/output/workspace/src/db.ts +31 -31
- package/bone/output/workspace/src/debug.ts +66 -66
- package/bone/output/workspace/src/events.ts +243 -243
- package/bone/output/workspace/src/extensions.ts +44 -44
- package/bone/output/workspace/src/failure_rules.ts +152 -152
- package/bone/output/workspace/src/health.ts +43 -43
- package/bone/output/workspace/src/index.ts +88 -88
- package/bone/output/workspace/src/logger.ts +69 -66
- package/bone/output/workspace/src/metrics.ts +75 -75
- package/bone/output/workspace/src/migrate.ts +219 -219
- package/bone/output/workspace/src/migration_diff.ts +108 -108
- package/bone/output/workspace/src/notify.ts +73 -73
- package/bone/output/workspace/src/routes/codebase.ts +87 -87
- package/bone/output/workspace/src/routes/snapshot.ts +127 -127
- package/bone/output/workspace/src/routes/workspace.ts +190 -190
- package/bone/output/workspace/src/schemas.ts +231 -231
- package/bone/output/workspace/src/state_machines/codebase.ts +21 -21
- package/bone/output/workspace/src/state_machines/snapshot.ts +20 -20
- package/bone/output/workspace/src/state_machines/workspace.ts +21 -21
- package/bone/output/workspace/src/tests.ts +248 -248
- package/bone/output/workspace/tsconfig.json +24 -24
- package/compat/opencode_adapter.ts +94 -17
- package/package.json +15 -2
- package/src/cli.ts +66 -107
- package/src/db_adapter.ts +354 -0
- package/src/engine/account/account.sql.ts +39 -39
- package/src/engine/account/account.ts +456 -456
- package/src/engine/account/repo.ts +166 -166
- package/src/engine/account/schema.ts +99 -99
- package/src/engine/account/url.ts +8 -8
- package/src/engine/acp/README.md +174 -174
- package/src/engine/acp/agent.ts +1968 -1968
- package/src/engine/acp/runtime.ts +22 -22
- package/src/engine/acp/session.ts +122 -122
- package/src/engine/acp/types.ts +24 -24
- package/src/engine/agent/agent.ts +463 -463
- package/src/engine/agent/generate.txt +75 -75
- package/src/engine/agent/prompt/compaction.txt +9 -9
- package/src/engine/agent/prompt/explore.txt +18 -18
- package/src/engine/agent/prompt/scout.txt +36 -36
- package/src/engine/agent/prompt/summary.txt +11 -11
- package/src/engine/agent/prompt/title.txt +44 -44
- package/src/engine/agent/subagent-permissions.ts +34 -34
- package/src/engine/auth/index.ts +96 -96
- package/src/engine/background/background/job.ts +200 -200
- package/src/engine/background/job.ts +200 -200
- package/src/engine/bus/bus-event.ts +45 -45
- package/src/engine/bus/global.ts +22 -22
- package/src/engine/bus/index.ts +203 -203
- package/src/engine/command/command/index.ts +181 -181
- package/src/engine/command/command/template/initialize.txt +66 -66
- package/src/engine/command/command/template/review.txt +101 -101
- package/src/engine/command/index.ts +181 -181
- package/src/engine/command/template/initialize.txt +66 -66
- package/src/engine/command/template/review.txt +101 -101
- package/src/engine/config/agent.ts +172 -172
- package/src/engine/config/attachment.ts +25 -25
- package/src/engine/config/command.ts +62 -62
- package/src/engine/config/config.ts +833 -833
- package/src/engine/config/console-state.ts +14 -14
- package/src/engine/config/entry-name.ts +16 -16
- package/src/engine/config/error.ts +23 -23
- package/src/engine/config/formatter.ts +13 -13
- package/src/engine/config/layout.ts +6 -6
- package/src/engine/config/lsp.ts +43 -43
- package/src/engine/config/managed.ts +71 -71
- package/src/engine/config/markdown.ts +96 -96
- package/src/engine/config/mcp.ts +56 -56
- package/src/engine/config/model-id.ts +5 -5
- package/src/engine/config/parse.ts +79 -79
- package/src/engine/config/paths.ts +45 -45
- package/src/engine/config/permission.ts +58 -58
- package/src/engine/config/plugin.ts +84 -84
- package/src/engine/config/provider.ts +111 -111
- package/src/engine/config/reference.ts +23 -23
- package/src/engine/config/server.ts +19 -19
- package/src/engine/config/skills.ts +14 -14
- package/src/engine/config/variable.ts +90 -90
- package/src/engine/control-plane/adapters/index.ts +41 -41
- package/src/engine/control-plane/adapters/worktree.ts +96 -96
- package/src/engine/control-plane/dev/README.md +19 -19
- package/src/engine/control-plane/dev/debug-workspace-plugin.ts +73 -73
- package/src/engine/control-plane/schema.ts +14 -14
- package/src/engine/control-plane/types.ts +59 -59
- package/src/engine/control-plane/util.ts +39 -39
- package/src/engine/control-plane/workspace-adapter-runtime.ts +51 -51
- package/src/engine/control-plane/workspace-context.ts +26 -26
- package/src/engine/control-plane/workspace.sql.ts +20 -20
- package/src/engine/control-plane/workspace.ts +1072 -1072
- package/src/engine/data-migration.ts +161 -161
- package/src/engine/effect/app-runtime.ts +143 -143
- package/src/engine/effect/bootstrap-runtime.ts +29 -29
- package/src/engine/effect/bridge.ts +84 -84
- package/src/engine/effect/config-service.ts +67 -67
- package/src/engine/effect/instance-ref.ts +11 -11
- package/src/engine/effect/instance-registry.ts +12 -12
- package/src/engine/effect/instance-state.ts +72 -72
- package/src/engine/effect/promise.ts +17 -17
- package/src/engine/effect/run-service.ts +47 -47
- package/src/engine/effect/runner.ts +217 -217
- package/src/engine/effect/runtime-flags.ts +74 -74
- package/src/engine/effect/service-use.ts +38 -38
- package/src/engine/env/index.ts +37 -37
- package/src/engine/event-v2-bridge.ts +89 -89
- package/src/engine/file/file/ignore.ts +81 -81
- package/src/engine/file/file/index.ts +651 -651
- package/src/engine/file/file/protected.ts +59 -59
- package/src/engine/file/file/ripgrep.ts +481 -481
- package/src/engine/file/file/watcher.ts +167 -167
- package/src/engine/file/ignore.ts +81 -81
- package/src/engine/file/index.ts +651 -651
- package/src/engine/file/protected.ts +59 -59
- package/src/engine/file/ripgrep.ts +481 -481
- package/src/engine/file/watcher.ts +167 -167
- package/src/engine/format/format/formatter.ts +404 -404
- package/src/engine/format/format/index.ts +209 -209
- package/src/engine/format/formatter.ts +404 -404
- package/src/engine/format/index.ts +209 -209
- package/src/engine/git/git/index.ts +347 -347
- package/src/engine/git/index.ts +347 -347
- package/src/engine/id/id.ts +80 -80
- package/src/engine/ide/index.ts +70 -70
- package/src/engine/image/image/image.ts +176 -176
- package/src/engine/image/image.ts +176 -176
- package/src/engine/index.ts +251 -251
- package/src/engine/installation/index.ts +327 -327
- package/src/engine/lsp/client.ts +707 -707
- package/src/engine/lsp/diagnostic.ts +29 -29
- package/src/engine/lsp/language.ts +121 -121
- package/src/engine/lsp/launch.ts +21 -21
- package/src/engine/lsp/lsp/client.ts +707 -707
- package/src/engine/lsp/lsp/diagnostic.ts +29 -29
- package/src/engine/lsp/lsp/language.ts +121 -121
- package/src/engine/lsp/lsp/launch.ts +21 -21
- package/src/engine/lsp/lsp/lsp.ts +507 -507
- package/src/engine/lsp/lsp/server.ts +2064 -2064
- package/src/engine/lsp/lsp.ts +507 -507
- package/src/engine/lsp/server.ts +2064 -2064
- package/src/engine/mcp/auth.ts +146 -146
- package/src/engine/mcp/index.ts +958 -958
- package/src/engine/mcp/mcp/auth.ts +146 -146
- package/src/engine/mcp/mcp/index.ts +958 -958
- package/src/engine/mcp/mcp/oauth-callback.ts +232 -232
- package/src/engine/mcp/mcp/oauth-provider.ts +214 -214
- package/src/engine/mcp/oauth-callback.ts +232 -232
- package/src/engine/mcp/oauth-provider.ts +214 -214
- package/src/engine/node.ts +6 -6
- package/src/engine/patch/index.ts +689 -689
- package/src/engine/patch/patch/index.ts +689 -689
- package/src/engine/permission/arity.ts +163 -163
- package/src/engine/permission/evaluate.ts +15 -15
- package/src/engine/permission/index.ts +306 -306
- package/src/engine/permission/permission/arity.ts +163 -163
- package/src/engine/permission/permission/evaluate.ts +15 -15
- package/src/engine/permission/permission/index.ts +306 -306
- package/src/engine/permission/permission/schema.ts +13 -13
- package/src/engine/permission/schema.ts +13 -13
- package/src/engine/plugin/azure.ts +26 -26
- package/src/engine/plugin/cloudflare.ts +76 -76
- package/src/engine/plugin/codex.ts +622 -622
- package/src/engine/plugin/digitalocean.ts +411 -411
- package/src/engine/plugin/github-copilot/copilot.ts +394 -394
- package/src/engine/plugin/github-copilot/models.ts +196 -196
- package/src/engine/plugin/index.ts +295 -295
- package/src/engine/plugin/install.ts +439 -439
- package/src/engine/plugin/loader.ts +216 -216
- package/src/engine/plugin/meta.ts +188 -188
- package/src/engine/plugin/shared.ts +323 -323
- package/src/engine/project/bootstrap-service.ts +9 -9
- package/src/engine/project/bootstrap.ts +75 -75
- package/src/engine/project/instance-context.ts +24 -24
- package/src/engine/project/instance-layer.ts +11 -11
- package/src/engine/project/instance-runtime.ts +16 -16
- package/src/engine/project/instance-store.ts +193 -193
- package/src/engine/project/project.sql.ts +17 -17
- package/src/engine/project/project.ts +537 -537
- package/src/engine/project/schema.ts +13 -13
- package/src/engine/project/vcs.ts +405 -405
- package/src/engine/provider/auth.ts +225 -225
- package/src/engine/provider/error.ts +204 -204
- package/src/engine/provider/model-status.ts +8 -8
- package/src/engine/provider/provider.ts +1843 -1843
- package/src/engine/provider/schema.ts +30 -30
- package/src/engine/provider/transform.ts +1376 -1376
- package/src/engine/pty/index.ts +365 -365
- package/src/engine/pty/input.ts +24 -24
- package/src/engine/pty/pty/index.ts +365 -365
- package/src/engine/pty/pty/input.ts +24 -24
- package/src/engine/pty/pty/pty.bun.ts +26 -26
- package/src/engine/pty/pty/pty.node.ts +27 -27
- package/src/engine/pty/pty/pty.ts +25 -25
- package/src/engine/pty/pty/schema.ts +14 -14
- package/src/engine/pty/pty/ticket.ts +68 -68
- package/src/engine/pty/pty.bun.ts +26 -26
- package/src/engine/pty/pty.node.ts +27 -27
- package/src/engine/pty/pty.ts +25 -25
- package/src/engine/pty/schema.ts +14 -14
- package/src/engine/pty/ticket.ts +68 -68
- package/src/engine/question/index.ts +213 -213
- package/src/engine/question/question/index.ts +213 -213
- package/src/engine/question/question/schema.ts +10 -10
- package/src/engine/question/schema.ts +10 -10
- package/src/engine/reference/reference/reference.ts +241 -241
- package/src/engine/reference/reference/repository-cache.ts +147 -147
- package/src/engine/reference/reference.ts +241 -241
- package/src/engine/reference/repository-cache.ts +147 -147
- package/src/engine/session/compaction.ts +651 -651
- package/src/engine/session/instruction.ts +238 -238
- package/src/engine/session/llm.ts +459 -459
- package/src/engine/session/message-error.ts +14 -14
- package/src/engine/session/message-v2.ts +1202 -1202
- package/src/engine/session/message.ts +146 -146
- package/src/engine/session/overflow.ts +32 -32
- package/src/engine/session/processor.ts +823 -823
- package/src/engine/session/prompt/anthropic.txt +105 -105
- package/src/engine/session/prompt/beast.txt +147 -147
- package/src/engine/session/prompt/build-switch.txt +5 -5
- package/src/engine/session/prompt/codex.txt +79 -79
- package/src/engine/session/prompt/copilot-gpt-5.txt +143 -143
- package/src/engine/session/prompt/default.txt +105 -105
- package/src/engine/session/prompt/gemini.txt +155 -155
- package/src/engine/session/prompt/gpt.txt +107 -107
- package/src/engine/session/prompt/kimi.txt +95 -95
- package/src/engine/session/prompt/max-steps.txt +15 -15
- package/src/engine/session/prompt/plan-reminder-anthropic.txt +67 -67
- package/src/engine/session/prompt/plan.txt +26 -26
- package/src/engine/session/prompt/trinity.txt +97 -97
- package/src/engine/session/prompt.ts +66 -9
- package/src/engine/session/retry.ts +200 -200
- package/src/engine/session/revert.ts +162 -162
- package/src/engine/session/run-state.ts +153 -153
- package/src/engine/session/schema.ts +26 -26
- package/src/engine/session/session.sql.ts +137 -137
- package/src/engine/session/session.ts +1011 -1011
- package/src/engine/session/status.ts +94 -94
- package/src/engine/session/summary.ts +164 -164
- package/src/engine/session/system.ts +84 -84
- package/src/engine/session/todo.ts +81 -81
- package/src/engine/share/session.ts +61 -61
- package/src/engine/share/share-next.ts +376 -376
- package/src/engine/share/share.sql.ts +13 -13
- package/src/engine/shell/shell/shell.ts +215 -215
- package/src/engine/shell/shell.ts +215 -215
- package/src/engine/skill/discovery.ts +116 -116
- package/src/engine/skill/index.ts +336 -336
- package/src/engine/skill/prompt/customize-opencode.md +377 -377
- package/src/engine/skill/skill/discovery.ts +116 -116
- package/src/engine/skill/skill/index.ts +336 -336
- package/src/engine/skill/skill/prompt/customize-opencode.md +377 -377
- package/src/engine/snapshot/index.ts +762 -762
- package/src/engine/snapshot/snapshot/index.ts +762 -762
- package/src/engine/sync/README.md +179 -179
- package/src/engine/sync/event.sql.ts +17 -17
- package/src/engine/sync/index.ts +410 -410
- package/src/engine/sync/schema.ts +11 -11
- package/src/engine/temporary.ts +33 -33
- package/src/engine/tool/apply_patch.ts +313 -313
- package/src/engine/tool/apply_patch.txt +33 -33
- package/src/engine/tool/edit.ts +711 -711
- package/src/engine/tool/edit.txt +10 -10
- package/src/engine/tool/external-directory.ts +49 -49
- package/src/engine/tool/glob.ts +103 -103
- package/src/engine/tool/glob.txt +6 -6
- package/src/engine/tool/grep.ts +156 -156
- package/src/engine/tool/grep.txt +8 -8
- package/src/engine/tool/invalid.ts +21 -21
- package/src/engine/tool/json-schema.ts +164 -164
- package/src/engine/tool/lsp.ts +113 -113
- package/src/engine/tool/lsp.txt +24 -24
- package/src/engine/tool/mcp-websearch.ts +96 -96
- package/src/engine/tool/plan-enter.txt +14 -14
- package/src/engine/tool/plan-exit.txt +13 -13
- package/src/engine/tool/plan.ts +78 -78
- package/src/engine/tool/question.ts +44 -44
- package/src/engine/tool/question.txt +10 -10
- package/src/engine/tool/read.ts +337 -337
- package/src/engine/tool/read.txt +14 -14
- package/src/engine/tool/registry.ts +472 -472
- package/src/engine/tool/repo_clone.ts +80 -80
- package/src/engine/tool/repo_clone.txt +5 -5
- package/src/engine/tool/repo_overview.ts +279 -279
- package/src/engine/tool/repo_overview.txt +4 -4
- package/src/engine/tool/schema.ts +14 -14
- package/src/engine/tool/shell/id.ts +19 -19
- package/src/engine/tool/shell/prompt.ts +295 -295
- package/src/engine/tool/shell/shell.txt +77 -77
- package/src/engine/tool/shell.ts +647 -647
- package/src/engine/tool/skill.ts +75 -75
- package/src/engine/tool/skill.txt +5 -5
- package/src/engine/tool/task.ts +337 -337
- package/src/engine/tool/task.txt +58 -58
- package/src/engine/tool/task_status.ts +179 -179
- package/src/engine/tool/task_status.txt +13 -13
- package/src/engine/tool/todo.ts +57 -57
- package/src/engine/tool/todowrite.txt +167 -167
- package/src/engine/tool/tool/apply_patch.ts +313 -313
- package/src/engine/tool/tool/apply_patch.txt +33 -33
- package/src/engine/tool/tool/edit.ts +711 -711
- package/src/engine/tool/tool/edit.txt +10 -10
- package/src/engine/tool/tool/external-directory.ts +49 -49
- package/src/engine/tool/tool/glob.ts +103 -103
- package/src/engine/tool/tool/glob.txt +6 -6
- package/src/engine/tool/tool/grep.ts +156 -156
- package/src/engine/tool/tool/grep.txt +8 -8
- package/src/engine/tool/tool/invalid.ts +21 -21
- package/src/engine/tool/tool/json-schema.ts +164 -164
- package/src/engine/tool/tool/lsp.ts +113 -113
- package/src/engine/tool/tool/lsp.txt +24 -24
- package/src/engine/tool/tool/mcp-websearch.ts +96 -96
- package/src/engine/tool/tool/plan-enter.txt +14 -14
- package/src/engine/tool/tool/plan-exit.txt +13 -13
- package/src/engine/tool/tool/plan.ts +78 -78
- package/src/engine/tool/tool/question.ts +44 -44
- package/src/engine/tool/tool/question.txt +10 -10
- package/src/engine/tool/tool/read.ts +337 -337
- package/src/engine/tool/tool/read.txt +14 -14
- package/src/engine/tool/tool/registry.ts +472 -472
- package/src/engine/tool/tool/repo_clone.ts +80 -80
- package/src/engine/tool/tool/repo_clone.txt +5 -5
- package/src/engine/tool/tool/repo_overview.ts +279 -279
- package/src/engine/tool/tool/repo_overview.txt +4 -4
- package/src/engine/tool/tool/schema.ts +14 -14
- package/src/engine/tool/tool/shell/id.ts +19 -19
- package/src/engine/tool/tool/shell/prompt.ts +295 -295
- package/src/engine/tool/tool/shell/shell.txt +77 -77
- package/src/engine/tool/tool/shell.ts +647 -647
- package/src/engine/tool/tool/skill.ts +75 -75
- package/src/engine/tool/tool/skill.txt +5 -5
- package/src/engine/tool/tool/task.ts +337 -337
- package/src/engine/tool/tool/task.txt +58 -58
- package/src/engine/tool/tool/task_status.ts +179 -179
- package/src/engine/tool/tool/task_status.txt +13 -13
- package/src/engine/tool/tool/todo.ts +57 -57
- package/src/engine/tool/tool/todowrite.txt +167 -167
- package/src/engine/tool/tool/tool.ts +164 -164
- package/src/engine/tool/tool/truncate.ts +160 -160
- package/src/engine/tool/tool/truncation-dir.ts +4 -4
- package/src/engine/tool/tool/webfetch.ts +192 -192
- package/src/engine/tool/tool/webfetch.txt +13 -13
- package/src/engine/tool/tool/websearch.ts +143 -143
- package/src/engine/tool/tool/websearch.txt +14 -14
- package/src/engine/tool/tool/write.ts +104 -104
- package/src/engine/tool/tool/write.txt +8 -8
- package/src/engine/tool/tool.ts +164 -164
- package/src/engine/tool/truncate.ts +160 -160
- package/src/engine/tool/truncation-dir.ts +4 -4
- package/src/engine/tool/webfetch.ts +192 -192
- package/src/engine/tool/webfetch.txt +13 -13
- package/src/engine/tool/websearch.ts +143 -143
- package/src/engine/tool/websearch.txt +14 -14
- package/src/engine/tool/write.ts +104 -104
- package/src/engine/tool/write.txt +8 -8
- package/src/engine/util/archive.ts +17 -17
- package/src/engine/util/bom.ts +31 -31
- package/src/engine/util/data-url.ts +9 -9
- package/src/engine/util/defer.ts +10 -10
- package/src/engine/util/effect-http-client.ts +11 -11
- package/src/engine/util/error.ts +88 -88
- package/src/engine/util/filesystem.ts +252 -252
- package/src/engine/util/format.ts +20 -20
- package/src/engine/util/iife.ts +3 -3
- package/src/engine/util/lazy.ts +20 -20
- package/src/engine/util/local-context.ts +25 -25
- package/src/engine/util/locale.ts +86 -86
- package/src/engine/util/media.ts +26 -26
- package/src/engine/util/process.ts +176 -176
- package/src/engine/util/queue.ts +32 -32
- package/src/engine/util/record.ts +3 -3
- package/src/engine/util/repository.ts +158 -158
- package/src/engine/util/rpc.ts +66 -66
- package/src/engine/util/signal.ts +12 -12
- package/src/engine/util/timeout.ts +13 -13
- package/src/engine/util/token.ts +7 -7
- package/src/engine/util/util/archive.ts +17 -17
- package/src/engine/util/util/bom.ts +31 -31
- package/src/engine/util/util/data-url.ts +9 -9
- package/src/engine/util/util/defer.ts +10 -10
- package/src/engine/util/util/effect-http-client.ts +11 -11
- package/src/engine/util/util/error.ts +88 -88
- package/src/engine/util/util/filesystem.ts +252 -252
- package/src/engine/util/util/format.ts +20 -20
- package/src/engine/util/util/iife.ts +3 -3
- package/src/engine/util/util/lazy.ts +20 -20
- package/src/engine/util/util/local-context.ts +25 -25
- package/src/engine/util/util/locale.ts +86 -86
- package/src/engine/util/util/media.ts +26 -26
- package/src/engine/util/util/process.ts +176 -176
- package/src/engine/util/util/queue.ts +32 -32
- package/src/engine/util/util/record.ts +3 -3
- package/src/engine/util/util/repository.ts +158 -158
- package/src/engine/util/util/rpc.ts +66 -66
- package/src/engine/util/util/signal.ts +12 -12
- package/src/engine/util/util/timeout.ts +13 -13
- package/src/engine/util/util/token.ts +7 -7
- package/src/engine/util/util/which.ts +14 -14
- package/src/engine/util/util/wildcard.ts +59 -59
- package/src/engine/util/which.ts +14 -14
- package/src/engine/util/wildcard.ts +59 -59
- package/src/engine/worktree/index.ts +621 -621
- package/src/server.ts +121 -158
- package/src/tui.ts +485 -502
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import { Glob } from "@opencode-ai/core/util/glob"
|
|
2
|
-
import { Schema } from "effect"
|
|
3
|
-
import { pathToFileURL } from "url"
|
|
4
|
-
import { isPathPluginSpec, parsePluginSpecifier, resolvePathPluginTarget } from "@/plugin/shared"
|
|
5
|
-
import path from "path"
|
|
6
|
-
|
|
7
|
-
export const Options = Schema.Record(Schema.String, Schema.Unknown)
|
|
8
|
-
export type Options = Schema.Schema.Type<typeof Options>
|
|
9
|
-
|
|
10
|
-
// Spec is the user-config value: either just a plugin identifier, or the identifier plus inline options.
|
|
11
|
-
// It answers "what should we load?" but says nothing about where that value came from.
|
|
12
|
-
export const Spec = Schema.Union([Schema.String, Schema.mutable(Schema.Tuple([Schema.String, Options]))])
|
|
13
|
-
export type Spec = Schema.Schema.Type<typeof Spec>
|
|
14
|
-
|
|
15
|
-
export type Scope = "global" | "local"
|
|
16
|
-
|
|
17
|
-
// Origin keeps the original config provenance attached to a spec.
|
|
18
|
-
// After multiple config files are merged, callers still need to know which file declared the plugin
|
|
19
|
-
// and whether it should behave like a global or project-local plugin.
|
|
20
|
-
export type Origin = {
|
|
21
|
-
spec: Spec
|
|
22
|
-
source: string
|
|
23
|
-
scope: Scope
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export async function load(dir: string) {
|
|
27
|
-
const plugins: Spec[] = []
|
|
28
|
-
|
|
29
|
-
for (const item of await Glob.scan("{plugin,plugins}/*.{ts,js}", {
|
|
30
|
-
cwd: dir,
|
|
31
|
-
absolute: true,
|
|
32
|
-
dot: true,
|
|
33
|
-
symlink: true,
|
|
34
|
-
})) {
|
|
35
|
-
plugins.push(pathToFileURL(item).href)
|
|
36
|
-
}
|
|
37
|
-
return plugins
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function pluginSpecifier(plugin: Spec): string {
|
|
41
|
-
return Array.isArray(plugin) ? plugin[0] : plugin
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export function pluginOptions(plugin: Spec): Options | undefined {
|
|
45
|
-
return Array.isArray(plugin) ? plugin[1] : undefined
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// Path-like specs are resolved relative to the config file that declared them so merges later on do not
|
|
49
|
-
// accidentally reinterpret `./plugin.ts` relative to some other directory.
|
|
50
|
-
export async function resolvePluginSpec(plugin: Spec, configFilepath: string): Promise<Spec> {
|
|
51
|
-
const spec = pluginSpecifier(plugin)
|
|
52
|
-
if (!isPathPluginSpec(spec)) return plugin
|
|
53
|
-
|
|
54
|
-
const base = path.dirname(configFilepath)
|
|
55
|
-
const file = (() => {
|
|
56
|
-
if (spec.startsWith("file://")) return spec
|
|
57
|
-
if (path.isAbsolute(spec) || /^[A-Za-z]:[\\/]/.test(spec)) return pathToFileURL(spec).href
|
|
58
|
-
return pathToFileURL(path.resolve(base, spec)).href
|
|
59
|
-
})()
|
|
60
|
-
|
|
61
|
-
const resolved = await resolvePathPluginTarget(file).catch(() => file)
|
|
62
|
-
|
|
63
|
-
if (Array.isArray(plugin)) return [resolved, plugin[1]]
|
|
64
|
-
return resolved
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// Dedupe on the load identity (package name for npm specs, exact file URL for local specs), but keep the
|
|
68
|
-
// full Origin so downstream code still knows which config file won and where follow-up writes should go.
|
|
69
|
-
export function deduplicatePluginOrigins(plugins: Origin[]): Origin[] {
|
|
70
|
-
const seen = new Set<string>()
|
|
71
|
-
const list: Origin[] = []
|
|
72
|
-
|
|
73
|
-
for (const plugin of plugins.toReversed()) {
|
|
74
|
-
const spec = pluginSpecifier(plugin.spec)
|
|
75
|
-
const name = spec.startsWith("file://") ? spec : parsePluginSpecifier(spec).pkg
|
|
76
|
-
if (seen.has(name)) continue
|
|
77
|
-
seen.add(name)
|
|
78
|
-
list.push(plugin)
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return list.toReversed()
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export * as ConfigPlugin from "./plugin"
|
|
1
|
+
import { Glob } from "@opencode-ai/core/util/glob"
|
|
2
|
+
import { Schema } from "effect"
|
|
3
|
+
import { pathToFileURL } from "url"
|
|
4
|
+
import { isPathPluginSpec, parsePluginSpecifier, resolvePathPluginTarget } from "@/plugin/shared"
|
|
5
|
+
import path from "path"
|
|
6
|
+
|
|
7
|
+
export const Options = Schema.Record(Schema.String, Schema.Unknown)
|
|
8
|
+
export type Options = Schema.Schema.Type<typeof Options>
|
|
9
|
+
|
|
10
|
+
// Spec is the user-config value: either just a plugin identifier, or the identifier plus inline options.
|
|
11
|
+
// It answers "what should we load?" but says nothing about where that value came from.
|
|
12
|
+
export const Spec = Schema.Union([Schema.String, Schema.mutable(Schema.Tuple([Schema.String, Options]))])
|
|
13
|
+
export type Spec = Schema.Schema.Type<typeof Spec>
|
|
14
|
+
|
|
15
|
+
export type Scope = "global" | "local"
|
|
16
|
+
|
|
17
|
+
// Origin keeps the original config provenance attached to a spec.
|
|
18
|
+
// After multiple config files are merged, callers still need to know which file declared the plugin
|
|
19
|
+
// and whether it should behave like a global or project-local plugin.
|
|
20
|
+
export type Origin = {
|
|
21
|
+
spec: Spec
|
|
22
|
+
source: string
|
|
23
|
+
scope: Scope
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export async function load(dir: string) {
|
|
27
|
+
const plugins: Spec[] = []
|
|
28
|
+
|
|
29
|
+
for (const item of await Glob.scan("{plugin,plugins}/*.{ts,js}", {
|
|
30
|
+
cwd: dir,
|
|
31
|
+
absolute: true,
|
|
32
|
+
dot: true,
|
|
33
|
+
symlink: true,
|
|
34
|
+
})) {
|
|
35
|
+
plugins.push(pathToFileURL(item).href)
|
|
36
|
+
}
|
|
37
|
+
return plugins
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function pluginSpecifier(plugin: Spec): string {
|
|
41
|
+
return Array.isArray(plugin) ? plugin[0] : plugin
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function pluginOptions(plugin: Spec): Options | undefined {
|
|
45
|
+
return Array.isArray(plugin) ? plugin[1] : undefined
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Path-like specs are resolved relative to the config file that declared them so merges later on do not
|
|
49
|
+
// accidentally reinterpret `./plugin.ts` relative to some other directory.
|
|
50
|
+
export async function resolvePluginSpec(plugin: Spec, configFilepath: string): Promise<Spec> {
|
|
51
|
+
const spec = pluginSpecifier(plugin)
|
|
52
|
+
if (!isPathPluginSpec(spec)) return plugin
|
|
53
|
+
|
|
54
|
+
const base = path.dirname(configFilepath)
|
|
55
|
+
const file = (() => {
|
|
56
|
+
if (spec.startsWith("file://")) return spec
|
|
57
|
+
if (path.isAbsolute(spec) || /^[A-Za-z]:[\\/]/.test(spec)) return pathToFileURL(spec).href
|
|
58
|
+
return pathToFileURL(path.resolve(base, spec)).href
|
|
59
|
+
})()
|
|
60
|
+
|
|
61
|
+
const resolved = await resolvePathPluginTarget(file).catch(() => file)
|
|
62
|
+
|
|
63
|
+
if (Array.isArray(plugin)) return [resolved, plugin[1]]
|
|
64
|
+
return resolved
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Dedupe on the load identity (package name for npm specs, exact file URL for local specs), but keep the
|
|
68
|
+
// full Origin so downstream code still knows which config file won and where follow-up writes should go.
|
|
69
|
+
export function deduplicatePluginOrigins(plugins: Origin[]): Origin[] {
|
|
70
|
+
const seen = new Set<string>()
|
|
71
|
+
const list: Origin[] = []
|
|
72
|
+
|
|
73
|
+
for (const plugin of plugins.toReversed()) {
|
|
74
|
+
const spec = pluginSpecifier(plugin.spec)
|
|
75
|
+
const name = spec.startsWith("file://") ? spec : parsePluginSpecifier(spec).pkg
|
|
76
|
+
if (seen.has(name)) continue
|
|
77
|
+
seen.add(name)
|
|
78
|
+
list.push(plugin)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return list.toReversed()
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export * as ConfigPlugin from "./plugin"
|
|
@@ -1,111 +1,111 @@
|
|
|
1
|
-
import { Schema } from "effect"
|
|
2
|
-
import { PositiveInt } from "@opencode-ai/core/schema"
|
|
3
|
-
import { ModelStatus } from "@/provider/model-status"
|
|
4
|
-
|
|
5
|
-
export const Model = Schema.Struct({
|
|
6
|
-
id: Schema.optional(Schema.String),
|
|
7
|
-
name: Schema.optional(Schema.String),
|
|
8
|
-
family: Schema.optional(Schema.String),
|
|
9
|
-
release_date: Schema.optional(Schema.String),
|
|
10
|
-
attachment: Schema.optional(Schema.Boolean),
|
|
11
|
-
reasoning: Schema.optional(Schema.Boolean),
|
|
12
|
-
temperature: Schema.optional(Schema.Boolean),
|
|
13
|
-
tool_call: Schema.optional(Schema.Boolean),
|
|
14
|
-
interleaved: Schema.optional(
|
|
15
|
-
Schema.Union([
|
|
16
|
-
Schema.Literal(true),
|
|
17
|
-
Schema.Struct({
|
|
18
|
-
field: Schema.Literals(["reasoning_content", "reasoning_details"]),
|
|
19
|
-
}),
|
|
20
|
-
]),
|
|
21
|
-
),
|
|
22
|
-
cost: Schema.optional(
|
|
23
|
-
Schema.Struct({
|
|
24
|
-
input: Schema.Finite,
|
|
25
|
-
output: Schema.Finite,
|
|
26
|
-
cache_read: Schema.optional(Schema.Finite),
|
|
27
|
-
cache_write: Schema.optional(Schema.Finite),
|
|
28
|
-
context_over_200k: Schema.optional(
|
|
29
|
-
Schema.Struct({
|
|
30
|
-
input: Schema.Finite,
|
|
31
|
-
output: Schema.Finite,
|
|
32
|
-
cache_read: Schema.optional(Schema.Finite),
|
|
33
|
-
cache_write: Schema.optional(Schema.Finite),
|
|
34
|
-
}),
|
|
35
|
-
),
|
|
36
|
-
}),
|
|
37
|
-
),
|
|
38
|
-
limit: Schema.optional(
|
|
39
|
-
Schema.Struct({
|
|
40
|
-
context: Schema.Finite,
|
|
41
|
-
input: Schema.optional(Schema.Finite),
|
|
42
|
-
output: Schema.Finite,
|
|
43
|
-
}),
|
|
44
|
-
),
|
|
45
|
-
modalities: Schema.optional(
|
|
46
|
-
Schema.Struct({
|
|
47
|
-
input: Schema.mutable(Schema.Array(Schema.Literals(["text", "audio", "image", "video", "pdf"]))),
|
|
48
|
-
output: Schema.mutable(Schema.Array(Schema.Literals(["text", "audio", "image", "video", "pdf"]))),
|
|
49
|
-
}),
|
|
50
|
-
),
|
|
51
|
-
experimental: Schema.optional(Schema.Boolean),
|
|
52
|
-
status: Schema.optional(ModelStatus),
|
|
53
|
-
provider: Schema.optional(
|
|
54
|
-
Schema.Struct({ npm: Schema.optional(Schema.String), api: Schema.optional(Schema.String) }),
|
|
55
|
-
),
|
|
56
|
-
options: Schema.optional(Schema.Record(Schema.String, Schema.Any)),
|
|
57
|
-
headers: Schema.optional(Schema.Record(Schema.String, Schema.String)),
|
|
58
|
-
variants: Schema.optional(
|
|
59
|
-
Schema.Record(
|
|
60
|
-
Schema.String,
|
|
61
|
-
Schema.StructWithRest(
|
|
62
|
-
Schema.Struct({
|
|
63
|
-
disabled: Schema.optional(Schema.Boolean).annotate({ description: "Disable this variant for the model" }),
|
|
64
|
-
}),
|
|
65
|
-
[Schema.Record(Schema.String, Schema.Any)],
|
|
66
|
-
),
|
|
67
|
-
).annotate({ description: "Variant-specific configuration" }),
|
|
68
|
-
),
|
|
69
|
-
})
|
|
70
|
-
|
|
71
|
-
export const Info = Schema.Struct({
|
|
72
|
-
api: Schema.optional(Schema.String),
|
|
73
|
-
name: Schema.optional(Schema.String),
|
|
74
|
-
env: Schema.optional(Schema.mutable(Schema.Array(Schema.String))),
|
|
75
|
-
id: Schema.optional(Schema.String),
|
|
76
|
-
npm: Schema.optional(Schema.String),
|
|
77
|
-
whitelist: Schema.optional(Schema.mutable(Schema.Array(Schema.String))),
|
|
78
|
-
blacklist: Schema.optional(Schema.mutable(Schema.Array(Schema.String))),
|
|
79
|
-
options: Schema.optional(
|
|
80
|
-
Schema.StructWithRest(
|
|
81
|
-
Schema.Struct({
|
|
82
|
-
apiKey: Schema.optional(Schema.String),
|
|
83
|
-
baseURL: Schema.optional(Schema.String),
|
|
84
|
-
enterpriseUrl: Schema.optional(Schema.String).annotate({
|
|
85
|
-
description: "GitHub Enterprise URL for copilot authentication",
|
|
86
|
-
}),
|
|
87
|
-
setCacheKey: Schema.optional(Schema.Boolean).annotate({
|
|
88
|
-
description: "Enable promptCacheKey for this provider (default false)",
|
|
89
|
-
}),
|
|
90
|
-
timeout: Schema.optional(
|
|
91
|
-
Schema.Union([PositiveInt, Schema.Literal(false)]).annotate({
|
|
92
|
-
description:
|
|
93
|
-
"Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.",
|
|
94
|
-
}),
|
|
95
|
-
).annotate({
|
|
96
|
-
description:
|
|
97
|
-
"Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.",
|
|
98
|
-
}),
|
|
99
|
-
chunkTimeout: Schema.optional(PositiveInt).annotate({
|
|
100
|
-
description:
|
|
101
|
-
"Timeout in milliseconds between streamed SSE chunks for this provider. If no chunk arrives within this window, the request is aborted.",
|
|
102
|
-
}),
|
|
103
|
-
}),
|
|
104
|
-
[Schema.Record(Schema.String, Schema.Any)],
|
|
105
|
-
),
|
|
106
|
-
),
|
|
107
|
-
models: Schema.optional(Schema.Record(Schema.String, Model)),
|
|
108
|
-
}).annotate({ identifier: "ProviderConfig" })
|
|
109
|
-
export type Info = Schema.Schema.Type<typeof Info>
|
|
110
|
-
|
|
111
|
-
export * as ConfigProvider from "./provider"
|
|
1
|
+
import { Schema } from "effect"
|
|
2
|
+
import { PositiveInt } from "@opencode-ai/core/schema"
|
|
3
|
+
import { ModelStatus } from "@/provider/model-status"
|
|
4
|
+
|
|
5
|
+
export const Model = Schema.Struct({
|
|
6
|
+
id: Schema.optional(Schema.String),
|
|
7
|
+
name: Schema.optional(Schema.String),
|
|
8
|
+
family: Schema.optional(Schema.String),
|
|
9
|
+
release_date: Schema.optional(Schema.String),
|
|
10
|
+
attachment: Schema.optional(Schema.Boolean),
|
|
11
|
+
reasoning: Schema.optional(Schema.Boolean),
|
|
12
|
+
temperature: Schema.optional(Schema.Boolean),
|
|
13
|
+
tool_call: Schema.optional(Schema.Boolean),
|
|
14
|
+
interleaved: Schema.optional(
|
|
15
|
+
Schema.Union([
|
|
16
|
+
Schema.Literal(true),
|
|
17
|
+
Schema.Struct({
|
|
18
|
+
field: Schema.Literals(["reasoning_content", "reasoning_details"]),
|
|
19
|
+
}),
|
|
20
|
+
]),
|
|
21
|
+
),
|
|
22
|
+
cost: Schema.optional(
|
|
23
|
+
Schema.Struct({
|
|
24
|
+
input: Schema.Finite,
|
|
25
|
+
output: Schema.Finite,
|
|
26
|
+
cache_read: Schema.optional(Schema.Finite),
|
|
27
|
+
cache_write: Schema.optional(Schema.Finite),
|
|
28
|
+
context_over_200k: Schema.optional(
|
|
29
|
+
Schema.Struct({
|
|
30
|
+
input: Schema.Finite,
|
|
31
|
+
output: Schema.Finite,
|
|
32
|
+
cache_read: Schema.optional(Schema.Finite),
|
|
33
|
+
cache_write: Schema.optional(Schema.Finite),
|
|
34
|
+
}),
|
|
35
|
+
),
|
|
36
|
+
}),
|
|
37
|
+
),
|
|
38
|
+
limit: Schema.optional(
|
|
39
|
+
Schema.Struct({
|
|
40
|
+
context: Schema.Finite,
|
|
41
|
+
input: Schema.optional(Schema.Finite),
|
|
42
|
+
output: Schema.Finite,
|
|
43
|
+
}),
|
|
44
|
+
),
|
|
45
|
+
modalities: Schema.optional(
|
|
46
|
+
Schema.Struct({
|
|
47
|
+
input: Schema.mutable(Schema.Array(Schema.Literals(["text", "audio", "image", "video", "pdf"]))),
|
|
48
|
+
output: Schema.mutable(Schema.Array(Schema.Literals(["text", "audio", "image", "video", "pdf"]))),
|
|
49
|
+
}),
|
|
50
|
+
),
|
|
51
|
+
experimental: Schema.optional(Schema.Boolean),
|
|
52
|
+
status: Schema.optional(ModelStatus),
|
|
53
|
+
provider: Schema.optional(
|
|
54
|
+
Schema.Struct({ npm: Schema.optional(Schema.String), api: Schema.optional(Schema.String) }),
|
|
55
|
+
),
|
|
56
|
+
options: Schema.optional(Schema.Record(Schema.String, Schema.Any)),
|
|
57
|
+
headers: Schema.optional(Schema.Record(Schema.String, Schema.String)),
|
|
58
|
+
variants: Schema.optional(
|
|
59
|
+
Schema.Record(
|
|
60
|
+
Schema.String,
|
|
61
|
+
Schema.StructWithRest(
|
|
62
|
+
Schema.Struct({
|
|
63
|
+
disabled: Schema.optional(Schema.Boolean).annotate({ description: "Disable this variant for the model" }),
|
|
64
|
+
}),
|
|
65
|
+
[Schema.Record(Schema.String, Schema.Any)],
|
|
66
|
+
),
|
|
67
|
+
).annotate({ description: "Variant-specific configuration" }),
|
|
68
|
+
),
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
export const Info = Schema.Struct({
|
|
72
|
+
api: Schema.optional(Schema.String),
|
|
73
|
+
name: Schema.optional(Schema.String),
|
|
74
|
+
env: Schema.optional(Schema.mutable(Schema.Array(Schema.String))),
|
|
75
|
+
id: Schema.optional(Schema.String),
|
|
76
|
+
npm: Schema.optional(Schema.String),
|
|
77
|
+
whitelist: Schema.optional(Schema.mutable(Schema.Array(Schema.String))),
|
|
78
|
+
blacklist: Schema.optional(Schema.mutable(Schema.Array(Schema.String))),
|
|
79
|
+
options: Schema.optional(
|
|
80
|
+
Schema.StructWithRest(
|
|
81
|
+
Schema.Struct({
|
|
82
|
+
apiKey: Schema.optional(Schema.String),
|
|
83
|
+
baseURL: Schema.optional(Schema.String),
|
|
84
|
+
enterpriseUrl: Schema.optional(Schema.String).annotate({
|
|
85
|
+
description: "GitHub Enterprise URL for copilot authentication",
|
|
86
|
+
}),
|
|
87
|
+
setCacheKey: Schema.optional(Schema.Boolean).annotate({
|
|
88
|
+
description: "Enable promptCacheKey for this provider (default false)",
|
|
89
|
+
}),
|
|
90
|
+
timeout: Schema.optional(
|
|
91
|
+
Schema.Union([PositiveInt, Schema.Literal(false)]).annotate({
|
|
92
|
+
description:
|
|
93
|
+
"Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.",
|
|
94
|
+
}),
|
|
95
|
+
).annotate({
|
|
96
|
+
description:
|
|
97
|
+
"Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.",
|
|
98
|
+
}),
|
|
99
|
+
chunkTimeout: Schema.optional(PositiveInt).annotate({
|
|
100
|
+
description:
|
|
101
|
+
"Timeout in milliseconds between streamed SSE chunks for this provider. If no chunk arrives within this window, the request is aborted.",
|
|
102
|
+
}),
|
|
103
|
+
}),
|
|
104
|
+
[Schema.Record(Schema.String, Schema.Any)],
|
|
105
|
+
),
|
|
106
|
+
),
|
|
107
|
+
models: Schema.optional(Schema.Record(Schema.String, Model)),
|
|
108
|
+
}).annotate({ identifier: "ProviderConfig" })
|
|
109
|
+
export type Info = Schema.Schema.Type<typeof Info>
|
|
110
|
+
|
|
111
|
+
export * as ConfigProvider from "./provider"
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
export * as ConfigReference from "./reference"
|
|
2
|
-
|
|
3
|
-
import { Schema } from "effect"
|
|
4
|
-
|
|
5
|
-
const Git = Schema.Struct({
|
|
6
|
-
repository: Schema.String.annotate({
|
|
7
|
-
description: "Git repository URL, host/path reference, or GitHub owner/repo shorthand",
|
|
8
|
-
}),
|
|
9
|
-
branch: Schema.optional(Schema.String).annotate({
|
|
10
|
-
description: "Branch or ref Scout should clone and inspect",
|
|
11
|
-
}),
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
const Local = Schema.Struct({
|
|
15
|
-
path: Schema.String.annotate({
|
|
16
|
-
description: "Absolute path, ~/ path, or workspace-relative path to a local reference directory",
|
|
17
|
-
}),
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
export const Entry = Schema.Union([Schema.String, Git, Local]).annotate({ identifier: "ReferenceConfigEntry" })
|
|
21
|
-
|
|
22
|
-
export const Info = Schema.Record(Schema.String, Entry).annotate({ identifier: "ReferenceConfig" })
|
|
23
|
-
export type Info = Schema.Schema.Type<typeof Info>
|
|
1
|
+
export * as ConfigReference from "./reference"
|
|
2
|
+
|
|
3
|
+
import { Schema } from "effect"
|
|
4
|
+
|
|
5
|
+
const Git = Schema.Struct({
|
|
6
|
+
repository: Schema.String.annotate({
|
|
7
|
+
description: "Git repository URL, host/path reference, or GitHub owner/repo shorthand",
|
|
8
|
+
}),
|
|
9
|
+
branch: Schema.optional(Schema.String).annotate({
|
|
10
|
+
description: "Branch or ref Scout should clone and inspect",
|
|
11
|
+
}),
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
const Local = Schema.Struct({
|
|
15
|
+
path: Schema.String.annotate({
|
|
16
|
+
description: "Absolute path, ~/ path, or workspace-relative path to a local reference directory",
|
|
17
|
+
}),
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
export const Entry = Schema.Union([Schema.String, Git, Local]).annotate({ identifier: "ReferenceConfigEntry" })
|
|
21
|
+
|
|
22
|
+
export const Info = Schema.Record(Schema.String, Entry).annotate({ identifier: "ReferenceConfig" })
|
|
23
|
+
export type Info = Schema.Schema.Type<typeof Info>
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { Schema } from "effect"
|
|
2
|
-
import { PositiveInt } from "@opencode-ai/core/schema"
|
|
3
|
-
|
|
4
|
-
export const Server = Schema.Struct({
|
|
5
|
-
port: Schema.optional(PositiveInt).annotate({
|
|
6
|
-
description: "Port to listen on",
|
|
7
|
-
}),
|
|
8
|
-
hostname: Schema.optional(Schema.String).annotate({ description: "Hostname to listen on" }),
|
|
9
|
-
mdns: Schema.optional(Schema.Boolean).annotate({ description: "Enable mDNS service discovery" }),
|
|
10
|
-
mdnsDomain: Schema.optional(Schema.String).annotate({
|
|
11
|
-
description: "Custom domain name for mDNS service (default: opencode.local)",
|
|
12
|
-
}),
|
|
13
|
-
cors: Schema.optional(Schema.mutable(Schema.Array(Schema.String))).annotate({
|
|
14
|
-
description: "Additional domains to allow for CORS",
|
|
15
|
-
}),
|
|
16
|
-
}).annotate({ identifier: "ServerConfig" })
|
|
17
|
-
export type Server = Schema.Schema.Type<typeof Server>
|
|
18
|
-
|
|
19
|
-
export * as ConfigServer from "./server"
|
|
1
|
+
import { Schema } from "effect"
|
|
2
|
+
import { PositiveInt } from "@opencode-ai/core/schema"
|
|
3
|
+
|
|
4
|
+
export const Server = Schema.Struct({
|
|
5
|
+
port: Schema.optional(PositiveInt).annotate({
|
|
6
|
+
description: "Port to listen on",
|
|
7
|
+
}),
|
|
8
|
+
hostname: Schema.optional(Schema.String).annotate({ description: "Hostname to listen on" }),
|
|
9
|
+
mdns: Schema.optional(Schema.Boolean).annotate({ description: "Enable mDNS service discovery" }),
|
|
10
|
+
mdnsDomain: Schema.optional(Schema.String).annotate({
|
|
11
|
+
description: "Custom domain name for mDNS service (default: opencode.local)",
|
|
12
|
+
}),
|
|
13
|
+
cors: Schema.optional(Schema.mutable(Schema.Array(Schema.String))).annotate({
|
|
14
|
+
description: "Additional domains to allow for CORS",
|
|
15
|
+
}),
|
|
16
|
+
}).annotate({ identifier: "ServerConfig" })
|
|
17
|
+
export type Server = Schema.Schema.Type<typeof Server>
|
|
18
|
+
|
|
19
|
+
export * as ConfigServer from "./server"
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Schema } from "effect"
|
|
2
|
-
|
|
3
|
-
export const Info = Schema.Struct({
|
|
4
|
-
paths: Schema.optional(Schema.Array(Schema.String)).annotate({
|
|
5
|
-
description: "Additional paths to skill folders",
|
|
6
|
-
}),
|
|
7
|
-
urls: Schema.optional(Schema.Array(Schema.String)).annotate({
|
|
8
|
-
description: "URLs to fetch skills from (e.g., https://example.com/.well-known/skills/)",
|
|
9
|
-
}),
|
|
10
|
-
})
|
|
11
|
-
|
|
12
|
-
export type Info = Schema.Schema.Type<typeof Info>
|
|
13
|
-
|
|
14
|
-
export * as ConfigSkills from "./skills"
|
|
1
|
+
import { Schema } from "effect"
|
|
2
|
+
|
|
3
|
+
export const Info = Schema.Struct({
|
|
4
|
+
paths: Schema.optional(Schema.Array(Schema.String)).annotate({
|
|
5
|
+
description: "Additional paths to skill folders",
|
|
6
|
+
}),
|
|
7
|
+
urls: Schema.optional(Schema.Array(Schema.String)).annotate({
|
|
8
|
+
description: "URLs to fetch skills from (e.g., https://example.com/.well-known/skills/)",
|
|
9
|
+
}),
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
export type Info = Schema.Schema.Type<typeof Info>
|
|
13
|
+
|
|
14
|
+
export * as ConfigSkills from "./skills"
|