@mondaydotcomorg/atp-compiler 0.17.14

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 (285) hide show
  1. package/README.md +382 -0
  2. package/__tests__/integration/all-array-methods-native.test.ts +321 -0
  3. package/__tests__/integration/all-callback-types.test.ts +406 -0
  4. package/__tests__/integration/comprehensive-edge-cases.test.ts +701 -0
  5. package/__tests__/integration/native-behavior-verification.test.ts +340 -0
  6. package/__tests__/integration/semantic-correctness.test.ts +354 -0
  7. package/__tests__/integration/threshold-tests.test.ts +529 -0
  8. package/__tests__/unit/batch-optimizer.test.ts +253 -0
  9. package/__tests__/unit/checkpoint-manager.test.ts +145 -0
  10. package/__tests__/unit/detector.test.ts +346 -0
  11. package/dist/atp-compiler/src/index.d.ts +6 -0
  12. package/dist/atp-compiler/src/index.d.ts.map +1 -0
  13. package/dist/atp-compiler/src/index.js +6 -0
  14. package/dist/atp-compiler/src/index.js.map +1 -0
  15. package/dist/atp-compiler/src/runtime/batch-parallel.d.ts +3 -0
  16. package/dist/atp-compiler/src/runtime/batch-parallel.d.ts.map +1 -0
  17. package/dist/atp-compiler/src/runtime/batch-parallel.js +13 -0
  18. package/dist/atp-compiler/src/runtime/batch-parallel.js.map +1 -0
  19. package/dist/atp-compiler/src/runtime/checkpoint-manager.d.ts +19 -0
  20. package/dist/atp-compiler/src/runtime/checkpoint-manager.d.ts.map +1 -0
  21. package/dist/atp-compiler/src/runtime/checkpoint-manager.js +81 -0
  22. package/dist/atp-compiler/src/runtime/checkpoint-manager.js.map +1 -0
  23. package/dist/atp-compiler/src/runtime/context.d.ts +8 -0
  24. package/dist/atp-compiler/src/runtime/context.d.ts.map +1 -0
  25. package/dist/atp-compiler/src/runtime/context.js +25 -0
  26. package/dist/atp-compiler/src/runtime/context.js.map +1 -0
  27. package/dist/atp-compiler/src/runtime/errors.d.ts +38 -0
  28. package/dist/atp-compiler/src/runtime/errors.d.ts.map +1 -0
  29. package/dist/atp-compiler/src/runtime/errors.js +61 -0
  30. package/dist/atp-compiler/src/runtime/errors.js.map +1 -0
  31. package/dist/atp-compiler/src/runtime/index.d.ts +16 -0
  32. package/dist/atp-compiler/src/runtime/index.d.ts.map +1 -0
  33. package/dist/atp-compiler/src/runtime/index.js +20 -0
  34. package/dist/atp-compiler/src/runtime/index.js.map +1 -0
  35. package/dist/atp-compiler/src/runtime/resumable-arrays.d.ts +9 -0
  36. package/dist/atp-compiler/src/runtime/resumable-arrays.d.ts.map +1 -0
  37. package/dist/atp-compiler/src/runtime/resumable-arrays.js +179 -0
  38. package/dist/atp-compiler/src/runtime/resumable-arrays.js.map +1 -0
  39. package/dist/atp-compiler/src/runtime/resumable-loops.d.ts +4 -0
  40. package/dist/atp-compiler/src/runtime/resumable-loops.d.ts.map +1 -0
  41. package/dist/atp-compiler/src/runtime/resumable-loops.js +61 -0
  42. package/dist/atp-compiler/src/runtime/resumable-loops.js.map +1 -0
  43. package/dist/atp-compiler/src/runtime/resumable-parallel.d.ts +3 -0
  44. package/dist/atp-compiler/src/runtime/resumable-parallel.d.ts.map +1 -0
  45. package/dist/atp-compiler/src/runtime/resumable-parallel.js +44 -0
  46. package/dist/atp-compiler/src/runtime/resumable-parallel.js.map +1 -0
  47. package/dist/atp-compiler/src/transformer/array-transformer-batch.d.ts +13 -0
  48. package/dist/atp-compiler/src/transformer/array-transformer-batch.d.ts.map +1 -0
  49. package/dist/atp-compiler/src/transformer/array-transformer-batch.js +55 -0
  50. package/dist/atp-compiler/src/transformer/array-transformer-batch.js.map +1 -0
  51. package/dist/atp-compiler/src/transformer/array-transformer-sequential.d.ts +6 -0
  52. package/dist/atp-compiler/src/transformer/array-transformer-sequential.d.ts.map +1 -0
  53. package/dist/atp-compiler/src/transformer/array-transformer-sequential.js +23 -0
  54. package/dist/atp-compiler/src/transformer/array-transformer-sequential.js.map +1 -0
  55. package/dist/atp-compiler/src/transformer/array-transformer-utils.d.ts +18 -0
  56. package/dist/atp-compiler/src/transformer/array-transformer-utils.d.ts.map +1 -0
  57. package/dist/atp-compiler/src/transformer/array-transformer-utils.js +69 -0
  58. package/dist/atp-compiler/src/transformer/array-transformer-utils.js.map +1 -0
  59. package/dist/atp-compiler/src/transformer/array-transformer-wrappers.d.ts +26 -0
  60. package/dist/atp-compiler/src/transformer/array-transformer-wrappers.d.ts.map +1 -0
  61. package/dist/atp-compiler/src/transformer/array-transformer-wrappers.js +88 -0
  62. package/dist/atp-compiler/src/transformer/array-transformer-wrappers.js.map +1 -0
  63. package/dist/atp-compiler/src/transformer/array-transformer.d.ts +12 -0
  64. package/dist/atp-compiler/src/transformer/array-transformer.d.ts.map +1 -0
  65. package/dist/atp-compiler/src/transformer/array-transformer.js +47 -0
  66. package/dist/atp-compiler/src/transformer/array-transformer.js.map +1 -0
  67. package/dist/atp-compiler/src/transformer/batch-detector.d.ts +16 -0
  68. package/dist/atp-compiler/src/transformer/batch-detector.d.ts.map +1 -0
  69. package/dist/atp-compiler/src/transformer/batch-detector.js +131 -0
  70. package/dist/atp-compiler/src/transformer/batch-detector.js.map +1 -0
  71. package/dist/atp-compiler/src/transformer/batch-optimizer.d.ts +27 -0
  72. package/dist/atp-compiler/src/transformer/batch-optimizer.d.ts.map +1 -0
  73. package/dist/atp-compiler/src/transformer/batch-optimizer.js +244 -0
  74. package/dist/atp-compiler/src/transformer/batch-optimizer.js.map +1 -0
  75. package/dist/atp-compiler/src/transformer/detector.d.ts +9 -0
  76. package/dist/atp-compiler/src/transformer/detector.d.ts.map +1 -0
  77. package/dist/atp-compiler/src/transformer/detector.js +141 -0
  78. package/dist/atp-compiler/src/transformer/detector.js.map +1 -0
  79. package/dist/atp-compiler/src/transformer/index.d.ts +22 -0
  80. package/dist/atp-compiler/src/transformer/index.d.ts.map +1 -0
  81. package/dist/atp-compiler/src/transformer/index.js +132 -0
  82. package/dist/atp-compiler/src/transformer/index.js.map +1 -0
  83. package/dist/atp-compiler/src/transformer/loop-transformer.d.ts +25 -0
  84. package/dist/atp-compiler/src/transformer/loop-transformer.d.ts.map +1 -0
  85. package/dist/atp-compiler/src/transformer/loop-transformer.js +193 -0
  86. package/dist/atp-compiler/src/transformer/loop-transformer.js.map +1 -0
  87. package/dist/atp-compiler/src/transformer/promise-transformer.d.ts +17 -0
  88. package/dist/atp-compiler/src/transformer/promise-transformer.d.ts.map +1 -0
  89. package/dist/atp-compiler/src/transformer/promise-transformer.js +132 -0
  90. package/dist/atp-compiler/src/transformer/promise-transformer.js.map +1 -0
  91. package/dist/atp-compiler/src/transformer/utils.d.ts +15 -0
  92. package/dist/atp-compiler/src/transformer/utils.d.ts.map +1 -0
  93. package/dist/atp-compiler/src/transformer/utils.js +118 -0
  94. package/dist/atp-compiler/src/transformer/utils.js.map +1 -0
  95. package/dist/atp-compiler/src/types.d.ts +57 -0
  96. package/dist/atp-compiler/src/types.d.ts.map +1 -0
  97. package/dist/atp-compiler/src/types.js +23 -0
  98. package/dist/atp-compiler/src/types.js.map +1 -0
  99. package/dist/protocol/src/auth.d.ts +173 -0
  100. package/dist/protocol/src/auth.d.ts.map +1 -0
  101. package/dist/protocol/src/auth.js +202 -0
  102. package/dist/protocol/src/auth.js.map +1 -0
  103. package/dist/protocol/src/index.d.ts +7 -0
  104. package/dist/protocol/src/index.d.ts.map +1 -0
  105. package/dist/protocol/src/index.js +7 -0
  106. package/dist/protocol/src/index.js.map +1 -0
  107. package/dist/protocol/src/oauth.d.ts +63 -0
  108. package/dist/protocol/src/oauth.d.ts.map +1 -0
  109. package/dist/protocol/src/oauth.js +5 -0
  110. package/dist/protocol/src/oauth.js.map +1 -0
  111. package/dist/protocol/src/providers.d.ts +167 -0
  112. package/dist/protocol/src/providers.d.ts.map +1 -0
  113. package/dist/protocol/src/providers.js +33 -0
  114. package/dist/protocol/src/providers.js.map +1 -0
  115. package/dist/protocol/src/schemas.d.ts +6 -0
  116. package/dist/protocol/src/schemas.d.ts.map +1 -0
  117. package/dist/protocol/src/schemas.js +51 -0
  118. package/dist/protocol/src/schemas.js.map +1 -0
  119. package/dist/protocol/src/types.d.ts +489 -0
  120. package/dist/protocol/src/types.d.ts.map +1 -0
  121. package/dist/protocol/src/types.js +88 -0
  122. package/dist/protocol/src/types.js.map +1 -0
  123. package/dist/protocol/src/validation.d.ts +76 -0
  124. package/dist/protocol/src/validation.d.ts.map +1 -0
  125. package/dist/protocol/src/validation.js +129 -0
  126. package/dist/protocol/src/validation.js.map +1 -0
  127. package/dist/provenance/src/ast/instrumentor.d.ts +37 -0
  128. package/dist/provenance/src/ast/instrumentor.d.ts.map +1 -0
  129. package/dist/provenance/src/ast/instrumentor.js +299 -0
  130. package/dist/provenance/src/ast/instrumentor.js.map +1 -0
  131. package/dist/provenance/src/index.d.ts +7 -0
  132. package/dist/provenance/src/index.d.ts.map +1 -0
  133. package/dist/provenance/src/index.js +7 -0
  134. package/dist/provenance/src/index.js.map +1 -0
  135. package/dist/provenance/src/policies/engine.d.ts +71 -0
  136. package/dist/provenance/src/policies/engine.d.ts.map +1 -0
  137. package/dist/provenance/src/policies/engine.js +433 -0
  138. package/dist/provenance/src/policies/engine.js.map +1 -0
  139. package/dist/provenance/src/registry.d.ts +94 -0
  140. package/dist/provenance/src/registry.d.ts.map +1 -0
  141. package/dist/provenance/src/registry.js +445 -0
  142. package/dist/provenance/src/registry.js.map +1 -0
  143. package/dist/provenance/src/tokens.d.ts +49 -0
  144. package/dist/provenance/src/tokens.d.ts.map +1 -0
  145. package/dist/provenance/src/tokens.js +239 -0
  146. package/dist/provenance/src/tokens.js.map +1 -0
  147. package/dist/provenance/src/types.d.ts +150 -0
  148. package/dist/provenance/src/types.d.ts.map +1 -0
  149. package/dist/provenance/src/types.js +47 -0
  150. package/dist/provenance/src/types.js.map +1 -0
  151. package/dist/runtime/src/approval/handler.d.ts +12 -0
  152. package/dist/runtime/src/approval/handler.d.ts.map +1 -0
  153. package/dist/runtime/src/approval/handler.js +17 -0
  154. package/dist/runtime/src/approval/handler.js.map +1 -0
  155. package/dist/runtime/src/approval/index.d.ts +17 -0
  156. package/dist/runtime/src/approval/index.d.ts.map +1 -0
  157. package/dist/runtime/src/approval/index.js +94 -0
  158. package/dist/runtime/src/approval/index.js.map +1 -0
  159. package/dist/runtime/src/approval/types.d.ts +21 -0
  160. package/dist/runtime/src/approval/types.d.ts.map +1 -0
  161. package/dist/runtime/src/approval/types.js +5 -0
  162. package/dist/runtime/src/approval/types.js.map +1 -0
  163. package/dist/runtime/src/cache/backends.d.ts +39 -0
  164. package/dist/runtime/src/cache/backends.d.ts.map +1 -0
  165. package/dist/runtime/src/cache/backends.js +167 -0
  166. package/dist/runtime/src/cache/backends.js.map +1 -0
  167. package/dist/runtime/src/cache/index.d.ts +32 -0
  168. package/dist/runtime/src/cache/index.d.ts.map +1 -0
  169. package/dist/runtime/src/cache/index.js +103 -0
  170. package/dist/runtime/src/cache/index.js.map +1 -0
  171. package/dist/runtime/src/cache/types.d.ts +20 -0
  172. package/dist/runtime/src/cache/types.d.ts.map +1 -0
  173. package/dist/runtime/src/cache/types.js +2 -0
  174. package/dist/runtime/src/cache/types.js.map +1 -0
  175. package/dist/runtime/src/embedding/index.d.ts +39 -0
  176. package/dist/runtime/src/embedding/index.d.ts.map +1 -0
  177. package/dist/runtime/src/embedding/index.js +162 -0
  178. package/dist/runtime/src/embedding/index.js.map +1 -0
  179. package/dist/runtime/src/embedding/types.d.ts +28 -0
  180. package/dist/runtime/src/embedding/types.d.ts.map +1 -0
  181. package/dist/runtime/src/embedding/types.js +5 -0
  182. package/dist/runtime/src/embedding/types.js.map +1 -0
  183. package/dist/runtime/src/embedding/utils.d.ts +11 -0
  184. package/dist/runtime/src/embedding/utils.d.ts.map +1 -0
  185. package/dist/runtime/src/embedding/utils.js +30 -0
  186. package/dist/runtime/src/embedding/utils.js.map +1 -0
  187. package/dist/runtime/src/embedding/vector-store.d.ts +64 -0
  188. package/dist/runtime/src/embedding/vector-store.d.ts.map +1 -0
  189. package/dist/runtime/src/embedding/vector-store.js +142 -0
  190. package/dist/runtime/src/embedding/vector-store.js.map +1 -0
  191. package/dist/runtime/src/index.d.ts +18 -0
  192. package/dist/runtime/src/index.d.ts.map +1 -0
  193. package/dist/runtime/src/index.js +17 -0
  194. package/dist/runtime/src/index.js.map +1 -0
  195. package/dist/runtime/src/llm/callback.d.ts +13 -0
  196. package/dist/runtime/src/llm/callback.d.ts.map +1 -0
  197. package/dist/runtime/src/llm/callback.js +19 -0
  198. package/dist/runtime/src/llm/callback.js.map +1 -0
  199. package/dist/runtime/src/llm/index.d.ts +29 -0
  200. package/dist/runtime/src/llm/index.d.ts.map +1 -0
  201. package/dist/runtime/src/llm/index.js +118 -0
  202. package/dist/runtime/src/llm/index.js.map +1 -0
  203. package/dist/runtime/src/llm/replay.d.ts +47 -0
  204. package/dist/runtime/src/llm/replay.d.ts.map +1 -0
  205. package/dist/runtime/src/llm/replay.js +114 -0
  206. package/dist/runtime/src/llm/replay.js.map +1 -0
  207. package/dist/runtime/src/llm/types.d.ts +24 -0
  208. package/dist/runtime/src/llm/types.d.ts.map +1 -0
  209. package/dist/runtime/src/llm/types.js +2 -0
  210. package/dist/runtime/src/llm/types.js.map +1 -0
  211. package/dist/runtime/src/log/index.d.ts +12 -0
  212. package/dist/runtime/src/log/index.d.ts.map +1 -0
  213. package/dist/runtime/src/log/index.js +166 -0
  214. package/dist/runtime/src/log/index.js.map +1 -0
  215. package/dist/runtime/src/log/types.d.ts +19 -0
  216. package/dist/runtime/src/log/types.d.ts.map +1 -0
  217. package/dist/runtime/src/log/types.js +5 -0
  218. package/dist/runtime/src/log/types.js.map +1 -0
  219. package/dist/runtime/src/metadata/decorators.d.ts +27 -0
  220. package/dist/runtime/src/metadata/decorators.d.ts.map +1 -0
  221. package/dist/runtime/src/metadata/decorators.js +38 -0
  222. package/dist/runtime/src/metadata/decorators.js.map +1 -0
  223. package/dist/runtime/src/metadata/generated.d.ts +18 -0
  224. package/dist/runtime/src/metadata/generated.d.ts.map +1 -0
  225. package/dist/runtime/src/metadata/generated.js +290 -0
  226. package/dist/runtime/src/metadata/generated.js.map +1 -0
  227. package/dist/runtime/src/metadata/index.d.ts +11 -0
  228. package/dist/runtime/src/metadata/index.d.ts.map +1 -0
  229. package/dist/runtime/src/metadata/index.js +45 -0
  230. package/dist/runtime/src/metadata/index.js.map +1 -0
  231. package/dist/runtime/src/metadata/types.d.ts +22 -0
  232. package/dist/runtime/src/metadata/types.d.ts.map +1 -0
  233. package/dist/runtime/src/metadata/types.js +6 -0
  234. package/dist/runtime/src/metadata/types.js.map +1 -0
  235. package/dist/runtime/src/pause/index.d.ts +11 -0
  236. package/dist/runtime/src/pause/index.d.ts.map +1 -0
  237. package/dist/runtime/src/pause/index.js +15 -0
  238. package/dist/runtime/src/pause/index.js.map +1 -0
  239. package/dist/runtime/src/pause/types.d.ts +46 -0
  240. package/dist/runtime/src/pause/types.d.ts.map +1 -0
  241. package/dist/runtime/src/pause/types.js +57 -0
  242. package/dist/runtime/src/pause/types.js.map +1 -0
  243. package/dist/runtime/src/progress/index.d.ts +19 -0
  244. package/dist/runtime/src/progress/index.d.ts.map +1 -0
  245. package/dist/runtime/src/progress/index.js +61 -0
  246. package/dist/runtime/src/progress/index.js.map +1 -0
  247. package/dist/runtime/src/progress/types.d.ts +7 -0
  248. package/dist/runtime/src/progress/types.d.ts.map +1 -0
  249. package/dist/runtime/src/progress/types.js +2 -0
  250. package/dist/runtime/src/progress/types.js.map +1 -0
  251. package/dist/runtime/src/registry.d.ts +16 -0
  252. package/dist/runtime/src/registry.d.ts.map +1 -0
  253. package/dist/runtime/src/registry.js +16 -0
  254. package/dist/runtime/src/registry.js.map +1 -0
  255. package/dist/runtime/src/utils.d.ts +11 -0
  256. package/dist/runtime/src/utils.d.ts.map +1 -0
  257. package/dist/runtime/src/utils.js +31 -0
  258. package/dist/runtime/src/utils.js.map +1 -0
  259. package/dist/tsconfig.tsbuildinfo +1 -0
  260. package/jest.config.js +29 -0
  261. package/package.json +56 -0
  262. package/project.json +31 -0
  263. package/src/index.ts +6 -0
  264. package/src/runtime/batch-parallel.ts +22 -0
  265. package/src/runtime/checkpoint-manager.ts +105 -0
  266. package/src/runtime/context.ts +33 -0
  267. package/src/runtime/errors.ts +79 -0
  268. package/src/runtime/index.ts +35 -0
  269. package/src/runtime/resumable-arrays.ts +253 -0
  270. package/src/runtime/resumable-loops.ts +93 -0
  271. package/src/runtime/resumable-parallel.ts +57 -0
  272. package/src/transformer/array-transformer-batch.ts +86 -0
  273. package/src/transformer/array-transformer-sequential.ts +38 -0
  274. package/src/transformer/array-transformer-utils.ts +80 -0
  275. package/src/transformer/array-transformer-wrappers.ts +165 -0
  276. package/src/transformer/array-transformer.ts +76 -0
  277. package/src/transformer/batch-detector.ts +166 -0
  278. package/src/transformer/batch-optimizer.ts +320 -0
  279. package/src/transformer/detector.ts +171 -0
  280. package/src/transformer/index.ts +155 -0
  281. package/src/transformer/loop-transformer.ts +285 -0
  282. package/src/transformer/promise-transformer.ts +194 -0
  283. package/src/transformer/utils.ts +147 -0
  284. package/src/types.ts +101 -0
  285. package/tsconfig.json +12 -0
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Authentication and credential management types for Agent Tool Protocol
3
+ */
4
+ /**
5
+ * Credential resolver - resolves auth config to actual credentials
6
+ */
7
+ export class CredentialResolver {
8
+ providers = new Map();
9
+ /**
10
+ * Registers a runtime credential provider
11
+ */
12
+ registerProvider(provider) {
13
+ this.providers.set(provider.name, provider);
14
+ }
15
+ /**
16
+ * Resolves auth configuration to credentials
17
+ */
18
+ async resolve(authConfig) {
19
+ if (authConfig.provider) {
20
+ const provider = this.providers.get(authConfig.provider);
21
+ if (!provider) {
22
+ throw new Error(`Credential provider '${authConfig.provider}' not found`);
23
+ }
24
+ return await provider.resolve();
25
+ }
26
+ switch (authConfig.scheme) {
27
+ case 'apiKey':
28
+ return this.resolveAPIKey(authConfig);
29
+ case 'bearer':
30
+ return this.resolveBearer(authConfig);
31
+ case 'basic':
32
+ return this.resolveBasic(authConfig);
33
+ case 'oauth2':
34
+ return this.resolveOAuth2(authConfig);
35
+ case 'custom':
36
+ return this.resolveCustom(authConfig);
37
+ case 'composite':
38
+ return this.resolveComposite(authConfig);
39
+ default:
40
+ throw new Error(`Unsupported auth scheme: ${authConfig.scheme}`);
41
+ }
42
+ }
43
+ resolveAPIKey(config) {
44
+ const value = this.getValue(config);
45
+ if (!value) {
46
+ throw new Error(`API key not provided for '${config.name}'`);
47
+ }
48
+ if (config.in === 'header') {
49
+ return { headers: { [config.name]: value } };
50
+ }
51
+ else {
52
+ return { queryParams: { [config.name]: value } };
53
+ }
54
+ }
55
+ resolveBearer(config) {
56
+ const token = this.getValue(config);
57
+ if (!token) {
58
+ throw new Error('Bearer token not provided');
59
+ }
60
+ return {
61
+ headers: {
62
+ Authorization: `Bearer ${token}`,
63
+ },
64
+ };
65
+ }
66
+ resolveBasic(config) {
67
+ const username = config.usernameEnvVar ? process.env[config.usernameEnvVar] : config.username;
68
+ const password = config.passwordEnvVar
69
+ ? process.env[config.passwordEnvVar]
70
+ : this.getValue(config);
71
+ if (!username || !password) {
72
+ throw new Error('Basic auth username and password not provided');
73
+ }
74
+ const credentials = Buffer.from(`${username}:${password}`).toString('base64');
75
+ return {
76
+ headers: {
77
+ Authorization: `Basic ${credentials}`,
78
+ },
79
+ };
80
+ }
81
+ async resolveOAuth2(config) {
82
+ const clientId = config.clientIdEnvVar ? process.env[config.clientIdEnvVar] : config.clientId;
83
+ const clientSecret = config.clientSecretEnvVar
84
+ ? process.env[config.clientSecretEnvVar]
85
+ : undefined;
86
+ if (!clientId || !clientSecret) {
87
+ throw new Error('OAuth2 client credentials not provided');
88
+ }
89
+ if (config.flow === 'clientCredentials') {
90
+ const token = await this.fetchOAuth2Token(config.tokenUrl, clientId, clientSecret, config.scopes);
91
+ return {
92
+ headers: {
93
+ Authorization: `Bearer ${token}`,
94
+ },
95
+ };
96
+ }
97
+ const token = this.getValue(config);
98
+ if (token) {
99
+ return {
100
+ headers: {
101
+ Authorization: `Bearer ${token}`,
102
+ },
103
+ };
104
+ }
105
+ throw new Error(`OAuth2 flow '${config.flow}' requires manual token setup`);
106
+ }
107
+ resolveCustom(config) {
108
+ const headers = {};
109
+ const queryParams = {};
110
+ Object.assign(headers, config.headers);
111
+ if (config.headerEnvVars) {
112
+ for (const [headerName, envVar] of Object.entries(config.headerEnvVars)) {
113
+ const value = process.env[envVar];
114
+ if (value) {
115
+ headers[headerName] = value;
116
+ }
117
+ }
118
+ }
119
+ if (config.queryParams) {
120
+ Object.assign(queryParams, config.queryParams);
121
+ }
122
+ if (config.queryParamEnvVars) {
123
+ for (const [paramName, envVar] of Object.entries(config.queryParamEnvVars)) {
124
+ const value = process.env[envVar];
125
+ if (value) {
126
+ queryParams[paramName] = value;
127
+ }
128
+ }
129
+ }
130
+ return {
131
+ headers: Object.keys(headers).length > 0 ? headers : undefined,
132
+ queryParams: Object.keys(queryParams).length > 0 ? queryParams : undefined,
133
+ };
134
+ }
135
+ resolveComposite(config) {
136
+ const headers = {};
137
+ const queryParams = {};
138
+ for (const [credName, credConfig] of Object.entries(config.credentials)) {
139
+ const value = credConfig.envVar ? process.env[credConfig.envVar] : credConfig.value;
140
+ if (!value) {
141
+ if (credConfig.required !== false) {
142
+ throw new Error(`Required credential '${credName}' not provided`);
143
+ }
144
+ continue;
145
+ }
146
+ const injectAs = config.injectAs || 'header';
147
+ if ((injectAs === 'header' || injectAs === 'both') && credConfig.headerName) {
148
+ headers[credConfig.headerName] = value;
149
+ }
150
+ if ((injectAs === 'query' || injectAs === 'both') && credConfig.queryParamName) {
151
+ queryParams[credConfig.queryParamName] = value;
152
+ }
153
+ if (!credConfig.headerName && !credConfig.queryParamName) {
154
+ if (injectAs === 'query' || injectAs === 'both') {
155
+ queryParams[credName] = value;
156
+ }
157
+ else {
158
+ headers[`X-${credName}`] = value;
159
+ }
160
+ }
161
+ }
162
+ return {
163
+ headers: Object.keys(headers).length > 0 ? headers : undefined,
164
+ queryParams: Object.keys(queryParams).length > 0 ? queryParams : undefined,
165
+ };
166
+ }
167
+ /**
168
+ * Gets credential value from config (env var or direct value)
169
+ */
170
+ getValue(config) {
171
+ if (config.envVar) {
172
+ return process.env[config.envVar];
173
+ }
174
+ return config.value;
175
+ }
176
+ /**
177
+ * Fetches OAuth2 token using client credentials flow
178
+ */
179
+ async fetchOAuth2Token(tokenUrl, clientId, clientSecret, scopes) {
180
+ const params = new URLSearchParams({
181
+ grant_type: 'client_credentials',
182
+ client_id: clientId,
183
+ client_secret: clientSecret,
184
+ });
185
+ if (scopes && scopes.length > 0) {
186
+ params.append('scope', scopes.join(' '));
187
+ }
188
+ const response = await fetch(tokenUrl, {
189
+ method: 'POST',
190
+ headers: {
191
+ 'Content-Type': 'application/x-www-form-urlencoded',
192
+ },
193
+ body: params.toString(),
194
+ });
195
+ if (!response.ok) {
196
+ throw new Error(`OAuth2 token fetch failed: ${response.statusText}`);
197
+ }
198
+ const data = (await response.json());
199
+ return data.access_token;
200
+ }
201
+ }
202
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../protocol/src/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './types.js';
2
+ export * from './schemas.js';
3
+ export * from './validation.js';
4
+ export * from './auth.js';
5
+ export * from './providers.js';
6
+ export * from './oauth.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../protocol/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './types.js';
2
+ export * from './schemas.js';
3
+ export * from './validation.js';
4
+ export * from './auth.js';
5
+ export * from './providers.js';
6
+ export * from './oauth.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../protocol/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * OAuth and scope checking interfaces for Agent Tool Protocol
3
+ */
4
+ /**
5
+ * Scope checker interface
6
+ * Checks what OAuth scopes a token has for a given provider
7
+ */
8
+ export interface ScopeChecker {
9
+ /** Provider name (e.g., 'github', 'google', 'microsoft') */
10
+ provider: string;
11
+ /**
12
+ * Check what scopes a token has
13
+ * @param token - Access token to check
14
+ * @returns Array of scope strings (e.g., ['repo', 'read:user'])
15
+ */
16
+ check(token: string): Promise<string[]>;
17
+ /**
18
+ * Validate if a token is still valid (optional)
19
+ * @param token - Access token to validate
20
+ * @returns true if valid, false if expired/revoked
21
+ */
22
+ validate?(token: string): Promise<boolean>;
23
+ }
24
+ /**
25
+ * Token information returned by providers
26
+ */
27
+ export interface TokenInfo {
28
+ /** Whether the token is valid */
29
+ valid: boolean;
30
+ /** OAuth scopes the token has */
31
+ scopes: string[];
32
+ /** Token expiration timestamp (milliseconds since epoch) */
33
+ expiresAt?: number;
34
+ /** User identifier from the provider */
35
+ userId?: string;
36
+ /** Additional provider-specific data */
37
+ metadata?: Record<string, unknown>;
38
+ }
39
+ /**
40
+ * Scope filtering configuration
41
+ */
42
+ export interface ScopeFilteringConfig {
43
+ /** Enable scope-based filtering */
44
+ enabled: boolean;
45
+ /**
46
+ * Filtering mode:
47
+ * - 'eager': Filter tools at /api/definitions based on user's scopes
48
+ * - 'lazy': Return all tools, validate scopes only at execution time
49
+ */
50
+ mode: 'eager' | 'lazy';
51
+ /**
52
+ * Cache TTL for scope checks in seconds
53
+ * Default: 3600 (1 hour)
54
+ */
55
+ cacheTTL?: number;
56
+ /**
57
+ * Fail behavior when scope checker not available for a provider
58
+ * - 'allow': Allow all tools (no filtering)
59
+ * - 'deny': Hide all tools requiring scopes
60
+ */
61
+ fallback?: 'allow' | 'deny';
62
+ }
63
+ //# sourceMappingURL=oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../protocol/src/oauth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAExC;;;;OAIG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,iCAAiC;IACjC,KAAK,EAAE,OAAO,CAAC;IAEf,iCAAiC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * OAuth and scope checking interfaces for Agent Tool Protocol
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../protocol/src/oauth.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Provider interfaces for dependency injection
3
+ * These allow users to inject their own implementations for cache, auth, and audit
4
+ */
5
+ /**
6
+ * Cache provider interface
7
+ * Allows pluggable caching backends (Memory, Redis, FileSystem, etc.)
8
+ */
9
+ export interface CacheProvider {
10
+ /** Provider name for identification */
11
+ name: string;
12
+ /** Get a value from cache */
13
+ get<T>(key: string): Promise<T | null>;
14
+ /** Set a value in cache with optional TTL (in seconds) */
15
+ set(key: string, value: unknown, ttl?: number): Promise<void>;
16
+ /** Delete a value from cache */
17
+ delete(key: string): Promise<void>;
18
+ /** Check if a key exists in cache */
19
+ has(key: string): Promise<boolean>;
20
+ /** Clear cache entries matching a pattern (e.g., 'user:*') */
21
+ clear(pattern?: string): Promise<void>;
22
+ /** Get multiple values at once (optional, for performance) */
23
+ mget?(keys: string[]): Promise<Array<unknown | null>>;
24
+ /** Set multiple values at once (optional, for performance) */
25
+ mset?(entries: Array<[string, unknown, number?]>): Promise<void>;
26
+ /** Disconnect/cleanup (optional) */
27
+ disconnect?(): Promise<void>;
28
+ }
29
+ /**
30
+ * User credential data stored per provider
31
+ */
32
+ export interface UserCredentialData {
33
+ /** Access token */
34
+ token: string;
35
+ /** OAuth scopes granted (if applicable) */
36
+ scopes?: string[];
37
+ /** Token expiration timestamp (milliseconds since epoch) */
38
+ expiresAt?: number;
39
+ /** Refresh token for automatic token refresh */
40
+ refreshToken?: string;
41
+ /** Additional provider-specific metadata */
42
+ metadata?: Record<string, unknown>;
43
+ }
44
+ /**
45
+ * Auth provider interface
46
+ * Allows pluggable credential storage (Env vars, AWS Secrets Manager, Vault, etc.)
47
+ */
48
+ export interface AuthProvider {
49
+ /** Provider name for identification */
50
+ name: string;
51
+ /** Get a credential by key (server-level credentials) */
52
+ getCredential(key: string): Promise<string | null>;
53
+ /** Set a credential (for OAuth tokens, etc.) */
54
+ setCredential(key: string, value: string, ttl?: number): Promise<void>;
55
+ /** Delete a credential */
56
+ deleteCredential(key: string): Promise<void>;
57
+ /** List all credential keys (optional, for admin/debugging) */
58
+ listCredentials?(): Promise<string[]>;
59
+ /**
60
+ * Get user-scoped credential for a specific provider
61
+ * @param userId - User identifier
62
+ * @param provider - Provider name (e.g., 'github', 'google', 'stripe')
63
+ * @returns User credential data or null if not found
64
+ */
65
+ getUserCredential?(userId: string, provider: string): Promise<UserCredentialData | null>;
66
+ /**
67
+ * Set user-scoped credential for a specific provider
68
+ * @param userId - User identifier
69
+ * @param provider - Provider name
70
+ * @param data - Credential data including token, scopes, etc.
71
+ */
72
+ setUserCredential?(userId: string, provider: string, data: UserCredentialData): Promise<void>;
73
+ /**
74
+ * Delete user's credential for a specific provider
75
+ * @param userId - User identifier
76
+ * @param provider - Provider name
77
+ */
78
+ deleteUserCredential?(userId: string, provider: string): Promise<void>;
79
+ /**
80
+ * List all providers a user has connected
81
+ * @param userId - User identifier
82
+ * @returns Array of provider names
83
+ */
84
+ listUserProviders?(userId: string): Promise<string[]>;
85
+ /** Disconnect/cleanup (optional) */
86
+ disconnect?(): Promise<void>;
87
+ }
88
+ /**
89
+ * Audit event structure
90
+ * Comprehensive logging of all operations for security and compliance
91
+ */
92
+ export interface AuditEvent {
93
+ eventId: string;
94
+ timestamp: number;
95
+ clientId: string;
96
+ userId?: string;
97
+ ipAddress?: string;
98
+ userAgent?: string;
99
+ eventType: 'execution' | 'tool_call' | 'llm_call' | 'approval' | 'auth' | 'error' | 'client_init';
100
+ action: string;
101
+ resource?: string;
102
+ resourceId?: string;
103
+ code?: string;
104
+ toolName?: string;
105
+ apiGroup?: string;
106
+ input?: unknown;
107
+ output?: unknown;
108
+ error?: {
109
+ message: string;
110
+ code?: string;
111
+ stack?: string;
112
+ };
113
+ securityEvents?: string[];
114
+ riskScore?: number;
115
+ annotations?: Record<string, unknown>;
116
+ duration?: number;
117
+ memoryUsed?: number;
118
+ llmCallsCount?: number;
119
+ httpCallsCount?: number;
120
+ status: 'success' | 'failed' | 'timeout' | 'cancelled' | 'paused';
121
+ metadata?: Record<string, unknown>;
122
+ }
123
+ /**
124
+ * Audit filter for querying events
125
+ */
126
+ export interface AuditFilter {
127
+ clientId?: string;
128
+ userId?: string;
129
+ eventType?: string | string[];
130
+ from?: number;
131
+ to?: number;
132
+ resource?: string;
133
+ status?: string | string[];
134
+ minRiskScore?: number;
135
+ limit?: number;
136
+ offset?: number;
137
+ }
138
+ /**
139
+ * Audit sink interface
140
+ * Allows pluggable audit destinations (JSONL, PostgreSQL, Elasticsearch, S3, etc.)
141
+ */
142
+ export interface AuditSink {
143
+ /** Sink name for identification */
144
+ name: string;
145
+ /** Write a single audit event */
146
+ write(event: AuditEvent): Promise<void>;
147
+ /** Write multiple audit events (for performance) */
148
+ writeBatch(events: AuditEvent[]): Promise<void>;
149
+ /** Query audit events (optional, for queryable sinks) */
150
+ query?(filter: AuditFilter): Promise<AuditEvent[]>;
151
+ /** Disconnect/cleanup (optional) */
152
+ disconnect?(): Promise<void>;
153
+ }
154
+ /**
155
+ * Multi-sink audit wrapper
156
+ * Allows writing to multiple audit sinks simultaneously
157
+ */
158
+ export declare class MultiAuditSink implements AuditSink {
159
+ name: string;
160
+ private sinks;
161
+ constructor(sinks: AuditSink[]);
162
+ write(event: AuditEvent): Promise<void>;
163
+ writeBatch(events: AuditEvent[]): Promise<void>;
164
+ query(filter: AuditFilter): Promise<AuditEvent[]>;
165
+ disconnect(): Promise<void>;
166
+ }
167
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../protocol/src/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Provider interfaces for dependency injection
3
+ * These allow users to inject their own implementations for cache, auth, and audit
4
+ */
5
+ /**
6
+ * Multi-sink audit wrapper
7
+ * Allows writing to multiple audit sinks simultaneously
8
+ */
9
+ export class MultiAuditSink {
10
+ name = 'multi';
11
+ sinks;
12
+ constructor(sinks) {
13
+ this.sinks = sinks;
14
+ }
15
+ async write(event) {
16
+ await Promise.all(this.sinks.map((sink) => sink.write(event)));
17
+ }
18
+ async writeBatch(events) {
19
+ await Promise.all(this.sinks.map((sink) => sink.writeBatch(events)));
20
+ }
21
+ async query(filter) {
22
+ for (const sink of this.sinks) {
23
+ if (sink.query) {
24
+ return await sink.query(filter);
25
+ }
26
+ }
27
+ throw new Error('No queryable audit sink available');
28
+ }
29
+ async disconnect() {
30
+ await Promise.all(this.sinks.map((sink) => (sink.disconnect ? sink.disconnect() : Promise.resolve())));
31
+ }
32
+ }
33
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../protocol/src/providers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6LH;;;GAGG;AACH,MAAM,OAAO,cAAc;IAC1B,IAAI,GAAG,OAAO,CAAC;IACP,KAAK,CAAc;IAE3B,YAAY,KAAkB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAiB;QAC5B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAoB;QACpC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC9B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CACnF,CAAC;IACH,CAAC;CACD"}
@@ -0,0 +1,6 @@
1
+ import type { JSONSchema } from './types.js';
2
+ export declare const ExecutionConfigSchema: JSONSchema;
3
+ export declare const SearchOptionsSchema: JSONSchema;
4
+ export declare const AgentToolProtocolRequestSchema: JSONSchema;
5
+ export declare const AgentToolProtocolResponseSchema: JSONSchema;
6
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../../protocol/src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,qBAAqB,EAAE,UAUnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,UAUjC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,UAS5C,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,UAiB7C,CAAC"}
@@ -0,0 +1,51 @@
1
+ export const ExecutionConfigSchema = {
2
+ type: 'object',
3
+ properties: {
4
+ timeout: { type: 'number', minimum: 1000, maximum: 300000 },
5
+ maxMemory: { type: 'number', minimum: 1048576, maximum: 536870912 },
6
+ maxLLMCalls: { type: 'number', minimum: 0, maximum: 100 },
7
+ allowedAPIs: { type: 'array', items: { type: 'string' } },
8
+ allowLLMCalls: { type: 'boolean' },
9
+ },
10
+ required: ['timeout', 'maxMemory', 'maxLLMCalls', 'allowedAPIs', 'allowLLMCalls'],
11
+ };
12
+ export const SearchOptionsSchema = {
13
+ type: 'object',
14
+ properties: {
15
+ query: { type: 'string', minLength: 1 },
16
+ apiGroups: { type: 'array', items: { type: 'string' } },
17
+ maxResults: { type: 'number', minimum: 1, maximum: 100 },
18
+ useEmbeddings: { type: 'boolean' },
19
+ embeddingModel: { type: 'string' },
20
+ },
21
+ required: ['query'],
22
+ };
23
+ export const AgentToolProtocolRequestSchema = {
24
+ type: 'object',
25
+ properties: {
26
+ jsonrpc: { type: 'string', enum: ['2.0'] },
27
+ id: { type: ['string', 'number'] },
28
+ method: { type: 'string' },
29
+ params: { type: 'object' },
30
+ },
31
+ required: ['jsonrpc', 'id', 'method', 'params'],
32
+ };
33
+ export const AgentToolProtocolResponseSchema = {
34
+ type: 'object',
35
+ properties: {
36
+ jsonrpc: { type: 'string', enum: ['2.0'] },
37
+ id: { type: ['string', 'number'] },
38
+ result: {},
39
+ error: {
40
+ type: 'object',
41
+ properties: {
42
+ code: { type: 'number' },
43
+ message: { type: 'string' },
44
+ data: {},
45
+ },
46
+ required: ['code', 'message'],
47
+ },
48
+ },
49
+ required: ['jsonrpc', 'id'],
50
+ };
51
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../protocol/src/schemas.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAe;IAChD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;QAC3D,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;QACnE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;QACzD,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACzD,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAClC;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC;CACjF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC9C,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QACvC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACvD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;QACxD,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAClC;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAe;IACzD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;QAC1C,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;QAClC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC1B;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC;CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAe;IAC1D,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;QAC1C,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;QAClC,MAAM,EAAE,EAAE;QACV,KAAK,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACX,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC3B,IAAI,EAAE,EAAE;aACR;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;SAC7B;KACD;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC;CAC3B,CAAC"}