voidmachine 5.0.1 → 5.0.2

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harness",
3
- "version": "5.0.1",
3
+ "version": "5.0.2",
4
4
  "description": "VoidCorp universal craftsman skills (void-tdd, void-typescript-strict, void-hexagonal-architecture, void-domain-driven-design, void-functional, void-code-review, void-api-and-interface-design, void-source-driven-development, void-context, void-learn, void-decide, void-claude-md, void-observability, void-security-guidance, ...) plus 12 PreToolUse enforcement hooks (tdd-guard, no-any, protect-sensitive-files, block-dangerous-bash, no-ai-design-slop, ...) and PostToolUse/SessionStart lifecycle hooks (incl. trim-large-output token frugality), five read-only critics including doctrine-critic, native architecture/security/QA specialists, and the void-graph, void-doctor and void-audit gestures, which are skills like everything else.",
5
5
  "author": {
6
6
  "name": "VoidCorp",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "harnessVersion": "5.0.1",
3
+ "harnessVersion": "5.0.2",
4
4
  "capabilities": [
5
5
  {
6
6
  "id": "skill:pack-mobile/void-eas-build-profile",
@@ -7930,9 +7930,9 @@ function protectedReason(path2, root, shellWrite) {
7930
7930
  return "private key / certificate";
7931
7931
  }
7932
7932
  if (/(?:\.npmrc|\.netrc|\.pgpass)$/.test(base)) return "credential file";
7933
- const sourceTest = /\.(?:test|spec)\.(?:[cm]?[jt]s|[jt]sx)$/.test(base);
7934
- if (!base.endsWith(".md") && (!sourceTest || shellWrite) && /(?:secret|credential)/.test(base)) {
7935
- return sourceTest && shellWrite ? "credential-named source test with unavailable shell content; use Write/Edit or apply_patch" : "credential file";
7933
+ const sourceModule = /\.(?:[cm]?[jt]s|[jt]sx)$/.test(base);
7934
+ if (!base.endsWith(".md") && (!sourceModule || shellWrite) && /(?:secret|credential)/.test(base)) {
7935
+ return sourceModule && shellWrite ? "credential-named source module with unavailable shell content; use Write/Edit or apply_patch" : "credential file";
7936
7936
  }
7937
7937
  if ((/* @__PURE__ */ new Set([
7938
7938
  "package-lock.json",
@@ -7972,26 +7972,31 @@ var HIGH_CONFIDENCE = [
7972
7972
  /\bAIza[0-9A-Za-z_-]{35}\b/,
7973
7973
  /-----BEGIN [A-Z ]*PRIVATE KEY-----/
7974
7974
  ];
7975
- var GENERIC_ASSIGNMENT = /(?:_KEY|_SECRET|_TOKEN|_PASSWORD|_PASSWD|_APIKEY)["' ]*[:=]\s*["']([A-Za-z0-9+/=_-]{24,})["']/i;
7975
+ var GENERIC_ASSIGNMENT = /(?:_KEY|_SECRET|_TOKEN|_PASSWORD|_PASSWD|_APIKEY)["' ]*[:=]\s*["']([A-Za-z0-9+/=_-]{24,})["']/gi;
7976
+ var CAMEL_ASSIGNMENT = /\b[a-z][A-Za-z0-9_$]*(?:Key|Secret|Token|Password|Passwd)["' ]*[:=]\s*["']([A-Za-z0-9+/=_-]{24,})["']/g;
7976
7977
  var PLACEHOLDER = /process\.env|import\.meta\.env|xxx|changeme|example|redacted|your[-_]|<[a-z]|placeholder|todo/i;
7977
7978
  var EXEMPT_PATH = /\.(?:test|spec)\.|\/__tests__\/|\/__fixtures__\/|\/fixtures\/|\/__generated__\//;
7978
- var CREDENTIAL_SOURCE_TEST = /(?:secret|credential)[^/]*\.(?:test|spec)\.(?:[cm]?[jt]s|[jt]sx)$/i;
7979
+ var CREDENTIAL_SOURCE_MODULE = /(?:secret|credential)[^/]*\.(?:[cm]?[jt]s|[jt]sx)$/i;
7979
7980
  function lineHasSecret(line) {
7980
7981
  if (line.includes("allow-secret-pattern:")) return false;
7981
7982
  if (HIGH_CONFIDENCE.some((pattern2) => pattern2.test(line))) return true;
7982
- const assignment = line.match(GENERIC_ASSIGNMENT);
7983
- if (assignment === null || PLACEHOLDER.test(line)) return false;
7984
- const value = assignment[1] ?? "";
7985
- if (/^[0-9a-f]+$/i.test(value) || /^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$/i.test(value)) {
7986
- return false;
7983
+ for (const pattern2 of [GENERIC_ASSIGNMENT, CAMEL_ASSIGNMENT]) {
7984
+ for (const assignment of line.matchAll(pattern2)) {
7985
+ const value = assignment[1] ?? "";
7986
+ if (PLACEHOLDER.test(value)) continue;
7987
+ if (/^[0-9a-f]+$/i.test(value) || /^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$/i.test(value)) {
7988
+ continue;
7989
+ }
7990
+ if (/[A-Za-z]/.test(value) && /[0-9]/.test(value)) return true;
7991
+ }
7987
7992
  }
7988
- return /[A-Za-z]/.test(value) && /[0-9]/.test(value);
7993
+ return false;
7989
7994
  }
7990
7995
  function secretContent(edits) {
7991
7996
  const evidence = [];
7992
7997
  for (const edit of edits) {
7993
7998
  const path2 = edit.path.replaceAll("\\", "/");
7994
- if (EXEMPT_PATH.test(path2) && !CREDENTIAL_SOURCE_TEST.test(path2)) continue;
7999
+ if (EXEMPT_PATH.test(path2) && !CREDENTIAL_SOURCE_MODULE.test(path2)) continue;
7995
8000
  edit.addedContent.split(/\r?\n/).forEach((line, index) => {
7996
8001
  if (lineHasSecret(line)) evidence.push(`${edit.path}:${index + 1}`);
7997
8002
  });
package/dist/main.js CHANGED
@@ -67817,7 +67817,7 @@ async function recordSpecialistRequests(root, missionId, envelopes, planHash) {
67817
67817
  init_esm_shims();
67818
67818
 
67819
67819
  // package.json
67820
- var version2 = "5.0.1";
67820
+ var version2 = "5.0.2";
67821
67821
 
67822
67822
  // src/lib/runs/verify.ts
67823
67823
  var MAX_CAPTURE_BYTES = 64 * 1024;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "voidmachine",
3
- "version": "5.0.1",
3
+ "version": "5.0.2",
4
4
  "description": "void-machine CLI — install an opinionated engineering doctrine on any project; render deterministic project health. Run via `npx voidmachine`; command: void-machine (alias vm).",
5
5
  "license": "MIT",
6
6
  "author": "Folpe @ VoidCorp",
@@ -58,10 +58,10 @@
58
58
  "ws": "8.21.0",
59
59
  "yaml": "^2.5.0",
60
60
  "zod": "^4.6.5",
61
- "@voidcorp/harness-graph": "5.0.1",
62
- "@voidcorp/void-machine": "0.0.0",
63
61
  "@voidcorp/hook-runner": "0.0.0",
64
- "@voidcorp/mission-engine": "0.0.0"
62
+ "@voidcorp/harness-graph": "5.0.2",
63
+ "@voidcorp/mission-engine": "0.0.0",
64
+ "@voidcorp/void-machine": "0.0.0"
65
65
  },
66
66
  "scripts": {
67
67
  "build": "tsup",