terse-cli 0.3.8 → 0.4.1

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 (270) hide show
  1. package/dist/cliUi.js +1 -1
  2. package/dist/cliUi.js.map +1 -1
  3. package/dist/commands/deploy.d.ts.map +1 -1
  4. package/dist/commands/deploy.js +138 -22
  5. package/dist/commands/deploy.js.map +1 -1
  6. package/dist/providers/typescript/TypeScriptProvider.js +2 -2
  7. package/dist/providers/typescript/TypeScriptProvider.js.map +1 -1
  8. package/dist/providers/typescript/durableRuntime.d.ts +1 -1
  9. package/dist/providers/typescript/durableRuntime.d.ts.map +1 -1
  10. package/dist/providers/typescript/durableRuntime.js +7 -6
  11. package/dist/providers/typescript/durableRuntime.js.map +1 -1
  12. package/dist/providers/typescript/workflowShim.d.ts +2 -0
  13. package/dist/providers/typescript/workflowShim.d.ts.map +1 -0
  14. package/dist/providers/typescript/workflowShim.js +51 -0
  15. package/dist/providers/typescript/workflowShim.js.map +1 -0
  16. package/package.json +5 -5
  17. package/templates/typescript/init/package.json.hbs +1 -1
  18. package/templates/typescript/workflow-shim/api.js +5 -0
  19. package/templates/typescript/workflow-shim/index.js +2 -0
  20. package/templates/typescript/workflow-shim/internal/builtins.js +83 -0
  21. package/templates/typescript/workflow-shim/internal/class-serialization.js +1 -0
  22. package/templates/typescript/workflow-shim/runtime.js +1 -0
  23. package/templates/typescript/workflow-shim/stdlib.js +18 -0
  24. package/templates/typescript/workflow-shim/workflow.js +2 -0
  25. package/dist/_tmp_create_project.d.ts +0 -2
  26. package/dist/_tmp_create_project.d.ts.map +0 -1
  27. package/dist/_tmp_create_project.js +0 -17
  28. package/dist/_tmp_create_project.js.map +0 -1
  29. package/dist/_tmp_delete_agent.d.ts +0 -2
  30. package/dist/_tmp_delete_agent.d.ts.map +0 -1
  31. package/dist/_tmp_delete_agent.js +0 -14
  32. package/dist/_tmp_delete_agent.js.map +0 -1
  33. package/dist/_tmp_manual_trigger.d.ts +0 -2
  34. package/dist/_tmp_manual_trigger.d.ts.map +0 -1
  35. package/dist/_tmp_manual_trigger.js +0 -17
  36. package/dist/_tmp_manual_trigger.js.map +0 -1
  37. package/dist/_tmp_patch_active.d.ts +0 -2
  38. package/dist/_tmp_patch_active.d.ts.map +0 -1
  39. package/dist/_tmp_patch_active.js +0 -21
  40. package/dist/_tmp_patch_active.js.map +0 -1
  41. package/dist/attach.d.ts +0 -3
  42. package/dist/attach.d.ts.map +0 -1
  43. package/dist/attach.js +0 -61
  44. package/dist/attach.js.map +0 -1
  45. package/dist/auth.d.ts +0 -15
  46. package/dist/auth.d.ts.map +0 -1
  47. package/dist/auth.js +0 -169
  48. package/dist/auth.js.map +0 -1
  49. package/dist/codegen.d.ts +0 -135
  50. package/dist/codegen.d.ts.map +0 -1
  51. package/dist/codegen.js +0 -1196
  52. package/dist/codegen.js.map +0 -1
  53. package/dist/commands/deployTheme.d.ts +0 -28
  54. package/dist/commands/deployTheme.d.ts.map +0 -1
  55. package/dist/commands/deployTheme.js +0 -68
  56. package/dist/commands/deployTheme.js.map +0 -1
  57. package/dist/commands/dev.d.ts +0 -3
  58. package/dist/commands/dev.d.ts.map +0 -1
  59. package/dist/commands/dev.js +0 -47
  60. package/dist/commands/dev.js.map +0 -1
  61. package/dist/commands/fsExec.d.ts +0 -8
  62. package/dist/commands/fsExec.d.ts.map +0 -1
  63. package/dist/commands/fsExec.js +0 -46
  64. package/dist/commands/fsExec.js.map +0 -1
  65. package/dist/commands/metaAdsScope.d.ts +0 -12
  66. package/dist/commands/metaAdsScope.d.ts.map +0 -1
  67. package/dist/commands/metaAdsScope.js +0 -120
  68. package/dist/commands/metaAdsScope.js.map +0 -1
  69. package/dist/commands/serve.d.ts +0 -1
  70. package/dist/commands/serve.d.ts.map +0 -1
  71. package/dist/commands/serve.js +0 -2
  72. package/dist/commands/serve.js.map +0 -1
  73. package/dist/commands/terseCliTheme.d.ts +0 -28
  74. package/dist/commands/terseCliTheme.d.ts.map +0 -1
  75. package/dist/commands/terseCliTheme.js +0 -68
  76. package/dist/commands/terseCliTheme.js.map +0 -1
  77. package/dist/commands/tool.d.ts +0 -6
  78. package/dist/commands/tool.d.ts.map +0 -1
  79. package/dist/commands/tool.js +0 -34
  80. package/dist/commands/tool.js.map +0 -1
  81. package/dist/data/standardSlackEmoji.d.ts +0 -2
  82. package/dist/data/standardSlackEmoji.d.ts.map +0 -1
  83. package/dist/data/standardSlackEmoji.js +0 -1978
  84. package/dist/data/standardSlackEmoji.js.map +0 -1
  85. package/dist/data/standardSlackEmoji.json +0 -1974
  86. package/dist/deploy.d.ts +0 -3
  87. package/dist/deploy.d.ts.map +0 -1
  88. package/dist/deploy.js +0 -124
  89. package/dist/deploy.js.map +0 -1
  90. package/dist/generate.d.ts +0 -3
  91. package/dist/generate.d.ts.map +0 -1
  92. package/dist/generate.js +0 -282
  93. package/dist/generate.js.map +0 -1
  94. package/dist/init.d.ts +0 -3
  95. package/dist/init.d.ts.map +0 -1
  96. package/dist/init.js +0 -98
  97. package/dist/init.js.map +0 -1
  98. package/dist/integrate.d.ts +0 -3
  99. package/dist/integrate.d.ts.map +0 -1
  100. package/dist/integrate.js +0 -214
  101. package/dist/integrate.js.map +0 -1
  102. package/dist/nonInteractive.d.ts +0 -20
  103. package/dist/nonInteractive.d.ts.map +0 -1
  104. package/dist/nonInteractive.js +0 -60
  105. package/dist/nonInteractive.js.map +0 -1
  106. package/dist/perf.d.ts +0 -9
  107. package/dist/perf.d.ts.map +0 -1
  108. package/dist/perf.js +0 -59
  109. package/dist/perf.js.map +0 -1
  110. package/dist/providers/codegen.test.d.ts +0 -2
  111. package/dist/providers/codegen.test.d.ts.map +0 -1
  112. package/dist/providers/codegen.test.js +0 -45
  113. package/dist/providers/codegen.test.js.map +0 -1
  114. package/dist/providers/python/PythonProvider.d.ts +0 -51
  115. package/dist/providers/python/PythonProvider.d.ts.map +0 -1
  116. package/dist/providers/python/PythonProvider.js +0 -414
  117. package/dist/providers/python/PythonProvider.js.map +0 -1
  118. package/dist/providers/python/PythonProvider.test.d.ts +0 -2
  119. package/dist/providers/python/PythonProvider.test.d.ts.map +0 -1
  120. package/dist/providers/python/PythonProvider.test.js +0 -169
  121. package/dist/providers/python/PythonProvider.test.js.map +0 -1
  122. package/dist/providers/python/preparePythonCodegenData.d.ts +0 -139
  123. package/dist/providers/python/preparePythonCodegenData.d.ts.map +0 -1
  124. package/dist/providers/python/preparePythonCodegenData.js +0 -452
  125. package/dist/providers/python/preparePythonCodegenData.js.map +0 -1
  126. package/dist/providers/python/pythonTemplateEngine.d.ts +0 -3
  127. package/dist/providers/python/pythonTemplateEngine.d.ts.map +0 -1
  128. package/dist/providers/python/pythonTemplateEngine.js +0 -30
  129. package/dist/providers/python/pythonTemplateEngine.js.map +0 -1
  130. package/dist/providers/shared/shellUtils.d.ts +0 -2
  131. package/dist/providers/shared/shellUtils.d.ts.map +0 -1
  132. package/dist/providers/shared/shellUtils.js +0 -25
  133. package/dist/providers/shared/shellUtils.js.map +0 -1
  134. package/dist/providers/typescript/attioProjection.d.ts +0 -50
  135. package/dist/providers/typescript/attioProjection.d.ts.map +0 -1
  136. package/dist/providers/typescript/attioProjection.js +0 -358
  137. package/dist/providers/typescript/attioProjection.js.map +0 -1
  138. package/dist/providers/typescript/modules/cursor/CursorModule.d.ts +0 -20
  139. package/dist/providers/typescript/modules/cursor/CursorModule.d.ts.map +0 -1
  140. package/dist/providers/typescript/modules/cursor/CursorModule.js +0 -27
  141. package/dist/providers/typescript/modules/cursor/CursorModule.js.map +0 -1
  142. package/dist/providers/typescript/prepareCodegenData.d.ts +0 -166
  143. package/dist/providers/typescript/prepareCodegenData.d.ts.map +0 -1
  144. package/dist/providers/typescript/prepareCodegenData.js +0 -1431
  145. package/dist/providers/typescript/prepareCodegenData.js.map +0 -1
  146. package/dist/providers/typescript/prepareCodegenData.test.d.ts +0 -2
  147. package/dist/providers/typescript/prepareCodegenData.test.d.ts.map +0 -1
  148. package/dist/providers/typescript/prepareCodegenData.test.js +0 -54
  149. package/dist/providers/typescript/prepareCodegenData.test.js.map +0 -1
  150. package/dist/providers/typescript/projectedTypes.d.ts +0 -11
  151. package/dist/providers/typescript/projectedTypes.d.ts.map +0 -1
  152. package/dist/providers/typescript/projectedTypes.js +0 -53
  153. package/dist/providers/typescript/projectedTypes.js.map +0 -1
  154. package/dist/providers/typescript/projectionPrinter.d.ts +0 -26
  155. package/dist/providers/typescript/projectionPrinter.d.ts.map +0 -1
  156. package/dist/providers/typescript/projectionPrinter.js +0 -110
  157. package/dist/providers/typescript/projectionPrinter.js.map +0 -1
  158. package/dist/providers/typescript/replayLogDedupe.d.ts +0 -6
  159. package/dist/providers/typescript/replayLogDedupe.d.ts.map +0 -1
  160. package/dist/providers/typescript/replayLogDedupe.js +0 -156
  161. package/dist/providers/typescript/replayLogDedupe.js.map +0 -1
  162. package/dist/providers/typescript/triggerPayloads.d.ts +0 -7
  163. package/dist/providers/typescript/triggerPayloads.d.ts.map +0 -1
  164. package/dist/providers/typescript/triggerPayloads.js +0 -60
  165. package/dist/providers/typescript/triggerPayloads.js.map +0 -1
  166. package/dist/providers/typescript/triggerTypeRegistry.d.ts +0 -7
  167. package/dist/providers/typescript/triggerTypeRegistry.d.ts.map +0 -1
  168. package/dist/providers/typescript/triggerTypeRegistry.js +0 -198
  169. package/dist/providers/typescript/triggerTypeRegistry.js.map +0 -1
  170. package/dist/run.d.ts +0 -3
  171. package/dist/run.d.ts.map +0 -1
  172. package/dist/run.js +0 -72
  173. package/dist/run.js.map +0 -1
  174. package/dist/sampleEventCache.d.ts +0 -9
  175. package/dist/sampleEventCache.d.ts.map +0 -1
  176. package/dist/sampleEventCache.js +0 -47
  177. package/dist/sampleEventCache.js.map +0 -1
  178. package/dist/sampleEventId.d.ts +0 -9
  179. package/dist/sampleEventId.d.ts.map +0 -1
  180. package/dist/sampleEventId.js +0 -16
  181. package/dist/sampleEventId.js.map +0 -1
  182. package/dist/shared/ApiRoutes.d.ts +0 -348
  183. package/dist/shared/ApiRoutes.d.ts.map +0 -1
  184. package/dist/shared/ApiRoutes.js +0 -325
  185. package/dist/shared/ApiRoutes.js.map +0 -1
  186. package/dist/shared/ApprovalTypes.d.ts +0 -29
  187. package/dist/shared/ApprovalTypes.d.ts.map +0 -1
  188. package/dist/shared/ApprovalTypes.js +0 -8
  189. package/dist/shared/ApprovalTypes.js.map +0 -1
  190. package/dist/shared/ClientBoundTools.d.ts +0 -37
  191. package/dist/shared/ClientBoundTools.d.ts.map +0 -1
  192. package/dist/shared/ClientBoundTools.js +0 -37
  193. package/dist/shared/ClientBoundTools.js.map +0 -1
  194. package/dist/shared/Configs.d.ts +0 -488
  195. package/dist/shared/Configs.d.ts.map +0 -1
  196. package/dist/shared/Configs.js +0 -785
  197. package/dist/shared/Configs.js.map +0 -1
  198. package/dist/shared/DonatedState.d.ts +0 -5
  199. package/dist/shared/DonatedState.d.ts.map +0 -1
  200. package/dist/shared/DonatedState.js +0 -13
  201. package/dist/shared/DonatedState.js.map +0 -1
  202. package/dist/shared/Entities.d.ts +0 -8
  203. package/dist/shared/Entities.d.ts.map +0 -1
  204. package/dist/shared/Entities.js +0 -9
  205. package/dist/shared/Entities.js.map +0 -1
  206. package/dist/shared/FrontendRoutes.d.ts +0 -54
  207. package/dist/shared/FrontendRoutes.d.ts.map +0 -1
  208. package/dist/shared/FrontendRoutes.js +0 -54
  209. package/dist/shared/FrontendRoutes.js.map +0 -1
  210. package/dist/shared/Integrations.d.ts +0 -235
  211. package/dist/shared/Integrations.d.ts.map +0 -1
  212. package/dist/shared/Integrations.js +0 -143
  213. package/dist/shared/Integrations.js.map +0 -1
  214. package/dist/shared/InvalidationKeys.d.ts +0 -53
  215. package/dist/shared/InvalidationKeys.d.ts.map +0 -1
  216. package/dist/shared/InvalidationKeys.js +0 -166
  217. package/dist/shared/InvalidationKeys.js.map +0 -1
  218. package/dist/shared/ModelEvents.d.ts +0 -176
  219. package/dist/shared/ModelEvents.d.ts.map +0 -1
  220. package/dist/shared/ModelEvents.js +0 -29
  221. package/dist/shared/ModelEvents.js.map +0 -1
  222. package/dist/shared/Notifications.d.ts +0 -43
  223. package/dist/shared/Notifications.d.ts.map +0 -1
  224. package/dist/shared/Notifications.js +0 -6
  225. package/dist/shared/Notifications.js.map +0 -1
  226. package/dist/shared/RunHistoryTypes.d.ts +0 -95
  227. package/dist/shared/RunHistoryTypes.d.ts.map +0 -1
  228. package/dist/shared/RunHistoryTypes.js +0 -11
  229. package/dist/shared/RunHistoryTypes.js.map +0 -1
  230. package/dist/shared/SentNotifications.d.ts +0 -30
  231. package/dist/shared/SentNotifications.d.ts.map +0 -1
  232. package/dist/shared/SentNotifications.js +0 -13
  233. package/dist/shared/SentNotifications.js.map +0 -1
  234. package/dist/shared/SocketEvents.d.ts +0 -49
  235. package/dist/shared/SocketEvents.d.ts.map +0 -1
  236. package/dist/shared/SocketEvents.js +0 -53
  237. package/dist/shared/SocketEvents.js.map +0 -1
  238. package/dist/shared/Survey.d.ts +0 -10
  239. package/dist/shared/Survey.d.ts.map +0 -1
  240. package/dist/shared/Survey.js +0 -2
  241. package/dist/shared/Survey.js.map +0 -1
  242. package/dist/shared/TicketSystem.d.ts +0 -154
  243. package/dist/shared/TicketSystem.d.ts.map +0 -1
  244. package/dist/shared/TicketSystem.js +0 -21
  245. package/dist/shared/TicketSystem.js.map +0 -1
  246. package/dist/shared/ToolDisplayUtils.d.ts +0 -30
  247. package/dist/shared/ToolDisplayUtils.d.ts.map +0 -1
  248. package/dist/shared/ToolDisplayUtils.js +0 -1163
  249. package/dist/shared/ToolDisplayUtils.js.map +0 -1
  250. package/dist/shared/ToolsTypes.d.ts +0 -18
  251. package/dist/shared/ToolsTypes.d.ts.map +0 -1
  252. package/dist/shared/ToolsTypes.js +0 -2
  253. package/dist/shared/ToolsTypes.js.map +0 -1
  254. package/dist/shared/types.d.ts +0 -1732
  255. package/dist/shared/types.d.ts.map +0 -1
  256. package/dist/shared/types.js +0 -17
  257. package/dist/shared/types.js.map +0 -1
  258. package/dist/test.d.ts +0 -3
  259. package/dist/test.d.ts.map +0 -1
  260. package/dist/test.js +0 -82
  261. package/dist/test.js.map +0 -1
  262. package/dist/triggerParseDetail.d.ts +0 -8
  263. package/dist/triggerParseDetail.d.ts.map +0 -1
  264. package/dist/triggerParseDetail.js +0 -30
  265. package/dist/triggerParseDetail.js.map +0 -1
  266. package/dist/util.d.ts +0 -3
  267. package/dist/util.d.ts.map +0 -1
  268. package/dist/util.js +0 -5
  269. package/dist/util.js.map +0 -1
  270. package/templates/typescript/codegen/.impeccable/hook.cache.json +0 -1
