@genesislcap/ai-assistant 14.435.0 → 14.436.0-FUI-2489.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.
- package/api-extractor.json +9 -9
- package/dist/dts/components/popout-manager/popout-manager.d.ts.map +1 -1
- package/dist/dts/suggestions/chat-suggestions.d.ts.map +1 -1
- package/dist/dts/tags/index.d.ts +1 -0
- package/dist/dts/tags/index.d.ts.map +1 -1
- package/dist/esm/components/chat-driver/chat-driver.js +4 -4
- package/dist/esm/components/orchestrating-driver/orchestrating-driver.js +6 -6
- package/dist/esm/components/popout-manager/popout-manager.js +1 -0
- package/dist/esm/suggestions/chat-suggestions.js +1 -2
- package/dist/esm/tags/index.js +1 -0
- package/package.json +16 -16
- package/src/components/chat-driver/chat-driver.ts +4 -4
- package/src/components/orchestrating-driver/orchestrating-driver.ts +6 -6
- package/src/components/popout-manager/popout-manager.ts +1 -0
- package/src/suggestions/chat-suggestions.ts +9 -2
- package/src/tags/index.ts +1 -0
- package/tsconfig.json +1 -3
package/api-extractor.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
3
|
+
"extends": "../../../../api-extractor.json",
|
|
4
|
+
"messages": {
|
|
5
|
+
"extractorMessageReporting": {
|
|
6
|
+
"ae-wrong-input-file-type": {
|
|
7
|
+
"logLevel": "none"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popout-manager.d.ts","sourceRoot":"","sources":["../../../../src/components/popout-manager/popout-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAoB,MAAM,uBAAuB,CAAC;AAGxF;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,qEAAqE;IACrE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,IAAI,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAMa,yBAA0B,SAAQ,cAAc;IAC3D,mFAAmF;IACvE,OAAO,UAAS;IAE5B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAa;IAE9B,iBAAiB;
|
|
1
|
+
{"version":3,"file":"popout-manager.d.ts","sourceRoot":"","sources":["../../../../src/components/popout-manager/popout-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAoB,MAAM,uBAAuB,CAAC;AAGxF;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,qEAAqE;IACrE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,IAAI,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAMa,yBAA0B,SAAQ,cAAc;IAC3D,mFAAmF;IACvE,OAAO,UAAS;IAE5B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAa;IAE9B,iBAAiB;IAkCjB,oBAAoB;IAOpB,cAAc;IAUd,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAKpD,sBAAsB,IAAI,IAAI;IAM9B;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAKlC;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,yBAAyB,GAAG,SAAS,CAE1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-suggestions.d.ts","sourceRoot":"","sources":["../../../src/suggestions/chat-suggestions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat-suggestions.d.ts","sourceRoot":"","sources":["../../../src/suggestions/chat-suggestions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAMf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA+I3D,qBAKa,eAAgB,SAAQ,cAAc;IAEjD,KAAK,EAAE,gBAAgB,CAAsB;IAE7C,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CAGhD"}
|
package/dist/dts/tags/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tags/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
|
|
@@ -639,11 +639,11 @@ export class ChatDriver extends EventTarget {
|
|
|
639
639
|
// Sequential await is required — each iteration must see fresh values
|
|
640
640
|
// before constructing the LLM request.
|
|
641
641
|
if (this.toolDefinitionsFactory) {
|
|
642
|
-
//
|
|
642
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
643
643
|
this.toolDefinitions = yield this.toolDefinitionsFactory(promptCtx);
|
|
644
644
|
}
|
|
645
645
|
const resolvedSystemPrompt = typeof this.systemPrompt === 'function'
|
|
646
|
-
? //
|
|
646
|
+
? // oxlint-disable-next-line no-await-in-loop
|
|
647
647
|
yield this.systemPrompt(promptCtx)
|
|
648
648
|
: this.systemPrompt;
|
|
649
649
|
const foldSuffix = this.buildFoldSystemPromptSuffix();
|
|
@@ -681,7 +681,7 @@ export class ChatDriver extends EventTarget {
|
|
|
681
681
|
};
|
|
682
682
|
let response;
|
|
683
683
|
try {
|
|
684
|
-
//
|
|
684
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
685
685
|
response = yield this.aiProvider.chat(historyForCall, userInputForCall, options);
|
|
686
686
|
}
|
|
687
687
|
catch (e) {
|
|
@@ -739,7 +739,7 @@ export class ChatDriver extends EventTarget {
|
|
|
739
739
|
let anyRealToolExecuted = false;
|
|
740
740
|
let hitUnknownToolLimit = false;
|
|
741
741
|
if (toolCalls.length > 0) {
|
|
742
|
-
//
|
|
742
|
+
// oxlint-disable-next-line no-await-in-loop -- Promise.all is correct parallelism, not sequential loop awaiting
|
|
743
743
|
yield Promise.all(toolCalls.map((tc) => __awaiter(this, void 0, void 0, function* () {
|
|
744
744
|
// Check for fold facade
|
|
745
745
|
const fold = this.getFold(tc.name);
|
|
@@ -150,18 +150,18 @@ export class OrchestratingDriver extends EventTarget {
|
|
|
150
150
|
let handoffSummary = '';
|
|
151
151
|
let remainingTask = '';
|
|
152
152
|
while (true) {
|
|
153
|
-
//
|
|
153
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
154
154
|
yield this.applyAgent(currentAgent);
|
|
155
155
|
let result;
|
|
156
156
|
if (isHandoff) {
|
|
157
157
|
const contextPrimer = handoffSummary
|
|
158
158
|
? [{ role: 'user', content: `[Context from previous agent]: ${handoffSummary}` }]
|
|
159
159
|
: [];
|
|
160
|
-
//
|
|
160
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
161
161
|
result = yield this.chatDriver.continueFromHistory(contextPrimer);
|
|
162
162
|
}
|
|
163
163
|
else {
|
|
164
|
-
//
|
|
164
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
165
165
|
result = yield this.chatDriver.sendMessage(input, attachments);
|
|
166
166
|
}
|
|
167
167
|
// Release check: a stateful agent called `releaseAgent` from a terminal
|
|
@@ -169,7 +169,7 @@ export class OrchestratingDriver extends EventTarget {
|
|
|
169
169
|
// classifier-mode. The LLM has already emitted its final wrap-up message
|
|
170
170
|
// by the time we get here — release is purely a teardown.
|
|
171
171
|
if (this.chatDriver.getAgentReleaseRequested()) {
|
|
172
|
-
//
|
|
172
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
173
173
|
yield this.releaseActiveAgent();
|
|
174
174
|
break;
|
|
175
175
|
}
|
|
@@ -188,7 +188,7 @@ export class OrchestratingDriver extends EventTarget {
|
|
|
188
188
|
isHandoff = true;
|
|
189
189
|
const updatedHistory = this.chatDriver.getHistory();
|
|
190
190
|
this.dispatchEvent(new CustomEvent('orchestrating-start'));
|
|
191
|
-
//
|
|
191
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
192
192
|
currentAgent = yield this.classify(remainingTask, updatedHistory);
|
|
193
193
|
}
|
|
194
194
|
return { reason: 'done' };
|
|
@@ -386,7 +386,7 @@ export class OrchestratingDriver extends EventTarget {
|
|
|
386
386
|
systemPrompt: classifierPrompt,
|
|
387
387
|
tools: [routingTool],
|
|
388
388
|
};
|
|
389
|
-
//
|
|
389
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
390
390
|
const response = yield this.aiProvider.chat([], input, options);
|
|
391
391
|
const tc = (_b = response.toolCalls) === null || _b === void 0 ? void 0 : _b[0];
|
|
392
392
|
const index = (tc === null || tc === void 0 ? void 0 : tc.name) === 'select_agent' ? tc.args.agent_index : -1;
|
|
@@ -35,6 +35,7 @@ let FoundationAiPopoutManager = class FoundationAiPopoutManager extends GenesisE
|
|
|
35
35
|
}
|
|
36
36
|
connectedCallback() {
|
|
37
37
|
super.connectedCallback();
|
|
38
|
+
// oxlint-disable-next-line typescript-eslint(no-this-alias) -- module-level singleton, not a local alias
|
|
38
39
|
_aiPopoutManager = this;
|
|
39
40
|
const bubble = this.querySelector('foundation-ai-chat-bubble');
|
|
40
41
|
const assistantEl = bubble === null || bubble === void 0 ? void 0 : bubble.querySelector('[slot="dialog-content"]');
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { customElement, observable, html, css, repeat, when } from '@genesislcap/web-core';
|
|
3
|
-
import { GenesisElement } from '@genesislcap/web-core';
|
|
2
|
+
import { customElement, GenesisElement, observable, html, css, repeat, when, } from '@genesislcap/web-core';
|
|
4
3
|
const PILL_ANIMATION_STAGGER_MS = 70;
|
|
5
4
|
const template = html `
|
|
6
5
|
${when((x) => x.state.status === 'loading', html `
|
package/dist/esm/tags/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genesislcap/ai-assistant",
|
|
3
3
|
"description": "Genesis AI Assistant micro-frontend",
|
|
4
|
-
"version": "14.
|
|
4
|
+
"version": "14.436.0-FUI-2489.2",
|
|
5
5
|
"license": "SEE LICENSE IN license.txt",
|
|
6
6
|
"main": "dist/esm/index.js",
|
|
7
7
|
"types": "dist/ai-assistant.d.ts",
|
|
@@ -64,24 +64,24 @@
|
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@genesislcap/foundation-testing": "14.
|
|
68
|
-
"@genesislcap/genx": "14.
|
|
69
|
-
"@genesislcap/rollup-builder": "14.
|
|
70
|
-
"@genesislcap/ts-builder": "14.
|
|
71
|
-
"@genesislcap/uvu-playwright-builder": "14.
|
|
72
|
-
"@genesislcap/vite-builder": "14.
|
|
73
|
-
"@genesislcap/webpack-builder": "14.
|
|
67
|
+
"@genesislcap/foundation-testing": "14.436.0-FUI-2489.2",
|
|
68
|
+
"@genesislcap/genx": "14.436.0-FUI-2489.2",
|
|
69
|
+
"@genesislcap/rollup-builder": "14.436.0-FUI-2489.2",
|
|
70
|
+
"@genesislcap/ts-builder": "14.436.0-FUI-2489.2",
|
|
71
|
+
"@genesislcap/uvu-playwright-builder": "14.436.0-FUI-2489.2",
|
|
72
|
+
"@genesislcap/vite-builder": "14.436.0-FUI-2489.2",
|
|
73
|
+
"@genesislcap/webpack-builder": "14.436.0-FUI-2489.2",
|
|
74
74
|
"@types/dompurify": "^3.0.5",
|
|
75
75
|
"@types/marked": "^5.0.2"
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@genesislcap/foundation-ai": "14.
|
|
79
|
-
"@genesislcap/foundation-logger": "14.
|
|
80
|
-
"@genesislcap/foundation-redux": "14.
|
|
81
|
-
"@genesislcap/foundation-ui": "14.
|
|
82
|
-
"@genesislcap/foundation-utils": "14.
|
|
83
|
-
"@genesislcap/rapid-design-system": "14.
|
|
84
|
-
"@genesislcap/web-core": "14.
|
|
78
|
+
"@genesislcap/foundation-ai": "14.436.0-FUI-2489.2",
|
|
79
|
+
"@genesislcap/foundation-logger": "14.436.0-FUI-2489.2",
|
|
80
|
+
"@genesislcap/foundation-redux": "14.436.0-FUI-2489.2",
|
|
81
|
+
"@genesislcap/foundation-ui": "14.436.0-FUI-2489.2",
|
|
82
|
+
"@genesislcap/foundation-utils": "14.436.0-FUI-2489.2",
|
|
83
|
+
"@genesislcap/rapid-design-system": "14.436.0-FUI-2489.2",
|
|
84
|
+
"@genesislcap/web-core": "14.436.0-FUI-2489.2",
|
|
85
85
|
"dompurify": "^3.3.1",
|
|
86
86
|
"marked": "^17.0.3"
|
|
87
87
|
},
|
|
@@ -93,5 +93,5 @@
|
|
|
93
93
|
"publishConfig": {
|
|
94
94
|
"access": "public"
|
|
95
95
|
},
|
|
96
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "16309f873a08dfa541589cd172482677ff5dfd20"
|
|
97
97
|
}
|
|
@@ -839,13 +839,13 @@ export class ChatDriver extends EventTarget implements AiDriver {
|
|
|
839
839
|
// Sequential await is required — each iteration must see fresh values
|
|
840
840
|
// before constructing the LLM request.
|
|
841
841
|
if (this.toolDefinitionsFactory) {
|
|
842
|
-
//
|
|
842
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
843
843
|
this.toolDefinitions = await this.toolDefinitionsFactory(promptCtx);
|
|
844
844
|
}
|
|
845
845
|
|
|
846
846
|
const resolvedSystemPrompt =
|
|
847
847
|
typeof this.systemPrompt === 'function'
|
|
848
|
-
? //
|
|
848
|
+
? // oxlint-disable-next-line no-await-in-loop
|
|
849
849
|
await this.systemPrompt(promptCtx)
|
|
850
850
|
: this.systemPrompt;
|
|
851
851
|
|
|
@@ -891,7 +891,7 @@ export class ChatDriver extends EventTarget implements AiDriver {
|
|
|
891
891
|
|
|
892
892
|
let response: ChatMessage;
|
|
893
893
|
try {
|
|
894
|
-
//
|
|
894
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
895
895
|
response = await this.aiProvider.chat!(historyForCall, userInputForCall, options);
|
|
896
896
|
} catch (e) {
|
|
897
897
|
if (e instanceof MalformedFunctionCallError) {
|
|
@@ -961,7 +961,7 @@ export class ChatDriver extends EventTarget implements AiDriver {
|
|
|
961
961
|
let hitUnknownToolLimit = false;
|
|
962
962
|
|
|
963
963
|
if (toolCalls.length > 0) {
|
|
964
|
-
//
|
|
964
|
+
// oxlint-disable-next-line no-await-in-loop -- Promise.all is correct parallelism, not sequential loop awaiting
|
|
965
965
|
await Promise.all(
|
|
966
966
|
toolCalls.map(async (tc) => {
|
|
967
967
|
// Check for fold facade
|
|
@@ -230,7 +230,7 @@ export class OrchestratingDriver extends EventTarget implements AiDriver {
|
|
|
230
230
|
let remainingTask = '';
|
|
231
231
|
|
|
232
232
|
while (true) {
|
|
233
|
-
//
|
|
233
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
234
234
|
await this.applyAgent(currentAgent);
|
|
235
235
|
|
|
236
236
|
let result: ChatDriverResult;
|
|
@@ -238,10 +238,10 @@ export class OrchestratingDriver extends EventTarget implements AiDriver {
|
|
|
238
238
|
const contextPrimer: ChatMessage[] = handoffSummary
|
|
239
239
|
? [{ role: 'user', content: `[Context from previous agent]: ${handoffSummary}` }]
|
|
240
240
|
: [];
|
|
241
|
-
//
|
|
241
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
242
242
|
result = await this.chatDriver.continueFromHistory(contextPrimer);
|
|
243
243
|
} else {
|
|
244
|
-
//
|
|
244
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
245
245
|
result = await this.chatDriver.sendMessage(input, attachments);
|
|
246
246
|
}
|
|
247
247
|
|
|
@@ -250,7 +250,7 @@ export class OrchestratingDriver extends EventTarget implements AiDriver {
|
|
|
250
250
|
// classifier-mode. The LLM has already emitted its final wrap-up message
|
|
251
251
|
// by the time we get here — release is purely a teardown.
|
|
252
252
|
if (this.chatDriver.getAgentReleaseRequested()) {
|
|
253
|
-
//
|
|
253
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
254
254
|
await this.releaseActiveAgent();
|
|
255
255
|
break;
|
|
256
256
|
}
|
|
@@ -275,7 +275,7 @@ export class OrchestratingDriver extends EventTarget implements AiDriver {
|
|
|
275
275
|
|
|
276
276
|
const updatedHistory = this.chatDriver.getHistory() as ChatMessage[];
|
|
277
277
|
this.dispatchEvent(new CustomEvent('orchestrating-start'));
|
|
278
|
-
//
|
|
278
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
279
279
|
currentAgent = await this.classify(remainingTask, updatedHistory);
|
|
280
280
|
}
|
|
281
281
|
|
|
@@ -483,7 +483,7 @@ export class OrchestratingDriver extends EventTarget implements AiDriver {
|
|
|
483
483
|
systemPrompt: classifierPrompt,
|
|
484
484
|
tools: [routingTool],
|
|
485
485
|
};
|
|
486
|
-
//
|
|
486
|
+
// oxlint-disable-next-line no-await-in-loop
|
|
487
487
|
const response = await this.aiProvider.chat!([], input, options);
|
|
488
488
|
const tc = response.toolCalls?.[0];
|
|
489
489
|
const index = tc?.name === 'select_agent' ? (tc.args.agent_index as number) : -1;
|
|
@@ -64,6 +64,7 @@ export class FoundationAiPopoutManager extends GenesisElement {
|
|
|
64
64
|
|
|
65
65
|
connectedCallback() {
|
|
66
66
|
super.connectedCallback();
|
|
67
|
+
// oxlint-disable-next-line typescript-eslint(no-this-alias) -- module-level singleton, not a local alias
|
|
67
68
|
_aiPopoutManager = this;
|
|
68
69
|
|
|
69
70
|
const bubble = this.querySelector('foundation-ai-chat-bubble');
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
customElement,
|
|
3
|
+
GenesisElement,
|
|
4
|
+
observable,
|
|
5
|
+
html,
|
|
6
|
+
css,
|
|
7
|
+
repeat,
|
|
8
|
+
when,
|
|
9
|
+
} from '@genesislcap/web-core';
|
|
3
10
|
import type { SuggestionsState } from '../main/main.types';
|
|
4
11
|
|
|
5
12
|
type LoadedState = { status: 'loaded'; suggestions: string[] };
|
package/src/tags/index.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|