@tiangong-ai/cli 0.0.51 → 0.0.55

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 (216) hide show
  1. package/AGENTS.md +22 -2
  2. package/README.md +171 -7
  3. package/dist/cli.js +10 -1
  4. package/dist/cli.js.map +1 -1
  5. package/dist/data/builtins.d.ts +1 -0
  6. package/dist/data/builtins.js +40 -0
  7. package/dist/data/builtins.js.map +1 -0
  8. package/dist/data/catalog.d.ts +25 -0
  9. package/dist/data/catalog.js +305 -0
  10. package/dist/data/catalog.js.map +1 -0
  11. package/dist/data/commands.d.ts +9 -0
  12. package/dist/data/commands.js +307 -0
  13. package/dist/data/commands.js.map +1 -0
  14. package/dist/data/connectors/airnow-hourly-observations.d.ts +2 -0
  15. package/dist/data/connectors/airnow-hourly-observations.js +522 -0
  16. package/dist/data/connectors/airnow-hourly-observations.js.map +1 -0
  17. package/dist/data/connectors/airnow-hourly-observations.schemas.d.ts +299 -0
  18. package/dist/data/connectors/airnow-hourly-observations.schemas.js +188 -0
  19. package/dist/data/connectors/airnow-hourly-observations.schemas.js.map +1 -0
  20. package/dist/data/connectors/bluesky-public-posts.d.ts +2 -0
  21. package/dist/data/connectors/bluesky-public-posts.js +705 -0
  22. package/dist/data/connectors/bluesky-public-posts.js.map +1 -0
  23. package/dist/data/connectors/bluesky-public-posts.schemas.d.ts +733 -0
  24. package/dist/data/connectors/bluesky-public-posts.schemas.js +422 -0
  25. package/dist/data/connectors/bluesky-public-posts.schemas.js.map +1 -0
  26. package/dist/data/connectors/epa-eis-records.d.ts +2 -0
  27. package/dist/data/connectors/epa-eis-records.js +566 -0
  28. package/dist/data/connectors/epa-eis-records.js.map +1 -0
  29. package/dist/data/connectors/epa-eis-records.schemas.d.ts +199 -0
  30. package/dist/data/connectors/epa-eis-records.schemas.js +146 -0
  31. package/dist/data/connectors/epa-eis-records.schemas.js.map +1 -0
  32. package/dist/data/connectors/federal-register-documents.d.ts +2 -0
  33. package/dist/data/connectors/federal-register-documents.js +517 -0
  34. package/dist/data/connectors/federal-register-documents.js.map +1 -0
  35. package/dist/data/connectors/federal-register-documents.schemas.d.ts +357 -0
  36. package/dist/data/connectors/federal-register-documents.schemas.js +243 -0
  37. package/dist/data/connectors/federal-register-documents.schemas.js.map +1 -0
  38. package/dist/data/connectors/gdelt-doc-search.d.ts +2 -0
  39. package/dist/data/connectors/gdelt-doc-search.js +658 -0
  40. package/dist/data/connectors/gdelt-doc-search.js.map +1 -0
  41. package/dist/data/connectors/gdelt-doc-search.schemas.d.ts +446 -0
  42. package/dist/data/connectors/gdelt-doc-search.schemas.js +330 -0
  43. package/dist/data/connectors/gdelt-doc-search.schemas.js.map +1 -0
  44. package/dist/data/connectors/gdelt-file-feeds.d.ts +4 -0
  45. package/dist/data/connectors/gdelt-file-feeds.js +591 -0
  46. package/dist/data/connectors/gdelt-file-feeds.js.map +1 -0
  47. package/dist/data/connectors/gdelt-file-feeds.schemas.d.ts +40 -0
  48. package/dist/data/connectors/gdelt-file-feeds.schemas.js +256 -0
  49. package/dist/data/connectors/gdelt-file-feeds.schemas.js.map +1 -0
  50. package/dist/data/connectors/nasa-firms-fire.d.ts +2 -0
  51. package/dist/data/connectors/nasa-firms-fire.js +578 -0
  52. package/dist/data/connectors/nasa-firms-fire.js.map +1 -0
  53. package/dist/data/connectors/nasa-firms-fire.schemas.d.ts +369 -0
  54. package/dist/data/connectors/nasa-firms-fire.schemas.js +238 -0
  55. package/dist/data/connectors/nasa-firms-fire.schemas.js.map +1 -0
  56. package/dist/data/connectors/open-meteo-air-quality.d.ts +2 -0
  57. package/dist/data/connectors/open-meteo-air-quality.js +401 -0
  58. package/dist/data/connectors/open-meteo-air-quality.js.map +1 -0
  59. package/dist/data/connectors/open-meteo-air-quality.schemas.d.ts +335 -0
  60. package/dist/data/connectors/open-meteo-air-quality.schemas.js +225 -0
  61. package/dist/data/connectors/open-meteo-air-quality.schemas.js.map +1 -0
  62. package/dist/data/connectors/open-meteo-flood.d.ts +2 -0
  63. package/dist/data/connectors/open-meteo-flood.js +446 -0
  64. package/dist/data/connectors/open-meteo-flood.js.map +1 -0
  65. package/dist/data/connectors/open-meteo-flood.schemas.d.ts +388 -0
  66. package/dist/data/connectors/open-meteo-flood.schemas.js +227 -0
  67. package/dist/data/connectors/open-meteo-flood.schemas.js.map +1 -0
  68. package/dist/data/connectors/open-meteo-historical-weather.d.ts +2 -0
  69. package/dist/data/connectors/open-meteo-historical-weather.js +468 -0
  70. package/dist/data/connectors/open-meteo-historical-weather.js.map +1 -0
  71. package/dist/data/connectors/open-meteo-historical-weather.schemas.d.ts +420 -0
  72. package/dist/data/connectors/open-meteo-historical-weather.schemas.js +282 -0
  73. package/dist/data/connectors/open-meteo-historical-weather.schemas.js.map +1 -0
  74. package/dist/data/connectors/openaq-air-quality.d.ts +2 -0
  75. package/dist/data/connectors/openaq-air-quality.js +734 -0
  76. package/dist/data/connectors/openaq-air-quality.js.map +1 -0
  77. package/dist/data/connectors/openaq-air-quality.schemas.d.ts +1067 -0
  78. package/dist/data/connectors/openaq-air-quality.schemas.js +512 -0
  79. package/dist/data/connectors/openaq-air-quality.schemas.js.map +1 -0
  80. package/dist/data/connectors/regulations-gov-attachments.d.ts +2 -0
  81. package/dist/data/connectors/regulations-gov-attachments.js +486 -0
  82. package/dist/data/connectors/regulations-gov-attachments.js.map +1 -0
  83. package/dist/data/connectors/regulations-gov-attachments.schemas.d.ts +270 -0
  84. package/dist/data/connectors/regulations-gov-attachments.schemas.js +181 -0
  85. package/dist/data/connectors/regulations-gov-attachments.schemas.js.map +1 -0
  86. package/dist/data/connectors/regulations-gov-comments.d.ts +2 -0
  87. package/dist/data/connectors/regulations-gov-comments.js +718 -0
  88. package/dist/data/connectors/regulations-gov-comments.js.map +1 -0
  89. package/dist/data/connectors/regulations-gov-comments.schemas.d.ts +717 -0
  90. package/dist/data/connectors/regulations-gov-comments.schemas.js +389 -0
  91. package/dist/data/connectors/regulations-gov-comments.schemas.js.map +1 -0
  92. package/dist/data/connectors/usbr-project-records.d.ts +2 -0
  93. package/dist/data/connectors/usbr-project-records.js +467 -0
  94. package/dist/data/connectors/usbr-project-records.js.map +1 -0
  95. package/dist/data/connectors/usbr-project-records.schemas.d.ts +194 -0
  96. package/dist/data/connectors/usbr-project-records.schemas.js +137 -0
  97. package/dist/data/connectors/usbr-project-records.schemas.js.map +1 -0
  98. package/dist/data/connectors/usbr-rise.d.ts +2 -0
  99. package/dist/data/connectors/usbr-rise.js +625 -0
  100. package/dist/data/connectors/usbr-rise.js.map +1 -0
  101. package/dist/data/connectors/usbr-rise.schemas.d.ts +623 -0
  102. package/dist/data/connectors/usbr-rise.schemas.js +407 -0
  103. package/dist/data/connectors/usbr-rise.schemas.js.map +1 -0
  104. package/dist/data/connectors/usgs-water-instantaneous-values.d.ts +2 -0
  105. package/dist/data/connectors/usgs-water-instantaneous-values.js +521 -0
  106. package/dist/data/connectors/usgs-water-instantaneous-values.js.map +1 -0
  107. package/dist/data/connectors/usgs-water-instantaneous-values.schemas.d.ts +496 -0
  108. package/dist/data/connectors/usgs-water-instantaneous-values.schemas.js +309 -0
  109. package/dist/data/connectors/usgs-water-instantaneous-values.schemas.js.map +1 -0
  110. package/dist/data/connectors/youtube-public-content.d.ts +2 -0
  111. package/dist/data/connectors/youtube-public-content.js +974 -0
  112. package/dist/data/connectors/youtube-public-content.js.map +1 -0
  113. package/dist/data/connectors/youtube-public-content.schemas.d.ts +773 -0
  114. package/dist/data/connectors/youtube-public-content.schemas.js +567 -0
  115. package/dist/data/connectors/youtube-public-content.schemas.js.map +1 -0
  116. package/dist/data/contracts.d.ts +374 -0
  117. package/dist/data/contracts.js +10 -0
  118. package/dist/data/contracts.js.map +1 -0
  119. package/dist/data/runtime/artifacts.d.ts +6 -0
  120. package/dist/data/runtime/artifacts.js +103 -0
  121. package/dist/data/runtime/artifacts.js.map +1 -0
  122. package/dist/data/runtime/bounded-http.d.ts +10 -0
  123. package/dist/data/runtime/bounded-http.js +403 -0
  124. package/dist/data/runtime/bounded-http.js.map +1 -0
  125. package/dist/data/runtime/canonical-json.d.ts +3 -0
  126. package/dist/data/runtime/canonical-json.js +59 -0
  127. package/dist/data/runtime/canonical-json.js.map +1 -0
  128. package/dist/data/runtime/credentials.d.ts +14 -0
  129. package/dist/data/runtime/credentials.js +67 -0
  130. package/dist/data/runtime/credentials.js.map +1 -0
  131. package/dist/data/runtime/csv.d.ts +4 -0
  132. package/dist/data/runtime/csv.js +51 -0
  133. package/dist/data/runtime/csv.js.map +1 -0
  134. package/dist/data/runtime/errors.d.ts +22 -0
  135. package/dist/data/runtime/errors.js +101 -0
  136. package/dist/data/runtime/errors.js.map +1 -0
  137. package/dist/data/runtime/execute.d.ts +11 -0
  138. package/dist/data/runtime/execute.js +358 -0
  139. package/dist/data/runtime/execute.js.map +1 -0
  140. package/dist/data/runtime/receipts.d.ts +13 -0
  141. package/dist/data/runtime/receipts.js +38 -0
  142. package/dist/data/runtime/receipts.js.map +1 -0
  143. package/dist/data/schemas/catalog.v1.json +73 -0
  144. package/dist/data/schemas/core-receipt.v1.json +117 -0
  145. package/dist/data/schemas/describe.v1.json +24 -0
  146. package/dist/data/schemas/discovery.v1.json +130 -0
  147. package/dist/data/schemas/doctor.v1.json +40 -0
  148. package/dist/data/schemas/error.v1.json +48 -0
  149. package/dist/data/schemas/manifest.v1.json +174 -0
  150. package/dist/data/schemas/run-request.v1.json +37 -0
  151. package/dist/data/schemas/run-result.v1.json +77 -0
  152. package/dist/data/schemas.d.ts +27 -0
  153. package/dist/data/schemas.js +69 -0
  154. package/dist/data/schemas.js.map +1 -0
  155. package/dist/env.js.map +1 -1
  156. package/dist/errors.js.map +1 -1
  157. package/dist/http.js.map +1 -1
  158. package/dist/kb/config.js.map +1 -1
  159. package/dist/kb/pipeline-health.js.map +1 -1
  160. package/dist/research/orchestration.js +54 -7
  161. package/dist/research/orchestration.js.map +1 -1
  162. package/dist/research/workspace/acquisition.js.map +1 -1
  163. package/dist/research/workspace/audit-bundle.js +7 -2
  164. package/dist/research/workspace/audit-bundle.js.map +1 -1
  165. package/dist/research/workspace/broker.js.map +1 -1
  166. package/dist/research/workspace/constants.js.map +1 -1
  167. package/dist/research/workspace/credentials.d.ts +3 -0
  168. package/dist/research/workspace/credentials.js +20 -3
  169. package/dist/research/workspace/credentials.js.map +1 -1
  170. package/dist/research/workspace/data-evidence-adapter.d.ts +60 -0
  171. package/dist/research/workspace/data-evidence-adapter.js +314 -0
  172. package/dist/research/workspace/data-evidence-adapter.js.map +1 -0
  173. package/dist/research/workspace/discovery-status.js +10 -7
  174. package/dist/research/workspace/discovery-status.js.map +1 -1
  175. package/dist/research/workspace/discovery.js +12 -11
  176. package/dist/research/workspace/discovery.js.map +1 -1
  177. package/dist/research/workspace/evidence-ledger.d.ts +8 -1
  178. package/dist/research/workspace/evidence-ledger.js +46 -2
  179. package/dist/research/workspace/evidence-ledger.js.map +1 -1
  180. package/dist/research/workspace/evidence.d.ts +31 -0
  181. package/dist/research/workspace/evidence.js +77 -0
  182. package/dist/research/workspace/evidence.js.map +1 -1
  183. package/dist/research/workspace/executor.js.map +1 -1
  184. package/dist/research/workspace/external-skills.d.ts +49 -49
  185. package/dist/research/workspace/external-skills.js.map +1 -1
  186. package/dist/research/workspace/platform-capabilities.js.map +1 -1
  187. package/dist/research/workspace/preflight.d.ts +4 -4
  188. package/dist/research/workspace/preflight.js +33 -8
  189. package/dist/research/workspace/preflight.js.map +1 -1
  190. package/dist/research/workspace/projects.js.map +1 -1
  191. package/dist/research/workspace/publication.js.map +1 -1
  192. package/dist/research/workspace/research-policy-wizard.js.map +1 -1
  193. package/dist/research/workspace/research-policy.js.map +1 -1
  194. package/dist/research/workspace/runtime.d.ts +7 -0
  195. package/dist/research/workspace/runtime.js +77 -20
  196. package/dist/research/workspace/runtime.js.map +1 -1
  197. package/dist/research/workspace/sanitization.js.map +1 -1
  198. package/dist/research/workspace/schemas.js +1 -1
  199. package/dist/research/workspace/schemas.js.map +1 -1
  200. package/dist/research/workspace/scientific-design.js.map +1 -1
  201. package/dist/research/workspace/scientific-review.js.map +1 -1
  202. package/dist/research/workspace/setup-catalog.d.ts +9 -9
  203. package/dist/research/workspace/setup-catalog.js +2 -2
  204. package/dist/research/workspace/setup-catalog.js.map +1 -1
  205. package/dist/research/workspace/setup-declarative.js.map +1 -1
  206. package/dist/research/workspace/setup-instructions.d.ts +42 -0
  207. package/dist/research/workspace/setup-instructions.js +413 -0
  208. package/dist/research/workspace/setup-instructions.js.map +1 -0
  209. package/dist/research/workspace/setup-invocation.js.map +1 -1
  210. package/dist/research/workspace/setup-wizard.js +7 -0
  211. package/dist/research/workspace/setup-wizard.js.map +1 -1
  212. package/dist/research/workspace/setup.d.ts +18 -15
  213. package/dist/research/workspace/setup.js +68 -3
  214. package/dist/research/workspace/setup.js.map +1 -1
  215. package/dist/research/workspace/workspace.js.map +1 -1
  216. package/package.json +3 -3
