donobu 3.5.5 → 3.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/apis/GptConfigsApi.d.ts.map +1 -1
  2. package/dist/apis/GptConfigsApi.js +0 -2
  3. package/dist/apis/GptConfigsApi.js.map +1 -1
  4. package/dist/assets/donobu-namespace.js +54 -0
  5. package/dist/assets/interactive-elements-tracker.js +9 -9
  6. package/dist/assets/page-interactions-tracker.js +21 -22
  7. package/dist/assets/smart-selector-generator.js +11 -13
  8. package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
  9. package/dist/bindings/PageInteractionTracker.js +1 -0
  10. package/dist/bindings/PageInteractionTracker.js.map +1 -1
  11. package/dist/envVars.d.ts +0 -2
  12. package/dist/envVars.d.ts.map +1 -1
  13. package/dist/envVars.js +0 -4
  14. package/dist/envVars.js.map +1 -1
  15. package/dist/esm/apis/GptConfigsApi.d.ts.map +1 -1
  16. package/dist/esm/apis/GptConfigsApi.js +0 -2
  17. package/dist/esm/apis/GptConfigsApi.js.map +1 -1
  18. package/dist/esm/assets/donobu-namespace.js +54 -0
  19. package/dist/esm/assets/interactive-elements-tracker.js +9 -9
  20. package/dist/esm/assets/page-interactions-tracker.js +21 -22
  21. package/dist/esm/assets/smart-selector-generator.js +11 -13
  22. package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
  23. package/dist/esm/bindings/PageInteractionTracker.js +1 -0
  24. package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
  25. package/dist/esm/envVars.d.ts +0 -2
  26. package/dist/esm/envVars.d.ts.map +1 -1
  27. package/dist/esm/envVars.js +0 -4
  28. package/dist/esm/envVars.js.map +1 -1
  29. package/dist/esm/lib/PageAi.d.ts +1 -1
  30. package/dist/esm/lib/PageAi.js +1 -1
  31. package/dist/esm/lib/PageAi.js.map +1 -1
  32. package/dist/esm/lib/createDonobuExtendedPage.js +1 -1
  33. package/dist/esm/lib/createDonobuExtendedPage.js.map +1 -1
  34. package/dist/esm/lib/fixtures/gptClients.d.ts +7 -61
  35. package/dist/esm/lib/fixtures/gptClients.d.ts.map +1 -1
  36. package/dist/esm/lib/fixtures/gptClients.js +48 -160
  37. package/dist/esm/lib/fixtures/gptClients.js.map +1 -1
  38. package/dist/esm/lib/utils/donobuTestStack.d.ts +4 -2
  39. package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -1
  40. package/dist/esm/lib/utils/donobuTestStack.js +1 -1
  41. package/dist/esm/lib/utils/donobuTestStack.js.map +1 -1
  42. package/dist/esm/managers/AdminApiController.d.ts +1 -5
  43. package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
  44. package/dist/esm/managers/AdminApiController.js +0 -13
  45. package/dist/esm/managers/AdminApiController.js.map +1 -1
  46. package/dist/esm/managers/AgentsManager.d.ts +1 -17
  47. package/dist/esm/managers/AgentsManager.d.ts.map +1 -1
  48. package/dist/esm/managers/AgentsManager.js +1 -64
  49. package/dist/esm/managers/AgentsManager.js.map +1 -1
  50. package/dist/esm/managers/DonobuFlowsManager.d.ts +13 -40
  51. package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
  52. package/dist/esm/managers/DonobuFlowsManager.js +45 -316
  53. package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
  54. package/dist/esm/managers/DonobuStack.d.ts +4 -2
  55. package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
  56. package/dist/esm/managers/DonobuStack.js +3 -3
  57. package/dist/esm/managers/DonobuStack.js.map +1 -1
  58. package/dist/esm/managers/EnvDataManager.d.ts +11 -0
  59. package/dist/esm/managers/EnvDataManager.d.ts.map +1 -1
  60. package/dist/esm/managers/EnvDataManager.js +20 -0
  61. package/dist/esm/managers/EnvDataManager.js.map +1 -1
  62. package/dist/esm/managers/FlowCatalog.d.ts +29 -0
  63. package/dist/esm/managers/FlowCatalog.d.ts.map +1 -0
  64. package/dist/esm/managers/FlowCatalog.js +153 -0
  65. package/dist/esm/managers/FlowCatalog.js.map +1 -0
  66. package/dist/esm/managers/FlowDependencyResolver.d.ts +20 -0
  67. package/dist/esm/managers/FlowDependencyResolver.d.ts.map +1 -0
  68. package/dist/esm/managers/FlowDependencyResolver.js +101 -0
  69. package/dist/esm/managers/FlowDependencyResolver.js.map +1 -0
  70. package/dist/esm/managers/FlowRuntime.d.ts +18 -0
  71. package/dist/esm/managers/FlowRuntime.d.ts.map +1 -0
  72. package/dist/esm/managers/FlowRuntime.js +33 -0
  73. package/dist/esm/managers/FlowRuntime.js.map +1 -0
  74. package/dist/esm/managers/GptConfigsManager.d.ts +1 -8
  75. package/dist/esm/managers/GptConfigsManager.d.ts.map +1 -1
  76. package/dist/esm/managers/GptConfigsManager.js +1 -177
  77. package/dist/esm/managers/GptConfigsManager.js.map +1 -1
  78. package/dist/esm/managers/PageInspector.d.ts +1 -1
  79. package/dist/esm/managers/PageInspector.js +1 -1
  80. package/dist/esm/models/FlowHandle.d.ts +12 -0
  81. package/dist/esm/models/FlowHandle.d.ts.map +1 -0
  82. package/dist/esm/models/FlowHandle.js +3 -0
  83. package/dist/esm/models/FlowHandle.js.map +1 -0
  84. package/dist/esm/tools/InputRandomizedEmailAddressTool.js +2 -2
  85. package/dist/esm/utils/Logger.d.ts +1 -0
  86. package/dist/esm/utils/Logger.d.ts.map +1 -1
  87. package/dist/esm/utils/Logger.js +100 -12
  88. package/dist/esm/utils/Logger.js.map +1 -1
  89. package/dist/esm/utils/PlaywrightUtils.d.ts +4 -0
  90. package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
  91. package/dist/esm/utils/PlaywrightUtils.js +5 -0
  92. package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
  93. package/dist/lib/PageAi.d.ts +1 -1
  94. package/dist/lib/PageAi.js +1 -1
  95. package/dist/lib/PageAi.js.map +1 -1
  96. package/dist/lib/createDonobuExtendedPage.js +1 -1
  97. package/dist/lib/createDonobuExtendedPage.js.map +1 -1
  98. package/dist/lib/fixtures/gptClients.d.ts +7 -61
  99. package/dist/lib/fixtures/gptClients.d.ts.map +1 -1
  100. package/dist/lib/fixtures/gptClients.js +48 -160
  101. package/dist/lib/fixtures/gptClients.js.map +1 -1
  102. package/dist/lib/utils/donobuTestStack.d.ts +4 -2
  103. package/dist/lib/utils/donobuTestStack.d.ts.map +1 -1
  104. package/dist/lib/utils/donobuTestStack.js +1 -1
  105. package/dist/lib/utils/donobuTestStack.js.map +1 -1
  106. package/dist/managers/AdminApiController.d.ts +1 -5
  107. package/dist/managers/AdminApiController.d.ts.map +1 -1
  108. package/dist/managers/AdminApiController.js +0 -13
  109. package/dist/managers/AdminApiController.js.map +1 -1
  110. package/dist/managers/AgentsManager.d.ts +1 -17
  111. package/dist/managers/AgentsManager.d.ts.map +1 -1
  112. package/dist/managers/AgentsManager.js +1 -64
  113. package/dist/managers/AgentsManager.js.map +1 -1
  114. package/dist/managers/DonobuFlowsManager.d.ts +13 -40
  115. package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
  116. package/dist/managers/DonobuFlowsManager.js +45 -316
  117. package/dist/managers/DonobuFlowsManager.js.map +1 -1
  118. package/dist/managers/DonobuStack.d.ts +4 -2
  119. package/dist/managers/DonobuStack.d.ts.map +1 -1
  120. package/dist/managers/DonobuStack.js +3 -3
  121. package/dist/managers/DonobuStack.js.map +1 -1
  122. package/dist/managers/EnvDataManager.d.ts +11 -0
  123. package/dist/managers/EnvDataManager.d.ts.map +1 -1
  124. package/dist/managers/EnvDataManager.js +20 -0
  125. package/dist/managers/EnvDataManager.js.map +1 -1
  126. package/dist/managers/FlowCatalog.d.ts +29 -0
  127. package/dist/managers/FlowCatalog.d.ts.map +1 -0
  128. package/dist/managers/FlowCatalog.js +153 -0
  129. package/dist/managers/FlowCatalog.js.map +1 -0
  130. package/dist/managers/FlowDependencyResolver.d.ts +20 -0
  131. package/dist/managers/FlowDependencyResolver.d.ts.map +1 -0
  132. package/dist/managers/FlowDependencyResolver.js +101 -0
  133. package/dist/managers/FlowDependencyResolver.js.map +1 -0
  134. package/dist/managers/FlowRuntime.d.ts +18 -0
  135. package/dist/managers/FlowRuntime.d.ts.map +1 -0
  136. package/dist/managers/FlowRuntime.js +33 -0
  137. package/dist/managers/FlowRuntime.js.map +1 -0
  138. package/dist/managers/GptConfigsManager.d.ts +1 -8
  139. package/dist/managers/GptConfigsManager.d.ts.map +1 -1
  140. package/dist/managers/GptConfigsManager.js +1 -177
  141. package/dist/managers/GptConfigsManager.js.map +1 -1
  142. package/dist/managers/PageInspector.d.ts +1 -1
  143. package/dist/managers/PageInspector.js +1 -1
  144. package/dist/models/FlowHandle.d.ts +12 -0
  145. package/dist/models/FlowHandle.d.ts.map +1 -0
  146. package/dist/models/FlowHandle.js +3 -0
  147. package/dist/models/FlowHandle.js.map +1 -0
  148. package/dist/tools/InputRandomizedEmailAddressTool.js +2 -2
  149. package/dist/utils/Logger.d.ts +1 -0
  150. package/dist/utils/Logger.d.ts.map +1 -1
  151. package/dist/utils/Logger.js +100 -12
  152. package/dist/utils/Logger.js.map +1 -1
  153. package/dist/utils/PlaywrightUtils.d.ts +4 -0
  154. package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
  155. package/dist/utils/PlaywrightUtils.js +5 -0
  156. package/dist/utils/PlaywrightUtils.js.map +1 -1
  157. package/package.json +1 -1
  158. package/dist/apis/SpecialFlowsApi.d.ts +0 -20
  159. package/dist/apis/SpecialFlowsApi.d.ts.map +0 -1
  160. package/dist/apis/SpecialFlowsApi.js +0 -466
  161. package/dist/apis/SpecialFlowsApi.js.map +0 -1
  162. package/dist/esm/apis/SpecialFlowsApi.d.ts +0 -20
  163. package/dist/esm/apis/SpecialFlowsApi.d.ts.map +0 -1
  164. package/dist/esm/apis/SpecialFlowsApi.js +0 -466
  165. package/dist/esm/apis/SpecialFlowsApi.js.map +0 -1
