donobu 2.49.1 → 2.51.0

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.
Files changed (97) hide show
  1. package/dist/apis/FlowsFilesApi.d.ts +1 -0
  2. package/dist/apis/FlowsFilesApi.d.ts.map +1 -1
  3. package/dist/apis/FlowsFilesApi.js +22 -0
  4. package/dist/apis/FlowsFilesApi.js.map +1 -1
  5. package/dist/assets/generated/version +1 -1
  6. package/dist/cli/donobu-cli.js +0 -0
  7. package/dist/cli/install-donobu-plugin.js +0 -0
  8. package/dist/cli/playwright-json-to-markdown.js +0 -0
  9. package/dist/cli/playwright-json-to-slack-json.js +0 -0
  10. package/dist/clients/AnthropicGptClient.d.ts.map +1 -1
  11. package/dist/clients/AnthropicGptClient.js +2 -1
  12. package/dist/clients/AnthropicGptClient.js.map +1 -1
  13. package/dist/clients/DonobuGptClient.d.ts.map +1 -1
  14. package/dist/clients/DonobuGptClient.js +2 -3
  15. package/dist/clients/DonobuGptClient.js.map +1 -1
  16. package/dist/clients/GptClient.d.ts +1 -0
  17. package/dist/clients/GptClient.d.ts.map +1 -1
  18. package/dist/clients/GptClient.js +15 -0
  19. package/dist/clients/GptClient.js.map +1 -1
  20. package/dist/clients/OpenAiGptClient.d.ts.map +1 -1
  21. package/dist/clients/OpenAiGptClient.js +1 -1
  22. package/dist/clients/OpenAiGptClient.js.map +1 -1
  23. package/dist/esm/apis/FlowsFilesApi.d.ts +1 -0
  24. package/dist/esm/apis/FlowsFilesApi.d.ts.map +1 -1
  25. package/dist/esm/apis/FlowsFilesApi.js +22 -0
  26. package/dist/esm/apis/FlowsFilesApi.js.map +1 -1
  27. package/dist/esm/assets/generated/version +1 -1
  28. package/dist/esm/clients/AnthropicGptClient.d.ts.map +1 -1
  29. package/dist/esm/clients/AnthropicGptClient.js +2 -1
  30. package/dist/esm/clients/AnthropicGptClient.js.map +1 -1
  31. package/dist/esm/clients/DonobuGptClient.d.ts.map +1 -1
  32. package/dist/esm/clients/DonobuGptClient.js +2 -3
  33. package/dist/esm/clients/DonobuGptClient.js.map +1 -1
  34. package/dist/esm/clients/GptClient.d.ts +1 -0
  35. package/dist/esm/clients/GptClient.d.ts.map +1 -1
  36. package/dist/esm/clients/GptClient.js +15 -0
  37. package/dist/esm/clients/GptClient.js.map +1 -1
  38. package/dist/esm/clients/OpenAiGptClient.d.ts.map +1 -1
  39. package/dist/esm/clients/OpenAiGptClient.js +1 -1
  40. package/dist/esm/clients/OpenAiGptClient.js.map +1 -1
  41. package/dist/esm/lib/DonobuExtendedPage.d.ts +1 -1
  42. package/dist/esm/lib/DonobuExtendedPage.d.ts.map +1 -1
  43. package/dist/esm/lib/PageAi.d.ts +4 -6
  44. package/dist/esm/lib/PageAi.d.ts.map +1 -1
  45. package/dist/esm/lib/PageAi.js +11 -9
  46. package/dist/esm/lib/PageAi.js.map +1 -1
  47. package/dist/esm/lib/createDonobuExtendedPage.d.ts +10 -0
  48. package/dist/esm/lib/createDonobuExtendedPage.d.ts.map +1 -0
  49. package/dist/esm/lib/createDonobuExtendedPage.js +377 -0
  50. package/dist/esm/lib/createDonobuExtendedPage.js.map +1 -0
  51. package/dist/esm/lib/pageAi/cache.d.ts +13 -10
  52. package/dist/esm/lib/pageAi/cache.d.ts.map +1 -1
  53. package/dist/esm/lib/pageAi/cache.js +67 -30
  54. package/dist/esm/lib/pageAi/cache.js.map +1 -1
  55. package/dist/esm/lib/testExtension.d.ts.map +1 -1
  56. package/dist/esm/lib/testExtension.js +69 -436
  57. package/dist/esm/lib/testExtension.js.map +1 -1
  58. package/dist/esm/main.d.ts +1 -0
  59. package/dist/esm/main.d.ts.map +1 -1
  60. package/dist/esm/main.js +1 -0
  61. package/dist/esm/main.js.map +1 -1
  62. package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
  63. package/dist/esm/managers/AdminApiController.js +1 -0
  64. package/dist/esm/managers/AdminApiController.js.map +1 -1
  65. package/dist/esm/utils/MiscUtils.d.ts +5 -0
  66. package/dist/esm/utils/MiscUtils.d.ts.map +1 -1
  67. package/dist/esm/utils/MiscUtils.js +16 -0
  68. package/dist/esm/utils/MiscUtils.js.map +1 -1
  69. package/dist/lib/DonobuExtendedPage.d.ts +1 -1
  70. package/dist/lib/DonobuExtendedPage.d.ts.map +1 -1
  71. package/dist/lib/PageAi.d.ts +4 -6
  72. package/dist/lib/PageAi.d.ts.map +1 -1
  73. package/dist/lib/PageAi.js +11 -9
  74. package/dist/lib/PageAi.js.map +1 -1
  75. package/dist/lib/createDonobuExtendedPage.d.ts +10 -0
  76. package/dist/lib/createDonobuExtendedPage.d.ts.map +1 -0
  77. package/dist/lib/createDonobuExtendedPage.js +377 -0
  78. package/dist/lib/createDonobuExtendedPage.js.map +1 -0
  79. package/dist/lib/pageAi/cache.d.ts +13 -10
  80. package/dist/lib/pageAi/cache.d.ts.map +1 -1
  81. package/dist/lib/pageAi/cache.js +67 -30
  82. package/dist/lib/pageAi/cache.js.map +1 -1
  83. package/dist/lib/testExtension.d.ts.map +1 -1
  84. package/dist/lib/testExtension.js +69 -436
  85. package/dist/lib/testExtension.js.map +1 -1
  86. package/dist/main.d.ts +1 -0
  87. package/dist/main.d.ts.map +1 -1
  88. package/dist/main.js +1 -0
  89. package/dist/main.js.map +1 -1
  90. package/dist/managers/AdminApiController.d.ts.map +1 -1
  91. package/dist/managers/AdminApiController.js +1 -0
  92. package/dist/managers/AdminApiController.js.map +1 -1
  93. package/dist/utils/MiscUtils.d.ts +5 -0
  94. package/dist/utils/MiscUtils.d.ts.map +1 -1
  95. package/dist/utils/MiscUtils.js +16 -0
  96. package/dist/utils/MiscUtils.js.map +1 -1
  97. package/package.json +4 -1