@@ -0,0 +1,567 @@
1
+ const DATETIME_PATTERN = "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?Z$";
2
+ const VIDEO_ID_SCHEMA = {
3
+ type: "string",
4
+ minLength: 11,
5
+ maxLength: 11,
6
+ pattern: "^[A-Za-z0-9_-]{11}$",
7
+ };
8
+ export const YOUTUBE_VIDEO_SEARCH_INPUT_SCHEMA = {
9
+ $schema: "https://json-schema.org/draft/2020-12/schema",
10
+ $id: "https://schemas.tiangong.ai/data/youtube/video-search-input.v1.json",
11
+ type: "object",
12
+ additionalProperties: false,
13
+ required: ["query"],
14
+ properties: {
15
+ query: {
16
+ type: "string",
17
+ minLength: 1,
18
+ maxLength: 500,
19
+ description: "Search expression passed to YouTube Data API search.list as q.",
20
+ examples: ["climate policy"],
21
+ },
22
+ channelId: {
23
+ type: "string",
24
+ minLength: 1,
25
+ maxLength: 128,
26
+ description: "Optional YouTube channel ID that matching videos must belong to.",
27
+ examples: ["UC_x5XG1OV2P6uZZ5FSM9Ttw"],
28
+ },
29
+ publishedAfter: {
30
+ type: "string",
31
+ pattern: DATETIME_PATTERN,
32
+ description: "Optional inclusive RFC 3339 UTC lower bound for video publication time.",
33
+ examples: ["2026-03-01T00:00:00Z"],
34
+ },
35
+ publishedBefore: {
36
+ type: "string",
37
+ pattern: DATETIME_PATTERN,
38
+ description: "Optional inclusive RFC 3339 UTC upper bound for video publication time under the current search.list contract.",
39
+ examples: ["2026-03-08T00:00:00Z"],
40
+ },
41
+ order: {
42
+ enum: ["date", "rating", "relevance", "title", "viewCount"],
43
+ description: "Provider ordering for video search results; relevance is the default. videoCount is excluded because the provider defines it for channel ordering.",
44
+ examples: ["date"],
45
+ },
46
+ regionCode: {
47
+ type: "string",
48
+ pattern: "^[A-Z]{2}$",
49
+ description: "Optional ISO 3166-1 alpha-2 region used for search availability and ranking.",
50
+ examples: ["US"],
51
+ },
52
+ relevanceLanguage: {
53
+ type: "string",
54
+ minLength: 2,
55
+ maxLength: 35,
56
+ description: "Optional language hint for results most relevant to the supplied query.",
57
+ examples: ["en"],
58
+ },
59
+ safeSearch: {
60
+ enum: ["moderate", "none", "strict"],
61
+ description: "YouTube safeSearch filtering mode; moderate is the default.",
62
+ examples: ["moderate"],
63
+ },
64
+ videoCaption: {
65
+ enum: ["any", "closedCaption", "none"],
66
+ description: "Optional search.list caption-availability filter.",
67
+ examples: ["closedCaption"],
68
+ },
69
+ videoDefinition: {
70
+ enum: ["any", "high", "standard"],
71
+ description: "Optional video definition filter.",
72
+ examples: ["high"],
73
+ },
74
+ videoDimension: {
75
+ enum: ["2d", "3d", "any"],
76
+ description: "Optional 2D/3D video-dimension filter.",
77
+ examples: ["2d"],
78
+ },
79
+ videoDuration: {
80
+ enum: ["any", "long", "medium", "short"],
81
+ description: "Optional provider duration bucket filter.",
82
+ examples: ["medium"],
83
+ },
84
+ videoEmbeddable: {
85
+ enum: ["any", "true"],
86
+ description: "Optional filter for videos embeddable outside youtube.com.",
87
+ examples: ["true"],
88
+ },
89
+ videoEventType: {
90
+ enum: ["completed", "live", "upcoming"],
91
+ description: "Optional broadcast-event state filter.",
92
+ examples: ["completed"],
93
+ },
94
+ videoLicense: {
95
+ enum: ["any", "creativeCommon", "youtube"],
96
+ description: "Optional provider license-category filter.",
97
+ examples: ["creativeCommon"],
98
+ },
99
+ videoPaidProductPlacement: {
100
+ enum: ["any", "true"],
101
+ description: "Optional filter for videos marked as containing paid promotion.",
102
+ examples: ["true"],
103
+ },
104
+ videoSyndicated: {
105
+ enum: ["any", "true"],
106
+ description: "Optional filter for videos playable outside youtube.com.",
107
+ examples: ["true"],
108
+ },
109
+ videoType: {
110
+ enum: ["any", "episode", "movie"],
111
+ description: "Optional YouTube video-type filter.",
112
+ examples: ["episode"],
113
+ },
114
+ pageSize: {
115
+ type: "integer",
116
+ minimum: 1,
117
+ maximum: 50,
118
+ description: "Maximum video search results requested per search.list page.",
119
+ examples: [25],
120
+ },
121
+ maxSearchPages: {
122
+ type: "integer",
123
+ minimum: 1,
124
+ maximum: 10,
125
+ description: "Maximum search.list pages before mandatory detail enrichment. Defaults to 5 and cannot exceed the reviewed source cap of 10.",
126
+ examples: [5],
127
+ },
128
+ requirePublicComments: {
129
+ type: "boolean",
130
+ description: "Whether to exclude videos whose public statistics omit commentCount or report zero comments.",
131
+ examples: [true],
132
+ },
133
+ minimumCommentCount: {
134
+ type: "integer",
135
+ minimum: 0,
136
+ maximum: 9_007_199_254_740_991,
137
+ description: "Client-side minimum public commentCount after videos.list enrichment.",
138
+ examples: [20],
139
+ },
140
+ minimumViewCount: {
141
+ type: "integer",
142
+ minimum: 0,
143
+ maximum: 9_007_199_254_740_991,
144
+ description: "Client-side minimum public viewCount after videos.list enrichment.",
145
+ examples: [1_000],
146
+ },
147
+ },
148
+ };
149
+ export const YOUTUBE_COMMENTS_INPUT_SCHEMA = {
150
+ $schema: "https://json-schema.org/draft/2020-12/schema",
151
+ $id: "https://schemas.tiangong.ai/data/youtube/comments-input.v1.json",
152
+ type: "object",
153
+ additionalProperties: false,
154
+ required: ["videoIds"],
155
+ dependentRequired: {
156
+ startDateTime: ["endDateTime"],
157
+ endDateTime: ["startDateTime"],
158
+ },
159
+ properties: {
160
+ videoIds: {
161
+ type: "array",
162
+ minItems: 1,
163
+ maxItems: 50,
164
+ uniqueItems: true,
165
+ description: "One to 50 explicit YouTube video IDs whose public comment threads should be read.",
166
+ examples: [["dQw4w9WgXcQ"]],
167
+ items: VIDEO_ID_SCHEMA,
168
+ },
169
+ startDateTime: {
170
+ type: "string",
171
+ pattern: DATETIME_PATTERN,
172
+ description: "Optional inclusive UTC lower bound applied client-side to publishedAt or updatedAt; must be paired with endDateTime.",
173
+ examples: ["2026-03-01T00:00:00Z"],
174
+ },
175
+ endDateTime: {
176
+ type: "string",
177
+ pattern: DATETIME_PATTERN,
178
+ description: "Optional exclusive UTC upper bound applied client-side to publishedAt or updatedAt; must be paired with startDateTime.",
179
+ examples: ["2026-03-08T00:00:00Z"],
180
+ },
181
+ timeField: {
182
+ enum: ["published", "updated"],
183
+ description: "Comment timestamp field used for the optional UTC window; published is default.",
184
+ examples: ["published"],
185
+ },
186
+ includeReplies: {
187
+ type: "boolean",
188
+ description: "Whether to use comments.list pagination for complete visible replies instead of trusting the partial embedded reply sample.",
189
+ examples: [true],
190
+ },
191
+ searchTerms: {
192
+ type: "string",
193
+ minLength: 1,
194
+ maxLength: 500,
195
+ description: "Optional provider searchTerms filter for top-level comment threads.",
196
+ examples: ["air pollution"],
197
+ },
198
+ order: {
199
+ enum: ["relevance", "time"],
200
+ description: "Provider ordering for top-level comment threads; time is default.",
201
+ examples: ["time"],
202
+ },
203
+ pageSize: {
204
+ type: "integer",
205
+ minimum: 1,
206
+ maximum: 100,
207
+ description: "Maximum top-level threads or replies requested per provider page.",
208
+ examples: [100],
209
+ },
210
+ maxThreadPagesPerVideo: {
211
+ type: "integer",
212
+ minimum: 1,
213
+ maximum: 50,
214
+ description: "Per-video top-level commentThreads.list page cap within the operation-wide request limit.",
215
+ examples: [10],
216
+ },
217
+ maxReplyPagesPerThread: {
218
+ type: "integer",
219
+ minimum: 1,
220
+ maximum: 50,
221
+ description: "Per-thread comments.list reply-page cap within the operation-wide request limit.",
222
+ examples: [20],
223
+ },
224
+ },
225
+ };
226
+ const NULLABLE_STRING = { type: ["string", "null"] };
227
+ const NULLABLE_INTEGER = { type: ["integer", "null"], minimum: 0 };
228
+ const STRING_ARRAY = { type: "array", items: { type: "string" } };
229
+ const VIDEO_RECORD_SCHEMA = {
230
+ type: "object",
231
+ additionalProperties: false,
232
+ required: [
233
+ "videoId",
234
+ "searchRank",
235
+ "searchPage",
236
+ "searchPosition",
237
+ "publishedAt",
238
+ "channelId",
239
+ "channelTitle",
240
+ "title",
241
+ "description",
242
+ "tags",
243
+ "thumbnailUrls",
244
+ "categoryId",
245
+ "defaultLanguage",
246
+ "defaultAudioLanguage",
247
+ "liveBroadcastContent",
248
+ "statistics",
249
+ "contentDetails",
250
+ "status",
251
+ "liveStreamingDetails",
252
+ ],
253
+ properties: {
254
+ videoId: VIDEO_ID_SCHEMA,
255
+ searchRank: { type: "integer", minimum: 1 },
256
+ searchPage: { type: "integer", minimum: 1 },
257
+ searchPosition: { type: "integer", minimum: 1 },
258
+ publishedAt: NULLABLE_STRING,
259
+ channelId: NULLABLE_STRING,
260
+ channelTitle: NULLABLE_STRING,
261
+ title: { type: "string" },
262
+ description: { type: "string" },
263
+ tags: STRING_ARRAY,
264
+ thumbnailUrls: {
265
+ type: "array",
266
+ uniqueItems: true,
267
+ items: { type: "string", pattern: "^https://" },
268
+ },
269
+ categoryId: NULLABLE_STRING,
270
+ defaultLanguage: NULLABLE_STRING,
271
+ defaultAudioLanguage: NULLABLE_STRING,
272
+ liveBroadcastContent: NULLABLE_STRING,
273
+ statistics: {
274
+ type: "object",
275
+ additionalProperties: false,
276
+ required: ["viewCount", "likeCount", "commentCount"],
277
+ properties: {
278
+ viewCount: NULLABLE_INTEGER,
279
+ likeCount: NULLABLE_INTEGER,
280
+ commentCount: NULLABLE_INTEGER,
281
+ },
282
+ },
283
+ contentDetails: {
284
+ type: "object",
285
+ additionalProperties: false,
286
+ required: ["duration", "caption", "definition", "dimension", "licensedContent", "projection"],
287
+ properties: {
288
+ duration: NULLABLE_STRING,
289
+ caption: NULLABLE_STRING,
290
+ definition: NULLABLE_STRING,
291
+ dimension: NULLABLE_STRING,
292
+ licensedContent: { type: ["boolean", "null"] },
293
+ projection: NULLABLE_STRING,
294
+ },
295
+ },
296
+ status: {
297
+ type: "object",
298
+ additionalProperties: false,
299
+ required: [
300
+ "privacyStatus",
301
+ "embeddable",
302
+ "license",
303
+ "madeForKids",
304
+ "selfDeclaredMadeForKids",
305
+ ],
306
+ properties: {
307
+ privacyStatus: NULLABLE_STRING,
308
+ embeddable: { type: ["boolean", "null"] },
309
+ license: NULLABLE_STRING,
310
+ madeForKids: { type: ["boolean", "null"] },
311
+ selfDeclaredMadeForKids: { type: ["boolean", "null"] },
312
+ },
313
+ },
314
+ liveStreamingDetails: {
315
+ type: "object",
316
+ additionalProperties: false,
317
+ required: ["actualStartTime", "actualEndTime", "scheduledStartTime", "scheduledEndTime"],
318
+ properties: {
319
+ actualStartTime: NULLABLE_STRING,
320
+ actualEndTime: NULLABLE_STRING,
321
+ scheduledStartTime: NULLABLE_STRING,
322
+ scheduledEndTime: NULLABLE_STRING,
323
+ },
324
+ },
325
+ },
326
+ };
327
+ export const YOUTUBE_VIDEO_SEARCH_OUTPUT_SCHEMA = {
328
+ $schema: "https://json-schema.org/draft/2020-12/schema",
329
+ $id: "https://schemas.tiangong.ai/data/youtube/video-search-output.v1.json",
330
+ type: "object",
331
+ additionalProperties: false,
332
+ required: ["source", "query", "searchPages", "records", "filteredOut", "failures", "stopReason"],
333
+ properties: {
334
+ source: {
335
+ type: "object",
336
+ additionalProperties: false,
337
+ required: ["providerId", "apiVersion", "metadataOnly", "userGeneratedContent"],
338
+ properties: {
339
+ providerId: { const: "youtube" },
340
+ apiVersion: { const: "v3" },
341
+ metadataOnly: { const: true },
342
+ userGeneratedContent: { const: true },
343
+ },
344
+ },
345
+ query: {
346
+ type: "object",
347
+ additionalProperties: false,
348
+ required: [
349
+ "query",
350
+ "channelId",
351
+ "publishedAfter",
352
+ "publishedBefore",
353
+ "order",
354
+ "regionCode",
355
+ "relevanceLanguage",
356
+ "safeSearch",
357
+ "videoCaption",
358
+ "videoDefinition",
359
+ "videoDimension",
360
+ "videoDuration",
361
+ "videoEmbeddable",
362
+ "videoEventType",
363
+ "videoLicense",
364
+ "videoPaidProductPlacement",
365
+ "videoSyndicated",
366
+ "videoType",
367
+ "pageSize",
368
+ "maxSearchPages",
369
+ "requirePublicComments",
370
+ "minimumCommentCount",
371
+ "minimumViewCount",
372
+ ],
373
+ properties: {
374
+ query: { type: "string", minLength: 1 },
375
+ channelId: NULLABLE_STRING,
376
+ publishedAfter: NULLABLE_STRING,
377
+ publishedBefore: NULLABLE_STRING,
378
+ order: { enum: ["date", "rating", "relevance", "title", "viewCount"] },
379
+ regionCode: NULLABLE_STRING,
380
+ relevanceLanguage: NULLABLE_STRING,
381
+ safeSearch: { enum: ["moderate", "none", "strict"] },
382
+ videoCaption: NULLABLE_STRING,
383
+ videoDefinition: NULLABLE_STRING,
384
+ videoDimension: NULLABLE_STRING,
385
+ videoDuration: NULLABLE_STRING,
386
+ videoEmbeddable: NULLABLE_STRING,
387
+ videoEventType: NULLABLE_STRING,
388
+ videoLicense: NULLABLE_STRING,
389
+ videoPaidProductPlacement: NULLABLE_STRING,
390
+ videoSyndicated: NULLABLE_STRING,
391
+ videoType: NULLABLE_STRING,
392
+ pageSize: { type: "integer", minimum: 1, maximum: 50 },
393
+ maxSearchPages: { type: "integer", minimum: 1, maximum: 10 },
394
+ requirePublicComments: { type: "boolean" },
395
+ minimumCommentCount: { type: "integer", minimum: 0 },
396
+ minimumViewCount: { type: "integer", minimum: 0 },
397
+ },
398
+ },
399
+ searchPages: {
400
+ type: "array",
401
+ items: {
402
+ type: "object",
403
+ additionalProperties: false,
404
+ required: ["pageNumber", "inputRecords", "newVideoIds"],
405
+ properties: {
406
+ pageNumber: { type: "integer", minimum: 1 },
407
+ inputRecords: { type: "integer", minimum: 0 },
408
+ newVideoIds: { type: "integer", minimum: 0 },
409
+ },
410
+ },
411
+ },
412
+ records: { type: "array", items: VIDEO_RECORD_SCHEMA },
413
+ filteredOut: {
414
+ type: "array",
415
+ items: {
416
+ type: "object",
417
+ additionalProperties: false,
418
+ required: ["videoId", "reason"],
419
+ properties: { videoId: VIDEO_ID_SCHEMA, reason: { type: "string" } },
420
+ },
421
+ },
422
+ failures: {
423
+ type: "array",
424
+ items: {
425
+ type: "object",
426
+ additionalProperties: false,
427
+ required: ["videoIds", "code"],
428
+ properties: {
429
+ videoIds: { type: "array", items: VIDEO_ID_SCHEMA },
430
+ code: { type: "string", minLength: 1 },
431
+ },
432
+ },
433
+ },
434
+ stopReason: { enum: ["completed", "no-results", "max-pages", "max-records", "partial"] },
435
+ },
436
+ };
437
+ const COMMENT_RECORD_SCHEMA = {
438
+ type: "object",
439
+ additionalProperties: false,
440
+ required: [
441
+ "commentId",
442
+ "threadId",
443
+ "videoId",
444
+ "parentId",
445
+ "kind",
446
+ "channelId",
447
+ "authorDisplayName",
448
+ "authorChannelId",
449
+ "authorChannelUrl",
450
+ "authorProfileImageUrl",
451
+ "textDisplay",
452
+ "textOriginal",
453
+ "publishedAt",
454
+ "updatedAt",
455
+ "likeCount",
456
+ "viewerRating",
457
+ "canRate",
458
+ ],
459
+ properties: {
460
+ commentId: { type: "string", minLength: 1 },
461
+ threadId: { type: "string", minLength: 1 },
462
+ videoId: VIDEO_ID_SCHEMA,
463
+ parentId: NULLABLE_STRING,
464
+ kind: { enum: ["top-level", "reply"] },
465
+ channelId: NULLABLE_STRING,
466
+ authorDisplayName: NULLABLE_STRING,
467
+ authorChannelId: NULLABLE_STRING,
468
+ authorChannelUrl: NULLABLE_STRING,
469
+ authorProfileImageUrl: NULLABLE_STRING,
470
+ textDisplay: { type: "string" },
471
+ textOriginal: NULLABLE_STRING,
472
+ publishedAt: NULLABLE_STRING,
473
+ updatedAt: NULLABLE_STRING,
474
+ likeCount: NULLABLE_INTEGER,
475
+ viewerRating: NULLABLE_STRING,
476
+ canRate: { type: ["boolean", "null"] },
477
+ },
478
+ };
479
+ export const YOUTUBE_COMMENTS_OUTPUT_SCHEMA = {
480
+ $schema: "https://json-schema.org/draft/2020-12/schema",
481
+ $id: "https://schemas.tiangong.ai/data/youtube/comments-output.v1.json",
482
+ type: "object",
483
+ additionalProperties: false,
484
+ required: ["source", "query", "videos", "records", "failures", "replyCompleteness", "stopReason"],
485
+ properties: {
486
+ source: {
487
+ type: "object",
488
+ additionalProperties: false,
489
+ required: ["providerId", "apiVersion", "publicComments", "userGeneratedContent"],
490
+ properties: {
491
+ providerId: { const: "youtube" },
492
+ apiVersion: { const: "v3" },
493
+ publicComments: { const: true },
494
+ userGeneratedContent: { const: true },
495
+ },
496
+ },
497
+ query: {
498
+ type: "object",
499
+ additionalProperties: false,
500
+ required: [
501
+ "videoIds",
502
+ "startDateTime",
503
+ "endDateTime",
504
+ "timeField",
505
+ "includeReplies",
506
+ "searchTerms",
507
+ "order",
508
+ "pageSize",
509
+ "maxThreadPagesPerVideo",
510
+ "maxReplyPagesPerThread",
511
+ ],
512
+ properties: {
513
+ videoIds: { type: "array", items: VIDEO_ID_SCHEMA },
514
+ startDateTime: NULLABLE_STRING,
515
+ endDateTime: NULLABLE_STRING,
516
+ timeField: { enum: ["published", "updated"] },
517
+ includeReplies: { type: "boolean" },
518
+ searchTerms: NULLABLE_STRING,
519
+ order: { enum: ["relevance", "time"] },
520
+ pageSize: { type: "integer", minimum: 1, maximum: 100 },
521
+ maxThreadPagesPerVideo: { type: "integer", minimum: 1, maximum: 50 },
522
+ maxReplyPagesPerThread: { type: "integer", minimum: 1, maximum: 50 },
523
+ },
524
+ },
525
+ videos: {
526
+ type: "array",
527
+ items: {
528
+ type: "object",
529
+ additionalProperties: false,
530
+ required: ["videoId", "threadPages", "replyPages", "threads", "comments", "truncated"],
531
+ properties: {
532
+ videoId: VIDEO_ID_SCHEMA,
533
+ threadPages: { type: "integer", minimum: 0 },
534
+ replyPages: { type: "integer", minimum: 0 },
535
+ threads: { type: "integer", minimum: 0 },
536
+ comments: { type: "integer", minimum: 0 },
537
+ truncated: { type: "boolean" },
538
+ },
539
+ },
540
+ },
541
+ records: { type: "array", items: COMMENT_RECORD_SCHEMA },
542
+ failures: {
543
+ type: "array",
544
+ items: {
545
+ type: "object",
546
+ additionalProperties: false,
547
+ required: ["videoId", "code"],
548
+ properties: {
549
+ videoId: VIDEO_ID_SCHEMA,
550
+ code: { type: "string", minLength: 1 },
551
+ },
552
+ },
553
+ },
554
+ replyCompleteness: {
555
+ type: "object",
556
+ additionalProperties: false,
557
+ required: ["requested", "strategy", "completeWithinLimits"],
558
+ properties: {
559
+ requested: { type: "boolean" },
560
+ strategy: { enum: ["not-requested", "comments-list-pagination"] },
561
+ completeWithinLimits: { type: "boolean" },
562
+ },
563
+ },
564
+ stopReason: { enum: ["completed", "no-results", "max-pages", "max-records", "partial"] },
565
+ },
566
+ };
567
+ //# sourceMappingURL=youtube-public-content.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"youtube-public-content.schemas.js","sourceRoot":"","sources":["../../../src/data/connectors/youtube-public-content.schemas.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG,8DAA8D,CAAC;AACxF,MAAM,eAAe,GAAG;IACtB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,qBAAqB;CACtB,CAAC;AAEX,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,OAAO,EAAE,8CAA8C;IACvD,GAAG,EAAE,qEAAqE;IAC1E,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE,CAAC,OAAO,CAAC;IACnB,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,gEAAgE;YAC7E,QAAQ,EAAE,CAAC,gBAAgB,CAAC;SAC7B;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,kEAAkE;YAC/E,QAAQ,EAAE,CAAC,0BAA0B,CAAC;SACvC;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,gBAAgB;YACzB,WAAW,EAAE,yEAAyE;YACtF,QAAQ,EAAE,CAAC,sBAAsB,CAAC;SACnC;QACD,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,gBAAgB;YACzB,WAAW,EACT,gHAAgH;YAClH,QAAQ,EAAE,CAAC,sBAAsB,CAAC;SACnC;QACD,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC;YAC3D,WAAW,EACT,oJAAoJ;YACtJ,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,8EAA8E;YAC3F,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,iBAAiB,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,yEAAyE;YACtF,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,UAAU,EAAE;YACV,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC;YACpC,WAAW,EAAE,6DAA6D;YAC1E,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC;YACtC,WAAW,EAAE,mDAAmD;YAChE,QAAQ,EAAE,CAAC,eAAe,CAAC;SAC5B;QACD,eAAe,EAAE;YACf,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC;YACjC,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,cAAc,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;YACzB,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,aAAa,EAAE;YACb,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;YACxC,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,eAAe,EAAE;YACf,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YACrB,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,cAAc,EAAE;YACd,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC;YACvC,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,CAAC;YAC1C,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,CAAC,gBAAgB,CAAC;SAC7B;QACD,yBAAyB,EAAE;YACzB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YACrB,WAAW,EAAE,iEAAiE;YAC9E,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,eAAe,EAAE;YACf,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YACrB,WAAW,EAAE,0DAA0D;YACvE,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,SAAS,EAAE;YACT,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC;YACjC,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,8DAA8D;YAC3E,QAAQ,EAAE,CAAC,EAAE,CAAC;SACf;QACD,cAAc,EAAE;YACd,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,EAAE;YACX,WAAW,EACT,8HAA8H;YAChI,QAAQ,EAAE,CAAC,CAAC,CAAC;SACd;QACD,qBAAqB,EAAE;YACrB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,8FAA8F;YAChG,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,mBAAmB,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,qBAAqB;YAC9B,WAAW,EAAE,uEAAuE;YACpF,QAAQ,EAAE,CAAC,EAAE,CAAC;SACf;QACD,gBAAgB,EAAE;YAChB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,qBAAqB;YAC9B,WAAW,EAAE,oEAAoE;YACjF,QAAQ,EAAE,CAAC,KAAK,CAAC;SAClB;KACF;CAC4B,CAAC;AAEhC,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,OAAO,EAAE,8CAA8C;IACvD,GAAG,EAAE,iEAAiE;IACtE,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,iBAAiB,EAAE;QACjB,aAAa,EAAE,CAAC,aAAa,CAAC;QAC9B,WAAW,EAAE,CAAC,eAAe,CAAC;KAC/B;IACD,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,IAAI;YACjB,WAAW,EACT,mFAAmF;YACrF,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;YAC3B,KAAK,EAAE,eAAe;SACvB;QACD,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,gBAAgB;YACzB,WAAW,EACT,sHAAsH;YACxH,QAAQ,EAAE,CAAC,sBAAsB,CAAC;SACnC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,gBAAgB;YACzB,WAAW,EACT,wHAAwH;YAC1H,QAAQ,EAAE,CAAC,sBAAsB,CAAC;SACnC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;YAC9B,WAAW,EACT,iFAAiF;YACnF,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,cAAc,EAAE;YACd,IAAI,EAAE,SAAS;YACf,WAAW,EACT,6HAA6H;YAC/H,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,qEAAqE;YAClF,QAAQ,EAAE,CAAC,eAAe,CAAC;SAC5B;QACD,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;YAC3B,WAAW,EAAE,mEAAmE;YAChF,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,GAAG;YACZ,WAAW,EAAE,mEAAmE;YAChF,QAAQ,EAAE,CAAC,GAAG,CAAC;SAChB;QACD,sBAAsB,EAAE;YACtB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,EAAE;YACX,WAAW,EACT,2FAA2F;YAC7F,QAAQ,EAAE,CAAC,EAAE,CAAC;SACf;QACD,sBAAsB,EAAE;YACtB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,EAAE;YACX,WAAW,EACT,kFAAkF;YACpF,QAAQ,EAAE,CAAC,EAAE,CAAC;SACf;KACF;CAC4B,CAAC;AAEhC,MAAM,eAAe,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAW,CAAC;AAC9D,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAW,CAAC;AAC5E,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAW,CAAC;AAE3E,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE;QACR,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,gBAAgB;QAChB,aAAa;QACb,WAAW;QACX,cAAc;QACd,OAAO;QACP,aAAa;QACb,MAAM;QACN,eAAe;QACf,YAAY;QACZ,iBAAiB;QACjB,sBAAsB;QACtB,sBAAsB;QACtB,YAAY;QACZ,gBAAgB;QAChB,QAAQ;QACR,sBAAsB;KACvB;IACD,UAAU,EAAE;QACV,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QAC3C,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QAC/C,WAAW,EAAE,eAAe;QAC5B,SAAS,EAAE,eAAe;QAC1B,YAAY,EAAE,eAAe;QAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,IAAI,EAAE,YAAY;QAClB,aAAa,EAAE;YACb,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE;SAChD;QACD,UAAU,EAAE,eAAe;QAC3B,eAAe,EAAE,eAAe;QAChC,oBAAoB,EAAE,eAAe;QACrC,oBAAoB,EAAE,eAAe;QACrC,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC;YACpD,UAAU,EAAE;gBACV,SAAS,EAAE,gBAAgB;gBAC3B,SAAS,EAAE,gBAAgB;gBAC3B,YAAY,EAAE,gBAAgB;aAC/B;SACF;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,CAAC;YAC7F,UAAU,EAAE;gBACV,QAAQ,EAAE,eAAe;gBACzB,OAAO,EAAE,eAAe;gBACxB,UAAU,EAAE,eAAe;gBAC3B,SAAS,EAAE,eAAe;gBAC1B,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;gBAC9C,UAAU,EAAE,eAAe;aAC5B;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE;gBACR,eAAe;gBACf,YAAY;gBACZ,SAAS;gBACT,aAAa;gBACb,yBAAyB;aAC1B;YACD,UAAU,EAAE;gBACV,aAAa,EAAE,eAAe;gBAC9B,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;gBACzC,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;gBAC1C,uBAAuB,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;aACvD;SACF;QACD,oBAAoB,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE,CAAC,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;YACxF,UAAU,EAAE;gBACV,eAAe,EAAE,eAAe;gBAChC,aAAa,EAAE,eAAe;gBAC9B,kBAAkB,EAAE,eAAe;gBACnC,gBAAgB,EAAE,eAAe;aAClC;SACF;KACF;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,OAAO,EAAE,8CAA8C;IACvD,GAAG,EAAE,sEAAsE;IAC3E,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,CAAC;IAChG,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,sBAAsB,CAAC;YAC9E,UAAU,EAAE;gBACV,UAAU,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;gBAChC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC3B,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC7B,oBAAoB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;aACtC;SACF;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE;gBACR,OAAO;gBACP,WAAW;gBACX,gBAAgB;gBAChB,iBAAiB;gBACjB,OAAO;gBACP,YAAY;gBACZ,mBAAmB;gBACnB,YAAY;gBACZ,cAAc;gBACd,iBAAiB;gBACjB,gBAAgB;gBAChB,eAAe;gBACf,iBAAiB;gBACjB,gBAAgB;gBAChB,cAAc;gBACd,2BAA2B;gBAC3B,iBAAiB;gBACjB,WAAW;gBACX,UAAU;gBACV,gBAAgB;gBAChB,uBAAuB;gBACvB,qBAAqB;gBACrB,kBAAkB;aACnB;YACD,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;gBACvC,SAAS,EAAE,eAAe;gBAC1B,cAAc,EAAE,eAAe;gBAC/B,eAAe,EAAE,eAAe;gBAChC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;gBACtE,UAAU,EAAE,eAAe;gBAC3B,iBAAiB,EAAE,eAAe;gBAClC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;gBACpD,YAAY,EAAE,eAAe;gBAC7B,eAAe,EAAE,eAAe;gBAChC,cAAc,EAAE,eAAe;gBAC/B,aAAa,EAAE,eAAe;gBAC9B,eAAe,EAAE,eAAe;gBAChC,cAAc,EAAE,eAAe;gBAC/B,YAAY,EAAE,eAAe;gBAC7B,yBAAyB,EAAE,eAAe;gBAC1C,eAAe,EAAE,eAAe;gBAChC,SAAS,EAAE,eAAe;gBAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBACtD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC5D,qBAAqB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1C,mBAAmB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;gBACpD,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;aAClD;SACF;QACD,WAAW,EAAE;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC;gBACvD,UAAU,EAAE;oBACV,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;oBAC3C,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;oBAC7C,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;iBAC7C;aACF;SACF;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE;QACtD,WAAW,EAAE;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;gBAC/B,UAAU,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;aACrE;SACF;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;gBAC9B,UAAU,EAAE;oBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE;oBACnD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;iBACvC;aACF;SACF;QACD,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE;KACzF;CAC4B,CAAC;AAEhC,MAAM,qBAAqB,GAAG;IAC5B,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE;QACR,WAAW;QACX,UAAU;QACV,SAAS;QACT,UAAU;QACV,MAAM;QACN,WAAW;QACX,mBAAmB;QACnB,iBAAiB;QACjB,kBAAkB;QAClB,uBAAuB;QACvB,aAAa;QACb,cAAc;QACd,aAAa;QACb,WAAW;QACX,WAAW;QACX,cAAc;QACd,SAAS;KACV;IACD,UAAU,EAAE;QACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QAC3C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QAC1C,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE;QACtC,SAAS,EAAE,eAAe;QAC1B,iBAAiB,EAAE,eAAe;QAClC,eAAe,EAAE,eAAe;QAChC,gBAAgB,EAAE,eAAe;QACjC,qBAAqB,EAAE,eAAe;QACtC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,eAAe;QAC5B,SAAS,EAAE,eAAe;QAC1B,SAAS,EAAE,gBAAgB;QAC3B,YAAY,EAAE,eAAe;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;KACvC;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,OAAO,EAAE,8CAA8C;IACvD,GAAG,EAAE,kEAAkE;IACvE,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,CAAC;IACjG,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,CAAC;YAChF,UAAU,EAAE;gBACV,UAAU,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;gBAChC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC3B,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC/B,oBAAoB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;aACtC;SACF;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE;gBACR,UAAU;gBACV,eAAe;gBACf,aAAa;gBACb,WAAW;gBACX,gBAAgB;gBAChB,aAAa;gBACb,OAAO;gBACP,UAAU;gBACV,wBAAwB;gBACxB,wBAAwB;aACzB;YACD,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE;gBACnD,aAAa,EAAE,eAAe;gBAC9B,WAAW,EAAE,eAAe;gBAC5B,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE;gBAC7C,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACnC,WAAW,EAAE,eAAe;gBAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;gBACtC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;gBACvD,sBAAsB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBACpE,sBAAsB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;aACrE;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;gBACtF,UAAU,EAAE;oBACV,OAAO,EAAE,eAAe;oBACxB,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;oBAC5C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;oBAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;oBACxC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;oBACzC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;iBAC/B;aACF;SACF;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE;QACxD,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;gBAC7B,UAAU,EAAE;oBACV,OAAO,EAAE,eAAe;oBACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;iBACvC;aACF;SACF;QACD,iBAAiB,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,sBAAsB,CAAC;YAC3D,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,eAAe,EAAE,0BAA0B,CAAC,EAAE;gBACjE,oBAAoB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC1C;SACF;QACD,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE;KACzF;CAC4B,CAAC"}