@turmind/halo 2.0.8 → 2.1.1

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.
Files changed (41) hide show
  1. package/admin-out/404.html +1 -1
  2. package/admin-out/_next/static/chunks/{241-75bac3bb8e7aca1b.js → 398-9a8be186767b4504.js} +1 -1
  3. package/admin-out/_next/static/chunks/989-71c38d29c6672b27.js +1 -0
  4. package/admin-out/_next/static/chunks/app/page-67334fcd2175c7ad.js +1 -0
  5. package/admin-out/_next/static/css/3467b854242306b8.css +1 -0
  6. package/admin-out/index.html +1 -1
  7. package/admin-out/index.txt +5 -5
  8. package/bundled-docs/design/agentcore.md +1 -1
  9. package/bundled-docs/design/architecture.md +5 -3
  10. package/bundled-docs/design/canvas-extensions.md +1 -1
  11. package/bundled-docs/design/node.md +98 -0
  12. package/bundled-docs/design/prompt-system.md +2 -0
  13. package/bundled-docs/design/storage.md +4 -4
  14. package/bundled-docs/design/ws.md +8 -7
  15. package/bundled-docs/dev/api.md +21 -0
  16. package/bundled-docs/dev/env.md +2 -2
  17. package/bundled-docs/dev/tools.md +58 -1
  18. package/bundled-docs/guide/README.md +4 -0
  19. package/bundled-docs/guide/agents.md +1 -1
  20. package/bundled-docs/guide/cli.md +23 -0
  21. package/bundled-docs/guide/delegation-and-access.md +2 -2
  22. package/bundled-docs/guide/node.md +86 -0
  23. package/bundled-docs/guide/workspace.md +6 -3
  24. package/bundled-docs/requirements/agent.md +1 -1
  25. package/bundled-docs/requirements/terminal.md +76 -44
  26. package/bundled-docs/requirements/workspace.md +12 -1
  27. package/dist/evo-wrapper.js +7 -5
  28. package/dist/index.js +1997 -844
  29. package/package.json +3 -1
  30. package/templates/agents/default/agent.yaml +2 -0
  31. package/templates/config.yaml +0 -6
  32. package/templates/models/aws-bedrock-mantle.yaml +44 -4
  33. package/templates/models/aws-bedrock-openai.yaml +44 -4
  34. package/templates/models/doubao.yaml +97 -7
  35. package/templates/models/kimi.yaml +41 -3
  36. package/templates/models/minimax.yaml +35 -4
  37. package/admin-out/_next/static/chunks/989-af7e27a2004069ac.js +0 -1
  38. package/admin-out/_next/static/chunks/app/page-2af2482b39d6ec64.js +0 -1
  39. package/admin-out/_next/static/css/2e6b00182ac44ae1.css +0 -1
  40. /package/admin-out/_next/static/{pBIsb2BS3McG20ieKaTDx → 0cRHmPZfENhrU7Hb0w3n_}/_buildManifest.js +0 -0
  41. /package/admin-out/_next/static/{pBIsb2BS3McG20ieKaTDx → 0cRHmPZfENhrU7Hb0w3n_}/_ssgManifest.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@turmind/halo",
3
- "version": "2.0.8",
3
+ "version": "2.1.1",
4
4
  "description": "Halo — multi-agent collaborative workspace. CLI + TUI + HTTP/WS server in one package.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -37,6 +37,8 @@
37
37
  "@parcel/watcher": "^2.5.6",
38
38
  "@smithy/signature-v4": "^5.3.13",
39
39
  "@wecom/aibot-node-sdk": "^1.0.7",
40
+ "@xterm/addon-serialize": "^0.14.0",
41
+ "@xterm/headless": "^6.0.0",
40
42
  "better-sqlite3": "^11.7.0",
41
43
  "croner": "^10.0.1",
42
44
  "drizzle-orm": "^0.45.2",
@@ -28,6 +28,8 @@ tools:
28
28
  - grep
29
29
  - glob
30
30
  - web_fetch
31
+ # Linked machines (`halo node`): grants all 8 node_* tools, full-access sessions only.
32
+ - node_list
31
33
  # Delegation: a non-empty `team` is what grants the whole session-tool bundle
32
34
  # (start_session / query_session / … / archive_session / query_agent) + the
33
35
  # roster — they're no longer hand-listed under `tools:`. These ids also scope
