@open-everywhere/adapters 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +0 -1
  2. package/agent/aws/config.ts +13 -16
  3. package/agent/aws/register.ts +2 -2
  4. package/agent/aws/sso.ts +2 -2
  5. package/agent/browser/register.ts +12 -1
  6. package/agent/directory/config.ts +22 -47
  7. package/agent/model/gateway.ts +26 -1
  8. package/agent/oe-oauth/config.ts +24 -45
  9. package/agent/oe-oauth/register.ts +14 -12
  10. package/agent/oe-oauth/token-vault.ts +19 -9
  11. package/agent/oe-oauth/user-auth-flow.ts +2 -3
  12. package/agent/register-defaults.ts +25 -19
  13. package/agent/sandbox/backend-stop.ts +10 -10
  14. package/dist/agent/aws/config.d.ts +5 -3
  15. package/dist/agent/aws/config.d.ts.map +1 -1
  16. package/dist/agent/aws/config.js +12 -16
  17. package/dist/agent/aws/config.js.map +1 -1
  18. package/dist/agent/aws/register.js +2 -2
  19. package/dist/agent/aws/register.js.map +1 -1
  20. package/dist/agent/aws/sso.js +2 -2
  21. package/dist/agent/aws/sso.js.map +1 -1
  22. package/dist/agent/browser/register.d.ts +8 -0
  23. package/dist/agent/browser/register.d.ts.map +1 -1
  24. package/dist/agent/browser/register.js +10 -1
  25. package/dist/agent/browser/register.js.map +1 -1
  26. package/dist/agent/directory/config.d.ts +7 -4
  27. package/dist/agent/directory/config.d.ts.map +1 -1
  28. package/dist/agent/directory/config.js +17 -41
  29. package/dist/agent/directory/config.js.map +1 -1
  30. package/dist/agent/model/gateway.d.ts +4 -0
  31. package/dist/agent/model/gateway.d.ts.map +1 -1
  32. package/dist/agent/model/gateway.js +24 -2
  33. package/dist/agent/model/gateway.js.map +1 -1
  34. package/dist/agent/oe-oauth/config.d.ts +5 -8
  35. package/dist/agent/oe-oauth/config.d.ts.map +1 -1
  36. package/dist/agent/oe-oauth/config.js +24 -46
  37. package/dist/agent/oe-oauth/config.js.map +1 -1
  38. package/dist/agent/oe-oauth/register.d.ts +4 -6
  39. package/dist/agent/oe-oauth/register.d.ts.map +1 -1
  40. package/dist/agent/oe-oauth/register.js +9 -8
  41. package/dist/agent/oe-oauth/register.js.map +1 -1
  42. package/dist/agent/oe-oauth/token-vault.d.ts +4 -1
  43. package/dist/agent/oe-oauth/token-vault.d.ts.map +1 -1
  44. package/dist/agent/oe-oauth/token-vault.js +13 -10
  45. package/dist/agent/oe-oauth/token-vault.js.map +1 -1
  46. package/dist/agent/oe-oauth/user-auth-flow.d.ts +2 -3
  47. package/dist/agent/oe-oauth/user-auth-flow.d.ts.map +1 -1
  48. package/dist/agent/oe-oauth/user-auth-flow.js.map +1 -1
  49. package/dist/agent/register-defaults.d.ts +7 -3
  50. package/dist/agent/register-defaults.d.ts.map +1 -1
  51. package/dist/agent/register-defaults.js +19 -19
  52. package/dist/agent/register-defaults.js.map +1 -1
  53. package/dist/agent/sandbox/backend-stop.d.ts +5 -6
  54. package/dist/agent/sandbox/backend-stop.d.ts.map +1 -1
  55. package/dist/agent/sandbox/backend-stop.js +9 -9
  56. package/dist/agent/sandbox/backend-stop.js.map +1 -1
  57. package/package.json +3 -9
  58. package/agent/blob/hosting.ts +0 -24
@@ -20,7 +20,6 @@
20
20
  // provider bundle: it drives the table it receives.
21
21
 
22
22
  import { registerOeOauth } from "./oe-oauth/register.js";
23
- import { oeOauthEnabled, loadOeOauthConfig } from "./oe-oauth/config.js";
24
23
  import { registerAgentBrowser } from "./browser/register.js";
25
24
  import { agentBrowserEnabled, loadAgentBrowserConfig } from "./browser/config.js";
26
25
  import { registerAwsAccess } from "./aws/register.js";
@@ -28,22 +27,23 @@ import { awsAccessEnabled } from "./aws/config.js";
28
27
  import { registerDirectoryAdapter } from "./directory/register.js";
29
28
  import { registerGatewayRouteProbe } from "./model/gateway-probe.js";
30
29
  import { registerNeon } from "./postgres/neon.js";
