@huyooo/ai-chat-types 0.3.7 → 0.3.9

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.
@@ -25,4 +25,3 @@ export declare function buildToolGovernanceLabels(governance: ToolGovernanceInfo
25
25
  /** 判断事件是否需要保存到数据库 */
26
26
  export declare function shouldSaveEvent(event: FrontendChatEvent): boolean;
27
27
  export {};
28
- //# sourceMappingURL=chat-utils.d.ts.map
package/dist/index.d.ts CHANGED
@@ -717,4 +717,3 @@ export interface SendMessageParams {
717
717
  };
718
718
  }
719
719
  export { buildToolGovernanceLabels, type FrontendChatEvent, type ToolGovernanceInfo, extractToolGovernance, mergeToolGovernance, shouldSaveEvent, } from './chat-utils';
720
- //# sourceMappingURL=index.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@huyooo/ai-chat-types",
3
- "version": "0.3.7",
3
+ "version": "0.3.9",
4
4
  "description": "AI Chat 通用类型定义 - 支持 Electron/Web/CLI 多端",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,8 +13,7 @@
13
13
  }
14
14
  },
15
15
  "files": [
16
- "dist",
17
- "src"
16
+ "dist"
18
17
  ],
19
18
  "scripts": {
20
19
  "build": "npm run clean && npm run build:js && npm run build:types",
@@ -26,7 +25,7 @@
26
25
  "test:watch": "vitest"
27
26
  },
28
27
  "dependencies": {
29
- "@huyooo/ai-chat-core": "^0.3.7"
28
+ "@huyooo/ai-chat-core": "^0.3.9"
30
29
  },
