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.
|
|
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",
|
|
@@ -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
|
|
7934
|
-
if (!base.endsWith(".md") && (!
|
|
7935
|
-
return
|
|
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,})["']/
|
|
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
|
|
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
|
|
7983
|
-
|
|
7984
|
-
|
|
7985
|
-
|
|
7986
|
-
|
|
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
|
|
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) && !
|
|
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.
|
|
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.
|
|
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/
|
|
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",
|