terse-cli 0.1.16 → 0.1.17

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 (122) hide show
  1. package/dist/assertProjectRoot.d.ts +3 -2
  2. package/dist/assertProjectRoot.d.ts.map +1 -1
  3. package/dist/assertProjectRoot.js +5 -8
  4. package/dist/assertProjectRoot.js.map +1 -1
  5. package/dist/deploy.d.ts +2 -1
  6. package/dist/deploy.d.ts.map +1 -1
  7. package/dist/deploy.js +11 -12
  8. package/dist/deploy.js.map +1 -1
  9. package/dist/generate.d.ts +2 -1
  10. package/dist/generate.d.ts.map +1 -1
  11. package/dist/generate.js +12 -11
  12. package/dist/generate.js.map +1 -1
  13. package/dist/index.js +10 -7
  14. package/dist/index.js.map +1 -1
  15. package/dist/init.d.ts +2 -1
  16. package/dist/init.d.ts.map +1 -1
  17. package/dist/init.js +29 -57
  18. package/dist/init.js.map +1 -1
  19. package/dist/loadJob.d.ts +4 -3
  20. package/dist/loadJob.d.ts.map +1 -1
  21. package/dist/loadJob.js +6 -54
  22. package/dist/loadJob.js.map +1 -1
  23. package/dist/providers/LanguageProvider.d.ts +31 -0
  24. package/dist/providers/LanguageProvider.d.ts.map +1 -0
  25. package/dist/providers/LanguageProvider.js +2 -0
  26. package/dist/providers/LanguageProvider.js.map +1 -0
  27. package/dist/providers/codegenTypes.d.ts +130 -0
  28. package/dist/providers/codegenTypes.d.ts.map +1 -0
  29. package/dist/providers/codegenTypes.js +2 -0
  30. package/dist/providers/codegenTypes.js.map +1 -0
  31. package/dist/providers/python/PythonProvider.d.ts +33 -0
  32. package/dist/providers/python/PythonProvider.d.ts.map +1 -0
  33. package/dist/providers/python/PythonProvider.js +369 -0
  34. package/dist/providers/python/PythonProvider.js.map +1 -0
  35. package/dist/providers/python/preparePythonCodegenData.d.ts +73 -0
  36. package/dist/providers/python/preparePythonCodegenData.d.ts.map +1 -0
  37. package/dist/providers/python/preparePythonCodegenData.js +338 -0
  38. package/dist/providers/python/preparePythonCodegenData.js.map +1 -0
  39. package/dist/providers/python/pythonTemplateEngine.d.ts +3 -0
  40. package/dist/providers/python/pythonTemplateEngine.d.ts.map +1 -0
  41. package/dist/providers/python/pythonTemplateEngine.js +30 -0
  42. package/dist/providers/python/pythonTemplateEngine.js.map +1 -0
  43. package/dist/providers/resolveProvider.d.ts +8 -0
  44. package/dist/providers/resolveProvider.d.ts.map +1 -0
  45. package/dist/providers/resolveProvider.js +47 -0
  46. package/dist/providers/resolveProvider.js.map +1 -0
  47. package/dist/providers/shared/sessionStream.d.ts +24 -0
  48. package/dist/providers/shared/sessionStream.d.ts.map +1 -0
  49. package/dist/providers/shared/sessionStream.js +159 -0
  50. package/dist/providers/shared/sessionStream.js.map +1 -0
  51. package/dist/providers/shared/shellUtils.d.ts +13 -0
  52. package/dist/providers/shared/shellUtils.d.ts.map +1 -0
  53. package/dist/providers/shared/shellUtils.js +70 -0
  54. package/dist/providers/shared/shellUtils.js.map +1 -0
  55. package/dist/providers/templateUtils.d.ts +7 -0
  56. package/dist/providers/templateUtils.d.ts.map +1 -0
  57. package/dist/providers/templateUtils.js +30 -0
  58. package/dist/providers/templateUtils.js.map +1 -0
  59. package/dist/providers/typescript/TypeScriptProvider.d.ts +33 -0
  60. package/dist/providers/typescript/TypeScriptProvider.d.ts.map +1 -0
  61. package/dist/providers/typescript/TypeScriptProvider.js +162 -0
  62. package/dist/providers/typescript/TypeScriptProvider.js.map +1 -0
  63. package/dist/providers/typescript/prepareCodegenData.d.ts +145 -0
  64. package/dist/providers/typescript/prepareCodegenData.d.ts.map +1 -0
  65. package/dist/providers/typescript/prepareCodegenData.js +834 -0
  66. package/dist/providers/typescript/prepareCodegenData.js.map +1 -0
  67. package/dist/providers/typescript/templateEngine.d.ts +3 -0
  68. package/dist/providers/typescript/templateEngine.d.ts.map +1 -0
  69. package/dist/providers/typescript/templateEngine.js +37 -0
  70. package/dist/providers/typescript/templateEngine.js.map +1 -0
  71. package/dist/run.d.ts +2 -11
  72. package/dist/run.d.ts.map +1 -1
  73. package/dist/run.js +5 -192
  74. package/dist/run.js.map +1 -1
  75. package/dist/shared/types.d.ts +899 -107
  76. package/dist/shared/types.d.ts.map +1 -1
  77. package/dist/test.d.ts +2 -1
  78. package/dist/test.d.ts.map +1 -1
  79. package/dist/test.js +5 -5
  80. package/dist/test.js.map +1 -1
  81. package/package.json +2 -2
  82. package/templates/python/codegen/generated.hbs +6 -0
  83. package/templates/python/codegen/partials/attio-list-objects-method.hbs +8 -0
  84. package/templates/python/codegen/partials/attio-object-types.hbs +23 -0
  85. package/templates/python/codegen/partials/attio-query-records-method.hbs +45 -0
  86. package/templates/python/codegen/partials/attio-section.hbs +111 -0
  87. package/templates/python/codegen/partials/attio-upsert-record-method.hbs +51 -0
  88. package/templates/python/codegen/partials/deterministic-tools-section.hbs +194 -0
  89. package/templates/python/codegen/partials/file-header.hbs +32 -0
  90. package/templates/python/codegen/partials/schedule-section.hbs +9 -0
  91. package/templates/python/codegen/partials/snowflake-section.hbs +26 -0
  92. package/templates/python/codegen/partials/tool-name-types.hbs +15 -0
  93. package/templates/python/init/.python-version.hbs +1 -0
  94. package/templates/python/init/README.md.hbs +38 -0
  95. package/templates/python/init/gitignore.hbs +3 -0
  96. package/templates/python/init/pyproject.toml.hbs +16 -0
  97. package/templates/python/init/src/main.py.hbs +21 -0
  98. package/templates/typescript/codegen/generated.hbs +17 -0
  99. package/templates/typescript/codegen/partials/atlassian-section.hbs +32 -0
  100. package/templates/typescript/codegen/partials/attio-section.hbs +38 -0
  101. package/templates/typescript/codegen/partials/datadog-section.hbs +11 -0
  102. package/templates/typescript/codegen/partials/figma-section.hbs +13 -0
  103. package/templates/typescript/codegen/partials/github-section.hbs +62 -0
  104. package/templates/typescript/codegen/partials/gmail-section.hbs +21 -0
  105. package/templates/typescript/codegen/partials/header.hbs +12 -0
  106. package/templates/typescript/codegen/partials/launchdarkly-section.hbs +11 -0
  107. package/templates/typescript/codegen/partials/linear-section.hbs +27 -0
  108. package/templates/typescript/codegen/partials/notion-section.hbs +15 -0
  109. package/templates/typescript/codegen/partials/posthog-section.hbs +11 -0
  110. package/templates/typescript/codegen/partials/resource-class.hbs +9 -0
  111. package/templates/typescript/codegen/partials/slack-section.hbs +23 -0
  112. package/templates/typescript/codegen/partials/snowflake-section.hbs +9 -0
  113. package/templates/typescript/codegen/partials/system-section.hbs +18 -0
  114. package/templates/typescript/codegen/partials/tools-section.hbs +68 -0
  115. package/templates/typescript/codegen/partials/workos-section.hbs +53 -0
  116. package/templates/typescript/init/env.example.hbs +1 -0
  117. package/templates/{package.json.tmpl → typescript/init/package.json.hbs} +1 -1
  118. package/templates/{src/index.ts.tmpl → typescript/init/src/index.ts.hbs} +1 -3
  119. /package/templates/{env.example.tmpl → python/init/env.example.hbs} +0 -0
  120. /package/templates/{.claude/settings.json.tmpl → typescript/init/.claude/settings.json.hbs} +0 -0
  121. /package/templates/{gitignore.tmpl → typescript/init/gitignore.hbs} +0 -0
  122. /package/templates/{tsconfig.json.tmpl → typescript/init/tsconfig.json.hbs} +0 -0
