terse-cli 0.1.35 → 0.1.37

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 (92) hide show
  1. package/README.md +1 -1
  2. package/dist/api.d.ts +1 -1
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +10 -10
  5. package/dist/api.js.map +1 -1
  6. package/dist/assertProjectRoot.d.ts +1 -1
  7. package/dist/assertProjectRoot.d.ts.map +1 -1
  8. package/dist/assertProjectRoot.js +5 -4
  9. package/dist/assertProjectRoot.js.map +1 -1
  10. package/dist/cliError.d.ts +22 -0
  11. package/dist/cliError.d.ts.map +1 -0
  12. package/dist/cliError.js +67 -0
  13. package/dist/cliError.js.map +1 -0
  14. package/dist/cliHelpers.d.ts +20 -0
  15. package/dist/cliHelpers.d.ts.map +1 -0
  16. package/dist/cliHelpers.js +69 -0
  17. package/dist/cliHelpers.js.map +1 -0
  18. package/dist/commands/attach.d.ts +2 -1
  19. package/dist/commands/attach.d.ts.map +1 -1
  20. package/dist/commands/attach.js +7 -5
  21. package/dist/commands/attach.js.map +1 -1
  22. package/dist/commands/auth.d.ts +2 -1
  23. package/dist/commands/auth.d.ts.map +1 -1
  24. package/dist/commands/auth.js +20 -1
  25. package/dist/commands/auth.js.map +1 -1
  26. package/dist/commands/deploy.d.ts.map +1 -1
  27. package/dist/commands/deploy.js +14 -14
  28. package/dist/commands/deploy.js.map +1 -1
  29. package/dist/commands/generate.d.ts +1 -5
  30. package/dist/commands/generate.d.ts.map +1 -1
  31. package/dist/commands/generate.js +13 -16
  32. package/dist/commands/generate.js.map +1 -1
  33. package/dist/commands/history.d.ts +1 -1
  34. package/dist/commands/history.d.ts.map +1 -1
  35. package/dist/commands/history.js +4 -3
  36. package/dist/commands/history.js.map +1 -1
  37. package/dist/commands/init.d.ts +2 -1
  38. package/dist/commands/init.d.ts.map +1 -1
  39. package/dist/commands/init.js +11 -10
  40. package/dist/commands/init.js.map +1 -1
  41. package/dist/commands/integrate.d.ts +32 -2
  42. package/dist/commands/integrate.d.ts.map +1 -1
  43. package/dist/commands/integrate.js +424 -64
  44. package/dist/commands/integrate.js.map +1 -1
  45. package/dist/commands/replay.d.ts.map +1 -1
  46. package/dist/commands/replay.js +5 -6
  47. package/dist/commands/replay.js.map +1 -1
  48. package/dist/commands/run.d.ts.map +1 -1
  49. package/dist/commands/run.js +14 -17
  50. package/dist/commands/run.js.map +1 -1
  51. package/dist/commands/test.d.ts +47 -0
  52. package/dist/commands/test.d.ts.map +1 -1
  53. package/dist/commands/test.js +268 -48
  54. package/dist/commands/test.js.map +1 -1
  55. package/dist/index.js +161 -14
  56. package/dist/index.js.map +1 -1
  57. package/dist/integrationApi.d.ts +5 -2
  58. package/dist/integrationApi.d.ts.map +1 -1
  59. package/dist/integrationApi.js +8 -4
  60. package/dist/integrationApi.js.map +1 -1
  61. package/dist/loadJob.d.ts +2 -1
  62. package/dist/loadJob.d.ts.map +1 -1
  63. package/dist/loadJob.js +16 -13
  64. package/dist/loadJob.js.map +1 -1
  65. package/dist/nonInteractive.d.ts +20 -0
  66. package/dist/nonInteractive.d.ts.map +1 -0
  67. package/dist/nonInteractive.js +60 -0
  68. package/dist/nonInteractive.js.map +1 -0
  69. package/dist/projectConfig.d.ts.map +1 -1
  70. package/dist/projectConfig.js +17 -10
  71. package/dist/projectConfig.js.map +1 -1
  72. package/dist/providers/python/PythonProvider.d.ts.map +1 -1
  73. package/dist/providers/python/PythonProvider.js +24 -14
  74. package/dist/providers/python/PythonProvider.js.map +1 -1
  75. package/dist/providers/resolveProvider.d.ts.map +1 -1
  76. package/dist/providers/resolveProvider.js +7 -9
  77. package/dist/providers/resolveProvider.js.map +1 -1
  78. package/dist/providers/shared/entryFileGuidance.d.ts.map +1 -1
  79. package/dist/providers/shared/entryFileGuidance.js +7 -12
  80. package/dist/providers/shared/entryFileGuidance.js.map +1 -1
  81. package/dist/providers/typescript/TypeScriptProvider.d.ts.map +1 -1
  82. package/dist/providers/typescript/TypeScriptProvider.js +30 -27
  83. package/dist/providers/typescript/TypeScriptProvider.js.map +1 -1
  84. package/dist/sampleEventCache.d.ts +9 -0
  85. package/dist/sampleEventCache.d.ts.map +1 -0
  86. package/dist/sampleEventCache.js +47 -0
  87. package/dist/sampleEventCache.js.map +1 -0
  88. package/dist/sampleEventId.d.ts +9 -0
  89. package/dist/sampleEventId.d.ts.map +1 -0
  90. package/dist/sampleEventId.js +16 -0
  91. package/dist/sampleEventId.js.map +1 -0
  92. package/package.json +3 -3
