donobu 2.46.1 → 2.46.4

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 (173) hide show
  1. package/dist/assets/generated/version +1 -1
  2. package/dist/envVars.d.ts +140 -57
  3. package/dist/envVars.d.ts.map +1 -1
  4. package/dist/envVars.js +42 -55
  5. package/dist/envVars.js.map +1 -1
  6. package/dist/esm/assets/generated/version +1 -1
  7. package/dist/esm/envVars.d.ts +140 -57
  8. package/dist/esm/envVars.d.ts.map +1 -1
  9. package/dist/esm/envVars.js +42 -55
  10. package/dist/esm/envVars.js.map +1 -1
  11. package/dist/esm/lib/DonobuExtendedPage.d.ts +12 -10
  12. package/dist/esm/lib/DonobuExtendedPage.d.ts.map +1 -1
  13. package/dist/esm/lib/PageAi.d.ts +103 -77
  14. package/dist/esm/lib/PageAi.d.ts.map +1 -1
  15. package/dist/esm/lib/PageAi.js +152 -272
  16. package/dist/esm/lib/PageAi.js.map +1 -1
  17. package/dist/esm/lib/fixtures/gptClients.d.ts +33 -5
  18. package/dist/esm/lib/fixtures/gptClients.d.ts.map +1 -1
  19. package/dist/esm/lib/fixtures/gptClients.js +38 -35
  20. package/dist/esm/lib/fixtures/gptClients.js.map +1 -1
  21. package/dist/esm/lib/originalGotoRegistry.d.ts +5 -0
  22. package/dist/esm/lib/originalGotoRegistry.d.ts.map +1 -0
  23. package/dist/esm/lib/originalGotoRegistry.js +30 -0
  24. package/dist/esm/lib/originalGotoRegistry.js.map +1 -0
  25. package/dist/esm/lib/pageAi/cache.d.ts +84 -0
  26. package/dist/esm/lib/pageAi/cache.d.ts.map +1 -0
  27. package/dist/esm/lib/pageAi/cache.js +207 -0
  28. package/dist/esm/lib/pageAi/cache.js.map +1 -0
  29. package/dist/esm/lib/pageAi/cacheEntryBuilder.d.ts +17 -0
  30. package/dist/esm/lib/pageAi/cacheEntryBuilder.d.ts.map +1 -0
  31. package/dist/esm/lib/pageAi/cacheEntryBuilder.js +25 -0
  32. package/dist/esm/lib/pageAi/cacheEntryBuilder.js.map +1 -0
  33. package/dist/esm/lib/testExtension.d.ts.map +1 -1
  34. package/dist/esm/lib/testExtension.js +288 -286
  35. package/dist/esm/lib/testExtension.js.map +1 -1
  36. package/dist/esm/lib/utils/donobuTestStack.d.ts +18 -1
  37. package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -1
  38. package/dist/esm/lib/utils/donobuTestStack.js +3 -3
  39. package/dist/esm/lib/utils/donobuTestStack.js.map +1 -1
  40. package/dist/esm/lib/utils/selfHealing.js +2 -2
  41. package/dist/esm/lib/utils/selfHealing.js.map +1 -1
  42. package/dist/esm/main.d.ts.map +1 -1
  43. package/dist/esm/main.js +1 -9
  44. package/dist/esm/main.js.map +1 -1
  45. package/dist/esm/managers/AdminApiController.d.ts +3 -1
  46. package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
  47. package/dist/esm/managers/AdminApiController.js +8 -13
  48. package/dist/esm/managers/AdminApiController.js.map +1 -1
  49. package/dist/esm/managers/AgentsManager.d.ts +3 -1
  50. package/dist/esm/managers/AgentsManager.d.ts.map +1 -1
  51. package/dist/esm/managers/AgentsManager.js +4 -5
  52. package/dist/esm/managers/AgentsManager.js.map +1 -1
  53. package/dist/esm/managers/CodeGenerator.d.ts +8 -0
  54. package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
  55. package/dist/esm/managers/CodeGenerator.js +104 -1
  56. package/dist/esm/managers/CodeGenerator.js.map +1 -1
  57. package/dist/esm/managers/DonobuFlowsManager.d.ts +4 -1
  58. package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
  59. package/dist/esm/managers/DonobuFlowsManager.js +24 -25
  60. package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
  61. package/dist/esm/managers/DonobuStack.d.ts +18 -1
  62. package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
  63. package/dist/esm/managers/DonobuStack.js +7 -6
  64. package/dist/esm/managers/DonobuStack.js.map +1 -1
  65. package/dist/esm/managers/GptConfigsManager.d.ts +3 -1
  66. package/dist/esm/managers/GptConfigsManager.d.ts.map +1 -1
  67. package/dist/esm/managers/GptConfigsManager.js +6 -7
  68. package/dist/esm/managers/GptConfigsManager.js.map +1 -1
  69. package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
  70. package/dist/esm/managers/InteractionVisualizer.js +25 -3
  71. package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
  72. package/dist/esm/models/DonobuDeploymentEnvironment.d.ts +7 -5
  73. package/dist/esm/models/DonobuDeploymentEnvironment.d.ts.map +1 -1
  74. package/dist/esm/models/DonobuDeploymentEnvironment.js +7 -7
  75. package/dist/esm/models/DonobuDeploymentEnvironment.js.map +1 -1
  76. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts +5 -3
  77. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -1
  78. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js +11 -15
  79. package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -1
  80. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +6 -4
  81. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -1
  82. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js +14 -19
  83. package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -1
  84. package/dist/esm/utils/BrowserUtils.d.ts +6 -1
  85. package/dist/esm/utils/BrowserUtils.d.ts.map +1 -1
  86. package/dist/esm/utils/BrowserUtils.js +19 -19
  87. package/dist/esm/utils/BrowserUtils.js.map +1 -1
  88. package/dist/esm/utils/MiscUtils.d.ts +5 -1
  89. package/dist/esm/utils/MiscUtils.d.ts.map +1 -1
  90. package/dist/esm/utils/MiscUtils.js +4 -4
  91. package/dist/esm/utils/MiscUtils.js.map +1 -1
  92. package/dist/lib/DonobuExtendedPage.d.ts +12 -10
  93. package/dist/lib/DonobuExtendedPage.d.ts.map +1 -1
  94. package/dist/lib/PageAi.d.ts +103 -77
  95. package/dist/lib/PageAi.d.ts.map +1 -1
  96. package/dist/lib/PageAi.js +152 -272
  97. package/dist/lib/PageAi.js.map +1 -1
  98. package/dist/lib/fixtures/gptClients.d.ts +33 -5
  99. package/dist/lib/fixtures/gptClients.d.ts.map +1 -1
  100. package/dist/lib/fixtures/gptClients.js +38 -35
  101. package/dist/lib/fixtures/gptClients.js.map +1 -1
  102. package/dist/lib/originalGotoRegistry.d.ts +5 -0
  103. package/dist/lib/originalGotoRegistry.d.ts.map +1 -0
  104. package/dist/lib/originalGotoRegistry.js +30 -0
  105. package/dist/lib/originalGotoRegistry.js.map +1 -0
  106. package/dist/lib/pageAi/cache.d.ts +84 -0
  107. package/dist/lib/pageAi/cache.d.ts.map +1 -0
  108. package/dist/lib/pageAi/cache.js +207 -0
  109. package/dist/lib/pageAi/cache.js.map +1 -0
  110. package/dist/lib/pageAi/cacheEntryBuilder.d.ts +17 -0
  111. package/dist/lib/pageAi/cacheEntryBuilder.d.ts.map +1 -0
  112. package/dist/lib/pageAi/cacheEntryBuilder.js +25 -0
  113. package/dist/lib/pageAi/cacheEntryBuilder.js.map +1 -0
  114. package/dist/lib/testExtension.d.ts.map +1 -1
  115. package/dist/lib/testExtension.js +288 -286
  116. package/dist/lib/testExtension.js.map +1 -1
  117. package/dist/lib/utils/donobuTestStack.d.ts +18 -1
  118. package/dist/lib/utils/donobuTestStack.d.ts.map +1 -1
  119. package/dist/lib/utils/donobuTestStack.js +3 -3
  120. package/dist/lib/utils/donobuTestStack.js.map +1 -1
  121. package/dist/lib/utils/selfHealing.js +2 -2
  122. package/dist/lib/utils/selfHealing.js.map +1 -1
  123. package/dist/main.d.ts.map +1 -1
  124. package/dist/main.js +1 -9
  125. package/dist/main.js.map +1 -1
  126. package/dist/managers/AdminApiController.d.ts +3 -1
  127. package/dist/managers/AdminApiController.d.ts.map +1 -1
  128. package/dist/managers/AdminApiController.js +8 -13
  129. package/dist/managers/AdminApiController.js.map +1 -1
  130. package/dist/managers/AgentsManager.d.ts +3 -1
  131. package/dist/managers/AgentsManager.d.ts.map +1 -1
  132. package/dist/managers/AgentsManager.js +4 -5
  133. package/dist/managers/AgentsManager.js.map +1 -1
  134. package/dist/managers/CodeGenerator.d.ts +8 -0
  135. package/dist/managers/CodeGenerator.d.ts.map +1 -1
  136. package/dist/managers/CodeGenerator.js +104 -1
  137. package/dist/managers/CodeGenerator.js.map +1 -1
  138. package/dist/managers/DonobuFlowsManager.d.ts +4 -1
  139. package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
  140. package/dist/managers/DonobuFlowsManager.js +24 -25
  141. package/dist/managers/DonobuFlowsManager.js.map +1 -1
  142. package/dist/managers/DonobuStack.d.ts +18 -1
  143. package/dist/managers/DonobuStack.d.ts.map +1 -1
  144. package/dist/managers/DonobuStack.js +7 -6
  145. package/dist/managers/DonobuStack.js.map +1 -1
  146. package/dist/managers/GptConfigsManager.d.ts +3 -1
  147. package/dist/managers/GptConfigsManager.d.ts.map +1 -1
  148. package/dist/managers/GptConfigsManager.js +6 -7
  149. package/dist/managers/GptConfigsManager.js.map +1 -1
  150. package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
  151. package/dist/managers/InteractionVisualizer.js +25 -3
  152. package/dist/managers/InteractionVisualizer.js.map +1 -1
  153. package/dist/models/DonobuDeploymentEnvironment.d.ts +7 -5
  154. package/dist/models/DonobuDeploymentEnvironment.d.ts.map +1 -1
  155. package/dist/models/DonobuDeploymentEnvironment.js +7 -7
  156. package/dist/models/DonobuDeploymentEnvironment.js.map +1 -1
  157. package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts +5 -3
  158. package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -1
  159. package/dist/persistence/env/EnvPersistenceFactoryImpl.js +11 -15
  160. package/dist/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -1
  161. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +6 -4
  162. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -1
  163. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js +14 -19
  164. package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -1
  165. package/dist/utils/BrowserUtils.d.ts +6 -1
  166. package/dist/utils/BrowserUtils.d.ts.map +1 -1
  167. package/dist/utils/BrowserUtils.js +19 -19
  168. package/dist/utils/BrowserUtils.js.map +1 -1
  169. package/dist/utils/MiscUtils.d.ts +5 -1
  170. package/dist/utils/MiscUtils.d.ts.map +1 -1
  171. package/dist/utils/MiscUtils.js +4 -4
  172. package/dist/utils/MiscUtils.js.map +1 -1
  173. package/package.json +2 -1
