dsh-bundle-antigravity-host 0.1.26 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"permission-handoff.js","sourceRoot":"","sources":["../../src/adapter/permission-handoff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission-handoff.js","sourceRoot":"","sources":["../../src/adapter/permission-handoff.ts"],"names":[],"mappings":"AAQA,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAC,KAAgC;QAClC,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAiC,EACjC,OAAgF;IAEhF,IAAI,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IACrD,qDAAqD;IACrD,oDAAoD;IACpD,kCAAkC;IAClC,MAAM,UAAU,GAAG,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAClD,MAAM,IAAI,GAAG,UAAU;QACrB,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACxG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,GAAG;eACxE,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,OAAO,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;IAC5E,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,qCAAqC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAA;IAClC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IACpF,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;IAE7E,uCAAuC;IACvC,sCAAsC;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAA;IAC9D,MAAM,IAAI,GAAG,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC;QAC/D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAA;IACpC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAA;AAC7D,CAAC"}
@@ -65,13 +65,6 @@ export interface PromptTurnOptions {
65
65
  unknownCount: number;
66
66
  }): void;
67
67
  }
68
- /**
69
- * 同一回合重复拒绝的保护上限(历史导出名保留)。
70
- *
71
- * 计数包含 ACP permission 和原生客户端请求;超过上限仅说明重复请求了未授予的
72
- * 能力,不足以证明它在绕开工具桥。首次若干次只拒绝、不掐回合。
73
- */
74
- export declare const NATIVE_REFUSAL_LIMIT = 3;
75
68
  export declare class PromptTurn {
76
69
  #private;
77
70
  /** ACP 会话 id。 */
@@ -34,13 +34,6 @@ export const AGY_TURN_ERROR = {
34
34
  };
35
35
  /** 未分类的意外状态(link 关闭、agent 异常取消等)在此码下归一。 */
36
36
  export const AGY_TURN_UNEXPECTED = 'AGY_UNEXPECTED';
37
- /**
38
- * 同一回合重复拒绝的保护上限(历史导出名保留)。
39
- *
40
- * 计数包含 ACP permission 和原生客户端请求;超过上限仅说明重复请求了未授予的
41
- * 能力,不足以证明它在绕开工具桥。首次若干次只拒绝、不掐回合。
42
- */
43
- export const NATIVE_REFUSAL_LIMIT = 3;
44
37
  export class PromptTurn {
45
38
  /** ACP 会话 id。 */
46
39
  sessionId;
@@ -53,7 +46,7 @@ export class PromptTurn {
53
46
  #parked = [];
54
47
  #settledWaiters = [];
55
48
  #onConfigOptions;
56
- /** 本回合内被拒绝的原生能力索要次数(超过 NATIVE_REFUSAL_LIMIT 才终止回合)。 */
49
+ /** 本回合内被拒绝的原生能力索要次数,仅用于诊断。 */
57
50
  #nativeRefusals = 0;
58
51
  #onNativeRefusal;
59
52
  #onPermissionDiagnostic;
@@ -189,21 +182,10 @@ export class PromptTurn {
189
182
  handleUnexpectedAgentRequest(method) {
190
183
  this.#recordNativeRefusal('request', method);
191
184
  }
192
- /** 计数并在超过上限时终止回合;未超限只记录(回合继续跑)。 */
185
+ /** 操作照常拒绝并记录,不把拒绝次数升级为整个对话失败。 */
193
186
  #recordNativeRefusal(kind, detail) {
194
187
  this.#nativeRefusals += 1;
195
188
  this.#onNativeRefusal?.({ kind, detail, count: this.#nativeRefusals });
196
- if (this.#nativeRefusals <= NATIVE_REFUSAL_LIMIT)
197
- return;
198
- this.#fail(kind === 'permission'
199
- ? {
200
- code: AGY_TURN_ERROR.PERMISSION_DENIED,
201
- message: `Antigravity ACP 反复请求工具执行授权(${detail},本回合第 ${this.#nativeRefusals} 次):当前拒绝规则未授予权限,桥调用身份需另行核验`,
202
- }
203
- : {
204
- code: AGY_TURN_ERROR.NATIVE_ACTIVITY_REFUSED,
205
- message: `Antigravity ACP 反复发起未预期的原生请求 ${detail}(本回合第 ${this.#nativeRefusals} 次):本插件已关闭 fs/terminal 能力,工具一律经私有 MCP 桥暴露`,
206
- });
207
189
  }
208
190
  /**
209
191
  * 启动 session/prompt 并驱动回合收尾(不阻塞调用方)。
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-turn.js","sourceRoot":"","sources":["../../src/adapter/prompt-turn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-turn.js","sourceRoot":"","sources":["../../src/adapter/prompt-turn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAgBjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE3F,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,oCAAoC;IACpC,iBAAiB,EAAE,uBAAuB;IAC1C,8DAA8D;IAC9D,uBAAuB,EAAE,6BAA6B;IACtD,yBAAyB;IACzB,OAAO,EAAE,aAAa;IACtB,4BAA4B;IAC5B,OAAO,EAAE,mBAAmB;IAC5B,qCAAqC;IACrC,oBAAoB,EAAE,0BAA0B;IAChD,yCAAyC;IACzC,cAAc,EAAE,oBAAoB;CAC5B,CAAA;AAEV,2CAA2C;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAA;AA8CnD,MAAM,OAAO,UAAU;IACrB,iBAAiB;IACR,SAAS,CAAQ;IACjB,KAAK,CAAW;IAChB,OAAO,CAAe;IACtB,gBAAgB,CAAQ;IACxB,aAAa,CAAQ;IACrB,MAAM,GAAkB,EAAE,CAAA;IACnC,QAAQ,GAAsB,EAAE,CAAA;IACvB,OAAO,GAAuB,EAAE,CAAA;IACzC,eAAe,GAAsB,EAAE,CAAA;IACvC,gBAAgB,CAAiE;IACjF,8BAA8B;IAC9B,eAAe,GAAG,CAAC,CAAA;IACnB,gBAAgB,CAAsC;IAC7C,uBAAuB,CAA6C;IAC7E,UAAU,GAAG,CAAC,CAAA;IACd,KAAK,CAAuB;IAC5B,aAAa,GAAG,KAAK,CAAA;IACrB,WAAW,GAAG,KAAK,CAAA;IACnB,cAAc,GAAG,KAAK,CAAA;IACtB,cAAc,GAAG,KAAK,CAAA;IACtB,QAAQ,CAAwB;IAChC,QAAQ,GAAG,KAAK,CAAA;IAChB,UAAU,GAAG,KAAK,CAAA;IAClB,UAAU,CAA2C;IACrD,aAAa,CAA0B;IACvC,WAAW,GAAG,KAAK,CAAA;IACnB,UAAU,GAAG,KAAK,CAAA;IACT,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,mBAAmB,CAAyC;IAC5D,iBAAiB,CAAuC;IACxD,YAAY,CAAkC;IAC9C,gBAAgB,CAAsC;IAC/D,mDAAmD;IACnD,SAAS,GAAgG,EAAE,CAAA;IAE3G,YAAY,SAAiB,EAAE,OAA0B;QACvD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAA;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAA;QAC7B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAA;QAC/C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAA;QACzC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAA;QAC/C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAA;QAC/C,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAA;QAC7D,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAA;QACvC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAA;QAC/C,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAA;QACrD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAA;IACnD,CAAC;IAED,qDAAqD;IACrD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,IAAI,aAAa,KAAc,OAAO,IAAI,CAAC,cAAc,CAAA,CAAC,CAAC;IAE3D,wCAAwC;IACxC,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,2CAA2C;IAC3C,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,mCAAmC;IACnC,IAAI,mBAAmB;QACrB,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACnH,CAAC;IAED,yDAAyD;IACzD,mBAAmB,CAAC,YAAiC;QACnD,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc;YAAE,OAAM;QAChG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;YACpE,OAAM;QACR,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAED;;;;;OAKG;IACH,uBAAuB,CAAC,OAAiC;QACvD,mCAAmC;QACnC,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACpF,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAA;YACzC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAA;QAC9C,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC;eAC5E,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CAAC,CAAA;QACtE,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE;YAC9C,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;SACjG,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;QAChF,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAA;YACtG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;YACpD,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;YACnC,IAAI,CAAC,mBAAmB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACxC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAA;QAC3E,CAAC;QACD,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAA;QACzC,8BAA8B;QAC9B,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAA;QACrE,OAAO,SAAS;YACd,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE;YACpE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAA;IAC3C,CAAC;IAED,2BAA2B,CAAC,OAAiC;QAC3D,IAAI,CAAC,uBAAuB,EAAE,CAAC,yBAAyB,CAAC,OAAO,EAAE;YAChE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,sBAAsB;YAClC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;SACpC,CAAC,CAAC,CAAA;IACL,CAAC;IAED,6CAA6C;IAC7C,qBAAqB,CAAC,OAA4C;QAChE,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAM;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QAClF,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,IAAI,IAAa,CAAA;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAM;QACR,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,IAAI,EAAE,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAA;QACrG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QACxD,IAAI,CAAC,iBAAiB,CAAC;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;YAC9B,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;YAC9B,YAAY,EAAE,OAAO,CAAC,MAAM;SAC7B,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,4BAA4B,CAAC,MAAc;QACzC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;IAED,iCAAiC;IACjC,oBAAoB,CAAC,IAA8B,EAAE,MAAc;QACjE,IAAI,CAAC,eAAe,IAAI,CAAC,CAAA;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;IACxE,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,OAAsB,EAAE,MAAoB;QACtD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;YACpB,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,iCAAiC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;YAC5H,OAAM;QACR,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;QACtH,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACxB,IAAI,MAAM;YAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,MAAc;QAClB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc;YAAE,OAAM;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,4BAA4B,MAAM,EAAE,EAAE,CAAC,CAAA;IAC7F,CAAC;IAED,0BAA0B;IAC1B,YAAY,CAAC,IAAsB;QACjC,IAAI,IAAI,CAAC,WAAW;YAAE,OAAM;QAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;YAC3C,OAAM;QACR,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC7B,+BAA+B;QAC/B,IAAI,IAAI,CAAC,UAAU;YAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;YAC3B,IAAI,CAAC,WAAW,EAAE,CAAA;QACpB,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QACtB,KAAK,CAAC,KAAK,EAAE,EAAE,CAAA;QACf,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;IACzB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAoB;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;QACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACvB,IAAI,CAAC,aAAa,EAAE,EAAE,CAAA;QACtB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;QAC9B,IAAI,MAAM;YAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,WAAW;gBAAE,MAAK;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;gBAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;;gBACnD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,kBAAkB,CAAC,OAAoC;QAC3D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC,oBAAoB,oBAAoB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;YAC5F,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,SAAS;QACb,SAAS,CAAC;YACR,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YACjC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAA;YACrC,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,SAAS,CAAA;YACxC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QACnE,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,cAAc;YAAE,OAAM;QAC/B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED,sCAAsC;IACtC,OAAO;QACL,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC7B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC7B,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,EAAE,CAAA;QACtB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAA+B;QAC1C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAA;YAC7B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;YACjC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,KAAK,CAAC;gBACT,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;gBAC1B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,QAAyB;QAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAA;QACpC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,KAAK,MAAM,OAAO,IAAI,OAAO;YAAE,OAAO,EAAE,CAAA;QACxC,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,WAAW,CAAC,QAAwB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACvD,IAAI,MAAM,EAAE,CAAC;YACX,2DAA2D;YAC3D,gBAAgB;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACxB,OAAM;QACR,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3D,iCAAiC;YACjC,IAAI,CAAC,KAAK,CAAC;gBACT,IAAI,EAAE,cAAc,CAAC,cAAc;gBACnC,OAAO,EAAE,+CAA+C;aACzD,EAAE,IAAI,CAAC,CAAA;YACR,OAAM;QACR,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,cAAc,CAAC,UAAsB;QACnC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAA;QACvC,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,UAAU;gBACb,OAAO,SAAS,CAAA;YAClB,KAAK,SAAS;gBACZ,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,mDAAmD,EAAE,CAAA;YACvG,KAAK,WAAW;gBACd,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,qEAAqE,EAAE,CAAA;YACtH,KAAK,YAAY,CAAC;YAClB,KAAK,mBAAmB;gBACtB,2CAA2C;gBAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;gBACtB,OAAO,SAAS,CAAA;YAClB;gBACE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,qCAAqC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAA;QAC5G,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAmB,EAAE,KAAK,GAAG,KAAK;QACtC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAM;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,4CAA4C;QAC5C,qCAAqC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACvF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE;YACjC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAkB;QAC5B,IAAI,IAAI,CAAC,WAAW;YAAE,OAAM;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QAC/C,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;QAC7D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,IAAI,CAAC,UAAU;YAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAClD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,+CAA+C;QAC/C,IAAI,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,OAAO,EAAE,CAAA;IACzC,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,QAAQ;gBAClB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;gBAC7C,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC/C,CAAC;QACD,gDAAgD;QAChD,uCAAuC;QACvC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;QACpG,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;QAClD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;IAED,YAAY,CAAC,MAAqB;QAChC,QAAQ,MAAM,CAAC,aAAa,EAAE,CAAC;YAC7B,KAAK,qBAAqB;gBACxB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;gBACvE,OAAM;YACR,KAAK,qBAAqB;gBACxB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;gBAC5E,OAAM;YACR,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,YAAY,GAAuB,MAAM,CAAA;gBAC/C,IAAI,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;gBACnD,OAAM;YACR,CAAC;YACD;gBACE,mEAAmE;gBACnE,4CAA4C;gBAC5C,+BAA+B;gBAC/B,OAAM;QACV,CAAC;IACH,CAAC;IAED,WAAW,CAAC,SAA+B,EAAE,SAA6B,EAAE,OAAgB;QAC1F,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3F,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAA;YACvG,OAAM;QACR,CAAC;QACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACvC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAM;QAC9B,IAAI,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QAC1E,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC;YAC7F,IAAI,CAAC,cAAc,EAAE,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;YAC1E,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM;YAC7B,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE;YACvD,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACjE,CAAC;IAED,kBAAkB,CAAC,IAAsB;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QACtB,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAC/B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,KAAK,CAAC;YACT,IAAI,EAAE,WAAW;YACjB,KAAK;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;SACtG,CAAC,CAAA;IACJ,CAAC;IAED,yCAAyC;IACzC,cAAc;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;QACtB,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAClH,CAAC;IAED,KAAK,CAAC,KAAkB;QACtB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAM;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED,KAAK;QACH,oCAAoC;QACpC,iCAAiC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,KAAK,MAAM,OAAO,IAAI,OAAO;YAAE,OAAO,EAAE,CAAA;IAC1C,CAAC;IAED,YAAY,CAAC,MAAmB;QAC9B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAA;YAC9C,OAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAA;QAC1E,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACzE,CAAC;CACF;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,CAAA;IAC9G,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAA;IAC/C,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,OAA2C,CAAA;QACzD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,IAAI,CAAA;QAC9E,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,KAA+B;IACtD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,IAAI,MAAM,GAAe,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAA;IAC7F,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;QAAE,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAA;IAC3F,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI;QAAE,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAA;IACnG,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI;QAAE,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAA;IACtG,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI;QAAE,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,aAAa,EAAE,CAAA;IAC7F,OAAO,MAAM,CAAA;AACf,CAAC"}
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)
@@ -104,17 +167,23 @@ window.__ModuleLoader__.load({
104
167
  const modelVersion = React.useRef(0)
105
168
  const accountVersion = React.useRef(0)
106
169
  const polling = React.useRef(false)
170
+ const manualModelPull = React.useRef(false)
107
171
  const pullModels = React.useCallback(async (force = false) => {
108
- if (!props.control) return
172
+ if (!props.control || manualModelPull.current) return
173
+ if (force) manualModelPull.current = true
109
174
  const version = ++modelVersion.current
110
175
  setModelBusy(true)
176
+ if (force) setModelMessage('正在拉取模型目录…')
111
177
  try {
112
178
  const value = unwrap(await props.control('models', force ? { force: true } : undefined))
113
179
  if (!alive.current || version !== modelVersion.current) return
114
180
  setModels(value.models ?? [])
115
181
  setModelMessage(value.status === 'error' ? value.message : (value.models?.length ? '目录已更新;不会自动替换当前会话的已选模型。' : '暂无模型目录。连接 / 登录 ACP 可验证会话并读取目录;也可从已登录的官方 CLI 拉取。'))
116
182
  } catch (error) { if (alive.current && version === modelVersion.current) setModelMessage(error instanceof Error ? error.message : String(error)) }
117
- finally { if (alive.current && version === modelVersion.current) setModelBusy(false) }
183
+ finally {
184
+ if (force) manualModelPull.current = false
185
+ if (alive.current && version === modelVersion.current) setModelBusy(false)
186
+ }
118
187
  }, [props.control])
119
188
  const accountAction = React.useCallback(async (action = 'status') => {
120
189
  if (!props.control) return
@@ -285,73 +354,85 @@ window.__ModuleLoader__.load({
285
354
  setStatus({ kind: 'ok', text: '已撤销未保存的修改,恢复为当前宿主设置。' })
286
355
  }
287
356
 
288
- return h(
289
- 'div',
290
- { style: { padding: '16px', display: 'flex', flexDirection: 'column', gap: '12px', maxWidth: '40rem' } },
291
- h('h2', { style: { margin: 0, fontSize: '1.1rem' } }, 'Antigravity ACP'),
292
- h('p', { style: { margin: 0, opacity: 0.8 } }, 'Provider 路由:', h('code', null, PROVIDER)),
293
- h(
294
- 'p',
295
- { style: { margin: 0, opacity: 0.8 } },
296
- registered === true
297
- ? 'Provider 已注册,可在下方连接账户、拉取模型和查看额度。'
298
- : registered === false
299
- ? 'Provider 尚未注册,请检查插件是否已启用。'
300
- : '正在确认路由注册状态…',
301
- ),
302
- h('section', { style: CARD, 'aria-label': '账户连接' },
303
- h('h3', { style: { margin: '0 0 8px', fontSize: '14px' } }, '账户 · ACP 连接'),
304
- h('p', { role: 'status', style: { fontSize: '12px', margin: '0 0 10px' } }, account?.runtime?.phase === 'stopped'
305
- ? 'ACP 连接已停止,可以重新预热。' : account?.runtime?.phase === 'error'
306
- ? 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))),
307
384
  h('div', { style: { display: 'flex', flexWrap: 'wrap', gap: '8px' } },
308
- 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' ? '连接已预热' : '立即预热'),
309
- h('button', { type: 'button', style: ACTION, disabled: !props.control || ['connecting', 'cancelling'].includes(account?.state) || runtimeBusy(account?.runtime), onClick: () => accountAction('login') }, '连接 / 登录 ACP'),
310
- ['connecting', 'cancelling'].includes(account?.state) ? h('button', { type: 'button', style: ACTION, disabled: account?.state === 'cancelling', onClick: () => accountAction('cancel') }, '取消连接') : null),
311
- h('p', { style: { opacity: .6, fontSize: '11px', margin: '10px 0 0' } }, '预热准备连接;连接 / 登录 ACP 还会验证会话并读取模型目录。两者均不发送聊天消息,仅登录按钮会在需要时打开官方授权页面。'),
312
- RuntimeDetails({ runtime: account?.runtime })),
313
- h('section', { style: CARD, 'aria-label': '模型管理' },
314
- h('div', { style: { display: 'flex', alignItems: 'center', gap: '8px' } },
315
- h('h3', { style: { fontSize: '14px', margin: 0, flex: 1 } }, '模型管理'),
316
- h('button', { type: 'button', style: ACTION, disabled: modelBusy || !props.control, onClick: () => pullModels(true) }, modelBusy ? '拉取中…' : '一键拉取模型')),
317
- h('p', { role: 'status', style: { fontSize: '12px', opacity: .7 } }, modelMessage || '可通过 ACP 会话验证读取目录,也可从官方 CLI 拉取。'),
318
- h('label', { style: { display: 'grid', gap: '6px' } }, '从目录选择默认模型',
319
- 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%' } },
320
- h('option', { value: '' }, models.length ? '选择一个模型,或在下方手填 ID' : '暂无目录,可手填模型 ID'),
321
- ...models.map((model) => h('option', { key: model.id, value: model.id }, model.name + ' · ' + model.id)))),
322
- h('small', { style: { display: 'block', marginTop: '8px', opacity: .6 } }, models.length + ' 个模型 · 选择后点击保存。思考强度仍由会话菜单设置。'),
323
- Array.isArray(selectedModalities) && selectedModalities.length ? h('small', { style: { display: 'block', marginTop: '6px', opacity: .6 } }, '当前目录支持的输入:' + selectedModalities.map((modality) => modalityLabels[modality] ?? modality).join('、')) : null),
324
- ...FIELDS.map((field) => h(
325
- 'label',
326
- { key: field.key, style: { display: 'flex', flexDirection: 'column', gap: '4px' } },
327
- h('span', null, field.label),
328
- h('input', {
329
- name: field.key,
330
- type: field.checkbox ? 'checkbox' : field.numeric ? 'number' : 'text',
331
- ...(field.numeric ? { min: field.min, max: field.max, step: 1 } : {}),
332
- disabled: editingDisabled,
333
- ...(field.checkbox ? { checked: draft[field.key] === true } : { value: draft[field.key] ?? '' }),
334
- placeholder: field.placeholder,
335
- style: field.checkbox ? { alignSelf: 'flex-start' } : { ...ACTION, cursor: 'text', width: '100%', boxSizing: 'border-box' },
336
- onChange: (event) => editField(field.key, field.checkbox ? event.target.checked
337
- : field.numeric && event.target.value !== '' ? Number(event.target.value) : event.target.value),
338
- }),
339
- h('small', { style: { opacity: 0.7 } }, field.hint),
340
- )),
341
- h(
342
- 'div',
343
- { style: { display: 'flex', flexWrap: 'wrap', gap: '8px', alignItems: 'center' } },
344
- h('button', { type: 'button', onClick: save, disabled: editingDisabled || dirtyKeys.length === 0, style: ACTION }, saving ? '保存中…' : '保存'),
345
- h('button', { type: 'button', disabled: loading || saving, onClick: () => reload(), style: ACTION }, loading ? '刷新中…' : '刷新配置'),
346
- dirtyKeys.length ? h('button', { type: 'button', disabled: loading || saving, onClick: discardDraft, style: ACTION }, '撤销未保存修改') : null,
347
- ),
348
- !loading && view && !writable ? h('p', { role: 'status', style: { margin: 0, fontSize: '12px', opacity: .7 } }, '当前设置为只读,请在有写入权限的宿主中修改。') : null,
349
- dirtyKeys.length ? h('p', { role: 'status', style: { margin: 0, fontSize: '12px', opacity: .7 } }, '有 ' + dirtyKeys.length + ' 项未保存的修改;刷新会保留这些输入。') : null,
350
- 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,
351
- status ? h('p', { role: status.kind === 'error' ? 'alert' : 'status', style: { margin: 0, color: status.kind === 'error' ? '#e5534b' : undefined } }, status.text) : null,
352
- 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),
353
404
 
354
- )
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 请在对话输入框旁的额度药丸中查看,此处不再重复展示。')))
355
436
  }
356
437
 
357
438
  /**
@@ -363,7 +444,10 @@ window.__ModuleLoader__.load({
363
444
 
364
445
  const TRACK = 'rgba(128,128,128,.18)'
365
446
  const CARD = { padding: '12px', borderRadius: '12px', border: '1px solid rgba(128,128,128,.18)', background: 'rgba(128,128,128,.05)' }
366
- 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 }
367
451
  const GROUPS = [{ key: 'gemini', name: 'Gemini' }, { key: 'claude', name: 'Claude / GPT' }, { key: 'argon', name: 'Gemini 4 Argon' }]
368
452
  function groupKey(name) {
369
453
  const text = String(name ?? '').toLowerCase()
@@ -420,23 +504,29 @@ window.__ModuleLoader__.load({
420
504
  const [data, setData] = React.useState(null)
421
505
  const [refreshing, setRefreshing] = React.useState(false)
422
506
  const version = React.useRef(0)
507
+ const update = React.useCallback((value) => setData(value), [])
423
508
  const load = React.useCallback((force = false) => {
424
509
  if (!enabled || !readQuota) return Promise.resolve()
425
510
  const current = ++version.current
426
511
  setRefreshing(true)
427
512
  return Promise.resolve().then(() => readQuota(force)).then(unwrap).then((value) => {
428
- if (current === version.current) setData(value)
513
+ if (current === version.current) update(value)
429
514
  }).catch((error) => {
430
- 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
+ }
431
521
  }).finally(() => { if (current === version.current) setRefreshing(false) })
432
- }, [readQuota, enabled])
522
+ }, [readQuota, enabled, update])
433
523
  React.useEffect(() => {
434
524
  if (!enabled || !readQuota) { setData(null); return undefined }
435
525
  void load(false)
436
- const off = readQuota.subscribe?.((value) => setData(value))
526
+ const off = readQuota.subscribe?.((value) => { ++version.current; update(value) })
437
527
  const timer = setInterval(() => { if (typeof document === 'undefined' || document.visibilityState !== 'hidden') void load(false) }, 300_000)
438
528
  return () => { ++version.current; clearInterval(timer); off?.() }
439
- }, [load, enabled, readQuota])
529
+ }, [load, enabled, readQuota, update])
440
530
  return { data, refreshing, load }
441
531
  }
442
532
  function CreditsDetails({ credits, pending }) {
@@ -546,7 +636,12 @@ window.__ModuleLoader__.load({
546
636
  return () => { document.removeEventListener('pointerdown', outside); document.removeEventListener('keydown', key); window.removeEventListener('resize', reposition); window.removeEventListener('scroll', reposition, true) }
547
637
  }, [expanded])
548
638
  if (!enabled) return null
549
- 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)
550
645
  const buckets = group?.buckets ?? []
551
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(' · ')
552
647
  const title = String(model ?? '未选择模型') + ' · ' + label + (quota.data?.stale ? ' · 缓存数据' : '')
@@ -626,7 +721,11 @@ window.__ModuleLoader__.load({
626
721
  const deadline = Date.now() + 20_000
627
722
  for (;;) {
628
723
  const service = scope.get('remote.agyQuota')
629
- if (typeof service?.[method] === 'function') return await withTimeout(service[method](request), 60_000, '设置操作超时,请重试')
724
+ if (typeof service?.[method] === 'function') {
725
+ const pending = service[method](request)
726
+ // 目录发现可能包含冷启动;各阶段超时由 Host 管理,客户端不另设更短的总期限。
727
+ return method === 'models' ? await pending : await withTimeout(pending, 60_000, '设置操作超时,请重试')
728
+ }
630
729
  if (Date.now() >= deadline) throw new Error('设置控制服务未就绪,请确认 Host 与 Client 版本一致')
631
730
  await new Promise((resolve) => setTimeout(resolve, 500))
632
731
  }
@@ -731,7 +830,7 @@ window.__ModuleLoader__.load({
731
830
  id: 'antigravity-acp',
732
831
  order: 42,
733
832
  label: () => 'Antigravity ACP',
734
- inject: () => ({ remote: ctx.remote, readQuota, control }),
833
+ inject: () => ({ remote: ctx.remote, control }),
735
834
  },
736
835
  AntigravitySettingsCard,
737
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,
@@ -535,8 +540,9 @@ export function apply(ctx, config) {
535
540
  if (force) {
536
541
  if (findCli())
537
542
  await loadCliModels(true);
543
+ // 排队、启动握手和 session/new 各自已有超时,不再用普通请求预算截断整个冷启动。
538
544
  else
539
- await adapter.discoverModels(AbortSignal.timeout(Math.min(config.requestTimeoutMs ?? 30_000, 45_000)), false);
545
+ await adapter.discoverModels(undefined, false);
540
546
  }
541
547
  return adapter.listModels(AGY_PROVIDER_ID);
542
548
  },