@code-yeongyu/senpi-ai 2026.9.12 → 2026.9.13-2

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 (129) hide show
  1. package/README.md +39 -4
  2. package/dist/api/anthropic-messages.d.ts.map +1 -1
  3. package/dist/api/anthropic-messages.js +8 -1
  4. package/dist/api/anthropic-messages.js.map +1 -1
  5. package/dist/api/cloudflare-ai-binding.d.ts +77 -0
  6. package/dist/api/cloudflare-ai-binding.d.ts.map +1 -0
  7. package/dist/api/cloudflare-ai-binding.js +72 -0
  8. package/dist/api/cloudflare-ai-binding.js.map +1 -0
  9. package/dist/api/cursor-agent/measure.d.ts +11 -0
  10. package/dist/api/cursor-agent/measure.d.ts.map +1 -1
  11. package/dist/api/cursor-agent/measure.js +18 -0
  12. package/dist/api/cursor-agent/measure.js.map +1 -1
  13. package/dist/api/cursor-agent.d.ts +1 -1
  14. package/dist/api/cursor-agent.d.ts.map +1 -1
  15. package/dist/api/cursor-agent.js +5 -1
  16. package/dist/api/cursor-agent.js.map +1 -1
  17. package/dist/api/devin-agent.lazy.d.ts +2 -0
  18. package/dist/api/devin-agent.lazy.d.ts.map +1 -1
  19. package/dist/api/devin-agent.lazy.js +6 -1
  20. package/dist/api/devin-agent.lazy.js.map +1 -1
  21. package/dist/api/mistral-conversations.js +4 -1
  22. package/dist/api/mistral-conversations.js.map +1 -1
  23. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  24. package/dist/api/openai-codex-responses.js +61 -20
  25. package/dist/api/openai-codex-responses.js.map +1 -1
  26. package/dist/api/openai-responses-shared.d.ts.map +1 -1
  27. package/dist/api/openai-responses-shared.js +6 -2
  28. package/dist/api/openai-responses-shared.js.map +1 -1
  29. package/dist/api/openai-responses.d.ts +2 -1
  30. package/dist/api/openai-responses.d.ts.map +1 -1
  31. package/dist/api/openai-responses.js +22 -3
  32. package/dist/api/openai-responses.js.map +1 -1
  33. package/dist/api/responses-completion-grace.d.ts +30 -0
  34. package/dist/api/responses-completion-grace.d.ts.map +1 -0
  35. package/dist/api/responses-completion-grace.js +94 -0
  36. package/dist/api/responses-completion-grace.js.map +1 -0
  37. package/dist/api/websocket-liveness.d.ts +48 -0
  38. package/dist/api/websocket-liveness.d.ts.map +1 -0
  39. package/dist/api/websocket-liveness.js +104 -0
  40. package/dist/api/websocket-liveness.js.map +1 -0
  41. package/dist/cursor/context-limit-store.d.ts +32 -0
  42. package/dist/cursor/context-limit-store.d.ts.map +1 -0
  43. package/dist/cursor/context-limit-store.js +62 -0
  44. package/dist/cursor/context-limit-store.js.map +1 -0
  45. package/dist/cursor/store-migration.d.ts.map +1 -1
  46. package/dist/cursor/store-migration.js +2 -1
  47. package/dist/cursor/store-migration.js.map +1 -1
  48. package/dist/devin-provider.d.ts +6 -0
  49. package/dist/devin-provider.d.ts.map +1 -0
  50. package/dist/devin-provider.js +4 -0
  51. package/dist/devin-provider.js.map +1 -0
  52. package/dist/index.d.ts +2 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +2 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/models.d.ts +1 -0
  57. package/dist/models.d.ts.map +1 -1
  58. package/dist/models.js +5 -2
  59. package/dist/models.js.map +1 -1
  60. package/dist/openai-responses-compat.d.ts +1 -1
  61. package/dist/openai-responses-compat.d.ts.map +1 -1
  62. package/dist/openai-responses-compat.js.map +1 -1
  63. package/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -1
  64. package/dist/providers/cloudflare-ai-gateway.js +4 -0
  65. package/dist/providers/cloudflare-ai-gateway.js.map +1 -1
  66. package/dist/providers/cursor.d.ts.map +1 -1
  67. package/dist/providers/cursor.js +2 -1
  68. package/dist/providers/cursor.js.map +1 -1
  69. package/dist/providers/data/.manifest.json +1 -1
  70. package/dist/providers/data/azure-openai-responses.json +1 -1
  71. package/dist/providers/data/baseten.json +1 -1
  72. package/dist/providers/data/deepseek.json +1 -1
  73. package/dist/providers/data/fireworks.json +1 -1
  74. package/dist/providers/data/github-copilot.json +1 -1
  75. package/dist/providers/data/nvidia.json +1 -1
  76. package/dist/providers/data/openai-codex.json +1 -1
  77. package/dist/providers/data/openrouter.json +1 -1
  78. package/dist/providers/data/qwen-token-plan-cn.json +1 -1
  79. package/dist/providers/data/qwen-token-plan-individual.json +1 -1
  80. package/dist/providers/data/qwen-token-plan.json +1 -1
  81. package/dist/providers/data/together.json +1 -1
  82. package/dist/providers/data/vercel-ai-gateway.json +1 -1
  83. package/dist/providers/data/xai.json +1 -1
  84. package/dist/providers/faux.js +5 -5
  85. package/dist/providers/faux.js.map +1 -1
  86. package/dist/providers/opencode-go.d.ts.map +1 -1
  87. package/dist/providers/opencode-go.js +4 -3
  88. package/dist/providers/opencode-go.js.map +1 -1
  89. package/dist/providers/opencode-headers.d.ts +4 -0
  90. package/dist/providers/opencode-headers.d.ts.map +1 -0
  91. package/dist/providers/opencode-headers.js +22 -0
  92. package/dist/providers/opencode-headers.js.map +1 -0
  93. package/dist/providers/opencode.d.ts.map +1 -1
  94. package/dist/providers/opencode.js +5 -4
  95. package/dist/providers/opencode.js.map +1 -1
  96. package/dist/types.d.ts +16 -6
  97. package/dist/types.d.ts.map +1 -1
  98. package/dist/types.js.map +1 -1
  99. package/dist/utils/assistant-message-frame.d.ts +77 -0
  100. package/dist/utils/assistant-message-frame.d.ts.map +1 -0
  101. package/dist/utils/assistant-message-frame.js +427 -0
  102. package/dist/utils/assistant-message-frame.js.map +1 -0
  103. package/dist/utils/cursor-context-limit.d.ts +12 -0
  104. package/dist/utils/cursor-context-limit.d.ts.map +1 -0
  105. package/dist/utils/cursor-context-limit.js +93 -0
  106. package/dist/utils/cursor-context-limit.js.map +1 -0
  107. package/dist/utils/event-stream.d.ts.map +1 -1
  108. package/dist/utils/event-stream.js +25 -5
  109. package/dist/utils/event-stream.js.map +1 -1
  110. package/dist/utils/prompt-cache-ttl.d.ts +1 -1
  111. package/dist/utils/prompt-cache-ttl.d.ts.map +1 -1
  112. package/dist/utils/prompt-cache-ttl.js +5 -1
  113. package/dist/utils/prompt-cache-ttl.js.map +1 -1
  114. package/dist/utils/retry-profile/types.d.ts +10 -1
  115. package/dist/utils/retry-profile/types.d.ts.map +1 -1
  116. package/dist/utils/retry-profile/types.js.map +1 -1
  117. package/dist/utils/retry.d.ts +13 -2
  118. package/dist/utils/retry.d.ts.map +1 -1
  119. package/dist/utils/retry.js +25 -10
  120. package/dist/utils/retry.js.map +1 -1
  121. package/dist/utils/uuid.d.ts +2 -2
  122. package/dist/utils/uuid.d.ts.map +1 -1
  123. package/dist/utils/uuid.js +36 -31
  124. package/dist/utils/uuid.js.map +1 -1
  125. package/package.json +14 -6
  126. package/dist/api/cloudflare-gateway-binding.d.ts +0 -69
  127. package/dist/api/cloudflare-gateway-binding.d.ts.map +0 -1
  128. package/dist/api/cloudflare-gateway-binding.js +0 -159
  129. package/dist/api/cloudflare-gateway-binding.js.map +0 -1
