@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
@@ -13,7 +13,7 @@ import {
13
13
  type GenerationStream,
14
14
  MixedStreamParser,
15
15
  DEFAULT_LLM_MODEL,
16
- type AIService,
16
+ type AIServiceClient,
17
17
  } from '@dxos/assistant';
18
18
  import { createStatic } from '@dxos/echo-schema';
19
19
  import { invariant } from '@dxos/invariant';
@@ -92,7 +92,7 @@ export class ChatProcessor {
92
92
  });
93
93
 
94
94
  constructor(
95
- private readonly _service: AIService,
95
+ private readonly _ai: AIServiceClient,
96
96
  private _tools?: Tool[],
97
97
  private readonly _extensions?: ToolContextExtensions,
98
98
  private readonly _options: ChatProcessorOptions = defaultOptions,
@@ -180,7 +180,7 @@ export class ChatProcessor {
180
180
  });
181
181
 
182
182
  // Open request stream.
183
- this._stream = await this._service.exec({
183
+ this._stream = await this._ai.exec({
184
184
  ...this._options,
185
185
  // TODO(burdon): Rename messages or separate history/message.
186
186
  history: [...this._history, ...this._pending.value],
@@ -220,9 +220,18 @@ export class ChatProcessor {
220
220
  this.error.value = undefined;
221
221
  } catch (err) {
222
222
  log.catch(err);
223
- this.error.value = new Error('AI service error', { cause: err });
223
+ if (err instanceof Error && err.message.includes('Overloaded')) {
224
+ this.error.value = new AIServiecOverloadedError('AI service overloaded', { cause: err });
225
+ } else {
226
+ this.error.value = new Error('AI service error', { cause: err });
227
+ }
224
228
  } finally {
225
229
  this._stream = undefined;
226
230
  }
227
231
  }
228
232
  }
233
+
234
+ // TODO(wittjosiah): Refactor.
235
+ export class AIServiecOverloadedError extends Error {
236
+ code = 'AI_SERVICE_OVERLOADED';
237
+ }
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { describe, expect, test } from 'vitest';
6
6
 
7
- import { AIServiceClientImpl } from '@dxos/assistant';
7
+ import { AIServiceEdgeClient } from '@dxos/assistant';
8
8
  import { AI_SERVICE_ENDPOINT } from '@dxos/assistant/testing';
9
9
  import { log } from '@dxos/log';
10
10
 
@@ -72,7 +72,7 @@ describe.skip('openapi', () => {
72
72
  authorization: AMADEUS_AUTH,
73
73
  });
74
74
 
75
- const client = new AIServiceClientImpl({
75
+ const client = new AIServiceEdgeClient({
76
76
  endpoint: AI_SERVICE_ENDPOINT.LOCAL,
77
77
  });
78
78
  const processor = new ChatProcessor(client, tools);
@@ -87,7 +87,7 @@ describe.skip('openapi', () => {
87
87
  test('amadeus hotel name autocomplete', { timeout: 60_000 }, async () => {
88
88
  const tools = await createToolsFromApi(HOTEL_NAME_AUTOCOMPLETE_API, { authorization: AMADEUS_AUTH });
89
89
 
90
- const client = new AIServiceClientImpl({
90
+ const client = new AIServiceEdgeClient({
91
91
  endpoint: AI_SERVICE_ENDPOINT.LOCAL,
92
92
  });
93
93
  const processor = new ChatProcessor(client, tools);
@@ -102,7 +102,7 @@ describe.skip('openapi', () => {
102
102
  instructions: WEATHER_INSTRUCTIONS,
103
103
  });
104
104
 
105
- const client = new AIServiceClientImpl({
105
+ const client = new AIServiceEdgeClient({
106
106
  endpoint: AI_SERVICE_ENDPOINT.LOCAL,
107
107
  });
108
108
  const processor = new ChatProcessor(client, tools);
@@ -1,7 +0,0 @@
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 { AIServiceClientImpl } from '@dxos/assistant';\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 const aiClient = new AIServiceClientImpl({ endpoint });\n return contributes(AssistantCapabilities.AiClient, aiClient);\n};\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,mBAAwC;AACjD,SAASC,2BAA2B;AACpC,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;AACvE,QAAMa,WAAW,IAAIC,oBAAoB;IAAER;EAAS,CAAA;AACpD,SAAOS,YAAYC,sBAAsBC,UAAUJ,QAAAA;AACrD;",
6
- "names": ["contributes", "AIServiceClientImpl", "ClientCapabilities", "DEFAULT_AI_SERVICE_URL", "context", "client", "requestCapability", "ClientCapabilities", "Client", "endpoint", "config", "values", "runtime", "services", "ai", "server", "aiClient", "AIServiceClientImpl", "contributes", "AssistantCapabilities", "AiClient"]
7
- }
@@ -1,7 +0,0 @@
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 { AIServiceClientImpl } from '@dxos/assistant';\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 const aiClient = new AIServiceClientImpl({ endpoint });\n return contributes(AssistantCapabilities.AiClient, aiClient);\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAAiD;AACjD,uBAAoC;AACpC,2BAAmC;AAKnC,IAAMA,yBAAyB;AAE/B,IAAA,oBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,wCAAmBC,MAAM;AAClE,QAAMC,WAAWJ,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,IAAIC,UAAUZ;AACvE,QAAMa,WAAW,IAAIC,qCAAoB;IAAER;EAAS,CAAA;AACpD,aAAOS,kCAAYC,4CAAsBC,UAAUJ,QAAAA;AACrD;",
6
- "names": ["DEFAULT_AI_SERVICE_URL", "context", "client", "requestCapability", "ClientCapabilities", "Client", "endpoint", "config", "values", "runtime", "services", "ai", "server", "aiClient", "AIServiceClientImpl", "contributes", "AssistantCapabilities", "AiClient"]
7
- }
@@ -1,7 +0,0 @@
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 { AIServiceClientImpl } from '@dxos/assistant';\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 const aiClient = new AIServiceClientImpl({ endpoint });\n return contributes(AssistantCapabilities.AiClient, aiClient);\n};\n"],
5
- "mappings": ";;;;;;;AAIA,SAASA,mBAAwC;AACjD,SAASC,2BAA2B;AACpC,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;AACvE,QAAMa,WAAW,IAAIC,oBAAoB;IAAER;EAAS,CAAA;AACpD,SAAOS,YAAYC,sBAAsBC,UAAUJ,QAAAA;AACrD;",
6
- "names": ["contributes", "AIServiceClientImpl", "ClientCapabilities", "DEFAULT_AI_SERVICE_URL", "context", "client", "requestCapability", "ClientCapabilities", "Client", "endpoint", "config", "values", "runtime", "services", "ai", "server", "aiClient", "AIServiceClientImpl", "contributes", "AssistantCapabilities", "AiClient"]
7
- }