@agentuity/cli 0.1.6 → 0.1.8
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.
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +64 -4
- package/dist/cli.js.map +1 -1
- package/dist/cmd/build/vite/agent-discovery.d.ts.map +1 -1
- package/dist/cmd/build/vite/agent-discovery.js +159 -16
- package/dist/cmd/build/vite/agent-discovery.js.map +1 -1
- package/dist/cmd/build/vite/docs-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/docs-generator.js +8 -4
- package/dist/cmd/build/vite/docs-generator.js.map +1 -1
- package/dist/cmd/build/vite/registry-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/registry-generator.js +27 -4
- package/dist/cmd/build/vite/registry-generator.js.map +1 -1
- package/dist/cmd/build/vite/server-bundler.d.ts.map +1 -1
- package/dist/cmd/build/vite/server-bundler.js +3 -1
- package/dist/cmd/build/vite/server-bundler.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js +5 -2
- package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
- package/dist/cmd/canary/index.d.ts.map +1 -0
- package/dist/cmd/canary/index.js +186 -0
- package/dist/cmd/canary/index.js.map +1 -0
- package/dist/cmd/cloud/deploy.js +1 -1
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/git/account/add.js +1 -1
- package/dist/cmd/git/account/add.js.map +1 -1
- package/dist/cmd/git/account/list.js +1 -1
- package/dist/cmd/git/account/list.js.map +1 -1
- package/dist/cmd/git/account/remove.js +1 -1
- package/dist/cmd/git/account/remove.js.map +1 -1
- package/dist/cmd/git/api.d.ts.map +1 -0
- package/dist/cmd/git/api.js.map +1 -0
- package/dist/cmd/git/link.js +1 -1
- package/dist/cmd/git/link.js.map +1 -1
- package/dist/cmd/git/list.js +1 -1
- package/dist/cmd/git/list.js.map +1 -1
- package/dist/cmd/git/status.js +1 -1
- package/dist/cmd/git/status.js.map +1 -1
- package/dist/cmd/git/unlink.js +1 -1
- package/dist/cmd/git/unlink.js.map +1 -1
- package/dist/cmd/index.js +1 -1
- package/dist/cmd/index.js.map +1 -1
- package/dist/cmd/project/auth/generate.js.map +1 -1
- package/dist/cmd/project/auth/init.js.map +1 -1
- package/dist/cmd/project/auth/shared.d.ts.map +1 -1
- package/dist/cmd/project/auth/shared.js +1 -2
- package/dist/cmd/project/auth/shared.js.map +1 -1
- package/dist/cmd/project/template-flow.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/dependency-checker.d.ts.map +1 -1
- package/dist/utils/dependency-checker.js +5 -1
- package/dist/utils/dependency-checker.js.map +1 -1
- package/package.json +6 -6
- package/src/cli.ts +73 -4
- package/src/cmd/build/vite/agent-discovery.ts +209 -16
- package/src/cmd/build/vite/docs-generator.ts +8 -4
- package/src/cmd/build/vite/registry-generator.ts +29 -4
- package/src/cmd/build/vite/server-bundler.ts +4 -5
- package/src/cmd/build/vite/vite-asset-server-config.ts +5 -2
- package/src/cmd/canary/index.ts +214 -0
- package/src/cmd/cloud/deploy.ts +1 -1
- package/src/cmd/git/account/add.ts +1 -1
- package/src/cmd/git/account/list.ts +1 -1
- package/src/cmd/git/account/remove.ts +1 -1
- package/src/cmd/git/link.ts +1 -1
- package/src/cmd/git/list.ts +1 -1
- package/src/cmd/git/status.ts +1 -1
- package/src/cmd/git/unlink.ts +1 -1
- package/src/cmd/index.ts +1 -1
- package/src/cmd/project/auth/generate.ts +4 -4
- package/src/cmd/project/auth/init.ts +2 -2
- package/src/cmd/project/auth/shared.ts +3 -4
- package/src/cmd/project/template-flow.ts +3 -3
- package/src/types.ts +3 -0
- package/src/utils/dependency-checker.ts +6 -2
- package/dist/cmd/integration/api.d.ts.map +0 -1
- package/dist/cmd/integration/api.js.map +0 -1
- package/dist/cmd/integration/github/connect.d.ts +0 -2
- package/dist/cmd/integration/github/connect.d.ts.map +0 -1
- package/dist/cmd/integration/github/connect.js +0 -197
- package/dist/cmd/integration/github/connect.js.map +0 -1
- package/dist/cmd/integration/github/disconnect.d.ts +0 -2
- package/dist/cmd/integration/github/disconnect.d.ts.map +0 -1
- package/dist/cmd/integration/github/disconnect.js +0 -121
- package/dist/cmd/integration/github/disconnect.js.map +0 -1
- package/dist/cmd/integration/github/index.d.ts +0 -2
- package/dist/cmd/integration/github/index.d.ts.map +0 -1
- package/dist/cmd/integration/github/index.js +0 -21
- package/dist/cmd/integration/github/index.js.map +0 -1
- package/dist/cmd/integration/index.d.ts.map +0 -1
- package/dist/cmd/integration/index.js +0 -16
- package/dist/cmd/integration/index.js.map +0 -1
- package/src/cmd/integration/github/connect.ts +0 -242
- package/src/cmd/integration/github/disconnect.ts +0 -149
- package/src/cmd/integration/github/index.ts +0 -21
- package/src/cmd/integration/index.ts +0 -16
- /package/dist/cmd/{integration → canary}/index.d.ts +0 -0
- /package/dist/cmd/{integration → git}/api.d.ts +0 -0
- /package/dist/cmd/{integration → git}/api.js +0 -0
- /package/src/cmd/{integration → git}/api.ts +0 -0
package/src/cmd/git/status.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { createSubcommand } from '../../types';
|
|
|
2
2
|
import * as tui from '../../tui';
|
|
3
3
|
import { getCommand } from '../../command-prefix';
|
|
4
4
|
import { ErrorCode } from '../../errors';
|
|
5
|
-
import { getProjectGithubStatus, getGithubIntegrationStatus } from '
|
|
5
|
+
import { getProjectGithubStatus, getGithubIntegrationStatus } from './api';
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
|
|
8
8
|
const StatusResponseSchema = z.object({
|
package/src/cmd/git/unlink.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { createSubcommand } from '../../types';
|
|
|
2
2
|
import * as tui from '../../tui';
|
|
3
3
|
import { getCommand } from '../../command-prefix';
|
|
4
4
|
import { ErrorCode } from '../../errors';
|
|
5
|
-
import { getProjectGithubStatus, unlinkProjectFromRepo } from '
|
|
5
|
+
import { getProjectGithubStatus, unlinkProjectFromRepo } from './api';
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
|
|
8
8
|
const UnlinkOptionsSchema = z.object({
|
package/src/cmd/index.ts
CHANGED
|
@@ -7,11 +7,11 @@ export async function discoverCommands(): Promise<CommandDefinition[]> {
|
|
|
7
7
|
import('./ai').then((m) => m.command),
|
|
8
8
|
import('./auth').then((m) => m.command),
|
|
9
9
|
import('./build').then((m) => m.command),
|
|
10
|
+
import('./canary').then((m) => m.command),
|
|
10
11
|
import('./cloud').then((m) => m.command),
|
|
11
12
|
import('./dev').then((m) => m.command),
|
|
12
13
|
import('./git').then((m) => m.gitCommand),
|
|
13
14
|
import('./help').then((m) => m.command),
|
|
14
|
-
import('./integration').then((m) => m.command),
|
|
15
15
|
import('./profile').then((m) => m.command),
|
|
16
16
|
import('./project').then((m) => m.command),
|
|
17
17
|
import('./repl').then((m) => m.command),
|
|
@@ -60,10 +60,10 @@ export const generateSubcommand = createSubcommand({
|
|
|
60
60
|
const sql = isJson
|
|
61
61
|
? await generateAuthSchemaSql(logger, projectDir)
|
|
62
62
|
: await tui.spinner({
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
message: 'Generating auth schema SQL from Drizzle schema',
|
|
64
|
+
clearOnSuccess: true,
|
|
65
|
+
callback: () => generateAuthSchemaSql(logger, projectDir),
|
|
66
|
+
});
|
|
67
67
|
|
|
68
68
|
if (toStdout) {
|
|
69
69
|
console.log(sql);
|
|
@@ -155,7 +155,7 @@ export const initSubcommand = createSubcommand({
|
|
|
155
155
|
if (fs.existsSync(authFilePath)) {
|
|
156
156
|
tui.info('src/auth.ts already exists, skipping generation');
|
|
157
157
|
} else {
|
|
158
|
-
const { createFile } = await enquirer.prompt<{ createFile: boolean
|
|
158
|
+
const { createFile } = await enquirer.prompt<{ createFile: boolean }>({
|
|
159
159
|
type: 'confirm',
|
|
160
160
|
name: 'createFile',
|
|
161
161
|
message: 'Create src/auth.ts with default configuration?',
|
|
@@ -219,7 +219,7 @@ export const initSubcommand = createSubcommand({
|
|
|
219
219
|
console.log(' Run this SQL against your database to create auth tables.');
|
|
220
220
|
tui.newline();
|
|
221
221
|
} else {
|
|
222
|
-
const { runMigrations } = await enquirer.prompt<{ runMigrations: boolean
|
|
222
|
+
const { runMigrations } = await enquirer.prompt<{ runMigrations: boolean }>({
|
|
223
223
|
type: 'confirm',
|
|
224
224
|
name: 'runMigrations',
|
|
225
225
|
message: 'Run database migrations now? (idempotent, safe to re-run)',
|
|
@@ -48,7 +48,7 @@ export async function selectOrCreateDatabase(options: {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
type Choice = { name: string; message: string
|
|
51
|
+
type Choice = { name: string; message: string };
|
|
52
52
|
const choices: Choice[] = [];
|
|
53
53
|
|
|
54
54
|
// Add "use existing" option first if we have an existing URL
|
|
@@ -72,7 +72,7 @@ export async function selectOrCreateDatabase(options: {
|
|
|
72
72
|
}))
|
|
73
73
|
);
|
|
74
74
|
|
|
75
|
-
const response = await enquirer.prompt<{ database: string
|
|
75
|
+
const response = await enquirer.prompt<{ database: string }>({
|
|
76
76
|
type: 'select',
|
|
77
77
|
name: 'database',
|
|
78
78
|
message: 'Select a database for auth:',
|
|
@@ -494,8 +494,7 @@ export default api;
|
|
|
494
494
|
console.log(tui.muted('━'.repeat(60)));
|
|
495
495
|
console.log(`
|
|
496
496
|
import { AgentuityProvider } from '@agentuity/react';
|
|
497
|
-
import { createAuthClient } from '@agentuity/auth/react';
|
|
498
|
-
import { AuthProvider } from '@agentuity/auth';
|
|
497
|
+
import { createAuthClient, AuthProvider } from '@agentuity/auth/react';
|
|
499
498
|
|
|
500
499
|
const authClient = createAuthClient();
|
|
501
500
|
|
|
@@ -304,8 +304,8 @@ export async function runCreateFlow(options: CreateFlowOptions): Promise<void> {
|
|
|
304
304
|
val === ''
|
|
305
305
|
? true
|
|
306
306
|
: /^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[A-Za-z]{2,63}$/.test(
|
|
307
|
-
|
|
308
|
-
|
|
307
|
+
val
|
|
308
|
+
),
|
|
309
309
|
});
|
|
310
310
|
if (customDns) {
|
|
311
311
|
_domains = [customDns];
|
|
@@ -469,7 +469,7 @@ export async function runCreateFlow(options: CreateFlowOptions): Promise<void> {
|
|
|
469
469
|
const cloudRegion = region ?? process.env.AGENTUITY_REGION ?? 'usc';
|
|
470
470
|
|
|
471
471
|
const pkgJsonPath = resolve(dest, 'package.json');
|
|
472
|
-
let pkgJson: { description?: string; keywords?: string[]
|
|
472
|
+
let pkgJson: { description?: string; keywords?: string[] } = {};
|
|
473
473
|
if (existsSync(pkgJsonPath)) {
|
|
474
474
|
pkgJson = await Bun.file(pkgJsonPath).json();
|
|
475
475
|
}
|
package/src/types.ts
CHANGED
|
@@ -497,6 +497,7 @@ export function createCommand<
|
|
|
497
497
|
hidden?: boolean;
|
|
498
498
|
executable?: boolean;
|
|
499
499
|
skipUpgradeCheck?: boolean;
|
|
500
|
+
passThroughArgs?: boolean;
|
|
500
501
|
requires?: R;
|
|
501
502
|
optional?: O;
|
|
502
503
|
examples?: CommandExample[];
|
|
@@ -537,6 +538,7 @@ type CommandDefBase =
|
|
|
537
538
|
banner?: boolean;
|
|
538
539
|
executable?: boolean;
|
|
539
540
|
skipUpgradeCheck?: boolean;
|
|
541
|
+
passThroughArgs?: boolean;
|
|
540
542
|
skipSkill?: boolean;
|
|
541
543
|
examples?: CommandExample[];
|
|
542
544
|
idempotent?: boolean;
|
|
@@ -555,6 +557,7 @@ type CommandDefBase =
|
|
|
555
557
|
banner?: boolean;
|
|
556
558
|
executable?: boolean;
|
|
557
559
|
skipUpgradeCheck?: boolean;
|
|
560
|
+
passThroughArgs?: boolean;
|
|
558
561
|
skipSkill?: boolean;
|
|
559
562
|
examples?: CommandExample[];
|
|
560
563
|
idempotent?: boolean;
|
|
@@ -57,11 +57,15 @@ export async function checkAndUpgradeDependencies(
|
|
|
57
57
|
failed: [],
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
const packageJsonPath = join(projectDir, 'package.json');
|
|
61
60
|
const cliVersion = getVersion();
|
|
62
|
-
|
|
63
61
|
logger.debug('CLI version: %s', cliVersion);
|
|
64
62
|
|
|
63
|
+
// check if this is a canary and if so, skip this check
|
|
64
|
+
if (cliVersion.includes('-')) {
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const packageJsonPath = join(projectDir, 'package.json');
|
|
65
69
|
// Read package.json
|
|
66
70
|
let packageJson: PackageJson;
|
|
67
71
|
try {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/cmd/integration/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/cmd/integration/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../../src/cmd/integration/github/connect.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,iBAAiB,yCAkO5B,CAAC"}
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import { createSubcommand } from '../../../types';
|
|
2
|
-
import * as tui from '../../../tui';
|
|
3
|
-
import { getCommand } from '../../../command-prefix';
|
|
4
|
-
import { getAPIBaseURL } from '../../../api';
|
|
5
|
-
import { ErrorCode } from '../../../errors';
|
|
6
|
-
import { listOrganizations } from '@agentuity/server';
|
|
7
|
-
import enquirer from 'enquirer';
|
|
8
|
-
import { startGithubIntegration, pollForGithubIntegration, getGithubIntegrationStatus, getExistingGithubIntegrations, copyGithubIntegration, } from '../api';
|
|
9
|
-
export const connectSubcommand = createSubcommand({
|
|
10
|
-
name: 'connect',
|
|
11
|
-
description: 'Connect your GitHub account to enable automatic deployments',
|
|
12
|
-
tags: ['mutating', 'creates-resource', 'slow', 'api-intensive'],
|
|
13
|
-
idempotent: false,
|
|
14
|
-
requires: { auth: true, apiClient: true },
|
|
15
|
-
examples: [
|
|
16
|
-
{
|
|
17
|
-
command: getCommand('integration github connect'),
|
|
18
|
-
description: 'Connect GitHub to your organization',
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
async handler(ctx) {
|
|
22
|
-
const { logger, apiClient } = ctx;
|
|
23
|
-
try {
|
|
24
|
-
// Fetch organizations
|
|
25
|
-
const orgs = await tui.spinner({
|
|
26
|
-
message: 'Fetching organizations...',
|
|
27
|
-
clearOnSuccess: true,
|
|
28
|
-
callback: () => listOrganizations(apiClient),
|
|
29
|
-
});
|
|
30
|
-
if (orgs.length === 0) {
|
|
31
|
-
tui.fatal('No organizations found for your account');
|
|
32
|
-
}
|
|
33
|
-
// Check GitHub status for each org
|
|
34
|
-
const orgStatuses = await tui.spinner({
|
|
35
|
-
message: 'Checking GitHub integration status...',
|
|
36
|
-
clearOnSuccess: true,
|
|
37
|
-
callback: async () => {
|
|
38
|
-
const statuses = await Promise.all(orgs.map(async (org) => {
|
|
39
|
-
const status = await getGithubIntegrationStatus(apiClient, org.id);
|
|
40
|
-
return {
|
|
41
|
-
...org,
|
|
42
|
-
connected: status.connected,
|
|
43
|
-
integrations: status.integrations,
|
|
44
|
-
};
|
|
45
|
-
}));
|
|
46
|
-
return statuses;
|
|
47
|
-
},
|
|
48
|
-
});
|
|
49
|
-
// Sort orgs alphabetically
|
|
50
|
-
const sortedOrgs = [...orgStatuses].sort((a, b) => a.name.localeCompare(b.name));
|
|
51
|
-
// Build choices showing integration count
|
|
52
|
-
const choices = sortedOrgs.map((org) => {
|
|
53
|
-
const count = org.integrations.length;
|
|
54
|
-
const suffix = count > 0 ? tui.muted(` (${count} GitHub account${count > 1 ? 's' : ''})`) : '';
|
|
55
|
-
return {
|
|
56
|
-
name: org.name,
|
|
57
|
-
message: `${org.name}${suffix}`,
|
|
58
|
-
value: org.id,
|
|
59
|
-
};
|
|
60
|
-
});
|
|
61
|
-
// Show picker
|
|
62
|
-
const response = await enquirer.prompt({
|
|
63
|
-
type: 'select',
|
|
64
|
-
name: 'orgName',
|
|
65
|
-
message: 'Select an organization to connect',
|
|
66
|
-
choices,
|
|
67
|
-
result(name) {
|
|
68
|
-
// @ts-expect-error - this.map exists at runtime
|
|
69
|
-
return this.map(name)[name];
|
|
70
|
-
},
|
|
71
|
-
});
|
|
72
|
-
const orgId = response.orgName;
|
|
73
|
-
const selectedOrg = sortedOrgs.find((o) => o.id === orgId);
|
|
74
|
-
const orgDisplay = selectedOrg ? selectedOrg.name : orgId;
|
|
75
|
-
const initialCount = selectedOrg?.integrations.length ?? 0;
|
|
76
|
-
// Check if user has existing GitHub integrations in other orgs
|
|
77
|
-
const existingIntegrations = await tui.spinner({
|
|
78
|
-
message: 'Checking for existing GitHub connections...',
|
|
79
|
-
clearOnSuccess: true,
|
|
80
|
-
callback: () => getExistingGithubIntegrations(apiClient, orgId),
|
|
81
|
-
});
|
|
82
|
-
// Filter out integrations already connected to target org
|
|
83
|
-
const alreadyConnectedNames = new Set(selectedOrg?.integrations.map((i) => i.githubAccountName) ?? []);
|
|
84
|
-
const availableIntegrations = existingIntegrations.filter((i) => !alreadyConnectedNames.has(i.githubAccountName));
|
|
85
|
-
if (availableIntegrations.length > 0) {
|
|
86
|
-
tui.newline();
|
|
87
|
-
// Build checkbox choices
|
|
88
|
-
const integrationChoices = availableIntegrations.map((i) => ({
|
|
89
|
-
name: i.id,
|
|
90
|
-
message: `${i.githubAccountName} ${tui.muted(`(from ${i.orgName})`)}`,
|
|
91
|
-
}));
|
|
92
|
-
console.log(tui.muted('Press enter with none selected to connect a new account'));
|
|
93
|
-
tui.newline();
|
|
94
|
-
const selectResponse = await enquirer.prompt({
|
|
95
|
-
type: 'multiselect',
|
|
96
|
-
name: 'integrationIds',
|
|
97
|
-
message: 'Select GitHub accounts to connect',
|
|
98
|
-
choices: integrationChoices,
|
|
99
|
-
});
|
|
100
|
-
if (selectResponse.integrationIds.length > 0) {
|
|
101
|
-
const selectedIntegrations = availableIntegrations.filter((i) => selectResponse.integrationIds.includes(i.id));
|
|
102
|
-
const accountNames = selectedIntegrations.map((i) => i.githubAccountName).join(', ');
|
|
103
|
-
// Confirm
|
|
104
|
-
const confirmResponse = await enquirer.prompt({
|
|
105
|
-
type: 'confirm',
|
|
106
|
-
name: 'confirm',
|
|
107
|
-
message: `Connect ${tui.bold(accountNames)} to ${tui.bold(orgDisplay)}?`,
|
|
108
|
-
initial: true,
|
|
109
|
-
});
|
|
110
|
-
if (confirmResponse.confirm) {
|
|
111
|
-
await tui.spinner({
|
|
112
|
-
message: `Copying ${selectedIntegrations.length} GitHub connection${selectedIntegrations.length > 1 ? 's' : ''}...`,
|
|
113
|
-
clearOnSuccess: true,
|
|
114
|
-
callback: async () => {
|
|
115
|
-
for (const integration of selectedIntegrations) {
|
|
116
|
-
await copyGithubIntegration(apiClient, integration.orgId, orgId);
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
});
|
|
120
|
-
tui.newline();
|
|
121
|
-
tui.success(`GitHub connected to ${tui.bold(orgDisplay)}`);
|
|
122
|
-
tui.newline();
|
|
123
|
-
console.log('You can now link repositories to your projects for automatic deployments.');
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
const startResult = await tui.spinner({
|
|
129
|
-
message: 'Getting GitHub authorization URL...',
|
|
130
|
-
clearOnSuccess: true,
|
|
131
|
-
callback: () => startGithubIntegration(apiClient, orgId),
|
|
132
|
-
});
|
|
133
|
-
if (!startResult) {
|
|
134
|
-
tui.error('Failed to get GitHub authorization URL');
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
const { shortId } = startResult;
|
|
138
|
-
const apiBaseUrl = getAPIBaseURL(ctx.config);
|
|
139
|
-
const url = `${apiBaseUrl}/github/connect/${shortId}`;
|
|
140
|
-
const copied = await tui.copyToClipboard(url);
|
|
141
|
-
tui.newline();
|
|
142
|
-
if (copied) {
|
|
143
|
-
console.log('GitHub authorization URL copied to clipboard! Open it in your browser:');
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
console.log('Open this URL in your browser to authorize GitHub access:');
|
|
147
|
-
}
|
|
148
|
-
tui.newline();
|
|
149
|
-
console.log(` ${tui.link(url)}`);
|
|
150
|
-
tui.newline();
|
|
151
|
-
console.log(tui.muted('Press Enter to open in your browser, or Ctrl+C to cancel'));
|
|
152
|
-
tui.newline();
|
|
153
|
-
const result = await tui.spinner({
|
|
154
|
-
type: 'countdown',
|
|
155
|
-
message: 'Waiting for GitHub authorization',
|
|
156
|
-
timeoutMs: 600000, // 10 minutes
|
|
157
|
-
clearOnSuccess: true,
|
|
158
|
-
onEnterPress: () => {
|
|
159
|
-
const platform = process.platform;
|
|
160
|
-
if (platform === 'win32') {
|
|
161
|
-
Bun.spawn(['cmd', '/c', 'start', '', url], {
|
|
162
|
-
stdout: 'ignore',
|
|
163
|
-
stderr: 'ignore',
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
const command = platform === 'darwin' ? 'open' : 'xdg-open';
|
|
168
|
-
Bun.spawn([command, url], { stdout: 'ignore', stderr: 'ignore' });
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
callback: async () => {
|
|
172
|
-
return await pollForGithubIntegration(apiClient, orgId, initialCount);
|
|
173
|
-
},
|
|
174
|
-
});
|
|
175
|
-
tui.newline();
|
|
176
|
-
if (result.connected) {
|
|
177
|
-
tui.success(`GitHub connected to ${tui.bold(orgDisplay)}`);
|
|
178
|
-
tui.newline();
|
|
179
|
-
console.log('You can now link repositories to your projects for automatic deployments.');
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
catch (error) {
|
|
183
|
-
// Handle user cancellation (Ctrl+C) - enquirer throws empty string or Error with empty message
|
|
184
|
-
const isCancel = error === '' ||
|
|
185
|
-
(error instanceof Error &&
|
|
186
|
-
(error.message === '' || error.message === 'User cancelled'));
|
|
187
|
-
if (isCancel) {
|
|
188
|
-
tui.newline();
|
|
189
|
-
tui.info('Cancelled');
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
logger.trace(error);
|
|
193
|
-
logger.fatal('GitHub integration failed: %s', error, ErrorCode.INTEGRATION_FAILED);
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
});
|
|
197
|
-
//# sourceMappingURL=connect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../../src/cmd/integration/github/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"disconnect.d.ts","sourceRoot":"","sources":["../../../../src/cmd/integration/github/disconnect.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,oBAAoB,yCAwI/B,CAAC"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { createSubcommand } from '../../../types';
|
|
2
|
-
import * as tui from '../../../tui';
|
|
3
|
-
import { getCommand } from '../../../command-prefix';
|
|
4
|
-
import { ErrorCode } from '../../../errors';
|
|
5
|
-
import { listOrganizations } from '@agentuity/server';
|
|
6
|
-
import enquirer from 'enquirer';
|
|
7
|
-
import { getGithubIntegrationStatus, disconnectGithubIntegration, } from '../api';
|
|
8
|
-
export const disconnectSubcommand = createSubcommand({
|
|
9
|
-
name: 'disconnect',
|
|
10
|
-
description: 'Disconnect a GitHub account from your organization',
|
|
11
|
-
tags: ['mutating', 'destructive', 'slow'],
|
|
12
|
-
idempotent: false,
|
|
13
|
-
requires: { auth: true, apiClient: true },
|
|
14
|
-
examples: [
|
|
15
|
-
{
|
|
16
|
-
command: getCommand('integration github disconnect'),
|
|
17
|
-
description: 'Disconnect a GitHub account from your organization',
|
|
18
|
-
},
|
|
19
|
-
],
|
|
20
|
-
async handler(ctx) {
|
|
21
|
-
const { logger, apiClient } = ctx;
|
|
22
|
-
try {
|
|
23
|
-
// Fetch organizations
|
|
24
|
-
const orgs = await tui.spinner({
|
|
25
|
-
message: 'Fetching organizations...',
|
|
26
|
-
clearOnSuccess: true,
|
|
27
|
-
callback: () => listOrganizations(apiClient),
|
|
28
|
-
});
|
|
29
|
-
if (orgs.length === 0) {
|
|
30
|
-
tui.fatal('No organizations found for your account');
|
|
31
|
-
}
|
|
32
|
-
// Check GitHub status for each org
|
|
33
|
-
const orgStatuses = await tui.spinner({
|
|
34
|
-
message: 'Checking GitHub integration status...',
|
|
35
|
-
clearOnSuccess: true,
|
|
36
|
-
callback: async () => {
|
|
37
|
-
const statuses = await Promise.all(orgs.map(async (org) => {
|
|
38
|
-
const status = await getGithubIntegrationStatus(apiClient, org.id);
|
|
39
|
-
return {
|
|
40
|
-
...org,
|
|
41
|
-
connected: status.connected,
|
|
42
|
-
integrations: status.integrations,
|
|
43
|
-
};
|
|
44
|
-
}));
|
|
45
|
-
return statuses;
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
// Flatten all integrations across orgs
|
|
49
|
-
const allIntegrations = [];
|
|
50
|
-
for (const org of orgStatuses) {
|
|
51
|
-
for (const integration of org.integrations) {
|
|
52
|
-
allIntegrations.push({
|
|
53
|
-
orgId: org.id,
|
|
54
|
-
orgName: org.name,
|
|
55
|
-
integration,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (allIntegrations.length === 0) {
|
|
60
|
-
tui.newline();
|
|
61
|
-
tui.info('No GitHub accounts are connected.');
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
// Build choices showing GitHub account and org
|
|
65
|
-
const choices = allIntegrations.map((item) => ({
|
|
66
|
-
name: `${tui.bold(item.integration.githubAccountName)} ${tui.muted(`(${item.integration.githubAccountType})`)} → ${tui.bold(item.orgName)}`,
|
|
67
|
-
value: `${item.orgId}:${item.integration.id}`,
|
|
68
|
-
}));
|
|
69
|
-
// Show picker
|
|
70
|
-
const response = await enquirer.prompt({
|
|
71
|
-
type: 'select',
|
|
72
|
-
name: 'selection',
|
|
73
|
-
message: 'Select a GitHub account to disconnect',
|
|
74
|
-
choices,
|
|
75
|
-
result(name) {
|
|
76
|
-
// Return the value (IDs) instead of the display name
|
|
77
|
-
const choice = choices.find((c) => c.name === name);
|
|
78
|
-
return choice?.value ?? name;
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
const colonIdx = response.selection.indexOf(':');
|
|
82
|
-
if (colonIdx === -1) {
|
|
83
|
-
logger.fatal('Invalid selection format');
|
|
84
|
-
}
|
|
85
|
-
const orgId = response.selection.slice(0, colonIdx);
|
|
86
|
-
const integrationId = response.selection.slice(colonIdx + 1);
|
|
87
|
-
const selected = allIntegrations.find((i) => i.orgId === orgId && i.integration.id === integrationId);
|
|
88
|
-
const displayName = selected
|
|
89
|
-
? `${tui.bold(selected.integration.githubAccountName)} from ${tui.bold(selected.orgName)}`
|
|
90
|
-
: response.selection;
|
|
91
|
-
// Confirm
|
|
92
|
-
const confirmed = await tui.confirm(`Are you sure you want to disconnect ${displayName}?`);
|
|
93
|
-
if (!confirmed) {
|
|
94
|
-
tui.newline();
|
|
95
|
-
tui.info('Cancelled');
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
await tui.spinner({
|
|
99
|
-
message: 'Disconnecting GitHub...',
|
|
100
|
-
clearOnSuccess: true,
|
|
101
|
-
callback: () => disconnectGithubIntegration(apiClient, orgId, integrationId),
|
|
102
|
-
});
|
|
103
|
-
tui.newline();
|
|
104
|
-
tui.success(`Disconnected ${displayName}`);
|
|
105
|
-
}
|
|
106
|
-
catch (error) {
|
|
107
|
-
// Handle user cancellation (Ctrl+C)
|
|
108
|
-
const isCancel = error === '' ||
|
|
109
|
-
(error instanceof Error &&
|
|
110
|
-
(error.message === '' || error.message === 'User cancelled'));
|
|
111
|
-
if (isCancel) {
|
|
112
|
-
tui.newline();
|
|
113
|
-
tui.info('Cancelled');
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
logger.trace(error);
|
|
117
|
-
logger.fatal('GitHub disconnect failed: %s', error, ErrorCode.INTEGRATION_FAILED);
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
});
|
|
121
|
-
//# sourceMappingURL=disconnect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"disconnect.js","sourceRoot":"","sources":["../../../../src/cmd/integration/github/disconnect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cmd/integration/github/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,sCAexB,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { createCommand } from '../../../types';
|
|
2
|
-
import { getCommand } from '../../../command-prefix';
|
|
3
|
-
import { connectSubcommand } from './connect';
|
|
4
|
-
import { disconnectSubcommand } from './disconnect';
|
|
5
|
-
export const githubCommand = createCommand({
|
|
6
|
-
name: 'github',
|
|
7
|
-
description: 'GitHub integration commands',
|
|
8
|
-
tags: ['requires-auth'],
|
|
9
|
-
examples: [
|
|
10
|
-
{
|
|
11
|
-
command: getCommand('integration github connect'),
|
|
12
|
-
description: 'Connect GitHub to your organization',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
command: getCommand('integration github disconnect'),
|
|
16
|
-
description: 'Disconnect GitHub from your organization',
|
|
17
|
-
},
|
|
18
|
-
],
|
|
19
|
-
subcommands: [connectSubcommand, disconnectSubcommand],
|
|
20
|
-
});
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cmd/integration/github/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;IAC1C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,6BAA6B;IAC1C,IAAI,EAAE,CAAC,eAAe,CAAC;IACvB,QAAQ,EAAE;QACT;YACC,OAAO,EAAE,UAAU,CAAC,4BAA4B,CAAC;YACjD,WAAW,EAAE,qCAAqC;SAClD;QACD;YACC,OAAO,EAAE,UAAU,CAAC,+BAA+B,CAAC;YACpD,WAAW,EAAE,0CAA0C;SACvD;KACD;IACD,WAAW,EAAE,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;CACtD,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/integration/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO,mCAWlB,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { createCommand } from '../../types';
|
|
2
|
-
import { getCommand } from '../../command-prefix';
|
|
3
|
-
import { githubCommand } from './github';
|
|
4
|
-
export const command = createCommand({
|
|
5
|
-
name: 'integration',
|
|
6
|
-
description: 'Manage integrations with external services',
|
|
7
|
-
tags: ['requires-auth'],
|
|
8
|
-
examples: [
|
|
9
|
-
{
|
|
10
|
-
command: getCommand('integration github connect'),
|
|
11
|
-
description: 'Connect GitHub to your organization',
|
|
12
|
-
},
|
|
13
|
-
],
|
|
14
|
-
subcommands: [githubCommand],
|
|
15
|
-
});
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cmd/integration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;IACpC,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,4CAA4C;IACzD,IAAI,EAAE,CAAC,eAAe,CAAC;IACvB,QAAQ,EAAE;QACT;YACC,OAAO,EAAE,UAAU,CAAC,4BAA4B,CAAC;YACjD,WAAW,EAAE,qCAAqC;SAClD;KACD;IACD,WAAW,EAAE,CAAC,aAAa,CAAC;CAC5B,CAAC,CAAC"}
|