terse-cli 0.3.3 → 0.3.5

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/codegen.d.ts +0 -15
  2. package/dist/codegen.d.ts.map +1 -1
  3. package/dist/codegen.js +81 -466
  4. package/dist/codegen.js.map +1 -1
  5. package/dist/commands/install.d.ts.map +1 -1
  6. package/dist/commands/install.js +1 -18
  7. package/dist/commands/install.js.map +1 -1
  8. package/dist/deploy.d.ts +1 -2
  9. package/dist/deploy.d.ts.map +1 -1
  10. package/dist/deploy.js +38 -61
  11. package/dist/deploy.js.map +1 -1
  12. package/dist/generate.d.ts +1 -2
  13. package/dist/generate.d.ts.map +1 -1
  14. package/dist/generate.js +69 -67
  15. package/dist/generate.js.map +1 -1
  16. package/dist/init.d.ts +1 -2
  17. package/dist/init.d.ts.map +1 -1
  18. package/dist/init.js +96 -45
  19. package/dist/init.js.map +1 -1
  20. package/dist/integrate.d.ts +0 -1
  21. package/dist/integrate.d.ts.map +1 -1
  22. package/dist/integrate.js +11 -191
  23. package/dist/integrate.js.map +1 -1
  24. package/dist/jsonOutput.d.ts +19 -0
  25. package/dist/jsonOutput.d.ts.map +1 -0
  26. package/dist/jsonOutput.js +25 -0
  27. package/dist/jsonOutput.js.map +1 -0
  28. package/dist/nonInteractive.d.ts +2 -4
  29. package/dist/nonInteractive.d.ts.map +1 -1
  30. package/dist/nonInteractive.js +2 -5
  31. package/dist/nonInteractive.js.map +1 -1
  32. package/dist/providers/python/PythonProvider.js +0 -1
  33. package/dist/providers/python/PythonProvider.js.map +1 -1
  34. package/dist/providers/typescript/parkSignals.d.ts +7 -0
  35. package/dist/providers/typescript/parkSignals.d.ts.map +1 -0
  36. package/dist/providers/typescript/parkSignals.js +45 -0
  37. package/dist/providers/typescript/parkSignals.js.map +1 -0
  38. package/dist/replay.d.ts +3 -0
  39. package/dist/replay.d.ts.map +1 -0
  40. package/dist/replay.js +20 -0
  41. package/dist/replay.js.map +1 -0
  42. package/dist/run.d.ts +11 -2
  43. package/dist/run.d.ts.map +1 -1
  44. package/dist/run.js +153 -42
  45. package/dist/run.js.map +1 -1
  46. package/dist/sampleEventId.d.ts +4 -0
  47. package/dist/sampleEventId.d.ts.map +1 -1
  48. package/dist/sampleEventId.js +4 -0
  49. package/dist/sampleEventId.js.map +1 -1
  50. package/dist/shared/ApiRoutes.d.ts +0 -19
  51. package/dist/shared/ApiRoutes.d.ts.map +1 -1
  52. package/dist/shared/ApiRoutes.js +1 -17
  53. package/dist/shared/ApiRoutes.js.map +1 -1
  54. package/dist/shared/Configs.d.ts +2 -24
  55. package/dist/shared/Configs.d.ts.map +1 -1
  56. package/dist/shared/Configs.js +2 -32
  57. package/dist/shared/Configs.js.map +1 -1
  58. package/dist/shared/Integrations.d.ts +1 -18
  59. package/dist/shared/Integrations.d.ts.map +1 -1
  60. package/dist/shared/Integrations.js +1 -10
  61. package/dist/shared/Integrations.js.map +1 -1
  62. package/dist/shared/InvalidationKeys.d.ts +0 -1
  63. package/dist/shared/InvalidationKeys.d.ts.map +1 -1
  64. package/dist/shared/InvalidationKeys.js +0 -3
  65. package/dist/shared/InvalidationKeys.js.map +1 -1
  66. package/dist/shared/ModelEvents.d.ts +0 -9
  67. package/dist/shared/ModelEvents.d.ts.map +1 -1
  68. package/dist/shared/ModelEvents.js +0 -15
  69. package/dist/shared/ModelEvents.js.map +1 -1
  70. package/dist/shared/ToolDisplayUtils.d.ts.map +1 -1
  71. package/dist/shared/ToolDisplayUtils.js +11 -107
  72. package/dist/shared/ToolDisplayUtils.js.map +1 -1
  73. package/dist/shared/types.d.ts +108 -1013
  74. package/dist/shared/types.d.ts.map +1 -1
  75. package/dist/shared/types.js.map +1 -1
  76. package/dist/test.d.ts +1 -2
  77. package/dist/test.d.ts.map +1 -1
  78. package/dist/test.js +23 -43
  79. package/dist/test.js.map +1 -1
  80. package/dist/testRelay.d.ts +6 -0
  81. package/dist/testRelay.d.ts.map +1 -0
  82. package/dist/testRelay.js +91 -0
  83. package/dist/testRelay.js.map +1 -0
  84. package/dist/urls.d.ts +3 -0
  85. package/dist/urls.d.ts.map +1 -0
  86. package/dist/urls.js +27 -0
  87. package/dist/urls.js.map +1 -0
  88. package/dist/util.d.ts +3 -2
  89. package/dist/util.d.ts.map +1 -1
  90. package/dist/util.js +3 -3
  91. package/dist/util.js.map +1 -1
  92. package/package.json +3 -3
  93. package/src/providers/typescript/modules/github/github.triggers.hbs +4 -0
  94. package/dist/_tmp_create_project.d.ts +0 -2
  95. package/dist/_tmp_create_project.d.ts.map +0 -1
  96. package/dist/_tmp_create_project.js +0 -17
  97. package/dist/_tmp_create_project.js.map +0 -1
  98. package/dist/_tmp_delete_agent.d.ts +0 -2
  99. package/dist/_tmp_delete_agent.d.ts.map +0 -1
  100. package/dist/_tmp_delete_agent.js +0 -14
  101. package/dist/_tmp_delete_agent.js.map +0 -1
  102. package/dist/_tmp_manual_trigger.d.ts +0 -2
  103. package/dist/_tmp_manual_trigger.d.ts.map +0 -1
  104. package/dist/_tmp_manual_trigger.js +0 -17
  105. package/dist/_tmp_manual_trigger.js.map +0 -1
  106. package/dist/_tmp_patch_active.d.ts +0 -2
  107. package/dist/_tmp_patch_active.d.ts.map +0 -1
  108. package/dist/_tmp_patch_active.js +0 -21
  109. package/dist/_tmp_patch_active.js.map +0 -1
  110. package/dist/commands/deployTheme.d.ts +0 -28
  111. package/dist/commands/deployTheme.d.ts.map +0 -1
  112. package/dist/commands/deployTheme.js +0 -68
  113. package/dist/commands/deployTheme.js.map +0 -1
  114. package/dist/commands/dev.d.ts +0 -3
  115. package/dist/commands/dev.d.ts.map +0 -1
  116. package/dist/commands/dev.js +0 -47
  117. package/dist/commands/dev.js.map +0 -1
  118. package/dist/commands/fsExec.d.ts +0 -8
  119. package/dist/commands/fsExec.d.ts.map +0 -1
  120. package/dist/commands/fsExec.js +0 -46
  121. package/dist/commands/fsExec.js.map +0 -1
  122. package/dist/commands/serve.d.ts +0 -1
  123. package/dist/commands/serve.d.ts.map +0 -1
  124. package/dist/commands/serve.js +0 -2
  125. package/dist/commands/serve.js.map +0 -1
  126. package/dist/commands/terseCliTheme.d.ts +0 -28
  127. package/dist/commands/terseCliTheme.d.ts.map +0 -1
  128. package/dist/commands/terseCliTheme.js +0 -68
  129. package/dist/commands/terseCliTheme.js.map +0 -1
  130. package/dist/commands/tool.d.ts +0 -6
  131. package/dist/commands/tool.d.ts.map +0 -1
  132. package/dist/commands/tool.js +0 -34
  133. package/dist/commands/tool.js.map +0 -1
  134. package/dist/data/standardSlackEmoji.d.ts +0 -2
  135. package/dist/data/standardSlackEmoji.d.ts.map +0 -1
  136. package/dist/data/standardSlackEmoji.js +0 -1978
  137. package/dist/data/standardSlackEmoji.js.map +0 -1
  138. package/dist/data/standardSlackEmoji.json +0 -1974
  139. package/dist/perf.d.ts +0 -9
  140. package/dist/perf.d.ts.map +0 -1
  141. package/dist/perf.js +0 -59
  142. package/dist/perf.js.map +0 -1
  143. package/dist/providers/codegen.test.d.ts +0 -2
  144. package/dist/providers/codegen.test.d.ts.map +0 -1
  145. package/dist/providers/codegen.test.js +0 -45
  146. package/dist/providers/codegen.test.js.map +0 -1
  147. package/dist/providers/python/PythonProvider.test.d.ts +0 -2
  148. package/dist/providers/python/PythonProvider.test.d.ts.map +0 -1
  149. package/dist/providers/python/PythonProvider.test.js +0 -169
  150. package/dist/providers/python/PythonProvider.test.js.map +0 -1
  151. package/dist/providers/typescript/attioProjection.d.ts +0 -50
  152. package/dist/providers/typescript/attioProjection.d.ts.map +0 -1
  153. package/dist/providers/typescript/attioProjection.js +0 -358
  154. package/dist/providers/typescript/attioProjection.js.map +0 -1
  155. package/dist/providers/typescript/prepareCodegenData.test.d.ts +0 -2
  156. package/dist/providers/typescript/prepareCodegenData.test.d.ts.map +0 -1
  157. package/dist/providers/typescript/prepareCodegenData.test.js +0 -54
  158. package/dist/providers/typescript/prepareCodegenData.test.js.map +0 -1
  159. package/dist/providers/typescript/projectedTypes.d.ts +0 -11
  160. package/dist/providers/typescript/projectedTypes.d.ts.map +0 -1
  161. package/dist/providers/typescript/projectedTypes.js +0 -53
  162. package/dist/providers/typescript/projectedTypes.js.map +0 -1
  163. package/dist/providers/typescript/projectionPrinter.d.ts +0 -26
  164. package/dist/providers/typescript/projectionPrinter.d.ts.map +0 -1
  165. package/dist/providers/typescript/projectionPrinter.js +0 -110
  166. package/dist/providers/typescript/projectionPrinter.js.map +0 -1
  167. package/dist/providers/typescript/replayLogDedupe.d.ts +0 -6
  168. package/dist/providers/typescript/replayLogDedupe.d.ts.map +0 -1
  169. package/dist/providers/typescript/replayLogDedupe.js +0 -156
  170. package/dist/providers/typescript/replayLogDedupe.js.map +0 -1
  171. package/dist/providers/typescript/triggerPayloads.d.ts +0 -7
  172. package/dist/providers/typescript/triggerPayloads.d.ts.map +0 -1
  173. package/dist/providers/typescript/triggerPayloads.js +0 -60
  174. package/dist/providers/typescript/triggerPayloads.js.map +0 -1
  175. package/dist/providers/typescript/triggerTypeRegistry.d.ts +0 -7
  176. package/dist/providers/typescript/triggerTypeRegistry.d.ts.map +0 -1
  177. package/dist/providers/typescript/triggerTypeRegistry.js +0 -198
  178. package/dist/providers/typescript/triggerTypeRegistry.js.map +0 -1
  179. package/dist/triggerParseDetail.d.ts +0 -8
  180. package/dist/triggerParseDetail.d.ts.map +0 -1
  181. package/dist/triggerParseDetail.js +0 -30
  182. package/dist/triggerParseDetail.js.map +0 -1
  183. package/templates/typescript/codegen/.impeccable/hook.cache.json +0 -1