@@ -1,105 +1,114 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ENV = exports.ENV_NAMES = void 0;
3
+ exports.env = void 0;
4
+ const env_struct_1 = require("env-struct");
5
+ const v4_1 = require("zod/v4");
6
+ const DonobuDeploymentEnvironment_1 = require("./models/DonobuDeploymentEnvironment");
4
7
  /**
5
8
  * This is the set of environment variable (for the process) names that Donobu may use.
6
9
  * This should not be confused with the user-defined API-based environment variables
7
10
  * that may be used in a flow.
8
11
  */
9
- const ENV_VAR_LIST = [
12
+ exports.env = env_struct_1.Env.fromSchema({
13
+ /**
14
+ * Windows-specific roaming application data directory. This is typically set
15
+ * by the OS and used to derive platform default storage paths. This is
16
+ * ignored if BASE_WORKING_DIR is explicitly set.
17
+ */
18
+ APPDATA: v4_1.z.string().optional(),
10
19
  /**
11
20
  * Overrides the effective working/persistence directory.
12
21
  */
13
- 'BASE_WORKING_DIR',
22
+ BASE_WORKING_DIR: v4_1.z.string().optional(),
14
23
  /**
15
24
  * If specified, use this base-64 JSON GPT configuration for running flows.
16
25
  * This takes priority over all other GPT configuration options.
17
26
  */
18
- 'BASE64_GPT_CONFIG',
27
+ BASE64_GPT_CONFIG: v4_1.z.string().optional(),
19
28
  /**
20
29
  * The API key to use for the BrowserBase API.
21
30
  */
22
- 'BROWSERBASE_API_KEY',
31
+ BROWSERBASE_API_KEY: v4_1.z.string().optional(),
23
32
  /**
24
33
  * The project ID to use for the BrowserBase API.
25
34
  */
26
- 'BROWSERBASE_PROJECT_ID',
35
+ BROWSERBASE_PROJECT_ID: v4_1.z.string().optional(),
27
36
  /**
28
37
  * The deployment environment for this application.
29
38
  *
30
39
  * If this is set to "DONOBU_HOSTED_MULTI_TENANT" then the
31
40
  * SUPABASE_JWT_SECRET_KEY environment variable must also be set.
32
41
  */
33
- 'DONOBU_DEPLOYMENT_ENVIRONMENT',
42
+ DONOBU_DEPLOYMENT_ENVIRONMENT: DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironmentSchema.optional(),
34
43
  /**
35
44
  * Automatically create GPT configurations for Anthropic using this API key.
36
45
  * For convenience, the created configuration names will reflect the
37
46
  * underlying models they map to (ex: "claude-3-7-sonnet-latest", etc).
38
47
  */
39
- 'ANTHROPIC_API_KEY',
48
+ ANTHROPIC_API_KEY: v4_1.z.string().optional(),
40
49
  /**
41
50
  * If specified, this will shade the default flow runner agent when running
42
51
  * flows. If specified, ANTHROPIC_API_KEY must also be specified.
43
52
  */
44
- 'ANTHROPIC_MODEL_NAME',
53
+ ANTHROPIC_MODEL_NAME: v4_1.z.string().optional(),
45
54
  /**
46
55
  * Automatically create GPT configurations for Google Gemini using this API key.
47
56
  * For convenience, the created configuration names will reflect the
48
57
  * underlying models they map to (ex: "gemini-2.0-flash", etc).
49
58
  */
50
- 'GOOGLE_GENERATIVE_AI_API_KEY',
59
+ GOOGLE_GENERATIVE_AI_API_KEY: v4_1.z.string().optional(),
51
60
  /**
52
61
  * If specified, this will shade the default flow runner agent when running
53
62
  * flows. If specified, GOOGLE_GENERATIVE_AI_API_KEY must also be specified.
54
63
  */
55
- 'GOOGLE_GENERATIVE_AI_MODEL_NAME',
64
+ GOOGLE_GENERATIVE_AI_MODEL_NAME: v4_1.z.string().optional(),
56
65
  /**
57
66
  * Automatically create GPT configurations for OpenAI using this API key.
58
67
  * For convenience, the created configuration names will reflect the
59
68
  * underlying models they map to (ex: "gpt-4o", etc).
60
69
  */
61
- 'OPENAI_API_KEY',
70
+ OPENAI_API_KEY: v4_1.z.string().optional(),
62
71
  /**
63
72
  * If specified, this will shade the default flow runner agent when running
64
73
  * flows. If specified, OPENAI_API_KEY must also be specified.
65
74
  */
66
- 'OPENAI_API_MODEL_NAME',
75
+ OPENAI_API_MODEL_NAME: v4_1.z.string().optional(),
67
76
  /**
68
77
  * Automatically set the 'flow-runner' agent to use this GPT configuration by name.
69
78
  */
70
- 'DEFAULT_FLOW_RUNNER_GPT_CONFIG_NAME',
79
+ DEFAULT_FLOW_RUNNER_GPT_CONFIG_NAME: v4_1.z.string().optional(),
71
80
  /**
72
81
  * Directs Donobu flows to be persisted using this AWS S3 bucket. Takes
73
82
  * priority over GOOGLE_CLOUD_STORAGE_BUCKET being specified.
74
83
  */
75
- 'AWS_S3_BUCKET',
84
+ AWS_S3_BUCKET: v4_1.z.string().optional(),
76
85
  /**
77
86
  * The AWS S3 region the corresponding AWS_S3_BUCKET lives in. Fails over to
78
87
  * the AWS_REGION environment variable if not specified.
79
88
  */
80
- 'AWS_S3_REGION',
89
+ AWS_S3_REGION: v4_1.z.string().optional(),
81
90
  /**
82
91
  * If specified, this will shade the default flow runner agent when running
83
92
  * flows. If specified, AWS credentials must also be present.
84
93
  */
85
- 'AWS_BEDROCK_MODEL_NAME',
94
+ AWS_BEDROCK_MODEL_NAME: v4_1.z.string().optional(),
86
95
  /**
87
96
  * The AWS region to use for operations using the AWS SDK.
88
97
  */
89
- 'AWS_REGION',
98
+ AWS_REGION: v4_1.z.string().optional(),
90
99
  /**
91
100
  * The AWS access key ID to use for operations using the AWS SDK.
92
101
  */
93
- 'AWS_ACCESS_KEY_ID',
102
+ AWS_ACCESS_KEY_ID: v4_1.z.string().optional(),
94
103
  /**
95
104
  * The AWS access key to use for operations using the AWS SDK.
96
105
  */
97
- 'AWS_SECRET_ACCESS_KEY',
106
+ AWS_SECRET_ACCESS_KEY: v4_1.z.string().optional(),
98
107
  /**
99
108
  * Directs Donobu flows to be persisted using this Google Cloud Storage
100
109
  * bucket.
101
110
  */
102
- 'GOOGLE_CLOUD_STORAGE_BUCKET',
111
+ GOOGLE_CLOUD_STORAGE_BUCKET: v4_1.z.string().optional(),
103
112
  /**
104
113
  * Directs Donobu flows to be persisted using Supabase using this key.
105
114
  *
@@ -107,54 +116,32 @@ const ENV_VAR_LIST = [
107
116
  * DONOBU_DEPLOYMENT_ENVIRONMENT environment variable is set to
108
117
  * "DONOBU_HOSTED_MULTI_TENANT".
109
118
  */
110
- 'SUPABASE_JWT_SECRET_KEY',
119
+ SUPABASE_JWT_SECRET_KEY: v4_1.z.string().optional(),
111
120
  /**
112
121
  * If set to 'true', then Donobu will attempt to self-heal tests. This option
113
122
  * is only used when using Donobu as a library to run Playwright-based tests.
114
123
  */
115
- 'SELF_HEAL_TESTS_ENABLED',
124
+ SELF_HEAL_TESTS_ENABLED: v4_1.z.string().optional(),
116
125
  /**
117
126
  * Default URL for the browser proxy configuration. Only applies when running
118
127
  * flows using the 'device' type and a proxy URL is not otherwise specified.
119
128
  */
120
- 'PROXY_SERVER',
129
+ PROXY_SERVER: v4_1.z.string().optional(),
121
130
  /**
122
131
  * Default user name for the browser proxy configuration. Only applies when running
123
132
  * flows using the 'device' type and a proxy username is not otherwise specified.
124
133
  */
125
- 'PROXY_USERNAME',
134
+ PROXY_USERNAME: v4_1.z.string().optional(),
126
135
  /**
127
136
  * Default password for the browser proxy configuration. Only applies when running
128
137
  * flows using the 'device' type and a proxy password is not otherwise specified.
129
138
  */
130
- 'PROXY_PASSWORD',
131
- ];
132
- /**
133
- * Creates a frozen record that maps each literal in the env var list back to itself.
134
- * Consumers rely on this to keep compile-time and runtime views of env var names aligned.
135
- */
136
- const createEnvVarNames = (names) => {
137
- const result = {};
138
- for (const name of names) {
139
- const key = name;
140
- result[key] = key;
141
- }
142
- return Object.freeze(result);
143
- };
144
- /**
145
- * Creates an object with lazy getters that read from `process.env` using the provided key mapping.
146
- * Keeps `ENV` in sync with `ENV_VAR_NAMES` without repeating every accessor.
147
- */
148
- const createEnvAccessor = (names) => {
149
- const accessor = {};
150
- for (const key of Object.keys(names)) {
151
- Object.defineProperty(accessor, key, {
152
- enumerable: true,
153
- get: () => process.env[names[key]],
154
- });
155
- }
156
- return Object.freeze(accessor);
157
- };
158
- exports.ENV_NAMES = createEnvVarNames(ENV_VAR_LIST);
159
- exports.ENV = createEnvAccessor(exports.ENV_NAMES);
139
+ PROXY_PASSWORD: v4_1.z.string().optional(),
140
+ /**
141
+ * Linux-specific configuration directory root following the XDG Base
142
+ * Directory specification. Used to derive platform default storage paths.
143
+ * This is ignored if BASE_WORKING_DIR is explicitly set.
144
+ */
145
+ XDG_CONFIG_HOME: v4_1.z.string().optional(),
146
+ });
160
147
  //# sourceMappingURL=envVars.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"envVars.js","sourceRoot":"","sources":["../../src/envVars.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,MAAM,YAAY,GAAG;IACnB;;OAEG;IACH,kBAAkB;IAClB;;;OAGG;IACH,mBAAmB;IACnB;;OAEG;IACH,qBAAqB;IACrB;;OAEG;IACH,wBAAwB;IACxB;;;;;OAKG;IACH,+BAA+B;IAC/B;;;;OAIG;IACH,mBAAmB;IACnB;;;OAGG;IACH,sBAAsB;IACtB;;;;OAIG;IACH,8BAA8B;IAC9B;;;OAGG;IACH,iCAAiC;IACjC;;;;OAIG;IACH,gBAAgB;IAChB;;;OAGG;IACH,uBAAuB;IACvB;;OAEG;IACH,qCAAqC;IACrC;;;OAGG;IACH,eAAe;IACf;;;OAGG;IACH,eAAe;IACf;;;OAGG;IACH,wBAAwB;IACxB;;OAEG;IACH,YAAY;IACZ;;OAEG;IACH,mBAAmB;IACnB;;OAEG;IACH,uBAAuB;IACvB;;;OAGG;IACH,6BAA6B;IAC7B;;;;;;OAMG;IACH,yBAAyB;IACzB;;;OAGG;IACH,yBAAyB;IACzB;;;OAGG;IACH,cAAc;IACd;;;OAGG;IACH,gBAAgB;IAChB;;;OAGG;IACH,gBAAgB;CACR,CAAC;AAEX;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CACxB,KAAY,EAC2B,EAAE;IACzC,MAAM,MAAM,GAAG,EAAiC,CAAC;IAEjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAqB,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC,CAAC;AAOF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CACxB,KAAQ,EACgB,EAAE;IAC1B,MAAM,QAAQ,GAAG,EAA4B,CAAC;IAE9C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAmB,EAAE,CAAC;QACvD,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnC,UAAU,EAAE,IAAI;YAChB,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAGW,QAAA,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AAC5C,QAAA,GAAG,GAAG,iBAAiB,CAAC,iBAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"envVars.js","sourceRoot":"","sources":["../../src/envVars.ts"],"names":[],"mappings":";;;AAAA,2CAAiC;AACjC,+BAA2B;AAC3B,sFAAyF;AAEzF;;;;GAIG;AACU,QAAA,GAAG,GAAG,gBAAG,CAAC,UAAU,CAAC;IAChC;;;;OAIG;IACH,OAAO,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B;;OAEG;IACH,gBAAgB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC;;;OAGG;IACH,iBAAiB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC;;OAEG;IACH,mBAAmB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C;;OAEG;IACH,sBAAsB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C;;;;;OAKG;IACH,6BAA6B,EAAE,+DAAiC,CAAC,QAAQ,EAAE;IAC3E;;;;OAIG;IACH,iBAAiB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC;;;OAGG;IACH,oBAAoB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C;;;;OAIG;IACH,4BAA4B,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnD;;;OAGG;IACH,+BAA+B,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtD;;;;OAIG;IACH,cAAc,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC;;;OAGG;IACH,qBAAqB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C;;OAEG;IACH,mCAAmC,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1D;;;OAGG;IACH,aAAa,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC;;;OAGG;IACH,aAAa,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC;;;OAGG;IACH,sBAAsB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C;;OAEG;IACH,UAAU,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC;;OAEG;IACH,iBAAiB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC;;OAEG;IACH,qBAAqB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C;;;OAGG;IACH,2BAA2B,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClD;;;;;;OAMG;IACH,uBAAuB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9C;;;OAGG;IACH,uBAAuB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9C;;;OAGG;IACH,YAAY,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC;;;OAGG;IACH,cAAc,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC;;;OAGG;IACH,cAAc,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC;;;;OAIG;IACH,eAAe,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC"}
