@scalar/agent-chat 0.9.13 → 0.9.15
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.
- package/dist/App.vue.d.ts +2 -0
- package/dist/App.vue.d.ts.map +1 -1
- package/dist/App.vue.js.map +1 -1
- package/dist/App.vue.script.js +2 -0
- package/dist/App.vue.script.js.map +1 -1
- package/dist/api.d.ts +1 -3
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +30 -31
- package/dist/api.js.map +1 -1
- package/dist/client-tools/execute-request.d.ts +1 -10
- package/dist/client-tools/execute-request.d.ts.map +1 -1
- package/dist/client-tools/execute-request.js +30 -45
- package/dist/client-tools/execute-request.js.map +1 -1
- package/dist/components/ContextItem.vue.d.ts.map +1 -1
- package/dist/components/ContextItem.vue.js +1 -1
- package/dist/components/ContextItem.vue.js.map +1 -1
- package/dist/components/ContextItem.vue.script.js +5 -5
- package/dist/components/ContextItem.vue.script.js.map +1 -1
- package/dist/components/{LoadingMiniOpenAPIDoc.vue.d.ts → LoadingSearchOpenAPIOperations.vue.d.ts} +1 -1
- package/dist/components/LoadingSearchOpenAPIOperations.vue.d.ts.map +1 -0
- package/dist/components/{LoadingMiniOpenAPIDoc.vue.js → LoadingSearchOpenAPIOperations.vue.js} +4 -4
- package/dist/components/LoadingSearchOpenAPIOperations.vue.js.map +1 -0
- package/dist/entities/index.d.ts +3 -3
- package/dist/entities/index.d.ts.map +1 -1
- package/dist/entities/index.js +7 -7
- package/dist/entities/tools/ask-for-authentication.d.ts +1 -0
- package/dist/entities/tools/ask-for-authentication.d.ts.map +1 -1
- package/dist/entities/tools/ask-for-authentication.js +4 -1
- package/dist/entities/tools/ask-for-authentication.js.map +1 -1
- package/dist/entities/tools/execute-request.d.ts +1 -0
- package/dist/entities/tools/execute-request.d.ts.map +1 -1
- package/dist/entities/tools/execute-request.js +2 -1
- package/dist/entities/tools/execute-request.js.map +1 -1
- package/dist/entities/tools/get-openapi-specs-summary.d.ts +12 -0
- package/dist/entities/tools/get-openapi-specs-summary.d.ts.map +1 -0
- package/dist/entities/tools/get-openapi-specs-summary.js +6 -0
- package/dist/entities/tools/get-openapi-specs-summary.js.map +1 -0
- package/dist/entities/tools/search-openapi-operations.d.ts +9 -0
- package/dist/entities/tools/search-openapi-operations.d.ts.map +1 -0
- package/dist/entities/tools/search-openapi-operations.js +7 -0
- package/dist/entities/tools/search-openapi-operations.js.map +1 -0
- package/dist/hooks/use-upload-tmp-document.js +1 -1
- package/dist/hooks/use-upload-tmp-document.js.map +1 -1
- package/dist/package.json +1 -2
- package/dist/state/state.d.ts +9 -7
- package/dist/state/state.d.ts.map +1 -1
- package/dist/state/state.js +32 -36
- package/dist/state/state.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/views/Chat/Chat.vue.d.ts.map +1 -1
- package/dist/views/Chat/Chat.vue.js +1 -1
- package/dist/views/Chat/Chat.vue.js.map +1 -1
- package/dist/views/Chat/Chat.vue.script.js +8 -8
- package/dist/views/Chat/Chat.vue.script.js.map +1 -1
- package/dist/views/Chat/Messages/AskForAuthentication.vue.d.ts.map +1 -1
- package/dist/views/Chat/Messages/AskForAuthentication.vue.js +1 -1
- package/dist/views/Chat/Messages/AskForAuthentication.vue.js.map +1 -1
- package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js +38 -44
- package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js.map +1 -1
- package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.d.ts +2 -2
- package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.d.ts.map +1 -1
- package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.js.map +1 -1
- package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.script.js.map +1 -1
- package/dist/views/Chat/Messages/{GetMiniOpenAPIDocTool.vue.d.ts → SearchOpenAPIOperationsTool.vue.d.ts} +3 -3
- package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.d.ts.map +1 -0
- package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.js +9 -0
- package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.js.map +1 -0
- package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.script.js +57 -0
- package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.script.js.map +1 -0
- package/package.json +7 -8
- package/dist/components/LoadingMiniOpenAPIDoc.vue.d.ts.map +0 -1
- package/dist/components/LoadingMiniOpenAPIDoc.vue.js.map +0 -1
- package/dist/entities/tools/constants.d.ts +0 -2
- package/dist/entities/tools/constants.d.ts.map +0 -1
- package/dist/entities/tools/constants.js +0 -6
- package/dist/entities/tools/constants.js.map +0 -1
- package/dist/entities/tools/get-mini-openapi-spec.d.ts +0 -12
- package/dist/entities/tools/get-mini-openapi-spec.d.ts.map +0 -1
- package/dist/entities/tools/get-mini-openapi-spec.js +0 -7
- package/dist/entities/tools/get-mini-openapi-spec.js.map +0 -1
- package/dist/entities/tools/get-openapi-spec-summary.d.ts +0 -10
- package/dist/entities/tools/get-openapi-spec-summary.d.ts.map +0 -1
- package/dist/entities/tools/get-openapi-spec-summary.js +0 -6
- package/dist/entities/tools/get-openapi-spec-summary.js.map +0 -1
- package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.d.ts.map +0 -1
- package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.js +0 -9
- package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.js.map +0 -1
- package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.script.js +0 -39
- package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.script.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-request.d.ts","sourceRoot":"","sources":["../../../src/entities/tools/execute-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE,eAAO,MAAM,qCAAqC,EAAG,iBAA0B,CAAA;AAE/E,eAAO,MAAM,uCAAuC
|
|
1
|
+
{"version":3,"file":"execute-request.d.ts","sourceRoot":"","sources":["../../../src/entities/tools/execute-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE,eAAO,MAAM,qCAAqC,EAAG,iBAA0B,CAAA;AAE/E,eAAO,MAAM,uCAAuC;;;;;;;iBAOlD,CAAA;AAEF,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAA;AAEvG,MAAM,MAAM,kCAAkC,GAAG,MAAM,CACrD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,EAAE,CAAA;CAAE,EACrD,cAAc,CACZ,+BAA+B,EAC/B;IACE,aAAa,EAAE,OAAO,CAAA;CACvB,CACF,GACD,cAAc,CACZ,gBAAgB,EAChB;IACE,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC,CACF,GACD,cAAc,CACZ,iBAAiB,EACjB;IACE,aAAa,EAAE,OAAO,CAAA;CACvB,CACF,GACD,cAAc,CACZ,2CAA2C,EAC3C;IACE,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb,CACF,GACD,cAAc,CAAC,8BAA8B,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC,GACjH,cAAc,CAAC,2BAA2B,EAAE,OAAO,CAAC,CACvD,CAAA"}
|
|
@@ -5,7 +5,8 @@ var t = "execute-request", n = e.object({
|
|
|
5
5
|
path: e.string(),
|
|
6
6
|
headers: e.record(e.string(), e.string()).optional(),
|
|
7
7
|
body: e.string().optional(),
|
|
8
|
-
|
|
8
|
+
documentName: e.string(),
|
|
9
|
+
documentIdentifier: e.string().describe("Needed for legacy support for old clients")
|
|
9
10
|
});
|
|
10
11
|
//#endregion
|
|
11
12
|
export { t as EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME, n as executeClientSideRequestToolInputSchema };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-request.js","names":[],"sources":["../../../src/entities/tools/execute-request.ts"],"sourcesContent":["import type { Result } from 'neverpanic'\nimport { z } from 'zod'\n\nimport type { AgentChatError } from '@/entities/error/constants'\n\nexport const EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME = 'execute-request' as const\n\nexport const executeClientSideRequestToolInputSchema = z.object({\n method: z.string(),\n path: z.string(),\n headers: z.record(z.string(), z.string()).optional(),\n body: z.string().optional(),\n documentIdentifier: z.string(),\n})\n\nexport type ExecuteClientSideRequestToolInput = z.input<typeof executeClientSideRequestToolInputSchema>\n\nexport type ExecuteClientSideRequestToolOutput = Result<\n { status: number; responseBody?: unknown; headers: {} },\n | AgentChatError<\n 'FAILED_TO_PARSE_RESPONSE_BODY',\n {\n originalError: unknown\n }\n >\n | AgentChatError<\n 'REQUEST_NOT_OK',\n {\n status: number\n url: string\n responseBody: unknown\n headers: Record<string, string>\n }\n >\n | AgentChatError<\n 'FAILED_TO_FETCH',\n {\n originalError: unknown\n }\n >\n | AgentChatError<\n 'DOCUMENT_SETTINGS_COULD_NOT_BE_DETERMINED',\n {\n documentName: string\n namespace: string\n slug: string\n }\n >\n | AgentChatError<'FAILED_TO_DETERMINE_DOCUMENT', { namespace?: string; slug?: string; documentIdentifier: string }>\n | AgentChatError<'FAILED_TO_EXECUTE_REQUEST', unknown>\n>\n"],"mappings":";;AAKA,IAAa,IAAwC,mBAExC,IAA0C,EAAE,OAAO;CAC9D,QAAQ,EAAE,QAAQ;CAClB,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU;CACpD,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,oBAAoB,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"execute-request.js","names":[],"sources":["../../../src/entities/tools/execute-request.ts"],"sourcesContent":["import type { Result } from 'neverpanic'\nimport { z } from 'zod'\n\nimport type { AgentChatError } from '@/entities/error/constants'\n\nexport const EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME = 'execute-request' as const\n\nexport const executeClientSideRequestToolInputSchema = z.object({\n method: z.string(),\n path: z.string(),\n headers: z.record(z.string(), z.string()).optional(),\n body: z.string().optional(),\n documentName: z.string(),\n documentIdentifier: z.string().describe('Needed for legacy support for old clients'),\n})\n\nexport type ExecuteClientSideRequestToolInput = z.input<typeof executeClientSideRequestToolInputSchema>\n\nexport type ExecuteClientSideRequestToolOutput = Result<\n { status: number; responseBody?: unknown; headers: {} },\n | AgentChatError<\n 'FAILED_TO_PARSE_RESPONSE_BODY',\n {\n originalError: unknown\n }\n >\n | AgentChatError<\n 'REQUEST_NOT_OK',\n {\n status: number\n url: string\n responseBody: unknown\n headers: Record<string, string>\n }\n >\n | AgentChatError<\n 'FAILED_TO_FETCH',\n {\n originalError: unknown\n }\n >\n | AgentChatError<\n 'DOCUMENT_SETTINGS_COULD_NOT_BE_DETERMINED',\n {\n documentName: string\n namespace: string\n slug: string\n }\n >\n | AgentChatError<'FAILED_TO_DETERMINE_DOCUMENT', { namespace?: string; slug?: string; documentIdentifier: string }>\n | AgentChatError<'FAILED_TO_EXECUTE_REQUEST', unknown>\n>\n"],"mappings":";;AAKA,IAAa,IAAwC,mBAExC,IAA0C,EAAE,OAAO;CAC9D,QAAQ,EAAE,QAAQ;CAClB,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU;CACpD,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,cAAc,EAAE,QAAQ;CACxB,oBAAoB,EAAE,QAAQ,CAAC,SAAS,4CAA4C;CACrF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { OpenAPIV3_1 } from '@scalar/openapi-types';
|
|
2
|
+
export declare const SUMMARIZE_OPENAPI_SPECS_TOOL_NAME: "summarize-openapi-specs";
|
|
3
|
+
export type GetOpenAPISpecsSummaryToolOutput = {
|
|
4
|
+
paths: string[];
|
|
5
|
+
components?: {
|
|
6
|
+
securitySchemes: Record<string, OpenAPIV3_1.ReferenceObject | OpenAPIV3_1.SecuritySchemeObject>;
|
|
7
|
+
};
|
|
8
|
+
info?: OpenAPIV3_1.InfoObject;
|
|
9
|
+
externalDocs: any;
|
|
10
|
+
servers?: OpenAPIV3_1.ServerObject[];
|
|
11
|
+
}[];
|
|
12
|
+
//# sourceMappingURL=get-openapi-specs-summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-openapi-specs-summary.d.ts","sourceRoot":"","sources":["../../../src/entities/tools/get-openapi-specs-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAExD,eAAO,MAAM,iCAAiC,EAAG,yBAAkC,CAAA;AAEnF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,UAAU,CAAC,EAAE;QACX,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,eAAe,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAA;KAChG,CAAA;IACD,IAAI,CAAC,EAAE,WAAW,CAAC,UAAU,CAAA;IAC7B,YAAY,EAAE,GAAG,CAAA;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC,YAAY,EAAE,CAAA;CACrC,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-openapi-specs-summary.js","names":[],"sources":["../../../src/entities/tools/get-openapi-specs-summary.ts"],"sourcesContent":["import type { OpenAPIV3_1 } from '@scalar/openapi-types'\n\nexport const SUMMARIZE_OPENAPI_SPECS_TOOL_NAME = 'summarize-openapi-specs' as const\n\nexport type GetOpenAPISpecsSummaryToolOutput = {\n paths: string[]\n components?: {\n securitySchemes: Record<string, OpenAPIV3_1.ReferenceObject | OpenAPIV3_1.SecuritySchemeObject>\n }\n info?: OpenAPIV3_1.InfoObject\n externalDocs: any\n servers?: OpenAPIV3_1.ServerObject[]\n}[]\n"],"mappings":";AAEA,IAAa,IAAoC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { OpenAPIV3_1 } from '@scalar/openapi-types';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export declare const SEARCH_OPENAPI_OPERATIONS_TOOL_NAME: "search-openapi-operations";
|
|
4
|
+
export declare const searchOpenAPIOperationsInputSchema: z.ZodObject<{
|
|
5
|
+
question: z.ZodString;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export type SearchOpenAPIOperationsToolInput = z.input<typeof searchOpenAPIOperationsInputSchema>;
|
|
8
|
+
export type SearchOpenAPIOperationsToolOutput = Partial<OpenAPIV3_1.Document>[];
|
|
9
|
+
//# sourceMappingURL=search-openapi-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-openapi-operations.d.ts","sourceRoot":"","sources":["../../../src/entities/tools/search-openapi-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,mCAAmC,EAAG,2BAAoC,CAAA;AAEvF,eAAO,MAAM,kCAAkC;;iBAE7C,CAAA;AAEF,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAEjG,MAAM,MAAM,iCAAiC,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { z as e } from "zod";
|
|
2
|
+
//#region src/entities/tools/search-openapi-operations.ts
|
|
3
|
+
var t = "search-openapi-operations", n = e.object({ question: e.string() });
|
|
4
|
+
//#endregion
|
|
5
|
+
export { t as SEARCH_OPENAPI_OPERATIONS_TOOL_NAME, n as searchOpenAPIOperationsInputSchema };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=search-openapi-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-openapi-operations.js","names":[],"sources":["../../../src/entities/tools/search-openapi-operations.ts"],"sourcesContent":["import type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { z } from 'zod'\n\nexport const SEARCH_OPENAPI_OPERATIONS_TOOL_NAME = 'search-openapi-operations' as const\n\nexport const searchOpenAPIOperationsInputSchema = z.object({\n question: z.string(),\n})\n\nexport type SearchOpenAPIOperationsToolInput = z.input<typeof searchOpenAPIOperationsInputSchema>\n\nexport type SearchOpenAPIOperationsToolOutput = Partial<OpenAPIV3_1.Document>[]\n"],"mappings":";;AAGA,IAAa,IAAsC,6BAEtC,IAAqC,EAAE,OAAO,EACzD,UAAU,EAAE,QAAQ,EACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-upload-tmp-document.js","names":[],"sources":["../../src/hooks/use-upload-tmp-document.ts"],"sourcesContent":["import { redirectToProxy } from '@scalar/helpers/url/redirect-to-proxy'\nimport { ref } from 'vue'\nimport { z } from 'zod/mini'\n\nimport { useState } from '@/state/state'\n\nconst SHOW_UPLOAD_SUCCESS_DELAY = 5_000 // 5 seconds\n\nexport type UploadTmpDocumentState =\n | { type: 'error'; error: unknown }\n | { type: 'uploading' }\n | { type: 'processing' }\n | { type: 'loading' }\n | { type: 'done' }\n\nconst TMP_DOC_LS_KEY = 'scalar-tmp-doc'\n\nfunction saveTmpDocumentInLocalStorage({ namespace, slug }: { namespace: string; slug: string }) {\n localStorage.setItem(TMP_DOC_LS_KEY, JSON.stringify({ namespace, slug }))\n}\n\nexport function getTmpDocFromLocalStorage() {\n const tmpDoc = localStorage.getItem(TMP_DOC_LS_KEY)\n if (!tmpDoc) {\n return\n }\n\n return z\n .object({\n namespace: z.string(),\n slug: z.string(),\n })\n .parse(JSON.parse(tmpDoc))\n}\n\nexport function removeTmpDocFromLocalStorage() {\n const tmpDoc = localStorage.getItem(TMP_DOC_LS_KEY)\n if (!tmpDoc) {\n return\n }\n\n localStorage.removeItem(TMP_DOC_LS_KEY)\n}\n\n/**\n * Handle uploading a temporary OpenAPI document.\n */\nexport function useUploadTmpDocument() {\n const state = useState()\n const uploadState = ref<UploadTmpDocumentState>()\n\n function createUrl(path: string) {\n const fullUrl = `${state.baseUrl}${path}`\n return redirectToProxy(state.
|
|
1
|
+
{"version":3,"file":"use-upload-tmp-document.js","names":[],"sources":["../../src/hooks/use-upload-tmp-document.ts"],"sourcesContent":["import { redirectToProxy } from '@scalar/helpers/url/redirect-to-proxy'\nimport { ref } from 'vue'\nimport { z } from 'zod/mini'\n\nimport { useState } from '@/state/state'\n\nconst SHOW_UPLOAD_SUCCESS_DELAY = 5_000 // 5 seconds\n\nexport type UploadTmpDocumentState =\n | { type: 'error'; error: unknown }\n | { type: 'uploading' }\n | { type: 'processing' }\n | { type: 'loading' }\n | { type: 'done' }\n\nconst TMP_DOC_LS_KEY = 'scalar-tmp-doc'\n\nfunction saveTmpDocumentInLocalStorage({ namespace, slug }: { namespace: string; slug: string }) {\n localStorage.setItem(TMP_DOC_LS_KEY, JSON.stringify({ namespace, slug }))\n}\n\nexport function getTmpDocFromLocalStorage() {\n const tmpDoc = localStorage.getItem(TMP_DOC_LS_KEY)\n if (!tmpDoc) {\n return\n }\n\n return z\n .object({\n namespace: z.string(),\n slug: z.string(),\n })\n .parse(JSON.parse(tmpDoc))\n}\n\nexport function removeTmpDocFromLocalStorage() {\n const tmpDoc = localStorage.getItem(TMP_DOC_LS_KEY)\n if (!tmpDoc) {\n return\n }\n\n localStorage.removeItem(TMP_DOC_LS_KEY)\n}\n\n/**\n * Handle uploading a temporary OpenAPI document.\n */\nexport function useUploadTmpDocument() {\n const state = useState()\n const uploadState = ref<UploadTmpDocumentState>()\n\n function createUrl(path: string) {\n const fullUrl = `${state.baseUrl}${path}`\n return redirectToProxy(state.platformProxyUrl, fullUrl)\n }\n\n async function uploadTempDocument(document: string, isAgent = false) {\n try {\n uploadState.value = {\n type: 'uploading',\n }\n\n const response = await fetch(createUrl(`/core/share/upload/apis${isAgent ? '?source=agent' : ''}`), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ document }),\n })\n\n if (!response.ok) {\n uploadState.value = {\n type: 'error',\n error: 'Failed to upload your OpenAPI document.',\n }\n\n return\n }\n\n const json = await response.json()\n\n const { success, data } = z.object({ url: z.string(), namespace: z.string(), slug: z.string() }).safeParse(json)\n\n if (!success) {\n uploadState.value = {\n type: 'error',\n error: 'Failed to process document.',\n }\n return\n }\n\n uploadState.value = {\n type: 'processing',\n }\n const embeddingStatusResponse = await fetch(\n createUrl(`/vector/registry/embeddings/${data.namespace}/${data.slug}`),\n {\n method: 'GET',\n },\n )\n\n saveTmpDocumentInLocalStorage({\n namespace: data.namespace,\n slug: data.slug,\n })\n\n await state.addDocument({\n namespace: data.namespace,\n slug: data.slug,\n removable: false,\n tmp: true,\n })\n\n if (!embeddingStatusResponse.ok) {\n uploadState.value = {\n type: 'error',\n error: 'Failed to embed document.',\n }\n return\n }\n\n uploadState.value = { type: 'done' }\n state.uploadedTmpDocumentUrl.value = data.url\n\n setTimeout(() => {\n uploadState.value = undefined\n }, SHOW_UPLOAD_SUCCESS_DELAY)\n\n return data\n } catch {\n uploadState.value = { type: 'error', error: 'Failed to upload your OpenAPI document.' }\n return\n }\n }\n\n return {\n uploadTempDocument,\n uploadState,\n }\n}\n"],"mappings":";;;;;AAMA,IAAM,IAA4B,KAS5B,IAAiB;AAEvB,SAAS,EAA8B,EAAE,cAAW,WAA6C;AAC/F,cAAa,QAAQ,GAAgB,KAAK,UAAU;EAAE;EAAW;EAAM,CAAC,CAAC;;AAG3E,SAAgB,IAA4B;CAC1C,IAAM,IAAS,aAAa,QAAQ,EAAe;AAC9C,OAIL,QAAO,EACJ,OAAO;EACN,WAAW,EAAE,QAAQ;EACrB,MAAM,EAAE,QAAQ;EACjB,CAAC,CACD,MAAM,KAAK,MAAM,EAAO,CAAC;;AAG9B,SAAgB,IAA+B;AAC9B,cAAa,QAAQ,EAAe,IAKnD,aAAa,WAAW,EAAe;;AAMzC,SAAgB,IAAuB;CACrC,IAAM,IAAQ,GAAU,EAClB,IAAc,GAA6B;CAEjD,SAAS,EAAU,GAAc;EAC/B,IAAM,IAAU,GAAG,EAAM,UAAU;AACnC,SAAO,EAAgB,EAAM,kBAAkB,EAAQ;;CAGzD,eAAe,EAAmB,GAAkB,IAAU,IAAO;AACnE,MAAI;AACF,KAAY,QAAQ,EAClB,MAAM,aACP;GAED,IAAM,IAAW,MAAM,MAAM,EAAU,0BAA0B,IAAU,kBAAkB,KAAK,EAAE;IAClG,QAAQ;IACR,SAAS,EACP,gBAAgB,oBACjB;IACD,MAAM,KAAK,UAAU,EAAE,aAAU,CAAC;IACnC,CAAC;AAEF,OAAI,CAAC,EAAS,IAAI;AAChB,MAAY,QAAQ;KAClB,MAAM;KACN,OAAO;KACR;AAED;;GAGF,IAAM,IAAO,MAAM,EAAS,MAAM,EAE5B,EAAE,YAAS,YAAS,EAAE,OAAO;IAAE,KAAK,EAAE,QAAQ;IAAE,WAAW,EAAE,QAAQ;IAAE,MAAM,EAAE,QAAQ;IAAE,CAAC,CAAC,UAAU,EAAK;AAEhH,OAAI,CAAC,GAAS;AACZ,MAAY,QAAQ;KAClB,MAAM;KACN,OAAO;KACR;AACD;;AAGF,KAAY,QAAQ,EAClB,MAAM,cACP;GACD,IAAM,IAA0B,MAAM,MACpC,EAAU,+BAA+B,EAAK,UAAU,GAAG,EAAK,OAAO,EACvE,EACE,QAAQ,OACT,CACF;AAcD,OAZA,EAA8B;IAC5B,WAAW,EAAK;IAChB,MAAM,EAAK;IACZ,CAAC,EAEF,MAAM,EAAM,YAAY;IACtB,WAAW,EAAK;IAChB,MAAM,EAAK;IACX,WAAW;IACX,KAAK;IACN,CAAC,EAEE,CAAC,EAAwB,IAAI;AAC/B,MAAY,QAAQ;KAClB,MAAM;KACN,OAAO;KACR;AACD;;AAUF,UAPA,EAAY,QAAQ,EAAE,MAAM,QAAQ,EACpC,EAAM,uBAAuB,QAAQ,EAAK,KAE1C,iBAAiB;AACf,MAAY,QAAQ,KAAA;MACnB,EAA0B,EAEtB;UACD;AACN,KAAY,QAAQ;IAAE,MAAM;IAAS,OAAO;IAA2C;AACvF;;;AAIJ,QAAO;EACL;EACA;EACD"}
|
package/dist/package.json
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"url": "git+https://github.com/scalar/scalar.git",
|
|
11
11
|
"directory": "packages/agent-chat"
|
|
12
12
|
},
|
|
13
|
-
"version": "0.9.
|
|
13
|
+
"version": "0.9.15",
|
|
14
14
|
"engines": {
|
|
15
15
|
"node": ">=22"
|
|
16
16
|
},
|
|
@@ -68,7 +68,6 @@
|
|
|
68
68
|
"zod": "catalog:*"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@modelcontextprotocol/sdk": "catalog:*",
|
|
72
71
|
"@tailwindcss/vite": "catalog:*",
|
|
73
72
|
"@types/whatwg-mimetype": "catalog:*",
|
|
74
73
|
"@vitejs/plugin-vue": "catalog:*",
|
package/dist/state/state.d.ts
CHANGED
|
@@ -9,23 +9,23 @@ import { type Api } from '../api.js';
|
|
|
9
9
|
import type { ApiMetadata } from '../entities/registry/document.js';
|
|
10
10
|
import type { ASK_FOR_AUTHENTICATION_TOOL_NAME, AskForAuthenticationInput } from '../entities/tools/ask-for-authentication.js';
|
|
11
11
|
import { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME, type ExecuteClientSideRequestToolInput, type ExecuteClientSideRequestToolOutput } from '../entities/tools/execute-request.js';
|
|
12
|
-
import type {
|
|
13
|
-
import type {
|
|
12
|
+
import type { GetOpenAPISpecsSummaryToolOutput, SUMMARIZE_OPENAPI_SPECS_TOOL_NAME } from '../entities/tools/get-openapi-specs-summary.js';
|
|
13
|
+
import type { SEARCH_OPENAPI_OPERATIONS_TOOL_NAME, SearchOpenAPIOperationsToolInput, SearchOpenAPIOperationsToolOutput } from '../entities/tools/search-openapi-operations.js';
|
|
14
14
|
import type { ChatMode } from '../types';
|
|
15
15
|
export type RegistryDocument = {
|
|
16
16
|
namespace: string;
|
|
17
17
|
slug: string;
|
|
18
18
|
};
|
|
19
19
|
export type Tools = {
|
|
20
|
-
[
|
|
21
|
-
input:
|
|
22
|
-
output:
|
|
20
|
+
[SEARCH_OPENAPI_OPERATIONS_TOOL_NAME]: {
|
|
21
|
+
input: SearchOpenAPIOperationsToolInput;
|
|
22
|
+
output: SearchOpenAPIOperationsToolOutput;
|
|
23
23
|
};
|
|
24
24
|
[EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME]: {
|
|
25
25
|
input: ExecuteClientSideRequestToolInput;
|
|
26
26
|
output: ExecuteClientSideRequestToolOutput;
|
|
27
27
|
};
|
|
28
|
-
[
|
|
28
|
+
[SUMMARIZE_OPENAPI_SPECS_TOOL_NAME]: {
|
|
29
29
|
input: object;
|
|
30
30
|
output: GetOpenAPISpecsSummaryToolOutput;
|
|
31
31
|
};
|
|
@@ -48,6 +48,7 @@ type State = {
|
|
|
48
48
|
registryUrl: string;
|
|
49
49
|
dashboardUrl: string;
|
|
50
50
|
baseUrl: string;
|
|
51
|
+
platformProxyUrl: string;
|
|
51
52
|
isLoggedIn?: Ref<boolean>;
|
|
52
53
|
registryDocuments: Ref<ApiMetadata[]>;
|
|
53
54
|
pendingDocuments: Record<string, boolean>;
|
|
@@ -79,13 +80,14 @@ type State = {
|
|
|
79
80
|
getActiveDocumentJson?: () => string;
|
|
80
81
|
hideAddApi?: boolean;
|
|
81
82
|
};
|
|
82
|
-
export declare function createState({ initialRegistryDocuments, registryUrl, dashboardUrl, baseUrl, mode, isLoggedIn, getAccessToken, getAgentKey, getActiveDocumentJson, prefilledMessageRef, hideAddApi, }: {
|
|
83
|
+
export declare function createState({ initialRegistryDocuments, registryUrl, dashboardUrl, platformProxyUrl, baseUrl, mode, isLoggedIn, getAccessToken, getAgentKey, getActiveDocumentJson, prefilledMessageRef, hideAddApi, }: {
|
|
83
84
|
initialRegistryDocuments: {
|
|
84
85
|
namespace: string;
|
|
85
86
|
slug: string;
|
|
86
87
|
}[];
|
|
87
88
|
registryUrl: string;
|
|
88
89
|
dashboardUrl: string;
|
|
90
|
+
platformProxyUrl: string;
|
|
89
91
|
baseUrl: string;
|
|
90
92
|
mode: ChatMode;
|
|
91
93
|
isLoggedIn?: Ref<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,KAAK,UAAU,EAAY,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state/state.ts"],"names":[],"mappings":"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"}
|
package/dist/state/state.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createError as e } from "../entities/error/helpers.js";
|
|
2
2
|
import { createApi as t, createAuthorizationHeaders as n } from "../api.js";
|
|
3
|
-
import "../entities/tools/execute-request.js";
|
|
4
3
|
import { createDocumentName as r } from "../registry/create-document-name.js";
|
|
4
|
+
import "../entities/tools/execute-request.js";
|
|
5
5
|
import { executeRequestTool as i } from "../client-tools/execute-request.js";
|
|
6
6
|
import { URLS as a } from "../consts/urls.js";
|
|
7
7
|
import { createDocumentSettings as o } from "../helpers.js";
|
|
@@ -13,27 +13,23 @@ import { computed as d, inject as f, reactive as p, ref as m, watch as h } from
|
|
|
13
13
|
import { useToasts as g } from "@scalar/use-toasts";
|
|
14
14
|
import { Chat as _ } from "@ai-sdk/vue";
|
|
15
15
|
import { useModal as v } from "@scalar/components";
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import { n as T } from "neverpanic";
|
|
16
|
+
import { apiReferenceConfigurationSchema as y } from "@scalar/types/api-reference";
|
|
17
|
+
import { createWorkspaceStore as b } from "@scalar/workspace-store/client";
|
|
18
|
+
import { createWorkspaceEventBus as x } from "@scalar/workspace-store/events";
|
|
19
|
+
import { DefaultChatTransport as S, lastAssistantMessageIsCompleteWithToolCalls as C } from "ai";
|
|
20
|
+
import { n as w } from "neverpanic";
|
|
22
21
|
//#region src/state/state.ts
|
|
23
|
-
var
|
|
24
|
-
function
|
|
22
|
+
var T = Symbol("STATE_SYMBOL"), { toast: E } = g();
|
|
23
|
+
function D({ registryDocuments: e, workspaceStore: t, baseUrl: r, proxyUrl: a, getAccessToken: s, getAgentKey: c }) {
|
|
25
24
|
let l = new _({
|
|
26
|
-
sendAutomaticallyWhen:
|
|
27
|
-
transport: new
|
|
28
|
-
api:
|
|
25
|
+
sendAutomaticallyWhen: C,
|
|
26
|
+
transport: new S({
|
|
27
|
+
api: `${r}/vector/openapi/chat`,
|
|
29
28
|
headers: () => n({
|
|
30
29
|
getAccessToken: s,
|
|
31
30
|
getAgentKey: c
|
|
32
31
|
}),
|
|
33
|
-
body: () => ({
|
|
34
|
-
registryDocuments: e.value,
|
|
35
|
-
documentSettings: o(t)
|
|
36
|
-
})
|
|
32
|
+
body: () => ({ registryDocuments: e.value })
|
|
37
33
|
}),
|
|
38
34
|
async onToolCall({ toolCall: e }) {
|
|
39
35
|
e.dynamic || e.toolName === "execute-request" && e.input.method.toLowerCase() === "get" && await i({
|
|
@@ -47,22 +43,21 @@ function O({ registryDocuments: e, workspaceStore: t, baseUrl: r, proxyUrl: a, g
|
|
|
47
43
|
});
|
|
48
44
|
return l;
|
|
49
45
|
}
|
|
50
|
-
function
|
|
51
|
-
let j = m(k?.value ?? ""), M = m([]), N = p({}), P = m([]), F = m(a.DEFAULT_PROXY_URL), I = d(() => F.value?.trim() || a.DEFAULT_PROXY_URL), L = m(), R = s(), z =
|
|
46
|
+
function O({ initialRegistryDocuments: n, registryUrl: i, dashboardUrl: o, platformProxyUrl: f, baseUrl: g, mode: _, isLoggedIn: S, getAccessToken: C, getAgentKey: T, getActiveDocumentJson: O, prefilledMessageRef: k, hideAddApi: A }) {
|
|
47
|
+
let j = m(k?.value ?? ""), M = m([]), N = p({}), P = m([]), F = m(a.DEFAULT_PROXY_URL), I = d(() => F.value?.trim() || a.DEFAULT_PROXY_URL), L = m(), R = s(), z = x(), B = b({ plugins: [l({ persistAuth: !0 })] }), V = d(() => y.parse({
|
|
52
48
|
proxyUrl: I.value,
|
|
53
49
|
persistAuth: !0
|
|
54
|
-
})), H =
|
|
50
|
+
})), H = D({
|
|
55
51
|
registryDocuments: M,
|
|
56
52
|
workspaceStore: B,
|
|
57
|
-
baseUrl:
|
|
53
|
+
baseUrl: g,
|
|
58
54
|
proxyUrl: I,
|
|
59
55
|
getAccessToken: C,
|
|
60
|
-
getAgentKey:
|
|
56
|
+
getAgentKey: T
|
|
61
57
|
}), U = t({
|
|
62
|
-
baseUrl:
|
|
63
|
-
proxyUrl: I,
|
|
58
|
+
baseUrl: g,
|
|
64
59
|
getAccessToken: C,
|
|
65
|
-
getAgentKey:
|
|
60
|
+
getAgentKey: T
|
|
66
61
|
}), W = d(() => H.status === "submitted" || H.status === "streaming" && !H.lastMessage?.parts.some((e) => e.type === "text"));
|
|
67
62
|
h(() => H.status, () => {
|
|
68
63
|
H.status === "streaming" && (j.value = "");
|
|
@@ -84,13 +79,13 @@ function k({ initialRegistryDocuments: n, registryUrl: i, dashboardUrl: o, baseU
|
|
|
84
79
|
api: U,
|
|
85
80
|
removable: n
|
|
86
81
|
});
|
|
87
|
-
if (N[a] = !1, !o.success) throw r ? (c(), o.error) : (console.warn("[AGENT]: Unable to load document", o.error),
|
|
82
|
+
if (N[a] = !1, !o.success) throw r ? (c(), o.error) : (console.warn("[AGENT]: Unable to load document", o.error), E(`Unable to load the document @${e}/${t}`, "warn"), o.error);
|
|
88
83
|
}
|
|
89
84
|
async function q({ namespace: t, slug: n, removable: r = !0 }) {
|
|
90
85
|
if (M.value.find((e) => e.namespace === t && e.slug === n)) return;
|
|
91
86
|
let a = `@${t}/${n}`;
|
|
92
87
|
N[a] = !0;
|
|
93
|
-
let o = await
|
|
88
|
+
let o = await w.fromUnsafe(() => fetch(`${g}/vector/registry/embeddings/${t}/${n}`, { method: "GET" }), (t) => e("FAILED_TO_GET_EMBEDDING_STATUS", t));
|
|
94
89
|
if (o.success && o.data.ok) {
|
|
95
90
|
let e = await u({
|
|
96
91
|
namespace: t,
|
|
@@ -102,8 +97,8 @@ function k({ initialRegistryDocuments: n, registryUrl: i, dashboardUrl: o, baseU
|
|
|
102
97
|
api: U,
|
|
103
98
|
removable: r
|
|
104
99
|
});
|
|
105
|
-
e.success || (console.warn("[AGENT]: Unable to load document", e.error),
|
|
106
|
-
} else console.warn("[AGENT]: Document could not be embedded"),
|
|
100
|
+
e.success || (console.warn("[AGENT]: Unable to load document", e.error), E(`Unable to load the document @${t}/${n}`, "warn"));
|
|
101
|
+
} else console.warn("[AGENT]: Document could not be embedded"), E(`Unable to embed the document @${t}/${n}`, "warn");
|
|
107
102
|
N[a] = !1;
|
|
108
103
|
}
|
|
109
104
|
function J({ namespace: e, slug: t }) {
|
|
@@ -123,32 +118,33 @@ function k({ initialRegistryDocuments: n, registryUrl: i, dashboardUrl: o, baseU
|
|
|
123
118
|
config: V,
|
|
124
119
|
registryUrl: i,
|
|
125
120
|
dashboardUrl: o,
|
|
126
|
-
|
|
121
|
+
platformProxyUrl: f,
|
|
122
|
+
baseUrl: g,
|
|
127
123
|
registryDocuments: M,
|
|
128
124
|
pendingDocuments: N,
|
|
129
125
|
proxyUrl: I,
|
|
130
126
|
proxyUrlRaw: F,
|
|
131
|
-
mode:
|
|
127
|
+
mode: _,
|
|
132
128
|
terms: R,
|
|
133
|
-
isLoggedIn:
|
|
129
|
+
isLoggedIn: S,
|
|
134
130
|
addDocument: K,
|
|
135
131
|
addDocumentAsync: q,
|
|
136
132
|
removeDocument: J,
|
|
137
133
|
getAccessToken: C,
|
|
138
|
-
getAgentKey:
|
|
134
|
+
getAgentKey: T,
|
|
139
135
|
api: U,
|
|
140
136
|
uploadedTmpDocumentUrl: L,
|
|
141
137
|
curatedDocuments: P,
|
|
142
|
-
getActiveDocumentJson:
|
|
138
|
+
getActiveDocumentJson: O,
|
|
143
139
|
hideAddApi: A
|
|
144
140
|
};
|
|
145
141
|
}
|
|
146
|
-
function
|
|
147
|
-
let e = f(
|
|
142
|
+
function k() {
|
|
143
|
+
let e = f(T);
|
|
148
144
|
if (!e) throw Error("No state provided.");
|
|
149
145
|
return e;
|
|
150
146
|
}
|
|
151
147
|
//#endregion
|
|
152
|
-
export {
|
|
148
|
+
export { T as STATE_SYMBOL, O as createState, k as useState };
|
|
153
149
|
|
|
154
150
|
//# sourceMappingURL=state.js.map
|
package/dist/state/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","names":[],"sources":["../../src/state/state.ts"],"sourcesContent":["import { Chat } from '@ai-sdk/vue'\nimport { type ModalState, useModal } from '@scalar/components'\nimport { redirectToProxy } from '@scalar/helpers/url/redirect-to-proxy'\nimport { type ApiReferenceConfigurationRaw, apiReferenceConfigurationSchema } from '@scalar/types/api-reference'\nimport { useToasts } from '@scalar/use-toasts'\nimport { type WorkspaceStore, createWorkspaceStore } from '@scalar/workspace-store/client'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { createWorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { DefaultChatTransport, type UIDataTypes, type UIMessage, lastAssistantMessageIsCompleteWithToolCalls } from 'ai'\nimport { n } from 'neverpanic'\nimport { type ComputedRef, type InjectionKey, type Ref, computed, inject, reactive, ref, watch } from 'vue'\n\nimport { type Api, createApi, createAuthorizationHeaders } from '@/api'\nimport { executeRequestTool } from '@/client-tools/execute-request'\nimport { URLS } from '@/consts/urls'\nimport { createError } from '@/entities'\nimport type { ApiMetadata } from '@/entities/registry/document'\nimport type {\n ASK_FOR_AUTHENTICATION_TOOL_NAME,\n AskForAuthenticationInput,\n} from '@/entities/tools/ask-for-authentication'\nimport {\n EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME,\n type ExecuteClientSideRequestToolInput,\n type ExecuteClientSideRequestToolOutput,\n} from '@/entities/tools/execute-request'\nimport type {\n GET_MINI_OPENAPI_SPEC_TOOL_NAME,\n GetMiniOpenAPIDocToolInput,\n GetMiniOpenAPIDocToolOutput,\n} from '@/entities/tools/get-mini-openapi-spec'\nimport type {\n GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME,\n GetOpenAPISpecsSummaryToolOutput,\n} from '@/entities/tools/get-openapi-spec-summary'\nimport { createDocumentSettings } from '@/helpers'\nimport { useTermsAndConditions } from '@/hooks/use-term-and-conditions'\nimport { removeTmpDocFromLocalStorage } from '@/hooks/use-upload-tmp-document'\nimport { persistencePlugin } from '@/plugins/persistance'\nimport { loadDocument } from '@/registry/add-documents-to-store'\nimport { createDocumentName } from '@/registry/create-document-name'\nimport type { ChatMode } from '@/types'\n\nexport type RegistryDocument = {\n namespace: string\n slug: string\n}\n\nexport type Tools = {\n [GET_MINI_OPENAPI_SPEC_TOOL_NAME]: {\n input: GetMiniOpenAPIDocToolInput\n output: GetMiniOpenAPIDocToolOutput\n }\n [EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME]: {\n input: ExecuteClientSideRequestToolInput\n output: ExecuteClientSideRequestToolOutput\n }\n [GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME]: {\n input: object\n output: GetOpenAPISpecsSummaryToolOutput\n }\n [ASK_FOR_AUTHENTICATION_TOOL_NAME]: {\n input: AskForAuthenticationInput\n output: unknown\n }\n}\n\nexport const STATE_SYMBOL: InjectionKey<State> = Symbol('STATE_SYMBOL')\n\nconst { toast } = useToasts()\n\ntype State = {\n prompt: Ref<string>\n chat: Chat<UIMessage<unknown, UIDataTypes, Tools>>\n workspaceStore: WorkspaceStore\n loading: ComputedRef<boolean>\n settingsModal: ModalState\n eventBus: WorkspaceEventBus\n proxyUrl: ComputedRef<string>\n proxyUrlRaw: Ref<string | undefined>\n config: ComputedRef<ApiReferenceConfigurationRaw>\n registryUrl: string\n dashboardUrl: string\n baseUrl: string\n isLoggedIn?: Ref<boolean>\n registryDocuments: Ref<ApiMetadata[]>\n pendingDocuments: Record<string, boolean>\n mode: ChatMode\n terms: { accepted: Ref<boolean>; accept: () => void }\n addDocument: (document: { namespace: string; slug: string; removable?: boolean; tmp?: boolean }) => Promise<void>\n addDocumentAsync: (document: { namespace: string; slug: string; removable?: boolean }) => Promise<void>\n removeDocument: (document: { namespace: string; slug: string }) => void\n getAccessToken?: () => string\n getAgentKey?: () => string\n api: Api\n uploadedTmpDocumentUrl: Ref<string | undefined>\n curatedDocuments: Ref<ApiMetadata[]>\n getActiveDocumentJson?: () => string\n hideAddApi?: boolean\n}\n\nfunction createChat({\n registryDocuments,\n workspaceStore,\n baseUrl,\n proxyUrl,\n getAccessToken,\n getAgentKey,\n}: {\n registryDocuments: Ref<ApiMetadata[]>\n workspaceStore: WorkspaceStore\n baseUrl: string\n proxyUrl: ComputedRef<string>\n getAccessToken?: () => string\n getAgentKey?: () => string\n}) {\n const chat = new Chat<UIMessage<unknown, UIDataTypes, Tools>>({\n sendAutomaticallyWhen: lastAssistantMessageIsCompleteWithToolCalls,\n transport: new DefaultChatTransport({\n api: redirectToProxy(proxyUrl.value, `${baseUrl}/vector/openapi/chat`),\n headers: () => createAuthorizationHeaders({ getAccessToken, getAgentKey }),\n body: () => ({\n registryDocuments: registryDocuments.value,\n documentSettings: createDocumentSettings(workspaceStore),\n }),\n }),\n async onToolCall({ toolCall }): Promise<any> {\n if (toolCall.dynamic) {\n return\n }\n\n if (\n toolCall.toolName === EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME &&\n toolCall.input.method.toLowerCase() === 'get'\n ) {\n await executeRequestTool({\n documentSettings: createDocumentSettings(workspaceStore),\n input: toolCall.input,\n toolCallId: toolCall.toolCallId,\n chat,\n proxyUrl: proxyUrl.value,\n })\n }\n },\n })\n\n return chat\n}\n\nexport function createState({\n initialRegistryDocuments,\n registryUrl,\n dashboardUrl,\n baseUrl,\n mode,\n isLoggedIn,\n getAccessToken,\n getAgentKey,\n getActiveDocumentJson,\n prefilledMessageRef,\n hideAddApi,\n}: {\n initialRegistryDocuments: { namespace: string; slug: string }[]\n registryUrl: string\n dashboardUrl: string\n baseUrl: string\n mode: ChatMode\n isLoggedIn?: Ref<boolean>\n getAccessToken?: () => string\n getAgentKey?: () => string\n getActiveDocumentJson?: () => string\n prefilledMessageRef?: Ref<string>\n hideAddApi?: boolean\n}): State {\n const prompt = ref<State['prompt']['value']>(prefilledMessageRef?.value ?? '')\n const registryDocuments = ref<ApiMetadata[]>([])\n const pendingDocuments = reactive<Record<string, boolean>>({})\n const curatedDocuments = ref<ApiMetadata[]>([])\n const proxyUrlRaw = ref<State['proxyUrlRaw']['value']>(URLS.DEFAULT_PROXY_URL)\n const proxyUrl = computed(() => proxyUrlRaw.value?.trim() || URLS.DEFAULT_PROXY_URL)\n const uploadedTmpDocumentUrl = ref<string>()\n const terms = useTermsAndConditions()\n\n const eventBus = createWorkspaceEventBus()\n const workspaceStore = createWorkspaceStore({\n plugins: [\n persistencePlugin({\n persistAuth: true,\n }),\n ],\n })\n\n const config = computed(() =>\n apiReferenceConfigurationSchema.parse({\n proxyUrl: proxyUrl.value,\n persistAuth: true,\n }),\n )\n\n const chat = createChat({\n registryDocuments,\n workspaceStore,\n baseUrl,\n proxyUrl,\n getAccessToken,\n getAgentKey,\n })\n\n const api = createApi({\n baseUrl,\n proxyUrl,\n getAccessToken,\n getAgentKey,\n })\n\n const loading = computed(\n () =>\n chat.status === 'submitted' ||\n (chat.status === 'streaming' && !chat.lastMessage?.parts.some((part) => part.type === 'text')),\n )\n\n watch(\n () => chat.status,\n () => {\n if (chat.status === 'streaming') {\n prompt.value = ''\n }\n },\n )\n\n if (prefilledMessageRef) {\n watch(prefilledMessageRef, async (val) => {\n if (val) {\n prompt.value = val\n if (terms.accepted.value) {\n await chat.sendMessage({ text: prompt.value })\n }\n }\n })\n }\n\n const settingsModal = useModal()\n\n async function addDocument({\n namespace,\n slug,\n removable = true,\n tmp = false,\n }: {\n namespace: string\n slug: string\n removable?: boolean\n tmp?: boolean\n }) {\n const matchingDoc = registryDocuments.value.find((doc) => doc.namespace === namespace && doc.slug === slug)\n\n if (matchingDoc) {\n return\n }\n\n const identifier = `@${namespace}/${slug}`\n\n pendingDocuments[identifier] = true\n\n const loadDocumentResult = await loadDocument({\n namespace,\n slug,\n workspaceStore,\n registryUrl,\n registryDocuments,\n config: config.value,\n api,\n removable,\n })\n\n pendingDocuments[identifier] = false\n\n if (!loadDocumentResult.success) {\n /**\n * If we are unable to load a document, we just remove it\n * from tmp local storage, do not warn the user.\n */\n if (tmp) {\n removeTmpDocFromLocalStorage()\n throw loadDocumentResult.error\n }\n\n console.warn('[AGENT]: Unable to load document', loadDocumentResult.error)\n toast(`Unable to load the document @${namespace}/${slug}`, 'warn')\n throw loadDocumentResult.error\n }\n }\n\n /**\n * Waits for document to be available in embeddings\n * and adds to the list\n */\n async function addDocumentAsync({\n namespace,\n slug,\n removable = true,\n }: {\n namespace: string\n slug: string\n removable?: boolean\n }) {\n const matchingDoc = registryDocuments.value.find((doc) => doc.namespace === namespace && doc.slug === slug)\n\n if (matchingDoc) {\n return\n }\n\n const identifier = `@${namespace}/${slug}`\n\n pendingDocuments[identifier] = true\n\n const embeddingStatusResponse = await n.fromUnsafe(\n () =>\n fetch(redirectToProxy(proxyUrl.value, `${baseUrl}/vector/registry/embeddings/${namespace}/${slug}`), {\n method: 'GET',\n }),\n (originalError) => createError('FAILED_TO_GET_EMBEDDING_STATUS', originalError),\n )\n\n if (embeddingStatusResponse.success && embeddingStatusResponse.data.ok) {\n const loadDocumentResult = await loadDocument({\n namespace,\n slug,\n workspaceStore,\n registryUrl,\n registryDocuments,\n config: config.value,\n api,\n removable,\n })\n\n if (!loadDocumentResult.success) {\n console.warn('[AGENT]: Unable to load document', loadDocumentResult.error)\n toast(`Unable to load the document @${namespace}/${slug}`, 'warn')\n }\n } else {\n console.warn('[AGENT]: Document could not be embedded')\n toast(`Unable to embed the document @${namespace}/${slug}`, 'warn')\n }\n\n pendingDocuments[identifier] = false\n }\n\n function removeDocument({ namespace, slug }: { namespace: string; slug: string }) {\n registryDocuments.value = registryDocuments.value.filter(\n (doc) => !(doc.namespace === namespace && doc.slug === slug),\n )\n\n workspaceStore.deleteDocument(createDocumentName(namespace, slug))\n }\n\n initialRegistryDocuments.forEach(({ namespace, slug }) => addDocument({ namespace, slug, removable: false }))\n\n return {\n prompt,\n chat,\n workspaceStore,\n eventBus,\n loading,\n settingsModal,\n config,\n registryUrl,\n dashboardUrl,\n baseUrl,\n registryDocuments,\n pendingDocuments,\n proxyUrl,\n proxyUrlRaw,\n mode,\n terms,\n isLoggedIn,\n addDocument,\n addDocumentAsync,\n removeDocument,\n getAccessToken,\n getAgentKey,\n api,\n uploadedTmpDocumentUrl,\n curatedDocuments,\n getActiveDocumentJson,\n hideAddApi,\n }\n}\n\nexport function useState() {\n const state = inject(STATE_SYMBOL)\n\n if (!state) {\n throw new Error('No state provided.')\n }\n\n return state\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state.js","names":[],"sources":["../../src/state/state.ts"],"sourcesContent":["import { Chat } from '@ai-sdk/vue'\nimport { type ModalState, useModal } from '@scalar/components'\nimport { type ApiReferenceConfigurationRaw, apiReferenceConfigurationSchema } from '@scalar/types/api-reference'\nimport { useToasts } from '@scalar/use-toasts'\nimport { type WorkspaceStore, createWorkspaceStore } from '@scalar/workspace-store/client'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { createWorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { DefaultChatTransport, type UIDataTypes, type UIMessage, lastAssistantMessageIsCompleteWithToolCalls } from 'ai'\nimport { n } from 'neverpanic'\nimport { type ComputedRef, type InjectionKey, type Ref, computed, inject, reactive, ref, watch } from 'vue'\n\nimport { type Api, createApi, createAuthorizationHeaders } from '@/api'\nimport { executeRequestTool } from '@/client-tools/execute-request'\nimport { URLS } from '@/consts/urls'\nimport { createError } from '@/entities'\nimport type { ApiMetadata } from '@/entities/registry/document'\nimport type {\n ASK_FOR_AUTHENTICATION_TOOL_NAME,\n AskForAuthenticationInput,\n} from '@/entities/tools/ask-for-authentication'\nimport {\n EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME,\n type ExecuteClientSideRequestToolInput,\n type ExecuteClientSideRequestToolOutput,\n} from '@/entities/tools/execute-request'\nimport type {\n GetOpenAPISpecsSummaryToolOutput,\n SUMMARIZE_OPENAPI_SPECS_TOOL_NAME,\n} from '@/entities/tools/get-openapi-specs-summary'\nimport type {\n SEARCH_OPENAPI_OPERATIONS_TOOL_NAME,\n SearchOpenAPIOperationsToolInput,\n SearchOpenAPIOperationsToolOutput,\n} from '@/entities/tools/search-openapi-operations'\nimport { createDocumentSettings } from '@/helpers'\nimport { useTermsAndConditions } from '@/hooks/use-term-and-conditions'\nimport { removeTmpDocFromLocalStorage } from '@/hooks/use-upload-tmp-document'\nimport { persistencePlugin } from '@/plugins/persistance'\nimport { loadDocument } from '@/registry/add-documents-to-store'\nimport { createDocumentName } from '@/registry/create-document-name'\nimport type { ChatMode } from '@/types'\n\nexport type RegistryDocument = {\n namespace: string\n slug: string\n}\n\nexport type Tools = {\n [SEARCH_OPENAPI_OPERATIONS_TOOL_NAME]: {\n input: SearchOpenAPIOperationsToolInput\n output: SearchOpenAPIOperationsToolOutput\n }\n [EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME]: {\n input: ExecuteClientSideRequestToolInput\n output: ExecuteClientSideRequestToolOutput\n }\n [SUMMARIZE_OPENAPI_SPECS_TOOL_NAME]: {\n input: object\n output: GetOpenAPISpecsSummaryToolOutput\n }\n [ASK_FOR_AUTHENTICATION_TOOL_NAME]: {\n input: AskForAuthenticationInput\n output: unknown\n }\n}\n\nexport const STATE_SYMBOL: InjectionKey<State> = Symbol('STATE_SYMBOL')\n\nconst { toast } = useToasts()\n\ntype State = {\n prompt: Ref<string>\n chat: Chat<UIMessage<unknown, UIDataTypes, Tools>>\n workspaceStore: WorkspaceStore\n loading: ComputedRef<boolean>\n settingsModal: ModalState\n eventBus: WorkspaceEventBus\n proxyUrl: ComputedRef<string>\n proxyUrlRaw: Ref<string | undefined>\n config: ComputedRef<ApiReferenceConfigurationRaw>\n registryUrl: string\n dashboardUrl: string\n baseUrl: string\n platformProxyUrl: string\n isLoggedIn?: Ref<boolean>\n registryDocuments: Ref<ApiMetadata[]>\n pendingDocuments: Record<string, boolean>\n mode: ChatMode\n terms: { accepted: Ref<boolean>; accept: () => void }\n addDocument: (document: { namespace: string; slug: string; removable?: boolean; tmp?: boolean }) => Promise<void>\n addDocumentAsync: (document: { namespace: string; slug: string; removable?: boolean }) => Promise<void>\n removeDocument: (document: { namespace: string; slug: string }) => void\n getAccessToken?: () => string\n getAgentKey?: () => string\n api: Api\n uploadedTmpDocumentUrl: Ref<string | undefined>\n curatedDocuments: Ref<ApiMetadata[]>\n getActiveDocumentJson?: () => string\n hideAddApi?: boolean\n}\n\nfunction createChat({\n registryDocuments,\n workspaceStore,\n baseUrl,\n proxyUrl,\n getAccessToken,\n getAgentKey,\n}: {\n registryDocuments: Ref<ApiMetadata[]>\n workspaceStore: WorkspaceStore\n baseUrl: string\n proxyUrl: ComputedRef<string>\n getAccessToken?: () => string\n getAgentKey?: () => string\n}) {\n const chat = new Chat<UIMessage<unknown, UIDataTypes, Tools>>({\n sendAutomaticallyWhen: lastAssistantMessageIsCompleteWithToolCalls,\n transport: new DefaultChatTransport({\n api: `${baseUrl}/vector/openapi/chat`,\n headers: () => createAuthorizationHeaders({ getAccessToken, getAgentKey }),\n body: () => ({\n registryDocuments: registryDocuments.value,\n }),\n }),\n async onToolCall({ toolCall }): Promise<any> {\n if (toolCall.dynamic) {\n return\n }\n\n if (\n toolCall.toolName === EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME &&\n toolCall.input.method.toLowerCase() === 'get'\n ) {\n await executeRequestTool({\n documentSettings: createDocumentSettings(workspaceStore),\n input: toolCall.input,\n toolCallId: toolCall.toolCallId,\n chat,\n proxyUrl: proxyUrl.value,\n })\n }\n },\n })\n\n return chat\n}\n\nexport function createState({\n initialRegistryDocuments,\n registryUrl,\n dashboardUrl,\n platformProxyUrl,\n baseUrl,\n mode,\n isLoggedIn,\n getAccessToken,\n getAgentKey,\n getActiveDocumentJson,\n prefilledMessageRef,\n hideAddApi,\n}: {\n initialRegistryDocuments: { namespace: string; slug: string }[]\n registryUrl: string\n dashboardUrl: string\n platformProxyUrl: string\n baseUrl: string\n mode: ChatMode\n isLoggedIn?: Ref<boolean>\n getAccessToken?: () => string\n getAgentKey?: () => string\n getActiveDocumentJson?: () => string\n prefilledMessageRef?: Ref<string>\n hideAddApi?: boolean\n}): State {\n const prompt = ref<State['prompt']['value']>(prefilledMessageRef?.value ?? '')\n const registryDocuments = ref<ApiMetadata[]>([])\n const pendingDocuments = reactive<Record<string, boolean>>({})\n const curatedDocuments = ref<ApiMetadata[]>([])\n const proxyUrlRaw = ref<State['proxyUrlRaw']['value']>(URLS.DEFAULT_PROXY_URL)\n const proxyUrl = computed(() => proxyUrlRaw.value?.trim() || URLS.DEFAULT_PROXY_URL)\n const uploadedTmpDocumentUrl = ref<string>()\n const terms = useTermsAndConditions()\n\n const eventBus = createWorkspaceEventBus()\n const workspaceStore = createWorkspaceStore({\n plugins: [\n persistencePlugin({\n persistAuth: true,\n }),\n ],\n })\n\n const config = computed(() =>\n apiReferenceConfigurationSchema.parse({\n proxyUrl: proxyUrl.value,\n persistAuth: true,\n }),\n )\n\n const chat = createChat({\n registryDocuments,\n workspaceStore,\n baseUrl,\n proxyUrl,\n getAccessToken,\n getAgentKey,\n })\n\n const api = createApi({\n baseUrl,\n getAccessToken,\n getAgentKey,\n })\n\n const loading = computed(\n () =>\n chat.status === 'submitted' ||\n (chat.status === 'streaming' && !chat.lastMessage?.parts.some((part) => part.type === 'text')),\n )\n\n watch(\n () => chat.status,\n () => {\n if (chat.status === 'streaming') {\n prompt.value = ''\n }\n },\n )\n\n if (prefilledMessageRef) {\n watch(prefilledMessageRef, async (val) => {\n if (val) {\n prompt.value = val\n if (terms.accepted.value) {\n await chat.sendMessage({ text: prompt.value })\n }\n }\n })\n }\n\n const settingsModal = useModal()\n\n async function addDocument({\n namespace,\n slug,\n removable = true,\n tmp = false,\n }: {\n namespace: string\n slug: string\n removable?: boolean\n tmp?: boolean\n }) {\n const matchingDoc = registryDocuments.value.find((doc) => doc.namespace === namespace && doc.slug === slug)\n\n if (matchingDoc) {\n return\n }\n\n const identifier = `@${namespace}/${slug}`\n\n pendingDocuments[identifier] = true\n\n const loadDocumentResult = await loadDocument({\n namespace,\n slug,\n workspaceStore,\n registryUrl,\n registryDocuments,\n config: config.value,\n api,\n removable,\n })\n\n pendingDocuments[identifier] = false\n\n if (!loadDocumentResult.success) {\n /**\n * If we are unable to load a document, we just remove it\n * from tmp local storage, do not warn the user.\n */\n if (tmp) {\n removeTmpDocFromLocalStorage()\n throw loadDocumentResult.error\n }\n\n console.warn('[AGENT]: Unable to load document', loadDocumentResult.error)\n toast(`Unable to load the document @${namespace}/${slug}`, 'warn')\n throw loadDocumentResult.error\n }\n }\n\n /**\n * Waits for document to be available in embeddings\n * and adds to the list\n */\n async function addDocumentAsync({\n namespace,\n slug,\n removable = true,\n }: {\n namespace: string\n slug: string\n removable?: boolean\n }) {\n const matchingDoc = registryDocuments.value.find((doc) => doc.namespace === namespace && doc.slug === slug)\n\n if (matchingDoc) {\n return\n }\n\n const identifier = `@${namespace}/${slug}`\n\n pendingDocuments[identifier] = true\n\n const embeddingStatusResponse = await n.fromUnsafe(\n () =>\n fetch(`${baseUrl}/vector/registry/embeddings/${namespace}/${slug}`, {\n method: 'GET',\n }),\n (originalError) => createError('FAILED_TO_GET_EMBEDDING_STATUS', originalError),\n )\n\n if (embeddingStatusResponse.success && embeddingStatusResponse.data.ok) {\n const loadDocumentResult = await loadDocument({\n namespace,\n slug,\n workspaceStore,\n registryUrl,\n registryDocuments,\n config: config.value,\n api,\n removable,\n })\n\n if (!loadDocumentResult.success) {\n console.warn('[AGENT]: Unable to load document', loadDocumentResult.error)\n toast(`Unable to load the document @${namespace}/${slug}`, 'warn')\n }\n } else {\n console.warn('[AGENT]: Document could not be embedded')\n toast(`Unable to embed the document @${namespace}/${slug}`, 'warn')\n }\n\n pendingDocuments[identifier] = false\n }\n\n function removeDocument({ namespace, slug }: { namespace: string; slug: string }) {\n registryDocuments.value = registryDocuments.value.filter(\n (doc) => !(doc.namespace === namespace && doc.slug === slug),\n )\n\n workspaceStore.deleteDocument(createDocumentName(namespace, slug))\n }\n\n initialRegistryDocuments.forEach(({ namespace, slug }) => addDocument({ namespace, slug, removable: false }))\n\n return {\n prompt,\n chat,\n workspaceStore,\n eventBus,\n loading,\n settingsModal,\n config,\n registryUrl,\n dashboardUrl,\n platformProxyUrl,\n baseUrl,\n registryDocuments,\n pendingDocuments,\n proxyUrl,\n proxyUrlRaw,\n mode,\n terms,\n isLoggedIn,\n addDocument,\n addDocumentAsync,\n removeDocument,\n getAccessToken,\n getAgentKey,\n api,\n uploadedTmpDocumentUrl,\n curatedDocuments,\n getActiveDocumentJson,\n hideAddApi,\n }\n}\n\nexport function useState() {\n const state = inject(STATE_SYMBOL)\n\n if (!state) {\n throw new Error('No state provided.')\n }\n\n return state\n}\n"],"mappings":"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"}
|
package/dist/style.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.authenticationProvided[data-v-e3416cd5]{color:var(--scalar-color-1);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.authenticationRequired[data-v-d15ef40b]{color:var(--scalar-color-blue);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.askForAuthentication[data-v-8af07610]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);width:100%;box-shadow:0 var(--scalar-border-width) 0 var(--scalar-background-1), 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);flex-direction:column;margin-bottom:12px;padding:0;display:flex;position:relative}.authContent[data-v-8af07610]{grid-template-rows:0fr;width:100%;max-width:520px;min-height:0;margin:auto;transition:grid-template-rows .2s ease-out;display:grid;overflow:hidden}.authContentInner[data-v-8af07610]>div{margin:36px 0 48px}.authContent[data-v-8af07610] .markdown{margin-bottom:0!important}.askForAuthentication.open .authContent[data-v-8af07610]{grid-template-rows:1fr}.continueButton[data-v-8af07610]{align-self:flex-end}.toggleButton[data-v-8af07610]{cursor:pointer;text-align:left;color:var(--scalar-color-3);border-radius:var(--scalar-radius-lg);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex;position:relative}.authContentInner[data-v-8af07610]{min-height:0;overflow:hidden}.authorizeButton[data-v-8af07610]{z-index:1;gap:5px;display:flex;background:var(--scalar-color-blue)!important;color:#fff!important;margin:0!important}.autosendPaused[data-v-d08225db]{color:var(--scalar-color-blue);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.playIcon[data-v-5749c429]{z-index:1;background:var(--scalar-background-1);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:4px;display:flex;position:relative}.playIcon[data-v-5749c429]:before{content:"";box-sizing:border-box;border:1.75px solid;border-bottom-color:#0000;border-image:initial;background:var(--scalar-background-1);border-radius:50%;width:16px;height:16px;animation:.42s linear infinite rotation-5749c429;display:inline-block;position:absolute}.buildingRequest[data-v-5749c429]{color:var(--scalar-color-blue);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.buildingRequest svg[data-v-5749c429]{z-index:1;border-radius:50%;width:100%;height:100%}@keyframes rotation-5749c429{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.requestApproved[data-v-bb311586]{color:var(--scalar-color-green);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.requestFailed[data-v-bc27e533]{color:var(--scalar-color-red);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.requestFailedIcon[data-v-bc27e533]{border-radius:50%;width:16px;height:16px;padding:4px;box-shadow:inset 0 0 0 1.5px}.requestRejected[data-v-9803a54c]{color:var(--scalar-color-red);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.requestSuccess[data-v-acc2c0d8]{color:var(--scalar-color-1);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.light-mode .bg-preview[data-v-92f84612]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23000' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E")}.dark-mode .bg-preview[data-v-92f84612]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23FFF' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E")}.playIcon[data-v-65dc6dfb]{z-index:1;background:var(--scalar-background-1);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:4px;display:flex;position:relative}.playIcon[data-v-65dc6dfb]:before{content:"";box-sizing:border-box;border:1.75px solid;border-bottom-color:#0000;border-image:initial;background:var(--scalar-background-1);border-radius:50%;width:16px;height:16px;animation:.42s linear infinite rotation-65dc6dfb;display:inline-block;position:absolute}.sendingRequest[data-v-65dc6dfb]{color:var(--scalar-color-blue);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.sendingRequest svg[data-v-65dc6dfb]{z-index:1;border-radius:50%;width:100%;height:100%}@keyframes rotation-65dc6dfb{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.requestHeaderContainer[data-v-0eb5f95d]{justify-content:space-between;align-items:center;padding:0 5px;display:flex}.requestPreview[data-v-0eb5f95d]{border-radius:12px;flex-direction:column;width:100%;display:flex;position:relative}.requestContent[data-v-0eb5f95d]{grid-template-rows:0fr;min-height:0;transition:grid-template-rows .2s ease-out;display:grid;overflow:hidden}.requestPreview.open .requestContent[data-v-0eb5f95d]{grid-template-rows:1fr}.requestPreview.succeeded[data-v-0eb5f95d]{padding:0}.requestContentInner[data-v-0eb5f95d]{min-height:0;overflow:hidden}.code[data-v-0eb5f95d]{font-size:var(--scalar-font-size-4);background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1));border-radius:12px;flex-direction:column;margin-bottom:12px;display:flex;overflow:hidden}.dark-mode .code[data-v-0eb5f95d]{background:var(--scalar-background-2)}.code h1[data-v-0eb5f95d]{font-size:var(--scalar-font-size-3);color:var(--scalar-color-3);padding:8px}.code[data-v-0eb5f95d] .codeBlock{max-height:calc(50vh - 100px);padding-top:0}.autosendContainer[data-v-0eb5f95d]{justify-content:space-between;display:flex}.sendButton[data-v-0eb5f95d]{background:var(--scalar-color-blue);color:#fff;font-weight:var(--scalar-semibold);padding:5px 10px}.sendButton[data-v-0eb5f95d]:hover,.sendButton[data-v-0eb5f95d]:active{background:color-mix(in srgb, var(--scalar-color-blue), black 10%);color:#fff!important}.toggleButton[data-v-0eb5f95d]{cursor:pointer;text-align:left;color:var(--scalar-color-3);border-radius:var(--scalar-radius-lg);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex;position:relative}.toggleButton[data-v-0eb5f95d]:hover{text-decoration:underline}.executeRequestTool[data-v-3e825a81]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);box-shadow:0 var(--scalar-border-width) 0 var(--scalar-background-1), 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.tool[data-v-3e825a81]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:15px;margin-bottom:20px;padding:15px}.contextItem[data-v-b6e5aa96]{color:var(--scalar-color-2);cursor:pointer;vertical-align:middle;background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1));border-radius:12px;align-items:center;padding:5px 10px;font-size:10px;display:flex}.shimmer[data-v-b6e5aa96]{background:var(--scalar-background-2);background-image:linear-gradient(90deg, #202020 0%, var(--scalar-background-2) 40%, var(--scalar-background-3) 80%);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer-b6e5aa96}.light-mode .shimmer[data-v-b6e5aa96]{background:var(--scalar-background-2);background-image:linear-gradient(90deg, #fafafa 0%, var(--scalar-background-2) 40%, var(--scalar-background-3) 80%);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer-b6e5aa96}@keyframes shimmer-b6e5aa96{0%{background-position:200% 0}to{background-position:-200% 0}}.playIcon[data-v-653c66b3]{z-index:1;background:var(--scalar-background-1);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:4px;display:flex;position:relative}.playIcon[data-v-653c66b3]:before{content:"";box-sizing:border-box;border:1.5px solid;border-bottom-color:#0000;border-image:initial;background:var(--scalar-background-1);border-radius:50%;width:16px;height:16px;animation:.42s linear infinite rotation-653c66b3;display:inline-block;position:absolute}.sendingRequest[data-v-653c66b3]{color:var(--scalar-color-2);font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3);align-items:center;gap:6px;margin-bottom:10px;display:flex}.sendingRequest svg[data-v-653c66b3]{z-index:1;border-radius:50%;width:100%;height:100%}@keyframes rotation-653c66b3{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.operations[data-v-ecee6203]{align-items:center;gap:5px;margin-bottom:12px;display:flex}.operations[data-v-ecee6203]:empty{margin-bottom:-12px}.playIcon[data-v-9d9724d2]{z-index:1;background:var(--scalar-background-1);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:4px;display:flex;position:relative}.playIcon[data-v-9d9724d2]:before{content:"";box-sizing:border-box;border:1.5px solid;border-bottom-color:#0000;border-image:initial;background:var(--scalar-background-1);border-radius:50%;width:16px;height:16px;animation:.42s linear infinite rotation-9d9724d2;display:inline-block;position:absolute}.loadingApiSpecs[data-v-9d9724d2]{color:var(--scalar-color-2);font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3);align-items:center;gap:6px;margin-bottom:10px;display:flex}.loadingApiSpecs svg[data-v-9d9724d2]{z-index:1;border-radius:50%;width:100%;height:100%}@keyframes rotation-9d9724d2{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.catalogModal .scalar-modal-body{flex-direction:column;display:flex}.searchInput[data-v-bc24f891]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:var(--scalar-radius-lg);margin-bottom:10px}.catalog[data-v-bc24f891]{font-size:var(--scalar-font-size-3);grid-template-columns:1fr 1fr;gap:10px;display:grid;overflow-y:scroll}.item[data-v-bc24f891]{background-color:var(--scalar-background-2);border-radius:var(--scalar-radius-lg);align-items:center;gap:10px;padding:15px;transition:background-color .16s;display:flex}.item[data-v-bc24f891]:hover{background-color:color-mix(in srgb, var(--scalar-background-3), transparent 40%)!important}.left[data-v-bc24f891]{align-items:center}.right[data-v-bc24f891]{flex-direction:column;display:flex}.logo[data-v-bc24f891]{width:25px}.item-top[data-v-bc24f891]{gap:10px;display:flex}.version[data-v-bc24f891]{background:var(--scalar-background-3);border-radius:var(--scalar-radius);font-size:var(--scalar-font-size-5);color:var(--scalar-color-3);padding:2px 5px}.description[data-v-bc24f891]{color:var(--scalar-color-2)}.dropdown-item[data-v-2d142bb5]{align-items:center;gap:10px;display:flex}.approvalSection[data-v-a7e6c699]{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 95%);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;width:100%;margin-bottom:-16px;padding:8px 8px 24px 12px;display:flex;position:absolute;top:0;transform:translateY(calc(16px - 100%))}.approvalText[data-v-a7e6c699]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3)}.approveContainer[data-v-a7e6c699]{gap:5px;display:flex}.actionButton[data-v-a7e6c699]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3);border-radius:50px;align-items:center;padding:6px 12px;display:flex}.rejectButton[data-v-a7e6c699]{color:#fff;background:var(--scalar-color-red)}.rejectButton[data-v-a7e6c699]:hover,.rejectButton[data-v-a7e6c699]:active{background:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 10%);color:#fff!important}.approveButton[data-v-a7e6c699]{color:#fff;background:var(--scalar-color-blue)}.approveButton[data-v-a7e6c699]:hover,.approveButton[data-v-a7e6c699]:active{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 10%);color:#fff!important}.error[data-v-63a481da]{border:var(--scalar-border-width) solid var(--scalar-border-color);background:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 95%);font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3);border-radius:16px 16px 0 0;align-items:center;margin-bottom:-16px;padding:8px 8px 24px 12px;display:flex;position:absolute;top:0;transform:translateY(calc(16px - 100%))}.freeMessagesInfoSection[data-v-913a3815]{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 95%);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;width:100%;margin-bottom:-16px;padding:8px 8px 24px 12px;display:flex;position:relative}.infoText[data-v-913a3815]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3)}.actionsContainer[data-v-913a3815]{align-items:center;gap:8px;display:flex}.actionButton[data-v-913a3815]{font-weight:var(--scalar-semibold);border-radius:50px;align-items:center;padding:6px 12px;display:flex}.upgradeButton[data-v-913a3815]{color:#fff;font-size:var(--scalar-font-size-3);background:var(--scalar-color-blue)}.upgradeButton[data-v-913a3815]:hover,.upgradeButton[data-v-913a3815]:active{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 10%);color:#fff!important}.closeButton[data-v-913a3815]{width:28px;height:28px;color:var(--scalar-color-2);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.closeButton[data-v-913a3815]:hover{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 80%);color:var(--scalar-color-1)}.paymentSection[data-v-91e028d5]{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 95%);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;width:100%;margin-bottom:-16px;padding:8px 8px 24px 12px;display:flex;position:absolute;top:0;transform:translateY(calc(16px - 100%))}.approvalText[data-v-91e028d5]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3)}.paymentContainer[data-v-91e028d5]{gap:5px;display:flex}.actionButton[data-v-91e028d5]{font-weight:var(--scalar-semibold);border-radius:50px;align-items:center;padding:6px 12px;display:flex}.rejectButton[data-v-91e028d5]{color:#fff;background:var(--scalar-color-red)}.rejectButton[data-v-91e028d5]:hover,.rejectButton[data-v-91e028d5]:active{background:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 10%);color:#fff!important}.approveButton[data-v-91e028d5]{color:#fff;font-size:var(--scalar-font-size-3);background:var(--scalar-color-blue)}.approveButton[data-v-91e028d5]:hover,.approveButton[data-v-91e028d5]:active{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 10%);color:#fff!important}.paymentInfo[data-v-91e028d5]{width:300px;box-shadow:var(--scalar-shadow-2);background:var(--scalar-background-1);pointer-events:none;opacity:0;border-radius:16px;padding:12px;transition:all .2s ease-in-out;position:absolute;bottom:70px;right:0;transform:translateY(-5px)}.paymentInfo h3[data-v-91e028d5]{font-size:var(--scalar-font-size-1);font-weight:var(--scalar-bold);margin-bottom:18px}.paymentInfo h3 span[data-v-91e028d5]{font-size:var(--scalar-font-size-2)}.dark-mode .paymentInfo[data-v-91e028d5]{background:var(--scalar-background-2)}.paymentContainer:hover .paymentInfo[data-v-91e028d5]{opacity:1;transform:translate(0,0)}.paymentInfoItem[data-v-91e028d5]{font-size:var(--scalar-font-size-3);color:var(--scalar-color-2);font-weight:var(--scalar-semibold);justify-content:space-between;margin-top:8px;display:flex}.paymentInfoSection[data-v-91e028d5]:not(:last-child){border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);padding-bottom:8px}.searchItem[data-v-7945f74c]{font-size:var(--scalar-font-size-3);align-items:center;gap:9px;padding:8px 10px;display:flex}.searchInput[data-v-7945f74c]{margin-bottom:5px}.searchItem[data-v-7945f74c]:hover{background:var(--scalar-background-2)}.searchItemLogo[data-v-7945f74c]{width:15px}.searchIcon[data-v-7945f74c]{margin-right:7px}.searchResultsEmpty[data-v-7945f74c]{font-size:var(--scalar-font-size-3);color:var(--scalar-color-2);margin:10px}.uploadSection[data-v-9551cf83]{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 95%);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;width:100%;margin-bottom:-16px;padding:8px 8px 24px 12px;display:flex;position:absolute;top:0;transform:translateY(calc(16px - 100%))}.uploadSection.error[data-v-9551cf83]{background:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 95%)}.uploadSection.done[data-v-9551cf83]{background:color-mix(in srgb, var(--scalar-color-green), var(--scalar-background-1) 95%)}.uploadText[data-v-9551cf83]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3)}.icon[data-v-9551cf83]{width:20px;height:20px}.actionContainer[data-v-e7c7c266]{background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1));border:var(--scalar-border-width) solid var(--scalar-border-color);width:100%;box-shadow:0 24px 0 2px var(--scalar-background-1);border-radius:16px;position:relative}.promptForm[data-v-e7c7c266]{background:var(--scalar-background-1);width:100%;box-shadow:var(--scalar-shadow-1), 0 0 0 var(--scalar-border-width) var(--scalar-border-color);border-radius:16px;flex-direction:column;display:flex;position:relative}.inputActionsContainer[data-v-e7c7c266]{justify-content:space-between;padding:0 8px 8px;display:flex}.inputActionsLeft[data-v-e7c7c266]{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.inputActionsRight[data-v-e7c7c266]{gap:5px;display:flex;position:relative}.apiPill[data-v-e7c7c266]{font-size:var(--scalar-font-size-3);border:var(--scalar-border-width) solid var(--scalar-border-color);color:var(--scalar-color-2);font-weight:var(--scalar-semibold);pointer-events:all;z-index:1;-webkit-user-select:none;user-select:none;border-radius:16px;align-items:center;gap:4px;height:28px;padding:0 8px;display:flex}.apiPillLogo[data-v-e7c7c266]{width:15px}.apiPillRemove[data-v-e7c7c266]{border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;margin-right:-6px;display:flex}.apiPill:hover .apiPillRemove[data-v-e7c7c266]{background:var(--scalar-background-2)}.dark-mode .apiPill:hover .apiPillRemove[data-v-e7c7c266]{background:var(--scalar-background-3)}.apiPillRemove[data-v-e7c7c266]:hover{color:var(--scalar-color-1)}.prompt[data-v-e7c7c266]{resize:none;field-sizing:content;z-index:1;scrollbar-width:thin;word-wrap:break-word;width:100%;max-width:100%;min-height:64px;max-height:250px;font-family:var(--scalar-font);border:none;outline:none;padding:12px 12px 14px;font-size:16px;overflow-y:auto}.dark-mode .promptForm[data-v-e7c7c266]{background:var(--scalar-background-2)}.prompt[data-v-e7c7c266]:disabled{color:var(--scalar-color-3)}.addAPIButton[data-v-e7c7c266]{color:var(--scalar-color-2);font-size:var(--scalar-font-size-3);width:28px;height:28px;font-weight:var(--scalar-bold);pointer-events:all;z-index:1;box-shadow:0 0 0 var(--scalar-border-width) var(--scalar-border-color);border-radius:100%;justify-content:center;align-items:center;gap:4px;display:flex}.addAPIButton[data-v-e7c7c266]:hover{background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1));box-shadow:0 0 0 var(--scalar-border-width) var(--scalar-border-color)}.dark-mode .addAPIButton[data-v-e7c7c266]:hover{background:var(--scalar-background-3)}.settingsButton[data-v-e7c7c266]{z-index:1;color:var(--scalar-color-3)!important;border-radius:50%!important;margin:0!important}.settingsButton[aria-disabled=true][data-v-e7c7c266]{background:var(--scalar-background-2)}.dark-mode .settingsButton[data-v-e7c7c266]:hover{background:var(--scalar-background-3)}.sendButton[data-v-e7c7c266]{z-index:1;border:var(--scalar-border-width) solid var(--scalar-color-blue);background:var(--scalar-color-blue)!important;border-radius:50%!important;margin:0!important}.sendButton[data-v-e7c7c266]:not([aria-disabled=true]){color:#fff!important}.sendButton[data-v-e7c7c266]:not([aria-disabled=true]):hover{background:color-mix(in srgb, var(--scalar-color-blue), transparent 10%)!important}.sendButton[aria-disabled=true][data-v-e7c7c266]{border:var(--scalar-border-width) solid var(--scalar-border-color);background:var(--scalar-background-2)!important;color:var(--scalar-color-3)!important}.dark-mode .sendButton[aria-disabled=true][data-v-e7c7c266]{background:var(--scalar-background-3)!important}.contextContainer[data-v-e7c7c266]{width:100%;color:var(--scalar-color-2);font-size:var(--scalar-font-size-3);-webkit-user-select:none;user-select:none;justify-content:space-between;padding:10px 12px 12px;display:flex}.settingsButton[data-v-e7c7c266]{font-weight:var(--scalar-semibold);border-radius:var(--scalar-radius-lg);margin:-4px -6px;padding:4px 6px}.settingsButton[data-v-e7c7c266]:hover{background:var(--scalar-background-2);box-shadow:0 0 var(--scalar-border-width) 0 var(--scalar-border-color);cursor:pointer}.agentLabel[data-v-e7c7c266]{cursor:text;width:100%;height:100%;font-size:0;position:absolute}.sendCheckboxContinue[data-v-e7c7c266]:has(input){background:var(--scalar-background-2);box-shadow:0 0 0 1.5px var(--scalar-background-2);color:var(--scalar-color-2);font-size:var(--scalar-font-size-3);font-weight:var(--scalar-semibold);-webkit-user-select:none;user-select:none;border-radius:14px;align-items:center;height:28px;display:flex}.dark-mode .sendCheckboxContinue[data-v-e7c7c266]:has(input){background:var(--scalar-background-3);box-shadow:0 0 0 1.5px var(--scalar-background-3)}.addMoreContext[data-v-e7c7c266]{height:40px;font-size:var(--scalar-font-size-3);color:var(--scalar-color-3);align-items:center;padding:0 8px 0 12px;display:flex;position:relative}.addMoreContext[data-v-e7c7c266]:before{content:"";background:color-mix(in srgb, var(--scalar-background-1), var(--scalar-background-2));width:8px;height:8px;box-shadow:-.5px -.5px 0 var(--scalar-border-color), inset .5px .5px 1px var(--scalar-border-color);position:absolute;top:-3px;left:18px;transform:rotate(45deg)}.dark-mode .addMoreContext[data-v-e7c7c266]:before{box-shadow:-.5px -.5px 0 var(--scalar-border-color)}.addAPIContext[data-v-e7c7c266]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.termsAgree[data-v-e7c7c266]{cursor:pointer;height:inherit;border-radius:14px;align-items:center;gap:5px;margin:0 5px;display:flex}.termsAgree[data-v-e7c7c266]:hover{color:var(--scalar-color-1)}.termsAgree:hover .termsAgreeIcon[data-v-e7c7c266]{background:var(--scalar-color-1);color:var(--scalar-background-1)}.termsAgreeIcon[data-v-e7c7c266]{width:inherit;height:inherit;background:var(--scalar-background-2);border-radius:50%;padding:2px}.chat[data-v-db4ff6c9]{flex-direction:column;flex:1;width:100%;max-width:744px;padding:24px 0;display:flex}.userMessage[data-v-db4ff6c9]{padding-top:6px;padding-bottom:6px;background:var(--scalar-background-2);width:fit-content;max-width:80%;color:var(--scalar-color-1);border-radius:18px;margin-bottom:12px;margin-left:auto;padding-inline:16px;font-size:16px;line-height:24px}div+.userMessage[data-v-db4ff6c9]{margin-top:64px}.chat[data-v-db4ff6c9]>div:has(.executeRequestTool)+div:has(.executeRequestTool){margin-top:-12px}.spacer[data-v-db4ff6c9]{width:100%;min-height:280px}.formContainer[data-v-db4ff6c9]{z-index:1;width:100%;max-width:744px;position:fixed;bottom:20px}.chat[data-v-db4ff6c9] .markdown{margin-bottom:12px}.agentLogo[data-v-56f7e8dd]{margin-bottom:15px}.startContainer[data-v-56f7e8dd]{flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:720px;height:100%;display:flex;position:relative}.heading[data-v-56f7e8dd]{font-size:1.5rem;font-weight:var(--scalar-font-bold);margin-bottom:50px}.disclaimerText[data-v-56f7e8dd]{text-align:center;color:var(--scalar-color-3);font-size:var(--scalar-font-size-3);text-wrap:balance;margin-top:40px;line-height:1.44}.disclaimerLink[data-v-56f7e8dd]{text-decoration:underline}.wrapper[data-v-f1eee0af]{flex-direction:column;align-items:center;width:100%;height:100%;display:flex}.docSettings[data-v-31f052ad]{font-size:var(--scalar-font-size-3);flex-direction:column;gap:12px;max-height:600px;margin-bottom:12px;display:flex}.documentName[data-v-31f052ad]{font-weight:var(--scalar-semibold)}.settingsModal .scalar-modal-layout{z-index:10!important}.settingsModal .scalar-modal-body{overflow:hidden auto}.documentList[data-v-5e4bca68]{font-size:var(--scalar-font-size-3);flex-direction:column;margin-bottom:12px;display:flex}.document[data-v-5e4bca68]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);flex-direction:column;width:calc(100% + 24px);padding:0 12px;display:flex;position:relative;left:-12px}.document[data-v-5e4bca68]:first-of-type:not(:last-of-type){border-bottom:none}.documentName[data-v-5e4bca68]{font-weight:var(--scalar-semibold);color:var(--scalar-color-2);align-items:center;gap:4px;padding:12px 0;display:flex}.documentNameActive[data-v-5e4bca68]{color:var(--scalar-color-1)}.settingsHeading[data-v-5e4bca68]{font-size:19px;font-weight:var(--scalar-semibold);align-items:center;gap:5px;margin-bottom:12px;display:flex}.proxyUrlContainer[data-v-5e4bca68]{font-size:var(--scalar-font-size-3);flex-direction:column;gap:5px;display:flex}.proxyUrlContainer label[data-v-5e4bca68]{font-weight:var(--scalar-semibold)}.noDocuments[data-v-5e4bca68]{color:var(--scalar-color-2);margin-bottom:10px}
|
|
1
|
+
.authenticationProvided[data-v-e3416cd5]{color:var(--scalar-color-1);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.authenticationRequired[data-v-d15ef40b]{color:var(--scalar-color-blue);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.askForAuthentication[data-v-6fbfc976]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);width:100%;box-shadow:0 var(--scalar-border-width) 0 var(--scalar-background-1), 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);flex-direction:column;margin-bottom:12px;padding:0;display:flex;position:relative}.authContent[data-v-6fbfc976]{grid-template-rows:0fr;width:100%;max-width:520px;min-height:0;margin:auto;transition:grid-template-rows .2s ease-out;display:grid;overflow:hidden}.authContentInner[data-v-6fbfc976]>div{margin:36px 0 48px}.authContent[data-v-6fbfc976] .markdown{margin-bottom:0!important}.askForAuthentication.open .authContent[data-v-6fbfc976]{grid-template-rows:1fr}.continueButton[data-v-6fbfc976]{align-self:flex-end}.toggleButton[data-v-6fbfc976]{cursor:pointer;text-align:left;color:var(--scalar-color-3);border-radius:var(--scalar-radius-lg);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex;position:relative}.authContentInner[data-v-6fbfc976]{min-height:0;overflow:hidden}.authorizeButton[data-v-6fbfc976]{z-index:1;gap:5px;display:flex;background:var(--scalar-color-blue)!important;color:#fff!important;margin:0!important}.autosendPaused[data-v-d08225db]{color:var(--scalar-color-blue);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.playIcon[data-v-5749c429]{z-index:1;background:var(--scalar-background-1);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:4px;display:flex;position:relative}.playIcon[data-v-5749c429]:before{content:"";box-sizing:border-box;border:1.75px solid;border-bottom-color:#0000;border-image:initial;background:var(--scalar-background-1);border-radius:50%;width:16px;height:16px;animation:.42s linear infinite rotation-5749c429;display:inline-block;position:absolute}.buildingRequest[data-v-5749c429]{color:var(--scalar-color-blue);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.buildingRequest svg[data-v-5749c429]{z-index:1;border-radius:50%;width:100%;height:100%}@keyframes rotation-5749c429{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.requestApproved[data-v-bb311586]{color:var(--scalar-color-green);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.requestFailed[data-v-bc27e533]{color:var(--scalar-color-red);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.requestFailedIcon[data-v-bc27e533]{border-radius:50%;width:16px;height:16px;padding:4px;box-shadow:inset 0 0 0 1.5px}.requestRejected[data-v-9803a54c]{color:var(--scalar-color-red);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.requestSuccess[data-v-acc2c0d8]{color:var(--scalar-color-1);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.light-mode .bg-preview[data-v-92f84612]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23000' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E")}.dark-mode .bg-preview[data-v-92f84612]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23FFF' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E")}.playIcon[data-v-65dc6dfb]{z-index:1;background:var(--scalar-background-1);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:4px;display:flex;position:relative}.playIcon[data-v-65dc6dfb]:before{content:"";box-sizing:border-box;border:1.75px solid;border-bottom-color:#0000;border-image:initial;background:var(--scalar-background-1);border-radius:50%;width:16px;height:16px;animation:.42s linear infinite rotation-65dc6dfb;display:inline-block;position:absolute}.sendingRequest[data-v-65dc6dfb]{color:var(--scalar-color-blue);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.sendingRequest svg[data-v-65dc6dfb]{z-index:1;border-radius:50%;width:100%;height:100%}@keyframes rotation-65dc6dfb{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.requestHeaderContainer[data-v-0eb5f95d]{justify-content:space-between;align-items:center;padding:0 5px;display:flex}.requestPreview[data-v-0eb5f95d]{border-radius:12px;flex-direction:column;width:100%;display:flex;position:relative}.requestContent[data-v-0eb5f95d]{grid-template-rows:0fr;min-height:0;transition:grid-template-rows .2s ease-out;display:grid;overflow:hidden}.requestPreview.open .requestContent[data-v-0eb5f95d]{grid-template-rows:1fr}.requestPreview.succeeded[data-v-0eb5f95d]{padding:0}.requestContentInner[data-v-0eb5f95d]{min-height:0;overflow:hidden}.code[data-v-0eb5f95d]{font-size:var(--scalar-font-size-4);background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1));border-radius:12px;flex-direction:column;margin-bottom:12px;display:flex;overflow:hidden}.dark-mode .code[data-v-0eb5f95d]{background:var(--scalar-background-2)}.code h1[data-v-0eb5f95d]{font-size:var(--scalar-font-size-3);color:var(--scalar-color-3);padding:8px}.code[data-v-0eb5f95d] .codeBlock{max-height:calc(50vh - 100px);padding-top:0}.autosendContainer[data-v-0eb5f95d]{justify-content:space-between;display:flex}.sendButton[data-v-0eb5f95d]{background:var(--scalar-color-blue);color:#fff;font-weight:var(--scalar-semibold);padding:5px 10px}.sendButton[data-v-0eb5f95d]:hover,.sendButton[data-v-0eb5f95d]:active{background:color-mix(in srgb, var(--scalar-color-blue), black 10%);color:#fff!important}.toggleButton[data-v-0eb5f95d]{cursor:pointer;text-align:left;color:var(--scalar-color-3);border-radius:var(--scalar-radius-lg);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex;position:relative}.toggleButton[data-v-0eb5f95d]:hover{text-decoration:underline}.executeRequestTool[data-v-3e825a81]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);box-shadow:0 var(--scalar-border-width) 0 var(--scalar-background-1), 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.tool[data-v-3e825a81]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:15px;margin-bottom:20px;padding:15px}.playIcon[data-v-9d9724d2]{z-index:1;background:var(--scalar-background-1);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:4px;display:flex;position:relative}.playIcon[data-v-9d9724d2]:before{content:"";box-sizing:border-box;border:1.5px solid;border-bottom-color:#0000;border-image:initial;background:var(--scalar-background-1);border-radius:50%;width:16px;height:16px;animation:.42s linear infinite rotation-9d9724d2;display:inline-block;position:absolute}.loadingApiSpecs[data-v-9d9724d2]{color:var(--scalar-color-2);font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3);align-items:center;gap:6px;margin-bottom:10px;display:flex}.loadingApiSpecs svg[data-v-9d9724d2]{z-index:1;border-radius:50%;width:100%;height:100%}@keyframes rotation-9d9724d2{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.contextItem[data-v-e6786ce3]{white-space:nowrap;color:var(--scalar-color-2);cursor:pointer;vertical-align:middle;background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1));border-radius:12px;align-items:center;max-width:200px;padding:5px 10px;font-size:10px;display:flex}.contextItemText[data-v-e6786ce3]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shimmer[data-v-e6786ce3]{background:var(--scalar-background-2);background-image:linear-gradient(90deg, #202020 0%, var(--scalar-background-2) 40%, var(--scalar-background-3) 80%);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer-e6786ce3}.light-mode .shimmer[data-v-e6786ce3]{background:var(--scalar-background-2);background-image:linear-gradient(90deg, #fafafa 0%, var(--scalar-background-2) 40%, var(--scalar-background-3) 80%);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer-e6786ce3}@keyframes shimmer-e6786ce3{0%{background-position:200% 0}to{background-position:-200% 0}}.playIcon[data-v-6e0ac42c]{z-index:1;background:var(--scalar-background-1);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:4px;display:flex;position:relative}.playIcon[data-v-6e0ac42c]:before{content:"";box-sizing:border-box;border:1.5px solid;border-bottom-color:#0000;border-image:initial;background:var(--scalar-background-1);border-radius:50%;width:16px;height:16px;animation:.42s linear infinite rotation-6e0ac42c;display:inline-block;position:absolute}.sendingRequest[data-v-6e0ac42c]{color:var(--scalar-color-2);font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3);align-items:center;gap:6px;margin-bottom:10px;display:flex}.sendingRequest svg[data-v-6e0ac42c]{z-index:1;border-radius:50%;width:100%;height:100%}@keyframes rotation-6e0ac42c{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.operations[data-v-43dd2b86]{flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:12px;display:flex}.operations[data-v-43dd2b86]:empty{margin-bottom:-12px}.overflowPopover[data-v-43dd2b86]{flex-direction:column;gap:5px;padding:8px;display:flex}.catalogModal .scalar-modal-body{flex-direction:column;display:flex}.searchInput[data-v-bc24f891]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:var(--scalar-radius-lg);margin-bottom:10px}.catalog[data-v-bc24f891]{font-size:var(--scalar-font-size-3);grid-template-columns:1fr 1fr;gap:10px;display:grid;overflow-y:scroll}.item[data-v-bc24f891]{background-color:var(--scalar-background-2);border-radius:var(--scalar-radius-lg);align-items:center;gap:10px;padding:15px;transition:background-color .16s;display:flex}.item[data-v-bc24f891]:hover{background-color:color-mix(in srgb, var(--scalar-background-3), transparent 40%)!important}.left[data-v-bc24f891]{align-items:center}.right[data-v-bc24f891]{flex-direction:column;display:flex}.logo[data-v-bc24f891]{width:25px}.item-top[data-v-bc24f891]{gap:10px;display:flex}.version[data-v-bc24f891]{background:var(--scalar-background-3);border-radius:var(--scalar-radius);font-size:var(--scalar-font-size-5);color:var(--scalar-color-3);padding:2px 5px}.description[data-v-bc24f891]{color:var(--scalar-color-2)}.dropdown-item[data-v-2d142bb5]{align-items:center;gap:10px;display:flex}.approvalSection[data-v-a7e6c699]{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 95%);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;width:100%;margin-bottom:-16px;padding:8px 8px 24px 12px;display:flex;position:absolute;top:0;transform:translateY(calc(16px - 100%))}.approvalText[data-v-a7e6c699]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3)}.approveContainer[data-v-a7e6c699]{gap:5px;display:flex}.actionButton[data-v-a7e6c699]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3);border-radius:50px;align-items:center;padding:6px 12px;display:flex}.rejectButton[data-v-a7e6c699]{color:#fff;background:var(--scalar-color-red)}.rejectButton[data-v-a7e6c699]:hover,.rejectButton[data-v-a7e6c699]:active{background:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 10%);color:#fff!important}.approveButton[data-v-a7e6c699]{color:#fff;background:var(--scalar-color-blue)}.approveButton[data-v-a7e6c699]:hover,.approveButton[data-v-a7e6c699]:active{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 10%);color:#fff!important}.error[data-v-63a481da]{border:var(--scalar-border-width) solid var(--scalar-border-color);background:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 95%);font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3);border-radius:16px 16px 0 0;align-items:center;margin-bottom:-16px;padding:8px 8px 24px 12px;display:flex;position:absolute;top:0;transform:translateY(calc(16px - 100%))}.freeMessagesInfoSection[data-v-913a3815]{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 95%);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;width:100%;margin-bottom:-16px;padding:8px 8px 24px 12px;display:flex;position:relative}.infoText[data-v-913a3815]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3)}.actionsContainer[data-v-913a3815]{align-items:center;gap:8px;display:flex}.actionButton[data-v-913a3815]{font-weight:var(--scalar-semibold);border-radius:50px;align-items:center;padding:6px 12px;display:flex}.upgradeButton[data-v-913a3815]{color:#fff;font-size:var(--scalar-font-size-3);background:var(--scalar-color-blue)}.upgradeButton[data-v-913a3815]:hover,.upgradeButton[data-v-913a3815]:active{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 10%);color:#fff!important}.closeButton[data-v-913a3815]{width:28px;height:28px;color:var(--scalar-color-2);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.closeButton[data-v-913a3815]:hover{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 80%);color:var(--scalar-color-1)}.paymentSection[data-v-91e028d5]{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 95%);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;width:100%;margin-bottom:-16px;padding:8px 8px 24px 12px;display:flex;position:absolute;top:0;transform:translateY(calc(16px - 100%))}.approvalText[data-v-91e028d5]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3)}.paymentContainer[data-v-91e028d5]{gap:5px;display:flex}.actionButton[data-v-91e028d5]{font-weight:var(--scalar-semibold);border-radius:50px;align-items:center;padding:6px 12px;display:flex}.rejectButton[data-v-91e028d5]{color:#fff;background:var(--scalar-color-red)}.rejectButton[data-v-91e028d5]:hover,.rejectButton[data-v-91e028d5]:active{background:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 10%);color:#fff!important}.approveButton[data-v-91e028d5]{color:#fff;font-size:var(--scalar-font-size-3);background:var(--scalar-color-blue)}.approveButton[data-v-91e028d5]:hover,.approveButton[data-v-91e028d5]:active{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 10%);color:#fff!important}.paymentInfo[data-v-91e028d5]{width:300px;box-shadow:var(--scalar-shadow-2);background:var(--scalar-background-1);pointer-events:none;opacity:0;border-radius:16px;padding:12px;transition:all .2s ease-in-out;position:absolute;bottom:70px;right:0;transform:translateY(-5px)}.paymentInfo h3[data-v-91e028d5]{font-size:var(--scalar-font-size-1);font-weight:var(--scalar-bold);margin-bottom:18px}.paymentInfo h3 span[data-v-91e028d5]{font-size:var(--scalar-font-size-2)}.dark-mode .paymentInfo[data-v-91e028d5]{background:var(--scalar-background-2)}.paymentContainer:hover .paymentInfo[data-v-91e028d5]{opacity:1;transform:translate(0,0)}.paymentInfoItem[data-v-91e028d5]{font-size:var(--scalar-font-size-3);color:var(--scalar-color-2);font-weight:var(--scalar-semibold);justify-content:space-between;margin-top:8px;display:flex}.paymentInfoSection[data-v-91e028d5]:not(:last-child){border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);padding-bottom:8px}.searchItem[data-v-7945f74c]{font-size:var(--scalar-font-size-3);align-items:center;gap:9px;padding:8px 10px;display:flex}.searchInput[data-v-7945f74c]{margin-bottom:5px}.searchItem[data-v-7945f74c]:hover{background:var(--scalar-background-2)}.searchItemLogo[data-v-7945f74c]{width:15px}.searchIcon[data-v-7945f74c]{margin-right:7px}.searchResultsEmpty[data-v-7945f74c]{font-size:var(--scalar-font-size-3);color:var(--scalar-color-2);margin:10px}.uploadSection[data-v-9551cf83]{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 95%);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;width:100%;margin-bottom:-16px;padding:8px 8px 24px 12px;display:flex;position:absolute;top:0;transform:translateY(calc(16px - 100%))}.uploadSection.error[data-v-9551cf83]{background:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 95%)}.uploadSection.done[data-v-9551cf83]{background:color-mix(in srgb, var(--scalar-color-green), var(--scalar-background-1) 95%)}.uploadText[data-v-9551cf83]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3)}.icon[data-v-9551cf83]{width:20px;height:20px}.actionContainer[data-v-e7c7c266]{background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1));border:var(--scalar-border-width) solid var(--scalar-border-color);width:100%;box-shadow:0 24px 0 2px var(--scalar-background-1);border-radius:16px;position:relative}.promptForm[data-v-e7c7c266]{background:var(--scalar-background-1);width:100%;box-shadow:var(--scalar-shadow-1), 0 0 0 var(--scalar-border-width) var(--scalar-border-color);border-radius:16px;flex-direction:column;display:flex;position:relative}.inputActionsContainer[data-v-e7c7c266]{justify-content:space-between;padding:0 8px 8px;display:flex}.inputActionsLeft[data-v-e7c7c266]{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.inputActionsRight[data-v-e7c7c266]{gap:5px;display:flex;position:relative}.apiPill[data-v-e7c7c266]{font-size:var(--scalar-font-size-3);border:var(--scalar-border-width) solid var(--scalar-border-color);color:var(--scalar-color-2);font-weight:var(--scalar-semibold);pointer-events:all;z-index:1;-webkit-user-select:none;user-select:none;border-radius:16px;align-items:center;gap:4px;height:28px;padding:0 8px;display:flex}.apiPillLogo[data-v-e7c7c266]{width:15px}.apiPillRemove[data-v-e7c7c266]{border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;margin-right:-6px;display:flex}.apiPill:hover .apiPillRemove[data-v-e7c7c266]{background:var(--scalar-background-2)}.dark-mode .apiPill:hover .apiPillRemove[data-v-e7c7c266]{background:var(--scalar-background-3)}.apiPillRemove[data-v-e7c7c266]:hover{color:var(--scalar-color-1)}.prompt[data-v-e7c7c266]{resize:none;field-sizing:content;z-index:1;scrollbar-width:thin;word-wrap:break-word;width:100%;max-width:100%;min-height:64px;max-height:250px;font-family:var(--scalar-font);border:none;outline:none;padding:12px 12px 14px;font-size:16px;overflow-y:auto}.dark-mode .promptForm[data-v-e7c7c266]{background:var(--scalar-background-2)}.prompt[data-v-e7c7c266]:disabled{color:var(--scalar-color-3)}.addAPIButton[data-v-e7c7c266]{color:var(--scalar-color-2);font-size:var(--scalar-font-size-3);width:28px;height:28px;font-weight:var(--scalar-bold);pointer-events:all;z-index:1;box-shadow:0 0 0 var(--scalar-border-width) var(--scalar-border-color);border-radius:100%;justify-content:center;align-items:center;gap:4px;display:flex}.addAPIButton[data-v-e7c7c266]:hover{background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1));box-shadow:0 0 0 var(--scalar-border-width) var(--scalar-border-color)}.dark-mode .addAPIButton[data-v-e7c7c266]:hover{background:var(--scalar-background-3)}.settingsButton[data-v-e7c7c266]{z-index:1;color:var(--scalar-color-3)!important;border-radius:50%!important;margin:0!important}.settingsButton[aria-disabled=true][data-v-e7c7c266]{background:var(--scalar-background-2)}.dark-mode .settingsButton[data-v-e7c7c266]:hover{background:var(--scalar-background-3)}.sendButton[data-v-e7c7c266]{z-index:1;border:var(--scalar-border-width) solid var(--scalar-color-blue);background:var(--scalar-color-blue)!important;border-radius:50%!important;margin:0!important}.sendButton[data-v-e7c7c266]:not([aria-disabled=true]){color:#fff!important}.sendButton[data-v-e7c7c266]:not([aria-disabled=true]):hover{background:color-mix(in srgb, var(--scalar-color-blue), transparent 10%)!important}.sendButton[aria-disabled=true][data-v-e7c7c266]{border:var(--scalar-border-width) solid var(--scalar-border-color);background:var(--scalar-background-2)!important;color:var(--scalar-color-3)!important}.dark-mode .sendButton[aria-disabled=true][data-v-e7c7c266]{background:var(--scalar-background-3)!important}.contextContainer[data-v-e7c7c266]{width:100%;color:var(--scalar-color-2);font-size:var(--scalar-font-size-3);-webkit-user-select:none;user-select:none;justify-content:space-between;padding:10px 12px 12px;display:flex}.settingsButton[data-v-e7c7c266]{font-weight:var(--scalar-semibold);border-radius:var(--scalar-radius-lg);margin:-4px -6px;padding:4px 6px}.settingsButton[data-v-e7c7c266]:hover{background:var(--scalar-background-2);box-shadow:0 0 var(--scalar-border-width) 0 var(--scalar-border-color);cursor:pointer}.agentLabel[data-v-e7c7c266]{cursor:text;width:100%;height:100%;font-size:0;position:absolute}.sendCheckboxContinue[data-v-e7c7c266]:has(input){background:var(--scalar-background-2);box-shadow:0 0 0 1.5px var(--scalar-background-2);color:var(--scalar-color-2);font-size:var(--scalar-font-size-3);font-weight:var(--scalar-semibold);-webkit-user-select:none;user-select:none;border-radius:14px;align-items:center;height:28px;display:flex}.dark-mode .sendCheckboxContinue[data-v-e7c7c266]:has(input){background:var(--scalar-background-3);box-shadow:0 0 0 1.5px var(--scalar-background-3)}.addMoreContext[data-v-e7c7c266]{height:40px;font-size:var(--scalar-font-size-3);color:var(--scalar-color-3);align-items:center;padding:0 8px 0 12px;display:flex;position:relative}.addMoreContext[data-v-e7c7c266]:before{content:"";background:color-mix(in srgb, var(--scalar-background-1), var(--scalar-background-2));width:8px;height:8px;box-shadow:-.5px -.5px 0 var(--scalar-border-color), inset .5px .5px 1px var(--scalar-border-color);position:absolute;top:-3px;left:18px;transform:rotate(45deg)}.dark-mode .addMoreContext[data-v-e7c7c266]:before{box-shadow:-.5px -.5px 0 var(--scalar-border-color)}.addAPIContext[data-v-e7c7c266]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.termsAgree[data-v-e7c7c266]{cursor:pointer;height:inherit;border-radius:14px;align-items:center;gap:5px;margin:0 5px;display:flex}.termsAgree[data-v-e7c7c266]:hover{color:var(--scalar-color-1)}.termsAgree:hover .termsAgreeIcon[data-v-e7c7c266]{background:var(--scalar-color-1);color:var(--scalar-background-1)}.termsAgreeIcon[data-v-e7c7c266]{width:inherit;height:inherit;background:var(--scalar-background-2);border-radius:50%;padding:2px}.chat[data-v-8e43ed7a]{flex-direction:column;flex:1;width:100%;max-width:744px;padding:24px 0;display:flex}.userMessage[data-v-8e43ed7a]{padding-top:6px;padding-bottom:6px;background:var(--scalar-background-2);width:fit-content;max-width:80%;color:var(--scalar-color-1);border-radius:18px;margin-bottom:12px;margin-left:auto;padding-inline:16px;font-size:16px;line-height:24px}div+.userMessage[data-v-8e43ed7a]{margin-top:64px}.chat[data-v-8e43ed7a]>div:has(.executeRequestTool)+div:has(.executeRequestTool){margin-top:-12px}.spacer[data-v-8e43ed7a]{width:100%;min-height:280px}.formContainer[data-v-8e43ed7a]{z-index:1;width:100%;max-width:744px;position:fixed;bottom:20px}.chat[data-v-8e43ed7a] .markdown{margin-bottom:12px}.agentLogo[data-v-56f7e8dd]{margin-bottom:15px}.startContainer[data-v-56f7e8dd]{flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:720px;height:100%;display:flex;position:relative}.heading[data-v-56f7e8dd]{font-size:1.5rem;font-weight:var(--scalar-font-bold);margin-bottom:50px}.disclaimerText[data-v-56f7e8dd]{text-align:center;color:var(--scalar-color-3);font-size:var(--scalar-font-size-3);text-wrap:balance;margin-top:40px;line-height:1.44}.disclaimerLink[data-v-56f7e8dd]{text-decoration:underline}.wrapper[data-v-f1eee0af]{flex-direction:column;align-items:center;width:100%;height:100%;display:flex}.docSettings[data-v-31f052ad]{font-size:var(--scalar-font-size-3);flex-direction:column;gap:12px;max-height:600px;margin-bottom:12px;display:flex}.documentName[data-v-31f052ad]{font-weight:var(--scalar-semibold)}.settingsModal .scalar-modal-layout{z-index:10!important}.settingsModal .scalar-modal-body{overflow:hidden auto}.documentList[data-v-5e4bca68]{font-size:var(--scalar-font-size-3);flex-direction:column;margin-bottom:12px;display:flex}.document[data-v-5e4bca68]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);flex-direction:column;width:calc(100% + 24px);padding:0 12px;display:flex;position:relative;left:-12px}.document[data-v-5e4bca68]:first-of-type:not(:last-of-type){border-bottom:none}.documentName[data-v-5e4bca68]{font-weight:var(--scalar-semibold);color:var(--scalar-color-2);align-items:center;gap:4px;padding:12px 0;display:flex}.documentNameActive[data-v-5e4bca68]{color:var(--scalar-color-1)}.settingsHeading[data-v-5e4bca68]{font-size:19px;font-weight:var(--scalar-semibold);align-items:center;gap:5px;margin-bottom:12px;display:flex}.proxyUrlContainer[data-v-5e4bca68]{font-size:var(--scalar-font-size-3);flex-direction:column;gap:5px;display:flex}.proxyUrlContainer label[data-v-5e4bca68]{font-weight:var(--scalar-semibold)}.noDocuments[data-v-5e4bca68]{color:var(--scalar-color-2);margin-bottom:10px}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.vue.d.ts","sourceRoot":"","sources":["../../../src/views/Chat/Chat.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Chat.vue.d.ts","sourceRoot":"","sources":["../../../src/views/Chat/Chat.vue"],"names":[],"mappings":"AAwUA,QAAA,MAAM,YAAY;;;;;;iFAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -2,7 +2,7 @@ import e from "../../_virtual/_plugin-vue_export-helper.js";
|
|
|
2
2
|
import t from "./Chat.vue.script.js";
|
|
3
3
|
/* empty css */
|
|
4
4
|
//#region src/views/Chat/Chat.vue
|
|
5
|
-
var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-
|
|
5
|
+
var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-8e43ed7a"]]);
|
|
6
6
|
//#endregion
|
|
7
7
|
export { n as default };
|
|
8
8
|
|