@shawnstack/quickforge 1.0.0 → 1.2.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.
- package/README.md +22 -16
- package/bin/quickforge.mjs +83 -8
- package/dist/assets/{anthropic-u1nbNXhV.js → anthropic-DLvtwHL2.js} +2 -2
- package/dist/assets/{azure-openai-responses-DQ6xSOmb.js → azure-openai-responses-D68z7hLN.js} +1 -1
- package/dist/assets/css-utils-rkE68RDy.js +1 -0
- package/dist/assets/{google-OeyKMN12.js → google-B_sSaRBM.js} +1 -1
- package/dist/assets/{google-gemini-cli-SnPixyBu.js → google-gemini-cli-CYqGXjGi.js} +1 -1
- package/dist/assets/google-shared-XhYUKiGZ.js +11 -0
- package/dist/assets/{google-vertex-y0o2eCZV.js → google-vertex-DSMuB4YB.js} +1 -1
- package/dist/assets/icons-BsZ9PlYY.js +1 -0
- package/dist/assets/index-BqFfVQJM.css +3 -0
- package/dist/assets/{index-CK_34smc.js → index-DoraECXN.js} +801 -662
- package/dist/assets/lit-vendor-1dsGB-Iy.js +2 -0
- package/dist/assets/{mistral-DzE_jn-B.js → mistral-BZngRB4x.js} +2 -2
- package/dist/assets/{openai-codex-responses-MtFRvp_b.js → openai-codex-responses-Niu7xDYK.js} +1 -1
- package/dist/assets/openai-completions-B2bhb9k0.js +5 -0
- package/dist/assets/{openai-responses-C4n0VhzY.js → openai-responses-CDYDv8yL.js} +1 -1
- package/dist/assets/{openai-responses-shared-D2RkRvTj.js → openai-responses-shared-BIKPTpEQ.js} +1 -1
- package/dist/assets/react-vendor-Ds3ovY0w.js +9 -0
- package/dist/assets/rolldown-runtime-CkqCuyE9.js +1 -0
- package/dist/index.html +7 -3
- package/package.json +2 -1
- package/server/agent-manager.mjs +1053 -0
- package/server/conversation-compaction.mjs +302 -0
- package/server/custom-commands.mjs +344 -0
- package/server/index.mjs +326 -34
- package/server/project-config.mjs +85 -55
- package/server/reasoning-cache.mjs +51 -0
- package/server/restart-supervisor.mjs +38 -0
- package/server/routes/agent.mjs +323 -0
- package/server/routes/backup.mjs +250 -0
- package/server/routes/instructions.mjs +6 -17
- package/server/routes/project.mjs +49 -19
- package/server/routes/scheduled-tasks.mjs +424 -0
- package/server/routes/shared-conversation.mjs +404 -0
- package/server/routes/shares.mjs +84 -0
- package/server/routes/skills.mjs +145 -0
- package/server/routes/static.mjs +4 -3
- package/server/routes/storage.mjs +66 -12
- package/server/routes/system.mjs +35 -0
- package/server/routes/tools.mjs +53 -2
- package/server/session-utils.mjs +102 -0
- package/server/share-store.mjs +468 -0
- package/server/skills.mjs +539 -0
- package/server/storage.mjs +578 -133
- package/server/system-prompt.mjs +67 -0
- package/server/tools/definitions.mjs +120 -0
- package/server/tools/index.mjs +167 -46
- package/server/utils/logger.mjs +34 -0
- package/server/utils/network.mjs +38 -0
- package/server/utils/platform.mjs +31 -1
- package/server/utils/response.mjs +9 -2
- package/skills/ai-context-package/SKILL.md +104 -0
- package/skills/ai-context-package/skill.json +9 -0
- package/skills/code-review/SKILL.md +23 -0
- package/skills/code-review/skill.json +9 -0
- package/skills/frontend-react/SKILL.md +22 -0
- package/skills/frontend-react/skill.json +9 -0
- package/skills/quickforge-project/SKILL.md +22 -0
- package/skills/quickforge-project/skill.json +9 -0
- package/dist/assets/chunk-62oNxeRG.js +0 -1
- package/dist/assets/confirm-dialog-DSmrqQ60.js +0 -1
- package/dist/assets/google-shared-CXUHW-9O.js +0 -11
- package/dist/assets/index-BQJ8qi1U.css +0 -3
- package/dist/assets/openai-completions-C2dhwzO8.js +0 -5
- package/dist/assets/prompt-dialog-B4BD09Oc.js +0 -1
- /package/dist/assets/{github-copilot-headers-C0toI16e.js → github-copilot-headers-CrI0CIJ7.js} +0 -0
- /package/dist/assets/{hash-fDQBJsbb.js → hash-Bt1aVMQ3.js} +0 -0
- /package/dist/assets/{headers-Drkm68SQ.js → headers-5EYI0_pl.js} +0 -0
- /package/dist/assets/{openai-CuiHR4mv.js → openai-Cn7eGqwa.js} +0 -0
- /package/dist/assets/{transform-messages-BFwlToJ0.js → transform-messages-CV4kCtBB.js} +0 -0
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# 速构 QuickForge
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
|
-
<img alt="Version" src="https://img.shields.io/badge/version-1.
|
|
4
|
+
<img alt="Version" src="https://img.shields.io/badge/version-1.1.0-blue" />
|
|
5
5
|
<img alt="License" src="https://img.shields.io/badge/license-MIT-green" />
|
|
6
6
|
<img alt="Node" src="https://img.shields.io/badge/node-%3E%3D20-brightgreen" />
|
|
7
7
|
<img alt="React" src="https://img.shields.io/badge/react-19-61DAFB?logo=react" />
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
AI chat application with YOLO-mode local workspace tools — the agent can read, write, and edit files in your project, plus run shell commands.
|
|
12
12
|
|
|
13
|
-
Built with React 19, Vite 8, Tailwind CSS 4, and shadcn-style UI primitives. Uses `@mariozechner/pi-web-ui` for chat components and `@mariozechner/pi-ai` for model orchestration. All data stays local
|
|
13
|
+
Built with React 19, Vite 8, Tailwind CSS 4, and shadcn-style UI primitives. Uses `@mariozechner/pi-web-ui` for chat components and `@mariozechner/pi-ai` for model orchestration. All data stays local under `~/.quickforge/`, with persistent data in `storage/`, removable caches in `cache/`, and logs in `logs/`.
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
@@ -20,8 +20,7 @@ Built with React 19, Vite 8, Tailwind CSS 4, and shadcn-style UI primitives. Use
|
|
|
20
20
|
- **Local-first** — all API keys, settings, and chat history stored in local JSON files. No cloud, no telemetry.
|
|
21
21
|
- **YOLO mode** — grant the agent access to your workspace: list files, read/write/edit, grep, and run commands.
|
|
22
22
|
- **Multi-provider** — OpenAI-compatible `/v1/chat/completions` and Anthropic Messages API. Bring your own endpoint.
|
|
23
|
-
- **
|
|
24
|
-
- **IndexedDB import** — existing browser data for the same origin is copied to local files on startup.
|
|
23
|
+
- **Local service storage only** — the local Node.js service is the single storage backend; browser caches are not used for app data.
|
|
25
24
|
|
|
26
25
|
## Quick Start
|
|
27
26
|
|
|
@@ -39,6 +38,11 @@ npm start
|
|
|
39
38
|
|
|
40
39
|
Open [http://localhost:5176](http://localhost:5176).
|
|
41
40
|
|
|
41
|
+
## Documentation
|
|
42
|
+
|
|
43
|
+
- [中文使用教程](./docs/user-guide.zh-CN.md)
|
|
44
|
+
- [English User Guide](./docs/user-guide.en-US.md)
|
|
45
|
+
|
|
42
46
|
### Windows
|
|
43
47
|
|
|
44
48
|
Double-click `dev-quickforge.bat` for development, or `start-quickforge.bat` for production mode.
|
|
@@ -51,7 +55,7 @@ Double-click `dev-quickforge.bat` for development, or `start-quickforge.bat` for
|
|
|
51
55
|
| UI | shadcn-style primitives, Lucide icons |
|
|
52
56
|
| Chat engine | `@mariozechner/pi-web-ui`, `@mariozechner/pi-agent-core`, `@mariozechner/pi-ai` |
|
|
53
57
|
| Server | Node.js (ESM), plain `http` module |
|
|
54
|
-
| Storage |
|
|
58
|
+
| Storage | Unified config at `~/.quickforge/config/config.json`, conversations under `~/.quickforge/storage/`, cache files under `~/.quickforge/cache/`, logs under `~/.quickforge/logs/` |
|
|
55
59
|
|
|
56
60
|
## Project Structure
|
|
57
61
|
|
|
@@ -78,27 +82,29 @@ Double-click `dev-quickforge.bat` for development, or `start-quickforge.bat` for
|
|
|
78
82
|
| `QUICKFORGE_VITE_PORT` | `5176` | Vite dev server port |
|
|
79
83
|
| `QUICKFORGE_MAX_BODY_BYTES` | `52428800` (50MB) | Max request body size |
|
|
80
84
|
|
|
81
|
-
Legacy `FASTCODE_*` variants are still accepted for existing setups.
|
|
82
|
-
|
|
83
85
|
### Storage Files
|
|
84
86
|
|
|
85
|
-
Located
|
|
87
|
+
Located under `~/.quickforge/` (or `%USERPROFILE%\.quickforge` on Windows):
|
|
88
|
+
|
|
89
|
+
- `config/config.json` — unified local config, including app settings, custom providers, provider API keys, and project list. This file may contain secrets; do not share it.
|
|
90
|
+
- `storage/conversations/global/sessions.json` — full global chat history
|
|
91
|
+
- `storage/conversations/global/sessions-metadata.json` — global conversation list metadata
|
|
92
|
+
- `storage/conversations/projects/<projectId>/sessions.json` — full project chat history
|
|
93
|
+
- `storage/conversations/projects/<projectId>/sessions-metadata.json` — project conversation list metadata
|
|
94
|
+
- `cache/` — removable cache files
|
|
95
|
+
- `logs/` — local logs
|
|
86
96
|
|
|
87
|
-
|
|
88
|
-
- `provider-keys.json` — API keys
|
|
89
|
-
- `settings.json` — active model, YOLO mode, app preferences
|
|
90
|
-
- `sessions.json` — full chat history
|
|
91
|
-
- `sessions-metadata.json` — conversation list metadata
|
|
97
|
+
### First Model Setup
|
|
92
98
|
|
|
93
|
-
|
|
99
|
+
QuickForge does not assume a usable default model on first launch. If no custom model is configured, the chat area shows a setup guide.
|
|
94
100
|
|
|
95
|
-
|
|
101
|
+
You can add any OpenAI-compatible or Anthropic Messages provider in Settings. A LiteLLM example is available:
|
|
96
102
|
|
|
97
103
|
- **Base URL**: `http://localhost:4000/v1`
|
|
98
104
|
- **Model**: `anthropic/claude-sonnet-4`
|
|
99
105
|
- **API**: OpenAI-compatible `/v1/chat/completions`
|
|
100
106
|
|
|
101
|
-
|
|
107
|
+
See the [user guide](./docs/README.md) for detailed setup examples.
|
|
102
108
|
|
|
103
109
|
## YOLO Mode
|
|
104
110
|
|
package/bin/quickforge.mjs
CHANGED
|
@@ -8,12 +8,20 @@ import { fileURLToPath } from 'node:url'
|
|
|
8
8
|
const __filename = fileURLToPath(import.meta.url)
|
|
9
9
|
const __dirname = path.dirname(__filename)
|
|
10
10
|
|
|
11
|
-
const pidFile = path.join(os.homedir(), '.quickforge', 'quickforge.pid')
|
|
12
11
|
const serverScript = path.resolve(__dirname, '..', 'server', 'index.mjs')
|
|
13
12
|
|
|
13
|
+
function getDataDir() {
|
|
14
|
+
if (process.env.QUICKFORGE_DATA_DIR) return path.resolve(process.env.QUICKFORGE_DATA_DIR)
|
|
15
|
+
return path.join(os.homedir(), '.quickforge')
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function getPidFile() {
|
|
19
|
+
return path.join(getDataDir(), 'quickforge.pid')
|
|
20
|
+
}
|
|
21
|
+
|
|
14
22
|
async function readPid() {
|
|
15
23
|
try {
|
|
16
|
-
const text = await fs.readFile(
|
|
24
|
+
const text = await fs.readFile(getPidFile(), 'utf8')
|
|
17
25
|
return Number(text.trim()) || null
|
|
18
26
|
} catch {
|
|
19
27
|
return null
|
|
@@ -21,13 +29,14 @@ async function readPid() {
|
|
|
21
29
|
}
|
|
22
30
|
|
|
23
31
|
async function writePid(pid) {
|
|
32
|
+
const pidFile = getPidFile()
|
|
24
33
|
await fs.mkdir(path.dirname(pidFile), { recursive: true })
|
|
25
34
|
await fs.writeFile(pidFile, String(pid), 'utf8')
|
|
26
35
|
}
|
|
27
36
|
|
|
28
37
|
async function removePid() {
|
|
29
38
|
try {
|
|
30
|
-
await fs.unlink(
|
|
39
|
+
await fs.unlink(getPidFile())
|
|
31
40
|
} catch {
|
|
32
41
|
// ignore
|
|
33
42
|
}
|
|
@@ -42,6 +51,11 @@ function isProcessRunning(pid) {
|
|
|
42
51
|
}
|
|
43
52
|
}
|
|
44
53
|
|
|
54
|
+
function getLogFile() {
|
|
55
|
+
const date = new Date().toISOString().slice(0, 10)
|
|
56
|
+
return path.join(getDataDir(), 'logs', `server-${date}.log`)
|
|
57
|
+
}
|
|
58
|
+
|
|
45
59
|
async function cmdStop() {
|
|
46
60
|
const pid = await readPid()
|
|
47
61
|
if (!pid) {
|
|
@@ -71,6 +85,27 @@ async function cmdStop() {
|
|
|
71
85
|
console.log('QuickForge stopped.')
|
|
72
86
|
}
|
|
73
87
|
|
|
88
|
+
function lanModeEnabled() {
|
|
89
|
+
return process.env.QUICKFORGE_SHARE_LAN !== '0'
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function prepareEnvForCommand() {
|
|
93
|
+
const env = { ...process.env }
|
|
94
|
+
if (lanModeEnabled()) {
|
|
95
|
+
env.QUICKFORGE_SHARE_LAN = '1'
|
|
96
|
+
env.QUICKFORGE_ALLOW_REMOTE = '1'
|
|
97
|
+
env.QUICKFORGE_HOST = env.QUICKFORGE_HOST || '0.0.0.0'
|
|
98
|
+
}
|
|
99
|
+
return env
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function getServiceUrl() {
|
|
103
|
+
const host = process.env.QUICKFORGE_HOST || '0.0.0.0'
|
|
104
|
+
const displayHost = host === '0.0.0.0' ? '<LAN-IP>' : host
|
|
105
|
+
const port = process.env.QUICKFORGE_PORT || '5176'
|
|
106
|
+
return `http://${displayHost}:${port}`
|
|
107
|
+
}
|
|
108
|
+
|
|
74
109
|
async function cmdStart() {
|
|
75
110
|
const existingPid = await readPid()
|
|
76
111
|
if (existingPid && isProcessRunning(existingPid)) {
|
|
@@ -86,20 +121,29 @@ async function cmdStart() {
|
|
|
86
121
|
detached: true,
|
|
87
122
|
stdio: 'ignore',
|
|
88
123
|
windowsHide: true,
|
|
89
|
-
env:
|
|
124
|
+
env: prepareEnvForCommand(),
|
|
90
125
|
})
|
|
91
126
|
|
|
92
127
|
await writePid(child.pid)
|
|
93
128
|
child.unref()
|
|
94
129
|
|
|
130
|
+
const serviceUrl = getServiceUrl()
|
|
131
|
+
const dataDir = getDataDir()
|
|
132
|
+
const logFile = getLogFile()
|
|
95
133
|
console.log(`QuickForge started (PID ${child.pid}).`)
|
|
96
|
-
console.log(`Open:
|
|
97
|
-
console.log(`Data: ${
|
|
134
|
+
console.log(`Open: ${serviceUrl}`)
|
|
135
|
+
console.log(`Data: ${dataDir}`)
|
|
136
|
+
console.log(`Config: ${path.join(dataDir, 'config', 'config.json')}`)
|
|
137
|
+
console.log(`Storage: ${path.join(dataDir, 'storage')}`)
|
|
138
|
+
console.log(`Cache: ${path.join(dataDir, 'cache')}`)
|
|
139
|
+
console.log(`Logs: ${path.join(dataDir, 'logs')}`)
|
|
140
|
+
console.log(`Current log: ${logFile}`)
|
|
98
141
|
console.log('')
|
|
99
142
|
console.log('Commands:')
|
|
100
143
|
console.log(' quickforge stop Stop the background service')
|
|
101
144
|
console.log(' quickforge restart Restart the background service')
|
|
102
145
|
console.log(' quickforge status Check if the service is running')
|
|
146
|
+
console.log(' quickforge logs Watch today\'s server log')
|
|
103
147
|
}
|
|
104
148
|
|
|
105
149
|
async function cmdRestart() {
|
|
@@ -118,13 +162,33 @@ async function cmdStatus() {
|
|
|
118
162
|
|
|
119
163
|
if (isProcessRunning(pid)) {
|
|
120
164
|
console.log(`QuickForge is running (PID ${pid}).`)
|
|
121
|
-
console.log(`URL:
|
|
165
|
+
console.log(`URL: ${getServiceUrl()}`)
|
|
166
|
+
console.log(`Log: ${getLogFile()}`)
|
|
167
|
+
console.log('Watch: quickforge logs')
|
|
122
168
|
} else {
|
|
123
169
|
console.log(`QuickForge PID ${pid} is stale (not running).`)
|
|
124
170
|
await removePid()
|
|
125
171
|
}
|
|
126
172
|
}
|
|
127
173
|
|
|
174
|
+
async function cmdLogs() {
|
|
175
|
+
const logFile = getLogFile()
|
|
176
|
+
await fs.mkdir(path.dirname(logFile), { recursive: true })
|
|
177
|
+
await fs.appendFile(logFile, '', 'utf8')
|
|
178
|
+
|
|
179
|
+
console.log(`Watching QuickForge log: ${logFile}`)
|
|
180
|
+
const tail = spawn(process.platform === 'win32' ? 'powershell.exe' : 'tail', process.platform === 'win32'
|
|
181
|
+
? ['-NoProfile', '-Command', `Get-Content -Path '${logFile.replace(/'/g, "''")}' -Wait -Tail 80`]
|
|
182
|
+
: ['-n', '80', '-f', logFile], {
|
|
183
|
+
stdio: 'inherit',
|
|
184
|
+
shell: false,
|
|
185
|
+
})
|
|
186
|
+
|
|
187
|
+
tail.on('exit', (code) => {
|
|
188
|
+
process.exit(code || 0)
|
|
189
|
+
})
|
|
190
|
+
}
|
|
191
|
+
|
|
128
192
|
async function main() {
|
|
129
193
|
const command = process.argv[2] || 'start'
|
|
130
194
|
|
|
@@ -132,6 +196,10 @@ async function main() {
|
|
|
132
196
|
case 'start':
|
|
133
197
|
await cmdStart()
|
|
134
198
|
break
|
|
199
|
+
case 'lan':
|
|
200
|
+
case '--lan':
|
|
201
|
+
await cmdStart()
|
|
202
|
+
break
|
|
135
203
|
case 'stop':
|
|
136
204
|
await cmdStop()
|
|
137
205
|
break
|
|
@@ -141,6 +209,9 @@ async function main() {
|
|
|
141
209
|
case 'status':
|
|
142
210
|
await cmdStatus()
|
|
143
211
|
break
|
|
212
|
+
case 'logs':
|
|
213
|
+
await cmdLogs()
|
|
214
|
+
break
|
|
144
215
|
case '--help':
|
|
145
216
|
case '-h':
|
|
146
217
|
case 'help':
|
|
@@ -149,13 +220,17 @@ async function main() {
|
|
|
149
220
|
console.log('Usage:')
|
|
150
221
|
console.log(' quickforge Start as background service (default)')
|
|
151
222
|
console.log(' quickforge start Start as background service')
|
|
223
|
+
console.log(' quickforge lan Start LAN sharing mode (binds 0.0.0.0, restricts remote APIs)')
|
|
152
224
|
console.log(' quickforge stop Stop the background service')
|
|
153
225
|
console.log(' quickforge restart Restart the background service')
|
|
154
226
|
console.log(' quickforge status Check if the service is running')
|
|
227
|
+
console.log(' quickforge logs Watch today\'s server log')
|
|
155
228
|
console.log('')
|
|
156
229
|
console.log('Config:')
|
|
157
230
|
console.log(' QUICKFORGE_PORT=5176 Server port')
|
|
158
|
-
console.log(' QUICKFORGE_HOST=127.0.0.1
|
|
231
|
+
console.log(' QUICKFORGE_HOST=0.0.0.0 Bind address; set QUICKFORGE_HOST=127.0.0.1 and QUICKFORGE_SHARE_LAN=0 for local-only mode')
|
|
232
|
+
console.log(' QUICKFORGE_SHARE_LAN=1 Enable LAN sharing mode and restrict remote non-share APIs (default)')
|
|
233
|
+
console.log(' QUICKFORGE_ALLOW_REMOTE=1 Allow explicit remote binding')
|
|
159
234
|
console.log(' QUICKFORGE_DATA_DIR=/path Data storage directory')
|
|
160
235
|
console.log(' QUICKFORGE_NO_OPEN=1 Don\'t auto-open browser')
|
|
161
236
|
break
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,
|
|
1
|
+
import{a as e,i as t,n,r,s as i}from"./index-DoraECXN.js";import{t as a}from"./headers-5EYI0_pl.js";import{a as o,n as s,r as c,t as l}from"./transform-messages-CV4kCtBB.js";import{n as u,t as ee}from"./github-copilot-headers-CrI0CIJ7.js";function d(e,t,n,r,i){if(r===`m`)throw TypeError(`Private method is not writable`);if(r===`a`&&!i)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!i:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return r===`a`?i.call(e,n):i?i.value=n:t.set(e,n),n}function f(e,t,n,r){if(n===`a`&&!r)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!r:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?r:n===`a`?r.call(e):r?r.value:t.get(e)}var p=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return p=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),n=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return`10000000-1000-4000-8000-100000000000`.replace(/[018]/g,e=>(e^n()&15>>e/4).toString(16))};function m(e){return typeof e==`object`&&!!e&&(`name`in e&&e.name===`AbortError`||`message`in e&&String(e.message).includes(`FetchRequestCanceledException`))}var h=e=>{if(e instanceof Error)return e;if(typeof e==`object`&&e){try{if(Object.prototype.toString.call(e)===`[object Error]`){let t=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)},g=class extends Error{},_=class e extends g{constructor(t,n,r,i,a){super(`${e.makeMessage(t,n,r)}`),this.status=t,this.headers=i,this.requestID=i?.get(`request-id`),this.error=n,this.type=a??null}static makeMessage(e,t,n){let r=t?.message?typeof t.message==`string`?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||`(no status code or body)`}static generate(t,n,r,i){if(!t||!i)return new te({message:r,cause:h(n)});let a=n,o=a?.error?.type;return t===400?new re(t,a,r,i,o):t===401?new ie(t,a,r,i,o):t===403?new ae(t,a,r,i,o):t===404?new oe(t,a,r,i,o):t===409?new se(t,a,r,i,o):t===422?new ce(t,a,r,i,o):t===429?new le(t,a,r,i,o):t>=500?new ue(t,a,r,i,o):new e(t,a,r,i,o)}},v=class extends _{constructor({message:e}={}){super(void 0,void 0,e||`Request was aborted.`,void 0)}},te=class extends _{constructor({message:e,cause:t}){super(void 0,void 0,e||`Connection error.`,void 0),t&&(this.cause=t)}},ne=class extends te{constructor({message:e}={}){super({message:e??`Request timed out.`})}},re=class extends _{},ie=class extends _{},ae=class extends _{},oe=class extends _{},se=class extends _{},ce=class extends _{},le=class extends _{},ue=class extends _{},de=/^[a-z][a-z0-9+.-]*:/i,fe=e=>de.test(e),pe=e=>(pe=Array.isArray,pe(e)),me=pe;function he(e){return typeof e==`object`?e??{}:{}}function ge(e){if(!e)return!0;for(let t in e)return!1;return!0}function _e(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var ve=(e,t)=>{if(typeof t!=`number`||!Number.isInteger(t))throw new g(`${e} must be an integer`);if(t<0)throw new g(`${e} must be a positive integer`);return t},ye=e=>{try{return JSON.parse(e)}catch{return}},be=e=>new Promise(t=>setTimeout(t,e)),y=`0.90.0`,xe=()=>typeof window<`u`&&window.document!==void 0&&typeof navigator<`u`;function Se(){return typeof Deno<`u`&&Deno.build!=null?`deno`:typeof EdgeRuntime<`u`?`edge`:Object.prototype.toString.call(globalThis.process===void 0?0:globalThis.process)===`[object process]`?`node`:`unknown`}var Ce=()=>{let e=Se();if(e===`deno`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":y,"X-Stainless-OS":Ee(Deno.build.os),"X-Stainless-Arch":Te(Deno.build.arch),"X-Stainless-Runtime":`deno`,"X-Stainless-Runtime-Version":typeof Deno.version==`string`?Deno.version:Deno.version?.deno??`unknown`};if(typeof EdgeRuntime<`u`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":y,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":`edge`,"X-Stainless-Runtime-Version":globalThis.process.version};if(e===`node`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":y,"X-Stainless-OS":Ee(globalThis.process.platform??`unknown`),"X-Stainless-Arch":Te(globalThis.process.arch??`unknown`),"X-Stainless-Runtime":`node`,"X-Stainless-Runtime-Version":globalThis.process.version??`unknown`};let t=we();return t?{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":y,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`unknown`,"X-Stainless-Runtime":`browser:${t.browser}`,"X-Stainless-Runtime-Version":t.version}:{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":y,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`unknown`,"X-Stainless-Runtime":`unknown`,"X-Stainless-Runtime-Version":`unknown`}};function we(){if(typeof navigator>`u`||!navigator)return null;for(let{key:e,pattern:t}of[{key:`edge`,pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`ie`,pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`ie`,pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`chrome`,pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`firefox`,pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`safari`,pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}]){let n=t.exec(navigator.userAgent);if(n)return{browser:e,version:`${n[1]||0}.${n[2]||0}.${n[3]||0}`}}return null}var Te=e=>e===`x32`?`x32`:e===`x86_64`||e===`x64`?`x64`:e===`arm`?`arm`:e===`aarch64`||e===`arm64`?`arm64`:e?`other:${e}`:`unknown`,Ee=e=>(e=e.toLowerCase(),e.includes(`ios`)?`iOS`:e===`android`?`Android`:e===`darwin`?`MacOS`:e===`win32`?`Windows`:e===`freebsd`?`FreeBSD`:e===`openbsd`?`OpenBSD`:e===`linux`?`Linux`:e?`Other:${e}`:`Unknown`),De,Oe=()=>De??=Ce();function ke(){if(typeof fetch<`u`)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function Ae(...e){let t=globalThis.ReadableStream;if(t===void 0)throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function je(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return Ae({start(){},async pull(e){let{done:n,value:r}=await t.next();n?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function Me(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let e=await t.read();return e?.done&&t.releaseLock(),e}catch(e){throw t.releaseLock(),e}},async return(){let e=t.cancel();return t.releaseLock(),await e,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function Ne(e){if(typeof e!=`object`||!e)return;if(e[Symbol.asyncIterator]){await e[Symbol.asyncIterator]().return?.();return}let t=e.getReader(),n=t.cancel();t.releaseLock(),await n}var Pe=({headers:e,body:t})=>({bodyHeaders:{"content-type":`application/json`},body:JSON.stringify(t)});function Fe(e){return Object.entries(e).filter(([e,t])=>t!==void 0).map(([e,t])=>{if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)return`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;if(t===null)return`${encodeURIComponent(e)}=`;throw new g(`Cannot stringify type ${typeof t}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join(`&`)}function Ie(e){let t=0;for(let n of e)t+=n.length;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}var Le;function Re(e){let t;return(Le??=(t=new globalThis.TextEncoder,t.encode.bind(t)))(e)}var ze;function Be(e){let t;return(ze??=(t=new globalThis.TextDecoder,t.decode.bind(t)))(e)}var b,x,Ve=class{constructor(){b.set(this,void 0),x.set(this,void 0),d(this,b,new Uint8Array,`f`),d(this,x,null,`f`)}decode(e){if(e==null)return[];let t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e==`string`?Re(e):e;d(this,b,Ie([f(this,b,`f`),t]),`f`);let n=[],r;for(;(r=He(f(this,b,`f`),f(this,x,`f`)))!=null;){if(r.carriage&&f(this,x,`f`)==null){d(this,x,r.index,`f`);continue}if(f(this,x,`f`)!=null&&(r.index!==f(this,x,`f`)+1||r.carriage)){n.push(Be(f(this,b,`f`).subarray(0,f(this,x,`f`)-1))),d(this,b,f(this,b,`f`).subarray(f(this,x,`f`)),`f`),d(this,x,null,`f`);continue}let e=f(this,x,`f`)===null?r.preceding:r.preceding-1,t=Be(f(this,b,`f`).subarray(0,e));n.push(t),d(this,b,f(this,b,`f`).subarray(r.index),`f`),d(this,x,null,`f`)}return n}flush(){return f(this,b,`f`).length?this.decode(`
|
|
2
2
|
`):[]}};b=new WeakMap,x=new WeakMap,Ve.NEWLINE_CHARS=new Set([`
|
|
3
3
|
`,`\r`]),Ve.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function He(e,t){for(let n=t??0;n<e.length;n++){if(e[n]===10)return{preceding:n,index:n+1,carriage:!1};if(e[n]===13)return{preceding:n,index:n+1,carriage:!0}}return null}function Ue(e){for(let t=0;t<e.length-1;t++){if(e[t]===10&&e[t+1]===10||e[t]===13&&e[t+1]===13)return t+2;if(e[t]===13&&e[t+1]===10&&t+3<e.length&&e[t+2]===13&&e[t+3]===10)return t+4}return-1}var We={off:0,error:200,warn:300,info:400,debug:500},Ge=(e,t,n)=>{if(e){if(_e(We,e))return e;S(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(We))}`)}};function Ke(){}function qe(e,t,n){return!t||We[e]>We[n]?Ke:t[e].bind(t)}var Je={error:Ke,warn:Ke,info:Ke,debug:Ke},Ye=new WeakMap;function S(e){let t=e.logger,n=e.logLevel??`off`;if(!t)return Je;let r=Ye.get(t);if(r&&r[0]===n)return r[1];let i={error:qe(`error`,t,n),warn:qe(`warn`,t,n),info:qe(`info`,t,n),debug:qe(`debug`,t,n)};return Ye.set(t,[n,i]),i}var C=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([e,t])=>[e,e.toLowerCase()===`x-api-key`||e.toLowerCase()===`authorization`||e.toLowerCase()===`cookie`||e.toLowerCase()===`set-cookie`?`***`:t])),`retryOfRequestLogID`in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e),Xe,Ze=class e{constructor(e,t,n){this.iterator=e,Xe.set(this,void 0),this.controller=t,d(this,Xe,n,`f`)}static fromSSEResponse(t,n,r){let i=!1,a=r?S(r):console;async function*o(){if(i)throw new g("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");i=!0;let e=!1;try{for await(let e of Qe(t,n)){if(e.event===`completion`)try{yield JSON.parse(e.data)}catch(t){throw a.error(`Could not parse message into JSON:`,e.data),a.error(`From chunk:`,e.raw),t}if(e.event===`message_start`||e.event===`message_delta`||e.event===`message_stop`||e.event===`content_block_start`||e.event===`content_block_delta`||e.event===`content_block_stop`||e.event===`message`||e.event===`user.message`||e.event===`user.interrupt`||e.event===`user.tool_confirmation`||e.event===`user.custom_tool_result`||e.event===`agent.message`||e.event===`agent.thinking`||e.event===`agent.tool_use`||e.event===`agent.tool_result`||e.event===`agent.mcp_tool_use`||e.event===`agent.mcp_tool_result`||e.event===`agent.custom_tool_use`||e.event===`agent.thread_context_compacted`||e.event===`session.status_running`||e.event===`session.status_idle`||e.event===`session.status_rescheduled`||e.event===`session.status_terminated`||e.event===`session.error`||e.event===`session.deleted`||e.event===`span.model_request_start`||e.event===`span.model_request_end`)try{yield JSON.parse(e.data)}catch(t){throw a.error(`Could not parse message into JSON:`,e.data),a.error(`From chunk:`,e.raw),t}if(e.event!==`ping`&&e.event===`error`){let n=ye(e.data)??e.data,r=n?.error?.type;throw new _(void 0,n,void 0,t.headers,r)}}e=!0}catch(e){if(m(e))return;throw e}finally{e||n.abort()}}return new e(o,n,r)}static fromReadableStream(t,n,r){let i=!1;async function*a(){let e=new Ve,n=Me(t);for await(let t of n)for(let n of e.decode(t))yield n;for(let t of e.flush())yield t}async function*o(){if(i)throw new g("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");i=!0;let e=!1;try{for await(let t of a())e||t&&(yield JSON.parse(t));e=!0}catch(e){if(m(e))return;throw e}finally{e||n.abort()}}return new e(o,n,r)}[(Xe=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let t=[],n=[],r=this.iterator(),i=e=>({next:()=>{if(e.length===0){let e=r.next();t.push(e),n.push(e)}return e.shift()}});return[new e(()=>i(t),this.controller,f(this,Xe,`f`)),new e(()=>i(n),this.controller,f(this,Xe,`f`))]}toReadableStream(){let e=this,t;return Ae({async start(){t=e[Symbol.asyncIterator]()},async pull(e){try{let{value:n,done:r}=await t.next();if(r)return e.close();let i=Re(JSON.stringify(n)+`
|
|
4
4
|
`);e.enqueue(i)}catch(t){e.error(t)}},async cancel(){await t.return?.()}})}};async function*Qe(e,t){if(!e.body)throw t.abort(),globalThis.navigator!==void 0&&globalThis.navigator.product===`ReactNative`?new g(`The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api`):new g(`Attempted to iterate over a response with no body`);let n=new et,r=new Ve,i=Me(e.body);for await(let e of $e(i))for(let t of r.decode(e)){let e=n.decode(t);e&&(yield e)}for(let e of r.flush()){let t=n.decode(e);t&&(yield t)}}async function*$e(e){let t=new Uint8Array;for await(let n of e){if(n==null)continue;let e=n instanceof ArrayBuffer?new Uint8Array(n):typeof n==`string`?Re(n):n,r=new Uint8Array(t.length+e.length);r.set(t),r.set(e,t.length),t=r;let i;for(;(i=Ue(t))!==-1;)yield t.slice(0,i),t=t.slice(i)}t.length>0&&(yield t)}var et=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith(`\r`)&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let e={event:this.event,data:this.data.join(`
|
|
@@ -36,4 +36,4 @@ new Anthropic({ apiKey, dangerouslyAllowBrowser: true });
|
|
|
36
36
|
`));let t=e.map(e=>e.type===`text`?{type:`text`,text:o(e.text)}:{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.data}});return t.some(e=>e.type===`text`)||t.unshift({type:`text`,text:`(see attached image)`}),t}var Or=`fine-grained-tool-streaming-2025-05-14`,kr=`interleaved-thinking-2025-05-14`;function Ar(e){return{supportsEagerToolInputStreaming:e.compat?.supportsEagerToolInputStreaming??!0,supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0}}function jr(...e){let t={};for(let n of e)n&&Object.assign(t,n);return t}var Mr=new Set([`message_start`,`message_delta`,`message_stop`,`content_block_start`,`content_block_delta`,`content_block_stop`]);function Nr(e){if(!e.event&&e.data.length===0)return null;let t={event:e.event,data:e.data.join(`
|
|
37
37
|
`),raw:[...e.raw]};return e.event=null,e.data=[],e.raw=[],t}function Pr(e,t){if(e===``)return Nr(t);if(t.raw.push(e),e.startsWith(`:`))return null;let n=e.indexOf(`:`),r=n===-1?e:e.slice(0,n),i=n===-1?``:e.slice(n+1);return i.startsWith(` `)&&(i=i.slice(1)),r===`event`?t.event=i:r===`data`&&t.data.push(i),null}function Fr(e){let t=e.indexOf(`\r`),n=e.indexOf(`
|
|
38
38
|
`);return t===-1?n:n===-1?t:Math.min(t,n)}function Ir(e){let t=Fr(e);if(t===-1)return null;let n=t+1;return e[t]===`\r`&&e[n]===`
|
|
39
|
-
`&&(n+=1),{line:e.slice(0,t),rest:e.slice(n)}}async function*Lr(e,t){let n=e.getReader(),r=new TextDecoder,i={event:null,data:[],raw:[]},a=``;try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{value:e,done:o}=await n.read();if(o)break;a+=r.decode(e,{stream:!0});let s=Ir(a);for(;s;){a=s.rest;let e=Pr(s.line,i);e&&(yield e),s=Ir(a)}}a+=r.decode();let e=Ir(a);for(;e;){a=e.rest;let t=Pr(e.line,i);t&&(yield t),e=Ir(a)}if(a.length>0){let e=Pr(a,i);e&&(yield e)}let o=Nr(i);o&&(yield o)}finally{n.releaseLock()}}async function*Rr(t,n){if(!t.body)throw Error(`Attempted to iterate over an Anthropic response with no body`);for await(let r of Lr(t.body,n)){if(r.event===`error`)throw Error(r.data);if(Mr.has(r.event??``))try{yield e(r.data)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Could not parse Anthropic SSE event ${r.event}: ${t}; data=${r.data}; raw=${r.raw.join(`\\n`)}`)}}}var zr=(e,o,s)=>{let c=new r;return(async()=>{let r={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let l,d;if(s?.client)l=s.client,d=!1;else{let t=s?.apiKey??i(e.provider)??``,n;if(e.provider===`github-copilot`){let e=u(o.messages);n=ee({messages:o.messages,hasImages:e})}let r=Wr(e,t,s?.interleavedThinking??!0,Jr(e,o),s?.headers,n);l=r.client,d=r.isOAuthToken}let f=Gr(e,o,d,s),p=await s?.onPayload?.(f,e);p!==void 0&&(f=p);let m={...s?.signal?{signal:s.signal}:{},...s?.timeoutMs===void 0?{}:{timeout:s.timeoutMs},...s?.maxRetries===void 0?{}:{maxRetries:s.maxRetries}},h=await l.messages.create({...f,stream:!0},m).asResponse();await s?.onResponse?.({status:h.status,headers:a(h.headers)},e),c.push({type:`start`,partial:r});let g=r.content;for await(let i of Rr(h,s?.signal))if(i.type===`message_start`)r.responseId=i.message.id,r.usage.input=i.message.usage.input_tokens||0,r.usage.output=i.message.usage.output_tokens||0,r.usage.cacheRead=i.message.usage.cache_read_input_tokens||0,r.usage.cacheWrite=i.message.usage.cache_creation_input_tokens||0,r.usage.totalTokens=r.usage.input+r.usage.output+r.usage.cacheRead+r.usage.cacheWrite,t(e,r.usage);else if(i.type===`content_block_start`){if(i.content_block.type===`text`){let e={type:`text`,text:``,index:i.index};r.content.push(e),c.push({type:`text_start`,contentIndex:r.content.length-1,partial:r})}else if(i.content_block.type===`thinking`){let e={type:`thinking`,thinking:``,thinkingSignature:``,index:i.index};r.content.push(e),c.push({type:`thinking_start`,contentIndex:r.content.length-1,partial:r})}else if(i.content_block.type===`redacted_thinking`){let e={type:`thinking`,thinking:`[Reasoning redacted]`,thinkingSignature:i.content_block.data,redacted:!0,index:i.index};r.content.push(e),c.push({type:`thinking_start`,contentIndex:r.content.length-1,partial:r})}else if(i.content_block.type===`tool_use`){let e={type:`toolCall`,id:i.content_block.id,name:d?Er(i.content_block.name,o.tools):i.content_block.name,arguments:i.content_block.input??{},partialJson:``,index:i.index};r.content.push(e),c.push({type:`toolcall_start`,contentIndex:r.content.length-1,partial:r})}}else if(i.type===`content_block_delta`){if(i.delta.type===`text_delta`){let e=g.findIndex(e=>e.index===i.index),t=g[e];t&&t.type===`text`&&(t.text+=i.delta.text,c.push({type:`text_delta`,contentIndex:e,delta:i.delta.text,partial:r}))}else if(i.delta.type===`thinking_delta`){let e=g.findIndex(e=>e.index===i.index),t=g[e];t&&t.type===`thinking`&&(t.thinking+=i.delta.thinking,c.push({type:`thinking_delta`,contentIndex:e,delta:i.delta.thinking,partial:r}))}else if(i.delta.type===`input_json_delta`){let e=g.findIndex(e=>e.index===i.index),t=g[e];t&&t.type===`toolCall`&&(t.partialJson+=i.delta.partial_json,t.arguments=n(t.partialJson),c.push({type:`toolcall_delta`,contentIndex:e,delta:i.delta.partial_json,partial:r}))}else if(i.delta.type===`signature_delta`){let e=g[g.findIndex(e=>e.index===i.index)];e&&e.type===`thinking`&&(e.thinkingSignature=e.thinkingSignature||``,e.thinkingSignature+=i.delta.signature)}}else if(i.type===`content_block_stop`){let e=g.findIndex(e=>e.index===i.index),t=g[e];t&&(delete t.index,t.type===`text`?c.push({type:`text_end`,contentIndex:e,content:t.text,partial:r}):t.type===`thinking`?c.push({type:`thinking_end`,contentIndex:e,content:t.thinking,partial:r}):t.type===`toolCall`&&(t.arguments=n(t.partialJson),delete t.partialJson,c.push({type:`toolcall_end`,contentIndex:e,toolCall:t,partial:r})))}else i.type===`message_delta`&&(i.delta.stop_reason&&(r.stopReason=Xr(i.delta.stop_reason)),i.usage.input_tokens!=null&&(r.usage.input=i.usage.input_tokens),i.usage.output_tokens!=null&&(r.usage.output=i.usage.output_tokens),i.usage.cache_read_input_tokens!=null&&(r.usage.cacheRead=i.usage.cache_read_input_tokens),i.usage.cache_creation_input_tokens!=null&&(r.usage.cacheWrite=i.usage.cache_creation_input_tokens),r.usage.totalTokens=r.usage.input+r.usage.output+r.usage.cacheRead+r.usage.cacheWrite,t(e,r.usage));if(s?.signal?.aborted)throw Error(`Request was aborted`);if(r.stopReason===`aborted`||r.stopReason===`error`)throw Error(`An unknown error occurred`);c.push({type:`done`,reason:r.stopReason,message:r}),c.end()}catch(e){for(let e of r.content)delete e.index,delete e.partialJson;r.stopReason=s?.signal?.aborted?`aborted`:`error`,r.errorMessage=e instanceof Error?e.message:JSON.stringify(e),c.push({type:`error`,reason:r.stopReason,error:r}),c.end()}})(),c};function Br(e){return e.includes(`opus-4-6`)||e.includes(`opus-4.6`)||e.includes(`opus-4-7`)||e.includes(`opus-4.7`)||e.includes(`sonnet-4-6`)||e.includes(`sonnet-4.6`)}function Vr(e,t){switch(e){case`minimal`:return`low`;case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;case`xhigh`:return t.includes(`opus-4-6`)||t.includes(`opus-4.6`)?`max`:t.includes(`opus-4-7`)||t.includes(`opus-4.7`)?`xhigh`:`high`;default:return`high`}}var Hr=(e,t,n)=>{let r=n?.apiKey||i(e.provider);if(!r)throw Error(`No API key for provider: ${e.provider}`);let a=c(e,n,r);if(!n?.reasoning)return zr(e,t,{...a,thinkingEnabled:!1});if(Br(e.id)){let r=Vr(n.reasoning,e.id);return zr(e,t,{...a,thinkingEnabled:!0,effort:r})}let o=s(a.maxTokens||0,e.maxTokens,n.reasoning,n.thinkingBudgets);return zr(e,t,{...a,maxTokens:o.maxTokens,thinkingEnabled:!0,thinkingBudgetTokens:o.thinkingBudget})};function Ur(e){return e.includes(`sk-ant-oat`)}function Wr(e,t,n,r,i,a){let o=n&&!Br(e.id);if(e.provider===`github-copilot`){let n=[];return r&&n.push(Or),o&&n.push(kr),{client:new $({apiKey:null,authToken:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:jr({accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,...n.length>0?{"anthropic-beta":n.join(`,`)}:{}},e.headers,a,i)}),isOAuthToken:!1}}let s=[];return r&&s.push(Or),o&&s.push(kr),Ur(t)?{client:new $({apiKey:null,authToken:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:jr({accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,"anthropic-beta":[`claude-code-20250219`,`oauth-2025-04-20`,...s].join(`,`),"user-agent":`claude-cli/${Cr}`,"x-app":`cli`},e.headers,i)}),isOAuthToken:!0}:{client:new $({apiKey:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:jr({accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,...s.length>0?{"anthropic-beta":s.join(`,`)}:{}},e.headers,i)}),isOAuthToken:!1}}function Gr(e,t,n,r){let{cacheControl:i}=Sr(e,r?.cacheRetention),a={model:e.id,messages:qr(t.messages,e,n,i),max_tokens:r?.maxTokens||e.maxTokens/3|0,stream:!0};if(n?(a.system=[{type:`text`,text:`You are Claude Code, Anthropic's official CLI for Claude.`,...i?{cache_control:i}:{}}],t.systemPrompt&&a.system.push({type:`text`,text:o(t.systemPrompt),...i?{cache_control:i}:{}})):t.systemPrompt&&(a.system=[{type:`text`,text:o(t.systemPrompt),...i?{cache_control:i}:{}}]),r?.temperature!==void 0&&!r?.thinkingEnabled&&(a.temperature=r.temperature),t.tools&&t.tools.length>0&&(a.tools=Yr(t.tools,n,Ar(e).supportsEagerToolInputStreaming,i)),e.reasoning)if(r?.thinkingEnabled){let t=r.thinkingDisplay??`summarized`;Br(e.id)?(a.thinking={type:`adaptive`,display:t},r.effort&&(a.output_config=(r.effort,{effort:r.effort}))):a.thinking={type:`enabled`,budget_tokens:r.thinkingBudgetTokens||1024,display:t}}else r?.thinkingEnabled===!1&&(a.thinking={type:`disabled`});if(r?.metadata){let e=r.metadata.user_id;typeof e==`string`&&(a.metadata={user_id:e})}return r?.toolChoice&&(typeof r.toolChoice==`string`?a.tool_choice={type:r.toolChoice}:a.tool_choice=r.toolChoice),a}function Kr(e){return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64)}function qr(e,t,n,r){let i=[],a=l(e,t,Kr);for(let e=0;e<a.length;e++){let t=a[e];if(t.role===`user`)if(typeof t.content==`string`)t.content.trim().length>0&&i.push({role:`user`,content:o(t.content)});else{let e=t.content.map(e=>e.type===`text`?{type:`text`,text:o(e.text)}:{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.data}}).filter(e=>e.type===`text`?e.text.trim().length>0:!0);if(e.length===0)continue;i.push({role:`user`,content:e})}else if(t.role===`assistant`){let e=[];for(let r of t.content)if(r.type===`text`){if(r.text.trim().length===0)continue;e.push({type:`text`,text:o(r.text)})}else if(r.type===`thinking`){if(r.redacted){e.push({type:`redacted_thinking`,data:r.thinkingSignature});continue}if(r.thinking.trim().length===0)continue;!r.thinkingSignature||r.thinkingSignature.trim().length===0?e.push({type:`text`,text:o(r.thinking)}):e.push({type:`thinking`,thinking:o(r.thinking),signature:r.thinkingSignature})}else r.type===`toolCall`&&e.push({type:`tool_use`,id:r.id,name:n?Tr(r.name):r.name,input:r.arguments??{}});if(e.length===0)continue;i.push({role:`assistant`,content:e})}else if(t.role===`toolResult`){let n=[];n.push({type:`tool_result`,tool_use_id:t.toolCallId,content:Dr(t.content),is_error:t.isError});let r=e+1;for(;r<a.length&&a[r].role===`toolResult`;){let e=a[r];n.push({type:`tool_result`,tool_use_id:e.toolCallId,content:Dr(e.content),is_error:e.isError}),r++}e=r-1,i.push({role:`user`,content:n})}}if(r&&i.length>0){let e=i[i.length-1];if(e.role===`user`)if(Array.isArray(e.content)){let t=e.content[e.content.length-1];t&&(t.type===`text`||t.type===`image`||t.type===`tool_result`)&&(t.cache_control=r)}else typeof e.content==`string`&&(e.content=[{type:`text`,text:e.content,cache_control:r}])}return i}function Jr(e,t){return!!t.tools?.length&&!Ar(e).supportsEagerToolInputStreaming}function Yr(e,t,n,r){return e?e.map((i,a)=>{let o=i.parameters;return{name:t?Tr(i.name):i.name,description:i.description,...n?{eager_input_streaming:!0}:{},input_schema:{type:`object`,properties:o.properties??{},required:o.required??[]},...r&&a===e.length-1?{cache_control:r}:{}}}):[]}function Xr(e){switch(e){case`end_turn`:return`stop`;case`max_tokens`:return`length`;case`tool_use`:return`toolUse`;case`refusal`:return`error`;case`pause_turn`:return`stop`;case`stop_sequence`:return`stop`;case`sensitive`:return`error`;default:throw Error(`Unhandled stop reason: ${e}`)}}export{zr as streamAnthropic,Hr as streamSimpleAnthropic};
|
|
39
|
+
`&&(n+=1),{line:e.slice(0,t),rest:e.slice(n)}}async function*Lr(e,t){let n=e.getReader(),r=new TextDecoder,i={event:null,data:[],raw:[]},a=``;try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{value:e,done:o}=await n.read();if(o)break;a+=r.decode(e,{stream:!0});let s=Ir(a);for(;s;){a=s.rest;let e=Pr(s.line,i);e&&(yield e),s=Ir(a)}}a+=r.decode();let e=Ir(a);for(;e;){a=e.rest;let t=Pr(e.line,i);t&&(yield t),e=Ir(a)}if(a.length>0){let e=Pr(a,i);e&&(yield e)}let o=Nr(i);o&&(yield o)}finally{n.releaseLock()}}async function*Rr(e,t){if(!e.body)throw Error(`Attempted to iterate over an Anthropic response with no body`);for await(let r of Lr(e.body,t)){if(r.event===`error`)throw Error(r.data);if(Mr.has(r.event??``))try{yield n(r.data)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Could not parse Anthropic SSE event ${r.event}: ${t}; data=${r.data}; raw=${r.raw.join(`\\n`)}`)}}}var zr=(n,o,s)=>{let c=new t;return(async()=>{let t={role:`assistant`,content:[],api:n.api,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let l,d;if(s?.client)l=s.client,d=!1;else{let e=s?.apiKey??i(n.provider)??``,t;if(n.provider===`github-copilot`){let e=u(o.messages);t=ee({messages:o.messages,hasImages:e})}let r=Wr(n,e,s?.interleavedThinking??!0,Jr(n,o),s?.headers,t);l=r.client,d=r.isOAuthToken}let f=Gr(n,o,d,s),p=await s?.onPayload?.(f,n);p!==void 0&&(f=p);let m={...s?.signal?{signal:s.signal}:{},...s?.timeoutMs===void 0?{}:{timeout:s.timeoutMs},...s?.maxRetries===void 0?{}:{maxRetries:s.maxRetries}},h=await l.messages.create({...f,stream:!0},m).asResponse();await s?.onResponse?.({status:h.status,headers:a(h.headers)},n),c.push({type:`start`,partial:t});let g=t.content;for await(let i of Rr(h,s?.signal))if(i.type===`message_start`)t.responseId=i.message.id,t.usage.input=i.message.usage.input_tokens||0,t.usage.output=i.message.usage.output_tokens||0,t.usage.cacheRead=i.message.usage.cache_read_input_tokens||0,t.usage.cacheWrite=i.message.usage.cache_creation_input_tokens||0,t.usage.totalTokens=t.usage.input+t.usage.output+t.usage.cacheRead+t.usage.cacheWrite,e(n,t.usage);else if(i.type===`content_block_start`){if(i.content_block.type===`text`){let e={type:`text`,text:``,index:i.index};t.content.push(e),c.push({type:`text_start`,contentIndex:t.content.length-1,partial:t})}else if(i.content_block.type===`thinking`){let e={type:`thinking`,thinking:``,thinkingSignature:``,index:i.index};t.content.push(e),c.push({type:`thinking_start`,contentIndex:t.content.length-1,partial:t})}else if(i.content_block.type===`redacted_thinking`){let e={type:`thinking`,thinking:`[Reasoning redacted]`,thinkingSignature:i.content_block.data,redacted:!0,index:i.index};t.content.push(e),c.push({type:`thinking_start`,contentIndex:t.content.length-1,partial:t})}else if(i.content_block.type===`tool_use`){let e={type:`toolCall`,id:i.content_block.id,name:d?Er(i.content_block.name,o.tools):i.content_block.name,arguments:i.content_block.input??{},partialJson:``,index:i.index};t.content.push(e),c.push({type:`toolcall_start`,contentIndex:t.content.length-1,partial:t})}}else if(i.type===`content_block_delta`){if(i.delta.type===`text_delta`){let e=g.findIndex(e=>e.index===i.index),n=g[e];n&&n.type===`text`&&(n.text+=i.delta.text,c.push({type:`text_delta`,contentIndex:e,delta:i.delta.text,partial:t}))}else if(i.delta.type===`thinking_delta`){let e=g.findIndex(e=>e.index===i.index),n=g[e];n&&n.type===`thinking`&&(n.thinking+=i.delta.thinking,c.push({type:`thinking_delta`,contentIndex:e,delta:i.delta.thinking,partial:t}))}else if(i.delta.type===`input_json_delta`){let e=g.findIndex(e=>e.index===i.index),n=g[e];n&&n.type===`toolCall`&&(n.partialJson+=i.delta.partial_json,n.arguments=r(n.partialJson),c.push({type:`toolcall_delta`,contentIndex:e,delta:i.delta.partial_json,partial:t}))}else if(i.delta.type===`signature_delta`){let e=g[g.findIndex(e=>e.index===i.index)];e&&e.type===`thinking`&&(e.thinkingSignature=e.thinkingSignature||``,e.thinkingSignature+=i.delta.signature)}}else if(i.type===`content_block_stop`){let e=g.findIndex(e=>e.index===i.index),n=g[e];n&&(delete n.index,n.type===`text`?c.push({type:`text_end`,contentIndex:e,content:n.text,partial:t}):n.type===`thinking`?c.push({type:`thinking_end`,contentIndex:e,content:n.thinking,partial:t}):n.type===`toolCall`&&(n.arguments=r(n.partialJson),delete n.partialJson,c.push({type:`toolcall_end`,contentIndex:e,toolCall:n,partial:t})))}else i.type===`message_delta`&&(i.delta.stop_reason&&(t.stopReason=Xr(i.delta.stop_reason)),i.usage.input_tokens!=null&&(t.usage.input=i.usage.input_tokens),i.usage.output_tokens!=null&&(t.usage.output=i.usage.output_tokens),i.usage.cache_read_input_tokens!=null&&(t.usage.cacheRead=i.usage.cache_read_input_tokens),i.usage.cache_creation_input_tokens!=null&&(t.usage.cacheWrite=i.usage.cache_creation_input_tokens),t.usage.totalTokens=t.usage.input+t.usage.output+t.usage.cacheRead+t.usage.cacheWrite,e(n,t.usage));if(s?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);c.push({type:`done`,reason:t.stopReason,message:t}),c.end()}catch(e){for(let e of t.content)delete e.index,delete e.partialJson;t.stopReason=s?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e),c.push({type:`error`,reason:t.stopReason,error:t}),c.end()}})(),c};function Br(e){return e.includes(`opus-4-6`)||e.includes(`opus-4.6`)||e.includes(`opus-4-7`)||e.includes(`opus-4.7`)||e.includes(`sonnet-4-6`)||e.includes(`sonnet-4.6`)}function Vr(e,t){switch(e){case`minimal`:return`low`;case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;case`xhigh`:return t.includes(`opus-4-6`)||t.includes(`opus-4.6`)?`max`:t.includes(`opus-4-7`)||t.includes(`opus-4.7`)?`xhigh`:`high`;default:return`high`}}var Hr=(e,t,n)=>{let r=n?.apiKey||i(e.provider);if(!r)throw Error(`No API key for provider: ${e.provider}`);let a=c(e,n,r);if(!n?.reasoning)return zr(e,t,{...a,thinkingEnabled:!1});if(Br(e.id)){let r=Vr(n.reasoning,e.id);return zr(e,t,{...a,thinkingEnabled:!0,effort:r})}let o=s(a.maxTokens||0,e.maxTokens,n.reasoning,n.thinkingBudgets);return zr(e,t,{...a,maxTokens:o.maxTokens,thinkingEnabled:!0,thinkingBudgetTokens:o.thinkingBudget})};function Ur(e){return e.includes(`sk-ant-oat`)}function Wr(e,t,n,r,i,a){let o=n&&!Br(e.id);if(e.provider===`github-copilot`){let n=[];return r&&n.push(Or),o&&n.push(kr),{client:new $({apiKey:null,authToken:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:jr({accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,...n.length>0?{"anthropic-beta":n.join(`,`)}:{}},e.headers,a,i)}),isOAuthToken:!1}}let s=[];return r&&s.push(Or),o&&s.push(kr),Ur(t)?{client:new $({apiKey:null,authToken:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:jr({accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,"anthropic-beta":[`claude-code-20250219`,`oauth-2025-04-20`,...s].join(`,`),"user-agent":`claude-cli/${Cr}`,"x-app":`cli`},e.headers,i)}),isOAuthToken:!0}:{client:new $({apiKey:t,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:jr({accept:`application/json`,"anthropic-dangerous-direct-browser-access":`true`,...s.length>0?{"anthropic-beta":s.join(`,`)}:{}},e.headers,i)}),isOAuthToken:!1}}function Gr(e,t,n,r){let{cacheControl:i}=Sr(e,r?.cacheRetention),a={model:e.id,messages:qr(t.messages,e,n,i),max_tokens:r?.maxTokens||e.maxTokens/3|0,stream:!0};if(n?(a.system=[{type:`text`,text:`You are Claude Code, Anthropic's official CLI for Claude.`,...i?{cache_control:i}:{}}],t.systemPrompt&&a.system.push({type:`text`,text:o(t.systemPrompt),...i?{cache_control:i}:{}})):t.systemPrompt&&(a.system=[{type:`text`,text:o(t.systemPrompt),...i?{cache_control:i}:{}}]),r?.temperature!==void 0&&!r?.thinkingEnabled&&(a.temperature=r.temperature),t.tools&&t.tools.length>0&&(a.tools=Yr(t.tools,n,Ar(e).supportsEagerToolInputStreaming,i)),e.reasoning)if(r?.thinkingEnabled){let t=r.thinkingDisplay??`summarized`;Br(e.id)?(a.thinking={type:`adaptive`,display:t},r.effort&&(a.output_config=(r.effort,{effort:r.effort}))):a.thinking={type:`enabled`,budget_tokens:r.thinkingBudgetTokens||1024,display:t}}else r?.thinkingEnabled===!1&&(a.thinking={type:`disabled`});if(r?.metadata){let e=r.metadata.user_id;typeof e==`string`&&(a.metadata={user_id:e})}return r?.toolChoice&&(typeof r.toolChoice==`string`?a.tool_choice={type:r.toolChoice}:a.tool_choice=r.toolChoice),a}function Kr(e){return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64)}function qr(e,t,n,r){let i=[],a=l(e,t,Kr);for(let e=0;e<a.length;e++){let t=a[e];if(t.role===`user`)if(typeof t.content==`string`)t.content.trim().length>0&&i.push({role:`user`,content:o(t.content)});else{let e=t.content.map(e=>e.type===`text`?{type:`text`,text:o(e.text)}:{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.data}}).filter(e=>e.type===`text`?e.text.trim().length>0:!0);if(e.length===0)continue;i.push({role:`user`,content:e})}else if(t.role===`assistant`){let e=[];for(let r of t.content)if(r.type===`text`){if(r.text.trim().length===0)continue;e.push({type:`text`,text:o(r.text)})}else if(r.type===`thinking`){if(r.redacted){e.push({type:`redacted_thinking`,data:r.thinkingSignature});continue}if(r.thinking.trim().length===0)continue;!r.thinkingSignature||r.thinkingSignature.trim().length===0?e.push({type:`text`,text:o(r.thinking)}):e.push({type:`thinking`,thinking:o(r.thinking),signature:r.thinkingSignature})}else r.type===`toolCall`&&e.push({type:`tool_use`,id:r.id,name:n?Tr(r.name):r.name,input:r.arguments??{}});if(e.length===0)continue;i.push({role:`assistant`,content:e})}else if(t.role===`toolResult`){let n=[];n.push({type:`tool_result`,tool_use_id:t.toolCallId,content:Dr(t.content),is_error:t.isError});let r=e+1;for(;r<a.length&&a[r].role===`toolResult`;){let e=a[r];n.push({type:`tool_result`,tool_use_id:e.toolCallId,content:Dr(e.content),is_error:e.isError}),r++}e=r-1,i.push({role:`user`,content:n})}}if(r&&i.length>0){let e=i[i.length-1];if(e.role===`user`)if(Array.isArray(e.content)){let t=e.content[e.content.length-1];t&&(t.type===`text`||t.type===`image`||t.type===`tool_result`)&&(t.cache_control=r)}else typeof e.content==`string`&&(e.content=[{type:`text`,text:e.content,cache_control:r}])}return i}function Jr(e,t){return!!t.tools?.length&&!Ar(e).supportsEagerToolInputStreaming}function Yr(e,t,n,r){return e?e.map((i,a)=>{let o=i.parameters;return{name:t?Tr(i.name):i.name,description:i.description,...n?{eager_input_streaming:!0}:{},input_schema:{type:`object`,properties:o.properties??{},required:o.required??[]},...r&&a===e.length-1?{cache_control:r}:{}}}):[]}function Xr(e){switch(e){case`end_turn`:return`stop`;case`max_tokens`:return`length`;case`tool_use`:return`toolUse`;case`refusal`:return`error`;case`pause_turn`:return`stop`;case`stop_sequence`:return`stop`;case`sensitive`:return`error`;default:throw Error(`Unhandled stop reason: ${e}`)}}export{zr as streamAnthropic,Hr as streamSimpleAnthropic};
|
package/dist/assets/{azure-openai-responses-DQ6xSOmb.js → azure-openai-responses-D68z7hLN.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as e,o as t,s as n}from"./index-DoraECXN.js";import{t as r}from"./headers-5EYI0_pl.js";import{i,r as a}from"./transform-messages-CV4kCtBB.js";import{t as o}from"./openai-Cn7eGqwa.js";import{n as s,r as c,t as l}from"./openai-responses-shared-BIKPTpEQ.js";var u=`v1`,d=new Set([`openai`,`openai-codex`,`opencode`,`azure-openai-responses`]);function f(e){let t=new Map;if(!e)return t;for(let n of e.split(`,`)){let e=n.trim();if(!e)continue;let[r,i]=e.split(`=`,2);!r||!i||t.set(r.trim(),i.trim())}return t}function p(e,t){return t?.azureDeploymentName?t.azureDeploymentName:f({}.AZURE_OPENAI_DEPLOYMENT_NAME_MAP).get(e.id)||e.id}var m=(t,i,a)=>{let o=new e;return(async()=>{let e=p(t,a),s={role:`assistant`,content:[],api:`azure-openai-responses`,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let l=y(t,a?.apiKey||n(t.provider)||``,a),u=b(t,i,a,e),d=await a?.onPayload?.(u,t);d!==void 0&&(u=d);let f={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},...a?.maxRetries===void 0?{}:{maxRetries:a.maxRetries}},{data:p,response:m}=await l.responses.create(u,f).withResponse();if(await a?.onResponse?.({status:m.status,headers:r(m.headers)},t),o.push({type:`start`,partial:s}),await c(p,s,o,t),a?.signal?.aborted)throw Error(`Request was aborted`);if(s.stopReason===`aborted`||s.stopReason===`error`)throw Error(`An unknown error occurred`);o.push({type:`done`,reason:s.stopReason,message:s}),o.end()}catch(e){for(let e of s.content)delete e.index,delete e.partialJson;s.stopReason=a?.signal?.aborted?`aborted`:`error`,s.errorMessage=e instanceof Error?e.message:JSON.stringify(e),o.push({type:`error`,reason:s.stopReason,error:s}),o.end()}})(),o},h=(e,r,o)=>{let s=o?.apiKey||n(e.provider);if(!s)throw Error(`No API key for provider: ${e.provider}`);let c=a(e,o,s),l=t(e)?o?.reasoning:i(o?.reasoning);return m(e,r,{...c,reasoningEffort:l})};function g(e){let t=e.trim().replace(/\/+$/,``),n;try{n=new URL(t)}catch{throw Error(`Invalid Azure OpenAI base URL: ${e}`)}let r=n.hostname.endsWith(`.openai.azure.com`)||n.hostname.endsWith(`.cognitiveservices.azure.com`),i=n.pathname.replace(/\/+$/,``);return r&&(i===``||i===`/`||i===`/openai`)&&(n.pathname=`/openai/v1`,n.search=``),n.toString().replace(/\/+$/,``)}function _(e){return`https://${e}.openai.azure.com/openai/v1`}function v(e,t){let n=t?.azureApiVersion||{}.AZURE_OPENAI_API_VERSION||u,r=t?.azureBaseUrl?.trim()||{}.AZURE_OPENAI_BASE_URL?.trim()||void 0,i=t?.azureResourceName||{}.AZURE_OPENAI_RESOURCE_NAME,a=r;if(!a&&i&&(a=_(i)),!a&&e.baseUrl&&(a=e.baseUrl),!a)throw Error(`Azure OpenAI base URL is required. Set AZURE_OPENAI_BASE_URL or AZURE_OPENAI_RESOURCE_NAME, or pass azureBaseUrl, azureResourceName, or model.baseUrl.`);return{baseUrl:g(a),apiVersion:n}}function y(e,t,n){if(!t){if(!{}.AZURE_OPENAI_API_KEY)throw Error(`Azure OpenAI API key is required. Set AZURE_OPENAI_API_KEY environment variable or pass it as an argument.`);t={}.AZURE_OPENAI_API_KEY}let r={...e.headers};n?.headers&&Object.assign(r,n.headers);let{baseUrl:i,apiVersion:a}=v(e,n);return new o({apiKey:t,apiVersion:a,dangerouslyAllowBrowser:!0,defaultHeaders:r,baseURL:i})}function b(e,t,n,r){let i={model:r,input:l(e,t,d),stream:!0,prompt_cache_key:n?.sessionId};return n?.maxTokens&&(i.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(i.temperature=n?.temperature),t.tools&&t.tools.length>0&&(i.tools=s(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(i.reasoning={effort:n?.reasoningEffort||`medium`,summary:n?.reasoningSummary||`auto`},i.include=[`reasoning.encrypted_content`]):i.reasoning={effort:`none`}),i}export{m as streamAzureOpenAIResponses,h as streamSimpleAzureOpenAIResponses};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},t=(e,t)=>({classGroupId:e,validator:t}),n=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),r=`-`,i=[],a=`arbitrary..`,o=t=>{let n=l(t),{conflictingClassGroups:a,conflictingClassGroupModifiers:o}=t;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return c(e);let t=e.split(r);return s(t,+(t[0]===``&&t.length>1),n)},getConflictingClassGroupIds:(t,n)=>{if(n){let n=o[t],r=a[t];return n?r?e(r,n):n:r||i}return a[t]||i}}},s=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let i=e[t],a=n.nextPart.get(i);if(a){let n=s(e,t+1,a);if(n)return n}let o=n.validators;if(o===null)return;let c=t===0?e.join(r):e.slice(t).join(r),l=o.length;for(let e=0;e<l;e++){let t=o[e];if(t.validator(c))return t.classGroupId}},c=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?a+r:void 0})(),l=e=>{let{theme:t,classGroups:n}=e;return u(n,t)},u=(e,t)=>{let r=n();for(let n in e){let i=e[n];d(i,r,n,t)}return r},d=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];f(i,t,n,r)}},f=(e,t,n,r)=>{if(typeof e==`string`){p(e,t,n);return}if(typeof e==`function`){m(e,t,n,r);return}h(e,t,n,r)},p=(e,t,n)=>{let r=e===``?t:g(t,e);r.classGroupId=n},m=(e,n,r,i)=>{if(ee(e)){d(e(i),n,r,i);return}n.validators===null&&(n.validators=[]),n.validators.push(t(r,e))},h=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];d(o,g(t,a),n,r)}},g=(e,t)=>{let i=e,a=t.split(r),o=a.length;for(let e=0;e<o;e++){let t=a[e],r=i.nextPart.get(t);r||(r=n(),i.nextPart.set(t,r)),i=r}return i},ee=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,te=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},_=`!`,v=`:`,y=[],b=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),x=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===v){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(_)?(c=s.slice(0,-1),l=!0):s.startsWith(_)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return b(t,l,c,u)};if(t){let e=t+v,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):b(y,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},S=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},C=e=>({cache:te(e.cacheSize),parseClassName:x(e),sortModifiers:S(e),...o(e)}),ne=/\s+/,re=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a}=t,o=[],s=e.trim().split(ne),c=``;for(let e=s.length-1;e>=0;--e){let t=s[e],{isExternal:l,modifiers:u,hasImportantModifier:d,baseClassName:f,maybePostfixModifierPosition:p}=n(t);if(l){c=t+(c.length>0?` `+c:c);continue}let m=!!p,h=r(m?f.substring(0,p):f);if(!h){if(!m){c=t+(c.length>0?` `+c:c);continue}if(h=r(f),!h){c=t+(c.length>0?` `+c:c);continue}m=!1}let g=u.length===0?``:u.length===1?u[0]:a(u).join(`:`),ee=d?g+_:g,te=ee+h;if(o.indexOf(te)>-1)continue;o.push(te);let v=i(h,m);for(let e=0;e<v.length;++e){let t=v[e];o.push(ee+t)}c=t+(c.length>0?` `+c:c)}return c},w=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=T(n))&&(i&&(i+=` `),i+=r);return i},T=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=T(e[r]))&&(n&&(n+=` `),n+=t);return n},E=(e,...t)=>{let n,r,i,a,o=o=>(n=C(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=re(e,n);return i(e,a),a};return a=o,(...e)=>a(w(...e))},D=[],O=e=>{let t=t=>t[e]||D;return t.isThemeGetter=!0,t},k=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,A=/^\((?:(\w[\w-]*):)?(.+)\)$/i,ie=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,j=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,M=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ae=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,oe=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,se=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,N=e=>ie.test(e),P=e=>!!e&&!Number.isNaN(Number(e)),F=e=>!!e&&Number.isInteger(Number(e)),ce=e=>e.endsWith(`%`)&&P(e.slice(0,-1)),I=e=>j.test(e),le=()=>!0,L=e=>M.test(e)&&!ae.test(e),R=()=>!1,z=e=>oe.test(e),B=e=>se.test(e),ue=e=>!V(e)&&!W(e),de=e=>q(e,Z,R),V=e=>k.test(e),H=e=>q(e,Q,L),fe=e=>q(e,$,P),pe=e=>q(e,Ce,le),me=e=>q(e,Se,R),he=e=>q(e,Y,R),ge=e=>q(e,X,B),U=e=>q(e,we,z),W=e=>A.test(e),G=e=>J(e,Q),_e=e=>J(e,Se),ve=e=>J(e,Y),ye=e=>J(e,Z),be=e=>J(e,X),K=e=>J(e,we,!0),xe=e=>J(e,Ce,!0),q=(e,t,n)=>{let r=k.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},J=(e,t,n=!1)=>{let r=A.exec(e);return r?r[1]?t(r[1]):n:!1},Y=e=>e===`position`||e===`percentage`,X=e=>e===`image`||e===`url`,Z=e=>e===`length`||e===`size`||e===`bg-size`,Q=e=>e===`length`,$=e=>e===`number`,Se=e=>e===`family-name`,Ce=e=>e===`number`||e===`weight`,we=e=>e===`shadow`,Te=E(()=>{let e=O(`color`),t=O(`font`),n=O(`text`),r=O(`font-weight`),i=O(`tracking`),a=O(`leading`),o=O(`breakpoint`),s=O(`container`),c=O(`spacing`),l=O(`radius`),u=O(`shadow`),d=O(`inset-shadow`),f=O(`text-shadow`),p=O(`drop-shadow`),m=O(`blur`),h=O(`perspective`),g=O(`aspect`),ee=O(`ease`),te=O(`animate`),_=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],v=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],y=()=>[...v(),W,V],b=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],x=()=>[`auto`,`contain`,`none`],S=()=>[W,V,c],C=()=>[N,`full`,`auto`,...S()],ne=()=>[F,`none`,`subgrid`,W,V],re=()=>[`auto`,{span:[`full`,F,W,V]},F,W,V],w=()=>[F,`auto`,W,V],T=()=>[`auto`,`min`,`max`,`fr`,W,V],E=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],D=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],k=()=>[`auto`,...S()],A=()=>[N,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...S()],ie=()=>[N,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...S()],j=()=>[N,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...S()],M=()=>[e,W,V],ae=()=>[...v(),ve,he,{position:[W,V]}],oe=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],se=()=>[`auto`,`cover`,`contain`,ye,de,{size:[W,V]}],L=()=>[ce,G,H],R=()=>[``,`none`,`full`,l,W,V],z=()=>[``,P,G,H],B=()=>[`solid`,`dashed`,`dotted`,`double`],q=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],J=()=>[P,ce,ve,he],Y=()=>[``,`none`,m,W,V],X=()=>[`none`,P,W,V],Z=()=>[`none`,P,W,V],Q=()=>[P,W,V],$=()=>[N,`full`,...S()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[I],breakpoint:[I],color:[le],container:[I],"drop-shadow":[I],ease:[`in`,`out`,`in-out`],font:[ue],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[I],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[I],shadow:[I],spacing:[`px`,P],text:[I],"text-shadow":[I],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,N,V,W,g]}],container:[`container`],columns:[{columns:[P,V,W,s]}],"break-after":[{"break-after":_()}],"break-before":[{"break-before":_()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:y()}],overflow:[{overflow:b()}],"overflow-x":[{"overflow-x":b()}],"overflow-y":[{"overflow-y":b()}],overscroll:[{overscroll:x()}],"overscroll-x":[{"overscroll-x":x()}],"overscroll-y":[{"overscroll-y":x()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:C()}],"inset-x":[{"inset-x":C()}],"inset-y":[{"inset-y":C()}],start:[{"inset-s":C(),start:C()}],end:[{"inset-e":C(),end:C()}],"inset-bs":[{"inset-bs":C()}],"inset-be":[{"inset-be":C()}],top:[{top:C()}],right:[{right:C()}],bottom:[{bottom:C()}],left:[{left:C()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[F,`auto`,W,V]}],basis:[{basis:[N,`full`,`auto`,s,...S()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[P,N,`auto`,`initial`,`none`,V]}],grow:[{grow:[``,P,W,V]}],shrink:[{shrink:[``,P,W,V]}],order:[{order:[F,`first`,`last`,`none`,W,V]}],"grid-cols":[{"grid-cols":ne()}],"col-start-end":[{col:re()}],"col-start":[{"col-start":w()}],"col-end":[{"col-end":w()}],"grid-rows":[{"grid-rows":ne()}],"row-start-end":[{row:re()}],"row-start":[{"row-start":w()}],"row-end":[{"row-end":w()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":T()}],"auto-rows":[{"auto-rows":T()}],gap:[{gap:S()}],"gap-x":[{"gap-x":S()}],"gap-y":[{"gap-y":S()}],"justify-content":[{justify:[...E(),`normal`]}],"justify-items":[{"justify-items":[...D(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...D()]}],"align-content":[{content:[`normal`,...E()]}],"align-items":[{items:[...D(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...D(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":E()}],"place-items":[{"place-items":[...D(),`baseline`]}],"place-self":[{"place-self":[`auto`,...D()]}],p:[{p:S()}],px:[{px:S()}],py:[{py:S()}],ps:[{ps:S()}],pe:[{pe:S()}],pbs:[{pbs:S()}],pbe:[{pbe:S()}],pt:[{pt:S()}],pr:[{pr:S()}],pb:[{pb:S()}],pl:[{pl:S()}],m:[{m:k()}],mx:[{mx:k()}],my:[{my:k()}],ms:[{ms:k()}],me:[{me:k()}],mbs:[{mbs:k()}],mbe:[{mbe:k()}],mt:[{mt:k()}],mr:[{mr:k()}],mb:[{mb:k()}],ml:[{ml:k()}],"space-x":[{"space-x":S()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":S()}],"space-y-reverse":[`space-y-reverse`],size:[{size:A()}],"inline-size":[{inline:[`auto`,...ie()]}],"min-inline-size":[{"min-inline":[`auto`,...ie()]}],"max-inline-size":[{"max-inline":[`none`,...ie()]}],"block-size":[{block:[`auto`,...j()]}],"min-block-size":[{"min-block":[`auto`,...j()]}],"max-block-size":[{"max-block":[`none`,...j()]}],w:[{w:[s,`screen`,...A()]}],"min-w":[{"min-w":[s,`screen`,`none`,...A()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...A()]}],h:[{h:[`screen`,`lh`,...A()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...A()]}],"max-h":[{"max-h":[`screen`,`lh`,...A()]}],"font-size":[{text:[`base`,n,G,H]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,xe,pe]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,ce,V]}],"font-family":[{font:[_e,me,t]}],"font-features":[{"font-features":[V]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,W,V]}],"line-clamp":[{"line-clamp":[P,`none`,W,fe]}],leading:[{leading:[a,...S()]}],"list-image":[{"list-image":[`none`,W,V]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,W,V]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:M()}],"text-color":[{text:M()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...B(),`wavy`]}],"text-decoration-thickness":[{decoration:[P,`from-font`,`auto`,W,H]}],"text-decoration-color":[{decoration:M()}],"underline-offset":[{"underline-offset":[P,`auto`,W,V]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:S()}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,W,V]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,W,V]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:ae()}],"bg-repeat":[{bg:oe()}],"bg-size":[{bg:se()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},F,W,V],radial:[``,W,V],conic:[F,W,V]},be,ge]}],"bg-color":[{bg:M()}],"gradient-from-pos":[{from:L()}],"gradient-via-pos":[{via:L()}],"gradient-to-pos":[{to:L()}],"gradient-from":[{from:M()}],"gradient-via":[{via:M()}],"gradient-to":[{to:M()}],rounded:[{rounded:R()}],"rounded-s":[{"rounded-s":R()}],"rounded-e":[{"rounded-e":R()}],"rounded-t":[{"rounded-t":R()}],"rounded-r":[{"rounded-r":R()}],"rounded-b":[{"rounded-b":R()}],"rounded-l":[{"rounded-l":R()}],"rounded-ss":[{"rounded-ss":R()}],"rounded-se":[{"rounded-se":R()}],"rounded-ee":[{"rounded-ee":R()}],"rounded-es":[{"rounded-es":R()}],"rounded-tl":[{"rounded-tl":R()}],"rounded-tr":[{"rounded-tr":R()}],"rounded-br":[{"rounded-br":R()}],"rounded-bl":[{"rounded-bl":R()}],"border-w":[{border:z()}],"border-w-x":[{"border-x":z()}],"border-w-y":[{"border-y":z()}],"border-w-s":[{"border-s":z()}],"border-w-e":[{"border-e":z()}],"border-w-bs":[{"border-bs":z()}],"border-w-be":[{"border-be":z()}],"border-w-t":[{"border-t":z()}],"border-w-r":[{"border-r":z()}],"border-w-b":[{"border-b":z()}],"border-w-l":[{"border-l":z()}],"divide-x":[{"divide-x":z()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":z()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...B(),`hidden`,`none`]}],"divide-style":[{divide:[...B(),`hidden`,`none`]}],"border-color":[{border:M()}],"border-color-x":[{"border-x":M()}],"border-color-y":[{"border-y":M()}],"border-color-s":[{"border-s":M()}],"border-color-e":[{"border-e":M()}],"border-color-bs":[{"border-bs":M()}],"border-color-be":[{"border-be":M()}],"border-color-t":[{"border-t":M()}],"border-color-r":[{"border-r":M()}],"border-color-b":[{"border-b":M()}],"border-color-l":[{"border-l":M()}],"divide-color":[{divide:M()}],"outline-style":[{outline:[...B(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[P,W,V]}],"outline-w":[{outline:[``,P,G,H]}],"outline-color":[{outline:M()}],shadow:[{shadow:[``,`none`,u,K,U]}],"shadow-color":[{shadow:M()}],"inset-shadow":[{"inset-shadow":[`none`,d,K,U]}],"inset-shadow-color":[{"inset-shadow":M()}],"ring-w":[{ring:z()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:M()}],"ring-offset-w":[{"ring-offset":[P,H]}],"ring-offset-color":[{"ring-offset":M()}],"inset-ring-w":[{"inset-ring":z()}],"inset-ring-color":[{"inset-ring":M()}],"text-shadow":[{"text-shadow":[`none`,f,K,U]}],"text-shadow-color":[{"text-shadow":M()}],opacity:[{opacity:[P,W,V]}],"mix-blend":[{"mix-blend":[...q(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":q()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[P]}],"mask-image-linear-from-pos":[{"mask-linear-from":J()}],"mask-image-linear-to-pos":[{"mask-linear-to":J()}],"mask-image-linear-from-color":[{"mask-linear-from":M()}],"mask-image-linear-to-color":[{"mask-linear-to":M()}],"mask-image-t-from-pos":[{"mask-t-from":J()}],"mask-image-t-to-pos":[{"mask-t-to":J()}],"mask-image-t-from-color":[{"mask-t-from":M()}],"mask-image-t-to-color":[{"mask-t-to":M()}],"mask-image-r-from-pos":[{"mask-r-from":J()}],"mask-image-r-to-pos":[{"mask-r-to":J()}],"mask-image-r-from-color":[{"mask-r-from":M()}],"mask-image-r-to-color":[{"mask-r-to":M()}],"mask-image-b-from-pos":[{"mask-b-from":J()}],"mask-image-b-to-pos":[{"mask-b-to":J()}],"mask-image-b-from-color":[{"mask-b-from":M()}],"mask-image-b-to-color":[{"mask-b-to":M()}],"mask-image-l-from-pos":[{"mask-l-from":J()}],"mask-image-l-to-pos":[{"mask-l-to":J()}],"mask-image-l-from-color":[{"mask-l-from":M()}],"mask-image-l-to-color":[{"mask-l-to":M()}],"mask-image-x-from-pos":[{"mask-x-from":J()}],"mask-image-x-to-pos":[{"mask-x-to":J()}],"mask-image-x-from-color":[{"mask-x-from":M()}],"mask-image-x-to-color":[{"mask-x-to":M()}],"mask-image-y-from-pos":[{"mask-y-from":J()}],"mask-image-y-to-pos":[{"mask-y-to":J()}],"mask-image-y-from-color":[{"mask-y-from":M()}],"mask-image-y-to-color":[{"mask-y-to":M()}],"mask-image-radial":[{"mask-radial":[W,V]}],"mask-image-radial-from-pos":[{"mask-radial-from":J()}],"mask-image-radial-to-pos":[{"mask-radial-to":J()}],"mask-image-radial-from-color":[{"mask-radial-from":M()}],"mask-image-radial-to-color":[{"mask-radial-to":M()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":v()}],"mask-image-conic-pos":[{"mask-conic":[P]}],"mask-image-conic-from-pos":[{"mask-conic-from":J()}],"mask-image-conic-to-pos":[{"mask-conic-to":J()}],"mask-image-conic-from-color":[{"mask-conic-from":M()}],"mask-image-conic-to-color":[{"mask-conic-to":M()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:ae()}],"mask-repeat":[{mask:oe()}],"mask-size":[{mask:se()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,W,V]}],filter:[{filter:[``,`none`,W,V]}],blur:[{blur:Y()}],brightness:[{brightness:[P,W,V]}],contrast:[{contrast:[P,W,V]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,K,U]}],"drop-shadow-color":[{"drop-shadow":M()}],grayscale:[{grayscale:[``,P,W,V]}],"hue-rotate":[{"hue-rotate":[P,W,V]}],invert:[{invert:[``,P,W,V]}],saturate:[{saturate:[P,W,V]}],sepia:[{sepia:[``,P,W,V]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,W,V]}],"backdrop-blur":[{"backdrop-blur":Y()}],"backdrop-brightness":[{"backdrop-brightness":[P,W,V]}],"backdrop-contrast":[{"backdrop-contrast":[P,W,V]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,P,W,V]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[P,W,V]}],"backdrop-invert":[{"backdrop-invert":[``,P,W,V]}],"backdrop-opacity":[{"backdrop-opacity":[P,W,V]}],"backdrop-saturate":[{"backdrop-saturate":[P,W,V]}],"backdrop-sepia":[{"backdrop-sepia":[``,P,W,V]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":S()}],"border-spacing-x":[{"border-spacing-x":S()}],"border-spacing-y":[{"border-spacing-y":S()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,W,V]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[P,`initial`,W,V]}],ease:[{ease:[`linear`,`initial`,ee,W,V]}],delay:[{delay:[P,W,V]}],animate:[{animate:[`none`,te,W,V]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,W,V]}],"perspective-origin":[{"perspective-origin":y()}],rotate:[{rotate:X()}],"rotate-x":[{"rotate-x":X()}],"rotate-y":[{"rotate-y":X()}],"rotate-z":[{"rotate-z":X()}],scale:[{scale:Z()}],"scale-x":[{"scale-x":Z()}],"scale-y":[{"scale-y":Z()}],"scale-z":[{"scale-z":Z()}],"scale-3d":[`scale-3d`],skew:[{skew:Q()}],"skew-x":[{"skew-x":Q()}],"skew-y":[{"skew-y":Q()}],transform:[{transform:[W,V,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:y()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:$()}],"translate-x":[{"translate-x":$()}],"translate-y":[{"translate-y":$()}],"translate-z":[{"translate-z":$()}],"translate-none":[`translate-none`],accent:[{accent:M()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:M()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,W,V]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mbs":[{"scroll-mbs":S()}],"scroll-mbe":[{"scroll-mbe":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pbs":[{"scroll-pbs":S()}],"scroll-pbe":[{"scroll-pbe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,W,V]}],fill:[{fill:[`none`,...M()]}],"stroke-w":[{stroke:[P,G,H,fe]}],stroke:[{stroke:[`none`,...M()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function Ee(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=Ee(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function De(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Ee(e))&&(r&&(r+=` `),r+=t);return r}var Oe=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,ke=De,Ae=(e,t)=>n=>{if(t?.variants==null)return ke(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=Oe(t)||Oe(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return ke(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)};export{De as n,Te as r,Ae as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e,i as t,s as n}from"./index-DoraECXN.js";import{a as r,i,r as a}from"./transform-messages-CV4kCtBB.js";import{c as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./google-shared-XhYUKiGZ.js";var p=0,m=(r,i,a)=>{let o=new t;return(async()=>{let t={role:`assistant`,content:[],api:`google-generative-ai`,provider:r.provider,model:r.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let c=g(r,a?.apiKey||n(r.provider)||``,a?.headers),l=_(r,i,a),f=await a?.onPayload?.(l,r);f!==void 0&&(l=f);let m=await c.models.generateContentStream(l);o.push({type:`start`,partial:t});let h=null,v=t.content,y=()=>v.length-1;for await(let n of m){t.responseId||=n.responseId;let i=n.candidates?.[0];if(i?.content?.parts)for(let e of i.content.parts){if(e.text!==void 0){let n=u(e);(!h||n&&h.type!==`thinking`||!n&&h.type!==`text`)&&(h&&(h.type===`text`?o.push({type:`text_end`,contentIndex:v.length-1,content:h.text,partial:t}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t})),n?(h={type:`thinking`,thinking:``,thinkingSignature:void 0},t.content.push(h),o.push({type:`thinking_start`,contentIndex:y(),partial:t})):(h={type:`text`,text:``},t.content.push(h),o.push({type:`text_start`,contentIndex:y(),partial:t}))),h.type===`thinking`?(h.thinking+=e.text,h.thinkingSignature=d(h.thinkingSignature,e.thoughtSignature),o.push({type:`thinking_delta`,contentIndex:y(),delta:e.text,partial:t})):(h.text+=e.text,h.textSignature=d(h.textSignature,e.thoughtSignature),o.push({type:`text_delta`,contentIndex:y(),delta:e.text,partial:t}))}if(e.functionCall){h&&=(h.type===`text`?o.push({type:`text_end`,contentIndex:y(),content:h.text,partial:t}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t}),null);let n=e.functionCall.id,r={type:`toolCall`,id:!n||t.content.some(e=>e.type===`toolCall`&&e.id===n)?`${e.functionCall.name}_${Date.now()}_${++p}`:n,name:e.functionCall.name||``,arguments:e.functionCall.args??{},...e.thoughtSignature&&{thoughtSignature:e.thoughtSignature}};t.content.push(r),o.push({type:`toolcall_start`,contentIndex:y(),partial:t}),o.push({type:`toolcall_delta`,contentIndex:y(),delta:JSON.stringify(r.arguments),partial:t}),o.push({type:`toolcall_end`,contentIndex:y(),toolCall:r,partial:t})}}i?.finishReason&&(t.stopReason=s(i.finishReason),t.content.some(e=>e.type===`toolCall`)&&(t.stopReason=`toolUse`)),n.usageMetadata&&(t.usage={input:(n.usageMetadata.promptTokenCount||0)-(n.usageMetadata.cachedContentTokenCount||0),output:(n.usageMetadata.candidatesTokenCount||0)+(n.usageMetadata.thoughtsTokenCount||0),cacheRead:n.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,totalTokens:n.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},e(r,t.usage))}if(h&&(h.type===`text`?o.push({type:`text_end`,contentIndex:y(),content:h.text,partial:t}):o.push({type:`thinking_end`,contentIndex:y(),content:h.thinking,partial:t})),a?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);o.push({type:`done`,reason:t.stopReason,message:t}),o.end()}catch(e){for(let e of t.content)`index`in e&&delete e.index;t.stopReason=a?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e),o.push({type:`error`,reason:t.stopReason,error:t}),o.end()}})(),o},h=(e,t,r)=>{let o=r?.apiKey||n(e.provider);if(!o)throw Error(`No API key for provider: ${e.provider}`);let s=a(e,r,o);if(!r?.reasoning)return m(e,t,{...s,thinking:{enabled:!1}});let c=i(r.reasoning),l=e;return y(l)||b(l)||v(l)?m(e,t,{...s,thinking:{enabled:!0,level:S(c,l)}}):m(e,t,{...s,thinking:{enabled:!0,budgetTokens:C(l,c,r.thinkingBudgets)}})};function g(e,t,n){let r={};return e.baseUrl&&(r.baseUrl=e.baseUrl,r.apiVersion=``),(e.headers||n)&&(r.headers={...e.headers,...n}),new o({apiKey:t,httpOptions:Object.keys(r).length>0?r:void 0})}function _(e,t,n={}){let i=f(e,t),a={};n.temperature!==void 0&&(a.temperature=n.temperature),n.maxTokens!==void 0&&(a.maxOutputTokens=n.maxTokens);let o={...Object.keys(a).length>0&&a,...t.systemPrompt&&{systemInstruction:r(t.systemPrompt)},...t.tools&&t.tools.length>0&&{tools:c(t.tools)}};if(t.tools&&t.tools.length>0&&n.toolChoice?o.toolConfig={functionCallingConfig:{mode:l(n.toolChoice)}}:o.toolConfig=void 0,n.thinking?.enabled&&e.reasoning){let e={includeThoughts:!0};n.thinking.level===void 0?n.thinking.budgetTokens!==void 0&&(e.thinkingBudget=n.thinking.budgetTokens):e.thinkingLevel=n.thinking.level,o.thinkingConfig=e}else e.reasoning&&n.thinking&&!n.thinking.enabled&&(o.thinkingConfig=x(e));if(n.signal){if(n.signal.aborted)throw Error(`Request aborted`);o.abortSignal=n.signal}return{model:e.id,contents:i,config:o}}function v(e){return/gemma-?4/.test(e.id.toLowerCase())}function y(e){return/gemini-3(?:\.\d+)?-pro/.test(e.id.toLowerCase())}function b(e){return/gemini-3(?:\.\d+)?-flash/.test(e.id.toLowerCase())}function x(e){return y(e)?{thinkingLevel:`LOW`}:b(e)||v(e)?{thinkingLevel:`MINIMAL`}:{thinkingBudget:0}}function S(e,t){if(y(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}if(v(t))switch(e){case`minimal`:case`low`:return`MINIMAL`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}function C(e,t,n){return n?.[t]===void 0?e.id.includes(`2.5-pro`)?{minimal:128,low:2048,medium:8192,high:32768}[t]:e.id.includes(`2.5-flash-lite`)?{minimal:512,low:2048,medium:8192,high:24576}[t]:e.id.includes(`2.5-flash`)?{minimal:128,low:2048,medium:8192,high:24576}[t]:-1:n[t]}export{m as streamGoogle,h as streamSimpleGoogle};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e,i as t}from"./index-DoraECXN.js";import{t as n}from"./headers-5EYI0_pl.js";import{a as r,i,r as a}from"./transform-messages-CV4kCtBB.js";import{a as o,n as s,o as c,r as l,s as u,t as d}from"./google-shared-XhYUKiGZ.js";var f=`https://cloudcode-pa.googleapis.com`,p=[`https://daily-cloudcode-pa.sandbox.googleapis.com`,`https://autopush-cloudcode-pa.sandbox.googleapis.com`,f],m={"User-Agent":`google-cloud-sdk vscode_cloudshelleditor/0.1`,"X-Goog-Api-Client":`gl-node/22.17.0`,"Client-Metadata":JSON.stringify({ideType:`IDE_UNSPECIFIED`,platform:`PLATFORM_UNSPECIFIED`,pluginType:`GEMINI`})},h=`1.21.9`;function g(){return{"User-Agent":`antigravity/${{}.PI_AI_ANTIGRAVITY_VERSION||h} darwin/arm64`}}var _=`You are Antigravity, a powerful agentic AI coding assistant designed by the Google Deepmind team working on Advanced Agentic Coding.You are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.**Absolute paths only****Proactiveness**`,v=0,y=3,b=1e3,x=2,S=500,C=`interleaved-thinking-2025-05-14`;function w(e,t){let n=e=>e>0?Math.ceil(e+1e3):void 0,r=t instanceof Headers?t:t?.headers;if(r){let e=r.get(`retry-after`);if(e){let t=Number(e);if(Number.isFinite(t)){let e=n(t*1e3);if(e!==void 0)return e}let r=new Date(e).getTime();if(!Number.isNaN(r)){let e=n(r-Date.now());if(e!==void 0)return e}}let t=r.get(`x-ratelimit-reset`);if(t){let e=Number.parseInt(t,10);if(!Number.isNaN(e)){let t=n(e*1e3-Date.now());if(t!==void 0)return t}}let i=r.get(`x-ratelimit-reset-after`);if(i){let e=Number(i);if(Number.isFinite(e)){let t=n(e*1e3);if(t!==void 0)return t}}}let i=e.match(/reset after (?:(\d+)h)?(?:(\d+)m)?(\d+(?:\.\d+)?)s/i);if(i){let e=i[1]?parseInt(i[1],10):0,t=i[2]?parseInt(i[2],10):0,r=parseFloat(i[3]);if(!Number.isNaN(r)){let i=n(((e*60+t)*60+r)*1e3);if(i!==void 0)return i}}let a=e.match(/Please retry in ([0-9.]+)(ms|s)/i);if(a?.[1]){let e=parseFloat(a[1]);if(!Number.isNaN(e)&&e>0){let t=n(a[2].toLowerCase()===`ms`?e:e*1e3);if(t!==void 0)return t}}let o=e.match(/"retryDelay":\s*"([0-9.]+)(ms|s)"/i);if(o?.[1]){let e=parseFloat(o[1]);if(!Number.isNaN(e)&&e>0){let t=n(o[2].toLowerCase()===`ms`?e:e*1e3);if(t!==void 0)return t}}}function T(e){return e.provider===`google-antigravity`&&e.id.startsWith(`claude-`)&&e.reasoning}function E(e){return/gemini-3(?:\.1)?-pro/.test(e.toLowerCase())}function D(e){return/gemini-3(?:\.1)?-flash/.test(e.toLowerCase())}function O(e){return E(e)||D(e)}function k(e,t){return e===429||e===500||e===502||e===503||e===504?!0:/resource.?exhausted|rate.?limit|overloaded|service.?unavailable|other.?side.?closed/i.test(t)}function A(e){try{let t=JSON.parse(e);if(t.error?.message)return t.error.message}catch{}return e}function j(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}var M=(r,i,a)=>{let s=new t;return(async()=>{let t={role:`assistant`,content:[],api:`google-gemini-cli`,provider:r.provider,model:r.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let c=a?.apiKey;if(!c)throw Error(`Google Cloud Code Assist requires OAuth authentication. Use /login to authenticate.`);let d,h;try{let e=JSON.parse(c);d=e.token,h=e.projectId}catch{throw Error(`Invalid Google Cloud Code Assist credentials. Use /login to re-authenticate.`)}if(!d||!h)throw Error(`Missing token or projectId in Google Cloud credentials. Use /login to re-authenticate.`);let _=r.provider===`google-antigravity`,E=r.baseUrl?.trim(),D=E?[E]:_?p:[f],O=P(r,i,h,a,_),M=await a?.onPayload?.(O,r);M!==void 0&&(O=M);let N=_?g():m,F={Authorization:`Bearer ${d}`,"Content-Type":`application/json`,Accept:`text/event-stream`,...N,...T(r)?{"anthropic-beta":C}:{},...a?.headers},I=JSON.stringify(O),L,R,z,B=0;for(let e=0;e<=y;e++){if(a?.signal?.aborted)throw Error(`Request was aborted`);try{if(z=`${D[B]}/v1internal:streamGenerateContent?alt=sse`,L=await fetch(z,{method:`POST`,headers:F,body:I,signal:a?.signal}),await a?.onResponse?.({status:L.status,headers:n(L.headers)},r),L.ok)break;let t=await L.text();if((L.status===403||L.status===404)&&B<D.length-1){B++;continue}if(e<y&&k(L.status,t)){B<D.length-1&&B++;let n=w(t,L),r=n??b*2**e,i=a?.maxRetryDelayMs??6e4;if(i>0&&n&&n>i){let e=Math.ceil(n/1e3);throw Error(`Server requested ${e}s retry delay (max: ${Math.ceil(i/1e3)}s). ${A(t)}`)}await j(r,a?.signal);continue}throw Error(`Cloud Code Assist API error (${L.status}): ${A(t)}`)}catch(t){if(t instanceof Error&&(t.name===`AbortError`||t.message===`Request was aborted`))throw Error(`Request was aborted`);if(R=t instanceof Error?t:Error(String(t)),R.message===`fetch failed`&&R.cause instanceof Error&&(R=Error(`Network error: ${R.cause.message}`)),e<y){await j(b*2**e,a?.signal);continue}throw R}}if(!L||!L.ok)throw R??Error(`Failed to get response after retries`);let V=!1,H=()=>{V||=(s.push({type:`start`,partial:t}),!0)},U=()=>{t.content=[],t.usage={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},t.stopReason=`stop`,t.errorMessage=void 0,t.timestamp=Date.now(),V=!1},W=async n=>{if(!n.body)throw Error(`No response body`);let i=!1,c=null,d=t.content,f=()=>d.length-1,p=n.body.getReader(),m=new TextDecoder,h=``,g=()=>{p.cancel().catch(()=>{})};a?.signal?.addEventListener(`abort`,g);try{for(;;){if(a?.signal?.aborted)throw Error(`Request was aborted`);let{done:n,value:g}=await p.read();if(n)break;h+=m.decode(g,{stream:!0});let _=h.split(`
|
|
2
2
|
`);h=_.pop()||``;for(let n of _){if(!n.startsWith(`data:`))continue;let a=n.slice(5).trim();if(!a)continue;let p;try{p=JSON.parse(a)}catch{continue}let m=p.response;if(!m)continue;t.responseId||=m.responseId;let h=m.candidates?.[0];if(h?.content?.parts)for(let e of h.content.parts){if(e.text!==void 0){i=!0;let n=l(e);(!c||n&&c.type!==`thinking`||!n&&c.type!==`text`)&&(c&&(c.type===`text`?s.push({type:`text_end`,contentIndex:d.length-1,content:c.text,partial:t}):s.push({type:`thinking_end`,contentIndex:f(),content:c.thinking,partial:t})),n?(c={type:`thinking`,thinking:``,thinkingSignature:void 0},t.content.push(c),H(),s.push({type:`thinking_start`,contentIndex:f(),partial:t})):(c={type:`text`,text:``},t.content.push(c),H(),s.push({type:`text_start`,contentIndex:f(),partial:t}))),c.type===`thinking`?(c.thinking+=e.text,c.thinkingSignature=u(c.thinkingSignature,e.thoughtSignature),s.push({type:`thinking_delta`,contentIndex:f(),delta:e.text,partial:t})):(c.text+=e.text,c.textSignature=u(c.textSignature,e.thoughtSignature),s.push({type:`text_delta`,contentIndex:f(),delta:e.text,partial:t}))}if(e.functionCall){i=!0,c&&=(c.type===`text`?s.push({type:`text_end`,contentIndex:f(),content:c.text,partial:t}):s.push({type:`thinking_end`,contentIndex:f(),content:c.thinking,partial:t}),null);let n=e.functionCall.id,r={type:`toolCall`,id:!n||t.content.some(e=>e.type===`toolCall`&&e.id===n)?`${e.functionCall.name}_${Date.now()}_${++v}`:n,name:e.functionCall.name||``,arguments:e.functionCall.args??{},...e.thoughtSignature&&{thoughtSignature:e.thoughtSignature}};t.content.push(r),H(),s.push({type:`toolcall_start`,contentIndex:f(),partial:t}),s.push({type:`toolcall_delta`,contentIndex:f(),delta:JSON.stringify(r.arguments),partial:t}),s.push({type:`toolcall_end`,contentIndex:f(),toolCall:r,partial:t})}}if(h?.finishReason&&(t.stopReason=o(h.finishReason),t.content.some(e=>e.type===`toolCall`)&&(t.stopReason=`toolUse`)),m.usageMetadata){let n=m.usageMetadata.promptTokenCount||0,i=m.usageMetadata.cachedContentTokenCount||0;t.usage={input:n-i,output:(m.usageMetadata.candidatesTokenCount||0)+(m.usageMetadata.thoughtsTokenCount||0),cacheRead:i,cacheWrite:0,totalTokens:m.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},e(r,t.usage)}}}}finally{a?.signal?.removeEventListener(`abort`,g)}return c&&(c.type===`text`?s.push({type:`text_end`,contentIndex:f(),content:c.text,partial:t}):s.push({type:`thinking_end`,contentIndex:f(),content:c.thinking,partial:t})),i},G=!1,K=L;for(let e=0;e<=x;e++){if(a?.signal?.aborted)throw Error(`Request was aborted`);if(e>0){if(await j(S*2**(e-1),a?.signal),!z)throw Error(`Missing request URL`);if(K=await fetch(z,{method:`POST`,headers:F,body:I,signal:a?.signal}),await a?.onResponse?.({status:K.status,headers:n(K.headers)},r),!K.ok){let e=await K.text();throw Error(`Cloud Code Assist API error (${K.status}): ${e}`)}}if(await W(K)){G=!0;break}e<x&&U()}if(!G)throw Error(`Cloud Code Assist API returned an empty response`);if(a?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(`An unknown error occurred`);s.push({type:`done`,reason:t.stopReason,message:t}),s.end()}catch(e){for(let e of t.content)`index`in e&&delete e.index;t.stopReason=a?.signal?.aborted?`aborted`:`error`,t.errorMessage=e instanceof Error?e.message:JSON.stringify(e),s.push({type:`error`,reason:t.stopReason,error:t}),s.end()}})(),s},N=(e,t,n)=>{let r=n?.apiKey;if(!r)throw Error(`Google Cloud Code Assist requires OAuth authentication. Use /login to authenticate.`);let o=a(e,n,r);if(!n?.reasoning)return M(e,t,{...o,thinking:{enabled:!1}});let s=i(n.reasoning);if(O(e.id))return M(e,t,{...o,thinking:{enabled:!0,level:I(s,e.id)}});let c={minimal:1024,low:2048,medium:8192,high:16384,...n.thinkingBudgets}[s],l=Math.min((o.maxTokens||0)+c,e.maxTokens);return l<=c&&(c=Math.max(0,l-1024)),M(e,t,{...o,maxTokens:l,thinking:{enabled:!0,budgetTokens:c}})};function P(e,t,n,i={},a=!1){let o=d(e,t),l={};i.temperature!==void 0&&(l.temperature=i.temperature),i.maxTokens!==void 0&&(l.maxOutputTokens=i.maxTokens),i.thinking?.enabled&&e.reasoning?(l.thinkingConfig={includeThoughts:!0},i.thinking.level===void 0?i.thinking.budgetTokens!==void 0&&(l.thinkingConfig.thinkingBudget=i.thinking.budgetTokens):l.thinkingConfig.thinkingLevel=i.thinking.level):e.reasoning&&i.thinking&&!i.thinking.enabled&&(l.thinkingConfig=F(e.id));let u={contents:o};if(u.sessionId=i.sessionId,t.systemPrompt&&(u.systemInstruction={parts:[{text:r(t.systemPrompt)}]}),Object.keys(l).length>0&&(u.generationConfig=l),t.tools&&t.tools.length>0){let n=e.id.startsWith(`claude-`);u.tools=s(t.tools,n),i.toolChoice&&(u.toolConfig={functionCallingConfig:{mode:c(i.toolChoice)}})}if(a){let e=u.systemInstruction?.parts??[];u.systemInstruction={role:`user`,parts:[{text:_},{text:`Please ignore following [ignore]${_}[/ignore]`},...e]}}return{project:n,model:e.id,request:u,...a?{requestType:`agent`}:{},userAgent:a?`antigravity`:`pi-coding-agent`,requestId:`${a?`agent`:`pi`}-${Date.now()}-${Math.random().toString(36).slice(2,11)}`}}function F(e){return E(e)?{thinkingLevel:`LOW`}:D(e)?{thinkingLevel:`MINIMAL`}:{thinkingBudget:0}}function I(e,t){if(E(t))switch(e){case`minimal`:case`low`:return`LOW`;case`medium`:case`high`:return`HIGH`}switch(e){case`minimal`:return`MINIMAL`;case`low`:return`LOW`;case`medium`:return`MEDIUM`;case`high`:return`HIGH`}}export{P as buildRequest,w as extractRetryDelay,M as streamGoogleGeminiCli,N as streamSimpleGoogleGeminiCli};
|