dsh-bundle-antigravity-host 0.1.27 → 0.1.28

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/dist/client.js CHANGED
@@ -27,16 +27,16 @@ window.__ModuleLoader__.load({
27
27
  const ENTRY_ID = 'llm-antigravity-acp'
28
28
  /** Editable fields surfaced in this card; everything else stays in the host form. */
29
29
  const FIELDS = [
30
- { key: 'autoWarmup', checkbox: true, defaultChecked: true, label: '启动时自动预热 ACP', hint: '提前启动并保留连接,不发送模型消息。保存后下次启用插件生效;本次可点击“立即预热”。' },
31
- { key: 'reuseSessions', checkbox: true, defaultChecked: true, label: '复用 ACP 会话(增量发送)', hint: '校验历史与实际输出后只发新增消息;变化的上下文仍发送,不一致时自动重建。' },
32
- { key: 'resumeSessions', checkbox: true, label: '重启后恢复 ACP 会话', hint: '尝试加载本地映射,失败则重建;仅保存 ID 与指纹。需要开启会话复用。' },
33
- { key: 'keepProcessAfterCancel', checkbox: true, label: '取消后保留已停止的进程', hint: '仅在 agent 确认停止后保留;等待期间新轮排队,超时或通信失败回收。' },
34
- { key: 'cancelGraceMs', numeric: true, defaultValue: 30000, min: 0, max: 60000, label: '取消确认宽限(毫秒)', hint: '默认 30000;0 表示不等待并立即回收,不会复用未确认连接。' },
35
- { key: 'idleRecycleMs', numeric: true, defaultValue: 300000, min: 0, max: 3600000, label: '进程空闲回收(毫秒)', hint: '默认 300000(5 分钟),0 禁用。聊天、预热、目录发现结束后统一计时;等待工具不算空闲。' },
36
- { key: 'preferredModel', label: '默认 / 自定义模型 ID', placeholder: '选择目录中的模型,或输入自定义 ID', hint: '保存后优先列出此模型;目录之外的 ID 标为自定义、未验证。不会替换当前会话已选模型。留空不指定默认项。' },
37
- { key: 'proxyUrl', label: '出网代理', placeholder: 'http://127.0.0.1:7890', hint: '此处配置优先;留空则继承宿主代理环境变量,宿主也未配置时才直连。' },
38
- { key: 'proxyBypass', label: '代理排除列表', placeholder: '10.0.0.0/8,*.internal', hint: 'localhost/127.0.0.1/::1 始终自动排除(私有 MCP 桥在 loopback)。' },
39
- { key: 'agyCliPath', label: '官方 CLI 路径(可选)', placeholder: '留空自动查找 agy', hint: '用于模型目录、套餐额度和 AI Credits。自定义安装位置可填写完整可执行文件路径;CLI 登录与 ACP 登录独立。' },
30
+ { key: 'autoWarmup', group: 'general', checkbox: true, defaultChecked: true, label: '启动时自动预热', hint: '提前启动并保留连接,不发送模型消息。保存后下次启用插件生效;本次可点击“立即预热”。' },
31
+ { key: 'reuseSessions', group: 'general', checkbox: true, defaultChecked: true, label: '复用 ACP 会话(增量发送)', hint: '校验历史与实际输出后只发新增消息;变化的上下文仍发送,不一致时自动重建。' },
32
+ { key: 'preferredModel', group: 'model', label: '默认 / 自定义模型 ID', placeholder: '选择目录中的模型,或输入自定义 ID', hint: '保存后优先列出此模型;目录之外的 ID 标为自定义、未验证。不会替换当前会话已选模型。留空不指定默认项。' },
33
+ { key: 'proxyUrl', group: 'network', label: '出网代理', placeholder: 'http://127.0.0.1:7890', hint: '此处配置优先;留空则继承宿主代理环境变量,宿主也未配置时才直连。支持 HTTP、HTTPS 与 SOCKS5。' },
34
+ { key: 'proxyBypass', group: 'network', label: '代理排除列表', placeholder: '*.internal,example.internal', hint: '逗号分隔,支持域名与通配后缀,不支持 CIDR。localhost/127.0.0.1/::1 始终自动排除(私有 MCP 桥在 loopback)。' },
35
+ { key: 'agyCliPath', group: 'network', label: '官方 CLI 路径(可选)', placeholder: '留空自动查找 agy', hint: '用于模型目录、套餐额度和 AI Credits。自定义安装位置可填写完整可执行文件路径;CLI 登录与 ACP 登录独立。' },
36
+ { key: 'resumeSessions', group: 'advanced', checkbox: true, label: '重启后恢复 ACP 会话', hint: '尝试加载本地映射,失败则重建;仅保存 ID 与指纹。需要同时开启会话复用。' },
37
+ { key: 'keepProcessAfterCancel', group: 'advanced', checkbox: true, label: '取消后保留已停止的进程', hint: '仅在 agent 确认停止后保留;等待期间新轮排队,超时或通信失败回收。' },
38
+ { key: 'cancelGraceMs', group: 'advanced', numeric: true, defaultValue: 30000, min: 0, max: 60000, label: '取消确认宽限(毫秒)', hint: '默认 30000;0 表示不等待并立即回收,不会复用未确认连接。仅开启取消后保留进程时生效。' },
39
+ { key: 'idleRecycleMs', group: 'advanced', numeric: true, defaultValue: 300000, min: 0, max: 3600000, label: '进程空闲回收(毫秒)', hint: '默认 300000(5 分钟),0 禁用。聊天、预热、目录发现结束后统一计时;等待工具不算空闲。' },
40
40
  ]
41
41
 
42
42
  function unwrap(result) {
@@ -71,13 +71,40 @@ window.__ModuleLoader__.load({
71
71
  const slow = ['spawn', 'initialize'].includes(runtime.phase) ? ';官方进程冷启动首次可能需要约 1 分钟,请耐心等待' : ''
72
72
  return (RUNTIME_PHASES[runtime.phase] ?? runtime.phase) + '… 已用 ' + duration(runtime.phaseElapsedMs) + slow
73
73
  }
74
+ function connectionStatus(account, registered) {
75
+ const runtime = account?.runtime
76
+ const ready = runtime?.phase === 'ready'
77
+ const busy = runtimeBusy(runtime) || ['connecting', 'cancelling'].includes(account?.state)
78
+ const error = account?.state === 'error' || runtime?.phase === 'error' || registered === false
79
+ const label = registered === false ? 'Provider 未注册'
80
+ : error ? '连接需要检查'
81
+ : busy ? account?.state === 'cancelling' ? '正在取消连接' : '正在准备连接'
82
+ : ready ? account?.state === 'connected' ? '账户已验证' : 'ACP 已预热'
83
+ : account?.state === 'cancelled' || runtime?.phase === 'stopped' ? '连接已停止'
84
+ : account?.state === 'connected' ? '账户已验证' : '尚未验证连接'
85
+ const description = account?.runtime?.phase === 'stopped'
86
+ ? 'ACP 连接已停止,可以重新预热。'
87
+ : account?.runtime?.phase === 'error'
88
+ ? account.runtime.error ?? account?.message ?? 'ACP 连接异常,请重试。'
89
+ : registered === false ? '请确认插件已启用,Host 与 Client 均已加载。'
90
+ : startupHint(account) ?? account?.message ?? '连接后可验证账户并读取模型目录,不会发送聊天消息。'
91
+ return { label, description, ready, busy, error, color: error ? '#d97757' : ready ? '#25b879' : busy ? '#d99b28' : '#8b909a' }
92
+ }
93
+ function StatusDot({ color }) {
94
+ return h('span', { 'aria-hidden': true, style: { width: '8px', height: '8px', flex: '0 0 auto', borderRadius: '50%', background: color, boxShadow: '0 0 0 4px rgba(128,128,128,.10)' } })
95
+ }
96
+ function StatusNotice({ status }) {
97
+ if (!status) return null
98
+ const error = status.kind === 'error'
99
+ return h('p', { role: error ? 'alert' : 'status', style: { margin: 0, padding: '10px 12px', borderRadius: '10px', fontSize: '12px', lineHeight: 1.6, overflowWrap: 'anywhere', color: error ? '#b42318' : status.kind === 'busy' ? '#946200' : '#177c55', background: error ? 'rgba(217,119,87,.10)' : status.kind === 'busy' ? 'rgba(217,155,40,.10)' : 'rgba(37,184,121,.10)' } }, status.text)
100
+ }
74
101
  function RuntimeDetails({ runtime }) {
75
102
  if (!runtime) return null
76
- const row = (label, value) => h('div', { key: label, style: { display: 'flex', justifyContent: 'space-between', gap: '12px' } },
77
- h('span', { style: { opacity: .65 } }, label), h('span', { style: { fontVariantNumeric: 'tabular-nums', overflowWrap: 'anywhere' } }, value))
103
+ const row = (label, value) => h('div', { key: label, style: { display: 'flex', justifyContent: 'space-between', gap: '16px' } },
104
+ h('span', { style: { opacity: .65 } }, label), h('span', { style: { textAlign: 'right', fontVariantNumeric: 'tabular-nums', overflowWrap: 'anywhere' } }, value))
78
105
  const round = runtime.round
79
106
  const queue = runtime.queue
80
- return h('div', { 'aria-label': 'ACP 生命周期与计时', style: { marginTop: '12px', paddingTop: '10px', borderTop: '1px solid #8883', display: 'grid', gap: '6px', fontSize: '12px' } },
107
+ return h('div', { 'aria-label': 'ACP 生命周期与计时', style: { display: 'grid', gap: '8px', fontSize: '12px', lineHeight: 1.5 } },
81
108
  row('当前状态', (RUNTIME_PHASES[runtime.phase] ?? runtime.phase) + ' · ' + duration(runtime.phaseElapsedMs)),
82
109
  queue ? row('会话调度', '运行 ' + queue.active + ' · 等待工具 ' + queue.parked + ' · 排队 ' + queue.waiting) : null,
83
110
  queue ? row('并发连接', queue.workers + ' / ' + queue.capacity) : null,
@@ -90,12 +117,48 @@ window.__ModuleLoader__.load({
90
117
  round?.firstChunkMs !== undefined ? row('发送 prompt → 首块', duration(round.firstChunkMs)) : null,
91
118
  round?.firstToolMs !== undefined ? row('发送 prompt → 首个工具', duration(round.firstToolMs)) : null,
92
119
  round?.continuations ? row('工具续轮', round.continuations + ' 次 · 最近 ' + duration(round.lastContinuationMs)) : null,
93
- runtime.error ? h('p', { role: 'alert', style: { margin: '4px 0 0', color: '#e5534b', overflowWrap: 'anywhere' } }, runtime.error) : null)
120
+ runtime.error ? h('p', { role: 'alert', style: { margin: '4px 0 0', color: '#b42318', overflowWrap: 'anywhere' } }, runtime.error) : null)
121
+ }
122
+ function SectionHeading({ eyebrow, title, description, action }) {
123
+ return h('div', { style: { display: 'flex', alignItems: 'flex-start', gap: '12px', marginBottom: '16px' } },
124
+ h('div', { style: { flex: 1, minWidth: 0 } },
125
+ eyebrow ? h('div', { style: { fontSize: '10px', fontWeight: 650, letterSpacing: '.08em', opacity: .5, marginBottom: '4px' } }, eyebrow) : null,
126
+ h('h3', { style: { fontSize: '14px', lineHeight: 1.4, fontWeight: 650, margin: 0 } }, title),
127
+ description ? h('p', { style: { fontSize: '12px', lineHeight: 1.6, opacity: .6, margin: '5px 0 0' } }, description) : null),
128
+ action ?? null)
129
+ }
130
+ function TextField({ field, value, disabled, invalid, onChange }) {
131
+ const inputId = 'agy-setting-' + (React.useId?.() ?? field.key) + '-' + field.key
132
+ return h('div', { style: { display: 'grid', gap: '6px' } },
133
+ h('label', { htmlFor: inputId, style: { fontSize: '12px', fontWeight: 550 } }, field.label),
134
+ h('input', {
135
+ id: inputId, name: field.key, type: field.numeric ? 'number' : 'text',
136
+ ...(field.numeric ? { min: field.min, max: field.max, step: 1 } : {}),
137
+ disabled, value: value ?? '', placeholder: field.placeholder,
138
+ 'aria-invalid': invalid || undefined, 'aria-describedby': inputId + '-hint',
139
+ style: { ...ACTION, cursor: disabled ? 'not-allowed' : 'text', width: '100%', boxSizing: 'border-box', background: 'rgba(128,128,128,.035)', opacity: disabled ? .6 : 1 },
140
+ onChange: (event) => onChange(field.numeric && event.target.value !== '' ? Number(event.target.value) : event.target.value),
141
+ }),
142
+ h('small', { id: inputId + '-hint', style: { fontSize: '11px', lineHeight: 1.6, opacity: .6 } }, field.hint))
143
+ }
144
+ function SwitchField({ field, checked, disabled, onChange }) {
145
+ return h('label', { style: { display: 'flex', alignItems: 'flex-start', gap: '10px', cursor: disabled ? 'default' : 'pointer', padding: '2px 0', opacity: disabled ? .6 : 1 } },
146
+ h('input', { name: field.key, type: 'checkbox', checked: checked === true, disabled, onChange: (event) => onChange(event.target.checked), style: { width: '16px', height: '16px', flex: '0 0 auto', margin: '2px 0 0', accentColor: '#177c55', cursor: disabled ? 'not-allowed' : 'pointer' } }),
147
+ h('span', { style: { display: 'grid', gap: '4px', minWidth: 0 } },
148
+ h('span', { style: { fontSize: '12px', fontWeight: 550 } }, field.label),
149
+ h('small', { style: { fontSize: '11px', lineHeight: 1.6, opacity: .65 } }, field.hint)))
150
+ }
151
+ function SettingsFields({ fields, draft, dirtyKeys, conflicts, disabled, editField }) {
152
+ return h('div', { style: { display: 'grid', gap: '16px' } }, ...fields.map((field) => {
153
+ const onChange = (value) => editField(field.key, value)
154
+ return field.checkbox
155
+ ? h(SwitchField, { key: field.key, field, checked: draft[field.key], disabled, onChange })
156
+ : h(TextField, { key: field.key, field, value: draft[field.key], disabled, invalid: dirtyKeys.includes(field.key) && field.numeric && !Number.isSafeInteger(draft[field.key]), onChange })
157
+ }))
94
158
  }
95
159
 
96
160
  function AntigravitySettingsCard(props) {
97
161
  const remote = props.remote
98
- const quota = useQuota(props.readQuota)
99
162
  const [account, setAccount] = React.useState(undefined)
100
163
  const [models, setModels] = React.useState([])
101
164
  const [modelBusy, setModelBusy] = React.useState(false)
@@ -291,73 +354,85 @@ window.__ModuleLoader__.load({
291
354
  setStatus({ kind: 'ok', text: '已撤销未保存的修改,恢复为当前宿主设置。' })
292
355
  }
293
356
 
294
- return h(
295
- 'div',
296
- { style: { padding: '16px', display: 'flex', flexDirection: 'column', gap: '12px', maxWidth: '40rem' } },
297
- h('h2', { style: { margin: 0, fontSize: '1.1rem' } }, 'Antigravity ACP'),
298
- h('p', { style: { margin: 0, opacity: 0.8 } }, 'Provider 路由:', h('code', null, PROVIDER)),
299
- h(
300
- 'p',
301
- { style: { margin: 0, opacity: 0.8 } },
302
- registered === true
303
- ? 'Provider 已注册,可在下方连接账户、拉取模型和查看额度。'
304
- : registered === false
305
- ? 'Provider 尚未注册,请检查插件是否已启用。'
306
- : '正在确认路由注册状态…',
307
- ),
308
- h('section', { style: CARD, 'aria-label': '账户连接' },
309
- h('h3', { style: { margin: '0 0 8px', fontSize: '14px' } }, '账户 · ACP 连接'),
310
- h('p', { role: 'status', style: { fontSize: '12px', margin: '0 0 10px' } }, account?.runtime?.phase === 'stopped'
311
- ? 'ACP 连接已停止,可以重新预热。' : account?.runtime?.phase === 'error'
312
- ? account.runtime.error ?? account?.message ?? 'ACP 连接异常,请重试。' : startupHint(account) ?? account?.message ?? '尚未验证 ACP 连接'),
357
+ const connection = connectionStatus(account, registered)
358
+ const fieldsFor = (group) => FIELDS.filter((field) => field.group === group)
359
+ const fieldProps = { draft, dirtyKeys, conflicts, disabled: editingDisabled, editField }
360
+ const busy = ['connecting', 'cancelling'].includes(account?.state) || runtimeBusy(account?.runtime)
361
+ const readonly = !loading && view && !writable
362
+ const advancedSummary = h('summary', { style: SUMMARY },
363
+ h('span', { style: { display: 'grid', gap: '4px' } },
364
+ h('span', { style: { fontSize: '13px', fontWeight: 650 } }, '高级设置'),
365
+ h('small', { style: { fontSize: '11px', fontWeight: 400, opacity: .6 } }, '网络、CLI、会话恢复与进程生命周期')))
366
+
367
+ return h('div', { style: { padding: '20px', display: 'flex', flexDirection: 'column', gap: '14px', maxWidth: '720px', boxSizing: 'border-box', lineHeight: 1.5 } },
368
+ h('header', { style: { display: 'flex', alignItems: 'flex-start', gap: '12px', padding: '0 2px 2px' } },
369
+ h('div', { style: { flex: 1, minWidth: 0 } },
370
+ h('div', { style: { fontSize: '10px', fontWeight: 650, letterSpacing: '.1em', opacity: .5, marginBottom: '5px' } }, 'MODEL PROVIDER'),
371
+ h('h2', { style: { margin: 0, fontSize: '20px', lineHeight: 1.35, fontWeight: 650, letterSpacing: '-.015em' } }, 'Antigravity ACP'),
372
+ h('p', { style: { margin: '6px 0 0', fontSize: '12px', opacity: .6 } }, '连接官方 Antigravity,模型与工具仍由 DSH 管理。')),
373
+ h('span', { title: 'Provider 路由:' + PROVIDER, style: { flex: '0 0 auto', padding: '4px 9px', borderRadius: '99px', fontSize: '11px', color: registered === false ? '#b42318' : registered === true ? '#177c55' : 'inherit', background: registered === false ? 'rgba(217,119,87,.10)' : registered === true ? 'rgba(37,184,121,.10)' : TRACK } }, registered === false ? '未注册' : registered === true ? 'Provider 已注册' : '正在检查路由')),
374
+
375
+ readonly ? h(StatusNotice, { status: { kind: 'busy', text: '当前设置为只读。你仍可查看连接状态与诊断;请在有写入权限的宿主中修改配置。' } }) : null,
376
+
377
+ h('section', { style: PANEL, 'aria-label': '账户连接' },
378
+ h(SectionHeading, { eyebrow: '01 · 连接', title: '账户与连接', description: '先预热减少等待,或验证账户并读取模型目录。' }),
379
+ h('div', { style: { display: 'flex', alignItems: 'flex-start', gap: '10px', padding: '12px', borderRadius: '10px', background: 'rgba(128,128,128,.045)', marginBottom: '14px' } },
380
+ h(StatusDot, { color: connection.color }),
381
+ h('div', { style: { minWidth: 0 } },
382
+ h('div', { style: { fontSize: '12px', fontWeight: 650, color: connection.color } }, connection.label),
383
+ h('p', { role: 'status', style: { fontSize: '12px', lineHeight: 1.6, opacity: .7, overflowWrap: 'anywhere', margin: '3px 0 0' } }, connection.description))),
313
384
  h('div', { style: { display: 'flex', flexWrap: 'wrap', gap: '8px' } },
314
- h('button', { type: 'button', style: ACTION, disabled: !props.control || ['connecting', 'cancelling'].includes(account?.state) || runtimeBusy(account?.runtime) || account?.runtime?.phase === 'ready', onClick: () => accountAction('warmup') }, account?.runtime?.phase === 'ready' ? '连接已预热' : '立即预热'),
315
- h('button', { type: 'button', style: ACTION, disabled: !props.control || ['connecting', 'cancelling'].includes(account?.state) || runtimeBusy(account?.runtime), onClick: () => accountAction('login') }, '连接 / 登录 ACP'),
316
- ['connecting', 'cancelling'].includes(account?.state) ? h('button', { type: 'button', style: ACTION, disabled: account?.state === 'cancelling', onClick: () => accountAction('cancel') }, '取消连接') : null),
317
- h('p', { style: { opacity: .6, fontSize: '11px', margin: '10px 0 0' } }, '预热准备连接;连接 / 登录 ACP 还会验证会话并读取模型目录。两者均不发送聊天消息,仅登录按钮会在需要时打开官方授权页面。'),
318
- RuntimeDetails({ runtime: account?.runtime })),
319
- h('section', { style: CARD, 'aria-label': '模型管理' },
320
- h('div', { style: { display: 'flex', alignItems: 'center', gap: '8px' } },
321
- h('h3', { style: { fontSize: '14px', margin: 0, flex: 1 } }, '模型管理'),
322
- h('button', { type: 'button', style: ACTION, disabled: modelBusy || !props.control, onClick: () => pullModels(true) }, modelBusy ? '拉取中…' : '一键拉取模型')),
323
- h('p', { role: 'status', style: { fontSize: '12px', opacity: .7 } }, modelMessage || '可通过 ACP 会话验证读取目录,也可从官方 CLI 拉取。'),
324
- h('label', { style: { display: 'grid', gap: '6px' } }, '从目录选择默认模型',
325
- h('select', { 'aria-label': '从目录选择默认模型', disabled: editingDisabled, value: models.some((m) => m.id === draft.preferredModel) ? draft.preferredModel : '', onChange: (event) => { if (event.target.value) editField('preferredModel', event.target.value) }, style: { ...ACTION, width: '100%' } },
326
- h('option', { value: '' }, models.length ? '选择一个模型,或在下方手填 ID' : '暂无目录,可手填模型 ID'),
327
- ...models.map((model) => h('option', { key: model.id, value: model.id }, model.name + ' · ' + model.id)))),
328
- h('small', { style: { display: 'block', marginTop: '8px', opacity: .6 } }, models.length + ' 个模型 · 选择后点击保存。思考强度仍由会话菜单设置。'),
329
- Array.isArray(selectedModalities) && selectedModalities.length ? h('small', { style: { display: 'block', marginTop: '6px', opacity: .6 } }, '当前目录支持的输入:' + selectedModalities.map((modality) => modalityLabels[modality] ?? modality).join('、')) : null),
330
- ...FIELDS.map((field) => h(
331
- 'label',
332
- { key: field.key, style: { display: 'flex', flexDirection: 'column', gap: '4px' } },
333
- h('span', null, field.label),
334
- h('input', {
335
- name: field.key,
336
- type: field.checkbox ? 'checkbox' : field.numeric ? 'number' : 'text',
337
- ...(field.numeric ? { min: field.min, max: field.max, step: 1 } : {}),
338
- disabled: editingDisabled,
339
- ...(field.checkbox ? { checked: draft[field.key] === true } : { value: draft[field.key] ?? '' }),
340
- placeholder: field.placeholder,
341
- style: field.checkbox ? { alignSelf: 'flex-start' } : { ...ACTION, cursor: 'text', width: '100%', boxSizing: 'border-box' },
342
- onChange: (event) => editField(field.key, field.checkbox ? event.target.checked
343
- : field.numeric && event.target.value !== '' ? Number(event.target.value) : event.target.value),
344
- }),
345
- h('small', { style: { opacity: 0.7 } }, field.hint),
346
- )),
347
- h(
348
- 'div',
349
- { style: { display: 'flex', flexWrap: 'wrap', gap: '8px', alignItems: 'center' } },
350
- h('button', { type: 'button', onClick: save, disabled: editingDisabled || dirtyKeys.length === 0, style: ACTION }, saving ? '保存中…' : '保存'),
351
- h('button', { type: 'button', disabled: loading || saving, onClick: () => reload(), style: ACTION }, loading ? '刷新中…' : '刷新配置'),
352
- dirtyKeys.length ? h('button', { type: 'button', disabled: loading || saving, onClick: discardDraft, style: ACTION }, '撤销未保存修改') : null,
353
- ),
354
- !loading && view && !writable ? h('p', { role: 'status', style: { margin: 0, fontSize: '12px', opacity: .7 } }, '当前设置为只读,请在有写入权限的宿主中修改。') : null,
355
- dirtyKeys.length ? h('p', { role: 'status', style: { margin: 0, fontSize: '12px', opacity: .7 } }, '有 ' + dirtyKeys.length + ' 项未保存的修改;刷新会保留这些输入。') : null,
356
- conflicts.length ? h('p', { role: 'alert', style: { margin: 0, fontSize: '12px', color: '#d99b28' } }, '其他位置更新了以下设置,已保留你的输入:' + conflicts.map((key) => FIELDS.find((field) => field.key === key)?.label ?? key).join('、') + '。请核对后再保存。') : null,
357
- status ? h('p', { role: status.kind === 'error' ? 'alert' : 'status', style: { margin: 0, color: status.kind === 'error' ? '#e5534b' : undefined } }, status.text) : null,
358
- h('section', { style: { marginTop: '8px' }, 'aria-label': '套餐额度管理' }, QuotaDetails({ ...quota, model: draft.preferredModel })),
385
+ h('button', { type: 'button', style: PRIMARY, disabled: !props.control || busy, onClick: () => accountAction('login') }, account?.state === 'connecting' ? '正在连接…' : '连接 / 登录 ACP'),
386
+ h('button', { type: 'button', style: ACTION, disabled: !props.control || busy || connection.ready, onClick: () => accountAction('warmup') }, connection.ready ? '已预热' : '立即预热'),
387
+ ['connecting', 'cancelling'].includes(account?.state) ? h('button', { type: 'button', style: ACTION, disabled: account?.state === 'cancelling', onClick: () => accountAction('cancel') }, account?.state === 'cancelling' ? '正在取消…' : '取消连接') : null),
388
+ h('p', { style: { opacity: .55, fontSize: '11px', lineHeight: 1.6, margin: '10px 0 0' } }, '预热不会发送聊天消息。仅在需要登录时打开官方授权页面;思考强度仍由会话菜单设置。')),
389
+
390
+ h('section', { style: PANEL, 'aria-label': '模型管理' },
391
+ h(SectionHeading, { eyebrow: '02 · 模型', title: '默认模型', description: '选择新对话优先使用的模型,不改变当前会话。',
392
+ action: h('button', { type: 'button', title: '从官方 CLI 或 ACP 会话重新读取模型目录', 'aria-busy': modelBusy || undefined, style: { ...ACTION, flex: '0 0 auto', whiteSpace: 'nowrap' }, disabled: modelBusy || !props.control, onClick: () => pullModels(true) }, modelBusy ? '正在刷新…' : '刷新模型目录') }),
393
+ h('div', { style: { display: 'grid', gap: '14px' } },
394
+ h('label', { style: { display: 'grid', gap: '6px', fontSize: '12px', fontWeight: 550 } }, '从模型目录选择',
395
+ h('select', { 'aria-label': '从目录选择默认模型', disabled: editingDisabled, value: models.some((m) => m.id === draft.preferredModel) ? draft.preferredModel : '', onChange: (event) => { if (event.target.value) editField('preferredModel', event.target.value) }, style: { ...ACTION, width: '100%', boxSizing: 'border-box', background: 'rgba(128,128,128,.035)' } },
396
+ h('option', { value: '' }, models.length ? '选择一个模型,或在下方输入 ID' : '暂无目录,可手动输入模型 ID'),
397
+ ...models.map((model) => h('option', { key: model.id, value: model.id }, model.name + ' · ' + model.id)))),
398
+ h(SettingsFields, { ...fieldProps, fields: fieldsFor('model') })),
399
+ h('div', { style: { display: 'flex', flexWrap: 'wrap', gap: '5px 10px', marginTop: '10px', fontSize: '11px', opacity: .6 } },
400
+ h('span', null, models.length + ' 个模型'),
401
+ Array.isArray(selectedModalities) && selectedModalities.length ? h('span', null, '支持输入:' + selectedModalities.map((modality) => modalityLabels[modality] ?? modality).join('、')) : null,
402
+ draft.preferredModel && !selectedModel ? h('span', null, '自定义 ID · 尚未验证') : null),
403
+ modelMessage ? h('p', { role: 'status', style: { fontSize: '11px', lineHeight: 1.6, opacity: .65, margin: '8px 0 0', overflowWrap: 'anywhere' } }, modelMessage) : null),
359
404
 
360
- )
405
+ h('section', { style: PANEL, 'aria-label': '常用设置' },
406
+ h(SectionHeading, { eyebrow: '03 · 偏好', title: '常用设置', description: '适合大多数使用场景;其它选项保持默认即可。' }),
407
+ h(SettingsFields, { ...fieldProps, fields: fieldsFor('general') })),
408
+
409
+ h('details', { style: PANEL, 'aria-label': '高级设置' }, advancedSummary,
410
+ h('div', { style: { display: 'grid', gap: '24px', marginTop: '20px', paddingTop: '18px', borderTop: '1px solid rgba(128,128,128,.14)' } },
411
+ h('section', { 'aria-label': '网络与 CLI 设置', style: { display: 'grid', gap: '16px' } },
412
+ h('h4', { style: { margin: 0, fontSize: '12px', fontWeight: 650 } }, '网络与 CLI'),
413
+ h(SettingsFields, { ...fieldProps, fields: fieldsFor('network') })),
414
+ h('section', { 'aria-label': '会话与进程设置', style: { display: 'grid', gap: '16px' } },
415
+ h('h4', { style: { margin: 0, fontSize: '12px', fontWeight: 650 } }, '会话与进程'),
416
+ h(SettingsFields, { ...fieldProps, fields: fieldsFor('advanced') })))),
417
+
418
+ h('details', { style: PANEL, 'aria-label': '连接诊断' },
419
+ h('summary', { style: SUMMARY },
420
+ h('span', { style: { display: 'flex', alignItems: 'center', gap: '8px' } },
421
+ h(StatusDot, { color: connection.color }),
422
+ h('span', { style: { fontSize: '13px', fontWeight: 650 } }, '连接诊断')),
423
+ h('small', { style: { fontSize: '11px', opacity: .6 } }, '状态、并发与耗时')),
424
+ h('div', { style: { marginTop: '18px', paddingTop: '16px', borderTop: '1px solid rgba(128,128,128,.14)' } },
425
+ account?.runtime ? RuntimeDetails({ runtime: account.runtime }) : h('p', { style: { margin: 0, fontSize: '12px', opacity: .6 } }, '连接后显示生命周期、并发容量与分阶段耗时。'))),
426
+
427
+ h('footer', { style: { display: 'grid', gap: '10px', padding: '4px 2px 0' } },
428
+ conflicts.length ? h('p', { role: 'alert', style: { margin: 0, fontSize: '12px', lineHeight: 1.6, color: '#946200' } }, '其他位置更新了以下设置,已保留你的输入:' + conflicts.map((key) => FIELDS.find((field) => field.key === key)?.label ?? key).join('、') + '。请核对后再保存。') : null,
429
+ h(StatusNotice, { status }),
430
+ h('div', { style: { display: 'flex', flexWrap: 'wrap', gap: '8px', alignItems: 'center' } },
431
+ h('button', { type: 'button', onClick: save, disabled: editingDisabled || dirtyKeys.length === 0, style: PRIMARY }, saving ? '保存中…' : '保存'),
432
+ dirtyKeys.length ? h('button', { type: 'button', disabled: loading || saving, onClick: discardDraft, style: ACTION }, '撤销未保存修改') : null,
433
+ h('button', { type: 'button', title: '重新读取宿主配置,保留未保存的输入', disabled: loading || saving, onClick: () => reload(), style: { ...ACTION, borderColor: 'transparent', background: 'transparent', opacity: .7, marginLeft: 'auto' } }, loading ? '刷新中…' : '刷新配置')),
434
+ dirtyKeys.length ? h('p', { role: 'status', style: { margin: 0, fontSize: '11px', opacity: .65 } }, '有 ' + dirtyKeys.length + ' 项未保存的修改;刷新会保留这些输入。') : null,
435
+ h('p', { style: { margin: '2px 0 0', paddingTop: '12px', borderTop: '1px solid rgba(128,128,128,.12)', fontSize: '11px', lineHeight: 1.6, opacity: .55 } }, '套餐额度与 AI Credits 请在对话输入框旁的额度药丸中查看,此处不再重复展示。')))
361
436
  }
362
437
 
363
438
  /**
@@ -369,7 +444,10 @@ window.__ModuleLoader__.load({
369
444
 
370
445
  const TRACK = 'rgba(128,128,128,.18)'
371
446
  const CARD = { padding: '12px', borderRadius: '12px', border: '1px solid rgba(128,128,128,.18)', background: 'rgba(128,128,128,.05)' }
372
- const ACTION = { padding: '6px 12px', borderRadius: '8px', border: '1px solid rgba(128,128,128,.25)', background: 'rgba(128,128,128,.08)', color: 'inherit', font: 'inherit', cursor: 'pointer' }
447
+ const PANEL = { padding: '18px', borderRadius: '14px', border: '1px solid rgba(128,128,128,.16)', background: 'rgba(128,128,128,.025)' }
448
+ const SUMMARY = { display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: '12px', cursor: 'pointer', listStyle: 'none' }
449
+ const ACTION = { padding: '7px 12px', minHeight: '34px', borderRadius: '8px', border: '1px solid rgba(128,128,128,.22)', background: 'rgba(128,128,128,.06)', color: 'inherit', font: 'inherit', fontSize: '12px', cursor: 'pointer' }
450
+ const PRIMARY = { ...ACTION, background: '#177c55', border: '1px solid #177c55', color: '#fff', fontWeight: 600 }
373
451
  const GROUPS = [{ key: 'gemini', name: 'Gemini' }, { key: 'claude', name: 'Claude / GPT' }, { key: 'argon', name: 'Gemini 4 Argon' }]
374
452
  function groupKey(name) {
375
453
  const text = String(name ?? '').toLowerCase()
@@ -426,23 +504,29 @@ window.__ModuleLoader__.load({
426
504
  const [data, setData] = React.useState(null)
427
505
  const [refreshing, setRefreshing] = React.useState(false)
428
506
  const version = React.useRef(0)
507
+ const update = React.useCallback((value) => setData(value), [])
429
508
  const load = React.useCallback((force = false) => {
430
509
  if (!enabled || !readQuota) return Promise.resolve()
431
510
  const current = ++version.current
432
511
  setRefreshing(true)
433
512
  return Promise.resolve().then(() => readQuota(force)).then(unwrap).then((value) => {
434
- if (current === version.current) setData(value)
513
+ if (current === version.current) update(value)
435
514
  }).catch((error) => {
436
- if (current === version.current) setData({ status: 'error', groups: [], error: { message: error instanceof Error ? error.message : String(error) } })
515
+ if (current === version.current) {
516
+ const message = error instanceof Error ? error.message : String(error)
517
+ setData((previous) => previous?.status === 'ok'
518
+ ? { ...previous, stale: true, staleReason: message }
519
+ : { status: 'error', groups: [], error: { message } })
520
+ }
437
521
  }).finally(() => { if (current === version.current) setRefreshing(false) })
438
- }, [readQuota, enabled])
522
+ }, [readQuota, enabled, update])
439
523
  React.useEffect(() => {
440
524
  if (!enabled || !readQuota) { setData(null); return undefined }
441
525
  void load(false)
442
- const off = readQuota.subscribe?.((value) => setData(value))
526
+ const off = readQuota.subscribe?.((value) => { ++version.current; update(value) })
443
527
  const timer = setInterval(() => { if (typeof document === 'undefined' || document.visibilityState !== 'hidden') void load(false) }, 300_000)
444
528
  return () => { ++version.current; clearInterval(timer); off?.() }
445
- }, [load, enabled, readQuota])
529
+ }, [load, enabled, readQuota, update])
446
530
  return { data, refreshing, load }
447
531
  }
448
532
  function CreditsDetails({ credits, pending }) {
@@ -552,7 +636,12 @@ window.__ModuleLoader__.load({
552
636
  return () => { document.removeEventListener('pointerdown', outside); document.removeEventListener('keydown', key); window.removeEventListener('resize', reposition); window.removeEventListener('scroll', reposition, true) }
553
637
  }, [expanded])
554
638
  if (!enabled) return null
555
- const group = quotaGroups(quota.data).find((g) => g.key === modelGroup(model))
639
+ const groups = quotaGroups(quota.data)
640
+ const family = modelGroup(model)
641
+ // 官方 /usage 可能只报告 Gemini 共享额度;只有真实 Argon 分组存在时,
642
+ // 才把 Argon 型号绑定到独立组,不能命中一个预建的空组而误报未知。
643
+ const group = groups.find((g) => g.key === family && (family !== 'argon' || g.buckets.length > 0))
644
+ ?? (family === 'argon' ? groups.find((g) => g.key === 'gemini') : undefined)
556
645
  const buckets = group?.buckets ?? []
557
646
  const label = quota.data?.status === 'error' ? '额度读取失败' : !quota.data ? '正在读取额度' : !group ? '额度未匹配,请选择具体模型' : !buckets.length ? '额度未知' : buckets.map((b) => windowName(b) + ' ' + (b.disabled ? '已停用' : percentage(b) === undefined ? '额度未知' : Math.round(percentage(b)) + '% 剩余')).join(' · ')
558
647
  const title = String(model ?? '未选择模型') + ' · ' + label + (quota.data?.stale ? ' · 缓存数据' : '')
@@ -741,7 +830,7 @@ window.__ModuleLoader__.load({
741
830
  id: 'antigravity-acp',
742
831
  order: 42,
743
832
  label: () => 'Antigravity ACP',
744
- inject: () => ({ remote: ctx.remote, readQuota, control }),
833
+ inject: () => ({ remote: ctx.remote, control }),
745
834
  },
746
835
  AntigravitySettingsCard,
747
836
  ),
package/dist/index.js CHANGED
@@ -505,7 +505,12 @@ export function apply(ctx, config) {
505
505
  if (metadata)
506
506
  worker.importMetadata(metadata);
507
507
  workers.push(worker);
508
- return { adapter: worker, read: () => lifecycle.read(), dispose: () => disposeAcpRuntime(active) };
508
+ return {
509
+ adapter: worker,
510
+ ensureImages: (signal) => worker.prepareImages(signal),
511
+ read: () => lifecycle.read(),
512
+ dispose: () => disposeAcpRuntime(active),
513
+ };
509
514
  }, {
510
515
  capacity: config.maxConcurrentSessions,
511
516
  queueTimeoutMs: config.queueTimeoutMs,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { AntigravityAcpAdapter } from '../adapter/antigravity-adapter.js';
5
5
  /** Workers own independent transports, bridges and prompt state. No tool execution lives here. */
6
6
  export interface AcpWorker {
7
7
  adapter: Pick<AntigravityAcpAdapter, 'busy' | 'stream' | 'listModels' | 'resolveModel' | 'warmup' | 'discoverModels'> & Partial<Pick<AntigravityAcpAdapter, 'prepareCall'>>;
8
+ ensureImages?: (signal?: AbortSignal) => Promise<void>;
8
9
  read(): AcpLifecycleSnapshot;
9
10
  dispose(): Promise<void>;
10
11
  }
@@ -32,7 +32,22 @@ export class PooledAcpAdapter extends LlmAdapter {
32
32
  }
33
33
  async resolveModel(provider, model, signal) {
34
34
  const models = await Promise.all(this.slots.map(s => s.worker.adapter.resolveModel(provider, model, signal)));
35
- return models.find(m => m.context !== undefined) ?? models[0];
35
+ const first = models[0];
36
+ if (!first)
37
+ throw new LlmError('ACP 没有可用的模型元数据', 'AGY_MODEL_UNAVAILABLE');
38
+ const known = models.find(m => m.name !== m.id);
39
+ const reasoning = mergeReasoning(models);
40
+ const modalities = models.every(m => m.inputModalities !== undefined)
41
+ ? models.map(m => m.inputModalities).reduce((supported, entries) => supported.filter(entry => entries.includes(entry)))
42
+ : undefined;
43
+ return {
44
+ ...first,
45
+ inputModalities: undefined,
46
+ ...(modalities === undefined ? {} : { inputModalities: modalities }),
47
+ ...(known ? { name: known.name, ...(known.description === undefined ? {} : { description: known.description }) } : {}),
48
+ ...(models.some(m => m.context !== undefined) ? { context: models.find(m => m.context !== undefined).context } : {}),
49
+ ...(reasoning ? { reasoning } : {}),
50
+ };
36
51
  }
37
52
  /** Recheck capabilities when host services change, without interrupting active callers. */
38
53
  invalidatePreparation() {
@@ -89,12 +104,15 @@ export class PooledAcpAdapter extends LlmAdapter {
89
104
  }
90
105
  async *stream(options) {
91
106
  const slot = await this.acquire(options, options.signal);
92
- slot.owner = { sessionId: options.sessionId, purpose: options.purpose };
93
- // 粘住承载该对话的 worker:ACP 会话复用记录在 worker 内部。
94
- const affinityKey = this.affinityKey(options);
95
- if (affinityKey !== undefined)
96
- this.rememberAffinity(affinityKey, this.slots.indexOf(slot));
97
107
  try {
108
+ // 握手失败或取消也必须归还槽位,不能让池被一次图片准备错误耗尽。
109
+ if (slot.worker.ensureImages && hasImageInput(options))
110
+ await slot.worker.ensureImages(options.signal);
111
+ slot.owner = { sessionId: options.sessionId, purpose: options.purpose };
112
+ // 粘住承载该对话的 worker:ACP 会话复用记录在 worker 内部。
113
+ const affinityKey = this.affinityKey(options);
114
+ if (affinityKey !== undefined)
115
+ this.rememberAffinity(affinityKey, this.slots.indexOf(slot));
98
116
  yield* slot.worker.adapter.stream(options);
99
117
  }
100
118
  finally {
@@ -301,6 +319,22 @@ export class PooledAcpAdapter extends LlmAdapter {
301
319
  }
302
320
  }
303
321
  }
322
+ function hasImageInput(options) {
323
+ return options.messages.some(message => message.role === 'tool'
324
+ ? message.content.some(block => block.type === 'image')
325
+ : Array.isArray(message.content) && message.content.some(block => block.type === 'image'));
326
+ }
327
+ const effortOrder = { low: 0, medium: 1, high: 2 };
328
+ function mergeReasoning(models) {
329
+ const known = models.filter(model => model.reasoning !== undefined);
330
+ if (known.length === 0)
331
+ return undefined;
332
+ const efforts = [...new Map(known.flatMap(model => model.reasoning.efforts).map(entry => [entry.id.toString(), entry])).values()]
333
+ .sort((a, b) => (effortOrder[a.id.toString()] ?? 99) - (effortOrder[b.id.toString()] ?? 99));
334
+ const preferred = known.map(model => model.reasoning.defaultEffort?.toString()).find(value => value !== undefined);
335
+ const fallback = efforts.find(entry => entry.id.toString() === preferred) ?? efforts.find(entry => entry.id.toString() === 'medium');
336
+ return { efforts, ...(fallback ? { defaultEffort: fallback.id } : {}) };
337
+ }
304
338
  function waitWithSignal(promise, signal) {
305
339
  if (!signal)
306
340
  return promise;