@open-everywhere/adapters 0.3.0 → 0.5.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.
- package/README.md +0 -1
- package/agent/aws/config.ts +13 -16
- package/agent/aws/register.ts +2 -2
- package/agent/aws/sso.ts +2 -2
- package/agent/browser/register.ts +12 -1
- package/agent/directory/config.ts +22 -47
- package/agent/model/gateway.ts +26 -1
- package/agent/oe-oauth/config.ts +25 -45
- package/agent/oe-oauth/register.ts +14 -12
- package/agent/oe-oauth/token-vault.ts +19 -9
- package/agent/oe-oauth/user-auth-flow.ts +2 -3
- package/agent/register-defaults.ts +18 -19
- package/agent/sandbox/backend-stop.ts +10 -10
- package/dist/agent/aws/config.d.ts +5 -3
- package/dist/agent/aws/config.d.ts.map +1 -1
- package/dist/agent/aws/config.js +12 -16
- package/dist/agent/aws/config.js.map +1 -1
- package/dist/agent/aws/register.js +2 -2
- package/dist/agent/aws/register.js.map +1 -1
- package/dist/agent/aws/sso.js +2 -2
- package/dist/agent/aws/sso.js.map +1 -1
- package/dist/agent/browser/register.d.ts +8 -0
- package/dist/agent/browser/register.d.ts.map +1 -1
- package/dist/agent/browser/register.js +10 -1
- package/dist/agent/browser/register.js.map +1 -1
- package/dist/agent/directory/config.d.ts +7 -4
- package/dist/agent/directory/config.d.ts.map +1 -1
- package/dist/agent/directory/config.js +17 -41
- package/dist/agent/directory/config.js.map +1 -1
- package/dist/agent/model/gateway.d.ts +4 -0
- package/dist/agent/model/gateway.d.ts.map +1 -1
- package/dist/agent/model/gateway.js +24 -2
- package/dist/agent/model/gateway.js.map +1 -1
- package/dist/agent/oe-oauth/config.d.ts +5 -8
- package/dist/agent/oe-oauth/config.d.ts.map +1 -1
- package/dist/agent/oe-oauth/config.js +25 -46
- package/dist/agent/oe-oauth/config.js.map +1 -1
- package/dist/agent/oe-oauth/register.d.ts +4 -6
- package/dist/agent/oe-oauth/register.d.ts.map +1 -1
- package/dist/agent/oe-oauth/register.js +9 -8
- package/dist/agent/oe-oauth/register.js.map +1 -1
- package/dist/agent/oe-oauth/token-vault.d.ts +4 -1
- package/dist/agent/oe-oauth/token-vault.d.ts.map +1 -1
- package/dist/agent/oe-oauth/token-vault.js +13 -10
- package/dist/agent/oe-oauth/token-vault.js.map +1 -1
- package/dist/agent/oe-oauth/user-auth-flow.d.ts +2 -3
- package/dist/agent/oe-oauth/user-auth-flow.d.ts.map +1 -1
- package/dist/agent/oe-oauth/user-auth-flow.js.map +1 -1
- package/dist/agent/register-defaults.d.ts +7 -3
- package/dist/agent/register-defaults.d.ts.map +1 -1
- package/dist/agent/register-defaults.js +15 -19
- package/dist/agent/register-defaults.js.map +1 -1
- package/dist/agent/sandbox/backend-stop.d.ts +5 -6
- package/dist/agent/sandbox/backend-stop.d.ts.map +1 -1
- package/dist/agent/sandbox/backend-stop.js +9 -9
- package/dist/agent/sandbox/backend-stop.js.map +1 -1
- package/package.json +3 -9
- package/agent/blob/hosting.ts +0 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-defaults.d.ts","sourceRoot":"","sources":["../../agent/register-defaults.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register-defaults.d.ts","sourceRoot":"","sources":["../../agent/register-defaults.ts"],"names":[],"mappings":"AA6BA,OAAO,EAqBL,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,4CAA4C,CAAC;AAEpD,2FAA2F;AAC3F,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACtD;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,OAAO,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;QAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,SAAS,UAAU,EAAE,CAAC;QAC5C,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,GAAG,IAAI,CAAC;KAChE,CAAC;IACF;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAED,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAChF,yFAAyF;IACzF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;6DAEyD;IACzD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,EAAE,OAAO,GAAG,WAAW,CAS1H;AAKD,6FAA6F;AAC7F,wBAAgB,oBAAoB,IAAI,oBAAoB,GAAG,SAAS,CAEvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAGrG"}
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
// output) and the memory config are app files, so the app passes them in. This module names no
|
|
20
20
|
// provider bundle: it drives the table it receives.
|
|
21
21
|
import { registerOeOauth } from "./oe-oauth/register.js";
|
|
22
|
-
import { oeOauthEnabled, loadOeOauthConfig } from "./oe-oauth/config.js";
|
|
23
22
|
import { registerAgentBrowser } from "./browser/register.js";
|
|
24
23
|
import { agentBrowserEnabled, loadAgentBrowserConfig } from "./browser/config.js";
|
|
25
24
|
import { registerAwsAccess } from "./aws/register.js";
|
|
@@ -27,8 +26,7 @@ import { awsAccessEnabled } from "./aws/config.js";
|
|
|
27
26
|
import { registerDirectoryAdapter } from "./directory/register.js";
|
|
28
27
|
import { registerGatewayRouteProbe } from "./model/gateway-probe.js";
|
|
29
28
|
import { registerNeon } from "./postgres/neon.js";
|
|
30
|
-
import {
|
|
31
|
-
import { registerDbCredentialBroker, CREDENTIAL_KEY_ENV, registerGitHubConfigPrProvider, setBlobPutter, registerAuditDropCounter, emitTelemetry, getOperationalStore, bootVerifyAuditChainTail, bootBackfillLinkTenants, runBootNotices, registerBootNotice, announceJudgeWithoutRules, registerOperationalPgliteLazy, resolveOperationalSelection, resolveMemoryProviderId, onVercel, declareProviderSelection, assertConnectorMemoryGrants, applySubtreeSurfaceClaims, reconcileSurfaceCommands, } from "@open-everywhere/core/agent/adapter-api.js";
|
|
29
|
+
import { registerDbCredentialBroker, CREDENTIAL_KEY_ENV, registerGitHubConfigPrProvider, registerAuditDropCounter, emitTelemetry, getOperationalStore, bootVerifyAuditChainTail, bootBackfillLinkTenants, runBootNotices, registerBootNotice, announceJudgeWithoutRules, registerOperationalPgliteLazy, resolveOperationalSelection, resolveMemoryProviderId, onVercel, getSettings, declareProviderSelection, assertConnectorMemoryGrants, applySubtreeSurfaceClaims, reconcileSurfaceCommands, } from "@open-everywhere/core/agent/adapter-api.js";
|
|
32
30
|
/**
|
|
33
31
|
* The store decision, pure. 🔴 THE SELECTION IS THE RUNTIME'S OWN RULE, NOT A SECOND ENV TEST
|
|
34
32
|
* (OPE-2230). Both selectors default to postgres when `DATABASE_URL` is present. A hand-written
|
|
@@ -37,16 +35,17 @@ import { registerDbCredentialBroker, CREDENTIAL_KEY_ENV, registerGitHubConfigPrP
|
|
|
37
35
|
*
|
|
38
36
|
* The PGlite floor (OPE-113) arms when the operational selection resolves to it (no provider named,
|
|
39
37
|
* no `DATABASE_URL`). It stays off on Vercel, where the floor is per-instance and ephemeral, unless
|
|
40
|
-
* `
|
|
41
|
-
*
|
|
38
|
+
* the `storage.allowEphemeralOperational` setting names the single-instance escape (it was
|
|
39
|
+
* `OE_ALLOW_EPHEMERAL_OPERATIONAL=1` until OPE-2411). The Neon gate never opens on the floor's
|
|
40
|
+
* branch, so the two never both register.
|
|
42
41
|
*/
|
|
43
|
-
export function decideStoreWiring(env, vercel) {
|
|
42
|
+
export function decideStoreWiring(env, vercel, allowEphemeralOperational) {
|
|
44
43
|
const operational = resolveOperationalSelection(env);
|
|
45
44
|
const postgresSelected = resolveMemoryProviderId(env) === "postgres" || (operational.id === "postgres" && operational.floor === "none");
|
|
46
45
|
return {
|
|
47
46
|
operational,
|
|
48
47
|
neon: postgresSelected && Boolean(env.DATABASE_URL),
|
|
49
|
-
pgliteFloor: operational.floor === "pglite" && (!vercel ||
|
|
48
|
+
pgliteFloor: operational.floor === "pglite" && (!vercel || allowEphemeralOperational),
|
|
50
49
|
};
|
|
51
50
|
}
|
|
52
51
|
let WIRED;
|
|
@@ -76,12 +75,12 @@ async function wireDefaultAdapters(options) {
|
|
|
76
75
|
// ids as opaque strings, and every platform-keyed registration seam then refuses anything outside
|
|
77
76
|
// them. A row that lands ahead of the declaration cannot be retracted (core warns if one does).
|
|
78
77
|
const providers = declareProviderSelection(options.providers.map((p) => p.id));
|
|
79
|
-
// Connector-plane user-auth flow (OPE-88): own-rolled OAuth
|
|
80
|
-
// OE_OAUTH_ENABLED
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
78
|
+
// Connector-plane user-auth flow (OPE-88): own-rolled OAuth. Since OPE-2411 it ALWAYS registers — the
|
|
79
|
+
// OE_OAUTH_ENABLED master flag and the OE_OAUTH_CONFIG env map are deleted. Each connector declares its
|
|
80
|
+
// own sign-in in its connection module, next to its URL, and the vault reads those declarations per
|
|
81
|
+
// call. A mint for an OAuth home nothing declares fails closed unless the vault already holds a client
|
|
82
|
+
// record or an unexpired token for it; the off switch is the bundle's `user-oauth` grant. There is no vendor fallback.
|
|
83
|
+
registerOeOauth();
|
|
85
84
|
// The "db" credential broker (task #113): registered iff its AES key exists. Without the key the
|
|
86
85
|
// broker fails closed on store and read, so registering it would falsely offer the "Set API key"
|
|
87
86
|
// chat intake, which keys off the broker being REGISTERED.
|
|
@@ -93,7 +92,7 @@ async function wireDefaultAdapters(options) {
|
|
|
93
92
|
// registerAgentBrowser can still refuse (returns false, loud) when the vendor binding did not take.
|
|
94
93
|
const browserCfg = agentBrowserEnabled() ? loadAgentBrowserConfig() : undefined;
|
|
95
94
|
const agentBrowser = browserCfg ? registerAgentBrowser(browserCfg) : false;
|
|
96
|
-
// The AWS-access layer: only when
|
|
95
|
+
// The AWS-access layer: only when the `aws.enabled` setting is armed. Flag-off ⇒ core's AWS mint and exec
|
|
97
96
|
// paths fail closed.
|
|
98
97
|
const awsAccess = awsAccessEnabled();
|
|
99
98
|
if (awsAccess)
|
|
@@ -114,9 +113,6 @@ async function wireDefaultAdapters(options) {
|
|
|
114
113
|
// The audit drop counter (audit-wedge WS-5). audit.ts cannot import telemetry.ts (a module-init
|
|
115
114
|
// cycle, and the one-chunk invariant), so this boot module injects the emitter.
|
|
116
115
|
registerAuditDropCounter((action, platform) => emitTelemetry("oe.audit.dropped", { "oe.action": action, "oe.platform": platform }));
|
|
117
|
-
// The Vercel Blob putter for the HTML-artifact hosting seam. Harmless when unused: the hosting
|
|
118
|
-
// path runs only for an org that opted in, and the putter fails loud without its OIDC env.
|
|
119
|
-
setBlobPutter(vercelBlobPutter);
|
|
120
116
|
// THE APP'S HOOK, after every default registration and before every check that reads them.
|
|
121
117
|
const customAdapters = options.customAdapters !== undefined;
|
|
122
118
|
if (options.customAdapters)
|
|
@@ -132,7 +128,7 @@ async function wireDefaultAdapters(options) {
|
|
|
132
128
|
// pre-approval rule behaves like `off`, so say so once. A boot notice, so it logs once per process,
|
|
133
129
|
// in the process that serves, and a failure costs one log line, never the boot.
|
|
134
130
|
registerBootNotice("approval-judge-no-rules", announceJudgeWithoutRules);
|
|
135
|
-
const store = decideStoreWiring(process.env, onVercel());
|
|
131
|
+
const store = decideStoreWiring(process.env, onVercel(), getSettings().storage.allowEphemeralOperational);
|
|
136
132
|
// Neon (hosted Postgres) is LIVE-ONLY: registerNeon() builds the driver only when called here.
|
|
137
133
|
if (store.neon)
|
|
138
134
|
await registerNeon();
|
|
@@ -153,7 +149,7 @@ async function wireDefaultAdapters(options) {
|
|
|
153
149
|
// twice, so a local start reconciles twice. A reconcile WRITES when the process holds the surface's
|
|
154
150
|
// credentials and the declared rooms differ from this checkout.
|
|
155
151
|
await reconcileSurfaceCommands();
|
|
156
|
-
WIRED = { providers, oeOauth:
|
|
152
|
+
WIRED = { providers, oeOauth: true, dbCredentialBroker, agentBrowser, awsAccess, customAdapters, store };
|
|
157
153
|
return WIRED;
|
|
158
154
|
}
|
|
159
155
|
// The boot-time store checks, in one place so they run either eagerly (hosted and sqlite paths, where
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-defaults.js","sourceRoot":"","sources":["../../agent/register-defaults.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,6CAA6C;AAC7C,EAAE;AACF,iGAAiG;AACjG,oGAAoG;AACpG,oGAAoG;AACpG,8FAA8F;AAC9F,qGAAqG;AACrG,oGAAoG;AACpG,+FAA+F;AAC/F,EAAE;AACF,+FAA+F;AAC/F,kGAAkG;AAClG,qGAAqG;AACrG,oGAAoG;AACpG,4DAA4D;AAC5D,EAAE;AACF,+FAA+F;AAC/F,+FAA+F;AAC/F,oDAAoD;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"register-defaults.js","sourceRoot":"","sources":["../../agent/register-defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export interface SandboxListing {
|
|
|
13
13
|
* docker daemon, or a platform.
|
|
14
14
|
*/
|
|
15
15
|
export interface SandboxStopper {
|
|
16
|
-
/** Backend id, matching `
|
|
16
|
+
/** Backend id, matching `sandbox.selfHostBackend` / eve's backend name. For logs and tests. */
|
|
17
17
|
readonly backend: string;
|
|
18
18
|
/** Does this backend bill sandbox runtime by wall clock? Only then is a stop priced. */
|
|
19
19
|
readonly metered: boolean;
|
|
@@ -87,11 +87,10 @@ export declare function createDockerStopper(run?: DockerRunner): SandboxStopper;
|
|
|
87
87
|
*/
|
|
88
88
|
export declare const justBashStopper: SandboxStopper;
|
|
89
89
|
/**
|
|
90
|
-
* The ONE "who stops the sandbox on this deployment" decision. It reads the SAME
|
|
91
|
-
*
|
|
92
|
-
* backend that runs and the backend that stops can never disagree.
|
|
93
|
-
*
|
|
94
|
-
* it rather than failing the turn.
|
|
90
|
+
* The ONE "who stops the sandbox on this deployment" decision. It reads the SAME rule the app
|
|
91
|
+
* reads to BUILD the backend — `resolveSandboxBackend()` over the host fact and the `sandbox.*`
|
|
92
|
+
* settings — so the backend that runs and the backend that stops can never disagree. Settings load
|
|
93
|
+
* refuses an unknown backend, so no value reaching this read can be one.
|
|
95
94
|
*/
|
|
96
95
|
export declare function resolveSandboxStopper(): SandboxStopper;
|
|
97
96
|
export declare function setSandboxStopperForTest(stopper: SandboxStopper | undefined): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-stop.d.ts","sourceRoot":"","sources":["../../../agent/sandbox/backend-stop.ts"],"names":[],"mappings":"AAQA;wFACwF;AACxF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B
|
|
1
|
+
{"version":3,"file":"backend-stop.d.ts","sourceRoot":"","sources":["../../../agent/sandbox/backend-stop.ts"],"names":[],"mappings":"AAQA;wFACwF;AACxF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wFAAwF;IACxF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,qFAAqF;IACrF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;0EACsE;IACtE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACnD,qFAAqF;IACrF,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AAED;6FAC6F;AAC7F,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAElD;AAID;;;GAGG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;4FAEwF;IACxF,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACxD;oGACgG;IAChG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;CAC9D;AAqBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,aAAoC,GAAG,cAAc,CAAC,MAAM,CAAC,CAUlG;AAED,eAAO,MAAM,aAAa,EAAE,cAc3B,CAAC;AAIF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAEhE;0FAC0F;AAC1F,MAAM,WAAW,YAAY;IAC3B,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;AAWD;mFACmF;AACnF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjE;AAOD,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,YAAkC,GAAG,cAAc,CA+C3F;AAID;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,cAc7B,CAAC;AAIF;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,cAAc,CAKtD;AAKD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,CAElF"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// peek first: eve's own `stop()` provisions, and a turn-end hook must never create a sandbox to stop one.
|
|
3
3
|
import { Sandbox } from "@vercel/sandbox";
|
|
4
4
|
import { execFile } from "node:child_process";
|
|
5
|
-
import {
|
|
5
|
+
import { resolveSandboxBackend } from "@open-everywhere/core/agent/adapter-api.js";
|
|
6
6
|
import { getRecordedSandboxName } from "./created-sandbox-registry.js";
|
|
7
7
|
/** Only a booted (or booting) sandbox is worth stopping; stopped/snapshotting are already done.
|
|
8
8
|
* Vercel's status vocabulary is the shared one — every other stopper normalises onto it. */
|
|
@@ -153,7 +153,7 @@ export function createDockerStopper(run = defaultDockerRunner) {
|
|
|
153
153
|
export const justBashStopper = {
|
|
154
154
|
backend: "just-bash",
|
|
155
155
|
metered: false,
|
|
156
|
-
ownership: "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.
|
|
156
|
+
ownership: "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",
|
|
157
157
|
async list() {
|
|
158
158
|
return [];
|
|
159
159
|
},
|
|
@@ -166,18 +166,18 @@ export const justBashStopper = {
|
|
|
166
166
|
};
|
|
167
167
|
// ── selection ─────────────────────────────────────────────────────────────────────────────────
|
|
168
168
|
/**
|
|
169
|
-
* The ONE "who stops the sandbox on this deployment" decision. It reads the SAME
|
|
170
|
-
*
|
|
171
|
-
* backend that runs and the backend that stops can never disagree.
|
|
172
|
-
*
|
|
173
|
-
* it rather than failing the turn.
|
|
169
|
+
* The ONE "who stops the sandbox on this deployment" decision. It reads the SAME rule the app
|
|
170
|
+
* reads to BUILD the backend — `resolveSandboxBackend()` over the host fact and the `sandbox.*`
|
|
171
|
+
* settings — so the backend that runs and the backend that stops can never disagree. Settings load
|
|
172
|
+
* refuses an unknown backend, so no value reaching this read can be one.
|
|
174
173
|
*/
|
|
175
174
|
export function resolveSandboxStopper() {
|
|
176
175
|
if (forcedStopper !== undefined)
|
|
177
176
|
return forcedStopper;
|
|
178
|
-
|
|
177
|
+
const backend = resolveSandboxBackend();
|
|
178
|
+
if (backend === "vercel")
|
|
179
179
|
return vercelStopper;
|
|
180
|
-
return
|
|
180
|
+
return backend === "justbash" ? justBashStopper : createDockerStopper();
|
|
181
181
|
}
|
|
182
182
|
/** Test seam: force the resolved stopper so the hook's own branching can be driven without a
|
|
183
183
|
* platform, credentials or a docker daemon. Pass `undefined` to restore real selection. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-stop.js","sourceRoot":"","sources":["../../../agent/sandbox/backend-stop.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,0GAA0G;AAE1G,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"backend-stop.js","sourceRoot":"","sources":["../../../agent/sandbox/backend-stop.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,0GAA0G;AAE1G,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAsCvE;6FAC6F;AAC7F,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC;AACtD,CAAC;AAyBD,MAAM,oBAAoB,GAAkB;IAC1C,KAAK,CAAC,SAAS,CAAC,SAAS;QACvB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAqB,EAAE,CAAC;QACjC,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACnG,OAAO,GAAG,CAAC;IACb,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,IAAI;QAClB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACrD,0FAA0F;YAC1F,yFAAyF;YACzF,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAG,GAAkB,oBAAoB;IACxE,OAAO,KAAK,EAAE,SAAS,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;YAC5E,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACjD,IAAI,MAAM,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,IAAI;IACb,SAAS,EACP,kIAAkI;IACpI,IAAI,EAAE,gBAAgB,EAAE;IACxB,KAAK,CAAC,IAAI,CAAC,IAAI;QACb,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS;QACzB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,iGAAiG;AAEjG;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAQhE,MAAM,mBAAmB,GAAiB,KAAK,EAAE,IAAI,EAAE,EAAE,CACvD,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC;IAC5D,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACzF,IAAI,GAAG;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;YAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL;mFACmF;AACnF,MAAM,UAAU,2BAA2B,CAAC,KAAa;IACvD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,SAAS,CAAC;IACpE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;6BAE6B;AAC7B,MAAM,0BAA0B,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAExD,MAAM,UAAU,mBAAmB,CAAC,GAAG,GAAiB,mBAAmB;IACzE,OAAO;QACL,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,KAAK;QACd,SAAS,EACP,4LAA4L;QAC9L,KAAK,CAAC,IAAI,CAAC,SAAS;YAClB,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,oBAAoB,IAAI,SAAS,EAAE,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;iBACtI,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAClC,6FAA6F;YAC7F,4FAA4F;YAC5F,oFAAoF;YACpF,4FAA4F;YAC5F,+EAA+E;YAC/E,IAAI,SAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,oDAAoD,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;YACjH,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,GAAG,GAAqB,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5D,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAS;gBAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACxC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAChC,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC5E,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,0BAA0B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACxG,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,2BAA2B,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI;YACb,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,CAAC,KAAK;YACT,qFAAqF;YACrF,yFAAyF;YACzF,yFAAyF;YACzF,2DAA2D;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iGAAiG;AAEjG;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,KAAK;IACd,SAAS,EACP,gRAAgR;IAClR,KAAK,CAAC,IAAI;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,KAAK,CAAC,IAAI;QACR,2CAA2C;IAC7C,CAAC;IACD,KAAK,CAAC,KAAK;QACT,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC;AAEF,iGAAiG;AAEjG;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IACtD,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,aAAa,CAAC;IAC/C,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAC1E,CAAC;AAED;4FAC4F;AAC5F,IAAI,aAAyC,CAAC;AAC9C,MAAM,UAAU,wBAAwB,CAAC,OAAmC;IAC1E,aAAa,GAAG,OAAO,CAAC;AAC1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-everywhere/adapters",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Open Everywhere adapters — the reference Vercel-hosted backends: AI Gateway models and pricing, Sandbox,
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "Open Everywhere adapters — the reference Vercel-hosted backends: AI Gateway models and pricing, Sandbox, Neon, OpenTelemetry, AWS and Okta.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
|
7
7
|
"eve",
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
"postgres",
|
|
11
11
|
"opentelemetry",
|
|
12
12
|
"sandbox",
|
|
13
|
-
"blob",
|
|
14
13
|
"okta",
|
|
15
14
|
"aws"
|
|
16
15
|
],
|
|
@@ -61,10 +60,6 @@
|
|
|
61
60
|
"types": "./dist/agent/aws/sts.d.ts",
|
|
62
61
|
"default": "./dist/agent/aws/sts.js"
|
|
63
62
|
},
|
|
64
|
-
"./agent/blob/hosting.js": {
|
|
65
|
-
"types": "./dist/agent/blob/hosting.d.ts",
|
|
66
|
-
"default": "./dist/agent/blob/hosting.js"
|
|
67
|
-
},
|
|
68
63
|
"./agent/browser/config.js": {
|
|
69
64
|
"types": "./dist/agent/browser/config.d.ts",
|
|
70
65
|
"default": "./dist/agent/browser/config.js"
|
|
@@ -197,8 +192,7 @@
|
|
|
197
192
|
},
|
|
198
193
|
"dependencies": {
|
|
199
194
|
"@neondatabase/serverless": "^1.1.0",
|
|
200
|
-
"@open-everywhere/core": "0.
|
|
201
|
-
"@vercel/blob": "^2.6.1",
|
|
195
|
+
"@open-everywhere/core": "0.5.0",
|
|
202
196
|
"@vercel/otel": "^2.1.3",
|
|
203
197
|
"@vercel/sandbox": "^3.2.1",
|
|
204
198
|
"ai": "^7.0.105"
|
package/agent/blob/hosting.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
// Vercel Blob putter — the vendor half of core's BlobPutter seam. Auth is OIDC and never a read-write token;
|
|
2
|
-
// with the OIDC env absent it FAILS LOUD, because an opted-in unconfigured deployment is a misconfiguration.
|
|
3
|
-
|
|
4
|
-
import type { BlobPutter } from "@open-everywhere/core/agent/adapter-api.js";
|
|
5
|
-
|
|
6
|
-
/** The real putter — `put` with public access, OIDC auth and a random filename suffix. */
|
|
7
|
-
export const vercelBlobPutter: BlobPutter = async ({ pathname, body, contentType }) => {
|
|
8
|
-
if (!process.env.VERCEL_OIDC_TOKEN || !process.env.BLOB_STORE_ID) {
|
|
9
|
-
throw new Error(
|
|
10
|
-
"blob hosting is opted in but not configured — VERCEL_OIDC_TOKEN and BLOB_STORE_ID must be present " +
|
|
11
|
-
"(Vercel populates them once a Blob store is connected to this project). This deployment writes Blobs " +
|
|
12
|
-
"via OIDC, never a BLOB_READ_WRITE_TOKEN.",
|
|
13
|
-
);
|
|
14
|
-
}
|
|
15
|
-
// Dynamic import keeps the vendor SDK off any bundling path that never hosts an artifact
|
|
16
|
-
// (same discipline as post_file's node:fs import). OIDC creds are read from the environment.
|
|
17
|
-
const { put } = await import("@vercel/blob");
|
|
18
|
-
const res = await put(pathname, Buffer.from(body), {
|
|
19
|
-
access: "public",
|
|
20
|
-
contentType,
|
|
21
|
-
addRandomSuffix: true, // namespace safety inside the reserved prefix — no collisions/guessing.
|
|
22
|
-
});
|
|
23
|
-
return { url: res.url };
|
|
24
|
-
};
|