@redplanethq/corebrain 2.5.9 → 2.5.10

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 (44) hide show
  1. package/dist/commands/gateway/config.d.ts +1 -0
  2. package/dist/commands/gateway/config.d.ts.map +1 -1
  3. package/dist/commands/gateway/config.js +281 -149
  4. package/dist/commands/gateway/config.js.map +1 -1
  5. package/dist/commands/integrations/add.d.ts +8 -0
  6. package/dist/commands/integrations/add.d.ts.map +1 -0
  7. package/dist/commands/integrations/add.js +375 -0
  8. package/dist/commands/integrations/add.js.map +1 -0
  9. package/dist/commands/integrations/list.d.ts +8 -0
  10. package/dist/commands/integrations/list.d.ts.map +1 -0
  11. package/dist/commands/integrations/list.js +74 -0
  12. package/dist/commands/integrations/list.js.map +1 -0
  13. package/dist/commands/integrations/remove.d.ts +10 -0
  14. package/dist/commands/integrations/remove.d.ts.map +1 -0
  15. package/dist/commands/integrations/remove.js +107 -0
  16. package/dist/commands/integrations/remove.js.map +1 -0
  17. package/dist/commands/search.d.ts +8 -0
  18. package/dist/commands/search.d.ts.map +1 -0
  19. package/dist/commands/search.js +239 -0
  20. package/dist/commands/search.js.map +1 -0
  21. package/dist/server/gateway-client.d.ts.map +1 -1
  22. package/dist/server/gateway-client.js +19 -1
  23. package/dist/server/gateway-client.js.map +1 -1
  24. package/dist/server/tools/coding-tools.d.ts.map +1 -1
  25. package/dist/server/tools/coding-tools.js +10 -2
  26. package/dist/server/tools/coding-tools.js.map +1 -1
  27. package/dist/server/tools/imessage-tools.d.ts +34 -0
  28. package/dist/server/tools/imessage-tools.d.ts.map +1 -0
  29. package/dist/server/tools/imessage-tools.js +262 -0
  30. package/dist/server/tools/imessage-tools.js.map +1 -0
  31. package/dist/server/tools/utils-tools.d.ts +13 -0
  32. package/dist/server/tools/utils-tools.d.ts.map +1 -0
  33. package/dist/server/tools/utils-tools.js +59 -0
  34. package/dist/server/tools/utils-tools.js.map +1 -0
  35. package/dist/types/config.d.ts +3 -0
  36. package/dist/types/config.d.ts.map +1 -1
  37. package/dist/utils/app-bundle.d.ts +25 -0
  38. package/dist/utils/app-bundle.d.ts.map +1 -0
  39. package/dist/utils/app-bundle.js +106 -0
  40. package/dist/utils/app-bundle.js.map +1 -0
  41. package/dist/utils/coding-sessions.d.ts +1 -1
  42. package/dist/utils/coding-sessions.d.ts.map +1 -1
  43. package/dist/utils/coding-sessions.js.map +1 -1
  44. package/package.json +1 -1
