@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.
- package/dist/lib/browser/{AssistantDialog-TX6YYBUG.mjs → AssistantDialog-T5OJUIIV.mjs} +3 -3
- package/dist/lib/browser/{ChatContainer-AT3OAUT3.mjs → ChatContainer-FEZ323HB.mjs} +3 -3
- package/dist/lib/browser/{ai-client-RTCGRKZE.mjs → ai-client-PORKRZXM.mjs} +16 -5
- package/dist/lib/browser/ai-client-PORKRZXM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VZ4W6SHE.mjs → chunk-NTLTGYYS.mjs} +1 -1
- package/dist/lib/browser/{chunk-VZ4W6SHE.mjs.map → chunk-NTLTGYYS.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-NFVIZS3B.mjs → chunk-SUUECBDM.mjs} +30 -14
- package/dist/lib/browser/{chunk-NFVIZS3B.mjs.map → chunk-SUUECBDM.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-G7B54APW.mjs → chunk-TCAE72QU.mjs} +4 -4
- package/dist/lib/browser/index.mjs +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-JLXNWOI6.mjs → react-surface-B463WHMD.mjs} +4 -4
- package/dist/lib/node/{AssistantDialog-U4GBPZD6.cjs → AssistantDialog-EZ5RBGPX.cjs} +7 -7
- package/dist/lib/node/{ChatContainer-CVHXNHGA.cjs → ChatContainer-FNYVBPZZ.cjs} +7 -7
- package/dist/lib/node/{ai-client-YANJEPO3.cjs → ai-client-RBDOGK6W.cjs} +18 -7
- package/dist/lib/node/ai-client-RBDOGK6W.cjs.map +7 -0
- package/dist/lib/node/{chunk-ZGH6F5YA.cjs → chunk-3WXG6WA6.cjs} +4 -4
- package/dist/lib/node/{chunk-ZGH6F5YA.cjs.map → chunk-3WXG6WA6.cjs.map} +2 -2
- package/dist/lib/node/{chunk-IXJCGW7U.cjs → chunk-PMA7XUWM.cjs} +8 -8
- package/dist/lib/node/{chunk-XUTDR7HI.cjs → chunk-RWY7LVFJ.cjs} +33 -17
- package/dist/lib/node/{chunk-XUTDR7HI.cjs.map → chunk-RWY7LVFJ.cjs.map} +3 -3
- package/dist/lib/node/index.cjs +17 -17
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-BSUZQ3HZ.cjs → react-surface-RTYCL4GP.cjs} +12 -12
- package/dist/lib/node-esm/{AssistantDialog-5AT5JAZL.mjs → AssistantDialog-57ZCJNSL.mjs} +3 -3
- package/dist/lib/node-esm/{ChatContainer-VR766C4M.mjs → ChatContainer-XYNXFPFT.mjs} +3 -3
- package/dist/lib/node-esm/{ai-client-66IBZVCX.mjs → ai-client-OTZVBDUH.mjs} +16 -5
- package/dist/lib/node-esm/ai-client-OTZVBDUH.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-7JENJTLB.mjs → chunk-3HFSWIA5.mjs} +30 -14
- package/dist/lib/node-esm/{chunk-7JENJTLB.mjs.map → chunk-3HFSWIA5.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-77ARTFBA.mjs → chunk-ICQN3TDS.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-77ARTFBA.mjs.map → chunk-ICQN3TDS.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-AMQMVQJO.mjs → chunk-YVEPFSWR.mjs} +4 -4
- package/dist/lib/node-esm/index.mjs +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-IGVYAOGL.mjs → react-surface-Y4RK56TT.mjs} +4 -4
- package/dist/types/src/capabilities/ai-client.d.ts +1 -2
- package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +2 -2
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts +2 -2
- package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts.map +1 -1
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +2 -1
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +2 -1
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/Prompt/PromptBar.d.ts +2 -1
- package/dist/types/src/components/Prompt/PromptBar.d.ts.map +1 -1
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts +2 -1
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts.map +1 -1
- package/dist/types/src/components/TemplateContainer.d.ts +2 -1
- package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +2 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +3 -2
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
- package/dist/types/src/components/Thread/Thread.d.ts +2 -1
- package/dist/types/src/components/Thread/Thread.d.ts.map +1 -1
- package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +2 -1
- package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbox/Toolbox.d.ts +3 -2
- package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/hooks/processor.d.ts +6 -3
- package/dist/types/src/hooks/processor.d.ts.map +1 -1
- package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
- package/package.json +55 -56
- package/src/capabilities/ai-client.ts +6 -3
- package/src/capabilities/capabilities.ts +2 -2
- package/src/components/Prompt/PromptBar.tsx +15 -6
- package/src/components/TemplateEditor/TemplateForm.tsx +1 -1
- package/src/components/Thread/ThreadContainer.stories.tsx +2 -2
- package/src/hooks/processor.ts +13 -4
- package/src/tools/openapi.test.ts +4 -4
- package/dist/lib/browser/ai-client-RTCGRKZE.mjs.map +0 -7
- package/dist/lib/node/ai-client-YANJEPO3.cjs.map +0 -7
- package/dist/lib/node-esm/ai-client-66IBZVCX.mjs.map +0 -7
- /package/dist/lib/browser/{AssistantDialog-TX6YYBUG.mjs.map → AssistantDialog-T5OJUIIV.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-AT3OAUT3.mjs.map → ChatContainer-FEZ323HB.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-G7B54APW.mjs.map → chunk-TCAE72QU.mjs.map} +0 -0
- /package/dist/lib/browser/{react-surface-JLXNWOI6.mjs.map → react-surface-B463WHMD.mjs.map} +0 -0
- /package/dist/lib/node/{AssistantDialog-U4GBPZD6.cjs.map → AssistantDialog-EZ5RBGPX.cjs.map} +0 -0
- /package/dist/lib/node/{ChatContainer-CVHXNHGA.cjs.map → ChatContainer-FNYVBPZZ.cjs.map} +0 -0
- /package/dist/lib/node/{chunk-IXJCGW7U.cjs.map → chunk-PMA7XUWM.cjs.map} +0 -0
- /package/dist/lib/node/{react-surface-BSUZQ3HZ.cjs.map → react-surface-RTYCL4GP.cjs.map} +0 -0
- /package/dist/lib/node-esm/{AssistantDialog-5AT5JAZL.mjs.map → AssistantDialog-57ZCJNSL.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-VR766C4M.mjs.map → ChatContainer-XYNXFPFT.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-AMQMVQJO.mjs.map → chunk-YVEPFSWR.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-surface-IGVYAOGL.mjs.map → react-surface-Y4RK56TT.mjs.map} +0 -0
package/src/hooks/processor.ts
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
type GenerationStream,
|
|
14
14
|
MixedStreamParser,
|
|
15
15
|
DEFAULT_LLM_MODEL,
|
|
16
|
-
type
|
|
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
|
|
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.
|
|
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
|
-
|
|
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 {
|
|
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
|
|
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
|
|
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
|
|
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
|
-
}
|
/package/dist/lib/browser/{AssistantDialog-TX6YYBUG.mjs.map → AssistantDialog-T5OJUIIV.mjs.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/lib/node/{AssistantDialog-U4GBPZD6.cjs.map → AssistantDialog-EZ5RBGPX.cjs.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/lib/node-esm/{AssistantDialog-5AT5JAZL.mjs.map → AssistantDialog-57ZCJNSL.mjs.map}
RENAMED
|
File without changes
|
/package/dist/lib/node-esm/{ChatContainer-VR766C4M.mjs.map → ChatContainer-XYNXFPFT.mjs.map}
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/lib/node-esm/{react-surface-IGVYAOGL.mjs.map → react-surface-Y4RK56TT.mjs.map}
RENAMED
|
File without changes
|