@agentuity/cli 1.0.14 → 1.0.16
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/agent-detection.js +2 -2
- package/dist/agent-detection.js.map +1 -1
- package/dist/banner.js +2 -2
- package/dist/banner.js.map +1 -1
- package/dist/bun-path.d.ts.map +1 -1
- package/dist/bun-path.js +2 -1
- package/dist/bun-path.js.map +1 -1
- package/dist/cmd/build/ast.d.ts.map +1 -1
- package/dist/cmd/build/ast.js +87 -14
- package/dist/cmd/build/ast.js.map +1 -1
- package/dist/cmd/build/entry-generator.d.ts.map +1 -1
- package/dist/cmd/build/entry-generator.js +5 -2
- package/dist/cmd/build/entry-generator.js.map +1 -1
- package/dist/cmd/build/vite/agent-discovery.d.ts.map +1 -1
- package/dist/cmd/build/vite/agent-discovery.js +3 -2
- package/dist/cmd/build/vite/agent-discovery.js.map +1 -1
- package/dist/cmd/build/vite/metadata-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/metadata-generator.js +3 -38
- package/dist/cmd/build/vite/metadata-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 +24 -9
- package/dist/cmd/build/vite/registry-generator.js.map +1 -1
- package/dist/cmd/build/vite/route-discovery.d.ts.map +1 -1
- package/dist/cmd/build/vite/route-discovery.js +3 -2
- package/dist/cmd/build/vite/route-discovery.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.js +42 -39
- package/dist/cmd/build/vite/vite-asset-server.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +19 -21
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/cloud/env/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/env/delete.js +3 -26
- package/dist/cmd/cloud/env/delete.js.map +1 -1
- package/dist/cmd/cloud/env/import.d.ts.map +1 -1
- package/dist/cmd/cloud/env/import.js +3 -16
- package/dist/cmd/cloud/env/import.js.map +1 -1
- package/dist/cmd/cloud/env/set.d.ts.map +1 -1
- package/dist/cmd/cloud/env/set.js +3 -19
- package/dist/cmd/cloud/env/set.js.map +1 -1
- package/dist/cmd/cloud/sandbox/cp.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/cp.js +2 -1
- package/dist/cmd/cloud/sandbox/cp.js.map +1 -1
- package/dist/cmd/cloud/sandbox/get.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/get.js +5 -0
- package/dist/cmd/cloud/sandbox/get.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/build.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/build.js +32 -1
- package/dist/cmd/cloud/sandbox/snapshot/build.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/generate.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/generate.js +7 -0
- package/dist/cmd/cloud/sandbox/snapshot/generate.js.map +1 -1
- package/dist/cmd/cloud/storage/create.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/create.js +58 -26
- package/dist/cmd/cloud/storage/create.js.map +1 -1
- package/dist/cmd/cloud/storage/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/delete.js +108 -16
- package/dist/cmd/cloud/storage/delete.js.map +1 -1
- package/dist/cmd/git/account/add.d.ts +6 -8
- package/dist/cmd/git/account/add.d.ts.map +1 -1
- package/dist/cmd/git/account/add.js +37 -151
- package/dist/cmd/git/account/add.js.map +1 -1
- package/dist/cmd/git/account/index.d.ts +0 -1
- package/dist/cmd/git/account/index.d.ts.map +1 -1
- package/dist/cmd/git/account/index.js +3 -4
- package/dist/cmd/git/account/index.js.map +1 -1
- package/dist/cmd/git/account/list.d.ts.map +1 -1
- package/dist/cmd/git/account/list.js +35 -67
- package/dist/cmd/git/account/list.js.map +1 -1
- package/dist/cmd/git/account/remove.d.ts.map +1 -1
- package/dist/cmd/git/account/remove.js +42 -84
- package/dist/cmd/git/account/remove.js.map +1 -1
- package/dist/cmd/git/api.d.ts +19 -23
- package/dist/cmd/git/api.d.ts.map +1 -1
- package/dist/cmd/git/api.js +38 -56
- package/dist/cmd/git/api.js.map +1 -1
- package/dist/cmd/git/identity/connect.d.ts +15 -0
- package/dist/cmd/git/identity/connect.d.ts.map +1 -0
- package/dist/cmd/git/identity/connect.js +135 -0
- package/dist/cmd/git/identity/connect.js.map +1 -0
- package/dist/cmd/git/identity/disconnect.d.ts +2 -0
- package/dist/cmd/git/identity/disconnect.d.ts.map +1 -0
- package/dist/cmd/git/identity/disconnect.js +83 -0
- package/dist/cmd/git/identity/disconnect.js.map +1 -0
- package/dist/cmd/git/identity/index.d.ts +2 -0
- package/dist/cmd/git/identity/index.d.ts.map +1 -0
- package/dist/cmd/git/identity/index.js +10 -0
- package/dist/cmd/git/identity/index.js.map +1 -0
- package/dist/cmd/git/identity/status.d.ts +2 -0
- package/dist/cmd/git/identity/status.d.ts.map +1 -0
- package/dist/cmd/git/identity/status.js +77 -0
- package/dist/cmd/git/identity/status.js.map +1 -0
- package/dist/cmd/git/index.d.ts +0 -1
- package/dist/cmd/git/index.d.ts.map +1 -1
- package/dist/cmd/git/index.js +3 -2
- package/dist/cmd/git/index.js.map +1 -1
- package/dist/cmd/git/link.d.ts +2 -3
- package/dist/cmd/git/link.d.ts.map +1 -1
- package/dist/cmd/git/link.js +22 -28
- package/dist/cmd/git/link.js.map +1 -1
- package/dist/cmd/git/list.d.ts.map +1 -1
- package/dist/cmd/git/list.js +42 -55
- package/dist/cmd/git/list.js.map +1 -1
- package/dist/cmd/git/status.d.ts.map +1 -1
- package/dist/cmd/git/status.js +51 -38
- package/dist/cmd/git/status.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -4
- package/dist/config.js.map +1 -1
- package/dist/utils/detectSubagent.d.ts.map +1 -1
- package/dist/utils/detectSubagent.js +3 -0
- package/dist/utils/detectSubagent.js.map +1 -1
- package/dist/utils/normalize-path.d.ts +11 -0
- package/dist/utils/normalize-path.d.ts.map +1 -0
- package/dist/utils/normalize-path.js +13 -0
- package/dist/utils/normalize-path.js.map +1 -0
- package/dist/utils/zip.d.ts.map +1 -1
- package/dist/utils/zip.js +2 -1
- package/dist/utils/zip.js.map +1 -1
- package/package.json +6 -6
- package/src/agent-detection.ts +2 -2
- package/src/banner.ts +2 -2
- package/src/bun-path.ts +2 -1
- package/src/cmd/build/ast.ts +96 -15
- package/src/cmd/build/entry-generator.ts +6 -2
- package/src/cmd/build/vite/agent-discovery.ts +3 -2
- package/src/cmd/build/vite/metadata-generator.ts +3 -40
- package/src/cmd/build/vite/registry-generator.ts +26 -9
- package/src/cmd/build/vite/route-discovery.ts +3 -2
- package/src/cmd/build/vite/vite-asset-server-config.ts +1 -1
- package/src/cmd/build/vite/vite-asset-server.ts +53 -40
- package/src/cmd/cloud/deploy.ts +54 -61
- package/src/cmd/cloud/env/delete.ts +3 -34
- package/src/cmd/cloud/env/import.ts +2 -18
- package/src/cmd/cloud/env/set.ts +2 -21
- package/src/cmd/cloud/sandbox/cp.ts +2 -1
- package/src/cmd/cloud/sandbox/get.ts +5 -0
- package/src/cmd/cloud/sandbox/snapshot/build.ts +41 -0
- package/src/cmd/cloud/sandbox/snapshot/generate.ts +7 -0
- package/src/cmd/cloud/storage/create.ts +62 -27
- package/src/cmd/cloud/storage/delete.ts +136 -17
- package/src/cmd/git/account/add.ts +51 -190
- package/src/cmd/git/account/index.ts +3 -5
- package/src/cmd/git/account/list.ts +51 -82
- package/src/cmd/git/account/remove.ts +45 -95
- package/src/cmd/git/api.ts +49 -111
- package/src/cmd/git/identity/connect.ts +178 -0
- package/src/cmd/git/identity/disconnect.ts +103 -0
- package/src/cmd/git/identity/index.ts +10 -0
- package/src/cmd/git/identity/status.ts +96 -0
- package/src/cmd/git/index.ts +3 -3
- package/src/cmd/git/link.ts +32 -35
- package/src/cmd/git/list.ts +48 -59
- package/src/cmd/git/status.ts +55 -40
- package/src/config.ts +14 -5
- package/src/utils/detectSubagent.ts +5 -0
- package/src/utils/normalize-path.ts +12 -0
- package/src/utils/zip.ts +2 -1
package/dist/cmd/git/api.js
CHANGED
|
@@ -1,34 +1,42 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { APIResponseSchema } from '@agentuity/server';
|
|
3
1
|
import { StructuredError } from '@agentuity/core';
|
|
2
|
+
import { APIResponseSchema } from '@agentuity/server';
|
|
3
|
+
import { z } from 'zod';
|
|
4
4
|
const GithubStartDataSchema = z.object({
|
|
5
5
|
shortId: z.string(),
|
|
6
|
+
hasIdentity: z.boolean(),
|
|
6
7
|
});
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
const GithubInstallationSchema = z.object({
|
|
9
|
+
installationId: z.string(),
|
|
10
|
+
integrationId: z.string().optional(),
|
|
11
|
+
accountName: z.string(),
|
|
12
|
+
accountType: z.enum(['User', 'Organization']),
|
|
13
|
+
avatarUrl: z.string().optional(),
|
|
13
14
|
});
|
|
14
15
|
const GithubStatusDataSchema = z.object({
|
|
15
16
|
connected: z.boolean(),
|
|
16
|
-
|
|
17
|
+
identity: z
|
|
18
|
+
.object({
|
|
19
|
+
githubUsername: z.string(),
|
|
20
|
+
githubEmail: z.string().optional(),
|
|
21
|
+
avatarUrl: z.string().optional(),
|
|
22
|
+
})
|
|
23
|
+
.nullable(),
|
|
24
|
+
installations: z.array(GithubInstallationSchema),
|
|
17
25
|
});
|
|
18
26
|
const GithubIntegrationStartError = StructuredError('GithubIntegrationStartError', 'Error starting GitHub integration flow');
|
|
19
|
-
export async function startGithubIntegration(apiClient
|
|
20
|
-
const resp = await apiClient.get(
|
|
27
|
+
export async function startGithubIntegration(apiClient) {
|
|
28
|
+
const resp = await apiClient.get('/cli/github/start', APIResponseSchema(GithubStartDataSchema));
|
|
21
29
|
if (!resp.success) {
|
|
22
30
|
throw new GithubIntegrationStartError();
|
|
23
31
|
}
|
|
24
32
|
if (!resp.data) {
|
|
25
33
|
throw new GithubIntegrationStartError();
|
|
26
34
|
}
|
|
27
|
-
return { shortId: resp.data.shortId };
|
|
35
|
+
return { shortId: resp.data.shortId, hasIdentity: resp.data.hasIdentity };
|
|
28
36
|
}
|
|
29
37
|
const GithubIntegrationStatusError = StructuredError('GithubIntegrationStatusError', 'Error checking GitHub integration status');
|
|
30
|
-
export async function getGithubIntegrationStatus(apiClient
|
|
31
|
-
const resp = await apiClient.get(
|
|
38
|
+
export async function getGithubIntegrationStatus(apiClient) {
|
|
39
|
+
const resp = await apiClient.get('/cli/github/status', APIResponseSchema(GithubStatusDataSchema));
|
|
32
40
|
if (!resp.success) {
|
|
33
41
|
throw new GithubIntegrationStatusError();
|
|
34
42
|
}
|
|
@@ -37,15 +45,20 @@ export async function getGithubIntegrationStatus(apiClient, orgId) {
|
|
|
37
45
|
}
|
|
38
46
|
return {
|
|
39
47
|
connected: resp.data.connected,
|
|
40
|
-
|
|
48
|
+
identity: resp.data.identity,
|
|
49
|
+
installations: resp.data.installations,
|
|
41
50
|
};
|
|
42
51
|
}
|
|
43
52
|
const GithubDisconnectDataSchema = z.object({
|
|
44
53
|
disconnected: z.boolean(),
|
|
45
54
|
});
|
|
46
55
|
const GithubDisconnectError = StructuredError('GithubDisconnectError', 'Error disconnecting GitHub integration');
|
|
47
|
-
export async function disconnectGithubIntegration(apiClient,
|
|
48
|
-
|
|
56
|
+
export async function disconnectGithubIntegration(apiClient, installationId) {
|
|
57
|
+
let url = '/cli/github/disconnect';
|
|
58
|
+
if (installationId) {
|
|
59
|
+
url += `?installationId=${encodeURIComponent(installationId)}`;
|
|
60
|
+
}
|
|
61
|
+
const resp = await apiClient.delete(url, APIResponseSchema(GithubDisconnectDataSchema));
|
|
49
62
|
if (!resp.success) {
|
|
50
63
|
throw new GithubDisconnectError();
|
|
51
64
|
}
|
|
@@ -54,56 +67,25 @@ export async function disconnectGithubIntegration(apiClient, orgId, integrationI
|
|
|
54
67
|
}
|
|
55
68
|
return { disconnected: resp.data.disconnected };
|
|
56
69
|
}
|
|
57
|
-
// Existing integrations
|
|
58
|
-
const GithubExistingIntegrationSchema = z.object({
|
|
59
|
-
id: z.string(),
|
|
60
|
-
integrationId: z.string().nullable(),
|
|
61
|
-
orgId: z.string(),
|
|
62
|
-
orgName: z.string(),
|
|
63
|
-
githubAccountName: z.string(),
|
|
64
|
-
});
|
|
65
|
-
const GithubExistingDataSchema = z.object({
|
|
66
|
-
integrations: z.array(GithubExistingIntegrationSchema),
|
|
67
|
-
});
|
|
68
|
-
const GithubExistingError = StructuredError('GithubExistingError', 'Error fetching existing GitHub integrations');
|
|
69
|
-
export async function getExistingGithubIntegrations(apiClient, excludeOrgId) {
|
|
70
|
-
const query = excludeOrgId ? `?excludeOrgId=${encodeURIComponent(excludeOrgId)}` : '';
|
|
71
|
-
const resp = await apiClient.get(`/cli/github/existing${query}`, APIResponseSchema(GithubExistingDataSchema));
|
|
72
|
-
if (!resp.success || !resp.data) {
|
|
73
|
-
throw new GithubExistingError();
|
|
74
|
-
}
|
|
75
|
-
return resp.data.integrations;
|
|
76
|
-
}
|
|
77
|
-
// Copy integration
|
|
78
|
-
const GithubCopyDataSchema = z.object({
|
|
79
|
-
copied: z.boolean(),
|
|
80
|
-
});
|
|
81
|
-
const GithubCopyError = StructuredError('GithubCopyError', 'Error copying GitHub integration');
|
|
82
|
-
export async function copyGithubIntegration(apiClient, fromOrgId, toOrgId) {
|
|
83
|
-
const resp = await apiClient.post('/cli/github/copy', { fromOrgId, toOrgId }, APIResponseSchema(GithubCopyDataSchema));
|
|
84
|
-
if (!resp.success || !resp.data) {
|
|
85
|
-
throw new GithubCopyError();
|
|
86
|
-
}
|
|
87
|
-
return resp.data.copied;
|
|
88
|
-
}
|
|
89
70
|
// Polling
|
|
90
71
|
const PollForGithubIntegrationError = StructuredError('PollForGithubIntegrationError');
|
|
91
72
|
const PollForGithubIntegrationTimeout = StructuredError('PollForGithubIntegrationTimeout', 'Timed out waiting for GitHub integration. Aborting.');
|
|
92
|
-
export async function pollForGithubIntegration(apiClient,
|
|
73
|
+
export async function pollForGithubIntegration(apiClient, initialCount, timeoutMs = 600000 // 10 minutes
|
|
93
74
|
) {
|
|
94
75
|
const started = Date.now();
|
|
95
76
|
let delay = 2000; // Start with 2 seconds
|
|
96
77
|
const maxDelay = 10000; // Cap at 10 seconds
|
|
97
78
|
while (Date.now() - started < timeoutMs) {
|
|
98
|
-
const resp = await apiClient.get(
|
|
79
|
+
const resp = await apiClient.get('/cli/github/status', APIResponseSchema(GithubStatusDataSchema));
|
|
99
80
|
if (!resp.success || !resp.data) {
|
|
100
81
|
throw new PollForGithubIntegrationError();
|
|
101
82
|
}
|
|
102
|
-
const currentCount = resp.data.
|
|
83
|
+
const currentCount = resp.data.installations?.length ?? 0;
|
|
103
84
|
if (currentCount > initialCount) {
|
|
104
85
|
return {
|
|
105
86
|
connected: true,
|
|
106
|
-
|
|
87
|
+
identity: resp.data.identity,
|
|
88
|
+
installations: resp.data.installations,
|
|
107
89
|
};
|
|
108
90
|
}
|
|
109
91
|
await Bun.sleep(delay);
|
|
@@ -124,10 +106,10 @@ const GithubReposDataSchema = z.object({
|
|
|
124
106
|
repos: z.array(GithubRepoSchema),
|
|
125
107
|
});
|
|
126
108
|
const GithubReposError = StructuredError('GithubReposError', 'Error fetching GitHub repositories');
|
|
127
|
-
export async function listGithubRepos(apiClient,
|
|
128
|
-
let url =
|
|
109
|
+
export async function listGithubRepos(apiClient, integrationId) {
|
|
110
|
+
let url = '/cli/github/repos';
|
|
129
111
|
if (integrationId) {
|
|
130
|
-
url +=
|
|
112
|
+
url += `?integrationId=${encodeURIComponent(integrationId)}`;
|
|
131
113
|
}
|
|
132
114
|
const resp = await apiClient.get(url, APIResponseSchema(GithubReposDataSchema));
|
|
133
115
|
if (!resp.success || !resp.data) {
|
package/dist/cmd/git/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/cmd/git/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/cmd/git/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Logger } from '@agentuity/core';
|
|
2
|
+
import type { APIClient } from '../../../api';
|
|
3
|
+
import type { Config } from '../../../types';
|
|
4
|
+
export interface RunGitIdentityConnectOptions {
|
|
5
|
+
apiClient: APIClient;
|
|
6
|
+
logger: Logger;
|
|
7
|
+
config?: Config | null;
|
|
8
|
+
}
|
|
9
|
+
export interface RunGitIdentityConnectResult {
|
|
10
|
+
connected: boolean;
|
|
11
|
+
cancelled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function runGitIdentityConnect(options: RunGitIdentityConnectOptions): Promise<RunGitIdentityConnectResult>;
|
|
14
|
+
export declare const connectSubcommand: import("../../..").SubcommandDefinition;
|
|
15
|
+
//# sourceMappingURL=connect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../../src/cmd/git/identity/connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAQ7C,MAAM,WAAW,4BAA4B;IAC5C,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,2BAA2B,CAAC,CA6FtC;AAQD,eAAO,MAAM,iBAAiB,yCAgD5B,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getAPIBaseURL } from '../../../api';
|
|
3
|
+
import { getCommand } from '../../../command-prefix';
|
|
4
|
+
import { ErrorCode } from '../../../errors';
|
|
5
|
+
import * as tui from '../../../tui';
|
|
6
|
+
import { createSubcommand } from '../../../types';
|
|
7
|
+
import { getGithubIntegrationStatus, pollForGithubIntegration, startGithubIntegration, } from '../api';
|
|
8
|
+
export async function runGitIdentityConnect(options) {
|
|
9
|
+
const { apiClient, logger, config } = options;
|
|
10
|
+
try {
|
|
11
|
+
const currentStatus = await getGithubIntegrationStatus(apiClient);
|
|
12
|
+
const initialCount = currentStatus.installations?.length ?? 0;
|
|
13
|
+
if (currentStatus.connected && currentStatus.identity) {
|
|
14
|
+
tui.newline();
|
|
15
|
+
tui.info(`Already connected as ${tui.bold(currentStatus.identity.githubUsername)}. Use ${tui.bold('agentuity git account add')} to install the GitHub App on additional accounts.`);
|
|
16
|
+
tui.newline();
|
|
17
|
+
return { connected: true };
|
|
18
|
+
}
|
|
19
|
+
const startResult = await tui.spinner({
|
|
20
|
+
message: 'Getting GitHub authorization URL...',
|
|
21
|
+
clearOnSuccess: true,
|
|
22
|
+
callback: () => startGithubIntegration(apiClient),
|
|
23
|
+
});
|
|
24
|
+
if (!startResult) {
|
|
25
|
+
tui.error('Failed to start GitHub authorization');
|
|
26
|
+
return { connected: false };
|
|
27
|
+
}
|
|
28
|
+
const { shortId } = startResult;
|
|
29
|
+
const apiBaseUrl = getAPIBaseURL(config);
|
|
30
|
+
const url = `${apiBaseUrl}/github/connect/${shortId}`;
|
|
31
|
+
const copied = await tui.copyToClipboard(url);
|
|
32
|
+
tui.newline();
|
|
33
|
+
if (copied) {
|
|
34
|
+
tui.output('GitHub authorization URL copied to clipboard! Open it in your browser:');
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
tui.output('Open this URL in your browser to authorize GitHub access:');
|
|
38
|
+
}
|
|
39
|
+
tui.newline();
|
|
40
|
+
tui.output(` ${tui.link(url)}`);
|
|
41
|
+
tui.newline();
|
|
42
|
+
tui.output(tui.muted('Press Enter to open in your browser, or Ctrl+C to cancel'));
|
|
43
|
+
tui.newline();
|
|
44
|
+
const result = await tui.spinner({
|
|
45
|
+
type: 'countdown',
|
|
46
|
+
message: 'Waiting for GitHub authorization',
|
|
47
|
+
timeoutMs: 600000,
|
|
48
|
+
clearOnSuccess: true,
|
|
49
|
+
onEnterPress: () => {
|
|
50
|
+
const platform = process.platform;
|
|
51
|
+
if (platform === 'win32') {
|
|
52
|
+
Bun.spawn(['cmd', '/c', 'start', '', url], {
|
|
53
|
+
stdout: 'ignore',
|
|
54
|
+
stderr: 'ignore',
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
const command = platform === 'darwin' ? 'open' : 'xdg-open';
|
|
59
|
+
Bun.spawn([command, url], { stdout: 'ignore', stderr: 'ignore' });
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
callback: async () => {
|
|
63
|
+
return await pollForGithubIntegration(apiClient, initialCount);
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
tui.newline();
|
|
67
|
+
if (result.connected) {
|
|
68
|
+
const username = result.identity?.githubUsername;
|
|
69
|
+
if (username) {
|
|
70
|
+
tui.success(`GitHub identity connected as ${tui.bold(username)}`);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
tui.success('GitHub identity connected');
|
|
74
|
+
}
|
|
75
|
+
return { connected: true };
|
|
76
|
+
}
|
|
77
|
+
return { connected: false };
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
const isCancel = error === '' ||
|
|
81
|
+
(error instanceof Error && (error.message === '' || error.message === 'User cancelled'));
|
|
82
|
+
if (isCancel) {
|
|
83
|
+
tui.newline();
|
|
84
|
+
tui.info('Cancelled');
|
|
85
|
+
return { connected: false, cancelled: true };
|
|
86
|
+
}
|
|
87
|
+
logger.trace(error);
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const ConnectOptionsSchema = z.object({});
|
|
92
|
+
const ConnectResponseSchema = z.object({
|
|
93
|
+
connected: z.boolean().describe('Whether the identity was connected'),
|
|
94
|
+
});
|
|
95
|
+
export const connectSubcommand = createSubcommand({
|
|
96
|
+
name: 'connect',
|
|
97
|
+
description: 'Connect your GitHub identity',
|
|
98
|
+
tags: ['mutating', 'creates-resource', 'slow', 'api-intensive'],
|
|
99
|
+
idempotent: false,
|
|
100
|
+
requires: { auth: true, apiClient: true },
|
|
101
|
+
schema: {
|
|
102
|
+
options: ConnectOptionsSchema,
|
|
103
|
+
response: ConnectResponseSchema,
|
|
104
|
+
},
|
|
105
|
+
examples: [
|
|
106
|
+
{
|
|
107
|
+
command: getCommand('git identity connect'),
|
|
108
|
+
description: 'Connect your GitHub identity',
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
async handler(ctx) {
|
|
112
|
+
const { logger, apiClient, config } = ctx;
|
|
113
|
+
try {
|
|
114
|
+
const result = await runGitIdentityConnect({
|
|
115
|
+
apiClient,
|
|
116
|
+
logger,
|
|
117
|
+
config,
|
|
118
|
+
});
|
|
119
|
+
return { connected: result.connected };
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
const isCancel = error === '' ||
|
|
123
|
+
(error instanceof Error &&
|
|
124
|
+
(error.message === '' || error.message === 'User cancelled'));
|
|
125
|
+
if (isCancel) {
|
|
126
|
+
tui.newline();
|
|
127
|
+
tui.info('Cancelled');
|
|
128
|
+
return { connected: false };
|
|
129
|
+
}
|
|
130
|
+
logger.trace(error);
|
|
131
|
+
return logger.fatal('Failed to connect GitHub identity: %s', error, ErrorCode.INTEGRATION_FAILED);
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
//# sourceMappingURL=connect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../../src/cmd/git/identity/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disconnect.d.ts","sourceRoot":"","sources":["../../../../src/cmd/git/identity/disconnect.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,oBAAoB,yCAuF/B,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getCommand } from '../../../command-prefix';
|
|
3
|
+
import { ErrorCode } from '../../../errors';
|
|
4
|
+
import * as tui from '../../../tui';
|
|
5
|
+
import { createSubcommand } from '../../../types';
|
|
6
|
+
import { disconnectGithubIntegration, getGithubIntegrationStatus } from '../api';
|
|
7
|
+
const DisconnectOptionsSchema = z.object({
|
|
8
|
+
confirm: z.boolean().optional().describe('Skip confirmation prompt'),
|
|
9
|
+
});
|
|
10
|
+
const DisconnectResponseSchema = z.object({
|
|
11
|
+
disconnected: z.boolean().describe('Whether the identity was disconnected'),
|
|
12
|
+
});
|
|
13
|
+
export const disconnectSubcommand = createSubcommand({
|
|
14
|
+
name: 'disconnect',
|
|
15
|
+
description: 'Disconnect your GitHub identity and all installations',
|
|
16
|
+
tags: ['mutating', 'destructive', 'slow'],
|
|
17
|
+
idempotent: false,
|
|
18
|
+
requires: { auth: true, apiClient: true },
|
|
19
|
+
schema: {
|
|
20
|
+
options: DisconnectOptionsSchema,
|
|
21
|
+
response: DisconnectResponseSchema,
|
|
22
|
+
},
|
|
23
|
+
examples: [
|
|
24
|
+
{
|
|
25
|
+
command: getCommand('git identity disconnect'),
|
|
26
|
+
description: 'Disconnect your GitHub identity',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
command: getCommand('git identity disconnect --confirm'),
|
|
30
|
+
description: 'Disconnect without confirmation prompt',
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
async handler(ctx) {
|
|
34
|
+
const { logger, apiClient, opts, options } = ctx;
|
|
35
|
+
try {
|
|
36
|
+
const status = await tui.spinner({
|
|
37
|
+
message: 'Checking GitHub connection...',
|
|
38
|
+
clearOnSuccess: true,
|
|
39
|
+
callback: () => getGithubIntegrationStatus(apiClient),
|
|
40
|
+
});
|
|
41
|
+
if (!status.connected || !status.identity) {
|
|
42
|
+
if (!options.json) {
|
|
43
|
+
tui.newline();
|
|
44
|
+
tui.info('No GitHub identity connected.');
|
|
45
|
+
}
|
|
46
|
+
return { disconnected: false };
|
|
47
|
+
}
|
|
48
|
+
if (!opts.confirm) {
|
|
49
|
+
tui.newline();
|
|
50
|
+
tui.output(`Connected as ${tui.bold(status.identity.githubUsername)} with ${status.installations.length} installation${status.installations.length !== 1 ? 's' : ''}.`);
|
|
51
|
+
tui.newline();
|
|
52
|
+
const confirmed = await tui.confirm('Are you sure you want to disconnect your GitHub identity?');
|
|
53
|
+
if (!confirmed) {
|
|
54
|
+
tui.info('Cancelled');
|
|
55
|
+
return { disconnected: false };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
await tui.spinner({
|
|
59
|
+
message: 'Disconnecting GitHub identity...',
|
|
60
|
+
clearOnSuccess: true,
|
|
61
|
+
callback: () => disconnectGithubIntegration(apiClient),
|
|
62
|
+
});
|
|
63
|
+
if (!options.json) {
|
|
64
|
+
tui.newline();
|
|
65
|
+
tui.success('Disconnected GitHub identity and all installations');
|
|
66
|
+
}
|
|
67
|
+
return { disconnected: true };
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
const isCancel = error === '' ||
|
|
71
|
+
(error instanceof Error &&
|
|
72
|
+
(error.message === '' || error.message === 'User cancelled'));
|
|
73
|
+
if (isCancel) {
|
|
74
|
+
tui.newline();
|
|
75
|
+
tui.info('Cancelled');
|
|
76
|
+
return { disconnected: false };
|
|
77
|
+
}
|
|
78
|
+
logger.trace(error);
|
|
79
|
+
return logger.fatal('Failed to disconnect GitHub identity: %s', error, ErrorCode.INTEGRATION_FAILED);
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=disconnect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disconnect.js","sourceRoot":"","sources":["../../../../src/cmd/git/identity/disconnect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cmd/git/identity/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe,sCAI1B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createCommand } from '../../../types';
|
|
2
|
+
import { connectSubcommand } from './connect';
|
|
3
|
+
import { disconnectSubcommand } from './disconnect';
|
|
4
|
+
import { statusSubcommand } from './status';
|
|
5
|
+
export const identityCommand = createCommand({
|
|
6
|
+
name: 'identity',
|
|
7
|
+
description: 'Manage your GitHub identity',
|
|
8
|
+
subcommands: [connectSubcommand, disconnectSubcommand, statusSubcommand],
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cmd/git/identity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC;IAC5C,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,6BAA6B;IAC1C,WAAW,EAAE,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;CACxE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/cmd/git/identity/status.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,gBAAgB,yCA6E3B,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getCommand } from '../../../command-prefix';
|
|
3
|
+
import { ErrorCode } from '../../../errors';
|
|
4
|
+
import * as tui from '../../../tui';
|
|
5
|
+
import { createSubcommand } from '../../../types';
|
|
6
|
+
import { getGithubIntegrationStatus } from '../api';
|
|
7
|
+
const StatusResponseSchema = z.object({
|
|
8
|
+
connected: z.boolean().describe('Whether a GitHub identity is connected'),
|
|
9
|
+
identity: z
|
|
10
|
+
.object({
|
|
11
|
+
githubUsername: z.string().describe('GitHub username'),
|
|
12
|
+
githubEmail: z.string().optional().describe('GitHub email'),
|
|
13
|
+
})
|
|
14
|
+
.nullable()
|
|
15
|
+
.describe('Connected GitHub identity'),
|
|
16
|
+
});
|
|
17
|
+
export const statusSubcommand = createSubcommand({
|
|
18
|
+
name: 'status',
|
|
19
|
+
description: 'Show your connected GitHub identity',
|
|
20
|
+
tags: ['read-only'],
|
|
21
|
+
idempotent: true,
|
|
22
|
+
requires: { auth: true, apiClient: true },
|
|
23
|
+
schema: {
|
|
24
|
+
response: StatusResponseSchema,
|
|
25
|
+
},
|
|
26
|
+
examples: [
|
|
27
|
+
{
|
|
28
|
+
command: getCommand('git identity status'),
|
|
29
|
+
description: 'Show your connected GitHub identity',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
command: getCommand('--json git identity status'),
|
|
33
|
+
description: 'Show identity in JSON format',
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
async handler(ctx) {
|
|
37
|
+
const { logger, apiClient, options } = ctx;
|
|
38
|
+
try {
|
|
39
|
+
const status = await tui.spinner({
|
|
40
|
+
message: 'Checking GitHub connection...',
|
|
41
|
+
clearOnSuccess: true,
|
|
42
|
+
callback: () => getGithubIntegrationStatus(apiClient),
|
|
43
|
+
});
|
|
44
|
+
const result = {
|
|
45
|
+
connected: status.connected,
|
|
46
|
+
identity: status.identity
|
|
47
|
+
? {
|
|
48
|
+
githubUsername: status.identity.githubUsername,
|
|
49
|
+
githubEmail: status.identity.githubEmail,
|
|
50
|
+
}
|
|
51
|
+
: null,
|
|
52
|
+
};
|
|
53
|
+
if (options.json) {
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
tui.newline();
|
|
57
|
+
tui.output(tui.bold('GitHub Identity'));
|
|
58
|
+
tui.newline();
|
|
59
|
+
if (!status.connected || !status.identity) {
|
|
60
|
+
tui.output(tui.muted(`No GitHub identity connected. Run ${tui.bold('agentuity git identity connect')} to connect one.`));
|
|
61
|
+
tui.newline();
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
tui.output(` ${tui.colorSuccess('✓')} Connected as ${tui.bold(status.identity.githubUsername)}`);
|
|
65
|
+
if (status.identity.githubEmail) {
|
|
66
|
+
tui.output(` Email: ${status.identity.githubEmail}`);
|
|
67
|
+
}
|
|
68
|
+
tui.newline();
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
logger.trace(error);
|
|
73
|
+
return logger.fatal('Failed to check GitHub identity: %s', error, ErrorCode.INTEGRATION_FAILED);
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/cmd/git/identity/status.ts"],"names":[],"mappings":"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"}
|
package/dist/cmd/git/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/git/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/git/index.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,mCAWrB,CAAC"}
|
package/dist/cmd/git/index.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { createCommand } from '../../types';
|
|
2
2
|
import { accountCommand } from './account';
|
|
3
|
+
import { identityCommand } from './identity';
|
|
3
4
|
import { linkSubcommand } from './link';
|
|
4
5
|
import { listSubcommand } from './list';
|
|
5
|
-
import { unlinkSubcommand } from './unlink';
|
|
6
6
|
import { statusSubcommand } from './status';
|
|
7
|
+
import { unlinkSubcommand } from './unlink';
|
|
7
8
|
export const gitCommand = createCommand({
|
|
8
9
|
name: 'git',
|
|
9
10
|
description: 'Manage GitHub integration and repository connections',
|
|
10
11
|
subcommands: [
|
|
12
|
+
identityCommand,
|
|
11
13
|
accountCommand,
|
|
12
14
|
linkSubcommand,
|
|
13
15
|
listSubcommand,
|
|
@@ -15,5 +17,4 @@ export const gitCommand = createCommand({
|
|
|
15
17
|
statusSubcommand,
|
|
16
18
|
],
|
|
17
19
|
});
|
|
18
|
-
export default gitCommand;
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cmd/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;IACvC,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,sDAAsD;IACnE,WAAW,EAAE;QACZ,cAAc;QACd,cAAc;QACd,cAAc;QACd,gBAAgB;QAChB,gBAAgB;KAChB;CACD,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cmd/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;IACvC,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,sDAAsD;IACnE,WAAW,EAAE;QACZ,eAAe;QACf,cAAc;QACd,cAAc;QACd,cAAc;QACd,gBAAgB;QAChB,gBAAgB;KAChB;CACD,CAAC,CAAC"}
|
package/dist/cmd/git/link.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type Config } from '../../types';
|
|
2
|
-
import type { APIClient } from '../../api';
|
|
3
1
|
import type { Logger } from '@agentuity/core';
|
|
2
|
+
import type { APIClient } from '../../api';
|
|
3
|
+
import { type Config } from '../../types';
|
|
4
4
|
export interface DetectedGitInfo {
|
|
5
5
|
repo: string | null;
|
|
6
6
|
branch: string | null;
|
|
@@ -9,7 +9,6 @@ export declare function detectGitInfo(): DetectedGitInfo;
|
|
|
9
9
|
export interface RunGitLinkOptions {
|
|
10
10
|
apiClient: APIClient;
|
|
11
11
|
projectId: string;
|
|
12
|
-
orgId: string;
|
|
13
12
|
logger: Logger;
|
|
14
13
|
branchOption?: string;
|
|
15
14
|
rootOption?: string;
|