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,413 +0,0 @@
1
- import chalk from "chalk";
2
- import { execFileSync, spawn } from "node:child_process";
3
- import fs from "node:fs";
4
- import os from "node:os";
5
- import path from "node:path";
6
- import { readApiKey } from "../../api.js";
7
- import { CliError } from "../../cliError.js";
8
- import { printMissingEntryFileGuidance } from "../shared/entryFileGuidance.js";
9
- import { openSessionStream, promptForToolApproval, submitApprovalDecision } from "../shared/sessionStream.js";
10
- import { ensureUvAvailable, execUv, loadDotenv, withTempScript } from "../shared/shellUtils.js";
11
- import { preparePythonTemplateContext } from "./preparePythonCodegenData.js";
12
- import { renderPythonGeneratedCode } from "./pythonTemplateEngine.js";
13
- const JOB_REGISTRY_MARKER = "__TERSE_JOB_REGISTRY__=";
14
- const JOB_SKIPPED_MARKER = "__TERSE_SKIPPED__";
15
- export class PythonProvider {
16
- language = "python";
17
- displayName = "Python";
18
- detectionMarkers = {
19
- requiredFiles: ["pyproject.toml"],
20
- description: "Python project"
21
- };
22
- projectMarkers = {
23
- requiredFiles: ["pyproject.toml"],
24
- description: "Python Terse project"
25
- };
26
- entryFile = "src/main.py";
27
- generatedCodePath = "src/terse_generated.py";
28
- deployExclusions = {
29
- dirs: new Set([".venv", "__pycache__", ".pytest_cache", ".mypy_cache", ".ruff_cache", ".git"]),
30
- files: new Set([".env", ".DS_Store"])
31
- };
32
- scaffoldFiles() {
33
- return [
34
- { template: "python/init/pyproject.toml.hbs", output: "pyproject.toml" },
35
- { template: "python/init/src/main.py.hbs", output: "src/main.py" },
36
- { template: "python/init/.python-version.hbs", output: ".python-version" },
37
- { template: "python/init/env.example.hbs", output: ".env.example" },
38
- { template: "python/init/gitignore.hbs", output: ".gitignore" },
39
- { template: "python/init/README.md.hbs", output: "README.md" }
40
- ];
41
- }
42
- buildInitTemplateContext(projectName, sdkVersion) {
43
- return {
44
- projectName,
45
- sdkDependency: `terse-sdk==${sdkVersion}`
46
- };
47
- }
48
- getPostInitSteps(_packageManager) {
49
- return ["uv run ty check Type-check the project", "terse test Run a sample event locally"];
50
- }
51
- detectPackageManager() {
52
- return "uv";
53
- }
54
- async installDependencies(targetDir) {
55
- await this.execUvCommand(["sync"], { cwd: targetDir, env: this.buildPythonEnv(targetDir) });
56
- }
57
- resolveGeneratedCodePath(cwd) {
58
- return path.join(cwd, fs.existsSync(path.join(cwd, "src")) ? "src/terse_generated.py" : "terse_generated.py");
59
- }
60
- renderGeneratedCode(input) {
61
- const code = renderPythonGeneratedCode(preparePythonTemplateContext(input));
62
- validatePythonSyntax(code);
63
- return code;
64
- }
65
- async loadJobRegistry(entryFile) {
66
- const cwd = process.cwd();
67
- const env = this.buildPythonEnv(cwd);
68
- const resolvedEntryFile = entryFile ?? this.entryFile;
69
- const entryPath = path.join(cwd, resolvedEntryFile);
70
- if (!fs.existsSync(entryPath)) {
71
- printMissingEntryFileGuidance({
72
- languageDisplayName: this.displayName,
73
- defaultEntryFile: this.entryFile,
74
- requestedEntryFile: entryFile,
75
- overrideExample: "src/server.py",
76
- createHint: `Create ${this.entryFile} and register at least one job with @app.job(...).`
77
- });
78
- }
79
- try {
80
- const script = this.buildLoadRegistryScript(resolvedEntryFile);
81
- return await this.withTempPythonScript(script, async (scriptPath) => {
82
- const { stdout } = await this.execUvCommand(["run", "python", scriptPath], { cwd, env });
83
- const payload = extractRegistryPayload(stdout);
84
- const parsed = JSON.parse(payload);
85
- const registry = new Map();
86
- for (const [name, data] of Object.entries(parsed)) {
87
- registry.set(name, createJobParametersFromPython(data));
88
- }
89
- if (registry.size === 0) {
90
- throw new CliError("no_jobs_found", "No jobs found.", {
91
- detail: `Make sure your ${resolvedEntryFile} registers at least one job with @app.job(...).`
92
- });
93
- }
94
- return registry;
95
- });
96
- }
97
- catch (error) {
98
- if (error instanceof CliError) {
99
- throw error;
100
- }
101
- throw new CliError("entry_import_failed", `Could not import ${resolvedEntryFile}.`, {
102
- detail: formatPythonCommandErrorDetail(error)
103
- });
104
- }
105
- }
106
- async executeJob(job, runId, event, opts) {
107
- const cwd = process.cwd();
108
- const env = {
109
- ...this.buildPythonEnv(cwd),
110
- TERSE_JOB_NAME: job.name,
111
- TERSE_EVENT_JSON: JSON.stringify(event)
112
- };
113
- const isVerbose = opts?.verbose ?? false;
114
- const resolvedEntryFile = opts?.entryFile ?? this.entryFile;
115
- const isSandbox = !!process.env.TERSE_RUN_ID;
116
- const apiKey = env.TERSE_API_KEY ?? null;
117
- const approvalState = { paused: false };
118
- let closeSession;
119
- try {
120
- if (apiKey && (isVerbose || !isSandbox)) {
121
- const session = await openSessionStream(apiKey, {
122
- verbose: isVerbose,
123
- isPaused: () => approvalState.paused,
124
- onEvent: !isSandbox ? createApprovalHandler(apiKey, approvalState) : undefined
125
- });
126
- closeSession = session.close;
127
- env.TERSE_SESSION_ID = session.sessionId;
128
- }
129
- const script = this.buildExecuteJobScript(resolvedEntryFile);
130
- await this.ensureUvAvailable(cwd);
131
- await this.withTempPythonScript(script, async (scriptPath) => {
132
- await runStreamingPython(cwd, env, scriptPath, job.name);
133
- });
134
- }
135
- catch (error) {
136
- throw new CliError("job_execution_failed", `Job "${job.name}" failed.`, {
137
- detail: formatPythonCommandErrorDetail(error)
138
- });
139
- }
140
- finally {
141
- closeSession?.();
142
- }
143
- }
144
- buildPythonEnv(cwd) {
145
- const env = {
146
- ...loadDotenv(cwd),
147
- UV_CACHE_DIR: path.join(os.tmpdir(), "terse-uv-cache")
148
- };
149
- // Inject the resolved CLI key (process.env > user config > legacy .env) so the Python
150
- // subprocess sees TERSE_API_KEY even when it lives in the global CLI auth file rather
151
- // than the project's .env. process.env still wins, matching readApiKey() precedence.
152
- const resolvedKey = readApiKey();
153
- if (resolvedKey && !env.TERSE_API_KEY) {
154
- env.TERSE_API_KEY = resolvedKey;
155
- }
156
- return env;
157
- }
158
- async execUvCommand(args, opts) {
159
- return execUv(args, opts);
160
- }
161
- async withTempPythonScript(source, fn) {
162
- return withTempScript(source, ".py", fn);
163
- }
164
- async ensureUvAvailable(cwd) {
165
- await ensureUvAvailable(cwd);
166
- }
167
- buildLoadRegistryScript(entryFile) {
168
- return buildLoadRegistryScript(entryFile);
169
- }
170
- buildExecuteJobScript(entryFile) {
171
- return buildExecuteJobScript(entryFile);
172
- }
173
- }
174
- export const pythonProvider = new PythonProvider();
175
- function createJobParametersFromPython(data) {
176
- const jobParams = {
177
- name: data.name,
178
- triggers: (data.triggers ?? []).map(reconstructPythonConfig),
179
- onTrigger: async () => {
180
- throw new Error("Python job execution must go through provider.executeJob()");
181
- },
182
- filter: data.hasFilter
183
- ? async () => {
184
- throw new Error("Python filter execution must go through provider.executeJob()");
185
- }
186
- : undefined
187
- };
188
- return jobParams;
189
- }
190
- function reconstructPythonConfig(config) {
191
- return {
192
- ...config,
193
- isComplete: () => true,
194
- formatForAgent: () => JSON.stringify(config)
195
- };
196
- }
197
- function buildLoadRegistryScript(entryFile) {
198
- return `
199
- import importlib.util
200
- import json
201
- import os
202
- import sys
203
- import uuid
204
-
205
- from terse_sdk import clear_job_registry, get_job_registry
206
-
207
- PROJECT_ROOT = os.getcwd()
208
- SRC_DIR = os.path.join(PROJECT_ROOT, "src")
209
- ENTRY_FILE = ${JSON.stringify(entryFile)}
210
- sys.path[:0] = [PROJECT_ROOT, SRC_DIR]
211
-
212
- clear_job_registry()
213
- module_name = f"__terse_main_{uuid.uuid4().hex}"
214
- spec = importlib.util.spec_from_file_location(module_name, os.path.join(PROJECT_ROOT, ENTRY_FILE))
215
- if spec is None or spec.loader is None:
216
- raise RuntimeError(f"Could not create an import spec for {ENTRY_FILE}.")
217
-
218
- module = importlib.util.module_from_spec(spec)
219
- sys.modules[module_name] = module
220
- spec.loader.exec_module(module)
221
-
222
- registry = get_job_registry()
223
- result = {}
224
- for name, job in registry.items():
225
- def serialize_config(config):
226
- payload = dict(config.config)
227
- payload["integrationId"] = config.integration_id
228
- payload["integrationType"] = config.integration_type
229
- payload["configType"] = config.config_type
230
- return payload
231
-
232
- result[name] = {
233
- "name": name,
234
- "triggers": [serialize_config(trigger) for trigger in job.triggers],
235
- "hasFilter": job.filter is not None,
236
- }
237
-
238
- print(${JSON.stringify(JOB_REGISTRY_MARKER)} + json.dumps(result))
239
- `.trim();
240
- }
241
- function buildExecuteJobScript(entryFile) {
242
- return `
243
- import importlib.util
244
- import json
245
- import os
246
- import sys
247
- import uuid
248
-
249
- from terse_sdk import clear_job_registry, deserialize_input_event, execute_registered_job, get_job_registry
250
-
251
- PROJECT_ROOT = os.getcwd()
252
- SRC_DIR = os.path.join(PROJECT_ROOT, "src")
253
- ENTRY_FILE = ${JSON.stringify(entryFile)}
254
- sys.path[:0] = [PROJECT_ROOT, SRC_DIR]
255
-
256
- clear_job_registry()
257
- module_name = f"__terse_main_{uuid.uuid4().hex}"
258
- spec = importlib.util.spec_from_file_location(module_name, os.path.join(PROJECT_ROOT, ENTRY_FILE))
259
- if spec is None or spec.loader is None:
260
- raise RuntimeError(f"Could not create an import spec for {ENTRY_FILE}.")
261
-
262
- module = importlib.util.module_from_spec(spec)
263
- sys.modules[module_name] = module
264
- spec.loader.exec_module(module)
265
-
266
- registry = get_job_registry()
267
- job_name = os.environ["TERSE_JOB_NAME"]
268
- event = deserialize_input_event(json.loads(os.environ["TERSE_EVENT_JSON"]))
269
- # TERSE_SESSION_ID / TERSE_RUN_ID are read by TerseAgent.__init__ when the
270
- # user's handler constructs an agent, so the outgoing /sdk/agent-run request
271
- # carries the right headers for the CLI's session stream to receive events.
272
- job = registry[job_name]
273
- skipped = execute_registered_job(job, event)
274
- if skipped:
275
- print(${JSON.stringify(JOB_SKIPPED_MARKER)})
276
- `.trim();
277
- }
278
- function extractRegistryPayload(stdout) {
279
- const line = stdout
280
- .split(/\r?\n/)
281
- .map(entry => entry.trim())
282
- .filter(Boolean)
283
- .reverse()
284
- .find(entry => entry.startsWith(JOB_REGISTRY_MARKER));
285
- if (!line) {
286
- throw new Error("Python job loader did not return registry JSON.");
287
- }
288
- return line.slice(JOB_REGISTRY_MARKER.length);
289
- }
290
- function createApprovalHandler(apiKey, state) {
291
- return async (event) => {
292
- if (event.type === "run_started") {
293
- state.runId = event.runId;
294
- return;
295
- }
296
- if (event.type !== "tool_approval_requested")
297
- return;
298
- if (!state.runId) {
299
- throw new Error("Received tool approval request before run_started.");
300
- }
301
- state.paused = true;
302
- try {
303
- const info = event.toolApprovalRequested;
304
- const approved = await promptForToolApproval(info.toolName, info.arguments);
305
- await submitApprovalDecision(apiKey, {
306
- runId: state.runId,
307
- stepId: info.stepId,
308
- approved
309
- });
310
- }
311
- finally {
312
- state.paused = false;
313
- }
314
- };
315
- }
316
- async function runStreamingPython(cwd, env, scriptPath, jobName) {
317
- await new Promise((resolve, reject) => {
318
- const child = spawn("uv", ["run", "python", scriptPath], {
319
- cwd,
320
- env,
321
- stdio: ["ignore", "pipe", "pipe"]
322
- });
323
- let skipped = false;
324
- let stdoutBuffer = "";
325
- child.stdout.on("data", (chunk) => {
326
- stdoutBuffer += chunk.toString();
327
- stdoutBuffer = flushStdoutBuffer(stdoutBuffer, line => {
328
- if (line === JOB_SKIPPED_MARKER) {
329
- skipped = true;
330
- return;
331
- }
332
- process.stdout.write(`${line}\n`);
333
- });
334
- });
335
- child.stdout.on("end", () => {
336
- if (!stdoutBuffer)
337
- return;
338
- if (stdoutBuffer === JOB_SKIPPED_MARKER) {
339
- skipped = true;
340
- return;
341
- }
342
- process.stdout.write(stdoutBuffer);
343
- });
344
- child.stderr.on("data", (chunk) => {
345
- process.stderr.write(chunk);
346
- });
347
- child.on("error", reject);
348
- child.on("close", code => {
349
- if (code !== 0) {
350
- reject(new Error(`uv run python exited with code ${code ?? "unknown"}`));
351
- return;
352
- }
353
- if (skipped) {
354
- console.log(chalk.dim(`\n Job "${jobName}" skipped (filter returned false).\n`));
355
- }
356
- resolve();
357
- });
358
- });
359
- }
360
- function flushStdoutBuffer(buffer, onLine) {
361
- let newlineIndex = buffer.indexOf("\n");
362
- while (newlineIndex !== -1) {
363
- const line = buffer.slice(0, newlineIndex).replace(/\r$/, "");
364
- onLine(line);
365
- buffer = buffer.slice(newlineIndex + 1);
366
- newlineIndex = buffer.indexOf("\n");
367
- }
368
- return buffer;
369
- }
370
- function validatePythonSyntax(code) {
371
- for (const executable of ["python3", "python"]) {
372
- try {
373
- execFileSync(executable, ["-c", "import sys; compile(sys.stdin.read(), 'terse_generated.py', 'exec')"], {
374
- input: code,
375
- stdio: ["pipe", "ignore", "pipe"]
376
- });
377
- return;
378
- }
379
- catch (error) {
380
- const code = error.code;
381
- if (code === "ENOENT")
382
- continue;
383
- const stderr = Buffer.isBuffer(error.stderr) ? error.stderr.toString().trim() : "";
384
- if (stderr) {
385
- console.warn(chalk.yellow(`Warning: generated Python did not pass syntax validation.\n${stderr}`));
386
- }
387
- else {
388
- console.warn(chalk.yellow("Warning: generated Python did not pass syntax validation."));
389
- }
390
- return;
391
- }
392
- }
393
- }
394
- function formatPythonCommandErrorDetail(error) {
395
- if (error instanceof Error) {
396
- const parts = [error.message];
397
- const stderr = error.stderr;
398
- if (typeof stderr === "string" && stderr.trim()) {
399
- if (stderr.trim() !== error.message.trim()) {
400
- parts.push(stderr.trim());
401
- }
402
- }
403
- else if (Buffer.isBuffer(stderr) && stderr.toString().trim()) {
404
- const stderrText = stderr.toString().trim();
405
- if (stderrText !== error.message.trim()) {
406
- parts.push(stderrText);
407
- }
408
- }
409
- return parts.join("\n");
410
- }
411
- return String(error);
412
- }
413
- //# sourceMappingURL=PythonProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PythonProvider.js","sourceRoot":"","sources":["../../../src/providers/python/PythonProvider.ts"],"names":[],"mappings":"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"}
@@ -1,139 +0,0 @@
1
- import type { CodegenInput } from "../codegenTypes.js";
2
- export interface PythonToolCtx {
3
- name: string;
4
- nameRepr: string;
5
- methodName: string;
6
- outputModel: string;
7
- approvable: boolean;
8
- }
9
- export interface PythonAttioAttrCtx {
10
- apiSlug: string;
11
- recordType: string;
12
- inputType: string;
13
- filterType: string;
14
- }
15
- export interface PythonAttioObjectCtx {
16
- apiSlug: string;
17
- apiSlugRepr: string;
18
- singularNoun: string;
19
- singularNounRepr: string;
20
- pascal: string;
21
- staticName: string;
22
- attributes: PythonAttioAttrCtx[];
23
- hasAttributes: boolean;
24
- attrSlugsLiteral: string;
25
- attrSlugsFrozensetRepr: string;
26
- multiValueSlugs: string[];
27
- hasMultiValueSlugs: boolean;
28
- multiValueFrozensetRepr: string;
29
- attributeTupleRepr: string;
30
- recordValuesTypeName: string;
31
- inputValuesTypeName: string;
32
- attributeSlugTypeName: string;
33
- filterTypeName: string;
34
- staticDeclaration: string;
35
- }
36
- export interface PythonAttioCtx {
37
- instanceIdRepr: string;
38
- hasAttrs: boolean;
39
- objects: PythonAttioObjectCtx[];
40
- tools: PythonToolCtx[];
41
- approvableTools: PythonToolCtx[];
42
- skillToolType: string;
43
- skillObjectType: string;
44
- }
45
- export interface PythonSnowflakeCtx {
46
- instanceIdRepr: string;
47
- tools: PythonToolCtx[];
48
- approvableTools: PythonToolCtx[];
49
- skillToolType: string;
50
- }
51
- export interface PythonSlackChannelCtx {
52
- staticName: string;
53
- channelIdRepr: string;
54
- nameRepr: string;
55
- }
56
- export interface PythonSlackCtx {
57
- instanceIdRepr: string;
58
- channels: PythonSlackChannelCtx[];
59
- tools: PythonToolCtx[];
60
- approvableTools: PythonToolCtx[];
61
- skillToolType: string;
62
- }
63
- export interface PythonGitHubOwnerCtx {
64
- staticName: string;
65
- nameRepr: string;
66
- }
67
- export interface PythonGitHubRepoCtx {
68
- staticName: string;
69
- repositoryId: number;
70
- nameRepr: string;
71
- fullNameRepr: string;
72
- ownerStaticName: string;
73
- }
74
- export interface PythonGitHubRepoGroupCtx {
75
- ownerStaticName: string;
76
- repos: PythonGitHubRepoCtx[];
77
- }
78
- export interface PythonGitHubCtx {
79
- instanceIdRepr: string;
80
- owners: PythonGitHubOwnerCtx[];
81
- repoGroups: PythonGitHubRepoGroupCtx[];
82
- }
83
- export interface PythonGmailCtx {
84
- instanceIdRepr: string;
85
- }
86
- export interface PythonLinearTeamCtx {
87
- staticName: string;
88
- teamIdRepr: string;
89
- nameRepr: string;
90
- keyRepr: string;
91
- }
92
- export interface PythonLinearProjectCtx {
93
- staticName: string;
94
- projectIdRepr: string;
95
- nameRepr: string;
96
- }
97
- export interface PythonLinearCtx {
98
- instanceIdRepr: string;
99
- teams: PythonLinearTeamCtx[];
100
- projects: PythonLinearProjectCtx[];
101
- }
102
- export interface PythonWorkOSCtx {
103
- instanceIdRepr: string;
104
- }
105
- export interface PythonTemplateContext {
106
- attio: PythonAttioCtx | null;
107
- github: PythonGitHubCtx | null;
108
- gmail: PythonGmailCtx | null;
109
- linear: PythonLinearCtx | null;
110
- slack: PythonSlackCtx | null;
111
- snowflake: PythonSnowflakeCtx | null;
112
- workos: PythonWorkOSCtx | null;
113
- hasAttio: boolean;
114
- hasAttioAttrs: boolean;
115
- hasAttioTools: boolean;
116
- hasGithub: boolean;
117
- hasGmail: boolean;
118
- hasLinear: boolean;
119
- hasSlack: boolean;
120
- hasSlackTools: boolean;
121
- hasSnowflake: boolean;
122
- hasSnowflakeTools: boolean;
123
- hasWorkOS: boolean;
124
- hasAnyToolNameTypes: boolean;
125
- hasAnyDeterministicTools: boolean;
126
- sdkImports: string[];
127
- typingImportsLine?: string;
128
- pydanticImportsLine?: string;
129
- needsJsonImport: boolean;
130
- attioToolNamesLiteral?: string;
131
- slackToolNamesLiteral?: string;
132
- snowflakeToolNamesLiteral?: string;
133
- allToolNamesLiteral?: string;
134
- exportedNamesRepr: string;
135
- }
136
- export declare function preparePythonTemplateContext(input: CodegenInput): PythonTemplateContext;
137
- export declare function pyRepr(value: string): string;
138
- export declare function pyListRepr(values: string[]): string;
139
- //# sourceMappingURL=preparePythonCodegenData.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preparePythonCodegenData.d.ts","sourceRoot":"","sources":["../../../src/providers/python/preparePythonCodegenData.ts"],"names":[],"mappings":"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"}