@@ -42,11 +42,12 @@ export declare function setupDonobuStack(donobuDeploymentEnvironment: DonobuDepl
42
42
  GOOGLE_GENERATIVE_AI_MODEL_NAME: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
43
43
  OPENAI_API_KEY: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
44
44
  OPENAI_API_MODEL_NAME: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
45
- DEFAULT_FLOW_RUNNER_GPT_CONFIG_NAME: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
46
45
  AWS_S3_BUCKET: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
47
46
  AWS_S3_REGION: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
48
47
  AWS_BEDROCK_MODEL_NAME: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
49
48
  AWS_REGION: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
49
+ AWS_ACCESS_KEY_ID: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
50
+ AWS_SECRET_ACCESS_KEY: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
50
51
  DONOBU_API_KEY: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
51
52
  GOOGLE_CLOUD_STORAGE_BUCKET: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
52
53
  SUPABASE_JWT_SECRET_KEY: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
@@ -60,11 +61,12 @@ export declare function setupDonobuStack(donobuDeploymentEnvironment: DonobuDepl
60
61
  GOOGLE_GENERATIVE_AI_MODEL_NAME?: string | undefined;
61
62
  OPENAI_API_KEY?: string | undefined;
62
63
  OPENAI_API_MODEL_NAME?: string | undefined;
63
- DEFAULT_FLOW_RUNNER_GPT_CONFIG_NAME?: string | undefined;
64
64
  AWS_S3_BUCKET?: string | undefined;
65
65
  AWS_S3_REGION?: string | undefined;
66
66
  AWS_BEDROCK_MODEL_NAME?: string | undefined;
67
67
  AWS_REGION?: string | undefined;
68
+ AWS_ACCESS_KEY_ID?: string | undefined;
69
+ AWS_SECRET_ACCESS_KEY?: string | undefined;
68
70
  DONOBU_API_KEY?: string | undefined;
69
71
  GOOGLE_CLOUD_STORAGE_BUCKET?: string | undefined;
70
72
  SUPABASE_JWT_SECRET_KEY?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"DonobuStack.d.ts","sourceRoot":"","sources":["../../src/managers/DonobuStack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAIjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAE5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAE7F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG;IACxB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,aAAa,CAAC;IAC7B,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,YAAY,EAAE,kBAAkB,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,2BAA2B,EAAE,2BAA2B,EACxD,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,CAAC,EAAE,sBAAsB,EAC/C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBN,GACA,OAAO,CAAC,WAAW,CAAC,CAmDtB"}
1
+ {"version":3,"file":"DonobuStack.d.ts","sourceRoot":"","sources":["../../src/managers/DonobuStack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAIjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAE5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAE7F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG;IACxB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,aAAa,CAAC;IAC7B,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,YAAY,EAAE,kBAAkB,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,2BAA2B,EAAE,2BAA2B,EACxD,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,CAAC,EAAE,sBAAsB,EAC/C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBN,GACA,OAAO,CAAC,WAAW,CAAC,CAiDtB"}
@@ -24,14 +24,14 @@ const RequestContextHolder_1 = require("./RequestContextHolder");
24
24
  * then having this snapshot is relevant so that tests can use normal
25
25
  * environment variables.
26
26
  */
27
- async function setupDonobuStack(donobuDeploymentEnvironment, controlPanelFactory, envPersistenceVolatile, environ = envVars_1.env.pick('ANTHROPIC_API_KEY', 'ANTHROPIC_MODEL_NAME', 'AWS_BEDROCK_MODEL_NAME', 'AWS_S3_BUCKET', 'AWS_S3_REGION', 'AWS_REGION', 'BASE64_GPT_CONFIG', 'BROWSERBASE_API_KEY', 'BROWSERBASE_PROJECT_ID', 'DEFAULT_FLOW_RUNNER_GPT_CONFIG_NAME', 'DONOBU_API_KEY', 'GOOGLE_GENERATIVE_AI_API_KEY', 'GOOGLE_GENERATIVE_AI_MODEL_NAME', 'GOOGLE_CLOUD_STORAGE_BUCKET', 'OPENAI_API_KEY', 'OPENAI_API_MODEL_NAME', 'SUPABASE_JWT_SECRET_KEY')) {
27
+ async function setupDonobuStack(donobuDeploymentEnvironment, controlPanelFactory, envPersistenceVolatile, environ = envVars_1.env.pick('ANTHROPIC_API_KEY', 'ANTHROPIC_MODEL_NAME', 'AWS_ACCESS_KEY_ID', 'AWS_BEDROCK_MODEL_NAME', 'AWS_REGION', 'AWS_S3_BUCKET', 'AWS_S3_REGION', 'AWS_SECRET_ACCESS_KEY', 'BASE64_GPT_CONFIG', 'BROWSERBASE_API_KEY', 'BROWSERBASE_PROJECT_ID', 'DONOBU_API_KEY', 'GOOGLE_GENERATIVE_AI_API_KEY', 'GOOGLE_GENERATIVE_AI_MODEL_NAME', 'GOOGLE_CLOUD_STORAGE_BUCKET', 'OPENAI_API_KEY', 'OPENAI_API_MODEL_NAME', 'SUPABASE_JWT_SECRET_KEY')) {
28
28
  const gptClientFactory = new GptClientFactory_1.GptClientFactoryImpl();
29
29
  const requestContextHolder = new RequestContextHolder_1.RequestContextHolder();
30
30
  const sqliteDb = await (0, DonobuSqliteDb_1.getDonobuSqliteDatabase)();
31
31
  const gptConfigsPersistence = await GptConfigsPersistenceSqlite_1.GptConfigsPersistenceSqlite.create(sqliteDb);
32
- const gptConfigsManager = await GptConfigsManager_1.GptConfigsManager.create(gptConfigsPersistence, gptClientFactory, environ);
32
+ const gptConfigsManager = await GptConfigsManager_1.GptConfigsManager.create(gptConfigsPersistence, gptClientFactory);
33
33
  const agentsPersistence = await AgentsPersistenceSqlite_1.AgentsPersistenceSqlite.create(sqliteDb);
34
- const agentsManager = await AgentsManager_1.AgentsManager.create(agentsPersistence, gptConfigsManager, environ);
34
+ const agentsManager = await AgentsManager_1.AgentsManager.create(agentsPersistence, gptConfigsManager);
35
35
  const flowsPersistenceFactory = await FlowsPersistenceFactoryImpl_1.FlowsPersistenceFactoryImpl.fromEnvironment(donobuDeploymentEnvironment, requestContextHolder, environ);
36
36
  const envPersistenceFactory = await EnvPersistenceFactoryImpl_1.EnvPersistenceFactoryImpl.fromEnvironment(donobuDeploymentEnvironment, requestContextHolder, envPersistenceVolatile ?? null, environ);
37
37
  const envDataManager = new EnvDataManager_1.EnvDataManager(envPersistenceFactory);
@@ -1 +1 @@
1
- {"version":3,"file":"DonobuStack.js","sourceRoot":"","sources":["../../src/managers/DonobuStack.ts"],"names":[],"mappings":";;AA2CA,4CA0EC;AApHD,kEAAmE;AACnE,wCAAiC;AAIjC,2FAAwF;AACxF,kEAAwE;AACxE,4FAAyF;AAGzF,kGAA+F;AAE/F,uGAAoG;AACpG,mDAAgD;AAChD,6DAA0D;AAC1D,qDAAkD;AAClD,2DAAwD;AACxD,iEAA8D;AAc9D;;;;;;;;;;GAUG;AACI,KAAK,UAAU,gBAAgB,CACpC,2BAAwD,EACxD,mBAAwC,EACxC,sBAA+C,EAC/C,OAAO,GAAG,aAAG,CAAC,IAAI,CAChB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,qCAAqC,EACrC,gBAAgB,EAChB,8BAA8B,EAC9B,iCAAiC,EACjC,6BAA6B,EAC7B,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,CAC1B;IAED,MAAM,gBAAgB,GAAG,IAAI,uCAAoB,EAAE,CAAC;IACpD,MAAM,oBAAoB,GAAG,IAAI,2CAAoB,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAuB,GAAE,CAAC;IACjD,MAAM,qBAAqB,GACzB,MAAM,yDAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,MAAM,qCAAiB,CAAC,MAAM,CACtD,qBAAqB,EACrB,gBAAgB,EAChB,OAAO,CACR,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,iDAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,MAAM,6BAAa,CAAC,MAAM,CAC9C,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,CACR,CAAC;IACF,MAAM,uBAAuB,GAC3B,MAAM,yDAA2B,CAAC,eAAe,CAC/C,2BAA2B,EAC3B,oBAAoB,EACpB,OAAO,CACR,CAAC;IACJ,MAAM,qBAAqB,GAAG,MAAM,qDAAyB,CAAC,eAAe,CAC3E,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,IAAI,IAAI,EAC9B,OAAO,CACR,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,qBAAqB,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,IAAI,uCAAkB,CACzC,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,OAAO,CACR,CAAC;IACF,OAAO;QACL,gBAAgB;QAChB,qBAAqB;QACrB,iBAAiB;QACjB,iBAAiB;QACjB,aAAa;QACb,uBAAuB;QACvB,YAAY;QACZ,cAAc;QACd,oBAAoB;KACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"DonobuStack.js","sourceRoot":"","sources":["../../src/managers/DonobuStack.ts"],"names":[],"mappings":";;AA2CA,4CAyEC;AAnHD,kEAAmE;AACnE,wCAAiC;AAIjC,2FAAwF;AACxF,kEAAwE;AACxE,4FAAyF;AAGzF,kGAA+F;AAE/F,uGAAoG;AACpG,mDAAgD;AAChD,6DAA0D;AAC1D,qDAAkD;AAClD,2DAAwD;AACxD,iEAA8D;AAc9D;;;;;;;;;;GAUG;AACI,KAAK,UAAU,gBAAgB,CACpC,2BAAwD,EACxD,mBAAwC,EACxC,sBAA+C,EAC/C,OAAO,GAAG,aAAG,CAAC,IAAI,CAChB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,8BAA8B,EAC9B,iCAAiC,EACjC,6BAA6B,EAC7B,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,CAC1B;IAED,MAAM,gBAAgB,GAAG,IAAI,uCAAoB,EAAE,CAAC;IACpD,MAAM,oBAAoB,GAAG,IAAI,2CAAoB,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAuB,GAAE,CAAC;IACjD,MAAM,qBAAqB,GACzB,MAAM,yDAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,MAAM,qCAAiB,CAAC,MAAM,CACtD,qBAAqB,EACrB,gBAAgB,CACjB,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,iDAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,MAAM,6BAAa,CAAC,MAAM,CAC9C,iBAAiB,EACjB,iBAAiB,CAClB,CAAC;IACF,MAAM,uBAAuB,GAC3B,MAAM,yDAA2B,CAAC,eAAe,CAC/C,2BAA2B,EAC3B,oBAAoB,EACpB,OAAO,CACR,CAAC;IACJ,MAAM,qBAAqB,GAAG,MAAM,qDAAyB,CAAC,eAAe,CAC3E,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,IAAI,IAAI,EAC9B,OAAO,CACR,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,qBAAqB,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,IAAI,uCAAkB,CACzC,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,OAAO,CACR,CAAC;IACF,OAAO;QACL,gBAAgB;QAChB,qBAAqB;QACrB,iBAAiB;QACjB,iBAAiB;QACjB,aAAa;QACb,uBAAuB;QACvB,YAAY;QACZ,cAAc;QACd,oBAAoB;KACrB,CAAC;AACJ,CAAC"}
@@ -42,6 +42,17 @@ export declare class EnvDataManager {
42
42
  * @returns A record of all environment data where keys are datum keys and values are datum values
43
43
  */
44
44
  getEnvironmentData(): Promise<Record<string, string>>;
45
+ /**
46
+ * Returns a dictionary of environment variable values for the provided names.
47
+ * Missing variables are simply omitted so callers can pass optional names
48
+ * without extra guards. Used by flows to hydrate runtime env data from the
49
+ * persisted allow-list.
50
+ *
51
+ * @example
52
+ * await getByNames(["API_KEY", "BASE_URL", "MISSING_VAR"]);
53
+ * // => { API_KEY: "abc123", BASE_URL: "https://example.com" }
54
+ */
55
+ getByNames(envVarNames: string[]): Promise<Record<string, string>>;
45
56
  /**
46
57
  * Validates an environment data key against business rules.
47
58
  *
@@ -1 +1 @@
1
- {"version":3,"file":"EnvDataManager.d.ts","sourceRoot":"","sources":["../../src/managers/EnvDataManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAGtF;;GAEG;AACH,qBAAa,cAAc;IAYvB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;aACtB,YAAY,EAAE,MAAM;aACpB,cAAc,EAAE,MAAM;IAbxC;;OAEG;IACH,gBAAuB,sBAAsB,OAAO;IAEpD;;OAEG;IACH,gBAAuB,wBAAwB,SAAe;gBAG3C,qBAAqB,EAAE,qBAAqB,EAC7C,YAAY,GAAE,MAA8C,EAC5D,cAAc,GAAE,MAAgD;IAGlF;;;;;;OAMG;IACU,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3E;;;;OAIG;IACU,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D;;;;;OAKG;IACU,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAuB1E;;;;OAIG;IACU,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAyBlE;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAKtB"}
1
+ {"version":3,"file":"EnvDataManager.d.ts","sourceRoot":"","sources":["../../src/managers/EnvDataManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAGtF;;GAEG;AACH,qBAAa,cAAc;IAYvB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;aACtB,YAAY,EAAE,MAAM;aACpB,cAAc,EAAE,MAAM;IAbxC;;OAEG;IACH,gBAAuB,sBAAsB,OAAO;IAEpD;;OAEG;IACH,gBAAuB,wBAAwB,SAAe;gBAG3C,qBAAqB,EAAE,qBAAqB,EAC7C,YAAY,GAAE,MAA8C,EAC5D,cAAc,GAAE,MAAgD;IAGlF;;;;;;OAMG;IACU,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3E;;;;OAIG;IACU,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D;;;;;OAKG;IACU,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAuB1E;;;;OAIG;IACU,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAyBlE;;;;;;;;;OASG;IACU,UAAU,CACrB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAalC;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAKtB"}
@@ -87,6 +87,26 @@ class EnvDataManager {
87
87
  }
88
88
  return result;
89
89
  }
90
+ /**
91
+ * Returns a dictionary of environment variable values for the provided names.
92
+ * Missing variables are simply omitted so callers can pass optional names
93
+ * without extra guards. Used by flows to hydrate runtime env data from the
94
+ * persisted allow-list.
95
+ *
96
+ * @example
97
+ * await getByNames(["API_KEY", "BASE_URL", "MISSING_VAR"]);
98
+ * // => { API_KEY: "abc123", BASE_URL: "https://example.com" }
99
+ */
100
+ async getByNames(envVarNames) {
101
+ const result = {};
102
+ for (const envVarName of envVarNames) {
103
+ const envVarValue = await this.getEnvironmentDatum(envVarName);
104
+ if (envVarValue) {
105
+ result[envVarName] = envVarValue;
106
+ }
107
+ }
108
+ return result;
109
+ }
90
110
  /**
91
111
  * Validates an environment data key against business rules.
92
112
  *
@@ -1 +1 @@
1
- {"version":3,"file":"EnvDataManager.js","sourceRoot":"","sources":["../../src/managers/EnvDataManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EnvDataManager.js","sourceRoot":"","sources":["../../src/managers/EnvDataManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { BrowserStorageState } from '../models/BrowserStorageState';
2
+ import type { DonobuDeploymentEnvironment } from '../models/DonobuDeploymentEnvironment';
3
+ import type { FlowMetadata, FlowsQuery } from '../models/FlowMetadata';
4
+ import type { PaginatedResult } from '../models/PaginatedResult';
5
+ import type { ToolCall } from '../models/ToolCall';
6
+ import type { FlowsPersistenceFactory } from '../persistence/flows/FlowsPersistenceFactory';
7
+ import type { FlowRuntime } from './FlowRuntime';
8
+ /**
9
+ * Centralized access layer for flow metadata, tool calls, and browser state.
10
+ *
11
+ * Responsibilities:
12
+ * - Prefer in-memory runtime state when running locally (so callers see live mutations)
13
+ * - Federate reads across all configured persistence layers with simple pagination merge
14
+ * - Provide a single surface for flow metadata, tool call history, browser state, and deletes
15
+ */
16
+ export declare class FlowCatalog {
17
+ private readonly flowsPersistenceFactory;
18
+ private readonly flowRuntime;
19
+ private readonly deploymentEnvironment;
20
+ constructor(flowsPersistenceFactory: FlowsPersistenceFactory, flowRuntime: FlowRuntime, deploymentEnvironment: DonobuDeploymentEnvironment);
21
+ getFlowById(flowId: string): Promise<FlowMetadata>;
22
+ getFlowByName(flowName: string): Promise<FlowMetadata>;
23
+ getToolCalls(flowId: string): Promise<ToolCall[]>;
24
+ deleteFlow(flowId: string): Promise<void>;
25
+ getBrowserState(flowId: string): Promise<BrowserStorageState | null>;
26
+ getFlows(query: FlowsQuery): Promise<PaginatedResult<FlowMetadata>>;
27
+ private isLocal;
28
+ }
29
+ //# sourceMappingURL=FlowCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlowCatalog.d.ts","sourceRoot":"","sources":["../../src/managers/FlowCatalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQjD;;;;;;;GAOG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAFrB,uBAAuB,EAAE,uBAAuB,EAChD,WAAW,EAAE,WAAW,EACxB,qBAAqB,EAAE,2BAA2B;IAGxD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAqBlD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IActD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAwBjD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzC,eAAe,CAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAgBzB,QAAQ,CACnB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IA2DzC,OAAO,CAAC,OAAO;CAGhB"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FlowCatalog = void 0;
4
+ const FlowNotFoundException_1 = require("../exceptions/FlowNotFoundException");
5
+ /**
6
+ * Centralized access layer for flow metadata, tool calls, and browser state.
7
+ *
8
+ * Responsibilities:
9
+ * - Prefer in-memory runtime state when running locally (so callers see live mutations)
10
+ * - Federate reads across all configured persistence layers with simple pagination merge
11
+ * - Provide a single surface for flow metadata, tool call history, browser state, and deletes
12
+ */
13
+ class FlowCatalog {
14
+ constructor(flowsPersistenceFactory, flowRuntime, deploymentEnvironment) {
15
+ this.flowsPersistenceFactory = flowsPersistenceFactory;
16
+ this.flowRuntime = flowRuntime;
17
+ this.deploymentEnvironment = deploymentEnvironment;
18
+ }
19
+ async getFlowById(flowId) {
20
+ if (this.isLocal()) {
21
+ const activeMetadata = this.flowRuntime.metadataFor(flowId);
22
+ if (activeMetadata) {
23
+ return activeMetadata;
24
+ }
25
+ }
26
+ for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
27
+ try {
28
+ return await persistence.getFlowMetadataById(flowId);
29
+ }
30
+ catch (error) {
31
+ if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
32
+ throw error;
33
+ }
34
+ }
35
+ }
36
+ throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
37
+ }
38
+ async getFlowByName(flowName) {
39
+ for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
40
+ try {
41
+ return await persistence.getFlowMetadataByName(flowName);
42
+ }
43
+ catch (error) {
44
+ if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
45
+ throw error;
46
+ }
47
+ }
48
+ }
49
+ throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
50
+ }
51
+ async getToolCalls(flowId) {
52
+ if (this.isLocal()) {
53
+ const activeHandle = this.flowRuntime.get(flowId);
54
+ if (activeHandle) {
55
+ return [...activeHandle.donobuFlow.invokedToolCalls].sort((a, b) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime());
56
+ }
57
+ }
58
+ for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
59
+ try {
60
+ return await persistence.getToolCalls(flowId);
61
+ }
62
+ catch (error) {
63
+ if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
64
+ throw error;
65
+ }
66
+ }
67
+ }
68
+ throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
69
+ }
70
+ async deleteFlow(flowId) {
71
+ for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
72
+ await persistence.deleteFlow(flowId);
73
+ }
74
+ }
75
+ async getBrowserState(flowId) {
76
+ for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
77
+ try {
78
+ const browserState = await persistence.getBrowserState(flowId);
79
+ if (browserState) {
80
+ return browserState;
81
+ }
82
+ }
83
+ catch (error) {
84
+ if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
85
+ throw error;
86
+ }
87
+ }
88
+ }
89
+ return null;
90
+ }
91
+ async getFlows(query) {
92
+ const paginationState = parseCompositePageToken(query.pageToken);
93
+ const requestedLimit = Math.min(Math.max(1, query.limit || 100), 100);
94
+ const combinedResults = [];
95
+ const persistenceLayers = await this.flowsPersistenceFactory.createPersistenceLayers();
96
+ for (let i = 0; i < persistenceLayers.length; i++) {
97
+ if (paginationState.exhaustedSources.includes(i)) {
98
+ continue;
99
+ }
100
+ const sourceLimit = Math.min(requestedLimit * 2, 100);
101
+ const sourceQuery = {
102
+ ...query,
103
+ limit: sourceLimit,
104
+ pageToken: paginationState.sourceTokens[i],
105
+ };
106
+ const sourceResult = await persistenceLayers[i].getFlowsMetadata(sourceQuery);
107
+ const itemsWithSource = sourceResult.items.map((flow) => ({
108
+ flow,
109
+ sourceIndex: i,
110
+ }));
111
+ combinedResults.push(...itemsWithSource);
112
+ if (sourceResult.nextPageToken) {
113
+ paginationState.sourceTokens[i] = sourceResult.nextPageToken;
114
+ }
115
+ else {
116
+ paginationState.exhaustedSources.push(i);
117
+ }
118
+ }
119
+ combinedResults.sort((a, b) => (b.flow.startedAt || 0) - (a.flow.startedAt || 0));
120
+ const limitedResults = combinedResults.slice(0, requestedLimit);
121
+ const lastTimestamp = limitedResults.length > 0
122
+ ? limitedResults[limitedResults.length - 1].flow.startedAt
123
+ : null;
124
+ paginationState.cursorTimestamp = lastTimestamp;
125
+ const hasMore = combinedResults.length > requestedLimit ||
126
+ paginationState.exhaustedSources.length < persistenceLayers.length;
127
+ return {
128
+ items: limitedResults.map((item) => item.flow),
129
+ nextPageToken: hasMore
130
+ ? createCompositePageToken(paginationState)
131
+ : undefined,
132
+ };
133
+ }
134
+ isLocal() {
135
+ return this.deploymentEnvironment === 'LOCAL';
136
+ }
137
+ }
138
+ exports.FlowCatalog = FlowCatalog;
139
+ function createCompositePageToken(state) {
140
+ return Buffer.from(JSON.stringify(state)).toString('base64');
141
+ }
142
+ function parseCompositePageToken(token) {
143
+ if (!token) {
144
+ return { sourceTokens: {}, exhaustedSources: [], cursorTimestamp: null };
145
+ }
146
+ try {
147
+ return JSON.parse(Buffer.from(token, 'base64').toString());
148
+ }
149
+ catch (_error) {
150
+ return { sourceTokens: {}, exhaustedSources: [], cursorTimestamp: null };
151
+ }
152
+ }
153
+ //# sourceMappingURL=FlowCatalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlowCatalog.js","sourceRoot":"","sources":["../../src/managers/FlowCatalog.ts"],"names":[],"mappings":";;;AAAA,+EAA4E;AAe5E;;;;;;;GAOG;AACH,MAAa,WAAW;IACtB,YACmB,uBAAgD,EAChD,WAAwB,EACxB,qBAAkD;QAFlD,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,gBAAW,GAAX,WAAW,CAAa;QACxB,0BAAqB,GAArB,qBAAqB,CAA6B;IAClE,CAAC;IAEG,KAAK,CAAC,WAAW,CAAC,MAAc;QACrC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACnB,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,cAAc,CAAC;YACxB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,MAAM,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACvF,IAAI,CAAC;gBACH,OAAO,MAAM,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACvD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,6CAAqB,CAAC,EAAE,CAAC;oBAC9C,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,6CAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,QAAgB;QACzC,KAAK,MAAM,WAAW,IAAI,MAAM,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACvF,IAAI,CAAC;gBACH,OAAO,MAAM,WAAW,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,6CAAqB,CAAC,EAAE,CAAC;oBAC9C,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,6CAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,MAAc;QACtC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACvD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CACpE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,MAAM,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACvF,IAAI,CAAC;gBACH,OAAO,MAAM,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,6CAAqB,CAAC,EAAE,CAAC;oBAC9C,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,6CAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,MAAc;QACpC,KAAK,MAAM,WAAW,IAAI,MAAM,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACvF,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,eAAe,CAC1B,MAAc;QAEd,KAAK,MAAM,WAAW,IAAI,MAAM,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACvF,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC/D,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,YAAY,CAAC;gBACtB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,6CAAqB,CAAC,EAAE,CAAC;oBAC9C,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,KAAiB;QAEjB,MAAM,eAAe,GAAG,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAEtE,MAAM,eAAe,GAAkD,EAAE,CAAC;QAC1E,MAAM,iBAAiB,GACrB,MAAM,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,CAAC;QAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,SAAS;YACX,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG;gBAClB,GAAG,KAAK;gBACR,KAAK,EAAE,WAAW;gBAClB,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;aAC3C,CAAC;YAEF,MAAM,YAAY,GAChB,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC3D,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxD,IAAI;gBACJ,WAAW,EAAE,CAAC;aACf,CAAC,CAAC,CAAC;YAEJ,eAAe,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;YAEzC,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;gBAC/B,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,eAAe,CAAC,IAAI,CAClB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAC5D,CAAC;QACF,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,aAAa,GACjB,cAAc,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;YAC1D,CAAC,CAAC,IAAI,CAAC;QAEX,eAAe,CAAC,eAAe,GAAG,aAAa,CAAC;QAEhD,MAAM,OAAO,GACX,eAAe,CAAC,MAAM,GAAG,cAAc;YACvC,eAAe,CAAC,gBAAgB,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAErE,OAAO;YACL,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,aAAa,EAAE,OAAO;gBACpB,CAAC,CAAC,wBAAwB,CAAC,eAAe,CAAC;gBAC3C,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAEO,OAAO;QACb,OAAO,IAAI,CAAC,qBAAqB,KAAK,OAAO,CAAC;IAChD,CAAC;CACF;AA1JD,kCA0JC;AAED,SAAS,wBAAwB,CAAC,KAA+B;IAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CACf,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CACZ,CAAC;IAChC,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IAC3E,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { FlowCatalog } from './FlowCatalog';
2
+ /**
3
+ * Resolves flow dependencies (for example, browser state references) across persistence layers.
4
+ *
5
+ * Given a set of root flow IDs, this helper discovers transitive dependencies
6
+ * by following `browser.initialState` references (by ID or name) and returns a
7
+ * breadth-first ordered list of all flows that must be present to replay the
8
+ * graph. It defers retrieval and error handling to FlowCatalog, so it stays
9
+ * agnostic of storage concerns.
10
+ */
11
+ export declare class FlowDependencyResolver {
12
+ private readonly flowCatalog;
13
+ constructor(flowCatalog: FlowCatalog);
14
+ resolveFlowDependencies(initialFlowIds: string[]): Promise<string[]>;
15
+ private shouldReplaceFlowMapping;
16
+ private extractFlowDependencies;
17
+ private resolveIdReference;
18
+ private resolveNameReference;
19
+ }
20
+ //# sourceMappingURL=FlowDependencyResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlowDependencyResolver.d.ts","sourceRoot":"","sources":["../../src/managers/FlowDependencyResolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD;;;;;;;;GAQG;AACH,qBAAa,sBAAsB;IACd,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAE/C,uBAAuB,CAClC,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC;YA4CN,wBAAwB;YAaxB,uBAAuB;YAqBvB,kBAAkB;YAWlB,oBAAoB;CAoBnC"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FlowDependencyResolver = void 0;
4
+ const FlowDependencyAnalyzer_1 = require("./FlowDependencyAnalyzer");
5
+ /**
6
+ * Resolves flow dependencies (for example, browser state references) across persistence layers.
7
+ *
8
+ * Given a set of root flow IDs, this helper discovers transitive dependencies
9
+ * by following `browser.initialState` references (by ID or name) and returns a
10
+ * breadth-first ordered list of all flows that must be present to replay the
11
+ * graph. It defers retrieval and error handling to FlowCatalog, so it stays
12
+ * agnostic of storage concerns.
13
+ */
14
+ class FlowDependencyResolver {
15
+ constructor(flowCatalog) {
16
+ this.flowCatalog = flowCatalog;
17
+ }
18
+ async resolveFlowDependencies(initialFlowIds) {
19
+ const resolvedFlowIds = new Set();
20
+ const flowsToProcess = [...initialFlowIds];
21
+ const nameToIdMap = new Map();
22
+ while (flowsToProcess.length > 0) {
23
+ const currentFlowId = flowsToProcess.shift();
24
+ if (resolvedFlowIds.has(currentFlowId)) {
25
+ continue;
26
+ }
27
+ try {
28
+ const flowMetadata = await this.flowCatalog.getFlowById(currentFlowId);
29
+ resolvedFlowIds.add(currentFlowId);
30
+ if (flowMetadata.name) {
31
+ const existingFlowId = nameToIdMap.get(flowMetadata.name);
32
+ if (!existingFlowId ||
33
+ (await this.shouldReplaceFlowMapping(existingFlowId, currentFlowId))) {
34
+ nameToIdMap.set(flowMetadata.name, currentFlowId);
35
+ }
36
+ }
37
+ const dependencies = await this.extractFlowDependencies(flowMetadata, nameToIdMap);
38
+ dependencies.forEach((depId) => {
39
+ if (!resolvedFlowIds.has(depId)) {
40
+ flowsToProcess.push(depId);
41
+ }
42
+ });
43
+ }
44
+ catch (_error) {
45
+ // Skip missing flows but continue resolving others.
46
+ }
47
+ }
48
+ return Array.from(resolvedFlowIds);
49
+ }
50
+ async shouldReplaceFlowMapping(existingFlowId, newFlowId) {
51
+ try {
52
+ const existingFlow = await this.flowCatalog.getFlowById(existingFlowId);
53
+ const newFlow = await this.flowCatalog.getFlowById(newFlowId);
54
+ return FlowDependencyAnalyzer_1.FlowDependencyAnalyzer.shouldReplaceFlow(existingFlow, newFlow);
55
+ }
56
+ catch (_error) {
57
+ return true;
58
+ }
59
+ }
60
+ async extractFlowDependencies(flow, nameToIdMap) {
61
+ const initialState = flow.browser?.initialState;
62
+ if (!initialState) {
63
+ return [];
64
+ }
65
+ switch (initialState.type) {
66
+ case 'id':
67
+ return this.resolveIdReference(initialState);
68
+ case 'name':
69
+ return this.resolveNameReference(initialState, nameToIdMap);
70
+ case 'json':
71
+ return [];
72
+ default:
73
+ return [];
74
+ }
75
+ }
76
+ async resolveIdReference(initialState) {
77
+ try {
78
+ await this.flowCatalog.getFlowById(initialState.value);
79
+ return [initialState.value];
80
+ }
81
+ catch (_error) {
82
+ return [];
83
+ }
84
+ }
85
+ async resolveNameReference(initialState, nameToIdMap) {
86
+ const cachedFlowId = nameToIdMap.get(initialState.value);
87
+ if (cachedFlowId) {
88
+ return [cachedFlowId];
89
+ }
90
+ try {
91
+ const dependentFlow = await this.flowCatalog.getFlowByName(initialState.value);
92
+ nameToIdMap.set(initialState.value, dependentFlow.id);
93
+ return [dependentFlow.id];
94
+ }
95
+ catch (_error) {
96
+ return [];
97
+ }
98
+ }
99
+ }
100
+ exports.FlowDependencyResolver = FlowDependencyResolver;
101
+ //# sourceMappingURL=FlowDependencyResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlowDependencyResolver.js","sourceRoot":"","sources":["../../src/managers/FlowDependencyResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { FlowHandle } from '../models/FlowHandle';
2
+ import type { FlowMetadata } from '../models/FlowMetadata';
3
+ /**
4
+ * Tracks active Donobu flows and their associated metadata.
5
+ *
6
+ * This class is intentionally tiny: it is the single source of truth for
7
+ * in-memory flow state so consumers don't need to juggle multiple maps or
8
+ * embed lifecycle bookkeeping in higher-level managers.
9
+ */
10
+ export declare class FlowRuntime {
11
+ private readonly activeFlows;
12
+ register(flowHandle: FlowHandle): void;
13
+ get(flowId: string): FlowHandle | undefined;
14
+ remove(flowId: string): void;
15
+ metadataFor(flowId: string): FlowMetadata | undefined;
16
+ handles(): Iterable<FlowHandle>;
17
+ }
18
+ //# sourceMappingURL=FlowRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlowRuntime.d.ts","sourceRoot":"","sources":["../../src/managers/FlowRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAE3D,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAItC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI3C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAKrD,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC;CAGvC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FlowRuntime = void 0;
4
+ /**
5
+ * Tracks active Donobu flows and their associated metadata.
6
+ *
7
+ * This class is intentionally tiny: it is the single source of truth for
8
+ * in-memory flow state so consumers don't need to juggle multiple maps or
9
+ * embed lifecycle bookkeeping in higher-level managers.
10
+ */
11
+ class FlowRuntime {
12
+ constructor() {
13
+ this.activeFlows = new Map();
14
+ }
15
+ register(flowHandle) {
16
+ this.activeFlows.set(flowHandle.donobuFlow.metadata.id, flowHandle);
17
+ }
18
+ get(flowId) {
19
+ return this.activeFlows.get(flowId);
20
+ }
21
+ remove(flowId) {
22
+ this.activeFlows.delete(flowId);
23
+ }
24
+ metadataFor(flowId) {
25
+ const handle = this.activeFlows.get(flowId);
26
+ return handle?.donobuFlow.metadata;
27
+ }
28
+ handles() {
29
+ return this.activeFlows.values();
30
+ }
31
+ }
32
+ exports.FlowRuntime = FlowRuntime;
33
+ //# sourceMappingURL=FlowRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlowRuntime.js","sourceRoot":"","sources":["../../src/managers/FlowRuntime.ts"],"names":[],"mappings":";;;AAGA;;;;;;GAMG;AACH,MAAa,WAAW;IAAxB;QACmB,gBAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;IAsBpE,CAAC;IApBQ,QAAQ,CAAC,UAAsB;QACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;IAEM,GAAG,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,MAAc;QAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAEM,WAAW,CAAC,MAAc;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC;IACrC,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;CACF;AAvBD,kCAuBC"}
@@ -1,6 +1,4 @@
1
- import type { EnvPick } from 'env-struct';
2
1
  import type { GptClientFactory } from '../clients/GptClientFactory';
