mcp-feedback-enhanced 1.0.4 → 1.0.6
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 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import{createRequire}from'module';const require=createRequire(import.meta.url);
|
|
2
3
|
var dv=Object.create;var ia=Object.defineProperty;var fv=Object.getOwnPropertyDescriptor;var pv=Object.getOwnPropertyNames;var mv=Object.getPrototypeOf,hv=Object.prototype.hasOwnProperty;var _e=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var k=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),df=(t,e)=>{for(var r in e)ia(t,r,{get:e[r],enumerable:!0})},gv=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of pv(e))!hv.call(t,o)&&o!==r&&ia(t,o,{get:()=>e[o],enumerable:!(n=fv(e,o))||n.enumerable});return t};var mr=(t,e,r)=>(r=t!=null?dv(mv(t)):{},gv(e||!t||!t.__esModule?ia(r,"default",{value:t,enumerable:!0}):r,t));var _o=k(X=>{"use strict";Object.defineProperty(X,"__esModule",{value:!0});X.regexpCode=X.getEsmExportName=X.getProperty=X.safeStringify=X.stringify=X.strConcat=X.addCodeArg=X.str=X._=X.nil=X._Code=X.Name=X.IDENTIFIER=X._CodeOrName=void 0;var ho=class{};X._CodeOrName=ho;X.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var kr=class extends ho{constructor(e){if(super(),!X.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};X.Name=kr;var rt=class extends ho{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof kr&&(r[n.str]=(r[n.str]||0)+1),r),{})}};X._Code=rt;X.nil=new rt("");function rh(t,...e){let r=[t[0]],n=0;for(;n<e.length;)Wu(r,e[n]),r.push(t[++n]);return new rt(r)}X._=rh;var Hu=new rt("+");function nh(t,...e){let r=[go(t[0])],n=0;for(;n<e.length;)r.push(Hu),Wu(r,e[n]),r.push(Hu,go(t[++n]));return Tw(r),new rt(r)}X.str=nh;function Wu(t,e){e instanceof rt?t.push(...e._items):e instanceof kr?t.push(e):t.push(Iw(e))}X.addCodeArg=Wu;function Tw(t){let e=1;for(;e<t.length-1;){if(t[e]===Hu){let r=Pw(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function Pw(t,e){if(e==='""')return t;if(t==='""')return e;if(typeof t=="string")return e instanceof kr||t[t.length-1]!=='"'?void 0:typeof e!="string"?`${t.slice(0,-1)}${e}"`:e[0]==='"'?t.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(t instanceof kr))return`"${t}${e.slice(1)}`}function Rw(t,e){return e.emptyStr()?t:t.emptyStr()?e:nh`${t}${e}`}X.strConcat=Rw;function Iw(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:go(Array.isArray(t)?t.join(","):t)}function Ow(t){return new rt(go(t))}X.stringify=Ow;function go(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}X.safeStringify=go;function Nw(t){return typeof t=="string"&&X.IDENTIFIER.test(t)?new rt(`.${t}`):rh`[${t}]`}X.getProperty=Nw;function Cw(t){if(typeof t=="string"&&X.IDENTIFIER.test(t))return new rt(`${t}`);throw new Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}X.getEsmExportName=Cw;function Zw(t){return new rt(t.toString())}X.regexpCode=Zw});var Ju=k(Le=>{"use strict";Object.defineProperty(Le,"__esModule",{value:!0});Le.ValueScope=Le.ValueScopeName=Le.Scope=Le.varKinds=Le.UsedValueState=void 0;var qe=_o(),Gu=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},Qs;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(Qs||(Le.UsedValueState=Qs={}));Le.varKinds={const:new qe.Name("const"),let:new qe.Name("let"),var:new qe.Name("var")};var ei=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof qe.Name?e:this.name(e)}name(e){return new qe.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Le.Scope=ei;var ti=class extends qe.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,qe._)`.${new qe.Name(r)}[${n}]`}};Le.ValueScopeName=ti;var jw=(0,qe._)`\n`,Ku=class extends ei{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?jw:qe.nil}}get(){return this._scope}name(e){return new ti(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(e),{prefix:s}=o,i=(n=r.key)!==null&&n!==void 0?n:r.ref,a=this._values[s];if(a){let d=a.get(i);if(d)return d}else a=this._values[s]=new Map;a.set(i,o);let c=this._scope[s]||(this._scope[s]=[]),u=c.length;return c[u]=r.ref,o.setValue(r,{property:s,itemIndex:u}),o}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,qe._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(e,r,n={},o){let s=qe.nil;for(let i in e){let a=e[i];if(!a)continue;let c=n[i]=n[i]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,Qs.Started);let d=r(u);if(d){let l=this.opts.es5?Le.varKinds.var:Le.varKinds.const;s=(0,qe._)`${s}${l} ${u} = ${d};${this.opts._n}`}else if(d=o?.(u))s=(0,qe._)`${s}${d}${this.opts._n}`;else throw new Gu(u);c.set(u,Qs.Completed)})}return s}};Le.ValueScope=Ku});var U=k(V=>{"use strict";Object.defineProperty(V,"__esModule",{value:!0});V.or=V.and=V.not=V.CodeGen=V.operators=V.varKinds=V.ValueScopeName=V.ValueScope=V.Scope=V.Name=V.regexpCode=V.stringify=V.getProperty=V.nil=V.strConcat=V.str=V._=void 0;var J=_o(),ft=Ju(),er=_o();Object.defineProperty(V,"_",{enumerable:!0,get:function(){return er._}});Object.defineProperty(V,"str",{enumerable:!0,get:function(){return er.str}});Object.defineProperty(V,"strConcat",{enumerable:!0,get:function(){return er.strConcat}});Object.defineProperty(V,"nil",{enumerable:!0,get:function(){return er.nil}});Object.defineProperty(V,"getProperty",{enumerable:!0,get:function(){return er.getProperty}});Object.defineProperty(V,"stringify",{enumerable:!0,get:function(){return er.stringify}});Object.defineProperty(V,"regexpCode",{enumerable:!0,get:function(){return er.regexpCode}});Object.defineProperty(V,"Name",{enumerable:!0,get:function(){return er.Name}});var si=Ju();Object.defineProperty(V,"Scope",{enumerable:!0,get:function(){return si.Scope}});Object.defineProperty(V,"ValueScope",{enumerable:!0,get:function(){return si.ValueScope}});Object.defineProperty(V,"ValueScopeName",{enumerable:!0,get:function(){return si.ValueScopeName}});Object.defineProperty(V,"varKinds",{enumerable:!0,get:function(){return si.varKinds}});V.operators={GT:new J._Code(">"),GTE:new J._Code(">="),LT:new J._Code("<"),LTE:new J._Code("<="),EQ:new J._Code("==="),NEQ:new J._Code("!=="),NOT:new J._Code("!"),OR:new J._Code("||"),AND:new J._Code("&&"),ADD:new J._Code("+")};var Zt=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Yu=class extends Zt{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?ft.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=ln(this.rhs,e,r)),this}get names(){return this.rhs instanceof J._CodeOrName?this.rhs.names:{}}},ri=class extends Zt{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof J.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=ln(this.rhs,e,r),this}get names(){let e=this.lhs instanceof J.Name?{}:{...this.lhs.names};return oi(e,this.rhs)}},Xu=class extends ri{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Qu=class extends Zt{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},el=class extends Zt{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},tl=class extends Zt{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},rl=class extends Zt{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=ln(this.code,e,r),this}get names(){return this.code instanceof J._CodeOrName?this.code.names:{}}},yo=class extends Zt{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,o=n.length;for(;o--;){let s=n[o];s.optimizeNames(e,r)||(Mw(e,s.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>Er(e,r.names),{})}},jt=class extends yo{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},nl=class extends yo{},un=class extends jt{};un.kind="else";var Sr=class t extends jt{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new un(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(oh(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=ln(this.condition,e,r),this}get names(){let e=super.names;return oi(e,this.condition),this.else&&Er(e,this.else.names),e}};Sr.kind="if";var zr=class extends jt{};zr.kind="for";var ol=class extends zr{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=ln(this.iteration,e,r),this}get names(){return Er(super.names,this.iteration.names)}},sl=class extends zr{constructor(e,r,n,o){super(),this.varKind=e,this.name=r,this.from=n,this.to=o}render(e){let r=e.es5?ft.varKinds.var:this.varKind,{name:n,from:o,to:s}=this;return`for(${r} ${n}=${o}; ${n}<${s}; ${n}++)`+super.render(e)}get names(){let e=oi(super.names,this.from);return oi(e,this.to)}},ni=class extends zr{constructor(e,r,n,o){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=o}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=ln(this.iterable,e,r),this}get names(){return Er(super.names,this.iterable.names)}},vo=class extends jt{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};vo.kind="func";var bo=class extends yo{render(e){return"return "+super.render(e)}};bo.kind="return";var il=class extends jt{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,o;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(o=this.finally)===null||o===void 0||o.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&Er(e,this.catch.names),this.finally&&Er(e,this.finally.names),e}},xo=class extends jt{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};xo.kind="catch";var wo=class extends jt{render(e){return"finally"+super.render(e)}};wo.kind="finally";var al=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
3
4
|
`:""},this._extScope=e,this._scope=new ft.Scope({parent:e}),this._nodes=[new nl]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,o){let s=this._scope.toName(r);return n!==void 0&&o&&(this._constants[s.str]=n),this._leafNode(new Yu(e,s,n)),s}const(e,r,n){return this._def(ft.varKinds.const,e,r,n)}let(e,r,n){return this._def(ft.varKinds.let,e,r,n)}var(e,r,n){return this._def(ft.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new ri(e,r,n))}add(e,r){return this._leafNode(new Xu(e,V.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==J.nil&&this._leafNode(new rl(e)),this}object(...e){let r=["{"];for(let[n,o]of e)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,J.addCodeArg)(r,o));return r.push("}"),new J._Code(r)}if(e,r,n){if(this._blockNode(new Sr(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new Sr(e))}else(){return this._elseNode(new un)}endIf(){return this._endBlockNode(Sr,un)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new ol(e),r)}forRange(e,r,n,o,s=this.opts.es5?ft.varKinds.var:ft.varKinds.let){let i=this._scope.toName(e);return this._for(new sl(s,i,r,n),()=>o(i))}forOf(e,r,n,o=ft.varKinds.const){let s=this._scope.toName(e);if(this.opts.es5){let i=r instanceof J.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,J._)`${i}.length`,a=>{this.var(s,(0,J._)`${i}[${a}]`),n(s)})}return this._for(new ni("of",o,s,r),()=>n(s))}forIn(e,r,n,o=this.opts.es5?ft.varKinds.var:ft.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,J._)`Object.keys(${r})`,n);let s=this._scope.toName(e);return this._for(new ni("in",o,s,r),()=>n(s))}endFor(){return this._endBlockNode(zr)}label(e){return this._leafNode(new Qu(e))}break(e){return this._leafNode(new el(e))}return(e){let r=new bo;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(bo)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new il;if(this._blockNode(o),this.code(e),r){let s=this.name("e");this._currNode=o.catch=new xo(s),r(s)}return n&&(this._currNode=o.finally=new wo,this.code(n)),this._endBlockNode(xo,wo)}throw(e){return this._leafNode(new tl(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=J.nil,n,o){return this._blockNode(new vo(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(vo)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof Sr))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};V.CodeGen=al;function Er(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function oi(t,e){return e instanceof J._CodeOrName?Er(t,e.names):t}function ln(t,e,r){if(t instanceof J.Name)return n(t);if(!o(t))return t;return new J._Code(t._items.reduce((s,i)=>(i instanceof J.Name&&(i=n(i)),i instanceof J._Code?s.push(...i._items):s.push(i),s),[]));function n(s){let i=r[s.str];return i===void 0||e[s.str]!==1?s:(delete e[s.str],i)}function o(s){return s instanceof J._Code&&s._items.some(i=>i instanceof J.Name&&e[i.str]===1&&r[i.str]!==void 0)}}function Mw(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function oh(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,J._)`!${cl(t)}`}V.not=oh;var Aw=sh(V.operators.AND);function Dw(...t){return t.reduce(Aw)}V.and=Dw;var qw=sh(V.operators.OR);function Lw(...t){return t.reduce(qw)}V.or=Lw;function sh(t){return(e,r)=>e===J.nil?r:r===J.nil?e:(0,J._)`${cl(e)} ${t} ${cl(r)}`}function cl(t){return t instanceof J.Name?t:(0,J._)`(${t})`}});var Q=k(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.checkStrictMode=B.getErrorPath=B.Type=B.useFunc=B.setEvaluated=B.evaluatedPropsToName=B.mergeEvaluated=B.eachItem=B.unescapeJsonPointer=B.escapeJsonPointer=B.escapeFragment=B.unescapeFragment=B.schemaRefOrVal=B.schemaHasRulesButRef=B.schemaHasRules=B.checkUnknownRules=B.alwaysValidSchema=B.toHash=void 0;var ne=U(),Uw=_o();function Fw(t){let e={};for(let r of t)e[r]=!0;return e}B.toHash=Fw;function Vw(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(ch(t,e),!uh(e,t.self.RULES.all))}B.alwaysValidSchema=Vw;function ch(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let o=n.RULES.keywords;for(let s in e)o[s]||fh(t,`unknown keyword: "${s}"`)}B.checkUnknownRules=ch;function uh(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}B.schemaHasRules=uh;function Bw(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}B.schemaHasRulesButRef=Bw;function Hw({topSchemaRef:t,schemaPath:e},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,ne._)`${r}`}return(0,ne._)`${t}${e}${(0,ne.getProperty)(n)}`}B.schemaRefOrVal=Hw;function Ww(t){return lh(decodeURIComponent(t))}B.unescapeFragment=Ww;function Gw(t){return encodeURIComponent(ll(t))}B.escapeFragment=Gw;function ll(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}B.escapeJsonPointer=ll;function lh(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}B.unescapeJsonPointer=lh;function Kw(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}B.eachItem=Kw;function ih({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(o,s,i,a)=>{let c=i===void 0?s:i instanceof ne.Name?(s instanceof ne.Name?t(o,s,i):e(o,s,i),i):s instanceof ne.Name?(e(o,i,s),s):r(s,i);return a===ne.Name&&!(c instanceof ne.Name)?n(o,c):c}}B.mergeEvaluated={props:ih({mergeNames:(t,e,r)=>t.if((0,ne._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,ne._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,ne._)`${r} || {}`).code((0,ne._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,ne._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,ne._)`${r} || {}`),dl(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:dh}),items:ih({mergeNames:(t,e,r)=>t.if((0,ne._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,ne._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,ne._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,ne._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function dh(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,ne._)`{}`);return e!==void 0&&dl(t,r,e),r}B.evaluatedPropsToName=dh;function dl(t,e,r){Object.keys(r).forEach(n=>t.assign((0,ne._)`${e}${(0,ne.getProperty)(n)}`,!0))}B.setEvaluated=dl;var ah={};function Jw(t,e){return t.scopeValue("func",{ref:e,code:ah[e.code]||(ah[e.code]=new Uw._Code(e.code))})}B.useFunc=Jw;var ul;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(ul||(B.Type=ul={}));function Yw(t,e,r){if(t instanceof ne.Name){let n=e===ul.Num;return r?n?(0,ne._)`"[" + ${t} + "]"`:(0,ne._)`"['" + ${t} + "']"`:n?(0,ne._)`"/" + ${t}`:(0,ne._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,ne.getProperty)(t).toString():"/"+ll(t)}B.getErrorPath=Yw;function fh(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}B.checkStrictMode=fh});var Mt=k(fl=>{"use strict";Object.defineProperty(fl,"__esModule",{value:!0});var Re=U(),Xw={data:new Re.Name("data"),valCxt:new Re.Name("valCxt"),instancePath:new Re.Name("instancePath"),parentData:new Re.Name("parentData"),parentDataProperty:new Re.Name("parentDataProperty"),rootData:new Re.Name("rootData"),dynamicAnchors:new Re.Name("dynamicAnchors"),vErrors:new Re.Name("vErrors"),errors:new Re.Name("errors"),this:new Re.Name("this"),self:new Re.Name("self"),scope:new Re.Name("scope"),json:new Re.Name("json"),jsonPos:new Re.Name("jsonPos"),jsonLen:new Re.Name("jsonLen"),jsonPart:new Re.Name("jsonPart")};fl.default=Xw});var $o=k(Ie=>{"use strict";Object.defineProperty(Ie,"__esModule",{value:!0});Ie.extendErrors=Ie.resetErrorsCount=Ie.reportExtraError=Ie.reportError=Ie.keyword$DataError=Ie.keywordError=void 0;var Y=U(),ii=Q(),Me=Mt();Ie.keywordError={message:({keyword:t})=>(0,Y.str)`must pass "${t}" keyword validation`};Ie.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,Y.str)`"${t}" keyword must be ${e} ($data)`:(0,Y.str)`"${t}" keyword is invalid ($data)`};function Qw(t,e=Ie.keywordError,r,n){let{it:o}=t,{gen:s,compositeRule:i,allErrors:a}=o,c=hh(t,e,r);n??(i||a)?ph(s,c):mh(o,(0,Y._)`[${c}]`)}Ie.reportError=Qw;function e$(t,e=Ie.keywordError,r){let{it:n}=t,{gen:o,compositeRule:s,allErrors:i}=n,a=hh(t,e,r);ph(o,a),s||i||mh(n,Me.default.vErrors)}Ie.reportExtraError=e$;function t$(t,e){t.assign(Me.default.errors,e),t.if((0,Y._)`${Me.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,Y._)`${Me.default.vErrors}.length`,e),()=>t.assign(Me.default.vErrors,null)))}Ie.resetErrorsCount=t$;function r$({gen:t,keyword:e,schemaValue:r,data:n,errsCount:o,it:s}){if(o===void 0)throw new Error("ajv implementation error");let i=t.name("err");t.forRange("i",o,Me.default.errors,a=>{t.const(i,(0,Y._)`${Me.default.vErrors}[${a}]`),t.if((0,Y._)`${i}.instancePath === undefined`,()=>t.assign((0,Y._)`${i}.instancePath`,(0,Y.strConcat)(Me.default.instancePath,s.errorPath))),t.assign((0,Y._)`${i}.schemaPath`,(0,Y.str)`${s.errSchemaPath}/${e}`),s.opts.verbose&&(t.assign((0,Y._)`${i}.schema`,r),t.assign((0,Y._)`${i}.data`,n))})}Ie.extendErrors=r$;function ph(t,e){let r=t.const("err",e);t.if((0,Y._)`${Me.default.vErrors} === null`,()=>t.assign(Me.default.vErrors,(0,Y._)`[${r}]`),(0,Y._)`${Me.default.vErrors}.push(${r})`),t.code((0,Y._)`${Me.default.errors}++`)}function mh(t,e){let{gen:r,validateName:n,schemaEnv:o}=t;o.$async?r.throw((0,Y._)`new ${t.ValidationError}(${e})`):(r.assign((0,Y._)`${n}.errors`,e),r.return(!1))}var Tr={keyword:new Y.Name("keyword"),schemaPath:new Y.Name("schemaPath"),params:new Y.Name("params"),propertyName:new Y.Name("propertyName"),message:new Y.Name("message"),schema:new Y.Name("schema"),parentSchema:new Y.Name("parentSchema")};function hh(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,Y._)`{}`:n$(t,e,r)}function n$(t,e,r={}){let{gen:n,it:o}=t,s=[o$(o,r),s$(t,r)];return i$(t,e,s),n.object(...s)}function o$({errorPath:t},{instancePath:e}){let r=e?(0,Y.str)`${t}${(0,ii.getErrorPath)(e,ii.Type.Str)}`:t;return[Me.default.instancePath,(0,Y.strConcat)(Me.default.instancePath,r)]}function s$({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let o=n?e:(0,Y.str)`${e}/${t}`;return r&&(o=(0,Y.str)`${o}${(0,ii.getErrorPath)(r,ii.Type.Str)}`),[Tr.schemaPath,o]}function i$(t,{params:e,message:r},n){let{keyword:o,data:s,schemaValue:i,it:a}=t,{opts:c,propertyName:u,topSchemaRef:d,schemaPath:l}=a;n.push([Tr.keyword,o],[Tr.params,typeof e=="function"?e(t):e||(0,Y._)`{}`]),c.messages&&n.push([Tr.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([Tr.schema,i],[Tr.parentSchema,(0,Y._)`${d}${l}`],[Me.default.data,s]),u&&n.push([Tr.propertyName,u])}});var _h=k(dn=>{"use strict";Object.defineProperty(dn,"__esModule",{value:!0});dn.boolOrEmptySchema=dn.topBoolOrEmptySchema=void 0;var a$=$o(),c$=U(),u$=Mt(),l$={message:"boolean schema is false"};function d$(t){let{gen:e,schema:r,validateName:n}=t;r===!1?gh(t,!1):typeof r=="object"&&r.$async===!0?e.return(u$.default.data):(e.assign((0,c$._)`${n}.errors`,null),e.return(!0))}dn.topBoolOrEmptySchema=d$;function f$(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),gh(t)):r.var(e,!0)}dn.boolOrEmptySchema=f$;function gh(t,e){let{gen:r,data:n}=t,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,a$.reportError)(o,l$,void 0,e)}});var pl=k(fn=>{"use strict";Object.defineProperty(fn,"__esModule",{value:!0});fn.getRules=fn.isJSONType=void 0;var p$=["string","number","integer","boolean","null","object","array"],m$=new Set(p$);function h$(t){return typeof t=="string"&&m$.has(t)}fn.isJSONType=h$;function g$(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}fn.getRules=g$});var ml=k(tr=>{"use strict";Object.defineProperty(tr,"__esModule",{value:!0});tr.shouldUseRule=tr.shouldUseGroup=tr.schemaHasRulesForType=void 0;function _$({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&yh(t,n)}tr.schemaHasRulesForType=_$;function yh(t,e){return e.rules.some(r=>vh(t,r))}tr.shouldUseGroup=yh;function vh(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}tr.shouldUseRule=vh});var ko=k(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.reportTypeError=Oe.checkDataTypes=Oe.checkDataType=Oe.coerceAndCheckDataType=Oe.getJSONTypes=Oe.getSchemaTypes=Oe.DataType=void 0;var y$=pl(),v$=ml(),b$=$o(),L=U(),bh=Q(),pn;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(pn||(Oe.DataType=pn={}));function x$(t){let e=xh(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}Oe.getSchemaTypes=x$;function xh(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(y$.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Oe.getJSONTypes=xh;function w$(t,e){let{gen:r,data:n,opts:o}=t,s=$$(e,o.coerceTypes),i=e.length>0&&!(s.length===0&&e.length===1&&(0,v$.schemaHasRulesForType)(t,e[0]));if(i){let a=gl(e,n,o.strictNumbers,pn.Wrong);r.if(a,()=>{s.length?k$(t,e,s):_l(t)})}return i}Oe.coerceAndCheckDataType=w$;var wh=new Set(["string","number","integer","boolean","null"]);function $$(t,e){return e?t.filter(r=>wh.has(r)||e==="array"&&r==="array"):[]}function k$(t,e,r){let{gen:n,data:o,opts:s}=t,i=n.let("dataType",(0,L._)`typeof ${o}`),a=n.let("coerced",(0,L._)`undefined`);s.coerceTypes==="array"&&n.if((0,L._)`${i} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,L._)`${o}[0]`).assign(i,(0,L._)`typeof ${o}`).if(gl(e,o,s.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(wh.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);n.else(),_l(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),S$(t,a)});function c(u){switch(u){case"string":n.elseIf((0,L._)`${i} == "number" || ${i} == "boolean"`).assign(a,(0,L._)`"" + ${o}`).elseIf((0,L._)`${o} === null`).assign(a,(0,L._)`""`);return;case"number":n.elseIf((0,L._)`${i} == "boolean" || ${o} === null
|
|
4
5
|
|| (${i} == "string" && ${o} && ${o} == +${o})`).assign(a,(0,L._)`+${o}`);return;case"integer":n.elseIf((0,L._)`${i} === "boolean" || ${o} === null
|
|
@@ -234,5 +235,5 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
234
235
|
}
|
|
235
236
|
</script>
|
|
236
237
|
</body>
|
|
237
|
-
</html>`}async function h1(t,e,r){return new Promise((n,o)=>{let s=sv.createServer();s.listen(0,"127.0.0.1",()=>{let i=s.address();if(!i||typeof i=="string"){o(new Error("Failed to start HTTP server"));return}let a=i.port;A(`Browser feedback server started on port ${a}`);let c=!1;s.on("request",(l,h)=>{if(l.method==="GET"&&l.url==="/")h.writeHead(200,{"Content-Type":"text/html"}),h.end(m1(e,a));else if(l.method==="POST"&&l.url==="/submit"){let m="";l.on("data",f=>m+=f),l.on("end",()=>{try{let f=JSON.parse(m);c=!0,h.writeHead(200,{"Content-Type":"application/json"}),h.end(JSON.stringify({success:!0})),setTimeout(()=>{s.close(),n({feedback:f.feedback||"",images:[]})},1e3)}catch{h.writeHead(400),h.end("Invalid request")}})}else h.writeHead(404),h.end("Not found")});let u=`http://127.0.0.1:${a}`;A(`Opening browser: ${u}`),p1(u);let d=setTimeout(()=>{c||(s.close(),o(new Error(`Browser feedback timeout after ${r} seconds`)))},r*1e3);s.on("close",()=>{clearTimeout(d)})}),s.on("error",i=>{o(new Error(`Failed to start browser feedback server: ${i.message}`))})})}var oa=new Di({name:"mcp-feedback-enhanced",version:iv});oa.tool("interactive_feedback","Collect feedback from user through VSCode extension panel. The feedback panel will display the AI summary and wait for user input.",{project_directory:rs().describe("The project directory path for context"),summary:rs().describe("Summary of AI work completed for user review"),timeout:_f().optional().default(
|
|
238
|
+
</html>`}async function h1(t,e,r){return new Promise((n,o)=>{let s=sv.createServer();s.listen(0,"127.0.0.1",()=>{let i=s.address();if(!i||typeof i=="string"){o(new Error("Failed to start HTTP server"));return}let a=i.port;A(`Browser feedback server started on port ${a}`);let c=!1;s.on("request",(l,h)=>{if(l.method==="GET"&&l.url==="/")h.writeHead(200,{"Content-Type":"text/html"}),h.end(m1(e,a));else if(l.method==="POST"&&l.url==="/submit"){let m="";l.on("data",f=>m+=f),l.on("end",()=>{try{let f=JSON.parse(m);c=!0,h.writeHead(200,{"Content-Type":"application/json"}),h.end(JSON.stringify({success:!0})),setTimeout(()=>{s.close(),n({feedback:f.feedback||"",images:[]})},1e3)}catch{h.writeHead(400),h.end("Invalid request")}})}else h.writeHead(404),h.end("Not found")});let u=`http://127.0.0.1:${a}`;A(`Opening browser: ${u}`),p1(u);let d=setTimeout(()=>{c||(s.close(),o(new Error(`Browser feedback timeout after ${r} seconds`)))},r*1e3);s.on("close",()=>{clearTimeout(d)})}),s.on("error",i=>{o(new Error(`Failed to start browser feedback server: ${i.message}`))})})}var oa=new Di({name:"mcp-feedback-enhanced",version:iv});oa.tool("interactive_feedback","Collect feedback from user through VSCode extension panel. The feedback panel will display the AI summary and wait for user input.",{project_directory:rs().describe("The project directory path for context"),summary:rs().describe("Summary of AI work completed for user review"),timeout:_f().optional().default(86400).describe("Timeout in seconds (default: 86400 = 24 hours)"),agent_name:rs().optional().describe('Unique identifier for this agent/chat session. You MUST provide this parameter with your current conversation/chat title or a short descriptive name of the task (e.g. "Chat 1", "Pre-credit Implementation", "Bug Fix #123"). If not provided, defaults to "Agent" and all messages will appear in the same tab. Providing a unique name allows multiple agents to have separate conversation tabs.')},async({project_directory:t,summary:e,timeout:r,agent_name:n})=>{A(`interactive_feedback called: project=${t}, agent=${n||"default"}`);try{let o=await d1(t,e,r||86400,n),s=[{type:"text",text:`User Feedback:
|
|
238
239
|
${o.feedback}`}];if(o.images&&o.images.length>0){A(`Processing ${o.images.length} image(s)`);for(let i of o.images)i&&i.data&&(s.push({type:"image",data:i.data,mimeType:"image/png"}),A(`Added image: ${i.name||"unnamed"}`))}return{content:s}}catch(o){return A(`Feedback error: ${o.message}`),{content:[{type:"text",text:`Error: ${o.message}`}],isError:!0}}});oa.tool("get_system_info","Get system environment information",{},async()=>{let t={platform:Tt.platform(),hostname:Tt.hostname(),user:Tt.userInfo().username,homeDir:Tt.homedir(),nodeVersion:process.version,pid:process.pid,parentPid:process.ppid,extensionConnected:dr};return{content:[{type:"text",text:JSON.stringify(t,null,2)}]}});oa.resource("pending","feedback://pending",async t=>{let e=process.cwd();A(`Reading resource feedback://pending for project: ${e}`);try{let r=await f1(e);return{contents:[{uri:t.href,mimeType:"text/plain",text:r||"No pending comment."}]}}catch(r){return{contents:[{uri:t.href,mimeType:"text/plain",text:`Error fetching pending comment: ${r.message}`}],isError:!0}}});async function g1(){if(A("MCP Feedback Server starting..."),A(`PID: ${process.pid}, Parent PID: ${process.ppid}`),A(`Version: ${iv}`),av){console.error("[MCP Feedback] Environment:"),Object.keys(process.env).filter(r=>r.includes("CURSOR")||r.includes("VSCODE")||r.includes("MCP")).forEach(r=>console.error(` ${r}=${process.env[r]}`));let e=i1();console.error(`[MCP Feedback] Available servers: ${e.length}`),e.forEach(r=>{console.error(` - port=${r.port}, workspaces=${r.workspaces?.join(", ")}`)})}let t=new Li;await oa.connect(t),A("MCP Server running on stdio, will connect to Extension on first feedback request"),setInterval(()=>{Ne?.readyState===ta.OPEN&&Ne.send(JSON.stringify({type:"ping"}))},e1)}g1().catch(t=>{console.error("Fatal error:",t),process.exit(1)});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-feedback-enhanced",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "MCP Feedback Enhanced Server - Interactive feedback collection for AI assistants",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"url": "https://github.com/yuanmingchencn/mcp-feedback-enhanced-vscode/issues"
|
|
29
29
|
},
|
|
30
30
|
"scripts": {
|
|
31
|
-
"build": "esbuild src/index.ts --bundle --outfile=dist/index.js --platform=node --format=esm --target=node18 --minify",
|
|
31
|
+
"build": "esbuild src/index.ts --bundle --outfile=dist/index.js --platform=node --format=esm --target=node18 --minify --banner:js=\"import{createRequire}from'module';const require=createRequire(import.meta.url);\"",
|
|
32
32
|
"build:dev": "tsc",
|
|
33
33
|
"start": "node dist/index.js",
|
|
34
34
|
"dev": "tsx src/index.ts",
|