@@ -0,0 +1,83 @@
1
+ // Vendored verbatim from workflow@5.0.0-beta.19 dist/internal/builtins.js. Re-sync when the
2
+ // pinned @workflow/core version changes: these are compiled step sources, not a re-export.
3
+ /**
4
+ * These are the built-in steps that are "automatically available" in the workflow scope. They are
5
+ * similar to "stdlib" except that are not meant to be imported by users, but are instead "just available"
6
+ * alongside user defined steps. They are used internally by the runtime
7
+ */
8
+ export async function __builtin_response_array_buffer() {
9
+ 'use step';
10
+ return this.arrayBuffer();
11
+ }
12
+ export async function __builtin_response_json() {
13
+ 'use step';
14
+ return this.json();
15
+ }
16
+ export async function __builtin_response_text() {
17
+ 'use step';
18
+ return this.text();
19
+ }
20
+ /**
21
+ * Process-wide dedupe for the unsupported-world warning so high-volume
22
+ * callers don't flood logs.
23
+ */
24
+ const UNSUPPORTED_WORLD_WARNED = Symbol.for('@workflow/setAttributes//unsupportedWorldWarned');
25
+ const INTERNAL_ATTRIBUTES_MAX_ATTEMPTS = 3;
26
+ function formatUnknownError(error) {
27
+ if (error instanceof Error) {
28
+ return error.stack ?? `${error.name}: ${error.message}`;
29
+ }
30
+ return String(error);
31
+ }
32
+ /**
33
+ * Step bridge for workflow-body `setAttributes` calls. The VM-side
34
+ * helper validates input and dispatches here via `useStep`. This step
35
+ * runs in normal Node context with full world access.
36
+ *
37
+ * The dispatch reads the world and current run id directly from
38
+ * `globalThis` symbols populated by the workflow/step runtime — this
39
+ * intentionally avoids importing `@workflow/core` so the Next.js
40
+ * deferred-entries discoverer can't walk a chain into world adapters
41
+ * and `@vercel/queue` from this step file.
42
+ */
43
+ export async function __builtin_set_attributes(changes, options) {
44
+ 'use step';
45
+ if (changes.length === 0)
46
+ return;
47
+ const g = globalThis;
48
+ const contextStorage = g[Symbol.for('WORKFLOW_STEP_CONTEXT_STORAGE')];
49
+ const store = contextStorage?.getStore?.();
50
+ const attempt = typeof store?.stepMetadata?.attempt === 'number'
51
+ ? store.stepMetadata.attempt
52
+ : INTERNAL_ATTRIBUTES_MAX_ATTEMPTS;
53
+ const world = g[Symbol.for('@workflow/world//cache')];
54
+ if (typeof world?.runs?.experimentalSetAttributes !== 'function') {
55
+ // World adapter doesn't implement attributes yet — no-op the call,
56
+ // but emit one process-wide warning so users know their writes are
57
+ // being dropped. The VM-side validation already ran so the input
58
+ // is well-formed.
59
+ if (!g[UNSUPPORTED_WORLD_WARNED]) {
60
+ g[UNSUPPORTED_WORLD_WARNED] = true;
61
+ const worldName = world?.name ? ` (${world.name})` : '';
62
+ console.warn(`[workflow] setAttributes: the current world implementation${worldName} does not implement experimentalSetAttributes; this call (and any subsequent setAttributes calls in this process) is a no-op. Attributes will become available once the world adapter adds support.`);
63
+ }
64
+ return;
65
+ }
66
+ try {
67
+ const runId = store?.workflowMetadata?.workflowRunId;
68
+ if (!runId) {
69
+ throw new Error('__builtin_set_attributes: no workflow run id available in step context');
70
+ }
71
+ await world.runs.experimentalSetAttributes(runId, changes, options);
72
+ }
73
+ catch (error) {
74
+ if (attempt < INTERNAL_ATTRIBUTES_MAX_ATTEMPTS) {
75
+ throw error;
76
+ }
77
+ // Failing to post tags should not fail a run during the experimental phase.
78
+ // After three attempts, log and let the internal step complete so the
79
+ // runtime does not convert retry exhaustion into a FatalError.
80
+ console.error(`[workflow] setAttributes: failed to post tags after ${INTERNAL_ATTRIBUTES_MAX_ATTEMPTS} attempts; dropping the internal attribute write. ${formatUnknownError(error)}`);
81
+ }
82
+ }
83
+ __builtin_set_attributes.maxRetries = INTERNAL_ATTRIBUTES_MAX_ATTEMPTS - 1;
@@ -0,0 +1 @@
1
+ export * from "@workflow/core/class-serialization"
@@ -0,0 +1 @@
1
+ export * from "@workflow/core/runtime"
@@ -0,0 +1,18 @@
1
+ // Vendored verbatim from workflow@5.0.0-beta.19 dist/stdlib.js. Re-sync when the pinned
2
+ // @workflow/core version changes: these are compiled step sources, not a re-export.
3
+ /**
4
+ * This is the "standard library" of steps that we make available to all workflow users.
5
+ * The can be imported like so: `import { fetch } from 'workflow'`. and used in workflow.
6
+ * The need to be exported directly in this package and cannot live in `core` to prevent
7
+ * circular dependencies post-compilation.
8
+ */
9
+ /**
10
+ * A hoisted `fetch()` function that is executed as a "step" function,
11
+ * for use within workflow functions.
12
+ *
13
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
14
+ */
15
+ export async function fetch(...args) {
16
+ 'use step';
17
+ return globalThis.fetch(...args);
18
+ }
@@ -0,0 +1,2 @@
1
+ export * from "@workflow/core/_workflow"
2
+ export * from "./stdlib.js"
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=_tmp_create_project.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_tmp_create_project.d.ts","sourceRoot":"","sources":["../src/_tmp_create_project.ts"],"names":[],"mappings":""}
@@ -1,17 +0,0 @@
1
- import { readApiKeyOrBail } from "./api.js";
2
- import { createRemoteProject, writeProjectConfig } from "./projectConfig.js";
3
- async function main() {
4
- const name = process.argv[2];
5
- const dir = process.argv[3];
6
- const apiKey = readApiKeyOrBail();
7
- const config = await createRemoteProject(apiKey, name);
8
- writeProjectConfig(dir, config);
9
- console.log("CREATED " + JSON.stringify(config));
10
- }
11
- main()
12
- .then(() => process.exit(0))
13
- .catch((e) => {
14
- console.error("CAUGHT", e instanceof Error ? e.message : String(e));
15
- process.exit(1);
16
- });
17
- //# sourceMappingURL=_tmp_create_project.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_tmp_create_project.js","sourceRoot":"","sources":["../src/_tmp_create_project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5E,KAAK,UAAU,IAAI;IACf,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAW,CAAA;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAW,CAAA;IACrC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IACjC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACtD,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,IAAI,EAAE;KACD,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC3B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACT,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=_tmp_delete_agent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_tmp_delete_agent.d.ts","sourceRoot":"","sources":["../src/_tmp_delete_agent.ts"],"names":[],"mappings":""}
@@ -1,14 +0,0 @@
1
- import { fetchWithAuth, readApiKeyOrBail } from "./api.js";
2
- async function main() {
3
- const id = process.argv[2];
4
- const apiKey = readApiKeyOrBail();
5
- const resp = await fetchWithAuth(`/agents/${id}`, apiKey, {}, "DELETE");
6
- console.log("DELETED " + JSON.stringify(resp));
7
- }
8
- main()
9
- .then(() => process.exit(0))
10
- .catch((e) => {
11
- console.error("CAUGHT", e instanceof Error ? e.message : String(e));
12
- process.exit(1);
13
- });
14
- //# sourceMappingURL=_tmp_delete_agent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_tmp_delete_agent.js","sourceRoot":"","sources":["../src/_tmp_delete_agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE1D,KAAK,UAAU,IAAI;IACf,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAW,CAAA;IACpC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IACjC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;IACvE,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,IAAI,EAAE;KACD,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC3B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACT,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=_tmp_manual_trigger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_tmp_manual_trigger.d.ts","sourceRoot":"","sources":["../src/_tmp_manual_trigger.ts"],"names":[],"mappings":""}
@@ -1,17 +0,0 @@
1
- import { ApiRoutes, buildRoute } from "terse-types";
2
- import { fetchWithAuth, readApiKeyOrBail } from "./api.js";
3
- async function main() {
4
- const inputId = process.argv[2];
5
- const context = process.argv[3];
6
- const apiKey = readApiKeyOrBail();
7
- const route = buildRoute(ApiRoutes.SCHEDULE.TRIGGER_BY_INPUT_ID, { inputId });
8
- const resp = await fetchWithAuth(route, apiKey, context ? { context } : {}, "POST");
9
- console.log("TRIGGERED " + JSON.stringify(resp));
10
- }
11
- main()
12
- .then(() => process.exit(0))
13
- .catch((e) => {
14
- console.error("CAUGHT", e instanceof Error ? e.message : String(e));
15
- process.exit(1);
16
- });
17
- //# sourceMappingURL=_tmp_manual_trigger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_tmp_manual_trigger.js","sourceRoot":"","sources":["../src/_tmp_manual_trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEnD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE1D,KAAK,UAAU,IAAI;IACf,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAW,CAAA;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IAC7E,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IACnF,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,IAAI,EAAE;KACD,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC3B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACT,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=_tmp_patch_active.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_tmp_patch_active.d.ts","sourceRoot":"","sources":["../src/_tmp_patch_active.ts"],"names":[],"mappings":""}
@@ -1,21 +0,0 @@
1
- import { readApiKeyOrBail } from "./api.js";
2
- import { BACKEND_URL } from "./config.js";
3
- async function main() {
4
- const id = process.argv[2];
5
- const active = process.argv[3] === "true";
6
- const apiKey = readApiKeyOrBail();
7
- const res = await fetch(`${BACKEND_URL}/agents/${id}`, {
8
- method: "PATCH",
9
- headers: { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" },
10
- body: JSON.stringify({ isActive: active })
11
- });
12
- const text = await res.text();
13
- console.log("PATCH " + res.status + " active=" + active + " " + text.slice(0, 160));
14
- }
15
- main()
16
- .then(() => process.exit(0))
17
- .catch((e) => {
18
- console.error("CAUGHT", e instanceof Error ? e.message : String(e));
19
- process.exit(1);
20
- });
21
- //# sourceMappingURL=_tmp_patch_active.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_tmp_patch_active.js","sourceRoot":"","sources":["../src/_tmp_patch_active.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,KAAK,UAAU,IAAI;IACf,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAW,CAAA;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAA;IACzC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IACjC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,WAAW,EAAE,EAAE,EAAE;QACnD,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAClF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;KAC7C,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAC7B,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;AACvF,CAAC;AAED,IAAI,EAAE;KACD,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC3B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACT,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA"}
package/dist/attach.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { LanguageProvider } from "./providers/LanguageProvider.js";
2
- export declare function attach(provider?: LanguageProvider): Promise<void>;
3
- //# sourceMappingURL=attach.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../src/attach.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAGvE,wBAAsB,MAAM,CAAC,QAAQ,GAAE,gBAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD1F"}
package/dist/attach.js DELETED
@@ -1,61 +0,0 @@
1
- import chalk from "chalk";
2
- import fs from "node:fs";
3
- import path from "node:path";
4
- import ora from "ora";
5
- import { getExistingAuthenticatedUserName, login } from "./auth.js";
6
- import { generate } from "./generate.js";
7
- import { listAndPromptIntegrations } from "./integrate.js";
8
- import { resolveProvider } from "./providers/resolveProvider.js";
9
- export async function attach(provider = resolveProvider()) {
10
- const cwd = process.cwd();
11
- const projectName = path.basename(cwd);
12
- const existingUserName = await getExistingAuthenticatedUserName(cwd);
13
- if (existingUserName) {
14
- console.log(`\n ${chalk.green.bold("Already set up")} for ${chalk.bold(existingUserName)}.\n`);
15
- console.log(chalk.dim(" This project already has a valid TERSE_API_KEY, so attach does not need to run again.\n"));
16
- console.log(" Next steps:\n");
17
- console.log(` 1. Run ${chalk.cyan("terse integrate")} to connect or review integrations`);
18
- console.log(` 2. Run ${chalk.cyan("terse generate")} to refresh generated helpers`);
19
- console.log(` 3. Run ${chalk.cyan("terse deploy")} when you're ready to sync jobs`);
20
- console.log("");
21
- return;
22
- }
23
- console.log(`\n Attaching Terse to existing project ${chalk.bold(projectName)}\n`);
24
- console.log(chalk.dim(" Your jobs will run on your own infrastructure via TERSE_REMOTE_SERVER_URL. No source code is uploaded to Terse.\n"));
25
- const result = await login();
26
- if (result?.apiKey) {
27
- console.log(`\n Add this to your ${chalk.bold(".env")} file:\n`);
28
- console.log(`TERSE_API_KEY=${result.apiKey}`);
29
- console.log("");
30
- }
31
- else {
32
- console.log(chalk.dim(" You can run `terse login` later to authenticate."));
33
- }
34
- await listAndPromptIntegrations();
35
- if (canGenerateFromCurrentDirectory(provider, cwd)) {
36
- const spinner = ora("Generating code").start();
37
- try {
38
- await generate(provider);
39
- spinner.succeed("Generated code");
40
- }
41
- catch {
42
- spinner.warn(`Failed to generate code. Run ${chalk.cyan("terse generate")} manually.`);
43
- }
44
- }
45
- else {
46
- console.log(chalk.yellow(`\n Skipped code generation because this repo is missing ${provider.detectionMarkers.requiredFiles.join(", ")}.`));
47
- console.log(chalk.dim(` Add your job entrypoint at ${provider.entryFile}, then run ${chalk.cyan("terse generate")} manually.\n`));
48
- }
49
- console.log(`\n ${chalk.green.bold("Done!")} Terse is attached to your existing project.\n`);
50
- console.log(" Next steps:\n");
51
- console.log(` 1. Install ${chalk.cyan("terse-sdk")} in this repo if you haven't already`);
52
- console.log(` 2. Add your Terse job definitions to ${chalk.cyan(provider.entryFile)} and import that file from your app startup path`);
53
- console.log(chalk.dim(` If your self-hosted app keeps jobs in another file, use ${chalk.cyan("--entry-file")} with terse test, terse run, and terse deploy.`));
54
- console.log(` 3. Set ${chalk.cyan("TERSE_REMOTE_SERVER_URL")} in ${chalk.cyan(".env")} before running ${chalk.cyan("terse deploy")}`);
55
- console.log(` 4. Run ${chalk.cyan("terse integrate")} to connect integrations`);
56
- console.log("");
57
- }
58
- function canGenerateFromCurrentDirectory(provider, cwd) {
59
- return provider.detectionMarkers.requiredFiles.every(relativePath => fs.existsSync(path.join(cwd, relativePath)));
60
- }
61
- //# sourceMappingURL=attach.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attach.js","sourceRoot":"","sources":["../src/attach.ts"],"names":[],"mappings":"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"}
package/dist/auth.d.ts DELETED
@@ -1,15 +0,0 @@
1
- /**
2
- * Run the full device authorization login flow.
3
- * Returns the API key on success, or null if the user cancels.
4
- */
5
- export declare function login(): Promise<{
6
- apiKey: string;
7
- displayName: string | null;
8
- } | null>;
9
- /**
10
- * Run login and write the API key to .env in the given directory.
11
- * If a valid key already exists, prompts the user to confirm before re-authenticating.
12
- */
13
- export declare function loginAndWriteEnv(targetDir: string): Promise<boolean>;
14
- export declare function getExistingAuthenticatedUserName(targetDir?: string): Promise<string | null>;
15
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAqHA;;;GAGG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAAC,CA0C5F;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiC1E;AAED,wBAAsB,gCAAgC,CAAC,SAAS,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYhH"}
package/dist/auth.js DELETED
@@ -1,169 +0,0 @@
1
- import { confirm } from "@inquirer/prompts";
2
- import chalk from "chalk";
3
- import { exec } from "node:child_process";
4
- import fs from "node:fs";
5
- import path from "node:path";
6
- import process from "node:process";
7
- import ora from "ora";
8
- import { fetchWithAuth, readApiKeyFromDir } from "./api.js";
9
- import { BACKEND_URL, WORKOS_CLIENT_ID } from "./config.js";
10
- const DEVICE_AUTH_URL = "https://api.workos.com/user_management/authorize/device";
11
- const TOKEN_URL = "https://api.workos.com/user_management/authenticate";
12
- const DEVICE_CODE_GRANT_TYPE = "urn:ietf:params:oauth:grant-type:device_code";
13
- function sleep(ms) {
14
- return new Promise(resolve => setTimeout(resolve, ms));
15
- }
16
- function openInBrowser(url) {
17
- const platform = process.platform;
18
- const cmd = platform === "darwin" ? "open" : platform === "win32" ? "start" : "xdg-open";
19
- exec(`${cmd} "${url}"`);
20
- }
21
- async function requestDeviceCode() {
22
- const res = await fetch(DEVICE_AUTH_URL, {
23
- method: "POST",
24
- headers: { "Content-Type": "application/x-www-form-urlencoded" },
25
- body: new URLSearchParams({ client_id: WORKOS_CLIENT_ID })
26
- });
27
- if (!res.ok) {
28
- const body = await res.text();
29
- throw new Error(`Failed to request device code: ${res.status} ${body}`);
30
- }
31
- return res.json();
32
- }
33
- async function pollForTokens(deviceCode, expiresIn, interval) {
34
- const deadline = Date.now() + expiresIn * 1000;
35
- let pollInterval = interval;
36
- while (Date.now() < deadline) {
37
- await sleep(pollInterval * 1000);
38
- const res = await fetch(TOKEN_URL, {
39
- method: "POST",
40
- headers: { "Content-Type": "application/x-www-form-urlencoded" },
41
- body: new URLSearchParams({
42
- grant_type: DEVICE_CODE_GRANT_TYPE,
43
- device_code: deviceCode,
44
- client_id: WORKOS_CLIENT_ID
45
- })
46
- });
47
- if (res.ok) {
48
- return res.json();
49
- }
50
- const data = (await res.json());
51
- switch (data.error) {
52
- case "authorization_pending":
53
- break;
54
- case "slow_down":
55
- pollInterval += 1;
56
- break;
57
- case "access_denied":
58
- throw new Error("Authorization was denied");
59
- case "expired_token":
60
- throw new Error("Authorization expired — please try again");
61
- default:
62
- throw new Error(`Authorization failed: ${data.error}`);
63
- }
64
- }
65
- throw new Error("Authorization timed out — please try again");
66
- }
67
- async function exchangeForApiKey(accessToken) {
68
- const res = await fetch(`${BACKEND_URL}/sdk/auth/device-token-exchange`, {
69
- method: "POST",
70
- headers: { "Content-Type": "application/json" },
71
- body: JSON.stringify({ accessToken })
72
- });
73
- if (!res.ok) {
74
- const body = (await res.json().catch(() => ({})));
75
- throw new Error(`${res.status} — ${body.error || "Failed to exchange token"}`);
76
- }
77
- return res.json();
78
- }
79
- /**
80
- * Run the full device authorization login flow.
81
- * Returns the API key on success, or null if the user cancels.
82
- */
83
- export async function login() {
84
- const spinner = ora("Requesting login code").start();
85
- let deviceData;
86
- try {
87
- deviceData = await requestDeviceCode();
88
- spinner.stop();
89
- }
90
- catch (err) {
91
- spinner.fail("Failed to start login flow");
92
- console.error(chalk.red(` ${err.message}`));
93
- return null;
94
- }
95
- console.log(`\n ${chalk.bold("To sign in, open this URL in your browser:")}\n`);
96
- console.log(` ${chalk.cyan(deviceData.verification_uri_complete)}\n`);
97
- console.log(` Or visit ${chalk.cyan(deviceData.verification_uri)} and enter code: ${chalk.bold(deviceData.user_code)}\n`);
98
- openInBrowser(deviceData.verification_uri_complete);
99
- const pollSpinner = ora("Waiting for authentication in browser").start();
100
- let tokenData;
101
- try {
102
- tokenData = await pollForTokens(deviceData.device_code, deviceData.expires_in, deviceData.interval);
103
- pollSpinner.text = "Exchanging token";
104
- }
105
- catch (err) {
106
- pollSpinner.fail("Login failed");
107
- console.error(chalk.red(` ${err.message}`));
108
- return null;
109
- }
110
- let exchangeData;
111
- try {
112
- exchangeData = await exchangeForApiKey(tokenData.access_token);
113
- pollSpinner.succeed(`Logged in as ${chalk.bold(exchangeData.user.displayName || exchangeData.user.email)}`);
114
- }
115
- catch (err) {
116
- pollSpinner.fail("Failed to create API key");
117
- console.error(chalk.red(` ${err.message}`));
118
- return null;
119
- }
120
- return { apiKey: exchangeData.apiKey, displayName: exchangeData.user.displayName };
121
- }
122
- /**
123
- * Run login and write the API key to .env in the given directory.
124
- * If a valid key already exists, prompts the user to confirm before re-authenticating.
125
- */
126
- export async function loginAndWriteEnv(targetDir) {
127
- const existingUserName = await getExistingAuthenticatedUserName(targetDir);
128
- if (existingUserName) {
129
- const spinner = ora("Checking existing API key").start();
130
- spinner.succeed(`Already logged in as ${chalk.bold(existingUserName)}`);
131
- const shouldContinue = await confirm({ message: "Log in again with a different account?", default: false });
132
- if (!shouldContinue)
133
- return true;
134
- }
135
- if (readApiKeyFromDir(targetDir)) {
136
- const spinner = ora("Checking existing API key").start();
137
- spinner.warn("Existing API key is invalid or expired");
138
- }
139
- const result = await login();
140
- if (!result?.apiKey) {
141
- console.log(chalk.dim(" You can run `terse login` later to authenticate."));
142
- return false;
143
- }
144
- const apiKey = result.apiKey;
145
- const envPath = path.resolve(targetDir, ".env");
146
- const envContent = fs.existsSync(envPath) ? fs.readFileSync(envPath, "utf-8") : "";
147
- if (envContent.includes("TERSE_API_KEY=")) {
148
- const updated = envContent.replace(/^TERSE_API_KEY=.*$/m, `TERSE_API_KEY=${apiKey}`);
149
- fs.writeFileSync(envPath, updated);
150
- }
151
- else {
152
- fs.writeFileSync(envPath, envContent ? `${envContent.trimEnd()}\nTERSE_API_KEY=${apiKey}\n` : `TERSE_API_KEY=${apiKey}\n`);
153
- }
154
- return true;
155
- }
156
- export async function getExistingAuthenticatedUserName(targetDir = process.cwd()) {
157
- const existingKey = readApiKeyFromDir(targetDir);
158
- if (!existingKey) {
159
- return null;
160
- }
161
- try {
162
- const me = await fetchWithAuth("/sdk/me", existingKey);
163
- return me.displayName || me.firstName || me.email || "Unknown user";
164
- }
165
- catch {
166
- return null;
167
- }
168
- }
169
- //# sourceMappingURL=auth.js.map
package/dist/auth.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}