@open-everywhere/adapters 0.1.5 โ†’ 0.2.1

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 (32) hide show
  1. package/NOTICE +9 -9
  2. package/README.md +9 -1
  3. package/agent/browser/sandbox.ts +27 -5
  4. package/agent/instrumentation.ts +95 -36
  5. package/agent/model/approval-judge.ts +1 -1
  6. package/agent/oe-oauth/config.ts +1 -1
  7. package/agent/oe-oauth/token-vault.ts +3 -2
  8. package/agent/register-defaults.ts +269 -0
  9. package/agent/sandbox/vercel-lifecycle.ts +22 -1
  10. package/dist/agent/browser/sandbox.d.ts +8 -2
  11. package/dist/agent/browser/sandbox.d.ts.map +1 -1
  12. package/dist/agent/browser/sandbox.js +19 -2
  13. package/dist/agent/browser/sandbox.js.map +1 -1
  14. package/dist/agent/instrumentation.d.ts +24 -4
  15. package/dist/agent/instrumentation.d.ts.map +1 -1
  16. package/dist/agent/instrumentation.js +83 -34
  17. package/dist/agent/instrumentation.js.map +1 -1
  18. package/dist/agent/model/approval-judge.d.ts +1 -1
  19. package/dist/agent/model/approval-judge.js +1 -1
  20. package/dist/agent/oe-oauth/config.d.ts +1 -1
  21. package/dist/agent/oe-oauth/config.d.ts.map +1 -1
  22. package/dist/agent/oe-oauth/token-vault.d.ts.map +1 -1
  23. package/dist/agent/oe-oauth/token-vault.js +4 -2
  24. package/dist/agent/oe-oauth/token-vault.js.map +1 -1
  25. package/dist/agent/register-defaults.d.ts +76 -0
  26. package/dist/agent/register-defaults.d.ts.map +1 -0
  27. package/dist/agent/register-defaults.js +182 -0
  28. package/dist/agent/register-defaults.js.map +1 -0
  29. package/dist/agent/sandbox/vercel-lifecycle.d.ts.map +1 -1
  30. package/dist/agent/sandbox/vercel-lifecycle.js +20 -1
  31. package/dist/agent/sandbox/vercel-lifecycle.js.map +1 -1
  32. package/package.json +10 -5
