@ainetwork/adk 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/dist/cjs/chunk-3PZM72TH.cjs +22 -0
  2. package/dist/cjs/chunk-3PZM72TH.cjs.map +1 -0
  3. package/dist/cjs/chunk-573HTYTZ.cjs +177 -0
  4. package/dist/cjs/chunk-573HTYTZ.cjs.map +1 -0
  5. package/dist/cjs/chunk-74J4UIJ4.cjs +22 -0
  6. package/dist/cjs/chunk-74J4UIJ4.cjs.map +1 -0
  7. package/dist/cjs/chunk-ACHCHQX2.cjs +169 -0
  8. package/dist/cjs/chunk-ACHCHQX2.cjs.map +1 -0
  9. package/dist/cjs/chunk-ATSE3TKM.cjs +37 -0
  10. package/dist/cjs/chunk-ATSE3TKM.cjs.map +1 -0
  11. package/dist/cjs/chunk-C2JU7GH4.cjs +37 -0
  12. package/dist/cjs/chunk-C2JU7GH4.cjs.map +1 -0
  13. package/dist/cjs/chunk-D75FARQ5.cjs +37 -0
  14. package/dist/cjs/chunk-D75FARQ5.cjs.map +1 -0
  15. package/dist/cjs/chunk-GBHMYJ6R.cjs +17 -0
  16. package/dist/cjs/chunk-GBHMYJ6R.cjs.map +1 -0
  17. package/dist/cjs/chunk-HVY7LNSQ.cjs +43 -0
  18. package/dist/cjs/chunk-HVY7LNSQ.cjs.map +1 -0
  19. package/dist/cjs/chunk-J3BFUVZS.cjs +35 -0
  20. package/dist/cjs/chunk-J3BFUVZS.cjs.map +1 -0
  21. package/dist/cjs/chunk-MTAGYTHO.cjs +17 -0
  22. package/dist/cjs/chunk-MTAGYTHO.cjs.map +1 -0
  23. package/dist/cjs/chunk-N3DEJ4TV.cjs +26 -0
  24. package/dist/cjs/chunk-N3DEJ4TV.cjs.map +1 -0
  25. package/dist/cjs/chunk-NHW2DR5J.cjs +22 -0
  26. package/dist/cjs/chunk-NHW2DR5J.cjs.map +1 -0
  27. package/dist/cjs/chunk-NXKC2HVX.cjs +35 -0
  28. package/dist/cjs/chunk-NXKC2HVX.cjs.map +1 -0
  29. package/dist/cjs/chunk-Q4FP72ZY.cjs +51 -0
  30. package/dist/cjs/chunk-Q4FP72ZY.cjs.map +1 -0
  31. package/dist/cjs/chunk-QVLENR2D.cjs +169 -0
  32. package/dist/cjs/chunk-QVLENR2D.cjs.map +1 -0
  33. package/dist/cjs/chunk-RGKCBQGZ.cjs +26 -0
  34. package/dist/cjs/chunk-RGKCBQGZ.cjs.map +1 -0
  35. package/dist/cjs/chunk-RKO64F2K.cjs +27 -0
  36. package/dist/cjs/chunk-RKO64F2K.cjs.map +1 -0
  37. package/dist/cjs/chunk-S5A7D46U.cjs +27 -0
  38. package/dist/cjs/chunk-S5A7D46U.cjs.map +1 -0
  39. package/dist/cjs/chunk-TWUZNIBN.cjs +27 -0
  40. package/dist/cjs/chunk-TWUZNIBN.cjs.map +1 -0
  41. package/dist/cjs/chunk-XQTVE64W.cjs +8 -0
  42. package/dist/cjs/chunk-XQTVE64W.cjs.map +1 -0
  43. package/dist/cjs/chunk-ZNILFAWD.cjs +27 -0
  44. package/dist/cjs/chunk-ZNILFAWD.cjs.map +1 -0
  45. package/dist/cjs/controllers/api/session.api.controller.cjs +2 -2
  46. package/dist/cjs/controllers/index.cjs +5 -5
  47. package/dist/cjs/controllers/index.cjs.map +1 -1
  48. package/dist/cjs/controllers/query.controller.cjs +2 -2
  49. package/dist/cjs/index.cjs +16 -16
  50. package/dist/cjs/index.cjs.map +1 -1
  51. package/dist/cjs/middlewares/auth.middleware.cjs +2 -2
  52. package/dist/cjs/modules/auth/base.auth.cjs +2 -2
  53. package/dist/cjs/modules/index.cjs +5 -5
  54. package/dist/cjs/modules/index.cjs.map +1 -1
  55. package/dist/cjs/modules/memory/memory.module.cjs +2 -2
  56. package/dist/cjs/routes/a2a.routes.cjs +5 -5
  57. package/dist/cjs/routes/api/sessions.routes.cjs +3 -3
  58. package/dist/cjs/routes/api.routes.cjs +4 -4
  59. package/dist/cjs/routes/index.cjs +12 -12
  60. package/dist/cjs/routes/index.cjs.map +1 -1
  61. package/dist/cjs/routes/query.routes.cjs +4 -4
  62. package/dist/cjs/services/index.cjs +5 -5
  63. package/dist/cjs/services/index.cjs.map +1 -1
  64. package/dist/cjs/services/query.service.cjs +2 -2
  65. package/dist/cjs/types/auth.cjs +1 -0
  66. package/dist/cjs/types/auth.cjs.map +1 -0
  67. package/dist/esm/{chunk-LVKAW3WE.js → chunk-2K5L4GFC.js} +21 -13
  68. package/dist/esm/{chunk-LVKAW3WE.js.map → chunk-2K5L4GFC.js.map} +1 -1
  69. package/dist/esm/{chunk-635VQ4CH.js → chunk-6BK7LDIA.js} +4 -3
  70. package/dist/esm/chunk-6BK7LDIA.js.map +1 -0
  71. package/dist/esm/{chunk-MEKGLPDX.js → chunk-CKTURH34.js} +4 -4
  72. package/dist/esm/chunk-CKTURH34.js.map +1 -0
  73. package/dist/esm/{chunk-6SDU6Z5Q.js → chunk-EJIQKPIV.js} +5 -5
  74. package/dist/esm/{chunk-KJ4MVCYE.js → chunk-FF5RJ4L2.js} +1 -1
  75. package/dist/esm/chunk-FF5RJ4L2.js.map +1 -0
  76. package/dist/esm/{chunk-JLH6DGBK.js → chunk-NSKXMJWE.js} +4 -4
  77. package/dist/esm/{chunk-423RKLBO.js → chunk-OIIR42TQ.js} +5 -5
  78. package/dist/esm/{chunk-IXXK7ZZM.js → chunk-RB4IFZJA.js} +3 -2
  79. package/dist/esm/chunk-RB4IFZJA.js.map +1 -0
  80. package/dist/esm/{chunk-KR6W7QIW.js → chunk-RSSLUA2N.js} +2 -2
  81. package/dist/esm/{chunk-XOMQNCCR.js → chunk-WIJDRP2A.js} +7 -2
  82. package/dist/esm/chunk-WIJDRP2A.js.map +1 -0
  83. package/dist/esm/controllers/api/session.api.controller.js +1 -1
  84. package/dist/esm/controllers/index.js +5 -5
  85. package/dist/esm/controllers/query.controller.js +1 -1
  86. package/dist/esm/index.d.ts +1 -0
  87. package/dist/esm/index.js +13 -13
  88. package/dist/esm/middlewares/auth.middleware.d.ts +1 -0
  89. package/dist/esm/middlewares/auth.middleware.js +1 -1
  90. package/dist/esm/modules/auth/base.auth.d.ts +2 -1
  91. package/dist/esm/modules/auth/base.auth.js +1 -1
  92. package/dist/esm/modules/index.d.ts +1 -0
  93. package/dist/esm/modules/index.js +8 -8
  94. package/dist/esm/modules/memory/base.memory.d.ts +5 -5
  95. package/dist/esm/modules/memory/memory.module.js +1 -1
  96. package/dist/esm/routes/a2a.routes.d.ts +1 -0
  97. package/dist/esm/routes/a2a.routes.js +3 -3
  98. package/dist/esm/routes/api/sessions.routes.js +2 -2
  99. package/dist/esm/routes/api.routes.d.ts +1 -0
  100. package/dist/esm/routes/api.routes.js +3 -3
  101. package/dist/esm/routes/index.d.ts +1 -0
  102. package/dist/esm/routes/index.js +14 -14
  103. package/dist/esm/routes/query.routes.d.ts +1 -0
  104. package/dist/esm/routes/query.routes.js +3 -3
  105. package/dist/esm/services/index.js +4 -4
  106. package/dist/esm/services/query.service.d.ts +1 -1
  107. package/dist/esm/services/query.service.js +1 -1
  108. package/dist/esm/types/auth.d.ts +6 -0
  109. package/dist/esm/types/auth.js +1 -0
  110. package/dist/esm/types/auth.js.map +1 -0
  111. package/package.json +1 -1
  112. package/dist/esm/chunk-635VQ4CH.js.map +0 -1
  113. package/dist/esm/chunk-IXXK7ZZM.js.map +0 -1
  114. package/dist/esm/chunk-KJ4MVCYE.js.map +0 -1
  115. package/dist/esm/chunk-MEKGLPDX.js.map +0 -1
  116. package/dist/esm/chunk-XOMQNCCR.js.map +0 -1
  117. /package/dist/esm/{chunk-6SDU6Z5Q.js.map → chunk-EJIQKPIV.js.map} +0 -0
  118. /package/dist/esm/{chunk-JLH6DGBK.js.map → chunk-NSKXMJWE.js.map} +0 -0
  119. /package/dist/esm/{chunk-423RKLBO.js.map → chunk-OIIR42TQ.js.map} +0 -0
  120. /package/dist/esm/{chunk-KR6W7QIW.js.map → chunk-RSSLUA2N.js.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createQueryRouter
3
- } from "../chunk-6SDU6Z5Q.js";
4
- import "../chunk-LVKAW3WE.js";
3
+ } from "../chunk-EJIQKPIV.js";
4
+ import "../chunk-WIJDRP2A.js";
5
+ import "../chunk-2K5L4GFC.js";
5
6
  import "../chunk-F727XG4N.js";