@@ -9,7 +9,6 @@
9
9
  # timeout.web_fetch → HALO_WEB_FETCH_TIMEOUT
10
10
  # timeout.model_request → HALO_MODEL_TIMEOUT
11
11
  # timeout.session_grace → HALO_SESSION_GRACE
12
- # timeout.terminal_grace → HALO_TERMINAL_GRACE
13
12
  # logging.max_file_size → HALO_LOG_MAX_SIZE
14
13
  # logging.max_files → HALO_LOG_MAX_FILES
15
14
 
@@ -56,11 +55,6 @@ timeout:
56
55
  default: 300000
57
56
  description: "Idle session grace period before unloading from memory (ms)."
58
57
  description_zh: "空闲会话保留在内存中的时长(毫秒)。"
59
- terminal_grace:
60
- value: 300000
61
- default: 300000
62
- description: "Terminal grace period after disconnect before killing the pty (ms)."
63
- description_zh: "终端断连后保留 pty 的时长(毫秒)。"
64
58
 
65
59
  logging:
66
60
  max_file_size:
@@ -1,10 +1,10 @@
1
1
  id: aws-bedrock-mantle
2
2
  runtime: bedrock-mantle
3
- revision: 2026101005
3
+ revision: 2026102701
4
4
  displayName: AWS Bedrock Mantle (OpenAI GPT-6.1 / 6 / 5.6)
5
5
  displayName_zh: AWS Bedrock Mantle(OpenAI GPT-6.1 / 6 / 5.6)
6
- description: OpenAI GPT-6.1 Sol, GPT-6 (Astra / Sol / Luna) and GPT-5.6 (Sol / Terra / Luna) on Amazon Bedrock via the bedrock-mantle endpoint (OpenAI Responses API only — not Converse/InvokeModel). Region-split — GPT-6.1 Sol and GPT-6 Sol / Luna are on us-east-1 only, Astra on us-west-2 only.
7
- description_zh: 通过 Bedrock Mantle 端点调用 OpenAI GPT-6.1 Sol、GPT-6(Astra / Sol / Luna)与 GPT-5.6(Sol / Terra / Luna)(仅 OpenAI Responses API,不支持 Converse/InvokeModel)。按区域分布:GPT-6.1 Sol 与 GPT-6 Sol / Luna 仅 us-east-1,Astra 仅 us-west-2。
6
+ description: OpenAI GPT-6.1 (Sol / Terra), GPT-6 (Astra / Sol / Luna) and GPT-5.6 (Sol / Terra / Luna) on Amazon Bedrock via the bedrock-mantle endpoint (OpenAI Responses API only — not Converse/InvokeModel). Region-split — GPT-6.1 Sol and GPT-6 Sol / Luna are on us-east-1 only, Astra on us-west-2 only.
7
+ description_zh: 通过 Bedrock Mantle 端点调用 OpenAI GPT-6.1(Sol / Terra)、GPT-6(Astra / Sol / Luna)与 GPT-5.6(Sol / Terra / Luna)(仅 OpenAI Responses API,不支持 Converse/InvokeModel)。按区域分布:GPT-6.1 Sol 与 GPT-6 Sol / Luna 仅 us-east-1,Astra 仅 us-west-2。
8
8
  # Mantle is a distinct endpoint from bedrock-runtime; the OpenAI surface lives
9
9
  # under /openai/v1. Region split (live-probed 2026-09-24, gpt-6.1-sol
10
10
  # 2026-09-30; 404 on the wrong endpoint):
@@ -14,6 +14,7 @@ description_zh: 通过 Bedrock Mantle 端点调用 OpenAI GPT-6.1 Sol、GPT-6(
14
14
  # gpt-6-sol ✓ - -
15
15
  # gpt-6-luna ✓ - -
16
16
  # gpt-6.1-sol ✓ - -
17
+ # gpt-6.1-terra ✓ - - (probed 2026-10-27)
17
18
  # gpt-5.6-sol ✓ ✓ -
18
19
  # gpt-5.6-terra ✓ ✓ ✓
19
20
  # gpt-5.6-luna ✓ ✓ ✓
@@ -28,7 +29,7 @@ description_zh: 通过 Bedrock Mantle 端点调用 OpenAI GPT-6.1 Sol、GPT-6(
28
29
  # us-east-2 configs (5.6-era) keep working; picking Astra moves the agent to
29
30
  # us-west-2. The endpoint is a per-agent pick.
30
31
  #
31
- # The same seven models are also in aws-bedrock-openai.yaml (bedrock-runtime
32
+ # The same eight models are also in aws-bedrock-openai.yaml (bedrock-runtime
32
33
  # host, `global.openai.*` ids, no region split) — AWS's recommended endpoint
33
34
  # for new agents. Stay here only for Mantle-only features (server-side
34
35
  # web_search, background inference), which the web-search skill relies on.
@@ -193,6 +194,45 @@ models:
193
194
  - { value: medium, label: Medium }
194
195
  - { value: high, label: High }
195
196
 
197
+ # GPT-6.1 Terra (Bedrock GA 2026-10-26) — us-east-1 endpoint ONLY (404 "model
198
+ # does not exist" on us-east-2 / us-west-2, live-probed 2026-10-27). On
199
+ # us-east-1: plain, reasoning.effort none/max, image ("Red"), tool call
200
+ # (function_call) and implicit cache (turn 2 read 6014 tokens) all 200. Specs
201
+ # follow the Bedrock model card (1,050,000 context / 128,000 max output);
202
+ # effort / verbosity presets as GPT-6.1 Sol (no "none" preset).
203
+ - id: openai.gpt-6.1-terra
204
+ displayName: GPT-6.1 Terra
205
+ endpoints:
206
+ - https://bedrock-mantle.us-east-1.api.aws/openai/v1
207
+ maxOutputTokens: 128000
208
+ contextWindow: 272000
209
+ maxContextWindow: 1050000
210
+ compressAt: 0.9
211
+ capabilities:
212
+ image: true
213
+ video: false
214
+ audio: false
215
+ promptCaching:
216
+ default: 5m
217
+ ttlPresets:
218
+ - { value: 5m, label: 5min }
219
+ thinking:
220
+ mode: adaptive
221
+ defaultEnabled: true
222
+ default: xhigh
223
+ effortPresets:
224
+ - { value: low, label: Low }
225
+ - { value: medium, label: Medium }
226
+ - { value: high, label: High }
227
+ - { value: xhigh, label: XHigh }
228
+ - { value: max, label: Max }
229
+ verbosity:
230
+ default: medium
231
+ presets:
232
+ - { value: low, label: Low }
233
+ - { value: medium, label: Medium }
234
+ - { value: high, label: High }
235
+
196
236
  - id: openai.gpt-6-luna
197
237
  displayName: GPT-6 Luna
198
238
  endpoints:
@@ -1,10 +1,10 @@
1
1
  id: aws-bedrock-openai
2
2
  runtime: bedrock-mantle
3
- revision: 2026101005
3
+ revision: 2026102701
4
4
  displayName: AWS Bedrock OpenAI-compatible (GPT-6.1 / 6 / 5.6 · Grok 4.7 / 4.6 · Kimi K3 · GLM 5.3)
5
5
  displayName_zh: AWS Bedrock OpenAI 兼容接口(GPT-6.1 / 6 / 5.6 · Grok 4.7 / 4.6 · Kimi K3 · GLM 5.3)
6
- description: Frontier models on Amazon Bedrock via the bedrock-runtime endpoint's OpenAI Responses API (/openai/v1) — OpenAI GPT-6.1 Sol, GPT-6 (Astra / Sol / Luna) and GPT-5.6 (Sol / Terra / Luna), xAI Grok 4.7 / 4.6, Moonshot Kimi K3, Z.AI GLM 5.3. Cross-Region inference profiles (global.*) only — every region serves every model, no region split. No server-side web_search (that is Mantle-only).
7
- description_zh: 通过 bedrock-runtime 端点的 OpenAI Responses API(/openai/v1)调用 Bedrock 上的前沿模型——OpenAI GPT-6.1 Sol、GPT-6(Astra / Sol / Luna)与 GPT-5.6(Sol / Terra / Luna)、xAI Grok 4.7 / 4.6、月之暗面 Kimi K3、智谱 GLM 5.3。仅支持跨区域推理 profile(global.*)——每个区域都能调所有模型,无区域分裂。不支持服务端 web_search(那是 Mantle 独有)。
6
+ description: Frontier models on Amazon Bedrock via the bedrock-runtime endpoint's OpenAI Responses API (/openai/v1) — OpenAI GPT-6.1 (Sol / Terra), GPT-6 (Astra / Sol / Luna) and GPT-5.6 (Sol / Terra / Luna), xAI Grok 4.7 / 4.6, Moonshot Kimi K3, Z.AI GLM 5.3. Cross-Region inference profiles (global.*) only — every region serves every model, no region split. No server-side web_search (that is Mantle-only).
7
+ description_zh: 通过 bedrock-runtime 端点的 OpenAI Responses API(/openai/v1)调用 Bedrock 上的前沿模型——OpenAI GPT-6.1(Sol / Terra)、GPT-6(Astra / Sol / Luna)与 GPT-5.6(Sol / Terra / Luna)、xAI Grok 4.7 / 4.6、月之暗面 Kimi K3、智谱 GLM 5.3。仅支持跨区域推理 profile(global.*)——每个区域都能调所有模型,无区域分裂。不支持服务端 web_search(那是 Mantle 独有)。
8
8
  # Why a second Bedrock/OpenAI provider next to aws-bedrock-mantle: this is the
9
9
  # bedrock-runtime host (https://bedrock-runtime.<region>.amazonaws.com/openai/v1),
10
10
  # which AWS now recommends for new applications; bedrock-mantle is the legacy
@@ -59,7 +59,7 @@ secrets:
59
59
  # - Reasoning summaries are never surfaced (output[].reasoning.summary
60
60
  # empty) — same as GPT on Mantle; reasoning_tokens > 0 proves it ran.
61
61
  models:
62
- # OpenAI GPT-6.1 / GPT-6 / GPT-5.6 — the same seven models as
62
+ # OpenAI GPT-6.1 / GPT-6 / GPT-5.6 — the same eight models as
63
63
  # aws-bedrock-mantle.yaml (see that file for the per-model background:
64
64
  # 1,050,000 context for GPT-6 and 5.6 per the Bedrock model cards, 128,000 /
65
65
  # 64,000 max output, 2x input price past 272K — hence contextWindow 272000
@@ -136,6 +136,46 @@ models:
136
136
  - { value: medium, label: Medium }
137
137
  - { value: high, label: High }
138
138
 
139
+ # GPT-6.1 Terra (Bedrock GA 2026-10-26; model card: 1,050,000 context /
140
+ # 128,000 max output, EOL no sooner than 2027-10-26). Live-probed 2026-10-27
141
+ # with SigV4 on global.openai.gpt-6.1-terra: 200 from us-east-1 / us-west-2 /
142
+ # eu-west-1 / ap-northeast-1; the bare openai.gpt-6.1-terra id 400s (needs the
143
+ # profile). reasoning.effort accepts none/low/medium/high/xhigh/max (`minimal`
144
+ # 400s; presets follow GPT-6 Sol, no "none"); text.verbosity low/medium/high;
145
+ # image → "Red"; tool call → function_call; implicit cache: turn 1 wrote 6014
146
+ # tokens, turn 2 read 6014. max_output_tokens 128001 is not rejected (proves
147
+ # nothing), so 128000 is the card's figure.
148
+ - id: global.openai.gpt-6.1-terra
149
+ displayName: GPT-6.1 Terra
150
+ maxOutputTokens: 128000
151
+ contextWindow: 272000
152
+ maxContextWindow: 1050000
153
+ compressAt: 0.9
154
+ capabilities:
155
+ image: true
156
+ video: false
157
+ audio: false
158
+ promptCaching:
159
+ default: 5m
160
+ ttlPresets:
161
+ - { value: 5m, label: 5min }
162
+ thinking:
163
+ mode: adaptive
164
+ defaultEnabled: true
165
+ default: xhigh
166
+ effortPresets:
167
+ - { value: low, label: Low }
168
+ - { value: medium, label: Medium }
169
+ - { value: high, label: High }
170
+ - { value: xhigh, label: XHigh }
171
+ - { value: max, label: Max }
172
+ verbosity:
173
+ default: medium
174
+ presets:
175
+ - { value: low, label: Low }
176
+ - { value: medium, label: Medium }
177
+ - { value: high, label: High }
178
+
139
179
  - id: global.openai.gpt-6-astra
140
180
  displayName: GPT-6 Astra
141
181
  maxOutputTokens: 128000
@@ -1,12 +1,12 @@
1
1
  id: doubao
2
2
  runtime: doubao
3
- revision: 2026101005
3
+ revision: 2026101901
4
4
  displayName: Doubao (Volcengine)
5
5
  displayName_zh: 豆包(火山方舟)
6
- description: ByteDance Doubao Seed-2.1 / 2.0 family on Volcengine Ark — pro / lite / mini / code, OpenAI-compatible
6
+ description: ByteDance Doubao Seed-2.1 / 2.0 family on Volcengine Ark — pro / lite / turbo / mini / code, OpenAI-compatible
7
7
  description_zh: 字节豆包 Seed-2.1 / 2.0 系列(火山方舟),OpenAI 兼容协议
8
8
  defaultEndpoint: https://ark.cn-beijing.volces.com/api/v3
9
- defaultModelId: doubao-seed-2-1-pro-260628
9
+ defaultModelId: doubao-seed-2-1-pro-260915
10
10
 
11
11
  secrets:
12
12
  - key: api_key
@@ -45,12 +45,74 @@ secrets:
45
45
  # 229376 max input, so contextWindow = 229376; every 2.x model takes up to
46
46
  # 131072 output (max_tokens 131073 → 400) and Ark trims the reply to the
47
47
  # remaining quota instead of erroring. 2.1-pro-260628 live-probed: thinking
48
- # enabled/disabled, tool calls, image. Not carried: 2.1-pro / lite-260915 and
49
- # doubao-seed-evolving (1M ctx) return ModelNotOpen on our account — add them
50
- # after a live probe on an account that has them activated; 2.1-turbo-260628
51
- # likewise. Ark's newer `reasoning_effort` knob (deep-thinking doc) is not
48
+ # enabled/disabled, tool calls, image.
49
+ # 2026-10-19 census: 2.1-pro / lite-260915 and 2.1-turbo-260628 are now
50
+ # callable on our account (official list docs/82379/1330310: 260915 models →
51
+ # 1024k ctx / 1024k input / 256k output; turbo → 256k / 256k / 256k) and were
52
+ # live-probed: plain, thinking enabled/disabled (type=auto → 400), image
53
+ # (red PNG → red), tool call, automatic cache hits, max_tokens 262145 → 400
54
+ # on lite / turbo (pro-260915 never rejects, so its 262144 is the official
55
+ # figure). contextWindow = min(272000, max input). doubao-seed-evolving still
56
+ # returns ModelNotOpen — add after a probe on an account that has it.
57
+ # Ark's newer `reasoning_effort` knob (deep-thinking doc) is not
52
58
  # wired — doubao-agent still sends only thinking:{type}.
53
59
  models:
60
+ - id: doubao-seed-2-1-pro-260915
61
+ displayName: Doubao Seed 2.1 Pro (260915)
62
+ maxOutputTokens: 262144
63
+ contextWindow: 272000
64
+ maxContextWindow: 1048576
65
+ compressAt: 0.9
66
+ capabilities:
67
+ # Live probe 2026-10-19: named the red 64×64 PNG correctly; thinking enabled/disabled, tool call OK; cache hit on the 6th identical turn.
68
+ image: true
69
+ video: false
70
+ audio: false
71
+ promptCaching:
72
+ # Doubao caches automatically (no cache_control parameter needed
73
+ # in the request). The badge is just a visibility hint — UI shows
74
+ # the read/write counts so users see when cache is helping.
75
+ # Doc says default TTL is the platform default; observed empirically
76
+ # to behave like ~5min ephemeral. Cache only kicks in for prompts
77
+ # above ~4096 tokens; first 1-3 turns of a fresh prompt commonly
78
+ # miss while the cache is warming up.
79
+ default: 5m
80
+ ttlPresets:
81
+ - { value: 5m, label: 5min }
82
+ thinking:
83
+ defaultEnabled: true
84
+ default: medium
85
+ effortPresets:
86
+ - { value: medium, label: On }
87
+
88
+ - id: doubao-seed-2-1-lite-260915
89
+ displayName: Doubao Seed 2.1 Lite
90
+ maxOutputTokens: 262144
91
+ contextWindow: 272000
92
+ maxContextWindow: 1048576
93
+ compressAt: 0.9
94
+ capabilities:
95
+ # Live probe 2026-10-19: named the red 64×64 PNG correctly; thinking enabled/disabled, tool call OK; cache hit; max_tokens 262145 → 400.
96
+ image: true
97
+ video: false
98
+ audio: false
99
+ promptCaching:
100
+ # Doubao caches automatically (no cache_control parameter needed
101
+ # in the request). The badge is just a visibility hint — UI shows
102
+ # the read/write counts so users see when cache is helping.
103
+ # Doc says default TTL is the platform default; observed empirically
104
+ # to behave like ~5min ephemeral. Cache only kicks in for prompts
105
+ # above ~4096 tokens; first 1-3 turns of a fresh prompt commonly
106
+ # miss while the cache is warming up.
107
+ default: 5m
108
+ ttlPresets:
109
+ - { value: 5m, label: 5min }
110
+ thinking:
111
+ defaultEnabled: true
112
+ default: medium
113
+ effortPresets:
114
+ - { value: medium, label: On }
115
+
54
116
  - id: doubao-seed-2-1-pro-260628
55
117
  displayName: Doubao Seed 2.1 Pro
56
118
  maxOutputTokens: 131072
@@ -82,6 +144,34 @@ models:
82
144
  effortPresets:
83
145
  - { value: medium, label: On }
84
146
 
147
+ - id: doubao-seed-2-1-turbo-260628
148
+ displayName: Doubao Seed 2.1 Turbo
149
+ maxOutputTokens: 262144
150
+ contextWindow: 262144
151
+ maxContextWindow: 262144
152
+ compressAt: 0.9
153
+ capabilities:
154
+ # Live probe 2026-10-19: named the red 64×64 PNG correctly; thinking enabled/disabled, tool call OK; cache hit from turn 2; max_tokens 262145 → 400.
155
+ image: true
156
+ video: false
157
+ audio: false
158
+ promptCaching:
159
+ # Doubao caches automatically (no cache_control parameter needed
160
+ # in the request). The badge is just a visibility hint — UI shows
161
+ # the read/write counts so users see when cache is helping.
162
+ # Doc says default TTL is the platform default; observed empirically
163
+ # to behave like ~5min ephemeral. Cache only kicks in for prompts
164
+ # above ~4096 tokens; first 1-3 turns of a fresh prompt commonly
165
+ # miss while the cache is warming up.
166
+ default: 5m
167
+ ttlPresets:
168
+ - { value: 5m, label: 5min }
169
+ thinking:
170
+ defaultEnabled: true
171
+ default: medium
172
+ effortPresets:
173
+ - { value: medium, label: On }
174
+
85
175
  - id: doubao-seed-2-0-lite-260428
86
176
  displayName: Doubao Seed 2.0 Lite
87
177
  maxOutputTokens: 131072
@@ -1,10 +1,10 @@
1
1
  id: kimi
2
2
  runtime: kimi
3
- revision: 2026101004
3
+ revision: 2026102701
4
4
  displayName: Kimi (Moonshot AI)
5
5
  displayName_zh: Kimi(月之暗面)
6
- description: Kimi K3 / K2.7 Code / K2.6 via OpenAI-compatible chat completions API
7
- description_zh: Kimi K3 / K2.7 Code / K2.6,通过 OpenAI 兼容的 chat completions API 调用
6
+ description: Kimi K3.1 Pro / K3 / K2.7 Code / K2.6 via OpenAI-compatible chat completions API
7
+ description_zh: Kimi K3.1 Pro / K3 / K2.7 Code / K2.6,通过 OpenAI 兼容的 chat completions API 调用
8
8
  defaultEndpoint: https://api.moonshot.cn/v1
9
9
 
10
10
  secrets:
@@ -25,6 +25,44 @@ secrets:
25
25
  # k2.6). An earlier comment here claiming K2.6 accepts
26
26
  # reasoning_effort { minimal, low, medium, high } was wrong.
27
27
  models:
28
+ # Kimi K3.1 Pro (platform.kimi.com/docs/models + docs/guide/kimi-k3-1-pro-quickstart:
29
+ # 1M context, top-level reasoning_effort low / high / max, default max,
30
+ # max_completion_tokens default 131072). /v1/models: context_length 1048576,
31
+ # image in. Live probe 2026-10-27: plain, effort low/high/max/medium/xhigh all
32
+ # 200 (reasoning returned; medium/xhigh are silently accepted, only the three
33
+ # documented values are offered); red 64×64 PNG → "Red"; tool call →
34
+ # tool_calls; automatic cache: turn 2 read 4864 of 5110 tokens. Docs say
35
+ # thinking can't be turned off, though thinking:disabled / effort none were
36
+ # accepted and returned no reasoning — not exposed. max_tokens 1048577 isn't
37
+ # rejected (proves nothing); output stays at the official 131072 default.
38
+ # prompt_cache_options.ttl '1h' is documented and accepted, but usage never
39
+ # reports a TTL bucket, so 5m stays the only preset. The sibling
40
+ # kimi-k3.1-pro-highspeed is on the docs page but 404s for this account —
41
+ # add after a probe by someone with access.
42
+ - id: kimi-k3.1-pro
43
+ displayName: Kimi K3.1 Pro
44
+ maxOutputTokens: 131072
45
+ contextWindow: 272000
46
+ maxContextWindow: 1048576
47
+ compressAt: 0.9
48
+ capabilities:
49
+ # Video input exists upstream; Halo has no video path (see K3).
50
+ image: true
51
+ video: false
52
+ audio: false
53
+ promptCaching:
54
+ default: 5m
55
+ ttlPresets:
56
+ - { value: 5m, label: 5min }
57
+ thinking:
58
+ # Always on server-side; same top-level reasoning_effort as K3.
59
+ defaultEnabled: true
60
+ default: high
61
+ effortPresets:
62
+ - { value: low, label: Low }
63
+ - { value: high, label: High }
64
+ - { value: max, label: Max }
65
+
28
66
  - id: kimi-k3
29
67
  displayName: Kimi K3
30
68
  # Official default output cap; the model can go up to 1M but we don't max out.
@@ -1,12 +1,12 @@
1
1
  id: minimax
2
2
  runtime: minimax
3
- revision: 2026101002
3
+ revision: 2026101901
4
4
  displayName: MiniMax
5
5
  displayName_zh: MiniMax
6
- description: MiniMax M3 / M2.7 family via the Anthropic-compatible Messages API
7
- description_zh: MiniMax M3 / M2.7 系列,通过 Anthropic 兼容的 Messages API 调用
6
+ description: MiniMax M3.1 / M3 / M2.7 family via the Anthropic-compatible Messages API
7
+ description_zh: MiniMax M3.1 / M3 / M2.7 系列,通过 Anthropic 兼容的 Messages API 调用
8
8
  defaultEndpoint: https://api.minimaxi.com/anthropic
9
- defaultModelId: MiniMax-M3
9
+ defaultModelId: MiniMax-M3.1-Flash
10
10
 
11
11
  secrets:
12
12
  - key: api_key
@@ -38,6 +38,37 @@ secrets:
38
38
  # observed to truncate the run with stop=max_tokens before any thinking
39
39
  # completes — leaving it out of the preset list. medium/high are safe.
40
40
  models:
41
+ # MiniMax-M3.1-Flash (listed 2026-09-16, platform.minimaxi.com/docs/guides/models-intro
42
+ # + /api-reference/text-anthropic-api): 1,000,000 context, native multimodal.
43
+ # Live probe 2026-10-19 on /anthropic: plain, effort low / medium / high /
44
+ # xhigh / max all 200 (bogus value 400s with "allowed: low, medium, high,
45
+ # xhigh, max"); thinking:{type:'adaptive'} 200; thinking:{type:'disabled'}
46
+ # 400 ("requires adaptive thinking") — thinking can't be switched off, and
47
+ # omitting it leaves it on, so Halo's "off" (field omitted) is safe. Red PNG
48
+ # → "Red"; tool_use OK; max_tokens 524288 OK, 524289 → 400, so the hard cap
49
+ # is 524288 — kept at 131072 like M3. Halo's minimax-agent only sends
50
+ # thinking:{type:'adaptive'} (no output_config.effort), so the API default
51
+ # (max) applies; the doc's effort levels aren't exposed until the runtime
52
+ # sends them. Caching is passive: cache_read_input_tokens rose on turn 2
53
+ # with or without cache_control, cache_creation stayed 0 and `ttl:'1h'`
54
+ # made no difference — no promptCaching key, as for M3.
55
+ - id: MiniMax-M3.1-Flash
56
+ displayName: MiniMax M3.1 Flash
57
+ maxOutputTokens: 131072
58
+ contextWindow: 272000
59
+ maxContextWindow: 1000000
60
+ compressAt: 0.9
61
+ capabilities:
62
+ image: true
63
+ video: false
64
+ audio: false
65
+ thinking:
66
+ mode: adaptive
67
+ defaultEnabled: true
68
+ default: adaptive
69
+ effortPresets:
70
+ - { value: adaptive, label: Adaptive }
71
+
41
72
  - id: MiniMax-M3
42
73
  displayName: MiniMax M3
43
74
  # Official recommended value; hard cap is 524288 but we don't max out.