terse-cli 0.3.7 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/dist/commands/auth.js +3 -3
  2. package/dist/commands/auth.js.map +1 -1
  3. package/dist/commands/authOrg.js +3 -3
  4. package/dist/commands/authOrg.js.map +1 -1
  5. package/dist/commands/authStatus.d.ts.map +1 -1
  6. package/dist/commands/authStatus.js +2 -3
  7. package/dist/commands/authStatus.js.map +1 -1
  8. package/dist/commands/deploy.js +1 -2
  9. package/dist/commands/deploy.js.map +1 -1
  10. package/dist/commands/install.d.ts.map +1 -1
  11. package/dist/commands/install.js +2 -2
  12. package/dist/commands/install.js.map +1 -1
  13. package/dist/providers/typescript/TypeScriptProvider.js +1 -1
  14. package/dist/providers/typescript/TypeScriptProvider.js.map +1 -1
  15. package/package.json +3 -3
  16. package/dist/attach.d.ts +0 -3
  17. package/dist/attach.d.ts.map +0 -1
  18. package/dist/attach.js +0 -61
  19. package/dist/attach.js.map +0 -1
  20. package/dist/auth.d.ts +0 -15
  21. package/dist/auth.d.ts.map +0 -1
  22. package/dist/auth.js +0 -169
  23. package/dist/auth.js.map +0 -1
  24. package/dist/codegen.d.ts +0 -120
  25. package/dist/codegen.d.ts.map +0 -1
  26. package/dist/codegen.js +0 -811
  27. package/dist/codegen.js.map +0 -1
  28. package/dist/deploy.d.ts +0 -2
  29. package/dist/deploy.d.ts.map +0 -1
  30. package/dist/deploy.js +0 -101
  31. package/dist/deploy.js.map +0 -1
  32. package/dist/generate.d.ts +0 -2
  33. package/dist/generate.d.ts.map +0 -1
  34. package/dist/generate.js +0 -284
  35. package/dist/generate.js.map +0 -1
  36. package/dist/init.d.ts +0 -2
  37. package/dist/init.d.ts.map +0 -1
  38. package/dist/init.js +0 -149
  39. package/dist/init.js.map +0 -1
  40. package/dist/integrate.d.ts +0 -2
  41. package/dist/integrate.d.ts.map +0 -1
  42. package/dist/integrate.js +0 -34
  43. package/dist/integrate.js.map +0 -1
  44. package/dist/jsonOutput.d.ts +0 -19
  45. package/dist/jsonOutput.d.ts.map +0 -1
  46. package/dist/jsonOutput.js +0 -25
  47. package/dist/jsonOutput.js.map +0 -1
  48. package/dist/nonInteractive.d.ts +0 -18
  49. package/dist/nonInteractive.d.ts.map +0 -1
  50. package/dist/nonInteractive.js +0 -57
  51. package/dist/nonInteractive.js.map +0 -1
  52. package/dist/providers/python/PythonProvider.d.ts +0 -51
  53. package/dist/providers/python/PythonProvider.d.ts.map +0 -1
  54. package/dist/providers/python/PythonProvider.js +0 -413
  55. package/dist/providers/python/PythonProvider.js.map +0 -1
  56. package/dist/providers/python/preparePythonCodegenData.d.ts +0 -139
  57. package/dist/providers/python/preparePythonCodegenData.d.ts.map +0 -1
  58. package/dist/providers/python/preparePythonCodegenData.js +0 -452
  59. package/dist/providers/python/preparePythonCodegenData.js.map +0 -1
  60. package/dist/providers/python/pythonTemplateEngine.d.ts +0 -3
  61. package/dist/providers/python/pythonTemplateEngine.d.ts.map +0 -1
  62. package/dist/providers/python/pythonTemplateEngine.js +0 -30
  63. package/dist/providers/python/pythonTemplateEngine.js.map +0 -1
  64. package/dist/providers/shared/shellUtils.d.ts +0 -2
  65. package/dist/providers/shared/shellUtils.d.ts.map +0 -1
  66. package/dist/providers/shared/shellUtils.js +0 -25
  67. package/dist/providers/shared/shellUtils.js.map +0 -1
  68. package/dist/providers/typescript/parkSignals.d.ts +0 -7
  69. package/dist/providers/typescript/parkSignals.d.ts.map +0 -1
  70. package/dist/providers/typescript/parkSignals.js +0 -45
  71. package/dist/providers/typescript/parkSignals.js.map +0 -1
  72. package/dist/providers/typescript/prepareCodegenData.d.ts +0 -166
  73. package/dist/providers/typescript/prepareCodegenData.d.ts.map +0 -1
  74. package/dist/providers/typescript/prepareCodegenData.js +0 -1431
  75. package/dist/providers/typescript/prepareCodegenData.js.map +0 -1
  76. package/dist/replay.d.ts +0 -3
  77. package/dist/replay.d.ts.map +0 -1
  78. package/dist/replay.js +0 -20
  79. package/dist/replay.js.map +0 -1
  80. package/dist/run.d.ts +0 -12
  81. package/dist/run.d.ts.map +0 -1
  82. package/dist/run.js +0 -183
  83. package/dist/run.js.map +0 -1
  84. package/dist/sampleEventCache.d.ts +0 -9
  85. package/dist/sampleEventCache.d.ts.map +0 -1
  86. package/dist/sampleEventCache.js +0 -47
  87. package/dist/sampleEventCache.js.map +0 -1
  88. package/dist/sampleEventId.d.ts +0 -13
  89. package/dist/sampleEventId.d.ts.map +0 -1
  90. package/dist/sampleEventId.js +0 -20
  91. package/dist/sampleEventId.js.map +0 -1
  92. package/dist/shared/ApiRoutes.d.ts +0 -329
  93. package/dist/shared/ApiRoutes.d.ts.map +0 -1
  94. package/dist/shared/ApiRoutes.js +0 -309
  95. package/dist/shared/ApiRoutes.js.map +0 -1
  96. package/dist/shared/ApprovalTypes.d.ts +0 -29
  97. package/dist/shared/ApprovalTypes.d.ts.map +0 -1
  98. package/dist/shared/ApprovalTypes.js +0 -8
  99. package/dist/shared/ApprovalTypes.js.map +0 -1
  100. package/dist/shared/ClientBoundTools.d.ts +0 -37
  101. package/dist/shared/ClientBoundTools.d.ts.map +0 -1
  102. package/dist/shared/ClientBoundTools.js +0 -37
  103. package/dist/shared/ClientBoundTools.js.map +0 -1
  104. package/dist/shared/Configs.d.ts +0 -466
  105. package/dist/shared/Configs.d.ts.map +0 -1
  106. package/dist/shared/Configs.js +0 -755
  107. package/dist/shared/Configs.js.map +0 -1
  108. package/dist/shared/DonatedState.d.ts +0 -5
  109. package/dist/shared/DonatedState.d.ts.map +0 -1
  110. package/dist/shared/DonatedState.js +0 -13
  111. package/dist/shared/DonatedState.js.map +0 -1
  112. package/dist/shared/Entities.d.ts +0 -8
  113. package/dist/shared/Entities.d.ts.map +0 -1
  114. package/dist/shared/Entities.js +0 -9
  115. package/dist/shared/Entities.js.map +0 -1
  116. package/dist/shared/FrontendRoutes.d.ts +0 -54
  117. package/dist/shared/FrontendRoutes.d.ts.map +0 -1
  118. package/dist/shared/FrontendRoutes.js +0 -54
  119. package/dist/shared/FrontendRoutes.js.map +0 -1
  120. package/dist/shared/Integrations.d.ts +0 -218
  121. package/dist/shared/Integrations.d.ts.map +0 -1
  122. package/dist/shared/Integrations.js +0 -134
  123. package/dist/shared/Integrations.js.map +0 -1
  124. package/dist/shared/InvalidationKeys.d.ts +0 -52
  125. package/dist/shared/InvalidationKeys.d.ts.map +0 -1
  126. package/dist/shared/InvalidationKeys.js +0 -163
  127. package/dist/shared/InvalidationKeys.js.map +0 -1
  128. package/dist/shared/ModelEvents.d.ts +0 -167
  129. package/dist/shared/ModelEvents.d.ts.map +0 -1
  130. package/dist/shared/ModelEvents.js +0 -14
  131. package/dist/shared/ModelEvents.js.map +0 -1
  132. package/dist/shared/Notifications.d.ts +0 -43
  133. package/dist/shared/Notifications.d.ts.map +0 -1
  134. package/dist/shared/Notifications.js +0 -6
  135. package/dist/shared/Notifications.js.map +0 -1
  136. package/dist/shared/RunHistoryTypes.d.ts +0 -95
  137. package/dist/shared/RunHistoryTypes.d.ts.map +0 -1
  138. package/dist/shared/RunHistoryTypes.js +0 -11
  139. package/dist/shared/RunHistoryTypes.js.map +0 -1
  140. package/dist/shared/SentNotifications.d.ts +0 -30
  141. package/dist/shared/SentNotifications.d.ts.map +0 -1
  142. package/dist/shared/SentNotifications.js +0 -13
  143. package/dist/shared/SentNotifications.js.map +0 -1
  144. package/dist/shared/SocketEvents.d.ts +0 -49
  145. package/dist/shared/SocketEvents.d.ts.map +0 -1
  146. package/dist/shared/SocketEvents.js +0 -53
  147. package/dist/shared/SocketEvents.js.map +0 -1
  148. package/dist/shared/Survey.d.ts +0 -10
  149. package/dist/shared/Survey.d.ts.map +0 -1
  150. package/dist/shared/Survey.js +0 -2
  151. package/dist/shared/Survey.js.map +0 -1
  152. package/dist/shared/TicketSystem.d.ts +0 -154
  153. package/dist/shared/TicketSystem.d.ts.map +0 -1
  154. package/dist/shared/TicketSystem.js +0 -21
  155. package/dist/shared/TicketSystem.js.map +0 -1
  156. package/dist/shared/ToolDisplayUtils.d.ts +0 -30
  157. package/dist/shared/ToolDisplayUtils.d.ts.map +0 -1
  158. package/dist/shared/ToolDisplayUtils.js +0 -1067
  159. package/dist/shared/ToolDisplayUtils.js.map +0 -1
  160. package/dist/shared/ToolsTypes.d.ts +0 -18
  161. package/dist/shared/ToolsTypes.d.ts.map +0 -1
  162. package/dist/shared/ToolsTypes.js +0 -2
  163. package/dist/shared/ToolsTypes.js.map +0 -1
  164. package/dist/shared/types.d.ts +0 -827
  165. package/dist/shared/types.d.ts.map +0 -1
  166. package/dist/shared/types.js +0 -17
  167. package/dist/shared/types.js.map +0 -1
  168. package/dist/test.d.ts +0 -2
  169. package/dist/test.d.ts.map +0 -1
  170. package/dist/test.js +0 -62
  171. package/dist/test.js.map +0 -1
  172. package/dist/testRelay.d.ts +0 -6
  173. package/dist/testRelay.d.ts.map +0 -1
  174. package/dist/testRelay.js +0 -91
  175. package/dist/testRelay.js.map +0 -1
  176. package/dist/urls.d.ts +0 -3
  177. package/dist/urls.d.ts.map +0 -1
  178. package/dist/urls.js +0 -27
  179. package/dist/urls.js.map +0 -1
  180. package/dist/util.d.ts +0 -4
  181. package/dist/util.d.ts.map +0 -1
  182. package/dist/util.js +0 -5
  183. package/dist/util.js.map +0 -1