@@ -1,12 +1,15 @@
1
- import { intro, log, outro } from "@clack/prompts";
2
- import { confirm, input, password, select } from "@inquirer/prompts";
1
+ import { cancel, confirm, group, intro, isCancel, log, outro, password, select, text } from "@clack/prompts";
2
+ import { input } from "@inquirer/prompts";
3
3
  import chalk from "chalk";
4
4
  import { INTEGRATION_METADATA, IntegrationType } from "terse-types";
5
5
  import { readApiKey, readApiKeyOrBail } from "../api.js";
6
+ import { CliError } from "../cliError.js";
7
+ import { isNonInteractive, parseKeyValueFlags, readFieldsFromStdin } from "../cliHelpers.js";
6
8
  import { createSpinner, formatSummaryList } from "../cliUi.js";
7
- import { fetchInstallationUrl, fetchIntegrationFields, fetchIntegrations, pollForConnection, submitIntegrationForm } from "../integrationApi.js";
9
+ import { disconnectIntegration, fetchInstallationUrl, fetchIntegrationFields, fetchIntegrations, pollForConnection, submitIntegrationForm } from "../integrationApi.js";
8
10
  import { openUrlInBrowser } from "../openBrowser.js";
9
11
  import { generate } from "./generate.js";
12
+ const INTERNAL_INTEGRATION_TYPES = new Set([IntegrationType.TERSE, IntegrationType.CRON_JOB, IntegrationType.WEBMONITOR]);
10
13
  export async function integrate(options = {}) {
11
14
  const showLifecycle = options.showLifecycle ?? true;
12
15
  const runGenerateAfterChange = options.runGenerateAfterChange ?? true;
@@ -19,10 +22,13 @@ export async function integrate(options = {}) {
19
22
  while (continueLoop) {
20
23
  const result = await connectOneIntegration(apiKey);
21
24
  didChangeAnyIntegration = didChangeAnyIntegration || result.status !== "unchanged";
22
- continueLoop = await confirm({ message: "Connect another integration?", default: false });
25
+ continueLoop = abortIfCancelled(await confirm({
26
+ message: "Connect another integration?",
27
+ initialValue: false
28
+ }));
23
29
  }
24
30
  if (didChangeAnyIntegration && runGenerateAfterChange) {
25
- await generate(undefined, { showLifecycle: false });
31
+ await generate(undefined);
26
32
  }
27
33
  if (showLifecycle) {
28
34
  outro("Done");
@@ -44,11 +50,24 @@ export async function listAndPromptIntegrations(options = {}) {
44
50
  console.error(chalk.red("Failed to fetch integrations"));
45
51
  return;
46
52
  }
47
- const active = integrations.filter(i => i.isActive && i.integrationType !== IntegrationType.TERSE && i.integrationType !== IntegrationType.CRON_JOB);
53
+ const active = integrations.filter(i => i.isActive && !INTERNAL_INTEGRATION_TYPES.has(i.integrationType));
54
+ if (options.nonInteractive || isNonInteractive()) {
55
+ if (active.length > 0) {
56
+ const names = active.map(i => INTEGRATION_METADATA[i.integrationType]?.name || i.integrationType);
57
+ console.log(chalk.dim(`Connected integrations (${active.length}): ${formatSummaryList(names)}`));
58
+ }
59
+ else {
60
+ console.log(chalk.dim("No integrated tools yet. Run `terse integrate` in an interactive terminal to connect some."));
61
+ }
62
+ return;
63
+ }
48
64
  if (active.length > 0) {
49
65
  const names = active.map(i => INTEGRATION_METADATA[i.integrationType]?.name || i.integrationType);
50
66
  console.log(chalk.dim(`Connected integrations (${active.length}): ${formatSummaryList(names)}`));
51
- const addMore = await confirm({ message: "Connect another integration?", default: false });
67
+ const addMore = abortIfCancelled(await confirm({
68
+ message: "Connect another integration?",
69
+ initialValue: false
70
+ }));
52
71
  if (addMore)
53
72
  await integrate({ showLifecycle: false, runGenerateAfterChange: options.runGenerateAfterChange });
54
73
  }
@@ -58,85 +77,169 @@ export async function listAndPromptIntegrations(options = {}) {
58
77
  }
59
78
  }
60
79
  async function connectOneIntegration(apiKey) {
80
+ while (true) {
81
+ const integrations = await fetchUserFacingIntegrations(apiKey);
82
+ if (integrations.length === 0) {
83
+ log.warn("No integrations available.");
84
+ return { status: "unchanged" };
85
+ }
86
+ const selection = await promptForIntegrationSelection(integrations);
87
+ if (selection.action === "back") {
88
+ continue;
89
+ }
90
+ const selectedIntegration = integrations.find(integration => integration.integrationType === selection.integrationType);
91
+ if (!selectedIntegration) {
92
+ log.warn(`Integration '${selection.integrationType}' is no longer available.`);
93
+ return { status: "unchanged" };
94
+ }
95
+ switch (selection.action) {
96
+ case "keep":
97
+ return { status: "unchanged", integrationType: selection.integrationType };
98
+ case "disconnect": {
99
+ const didDisconnect = await handleDisconnect(apiKey, selection.integrationType);
100
+ return {
101
+ status: didDisconnect ? "modified" : "unchanged",
102
+ integrationType: selection.integrationType
103
+ };
104
+ }
105
+ case "connect":
106
+ case "refresh_permissions": {
107
+ const didUpdate = await runInstallationFlow(apiKey, selection.integrationType);
108
+ return {
109
+ status: didUpdate ? (selectedIntegration.isActive ? "modified" : "added") : "unchanged",
110
+ integrationType: selection.integrationType
111
+ };
112
+ }
113
+ }
114
+ }
115
+ }
116
+ async function fetchUserFacingIntegrations(apiKey) {
61
117
  const s = createSpinner();
62
118
  s.start("Fetching integrations");
63
- let integrations;
64
119
  try {
65
- integrations = await fetchIntegrations(apiKey);
120
+ const integrations = await fetchIntegrations(apiKey);
66
121
  s.stop("Fetched integrations");
122
+ return integrations.filter(i => !INTERNAL_INTEGRATION_TYPES.has(i.integrationType));
67
123
  }
68
124
  catch (err) {
69
125
  s.stop("Failed to fetch integrations");
70
- console.error(chalk.red(` ${err.message}`));
71
- process.exit(1);
72
- }
73
- const userFacing = integrations.filter(i => i.integrationType !== IntegrationType.TERSE && i.integrationType !== IntegrationType.CRON_JOB && i.integrationType !== IntegrationType.WEBMONITOR);
74
- if (userFacing.length === 0) {
75
- log.warn("No integrations available.");
76
- return { status: "unchanged" };
77
- }
78
- const selected = await select({
79
- message: "Select an integration to connect",
80
- choices: userFacing.map(i => {
81
- const meta = INTEGRATION_METADATA[i.integrationType];
82
- const name = meta?.name || i.integrationType;
83
- const status = i.isActive ? chalk.green(" connected") : chalk.dim(" not connected");
84
- return {
85
- name: `${name}${status}`,
86
- value: i.integrationType,
87
- description: meta?.description
88
- };
89
- })
126
+ throw new CliError("fetch_integrations_failed", err?.message ?? "Failed to fetch integrations.");
127
+ }
128
+ }
129
+ async function promptForIntegrationSelection(integrations) {
130
+ const longestName = integrations.reduce((max, integration) => Math.max(max, getIntegrationDisplayName(integration).length), 0);
131
+ return group({
132
+ integrationType: () => select({
133
+ message: "Choose an integration",
134
+ options: integrations.map(integration => ({
135
+ value: integration.integrationType,
136
+ label: formatIntegrationPickerLabel(integration, longestName)
137
+ }))
138
+ }),
139
+ action: ({ results }) => {
140
+ const selectedType = results.integrationType;
141
+ const selectedIntegration = integrations.find(integration => integration.integrationType === selectedType);
142
+ if (!selectedIntegration) {
143
+ throw new Error(`Integration '${selectedType}' is no longer available`);
144
+ }
145
+ return select({
146
+ message: getIntegrationDisplayName(selectedIntegration),
147
+ options: getIntegrationActions(selectedIntegration).map(action => ({
148
+ value: action,
149
+ label: formatIntegrationActionLabel(action)
150
+ }))
151
+ });
152
+ }
153
+ }, {
154
+ onCancel: () => {
155
+ cancel("Operation cancelled.");
156
+ process.exit(0);
157
+ }
90
158
  });
91
- const selectedIntegration = userFacing.find(i => i.integrationType === selected);
159
+ }
160
+ function getIntegrationActions(integration) {
161
+ if (integration.cliDisplayState.status === "connected") {
162
+ return ["keep", "disconnect", "refresh_permissions"];
163
+ }
164
+ return ["connect", "back"];
165
+ }
166
+ function formatIntegrationActionLabel(action) {
167
+ switch (action) {
168
+ case "keep":
169
+ return "Keep this connection";
170
+ case "disconnect":
171
+ return "Disconnect";
172
+ case "refresh_permissions":
173
+ return "Refresh permissions";
174
+ case "connect":
175
+ return "Connect";
176
+ case "back":
177
+ return "Back";
178
+ default:
179
+ const exhaustiveCheck = action;
180
+ throw new Error(`Unhandled integration action: ${exhaustiveCheck}`);
181
+ }
182
+ }
183
+ function formatIntegrationPickerLabel(integration, longestName) {
184
+ const name = getIntegrationDisplayName(integration).padEnd(longestName);
185
+ const summary = formatIntegrationDisplaySummary(integration.cliDisplayState);
186
+ return `${name} ${chalk.dim(summary)}`;
187
+ }
188
+ function formatIntegrationDisplaySummary(displayState) {
189
+ if (displayState.status === "connected") {
190
+ return `${displayState.summaryLabel}: ${displayState.summaryValue}`;
191
+ }
192
+ return "Not connected";
193
+ }
194
+ function getIntegrationDisplayName(integration) {
195
+ return INTEGRATION_METADATA[integration.integrationType]?.name || integration.integrationType;
196
+ }
197
+ async function runInstallationFlow(apiKey, integrationType) {
198
+ const s = createSpinner();
92
199
  s.start("Loading integration details");
93
- let fieldsResponse;
94
200
  try {
95
- fieldsResponse = await fetchIntegrationFields(apiKey, selected);
201
+ const fieldsResponse = await fetchIntegrationFields(apiKey, integrationType);
96
202
  s.stop("Loaded integration details");
203
+ if (fieldsResponse.installationType === "form") {
204
+ return handleFormIntegration(apiKey, integrationType, fieldsResponse.fields, fieldsResponse.setup);
205
+ }
206
+ if (fieldsResponse.installationType === "oauth") {
207
+ return handleOAuthIntegration(apiKey, integrationType, fieldsResponse.fields);
208
+ }
97
209
  }
98
210
  catch (err) {
99
211
  s.stop("Failed to load integration details");
100
212
  console.error(chalk.red(` ${err.message}`));
101
- process.exit(1);
102
- }
103
- if (fieldsResponse.installationType === "form") {
104
- const didUpdate = await handleFormIntegration(apiKey, selected, fieldsResponse.fields);
105
- return {
106
- status: didUpdate ? (selectedIntegration?.isActive ? "modified" : "added") : "unchanged",
107
- integrationType: selected
108
- };
109
- }
110
- if (fieldsResponse.installationType === "oauth") {
111
- const didUpdate = await handleOAuthIntegration(apiKey, selected, fieldsResponse.fields);
112
- return {
113
- status: didUpdate ? (selectedIntegration?.isActive ? "modified" : "added") : "unchanged",
114
- integrationType: selected
115
- };
213
+ return false;
116
214
  }
117
- log.warn(`Integration '${selected}' has an unsupported installation type.`);
118
- return {
119
- status: "unchanged",
120
- integrationType: selected
121
- };
215
+ log.warn(`Integration '${integrationType}' has an unsupported installation type.`);
216
+ return false;
122
217
  }
123
- async function handleFormIntegration(apiKey, integrationType, fields) {
218
+ async function handleFormIntegration(apiKey, integrationType, fields, setup) {
219
+ await showFormSetupGuidance(integrationType, setup);
124
220
  const formValues = {};
125
221
  for (const field of fields) {
126
- const hint = field.hint ? chalk.dim(` (${field.hint})`) : "";
222
+ const promptMessage = buildFieldPromptMessage(field);
127
223
  if (field.type === "password") {
128
- formValues[field.name] = await password({
129
- message: `${field.label}${hint}`,
130
- validate: field.required ? v => (v.length > 0 ? true : `${field.label} is required`) : undefined
131
- });
224
+ formValues[field.name] = abortIfCancelled(await password({
225
+ message: promptMessage,
226
+ validate: field.required ? value => ((value?.length ?? 0) > 0 ? undefined : `${field.label} is required`) : undefined
227
+ }));
228
+ continue;
132
229
  }
133
- else {
230
+ if (field.type === "textarea") {
134
231
  formValues[field.name] = await input({
135
- message: `${field.label}${hint}`,
232
+ message: promptMessage,
136
233
  default: field.placeholder,
137
- validate: field.required ? v => (v.length > 0 ? true : `${field.label} is required`) : undefined
234
+ validate: field.required ? value => (value.length > 0 ? true : `${field.label} is required`) : undefined
138
235
  });
236
+ continue;
139
237
  }
238
+ formValues[field.name] = abortIfCancelled(await text({
239
+ message: promptMessage,
240
+ placeholder: field.placeholder,
241
+ validate: field.required ? value => ((value?.length ?? 0) > 0 ? undefined : `${field.label} is required`) : undefined
242
+ }));
140
243
  }
141
244
  const s = createSpinner();
142
245
  s.start("Connecting integration");
@@ -155,15 +258,36 @@ async function handleFormIntegration(apiKey, integrationType, fields) {
155
258
  return false;
156
259
  }
157
260
  }
261
+ async function showFormSetupGuidance(integrationType, setup) {
262
+ if (!setup)
263
+ return;
264
+ log.info(chalk.bold(`${INTEGRATION_METADATA[integrationType]?.name || integrationType} setup`));
265
+ console.log(chalk.cyan(setup.url));
266
+ console.log(chalk.dim(setup.title));
267
+ for (const instruction of setup.instructions) {
268
+ console.log(` ${chalk.dim("•")} ${instruction}`);
269
+ }
270
+ console.log("");
271
+ const shouldOpenSetupUrl = abortIfCancelled(await confirm({
272
+ message: "Open setup instructions in your browser?",
273
+ initialValue: false
274
+ }));
275
+ if (shouldOpenSetupUrl) {
276
+ openUrlInBrowser(setup.url);
277
+ }
278
+ }
279
+ function buildFieldPromptMessage(field) {
280
+ return field.hint ? `${field.label} ${chalk.dim(`(${field.hint})`)}` : field.label;
281
+ }
158
282
  async function handleOAuthIntegration(apiKey, integrationType, configFields) {
159
283
  let options;
160
284
  if (configFields.length > 0) {
161
285
  options = {};
162
286
  for (const field of configFields) {
163
- const value = await select({
287
+ const value = abortIfCancelled(await select({
164
288
  message: field.label,
165
- choices: field.options.map(o => ({ name: o.label, value: o.value }))
166
- });
289
+ options: field.options.map(option => ({ value: option.value, label: option.label }))
290
+ }));
167
291
  options[field.name] = value;
168
292
  }
169
293
  }
@@ -190,4 +314,240 @@ async function handleOAuthIntegration(apiKey, integrationType, configFields) {
190
314
  s.stop("Authorization timed out — please try again");
191
315
  return false;
192
316
  }
317
+ async function handleDisconnect(apiKey, integrationType) {
318
+ const s = createSpinner();
319
+ s.start("Disconnecting integration");
320
+ try {
321
+ const result = await disconnectIntegration(apiKey, integrationType);
322
+ if (result.success) {
323
+ s.stop("Integration disconnected successfully");
324
+ return true;
325
+ }
326
+ s.stop(`Failed to disconnect: ${result.error || "Unknown error"}`);
327
+ return false;
328
+ }
329
+ catch (err) {
330
+ s.stop("Failed to disconnect integration");
331
+ console.error(chalk.red(` ${err.message}`));
332
+ return false;
333
+ }
334
+ }
335
+ function abortIfCancelled(value) {
336
+ if (isCancel(value)) {
337
+ cancel("Operation cancelled.");
338
+ process.exit(0);
339
+ }
340
+ return value;
341
+ }
342
+ // -------------------------------------------------------------------------
343
+ // Non-interactive subcommands
344
+ // -------------------------------------------------------------------------
345
+ function parseIntegrationTypeOrThrow(value) {
346
+ const normalized = value.toLowerCase();
347
+ const match = Object.values(IntegrationType).find(v => v === normalized);
348
+ if (!match) {
349
+ throw new CliError("unknown_integration_type", `Unknown integration type "${value}".`, {
350
+ detail: `Supported: ${Object.values(IntegrationType)
351
+ .filter(v => !INTERNAL_INTEGRATION_TYPES.has(v))
352
+ .join(", ")}`
353
+ });
354
+ }
355
+ return match;
356
+ }
357
+ function summaryFor(displayState) {
358
+ if (displayState.status === "connected") {
359
+ return { summaryLabel: displayState.summaryLabel, summaryValue: displayState.summaryValue };
360
+ }
361
+ return { summaryLabel: null, summaryValue: null };
362
+ }
363
+ export async function integrateList(opts = {}) {
364
+ const apiKey = readApiKeyOrBail();
365
+ const integrations = (await fetchIntegrations(apiKey)).filter(i => !INTERNAL_INTEGRATION_TYPES.has(i.integrationType));
366
+ const filtered = integrations.filter(i => {
367
+ if (opts.status === "connected")
368
+ return i.isActive;
369
+ if (opts.status === "disconnected")
370
+ return !i.isActive;
371
+ return true;
372
+ });
373
+ if (opts.json) {
374
+ const payload = {
375
+ integrations: await Promise.all(filtered.map(async (integration) => {
376
+ const { summaryLabel, summaryValue } = summaryFor(integration.cliDisplayState);
377
+ return {
378
+ type: integration.integrationType,
379
+ status: integration.isActive ? "connected" : "disconnected",
380
+ name: INTEGRATION_METADATA[integration.integrationType]?.name ?? integration.integrationType,
381
+ summaryLabel,
382
+ summaryValue
383
+ };
384
+ }))
385
+ };
386
+ process.stdout.write(JSON.stringify(payload, null, 2) + "\n");
387
+ return;
388
+ }
389
+ if (filtered.length === 0) {
390
+ process.stdout.write("No integrations.\n");
391
+ return;
392
+ }
393
+ const longest = filtered.reduce((max, i) => Math.max(max, (INTEGRATION_METADATA[i.integrationType]?.name ?? i.integrationType).length), 0);
394
+ for (const integration of filtered) {
395
+ const name = (INTEGRATION_METADATA[integration.integrationType]?.name ?? integration.integrationType).padEnd(longest);
396
+ const status = integration.isActive ? chalk.green("connected") : chalk.dim("not connected");
397
+ const { summaryLabel, summaryValue } = summaryFor(integration.cliDisplayState);
398
+ const summary = summaryLabel && summaryValue ? ` ${chalk.dim(`${summaryLabel}: ${summaryValue}`)}` : "";
399
+ process.stdout.write(` ${name} ${status}${summary}\n`);
400
+ }
401
+ }
402
+ export async function integrateDescribe(opts) {
403
+ const type = parseIntegrationTypeOrThrow(opts.integrationType);
404
+ const apiKey = readApiKeyOrBail();
405
+ const [integrations, fieldsResponse] = await Promise.all([fetchIntegrations(apiKey), fetchIntegrationFields(apiKey, type)]);
406
+ const match = integrations.find(i => i.integrationType === type);
407
+ const payload = {
408
+ type,
409
+ name: INTEGRATION_METADATA[type]?.name ?? type,
410
+ status: match?.isActive ? "connected" : "disconnected",
411
+ installationType: fieldsResponse.installationType,
412
+ fields: fieldsResponse.fields,
413
+ setup: fieldsResponse.setup ?? null
414
+ };
415
+ if (opts.json) {
416
+ process.stdout.write(JSON.stringify(payload, null, 2) + "\n");
417
+ return;
418
+ }
419
+ process.stdout.write(`${chalk.bold(payload.name)} ${payload.status === "connected" ? chalk.green("connected") : chalk.dim("not connected")}\n`);
420
+ process.stdout.write(`Installation: ${payload.installationType}\n\n`);
421
+ if (payload.installationType === "form") {
422
+ process.stdout.write("Fields:\n");
423
+ for (const field of payload.fields) {
424
+ const req = field.required ? chalk.yellow(" (required)") : chalk.dim(" (optional)");
425
+ const hint = field.hint ? ` — ${field.hint}` : "";
426
+ process.stdout.write(` ${chalk.cyan(field.name)} [${field.type}]${req}${chalk.dim(hint)}\n`);
427
+ }
428
+ if (payload.setup) {
429
+ process.stdout.write(`\nSetup: ${chalk.cyan(payload.setup.url)}\n`);
430
+ }
431
+ }
432
+ else {
433
+ process.stdout.write("OAuth — use `terse integrate connect <type>` in an interactive terminal, or open the auth URL manually and poll with `terse integrate wait`.\n");
434
+ }
435
+ }
436
+ export async function integrateConnect(opts) {
437
+ const type = parseIntegrationTypeOrThrow(opts.integrationType);
438
+ const apiKey = readApiKeyOrBail();
439
+ const [integrations, fieldsResponse] = await Promise.all([fetchIntegrations(apiKey), fetchIntegrationFields(apiKey, type)]);
440
+ const existing = integrations.find(i => i.integrationType === type);
441
+ if (existing?.isActive && !opts.force) {
442
+ const message = `${INTEGRATION_METADATA[type]?.name ?? type} is already connected. Pass --force to refresh.`;
443
+ if (opts.json) {
444
+ process.stdout.write(JSON.stringify({ type, status: "connected", changed: false, message }, null, 2) + "\n");
445
+ }
446
+ else {
447
+ process.stdout.write(chalk.dim(message) + "\n");
448
+ }
449
+ return;
450
+ }
451
+ if (fieldsResponse.installationType === "oauth") {
452
+ const installation = await fetchInstallationUrl(apiKey, type);
453
+ openUrlInBrowser(installation.oauthUrl);
454
+ const waitCommand = `terse integrate wait ${type}`;
455
+ if (opts.json) {
456
+ const payload = {
457
+ handoff: "oauth",
458
+ type,
459
+ status: "disconnected",
460
+ url: installation.oauthUrl,
461
+ waitCommand,
462
+ message: `Browser opened. Run \`${waitCommand}\` to block until authorization completes.`
463
+ };
464
+ process.stdout.write(JSON.stringify(payload, null, 2) + "\n");
465
+ process.exitCode = 2;
466
+ return;
467
+ }
468
+ const name = INTEGRATION_METADATA[type]?.name ?? type;
469
+ process.stdout.write(chalk.yellow(`ACTION REQUIRED: authorize ${name} in your browser.`) + "\n");
470
+ process.stdout.write(chalk.cyan(` ${installation.oauthUrl}`) + "\n");
471
+ process.stdout.write(chalk.dim(` Browser opened. Run \`${waitCommand}\` to block until authorization completes.`) + "\n");
472
+ process.exitCode = 2;
473
+ return;
474
+ }
475
+ const formFields = fieldsResponse.fields;
476
+ const fromFlags = parseKeyValueFlags(opts.fieldFlags);
477
+ const fromStdin = opts.fieldsStdin ? await readFieldsFromStdin() : {};
478
+ const provided = { ...fromFlags, ...fromStdin };
479
+ const knownFieldNames = new Set(formFields.map(f => f.name));
480
+ const unknown = Object.keys(provided).filter(name => !knownFieldNames.has(name));
481
+ if (unknown.length > 0) {
482
+ throw new CliError("unknown_fields", `Unknown field(s): ${unknown.join(", ")}`, {
483
+ detail: `Valid fields: ${formFields.map(f => f.name).join(", ")}`
484
+ });
485
+ }
486
+ const missing = formFields.filter(f => f.required && !provided[f.name]).map(f => f.name);
487
+ if (missing.length > 0) {
488
+ throw new CliError("missing_fields", `Missing required field(s): ${missing.join(", ")}`, {
489
+ detail: `Run \`terse integrate describe ${type} --json\` to see the full field schema.`
490
+ });
491
+ }
492
+ const result = await submitIntegrationForm(apiKey, type, provided);
493
+ if (!result.success) {
494
+ throw new CliError("connect_failed", result.error ?? "Failed to connect integration.");
495
+ }
496
+ const message = existing?.isActive ? `${type} refreshed.` : `${type} connected.`;
497
+ if (opts.json) {
498
+ process.stdout.write(JSON.stringify({ type, status: "connected", changed: true, message }, null, 2) + "\n");
499
+ }
500
+ else {
501
+ process.stdout.write(chalk.green(message) + "\n");
502
+ }
503
+ }
504
+ export async function integrateDisconnect(opts) {
505
+ const type = parseIntegrationTypeOrThrow(opts.integrationType);
506
+ const apiKey = readApiKeyOrBail();
507
+ const result = await disconnectIntegration(apiKey, type);
508
+ if (!result.success) {
509
+ throw new CliError("disconnect_failed", result.error ?? "Failed to disconnect integration.");
510
+ }
511
+ const message = `${type} disconnected.`;
512
+ if (opts.json) {
513
+ process.stdout.write(JSON.stringify({ type, status: "disconnected", changed: true, message }, null, 2) + "\n");
514
+ }
515
+ else {
516
+ process.stdout.write(chalk.green(message) + "\n");
517
+ }
518
+ }
519
+ const WAIT_DEFAULT_TIMEOUT_S = 300;
520
+ const WAIT_MAX_TIMEOUT_S = 900;
521
+ const WAIT_INTERVAL_MS = 2000;
522
+ export async function integrateWait(opts) {
523
+ const type = parseIntegrationTypeOrThrow(opts.integrationType);
524
+ const requested = opts.timeoutSeconds ?? WAIT_DEFAULT_TIMEOUT_S;
525
+ const timeoutSeconds = Math.max(1, Math.min(WAIT_MAX_TIMEOUT_S, requested));
526
+ const apiKey = readApiKeyOrBail();
527
+ const deadline = Date.now() + timeoutSeconds * 1000;
528
+ let lastError = null;
529
+ while (Date.now() < deadline) {
530
+ try {
531
+ const integrations = await fetchIntegrations(apiKey);
532
+ const match = integrations.find(i => i.integrationType === type);
533
+ if (match?.isActive) {
534
+ const message = `${type} is connected.`;
535
+ if (opts.json) {
536
+ process.stdout.write(JSON.stringify({ type, status: "connected", message }, null, 2) + "\n");
537
+ }
538
+ else {
539
+ process.stdout.write(chalk.green(message) + "\n");
540
+ }
541
+ return;
542
+ }
543
+ }
544
+ catch (err) {
545
+ lastError = err instanceof Error ? err.message : String(err);
546
+ }
547
+ await new Promise(resolve => setTimeout(resolve, WAIT_INTERVAL_MS));
548
+ }
549
+ throw new CliError("wait_timeout", `Timed out after ${timeoutSeconds}s waiting for ${type} to connect.`, {
550
+ detail: lastError ? `Last error: ${lastError}` : "Check the integration's connection status with `terse integrate list`."
551
+ });
552
+ }
193
553
  //# sourceMappingURL=integrate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"integrate.js","sourceRoot":"","sources":["../../src/commands/integrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integrate.js","sourceRoot":"","sources":["../../src/commands/integrate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/commands/replay.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAGxE,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,gBAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBzG"}
1
+ {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/commands/replay.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAGxE,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,gBAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBzG"}