@@ -0,0 +1,377 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extendPage = extendPage;
4
+ const uuid_1 = require("uuid");
5
+ const GptClient_1 = require("../clients/GptClient");
6
+ const PlaywrightUtils_1 = require("../utils/PlaywrightUtils");
7
+ const donobuTestStack_1 = require("./utils/donobuTestStack");
8
+ const BrowserUtils_1 = require("../utils/BrowserUtils");
9
+ const envVars_1 = require("../envVars");
10
+ const gptClients_1 = require("./fixtures/gptClients");
11
+ const GptApiKeysNotSetupException_1 = require("../exceptions/GptApiKeysNotSetupException");
12
+ const Logger_1 = require("../utils/Logger");
13
+ const AssertTool_1 = require("../tools/AssertTool");
14
+ const ScrollPageTool_1 = require("../tools/ScrollPageTool");
15
+ const v4_1 = require("zod/v4");
16
+ const MiscUtils_1 = require("../utils/MiscUtils");
17
+ const originalGotoRegistry_1 = require("./originalGotoRegistry");
18
+ const VercelAiGptClient_1 = require("../clients/VercelAiGptClient");
19
+ const PageAi_1 = require("./PageAi");
20
+ const SmartSelector_1 = require("./SmartSelector");
21
+ const GoToWebpageTool_1 = require("../tools/GoToWebpageTool");
22
+ const PageInspector_1 = require("../managers/PageInspector");
23
+ const ControlPanel_1 = require("../models/ControlPanel");
24
+ const InteractionVisualizer_1 = require("../managers/InteractionVisualizer");
25
+ const ToolManager_1 = require("../managers/ToolManager");
26
+ const AnalyzePageTextTool_1 = require("../tools/AnalyzePageTextTool");
27
+ const AssertPageTextTool_1 = require("../tools/AssertPageTextTool");
28
+ const ChangeWebBrowserTabTool_1 = require("../tools/ChangeWebBrowserTabTool");
29
+ const ChooseSelectOptionTool_1 = require("../tools/ChooseSelectOptionTool");
30
+ const ClickTool_1 = require("../tools/ClickTool");
31
+ const CreateBrowserCookieReportTool_1 = require("../tools/CreateBrowserCookieReportTool");
32
+ const DonobuFlow_1 = require("../managers/DonobuFlow");
33
+ const HoverOverElementTool_1 = require("../tools/HoverOverElementTool");
34
+ const InputRandomizedEmailAddressTool_1 = require("../tools/InputRandomizedEmailAddressTool");
35
+ const InputTextTool_1 = require("../tools/InputTextTool");
36
+ const PressKeyTool_1 = require("../tools/PressKeyTool");
37
+ const RunAccessibilityTestTool_1 = require("../tools/RunAccessibilityTestTool");
38
+ const PLACEHOLDER_FLOW_URL = 'https://example.com';
39
+ async function extendPage(page, options) {
40
+ await PlaywrightUtils_1.PlaywrightUtils.setupBasicBrowserContext(page.context());
41
+ const donobuStack = await (0, donobuTestStack_1.getOrCreateDonobuStack)();
42
+ const persistence = await donobuStack.flowsPersistenceFactory.createPersistenceLayer();
43
+ const initialBrowserState = await BrowserUtils_1.BrowserUtils.getBrowserStorageState(page.context());
44
+ const resolvedGptClient = await buttonUpGptClient(options?.gptClient);
45
+ const extend = createDonobuPageExtender({
46
+ donobuFlowMetadata: {
47
+ id: (0, uuid_1.v4)(),
48
+ name: null,
49
+ createdWithDonobuVersion: MiscUtils_1.MiscUtils.DONOBU_VERSION,
50
+ browser: {
51
+ persistState: true,
52
+ using: {
53
+ type: 'device',
54
+ deviceName: 'Desktop Chromium',
55
+ headless: options?.headless,
56
+ },
57
+ },
58
+ envVars: options?.envVars ?? null,
59
+ gptConfigName: null,
60
+ hasGptConfigNameOverride: false,
61
+ customTools: null,
62
+ defaultMessageDuration: 0,
63
+ runMode: 'DETERMINISTIC',
64
+ isControlPanelEnabled: false,
65
+ callbackUrl: null,
66
+ targetWebsite: PLACEHOLDER_FLOW_URL,
67
+ overallObjective: null,
68
+ allowedTools: [],
69
+ resultJsonSchema: null,
70
+ result: null,
71
+ inputTokensUsed: 0,
72
+ completionTokensUsed: 0,
73
+ maxToolCalls: null,
74
+ startedAt: new Date().getTime(),
75
+ completedAt: null,
76
+ state: 'RUNNING_ACTION',
77
+ nextState: null,
78
+ },
79
+ donobuStack: donobuStack,
80
+ pageAi: undefined,
81
+ persistence: persistence,
82
+ initialBrowserState: initialBrowserState,
83
+ gptClient: resolvedGptClient,
84
+ runtimeDirectives: {
85
+ clearPageAiCache: MiscUtils_1.MiscUtils.yn(envVars_1.env.data.DONOBU_PAGE_AI_CLEAR_CACHE),
86
+ },
87
+ }, options?.cacheFilepath);
88
+ const extendedPage = extend(page);
89
+ return extendedPage;
90
+ }
91
+ function createDonobuPageExtender(sharedState, cacheFilepath) {
92
+ const extend = (target) => {
93
+ if (!(0, originalGotoRegistry_1.hasOriginalGoto)(target)) {
94
+ (0, originalGotoRegistry_1.registerOriginalGoto)(target, target.goto);
95
+ }
96
+ const extended = target;
97
+ extended._dnb = sharedState;
98
+ attachDonobuMethods(extended, sharedState, extend, cacheFilepath);
99
+ return extended;
100
+ };
101
+ return extend;
102
+ }
103
+ function attachDonobuMethods(page, sharedState, extend, cacheFilepath) {
104
+ page.ai = async (instruction, options, gptClientOverride) => {
105
+ let finalGptClient = null;
106
+ if (gptClientOverride) {
107
+ if (!(gptClientOverride instanceof GptClient_1.GptClient)) {
108
+ finalGptClient = new VercelAiGptClient_1.VercelAiGptClient(gptClientOverride);
109
+ }
110
+ else {
111
+ finalGptClient = gptClientOverride;
112
+ }
113
+ }
114
+ else if (sharedState.gptClient) {
115
+ finalGptClient = sharedState.gptClient;
116
+ }
117
+ if (!finalGptClient) {
118
+ throw new Error(`No AI connection available. Establish a connection by setting an API key via an environment variable.
119
+ Valid options:
120
+ - ${envVars_1.env.keys.ANTHROPIC_API_KEY}
121
+ - ${envVars_1.env.keys.GOOGLE_GENERATIVE_AI_API_KEY}
122
+ - ${envVars_1.env.keys.OPENAI_API_KEY}`);
123
+ }
124
+ if (!sharedState.pageAi) {
125
+ sharedState.pageAi = cacheFilepath
126
+ ? PageAi_1.PageAi.withFileCache(sharedState.donobuStack, finalGptClient, cacheFilepath)
127
+ : PageAi_1.PageAi.withInMemoryCache(sharedState.donobuStack, finalGptClient);
128
+ }
129
+ const clearAiCacheForRun = sharedState.runtimeDirectives?.clearPageAiCache ?? false;
130
+ const revisedOptions = {
131
+ envVars: sharedState.donobuFlowMetadata.envVars ?? [],
132
+ ...(options ? options : {}),
133
+ };
134
+ if (clearAiCacheForRun) {
135
+ await sharedState.pageAi.invalidate(page, instruction, revisedOptions);
136
+ Logger_1.appLogger.debug(`Page.AI cache invalidated for this run via ${envVars_1.env.keys.DONOBU_PAGE_AI_CLEAR_CACHE}`);
137
+ }
138
+ return sharedState.pageAi.ai(page, instruction, revisedOptions);
139
+ };
140
+ page.find = (selector, options) => {
141
+ return new SmartSelector_1.SmartSelectorImpl(page, {
142
+ element: [selector, ...(options?.failover ?? [])],
143
+ frame: options?.frame,
144
+ });
145
+ };
146
+ page.goto = async (url, options) => {
147
+ const startedAt = new Date().getTime();
148
+ const flowId = sharedState.donobuFlowMetadata.id;
149
+ if (sharedState.donobuFlowMetadata.targetWebsite === PLACEHOLDER_FLOW_URL) {
150
+ sharedState.donobuFlowMetadata = {
151
+ ...sharedState.donobuFlowMetadata,
152
+ targetWebsite: url,
153
+ };
154
+ await sharedState.persistence.setFlowMetadata(sharedState.donobuFlowMetadata);
155
+ }
156
+ try {
157
+ const originalGoto = (0, originalGotoRegistry_1.getOriginalGoto)(page);
158
+ const resp = await originalGoto.call(page, url, options);
159
+ const pageTitle = await page.title();
160
+ const postCallImage = await PlaywrightUtils_1.PlaywrightUtils.takeViewportScreenshot(page);
161
+ const postCallImageId = await sharedState.persistence.saveScreenShot(flowId, postCallImage);
162
+ const completedAt = new Date().getTime();
163
+ await sharedState.persistence.saveToolCall(flowId, {
164
+ id: MiscUtils_1.MiscUtils.createAdHocToolCallId(),
165
+ toolName: GoToWebpageTool_1.GoToWebpageTool.NAME,
166
+ parameters: {
167
+ url: url,
168
+ },
169
+ outcome: {
170
+ isSuccessful: true,
171
+ forLlm: `Successfully navigated to ${url}`,
172
+ metadata: {
173
+ pageTitle: pageTitle,
174
+ resolvedUrl: page.url(),
175
+ },
176
+ },
177
+ postCallImageId: postCallImageId,
178
+ page: url,
179
+ startedAt: startedAt,
180
+ completedAt: completedAt,
181
+ });
182
+ return resp;
183
+ }
184
+ catch (error) {
185
+ const postCallImage = await PlaywrightUtils_1.PlaywrightUtils.takeViewportScreenshot(page);
186
+ const postCallImageId = await sharedState.persistence.saveScreenShot(flowId, postCallImage);
187
+ const completedAt = new Date().getTime();
188
+ await sharedState.persistence.saveToolCall(flowId, {
189
+ id: MiscUtils_1.MiscUtils.createAdHocToolCallId(),
190
+ toolName: GoToWebpageTool_1.GoToWebpageTool.NAME,
191
+ parameters: {
192
+ url: url,
193
+ },
194
+ outcome: {
195
+ isSuccessful: false,
196
+ forLlm: `FAILED! ${typeof error}: ${error.message}`,
197
+ metadata: null,
198
+ },
199
+ postCallImageId: postCallImageId,
200
+ page: url,
201
+ startedAt: startedAt,
202
+ completedAt: completedAt,
203
+ });
204
+ throw error;
205
+ }
206
+ };
207
+ page.run = async (toolName, toolParams, gptClientOverride) => {
208
+ let finalGptClient = null;
209
+ if (gptClientOverride) {
210
+ if (!(gptClientOverride instanceof GptClient_1.GptClient)) {
211
+ finalGptClient = new VercelAiGptClient_1.VercelAiGptClient(gptClientOverride);
212
+ }
213
+ else {
214
+ finalGptClient = gptClientOverride;
215
+ }
216
+ }
217
+ else if (sharedState.gptClient) {
218
+ finalGptClient = sharedState.gptClient;
219
+ }
220
+ const pageInspector = new PageInspector_1.PageInspector();
221
+ const controlPanel = new ControlPanel_1.NoOpControlPanel();
222
+ const clonedParams = toolParams
223
+ ? JSON.parse(JSON.stringify(toolParams))
224
+ : {};
225
+ clonedParams.rationale || (clonedParams.rationale = '');
226
+ const envData = await sharedState.donobuStack.flowsManager.buildEnvData(sharedState.donobuFlowMetadata.envVars ?? []);
227
+ const toolCallContext = {
228
+ flowsManager: sharedState.donobuStack.flowsManager,
229
+ envData: envData,
230
+ pageInspector: pageInspector,
231
+ controlPanel: controlPanel,
232
+ persistence: sharedState.persistence,
233
+ gptClient: finalGptClient,
234
+ interactionVisualizer: new InteractionVisualizer_1.InteractionVisualizer(0),
235
+ proposedToolCalls: [],
236
+ invokedToolCalls: [],
237
+ page: { current: page },
238
+ metadata: sharedState.donobuFlowMetadata,
239
+ toolCallId: clonedParams.toolCallId ?? MiscUtils_1.MiscUtils.createAdHocToolCallId(),
240
+ };
241
+ try {
242
+ const tools = await ToolManager_1.ToolManager.allTools();
243
+ const result = await new ToolManager_1.ToolManager(tools).invokeTool(toolCallContext, toolName, clonedParams, false);
244
+ if (!result.outcome.isSuccessful) {
245
+ throw new Error(`${toolName} execution failed: ${JSON.stringify(result, null, 2)}`);
246
+ }
247
+ return result.outcome;
248
+ }
249
+ catch (error) {
250
+ throw error;
251
+ }
252
+ };
253
+ page.analyzePageText = async (params, gptClientOverride) => {
254
+ return page.run(AnalyzePageTextTool_1.AnalyzePageTextTool.NAME, params, gptClientOverride);
255
+ };
256
+ page.assertPageText = async (params, gptClientOverride) => {
257
+ return page.run(AssertPageTextTool_1.AssertPageTextTool.NAME, params, gptClientOverride);
258
+ };
259
+ page.changeTab = async (url) => {
260
+ const result = await page.run(ChangeWebBrowserTabTool_1.ChangeWebBrowserTabTool.NAME, {
261
+ tabUrl: url,
262
+ });
263
+ if (result.isSuccessful) {
264
+ const matchingPage = page
265
+ .context()
266
+ .pages()
267
+ .find((tab) => tab.url() === url);
268
+ if (!matchingPage) {
269
+ throw new Error(`Unable to locate tab with URL ${url} after switching.`);
270
+ }
271
+ return extend(matchingPage);
272
+ }
273
+ throw Error(result.forLlm);
274
+ };
275
+ page.chooseSelectOption = async (params) => {
276
+ return page.run(ChooseSelectOptionTool_1.ChooseSelectOptionTool.NAME, params);
277
+ };
278
+ page.clickElement = async (params) => {
279
+ return page.run(ClickTool_1.ClickTool.NAME, params);
280
+ };
281
+ page.createCookieReport = async (gptClientOverride) => {
282
+ return page.run(CreateBrowserCookieReportTool_1.CreateBrowserCookieReportTool.NAME, {}, gptClientOverride);
283
+ };
284
+ page.extract = async (params, gptClientOverride) => {
285
+ let finalGptClient = null;
286
+ if (gptClientOverride) {
287
+ if (!(gptClientOverride instanceof GptClient_1.GptClient)) {
288
+ finalGptClient = new VercelAiGptClient_1.VercelAiGptClient(gptClientOverride);
289
+ }
290
+ else {
291
+ finalGptClient = gptClientOverride;
292
+ }
293
+ }
294
+ else if (sharedState.gptClient) {
295
+ finalGptClient = sharedState.gptClient;
296
+ }
297
+ if (!finalGptClient) {
298
+ throw Error('Cannot extract an object from page without a GPT client set up!');
299
+ }
300
+ try {
301
+ const toolCallHistory = await sharedState.persistence.getToolCalls(sharedState.donobuFlowMetadata.id);
302
+ const structuredOutputMessage = await (0, DonobuFlow_1.extractFromPage)(params.instruction ??
303
+ 'Generate an object conforming to the given JSON-schema', params.schema, page, toolCallHistory, finalGptClient);
304
+ sharedState.donobuFlowMetadata.resultJsonSchema = v4_1.z.toJSONSchema(params.schema);
305
+ sharedState.donobuFlowMetadata.result = JSON.parse(JSON.stringify(structuredOutputMessage.output));
306
+ await sharedState.persistence.setFlowMetadata(sharedState.donobuFlowMetadata);
307
+ return structuredOutputMessage.output;
308
+ }
309
+ catch (error) {
310
+ throw error;
311
+ }
312
+ };
313
+ page.hoverOverElement = async (params) => {
314
+ return page.run(HoverOverElementTool_1.HoverOverElementTool.NAME, params);
315
+ };
316
+ page.inputRandomizedEmailAddress = async (params) => {
317
+ return page.run(InputRandomizedEmailAddressTool_1.InputRandomizedEmailAddressTool.NAME, params);
318
+ };
319
+ page.inputText = async (params) => {
320
+ return page.run(InputTextTool_1.InputTextTool.NAME, params);
321
+ };
322
+ page.pressKey = async (params) => {
323
+ return page.run(PressKeyTool_1.PressKeyTool.NAME, params);
324
+ };
325
+ page.runAccessibilityTest = async () => {
326
+ return page.run(RunAccessibilityTestTool_1.RunAccessibilityTestTool.NAME);
327
+ };
328
+ page.scroll = async (params) => {
329
+ return page.run(ScrollPageTool_1.ScrollPageTool.NAME, params);
330
+ };
331
+ page.visuallyAssert = async (params, gptClientOverride) => {
332
+ return page.run(AssertTool_1.AssertTool.NAME, params, gptClientOverride);
333
+ };
334
+ page.once('close', () => {
335
+ void finalizeFlowOnPageClose(sharedState);
336
+ });
337
+ }
338
+ async function buttonUpGptClient(gptClient) {
339
+ try {
340
+ if (!gptClient) {
341
+ gptClient = await (0, gptClients_1.getOrCreateDefaultGptClient)();
342
+ }
343
+ return gptClient;
344
+ }
345
+ catch (error) {
346
+ if (!(error instanceof GptApiKeysNotSetupException_1.GptApiKeysNotSetupException)) {
347
+ const err = error;
348
+ Logger_1.appLogger.error(`Failed to set up GPT client! ${err.name}: ${err.message}`);
349
+ }
350
+ // Do nothing since we may not need a GPT client at all anyway.
351
+ // If something later on requires a GPT client, it will throw an error.
352
+ return gptClient;
353
+ }
354
+ finally {
355
+ if (gptClient) {
356
+ const modelName = 'modelName' in gptClient.config
357
+ ? gptClient.config.modelName
358
+ : undefined;
359
+ Logger_1.appLogger.info(`Set up ${gptClient.config.type} client${modelName ? ` for model: ${modelName}` : ''}`);
360
+ }
361
+ }
362
+ }
363
+ async function finalizeFlowOnPageClose(sharedState) {
364
+ if (sharedState.donobuFlowMetadata.state === 'SUCCESS' ||
365
+ sharedState.donobuFlowMetadata.state === 'FAILED') {
366
+ return;
367
+ }
368
+ sharedState.donobuFlowMetadata.state = 'SUCCESS';
369
+ sharedState.donobuFlowMetadata.completedAt = new Date().getTime();
370
+ try {
371
+ await sharedState.persistence.setFlowMetadata(sharedState.donobuFlowMetadata);
372
+ }
373
+ catch (error) {
374
+ Logger_1.appLogger.error('Failed to persist Donobu flow metadata when page closed.', error);
375
+ }
376
+ }
377
+ //# sourceMappingURL=createDonobuExtendedPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDonobuExtendedPage.js","sourceRoot":"","sources":["../../src/lib/createDonobuExtendedPage.ts"],"names":[],"mappings":";;AAoEA,gCAiEC;AApID,+BAAkC;AAClC,oDAAiD;AAEjD,8DAA2D;AAC3D,6DAAiE;AACjE,wDAAqD;AACrD,wCAAiC;AACjC,sDAAoE;AACpE,2FAAwF;AACxF,4CAA4C;AAC5C,oDAAmE;AACnE,4DAGiC;AACjC,+BAA2B;AAC3B,kDAA+C;AAC/C,iEAIgC;AAEhC,oEAAiE;AACjE,qCAAkC;AAClC,mDAAoD;AACpD,8DAGkC;AAElC,6DAA0D;AAC1D,yDAA0D;AAC1D,6EAA0E;AAE1E,yDAAsD;AACtD,sEAGsC;AACtC,oEAGqC;AACrC,8EAG0C;AAC1C,4EAGyC;AAEzC,kDAA+C;AAC/C,0FAAuF;AACvF,uDAAyD;AACzD,wEAAqE;AACrE,8FAGkD;AAClD,0DAA8E;AAC9E,wDAA2E;AAC3E,gFAA6E;AAE7E,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAE5C,KAAK,UAAU,UAAU,CAC9B,IAAU,EACV,OAKC;IAED,MAAM,iCAAe,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,MAAM,IAAA,wCAAsB,GAAE,CAAC;IACnD,MAAM,WAAW,GACf,MAAM,WAAW,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,CAAC;IACrE,MAAM,mBAAmB,GAAG,MAAM,2BAAY,CAAC,sBAAsB,CACnE,IAAI,CAAC,OAAO,EAAE,CACf,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,wBAAwB,CACrC;QACE,kBAAkB,EAAE;YAClB,EAAE,EAAE,IAAA,SAAI,GAAE;YACV,IAAI,EAAE,IAAI;YACV,wBAAwB,EAAE,qBAAS,CAAC,cAAc;YAClD,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,kBAAkB;oBAC9B,QAAQ,EAAE,OAAO,EAAE,QAAQ;iBAC5B;aACF;YACD,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;YACjC,aAAa,EAAE,IAAI;YACnB,wBAAwB,EAAE,KAAK;YAC/B,WAAW,EAAE,IAAI;YACjB,sBAAsB,EAAE,CAAC;YACzB,OAAO,EAAE,eAAe;YACxB,qBAAqB,EAAE,KAAK;YAC5B,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE,oBAAoB;YACnC,gBAAgB,EAAE,IAAI;YACtB,YAAY,EAAE,EAAE;YAChB,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,CAAC;YAClB,oBAAoB,EAAE,CAAC;YACvB,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;YAC/B,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,gBAAgB;YACvB,SAAS,EAAE,IAAI;SAChB;QACD,WAAW,EAAE,WAAW;QACxB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,WAAW;QACxB,mBAAmB,EAAE,mBAAmB;QACxC,SAAS,EAAE,iBAAiB;QAC5B,iBAAiB,EAAE;YACjB,gBAAgB,EAAE,qBAAS,CAAC,EAAE,CAAC,aAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC;SACpE;KACF,EACD,OAAO,EAAE,aAAa,CACvB,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,YAAY,CAAC;AACtB,CAAC;AAID,SAAS,wBAAwB,CAC/B,WAAuC,EACvC,aAAsB;IAEtB,MAAM,MAAM,GAAG,CAAC,MAAY,EAAsB,EAAE;QAClD,IAAI,CAAC,IAAA,sCAAe,EAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,IAAA,2CAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,QAAQ,GAAG,MAA4B,CAAC;QAC9C,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;QAC5B,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAwB,EACxB,WAAuC,EACvC,MAA0B,EAC1B,aAAsB;IAEtB,IAAI,CAAC,EAAE,GAAG,KAAK,EACb,WAAmB,EACnB,OAA+B,EAC/B,iBAA8D,EAC9D,EAAE;QACF,IAAI,cAAc,GAAqB,IAAI,CAAC;QAE5C,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,iBAAiB,YAAY,qBAAS,CAAC,EAAE,CAAC;gBAC9C,cAAc,GAAG,IAAI,qCAAiB,CAAC,iBAAiB,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,cAAc,GAAG,iBAAiB,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YACjC,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC;;MAEhB,aAAG,CAAC,IAAI,CAAC,iBAAiB;MAC1B,aAAG,CAAC,IAAI,CAAC,4BAA4B;MACrC,aAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACxB,WAAW,CAAC,MAAM,GAAG,aAAa;gBAChC,CAAC,CAAC,eAAM,CAAC,aAAa,CAClB,WAAW,CAAC,WAAW,EACvB,cAAc,EACd,aAAa,CACd;gBACH,CAAC,CAAC,eAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,kBAAkB,GACtB,WAAW,CAAC,iBAAiB,EAAE,gBAAgB,IAAI,KAAK,CAAC;QAE3D,MAAM,cAAc,GAAG;YACrB,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,OAAO,IAAI,EAAE;YACrD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;SACH,CAAC;QAE3B,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YACvE,kBAAS,CAAC,KAAK,CACb,8CAA8C,aAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,CACpF,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAAC,MAAM,CAAC,EAAE,CAAS,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAC1E,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,GAAG,CACV,QAAgB,EAChB,OAAiD,EACjD,EAAE;QACF,OAAO,IAAI,iCAAiB,CAAC,IAAI,EAAE;YACjC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;YACjD,KAAK,EAAE,OAAO,EAAE,KAAK;SACtB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,GAAG,KAAK,EACf,GAAW,EACX,OAIC,EACD,EAAE;QACF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAEjD,IAAI,WAAW,CAAC,kBAAkB,CAAC,aAAa,KAAK,oBAAoB,EAAE,CAAC;YAC1E,WAAW,CAAC,kBAAkB,GAAG;gBAC/B,GAAG,WAAW,CAAC,kBAAkB;gBACjC,aAAa,EAAE,GAAG;aACnB,CAAC;YACF,MAAM,WAAW,CAAC,WAAW,CAAC,eAAe,CAC3C,WAAW,CAAC,kBAAkB,CAC/B,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAA,sCAAe,EAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,MAAM,aAAa,GAAG,MAAM,iCAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACzE,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,cAAc,CAClE,MAAM,EACN,aAAa,CACd,CAAC;YACF,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE;gBACjD,EAAE,EAAE,qBAAS,CAAC,qBAAqB,EAAE;gBACrC,QAAQ,EAAE,iCAAe,CAAC,IAAI;gBAC9B,UAAU,EAAE;oBACV,GAAG,EAAE,GAAG;iBAC+C;gBACzD,OAAO,EAAE;oBACP,YAAY,EAAE,IAAI;oBAClB,MAAM,EAAE,6BAA6B,GAAG,EAAE;oBAC1C,QAAQ,EAAE;wBACR,SAAS,EAAE,SAAS;wBACpB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;qBACxB;iBACF;gBACD,eAAe,EAAE,eAAe;gBAChC,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,SAAS;gBACpB,WAAW,EAAE,WAAW;aACN,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,MAAM,iCAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACzE,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,cAAc,CAClE,MAAM,EACN,aAAa,CACd,CAAC;YACF,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE;gBACjD,EAAE,EAAE,qBAAS,CAAC,qBAAqB,EAAE;gBACrC,QAAQ,EAAE,iCAAe,CAAC,IAAI;gBAC9B,UAAU,EAAE;oBACV,GAAG,EAAE,GAAG;iBAC+C;gBACzD,OAAO,EAAE;oBACP,YAAY,EAAE,KAAK;oBACnB,MAAM,EAAE,WAAW,OAAO,KAAK,KAAM,KAAa,CAAC,OAAO,EAAE;oBAC5D,QAAQ,EAAE,IAAI;iBACf;gBACD,eAAe,EAAE,eAAe;gBAChC,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,SAAS;gBACpB,WAAW,EAAE,WAAW;aACN,CAAC,CAAC;YAEtB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,GAAG,GAAG,KAAK,EACd,QAAgB,EAChB,UAAgB,EAChB,iBAA8D,EAC9D,EAAE;QACF,IAAI,cAAc,GAAqB,IAAI,CAAC;QAE5C,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,iBAAiB,YAAY,qBAAS,CAAC,EAAE,CAAC;gBAC9C,cAAc,GAAG,IAAI,qCAAiB,CAAC,iBAAiB,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,cAAc,GAAG,iBAAiB,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YACjC,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC;QACzC,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,6BAAa,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,+BAAgB,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,UAAU;YAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACxC,CAAC,CAAC,EAAE,CAAC;QACP,YAAY,CAAC,SAAS,KAAtB,YAAY,CAAC,SAAS,GAAK,EAAE,EAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,YAAY,CACrE,WAAW,CAAC,kBAAkB,CAAC,OAAO,IAAI,EAAE,CAC7C,CAAC;QACF,MAAM,eAAe,GAAG;YACtB,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY;YAClD,OAAO,EAAE,OAAO;YAChB,aAAa,EAAE,aAAa;YAC5B,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,SAAS,EAAE,cAAc;YACzB,qBAAqB,EAAE,IAAI,6CAAqB,CAAC,CAAC,CAAC;YACnD,iBAAiB,EAAE,EAAE;YACrB,gBAAgB,EAAE,EAAE;YACpB,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YACvB,QAAQ,EAAE,WAAW,CAAC,kBAAkB;YACxC,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,qBAAS,CAAC,qBAAqB,EAAE;SAC/C,CAAC;QAE5B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,yBAAW,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,yBAAW,CAAC,KAAK,CAAC,CAAC,UAAU,CACpD,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,KAAK,CACN,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,sBAAsB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACnE,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,eAAe,GAAG,KAAK,EAC1B,MAAqD,EACrD,iBAA6C,EAC7C,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,yCAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,IAAI,CAAC,cAAc,GAAG,KAAK,EACzB,MAAoD,EACpD,iBAA6C,EAC7C,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,uCAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACtE,CAAC,CAAC;IAEF,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,GAAW,EAA+B,EAAE;QAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,iDAAuB,CAAC,IAAI,EAAE;YAC1D,MAAM,EAAE,GAAG;SAC4C,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,IAAI;iBACtB,OAAO,EAAE;iBACT,KAAK,EAAE;iBACP,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;YAEpC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,iCAAiC,GAAG,mBAAmB,CACxD,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,IAAI,CAAC,kBAAkB,GAAG,KAAK,EAC7B,MAAsD,EACtD,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,+CAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,MAA2C,EAAE,EAAE;QACxE,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,IAAI,CAAC,kBAAkB,GAAG,KAAK,EAC7B,iBAA6C,EAC7C,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,6DAA6B,CAAC,IAAI,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEF,IAAI,CAAC,OAAO,GAAG,KAAK,EAClB,MAGC,EACD,iBAA8D,EAClD,EAAE;QACd,IAAI,cAAc,GAAqB,IAAI,CAAC;QAE5C,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,iBAAiB,YAAY,qBAAS,CAAC,EAAE,CAAC;gBAC9C,cAAc,GAAG,IAAI,qCAAiB,CAAC,iBAAiB,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,cAAc,GAAG,iBAAiB,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YACjC,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,KAAK,CACT,iEAAiE,CAClE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,YAAY,CAChE,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAClC,CAAC;YACF,MAAM,uBAAuB,GAAG,MAAM,IAAA,4BAAe,EACnD,MAAM,CAAC,WAAW;gBAChB,wDAAwD,EAC1D,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,eAAe,EACf,cAAc,CACf,CAAC;YACF,WAAW,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,MAAC,CAAC,YAAY,CAC9D,MAAM,CAAC,MAAM,CACd,CAAC;YACF,WAAW,CAAC,kBAAkB,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAChD,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAC/C,CAAC;YACF,MAAM,WAAW,CAAC,WAAW,CAAC,eAAe,CAC3C,WAAW,CAAC,kBAAkB,CAC/B,CAAC;YACF,OAAO,uBAAuB,CAAC,MAAM,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAC3B,MAA2C,EAC3C,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,2CAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,IAAI,CAAC,2BAA2B,GAAG,KAAK,EACtC,MAA+D,EAC/D,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,iEAA+B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,MAA6C,EAAE,EAAE;QACvE,OAAO,IAAI,CAAC,GAAG,CAAC,6BAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,MAA4C,EAAE,EAAE;QACrE,OAAO,IAAI,CAAC,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,IAAI,CAAC,oBAAoB,GAAG,KAAK,IAAI,EAAE;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,mDAAwB,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,MAA8C,EAAE,EAAE;QACrE,OAAO,IAAI,CAAC,GAAG,CAAC,+BAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,IAAI,CAAC,cAAc,GAAG,KAAK,EACzB,MAAwC,EACxC,iBAA6B,EAC7B,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,uBAAU,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;QACtB,KAAK,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,SAAqB;IAErB,IAAI,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,MAAM,IAAA,wCAA2B,GAAE,CAAC;QAClD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,yDAA2B,CAAC,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,kBAAS,CAAC,KAAK,CACb,gCAAgC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAC3D,CAAC;QACJ,CAAC;QACD,+DAA+D;QAC/D,uEAAuE;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,SAAS,GACb,WAAW,IAAI,SAAS,CAAC,MAAM;gBAC7B,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS;gBAC5B,CAAC,CAAC,SAAS,CAAC;YAChB,kBAAS,CAAC,IAAI,CACZ,UAAU,SAAS,CAAC,MAAM,CAAC,IAAI,UAAU,SAAS,CAAC,CAAC,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACvF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,WAAuC;IAEvC,IACE,WAAW,CAAC,kBAAkB,CAAC,KAAK,KAAK,SAAS;QAClD,WAAW,CAAC,kBAAkB,CAAC,KAAK,KAAK,QAAQ,EACjD,CAAC;QACD,OAAO;IACT,CAAC;IAED,WAAW,CAAC,kBAAkB,CAAC,KAAK,GAAG,SAAS,CAAC;IACjD,WAAW,CAAC,kBAAkB,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,WAAW,CAAC,eAAe,CAC3C,WAAW,CAAC,kBAAkB,CAC/B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAS,CAAC,KAAK,CACb,0DAA0D,EAC1D,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -55,16 +55,6 @@ export declare class FilePageAiCache implements PageAiCache {
55
55
  * idempotent even when multiple processes start simultaneously.
