@scalar/agent-chat 0.4.7 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/App.vue.d.ts +56 -1
  2. package/dist/App.vue.d.ts.map +1 -1
  3. package/dist/App.vue.js +25 -20
  4. package/dist/Chat.vue.d.ts +5 -1
  5. package/dist/Chat.vue.d.ts.map +1 -1
  6. package/dist/Chat.vue.js +26 -22
  7. package/dist/client-tools/execute-request.d.ts +72 -0
  8. package/dist/client-tools/execute-request.d.ts.map +1 -0
  9. package/dist/client-tools/execute-request.js +92 -0
  10. package/dist/components/ActionsDropdown.vue.d.ts +17 -0
  11. package/dist/components/ActionsDropdown.vue.d.ts.map +1 -0
  12. package/dist/components/ActionsDropdown.vue.js +7 -0
  13. package/dist/components/ActionsDropdown.vue2.js +50 -0
  14. package/dist/components/FreeMessagesInfoSection.vue.d.ts.map +1 -1
  15. package/dist/components/FreeMessagesInfoSection.vue.js +2 -2
  16. package/dist/components/FreeMessagesInfoSection.vue2.js +19 -19
  17. package/dist/components/RequestPreview.vue.d.ts +3 -3
  18. package/dist/components/RequestPreview.vue.d.ts.map +1 -1
  19. package/dist/components/RequestPreview.vue.js +2 -2
  20. package/dist/components/RequestPreview.vue2.js +31 -31
  21. package/dist/entities/index.d.ts +1 -1
  22. package/dist/entities/index.d.ts.map +1 -1
  23. package/dist/entities/index.js +16 -16
  24. package/dist/entities/registry/document.d.ts +1 -0
  25. package/dist/entities/registry/document.d.ts.map +1 -1
  26. package/dist/entities/tools/execute-request.d.ts +27 -34
  27. package/dist/entities/tools/execute-request.d.ts.map +1 -1
  28. package/dist/entities/tools/execute-request.js +5 -4
  29. package/dist/helpers.d.ts +36 -275
  30. package/dist/helpers.d.ts.map +1 -1
  31. package/dist/helpers.js +44 -86
  32. package/dist/hooks/use-chat-approvals.d.ts +17 -10
  33. package/dist/hooks/use-chat-approvals.d.ts.map +1 -1
  34. package/dist/hooks/use-chat-approvals.js +28 -15
  35. package/dist/hooks/use-search.d.ts +2 -0
  36. package/dist/hooks/use-search.d.ts.map +1 -1
  37. package/dist/index.d.ts +1 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/package.json +2 -1
  40. package/dist/plugins/persistance.d.ts +16 -0
  41. package/dist/plugins/persistance.d.ts.map +1 -0
  42. package/dist/plugins/persistance.js +23 -0
  43. package/dist/state/state.d.ts +16 -5
  44. package/dist/state/state.d.ts.map +1 -1
  45. package/dist/state/state.js +148 -101
  46. package/dist/style.css +1 -1
  47. package/dist/views/Catalog/Catalog.vue.d.ts +7 -0
  48. package/dist/views/Catalog/Catalog.vue.d.ts.map +1 -0
  49. package/dist/views/Catalog/Catalog.vue.js +8 -0
  50. package/dist/views/Catalog/Catalog.vue2.js +70 -0
  51. package/dist/views/Chat/Chat.vue.d.ts +2 -0
  52. package/dist/views/Chat/Chat.vue.d.ts.map +1 -1
  53. package/dist/views/Chat/Chat.vue.js +1 -1
  54. package/dist/views/Chat/Chat.vue2.js +36 -35
  55. package/dist/views/Chat/Messages/AskForAuthentication.vue.d.ts.map +1 -1
  56. package/dist/views/Chat/Messages/AskForAuthentication.vue.js +2 -2
  57. package/dist/views/Chat/Messages/AskForAuthentication.vue2.js +50 -52
  58. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.d.ts +2 -2
  59. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.d.ts.map +1 -1
  60. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.js +2 -2
  61. package/dist/views/Chat/Messages/ExecuteRequestTool.vue2.js +8 -7
  62. package/dist/views/Layout.vue.d.ts +2 -0
  63. package/dist/views/Layout.vue.d.ts.map +1 -1
  64. package/dist/views/Layout.vue.js +2 -2
  65. package/dist/views/Layout.vue2.js +16 -14
  66. package/dist/views/PromptForm.vue.d.ts +2 -0
  67. package/dist/views/PromptForm.vue.d.ts.map +1 -1
  68. package/dist/views/PromptForm.vue.js +1 -1
  69. package/dist/views/PromptForm.vue2.js +112 -99
  70. package/dist/views/Settings/Auth.vue.d.ts +2 -2
  71. package/dist/views/Settings/Auth.vue.d.ts.map +1 -1
  72. package/dist/views/Settings/Auth.vue.js +32 -32
  73. package/dist/views/Settings/DocSettings.vue.d.ts.map +1 -1
  74. package/dist/views/Settings/DocSettings.vue.js +1 -1
  75. package/dist/views/Settings/DocSettings.vue2.js +22 -21
  76. package/dist/views/Start.vue.d.ts +2 -0
  77. package/dist/views/Start.vue.d.ts.map +1 -1
  78. package/dist/views/Start.vue.js +2 -2
  79. package/dist/views/Start.vue2.js +22 -21
  80. package/package.json +9 -8
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import './style.css';
2
+ export type { ChatExposed } from './App.vue.js';
2
3
  export { default as Chat } from './App.vue.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAA"}
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.4.7",
13
+ "version": "0.5.2",
14
14
  "engines": {
15
15
  "node": ">=20"
16
16
  },
