@agentuity/cli 2.0.5 → 2.0.7
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/README.md +11 -0
- package/dist/cmd/build/patch/otel-llm.js +2 -2
- package/dist/cmd/build/patch/otel-llm.js.map +1 -1
- package/dist/cmd/build/vite/bun-dev-server.d.ts.map +1 -1
- package/dist/cmd/build/vite/bun-dev-server.js +1 -0
- package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
- package/dist/cmd/build/vite/index.d.ts +0 -28
- package/dist/cmd/build/vite/index.d.ts.map +1 -1
- package/dist/cmd/build/vite/index.js +1 -104
- package/dist/cmd/build/vite/index.js.map +1 -1
- package/dist/cmd/build/vite/metadata-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/metadata-generator.js +8 -2
- package/dist/cmd/build/vite/metadata-generator.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts +2 -0
- 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 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.d.ts +2 -0
- package/dist/cmd/build/vite/vite-asset-server.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.js +2 -1
- package/dist/cmd/build/vite/vite-asset-server.js.map +1 -1
- package/dist/cmd/build/vite/vite-builder.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-builder.js +143 -2
- package/dist/cmd/build/vite/vite-builder.js.map +1 -1
- package/dist/cmd/cloud/task/close.d.ts +3 -0
- package/dist/cmd/cloud/task/close.d.ts.map +1 -0
- package/dist/cmd/cloud/task/close.js +286 -0
- package/dist/cmd/cloud/task/close.js.map +1 -0
- package/dist/cmd/cloud/task/delete.d.ts +1 -5
- package/dist/cmd/cloud/task/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/task/delete.js +15 -38
- package/dist/cmd/cloud/task/delete.js.map +1 -1
- package/dist/cmd/cloud/task/index.d.ts.map +1 -1
- package/dist/cmd/cloud/task/index.js +10 -0
- package/dist/cmd/cloud/task/index.js.map +1 -1
- package/dist/cmd/cloud/task/list.d.ts.map +1 -1
- package/dist/cmd/cloud/task/list.js +97 -3
- package/dist/cmd/cloud/task/list.js.map +1 -1
- package/dist/cmd/cloud/task/util.d.ts +10 -0
- package/dist/cmd/cloud/task/util.d.ts.map +1 -1
- package/dist/cmd/cloud/task/util.js +47 -3
- package/dist/cmd/cloud/task/util.js.map +1 -1
- package/dist/cmd/coder/config/index.d.ts +2 -0
- package/dist/cmd/coder/config/index.d.ts.map +1 -0
- package/dist/cmd/coder/config/index.js +20 -0
- package/dist/cmd/coder/config/index.js.map +1 -0
- package/dist/cmd/coder/config/set.d.ts +2 -0
- package/dist/cmd/coder/config/set.d.ts.map +1 -0
- package/dist/cmd/coder/config/set.js +100 -0
- package/dist/cmd/coder/config/set.js.map +1 -0
- package/dist/cmd/coder/hub-url.d.ts +21 -10
- package/dist/cmd/coder/hub-url.d.ts.map +1 -1
- package/dist/cmd/coder/hub-url.js +97 -55
- package/dist/cmd/coder/hub-url.js.map +1 -1
- package/dist/cmd/coder/index.d.ts.map +1 -1
- package/dist/cmd/coder/index.js +6 -1
- package/dist/cmd/coder/index.js.map +1 -1
- package/dist/cmd/coder/inspect.d.ts.map +1 -1
- package/dist/cmd/coder/inspect.js +15 -7
- package/dist/cmd/coder/inspect.js.map +1 -1
- package/dist/cmd/coder/list.d.ts.map +1 -1
- package/dist/cmd/coder/list.js +14 -7
- package/dist/cmd/coder/list.js.map +1 -1
- package/dist/cmd/coder/start.d.ts.map +1 -1
- package/dist/cmd/coder/start.js +38 -23
- package/dist/cmd/coder/start.js.map +1 -1
- package/dist/cmd/coder/tui-init.d.ts +4 -1
- package/dist/cmd/coder/tui-init.d.ts.map +1 -1
- package/dist/cmd/coder/tui-init.js +3 -2
- package/dist/cmd/coder/tui-init.js.map +1 -1
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +1 -0
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/dev/sync.js +5 -5
- package/dist/cmd/dev/sync.js.map +1 -1
- package/dist/coder-config.d.ts +14 -0
- package/dist/coder-config.d.ts.map +1 -0
- package/dist/coder-config.js +119 -0
- package/dist/coder-config.js.map +1 -0
- package/dist/coder-hub-url.d.ts +3 -0
- package/dist/coder-hub-url.d.ts.map +1 -0
- package/dist/coder-hub-url.js +32 -0
- package/dist/coder-hub-url.js.map +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +11 -0
- package/dist/config.js.map +1 -1
- package/dist/internal-logger.d.ts +4 -0
- package/dist/internal-logger.d.ts.map +1 -1
- package/dist/internal-logger.js +64 -2
- package/dist/internal-logger.js.map +1 -1
- package/dist/keychain.d.ts +3 -0
- package/dist/keychain.d.ts.map +1 -1
- package/dist/keychain.js +47 -28
- package/dist/keychain.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -1
- package/package.json +6 -6
- package/src/cmd/build/patch/otel-llm.ts +2 -2
- package/src/cmd/build/vite/bun-dev-server.ts +1 -0
- package/src/cmd/build/vite/index.ts +1 -148
- package/src/cmd/build/vite/metadata-generator.ts +8 -2
- package/src/cmd/build/vite/vite-asset-server-config.ts +16 -1
- package/src/cmd/build/vite/vite-asset-server.ts +4 -0
- package/src/cmd/build/vite/vite-builder.ts +171 -9
- package/src/cmd/cloud/task/close.ts +319 -0
- package/src/cmd/cloud/task/delete.ts +15 -43
- package/src/cmd/cloud/task/index.ts +10 -0
- package/src/cmd/cloud/task/list.ts +111 -4
- package/src/cmd/cloud/task/util.ts +59 -5
- package/src/cmd/coder/config/index.ts +20 -0
- package/src/cmd/coder/config/set.ts +112 -0
- package/src/cmd/coder/hub-url.ts +147 -53
- package/src/cmd/coder/index.ts +6 -1
- package/src/cmd/coder/inspect.ts +33 -10
- package/src/cmd/coder/list.ts +33 -10
- package/src/cmd/coder/start.ts +62 -26
- package/src/cmd/coder/tui-init.ts +7 -2
- package/src/cmd/dev/index.ts +1 -0
- package/src/cmd/dev/sync.ts +5 -5
- package/src/coder-config.ts +141 -0
- package/src/coder-hub-url.ts +32 -0
- package/src/config.ts +13 -0
- package/src/internal-logger.ts +83 -2
- package/src/keychain.ts +68 -39
- package/src/types.ts +10 -0
|
@@ -4,8 +4,15 @@
|
|
|
4
4
|
* Resolution priority:
|
|
5
5
|
* 1. --hub-url flag (explicit per-command override)
|
|
6
6
|
* 2. AGENTUITY_CODER_HUB_URL env var
|
|
7
|
-
* 3.
|
|
7
|
+
* 3. Stored per-profile Hub URL
|
|
8
|
+
* 4. AGENTUITY_DEVMODE_URL env var (dev tunnel URL)
|
|
8
9
|
*/
|
|
10
|
+
import type { Config } from '../../types';
|
|
11
|
+
export type HubApiKeySource = 'env' | 'stored' | 'none';
|
|
12
|
+
export interface ResolvedHubApiKey {
|
|
13
|
+
apiKey: string | null;
|
|
14
|
+
source: HubApiKeySource;
|
|
15
|
+
}
|
|
9
16
|
/**
|
|
10
17
|
* Resolve the Hub HTTP base URL for REST API calls.
|
|
11
18
|
* Converts ws:// URLs to http:// automatically.
|
|
@@ -13,7 +20,7 @@
|
|
|
13
20
|
* @param flagUrl Optional --hub-url flag value
|
|
14
21
|
* @returns HTTP base URL (e.g. "http://localhost:3500") or null if Hub is unreachable
|
|
15
22
|
*/
|
|
16
|
-
export declare function resolveHubUrl(flagUrl?: string): Promise<string | null>;
|
|
23
|
+
export declare function resolveHubUrl(flagUrl?: string, config?: Config | null): Promise<string | null>;
|
|
17
24
|
/**
|
|
18
25
|
* Resolve the Hub WebSocket URL for Pi extension connections.
|
|
19
26
|
* Converts http:// URLs to ws:// automatically and ensures /api/ws path.
|
|
@@ -21,16 +28,20 @@ export declare function resolveHubUrl(flagUrl?: string): Promise<string | null>;
|
|
|
21
28
|
* @param flagUrl Optional --hub-url flag value
|
|
22
29
|
* @returns WebSocket URL (e.g. "ws://127.0.0.1:3500/api/ws") or null
|
|
23
30
|
*/
|
|
24
|
-
export declare function resolveHubWsUrl(flagUrl?: string): Promise<string | null>;
|
|
31
|
+
export declare function resolveHubWsUrl(flagUrl?: string, config?: Config | null): Promise<string | null>;
|
|
25
32
|
export declare function toHubWsUrl(hubHttpUrl: string): string;
|
|
26
|
-
|
|
27
|
-
* Resolve the API key for Hub authentication.
|
|
28
|
-
* TODO: Remove/Change when we get Agentuity service level auth enabled, this is just temporary
|
|
29
|
-
*/
|
|
30
|
-
export declare function resolveApiKey(): string | null;
|
|
33
|
+
export declare function resolveHubApiKey(config?: Config | null): Promise<ResolvedHubApiKey>;
|
|
31
34
|
/**
|
|
32
35
|
* Build headers object with API key if available.
|
|
33
|
-
* TODO: Remove/Change when we get Agentuity service level auth enabled, this is just temporary
|
|
34
36
|
*/
|
|
35
|
-
export declare function hubFetchHeaders(extra?: Record<string, string
|
|
37
|
+
export declare function hubFetchHeaders(extra?: Record<string, string>, apiKey?: string | null): Record<string, string>;
|
|
38
|
+
export declare function isHubUnauthorizedStatus(status: number): boolean;
|
|
39
|
+
export declare function clearStoredHubApiKeyOnUnauthorized(status: number, resolvedApiKey: ResolvedHubApiKey, config?: Config | null, clearStoredApiKey?: (config?: Config | null) => Promise<unknown>): Promise<boolean>;
|
|
40
|
+
export declare function getHubUrlSetupGuidance(): string;
|
|
41
|
+
export declare function getHubApiKeySetupGuidance(): string;
|
|
42
|
+
export declare function formatMissingHubUrlMessage(): string;
|
|
43
|
+
export declare function formatHubUnauthorizedMessage(hubUrl: string, serverMessage: string, options?: {
|
|
44
|
+
clearedStoredKey?: boolean;
|
|
45
|
+
}): string;
|
|
46
|
+
export declare function getHubResponseErrorMessage(response: Response): Promise<string>;
|
|
36
47
|
//# sourceMappingURL=hub-url.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub-url.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/hub-url.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hub-url.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/hub-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAClC,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiBxB;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACpC,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAIxB;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAErD;AASD,wBAAsB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqBzF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAsB,kCAAkC,CACvD,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,iBAAiB,EACjC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,iBAAiB,GAAE,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,OAAO,CAA0B,GACtF,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAM/C;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAMlD;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;IACT,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B,GACC,MAAM,CAQR;AAED,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BpF"}
|
|
@@ -4,8 +4,12 @@
|
|
|
4
4
|
* Resolution priority:
|
|
5
5
|
* 1. --hub-url flag (explicit per-command override)
|
|
6
6
|
* 2. AGENTUITY_CODER_HUB_URL env var
|
|
7
|
-
* 3.
|
|
7
|
+
* 3. Stored per-profile Hub URL
|
|
8
|
+
* 4. AGENTUITY_DEVMODE_URL env var (dev tunnel URL)
|
|
8
9
|
*/
|
|
10
|
+
import { clearStoredCoderApiKey, getStoredCoderApiKey, getStoredCoderHubUrl, } from '../../coder-config';
|
|
11
|
+
import { normalizeCoderHubHttpUrl, toCoderHubWsUrl } from '../../coder-hub-url';
|
|
12
|
+
import { getCommand } from '../../command-prefix';
|
|
9
13
|
import { getVersion } from '../../version';
|
|
10
14
|
/**
|
|
11
15
|
* Resolve the Hub HTTP base URL for REST API calls.
|
|
@@ -14,18 +18,22 @@ import { getVersion } from '../../version';
|
|
|
14
18
|
* @param flagUrl Optional --hub-url flag value
|
|
15
19
|
* @returns HTTP base URL (e.g. "http://localhost:3500") or null if Hub is unreachable
|
|
16
20
|
*/
|
|
17
|
-
export async function resolveHubUrl(flagUrl) {
|
|
21
|
+
export async function resolveHubUrl(flagUrl, config) {
|
|
18
22
|
// 1. Explicit flag
|
|
19
23
|
if (flagUrl)
|
|
20
|
-
return
|
|
24
|
+
return normalizeCoderHubHttpUrl(flagUrl);
|
|
21
25
|
// 2. Env var (explicit)
|
|
22
26
|
const envUrl = process.env.AGENTUITY_CODER_HUB_URL;
|
|
23
27
|
if (envUrl)
|
|
24
|
-
return
|
|
25
|
-
// 3.
|
|
28
|
+
return normalizeCoderHubHttpUrl(envUrl);
|
|
29
|
+
// 3. Stored profile config
|
|
30
|
+
const storedUrl = await getStoredCoderHubUrl(config);
|
|
31
|
+
if (storedUrl)
|
|
32
|
+
return storedUrl;
|
|
33
|
+
// 4. Dev mode URL (tunnel)
|
|
26
34
|
const devUrl = process.env.AGENTUITY_DEVMODE_URL;
|
|
27
35
|
if (devUrl)
|
|
28
|
-
return
|
|
36
|
+
return normalizeCoderHubHttpUrl(devUrl);
|
|
29
37
|
return null;
|
|
30
38
|
}
|
|
31
39
|
/**
|
|
@@ -35,72 +43,106 @@ export async function resolveHubUrl(flagUrl) {
|
|
|
35
43
|
* @param flagUrl Optional --hub-url flag value
|
|
36
44
|
* @returns WebSocket URL (e.g. "ws://127.0.0.1:3500/api/ws") or null
|
|
37
45
|
*/
|
|
38
|
-
export async function resolveHubWsUrl(flagUrl) {
|
|
39
|
-
const httpUrl = await resolveHubUrl(flagUrl);
|
|
46
|
+
export async function resolveHubWsUrl(flagUrl, config) {
|
|
47
|
+
const httpUrl = await resolveHubUrl(flagUrl, config);
|
|
40
48
|
if (!httpUrl)
|
|
41
49
|
return null;
|
|
42
50
|
return toHubWsUrl(httpUrl);
|
|
43
51
|
}
|
|
44
52
|
export function toHubWsUrl(hubHttpUrl) {
|
|
45
|
-
return
|
|
53
|
+
return toCoderHubWsUrl(hubHttpUrl);
|
|
46
54
|
}
|
|
47
55
|
/**
|
|
48
|
-
*
|
|
56
|
+
* Resolve the API key for Hub authentication.
|
|
49
57
|
*/
|
|
50
|
-
function
|
|
51
|
-
|
|
52
|
-
// ws:// -> http://
|
|
53
|
-
if (normalized.startsWith('ws://'))
|
|
54
|
-
normalized = 'http://' + normalized.slice(5);
|
|
55
|
-
else if (normalized.startsWith('wss://'))
|
|
56
|
-
normalized = 'https://' + normalized.slice(6);
|
|
57
|
-
// Strip known Hub transport/helper paths to get the HTTP base URL.
|
|
58
|
-
// Accept `/ws` as a convenience alias because users often copy the raw route name.
|
|
59
|
-
normalized = normalized.replace(/\/api\/ws\b.*$/, '');
|
|
60
|
-
normalized = normalized.replace(/\/ws\b.*$/, '');
|
|
61
|
-
normalized = normalized.replace(/\/api\/hub\b.*$/, '');
|
|
62
|
-
return normalized.replace(/\/+$/, '');
|
|
58
|
+
function resolveEnvApiKey() {
|
|
59
|
+
return process.env.AGENTUITY_CODER_API_KEY || null;
|
|
63
60
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
else if (wsUrl.startsWith('https://'))
|
|
72
|
-
wsUrl = 'wss://' + wsUrl.slice(8);
|
|
73
|
-
try {
|
|
74
|
-
const parsed = new URL(wsUrl);
|
|
75
|
-
if (parsed.pathname !== '/api/ws') {
|
|
76
|
-
parsed.pathname = '/api/ws';
|
|
77
|
-
wsUrl = parsed.toString().replace(/\/$/, '');
|
|
78
|
-
}
|
|
61
|
+
export async function resolveHubApiKey(config) {
|
|
62
|
+
const envApiKey = resolveEnvApiKey();
|
|
63
|
+
if (envApiKey) {
|
|
64
|
+
return {
|
|
65
|
+
apiKey: envApiKey,
|
|
66
|
+
source: 'env',
|
|
67
|
+
};
|
|
79
68
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
69
|
+
const storedApiKey = await getStoredCoderApiKey(config);
|
|
70
|
+
if (storedApiKey) {
|
|
71
|
+
return {
|
|
72
|
+
apiKey: storedApiKey,
|
|
73
|
+
source: 'stored',
|
|
74
|
+
};
|
|
84
75
|
}
|
|
85
|
-
return
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
* TODO: Remove/Change when we get Agentuity service level auth enabled, this is just temporary
|
|
90
|
-
*/
|
|
91
|
-
export function resolveApiKey() {
|
|
92
|
-
return process.env.AGENTUITY_CODER_API_KEY || null;
|
|
76
|
+
return {
|
|
77
|
+
apiKey: null,
|
|
78
|
+
source: 'none',
|
|
79
|
+
};
|
|
93
80
|
}
|
|
94
81
|
/**
|
|
95
82
|
* Build headers object with API key if available.
|
|
96
|
-
* TODO: Remove/Change when we get Agentuity service level auth enabled, this is just temporary
|
|
97
83
|
*/
|
|
98
|
-
export function hubFetchHeaders(extra) {
|
|
84
|
+
export function hubFetchHeaders(extra, apiKey) {
|
|
99
85
|
const headers = { ...extra };
|
|
100
86
|
headers['User-Agent'] = `Agentuity Coder/${getVersion()}`;
|
|
101
|
-
const
|
|
102
|
-
if (
|
|
103
|
-
headers['x-agentuity-auth-api-key'] =
|
|
87
|
+
const resolvedApiKey = apiKey === undefined ? resolveEnvApiKey() : apiKey;
|
|
88
|
+
if (resolvedApiKey)
|
|
89
|
+
headers['x-agentuity-auth-api-key'] = resolvedApiKey;
|
|
104
90
|
return headers;
|
|
105
91
|
}
|
|
92
|
+
export function isHubUnauthorizedStatus(status) {
|
|
93
|
+
return status === 401 || status === 403;
|
|
94
|
+
}
|
|
95
|
+
export async function clearStoredHubApiKeyOnUnauthorized(status, resolvedApiKey, config, clearStoredApiKey = clearStoredCoderApiKey) {
|
|
96
|
+
if (!isHubUnauthorizedStatus(status) || resolvedApiKey.source !== 'stored') {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
await clearStoredApiKey(config);
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
export function getHubUrlSetupGuidance() {
|
|
103
|
+
return (`Set a default Hub URL with:\n` +
|
|
104
|
+
` ${getCommand('coder config set url <url>')}\n\n` +
|
|
105
|
+
`Or pass --hub-url for a one-off override, or use AGENTUITY_CODER_HUB_URL.`);
|
|
106
|
+
}
|
|
107
|
+
export function getHubApiKeySetupGuidance() {
|
|
108
|
+
return (`Set a Hub API key with:\n` +
|
|
109
|
+
` ${getCommand('coder config set apikey <apikey>')}\n\n` +
|
|
110
|
+
`Or use AGENTUITY_CODER_API_KEY as an override.`);
|
|
111
|
+
}
|
|
112
|
+
export function formatMissingHubUrlMessage() {
|
|
113
|
+
return `Could not find a configured Coder Hub URL.\n\n${getHubUrlSetupGuidance()}`;
|
|
114
|
+
}
|
|
115
|
+
export function formatHubUnauthorizedMessage(hubUrl, serverMessage, options) {
|
|
116
|
+
const clearedStoredKey = options?.clearedStoredKey ? 'Stored Hub API key cleared.\n\n' : '';
|
|
117
|
+
return (`Coder Hub at ${hubUrl} requires a valid API key.\n\n` +
|
|
118
|
+
`${clearedStoredKey}${getHubApiKeySetupGuidance()}\n\n` +
|
|
119
|
+
`Server said: ${serverMessage}`);
|
|
120
|
+
}
|
|
121
|
+
export async function getHubResponseErrorMessage(response) {
|
|
122
|
+
const fallback = `${response.status} ${response.statusText}`;
|
|
123
|
+
try {
|
|
124
|
+
const payload = (await response.clone().json());
|
|
125
|
+
if (typeof payload.error === 'string' && payload.error.trim()) {
|
|
126
|
+
return payload.error.trim();
|
|
127
|
+
}
|
|
128
|
+
if (typeof payload.message === 'string' && payload.message.trim()) {
|
|
129
|
+
return payload.message.trim();
|
|
130
|
+
}
|
|
131
|
+
if (typeof payload.details === 'string' && payload.details.trim()) {
|
|
132
|
+
return payload.details.trim();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// Fall back to the response text below.
|
|
137
|
+
}
|
|
138
|
+
try {
|
|
139
|
+
const text = (await response.text()).trim();
|
|
140
|
+
if (text)
|
|
141
|
+
return text;
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// Fall back to the status text below.
|
|
145
|
+
}
|
|
146
|
+
return fallback;
|
|
147
|
+
}
|
|
106
148
|
//# sourceMappingURL=hub-url.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub-url.js","sourceRoot":"","sources":["../../../src/cmd/coder/hub-url.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hub-url.js","sourceRoot":"","sources":["../../../src/cmd/coder/hub-url.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,OAAO,mCAwBlB,CAAC"}
|
package/dist/cmd/coder/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createCommand } from '../../types';
|
|
2
|
+
import { configSubcommand } from './config';
|
|
2
3
|
import { listSubcommand } from './list';
|
|
3
4
|
import { inspectSubcommand } from './inspect';
|
|
4
5
|
import { startSubcommand } from './start';
|
|
@@ -20,8 +21,12 @@ export const command = createCommand({
|
|
|
20
21
|
command: getCommand('coder inspect <session-id>'),
|
|
21
22
|
description: 'Show detailed session information',
|
|
22
23
|
},
|
|
24
|
+
{
|
|
25
|
+
command: getCommand('coder config set url https://hub.example.com'),
|
|
26
|
+
description: 'Set the default Coder Hub URL for this profile',
|
|
27
|
+
},
|
|
23
28
|
],
|
|
24
|
-
subcommands: [startSubcommand, listSubcommand, inspectSubcommand],
|
|
29
|
+
subcommands: [startSubcommand, listSubcommand, inspectSubcommand, configSubcommand],
|
|
25
30
|
optional: { auth: true },
|
|
26
31
|
});
|
|
27
32
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cmd/coder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;IACpC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,uCAAuC;IACpD,IAAI,EAAE,CAAC,eAAe,CAAC;IACvB,QAAQ,EAAE;QACT;YACC,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC;YAClC,WAAW,EAAE,+CAA+C;SAC5D;QACD;YACC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC;YAC/B,WAAW,EAAE,oCAAoC;SACjD;QACD;YACC,OAAO,EAAE,UAAU,CAAC,4BAA4B,CAAC;YACjD,WAAW,EAAE,mCAAmC;SAChD;KACD;IACD,WAAW,EAAE,CAAC,eAAe,EAAE,cAAc,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cmd/coder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;IACpC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,uCAAuC;IACpD,IAAI,EAAE,CAAC,eAAe,CAAC;IACvB,QAAQ,EAAE;QACT;YACC,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC;YAClC,WAAW,EAAE,+CAA+C;SAC5D;QACD;YACC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC;YAC/B,WAAW,EAAE,oCAAoC;SACjD;QACD;YACC,OAAO,EAAE,UAAU,CAAC,4BAA4B,CAAC;YACjD,WAAW,EAAE,mCAAmC;SAChD;QACD;YACC,OAAO,EAAE,UAAU,CAAC,8CAA8C,CAAC;YACnE,WAAW,EAAE,gDAAgD;SAC7D;KACD;IACD,WAAW,EAAE,CAAC,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;IACnF,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;CACxB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/inspect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/inspect.ts"],"names":[],"mappings":"AAwCA,eAAO,MAAM,iBAAiB,sCAsL5B,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { createSubcommand } from '../../types';
|
|
|
3
3
|
import * as tui from '../../tui';
|
|
4
4
|
import { getCommand } from '../../command-prefix';
|
|
5
5
|
import { ErrorCode } from '../../errors';
|
|
6
|
-
import {
|
|
6
|
+
import { clearStoredHubApiKeyOnUnauthorized, formatHubUnauthorizedMessage, formatMissingHubUrlMessage, getHubResponseErrorMessage, getHubUrlSetupGuidance, hubFetchHeaders, isHubUnauthorizedStatus, resolveHubApiKey, resolveHubUrl, } from './hub-url';
|
|
7
7
|
function formatRelativeTime(isoDate) {
|
|
8
8
|
const diffMs = Date.now() - new Date(isoDate).getTime();
|
|
9
9
|
const seconds = Math.floor(diffMs / 1000);
|
|
@@ -54,19 +54,26 @@ export const inspectSubcommand = createSubcommand({
|
|
|
54
54
|
}),
|
|
55
55
|
},
|
|
56
56
|
async handler(ctx) {
|
|
57
|
-
const { args, options, opts } = ctx;
|
|
57
|
+
const { args, options, opts, config } = ctx;
|
|
58
58
|
const sessionId = args.session_id;
|
|
59
|
-
const hubUrl = await resolveHubUrl(opts?.hubUrl);
|
|
59
|
+
const hubUrl = await resolveHubUrl(opts?.hubUrl, config);
|
|
60
60
|
if (!hubUrl) {
|
|
61
|
-
tui.fatal(
|
|
61
|
+
tui.fatal(formatMissingHubUrlMessage(), ErrorCode.NETWORK_ERROR);
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
|
+
const resolvedHubApiKey = await resolveHubApiKey(config);
|
|
64
65
|
let data;
|
|
65
66
|
try {
|
|
66
67
|
const resp = await fetch(`${hubUrl}/api/hub/session/${encodeURIComponent(sessionId)}`, {
|
|
67
|
-
headers: hubFetchHeaders(),
|
|
68
|
+
headers: hubFetchHeaders(undefined, resolvedHubApiKey.apiKey),
|
|
68
69
|
signal: AbortSignal.timeout(10_000),
|
|
69
70
|
});
|
|
71
|
+
if (isHubUnauthorizedStatus(resp.status)) {
|
|
72
|
+
const message = await getHubResponseErrorMessage(resp);
|
|
73
|
+
const clearedStoredKey = await clearStoredHubApiKeyOnUnauthorized(resp.status, resolvedHubApiKey, config);
|
|
74
|
+
tui.fatal(formatHubUnauthorizedMessage(hubUrl, message, { clearedStoredKey }), ErrorCode.API_ERROR);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
70
77
|
if (resp.status === 404) {
|
|
71
78
|
tui.fatal(`Session not found: ${sessionId}`, ErrorCode.RESOURCE_NOT_FOUND);
|
|
72
79
|
return;
|
|
@@ -76,14 +83,15 @@ export const inspectSubcommand = createSubcommand({
|
|
|
76
83
|
return;
|
|
77
84
|
}
|
|
78
85
|
if (!resp.ok) {
|
|
79
|
-
|
|
86
|
+
const message = await getHubResponseErrorMessage(resp);
|
|
87
|
+
tui.fatal(`Hub returned ${resp.status}: ${message}. Is the Coder Hub running at ${hubUrl}?`, ErrorCode.API_ERROR);
|
|
80
88
|
return;
|
|
81
89
|
}
|
|
82
90
|
data = (await resp.json());
|
|
83
91
|
}
|
|
84
92
|
catch (err) {
|
|
85
93
|
const msg = err instanceof Error ? err.message : String(err);
|
|
86
|
-
tui.fatal(`Could not connect to Coder Hub at ${hubUrl}: ${msg}\n\
|
|
94
|
+
tui.fatal(`Could not connect to Coder Hub at ${hubUrl}: ${msg}\n\n${getHubUrlSetupGuidance()}`, ErrorCode.NETWORK_ERROR);
|
|
87
95
|
return;
|
|
88
96
|
}
|
|
89
97
|
if (options.json) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/cmd/coder/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,GAAG,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/cmd/coder/inspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/list.ts"],"names":[],"mappings":"AA2CA,eAAO,MAAM,cAAc,sCA0HzB,CAAC"}
|
package/dist/cmd/coder/list.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createSubcommand } from '../../types';
|
|
|
3
3
|
import * as tui from '../../tui';
|
|
4
4
|
import { getCommand } from '../../command-prefix';
|
|
5
5
|
import { ErrorCode } from '../../errors';
|
|
6
|
-
import {
|
|
6
|
+
import { clearStoredHubApiKeyOnUnauthorized, formatHubUnauthorizedMessage, formatMissingHubUrlMessage, getHubResponseErrorMessage, getHubUrlSetupGuidance, hubFetchHeaders, isHubUnauthorizedStatus, resolveHubApiKey, resolveHubUrl, } from './hub-url';
|
|
7
7
|
function formatRelativeTime(isoDate) {
|
|
8
8
|
const diffMs = Date.now() - new Date(isoDate).getTime();
|
|
9
9
|
const seconds = Math.floor(diffMs / 1000);
|
|
@@ -52,27 +52,34 @@ export const listSubcommand = createSubcommand({
|
|
|
52
52
|
response: SessionListResponseSchema,
|
|
53
53
|
},
|
|
54
54
|
async handler(ctx) {
|
|
55
|
-
const { options, opts } = ctx;
|
|
56
|
-
const hubUrl = await resolveHubUrl(opts?.hubUrl);
|
|
55
|
+
const { options, opts, config } = ctx;
|
|
56
|
+
const hubUrl = await resolveHubUrl(opts?.hubUrl, config);
|
|
57
57
|
if (!hubUrl) {
|
|
58
|
-
tui.fatal(
|
|
58
|
+
tui.fatal(formatMissingHubUrlMessage(), ErrorCode.NETWORK_ERROR);
|
|
59
59
|
return [];
|
|
60
60
|
}
|
|
61
|
+
const resolvedHubApiKey = await resolveHubApiKey(config);
|
|
61
62
|
let data;
|
|
62
63
|
try {
|
|
63
64
|
const resp = await fetch(`${hubUrl}/api/hub/sessions`, {
|
|
64
|
-
headers: hubFetchHeaders(),
|
|
65
|
+
headers: hubFetchHeaders(undefined, resolvedHubApiKey.apiKey),
|
|
65
66
|
signal: AbortSignal.timeout(10_000),
|
|
66
67
|
});
|
|
67
68
|
if (!resp.ok) {
|
|
68
|
-
|
|
69
|
+
const message = await getHubResponseErrorMessage(resp);
|
|
70
|
+
if (isHubUnauthorizedStatus(resp.status)) {
|
|
71
|
+
const clearedStoredKey = await clearStoredHubApiKeyOnUnauthorized(resp.status, resolvedHubApiKey, config);
|
|
72
|
+
tui.fatal(formatHubUnauthorizedMessage(hubUrl, message, { clearedStoredKey }), ErrorCode.API_ERROR);
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
tui.fatal(`Hub returned ${resp.status}: ${message}. Is the Coder Hub running at ${hubUrl}?`, ErrorCode.API_ERROR);
|
|
69
76
|
return [];
|
|
70
77
|
}
|
|
71
78
|
data = (await resp.json());
|
|
72
79
|
}
|
|
73
80
|
catch (err) {
|
|
74
81
|
const msg = err instanceof Error ? err.message : String(err);
|
|
75
|
-
tui.fatal(`Could not connect to Coder Hub at ${hubUrl}: ${msg}\n\
|
|
82
|
+
tui.fatal(`Could not connect to Coder Hub at ${hubUrl}: ${msg}\n\n${getHubUrlSetupGuidance()}`, ErrorCode.NETWORK_ERROR);
|
|
76
83
|
return [];
|
|
77
84
|
}
|
|
78
85
|
const sessions = data.sessions.websocket;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cmd/coder/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,GAAG,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cmd/coder/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/start.ts"],"names":[],"mappings":"AA6EA,eAAO,MAAM,eAAe,sCA2X1B,CAAC"}
|