56
56
  */
57
57
  private ensureCacheFileExists;
58
- /**
59
- * Determines whether two cache descriptors refer to the same invocation.
60
- * `JSON.stringify` comparisons are sufficient here because the structures are
61
- * small and deterministic.
62
- */
63
- private matchesKey;
64
- /**
65
- * Performs a structural equality check for key fields that are collections.
66
- */
67
- private areEqual;
68
58
  /**
69
59
  * Reads and normalises the cache file, self-healing the structure when the
70
60
  * JSON is missing expected fields.
@@ -81,4 +71,17 @@ export declare class FilePageAiCache implements PageAiCache {
81
71
  */
82
72
  private withCacheLock;
83
73
  }
74
+ /**
75
+ * Lightweight in-memory cache implementation that stays within the current
76
+ * process. Useful for unit tests that want deterministic cache behaviour
77
+ * without touching the filesystem.
78
+ */
79
+ export declare class InMemoryPageAiCache implements PageAiCache {
80
+ private cache;
81
+ constructor(initialContents?: PageAiCacheEntry[] | PageAiCacheContents);
82
+ get(key: PageAiCacheKey): Promise<ProposedToolCall[] | null>;
83
+ put(entry: PageAiCacheEntry): Promise<void>;
84
+ delete(key: PageAiCacheKey): Promise<boolean>;
85
+ snapshot(): Promise<PageAiCacheContents>;
86
+ }
84
87
  //# sourceMappingURL=cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/lib/pageAi/cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7D,GAAG,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC1C;AAOD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,WAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,MAAM;IAE5C,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAW5D,GAAG,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3C,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB1D;;;;OAIG;IACU,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAqBrD;;;OAGG;YACW,qBAAqB;IAiBnC;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB;;;OAGG;YACW,aAAa;IA8B3B;;;OAGG;YACW,cAAc;IAQ5B;;;OAGG;YACW,aAAa;CA0B5B"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/lib/pageAi/cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7D,GAAG,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC1C;AAuCD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,WAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,MAAM;IAE5C,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAa5D,GAAG,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3C,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB1D;;;;OAIG;IACU,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAarD;;;OAGG;YACW,qBAAqB;IAiBnC;;;OAGG;YACW,aAAa;IA8B3B;;;OAGG;YACW,cAAc;IAQ5B;;;OAGG;YACW,aAAa;CA0B5B;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,KAAK,CAAqB;gBAGhC,eAAe,GAAE,gBAAgB,EAAE,GAAG,mBAAwB;IAOnD,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAU5D,GAAG,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB3C,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB7C,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAKtD"}