@@ -15,7 +15,9 @@ import { SelectorBasedSchema } from '../tools/ReplayableInteraction';
15
15
  import { z } from 'zod/v4';
16
16
  import { BrowserStorageState } from '../models/BrowserStorageState';
17
17
  import { SmartSelector } from './SmartSelector';
18
- import { PageAiOptions } from './PageAi';
18
+ import { PageAi, PageAiOptions } from './PageAi';
19
+ import { DonobuStack } from '../managers/DonobuStack';
20
+ import { FlowsPersistence } from '../persistence/flows/FlowsPersistence';
19
21
  export { PageAiOptions };
20
22
  /**
21
23
  * Extends the Page object with additional test-related methods.
@@ -57,7 +59,7 @@ export interface DonobuExtendedPage extends Page {
57
59
  * Checks all of the pages in the current browser context and returns the one
58
60
  * matching the given URL.
59
61
  */
60
- changeTab(url: string): Promise<Page>;
62
+ changeTab(url: string): Promise<DonobuExtendedPage>;
61
63
  /**
62
64
  * Choose <option> values for a particular <select> HTML element.
63
65
  */
@@ -125,13 +127,13 @@ export interface DonobuExtendedPage extends Page {
125
127
  * the current webpage.
126
128
  */
127
129
  visuallyAssert(params: z.infer<typeof AssertCoreSchema>, gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
128
- _donobuFlowMetadata: FlowMetadata;
129
- _originalGoto: Page['goto'];
130
- /**
131
- * The state of the browser storage when a test first starts. This is saved so
132
- * that if a test has to self-heal, we can restore the browser state to its
133
- * original state before starting the self-healing process.
134
- */
135
- _initialBrowserState: BrowserStorageState;
130
+ _dnb: {
131
+ donobuFlowMetadata: FlowMetadata;
132
+ donobuStack: DonobuStack;
133
+ pageAi: PageAi | undefined;
134
+ persistence: FlowsPersistence;
135
+ initialBrowserState: BrowserStorageState;
136
+ gptClient: GptClient | undefined;
137
+ };
136
138
  }
137
139
  //# sourceMappingURL=DonobuExtendedPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DonobuExtendedPage.d.ts","sourceRoot":"","sources":["../../../src/lib/DonobuExtendedPage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DonobuExtendedPage.d.ts","sourceRoot":"","sources":["../../../src/lib/DonobuExtendedPage.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,30 @@
1
1
  import { z } from 'zod/v4';
2
2
  import { DonobuStack } from '../managers/DonobuStack';
3
3
  import { DonobuExtendedPage } from './DonobuExtendedPage';
4
+ import { FlowMetadata } from '../models/FlowMetadata';
5
+ import { DonobuFlow } from '../managers/DonobuFlow';
4
6
  import { GptClient } from '../clients/GptClient';
5
7
  import { FlowsPersistence } from '../persistence/flows/FlowsPersistence';
6
8
  import { ProposedToolCall } from '../models/ProposedToolCall';
9
+ import { PageAiCache } from './pageAi/cache';
10
+ /**
11
+ * Page AI orchestration entry point.
12
+ *
13
+ * Historically, `PageAi` owned everything from cache storage to Donobu flow
14
+ * execution. That made the class hard to test and even harder to modify. The
15
+ * refactor splits responsibilities into smaller pieces that are easier to
16
+ * reason about:
17
+ *
18
+ * - {@link PageAiRunner} sets up the `DonobuFlow` and keeps the persistence
19
+ * layer in sync. It knows nothing about caches.
20
+ * - {@link PageAi} glues together the runner with a pluggable cache so that
21
+ * consumers (e.g., Playwright fixtures) keep their simple `page.ai(...)`
22
+ * API while gaining better separation of concerns.
23
+ *
24
+ * The documentation in this file attempts to guide new contributors through
25
+ * the lifecycle of a single `page.ai` call: resolve cache → run flow →
26
+ * persist metadata → update cache.
27
+ */
7
28
  type PageAiBaseOptions = {
8
29
  cache?: boolean;
9
30
  allowedTools?: string[];
@@ -18,96 +39,101 @@ type PageAiNoSchemaOptions = PageAiBaseOptions & {
18
39
  };
19
40
  export type PageAiOptions<Schema extends z.ZodObject | undefined = undefined> = Schema extends z.ZodObject ? PageAiSchemaOptions<Schema> : PageAiNoSchemaOptions;
20
41
  type AiResult<Schema extends z.ZodObject | undefined> = Schema extends z.ZodObject ? z.infer<Schema> : void;
21
- export type CacheKey = {
22
- pageUrl: string;
23
- instruction: string | null;
24
- schema: Record<string, unknown> | null;
42
+ type PageAiRunConfiguration<Schema extends z.ZodObject | undefined> = {
43
+ page: DonobuExtendedPage;
44
+ instruction: string;
45
+ schema: Schema;
46
+ jsonSchema: Record<string, unknown> | null;
25
47
  allowedTools: string[];
26
- maxToolCalls: number | null;
48
+ maxToolCalls: number;
49
+ envVarNames: string[];
50
+ cachedToolCalls: ProposedToolCall[] | null;
51
+ runMode: FlowMetadata['runMode'];
27
52
  };
28
- export type CacheEntry = CacheKey & {
29
- toolCallCache: ProposedToolCall[];
53
+ type PageAiRunResult<Schema extends z.ZodObject | undefined> = {
54
+ donobuFlow: DonobuFlow;
55
+ parsedResult: AiResult<Schema>;
30
56
  };
31
- export declare class PageAi {
57
+ /**
58
+ * Prepares and executes a Donobu autonomous flow.
59
+ *
60
+ * Responsibilities:
61
+ * - Gather environment data based on allowed env vars.
62
+ * - Seed `DonobuFlow` with deterministic metadata (run mode, allowed tools, etc.).
63
+ * - Run the flow, updating persisted metadata regardless of outcome.
64
+ *
65
+ * The runner does **not** perform cache lookups or updates. That is deferred to
66
+ * the higher-level {@link PageAi} facade so that the runner can stay focused on
67
+ * “how do we execute a flow safely?” rather than “should we execute a flow at
68
+ * all?”.
69
+ */
70
+ export declare class PageAiRunner {
32
71
  private readonly donobu;
33
72
  private readonly persistence;
34
73
  private readonly gptClient;
35
- private readonly cacheFilepath;
36
- constructor(donobu: DonobuStack, persistence: FlowsPersistence, gptClient: GptClient, cacheFilepath: string);
74
+ constructor(donobu: DonobuStack, persistence: FlowsPersistence, gptClient: GptClient);
37
75
  /**
38
- * Executes an AI-driven autonomous flow to accomplish a natural language instruction
39
- * on a web page. The AI agent can interact with the page using Donobu tools and will
40
- * attempt to satisfy the given objective.
41
- *
42
- * This method supports intelligent caching: successful flows are cached and can be
43
- * replayed deterministically on subsequent runs with identical parameters, significantly
44
- * reducing AI token usage and execution time. When a cache hit occurs, the flow runs
45
- * in INSTRUCT mode using the cached tool calls; otherwise, it runs in AUTONOMOUS mode
46
- * where the AI determines the necessary actions.
47
- *
48
- * @template T The Zod object schema describing the expected shape of the AI result.
49
- * @param page The Donobu page instance to use as the starting point of the flow.
50
- * @param instruction A high-level, natural language description of what the flow should
51
- * accomplish (e.g., "Fill out the login form and submit it").
52
- * @param options Optional configuration for the flow execution:
53
- * - `cache`: Set to false to bypass cache lookup and population (default: true)
54
- * - `allowedTools`: Restrict the AI to only use specified tools by name
55
- * - `maxToolCalls`: Maximum number of tool invocations allowed (default: 25)
56
- * @returns A promise that resolves to the parsed result payload if a schema is provided,
57
- * or void if no schema is specified.
58
- * @throws {PageAiException} If the autonomous flow fails, reaches a terminal non-success
59
- * state, or the result fails schema validation.
60
- *
61
- * @example
62
- * // Simple flow without structured output
63
- * await pageAi.ai(page, "Click the 'Get Started' button");
64
- *
65
- * @example
66
- * // Flow with structured output and schema validation
67
- * const userSchema = z.object({
68
- * name: z.string(),
69
- * email: z.string().email(),
70
- * isPremium: z.boolean(),
71
- * });
72
- * const user = await pageAi.ai(
73
- * page,
74
- * "Extract the user profile information from the page",
75
- * { schema: userSchema }
76
- * );
76
+ * Executes a flow using the provided configuration.
77
77
  *
78
- * @example
79
- * // Flow with custom options
80
- * await pageAi.ai(
81
- * page,
82
- * "Navigate to the settings page",
83
- * {
84
- * cache: false,
85
- * allowedTools: ['goto', 'click'],
86
- * maxToolCalls: 10,
87
- * }
88
- * );
78
+ * @param config Runtime information prepared by the higher-level facade.
79
+ * @returns Parsed result (if a schema was provided) along with the executed flow.
80
+ * @throws PageAiException when the underlying flow fails.
81
+ */
82
+ run<Schema extends z.ZodObject | undefined>(config: PageAiRunConfiguration<Schema>): Promise<PageAiRunResult<Schema>>;
83
+ /**
84
+ * Builds a `ToolManager` constrained to the tools the flow is allowed to use.
85
+ * We always allow the objective bookkeeping tools even if the caller supplied
86
+ * a narrower list.
87
+ */
88
+ private buildToolManager;
89
+ }
90
+ /**
91
+ * High-level API used by Playwright tests. It resolves caching policy,
92
+ * delegates execution to {@link PageAiRunner}, and records successful runs back
93
+ * into the configured cache.
94
+ */
95
+ export declare class PageAi {
96
+ private readonly cache;
97
+ private readonly runner;
98
+ /**
99
+ * @param donobu Donobu stack providing flow managers and shared services.
100
+ * @param persistence Persistence layer used to store flow metadata.
101
+ * @param gptClient GPT client used for autonomous reasoning.
102
+ * @param cache Pluggable cache implementation the facade should consult.
103
+ */
104
+ constructor(donobu: DonobuStack, persistence: FlowsPersistence, gptClient: GptClient, cache: PageAiCache);
105
+ /**
106
+ * Builds a `PageAi` instance configured to use the file-backed cache stored
107
+ * alongside the current test file. This mirrors the behaviour relied upon by
108
+ * the Playwright fixture.
109
+ */
110
+ static withFileCache(donobu: DonobuStack, persistence: FlowsPersistence, gptClient: GptClient, cacheFilepath: string): PageAi;
111
+ /**
112
+ * Public entry point invoked by `page.ai`. Handles cache lookup, delegates to
113
+ * the runner, and stores the result back into the cache when appropriate.
89
114
  */
90
115
  ai<Schema extends z.ZodObject | undefined = undefined>(page: DonobuExtendedPage, instruction: string, options?: PageAiOptions<Schema>): Promise<AiResult<Schema>>;
91
- private ensureCacheFileExists;
92
116
  /**
93
- * Executes a cache operation within an exclusive file lock to prevent race conditions
94
- * across multiple processes. This method handles cache file initialization, locking,
95
- * reading, executing the provided operation, and conditionally writing back changes.
117
+ * Invalidates cache entries matching the provided invocation parameters.
96
118
  *
97
- * @template T The type of result returned by the cache operation.
98
- * @param operation A function that receives the current cache and returns both the
99
- * modified cache (or the same cache if no modifications) and a result
100
- * value. If the returned cache reference is different from the input,
101
- * the cache file will be updated.
102
- * @returns A promise that resolves to the result value from the operation.
103
- * @throws Any error from the operation or file system operations (except expected ENOENT
104
- * and EEXIST errors which are handled internally).
119
+ * Returns `true` when a matching record existed and was removed.
120
+ */
121
+ invalidate<Schema extends z.ZodObject | undefined>(page: DonobuExtendedPage, instruction: string, options?: PageAiOptions<Schema>): Promise<boolean>;
122
+ /**
123
+ * Backwards-compatible alias for callers still using the older API.
124
+ */
125
+ deleteCachedFlow<Schema extends z.ZodObject | undefined>(page: DonobuExtendedPage, instruction: string, options?: PageAiOptions<Schema>): Promise<boolean>;
126
+ /**
127
+ * Normalises user-provided options into a single structure that can be reused
128
+ * across cache operations and flow execution.
129
+ */
130
+ private buildDescriptor;
131
+ /**
132
+ * Computes the cache key that uniquely identifies a `page.ai` invocation.
133
+ * Keep this logic in sync with any external cache generators (e.g. the code
134
+ * generator) so that hits and invalidations behave the same everywhere.
105
135
  */
106
- private withCacheLock;
107
- private getCacheKey;
108
- private getCachedFlow;
109
- deleteCachedFlow(page: DonobuExtendedPage, instruction: string, options?: PageAiOptions<any>): Promise<boolean>;
110
- private cacheFlow;
136
+ private buildCacheKey;
111
137
  }
112
138
  export {};
113
139
  //# sourceMappingURL=PageAi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageAi.d.ts","sourceRoot":"","sources":["../../../src/lib/PageAi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAIzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAI9D,KAAK,iBAAiB,GAAG;IAEvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,KAAK,mBAAmB,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,IAAI,iBAAiB,GAAG;IAGzE,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,qBAAqB,GAAG,iBAAiB,GAAG;IAC/C,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,IAC1E,MAAM,SAAS,CAAC,CAAC,SAAS,GACtB,mBAAmB,CAAC,MAAM,CAAC,GAC3B,qBAAqB,CAAC;AAE5B,KAAK,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,SAAS,IAClD,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAEtD,MAAM,MAAM,QAAQ,GAAG;IACrB,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,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG;IAClC,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACnC,CAAC;AAMF,qBAAa,MAAM;IAEf,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAHb,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,MAAM;IAGxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACU,EAAE,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,EAChE,IAAI,EAAE,kBAAkB,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAiGd,qBAAqB;IAiBnC;;;;;;;;;;;;;OAaG;YACW,aAAa;IA+D3B,OAAO,CAAC,WAAW;YAmBL,aAAa;IAwBd,gBAAgB,CAC3B,IAAI,EAAE,kBAAkB,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAC3B,OAAO,CAAC,OAAO,CAAC;YAgCL,SAAS;CA0CxB"}
1
+ {"version":3,"file":"PageAi.d.ts","sourceRoot":"","sources":["../../../src/lib/PageAi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAmB,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAK9E;;;;;;;;;;;;;;;;;GAiBG;AACH,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,KAAK,mBAAmB,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,IAAI,iBAAiB,GAAG;IACzE,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,qBAAqB,GAAG,iBAAiB,GAAG;IAC/C,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,IAC1E,MAAM,SAAS,CAAC,CAAC,SAAS,GACtB,mBAAmB,CAAC,MAAM,CAAC,GAC3B,qBAAqB,CAAC;AAE5B,KAAK,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,SAAS,IAClD,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAYtD,KAAK,sBAAsB,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,SAAS,IAAI;IACpE,IAAI,EAAE,kBAAkB,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAC3C,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;CAClC,CAAC;AAEF,KAAK,eAAe,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,SAAS,IAAI;IAC7D,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAE,SAAS;IAGvC;;;;;;OAMG;IACU,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,SAAS,EACrD,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,GACrC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAsEnC;;;;OAIG;YACW,gBAAgB;CAe/B;AAED;;;;GAIG;AACH,qBAAa,MAAM;IAaf,OAAO,CAAC,QAAQ,CAAC,KAAK;IAZxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IAEtC;;;;;OAKG;gBAED,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAE,SAAS,EACH,KAAK,EAAE,WAAW;IAKrC;;;;OAIG;WACW,aAAa,CACzB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,MAAM,GACpB,MAAM;IAST;;;OAGG;IACU,EAAE,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,EAChE,IAAI,EAAE,kBAAkB,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAiC5B;;;;OAIG;IACU,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,SAAS,EAC5D,IAAI,EAAE,kBAAkB,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC;IAKnB;;OAEG;IACU,gBAAgB,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,SAAS,EAClE,IAAI,EAAE,kBAAkB,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC;IAInB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAgCvB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAetB"}