@@ -0,0 +1,182 @@
1
+ // THE DEFAULT ADAPTER WIRING (OPE-2301) โ€” `registerDefaultAdapters()`, the boot call every app makes
2
+ // from its `agent/lib/register-adapters.ts`.
3
+ //
4
+ // ๐Ÿ”ด WHY THIS IS PRODUCT CODE AND NOT A TEMPLATE FILE. The wiring used to live in each app, as a
5
+ // copy of the template's `agent/lib/register-adapters.ts`. `npx @open-everywhere/create` copies the
6
+ // template once, and an upgrade touches only `package.json`, so every upgrade had to hand-merge the
7
+ // copy. It drifted twice: a 0.1.2 copy registered no Postgres client on a bare `DATABASE_URL`
8
+ // (OPE-2230), and the test-bed's copy broke the 0.1.5 build with a boot refusal. The selection rules
9
+ // and the floors below are product logic, not consumer config. Here they ship with the package, and
10
+ // an upgrade picks them up. The app's file is one call plus an optional `customAdapters` hook.
11
+ //
12
+ // ๐Ÿ”ด STATIC IMPORTS ON PURPOSE. Eve bundles each authored module and its import graph into ONE
13
+ // rolldown chunk. A literal dynamic `import("โ€ฆ")` of an internal module code-splits into a second
14
+ // chunk and trips Eve's "expected one authored module" invariant. Laziness is kept where it matters:
15
+ // `registerNeon()` builds the `@neondatabase/serverless` driver through an inner variable-specifier
16
+ // import, and only when it is CALLED (the Neon gate below).
17
+ //
18
+ // ๐Ÿ”ด THE APP'S INPUTS ARE ARGUMENTS. The selection table (`providers.generated.ts`, `oe build`
19
+ // output) and the memory config are app files, so the app passes them in. This module names no
20
+ // provider bundle: it drives the table it receives.
21
+ import { registerOeOauth } from "./oe-oauth/register.js";
22
+ import { oeOauthEnabled, loadOeOauthConfig } from "./oe-oauth/config.js";
23
+ import { registerAgentBrowser } from "./browser/register.js";
24
+ import { agentBrowserEnabled, loadAgentBrowserConfig } from "./browser/config.js";
25
+ import { registerAwsAccess } from "./aws/register.js";
26
+ import { awsAccessEnabled } from "./aws/config.js";
27
+ import { registerDirectoryAdapter } from "./directory/register.js";
28
+ import { registerGatewayRouteProbe } from "./model/gateway-probe.js";
29
+ import { registerNeon } from "./postgres/neon.js";
30
+ import { vercelBlobPutter } from "./blob/hosting.js";
31
+ import { registerDbCredentialBroker, CREDENTIAL_KEY_ENV, registerGitHubConfigPrProvider, setBlobPutter, registerAuditDropCounter, emitTelemetry, getOperationalStore, bootVerifyAuditChainTail, bootBackfillLinkTenants, runBootNotices, registerOperationalPgliteLazy, resolveOperationalSelection, resolveMemoryProviderId, onVercel, declareProviderSelection, assertConnectorMemoryGrants, applySubtreeSurfaceClaims, reconcileSurfaceCommands, } from "@open-everywhere/core/agent/adapter-api.js";
32
+ /**
33
+ * The store decision, pure. ๐Ÿ”ด THE SELECTION IS THE RUNTIME'S OWN RULE, NOT A SECOND ENV TEST
34
+ * (OPE-2230). Both selectors default to postgres when `DATABASE_URL` is present. A hand-written
35
+ * `OE_MEMORY_PROVIDER === "postgres"` test refuses to build the driver for exactly the deployment
36
+ * the default exists for: the Neon Marketplace integration sets `DATABASE_URL` and nothing else.
37
+ *
38
+ * The PGlite floor (OPE-113) arms when the operational selection resolves to it (no provider named,
39
+ * no `DATABASE_URL`). It stays off on Vercel, where the floor is per-instance and ephemeral, unless
40
+ * `OE_ALLOW_EPHEMERAL_OPERATIONAL=1` names the single-instance escape. The Neon gate never opens on
41
+ * the floor's branch, so the two never both register.
42
+ */
43
+ export function decideStoreWiring(env, vercel) {
44
+ const operational = resolveOperationalSelection(env);
45
+ const postgresSelected = resolveMemoryProviderId(env) === "postgres" || (operational.id === "postgres" && operational.floor === "none");
46
+ return {
47
+ operational,
48
+ neon: postgresSelected && Boolean(env.DATABASE_URL),
49
+ pgliteFloor: operational.floor === "pglite" && (!vercel || env.OE_ALLOW_EPHEMERAL_OPERATIONAL === "1"),
50
+ };
51
+ }
52
+ let WIRED;
53
+ let STARTED;
54
+ /** What `registerDefaultAdapters()` wired in this process, or `undefined` before it runs. */
55
+ export function defaultAdapterWiring() {
56
+ return WIRED;
57
+ }
58
+ /**
59
+ * Wire every default adapter, the selected provider bundles and the operational store. Call it from
60
+ * the app's `agent/lib/register-adapters.ts`, with `await` at module top level.
61
+ * The wiring runs ONCE per process. A second run would declare the provider selection again (which
62
+ * clears the gate's admitted and refused records), and run every bundle's register(), the boot
63
+ * checks and the slash-command reconcile a second time.
64
+ * ๐Ÿ”ด A SECOND CALL RETURNS THE FIRST CALL'S RESULT; IT DOES NOT THROW. eve 0.71's authored-module
65
+ * loader (`internal/authored-module-loader.js`) bundles and evaluates `agent/agent.ts` more than once
66
+ * in one `eve build` process, and each evaluation runs `register-adapters.ts` again. This module and
67
+ * core stay external, so the second evaluation shares the registries the first one filled. A throw
68
+ * here failed that evaluation and the build (OPE-2346).
69
+ */
70
+ export function registerDefaultAdapters(options) {
71
+ STARTED ??= wireDefaultAdapters(options);
72
+ return STARTED;
73
+ }
74
+ async function wireDefaultAdapters(options) {
75
+ // PROVIDER SELECTION โ€” declared FIRST, before any bundle registers (OPE-116 stage 5). Core takes the
76
+ // ids as opaque strings, and every platform-keyed registration seam then refuses anything outside
77
+ // them. A row that lands ahead of the declaration cannot be retracted (core warns if one does).
78
+ const providers = declareProviderSelection(options.providers.map((p) => p.id));
79
+ // Connector-plane user-auth flow (OPE-88): own-rolled OAuth, registered only when the master flag
80
+ // OE_OAUTH_ENABLED is armed AND a provider config block is present. Otherwise no flow registers and
81
+ // core's OAuth mint paths fail closed. There is no vendor fallback.
82
+ const oeOauthCfg = oeOauthEnabled() ? loadOeOauthConfig() : undefined;
83
+ if (oeOauthCfg)
84
+ registerOeOauth({ providers: oeOauthCfg });
85
+ // The "db" credential broker (task #113): registered iff its AES key exists. Without the key the
86
+ // broker fails closed on store and read, so registering it would falsely offer the "Set API key"
87
+ // chat intake, which keys off the broker being REGISTERED.
88
+ const dbCredentialBroker = Boolean(process.env[CREDENTIAL_KEY_ENV]);
89
+ if (dbCredentialBroker)
90
+ registerDbCredentialBroker();
91
+ // The agent-browser toolkit (OPE-43). The platform gate is inside loadAgentBrowserConfig
92
+ // (OPE-1793): off Vercel the config is `undefined` and nothing registers.
93
+ // registerAgentBrowser can still refuse (returns false, loud) when the vendor binding did not take.
94
+ const browserCfg = agentBrowserEnabled() ? loadAgentBrowserConfig() : undefined;
95
+ const agentBrowser = browserCfg ? registerAgentBrowser(browserCfg) : false;
96
+ // The AWS-access layer: only when OE_AWS_ENABLED is armed. Flag-off โ‡’ core's AWS mint and exec
97
+ // paths fail closed.
98
+ const awsAccess = awsAccessEnabled();
99
+ if (awsAccess)
100
+ registerAwsAccess();
101
+ // The identity-DIRECTORY plane: a no-op unless OE_DIRECTORY_PROVIDER names an adapter, and LOUD
102
+ // when it names one whose config is incomplete.
103
+ registerDirectoryAdapter();
104
+ // The GitHub config-repo PR mechanism, the default ConfigPrProvider (OPE-86). Unconditional and
105
+ // harmless when unused. A self-host swaps in its own provider from `customAdapters`.
106
+ registerGitHubConfigPrProvider();
107
+ // THE PROVIDER BUNDLES: one boot call per SELECTED bundle, straight from the generated table.
108
+ for (const provider of options.providers) {
109
+ provider.register();
110
+ }
111
+ // The deployment-status surface's model probe (OPE-2230). It registers a function, and nothing
112
+ // calls it until somebody reads `GET /eve/v1/oe/status`.
113
+ registerGatewayRouteProbe();
114
+ // The audit drop counter (audit-wedge WS-5). audit.ts cannot import telemetry.ts (a module-init
115
+ // cycle, and the one-chunk invariant), so this boot module injects the emitter.
116
+ 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
+ // THE APP'S HOOK, after every default registration and before every check that reads them.
121
+ const customAdapters = options.customAdapters !== undefined;
122
+ if (options.customAdapters)
123
+ await options.customAdapters();
124
+ // THE PREFETCH INVARIANT (OPE-390), fail-LOUD. It runs after the bundles register, because a
125
+ // connector-owned memory capability is DECLARED by its bundle's register(). It refuses a domain
126
+ // whose memory names a connector-owned silo the domain holds no connector grant for.
127
+ assertConnectorMemoryGrants(options.memory.domains(), options.memory.silos(), options.memory.grants);
128
+ // THE SUBTREE CLAIM (OPE-539), for the same boot-order reason: the platform that honours
129
+ // `subtree: true` declares so from its own bundle's register().
130
+ applySubtreeSurfaceClaims();
131
+ const store = decideStoreWiring(process.env, onVercel());
132
+ // Neon (hosted Postgres) is LIVE-ONLY: registerNeon() builds the driver only when called here.
133
+ if (store.neon)
134
+ await registerNeon();
135
+ // The embedded PGlite floor, armed LAZILY (OPE-391). The store registers now, but the lock, the
136
+ // WASM boot and the schema init happen on the first QUERY. `eve start` evaluates the app module
137
+ // in the CLI parent and again in the server child, and an eager arm made the parent the lock
138
+ // holder. The boot store checks ride along as the first-open callback, so they run once, in the
139
+ // process that uses the store.
140
+ if (store.pgliteFloor)
141
+ registerOperationalPgliteLazy(undefined, runBootStoreChecks);
142
+ else
143
+ await runBootStoreChecks();
144
+ // SLASH COMMANDS REGISTER FROM THE DEPLOYMENT ITSELF (OPE-1687). The app declares WHICH ROOMS
145
+ // (`declareSurfaceCommandScope`); each selected bundle declared HOW in the loop above. AWAITED, and
146
+ // it never throws: a lambda can freeze the moment it answers, and a floating promise would be
147
+ // cancelled on the cold start that had the work to do. The reconciler owns the latency bound (a
148
+ // short timeout per vendor call, no 429 backoff, one budget). `eve start` evaluates the app module
149
+ // twice, so a local start reconciles twice. A reconcile WRITES when the process holds the surface's
150
+ // credentials and the declared rooms differ from this checkout.
151
+ await reconcileSurfaceCommands();
152
+ WIRED = { providers, oeOauth: oeOauthCfg !== undefined, dbCredentialBroker, agentBrowser, awsAccess, customAdapters, store };
153
+ return WIRED;
154
+ }
155
+ // The boot-time store checks, in one place so they run either eagerly (hosted and sqlite paths, where
156
+ // the store is live the moment it registers) or on the PGlite floor's FIRST OPEN. Availability over
157
+ // integrity: none of them throws.
158
+ // 1. The audit hash-chain tail-check (OPE-52): one loud warn on any break.
159
+ // 2. The identity-link tenant backfill (OPE-309): fills blank `tenant` columns only.
160
+ // 3. The registered boot notices (OPE-2231): a selected bundle registers a notice from its own
161
+ // register() call, and this drains the registry. The drain catches each notice separately.
162
+ async function runBootStoreChecks() {
163
+ try {
164
+ await bootVerifyAuditChainTail(getOperationalStore());
165
+ }
166
+ catch {
167
+ /* store not resolvable โ€” its first real use raises the reason loudly; skip the check */
168
+ }
169
+ try {
170
+ await bootBackfillLinkTenants();
171
+ }
172
+ catch {
173
+ /* store not resolvable โ€” see above; bootBackfillLinkTenants swallows everything else */
174
+ }
175
+ try {
176
+ await runBootNotices();
177
+ }
178
+ catch {
179
+ /* unreachable โ€” runBootNotices catches per notice; see core boot/notices.ts */
180
+ }
181
+ }
182
+ //# sourceMappingURL=register-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-defaults.js","sourceRoot":"","sources":["../../agent/register-defaults.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vercel-lifecycle.d.ts","sourceRoot":"","sources":["../../../agent/sandbox/vercel-lifecycle.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAAyB,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKhH,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,CAAC;AAMhE;;mFAEmF;AACnF,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,cAAwC,EACjD,GAAG,GAAE,MAAM,MAAiB,GAC3B,OAAO,CAAC,cAAc,EAAE,CAAC,CAc3B;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAc1G;AAWD,oEAAoE;AACpE,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,IAAI,SAAS,MAAM,EAAE,CAMpE;AAwCD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGnG"}
1
+ {"version":3,"file":"vercel-lifecycle.d.ts","sourceRoot":"","sources":["../../../agent/sandbox/vercel-lifecycle.ts"],"names":[],"mappings":"AAaA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAAyB,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKhH,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,CAAC;AAMhE;;mFAEmF;AACnF,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,cAAwC,EACjD,GAAG,GAAE,MAAM,MAAiB,GAC3B,OAAO,CAAC,cAAc,EAAE,CAAC,CAc3B;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAc1G;AAWD,oEAAoE;AACpE,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,IAAI,SAAS,MAAM,EAAE,CAMpE;AAmDD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGnG"}
@@ -1,7 +1,17 @@
1
1
  // Stop-after-turn sandbox lifecycle โ€” this file owns the DECISION, backend-stop.ts the mechanics. It exists