@@ -1,452 +0,0 @@
1
- const SUPPORTED_TOOL_SPECS = [
2
- ["attio", "attio_list_objects", "list_objects"],
3
- ["attio", "attio_query_records", "query_records"],
4
- ["attio", "attio_upsert_record", "upsert_record"],
5
- ["slack", "slack_send_message", "send_message"],
6
- ["slack", "slack_list_channels", "list_channels"],
7
- ["slack", "slack_list_users", "list_users"],
8
- ["slack", "slack_read_conversation", "read_conversation"],
9
- ["snowflake", "snowflakeExecuteQuery", "execute_query"],
10
- ["snowflake", "snowflakeExplainQuery", "explain_query"]
11
- ];
12
- const SUPPORTED_TOOL_NAMES = new Set(SUPPORTED_TOOL_SPECS.map(([, toolName]) => toolName));
13
- const TOOL_METHOD_NAME_BY_TOOL = Object.fromEntries(SUPPORTED_TOOL_SPECS.map(([, toolName, methodName]) => [toolName, methodName]));
14
- const TOOL_NAME_ALIASES = {
15
- snowflake_execute_query: "snowflakeExecuteQuery",
16
- snowflake_explain_query: "snowflakeExplainQuery"
17
- };
18
- const TOOL_OUTPUT_MODEL_BY_TOOL = {
19
- attio_list_objects: "AttioListObjectsToolOutput",
20
- attio_query_records: "AttioQueryRecordsToolOutput",
21
- attio_upsert_record: "AttioUpsertRecordToolOutput",
22
- slack_send_message: "SlackSendMessageToolOutput",
23
- slack_list_channels: "SlackListChannelsToolOutput",
24
- slack_list_users: "SlackListUsersToolOutput",
25
- slack_read_conversation: "SlackReadConversationToolOutput",
26
- snowflakeExecuteQuery: "SnowflakeExecuteQueryToolOutput",
27
- snowflakeExplainQuery: "SnowflakeExplainQueryToolOutput"
28
- };
29
- export function preparePythonTemplateContext(input) {
30
- const attioTools = selectSupportedTools(input.tools, "attio");
31
- const slackTools = selectSupportedTools(input.tools, "slack");
32
- const snowflakeTools = selectSupportedTools(input.tools, "snowflake");
33
- const attio = input.attio[0] ? buildAttioCtx(input.attio[0], attioTools) : null;
34
- const github = input.github[0] ? buildGitHubCtx(input.github[0]) : null;
35
- const gmail = input.gmail[0] ? buildSimpleIntegrationCtx(input.gmail[0]) : null;
36
- const linear = input.linear[0] ? buildLinearCtx(input.linear[0]) : null;
37
- const slack = input.slack[0] ? buildSlackCtx(input.slack[0], slackTools) : null;
38
- const snowflake = input.snowflake[0] ? buildSnowflakeCtx(input.snowflake[0], snowflakeTools) : null;
39
- const workos = input.workos[0] ? buildSimpleIntegrationCtx(input.workos[0]) : null;
40
- const hasAttio = attio !== null;
41
- const hasAttioAttrs = !!attio?.hasAttrs;
42
- const hasAttioTools = (attio?.tools.length ?? 0) > 0;
43
- const hasGithub = github !== null;
44
- const hasGmail = gmail !== null;
45
- const hasLinear = linear !== null;
46
- const hasSlack = slack !== null;
47
- const hasSlackTools = (slack?.tools.length ?? 0) > 0;
48
- const hasSnowflake = snowflake !== null;
49
- const hasSnowflakeTools = (snowflake?.tools.length ?? 0) > 0;
50
- const hasWorkOS = workos !== null;
51
- const hasAnyToolNameTypes = (attio?.approvableTools.length ?? 0) > 0 || (slack?.approvableTools.length ?? 0) > 0 || (snowflake?.approvableTools.length ?? 0) > 0;
52
- const hasAnyDeterministicTools = hasAttioTools || hasSlackTools || hasSnowflakeTools;
53
- const sdkImports = ["CronTrigger", "SkillConfig", "TerseAgent as _SdkTerseAgent", "TriggerConfig", "WebhookTrigger"];
54
- if (hasGithub) {
55
- sdkImports.push("GitHubEventType", "GithubPRClosedTrigger", "GithubPROpenedTrigger", "GithubPRMergedTrigger", "GithubPRSynchronizedTrigger", "GithubPRTrigger", "GithubPushTrigger", "GithubTrigger");
56
- }
57
- if (hasGmail) {
58
- sdkImports.push("GmailEventType", "GmailTrigger");
59
- }
60
- // Linear section is always emitted (placeholder when no integration); imports must match.
61
- sdkImports.push("LinearCommentCreatedTrigger", "LinearEventType", "LinearIssueCreatedTrigger", "LinearIssueUpdatedTrigger", "LinearTrigger");
62
- if (hasSlack) {
63
- sdkImports.push("SlackAppMentionTrigger", "SlackEventType", "SlackMessageTrigger", "SlackReactionAddedTrigger", "SlackTrigger");
64
- }
65
- if (hasWorkOS) {
66
- sdkImports.push("WorkOSEventType", "WorkOSInvitationAcceptedTrigger", "WorkOSInvitationCreatedTrigger", "WorkOSInvitationResentTrigger", "WorkOSInvitationRevokedTrigger", "WorkOSInvitationTrigger", "WorkOSMembershipTrigger", "WorkOSOrganizationMembershipCreatedTrigger", "WorkOSOrganizationMembershipDeletedTrigger", "WorkOSOrganizationMembershipUpdatedTrigger", "WorkOSOrganizationTrigger", "WorkOSTrigger", "WorkOSUserCreatedTrigger", "WorkOSUserDeletedTrigger", "WorkOSUserTrigger", "WorkOSUserUpdatedTrigger");
67
- }
68
- if (hasAttioAttrs && hasAttioTools) {
69
- sdkImports.push("AttioTypedQueryResult", "AttioTypedRecord", "AttioTypedUpsertResult");
70
- }
71
- for (const tool of [...(attio?.tools ?? []), ...(slack?.tools ?? []), ...(snowflake?.tools ?? [])]) {
72
- pushUnique(sdkImports, tool.outputModel);
73
- }
74
- const typingImports = new Set();
75
- if (hasAttioAttrs) {
76
- for (const name of ["Any", "Generic", "Sequence", "TypeVar", "TypedDict", "cast"]) {
77
- typingImports.add(name);
78
- }
79
- }
80
- if (hasGithub || hasLinear || hasSlack) {
81
- typingImports.add("ClassVar");
82
- }
83
- if (hasGithub || hasGmail || hasLinear || hasSlack || hasWorkOS) {
84
- typingImports.add("Sequence");
85
- }
86
- if (hasAnyToolNameTypes) {
87
- typingImports.add("Literal");
88
- }
89
- const typingImportsLine = typingImports.size ? `from typing import ${Array.from(typingImports).sort().join(", ")}` : undefined;
90
- const pydanticImportsLine = hasAttio || hasGithub || hasLinear || hasSlack ? "from pydantic import BaseModel, ConfigDict" : undefined;
91
- const exportedNames = buildExportedNames(attio, github, gmail, linear, slack, snowflake, workos);
92
- return {
93
- attio,
94
- github,
95
- gmail,
96
- linear,
97
- slack,
98
- snowflake,
99
- workos,
100
- hasAttio,
101
- hasAttioAttrs,
102
- hasAttioTools,
103
- hasGithub,
104
- hasGmail,
105
- hasLinear,
106
- hasSlack,
107
- hasSlackTools,
108
- hasSnowflake,
109
- hasSnowflakeTools,
110
- hasWorkOS,
111
- hasAnyToolNameTypes,
112
- hasAnyDeterministicTools,
113
- sdkImports,
114
- typingImportsLine,
115
- pydanticImportsLine,
116
- needsJsonImport: hasAttioTools || hasSlackTools,
117
- attioToolNamesLiteral: attio?.approvableTools.length ? buildToolNamesLiteral(attio.approvableTools) : undefined,
118
- slackToolNamesLiteral: slack?.approvableTools.length ? buildToolNamesLiteral(slack.approvableTools) : undefined,
119
- snowflakeToolNamesLiteral: snowflake?.approvableTools.length ? buildToolNamesLiteral(snowflake.approvableTools) : undefined,
120
- allToolNamesLiteral: hasAnyToolNameTypes ? buildToolNamesLiteral([...(attio?.approvableTools ?? []), ...(slack?.approvableTools ?? []), ...(snowflake?.approvableTools ?? [])]) : undefined,
121
- exportedNamesRepr: pyListRepr(exportedNames)
122
- };
123
- }
124
- export function pyRepr(value) {
125
- let result = "'";
126
- for (const char of value) {
127
- switch (char) {
128
- case "\\":
129
- result += "\\\\";
130
- break;
131
- case "'":
132
- result += "\\'";
133
- break;
134
- case "\n":
135
- result += "\\n";
136
- break;
137
- case "\r":
138
- result += "\\r";
139
- break;
140
- case "\t":
141
- result += "\\t";
142
- break;
143
- default: {
144
- const code = char.charCodeAt(0);
145
- result += code < 32 ? `\\x${code.toString(16).padStart(2, "0")}` : char;
146
- break;
147
- }
148
- }
149
- }
150
- return `${result}'`;
151
- }
152
- export function pyListRepr(values) {
153
- return `[${values.map(pyRepr).join(", ")}]`;
154
- }
155
- function buildAttioCtx(instance, tools) {
156
- const hasAttrs = instance.objects.some(obj => (obj.attributes?.length ?? 0) > 0);
157
- const usedNames = new Set();
158
- const objects = instance.objects.map(obj => buildAttioObjectCtx(obj, usedNames, hasAttrs));
159
- const toolContexts = tools.map(buildToolCtx);
160
- return {
161
- instanceIdRepr: pyRepr(instance.id),
162
- hasAttrs,
163
- objects,
164
- tools: toolContexts,
165
- approvableTools: toolContexts.filter(tool => tool.approvable),
166
- skillToolType: toolContexts.some(tool => tool.approvable) ? "AttioToolNames" : "str",
167
- skillObjectType: hasAttrs ? "AttioObjectType[Any, Any, Any, Any]" : "AttioObjectType"
168
- };
169
- }
170
- function buildSnowflakeCtx(instance, tools) {
171
- const toolContexts = tools.map(buildToolCtx);
172
- return {
173
- instanceIdRepr: pyRepr(instance.id),
174
- tools: toolContexts,
175
- approvableTools: toolContexts.filter(tool => tool.approvable),
176
- skillToolType: toolContexts.some(tool => tool.approvable) ? "SnowflakeToolNames" : "str"
177
- };
178
- }
179
- function buildSlackCtx(instance, tools) {
180
- const toolContexts = tools.map(buildToolCtx);
181
- const usedNames = new Set();
182
- const channels = instance.channels.map(channel => ({
183
- staticName: uniqueName(toPascalCase(channel.name || "Channel") || "Channel", usedNames),
184
- channelIdRepr: pyRepr(channel.id),
185
- nameRepr: pyRepr(channel.name)
186
- }));
187
- return {
188
- instanceIdRepr: pyRepr(instance.id),
189
- channels,
190
- tools: toolContexts,
191
- approvableTools: toolContexts.filter(tool => tool.approvable),
192
- skillToolType: toolContexts.some(tool => tool.approvable) ? "SlackToolNames" : "str"
193
- };
194
- }
195
- function buildGitHubCtx(instance) {
196
- const repositoriesWithFullName = instance.repositories.map(repo => {
197
- const owner = repo.owner || "UnknownOwner";
198
- const fullName = repo.fullName || (repo.owner && repo.name ? `${repo.owner}/${repo.name}` : repo.name);
199
- return { ...repo, owner, fullName };
200
- });
201
- const ownerEntries = new Map();
202
- const usedOwnerNames = new Set();
203
- for (const repo of repositoriesWithFullName) {
204
- if (!ownerEntries.has(repo.owner)) {
205
- const ownerName = uniqueName(toPascalCase(repo.owner) || "UnknownOwner", usedOwnerNames);
206
- ownerEntries.set(repo.owner, { staticName: ownerName, repos: [] });
207
- }
208
- ownerEntries.get(repo.owner).repos.push(repo);
209
- }
210
- const owners = Array.from(ownerEntries.entries()).map(([name, data]) => ({
211
- staticName: data.staticName,
212
- nameRepr: pyRepr(name)
213
- }));
214
- const repoGroups = Array.from(ownerEntries.values()).map(group => {
215
- const usedRepoNames = new Set();
216
- return {
217
- ownerStaticName: group.staticName,
218
- repos: group.repos.map(repo => ({
219
- staticName: uniqueName(toPascalCase(repo.name) || "Repo", usedRepoNames),
220
- repositoryId: repo.id,
221
- nameRepr: pyRepr(repo.name),
222
- fullNameRepr: pyRepr(repo.fullName),
223
- ownerStaticName: group.staticName
224
- }))
225
- };
226
- });
227
- return {
228
- instanceIdRepr: pyRepr(instance.integration.id),
229
- owners,
230
- repoGroups
231
- };
232
- }
233
- function buildSimpleIntegrationCtx(instance) {
234
- return { instanceIdRepr: pyRepr(instance.id) };
235
- }
236
- function buildLinearCtx(instance) {
237
- const usedTeamNames = new Set();
238
- const teams = instance.teams.map(team => ({
239
- staticName: uniqueName(toPascalCase(team.name || "Team") || "Team", usedTeamNames),
240
- teamIdRepr: pyRepr(team.id),
241
- nameRepr: pyRepr(team.name),
242
- keyRepr: pyRepr(team.key)
243
- }));
244
- const usedProjectNames = new Set();
245
- const projects = instance.projects.map(proj => ({
246
- staticName: uniqueName(toPascalCase(proj.name || "Project") || "Project", usedProjectNames),
247
- projectIdRepr: pyRepr(proj.id),
248
- nameRepr: pyRepr(proj.name)
249
- }));
250
- return { instanceIdRepr: pyRepr(instance.id), teams, projects };
251
- }
252
- function buildAttioObjectCtx(obj, usedNames, hasAttrs) {
253
- const pascal = toPascalCase(obj.singular_noun || obj.api_slug) || "Object";
254
- const staticName = uniqueName(pascal, usedNames);
255
- const attributes = (obj.attributes ?? []).map(attr => ({
256
- apiSlug: attr.api_slug ?? "",
257
- recordType: attioRecordPythonType(attr),
258
- inputType: attioInputPythonType(attr),
259
- filterType: attioFilterPythonType(attr)
260
- }));
261
- const attrSlugsLiteral = attributes.length ? attributes.map(attr => pyRepr(attr.apiSlug)).join(", ") : "''";
262
- const attrSlugsFrozensetRepr = attributes.length ? `frozenset({${attributes.map(attr => pyRepr(attr.apiSlug)).join(", ")}})` : "frozenset()";
263
- const multiValueSlugs = (obj.attributes ?? [])
264
- .filter(attr => isAttioMultiValue(attr))
265
- .map(attr => attr.api_slug ?? "")
266
- .filter(Boolean);
267
- const multiValueFrozensetRepr = multiValueSlugs.length ? `frozenset({${multiValueSlugs.map(pyRepr).join(", ")}})` : "frozenset()";
268
- const recordValuesTypeName = `${pascal}RecordValues`;
269
- const inputValuesTypeName = `${pascal}InputValues`;
270
- const attributeSlugTypeName = `${pascal}AttributeSlug`;
271
- const filterTypeName = `${pascal}Filter`;
272
- const hasAttributes = attributes.length > 0;
273
- const staticDeclaration = hasAttrs && hasAttributes
274
- ? `${staticName}: AttioObjectType[${attributeSlugTypeName}, ${recordValuesTypeName}, ${inputValuesTypeName}, ${filterTypeName}] = AttioObjectType(api_slug=${pyRepr(obj.api_slug)}, name=${pyRepr(obj.singular_noun)}, attributes=${renderAttributeTuple(obj.attributes ?? [])})`
275
- : `${staticName} = AttioObjectType(api_slug=${pyRepr(obj.api_slug)}, name=${pyRepr(obj.singular_noun)})`;
276
- return {
277
- apiSlug: obj.api_slug,
278
- apiSlugRepr: pyRepr(obj.api_slug),
279
- singularNoun: obj.singular_noun,
280
- singularNounRepr: pyRepr(obj.singular_noun),
281
- pascal,
282
- staticName,
283
- attributes,
284
- hasAttributes,
285
- attrSlugsLiteral,
286
- attrSlugsFrozensetRepr,
287
- multiValueSlugs,
288
- hasMultiValueSlugs: multiValueSlugs.length > 0,
289
- multiValueFrozensetRepr,
290
- attributeTupleRepr: renderAttributeTuple(obj.attributes ?? []),
291
- recordValuesTypeName,
292
- inputValuesTypeName,
293
- attributeSlugTypeName,
294
- filterTypeName,
295
- staticDeclaration
296
- };
297
- }
298
- function buildToolCtx(tool) {
299
- const normalizedName = canonicalToolName(tool.name);
300
- return {
301
- name: normalizedName,
302
- nameRepr: pyRepr(normalizedName),
303
- methodName: TOOL_METHOD_NAME_BY_TOOL[normalizedName],
304
- outputModel: TOOL_OUTPUT_MODEL_BY_TOOL[normalizedName],
305
- approvable: !tool.isReadOnly || tool.supportsApproval
306
- };
307
- }
308
- function buildToolNamesLiteral(tools) {
309
- return tools.map(tool => tool.nameRepr).join(", ");
310
- }
311
- function buildExportedNames(attio, github, gmail, linear, slack, snowflake, workos) {
312
- const names = ["Schedule", "GeneratedTools", "create_tools", "attach_tools", "TerseAgent"];
313
- for (const tool of [...(attio?.tools ?? []), ...(slack?.tools ?? []), ...(snowflake?.tools ?? [])]) {
314
- pushUnique(names, tool.outputModel);
315
- }
316
- if ((attio?.approvableTools.length ?? 0) > 0)
317
- names.push("AttioToolNames");
318
- if ((slack?.approvableTools.length ?? 0) > 0)
319
- names.push("SlackToolNames");
320
- if ((snowflake?.approvableTools.length ?? 0) > 0)
321
- names.push("SnowflakeToolNames");
322
- if ((attio?.approvableTools.length ?? 0) > 0 || (slack?.approvableTools.length ?? 0) > 0 || (snowflake?.approvableTools.length ?? 0) > 0) {
323
- names.push("AllToolNames");
324
- }
325
- if (attio) {
326
- names.push("AttioAttributeDefinition", "AttioObjectType", "AttioObjects", "Attio");
327
- if (attio.hasAttrs) {
328
- for (const obj of attio.objects) {
329
- if (!obj.hasAttributes)
330
- continue;
331
- names.push(obj.recordValuesTypeName, obj.inputValuesTypeName, obj.filterTypeName, obj.attributeSlugTypeName);
332
- }
333
- }
334
- }
335
- else {
336
- names.push("Attio");
337
- }
338
- if (github)
339
- names.push("GitHub", "GitHubOwner", "GitHubRepo");
340
- if (gmail)
341
- names.push("Gmail");
342
- names.push("Linear", "LinearProject", "LinearTeam");
343
- names.push("Slack", "SlackChannel");
344
- names.push("Snowflake", "Webhook");
345
- if (workos)
346
- names.push("WorkOS");
347
- return names;
348
- }
349
- function isAttioMultiValue(attr) {
350
- const slug = (attr.api_slug ?? "").toLowerCase();
351
- const type = (attr.type ?? "").toLowerCase();
352
- return (type.includes("multi") ||
353
- type.includes("array") ||
354
- type.includes("list") ||
355
- ["email_addresses", "domains", "phone_numbers", "social_profiles", "links", "tags"].includes(slug) ||
356
- slug.endsWith("_addresses") ||
357
- slug.endsWith("_ids"));
358
- }
359
- function attioBasePythonType(attr) {
360
- const type = (attr.type ?? "").toLowerCase();
361
- const slug = (attr.api_slug ?? "").toLowerCase();
362
- if (type.includes("checkbox") || type.includes("boolean"))
363
- return "bool";
364
- if (["number", "currency", "rating", "percent"].some(keyword => type.includes(keyword)))
365
- return "float";
366
- if (["date", "time", "email", "domain", "phone", "url", "select", "status", "text", "string", "name"].some(keyword => type.includes(keyword))) {
367
- return "str";
368
- }
369
- if (["location", "address", "reference", "record", "actor"].some(keyword => type.includes(keyword))) {
370
- return "dict[str, Any]";
371
- }
372
- if (["email_addresses", "domains", "phone_numbers", "name"].includes(slug))
373
- return "str";
374
- return "Any";
375
- }
376
- function attioRecordPythonType(attr) {
377
- const baseType = attioBasePythonType(attr);
378
- return isAttioMultiValue(attr) ? `list[${baseType}]` : baseType;
379
- }
380
- function attioInputPythonType(attr) {
381
- const baseType = attioBasePythonType(attr);
382
- return isAttioMultiValue(attr) ? `${baseType} | list[${baseType}]` : baseType;
383
- }
384
- function attioFilterPythonType(attr) {
385
- const valueType = attioBasePythonType(attr);
386
- return valueType === "Any" || valueType === "dict[str, Any]" ? "dict[str, Any]" : `${valueType} | dict[str, Any]`;
387
- }
388
- function renderAttributeTuple(attributes) {
389
- if (attributes.length === 0)
390
- return "()";
391
- const parts = attributes.map(attr => {
392
- const args = [`api_slug=${pyRepr(attr.api_slug ?? "")}`];
393
- if (attr.title)
394
- args.push(`title=${pyRepr(attr.title)}`);
395
- if (attr.type)
396
- args.push(`type=${pyRepr(attr.type)}`);
397
- if (attr.is_required)
398
- args.push("is_required=True");
399
- if (attr.is_unique)
400
- args.push("is_unique=True");
401
- return `AttioAttributeDefinition(${args.join(", ")})`;
402
- });
403
- return `(${parts.join(", ")},)`;
404
- }
405
- function selectSupportedTools(tools, integration) {
406
- const available = new Map();
407
- for (const tool of tools) {
408
- if (tool.integration !== integration)
409
- continue;
410
- const normalizedName = canonicalToolName(tool.name);
411
- if (!SUPPORTED_TOOL_NAMES.has(normalizedName))
412
- continue;
413
- available.set(normalizedName, { ...tool, name: normalizedName });
414
- }
415
- const ordered = [];
416
- for (const [supportedIntegration, toolName] of SUPPORTED_TOOL_SPECS) {
417
- if (supportedIntegration !== integration)
418
- continue;
419
- const tool = available.get(toolName);
420
- if (tool)
421
- ordered.push(tool);
422
- }
423
- return ordered;
424
- }
425
- function canonicalToolName(toolName) {
426
- return TOOL_NAME_ALIASES[toolName] ?? toolName;
427
- }
428
- function toPascalCase(value) {
429
- const normalized = value
430
- .split(/[^0-9A-Za-z]+/)
431
- .filter(Boolean)
432
- .map(part => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`)
433
- .join("");
434
- return /^\d/.test(normalized) ? `_${normalized}` : normalized;
435
- }
436
- function uniqueName(candidate, usedNames) {
437
- if (!usedNames.has(candidate)) {
438
- usedNames.add(candidate);
439
- return candidate;
440
- }
441
- let index = 2;
442
- while (usedNames.has(`${candidate}${index}`))
443
- index++;
444
- const unique = `${candidate}${index}`;
445
- usedNames.add(unique);
446
- return unique;
447
- }
448
- function pushUnique(values, value) {
449
- if (!values.includes(value))
450
- values.push(value);
451
- }
452
- //# sourceMappingURL=preparePythonCodegenData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preparePythonCodegenData.js","sourceRoot":"","sources":["../../../src/providers/python/preparePythonCodegenData.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { type PythonTemplateContext } from "./preparePythonCodegenData.js";
2
- export declare function renderPythonGeneratedCode(context: PythonTemplateContext): string;
3
- //# sourceMappingURL=pythonTemplateEngine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pythonTemplateEngine.d.ts","sourceRoot":"","sources":["../../../src/providers/python/pythonTemplateEngine.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,qBAAqB,EAAsB,MAAM,+BAA+B,CAAA;AA4B9F,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAEhF"}
@@ -1,30 +0,0 @@
1
- import Handlebars from "handlebars";
2
- import fs from "node:fs";
3
- import path from "node:path";
4
- import { getTemplatesRoot, readTemplateFile } from "../templateUtils.js";
5
- import { pyListRepr, pyRepr } from "./preparePythonCodegenData.js";
6
- let template;
7
- function getHandlebars() {
8
- const handlebars = Handlebars.create();
9
- handlebars.registerHelper("pyRepr", (value) => pyRepr(String(value ?? "")));
10
- handlebars.registerHelper("pyListRepr", (values) => (Array.isArray(values) ? pyListRepr(values.map(value => String(value))) : "[]"));
11
- handlebars.registerHelper("eq", (left, right) => left === right);
12
- const partialsDir = path.join(getTemplatesRoot(), "python", "codegen", "partials");
13
- for (const entry of fs.readdirSync(partialsDir).sort()) {
14
- if (!entry.endsWith(".hbs"))
15
- continue;
16
- handlebars.registerPartial(path.basename(entry, ".hbs"), fs.readFileSync(path.join(partialsDir, entry), "utf-8"));
17
- }
18
- return handlebars;
19
- }
20
- function getCompiledTemplate() {
21
- if (!template) {
22
- const handlebars = getHandlebars();
23
- template = handlebars.compile(readTemplateFile("python/codegen/generated.hbs"), { noEscape: true });
24
- }
25
- return template;
26
- }
27
- export function renderPythonGeneratedCode(context) {
28
- return getCompiledTemplate()(context);
29
- }
30
- //# sourceMappingURL=pythonTemplateEngine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pythonTemplateEngine.js","sourceRoot":"","sources":["../../../src/providers/python/pythonTemplateEngine.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAExE,OAAO,EAA8B,UAAU,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAE9F,IAAI,QAAwE,CAAA;AAE5E,SAAS,aAAa;IAClB,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,CAAA;IAEtC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACpF,UAAU,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7I,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,IAAa,EAAE,KAAc,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;IAElF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IAClF,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAQ;QACrC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IACrH,CAAC;IAED,OAAO,UAAU,CAAA;AACrB,CAAC;AAED,SAAS,mBAAmB;IACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;QAClC,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAwB,gBAAgB,CAAC,8BAA8B,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9H,CAAC;IACD,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAA8B;IACpE,OAAO,mBAAmB,EAAE,CAAC,OAAO,CAAC,CAAA;AACzC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function loadDotenv(cwd: string): NodeJS.ProcessEnv;
2
- //# sourceMappingURL=shellUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shellUtils.d.ts","sourceRoot":"","sources":["../../../src/providers/shared/shellUtils.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAuBzD"}
@@ -1,25 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- export function loadDotenv(cwd) {
4
- const env = { ...process.env };
5
- const envPath = path.join(cwd, ".env");
6
- if (!fs.existsSync(envPath))
7
- return env;
8
- const lines = fs.readFileSync(envPath, "utf-8").split(/\r?\n/);
9
- for (const line of lines) {
10
- const trimmed = line.trim();
11
- if (!trimmed || trimmed.startsWith("#"))
12
- continue;
13
- const separatorIndex = trimmed.indexOf("=");
14
- if (separatorIndex === -1)
15
- continue;
16
- const key = trimmed.slice(0, separatorIndex).trim();
17
- let value = trimmed.slice(separatorIndex + 1).trim();
18
- if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
19
- value = value.slice(1, -1);
20
- }
21
- env[key] = value;
22
- }
23
- return env;
24
- }
25
- //# sourceMappingURL=shellUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shellUtils.js","sourceRoot":"","sources":["../../../src/providers/shared/shellUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,MAAM,UAAU,UAAU,CAAC,GAAW;IAClC,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,GAAG,CAAA;IAEvC,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QAEjD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,cAAc,KAAK,CAAC,CAAC;YAAE,SAAQ;QAEnC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE,CAAA;QACnD,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACpD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACnG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9B,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,OAAO,GAAG,CAAA;AACd,CAAC"}
@@ -1,7 +0,0 @@
1
- type Handler = (request: Request) => Promise<Response>;
2
- export declare function noteEnqueue(): void;
3
- export declare function setParkListener(listener: (() => void) | undefined): void;
4
- export declare function trackStepHandler(handler: Handler): Handler;
5
- export declare function trackWorkflowHandler(handler: Handler, dataDir: string): Handler;
6
- export {};
7
- //# sourceMappingURL=parkSignals.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parkSignals.d.ts","sourceRoot":"","sources":["../../../src/providers/typescript/parkSignals.ts"],"names":[],"mappings":"AAYA,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAOtD,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAExE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAS1D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAY/E"}
@@ -1,45 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- let enqueueCount = 0;
4
- let inFlightSteps = 0;
5
- let onParked;
6
- // terseWorld calls this for every queue() call, delayed or not.
7
- export function noteEnqueue() {
8
- enqueueCount++;
9
- }
10
- export function setParkListener(listener) {
11
- onParked = listener;
12
- }
13
- export function trackStepHandler(handler) {
14
- return async (request) => {
15
- inFlightSteps++;
16
- try {
17
- return await handler(request);
18
- }
19
- finally {
20
- inFlightSteps--;
21
- }
22
- };
23
- }
24
- export function trackWorkflowHandler(handler, dataDir) {
25
- return async (request) => {
26
- const enqueuesBefore = enqueueCount;
27
- try {
28
- return await handler(request);
29
- }
30
- finally {
31
- const scheduledNothing = enqueueCount === enqueuesBefore;
32
- if (scheduledNothing && inFlightSteps === 0 && hasUnresolvedHooks(dataDir)) {
33
- onParked?.();
34
- }
35
- }
36
- };
37
- }
38
- // helpers
39
- function hasUnresolvedHooks(dataDir) {
40
- const hooksDir = path.join(dataDir, "hooks");
41
- if (!fs.existsSync(hooksDir))
42
- return false;
43
- return fs.readdirSync(hooksDir).some(file => file.endsWith(".json"));
44
- }
45
- //# sourceMappingURL=parkSignals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parkSignals.js","sourceRoot":"","sources":["../../../src/providers/typescript/parkSignals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAa5B,IAAI,YAAY,GAAG,CAAC,CAAA;AACpB,IAAI,aAAa,GAAG,CAAC,CAAA;AACrB,IAAI,QAAkC,CAAA;AAEtC,gEAAgE;AAChE,MAAM,UAAU,WAAW;IACvB,YAAY,EAAE,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAkC;IAC9D,QAAQ,GAAG,QAAQ,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC7C,OAAO,KAAK,EAAC,OAAO,EAAC,EAAE;QACnB,aAAa,EAAE,CAAA;QACf,IAAI,CAAC;YACD,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC;gBAAS,CAAC;YACP,aAAa,EAAE,CAAA;QACnB,CAAC;IACL,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAgB,EAAE,OAAe;IAClE,OAAO,KAAK,EAAC,OAAO,EAAC,EAAE;QACnB,MAAM,cAAc,GAAG,YAAY,CAAA;QACnC,IAAI,CAAC;YACD,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC;gBAAS,CAAC;YACP,MAAM,gBAAgB,GAAG,YAAY,KAAK,cAAc,CAAA;YACxD,IAAI,gBAAgB,IAAI,aAAa,KAAK,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzE,QAAQ,EAAE,EAAE,CAAA;YAChB,CAAC;QACL,CAAC;IACL,CAAC,CAAA;AACL,CAAC;AAED,UAAU;AAEV,SAAS,kBAAkB,CAAC,OAAe;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1C,OAAO,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;AACxE,CAAC"}