@@ -36,9 +36,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.FilePageAiCache = void 0;
39
+ exports.InMemoryPageAiCache = exports.FilePageAiCache = void 0;
40
40
  const promises_1 = __importDefault(require("fs/promises"));
41
41
  const LockFile = __importStar(require("proper-lockfile"));
42
+ const areCacheCollectionsEqual = (left, right) => JSON.stringify(left) === JSON.stringify(right);
43
+ const pageAiCacheKeysMatch = (left, right) => left.pageUrl === right.pageUrl &&
44
+ left.instruction === right.instruction &&
45
+ areCacheCollectionsEqual(left.schema, right.schema) &&
46
+ areCacheCollectionsEqual(left.allowedTools, right.allowedTools) &&
47
+ left.maxToolCalls === right.maxToolCalls;
48
+ const cloneToolCallCache = (toolCallCache) => JSON.parse(JSON.stringify(toolCallCache));
49
+ const cloneCacheEntry = (entry) => ({
50
+ pageUrl: entry.pageUrl,
51
+ instruction: entry.instruction,
52
+ schema: entry.schema === null
53
+ ? null
54
+ : JSON.parse(JSON.stringify(entry.schema)),
55
+ allowedTools: [...entry.allowedTools],
56
+ maxToolCalls: entry.maxToolCalls,
57
+ toolCallCache: cloneToolCallCache(entry.toolCallCache),
58
+ });
42
59
  /**
43
60
  * File-backed implementation used by the Playwright fixture. Protects reads and
44
61
  * writes with an OS-level lock so concurrent processes do not corrupt the file.
@@ -49,7 +66,7 @@ class FilePageAiCache {
49
66
  }
50
67
  async get(key) {
51
68
  return this.withCacheLock(async (cache) => {
52
- const matchingEntry = cache.find((entry) => this.matchesKey(entry, key));
69
+ const matchingEntry = cache.find((entry) => pageAiCacheKeysMatch(entry, key));
53
70
  return {
54
71
  cache,
55
72
  result: matchingEntry?.toolCallCache ?? null,
@@ -58,7 +75,7 @@ class FilePageAiCache {
58
75
  }
59
76
  async put(entry) {
60
77
  await this.withCacheLock(async (cache) => {
61
- const existingIndex = cache.findIndex((candidate) => this.matchesKey(candidate, entry));
78
+ const existingIndex = cache.findIndex((candidate) => pageAiCacheKeysMatch(candidate, entry));
62
79
  const modifiedCache = existingIndex === -1 ? [...cache, entry] : [...cache];
63
80
  if (existingIndex !== -1) {
64
81
  modifiedCache[existingIndex] = entry;
@@ -71,7 +88,7 @@ class FilePageAiCache {
71
88
  }
72
89
  async delete(key) {
73
90
  return this.withCacheLock(async (cache) => {
74
- const targetIndex = cache.findIndex((entry) => this.matchesKey(entry, key));
91
+ const targetIndex = cache.findIndex((entry) => pageAiCacheKeysMatch(entry, key));
75
92
  if (targetIndex === -1) {
76
93
  return {
77
94
  cache,
@@ -95,14 +112,7 @@ class FilePageAiCache {
95
112
  */