@@ -0,0 +1,338 @@
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
+ ["snowflake", "snowflakeExecuteQuery", "execute_query"],
6
+ ["snowflake", "snowflakeExplainQuery", "explain_query"],
7
+ ];
8
+ const SUPPORTED_TOOL_NAMES = new Set(SUPPORTED_TOOL_SPECS.map(([, toolName]) => toolName));
9
+ const TOOL_METHOD_NAME_BY_TOOL = Object.fromEntries(SUPPORTED_TOOL_SPECS.map(([, toolName, methodName]) => [toolName, methodName]));
10
+ const TOOL_NAME_ALIASES = {
11
+ snowflake_execute_query: "snowflakeExecuteQuery",
12
+ snowflake_explain_query: "snowflakeExplainQuery",
13
+ };
14
+ const TOOL_OUTPUT_MODEL_BY_TOOL = {
15
+ attio_list_objects: "AttioListObjectsToolOutput",
16
+ attio_query_records: "AttioQueryRecordsToolOutput",
17
+ attio_upsert_record: "AttioUpsertRecordToolOutput",
18
+ snowflakeExecuteQuery: "SnowflakeExecuteQueryToolOutput",
19
+ snowflakeExplainQuery: "SnowflakeExplainQueryToolOutput",
20
+ };
21
+ export function preparePythonTemplateContext(input) {
22
+ const attioTools = selectSupportedTools(input.tools, "attio");
23
+ const snowflakeTools = selectSupportedTools(input.tools, "snowflake");
24
+ const attio = input.attio[0] ? buildAttioCtx(input.attio[0], attioTools) : null;
25
+ const snowflake = input.snowflake[0] ? buildSnowflakeCtx(input.snowflake[0], snowflakeTools) : null;
26
+ const hasAttio = attio !== null;
27
+ const hasAttioAttrs = !!attio?.hasAttrs;
28
+ const hasAttioTools = (attio?.tools.length ?? 0) > 0;
29
+ const hasSnowflake = snowflake !== null;
30
+ const hasSnowflakeTools = (snowflake?.tools.length ?? 0) > 0;
31
+ const hasAnyToolNameTypes = (attio?.approvableTools.length ?? 0) > 0 || (snowflake?.approvableTools.length ?? 0) > 0;
32
+ const hasAnyDeterministicTools = hasAttioTools || hasSnowflakeTools;
33
+ const sdkImports = ["SkillConfig", "TerseAgent as _SdkTerseAgent", "TriggerConfig"];
34
+ if (hasAttioAttrs && hasAttioTools) {
35
+ sdkImports.push("AttioTypedQueryResult", "AttioTypedRecord", "AttioTypedUpsertResult");
36
+ }
37
+ for (const tool of [...(attio?.tools ?? []), ...(snowflake?.tools ?? [])]) {
38
+ pushUnique(sdkImports, tool.outputModel);
39
+ }
40
+ const typingImportsLine = hasAttioAttrs
41
+ ? "from typing import Any, Generic, Literal, Sequence, TypeVar, TypedDict, cast"
42
+ : hasAnyToolNameTypes
43
+ ? "from typing import Literal"
44
+ : undefined;
45
+ const pydanticImportsLine = hasAttio
46
+ ? `from pydantic import BaseModel, ConfigDict${hasAnyDeterministicTools ? ", validate_call" : ""}`
47
+ : hasSnowflakeTools
48
+ ? "from pydantic import validate_call"
49
+ : undefined;
50
+ const exportedNames = buildExportedNames(attio, snowflake);
51
+ return {
52
+ attio,
53
+ snowflake,
54
+ hasAttio,
55
+ hasAttioAttrs,
56
+ hasAttioTools,
57
+ hasSnowflake,
58
+ hasSnowflakeTools,
59
+ hasAnyToolNameTypes,
60
+ hasAnyDeterministicTools,
61
+ sdkImports,
62
+ typingImportsLine,
63
+ pydanticImportsLine,
64
+ needsJsonImport: hasAttioTools,
65
+ attioToolNamesLiteral: attio?.approvableTools.length ? buildToolNamesLiteral(attio.approvableTools) : undefined,
66
+ snowflakeToolNamesLiteral: snowflake?.approvableTools.length
67
+ ? buildToolNamesLiteral(snowflake.approvableTools)
68
+ : undefined,
69
+ allToolNamesLiteral: hasAnyToolNameTypes
70
+ ? buildToolNamesLiteral([...(attio?.approvableTools ?? []), ...(snowflake?.approvableTools ?? [])])
71
+ : undefined,
72
+ exportedNamesRepr: pyListRepr(exportedNames),
73
+ };
74
+ }
75
+ export function pyRepr(value) {
76
+ let result = "'";
77
+ for (const char of value) {
78
+ switch (char) {
79
+ case "\\":
80
+ result += "\\\\";
81
+ break;
82
+ case "'":
83
+ result += "\\'";
84
+ break;
85
+ case "\n":
86
+ result += "\\n";
87
+ break;
88
+ case "\r":
89
+ result += "\\r";
90
+ break;
91
+ case "\t":
92
+ result += "\\t";
93
+ break;
94
+ default: {
95
+ const code = char.charCodeAt(0);
96
+ result += code < 32 ? `\\x${code.toString(16).padStart(2, "0")}` : char;
97
+ break;
98
+ }
99
+ }
100
+ }
101
+ return `${result}'`;
102
+ }
103
+ export function pyListRepr(values) {
104
+ return `[${values.map(pyRepr).join(", ")}]`;
105
+ }
106
+ function buildAttioCtx(instance, tools) {
107
+ const hasAttrs = instance.objects.some(obj => (obj.attributes?.length ?? 0) > 0);
108
+ const usedNames = new Set();
109
+ const objects = instance.objects.map(obj => buildAttioObjectCtx(obj, usedNames, hasAttrs));
110
+ const toolContexts = tools.map(buildToolCtx);
111
+ return {
112
+ instanceIdRepr: pyRepr(instance.id),
113
+ hasAttrs,
114
+ objects,
115
+ tools: toolContexts,
116
+ approvableTools: toolContexts.filter(tool => tool.approvable),
117
+ skillToolType: toolContexts.some(tool => tool.approvable) ? "AttioToolNames" : "str",
118
+ skillObjectType: hasAttrs ? "AttioObjectType[Any, Any, Any, Any]" : "AttioObjectType",
119
+ };
120
+ }
121
+ function buildSnowflakeCtx(instance, tools) {
122
+ const toolContexts = tools.map(buildToolCtx);
123
+ return {
124
+ instanceIdRepr: pyRepr(instance.id),
125
+ tools: toolContexts,
126
+ approvableTools: toolContexts.filter(tool => tool.approvable),
127
+ skillToolType: toolContexts.some(tool => tool.approvable) ? "SnowflakeToolNames" : "str",
128
+ };
129
+ }
130
+ function buildAttioObjectCtx(obj, usedNames, hasAttrs) {
131
+ const pascal = toPascalCase(obj.singular_noun || obj.api_slug) || "Object";
132
+ const staticName = uniqueName(pascal, usedNames);
133
+ const attributes = (obj.attributes ?? []).map(attr => ({
134
+ apiSlug: attr.api_slug ?? "",
135
+ recordType: attioRecordPythonType(attr),
136
+ inputType: attioInputPythonType(attr),
137
+ filterType: attioFilterPythonType(attr),
138
+ }));
139
+ const attrSlugsLiteral = attributes.length ? attributes.map(attr => pyRepr(attr.apiSlug)).join(", ") : "''";
140
+ const attrSlugsFrozensetRepr = attributes.length
141
+ ? `frozenset({${attributes.map(attr => pyRepr(attr.apiSlug)).join(", ")}})`
142
+ : "frozenset()";
143
+ const multiValueSlugs = (obj.attributes ?? [])
144
+ .filter(attr => isAttioMultiValue(attr))
145
+ .map(attr => attr.api_slug ?? "")
146
+ .filter(Boolean);
147
+ const multiValueFrozensetRepr = multiValueSlugs.length
148
+ ? `frozenset({${multiValueSlugs.map(pyRepr).join(", ")}})`
149
+ : "frozenset()";
150
+ const recordValuesTypeName = `${pascal}RecordValues`;
151
+ const inputValuesTypeName = `${pascal}InputValues`;
152
+ const attributeSlugTypeName = `${pascal}AttributeSlug`;
153
+ const filterTypeName = `${pascal}Filter`;
154
+ const hasAttributes = attributes.length > 0;
155
+ const staticDeclaration = hasAttrs && hasAttributes
156
+ ? `${staticName}: AttioObjectType[${attributeSlugTypeName}, ${recordValuesTypeName}, ${inputValuesTypeName}, ${filterTypeName}] = AttioObjectType(api_slug=${pyRepr(obj.api_slug)}, name=${pyRepr(obj.singular_noun)}, attributes=${renderAttributeTuple(obj.attributes ?? [])})`
157
+ : `${staticName} = AttioObjectType(api_slug=${pyRepr(obj.api_slug)}, name=${pyRepr(obj.singular_noun)})`;
158
+ return {
159
+ apiSlug: obj.api_slug,
160
+ apiSlugRepr: pyRepr(obj.api_slug),
161
+ singularNoun: obj.singular_noun,
162
+ singularNounRepr: pyRepr(obj.singular_noun),
163
+ pascal,
164
+ staticName,
165
+ attributes,
166
+ hasAttributes,
167
+ attrSlugsLiteral,
168
+ attrSlugsFrozensetRepr,
169
+ multiValueSlugs,
170
+ hasMultiValueSlugs: multiValueSlugs.length > 0,
171
+ multiValueFrozensetRepr,
172
+ attributeTupleRepr: renderAttributeTuple(obj.attributes ?? []),
173
+ recordValuesTypeName,
174
+ inputValuesTypeName,
175
+ attributeSlugTypeName,
176
+ filterTypeName,
177
+ staticDeclaration,
178
+ };
179
+ }
180
+ function buildToolCtx(tool) {
181
+ const normalizedName = canonicalToolName(tool.name);
182
+ return {
183
+ name: normalizedName,
184
+ nameRepr: pyRepr(normalizedName),
185
+ methodName: TOOL_METHOD_NAME_BY_TOOL[normalizedName],
186
+ outputModel: TOOL_OUTPUT_MODEL_BY_TOOL[normalizedName],
187
+ approvable: !tool.isReadOnly || tool.supportsApproval,
188
+ };
189
+ }
190
+ function buildToolNamesLiteral(tools) {
191
+ return tools.map(tool => tool.nameRepr).join(", ");
192
+ }
193
+ function buildExportedNames(attio, snowflake) {
194
+ const names = ["Schedule", "GeneratedTools", "create_tools", "attach_tools", "TerseAgent"];
195
+ for (const tool of [...(attio?.tools ?? []), ...(snowflake?.tools ?? [])]) {
196
+ pushUnique(names, tool.outputModel);
197
+ }
198
+ if ((attio?.approvableTools.length ?? 0) > 0)
199
+ names.push("AttioToolNames");
200
+ if ((snowflake?.approvableTools.length ?? 0) > 0)
201
+ names.push("SnowflakeToolNames");
202
+ if ((attio?.approvableTools.length ?? 0) > 0 || (snowflake?.approvableTools.length ?? 0) > 0) {
203
+ names.push("AllToolNames");
204
+ }
205
+ if (attio) {
206
+ names.push("AttioAttributeDefinition", "AttioObjectType", "AttioObjects", "Attio");
207
+ if (attio.hasAttrs) {
208
+ for (const obj of attio.objects) {
209
+ if (!obj.hasAttributes)
210
+ continue;
211
+ names.push(obj.recordValuesTypeName, obj.inputValuesTypeName, obj.filterTypeName, obj.attributeSlugTypeName);
212
+ }
213
+ }
214
+ }
215
+ else {
216
+ names.push("Attio");
217
+ }
218
+ names.push("Snowflake");
219
+ return names;
220
+ }
221
+ function isAttioMultiValue(attr) {
222
+ const slug = (attr.api_slug ?? "").toLowerCase();
223
+ const type = (attr.type ?? "").toLowerCase();
224
+ return (type.includes("multi") ||
225
+ type.includes("array") ||
226
+ type.includes("list") ||
227
+ ["email_addresses", "domains", "phone_numbers", "social_profiles", "links", "tags"].includes(slug) ||
228
+ slug.endsWith("_addresses") ||
229
+ slug.endsWith("_ids"));
230
+ }
231
+ function attioBasePythonType(attr) {
232
+ const type = (attr.type ?? "").toLowerCase();
233
+ const slug = (attr.api_slug ?? "").toLowerCase();
234
+ if (type.includes("checkbox") || type.includes("boolean"))
235
+ return "bool";
236
+ if (["number", "currency", "rating", "percent"].some(keyword => type.includes(keyword)))
237
+ return "float";
238
+ if ([
239
+ "date",
240
+ "time",
241
+ "email",
242
+ "domain",
243
+ "phone",
244
+ "url",
245
+ "select",
246
+ "status",
247
+ "text",
248
+ "string",
249
+ "name",
250
+ ].some(keyword => type.includes(keyword))) {
251
+ return "str";
252
+ }
253
+ if (["location", "address", "reference", "record", "actor"].some(keyword => type.includes(keyword))) {
254
+ return "dict[str, Any]";
255
+ }
256
+ if (["email_addresses", "domains", "phone_numbers", "name"].includes(slug))
257
+ return "str";
258
+ return "Any";
259
+ }
260
+ function attioRecordPythonType(attr) {
261
+ const baseType = attioBasePythonType(attr);
262
+ return isAttioMultiValue(attr) ? `list[${baseType}]` : baseType;
263
+ }
264
+ function attioInputPythonType(attr) {
265
+ const baseType = attioBasePythonType(attr);
266
+ return isAttioMultiValue(attr) ? `${baseType} | list[${baseType}]` : baseType;
267
+ }
268
+ function attioFilterPythonType(attr) {
269
+ const valueType = attioBasePythonType(attr);
270
+ return valueType === "Any" || valueType === "dict[str, Any]"
271
+ ? "dict[str, Any]"
272
+ : `${valueType} | dict[str, Any]`;
273
+ }
274
+ function renderAttributeTuple(attributes) {
275
+ if (attributes.length === 0)
276
+ return "()";
277
+ const parts = attributes.map(attr => {
278
+ const args = [`api_slug=${pyRepr(attr.api_slug ?? "")}`];
279
+ if (attr.title)
280
+ args.push(`title=${pyRepr(attr.title)}`);
281
+ if (attr.type)
282
+ args.push(`type=${pyRepr(attr.type)}`);
283
+ if (attr.is_required)
284
+ args.push("is_required=True");
285
+ if (attr.is_unique)
286
+ args.push("is_unique=True");
287
+ return `AttioAttributeDefinition(${args.join(", ")})`;
288
+ });
289
+ return `(${parts.join(", ")},)`;
290
+ }
291
+ function selectSupportedTools(tools, integration) {
292
+ const available = new Map();
293
+ for (const tool of tools) {
294
+ if (tool.integration !== integration)
295
+ continue;
296
+ const normalizedName = canonicalToolName(tool.name);
297
+ if (!SUPPORTED_TOOL_NAMES.has(normalizedName))
298
+ continue;
299
+ available.set(normalizedName, { ...tool, name: normalizedName });
300
+ }
301
+ const ordered = [];
302
+ for (const [supportedIntegration, toolName] of SUPPORTED_TOOL_SPECS) {
303
+ if (supportedIntegration !== integration)
304
+ continue;
305
+ const tool = available.get(toolName);
306
+ if (tool)
307
+ ordered.push(tool);
308
+ }
309
+ return ordered;
310
+ }
311
+ function canonicalToolName(toolName) {
312
+ return TOOL_NAME_ALIASES[toolName] ?? toolName;
313
+ }
314
+ function toPascalCase(value) {
315
+ const normalized = value
316
+ .split(/[^0-9A-Za-z]+/)
317
+ .filter(Boolean)
318
+ .map(part => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`)
319
+ .join("");
320
+ return /^\d/.test(normalized) ? `_${normalized}` : normalized;
321
+ }
322
+ function uniqueName(candidate, usedNames) {
323
+ if (!usedNames.has(candidate)) {
324
+ usedNames.add(candidate);
325
+ return candidate;
326
+ }
327
+ let index = 2;
328
+ while (usedNames.has(`${candidate}${index}`))
329
+ index++;
330
+ const unique = `${candidate}${index}`;
331
+ usedNames.add(unique);
332
+ return unique;
333
+ }
334
+ function pushUnique(values, value) {
335
+ if (!values.includes(value))
336
+ values.push(value);
337
+ }
338
+ //# sourceMappingURL=preparePythonCodegenData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preparePythonCodegenData.js","sourceRoot":"","sources":["../../../src/providers/python/preparePythonCodegenData.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type PythonTemplateContext } from "./preparePythonCodegenData.js";
2
+ export declare function renderPythonGeneratedCode(context: PythonTemplateContext): string;
3
+ //# sourceMappingURL=pythonTemplateEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pythonTemplateEngine.d.ts","sourceRoot":"","sources":["../../../src/providers/python/pythonTemplateEngine.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAoC9F,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAEhF"}
@@ -0,0 +1,30 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import Handlebars from "handlebars";
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pythonTemplateEngine.js","sourceRoot":"","sources":["../../../src/providers/python/pythonTemplateEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,EAA8B,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,CACxD,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,CAChF,CAAA;IACD,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,CACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EAC5B,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAC1D,CAAA;IACL,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,CACzB,gBAAgB,CAAC,8BAA8B,CAAC,EAChD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAA;IACL,CAAC;IACD,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAA8B;IACpE,OAAO,mBAAmB,EAAE,CAAC,OAAO,CAAC,CAAA;AACzC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { LanguageProvider } from "./LanguageProvider.js";
2
+ export declare function resolveProvider(opts?: {
3
+ command?: string;
4
+ language?: string;
5
+ cwd?: string;
6
+ }): LanguageProvider;
7
+ export declare function resolveProviderByLanguage(language: string): LanguageProvider;
8
+ //# sourceMappingURL=resolveProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveProvider.d.ts","sourceRoot":"","sources":["../../src/providers/resolveProvider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAa7D,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE;IACnC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,gBAAgB,CA0BnB;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAc5E"}
@@ -0,0 +1,47 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { pythonProvider } from "./python/PythonProvider.js";
4
+ import { typeScriptProvider } from "./typescript/TypeScriptProvider.js";
5
+ const PROVIDERS = [typeScriptProvider, pythonProvider];
6
+ const LANGUAGE_ALIASES = {
7
+ ts: "typescript",
8
+ typescript: "typescript",
9
+ py: "python",
10
+ python: "python",
11
+ };
12
+ export function resolveProvider(opts) {
13
+ if (opts?.command === "init") {
14
+ return resolveProviderByLanguage(opts.language ?? "ts");
15
+ }
16
+ const cwd = opts?.cwd ?? process.cwd();
17
+ const matches = PROVIDERS.filter(provider => matchesProjectMarkers(provider, cwd));
18
+ if (matches.length === 1) {
19
+ return matches[0];
20
+ }
21
+ if (matches.length > 1) {
22
+ console.error(`Error: Multiple Terse project types detected: ${matches.map(provider => provider.displayName).join(", ")}.`);
23
+ process.exit(1);
24
+ }
25
+ console.error("Error: Could not detect Terse project language in the current directory.");
26
+ for (const provider of PROVIDERS) {
27
+ console.error(` ${provider.displayName}: ${provider.projectMarkers.requiredFiles.join(", ")}`);
28
+ }
29
+ process.exit(1);
30
+ }
31
+ export function resolveProviderByLanguage(language) {
32
+ const normalized = LANGUAGE_ALIASES[language.toLowerCase()];
33
+ if (!normalized) {
34
+ console.error(`Error: Unsupported language "${language}". Use ts, typescript, py, or python.`);
35
+ process.exit(1);
36
+ }
37
+ const provider = PROVIDERS.find(candidate => candidate.language === normalized);
38
+ if (!provider) {
39
+ console.error(`Error: No provider registered for "${normalized}".`);
40
+ process.exit(1);
41
+ }
42
+ return provider;
43
+ }
44
+ function matchesProjectMarkers(provider, cwd) {
45
+ return provider.projectMarkers.requiredFiles.every(relativePath => fs.existsSync(path.join(cwd, relativePath)));
46
+ }
47
+ //# sourceMappingURL=resolveProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveProvider.js","sourceRoot":"","sources":["../../src/providers/resolveProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAEvE,MAAM,SAAS,GAAuB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;AAE1E,MAAM,gBAAgB,GAAiD;IACnE,EAAE,EAAE,YAAY;IAChB,UAAU,EAAE,YAAY;IACxB,EAAE,EAAE,QAAQ;IACZ,MAAM,EAAE,QAAQ;CACnB,CAAA;AAED,MAAM,UAAU,eAAe,CAAC,IAI/B;IACG,IAAI,IAAI,EAAE,OAAO,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,yBAAyB,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACtC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,qBAAqB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAElF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;IACrB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CACT,iDAAiD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC/G,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAA;IACzF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CACT,KAAK,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnF,CAAA;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IACtD,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;IAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,gCAAgC,QAAQ,uCAAuC,CAAC,CAAA;QAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAA;IAC/E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,sCAAsC,UAAU,IAAI,CAAC,CAAA;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,SAAS,qBAAqB,CAAC,QAA0B,EAAE,GAAW;IAClE,OAAO,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAC9D,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAC9C,CAAA;AACL,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { SdkApprovalDecisionRequestBody, SdkAgentStreamEvent } from "../../shared/types.js";
2
+ type SessionStartedEvent = {
3
+ type: "session_started";
4
+ sessionId: string;
5
+ };
6
+ export type SessionStreamEvent = SdkAgentStreamEvent | SessionStartedEvent;
7
+ export type SessionHandle = {
8
+ sessionId: string;
9
+ close: () => void;
10
+ };
11
+ type SessionStreamOptions = {
12
+ verbose?: boolean;
13
+ isPaused?: () => boolean;
14
+ onEvent?: (event: SessionStreamEvent) => Promise<void> | void;
15
+ };
16
+ export declare function openSessionStream(apiKey: string, options?: SessionStreamOptions): Promise<SessionHandle>;
17
+ export declare function submitApprovalDecision(apiKey: string, params: SdkApprovalDecisionRequestBody): Promise<void>;
18
+ export declare function logSessionEvent(event: SessionStreamEvent, options?: {
19
+ isPaused?: () => boolean;
20
+ verbose?: boolean;
21
+ }): void;
22
+ export declare function promptForToolApproval(toolName: string, rawArguments: string): Promise<boolean>;
23
+ export {};
24
+ //# sourceMappingURL=sessionStream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionStream.d.ts","sourceRoot":"","sources":["../../../src/providers/shared/sessionStream.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,8BAA8B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAEhG,KAAK,mBAAmB,GAAG;IACvB,IAAI,EAAE,iBAAiB,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,CAAA;AAE1E,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED,KAAK,oBAAoB,GAAG;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAA;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAChE,CAAA;AAED,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,oBAAyB,GACnC,OAAO,CAAC,aAAa,CAAC,CAsBxB;AAED,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,8BAA8B,GACvC,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAgB,eAAe,CAC3B,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9D,IAAI,CAiCN;AAED,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BpG"}