2
2
  // because a session VM is billed for its whole idle tail; every failure is fail-soft to the `timeout` fuse.
3
+ //
4
+ // ๐Ÿ”ด ON A WORK SESSION THE RULE IS "STOP WHEN IDLE", NOT "STOP AFTER THE TURN" (OPE-2341, placement ยง2.9).
5
+ // In the three-tier shape the WORK SESSION (W) owns the conversation's sandbox, and every job of the
6
+ // conversation runs in it. A W turn can end while W still owes a job: a job forwarded and not yet
7
+ // started, or a task whose settlement has not run yet. The session-local live set does not see the
8
+ // first, so the old rule stopped the VM under a job that was about to run in it. So on W the stop also
9
+ // needs W's DURABLE ledger to owe nothing (core channels/work-generation.ts `workSessionSandboxState`).
10
+ // The rule for every other session is unchanged: a seat has no sandbox of its own, and a two-tier seat
11
+ // keeps the stop after its turn. `timeoutMs` stays the fuse, so on W it is the longest a JOB may hold
12
+ // the VM, not the longest turn.
3
13
  import { defineHook } from "eve/hooks";
4
- import { bindFrom, domainKeyOf, resolvePartition, appendUsageEvent, usageForSession, recordSpend, periodOf, estimateSandboxCostUsd, routineIdOf, turnSurfaceMode, getSettings, isSubagentChildContext, liveTaskIds, subagentParentSessionId } from "@open-everywhere/core/agent/adapter-api.js";
14
+ import { bindFrom, domainKeyOf, resolvePartition, appendUsageEvent, usageForSession, recordSpend, periodOf, estimateSandboxCostUsd, routineIdOf, turnSurfaceMode, getSettings, isSubagentChildContext, liveTaskIds, subagentParentSessionId, workSessionSandboxState } from "@open-everywhere/core/agent/adapter-api.js";
5
15
  import { resolveSandboxStopper, shouldStop } from "./backend-stop.js";
