Lines 174-214javascript
174 <header><small>\u6B65\u9AA4 2 / 3</small><h2>\u63A5\u5165\u9879\u76EE Agent</h2><p>\u9009\u62E9\u540E\u5C06\u5728\u9879\u76EE\u6839\u76EE\u5F55\u751F\u6210\u5BF9\u5E94\u7684 Agent \u5165\u53E3\u89C4\u8303\uFF0C\u5E76\u5B89\u88C5\u8BE5 Agent \u53EF\u8C03\u7528\u7684 AstraWorks Skills\u3002</p></header>
175 <div class="scan-toolbar"><div><strong data-scan-summary>\u6B63\u5728\u51C6\u5907\u626B\u63CF</strong><small data-scan-time>\u7CFB\u7EDF ${ze(t.platform)} \xB7 ${ze(t.architecture)}</small></div><button type="button" data-command="scan-agents">\u91CD\u65B0\u626B\u63CF</button></div>
176 <div class="agent-list" data-agent-list></div>
177 <div class="agent-help"><strong>\u5165\u53E3\u4E0E\u8FD0\u884C\u901A\u9053</strong><p>Codex / Cursor \u4F7F\u7528 AGENTS.md\uFF0CClaude Code \u4F7F\u7528 CLAUDE.md\uFF0CWorkBuddy \u4F7F\u7528 CODEBUDDY.md\u3002\u5165\u53E3\u6587\u4EF6\u63CF\u8FF0\u5DE5\u4F5C\u5F15\u64CE\u89C4\u8303\u548C\u7ECF\u9A8C\u6C89\u6DC0\u4F4D\u7F6E\uFF1BCLI \u6216 ACP \u8D1F\u8D23\u540E\u7EED Loop \u8C03\u5EA6\u3002</p></div>
178 <footer><button type="button" data-command="previous-step">\u8FD4\u56DE</button><button type="button" class="primary" data-command="next-step">\u4E0B\u4E00\u6B65</button></footer>
181 <section class="setup-step" data-step="3">
182 <header><small>\u6B65\u9AA4 3 / 3</small><h2>\u786E\u8BA4\u9879\u76EE\u540D\u79F0</h2><p>\u5B8C\u6210\u540E\u5C06\u521D\u59CB\u5316 Agent \u5165\u53E3\u3001Skills\u3001\u77E5\u8BC6\u7A7A\u95F4\u548C\u9ED8\u8BA4\u81EA\u8FD0\u4F5C Loop\u3002</p></header>
183 <div class="form-grid">
184 <label class="full"><span>\u9879\u76EE\u540D\u79F0</span><input name="name" placeholder="\u5BA2\u6237\u6210\u529F\u5DE5\u4F5C\u53F0"></label>
186 <div class="setup-summary" data-setup-summary></div>
187 <footer><button type="button" data-command="previous-step">\u8FD4\u56DE</button><button type="submit" class="primary" data-submit>\u5B8C\u6210\u521D\u59CB\u5316</button></footer>
190 <div class="setup-message" data-setup-message hidden></div>
194 <script type="application/json" data-project-setup-data>${Yo(t)}</script>
195</div>`}function ze(t){return String(t??"").replace(/[&<>"']/g,e=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[e])}function Yo(t){return JSON.stringify(t).replaceAll("<","\\u003c").replaceAll(">","\\u003e").replaceAll("&","\\u0026")}E();import zt from"node:fs/promises";import an from"node:os";import it from"node:path";E();nt();S();import tn from"node:fs/promises";import st from"node:path";import{spawn as Xo}from"node:child_process";var Ue=st.join(L,"connectors
196`)})}async function Zo(t,e=We[t]){if(!e)return null;let r=process.env[`ASTRAWORKS_ACP_${String(t||"").toUpperCase()}_BIN`],n=r&&await ae(r)?r:await ta(e.command);return n?{command:n,args:rn(e.args)}:null}async function ta(t){for(let e of Array.isArray(t)?t:[t]){if(!e)continue;if(st.isAbsolute(e)){if(await ae(e))return e;continue}let r=process.platform==="win32"?`${e}.cmd`:e,n=st.join(Ue,"node_modules",".bin",r);if(await ae(n))return n;for(let o of String(process.env.PATH||"").split(st.delimiter).filter(Boolean)){let a=st.join(o,r);if(await ae(a))return a}}return null}function rn(t){return Arra ...
HighSame File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
dist/install/runtime.mjsView on unpkg · L194 HighCommand Output Exfiltration
Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.
dist/install/runtime.mjsView on unpkg · L194 197`),t.dashboard!==!1&&(n=await hn({projectRoot:t.projectRoot,host:t.host||"127.0.0.1",port:t.port||4173,mode:"daemon"}),rr(`dashboard ${n.url}`)),await r.start(),await s("running"
198<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
202 <string>${Y(t)}</string>
203 <key>ProgramArguments</key>
205 <string>${Y(process.execPath)}</string>
206${r.map(a=>` <string>${Y(a)}</string>`).join(`
209 <key>WorkingDirectory</key>
210 <string>${Y(o)}</string>
211 <key>EnvironmentVariables</key>
213${Object.entries(n).map(([a,s])=>` <key>${Y(a)}</key>
214 <string>${Y(s)}</string>`).join(`
Long lines were clipped for display.