@@ -62,6 +62,7 @@
62
62
  "@vueuse/core": "catalog:*",
63
63
  "ai": "catalog:*",
64
64
  "neverpanic": "catalog:*",
65
+ "truncate-json": "catalog:*",
65
66
  "vue": "catalog:*",
66
67
  "whatwg-mimetype": "catalog:*",
67
68
  "zod": "catalog:*"
@@ -0,0 +1,16 @@
1
+ import type { WorkspacePlugin } from '@scalar/workspace-store/workspace-plugin';
2
+ /**
3
+ * Plugin to persist workspace state changes with debounced writes.
4
+ */
5
+ export declare const persistencePlugin: ({ debounceDelay, maxWait, persistAuth, }: {
6
+ debounceDelay?: number;
7
+ /** Maximum time in milliseconds to wait before forcing execution, even with continuous calls. */
8
+ maxWait?: number;
9
+ /**
10
+ * Determines whether authentication details should be persisted.
11
+ * Accepts a boolean or a function that returns a boolean.
12
+ * Allows for conditional persistence logic, e.g., based on environment or user settings.
13
+ */
14
+ persistAuth?: boolean | (() => boolean);
15
+ }) => WorkspacePlugin;
16
+ //# sourceMappingURL=persistance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistance.d.ts","sourceRoot":"","sources":["../../src/plugins/persistance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAI/E;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,0CAI/B;IACD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iGAAiG;IACjG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAA;CACxC,KAAG,eA8BH,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { debounce as c } from "@scalar/helpers/general/debounce";
2
+ import { authStorage as s } from "../helpers.js";
3
+ const h = ({
4
+ debounceDelay: o = 500,
5
+ maxWait: r = 1e4,
6
+ persistAuth: e = !1
7
+ }) => {
8
+ const { execute: n } = c({ delay: o, maxWait: r }), u = s(), a = () => typeof e == "function" ? e() : e;
9
+ return {
10
+ hooks: {
11
+ /**
12
+ * Handles all workspace state change events.
13
+ * Each write is debounced by a key to prevent frequent writes for the same entity.
14
+ */
15
+ onWorkspaceStateChanges(t) {
16
+ a() && t.type === "auth" && n("auth", () => u.setAuth(t.documentName, t.value));
17
+ }
18
+ }
19
+ };
20
+ };
21
+ export {
22
+ h as persistencePlugin
23
+ };
@@ -8,7 +8,7 @@ import { type ComputedRef, type InjectionKey, type Ref } from 'vue';
8
8
  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
- import type { EXECUTE_REQUEST_TOOL_NAME, ExecuteRequestToolInput, ExecuteRequestToolOutput } from '../entities/tools/execute-request.js';
11
+ import { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME, type ExecuteClientSideRequestToolInput, type ExecuteClientSideRequestToolOutput } from '../entities/tools/execute-request.js';
12
12
  import type { GET_MINI_OPENAPI_SPEC_TOOL_NAME, GetMiniOpenAPIDocToolInput, GetMiniOpenAPIDocToolOutput } from '../entities/tools/get-mini-openapi-spec.js';
