replicas-engine 0.1.722 → 0.1.724

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.
@@ -2678,6 +2678,7 @@ Use this when:
2678
2678
  - The user asks to create or control an E2B sandbox
2679
2679
  - The user asks to invoke a connected Modal function
2680
2680
  - The user asks to access Vercel projects, deployments, domains, logs, or infrastructure
2681
+ - The user asks to inspect Vanta controls, tests, evidence, vendors, risks, or compliance data
2681
2682
  - The user asks to query or update a connected turbopuffer namespace
2682
2683
  - The user asks for PlanetScale organizations, databases, branches, or Insights data
2683
2684
  - The user asks to analyze text with Pangram`;
@@ -2756,6 +2757,15 @@ const deployments = await replicas.vercel.request('/v6/deployments?teamId=team_1
2756
2757
 
2757
2758
  Confirm mutations before using POST, PUT, PATCH, or DELETE.
2758
2759
 
2760
+ ## Vanta
2761
+
2762
+ Vanta is a native Manage API integration. Pass a relative path beginning with /v1/; Replicas exchanges the stored client credentials and caches the short-lived token server-side:
2763
+
2764
+ const controls = await replicas.vanta.request('/v1/controls?pageSize=100');
2765
+ const failingTests = await replicas.vanta.request('/v1/tests?statusMatchesAny=NEEDS_ATTENTION');
2766
+
2767
+ Use the optional \`method\` and \`body\` arguments for writes. Confirm mutations before using POST, PUT, PATCH, or DELETE. Paginate with the cursors returned by Vanta.
2768
+
2759
2769
  ## Modal
2760
2770
 
2761
2771
  Modal is a native integration and uses its official JavaScript SDK behind the Replicas gateway. Invoke a deployed function by name:
@@ -3899,6 +3909,16 @@ var EXPLICIT_PLUGIN_CATALOG = [
3899
3909
  category: "data",
3900
3910
  name: "turbopuffer",
3901
3911
  description: "Query and manage turbopuffer namespaces."
3912
+ },
3913
+ {
3914
+ id: "vanta",
3915
+ backend: "native",
3916
+ toolkit: "vanta",
3917
+ authType: "credentials",
3918
+ category: "data",
3919
+ name: "Vanta",
3920
+ description: "Review and manage controls, tests, evidence, vendors, risks, and compliance data.",
3921
+ scopes: ["environment"]
3902
3922
  }
3903
3923
  ];
3904
3924
  var HOSTED_COMPOSIO_PLUGIN_DEFINITIONS = [
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  HOOK_EXEC_MAX_BUFFER_BYTES,
4
4
  isVersionBelow
5
- } from "./chunk-CVGR6N24.js";
5
+ } from "./chunk-DBTSJLH6.js";
6
6
 
7
7
  // src/utils/presigned-upload.ts
8
8
  import { createReadStream } from "fs";
@@ -267,7 +267,7 @@ var DEFAULT_CODEX_ARGS = [
267
267
  var MIN_CODEX_CLI_VERSION = "0.144.6";
268
268
  var CODEX_UPGRADE_TIMEOUT_MS = 12e4;
269
269
  var codexCliVersionEnsured = null;
270
- var ENGINE_PACKAGE_VERSION = "0.1.722";
270
+ var ENGINE_PACKAGE_VERSION = "0.1.724";
271
271
  var INITIALIZE_METHOD = "initialize";
272
272
  var INITIALIZED_NOTIFICATION = "initialized";
273
273
  var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
@@ -12,7 +12,7 @@ import {
12
12
  isValidAgentProvider,
13
13
  parsePosixEnvFile,
14
14
  readReplicasRuntimeEnv
15
- } from "./chunk-CVGR6N24.js";
15
+ } from "./chunk-DBTSJLH6.js";
16
16
 
17
17
  // src/engine-env.ts
18
18
  import { readFileSync as readFileSync2 } from "fs";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  mayCreatePullRequest
4
- } from "./chunk-CVGR6N24.js";
4
+ } from "./chunk-DBTSJLH6.js";
5
5
 
6
6
  // src/services/post-tool-pr-notifier.ts
7
7
  async function notifyPostToolUse(toolName, toolInput) {
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  evaluateCommandProtection
4
- } from "./chunk-ZCSOQR4G.js";
4
+ } from "./chunk-IUOMR5VE.js";
5
5
  import {
6
6
  isRecord
7
7
  } from "./chunk-2RB7SIP3.js";
8
- import "./chunk-CVGR6N24.js";
8
+ import "./chunk-DBTSJLH6.js";
9
9
 
10
10
  // src/command-protection-hook.ts
11
11
  var provider = process.argv[2];
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  evaluateCommandProtection
4
- } from "./chunk-ZCSOQR4G.js";
4
+ } from "./chunk-IUOMR5VE.js";
5
5
  import {
6
6
  notifyPostToolUse
7
- } from "./chunk-2C23KJ6W.js";
7
+ } from "./chunk-PK45DCS5.js";
8
8
  import "./chunk-2RB7SIP3.js";
9
- import "./chunk-CVGR6N24.js";
9
+ import "./chunk-DBTSJLH6.js";
10
10
 
11
11
  // src/deepseek-command-protection-plugin.ts
12
12
  function replicasCommandProtection(context) {
@@ -4,12 +4,12 @@ import {
4
4
  buildCodexAgentEnv,
5
5
  putPresignedFile,
6
6
  recoverCompletedTurn
7
- } from "./chunk-FV5BY3GF.js";
7
+ } from "./chunk-EJRQEYTD.js";
8
8
  import {
9
9
  AGENT,
10
10
  getMemoryOutputSafetyViolation,
11
11
  headlessAgentRequestSchema
12
- } from "./chunk-CVGR6N24.js";
12
+ } from "./chunk-DBTSJLH6.js";
13
13
 
14
14
  // src/headless-agent.ts
15
15
  import { createHash } from "crypto";
package/dist/src/index.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  monolithService,
9
9
  reportCommandProtectionBlock,
10
10
  setAgentCredentialSnapshot
11
- } from "./chunk-ZCSOQR4G.js";
11
+ } from "./chunk-IUOMR5VE.js";
12
12
  import {
13
13
  ACCOUNT_RATE_LIMITS_UPDATED_METHOD,
14
14
  AGENT_MESSAGE_DELTA_METHOD,
@@ -35,7 +35,7 @@ import {
35
35
  execFileAsync,
36
36
  putPresignedFile,
37
37
  recoverCompletedTurn
38
- } from "./chunk-FV5BY3GF.js";
38
+ } from "./chunk-EJRQEYTD.js";
39
39
  import {
40
40
  isRecord as isRecord2
41
41
  } from "./chunk-2RB7SIP3.js";
@@ -216,7 +216,7 @@ import {
216
216
  shellQuotePosix,
217
217
  stripAgentDiagnosticErrors,
218
218
  withTimeout
219
- } from "./chunk-CVGR6N24.js";
219
+ } from "./chunk-DBTSJLH6.js";
220
220
 
221
221
  // src/index.ts
222
222
  import { serve } from "@hono/node-server";
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  notifyPostToolUse
4
- } from "./chunk-2C23KJ6W.js";
4
+ } from "./chunk-PK45DCS5.js";
5
5
  import {
6
6
  isRecord
7
7
  } from "./chunk-2RB7SIP3.js";
8
- import "./chunk-CVGR6N24.js";
8
+ import "./chunk-DBTSJLH6.js";
9
9
 
10
10
  // src/post-tool-pr-hook.ts
11
11
  async function main() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-engine",
3
- "version": "0.1.722",
3
+ "version": "0.1.724",
4
4
  "description": "Lightweight API server for Replicas workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -118,6 +118,8 @@ const planetscale = providerClient('/v1/engine/planetscale/api');
118
118
 
119
119
  const vercel = providerClient('/v1/engine/vercel/api');
120
120
 
121
+ const vanta = providerClient('/v1/engine/vanta/api');
122
+
121
123
  const pangramRequest = (operation, input) =>
122
124
  request('/v1/engine/pangram', { method: 'POST', body: { operation, ...input } });
123
125
  const pangram = {
@@ -134,5 +136,5 @@ const e2b = {
134
136
  kill: (sandboxId) => request('/v1/engine/e2b', { method: 'POST', body: { operation: 'kill', sandboxId } }),
135
137
  };
136
138
 
137
- export const replicas = { integrations, plugins, linear, slack, github, gitlab, sentry, modal, pangram, planetscale, vercel, turbopuffer, e2b };
139
+ export const replicas = { integrations, plugins, linear, slack, github, gitlab, sentry, modal, pangram, planetscale, vercel, vanta, turbopuffer, e2b };
138
140
  export default replicas;
@@ -184,6 +184,37 @@ describe('@replicas/sdk', () => {
184
184
  }
185
185
  });
186
186
 
187
+ test('reads and writes Vanta through the workspace gateway', async () => {
188
+ let observed: { path: string; body: unknown } | null = null;
189
+ const server = Bun.serve({
190
+ port: 0,
191
+ async fetch(request) {
192
+ observed = { path: new URL(request.url).pathname, body: await request.json() };
193
+ return Response.json({ results: { data: [] } });
194
+ },
195
+ });
196
+ process.env.REPLICAS_MONOLITH_URL = server.url.toString().replace(/\/$/, '');
197
+ process.env.REPLICAS_ENGINE_SECRET = 'engine-secret';
198
+ process.env.REPLICAS_WORKSPACE_ID = 'workspace-1';
199
+ try {
200
+ await replicas.vanta.request('/v1/controls?pageSize=100');
201
+ expect(observed).toEqual({
202
+ path: '/v1/engine/vanta/api',
203
+ body: { path: '/v1/controls?pageSize=100' },
204
+ });
205
+ await replicas.vanta.request('/v1/vendors/vendor-1', {
206
+ method: 'PATCH',
207
+ body: { status: 'ARCHIVED' },
208
+ });
209
+ expect(observed).toEqual({
210
+ path: '/v1/engine/vanta/api',
211
+ body: { path: '/v1/vendors/vendor-1', method: 'PATCH', body: { status: 'ARCHIVED' } },
212
+ });
213
+ } finally {
214
+ server.stop(true);
215
+ }
216
+ });
217
+
187
218
  test('runs E2B commands through the workspace gateway', async () => {
188
219
  let observed: { path: string; body: unknown } | null = null;
189
220
  const server = Bun.serve({
@@ -165,5 +165,14 @@ export declare const PLUGIN_CATALOG: readonly [{
165
165
  readonly category: "data";
166
166
  readonly name: "turbopuffer";
167
167
  readonly description: "Query and manage turbopuffer namespaces.";
168
+ }, {
169
+ readonly id: "vanta";
170
+ readonly backend: "native";
171
+ readonly toolkit: "vanta";
172
+ readonly authType: "credentials";
173
+ readonly category: "data";
174
+ readonly name: "Vanta";
175
+ readonly description: "Review and manage controls, tests, evidence, vendors, risks, and compliance data.";
176
+ readonly scopes: readonly ["environment"];
168
177
  }, ...HostedComposioPlugin[]];
169
178
  export {};
@@ -25,6 +25,7 @@ export interface PluginCatalogItem {
25
25
  category: PluginCategory;
26
26
  name: string;
27
27
  description: string;
28
+ scopes?: readonly PluginScope[];
28
29
  }
29
30
  export interface PluginConnectionSummary {
30
31
  id: string;
@@ -63,13 +64,20 @@ export interface PluginConnectModalRequest {
63
64
  tokenId: string;
64
65
  tokenSecret: string;
65
66
  }
67
+ export declare const VANTA_DEPLOYMENTS: readonly ["standard", "gov"];
68
+ export type VantaDeployment = (typeof VANTA_DEPLOYMENTS)[number];
69
+ export interface PluginConnectVantaRequest {
70
+ clientId: string;
71
+ clientSecret: string;
72
+ deployment: VantaDeployment;
73
+ }
66
74
  export declare const TURBOPUFFER_REGIONS: readonly ["aws-us-east-1", "aws-us-west-2", "gcp-us-central1", "gcp-europe-west3"];
67
75
  export type TurbopufferRegion = (typeof TURBOPUFFER_REGIONS)[number];
68
76
  export interface PluginConnectTurbopufferRequest {
69
77
  apiKey: string;
70
78
  region: TurbopufferRegion;
71
79
  }
72
- export type PluginConnectRequest = PluginConnectPostHogRequest | PluginConnectClickHouseRequest | PluginConnectApiKeyRequest | PluginConnectModalRequest | PluginConnectTurbopufferRequest;
80
+ export type PluginConnectRequest = PluginConnectPostHogRequest | PluginConnectClickHouseRequest | PluginConnectApiKeyRequest | PluginConnectModalRequest | PluginConnectVantaRequest | PluginConnectTurbopufferRequest;
73
81
  export interface ModalCallRequest {
74
82
  app: string;
75
83
  function: string;
@@ -63,6 +63,9 @@ export interface ReplicasSdk {
63
63
  vercel: {
64
64
  request<T = unknown>(path: string, options?: ProviderRequestOptions): Promise<T>;
65
65
  };
66
+ vanta: {
67
+ request<T = unknown>(path: `/v1/${string}`, options?: ProviderRequestOptions): Promise<T>;
68
+ };
66
69
  pangram: {
67
70
  detect<T = unknown>(input: import('./routes/plugins').PangramAnalyzeRequest): Promise<T>;
68
71
  plagiarism<T = unknown>(text: string): Promise<T>;