prjct-cli 1.45.6 → 1.45.7
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/CHANGELOG.md +7 -0
- package/dist/bin/prjct-core.mjs +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/dist/bin/prjct-core.mjs
CHANGED
|
@@ -1779,7 +1779,7 @@ ${Q.yellow(`Command '${s}' not found.`)}
|
|
|
1779
1779
|
|
|
1780
1780
|
Run 'prjct help' to see all available commands.
|
|
1781
1781
|
`}function bk(){let s=[];s.push(""),s.push(Q.cyan.bold("All Commands")),s.push("");let e=Object.entries(qo).sort((t,n)=>t[1].order-n[1].order);for(let[t,n]of e){let r=Fr.filter(o=>o.group===t);if(r.length!==0){s.push(`${Q.bold(n.title)} ${Q.dim(`(${r.length} commands)`)}`),s.push(Q.dim(n.description)),s.push("");for(let o of r){let i=`p. ${o.name}`.padEnd(18),a=o.description.length>45?`${o.description.slice(0,42)}...`:o.description;s.push(` ${i} ${a}`)}s.push("")}}return s.push(Q.dim("Run 'prjct help <command>' for detailed help on a specific command.")),s.push(""),s.join(`
|
|
1782
|
-
`)}function DR(s){return s?s==="commands"||s==="all"?bk():Sk(s):yk()}var hk,IR,Ck=y(()=>{"use strict";gp();rt();hk=[{name:"start",description:"First-time setup wizard",example:"prjct start"},{name:"init",description:"Initialize project in current directory",example:"prjct init"},{name:"sync",description:"Sync project state and update context files",example:"prjct sync"},{name:"watch",description:"Auto-sync on file changes",example:"prjct watch",options:["--verbose","--debounce=<ms>","--interval=<sec>"]},{name:"hooks",description:"Manage git hooks for auto-sync",example:"prjct hooks install",subcommands:["install","uninstall","status"]},{name:"doctor",description:"Check system health and dependencies",example:"prjct doctor"},{name:"serve",description:"Start web dashboard server",example:"prjct serve [port]"},{name:"context",description:"Smart context filtering tools for AI",example:'prjct context files "add auth"',subcommands:["files","signatures","imports","recent","summary"]},{name:"enrich",description:"Prepare issue enrichment context from local code",example:'prjct enrich "PROJ-123 improve auth flow" --md'},{name:"linear",description:"Linear issue tracker MCP gateway",example:"prjct linear setup",subcommands:["setup","status","sync","list","get","create","update","start","done","comment"]},{name:"jira",description:"Jira issue tracker MCP gateway",example:"prjct jira setup",subcommands:["setup","status","sync","list","get","create","update","start","done","transition","comment"]},{name:"stop",description:"Stop the background daemon",example:"prjct stop",options:["--force"]},{name:"restart",description:"Restart the background daemon",example:"prjct restart"},{name:"uninstall",description:"Complete system removal of prjct",example:"prjct uninstall --backup",options:["--force","--backup","--dry-run","--keep-package"]}],IR=[{flag:"-q, --quiet",description:"Suppress all output (errors to stderr only)"},{flag:"-v, --version",description:"Show version and provider status"},{flag:"-h, --help",description:"Show this help message"}];l(yk,"formatMainHelp");l(wk,"formatTerminalCommandHelp");l(kk,"formatAgentCommandHelp");l(Sk,"formatCommandHelp");l(bk,"formatCommandList");l(DR,"getHelp")});var Pk=Ok((a3,$R)=>{$R.exports={name:"prjct-cli",version:"1.45.6",description:"Context layer for AI agents. Project context for Claude Code, Gemini CLI, and more.",main:"dist/bin/prjct.mjs",bin:{prjct:"bin/prjct"},publishConfig:{access:"public",registry:"https://registry.npmjs.org"},scripts:{build:"node scripts/build.js","build:node":"node scripts/build.js",release:"node scripts/release.js","release:patch":"node scripts/release.js patch","release:minor":"node scripts/release.js minor","release:major":"node scripts/release.js major",postinstall:"node scripts/postinstall.js",prepare:"lefthook install","update-commands":`bun -e "const installer = require('./core/infrastructure/command-installer'); installer.syncCommands().then(r => console.log('Commands updated:', r)).catch(e => console.error('Error:', e.message))"`,"install-global":"./scripts/install.sh",update:"./scripts/update.sh",test:"bun test","test:watch":"bun test --watch","test:coverage":"bun test --coverage",typecheck:"tsc --noEmit -p core/tsconfig.json","typecheck:watch":"tsc --noEmit -p core/tsconfig.json --watch",validate:"bun scripts/validate-commands.js",lint:"biome lint .","lint:fix":"biome lint --write .","lint:meta":"bun core/cli/lint-meta-commentary.ts",format:"biome format --write .","format:check":"biome format .",check:"biome check .","check:fix":"biome check --write ."},keywords:["claude-code","gemini-cli","ai-agents","context-layer","developer-tools","ai-assistant","productivity","mcp","llm","coding-agents"],author:"prjct.app",license:"MIT",dependencies:{"@clack/prompts":"^1.0.0","@hono/node-server":"^1.13.7","better-sqlite3":"^12.6.2",chalk:"^4.1.2",chokidar:"^5.0.0","date-fns":"^4.1.0",glob:"^13.0.1",hono:"^4.11.3","jsonc-parser":"^3.3.1",zod:"^3.24.1"},devDependencies:{"@biomejs/biome":"^2.3.13","@types/better-sqlite3":"^7.6.13","@types/bun":"latest","@types/chokidar":"^2.1.7",esbuild:"^0.25.0",lefthook:"^2.1.0",typescript:"^5.9.3"},repository:{type:"git",url:"git+https://github.com/jlopezlira/prjct-cli.git"},bugs:{url:"https://github.com/jlopezlira/prjct-cli/issues"},homepage:"https://prjct.app",packageManager:"bun@1.2.23",engines:{node:">=18.0.0",bun:">=1.0.0"},files:["assets/","bin/prjct","dist/","templates/","scripts/postinstall.js","scripts/install.sh","LICENSE","README.md","CHANGELOG.md"],prepublishOnly:"node scripts/build.js",trustedDependencies:["chalk"]}});var HR={};import xk from"node:os";import gc from"node:path";import Ge from"chalk";async function MR(){let[s,...e]=process.argv.slice(2);if(["-v","--version","version"].includes(s)){let t=await Promise.resolve().then(()=>Nk(Pk()));await LR(t.version),process.exit(0)}["-h","--help",void 0].includes(s)&&(UR(),process.exit(0)),h.start();try{let t=B.getByName(s);if(!t){let m=NR(s),p=m?`Did you mean 'prjct ${m}'? Run 'prjct --help' for all commands`:"Run 'prjct --help' to see available commands";h.failWithHint(gs("UNKNOWN_COMMAND",{message:`Unknown command: ${s}`,hint:p})),h.end(),process.exit(1)}if(t.deprecated){let m=t.replacedBy?`Use 'prjct ${t.replacedBy}' instead`:"Run 'prjct --help' to see available commands";h.failWithHint({message:`Command '${s}' is deprecated`,hint:m}),h.end(),process.exit(1)}t.implemented||(h.failWithHint({message:`Command '${s}' is not yet implemented`,hint:"Run 'prjct --help' to see available commands",docs:"https://github.com/jlopezlira/prjct-cli"}),h.end(),process.exit(1));let{parsedArgs:n,options:r}=_R(t,e),o=!process.stdin.isTTY||r.md===!0||r.json===!0;t.requiresLlm&&!o&&(h.failWithHint({message:`'prjct ${s}' requires an AI agent to process its output`,hint:`Use 'p. ${s}' inside Claude/Cursor, or add --md flag`}),h.end(),process.exit(1));let i=OR(t,n);i&&(h.failWithHint(i),h.end(),process.exit(1));let a=null,c=Date.now();try{a=await O.getProjectId(process.cwd()),a&&(await Xn.expireIfStale(a),await Xn.touch(a))}catch{}let u=new _n,d;if(s==="design"){let m=n.join(" ");d=await u.design(m,r)}else if(s==="analyze")d=await u.analyze(r);else if(s==="cleanup")d=await u.cleanup(r);else if(s==="setup")d=await u.setup(r);else if(s==="update")d=await u.update(r);else{let m=n.join(" ")||null,p=r.md===!0,f={task:l(k=>u.task(k,process.cwd(),{md:p}),"task"),done:l(()=>u.done(process.cwd(),{md:p}),"done"),next:l(()=>u.next(process.cwd(),{md:p}),"next"),pause:l(k=>u.pause(k||"",process.cwd(),{md:p}),"pause"),resume:l(k=>u.resume(k,process.cwd(),{md:p}),"resume"),init:l(k=>u.init(k),"init"),bug:l(k=>u.bug(k||"",process.cwd(),{md:p}),"bug"),idea:l(k=>u.idea(k||"",process.cwd(),{md:p}),"idea"),spec:l(k=>u.spec(k),"spec"),ship:l(k=>u.ship(k,process.cwd(),{md:p}),"ship"),workflow:l(k=>u.workflowPrefs(k,process.cwd(),{md:p}),"workflow"),sessions:l(()=>u.sessions(process.cwd(),{md:p,cleanup:r.cleanup===!0}),"sessions"),dash:l(k=>u.dash(k||"default",process.cwd(),{md:p}),"dash"),stats:l(()=>u.stats(process.cwd(),{json:r.json===!0,export:r.export===!0}),"stats"),status:l(()=>u.status(process.cwd(),{json:r.json===!0,md:p}),"status"),help:l(k=>u.help(k||""),"help"),perf:l(k=>u.perf(k||"7"),"perf"),velocity:l(k=>u.velocity(k||"0"),"velocity"),recover:l(()=>u.recover(),"recover"),undo:l(()=>u.undo(),"undo"),redo:l(()=>u.redo(),"redo"),history:l(()=>u.history(),"history"),enrich:l(k=>u.enrich(k,process.cwd(),{md:p,json:r.json===!0}),"enrich"),sync:l(()=>u.sync(process.cwd(),{aiTools:r.agents?String(r.agents).split(","):void 0,preview:r.preview===!0||r["dry-run"]===!0,yes:r.yes===!0,json:r.json===!0,md:p,package:r.package?String(r.package):void 0,full:r.full===!0}),"sync"),diff:l(()=>u.diff(process.cwd(),{json:r.json===!0,md:p}),"diff"),seal:l(()=>u.seal(process.cwd(),{json:r.json===!0}),"seal"),rollback:l(()=>u.rollback(process.cwd(),{json:r.json===!0,md:p}),"rollback"),verify:l(()=>u.verify(process.cwd(),{json:r.json===!0,semantic:r.semantic===!0}),"verify"),"analysis-payload":l(()=>u.analysisPayload(process.cwd(),{json:r.json===!0,md:p}),"analysis-payload"),"analysis-save-llm":l(k=>u.saveLlmAnalysis(k||"",process.cwd(),{md:p}),"analysis-save-llm"),"analysis-llm":l(()=>u.getLlmAnalysis(process.cwd(),{json:r.json===!0,md:p}),"analysis-llm"),start:l(()=>u.start(),"start"),context:l(k=>u.context(k),"context")}[s];if(f)d=await f(m);else throw new Error(`Command '${s}' has no handler`)}if(a){let m=Date.now()-c;try{await Xn.trackCommand(a,s,m)}catch{}try{await fs.recordTiming(a,"command_duration",m,{command:s});let p=globalThis.__perfStartNs;if(p){let g=Number(process.hrtime.bigint()-p)/1e6;await fs.recordTiming(a,"startup_time",g)}await fs.recordMemory(a,{command:s})}catch{}}d?.message&&console.log(d.message),h.end(),process.exit(d?.success?0:1)}catch(t){console.error("Error:",w(t)),process.env.DEBUG&&console.error(ei(t)),h.end(),process.exit(1)}}function OR(s,e){if(!s.params)return null;let t=s.params.match(/<[^>]+>/g);if(!t||t.length===0)return null;if(e.length<t.length){let n=t.map(o=>o.slice(1,-1)).join(", "),r=s.usage.terminal||`prjct ${s.name} ${s.params}`;return gs("MISSING_PARAM",{message:`Missing required parameter: ${n}`,hint:`Usage: ${r}`})}return null}function NR(s){let e=B.getAll().map(r=>r.name),t=null,n=1/0;for(let r of e){let o=FR(s.toLowerCase(),r.toLowerCase());o<n&&(n=o,t=r)}return n<=2?t:null}function FR(s,e){let t=s.length,n=e.length,r=Array.from({length:t+1},()=>Array(n+1).fill(0));for(let o=0;o<=t;o++)r[o][0]=o;for(let o=0;o<=n;o++)r[0][o]=o;for(let o=1;o<=t;o++)for(let i=1;i<=n;i++)r[o][i]=s[o-1]===e[i-1]?r[o-1][i-1]:1+Math.min(r[o-1][i],r[o][i-1],r[o-1][i-1]);return r[t][n]}function _R(s,e){let t=[],n={};for(let r=0;r<e.length;r++){let o=e[r];if(o.startsWith("--")){let i=o.slice(2);r+1<e.length&&!e[r+1].startsWith("--")?n[i]=e[++r]:n[i]=!0}else t.push(o)}return{parsedArgs:t,options:n}}async function LR(s){let e=await Tn(),t=gc.join(xk.homedir(),".claude","commands","p.md"),n=gc.join(xk.homedir(),".gemini","commands","p.toml"),[r,o,i,a]=await Promise.all([E(t),E(n),E(gc.join(process.cwd(),".cursor","commands","sync.md")),E(gc.join(process.cwd(),".cursor"))]),c=await Vs();if(console.log(`
|
|
1782
|
+
`)}function DR(s){return s?s==="commands"||s==="all"?bk():Sk(s):yk()}var hk,IR,Ck=y(()=>{"use strict";gp();rt();hk=[{name:"start",description:"First-time setup wizard",example:"prjct start"},{name:"init",description:"Initialize project in current directory",example:"prjct init"},{name:"sync",description:"Sync project state and update context files",example:"prjct sync"},{name:"watch",description:"Auto-sync on file changes",example:"prjct watch",options:["--verbose","--debounce=<ms>","--interval=<sec>"]},{name:"hooks",description:"Manage git hooks for auto-sync",example:"prjct hooks install",subcommands:["install","uninstall","status"]},{name:"doctor",description:"Check system health and dependencies",example:"prjct doctor"},{name:"serve",description:"Start web dashboard server",example:"prjct serve [port]"},{name:"context",description:"Smart context filtering tools for AI",example:'prjct context files "add auth"',subcommands:["files","signatures","imports","recent","summary"]},{name:"enrich",description:"Prepare issue enrichment context from local code",example:'prjct enrich "PROJ-123 improve auth flow" --md'},{name:"linear",description:"Linear issue tracker MCP gateway",example:"prjct linear setup",subcommands:["setup","status","sync","list","get","create","update","start","done","comment"]},{name:"jira",description:"Jira issue tracker MCP gateway",example:"prjct jira setup",subcommands:["setup","status","sync","list","get","create","update","start","done","transition","comment"]},{name:"stop",description:"Stop the background daemon",example:"prjct stop",options:["--force"]},{name:"restart",description:"Restart the background daemon",example:"prjct restart"},{name:"uninstall",description:"Complete system removal of prjct",example:"prjct uninstall --backup",options:["--force","--backup","--dry-run","--keep-package"]}],IR=[{flag:"-q, --quiet",description:"Suppress all output (errors to stderr only)"},{flag:"-v, --version",description:"Show version and provider status"},{flag:"-h, --help",description:"Show this help message"}];l(yk,"formatMainHelp");l(wk,"formatTerminalCommandHelp");l(kk,"formatAgentCommandHelp");l(Sk,"formatCommandHelp");l(bk,"formatCommandList");l(DR,"getHelp")});var Pk=Ok((a3,$R)=>{$R.exports={name:"prjct-cli",version:"1.45.7",description:"Context layer for AI agents. Project context for Claude Code, Gemini CLI, and more.",main:"dist/bin/prjct.mjs",bin:{prjct:"bin/prjct"},publishConfig:{access:"public",registry:"https://registry.npmjs.org"},scripts:{build:"node scripts/build.js","build:node":"node scripts/build.js",release:"node scripts/release.js","release:patch":"node scripts/release.js patch","release:minor":"node scripts/release.js minor","release:major":"node scripts/release.js major",postinstall:"node scripts/postinstall.js",prepare:"lefthook install","update-commands":`bun -e "const installer = require('./core/infrastructure/command-installer'); installer.syncCommands().then(r => console.log('Commands updated:', r)).catch(e => console.error('Error:', e.message))"`,"install-global":"./scripts/install.sh",update:"./scripts/update.sh",test:"bun test","test:watch":"bun test --watch","test:coverage":"bun test --coverage",typecheck:"tsc --noEmit -p core/tsconfig.json","typecheck:watch":"tsc --noEmit -p core/tsconfig.json --watch",validate:"bun scripts/validate-commands.js",lint:"biome lint .","lint:fix":"biome lint --write .","lint:meta":"bun core/cli/lint-meta-commentary.ts",format:"biome format --write .","format:check":"biome format .",check:"biome check .","check:fix":"biome check --write ."},keywords:["claude-code","gemini-cli","ai-agents","context-layer","developer-tools","ai-assistant","productivity","mcp","llm","coding-agents"],author:"prjct.app",license:"MIT",dependencies:{"@clack/prompts":"^1.0.0","@hono/node-server":"^1.13.7","better-sqlite3":"^12.6.2",chalk:"^4.1.2",chokidar:"^5.0.0","date-fns":"^4.1.0",glob:"^13.0.1",hono:"^4.11.3","jsonc-parser":"^3.3.1",zod:"^3.24.1"},devDependencies:{"@biomejs/biome":"^2.3.13","@types/better-sqlite3":"^7.6.13","@types/bun":"latest","@types/chokidar":"^2.1.7",esbuild:"^0.25.0",lefthook:"^2.1.0",typescript:"^5.9.3"},repository:{type:"git",url:"git+https://github.com/jlopezlira/prjct-cli.git"},bugs:{url:"https://github.com/jlopezlira/prjct-cli/issues"},homepage:"https://prjct.app",packageManager:"bun@1.2.23",engines:{node:">=18.0.0",bun:">=1.0.0"},files:["assets/","bin/prjct","dist/","templates/","scripts/postinstall.js","scripts/install.sh","LICENSE","README.md","CHANGELOG.md"],prepublishOnly:"node scripts/build.js",trustedDependencies:["chalk"]}});var HR={};import xk from"node:os";import gc from"node:path";import Ge from"chalk";async function MR(){let[s,...e]=process.argv.slice(2);if(["-v","--version","version"].includes(s)){let t=await Promise.resolve().then(()=>Nk(Pk()));await LR(t.version),process.exit(0)}["-h","--help",void 0].includes(s)&&(UR(),process.exit(0)),h.start();try{let t=B.getByName(s);if(!t){let m=NR(s),p=m?`Did you mean 'prjct ${m}'? Run 'prjct --help' for all commands`:"Run 'prjct --help' to see available commands";h.failWithHint(gs("UNKNOWN_COMMAND",{message:`Unknown command: ${s}`,hint:p})),h.end(),process.exit(1)}if(t.deprecated){let m=t.replacedBy?`Use 'prjct ${t.replacedBy}' instead`:"Run 'prjct --help' to see available commands";h.failWithHint({message:`Command '${s}' is deprecated`,hint:m}),h.end(),process.exit(1)}t.implemented||(h.failWithHint({message:`Command '${s}' is not yet implemented`,hint:"Run 'prjct --help' to see available commands",docs:"https://github.com/jlopezlira/prjct-cli"}),h.end(),process.exit(1));let{parsedArgs:n,options:r}=_R(t,e),o=!process.stdin.isTTY||r.md===!0||r.json===!0;t.requiresLlm&&!o&&(h.failWithHint({message:`'prjct ${s}' requires an AI agent to process its output`,hint:`Use 'p. ${s}' inside Claude/Cursor, or add --md flag`}),h.end(),process.exit(1));let i=OR(t,n);i&&(h.failWithHint(i),h.end(),process.exit(1));let a=null,c=Date.now();try{a=await O.getProjectId(process.cwd()),a&&(await Xn.expireIfStale(a),await Xn.touch(a))}catch{}let u=new _n,d;if(s==="design"){let m=n.join(" ");d=await u.design(m,r)}else if(s==="analyze")d=await u.analyze(r);else if(s==="cleanup")d=await u.cleanup(r);else if(s==="setup")d=await u.setup(r);else if(s==="update")d=await u.update(r);else{let m=n.join(" ")||null,p=r.md===!0,f={task:l(k=>u.task(k,process.cwd(),{md:p}),"task"),done:l(()=>u.done(process.cwd(),{md:p}),"done"),next:l(()=>u.next(process.cwd(),{md:p}),"next"),pause:l(k=>u.pause(k||"",process.cwd(),{md:p}),"pause"),resume:l(k=>u.resume(k,process.cwd(),{md:p}),"resume"),init:l(k=>u.init(k),"init"),bug:l(k=>u.bug(k||"",process.cwd(),{md:p}),"bug"),idea:l(k=>u.idea(k||"",process.cwd(),{md:p}),"idea"),spec:l(k=>u.spec(k),"spec"),ship:l(k=>u.ship(k,process.cwd(),{md:p}),"ship"),workflow:l(k=>u.workflowPrefs(k,process.cwd(),{md:p}),"workflow"),sessions:l(()=>u.sessions(process.cwd(),{md:p,cleanup:r.cleanup===!0}),"sessions"),dash:l(k=>u.dash(k||"default",process.cwd(),{md:p}),"dash"),stats:l(()=>u.stats(process.cwd(),{json:r.json===!0,export:r.export===!0}),"stats"),status:l(()=>u.status(process.cwd(),{json:r.json===!0,md:p}),"status"),help:l(k=>u.help(k||""),"help"),perf:l(k=>u.perf(k||"7"),"perf"),velocity:l(k=>u.velocity(k||"0"),"velocity"),recover:l(()=>u.recover(),"recover"),undo:l(()=>u.undo(),"undo"),redo:l(()=>u.redo(),"redo"),history:l(()=>u.history(),"history"),enrich:l(k=>u.enrich(k,process.cwd(),{md:p,json:r.json===!0}),"enrich"),sync:l(()=>u.sync(process.cwd(),{aiTools:r.agents?String(r.agents).split(","):void 0,preview:r.preview===!0||r["dry-run"]===!0,yes:r.yes===!0,json:r.json===!0,md:p,package:r.package?String(r.package):void 0,full:r.full===!0}),"sync"),diff:l(()=>u.diff(process.cwd(),{json:r.json===!0,md:p}),"diff"),seal:l(()=>u.seal(process.cwd(),{json:r.json===!0}),"seal"),rollback:l(()=>u.rollback(process.cwd(),{json:r.json===!0,md:p}),"rollback"),verify:l(()=>u.verify(process.cwd(),{json:r.json===!0,semantic:r.semantic===!0}),"verify"),"analysis-payload":l(()=>u.analysisPayload(process.cwd(),{json:r.json===!0,md:p}),"analysis-payload"),"analysis-save-llm":l(k=>u.saveLlmAnalysis(k||"",process.cwd(),{md:p}),"analysis-save-llm"),"analysis-llm":l(()=>u.getLlmAnalysis(process.cwd(),{json:r.json===!0,md:p}),"analysis-llm"),start:l(()=>u.start(),"start"),context:l(k=>u.context(k),"context")}[s];if(f)d=await f(m);else throw new Error(`Command '${s}' has no handler`)}if(a){let m=Date.now()-c;try{await Xn.trackCommand(a,s,m)}catch{}try{await fs.recordTiming(a,"command_duration",m,{command:s});let p=globalThis.__perfStartNs;if(p){let g=Number(process.hrtime.bigint()-p)/1e6;await fs.recordTiming(a,"startup_time",g)}await fs.recordMemory(a,{command:s})}catch{}}d?.message&&console.log(d.message),h.end(),process.exit(d?.success?0:1)}catch(t){console.error("Error:",w(t)),process.env.DEBUG&&console.error(ei(t)),h.end(),process.exit(1)}}function OR(s,e){if(!s.params)return null;let t=s.params.match(/<[^>]+>/g);if(!t||t.length===0)return null;if(e.length<t.length){let n=t.map(o=>o.slice(1,-1)).join(", "),r=s.usage.terminal||`prjct ${s.name} ${s.params}`;return gs("MISSING_PARAM",{message:`Missing required parameter: ${n}`,hint:`Usage: ${r}`})}return null}function NR(s){let e=B.getAll().map(r=>r.name),t=null,n=1/0;for(let r of e){let o=FR(s.toLowerCase(),r.toLowerCase());o<n&&(n=o,t=r)}return n<=2?t:null}function FR(s,e){let t=s.length,n=e.length,r=Array.from({length:t+1},()=>Array(n+1).fill(0));for(let o=0;o<=t;o++)r[o][0]=o;for(let o=0;o<=n;o++)r[0][o]=o;for(let o=1;o<=t;o++)for(let i=1;i<=n;i++)r[o][i]=s[o-1]===e[i-1]?r[o-1][i-1]:1+Math.min(r[o-1][i],r[o][i-1],r[o-1][i-1]);return r[t][n]}function _R(s,e){let t=[],n={};for(let r=0;r<e.length;r++){let o=e[r];if(o.startsWith("--")){let i=o.slice(2);r+1<e.length&&!e[r+1].startsWith("--")?n[i]=e[++r]:n[i]=!0}else t.push(o)}return{parsedArgs:t,options:n}}async function LR(s){let e=await Tn(),t=gc.join(xk.homedir(),".claude","commands","p.md"),n=gc.join(xk.homedir(),".gemini","commands","p.toml"),[r,o,i,a]=await Promise.all([E(t),E(n),E(gc.join(process.cwd(),".cursor","commands","sync.md")),E(gc.join(process.cwd(),".cursor"))]),c=await Vs();if(console.log(`
|
|
1783
1783
|
${Ge.cyan("p/")} prjct v${s}
|
|
1784
1784
|
${Ge.dim("Context layer for AI coding agents")}
|
|
1785
1785
|
|