@sourcegraph/amp 0.0.1753488280-gb95238 → 0.0.1753503170-g3da31d
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>"+mU(B.message+"",!0)+"</pre>";if(Q)return Promise.resolve(D);return D}if(Q)return Promise.reject(B);throw B}}}var LV=new Z7A;function g9(A,Q){return LV.parse(A,Q)}g9.options=g9.setOptions=function(A){return LV.setOptions(A),g9.defaults=LV.defaults,s5A(g9.defaults),g9};g9.getDefaults=Vf1;g9.defaults=RV;g9.use=function(...A){return LV.use(...A),g9.defaults=LV.defaults,s5A(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=ip;g9.TextRenderer=l41;g9.Lexer=vZ;g9.lexer=vZ.lex;g9.Tokenizer=lp;g9.Hooks=dp;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 xe6={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}}},he6={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(O2A({...xe6,reflowText:!1},{ignoreIllegals:!0,theme:he6}));function i41({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 G7A({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(g41,{thinking:B.thinking},D);else return W0(KA,{marginTop:J,children:W0(i41,{children:B.text})},D);return null})})}function X7A({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(i41,{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(g41,{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 Y7A({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 TW=hA(o2(),1);function $f1({children:A,dependencies:Q}){let{stdout:B}=RX(),D=TW.useRef(null),[J,z]=TW.useState(B.columns),K=TW.useCallback(()=>{if(D.current){let{width:Z}=NV(D.current);z(Z)}},[D,z]);return TW.useLayoutEffect(K,[K,B.columns,...Q||[]]),W0(KA,{width:"100%",height:"100%",ref:D,children:A(J)})}y6();c6();var LB=hA(o2(),1),a41=Object.freeze({query:"",options:[]});function U7A(A){let[Q,B]=LB.useState(a41),[D,J]=LB.useState(""),[z,K]=LB.useState(null),Z=LB.useRef(0),[G]=LB.useState(()=>new a8),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(a41)}})()}else B(a41)},[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:a41,hasCompletions:E?Q.options.length>0:!1,selectCompletion:U,completionSelected:G,onWordHighlight:X,ignore:Y}}var r41=hA(o2(),1);function q7A(A){let Q=r41.useMemo(()=>process.cwd().replace(process.env.HOME||"","~"),[]);r41.useEffect(()=>{if(A)process.stdout.write(`\x1B]0;amp - ${A} - ${Q}\x07`);return()=>{process.stdout.write("\x1B]0;\x07")}},[A,Q])}var n41=hA(o2(),1);function F7A(){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 E7A(){let[A,Q]=n41.useState(0),B=["Amp","AMP","AmP","amP","aMP","AMp"];return n41.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 me6=200;function H7A({threadService:A,history:Q,worker:B,sendToolConfirmation:D,sendUserMessage:J,exit:z,cancel:K,ampURL:Z,commands:G,fuzzyClient:X}){let[Y]=b41(),{viewState:U,subagents:F,subagentActiveTools:E,transcript:H,streamingAssistantMessage:w,todosList:I,mainThread:W}=s4A(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?dh1(W):void 0,[W]);q7A(W?.title);let L=w5.useRef(new a8),[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]=L5A(),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(me6)).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(()=>Y5A(v),[v]),d=U7A(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(j5A,{threadName:N,messages:B1,onExit:()=>R((Z1)=>({...Z1,baseView:"running"}))})}return g6(KA,{flexDirection:"column",minHeight:"100%",flexGrow:1,height:r,children:[W0(C41,{items:J1,children:(B1,Z1)=>{if(B1.type==="welcome")return W0(F7A,{},"welcome");let Y1=Z1===0?0:1;return B1.type==="message"?W0(X7A,{message:B1.message,marginTop:Y1},B1.id):W0(G5A,{toolUse:B1.toolUse,toolResult:B1.toolResult,marginTop:Y1},B1.id)}},s),g6(KA,{flexDirection:"column",marginTop:J1.length>1?1:0,children:[w&&W0(G7A,{message:w}),W0(J5A,{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(Y7A,{todos:I})}),Q1==="ui-error"&&T.uiError?W0(f41,{title:qf1(T.uiError).title,description:qf1(T.uiError).description,options:[{value:"dismiss",label:"Dismiss"}],onSelect:L1}):Q1==="ephemeral-error"&&z1?W0(T5A,{error:z1,onResponse:K1,ampURL:Z}):Q1==="confirming"&&h?W0(F5A,{currentConfirmation:h,onConfirmationResponse:G1}):Q1==="help"?W0($f1,{dependencies:[I],children:(B1)=>W0($5A,{width:B1})}):W0(KA,{flexGrow:1,borderStyle:"round",paddingX:1,children:W0($f1,{dependencies:[I],children:(B1)=>W0(k5A,{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(d5A,{view:Q1,threadViewState:U,threadTokenUsage:O,hasCompletedMessages:H.items.length>0}),W0(ue6,{commands:u,onSelect:k}),W0(pe6,{completions:D1.options,onSelect:n})]})]})}function ue6({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 pe6({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 w7A(A){let{worker:Q,threadID:B,settingsStorage:D,pipedInput:J,workerDeps:z,configService:K,fuzzyServer:Z}=A,[G,X]=TX.useState(!1);a4A();let Y=TX.useCallback((I,W,M,N)=>{return ce6(I,W,M,N,D,Q,z)},[D,Q,z]),U=TX.useCallback(async(I)=>{await Q.handle({type:"user:message",message:{content:[{type:"text",text:I}]}})},[Q]),{exit:F}=Yf1(),E=TX.useCallback(()=>{yK.cancel(B)},[B]);TX.useEffect(()=>{let I=setTimeout(()=>{X(!0)},500);return()=>clearTimeout(I)},[]);let H=TX.useRef(!1);if(TX.useEffect(()=>{if(H.current)return;if(J)H.current=!0,U(J),X(!0)},[J,U]),!G)return W0(E7A,{});let w=new Ff1;return W0(m4A,{configService:K,children:W0(H7A,{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 ce6(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=vf1.default;function I7A(A){return M0.level=1,Xf1(vf1.default.createElement(w7A,{...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 bf1=yf1.join(su0||yf1.join(process.env.HOME||process.cwd(),".local","state"),"amp","last-thread-id");async function gf1(A){try{await oe6(yf1.dirname(bf1),{recursive:!0}),await ee6(bf1,A,"utf-8")}catch(Q){S1.debug("Failed to save last thread ID",Q)}}async function O7A(){try{return(await te6(bf1,"utf-8")).trim()}catch(A){return null}}async function A12(A){let Q=await _Q(`/api/threads/${A}`);if(!Q.ok){let B=await Q.text();if(Q.status===404||B.includes("not found"))throw new eJ(VZ.threadNotFound(A));throw new eJ(`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 j7A=process.env.TERMINAL_EMULATOR?.includes("JetBrains")??!1,V7A=[{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??ZW,description:`Custom settings file path (overrides the default location ${ZW})`},{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:j7A,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}],L7A=(A)=>("deprecated"in A)&&A.deprecated===!0,Q12=(A)=>("hidden"in A)&&A.hidden===!0,B12=(A)=>("default"in A),D12=(A)=>("default"in A)?A.default:void 0;function J12(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 eJ(VZ.unknownCommand(B),1,K)}}async function MS(A,Q){th1("0.0.
|
4641
|
+
`)}})}var bf1=yf1.join(su0||yf1.join(process.env.HOME||process.cwd(),".local","state"),"amp","last-thread-id");async function gf1(A){try{await oe6(yf1.dirname(bf1),{recursive:!0}),await ee6(bf1,A,"utf-8")}catch(Q){S1.debug("Failed to save last thread ID",Q)}}async function O7A(){try{return(await te6(bf1,"utf-8")).trim()}catch(A){return null}}async function A12(A){let Q=await _Q(`/api/threads/${A}`);if(!Q.ok){let B=await Q.text();if(Q.status===404||B.includes("not found"))throw new eJ(VZ.threadNotFound(A));throw new eJ(`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 j7A=process.env.TERMINAL_EMULATOR?.includes("JetBrains")??!1,V7A=[{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??ZW,description:`Custom settings file path (overrides the default location ${ZW})`},{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:j7A,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}],L7A=(A)=>("deprecated"in A)&&A.deprecated===!0,Q12=(A)=>("hidden"in A)&&A.hidden===!0,B12=(A)=>("default"in A),D12=(A)=>("default"in A)?A.default:void 0;function J12(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 eJ(VZ.unknownCommand(B),1,K)}}async function MS(A,Q){th1("0.0.1753503170-g3da31d");let B=Q.settingsFile;S1.info("Using settings file",{settingsFile:B});let D=z$1(iu()),J=lu({settingsFile:B}),z=BB1({storage:J,secretStorage:D,workspaceRoots:UA.of([Q2.file(process.cwd())]),defaultAmpURL:A.ampURL}),K=Zv(),Z=oa1({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,il.subscribe((T)=>{S1.info("jetbrains-status",T)}),await LH(),!await tp1())if(j7A)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"]??[];Q_1(K,!1,X,Y);let U,F;if(!A.executeMode)U=new mv1(G.settings,process.cwd()),await U.start(),F=a2A(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 z12(A,D))process.exit(1)}let E=Yr1(),H=new WX1(E),w=new HX1(E),I=new tq1(H),W=Q.notifications!==void 0?Q.notifications:!A.executeMode,M=Nu0({playNotificationSound:async(L)=>{if(W)Mu0(L)},windowFocused:()=>Promise.resolve(!1),threadService:H,notifyForSubagents:!1});S1.info("Starting Amp background services");let N=i80({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 z12(A,Q){if(!A.executeMode){if(await v91("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 P7A(A,Q)}async function P7A(A,Q){let B=se6(32).toString("hex"),D=await M8A(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 K12(A){let Q=new Cu().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)ru(),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 K12(A){let Q=new Cu().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)ru(),process.exit(0);let Y=X.originalError??X;k_(Y)}),Q.option("-V, --version","output the version number",()=>{A5.write(`0.0.1753503170-g3da31d (released 2025-07-26T04:17:18.688Z)
|
4656
4656
|
`),process.exit(0)}),Q.addHelpText("after",H8A()),Q.configureHelp({formatHelp:w8A}),Q.command("logout").description("Log out by removing stored API key").action(async()=>{let X=Bz(),Y=iu();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 Cu("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(() => (C7A(),N7A)),{checkNpmUpdate:E}=await Promise.resolve().then(() => (nG1(),qr1)),H="0.0.
|
4688
|
+
`),process.exit(0)}catch(U){WQ(U instanceof Error?U.message:String(U))}}),Q.addCommand(K);let Z=new Cu("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(() => (C7A(),N7A)),{checkNpmUpdate:E}=await Promise.resolve().then(() => (nG1(),qr1)),H="0.0.1753503170-g3da31d";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.1753503170-g3da31d");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