@agentstep/agent-sdk 0.5.36 → 0.5.37

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.
@@ -144,12 +144,20 @@ function handleCreateInteraction(request) {
144
144
  }
145
145
  }
146
146
  if (!environmentId) throw badRequest("no environment available");
147
+ const { listVaults } = await import("./db/vaults.js");
148
+ const { tenantFilter: getTenantFilter } = await import("./auth/scope.js");
149
+ const tenantVaults = listVaults({
150
+ tenantFilter: getTenantFilter(auth)
151
+ });
152
+ const agentVaults = tenantVaults.filter((v) => v.agent_id === agentId || !v.agent_id);
153
+ const vaultIds = agentVaults.filter((v) => !v.archived_at).map((v) => v.id);
147
154
  const sessReq = new Request(request.url.replace(/\/google\/v1beta\/interactions.*/, `/v1/sessions`), {
148
155
  method: "POST",
149
156
  headers: request.headers,
150
157
  body: JSON.stringify({
151
158
  agent: agentId,
152
- environment_id: environmentId
159
+ environment_id: environmentId,
160
+ ...vaultIds.length > 0 ? { vault_ids: vaultIds } : {}
153
161
  })
154
162
  });
155
163
  const sessRes = await handleCreateSession(sessReq);
@@ -4,7 +4,7 @@ import {
4
4
  handleCreateInteraction,
5
5
  handleDeleteInteraction,
6
6
  handleGetInteraction
7
- } from "../../chunk-RHSVYAI4.js";
7
+ } from "../../chunk-VRWXVIIG.js";
8
8
  import {
9
9
  handleCreateGoogleAgent,
10
10
  handleDeleteGoogleAgent,
@@ -3,7 +3,7 @@ import {
3
3
  handleCreateInteraction,
4
4
  handleDeleteInteraction,
5
5
  handleGetInteraction
6
- } from "../../chunk-RHSVYAI4.js";
6
+ } from "../../chunk-VRWXVIIG.js";
7
7
  import "../../chunk-RMCBO7K7.js";
8
8
  import "../../chunk-D2XITRN6.js";
9
9
  import "../../chunk-CWB2DQN5.js";