6
16
  // Re-exported so the one "is this sandbox up?" predicate and the one listing shape stay
7
17
  // single-homed in backend-stop.ts while their existing import sites keep working
@@ -106,6 +116,15 @@ async function onTurnEnd(ctx, outcome) {
106
116
  `[${holding.join(", ")}]; the next turn end that finds none sweeps it`);
107
117
  return;
108
118
  }
119
+ // ๐Ÿ”ด OPE-2341 โ€” A WORK SESSION STOPS ITS SANDBOX ONLY WHEN IDLE (see the file header). Fail-closed:
120
+ // an unreadable ledger reads as busy, and the VM then idles to its fuse instead of dying under a job.
121
+ const work = await workSessionSandboxState(ctx);
122
+ if (work.work && !work.idle) {
123
+ log(`turn.${outcome}: SKIPPED the stop โ€” this work session is not idle` +
124
+ (work.owed.length > 0 ? `: it still owes ${work.owed.length} job(s) or task(s) [${work.owed.join(", ")}]` : ": its ledger could not be read") +
125
+ "; the turn end that finds it idle sweeps it");
126
+ return;
127
+ }
109
128
  const stopped = await stopSessionSandboxes(ctx.session.id, stopper);
110
129
  if (stopped.length > 0) {
111
130
  log(`turn.${outcome}: stopped ${stopped.map((s) => s.name).join(", ")} (auto-snapshot; next turn auto-resumes)`);
@@ -1 +1 @@
1
- {"version":3,"file":"vercel-lifecycle.js","sourceRoot":"","sources":["../../../agent/sandbox/vercel-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vercel-lifecycle.js","sourceRoot":"","sources":["../../../agent/sandbox/vercel-lifecycle.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-everywhere/adapters",
3
- "version": "0.1.5",
3
+ "version": "0.2.1",
4
4
  "description": "Open Everywhere adapters โ€” the reference Vercel-hosted backends: AI Gateway models and pricing, Sandbox, Blob, Neon, OpenTelemetry, AWS and Okta.",
5
5
  "keywords": [
6
6
  "agent",
@@ -149,6 +149,10 @@
149
149
  "types": "./dist/agent/postgres/neon.d.ts",
150
150
  "default": "./dist/agent/postgres/neon.js"
151
151
  },
152
+ "./agent/register-defaults.js": {
153
+ "types": "./dist/agent/register-defaults.d.ts",
154
+ "default": "./dist/agent/register-defaults.js"
155
+ },
152
156
  "./agent/sandbox/backend-stop.js": {
153
157
  "types": "./dist/agent/sandbox/backend-stop.d.ts",
154
158
  "default": "./dist/agent/sandbox/backend-stop.js"
@@ -188,19 +192,20 @@
188
192
  "test:model-gateway": "tsx scripts/model-gateway-test.ts",
189
193
  "test:dream-judge-gateway": "tsx scripts/dream-judge-gateway-test.ts",
190
194
  "test:approval-judge-gateway": "tsx scripts/approval-judge-gateway-test.ts",
191
- "test:gateway-vision": "tsx scripts/gateway-vision-test.ts"
195
+ "test:gateway-vision": "tsx scripts/gateway-vision-test.ts",
196
+ "test:default-adapters": "tsx scripts/default-adapters-test.ts"
192
197
  },
193
198
  "dependencies": {
194
199
  "@neondatabase/serverless": "^1.1.0",
195
- "@open-everywhere/core": "0.1.5",
200
+ "@open-everywhere/core": "0.2.1",
196
201
  "@vercel/blob": "^2.6.1",
197
202
  "@vercel/otel": "^2.1.3",
198
203
  "@vercel/sandbox": "^3.2.1",
199
- "ai": "^7.0.11"
204
+ "ai": "^7.0.105"
200
205
  },
201
206
  "peerDependencies": {
202
207
  "@agent-browser/eve": "0.32.4",
203
- "eve": "0.54.3"
208
+ "eve": "0.71.0"
204
209
  },
205
210
  "devDependencies": {
206
211
  "@types/node": "latest",