@amodalai/react 0.1.25 → 0.1.26

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":"chat.d.ts","sourceRoot":"","sources":["../src/chat.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIlE,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IAC3D,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IAC/C,4CAA4C;IAC5C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC;IACzD,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IACpH,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EACzB,WAAiC,EACjC,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,GAAG,WAAW,EACf,EAAE,eAAe,2CAuHjB"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIlE,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IAC3D,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IAC/C,4CAA4C;IAC5C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC;IACzD,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IACpH,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EACzB,WAAiC,EACjC,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,GAAG,WAAW,EACf,EAAE,eAAe,2CAwHjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatClient.d.ts","sourceRoot":"","sources":["../../src/client/ChatClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAsD,MAAM,UAAU,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElJ;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,SAAS,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,eAAe,EAAE,SAAS,CAAC;IAC3B,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,iBAAiB,CAAC;IACjC,eAAe,EAAE,mBAAmB,CAAC;IACrC,eAAe,EAAE,mBAAmB,CAAC;IACrC,oBAAoB,EAAE,eAAe,CAAC;IACtC,iBAAiB,EAAE,WAAW,CAAC;CAChC;AAQD;;;GAGG;AACH,qBAAa,UAAW,SAAQ,iBAAiB,CAAC,YAAY,CAAC;IAC7D,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,SAAS,CAAiB;gBAEtB,MAAM,EAAE,gBAAgB;IAapC,mEAAmE;IACnE,IAAI,MAAM,IAAI,cAAc,CAE3B;IAED,gDAAgD;IAChD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,iDAAiD;IACjD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,oDAAoD;IACpD,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,gCAAgC;IAChC,IAAI,QAAQ,IAAI,SAAS,WAAW,EAAE,CAErC;IAED,2CAA2C;IACrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B,+BAA+B;IACzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,6BAA6B;IAC7B,YAAY,IAAI,IAAI;IAIpB;;;OAGG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAiD/C;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;YAkDlB,cAAc;YAmId,iBAAiB;CAqBhC"}
1
+ {"version":3,"file":"ChatClient.d.ts","sourceRoot":"","sources":["../../src/client/ChatClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAsD,MAAM,UAAU,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElJ;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,SAAS,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,eAAe,EAAE,SAAS,CAAC;IAC3B,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,iBAAiB,CAAC;IACjC,eAAe,EAAE,mBAAmB,CAAC;IACrC,eAAe,EAAE,mBAAmB,CAAC;IACrC,oBAAoB,EAAE,eAAe,CAAC;IACtC,iBAAiB,EAAE,WAAW,CAAC;CAChC;AAQD;;;GAGG;AACH,qBAAa,UAAW,SAAQ,iBAAiB,CAAC,YAAY,CAAC;IAC7D,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,SAAS,CAAiB;gBAEtB,MAAM,EAAE,gBAAgB;IAapC,mEAAmE;IACnE,IAAI,MAAM,IAAI,cAAc,CAE3B;IAED,gDAAgD;IAChD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,iDAAiD;IACjD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,oDAAoD;IACpD,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,gCAAgC;IAChC,IAAI,QAAQ,IAAI,SAAS,WAAW,EAAE,CAErC;IAED,2CAA2C;IACrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B,+BAA+B;IACzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,6BAA6B;IAC7B,YAAY,IAAI,IAAI;IAIpB;;;OAGG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAiD/C;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;YAkDlB,cAAc;YAoId,iBAAiB;CAqBhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatStream.d.ts","sourceRoot":"","sources":["../../src/client/ChatStream.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,YAAY,EACZ,cAAc,EACd,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,KAAK,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAE/C;;;GAGG;AACH,qBAAa,UAAU;IAoCnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IApCjB,OAAO,CAAC,QAAQ,CAoBd;IAEF,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAKd;IACF,OAAO,CAAC,aAAa,CAA6B;IAElD,OAAO,CAAC,KAAK,CAAC,CAAS;gBAGb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,EAClC,KAAK,CAAC,EAAE,MAAM;IAQhB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IACtE,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAC5H,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAClI,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IACjF,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,GAAG,IAAI;IAC3E,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,GAAG,IAAI;IAC7G,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC,GAAG,IAAI;IACzG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAC1E,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,IAAI;IAYlE,yBAAyB;IACzB,KAAK,IAAI,IAAI;YAIC,KAAK;IA8BnB,OAAO,CAAC,YAAY;CA4ErB"}
1
+ {"version":3,"file":"ChatStream.d.ts","sourceRoot":"","sources":["../../src/client/ChatStream.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,YAAY,EACZ,cAAc,EACd,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,KAAK,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAE/C;;;GAGG;AACH,qBAAa,UAAU;IAoCnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IApCjB,OAAO,CAAC,QAAQ,CAoBd;IAEF,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAKd;IACF,OAAO,CAAC,aAAa,CAA6B;IAElD,OAAO,CAAC,KAAK,CAAC,CAAS;gBAGb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,EAClC,KAAK,CAAC,EAAE,MAAM;IAShB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IACtE,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAC5H,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAClI,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IACjF,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,GAAG,IAAI;IAC3E,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,GAAG,IAAI;IAC7G,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC,GAAG,IAAI;IACzG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAC1E,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,IAAI;IAYlE,yBAAyB;IACzB,KAAK,IAAI,IAAI;YAIC,KAAK;IA8BnB,OAAO,CAAC,YAAY;CA6ErB"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":["../src/client/runtime-client.ts","../src/client/ChatStream.ts","../src/client/ChatClient.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2025 Amodal Labs, Inc.\n * SPDX-License-Identifier: MIT\n */\n\nimport type { SSEEvent, TaskStatus, StoreDefinitionInfo, StoreListResult, StoreDocumentResult } from '../types';\nimport { streamSSE, streamSSEGet } from './sse-client';\n\nexport interface RuntimeClientOptions {\n runtimeUrl: string;\n getToken?: () => string | Promise<string> | null | undefined;\n}\n\n/**\n * Client for the Amodal runtime's repo routes.\n */\nexport class RuntimeClient {\n private readonly runtimeUrl: string;\n private readonly getToken?: () => string | Promise<string> | null | undefined;\n\n constructor(options: RuntimeClientOptions) {\n this.runtimeUrl = options.runtimeUrl.replace(/\\/$/, '');\n this.getToken = options.getToken;\n }\n\n private async authHeaders(): Promise<Record<string, string>> {\n const headers: Record<string, string> = {};\n if (this.getToken) {\n const token = await this.getToken();\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n }\n return headers;\n }\n\n /**\n * Stream a chat message via POST /chat.\n */\n async *chatStream(\n message: string,\n options?: {\n sessionId?: string;\n context?: Record<string, unknown>;\n signal?: AbortSignal;\n },\n ): AsyncGenerator<SSEEvent> {\n const url = `${this.runtimeUrl}/chat`;\n const body: Record<string, unknown> = {\n message,\n };\n if (options?.sessionId) {\n body['session_id'] = options.sessionId;\n }\n if (options?.context) {\n body['context'] = options.context;\n }\n\n const headers = await this.authHeaders();\n\n yield* streamSSE(url, body, {\n signal: options?.signal,\n headers,\n });\n }\n\n /**\n * Start a fire-and-forget task via POST /task.\n */\n async startTask(prompt: string): Promise<{ task_id: string }> {\n const url = `${this.runtimeUrl}/task`;\n const body: Record<string, unknown> = { prompt };\n const headers = await this.authHeaders();\n\n const response = await fetch(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...headers },\n body: JSON.stringify(body),\n });\n\n if (!response.ok) {\n throw new Error(`Start task failed: ${String(response.status)} ${response.statusText}`);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Server response\n return (await response.json()) as { task_id: string };\n }\n\n /**\n * Get task status via GET /task/:id.\n */\n async getTaskStatus(taskId: string): Promise<TaskStatus> {\n const url = `${this.runtimeUrl}/task/${taskId}`;\n\n const headers = await this.authHeaders();\n const response = await fetch(url, { headers });\n\n if (!response.ok) {\n throw new Error(`Get task status failed: ${String(response.status)} ${response.statusText}`);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Server response\n return (await response.json()) as TaskStatus;\n }\n\n /**\n * Stream task events via GET /task/:id/stream.\n */\n async *streamTask(\n taskId: string,\n signal?: AbortSignal,\n ): AsyncGenerator<SSEEvent> {\n const url = `${this.runtimeUrl}/task/${taskId}/stream`;\n const headers = await this.authHeaders();\n yield* streamSSEGet(url, { signal, headers });\n }\n\n // ---------------------------------------------------------------------------\n // Store API\n // ---------------------------------------------------------------------------\n\n async getStores(signal?: AbortSignal): Promise<StoreDefinitionInfo[]> {\n const url = `${this.runtimeUrl}/api/stores`;\n const authH = await this.authHeaders();\n const response = await fetch(url, { headers: authH, signal });\n if (!response.ok) {\n throw new Error(`Failed to fetch stores: ${String(response.status)}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Server response\n const body = (await response.json()) as { stores: StoreDefinitionInfo[] };\n return body.stores;\n }\n\n async getStoreDocuments(\n storeName: string,\n options?: {\n filter?: Record<string, unknown>;\n sort?: string;\n limit?: number;\n offset?: number;\n signal?: AbortSignal;\n },\n ): Promise<StoreListResult> {\n const params = new URLSearchParams();\n if (options?.filter) {\n params.set('filter', JSON.stringify(options.filter));\n }\n if (options?.sort) {\n params.set('sort', options.sort);\n }\n if (options?.limit !== undefined) {\n params.set('limit', String(options.limit));\n }\n if (options?.offset !== undefined) {\n params.set('offset', String(options.offset));\n }\n\n const qs = params.toString();\n const url = `${this.runtimeUrl}/api/stores/${storeName}${qs ? `?${qs}` : ''}`;\n const authH = await this.authHeaders();\n const response = await fetch(url, { headers: authH, signal: options?.signal });\n if (!response.ok) {\n throw new Error(`Failed to fetch store documents: ${String(response.status)}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Server response\n return (await response.json()) as StoreListResult;\n }\n\n async getStoreDocument(\n storeName: string,\n key: string,\n signal?: AbortSignal,\n ): Promise<StoreDocumentResult> {\n const url = `${this.runtimeUrl}/api/stores/${storeName}/${encodeURIComponent(key)}`;\n const authH = await this.authHeaders();\n const response = await fetch(url, { headers: authH, signal });\n if (!response.ok) {\n if (response.status === 404) {\n return { document: null, history: [] };\n }\n throw new Error(`Failed to fetch store document: ${String(response.status)}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Server response\n return (await response.json()) as StoreDocumentResult;\n }\n}\n","/**\n * @license\n * Copyright 2025 Amodal Labs, Inc.\n * SPDX-License-Identifier: MIT\n */\n\nimport type {\n SSEEvent,\n ToolCallInfo,\n KBProposalInfo,\n AskUserQuestion,\n} from '../types';\nimport type { ChatStreamRequest } from './chat-api';\nimport { streamChat } from './chat-api';\n\n/**\n * Full response from a completed chat stream.\n */\nexport interface ChatResponse {\n text: string;\n toolCalls: ToolCallInfo[];\n skillsUsed: string[];\n kbProposals: KBProposalInfo[];\n}\n\ntype StreamEventHandler<T> = (data: T) => void;\n\n/**\n * A streaming chat response handle.\n * Register `.on()` handlers then the stream starts automatically.\n */\nexport class ChatStream {\n private handlers: {\n text: Array<StreamEventHandler<{ text: string }>>;\n tool_call: Array<StreamEventHandler<{ tool: string; params: Record<string, unknown>; toolId: string }>>;\n tool_result: Array<StreamEventHandler<{ tool: string; data: unknown; duration_ms?: number; toolId: string }>>;\n skill_activated: Array<StreamEventHandler<{ name: string }>>;\n kb_proposal: Array<StreamEventHandler<KBProposalInfo>>;\n widget: Array<StreamEventHandler<{ widgetType: string; data: Record<string, unknown> }>>;\n ask_user: Array<StreamEventHandler<{ askId: string; questions: AskUserQuestion[] }>>;\n error: Array<StreamEventHandler<{ message: string }>>;\n done: Array<StreamEventHandler<ChatResponse>>;\n } = {\n text: [],\n tool_call: [],\n tool_result: [],\n skill_activated: [],\n kb_proposal: [],\n widget: [],\n ask_user: [],\n error: [],\n done: [],\n };\n\n private abortController: AbortController;\n private started = false;\n private response: ChatResponse = {\n text: '',\n toolCalls: [],\n skillsUsed: [],\n kbProposals: [],\n };\n private toolCallNames = new Map<string, string>();\n\n private token?: string;\n\n constructor(\n private serverUrl: string,\n private request: ChatStreamRequest,\n token?: string,\n ) {\n this.abortController = new AbortController();\n this.token = token;\n // Start on next microtick so .on() calls can register first\n queueMicrotask(() => this.start());\n }\n\n on(event: 'text', handler: StreamEventHandler<{ text: string }>): this;\n on(event: 'tool_call', handler: StreamEventHandler<{ tool: string; params: Record<string, unknown>; toolId: string }>): this;\n on(event: 'tool_result', handler: StreamEventHandler<{ tool: string; data: unknown; duration_ms?: number; toolId: string }>): this;\n on(event: 'skill_activated', handler: StreamEventHandler<{ name: string }>): this;\n on(event: 'kb_proposal', handler: StreamEventHandler<KBProposalInfo>): this;\n on(event: 'widget', handler: StreamEventHandler<{ widgetType: string; data: Record<string, unknown> }>): this;\n on(event: 'ask_user', handler: StreamEventHandler<{ askId: string; questions: AskUserQuestion[] }>): this;\n on(event: 'error', handler: StreamEventHandler<{ message: string }>): this;\n on(event: 'done', handler: StreamEventHandler<ChatResponse>): this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- overload implementation requires broad type\n on(event: string, handler: StreamEventHandler<any>): this {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- overload dispatch key narrowing\n const key = event as keyof typeof this.handlers;\n if (key in this.handlers) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- overload dispatch\n (this.handlers[key] as Array<StreamEventHandler<unknown>>).push(handler);\n }\n return this;\n }\n\n /** Cancel the stream. */\n abort(): void {\n this.abortController.abort();\n }\n\n private async start(): Promise<void> {\n if (this.started) return;\n this.started = true;\n\n try {\n const stream = streamChat(\n this.serverUrl,\n this.request,\n this.abortController.signal,\n this.token,\n );\n\n for await (const event of stream) {\n this.processEvent(event);\n }\n\n // Emit done\n for (const handler of this.handlers.done) {\n handler(this.response);\n }\n } catch (err) {\n if (!(err instanceof DOMException && err.name === 'AbortError')) {\n const message = err instanceof Error ? err.message : 'Unknown error';\n for (const handler of this.handlers.error) {\n handler({ message });\n }\n }\n }\n }\n\n private processEvent(event: SSEEvent): void {\n switch (event.type) {\n case 'text_delta':\n this.response.text += event.content;\n for (const handler of this.handlers.text) {\n handler({ text: event.content });\n }\n break;\n case 'tool_call_start':\n this.toolCallNames.set(event.tool_id, event.tool_name);\n for (const handler of this.handlers.tool_call) {\n handler({ tool: event.tool_name, params: event.parameters, toolId: event.tool_id });\n }\n this.response.toolCalls.push({\n toolId: event.tool_id,\n toolName: event.tool_name,\n parameters: event.parameters,\n status: 'running',\n });\n break;\n case 'tool_call_result': {\n const toolName = this.toolCallNames.get(event.tool_id) ?? '';\n for (const handler of this.handlers.tool_result) {\n handler({ tool: toolName, data: event.result, duration_ms: event.duration_ms, toolId: event.tool_id });\n }\n // Update status in response\n const tc = this.response.toolCalls.find((t) => t.toolId === event.tool_id);\n if (tc) {\n tc.status = event.status;\n tc.result = event.result;\n tc.duration_ms = event.duration_ms;\n tc.error = event.error;\n }\n break;\n }\n case 'skill_activated':\n this.response.skillsUsed.push(event.skill);\n for (const handler of this.handlers.skill_activated) {\n handler({ name: event.skill });\n }\n break;\n case 'kb_proposal': {\n const proposal: KBProposalInfo = {\n scope: event.scope,\n title: event.title,\n reasoning: event.reasoning,\n };\n this.response.kbProposals.push(proposal);\n for (const handler of this.handlers.kb_proposal) {\n handler(proposal);\n }\n break;\n }\n case 'ask_user':\n for (const handler of this.handlers.ask_user) {\n handler({ askId: event.ask_id, questions: event.questions });\n }\n break;\n case 'widget':\n for (const handler of this.handlers.widget) {\n handler({ widgetType: event.widget_type, data: event.data });\n }\n break;\n case 'error':\n for (const handler of this.handlers.error) {\n handler({ message: event.message });\n }\n break;\n case 'init':\n case 'done':\n // Init handled by ChatClient, done triggers after loop\n break;\n default:\n break;\n }\n }\n}\n","/**\n * @license\n * Copyright 2025 Amodal Labs, Inc.\n * SPDX-License-Identifier: MIT\n */\n\nimport { TypedEventEmitter } from './EventEmitter';\nimport { ChatStream } from './ChatStream';\nimport type { ChatResponse } from './ChatStream';\nimport { createSession, streamChat } from './chat-api';\nimport type { ChatUser, ChatMessage, AssistantTextMessage, ToolCallInfo, KBProposalInfo } from '../types';\nimport { WidgetEventBus } from '../events/event-bus';\nimport type { WidgetEvent, EntityExtractor, ToolExecutedEvent, SkillActivatedEvent, WidgetRenderedEvent, KBProposalEvent } from '../events/types';\n\n/**\n * Configuration for the ChatClient.\n */\nexport interface ChatClientConfig {\n serverUrl: string;\n user: ChatUser;\n /** Bearer token (API key or JWT) for authenticated requests. */\n token?: string;\n /** Custom entity extractors. If provided, replaces the default extractor. */\n entityExtractors?: EntityExtractor[];\n}\n\n/**\n * Events emitted by the ChatClient.\n */\nexport interface ClientEvents {\n connected: undefined;\n disconnected: undefined;\n reconnecting: number;\n message: ChatMessage;\n streaming_start: undefined;\n streaming_end: undefined;\n error: Error;\n tool_executed: ToolExecutedEvent;\n skill_activated: SkillActivatedEvent;\n widget_rendered: WidgetRenderedEvent;\n kb_proposal_received: KBProposalEvent;\n entity_referenced: WidgetEvent;\n}\n\nlet msgCounter = 0;\nfunction makeId(): string {\n msgCounter++;\n return `msg-${Date.now()}-${String(msgCounter)}`;\n}\n\n/**\n * Headless chat client for framework-agnostic integrations.\n * Manages session lifecycle, message history, and SSE streaming.\n */\nexport class ChatClient extends TypedEventEmitter<ClientEvents> {\n private config: ChatClientConfig;\n private sessionId: string | null = null;\n private _messages: ChatMessage[] = [];\n private _isConnected = false;\n private _isStreaming = false;\n private connectAttempt = 0;\n private maxReconnectAttempts = 3;\n private _eventBus: WidgetEventBus;\n\n constructor(config: ChatClientConfig) {\n super();\n this.config = config;\n this._eventBus = new WidgetEventBus();\n if (config.entityExtractors) {\n this._eventBus.setExtractors(config.entityExtractors);\n }\n // Forward entity_referenced events from bus to client events\n this._eventBus.on('entity_referenced', (e) => {\n this.emit('entity_referenced', e);\n });\n }\n\n /** The widget event bus. Subscribe to agent-driven events here. */\n get events(): WidgetEventBus {\n return this._eventBus;\n }\n\n /** Whether the client has an active session. */\n get isConnected(): boolean {\n return this._isConnected;\n }\n\n /** Whether a response is currently streaming. */\n get isStreaming(): boolean {\n return this._isStreaming;\n }\n\n /** Current session ID, or null if not connected. */\n getSessionId(): string | null {\n return this.sessionId;\n }\n\n /** Readonly message history. */\n get messages(): readonly ChatMessage[] {\n return this._messages;\n }\n\n /** Establish a session with the server. */\n async connect(): Promise<void> {\n try {\n const session = await createSession(\n this.config.serverUrl,\n this.config.user,\n this.config.token,\n );\n this.sessionId = session.session_id;\n this._isConnected = true;\n this.connectAttempt = 0;\n this.emit('connected', undefined);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.emit('error', error);\n throw error;\n }\n }\n\n /** Disconnect and clean up. */\n async disconnect(): Promise<void> {\n this.sessionId = null;\n this._isConnected = false;\n this._isStreaming = false;\n this.emit('disconnected', undefined);\n }\n\n /** Clear message history. */\n clearHistory(): void {\n this._messages = [];\n }\n\n /**\n * Send a message and wait for the full response.\n * Auto-connects if not already connected.\n */\n async send(text: string): Promise<ChatResponse> {\n if (!this._isConnected) {\n await this.connect();\n }\n\n // Add user message\n const userMsg: ChatMessage = {\n type: 'user',\n id: makeId(),\n text,\n timestamp: new Date().toISOString(),\n };\n this._messages.push(userMsg);\n this.emit('message', userMsg);\n\n // Create assistant message placeholder\n const assistantMsg: AssistantTextMessage = {\n type: 'assistant_text',\n id: makeId(),\n text: '',\n toolCalls: [],\n confirmations: [],\n skillActivations: [],\n kbProposals: [],\n widgets: [],\n contentBlocks: [],\n timestamp: new Date().toISOString(),\n };\n this._messages.push(assistantMsg);\n this.emit('message', assistantMsg);\n\n this._isStreaming = true;\n this.emit('streaming_start', undefined);\n\n try {\n const response = await this.streamInternal(text, assistantMsg);\n return response;\n } catch (err) {\n // Try reconnection\n if (this.connectAttempt < this.maxReconnectAttempts) {\n return await this.reconnectAndRetry(text, assistantMsg);\n }\n throw err;\n } finally {\n this._isStreaming = false;\n this.emit('streaming_end', undefined);\n }\n }\n\n /**\n * Stream a message, returning a ChatStream handle for event-based consumption.\n */\n stream(text: string): ChatStream {\n // Add user message\n const userMsg: ChatMessage = {\n type: 'user',\n id: makeId(),\n text,\n timestamp: new Date().toISOString(),\n };\n this._messages.push(userMsg);\n this.emit('message', userMsg);\n\n this._isStreaming = true;\n this.emit('streaming_start', undefined);\n\n const chatStream = new ChatStream(this.config.serverUrl, {\n message: text,\n session_id: this.sessionId ?? undefined,\n role: this.config.user.role,\n }, this.config.token);\n\n // Track streaming state\n chatStream.on('done', (response) => {\n // Add assistant message to history\n const assistantMsg: AssistantTextMessage = {\n type: 'assistant_text',\n id: makeId(),\n text: response.text,\n toolCalls: response.toolCalls,\n confirmations: [],\n skillActivations: response.skillsUsed,\n kbProposals: response.kbProposals,\n widgets: [],\n contentBlocks: [],\n timestamp: new Date().toISOString(),\n };\n this._messages.push(assistantMsg);\n this.emit('message', assistantMsg);\n this._isStreaming = false;\n this.emit('streaming_end', undefined);\n });\n\n chatStream.on('error', (err) => {\n this._isStreaming = false;\n this.emit('streaming_end', undefined);\n this.emit('error', new Error(err.message));\n });\n\n return chatStream;\n }\n\n private async streamInternal(\n text: string,\n assistantMsg: AssistantTextMessage,\n ): Promise<ChatResponse> {\n const response: ChatResponse = {\n text: '',\n toolCalls: [],\n skillsUsed: [],\n kbProposals: [],\n };\n\n const pendingToolCalls = new Map<string, { toolName: string; parameters: Record<string, unknown> }>();\n\n const stream = streamChat(\n this.config.serverUrl,\n {\n message: text,\n session_id: this.sessionId ?? undefined,\n role: this.config.user.role,\n },\n undefined,\n this.config.token,\n );\n\n for await (const event of stream) {\n switch (event.type) {\n case 'init':\n this.sessionId = event.session_id;\n break;\n case 'text_delta':\n response.text += event.content;\n assistantMsg.text += event.content;\n break;\n case 'tool_call_start': {\n const tc: ToolCallInfo = {\n toolId: event.tool_id,\n toolName: event.tool_name,\n parameters: event.parameters,\n status: 'running',\n };\n response.toolCalls.push(tc);\n assistantMsg.toolCalls = [...assistantMsg.toolCalls, tc];\n pendingToolCalls.set(event.tool_id, {\n toolName: event.tool_name,\n parameters: event.parameters,\n });\n break;\n }\n case 'tool_call_result': {\n const existing = response.toolCalls.find((t) => t.toolId === event.tool_id);\n if (existing) {\n existing.status = event.status;\n existing.result = event.result;\n existing.duration_ms = event.duration_ms;\n existing.error = event.error;\n }\n assistantMsg.toolCalls = assistantMsg.toolCalls.map((t) =>\n t.toolId === event.tool_id\n ? { ...t, status: event.status, result: event.result, duration_ms: event.duration_ms, error: event.error }\n : t,\n );\n\n const pending = pendingToolCalls.get(event.tool_id);\n pendingToolCalls.delete(event.tool_id);\n const toolEvent: ToolExecutedEvent = {\n type: 'tool_executed',\n toolName: pending?.toolName ?? '',\n toolId: event.tool_id,\n parameters: pending?.parameters ?? {},\n status: event.status,\n result: event.result,\n duration_ms: event.duration_ms,\n error: event.error,\n timestamp: event.timestamp,\n };\n this._eventBus.processEvent(toolEvent);\n this.emit('tool_executed', toolEvent);\n break;\n }\n case 'skill_activated': {\n response.skillsUsed.push(event.skill);\n assistantMsg.skillActivations = [...assistantMsg.skillActivations, event.skill];\n const skillEvent: SkillActivatedEvent = {\n type: 'skill_activated',\n skill: event.skill,\n timestamp: event.timestamp,\n };\n this._eventBus.processEvent(skillEvent);\n this.emit('skill_activated', skillEvent);\n break;\n }\n case 'kb_proposal': {\n const proposal: KBProposalInfo = {\n scope: event.scope,\n title: event.title,\n reasoning: event.reasoning,\n };\n response.kbProposals.push(proposal);\n assistantMsg.kbProposals = [...assistantMsg.kbProposals, proposal];\n const kbEvent: KBProposalEvent = {\n type: 'kb_proposal',\n proposal,\n timestamp: event.timestamp,\n };\n this._eventBus.processEvent(kbEvent);\n this.emit('kb_proposal_received', kbEvent);\n break;\n }\n case 'widget': {\n const widgetEvent: WidgetRenderedEvent = {\n type: 'widget_rendered',\n widgetType: event.widget_type,\n data: event.data,\n timestamp: event.timestamp,\n };\n this._eventBus.processEvent(widgetEvent);\n this.emit('widget_rendered', widgetEvent);\n break;\n }\n case 'error':\n throw new Error(event.message);\n case 'done':\n break;\n default:\n break;\n }\n }\n\n return response;\n }\n\n private async reconnectAndRetry(\n text: string,\n assistantMsg: AssistantTextMessage,\n ): Promise<ChatResponse> {\n this.connectAttempt++;\n this.emit('reconnecting', this.connectAttempt);\n\n // Exponential backoff: 100ms, 200ms, 400ms\n const delay = 100 * Math.pow(2, this.connectAttempt - 1);\n await new Promise((resolve) => setTimeout(resolve, delay));\n\n try {\n await this.connect();\n return await this.streamInternal(text, assistantMsg);\n } catch (err) {\n if (this.connectAttempt < this.maxReconnectAttempts) {\n return this.reconnectAndRetry(text, assistantMsg);\n }\n throw err;\n }\n }\n}\n"],"names":["RuntimeClient","options","__publicField","headers","token","message","url","body","streamSSE","prompt","response","taskId","signal","streamSSEGet","authH","storeName","params","qs","key","ChatStream","serverUrl","request","event","handler","stream","streamChat","err","toolName","tc","t","proposal","msgCounter","makeId","ChatClient","TypedEventEmitter","config","WidgetEventBus","session","createSession","error","text","userMsg","assistantMsg","chatStream","pendingToolCalls","existing","pending","toolEvent","skillEvent","kbEvent","widgetEvent","delay","resolve"],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sources":["../src/client/runtime-client.ts","../src/client/ChatStream.ts","../src/client/ChatClient.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2025 Amodal Labs, Inc.\n * SPDX-License-Identifier: MIT\n */\n\nimport type { SSEEvent, TaskStatus, StoreDefinitionInfo, StoreListResult, StoreDocumentResult } from '../types';\nimport { streamSSE, streamSSEGet } from './sse-client';\n\nexport interface RuntimeClientOptions {\n runtimeUrl: string;\n getToken?: () => string | Promise<string> | null | undefined;\n}\n\n/**\n * Client for the Amodal runtime's repo routes.\n */\nexport class RuntimeClient {\n private readonly runtimeUrl: string;\n private readonly getToken?: () => string | Promise<string> | null | undefined;\n\n constructor(options: RuntimeClientOptions) {\n this.runtimeUrl = options.runtimeUrl.replace(/\\/$/, '');\n this.getToken = options.getToken;\n }\n\n private async authHeaders(): Promise<Record<string, string>> {\n const headers: Record<string, string> = {};\n if (this.getToken) {\n const token = await this.getToken();\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n }\n return headers;\n }\n\n /**\n * Stream a chat message via POST /chat.\n */\n async *chatStream(\n message: string,\n options?: {\n sessionId?: string;\n context?: Record<string, unknown>;\n signal?: AbortSignal;\n },\n ): AsyncGenerator<SSEEvent> {\n const url = `${this.runtimeUrl}/chat`;\n const body: Record<string, unknown> = {\n message,\n };\n if (options?.sessionId) {\n body['session_id'] = options.sessionId;\n }\n if (options?.context) {\n body['context'] = options.context;\n }\n\n const headers = await this.authHeaders();\n\n yield* streamSSE(url, body, {\n signal: options?.signal,\n headers,\n });\n }\n\n /**\n * Start a fire-and-forget task via POST /task.\n */\n async startTask(prompt: string): Promise<{ task_id: string }> {\n const url = `${this.runtimeUrl}/task`;\n const body: Record<string, unknown> = { prompt };\n const headers = await this.authHeaders();\n\n const response = await fetch(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...headers },\n body: JSON.stringify(body),\n });\n\n if (!response.ok) {\n throw new Error(`Start task failed: ${String(response.status)} ${response.statusText}`);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Server response\n return (await response.json()) as { task_id: string };\n }\n\n /**\n * Get task status via GET /task/:id.\n */\n async getTaskStatus(taskId: string): Promise<TaskStatus> {\n const url = `${this.runtimeUrl}/task/${taskId}`;\n\n const headers = await this.authHeaders();\n const response = await fetch(url, { headers });\n\n if (!response.ok) {\n throw new Error(`Get task status failed: ${String(response.status)} ${response.statusText}`);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Server response\n return (await response.json()) as TaskStatus;\n }\n\n /**\n * Stream task events via GET /task/:id/stream.\n */\n async *streamTask(\n taskId: string,\n signal?: AbortSignal,\n ): AsyncGenerator<SSEEvent> {\n const url = `${this.runtimeUrl}/task/${taskId}/stream`;\n const headers = await this.authHeaders();\n yield* streamSSEGet(url, { signal, headers });\n }\n\n // ---------------------------------------------------------------------------\n // Store API\n // ---------------------------------------------------------------------------\n\n async getStores(signal?: AbortSignal): Promise<StoreDefinitionInfo[]> {\n const url = `${this.runtimeUrl}/api/stores`;\n const authH = await this.authHeaders();\n const response = await fetch(url, { headers: authH, signal });\n if (!response.ok) {\n throw new Error(`Failed to fetch stores: ${String(response.status)}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Server response\n const body = (await response.json()) as { stores: StoreDefinitionInfo[] };\n return body.stores;\n }\n\n async getStoreDocuments(\n storeName: string,\n options?: {\n filter?: Record<string, unknown>;\n sort?: string;\n limit?: number;\n offset?: number;\n signal?: AbortSignal;\n },\n ): Promise<StoreListResult> {\n const params = new URLSearchParams();\n if (options?.filter) {\n params.set('filter', JSON.stringify(options.filter));\n }\n if (options?.sort) {\n params.set('sort', options.sort);\n }\n if (options?.limit !== undefined) {\n params.set('limit', String(options.limit));\n }\n if (options?.offset !== undefined) {\n params.set('offset', String(options.offset));\n }\n\n const qs = params.toString();\n const url = `${this.runtimeUrl}/api/stores/${storeName}${qs ? `?${qs}` : ''}`;\n const authH = await this.authHeaders();\n const response = await fetch(url, { headers: authH, signal: options?.signal });\n if (!response.ok) {\n throw new Error(`Failed to fetch store documents: ${String(response.status)}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Server response\n return (await response.json()) as StoreListResult;\n }\n\n async getStoreDocument(\n storeName: string,\n key: string,\n signal?: AbortSignal,\n ): Promise<StoreDocumentResult> {\n const url = `${this.runtimeUrl}/api/stores/${storeName}/${encodeURIComponent(key)}`;\n const authH = await this.authHeaders();\n const response = await fetch(url, { headers: authH, signal });\n if (!response.ok) {\n if (response.status === 404) {\n return { document: null, history: [] };\n }\n throw new Error(`Failed to fetch store document: ${String(response.status)}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Server response\n return (await response.json()) as StoreDocumentResult;\n }\n}\n","/**\n * @license\n * Copyright 2025 Amodal Labs, Inc.\n * SPDX-License-Identifier: MIT\n */\n\nimport type {\n SSEEvent,\n ToolCallInfo,\n KBProposalInfo,\n AskUserQuestion,\n} from '../types';\nimport type { ChatStreamRequest } from './chat-api';\nimport { streamChat } from './chat-api';\n\n/**\n * Full response from a completed chat stream.\n */\nexport interface ChatResponse {\n text: string;\n toolCalls: ToolCallInfo[];\n skillsUsed: string[];\n kbProposals: KBProposalInfo[];\n}\n\ntype StreamEventHandler<T> = (data: T) => void;\n\n/**\n * A streaming chat response handle.\n * Register `.on()` handlers then the stream starts automatically.\n */\nexport class ChatStream {\n private handlers: {\n text: Array<StreamEventHandler<{ text: string }>>;\n tool_call: Array<StreamEventHandler<{ tool: string; params: Record<string, unknown>; toolId: string }>>;\n tool_result: Array<StreamEventHandler<{ tool: string; data: unknown; duration_ms?: number; toolId: string }>>;\n skill_activated: Array<StreamEventHandler<{ name: string }>>;\n kb_proposal: Array<StreamEventHandler<KBProposalInfo>>;\n widget: Array<StreamEventHandler<{ widgetType: string; data: Record<string, unknown> }>>;\n ask_user: Array<StreamEventHandler<{ askId: string; questions: AskUserQuestion[] }>>;\n error: Array<StreamEventHandler<{ message: string }>>;\n done: Array<StreamEventHandler<ChatResponse>>;\n } = {\n text: [],\n tool_call: [],\n tool_result: [],\n skill_activated: [],\n kb_proposal: [],\n widget: [],\n ask_user: [],\n error: [],\n done: [],\n };\n\n private abortController: AbortController;\n private started = false;\n private response: ChatResponse = {\n text: '',\n toolCalls: [],\n skillsUsed: [],\n kbProposals: [],\n };\n private toolCallNames = new Map<string, string>();\n\n private token?: string;\n\n constructor(\n private serverUrl: string,\n private request: ChatStreamRequest,\n token?: string,\n ) {\n this.abortController = new AbortController();\n this.token = token;\n // Start on next microtick so .on() calls can register first\n // eslint-disable-next-line @typescript-eslint/no-misused-promises -- TODO: wrap async route handler\n queueMicrotask(() => this.start());\n }\n\n on(event: 'text', handler: StreamEventHandler<{ text: string }>): this;\n on(event: 'tool_call', handler: StreamEventHandler<{ tool: string; params: Record<string, unknown>; toolId: string }>): this;\n on(event: 'tool_result', handler: StreamEventHandler<{ tool: string; data: unknown; duration_ms?: number; toolId: string }>): this;\n on(event: 'skill_activated', handler: StreamEventHandler<{ name: string }>): this;\n on(event: 'kb_proposal', handler: StreamEventHandler<KBProposalInfo>): this;\n on(event: 'widget', handler: StreamEventHandler<{ widgetType: string; data: Record<string, unknown> }>): this;\n on(event: 'ask_user', handler: StreamEventHandler<{ askId: string; questions: AskUserQuestion[] }>): this;\n on(event: 'error', handler: StreamEventHandler<{ message: string }>): this;\n on(event: 'done', handler: StreamEventHandler<ChatResponse>): this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- overload implementation requires broad type\n on(event: string, handler: StreamEventHandler<any>): this {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- overload dispatch key narrowing\n const key = event as keyof typeof this.handlers;\n if (key in this.handlers) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- overload dispatch\n (this.handlers[key] as Array<StreamEventHandler<unknown>>).push(handler);\n }\n return this;\n }\n\n /** Cancel the stream. */\n abort(): void {\n this.abortController.abort();\n }\n\n private async start(): Promise<void> {\n if (this.started) return;\n this.started = true;\n\n try {\n const stream = streamChat(\n this.serverUrl,\n this.request,\n this.abortController.signal,\n this.token,\n );\n\n for await (const event of stream) {\n this.processEvent(event);\n }\n\n // Emit done\n for (const handler of this.handlers.done) {\n handler(this.response);\n }\n } catch (err) {\n if (!(err instanceof DOMException && err.name === 'AbortError')) {\n const message = err instanceof Error ? err.message : 'Unknown error';\n for (const handler of this.handlers.error) {\n handler({ message });\n }\n }\n }\n }\n\n private processEvent(event: SSEEvent): void {\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- TODO: handle all cases\n switch (event.type) {\n case 'text_delta':\n this.response.text += event.content;\n for (const handler of this.handlers.text) {\n handler({ text: event.content });\n }\n break;\n case 'tool_call_start':\n this.toolCallNames.set(event.tool_id, event.tool_name);\n for (const handler of this.handlers.tool_call) {\n handler({ tool: event.tool_name, params: event.parameters, toolId: event.tool_id });\n }\n this.response.toolCalls.push({\n toolId: event.tool_id,\n toolName: event.tool_name,\n parameters: event.parameters,\n status: 'running',\n });\n break;\n case 'tool_call_result': {\n const toolName = this.toolCallNames.get(event.tool_id) ?? '';\n for (const handler of this.handlers.tool_result) {\n handler({ tool: toolName, data: event.result, duration_ms: event.duration_ms, toolId: event.tool_id });\n }\n // Update status in response\n const tc = this.response.toolCalls.find((t) => t.toolId === event.tool_id);\n if (tc) {\n tc.status = event.status;\n tc.result = event.result;\n tc.duration_ms = event.duration_ms;\n tc.error = event.error;\n }\n break;\n }\n case 'skill_activated':\n this.response.skillsUsed.push(event.skill);\n for (const handler of this.handlers.skill_activated) {\n handler({ name: event.skill });\n }\n break;\n case 'kb_proposal': {\n const proposal: KBProposalInfo = {\n scope: event.scope,\n title: event.title,\n reasoning: event.reasoning,\n };\n this.response.kbProposals.push(proposal);\n for (const handler of this.handlers.kb_proposal) {\n handler(proposal);\n }\n break;\n }\n case 'ask_user':\n for (const handler of this.handlers.ask_user) {\n handler({ askId: event.ask_id, questions: event.questions });\n }\n break;\n case 'widget':\n for (const handler of this.handlers.widget) {\n handler({ widgetType: event.widget_type, data: event.data });\n }\n break;\n case 'error':\n for (const handler of this.handlers.error) {\n handler({ message: event.message });\n }\n break;\n case 'init':\n case 'done':\n // Init handled by ChatClient, done triggers after loop\n break;\n default:\n break;\n }\n }\n}\n","/**\n * @license\n * Copyright 2025 Amodal Labs, Inc.\n * SPDX-License-Identifier: MIT\n */\n\nimport { TypedEventEmitter } from './EventEmitter';\nimport { ChatStream } from './ChatStream';\nimport type { ChatResponse } from './ChatStream';\nimport { createSession, streamChat } from './chat-api';\nimport type { ChatUser, ChatMessage, AssistantTextMessage, ToolCallInfo, KBProposalInfo } from '../types';\nimport { WidgetEventBus } from '../events/event-bus';\nimport type { WidgetEvent, EntityExtractor, ToolExecutedEvent, SkillActivatedEvent, WidgetRenderedEvent, KBProposalEvent } from '../events/types';\n\n/**\n * Configuration for the ChatClient.\n */\nexport interface ChatClientConfig {\n serverUrl: string;\n user: ChatUser;\n /** Bearer token (API key or JWT) for authenticated requests. */\n token?: string;\n /** Custom entity extractors. If provided, replaces the default extractor. */\n entityExtractors?: EntityExtractor[];\n}\n\n/**\n * Events emitted by the ChatClient.\n */\nexport interface ClientEvents {\n connected: undefined;\n disconnected: undefined;\n reconnecting: number;\n message: ChatMessage;\n streaming_start: undefined;\n streaming_end: undefined;\n error: Error;\n tool_executed: ToolExecutedEvent;\n skill_activated: SkillActivatedEvent;\n widget_rendered: WidgetRenderedEvent;\n kb_proposal_received: KBProposalEvent;\n entity_referenced: WidgetEvent;\n}\n\nlet msgCounter = 0;\nfunction makeId(): string {\n msgCounter++;\n return `msg-${Date.now()}-${String(msgCounter)}`;\n}\n\n/**\n * Headless chat client for framework-agnostic integrations.\n * Manages session lifecycle, message history, and SSE streaming.\n */\nexport class ChatClient extends TypedEventEmitter<ClientEvents> {\n private config: ChatClientConfig;\n private sessionId: string | null = null;\n private _messages: ChatMessage[] = [];\n private _isConnected = false;\n private _isStreaming = false;\n private connectAttempt = 0;\n private maxReconnectAttempts = 3;\n private _eventBus: WidgetEventBus;\n\n constructor(config: ChatClientConfig) {\n super();\n this.config = config;\n this._eventBus = new WidgetEventBus();\n if (config.entityExtractors) {\n this._eventBus.setExtractors(config.entityExtractors);\n }\n // Forward entity_referenced events from bus to client events\n this._eventBus.on('entity_referenced', (e) => {\n this.emit('entity_referenced', e);\n });\n }\n\n /** The widget event bus. Subscribe to agent-driven events here. */\n get events(): WidgetEventBus {\n return this._eventBus;\n }\n\n /** Whether the client has an active session. */\n get isConnected(): boolean {\n return this._isConnected;\n }\n\n /** Whether a response is currently streaming. */\n get isStreaming(): boolean {\n return this._isStreaming;\n }\n\n /** Current session ID, or null if not connected. */\n getSessionId(): string | null {\n return this.sessionId;\n }\n\n /** Readonly message history. */\n get messages(): readonly ChatMessage[] {\n return this._messages;\n }\n\n /** Establish a session with the server. */\n async connect(): Promise<void> {\n try {\n const session = await createSession(\n this.config.serverUrl,\n this.config.user,\n this.config.token,\n );\n this.sessionId = session.session_id;\n this._isConnected = true;\n this.connectAttempt = 0;\n this.emit('connected', undefined);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n this.emit('error', error);\n throw error;\n }\n }\n\n /** Disconnect and clean up. */\n async disconnect(): Promise<void> {\n this.sessionId = null;\n this._isConnected = false;\n this._isStreaming = false;\n this.emit('disconnected', undefined);\n }\n\n /** Clear message history. */\n clearHistory(): void {\n this._messages = [];\n }\n\n /**\n * Send a message and wait for the full response.\n * Auto-connects if not already connected.\n */\n async send(text: string): Promise<ChatResponse> {\n if (!this._isConnected) {\n await this.connect();\n }\n\n // Add user message\n const userMsg: ChatMessage = {\n type: 'user',\n id: makeId(),\n text,\n timestamp: new Date().toISOString(),\n };\n this._messages.push(userMsg);\n this.emit('message', userMsg);\n\n // Create assistant message placeholder\n const assistantMsg: AssistantTextMessage = {\n type: 'assistant_text',\n id: makeId(),\n text: '',\n toolCalls: [],\n confirmations: [],\n skillActivations: [],\n kbProposals: [],\n widgets: [],\n contentBlocks: [],\n timestamp: new Date().toISOString(),\n };\n this._messages.push(assistantMsg);\n this.emit('message', assistantMsg);\n\n this._isStreaming = true;\n this.emit('streaming_start', undefined);\n\n try {\n const response = await this.streamInternal(text, assistantMsg);\n return response;\n } catch (err) {\n // Try reconnection\n if (this.connectAttempt < this.maxReconnectAttempts) {\n return await this.reconnectAndRetry(text, assistantMsg);\n }\n throw err;\n } finally {\n this._isStreaming = false;\n this.emit('streaming_end', undefined);\n }\n }\n\n /**\n * Stream a message, returning a ChatStream handle for event-based consumption.\n */\n stream(text: string): ChatStream {\n // Add user message\n const userMsg: ChatMessage = {\n type: 'user',\n id: makeId(),\n text,\n timestamp: new Date().toISOString(),\n };\n this._messages.push(userMsg);\n this.emit('message', userMsg);\n\n this._isStreaming = true;\n this.emit('streaming_start', undefined);\n\n const chatStream = new ChatStream(this.config.serverUrl, {\n message: text,\n session_id: this.sessionId ?? undefined,\n role: this.config.user.role,\n }, this.config.token);\n\n // Track streaming state\n chatStream.on('done', (response) => {\n // Add assistant message to history\n const assistantMsg: AssistantTextMessage = {\n type: 'assistant_text',\n id: makeId(),\n text: response.text,\n toolCalls: response.toolCalls,\n confirmations: [],\n skillActivations: response.skillsUsed,\n kbProposals: response.kbProposals,\n widgets: [],\n contentBlocks: [],\n timestamp: new Date().toISOString(),\n };\n this._messages.push(assistantMsg);\n this.emit('message', assistantMsg);\n this._isStreaming = false;\n this.emit('streaming_end', undefined);\n });\n\n chatStream.on('error', (err) => {\n this._isStreaming = false;\n this.emit('streaming_end', undefined);\n this.emit('error', new Error(err.message));\n });\n\n return chatStream;\n }\n\n private async streamInternal(\n text: string,\n assistantMsg: AssistantTextMessage,\n ): Promise<ChatResponse> {\n const response: ChatResponse = {\n text: '',\n toolCalls: [],\n skillsUsed: [],\n kbProposals: [],\n };\n\n const pendingToolCalls = new Map<string, { toolName: string; parameters: Record<string, unknown> }>();\n\n const stream = streamChat(\n this.config.serverUrl,\n {\n message: text,\n session_id: this.sessionId ?? undefined,\n role: this.config.user.role,\n },\n undefined,\n this.config.token,\n );\n\n for await (const event of stream) {\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- TODO: handle all cases\n switch (event.type) {\n case 'init':\n this.sessionId = event.session_id;\n break;\n case 'text_delta':\n response.text += event.content;\n assistantMsg.text += event.content;\n break;\n case 'tool_call_start': {\n const tc: ToolCallInfo = {\n toolId: event.tool_id,\n toolName: event.tool_name,\n parameters: event.parameters,\n status: 'running',\n };\n response.toolCalls.push(tc);\n assistantMsg.toolCalls = [...assistantMsg.toolCalls, tc];\n pendingToolCalls.set(event.tool_id, {\n toolName: event.tool_name,\n parameters: event.parameters,\n });\n break;\n }\n case 'tool_call_result': {\n const existing = response.toolCalls.find((t) => t.toolId === event.tool_id);\n if (existing) {\n existing.status = event.status;\n existing.result = event.result;\n existing.duration_ms = event.duration_ms;\n existing.error = event.error;\n }\n assistantMsg.toolCalls = assistantMsg.toolCalls.map((t) =>\n t.toolId === event.tool_id\n ? { ...t, status: event.status, result: event.result, duration_ms: event.duration_ms, error: event.error }\n : t,\n );\n\n const pending = pendingToolCalls.get(event.tool_id);\n pendingToolCalls.delete(event.tool_id);\n const toolEvent: ToolExecutedEvent = {\n type: 'tool_executed',\n toolName: pending?.toolName ?? '',\n toolId: event.tool_id,\n parameters: pending?.parameters ?? {},\n status: event.status,\n result: event.result,\n duration_ms: event.duration_ms,\n error: event.error,\n timestamp: event.timestamp,\n };\n this._eventBus.processEvent(toolEvent);\n this.emit('tool_executed', toolEvent);\n break;\n }\n case 'skill_activated': {\n response.skillsUsed.push(event.skill);\n assistantMsg.skillActivations = [...assistantMsg.skillActivations, event.skill];\n const skillEvent: SkillActivatedEvent = {\n type: 'skill_activated',\n skill: event.skill,\n timestamp: event.timestamp,\n };\n this._eventBus.processEvent(skillEvent);\n this.emit('skill_activated', skillEvent);\n break;\n }\n case 'kb_proposal': {\n const proposal: KBProposalInfo = {\n scope: event.scope,\n title: event.title,\n reasoning: event.reasoning,\n };\n response.kbProposals.push(proposal);\n assistantMsg.kbProposals = [...assistantMsg.kbProposals, proposal];\n const kbEvent: KBProposalEvent = {\n type: 'kb_proposal',\n proposal,\n timestamp: event.timestamp,\n };\n this._eventBus.processEvent(kbEvent);\n this.emit('kb_proposal_received', kbEvent);\n break;\n }\n case 'widget': {\n const widgetEvent: WidgetRenderedEvent = {\n type: 'widget_rendered',\n widgetType: event.widget_type,\n data: event.data,\n timestamp: event.timestamp,\n };\n this._eventBus.processEvent(widgetEvent);\n this.emit('widget_rendered', widgetEvent);\n break;\n }\n case 'error':\n throw new Error(event.message);\n case 'done':\n break;\n default:\n break;\n }\n }\n\n return response;\n }\n\n private async reconnectAndRetry(\n text: string,\n assistantMsg: AssistantTextMessage,\n ): Promise<ChatResponse> {\n this.connectAttempt++;\n this.emit('reconnecting', this.connectAttempt);\n\n // Exponential backoff: 100ms, 200ms, 400ms\n const delay = 100 * Math.pow(2, this.connectAttempt - 1);\n await new Promise((resolve) => setTimeout(resolve, delay));\n\n try {\n await this.connect();\n return await this.streamInternal(text, assistantMsg);\n } catch (err) {\n if (this.connectAttempt < this.maxReconnectAttempts) {\n return this.reconnectAndRetry(text, assistantMsg);\n }\n throw err;\n }\n }\n}\n"],"names":["RuntimeClient","options","__publicField","headers","token","message","url","body","streamSSE","prompt","response","taskId","signal","streamSSEGet","authH","storeName","params","qs","key","ChatStream","serverUrl","request","event","handler","stream","streamChat","err","toolName","tc","t","proposal","msgCounter","makeId","ChatClient","TypedEventEmitter","config","WidgetEventBus","session","createSession","error","text","userMsg","assistantMsg","chatStream","pendingToolCalls","existing","pending","toolEvent","skillEvent","kbEvent","widgetEvent","delay","resolve"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAmodalBrief.d.ts","sourceRoot":"","sources":["../../src/hooks/useAmodalBrief.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAC;AAG1D,MAAM,WAAW,qBAAqB;IACpC,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CAoFnF"}
1
+ {"version":3,"file":"useAmodalBrief.d.ts","sourceRoot":"","sources":["../../src/hooks/useAmodalBrief.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAC;AAG1D,MAAM,WAAW,qBAAqB;IACpC,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CAqFnF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAmodalChat.d.ts","sourceRoot":"","sources":["../../src/hooks/useAmodalChat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,WAAW,EAEX,YAAY,EAEZ,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAoBlB,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,CAkM3E;AAED,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,uCAAuC;IACvC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,8CAA8C;IAC9C,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,YAAY,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAC,CAAC;IACnD,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,qBAAqB,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3E;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,mBAAmB,CAmMjF"}
1
+ {"version":3,"file":"useAmodalChat.d.ts","sourceRoot":"","sources":["../../src/hooks/useAmodalChat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,WAAW,EAEX,YAAY,EAEZ,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAoBlB,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,CAmM3E;AAED,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,uCAAuC;IACvC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,8CAA8C;IAC9C,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,YAAY,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAC,CAAC;IACnD,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,qBAAqB,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3E;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,mBAAmB,CAoMjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAmodalInsight.d.ts","sourceRoot":"","sources":["../../src/hooks/useAmodalInsight.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CA6EzF"}
1
+ {"version":3,"file":"useAmodalInsight.d.ts","sourceRoot":"","sources":["../../src/hooks/useAmodalInsight.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CA8EzF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAmodalQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useAmodalQuery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,MAAM,WAAW,qBAAqB;IACpC,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG;IACvD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CAiEnF"}
1
+ {"version":3,"file":"useAmodalQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useAmodalQuery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,MAAM,WAAW,qBAAqB;IACpC,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG;IACvD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CAkEnF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAmodalTask.d.ts","sourceRoot":"","sources":["../../src/hooks/useAmodalTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG1D,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,mBAAmB,CAoGhF"}
1
+ {"version":3,"file":"useAmodalTask.d.ts","sourceRoot":"","sources":["../../src/hooks/useAmodalTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG1D,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,mBAAmB,CAqGhF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../src/hooks/useChat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,WAAW,EAEX,YAAY,EACZ,cAAc,EAGd,QAAQ,EACT,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkBpE,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,CA6Q3E;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,mEAAmE;IACnE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wGAAwG;IACxG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,wDAAwD;IACxD,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,YAAY,EAAE,CAAC;IAChC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,kDAAkD;IAClD,QAAQ,EAAE,cAAc,CAAC;IACzB,mDAAmD;IACnD,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAChF,uDAAuD;IACvD,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,qDAAqD;IACrD,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAge9D"}
1
+ {"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../src/hooks/useChat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,WAAW,EAEX,YAAY,EACZ,cAAc,EAGd,QAAQ,EACT,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkBpE,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,CA6Q3E;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,mEAAmE;IACnE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wGAAwG;IACxG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,wDAAwD;IACxD,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,YAAY,EAAE,CAAC;IAChC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,kDAAkD;IAClD,QAAQ,EAAE,cAAc,CAAC;IACzB,mDAAmD;IACnD,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAChF,uDAAuD;IACvD,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,qDAAqD;IACrD,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAie9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSkillAction.d.ts","sourceRoot":"","sources":["../../src/hooks/useSkillAction.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,qBAAqB;IACpC,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACpD,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,yCAAyC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CA8DtB"}
1
+ {"version":3,"file":"useSkillAction.d.ts","sourceRoot":"","sources":["../../src/hooks/useSkillAction.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,qBAAqB;IACpC,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACpD,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,yCAAyC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CA+DtB"}