3
- import type { env } from '../envVars';
4
2
  import type { GptConfig } from '../models/GptConfig';
5
3
  import type { GptConfigsPersistence } from '../persistence/gptconfigs/GptConfigsPersistence';
6
4
  /**
@@ -11,7 +9,7 @@ export declare class GptConfigsManager {
11
9
  private readonly persistence;
12
10
  private readonly gptClientFactory;
13
11
  private constructor();
14
- static create(persistence: GptConfigsPersistence, gptClientFactory: GptClientFactory, environ: EnvPick<typeof env, 'ANTHROPIC_API_KEY' | 'DONOBU_API_KEY' | 'GOOGLE_GENERATIVE_AI_API_KEY' | 'OPENAI_API_KEY'>): Promise<GptConfigsManager>;
12
+ static create(persistence: GptConfigsPersistence, gptClientFactory: GptClientFactory): Promise<GptConfigsManager>;
15
13
  /**
16
14
  * Attempt to save the given GPT config. Where possible, a zero-cost
17
15
  * request is attempted to be made with the GPT config before saving it.
@@ -34,10 +32,5 @@ export declare class GptConfigsManager {
34
32
  * Verifies the given GPT config and name or throws if they are invalid.
35
33
  */
36
34
  private verifyGptConfigOrThrow;
