assistant-cloud 0.1.29 → 0.1.31

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":"AssistantCloudAPI.d.ts","names":[],"sources":["../src/AssistantCloudAPI.ts"],"mappings":";;;;KAQY,6BAAA;EACV,OAAA;EADU;;;;;EAOV,YAAA,IACE,MAAA,EAAQ,uBAAA,KACL,uBAAuB;AAAA;AAAA,KAGlB,oBAAA;EAEN,OAAA;EACA,SAAA,QAAiB,OAAA;AAAA;EAGjB,OAAA;EACA,MAAA;EACA,MAAA;EACA,WAAA;AAAA;EAGA,OAAA;EACA,SAAA;AAAA;EANA;;;;;;;;AAoB+C;AACnD;;EADA,SAAA,aAAsB,6BAA6B;AAAA;AAAA,KAUhD,kBAAA;EACH,MAAA;EACA,OAAA,GAAU,MAAA;EACV,KAAA,GAAQ,MAAM;EACd,IAAA;AAAA;AAAA,cAGW,iBAAA;EACJ,KAAA,EAAO,0BAAA;EACP,QAAA;cAEK,MAAA,EAAQ,oBAAA;EAuBP,cAAA,CAAA,GAAc,OAAA;EAId,cAAA,CACX,QAAA,UACA,OAAA,GAAS,kBAAA,GAAuB,OAAA,CAAA,QAAA;EAkDrB,WAAA,CAAY,QAAA,UAAkB,OAAA,GAAS,kBAAA,GAAuB,OAAA;AAAA"}
1
+ {"version":3,"file":"AssistantCloudAPI.d.ts","names":[],"sources":["../src/AssistantCloudAPI.ts"],"mappings":";;;;KAQY,6BAAA;EACV,OAAA;EADU;;;;;EAOV,YAAA,IACE,MAAA,EAAQ,uBAAA,KACL,uBAAuB;AAAA;AAAA,KAGlB,oBAAA;EAEN,OAAA;EACA,SAAA,QAAiB,OAAA;AAAA;EAGjB,OAAA;EACA,MAAA;EACA,MAAA;EACA,WAAA;AAAA;EAGA,OAAA;EACA,SAAA;AAAA;EANA;;;;;;;;AAoB+C;AACnD;;EADA,SAAA,aAAsB,6BAA6B;AAAA;AAAA,KAUhD,kBAAA;EACH,MAAA;EACA,OAAA,GAAU,MAAA;EACV,KAAA,GAAQ,MAAM;EACd,IAAA;AAAA;AAAA,cAGW,iBAAA;EACJ,KAAA,EAAO,0BAAA;EACP,QAAA;cAEK,MAAA,EAAQ,oBAAA;EAuBP,cAAA,IAAc,OAAA;EAId,cAAA,CACX,QAAA,UACA,OAAA,GAAS,kBAAA,GAAuB,OAAA,CAAA,QAAA;EAkDrB,WAAA,CAAY,QAAA,UAAkB,OAAA,GAAS,kBAAA,GAAuB,OAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantCloudAuthStrategy.d.ts","names":[],"sources":["../src/AssistantCloudAuthStrategy.ts"],"mappings":";KAAY,0BAAA;EAAA,SACD,QAAA;EACT,cAAA,IAAkB,OAAA,CAAQ,MAAA;EAC1B,eAAA,CAAgB,OAAA,EAAS,OAAA;AAAA;AAAA,cAiCd,6BAAA,YACA,0BAAA;EAAA;WAEK,QAAA;EAAA,QAER,WAAA;EAAA,QACA,WAAA;cAGI,iBAAA,QAAyB,OAAA;EAIxB,cAAA,CAAA,GAAkB,OAAA,CAAQ,MAAA;EAsBhC,eAAA,CAAgB,OAAA,EAAS,OAAA;AAAA;AAAA,cAcrB,gCAAA,YACA,0BAAA;EAAA;WAEK,QAAA;cAMJ,MAAA,UAAgB,MAAA,UAAgB,WAAA;EAM/B,cAAA,CAAA,GAAkB,OAAA,CAAQ,MAAA;EAQhC,eAAA,CAAA;AAAA;AAAA,cAOI,mCAAA,YACA,0BAAA;EAAA,SAEK,QAAA;EAAA,QAER,OAAA;EAAA,QACA,WAAA;cAEI,OAAA;EA8DC,cAAA,CAAA,GAAkB,OAAA,CAAQ,MAAA;EAIhC,eAAA,CAAgB,OAAA,EAAS,OAAA;AAAA"}
1
+ {"version":3,"file":"AssistantCloudAuthStrategy.d.ts","names":[],"sources":["../src/AssistantCloudAuthStrategy.ts"],"mappings":";KAAY,0BAAA;EAAA,SACD,QAAA;EACT,cAAA,IAAkB,OAAA,CAAQ,MAAA;EAC1B,eAAA,CAAgB,OAAA,EAAS,OAAA;AAAA;AAAA,cAiCd,6BAAA,YAAyC,0BAAA;EAAA;WACpC,QAAA;EAAA,QAER,WAAA;EAAA,QACA,WAAA;cAGI,iBAAA,QAAyB,OAAA;EAIxB,cAAA,IAAkB,OAAA,CAAQ,MAAA;EAsBhC,eAAA,CAAgB,OAAA,EAAS,OAAA;AAAA;AAAA,cAcrB,gCAAA,YAA4C,0BAAA;EAAA;WACvC,QAAA;cAMJ,MAAA,UAAgB,MAAA,UAAgB,WAAA;EAM/B,cAAA,IAAkB,OAAA,CAAQ,MAAA;EAQhC,eAAA;AAAA;AAAA,cAOI,mCAAA,YAA+C,0BAAA;EAAA,SAC1C,QAAA;EAAA,QAER,OAAA;EAAA,QACA,WAAA;cAEI,OAAA;EA8DC,cAAA,IAAkB,OAAA,CAAQ,MAAA;EAIhC,eAAA,CAAgB,OAAA,EAAS,OAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantCloudAuthStrategy.js","names":["#authTokenCallback","#apiKey","#userId","#workspaceId"],"sources":["../src/AssistantCloudAuthStrategy.ts"],"sourcesContent":["export type AssistantCloudAuthStrategy = {\n readonly strategy: \"anon\" | \"jwt\" | \"api-key\";\n getAuthHeaders(): Promise<Record<string, string> | false>;\n readAuthHeaders(headers: Headers): void;\n};\n\nconst getJwtExpiry = (jwt: string): number => {\n try {\n const parts = jwt.split(\".\");\n const bodyPart = parts[1];\n if (!bodyPart) {\n throw new Error(\"Invalid JWT format\");\n }\n\n // Convert from Base64Url to Base64 and add padding if necessary\n let base64 = bodyPart.replace(/-/g, \"+\").replace(/_/g, \"/\");\n while (base64.length % 4 !== 0) {\n base64 += \"=\";\n }\n\n // Decode the Base64 string and parse the payload\n const payload = atob(base64);\n const payloadObj = JSON.parse(payload);\n const exp = payloadObj.exp;\n\n if (!exp || typeof exp !== \"number\") {\n throw new Error('JWT does not contain a valid \"exp\" field');\n }\n\n // Convert expiration time to milliseconds\n return exp * 1000;\n } catch (error) {\n throw new Error(`Unable to determine the token expiry: ${error}`);\n }\n};\n\nexport class AssistantCloudJWTAuthStrategy\n implements AssistantCloudAuthStrategy\n{\n public readonly strategy = \"jwt\";\n\n private cachedToken: string | null = null;\n private tokenExpiry: number | null = null;\n #authTokenCallback: () => Promise<string | null>;\n\n constructor(authTokenCallback: () => Promise<string | null>) {\n this.#authTokenCallback = authTokenCallback;\n }\n\n public async getAuthHeaders(): Promise<Record<string, string> | false> {\n const currentTime = Date.now();\n\n // Use cached token if it's valid for at least 30 more seconds\n if (\n this.cachedToken &&\n this.tokenExpiry &&\n this.tokenExpiry - currentTime > 30 * 1000\n ) {\n return { Authorization: `Bearer ${this.cachedToken}` };\n }\n\n // Fetch a new token via the callback\n const newToken = await this.#authTokenCallback();\n if (!newToken) return false;\n\n this.cachedToken = newToken;\n this.tokenExpiry = getJwtExpiry(newToken);\n\n return { Authorization: `Bearer ${newToken}` };\n }\n\n public readAuthHeaders(headers: Headers) {\n const authHeader = headers.get(\"Authorization\");\n if (!authHeader) return;\n\n const [scheme, token] = authHeader.split(\" \");\n if (scheme !== \"Bearer\" || !token) {\n throw new Error(\"Invalid auth header received\");\n }\n\n this.cachedToken = token;\n this.tokenExpiry = getJwtExpiry(token);\n }\n}\n\nexport class AssistantCloudAPIKeyAuthStrategy\n implements AssistantCloudAuthStrategy\n{\n public readonly strategy = \"api-key\";\n\n #apiKey: string;\n #userId: string;\n #workspaceId: string;\n\n constructor(apiKey: string, userId: string, workspaceId: string) {\n this.#apiKey = apiKey;\n this.#userId = userId;\n this.#workspaceId = workspaceId;\n }\n\n public async getAuthHeaders(): Promise<Record<string, string>> {\n return {\n Authorization: `Bearer ${this.#apiKey}`,\n \"Aui-User-Id\": this.#userId,\n \"Aui-Workspace-Id\": this.#workspaceId,\n };\n }\n\n public readAuthHeaders() {\n // No operation needed for API key auth\n }\n}\n\nconst AUI_REFRESH_TOKEN_NAME = \"aui:refresh_token\";\n\nexport class AssistantCloudAnonymousAuthStrategy\n implements AssistantCloudAuthStrategy\n{\n public readonly strategy = \"anon\";\n\n private baseUrl: string;\n private jwtStrategy: AssistantCloudJWTAuthStrategy;\n\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl;\n this.jwtStrategy = new AssistantCloudJWTAuthStrategy(async () => {\n const currentTime = Date.now();\n const storedRefreshTokenJson = localStorage.getItem(\n AUI_REFRESH_TOKEN_NAME,\n );\n const storedRefreshToken = storedRefreshTokenJson\n ? (JSON.parse(storedRefreshTokenJson) as {\n token: string;\n expires_at: string;\n })\n : undefined;\n\n if (storedRefreshToken) {\n const refreshExpiry = new Date(storedRefreshToken.expires_at).getTime();\n if (refreshExpiry - currentTime > 30 * 1000) {\n const response = await fetch(\n `${this.baseUrl}/v1/auth/tokens/refresh`,\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ refresh_token: storedRefreshToken.token }),\n },\n );\n\n if (response.ok) {\n const data = await response.json();\n const { access_token, refresh_token } = data;\n if (refresh_token) {\n localStorage.setItem(\n AUI_REFRESH_TOKEN_NAME,\n JSON.stringify(refresh_token),\n );\n }\n return access_token;\n }\n } else {\n localStorage.removeItem(AUI_REFRESH_TOKEN_NAME);\n }\n }\n\n // No valid refresh token; request a new anonymous token\n const response = await fetch(`${this.baseUrl}/v1/auth/tokens/anonymous`, {\n method: \"POST\",\n });\n\n if (!response.ok) return null;\n\n const data = await response.json();\n const { access_token, refresh_token } = data;\n\n if (!access_token || !refresh_token) return null;\n\n localStorage.setItem(\n AUI_REFRESH_TOKEN_NAME,\n JSON.stringify(refresh_token),\n );\n return access_token;\n });\n }\n\n public async getAuthHeaders(): Promise<Record<string, string> | false> {\n return this.jwtStrategy.getAuthHeaders();\n }\n\n public readAuthHeaders(headers: Headers): void {\n this.jwtStrategy.readAuthHeaders(headers);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AssistantCloudAuthStrategy.js","names":["#authTokenCallback","#apiKey","#userId","#workspaceId"],"sources":["../src/AssistantCloudAuthStrategy.ts"],"sourcesContent":["export type AssistantCloudAuthStrategy = {\n readonly strategy: \"anon\" | \"jwt\" | \"api-key\";\n getAuthHeaders(): Promise<Record<string, string> | false>;\n readAuthHeaders(headers: Headers): void;\n};\n\nconst getJwtExpiry = (jwt: string): number => {\n try {\n const parts = jwt.split(\".\");\n const bodyPart = parts[1];\n if (!bodyPart) {\n throw new Error(\"Invalid JWT format\");\n }\n\n // Convert from Base64Url to Base64 and add padding if necessary\n let base64 = bodyPart.replace(/-/g, \"+\").replace(/_/g, \"/\");\n while (base64.length % 4 !== 0) {\n base64 += \"=\";\n }\n\n // Decode the Base64 string and parse the payload\n const payload = atob(base64);\n const payloadObj = JSON.parse(payload);\n const exp = payloadObj.exp;\n\n if (!exp || typeof exp !== \"number\") {\n throw new Error('JWT does not contain a valid \"exp\" field');\n }\n\n // Convert expiration time to milliseconds\n return exp * 1000;\n } catch (error) {\n throw new Error(`Unable to determine the token expiry: ${error}`);\n }\n};\n\nexport class AssistantCloudJWTAuthStrategy implements AssistantCloudAuthStrategy {\n public readonly strategy = \"jwt\";\n\n private cachedToken: string | null = null;\n private tokenExpiry: number | null = null;\n #authTokenCallback: () => Promise<string | null>;\n\n constructor(authTokenCallback: () => Promise<string | null>) {\n this.#authTokenCallback = authTokenCallback;\n }\n\n public async getAuthHeaders(): Promise<Record<string, string> | false> {\n const currentTime = Date.now();\n\n // Use cached token if it's valid for at least 30 more seconds\n if (\n this.cachedToken &&\n this.tokenExpiry &&\n this.tokenExpiry - currentTime > 30 * 1000\n ) {\n return { Authorization: `Bearer ${this.cachedToken}` };\n }\n\n // Fetch a new token via the callback\n const newToken = await this.#authTokenCallback();\n if (!newToken) return false;\n\n this.cachedToken = newToken;\n this.tokenExpiry = getJwtExpiry(newToken);\n\n return { Authorization: `Bearer ${newToken}` };\n }\n\n public readAuthHeaders(headers: Headers) {\n const authHeader = headers.get(\"Authorization\");\n if (!authHeader) return;\n\n const [scheme, token] = authHeader.split(\" \");\n if (scheme !== \"Bearer\" || !token) {\n throw new Error(\"Invalid auth header received\");\n }\n\n this.cachedToken = token;\n this.tokenExpiry = getJwtExpiry(token);\n }\n}\n\nexport class AssistantCloudAPIKeyAuthStrategy implements AssistantCloudAuthStrategy {\n public readonly strategy = \"api-key\";\n\n #apiKey: string;\n #userId: string;\n #workspaceId: string;\n\n constructor(apiKey: string, userId: string, workspaceId: string) {\n this.#apiKey = apiKey;\n this.#userId = userId;\n this.#workspaceId = workspaceId;\n }\n\n public async getAuthHeaders(): Promise<Record<string, string>> {\n return {\n Authorization: `Bearer ${this.#apiKey}`,\n \"Aui-User-Id\": this.#userId,\n \"Aui-Workspace-Id\": this.#workspaceId,\n };\n }\n\n public readAuthHeaders() {\n // No operation needed for API key auth\n }\n}\n\nconst AUI_REFRESH_TOKEN_NAME = \"aui:refresh_token\";\n\nexport class AssistantCloudAnonymousAuthStrategy implements AssistantCloudAuthStrategy {\n public readonly strategy = \"anon\";\n\n private baseUrl: string;\n private jwtStrategy: AssistantCloudJWTAuthStrategy;\n\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl;\n this.jwtStrategy = new AssistantCloudJWTAuthStrategy(async () => {\n const currentTime = Date.now();\n const storedRefreshTokenJson = localStorage.getItem(\n AUI_REFRESH_TOKEN_NAME,\n );\n const storedRefreshToken = storedRefreshTokenJson\n ? (JSON.parse(storedRefreshTokenJson) as {\n token: string;\n expires_at: string;\n })\n : undefined;\n\n if (storedRefreshToken) {\n const refreshExpiry = new Date(storedRefreshToken.expires_at).getTime();\n if (refreshExpiry - currentTime > 30 * 1000) {\n const response = await fetch(\n `${this.baseUrl}/v1/auth/tokens/refresh`,\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ refresh_token: storedRefreshToken.token }),\n },\n );\n\n if (response.ok) {\n const data = await response.json();\n const { access_token, refresh_token } = data;\n if (refresh_token) {\n localStorage.setItem(\n AUI_REFRESH_TOKEN_NAME,\n JSON.stringify(refresh_token),\n );\n }\n return access_token;\n }\n } else {\n localStorage.removeItem(AUI_REFRESH_TOKEN_NAME);\n }\n }\n\n // No valid refresh token; request a new anonymous token\n const response = await fetch(`${this.baseUrl}/v1/auth/tokens/anonymous`, {\n method: \"POST\",\n });\n\n if (!response.ok) return null;\n\n const data = await response.json();\n const { access_token, refresh_token } = data;\n\n if (!access_token || !refresh_token) return null;\n\n localStorage.setItem(\n AUI_REFRESH_TOKEN_NAME,\n JSON.stringify(refresh_token),\n );\n return access_token;\n });\n }\n\n public async getAuthHeaders(): Promise<Record<string, string> | false> {\n return this.jwtStrategy.getAuthHeaders();\n }\n\n public readAuthHeaders(headers: Headers): void {\n this.jwtStrategy.readAuthHeaders(headers);\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantCloudAuthTokens.d.ts","names":[],"sources":["../src/AssistantCloudAuthTokens.ts"],"mappings":";;;KAEK,sCAAA;EACH,KAAK;AAAA;AAAA,cAGM,wBAAA;EAAA,QACS,KAAA;cAAA,KAAA,EAAO,iBAAA;EAEd,MAAA,CAAA,GAAU,OAAA,CAAQ,sCAAA;AAAA"}
1
+ {"version":3,"file":"AssistantCloudAuthTokens.d.ts","names":[],"sources":["../src/AssistantCloudAuthTokens.ts"],"mappings":";;;KAEK,sCAAA;EACH,KAAK;AAAA;AAAA,cAGM,wBAAA;EAAA,QACS,KAAA;cAAA,KAAA,EAAO,iBAAA;EAEd,MAAA,IAAU,OAAA,CAAQ,sCAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"CloudMessagePersistence.d.ts","names":[],"sources":["../src/CloudMessagePersistence.ts"],"mappings":";;;;;;;;AAcA;;;;;;;;cAAa,uBAAA;EAAA,QAGS,KAAA;EAAA,QAFZ,SAAA;cAEY,KAAA,EAAO,cAAA;EAuFiB;;;;;;;;;EA5EtC,MAAA,CACJ,QAAA,UACA,SAAA,UACA,QAAA,iBACA,MAAA,UACA,OAAA,EAAS,kBAAA,GACR,OAAA;EAFD;;;EAkCI,MAAA,CACJ,QAAA,UACA,SAAA,UACA,OAAA,UACA,OAAA,EAAS,kBAAA,GACR,OAAA;EALG;;;EAcN,WAAA,CAAY,SAAA;EAVD;;;;EAkBL,WAAA,CAAY,SAAA,WAAoB,OAAA;EAAhC;;;;;;;;;;EAgBA,IAAA,CAAK,QAAA,UAAkB,MAAA,YAAe,OAAA,CAhBC,YAAA;;;;EA+B7C,KAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"CloudMessagePersistence.d.ts","names":[],"sources":["../src/CloudMessagePersistence.ts"],"mappings":";;;;;;;;AAcA;;;;;;;;cAAa,uBAAA;EAAA,QAGS,KAAA;EAAA,QAFZ,SAAA;cAEY,KAAA,EAAO,cAAA;EAuFiB;;;;;;;;;EA5EtC,MAAA,CACJ,QAAA,UACA,SAAA,UACA,QAAA,iBACA,MAAA,UACA,OAAA,EAAS,kBAAA,GACR,OAAA;EAFD;;;EAkCI,MAAA,CACJ,QAAA,UACA,SAAA,UACA,OAAA,UACA,OAAA,EAAS,kBAAA,GACR,OAAA;EALG;;;EAcN,WAAA,CAAY,SAAA;EAVD;;;;EAkBL,WAAA,CAAY,SAAA,WAAoB,OAAA;EAAhC;;;;;;;;;;EAgBA,IAAA,CAAK,QAAA,UAAkB,MAAA,YAAe,OAAA,CAhBC,YAAA;;;;EA+B7C,KAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentMcpSampling.d.ts","names":[],"sources":["../src/instrumentMcpSampling.ts"],"mappings":";;AAQA;;;;;;KAAY,gBAAA;EACV,QAAA;EACA,YAAA;EACA,aAAA;EACA,gBAAA;EACA,mBAAA;EACA,WAAA;AAAA;AAAA,KAGU,kBAAA,IACV,OAAA,EAAS,kBAAA,KACN,OAAA,CAAQ,mBAAA;AAAA,KAED,kBAAA;EACV,MAAA;EACA,MAAA;IACE,QAAA;IACA,gBAAA;MAAqB,KAAA;QAAU,IAAA;MAAA;IAAA;IAC/B,SAAA;IAAA,CACC,GAAA;EAAA;AAAA;AAAA,KAIO,mBAAA;EACV,KAAA;EACA,OAAA;EACA,KAAA;IACE,WAAA;IACA,YAAA;IACA,YAAA;IACA,gBAAA;IACA,eAAA;IACA,iBAAA;EAAA;EAAA,CAED,GAAA;AAAA;;;;;;;;;;;;;;;AAAW;AAqBd;;;iBAAgB,mBAAA,CACd,OAAA,EAAS,kBAAA,EACT,cAAA,GAAiB,IAAA,EAAM,gBAAA,YACtB,kBAAA;;;;;;;;;;;;AAAkB;iBA6CL,uBAAA,CAAA;kBAGI,gBAAA;kBAAA,gBAAA"}
1
+ {"version":3,"file":"instrumentMcpSampling.d.ts","names":[],"sources":["../src/instrumentMcpSampling.ts"],"mappings":";;AAQA;;;;;;KAAY,gBAAA;EACV,QAAA;EACA,YAAA;EACA,aAAA;EACA,gBAAA;EACA,mBAAA;EACA,WAAA;AAAA;AAAA,KAGU,kBAAA,IACV,OAAA,EAAS,kBAAA,KACN,OAAA,CAAQ,mBAAA;AAAA,KAED,kBAAA;EACV,MAAA;EACA,MAAA;IACE,QAAA;IACA,gBAAA;MAAqB,KAAA;QAAU,IAAA;MAAA;IAAA;IAC/B,SAAA;IAAA,CACC,GAAA;EAAA;AAAA;AAAA,KAIO,mBAAA;EACV,KAAA;EACA,OAAA;EACA,KAAA;IACE,WAAA;IACA,YAAA;IACA,YAAA;IACA,gBAAA;IACA,eAAA;IACA,iBAAA;EAAA;EAAA,CAED,GAAA;AAAA;;;;;;;;;;;;;;;AAAW;AAqBd;;;iBAAgB,mBAAA,CACd,OAAA,EAAS,kBAAA,EACT,cAAA,GAAiB,IAAA,EAAM,gBAAA,YACtB,kBAAA;;;;;;;;;;;;AAAkB;iBA6CL,uBAAA;kBAGI,gBAAA;kBAAA,gBAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "assistant-cloud",
3
- "version": "0.1.29",
3
+ "version": "0.1.31",
4
4
  "description": "Cloud integration for assistant-ui",
5
5
  "keywords": [
6
6
  "assistant",
@@ -27,12 +27,12 @@
27
27
  ],
28
28
  "sideEffects": false,
29
29
  "dependencies": {
30
- "assistant-stream": "^0.3.16"
30
+ "assistant-stream": "^0.3.20"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@types/node": "^25.9.1",
34
34
  "vitest": "^4.1.7",
35
- "@assistant-ui/x-buildutils": "0.0.9"
35
+ "@assistant-ui/x-buildutils": "0.0.11"
36
36
  },
37
37
  "publishConfig": {
38
38
  "access": "public",
@@ -34,9 +34,7 @@ const getJwtExpiry = (jwt: string): number => {
34
34
  }
35
35
  };
36
36
 
37
- export class AssistantCloudJWTAuthStrategy
38
- implements AssistantCloudAuthStrategy
39
- {
37
+ export class AssistantCloudJWTAuthStrategy implements AssistantCloudAuthStrategy {
40
38
  public readonly strategy = "jwt";
41
39
 
42
40
  private cachedToken: string | null = null;
@@ -83,9 +81,7 @@ export class AssistantCloudJWTAuthStrategy
83
81
  }
84
82
  }
85
83
 
86
- export class AssistantCloudAPIKeyAuthStrategy
87
- implements AssistantCloudAuthStrategy
88
- {
84
+ export class AssistantCloudAPIKeyAuthStrategy implements AssistantCloudAuthStrategy {
89
85
  public readonly strategy = "api-key";
90
86
 
91
87
  #apiKey: string;
@@ -113,9 +109,7 @@ export class AssistantCloudAPIKeyAuthStrategy
113
109
 
114
110
  const AUI_REFRESH_TOKEN_NAME = "aui:refresh_token";
115
111
 
116
- export class AssistantCloudAnonymousAuthStrategy
117
- implements AssistantCloudAuthStrategy
118
- {
112
+ export class AssistantCloudAnonymousAuthStrategy implements AssistantCloudAuthStrategy {
119
113
  public readonly strategy = "anon";
120
114
 
121
115
  private baseUrl: string;
@@ -440,9 +440,8 @@ describe("AssistantCloudFiles", () => {
440
440
  vi.resetModules();
441
441
 
442
442
  // Import real modules
443
- const { AssistantCloud: RealAssistantCloud } = await import(
444
- "../AssistantCloud"
445
- );
443
+ const { AssistantCloud: RealAssistantCloud } =
444
+ await import("../AssistantCloud");
446
445
 
447
446
  const realCloud = new RealAssistantCloud({
448
447
  apiKey: process.env.AUI_API_KEY!,
@@ -507,9 +506,8 @@ describe("AssistantCloudFiles", () => {
507
506
  vi.resetModules();
508
507
 
509
508
  // Import real modules
510
- const { AssistantCloud: RealAssistantCloud } = await import(
511
- "../AssistantCloud"
512
- );
509
+ const { AssistantCloud: RealAssistantCloud } =
510
+ await import("../AssistantCloud");
513
511
 
514
512
  const realCloud = new RealAssistantCloud({
515
513
  apiKey: process.env.AUI_API_KEY!,