@xenosystem/agent-sdk 0.10.38 → 0.10.39

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.
Files changed (57) hide show
  1. package/dist/artifacts/index.cjs +9 -9
  2. package/dist/artifacts/index.js +9 -9
  3. package/dist/artifacts/metafile-cjs.json +1 -1
  4. package/dist/artifacts/metafile-esm.json +1 -1
  5. package/dist/automation/index.cjs +8 -8
  6. package/dist/automation/index.d.cts +10 -0
  7. package/dist/automation/index.d.ts +10 -0
  8. package/dist/automation/index.js +9 -9
  9. package/dist/automation/metafile-cjs.json +1 -1
  10. package/dist/automation/metafile-esm.json +1 -1
  11. package/dist/control-plane/index.cjs +1 -1
  12. package/dist/control-plane/index.js +1 -1
  13. package/dist/electron/index.cjs +221 -200
  14. package/dist/electron/index.d.cts +91 -1
  15. package/dist/electron/index.d.ts +91 -1
  16. package/dist/electron/index.js +221 -200
  17. package/dist/electron/metafile-cjs.json +1 -1
  18. package/dist/electron/metafile-esm.json +1 -1
  19. package/dist/index.cjs +396 -371
  20. package/dist/index.d.cts +134 -4
  21. package/dist/index.d.ts +134 -4
  22. package/dist/index.js +397 -372
  23. package/dist/intelligence/index.cjs +9 -9
  24. package/dist/intelligence/index.js +9 -9
  25. package/dist/intelligence/metafile-cjs.json +1 -1
  26. package/dist/intelligence/metafile-esm.json +1 -1
  27. package/dist/mcp/index.d.cts +10 -0
  28. package/dist/mcp/index.d.ts +10 -0
  29. package/dist/metafile-cjs.json +1 -1
  30. package/dist/metafile-esm.json +1 -1
  31. package/dist/providers/index.cjs +9 -9
  32. package/dist/providers/index.js +9 -9
  33. package/dist/providers/metafile-cjs.json +1 -1
  34. package/dist/providers/metafile-esm.json +1 -1
  35. package/dist/recipes/index.cjs +2 -2
  36. package/dist/recipes/index.js +2 -2
  37. package/dist/recipes/metafile-cjs.json +1 -1
  38. package/dist/recipes/metafile-esm.json +1 -1
  39. package/dist/research/index.cjs +3 -3
  40. package/dist/research/index.js +3 -3
  41. package/dist/research/metafile-cjs.json +1 -1
  42. package/dist/research/metafile-esm.json +1 -1
  43. package/dist/session/index.cjs +25 -25
  44. package/dist/session/index.js +25 -25
  45. package/dist/session/metafile-cjs.json +1 -1
  46. package/dist/session/metafile-esm.json +1 -1
  47. package/dist/sharing/index.cjs +4 -4
  48. package/dist/sharing/index.js +4 -4
  49. package/dist/sharing/metafile-cjs.json +1 -1
  50. package/dist/sharing/metafile-esm.json +1 -1
  51. package/dist/utils/index.cjs +23 -23
  52. package/dist/utils/index.d.cts +15 -1
  53. package/dist/utils/index.d.ts +15 -1
  54. package/dist/utils/index.js +23 -23
  55. package/dist/utils/metafile-cjs.json +1 -1
  56. package/dist/utils/metafile-esm.json +1 -1
  57. package/package.json +3 -3
