@stack-spot/ai-chat-widget 1.0.0-dev.1769120820021 → 1.0.0-dev.1769537635610

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 CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.11.1](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget@v2.11.0...ai-chat-widget@v2.11.1) (2026-01-20)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * accessibility adjustment in code editor ([#494](https://github.com/stack-spot/portal-ai-chat-widget/issues/494)) ([f6727cd](https://github.com/stack-spot/portal-ai-chat-widget/commit/f6727cdcd68368b78bfa6823f74f453fa7330471))
9
+
3
10
  ## [2.11.0](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget@v2.10.0...ai-chat-widget@v2.11.0) (2026-01-07)
4
11
 
5
12
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.0.0-dev.1769120820021",
4
- "date": "Thu Jan 22 2026 22:27:05 GMT+0000 (Coordinated Universal Time)",
3
+ "version": "1.0.0-dev.1769537635610",
4
+ "date": "Tue Jan 27 2026 18:14:01 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": "1.0.0-dev.1769117840606(@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)"
128
+ "version": "1.0.0-dev.1769537511491(@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":"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,WAiZ7D,SAAS,QAAQ,SAAS,UAAU,WAAW,gCA0C9F"}
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;AAI3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAwBlD;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,MAAM,GAAG,SAAS,WAiJ7D,SAAS,QAAQ,SAAS,UAAU,WAAW,gCAuC9F"}
@@ -1,12 +1,10 @@
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 { quickCommandRegex } from '../regex.js';
7
6
  import { ChatEntry } from '../state/ChatEntry.js';
8
7
  import { buildConversationContext } from '../utils/chat.js';
9
- import { getSizeOfString } from '../utils/string.js';
10
8
  import { CustomInputs } from './CustomInputs.js';
11
9
  /**
12
10
  * While the quick command is running, if it takes more than `progressMessageDelayMS` a progress message is shown.
@@ -50,112 +48,6 @@ export function createQuickCommandInterceptor(widget, getEditor) {
50
48
  ctx.context.upload_ids = chat.getMessages()
51
49
  .flatMap(message => (message.getValue().upload || []).map(upload => upload.id));
52
50
  }
53
- /**
54
- * Runs an Router step of a quick command.
55
- */
56
- async function runRouterStep(ctx, stepIndex, iteration, progress) {
57
- const { qc: { slug, steps }, code, resultMap, customInputs } = ctx;
58
- const step = steps[stepIndex];
59
- const inputData = Object.keys(customInputs).length > 0 && code ? { ...customInputs, [code]: code } : code ?? customInputs;
60
- try {
61
- if (step.slug in iteration) {
62
- iteration[step.slug] = iteration[step.slug] + 1;
63
- }
64
- else {
65
- iteration[step.slug] = 1;
66
- }
67
- const { next_step_slug } = await aiClient.calculateNextStep.mutate({
68
- stepSlug: step.slug,
69
- slug: slug,
70
- quickCommandEvaluateStepRouterRequest: {
71
- executions_count: iteration[step.slug],
72
- input_data: inputData,
73
- slugs_executions: resultMap,
74
- },
75
- });
76
- if (next_step_slug === step.slug) {
77
- return runStepsRecursively(stepIndex, progress, ctx, iteration);
78
- }
79
- const nextStepIndex = steps?.findIndex((step) => step.slug === next_step_slug);
80
- if (isNil(nextStepIndex) || nextStepIndex === -1)
81
- return;
82
- return runStepsRecursively(nextStepIndex, progress, ctx, iteration);
83
- }
84
- catch (error) {
85
- // eslint-disable-next-line no-console
86
- console.error('Error executing QC step', error);
87
- }
88
- }
89
- /**
90
- * Runs a fetch step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
91
- */
92
- async function runFetchStep(ctx, stepIndex) {
93
- const { qc: { slug, steps }, code, context, resultMap, customInputs, executionId, signal } = ctx;
94
- const step = steps[stepIndex];
95
- if (step.is_remote) {
96
- ctx.isRemote = true;
97
- const { data } = await aiClient.fetchStepOfQuickCommandRemotely.mutate({
98
- slug, stepSlug: step.slug,
99
- quickCommandsExecutionRequest: {
100
- code_selection: code, context, qc_execution_id: executionId,
101
- slugs_executions: { ...resultMap, ...customInputs },
102
- },
103
- });
104
- //data is the return of the request in the QC so we do not have full control over the response
105
- //We handle the usual format with body, status_code and headers, but we might also handle other formats
106
- const responseData = data;
107
- resultMap[step.slug] = {
108
- status: responseData.status_code || 200,
109
- data: JSON.stringify(responseData.body) ?? JSON.stringify(responseData),
110
- headers: responseData.headers ?? {},
111
- };
112
- return;
113
- }
114
- const { headers, data, method, url } = await aiClient.fetchStepOfQuickCommand.mutate({
115
- slug,
116
- stepSlug: step.slug,
117
- quickCommandsExecutionRequest: {
118
- input_data: code, context, qc_execution_id: executionId,
119
- slugs_executions: { ...resultMap, ...customInputs },
120
- },
121
- }, signal);
122
- const body = ['get', 'head'].includes(method.toLowerCase()) ? undefined : data;
123
- const response = await fetch(url, { headers: headers || undefined, body, method, signal });
124
- if (!response.ok)
125
- throw new Error(`Failed to execute step "${step.slug}" of quick command "${slug}". Status ${response.status}.`);
126
- resultMap[step.slug] = {
127
- status: response.status,
128
- data: await response.text(),
129
- headers: Object.fromEntries(response.headers.entries()),
130
- };
131
- }
132
- /**
133
- * Runs an LLM step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
134
- */
135
- async function runLLMStep({ qc: { slug, steps }, code, customInputs, context, executionId, resultMap, signal }, stepIndex) {
136
- const step = steps[stepIndex];
137
- let stepContext = context;
138
- if (!step.use_uploaded_files) {
139
- const { upload_ids: _upload_ids, ...contextDataProps } = context;
140
- stepContext = { ...contextDataProps };
141
- }
142
- const stream = aiClient.streamLlmStepOfQuickCommand(slug, step.slug, {
143
- input_data: code,
144
- context: stepContext,
145
- qc_execution_id: executionId,
146
- slugs_executions: { ...resultMap, ...customInputs },
147
- });
148
- signal.addEventListener('abort', () => stream.cancel());
149
- let finalValue;
150
- try {
151
- finalValue = await stream.getValue();
152
- resultMap[step.slug] = finalValue;
153
- }
154
- catch (error) {
155
- // eslint-disable-next-line no-console
156
- console.error('Error executing QC step', error);
157
- }
158
- }
159
51
  function updateProgressMessageForStep(message, qc, stepIndex) {
160
52
  const t = translate(dictionary);
161
53
  message.setValue({
@@ -185,94 +77,14 @@ export function createQuickCommandInterceptor(widget, getEditor) {
185
77
  }, showImmediately ? 0 : progressMessageDelayMS);
186
78
  return controller;
187
79
  }
188
- async function getScriptStepStatus(scriptExecutionId, interval = 5000, maxAttempts = 500, currentAttempt = 0) {
189
- if (currentAttempt >= maxAttempts) {
190
- throw new Error('Max attempts reached in verify script status');
191
- }
192
- await aiClient.getStatusScriptStep.invalidate({ scriptExecutionId });
193
- const response = await aiClient.getStatusScriptStep.query({ scriptExecutionId });
194
- if (response.status === 'success') {
195
- return response;
196
- }
197
- if (response.status === 'failure') {
198
- throw response;
199
- }
200
- await new Promise(resolve => { setTimeout(resolve, interval); });
201
- return getScriptStepStatus(scriptExecutionId, interval, maxAttempts, currentAttempt + 1);
202
- }
203
- async function runScriptStep({ qc: { slug, steps }, code, context, resultMap, customInputs, signal }, stepIndex) {
204
- const step = steps[stepIndex];
205
- let stepContext = context;
206
- if (!step.use_uploaded_files) {
207
- const { upload_ids: _upload_ids, ...contextDataProps } = context;
208
- stepContext = { ...contextDataProps };
209
- }
210
- try {
211
- const { script_execution_id } = await aiClient.startScriptStep.mutate({
212
- stepSlug: step.slug,
213
- slug: slug,
214
- quickCommandStartScriptRequest: {
215
- input_data: code,
216
- custom_inputs: customInputs,
217
- context: stepContext,
218
- slugs_executions: resultMap,
219
- },
220
- }, signal);
221
- const scriptResult = await getScriptStepStatus(script_execution_id);
222
- resultMap[step.slug] = scriptResult;
223
- }
224
- catch (error) {
225
- throw new Error(`Failed to execute step "${step.slug}" of quick command "${slug}". Error ${error}.`);
226
- }
227
- }
228
- async function runStepsRecursively(currentIndex, progress, ctx, iteration) {
229
- const { qc } = ctx;
230
- if (!qc.steps || currentIndex >= qc.steps?.length)
231
- return;
232
- progress.update(currentIndex);
233
- if (qc.steps[currentIndex].type === 'ROUTER') {
234
- await runRouterStep(ctx, currentIndex, iteration, progress);
235
- return;
236
- }
237
- if (qc.steps[currentIndex].type === 'SCRIPT') {
238
- await runScriptStep(ctx, currentIndex);
239
- }
240
- else {
241
- await (qc.steps[currentIndex].type === 'FETCH' ? runFetchStep(ctx, currentIndex) : runLLMStep(ctx, currentIndex));
242
- }
243
- const currentStep = qc.steps?.[currentIndex];
244
- let nextIndex = currentIndex + 1;
245
- let nextStepSlug = currentStep.next_step_slug;
246
- const stepResult = ctx.resultMap[currentStep.slug];
247
- if (stepResult && typeof stepResult !== 'string' && 'answer_status' in stepResult && !!stepResult.answer_status?.next_step_slug) {
248
- nextStepSlug = stepResult.answer_status.next_step_slug;
249
- }
250
- if (nextStepSlug) {
251
- nextIndex = nextStepSlug === 'end' ?
252
- qc.steps.length : qc.steps?.findIndex((step) => step.slug === nextStepSlug);
253
- }
254
- await runStepsRecursively(nextIndex, progress, ctx, iteration);
255
- }
256
- async function runSteps(ctx) {
80
+ async function runQC(ctx) {
257
81
  const progress = showProgressMessage(ctx);
258
- try {
259
- await runStepsRecursively(0, progress, ctx, {});
260
- }
261
- finally {
262
- progress.remove();
263
- }
264
- }
265
- async function formatResult({ qc, code, executionId, context, resultMap, customInputs, signal }) {
266
- const formatted = await aiClient.formatResultOfQuickCommand.mutate({
267
- slug: qc.slug,
268
- quickCommandsExecutionRequest: {
269
- input_data: code,
270
- context,
271
- qc_execution_id: executionId,
272
- slugs_executions: { ...resultMap, ...customInputs },
273
- },
274
- }, signal);
275
- return formatted.result;
82
+ // await runStepsRecursively(0, progress, ctx, {}
83
+ const { qc, ...props } = ctx;
84
+ const context = { ...props, slug: qc.slug };
85
+ const finalResult = await aiClient.runQuickCommand(context, progress);
86
+ progress.remove();
87
+ return finalResult;
276
88
  }
277
89
  // opens a new chat tab if the quick command doesn't preserve the conversation and the current conversation isn't clean.
278
90
  function manageConversationContext(ctx) {
@@ -314,40 +126,8 @@ export function createQuickCommandInterceptor(widget, getEditor) {
314
126
  }
315
127
  manageConversationContext(ctx);
316
128
  await computeCustomInputs(ctx);
317
- await runSteps(ctx);
318
- return formatResult(ctx);
319
- }
320
- /**
321
- * This registers a quick command event in the backend (analytics).
322
- */
323
- async function registerAnalyticsEvent({ qc, isRemote, executionId, code = '', context }, status, start) {
324
- const now = new Date().getTime();
325
- try {
326
- await aiClient.createEvent.mutate({
327
- body: [{
328
- type: 'custom_quick_command_execution',
329
- quick_command_event: {
330
- type: qc.type || '',
331
- duration_execution: now - start,
332
- status_execution: status,
333
- slug: qc.slug,
334
- qc_execution_id: executionId,
335
- id: qc.id,
336
- //@ts-ignore
337
- is_remote: isRemote,
338
- },
339
- code,
340
- context,
341
- knowledge_sources: [],
342
- size: getSizeOfString(code),
343
- generated_at: now,
344
- }],
345
- });
346
- }
347
- catch (error) {
348
- // eslint-disable-next-line no-console
349
- console.warn('Failed to register event: quick command.');
350
- }
129
+ const result = await runQC(ctx);
130
+ return result;
351
131
  }
352
132
  /**
353
133
  * Writes the result in the chat or in the editor.
@@ -397,12 +177,10 @@ export function createQuickCommandInterceptor(widget, getEditor) {
397
177
  signal,
398
178
  };
399
179
  chat.set('isLoading', true);
400
- const start = new Date().getTime();
401
180
  try {
402
181
  const result = await runQuickCommand(ctx);
403
182
  if (result) {
404
183
  outputResult(ctx, result);
405
- registerAnalyticsEvent(ctx, '200', start);
406
184
  }
407
185
  }
408
186
  catch (error) {
@@ -418,7 +196,6 @@ export function createQuickCommandInterceptor(widget, getEditor) {
418
196
  agent: chat.get('agent'),
419
197
  type: 'text',
420
198
  }));
421
- registerAnalyticsEvent(ctx, message, start);
422
199
  }
423
200
  ctx.chat.set('isLoading', false);
424
201
  // 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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../../src/views/Editor.tsx"],"names":[],"mappings":"AAwCA;;GAEG;AACH,eAAO,MAAM,MAAM,YAmBlB,CAAA"}
1
+ {"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../../src/views/Editor.tsx"],"names":[],"mappings":"AAyCA;;GAEG;AACH,eAAO,MAAM,MAAM,YAmBlB,CAAA"}
@@ -19,6 +19,7 @@ const EditorBox = styled.div `
19
19
  --vscode-editor-background: transparent !important;
20
20
  --vscode-editorGutter-background: transparent !important;
21
21
  }
22
+
22
23
  `;
23
24
  const TitleBox = styled.div `
24
25
  position: relative;
@@ -57,7 +58,7 @@ const Title = () => {
57
58
  const languageValue = useCurrentChatState('codeLanguage') || defaultLanguage;
58
59
  const language = useMemo(() => languages.find(l => l.value === languageValue), [languageValue]);
59
60
  const chat = useCurrentChat();
60
- return (_jsxs(TitleBox, { children: [_jsx(Text, { appearance: "h5", children: "Editor" }), _jsx(Select, { options: languages, renderLabel: l => l?.label ?? defaultLanguage, renderKey: l => l?.value, value: language, onChange: l => chat.set('codeLanguage', l?.value ?? defaultLanguage), className: "language-selector", searchable: true })] }));
61
+ return (_jsxs(TitleBox, { children: [_jsx(Text, { appearance: "h5", tag: "h2", children: "Editor" }), _jsx(Select, { options: languages, renderLabel: l => l?.label ?? defaultLanguage, renderKey: l => l?.value, value: language, onChange: l => chat.set('codeLanguage', l?.value ?? defaultLanguage), className: "language-selector", searchable: true })] }));
61
62
  };
62
63
  const EditorPanel = () => {
63
64
  const themeKind = useThemeKind();
@@ -66,6 +67,19 @@ const EditorPanel = () => {
66
67
  const chat = useCurrentChat();
67
68
  const selectionObserver = useRef();
68
69
  const setup = useCallback(async (editor) => {
70
+ const container = editor.getContainerDomNode();
71
+ const el = container.querySelector('.native-edit-context');
72
+ if (el && el.hasAttribute('aria-label')) {
73
+ el.removeAttribute('aria-label');
74
+ }
75
+ const observer = new MutationObserver(() => {
76
+ const el = container.querySelector('.native-edit-context');
77
+ if (el && el.hasAttribute('aria-label')) {
78
+ el.removeAttribute('aria-label');
79
+ }
80
+ });
81
+ observer.observe(container, { subtree: true, attributes: true, childList: true });
82
+ editor.onDidDispose(() => observer.disconnect());
69
83
  selectionObserver.current = editor.onDidChangeCursorSelection(debounce((e) => {
70
84
  const selectedText = editor.getModel()?.getValueInRange(e.selection);
71
85
  chat.set('codeSelection', selectedText?.trim() ? selectedText : undefined);
@@ -83,7 +97,7 @@ const EditorPanel = () => {
83
97
  selectionObserver.current?.dispose();
84
98
  };
85
99
  }, []);
86
- return (_jsx(EditorBox, { children: _jsx(MonacoEditor, { height: "100%", language: language, theme: themeKind === 'dark' ? 'vs-dark' : 'light', options: { minimap: { enabled: false } }, value: value, onChange: v => chat.set('code', v), loading: _jsx(ProgressCircular, {}), onMount: setup }) }));
100
+ return (_jsx(EditorBox, { children: _jsx(MonacoEditor, { height: "100%", language: language, theme: themeKind === 'dark' ? 'vs-dark' : 'light', options: { minimap: { enabled: false }, accessibilitySupport: 'off' }, value: value, onChange: v => chat.set('code', v), loading: _jsx(ProgressCircular, {}), onMount: setup }) }));
87
101
  };
88
102
  const dictionary = {
89
103
  en: {
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.js","sourceRoot":"","sources":["../../src/views/Editor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Editor.js","sourceRoot":"","sources":["../../src/views/Editor.tsx"],"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" | "answer" | "running" | "tools" | "planning" | "unknown" | "stepsPanelDescription" | "response" | "executionTime" | "nextAttempt" | "previousAttempt" | "finalAnswer" | "userPrompt", string>;
41
+ export declare function useStepsDictionary(): Record<"pending" | "input" | "step" | "steps" | "tools" | "answer" | "planning" | "running" | "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": "1.0.0-dev.1769120820021",
3
+ "version": "1.0.0-dev.1769537635610",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.0.0-dev.1769120820021",
4
- "date": "Thu Jan 22 2026 22:27:05 GMT+0000 (Coordinated Universal Time)",
3
+ "version": "1.0.0-dev.1769537635610",
4
+ "date": "Tue Jan 27 2026 18:14:01 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": "1.0.0-dev.1769117840606(@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)"
128
+ "version": "1.0.0-dev.1769537511491(@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, FixedChatRequest, StackspotAPIError } from '@stack-spot/portal-network'
2
- import { QuickCommandStepResult, QuickCommandPromptResponse2, QuickCommandResponse, QuickCommandScriptExecutionResponse, QuickCommandStepFetchResponse, QuickCommandStepLlmResponse } from '@stack-spot/portal-network/api/ai'
1
+ import { aiClient, CancelledError, FixedChatRequest, 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'
@@ -11,7 +10,6 @@ import { ChatState } from '../state/ChatState'
11
10
  import { LabeledWithImage } from '../state/types'
12
11
  import { WidgetState } from '../state/WidgetState'
13
12
  import { buildConversationContext } from '../utils/chat'
14
- import { getSizeOfString } from '../utils/string'
15
13
  import { CustomInputs } from './CustomInputs'
16
14
 
17
15
  type SlugExecution = Record<string, QuickCommandStepResult>
@@ -73,132 +71,6 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
73
71
  )
74
72
  }
75
73
 
76
- /**
77
- * Runs an Router step of a quick command.
78
- */
79
- async function runRouterStep(
80
- ctx: QCContext,
81
- stepIndex: number, iteration: Record<string, number>,
82
- progress: { update: (index: number) => void, remove: () => void },
83
- ) {
84
- const { qc: { slug, steps }, code, resultMap, customInputs } = ctx
85
- const step = steps![stepIndex]
86
- const inputData = Object.keys(customInputs).length > 0 && code ? { ...customInputs, [code]: code } : code ?? customInputs
87
- try {
88
- if (step.slug in iteration) {
89
- iteration[step.slug] = iteration[step.slug] + 1
90
- } else {
91
- iteration[step.slug] = 1
92
- }
93
-
94
- const { next_step_slug } = await aiClient.calculateNextStep.mutate({
95
- stepSlug: step.slug,
96
- slug: slug,
97
- quickCommandEvaluateStepRouterRequest: {
98
- executions_count: iteration[step.slug],
99
- input_data: inputData,
100
- slugs_executions: resultMap,
101
- },
102
- })
103
-
104
- if (next_step_slug === step.slug) {
105
- return runStepsRecursively(stepIndex, progress, ctx, iteration)
106
- }
107
- const nextStepIndex = steps?.findIndex((step) => step.slug === next_step_slug)
108
-
109
- if (isNil(nextStepIndex) || nextStepIndex === -1) return
110
-
111
- return runStepsRecursively(nextStepIndex, progress, ctx, iteration)
112
- }
113
- catch (error: any) {
114
- // eslint-disable-next-line no-console
115
- console.error('Error executing QC step', error)
116
- }
117
- }
118
-
119
- /**
120
- * Runs a fetch step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
121
- */
122
- async function runFetchStep(ctx: QCContext, stepIndex: number) {
123
- const { qc: { slug, steps }, code, context, resultMap, customInputs, executionId, signal } = ctx
124
- const step = steps![stepIndex] as QuickCommandStepFetchResponse
125
- if (step.is_remote) {
126
- ctx.isRemote = true
127
-
128
- const { data } = await aiClient.fetchStepOfQuickCommandRemotely.mutate({
129
- slug, stepSlug: step.slug,
130
- quickCommandsExecutionRequest: {
131
- code_selection: code, context, qc_execution_id: executionId,
132
- slugs_executions: { ...resultMap, ...customInputs },
133
- },
134
- })
135
-
136
- //data is the return of the request in the QC so we do not have full control over the response
137
- //We handle the usual format with body, status_code and headers, but we might also handle other formats
138
- const responseData = data as any
139
- resultMap[step.slug] = {
140
- status: responseData.status_code || 200,
141
- data: JSON.stringify(responseData.body) ?? JSON.stringify(responseData),
142
- headers: responseData.headers ?? {},
143
- }
144
- return
145
- }
146
-
147
- const { headers, data, method, url } = await aiClient.fetchStepOfQuickCommand.mutate({
148
- slug,
149
- stepSlug: step.slug,
150
- quickCommandsExecutionRequest: {
151
- input_data: code, context, qc_execution_id: executionId,
152
- slugs_executions: { ...resultMap, ...customInputs },
153
- },
154
- }, signal)
155
- const body = ['get', 'head'].includes(method.toLowerCase()) ? undefined : data
156
- const response = await fetch(url, { headers: headers || undefined, body, method, signal })
157
- if (!response.ok) throw new Error(`Failed to execute step "${step.slug}" of quick command "${slug}". Status ${response.status}.`)
158
- resultMap[step.slug] = {
159
- status: response.status,
160
- data: await response.text(),
161
- headers: Object.fromEntries(response.headers.entries()),
162
- }
163
- }
164
-
165
- /**
166
- * Runs an LLM step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
167
- */
168
- async function runLLMStep(
169
- { qc: { slug, steps }, code, customInputs, context, executionId, resultMap, signal }: QCContext,
170
- stepIndex: number,
171
- ) {
172
- const step = steps![stepIndex] as QuickCommandStepLlmResponse
173
- let stepContext = context
174
- if (!step.use_uploaded_files) {
175
- const { upload_ids: _upload_ids, ...contextDataProps } = context
176
- stepContext = { ...contextDataProps }
177
- }
178
-
179
- const stream = aiClient.streamLlmStepOfQuickCommand(
180
- slug,
181
- step.slug,
182
- {
183
- input_data: code,
184
- context: stepContext,
185
- qc_execution_id: executionId,
186
- slugs_executions: { ...resultMap, ...customInputs },
187
- },
188
- )
189
-
190
- signal.addEventListener('abort', () => stream.cancel())
191
-
192
- let finalValue: QuickCommandPromptResponse2
193
- try {
194
- finalValue = await stream.getValue()
195
- resultMap[step.slug] = finalValue
196
- } catch (error: any) {
197
- // eslint-disable-next-line no-console
198
- console.error('Error executing QC step', error)
199
- }
200
- }
201
-
202
74
  function updateProgressMessageForStep(message: ChatEntry, qc: QuickCommandResponse, stepIndex: number) {
203
75
  const t = translate(dictionary)
204
76
  message.setValue({
@@ -230,115 +102,17 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
230
102
  }, showImmediately ? 0 : progressMessageDelayMS)
231
103
  return controller
232
104
  }
233
- async function getScriptStepStatus(
234
- scriptExecutionId: string,
235
- interval = 5000,
236
- maxAttempts = 500,
237
- currentAttempt = 0,
238
- ): Promise<QuickCommandScriptExecutionResponse> {
239
- if (currentAttempt >= maxAttempts) {
240
- throw new Error('Max attempts reached in verify script status')
241
- }
242
- await aiClient.getStatusScriptStep.invalidate({ scriptExecutionId })
243
- const response = await aiClient.getStatusScriptStep.query({ scriptExecutionId })
244
-
245
- if (response.status === 'success') {
246
- return response
247
- }
248
105
 
249
- if (response.status === 'failure') {
250
- throw response
251
- }
252
-
253
- await new Promise(resolve => {setTimeout(resolve, interval)})
254
-
255
- return getScriptStepStatus(scriptExecutionId, interval, maxAttempts, currentAttempt + 1)
256
- }
257
-
258
- async function runScriptStep(
259
- { qc: { slug, steps }, code, context, resultMap, customInputs, signal }: QCContext,
260
- stepIndex: number,
261
- ) {
262
- const step = steps![stepIndex] as QuickCommandStepLlmResponse
263
- let stepContext = context
264
- if (!step.use_uploaded_files) {
265
- const { upload_ids: _upload_ids, ...contextDataProps } = context
266
- stepContext = { ...contextDataProps }
267
- }
268
-
269
- try {
270
- const { script_execution_id } = await aiClient.startScriptStep.mutate({
271
- stepSlug: step.slug,
272
- slug: slug,
273
- quickCommandStartScriptRequest: {
274
- input_data: code,
275
- custom_inputs: customInputs,
276
- context: stepContext,
277
- slugs_executions: resultMap,
278
- },
279
- }, signal)
280
- const scriptResult = await getScriptStepStatus(script_execution_id)
281
- resultMap[step.slug] = scriptResult
282
- }
283
- catch (error: any) {
284
- throw new Error(`Failed to execute step "${step.slug}" of quick command "${slug}". Error ${error}.`)
285
- }
286
- }
287
-
288
- async function runStepsRecursively(currentIndex: number, progress: { update: (index: number) => void, remove: () => void },
289
- ctx: QCContext, iteration: Record<string, number>) {
290
- const { qc } = ctx
291
-
292
- if (!qc.steps || currentIndex >= qc.steps?.length) return
293
- progress.update(currentIndex)
294
-
295
- if (qc.steps[currentIndex].type === 'ROUTER') {
296
- await runRouterStep(ctx, currentIndex, iteration, progress)
297
- return
298
- }
299
-
300
- if (qc.steps[currentIndex].type === 'SCRIPT') {
301
- await runScriptStep(ctx, currentIndex)
302
- } else {
303
- await (qc.steps[currentIndex].type === 'FETCH' ? runFetchStep(ctx, currentIndex) : runLLMStep(ctx, currentIndex))
304
- }
305
-
306
- const currentStep = qc.steps?.[currentIndex] as QuickCommandStepFetchResponse | QuickCommandStepLlmResponse
307
- let nextIndex = currentIndex + 1
308
-
309
- let nextStepSlug = currentStep.next_step_slug
310
- const stepResult = ctx.resultMap[currentStep.slug]
311
- if (stepResult && typeof stepResult !== 'string' && 'answer_status' in stepResult && !!stepResult.answer_status?.next_step_slug) {
312
- nextStepSlug = stepResult.answer_status.next_step_slug
313
- }
314
-
315
- if (nextStepSlug) {
316
- nextIndex = nextStepSlug === 'end' ?
317
- qc.steps.length : qc.steps?.findIndex((step) => step.slug === nextStepSlug)
318
- }
319
- await runStepsRecursively(nextIndex, progress, ctx, iteration)
320
- }
321
-
322
- async function runSteps(ctx: QCContext) {
106
+ async function runQC(ctx: QCContext) {
323
107
  const progress = showProgressMessage(ctx)
324
- try {
325
- await runStepsRecursively(0, progress, ctx, {})
326
- } finally {
327
- progress.remove()
328
- }
329
- }
330
108
 
331
- async function formatResult({ qc, code, executionId, context, resultMap, customInputs, signal }: QCContext) {
332
- const formatted = await aiClient.formatResultOfQuickCommand.mutate({
333
- slug: qc.slug,
334
- quickCommandsExecutionRequest: {
335
- input_data: code,
336
- context,
337
- qc_execution_id: executionId,
338
- slugs_executions: { ...resultMap, ...customInputs },
339
- },
340
- }, signal)
341
- return formatted.result
109
+ // await runStepsRecursively(0, progress, ctx, {}
110
+ const { qc, ...props } = ctx
111
+ const context: QCContextLib = { ...props, slug: qc.slug }
112
+ const finalResult = await aiClient.runQuickCommand(context, progress)
113
+
114
+ progress.remove()
115
+ return finalResult
342
116
  }
343
117
 
344
118
  // opens a new chat tab if the quick command doesn't preserve the conversation and the current conversation isn't clean.
@@ -368,7 +142,7 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
368
142
  } catch (error) {
369
143
  throw error instanceof StackspotAPIError && error.status === 404 ? new Error(t.notFound) : error
370
144
  }
371
-
145
+
372
146
  if (ctx.qc.use_selected_code && (!code && ctx.context.upload_ids?.length === 0)) {
373
147
  widget.set('panel', 'editor')
374
148
  ctx.chat.pushMessage(new ChatEntry({
@@ -377,44 +151,12 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
377
151
  agent: ctx.chat.get('agent'),
378
152
  content: t.requiresSelection,
379
153
  }))
380
- return
154
+ return
381
155
  }
382
156
  manageConversationContext(ctx)
383
157
  await computeCustomInputs(ctx)
384
- await runSteps(ctx)
385
- return formatResult(ctx)
386
- }
387
-
388
- /**
389
- * This registers a quick command event in the backend (analytics).
390
- */
391
- async function registerAnalyticsEvent({ qc, isRemote, executionId, code = '', context }: QCContext, status: string, start: number) {
392
- const now = new Date().getTime()
393
- try {
394
- await aiClient.createEvent.mutate({
395
- body: [{
396
- type: 'custom_quick_command_execution',
397
- quick_command_event: {
398
- type: qc.type || '',
399
- duration_execution: now - start,
400
- status_execution: status,
401
- slug: qc.slug,
402
- qc_execution_id: executionId,
403
- id: qc.id,
404
- //@ts-ignore
405
- is_remote: isRemote,
406
- },
407
- code,
408
- context,
409
- knowledge_sources: [],
410
- size: getSizeOfString(code),
411
- generated_at: now,
412
- }],
413
- })
414
- } catch (error) {
415
- // eslint-disable-next-line no-console
416
- console.warn('Failed to register event: quick command.')
417
- }
158
+ const result = await runQC(ctx)
159
+ return result
418
160
  }
419
161
 
420
162
  /**
@@ -462,12 +204,10 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
462
204
  signal,
463
205
  }
464
206
  chat.set('isLoading', true)
465
- const start = new Date().getTime()
466
207
  try {
467
208
  const result = await runQuickCommand(ctx)
468
209
  if (result) {
469
210
  outputResult(ctx, result)
470
- registerAnalyticsEvent(ctx, '200', start)
471
211
  }
472
212
  } catch (error: any) {
473
213
  let message = error.message || `${error}`
@@ -480,7 +220,6 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
480
220
  agent: chat.get('agent'),
481
221
  type: 'text',
482
222
  }))
483
- registerAnalyticsEvent(ctx, message, start)
484
223
  }
485
224
  ctx.chat.set('isLoading', false)
486
225
  // prevents the next interceptors from running
@@ -21,6 +21,7 @@ const EditorBox = styled.div`
21
21
  --vscode-editor-background: transparent !important;
22
22
  --vscode-editorGutter-background: transparent !important;
23
23
  }
24
+
24
25
  `
25
26
 
26
27
  const TitleBox = styled.div`
@@ -69,7 +70,7 @@ const Title = () => {
69
70
 
70
71
  return (
71
72
  <TitleBox>
72
- <Text appearance="h5">Editor</Text>
73
+ <Text appearance="h5" tag="h2" >Editor</Text>
73
74
  <Select
74
75
  options={languages}
75
76
  renderLabel={l => l?.label ?? defaultLanguage}
@@ -91,6 +92,22 @@ const EditorPanel = () => {
91
92
  const selectionObserver = useRef<IDisposable | undefined>()
92
93
 
93
94
  const setup: OnMount = useCallback(async (editor) => {
95
+ const container = editor.getContainerDomNode()
96
+ const el = container.querySelector('.native-edit-context')
97
+ if (el && el.hasAttribute('aria-label')) {
98
+ el.removeAttribute('aria-label')
99
+ }
100
+
101
+ const observer = new MutationObserver(() => {
102
+ const el = container.querySelector('.native-edit-context')
103
+ if (el && el.hasAttribute('aria-label')) {
104
+ el.removeAttribute('aria-label')
105
+ }
106
+ })
107
+ observer.observe(container, { subtree: true, attributes: true, childList: true })
108
+
109
+ editor.onDidDispose(() => observer.disconnect())
110
+
94
111
  selectionObserver.current = editor.onDidChangeCursorSelection(debounce((e) => {
95
112
  const selectedText = editor.getModel()?.getValueInRange(e.selection)
96
113
  chat.set('codeSelection', selectedText?.trim() ? selectedText : undefined)
@@ -110,14 +127,14 @@ const EditorPanel = () => {
110
127
  selectionObserver.current?.dispose()
111
128
  }
112
129
  }, [])
113
-
130
+
114
131
  return (
115
132
  <EditorBox>
116
133
  <MonacoEditor
117
134
  height="100%"
118
135
  language={language}
119
136
  theme={themeKind === 'dark' ? 'vs-dark' : 'light'}
120
- options={{ minimap: { enabled: false } }}
137
+ options={{ minimap: { enabled: false }, accessibilitySupport: 'off' }}
121
138
  value={value}
122
139
  onChange={v => chat.set('code', v)}
123
140
  loading={<ProgressCircular />}