@stack-spot/ai-chat-widget 2.13.1 → 2.13.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/CHANGELOG.md +7 -0
- 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 +8 -232
- package/dist/chat-interceptors/quick-commands.js.map +1 -1
- package/dist/views/Steps/dictionary.d.ts +1 -1
- package/package.json +2 -2
- package/src/app-metadata.json +3 -3
- package/src/chat-interceptors/quick-commands.ts +13 -275
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.13.2](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget@v2.13.1...ai-chat-widget@v2.13.2) (2026-02-19)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* refactor try ([#498](https://github.com/stack-spot/portal-ai-chat-widget/issues/498)) ([b03cd72](https://github.com/stack-spot/portal-ai-chat-widget/commit/b03cd725a116aff7a673876cb8e6866006af176f))
|
|
9
|
+
|
|
3
10
|
## [2.13.1](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget@v2.13.0...ai-chat-widget@v2.13.1) (2026-02-10)
|
|
4
11
|
|
|
5
12
|
|
package/dist/app-metadata.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/ai-chat-widget",
|
|
3
|
-
"version": "2.13.
|
|
4
|
-
"date": "
|
|
3
|
+
"version": "2.13.2",
|
|
4
|
+
"date": "Thu Feb 19 2026 18:23:57 GMT+0000 (Coordinated Universal Time)",
|
|
5
5
|
"dependencies": [
|
|
6
6
|
{
|
|
7
7
|
"name": "@stack-spot/app-metadata",
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
},
|
|
126
126
|
{
|
|
127
127
|
"name": "@stack-spot/portal-network",
|
|
128
|
-
"version": "0.
|
|
128
|
+
"version": "0.221.0(@stack-spot/auth@6.1.0)(@stack-spot/opa@2.5.0(@stack-spot/auth@6.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@stack-spot/portal-translate@2.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)"
|
|
129
129
|
},
|
|
130
130
|
{
|
|
131
131
|
"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":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAK3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIlD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS;;;;;;;;;;;;;;EAgB7E;AAwBD;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,MAAM,GAAG,SAAS,WAgJ7D,SAAS,QAAQ,SAAS,UAAU,WAAW,gCAuC9F"}
|
|
@@ -1,13 +1,11 @@
|
|
|
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';
|
|
4
3
|
import { ulid } from 'ulid';
|
|
5
4
|
import { AbortedError } from '../AbortedError.js';
|
|
6
5
|
import appData from '../app-metadata.json';
|
|
7
6
|
import { quickCommandRegex } from '../regex.js';
|
|
8
7
|
import { ChatEntry } from '../state/ChatEntry.js';
|
|
9
8
|
import { defaultLanguage } from '../utils/programming-languages.js';
|
|
10
|
-
import { getSizeOfString } from '../utils/string.js';
|
|
11
9
|
import { CustomInputs } from './CustomInputs.js';
|
|
12
10
|
export function buildQuickCommandContext(state, message) {
|
|
13
11
|
return {
|
|
@@ -68,112 +66,6 @@ export function createQuickCommandInterceptor(widget, getEditor) {
|
|
|
68
66
|
ctx.context.upload_ids = chat.getMessages()
|
|
69
67
|
.flatMap(message => (message.getValue().upload || []).map(upload => upload.id));
|
|
70
68
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Runs an Router step of a quick command.
|
|
73
|
-
*/
|
|
74
|
-
async function runRouterStep(ctx, stepIndex, iteration, progress) {
|
|
75
|
-
const { qc: { slug, steps }, code, resultMap, customInputs } = ctx;
|
|
76
|
-
const step = steps[stepIndex];
|
|
77
|
-
const inputData = Object.keys(customInputs).length > 0 && code ? { ...customInputs, [code]: code } : code ?? customInputs;
|
|
78
|
-
try {
|
|
79
|
-
if (step.slug in iteration) {
|
|
80
|
-
iteration[step.slug] = iteration[step.slug] + 1;
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
iteration[step.slug] = 1;
|
|
84
|
-
}
|
|
85
|
-
const { next_step_slug } = await aiClient.calculateNextStep.mutate({
|
|
86
|
-
stepSlug: step.slug,
|
|
87
|
-
slug: slug,
|
|
88
|
-
quickCommandEvaluateStepRouterRequest: {
|
|
89
|
-
executions_count: iteration[step.slug],
|
|
90
|
-
input_data: inputData,
|
|
91
|
-
slugs_executions: resultMap,
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
if (next_step_slug === step.slug) {
|
|
95
|
-
return runStepsRecursively(stepIndex, progress, ctx, iteration);
|
|
96
|
-
}
|
|
97
|
-
const nextStepIndex = steps?.findIndex((step) => step.slug === next_step_slug);
|
|
98
|
-
if (isNil(nextStepIndex) || nextStepIndex === -1)
|
|
99
|
-
return;
|
|
100
|
-
return runStepsRecursively(nextStepIndex, progress, ctx, iteration);
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
// eslint-disable-next-line no-console
|
|
104
|
-
console.error('Error executing QC step', error);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Runs a fetch step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
|
|
109
|
-
*/
|
|
110
|
-
async function runFetchStep(ctx, stepIndex) {
|
|
111
|
-
const { qc: { slug, steps }, code, context, resultMap, customInputs, executionId, signal } = ctx;
|
|
112
|
-
const step = steps[stepIndex];
|
|
113
|
-
if (step.is_remote) {
|
|
114
|
-
ctx.isRemote = true;
|
|
115
|
-
const { data } = await aiClient.fetchStepOfQuickCommandRemotely.mutate({
|
|
116
|
-
slug, stepSlug: step.slug,
|
|
117
|
-
quickCommandsExecutionRequest: {
|
|
118
|
-
code_selection: code, context, qc_execution_id: executionId,
|
|
119
|
-
slugs_executions: { ...resultMap, ...customInputs },
|
|
120
|
-
},
|
|
121
|
-
});
|
|
122
|
-
//data is the return of the request in the QC so we do not have full control over the response
|
|
123
|
-
//We handle the usual format with body, status_code and headers, but we might also handle other formats
|
|
124
|
-
const responseData = data;
|
|
125
|
-
resultMap[step.slug] = {
|
|
126
|
-
status: responseData.status_code || 200,
|
|
127
|
-
data: JSON.stringify(responseData.body) ?? JSON.stringify(responseData),
|
|
128
|
-
headers: responseData.headers ?? {},
|
|
129
|
-
};
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
const { headers, data, method, url } = await aiClient.fetchStepOfQuickCommand.mutate({
|
|
133
|
-
slug,
|
|
134
|
-
stepSlug: step.slug,
|
|
135
|
-
quickCommandsExecutionRequest: {
|
|
136
|
-
input_data: code, context, qc_execution_id: executionId,
|
|
137
|
-
slugs_executions: { ...resultMap, ...customInputs },
|
|
138
|
-
},
|
|
139
|
-
}, signal);
|
|
140
|
-
const body = ['get', 'head'].includes(method.toLowerCase()) ? undefined : data;
|
|
141
|
-
const response = await fetch(url, { headers: headers || undefined, body, method, signal });
|
|
142
|
-
if (!response.ok)
|
|
143
|
-
throw new Error(`Failed to execute step "${step.slug}" of quick command "${slug}". Status ${response.status}.`);
|
|
144
|
-
resultMap[step.slug] = {
|
|
145
|
-
status: response.status,
|
|
146
|
-
data: await response.text(),
|
|
147
|
-
headers: Object.fromEntries(response.headers.entries()),
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Runs an LLM step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
|
|
152
|
-
*/
|
|
153
|
-
async function runLLMStep({ qc: { slug, steps }, code, customInputs, context, executionId, resultMap, signal }, stepIndex) {
|
|
154
|
-
const step = steps[stepIndex];
|
|
155
|
-
let stepContext = context;
|
|
156
|
-
if (!step.use_uploaded_files) {
|
|
157
|
-
const { upload_ids: _upload_ids, ...contextDataProps } = context;
|
|
158
|
-
stepContext = { ...contextDataProps };
|
|
159
|
-
}
|
|
160
|
-
const stream = aiClient.streamLlmStepOfQuickCommand(slug, step.slug, {
|
|
161
|
-
input_data: code,
|
|
162
|
-
context: stepContext,
|
|
163
|
-
qc_execution_id: executionId,
|
|
164
|
-
slugs_executions: { ...resultMap, ...customInputs },
|
|
165
|
-
});
|
|
166
|
-
signal.addEventListener('abort', () => stream.cancel());
|
|
167
|
-
let finalValue;
|
|
168
|
-
try {
|
|
169
|
-
finalValue = await stream.getValue();
|
|
170
|
-
resultMap[step.slug] = finalValue;
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
// eslint-disable-next-line no-console
|
|
174
|
-
console.error('Error executing QC step', error);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
69
|
function updateProgressMessageForStep(message, qc, stepIndex) {
|
|
178
70
|
const t = translate(dictionary);
|
|
179
71
|
message.setValue({
|
|
@@ -203,94 +95,13 @@ export function createQuickCommandInterceptor(widget, getEditor) {
|
|
|
203
95
|
}, showImmediately ? 0 : progressMessageDelayMS);
|
|
204
96
|
return controller;
|
|
205
97
|
}
|
|
206
|
-
async function
|
|
207
|
-
if (currentAttempt >= maxAttempts) {
|
|
208
|
-
throw new Error('Max attempts reached in verify script status');
|
|
209
|
-
}
|
|
210
|
-
await aiClient.getStatusScriptStep.invalidate({ scriptExecutionId });
|
|
211
|
-
const response = await aiClient.getStatusScriptStep.query({ scriptExecutionId });
|
|
212
|
-
if (response.status === 'success') {
|
|
213
|
-
return response;
|
|
214
|
-
}
|
|
215
|
-
if (response.status === 'failure') {
|
|
216
|
-
throw response;
|
|
217
|
-
}
|
|
218
|
-
await new Promise(resolve => { setTimeout(resolve, interval); });
|
|
219
|
-
return getScriptStepStatus(scriptExecutionId, interval, maxAttempts, currentAttempt + 1);
|
|
220
|
-
}
|
|
221
|
-
async function runScriptStep({ qc: { slug, steps }, code, context, resultMap, customInputs, signal }, stepIndex) {
|
|
222
|
-
const step = steps[stepIndex];
|
|
223
|
-
let stepContext = context;
|
|
224
|
-
if (!step.use_uploaded_files) {
|
|
225
|
-
const { upload_ids: _upload_ids, ...contextDataProps } = context;
|
|
226
|
-
stepContext = { ...contextDataProps };
|
|
227
|
-
}
|
|
228
|
-
try {
|
|
229
|
-
const { script_execution_id } = await aiClient.startScriptStep.mutate({
|
|
230
|
-
stepSlug: step.slug,
|
|
231
|
-
slug: slug,
|
|
232
|
-
quickCommandStartScriptRequest: {
|
|
233
|
-
input_data: code,
|
|
234
|
-
custom_inputs: customInputs,
|
|
235
|
-
context: stepContext,
|
|
236
|
-
slugs_executions: resultMap,
|
|
237
|
-
},
|
|
238
|
-
}, signal);
|
|
239
|
-
const scriptResult = await getScriptStepStatus(script_execution_id);
|
|
240
|
-
resultMap[step.slug] = scriptResult;
|
|
241
|
-
}
|
|
242
|
-
catch (error) {
|
|
243
|
-
throw new Error(`Failed to execute step "${step.slug}" of quick command "${slug}". Error ${error}.`);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
async function runStepsRecursively(currentIndex, progress, ctx, iteration) {
|
|
247
|
-
const { qc } = ctx;
|
|
248
|
-
if (!qc.steps || currentIndex >= qc.steps?.length)
|
|
249
|
-
return;
|
|
250
|
-
progress.update(currentIndex);
|
|
251
|
-
if (qc.steps[currentIndex].type === 'ROUTER') {
|
|
252
|
-
await runRouterStep(ctx, currentIndex, iteration, progress);
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
if (qc.steps[currentIndex].type === 'SCRIPT') {
|
|
256
|
-
await runScriptStep(ctx, currentIndex);
|
|
257
|
-
}
|
|
258
|
-
else {
|
|
259
|
-
await (qc.steps[currentIndex].type === 'FETCH' ? runFetchStep(ctx, currentIndex) : runLLMStep(ctx, currentIndex));
|
|
260
|
-
}
|
|
261
|
-
const currentStep = qc.steps?.[currentIndex];
|
|
262
|
-
let nextIndex = currentIndex + 1;
|
|
263
|
-
let nextStepSlug = currentStep.next_step_slug;
|
|
264
|
-
const stepResult = ctx.resultMap[currentStep.slug];
|
|
265
|
-
if (stepResult && typeof stepResult !== 'string' && 'answer_status' in stepResult && !!stepResult.answer_status?.next_step_slug) {
|
|
266
|
-
nextStepSlug = stepResult.answer_status.next_step_slug;
|
|
267
|
-
}
|
|
268
|
-
if (nextStepSlug) {
|
|
269
|
-
nextIndex = nextStepSlug === 'end' ?
|
|
270
|
-
qc.steps.length : qc.steps?.findIndex((step) => step.slug === nextStepSlug);
|
|
271
|
-
}
|
|
272
|
-
await runStepsRecursively(nextIndex, progress, ctx, iteration);
|
|
273
|
-
}
|
|
274
|
-
async function runSteps(ctx) {
|
|
98
|
+
async function runQC(ctx) {
|
|
275
99
|
const progress = showProgressMessage(ctx);
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
async function formatResult({ qc, code, executionId, context, resultMap, customInputs, signal }) {
|
|
284
|
-
const formatted = await aiClient.formatResultOfQuickCommand.mutate({
|
|
285
|
-
slug: qc.slug,
|
|
286
|
-
quickCommandsExecutionRequest: {
|
|
287
|
-
input_data: code,
|
|
288
|
-
context,
|
|
289
|
-
qc_execution_id: executionId,
|
|
290
|
-
slugs_executions: { ...resultMap, ...customInputs },
|
|
291
|
-
},
|
|
292
|
-
}, signal);
|
|
293
|
-
return formatted.result;
|
|
100
|
+
const { qc, ...props } = ctx;
|
|
101
|
+
const context = { ...props, slug: qc.slug };
|
|
102
|
+
const finalResult = await aiClient.runQuickCommand(context, progress);
|
|
103
|
+
progress.remove();
|
|
104
|
+
return finalResult;
|
|
294
105
|
}
|
|
295
106
|
// opens a new chat tab if the quick command doesn't preserve the conversation and the current conversation isn't clean.
|
|
296
107
|
function manageConversationContext(ctx) {
|
|
@@ -332,40 +143,8 @@ export function createQuickCommandInterceptor(widget, getEditor) {
|
|
|
332
143
|
}
|
|
333
144
|
manageConversationContext(ctx);
|
|
334
145
|
await computeCustomInputs(ctx);
|
|
335
|
-
await
|
|
336
|
-
return
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* This registers a quick command event in the backend (analytics).
|
|
340
|
-
*/
|
|
341
|
-
async function registerAnalyticsEvent({ qc, isRemote, executionId, code = '', context }, status, start) {
|
|
342
|
-
const now = new Date().getTime();
|
|
343
|
-
try {
|
|
344
|
-
await aiClient.createEvent.mutate({
|
|
345
|
-
body: [{
|
|
346
|
-
type: 'custom_quick_command_execution',
|
|
347
|
-
quick_command_event: {
|
|
348
|
-
type: qc.type || '',
|
|
349
|
-
duration_execution: now - start,
|
|
350
|
-
status_execution: status,
|
|
351
|
-
slug: qc.slug,
|
|
352
|
-
qc_execution_id: executionId,
|
|
353
|
-
id: qc.id,
|
|
354
|
-
//@ts-ignore
|
|
355
|
-
is_remote: isRemote,
|
|
356
|
-
},
|
|
357
|
-
code,
|
|
358
|
-
context,
|
|
359
|
-
knowledge_sources: [],
|
|
360
|
-
size: getSizeOfString(code),
|
|
361
|
-
generated_at: now,
|
|
362
|
-
}],
|
|
363
|
-
});
|
|
364
|
-
}
|
|
365
|
-
catch (error) {
|
|
366
|
-
// eslint-disable-next-line no-console
|
|
367
|
-
console.warn('Failed to register event: quick command.');
|
|
368
|
-
}
|
|
146
|
+
const result = await runQC(ctx);
|
|
147
|
+
return result;
|
|
369
148
|
}
|
|
370
149
|
/**
|
|
371
150
|
* Writes the result in the chat or in the editor.
|
|
@@ -415,12 +194,10 @@ export function createQuickCommandInterceptor(widget, getEditor) {
|
|
|
415
194
|
signal,
|
|
416
195
|
};
|
|
417
196
|
chat.set('isLoading', true);
|
|
418
|
-
const start = new Date().getTime();
|
|
419
197
|
try {
|
|
420
198
|
const result = await runQuickCommand(ctx);
|
|
421
199
|
if (result) {
|
|
422
200
|
outputResult(ctx, result);
|
|
423
|
-
registerAnalyticsEvent(ctx, '200', start);
|
|
424
201
|
}
|
|
425
202
|
}
|
|
426
203
|
catch (error) {
|
|
@@ -436,7 +213,6 @@ export function createQuickCommandInterceptor(widget, getEditor) {
|
|
|
436
213
|
agent: chat.get('agent'),
|
|
437
214
|
type: 'text',
|
|
438
215
|
}));
|
|
439
|
-
registerAnalyticsEvent(ctx, message, start);
|
|
440
216
|
}
|
|
441
217
|
ctx.chat.set('isLoading', false);
|
|
442
218
|
// prevents the next interceptors from running
|
|
@@ -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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"}
|
|
@@ -38,6 +38,6 @@ export declare const dictionary: {
|
|
|
38
38
|
userPrompt: string;
|
|
39
39
|
};
|
|
40
40
|
};
|
|
41
|
-
export declare function useStepsDictionary(): Record<"pending" | "input" | "step" | "steps" | "
|
|
41
|
+
export declare function useStepsDictionary(): Record<"pending" | "input" | "step" | "steps" | "tools" | "planning" | "running" | "answer" | "unknown" | "stepsPanelDescription" | "response" | "executionTime" | "nextAttempt" | "previousAttempt" | "finalAnswer" | "userPrompt", string>;
|
|
42
42
|
export type ToolsDictionary = typeof dictionary['en'];
|
|
43
43
|
//# sourceMappingURL=dictionary.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/ai-chat-widget",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"@citric/core": "^6.4.0",
|
|
17
17
|
"@stack-spot/portal-components": "^2.27.3",
|
|
18
18
|
"@citric/icons": "^5.13.0",
|
|
19
|
-
"@stack-spot/portal-network": "0.
|
|
19
|
+
"@stack-spot/portal-network": "0.221.0",
|
|
20
20
|
"@citric/ui": "^6.10.2",
|
|
21
21
|
"@stack-spot/portal-translate": "^2.1.0",
|
|
22
22
|
"lodash": "^4.17.0",
|
package/src/app-metadata.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/ai-chat-widget",
|
|
3
|
-
"version": "2.13.
|
|
4
|
-
"date": "
|
|
3
|
+
"version": "2.13.2",
|
|
4
|
+
"date": "Thu Feb 19 2026 18:23:57 GMT+0000 (Coordinated Universal Time)",
|
|
5
5
|
"dependencies": [
|
|
6
6
|
{
|
|
7
7
|
"name": "@stack-spot/app-metadata",
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
},
|
|
126
126
|
{
|
|
127
127
|
"name": "@stack-spot/portal-network",
|
|
128
|
-
"version": "0.
|
|
128
|
+
"version": "0.221.0(@stack-spot/auth@6.1.0)(@stack-spot/opa@2.5.0(@stack-spot/auth@6.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@stack-spot/portal-translate@2.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)"
|
|
129
129
|
},
|
|
130
130
|
{
|
|
131
131
|
"name": "@stack-spot/portal-theme",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { aiClient, CancelledError, StackspotAPIError } from '@stack-spot/portal-network'
|
|
2
|
-
import {
|
|
1
|
+
import { aiClient, CancelledError, QCContext as QCContextLib, StackspotAPIError } from '@stack-spot/portal-network'
|
|
2
|
+
import { QuickCommandResponse, QuickCommandStepResult } from '@stack-spot/portal-network/api/ai'
|
|
3
3
|
import { Dictionary, interpolate, translate } from '@stack-spot/portal-translate'
|
|
4
|
-
import { isNil } from 'lodash'
|
|
5
4
|
import type { editor } from 'monaco-editor'
|
|
6
5
|
import { ulid } from 'ulid'
|
|
7
6
|
import { AbortedError } from '../AbortedError'
|
|
@@ -12,7 +11,6 @@ import { ChatState } from '../state/ChatState'
|
|
|
12
11
|
import { LabeledWithImage } from '../state/types'
|
|
13
12
|
import { WidgetState } from '../state/WidgetState'
|
|
14
13
|
import { defaultLanguage } from '../utils/programming-languages'
|
|
15
|
-
import { getSizeOfString } from '../utils/string'
|
|
16
14
|
import { CustomInputs } from './CustomInputs'
|
|
17
15
|
|
|
18
16
|
export function buildQuickCommandContext(state: ChatState, message?: ChatEntry) {
|
|
@@ -94,132 +92,6 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
|
|
|
94
92
|
)
|
|
95
93
|
}
|
|
96
94
|
|
|
97
|
-
/**
|
|
98
|
-
* Runs an Router step of a quick command.
|
|
99
|
-
*/
|
|
100
|
-
async function runRouterStep(
|
|
101
|
-
ctx: QCContext,
|
|
102
|
-
stepIndex: number, iteration: Record<string, number>,
|
|
103
|
-
progress: { update: (index: number) => void, remove: () => void },
|
|
104
|
-
) {
|
|
105
|
-
const { qc: { slug, steps }, code, resultMap, customInputs } = ctx
|
|
106
|
-
const step = steps![stepIndex]
|
|
107
|
-
const inputData = Object.keys(customInputs).length > 0 && code ? { ...customInputs, [code]: code } : code ?? customInputs
|
|
108
|
-
try {
|
|
109
|
-
if (step.slug in iteration) {
|
|
110
|
-
iteration[step.slug] = iteration[step.slug] + 1
|
|
111
|
-
} else {
|
|
112
|
-
iteration[step.slug] = 1
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
const { next_step_slug } = await aiClient.calculateNextStep.mutate({
|
|
116
|
-
stepSlug: step.slug,
|
|
117
|
-
slug: slug,
|
|
118
|
-
quickCommandEvaluateStepRouterRequest: {
|
|
119
|
-
executions_count: iteration[step.slug],
|
|
120
|
-
input_data: inputData,
|
|
121
|
-
slugs_executions: resultMap,
|
|
122
|
-
},
|
|
123
|
-
})
|
|
124
|
-
|
|
125
|
-
if (next_step_slug === step.slug) {
|
|
126
|
-
return runStepsRecursively(stepIndex, progress, ctx, iteration)
|
|
127
|
-
}
|
|
128
|
-
const nextStepIndex = steps?.findIndex((step) => step.slug === next_step_slug)
|
|
129
|
-
|
|
130
|
-
if (isNil(nextStepIndex) || nextStepIndex === -1) return
|
|
131
|
-
|
|
132
|
-
return runStepsRecursively(nextStepIndex, progress, ctx, iteration)
|
|
133
|
-
}
|
|
134
|
-
catch (error: any) {
|
|
135
|
-
// eslint-disable-next-line no-console
|
|
136
|
-
console.error('Error executing QC step', error)
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Runs a fetch step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
|
|
142
|
-
*/
|
|
143
|
-
async function runFetchStep(ctx: QCContext, stepIndex: number) {
|
|
144
|
-
const { qc: { slug, steps }, code, context, resultMap, customInputs, executionId, signal } = ctx
|
|
145
|
-
const step = steps![stepIndex] as QuickCommandStepFetchResponse
|
|
146
|
-
if (step.is_remote) {
|
|
147
|
-
ctx.isRemote = true
|
|
148
|
-
|
|
149
|
-
const { data } = await aiClient.fetchStepOfQuickCommandRemotely.mutate({
|
|
150
|
-
slug, stepSlug: step.slug,
|
|
151
|
-
quickCommandsExecutionRequest: {
|
|
152
|
-
code_selection: code, context, qc_execution_id: executionId,
|
|
153
|
-
slugs_executions: { ...resultMap, ...customInputs },
|
|
154
|
-
},
|
|
155
|
-
})
|
|
156
|
-
|
|
157
|
-
//data is the return of the request in the QC so we do not have full control over the response
|
|
158
|
-
//We handle the usual format with body, status_code and headers, but we might also handle other formats
|
|
159
|
-
const responseData = data as any
|
|
160
|
-
resultMap[step.slug] = {
|
|
161
|
-
status: responseData.status_code || 200,
|
|
162
|
-
data: JSON.stringify(responseData.body) ?? JSON.stringify(responseData),
|
|
163
|
-
headers: responseData.headers ?? {},
|
|
164
|
-
}
|
|
165
|
-
return
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
const { headers, data, method, url } = await aiClient.fetchStepOfQuickCommand.mutate({
|
|
169
|
-
slug,
|
|
170
|
-
stepSlug: step.slug,
|
|
171
|
-
quickCommandsExecutionRequest: {
|
|
172
|
-
input_data: code, context, qc_execution_id: executionId,
|
|
173
|
-
slugs_executions: { ...resultMap, ...customInputs },
|
|
174
|
-
},
|
|
175
|
-
}, signal)
|
|
176
|
-
const body = ['get', 'head'].includes(method.toLowerCase()) ? undefined : data
|
|
177
|
-
const response = await fetch(url, { headers: headers || undefined, body, method, signal })
|
|
178
|
-
if (!response.ok) throw new Error(`Failed to execute step "${step.slug}" of quick command "${slug}". Status ${response.status}.`)
|
|
179
|
-
resultMap[step.slug] = {
|
|
180
|
-
status: response.status,
|
|
181
|
-
data: await response.text(),
|
|
182
|
-
headers: Object.fromEntries(response.headers.entries()),
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Runs an LLM step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
|
|
188
|
-
*/
|
|
189
|
-
async function runLLMStep(
|
|
190
|
-
{ qc: { slug, steps }, code, customInputs, context, executionId, resultMap, signal }: QCContext,
|
|
191
|
-
stepIndex: number,
|
|
192
|
-
) {
|
|
193
|
-
const step = steps![stepIndex] as QuickCommandStepLlmResponse
|
|
194
|
-
let stepContext = context
|
|
195
|
-
if (!step.use_uploaded_files) {
|
|
196
|
-
const { upload_ids: _upload_ids, ...contextDataProps } = context
|
|
197
|
-
stepContext = { ...contextDataProps } as QuickCommandContext
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
const stream = aiClient.streamLlmStepOfQuickCommand(
|
|
201
|
-
slug,
|
|
202
|
-
step.slug,
|
|
203
|
-
{
|
|
204
|
-
input_data: code,
|
|
205
|
-
context: stepContext,
|
|
206
|
-
qc_execution_id: executionId,
|
|
207
|
-
slugs_executions: { ...resultMap, ...customInputs },
|
|
208
|
-
},
|
|
209
|
-
)
|
|
210
|
-
|
|
211
|
-
signal.addEventListener('abort', () => stream.cancel())
|
|
212
|
-
|
|
213
|
-
let finalValue: QuickCommandPromptResponse2
|
|
214
|
-
try {
|
|
215
|
-
finalValue = await stream.getValue()
|
|
216
|
-
resultMap[step.slug] = finalValue
|
|
217
|
-
} catch (error: any) {
|
|
218
|
-
// eslint-disable-next-line no-console
|
|
219
|
-
console.error('Error executing QC step', error)
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
95
|
function updateProgressMessageForStep(message: ChatEntry, qc: QuickCommandResponse, stepIndex: number) {
|
|
224
96
|
const t = translate(dictionary)
|
|
225
97
|
message.setValue({
|
|
@@ -251,115 +123,16 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
|
|
|
251
123
|
}, showImmediately ? 0 : progressMessageDelayMS)
|
|
252
124
|
return controller
|
|
253
125
|
}
|
|
254
|
-
async function getScriptStepStatus(
|
|
255
|
-
scriptExecutionId: string,
|
|
256
|
-
interval = 5000,
|
|
257
|
-
maxAttempts = 500,
|
|
258
|
-
currentAttempt = 0,
|
|
259
|
-
): Promise<QuickCommandScriptExecutionResponse> {
|
|
260
|
-
if (currentAttempt >= maxAttempts) {
|
|
261
|
-
throw new Error('Max attempts reached in verify script status')
|
|
262
|
-
}
|
|
263
|
-
await aiClient.getStatusScriptStep.invalidate({ scriptExecutionId })
|
|
264
|
-
const response = await aiClient.getStatusScriptStep.query({ scriptExecutionId })
|
|
265
|
-
|
|
266
|
-
if (response.status === 'success') {
|
|
267
|
-
return response
|
|
268
|
-
}
|
|
269
126
|
|
|
270
|
-
|
|
271
|
-
throw response
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
await new Promise(resolve => {setTimeout(resolve, interval)})
|
|
275
|
-
|
|
276
|
-
return getScriptStepStatus(scriptExecutionId, interval, maxAttempts, currentAttempt + 1)
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
async function runScriptStep(
|
|
280
|
-
{ qc: { slug, steps }, code, context, resultMap, customInputs, signal }: QCContext,
|
|
281
|
-
stepIndex: number,
|
|
282
|
-
) {
|
|
283
|
-
const step = steps![stepIndex] as QuickCommandStepLlmResponse
|
|
284
|
-
let stepContext = context
|
|
285
|
-
if (!step.use_uploaded_files) {
|
|
286
|
-
const { upload_ids: _upload_ids, ...contextDataProps } = context
|
|
287
|
-
stepContext = { ...contextDataProps } as QuickCommandContext
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
try {
|
|
291
|
-
const { script_execution_id } = await aiClient.startScriptStep.mutate({
|
|
292
|
-
stepSlug: step.slug,
|
|
293
|
-
slug: slug,
|
|
294
|
-
quickCommandStartScriptRequest: {
|
|
295
|
-
input_data: code,
|
|
296
|
-
custom_inputs: customInputs,
|
|
297
|
-
context: stepContext,
|
|
298
|
-
slugs_executions: resultMap,
|
|
299
|
-
},
|
|
300
|
-
}, signal)
|
|
301
|
-
const scriptResult = await getScriptStepStatus(script_execution_id)
|
|
302
|
-
resultMap[step.slug] = scriptResult
|
|
303
|
-
}
|
|
304
|
-
catch (error: any) {
|
|
305
|
-
throw new Error(`Failed to execute step "${step.slug}" of quick command "${slug}". Error ${error}.`)
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
async function runStepsRecursively(currentIndex: number, progress: { update: (index: number) => void, remove: () => void },
|
|
310
|
-
ctx: QCContext, iteration: Record<string, number>) {
|
|
311
|
-
const { qc } = ctx
|
|
312
|
-
|
|
313
|
-
if (!qc.steps || currentIndex >= qc.steps?.length) return
|
|
314
|
-
progress.update(currentIndex)
|
|
315
|
-
|
|
316
|
-
if (qc.steps[currentIndex].type === 'ROUTER') {
|
|
317
|
-
await runRouterStep(ctx, currentIndex, iteration, progress)
|
|
318
|
-
return
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
if (qc.steps[currentIndex].type === 'SCRIPT') {
|
|
322
|
-
await runScriptStep(ctx, currentIndex)
|
|
323
|
-
} else {
|
|
324
|
-
await (qc.steps[currentIndex].type === 'FETCH' ? runFetchStep(ctx, currentIndex) : runLLMStep(ctx, currentIndex))
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
const currentStep = qc.steps?.[currentIndex] as QuickCommandStepFetchResponse | QuickCommandStepLlmResponse
|
|
328
|
-
let nextIndex = currentIndex + 1
|
|
329
|
-
|
|
330
|
-
let nextStepSlug = currentStep.next_step_slug
|
|
331
|
-
const stepResult = ctx.resultMap[currentStep.slug]
|
|
332
|
-
if (stepResult && typeof stepResult !== 'string' && 'answer_status' in stepResult && !!stepResult.answer_status?.next_step_slug) {
|
|
333
|
-
nextStepSlug = stepResult.answer_status.next_step_slug
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
if (nextStepSlug) {
|
|
337
|
-
nextIndex = nextStepSlug === 'end' ?
|
|
338
|
-
qc.steps.length : qc.steps?.findIndex((step) => step.slug === nextStepSlug)
|
|
339
|
-
}
|
|
340
|
-
await runStepsRecursively(nextIndex, progress, ctx, iteration)
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
async function runSteps(ctx: QCContext) {
|
|
127
|
+
async function runQC(ctx: QCContext) {
|
|
344
128
|
const progress = showProgressMessage(ctx)
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
}
|
|
350
|
-
}
|
|
129
|
+
|
|
130
|
+
const { qc, ...props } = ctx
|
|
131
|
+
const context: QCContextLib = { ...props, slug: qc.slug }
|
|
132
|
+
const finalResult = await aiClient.runQuickCommand(context, progress)
|
|
351
133
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
slug: qc.slug,
|
|
355
|
-
quickCommandsExecutionRequest: {
|
|
356
|
-
input_data: code,
|
|
357
|
-
context,
|
|
358
|
-
qc_execution_id: executionId,
|
|
359
|
-
slugs_executions: { ...resultMap, ...customInputs },
|
|
360
|
-
},
|
|
361
|
-
}, signal)
|
|
362
|
-
return formatted.result
|
|
134
|
+
progress.remove()
|
|
135
|
+
return finalResult
|
|
363
136
|
}
|
|
364
137
|
|
|
365
138
|
// opens a new chat tab if the quick command doesn't preserve the conversation and the current conversation isn't clean.
|
|
@@ -389,7 +162,7 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
|
|
|
389
162
|
} catch (error) {
|
|
390
163
|
throw error instanceof StackspotAPIError && error.status === 404 ? new Error(t.notFound) : error
|
|
391
164
|
}
|
|
392
|
-
|
|
165
|
+
|
|
393
166
|
if (ctx.qc.use_selected_code && (!code && ctx.context.upload_ids?.length === 0)) {
|
|
394
167
|
widget.set('panel', 'editor')
|
|
395
168
|
ctx.chat.pushMessage(new ChatEntry({
|
|
@@ -398,44 +171,12 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
|
|
|
398
171
|
agent: ctx.chat.get('agent'),
|
|
399
172
|
content: t.requiresSelection,
|
|
400
173
|
}))
|
|
401
|
-
return
|
|
174
|
+
return
|
|
402
175
|
}
|
|
403
176
|
manageConversationContext(ctx)
|
|
404
177
|
await computeCustomInputs(ctx)
|
|
405
|
-
await
|
|
406
|
-
return
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
/**
|
|
410
|
-
* This registers a quick command event in the backend (analytics).
|
|
411
|
-
*/
|
|
412
|
-
async function registerAnalyticsEvent({ qc, isRemote, executionId, code = '', context }: QCContext, status: string, start: number) {
|
|
413
|
-
const now = new Date().getTime()
|
|
414
|
-
try {
|
|
415
|
-
await aiClient.createEvent.mutate({
|
|
416
|
-
body: [{
|
|
417
|
-
type: 'custom_quick_command_execution',
|
|
418
|
-
quick_command_event: {
|
|
419
|
-
type: qc.type || '',
|
|
420
|
-
duration_execution: now - start,
|
|
421
|
-
status_execution: status,
|
|
422
|
-
slug: qc.slug,
|
|
423
|
-
qc_execution_id: executionId,
|
|
424
|
-
id: qc.id,
|
|
425
|
-
//@ts-ignore
|
|
426
|
-
is_remote: isRemote,
|
|
427
|
-
},
|
|
428
|
-
code,
|
|
429
|
-
context,
|
|
430
|
-
knowledge_sources: [],
|
|
431
|
-
size: getSizeOfString(code),
|
|
432
|
-
generated_at: now,
|
|
433
|
-
}],
|
|
434
|
-
})
|
|
435
|
-
} catch (error) {
|
|
436
|
-
// eslint-disable-next-line no-console
|
|
437
|
-
console.warn('Failed to register event: quick command.')
|
|
438
|
-
}
|
|
178
|
+
const result = await runQC(ctx)
|
|
179
|
+
return result
|
|
439
180
|
}
|
|
440
181
|
|
|
441
182
|
/**
|
|
@@ -483,12 +224,10 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
|
|
|
483
224
|
signal,
|
|
484
225
|
}
|
|
485
226
|
chat.set('isLoading', true)
|
|
486
|
-
const start = new Date().getTime()
|
|
487
227
|
try {
|
|
488
228
|
const result = await runQuickCommand(ctx)
|
|
489
229
|
if (result) {
|
|
490
230
|
outputResult(ctx, result)
|
|
491
|
-
registerAnalyticsEvent(ctx, '200', start)
|
|
492
231
|
}
|
|
493
232
|
} catch (error: any) {
|
|
494
233
|
let message = error.message || `${error}`
|
|
@@ -501,7 +240,6 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
|
|
|
501
240
|
agent: chat.get('agent'),
|
|
502
241
|
type: 'text',
|
|
503
242
|
}))
|
|
504
|
-
registerAnalyticsEvent(ctx, message, start)
|
|
505
243
|
}
|
|
506
244
|
ctx.chat.set('isLoading', false)
|
|
507
245
|
// prevents the next interceptors from running
|