@holdyourvoice/hyv 0.2.0 → 0.3.0
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/index.js +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -25,7 +25,7 @@ Expecting one of '${s.join("', '")}'`);let i=`${t}Help`;return this.on(i,r=>{let
|
|
|
25
25
|
`)+e,i=s+1,s=n.indexOf(`
|
|
26
26
|
`,i)}while(s!==-1);return r+=n.substr(i),r};Ki.exports={stringReplaceAll:go,stringEncaseCRLFWithFirstIndex:yo}});var en=E((Ml,tn)=>{"use strict";var wo=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,Xi=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,bo=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,vo=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,xo=new Map([["n",`
|
|
27
27
|
`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function Qi(n){let t=n[0]==="u",e=n[1]==="{";return t&&!e&&n.length===5||n[0]==="x"&&n.length===3?String.fromCharCode(parseInt(n.slice(1),16)):t&&e?String.fromCodePoint(parseInt(n.slice(2,-1),16)):xo.get(n)||n}function So(n,t){let e=[],s=t.trim().split(/\s*,\s*/g),i;for(let r of s){let o=Number(r);if(!Number.isNaN(o))e.push(o);else if(i=r.match(bo))e.push(i[2].replace(vo,(a,l,h)=>l?Qi(l):h));else throw new Error(`Invalid Chalk template style argument: ${r} (in style '${n}')`)}return e}function _o(n){Xi.lastIndex=0;let t=[],e;for(;(e=Xi.exec(n))!==null;){let s=e[1];if(e[2]){let i=So(s,e[2]);t.push([s].concat(i))}else t.push([s])}return t}function Zi(n,t){let e={};for(let i of t)for(let r of i.styles)e[r[0]]=i.inverse?null:r.slice(1);let s=n;for(let[i,r]of Object.entries(e))if(Array.isArray(r)){if(!(i in s))throw new Error(`Unknown Chalk style: ${i}`);s=r.length>0?s[i](...r):s[i]}return s}tn.exports=(n,t)=>{let e=[],s=[],i=[];if(t.replace(wo,(r,o,a,l,h,c)=>{if(o)i.push(Qi(o));else if(l){let u=i.join("");i=[],s.push(e.length===0?u:Zi(n,e)(u)),e.push({inverse:a,styles:_o(l)})}else if(h){if(e.length===0)throw new Error("Found extraneous } in Chalk template literal");s.push(Zi(n,e)(i.join(""))),i=[],e.pop()}else i.push(c)}),s.push(i.join("")),e.length>0){let r=`Chalk template literal is missing ${e.length} closing bracket${e.length===1?"":"s"} (\`}\`)`;throw new Error(r)}return s.join("")}});var hn=E((jl,ln)=>{"use strict";var Ut=Vi(),{stdout:xs,stderr:Ss}=Yi(),{stringReplaceAll:Eo,stringEncaseCRLFWithFirstIndex:Co}=Ji(),{isArray:ye}=Array,nn=["ansi","ansi","ansi256","ansi16m"],$t=Object.create(null),Oo=(n,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let e=xs?xs.level:0;n.level=t.level===void 0?e:t.level},_s=class{constructor(t){return rn(t)}},rn=n=>{let t={};return Oo(t,n),t.template=(...e)=>an(t.template,...e),Object.setPrototypeOf(t,we.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=_s,t.template};function we(n){return rn(n)}for(let[n,t]of Object.entries(Ut))$t[n]={get(){let e=be(this,Es(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,n,{value:e}),e}};$t.visible={get(){let n=be(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:n}),n}};var on=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let n of on)$t[n]={get(){let{level:t}=this;return function(...e){let s=Es(Ut.color[nn[t]][n](...e),Ut.color.close,this._styler);return be(this,s,this._isEmpty)}}};for(let n of on){let t="bg"+n[0].toUpperCase()+n.slice(1);$t[t]={get(){let{level:e}=this;return function(...s){let i=Es(Ut.bgColor[nn[e]][n](...s),Ut.bgColor.close,this._styler);return be(this,i,this._isEmpty)}}}}var Ao=Object.defineProperties(()=>{},{...$t,level:{enumerable:!0,get(){return this._generator.level},set(n){this._generator.level=n}}}),Es=(n,t,e)=>{let s,i;return e===void 0?(s=n,i=t):(s=e.openAll+n,i=t+e.closeAll),{open:n,close:t,openAll:s,closeAll:i,parent:e}},be=(n,t,e)=>{let s=(...i)=>ye(i[0])&&ye(i[0].raw)?sn(s,an(s,...i)):sn(s,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(s,Ao),s._generator=n,s._styler=t,s._isEmpty=e,s},sn=(n,t)=>{if(n.level<=0||!t)return n._isEmpty?"":t;let e=n._styler;if(e===void 0)return t;let{openAll:s,closeAll:i}=e;if(t.indexOf("\x1B")!==-1)for(;e!==void 0;)t=Eo(t,e.close,e.open),e=e.parent;let r=t.indexOf(`
|
|
28
|
-
`);return r!==-1&&(t=Co(t,i,s,r)),s+t+i},vs,an=(n,...t)=>{let[e]=t;if(!ye(e)||!ye(e.raw))return t.join(" ");let s=t.slice(1),i=[e.raw[0]];for(let r=1;r<e.length;r++)i.push(String(s[r-1]).replace(/[{}\\]/g,"\\$&"),String(e.raw[r]));return vs===void 0&&(vs=en()),vs(n,i.join(""))};Object.defineProperties(we.prototype,$t);var ve=we();ve.supportsColor=xs;ve.stderr=we({level:Ss?Ss.level:0});ve.stderr.supportsColor=Ss;ln.exports=ve});var bn=E((Wl,wn)=>{"use strict";wn.exports=gn;function gn(n,t,e){n instanceof RegExp&&(n=mn(n,e)),t instanceof RegExp&&(t=mn(t,e));var s=yn(n,t,e);return s&&{start:s[0],end:s[1],pre:e.slice(0,s[0]),body:e.slice(s[0]+n.length,s[1]),post:e.slice(s[1]+t.length)}}function mn(n,t){var e=t.match(n);return e?e[0]:null}gn.range=yn;function yn(n,t,e){var s,i,r,o,a,l=e.indexOf(n),h=e.indexOf(t,l+1),c=l;if(l>=0&&h>0){if(n===t)return[l,h];for(s=[],r=e.length;c>=0&&!a;)c==l?(s.push(c),l=e.indexOf(n,c+1)):s.length==1?a=[s.pop(),h]:(i=s.pop(),i<r&&(r=i,o=h),h=e.indexOf(t,c+1)),c=l<h&&l>=0?l:h;s.length&&(a=[r,o])}return a}});var An=E((Bl,On)=>{var vn=bn();On.exports=Ro;var xn="\0SLASH"+Math.random()+"\0",Sn="\0OPEN"+Math.random()+"\0",$s="\0CLOSE"+Math.random()+"\0",_n="\0COMMA"+Math.random()+"\0",En="\0PERIOD"+Math.random()+"\0";function ks(n){return parseInt(n,10)==n?parseInt(n,10):n.charCodeAt(0)}function To(n){return n.split("\\\\").join(xn).split("\\{").join(Sn).split("\\}").join($s).split("\\,").join(_n).split("\\.").join(En)}function Fo(n){return n.split(xn).join("\\").split(Sn).join("{").split($s).join("}").split(_n).join(",").split(En).join(".")}function Cn(n){if(!n)return[""];var t=[],e=vn("{","}",n);if(!e)return n.split(",");var s=e.pre,i=e.body,r=e.post,o=s.split(",");o[o.length-1]+="{"+i+"}";var a=Cn(r);return r.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function Ro(n,t){if(!n)return[];t=t||{};var e=t.max==null?1/0:t.max;return n.substr(0,2)==="{}"&&(n="\\{\\}"+n.substr(2)),zt(To(n),e,!0).map(Fo)}function Mo(n){return"{"+n+"}"}function jo(n){return/^-?0\d/.test(n)}function Po(n,t){return n<=t}function Do(n,t){return n>=t}function zt(n,t,e){var s=[],i=vn("{","}",n);if(!i)return[n];var r=i.pre,o=i.post.length?zt(i.post,t,!1):[""];if(/\$$/.test(i.pre))for(var a=0;a<o.length&&a<t;a++){var l=r+"{"+i.body+"}"+o[a];s.push(l)}else{var h=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),c=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),u=h||c,f=i.body.indexOf(",")>=0;if(!u&&!f)return i.post.match(/,(?!,).*\}/)?(n=i.pre+"{"+i.body+$s+i.post,zt(n,t,!0)):[n];var d;if(u)d=i.body.split(/\.\./);else if(d=Cn(i.body),d.length===1&&(d=zt(d[0],t,!1).map(Mo),d.length===1))return o.map(function(_r){return i.pre+d[0]+_r});var g;if(u){var p=ks(d[0]),b=ks(d[1]),y=Math.max(d[0].length,d[1].length),v=d.length==3?Math.max(Math.abs(ks(d[2])),1):1,x=Po,_=b<p;_&&(v*=-1,x=Do);var $=d.some(jo);g=[];for(var J=p;x(J,b)&&g.length<t;J+=v){var k;if(c)k=String.fromCharCode(J),k==="\\"&&(k="");else if(k=String(J),$){var bt=y-k.length;if(bt>0){var _t=new Array(bt+1).join("0");J<0?k="-"+_t+k.slice(1):k=_t+k}}g.push(k)}}else{g=[];for(var et=0;et<d.length;et++)g.push.apply(g,zt(d[et],t,!1))}for(var et=0;et<g.length;et++)for(var a=0;a<o.length&&s.length<t;a++){var l=r+g[et]+o[a];(!e||u||l)&&s.push(l)}}return s}});var li=P(ai(),1),{program:al,createCommand:ll,createArgument:hl,createOption:cl,CommanderError:ul,InvalidArgumentError:fl,InvalidOptionArgumentError:dl,Command:hi,Argument:pl,Option:ml,Help:gl}=li.default;var fn=P(require("http")),S=P(require("fs")),j=P(require("path")),dn=P(_i());var W=P(require("fs")),ut=P(require("path")),Ei=P(require("os")),fs=ut.join(Ei.homedir(),".hyv"),Ci=ut.join(fs,"credentials.json"),us=ut.join(fs,"profiles");function Oi(n){W.existsSync(n)||W.mkdirSync(n,{recursive:!0})}function Ct(){try{let
|
|
28
|
+
`);return r!==-1&&(t=Co(t,i,s,r)),s+t+i},vs,an=(n,...t)=>{let[e]=t;if(!ye(e)||!ye(e.raw))return t.join(" ");let s=t.slice(1),i=[e.raw[0]];for(let r=1;r<e.length;r++)i.push(String(s[r-1]).replace(/[{}\\]/g,"\\$&"),String(e.raw[r]));return vs===void 0&&(vs=en()),vs(n,i.join(""))};Object.defineProperties(we.prototype,$t);var ve=we();ve.supportsColor=xs;ve.stderr=we({level:Ss?Ss.level:0});ve.stderr.supportsColor=Ss;ln.exports=ve});var bn=E((Wl,wn)=>{"use strict";wn.exports=gn;function gn(n,t,e){n instanceof RegExp&&(n=mn(n,e)),t instanceof RegExp&&(t=mn(t,e));var s=yn(n,t,e);return s&&{start:s[0],end:s[1],pre:e.slice(0,s[0]),body:e.slice(s[0]+n.length,s[1]),post:e.slice(s[1]+t.length)}}function mn(n,t){var e=t.match(n);return e?e[0]:null}gn.range=yn;function yn(n,t,e){var s,i,r,o,a,l=e.indexOf(n),h=e.indexOf(t,l+1),c=l;if(l>=0&&h>0){if(n===t)return[l,h];for(s=[],r=e.length;c>=0&&!a;)c==l?(s.push(c),l=e.indexOf(n,c+1)):s.length==1?a=[s.pop(),h]:(i=s.pop(),i<r&&(r=i,o=h),h=e.indexOf(t,c+1)),c=l<h&&l>=0?l:h;s.length&&(a=[r,o])}return a}});var An=E((Bl,On)=>{var vn=bn();On.exports=Ro;var xn="\0SLASH"+Math.random()+"\0",Sn="\0OPEN"+Math.random()+"\0",$s="\0CLOSE"+Math.random()+"\0",_n="\0COMMA"+Math.random()+"\0",En="\0PERIOD"+Math.random()+"\0";function ks(n){return parseInt(n,10)==n?parseInt(n,10):n.charCodeAt(0)}function To(n){return n.split("\\\\").join(xn).split("\\{").join(Sn).split("\\}").join($s).split("\\,").join(_n).split("\\.").join(En)}function Fo(n){return n.split(xn).join("\\").split(Sn).join("{").split($s).join("}").split(_n).join(",").split(En).join(".")}function Cn(n){if(!n)return[""];var t=[],e=vn("{","}",n);if(!e)return n.split(",");var s=e.pre,i=e.body,r=e.post,o=s.split(",");o[o.length-1]+="{"+i+"}";var a=Cn(r);return r.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function Ro(n,t){if(!n)return[];t=t||{};var e=t.max==null?1/0:t.max;return n.substr(0,2)==="{}"&&(n="\\{\\}"+n.substr(2)),zt(To(n),e,!0).map(Fo)}function Mo(n){return"{"+n+"}"}function jo(n){return/^-?0\d/.test(n)}function Po(n,t){return n<=t}function Do(n,t){return n>=t}function zt(n,t,e){var s=[],i=vn("{","}",n);if(!i)return[n];var r=i.pre,o=i.post.length?zt(i.post,t,!1):[""];if(/\$$/.test(i.pre))for(var a=0;a<o.length&&a<t;a++){var l=r+"{"+i.body+"}"+o[a];s.push(l)}else{var h=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),c=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),u=h||c,f=i.body.indexOf(",")>=0;if(!u&&!f)return i.post.match(/,(?!,).*\}/)?(n=i.pre+"{"+i.body+$s+i.post,zt(n,t,!0)):[n];var d;if(u)d=i.body.split(/\.\./);else if(d=Cn(i.body),d.length===1&&(d=zt(d[0],t,!1).map(Mo),d.length===1))return o.map(function(_r){return i.pre+d[0]+_r});var g;if(u){var p=ks(d[0]),b=ks(d[1]),y=Math.max(d[0].length,d[1].length),v=d.length==3?Math.max(Math.abs(ks(d[2])),1):1,x=Po,_=b<p;_&&(v*=-1,x=Do);var $=d.some(jo);g=[];for(var J=p;x(J,b)&&g.length<t;J+=v){var k;if(c)k=String.fromCharCode(J),k==="\\"&&(k="");else if(k=String(J),$){var bt=y-k.length;if(bt>0){var _t=new Array(bt+1).join("0");J<0?k="-"+_t+k.slice(1):k=_t+k}}g.push(k)}}else{g=[];for(var et=0;et<d.length;et++)g.push.apply(g,zt(d[et],t,!1))}for(var et=0;et<g.length;et++)for(var a=0;a<o.length&&s.length<t;a++){var l=r+g[et]+o[a];(!e||u||l)&&s.push(l)}}return s}});var li=P(ai(),1),{program:al,createCommand:ll,createArgument:hl,createOption:cl,CommanderError:ul,InvalidArgumentError:fl,InvalidOptionArgumentError:dl,Command:hi,Argument:pl,Option:ml,Help:gl}=li.default;var fn=P(require("http")),S=P(require("fs")),j=P(require("path")),dn=P(_i());var W=P(require("fs")),ut=P(require("path")),Ei=P(require("os")),fs=ut.join(Ei.homedir(),".hyv"),Ci=ut.join(fs,"credentials.json"),us=ut.join(fs,"profiles");function Oi(n){W.existsSync(n)||W.mkdirSync(n,{recursive:!0})}function Ct(){let n=process.env.HYV_API_KEY;if(n)return{api_key:n,base_url:process.env.HYV_BASE_URL||"https://holdyourvoice.com"};try{let t=W.readFileSync(Ci,"utf-8"),e=JSON.parse(t);return e.api_key?e:null}catch{return null}}function de(n){Oi(fs),W.writeFileSync(Ci,JSON.stringify(n,null,2))}function pe(){let n=ut.join(process.cwd(),".hyv.yml");if(!W.existsSync(n))return{};try{let t=W.readFileSync(n,"utf-8"),e={};for(let s of t.split(`
|
|
29
29
|
`)){let i=s.trim();if(!i||i.startsWith("#"))continue;let r=i.indexOf(":");if(r===-1)continue;let o=i.slice(0,r).trim(),a=i.slice(r+1).trim();o==="profile"?e.profile=a:o==="scan_paths"?e.scan_paths=a.split(",").map(l=>l.trim()):o==="ignore"&&(e.ignore=a.split(",").map(l=>l.trim()))}return e}catch{return{}}}function ds(n){let t=ut.join(process.cwd(),".hyv.yml"),e=["# hold your voice \u2014 project config"];n.profile&&e.push(`profile: ${n.profile}`),n.scan_paths?.length&&e.push(`scan_paths: ${n.scan_paths.join(", ")}`),W.writeFileSync(t,e.join(`
|
|
30
30
|
`)+`
|
|
31
31
|
`)}function Ai(n){let t=ut.join(us,`${n}.md`);try{return W.readFileSync(t,"utf-8")}catch{return null}}function ki(n,t){Oi(us),W.writeFileSync(ut.join(us,`${n}.md`),t)}var so="https://holdyourvoice.com";async function $i(n,t,e){let s=Ct();if(!s)throw new Error("Not authenticated. Run: hyv init");let i=`${s.base_url||so}${t}`,r={method:n,headers:{Authorization:`Bearer ${s.api_key}`,"Content-Type":"application/json"}};e&&(r.body=JSON.stringify(e));let o=await fetch(i,r);if(o.status===401)throw new Error("Session expired. Run: hyv init");if(o.status===403)throw new Error("Access denied. Check your subscription at holdyourvoice.com/dashboard");if(!o.ok){let a=await o.text().catch(()=>"");throw new Error(`API error (${o.status}): ${a.slice(0,200)}`)}return o.json()}function st(n){return $i("GET",n)}function ps(n,t){return $i("POST",n,t)}var at=P(hn()),m={dim:n=>at.default.dim(n),bold:n=>at.default.bold(n),accent:n=>at.default.hex("#C4441A")(n),green:n=>at.default.green(n),red:n=>at.default.red(n),yellow:n=>at.default.yellow(n),cyan:n=>at.default.cyan(n),white:n=>at.default.white(n)};function H(){return`${m.bold("hold your ")}${m.accent("voice")}`}function cn(n){let t=n.severity==="red"?m.red("\u25CF"):m.yellow("\u25CF"),e=m.dim(`${n.file}:${n.line}`),s=m.dim(n.pattern);console.log(` ${t} ${e} ${s}`),console.log(` ${n.excerpt}`)}function un(n){if(console.log(""),console.log(` ${m.bold("scanned")} ${m.cyan(String(n.files))} files, ${m.cyan(String(n.total_lines))} lines`),n.red+n.yellow===0)console.log(` ${m.green("\u2713 clean \u2014 no issues found")}`);else{let t=[];n.red&&t.push(m.red(`${n.red} critical`)),n.yellow&&t.push(m.yellow(`${n.yellow} advisory`)),console.log(` ${t.join(", ")}`)}}var Tt=process.env.HYV_BASE_URL||"https://holdyourvoice.com",Cs=`# Hold Your Voice \u2014 Agent Command
|
|
@@ -130,4 +130,4 @@ ${"\u2500".repeat(60)}`),console.log(u),console.log(`${"\u2500".repeat(60)}
|
|
|
130
130
|
`);try{await ps("/cli/learning/reinforce",{original:e,edited:s}),console.log(` ${m.green("\u2713")} learning signal sent`)}catch(i){console.log(` ${m.red("\u2717")} failed: ${i.message}`),process.exit(1)}}async function Sr(n,t){wt.existsSync(n)||(console.log(`
|
|
131
131
|
${m.red("\u2717")} file not found: ${n}`),process.exit(1));let e=wt.readFileSync(n,"utf-8");console.log(`
|
|
132
132
|
${H()} ${m.dim("add sample")}
|
|
133
|
-
`);try{await ps("/cli/learning/add",{text:e,profile:t.profile}),console.log(` ${m.green("\u2713")} sample added${t.profile?` to ${m.bold(t.profile)}`:""}`)}catch(s){console.log(` ${m.red("\u2717")} failed: ${s.message}`),process.exit(1)}}var ct=new hi;ct.name("hyv").description("hold your voice \u2014 voice gate layer for ai workflows").version("0.
|
|
133
|
+
`);try{await ps("/cli/learning/add",{text:e,profile:t.profile}),console.log(` ${m.green("\u2713")} sample added${t.profile?` to ${m.bold(t.profile)}`:""}`)}catch(s){console.log(` ${m.red("\u2717")} failed: ${s.message}`),process.exit(1)}}var ct=new hi;ct.name("hyv").description("hold your voice \u2014 voice gate layer for ai workflows").version("0.3.0");ct.command("init").description("authenticate and set up your project").option("-p, --profile <name>","set default voice profile").option("-k, --key <key>","use a license key directly").action(n=>pn(n.profile,{key:n.key}));ct.command("scan").description("scan local .md files for ai patterns and voice drift").argument("[paths...]","files or directories to scan").option("--json","output as json").option("--fail-on-hit","exit with code 1 if issues found").action((n,t)=>gr(n,t));ct.command("rewrite").description("generate a rewrite prompt for your ai agent").argument("[profile-or-file]","voice profile name or .md file").argument("[file]",".md file to rewrite").option("-o, --output <file>","write prompt to file instead of stdout").option("-t, --text <text>","inline text to rewrite (instead of file/stdin)").action((n,t,e)=>wr(n,t,e));ct.command("profiles").description("list your voice profiles").option("--json","output as json").action(n=>br(n));ct.command("status").description("show account and cli status").action(()=>vr());ct.command("reinforce").description("send learning signals from an edited draft").argument("<original>","original .md file").argument("<edited>","edited .md file").action((n,t)=>xr(n,t));ct.command("add").description("add a writing sample to your voice profile").argument("<file>",".md file to add as sample").option("-p, --profile <name>","target profile").action((n,t)=>Sr(n,t));ct.parse();
|