@agentworkforce/deploy 3.0.7 → 3.0.9
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/cloud-url.d.ts +54 -0
- package/dist/cloud-url.d.ts.map +1 -0
- package/dist/cloud-url.js +88 -0
- package/dist/cloud-url.js.map +1 -0
- package/dist/cloud-url.test.d.ts +2 -0
- package/dist/cloud-url.test.d.ts.map +1 -0
- package/dist/cloud-url.test.js +99 -0
- package/dist/cloud-url.test.js.map +1 -0
- package/dist/connect.d.ts +17 -2
- package/dist/connect.d.ts.map +1 -1
- package/dist/connect.js +51 -14
- package/dist/connect.js.map +1 -1
- package/dist/connect.test.js +160 -4
- package/dist/connect.test.js.map +1 -1
- package/dist/deploy.d.ts +13 -1
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +57 -12
- package/dist/deploy.js.map +1 -1
- package/dist/deploy.test.js +129 -0
- package/dist/deploy.test.js.map +1 -1
- package/dist/error-format.d.ts +17 -0
- package/dist/error-format.d.ts.map +1 -0
- package/dist/error-format.js +36 -0
- package/dist/error-format.js.map +1 -0
- package/dist/error-format.test.d.ts +2 -0
- package/dist/error-format.test.d.ts.map +1 -0
- package/dist/error-format.test.js +51 -0
- package/dist/error-format.test.js.map +1 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/login.d.ts.map +1 -1
- package/dist/login.js +28 -2
- package/dist/login.js.map +1 -1
- package/dist/modes/cloud.d.ts.map +1 -1
- package/dist/modes/cloud.js +41 -20
- package/dist/modes/cloud.js.map +1 -1
- package/dist/modes/cloud.test.js +107 -6
- package/dist/modes/cloud.test.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { ActiveWorkspacePointer } from './login.js';
|
|
2
|
+
/**
|
|
3
|
+
* Canonicalize the workforce cloud URL to the public host the user logged
|
|
4
|
+
* into, regardless of which edge / origin-bypass URL the auth response
|
|
5
|
+
* happened to come from.
|
|
6
|
+
*
|
|
7
|
+
* Why this exists: cloud's auth-result handler currently echoes
|
|
8
|
+
* `request.url` back as `apiUrl`, so when the auth request happens to
|
|
9
|
+
* route through the SST/Cloudflare origin-bypass (`origin.agentrelay.cloud`)
|
|
10
|
+
* the CLI ends up persisting that hostname and sending every subsequent
|
|
11
|
+
* API call to it. Session cookies and Bearer tokens don't validate
|
|
12
|
+
* cross-subdomain, so every call 401s.
|
|
13
|
+
*
|
|
14
|
+
* This is a CLI-side mitigation; the proper structural fix is cloud-side
|
|
15
|
+
* (the handler should emit a configured public URL, never `request.url`).
|
|
16
|
+
*
|
|
17
|
+
* Rules:
|
|
18
|
+
* - Map known-bypass hostnames (`origin.agentrelay.cloud`,
|
|
19
|
+
* `*.agentrelay.cloud`) → canonical `https://agentrelay.com/cloud`.
|
|
20
|
+
* - Map the apex `agentrelay.com` (no `/cloud` basePath) → canonical
|
|
21
|
+
* `https://agentrelay.com/cloud` so callers that hardcoded the apex
|
|
22
|
+
* don't land on the Next.js marketing 404 page.
|
|
23
|
+
* - Leave other hostnames untouched (dev `localhost:*`, custom tenants,
|
|
24
|
+
* etc.) — only the cloud-bypass family is remapped.
|
|
25
|
+
* - Strip a trailing slash so equality comparisons in the rest of the
|
|
26
|
+
* deploy code stay stable.
|
|
27
|
+
*/
|
|
28
|
+
export declare function canonicalizeCloudUrl(input: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Single source of truth for "which cloud URL should this CLI invocation
|
|
31
|
+
* talk to?" Resolution order, top wins:
|
|
32
|
+
*
|
|
33
|
+
* 1. Explicit `--cloud-url` flag.
|
|
34
|
+
* 2. `WORKFORCE_DEPLOY_CLOUD_URL` (preferred env override).
|
|
35
|
+
* 3. `WORKFORCE_CLOUD_URL` (legacy env override).
|
|
36
|
+
* 4. `cloudUrl` recorded in `~/.agentworkforce/active.json` by
|
|
37
|
+
* `agentworkforce login`.
|
|
38
|
+
* 5. `defaultApiUrl()` from `@agent-relay/cloud` (the public canonical
|
|
39
|
+
* URL — currently `https://agentrelay.com/cloud`).
|
|
40
|
+
*
|
|
41
|
+
* The result is always run through {@link canonicalizeCloudUrl} so
|
|
42
|
+
* downstream consumers never see an origin-bypass hostname or the
|
|
43
|
+
* `/cloud`-less apex.
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolveCloudUrl(context?: CloudUrlContext): string;
|
|
46
|
+
export interface CloudUrlContext {
|
|
47
|
+
/** Explicit `--cloud-url` flag value, if any. */
|
|
48
|
+
flag?: string | undefined;
|
|
49
|
+
/** Process env override; defaults to `process.env`. Pass `{}` to ignore env. */
|
|
50
|
+
env?: NodeJS.ProcessEnv;
|
|
51
|
+
/** Active workspace pointer read from `~/.agentworkforce/active.json`. */
|
|
52
|
+
active?: Pick<ActiveWorkspacePointer, 'cloudUrl'> | null | undefined;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=cloud-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-url.d.ts","sourceRoot":"","sources":["../src/cloud-url.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2B1D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,eAAoB,GAAG,MAAM,CAUrE;AAED,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACtE"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { defaultApiUrl } from '@agent-relay/cloud';
|
|
2
|
+
/**
|
|
3
|
+
* Canonicalize the workforce cloud URL to the public host the user logged
|
|
4
|
+
* into, regardless of which edge / origin-bypass URL the auth response
|
|
5
|
+
* happened to come from.
|
|
6
|
+
*
|
|
7
|
+
* Why this exists: cloud's auth-result handler currently echoes
|
|
8
|
+
* `request.url` back as `apiUrl`, so when the auth request happens to
|
|
9
|
+
* route through the SST/Cloudflare origin-bypass (`origin.agentrelay.cloud`)
|
|
10
|
+
* the CLI ends up persisting that hostname and sending every subsequent
|
|
11
|
+
* API call to it. Session cookies and Bearer tokens don't validate
|
|
12
|
+
* cross-subdomain, so every call 401s.
|
|
13
|
+
*
|
|
14
|
+
* This is a CLI-side mitigation; the proper structural fix is cloud-side
|
|
15
|
+
* (the handler should emit a configured public URL, never `request.url`).
|
|
16
|
+
*
|
|
17
|
+
* Rules:
|
|
18
|
+
* - Map known-bypass hostnames (`origin.agentrelay.cloud`,
|
|
19
|
+
* `*.agentrelay.cloud`) → canonical `https://agentrelay.com/cloud`.
|
|
20
|
+
* - Map the apex `agentrelay.com` (no `/cloud` basePath) → canonical
|
|
21
|
+
* `https://agentrelay.com/cloud` so callers that hardcoded the apex
|
|
22
|
+
* don't land on the Next.js marketing 404 page.
|
|
23
|
+
* - Leave other hostnames untouched (dev `localhost:*`, custom tenants,
|
|
24
|
+
* etc.) — only the cloud-bypass family is remapped.
|
|
25
|
+
* - Strip a trailing slash so equality comparisons in the rest of the
|
|
26
|
+
* deploy code stay stable.
|
|
27
|
+
*/
|
|
28
|
+
export function canonicalizeCloudUrl(input) {
|
|
29
|
+
const trimmed = input.trim();
|
|
30
|
+
if (!trimmed)
|
|
31
|
+
return trimmed;
|
|
32
|
+
let url;
|
|
33
|
+
try {
|
|
34
|
+
url = new URL(trimmed);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// If it doesn't parse as a URL we don't know how to remap it; return
|
|
38
|
+
// the original (trimmed) string so the caller can choose to error
|
|
39
|
+
// downstream.
|
|
40
|
+
return trimmed;
|
|
41
|
+
}
|
|
42
|
+
const host = url.hostname.toLowerCase();
|
|
43
|
+
if (host === 'agentrelay.cloud' || host.endsWith('.agentrelay.cloud')) {
|
|
44
|
+
return 'https://agentrelay.com/cloud';
|
|
45
|
+
}
|
|
46
|
+
if (host === 'agentrelay.com'
|
|
47
|
+
&& (url.pathname === '' || url.pathname === '/')) {
|
|
48
|
+
// Apex without the /cloud basePath would route to the marketing site
|
|
49
|
+
// and 404 every API call. Public docs/login flows always include the
|
|
50
|
+
// /cloud prefix — treat the bare apex as a user mistake and fix it
|
|
51
|
+
// before it produces a wall of HTML in error messages.
|
|
52
|
+
return 'https://agentrelay.com/cloud';
|
|
53
|
+
}
|
|
54
|
+
return stripTrailingSlash(url.toString());
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Single source of truth for "which cloud URL should this CLI invocation
|
|
58
|
+
* talk to?" Resolution order, top wins:
|
|
59
|
+
*
|
|
60
|
+
* 1. Explicit `--cloud-url` flag.
|
|
61
|
+
* 2. `WORKFORCE_DEPLOY_CLOUD_URL` (preferred env override).
|
|
62
|
+
* 3. `WORKFORCE_CLOUD_URL` (legacy env override).
|
|
63
|
+
* 4. `cloudUrl` recorded in `~/.agentworkforce/active.json` by
|
|
64
|
+
* `agentworkforce login`.
|
|
65
|
+
* 5. `defaultApiUrl()` from `@agent-relay/cloud` (the public canonical
|
|
66
|
+
* URL — currently `https://agentrelay.com/cloud`).
|
|
67
|
+
*
|
|
68
|
+
* The result is always run through {@link canonicalizeCloudUrl} so
|
|
69
|
+
* downstream consumers never see an origin-bypass hostname or the
|
|
70
|
+
* `/cloud`-less apex.
|
|
71
|
+
*/
|
|
72
|
+
export function resolveCloudUrl(context = {}) {
|
|
73
|
+
const env = context.env ?? process.env;
|
|
74
|
+
const raw = firstTruthy(context.flag, env.WORKFORCE_DEPLOY_CLOUD_URL, env.WORKFORCE_CLOUD_URL, context.active?.cloudUrl, defaultApiUrl());
|
|
75
|
+
return canonicalizeCloudUrl(raw);
|
|
76
|
+
}
|
|
77
|
+
function firstTruthy(...candidates) {
|
|
78
|
+
for (const candidate of candidates) {
|
|
79
|
+
const trimmed = candidate?.trim();
|
|
80
|
+
if (trimmed)
|
|
81
|
+
return trimmed;
|
|
82
|
+
}
|
|
83
|
+
return '';
|
|
84
|
+
}
|
|
85
|
+
function stripTrailingSlash(value) {
|
|
86
|
+
return value.replace(/\/+$/, '');
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=cloud-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-url.js","sourceRoot":"","sources":["../src/cloud-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IAC7B,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;QACrE,kEAAkE;QAClE,cAAc;QACd,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,IAAI,KAAK,kBAAkB,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACtE,OAAO,8BAA8B,CAAC;IACxC,CAAC;IACD,IACE,IAAI,KAAK,gBAAgB;WACtB,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,EAChD,CAAC;QACD,qEAAqE;QACrE,qEAAqE;QACrE,mEAAmE;QACnE,uDAAuD;QACvD,OAAO,8BAA8B,CAAC;IACxC,CAAC;IACD,OAAO,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,UAA2B,EAAE;IAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,GAAG,GAAG,WAAW,CACrB,OAAO,CAAC,IAAI,EACZ,GAAG,CAAC,0BAA0B,EAC9B,GAAG,CAAC,mBAAmB,EACvB,OAAO,CAAC,MAAM,EAAE,QAAQ,EACxB,aAAa,EAAE,CAChB,CAAC;IACF,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAWD,SAAS,WAAW,CAAC,GAAG,UAAqC;IAC3D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;QAClC,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-url.test.d.ts","sourceRoot":"","sources":["../src/cloud-url.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { canonicalizeCloudUrl, resolveCloudUrl } from './cloud-url.js';
|
|
4
|
+
test('canonicalizeCloudUrl: origin.agentrelay.cloud bare host → public canonical', () => {
|
|
5
|
+
assert.equal(canonicalizeCloudUrl('https://origin.agentrelay.cloud'), 'https://agentrelay.com/cloud');
|
|
6
|
+
});
|
|
7
|
+
test('canonicalizeCloudUrl: origin.agentrelay.cloud/cloud → public canonical', () => {
|
|
8
|
+
assert.equal(canonicalizeCloudUrl('https://origin.agentrelay.cloud/cloud'), 'https://agentrelay.com/cloud');
|
|
9
|
+
});
|
|
10
|
+
test('canonicalizeCloudUrl: staging.agentrelay.cloud → public canonical', () => {
|
|
11
|
+
assert.equal(canonicalizeCloudUrl('https://staging.agentrelay.cloud'), 'https://agentrelay.com/cloud');
|
|
12
|
+
});
|
|
13
|
+
test('canonicalizeCloudUrl: bare agentrelay.cloud/cloud → public canonical', () => {
|
|
14
|
+
assert.equal(canonicalizeCloudUrl('https://agentrelay.cloud/cloud'), 'https://agentrelay.com/cloud');
|
|
15
|
+
});
|
|
16
|
+
test('canonicalizeCloudUrl: public canonical is idempotent', () => {
|
|
17
|
+
assert.equal(canonicalizeCloudUrl('https://agentrelay.com/cloud'), 'https://agentrelay.com/cloud');
|
|
18
|
+
});
|
|
19
|
+
test('canonicalizeCloudUrl: trailing slash is stripped on canonical input', () => {
|
|
20
|
+
assert.equal(canonicalizeCloudUrl('https://agentrelay.com/cloud/'), 'https://agentrelay.com/cloud');
|
|
21
|
+
});
|
|
22
|
+
test('canonicalizeCloudUrl: localhost dev URLs are left untouched', () => {
|
|
23
|
+
assert.equal(canonicalizeCloudUrl('http://localhost:3000'), 'http://localhost:3000');
|
|
24
|
+
});
|
|
25
|
+
test('canonicalizeCloudUrl: unrelated tenant URLs are left untouched', () => {
|
|
26
|
+
assert.equal(canonicalizeCloudUrl('https://some-other-tenant.example.com'), 'https://some-other-tenant.example.com');
|
|
27
|
+
});
|
|
28
|
+
test('canonicalizeCloudUrl: empty input returns empty string', () => {
|
|
29
|
+
assert.equal(canonicalizeCloudUrl(''), '');
|
|
30
|
+
});
|
|
31
|
+
test('canonicalizeCloudUrl: unparseable input is returned untouched (trimmed)', () => {
|
|
32
|
+
assert.equal(canonicalizeCloudUrl(' not-a-url '), 'not-a-url');
|
|
33
|
+
});
|
|
34
|
+
test('canonicalizeCloudUrl: apex agentrelay.com (no /cloud) → public canonical', () => {
|
|
35
|
+
// Previously the CLI's DEFAULT_CLOUD_URL was `https://agentrelay.com`,
|
|
36
|
+
// which sent every API call to the Next.js marketing site and 404'd.
|
|
37
|
+
// canonicalizeCloudUrl normalizes that mistake before it ever leaves
|
|
38
|
+
// the CLI.
|
|
39
|
+
assert.equal(canonicalizeCloudUrl('https://agentrelay.com'), 'https://agentrelay.com/cloud');
|
|
40
|
+
assert.equal(canonicalizeCloudUrl('https://agentrelay.com/'), 'https://agentrelay.com/cloud');
|
|
41
|
+
});
|
|
42
|
+
test('canonicalizeCloudUrl: apex with a non-root path is left untouched', () => {
|
|
43
|
+
// Only the bare apex is remapped — paths like /docs are valid surface area.
|
|
44
|
+
assert.equal(canonicalizeCloudUrl('https://agentrelay.com/docs/runtimes'), 'https://agentrelay.com/docs/runtimes');
|
|
45
|
+
});
|
|
46
|
+
test('resolveCloudUrl: flag wins over env wins over active.json wins over default', () => {
|
|
47
|
+
// Flag wins.
|
|
48
|
+
assert.equal(resolveCloudUrl({
|
|
49
|
+
flag: 'https://flag.example.test',
|
|
50
|
+
env: {
|
|
51
|
+
WORKFORCE_DEPLOY_CLOUD_URL: 'https://env.example.test',
|
|
52
|
+
WORKFORCE_CLOUD_URL: 'https://legacy-env.example.test'
|
|
53
|
+
},
|
|
54
|
+
active: { cloudUrl: 'https://active.example.test' }
|
|
55
|
+
}), 'https://flag.example.test');
|
|
56
|
+
// No flag → preferred env wins.
|
|
57
|
+
assert.equal(resolveCloudUrl({
|
|
58
|
+
env: { WORKFORCE_DEPLOY_CLOUD_URL: 'https://env.example.test' },
|
|
59
|
+
active: { cloudUrl: 'https://active.example.test' }
|
|
60
|
+
}), 'https://env.example.test');
|
|
61
|
+
// Preferred env empty → legacy env wins.
|
|
62
|
+
assert.equal(resolveCloudUrl({
|
|
63
|
+
env: {
|
|
64
|
+
WORKFORCE_DEPLOY_CLOUD_URL: '',
|
|
65
|
+
WORKFORCE_CLOUD_URL: 'https://legacy-env.example.test'
|
|
66
|
+
},
|
|
67
|
+
active: { cloudUrl: 'https://active.example.test' }
|
|
68
|
+
}), 'https://legacy-env.example.test');
|
|
69
|
+
// No env → active.json wins.
|
|
70
|
+
assert.equal(resolveCloudUrl({
|
|
71
|
+
env: {},
|
|
72
|
+
active: { cloudUrl: 'https://active.example.test' }
|
|
73
|
+
}), 'https://active.example.test');
|
|
74
|
+
});
|
|
75
|
+
test('resolveCloudUrl: nothing set → canonical default', () => {
|
|
76
|
+
assert.equal(resolveCloudUrl({ env: {}, active: null }), 'https://agentrelay.com/cloud');
|
|
77
|
+
});
|
|
78
|
+
test('resolveCloudUrl: active.json with bypass hostname is canonicalized', () => {
|
|
79
|
+
// The active.json file may still carry an origin.* hostname written by
|
|
80
|
+
// an older login flow. resolveCloudUrl repairs that on read.
|
|
81
|
+
assert.equal(resolveCloudUrl({
|
|
82
|
+
env: {},
|
|
83
|
+
active: { cloudUrl: 'https://origin.agentrelay.cloud/cloud' }
|
|
84
|
+
}), 'https://agentrelay.com/cloud');
|
|
85
|
+
});
|
|
86
|
+
test('resolveCloudUrl: active.json with bare apex is canonicalized', () => {
|
|
87
|
+
assert.equal(resolveCloudUrl({
|
|
88
|
+
env: {},
|
|
89
|
+
active: { cloudUrl: 'https://agentrelay.com' }
|
|
90
|
+
}), 'https://agentrelay.com/cloud');
|
|
91
|
+
});
|
|
92
|
+
test('resolveCloudUrl: whitespace-only candidates are skipped', () => {
|
|
93
|
+
assert.equal(resolveCloudUrl({
|
|
94
|
+
flag: ' ',
|
|
95
|
+
env: { WORKFORCE_DEPLOY_CLOUD_URL: ' ', WORKFORCE_CLOUD_URL: '' },
|
|
96
|
+
active: { cloudUrl: '\t\n' }
|
|
97
|
+
}), 'https://agentrelay.com/cloud');
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=cloud-url.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-url.test.js","sourceRoot":"","sources":["../src/cloud-url.test.ts"],"names":[],"mappings":"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"}
|
package/dist/connect.d.ts
CHANGED
|
@@ -41,6 +41,18 @@ export interface ProviderSubscriptionResolver {
|
|
|
41
41
|
provider: string;
|
|
42
42
|
}>;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Called after a cloud integration status check gets a 401. The CLI uses
|
|
46
|
+
* this to run the established browser login flow, refresh the active bearer
|
|
47
|
+
* token, and let the status check retry once.
|
|
48
|
+
*/
|
|
49
|
+
export interface IntegrationAuthRecoveryResolver {
|
|
50
|
+
recover(args: {
|
|
51
|
+
workspace: string;
|
|
52
|
+
provider: string;
|
|
53
|
+
reason: string;
|
|
54
|
+
}): Promise<boolean>;
|
|
55
|
+
}
|
|
44
56
|
/**
|
|
45
57
|
* Resolver backed by env vars. Used as the default when no higher-level
|
|
46
58
|
* implementation is plugged in. `isConnected` returns true exactly when
|
|
@@ -52,7 +64,7 @@ export declare function envIntegrationResolver(): IntegrationConnectResolver;
|
|
|
52
64
|
export declare function relayfileIntegrationResolver(opts: {
|
|
53
65
|
apiUrl: string;
|
|
54
66
|
workspaceId: string;
|
|
55
|
-
workspaceToken: string;
|
|
67
|
+
workspaceToken: string | (() => string | Promise<string>);
|
|
56
68
|
io?: Pick<DeployIO, 'info' | 'warn'>;
|
|
57
69
|
pollIntervalMs?: number;
|
|
58
70
|
timeoutMs?: number;
|
|
@@ -67,6 +79,8 @@ export interface ConnectAllInput {
|
|
|
67
79
|
noPrompt?: boolean;
|
|
68
80
|
io: DeployIO;
|
|
69
81
|
integrations: IntegrationConnectResolver;
|
|
82
|
+
/** Optional cloud-login recovery for interactive 401s. */
|
|
83
|
+
authRecovery?: IntegrationAuthRecoveryResolver;
|
|
70
84
|
/** Required only when persona.useSubscription is true. */
|
|
71
85
|
subscription?: ProviderSubscriptionResolver;
|
|
72
86
|
}
|
|
@@ -84,7 +98,8 @@ export interface ConnectAllResult {
|
|
|
84
98
|
* Behavior summary:
|
|
85
99
|
* - integrations: {} or undefined → returns immediately, no prompts
|
|
86
100
|
* - already-connected provider → no prompt; emits `already-connected`
|
|
87
|
-
* -
|
|
101
|
+
* - 401 while checking status + authRecovery → prompts login and retries once
|
|
102
|
+
* - other auth failure while checking status → fails without integration prompts
|
|
88
103
|
* - not connected + noPrompt=true → fails immediately without prompting
|
|
89
104
|
* - not connected + noConnect=true → fails the deploy with a clear message
|
|
90
105
|
* - not connected + noConnect=false → prompts; on yes runs `connect`,
|
package/dist/connect.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAkBtE;;;;;;;;;GASG;AACH,MAAM,WAAW,0BAA0B;IACzC,uDAAuD;IACvD,WAAW,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E,2EAA2E;IAC3E,OAAO,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3F;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,WAAW,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClF,OAAO,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5F;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,0BAA0B,CAcnE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAkBtE;;;;;;;;;GASG;AACH,MAAM,WAAW,0BAA0B;IACzC,uDAAuD;IACvD,WAAW,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E,2EAA2E;IAC3E,OAAO,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3F;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,WAAW,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClF,OAAO,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5F;AAED;;;;GAIG;AACH,MAAM,WAAW,+BAA+B;IAC9C,OAAO,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1F;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,0BAA0B,CAcnE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,GAAG,0BAA0B,CAiE7B;AAUD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,EAAE,QAAQ,CAAC;IACb,YAAY,EAAE,0BAA0B,CAAC;IACzC,0DAA0D;IAC1D,YAAY,CAAC,EAAE,+BAA+B,CAAC;IAC/C,0DAA0D;IAC1D,YAAY,CAAC,EAAE,4BAA4B,CAAC;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,yBAAyB,EAAE,CAAC;IACtC,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+I3F"}
|
package/dist/connect.js
CHANGED
|
@@ -43,12 +43,14 @@ export function relayfileIntegrationResolver(opts) {
|
|
|
43
43
|
return {
|
|
44
44
|
async isConnected({ workspace, provider }) {
|
|
45
45
|
const workspaceId = workspace || opts.workspaceId;
|
|
46
|
-
const
|
|
46
|
+
const token = await resolveWorkspaceToken(opts.workspaceToken);
|
|
47
|
+
const body = await requestJson(fetchImpl, `${apiUrl}/api/v1/workspaces/${encodeURIComponent(workspaceId)}/integrations`, token);
|
|
47
48
|
return listHasConnectedProvider(body, provider);
|
|
48
49
|
},
|
|
49
50
|
async connect({ workspace, provider }) {
|
|
50
51
|
const workspaceId = workspace || opts.workspaceId;
|
|
51
|
-
const
|
|
52
|
+
const token = await resolveWorkspaceToken(opts.workspaceToken);
|
|
53
|
+
const session = await requestJson(fetchImpl, `${apiUrl}/api/v1/workspaces/${encodeURIComponent(workspaceId)}/integrations/connect-session`, token, {
|
|
52
54
|
method: 'POST',
|
|
53
55
|
body: JSON.stringify({ allowedIntegrations: [provider] })
|
|
54
56
|
});
|
|
@@ -72,7 +74,7 @@ export function relayfileIntegrationResolver(opts) {
|
|
|
72
74
|
const statusUrl = new URL(`${apiUrl}/api/v1/workspaces/${encodeURIComponent(workspaceId)}/integrations/${encodeURIComponent(provider)}/status`);
|
|
73
75
|
if (sessionId)
|
|
74
76
|
statusUrl.searchParams.set('connectionId', sessionId);
|
|
75
|
-
const status = await requestJson(fetchImpl, statusUrl.toString(), opts.workspaceToken);
|
|
77
|
+
const status = await requestJson(fetchImpl, statusUrl.toString(), await resolveWorkspaceToken(opts.workspaceToken));
|
|
76
78
|
if (isConnectedStatus(status)) {
|
|
77
79
|
const connectionId = readString(status, 'connectionId')
|
|
78
80
|
?? readString(status, 'currentConnectionId')
|
|
@@ -100,7 +102,8 @@ function providerHasEnvCredentials(provider) {
|
|
|
100
102
|
* Behavior summary:
|
|
101
103
|
* - integrations: {} or undefined → returns immediately, no prompts
|
|
102
104
|
* - already-connected provider → no prompt; emits `already-connected`
|
|
103
|
-
* -
|
|
105
|
+
* - 401 while checking status + authRecovery → prompts login and retries once
|
|
106
|
+
* - other auth failure while checking status → fails without integration prompts
|
|
104
107
|
* - not connected + noPrompt=true → fails immediately without prompting
|
|
105
108
|
* - not connected + noConnect=true → fails the deploy with a clear message
|
|
106
109
|
* - not connected + noConnect=false → prompts; on yes runs `connect`,
|
|
@@ -112,20 +115,38 @@ export async function connectIntegrations(input) {
|
|
|
112
115
|
const outcomes = [];
|
|
113
116
|
for (const provider of Object.keys(integrations)) {
|
|
114
117
|
let statusCheckFailure;
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
.catch((err) => {
|
|
118
|
-
statusCheckFailure = err instanceof Error ? err.message : String(err);
|
|
119
|
-
input.io.warn(`failed to check connection status for ${provider}: ${statusCheckFailure}`);
|
|
120
|
-
return false;
|
|
118
|
+
let connected = await checkProviderConnected(input, provider, (message) => {
|
|
119
|
+
statusCheckFailure = message;
|
|
121
120
|
});
|
|
122
121
|
if (connected) {
|
|
123
122
|
input.io.info(`integrations.${provider}: already connected`);
|
|
124
123
|
outcomes.push({ provider, status: 'already-connected' });
|
|
125
124
|
continue;
|
|
126
125
|
}
|
|
127
|
-
if (statusCheckFailure
|
|
128
|
-
|
|
126
|
+
if (statusCheckFailure
|
|
127
|
+
&& isIntegrationUnauthorizedFailure(statusCheckFailure)
|
|
128
|
+
&& !input.noPrompt
|
|
129
|
+
&& input.authRecovery) {
|
|
130
|
+
const recovered = await input.authRecovery
|
|
131
|
+
.recover({ workspace: input.workspace, provider, reason: statusCheckFailure })
|
|
132
|
+
.catch((err) => {
|
|
133
|
+
input.io.error(`integrations.${provider}: login failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
134
|
+
return false;
|
|
135
|
+
});
|
|
136
|
+
if (recovered) {
|
|
137
|
+
statusCheckFailure = undefined;
|
|
138
|
+
connected = await checkProviderConnected(input, provider, (message) => {
|
|
139
|
+
statusCheckFailure = message;
|
|
140
|
+
});
|
|
141
|
+
if (connected) {
|
|
142
|
+
input.io.info(`integrations.${provider}: already connected`);
|
|
143
|
+
outcomes.push({ provider, status: 'already-connected' });
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (statusCheckFailure) {
|
|
149
|
+
input.io.error(`integrations.${provider}: ${isIntegrationAuthFailure(statusCheckFailure) ? 'auth failed' : 'failed'} while checking connection status`);
|
|
129
150
|
outcomes.push({
|
|
130
151
|
provider,
|
|
131
152
|
status: 'failed',
|
|
@@ -202,6 +223,16 @@ export async function connectIntegrations(input) {
|
|
|
202
223
|
...(subscriptionProvider ? { subscriptionProvider } : {})
|
|
203
224
|
};
|
|
204
225
|
}
|
|
226
|
+
async function checkProviderConnected(input, provider, onFailure) {
|
|
227
|
+
return await input.integrations
|
|
228
|
+
.isConnected({ workspace: input.workspace, provider })
|
|
229
|
+
.catch((err) => {
|
|
230
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
231
|
+
onFailure(message);
|
|
232
|
+
input.io.warn(`failed to check connection status for ${provider}: ${message}`);
|
|
233
|
+
return false;
|
|
234
|
+
});
|
|
235
|
+
}
|
|
205
236
|
async function requestJson(fetchImpl, url, token, init = {}) {
|
|
206
237
|
const res = await fetchImpl(url, {
|
|
207
238
|
...init,
|
|
@@ -212,10 +243,10 @@ async function requestJson(fetchImpl, url, token, init = {}) {
|
|
|
212
243
|
}
|
|
213
244
|
});
|
|
214
245
|
if (res.status === 401) {
|
|
215
|
-
throw new Error('cloud integration request failed: unauthorized.
|
|
246
|
+
throw new Error('cloud integration request failed: unauthorized. Your active workspace session is invalid or expired. Run `agentworkforce login --workspace <id-or-slug>` to refresh, then retry.');
|
|
216
247
|
}
|
|
217
248
|
if (res.status === 403) {
|
|
218
|
-
throw new Error('cloud integration request failed: forbidden. The active account is not authorized for this workspace
|
|
249
|
+
throw new Error('cloud integration request failed: forbidden. The active account is not authorized for this workspace. Run `agentworkforce login --workspace <id-or-slug>` against an account with access, then retry.');
|
|
219
250
|
}
|
|
220
251
|
if (!res.ok) {
|
|
221
252
|
throw new Error(`cloud integration request failed: ${res.status} ${await res.text().catch(() => '')}`.trim());
|
|
@@ -225,6 +256,12 @@ async function requestJson(fetchImpl, url, token, init = {}) {
|
|
|
225
256
|
function isIntegrationAuthFailure(message) {
|
|
226
257
|
return /cloud integration request failed: (unauthorized|forbidden)\b/i.test(message);
|
|
227
258
|
}
|
|
259
|
+
function isIntegrationUnauthorizedFailure(message) {
|
|
260
|
+
return /cloud integration request failed: unauthorized\b/i.test(message);
|
|
261
|
+
}
|
|
262
|
+
async function resolveWorkspaceToken(token) {
|
|
263
|
+
return typeof token === 'function' ? await token() : token;
|
|
264
|
+
}
|
|
228
265
|
function listHasConnectedProvider(body, provider) {
|
|
229
266
|
const candidates = Array.isArray(body)
|
|
230
267
|
? body
|
package/dist/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
|