@@ -1 +1 @@
1
- {"openai-codex-responses":{"gpt-5.3-codex-spark":{"id":"gpt-5.3-codex-spark","name":"GPT-5.3 Codex Spark","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"contextWindow":128000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":0,"tiers":[{"inputTokensAbove":272000,"input":5,"output":22.5,"cacheRead":0.5,"cacheWrite":0}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsToolSearch":true}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 mini","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":4.5,"cacheRead":0.075,"cacheWrite":0},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsToolSearch":true}},"gpt-5.5":{"id":"gpt-5.5","name":"GPT-5.5","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":30,"cacheRead":0.5,"cacheWrite":0,"tiers":[{"inputTokensAbove":272000,"input":10,"output":45,"cacheRead":1,"cacheWrite":0}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsToolSearch":true}},"gpt-5.6-luna":{"id":"gpt-5.6-luna","name":"GPT-5.6 Luna","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.2,"cacheRead":0.02,"cacheWrite":0.25,"tiers":[{"inputTokensAbove":272000,"input":0.4,"output":1.8,"cacheRead":0.04,"cacheWrite":0.5}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true}},"gpt-5.6-luna-fast":{"id":"gpt-5.6-luna-fast","name":"GPT-5.6 Luna Fast","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.2,"cacheRead":0.02,"cacheWrite":0.25,"tiers":[{"inputTokensAbove":272000,"input":0.4,"output":1.8,"cacheRead":0.04,"cacheWrite":0.5}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true},"upstreamModelId":"gpt-5.6-luna","serviceTier":"priority"},"gpt-5.6-sol":{"id":"gpt-5.6-sol","name":"GPT-5.6 Sol","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":30,"cacheRead":0.5,"cacheWrite":6.25,"tiers":[{"inputTokensAbove":272000,"input":10,"output":45,"cacheRead":1,"cacheWrite":12.5}]},"contextWindow":650000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true}},"gpt-5.6-sol-fast":{"id":"gpt-5.6-sol-fast","name":"GPT-5.6 Sol Fast","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":30,"cacheRead":0.5,"cacheWrite":6.25,"tiers":[{"inputTokensAbove":272000,"input":10,"output":45,"cacheRead":1,"cacheWrite":12.5}]},"contextWindow":650000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true},"upstreamModelId":"gpt-5.6-sol","serviceTier":"priority"},"gpt-5.6-terra":{"id":"gpt-5.6-terra","name":"GPT-5.6 Terra","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":2.5,"tiers":[{"inputTokensAbove":272000,"input":4,"output":18,"cacheRead":0.4,"cacheWrite":5}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true}},"gpt-5.6-terra-fast":{"id":"gpt-5.6-terra-fast","name":"GPT-5.6 Terra Fast","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":2.5,"tiers":[{"inputTokensAbove":272000,"input":4,"output":18,"cacheRead":0.4,"cacheWrite":5}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true},"upstreamModelId":"gpt-5.6-terra","serviceTier":"priority"},"gpt-6-astra":{"id":"gpt-6-astra","name":"GPT-6 Astra","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":1,"cacheWrite":12.5,"tiers":[{"inputTokensAbove":272000,"input":20,"output":75,"cacheRead":2,"cacheWrite":25}]},"contextWindow":600000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":"max"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true}},"gpt-6-astra-fast":{"id":"gpt-6-astra-fast","name":"GPT-6 Astra Fast","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":1,"cacheWrite":12.5,"tiers":[{"inputTokensAbove":272000,"input":20,"output":75,"cacheRead":2,"cacheWrite":25}]},"contextWindow":600000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":"max"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true},"upstreamModelId":"gpt-6-astra","serviceTier":"priority"}}}
1
+ {"openai-codex-responses":{"gpt-5.3-codex-spark":{"id":"gpt-5.3-codex-spark","name":"GPT-5.3 Codex Spark","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"contextWindow":128000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true}},"gpt-5.5":{"id":"gpt-5.5","name":"GPT-5.5","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":30,"cacheRead":0.5,"cacheWrite":0,"tiers":[{"inputTokensAbove":272000,"input":10,"output":45,"cacheRead":1,"cacheWrite":0}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsToolSearch":true}},"gpt-5.6-luna":{"id":"gpt-5.6-luna","name":"GPT-5.6 Luna","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.2,"cacheRead":0.02,"cacheWrite":0.25,"tiers":[{"inputTokensAbove":272000,"input":0.4,"output":1.8,"cacheRead":0.04,"cacheWrite":0.5}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true}},"gpt-5.6-luna-fast":{"id":"gpt-5.6-luna-fast","name":"GPT-5.6 Luna Fast","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.2,"cacheRead":0.02,"cacheWrite":0.25,"tiers":[{"inputTokensAbove":272000,"input":0.4,"output":1.8,"cacheRead":0.04,"cacheWrite":0.5}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true},"upstreamModelId":"gpt-5.6-luna","serviceTier":"priority"},"gpt-5.6-sol":{"id":"gpt-5.6-sol","name":"GPT-5.6 Sol","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":30,"cacheRead":0.5,"cacheWrite":6.25,"tiers":[{"inputTokensAbove":272000,"input":10,"output":45,"cacheRead":1,"cacheWrite":12.5}]},"contextWindow":650000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true}},"gpt-5.6-sol-fast":{"id":"gpt-5.6-sol-fast","name":"GPT-5.6 Sol Fast","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":30,"cacheRead":0.5,"cacheWrite":6.25,"tiers":[{"inputTokensAbove":272000,"input":10,"output":45,"cacheRead":1,"cacheWrite":12.5}]},"contextWindow":650000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true},"upstreamModelId":"gpt-5.6-sol","serviceTier":"priority"},"gpt-5.6-terra":{"id":"gpt-5.6-terra","name":"GPT-5.6 Terra","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":2.5,"tiers":[{"inputTokensAbove":272000,"input":4,"output":18,"cacheRead":0.4,"cacheWrite":5}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true}},"gpt-5.6-terra-fast":{"id":"gpt-5.6-terra-fast","name":"GPT-5.6 Terra Fast","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":2.5,"tiers":[{"inputTokensAbove":272000,"input":4,"output":18,"cacheRead":0.4,"cacheWrite":5}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max","minimal":"low"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true},"upstreamModelId":"gpt-5.6-terra","serviceTier":"priority"},"gpt-6-astra":{"id":"gpt-6-astra","name":"GPT-6 Astra","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":1,"cacheWrite":12.5,"tiers":[{"inputTokensAbove":272000,"input":20,"output":75,"cacheRead":2,"cacheWrite":25}]},"contextWindow":600000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":"max"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true}},"gpt-6-astra-fast":{"id":"gpt-6-astra-fast","name":"GPT-6 Astra Fast","api":"openai-codex-responses","provider":"openai-codex","baseUrl":"https://chatgpt.com/backend-api","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":1,"cacheWrite":12.5,"tiers":[{"inputTokensAbove":272000,"input":20,"output":75,"cacheRead":2,"cacheWrite":25}]},"contextWindow":600000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":"max"},"compat":{"supportsOpenAIGrammarTools":true,"supportsAdditionalTools":true,"supportsToolSearch":true},"upstreamModelId":"gpt-6-astra","serviceTier":"priority"}}}