@dxos/plugin-assistant 0.7.5-staging.e6154f3 → 0.8.1-main.303c73a

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 (95) hide show
  1. package/dist/lib/browser/{AssistantDialog-TX6YYBUG.mjs → AssistantDialog-T5OJUIIV.mjs} +3 -3
  2. package/dist/lib/browser/{ChatContainer-AT3OAUT3.mjs → ChatContainer-FEZ323HB.mjs} +3 -3
  3. package/dist/lib/browser/{ai-client-RTCGRKZE.mjs → ai-client-PORKRZXM.mjs} +16 -5
  4. package/dist/lib/browser/ai-client-PORKRZXM.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-VZ4W6SHE.mjs → chunk-NTLTGYYS.mjs} +1 -1
  6. package/dist/lib/browser/{chunk-VZ4W6SHE.mjs.map → chunk-NTLTGYYS.mjs.map} +2 -2
  7. package/dist/lib/browser/{chunk-NFVIZS3B.mjs → chunk-SUUECBDM.mjs} +30 -14
  8. package/dist/lib/browser/{chunk-NFVIZS3B.mjs.map → chunk-SUUECBDM.mjs.map} +3 -3
  9. package/dist/lib/browser/{chunk-G7B54APW.mjs → chunk-TCAE72QU.mjs} +4 -4
  10. package/dist/lib/browser/index.mjs +3 -3
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/{react-surface-JLXNWOI6.mjs → react-surface-B463WHMD.mjs} +4 -4
  13. package/dist/lib/node/{AssistantDialog-U4GBPZD6.cjs → AssistantDialog-EZ5RBGPX.cjs} +7 -7
  14. package/dist/lib/node/{ChatContainer-CVHXNHGA.cjs → ChatContainer-FNYVBPZZ.cjs} +7 -7
  15. package/dist/lib/node/{ai-client-YANJEPO3.cjs → ai-client-RBDOGK6W.cjs} +18 -7
  16. package/dist/lib/node/ai-client-RBDOGK6W.cjs.map +7 -0
  17. package/dist/lib/node/{chunk-ZGH6F5YA.cjs → chunk-3WXG6WA6.cjs} +4 -4
  18. package/dist/lib/node/{chunk-ZGH6F5YA.cjs.map → chunk-3WXG6WA6.cjs.map} +2 -2
  19. package/dist/lib/node/{chunk-IXJCGW7U.cjs → chunk-PMA7XUWM.cjs} +8 -8
  20. package/dist/lib/node/{chunk-XUTDR7HI.cjs → chunk-RWY7LVFJ.cjs} +33 -17
  21. package/dist/lib/node/{chunk-XUTDR7HI.cjs.map → chunk-RWY7LVFJ.cjs.map} +3 -3
  22. package/dist/lib/node/index.cjs +17 -17
  23. package/dist/lib/node/meta.json +1 -1
  24. package/dist/lib/node/{react-surface-BSUZQ3HZ.cjs → react-surface-RTYCL4GP.cjs} +12 -12
  25. package/dist/lib/node-esm/{AssistantDialog-5AT5JAZL.mjs → AssistantDialog-57ZCJNSL.mjs} +3 -3
  26. package/dist/lib/node-esm/{ChatContainer-VR766C4M.mjs → ChatContainer-XYNXFPFT.mjs} +3 -3
  27. package/dist/lib/node-esm/{ai-client-66IBZVCX.mjs → ai-client-OTZVBDUH.mjs} +16 -5
  28. package/dist/lib/node-esm/ai-client-OTZVBDUH.mjs.map +7 -0
  29. package/dist/lib/node-esm/{chunk-7JENJTLB.mjs → chunk-3HFSWIA5.mjs} +30 -14
  30. package/dist/lib/node-esm/{chunk-7JENJTLB.mjs.map → chunk-3HFSWIA5.mjs.map} +3 -3
  31. package/dist/lib/node-esm/{chunk-77ARTFBA.mjs → chunk-ICQN3TDS.mjs} +1 -1
  32. package/dist/lib/node-esm/{chunk-77ARTFBA.mjs.map → chunk-ICQN3TDS.mjs.map} +2 -2
  33. package/dist/lib/node-esm/{chunk-AMQMVQJO.mjs → chunk-YVEPFSWR.mjs} +4 -4
  34. package/dist/lib/node-esm/index.mjs +3 -3
  35. package/dist/lib/node-esm/meta.json +1 -1
  36. package/dist/lib/node-esm/{react-surface-IGVYAOGL.mjs → react-surface-Y4RK56TT.mjs} +4 -4
  37. package/dist/types/src/capabilities/ai-client.d.ts +1 -2
  38. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  39. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  40. package/dist/types/src/capabilities/capabilities.d.ts +2 -2
  41. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  42. package/dist/types/src/capabilities/index.d.ts +1 -1
  43. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  44. package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts +2 -2
  45. package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts.map +1 -1
  46. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +2 -1
  47. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  48. package/dist/types/src/components/ChatContainer.d.ts +2 -1
  49. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  50. package/dist/types/src/components/Prompt/PromptBar.d.ts +2 -1
  51. package/dist/types/src/components/Prompt/PromptBar.d.ts.map +1 -1
  52. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts +2 -1
  53. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts.map +1 -1
  54. package/dist/types/src/components/TemplateContainer.d.ts +2 -1
  55. package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
  56. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -1
  57. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  58. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +2 -1
  59. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  60. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +3 -2
  61. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  62. package/dist/types/src/components/Thread/Thread.d.ts +2 -1
  63. package/dist/types/src/components/Thread/Thread.d.ts.map +1 -1
  64. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +2 -1
  65. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  66. package/dist/types/src/components/Toolbox/Toolbox.d.ts +3 -2
  67. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  68. package/dist/types/src/components/index.d.ts +2 -2
  69. package/dist/types/src/components/index.d.ts.map +1 -1
  70. package/dist/types/src/hooks/processor.d.ts +6 -3
  71. package/dist/types/src/hooks/processor.d.ts.map +1 -1
  72. package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
  73. package/package.json +55 -56
  74. package/src/capabilities/ai-client.ts +6 -3
  75. package/src/capabilities/capabilities.ts +2 -2
  76. package/src/components/Prompt/PromptBar.tsx +15 -6
  77. package/src/components/TemplateEditor/TemplateForm.tsx +1 -1
  78. package/src/components/Thread/ThreadContainer.stories.tsx +2 -2
  79. package/src/hooks/processor.ts +13 -4
  80. package/src/tools/openapi.test.ts +4 -4
  81. package/dist/lib/browser/ai-client-RTCGRKZE.mjs.map +0 -7
  82. package/dist/lib/node/ai-client-YANJEPO3.cjs.map +0 -7
  83. package/dist/lib/node-esm/ai-client-66IBZVCX.mjs.map +0 -7
  84. /package/dist/lib/browser/{AssistantDialog-TX6YYBUG.mjs.map → AssistantDialog-T5OJUIIV.mjs.map} +0 -0
  85. /package/dist/lib/browser/{ChatContainer-AT3OAUT3.mjs.map → ChatContainer-FEZ323HB.mjs.map} +0 -0
  86. /package/dist/lib/browser/{chunk-G7B54APW.mjs.map → chunk-TCAE72QU.mjs.map} +0 -0
  87. /package/dist/lib/browser/{react-surface-JLXNWOI6.mjs.map → react-surface-B463WHMD.mjs.map} +0 -0
  88. /package/dist/lib/node/{AssistantDialog-U4GBPZD6.cjs.map → AssistantDialog-EZ5RBGPX.cjs.map} +0 -0
  89. /package/dist/lib/node/{ChatContainer-CVHXNHGA.cjs.map → ChatContainer-FNYVBPZZ.cjs.map} +0 -0
  90. /package/dist/lib/node/{chunk-IXJCGW7U.cjs.map → chunk-PMA7XUWM.cjs.map} +0 -0
  91. /package/dist/lib/node/{react-surface-BSUZQ3HZ.cjs.map → react-surface-RTYCL4GP.cjs.map} +0 -0
  92. /package/dist/lib/node-esm/{AssistantDialog-5AT5JAZL.mjs.map → AssistantDialog-57ZCJNSL.mjs.map} +0 -0
  93. /package/dist/lib/node-esm/{ChatContainer-VR766C4M.mjs.map → ChatContainer-XYNXFPFT.mjs.map} +0 -0
  94. /package/dist/lib/node-esm/{chunk-AMQMVQJO.mjs.map → chunk-YVEPFSWR.mjs.map} +0 -0
  95. /package/dist/lib/node-esm/{react-surface-IGVYAOGL.mjs.map → react-surface-Y4RK56TT.mjs.map} +0 -0