@@ -1,3 +1,3 @@
1
- import{randomUUID as x}from"node:crypto";var w=["plan","requirements","design","task-graph","patch","diff","file","document","diagram","screenshot","recording","browser-snapshot","test-report","review-report","security-report","performance-report","release-report","sbom","provenance","attestation","page"],E=["draft","pending_review","approved","rejected","superseded","archived"],R=["public","internal","confidential","restricted"],X=["agent","tool","user","system","integration"],l=["requirement","design-decision","risk","task","agent","run","tool-call","edit","commit","test-case","test-run","finding","approval","artifact","release","claim"],m=["decomposes","depends_on","implements","changes","tests","verifies","finds","fixes","reviews","approves","rejects","supersedes","derived_from","produced_by","supports_claim","contradicts_claim","released_as"];import{createHash as P}from"node:crypto";function s(e){return{algorithm:"sha256",value:P("sha256").update(e).digest("hex")}}function c(e){return JSON.stringify(g(e,new Set))}function d(e){return s(c(e))}function g(e,t){if(e===null||typeof e!="object"){if(typeof e=="number"&&!Number.isFinite(e))throw new TypeError("Artifact JSON cannot contain non-finite numbers");return e}if(t.has(e))throw new TypeError("Artifact JSON cannot contain cycles");if(t.add(e),Array.isArray(e)){let r=e.map(o=>g(o,t));return t.delete(e),r}let n={};for(let r of Object.keys(e).sort((o,i)=>o.localeCompare(i))){let o=e[r];if(o===void 0)throw new TypeError(`Artifact JSON property ${r} is undefined`);n[r]=g(o,t)}return t.delete(e),n}var $="[\\u0000-\\u001f\\u007f]",ee=new RegExp($);var te=new Set(E),ne=new Set(R),ie=new Set(X),re=new Set(w),oe=new Set(l),se=new Set(m);var pe=new Set(l),le=new Set(m);var Oe=64*1024*1024;var He=16*1024*1024;var ft=16*1024*1024;function S(e,t={}){for(let n of e){let r=n.codePointAt(0);if(r===127)return!0;if(!(r>31)&&!(r===9&&t.allowTab===!0)&&!((r===10||r===13)&&t.allowLineBreaks===!0))return!0}return!1}var k="xeno.source-research-report.v1",u=class extends Error{constructor(n){super(`XENO source-research report is invalid: ${n.join("; ")}`);this.issues=n;this.name="XenoSourceResearchValidationError"}issues;code="XENO_SOURCE_RESEARCH_INVALID"};function Tt(e){let t={schemaVersion:k,reportId:e.reportId??`research_${x()}`,runId:e.runId??`research_run_${x()}`,query:e.query.trim(),queryHash:N(e.query.trim()),repository:structuredClone(e.repository),collectedAt:e.collectedAt,completedAt:e.completedAt??new Date().toISOString(),model:structuredClone(e.model),files:structuredClone(e.files),excerpts:structuredClone(e.excerpts),answer:e.answer.trim(),answerExcerptIds:[...new Set(e.answerExcerptIds)],publicRationale:e.publicRationale.trim(),findings:structuredClone(e.findings),limitations:[...new Set((e.limitations??[]).map(n=>n.trim()).filter(Boolean))],usage:{inputTokens:T(e.usage?.inputTokens),outputTokens:T(e.usage?.outputTokens)}};return A(t),t}function kt(e){return{excerptId:e.excerptId,path:e.path,startLine:e.startLine,endLine:e.endLine,text:y(e.text),contentHash:N(y(e.text)),sourceContentHash:structuredClone(e.sourceContentHash)}}function A(e){let t=[];e?.schemaVersion!==k&&t.push("schemaVersion must be xeno.source-research-report.v1"),p(e?.reportId,"reportId",t),p(e?.runId,"runId",t),a(e?.query,"query",t,128e3),h(e?.queryHash,"queryHash",t),typeof e?.query=="string"&&e.queryHash?.value!==s(e.query).value&&t.push("queryHash does not match query"),V(e?.repository,t),_(e?.collectedAt,"collectedAt",t),_(e?.completedAt,"completedAt",t),Date.parse(e?.completedAt)<Date.parse(e?.collectedAt)&&t.push("completedAt cannot precede collectedAt"),L(e?.model,t),a(e?.answer,"answer",t,512e3),a(e?.publicRationale,"publicRationale",t,256e3),H(e?.usage,t),(!Array.isArray(e?.files)||e.files.length<1||e.files.length>256)&&t.push("files must contain 1 through 256 source records");let n=new Map;for(let i of e?.files??[])D(i,t),n.has(i.path)&&t.push(`duplicate source file ${i.path}`),n.set(i.path,i);(!Array.isArray(e?.excerpts)||e.excerpts.length>1024)&&t.push("excerpts must contain at most 1024 records");let r=new Map;for(let i of e?.excerpts??[])F(i,n,t),r.has(i.excerptId)&&t.push(`duplicate excerpt ${i.excerptId}`),r.set(i.excerptId,i);(!Array.isArray(e?.answerExcerptIds)||e.answerExcerptIds.length<1)&&t.push("answerExcerptIds must cite at least one source excerpt");for(let i of e?.answerExcerptIds??[])r.has(i)||t.push(`answer references unknown excerpt ${i}`);(!Array.isArray(e?.findings)||e.findings.length>512)&&t.push("findings must contain at most 512 records");let o=new Set;for(let i of e?.findings??[]){p(i?.findingId,"findingId",t),o.has(i.findingId)&&t.push(`duplicate finding ${i.findingId}`),o.add(i.findingId),a(i?.title,`finding ${i.findingId} title`,t,2e3),a(i?.summary,`finding ${i.findingId} summary`,t,64e3),J(i?.severity)||t.push(`finding ${i.findingId} severity is invalid`),q(i?.confidence)||t.push(`finding ${i.findingId} confidence must be between 0 and 1`),(!Array.isArray(i?.excerptIds)||i.excerptIds.length<1)&&t.push(`finding ${i.findingId} requires source excerpts`);for(let I of i?.excerptIds??[])r.has(I)||t.push(`finding ${i.findingId} references unknown excerpt ${I}`)}(!Array.isArray(e?.limitations)||e.limitations.length>256)&&t.push("limitations must contain at most 256 records");for(let i of e?.limitations??[])a(i,"limitation",t,16e3);if(t.length>0)throw new u([...new Set(t)])}function Ct(e,t){A(e);let n=t.createdAt??e.completedAt,r=c(e);return{schemaVersion:1,artifactId:t.artifactId??`research_${s(`${e.runId}:${e.repository.commit}:${e.queryHash.value}`).value.slice(0,24)}`,revision:1,kind:"custom:source-research-report",title:`Source research: ${e.repository.repository}`,description:e.answer.slice(0,1e3),state:"pending_review",createdAt:n,mediaType:"application/vnd.xeno.source-research-report+json",sensitivity:t.sensitivity??"internal",identity:{...t.identity,runId:t.identity?.runId??e.runId,repositoryId:t.identity?.repositoryId??`${e.repository.provider}:${e.repository.repository}`},content:{hash:d(e),sizeBytes:Buffer.byteLength(r,"utf8"),storage:{type:"inline",text:r},encoding:"utf8",redactedPreview:e.answer.slice(0,2e3)},provenance:{producer:structuredClone(t.producer),attributes:{"xeno.research.provider":e.repository.provider,"xeno.research.repository":e.repository.repository,"xeno.research.commit":e.repository.commit,"xeno.research.model":`${e.model.providerId}/${e.model.model}`,"xeno.research.fileCount":e.files.length,"xeno.research.findingCount":e.findings.length}},anchors:e.excerpts.map(o=>({kind:"source-line",path:o.path,startLine:o.startLine,endLine:o.endLine,repositoryId:`${e.repository.provider}:${e.repository.repository}`,commit:e.repository.commit}))}}function Nt(e){if(e.kind!=="custom:source-research-report"||e.mediaType!=="application/vnd.xeno.source-research-report+json")throw new u([`Artifact ${e.artifactId} is not a source-research report`]);if(e.content.storage.type!=="inline"||typeof e.content.storage.text!="string")throw new u(["Source-research reports require inline JSON content"]);let t;try{t=JSON.parse(e.content.storage.text)}catch{throw new u(["Source-research artifact content is invalid JSON"])}if(A(t),d(t).value!==e.content.hash.value)throw new u(["Source-research content hash does not match the artifact"]);return structuredClone(t)}function y(e){return e.replace(/\r\n?/gu,`
2
- `)}function V(e,t){e?.provider!=="github"&&e?.provider!=="gitlab"&&t.push("repository provider must be github or gitlab"),M(e?.host,"repository host",t),j(e?.repository,t),a(e?.ref,"repository ref",t,512),(typeof e?.commit!="string"||!/^[a-f0-9]{7,64}$/u.test(e.commit))&&t.push("repository commit must be a lowercase hexadecimal object ID"),B(e?.url,"repository url",t)}function D(e,t){C(e?.path,"source file path",t),h(e?.contentHash,`source file ${e?.path} contentHash`,t),(!Number.isSafeInteger(e?.sizeBytes)||e.sizeBytes<0||e.sizeBytes>8*1024*1024)&&t.push(`source file ${e?.path} sizeBytes is invalid`),(!Number.isSafeInteger(e?.lineCount)||e.lineCount<1||e.lineCount>1e6)&&t.push(`source file ${e?.path} lineCount is invalid`),e?.blobId!==void 0&&a(e.blobId,`source file ${e.path} blobId`,t,256),e?.language!==void 0&&a(e.language,`source file ${e.path} language`,t,128)}function F(e,t,n){p(e?.excerptId,"excerptId",n),C(e?.path,`excerpt ${e?.excerptId} path`,n);let r=t.get(e?.path);r||n.push(`excerpt ${e?.excerptId} references unknown source file ${e?.path}`),(!Number.isSafeInteger(e?.startLine)||e.startLine<1)&&n.push(`excerpt ${e?.excerptId} startLine is invalid`),(!Number.isSafeInteger(e?.endLine)||e.endLine<e.startLine)&&n.push(`excerpt ${e?.excerptId} endLine is invalid`),r&&e.endLine>r.lineCount&&n.push(`excerpt ${e?.excerptId} exceeds source line count`),a(e?.text,`excerpt ${e?.excerptId} text`,n,256e3),h(e?.contentHash,`excerpt ${e?.excerptId} contentHash`,n),h(e?.sourceContentHash,`excerpt ${e?.excerptId} sourceContentHash`,n);let o=typeof e?.text=="string"?y(e.text):"";e?.contentHash?.value!==s(o).value&&n.push(`excerpt ${e?.excerptId} contentHash does not match text`),r&&e?.sourceContentHash?.value!==r.contentHash.value&&n.push(`excerpt ${e?.excerptId} is bound to a different source hash`),o&&o.split(`
3
- `).length!==e.endLine-e.startLine+1&&n.push(`excerpt ${e?.excerptId} line span does not match text`)}function L(e,t){p(e?.providerId,"model providerId",t),a(e?.model,"model",t,512),e?.connectionId!==void 0&&p(e.connectionId,"model connectionId",t)}function H(e,t){(!Number.isSafeInteger(e?.inputTokens)||e.inputTokens<0)&&t.push("usage.inputTokens must be a non-negative integer"),(!Number.isSafeInteger(e?.outputTokens)||e.outputTokens<0)&&t.push("usage.outputTokens must be a non-negative integer")}function h(e,t,n){(e?.algorithm!=="sha256"||!/^[a-f0-9]{64}$/u.test(e?.value??""))&&n.push(`${t} must be a lowercase SHA-256 digest`)}function p(e,t,n){(typeof e!="string"||!/^[A-Za-z0-9][A-Za-z0-9._:@/-]{0,255}$/u.test(e))&&n.push(`${t} is invalid`)}function a(e,t,n,r){(typeof e!="string"||!e.trim()||e.length>r||S(e,{allowTab:!0,allowLineBreaks:!0}))&&n.push(`${t} must be non-empty bounded text`)}function _(e,t,n){(typeof e!="string"||!Number.isFinite(Date.parse(e))||new Date(e).toISOString()!==e)&&n.push(`${t} must be an ISO-8601 UTC timestamp`)}function M(e,t,n){(typeof e!="string"||e.length>253||!/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/u.test(e))&&n.push(`${t} is invalid`)}function j(e,t){(typeof e!="string"||e.length>2048||e.startsWith("/")||e.endsWith("/")||e.split("/").some(n=>!n||n==="."||n===".."))&&t.push("repository name is invalid")}function C(e,t,n){(typeof e!="string"||e.length>4096||e.startsWith("/")||/^[A-Za-z]:[\\/]/u.test(e)||e.includes("\\")||e.split("/").some(r=>!r||r==="."||r===".."))&&n.push(`${t} must be repository-relative`)}function B(e,t,n){try{let r=new URL(String(e));(r.protocol!=="https:"||r.username||r.password)&&n.push(`${t} must be credential-free HTTPS`)}catch{n.push(`${t} is invalid`)}}function T(e){return Number.isSafeInteger(e)&&(e??-1)>=0?e:0}function N(e){return{algorithm:"sha256",value:s(e).value}}function q(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function J(e){return e==="info"||e==="low"||e==="medium"||e==="high"||e==="critical"}export{k as XENO_SOURCE_RESEARCH_SCHEMA_VERSION,u as XenoSourceResearchValidationError,A as assertValidXenoSourceResearchReport,kt as createXenoSourceResearchExcerpt,Tt as createXenoSourceResearchReport,y as normalizeSourceText,Nt as xenoArtifactToSourceResearchReport,Ct as xenoSourceResearchReportToArtifact};
1
+ import{randomUUID as k}from"node:crypto";var E=["plan","requirements","design","task-graph","patch","diff","file","document","diagram","screenshot","recording","browser-snapshot","test-report","review-report","security-report","performance-report","release-report","sbom","provenance","attestation","page"],R=["draft","pending_review","approved","rejected","superseded","archived"],X=["public","internal","confidential","restricted"],b=["agent","tool","user","system","integration"],l=["requirement","design-decision","risk","task","agent","run","tool-call","edit","commit","test-case","test-run","finding","approval","artifact","release","claim"],m=["decomposes","depends_on","implements","changes","tests","verifies","finds","fixes","reviews","approves","rejects","supersedes","derived_from","produced_by","supports_claim","contradicts_claim","released_as"];import{createHash as V}from"node:crypto";function s(e){return{algorithm:"sha256",value:V("sha256").update(e).digest("hex")}}function c(e){return JSON.stringify(g(e,new Set))}function d(e){return s(c(e))}function g(e,t){if(e===null||typeof e!="object"){if(typeof e=="number"&&!Number.isFinite(e))throw new TypeError("Artifact JSON cannot contain non-finite numbers");return e}if(t.has(e))throw new TypeError("Artifact JSON cannot contain cycles");if(t.add(e),Array.isArray(e)){let r=e.map(o=>g(o,t));return t.delete(e),r}let n={};for(let r of Object.keys(e).sort((o,i)=>o.localeCompare(i))){let o=e[r];if(o===void 0)throw new TypeError(`Artifact JSON property ${r} is undefined`);n[r]=g(o,t)}return t.delete(e),n}var D="[\\u0000-\\u001f\\u007f]",ie=new RegExp(D);var re=new Set(R),oe=new Set(X),se=new Set(b),ae=new Set(E),ce=new Set(l),de=new Set(m);var he=new Set(l),ge=new Set(m);var x=Symbol.for("@xenosystem/agent-sdk/file-cache"),_=globalThis,y=_[x]??{entries:new Map,counters:{reads:0,hits:0}};_[x]=y;var be=y.entries,Se=y.counters;var je=64*1024*1024;var We=16*1024*1024;var yt=16*1024*1024;function T(e,t={}){for(let n of e){let r=n.codePointAt(0);if(r===127)return!0;if(!(r>31)&&!(r===9&&t.allowTab===!0)&&!((r===10||r===13)&&t.allowLineBreaks===!0))return!0}return!1}var P="xeno.source-research-report.v1",u=class extends Error{constructor(n){super(`XENO source-research report is invalid: ${n.join("; ")}`);this.issues=n;this.name="XenoSourceResearchValidationError"}issues;code="XENO_SOURCE_RESEARCH_INVALID"};function Dt(e){let t={schemaVersion:P,reportId:e.reportId??`research_${k()}`,runId:e.runId??`research_run_${k()}`,query:e.query.trim(),queryHash:O(e.query.trim()),repository:structuredClone(e.repository),collectedAt:e.collectedAt,completedAt:e.completedAt??new Date().toISOString(),model:structuredClone(e.model),files:structuredClone(e.files),excerpts:structuredClone(e.excerpts),answer:e.answer.trim(),answerExcerptIds:[...new Set(e.answerExcerptIds)],publicRationale:e.publicRationale.trim(),findings:structuredClone(e.findings),limitations:[...new Set((e.limitations??[]).map(n=>n.trim()).filter(Boolean))],usage:{inputTokens:N(e.usage?.inputTokens),outputTokens:N(e.usage?.outputTokens)}};return I(t),t}function Ft(e){return{excerptId:e.excerptId,path:e.path,startLine:e.startLine,endLine:e.endLine,text:A(e.text),contentHash:O(A(e.text)),sourceContentHash:structuredClone(e.sourceContentHash)}}function I(e){let t=[];e?.schemaVersion!==P&&t.push("schemaVersion must be xeno.source-research-report.v1"),p(e?.reportId,"reportId",t),p(e?.runId,"runId",t),a(e?.query,"query",t,128e3),h(e?.queryHash,"queryHash",t),typeof e?.query=="string"&&e.queryHash?.value!==s(e.query).value&&t.push("queryHash does not match query"),L(e?.repository,t),C(e?.collectedAt,"collectedAt",t),C(e?.completedAt,"completedAt",t),Date.parse(e?.completedAt)<Date.parse(e?.collectedAt)&&t.push("completedAt cannot precede collectedAt"),B(e?.model,t),a(e?.answer,"answer",t,512e3),a(e?.publicRationale,"publicRationale",t,256e3),j(e?.usage,t),(!Array.isArray(e?.files)||e.files.length<1||e.files.length>256)&&t.push("files must contain 1 through 256 source records");let n=new Map;for(let i of e?.files??[])M(i,t),n.has(i.path)&&t.push(`duplicate source file ${i.path}`),n.set(i.path,i);(!Array.isArray(e?.excerpts)||e.excerpts.length>1024)&&t.push("excerpts must contain at most 1024 records");let r=new Map;for(let i of e?.excerpts??[])H(i,n,t),r.has(i.excerptId)&&t.push(`duplicate excerpt ${i.excerptId}`),r.set(i.excerptId,i);(!Array.isArray(e?.answerExcerptIds)||e.answerExcerptIds.length<1)&&t.push("answerExcerptIds must cite at least one source excerpt");for(let i of e?.answerExcerptIds??[])r.has(i)||t.push(`answer references unknown excerpt ${i}`);(!Array.isArray(e?.findings)||e.findings.length>512)&&t.push("findings must contain at most 512 records");let o=new Set;for(let i of e?.findings??[]){p(i?.findingId,"findingId",t),o.has(i.findingId)&&t.push(`duplicate finding ${i.findingId}`),o.add(i.findingId),a(i?.title,`finding ${i.findingId} title`,t,2e3),a(i?.summary,`finding ${i.findingId} summary`,t,64e3),W(i?.severity)||t.push(`finding ${i.findingId} severity is invalid`),U(i?.confidence)||t.push(`finding ${i.findingId} confidence must be between 0 and 1`),(!Array.isArray(i?.excerptIds)||i.excerptIds.length<1)&&t.push(`finding ${i.findingId} requires source excerpts`);for(let w of i?.excerptIds??[])r.has(w)||t.push(`finding ${i.findingId} references unknown excerpt ${w}`)}(!Array.isArray(e?.limitations)||e.limitations.length>256)&&t.push("limitations must contain at most 256 records");for(let i of e?.limitations??[])a(i,"limitation",t,16e3);if(t.length>0)throw new u([...new Set(t)])}function Lt(e,t){I(e);let n=t.createdAt??e.completedAt,r=c(e);return{schemaVersion:1,artifactId:t.artifactId??`research_${s(`${e.runId}:${e.repository.commit}:${e.queryHash.value}`).value.slice(0,24)}`,revision:1,kind:"custom:source-research-report",title:`Source research: ${e.repository.repository}`,description:e.answer.slice(0,1e3),state:"pending_review",createdAt:n,mediaType:"application/vnd.xeno.source-research-report+json",sensitivity:t.sensitivity??"internal",identity:{...t.identity,runId:t.identity?.runId??e.runId,repositoryId:t.identity?.repositoryId??`${e.repository.provider}:${e.repository.repository}`},content:{hash:d(e),sizeBytes:Buffer.byteLength(r,"utf8"),storage:{type:"inline",text:r},encoding:"utf8",redactedPreview:e.answer.slice(0,2e3)},provenance:{producer:structuredClone(t.producer),attributes:{"xeno.research.provider":e.repository.provider,"xeno.research.repository":e.repository.repository,"xeno.research.commit":e.repository.commit,"xeno.research.model":`${e.model.providerId}/${e.model.model}`,"xeno.research.fileCount":e.files.length,"xeno.research.findingCount":e.findings.length}},anchors:e.excerpts.map(o=>({kind:"source-line",path:o.path,startLine:o.startLine,endLine:o.endLine,repositoryId:`${e.repository.provider}:${e.repository.repository}`,commit:e.repository.commit}))}}function Mt(e){if(e.kind!=="custom:source-research-report"||e.mediaType!=="application/vnd.xeno.source-research-report+json")throw new u([`Artifact ${e.artifactId} is not a source-research report`]);if(e.content.storage.type!=="inline"||typeof e.content.storage.text!="string")throw new u(["Source-research reports require inline JSON content"]);let t;try{t=JSON.parse(e.content.storage.text)}catch{throw new u(["Source-research artifact content is invalid JSON"])}if(I(t),d(t).value!==e.content.hash.value)throw new u(["Source-research content hash does not match the artifact"]);return structuredClone(t)}function A(e){return e.replace(/\r\n?/gu,`
2
+ `)}function L(e,t){e?.provider!=="github"&&e?.provider!=="gitlab"&&t.push("repository provider must be github or gitlab"),q(e?.host,"repository host",t),J(e?.repository,t),a(e?.ref,"repository ref",t,512),(typeof e?.commit!="string"||!/^[a-f0-9]{7,64}$/u.test(e.commit))&&t.push("repository commit must be a lowercase hexadecimal object ID"),z(e?.url,"repository url",t)}function M(e,t){$(e?.path,"source file path",t),h(e?.contentHash,`source file ${e?.path} contentHash`,t),(!Number.isSafeInteger(e?.sizeBytes)||e.sizeBytes<0||e.sizeBytes>8*1024*1024)&&t.push(`source file ${e?.path} sizeBytes is invalid`),(!Number.isSafeInteger(e?.lineCount)||e.lineCount<1||e.lineCount>1e6)&&t.push(`source file ${e?.path} lineCount is invalid`),e?.blobId!==void 0&&a(e.blobId,`source file ${e.path} blobId`,t,256),e?.language!==void 0&&a(e.language,`source file ${e.path} language`,t,128)}function H(e,t,n){p(e?.excerptId,"excerptId",n),$(e?.path,`excerpt ${e?.excerptId} path`,n);let r=t.get(e?.path);r||n.push(`excerpt ${e?.excerptId} references unknown source file ${e?.path}`),(!Number.isSafeInteger(e?.startLine)||e.startLine<1)&&n.push(`excerpt ${e?.excerptId} startLine is invalid`),(!Number.isSafeInteger(e?.endLine)||e.endLine<e.startLine)&&n.push(`excerpt ${e?.excerptId} endLine is invalid`),r&&e.endLine>r.lineCount&&n.push(`excerpt ${e?.excerptId} exceeds source line count`),a(e?.text,`excerpt ${e?.excerptId} text`,n,256e3),h(e?.contentHash,`excerpt ${e?.excerptId} contentHash`,n),h(e?.sourceContentHash,`excerpt ${e?.excerptId} sourceContentHash`,n);let o=typeof e?.text=="string"?A(e.text):"";e?.contentHash?.value!==s(o).value&&n.push(`excerpt ${e?.excerptId} contentHash does not match text`),r&&e?.sourceContentHash?.value!==r.contentHash.value&&n.push(`excerpt ${e?.excerptId} is bound to a different source hash`),o&&o.split(`
3
+ `).length!==e.endLine-e.startLine+1&&n.push(`excerpt ${e?.excerptId} line span does not match text`)}function B(e,t){p(e?.providerId,"model providerId",t),a(e?.model,"model",t,512),e?.connectionId!==void 0&&p(e.connectionId,"model connectionId",t)}function j(e,t){(!Number.isSafeInteger(e?.inputTokens)||e.inputTokens<0)&&t.push("usage.inputTokens must be a non-negative integer"),(!Number.isSafeInteger(e?.outputTokens)||e.outputTokens<0)&&t.push("usage.outputTokens must be a non-negative integer")}function h(e,t,n){(e?.algorithm!=="sha256"||!/^[a-f0-9]{64}$/u.test(e?.value??""))&&n.push(`${t} must be a lowercase SHA-256 digest`)}function p(e,t,n){(typeof e!="string"||!/^[A-Za-z0-9][A-Za-z0-9._:@/-]{0,255}$/u.test(e))&&n.push(`${t} is invalid`)}function a(e,t,n,r){(typeof e!="string"||!e.trim()||e.length>r||T(e,{allowTab:!0,allowLineBreaks:!0}))&&n.push(`${t} must be non-empty bounded text`)}function C(e,t,n){(typeof e!="string"||!Number.isFinite(Date.parse(e))||new Date(e).toISOString()!==e)&&n.push(`${t} must be an ISO-8601 UTC timestamp`)}function q(e,t,n){(typeof e!="string"||e.length>253||!/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/u.test(e))&&n.push(`${t} is invalid`)}function J(e,t){(typeof e!="string"||e.length>2048||e.startsWith("/")||e.endsWith("/")||e.split("/").some(n=>!n||n==="."||n===".."))&&t.push("repository name is invalid")}function $(e,t,n){(typeof e!="string"||e.length>4096||e.startsWith("/")||/^[A-Za-z]:[\\/]/u.test(e)||e.includes("\\")||e.split("/").some(r=>!r||r==="."||r===".."))&&n.push(`${t} must be repository-relative`)}function z(e,t,n){try{let r=new URL(String(e));(r.protocol!=="https:"||r.username||r.password)&&n.push(`${t} must be credential-free HTTPS`)}catch{n.push(`${t} is invalid`)}}function N(e){return Number.isSafeInteger(e)&&(e??-1)>=0?e:0}function O(e){return{algorithm:"sha256",value:s(e).value}}function U(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function W(e){return e==="info"||e==="low"||e==="medium"||e==="high"||e==="critical"}export{P as XENO_SOURCE_RESEARCH_SCHEMA_VERSION,u as XenoSourceResearchValidationError,I as assertValidXenoSourceResearchReport,Ft as createXenoSourceResearchExcerpt,Dt as createXenoSourceResearchReport,A as normalizeSourceText,Mt as xenoArtifactToSourceResearchReport,Lt as xenoSourceResearchReportToArtifact};
@@ -1 +1 @@
1
- {"inputs":{"src/artifacts/types.ts":{"bytes":11227,"imports":[],"format":"esm"},"src/artifacts/hash.ts":{"bytes":1489,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/utils/custom-names.ts":{"bytes":2210,"imports":[],"format":"esm"},"src/artifacts/validation.ts":{"bytes":25271,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/evidence-graph.ts":{"bytes":8778,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/repository.ts":{"bytes":29289,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"format":"esm"},"src/utils/fs.ts":{"bytes":13746,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/control-plane/lock.ts":{"bytes":2496,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/version.ts":{"bytes":195,"imports":[],"format":"esm"},"src/artifacts/file-repository.ts":{"bytes":16401,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/utils/fs.ts","kind":"import-statement","original":"../utils/fs.js"},{"path":"src/control-plane/lock.ts","kind":"import-statement","original":"../control-plane/lock.js"},{"path":"src/version.ts","kind":"import-statement","original":"../version.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/diff-artifact.ts":{"bytes":17998,"imports":[{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"format":"esm"},"src/artifacts/review-service.ts":{"bytes":8672,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"}],"format":"esm"},"src/artifacts/spec-lifecycle.ts":{"bytes":31007,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/review-service.ts","kind":"import-statement","original":"./review-service.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/multi-agent-review.ts":{"bytes":30649,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/legacy-adapters.ts":{"bytes":10908,"imports":[{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"}],"format":"esm"},"src/artifacts/pages.ts":{"bytes":20179,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/index.ts":{"bytes":413,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/evidence-graph.ts","kind":"import-statement","original":"./evidence-graph.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"},{"path":"src/artifacts/file-repository.ts","kind":"import-statement","original":"./file-repository.js"},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"},{"path":"src/artifacts/review-service.ts","kind":"import-statement","original":"./review-service.js"},{"path":"src/artifacts/spec-lifecycle.ts","kind":"import-statement","original":"./spec-lifecycle.js"},{"path":"src/artifacts/multi-agent-review.ts","kind":"import-statement","original":"./multi-agent-review.js"},{"path":"src/artifacts/legacy-adapters.ts","kind":"import-statement","original":"./legacy-adapters.js"},{"path":"src/artifacts/pages.ts","kind":"import-statement","original":"./pages.js"}],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/research/source-research.ts":{"bytes":18957,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/index.ts","kind":"import-statement","original":"../artifacts/index.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"../utils/text-security.js"}],"format":"esm"},"src/research/index.ts":{"bytes":38,"imports":[{"path":"src/research/source-research.ts","kind":"import-statement","original":"./source-research.js"}],"format":"esm"}},"outputs":{"dist/research/index.cjs":{"imports":[{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true}],"exports":[],"entryPoint":"src/research/index.ts","inputs":{"src/research/index.ts":{"bytesInOutput":346},"src/research/source-research.ts":{"bytesInOutput":9362},"src/artifacts/types.ts":{"bytesInOutput":819},"src/artifacts/index.ts":{"bytesInOutput":0},"src/artifacts/hash.ts":{"bytesInOutput":715},"src/artifacts/validation.ts":{"bytesInOutput":138},"src/artifacts/evidence-graph.ts":{"bytesInOutput":32},"src/artifacts/file-repository.ts":{"bytesInOutput":20},"src/artifacts/diff-artifact.ts":{"bytesInOutput":20},"src/artifacts/pages.ts":{"bytesInOutput":20},"src/utils/text-security.ts":{"bytesInOutput":179}},"bytes":12358}}}
1
+ {"inputs":{"src/artifacts/types.ts":{"bytes":11227,"imports":[],"format":"esm"},"src/artifacts/hash.ts":{"bytes":1489,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/utils/custom-names.ts":{"bytes":2210,"imports":[],"format":"esm"},"src/artifacts/validation.ts":{"bytes":25271,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/evidence-graph.ts":{"bytes":8778,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/repository.ts":{"bytes":29289,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"format":"esm"},"src/utils/file-cache.ts":{"bytes":6195,"imports":[{"path":"node:fs","kind":"import-statement","external":true}],"format":"esm"},"src/utils/fs.ts":{"bytes":13885,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/utils/file-cache.ts","kind":"import-statement","original":"./file-cache.js"}],"format":"esm"},"src/control-plane/lock.ts":{"bytes":2496,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/version.ts":{"bytes":195,"imports":[],"format":"esm"},"src/artifacts/file-repository.ts":{"bytes":16401,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/utils/fs.ts","kind":"import-statement","original":"../utils/fs.js"},{"path":"src/control-plane/lock.ts","kind":"import-statement","original":"../control-plane/lock.js"},{"path":"src/version.ts","kind":"import-statement","original":"../version.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/diff-artifact.ts":{"bytes":17998,"imports":[{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"format":"esm"},"src/artifacts/review-service.ts":{"bytes":8672,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"}],"format":"esm"},"src/artifacts/spec-lifecycle.ts":{"bytes":31007,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/review-service.ts","kind":"import-statement","original":"./review-service.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/multi-agent-review.ts":{"bytes":30649,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/legacy-adapters.ts":{"bytes":10908,"imports":[{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"}],"format":"esm"},"src/artifacts/pages.ts":{"bytes":20179,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/index.ts":{"bytes":413,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/evidence-graph.ts","kind":"import-statement","original":"./evidence-graph.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"},{"path":"src/artifacts/file-repository.ts","kind":"import-statement","original":"./file-repository.js"},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"},{"path":"src/artifacts/review-service.ts","kind":"import-statement","original":"./review-service.js"},{"path":"src/artifacts/spec-lifecycle.ts","kind":"import-statement","original":"./spec-lifecycle.js"},{"path":"src/artifacts/multi-agent-review.ts","kind":"import-statement","original":"./multi-agent-review.js"},{"path":"src/artifacts/legacy-adapters.ts","kind":"import-statement","original":"./legacy-adapters.js"},{"path":"src/artifacts/pages.ts","kind":"import-statement","original":"./pages.js"}],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/research/source-research.ts":{"bytes":18957,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/index.ts","kind":"import-statement","original":"../artifacts/index.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"../utils/text-security.js"}],"format":"esm"},"src/research/index.ts":{"bytes":38,"imports":[{"path":"src/research/source-research.ts","kind":"import-statement","original":"./source-research.js"}],"format":"esm"}},"outputs":{"dist/research/index.cjs":{"imports":[{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true}],"exports":[],"entryPoint":"src/research/index.ts","inputs":{"src/research/index.ts":{"bytesInOutput":346},"src/research/source-research.ts":{"bytesInOutput":9368},"src/artifacts/types.ts":{"bytesInOutput":819},"src/artifacts/index.ts":{"bytesInOutput":0},"src/artifacts/hash.ts":{"bytesInOutput":715},"src/artifacts/validation.ts":{"bytesInOutput":138},"src/artifacts/evidence-graph.ts":{"bytesInOutput":32},"src/utils/file-cache.ts":{"bytesInOutput":156},"src/artifacts/file-repository.ts":{"bytesInOutput":20},"src/artifacts/diff-artifact.ts":{"bytesInOutput":20},"src/artifacts/pages.ts":{"bytesInOutput":20},"src/utils/text-security.ts":{"bytesInOutput":179}},"bytes":12520}}}
@@ -1 +1 @@
1
- {"inputs":{"src/artifacts/types.ts":{"bytes":11227,"imports":[],"format":"esm"},"src/artifacts/hash.ts":{"bytes":1489,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/utils/custom-names.ts":{"bytes":2210,"imports":[],"format":"esm"},"src/artifacts/validation.ts":{"bytes":25271,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/evidence-graph.ts":{"bytes":8778,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/repository.ts":{"bytes":29289,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"format":"esm"},"src/utils/fs.ts":{"bytes":13746,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/control-plane/lock.ts":{"bytes":2496,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/version.ts":{"bytes":195,"imports":[],"format":"esm"},"src/artifacts/file-repository.ts":{"bytes":16401,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/utils/fs.ts","kind":"import-statement","original":"../utils/fs.js"},{"path":"src/control-plane/lock.ts","kind":"import-statement","original":"../control-plane/lock.js"},{"path":"src/version.ts","kind":"import-statement","original":"../version.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/diff-artifact.ts":{"bytes":17998,"imports":[{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"format":"esm"},"src/artifacts/review-service.ts":{"bytes":8672,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"}],"format":"esm"},"src/artifacts/spec-lifecycle.ts":{"bytes":31007,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/review-service.ts","kind":"import-statement","original":"./review-service.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/multi-agent-review.ts":{"bytes":30649,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/legacy-adapters.ts":{"bytes":10908,"imports":[{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"}],"format":"esm"},"src/artifacts/pages.ts":{"bytes":20179,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/index.ts":{"bytes":413,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/evidence-graph.ts","kind":"import-statement","original":"./evidence-graph.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"},{"path":"src/artifacts/file-repository.ts","kind":"import-statement","original":"./file-repository.js"},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"},{"path":"src/artifacts/review-service.ts","kind":"import-statement","original":"./review-service.js"},{"path":"src/artifacts/spec-lifecycle.ts","kind":"import-statement","original":"./spec-lifecycle.js"},{"path":"src/artifacts/multi-agent-review.ts","kind":"import-statement","original":"./multi-agent-review.js"},{"path":"src/artifacts/legacy-adapters.ts","kind":"import-statement","original":"./legacy-adapters.js"},{"path":"src/artifacts/pages.ts","kind":"import-statement","original":"./pages.js"}],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/research/source-research.ts":{"bytes":18957,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/index.ts","kind":"import-statement","original":"../artifacts/index.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"../utils/text-security.js"}],"format":"esm"},"src/research/index.ts":{"bytes":38,"imports":[{"path":"src/research/source-research.ts","kind":"import-statement","original":"./source-research.js"}],"format":"esm"}},"outputs":{"dist/research/index.js":{"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true}],"exports":["XENO_SOURCE_RESEARCH_SCHEMA_VERSION","XenoSourceResearchValidationError","assertValidXenoSourceResearchReport","createXenoSourceResearchExcerpt","createXenoSourceResearchReport","normalizeSourceText","xenoArtifactToSourceResearchReport","xenoSourceResearchReportToArtifact"],"entryPoint":"src/research/index.ts","inputs":{"src/research/source-research.ts":{"bytesInOutput":9342},"src/artifacts/types.ts":{"bytesInOutput":819},"src/artifacts/index.ts":{"bytesInOutput":0},"src/artifacts/hash.ts":{"bytesInOutput":712},"src/artifacts/validation.ts":{"bytesInOutput":138},"src/artifacts/evidence-graph.ts":{"bytesInOutput":32},"src/artifacts/file-repository.ts":{"bytesInOutput":20},"src/artifacts/diff-artifact.ts":{"bytesInOutput":20},"src/artifacts/pages.ts":{"bytesInOutput":20},"src/utils/text-security.ts":{"bytesInOutput":179},"src/research/index.ts":{"bytesInOutput":0}},"bytes":11594}}}
1
+ {"inputs":{"src/artifacts/types.ts":{"bytes":11227,"imports":[],"format":"esm"},"src/artifacts/hash.ts":{"bytes":1489,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/utils/custom-names.ts":{"bytes":2210,"imports":[],"format":"esm"},"src/artifacts/validation.ts":{"bytes":25271,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/evidence-graph.ts":{"bytes":8778,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/repository.ts":{"bytes":29289,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"format":"esm"},"src/utils/file-cache.ts":{"bytes":6195,"imports":[{"path":"node:fs","kind":"import-statement","external":true}],"format":"esm"},"src/utils/fs.ts":{"bytes":13885,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/utils/file-cache.ts","kind":"import-statement","original":"./file-cache.js"}],"format":"esm"},"src/control-plane/lock.ts":{"bytes":2496,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/version.ts":{"bytes":195,"imports":[],"format":"esm"},"src/artifacts/file-repository.ts":{"bytes":16401,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/utils/fs.ts","kind":"import-statement","original":"../utils/fs.js"},{"path":"src/control-plane/lock.ts","kind":"import-statement","original":"../control-plane/lock.js"},{"path":"src/version.ts","kind":"import-statement","original":"../version.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/diff-artifact.ts":{"bytes":17998,"imports":[{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"format":"esm"},"src/artifacts/review-service.ts":{"bytes":8672,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"}],"format":"esm"},"src/artifacts/spec-lifecycle.ts":{"bytes":31007,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/review-service.ts","kind":"import-statement","original":"./review-service.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/multi-agent-review.ts":{"bytes":30649,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/legacy-adapters.ts":{"bytes":10908,"imports":[{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"}],"format":"esm"},"src/artifacts/pages.ts":{"bytes":20179,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/index.ts":{"bytes":413,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/evidence-graph.ts","kind":"import-statement","original":"./evidence-graph.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"},{"path":"src/artifacts/file-repository.ts","kind":"import-statement","original":"./file-repository.js"},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"},{"path":"src/artifacts/review-service.ts","kind":"import-statement","original":"./review-service.js"},{"path":"src/artifacts/spec-lifecycle.ts","kind":"import-statement","original":"./spec-lifecycle.js"},{"path":"src/artifacts/multi-agent-review.ts","kind":"import-statement","original":"./multi-agent-review.js"},{"path":"src/artifacts/legacy-adapters.ts","kind":"import-statement","original":"./legacy-adapters.js"},{"path":"src/artifacts/pages.ts","kind":"import-statement","original":"./pages.js"}],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/research/source-research.ts":{"bytes":18957,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/index.ts","kind":"import-statement","original":"../artifacts/index.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"../utils/text-security.js"}],"format":"esm"},"src/research/index.ts":{"bytes":38,"imports":[{"path":"src/research/source-research.ts","kind":"import-statement","original":"./source-research.js"}],"format":"esm"}},"outputs":{"dist/research/index.js":{"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true}],"exports":["XENO_SOURCE_RESEARCH_SCHEMA_VERSION","XenoSourceResearchValidationError","assertValidXenoSourceResearchReport","createXenoSourceResearchExcerpt","createXenoSourceResearchReport","normalizeSourceText","xenoArtifactToSourceResearchReport","xenoSourceResearchReportToArtifact"],"entryPoint":"src/research/index.ts","inputs":{"src/research/source-research.ts":{"bytesInOutput":9342},"src/artifacts/types.ts":{"bytesInOutput":819},"src/artifacts/index.ts":{"bytesInOutput":0},"src/artifacts/hash.ts":{"bytesInOutput":712},"src/artifacts/validation.ts":{"bytesInOutput":138},"src/artifacts/evidence-graph.ts":{"bytesInOutput":32},"src/utils/file-cache.ts":{"bytesInOutput":156},"src/artifacts/file-repository.ts":{"bytesInOutput":20},"src/artifacts/diff-artifact.ts":{"bytesInOutput":20},"src/artifacts/pages.ts":{"bytesInOutput":20},"src/utils/text-security.ts":{"bytesInOutput":179},"src/research/index.ts":{"bytesInOutput":0}},"bytes":11750}}}