tryassay 0.28.2 → 0.29.0

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.
@@ -86,9 +86,11 @@ async function processFlow(flow, flowIndex, manifest, index, outputDir) {
86
86
  const claims = flowToClaims(flow, flowGaps);
87
87
  // Verify claims against codebase
88
88
  const { verifications, inputTokens: verIn, outputTokens: verOut } = await verifyClaims(claims, index);
89
- // Write verification results
89
+ // Write verification results (ensure directory exists — handles race conditions)
90
+ const verDir = resolve(outputDir, 'verifications');
91
+ await mkdir(verDir, { recursive: true });
90
92
  const verMd = formatFlowVerificationMarkdown(flow, verifications);
91
- await writeFile(resolve(outputDir, `verifications/${flowSlug}-verified.md`), verMd);
93
+ await writeFile(resolve(verDir, `${flowSlug}-verified.md`), verMd);
92
94
  // Collect bugs
93
95
  const bugs = verifications.filter((v) => v.verdict === 'FAIL' || v.verdict === 'PARTIAL');
94
96
  // Bridge to RouteAssessmentResult shape
@@ -1 +1 @@
1
- {"version":3,"file":"assess.js","sourceRoot":"","sources":["../../src/commands/assess.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assess.js","sourceRoot":"","sources":["../../src/commands/assess.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export declare function extractClaims(document: string, onProgress?: (msg: strin
3
3
  claims: Claim[];
4
4
  inputTokens: number;
5
5
  outputTokens: number;
6
+ passDetails: number[];
6
7
  }>;
@@ -1,5 +1,11 @@
1
1
  import { MODEL } from './anthropic.js';
2
2
  import { getProvider } from './llm-provider.js';
3
+ // ── Multi-Pass Configuration ────────────────────────────────────
4
+ // Proven in LUCID audit: multi-pass extraction eliminates 0-claim dead zones.
5
+ // Single-pass: 46 claims across 5 files (3 files returned 0).
6
+ // Multi-pass (3x): 165 claims across 5 files (0 files returned 0).
7
+ const EXTRACT_PASSES = parseInt(process.env.ASSAY_EXTRACT_PASSES ?? '3');
8
+ const SIMILARITY_THRESHOLD = parseFloat(process.env.ASSAY_SIMILARITY_THRESHOLD ?? '0.6');
3
9
  const EXTRACTION_SYSTEM_PROMPT = `You are a legal and technical claim extractor. Your job is to read a document (Terms of Service, Privacy Policy, API documentation, or user manual) and extract every declarative promise, commitment, or factual claim the document makes.
4
10
 
5
11
  EXTRACTION RULES:
@@ -68,17 +74,46 @@ function validateClaim(raw, index) {
68
74
  testable: typeof raw.testable === 'boolean' ? raw.testable : true,
69
75
  };
70
76
  }
71
- export async function extractClaims(document, onProgress) {
72
- onProgress?.('Sending document to Claude for claim extraction...');
73
- const result = await getProvider().complete({
74
- model: MODEL,
75
- maxTokens: 32_000,
76
- systemPrompt: EXTRACTION_SYSTEM_PROMPT,
77
- userPrompt: `Extract all claims from this document:\n\n${document}`,
78
- });
79
- const rawText = result.content;
80
- onProgress?.('Parsing extraction results...');
81
- // Strip markdown code fences if present, then find the JSON array
77
+ // ── Claim Deduplication (from LUCID multi-pass pattern) ─────────
78
+ function normalizeForComparison(s) {
79
+ return s.toLowerCase().replace(/[^a-z0-9]/g, ' ').replace(/\s+/g, ' ').trim();
80
+ }
81
+ function stringSimilarity(a, b) {
82
+ if (a === b)
83
+ return 1.0;
84
+ const aWords = new Set(a.split(' '));
85
+ const bWords = new Set(b.split(' '));
86
+ const intersection = new Set([...aWords].filter(w => bWords.has(w)));
87
+ const union = new Set([...aWords, ...bWords]);
88
+ return union.size > 0 ? intersection.size / union.size : 0;
89
+ }
90
+ function deduplicateClaims(allPasses) {
91
+ const merged = [];
92
+ const signatures = [];
93
+ for (const passClaims of allPasses) {
94
+ for (const claim of passClaims) {
95
+ const sig = normalizeForComparison(claim.text);
96
+ let isDuplicate = false;
97
+ for (const existingSig of signatures) {
98
+ if (stringSimilarity(sig, existingSig) > SIMILARITY_THRESHOLD) {
99
+ isDuplicate = true;
100
+ break;
101
+ }
102
+ }
103
+ if (!isDuplicate) {
104
+ const newClaim = {
105
+ ...claim,
106
+ id: `CLAIM-${String(merged.length + 1).padStart(3, '0')}`,
107
+ };
108
+ merged.push(newClaim);
109
+ signatures.push(sig);
110
+ }
111
+ }
112
+ }
113
+ return merged;
114
+ }
115
+ // ── Single-pass extraction (internal) ───────────────────────────
116
+ function parseExtractionResponse(rawText, onProgress) {
82
117
  let jsonText = rawText.trim();
83
118
  // Remove opening code fence
84
119
  if (jsonText.startsWith('```')) {
@@ -95,7 +130,6 @@ export async function extractClaims(document, onProgress) {
95
130
  jsonText = jsonText.trim();
96
131
  // If response was truncated (no closing ]), try to repair by closing the array
97
132
  if (!jsonText.endsWith(']')) {
98
- // Find the last complete object (ends with })
99
133
  const lastCloseBrace = jsonText.lastIndexOf('}');
100
134
  if (lastCloseBrace !== -1) {
101
135
  jsonText = jsonText.slice(0, lastCloseBrace + 1) + '\n]';
@@ -107,11 +141,33 @@ export async function extractClaims(document, onProgress) {
107
141
  parsed = JSON.parse(jsonText);
108
142
  }
109
143
  catch {
110
- throw new Error(`Failed to parse Claude's response as JSON.\n` +
111
- `First 200 chars: ${jsonText.slice(0, 200)}`);
144
+ // Try to extract array from wrapped object (e.g. {"claims": [...]})
145
+ try {
146
+ const obj = JSON.parse(jsonText.replace(/^\{/, '').replace(/\}$/, ''));
147
+ if (Array.isArray(obj))
148
+ parsed = obj;
149
+ }
150
+ catch {
151
+ // Fall through
152
+ }
153
+ if (!parsed) {
154
+ throw new Error(`Failed to parse response as JSON.\n` +
155
+ `First 200 chars: ${jsonText.slice(0, 200)}`);
156
+ }
112
157
  }
113
158
  if (!Array.isArray(parsed)) {
114
- throw new Error('Expected a JSON array of claims from Claude.');
159
+ // Check if it's a wrapper object with an array inside
160
+ if (parsed && typeof parsed === 'object') {
161
+ for (const val of Object.values(parsed)) {
162
+ if (Array.isArray(val)) {
163
+ parsed = val;
164
+ break;
165
+ }
166
+ }
167
+ }
168
+ if (!Array.isArray(parsed)) {
169
+ throw new Error('Expected a JSON array of claims.');
170
+ }
115
171
  }
116
172
  const claims = [];
117
173
  for (let i = 0; i < parsed.length; i++) {
@@ -120,10 +176,55 @@ export async function extractClaims(document, onProgress) {
120
176
  claims.push(validated);
121
177
  }
122
178
  }
179
+ return claims;
180
+ }
181
+ async function singlePassExtract(document, onProgress) {
182
+ const result = await getProvider().complete({
183
+ model: MODEL,
184
+ maxTokens: 32_000,
185
+ systemPrompt: EXTRACTION_SYSTEM_PROMPT,
186
+ userPrompt: `Extract all claims from this document:\n\n${document}`,
187
+ });
188
+ const claims = parseExtractionResponse(result.content, onProgress);
123
189
  return {
124
190
  claims,
125
191
  inputTokens: result.inputTokens ?? 0,
126
192
  outputTokens: result.outputTokens ?? 0,
127
193
  };
128
194
  }
195
+ // ── Public API: Multi-Pass Extraction ───────────────────────────
196
+ export async function extractClaims(document, onProgress) {
197
+ const passes = EXTRACT_PASSES;
198
+ let totalInput = 0;
199
+ let totalOutput = 0;
200
+ const allPasses = [];
201
+ const passDetails = [];
202
+ for (let pass = 0; pass < passes; pass++) {
203
+ onProgress?.(`Extraction pass ${pass + 1}/${passes}...`);
204
+ try {
205
+ let result = await singlePassExtract(document, onProgress);
206
+ // Retry once if 0 claims (model inconsistency — proven in LUCID audit)
207
+ if (result.claims.length === 0 && pass < passes - 1) {
208
+ onProgress?.(`Pass ${pass + 1} returned 0 claims, retrying...`);
209
+ result = await singlePassExtract(document, onProgress);
210
+ }
211
+ allPasses.push(result.claims);
212
+ passDetails.push(result.claims.length);
213
+ totalInput += result.inputTokens;
214
+ totalOutput += result.outputTokens;
215
+ onProgress?.(`Pass ${pass + 1}: ${result.claims.length} claims extracted`);
216
+ }
217
+ catch (err) {
218
+ onProgress?.(`Pass ${pass + 1} failed: ${err.message}`);
219
+ allPasses.push([]);
220
+ passDetails.push(0);
221
+ }
222
+ }
223
+ // Deduplicate across all passes → locked claim set
224
+ const claims = passes > 1
225
+ ? deduplicateClaims(allPasses)
226
+ : allPasses[0] ?? [];
227
+ onProgress?.(`Locked claim set: ${claims.length} claims (from ${passDetails.join('+')} across ${passes} passes)`);
228
+ return { claims, inputTokens: totalInput, outputTokens: totalOutput, passDetails };
229
+ }
129
230
  //# sourceMappingURL=claim-extractor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claim-extractor.js","sourceRoot":"","sources":["../../src/lib/claim-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DA2C8B,CAAC;AAWhE,MAAM,gBAAgB,GAAoB;IACxC,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO;CACpE,CAAC;AAEF,MAAM,gBAAgB,GAAoB;IACxC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;CACpC,CAAC;AAEF,SAAS,aAAa,CAAC,GAAa,EAAE,KAAa;IACjD,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAyB,CAAC;QACvE,CAAC,CAAE,GAAG,CAAC,QAA0B;QACjC,CAAC,CAAC,eAAe,CAAC;IAEpB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAyB,CAAC;QACvE,CAAC,CAAE,GAAG,CAAC,QAA0B;QACjC,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,SAAS,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;QAC3D,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;QACjC,QAAQ;QACR,QAAQ;QACR,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;QACrB,QAAQ,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,UAAkC;IAElC,UAAU,EAAE,CAAC,oDAAoD,CAAC,CAAC;IAEnE,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC,QAAQ,CAAC;QAC1C,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,wBAAwB;QACtC,UAAU,EAAE,6CAA6C,QAAQ,EAAE;KACpE,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE/B,UAAU,EAAE,CAAC,+BAA+B,CAAC,CAAC;IAE9C,kEAAkE;IAClE,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAE9B,4BAA4B;IAC5B,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE3B,+EAA+E;IAC/E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,8CAA8C;QAC9C,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YACzD,UAAU,EAAE,CAAC,yDAAyD,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,8CAA8C;YAC9C,oBAAoB,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC7C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAa,EAAE,CAAC,CAAC,CAAC;QAC1D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC;QACpC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"claim-extractor.js","sourceRoot":"","sources":["../../src/lib/claim-extractor.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,18 @@
1
1
  import type { CodebaseIndex } from './codebase-indexer.js';
2
- import type { Claim, ClaimVerification } from '../types.js';
2
+ import type { Claim, ClaimVerification, Verdict } from '../types.js';
3
3
  export declare function verifyClaims(claims: Claim[], index: CodebaseIndex, onProgress?: (msg: string) => void): Promise<{
4
4
  verifications: ClaimVerification[];
5
5
  inputTokens: number;
6
6
  outputTokens: number;
7
+ voteDetails?: {
8
+ passes: number;
9
+ minConfidence: number;
10
+ votes: Array<{
11
+ claimId: string;
12
+ finalVerdict: Verdict;
13
+ confidence: number;
14
+ votes: Verdict[];
15
+ unanimous: boolean;
16
+ }>;
17
+ };
7
18
  }>;
@@ -1,6 +1,11 @@
1
1
  import { MODEL } from './anthropic.js';
2
2
  import { getProvider } from './llm-provider.js';
3
3
  import { readFileContent } from './codebase-indexer.js';
4
+ // ── Multi-Pass Configuration ────────────────────────────────────
5
+ // Proven in LUCID audit: majority-vote verification filters verifier noise.
6
+ // Single-pass: 5 unfiltered findings. Multi-pass (3x): 35 confident findings.
7
+ const VERIFY_PASSES = parseInt(process.env.ASSAY_VERIFY_PASSES ?? '3');
8
+ const MIN_CONFIDENCE = parseFloat(process.env.ASSAY_MIN_CONFIDENCE ?? '0.67');
4
9
  const VALID_VERDICTS = ['PASS', 'PARTIAL', 'FAIL', 'N/A'];
5
10
  // Step 1: Ask Claude which files to examine for a batch of claims
6
11
  const FILE_SELECTION_SYSTEM = `You are a code auditor. Given a list of claims and a codebase file tree, identify which files are most likely to contain evidence for or against each claim.
@@ -117,7 +122,50 @@ function parseFileSelectionResponse(rawText) {
117
122
  // Larger batches = fewer API round-trips. 25 is the sweet spot:
118
123
  // still fits comfortably in context, but cuts batch count ~40% vs 15.
119
124
  const BATCH_SIZE = 25;
120
- export async function verifyClaims(claims, index, onProgress) {
125
+ function majorityVote(claimId, allPassResults) {
126
+ const votes = [];
127
+ const reasonings = new Map();
128
+ for (const passResults of allPassResults) {
129
+ const v = passResults.find((r) => r.claimId === claimId);
130
+ if (v) {
131
+ votes.push(v.verdict);
132
+ reasonings.set(v.verdict, v.reasoning);
133
+ }
134
+ }
135
+ if (votes.length === 0) {
136
+ return {
137
+ claimId,
138
+ finalVerdict: 'N/A',
139
+ confidence: 0,
140
+ votes: [],
141
+ reasoning: 'No verification data',
142
+ unanimous: false,
143
+ };
144
+ }
145
+ const counts = { PASS: 0, PARTIAL: 0, FAIL: 0, 'N/A': 0 };
146
+ for (const v of votes)
147
+ counts[v]++;
148
+ let finalVerdict = 'N/A';
149
+ let maxCount = 0;
150
+ for (const [verdict, count] of Object.entries(counts)) {
151
+ if (count > maxCount) {
152
+ maxCount = count;
153
+ finalVerdict = verdict;
154
+ }
155
+ }
156
+ const confidence = maxCount / votes.length;
157
+ const unanimous = maxCount === votes.length && votes.length > 1;
158
+ return {
159
+ claimId,
160
+ finalVerdict,
161
+ confidence,
162
+ votes,
163
+ reasoning: reasonings.get(finalVerdict) ?? 'No reasoning available',
164
+ unanimous,
165
+ };
166
+ }
167
+ // ── Single-Pass Verification (internal) ─────────────────────────
168
+ async function singlePassVerify(claims, index, passLabel, onProgress) {
121
169
  const testableClaims = claims.filter((c) => c.testable);
122
170
  const verifications = [];
123
171
  let totalInputTokens = 0;
@@ -141,7 +189,7 @@ export async function verifyClaims(claims, index, onProgress) {
141
189
  const batch = testableClaims.slice(i, i + BATCH_SIZE);
142
190
  const batchNum = Math.floor(i / BATCH_SIZE) + 1;
143
191
  const totalBatches = Math.ceil(testableClaims.length / BATCH_SIZE);
144
- onProgress?.(`Batch ${batchNum}/${totalBatches}: selecting files for ${batch.length} claims...`);
192
+ onProgress?.(`${passLabel} Batch ${batchNum}/${totalBatches}: selecting files for ${batch.length} claims...`);
145
193
  // Step 1: Ask which files to examine
146
194
  const claimList = batch
147
195
  .map((c) => `${c.id}: ${c.text} [${c.category}]`)
@@ -159,7 +207,6 @@ export async function verifyClaims(claims, index, onProgress) {
159
207
  fileSelections = parseFileSelectionResponse(fileSelResult.content);
160
208
  }
161
209
  catch {
162
- // If parsing fails, use key files as fallback
163
210
  fileSelections = {};
164
211
  for (const claim of batch) {
165
212
  fileSelections[claim.id] = index.keyFiles.slice(0, 5).map((f) => f.path);
@@ -171,7 +218,7 @@ export async function verifyClaims(claims, index, onProgress) {
171
218
  for (const f of files)
172
219
  uniqueFiles.add(f);
173
220
  }
174
- onProgress?.(`Batch ${batchNum}/${totalBatches}: reading ${uniqueFiles.size} files...`);
221
+ onProgress?.(`${passLabel} Batch ${batchNum}/${totalBatches}: reading ${uniqueFiles.size} files...`);
175
222
  const fileContents = new Map();
176
223
  for (const filePath of uniqueFiles) {
177
224
  const content = await readFileContent(index.rootPath, filePath);
@@ -180,17 +227,14 @@ export async function verifyClaims(claims, index, onProgress) {
180
227
  }
181
228
  }
182
229
  // Step 3: Verify claims against file contents
183
- onProgress?.(`Batch ${batchNum}/${totalBatches}: verifying ${batch.length} claims...`);
184
- // Build context with file contents for this batch
230
+ onProgress?.(`${passLabel} Batch ${batchNum}/${totalBatches}: verifying ${batch.length} claims...`);
185
231
  let evidenceContext = '';
186
232
  for (const [path, content] of fileContents) {
187
- // Limit each file to keep total context manageable
188
233
  const truncated = content.length > 10_000
189
234
  ? content.slice(0, 10_000) + '\n[... truncated]'
190
235
  : content;
191
236
  evidenceContext += `\n--- FILE: ${path} ---\n${truncated}\n`;
192
237
  }
193
- // If total context is too large, truncate
194
238
  if (evidenceContext.length > 100_000) {
195
239
  evidenceContext = evidenceContext.slice(0, 100_000) + '\n[... context truncated]';
196
240
  }
@@ -204,7 +248,6 @@ export async function verifyClaims(claims, index, onProgress) {
204
248
  totalOutputTokens += verifyResult.outputTokens ?? 0;
205
249
  try {
206
250
  const batchResults = parseVerificationResponse(verifyResult.content);
207
- // Attach claim text
208
251
  for (const result of batchResults) {
209
252
  const claim = batch.find((c) => c.id === result.claimId);
210
253
  if (claim) {
@@ -212,7 +255,6 @@ export async function verifyClaims(claims, index, onProgress) {
212
255
  verifications.push(result);
213
256
  }
214
257
  }
215
- // Any claims not covered in response get N/A
216
258
  for (const claim of batch) {
217
259
  if (!batchResults.some((r) => r.claimId === claim.id)) {
218
260
  verifications.push({
@@ -226,7 +268,6 @@ export async function verifyClaims(claims, index, onProgress) {
226
268
  }
227
269
  }
228
270
  catch {
229
- // If verification parsing fails, mark batch as N/A
230
271
  for (const claim of batch) {
231
272
  verifications.push({
232
273
  claimId: claim.id,
@@ -238,7 +279,6 @@ export async function verifyClaims(claims, index, onProgress) {
238
279
  }
239
280
  }
240
281
  }
241
- // Sort by claim ID
242
282
  verifications.sort((a, b) => a.claimId.localeCompare(b.claimId));
243
283
  return {
244
284
  verifications,
@@ -246,4 +286,107 @@ export async function verifyClaims(claims, index, onProgress) {
246
286
  outputTokens: totalOutputTokens,
247
287
  };
248
288
  }
289
+ // ── Public API: Multi-Pass Verification with Majority Vote ──────
290
+ export async function verifyClaims(claims, index, onProgress) {
291
+ const passes = VERIFY_PASSES;
292
+ let totalInput = 0;
293
+ let totalOutput = 0;
294
+ if (passes <= 1) {
295
+ // Single-pass mode (backward compatible)
296
+ onProgress?.('Running single-pass verification...');
297
+ const result = await singlePassVerify(claims, index, '', onProgress);
298
+ return {
299
+ verifications: result.verifications,
300
+ inputTokens: result.inputTokens,
301
+ outputTokens: result.outputTokens,
302
+ };
303
+ }
304
+ // Multi-pass mode: verify N times, then majority vote
305
+ const allPassResults = [];
306
+ for (let pass = 0; pass < passes; pass++) {
307
+ const passLabel = `[Pass ${pass + 1}/${passes}]`;
308
+ onProgress?.(`Verification pass ${pass + 1}/${passes}...`);
309
+ try {
310
+ const result = await singlePassVerify(claims, index, passLabel, onProgress);
311
+ allPassResults.push(result.verifications);
312
+ totalInput += result.inputTokens;
313
+ totalOutput += result.outputTokens;
314
+ const passCount = result.verifications.filter((v) => v.verdict === 'PASS').length;
315
+ const failCount = result.verifications.filter((v) => v.verdict === 'FAIL').length;
316
+ onProgress?.(`Pass ${pass + 1}: ${result.verifications.length} results (${passCount} pass, ${failCount} fail)`);
317
+ }
318
+ catch (err) {
319
+ onProgress?.(`Verification pass ${pass + 1} failed: ${err.message}`);
320
+ allPassResults.push([]);
321
+ }
322
+ }
323
+ // Majority vote across all passes
324
+ const testableClaims = claims.filter((c) => c.testable);
325
+ const nonTestableClaims = claims.filter((c) => !c.testable);
326
+ const voteResults = [];
327
+ for (const claim of testableClaims) {
328
+ voteResults.push(majorityVote(claim.id, allPassResults));
329
+ }
330
+ // Build final verifications from vote results
331
+ const verifications = [];
332
+ // Non-testable claims
333
+ for (const claim of nonTestableClaims) {
334
+ verifications.push({
335
+ claimId: claim.id,
336
+ claim: claim.text,
337
+ verdict: 'N/A',
338
+ evidence: [],
339
+ reasoning: 'Claim is not testable against code.',
340
+ });
341
+ }
342
+ // Voted claims — use evidence from the pass that matches the majority verdict
343
+ for (const vote of voteResults) {
344
+ const claim = claims.find((c) => c.id === vote.claimId);
345
+ if (!claim)
346
+ continue;
347
+ // Find the best evidence from a pass that agreed with the majority
348
+ let bestEvidence = [];
349
+ let bestReasoning = vote.reasoning;
350
+ for (const passResults of allPassResults) {
351
+ const match = passResults.find((r) => r.claimId === vote.claimId && r.verdict === vote.finalVerdict);
352
+ if (match && match.evidence.length > bestEvidence.length) {
353
+ bestEvidence = match.evidence;
354
+ bestReasoning = match.reasoning;
355
+ }
356
+ }
357
+ // Apply confidence filtering: low-confidence results get downgraded
358
+ let finalVerdict = vote.finalVerdict;
359
+ if (vote.confidence < MIN_CONFIDENCE && finalVerdict !== 'PASS') {
360
+ // Low confidence non-PASS → treat as noise, upgrade to N/A
361
+ finalVerdict = 'N/A';
362
+ bestReasoning = `Low confidence (${(vote.confidence * 100).toFixed(0)}%) — ${vote.votes.join('/')} — filtered as noise. Original: ${bestReasoning}`;
363
+ }
364
+ verifications.push({
365
+ claimId: vote.claimId,
366
+ claim: claim.text,
367
+ verdict: finalVerdict,
368
+ evidence: bestEvidence,
369
+ reasoning: bestReasoning,
370
+ });
371
+ }
372
+ verifications.sort((a, b) => a.claimId.localeCompare(b.claimId));
373
+ const confidentFindings = voteResults.filter((v) => v.finalVerdict !== 'PASS' && v.confidence >= MIN_CONFIDENCE).length;
374
+ onProgress?.(`Majority vote complete: ${confidentFindings} confident findings (>=${(MIN_CONFIDENCE * 100).toFixed(0)}% confidence)`);
375
+ return {
376
+ verifications,
377
+ inputTokens: totalInput,
378
+ outputTokens: totalOutput,
379
+ voteDetails: {
380
+ passes,
381
+ minConfidence: MIN_CONFIDENCE,
382
+ votes: voteResults.map((v) => ({
383
+ claimId: v.claimId,
384
+ finalVerdict: v.finalVerdict,
385
+ confidence: v.confidence,
386
+ votes: v.votes,
387
+ unanimous: v.unanimous,
388
+ })),
389
+ },
390
+ };
391
+ }
249
392
  //# sourceMappingURL=code-verifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-verifier.js","sourceRoot":"","sources":["../../src/lib/code-verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-verifier.js","sourceRoot":"","sources":["../../src/lib/code-verifier.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,13 @@ export declare class ClaudeCliProvider implements LLMProvider {
10
10
  readonly type: LLMProviderType;
11
11
  complete(opts: LLMCompletionOptions): Promise<LLMResult>;
12
12
  }
13
+ export declare class OllamaProvider implements LLMProvider {
14
+ readonly type: LLMProviderType;
15
+ private readonly baseUrl;
16
+ private readonly model;
17
+ constructor(baseUrl?: string, model?: string);
18
+ complete(opts: LLMCompletionOptions): Promise<LLMResult>;
19
+ }
13
20
  /**
14
21
  * Get the configured LLM provider.
15
22
  *
@@ -1,6 +1,6 @@
1
1
  // ============================================================
2
- // LLM Provider — Abstraction over Anthropic API and Claude CLI
3
- // Toggle via ASSAY_LLM_PROVIDER env var (api|cli|auto).
2
+ // LLM Provider — Abstraction over Anthropic API, Claude CLI, and Ollama
3
+ // Toggle via ASSAY_LLM_PROVIDER env var (api|cli|ollama|auto).
4
4
  // ============================================================
5
5
  import Anthropic from '@anthropic-ai/sdk';
6
6
  import { safeExecWithStdin } from '../runtime/safe-executor.js';
@@ -131,6 +131,92 @@ export class ClaudeCliProvider {
131
131
  };
132
132
  }
133
133
  }
134
+ // ── Ollama Provider (OpenAI-compatible) ──────────────────────
135
+ export class OllamaProvider {
136
+ type = 'ollama';
137
+ baseUrl;
138
+ model;
139
+ constructor(baseUrl, model) {
140
+ this.baseUrl = baseUrl ?? process.env.ASSAY_OLLAMA_BASE_URL ?? 'http://localhost:11434';
141
+ this.model = model ?? process.env.ASSAY_OLLAMA_MODEL ?? 'qwen3.5:9b';
142
+ }
143
+ async complete(opts) {
144
+ const start = Date.now();
145
+ // Use native Ollama API (not OpenAI-compatible) for think:false support
146
+ const url = `${this.baseUrl}/api/chat`;
147
+ // Detect if the prompt expects JSON output (intent extraction, claim verification, etc.)
148
+ // and use Ollama's constrained decoding to force valid JSON.
149
+ const wantsJson = opts.systemPrompt.includes('Return ONLY a JSON')
150
+ || opts.systemPrompt.includes('JSON object')
151
+ || opts.systemPrompt.includes('Respond with JSON')
152
+ || opts.userPrompt.includes('Return ONLY a JSON')
153
+ || opts.userPrompt.includes('respond with a JSON');
154
+ const body = {
155
+ model: this.model,
156
+ messages: [
157
+ { role: 'system', content: opts.systemPrompt },
158
+ { role: 'user', content: opts.userPrompt },
159
+ ],
160
+ stream: false,
161
+ think: false, // Disable thinking mode — Assay needs direct answers
162
+ options: {
163
+ num_predict: opts.maxTokens ?? 16_000,
164
+ ...(opts.temperature !== undefined && { temperature: opts.temperature }),
165
+ },
166
+ };
167
+ // Local models can take 10+ minutes on large prompts.
168
+ // Node's undici has a default headers timeout (~300s) separate from AbortSignal.
169
+ // Use keepalive:false and a generous AbortSignal to avoid premature timeouts.
170
+ const timeoutMs = 30 * 60 * 1000; // 30min for local models
171
+ const controller = new AbortController();
172
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
173
+ let res;
174
+ try {
175
+ res = await fetch(url, {
176
+ method: 'POST',
177
+ headers: {
178
+ 'Content-Type': 'application/json',
179
+ 'Connection': 'keep-alive',
180
+ },
181
+ body: JSON.stringify(body),
182
+ signal: controller.signal,
183
+ // @ts-expect-error -- Node undici dispatcher options
184
+ dispatcher: new (await import('undici')).Agent({
185
+ headersTimeout: timeoutMs,
186
+ bodyTimeout: timeoutMs,
187
+ connectTimeout: 30_000,
188
+ }),
189
+ });
190
+ }
191
+ finally {
192
+ clearTimeout(timer);
193
+ }
194
+ if (!res.ok) {
195
+ const text = await res.text().catch(() => '');
196
+ throw new Error(`Ollama API error ${res.status}: ${text}`);
197
+ }
198
+ const data = await res.json();
199
+ // Native API returns message.content directly
200
+ // Fall back to thinking field if content is empty (model used thinking despite think:false)
201
+ let content = data.message?.content || data.message?.thinking || '';
202
+ // Tuned models may wrap JSON in markdown formatting (bold, code blocks).
203
+ // Strip markdown artifacts so downstream JSON parsers can handle the output.
204
+ content = content
205
+ .replace(/\*\*/g, '') // Remove bold markers
206
+ .replace(/^```(?:json)?\s*\n?/gm, '') // Remove opening code fences
207
+ .replace(/\n?```\s*$/gm, '') // Remove closing code fences
208
+ .trim();
209
+ const promptTokens = data.prompt_eval_count ?? null;
210
+ const completionTokens = data.eval_count ?? null;
211
+ return {
212
+ content,
213
+ inputTokens: promptTokens,
214
+ outputTokens: completionTokens,
215
+ provider: 'ollama',
216
+ durationMs: Date.now() - start,
217
+ };
218
+ }
219
+ }
134
220
  // ── Factory ──────────────────────────────────────────────────
135
221
  let cachedProvider = null;
136
222
  /**
@@ -143,7 +229,10 @@ export function getProvider() {
143
229
  if (cachedProvider)
144
230
  return cachedProvider;
145
231
  const explicit = process.env.ASSAY_LLM_PROVIDER;
146
- if (explicit === 'cli') {
232
+ if (explicit === 'ollama') {
233
+ cachedProvider = new OllamaProvider();
234
+ }
235
+ else if (explicit === 'cli') {
147
236
  if (isInsideClaudeCode()) {
148
237
  throw new Error('ASSAY_LLM_PROVIDER=cli but running inside Claude Code (deadlock).\n' +
149
238
  'Set ANTHROPIC_API_KEY and use ASSAY_LLM_PROVIDER=api, or run from a regular terminal.');
@@ -154,15 +243,19 @@ export function getProvider() {
154
243
  cachedProvider = new AnthropicApiProvider();
155
244
  }
156
245
  else {
157
- // Auto-detect: use API if key is available, otherwise CLI
246
+ // Auto-detect: Ollama if configured, API if key available, else CLI
158
247
  // Never auto-select CLI when inside Claude Code (causes deadlock)
159
- if (process.env.ANTHROPIC_API_KEY) {
248
+ if (process.env.ASSAY_OLLAMA_MODEL) {
249
+ cachedProvider = new OllamaProvider();
250
+ }
251
+ else if (process.env.ANTHROPIC_API_KEY) {
160
252
  cachedProvider = new AnthropicApiProvider();
161
253
  }
162
254
  else if (isInsideClaudeCode()) {
163
255
  throw new Error('No ANTHROPIC_API_KEY set and running inside Claude Code.\n' +
164
256
  'The CLI provider deadlocks when spawned from Claude Code.\n' +
165
- 'Export ANTHROPIC_API_KEY or run Assay from a regular terminal.');
257
+ 'Export ANTHROPIC_API_KEY or run Assay from a regular terminal.\n' +
258
+ 'Or set ASSAY_LLM_PROVIDER=ollama to use a local model.');
166
259
  }
167
260
  else {
168
261
  cachedProvider = new ClaudeCliProvider();
@@ -1 +1 @@
1
- {"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../../src/lib/llm-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../../src/lib/llm-provider.ts"],"names":[],"mappings":"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"}
@@ -1792,7 +1792,7 @@ export interface PromptGuardResult {
1792
1792
  }
1793
1793
  export type TaskCategory = 'scaffolding' | 'code_generation' | 'verification' | 'planning' | 'repair' | 'testing';
1794
1794
  export type ModelTier = 'fast' | 'standard' | 'advanced';
1795
- export type LLMProviderType = 'api' | 'cli';
1795
+ export type LLMProviderType = 'api' | 'cli' | 'ollama';
1796
1796
  export interface LLMCompletionOptions {
1797
1797
  readonly model: string;
1798
1798
  readonly systemPrompt: string;
package/dist/sdk/index.js CHANGED
@@ -3,18 +3,20 @@ import { forwardVerify } from './forward-verify.js';
3
3
  export class AssaySDK {
4
4
  config;
5
5
  constructor(config) {
6
+ const isOllama = process.env.ASSAY_LLM_PROVIDER === 'ollama' || !!process.env.ASSAY_OLLAMA_MODEL;
6
7
  const apiKey = config?.anthropicApiKey ?? process.env.ANTHROPIC_API_KEY;
7
- if (!apiKey) {
8
- throw new Error('ANTHROPIC_API_KEY is required. Pass it as anthropicApiKey in config or set the ANTHROPIC_API_KEY environment variable.');
8
+ if (!apiKey && !isOllama) {
9
+ throw new Error('ANTHROPIC_API_KEY is required. Pass it as anthropicApiKey in config or set the ANTHROPIC_API_KEY environment variable.\n' +
10
+ 'Or set ASSAY_LLM_PROVIDER=ollama to use a local model via Ollama.');
9
11
  }
10
12
  this.config = {
11
13
  ...config,
12
- anthropicApiKey: apiKey,
13
- model: config?.model ?? 'claude-sonnet-4-5-20250929',
14
+ anthropicApiKey: apiKey ?? '',
15
+ model: config?.model ?? (isOllama ? (process.env.ASSAY_OLLAMA_MODEL ?? 'qwen3.5:9b') : 'claude-sonnet-4-5-20250929'),
14
16
  maxIterations: config?.maxIterations ?? 3,
15
17
  };
16
18
  // Set env var so downstream lib functions pick it up
17
- if (!process.env.ANTHROPIC_API_KEY) {
19
+ if (apiKey && !process.env.ANTHROPIC_API_KEY) {
18
20
  process.env.ANTHROPIC_API_KEY = apiKey;
19
21
  }
20
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,MAAM,OAAO,QAAQ;IACX,MAAM,CAA6E;IAE3F,YAAY,MAAuB;QACjC,MAAM,MAAM,GAAG,MAAM,EAAE,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACxE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,wHAAwH,CACzH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,MAAM;YACT,eAAe,EAAE,MAAM;YACvB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,4BAA4B;YACpD,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,CAAC;SAC1C,CAAC;QAEF,qDAAqD;QACrD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC;QACzC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACxF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,MAAM,OAAO,QAAQ;IACX,MAAM,CAA6E;IAE3F,YAAY,MAAuB;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACjG,MAAM,MAAM,GAAG,MAAM,EAAE,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAExE,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,0HAA0H;gBAC1H,mEAAmE,CACpE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,MAAM;YACT,eAAe,EAAE,MAAM,IAAI,EAAE;YAC7B,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC;YACpH,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,CAAC;SAC1C,CAAC;QAEF,qDAAqD;QACrD,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC;QACzC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACxF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tryassay",
3
- "version": "0.28.2",
3
+ "version": "0.29.0",
4
4
  "description": "AI code verification CLI — find bugs that tests miss, linters ignore, and code review overlooks",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",