@stack-spot/ai-chat-widget 1.33.0 → 1.34.0-beta.1
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/CHANGELOG.md +19 -2
- package/dist/app-metadata.json +3 -3
- package/dist/chat-interceptors/quick-commands.d.ts.map +1 -1
- package/dist/chat-interceptors/quick-commands.js +79 -17
- package/dist/chat-interceptors/quick-commands.js.map +1 -1
- package/dist/layout.css +1 -1
- package/package.json +2 -2
- package/src/app-metadata.json +3 -3
- package/src/chat-interceptors/quick-commands.ts +98 -22
- package/src/index.ts +0 -1
- package/src/layout.css +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [1.
|
|
3
|
+
## [1.34.0-beta.1](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget-beta@v1.33.0-beta.1...ai-chat-widget-beta@v1.34.0-beta.1) (2025-07-31)
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
### Features
|
|
7
7
|
|
|
8
8
|
* add visibility filter for recently used agents ([#247](https://github.com/stack-spot/portal-ai-chat-widget/issues/247)) ([bc85769](https://github.com/stack-spot/portal-ai-chat-widget/commit/bc85769b7863f4bca2202852804e4b603fca9f7b))
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* 850 qc conditional next step beta release ([#252](https://github.com/stack-spot/portal-ai-chat-widget/issues/252)) ([68531b1](https://github.com/stack-spot/portal-ai-chat-widget/commit/68531b19ec8c0d0b4cde2ddc0f5f7c3ac43c31cc))
|
|
14
|
+
|
|
15
|
+
## [1.33.0-beta.1](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget-beta@v1.32.0-beta.1...ai-chat-widget-beta@v1.33.0-beta.1) (2025-07-30)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* add filters to show contents in chat ([#240](https://github.com/stack-spot/portal-ai-chat-widget/issues/240)) ([95dd865](https://github.com/stack-spot/portal-ai-chat-widget/commit/95dd8659e623e0eeb6afb6d3380e83e9c4bb2b86))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Bug Fixes
|
|
24
|
+
|
|
25
|
+
* agent chat history ([#242](https://github.com/stack-spot/portal-ai-chat-widget/issues/242)) ([c1ed38b](https://github.com/stack-spot/portal-ai-chat-widget/commit/c1ed38b64e064a53c0b0394b96ba5e3f6d11f3f2))
|
|
26
|
+
* update network lib ([#245](https://github.com/stack-spot/portal-ai-chat-widget/issues/245)) ([8341240](https://github.com/stack-spot/portal-ai-chat-widget/commit/83412402296f22e8fb61c6079f13cf94066ae886))
|
|
10
27
|
|
|
11
28
|
## [1.32.1](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget@v1.32.0...ai-chat-widget@v1.32.1) (2025-07-28)
|
|
12
29
|
|
package/dist/app-metadata.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/ai-chat-widget",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"date": "
|
|
3
|
+
"version": "1.34.0-beta.1",
|
|
4
|
+
"date": "Thu Jul 31 2025 13:41:44 GMT+0000 (Coordinated Universal Time)",
|
|
5
5
|
"dependencies": [
|
|
6
6
|
{
|
|
7
7
|
"name": "@stack-spot/app-metadata",
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"name": "@stack-spot/portal-network",
|
|
116
|
-
"version": "0.165.
|
|
116
|
+
"version": "0.165.1(@stack-spot/auth@5.3.2)(@stack-spot/opa@2.5.0(@stack-spot/auth@5.3.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@stack-spot/portal-translate@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@tanstack/react-query@5.59.16(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
"name": "@stack-spot/portal-theme",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-commands.d.ts","sourceRoot":"","sources":["../../src/chat-interceptors/quick-commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quick-commands.d.ts","sourceRoot":"","sources":["../../src/chat-interceptors/quick-commands.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAI3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAyBlD;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,MAAM,GAAG,SAAS,WA4T7D,SAAS,QAAQ,SAAS,UAAU,WAAW,gCAwC9F"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { aiClient, CancelledError, StackspotAPIError } from '@stack-spot/portal-network';
|
|
2
2
|
import { interpolate, translate } from '@stack-spot/portal-translate';
|
|
3
|
+
import { isNil } from 'lodash';
|
|
3
4
|
import { ulid } from 'ulid';
|
|
4
5
|
import { AbortedError } from '../AbortedError.js';
|
|
5
6
|
import { quickCommandRegex } from '../regex.js';
|
|
@@ -45,19 +46,52 @@ export function createQuickCommandInterceptor(widget, getEditor) {
|
|
|
45
46
|
const inputsValues = await customInputs.getValue();
|
|
46
47
|
chat.set('isLoading', true);
|
|
47
48
|
CustomInputs.deleteCustomInputsFromChat(chat);
|
|
48
|
-
ctx.
|
|
49
|
+
ctx.customInputs = { ...ctx.customInputs, ...inputsValues };
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Runs an Router step of a quick command.
|
|
53
|
+
*/
|
|
54
|
+
async function runRouterStep(ctx, stepIndex, iteration, progress) {
|
|
55
|
+
const { qc: { slug, steps }, code, resultMap, customInputs } = ctx;
|
|
56
|
+
const step = steps[stepIndex];
|
|
57
|
+
const inputData = Object.keys(customInputs).length > 0 && code ? { ...customInputs, [code]: code } : code ?? customInputs;
|
|
58
|
+
try {
|
|
59
|
+
const { next_step_slug } = await aiClient.calculateNextStep.mutate({
|
|
60
|
+
stepSlug: step.slug,
|
|
61
|
+
slug: slug,
|
|
62
|
+
quickCommandEvaluateStepRouterRequest: {
|
|
63
|
+
executions_count: iteration++,
|
|
64
|
+
input_data: inputData,
|
|
65
|
+
slugs_executions: resultMap,
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
if (next_step_slug === step.slug) {
|
|
69
|
+
return runStepsRecursively(stepIndex, progress, ctx, iteration + 1);
|
|
70
|
+
}
|
|
71
|
+
const nextStepIndex = steps?.findIndex((step) => step.slug === next_step_slug);
|
|
72
|
+
if (isNil(nextStepIndex) || nextStepIndex === -1)
|
|
73
|
+
return;
|
|
74
|
+
return runStepsRecursively(nextStepIndex, progress, ctx, iteration);
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
// eslint-disable-next-line no-console
|
|
78
|
+
console.error('Error executing QC step', error);
|
|
79
|
+
}
|
|
49
80
|
}
|
|
50
81
|
/**
|
|
51
82
|
* Runs a fetch step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
|
|
52
83
|
*/
|
|
53
84
|
async function runFetchStep(ctx, stepIndex) {
|
|
54
|
-
const { qc: { slug, steps }, code, context, resultMap, executionId, signal } = ctx;
|
|
85
|
+
const { qc: { slug, steps }, code, context, resultMap, customInputs, executionId, signal } = ctx;
|
|
55
86
|
const step = steps[stepIndex];
|
|
56
87
|
if (step.is_remote) {
|
|
57
88
|
ctx.isRemote = true;
|
|
58
89
|
const { data } = await aiClient.fetchStepOfQuickCommandRemotely.mutate({
|
|
59
90
|
slug, stepSlug: step.slug,
|
|
60
|
-
quickCommandsExecutionRequest: {
|
|
91
|
+
quickCommandsExecutionRequest: {
|
|
92
|
+
code_selection: code, context, qc_execution_id: executionId,
|
|
93
|
+
slugs_executions: { ...resultMap, ...customInputs },
|
|
94
|
+
},
|
|
61
95
|
});
|
|
62
96
|
//data is the return of the request in the QC so we do not have full control over the response
|
|
63
97
|
//We handle the usual format with body, status_code and headers, but we might also handle other formats
|
|
@@ -72,7 +106,10 @@ export function createQuickCommandInterceptor(widget, getEditor) {
|
|
|
72
106
|
const { headers, data, method, url } = await aiClient.fetchStepOfQuickCommand.mutate({
|
|
73
107
|
slug,
|
|
74
108
|
stepSlug: step.slug,
|
|
75
|
-
quickCommandsExecutionRequest: {
|
|
109
|
+
quickCommandsExecutionRequest: {
|
|
110
|
+
input_data: code, context, qc_execution_id: executionId,
|
|
111
|
+
slugs_executions: { ...resultMap, ...customInputs },
|
|
112
|
+
},
|
|
76
113
|
}, signal);
|
|
77
114
|
const body = ['get', 'head'].includes(method.toLowerCase()) ? undefined : data;
|
|
78
115
|
const response = await fetch(url, { headers: headers || undefined, body, method, signal });
|
|
@@ -87,9 +124,19 @@ export function createQuickCommandInterceptor(widget, getEditor) {
|
|
|
87
124
|
/**
|
|
88
125
|
* Runs an LLM step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
|
|
89
126
|
*/
|
|
90
|
-
async function runLLMStep({ qc: { slug, steps }, code, context, executionId, resultMap, signal }, stepIndex) {
|
|
127
|
+
async function runLLMStep({ qc: { slug, steps }, code, customInputs, context, executionId, resultMap, signal }, stepIndex) {
|
|
91
128
|
const step = steps[stepIndex];
|
|
92
|
-
|
|
129
|
+
let stepContext = context;
|
|
130
|
+
if (!step.use_uploaded_files) {
|
|
131
|
+
const { upload_ids, ...contextDataProps } = context;
|
|
132
|
+
stepContext = { ...contextDataProps };
|
|
133
|
+
}
|
|
134
|
+
const stream = aiClient.streamLlmStepOfQuickCommand(slug, step.slug, {
|
|
135
|
+
input_data: code,
|
|
136
|
+
context: stepContext,
|
|
137
|
+
qc_execution_id: executionId,
|
|
138
|
+
slugs_executions: { ...resultMap, ...customInputs },
|
|
139
|
+
});
|
|
93
140
|
signal.addEventListener('abort', () => stream.cancel());
|
|
94
141
|
let finalValue;
|
|
95
142
|
try {
|
|
@@ -105,7 +152,7 @@ export function createQuickCommandInterceptor(widget, getEditor) {
|
|
|
105
152
|
const t = translate(dictionary);
|
|
106
153
|
message.setValue({
|
|
107
154
|
...message.getValue(),
|
|
108
|
-
content: interpolate(t.progress, qc.
|
|
155
|
+
content: interpolate(t.progress, qc.steps?.[stepIndex]?.slug, qc.name || qc.slug),
|
|
109
156
|
});
|
|
110
157
|
}
|
|
111
158
|
function createProgressMessage(agent) {
|
|
@@ -130,27 +177,41 @@ export function createQuickCommandInterceptor(widget, getEditor) {
|
|
|
130
177
|
}, showImmediately ? 0 : progressMessageDelayMS);
|
|
131
178
|
return controller;
|
|
132
179
|
}
|
|
133
|
-
async function
|
|
180
|
+
async function runStepsRecursively(currentIndex, progress, ctx, iteration) {
|
|
134
181
|
const { qc } = ctx;
|
|
182
|
+
if (!qc.steps || currentIndex >= qc.steps?.length)
|
|
183
|
+
return;
|
|
184
|
+
progress.update(currentIndex);
|
|
185
|
+
if (qc.steps[currentIndex].type === 'ROUTER') {
|
|
186
|
+
await runRouterStep(ctx, currentIndex, iteration, progress);
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const currentStep = qc.steps?.[currentIndex];
|
|
190
|
+
await (currentStep.type === 'FETCH' ? runFetchStep(ctx, currentIndex) : runLLMStep(ctx, currentIndex));
|
|
191
|
+
let nextIndex = currentIndex + 1;
|
|
192
|
+
if (currentStep.next_step_slug) {
|
|
193
|
+
nextIndex = currentStep.next_step_slug === 'end' ?
|
|
194
|
+
qc.steps.length : qc.steps?.findIndex((step) => step.slug === currentStep.next_step_slug);
|
|
195
|
+
}
|
|
196
|
+
await runStepsRecursively(nextIndex, progress, ctx, iteration);
|
|
197
|
+
}
|
|
198
|
+
async function runSteps(ctx) {
|
|
135
199
|
const progress = showProgressMessage(ctx);
|
|
136
200
|
try {
|
|
137
|
-
|
|
138
|
-
progress.update(i);
|
|
139
|
-
await (qc.steps?.[i].type === 'FETCH' ? runFetchStep(ctx, i) : runLLMStep(ctx, i));
|
|
140
|
-
}
|
|
201
|
+
await runStepsRecursively(0, progress, ctx, 0);
|
|
141
202
|
}
|
|
142
203
|
finally {
|
|
143
204
|
progress.remove();
|
|
144
205
|
}
|
|
145
206
|
}
|
|
146
|
-
async function formatResult({ qc, code, executionId, context, resultMap, signal }) {
|
|
207
|
+
async function formatResult({ qc, code, executionId, context, resultMap, customInputs, signal }) {
|
|
147
208
|
const formatted = await aiClient.formatResultOfQuickCommand.mutate({
|
|
148
209
|
slug: qc.slug,
|
|
149
210
|
quickCommandsExecutionRequest: {
|
|
150
211
|
input_data: code,
|
|
151
212
|
context,
|
|
152
213
|
qc_execution_id: executionId,
|
|
153
|
-
slugs_executions: resultMap,
|
|
214
|
+
slugs_executions: { ...resultMap, ...customInputs },
|
|
154
215
|
},
|
|
155
216
|
}, signal);
|
|
156
217
|
return formatted.result;
|
|
@@ -264,9 +325,10 @@ export function createQuickCommandInterceptor(widget, getEditor) {
|
|
|
264
325
|
qc: { slug },
|
|
265
326
|
chat,
|
|
266
327
|
code: chat.get('codeSelection'),
|
|
267
|
-
context: buildConversationContext(chat) ?? {},
|
|
328
|
+
context: buildConversationContext(chat, entry) ?? {},
|
|
268
329
|
executionId: ulid(),
|
|
269
330
|
resultMap: {},
|
|
331
|
+
customInputs: {},
|
|
270
332
|
signal,
|
|
271
333
|
};
|
|
272
334
|
chat.set('isLoading', true);
|
|
@@ -301,14 +363,14 @@ const dictionary = {
|
|
|
301
363
|
en: {
|
|
302
364
|
requiresSelection: 'This quick command requires some code to be selected in the editor. To open the editor click the icon "{/}" in the field below.',
|
|
303
365
|
startQuestioning: 'To execute the Quick Command "$0", I\'ll need you to provide some information. Some may be mandatory, and others optional. Let\'s get started.',
|
|
304
|
-
progress: 'Running
|
|
366
|
+
progress: 'Running step "$0" from Quick Command "$1".',
|
|
305
367
|
aborted: 'The quick command execution aborted by the user.',
|
|
306
368
|
notFound: 'There\'s no quick command with the provided name. If you don\'t wish to run a command, prefix the first "/" with a "\\".',
|
|
307
369
|
},
|
|
308
370
|
pt: {
|
|
309
371
|
requiresSelection: 'Este quick command precisa que algum código esteja selecionado no editor. Para abrir o editor clique no ícone "{/}" no campo abaixo.',
|
|
310
372
|
startQuestioning: 'Para executar o Quick Command "$0", vou precisar que você providencie algumas explicações. Algumas são obrigatórias e outras opcionais. Vamos começar.',
|
|
311
|
-
progress: 'Executando
|
|
373
|
+
progress: 'Executando step "$0" do Quick Command "$1".',
|
|
312
374
|
aborted: 'A execução do quick command foi abortada pelo usuário.',
|
|
313
375
|
notFound: 'Não existe quick command com o nome providenciado. Se você não quiser rodar um comando, prefixe o primeiro "/" com um "\\".',
|
|
314
376
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-commands.js","sourceRoot":"","sources":["../../src/chat-interceptors/quick-commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quick-commands.js","sourceRoot":"","sources":["../../src/chat-interceptors/quick-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/layout.css
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/ai-chat-widget",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.34.0-beta.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"@citric/core": "^6.4.0",
|
|
14
14
|
"@stack-spot/portal-components": "^2.22.1",
|
|
15
15
|
"@citric/icons": "^5.13.0",
|
|
16
|
-
"@stack-spot/portal-network": "^0.165.
|
|
16
|
+
"@stack-spot/portal-network": "^0.165.1",
|
|
17
17
|
"@citric/ui": "^6.10.2",
|
|
18
18
|
"@stack-spot/portal-theme": "^1.0.0",
|
|
19
19
|
"@stack-spot/portal-translate": "^1.1.0",
|
package/src/app-metadata.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/ai-chat-widget",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"date": "
|
|
3
|
+
"version": "1.34.0-beta.1",
|
|
4
|
+
"date": "Thu Jul 31 2025 13:41:44 GMT+0000 (Coordinated Universal Time)",
|
|
5
5
|
"dependencies": [
|
|
6
6
|
{
|
|
7
7
|
"name": "@stack-spot/app-metadata",
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"name": "@stack-spot/portal-network",
|
|
116
|
-
"version": "0.165.
|
|
116
|
+
"version": "0.165.1(@stack-spot/auth@5.3.2)(@stack-spot/opa@2.5.0(@stack-spot/auth@5.3.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@stack-spot/portal-translate@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@tanstack/react-query@5.59.16(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
"name": "@stack-spot/portal-theme",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { aiClient, CancelledError, FixedChatRequest, StackspotAPIError } from '@stack-spot/portal-network'
|
|
2
|
-
import { QuickCommandFetchResponseResult, QuickCommandPromptResponse2, QuickCommandResponse, QuickCommandStepFetchResponse } from '@stack-spot/portal-network/api/ai'
|
|
2
|
+
import { QuickCommandFetchResponseResult, QuickCommandPromptResponse2, QuickCommandResponse, QuickCommandStepFetchResponse, QuickCommandStepLlmResponse } from '@stack-spot/portal-network/api/ai'
|
|
3
3
|
import { Dictionary, interpolate, translate } from '@stack-spot/portal-translate'
|
|
4
|
+
import { isNil } from 'lodash'
|
|
4
5
|
import type { editor } from 'monaco-editor'
|
|
5
6
|
import { ulid } from 'ulid'
|
|
6
7
|
import { AbortedError } from '../AbortedError'
|
|
@@ -13,12 +14,13 @@ import { buildConversationContext } from '../utils/chat'
|
|
|
13
14
|
import { getSizeOfString } from '../utils/string'
|
|
14
15
|
import { CustomInputs } from './CustomInputs'
|
|
15
16
|
|
|
16
|
-
type SlugExecution = Record<string,
|
|
17
|
+
type SlugExecution = Record<string, QuickCommandFetchResponseResult | QuickCommandPromptResponse2>
|
|
17
18
|
|
|
18
19
|
interface QCContext {
|
|
19
20
|
qc: QuickCommandResponse,
|
|
20
21
|
context: Required<FixedChatRequest>['context'],
|
|
21
22
|
resultMap: SlugExecution,
|
|
23
|
+
customInputs: Record<string, string>,
|
|
22
24
|
chat: ChatState,
|
|
23
25
|
code?: string,
|
|
24
26
|
executionId: string,
|
|
@@ -64,21 +66,61 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
|
|
|
64
66
|
const inputsValues = await customInputs.getValue()
|
|
65
67
|
chat.set('isLoading', true)
|
|
66
68
|
CustomInputs.deleteCustomInputsFromChat(chat)
|
|
67
|
-
ctx.
|
|
69
|
+
ctx.customInputs = { ...ctx.customInputs, ...inputsValues }
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Runs an Router step of a quick command.
|
|
74
|
+
*/
|
|
75
|
+
async function runRouterStep(
|
|
76
|
+
ctx: QCContext,
|
|
77
|
+
stepIndex: number, iteration: number,
|
|
78
|
+
progress: { update: (index: number) => void, remove: () => void },
|
|
79
|
+
) {
|
|
80
|
+
const { qc: { slug, steps }, code, resultMap, customInputs } = ctx
|
|
81
|
+
const step = steps![stepIndex]
|
|
82
|
+
const inputData = Object.keys(customInputs).length > 0 && code ? { ...customInputs, [code]: code } : code ?? customInputs
|
|
83
|
+
try {
|
|
84
|
+
const { next_step_slug } = await aiClient.calculateNextStep.mutate({
|
|
85
|
+
stepSlug: step.slug,
|
|
86
|
+
slug: slug,
|
|
87
|
+
quickCommandEvaluateStepRouterRequest: {
|
|
88
|
+
executions_count: iteration++,
|
|
89
|
+
input_data: inputData,
|
|
90
|
+
slugs_executions: resultMap,
|
|
91
|
+
},
|
|
92
|
+
})
|
|
93
|
+
|
|
94
|
+
if (next_step_slug === step.slug) {
|
|
95
|
+
return runStepsRecursively(stepIndex, progress, ctx, iteration + 1)
|
|
96
|
+
}
|
|
97
|
+
const nextStepIndex = steps?.findIndex((step) => step.slug === next_step_slug)
|
|
98
|
+
|
|
99
|
+
if (isNil(nextStepIndex) || nextStepIndex === -1) return
|
|
100
|
+
|
|
101
|
+
return runStepsRecursively(nextStepIndex, progress, ctx, iteration)
|
|
102
|
+
}
|
|
103
|
+
catch (error: any) {
|
|
104
|
+
// eslint-disable-next-line no-console
|
|
105
|
+
console.error('Error executing QC step', error)
|
|
106
|
+
}
|
|
68
107
|
}
|
|
69
108
|
|
|
70
109
|
/**
|
|
71
110
|
* Runs a fetch step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
|
|
72
111
|
*/
|
|
73
112
|
async function runFetchStep(ctx: QCContext, stepIndex: number) {
|
|
74
|
-
const { qc: { slug, steps }, code, context, resultMap, executionId, signal } = ctx
|
|
113
|
+
const { qc: { slug, steps }, code, context, resultMap, customInputs, executionId, signal } = ctx
|
|
75
114
|
const step = steps![stepIndex] as QuickCommandStepFetchResponse
|
|
76
115
|
if (step.is_remote) {
|
|
77
116
|
ctx.isRemote = true
|
|
78
117
|
|
|
79
118
|
const { data } = await aiClient.fetchStepOfQuickCommandRemotely.mutate({
|
|
80
119
|
slug, stepSlug: step.slug,
|
|
81
|
-
quickCommandsExecutionRequest: {
|
|
120
|
+
quickCommandsExecutionRequest: {
|
|
121
|
+
code_selection: code, context, qc_execution_id: executionId,
|
|
122
|
+
slugs_executions: { ...resultMap, ...customInputs },
|
|
123
|
+
},
|
|
82
124
|
})
|
|
83
125
|
|
|
84
126
|
//data is the return of the request in the QC so we do not have full control over the response
|
|
@@ -95,7 +137,10 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
|
|
|
95
137
|
const { headers, data, method, url } = await aiClient.fetchStepOfQuickCommand.mutate({
|
|
96
138
|
slug,
|
|
97
139
|
stepSlug: step.slug,
|
|
98
|
-
quickCommandsExecutionRequest: {
|
|
140
|
+
quickCommandsExecutionRequest: {
|
|
141
|
+
input_data: code, context, qc_execution_id: executionId,
|
|
142
|
+
slugs_executions: { ...resultMap, ...customInputs },
|
|
143
|
+
},
|
|
99
144
|
}, signal)
|
|
100
145
|
const body = ['get', 'head'].includes(method.toLowerCase()) ? undefined : data
|
|
101
146
|
const response = await fetch(url, { headers: headers || undefined, body, method, signal })
|
|
@@ -111,16 +156,29 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
|
|
|
111
156
|
* Runs an LLM step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
|
|
112
157
|
*/
|
|
113
158
|
async function runLLMStep(
|
|
114
|
-
{ qc: { slug, steps }, code, context, executionId, resultMap, signal }: QCContext,
|
|
159
|
+
{ qc: { slug, steps }, code, customInputs, context, executionId, resultMap, signal }: QCContext,
|
|
115
160
|
stepIndex: number,
|
|
116
161
|
) {
|
|
117
|
-
const step = steps![stepIndex]
|
|
162
|
+
const step = steps![stepIndex] as QuickCommandStepLlmResponse
|
|
163
|
+
let stepContext = context
|
|
164
|
+
if (!step.use_uploaded_files) {
|
|
165
|
+
const { upload_ids, ...contextDataProps } = context
|
|
166
|
+
stepContext = { ...contextDataProps }
|
|
167
|
+
}
|
|
168
|
+
|
|
118
169
|
const stream = aiClient.streamLlmStepOfQuickCommand(
|
|
119
|
-
slug,
|
|
170
|
+
slug,
|
|
171
|
+
step.slug,
|
|
172
|
+
{
|
|
173
|
+
input_data: code,
|
|
174
|
+
context: stepContext,
|
|
175
|
+
qc_execution_id: executionId,
|
|
176
|
+
slugs_executions: { ...resultMap, ...customInputs },
|
|
177
|
+
},
|
|
120
178
|
)
|
|
121
|
-
|
|
179
|
+
|
|
122
180
|
signal.addEventListener('abort', () => stream.cancel())
|
|
123
|
-
|
|
181
|
+
|
|
124
182
|
let finalValue: QuickCommandPromptResponse2
|
|
125
183
|
try {
|
|
126
184
|
finalValue = await stream.getValue()
|
|
@@ -135,7 +193,7 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
|
|
|
135
193
|
const t = translate(dictionary)
|
|
136
194
|
message.setValue({
|
|
137
195
|
...message.getValue(),
|
|
138
|
-
content: interpolate(t.progress, qc.
|
|
196
|
+
content: interpolate(t.progress, qc.steps?.[stepIndex]?.slug, qc.name || qc.slug),
|
|
139
197
|
})
|
|
140
198
|
}
|
|
141
199
|
|
|
@@ -163,27 +221,44 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
|
|
|
163
221
|
return controller
|
|
164
222
|
}
|
|
165
223
|
|
|
166
|
-
async function
|
|
224
|
+
async function runStepsRecursively(currentIndex: number, progress: { update: (index: number) => void, remove: () => void },
|
|
225
|
+
ctx: QCContext, iteration: number) {
|
|
167
226
|
const { qc } = ctx
|
|
227
|
+
if (!qc.steps || currentIndex >= qc.steps?.length) return
|
|
228
|
+
progress.update(currentIndex)
|
|
229
|
+
|
|
230
|
+
if (qc.steps[currentIndex].type === 'ROUTER') {
|
|
231
|
+
await runRouterStep(ctx, currentIndex, iteration, progress)
|
|
232
|
+
return
|
|
233
|
+
}
|
|
234
|
+
const currentStep = qc.steps?.[currentIndex] as QuickCommandStepFetchResponse | QuickCommandStepLlmResponse
|
|
235
|
+
await (currentStep.type === 'FETCH' ? runFetchStep(ctx, currentIndex) : runLLMStep(ctx, currentIndex))
|
|
236
|
+
|
|
237
|
+
let nextIndex = currentIndex + 1
|
|
238
|
+
if (currentStep.next_step_slug) {
|
|
239
|
+
nextIndex = currentStep.next_step_slug === 'end' ?
|
|
240
|
+
qc.steps.length : qc.steps?.findIndex((step) => step.slug === currentStep.next_step_slug)
|
|
241
|
+
}
|
|
242
|
+
await runStepsRecursively(nextIndex, progress, ctx, iteration)
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
async function runSteps(ctx: QCContext) {
|
|
168
246
|
const progress = showProgressMessage(ctx)
|
|
169
247
|
try {
|
|
170
|
-
|
|
171
|
-
progress.update(i)
|
|
172
|
-
await (qc.steps?.[i].type === 'FETCH' ? runFetchStep(ctx, i) : runLLMStep(ctx, i))
|
|
173
|
-
}
|
|
248
|
+
await runStepsRecursively(0, progress, ctx, 0)
|
|
174
249
|
} finally {
|
|
175
250
|
progress.remove()
|
|
176
251
|
}
|
|
177
252
|
}
|
|
178
253
|
|
|
179
|
-
async function formatResult({ qc, code, executionId, context, resultMap, signal }: QCContext) {
|
|
254
|
+
async function formatResult({ qc, code, executionId, context, resultMap, customInputs, signal }: QCContext) {
|
|
180
255
|
const formatted = await aiClient.formatResultOfQuickCommand.mutate({
|
|
181
256
|
slug: qc.slug,
|
|
182
257
|
quickCommandsExecutionRequest: {
|
|
183
258
|
input_data: code,
|
|
184
259
|
context,
|
|
185
260
|
qc_execution_id: executionId,
|
|
186
|
-
slugs_executions: resultMap,
|
|
261
|
+
slugs_executions: { ...resultMap, ...customInputs },
|
|
187
262
|
},
|
|
188
263
|
}, signal)
|
|
189
264
|
return formatted.result
|
|
@@ -295,9 +370,10 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
|
|
|
295
370
|
qc: { slug } as QuickCommandResponse,
|
|
296
371
|
chat,
|
|
297
372
|
code: chat.get('codeSelection'),
|
|
298
|
-
context: buildConversationContext(chat) ?? {},
|
|
373
|
+
context: buildConversationContext(chat, entry) ?? {},
|
|
299
374
|
executionId: ulid(),
|
|
300
375
|
resultMap: {},
|
|
376
|
+
customInputs: {},
|
|
301
377
|
signal,
|
|
302
378
|
}
|
|
303
379
|
chat.set('isLoading', true)
|
|
@@ -331,14 +407,14 @@ const dictionary = {
|
|
|
331
407
|
en: {
|
|
332
408
|
requiresSelection: 'This quick command requires some code to be selected in the editor. To open the editor click the icon "{/}" in the field below.',
|
|
333
409
|
startQuestioning: 'To execute the Quick Command "$0", I\'ll need you to provide some information. Some may be mandatory, and others optional. Let\'s get started.',
|
|
334
|
-
progress: 'Running
|
|
410
|
+
progress: 'Running step "$0" from Quick Command "$1".',
|
|
335
411
|
aborted: 'The quick command execution aborted by the user.',
|
|
336
412
|
notFound: 'There\'s no quick command with the provided name. If you don\'t wish to run a command, prefix the first "/" with a "\\".',
|
|
337
413
|
},
|
|
338
414
|
pt: {
|
|
339
415
|
requiresSelection: 'Este quick command precisa que algum código esteja selecionado no editor. Para abrir o editor clique no ícone "{/}" no campo abaixo.',
|
|
340
416
|
startQuestioning: 'Para executar o Quick Command "$0", vou precisar que você providencie algumas explicações. Algumas são obrigatórias e outras opcionais. Vamos começar.',
|
|
341
|
-
progress: 'Executando
|
|
417
|
+
progress: 'Executando step "$0" do Quick Command "$1".',
|
|
342
418
|
aborted: 'A execução do quick command foi abortada pelo usuário.',
|
|
343
419
|
notFound: 'Não existe quick command com o nome providenciado. Se você não quiser rodar um comando, prefixe o primeiro "/" com um "\\".',
|
|
344
420
|
},
|
package/src/index.ts
CHANGED
|
@@ -16,4 +16,3 @@ export { ObservableState } from './state/ObservableState'
|
|
|
16
16
|
export type { Labeled, LabeledAgent, LabeledWithImage } from './state/types'
|
|
17
17
|
export { WidgetState } from './state/WidgetState'
|
|
18
18
|
export { defaultLanguage, languages } from './utils/programming-languages'
|
|
19
|
-
|
package/src/layout.css
CHANGED