13
13
  import type { GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME, GetOpenAPISpecsSummaryToolOutput } from '../entities/tools/get-openapi-spec-summary.js';
14
14
  import type { ChatMode } from '../types';
@@ -21,9 +21,9 @@ export type Tools = {
21
21
  input: GetMiniOpenAPIDocToolInput;
22
22
  output: GetMiniOpenAPIDocToolOutput;
23
23
  };
24
- [EXECUTE_REQUEST_TOOL_NAME]: {
25
- input: ExecuteRequestToolInput;
26
- output: ExecuteRequestToolOutput;
24
+ [EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME]: {
25
+ input: ExecuteClientSideRequestToolInput;
26
+ output: ExecuteClientSideRequestToolOutput;
27
27
  };
28
28
  [GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME]: {
29
29
  input: object;
@@ -47,7 +47,12 @@ type State = {
47
47
  registryUrl: string;
48
48
  dashboardUrl: string;
49
49
  baseUrl: string;
50
+ isLoggedIn?: Ref<boolean>;
50
51
  registryDocuments: Ref<ApiMetadata[]>;
52
+ pendingDocuments: Ref<{
53
+ namespace: string;
54
+ slug: string;
55
+ }[]>;
51
56
  mode: ChatMode;
52
57
  terms: {
53
58
  accepted: Ref<boolean>;
@@ -58,6 +63,11 @@ type State = {
58
63
  slug: string;
59
64
  removable?: boolean;
60
65
  }) => Promise<void>;
66
+ addDocumentAsync: (document: {
67
+ namespace: string;
68
+ slug: string;
69
+ removable?: boolean;
70
+ }) => Promise<void>;
61
71
  removeDocument: (document: {
62
72
  namespace: string;
63
73
  slug: string;
@@ -69,7 +79,7 @@ type State = {
69
79
  curatedDocuments: Ref<ApiMetadata[]>;
70
80
  getActiveDocumentJson?: () => string;
71
81
  };
72
- export declare function createState({ initialRegistryDocuments, registryUrl, dashboardUrl, baseUrl, mode, getAccessToken, getAgentKey, getActiveDocumentJson, prefilledMessageRef, }: {
82
+ export declare function createState({ initialRegistryDocuments, registryUrl, dashboardUrl, baseUrl, mode, isLoggedIn, getAccessToken, getAgentKey, getActiveDocumentJson, prefilledMessageRef, }: {
73
83
  initialRegistryDocuments: {
74
84
  namespace: string;
75
85
  slug: string;
@@ -78,6 +88,7 @@ export declare function createState({ initialRegistryDocuments, registryUrl, das
78
88
  dashboardUrl: string;
79
89
  baseUrl: string;
80
90
  mode: ChatMode;
91
+ isLoggedIn?: Ref<boolean>;
81
92
  getAccessToken?: () => string;
82
93
  getAgentKey?: () => string;
83
94
  getActiveDocumentJson?: () => string;
@@ -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;AAC9D,OAAO,EAAE,KAAK,4BAA4B,EAAmC,MAAM,6BAA6B,CAAA;AAChH,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,gCAAgC,CAAA;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,SAAS,EAEf,MAAM,IAAI,CAAA;AACX,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,GAAG,EAAgC,MAAM,KAAK,CAAA;AAEjG,OAAO,EAAE,KAAK,GAAG,EAAyC,MAAM,OAAO,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EACV,gCAAgC,EAChC,yBAAyB,EAC1B,MAAM,yCAAyC,CAAA;AAChD,OAAO,KAAK,EACV,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EACV,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,wCAAwC,CAAA;AAC/C,OAAO,KAAK,EACV,mCAAmC,EACnC,gCAAgC,EACjC,MAAM,2CAA2C,CAAA;AAKlD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,CAAC,+BAA+B,CAAC,EAAE;QACjC,KAAK,EAAE,0BAA0B,CAAA;QACjC,MAAM,EAAE,2BAA2B,CAAA;KACpC,CAAA;IACD,CAAC,yBAAyB,CAAC,EAAE;QAC3B,KAAK,EAAE,uBAAuB,CAAA;QAC9B,MAAM,EAAE,wBAAwB,CAAA;KACjC,CAAA;IACD,CAAC,mCAAmC,CAAC,EAAE;QACrC,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,gCAAgC,CAAA;KACzC,CAAA;IACD,CAAC,gCAAgC,CAAC,EAAE;QAClC,KAAK,EAAE,yBAAyB,CAAA;QAChC,MAAM,EAAE,OAAO,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,KAAK,CAA0B,CAAA;AAEvE,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAA;IAClD,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7B,aAAa,EAAE,UAAU,CAAA;IACzB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IACjC,MAAM,EAAE,WAAW,CAAC,4BAA4B,CAAC,CAAA;IACjD,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;IACrC,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE;QAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;IACrD,WAAW,EAAE,CAAC,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClG,cAAc,EAAE,CAAC,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACvE,cAAc,CAAC,EAAE,MAAM,MAAM,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,MAAM,CAAA;IAC1B,GAAG,EAAE,GAAG,CAAA;IACR,sBAAsB,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAC/C,gBAAgB,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;IACpC,qBAAqB,CAAC,EAAE,MAAM,MAAM,CAAA;CACrC,CAAA;AA4BD,wBAAgB,WAAW,CAAC,EAC1B,wBAAwB,EACxB,WAAW,EACX,YAAY,EACZ,OAAO,EACP,IAAI,EACJ,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,mBAAmB,GACpB,EAAE;IACD,wBAAwB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC/D,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,QAAQ,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,MAAM,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,MAAM,CAAA;IAC1B,qBAAqB,CAAC,EAAE,MAAM,MAAM,CAAA;IACpC,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAClC,GAAG,KAAK,CAyHR;AAED,wBAAgB,QAAQ,UAQvB"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state/state.ts"],"names":[],"mappings":"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"}
@@ -1,127 +1,174 @@
1
- import { Chat as k } from "@ai-sdk/vue";
2
- import { useModal as L } from "@scalar/components";
3
- import { apiReferenceConfigurationSchema as N } from "@scalar/types/api-reference";
4
- import { createWorkspaceStore as O } from "@scalar/workspace-store/client";
5
- import { createWorkspaceEventBus as Y } from "@scalar/workspace-store/events";
6
- import { DefaultChatTransport as _, lastAssistantMessageIsCompleteWithApprovalResponses as j } from "ai";
7
- import { ref as s, computed as x, watch as C, inject as z } from "vue";
8
- import { createApi as H, createAuthorizationHeaders as I } from "../api.js";
9
- import { createDocumentSettings as P, makeScalarProxyUrl as U } from "../helpers.js";
10
- import { useTermsAndConditions as $ } from "../hooks/use-term-and-conditions.js";
11
- import { loadDocument as q } from "../registry/add-documents-to-store.js";
12
- import { createDocumentName as F } from "../registry/create-document-name.js";
13
- const G = /* @__PURE__ */ Symbol("STATE_SYMBOL");
14
- function J({
15
- registryDocuments: r,
16
- workspaceStore: c,
17
- baseUrl: p,
18
- getAccessToken: n,
19
- getAgentKey: f
1
+ import { Chat as R } from "@ai-sdk/vue";
2
+ import { useModal as Y } from "@scalar/components";
3
+ import { apiReferenceConfigurationSchema as j } from "@scalar/types/api-reference";
4
+ import { createWorkspaceStore as q } from "@scalar/workspace-store/client";
5
+ import { createWorkspaceEventBus as z } from "@scalar/workspace-store/events";
6
+ import { DefaultChatTransport as G, lastAssistantMessageIsCompleteWithToolCalls as H } from "ai";
7
+ import { ref as u, computed as x, watch as A, inject as Q } from "vue";
8
+ import { createApi as U, createAuthorizationHeaders as X } from "../api.js";
9
+ import { executeRequestTool as F } from "../client-tools/execute-request.js";
10
+ import { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME as J } from "../entities/tools/execute-request.js";
11
+ import { createDocumentSettings as _, makeScalarProxyUrl as I } from "../helpers.js";
12
+ import { useTermsAndConditions as V } from "../hooks/use-term-and-conditions.js";
13
+ import { persistencePlugin as Z } from "../plugins/persistance.js";
14
+ import { loadDocument as M } from "../registry/add-documents-to-store.js";
15
+ import { createDocumentName as K } from "../registry/create-document-name.js";
16
+ const tt = /* @__PURE__ */ Symbol("STATE_SYMBOL");
17
+ function et({
18
+ registryDocuments: a,
19
+ workspaceStore: i,
20
+ baseUrl: v,
21
+ getAccessToken: s,
22
+ getAgentKey: D
20
23
  }) {
21
- return new k({
22
- sendAutomaticallyWhen: j,
23
- transport: new _({
24
- api: U(`${p}/vector/openapi/chat`),
25
- headers: () => I({ getAccessToken: n, getAgentKey: f }),
24
+ const f = new R({
25
+ sendAutomaticallyWhen: H,
26
+ transport: new G({
27
+ api: I(`${v}/vector/openapi/chat`),
28
+ headers: () => X({ getAccessToken: s, getAgentKey: D }),
26
29
  body: () => ({
27
- registryDocuments: r.value,
28
- documentSettings: P(c)
30
+ registryDocuments: a.value,
31
+ documentSettings: _(i)
29
32
  })
30
- })
33
+ }),
34
+ async onToolCall({ toolCall: o }) {
35
+ o.dynamic || o.toolName === J && o.input.method.toLowerCase() === "get" && await F({
36
+ documentSettings: _(i),
37
+ input: o.input,
38
+ toolCallId: o.toolCallId,
39
+ chat: f
40
+ });
41
+ }
31
42
  });
43
+ return f;
32
44
  }
33
- function ct({
34
- initialRegistryDocuments: r,
35
- registryUrl: c,
36
- dashboardUrl: p,
37
- baseUrl: n,
38
- mode: f,
39
- getAccessToken: l,
40
- getAgentKey: d,
41
- getActiveDocumentJson: A,
42
- prefilledMessageRef: h
45
+ function Dt({
46
+ initialRegistryDocuments: a,
47
+ registryUrl: i,
48
+ dashboardUrl: v,
49
+ baseUrl: s,
50
+ mode: D,
51
+ isLoggedIn: f,
52
+ getAccessToken: o,
53
+ getAgentKey: S,
54
+ getActiveDocumentJson: L,
55
+ prefilledMessageRef: g
43
56
  }) {
44
- const m = s(h?.value ?? ""), a = s([]), E = s([]), v = s("https://proxy.scalar.com"), M = s(), D = $(), T = Y(), i = O(), S = x(
45
- () => N.parse({
46
- proxyUrl: v.value,
57
+ const d = u(g?.value ?? ""), n = u([]), l = u([]), N = u([]), T = u("https://proxy.scalar.com"), B = u(), w = V(), O = z(), m = q({
58
+ plugins: [
59
+ Z({
60
+ persistAuth: !0
61
+ })
62
+ ]
63
+ }), E = x(
64
+ () => j.parse({
65
+ proxyUrl: T.value,
47
66
  persistAuth: !0
48
67
  })
49
- ), e = J({
50
- registryDocuments: a,
51
- workspaceStore: i,
52
- baseUrl: n,
53
- getAccessToken: l,
54
- getAgentKey: d
55
- }), y = H({
56
- baseUrl: n,
57
- getAccessToken: l,
58
- getAgentKey: d
59
- }), B = x(
60
- () => e.status === "submitted" || e.status === "streaming" && !e.lastMessage?.parts.some((t) => t.type === "text")
68
+ ), r = et({
69
+ registryDocuments: n,
70
+ workspaceStore: m,
71
+ baseUrl: s,
72
+ getAccessToken: o,
73
+ getAgentKey: S
74
+ }), y = U({
75
+ baseUrl: s,
76
+ getAccessToken: o,
77
+ getAgentKey: S
78
+ }), W = x(
79
+ () => r.status === "submitted" || r.status === "streaming" && !r.lastMessage?.parts.some((t) => t.type === "text")
61
80
  );
62
- C(
63
- () => e.status,
81
+ A(
82
+ () => r.status,
64
83
  () => {
65
- e.status === "streaming" && (m.value = "");
84
+ r.status === "streaming" && (d.value = "");
66
85
  }
67
- ), h && C(h, async (t) => {
68
- t && (m.value = t, D.accepted.value && await e.sendMessage({ text: m.value }));
86
+ ), g && A(g, async (t) => {
87
+ t && (d.value = t, w.accepted.value && await r.sendMessage({ text: d.value }));
69
88
  });
70
- const W = L();
71
- async function w({
89
+ const $ = Y();
90
+ async function C({
91
+ namespace: t,
92
+ slug: e,
93
+ removable: c = !0
94
+ }) {
95
+ n.value.find((h) => h.namespace === t && h.slug === e) || await M({
96
+ namespace: t,
97
+ slug: e,
98
+ workspaceStore: m,
99
+ registryUrl: i,
100
+ registryDocuments: n,
101
+ config: E.value,
102
+ api: y,
103
+ removable: c
104
+ });
105
+ }
106
+ async function b({
72
107
  namespace: t,
73
- slug: o,
74
- removable: u = !0
108
+ slug: e,
109
+ removable: c = !0
75
110
  }) {
76
- a.value.find((g) => g.namespace === t && g.slug === o) || await q({
111
+ if (n.value.find((p) => p.namespace === t && p.slug === e))
112
+ return;
113
+ l.value.push({ namespace: t, slug: e });
114
+ const h = await fetch(
115
+ I(`${s}/vector/registry/embeddings/${t}/${e}`),
116
+ {
117
+ method: "GET"
118
+ }
119
+ );
120
+ l.value = l.value.filter((p) => p.namespace !== t || p.slug !== e), h.ok && await M({
77
121
  namespace: t,
78
- slug: o,
79
- workspaceStore: i,
80
- registryUrl: c,
81
- registryDocuments: a,
82
- config: S.value,
122
+ slug: e,
123
+ workspaceStore: m,
124
+ registryUrl: i,
125
+ registryDocuments: n,
126
+ config: E.value,
83
127
  api: y,
84
- removable: u
128
+ removable: c
85
129
  });
86
130
  }
87
- function b({ namespace: t, slug: o }) {
88
- a.value = a.value.filter(
89
- (u) => !(u.namespace === t && u.slug === o)
90
- ), i.deleteDocument(F(t, o));
131
+ function k({ namespace: t, slug: e }) {
132
+ n.value = n.value.filter(
133
+ (c) => !(c.namespace === t && c.slug === e)
134
+ ), m.deleteDocument(K(t, e));
91
135
  }
92
- return r.forEach(({ namespace: t, slug: o }) => w({ namespace: t, slug: o, removable: !1 })), {
93
- prompt: m,
94
- chat: e,
95
- workspaceStore: i,
96
- eventBus: T,
97
- loading: B,
98
- settingsModal: W,
99
- config: S,
100
- registryUrl: c,
101
- dashboardUrl: p,
102
- baseUrl: n,
103
- registryDocuments: a,
104
- proxyUrl: v,
105
- mode: f,
106
- terms: D,
107
- addDocument: w,
108
- removeDocument: b,
109
- getAccessToken: l,
110
- getAgentKey: d,
136
+ return a.forEach(({ namespace: t, slug: e }) => C({ namespace: t, slug: e, removable: !1 })), {
137
+ prompt: d,
138
+ chat: r,
139
+ workspaceStore: m,
140
+ eventBus: O,
141
+ loading: W,
142
+ settingsModal: $,
143
+ config: E,
144
+ registryUrl: i,
145
+ dashboardUrl: v,
146
+ baseUrl: s,
147
+ registryDocuments: n,
148
+ pendingDocuments: l,
149
+ proxyUrl: T,
150
+ mode: D,
151
+ terms: w,
152
+ isLoggedIn: f,
153
+ addDocument: C,
154
+ addDocumentAsync: b,
155
+ removeDocument: k,
156
+ getAccessToken: o,
157
+ getAgentKey: S,
111
158
  api: y,
112
- uploadedTmpDocumentUrl: M,
113
- curatedDocuments: E,
114
- getActiveDocumentJson: A
159
+ uploadedTmpDocumentUrl: B,
160
+ curatedDocuments: N,
161
+ getActiveDocumentJson: L
115
162
  };
116
163
  }
117
- function mt() {
118
- const r = z(G);
119
- if (!r)
164
+ function St() {
165
+ const a = Q(tt);
166
+ if (!a)
120
167
  throw new Error("No state provided.");
121
- return r;
168
+ return a;
122
169
  }
123
170
  export {
124
- G as STATE_SYMBOL,
125
- ct as createState,
126
- mt as useState
171
+ tt as STATE_SYMBOL,
172
+ Dt as createState,
173
+ St as useState
127
174
  };