6
- import "../chunk-XOMQNCCR.js";
7
7
  import "../chunk-FI2UQLVC.js";
8
8
  import "../chunk-64GEXWSE.js";
9
9
  export {
@@ -1,11 +1,11 @@
1
+ import {
2
+ A2AService
3
+ } from "../chunk-AQ5YZERE.js";
1
4
  import {
2
5
  QueryService
3
- } from "../chunk-LVKAW3WE.js";
6
+ } from "../chunk-2K5L4GFC.js";
4
7
  import "../chunk-F727XG4N.js";
5
8
  import "../chunk-FI2UQLVC.js";
6
- import {
7
- A2AService
8
- } from "../chunk-AQ5YZERE.js";
9
9
  import "../chunk-64GEXWSE.js";
10
10
  export {
11
11
  A2AService,
@@ -66,7 +66,7 @@ declare class QueryService {
66
66
  * @param sessionId - Unique session identifier
67
67
  * @returns Object containing the AI-generated response
68
68
  */
69
- handleQuery(query: string, sessionId: string): Promise<{
69
+ handleQuery(query: string, sessionId: string, userId?: string): Promise<{
70
70
  content: string;
71
71
  }>;
72
72
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  QueryService
3
- } from "../chunk-LVKAW3WE.js";
3
+ } from "../chunk-2K5L4GFC.js";
4
4
  import "../chunk-F727XG4N.js";
5
5
  import "../chunk-FI2UQLVC.js";
6
6
  import "../chunk-64GEXWSE.js";
@@ -0,0 +1,6 @@
1
+ type AuthResponse = {
2
+ isAuthenticated: boolean;
3
+ userId?: string;
4
+ };
5
+
6
+ export type { AuthResponse };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ainetwork/adk",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "AI Network Agent Development Kit",
5
5
  "repository": "git@github.com:ainetwork-ai/ain-adk.git",
6
6
  "author": "AI Network (https://ainetwork.ai)",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/middlewares/auth.middleware.ts"],"sourcesContent":["import type { NextFunction, Request, RequestHandler, Response } from \"express\";\nimport { StatusCodes } from \"http-status-codes\";\nimport type { BaseAuth } from \"@/modules/auth/base.auth\";\nimport { AinHttpError } from \"@/types/agent\";\n\nexport class AuthMiddleware {\n\tprivate auth: BaseAuth;\n\tconstructor(auth: BaseAuth) {\n\t\tthis.auth = auth;\n\t}\n\n\tpublic middleware(): RequestHandler {\n\t\treturn async (req: Request, res: Response, next: NextFunction) => {\n\t\t\ttry {\n\t\t\t\tconst isAuthenticated = await this.auth.authenticate(req, res);\n\t\t\t\tif (isAuthenticated) {\n\t\t\t\t\tnext();\n\t\t\t\t} else {\n\t\t\t\t\tconst error: AinHttpError = new AinHttpError(\n\t\t\t\t\t\tStatusCodes.UNAUTHORIZED,\n\t\t\t\t\t\t\"Unauthorized\",\n\t\t\t\t\t);\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t} catch (e: any) {\n\t\t\t\tif (!e.status) {\n\t\t\t\t\tconst error: AinHttpError = new AinHttpError(\n\t\t\t\t\t\tStatusCodes.INTERNAL_SERVER_ERROR,\n\t\t\t\t\t\t`Authentication error: ${JSON.stringify(e)}`,\n\t\t\t\t\t);\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t};\n\t}\n}\n"],"mappings":";;;;;AACA,SAAS,mBAAmB;AAIrB,IAAM,iBAAN,MAAqB;AAAA,EACnB;AAAA,EACR,YAAY,MAAgB;AAC3B,SAAK,OAAO;AAAA,EACb;AAAA,EAEO,aAA6B;AACnC,WAAO,OAAO,KAAc,KAAe,SAAuB;AACjE,UAAI;AACH,cAAM,kBAAkB,MAAM,KAAK,KAAK,aAAa,KAAK,GAAG;AAC7D,YAAI,iBAAiB;AACpB,eAAK;AAAA,QACN,OAAO;AACN,gBAAM,QAAsB,IAAI;AAAA,YAC/B,YAAY;AAAA,YACZ;AAAA,UACD;AACA,gBAAM;AAAA,QACP;AAAA,MACD,SAAS,GAAQ;AAChB,YAAI,CAAC,EAAE,QAAQ;AACd,gBAAM,QAAsB,IAAI;AAAA,YAC/B,YAAY;AAAA,YACZ,yBAAyB,KAAK,UAAU,CAAC,CAAC;AAAA,UAC3C;AACA,gBAAM;AAAA,QACP;AACA,cAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/controllers/api/session.api.controller.ts"],"sourcesContent":["import type { NextFunction, Request, Response } from \"express\";\nimport { StatusCodes } from \"http-status-codes\";\nimport type { MemoryModule } from \"@/modules/index.js\";\nimport { AinHttpError } from \"@/types/agent.js\";\nexport class SessionApiController {\n\tprivate memoryModule: MemoryModule;\n\n\tconstructor(memoryModule: MemoryModule) {\n\t\tthis.memoryModule = memoryModule;\n\t}\n\n\tpublic handleSessionHistory = async (\n\t\treq: Request,\n\t\tres: Response,\n\t\tnext: NextFunction,\n\t) => {\n\t\ttry {\n\t\t\tconst { id: sessionId } = req.params;\n\t\t\tconst sessionMemory = this.memoryModule.getSessionMemory();\n\t\t\tif (!sessionMemory) {\n\t\t\t\tconst error = new AinHttpError(\n\t\t\t\t\tStatusCodes.SERVICE_UNAVAILABLE,\n\t\t\t\t\t\"Memory module is not initialized\",\n\t\t\t\t);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tconst session = await sessionMemory.getSession(sessionId);\n\t\t\tres.json(session);\n\t\t} catch (error) {\n\t\t\tnext(error);\n\t\t}\n\t};\n}\n"],"mappings":";;;;;AACA,SAAS,mBAAmB;AAGrB,IAAM,uBAAN,MAA2B;AAAA,EACzB;AAAA,EAER,YAAY,cAA4B;AACvC,SAAK,eAAe;AAAA,EACrB;AAAA,EAEO,uBAAuB,OAC7B,KACA,KACA,SACI;AACJ,QAAI;AACH,YAAM,EAAE,IAAI,UAAU,IAAI,IAAI;AAC9B,YAAM,gBAAgB,KAAK,aAAa,iBAAiB;AACzD,UAAI,CAAC,eAAe;AACnB,cAAM,QAAQ,IAAI;AAAA,UACjB,YAAY;AAAA,UACZ;AAAA,QACD;AACA,cAAM;AAAA,MACP;AACA,YAAM,UAAU,MAAM,cAAc,WAAW,SAAS;AACxD,UAAI,KAAK,OAAO;AAAA,IACjB,SAAS,OAAO;AACf,WAAK,KAAK;AAAA,IACX;AAAA,EACD;AACD;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/modules/auth/base.auth.ts"],"sourcesContent":["import type { Request, Response } from \"express\";\n\nexport abstract class BaseAuth {\n\tabstract authenticate(req: Request, res: Response): Promise<boolean>;\n}\n"],"mappings":";AAEO,IAAe,WAAf,MAAwB;AAE/B;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/modules/memory/memory.module.ts"],"sourcesContent":["import type {\n\tIAgentMemory,\n\tIIntentMemory,\n\tISessionMemory,\n} from \"./base.memory.js\";\n\nexport interface MemoryConfig {\n\tagent?: IAgentMemory;\n\tsession?: ISessionMemory;\n\tintent?: IIntentMemory;\n}\n\nexport class MemoryModule {\n\tprivate agentMemory?: IAgentMemory;\n\tprivate sessionMemory?: ISessionMemory;\n\tprivate intentMemory?: IIntentMemory;\n\n\tconstructor(config: MemoryConfig) {\n\t\tthis.agentMemory = config.agent;\n\t\tthis.sessionMemory = config.session;\n\t\tthis.intentMemory = config.intent;\n\t}\n\n\tasync initialize(): Promise<void> {\n\t\tconst connectPromises: Promise<void>[] = [];\n\n\t\tif (this.agentMemory) {\n\t\t\tconnectPromises.push(this.agentMemory.connect());\n\t\t}\n\t\tif (this.sessionMemory) {\n\t\t\tconnectPromises.push(this.sessionMemory.connect());\n\t\t}\n\t\tif (this.intentMemory) {\n\t\t\tconnectPromises.push(this.intentMemory.connect());\n\t\t}\n\n\t\tawait Promise.all(connectPromises);\n\t}\n\n\tasync shutdown(): Promise<void> {\n\t\tconst disconnectPromises: Promise<void>[] = [];\n\n\t\tif (this.agentMemory && this.agentMemory.isConnected()) {\n\t\t\tdisconnectPromises.push(this.agentMemory.disconnect());\n\t\t}\n\t\tif (this.sessionMemory && this.sessionMemory.isConnected()) {\n\t\t\tdisconnectPromises.push(this.sessionMemory.disconnect());\n\t\t}\n\t\tif (this.intentMemory && this.intentMemory.isConnected()) {\n\t\t\tdisconnectPromises.push(this.intentMemory.disconnect());\n\t\t}\n\n\t\tawait Promise.all(disconnectPromises);\n\t}\n\n\tpublic getAgentMemory(): IAgentMemory | undefined {\n\t\treturn this.agentMemory;\n\t}\n\n\tpublic getSessionMemory(): ISessionMemory | undefined {\n\t\treturn this.sessionMemory;\n\t}\n\n\tpublic getIntentMemory(): IIntentMemory | undefined {\n\t\treturn this.intentMemory;\n\t}\n}\n"],"mappings":";AAYO,IAAM,eAAN,MAAmB;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY,QAAsB;AACjC,SAAK,cAAc,OAAO;AAC1B,SAAK,gBAAgB,OAAO;AAC5B,SAAK,eAAe,OAAO;AAAA,EAC5B;AAAA,EAEA,MAAM,aAA4B;AACjC,UAAM,kBAAmC,CAAC;AAE1C,QAAI,KAAK,aAAa;AACrB,sBAAgB,KAAK,KAAK,YAAY,QAAQ,CAAC;AAAA,IAChD;AACA,QAAI,KAAK,eAAe;AACvB,sBAAgB,KAAK,KAAK,cAAc,QAAQ,CAAC;AAAA,IAClD;AACA,QAAI,KAAK,cAAc;AACtB,sBAAgB,KAAK,KAAK,aAAa,QAAQ,CAAC;AAAA,IACjD;AAEA,UAAM,QAAQ,IAAI,eAAe;AAAA,EAClC;AAAA,EAEA,MAAM,WAA0B;AAC/B,UAAM,qBAAsC,CAAC;AAE7C,QAAI,KAAK,eAAe,KAAK,YAAY,YAAY,GAAG;AACvD,yBAAmB,KAAK,KAAK,YAAY,WAAW,CAAC;AAAA,IACtD;AACA,QAAI,KAAK,iBAAiB,KAAK,cAAc,YAAY,GAAG;AAC3D,yBAAmB,KAAK,KAAK,cAAc,WAAW,CAAC;AAAA,IACxD;AACA,QAAI,KAAK,gBAAgB,KAAK,aAAa,YAAY,GAAG;AACzD,yBAAmB,KAAK,KAAK,aAAa,WAAW,CAAC;AAAA,IACvD;AAEA,UAAM,QAAQ,IAAI,kBAAkB;AAAA,EACrC;AAAA,EAEO,iBAA2C;AACjD,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,mBAA+C;AACrD,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,kBAA6C;AACnD,WAAO,KAAK;AAAA,EACb;AACD;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/controllers/query.controller.ts"],"sourcesContent":["import type { NextFunction, Request, Response } from \"express\";\nimport type { QueryService } from \"@/services\";\n\nexport class QueryController {\n\tprivate queryService;\n\n\tconstructor(queryService: QueryService) {\n\t\tthis.queryService = queryService;\n\t}\n\n\tpublic handleQueryRequest = async (\n\t\treq: Request,\n\t\tres: Response,\n\t\tnext: NextFunction,\n\t) => {\n\t\ttry {\n\t\t\tconst { message, sessionId } = req.body;\n\n\t\t\tconst result = await this.queryService.handleQuery(message, sessionId);\n\n\t\t\tres.status(200).json(result);\n\t\t} catch (error) {\n\t\t\tnext(error);\n\t\t}\n\t};\n}\n"],"mappings":";AAGO,IAAM,kBAAN,MAAsB;AAAA,EACpB;AAAA,EAER,YAAY,cAA4B;AACvC,SAAK,eAAe;AAAA,EACrB;AAAA,EAEO,qBAAqB,OAC3B,KACA,KACA,SACI;AACJ,QAAI;AACH,YAAM,EAAE,SAAS,UAAU,IAAI,IAAI;AAEnC,YAAM,SAAS,MAAM,KAAK,aAAa,YAAY,SAAS,SAAS;AAErE,UAAI,OAAO,GAAG,EAAE,KAAK,MAAM;AAAA,IAC5B,SAAS,OAAO;AACf,WAAK,KAAK;AAAA,IACX;AAAA,EACD;AACD;","names":[]}