@@ -1,8 +1,8 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadContainer
4
- } from "./chunk-7JENJTLB.mjs";
5
- import "./chunk-77ARTFBA.mjs";
4
+ } from "./chunk-3HFSWIA5.mjs";
5
+ import "./chunk-ICQN3TDS.mjs";
6
6
  import "./chunk-CJ4Y3QW5.mjs";
7
7
  import {
8
8
  ASSISTANT_PLUGIN
@@ -114,4 +114,4 @@ export {
114
114
  AssistantDialog,
115
115
  AssistantDialog_default as default
116
116
  };
117
- //# sourceMappingURL=AssistantDialog-5AT5JAZL.mjs.map
117
+ //# sourceMappingURL=AssistantDialog-57ZCJNSL.mjs.map
@@ -1,8 +1,8 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadContainer
4
- } from "./chunk-7JENJTLB.mjs";
5
- import "./chunk-77ARTFBA.mjs";
4
+ } from "./chunk-3HFSWIA5.mjs";
5
+ import "./chunk-ICQN3TDS.mjs";
6
6
  import "./chunk-CJ4Y3QW5.mjs";
7
7
  import {
8
8
  ASSISTANT_PLUGIN
@@ -31,4 +31,4 @@ export {
31
31
  ChatContainer,
32
32
  ChatContainer_default as default
33
33
  };
34
- //# sourceMappingURL=ChatContainer-VR766C4M.mjs.map
34
+ //# sourceMappingURL=ChatContainer-XYNXFPFT.mjs.map
@@ -1,23 +1,34 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  AssistantCapabilities
4
- } from "./chunk-77ARTFBA.mjs";
4
+ } from "./chunk-ICQN3TDS.mjs";
5
5
  import "./chunk-7SV6X6XU.mjs";
