{"id":"log-collapse","title":"Collapse a log into error signatures with counts and first/last occurrence","description":"Groups the records of a log or CI output by signature: timestamps, UUIDs, IPs, hex ids, quoted values and numbers are replaced by placeholders, stack-trace continuation lines are attached to their record and contribute their first frames, and each signature reports its count, severity, first and last line, first and last timestamp (as written, when the line starts with an ISO 8601 timestamp) and an example. Lets an agent read 5,000 lines as 20 signatures. Does not diagnose causes, parse non-ISO timestamps or understand structured (JSON) logs beyond treating each line as text.","roi":"Cuts a log to its distinct failures before it goes into context. 8,000 lines per $0.005 call.","audience":"agent-infra","package":"context-evidence-kit","channels":["x402","mcp"],"endpoint":{"method":"POST","url":"https://agents.writerslogic.com/api/v1/log-collapse","path":"/api/v1/log-collapse","contentType":"application/json"},"price":{"amount":"0.005","currency":"USDC","network":"base","perCall":true,"failedCallsCharged":false},"inputSchema":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","maxLength":300000,"minLength":1,"description":"Log text, at most 8000 lines."},"topN":{"type":"integer","minimum":1,"maximum":100,"description":"Signatures returned, by count. Default 20."},"signatureFrames":{"type":"integer","minimum":0,"maximum":10,"description":"Continuation lines (stack frames) that are part of the signature. Default 3."},"minSeverity":{"type":"string","enum":["fatal","error","warn","info","debug","trace","unknown"],"description":"Ignore records below this severity. Default: keep all."}}},"resultSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"signatures":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"signature":{"type":"string"},"count":{"type":"integer"},"severity":{"type":"string","enum":["fatal","error","warn","info","debug","trace","unknown"]},"firstLine":{"type":"integer","description":"1-based line number."},"lastLine":{"type":"integer"},"firstSeen":{"type":"string"},"lastSeen":{"type":"string"},"example":{"type":"string"},"firstSpan":{"type":"object","description":"Half-open [start,end) range in four coordinate systems: UTF-16 code units, code points, UTF-8 bytes, extended grapheme clusters (Intl.Segmenter).","properties":{"utf16":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}},"codePoint":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}},"utf8":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}},"grapheme":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}},"graphemeAligned":{"type":"boolean"}}}}},"maxItems":100},"totals":{"type":"object","additionalProperties":false,"properties":{"lines":{"type":"integer"},"records":{"type":"integer"},"signatures":{"type":"integer"},"collapsed":{"type":"integer","description":"records minus signatures."},"omittedSignatures":{"type":"integer"}}},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"signatures":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"signature":{"type":"string"},"count":{"type":"integer"},"severity":{"type":"string","enum":["fatal","error","warn","info","debug","trace","unknown"]},"firstLine":{"type":"integer","description":"1-based line number."},"lastLine":{"type":"integer"},"firstSeen":{"type":"string"},"lastSeen":{"type":"string"},"example":{"type":"string"},"firstSpan":{"type":"object","description":"Half-open [start,end) range in four coordinate systems: UTF-16 code units, code points, UTF-8 bytes, extended grapheme clusters (Intl.Segmenter).","properties":{"utf16":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}},"codePoint":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}},"utf8":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}},"grapheme":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}},"graphemeAligned":{"type":"boolean"}}}}},"maxItems":100},"totals":{"type":"object","additionalProperties":false,"properties":{"lines":{"type":"integer"},"records":{"type":"integer"},"signatures":{"type":"integer"},"collapsed":{"type":"integer","description":"records minus signatures."},"omittedSignatures":{"type":"integer"}}},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]},"example":{"text":"2026-11-04T10:00:01Z ERROR db timeout after 3000 ms for user 17\n2026-11-04T10:00:02Z INFO ok\n2026-11-04T10:00:09Z ERROR db timeout after 3001 ms for user 92\n    at Pool.query (db.js:41:9)\n2026-11-04T10:00:10Z ERROR db timeout after 2999 ms for user 5\n","topN":5},"openapiOperation":{"operationId":"log_collapse","summary":"Collapse a log into error signatures with counts and first/last occurrence","description":"Groups the records of a log or CI output by signature: timestamps, UUIDs, IPs, hex ids, quoted values and numbers are replaced by placeholders, stack-trace continuation lines are attached to their record and contribute their first frames, and each signature reports its count, severity, first and last line, first and last timestamp (as written, when the line starts with an ISO 8601 timestamp) and an example. Lets an agent read 5,000 lines as 20 signatures. Does not diagnose causes, parse non-ISO timestamps or understand structured (JSON) logs beyond treating each line as text.\n\nPrice: 0.005 USDC on Base (x402).","x-x402-price-usdc":"0.005","x-x402-amount":"5000","x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.005"}},"x-audience":"agent-infra","x-sample-url":"https://agents.writerslogic.com/api/v1/samples/log-collapse","security":[{"x402":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","maxLength":300000,"minLength":1,"description":"Log text, at most 8000 lines."},"topN":{"type":"integer","minimum":1,"maximum":100,"description":"Signatures returned, by count. Default 20."},"signatureFrames":{"type":"integer","minimum":0,"maximum":10,"description":"Continuation lines (stack frames) that are part of the signature. Default 3."},"minSeverity":{"type":"string","enum":["fatal","error","warn","info","debug","trace","unknown"],"description":"Ignore records below this severity. Default: keep all."}}},"example":{"text":"2026-11-04T10:00:01Z ERROR db timeout after 3000 ms for user 17\n2026-11-04T10:00:02Z INFO ok\n2026-11-04T10:00:09Z ERROR db timeout after 3001 ms for user 92\n    at Pool.query (db.js:41:9)\n2026-11-04T10:00:10Z ERROR db timeout after 2999 ms for user 5\n","topN":5}}}},"responses":{"200":{"description":"Paid result with provenance","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"signatures":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"signature":{"type":"string"},"count":{"type":"integer"},"severity":{"type":"string","enum":["fatal","error","warn","info","debug","trace","unknown"]},"firstLine":{"type":"integer","description":"1-based line number."},"lastLine":{"type":"integer"},"firstSeen":{"type":"string"},"lastSeen":{"type":"string"},"example":{"type":"string"},"firstSpan":{"type":"object","description":"Half-open [start,end) range in four coordinate systems: UTF-16 code units, code points, UTF-8 bytes, extended grapheme clusters (Intl.Segmenter).","properties":{"utf16":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}},"codePoint":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}},"utf8":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}},"grapheme":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}}},"graphemeAligned":{"type":"boolean"}}}}},"maxItems":100},"totals":{"type":"object","additionalProperties":false,"properties":{"lines":{"type":"integer"},"records":{"type":"integer"},"signatures":{"type":"integer"},"collapsed":{"type":"integer","description":"records minus signatures."},"omittedSignatures":{"type":"integer"}}},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]}}}},"400":{"description":"Invalid request (no payment consumed)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"401":{"description":"Invalid X-API-KEY","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"Payment required or invalid","content":{"application/json":{"schema":{"type":"object","description":"x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"code":{"type":"string"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"502":{"description":"Upstream failure; the payment is released or not settled","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}},"links":{"docs":"https://agents.writerslogic.com/docs/log-collapse/","docsJson":"https://agents.writerslogic.com/docs/log-collapse.json","sample":"https://agents.writerslogic.com/api/v1/samples/log-collapse","openapi":"https://agents.writerslogic.com/openapi.json","catalog":"https://agents.writerslogic.com/api/v1/catalog","verifyProvenance":"https://agents.writerslogic.com/api/v1/verify-provenance","index":"https://agents.writerslogic.com/docs/index.json"}}