agent-inspect 6.17.5 → 6.17.6

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.17.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 075dc87: Security containment: enforce Studio ingest byte limits, reject symlinks, stream and atomically stage imports (bundle / file-drop / GitHub / HTTP), remediate Vitest/nanoid and website/example advisories, add the default-workflow no-egress harness (#225), lock the published API surface snapshot (#211), correct Evidence format docs (no signing; required sourceHashes), and extend free-text redaction residual coverage.
8
+
3
9
  ## 6.17.5
4
10
 
5
11
  ### Patch Changes
package/README.md CHANGED
@@ -210,7 +210,7 @@ The root package is enough for custom capture, the CLI, checks, and Evidence wor
210
210
 
211
211
  ## Status and documentation
212
212
 
213
- **Current published baseline:** **6.17.5** · persisted schema `1.0` · Node.js `>=20` · MIT.
213
+ **Current published baseline:** **6.17.6** · persisted schema `1.0` · Node.js `>=20` · MIT.
214
214
 
215
215
  Legacy v0.1 and v0.2 traces remain readable. Check the npm badge and [changelog](CHANGELOG.md) for the current published version.
216
216
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-inspect",
3
- "version": "6.17.5",
3
+ "version": "6.17.6",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "description": "Local evidence debugger and trajectory-test toolkit for TypeScript AI agents — execution trees, TraceContract checks, Evidence v2, and read-only MCP",
@@ -211,18 +211,18 @@
211
211
  },
212
212
  "dependencies": {
213
213
  "chalk": "^5.3.0",
214
- "nanoid": "^5.0.9",
214
+ "nanoid": "^5.1.16",
215
215
  "commander": "^12.1.0"
216
216
  },
217
217
  "devDependencies": {
218
218
  "@changesets/cli": "^2.27.10",
219
219
  "@size-limit/preset-small-lib": "^11.1.6",
220
220
  "@types/node": "^22.10.2",
221
- "@vitest/coverage-v8": "^2.1.8",
221
+ "@vitest/coverage-v8": "^3.2.7",
222
222
  "size-limit": "^11.1.6",
223
223
  "tsup": "^8.3.5",
224
224
  "typescript": "^5.7.2",
225
- "vitest": "^2.1.8"
225
+ "vitest": "^3.2.7"
226
226
  },
227
227
  "scripts": {
228
228
  "clean": "pnpm -r exec -- node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
@@ -13,8 +13,9 @@ var readline = require('readline');
13
13
  var url = require('url');
14
14
  var module$1 = require('module');
15
15
  var commander = require('commander');
16
- var http = require('http');
17
16
  var child_process = require('child_process');
17
+ var util = require('util');
18
+ var http = require('http');
18
19
 
19
20
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
20
21
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -12580,7 +12581,7 @@ var init_src = __esm({
12580
12581
  });
12581
12582
 
12582
12583
  // package.json
12583
- var version = "6.17.5";
12584
+ var version = "6.17.6";
12584
12585
 
12585
12586
  // packages/cli/src/list.ts
12586
12587
  init_advanced();
@@ -18456,6 +18457,7 @@ function mergeSafetyExtensions(result, read, options) {
18456
18457
  }
18457
18458
 
18458
18459
  // packages/cli/src/check.ts
18460
+ var execFileAsync = util.promisify(child_process.execFile);
18459
18461
  var DEFAULT_SELECT = ["run.status"];
18460
18462
  function uniqueSelectIds(ids) {
18461
18463
  const seen = /* @__PURE__ */ new Set();
@@ -18902,8 +18904,7 @@ async function loadConfig(configPath) {
18902
18904
  const raw = await promises.readFile(absolute, "utf-8");
18903
18905
  return parseCheckConfig(JSON.parse(raw));
18904
18906
  }
18905
- const mod = await import(url.pathToFileURL(absolute).href);
18906
- return parseCheckConfig("default" in mod ? mod.default : mod);
18907
+ return parseCheckConfig(await importJsCheckConfig(absolute));
18907
18908
  } catch (error) {
18908
18909
  if (error instanceof CheckConfigError) throw error;
18909
18910
  const message = error instanceof Error ? error.message : String(error);
@@ -18913,6 +18914,46 @@ async function loadConfig(configPath) {
18913
18914
  );
18914
18915
  }
18915
18916
  }
18917
+ async function importJsCheckConfig(absolute) {
18918
+ const href = url.pathToFileURL(absolute).href;
18919
+ if (!process.env.VITEST) {
18920
+ const mod = await import(
18921
+ /* @vite-ignore */
18922
+ href
18923
+ );
18924
+ return "default" in mod ? mod.default : mod;
18925
+ }
18926
+ const script = `
18927
+ const mod = await import(${JSON.stringify(href)});
18928
+ const value = "default" in mod ? mod.default : mod;
18929
+ process.stdout.write(JSON.stringify({ ok: true, value }));
18930
+ `;
18931
+ const env2 = { ...process.env };
18932
+ delete env2.NODE_OPTIONS;
18933
+ delete env2.VITEST;
18934
+ delete env2.VITEST_WORKER_ID;
18935
+ const { stdout, stderr } = await execFileAsync(
18936
+ process.execPath,
18937
+ ["--input-type=module", "--eval", script],
18938
+ {
18939
+ encoding: "utf8",
18940
+ maxBuffer: 4 * 1024 * 1024,
18941
+ env: env2
18942
+ }
18943
+ );
18944
+ try {
18945
+ const parsed = JSON.parse(stdout);
18946
+ if (parsed.ok !== true) {
18947
+ throw new Error(stderr.trim() || "Check config module did not return a value");
18948
+ }
18949
+ return parsed.value;
18950
+ } catch (error) {
18951
+ if (stderr.trim()) {
18952
+ throw new Error(stderr.trim());
18953
+ }
18954
+ throw error instanceof Error ? error : new Error(String(error));
18955
+ }
18956
+ }
18916
18957
  function normalizeConfig(config) {
18917
18958
  if (config.checks === void 0) return {};
18918
18959
  if (typeof config.checks !== "object" || Array.isArray(config.checks)) {