artifact-contracts 0.33.10 → 0.33.11

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.
@@ -2565,7 +2565,7 @@ components:
2565
2565
  `).filter(Boolean)}catch{try{let{globSync:n}=await Promise.resolve().then(()=>(n_(),r_));e=n("**/*",{cwd:t,dot:!0,nodir:!0,ignore:["node_modules/**",".git/**"]})}catch(n){throw new Error(`Failed to enumerate repository files: ${n.message}`)}}return Fwe(e)}function Fwe(t){let e={};for(let i of t.sort()){let r=i.split("/"),a=r.length>1?r.slice(0,-1).join("/"):".";e[a]||(e[a]=[]),e[a].push(i)}let n=[];for(let i of Object.keys(e).sort()){n.push(`${i}/`);for(let r of e[i])n.push(` ${r}`);n.push("")}return n.join(`
2566
2566
  `)}function zwe(){let t=L$("package.json");if(!SJ(t))return"No package.json found.";try{let e=JSON.parse($J(t,"utf-8"));return[`name: ${e.name??"unknown"}`,e.description?`description: ${e.description}`:"",e.version?`version: ${e.version}`:"",e.keywords?.length?`keywords: ${e.keywords.join(", ")}`:"",e.repository?.url?`repository: ${e.repository.url}`:""].filter(Boolean).join(`
2567
2567
  `)}catch{return"package.json exists but could not be parsed."}}function Mwe(t){let{mode:e,fileTree:n,existingContent:i,metadata:r}=t,a=["# Artifact Discovery","",`## Mode: ${e}`,e==="init"?"Create a new artifact-contracts.yaml from scratch based on the project file structure.":"Update the existing artifact-contracts.yaml by adding definitions for uncovered files. Preserve all existing artifact definitions.","","## Project Metadata","",r,"","## Repository File Tree","",n];return e==="update"&&i&&a.push("## Existing artifact-contracts.yaml","","```yaml",i,"```",""),a.push("## artifact-contracts.yaml Schema Reference","","The generated YAML must conform to this schema:","","```yaml",'artifact_contracts: "2026A" # or latest schema version',"","system:"," id: <kebab-case-system-id>"," name: <human-readable name>","","artifacts:"," <artifact-id>: # kebab-case IDs"," type: <artifact-type> # e.g. source, config, generated-code, generated-doc"," description: <optional description>"," authority: canonical | derived | generated | control"," manual_edit: allowed | discouraged | forbidden # optional, defaults by authority"," change_control: none | approval-required | regeneration-required # optional"," visibility: public | internal | private # optional"," path_patterns: # required, at least one pattern",' - "glob/pattern/**"'," exclude_patterns: # optional",' - "glob/pattern/to/exclude/**"',"","trace:"," links:"," - id: <kebab-case-link-id>"," from: <source-artifact-id>"," to: <target-artifact-id>"," resolver: operationId | ast | naming | codegen"," description: <optional description>","```","","### Authority Guidelines","","- canonical: hand-written source of truth (source code, configs)","- derived: generated from canonical sources but may need review (docs)","- generated: auto-generated, should not be manually edited","- control: governance/control files (CI, hooks)","","### Type Guidelines","","- source: application/library source code","- config: configuration files (YAML, JSON configs)","- generated-code: auto-generated code","- generated-doc: auto-generated documentation","","### Path Pattern Rules","",'- Use specific glob patterns, not overly broad ones like "**/*"',"- Group logically related files into single artifacts","- Use exclude_patterns to omit test files, generated subdirs, etc.","- Artifact IDs must be kebab-case","","### Trace Link Guidelines","","- Detect relationships between config/DSL artifacts and their generated outputs","- Use resolver: codegen for build-time generation relationships","- Use resolver: naming for convention-based relationships","- Use resolver: ast for code-level references","- Use resolver: operationId for API operation references","","## Instructions","","1. Analyze the file tree and group files into logical artifacts","2. Assign appropriate type, authority, and path_patterns to each artifact","3. Detect trace link relationships (especially config/DSL \u2192 generated code)","4. In update mode, preserve ALL existing artifact definitions unchanged","5. Add new artifacts only for files not covered by existing patterns","6. Generate complete, valid artifact-contracts.yaml content","","## Output Format","","Respond with a JSON object matching the artifact-discovery-result handoff schema:","","```json","{",' "artifact_contracts_yaml": "<complete YAML string for artifact-contracts.yaml>",',' "decisions": [',' { "artifact_id": "<id>", "reasoning": "<why this grouping>" }'," ],",' "trace_decisions": [',' { "link_id": "<id>", "reasoning": "<why this trace link>" }'," ],",' "uncategorized_files": ["<files that could not be categorized>"],',' "suggestions": ["<improvement suggestions>"]',"}","```","","The artifact_contracts_yaml field must contain the complete, valid YAML document.",""),a.join(`
