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 ${qe(t.platform)} \xB7 ${qe(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>${oa(t)}</script>
195</div>`}function qe(t){return String(t??"").replace(/[&<>"']/g,e=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[e])}function oa(t){return JSON.stringify(t).replaceAll("<","\\u003c").replaceAll(">","\\u003e").replaceAll("&","\\u0026")}x();import zt from"node:fs/promises";import dn from"node:os";import it from"node:path";x();ot();_();import an from"node:fs/promises";import Wt from"node:path";import{spawn as fa}from"node:child_process";import Mt from"node
196`)})}async function wa(t,e=Ge[t],r={}){if(!e)return null;let n=r.platform||process.platform,o={...process.env,...r.env||{}},a=r.pathModule||(n==="win32"?Wt.win32:Wt),s=a.delimiter,c=a.join(Be,"node_modules",".bin"),i={...o,PATH:[c,o.PATH].filter(Boolean).join(s)},l=process.env[`ASTRAWORKS_ACP_${String(t||"").toUpperCase()}_BIN`],u=l&&await _a(l)?l:await ae(ya(t,e.command,{platform:n,env:o,pathModule:a}),{platform:n,env:i,pathModule:a,pathDelimiter:s});return u?{command:u,args:cn(e.args)}:null}function cn(t){return Array.isArray(t)?t.map(String):[]}async function ga(t,e){let r=await v(se,{});r[ ...
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 HighTrigger Reachable Command Output Exfiltration
A manifest entrypoint or package-local install chain reaches command-output exfiltration behavior.
197`),t.dashboard!==!1&&(n=await Sn({projectRoot:t.projectRoot,host:t.host||"127.0.0.1",port:t.port||4173,mode:"daemon"}),or(`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>${X(t)}</string>
203 <key>ProgramArguments</key>
205 <string>${X(process.execPath)}</string>
206${r.map(a=>` <string>${X(a)}</string>`).join(`
209 <key>WorkingDirectory</key>
210 <string>${X(o)}</string>
211 <key>EnvironmentVariables</key>
213${Object.entries(n).map(([a,s])=>` <key>${X(a)}</key>
214 <string>${X(s)}</string>`).join(`
Long lines were clipped for display.