speclock 4.1.0 → 4.1.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.
- package/package.json +1 -1
- package/src/core/conflict.js +4 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "speclock",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.2",
|
|
4
4
|
"description": "AI constraint engine with Policy-as-Code DSL, OAuth/OIDC SSO, admin dashboard, telemetry, API key auth, RBAC, AES-256-GCM encryption, hard enforcement, semantic pre-commit, HMAC audit chain, SOC 2/HIPAA compliance. 100% detection, 0% false positives. 31 MCP tools + CLI. Enterprise platform.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/mcp/server.js",
|
package/src/core/conflict.js
CHANGED
|
@@ -142,12 +142,7 @@ export async function checkConflictAsync(root, proposedAction) {
|
|
|
142
142
|
const maxNonConflictScore = heuristicResult._maxNonConflictScore || 0;
|
|
143
143
|
const maxScore = Math.max(maxConflictScore, maxNonConflictScore);
|
|
144
144
|
|
|
145
|
-
// 3. Fast path:
|
|
146
|
-
if (maxScore === 0 && !heuristicResult.hasConflict) {
|
|
147
|
-
return heuristicResult;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// 4. Fast path: all conflicts are HIGH (>70%) → heuristic is certain, skip LLM
|
|
145
|
+
// 3. Fast path: all conflicts are HIGH (>70%) → heuristic is certain, skip LLM
|
|
151
146
|
if (
|
|
152
147
|
heuristicResult.hasConflict &&
|
|
153
148
|
heuristicResult.conflictingLocks.every((c) => c.confidence > 70)
|
|
@@ -155,7 +150,9 @@ export async function checkConflictAsync(root, proposedAction) {
|
|
|
155
150
|
return heuristicResult;
|
|
156
151
|
}
|
|
157
152
|
|
|
158
|
-
//
|
|
153
|
+
// 4. Call LLM for everything else — including score 0.
|
|
154
|
+
// Score 0 means "heuristic vocabulary doesn't cover this domain",
|
|
155
|
+
// which is EXACTLY when an LLM (which knows every domain) adds value.
|
|
159
156
|
try {
|
|
160
157
|
const { llmCheckConflict } = await import("./llm-checker.js");
|
|
161
158
|
const llmResult = await llmCheckConflict(root, proposedAction);
|