@@ -0,0 +1,375 @@
1
+ import { useEffect } from 'react';
2
+ import { useApp } from 'ink';
3
+ import * as p from '@clack/prompts';
4
+ import chalk from 'chalk';
5
+ import zod from 'zod';
6
+ import { getConfig } from '../../config/index.js';
7
+ import { CoreClient } from '@redplanethq/sdk';
8
+ export const options = zod.object({});
9
+ async function runAddIntegration() {
10
+ p.intro(chalk.bgCyan(chalk.black(' Add Integration ')));
11
+ const config = getConfig();
12
+ if (!config.auth?.apiKey || !config.auth?.url) {
13
+ p.log.error('Not authenticated. Please run "corebrain login" first.');
14
+ return { success: false, error: 'Not authenticated' };
15
+ }
16
+ // Step 1: Name
17
+ const name = await p.text({
18
+ message: 'Integration name',
19
+ placeholder: 'My Integration',
20
+ validate: (value) => {
21
+ if (!value?.trim())
22
+ return 'Name is required';
23
+ },
24
+ });
25
+ if (p.isCancel(name)) {
26
+ p.cancel('Cancelled');
27
+ return { success: false, error: 'Cancelled' };
28
+ }
29
+ // Step 2: Description
30
+ const description = await p.text({
31
+ message: 'Description',
32
+ placeholder: 'Connect to my service...',
33
+ validate: (value) => {
34
+ if (!value?.trim())
35
+ return 'Description is required';
36
+ },
37
+ });
38
+ if (p.isCancel(description)) {
39
+ p.cancel('Cancelled');
40
+ return { success: false, error: 'Cancelled' };
41
+ }
42
+ // Step 3: Slug
43
+ const defaultSlug = name.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '');
44
+ const slug = await p.text({
45
+ message: 'Slug (unique identifier)',
46
+ placeholder: defaultSlug,
47
+ initialValue: defaultSlug,
48
+ validate: (value) => {
49
+ if (!value?.trim())
50
+ return 'Slug is required';
51
+ if (!/^[a-z0-9-]+$/.test(value))
52
+ return 'Slug must be lowercase alphanumeric with hyphens only';
53
+ },
54
+ });
55
+ if (p.isCancel(slug)) {
56
+ p.cancel('Cancelled');
57
+ return { success: false, error: 'Cancelled' };
58
+ }
59
+ // Step 4: Auth type
60
+ const authType = await p.select({
61
+ message: 'Authentication type',
62
+ options: [
63
+ { value: 'api_key', label: 'API Key' },
64
+ { value: 'OAuth2', label: 'OAuth2' },
65
+ ],
66
+ });
67
+ if (p.isCancel(authType)) {
68
+ p.cancel('Cancelled');
69
+ return { success: false, error: 'Cancelled' };
70
+ }
71
+ // Step 5: URL (source)
72
+ const url = await p.text({
73
+ message: 'Integration source URL',
74
+ placeholder: 'https://docs.myservice.com',
75
+ validate: (value) => {
76
+ if (!value?.trim())
77
+ return 'URL is required';
78
+ try {
79
+ new URL(value);
80
+ }
81
+ catch {
82
+ return 'Must be a valid URL';
83
+ }
84
+ },
85
+ });
86
+ if (p.isCancel(url)) {
87
+ p.cancel('Cancelled');
88
+ return { success: false, error: 'Cancelled' };
89
+ }
90
+ // Step 6: Trigger type (schedule or webhook)
91
+ const triggerType = await p.select({
92
+ message: 'How will this integration be triggered?',
93
+ options: [
94
+ { value: 'webhook', label: 'Webhook (receives events)' },
95
+ { value: 'schedule', label: 'Schedule (periodic sync)' },
96
+ ],
97
+ });
98
+ if (p.isCancel(triggerType)) {
99
+ p.cancel('Cancelled');
100
+ return { success: false, error: 'Cancelled' };
101
+ }
102
+ let scheduleInterval;
103
+ if (triggerType === 'schedule') {
104
+ const interval = await p.select({
105
+ message: 'Sync interval',
106
+ options: [
107
+ { value: '15', label: 'Every 15 minutes' },
108
+ { value: '20', label: 'Every 20 minutes' },
109
+ { value: '30', label: 'Every 30 minutes' },
110
+ ],
111
+ });
112
+ if (p.isCancel(interval)) {
113
+ p.cancel('Cancelled');
114
+ return { success: false, error: 'Cancelled' };
115
+ }
116
+ scheduleInterval = `*/${interval} * * * *`;
117
+ }
118
+ // Build spec based on auth type
119
+ const spec = {
120
+ name: name,
121
+ key: slug,
122
+ description: description,
123
+ icon: slug,
124
+ mcp: { type: 'cli' },
125
+ auth: {},
126
+ };
127
+ if (scheduleInterval) {
128
+ spec.schedule = { frequency: scheduleInterval };
129
+ }
130
+ if (authType === 'OAuth2') {
131
+ // OAuth2 configuration
132
+ p.log.info(chalk.dim('Configure OAuth2 settings:'));
133
+ const tokenUrl = await p.text({
134
+ message: 'Token URL',
135
+ placeholder: 'https://oauth.example.com/token',
136
+ validate: (value) => {
137
+ if (!value?.trim())
138
+ return 'Token URL is required';
139
+ try {
140
+ new URL(value);
141
+ }
142
+ catch {
143
+ return 'Must be a valid URL';
144
+ }
145
+ },
146
+ });
147
+ if (p.isCancel(tokenUrl)) {
148
+ p.cancel('Cancelled');
149
+ return { success: false, error: 'Cancelled' };
150
+ }
151
+ const authorizationUrl = await p.text({
152
+ message: 'Authorization URL',
153
+ placeholder: 'https://oauth.example.com/authorize',
154
+ validate: (value) => {
155
+ if (!value?.trim())
156
+ return 'Authorization URL is required';
157
+ try {
158
+ new URL(value);
159
+ }
160
+ catch {
161
+ return 'Must be a valid URL';
162
+ }
163
+ },
164
+ });
165
+ if (p.isCancel(authorizationUrl)) {
166
+ p.cancel('Cancelled');
167
+ return { success: false, error: 'Cancelled' };
168
+ }
169
+ const scopesInput = await p.text({
170
+ message: 'Scopes (comma-separated)',
171
+ placeholder: 'read,write,profile',
172
+ });
173
+ if (p.isCancel(scopesInput)) {
174
+ p.cancel('Cancelled');
175
+ return { success: false, error: 'Cancelled' };
176
+ }
177
+ const scopes = scopesInput
178
+ .split(',')
179
+ .map((s) => s.trim())
180
+ .filter(Boolean);
181
+ const scopeSeparator = await p.select({
182
+ message: 'Scope separator',
183
+ options: [
184
+ { value: ' ', label: 'Space' },
185
+ { value: ',', label: 'Comma' },
186
+ ],
187
+ });
188
+ if (p.isCancel(scopeSeparator)) {
189
+ p.cancel('Cancelled');
190
+ return { success: false, error: 'Cancelled' };
191
+ }
192
+ const scopeIdentifier = await p.text({
193
+ message: 'Scope parameter name',
194
+ placeholder: 'scope',
195
+ initialValue: 'scope',
196
+ });
197
+ if (p.isCancel(scopeIdentifier)) {
198
+ p.cancel('Cancelled');
199
+ return { success: false, error: 'Cancelled' };
200
+ }
201
+ // Token params
202
+ const needsOfflineAccess = await p.confirm({
203
+ message: 'Require offline access (refresh tokens)?',
204
+ initialValue: true,
205
+ });
206
+ if (p.isCancel(needsOfflineAccess)) {
207
+ p.cancel('Cancelled');
208
+ return { success: false, error: 'Cancelled' };
209
+ }
210
+ const tokenParams = {};
211
+ const authorizationParams = {};
212
+ if (needsOfflineAccess) {
213
+ tokenParams.access_type = 'offline';
214
+ tokenParams.prompt = 'consent';
215
+ authorizationParams.access_type = 'offline';
216
+ authorizationParams.prompt = 'consent';
217
+ }
218
+ spec.auth = {
219
+ OAuth2: {
220
+ token_url: tokenUrl,
221
+ authorization_url: authorizationUrl,
222
+ scopes,
223
+ scope_identifier: scopeIdentifier,
224
+ scope_separator: scopeSeparator,
225
+ token_params: tokenParams,
226
+ authorization_params: authorizationParams,
227
+ },
228
+ };
229
+ }
230
+ else {
231
+ // API Key configuration
232
+ const fields = [
233
+ {
234
+ name: 'api_key',
235
+ label: 'API Key',
236
+ placeholder: `your-${slug}-api-key`,
237
+ description: `Your ${name} API key`,
238
+ },
239
+ ];
240
+ // Ask if they want to add more fields
241
+ let addMoreFields = await p.confirm({
242
+ message: 'Add additional authentication fields?',
243
+ initialValue: false,
244
+ });
245
+ if (p.isCancel(addMoreFields)) {
246
+ p.cancel('Cancelled');
247
+ return { success: false, error: 'Cancelled' };
248
+ }
249
+ while (addMoreFields) {
250
+ const fieldName = await p.text({
251
+ message: 'Field name (e.g., base_url)',
252
+ validate: (value) => {
253
+ if (!value?.trim())
254
+ return 'Field name is required';
255
+ },
256
+ });
257
+ if (p.isCancel(fieldName)) {
258
+ p.cancel('Cancelled');
259
+ return { success: false, error: 'Cancelled' };
260
+ }
261
+ const fieldLabel = await p.text({
262
+ message: 'Field label (displayed to user)',
263
+ placeholder: 'Base URL',
264
+ });
265
+ if (p.isCancel(fieldLabel)) {
266
+ p.cancel('Cancelled');
267
+ return { success: false, error: 'Cancelled' };
268
+ }
269
+ const fieldPlaceholder = await p.text({
270
+ message: 'Field placeholder',
271
+ placeholder: 'https://api.example.com',
272
+ });
273
+ if (p.isCancel(fieldPlaceholder)) {
274
+ p.cancel('Cancelled');
275
+ return { success: false, error: 'Cancelled' };
276
+ }
277
+ const fieldDescription = await p.text({
278
+ message: 'Field description',
279
+ placeholder: 'The base URL for your instance',
280
+ });
281
+ if (p.isCancel(fieldDescription)) {
282
+ p.cancel('Cancelled');
283
+ return { success: false, error: 'Cancelled' };
284
+ }
285
+ fields.push({
286
+ name: fieldName,
287
+ label: fieldLabel || fieldName,
288
+ placeholder: fieldPlaceholder || '',
289
+ description: fieldDescription || '',
290
+ });
291
+ addMoreFields = await p.confirm({
292
+ message: 'Add another field?',
293
+ initialValue: false,
294
+ });
295
+ if (p.isCancel(addMoreFields)) {
296
+ p.cancel('Cancelled');
297
+ return { success: false, error: 'Cancelled' };
298
+ }
299
+ }
300
+ spec.auth = {
301
+ api_key: { fields },
302
+ };
303
+ }
304
+ // Show summary
305
+ p.log.info('');
306
+ p.note([
307
+ `${chalk.bold('Name:')} ${spec.name}`,
308
+ `${chalk.bold('Slug:')} ${spec.key}`,
309
+ `${chalk.bold('Description:')} ${spec.description}`,
310
+ `${chalk.bold('Auth:')} ${authType === 'OAuth2' ? 'OAuth2' : 'API Key'}`,
311
+ spec.schedule ? `${chalk.bold('Schedule:')} ${spec.schedule.frequency}` : '',
312
+ `${chalk.bold('URL:')} ${url}`,
313
+ ]
314
+ .filter(Boolean)
315
+ .join('\n'), 'Integration Summary');
316
+ const confirm = await p.confirm({
317
+ message: 'Create this integration?',
318
+ initialValue: true,
319
+ });
320
+ if (p.isCancel(confirm) || !confirm) {
321
+ p.cancel('Cancelled');
322
+ return { success: false, error: 'Cancelled' };
323
+ }
324
+ // Create integration via API
325
+ const spinner = p.spinner();
326
+ spinner.start('Creating integration...');
327
+ try {
328
+ const client = new CoreClient({
329
+ baseUrl: config.auth.url,
330
+ token: config.auth.apiKey,
331
+ });
332
+ const response = await fetch(`${config.auth.url}/api/v1/integration_definitions`, {
333
+ method: 'POST',
334
+ headers: {
335
+ 'Content-Type': 'application/json',
336
+ Authorization: `Bearer ${config.auth.apiKey}`,
337
+ },
338
+ body: JSON.stringify({
339
+ name: spec.name,
340
+ slug: spec.key,
341
+ description: spec.description,
342
+ icon: spec.icon,
343
+ url: url,
344
+ spec,
345
+ }),
346
+ });
347
+ if (!response.ok) {
348
+ const errorData = (await response.json());
349
+ throw new Error(errorData.error || 'Failed to create integration');
350
+ }
351
+ const result = await response.json();
352
+ spinner.stop(chalk.green('Integration created'));
353
+ p.outro(chalk.green(`Successfully created integration "${spec.name}"`));
354
+ return { success: true };
355
+ }
356
+ catch (error) {
357
+ spinner.stop(chalk.red('Failed'));
358
+ p.log.error(error instanceof Error ? error.message : 'Unknown error');
359
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
360
+ }
361
+ }
362
+ export default function IntegrationsAdd(_props) {
363
+ const { exit } = useApp();
364
+ useEffect(() => {
365
+ runAddIntegration()
366
+ .catch((err) => {
367
+ p.log.error(err instanceof Error ? err.message : 'Unknown error');
368
+ })
369
+ .finally(() => {
370
+ setTimeout(() => exit(), 100);
371
+ });
372
+ }, [exit]);
373
+ return null;
374
+ }
375
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/integrations/add.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import zod from 'zod';
2
+ export declare const options: zod.ZodObject<{}, zod.core.$strip>;
3
+ type Props = {
4
+ options: zod.infer<typeof options>;
5
+ };
6
+ export default function IntegrationsList(_props: Props): null;
7
+ export {};
8
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/integrations/list.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AA0EF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,MAAM,EAAE,KAAK,QAcrD"}
@@ -0,0 +1,74 @@
1
+ import { useEffect } from 'react';
2
+ import { useApp } from 'ink';
3
+ import * as p from '@clack/prompts';
4
+ import chalk from 'chalk';
5
+ import zod from 'zod';
6
+ import { getConfig } from '../../config/index.js';
7
+ export const options = zod.object({});
8
+ async function runListIntegrations() {
9
+ p.intro(chalk.bgCyan(chalk.black(' Integrations ')));
10
+ const config = getConfig();
11
+ if (!config.auth?.apiKey || !config.auth?.url) {
12
+ p.log.error('Not authenticated. Please run "corebrain login" first.');
13
+ return { success: false, error: 'Not authenticated' };
14
+ }
15
+ const spinner = p.spinner();
16
+ spinner.start('Fetching integrations...');
17
+ try {
18
+ const response = await fetch(`${config.auth.url}/api/v1/integration_definitions`, {
19
+ method: 'GET',
20
+ headers: {
21
+ 'Content-Type': 'application/json',
22
+ Authorization: `Bearer ${config.auth.apiKey}`,
23
+ },
24
+ });
25
+ if (!response.ok) {
26
+ const errorData = (await response.json());
27
+ throw new Error(errorData.error || 'Failed to fetch integrations');
28
+ }
29
+ const result = (await response.json());
30
+ const definitions = result.definitions || [];
31
+ spinner.stop(chalk.green(`Found ${definitions.length} integration(s)`));
32
+ if (definitions.length === 0) {
33
+ p.log.info('No integrations found. Use "corebrain integrations add" to create one.');
34
+ }
35
+ else {
36
+ const globalDefs = definitions.filter((d) => !d.workspaceId);
37
+ const workspaceDefs = definitions.filter((d) => d.workspaceId);
38
+ if (workspaceDefs.length > 0) {
39
+ p.log.info(chalk.bold('\nWorkspace Integrations:'));
40
+ for (const def of workspaceDefs) {
41
+ console.log(` ${chalk.cyan(def.name)} ${chalk.dim(`(${def.slug})`)}`);
42
+ console.log(` ${chalk.dim(def.description)}`);
43
+ }
44
+ }
45
+ if (globalDefs.length > 0) {
46
+ p.log.info(chalk.bold('\nGlobal Integrations:'));
47
+ for (const def of globalDefs) {
48
+ console.log(` ${chalk.cyan(def.name)} ${chalk.dim(`(${def.slug})`)}`);
49
+ console.log(` ${chalk.dim(def.description)}`);
50
+ }
51
+ }
52
+ }
53
+ return { success: true };
54
+ }
55
+ catch (error) {
56
+ spinner.stop(chalk.red('Failed'));
57
+ p.log.error(error instanceof Error ? error.message : 'Unknown error');
58
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
59
+ }
60
+ }
61
+ export default function IntegrationsList(_props) {
62
+ const { exit } = useApp();
63
+ useEffect(() => {
64
+ runListIntegrations()
65
+ .catch((err) => {
66
+ p.log.error(err instanceof Error ? err.message : 'Unknown error');
67
+ })
68
+ .finally(() => {
69
+ setTimeout(() => exit(), 100);
70
+ });
71
+ }, [exit]);
72
+ return null;
73
+ }
74
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/integrations/list.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import zod from 'zod';
2
+ export declare const options: zod.ZodObject<{}, zod.core.$strip>;
3
+ export declare const args: zod.ZodTuple<[zod.ZodOptional<zod.ZodString>], null>;
4
+ type Props = {
5
+ options: zod.infer<typeof options>;
6
+ args: zod.infer<typeof args>;
7
+ };
8
+ export default function IntegrationsRemove({ args: [integrationId] }: Props): null;
9
+ export {};
10
+ //# sourceMappingURL=remove.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/commands/integrations/remove.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,eAAO,MAAM,IAAI,sDAA0E,CAAC;AAE5F,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;IACnC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;CAC7B,CAAC;AAkHF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,QAc1E"}
@@ -0,0 +1,107 @@
1
+ import { useEffect } from 'react';
2
+ import { useApp } from 'ink';
3
+ import * as p from '@clack/prompts';
4
+ import chalk from 'chalk';
5
+ import zod from 'zod';
6
+ import { getConfig } from '../../config/index.js';
7
+ export const options = zod.object({});
8
+ export const args = zod.tuple([zod.string().describe('Integration ID or slug').optional()]);
9
+ async function runRemoveIntegration(integrationIdOrSlug) {
10
+ p.intro(chalk.bgRed(chalk.white(' Remove Integration ')));
11
+ const config = getConfig();
12
+ if (!config.auth?.apiKey || !config.auth?.url) {
13
+ p.log.error('Not authenticated. Please run "corebrain login" first.');
14
+ return { success: false, error: 'Not authenticated' };
15
+ }
16
+ // Fetch integrations to show selection if no ID provided
17
+ let integrationId = integrationIdOrSlug;
18
+ if (!integrationId) {
19
+ const spinner = p.spinner();
20
+ spinner.start('Fetching integrations...');
21
+ try {
22
+ const response = await fetch(`${config.auth.url}/api/v1/integration_definitions`, {
23
+ method: 'GET',
24
+ headers: {
25
+ 'Content-Type': 'application/json',
26
+ Authorization: `Bearer ${config.auth.apiKey}`,
27
+ },
28
+ });
29
+ if (!response.ok) {
30
+ throw new Error('Failed to fetch integrations');
31
+ }
32
+ const result = (await response.json());
33
+ const definitions = (result.definitions || []).filter((d) => d.workspaceId);
34
+ spinner.stop('');
35
+ if (definitions.length === 0) {
36
+ p.log.info('No workspace integrations to remove.');
37
+ return { success: true };
38
+ }
39
+ const selected = await p.select({
40
+ message: 'Select integration to remove',
41
+ options: definitions.map((d) => ({
42
+ value: d.id,
43
+ label: `${d.name} (${d.slug})`,
44
+ hint: d.description,
45
+ })),
46
+ });
47
+ if (p.isCancel(selected)) {
48
+ p.cancel('Cancelled');
49
+ return { success: false, error: 'Cancelled' };
50
+ }
51
+ integrationId = selected;
52
+ }
53
+ catch (error) {
54
+ spinner.stop(chalk.red('Failed'));
55
+ p.log.error(error instanceof Error ? error.message : 'Unknown error');
56
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
57
+ }
58
+ }
59
+ // Confirm deletion
60
+ const confirm = await p.confirm({
61
+ message: chalk.red('Are you sure you want to delete this integration?'),
62
+ initialValue: false,
63
+ });
64
+ if (p.isCancel(confirm) || !confirm) {
65
+ p.cancel('Cancelled');
66
+ return { success: false, error: 'Cancelled' };
67
+ }
68
+ // Delete integration
69
+ const spinner = p.spinner();
70
+ spinner.start('Removing integration...');
71
+ try {
72
+ const response = await fetch(`${config.auth.url}/api/v1/integration_definitions/${integrationId}`, {
73
+ method: 'POST',
74
+ headers: {
75
+ 'Content-Type': 'application/json',
76
+ Authorization: `Bearer ${config.auth.apiKey}`,
77
+ },
78
+ body: JSON.stringify({ _method: 'DELETE' }),
79
+ });
80
+ if (!response.ok) {
81
+ const errorData = (await response.json());
82
+ throw new Error(errorData.error || 'Failed to remove integration');
83
+ }
84
+ spinner.stop(chalk.green('Integration removed'));
85
+ p.outro(chalk.green('Successfully removed integration'));
86
+ return { success: true };
87
+ }
88
+ catch (error) {
89
+ spinner.stop(chalk.red('Failed'));
90
+ p.log.error(error instanceof Error ? error.message : 'Unknown error');
91
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
92
+ }
93
+ }
94
+ export default function IntegrationsRemove({ args: [integrationId] }) {
95
+ const { exit } = useApp();
96
+ useEffect(() => {
97
+ runRemoveIntegration(integrationId)
98
+ .catch((err) => {
99
+ p.log.error(err instanceof Error ? err.message : 'Unknown error');
100
+ })
101
+ .finally(() => {
102
+ setTimeout(() => exit(), 100);
103
+ });
104
+ }, [integrationId, exit]);
105
+ return null;
106
+ }
107
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/integrations/remove.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import zod from 'zod';
2
+ export declare const options: zod.ZodObject<{}, zod.core.$strip>;
3
+ type Props = {
4
+ options: zod.infer<typeof options>;
5
+ };
6
+ export default function Search(_props: Props): import("react/jsx-runtime").JSX.Element | null;
7
+ export {};
8
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.tsx"],"names":[],"mappings":"AAKA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAgYF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,MAAM,EAAE,KAAK,kDAkC3C"}