31
30
  "devDependencies": {
32
31
  "tsdown": "^0.21.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-utils.d.ts","sourceRoot":"","sources":["../src/chat-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,6BAA6B,CAAA;AAEpC,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAA;AAEzC,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,kBAAkB,CAAA;IACnC,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC,cAAc,CAAC,EAAE,mBAAmB,CAAA;CACrC;AAED,KAAK,uBAAuB,GACxB,wBAAwB,CAAC,MAAM,CAAC,GAChC,kBAAkB,CAAC,MAAM,CAAC,GAC1B,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAE/B,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,kBAAkB,CAOvF;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,MAAM,EAAE,CAAC,EACT,UAAU,EAAE,kBAAkB,GAC7B,CAAC,GAAG,kBAAkB,CAQxB;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,kBAAkB,GAAG;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAA;CACf,CAqCA;AAED,qBAAqB;AACrB,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CASjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,MAAM,EACP,MAAM,sBAAsB,CAAA;AAE7B;;;;;;;;;GASG;AAMH,YAAY,EAEV,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAGlB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,MAAM,EACN,YAAY,EACZ,iBAAiB,EAGjB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EAGb,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,SAAS,EAGT,cAAc,EACd,cAAc,EACd,YAAY,EACZ,SAAS,EAGT,SAAS,EAGT,QAAQ,EACR,cAAc,EAGd,SAAS,EACT,UAAU,EACV,UAAU,EACV,WAAW,EAGX,cAAc,EACd,YAAY,EACZ,SAAS,EACT,0BAA0B,EAC1B,qBAAqB,EAGrB,iBAAiB,EACjB,eAAe,EACf,YAAY,EAGZ,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,aAAa,EACb,2BAA2B,EAC3B,eAAe,EACf,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,6BAA6B,CAAA;AAIpC,YAAY,EAEV,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EAGb,WAAW,EACX,UAAU,EAKV,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,WAAW;AACX,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAA;AAItC,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC9C,OAAO,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,UAAU,CAAA;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAA;YACZ,SAAS,EAAE,MAAM,CAAA;SAClB,CAAA;QACD,qCAAqC;QACrC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAC3B,CAAC,CAAA;CACH;AAED,0BAA0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;IACrC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,aAAa,CAAC,EAAE;QACd,IAAI,CAAC,EAAE,gBAAgB,GAAG,QAAQ,CAAA;KACnC,CAAA;IACD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC9B,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,WAAW;AACX,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,QAAQ,CAAA;IACd,gBAAgB,EAAE,OAAO,CAAA;IACzB,eAAe,EAAE,OAAO,CAAA;IACxB,0BAA0B;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,WAAW;AACX,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAA;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,sBAAsB;IACtB,cAAc,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,CAAA;IACvC,mCAAmC;IACnC,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACjC,qBAAqB;IACrB,eAAe,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAChC,oBAAoB;IACpB,KAAK,EAAE,iBAAiB,EAAE,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,sBAAsB;IACtB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC;AAED,WAAW;AACX,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,YAAY;AACZ,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,YAAY,EAAE,IAAI,CAAA;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,WAAW;AACX,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,OAAO,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,IAAI,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,CAAA;AAEhE,UAAU,iBAAiB;IACzB,IAAI,EAAE,aAAa,CAAA;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,IAAI,EAAE,KAAK,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAA;CACzD;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,qBAAqB,GACrB,qBAAqB,GACrB,iBAAiB,CAAA;AAErB,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,WAAW,CAAA;AAExD,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAA;IACxD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAA;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,iDAAiD;IACjD,WAAW,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,KAAK,GACL,OAAO,GACP,YAAY,GACZ,UAAU,GACV,OAAO,GACP,cAAc,GACd,SAAS,CAAA;AAEb,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,SAAS,GACT,MAAM,GACN,aAAa,GACb,OAAO,GACP,MAAM,GACN,QAAQ,GACR,MAAM,CAAA;AAEV,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,gBAAgB,GAChB,YAAY,GACZ,MAAM,CAAA;AAEV,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,iBAAiB,GACjB,UAAU,GACV,MAAM,CAAA;AAEV,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,wCAAwC;IACxC,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,uCAAuC;IACvC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,kCAAkC;IAClC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,WAAW,EAAE,OAAO,CAAA;IACpB;;;;;;OAMG;IACH,cAAc,EAAE,OAAO,CAAA;IACvB,gBAAgB,EAAE,yBAAyB,EAAE,CAAA;IAC7C;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,iBAAiB,CAAA;IAC1B,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,MAAM,EAAE,gBAAgB,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,WAAW;AACX,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC,cAAc,CAAC,EAAE,mBAAmB,CAAA;CACrC;AAED,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAA;AAEnD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,WAAW,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;IACxB,gBAAgB,EAAE,OAAO,CAAA;IACzB,WAAW,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC,cAAc,CAAC,EAAE,mBAAmB,CAAA;CACrC;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,WAAW,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;IACxB,gBAAgB,EAAE,OAAO,CAAA;IACzB,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,WAAW,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;IACxB,gBAAgB,EAAE,OAAO,CAAA;IACzB,gBAAgB,EAAE,mBAAmB,CAAA;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,yBAAyB,EAAE,CAAA;CACnC;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,yBAAyB,CAAA;IACjC,gBAAgB,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,uBAAuB,EAAE,CAAA;IACjC,KAAK,EAAE,sBAAsB,EAAE,CAAA;IAC/B,UAAU,EAAE,2BAA2B,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,4BAA4B,EAAE,CAAA;CAC3C;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,gCAAgC;IAC/C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,4BAA4B,EAAE,CAAA;IACtC,KAAK,EAAE,2BAA2B,EAAE,CAAA;CACrC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,GAAG,CAAA;IACZ,UAAU,EAAE,gCAAgC,EAAE,CAAA;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,+BAAgC,SAAQ,6BAA6B;IACpF,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,aAAa;AACb,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,8BAA8B;AAC9B,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oBAAoB;IACpB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,6BAA6B,EAAE,SAAS,CAAA;CAC5D;AAID,eAAe;AACf,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACtB,UAAU;IACV,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW;IACX,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,mBAAmB;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa;IACb,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,eAAe;AACf,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,CAAC,EAAE,KAAK,CAAC;YACjB,IAAI,EAAE,MAAM,CAAA;YACZ,UAAU,EAAE,MAAM,CAAA;YAClB,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,OAAO,CAAA;SAClB,CAAC,CAAA;KACH,CAAA;IACD,UAAU,CAAC,EAAE;QACX,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;CACF;AAMD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAE1B,aAAa;IACb,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IACnC,4BAA4B;IAC5B,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IACnC,kCAAkC;IAClC,yBAAyB,CAAC,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC7D,eAAe;IACf,sBAAsB,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;IACzD,mBAAmB;IACnB,WAAW,CACT,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,WAAW,EACrB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3B,aAAa;IACb,MAAM,IAAI,IAAI,CAAA;IACd,eAAe;IACf,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,kBAAkB;IAClB,iBAAiB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;IACjG,iBAAiB;IACjB,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;IACxH,iBAAiB;IACjB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACzF,oBAAoB;IACpB,qBAAqB,CAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAClE,oBAAoB;IACpB,qBAAqB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACjE,sBAAsB;IACtB,iBAAiB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC7D,+BAA+B;IAC/B,oBAAoB,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAA;IAG9E,aAAa;IACb,WAAW,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IACvC,aAAa;IACb,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACrD,WAAW;IACX,aAAa,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACnE,WAAW;IACX,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACnF,WAAW;IACX,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGxC,aAAa;IACb,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IACxD,4CAA4C;IAC5C,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACzF,WAAW;IACX,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IAC9D,iBAAiB;IACjB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,wBAAwB;IACxB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,0BAA0B;IAC1B,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGjF,aAAa;IACb,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;IAG5D,YAAY;IACZ,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IACvC,cAAc;IACd,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAA;IAG9D,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IACjD,QAAQ,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACnD,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACzD,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3B,WAAW,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAChD,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5C,UAAU,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAGnH,UAAU,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAChD,UAAU,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,cAAc,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,aAAa,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAG1C,aAAa,CAAC,IAAI,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;IACpG,cAAc,CAAC,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;IACjJ,SAAS,CAAC,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAC3C,WAAW,CAAC,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAC7C,WAAW,CAAC,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAC7C,qBAAqB,CAAC,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACvD,uBAAuB,CAAC,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACzD,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAGnJ,oCAAoC;IACpC,oBAAoB,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IACvG,sCAAsC;IACtC,mBAAmB,CAAC,CAAC,KAAK,EAAE,6BAA6B,EAAE,GAAG,OAAO,CAAC,+BAA+B,EAAE,CAAC,CAAA;IACxG,wCAAwC;IACxC,sBAAsB,CAAC,CAAC,KAAK,EAAE,6BAA6B,EAAE,GAAG,OAAO,CAAC,+BAA+B,EAAE,CAAC,CAAA;IAG3G;;;;OAIG;IACH,mBAAmB,CAAC,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAG1I,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IACpF,mBAAmB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAElE,qCAAqC;IACrC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAGvF,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACnF,YAAY,CAAC,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxF,SAAS,CAAC,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3D,OAAO,CAAC,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACzC,SAAS,CAAC,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAC7C,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpF,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;IACjD,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAC9F,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IACvE,WAAW,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;IAG9C,YAAY,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1C;AAID,aAAa;AACb,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,aAAa;AACb,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,aAAa;AACb,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAA;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAED,aAAa;AACb,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,CAAA;IACvC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sBAAsB;IACtB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAID,aAAa;AACb,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,eAAe,CAAC,EAAE,OAAO,CAAA;QACzB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;KAC/B,CAAA;CACF;AAID,OAAO,EACL,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,GAChB,MAAM,cAAc,CAAA"}
package/src/chat-utils.ts DELETED
@@ -1,111 +0,0 @@
1
- /**
2
- * 前端扩展事件类型 + 依赖事件类型的工具函数
3
- *
4
- * billing 等元数据现在通过 DataEvent(type='data', name='billing')传递,
5
- * 不再需要在此处硬编码扩展事件。
6
- *
7
- * compact/content_compress 事件已内置于 ChatEvent 联合类型,无需重复声明。
8
- */
9
-
10
- import type {
11
- AssetApprovalPolicy,
12
- AssetHostDependency,
13
- AssetSideEffectLevel,
14
- } from '@huyooo/ai-chat-core'
15
- import type {
16
- ChatEvent,
17
- ToolApprovalReason,
18
- ToolApprovalRequestEvent,
19
- ToolCallResultEvent,
20
- ToolCallStartEvent,
21
- } from '@huyooo/ai-chat-core/events'
22
-
23
- export type FrontendChatEvent = ChatEvent
24
-
25
- export interface ToolGovernanceInfo {
26
- approvalReason?: ToolApprovalReason
27
- approvalPolicy?: AssetApprovalPolicy
28
- sideEffectLevel?: AssetSideEffectLevel
29
- hostDependency?: AssetHostDependency
30
- }
31
-
32
- type ToolGovernanceEventData =
33
- | ToolApprovalRequestEvent['data']
34
- | ToolCallStartEvent['data']
35
- | ToolCallResultEvent['data']
36
-
37
- export function extractToolGovernance(data: ToolGovernanceEventData): ToolGovernanceInfo {
38
- return {
39
- ...('reason' in data && data.reason ? { approvalReason: data.reason } : {}),
40
- ...(data.approvalPolicy ? { approvalPolicy: data.approvalPolicy } : {}),
41
- ...(data.sideEffectLevel ? { sideEffectLevel: data.sideEffectLevel } : {}),
42
- ...(data.hostDependency ? { hostDependency: data.hostDependency } : {}),
43
- }
44
- }
45
-
46
- export function mergeToolGovernance<T extends object>(
47
- target: T,
48
- governance: ToolGovernanceInfo,
49
- ): T & ToolGovernanceInfo {
50
- return {
51
- ...target,
52
- ...(governance.approvalReason ? { approvalReason: governance.approvalReason } : {}),
53
- ...(governance.approvalPolicy ? { approvalPolicy: governance.approvalPolicy } : {}),
54
- ...(governance.sideEffectLevel ? { sideEffectLevel: governance.sideEffectLevel } : {}),
55
- ...(governance.hostDependency ? { hostDependency: governance.hostDependency } : {}),
56
- }
57
- }
58
-
59
- export function buildToolGovernanceLabels(governance: ToolGovernanceInfo): {
60
- approvalReasonText?: string
61
- tags: string[]
62
- } {
63
- const approvalReasonText =
64
- governance.approvalReason === 'manual-mode'
65
- ? '当前为手动审批模式'
66
- : governance.approvalReason === 'tool-policy'
67
- ? '工具策略要求先审批'
68
- : governance.approvalReason === 'destructive-only'
69
- ? 'destructive 操作需要审批'
70
- : undefined
71
-
72
- const tags = [
73
- governance.approvalPolicy === 'auto'
74
- ? '自动执行'
75
- : governance.approvalPolicy === 'manual'
76
- ? '始终审批'
77
- : governance.approvalPolicy === 'destructive-only'
78
- ? '仅 destructive 审批'
79
- : undefined,
80
- governance.sideEffectLevel === 'read'
81
- ? '只读'
82
- : governance.sideEffectLevel === 'write'
83
- ? '写入'
84
- : governance.sideEffectLevel === 'destructive'
85
- ? '破坏性'
86
- : undefined,
87
- governance.hostDependency === 'none'
88
- ? '无宿主依赖'
89
- : governance.hostDependency === 'local-app'
90
- ? '依赖本地应用'
91
- : governance.hostDependency === 'os-service'
92
- ? '依赖系统服务'
93
- : governance.hostDependency === 'remote-service'
94
- ? '依赖远程服务'
95
- : undefined,
96
- ].filter((tag): tag is string => Boolean(tag))
97
-
98
- return { approvalReasonText, tags }
99
- }
100
-
101
- /** 判断事件是否需要保存到数据库 */
102
- export function shouldSaveEvent(event: FrontendChatEvent): boolean {
103
- return (
104
- event.type === 'thinking_end' ||
105
- event.type === 'tool_call_result' ||
106
- event.type === 'text_end' ||
107
- event.type === 'done' ||
108
- event.type === 'error' ||
109
- event.type === 'abort'
110
- )
111
- }
package/src/index.ts DELETED
@@ -1,938 +0,0 @@
1
- import type {
2
- AssetApprovalPolicy,
3
- AssetHostDependency,
4
- AssetSideEffectLevel,
5
- AssetSource,
6
- FinishReason,
7
- McpConnectionStatus,
8
- ToolUI,
9
- } from '@huyooo/ai-chat-core'
10
-
11
- /**
12
- * @huyooo/ai-chat-types
13
- *
14
- * AI Chat 公共类型定义
15
- *
16
- * 架构层级:
17
- * 1. ai-chat-core - 核心引擎(定义事件、工具等核心类型)
18
- * 2. ai-chat-types - 公共接口(导出 ChatAdapter、重新导出 ChatEvent)
19
- * 3. 各适配器包 - 实现 ChatAdapter 接口
20
- */
21
-
22
- // ==================== 从 ai-chat-core/events 重新导出事件类型 ====================
23
- // 使用子路径导出,避免在 renderer 中拉入 ai-chat-core 整个模块图
24
- // (ai-chat-core 主入口包含 ChatRuntime → MCP SDK 等 Node.js 依赖)
25
-
26
- export type {
27
- // 聚合类型
28
- ChatEvent,
29
- ChatEventType,
30
- AssistantSegmentReason,
31
- ToolApprovalReason,
32
-
33
- // 基础类型
34
- ToolCallStatus,
35
- ToolCallInfo,
36
- TokenUsage,
37
- ErrorCategory,
38
- ErrorDetails,
39
- ToolError,
40
- ToolUI,
41
- FinishReason,
42
- ToolFailureReason,
43
-
44
- // 思考事件
45
- ThinkingStartEvent,
46
- ThinkingDeltaEvent,
47
- ThinkingEndEvent,
48
- ThinkingEvent,
49
-
50
- // 工具事件
51
- ToolCallStartEvent,
52
- ToolCallResultEvent,
53
- ToolCallOutputEvent,
54
- ToolApprovalRequestEvent,
55
- ToolCallRequestEvent,
56
- ToolEvent,
57
-
58
- // 文本事件
59
- TextStartEvent,
60
- TextDeltaEvent,
61
- TextEndEvent,
62
- TextEvent,
63
-
64
- // 数据事件
65
- DataEvent,
66
-
67
- // 计划类型
68
- PlanStep,
69
- PlanStepStatus,
70
-
71
- // 状态事件
72
- DoneEvent,
73
- ErrorEvent,
74
- AbortEvent,
75
- StatusEvent,
76
-
77
- // 步骤事件
78
- StepStartEvent,
79
- StepEndEvent,
80
- StepEvent,
81
- AssistantSegmentStartEvent,
82
- AssistantSegmentEvent,
83
-
84
- // 上下文压缩事件
85
- CompactStartEvent,
86
- CompactEndEvent,
87
- CompactEvent,
88
-
89
- // 单条消息内容压缩事件
90
- ContentCompressStartEvent,
91
- ContentCompressEndEvent,
92
- ContentCompressEvent,
93
- } from '@huyooo/ai-chat-core/events'
94
-
95
- // 重新导出事件创建函数和类型守卫(从子路径导入,renderer 安全)
96
- export {
97
- createThinkingStart,
98
- createThinkingDelta,
99
- createThinkingEnd,
100
- createToolCallStart,
101
- createToolCallResult,
102
- createToolCallOutput,
103
- createTextStart,
104
- createTextDelta,
105
- createTextEnd,
106
- createDone,
107
- createData,
108
- createError,
109
- createApiError,
110
- createRateLimitError,
111
- createToolError,
112
- createTimeoutError,
113
- createParseError,
114
- createAbort,
115
- createStepStart,
116
- createStepEnd,
117
- createAssistantSegmentStart,
118
- isThinkingEvent,
119
- isToolEvent,
120
- isTextEvent,
121
- isDataEvent,
122
- isStatusEvent,
123
- isErrorEvent,
124
- isAbortEvent,
125
- isStepEvent,
126
- isAssistantSegmentEvent,
127
- isCompactEvent,
128
- isContentCompressEvent,
129
- isRetryableError,
130
- isToolError,
131
- createCompactStart,
132
- createCompactEnd,
133
- createContentCompressStart,
134
- createContentCompressEnd,
135
- } from '@huyooo/ai-chat-core/events'
136
-
137
- // ==================== 从 ai-chat-core 重新导出配置类型 ====================
138
-
139
- export type {
140
- // 模式类型(ChatMode 本地定义以支持更多值)
141
- AssetApprovalPolicy,
142
- AssetHostDependency,
143
- AssetSideEffectLevel,
144
- AssetSource,
145
- ThinkingMode,
146
- AutoRunMode,
147
- AutoRunConfig,
148
-
149
- // 模型类型
150
- ModelOption,
151
- ProtocolId,
152
-
153
- // 聊天选项(使用本地 ChatOptions)
154
-
155
- // MCP 类型
156
- McpServerConfig,
157
- McpConnectionStatus,
158
- McpConnectionInfo,
159
- } from '@huyooo/ai-chat-core'
160
-
161
- /** 对话模式 */
162
- export type ChatMode = 'agent' | 'ask'
163
-
164
- // ==================== 适配器专用类型(本包定义)====================
165
-
166
- /** 聊天历史消息(无状态架构传入,需包含完整工具调用上下文) */
167
- export interface ChatHistoryMessage {
168
- role: 'user' | 'assistant' | 'system' | 'tool'
169
- content: string
170
- /** 思考内容(工具调用循环需回传,如 DeepSeek/GLM) */
171
- reasoning_content?: string
172
- /** 工具消息关联的 tool_call_id */
173
- tool_call_id?: string
174
- /** assistant 消息的工具调用列表 */
175
- tool_calls?: Array<{
176
- id: string
177
- type: 'function'
178
- function: {
179
- name: string
180
- arguments: string
181
- }
182
- /** Gemini 模型需要的 thought_signature */
183
- thought_signature?: string
184
- }>
185
- }
186
-
187
- /** 聊天选项(使用本地 ChatMode) */
188
- export interface ChatOptions {
189
- mode?: ChatMode
190
- model?: string
191
- provider?: string
192
- enableWebSearch?: boolean
193
- thinkingMode?: 'enabled' | 'disabled'
194
- enabledTools?: string[]
195
- autoRunConfig?: {
196
- mode?: 'run-everything' | 'manual'
197
- }
198
- maxIterations?: number
199
- maxDurationMs?: number
200
- maxToolCalls?: number
201
- maxTotalTokens?: number
202
- history?: ChatHistoryMessage[]
203
- /** Skills 内容(启用的 Skills 的 content 数组,前端拼好传入) */
204
- skillContents?: string[]
205
- }
206
-
207
- /** 会话记录 */
208
- export interface SessionRecord {
209
- id: string
210
- appId: string | null
211
- userId: string | null
212
- title: string
213
- model: string
214
- mode: ChatMode
215
- webSearchEnabled: boolean
216
- thinkingEnabled: boolean
217
- /** 是否在 tab 栏隐藏(关闭但不删除) */
218
- hidden: boolean
219
- createdAt: Date
220
- updatedAt: Date
221
- }
222
-
223
- /** 消息记录 */
224
- export interface MessageRecord {
225
- id: string
226
- /** 前端关联 ID(本地模式与 id 相同,云端模式为前端生成的 UUID) */
227
- clientId?: string | null
228
- sessionId: string
229
- role: 'user' | 'assistant' | 'system'
230
- content: string
231
- /** 用户通过 @ 选择的上下文资源 */
232
- atContextItems?: AtContextItem[] | null
233
- /** 用户消息附带的图片(data URL 或 base64) */
234
- images: string[]
235
- /** 生成此消息时使用的模型 */
236
- model?: string | null
237
- /** 生成此消息时使用的模式 (ask/agent) */
238
- mode?: string | null
239
- /** 生成此消息时是否启用 web 搜索 */
240
- webSearchEnabled?: boolean | null
241
- /** 生成此消息时是否启用深度思考 */
242
- thinkingEnabled?: boolean | null
243
- /** 子表中的消息内容 Part */
244
- parts: MessagePartRecord[]
245
- operationIds?: string | null
246
- /** Token 使用统计(JSON 字符串) */
247
- usage?: string | null
248
- /** 响应耗时(毫秒) */
249
- duration?: number | null
250
- /** 结束原因(done 事件携带) */
251
- finishReason?: FinishReason | null
252
- /** 消息序号(会话内递增,用于分叉删除) */
253
- sequence: number
254
- /** 时间戳(毫秒,Unix 时间戳) */
255
- timestamp: number
256
- }
257
-
258
- export interface GetMessagesPageParams {
259
- limit?: number
260
- beforeSequence?: number
261
- }
262
-
263
- export interface MessagePage {
264
- messages: MessageRecord[]
265
- hasMore: boolean
266
- nextBeforeSequence: number | null
267
- }
268
-
269
- /** 操作记录 */
270
- export interface OperationRecord {
271
- id: string
272
- sessionId: string
273
- messageId?: string | null
274
- command: string
275
- operationType: string
276
- affectedFiles: string
277
- status: string
278
- timestamp: Date
279
- }
280
-
281
- /** 回收站记录 */
282
- export interface TrashRecord {
283
- id: string
284
- sessionId: string
285
- originalPath: string
286
- trashPath: string
287
- deletedAt: Date
288
- autoDeleteAt: Date
289
- }
290
-
291
- /** Skill 记录(system prompt 片段,支持本地或云端管理) */
292
- export interface SkillRecord {
293
- id: string
294
- name: string
295
- description: string
296
- content: string
297
- icon: string
298
- enabled: boolean
299
- builtIn: boolean
300
- extensionId?: string
301
- extensionName?: string
302
- createdAt: Date
303
- updatedAt: Date
304
- }
305
-
306
- /** 文件信息 */
307
- export interface FileInfo {
308
- name: string
309
- path: string
310
- isDirectory: boolean
311
- size: number
312
- modifiedAt: Date
313
- extension: string
314
- }
315
-
316
- export type AtContextKind = 'file' | 'doc' | 'terminal' | 'chat'
317
-
318
- interface AtContextItemBase {
319
- kind: AtContextKind
320
- id: string
321
- label: string
322
- mention: string
323
- description?: string
324
- }
325
-
326
- export interface AtFileContextItem extends AtContextItemBase {
327
- kind: 'file'
328
- path: string
329
- }
330
-
331
- export interface AtDocumentContextItem extends AtContextItemBase {
332
- kind: 'doc'
333
- documentId: string
334
- source: string
335
- snippet?: string
336
- score?: number
337
- matchType?: 'exact' | 'semantic' | 'fulltext' | 'hybrid'
338
- }
339
-
340
- export interface AtTerminalContextItem extends AtContextItemBase {
341
- kind: 'terminal'
342
- sessionId: string
343
- cwd: string
344
- status: string
345
- updatedAt: string
346
- }
347
-
348
- export interface AtChatContextItem extends AtContextItemBase {
349
- kind: 'chat'
350
- sessionId: string
351
- updatedAt: number
352
- preview?: string
353
- matchedMessageId?: string
354
- }
355
-
356
- export type AtContextItem =
357
- | AtFileContextItem
358
- | AtDocumentContextItem
359
- | AtTerminalContextItem
360
- | AtChatContextItem
361
-
362
- export type AtResourceKind = AtContextKind | 'directory'
363
-
364
- export interface AtResourceLocator {
365
- path?: string
366
- documentId?: string
367
- sessionId?: string
368
- cwd?: string
369
- messageId?: string
370
- }
371
-
372
- export interface AtResourcePreview {
373
- text?: string
374
- score?: number
375
- matchType?: 'exact' | 'semantic' | 'fulltext' | 'hybrid'
376
- updatedAt?: string | number
377
- status?: string
378
- }
379
-
380
- export interface AtResourceContent {
381
- kind: 'full' | 'summary' | 'structure'
382
- text: string
383
- truncated?: boolean
384
- /**
385
- * 该正文在使用 TokenCounter 计数下的 token 数。
386
- * 由 chat-utils 在应用 token budget 后写入,下游可据此做二次裁剪或调试展示。
387
- */
388
- tokens?: number
389
- }
390
-
391
- export interface AtResourceRecommendedTool {
392
- alias: string
393
- displayName?: string
394
- purpose: string
395
- /** 该工具是否能继续读到资源更多正文 / 结构化内容(元信息 / 查找类为 false) */
396
- canReadMore: boolean
397
- }
398
-
399
- /**
400
- * 文件格式能力契约 —— 整个 @ 文件链路的单一类型真相源。
401
- *
402
- * 同一套枚举同时被:
403
- * - superx/src/shared/fileTypeCatalog.ts(在宿主侧填充具体格式表并派生默认策略)
404
- * - ai-chat-shared/src/at-context-tools.ts(在前端侧按能力推荐工具)
405
- * 共同使用,严禁在任何一侧再次重复声明,避免双写漂移。
406
- *
407
- * DocumentType 语义:
408
- * - code/config/style/web/text/data → 原文按行读(super_filesystem__read)
409
- * - word/pdf/excel/powerpoint/notebook → 已解析文档统一读取(super_filesystem__read)
410
- * - ebook/opendocument → 同上
411
- * - unknown → 只推按名搜索,不推读取
412
- */
413
- export type DocumentType =
414
- | 'code'
415
- | 'config'
416
- | 'style'
417
- | 'web'
418
- | 'text'
419
- | 'data'
420
- | 'word'
421
- | 'pdf'
422
- | 'excel'
423
- | 'powerpoint'
424
- | 'notebook'
425
- | 'ebook'
426
- | 'opendocument'
427
- | 'unknown'
428
-
429
- export type ReadStrategy =
430
- | 'line-range'
431
- | 'section'
432
- | 'page'
433
- | 'sheet-range'
434
- | 'slide'
435
- | 'cell'
436
- | 'symbol'
437
- | 'none'
438
-
439
- export type SearchStrategy =
440
- | 'grep'
441
- | 'document-index'
442
- | 'code-index'
443
- | 'none'
444
-
445
- export type EditStrategy =
446
- | 'text'
447
- | 'structured-code'
448
- | 'readonly'
449
- | 'none'
450
-
451
- export interface AtResolvedFileContext {
452
- title?: string
453
- content: string | null
454
- /** 文件格式分类,由宿主通过 fileTypeCatalog 解析得出 */
455
- docType?: DocumentType
456
- /** 文件读取坐标能力:行 / 页 / cell / symbol 等 */
457
- readStrategy?: ReadStrategy
458
- /** 文件内容搜索能力:grep / 文档索引 / 代码索引 */
459
- searchStrategy?: SearchStrategy
460
- /** 文件编辑能力:文本替换 / 结构化代码 / 只读 */
461
- editStrategy?: EditStrategy
462
- metadata?: Record<string, unknown>
463
- }
464
-
465
- export interface AtResourceAccess {
466
- /** 推荐工具里是否至少有一个能继续读到资源更多正文 / 结构化内容 */
467
- canReadMore: boolean
468
- /**
469
- * 资源正文当前是否还有"直读 / 直搜"通道可用。
470
- * - file 资源:由 fileTypeCatalog 的 parser/readStrategy/searchStrategy 直接决定
471
- * (unsupported 或 read=none + search=none 时为 false)
472
- * - directory / doc / terminal / chat 等非文件资源:恒为 true
473
- * 下游渲染层直接读此字段即可,无需再反推 metadata 字符串。
474
- */
475
- directReadable: boolean
476
- recommendedTools: AtResourceRecommendedTool[]
477
- /**
478
- * 最终分配给该资源的 token 预算(预览 + 正文 + 元信息提示合计上限)。
479
- * 由 chat-utils 在装配 prompt 时按全局 budget 分配得出;未开启 token budget 时为 undefined。
480
- */
481
- allocatedTokens?: number
482
- }
483
-
484
- export interface AtResourceDescriptor {
485
- kind: AtResourceKind
486
- mention: string
487
- title: string
488
- locator: AtResourceLocator
489
- preview?: AtResourcePreview
490
- content?: AtResourceContent
491
- access: AtResourceAccess
492
- metadata?: Record<string, unknown>
493
- }
494
-
495
- /** 工具信息 */
496
- export interface ToolInfo {
497
- name: string
498
- description: string
499
- displayName: string
500
- assetId: string
501
- source: AssetSource
502
- category: string
503
- parameters?: Record<string, unknown>
504
- outputSchema?: Record<string, unknown>
505
- errorSchema?: Record<string, unknown>
506
- approvalPolicy?: AssetApprovalPolicy
507
- sideEffectLevel?: AssetSideEffectLevel
508
- hostDependency?: AssetHostDependency
509
- }
510
-
511
- export type ChatCapabilityGroupSource = AssetSource
512
-
513
- export interface ChatCapabilitySkillItem {
514
- id: string
515
- name: string
516
- description: string
517
- source: AssetSource
518
- extensionId: string
519
- extensionName: string
520
- chatEnabled: boolean
521
- }
522
-
523
- export interface ChatCapabilityToolItem {
524
- alias: string
525
- displayName: string
526
- description: string
527
- source: AssetSource
528
- category: string
529
- extensionId: string
530
- extensionName: string
531
- runtimeInjected: boolean
532
- runtimeAvailable: boolean
533
- chatEnabled: boolean
534
- approvalPolicy?: AssetApprovalPolicy
535
- sideEffectLevel?: AssetSideEffectLevel
536
- hostDependency?: AssetHostDependency
537
- }
538
-
539
- export interface ChatCapabilityMcpToolItem {
540
- alias: string
541
- displayName: string
542
- description: string
543
- source: AssetSource
544
- extensionId: string
545
- extensionName: string
546
- runtimeInjected: boolean
547
- runtimeAvailable: boolean
548
- chatEnabled: boolean
549
- }
550
-
551
- export interface ChatCapabilityMcpServerItem {
552
- id: string
553
- name: string
554
- source: AssetSource
555
- extensionId: string
556
- extensionName: string
557
- runtimeInjected: boolean
558
- runtimeAvailable: boolean
559
- connectionStatus: McpConnectionStatus
560
- error?: string
561
- tools: ChatCapabilityMcpToolItem[]
562
- }
563
-
564
- export interface ChatCapabilityExtensionGroup {
565
- id: string
566
- name: string
567
- source: ChatCapabilityGroupSource
568
- extensionEnabled: boolean
569
- /**
570
- * Total capabilities owned by the extension, including items hidden while the
571
- * extension is disabled. Renderers should use this for extension-level counts.
572
- */
573
- availableCount?: number
574
- skills: ChatCapabilitySkillItem[]
575
- tools: ChatCapabilityToolItem[]
576
- mcpServers: ChatCapabilityMcpServerItem[]
577
- }
578
-
579
- export interface ChatCapabilitySnapshot {
580
- extensions: ChatCapabilityExtensionGroup[]
581
- }
582
-
583
- export interface AgentCapabilityManifestTool {
584
- alias: string
585
- displayName: string
586
- description: string
587
- kind: 'tool' | 'mcp-tool'
588
- }
589
-
590
- export interface AgentCapabilityManifestSkill {
591
- id: string
592
- name: string
593
- description: string
594
- }
595
-
596
- export interface AgentCapabilityManifestExtension {
597
- id: string
598
- name: string
599
- source: string
600
- skills: AgentCapabilityManifestSkill[]
601
- tools: AgentCapabilityManifestTool[]
602
- }
603
-
604
- export interface AgentCapabilityManifest {
605
- version: '1'
606
- extensions: AgentCapabilityManifestExtension[]
607
- }
608
-
609
- export interface ChatCapabilitySelection {
610
- toolOverrides: Record<string, boolean>
611
- mcpToolOverrides: Record<string, boolean>
612
- }
613
-
614
- export interface SkillEnabledItem {
615
- id: string
616
- enabled: boolean
617
- }
618
-
619
- export interface ChatCapabilityToolEnabledItem {
620
- alias: string
621
- enabled: boolean
622
- }
623
-
624
- export interface ChatCapabilityToolEnabledResult extends ChatCapabilityToolEnabledItem {
625
- kind?: 'tool' | 'mcp'
626
- error?: string
627
- }
628
-
629
- /** 工具批准请求 */
630
- export interface ToolApprovalRequest {
631
- id: string
632
- name: string
633
- args: Record<string, unknown>
634
- }
635
-
636
- /** 工具执行结果(executeTool 返回值) */
637
- export interface ToolExecutionResult {
638
- success: boolean
639
- result: string
640
- error?: string
641
- /** 工具 UI 声明(成功时) */
642
- ui?: ToolUI
643
- approvalPolicy?: AssetApprovalPolicy
644
- sideEffectLevel?: AssetSideEffectLevel
645
- hostDependency?: AssetHostDependency
646
- riskSummary?: string
647
- riskTags?: string[]
648
- riskSignals?: string[]
649
- toolError?: import('@huyooo/ai-chat-core/events').ToolError
650
- }
651
-
652
- // ==================== ASR 语音识别 ====================
653
-
654
- /** ASR 会话配置 */
655
- export interface AsrSessionConfig {
656
- /** 音频格式 */
657
- format?: 'pcm' | 'wav'
658
- /** 采样率 */
659
- sampleRate?: number
660
- /** 启用标点 */
661
- enablePunc?: boolean
662
- /** 启用 ITN(数字规整) */
663
- enableItn?: boolean
664
- /** 启用语义顺滑 */
665
- enableDdc?: boolean
666
- /** 输出分句信息 */
667
- showUtterances?: boolean
668
- }
669
-
670
- /** ASR 识别结果 */
671
- export interface AsrResultData {
672
- result?: {
673
- text: string
674
- utterances?: Array<{
675
- text: string
676
- start_time: number
677
- end_time: number
678
- definite: boolean
679
- }>
680
- }
681
- audio_info?: {
682
- duration: number
683
- }
684
- }
685
-
686
- // ==================== ChatAdapter 接口 ====================
687
-
688
- // 导入 ChatEvent 和 ModelOption 用于 ChatAdapter 接口
689
- // ChatOptions 使用本地定义(含 ChatMode)
690
- import type { ChatEvent, ModelOption } from '@huyooo/ai-chat-core'
691
-
692
- /**
693
- * ChatAdapter 接口
694
- *
695
- * 统一的聊天适配器接口,支持多种实现:
696
- * - Electron IPC(ai-chat-bridge-electron/renderer)
697
- * - HTTP/SSE(ai-chat-adapter-http)
698
- *
699
- * 行为统一保证:无论使用哪种实现(本地直连 / HTTP / 混合),对调用方接口一致——
700
- * getModels()、sendMessage()、getSessions() 等语义相同,sendMessage 产出的事件均为
701
- * ChatEvent 类型集(见 ai-chat-core/events),事件 type 与 data 形状由类型定义约束,
702
- * 不因适配器或模型而异。core 层通过契约测试(CHAT_EVENT_TYPES)保证 Orchestrator
703
- * 产出合法事件。
704
- */
705
- export interface ChatAdapter {
706
- // ============ Chat API ============
707
- /** 获取可用模型 */
708
- getModels(): Promise<ModelOption[]>
709
- /** 获取所有工具列表(用于工具设置或管理视图) */
710
- getAllTools?(): Promise<ToolInfo[]>
711
- /** 获取聊天能力快照(扩展 -> 能力分类 -> 能力项) */
712
- getChatCapabilitySnapshot?(): Promise<ChatCapabilitySnapshot>
713
- /** 监听聊天能力更新 */
714
- onChatCapabilityUpdate?(callback: () => void): () => void
715
- /** 发送消息,返回异步迭代器 */
716
- sendMessage(
717
- message: string,
718
- options?: ChatOptions,
719
- images?: string[],
720
- sessionId?: string
721
- ): AsyncIterable<ChatEvent>
722
- /** 取消当前请求 */
723
- cancel(): void
724
- /** 设置当前工作目录 */
725
- setCwd?(dir: string): void
726
- /** 搜索可引用的文档上下文 */
727
- searchAtDocuments?(query: string, options?: { limit?: number }): Promise<AtDocumentContextItem[]>
728
- /** 列出可引用的终端会话 */
729
- listAtTerminals?(options?: { query?: string; limit?: number; workspaceRoot?: string }): Promise<AtTerminalContextItem[]>
730
- /** 搜索可引用的历史对话 */
731
- searchAtChats?(query: string, options?: { limit?: number }): Promise<AtChatContextItem[]>
732
- /** 读取可引用的文档上下文内容 */
733
- readAtDocumentContext?(documentId: string): Promise<string | null>
734
- /** 读取可引用的终端上下文内容 */
735
- readAtTerminalContext?(sessionId: string): Promise<string | null>
736
- /** 读取可引用的历史对话上下文内容 */
737
- readAtChatContext?(sessionId: string): Promise<string | null>
738
- /** 解析 @ 文件上下文(供宿主接入高级文件解析器) */
739
- resolveAtFileContext?(filePath: string): Promise<AtResolvedFileContext | null>
740
-
741
- // ============ Sessions API ============
742
- /** 获取会话列表 */
743
- getSessions(): Promise<SessionRecord[]>
744
- /** 获取单个会话 */
745
- getSession(id: string): Promise<SessionRecord | null>
746
- /** 创建会话 */
747
- createSession(params?: CreateSessionParams): Promise<SessionRecord>
748
- /** 更新会话 */
749
- updateSession(id: string, data: UpdateSessionParams): Promise<SessionRecord | null>
750
- /** 删除会话 */
751
- deleteSession(id: string): Promise<void>
752
-
753
- // ============ Messages API ============
754
- /** 获取会话消息 */
755
- getMessages(sessionId: string): Promise<MessageRecord[]>
756
- /** 分页获取会话消息(优先返回最近消息,按 sequence 升序返回当前页) */
757
- getMessagesPage?(sessionId: string, params?: GetMessagesPageParams): Promise<MessagePage>
758
- /** 保存消息 */
759
- saveMessage(params: SaveMessageParams): Promise<MessageRecord>
760
- /** 更新消息(增量保存) */
761
- updateMessage(params: UpdateMessageParams): Promise<void>
762
- /** 删除指定时间之后的消息(用于分叉) */
763
- deleteMessagesAfter(sessionId: string, timestamp: number): Promise<void>
764
- /** 删除指定消息之后的所有消息(用于分叉) */
765
- deleteMessagesAfterMessageId(sessionId: string, messageId: string): Promise<void>
766
-
767
- // ============ Operations API ============
768
- /** 获取操作日志 */
769
- getOperations(sessionId: string): Promise<OperationRecord[]>
770
-
771
- // ============ Trash API ============
772
- /** 获取回收站 */
773
- getTrashItems(): Promise<TrashRecord[]>
774
- /** 恢复回收站项目 */
775
- restoreFromTrash(id: string): Promise<TrashRecord | undefined>
776
-
777
- // ============ File System API(可选,Electron/CLI 特有)============
778
- listDir?(dirPath: string): Promise<FileInfo[]>
779
- exists?(filePath: string): Promise<boolean>
780
- stat?(filePath: string): Promise<FileInfo | null>
781
- readFile?(filePath: string): Promise<string | null>
782
- readFileBase64?(filePath: string): Promise<string | null>
783
- homeDir?(): Promise<string>
784
- resolvePath?(inputPath: string): Promise<string>
785
- parentDir?(dirPath: string): Promise<string>
786
- watchDir?(dirPath: string): Promise<boolean>
787
- unwatchDir?(dirPath: string): Promise<void>
788
- onDirChange?(callback: (data: { dirPath: string; eventType: string; filename: string | null }) => void): () => void
789
-
790
- // ============ Settings API ============
791
- getSetting?(key: string): Promise<string | null>
792
- setSetting?(key: string, value: string): Promise<void>
793
- getAllSettings?(): Promise<Record<string, string>>
794
- deleteSetting?(key: string): Promise<void>
795
-
796
- // ============ Index API(可选,文档索引)============
797
- getIndexStats?(): Promise<{ totalDocuments: number; indexSize: number; lastUpdated: string | null }>
798
- getIndexStatus?(): Promise<{ isIndexing: boolean; lastProgress: { indexed: number; total: number; currentFile?: string; stage: string } | null }>
799
- syncIndex?(): Promise<{ success: boolean }>
800
- cancelIndex?(): Promise<{ success: boolean }>
801
- deleteIndex?(): Promise<{ success: boolean }>
802
- registerIndexListener?(): Promise<{ success: boolean }>
803
- unregisterIndexListener?(): Promise<{ success: boolean }>
804
- onIndexProgress?(callback: (progress: { indexed: number; total: number; currentFile?: string; stage: string; error?: string }) => void): () => void
805
-
806
- // ============ Skills API(可选)============
807
- /** 批量设置 Skill 的聊天启用状态(聊天侧仅保留此能力) */
808
- setSkillsChatEnabled?(items: SkillEnabledItem[]): Promise<Array<SkillEnabledItem & { error?: string }>>
809
- /** 批量设置普通 Tool 的聊天启用状态(不改变扩展运行时启停) */
810
- setToolsChatEnabled?(items: ChatCapabilityToolEnabledItem[]): Promise<ChatCapabilityToolEnabledResult[]>
811
- /** 批量设置 MCP Tool 的聊天启用状态(不改变扩展运行时启停) */
812
- setMcpToolsChatEnabled?(items: ChatCapabilityToolEnabledItem[]): Promise<ChatCapabilityToolEnabledResult[]>
813
-
814
- // ============ Extension Toggle API(可选)============
815
- /**
816
- * 设置扩展的整体启停状态(Layer 1:影响 ChatRuntime 的 sessionTools)。
817
- * 对比 setSkillsChatEnabled / setToolsChatEnabled,这里是"容器级"开关:
818
- * 禁用扩展会让其所有 tool/skill/mcp 从会话工具集里卸下,直接减少 token 占用。
819
- */
820
- setExtensionEnabled?(payload: { id: string; enabled: boolean; source: AssetSource }): Promise<{ ok: true } | { ok: false; error: string }>
821
-
822
- // ============ Tool Approval API ============
823
- onToolApprovalRequest?(callback: (request: ToolApprovalRequest) => void): () => void
824
- respondToolApproval?(id: string, approved: boolean): Promise<void>
825
-
826
- /** 执行工具(用于重试失败的工具调用,Electron 等支持) */
827
- executeTool?(name: string, args: Record<string, unknown>): Promise<ToolExecutionResult>
828
-
829
- // ============ ASR API(可选)============
830
- asrStart?(config?: AsrSessionConfig): Promise<{ success: boolean; error?: string }>
831
- asrSendAudio?(audioData: ArrayBufferLike): Promise<{ success: boolean; error?: string }>
832
- asrFinish?(): Promise<{ success: boolean; error?: string }>
833
- asrStop?(): Promise<{ success: boolean }>
834
- asrStatus?(): Promise<{ connected: boolean }>
835
- asrWarmup?(config?: AsrSessionConfig): Promise<{ success: boolean; error?: string }>
836
- onAsrConnected?(callback: () => void): () => void
837
- onAsrResult?(callback: (data: { result: AsrResultData; isLast: boolean }) => void): () => void
838
- onAsrError?(callback: (error: { message: string }) => void): () => void
839
- onAsrClosed?(callback: () => void): () => void
840
-
841
- // ============ System API(可选)============
842
- openExternal?(url: string): Promise<void>
843
- }
844
-
845
- // ==================== 辅助参数类型 ====================
846
-
847
- /** 创建会话参数 */
848
- export interface CreateSessionParams {
849
- title?: string
850
- model?: string
851
- mode?: string
852
- webSearchEnabled?: boolean
853
- thinkingEnabled?: boolean
854
- hidden?: boolean
855
- }
856
-
857
- /** 更新会话参数 */
858
- export interface UpdateSessionParams {
859
- title?: string
860
- model?: string
861
- mode?: string
862
- webSearchEnabled?: boolean
863
- thinkingEnabled?: boolean
864
- hidden?: boolean
865
- }
866
-
867
- /** 保存消息参数 */
868
- export interface SaveMessageParams {
869
- id?: string
870
- sessionId: string
871
- role: 'user' | 'assistant' | 'system'
872
- content: string
873
- atContextItems?: AtContextItem[]
874
- images?: string[]
875
- model?: string
876
- mode?: string
877
- webSearchEnabled?: boolean
878
- thinkingEnabled?: boolean
879
- parts?: MessagePartInput[]
880
- operationIds?: string
881
- finishReason?: FinishReason
882
- }
883
-
884
- /** 更新消息参数 */
885
- export interface UpdateMessageParams {
886
- id: string
887
- content?: string
888
- atContextItems?: AtContextItem[] | null
889
- parts?: MessagePartInput[]
890
- operationIds?: string
891
- /** Token 使用统计(JSON 字符串) */
892
- usage?: string
893
- /** 响应耗时(毫秒) */
894
- duration?: number
895
- /** 结束原因(done 事件携带) */
896
- finishReason?: FinishReason
897
- }
898
-
899
- export interface MessagePartRecord {
900
- messageId: string
901
- sequence: number
902
- type: string
903
- payload: string
904
- }
905
-
906
- export interface MessagePartInput {
907
- type: string
908
- payload: string
909
- }
910
-
911
- // ==================== 发送消息参数(用于 IPC)====================
912
-
913
- /** 发送消息参数 */
914
- export interface SendMessageParams {
915
- message: string
916
- images?: string[]
917
- sessionId?: string
918
- options?: {
919
- mode?: string
920
- model?: string
921
- provider?: string
922
- enableWebSearch?: boolean
923
- thinkingMode?: string
924
- thinkingBudget?: number
925
- history?: ChatHistoryMessage[]
926
- }
927
- }
928
-
929
- // ==================== 前端扩展事件类型 + 事件工具 ====================
930
-
931
- export {
932
- buildToolGovernanceLabels,
933
- type FrontendChatEvent,
934
- type ToolGovernanceInfo,
935
- extractToolGovernance,
936
- mergeToolGovernance,
937
- shouldSaveEvent,
938
- } from './chat-utils'