31
- import { vercelBlobPutter } from "./blob/hosting.js";
32
30
  import {
33
31
  registerDbCredentialBroker,
34
32
  CREDENTIAL_KEY_ENV,
35
33
  registerGitHubConfigPrProvider,
36
- setBlobPutter,
37
34
  registerAuditDropCounter,
38
35
  emitTelemetry,
39
36
  getOperationalStore,
40
37
  bootVerifyAuditChainTail,
41
38
  bootBackfillLinkTenants,
42
39
  runBootNotices,
40
+ registerBootNotice,
41
+ announceJudgeWithoutRules,
43
42
  registerOperationalPgliteLazy,
44
43
  resolveOperationalSelection,
45
44
  resolveMemoryProviderId,
46
45
  onVercel,
46
+ getSettings,
47
47
  declareProviderSelection,
48
48
  assertConnectorMemoryGrants,
49
49
  applySubtreeSurfaceClaims,
@@ -94,6 +94,9 @@ export interface StoreWiring {
94
94
  /** What one `registerDefaultAdapters()` call wired. */
95
95
  export interface DefaultAdapterWiring {
96
96
  readonly providers: readonly string[];
97
+ /** The own-rolled OAuth flow registered. Always true since OPE-2411 deleted the master flag. A mint for an
98
+ * OAuth home no connection declares fails closed unless the vault already holds a client record or an unexpired token for it;
99
+ * the off switch is the bundle's `user-oauth` grant. */
97
100
  readonly oeOauth: boolean;
98
101
  readonly dbCredentialBroker: boolean;
99
102
  readonly agentBrowser: boolean;
@@ -110,17 +113,18 @@ export interface DefaultAdapterWiring {
110
113
  *
111
114
  * The PGlite floor (OPE-113) arms when the operational selection resolves to it (no provider named,
112
115
  * no `DATABASE_URL`). It stays off on Vercel, where the floor is per-instance and ephemeral, unless
113
- * `OE_ALLOW_EPHEMERAL_OPERATIONAL=1` names the single-instance escape. The Neon gate never opens on
114
- * the floor's branch, so the two never both register.
116
+ * the `storage.allowEphemeralOperational` setting names the single-instance escape (it was
117
+ * `OE_ALLOW_EPHEMERAL_OPERATIONAL=1` until OPE-2411). The Neon gate never opens on the floor's
118
+ * branch, so the two never both register.
115
119
  */
116
- export function decideStoreWiring(env: NodeJS.ProcessEnv, vercel: boolean): StoreWiring {
120
+ export function decideStoreWiring(env: NodeJS.ProcessEnv, vercel: boolean, allowEphemeralOperational: boolean): StoreWiring {
117
121
  const operational = resolveOperationalSelection(env);
118
122
  const postgresSelected =
119
123
  resolveMemoryProviderId(env) === "postgres" || (operational.id === "postgres" && operational.floor === "none");
120
124
  return {
121
125
  operational,
122
126
  neon: postgresSelected && Boolean(env.DATABASE_URL),
123
- pgliteFloor: operational.floor === "pglite" && (!vercel || env.OE_ALLOW_EPHEMERAL_OPERATIONAL === "1"),
127
+ pgliteFloor: operational.floor === "pglite" && (!vercel || allowEphemeralOperational),
124
128
  };
125
129
  }
126
130
 
@@ -156,11 +160,12 @@ async function wireDefaultAdapters(options: DefaultAdapterOptions): Promise<Defa
156
160
  // them. A row that lands ahead of the declaration cannot be retracted (core warns if one does).
157
161
  const providers = declareProviderSelection(options.providers.map((p) => p.id));
158
162
 
159
- // Connector-plane user-auth flow (OPE-88): own-rolled OAuth, registered only when the master flag
160
- // OE_OAUTH_ENABLED is armed AND a provider config block is present. Otherwise no flow registers and
161
- // core's OAuth mint paths fail closed. There is no vendor fallback.
162
- const oeOauthCfg = oeOauthEnabled() ? loadOeOauthConfig() : undefined;
163
- if (oeOauthCfg) registerOeOauth({ providers: oeOauthCfg });
163
+ // Connector-plane user-auth flow (OPE-88): own-rolled OAuth. Since OPE-2411 it ALWAYS registers — the
164
+ // OE_OAUTH_ENABLED master flag and the OE_OAUTH_CONFIG env map are deleted. Each connector declares its
165
+ // own sign-in in its connection module, next to its URL, and the vault reads those declarations per
166
+ // call. A mint for an OAuth home nothing declares fails closed unless the vault already holds a client
167
+ // record or an unexpired token for it; the off switch is the bundle's `user-oauth` grant. There is no vendor fallback.
168
+ registerOeOauth();
164
169
 
165
170
  // The "db" credential broker (task #113): registered iff its AES key exists. Without the key the
166
171
  // broker fails closed on store and read, so registering it would falsely offer the "Set API key"
@@ -174,7 +179,7 @@ async function wireDefaultAdapters(options: DefaultAdapterOptions): Promise<Defa
174
179
  const browserCfg = agentBrowserEnabled() ? loadAgentBrowserConfig() : undefined;
175
180
  const agentBrowser = browserCfg ? registerAgentBrowser(browserCfg) : false;
176
181
 
177
- // The AWS-access layer: only when OE_AWS_ENABLED is armed. Flag-off ⇒ core's AWS mint and exec
182
+ // The AWS-access layer: only when the `aws.enabled` setting is armed. Flag-off ⇒ core's AWS mint and exec
178
183
  // paths fail closed.
179
184
  const awsAccess = awsAccessEnabled();
180
185
  if (awsAccess) registerAwsAccess();
@@ -200,10 +205,6 @@ async function wireDefaultAdapters(options: DefaultAdapterOptions): Promise<Defa
200
205
  // cycle, and the one-chunk invariant), so this boot module injects the emitter.
201
206
  registerAuditDropCounter((action, platform) => emitTelemetry("oe.audit.dropped", { "oe.action": action, "oe.platform": platform }));
202
207
 
203
- // The Vercel Blob putter for the HTML-artifact hosting seam. Harmless when unused: the hosting
204
- // path runs only for an org that opted in, and the putter fails loud without its OIDC env.
205
- setBlobPutter(vercelBlobPutter);
206
-
207
208
  // THE APP'S HOOK, after every default registration and before every check that reads them.
208
209
  const customAdapters = options.customAdapters !== undefined;
209
210
  if (options.customAdapters) await options.customAdapters();
@@ -217,7 +218,12 @@ async function wireDefaultAdapters(options: DefaultAdapterOptions): Promise<Defa
217
218
  // `subtree: true` declares so from its own bundle's register().
218
219
  applySubtreeSurfaceClaims();
219
220
 
220
- const store = decideStoreWiring(process.env, onVercel());
221
+ // The judge-without-rules line (OPE-2400): `approvals.judgeMode: "enforce"` with no bound
222
+ // pre-approval rule behaves like `off`, so say so once. A boot notice, so it logs once per process,
223
+ // in the process that serves, and a failure costs one log line, never the boot.
224
+ registerBootNotice("approval-judge-no-rules", announceJudgeWithoutRules);
225
+
226
+ const store = decideStoreWiring(process.env, onVercel(), getSettings().storage.allowEphemeralOperational);
221
227
 
222
228
  // Neon (hosted Postgres) is LIVE-ONLY: registerNeon() builds the driver only when called here.
223
229
  if (store.neon) await registerNeon();
@@ -239,7 +245,7 @@ async function wireDefaultAdapters(options: DefaultAdapterOptions): Promise<Defa
239
245
  // credentials and the declared rooms differ from this checkout.
240
246
  await reconcileSurfaceCommands();
241
247
 
242
- WIRED = { providers, oeOauth: oeOauthCfg !== undefined, dbCredentialBroker, agentBrowser, awsAccess, customAdapters, store };
248
+ WIRED = { providers, oeOauth: true, dbCredentialBroker, agentBrowser, awsAccess, customAdapters, store };
243
249
  return WIRED;
244
250
  }
245
251
 
@@ -3,7 +3,7 @@
3
3
 
4
4
  import { Sandbox } from "@vercel/sandbox";
5
5
  import { execFile } from "node:child_process";
6
- import { onVercel, resolveSelfHostBackendKind } from "@open-everywhere/core/agent/adapter-api.js";
6
+ import { resolveSandboxBackend } from "@open-everywhere/core/agent/adapter-api.js";
7
7
  import { getRecordedSandboxName } from "./created-sandbox-registry.js";
8
8
 
9
9
  /** One sandbox as its backend reports it — `createdAt` (epoch ms) is the one honestly-observable
@@ -22,7 +22,7 @@ export interface SandboxListing {
22
22
  * docker daemon, or a platform.
23
23
  */
24
24
  export interface SandboxStopper {
25
- /** Backend id, matching `OE_SANDBOX_BACKEND` / eve's backend name. For logs and tests. */
25
+ /** Backend id, matching `sandbox.selfHostBackend` / eve's backend name. For logs and tests. */
26
26
  readonly backend: string;
27
27
  /** Does this backend bill sandbox runtime by wall clock? Only then is a stop priced. */
28
28
  readonly metered: boolean;
@@ -224,7 +224,7 @@ export const justBashStopper: SandboxStopper = {
224
224
  backend: "just-bash",
225
225
  metered: false,
226
226
  ownership:
227
- "stop owner = NONE — the just-bash backend runs inside this app process. There is no VM or container to stop and no metered runtime, so the turn-end sweep is inert by design. Set OE_SANDBOX_BACKEND=docker for a backend whose compute is stopped at turn end",
227
+ "stop owner = NONE — the just-bash backend runs inside this app process. There is no VM or container to stop and no metered runtime, so the turn-end sweep is inert by design. Declare `sandbox.selfHostBackend: \"docker\"` for a backend whose compute is stopped at turn end",
228
228
  async list() {
229
229
  return [];
230
230
  },
@@ -239,16 +239,16 @@ export const justBashStopper: SandboxStopper = {
239
239
  // ── selection ─────────────────────────────────────────────────────────────────────────────────
240
240
 
241
241
  /**
242
- * The ONE "who stops the sandbox on this deployment" decision. It reads the SAME two switches the
243
- * app reads to BUILD the backend — `onVercel()` and `resolveSelfHostBackendKind()` — so the
244
- * backend that runs and the backend that stops can never disagree. An unknown
245
- * `OE_SANDBOX_BACKEND` throws here exactly as it throws at boot; the hook's fail-soft catch logs
246
- * it rather than failing the turn.
242
+ * The ONE "who stops the sandbox on this deployment" decision. It reads the SAME rule the app
243
+ * reads to BUILD the backend — `resolveSandboxBackend()` over the host fact and the `sandbox.*`
244
+ * settings — so the backend that runs and the backend that stops can never disagree. Settings load
245
+ * refuses an unknown backend, so no value reaching this read can be one.
247
246
  */
248
247
  export function resolveSandboxStopper(): SandboxStopper {
249
248
  if (forcedStopper !== undefined) return forcedStopper;
250
- if (onVercel()) return vercelStopper;
251
- return resolveSelfHostBackendKind() === "justbash" ? justBashStopper : createDockerStopper();
249
+ const backend = resolveSandboxBackend();
250
+ if (backend === "vercel") return vercelStopper;
251
+ return backend === "justbash" ? justBashStopper : createDockerStopper();
252
252
  }
253
253
 
254
254
  /** Test seam: force the resolved stopper so the hook's own branching can be driven without a
@@ -1,5 +1,6 @@
1
- /** Truthiness for the master flag — same off-spellings as the other connector-plane flags (default
2
- * OFF: off is the inert posture; arming is a deliberate operator act). */
1
+ /** The master flag: the `aws.enabled` setting (default OFF: off is the inert posture; arming is a
2
+ * deliberate, reviewed commit). Read from the registered settings, so it is called at boot AFTER
3
+ * `registerSettings` (register-defaults.ts runs from the app's register-adapters, after register-config). */
3
4
  export declare function awsAccessEnabled(): boolean;
4
5
  /** The AWS-access config block (env-sourced). Only a default region today; the identity/executor DI
5
6
  * seams are passed by the caller (register.ts), not env. */
@@ -22,6 +23,7 @@ export interface AwsSsoConfig {
22
23
  /** OAuth scopes requested on the link (default applied by the minter). */
23
24
  readonly scopes?: readonly string[];
24
25
  }
25
- /** Load the Identity Center SSO link config from env. Region falls back to the general AWS default. */
26
+ /** Load the Identity Center SSO link config: the region and client id from env, the scopes from the
27
+ * `aws.ssoScopes` setting (empty ⇒ the minter's default). Region falls back to the general AWS default. */
26
28
  export declare function loadAwsSsoConfig(): AwsSsoConfig;
27
29
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../agent/aws/config.ts"],"names":[],"mappings":"AAmBA;2EAC2E;AAC3E,wBAAgB,gBAAgB,IAAI,OAAO,CAK1C;AAED;6DAC6D;AAC7D,MAAM,WAAW,eAAe;IAC9B;6FACyF;IACzF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;wFACwF;AACxF,wBAAgB,mBAAmB,IAAI,eAAe,CAGrD;AAED;;4FAE4F;AAC5F,MAAM,WAAW,YAAY;IAC3B,oGAAoG;IACpG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,uGAAuG;IACvG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,uGAAuG;AACvG,wBAAgB,gBAAgB,IAAI,YAAY,CAc/C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../agent/aws/config.ts"],"names":[],"mappings":"AAmBA;;8GAE8G;AAC9G,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED;6DAC6D;AAC7D,MAAM,WAAW,eAAe;IAC9B;6FACyF;IACzF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;wFACwF;AACxF,wBAAgB,mBAAmB,IAAI,eAAe,CAGrD;AAED;;4FAE4F;AAC5F,MAAM,WAAW,YAAY;IAC3B,oGAAoG;IACpG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,uGAAuG;IACvG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;4GAC4G;AAC5G,wBAAgB,gBAAgB,IAAI,YAAY,CAY/C"}
@@ -1,7 +1,9 @@
1
1
  // The `aws` access master arming flag and config block. Flag-off ⇒ NOTHING registers and core's AWS paths
2
- // fail closed, with no fallback. Config is env-sourced at the adapter boundary, like DATABASE_URL.
3
- /** The master arming flag env var — one string this module's readers share. */
4
- const OE_AWS_ENABLED_ENV = "OE_AWS_ENABLED";
2
+ // fail closed, with no fallback. The two CHOICES are settings since OPE-2411 — `aws.enabled` (was
3
+ // OE_AWS_ENABLED) and `aws.ssoScopes` (was OE_AWS_SSO_SCOPES) — because arming the plane and widening
4
+ // what it asks for are policy. The WIRING (regions, the public OIDC client id) stays env-sourced at the
5
+ // adapter boundary, like DATABASE_URL.
6
+ import { getSettings } from "@open-everywhere/core/agent/adapter-api.js";
5
7
  /** Optional default region for STS + the CLI when a grant names none. */
6
8
  const OE_AWS_REGION_ENV = "OE_AWS_REGION";
7
9
  // The per-user Identity Center link config. These vars configure the LINK flow only — a mint needs the
@@ -11,16 +13,11 @@ const OE_AWS_REGION_ENV = "OE_AWS_REGION";
11
13
  const OE_AWS_SSO_REGION_ENV = "OE_AWS_SSO_REGION";
12
14
  /** The pre-registered PUBLIC OIDC client id for the Identity Center auth-code + PKCE link flow. */
13
15
  const OE_AWS_SSO_CLIENT_ID_ENV = "OE_AWS_SSO_CLIENT_ID";
14
- /** Optional space-separated OAuth scopes for the link (default "sso:account:access"). */
15
- const OE_AWS_SSO_SCOPES_ENV = "OE_AWS_SSO_SCOPES";
16
- /** Truthiness for the master flag — same off-spellings as the other connector-plane flags (default
17
- * OFF: off is the inert posture; arming is a deliberate operator act). */
16
+ /** The master flag: the `aws.enabled` setting (default OFF: off is the inert posture; arming is a
17
+ * deliberate, reviewed commit). Read from the registered settings, so it is called at boot AFTER
18
+ * `registerSettings` (register-defaults.ts runs from the app's register-adapters, after register-config). */
18
19
  export function awsAccessEnabled() {
19
- const raw = process.env[OE_AWS_ENABLED_ENV];
20
- if (raw === undefined)
21
- return false;
22
- const v = raw.trim().toLowerCase();
23
- return v !== "" && v !== "0" && v !== "false" && v !== "off" && v !== "no";
20
+ return getSettings().aws.enabled;
24
21
  }
25
22
  /** Load the AWS-access config block from env. Always returns a (possibly empty) config — unlike the
26
23
  * oe-oauth block there is no REQUIRED field, so the master flag alone gates arming. */
@@ -28,15 +25,14 @@ export function loadAwsAccessConfig() {
28
25
  const defaultRegion = process.env[OE_AWS_REGION_ENV]?.trim() || process.env.AWS_REGION?.trim();
29
26
  return { ...(defaultRegion ? { defaultRegion } : {}) };
30
27
  }
31
- /** Load the Identity Center SSO link config from env. Region falls back to the general AWS default. */
28
+ /** Load the Identity Center SSO link config: the region and client id from env, the scopes from the
29
+ * `aws.ssoScopes` setting (empty ⇒ the minter's default). Region falls back to the general AWS default. */
32
30
  export function loadAwsSsoConfig() {
33
31
  const region = process.env[OE_AWS_SSO_REGION_ENV]?.trim() ||
34
32
  process.env[OE_AWS_REGION_ENV]?.trim() ||
35
33
  process.env.AWS_REGION?.trim();
36
34
  const clientId = process.env[OE_AWS_SSO_CLIENT_ID_ENV]?.trim();
37
- const scopes = process.env[OE_AWS_SSO_SCOPES_ENV]?.trim()
38
- ? process.env[OE_AWS_SSO_SCOPES_ENV].trim().split(/\s+/u).filter(Boolean)
39
- : undefined;
35
+ const scopes = getSettings().aws.ssoScopes;
40
36
  return {
41
37
  ...(region ? { region } : {}),
42
38
  ...(clientId ? { clientId } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../agent/aws/config.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,mGAAmG;AAEnG,+EAA+E;AAC/E,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAC5C,yEAAyE;AACzE,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C,uGAAuG;AACvG,yFAAyF;AAEzF;gGACgG;AAChG,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAClD,mGAAmG;AACnG,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AACxD,yFAAyF;AACzF,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAElD;2EAC2E;AAC3E,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC5C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAC7E,CAAC;AAUD;wFACwF;AACxF,MAAM,UAAU,mBAAmB;IACjC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAC/F,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC;AAcD,uGAAuG;AACvG,MAAM,UAAU,gBAAgB;IAC9B,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE;QAC1C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE;QACtC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE;QACvD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC1E,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../agent/aws/config.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,kGAAkG;AAClG,sGAAsG;AACtG,wGAAwG;AACxG,uCAAuC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAEzE,yEAAyE;AACzE,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C,uGAAuG;AACvG,yFAAyF;AAEzF;gGACgG;AAChG,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAClD,mGAAmG;AACnG,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AACxD;;8GAE8G;AAC9G,MAAM,UAAU,gBAAgB;IAC9B,OAAO,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;AACnC,CAAC;AAUD;wFACwF;AACxF,MAAM,UAAU,mBAAmB;IACjC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAC/F,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC;AAcD;4GAC4G;AAC5G,MAAM,UAAU,gBAAgB;IAC9B,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE;QAC1C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE;QACtC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;IAC3C,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- // Register the AWS-access layer, called only when the OE_AWS_ENABLED master flag is armed. Flag-off ⇒
1
+ // Register the AWS-access layer, called only when the `aws.enabled` master flag is armed. Flag-off ⇒
2
2
  // nothing registers and core's AWS mint, exec and link paths fail closed; rollback is not arming the flag.
3
3
  import { registerAwsIdentityProvider, registerAwsExecutor, registerAwsSsoLinkStore, registerAwsSsoCallbackCompleter, registerCredentialPurgeHook, } from "@open-everywhere/core/agent/adapter-api.js";
4
4
  import { makeAwsStsProvider } from "./sts.js";
@@ -27,7 +27,7 @@ export function registerAwsAccess(opts = {}) {
27
27
  ...opts.sso,
28
28
  });
29
29
  // Wire the `GET OE_AWS_SSO_CALLBACK_PATH` route to the SSO minter's code→token exchange, mirroring the
30
- // own-rolled OAuth adapter's registerOeOauthCallbackCompleter. Fires under the OE_AWS_ENABLED boot
30
+ // own-rolled OAuth adapter's registerOeOauthCallbackCompleter. Fires under the `aws.enabled` boot
31
31
  // guard; flag-off ⇒ the completer is never registered and the route fails closed (generic error page).
32
32
  registerAwsSsoCallbackCompleter({ complete: ({ state, code }) => sso.completeLink(state, code) });
33
33
  const provider = makeAwsStsProvider({ defaultRegion, mintUserSso: (req) => sso.mint(req), ...opts.identity });
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../agent/aws/register.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,2GAA2G;AAE3G,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,+BAA+B,EAC/B,2BAA2B,GAG5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAA8B,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAA8B,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAA+C,MAAM,UAAU,CAAC;AACnI,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAYpE;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAI,GAA6B,EAAE;IAKnE,qGAAqG;IACrG,2FAA2F;IAC3F,MAAM,EAAE,aAAa,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAElC,sGAAsG;IACtG,mFAAmF;IACnF,uBAAuB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC/C,2GAA2G;IAC3G,wGAAwG;IACxG,2BAA2B,CAAC,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,gBAAgB,CAAC;QAC3B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,IAAI,CAAC,GAAG;KACZ,CAAC,CAAC;IAEH,uGAAuG;IACvG,mGAAmG;IACnG,uGAAuG;IACvG,+BAA+B,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAElG,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9G,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzE,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACtC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../agent/aws/register.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,2GAA2G;AAE3G,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,+BAA+B,EAC/B,2BAA2B,GAG5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAA8B,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAA8B,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAA+C,MAAM,UAAU,CAAC;AACnI,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAYpE;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAI,GAA6B,EAAE;IAKnE,qGAAqG;IACrG,2FAA2F;IAC3F,MAAM,EAAE,aAAa,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAElC,sGAAsG;IACtG,mFAAmF;IACnF,uBAAuB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC/C,2GAA2G;IAC3G,wGAAwG;IACxG,2BAA2B,CAAC,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,gBAAgB,CAAC;QAC3B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,IAAI,CAAC,GAAG;KACZ,CAAC,CAAC;IAEH,uGAAuG;IACvG,kGAAkG;IAClG,uGAAuG;IACvG,+BAA+B,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAElG,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9G,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzE,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACtC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AACrC,CAAC"}
@@ -8,7 +8,7 @@ export { OE_AWS_SSO_CALLBACK_PATH };
8
8
  * what makes the token response carry an id-token, and the id-token's `sub` is the only statement of
9
9
  * WHO completed the sign-in the callback can observe. Without it {@link AwsSsoMinter.completeLink}
10
10
  * refuses every completion, because it cannot name the signer (OPE-1955). An operator who overrides
11
- * `OE_AWS_SSO_SCOPES` must keep `openid` in the list. */
11
+ * the `aws.ssoScopes` setting must keep `openid` in the list. */
12
12
  const DEFAULT_SSO_SCOPES = ["sso:account:access", "openid"];
13
13
  /** Consent window for a pending link (15 min, matching the own-rolled OAuth pending TTL). */
14
14
  const DEFAULT_PENDING_TTL_MS = 15 * 60 * 1000;
@@ -166,7 +166,7 @@ export function makeAwsSsoMinter(opts = {}) {
166
166
  function requireOpenIdScope() {
167
167
  if (scopes.includes("openid"))
168
168
  return;
169
- throw new Error("AWS SSO link: the configured scopes omit \"openid\" (OE_AWS_SSO_SCOPES). Without it the Identity " +
169
+ throw new Error("AWS SSO link: the configured scopes omit \"openid\" (the aws.ssoScopes setting). Without it the Identity " +
170
170
  "Center token response carries no id-token, so the account that signs in cannot be named and the " +
171
171
  "link can never complete. Fail-closed: no link was started.");
172
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sso.js","sourceRoot":"","sources":["../../../agent/aws/sso.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sso.js","sourceRoot":"","sources":["../../../agent/aws/sso.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,12 @@
1
1
  import { type AgentBrowserConfig } from "./config.js";
2
+ /**
3
+ * The agent-browser session name every tool call passes as `--session`. 🔴 IT MUST BE BOUND. Without
4
+ * it the vendor derives the name from `sandbox.id`, and eve 0.69.0+ hands the tool a `SandboxSession`
5
+ * that has no `id`: `sanitizeSessionPart(undefined).trim()` then throws on EVERY browser call
6
+ * ("Cannot read properties of undefined (reading 'trim')", F-ART leg 4, 2026-10-09). One sandbox runs
7
+ * one agent-browser daemon, so a fixed name is per-sandbox — the same isolation the vendor default gave.
8
+ */
9
+ export declare const BROWSER_SESSION_NAME = "oe-browser";
2
10
  /**
3
11
  * Arm the toolkit for a validated config. Returns false, LOUDLY, when the extension-config binding did not
4
12
  * take: unbound tools would run auto-install on and UNCONTAINED, so they are not registered at all.
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../agent/browser/register.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAUtD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CA6CrE"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../agent/browser/register.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAWtD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CA8CrE"}
@@ -3,6 +3,14 @@
3
3
  import browserExtension from "@agent-browser/eve";
4
4
  import * as vendorTools from "@agent-browser/eve/tools";
5
5
  import { registerBrowserToolkit, openBrowserEgressHosts, isLoopbackBrowseHost } from "@open-everywhere/core/agent/adapter-api.js";
6
+ /**
7
+ * The agent-browser session name every tool call passes as `--session`. 🔴 IT MUST BE BOUND. Without
8
+ * it the vendor derives the name from `sandbox.id`, and eve 0.69.0+ hands the tool a `SandboxSession`
9
+ * that has no `id`: `sanitizeSessionPart(undefined).trim()` then throws on EVERY browser call
10
+ * ("Cannot read properties of undefined (reading 'trim')", F-ART leg 4, 2026-10-09). One sandbox runs
11
+ * one agent-browser daemon, so a fixed name is per-sandbox — the same isolation the vendor default gave.
12
+ */
13
+ export const BROWSER_SESSION_NAME = "oe-browser";
6
14
  /**
7
15
  * Arm the toolkit for a validated config. Returns false, LOUDLY, when the extension-config binding did not
8
16
  * take: unbound tools would run auto-install on and UNCONTAINED, so they are not registered at all.
@@ -13,12 +21,13 @@ export function registerAgentBrowser(cfg) {
13
21
  autoInstall: false,
14
22
  contentBoundaries: true,
15
23
  inlineScreenshots: false,
24
+ session: BROWSER_SESSION_NAME,
16
25
  });
17
26
  const bound = browserExtension.config;
18
27
  const domainsBound = Array.isArray(bound.allowedDomains) &&
19
28
  bound.allowedDomains.length === cfg.domains.length &&
20
29
  cfg.domains.every((d, i) => bound.allowedDomains[i] === d);
21
- if (bound.autoInstall !== false || !domainsBound) {
30
+ if (bound.autoInstall !== false || !domainsBound || bound.session !== BROWSER_SESSION_NAME) {
22
31
  console.error("[open-everywhere:agent-browser] extension config binding FAILED (namespace patch missing? see patches/@agent-browser+eve+*.patch) — " +
23
32
  "REFUSING to arm the browser toolkit: unbound tools would run with vendor defaults (auto-install on, no domain containment).");
24
33
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../agent/browser/register.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,uGAAuG;AAEvG,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,WAAW,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,oBAAoB,EAAyB,MAAM,4CAA4C,CAAC;AAWzJ;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAuB;IAC1D,gBAAgB,CAAC;QACf,cAAc,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;QAChC,WAAW,EAAE,KAAK;QAClB,iBAAiB,EAAE,IAAI;QACvB,iBAAiB,EAAE,KAAK;KACzB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAuC,CAAC;IACvE,MAAM,YAAY,GAChB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;QACnC,KAAK,CAAC,cAAc,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM;QAClD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,cAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QACjD,OAAO,CAAC,KAAK,CACX,sIAAsI;YACpI,6HAA6H,CAChI,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kFAAkF;IAClF,oFAAoF;IACpF,MAAM,OAAO,GAAqC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,IAA6C,CAAC;QACxD,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC9E,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,CAAqB,CAAC;QACrD,CAAC;IACH,CAAC;IACD,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhC,oGAAoG;IACpG,6GAA6G;IAC7G,wGAAwG;IACxG,mGAAmG;IACnG,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhI,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAChF,OAAO,CAAC,GAAG,CACT,0CAA0C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,kBAAkB;QACrF,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,YAAY,iCAAiC;QACnF,gEAAgE,CACnE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../agent/browser/register.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,uGAAuG;AAEvG,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,WAAW,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,oBAAoB,EAAyB,MAAM,4CAA4C,CAAC;AAYzJ;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAuB;IAC1D,gBAAgB,CAAC;QACf,cAAc,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;QAChC,WAAW,EAAE,KAAK;QAClB,iBAAiB,EAAE,IAAI;QACvB,iBAAiB,EAAE,KAAK;QACxB,OAAO,EAAE,oBAAoB;KAC9B,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAuC,CAAC;IACvE,MAAM,YAAY,GAChB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;QACnC,KAAK,CAAC,cAAc,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM;QAClD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,cAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,oBAAoB,EAAE,CAAC;QAC3F,OAAO,CAAC,KAAK,CACX,sIAAsI;YACpI,6HAA6H,CAChI,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kFAAkF;IAClF,oFAAoF;IACpF,MAAM,OAAO,GAAqC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,IAA6C,CAAC;QACxD,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC9E,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,CAAqB,CAAC;QACrD,CAAC;IACH,CAAC;IACD,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhC,oGAAoG;IACpG,6GAA6G;IAC7G,wGAAwG;IACxG,mGAAmG;IACnG,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhI,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAChF,OAAO,CAAC,GAAG,CACT,0CAA0C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,kBAAkB;QACrF,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,YAAY,iCAAiC;QACnF,gEAAgE,CACnE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type OktaAppSetting } from "@open-everywhere/core/agent/adapter-api.js";
1
2
  /** Which app-assignment field carries the app-side identity for one mapped app. */
2
3
  export type OktaAppIdField = "externalId" | "userName";
3
4
  /** One configured Okta application → one of OUR platform tokens. */
@@ -27,13 +28,15 @@ export interface OktaDirectoryConfig {
27
28
  * leaves the plane OFF rather than half-arming something. */
28
29
  export declare function oktaDirectoryEnabled(env?: NodeJS.ProcessEnv): boolean;
29
30
  /**
30
- * Parse the app map: `<platform>[/<tenant>]:<oktaAppId>[:<field>]`, comma-separated. The workspace rung uses
31
- * `/`, matching the principal-key grammar. FAIL-LOUD on a malformed entry — a dropped entry is a silent gap.
31
+ * Normalise the `directory.oktaApps` setting into the adapter's mappings: the default `field` is
32
+ * `externalId`. FAIL-LOUD on a malformed table — a dropped entry is a silent gap. The rules are the
33
+ * setting's own validator (`SETTINGS.directory.oktaApps.validate`), so settings load and this adapter
34
+ * refuse the same tables; it runs here too because a test can register an unvalidated value.
32
35
  */
33
- export declare function parseOktaAppMap(raw: string | undefined): readonly OktaAppMapping[];
36
+ export declare function oktaAppMappings(entries: readonly OktaAppSetting[]): readonly OktaAppMapping[];
34
37
  /**
35
38
  * Load the Okta config block. FAIL-LOUD when the selector is armed but a required field is missing. An unset
36
39
  * SELECTOR stays silent — that is a deployment with no IdP, not a broken one.
37
40
  */
38
- export declare function loadOktaDirectoryConfig(env?: NodeJS.ProcessEnv): OktaDirectoryConfig;
41
+ export declare function loadOktaDirectoryConfig(env?: NodeJS.ProcessEnv, apps?: readonly OktaAppSetting[]): OktaDirectoryConfig;
39
42
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../agent/directory/config.ts"],"names":[],"mappings":"AAgBA,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC;AAEvD,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,sGAAsG;IACtG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,cAAc,EAAE,CAAC;CAC1C;AAED;8DAC8D;AAC9D,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAElF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,cAAc,EAAE,CAwClF;AAsBD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,mBAAmB,CAiBjG"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../agent/directory/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAexG,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC;AAEvD,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,sGAAsG;IACtG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,cAAc,EAAE,CAAC;CAC1C;AAED;8DAC8D;AAC9D,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,cAAc,EAAE,CAS7F;AAsBD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,SAAS,cAAc,EAAqC,GACjE,mBAAmB,CAgBrB"}
@@ -1,5 +1,6 @@
1
1
  // The directory-adapter SELECTION and Okta config. Selector-off or config-absent ⇒ NOTHING registers, with no
2
2
  // partial arming. 🔴 The API token is a `secretRef` through a broker (default `db`), never a raw env read.
3
+ import { SETTINGS, getSettings } from "@open-everywhere/core/agent/adapter-api.js";
3
4
  /** Which directory adapter to arm ("okta"). Unset ⇒ the directory plane stays off. */
4
5
  const OE_DIRECTORY_PROVIDER_ENV = "OE_DIRECTORY_PROVIDER";
5
6
  /** The Okta org URL, e.g. `https://acme.okta.com` (or an `*.oktapreview.com` sandbox). MUST be
@@ -10,51 +11,27 @@ const OE_DIRECTORY_OKTA_ORG_URL_ENV = "OE_DIRECTORY_OKTA_ORG_URL";
10
11
  const OE_DIRECTORY_OKTA_TOKEN_REF_ENV = "OE_DIRECTORY_OKTA_TOKEN_REF";
11
12
  /** Which broker holds that ref. Default "db" (the encrypted credential store — OPE-408 step 2). */
12
13
  const OE_DIRECTORY_OKTA_TOKEN_BROKER_ENV = "OE_DIRECTORY_OKTA_TOKEN_BROKER";
13
- /** App map: `"<platform>[/<tenant>]:<oktaAppId>[:<field>], …"` — see {@link parseOktaAppMap}. */
14
- const OE_DIRECTORY_OKTA_APPS_ENV = "OE_DIRECTORY_OKTA_APPS";
15
14
  /** True iff the selector names the Okta adapter. Exact match, trimmed, case-insensitive — a typo
16
15
  * leaves the plane OFF rather than half-arming something. */
17
16
  export function oktaDirectoryEnabled(env = process.env) {
18
17
  return (env[OE_DIRECTORY_PROVIDER_ENV] ?? "").trim().toLowerCase() === "okta";
19
18
  }
20
19
  /**
21
- * Parse the app map: `<platform>[/<tenant>]:<oktaAppId>[:<field>]`, comma-separated. The workspace rung uses
22
- * `/`, matching the principal-key grammar. FAIL-LOUD on a malformed entry — a dropped entry is a silent gap.
20
+ * Normalise the `directory.oktaApps` setting into the adapter's mappings: the default `field` is
21
+ * `externalId`. FAIL-LOUD on a malformed table — a dropped entry is a silent gap. The rules are the
22
+ * setting's own validator (`SETTINGS.directory.oktaApps.validate`), so settings load and this adapter
23
+ * refuse the same tables; it runs here too because a test can register an unvalidated value.
23
24
  */
24
- export function parseOktaAppMap(raw) {
25
- const out = [];
26
- const seen = new Set();
27
- for (const entry of (raw ?? "").split(",").map((s) => s.trim()).filter(Boolean)) {
28
- const parts = entry.split(":").map((s) => s.trim());
29
- const [head, appId, field] = parts;
30
- if (parts.length < 2 || parts.length > 3 || !head || !appId) {
31
- throw new Error(`${OE_DIRECTORY_OKTA_APPS_ENV} entry "${entry}" is malformed — expected "<platform>[/<tenant>]:<oktaAppId>" ` +
32
- `with an optional ":externalId"/":userName" suffix, e.g. "slack:0oa1a2b3c4d5" or "slack/T0AB1CD2E:0oa1a2b3c4d5".`);
33
- }
34
- if (field !== undefined && field !== "externalId" && field !== "userName") {
35
- throw new Error(`${OE_DIRECTORY_OKTA_APPS_ENV} entry "${entry}" names field "${field}" — only "externalId" (default) or "userName" are valid.`);
36
- }
37
- const slash = head.indexOf("/");
38
- const platform = (slash < 0 ? head : head.slice(0, slash)).toLowerCase();
39
- const tenant = slash < 0 ? undefined : head.slice(slash + 1).trim();
40
- if (!platform || (tenant !== undefined && (tenant.length === 0 || tenant.includes("/")))) {
41
- throw new Error(`${OE_DIRECTORY_OKTA_APPS_ENV} entry "${entry}" has an unusable platform/workspace half ("${head}") — write "<platform>" ` +
42
- `or "<platform>/<workspace-id>" with exactly one slash, e.g. "slack/T0AB1CD2E".`);
43
- }
44
- // Two apps mapped to the SAME (platform, workspace) is a genuine misconfiguration rather than a
45
- // widening: the two would write suggestions that are indistinguishable downstream, and whichever
46
- // ran second would silently redefine the first's ids. Refused here, where the operator can see
47
- // both entries, rather than as a mystery in a sync warning.
48
- const key = `${platform}/${tenant ?? ""}`;
49
- if (seen.has(key)) {
50
- throw new Error(`${OE_DIRECTORY_OKTA_APPS_ENV} maps two apps to the same target "${key.replace(/\/$/u, "")}" — an app map entry names WHERE ` +
51
- "the ids land, so two entries for one place cannot both be right. Give each workspace its own rung " +
52
- '("slack/T0AB1CD2E:…,slack/T9ZYX8W7V:…"), or remove the duplicate.');
53
- }
54
- seen.add(key);
55
- out.push({ platform, ...(tenant !== undefined ? { tenant } : {}), appId, field: field ?? "externalId" });
56
- }
57
- return out;
25
+ export function oktaAppMappings(entries) {
26
+ const problem = SETTINGS.directory.oktaApps.validate(entries);
27
+ if (problem !== undefined)
28
+ throw new Error(`directory.oktaApps: ${problem}`);
29
+ return entries.map((a) => ({
30
+ platform: a.platform,
31
+ ...(a.tenant !== undefined ? { tenant: a.tenant } : {}),
32
+ appId: a.appId,
33
+ field: a.field ?? "externalId",
34
+ }));
58
35
  }
59
36
  /**
60
37
  * 🔴 The org URL MUST be `https://`: every request carries the SSWS API token in an `authorization` header.
@@ -78,7 +55,7 @@ function requireHttpsOrgUrl(raw) {
78
55
  * Load the Okta config block. FAIL-LOUD when the selector is armed but a required field is missing. An unset
79
56
  * SELECTOR stays silent — that is a deployment with no IdP, not a broken one.
80
57
  */
81
- export function loadOktaDirectoryConfig(env = process.env) {
58
+ export function loadOktaDirectoryConfig(env = process.env, apps = getSettings().directory.oktaApps) {
82
59
  const orgUrl = env[OE_DIRECTORY_OKTA_ORG_URL_ENV]?.trim();
83
60
  const tokenRef = env[OE_DIRECTORY_OKTA_TOKEN_REF_ENV]?.trim();
84
61
  const missing = [];
@@ -90,12 +67,11 @@ export function loadOktaDirectoryConfig(env = process.env) {
90
67
  throw new Error(`${OE_DIRECTORY_PROVIDER_ENV}="okta" but ${missing.join(" and ")} ${missing.length > 1 ? "are" : "is"} not set — directory sync cannot be armed.`);
91
68
  }
92
69
  requireHttpsOrgUrl(orgUrl);
93
- const apps = parseOktaAppMap(env[OE_DIRECTORY_OKTA_APPS_ENV]);
94
70
  return {
95
71
  orgUrl: orgUrl.replace(/\/+$/u, ""),
96
72
  tokenRef: tokenRef,
97
73
  tokenBroker: env[OE_DIRECTORY_OKTA_TOKEN_BROKER_ENV]?.trim() || "db",
98
- apps,
74
+ apps: oktaAppMappings(apps),
99
75
  };
100
76
  }
101
77
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../agent/directory/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../agent/directory/config.ts"],"names":[],"mappings":"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"}