6
6
 
7
7
  // packages/plugins/experimental/plugin-assistant/src/capabilities/ai-client.ts
8
8
  import { contributes } from "@dxos/app-framework";
9
- import { AIServiceClientImpl } from "@dxos/assistant";
9
+ import { AIServiceEdgeClient } from "@dxos/assistant";
10
+ import { log } from "@dxos/log";
10
11
  import { ClientCapabilities } from "@dxos/plugin-client";
12
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/capabilities/ai-client.ts";
11
13
  var DEFAULT_AI_SERVICE_URL = "http://localhost:8788";
12
14
  var ai_client_default = (context) => {
13
15
  const client = context.requestCapability(ClientCapabilities.Client);
14
16
  const endpoint = client.config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL;
15
- const aiClient = new AIServiceClientImpl({
17
+ const ai = new AIServiceEdgeClient({
16
18
  endpoint
17
19
  });
18
- return contributes(AssistantCapabilities.AiClient, aiClient);
20
+ log.info("ai", {
21
+ endpoint,
22
+ context
23
+ }, {
24
+ F: __dxlog_file,
25
+ L: 20,
26
+ S: void 0,
27
+ C: (f, a) => f(...a)
28
+ });
29
+ return contributes(AssistantCapabilities.AiClient, ai);
19
30
  };
20
31
  export {
21
32
  ai_client_default as default
22
33
  };
23
- //# sourceMappingURL=ai-client-66IBZVCX.mjs.map
34
+ //# sourceMappingURL=ai-client-OTZVBDUH.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/ai-client.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginsContext } from '@dxos/app-framework';\nimport { AIServiceEdgeClient } from '@dxos/assistant';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { AssistantCapabilities } from './capabilities';\n\n// TODO(wittjosiah): Factor out.\nconst DEFAULT_AI_SERVICE_URL = 'http://localhost:8788';\n\nexport default (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const endpoint = client.config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL;\n // TODO(burdon): Use prefs.\n const ai = new AIServiceEdgeClient({ endpoint });\n log.info('ai', { endpoint, context });\n return contributes(AssistantCapabilities.AiClient, ai);\n};\n"],
5
+ "mappings": ";;;;;;;AAIA,SAASA,mBAAwC;AACjD,SAASC,2BAA2B;AACpC,SAASC,WAAW;AACpB,SAASC,0BAA0B;;AAKnC,IAAMC,yBAAyB;AAE/B,IAAA,oBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAClE,QAAMC,WAAWJ,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,IAAIC,UAAUZ;AAEvE,QAAMW,KAAK,IAAIE,oBAAoB;IAAEP;EAAS,CAAA;AAC9CQ,MAAIC,KAAK,MAAM;IAAET;IAAUL;EAAQ,GAAA;;;;;;AACnC,SAAOe,YAAYC,sBAAsBC,UAAUP,EAAAA;AACrD;",
6
+ "names": ["contributes", "AIServiceEdgeClient", "log", "ClientCapabilities", "DEFAULT_AI_SERVICE_URL", "context", "client", "requestCapability", "ClientCapabilities", "Client", "endpoint", "config", "values", "runtime", "services", "ai", "server", "AIServiceEdgeClient", "log", "info", "contributes", "AssistantCapabilities", "AiClient"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  AssistantCapabilities
4
- } from "./chunk-77ARTFBA.mjs";
4
+ } from "./chunk-ICQN3TDS.mjs";
5
5
  import {
6
6
  ServiceType,
7
7
  categoryIcons
@@ -1123,7 +1123,7 @@ var Prompt = /* @__PURE__ */ forwardRef(({ classNames, autoFocus, lineWrapping =
1123
1123
  // packages/plugins/experimental/plugin-assistant/src/components/Prompt/PromptBar.tsx
1124
1124
  import React5, { useRef as useRef2, useState as useState3 } from "react";
1125
1125
  import { useVoiceInput } from "@dxos/plugin-transcription";
1126
- import { Icon as Icon2, IconButton as IconButton2, useTranslation } from "@dxos/react-ui";
1126
+ import { Icon as Icon2, IconButton as IconButton2, Tooltip, useTranslation } from "@dxos/react-ui";
1127
1127
  import { Spinner } from "@dxos/react-ui-sfx";
1128
1128
  import { errorText, mx as mx4 } from "@dxos/react-ui-theme";
1129
1129
  var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, ...props }) => {
@@ -1138,14 +1138,18 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
1138
1138
  }
1139
1139
  });
1140
1140
  return /* @__PURE__ */ React5.createElement("div", {
1141
- className: mx4("flex shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] overflow-hidden", classNames)
1141
+ className: mx4("shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] overflow-hidden", classNames)
1142
1142
  }, /* @__PURE__ */ React5.createElement("div", {
1143
1143
  className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
1144
- }, error && /* @__PURE__ */ React5.createElement(Icon2, {
1144
+ }, error && /* @__PURE__ */ React5.createElement(Tooltip.Root, {
1145
+ delayDuration: 0
1146
+ }, /* @__PURE__ */ React5.createElement(Tooltip.Trigger, null, /* @__PURE__ */ React5.createElement(Icon2, {
1145
1147
  icon: "ph--warning-circle--regular",
1146
1148
  classNames: errorText,
1147
1149
  size: 5
1148
- }) || /* @__PURE__ */ React5.createElement(Spinner, {
1150
+ })), /* @__PURE__ */ React5.createElement(Tooltip.Portal, null, /* @__PURE__ */ React5.createElement(Tooltip.Content, null, /* @__PURE__ */ React5.createElement("div", {
1151
+ className: "text-sm text-error-500"
1152
+ }, error.message), /* @__PURE__ */ React5.createElement(Tooltip.Arrow, null)))) || /* @__PURE__ */ React5.createElement(Spinner, {
1149
1153
  active: processing
1150
1154
  })), /* @__PURE__ */ React5.createElement(Prompt, {
1151
1155
  ref: promptRef,
@@ -1253,8 +1257,8 @@ var defaultOptions = {
1253
1257
  systemPrompt: "you are a helpful assistant"
1254
1258
  };
1255
1259
  var ChatProcessor = class {
1256
- constructor(_service, _tools, _extensions, _options = defaultOptions) {
1257
- this._service = _service;
1260
+ constructor(_ai, _tools, _extensions, _options = defaultOptions) {
1261
+ this._ai = _ai;
1258
1262
  this._tools = _tools;
1259
1263
  this._extensions = _extensions;
1260
1264
  this._options = _options;
@@ -1379,7 +1383,7 @@ var ChatProcessor = class {
1379
1383
  S: this,
1380
1384
  C: (f, a) => f(...a)
1381
1385
  });
1382
- this._stream = await this._service.exec({
1386
+ this._stream = await this._ai.exec({
1383
1387
  ...this._options,
1384
1388
  // TODO(burdon): Rename messages or separate history/message.
1385
1389
  history: [
@@ -1449,14 +1453,26 @@ var ChatProcessor = class {
1449
1453
  S: this,
1450
1454
  C: (f, a) => f(...a)
1451
1455
  });
1452
- this.error.value = new Error("AI service error", {
1453
- cause: err
1454
- });
1456
+ if (err instanceof Error && err.message.includes("Overloaded")) {
1457
+ this.error.value = new AIServiecOverloadedError("AI service overloaded", {
1458
+ cause: err
1459
+ });
1460
+ } else {
1461
+ this.error.value = new Error("AI service error", {
1462
+ cause: err
1463
+ });
1464
+ }
1455
1465
  } finally {
1456
1466
  this._stream = void 0;
1457
1467
  }
1458
1468
  }
1459
1469
  };
1470
+ var AIServiecOverloadedError = class extends Error {
1471
+ constructor() {
1472
+ super(...arguments);
1473
+ this.code = "AI_SERVICE_OVERLOADED";
1474
+ }
1475
+ };
1460
1476
 
1461
1477
  // packages/plugins/experimental/plugin-assistant/src/hooks/useChatProcessor.tsx
1462
1478
  import { useEffect as useEffect3, useMemo as useMemo3, useState as useState4 } from "react";
@@ -1471,10 +1487,10 @@ import { isNonNullable as isNonNullable2 } from "@dxos/util";
1471
1487
 
1472
1488
  // packages/plugins/experimental/plugin-assistant/src/capabilities/index.ts
1473
1489
  import { lazy } from "@dxos/app-framework";
1474
- var AiClient = lazy(() => import("./ai-client-66IBZVCX.mjs"));
1490
+ var AiClient = lazy(() => import("./ai-client-OTZVBDUH.mjs"));
1475
1491
  var AppGraphBuilder = lazy(() => import("./app-graph-builder-H2GC2AZA.mjs"));
1476
1492
  var IntentResolver = lazy(() => import("./intent-resolver-MR7BOKEW.mjs"));
1477
- var ReactSurface = lazy(() => import("./react-surface-IGVYAOGL.mjs"));
1493
+ var ReactSurface = lazy(() => import("./react-surface-Y4RK56TT.mjs"));
1478
1494
  var AssistantSettings = lazy(() => import("./settings-S7P5RWQI.mjs"));
1479
1495
 
1480
1496
  // packages/plugins/experimental/plugin-assistant/src/hooks/useChatProcessor.tsx
@@ -1802,4 +1818,4 @@ export {
1802
1818
  Thread,
1803
1819
  ThreadContainer
1804
1820
  };
1805
- //# sourceMappingURL=chunk-7JENJTLB.mjs.map
1821
+ //# sourceMappingURL=chunk-3HFSWIA5.mjs.map