@@ -4,7 +4,7 @@ import {
4
4
  handleCreateInteraction,
5
5
  handleDeleteInteraction,
6
6
  handleGetInteraction
7
- } from "../chunk-RHSVYAI4.js";
7
+ } from "../chunk-VRWXVIIG.js";
8
8
  import {
9
9
  handleCreateGoogleAgent,
10
10
  handleDeleteGoogleAgent,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "license": "Apache-2.0",
3
3
  "name": "@agentstep/agent-sdk",
4
- "version": "0.5.36",
4
+ "version": "0.5.37",
5
5
  "description": "Core engine for AgentStep Gateway \u2014 backends, sandbox providers, session orchestration, and vault encryption.",
6
6
  "keywords": [
7
7
  "anthropic",
@@ -1,33 +0,0 @@
1
- export { handleCreateAgent, handleListAgents, handleGetAgent, handleUpdateAgent, handleDeleteAgent, handleArchiveAgent, handleListAgentVersions } from "./agents";
2
- export { handleCreateEnvironment, handleListEnvironments, handleGetEnvironment, handleUpdateEnvironment, handleDeleteEnvironment, handleArchiveEnvironment } from "./environments";
3
- export { handleCreateSession, handleListSessions, handleGetSession, handleUpdateSession, handleDeleteSession, handleArchiveSession } from "./sessions";
4
- export { handlePostEvents, handleListEvents } from "./events";
5
- export { handleSessionStream, prepareSessionStream } from "./stream";
6
- export { handleCreateVault, handleListVaults, handleGetVault, handleUpdateVault, handleArchiveVault, handleDeleteVault, handleListEntries, handleGetEntry, handlePutEntry, handleDeleteEntry } from "./vaults";
7
- export { handleCreateCredential, handleListCredentials, handleGetCredential, handleUpdateCredential, handleArchiveCredential, handleDeleteCredential, handleMcpOauthValidate } from "./credentials";
8
- export { handleBatch } from "./batch";
9
- export { handleListThreads, handleGetThread, handleArchiveThread, handleListThreadEvents, handleStreamThreadEvents } from "./threads";
10
- export { handleCreateMemoryStore, handleListMemoryStores, handleGetMemoryStore, handleUpdateMemoryStore, handleDeleteMemoryStore, handleCreateMemory, handleListMemories, handleGetMemory, handleUpdateMemory, handleDeleteMemory, handleListMemoryVersions, handleGetMemoryVersion, handleRedactMemoryVersion, handleArchiveMemoryStore, handleDreamMemoryStore } from "./memory";
11
- export { handleGetOpenApiSpec } from "./openapi";
12
- export { handleGetDocs } from "./docs";
13
- export { handleGetUI } from "./ui";
14
- export { handlePutSetting, handleGetSetting } from "./settings";
15
- export { handleGetProviderStatus } from "./providers";
16
- export { handleGetSkillsCatalog, handleSearchSkills, handleGetSkillsStats, handleGetSkillsSources, handleGetSkillsIndex, handleGetSkillsFeed } from "./skills";
17
- export { handleCreateSkill, handleGetSkill, handleDeleteSkill, handleCreateSkillVersion, handleListSkillVersions, handleGetSkillVersion, handleGetSkillVersionContent, handleDeleteSkillVersion } from "./skills-write";
18
- export { handleGetTrace, handleListTraces, handleExportTrace } from "./traces";
19
- export { handleGetMetrics, handleGetApiMetrics } from "./metrics";
20
- export { handleUploadFile, handleListFiles, handleGetFile, handleGetFileContent, handleDeleteFile } from "./files";
21
- export { handleAddResource, handleListResources, handleGetResource, handleUpdateResource, handleDeleteResource } from "./resources";
22
- export { handleCreateApiKey, handleListApiKeys, handleGetApiKey, handlePatchApiKey, handleRevokeApiKey, handleGetApiKeyActivity } from "./api_keys";
23
- export { handleAddUpstreamKey, handleListUpstreamKeys, handleGetUpstreamKey, handlePatchUpstreamKey, handleDeleteUpstreamKey } from "./upstream_keys";
24
- export { handleCreateTenant, handleListTenants, handleGetTenant, handlePatchTenant, handleArchiveTenant } from "./tenants";
25
- export { handleWhoami } from "./whoami";
26
- export { handleListAudit } from "./audit";
27
- export { handleGetLicense } from "./license";
28
- export { handleListModels } from "./models";
29
- export { handleListWork, handleGetWork, handleUpdateWork, handlePollWork, handleWorkStats, handleAckWork, handleHeartbeatWork, handleStopWork } from "./work";
30
- export { handleCreateUserProfile, handleListUserProfiles, handleGetUserProfile, handleUpdateUserProfile } from "./user-profiles";
31
- export { handleEnrollmentUrl, handleOAuthCallback } from "./enrollment";
32
- export { handleCreateInteraction, handleGetInteraction, handleDeleteInteraction, handleCancelInteraction, handleCreateGoogleAgent, handleListGoogleAgents, handleGetGoogleAgent, handleDeleteGoogleAgent, handleGetEnvironmentFiles } from "./google-compat";
33
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function handleGetOpenApiSpec(request: Request): Promise<Response>;
2
- //# sourceMappingURL=openapi.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/handlers/openapi.ts"],"names":[],"mappings":"AASA,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAI9E"}
package/dist/index.d.ts DELETED
@@ -1,48 +0,0 @@
1
- /**
2
- * @agentstep/agent-sdk — framework-agnostic Managed Agents engine.
3
- *
4
- * This is the public API surface. Adapters (Next.js, Hono, etc.) import
5
- * from here or from subpath exports like `@agentstep/agent-sdk/db/agents`.
6
- */
7
- export { routeWrap, jsonOk, type RouteContext } from "./http";
8
- export { ApiError, envelope, toResponse, badRequest, unauthorized, forbidden, notFound, conflict, tooManyRequests, serverBusy, type ErrorType, } from "./errors";
9
- export { ensureInitialized } from "./init";
10
- export { installShutdownHandlers } from "./shutdown";
11
- export { authenticate, authenticateAndIntercept } from "./auth/middleware";
12
- export type { Agent, AuthContext, EventRow, ManagedEvent, McpServerConfig, SessionStatus, } from "./types";
13
- export { pushPendingUserInput, type TurnInput } from "./state";
14
- export { getDb, closeDb } from "./db/client";
15
- export { getDrizzle } from "./db/drizzle";
16
- export { createApiKey, listApiKeys } from "./db/api_keys";
17
- export { DEFAULT_TENANT_ID, seedDefaultTenant, createTenant, getTenant, listTenants, archiveTenant, renameTenant, assignNullRowsToTenant, countNullTenantRows, } from "./db/tenants";
18
- export { createAgent, getAgent, updateAgent, archiveAgent, listAgents } from "./db/agents";
19
- export { createSession, getSession, getSessionRow, listSessions, updateSessionMutable, archiveSession, setOutcomeCriteria, } from "./db/sessions";
20
- export { createEnvironment, getEnvironment, listEnvironments, archiveEnvironment, deleteEnvironment, hasSessionsAttached, } from "./db/environments";
21
- export { appendEventsBatch, listEvents, rowToManagedEvent } from "./db/events";
22
- export { createVault, getVault, deleteVault, listVaults, listEntries, getEntry, setEntry, deleteEntry } from "./db/vaults";
23
- export { createMemoryStore, getMemoryStore, listMemoryStores, deleteMemoryStore, createOrUpsertMemory, getMemory, getMemoryByPath, listMemories, updateMemory, deleteMemory, } from "./db/memory";
24
- export { executeBatch, BatchError } from "./db/batch";
25
- export { isProxied, markProxied, unmarkProxied } from "./db/proxy";
26
- export { appendEvent, subscribe, dropEmitter } from "./sessions/bus";
27
- export { getActor, dropActor } from "./sessions/actor";
28
- export { interruptSession } from "./sessions/interrupt";
29
- export { runTurn, writePermissionResponse } from "./sessions/driver";
30
- export { injectMcpAuthHeaders } from "./sessions/mcp-auth";
31
- export { loadSessionSecrets } from "./sessions/secrets";
32
- export { reviewSessions } from "./dreaming/review";
33
- export type { DreamResult } from "./dreaming/review";
34
- export { enqueueTurn } from "./queue";
35
- export { startWorker } from "./workers/runner";
36
- export { resolveBackend } from "./backends/registry";
37
- export { resolveContainerProvider, resolveProvider, tryResolveProvider, resolveProviderName } from "./providers/registry";
38
- export { forwardToAnthropic, validateAnthropicProxy } from "./proxy/forward";
39
- export { releaseSession } from "./containers/lifecycle";
40
- export { kickoffEnvironmentSetup } from "./containers/setup";
41
- export { computeSignature, verifyWebhookSignature, SIGNATURE_HEADER, TIMESTAMP_HEADER, type VerifyInput, type VerifyResult, } from "./webhooks/signing";
42
- export { recordAudit, listAudit } from "./db/audit";
43
- export type { AuditLogEntry, AuditOutcome } from "./types";
44
- export { validateLicense, isEnterprise, hasFeature, requireFeature, getLicenseInfo, COMMUNITY_LIMITS, type Feature, } from "./license";
45
- export { buildOpenApiDocument } from "./openapi/spec";
46
- export { getConfig } from "./config";
47
- export { nowMs } from "./util/clock";
48
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}