96
113
  async snapshot() {
97
114
  return this.withCacheLock(async (cache) => {
98
- const clonedEntries = cache.map((entry) => ({
99
- ...entry,
100
- allowedTools: [...entry.allowedTools],
101
- toolCallCache: JSON.parse(JSON.stringify(entry.toolCallCache)),
102
- schema: entry.schema === null
103
- ? null
104
- : JSON.parse(JSON.stringify(entry.schema)),
105
- }));
115
+ const clonedEntries = cache.map((entry) => cloneCacheEntry(entry));
106
116
  return {
107
117
  cache,
108
118
  result: {
@@ -128,24 +138,6 @@ class FilePageAiCache {
128
138
  }
129
139
  }
130
140
  }
131
- /**
132
- * Determines whether two cache descriptors refer to the same invocation.
133
- * `JSON.stringify` comparisons are sufficient here because the structures are
134
- * small and deterministic.
135
- */
136
- matchesKey(entry, key) {
137
- return (entry.pageUrl === key.pageUrl &&
138
- entry.instruction === key.instruction &&
139
- this.areEqual(entry.schema, key.schema) &&
140
- this.areEqual(entry.allowedTools, key.allowedTools) &&
141
- entry.maxToolCalls === key.maxToolCalls);
142
- }
143
- /**
144
- * Performs a structural equality check for key fields that are collections.
145
- */
146
- areEqual(left, right) {
147
- return JSON.stringify(left) === JSON.stringify(right);
148
- }
149
141
  /**
150
142
  * Reads and normalises the cache file, self-healing the structure when the
151
143
  * JSON is missing expected fields.
@@ -204,4 +196,49 @@ class FilePageAiCache {
204
196
  }
205
197
  }
206
198
  exports.FilePageAiCache = FilePageAiCache;
199
+ /**
200
+ * Lightweight in-memory cache implementation that stays within the current
201
+ * process. Useful for unit tests that want deterministic cache behaviour
202
+ * without touching the filesystem.
203
+ */
204
+ class InMemoryPageAiCache {
205
+ constructor(initialContents = []) {
206
+ const entries = 'caches' in initialContents ? initialContents.caches : initialContents;
207
+ this.cache = entries.map((entry) => cloneCacheEntry(entry));
208
+ }
209
+ async get(key) {
210
+ const matchingEntry = this.cache.find((entry) => pageAiCacheKeysMatch(entry, key));
211
+ return matchingEntry
212
+ ? cloneToolCallCache(matchingEntry.toolCallCache)
213
+ : null;
214
+ }
215
+ async put(entry) {
216
+ const existingIndex = this.cache.findIndex((candidate) => pageAiCacheKeysMatch(candidate, entry));
217
+ const updatedEntry = cloneCacheEntry(entry);
218
+ if (existingIndex === -1) {
219
+ this.cache = [...this.cache, updatedEntry];
220
+ return;
221
+ }
222
+ const nextCache = [...this.cache];
223
+ nextCache[existingIndex] = updatedEntry;
224
+ this.cache = nextCache;
225
+ }
226
+ async delete(key) {
227
+ const targetIndex = this.cache.findIndex((entry) => pageAiCacheKeysMatch(entry, key));
228
+ if (targetIndex === -1) {
229
+ return false;
230
+ }
231
+ this.cache = [
232
+ ...this.cache.slice(0, targetIndex),
233
+ ...this.cache.slice(targetIndex + 1),
234
+ ];
235
+ return true;
236
+ }
237
+ async snapshot() {
238
+ return {
239
+ caches: this.cache.map((entry) => cloneCacheEntry(entry)),
240
+ };
241
+ }
242
+ }
243
+ exports.InMemoryPageAiCache = InMemoryPageAiCache;
207
244
  //# sourceMappingURL=cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/lib/pageAi/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/lib/pageAi/cache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA6B;AAC7B,0DAA4C;AA0C5C,MAAM,wBAAwB,GAAG,CAC/B,IAA4C,EAC5C,KAA6C,EACpC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAE7D,MAAM,oBAAoB,GAAG,CAC3B,IAAoB,EACpB,KAAqB,EACZ,EAAE,CACX,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;IAC9B,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;IACtC,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IACnD,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;IAC/D,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,CAAC;AAE3C,MAAM,kBAAkB,GAAG,CACzB,aAAiC,EACb,EAAE,CACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAuB,CAAC;AAElE,MAAM,eAAe,GAAG,CAAC,KAAuB,EAAoB,EAAE,CAAC,CAAC;IACtE,OAAO,EAAE,KAAK,CAAC,OAAO;IACtB,WAAW,EAAE,KAAK,CAAC,WAAW;IAC9B,MAAM,EACJ,KAAK,CAAC,MAAM,KAAK,IAAI;QACnB,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAA6B;IAC3E,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC;IACrC,YAAY,EAAE,KAAK,CAAC,YAAY;IAChC,aAAa,EAAE,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC;CACvD,CAAC,CAAC;AAOH;;;GAGG;AACH,MAAa,eAAe;IAC1B,YAAoC,aAAqB;QAArB,kBAAa,GAAb,aAAa,CAAQ;IAAG,CAAC;IAEtD,KAAK,CAAC,GAAG,CAAC,GAAmB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACxC,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACzC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CACjC,CAAC;YAEF,OAAO;gBACL,KAAK;gBACL,MAAM,EAAE,aAAa,EAAE,aAAa,IAAI,IAAI;aAC7C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,KAAuB;QACtC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACvC,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAClD,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CACvC,CAAC;YACF,MAAM,aAAa,GACjB,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YAExD,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;gBACzB,aAAa,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;YACvC,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,SAAS;aAClB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAmB;QACrC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACxC,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5C,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CACjC,CAAC;YAEF,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;gBACvB,OAAO;oBACL,KAAK;oBACL,MAAM,EAAE,KAAK;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAG;gBACpB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC;gBAC9B,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;aAChC,CAAC;YAEF,OAAO;gBACL,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,IAAI;aACb,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,QAAQ;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACxC,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YAEnE,OAAO;gBACL,KAAK;gBACL,MAAM,EAAE;oBACN,MAAM,EAAE,aAAa;iBACtB;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC;YACH,MAAM,kBAAE,CAAC,SAAS,CAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAgC,EAAE,IAAI,EAAE,CAAC,CAAC,EACrE;gBACE,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,IAAI;aACX,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa;QACzB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC;YAEtD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;gBACnB,MAAM,kBAAE,CAAC,SAAS,CAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAC/B,OAAO,CACR,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,KAAyB;QACpD,MAAM,kBAAE,CAAC,SAAS,CAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAC1C,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa,CACzB,SAA0E;QAE1E,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEnC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACtD,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,IAAI;aACjB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAChD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,CAAC;YAExD,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;CACF;AA/KD,0CA+KC;AAED;;;;GAIG;AACH,MAAa,mBAAmB;IAG9B,YACE,kBAA4D,EAAE;QAE9D,MAAM,OAAO,GACX,QAAQ,IAAI,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,GAAmB;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9C,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CACjC,CAAC;QAEF,OAAO,aAAa;YAClB,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,aAAa,CAAC;YACjD,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,KAAuB;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CACvD,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CACvC,CAAC;QACF,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAE5C,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,SAAS,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAmB;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CACjD,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CACjC,CAAC;QAEF,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC;YACnC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;SACrC,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC1D,CAAC;IACJ,CAAC;CACF;AA3DD,kDA2DC"}
@@ -1 +1 @@
1
- {"version":3,"file":"testExtension.d.ts","sourceRoot":"","sources":["../../src/lib/testExtension.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAkDjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAkBpE,cAAc,iBAAiB,CAAC;AAoBhC,eAAO,MAAM,IAAI;mBACA,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;gBACrD,SAAS;UACf,kBAAkB;wGAoKxB,CAAC"}
1
+ {"version":3,"file":"testExtension.d.ts","sourceRoot":"","sources":["../../src/lib/testExtension.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AASpE,cAAc,iBAAiB,CAAC;AAEhC,eAAO,MAAM,IAAI;mBACA,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;gBACrD,SAAS;UACf,kBAAkB;wGAqCxB,CAAC"}