37
- /**
38
- * Inspects environment variables and legacy GPT platform keys files to
39
- * initialize default GPT configurations.
40
- */
41
- private initializeDefaultConfigurations;
42
35
  }
43
36
  //# sourceMappingURL=GptConfigsManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GptConfigsManager.d.ts","sourceRoot":"","sources":["../../src/managers/GptConfigsManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAK1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAI7F;;;GAGG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAFnC,OAAO;WAKa,MAAM,CACxB,WAAW,EAAE,qBAAqB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,CACd,OAAO,GAAG,EACR,mBAAmB,GACnB,gBAAgB,GAChB,8BAA8B,GAC9B,gBAAgB,CACnB,GACA,OAAO,CAAC,iBAAiB,CAAC;IAM7B;;;;OAIG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE;;OAEG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIlD;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAItD;;OAEG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;OAEG;YACW,sBAAsB;IASpC;;;OAGG;YACW,+BAA+B;CAuK9C"}
1
+ {"version":3,"file":"GptConfigsManager.d.ts","sourceRoot":"","sources":["../../src/managers/GptConfigsManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAE7F;;;GAGG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAFnC,OAAO;WAKa,MAAM,CACxB,WAAW,EAAE,qBAAqB,EAClC,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,iBAAiB,CAAC;IAK7B;;;;OAIG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE;;OAEG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIlD;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAItD;;OAEG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;OAEG;YACW,sBAAsB;CAQrC"}