2568
- `)}function Lwe(t,e,n){if(t.status==="error"){let a=t.errorMessage??"Unknown error";return n==="json"?JSON.stringify({error:a},null,2):n==="yaml"?(0,kJ.stringify)({error:a}):`Error: ${a}`}let i=t.data;if(n==="json"){let a={mode:e,artifact_contracts_yaml:i?.artifact_contracts_yaml??EJ(t.raw),decisions:i?.decisions??[],trace_decisions:i?.trace_decisions??[],uncategorized_files:i?.uncategorized_files??[],suggestions:i?.suggestions??[]};return JSON.stringify(a,null,2)}let r=i?.artifact_contracts_yaml??EJ(t.raw);return r}function EJ(t){if(!t)return"";try{let n=JSON.parse(t);if(n.artifact_contracts_yaml)return n.artifact_contracts_yaml}catch{}let e=t.match(/```ya?ml\n([\s\S]*?)```/);return e?e[1].trim():t.includes("artifact_contracts:")?t.trim():t}var VPe=pt.object({mode:pt.enum(["init","update"]),file_tree:pt.string(),existing_definitions:pt.string().optional(),project_metadata:pt.string().optional()}),ZPe=pt.object({artifact_contracts_yaml:pt.string(),decisions:pt.array(pt.object({artifact_id:pt.string(),reasoning:pt.string()})).optional(),trace_decisions:pt.array(pt.object({link_id:pt.string(),reasoning:pt.string()})).optional(),uncategorized_files:pt.array(pt.string()).optional(),suggestions:pt.array(pt.string()).optional()}),GPe=pt.object({system_id:pt.string(),artifact_count:pt.number().int(),definitions_context:pt.string()}),WPe=pt.object({summary:pt.string(),risk_level:pt.enum(["none","low","medium","high","critical"]),findings:pt.array(pt.object({id:pt.string(),severity:pt.enum(["critical","error","warning","info"]),category:pt.string(),title:pt.string(),description:pt.string(),target:pt.string().optional(),recommendation:pt.string().optional(),evidence:pt.array(pt.object({kind:pt.enum(["schema","code","config","runtime","doc"]),target:pt.string().optional(),location:pt.string().optional(),excerpt:pt.string().optional(),reasoning:pt.string().optional()})).optional()})),recommended_actions:pt.array(pt.object({action:pt.string(),priority:pt.enum(["high","medium","low"]),description:pt.string().optional()})),metadata:pt.object({total_artifacts:pt.number().int().optional(),analyzed_artifacts:pt.number().int().optional(),analysis_scope:pt.string().optional()}).optional()});a_();var Uwe={version:"0.33.10"},qwe={validate:async t=>{await CP(t)},resolve:async t=>{await PP(t)},list:async t=>{await jP(t)},explain:async(t,e)=>{t||(console.error("Error: <path> argument is required"),process.exit(1)),await NP(t,e)},audit:async t=>{await yJ(t)},discover:async t=>{await xJ(t)},agents:async t=>{let e=await Promise.resolve().then(()=>xo(To(),1)),n=t.format??"yaml";try{console.log(n==="json"?JSON.stringify(sc,null,2):e.stringify(sc,{lineWidth:120}))}catch(i){console.error(`Failed to output DSL: ${i.message}`),process.exit(1)}}};gA(qwe,Uwe.version).parse();
2568
+ `)}function Lwe(t,e,n){if(t.status==="error"){let a=t.errorMessage??"Unknown error";return n==="json"?JSON.stringify({error:a},null,2):n==="yaml"?(0,kJ.stringify)({error:a}):`Error: ${a}`}let i=t.data;if(n==="json"){let a={mode:e,artifact_contracts_yaml:i?.artifact_contracts_yaml??EJ(t.raw),decisions:i?.decisions??[],trace_decisions:i?.trace_decisions??[],uncategorized_files:i?.uncategorized_files??[],suggestions:i?.suggestions??[]};return JSON.stringify(a,null,2)}let r=i?.artifact_contracts_yaml??EJ(t.raw);return r}function EJ(t){if(!t)return"";try{let n=JSON.parse(t);if(n.artifact_contracts_yaml)return n.artifact_contracts_yaml}catch{}let e=t.match(/```ya?ml\n([\s\S]*?)```/);return e?e[1].trim():t.includes("artifact_contracts:")?t.trim():t}var VPe=pt.object({mode:pt.enum(["init","update"]),file_tree:pt.string(),existing_definitions:pt.string().optional(),project_metadata:pt.string().optional()}),ZPe=pt.object({artifact_contracts_yaml:pt.string(),decisions:pt.array(pt.object({artifact_id:pt.string(),reasoning:pt.string()})).optional(),trace_decisions:pt.array(pt.object({link_id:pt.string(),reasoning:pt.string()})).optional(),uncategorized_files:pt.array(pt.string()).optional(),suggestions:pt.array(pt.string()).optional()}),GPe=pt.object({system_id:pt.string(),artifact_count:pt.number().int(),definitions_context:pt.string()}),WPe=pt.object({summary:pt.string(),risk_level:pt.enum(["none","low","medium","high","critical"]),findings:pt.array(pt.object({id:pt.string(),severity:pt.enum(["critical","error","warning","info"]),category:pt.string(),title:pt.string(),description:pt.string(),target:pt.string().optional(),recommendation:pt.string().optional(),evidence:pt.array(pt.object({kind:pt.enum(["schema","code","config","runtime","doc"]),target:pt.string().optional(),location:pt.string().optional(),excerpt:pt.string().optional(),reasoning:pt.string().optional()})).optional()})),recommended_actions:pt.array(pt.object({action:pt.string(),priority:pt.enum(["high","medium","low"]),description:pt.string().optional()})),metadata:pt.object({total_artifacts:pt.number().int().optional(),analyzed_artifacts:pt.number().int().optional(),analysis_scope:pt.string().optional()}).optional()});a_();var Uwe={version:"0.33.11"},qwe={validate:async t=>{await CP(t)},resolve:async t=>{await PP(t)},list:async t=>{await jP(t)},explain:async(t,e)=>{t||(console.error("Error: <path> argument is required"),process.exit(1)),await NP(t,e)},audit:async t=>{await yJ(t)},discover:async t=>{await xJ(t)},agents:async t=>{let e=await Promise.resolve().then(()=>xo(To(),1)),n=t.format??"yaml";try{console.log(n==="json"?JSON.stringify(sc,null,2):e.stringify(sc,{lineWidth:120}))}catch(i){console.error(`Failed to output DSL: ${i.message}`),process.exit(1)}}};gA(qwe,Uwe.version).parse();
2569
2569
  /*! Bundled license information:
2570
2570
 
2571
2571
  agent-contracts/dist/index.js: