@psnext/slingcli 2.5.20260623-1 → 2.5.20260629-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 (108) hide show
  1. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +5 -2
  2. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js +2 -1
  3. package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js +1 -1
  4. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  5. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +51 -47
  6. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +9 -3
  7. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +9 -6
  8. package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare.js +0 -18
  9. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +6 -3
  10. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +6 -3
  11. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +1 -1
  12. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +15 -25
  13. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +30 -26
  14. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +189 -204
  15. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +24 -21
  16. package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js +2 -5
  17. package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js +11 -2
  18. package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.js +2 -2
  19. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +19 -4
  20. package/node_modules/@earendil-works/pi-ai/dist/compat.js +81 -7
  21. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +45 -0
  22. package/node_modules/@earendil-works/pi-ai/dist/images-models.js +7 -3
  23. package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -0
  24. package/node_modules/@earendil-works/pi-ai/dist/legacy-api-aliases.js +49 -0
  25. package/node_modules/@earendil-works/pi-ai/dist/models.js +7 -3
  26. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +25 -8
  27. package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js +3 -3
  28. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js +0 -34
  29. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js +2 -0
  30. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js +2 -2
  31. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js +21 -9
  32. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.js +85 -0
  33. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.js +2 -2
  34. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js +13 -13
  35. package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js +2 -2
  36. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js +1 -20
  37. package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js +19 -1
  38. package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js +72 -0
  39. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js +4 -4
  40. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js +4 -4
  41. package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js +19 -0
  42. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js +11 -11
  43. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js +15 -15
  44. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +310 -39
  45. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js +37 -18
  46. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +349 -77
  47. package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js +7 -0
  48. package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js +6 -6
  49. package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js +6 -6
  50. package/node_modules/@earendil-works/pi-ai/dist/utils/estimate.js +95 -0
  51. package/node_modules/@earendil-works/pi-ai/dist/utils/headers.js +10 -0
  52. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +2 -2
  53. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +86 -0
  54. package/node_modules/@earendil-works/pi-ai/package.json +1 -33
  55. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js +13 -25
  56. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +15 -30
  57. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.js +6 -3
  58. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js +5 -1
  59. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +2 -4
  60. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js +1 -1
  61. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +2 -0
  62. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +9 -5
  63. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js +11 -0
  64. package/node_modules/@earendil-works/pi-coding-agent/dist/core/timings.js +24 -14
  65. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js +12 -25
  66. package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +20 -4
  67. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.js +9 -9
  68. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.js +12 -3
  69. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector.js +14 -3
  70. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.js +1 -1
  71. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +37 -25
  72. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js +14 -0
  73. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +16 -0
  74. package/node_modules/@earendil-works/pi-coding-agent/dist/rpc-entry.js +10 -0
  75. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-convert.js +21 -15
  76. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-process.js +83 -0
  77. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/mime.js +41 -0
  78. package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +12 -12
  79. package/node_modules/@earendil-works/pi-coding-agent/package.json +8 -5
  80. package/node_modules/@earendil-works/pi-orchestrator/dist/cli.js +136 -0
  81. package/node_modules/@earendil-works/pi-orchestrator/dist/config.js +55 -0
  82. package/node_modules/@earendil-works/pi-orchestrator/dist/handler.js +105 -0
  83. package/node_modules/@earendil-works/pi-orchestrator/dist/index.js +11 -0
  84. package/node_modules/@earendil-works/pi-orchestrator/dist/ipc/client.js +56 -0
  85. package/node_modules/@earendil-works/pi-orchestrator/dist/ipc/protocol.js +12 -0
  86. package/node_modules/@earendil-works/pi-orchestrator/dist/ipc/server.js +145 -0
  87. package/node_modules/@earendil-works/pi-orchestrator/dist/radius.js +365 -0
  88. package/node_modules/@earendil-works/pi-orchestrator/dist/rpc-process.js +168 -0
  89. package/node_modules/@earendil-works/pi-orchestrator/dist/serve.js +70 -0
  90. package/node_modules/@earendil-works/pi-orchestrator/dist/storage.js +58 -0
  91. package/node_modules/@earendil-works/pi-orchestrator/dist/supervisor.js +290 -0
  92. package/node_modules/@earendil-works/pi-orchestrator/dist/types.js +2 -0
  93. package/node_modules/@earendil-works/pi-orchestrator/package.json +45 -0
  94. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +3 -0
  95. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  96. package/node_modules/@types/node/README.md +1 -1
  97. package/node_modules/@types/node/diagnostics_channel.d.ts +17 -20
  98. package/node_modules/@types/node/package.json +2 -2
  99. package/node_modules/brace-expansion/dist/commonjs/index.js +24 -14
  100. package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
  101. package/node_modules/brace-expansion/dist/esm/index.js +24 -14
  102. package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
  103. package/node_modules/brace-expansion/package.json +2 -2
  104. package/node_modules/google-auth-library/build/src/auth/googleauth.js +1 -1
  105. package/node_modules/google-auth-library/package.json +4 -4
  106. package/package.json +7 -6
  107. package/slingshot/index.js +302 -304
  108. package/node_modules/@earendil-works/pi-ai/dist/api-registry.js +0 -44
