@maudecode/talaria-web-contracts 1.18.0 → 1.20.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.
Files changed (95) hide show
  1. package/dist/context-detail.d.ts +75 -0
  2. package/dist/context-detail.js +18 -0
  3. package/dist/context-detail.js.map +1 -0
  4. package/dist/gateway-session.d.ts +475 -0
  5. package/dist/gateway-session.js +106 -0
  6. package/dist/gateway-session.js.map +1 -0
  7. package/dist/index.d.ts +4 -0
  8. package/dist/index.js +4 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/openapi.js +4 -0
  11. package/dist/openapi.js.map +1 -1
  12. package/dist/router.d.ts +5503 -251
  13. package/dist/routes/automation.d.ts +100 -18
  14. package/dist/routes/automation.js +7 -4
  15. package/dist/routes/automation.js.map +1 -1
  16. package/dist/routes/chat.d.ts +1605 -47
  17. package/dist/routes/chat.js +7 -2
  18. package/dist/routes/chat.js.map +1 -1
  19. package/dist/routes/core.d.ts +15 -4
  20. package/dist/routes/core.js +2 -2
  21. package/dist/routes/core.js.map +1 -1
  22. package/dist/routes/git.d.ts +9 -0
  23. package/dist/routes/git.js +6 -1
  24. package/dist/routes/git.js.map +1 -1
  25. package/dist/routes/raw.js +10 -6
  26. package/dist/routes/raw.js.map +1 -1
  27. package/dist/routes/sessions.d.ts +3189 -181
  28. package/dist/routes/sessions.js +24 -7
  29. package/dist/routes/sessions.js.map +1 -1
  30. package/dist/routes/settings.d.ts +445 -11
  31. package/dist/routes/settings.js +5 -4
  32. package/dist/routes/settings.js.map +1 -1
  33. package/dist/routes/tools.d.ts +945 -34
  34. package/dist/routes/tools.js +75 -8
  35. package/dist/routes/tools.js.map +1 -1
  36. package/dist/routes/workspaces.d.ts +4 -4
  37. package/dist/run-status.d.ts +39 -0
  38. package/dist/run-status.js +13 -0
  39. package/dist/run-status.js.map +1 -0
  40. package/dist/sidecar/methods.d.ts +1906 -52
  41. package/dist/sidecar/methods.js +9 -2
  42. package/dist/sidecar/methods.js.map +1 -1
  43. package/dist/sidecar/namespaces.d.ts +2421 -54
  44. package/dist/sidecar/namespaces.js +390 -36
  45. package/dist/sidecar/namespaces.js.map +1 -1
  46. package/dist/sidecar/rpc.d.ts +1 -0
  47. package/dist/sidecar/rpc.js +2 -0
  48. package/dist/sidecar/rpc.js.map +1 -1
  49. package/dist/sidecar/runtime.d.ts +74 -0
  50. package/dist/sidecar/runtime.js +29 -0
  51. package/dist/sidecar/runtime.js.map +1 -1
  52. package/dist/sidecar/version.d.ts +1 -1
  53. package/dist/sidecar/version.js +1 -1
  54. package/dist/speed.d.ts +14 -0
  55. package/dist/speed.js +6 -0
  56. package/dist/speed.js.map +1 -0
  57. package/dist/sse.d.ts +868 -5
  58. package/dist/sse.js +30 -7
  59. package/dist/sse.js.map +1 -1
  60. package/dist/transcribe-stream.d.ts +34 -0
  61. package/dist/transcribe-stream.js +23 -0
  62. package/dist/transcribe-stream.js.map +1 -0
  63. package/dist/views.d.ts +2627 -176
  64. package/dist/views.js +321 -52
  65. package/dist/views.js.map +1 -1
  66. package/fixtures/sidecar/aux.json +142 -0
  67. package/fixtures/sidecar/chat.json +28 -0
  68. package/fixtures/sidecar/checkpoints.json +12 -7
  69. package/fixtures/sidecar/commands.json +216 -108
  70. package/fixtures/sidecar/config.json +15 -0
  71. package/fixtures/sidecar/connectors.json +218 -0
  72. package/fixtures/sidecar/context-detail.json +77 -0
  73. package/fixtures/sidecar/cron.json +1004 -32
  74. package/fixtures/sidecar/dashboard_plugins.json +59 -0
  75. package/fixtures/sidecar/gateway.json +202 -0
  76. package/fixtures/sidecar/goals.json +5 -3
  77. package/fixtures/sidecar/kanban.json +139 -49
  78. package/fixtures/sidecar/memory.json +50 -0
  79. package/fixtures/sidecar/models.json +122 -0
  80. package/fixtures/sidecar/personalities.json +92 -0
  81. package/fixtures/sidecar/plugin-catalog.json +4 -0
  82. package/fixtures/sidecar/plugins.json +171 -27
  83. package/fixtures/sidecar/process.json +63 -0
  84. package/fixtures/sidecar/profiles.json +2 -0
  85. package/fixtures/sidecar/providers.json +14 -1
  86. package/fixtures/sidecar/rpc.json +39 -1
  87. package/fixtures/sidecar/runtime.json +130 -14
  88. package/fixtures/sidecar/skills.json +256 -13
  89. package/fixtures/sidecar/state_db.json +29 -2
  90. package/fixtures/sidecar/stt.json +62 -1
  91. package/fixtures/sidecar/text.json +20 -2
  92. package/fixtures/sidecar/toolsets.json +468 -0
  93. package/fixtures/sidecar/usage.json +22 -2
  94. package/fixtures/sidecar/write_approval.json +98 -0
  95. package/package.json +1 -1