package/dist/perf.d.ts DELETED
@@ -1,9 +0,0 @@
1
- type PerfAttributes = Record<string, unknown>;
2
- export declare function enableCliPerfLogging(): void;
3
- export declare function startCliPerfStep(step: string, attributes?: PerfAttributes): {
4
- complete: (extra?: PerfAttributes) => void;
5
- fail: (error: unknown, extra?: PerfAttributes) => void;
6
- };
7
- export declare function withCliPerfStep<T>(step: string, attributes: PerfAttributes, fn: () => Promise<T>): Promise<T>;
8
- export {};
9
- //# sourceMappingURL=perf.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"perf.d.ts","sourceRoot":"","sources":["../src/perf.ts"],"names":[],"mappings":"AAEA,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAiC7C,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,cAAmB,GAAG;IAC7E,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,cAAc,KAAK,IAAI,CAAA;IAC1C,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,cAAc,KAAK,IAAI,CAAA;CACzD,CAqBA;AAED,wBAAsB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAWnH"}
package/dist/perf.js DELETED
@@ -1,59 +0,0 @@
1
- import chalk from "chalk";
2
- function isPerfLoggingEnabled() {
3
- const value = process.env.TERSE_PERF_LOGS;
4
- if (value === undefined) {
5
- return false;
6
- }
7
- return !["0", "false", "off", "no"].includes(value.toLowerCase());
8
- }
9
- function serializeAttributes(attributes) {
10
- return JSON.stringify(Object.fromEntries(Object.entries(attributes).filter(([, value]) => value !== undefined)), (_key, value) => {
11
- if (value instanceof Error) {
12
- return { message: value.message, name: value.name };
13
- }
14
- return value;
15
- });
16
- }
17
- function logPerf(step, phase, attributes = {}) {
18
- if (!isPerfLoggingEnabled()) {
19
- return;
20
- }
21
- console.log(chalk.dim(`[terse:perf] ${serializeAttributes({ step, phase, ...attributes })}`));
22
- }
23
- export function enableCliPerfLogging() {
24
- process.env.TERSE_PERF_LOGS ??= "1";
25
- }
26
- export function startCliPerfStep(step, attributes = {}) {
27
- const start = performance.now();
28
- logPerf(step, "started", attributes);
29
- return {
30
- complete(extra = {}) {
31
- logPerf(step, "completed", {
32
- ...attributes,
33
- ...extra,
34
- duration_ms: Math.round(performance.now() - start)
35
- });
36
- },
37
- fail(error, extra = {}) {
38
- logPerf(step, "failed", {
39
- ...attributes,
40
- ...extra,
41
- duration_ms: Math.round(performance.now() - start),
42
- error: error instanceof Error ? error.message : String(error)
43
- });
44
- }
45
- };
46
- }
47
- export async function withCliPerfStep(step, attributes, fn) {
48
- const timer = startCliPerfStep(step, attributes);
49
- try {
50
- const result = await fn();
51
- timer.complete();
52
- return result;
53
- }
54
- catch (error) {
55
- timer.fail(error);
56
- throw error;
57
- }
58
- }
59
- //# sourceMappingURL=perf.js.map
package/dist/perf.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"perf.js","sourceRoot":"","sources":["../src/perf.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=codegen.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codegen.test.d.ts","sourceRoot":"","sources":["../../src/providers/codegen.test.ts"],"names":[],"mappings":""}
@@ -1,45 +0,0 @@
1
- import assert from "node:assert/strict";
2
- import test from "node:test";
3
- import { preparePythonTemplateContext } from "./python/preparePythonCodegenData.js";
4
- import { renderPythonGeneratedCode } from "./python/pythonTemplateEngine.js";
5
- import { prepareTemplateContext } from "./typescript/prepareCodegenData.js";
6
- import { renderGeneratedCode } from "./typescript/templateEngine.js";
7
- function buildCodegenInput() {
8
- return {
9
- github: [
10
- {
11
- integration: { id: "github_int" },
12
- repositories: [{ id: 1, name: "terse", owner: "acme", fullName: "acme/terse" }]
13
- }
14
- ],
15
- slack: [{ id: "slack_int", displayName: "Slack", channels: [{ id: "C123", name: "alerts" }] }],
16
- gmail: [{ id: "gmail_int", displayName: "Gmail" }],
17
- linear: [{ id: "linear_int", displayName: "Linear", teams: [] }],
18
- notion: [],
19
- posthog: [],
20
- datadog: [],
21
- launchdarkly: [],
22
- workos: [{ id: "workos_int", displayName: "WorkOS" }],
23
- attio: [],
24
- snowflake: [],
25
- tools: []
26
- };
27
- }
28
- test("typescript codegen narrows supported trigger helpers", () => {
29
- const output = renderGeneratedCode(prepareTemplateContext(buildCodegenInput()));
30
- assert.match(output, /onPRSynchronized\(opts: \{ repo: Repos \}\): TypedTrigger<GitHubPullRequestSynchronizedTriggerEvent>/);
31
- assert.match(output, /onIssueCreated\(opts\?: \{ projectId\?: string; projectName\?: string \}\): TypedTrigger<LinearIssueCreatedTriggerEvent>/);
32
- assert.match(output, /onMembershipCreated\(\): TypedTrigger<WorkOSOrganizationMembershipCreatedTriggerEvent>/);
33
- assert.doesNotMatch(output, /onAppMention/);
34
- assert.doesNotMatch(output, /onReactionAdded/);
35
- });
36
- test("python codegen emits precise trigger helper annotations", () => {
37
- const output = renderPythonGeneratedCode(preparePythonTemplateContext(buildCodegenInput()));
38
- assert.match(output, /def on_pr_synchronized\(\*, repo: GitHubRepo\) -> TriggerConfig\[GitHubPullRequestSynchronizedTriggerEvent\]:/);
39
- assert.match(output, /def on_issue_created\(\*, project_id: str \| None = None, project_name: str \| None = None\) -> TriggerConfig\[LinearIssueCreatedTriggerEvent\]:/);
40
- assert.match(output, /def on_membership_created\(\) -> TriggerConfig\[WorkOSOrganizationMembershipCreatedTriggerEvent\]:/);
41
- assert.match(output, /class Webhook:/);
42
- assert.doesNotMatch(output, /def on_app_mention/);
43
- assert.doesNotMatch(output, /def on_reaction_added/);
44
- });
45
- //# sourceMappingURL=codegen.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codegen.test.js","sourceRoot":"","sources":["../../src/providers/codegen.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAEpE,SAAS,iBAAiB;IACtB,OAAO;QACH,MAAM,EAAE;YACJ;gBACI,WAAW,EAAE,EAAE,EAAE,EAAE,YAAY,EAAS;gBACxC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;aAClF;SACJ;QACD,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC9F,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QAClD,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAChE,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QACrD,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;KACZ,CAAA;AACL,CAAC;AAED,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAC9D,MAAM,MAAM,GAAG,mBAAmB,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IAE/E,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sGAAsG,CAAC,CAAA;IAC5H,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,0HAA0H,CAAC,CAAA;IAChJ,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,wFAAwF,CAAC,CAAA;IAC9G,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC3C,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAClD,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;IACjE,MAAM,MAAM,GAAG,yBAAyB,CAAC,4BAA4B,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IAE3F,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,+GAA+G,CAAC,CAAA;IACrI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,kJAAkJ,CAAC,CAAA;IACxK,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,oGAAoG,CAAC,CAAA;IAC1H,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACtC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IACjD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;AACxD,CAAC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=PythonProvider.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PythonProvider.test.d.ts","sourceRoot":"","sources":["../../../src/providers/python/PythonProvider.test.ts"],"names":[],"mappings":""}
@@ -1,169 +0,0 @@
1
- import assert from "node:assert/strict";
2
- import fs from "node:fs";
3
- import os from "node:os";
4
- import path from "node:path";
5
- import { afterEach, beforeEach, describe, it, mock } from "node:test";
6
- import { PythonProvider } from "./PythonProvider.js";
7
- const JOB_REGISTRY_MARKER = "__TERSE_JOB_REGISTRY__=";
8
- const CREATED_DIRS = [];
9
- class ExitSignal extends Error {
10
- code;
11
- constructor(code) {
12
- super(`process.exit(${code ?? 0})`);
13
- this.code = code;
14
- }
15
- }
16
- class TestPythonProvider extends PythonProvider {
17
- execStdout = "";
18
- capturedScripts = [];
19
- execCalls = [];
20
- async execUvCommand(args, opts) {
21
- this.execCalls.push({ args, cwd: opts.cwd, env: opts.env });
22
- return { stdout: this.execStdout, stderr: "" };
23
- }
24
- async withTempPythonScript(source, fn) {
25
- this.capturedScripts.push(source);
26
- return fn("/tmp/terse-python-provider-test.py");
27
- }
28
- async ensureUvAvailable(_cwd) { }
29
- }
30
- describe("PythonProvider entry file resolution", () => {
31
- const originalCwd = process.cwd();
32
- beforeEach(() => {
33
- mock.restoreAll();
34
- });
35
- afterEach(() => {
36
- process.chdir(originalCwd);
37
- mock.restoreAll();
38
- while (CREATED_DIRS.length > 0) {
39
- const dir = CREATED_DIRS.pop();
40
- if (dir)
41
- fs.rmSync(dir, { recursive: true, force: true });
42
- }
43
- });
44
- it("loads the canonical default entry file from src/main.py", async () => {
45
- const dir = createPythonProject({
46
- "src/main.py": "from terse_sdk import Terse\napp = Terse()\n"
47
- });
48
- process.chdir(dir);
49
- const provider = new TestPythonProvider();
50
- provider.execStdout = buildRegistryPayload("default-job");
51
- const registry = await provider.loadJobRegistry();
52
- assert.deepEqual([...registry.keys()], ["default-job"]);
53
- assert.match(provider.capturedScripts[0], /ENTRY_FILE = "src\/main\.py"/);
54
- assert.deepEqual(provider.execCalls[0]?.args, ["run", "python", "/tmp/terse-python-provider-test.py"]);
55
- assert.equal(fs.realpathSync(provider.execCalls[0]?.cwd ?? ""), fs.realpathSync(dir));
56
- assert.match(provider.execCalls[0]?.env?.UV_CACHE_DIR ?? "", /terse-uv-cache$/);
57
- });
58
- it("prints guidance when the default entry file is missing", async () => {
59
- const dir = createPythonProject({
60
- "src/server.py": "from terse_sdk import Terse\napp = Terse()\n"
61
- });
62
- process.chdir(dir);
63
- const provider = new TestPythonProvider();
64
- const errors = [];
65
- mock.method(console, "error", (...args) => {
66
- errors.push(args.map(String).join(" "));
67
- });
68
- mock.method(process, "exit", (code) => {
69
- throw new ExitSignal(code);
70
- });
71
- await assert.rejects(provider.loadJobRegistry(), (error) => error instanceof ExitSignal && error.code === 1);
72
- const output = stripAnsi(errors.join("\n"));
73
- assert.match(output, /default Python Terse entry file at src\/main\.py/);
74
- assert.match(output, /register at least one job with @app\.job/);
75
- assert.match(output, /terse test --entry-file src\/server\.py/);
76
- assert.match(output, /terse run my-job --entry-file src\/server\.py --event-file \.\/event\.json/);
77
- assert.match(output, /terse deploy --entry-file src\/server\.py/);
78
- assert.equal(provider.execCalls.length, 0);
79
- });
80
- it("loads a non-canonical entry file when --entry-file is provided", async () => {
81
- const dir = createPythonProject({
82
- "src/server.py": "from terse_sdk import Terse\napp = Terse()\n"
83
- });
84
- process.chdir(dir);
85
- const provider = new TestPythonProvider();
86
- provider.execStdout = buildRegistryPayload("self-hosted-job");
87
- const registry = await provider.loadJobRegistry("src/server.py");
88
- assert.deepEqual([...registry.keys()], ["self-hosted-job"]);
89
- assert.match(provider.capturedScripts[0], /ENTRY_FILE = "src\/server\.py"/);
90
- });
91
- });
92
- describe("PythonProvider GitHub codegen parity", () => {
93
- it("renders GitHub.skill() with repositoryIds via PythonProvider.renderGeneratedCode()", () => {
94
- const provider = new PythonProvider();
95
- const code = provider.renderGeneratedCode(buildCodegenInput({
96
- github: [
97
- {
98
- integration: {
99
- id: "github-integration-id",
100
- installation_id: 123,
101
- account_name: "TerseAI"
102
- },
103
- repositories: [
104
- {
105
- id: 1076128380,
106
- name: "Terse",
107
- owner: "TerseAI",
108
- fullName: "TerseAI/Terse"
109
- }
110
- ]
111
- }
112
- ]
113
- }));
114
- assert.match(code, /class GitHub:/);
115
- assert.match(code, /def skill\(\*, repos: Sequence\[GitHubRepo\]\) -> SkillConfig\[str\]:/);
116
- assert.match(code, /integration_id='github-integration-id'/);
117
- assert.match(code, /config_type='github'/);
118
- assert.match(code, /repositoryIds=\[repo\.repository_id for repo in repos\]/);
119
- });
120
- it("does not emit GitHub helpers when no GitHub integration is present", () => {
121
- const provider = new PythonProvider();
122
- const code = provider.renderGeneratedCode(buildCodegenInput());
123
- assert.doesNotMatch(code, /# === GitHub ===/);
124
- assert.doesNotMatch(code, /def skill\(\*, repos: Sequence\[GitHubRepo\]\)/);
125
- });
126
- });
127
- function createPythonProject(files) {
128
- const dir = fs.mkdtempSync(path.join(os.tmpdir(), "terse-python-provider-"));
129
- CREATED_DIRS.push(dir);
130
- fs.writeFileSync(path.join(dir, "pyproject.toml"), ["[project]", 'name = "provider-test"', 'version = "0.0.1"', 'requires-python = ">=3.11"', "dependencies = []", ""].join("\n"), "utf-8");
131
- for (const [relativePath, contents] of Object.entries(files)) {
132
- const filePath = path.join(dir, relativePath);
133
- fs.mkdirSync(path.dirname(filePath), { recursive: true });
134
- fs.writeFileSync(filePath, contents, "utf-8");
135
- }
136
- return dir;
137
- }
138
- function buildRegistryPayload(jobName) {
139
- return `${JOB_REGISTRY_MARKER}${JSON.stringify({
140
- [jobName]: {
141
- name: jobName,
142
- triggers: [],
143
- skills: [],
144
- toolApprovals: [],
145
- hasFilter: false
146
- }
147
- })}`;
148
- }
149
- function stripAnsi(value) {
150
- return value.replace(/\u001B\[[0-9;]*m/g, "");
151
- }
152
- function buildCodegenInput(overrides = {}) {
153
- return {
154
- github: [],
155
- slack: [],
156
- gmail: [],
157
- linear: [],
158
- notion: [],
159
- posthog: [],
160
- datadog: [],
161
- launchdarkly: [],
162
- workos: [],
163
- attio: [],
164
- snowflake: [],
165
- tools: [],
166
- ...overrides
167
- };
168
- }
169
- //# sourceMappingURL=PythonProvider.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PythonProvider.test.js","sourceRoot":"","sources":["../../../src/providers/python/PythonProvider.test.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import { z } from "zod";
2
- import type { AttioAttributeData } from "../codegenTypes.js";
3
- export declare function buildAttioValueTypeDeclarations(): Promise<string[]>;
4
- export declare function buildAttioObjectTypeDeclarations(objects: readonly AttioValueTypeSource[], lists: readonly AttioValueTypeSource[]): Promise<string[]>;
5
- export declare function attioObjectValueTypeNames(staticName: string): {
6
- record: string;
7
- input: string;
8
- };
9
- export declare function attioListValueTypeNames(staticName: string): {
10
- entry: string;
11
- entryRecord: string;
12
- };
13
- export declare function buildAttioRecordTriggerAliases(objects: readonly AttioValueTypeSource[]): string[];
14
- export declare function buildAttioToolTypeDeclarations(attioToolNames: readonly string[]): Promise<string[]>;
15
- export declare function attioOutputTypeName(toolName: string): string;
16
- export declare function attioMethodParamsTypeName(methodName: string): string;
17
- export declare class AttioProjectionError extends Error {
18
- constructor(message: string);
19
- }
20
- export declare function buildAttioValuesSchema(attributes: readonly AttioAttributeData[], mode: AttioValueMode): z.ZodType;
21
- export declare function attioIsMultiValue(attr: AttioAttributeData): boolean;
22
- export declare const ATTIO_RESOURCE_METHOD_SPECS: Record<string, AttioResourceMethodSpec[]>;
23
- export type AttioValueMode = "input" | "record";
24
- export type AttioResultSpec = {
25
- kind: "single";
26
- key: string;
27
- what?: string;
28
- } | {
29
- kind: "singleWithCursor";
30
- key: string;
31
- what?: string;
32
- } | {
33
- kind: "list";
34
- key: string;
35
- cursor?: boolean;
36
- } | {
37
- kind: "void";
38
- };
39
- export interface AttioResourceMethodSpec {
40
- /** Discriminant to inject into the request; omitted for single-op tools with flat request schemas. */
41
- action?: string;
42
- methodName: string;
43
- emptyParams?: boolean;
44
- result: AttioResultSpec;
45
- }
46
- export type AttioValueTypeSource = {
47
- readonly staticName: string;
48
- readonly attributes: readonly AttioAttributeData[];
49
- };
50
- //# sourceMappingURL=attioProjection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attioProjection.d.ts","sourceRoot":"","sources":["../../../src/providers/typescript/attioProjection.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAI5D,wBAAsB,+BAA+B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAUzE;AAED,wBAAsB,gCAAgC,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,EAAE,KAAK,EAAE,SAAS,oBAAoB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkB1J;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAE/F;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAElG;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAQjG;AAED,wBAAsB,8BAA8B,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA6BzG;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI9B;AAgCD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,CAAC,CAAC,OAAO,CAQjH;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAGnE;AA4KD,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAuDjF,CAAA;AAOD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE/C,MAAM,MAAM,eAAe,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtB,MAAM,WAAW,uBAAuB;IACpC,sGAAsG;IACtG,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,eAAe,CAAA;CAC1B;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAA;CACrD,CAAA"}