@@ -7,7 +7,7 @@ export const OPENCODE_GO_MODELS = {
7
7
  api: "openai-completions",
8
8
  provider: "opencode-go",
9
9
  baseUrl: "https://opencode.ai/zen/go/v1",
10
- compat: { "maxTokensField": "max_tokens", "requiresReasoningContentOnAssistantMessages": true, "thinkingFormat": "deepseek" },
10
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens", "requiresReasoningContentOnAssistantMessages": true, "thinkingFormat": "deepseek" },
11
11
  reasoning: true,
12
12
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "max" },
13
13
  input: ["text"],
@@ -26,7 +26,7 @@ export const OPENCODE_GO_MODELS = {
26
26
  api: "openai-completions",
27
27
  provider: "opencode-go",
28
28
  baseUrl: "https://opencode.ai/zen/go/v1",
29
- compat: { "maxTokensField": "max_tokens", "requiresReasoningContentOnAssistantMessages": true, "thinkingFormat": "deepseek" },
29
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens", "requiresReasoningContentOnAssistantMessages": true, "thinkingFormat": "deepseek" },
30
30
  reasoning: true,
31
31
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "max" },
32
32
  input: ["text"],
@@ -45,7 +45,7 @@ export const OPENCODE_GO_MODELS = {
45
45
  api: "openai-completions",
46
46
  provider: "opencode-go",
47
47
  baseUrl: "https://opencode.ai/zen/go/v1",
48
- compat: { "maxTokensField": "max_tokens" },
48
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
49
49
  reasoning: true,
50
50
  input: ["text"],
51
51
  cost: {
@@ -63,7 +63,7 @@ export const OPENCODE_GO_MODELS = {
63
63
  api: "openai-completions",
64
64
  provider: "opencode-go",
65
65
  baseUrl: "https://opencode.ai/zen/go/v1",
66
- compat: { "maxTokensField": "max_tokens" },
66
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
67
67
  reasoning: true,
68
68
  thinkingLevelMap: { "off": null, "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "max" },
69
69
  input: ["text"],
@@ -82,7 +82,7 @@ export const OPENCODE_GO_MODELS = {
82
82
  api: "openai-completions",
83
83
  provider: "opencode-go",
84
84
  baseUrl: "https://opencode.ai/zen/go/v1",
85
- compat: { "thinkingFormat": "deepseek", "supportsReasoningEffort": false, "maxTokensField": "max_tokens", "supportsLongCacheRetention": false },
85
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "thinkingFormat": "deepseek", "supportsReasoningEffort": false, "maxTokensField": "max_tokens", "supportsLongCacheRetention": false },
86
86
  reasoning: true,
87
87
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null },
88
88
  input: ["text", "image"],
@@ -101,7 +101,7 @@ export const OPENCODE_GO_MODELS = {
101
101
  api: "openai-completions",
102
102
  provider: "opencode-go",
103
103
  baseUrl: "https://opencode.ai/zen/go/v1",
104
- compat: { "maxTokensField": "max_tokens" },
104
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
105
105
  reasoning: true,
106
106
  input: ["text", "image"],
107
107
  cost: {
@@ -119,7 +119,7 @@ export const OPENCODE_GO_MODELS = {
119
119
  api: "openai-completions",
120
120
  provider: "opencode-go",
121
121
  baseUrl: "https://opencode.ai/zen/go/v1",
122
- compat: { "maxTokensField": "max_tokens" },
122
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
123
123
  reasoning: true,
124
124
  input: ["text", "image"],
125
125
  cost: {
@@ -137,7 +137,7 @@ export const OPENCODE_GO_MODELS = {
137
137
  api: "openai-completions",
138
138
  provider: "opencode-go",
139
139
  baseUrl: "https://opencode.ai/zen/go/v1",
140
- compat: { "maxTokensField": "max_tokens" },
140
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
141
141
  reasoning: true,
142
142
  input: ["text"],
143
143
  cost: {
@@ -155,7 +155,7 @@ export const OPENCODE_GO_MODELS = {
155
155
  api: "openai-completions",
156
156
  provider: "opencode-go",
157
157
  baseUrl: "https://opencode.ai/zen/go/v1",
158
- compat: { "maxTokensField": "max_tokens" },
158
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
159
159
  reasoning: true,
160
160
  input: ["text"],
161
161
  cost: {
@@ -181,7 +181,7 @@ export const OPENCODE_GO_MODELS = {
181
181
  cacheRead: 0.02,
182
182
  cacheWrite: 0,
183
183
  },
184
- contextWindow: 512000,
184
+ contextWindow: 1000000,
185
185
  maxTokens: 131072,
186
186
  },
187
187
  "qwen3.6-plus": {
@@ -190,7 +190,7 @@ export const OPENCODE_GO_MODELS = {
190
190
  api: "openai-completions",
191
191
  provider: "opencode-go",
192
192
  baseUrl: "https://opencode.ai/zen/go/v1",
193
- compat: { "thinkingFormat": "qwen", "maxTokensField": "max_tokens" },
193
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "thinkingFormat": "qwen", "maxTokensField": "max_tokens" },
194
194
  reasoning: true,
195
195
  input: ["text", "image"],
196
196
  cost: {
@@ -7,7 +7,7 @@ export const OPENCODE_MODELS = {
7
7
  api: "openai-completions",
8
8
  provider: "opencode",
9
9
  baseUrl: "https://opencode.ai/zen/v1",
10
- compat: { "maxTokensField": "max_tokens" },
10
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
11
11
  reasoning: true,
12
12
  input: ["text"],
13
13
  cost: {
@@ -185,7 +185,7 @@ export const OPENCODE_MODELS = {
185
185
  api: "openai-completions",
186
186
  provider: "opencode",
187
187
  baseUrl: "https://opencode.ai/zen/v1",
188
- compat: { "maxTokensField": "max_tokens", "supportsLongCacheRetention": false, "requiresReasoningContentOnAssistantMessages": true },
188
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens", "supportsLongCacheRetention": false, "requiresReasoningContentOnAssistantMessages": true },
189
189
  reasoning: true,
190
190
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "max" },
191
191
  input: ["text"],
@@ -204,7 +204,7 @@ export const OPENCODE_MODELS = {
204
204
  api: "openai-completions",
205
205
  provider: "opencode",
206
206
  baseUrl: "https://opencode.ai/zen/v1",
207
- compat: { "maxTokensField": "max_tokens", "requiresReasoningContentOnAssistantMessages": true },
207
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens", "requiresReasoningContentOnAssistantMessages": true },
208
208
  reasoning: true,
209
209
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "max" },
210
210
  input: ["text"],
@@ -223,7 +223,7 @@ export const OPENCODE_MODELS = {
223
223
  api: "openai-completions",
224
224
  provider: "opencode",
225
225
  baseUrl: "https://opencode.ai/zen/v1",
226
- compat: { "maxTokensField": "max_tokens", "supportsLongCacheRetention": false, "requiresReasoningContentOnAssistantMessages": true },
226
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens", "supportsLongCacheRetention": false, "requiresReasoningContentOnAssistantMessages": true },
227
227
  reasoning: true,
228
228
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "max" },
229
229
  input: ["text"],
@@ -296,7 +296,7 @@ export const OPENCODE_MODELS = {
296
296
  api: "openai-completions",
297
297
  provider: "opencode",
298
298
  baseUrl: "https://opencode.ai/zen/v1",
299
- compat: { "maxTokensField": "max_tokens" },
299
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
300
300
  reasoning: true,
301
301
  input: ["text"],
302
302
  cost: {
@@ -314,7 +314,7 @@ export const OPENCODE_MODELS = {
314
314
  api: "openai-completions",
315
315
  provider: "opencode",
316
316
  baseUrl: "https://opencode.ai/zen/v1",
317
- compat: { "maxTokensField": "max_tokens" },
317
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
318
318
  reasoning: true,
319
319
  input: ["text"],
320
320
  cost: {
@@ -332,7 +332,7 @@ export const OPENCODE_MODELS = {
332
332
  api: "openai-completions",
333
333
  provider: "opencode",
334
334
  baseUrl: "https://opencode.ai/zen/v1",
335
- compat: { "maxTokensField": "max_tokens" },
335
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
336
336
  reasoning: true,
337
337
  input: ["text"],
338
338
  cost: {
@@ -638,7 +638,7 @@ export const OPENCODE_MODELS = {
638
638
  api: "openai-completions",
639
639
  provider: "opencode",
640
640
  baseUrl: "https://opencode.ai/zen/v1",
641
- compat: { "supportsReasoningEffort": false, "maxTokensField": "max_tokens" },
641
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "supportsReasoningEffort": false, "maxTokensField": "max_tokens" },
642
642
  reasoning: true,
643
643
  thinkingLevelMap: { "off": null, "minimal": null, "low": null, "medium": null },
644
644
  input: ["text", "image"],
@@ -657,7 +657,7 @@ export const OPENCODE_MODELS = {
657
657
  api: "openai-completions",
658
658
  provider: "opencode",
659
659
  baseUrl: "https://opencode.ai/zen/v1",
660
- compat: { "maxTokensField": "max_tokens", "supportsLongCacheRetention": false },
660
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens", "supportsLongCacheRetention": false },
661
661
  reasoning: true,
662
662
  input: ["text", "image"],
663
663
  cost: {
@@ -675,7 +675,7 @@ export const OPENCODE_MODELS = {
675
675
  api: "openai-completions",
676
676
  provider: "opencode",
677
677
  baseUrl: "https://opencode.ai/zen/v1",
678
- compat: { "thinkingFormat": "deepseek", "supportsReasoningEffort": false, "maxTokensField": "max_tokens", "supportsLongCacheRetention": false },
678
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "thinkingFormat": "deepseek", "supportsReasoningEffort": false, "maxTokensField": "max_tokens", "supportsLongCacheRetention": false },
679
679
  reasoning: true,
680
680
  input: ["text", "image"],
681
681
  cost: {
@@ -693,7 +693,7 @@ export const OPENCODE_MODELS = {
693
693
  api: "openai-completions",
694
694
  provider: "opencode",
695
695
  baseUrl: "https://opencode.ai/zen/v1",
696
- compat: { "maxTokensField": "max_tokens" },
696
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
697
697
  reasoning: true,
698
698
  input: ["text", "image"],
699
699
  cost: {
@@ -711,7 +711,7 @@ export const OPENCODE_MODELS = {
711
711
  api: "openai-completions",
712
712
  provider: "opencode",
713
713
  baseUrl: "https://opencode.ai/zen/v1",
714
- compat: { "maxTokensField": "max_tokens" },
714
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
715
715
  reasoning: true,
716
716
  input: ["text"],
717
717
  cost: {
@@ -729,7 +729,7 @@ export const OPENCODE_MODELS = {
729
729
  api: "openai-completions",
730
730
  provider: "opencode",
731
731
  baseUrl: "https://opencode.ai/zen/v1",
732
- compat: { "maxTokensField": "max_tokens", "supportsLongCacheRetention": false },
732
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens", "supportsLongCacheRetention": false },
733
733
  reasoning: true,
734
734
  input: ["text"],
735
735
  cost: {
@@ -747,7 +747,7 @@ export const OPENCODE_MODELS = {
747
747
  api: "openai-completions",
748
748
  provider: "opencode",
749
749
  baseUrl: "https://opencode.ai/zen/v1",
750
- compat: { "maxTokensField": "max_tokens" },
750
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
751
751
  reasoning: true,
752
752
  input: ["text"],
753
753
  cost: {
@@ -765,7 +765,7 @@ export const OPENCODE_MODELS = {
765
765
  api: "openai-completions",
766
766
  provider: "opencode",
767
767
  baseUrl: "https://opencode.ai/zen/v1",
768
- compat: { "maxTokensField": "max_tokens" },
768
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
769
769
  reasoning: true,
770
770
  input: ["text"],
771
771
  cost: {