@scalar/agent-chat 0.12.43 → 0.12.44
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/components/ApprovalSection.vue.js +1 -1
- package/dist/components/ApprovalSection.vue.js.map +1 -1
- package/dist/components/ApprovalSection.vue.script.js +2 -2
- package/dist/components/ApprovalSection.vue.script.js.map +1 -1
- package/dist/helpers.d.ts +1 -0
- package/dist/helpers.d.ts.map +1 -1
- package/dist/hooks/use-chat-approvals.d.ts +3 -18
- package/dist/hooks/use-chat-approvals.d.ts.map +1 -1
- package/dist/hooks/use-chat-approvals.js +1 -0
- package/dist/hooks/use-chat-approvals.js.map +1 -1
- package/dist/hooks/use-chat-pending-client-tool-parts.d.ts +8 -16
- package/dist/hooks/use-chat-pending-client-tool-parts.d.ts.map +1 -1
- package/dist/hooks/use-chat-pending-client-tool-parts.js +1 -0
- package/dist/hooks/use-chat-pending-client-tool-parts.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/style.css +74 -58
- package/dist/vue-styles.css +10 -10
- package/package.json +13 -13
|
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../_virtual/_plugin-vue_export-he
|
|
|
2
2
|
import ApprovalSection_vue_vue_type_script_setup_true_lang_default from "./ApprovalSection.vue.script.js";
|
|
3
3
|
/* empty css */
|
|
4
4
|
//#region src/components/ApprovalSection.vue
|
|
5
|
-
var ApprovalSection_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ApprovalSection_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
5
|
+
var ApprovalSection_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ApprovalSection_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-f493d089"]]);
|
|
6
6
|
//#endregion
|
|
7
7
|
export { ApprovalSection_default as default };
|
|
8
8
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalSection.vue.js","names":[],"sources":["../../src/components/ApprovalSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconInfo } from '@scalar/icons'\n\nconst emit = defineEmits<{\n (e: 'approve'): void\n (e: 'reject'): void\n}>()\n</script>\n\n<template>\n <div class=\"approvalSection\">\n <strong class=\"approvalText flex items-center gap-1.5\">\n <ScalarIconInfo\n class=\"text-blue size-4\"\n weight=\"bold\" />\n One or more requests require approval.\n </strong>\n <div class=\"approveContainer\">\n <button\n
|
|
1
|
+
{"version":3,"file":"ApprovalSection.vue.js","names":[],"sources":["../../src/components/ApprovalSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconInfo } from '@scalar/icons'\n\nconst emit = defineEmits<{\n (e: 'approve'): void\n (e: 'reject'): void\n}>()\n</script>\n\n<template>\n <div class=\"approvalSection\">\n <strong class=\"approvalText flex items-center gap-1.5\">\n <ScalarIconInfo\n class=\"text-blue size-4\"\n weight=\"bold\" />\n One or more requests require approval.\n </strong>\n <div class=\"approveContainer\">\n <button\n class=\"actionButton rejectButton\"\n type=\"button\"\n @click=\"emit('reject')\">\n Reject\n </button>\n <button\n class=\"actionButton approveButton\"\n type=\"button\"\n @click=\"emit('approve')\">\n Approve\n </button>\n </div>\n </div>\n</template>\n\n<style scoped>\n.approvalSection {\n width: 100%;\n margin-bottom: -16px;\n padding: 8px 8px 24px 12px;\n\n background: color-mix(\n in srgb,\n var(--scalar-color-blue),\n var(--scalar-background-1) 95%\n );\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius-3xl) var(--scalar-radius-3xl) 0 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: absolute;\n top: 0;\n transform: translate3d(0, calc(-100% + 16px), 0);\n}\n\n.approvalText {\n font-weight: var(--scalar-semibold);\n font-size: var(--scalar-font-size-3);\n}\n\n.approveContainer {\n display: flex;\n gap: 5px;\n}\n\n.actionButton {\n display: flex;\n align-items: center;\n font-weight: var(--scalar-semibold);\n border-radius: var(--scalar-radius-full);\n padding: 6px 12px;\n font-size: var(--scalar-font-size-3);\n}\n\n.rejectButton {\n color: white;\n background: var(--scalar-color-red);\n}\n.rejectButton:hover,\n.rejectButton:active {\n background: color-mix(\n in srgb,\n var(--scalar-color-red),\n var(--scalar-background-1) 10%\n );\n color: white !important;\n}\n\n.approveButton {\n color: white;\n background: var(--scalar-color-blue);\n}\n.approveButton:hover,\n.approveButton:active {\n background: color-mix(\n in srgb,\n var(--scalar-color-blue),\n var(--scalar-background-1) 10%\n );\n color: white !important;\n}\n</style>\n"],"mappings":""}
|
|
@@ -14,12 +14,12 @@ var ApprovalSection_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
14
14
|
class: "text-blue size-4",
|
|
15
15
|
weight: "bold"
|
|
16
16
|
}), _cache[2] || (_cache[2] = createTextVNode(" One or more requests require approval. ", -1))]), createElementVNode("div", _hoisted_3, [createElementVNode("button", {
|
|
17
|
-
type: "button",
|
|
18
17
|
class: "actionButton rejectButton",
|
|
18
|
+
type: "button",
|
|
19
19
|
onClick: _cache[0] || (_cache[0] = ($event) => emit("reject"))
|
|
20
20
|
}, " Reject "), createElementVNode("button", {
|
|
21
|
-
type: "button",
|
|
22
21
|
class: "actionButton approveButton",
|
|
22
|
+
type: "button",
|
|
23
23
|
onClick: _cache[1] || (_cache[1] = ($event) => emit("approve"))
|
|
24
24
|
}, " Approve ")])]);
|
|
25
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalSection.vue.script.js","names":[],"sources":["../../src/components/ApprovalSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconInfo } from '@scalar/icons'\n\nconst emit = defineEmits<{\n (e: 'approve'): void\n (e: 'reject'): void\n}>()\n</script>\n\n<template>\n <div class=\"approvalSection\">\n <strong class=\"approvalText flex items-center gap-1.5\">\n <ScalarIconInfo\n class=\"text-blue size-4\"\n weight=\"bold\" />\n One or more requests require approval.\n </strong>\n <div class=\"approveContainer\">\n <button\n
|
|
1
|
+
{"version":3,"file":"ApprovalSection.vue.script.js","names":[],"sources":["../../src/components/ApprovalSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconInfo } from '@scalar/icons'\n\nconst emit = defineEmits<{\n (e: 'approve'): void\n (e: 'reject'): void\n}>()\n</script>\n\n<template>\n <div class=\"approvalSection\">\n <strong class=\"approvalText flex items-center gap-1.5\">\n <ScalarIconInfo\n class=\"text-blue size-4\"\n weight=\"bold\" />\n One or more requests require approval.\n </strong>\n <div class=\"approveContainer\">\n <button\n class=\"actionButton rejectButton\"\n type=\"button\"\n @click=\"emit('reject')\">\n Reject\n </button>\n <button\n class=\"actionButton approveButton\"\n type=\"button\"\n @click=\"emit('approve')\">\n Approve\n </button>\n </div>\n </div>\n</template>\n\n<style scoped>\n.approvalSection {\n width: 100%;\n margin-bottom: -16px;\n padding: 8px 8px 24px 12px;\n\n background: color-mix(\n in srgb,\n var(--scalar-color-blue),\n var(--scalar-background-1) 95%\n );\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius-3xl) var(--scalar-radius-3xl) 0 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: absolute;\n top: 0;\n transform: translate3d(0, calc(-100% + 16px), 0);\n}\n\n.approvalText {\n font-weight: var(--scalar-semibold);\n font-size: var(--scalar-font-size-3);\n}\n\n.approveContainer {\n display: flex;\n gap: 5px;\n}\n\n.actionButton {\n display: flex;\n align-items: center;\n font-weight: var(--scalar-semibold);\n border-radius: var(--scalar-radius-full);\n padding: 6px 12px;\n font-size: var(--scalar-font-size-3);\n}\n\n.rejectButton {\n color: white;\n background: var(--scalar-color-red);\n}\n.rejectButton:hover,\n.rejectButton:active {\n background: color-mix(\n in srgb,\n var(--scalar-color-red),\n var(--scalar-background-1) 10%\n );\n color: white !important;\n}\n\n.approveButton {\n color: white;\n background: var(--scalar-color-blue);\n}\n.approveButton:hover,\n.approveButton:active {\n background: color-mix(\n in srgb,\n var(--scalar-color-blue),\n var(--scalar-background-1) 10%\n );\n color: white !important;\n}\n</style>\n"],"mappings":";;;;;;;;;;EAGA,MAAM,OAAO;;uBAOX,mBAqBM,OArBN,YAqBM,CApBJ,mBAKS,UALT,YAKS,CAJP,YAEkB,MAAA,cAAA,GAAA;IADhB,OAAM;IACN,QAAO;iDAAS,4CAEpB,EAAA,EAAA,CAAA,GACA,mBAaM,OAbN,YAaM,CAZJ,mBAKS,UAAA;IAJP,OAAM;IACN,MAAK;IACJ,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,QAAA;MAAY,UAE1B,GACA,mBAKS,UAAA;IAJP,OAAM;IACN,MAAK;IACJ,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,SAAA;MAAa,WAE3B,CAAA,CAAA,CAAA,CAAA"}
|
package/dist/helpers.d.ts
CHANGED
package/dist/helpers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAEpE,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AAWzF,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,8DAA8D,CAAA;AAEpH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GACwB,eAAe,EAAE,CACxG;AAwBD,mHAAmH;AACnH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,cAAc;;;;;EAuBpE;AAKD;;;;GAIG;AACH,eAAO,MAAM,WAAW;IAMpB;;OAEG;oBACa,MAAM
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAEpE,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AAWzF,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,8DAA8D,CAAA;AAEpH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GACwB,eAAe,EAAE,CACxG;AAwBD,mHAAmH;AACnH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,cAAc;;;;;EAuBpE;AAKD;;;;GAIG;AACH,eAAO,MAAM,WAAW;IAMpB;;OAEG;oBACa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAItB;;;OAGG;oBACa,MAAM,SAAS,IAAI;CAItC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,GAAI,mCAG3C;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,cAAc,CAAA;CAC/B,KAAG,IAIH,CAAA;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,OAM1C"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ToolUIPart, UIMessagePart } from 'ai';
|
|
2
|
+
import { type ComputedRef } from 'vue';
|
|
2
3
|
import { type Tools } from '../state/state.js';
|
|
3
4
|
type RequestToolPart = ToolUIPart & {
|
|
4
5
|
type: 'tool-execute-request';
|
|
@@ -6,25 +7,9 @@ type RequestToolPart = ToolUIPart & {
|
|
|
6
7
|
input: Tools['execute-request']['input'];
|
|
7
8
|
};
|
|
8
9
|
export declare function requestPartRequiresApproval(part: UIMessagePart<any, Tools>): part is RequestToolPart;
|
|
10
|
+
/** Exposes pending request approvals without leaking SDK implementation types. */
|
|
9
11
|
export declare function useRequestApprovals(): {
|
|
10
|
-
approvalRequiredParts:
|
|
11
|
-
type: `tool-${string}`;
|
|
12
|
-
} & {
|
|
13
|
-
toolCallId: string;
|
|
14
|
-
title?: string;
|
|
15
|
-
providerExecuted?: boolean;
|
|
16
|
-
} & {
|
|
17
|
-
state: "input-available";
|
|
18
|
-
input: unknown;
|
|
19
|
-
output?: never;
|
|
20
|
-
errorText?: never;
|
|
21
|
-
callProviderMetadata?: import("ai").ProviderMetadata;
|
|
22
|
-
approval?: never;
|
|
23
|
-
} & {
|
|
24
|
-
type: "tool-execute-request";
|
|
25
|
-
state: "input-available";
|
|
26
|
-
input: Tools["execute-request"]["input"];
|
|
27
|
-
})[]>;
|
|
12
|
+
approvalRequiredParts: ComputedRef<RequestToolPart[]>;
|
|
28
13
|
respondToRequestApprovals: (approved: boolean) => Promise<void>;
|
|
29
14
|
};
|
|
30
15
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-chat-approvals.d.ts","sourceRoot":"","sources":["../../src/hooks/use-chat-approvals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"use-chat-approvals.d.ts","sourceRoot":"","sources":["../../src/hooks/use-chat-approvals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AACnD,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,KAAK,CAAA;AAKhD,OAAO,EAAE,KAAK,KAAK,EAAY,MAAM,eAAe,CAAA;AAEpD,KAAK,eAAe,GAAG,UAAU,GAAG;IAClC,IAAI,EAAE,sBAAsB,CAAA;IAC5B,KAAK,EAAE,iBAAiB,CAAA;IACxB,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAA;CACzC,CAAA;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,IAAI,eAAe,CAMpG;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,IAAI;IACrC,qBAAqB,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAA;IACrD,yBAAyB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChE,CAkCA"}
|
|
@@ -7,6 +7,7 @@ import { computed } from "vue";
|
|
|
7
7
|
function requestPartRequiresApproval(part) {
|
|
8
8
|
return part.type === `tool-execute-request` && part.state === "input-available" && part.input?.method?.toLowerCase() !== "get";
|
|
9
9
|
}
|
|
10
|
+
/** Exposes pending request approvals without leaking SDK implementation types. */
|
|
10
11
|
function useRequestApprovals() {
|
|
11
12
|
const state = useState();
|
|
12
13
|
const approvalRequiredParts = computed(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-chat-approvals.js","names":[],"sources":["../../src/hooks/use-chat-approvals.ts"],"sourcesContent":["import type { ToolUIPart, UIMessagePart } from 'ai'\nimport { computed } from 'vue'\n\nimport { executeRequestTool } from '@/client-tools/execute-request'\nimport { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME } from '@/entities'\nimport { createDocumentSettings } from '@/helpers'\nimport { type Tools, useState } from '@/state/state'\n\ntype RequestToolPart = ToolUIPart & {\n type: 'tool-execute-request'\n state: 'input-available'\n input: Tools['execute-request']['input']\n}\n\nexport function requestPartRequiresApproval(part: UIMessagePart<any, Tools>): part is RequestToolPart {\n return (\n part.type === (`tool-${EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME}` as const) &&\n part.state === 'input-available' &&\n part.input?.method?.toLowerCase() !== 'get'\n )\n}\n\nexport function useRequestApprovals() {\n const state = useState()\n\n const approvalRequiredParts = computed(() => {\n return state.chat.messages\n .filter((message) => message.parts.some(requestPartRequiresApproval))\n .flatMap((message) => message.parts)\n .filter(requestPartRequiresApproval) as RequestToolPart[]\n })\n\n async function respondToRequestApprovals(approved: boolean) {\n const approvalPromises = approvalRequiredParts.value.map(async (toolPart) => {\n if (!approved) {\n return await state.chat.addToolOutput({\n tool: EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME,\n toolCallId: toolPart.toolCallId,\n state: 'output-error',\n errorText: 'The user denied the request.',\n })\n }\n\n await executeRequestTool({\n documentSettings: createDocumentSettings(state.workspaceStore),\n proxyUrl: state.proxyUrl.value,\n input: toolPart.input,\n toolCallId: toolPart.toolCallId,\n chat: state.chat,\n })\n })\n\n await Promise.all(approvalPromises)\n }\n\n return { approvalRequiredParts, respondToRequestApprovals }\n}\n"],"mappings":";;;;;;AAcA,SAAgB,4BAA4B,MAA0D;CACpG,OACE,KAAK,SAAU,0BACf,KAAK,UAAU,qBACf,KAAK,OAAO,QAAQ,YAAY,MAAM;AAE1C
|
|
1
|
+
{"version":3,"file":"use-chat-approvals.js","names":[],"sources":["../../src/hooks/use-chat-approvals.ts"],"sourcesContent":["import type { ToolUIPart, UIMessagePart } from 'ai'\nimport { type ComputedRef, computed } from 'vue'\n\nimport { executeRequestTool } from '@/client-tools/execute-request'\nimport { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME } from '@/entities'\nimport { createDocumentSettings } from '@/helpers'\nimport { type Tools, useState } from '@/state/state'\n\ntype RequestToolPart = ToolUIPart & {\n type: 'tool-execute-request'\n state: 'input-available'\n input: Tools['execute-request']['input']\n}\n\nexport function requestPartRequiresApproval(part: UIMessagePart<any, Tools>): part is RequestToolPart {\n return (\n part.type === (`tool-${EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME}` as const) &&\n part.state === 'input-available' &&\n part.input?.method?.toLowerCase() !== 'get'\n )\n}\n\n/** Exposes pending request approvals without leaking SDK implementation types. */\nexport function useRequestApprovals(): {\n approvalRequiredParts: ComputedRef<RequestToolPart[]>\n respondToRequestApprovals: (approved: boolean) => Promise<void>\n} {\n const state = useState()\n\n const approvalRequiredParts = computed(() => {\n return state.chat.messages\n .filter((message) => message.parts.some(requestPartRequiresApproval))\n .flatMap((message) => message.parts)\n .filter(requestPartRequiresApproval) as RequestToolPart[]\n })\n\n async function respondToRequestApprovals(approved: boolean) {\n const approvalPromises = approvalRequiredParts.value.map(async (toolPart) => {\n if (!approved) {\n return await state.chat.addToolOutput({\n tool: EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME,\n toolCallId: toolPart.toolCallId,\n state: 'output-error',\n errorText: 'The user denied the request.',\n })\n }\n\n await executeRequestTool({\n documentSettings: createDocumentSettings(state.workspaceStore),\n proxyUrl: state.proxyUrl.value,\n input: toolPart.input,\n toolCallId: toolPart.toolCallId,\n chat: state.chat,\n })\n })\n\n await Promise.all(approvalPromises)\n }\n\n return { approvalRequiredParts, respondToRequestApprovals }\n}\n"],"mappings":";;;;;;AAcA,SAAgB,4BAA4B,MAA0D;CACpG,OACE,KAAK,SAAU,0BACf,KAAK,UAAU,qBACf,KAAK,OAAO,QAAQ,YAAY,MAAM;AAE1C;;AAGA,SAAgB,sBAGd;CACA,MAAM,QAAQ,SAAS;CAEvB,MAAM,wBAAwB,eAAe;EAC3C,OAAO,MAAM,KAAK,SACf,QAAQ,YAAY,QAAQ,MAAM,KAAK,2BAA2B,CAAC,CAAC,CACpE,SAAS,YAAY,QAAQ,KAAK,CAAC,CACnC,OAAO,2BAA2B;CACvC,CAAC;CAED,eAAe,0BAA0B,UAAmB;EAC1D,MAAM,mBAAmB,sBAAsB,MAAM,IAAI,OAAO,aAAa;GAC3E,IAAI,CAAC,UACH,OAAO,MAAM,MAAM,KAAK,cAAc;IACpC,MAAM;IACN,YAAY,SAAS;IACrB,OAAO;IACP,WAAW;GACb,CAAC;GAGH,MAAM,mBAAmB;IACvB,kBAAkB,uBAAuB,MAAM,cAAc;IAC7D,UAAU,MAAM,SAAS;IACzB,OAAO,SAAS;IAChB,YAAY,SAAS;IACrB,MAAM,MAAM;GACd,CAAC;EACH,CAAC;EAED,MAAM,QAAQ,IAAI,gBAAgB;CACpC;CAEA,OAAO;EAAE;EAAuB;CAA0B;AAC5D"}
|
|
@@ -1,19 +1,11 @@
|
|
|
1
|
+
import type { ToolUIPart } from 'ai';
|
|
2
|
+
import { type ComputedRef } from 'vue';
|
|
3
|
+
type PendingClientToolPart = ToolUIPart & {
|
|
4
|
+
state: 'input-available';
|
|
5
|
+
};
|
|
6
|
+
/** Exposes pending client tools without leaking SDK implementation types. */
|
|
1
7
|
export declare function useChatPendingClientToolParts(): {
|
|
2
|
-
pendingClientToolParts:
|
|
3
|
-
type: `tool-${string}`;
|
|
4
|
-
} & {
|
|
5
|
-
toolCallId: string;
|
|
6
|
-
title?: string;
|
|
7
|
-
providerExecuted?: boolean;
|
|
8
|
-
} & {
|
|
9
|
-
state: "input-available";
|
|
10
|
-
input: unknown;
|
|
11
|
-
output?: never;
|
|
12
|
-
errorText?: never;
|
|
13
|
-
callProviderMetadata?: import("ai").ProviderMetadata;
|
|
14
|
-
approval?: never;
|
|
15
|
-
} & {
|
|
16
|
-
state: "input-available";
|
|
17
|
-
})[]>;
|
|
8
|
+
pendingClientToolParts: ComputedRef<PendingClientToolPart[]>;
|
|
18
9
|
};
|
|
10
|
+
export {};
|
|
19
11
|
//# sourceMappingURL=use-chat-pending-client-tool-parts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-chat-pending-client-tool-parts.d.ts","sourceRoot":"","sources":["../../src/hooks/use-chat-pending-client-tool-parts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-chat-pending-client-tool-parts.d.ts","sourceRoot":"","sources":["../../src/hooks/use-chat-pending-client-tool-parts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA0B,MAAM,IAAI,CAAA;AAC5D,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,KAAK,CAAA;AAIhD,KAAK,qBAAqB,GAAG,UAAU,GAAG;IAAE,KAAK,EAAE,iBAAiB,CAAA;CAAE,CAAA;AAMtE,6EAA6E;AAC7E,wBAAgB,6BAA6B,IAAI;IAC/C,sBAAsB,EAAE,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAA;CAC7D,CAWA"}
|
|
@@ -4,6 +4,7 @@ import { computed } from "vue";
|
|
|
4
4
|
function isPendingClientToolPart(part) {
|
|
5
5
|
return part.type.startsWith("tool") && part.state === "input-available";
|
|
6
6
|
}
|
|
7
|
+
/** Exposes pending client tools without leaking SDK implementation types. */
|
|
7
8
|
function useChatPendingClientToolParts() {
|
|
8
9
|
const state = useState();
|
|
9
10
|
return { pendingClientToolParts: computed(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-chat-pending-client-tool-parts.js","names":[],"sources":["../../src/hooks/use-chat-pending-client-tool-parts.ts"],"sourcesContent":["import type { ToolUIPart, UIMessagePart, UITools } from 'ai'\nimport { computed } from 'vue'\n\nimport { useState } from '@/state/state'\n\ntype PendingClientToolPart = ToolUIPart & { state: 'input-available' }\n\nfunction isPendingClientToolPart(part: UIMessagePart<any, UITools>): part is PendingClientToolPart {\n return part.type.startsWith('tool') && (part as ToolUIPart).state === 'input-available'\n}\n\nexport function useChatPendingClientToolParts() {\n const state = useState()\n\n const pendingClientToolParts = computed(() => {\n return state.chat.messages\n .filter((message) => message.parts.some(isPendingClientToolPart))\n .flatMap((message) => message.parts)\n .filter(isPendingClientToolPart) as PendingClientToolPart[]\n })\n\n return { pendingClientToolParts }\n}\n"],"mappings":";;;AAOA,SAAS,wBAAwB,MAAkE;CACjG,OAAO,KAAK,KAAK,WAAW,MAAM,KAAM,KAAoB,UAAU;AACxE
|
|
1
|
+
{"version":3,"file":"use-chat-pending-client-tool-parts.js","names":[],"sources":["../../src/hooks/use-chat-pending-client-tool-parts.ts"],"sourcesContent":["import type { ToolUIPart, UIMessagePart, UITools } from 'ai'\nimport { type ComputedRef, computed } from 'vue'\n\nimport { useState } from '@/state/state'\n\ntype PendingClientToolPart = ToolUIPart & { state: 'input-available' }\n\nfunction isPendingClientToolPart(part: UIMessagePart<any, UITools>): part is PendingClientToolPart {\n return part.type.startsWith('tool') && (part as ToolUIPart).state === 'input-available'\n}\n\n/** Exposes pending client tools without leaking SDK implementation types. */\nexport function useChatPendingClientToolParts(): {\n pendingClientToolParts: ComputedRef<PendingClientToolPart[]>\n} {\n const state = useState()\n\n const pendingClientToolParts = computed(() => {\n return state.chat.messages\n .filter((message) => message.parts.some(isPendingClientToolPart))\n .flatMap((message) => message.parts)\n .filter(isPendingClientToolPart) as PendingClientToolPart[]\n })\n\n return { pendingClientToolParts }\n}\n"],"mappings":";;;AAOA,SAAS,wBAAwB,MAAkE;CACjG,OAAO,KAAK,KAAK,WAAW,MAAM,KAAM,KAAoB,UAAU;AACxE;;AAGA,SAAgB,gCAEd;CACA,MAAM,QAAQ,SAAS;CASvB,OAAO,EAAE,wBAPsB,eAAe;EAC5C,OAAO,MAAM,KAAK,SACf,QAAQ,YAAY,QAAQ,MAAM,KAAK,uBAAuB,CAAC,CAAC,CAChE,SAAS,YAAY,QAAQ,KAAK,CAAC,CACnC,OAAO,uBAAuB;CACnC,CAES,EAAuB;AAClC"}
|
package/dist/package.json
CHANGED
package/dist/style.css
CHANGED
|
@@ -1024,7 +1024,7 @@
|
|
|
1024
1024
|
display: contents;
|
|
1025
1025
|
}
|
|
1026
1026
|
|
|
1027
|
-
.scalar-app .markdown.markdown-summary.markdown-summary img, .scalar-app .markdown.markdown-summary.markdown-summary svg, .scalar-app .markdown.markdown-summary.markdown-summary hr, .scalar-app .markdown.markdown-summary.markdown-summary pre {
|
|
1027
|
+
.scalar-app .markdown.markdown-summary.markdown-summary [data-markdown-block], .scalar-app .markdown.markdown-summary.markdown-summary img, .scalar-app .markdown.markdown-summary.markdown-summary svg, .scalar-app .markdown.markdown-summary.markdown-summary hr, .scalar-app .markdown.markdown-summary.markdown-summary pre {
|
|
1028
1028
|
display: none;
|
|
1029
1029
|
}
|
|
1030
1030
|
|
|
@@ -1405,12 +1405,12 @@
|
|
|
1405
1405
|
background: linear-gradient(#00000026, #ffffff09);
|
|
1406
1406
|
}
|
|
1407
1407
|
|
|
1408
|
-
.ascii-art-animate .ascii-art-line[data-v-
|
|
1408
|
+
.ascii-art-animate .ascii-art-line[data-v-4f827089] {
|
|
1409
1409
|
border-right: 1ch solid #0000;
|
|
1410
|
-
animation: 4s step-end 1s both typewriter-
|
|
1410
|
+
animation: 4s step-end 1s both typewriter-4f827089, .5s step-end infinite blinkTextCursor-4f827089;
|
|
1411
1411
|
}
|
|
1412
1412
|
|
|
1413
|
-
@keyframes typewriter-
|
|
1413
|
+
@keyframes typewriter-4f827089 {
|
|
1414
1414
|
from {
|
|
1415
1415
|
width: 0;
|
|
1416
1416
|
}
|
|
@@ -1420,7 +1420,7 @@
|
|
|
1420
1420
|
}
|
|
1421
1421
|
}
|
|
1422
1422
|
|
|
1423
|
-
@keyframes blinkTextCursor-
|
|
1423
|
+
@keyframes blinkTextCursor-4f827089 {
|
|
1424
1424
|
0% {
|
|
1425
1425
|
border-right-color: currentColor;
|
|
1426
1426
|
}
|
|
@@ -1553,24 +1553,24 @@
|
|
|
1553
1553
|
display: none;
|
|
1554
1554
|
}
|
|
1555
1555
|
|
|
1556
|
-
[data-v-
|
|
1556
|
+
[data-v-fce866d6] .cm-editor {
|
|
1557
1557
|
background: none;
|
|
1558
1558
|
outline: none;
|
|
1559
1559
|
height: 100%;
|
|
1560
1560
|
padding: 0;
|
|
1561
1561
|
}
|
|
1562
1562
|
|
|
1563
|
-
[data-v-
|
|
1563
|
+
[data-v-fce866d6] .cm-placeholder {
|
|
1564
1564
|
color: var(--scalar-color-3);
|
|
1565
1565
|
}
|
|
1566
1566
|
|
|
1567
|
-
[data-v-
|
|
1567
|
+
[data-v-fce866d6] .cm-content {
|
|
1568
1568
|
font-family: var(--scalar-font-code);
|
|
1569
1569
|
font-size: var(--scalar-small);
|
|
1570
1570
|
padding: 8px 0;
|
|
1571
1571
|
}
|
|
1572
1572
|
|
|
1573
|
-
[data-v-
|
|
1573
|
+
[data-v-fce866d6] .cm-tooltip {
|
|
1574
1574
|
border-radius: var(--scalar-radius);
|
|
1575
1575
|
box-shadow: var(--scalar-shadow-2);
|
|
1576
1576
|
background: var(--scalar-background-1) !important;
|
|
@@ -1579,47 +1579,47 @@
|
|
|
1579
1579
|
overflow: hidden !important;
|
|
1580
1580
|
}
|
|
1581
1581
|
|
|
1582
|
-
[data-v-
|
|
1582
|
+
[data-v-fce866d6] .cm-tooltip-autocomplete ul li {
|
|
1583
1583
|
padding: 3px 6px !important;
|
|
1584
1584
|
}
|
|
1585
1585
|
|
|
1586
|
-
[data-v-
|
|
1586
|
+
[data-v-fce866d6] .cm-completionIcon-type:after {
|
|
1587
1587
|
color: var(--scalar-color-3) !important;
|
|
1588
1588
|
}
|
|
1589
1589
|
|
|
1590
|
-
[data-v-
|
|
1590
|
+
[data-v-fce866d6] .cm-tooltip-autocomplete ul li[aria-selected] {
|
|
1591
1591
|
background: var(--scalar-background-2) !important;
|
|
1592
1592
|
color: var(--scalar-color-1) !important;
|
|
1593
1593
|
}
|
|
1594
1594
|
|
|
1595
|
-
[data-v-
|
|
1595
|
+
[data-v-fce866d6] .cm-tooltip-autocomplete ul {
|
|
1596
1596
|
position: relative;
|
|
1597
1597
|
padding: 6px !important;
|
|
1598
1598
|
}
|
|
1599
1599
|
|
|
1600
|
-
[data-v-
|
|
1600
|
+
[data-v-fce866d6] .cm-tooltip-autocomplete ul li:hover {
|
|
1601
1601
|
border-radius: 3px;
|
|
1602
1602
|
color: var(--scalar-color-1) !important;
|
|
1603
1603
|
background: var(--scalar-background-3) !important;
|
|
1604
1604
|
}
|
|
1605
1605
|
|
|
1606
|
-
[data-v-
|
|
1606
|
+
[data-v-fce866d6] .cm-activeLine, [data-v-fce866d6] .cm-activeLineGutter {
|
|
1607
1607
|
background-color: #0000;
|
|
1608
1608
|
}
|
|
1609
1609
|
|
|
1610
|
-
[data-v-
|
|
1610
|
+
[data-v-fce866d6] .cm-selectionMatch, [data-v-fce866d6] .cm-matchingBracket {
|
|
1611
1611
|
border-radius: var(--scalar-radius);
|
|
1612
1612
|
background: var(--scalar-background-4) !important;
|
|
1613
1613
|
}
|
|
1614
1614
|
|
|
1615
|
-
[data-v-
|
|
1615
|
+
[data-v-fce866d6] .cm-css-color-picker-wrapper {
|
|
1616
1616
|
outline: 1px solid var(--scalar-background-3);
|
|
1617
1617
|
border-radius: 3px;
|
|
1618
1618
|
display: inline-flex;
|
|
1619
1619
|
overflow: hidden;
|
|
1620
1620
|
}
|
|
1621
1621
|
|
|
1622
|
-
[data-v-
|
|
1622
|
+
[data-v-fce866d6] .cm-gutters {
|
|
1623
1623
|
color: var(--scalar-color-3);
|
|
1624
1624
|
font-size: var(--scalar-small);
|
|
1625
1625
|
background-color: #0000;
|
|
@@ -1628,7 +1628,7 @@
|
|
|
1628
1628
|
line-height: 22px;
|
|
1629
1629
|
}
|
|
1630
1630
|
|
|
1631
|
-
[data-v-
|
|
1631
|
+
[data-v-fce866d6] .cm-gutters:before {
|
|
1632
1632
|
content: "";
|
|
1633
1633
|
border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);
|
|
1634
1634
|
background-color: var(--scalar-background-1);
|
|
@@ -1639,7 +1639,7 @@
|
|
|
1639
1639
|
left: 2px;
|
|
1640
1640
|
}
|
|
1641
1641
|
|
|
1642
|
-
[data-v-
|
|
1642
|
+
[data-v-fce866d6] .cm-gutterElement {
|
|
1643
1643
|
justify-content: flex-end;
|
|
1644
1644
|
align-items: center;
|
|
1645
1645
|
display: flex;
|
|
@@ -1649,27 +1649,27 @@
|
|
|
1649
1649
|
padding-right: 6px !important;
|
|
1650
1650
|
}
|
|
1651
1651
|
|
|
1652
|
-
[data-v-
|
|
1652
|
+
[data-v-fce866d6] .cm-lineNumbers .cm-gutterElement {
|
|
1653
1653
|
min-width: fit-content;
|
|
1654
1654
|
}
|
|
1655
1655
|
|
|
1656
|
-
[data-v-
|
|
1656
|
+
[data-v-fce866d6] .cm-gutter + .cm-gutter :not(.cm-foldGutter) .cm-gutterElement {
|
|
1657
1657
|
padding-left: 0 !important;
|
|
1658
1658
|
}
|
|
1659
1659
|
|
|
1660
|
-
[data-v-
|
|
1660
|
+
[data-v-fce866d6] .cm-scroller {
|
|
1661
1661
|
overflow: auto;
|
|
1662
1662
|
}
|
|
1663
1663
|
|
|
1664
|
-
[data-v-
|
|
1664
|
+
[data-v-fce866d6] .cm-lineWrapping .cm-line {
|
|
1665
1665
|
word-break: break-all;
|
|
1666
1666
|
}
|
|
1667
1667
|
|
|
1668
|
-
[data-v-
|
|
1668
|
+
[data-v-fce866d6] .cm-content.cm-lineWrapping {
|
|
1669
1669
|
white-space: pre-wrap;
|
|
1670
1670
|
}
|
|
1671
1671
|
|
|
1672
|
-
.line-wrapping[data-v-
|
|
1672
|
+
.line-wrapping[data-v-fce866d6]:focus-within .cm-content {
|
|
1673
1673
|
white-space: break-spaces;
|
|
1674
1674
|
word-break: break-all;
|
|
1675
1675
|
min-height: fit-content;
|
|
@@ -1765,12 +1765,12 @@
|
|
|
1765
1765
|
color: var(--scalar-color-1);
|
|
1766
1766
|
}
|
|
1767
1767
|
|
|
1768
|
-
.code-input-lite[data-v-
|
|
1768
|
+
.code-input-lite[data-v-5e6007a2] {
|
|
1769
1769
|
align-items: center;
|
|
1770
1770
|
display: flex;
|
|
1771
1771
|
}
|
|
1772
1772
|
|
|
1773
|
-
.code-input-lite__editor[data-v-
|
|
1773
|
+
.code-input-lite__editor[data-v-5e6007a2] {
|
|
1774
1774
|
font: inherit;
|
|
1775
1775
|
letter-spacing: inherit;
|
|
1776
1776
|
min-width: 0;
|
|
@@ -1788,11 +1788,11 @@
|
|
|
1788
1788
|
overflow: auto hidden;
|
|
1789
1789
|
}
|
|
1790
1790
|
|
|
1791
|
-
.code-input-lite__editor[data-v-
|
|
1791
|
+
.code-input-lite__editor[data-v-5e6007a2]::-webkit-scrollbar {
|
|
1792
1792
|
display: none;
|
|
1793
1793
|
}
|
|
1794
1794
|
|
|
1795
|
-
.code-input-lite--empty .code-input-lite__editor[data-v-
|
|
1795
|
+
.code-input-lite--empty .code-input-lite__editor[data-v-5e6007a2]:not(:focus):before {
|
|
1796
1796
|
content: attr(data-placeholder);
|
|
1797
1797
|
color: var(--scalar-color-3);
|
|
1798
1798
|
pointer-events: none;
|
|
@@ -1804,7 +1804,7 @@
|
|
|
1804
1804
|
left: .5em;
|
|
1805
1805
|
}
|
|
1806
1806
|
|
|
1807
|
-
.code-input-lite--error .code-input-lite__editor[data-v-
|
|
1807
|
+
.code-input-lite--error .code-input-lite__editor[data-v-5e6007a2] {
|
|
1808
1808
|
outline: 1px solid var(--scalar-color-red);
|
|
1809
1809
|
}
|
|
1810
1810
|
|
|
@@ -1868,18 +1868,18 @@
|
|
|
1868
1868
|
}
|
|
1869
1869
|
}
|
|
1870
1870
|
|
|
1871
|
-
[data-v-
|
|
1871
|
+
[data-v-09f26d90] .code-input-lite__editor {
|
|
1872
1872
|
font-family: var(--scalar-font);
|
|
1873
1873
|
font-size: var(--scalar-small);
|
|
1874
1874
|
background-color: #0000;
|
|
1875
1875
|
padding: 5px 8px;
|
|
1876
1876
|
}
|
|
1877
1877
|
|
|
1878
|
-
[data-v-
|
|
1878
|
+
[data-v-09f26d90] .scalar-pill:not(:last-of-type) {
|
|
1879
1879
|
margin-right: .15em;
|
|
1880
1880
|
}
|
|
1881
1881
|
|
|
1882
|
-
[data-v-
|
|
1882
|
+
[data-v-09f26d90] .scalar-pill:not(:first-of-type) {
|
|
1883
1883
|
margin-left: .5px;
|
|
1884
1884
|
}
|
|
1885
1885
|
|
|
@@ -1943,59 +1943,59 @@ input[data-v-029a43f5]::placeholder {
|
|
|
1943
1943
|
scrollbar-width: none;
|
|
1944
1944
|
}
|
|
1945
1945
|
|
|
1946
|
-
.request-section-content[data-v-
|
|
1946
|
+
.request-section-content[data-v-f9196c85] {
|
|
1947
1947
|
--scalar-border-width: .5px;
|
|
1948
1948
|
}
|
|
1949
1949
|
|
|
1950
|
-
.request-section-content-filter[data-v-
|
|
1950
|
+
.request-section-content-filter[data-v-f9196c85] {
|
|
1951
1951
|
box-shadow: 0 -10px 0 10px var(--scalar-background-1);
|
|
1952
1952
|
}
|
|
1953
1953
|
|
|
1954
|
-
.request-item:focus-within .request-meta-buttons[data-v-
|
|
1954
|
+
.request-item:focus-within .request-meta-buttons[data-v-f9196c85] {
|
|
1955
1955
|
opacity: 1;
|
|
1956
1956
|
}
|
|
1957
1957
|
|
|
1958
|
-
.group-hover-input[data-v-
|
|
1958
|
+
.group-hover-input[data-v-f9196c85] {
|
|
1959
1959
|
border-width: var(--scalar-border-width);
|
|
1960
1960
|
border-color: #0000;
|
|
1961
1961
|
}
|
|
1962
1962
|
|
|
1963
|
-
.group:hover .group-hover-input[data-v-
|
|
1963
|
+
.group:hover .group-hover-input[data-v-f9196c85] {
|
|
1964
1964
|
background: var(--scalar-background-1);
|
|
1965
1965
|
}
|
|
1966
1966
|
|
|
1967
1967
|
@supports (color: color-mix(in lab, red, red)) {
|
|
1968
|
-
.group:hover .group-hover-input[data-v-
|
|
1968
|
+
.group:hover .group-hover-input[data-v-f9196c85] {
|
|
1969
1969
|
background: color-mix(in srgb, var(--scalar-background-1), var(--scalar-background-2));
|
|
1970
1970
|
}
|
|
1971
1971
|
}
|
|
1972
1972
|
|
|
1973
|
-
.group:hover .group-hover-input[data-v-
|
|
1973
|
+
.group:hover .group-hover-input[data-v-f9196c85] {
|
|
1974
1974
|
border-color: var(--scalar-border-color);
|
|
1975
1975
|
}
|
|
1976
1976
|
|
|
1977
|
-
.group-hover-input[data-v-
|
|
1977
|
+
.group-hover-input[data-v-f9196c85]:focus {
|
|
1978
1978
|
border-color: var(--scalar-border-color) !important;
|
|
1979
1979
|
background: none !important;
|
|
1980
1980
|
}
|
|
1981
1981
|
|
|
1982
|
-
[data-v-
|
|
1982
|
+
[data-v-973d48ca] .cm-editor {
|
|
1983
1983
|
font-size: var(--scalar-small);
|
|
1984
1984
|
background-color: #0000;
|
|
1985
1985
|
outline: none;
|
|
1986
1986
|
}
|
|
1987
1987
|
|
|
1988
|
-
[data-v-
|
|
1988
|
+
[data-v-973d48ca] .cm-gutters {
|
|
1989
1989
|
background-color: var(--scalar-background-1);
|
|
1990
1990
|
border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);
|
|
1991
1991
|
}
|
|
1992
1992
|
|
|
1993
|
-
[data-v-
|
|
1993
|
+
[data-v-973d48ca] .cm-scroller {
|
|
1994
1994
|
min-width: 100%;
|
|
1995
1995
|
overflow: auto;
|
|
1996
1996
|
}
|
|
1997
1997
|
|
|
1998
|
-
[data-v-
|
|
1998
|
+
[data-v-973d48ca] .cm-lineWrapping .cm-line {
|
|
1999
1999
|
word-break: break-all;
|
|
2000
2000
|
}
|
|
2001
2001
|
|
|
@@ -2201,12 +2201,12 @@ input[data-v-029a43f5]::placeholder {
|
|
|
2201
2201
|
--scalar-address-bar-bg: var(--scalar-background-1);
|
|
2202
2202
|
}
|
|
2203
2203
|
|
|
2204
|
-
.app-exit-button[data-v-
|
|
2204
|
+
.app-exit-button[data-v-3a29d7a0] {
|
|
2205
2205
|
color: #fff;
|
|
2206
2206
|
background: #0000001a;
|
|
2207
2207
|
}
|
|
2208
2208
|
|
|
2209
|
-
.app-exit-button[data-v-
|
|
2209
|
+
.app-exit-button[data-v-3a29d7a0]:hover {
|
|
2210
2210
|
background: #ffffff1a;
|
|
2211
2211
|
}
|
|
2212
2212
|
|
|
@@ -2875,6 +2875,10 @@ input[data-v-029a43f5]::placeholder {
|
|
|
2875
2875
|
width: fit-content !important;
|
|
2876
2876
|
}
|
|
2877
2877
|
|
|
2878
|
+
.scalar-app .w-2\/3 {
|
|
2879
|
+
width: 66.6667%;
|
|
2880
|
+
}
|
|
2881
|
+
|
|
2878
2882
|
.scalar-app .w-\[38px\] {
|
|
2879
2883
|
width: 38px;
|
|
2880
2884
|
}
|
|
@@ -3651,6 +3655,10 @@ input[data-v-029a43f5]::placeholder {
|
|
|
3651
3655
|
color: var(--scalar-button-1-color);
|
|
3652
3656
|
}
|
|
3653
3657
|
|
|
3658
|
+
.scalar-app .text-current {
|
|
3659
|
+
color: currentColor;
|
|
3660
|
+
}
|
|
3661
|
+
|
|
3654
3662
|
.scalar-app .text-transparent {
|
|
3655
3663
|
color: #0000;
|
|
3656
3664
|
}
|
|
@@ -4092,6 +4100,10 @@ input[data-v-029a43f5]::placeholder {
|
|
|
4092
4100
|
content: var(--tw-content);
|
|
4093
4101
|
}
|
|
4094
4102
|
|
|
4103
|
+
.scalar-app .first\:ml-auto:first-child {
|
|
4104
|
+
margin-left: auto;
|
|
4105
|
+
}
|
|
4106
|
+
|
|
4095
4107
|
.scalar-app .first\:rounded-t-\[inherit\]:first-child {
|
|
4096
4108
|
border-top-left-radius: inherit;
|
|
4097
4109
|
border-top-right-radius: inherit;
|
|
@@ -4117,6 +4129,10 @@ input[data-v-029a43f5]::placeholder {
|
|
|
4117
4129
|
border-bottom-width: 0;
|
|
4118
4130
|
}
|
|
4119
4131
|
|
|
4132
|
+
.scalar-app .empty\:hidden:empty {
|
|
4133
|
+
display: none;
|
|
4134
|
+
}
|
|
4135
|
+
|
|
4120
4136
|
.scalar-app .focus-within\:opacity-100:focus-within {
|
|
4121
4137
|
opacity: 1;
|
|
4122
4138
|
}
|
|
@@ -5252,7 +5268,7 @@ input[data-v-029a43f5]::placeholder {
|
|
|
5252
5268
|
gap: 10px;
|
|
5253
5269
|
}
|
|
5254
5270
|
|
|
5255
|
-
.approvalSection[data-v-
|
|
5271
|
+
.approvalSection[data-v-f493d089] {
|
|
5256
5272
|
width: 100%;
|
|
5257
5273
|
margin-bottom: -16px;
|
|
5258
5274
|
padding: 8px 8px 24px 12px;
|
|
@@ -5271,15 +5287,15 @@ input[data-v-029a43f5]::placeholder {
|
|
|
5271
5287
|
top: 0;
|
|
5272
5288
|
transform: translate3d(0, calc(-100% + 16px), 0);
|
|
5273
5289
|
}
|
|
5274
|
-
.approvalText[data-v-
|
|
5290
|
+
.approvalText[data-v-f493d089] {
|
|
5275
5291
|
font-weight: var(--scalar-semibold);
|
|
5276
5292
|
font-size: var(--scalar-font-size-3);
|
|
5277
5293
|
}
|
|
5278
|
-
.approveContainer[data-v-
|
|
5294
|
+
.approveContainer[data-v-f493d089] {
|
|
5279
5295
|
display: flex;
|
|
5280
5296
|
gap: 5px;
|
|
5281
5297
|
}
|
|
5282
|
-
.actionButton[data-v-
|
|
5298
|
+
.actionButton[data-v-f493d089] {
|
|
5283
5299
|
display: flex;
|
|
5284
5300
|
align-items: center;
|
|
5285
5301
|
font-weight: var(--scalar-semibold);
|
|
@@ -5287,12 +5303,12 @@ input[data-v-029a43f5]::placeholder {
|
|
|
5287
5303
|
padding: 6px 12px;
|
|
5288
5304
|
font-size: var(--scalar-font-size-3);
|
|
5289
5305
|
}
|
|
5290
|
-
.rejectButton[data-v-
|
|
5306
|
+
.rejectButton[data-v-f493d089] {
|
|
5291
5307
|
color: white;
|
|
5292
5308
|
background: var(--scalar-color-red);
|
|
5293
5309
|
}
|
|
5294
|
-
.rejectButton[data-v-
|
|
5295
|
-
.rejectButton[data-v-
|
|
5310
|
+
.rejectButton[data-v-f493d089]:hover,
|
|
5311
|
+
.rejectButton[data-v-f493d089]:active {
|
|
5296
5312
|
background: color-mix(
|
|
5297
5313
|
in srgb,
|
|
5298
5314
|
var(--scalar-color-red),
|
|
@@ -5300,12 +5316,12 @@ input[data-v-029a43f5]::placeholder {
|
|
|
5300
5316
|
);
|
|
5301
5317
|
color: white !important;
|
|
5302
5318
|
}
|
|
5303
|
-
.approveButton[data-v-
|
|
5319
|
+
.approveButton[data-v-f493d089] {
|
|
5304
5320
|
color: white;
|
|
5305
5321
|
background: var(--scalar-color-blue);
|
|
5306
5322
|
}
|
|
5307
|
-
.approveButton[data-v-
|
|
5308
|
-
.approveButton[data-v-
|
|
5323
|
+
.approveButton[data-v-f493d089]:hover,
|
|
5324
|
+
.approveButton[data-v-f493d089]:active {
|
|
5309
5325
|
background: color-mix(
|
|
5310
5326
|
in srgb,
|
|
5311
5327
|
var(--scalar-color-blue),
|
package/dist/vue-styles.css
CHANGED
|
@@ -592,7 +592,7 @@
|
|
|
592
592
|
gap: 10px;
|
|
593
593
|
}
|
|
594
594
|
|
|
595
|
-
.approvalSection[data-v-
|
|
595
|
+
.approvalSection[data-v-f493d089] {
|
|
596
596
|
width: 100%;
|
|
597
597
|
margin-bottom: -16px;
|
|
598
598
|
padding: 8px 8px 24px 12px;
|
|
@@ -611,15 +611,15 @@
|
|
|
611
611
|
top: 0;
|
|
612
612
|
transform: translate3d(0, calc(-100% + 16px), 0);
|
|
613
613
|
}
|
|
614
|
-
.approvalText[data-v-
|
|
614
|
+
.approvalText[data-v-f493d089] {
|
|
615
615
|
font-weight: var(--scalar-semibold);
|
|
616
616
|
font-size: var(--scalar-font-size-3);
|
|
617
617
|
}
|
|
618
|
-
.approveContainer[data-v-
|
|
618
|
+
.approveContainer[data-v-f493d089] {
|
|
619
619
|
display: flex;
|
|
620
620
|
gap: 5px;
|
|
621
621
|
}
|
|
622
|
-
.actionButton[data-v-
|
|
622
|
+
.actionButton[data-v-f493d089] {
|
|
623
623
|
display: flex;
|
|
624
624
|
align-items: center;
|
|
625
625
|
font-weight: var(--scalar-semibold);
|
|
@@ -627,12 +627,12 @@
|
|
|
627
627
|
padding: 6px 12px;
|
|
628
628
|
font-size: var(--scalar-font-size-3);
|
|
629
629
|
}
|
|
630
|
-
.rejectButton[data-v-
|
|
630
|
+
.rejectButton[data-v-f493d089] {
|
|
631
631
|
color: white;
|
|
632
632
|
background: var(--scalar-color-red);
|
|
633
633
|
}
|
|
634
|
-
.rejectButton[data-v-
|
|
635
|
-
.rejectButton[data-v-
|
|
634
|
+
.rejectButton[data-v-f493d089]:hover,
|
|
635
|
+
.rejectButton[data-v-f493d089]:active {
|
|
636
636
|
background: color-mix(
|
|
637
637
|
in srgb,
|
|
638
638
|
var(--scalar-color-red),
|
|
@@ -640,12 +640,12 @@
|
|
|
640
640
|
);
|
|
641
641
|
color: white !important;
|
|
642
642
|
}
|
|
643
|
-
.approveButton[data-v-
|
|
643
|
+
.approveButton[data-v-f493d089] {
|
|
644
644
|
color: white;
|
|
645
645
|
background: var(--scalar-color-blue);
|
|
646
646
|
}
|
|
647
|
-
.approveButton[data-v-
|
|
648
|
-
.approveButton[data-v-
|
|
647
|
+
.approveButton[data-v-f493d089]:hover,
|
|
648
|
+
.approveButton[data-v-f493d089]:active {
|
|
649
649
|
background: color-mix(
|
|
650
650
|
in srgb,
|
|
651
651
|
var(--scalar-color-blue),
|
package/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.12.
|
|
13
|
+
"version": "0.12.44",
|
|
14
14
|
"engines": {
|
|
15
15
|
"node": ">=22"
|
|
16
16
|
},
|
|
@@ -45,28 +45,28 @@
|
|
|
45
45
|
"dist"
|
|
46
46
|
],
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@ai-sdk/vue": "3.0.
|
|
49
|
-
"@scalar/api-client": "3.23.
|
|
50
|
-
"@scalar/components": "0.
|
|
51
|
-
"@scalar/helpers": "0.16.
|
|
52
|
-
"@scalar/icons": "0.7.
|
|
53
|
-
"@scalar/json-magic": "0.
|
|
48
|
+
"@ai-sdk/vue": "3.0.214",
|
|
49
|
+
"@scalar/api-client": "3.23.1",
|
|
50
|
+
"@scalar/components": "0.32.0",
|
|
51
|
+
"@scalar/helpers": "0.16.4",
|
|
52
|
+
"@scalar/icons": "0.7.7",
|
|
53
|
+
"@scalar/json-magic": "0.16.0",
|
|
54
54
|
"@scalar/openapi-types": "0.9.8",
|
|
55
|
-
"@scalar/schemas": "0.
|
|
56
|
-
"@scalar/themes": "0.19.
|
|
57
|
-
"@scalar/types": "0.
|
|
55
|
+
"@scalar/schemas": "0.14.0",
|
|
56
|
+
"@scalar/themes": "0.19.2",
|
|
57
|
+
"@scalar/types": "0.24.0",
|
|
58
58
|
"@scalar/use-toasts": "0.10.5",
|
|
59
59
|
"@scalar/validation": "0.6.7",
|
|
60
|
-
"@scalar/workspace-store": "0.68.
|
|
60
|
+
"@scalar/workspace-store": "0.68.4",
|
|
61
61
|
"@vueuse/core": "13.9.0",
|
|
62
|
-
"ai": "6.0.
|
|
62
|
+
"ai": "6.0.214",
|
|
63
63
|
"js-base64": "^3.9.2",
|
|
64
64
|
"neverpanic": "0.0.8",
|
|
65
65
|
"truncate-json": "3.0.1",
|
|
66
66
|
"vue": "^3.5.40"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@scalar/sidebar": "0.12.
|
|
69
|
+
"@scalar/sidebar": "0.12.1",
|
|
70
70
|
"@tailwindcss/cli": "^4.3.3",
|
|
71
71
|
"@tailwindcss/vite": "^4.3.3",
|
|
72
72
|
"@types/jsdom": "28.0.1",
|