@sourcegraph/amp 0.0.1753676477-g787882 → 0.0.1753689738-g787882
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +4 -4
- package/package.json +1 -1
package/dist/main.js
CHANGED
@@ -4638,7 +4638,7 @@ ${A}</tr>
|
|
4638
4638
|
Please report this to https://github.com/markedjs/marked.`,A){let D="<p>An error occurred:</p><pre>"+uU(B.message+"",!0)+"</pre>";if(Q)return Promise.resolve(D);return D}if(Q)return Promise.reject(B);throw B}}}var LV=new K7A;function g9(A,Q){return LV.parse(A,Q)}g9.options=g9.setOptions=function(A){return LV.setOptions(A),g9.defaults=LV.defaults,n5A(g9.defaults),g9};g9.getDefaults=Lf1;g9.defaults=RV;g9.use=function(...A){return LV.use(...A),g9.defaults=LV.defaults,n5A(g9.defaults),g9};g9.walkTokens=function(A,Q){return LV.walkTokens(A,Q)};g9.parseInline=LV.parseInline;g9.Parser=kZ;g9.parser=kZ.parse;g9.Renderer=ap;g9.TextRenderer=i41;g9.Lexer=vZ;g9.lexer=vZ.lex;g9.Tokenizer=ip;g9.Hooks=lp;g9.parse=g9;var{options:xA8,setOptions:hA8,use:mA8,walkTokens:uA8,parseInline:pA8}=g9;var cA8=kZ.parse,dA8=vZ.lex;M0.level=1;var be6={code:M0.white,codespan:M0.white,blockquote:M0.gray.italic,html:M0.gray,heading:M0.bold,firstHeading:M0.bold,hr:M0.reset,table:M0.reset,paragraph:M0.reset,strong:M0.bold,em:M0.italic,del:M0.dim.gray.strikethrough,link:M0.cyan,href:M0.cyan,text:M0.reset,unescape:!0,emoji:!0,width:80,showSectionPrefix:!0,reflowText:!1,tab:4,tableOptions:{wordWrap:!0,wrapOnWordBoundary:!1,style:{head:["bold"],border:["grey"],compact:!1}}},ge6={keyword:M0.bold,built_in:M0.dim,type:M0.dim,literal:M0.italic,number:M0.reset,regexp:M0.dim.italic,string:M0.dim,subst:M0.reset,symbol:M0.reset,class:M0.bold,function:M0.reset,title:M0.reset,params:M0.reset,comment:M0.dim.italic,doctag:M0.dim.italic,meta:M0.dim,"meta-keyword":M0.reset,"meta-string":M0.reset,section:M0.reset,tag:M0.dim,name:M0.bold,"builtin-name":M0.reset,attr:M0.dim,attribute:M0.reset,variable:M0.reset,bullet:M0.reset,code:M0.reset,emphasis:M0.italic,strong:M0.bold,formula:M0.reset,link:M0.underline,quote:M0.reset,"selector-tag":M0.reset,"selector-id":M0.reset,"selector-class":M0.reset,"selector-attr":M0.reset,"selector-pseudo":M0.reset,"template-tag":M0.reset,"template-variable":M0.reset,addition:M0.bold.underline,deletion:M0.dim.strikethrough,default:M0.reset};g9.use(C2A({...be6,reflowText:!1},{ignoreIllegals:!0,theme:ge6}));function a41({children:A}){let Q;try{Q=g9(A,{async:!1}).trimEnd()}catch(B){S1.error("Markdown rendering failed",B,{input:A}),Q=A}return W0(VA,{children:Q})}function Z7A({message:A}){let Q=A.content.filter((B)=>B.type==="thinking"||B.type==="text");if(!Q.length)return null;return W0(KA,{flexDirection:"column",marginBottom:1,children:Q.map((B,D)=>{let J=D>0?1:0;if(B.type==="thinking")return W0(x41,{thinking:B.thinking},D);else return W0(KA,{marginTop:J,children:W0(a41,{children:B.text})},D);return null})})}function G7A({message:A,marginTop:Q=0}){if(!A.content.some((J)=>J.type==="text"||J.type==="thinking"||J.type==="summary"&&J.summary.type==="message"))return null;let D=A.role==="assistant"&&A.state.type==="cancelled";return g6(KA,{flexDirection:"column",gap:1,marginTop:Q,children:[A.content.map((J,z)=>{if(J.type==="text")switch(A.role){case"assistant":return W0(KA,{flexDirection:"column",children:W0(a41,{children:J.text})},z);case"user":return W0(KA,{borderStyle:"bold",borderColor:"green",borderLeft:!0,borderTop:!1,borderBottom:!1,borderRight:!1,paddingLeft:1,children:W0(VA,{color:"green",italic:!0,children:J.text})},z)}else if(J.type==="thinking")return W0(x41,{thinking:J.thinking},z);else if(J.type==="summary"&&J.summary.type==="message")return W0(KA,{children:g6(VA,{color:"grey",italic:!0,children:["Summary: ",J.summary.summary]})},z);else return null}),D&&W0(KA,{children:W0(VA,{italic:!0,dimColor:!0,children:"Cancelled"})})]})}function X7A({todos:A}){if(!Array.isArray(A)||A.length===0)return null;return g6(KA,{borderStyle:"round",borderColor:"dim",paddingX:1,flexDirection:"column",flexGrow:1,flexShrink:0,children:[W0(KA,{children:W0(VA,{dimColor:!0,bold:!0,children:"TODOs"})}),A.map((Q,B)=>W0(KA,{gap:1,children:g6(VA,{dimColor:!0,wrap:"truncate",children:[W0(VA,{children:"• "}),W0(VA,{bold:Q.status==="in-progress",strikethrough:Q.status==="completed",children:Q.content})]})},Q.id))]})}var RW=hA(o2(),1);function vf1({children:A,dependencies:Q}){let{stdout:B}=LX(),D=RW.useRef(null),[J,z]=RW.useState(B.columns),K=RW.useCallback(()=>{if(D.current){let{width:Z}=NV(D.current);z(Z)}},[D,z]);return RW.useLayoutEffect(K,[K,B.columns,...Q||[]]),W0(KA,{width:"100%",height:"100%",ref:D,children:A(J)})}y6();c6();var LB=hA(o2(),1),r41=Object.freeze({query:"",options:[]});function Y7A(A){let[Q,B]=LB.useState(r41),[D,J]=LB.useState(""),[z,K]=LB.useState(null),Z=LB.useRef(0),[G]=LB.useState(()=>new y8),X=LB.useCallback((H)=>{if(J(H),H!==z)K(null)},[z]),Y=LB.useCallback(()=>K(D),[D]),U=LB.useCallback((H)=>{G.next(H)},[G]),F=LB.useMemo(()=>D.startsWith("@")?D.slice(1):null,[D]);LB.useEffect(()=>{if(F!==null&&D!==z){let w=++Z.current;(async()=>{try{let W=await A.query(F);if(w===Z.current)B({query:F,options:W})}catch(W){if(w===Z.current)S1.error("Completion request failed",{query:F,error:W}),B(r41)}})()}else B(r41)},[D,z,A,F]),LB.useEffect(()=>{return()=>{G.complete()}},[G]);let E=LB.useMemo(()=>{if(F===null)return!1;return F.startsWith(Q.query)&&z!==D&&D!==""},[Q,D,z,F]);return{completions:E?Q:r41,hasCompletions:E?Q.options.length>0:!1,selectCompletion:U,completionSelected:G,onWordHighlight:X,ignore:Y}}var n41=hA(o2(),1);function U7A(A){let Q=n41.useMemo(()=>process.cwd().replace(process.env.HOME||"","~"),[]);n41.useEffect(()=>{if(A)process.stdout.write(`\x1B]0;amp - ${A} - ${Q}\x07`);return()=>{process.stdout.write("\x1B]0;\x07")}},[A,Q])}var s41=hA(o2(),1);function q7A(){return W0(KA,{flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:3,marginLeft:4,children:W0(KA,{children:W0(VA,{color:"green",bold:!0,children:"Welcome to Amp"})})})}function F7A(){let[A,Q]=s41.useState(0),B=["Amp","AMP","AmP","amP","aMP","AMp"];return s41.useEffect(()=>{let D=setInterval(()=>{Q((J)=>(J+1)%B.length)},50);return()=>clearInterval(D)},[B.length]),W0(KA,{flexDirection:"column",alignItems:"flex-start",justifyContent:"center",minHeight:3,marginLeft:4,children:W0(KA,{children:g6(VA,{color:"green",bold:!0,children:["Welcome to ",B[A]]})})})}var xe6=200;function E7A({threadService:A,history:Q,worker:B,sendToolConfirmation:D,sendUserMessage:J,exit:z,cancel:K,ampURL:Z,commands:G,fuzzyClient:X}){let[Y]=g41(),{viewState:U,subagents:F,subagentActiveTools:E,transcript:H,streamingAssistantMessage:w,todosList:I,mainThread:W}=n4A(A,B),M=w5.useMemo(()=>w?H.items.concat({id:"streaming-assistant",type:"message",message:w}):H.items,[w,H.items]),N=W?.title||"Untitled",O=w5.useMemo(()=>W?lh1(W):void 0,[W]);U7A(W?.title);let L=w5.useRef(new y8),[T,R]=w5.useState({baseView:"running",rerendering:!1,resizeCounter:0,dismissedEphemeralError:null,slashCommandQuery:null,uiError:null}),j=w5.useRef(null),P=w5.useRef(null),[$,S]=V5A(),g=w5.useCallback((B1)=>{R((Z1)=>({...Z1,slashCommandQuery:B1}))},[]),u=w5.useMemo(()=>{if(T.slashCommandQuery===null)return[];return G.query(T.slashCommandQuery)},[T.slashCommandQuery,G]),_=w5.useCallback(()=>{R((B1)=>({...B1,rerendering:!0})),process.stdout.write("\x1B[2J\x1B[3J\x1B[H"),L.current.next()},[R,L]),k=w5.useCallback(async(B1)=>{if(R((I1)=>({...I1,slashCommandQuery:null})),!B1||!W)return;let Z1=!1,Y1=(I1)=>{Z1=!0,S(I1)},R1=()=>{R((I1)=>({...I1,baseView:"help"}))},V1=await G.get(B1).execute({worker:B,thread:W,editorDispatch:Y1,exitApp:z,openHelp:R1});if(R((I1)=>({...I1,uiError:V1||null})),!Z1)S({type:"clear"})},[G,S,W,B,z]),b=w5.useCallback((B1)=>{S({type:"clear"}),J(B1)},[S,J]);w5.useEffect(()=>{return process.stdout.on("resize",_),()=>{process.stdout.off("resize",_)}},[_]),w5.useEffect(()=>{let B1=L.current.pipe(WD(xe6)).subscribe(()=>{R((Z1)=>({...Z1,rerendering:!1,resizeCounter:Z1.resizeCounter+1}))});return()=>{B1.unsubscribe()}},[L,R]),w5.useEffect(()=>{let B1=L.current,Z1=j.current;return()=>{if(B1.complete(),Z1)clearTimeout(Z1)}},[L]);let m=[...H.activeTools,...E],v=m.filter((B1)=>B1.toolRun.status==="blocked-on-user"),h=w5.useMemo(()=>X5A(v),[v]),d=Y7A(X),{hasCompletions:l,completions:D1,selectCompletion:n}=d,z1=w5.useMemo(()=>{if(U.state!=="active"||!U.ephemeralError)return null;if(T.dismissedEphemeralError===U.ephemeralError)return null;return U.ephemeralError},[U,T.dismissedEphemeralError]),Q1=T.uiError!==null?"ui-error":z1!==null?"ephemeral-error":h!==null?"confirming":T.baseView,G1=(B1)=>{if(!h||h.type!=="tool-use")return;if(h.tools.length>0){let Z1=h.tools[0],Y1=Array.from(B1==="always"?Z1.toAllow??[]:[]);D(Z1.useBlock.id,B1==="yes"||B1==="always",Y1,h.subthreadID)}},K1=(B1)=>{switch(B1){case"compact":R((Z1)=>({...Z1,dismissedEphemeralError:null})),B.summarizeThread();break;case"dismiss":R((Z1)=>({...Z1,dismissedEphemeralError:z1}));break;case"retry":R((Z1)=>({...Z1,dismissedEphemeralError:null})),B.retry();break;default:S1.warn("action:",{action:B1})}},L1=()=>{R((B1)=>({...B1,uiError:null}))};uE((B1,Z1)=>{if(Z1.ctrlC){if(T.baseView==="confirming-exit"){if(j.current)clearTimeout(j.current),j.current=null;z()}else{if(R((R1)=>({...R1,baseView:"confirming-exit"})),j.current)clearTimeout(j.current);let Y1=setTimeout(()=>{R((R1)=>({...R1,baseView:"running"})),j.current=null},1000);j.current=Y1}return}if(Q1==="help"){if(Z1.escape)R((Y1)=>({...Y1,baseView:"running"}));return}if(Q1==="expanded-view"||Q1==="confirming"||Q1==="ephemeral-error")return;if(Q1==="ui-error")return;if(Z1.escape)if(l||u.length>0)return;else K();else if(Z1.ctrl&&B1.toLowerCase()==="r")R((Y1)=>({...Y1,baseView:"expanded-view"}));else if(Z1.ctrlL)_()});let a=Y>100,r=T.rerendering&&H.items.length===0?1:"auto",s="resize-key"+T.resizeCounter,J1=[{type:"welcome",id:"welcome"},...H.items];if(T.baseView==="expanded-view"){let B1=M.filter((Z1)=>Z1.type==="message").map((Z1)=>Z1.message);return W0(T5A,{threadName:N,messages:B1,onExit:()=>R((Z1)=>({...Z1,baseView:"running"}))})}return g6(KA,{flexDirection:"column",minHeight:"100%",flexGrow:1,height:r,children:[W0(O41,{items:J1,children:(B1,Z1)=>{if(B1.type==="welcome")return W0(q7A,{},"welcome");let Y1=Z1===0?0:1;return B1.type==="message"?W0(G7A,{message:B1.message,marginTop:Y1},B1.id):W0(Z5A,{toolUse:B1.toolUse,toolResult:B1.toolResult,marginTop:Y1},B1.id)}},s),g6(KA,{flexDirection:"column",marginTop:J1.length>1?1:0,children:[w&&W0(Z7A,{message:w}),W0(D5A,{activeTools:m,subagents:F}),g6(KA,{flexDirection:a?"row-reverse":"column",children:[I.length>0&&W0(KA,{ref:P,flexGrow:0,flexShrink:0,width:a?"50%":"100%",children:W0(X7A,{todos:I})}),Q1==="ui-error"&&T.uiError?W0(y41,{title:Ff1(T.uiError).title,description:Ff1(T.uiError).description,options:[{value:"dismiss",label:"Dismiss"}],onSelect:L1}):Q1==="ephemeral-error"&&z1?W0(R5A,{error:z1,onResponse:K1,ampURL:Z}):Q1==="confirming"&&h?W0(q5A,{currentConfirmation:h,onConfirmationResponse:G1}):Q1==="help"?W0(vf1,{dependencies:[I],children:(B1)=>W0(S5A,{width:B1})}):W0(KA,{flexGrow:1,borderStyle:"round",paddingX:1,children:W0(vf1,{dependencies:[I],children:(B1)=>W0(v5A,{onSubmit:b,history:Q,disabled:Q1==="confirming"||Q1==="ephemeral-error"||U.state==="active"&&U.summaryState==="summarizing",viewState:U,editorState:$,editorDispatch:S,onSlashCommandQuery:g,width:B1,completionsState:d})})})]}),W0(c5A,{view:Q1,threadViewState:U,threadTokenUsage:O,hasCompletedMessages:H.items.length>0}),W0(he6,{commands:u,onSelect:k}),W0(me6,{completions:D1.options,onSelect:n})]})]})}function he6({commands:A,onSelect:Q}){let D=w5.useMemo(()=>A.slice(0,10).map((J)=>({value:J.name,label:J.name,description:J.description})),[A]);return W0(KA,{marginBottom:1,children:W0(OV,{title:"Select command:",options:D,onSelect:Q})})}function me6({completions:A,onSelect:Q}){let B=Math.min(10),D=w5.useMemo(()=>A.slice(0,B).map((z)=>({value:z,label:z})),[A,B]),J=w5.useCallback((z)=>{if(z===null)return;let K=A.find((Z)=>Z===z);if(!K)return;Q(K)},[A,Q]);if(D.length===0)return null;return W0(KA,{marginBottom:1,children:W0(OV,{title:"Insert file name:",options:D,onSelect:J})})}function H7A(A){let{worker:Q,threadID:B,settingsStorage:D,pipedInput:J,workerDeps:z,configService:K,fuzzyServer:Z}=A,[G,X]=RX.useState(!1);i4A();let Y=RX.useCallback((I,W,M,N)=>{return ue6(I,W,M,N,D,Q,z)},[D,Q,z]),U=RX.useCallback(async(I)=>{await Q.handle({type:"user:message",message:{content:[{type:"text",text:I}]}})},[Q]),{exit:F}=Uf1(),E=RX.useCallback(()=>{yK.cancel(B)},[B]);RX.useEffect(()=>{let I=setTimeout(()=>{X(!0)},500);return()=>clearTimeout(I)},[]);let H=RX.useRef(!1);if(RX.useEffect(()=>{if(H.current)return;if(J)H.current=!0,U(J),X(!0)},[J,U]),!G)return W0(F7A,{});let w=new Ef1;return W0(h4A,{configService:K,children:W0(E7A,{history:A.history,threadService:A.threadService,worker:Q,sendToolConfirmation:Y,sendUserMessage:U,exit:F,cancel:E,ampURL:A.ampURL,commands:w,fuzzyClient:Z})})}async function ue6(A,Q,B,D,J,z,K){let Z=B&&B.length>0||!1;if(B&&B.length>0)await C6(l2).then((X)=>X.settings["experimental.commandApproval.enabled"]?"experimental.commandApproval.allow":"commands.allowlist").then((X)=>{J.get(X,"global").then((Y)=>{let U=[...Y??[],...B];return J.set(X,U,"global")}).catch((Y)=>{S1.error("Failed to update allowlist",Y)})});let G={type:"user:tool-input",toolUse:A,value:{accepted:Q||Z}};if(D)(await yK.getOrCreateForThread(K,D)).handle(G);else z.handle(G)}global.React=kf1.default;function w7A(A){return M0.level=1,Yf1(kf1.default.createElement(H7A,{...A}),{patchConsole:!0,exitOnCtrlC:!1,stdout:A.stdout,stdin:A.stdin}).waitUntilExit().then(async()=>{let{threadID:B,ampURL:D,threadService:J}=A;if((await J.get(B))?.messages.length!==0){let K=`${D.replace(/\/$/,"")}/threads/${B}`;A.stdout.write(`
|
4639
4639
|
`),A.stdout.write(`${M0.dim("Thread:")} ${K}
|
4640
4640
|
`),A.stdout.write(`${M0.dim("Continue this thread with:")} amp threads continue ${B}
|
4641
|
-
`)}})}var gf1=bf1.join(nu0||bf1.join(process.env.HOME||process.cwd(),".local","state"),"amp","last-thread-id");async function xf1(A){try{await ne6(bf1.dirname(gf1),{recursive:!0}),await oe6(gf1,A,"utf-8")}catch(Q){S1.debug("Failed to save last thread ID",Q)}}async function C7A(){try{return(await se6(gf1,"utf-8")).trim()}catch(A){return null}}async function te6(A){let Q=await SQ(`/api/threads/${A}`);if(!Q.ok){let B=await Q.text();if(Q.status===404||B.includes("not found"))throw new tJ(VZ.threadNotFound(A));throw new tJ(`Failed to load thread ${A}`,1,`Use 'amp threads share ${A} --support' to share this with the Amp team if this persists.`)}return await Q.json()}var T7A=process.env.TERMINAL_EMULATOR?.includes("JetBrains")??!1,O7A=[{name:"notifications",long:"notifications",type:"flag",description:(A)=>`${A?"Enable":"Disable"} sound notifications (enabled by default when not in execute mode)`},{name:"color",long:"color",type:"flag",description:(A)=>`${A?"Enable":"Disable"} color output (enabled by default if stdout and stderr are sent to a TTY)`,deprecated:!0},{name:"settingsFile",long:"settings-file",type:"option",default:process.env.AMP_SETTINGS_FILE??KW,description:`Custom settings file path (overrides the default location ${KW})`},{name:"logLevel",long:"log-level",type:"option",description:`Set log level (${Object.keys(S1).join(", ")})`},{name:"logFile",long:"log-file",type:"option",description:"Set log file location"},{name:"format",long:"format",type:"option",description:"output using the standard or new-ui. Options: `ui`, `new-ui`",choices:["ui","jsonl","new-ui"],hidden:!0,deprecated:!0},{name:"dangerouslyAllowAll",long:"dangerously-allow-all",type:"switch",default:!1,description:"Disable all command confirmation prompts (agent will execute all commands without asking)"},{name:"jetbrains",long:"jetbrains",type:"flag",default:T7A,description:(A)=>A?"Enable JetBrains integration. Requires the JetBrains MCP plugin to be installed and you must start Amp in the same directory as your JetBrains project. When enabled, Amp automatically includes your open JetBrains file and text selection with every message, just like it does in VS Code.":"Disable JetBrains integration.",hidden:!0},{name:"interactive",long:"interactive",type:"flag",description:(A)=>A?"Enable interactive mode. This will enable the interactive UI.":"Disable interactive mode. This will disable the interactive UI.",hidden:!0,deprecated:!0}],V7A=(A)=>("deprecated"in A)&&A.deprecated===!0,ee6=(A)=>("hidden"in A)&&A.hidden===!0,A12=(A)=>("default"in A),Q12=(A)=>("default"in A)?A.default:void 0;function B12(A,Q){let B=Q.args[0],D=Q.commands.map((z)=>z.name());if(B&&!B.includes(" ")&&B.length<30&&!/[./\\]/.test(B)){let z=D.filter((Z)=>B.includes(Z)||Z.includes(B)),K="Run amp --help for a list of available commands.";if(z.length>0)K=`Did you mean: ${z.join(", ")}? Or run amp --help for all commands.`;throw new tJ(VZ.unknownCommand(B),1,K)}}async function MS(A,Q){eh1("0.0.
|
4641
|
+
`)}})}var gf1=bf1.join(nu0||bf1.join(process.env.HOME||process.cwd(),".local","state"),"amp","last-thread-id");async function xf1(A){try{await ne6(bf1.dirname(gf1),{recursive:!0}),await oe6(gf1,A,"utf-8")}catch(Q){S1.debug("Failed to save last thread ID",Q)}}async function C7A(){try{return(await se6(gf1,"utf-8")).trim()}catch(A){return null}}async function te6(A){let Q=await SQ(`/api/threads/${A}`);if(!Q.ok){let B=await Q.text();if(Q.status===404||B.includes("not found"))throw new tJ(VZ.threadNotFound(A));throw new tJ(`Failed to load thread ${A}`,1,`Use 'amp threads share ${A} --support' to share this with the Amp team if this persists.`)}return await Q.json()}var T7A=process.env.TERMINAL_EMULATOR?.includes("JetBrains")??!1,O7A=[{name:"notifications",long:"notifications",type:"flag",description:(A)=>`${A?"Enable":"Disable"} sound notifications (enabled by default when not in execute mode)`},{name:"color",long:"color",type:"flag",description:(A)=>`${A?"Enable":"Disable"} color output (enabled by default if stdout and stderr are sent to a TTY)`,deprecated:!0},{name:"settingsFile",long:"settings-file",type:"option",default:process.env.AMP_SETTINGS_FILE??KW,description:`Custom settings file path (overrides the default location ${KW})`},{name:"logLevel",long:"log-level",type:"option",description:`Set log level (${Object.keys(S1).join(", ")})`},{name:"logFile",long:"log-file",type:"option",description:"Set log file location"},{name:"format",long:"format",type:"option",description:"output using the standard or new-ui. Options: `ui`, `new-ui`",choices:["ui","jsonl","new-ui"],hidden:!0,deprecated:!0},{name:"dangerouslyAllowAll",long:"dangerously-allow-all",type:"switch",default:!1,description:"Disable all command confirmation prompts (agent will execute all commands without asking)"},{name:"jetbrains",long:"jetbrains",type:"flag",default:T7A,description:(A)=>A?"Enable JetBrains integration. Requires the JetBrains MCP plugin to be installed and you must start Amp in the same directory as your JetBrains project. When enabled, Amp automatically includes your open JetBrains file and text selection with every message, just like it does in VS Code.":"Disable JetBrains integration.",hidden:!0},{name:"interactive",long:"interactive",type:"flag",description:(A)=>A?"Enable interactive mode. This will enable the interactive UI.":"Disable interactive mode. This will disable the interactive UI.",hidden:!0,deprecated:!0}],V7A=(A)=>("deprecated"in A)&&A.deprecated===!0,ee6=(A)=>("hidden"in A)&&A.hidden===!0,A12=(A)=>("default"in A),Q12=(A)=>("default"in A)?A.default:void 0;function B12(A,Q){let B=Q.args[0],D=Q.commands.map((z)=>z.name());if(B&&!B.includes(" ")&&B.length<30&&!/[./\\]/.test(B)){let z=D.filter((Z)=>B.includes(Z)||Z.includes(B)),K="Run amp --help for a list of available commands.";if(z.length>0)K=`Did you mean: ${z.join(", ")}? Or run amp --help for all commands.`;throw new tJ(VZ.unknownCommand(B),1,K)}}async function MS(A,Q){eh1("0.0.1753689738-g787882");let B=Q.settingsFile;S1.info("Using settings file",{settingsFile:B});let D=K$1(au()),J=iu({settingsFile:B}),z=DB1({storage:J,secretStorage:D,workspaceRoots:UA.of([Q2.file(process.cwd())]),defaultAmpURL:A.ampURL}),K=Gv(),Z=ta1({configService:z,toolService:K});try{await Z.initialized}catch(L){S1.warn("Failed to wait for MCP servers, continuing anyway:",L)}let G=await C6(l2);if(Q.dangerouslyAllowAll)G.settings.dangerouslyAllowAll=!0;if(Q.jetbrains){if(G.settings["jetbrains.enabled"]=!0,al.subscribe((T)=>{S1.info("jetbrains-status",T)}),await LH(),!await ep1())if(T7A)WQ("JetBrains integration failed. Try again with `amp --no-jetbrains` or see setup: https://ampcode.com/manual#jetbrains");else WQ("Cannot connect to JetBrains IDE. Check setup: https://ampcode.com/manual#jetbrains")}let X=G.settings["experimental.reviewTool"]??!1,Y=G.settings["experimental.tools"]??[];B_1(K,!1,X,Y);let U,F;if(!A.executeMode)U=new uv1(G.settings,process.cwd()),await U.start(),F=i2A(U,process.cwd());else U=new class{async start(){}async query(){return[]}dispose(){}},F={[Symbol.dispose]:()=>{}};if(!await D.get("apiKey",A.ampURL)){if(A5.write(`No API key found. Starting login flow...
|
4642
4642
|
`),!await D12(A,D))process.exit(1)}let E=Ur1(),H=new MX1(E),w=new wX1(E),I=new eq1(H),W=Q.notifications!==void 0?Q.notifications:!A.executeMode,M=Mu0({playNotificationSound:async(L)=>{if(W)Wu0(L)},windowFocused:()=>Promise.resolve(!1),threadService:H,notifyForSubagents:!1});S1.info("Starting Amp background services");let N=a80({threadService:H,threadHistoryService:w,isExtensionDevelopment:!1}),O={configService:z,toolService:K,mcpService:Z,threadService:H,threadHistoryService:w,threadSummaryService:I,threadSyncService:N,threadStorage:E,secretStorage:D,settingsStorage:J,fileWatcher:F,fuzzyServer:U,notificationService:M};return{...O,async dispose(){await O.mcpService.dispose(),O.configService.unsubscribe(),O.toolService.dispose(),O.fileWatcher[Symbol.dispose](),O.fuzzyServer.dispose(),O.threadSyncService.dispose()}}}async function D12(A,Q){if(!A.executeMode){if(await k91("Would you like to log in to Amp?",["(y)es","(n)o"])!="y")return A5.write(`Login cancelled. Run the command again to retry.
|
4643
4643
|
`),!1}return await j7A(A,Q)}async function j7A(A,Q){let B=re6(32).toString("hex"),D=await W8A(A.ampURL,B);A5.write(`If your browser doesn't open automatically, visit:
|
4644
4644
|
|
@@ -4652,7 +4652,7 @@ ${M0.blue.bold(D)}
|
|
4652
4652
|
Login successful! You can now use the Amp CLI.
|
4653
4653
|
`),!0}catch(J){return l9.write(`
|
4654
4654
|
Login failed: ${J instanceof Error?J.message:String(J)}
|
4655
|
-
`),!1}}function J12(A){let Q=new Ou().name("amp").description("AI-powered coding assistant").option("--visibility <visibility>","Set thread visibility (private, public, team)").configureOutput({writeErr:()=>{}});Q.exitOverride((X)=>{if(X.code==="commander.help"||X.code==="commander.version"||X.exitCode===0)nu(),process.exit(0);let Y=X.originalError??X;k_(Y)}),Q.option("-V, --version","output the version number",()=>{A5.write(`0.0.
|
4655
|
+
`),!1}}function J12(A){let Q=new Ou().name("amp").description("AI-powered coding assistant").option("--visibility <visibility>","Set thread visibility (private, public, team)").configureOutput({writeErr:()=>{}});Q.exitOverride((X)=>{if(X.code==="commander.help"||X.code==="commander.version"||X.exitCode===0)nu(),process.exit(0);let Y=X.originalError??X;k_(Y)}),Q.option("-V, --version","output the version number",()=>{A5.write(`0.0.1753689738-g787882 (released 2025-07-28T08:06:51.511Z)
|
4656
4656
|
`),process.exit(0)}),Q.addHelpText("after",E8A()),Q.configureHelp({formatHelp:H8A}),Q.command("logout").description("Log out by removing stored API key").action(async()=>{let X=Qz(),Y=au();if(process.env.AMP_API_KEY)A5.write(`API key found in environment variable AMP_API_KEY, unset first before running 'amp logout'
|
4657
4657
|
`),process.exit(0);if(!await Y.get("apiKey",X.ampURL))A5.write(`Already logged out.
|
4658
4658
|
`),process.exit(0);await Y.set("apiKey","",X.ampURL),A5.write(`Successfully logged out.
|
@@ -4685,10 +4685,10 @@ Summary: ${L}
|
|
4685
4685
|
`),l9.write(`
|
4686
4686
|
`),l9.write(`Secrets have been automatically redacted, but please review the file before attaching
|
4687
4687
|
`),l9.write(`it to support requests. Learn more at https://ampcode.com/manual/appendix#support-bundles
|
4688
|
-
`),process.exit(0)}catch(U){WQ(U instanceof Error?U.message:String(U))}}),Q.addCommand(K);let Z=new Ou("update").description("Update Amp CLI to the latest version").option("--version <version>","Update to a specific version").allowUnknownOption(!1);Z.action(async(X,Y)=>{try{let U=Y.optsWithGlobals(),{update:F}=await Promise.resolve().then(() => (N7A(),M7A)),{checkNpmUpdate:E}=await Promise.resolve().then(() => (sG1(),Fr1)),H="0.0.
|
4688
|
+
`),process.exit(0)}catch(U){WQ(U instanceof Error?U.message:String(U))}}),Q.addCommand(K);let Z=new Ou("update").description("Update Amp CLI to the latest version").option("--version <version>","Update to a specific version").allowUnknownOption(!1);Z.action(async(X,Y)=>{try{let U=Y.optsWithGlobals(),{update:F}=await Promise.resolve().then(() => (N7A(),M7A)),{checkNpmUpdate:E}=await Promise.resolve().then(() => (sG1(),Fr1)),H="0.0.1753689738-g787882";if(U.version)l9.write(M0.blue(`Updating to version ${U.version}...
|
4689
4689
|
`)),await F(U.version),l9.write(M0.green(`✓ Successfully updated to version ${U.version}
|
4690
4690
|
`));else{l9.write(M0.blue(`Checking for updates...
|
4691
|
-
`));let w=await E("0.0.
|
4691
|
+
`));let w=await E("0.0.1753689738-g787882");if(!w.hasUpdate)l9.write(M0.green(`✓ Amp CLI is already up to date.
|
4692
4692
|
`)),process.exit(0);l9.write(M0.blue(`Updating to version ${w.latestVersion}...
|
4693
4693
|
`)),await F(w.latestVersion),l9.write(M0.green(`✓ Successfully updated to version ${w.latestVersion}
|
4694
4694
|
`))}process.exit(0)}catch(U){l9.write(M0.red("Error updating: ")+`${U instanceof Error?U.message:String(U)}
|
package/package.json
CHANGED