@turmind/halo 0.1.9
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 +143 -0
- package/admin-out/404.html +1 -0
- package/admin-out/_next/static/IBP_mwBDf-cPwZSZZGpi8/_buildManifest.js +1 -0
- package/admin-out/_next/static/IBP_mwBDf-cPwZSZZGpi8/_ssgManifest.js +1 -0
- package/admin-out/_next/static/chunks/1d2d5650-810a3ca1ae20cab5.js +18 -0
- package/admin-out/_next/static/chunks/200.3b8f8a74f005a134.js +1 -0
- package/admin-out/_next/static/chunks/220.3dc41cd6269b88e6.js +1 -0
- package/admin-out/_next/static/chunks/298-d6b224b569da4de0.js +1 -0
- package/admin-out/_next/static/chunks/304eda7d.b1ee7f523653e027.js +1 -0
- package/admin-out/_next/static/chunks/330.3b784cf0dcd69163.js +1 -0
- package/admin-out/_next/static/chunks/442.f4302087bddb1ec1.js +1 -0
- package/admin-out/_next/static/chunks/443.d1b289781793f8de.js +25 -0
- package/admin-out/_next/static/chunks/503-7c6d9935df6e0cea.js +1 -0
- package/admin-out/_next/static/chunks/533.5f2d4bfe3d076095.js +1 -0
- package/admin-out/_next/static/chunks/579.a2718ddd395a2f3a.js +1 -0
- package/admin-out/_next/static/chunks/635-3dd0043ed0520b9d.js +1 -0
- package/admin-out/_next/static/chunks/65.859665ba6717967a.js +1 -0
- package/admin-out/_next/static/chunks/661.a4fe93f3f2a5e871.js +1 -0
- package/admin-out/_next/static/chunks/688.4e014ac6cfc7e152.js +1 -0
- package/admin-out/_next/static/chunks/868.0c95dfe283400a00.js +1 -0
- package/admin-out/_next/static/chunks/app/_not-found/page-8e35399c8fd5016d.js +1 -0
- package/admin-out/_next/static/chunks/app/layout-58f773336e6fce61.js +1 -0
- package/admin-out/_next/static/chunks/app/page-cc8043335282d745.js +1 -0
- package/admin-out/_next/static/chunks/db534642.09d3c650ff587175.js +1 -0
- package/admin-out/_next/static/chunks/fb4ec4d6-3fa44f69484f91b9.js +1 -0
- package/admin-out/_next/static/chunks/framework-c3031ae54a63fe16.js +1 -0
- package/admin-out/_next/static/chunks/main-14b48e3c2588354f.js +1 -0
- package/admin-out/_next/static/chunks/main-app-483b436873410ddc.js +1 -0
- package/admin-out/_next/static/chunks/pages/_app-b2fc6e5f920d1b1a.js +1 -0
- package/admin-out/_next/static/chunks/pages/_error-f3696a8f3d67d150.js +1 -0
- package/admin-out/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/admin-out/_next/static/chunks/webpack-8bd7ef88a6527feb.js +1 -0
- package/admin-out/_next/static/css/659eccb5db697b76.css +1 -0
- package/admin-out/_next/static/css/8fce4e1a54dac12a.css +3 -0
- package/admin-out/_next/static/media/19cfc7226ec3afaa-s.woff2 +0 -0
- package/admin-out/_next/static/media/21350d82a1f187e9-s.woff2 +0 -0
- package/admin-out/_next/static/media/8e9860b6e62d6359-s.woff2 +0 -0
- package/admin-out/_next/static/media/ba9851c3c22cd980-s.woff2 +0 -0
- package/admin-out/_next/static/media/c5fe6dc8356a8c31-s.woff2 +0 -0
- package/admin-out/_next/static/media/df0a9ae256c0569c-s.woff2 +0 -0
- package/admin-out/_next/static/media/e4af272ccee01ff0-s.p.woff2 +0 -0
- package/admin-out/favicon.ico +0 -0
- package/admin-out/icon.svg +18 -0
- package/admin-out/index.html +1 -0
- package/admin-out/index.txt +23 -0
- package/admin-out/monaco/vs/_commonjsHelpers-CT9FvmAN.js +1 -0
- package/admin-out/monaco/vs/abap-D-t0cyap.js +1 -0
- package/admin-out/monaco/vs/apex-CcIm7xu6.js +1 -0
- package/admin-out/monaco/vs/assets/css.worker-HnVq6Ewq.js +93 -0
- package/admin-out/monaco/vs/assets/editor.worker-Be8ye1pW.js +26 -0
- package/admin-out/monaco/vs/assets/html.worker-B51mlPHg.js +470 -0
- package/admin-out/monaco/vs/assets/json.worker-DKiEKt88.js +58 -0
- package/admin-out/monaco/vs/assets/ts.worker-CMbG-7ft.js +67731 -0
- package/admin-out/monaco/vs/azcli-BA0tQDCg.js +1 -0
- package/admin-out/monaco/vs/basic-languages/monaco.contribution.js +1 -0
- package/admin-out/monaco/vs/bat-C397hTD6.js +1 -0
- package/admin-out/monaco/vs/bicep-DF5aW17k.js +2 -0
- package/admin-out/monaco/vs/cameligo-plsz8qhj.js +1 -0
- package/admin-out/monaco/vs/clojure-Y2auQMzK.js +1 -0
- package/admin-out/monaco/vs/coffee-Bu45yuWE.js +1 -0
- package/admin-out/monaco/vs/cpp-CkKPQIni.js +1 -0
- package/admin-out/monaco/vs/csharp-CX28MZyh.js +1 -0
- package/admin-out/monaco/vs/csp-D8uWnyxW.js +1 -0
- package/admin-out/monaco/vs/css-CaeNmE3S.js +3 -0
- package/admin-out/monaco/vs/cssMode-CjiAH6dQ.js +1 -0
- package/admin-out/monaco/vs/cypher-DVThT8BS.js +1 -0
- package/admin-out/monaco/vs/dart-CmGfCvrO.js +1 -0
- package/admin-out/monaco/vs/dockerfile-CZqqYdch.js +1 -0
- package/admin-out/monaco/vs/ecl-30fUercY.js +1 -0
- package/admin-out/monaco/vs/editor/editor.main.css +1 -0
- package/admin-out/monaco/vs/editor/editor.main.js +5 -0
- package/admin-out/monaco/vs/editor.api-CalNCsUg.js +903 -0
- package/admin-out/monaco/vs/elixir-xjPaIfzF.js +1 -0
- package/admin-out/monaco/vs/flow9-DqtmStfK.js +1 -0
- package/admin-out/monaco/vs/freemarker2-Cz_sV6Md.js +3 -0
- package/admin-out/monaco/vs/fsharp-BOMdg4U1.js +1 -0
- package/admin-out/monaco/vs/go-D_hbi-Jt.js +1 -0
- package/admin-out/monaco/vs/graphql-CKUU4kLG.js +1 -0
- package/admin-out/monaco/vs/handlebars-OwglfO-1.js +1 -0
- package/admin-out/monaco/vs/hcl-DTaboeZW.js +1 -0
- package/admin-out/monaco/vs/html-Pa1xEWsY.js +1 -0
- package/admin-out/monaco/vs/htmlMode-Bz67EXwp.js +1 -0
- package/admin-out/monaco/vs/ini-CsNwO04R.js +1 -0
- package/admin-out/monaco/vs/java-CI4ZMsH9.js +1 -0
- package/admin-out/monaco/vs/javascript-PczUCGdz.js +1 -0
- package/admin-out/monaco/vs/jsonMode-DULH5oaX.js +7 -0
- package/admin-out/monaco/vs/julia-BwzEvaQw.js +1 -0
- package/admin-out/monaco/vs/kotlin-IUYPiTV8.js +1 -0
- package/admin-out/monaco/vs/language/css/monaco.contribution.js +1 -0
- package/admin-out/monaco/vs/language/html/monaco.contribution.js +1 -0
- package/admin-out/monaco/vs/language/json/monaco.contribution.js +1 -0
- package/admin-out/monaco/vs/language/typescript/monaco.contribution.js +1 -0
- package/admin-out/monaco/vs/less-C0eDYdqa.js +2 -0
- package/admin-out/monaco/vs/lexon-iON-Kj97.js +1 -0
- package/admin-out/monaco/vs/liquid-DqKjdPGy.js +1 -0
- package/admin-out/monaco/vs/loader.js +1368 -0
- package/admin-out/monaco/vs/lspLanguageFeatures-kM9O9rjY.js +4 -0
- package/admin-out/monaco/vs/lua-DtygF91M.js +1 -0
- package/admin-out/monaco/vs/m3-CsR4AuFi.js +1 -0
- package/admin-out/monaco/vs/markdown-C_rD0bIw.js +1 -0
- package/admin-out/monaco/vs/mdx-DEWtB1K5.js +1 -0
- package/admin-out/monaco/vs/mips-CiYP61RB.js +1 -0
- package/admin-out/monaco/vs/monaco.contribution-D2OdxNBt.js +1 -0
- package/admin-out/monaco/vs/monaco.contribution-DO3azKX8.js +1 -0
- package/admin-out/monaco/vs/monaco.contribution-EcChJV6a.js +1 -0
- package/admin-out/monaco/vs/monaco.contribution-qLAYrEOP.js +1 -0
- package/admin-out/monaco/vs/msdax-C38-sJlp.js +1 -0
- package/admin-out/monaco/vs/mysql-CdtbpvbG.js +1 -0
- package/admin-out/monaco/vs/nls.messages-loader.js +1 -0
- package/admin-out/monaco/vs/nls.messages.cs.js.js +17 -0
- package/admin-out/monaco/vs/nls.messages.de.js.js +17 -0
- package/admin-out/monaco/vs/nls.messages.es.js.js +17 -0
- package/admin-out/monaco/vs/nls.messages.fr.js.js +15 -0
- package/admin-out/monaco/vs/nls.messages.it.js.js +15 -0
- package/admin-out/monaco/vs/nls.messages.ja.js.js +17 -0
- package/admin-out/monaco/vs/nls.messages.js.js +10 -0
- package/admin-out/monaco/vs/nls.messages.ko.js.js +25 -0
- package/admin-out/monaco/vs/nls.messages.pl.js.js +17 -0
- package/admin-out/monaco/vs/nls.messages.pt-br.js.js +6 -0
- package/admin-out/monaco/vs/nls.messages.ru.js.js +17 -0
- package/admin-out/monaco/vs/nls.messages.tr.js.js +15 -0
- package/admin-out/monaco/vs/nls.messages.zh-cn.js.js +17 -0
- package/admin-out/monaco/vs/nls.messages.zh-tw.js.js +15 -0
- package/admin-out/monaco/vs/objective-c-CntZFaHX.js +1 -0
- package/admin-out/monaco/vs/pascal-r6kuqfl_.js +1 -0
- package/admin-out/monaco/vs/pascaligo-BiXoTmXh.js +1 -0
- package/admin-out/monaco/vs/perl-DABw_TcH.js +1 -0
- package/admin-out/monaco/vs/pgsql-me_jFXeX.js +1 -0
- package/admin-out/monaco/vs/php-D_kh-9LK.js +1 -0
- package/admin-out/monaco/vs/pla-VfZjczW0.js +1 -0
- package/admin-out/monaco/vs/postiats-BBSzz8Pk.js +1 -0
- package/admin-out/monaco/vs/powerquery-Dt-g_2cc.js +1 -0
- package/admin-out/monaco/vs/powershell-B-7ap1zc.js +1 -0
- package/admin-out/monaco/vs/protobuf-BmtuEB1A.js +2 -0
- package/admin-out/monaco/vs/pug-BRpRNeEb.js +1 -0
- package/admin-out/monaco/vs/python-Cr0UkIbn.js +1 -0
- package/admin-out/monaco/vs/qsharp-BzsFaUU9.js +1 -0
- package/admin-out/monaco/vs/r-f8dDdrp4.js +1 -0
- package/admin-out/monaco/vs/razor-BYAHOTkz.js +1 -0
- package/admin-out/monaco/vs/redis-fvZQY4PI.js +1 -0
- package/admin-out/monaco/vs/redshift-45Et0LQi.js +1 -0
- package/admin-out/monaco/vs/restructuredtext-C7UUFKFD.js +1 -0
- package/admin-out/monaco/vs/ruby-CZO8zYTz.js +1 -0
- package/admin-out/monaco/vs/rust-Bfetafyc.js +1 -0
- package/admin-out/monaco/vs/sb-3GYllVck.js +1 -0
- package/admin-out/monaco/vs/scala-foMgrKo1.js +1 -0
- package/admin-out/monaco/vs/scheme-CHdMtr7p.js +1 -0
- package/admin-out/monaco/vs/scss-C1cmLt9V.js +3 -0
- package/admin-out/monaco/vs/shell-ClXCKCEW.js +1 -0
- package/admin-out/monaco/vs/solidity-MZ6ExpPy.js +1 -0
- package/admin-out/monaco/vs/sophia-DWkuSsPQ.js +1 -0
- package/admin-out/monaco/vs/sparql-AUGFYSyk.js +1 -0
- package/admin-out/monaco/vs/sql-32GpJSV2.js +1 -0
- package/admin-out/monaco/vs/st-CuDFIVZ_.js +1 -0
- package/admin-out/monaco/vs/swift-n-2HociN.js +3 -0
- package/admin-out/monaco/vs/systemverilog-Ch4vA8Yt.js +1 -0
- package/admin-out/monaco/vs/tcl-D74tq1nH.js +1 -0
- package/admin-out/monaco/vs/tsMode-CZz1Umrk.js +11 -0
- package/admin-out/monaco/vs/twig-C6taOxMV.js +1 -0
- package/admin-out/monaco/vs/typescript-DfOrAzoV.js +1 -0
- package/admin-out/monaco/vs/typespec-D-PIh9Xw.js +1 -0
- package/admin-out/monaco/vs/vb-Dyb2648j.js +1 -0
- package/admin-out/monaco/vs/wgsl-BhLXMOR0.js +298 -0
- package/admin-out/monaco/vs/workers-DcJshg-q.js +1 -0
- package/admin-out/monaco/vs/xml-CdsdnY8S.js +1 -0
- package/admin-out/monaco/vs/yaml-DYGvmE88.js +1 -0
- package/bin/halo.js +9 -0
- package/bundled-docs/design/agent.md +145 -0
- package/bundled-docs/design/architecture.md +270 -0
- package/bundled-docs/design/background-dispatch.md +151 -0
- package/bundled-docs/design/command.md +58 -0
- package/bundled-docs/design/cron.md +88 -0
- package/bundled-docs/design/evolution.md +383 -0
- package/bundled-docs/design/express-self.md +145 -0
- package/bundled-docs/design/feishu.md +224 -0
- package/bundled-docs/design/halo-city.md +112 -0
- package/bundled-docs/design/prompt-system.md +411 -0
- package/bundled-docs/design/session.md +321 -0
- package/bundled-docs/design/slack.md +212 -0
- package/bundled-docs/design/storage.md +578 -0
- package/bundled-docs/design/telegram.md +161 -0
- package/bundled-docs/design/web.md +222 -0
- package/bundled-docs/design/wechat.md +146 -0
- package/bundled-docs/design/ws.md +144 -0
- package/bundled-docs/dev/acp-adapter.md +337 -0
- package/bundled-docs/dev/add-channel.md +376 -0
- package/bundled-docs/dev/add-model-provider.md +386 -0
- package/bundled-docs/dev/api.md +686 -0
- package/bundled-docs/dev/deploy.md +198 -0
- package/bundled-docs/dev/desktop-packaging.md +327 -0
- package/bundled-docs/dev/env.md +158 -0
- package/bundled-docs/dev/logging.md +85 -0
- package/bundled-docs/dev/previews.md +225 -0
- package/bundled-docs/dev/tools.md +331 -0
- package/bundled-docs/guide/README.md +29 -0
- package/bundled-docs/guide/agents.md +264 -0
- package/bundled-docs/guide/channels/README.md +62 -0
- package/bundled-docs/guide/channels/acp.md +150 -0
- package/bundled-docs/guide/channels/feishu.md +154 -0
- package/bundled-docs/guide/channels/slack.md +156 -0
- package/bundled-docs/guide/channels/telegram.md +112 -0
- package/bundled-docs/guide/channels/web.md +149 -0
- package/bundled-docs/guide/channels/wechat.md +110 -0
- package/bundled-docs/guide/chat.md +112 -0
- package/bundled-docs/guide/cli.md +197 -0
- package/bundled-docs/guide/getting-started.md +93 -0
- package/bundled-docs/guide/secrets-and-credentials.md +161 -0
- package/bundled-docs/guide/sessions.md +104 -0
- package/bundled-docs/guide/skills.md +302 -0
- package/bundled-docs/guide/testing-agents-and-skills.md +136 -0
- package/bundled-docs/guide/workspace.md +131 -0
- package/bundled-docs/plans/cron-tasks.md +362 -0
- package/bundled-docs/plans/design-suggestions.md +203 -0
- package/bundled-docs/plans/issue-session-deep-nesting.md +208 -0
- package/bundled-docs/plans/launch-plan.md +111 -0
- package/bundled-docs/plans/md-and-agent-refactor.md +197 -0
- package/bundled-docs/plans/remote-mac-worker.md +196 -0
- package/bundled-docs/plans/roadmap.md +40 -0
- package/bundled-docs/plans/self-evolution.md +1379 -0
- package/bundled-docs/plans/todo.md +32 -0
- package/bundled-docs/plans/weixin-channel.md +255 -0
- package/bundled-docs/requirements/agent.md +92 -0
- package/bundled-docs/requirements/chat.md +81 -0
- package/bundled-docs/requirements/command.md +130 -0
- package/bundled-docs/requirements/editor.md +82 -0
- package/bundled-docs/requirements/explorer.md +89 -0
- package/bundled-docs/requirements/overview.md +62 -0
- package/bundled-docs/requirements/session.md +73 -0
- package/bundled-docs/requirements/settings.md +224 -0
- package/bundled-docs/requirements/skill.md +125 -0
- package/bundled-docs/requirements/source-control.md +82 -0
- package/bundled-docs/requirements/terminal.md +118 -0
- package/bundled-docs/requirements/workspace.md +80 -0
- package/bundled-docs/test/docs-seeding.md +101 -0
- package/bundled-docs/test/session.md +374 -0
- package/dist/index.js +26750 -0
- package/package.json +67 -0
- package/templates/INSTRUCTIONS.md +25 -0
- package/templates/agents/__apply_agent__/AGENT.md +229 -0
- package/templates/agents/__apply_agent__/agent.yaml +30 -0
- package/templates/agents/__evo_agent__/AGENT.md +323 -0
- package/templates/agents/__evo_agent__/agent.yaml +29 -0
- package/templates/agents/__score__/AGENT.md +177 -0
- package/templates/agents/__score__/agent.yaml +29 -0
- package/templates/agents/deep-executor/AGENT.md +60 -0
- package/templates/agents/deep-executor/agent.yaml +25 -0
- package/templates/agents/default/AGENT.md +38 -0
- package/templates/agents/default/agent.yaml +51 -0
- package/templates/agents/executor/AGENT.md +38 -0
- package/templates/agents/executor/agent.yaml +25 -0
- package/templates/aliases.yaml +26 -0
- package/templates/canvas/self.html +660 -0
- package/templates/config.yaml +69 -0
- package/templates/models/anthropic.yaml +47 -0
- package/templates/models/aws-bedrock-claude-invoke.yaml +156 -0
- package/templates/models/aws-bedrock-mantle.yaml +89 -0
- package/templates/models/deepseek.yaml +62 -0
- package/templates/models/doubao.yaml +137 -0
- package/templates/models/hunyuan.yaml +56 -0
- package/templates/models/kimi.yaml +41 -0
- package/templates/models/mimo-token-plan-china.yaml +61 -0
- package/templates/models/minimax.yaml +80 -0
- package/templates/models/openai.yaml +51 -0
- package/templates/models/qwen.yaml +78 -0
- package/templates/optional-skills/tavily-web-search/SKILL.md +91 -0
- package/templates/optional-skills/tavily-web-search/config.yaml +10 -0
- package/templates/prompts/all/TOOL_GUIDELINES.md +35 -0
- package/templates/prompts/all/TOOL_SHELL.md +4 -0
- package/templates/prompts/all/TOOL_SHELL.windows.md +7 -0
- package/templates/prompts/bootstrap/BOOTSTRAP.md +26 -0
- package/templates/prompts/root/WORKSPACE_MEMORY.md +11 -0
- package/templates/schema.sql +30 -0
- package/templates/skills/acp/SKILL.md +236 -0
- package/templates/skills/acp/templates/SKILL.md.tmpl +74 -0
- package/templates/skills/acp/templates/ask.py +176 -0
- package/templates/skills/acp/templates/config.yaml.tmpl +33 -0
- package/templates/skills/agent/SKILL.md +128 -0
- package/templates/skills/aws-knowledge/SKILL.md +82 -0
- package/templates/skills/aws-knowledge/scripts/aws_kb.py +61 -0
- package/templates/skills/cron/SKILL.md +217 -0
- package/templates/skills/cron/manage-cron.py +434 -0
- package/templates/skills/halo/SKILL.md +98 -0
- package/templates/skills/nova-web-search/SKILL.md +65 -0
- package/templates/skills/self/SKILL.md +139 -0
- package/templates/skills/send-file/SKILL.md +28 -0
- package/templates/skills/send-file/feishu.md +16 -0
- package/templates/skills/send-file/slack.md +7 -0
- package/templates/skills/send-file/telegram.md +9 -0
- package/templates/skills/send-file/web.md +6 -0
- package/templates/skills/send-file/wechat.md +8 -0
- package/templates/skills/skill/SKILL.md +131 -0
- package/templates/skills/workspace/SKILL.md +28 -0
- package/templates/skills/workspace/setup-tidy.md +265 -0
- package/templates/skills/workspace/share.md +187 -0
- package/templates/skills/workspace/stage.py +487 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Halo System Configuration
|
|
2
|
+
# Self-documenting: each leaf is { value, default, description, description_zh }.
|
|
3
|
+
#
|
|
4
|
+
# Env var overrides (highest priority):
|
|
5
|
+
# server.port → HALO_PORT
|
|
6
|
+
# server.password → HALO_PASSWORD
|
|
7
|
+
# server.cors_origins → HALO_CORS_ORIGINS (comma-separated)
|
|
8
|
+
# timeout.shell_exec → HALO_SHELL_TIMEOUT
|
|
9
|
+
# timeout.web_fetch → HALO_WEB_FETCH_TIMEOUT
|
|
10
|
+
# timeout.session_grace → HALO_SESSION_GRACE
|
|
11
|
+
# timeout.terminal_grace → HALO_TERMINAL_GRACE
|
|
12
|
+
# logging.max_file_size → HALO_LOG_MAX_SIZE
|
|
13
|
+
# logging.max_files → HALO_LOG_MAX_FILES
|
|
14
|
+
|
|
15
|
+
server:
|
|
16
|
+
port:
|
|
17
|
+
value: 9527
|
|
18
|
+
default: 9527
|
|
19
|
+
description: "HTTP/WS port the server listens on."
|
|
20
|
+
description_zh: "服务监听的 HTTP/WS 端口。"
|
|
21
|
+
password:
|
|
22
|
+
value: ""
|
|
23
|
+
default: ""
|
|
24
|
+
description: "Admin password — stored as a scrypt hash, set via `halo setup`. To reset a forgotten password, blank this field and re-run `halo setup`."
|
|
25
|
+
description_zh: "管理员密码(scrypt hash),通过 `halo setup` 设置。忘记密码时清空此字段并重新运行 `halo setup`。"
|
|
26
|
+
jwt_secret:
|
|
27
|
+
value: ""
|
|
28
|
+
default: ""
|
|
29
|
+
description: "Signing key for session JWTs. Auto-generated by `halo setup`; rotated on password change so old cookies are invalidated."
|
|
30
|
+
description_zh: "Session JWT 签名密钥。由 `halo setup` 自动生成,密码更改时一同轮换以使旧 cookie 失效。"
|
|
31
|
+
cors_origins:
|
|
32
|
+
value: []
|
|
33
|
+
default: []
|
|
34
|
+
description: "CORS allowlist. Empty = reflect any origin (recommended for self-hosted single-user setups). Set a non-empty list of explicit origins to enforce strict CORS."
|
|
35
|
+
description_zh: "CORS 白名单。空 = 反射任意来源(自部署单用户场景推荐)。填入显式来源列表则启用严格 CORS。"
|
|
36
|
+
|
|
37
|
+
timeout:
|
|
38
|
+
shell_exec:
|
|
39
|
+
value: 120000
|
|
40
|
+
default: 120000
|
|
41
|
+
description: "shell_exec tool timeout (ms)."
|
|
42
|
+
description_zh: "shell_exec 工具的超时(毫秒)。"
|
|
43
|
+
web_fetch:
|
|
44
|
+
value: 10000
|
|
45
|
+
default: 10000
|
|
46
|
+
description: "web_fetch tool timeout (ms)."
|
|
47
|
+
description_zh: "web_fetch 工具的超时(毫秒)。"
|
|
48
|
+
session_grace:
|
|
49
|
+
value: 300000
|
|
50
|
+
default: 300000
|
|
51
|
+
description: "Idle session grace period before unloading from memory (ms)."
|
|
52
|
+
description_zh: "空闲会话保留在内存中的时长(毫秒)。"
|
|
53
|
+
terminal_grace:
|
|
54
|
+
value: 300000
|
|
55
|
+
default: 300000
|
|
56
|
+
description: "Terminal grace period after disconnect before killing the pty (ms)."
|
|
57
|
+
description_zh: "终端断连后保留 pty 的时长(毫秒)。"
|
|
58
|
+
|
|
59
|
+
logging:
|
|
60
|
+
max_file_size:
|
|
61
|
+
value: 10485760
|
|
62
|
+
default: 10485760
|
|
63
|
+
description: "Per-log-file size cap before rotation (bytes)."
|
|
64
|
+
description_zh: "单个日志文件的大小上限(字节)。"
|
|
65
|
+
max_files:
|
|
66
|
+
value: 5
|
|
67
|
+
default: 5
|
|
68
|
+
description: "Number of rotated log files to keep."
|
|
69
|
+
description_zh: "保留的日志文件数量。"
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
id: anthropic
|
|
2
|
+
displayName: Anthropic (Generic)
|
|
3
|
+
displayName_zh: Anthropic(通用)
|
|
4
|
+
description: Generic Anthropic Messages API. Use for api.anthropic.com or any Anthropic-compatible third-party gateway.
|
|
5
|
+
description_zh: 通用 Anthropic Messages API。可用于 api.anthropic.com 原生端点或任何 Anthropic 兼容的第三方网关。
|
|
6
|
+
defaultEndpoint: https://api.anthropic.com
|
|
7
|
+
defaultModelId: claude-sonnet-4-6
|
|
8
|
+
endpointPresets:
|
|
9
|
+
- https://api.anthropic.com
|
|
10
|
+
|
|
11
|
+
secrets:
|
|
12
|
+
- key: api_key
|
|
13
|
+
description: Anthropic API Key. Format starts with sk-ant-.
|
|
14
|
+
description_zh: Anthropic API Key,sk-ant- 开头
|
|
15
|
+
default: <<ANTHROPIC_API_KEY>>
|
|
16
|
+
secret: true
|
|
17
|
+
|
|
18
|
+
# Placeholder model — the user is expected to set the actual model id
|
|
19
|
+
# (claude-sonnet-4-6, claude-opus-4-7, etc.) and the matching endpoint.
|
|
20
|
+
# capabilities are deliberately permissive; flip what your real endpoint
|
|
21
|
+
# doesn't support.
|
|
22
|
+
#
|
|
23
|
+
# Custom model ids (anything not listed under `models:`) are treated as
|
|
24
|
+
# fully-permissive in the admin form — image/video/audio toggles,
|
|
25
|
+
# caching TTL, thinking effort/budget all become editable.
|
|
26
|
+
models:
|
|
27
|
+
- id: claude-sonnet-4-6
|
|
28
|
+
displayName: Claude Sonnet 4.6 (placeholder)
|
|
29
|
+
maxOutputTokens: 64000
|
|
30
|
+
capabilities:
|
|
31
|
+
image: true
|
|
32
|
+
video: false
|
|
33
|
+
audio: false
|
|
34
|
+
promptCaching:
|
|
35
|
+
default: 1h
|
|
36
|
+
ttlPresets:
|
|
37
|
+
- { value: 5m, label: 5min }
|
|
38
|
+
- { value: 1h, label: 1hour }
|
|
39
|
+
thinking:
|
|
40
|
+
mode: adaptive
|
|
41
|
+
defaultEnabled: true
|
|
42
|
+
default: medium
|
|
43
|
+
effortPresets:
|
|
44
|
+
- { value: low, label: Low }
|
|
45
|
+
- { value: medium, label: Medium }
|
|
46
|
+
- { value: high, label: High }
|
|
47
|
+
- { value: max, label: Max }
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
id: aws-bedrock-claude-invoke
|
|
2
|
+
displayName: AWS Bedrock Claude (Invoke API)
|
|
3
|
+
displayName_zh: AWS Bedrock Claude(Invoke API)
|
|
4
|
+
description: Invokes Bedrock via InvokeModel (non-streaming), sends raw Anthropic Messages API format
|
|
5
|
+
description_zh: 通过 Bedrock InvokeModel(非流式)调用,发送原生 Anthropic Messages API 格式
|
|
6
|
+
defaultEndpoint: https://bedrock-runtime.us-east-1.amazonaws.com
|
|
7
|
+
endpointPresets:
|
|
8
|
+
- https://bedrock-runtime.us-east-1.amazonaws.com
|
|
9
|
+
- https://bedrock-runtime.us-west-2.amazonaws.com
|
|
10
|
+
- https://bedrock-runtime.eu-west-1.amazonaws.com
|
|
11
|
+
- https://bedrock-runtime.ap-northeast-1.amazonaws.com
|
|
12
|
+
|
|
13
|
+
# When the user switches to this provider, the form lands on this model id
|
|
14
|
+
# (falls back to models[0].id if missing). Sonnet 4.6 is the daily-driver pick:
|
|
15
|
+
# Opus 4.6/4.7 cost 5–10x more, Haiku 4.5 is best for narrow agents.
|
|
16
|
+
defaultModelId: global.anthropic.claude-sonnet-4-6
|
|
17
|
+
|
|
18
|
+
# Server-side credentials. Stored at <provider-id>.secrets.<key> in
|
|
19
|
+
# settings.yaml; never injected into agent prompts or shell_exec.
|
|
20
|
+
secrets:
|
|
21
|
+
- key: access_key_id
|
|
22
|
+
description: AWS Access Key ID. Leave empty to use the AWS credential chain (env / ~/.aws / EC2 role).
|
|
23
|
+
description_zh: AWS Access Key ID。留空则使用凭证链(环境变量 / ~/.aws/credentials / EC2 角色)
|
|
24
|
+
default: <<AWS_ACCESS_KEY_ID>>
|
|
25
|
+
secret: true
|
|
26
|
+
- key: secret_access_key
|
|
27
|
+
description: AWS Secret Access Key. Leave empty to use the credential chain.
|
|
28
|
+
description_zh: AWS Secret Access Key。留空则使用凭证链
|
|
29
|
+
default: <<AWS_SECRET_ACCESS_KEY>>
|
|
30
|
+
secret: true
|
|
31
|
+
|
|
32
|
+
# capability defaults (per model):
|
|
33
|
+
# promptCaching.default → auto-on value when toggled / on provider switch
|
|
34
|
+
# thinking.defaultEnabled → start with Thinking checked for new agents
|
|
35
|
+
# thinking.default → effort selected when Thinking is on (adaptive)
|
|
36
|
+
# thinking.defaultBudgetTokens → budget selected when Thinking is on (manual)
|
|
37
|
+
models:
|
|
38
|
+
- id: global.anthropic.claude-sonnet-4-6
|
|
39
|
+
displayName: Claude Sonnet 4.6
|
|
40
|
+
maxOutputTokens: 64000
|
|
41
|
+
capabilities:
|
|
42
|
+
image: true
|
|
43
|
+
video: false
|
|
44
|
+
audio: false
|
|
45
|
+
promptCaching:
|
|
46
|
+
default: 1h
|
|
47
|
+
ttlPresets:
|
|
48
|
+
- { value: 5m, label: 5min }
|
|
49
|
+
- { value: 1h, label: 1hour }
|
|
50
|
+
thinking:
|
|
51
|
+
# adaptive = `thinking: { type: 'adaptive' }` + `output_config.effort`
|
|
52
|
+
# manual = `thinking: { type: 'enabled', budget_tokens: N }` (effort
|
|
53
|
+
# translated to a budget number at runtime)
|
|
54
|
+
# See bedrock-agent.ts for the effort→budget table used in manual mode.
|
|
55
|
+
mode: adaptive
|
|
56
|
+
defaultEnabled: true
|
|
57
|
+
default: medium
|
|
58
|
+
effortPresets:
|
|
59
|
+
- { value: low, label: Low }
|
|
60
|
+
- { value: medium, label: Medium }
|
|
61
|
+
- { value: high, label: High }
|
|
62
|
+
- { value: max, label: Max }
|
|
63
|
+
|
|
64
|
+
- id: global.anthropic.claude-opus-4-6-v1
|
|
65
|
+
displayName: Claude Opus 4.6
|
|
66
|
+
maxOutputTokens: 128000
|
|
67
|
+
capabilities:
|
|
68
|
+
image: true
|
|
69
|
+
video: false
|
|
70
|
+
audio: false
|
|
71
|
+
promptCaching:
|
|
72
|
+
default: 1h
|
|
73
|
+
ttlPresets:
|
|
74
|
+
- { value: 5m, label: 5min }
|
|
75
|
+
- { value: 1h, label: 1hour }
|
|
76
|
+
thinking:
|
|
77
|
+
mode: adaptive
|
|
78
|
+
defaultEnabled: true
|
|
79
|
+
default: medium
|
|
80
|
+
effortPresets:
|
|
81
|
+
- { value: low, label: Low }
|
|
82
|
+
- { value: medium, label: Medium }
|
|
83
|
+
- { value: high, label: High }
|
|
84
|
+
- { value: max, label: Max }
|
|
85
|
+
|
|
86
|
+
- id: global.anthropic.claude-opus-4-7
|
|
87
|
+
displayName: Claude Opus 4.7
|
|
88
|
+
maxOutputTokens: 128000
|
|
89
|
+
capabilities:
|
|
90
|
+
image: true
|
|
91
|
+
video: false
|
|
92
|
+
audio: false
|
|
93
|
+
promptCaching:
|
|
94
|
+
default: 1h
|
|
95
|
+
ttlPresets:
|
|
96
|
+
- { value: 5m, label: 5min }
|
|
97
|
+
- { value: 1h, label: 1hour }
|
|
98
|
+
thinking:
|
|
99
|
+
mode: adaptive
|
|
100
|
+
defaultEnabled: true
|
|
101
|
+
default: high # Opus 4.7 is the heavy-thinking model — high pays off
|
|
102
|
+
effortPresets:
|
|
103
|
+
- { value: low, label: Low }
|
|
104
|
+
- { value: medium, label: Medium }
|
|
105
|
+
- { value: high, label: High }
|
|
106
|
+
- { value: xhigh, label: XHigh }
|
|
107
|
+
- { value: max, label: Max }
|
|
108
|
+
|
|
109
|
+
- id: global.anthropic.claude-opus-4-8
|
|
110
|
+
displayName: Claude Opus 4.8
|
|
111
|
+
maxOutputTokens: 128000
|
|
112
|
+
capabilities:
|
|
113
|
+
image: true
|
|
114
|
+
video: false
|
|
115
|
+
audio: false
|
|
116
|
+
promptCaching:
|
|
117
|
+
default: 1h
|
|
118
|
+
ttlPresets:
|
|
119
|
+
- { value: 5m, label: 5min }
|
|
120
|
+
- { value: 1h, label: 1hour }
|
|
121
|
+
thinking:
|
|
122
|
+
# Bedrock-confirmed adaptive effort set for opus-4-8 (verified by an
|
|
123
|
+
# invalid-value probe): low / medium / high / xhigh / max.
|
|
124
|
+
mode: adaptive
|
|
125
|
+
defaultEnabled: true
|
|
126
|
+
default: high # Opus 4.8 is the latest flagship — high by default; xhigh/max on demand
|
|
127
|
+
effortPresets:
|
|
128
|
+
- { value: low, label: Low }
|
|
129
|
+
- { value: medium, label: Medium }
|
|
130
|
+
- { value: high, label: High }
|
|
131
|
+
- { value: xhigh, label: XHigh }
|
|
132
|
+
- { value: max, label: Max }
|
|
133
|
+
|
|
134
|
+
- id: global.anthropic.claude-haiku-4-5-20251001-v1:0
|
|
135
|
+
displayName: Claude Haiku 4.5
|
|
136
|
+
maxOutputTokens: 64000
|
|
137
|
+
capabilities:
|
|
138
|
+
image: true
|
|
139
|
+
video: false
|
|
140
|
+
audio: false
|
|
141
|
+
promptCaching:
|
|
142
|
+
default: 1h
|
|
143
|
+
ttlPresets:
|
|
144
|
+
- { value: 5m, label: 5min }
|
|
145
|
+
- { value: 1h, label: 1hour }
|
|
146
|
+
thinking:
|
|
147
|
+
# Haiku 4.5 only supports legacy budget_tokens; UI shows a number input.
|
|
148
|
+
# bedrock-agent.ts translates effort labels via the effort→budget table.
|
|
149
|
+
mode: manual
|
|
150
|
+
defaultEnabled: false # Haiku is the cheap-fast model — thinking off by default
|
|
151
|
+
defaultBudgetTokens: 4000
|
|
152
|
+
effortPresets:
|
|
153
|
+
- { value: low, label: Low }
|
|
154
|
+
- { value: medium, label: Medium }
|
|
155
|
+
- { value: high, label: High }
|
|
156
|
+
- { value: max, label: Max }
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
id: aws-bedrock-mantle
|
|
2
|
+
displayName: AWS Bedrock Mantle (OpenAI GPT-5.x)
|
|
3
|
+
displayName_zh: AWS Bedrock Mantle(OpenAI GPT-5.x)
|
|
4
|
+
description: OpenAI GPT-5.5 / 5.4 on Amazon Bedrock via the bedrock-mantle endpoint (OpenAI Responses API only — not Converse/InvokeModel). us-east-2 only.
|
|
5
|
+
description_zh: 通过 Bedrock Mantle 端点调用 OpenAI GPT-5.5 / 5.4(仅 OpenAI Responses API,不支持 Converse/InvokeModel)。仅 us-east-2。
|
|
6
|
+
# Mantle is a distinct endpoint from bedrock-runtime; the OpenAI surface lives
|
|
7
|
+
# under /openai/v1. GPT-5.5 is us-east-2 only (GPT-5.4 also allows us-west-2,
|
|
8
|
+
# but we ship the us-east-2 endpoint that serves both).
|
|
9
|
+
defaultEndpoint: https://bedrock-mantle.us-east-2.api.aws/openai/v1
|
|
10
|
+
endpointPresets:
|
|
11
|
+
- https://bedrock-mantle.us-east-2.api.aws/openai/v1
|
|
12
|
+
|
|
13
|
+
defaultModelId: openai.gpt-5.5
|
|
14
|
+
|
|
15
|
+
# Auth: a Bedrock long-term API key passed as a Bearer token. Generate at
|
|
16
|
+
# console → Bedrock → API keys → long-term. The default placeholder reads the
|
|
17
|
+
# AWS_BEARER_TOKEN_BEDROCK env var; leave the env unset and fill the key in
|
|
18
|
+
# Settings to store it in secrets/settings.yaml instead. resolveApiKey() reads
|
|
19
|
+
# `api_key`, so the bearer token flows straight to the agent with no extra wiring.
|
|
20
|
+
secrets:
|
|
21
|
+
- key: api_key
|
|
22
|
+
description: Bedrock long-term API key (sent as a Bearer token). Defaults to the AWS_BEARER_TOKEN_BEDROCK env var.
|
|
23
|
+
description_zh: Bedrock 长期 API Key(作为 Bearer 令牌发送)。默认读取 AWS_BEARER_TOKEN_BEDROCK 环境变量。
|
|
24
|
+
default: <<AWS_BEARER_TOKEN_BEDROCK>>
|
|
25
|
+
secret: true
|
|
26
|
+
|
|
27
|
+
# capability notes for Mantle/OpenAI:
|
|
28
|
+
# - image: input only (text/image in, text-only out — no audio/video/image gen)
|
|
29
|
+
# - promptCaching: AUTOMATIC (prefix ≥1024 tok, ~5min idle TTL). No cache_control
|
|
30
|
+
# is sent and there's no 1h option — single 5m preset reflects reality, the
|
|
31
|
+
# runtime never writes cache control, it only reads cached_tokens back.
|
|
32
|
+
# - thinking: adaptive via reasoning.effort = low|medium|high (no budget_tokens
|
|
33
|
+
# mode; xhigh/max would be mapped down to high by the runtime).
|
|
34
|
+
models:
|
|
35
|
+
- id: openai.gpt-5.5
|
|
36
|
+
displayName: GPT-5.5
|
|
37
|
+
maxOutputTokens: 64000
|
|
38
|
+
capabilities:
|
|
39
|
+
image: true
|
|
40
|
+
video: false
|
|
41
|
+
audio: false
|
|
42
|
+
promptCaching:
|
|
43
|
+
default: 5m
|
|
44
|
+
ttlPresets:
|
|
45
|
+
- { value: 5m, label: 5min }
|
|
46
|
+
thinking:
|
|
47
|
+
mode: adaptive
|
|
48
|
+
defaultEnabled: true
|
|
49
|
+
default: medium
|
|
50
|
+
effortPresets:
|
|
51
|
+
- { value: low, label: Low }
|
|
52
|
+
- { value: medium, label: Medium }
|
|
53
|
+
- { value: high, label: High }
|
|
54
|
+
# Output length of the final answer (Responses API `text.verbosity`),
|
|
55
|
+
# separate from reasoning effort. Default low = terse + cheaper, best for
|
|
56
|
+
# tool-driven agent turns. Override per-agent via agent.yaml model.verbosity.
|
|
57
|
+
verbosity:
|
|
58
|
+
default: low
|
|
59
|
+
presets:
|
|
60
|
+
- { value: low, label: Low }
|
|
61
|
+
- { value: medium, label: Medium }
|
|
62
|
+
- { value: high, label: High }
|
|
63
|
+
|
|
64
|
+
- id: openai.gpt-5.4
|
|
65
|
+
displayName: GPT-5.4
|
|
66
|
+
maxOutputTokens: 64000
|
|
67
|
+
capabilities:
|
|
68
|
+
image: true
|
|
69
|
+
video: false
|
|
70
|
+
audio: false
|
|
71
|
+
promptCaching:
|
|
72
|
+
default: 5m
|
|
73
|
+
ttlPresets:
|
|
74
|
+
- { value: 5m, label: 5min }
|
|
75
|
+
thinking:
|
|
76
|
+
mode: adaptive
|
|
77
|
+
defaultEnabled: true
|
|
78
|
+
default: medium
|
|
79
|
+
effortPresets:
|
|
80
|
+
- { value: low, label: Low }
|
|
81
|
+
- { value: medium, label: Medium }
|
|
82
|
+
- { value: high, label: High }
|
|
83
|
+
# See GPT-5.5 above — final-answer length, default low, per-agent overridable.
|
|
84
|
+
verbosity:
|
|
85
|
+
default: low
|
|
86
|
+
presets:
|
|
87
|
+
- { value: low, label: Low }
|
|
88
|
+
- { value: medium, label: Medium }
|
|
89
|
+
- { value: high, label: High }
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
id: deepseek
|
|
2
|
+
displayName: DeepSeek
|
|
3
|
+
displayName_zh: DeepSeek
|
|
4
|
+
description: DeepSeek V4 via OpenAI-compatible chat completions API
|
|
5
|
+
description_zh: DeepSeek V4,通过 OpenAI 兼容的 chat completions API 调用
|
|
6
|
+
defaultEndpoint: https://api.deepseek.com
|
|
7
|
+
|
|
8
|
+
secrets:
|
|
9
|
+
- key: api_key
|
|
10
|
+
description: DeepSeek API Key. Get from https://platform.deepseek.com/api_keys
|
|
11
|
+
description_zh: DeepSeek API Key。从 https://platform.deepseek.com/api_keys 获取
|
|
12
|
+
default: <<DEEPSEEK_API_KEY>>
|
|
13
|
+
secret: true
|
|
14
|
+
|
|
15
|
+
# Capabilities verified 2026-05-27 via live probes. DeepSeek's image_url
|
|
16
|
+
# blocks are rejected at the JSON-deserialize layer ("unknown variant
|
|
17
|
+
# image_url"), so image:false is correct. reasoning_effort accepts
|
|
18
|
+
# { low, medium, high, max, xhigh } — bogus values 400 with the full
|
|
19
|
+
# valid list in the error. Caching is automatic; cached_tokens shows up
|
|
20
|
+
# from turn 2.
|
|
21
|
+
models:
|
|
22
|
+
- id: deepseek-v4-pro
|
|
23
|
+
displayName: DeepSeek V4 Pro
|
|
24
|
+
maxOutputTokens: 65536
|
|
25
|
+
capabilities:
|
|
26
|
+
image: false
|
|
27
|
+
video: false
|
|
28
|
+
audio: false
|
|
29
|
+
promptCaching:
|
|
30
|
+
default: 5m
|
|
31
|
+
ttlPresets:
|
|
32
|
+
- { value: 5m, label: 5min }
|
|
33
|
+
thinking:
|
|
34
|
+
defaultEnabled: true
|
|
35
|
+
default: medium
|
|
36
|
+
effortPresets:
|
|
37
|
+
- { value: low, label: Low }
|
|
38
|
+
- { value: medium, label: Medium }
|
|
39
|
+
- { value: high, label: High }
|
|
40
|
+
- { value: max, label: Max }
|
|
41
|
+
- { value: xhigh, label: XHigh }
|
|
42
|
+
|
|
43
|
+
- id: deepseek-v4-flash
|
|
44
|
+
displayName: DeepSeek V4 Flash
|
|
45
|
+
maxOutputTokens: 65536
|
|
46
|
+
capabilities:
|
|
47
|
+
image: false
|
|
48
|
+
video: false
|
|
49
|
+
audio: false
|
|
50
|
+
promptCaching:
|
|
51
|
+
default: 5m
|
|
52
|
+
ttlPresets:
|
|
53
|
+
- { value: 5m, label: 5min }
|
|
54
|
+
thinking:
|
|
55
|
+
defaultEnabled: true
|
|
56
|
+
default: medium
|
|
57
|
+
effortPresets:
|
|
58
|
+
- { value: low, label: Low }
|
|
59
|
+
- { value: medium, label: Medium }
|
|
60
|
+
- { value: high, label: High }
|
|
61
|
+
- { value: max, label: Max }
|
|
62
|
+
- { value: xhigh, label: XHigh }
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
id: doubao
|
|
2
|
+
displayName: Doubao (Volcengine)
|
|
3
|
+
displayName_zh: 豆包(火山方舟)
|
|
4
|
+
description: ByteDance Doubao Seed-2.0 family on Volcengine Ark — pro / lite / mini / code, OpenAI-compatible
|
|
5
|
+
description_zh: 字节豆包 Seed-2.0 系列(火山方舟),OpenAI 兼容协议
|
|
6
|
+
defaultEndpoint: https://ark.cn-beijing.volces.com/api/v3
|
|
7
|
+
defaultModelId: doubao-seed-2-0-pro-260215
|
|
8
|
+
|
|
9
|
+
secrets:
|
|
10
|
+
- key: api_key
|
|
11
|
+
description: Volcengine Ark API Key. Format starts with ark-. Get from https://console.volcengine.com/ark
|
|
12
|
+
description_zh: 火山方舟 API Key,ark- 开头。从 https://console.volcengine.com/ark 获取
|
|
13
|
+
default: <<ARK_API_KEY>>
|
|
14
|
+
secret: true
|
|
15
|
+
|
|
16
|
+
# Capability notes for Doubao Seed-2.0 — verified end-to-end on 2026-05-26:
|
|
17
|
+
# - All four models share the same wire shape (OpenAI chat completions
|
|
18
|
+
# + Volcengine `thinking:{type:'enabled'/'disabled'}`).
|
|
19
|
+
# - thinking type=auto is rejected as "Unsupported" — only enabled/disabled.
|
|
20
|
+
# - reasoning_content is returned in message.reasoning_content when
|
|
21
|
+
# thinking is enabled; suppressed when disabled.
|
|
22
|
+
# - Caching is automatic — no cache_control parameter required. Verified
|
|
23
|
+
# 2026-05-26 with a >4096-token system prompt and 5 same-prompt turns:
|
|
24
|
+
# all four models (pro/lite/mini/code) hit cache at least once.
|
|
25
|
+
# Caveats observed empirically:
|
|
26
|
+
# - prompts shorter than ~4096 tokens generally don't cache at all;
|
|
27
|
+
# - first 1-3 turns of a fresh prompt commonly miss while the cache
|
|
28
|
+
# warms up;
|
|
29
|
+
# - cache can drop unexpectedly mid-conversation (turn N hits, turn
|
|
30
|
+
# N+1 misses, turn N+2 hits again) — not stable steady-state.
|
|
31
|
+
# Treat the cache as opportunistic; UI badges are accurate when shown.
|
|
32
|
+
# - Tool calls return standard OpenAI tool_calls shape.
|
|
33
|
+
# - Image: pro/lite/mini all accepted image_url blocks; in our smoke
|
|
34
|
+
# test all four answered "Black" for what was actually a red 64×64 PNG,
|
|
35
|
+
# so reliability is uncertain. We default image:false; user can flip
|
|
36
|
+
# after their own verification.
|
|
37
|
+
# - Doubao 2.0 docs aren't fully published; model id strings sourced
|
|
38
|
+
# from the Volcengine Ark console (the activated-model list).
|
|
39
|
+
models:
|
|
40
|
+
- id: doubao-seed-2-0-pro-260215
|
|
41
|
+
displayName: Doubao Seed 2.0 Pro
|
|
42
|
+
maxOutputTokens: 16384
|
|
43
|
+
capabilities:
|
|
44
|
+
image: false
|
|
45
|
+
video: false
|
|
46
|
+
audio: false
|
|
47
|
+
promptCaching:
|
|
48
|
+
# Doubao caches automatically (no cache_control parameter needed
|
|
49
|
+
# in the request). The badge is just a visibility hint — UI shows
|
|
50
|
+
# the read/write counts so users see when cache is helping.
|
|
51
|
+
# Doc says default TTL is the platform default; observed empirically
|
|
52
|
+
# to behave like ~5min ephemeral. Cache only kicks in for prompts
|
|
53
|
+
# above ~4096 tokens; first 1-3 turns of a fresh prompt commonly
|
|
54
|
+
# miss while the cache is warming up.
|
|
55
|
+
default: 5m
|
|
56
|
+
ttlPresets:
|
|
57
|
+
- { value: 5m, label: 5min }
|
|
58
|
+
thinking:
|
|
59
|
+
defaultEnabled: true
|
|
60
|
+
default: medium
|
|
61
|
+
# effort label is Halo-side only — Doubao only sees enabled/disabled.
|
|
62
|
+
# We still expose Off/On as toggles by mapping both options to the
|
|
63
|
+
# same flag (keeps the form consistent across providers).
|
|
64
|
+
effortPresets:
|
|
65
|
+
- { value: medium, label: On }
|
|
66
|
+
|
|
67
|
+
- id: doubao-seed-2-0-lite-260428
|
|
68
|
+
displayName: Doubao Seed 2.0 Lite
|
|
69
|
+
maxOutputTokens: 16384
|
|
70
|
+
capabilities:
|
|
71
|
+
image: false
|
|
72
|
+
video: false
|
|
73
|
+
audio: false
|
|
74
|
+
promptCaching:
|
|
75
|
+
# Doubao caches automatically (no cache_control parameter needed
|
|
76
|
+
# in the request). The badge is just a visibility hint — UI shows
|
|
77
|
+
# the read/write counts so users see when cache is helping.
|
|
78
|
+
# Doc says default TTL is the platform default; observed empirically
|
|
79
|
+
# to behave like ~5min ephemeral. Cache only kicks in for prompts
|
|
80
|
+
# above ~4096 tokens; first 1-3 turns of a fresh prompt commonly
|
|
81
|
+
# miss while the cache is warming up.
|
|
82
|
+
default: 5m
|
|
83
|
+
ttlPresets:
|
|
84
|
+
- { value: 5m, label: 5min }
|
|
85
|
+
thinking:
|
|
86
|
+
defaultEnabled: true
|
|
87
|
+
default: medium
|
|
88
|
+
effortPresets:
|
|
89
|
+
- { value: medium, label: On }
|
|
90
|
+
|
|
91
|
+
- id: doubao-seed-2-0-mini-260428
|
|
92
|
+
displayName: Doubao Seed 2.0 Mini
|
|
93
|
+
maxOutputTokens: 16384
|
|
94
|
+
capabilities:
|
|
95
|
+
image: false
|
|
96
|
+
video: false
|
|
97
|
+
audio: false
|
|
98
|
+
promptCaching:
|
|
99
|
+
# Doubao caches automatically (no cache_control parameter needed
|
|
100
|
+
# in the request). The badge is just a visibility hint — UI shows
|
|
101
|
+
# the read/write counts so users see when cache is helping.
|
|
102
|
+
# Doc says default TTL is the platform default; observed empirically
|
|
103
|
+
# to behave like ~5min ephemeral. Cache only kicks in for prompts
|
|
104
|
+
# above ~4096 tokens; first 1-3 turns of a fresh prompt commonly
|
|
105
|
+
# miss while the cache is warming up.
|
|
106
|
+
default: 5m
|
|
107
|
+
ttlPresets:
|
|
108
|
+
- { value: 5m, label: 5min }
|
|
109
|
+
thinking:
|
|
110
|
+
defaultEnabled: true
|
|
111
|
+
default: medium
|
|
112
|
+
effortPresets:
|
|
113
|
+
- { value: medium, label: On }
|
|
114
|
+
|
|
115
|
+
- id: doubao-seed-2-0-code-preview-260215
|
|
116
|
+
displayName: Doubao Seed 2.0 Code Preview
|
|
117
|
+
maxOutputTokens: 16384
|
|
118
|
+
capabilities:
|
|
119
|
+
image: false
|
|
120
|
+
video: false
|
|
121
|
+
audio: false
|
|
122
|
+
promptCaching:
|
|
123
|
+
# Doubao caches automatically (no cache_control parameter needed
|
|
124
|
+
# in the request). The badge is just a visibility hint — UI shows
|
|
125
|
+
# the read/write counts so users see when cache is helping.
|
|
126
|
+
# Doc says default TTL is the platform default; observed empirically
|
|
127
|
+
# to behave like ~5min ephemeral. Cache only kicks in for prompts
|
|
128
|
+
# above ~4096 tokens; first 1-3 turns of a fresh prompt commonly
|
|
129
|
+
# miss while the cache is warming up.
|
|
130
|
+
default: 5m
|
|
131
|
+
ttlPresets:
|
|
132
|
+
- { value: 5m, label: 5min }
|
|
133
|
+
thinking:
|
|
134
|
+
defaultEnabled: true
|
|
135
|
+
default: medium
|
|
136
|
+
effortPresets:
|
|
137
|
+
- { value: medium, label: On }
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
id: hunyuan
|
|
2
|
+
displayName: Hunyuan (Tencent)
|
|
3
|
+
displayName_zh: 混元(腾讯)
|
|
4
|
+
description: Tencent Hunyuan Hy3 preview — 295B/21B MoE, agent-oriented with no_think / think_low / think_high modes
|
|
5
|
+
description_zh: 腾讯混元 Hy3 preview,295B/21B 激活 MoE,面向 Agent 工作负载,支持 no_think / think_low / think_high 三档思考
|
|
6
|
+
defaultEndpoint: https://tokenhub.tencentmaas.com/v1
|
|
7
|
+
defaultModelId: hy3-preview
|
|
8
|
+
|
|
9
|
+
secrets:
|
|
10
|
+
- key: api_key
|
|
11
|
+
description: Tencent Hunyuan Hy3 API Key. Format starts with sk-.
|
|
12
|
+
description_zh: 腾讯混元 Hy3 API Key,sk- 开头
|
|
13
|
+
default: <<HUNYUAN_API_KEY>>
|
|
14
|
+
secret: true
|
|
15
|
+
|
|
16
|
+
# Capability notes for Hunyuan Hy3 — verified end-to-end on 2026-05-26:
|
|
17
|
+
# - Endpoint hosted on tokenhub.tencentmaas.com (NOT api.hunyuan.cloud.tencent.com,
|
|
18
|
+
# which is the older OpenAI-compat surface that doesn't have Hy3).
|
|
19
|
+
# - Caching is automatic (no cache_control needed). Verified: same long
|
|
20
|
+
# system prompt across turns shows usage.prompt_tokens_details
|
|
21
|
+
# .cached_tokens > 0 from turn 2 onward.
|
|
22
|
+
# - Thinking modes per Hy3 product naming → `reasoning_effort`:
|
|
23
|
+
# no_think → omit reasoning_effort (zero reasoning_tokens)
|
|
24
|
+
# think_low → reasoning_effort: 'low'
|
|
25
|
+
# think_high → reasoning_effort: 'high'
|
|
26
|
+
# hunyuan-agent.ts maps thinking.enabled=false → no_think (no field),
|
|
27
|
+
# thinking.enabled=true + effort=low|medium|high → reasoning_effort.
|
|
28
|
+
# - Image input: gateway accepts image_url blocks but model says "I don't
|
|
29
|
+
# see an image" — image:false.
|
|
30
|
+
# - 256K context per product description (not enforced here; model just
|
|
31
|
+
# accepts long inputs).
|
|
32
|
+
models:
|
|
33
|
+
- id: hy3-preview
|
|
34
|
+
displayName: Hunyuan Hy3 Preview
|
|
35
|
+
maxOutputTokens: 16384
|
|
36
|
+
capabilities:
|
|
37
|
+
image: false
|
|
38
|
+
video: false
|
|
39
|
+
audio: false
|
|
40
|
+
promptCaching:
|
|
41
|
+
# Automatic caching, no cache_control parameter. cached_tokens reliably
|
|
42
|
+
# appears from turn 2 once prompt is long enough. The TTL knob isn't
|
|
43
|
+
# exposed by Hy3 — value is hint-only for the form.
|
|
44
|
+
default: 5m
|
|
45
|
+
ttlPresets:
|
|
46
|
+
- { value: 5m, label: 5min }
|
|
47
|
+
thinking:
|
|
48
|
+
# Maps Halo effort labels to Hy3's reasoning_effort. The Hy3
|
|
49
|
+
# product surface markets these as no_think / think_low / think_high;
|
|
50
|
+
# we expose Off / Low / High since "Off" is the natural opposite of
|
|
51
|
+
# an enable toggle.
|
|
52
|
+
defaultEnabled: true
|
|
53
|
+
default: low
|
|
54
|
+
effortPresets:
|
|
55
|
+
- { value: low, label: Low }
|
|
56
|
+
- { value: high, label: High }
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
id: kimi
|
|
2
|
+
displayName: Kimi (Moonshot AI)
|
|
3
|
+
displayName_zh: Kimi(月之暗面)
|
|
4
|
+
description: Kimi K2.6 via OpenAI-compatible chat completions API
|
|
5
|
+
description_zh: Kimi K2.6,通过 OpenAI 兼容的 chat completions API 调用
|
|
6
|
+
defaultEndpoint: https://api.moonshot.cn/v1
|
|
7
|
+
|
|
8
|
+
secrets:
|
|
9
|
+
- key: api_key
|
|
10
|
+
description: Kimi (Moonshot AI) API Key. Get from https://platform.kimi.com/console/api-keys
|
|
11
|
+
description_zh: Kimi (月之暗面) API Key。从 https://platform.kimi.com/console/api-keys 获取
|
|
12
|
+
default: <<KIMI_API_KEY>>
|
|
13
|
+
secret: true
|
|
14
|
+
|
|
15
|
+
# Capabilities verified 2026-05-27 via live probes. Kimi-k2.6 returns
|
|
16
|
+
# "prepare image failed" on image_url blocks despite past docs claiming
|
|
17
|
+
# vision — set image:false until/unless a vision-specific model id is
|
|
18
|
+
# tested here. reasoning_effort accepts { minimal, low, medium, high };
|
|
19
|
+
# `max` errors with explicit message listing the four valid values.
|
|
20
|
+
# Caching is automatic; cached_tokens shows up reliably from turn 2 once
|
|
21
|
+
# the prompt is long enough (~2K+).
|
|
22
|
+
models:
|
|
23
|
+
- id: kimi-k2.6
|
|
24
|
+
displayName: Kimi K2.6
|
|
25
|
+
maxOutputTokens: 32768
|
|
26
|
+
capabilities:
|
|
27
|
+
image: false
|
|
28
|
+
video: false
|
|
29
|
+
audio: false
|
|
30
|
+
promptCaching:
|
|
31
|
+
default: 5m
|
|
32
|
+
ttlPresets:
|
|
33
|
+
- { value: 5m, label: 5min }
|
|
34
|
+
thinking:
|
|
35
|
+
defaultEnabled: true
|
|
36
|
+
default: medium
|
|
37
|
+
effortPresets:
|
|
38
|
+
- { value: minimal, label: Minimal }
|
|
39
|
+
- { value: low, label: Low }
|
|
40
|
+
- { value: medium, label: Medium }
|
|
41
|
+
- { value: high, label: High }
|