@@ -60,7 +60,10 @@
60
60
  "session_id": "cli-1"
61
61
  },
62
62
  "result": {
63
- "ok": true
63
+ "ok": true,
64
+ "deleted_ids": [
65
+ "cli-1"
66
+ ]
64
67
  }
65
68
  },
66
69
  {
@@ -69,7 +72,31 @@
69
72
  "session_id": "missing"
70
73
  },
71
74
  "result": {
72
- "ok": true
75
+ "ok": true,
76
+ "deleted_ids": [
77
+ "missing"
78
+ ]
79
+ }
80
+ },
81
+ {
82
+ "params": {
83
+ "profile_home": "<home>",
84
+ "session_id": "cli-root",
85
+ "include_compression_lineage": true
86
+ },
87
+ "result": {
88
+ "ok": false,
89
+ "refused": "runtime_history_unsupported"
90
+ }
91
+ }
92
+ ],
93
+ "state_db.prune_advice": [
94
+ {
95
+ "params": {
96
+ "profile_home": "<home>"
97
+ },
98
+ "result": {
99
+ "advice": null
73
100
  }
74
101
  }
75
102
  ]
@@ -6,7 +6,68 @@
6
6
  },
7
7
  "result": {
8
8
  "available": false,
9
- "provider": "none"
9
+ "provider": "none",
10
+ "streaming": false,
11
+ "warm_supported": false
12
+ }
13
+ }
14
+ ],
15
+ "stt.warm": [
16
+ {
17
+ "params": {
18
+ "profile_home": "<home>"
19
+ },
20
+ "result": {
21
+ "provider": "none",
22
+ "warmed": false,
23
+ "action": "noop"
24
+ }
25
+ }
26
+ ],
27
+ "stt.stream": [
28
+ {
29
+ "params": {
30
+ "profile_home": "<home>",
31
+ "sample_rate": 48000
32
+ },
33
+ "result": {
34
+ "transcript": "final 3200 bytes",
35
+ "filtered": false,
36
+ "provider": "fake-live"
37
+ },
38
+ "stream": [
39
+ {
40
+ "event": "ready",
41
+ "data": {
42
+ "stream_id": "q0N8m3V1xY2zA4bC5dE6fG"
43
+ }
44
+ },
45
+ {
46
+ "event": "partial",
47
+ "data": {
48
+ "text": "heard 3200 bytes"
49
+ }
50
+ }
51
+ ]
52
+ }
53
+ ],
54
+ "stt.stream_audio": [
55
+ {
56
+ "params": {
57
+ "stream_id": "q0N8m3V1xY2zA4bC5dE6fG",
58
+ "audio_b64": "EAAQABAAEAA="
59
+ },
60
+ "result": {
61
+ "ok": true
62
+ }
63
+ },
64
+ {
65
+ "params": {
66
+ "stream_id": "q0N8m3V1xY2zA4bC5dE6fG",
67
+ "end": true
68
+ },
69
+ "result": {
70
+ "ok": true
10
71
  }
11
72
  }
12
73
  ]
