@invariant.guru/cli 0.3.8 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +7 -8
- package/package.json +1 -1
package/dist/main.js
CHANGED
|
@@ -812,16 +812,15 @@ ${C}
|
|
|
812
812
|
`,L}};return AI.PlanComposeCommandHandler=v,AI.PlanComposeCommandHandler=v=e([(0,a.CommandHandler)(m),i(0,(0,u.Inject)(c.StorageRepository)),i(1,(0,u.Inject)(p.CliTargetAdapterFactory)),r("design:paramtypes",[c.StorageRepository,p.CliTargetAdapterFactory])],v),AI}var afr;function sKr(){return afr||(afr=1,(function(e){var r=Zde&&Zde.__createBinding||(Object.create?(function(a,u,c,p){p===void 0&&(p=c);var _=Object.getOwnPropertyDescriptor(u,c);(!_||("get"in _?!u.__esModule:_.writable||_.configurable))&&(_={enumerable:!0,get:function(){return u[c]}}),Object.defineProperty(a,p,_)}):(function(a,u,c,p){p===void 0&&(p=c),a[p]=u[c]})),i=Zde&&Zde.__exportStar||function(a,u){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(u,c)&&r(u,a,c)};Object.defineProperty(e,"__esModule",{value:!0}),i(aKr(),e)})(Zde)),Zde}var e0e={},kI={},sfr;function oKr(){if(sfr)return kI;sfr=1;var e=kI&&kI.__decorate||function(y,D,C,A){var w=arguments.length,P=w<3?D:A===null?A=Object.getOwnPropertyDescriptor(D,C):A,U;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")P=Reflect.decorate(y,D,C,A);else for(var L=y.length-1;L>=0;L--)(U=y[L])&&(P=(w<3?U(P):w>3?U(D,C,P):U(D,C))||P);return w>3&&P&&Object.defineProperty(D,C,P),P},r=kI&&kI.__metadata||function(y,D){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(y,D)},i=kI&&kI.__param||function(y,D){return function(C,A){D(C,A,y)}};Object.defineProperty(kI,"__esModule",{value:!0}),kI.SyncCommandHandler=kI.SyncCommand=void 0;const a=Lx(),u=xf(),c=CT(),p=KR();class _{constructor(D,C={}){this.directory=D,this.options=C}}kI.SyncCommand=_;const m=["agents","skills","commands","rules"];let v=class{constructor(D,C){this.storageRepository=D,this.adapterFactory=C}async execute(D){const{directory:C,options:A}=D;if(!await this.storageRepository.configExists(C))throw new Error(`Project not initialized in ${C}. Run 'invariant init' first.`);const P=await this.storageRepository.readConfig(C),U=P.targets.length>0?P.targets:["claude"],L=A.target?[A.target]:U,R=this.adapterFactory.getAdapters(L),B=await this.storageRepository.listInstructions(C),$=await this.storageRepository.listContexts(C),q=[],X=[],ee=[],se=[];if(se.push(`# Project Instructions
|
|
813
813
|
`),se.push(`<!-- Generated by invariant CLI -->
|
|
814
814
|
`),B.length>0){se.push(`## Instructions
|
|
815
|
-
`);for(const we of B){const rt=await this.storageRepository.readInstruction(C,we.package,we.name);q.push(`${we.package}/${we.name}`),se.push(
|
|
815
|
+
`);for(const we of B){const rt=await this.storageRepository.readInstruction(C,we.package,we.name);q.push(`${we.package}/${we.name}`),se.push(this.wrapSection("instruction",`${we.package}/${we.name}`,rt))}}if($.length>0){se.push(`## Contexts
|
|
816
|
+
`);for(const we of $){const rt=await this.storageRepository.readContext(C,we.package,we.name);X.push(`${we.package}/${we.name}`),se.push(this.wrapSection("context",`${we.package}/${we.name}`,rt))}}const de=se.join(`
|
|
817
|
+
`),Re=P.active.filter(we=>m.includes(we.type)),Oe=[];for(const we of R){const rt=await this.buildItemSections(C,we,Re,ee),wt=rt?de+`
|
|
818
|
+
`+rt:de,Ve=await we.generateContextFile(C,wt);Oe.push({targetName:we.config.name,displayName:we.config.displayName,outputPath:Ve})}return{targets:Oe,includedInstructions:q,includedContexts:X,includedItems:ee}}wrapSection(D,C,A){return`<${D} source="${C}">
|
|
816
819
|
|
|
817
|
-
${
|
|
818
|
-
`)}}if($.length>0){se.push(`## Contexts
|
|
819
|
-
`);for(const we of $){const rt=await this.storageRepository.readContext(C,we.package,we.name);X.push(`${we.package}/${we.name}`),se.push(`### ${we.package}/${we.name}
|
|
820
|
+
${A}
|
|
820
821
|
|
|
821
|
-
|
|
822
|
-
`)}}const
|
|
823
|
-
`),Re=P.active.filter(we=>m.includes(we.type)),Oe=[];for(const we of R){const rt=await this.buildItemSections(C,we,Re,ee),wt=rt?de+`
|
|
824
|
-
`+rt:de,Ve=await we.generateContextFile(C,wt);Oe.push({targetName:we.config.name,displayName:we.config.displayName,outputPath:Ve})}return{targets:Oe,includedInstructions:q,includedContexts:X,includedItems:ee}}async buildItemSections(D,C,A,w){const P=new Map;for(const L of A){const R=await C.resolveItemPath(D,L.type,L.item||""),B=L.type;P.has(B)||P.set(B,[]),P.get(B).push({item:L,path:R}),w.push(`${L.package}/${L.type}/${L.item}`)}if(P.size===0)return null;const U=[];for(const[L,R]of P){const B=L.charAt(0).toUpperCase()+L.slice(1);U.push(`## Available ${B}
|
|
822
|
+
</${D}>
|
|
823
|
+
`}async buildItemSections(D,C,A,w){const P=new Map;for(const L of A){const R=await C.resolveItemPath(D,L.type,L.item||""),B=L.type;P.has(B)||P.set(B,[]),P.get(B).push({item:L,path:R}),w.push(`${L.package}/${L.type}/${L.item}`)}if(P.size===0)return null;const U=[];for(const[L,R]of P){const B=L.charAt(0).toUpperCase()+L.slice(1);U.push(`## Available ${B}
|
|
825
824
|
`);for(const{item:$,path:q}of R){const X=$.item||L;q?U.push(`- [${X}](${q}) - from ${$.package}`):U.push(`- ${X} - from ${$.package}`)}U.push("")}return U.join(`
|
|
826
825
|
`)}};return kI.SyncCommandHandler=v,kI.SyncCommandHandler=v=e([(0,a.CommandHandler)(_),i(0,(0,u.Inject)(c.StorageRepository)),i(1,(0,u.Inject)(p.CliTargetAdapterFactory)),r("design:paramtypes",[c.StorageRepository,p.CliTargetAdapterFactory])],v),kI}var ofr;function uKr(){return ofr||(ofr=1,(function(e){var r=e0e&&e0e.__createBinding||(Object.create?(function(a,u,c,p){p===void 0&&(p=c);var _=Object.getOwnPropertyDescriptor(u,c);(!_||("get"in _?!u.__esModule:_.writable||_.configurable))&&(_={enumerable:!0,get:function(){return u[c]}}),Object.defineProperty(a,p,_)}):(function(a,u,c,p){p===void 0&&(p=c),a[p]=u[c]})),i=e0e&&e0e.__exportStar||function(a,u){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(u,c)&&r(u,a,c)};Object.defineProperty(e,"__esModule",{value:!0}),i(oKr(),e)})(e0e)),e0e}var t0e={},wI={},ufr;function cKr(){if(ufr)return wI;ufr=1;var e=wI&&wI.__decorate||function(v,y,D,C){var A=arguments.length,w=A<3?y:C===null?C=Object.getOwnPropertyDescriptor(y,D):C,P;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")w=Reflect.decorate(v,y,D,C);else for(var U=v.length-1;U>=0;U--)(P=v[U])&&(w=(A<3?P(w):A>3?P(y,D,w):P(y,D))||w);return A>3&&w&&Object.defineProperty(y,D,w),w},r=wI&&wI.__metadata||function(v,y){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(v,y)},i=wI&&wI.__param||function(v,y){return function(D,C){y(D,C,v)}};Object.defineProperty(wI,"__esModule",{value:!0}),wI.CreatePackageManifestCommandHandler=wI.CreatePackageManifestCommand=void 0;const a=Lx(),u=xf(),c=CT(),p=NQ();class _{constructor(y,D){this.directory=y,this.options=D}}wI.CreatePackageManifestCommand=_;let m=class{constructor(y){this.storageRepository=y}async execute(y){const{directory:D,options:C}=y,A=await this.storageRepository.scanDirectoryForItems(D),w=this.buildItemEntries(A),P=this.countItems(w),U=p.PackageManifestFile.create({name:C.name||this.extractDirName(D),version:C.version||"1.0.0",description:C.description||"",author:C.author||"",license:C.license||"MIT",repository:C.repository||"",items:w});return await this.storageRepository.writePackageManifestFile(D,U),{manifestPath:`${D}/invariant-package.json`,itemCount:P,manifest:U}}buildItemEntries(y){const D=p.Package.create({manifest:{name:"temp",version:"0.0.0"},items:y,source:{type:"registry"}}),C={},A=["agents","skills","commands","rules","contexts","instructions"];for(const w of A){const P=D.resolveItems(w);P.length!==0&&(C[w]=P.map(U=>({name:U.name,description:this.extractDescription(U.files)})))}return C}extractDescription(y){const D=y[0];if(!D)return"";const C=D.content.split(`
|
|
827
826
|
`);for(const A of C){const w=A.trim();if(w!=="")return w.replace(/^#+\s*/,"")}return""}extractDirName(y){const D=y.split("/");return D[D.length-1]||"unnamed"}countItems(y){return Object.values(y).reduce((D,C)=>D+(C?.length||0),0)}};return wI.CreatePackageManifestCommandHandler=m,wI.CreatePackageManifestCommandHandler=m=e([(0,a.CommandHandler)(_),i(0,(0,u.Inject)(c.StorageRepository)),r("design:paramtypes",[c.StorageRepository])],m),wI}var cfr;function lKr(){return cfr||(cfr=1,(function(e){var r=t0e&&t0e.__createBinding||(Object.create?(function(a,u,c,p){p===void 0&&(p=c);var _=Object.getOwnPropertyDescriptor(u,c);(!_||("get"in _?!u.__esModule:_.writable||_.configurable))&&(_={enumerable:!0,get:function(){return u[c]}}),Object.defineProperty(a,p,_)}):(function(a,u,c,p){p===void 0&&(p=c),a[p]=u[c]})),i=t0e&&t0e.__exportStar||function(a,u){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(u,c)&&r(u,a,c)};Object.defineProperty(e,"__esModule",{value:!0}),i(cKr(),e)})(t0e)),t0e}var r0e={},FI={},lfr;function fKr(){if(lfr)return FI;lfr=1;var e=FI&&FI.__decorate||function(v,y,D,C){var A=arguments.length,w=A<3?y:C===null?C=Object.getOwnPropertyDescriptor(y,D):C,P;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")w=Reflect.decorate(v,y,D,C);else for(var U=v.length-1;U>=0;U--)(P=v[U])&&(w=(A<3?P(w):A>3?P(y,D,w):P(y,D))||w);return A>3&&w&&Object.defineProperty(y,D,w),w},r=FI&&FI.__metadata||function(v,y){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(v,y)},i=FI&&FI.__param||function(v,y){return function(D,C){y(D,C,v)}};Object.defineProperty(FI,"__esModule",{value:!0}),FI.ValidatePackageManifestCommandHandler=FI.ValidatePackageManifestCommand=void 0;const a=Lx(),u=xf(),c=CT(),p=NQ();class _{constructor(y){this.directory=y}}FI.ValidatePackageManifestCommand=_;let m=class{constructor(y){this.storageRepository=y}async execute(y){const{directory:D}=y,C=await this.storageRepository.readPackageManifestFile(D);if(!C)throw new p.PackageManifestNotFoundError(D);const A=await this.storageRepository.scanDirectoryForItems(D),w=this.resolveDiskItems(A),P=this.compareManifestWithDisk(C,w);return{valid:P.length===0,issues:P,manifestName:C.name,manifestVersion:C.version}}resolveDiskItems(y){const D=p.Package.create({manifest:{name:"temp",version:"0.0.0"},items:y,source:{type:"registry"}}),C=new Map,A=["agents","skills","commands","rules","contexts","instructions"];for(const w of A){const P=D.resolveItems(w);P.length>0&&C.set(w,new Set(P.map(U=>U.name)))}return C}compareManifestWithDisk(y,D){const C=[];for(const[A,w]of Object.entries(y.items)){if(!w)continue;const P=D.get(A)||new Set;for(const U of w)P.has(U.name)||C.push({type:"missing_on_disk",itemType:A,itemName:U.name})}for(const[A,w]of D){const P=y.items[A]||[],U=new Set(P.map(L=>L.name));for(const L of w)U.has(L)||C.push({type:"undeclared_on_disk",itemType:A,itemName:L})}return C}};return FI.ValidatePackageManifestCommandHandler=m,FI.ValidatePackageManifestCommandHandler=m=e([(0,a.CommandHandler)(_),i(0,(0,u.Inject)(c.StorageRepository)),r("design:paramtypes",[c.StorageRepository])],m),FI}var ffr;function pKr(){return ffr||(ffr=1,(function(e){var r=r0e&&r0e.__createBinding||(Object.create?(function(a,u,c,p){p===void 0&&(p=c);var _=Object.getOwnPropertyDescriptor(u,c);(!_||("get"in _?!u.__esModule:_.writable||_.configurable))&&(_={enumerable:!0,get:function(){return u[c]}}),Object.defineProperty(a,p,_)}):(function(a,u,c,p){p===void 0&&(p=c),a[p]=u[c]})),i=r0e&&r0e.__exportStar||function(a,u){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(u,c)&&r(u,a,c)};Object.defineProperty(e,"__esModule",{value:!0}),i(fKr(),e)})(r0e)),r0e}var n0e={},PI={},pfr;function dKr(){if(pfr)return PI;pfr=1;var e=PI&&PI.__decorate||function(y,D,C,A){var w=arguments.length,P=w<3?D:A===null?A=Object.getOwnPropertyDescriptor(D,C):A,U;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")P=Reflect.decorate(y,D,C,A);else for(var L=y.length-1;L>=0;L--)(U=y[L])&&(P=(w<3?U(P):w>3?U(D,C,P):U(D,C))||P);return w>3&&P&&Object.defineProperty(D,C,P),P},r=PI&&PI.__metadata||function(y,D){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(y,D)},i=PI&&PI.__param||function(y,D){return function(C,A){D(C,A,y)}};Object.defineProperty(PI,"__esModule",{value:!0}),PI.PublishPackageCommandHandler=PI.PublishPackageCommand=void 0;const a=Lx(),u=xf(),c=CT(),p=CT(),_=NQ();class m{constructor(D){this.directory=D}}PI.PublishPackageCommand=m;let v=class{constructor(D,C){this.storageRepository=D,this.registryQueryBuilder=C}async execute(D){const{directory:C}=D,A=await this.storageRepository.readPackageManifestFile(C);if(!A)throw new _.PackageManifestNotFoundError(C);const w=await this.validatePackage(C);if(w.length>0)throw new _.PackageManifestValidationError(w);const P=this.resolveAuthToken();if(!P)throw new _.PackagePublishAuthError;const U=await this.storageRepository.bundlePackage(C);return this.registryQueryBuilder.publishPackage(A,U,P)}async validatePackage(D){const C=await this.storageRepository.readPackageManifestFile(D);if(!C)return[];const A=await this.storageRepository.scanDirectoryForItems(D),w=_.Package.create({manifest:{name:"temp",version:"0.0.0"},items:A,source:{type:"registry"}}),P=[];for(const[U,L]of Object.entries(C.items)){if(!L)continue;const R=w.resolveItems(U),B=new Set(R.map($=>$.name));for(const $ of L)B.has($.name)||P.push({type:"missing_on_disk",itemType:U,itemName:$.name})}return P}resolveAuthToken(){return process.env.INVARIANT_TOKEN||null}};return PI.PublishPackageCommandHandler=v,PI.PublishPackageCommandHandler=v=e([(0,a.CommandHandler)(m),i(0,(0,u.Inject)(c.StorageRepository)),i(1,(0,u.Inject)(p.RegistryQueryBuilder)),r("design:paramtypes",[c.StorageRepository,p.RegistryQueryBuilder])],v),PI}var dfr;function _Kr(){return dfr||(dfr=1,(function(e){var r=n0e&&n0e.__createBinding||(Object.create?(function(a,u,c,p){p===void 0&&(p=c);var _=Object.getOwnPropertyDescriptor(u,c);(!_||("get"in _?!u.__esModule:_.writable||_.configurable))&&(_={enumerable:!0,get:function(){return u[c]}}),Object.defineProperty(a,p,_)}):(function(a,u,c,p){p===void 0&&(p=c),a[p]=u[c]})),i=n0e&&n0e.__exportStar||function(a,u){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(u,c)&&r(u,a,c)};Object.defineProperty(e,"__esModule",{value:!0}),i(dKr(),e)})(n0e)),n0e}var _fr;function RU(){return _fr||(_fr=1,(function(e){var r=Jde&&Jde.__createBinding||(Object.create?(function(a,u,c,p){p===void 0&&(p=c);var _=Object.getOwnPropertyDescriptor(u,c);(!_||("get"in _?!u.__esModule:_.writable||_.configurable))&&(_={enumerable:!0,get:function(){return u[c]}}),Object.defineProperty(a,p,_)}):(function(a,u,c,p){p===void 0&&(p=c),a[p]=u[c]})),i=Jde&&Jde.__exportStar||function(a,u){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(u,c)&&r(u,a,c)};Object.defineProperty(e,"__esModule",{value:!0}),i(xGr(),e),i(GAt(),e),i(CGr(),e),i(kGr(),e),i(FGr(),e),i(IGr(),e),i(sKr(),e),i(uKr(),e),i(lKr(),e),i(pKr(),e),i(_Kr(),e)})(Jde)),Jde}var i0e={},a0e={},II={},mfr;function mKr(){if(mfr)return II;mfr=1;var e=II&&II.__decorate||function(m,v,y,D){var C=arguments.length,A=C<3?v:D===null?D=Object.getOwnPropertyDescriptor(v,y):D,w;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")A=Reflect.decorate(m,v,y,D);else for(var P=m.length-1;P>=0;P--)(w=m[P])&&(A=(C<3?w(A):C>3?w(v,y,A):w(v,y))||A);return C>3&&A&&Object.defineProperty(v,y,A),A},r=II&&II.__metadata||function(m,v){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(m,v)},i=II&&II.__param||function(m,v){return function(y,D){v(y,D,m)}};Object.defineProperty(II,"__esModule",{value:!0}),II.ListPackagesQueryHandler=II.ListPackagesQuery=void 0;const a=Lx(),u=xf(),c=CT();class p{constructor(v,y={cached:!0}){this.directory=v,this.options=y}}II.ListPackagesQuery=p;let _=class{constructor(v){this.storageRepository=v}async execute(v){const{directory:y,options:D}=v;if(!await this.storageRepository.configExists(y))return[];const A=await this.storageRepository.readConfig(y),w=A.packages,P=A.active,U=[];for(const[L,R]of Object.entries(w)){const B=P.some($=>$.package===L);D.active&&!B||U.push({name:L,version:R.version,source:R.source,isActive:B})}return U}};return II.ListPackagesQueryHandler=_,II.ListPackagesQueryHandler=_=e([(0,a.QueryHandler)(p),i(0,(0,u.Inject)(c.StorageRepository)),r("design:paramtypes",[c.StorageRepository])],_),II}var hfr;function hKr(){return hfr||(hfr=1,(function(e){var r=a0e&&a0e.__createBinding||(Object.create?(function(a,u,c,p){p===void 0&&(p=c);var _=Object.getOwnPropertyDescriptor(u,c);(!_||("get"in _?!u.__esModule:_.writable||_.configurable))&&(_={enumerable:!0,get:function(){return u[c]}}),Object.defineProperty(a,p,_)}):(function(a,u,c,p){p===void 0&&(p=c),a[p]=u[c]})),i=a0e&&a0e.__exportStar||function(a,u){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(u,c)&&r(u,a,c)};Object.defineProperty(e,"__esModule",{value:!0}),i(mKr(),e)})(a0e)),a0e}var gfr;function yfr(){return gfr||(gfr=1,(function(e){var r=i0e&&i0e.__createBinding||(Object.create?(function(a,u,c,p){p===void 0&&(p=c);var _=Object.getOwnPropertyDescriptor(u,c);(!_||("get"in _?!u.__esModule:_.writable||_.configurable))&&(_={enumerable:!0,get:function(){return u[c]}}),Object.defineProperty(a,p,_)}):(function(a,u,c,p){p===void 0&&(p=c),a[p]=u[c]})),i=i0e&&i0e.__exportStar||function(a,u){for(var c in a)c!=="default"&&!Object.prototype.hasOwnProperty.call(u,c)&&r(u,a,c)};Object.defineProperty(e,"__esModule",{value:!0}),i(hKr(),e)})(i0e)),i0e}var s0e={},Tie={},vfr;function gKr(){if(vfr)return Tie;vfr=1;var e=Tie&&Tie.__decorate||function(U,L,R,B){var $=arguments.length,q=$<3?L:B===null?B=Object.getOwnPropertyDescriptor(L,R):B,X;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")q=Reflect.decorate(U,L,R,B);else for(var ee=U.length-1;ee>=0;ee--)(X=U[ee])&&(q=($<3?X(q):$>3?X(L,R,q):X(L,R))||q);return $>3&&q&&Object.defineProperty(L,R,q),q};Object.defineProperty(Tie,"__esModule",{value:!0}),Tie.FileSystemStorageRepository=void 0;const r=xf(),i=AU,a=fm,u=s$t,c=CT(),p=NQ(),_="invariant.json",m="invariant-package.json",v=".invariant",y="cache",D="sessions",C="contexts",A="instructions",w=["agents","skills","commands","rules","contexts","instructions"];let P=class extends c.StorageRepository{async configExists(L){try{return await i.access(a.join(L,_)),!0}catch{return!1}}async readConfig(L){const R=a.join(L,_),B=await i.readFile(R,"utf-8"),$=JSON.parse(B);return p.ProjectConfig.create({name:$.name,version:$.version,description:$.description,targets:$.targets||["claude"],packages:$.packages||{},active:$.active||[]})}async writeConfig(L,R){const B=a.join(L,_),$=JSON.stringify(R.toJSON(),null,2);await i.writeFile(B,$,"utf-8")}async ensureInvariantDir(L){await i.mkdir(a.join(L,v),{recursive:!0})}async ensureCacheDir(L){await i.mkdir(a.join(L,v,y),{recursive:!0})}async ensureSessionsDir(L){await i.mkdir(a.join(L,v,D),{recursive:!0})}async savePackageToCache(L,R){const B=a.join(L,v,y,R.cacheFolder);await i.mkdir(B,{recursive:!0}),await i.writeFile(a.join(B,"invariant.json"),JSON.stringify(R.manifest,null,2),"utf-8");for(const $ of R.items){const q=a.join(B,$.path);await i.mkdir(a.dirname(q),{recursive:!0}),await i.writeFile(q,$.content,"utf-8")}}async readPackageFromCache(L,R){const B=a.join(L,v,y);try{const $=await this.findCachedPackagePath(B,R);if(!$)return null;const q=a.join($,"invariant.json"),X=await i.readFile(q,"utf-8"),ee=JSON.parse(X),se=await this.readPackageItems($);return p.Package.create({manifest:ee,items:se,source:{type:"registry"}})}catch{return null}}async findCachedPackagePath(L,R){try{if(R.startsWith("@")){const q=R.indexOf("/");if(q!==-1){const X=R.substring(0,q),ee=R.substring(q+1),se=a.join(L,X),Re=(await i.readdir(se)).find(Oe=>Oe.startsWith(ee+"@"));return Re?a.join(se,Re):null}}const $=(await i.readdir(L)).find(q=>q.startsWith(R+"@"));return $?a.join(L,$):null}catch{return null}}async readPackageItems(L){const R=[];for(const B of w){const $=a.join(L,B);try{const q=await this.readDirRecursive($);for(const X of q)if(X.endsWith(".md")){const ee=await i.readFile(a.join($,X),"utf-8");R.push({type:B,path:`${B}/${X}`,content:ee})}}catch{}}return await this.detectRootLevelSkills(L,R),R}async detectRootLevelSkills(L,R){try{const B=await i.readdir(L,{withFileTypes:!0});for(const $ of B){if(!$.isDirectory()||w.includes($.name)||$.name==="invariant.json"||$.name===".git")continue;const q=a.join(L,$.name),X=await this.readDirRecursive(q);if(X.some(se=>se==="SKILL.md"))for(const se of X){if(!se.endsWith(".md"))continue;const de=`skills/${$.name}/${se}`;if(R.some(we=>we.path===de))continue;const Oe=await i.readFile(a.join(q,se),"utf-8");R.push({type:"skills",path:de,content:Oe})}}}catch{}}async readDirRecursive(L,R=""){const B=[],$=await i.readdir(L,{withFileTypes:!0});for(const q of $){const X=R?`${R}/${q.name}`:q.name;if(q.isDirectory()){const ee=await this.readDirRecursive(a.join(L,q.name),X);B.push(...ee)}else B.push(X)}return B}async listCachedPackages(L){const R=a.join(L,v,y);try{const B=await i.readdir(R,{withFileTypes:!0}),$=[];for(const q of B)if(q.name.startsWith("@")&&q.isDirectory()){const X=a.join(R,q.name),ee=await i.readdir(X);for(const se of ee)$.push(`${q.name}/${se}`)}else $.push(q.name);return $}catch{return[]}}async packageExistsInCache(L,R){const B=a.join(L,v,y);return await this.findCachedPackagePath(B,R)!==null}async removePackageFromCache(L,R){const B=a.join(L,v,y);try{const $=await this.findCachedPackagePath(B,R);$&&await i.rm($,{recursive:!0})}catch{}}async copyContextsToInvariant(L,R,B){const $=a.join(L,v,C,R.name);await i.mkdir($,{recursive:!0});const q=R.resolveItems("contexts"),X=[],ee=[];for(const se of q)if(!(B&&se.name!==B)){if(se.files.length===1&&!se.files[0].relativePath.includes("/")){const de=a.join($,se.name+".md");await i.writeFile(de,se.files[0].content,"utf-8"),X.push(de)}else{const de=a.join($,se.name);for(const Re of se.files){const Oe=a.join(de,Re.relativePath);await i.mkdir(a.dirname(Oe),{recursive:!0}),await i.writeFile(Oe,Re.content,"utf-8"),X.push(Oe)}}ee.push(se.name)}return{files:X,itemNames:ee}}async copyInstructionsToInvariant(L,R,B){const $=a.join(L,v,A,R.name);await i.mkdir($,{recursive:!0});const q=R.resolveItems("instructions"),X=[],ee=[];for(const se of q)if(!(B&&se.name!==B)){if(se.files.length===1&&!se.files[0].relativePath.includes("/")){const de=a.join($,se.name+".md");await i.writeFile(de,se.files[0].content,"utf-8"),X.push(de)}else{const de=a.join($,se.name);for(const Re of se.files){const Oe=a.join(de,Re.relativePath);await i.mkdir(a.dirname(Oe),{recursive:!0}),await i.writeFile(Oe,Re.content,"utf-8"),X.push(Oe)}}ee.push(se.name)}return{files:X,itemNames:ee}}async removeContextsFromInvariant(L,R,B){const $=a.join(L,v,C,R);try{B?await this.removeItemFileOrDir($,B):await i.rm($,{recursive:!0})}catch{}}async removeInstructionsFromInvariant(L,R,B){const $=a.join(L,v,A,R);try{B?await this.removeItemFileOrDir($,B):await i.rm($,{recursive:!0})}catch{}}async removeItemFileOrDir(L,R){const B=a.join(L,R);try{if((await i.stat(B)).isDirectory()){await i.rm(B,{recursive:!0});return}}catch{}try{await i.unlink(B+".md")}catch{}}async listContexts(L){const R=a.join(L,v,C);return this.listItemsInDir(R)}async listInstructions(L){const R=a.join(L,v,A);return this.listItemsInDir(R)}async listItemsInDir(L){const R=[];try{const B=await i.readdir(L,{withFileTypes:!0});for(const $ of B)if($.name.startsWith("@")&&$.isDirectory()){const q=a.join(L,$.name),X=await i.readdir(q,{withFileTypes:!0});for(const ee of X)if(ee.isDirectory()){const se=`${$.name}/${ee.name}`,de=a.join(q,ee.name);await this.collectMdFiles(R,se,de)}}else if($.isDirectory()){const q=a.join(L,$.name);await this.collectMdFiles(R,$.name,q)}}catch{}return R}async collectMdFiles(L,R,B){const $=await i.readdir(B);for(const q of $)q.endsWith(".md")&&L.push({package:R,name:q.replace(".md",""),path:a.join(B,q)})}async readContext(L,R,B){const $=a.join(L,v,C,R,`${B}.md`);return i.readFile($,"utf-8")}async readInstruction(L,R,B){const $=a.join(L,v,A,R,`${B}.md`);return i.readFile($,"utf-8")}async writeSessionFile(L,R,B){const $=a.join(L,v,D,`${R}.md`);return await i.writeFile($,B,"utf-8"),$}async readSessionFile(L,R){try{const B=a.join(L,v,D,`${R}.md`);return await i.readFile(B,"utf-8")}catch{return null}}async scanDirectoryForItems(L){return this.readPackageItems(L)}async readPackageManifestFile(L){try{const R=a.join(L,m),B=await i.readFile(R,"utf-8"),$=JSON.parse(B);return p.PackageManifestFile.create({name:$.name,version:$.version,description:$.description||"",author:$.author||"",license:$.license||"",repository:$.repository||"",items:$.items||{}})}catch{return null}}async writePackageManifestFile(L,R){const B=a.join(L,m),$=JSON.stringify(R.toJSON(),null,2);await i.writeFile(B,$,"utf-8")}async bundlePackage(L){const R=await this.readPackageItems(L),B=a.join(L,m),$=await i.readFile(B,"utf-8"),q=[];this.appendTarEntry(q,m,$);for(const ee of R)this.appendTarEntry(q,ee.path,ee.content);q.push(Buffer.alloc(1024));const X=Buffer.concat(q);return u.gzipSync(X)}appendTarEntry(L,R,B){const $=Buffer.from(B,"utf-8"),q=Buffer.alloc(512);q.write(R,0,Math.min(R.length,100),"utf-8"),q.write("0000644\0",100,8,"utf-8"),q.write("0000000\0",108,8,"utf-8"),q.write("0000000\0",116,8,"utf-8"),q.write($.length.toString(8).padStart(11,"0")+"\0",124,12,"utf-8");const X=Math.floor(Date.now()/1e3).toString(8).padStart(11,"0");q.write(X+"\0",136,12,"utf-8"),q[156]=48,q.write("ustar\0",257,6,"utf-8"),q.write("00",263,2,"utf-8"),q.fill(32,148,156);let ee=0;for(let de=0;de<512;de++)ee+=q[de];q.write(ee.toString(8).padStart(6,"0")+"\0 ",148,8,"utf-8"),L.push(q),L.push($);const se=512-$.length%512;se<512&&L.push(Buffer.alloc(se))}};return Tie.FileSystemStorageRepository=P,Tie.FileSystemStorageRepository=P=e([(0,r.Injectable)()],P),Tie}var eH={},bfr;function yKr(){if(bfr)return eH;bfr=1;var e=eH&&eH.__decorate||function(p,_,m,v){var y=arguments.length,D=y<3?_:v===null?v=Object.getOwnPropertyDescriptor(_,m):v,C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")D=Reflect.decorate(p,_,m,v);else for(var A=p.length-1;A>=0;A--)(C=p[A])&&(D=(y<3?C(D):y>3?C(_,m,D):C(_,m))||D);return y>3&&D&&Object.defineProperty(_,m,D),D},r=eH&&eH.__metadata||function(p,_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(p,_)};Object.defineProperty(eH,"__esModule",{value:!0}),eH.InMemoryRegistryQueryBuilder=void 0;const i=xf(),a=CT(),u=NQ();let c=class extends a.RegistryQueryBuilder{constructor(){super(),this.packages=this.initializeFakeData()}initializeFakeData(){const _=new Map;return _.set("everything-claude-code",{name:"everything-claude-code",version:"1.0.0",description:"Complete Claude Code configuration with agents, skills, commands, and rules",author:"invariant-labs",items:[{type:"agents",path:"agents/planner.md",content:`# Planner Agent
|