@enhance-eng/enhance-dev 0.1.7-dev.sha-a7e9194e5472 → 0.1.7-dev.sha-e44a8cce541b

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.mjs CHANGED
@@ -11,4 +11,4 @@ For transcript-led selection, inspect nearby --at-ms renders and reject transiti
11
11
  Preview first: canvas render --node-id rec_<recording-uuid> --at-ms <integer>, then inspect its PNG. This command persists the accepted moment.
12
12
  `).action(async e=>{let r=x.uuid().nullable().safeParse(e.clientToken??null),i=x.uuid().safeParse(e.recordingId);if(!r.success||!i.success)throw new t(`BAD_REQUEST`,`The recording id or client token is not a UUID.`,"Use the recording id from `recording list`; mint one client token per accepted moment.");n.output.result(await n.invocation.invoke({capability:M(n.catalog(),`recording.snapshot`),arguments:{canvasId:j(e.canvas),recordingId:i.data,atMs:Jr(e.atMs,`--at-ms`,!1),timeoutMs:Jr(e.timeoutMs,`--timeout-ms`,!0)},clientToken:r.data}))})},Xr=(e,n,r)=>{if(e!==`canvas.document.save`||typeof r!=`object`||!r||!(`outcome`in r)||r.outcome!==`conflict`)return r;throw new t(`CONFLICT`,`The canvas document changed before this save landed.`,`Run 'enhance canvas document get --canvas-id ${typeof n==`object`&&n&&`canvasId`in n&&typeof n.canvasId==`string`?n.canvasId:`<canvas-id>`}', merge your change into that document, then retry with its version.`)},Zr=(e,t)=>ze(e,e=>({[e]:{query:async n=>t.query(e,n),mutate:async n=>Xr(e,n,await t.mutate(e,n))}})),Qr=(e,n)=>{let r=e.commands.find(e=>e.name()===`transcript`);if(r===void 0)throw TypeError(`the API router did not supply transcript commands`);r.command(`get`).description(`Read timestamped speech cues as candidate moments; render and inspect candidate PNGs before snapshotting.`).requiredOption(`--canvas <url-or-id>`,`Canvas URL or UUID containing the recording.`).requiredOption(`--recording-id <uuid>`,`Recording UUID returned by recording list.`).action(async e=>{let r=x.uuid().safeParse(e.recordingId);if(!r.success)throw new t(`BAD_REQUEST`,`--recording-id must be a UUID.`,"Use the recording id returned by `enhance recording list`.");n.output.result(await n.invocation.invoke({capability:M(n.catalog(),`transcript.read`),arguments:{canvasId:j(e.canvas),recordingId:r.data},clientToken:null}))})},$r={jsonInput:`auto`,prompts:!1,logger:`ndjson`,errorMapping:`stable-exit-codes`},ei=e=>{let t=e.state;return{logger:e.output.logger,prompts:$r.prompts,process:mr(),formatError:e=>{let n=h(e,t.pendingParserMessage);return t.exitCode=v(n,!1,e),t.pendingParserMessage=null,JSON.stringify(n)}}},ti=e=>typeof e==`object`&&e&&!Array.isArray(e)?Object.fromEntries(Object.entries(e)):null,ni=e=>{let t=ti(e),n=t===null?void 0:t.description;return typeof n==`string`&&n!==``?n:null},ri=e=>{let t=Ee({router:e});return{descriptions:new Map(t.flatMap(([e,t])=>{let n=ni(t.meta);return n===null?[]:[[e,n]]})),mutationPaths:new Set(t.flatMap(([e,t])=>t.type===`mutation`?[e]:[]))}},ii=()=>{let e=null;return()=>(e??=ie(),e)},ai=(e,t,n)=>{let r=Xe(t.remote),i=ve({remote:t.remote,mutationKey:t.mutationKey,configDirectory:t.configDirectory,now:()=>new Date,progress:t.output.result});et(e,ge(t.credentials,t.remote,pe(t.remote)),t.output),Nr(e,i,n,t.output),Pr(e,{version:t.version,credentials:t.credentials,remote:t.remote,output:t.output}),Ur(e,{screen:r,recording:Je(t.remote),world:Ze(t.remote,r)},t.output),Mr(e,t.output,n),dr(e,{remote:t.remote,mutationKey:t.mutationKey,invocation:i,catalog:n,output:t.output,configDirectory:t.configDirectory,now:()=>new Date}),Yr(e,{invocation:i,catalog:n,output:t.output}),qr(e,i,n,t.output),Qr(e,{invocation:i,catalog:n,output:t.output})},oi=e=>{let t=fe(),n=ii(),{descriptions:r,mutationPaths:i}=ri(t),a=Te({router:Zr(t,e.remote),name:e.commandName,version:e.version,description:`Operate Enhance as the authenticated person.`,jsonInput:$r.jsonInput}),o=ei(e),s=a.buildProgram(o);if(!(s instanceof we))throw TypeError(`trpc-cli did not return a Commander program`);kr(s),ai(s,e,n),Tr(s,{descriptions:r,mutationPaths:i,mutationKey:e.mutationKey,output:e.output}),s.description(`Operate Enhance as the authenticated person.`);let c=e.state;return{program:s,run:async()=>{try{await a.run(o,s)}catch(t){if(!(t instanceof m))throw t;if(t.requestedCode!==0&&c.pendingParserMessage!==null){let n=h(t,c.pendingParserMessage);c.exitCode=v(n,!0),c.pendingParserMessage=null,e.output.failure(n)}throw t}}}},si=e=>S.exit(e),Z=36e5,Q=e=>typeof e==`object`&&!!e&&!Array.isArray(e),ci=e=>{if(Array.isArray(e))return e.map(e=>JSON.stringify(e));if(!Q(e)||!Array.isArray(e.items))return[JSON.stringify(e)];let t=e.items;if(t.length===0)return[JSON.stringify(e)];let n=e.truncated===!0;return t.map(e=>JSON.stringify(Q(e)?{...e,truncated:n}:{value:e,truncated:n}))},li=e=>{let t=`${e.join(`
13
13
  `)}\n`;if(!(t.length>25e3||e.some(e=>e.length>2e3))){S.stdout.write(t);return}let n=Le(`sha256`).update(t).digest(`hex`).slice(0,16),r=T.join(Oe(),`enhance-${n}.ndjson`);w(r,t,{mode:384}),S.stdout.write(`${JSON.stringify({path:r,characters:t.length,records:e.length})}\n`)},ui=e=>{try{let t=new URL(e),n=new Set;for(let e of t.searchParams.keys())n.add(e.toLowerCase());return n.has(`x-amz-signature`)||n.has(`x-amz-credential`)||n.has(`x-amz-algorithm`)}catch{return!1}},$=e=>typeof e==`string`?ui(e):Array.isArray(e)?e.some(e=>$(e)):Q(e)?Object.values(e).some(e=>$(e)):!1,di=e=>{Ne(e,{recursive:!0,mode:448}),Ae(e,448)},fi=e=>{if(!je(e))return;let t=Date.now()-Z,n=Fe(e,{withFileTypes:!0});for(let r of n){if(!r.isFile()||!r.name.startsWith(`result-`))continue;let n=T.join(e,r.name);Me(n).mtimeMs<t&&Ie(n)}},pi=e=>({...e,sensitive:!0,cleanup:`unlink-after-use`,deleteAfter:new Date(Date.now()+Z).toISOString()}),mi=(e,t)=>{let n=ci(e),r=`${n.join(`
14
- `)}\n`;di(t);let i=T.join(t,`result-${E()}.ndjson`);w(i,r,{mode:384,flag:`wx`}),S.stdout.write(`${JSON.stringify(pi({path:i,characters:r.length,records:n.length,reason:`signed-url`}))}\n`)},hi=e=>Q(e)?typeof e.token==`string`?{field:`token`,value:e.token}:typeof e.acceptToken==`string`?{field:`acceptToken`,value:e.acceptToken}:null:null,gi=(e,t,n)=>{let r=`${t.value}\n`;di(n);let i=T.join(n,`result-${E()}.token`);w(i,r,{mode:384,flag:`wx`});let a=Object.fromEntries(Object.entries(e).filter(([e])=>e!==t.field));S.stdout.write(`${JSON.stringify({...a,secret:pi({path:i,field:t.field,characters:r.length})})}\n`)},_i=e=>e.includes(`Usage:`)||e.includes(`Options:`)||e.includes(`Commands:`),vi=l.omit({fields:!0}).extend({remediation:x.string(),fields:x.array(x.object({path:x.string(),message:x.string()})).optional()}),yi=e=>{try{let t=JSON.parse(e),n=vi.safeParse(t);return n.success?{code:n.data.code,message:n.data.message,remediation:n.data.remediation,...n.data.fields!==void 0&&{fields:n.data.fields}}:null}catch{return null}},bi=(e,t)=>{if(typeof e==`string`&&_i(e)){S.stdout.write(e);return}let n=hi(e);if(n!==null&&Q(e)){gi(e,n,t);return}if($(e)){mi(e,t);return}li(ci(e))},xi=e=>{S.stderr.write(`${JSON.stringify(e)}\n`)},Si=(e,t,n=`enhance`)=>{let r=e,i=T.join(t,`sensitive`);return fi(i),{result:e=>{bi(g(e,n),i)},failure:e=>{xi(ue(e,n))},logger:{info:(...e)=>{bi(g(e.length===1?e[0]:e,n),i)},error:(...e)=>{let t=String(g(e.map(String).join(``),n)),i=yi(t);i===null?r.pendingParserMessage=t:xi(i)}}}};(async()=>{let e={exitCode:1,pendingParserMessage:null},t=Si(e,y.configDirectory,y.commandName),n=ye(y.configDirectory),r=xe(),i=oi({version:`0.1.7-dev.sha-a7e9194e5472`,credentials:n,remote:_e(y.apiUrl,n,r),mutationKey:r,output:t,state:e,configDirectory:y.configDirectory,commandName:y.commandName});try{await i.run()}catch(n){n instanceof m&&si(n.requestedCode===0?0:e.exitCode),t.failure(h(n,null)),si(1)}})();export{};
14
+ `)}\n`;di(t);let i=T.join(t,`result-${E()}.ndjson`);w(i,r,{mode:384,flag:`wx`}),S.stdout.write(`${JSON.stringify(pi({path:i,characters:r.length,records:n.length,reason:`signed-url`}))}\n`)},hi=e=>Q(e)?typeof e.token==`string`?{field:`token`,value:e.token}:typeof e.acceptToken==`string`?{field:`acceptToken`,value:e.acceptToken}:null:null,gi=(e,t,n)=>{let r=`${t.value}\n`;di(n);let i=T.join(n,`result-${E()}.token`);w(i,r,{mode:384,flag:`wx`});let a=Object.fromEntries(Object.entries(e).filter(([e])=>e!==t.field));S.stdout.write(`${JSON.stringify({...a,secret:pi({path:i,field:t.field,characters:r.length})})}\n`)},_i=e=>e.includes(`Usage:`)||e.includes(`Options:`)||e.includes(`Commands:`),vi=l.omit({fields:!0}).extend({remediation:x.string(),fields:x.array(x.object({path:x.string(),message:x.string()})).optional()}),yi=e=>{try{let t=JSON.parse(e),n=vi.safeParse(t);return n.success?{code:n.data.code,message:n.data.message,remediation:n.data.remediation,...n.data.fields!==void 0&&{fields:n.data.fields}}:null}catch{return null}},bi=(e,t)=>{if(typeof e==`string`&&_i(e)){S.stdout.write(e);return}let n=hi(e);if(n!==null&&Q(e)){gi(e,n,t);return}if($(e)){mi(e,t);return}li(ci(e))},xi=e=>{S.stderr.write(`${JSON.stringify(e)}\n`)},Si=(e,t,n=`enhance`)=>{let r=e,i=T.join(t,`sensitive`);return fi(i),{result:e=>{bi(g(e,n),i)},failure:e=>{xi(ue(e,n))},logger:{info:(...e)=>{bi(g(e.length===1?e[0]:e,n),i)},error:(...e)=>{let t=String(g(e.map(String).join(``),n)),i=yi(t);i===null?r.pendingParserMessage=t:xi(i)}}}};(async()=>{let e={exitCode:1,pendingParserMessage:null},t=Si(e,y.configDirectory,y.commandName),n=ye(y.configDirectory),r=xe(),i=oi({version:`0.1.7-dev.sha-e44a8cce541b`,credentials:n,remote:_e(y.apiUrl,n,r),mutationKey:r,output:t,state:e,configDirectory:y.configDirectory,commandName:y.commandName});try{await i.run()}catch(n){n instanceof m&&si(n.requestedCode===0?0:e.exitCode),t.failure(h(n,null)),si(1)}})();export{};
package/dist/mcp-main.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{f as e,l as t}from"./cli-output-identity.lib-COXLA7bt.mjs";import{a as n,f as r,i,n as a,o,r as s,t as c}from"./mutation-key.adapter-BhdfFChs.mjs";import{t as l}from"./mcp-server.adapter-CH7nbGxy.mjs";import{z as u}from"zod";import d from"node:process";import{serveStdio as f}from"@modelcontextprotocol/server/stdio";const p=new Set([`auth.login`,`auth.logout`,`auth.status`,`doctor`]),m=u.object({openBrowser:u.boolean()}),h=async e=>{let t=r(e.credentials,e.remote,n(e.remote));switch(e.capability){case`auth.login`:{let n=m.parse(e.arguments);return t.loginWithBrowser({label:`Agent plugin`,openBrowser:n.openBrowser,onReady:()=>null})}case`auth.logout`:return t.logout();case`auth.status`:return await e.credentials.read()===null?{authenticated:!1}:t.status();case`doctor`:{let[t,n]=await Promise.all([e.remote.health(),e.credentials.read()]);return{status:n!==null&&t.reachable?`ok`:`degraded`,runtimeVersion:e.version,api:{reachable:t.reachable,status:t.status},credential:{present:n!==null}}}default:throw TypeError(`${e.capability} has no MCP transport execution`)}},g=(e,t,n,r)=>{let i=a(e,t,c());return{invoke:async s=>{if(p.has(s.capability.id))return h({capability:s.capability.id,arguments:s.arguments,credentials:t,remote:i,version:r});let l=c();return o({remote:a(e,t,l),mutationKey:l,configDirectory:n}).invoke(s)}}},_=u.object({authenticated:u.literal(!1)}),v=u.object({authenticated:u.literal(!0),personId:u.uuid(),displayName:u.string().min(1),tokenId:u.uuid(),tokenLabel:u.string().min(1),expiresAt:u.iso.datetime().nullable()}),y=u.object({openBrowser:u.boolean().default(!0).describe(`Open the system browser for the human sign-in and wait for completion.`)}),b=u.strictObject({}),x=u.union([_,v]),S=u.object({loggedOut:u.boolean()}),C=u.object({status:u.enum([`ok`,`degraded`]),runtimeVersion:u.string().min(1),api:u.object({reachable:u.boolean(),status:u.number().int().nullable()}),credential:u.object({present:u.boolean()})}),w=e=>({summary:e.summary,useWhen:e.useWhen,preconditions:[`Run through the local Enhance MCP runtime, which owns the user-scoped credential.`,`Keep credential values outside model-visible input and output.`],input:[],output:[],result:e.result,recovery:[`BAD_REQUEST: correct the named option and call again.`,`UNAUTHORIZED: start browser sign-in and let the person complete consent.`,`FORBIDDEN: leave the credential unchanged and report the governing account policy.`,`INTERNAL: call doctor, report the failing boundary, and stop repeating the call.`],next:e.next,examples:[{input:e.exampleInput,output:e.exampleOutput}]}),T=t=>e({...t,source:`composite`,idempotency:t.operation===`query`?`none`:`single`,execution:{kind:`composite`,procedures:[]},meta:{description:t.guide.summary},policy:{exposure:`mcp-transport`,reason:`The local MCP runtime owns its own authentication and installation diagnostics.`,owner:`mcp`},cliPath:null,inputExample:t.guide.examples[0]?.input,outputExample:t.guide.examples[0]?.output}),E=[T({id:`auth.login`,operation:`mutation`,effect:`external`,inputSchema:y,outputSchema:v,guide:w({summary:`Open browser sign-in and store a revocable user-scoped Enhance credential.`,useWhen:`Use when Enhance is not authenticated or its credential was revoked.`,result:`Waits for browser consent, stores the credential locally, and returns safe identity metadata.`,next:[`Call auth.status, then read the target canvas.`],exampleInput:{openBrowser:!0},exampleOutput:{authenticated:!0,personId:`00000000-0000-4000-8000-000000000001`,displayName:`Ada`,tokenId:`00000000-0000-4000-8000-000000000002`,tokenLabel:`Agent plugin`,expiresAt:null}})}),T({id:`auth.logout`,operation:`mutation`,effect:`delete`,inputSchema:b,outputSchema:S,guide:w({summary:`Remove the user-scoped local Enhance credential.`,useWhen:`Use only when the person asks to disconnect this local agent host.`,result:`Reports whether a local credential was removed without returning its value.`,next:[`Call auth.status to confirm the local runtime is disconnected.`],exampleInput:{},exampleOutput:{loggedOut:!0}})}),T({id:`auth.status`,operation:`query`,effect:`read`,inputSchema:b,outputSchema:x,guide:w({summary:`Check whether the local Enhance MCP runtime is authenticated.`,useWhen:`Use before a workflow or after login, logout, expiry, or an authorization failure.`,result:`Returns safe identity metadata or authenticated false, never a credential value.`,next:[`When unauthenticated, call auth.login; otherwise continue with the requested workflow.`],exampleInput:{},exampleOutput:{authenticated:!1}})}),T({id:`doctor`,operation:`query`,effect:`read`,inputSchema:b,outputSchema:C,guide:w({summary:`Check MCP runtime identity, API reachability, and credential presence without changes.`,useWhen:`Use after repeated connection, authentication, or compatibility failure.`,result:`Returns bounded diagnostics without machine paths, credentials, or customer data.`,next:[`Follow the failing boundary; do not repeat a mutation while diagnostics are degraded.`],exampleInput:{},exampleOutput:{status:`ok`,runtimeVersion:`0.1.7`,api:{reachable:!0,status:200},credential:{present:!0}}})})].toSorted((e,t)=>e.id.localeCompare(t.id)),D=()=>E,O=s(i.configDirectory),k=g(i.apiUrl,O,i.configDirectory,`0.1.7-dev.sha-a7e9194e5472`),A=[...t(),...D()];f(()=>l({version:`0.1.7-dev.sha-a7e9194e5472`,name:i.mcpServiceName,commandName:i.commandName,invocation:k,catalog:A,exposures:[`shared`,`mcp-transport`]}),{legacy:`serve`,onerror:()=>d.stderr.write(`${i.mcpServiceName} transport failure\n`)});export{};
2
+ import{f as e,l as t}from"./cli-output-identity.lib-COXLA7bt.mjs";import{a as n,f as r,i,n as a,o,r as s,t as c}from"./mutation-key.adapter-BhdfFChs.mjs";import{t as l}from"./mcp-server.adapter-CH7nbGxy.mjs";import{z as u}from"zod";import d from"node:process";import{serveStdio as f}from"@modelcontextprotocol/server/stdio";const p=new Set([`auth.login`,`auth.logout`,`auth.status`,`doctor`]),m=u.object({openBrowser:u.boolean()}),h=async e=>{let t=r(e.credentials,e.remote,n(e.remote));switch(e.capability){case`auth.login`:{let n=m.parse(e.arguments);return t.loginWithBrowser({label:`Agent plugin`,openBrowser:n.openBrowser,onReady:()=>null})}case`auth.logout`:return t.logout();case`auth.status`:return await e.credentials.read()===null?{authenticated:!1}:t.status();case`doctor`:{let[t,n]=await Promise.all([e.remote.health(),e.credentials.read()]);return{status:n!==null&&t.reachable?`ok`:`degraded`,runtimeVersion:e.version,api:{reachable:t.reachable,status:t.status},credential:{present:n!==null}}}default:throw TypeError(`${e.capability} has no MCP transport execution`)}},g=(e,t,n,r)=>{let i=a(e,t,c());return{invoke:async s=>{if(p.has(s.capability.id))return h({capability:s.capability.id,arguments:s.arguments,credentials:t,remote:i,version:r});let l=c();return o({remote:a(e,t,l),mutationKey:l,configDirectory:n}).invoke(s)}}},_=u.object({authenticated:u.literal(!1)}),v=u.object({authenticated:u.literal(!0),personId:u.uuid(),displayName:u.string().min(1),tokenId:u.uuid(),tokenLabel:u.string().min(1),expiresAt:u.iso.datetime().nullable()}),y=u.object({openBrowser:u.boolean().default(!0).describe(`Open the system browser for the human sign-in and wait for completion.`)}),b=u.strictObject({}),x=u.union([_,v]),S=u.object({loggedOut:u.boolean()}),C=u.object({status:u.enum([`ok`,`degraded`]),runtimeVersion:u.string().min(1),api:u.object({reachable:u.boolean(),status:u.number().int().nullable()}),credential:u.object({present:u.boolean()})}),w=e=>({summary:e.summary,useWhen:e.useWhen,preconditions:[`Run through the local Enhance MCP runtime, which owns the user-scoped credential.`,`Keep credential values outside model-visible input and output.`],input:[],output:[],result:e.result,recovery:[`BAD_REQUEST: correct the named option and call again.`,`UNAUTHORIZED: start browser sign-in and let the person complete consent.`,`FORBIDDEN: leave the credential unchanged and report the governing account policy.`,`INTERNAL: call doctor, report the failing boundary, and stop repeating the call.`],next:e.next,examples:[{input:e.exampleInput,output:e.exampleOutput}]}),T=t=>e({...t,source:`composite`,idempotency:t.operation===`query`?`none`:`single`,execution:{kind:`composite`,procedures:[]},meta:{description:t.guide.summary},policy:{exposure:`mcp-transport`,reason:`The local MCP runtime owns its own authentication and installation diagnostics.`,owner:`mcp`},cliPath:null,inputExample:t.guide.examples[0]?.input,outputExample:t.guide.examples[0]?.output}),E=[T({id:`auth.login`,operation:`mutation`,effect:`external`,inputSchema:y,outputSchema:v,guide:w({summary:`Open browser sign-in and store a revocable user-scoped Enhance credential.`,useWhen:`Use when Enhance is not authenticated or its credential was revoked.`,result:`Waits for browser consent, stores the credential locally, and returns safe identity metadata.`,next:[`Call auth.status, then read the target canvas.`],exampleInput:{openBrowser:!0},exampleOutput:{authenticated:!0,personId:`00000000-0000-4000-8000-000000000001`,displayName:`Ada`,tokenId:`00000000-0000-4000-8000-000000000002`,tokenLabel:`Agent plugin`,expiresAt:null}})}),T({id:`auth.logout`,operation:`mutation`,effect:`delete`,inputSchema:b,outputSchema:S,guide:w({summary:`Remove the user-scoped local Enhance credential.`,useWhen:`Use only when the person asks to disconnect this local agent host.`,result:`Reports whether a local credential was removed without returning its value.`,next:[`Call auth.status to confirm the local runtime is disconnected.`],exampleInput:{},exampleOutput:{loggedOut:!0}})}),T({id:`auth.status`,operation:`query`,effect:`read`,inputSchema:b,outputSchema:x,guide:w({summary:`Check whether the local Enhance MCP runtime is authenticated.`,useWhen:`Use before a workflow or after login, logout, expiry, or an authorization failure.`,result:`Returns safe identity metadata or authenticated false, never a credential value.`,next:[`When unauthenticated, call auth.login; otherwise continue with the requested workflow.`],exampleInput:{},exampleOutput:{authenticated:!1}})}),T({id:`doctor`,operation:`query`,effect:`read`,inputSchema:b,outputSchema:C,guide:w({summary:`Check MCP runtime identity, API reachability, and credential presence without changes.`,useWhen:`Use after repeated connection, authentication, or compatibility failure.`,result:`Returns bounded diagnostics without machine paths, credentials, or customer data.`,next:[`Follow the failing boundary; do not repeat a mutation while diagnostics are degraded.`],exampleInput:{},exampleOutput:{status:`ok`,runtimeVersion:`0.1.7`,api:{reachable:!0,status:200},credential:{present:!0}}})})].toSorted((e,t)=>e.id.localeCompare(t.id)),D=()=>E,O=s(i.configDirectory),k=g(i.apiUrl,O,i.configDirectory,`0.1.7-dev.sha-e44a8cce541b`),A=[...t(),...D()];f(()=>l({version:`0.1.7-dev.sha-e44a8cce541b`,name:i.mcpServiceName,commandName:i.commandName,invocation:k,catalog:A,exposures:[`shared`,`mcp-transport`]}),{legacy:`serve`,onerror:()=>d.stderr.write(`${i.mcpServiceName} transport failure\n`)});export{};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enhance-eng/enhance-dev",
3
- "version": "0.1.7-dev.sha-a7e9194e5472",
3
+ "version": "0.1.7-dev.sha-e44a8cce541b",
4
4
  "private": false,
5
5
  "description": "Development command-line interface for Enhance.",
6
6
  "keywords": [