@@ -5,11 +5,11 @@
5
5
  "profile_home": "<home>"
6
6
  },
7
7
  "result": {
8
- "client_tag": "client=hermes-client-v0.21.6",
8
+ "client_tag": "client=hermes-client-v0.22.1",
9
9
  "conversation_tag": null,
10
10
  "tags": [
11
11
  "product=hermes-agent",
12
- "client=hermes-client-v0.21.6"
12
+ "client=hermes-client-v0.22.1"
13
13
  ]
14
14
  }
15
15
  }
@@ -27,5 +27,23 @@
27
27
  "supports_vision": true
28
28
  }
29
29
  }
30
+ ],
31
+ "text.spoken": [
32
+ {
33
+ "params": {
34
+ "text": "Saved peyton-sample-20260922.wav to /tmp/out/9f2c1e7a-3b4d-4c2e-8f1a-0b9e2d7c6a51.json, see https://example.com/a/b?x=1 and commit 4bf46b7c8."
35
+ },
36
+ "result": {
37
+ "spoken_text": "Saved to, see and commit 4bf46b7c8."
38
+ }
39
+ },
40
+ {
41
+ "params": {
42
+ "text": "Meet Ana on 2026-10-14 at ana@example.com; the ratio is 3:2, a well-known plan."
43
+ },
44
+ "result": {
45
+ "spoken_text": "Meet Ana on 2026-10-14 at ana@example.com; the ratio is 3:2, a well-known plan."
46
+ }
47
+ }
30
48
  ]
31
49
  }
@@ -0,0 +1,468 @@
1
+ {
2
+ "toolsets.catalog": [
3
+ {
4
+ "params": {
5
+ "profile_home": "<home>",
6
+ "enabled_toolsets": null
7
+ },
8
+ "result": {
9
+ "toolsets": [
10
+ {
11
+ "name": "a2a",
12
+ "description": "Plugin toolset: a2a",
13
+ "available": false,
14
+ "selected": false,
15
+ "unavailable_reason": "unavailable"
16
+ },
17
+ {
18
+ "name": "bot_room",
19
+ "description": "Verified text-only Group Chat turn capabilities",
20
+ "available": false,
21
+ "selected": false,
22
+ "unavailable_reason": "unavailable"
23
+ },
24
+ {
25
+ "name": "browser",
26
+ "description": "Browser automation for web interaction (navigate, click, type, scroll, iframes, hold-click)",
27
+ "available": true,
28
+ "selected": true,
29
+ "unavailable_reason": null
30
+ },
31
+ {
32
+ "name": "browser-cdp",
33
+ "description": "Plugin toolset: browser-cdp",
34
+ "available": false,
35
+ "selected": false,
36
+ "unavailable_reason": "unavailable"
37
+ },
38
+ {
39
+ "name": "browser-use",
40
+ "description": "Plugin toolset: browser-use",
41
+ "available": true,
42
+ "selected": false,
43
+ "unavailable_reason": null
44
+ },
45
+ {
46
+ "name": "catalog",
47
+ "description": "Desktop catalog plugin/skill install requests through the approval card (GUI sessions only)",
48
+ "available": false,
49
+ "selected": false,
50
+ "unavailable_reason": "unavailable"
51
+ },
52
+ {
53
+ "name": "clarify",
54
+ "description": "Ask the user clarifying questions (multiple-choice or open-ended)",
55
+ "available": true,
56
+ "selected": true,
57
+ "unavailable_reason": null
58
+ },
59
+ {
60
+ "name": "code_execution",
61
+ "description": "Run Python scripts that call tools programmatically (reduces LLM round trips)",
62
+ "available": true,
63
+ "selected": true,
64
+ "unavailable_reason": null
65
+ },
66
+ {
67
+ "name": "coding",
68
+ "description": "Coding-focused toolset: files, terminal, search, web docs, skills, todo, delegate, vision, browser",
69
+ "available": true,
70
+ "selected": false,
71
+ "unavailable_reason": null
72
+ },
73
+ {
74
+ "name": "computer_use",
75
+ "description": "Background desktop control via cua-driver (macOS/Windows/Linux) — screenshots, mouse, keyboard, scroll, drag. Does NOT steal the user's cursor or keyboard focus. Works with any tool-capable model.",
76
+ "available": false,
77
+ "selected": true,
78
+ "unavailable_reason": "unavailable"
79
+ },
80
+ {
81
+ "name": "connections",
82
+ "description": "Remote connector discovery, execution, and account authorization",
83
+ "available": true,
84
+ "selected": true,
85
+ "unavailable_reason": null
86
+ },
87
+ {
88
+ "name": "context_engine",
89
+ "description": "Runtime tools exposed by the active context engine",
90
+ "available": false,
91
+ "selected": false,
92
+ "unavailable_reason": "unavailable"
93
+ },
94
+ {
95
+ "name": "cronjob",
96
+ "description": "Cronjob management tool - create, list, update, pause, resume, remove, and trigger scheduled tasks",
97
+ "available": true,
98
+ "selected": true,
99
+ "unavailable_reason": null
100
+ },
101
+ {
102
+ "name": "debugging",
103
+ "description": "Debugging and troubleshooting toolkit",
104
+ "available": true,
105
+ "selected": false,
106
+ "unavailable_reason": null
107
+ },
108
+ {
109
+ "name": "delegation",
110
+ "description": "Spawn subagents with isolated context for complex subtasks",
111
+ "available": true,
112
+ "selected": true,
113
+ "unavailable_reason": null
114
+ },
115
+ {
116
+ "name": "desktop_ui",
117
+ "description": "Desktop GUI affordances — in-app terminal/browser panes, pane focus, reactions, appearance (GUI sessions only)",
118
+ "available": true,
119
+ "selected": false,
120
+ "unavailable_reason": null
121
+ },
122
+ {
123
+ "name": "discord",
124
+ "description": "Discord read and participate tools (fetch messages, search members, create threads)",
125
+ "available": false,
126
+ "selected": false,
127
+ "unavailable_reason": "unavailable"
128
+ },
129
+ {
130
+ "name": "discord_admin",
131
+ "description": "Discord server management (list channels/roles, pin messages, assign roles)",
132
+ "available": false,
133
+ "selected": false,
134
+ "unavailable_reason": "unavailable"
135
+ },
136
+ {
137
+ "name": "feishu_doc",
138
+ "description": "Read Feishu/Lark document content",
139
+ "available": false,
140
+ "selected": false,
141
+ "unavailable_reason": "unavailable"
142
+ },
143
+ {
144
+ "name": "feishu_drive",
145
+ "description": "Feishu/Lark document comment operations (list, reply, add)",
146
+ "available": false,
147
+ "selected": false,
148
+ "unavailable_reason": "unavailable"
149
+ },
150
+ {
151
+ "name": "file",
152
+ "description": "File manipulation tools: read, write, patch (with fuzzy matching), and search (content + files)",
153
+ "available": true,
154
+ "selected": true,
155
+ "unavailable_reason": null
156
+ },
157
+ {
158
+ "name": "hermes-acp",
159
+ "description": "Editor integration (VS Code, Zed, JetBrains) — coding-focused tools without messaging, audio, or clarify UI",
160
+ "available": true,
161
+ "selected": false,
162
+ "unavailable_reason": null
163
+ },
164
+ {
165
+ "name": "hermes-api-server",
166
+ "description": "OpenAI-compatible API server — full agent tools accessible via HTTP (no interactive UI tools like clarify or send_message)",
167
+ "available": true,
168
+ "selected": false,
169
+ "unavailable_reason": null
170
+ },
171
+ {
172
+ "name": "hermes-bluebubbles",
173
+ "description": "BlueBubbles iMessage bot toolset - Apple iMessage via local BlueBubbles server",
174
+ "available": true,
175
+ "selected": false,
176
+ "unavailable_reason": null
177
+ },
178
+ {
179
+ "name": "hermes-cli",
180
+ "description": "Full interactive CLI toolset - all default tools plus cronjob management",
181
+ "available": true,
182
+ "selected": false,
183
+ "unavailable_reason": null
184
+ },
185
+ {
186
+ "name": "hermes-cron",
187
+ "description": "Default cron toolset - same core tools as hermes-cli; gated by `hermes tools`",
188
+ "available": true,
189
+ "selected": false,
190
+ "unavailable_reason": null
191
+ },
192
+ {
193
+ "name": "hermes-dingtalk",
194
+ "description": "DingTalk bot toolset - enterprise messaging platform (full access)",
195
+ "available": true,
196
+ "selected": false,
197
+ "unavailable_reason": null
198
+ },
199
+ {
200
+ "name": "hermes-discord",
201
+ "description": "Discord bot toolset - full access (terminal has safety checks via dangerous command approval)",
202
+ "available": true,
203
+ "selected": false,
204
+ "unavailable_reason": null
205
+ },
206
+ {
207
+ "name": "hermes-email",
208
+ "description": "Email bot toolset - interact with Hermes via email (IMAP/SMTP)",
209
+ "available": true,
210
+ "selected": false,
211
+ "unavailable_reason": null
212
+ },
213
+ {
214
+ "name": "hermes-feishu",
215
+ "description": "Feishu/Lark bot toolset - enterprise messaging via Feishu/Lark (full access)",
216
+ "available": true,
217
+ "selected": false,
218
+ "unavailable_reason": null
219
+ },
220
+ {
221
+ "name": "hermes-gateway",
222
+ "description": "Gateway toolset - union of all messaging platform tools",
223
+ "available": true,
224
+ "selected": false,
225
+ "unavailable_reason": null
226
+ },
227
+ {
228
+ "name": "hermes-matrix",
229
+ "description": "Matrix bot toolset - decentralized encrypted messaging (full access)",
230
+ "available": true,
231
+ "selected": false,
232
+ "unavailable_reason": null
233
+ },
234
+ {
235
+ "name": "hermes-mattermost",
236
+ "description": "Mattermost bot toolset - self-hosted team messaging (full access)",
237
+ "available": true,
238
+ "selected": false,
239
+ "unavailable_reason": null
240
+ },
241
+ {
242
+ "name": "hermes-qqbot",
243
+ "description": "QQBot toolset - QQ messaging via Official Bot API v2 (full access)",
244
+ "available": true,
245
+ "selected": false,
246
+ "unavailable_reason": null
247
+ },
248
+ {
249
+ "name": "hermes-signal",
250
+ "description": "Signal bot toolset - encrypted messaging platform (full access)",
251
+ "available": true,
252
+ "selected": false,
253
+ "unavailable_reason": null
254
+ },
255
+ {
256
+ "name": "hermes-slack",
257
+ "description": "Slack bot toolset - full access for workspace use (terminal has safety checks)",
258
+ "available": true,
259
+ "selected": false,
260
+ "unavailable_reason": null
261
+ },
262
+ {
263
+ "name": "hermes-sms",
264
+ "description": "SMS bot toolset - interact with Hermes via SMS (Twilio)",
265
+ "available": true,
266
+ "selected": false,
267
+ "unavailable_reason": null
268
+ },
269
+ {
270
+ "name": "hermes-telegram",
271
+ "description": "Telegram bot toolset - full access for personal use (terminal has safety checks)",
272
+ "available": true,
273
+ "selected": false,
274
+ "unavailable_reason": null
275
+ },
276
+ {
277
+ "name": "hermes-webhook",
278
+ "description": "Webhook toolset - receive and process external webhook events",
279
+ "available": true,
280
+ "selected": false,
281
+ "unavailable_reason": null
282
+ },
283
+ {
284
+ "name": "hermes-wecom",
285
+ "description": "WeCom bot toolset - enterprise WeChat messaging (full access)",
286
+ "available": true,
287
+ "selected": false,
288
+ "unavailable_reason": null
289
+ },
290
+ {
291
+ "name": "hermes-wecom-callback",
292
+ "description": "WeCom callback toolset - enterprise self-built app messaging (full access)",
293
+ "available": true,
294
+ "selected": false,
295
+ "unavailable_reason": null
296
+ },
297
+ {
298
+ "name": "hermes-weixin",
299
+ "description": "Weixin bot toolset - personal WeChat messaging via iLink (full access)",
300
+ "available": true,
301
+ "selected": false,
302
+ "unavailable_reason": null
303
+ },
304
+ {
305
+ "name": "hermes-whatsapp",
306
+ "description": "WhatsApp bot toolset - similar to Telegram (personal messaging, more trusted)",
307
+ "available": true,
308
+ "selected": false,
309
+ "unavailable_reason": null
310
+ },
311
+ {
312
+ "name": "hermes-yuanbao",
313
+ "description": "Yuanbao Bot 元宝消息平台工具集 - 群信息、成员查询、私聊、贴纸表情",
314
+ "available": true,
315
+ "selected": false,
316
+ "unavailable_reason": null
317
+ },
318
+ {
319
+ "name": "image_gen",
320
+ "description": "Creative generation tools (images)",
321
+ "available": false,
322
+ "selected": true,
323
+ "unavailable_reason": "unavailable"
324
+ },
325
+ {
326
+ "name": "kanban",
327
+ "description": "Kanban multi-agent coordination — only active when the agent is spawned by the kanban dispatcher (HERMES_KANBAN_TASK env set). The dispatcher runs inside the gateway by default; see `kanban.dispatch_in_gateway` in config.yaml. Lets workers mark tasks done with structured handoffs, enter first-class review (request_review — not a block), return review changes, block for human input, heartbeat during long ops, comment on threads, attach files, and (for orchestrators) list, unblock, and fan out tasks.",
328
+ "available": true,
329
+ "selected": false,
330
+ "unavailable_reason": null
331
+ },
332
+ {
333
+ "name": "memory",
334
+ "description": "Persistent memory across sessions (personal notes + user profile)",
335
+ "available": true,
336
+ "selected": true,
337
+ "unavailable_reason": null
338
+ },
339
+ {
340
+ "name": "onboarding",
341
+ "description": "First-run onboarding cards; folded in only for the onboarding chat (tui_gateway/methods_onboarding.py)",
342
+ "available": false,
343
+ "selected": false,
344
+ "unavailable_reason": "unavailable"
345
+ },
346
+ {
347
+ "name": "project",
348
+ "description": "Desktop Projects — create/switch named workspaces (GUI sessions only)",
349
+ "available": true,
350
+ "selected": false,
351
+ "unavailable_reason": null
352
+ },
353
+ {
354
+ "name": "safe",
355
+ "description": "Safe toolkit without terminal access",
356
+ "available": true,
357
+ "selected": false,
358
+ "unavailable_reason": null
359
+ },
360
+ {
361
+ "name": "search",
362
+ "description": "Web search only (no content extraction/scraping)",
363
+ "available": true,
364
+ "selected": false,
365
+ "unavailable_reason": null
366
+ },
367
+ {
368
+ "name": "session_search",
369
+ "description": "Search and recall past conversations with summarization",
370
+ "available": true,
371
+ "selected": true,
372
+ "unavailable_reason": null
373
+ },
374
+ {
375
+ "name": "skills",
376
+ "description": "Access, create, edit, and manage skill documents with specialized instructions and knowledge",
377
+ "available": true,
378
+ "selected": true,
379
+ "unavailable_reason": null
380
+ },
381
+ {
382
+ "name": "terminal",
383
+ "description": "Terminal/command execution and process management tools",
384
+ "available": true,
385
+ "selected": true,
386
+ "unavailable_reason": null
387
+ },
388
+ {
389
+ "name": "todo",
390
+ "description": "Task planning and tracking for multi-step work",
391
+ "available": true,
392
+ "selected": true,
393
+ "unavailable_reason": null
394
+ },
395
+ {
396
+ "name": "tts",
397
+ "description": "Text-to-speech: convert text to audio with Edge TTS (free), ElevenLabs, OpenAI, or xAI",
398
+ "available": false,
399
+ "selected": true,
400
+ "unavailable_reason": "unavailable"
401
+ },
402
+ {
403
+ "name": "video",
404
+ "description": "Video analysis and understanding tools (opt-in, not in default toolset)",
405
+ "available": false,
406
+ "selected": false,
407
+ "unavailable_reason": "unavailable"
408
+ },
409
+ {
410
+ "name": "video_gen",
411
+ "description": "Video generation tools. Single ``video_generate`` tool covers text-to-video (prompt only) and image-to-video (prompt + image_url), plus reference-to-video. Provider-specific edit/extend workflows may appear as separate tools. Configure via ``hermes tools`` → Video Generation.",
412
+ "available": false,
413
+ "selected": false,
414
+ "unavailable_reason": "unavailable"
415
+ },
416
+ {
417
+ "name": "vision",
418
+ "description": "Image analysis and vision tools",
419
+ "available": false,
420
+ "selected": true,
421
+ "unavailable_reason": "unavailable"
422
+ },
423
+ {
424
+ "name": "web",
425
+ "description": "Web research and content extraction tools",
426
+ "available": true,
427
+ "selected": true,
428
+ "unavailable_reason": null
429
+ },
430
+ {
431
+ "name": "x_search",
432
+ "description": "Search X (Twitter) posts and threads via xAI's built-in x_search Responses tool. Read-only public X discovery; use the xurl skill for authenticated X API reads and account actions. Available when xAI credentials are configured (SuperGrok OAuth or XAI_API_KEY). Off by default; enable in `hermes tools` → X (Twitter) Search.",
433
+ "available": false,
434
+ "selected": false,
435
+ "unavailable_reason": "unavailable"
436
+ },
437
+ {
438
+ "name": "yuanbao",
439
+ "description": "Yuanbao platform tools - group info, member queries, DM, stickers",
440
+ "available": false,
441
+ "selected": false,
442
+ "unavailable_reason": "unavailable"
443
+ }
444
+ ],
445
+ "selected_toolsets": [
446
+ "browser",
447
+ "clarify",
448
+ "code_execution",
449
+ "computer_use",
450
+ "connections",
451
+ "cronjob",
452
+ "delegation",
453
+ "file",
454
+ "image_gen",
455
+ "memory",
456
+ "session_search",
457
+ "skills",
458
+ "terminal",
459
+ "todo",
460
+ "tts",
461
+ "vision",
462
+ "web"
463
+ ],
464
+ "using_defaults": true
465
+ }
466
+ }
467
+ ]
468
+ }
@@ -17,7 +17,8 @@
17
17
  "provider": "deepseek"
18
18
  },
19
19
  "result": {
20
- "entries": []
20
+ "entries": [],
21
+ "has_api_key": false
21
22
  }
22
23
  }
23
24
  ],
@@ -27,7 +28,8 @@
27
28
  "profile_home": "<home>"
28
29
  },
29
30
  "result": {
30
- "providers": []
31
+ "providers": [],
32
+ "keys": {}
31
33
  }
32
34
  }
33
35
  ],
@@ -47,5 +49,23 @@
47
49
  "windows": []
48
50
  }
49
51
  }
52
+ ],
53
+ "usage.limits": [
54
+ {
55
+ "params": {
56
+ "profile_home": "<home>",
57
+ "providers": [
58
+ {
59
+ "slug": "deepseek",
60
+ "models": [
61
+ "deepseek-chat"
62
+ ]
63
+ }
64
+ ]
65
+ },
66
+ "result": {
67
+ "limits": {}
68
+ }
69
+ }
50
70
  ]
51
71
  }