@tianshu-ai/tianshu 0.3.18 → 0.3.20
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/package.json +1 -1
- package/packages/server/builtinConfig/plugins/workboard/manifest.json +2 -1
- package/packages/web/dist/assets/{index-BMFcYw7S.js → index-CEIw68Su.js} +1 -1
- package/packages/web/dist/index.html +1 -1
- package/plugins/workboard/dist/db/tasks.d.ts +76 -0
- package/plugins/workboard/dist/db/tasks.d.ts.map +1 -1
- package/plugins/workboard/dist/db/tasks.js +157 -0
- package/plugins/workboard/dist/db/tasks.js.map +1 -1
- package/plugins/workboard/dist/server.d.ts.map +1 -1
- package/plugins/workboard/dist/server.js +7 -1
- package/plugins/workboard/dist/server.js.map +1 -1
- package/plugins/workboard/dist/tools/index.d.ts +16 -0
- package/plugins/workboard/dist/tools/index.d.ts.map +1 -1
- package/plugins/workboard/dist/tools/index.js +104 -1
- package/plugins/workboard/dist/tools/index.js.map +1 -1
- package/plugins/workboard/dist/worker/tool-policy.d.ts.map +1 -1
- package/plugins/workboard/dist/worker/tool-policy.js +5 -0
- package/plugins/workboard/dist/worker/tool-policy.js.map +1 -1
- package/plugins/workboard/manifest.json +2 -1
package/package.json
CHANGED
|
@@ -56,7 +56,8 @@
|
|
|
56
56
|
{ "id": "task_retry_fresh", "module": "TaskRetryFreshTool" },
|
|
57
57
|
{ "id": "task_extend_timeout", "module": "TaskExtendTimeoutTool" },
|
|
58
58
|
{ "id": "task_abort", "module": "TaskAbortTool" },
|
|
59
|
-
{ "id": "model_list", "module": "ModelListTool" }
|
|
59
|
+
{ "id": "model_list", "module": "ModelListTool" },
|
|
60
|
+
{ "id": "worker_analytics", "module": "WorkerAnalyticsTool" }
|
|
60
61
|
],
|
|
61
62
|
"skills": [
|
|
62
63
|
{ "id": "workboard-howto", "path": "skills/workboard-howto.md" },
|
|
@@ -22,7 +22,7 @@ Personal directories (use freely):
|
|
|
22
22
|
- Don't leave scratch artefacts in ./projects/ or the root — use ./tmp/.
|
|
23
23
|
- Other users' homes in this tenant are off-limits; you cannot reach them.`},{id:`workspace-references`,text:`Referencing files in your reply:
|
|
24
24
|
- When you point at a workspace file in your response (e.g. an image you just wrote, a generated report, an attachment), use the workspace:// URI you got back from the fs tool, e.g. \`\`.
|
|
25
|
-
- The chat UI knows how to render those; absolute host paths or bare "./foo" links won't preview.`},{id:`edit-vs-write`,text:"- `edit_file` is for changes to an existing file (in-place exact-text replace, atomic). `write_file` is for new files or full rewrites of the entire file. Prefer editing existing files; do not create new files unless asked."},{id:`edit-old-text-uniqueness`,text:'- Each `edit_file` `old_text` must appear exactly once in the file. Keep `old_text` as small as possible while still being unique — don\'t pad with large unchanged regions to "connect" two distant changes; emit two separate edits in the same `edits[]` batch instead.'},{id:`read-before-edit`,text:"- Before `edit_file` (or `write_file` overwrite) on a file you haven't seen yet in this session, call `read_file` once. The host tracks reads per session, so a single full-file read covers any number of follow-up `edit_file` / `write_file` calls on that same path — don't re-read between edits. Files you just created with `write_file` count as already-read; you can `edit_file` them right away without reading first."}]}},rF={id:`microsandbox`,version:`0.1.0`,displayName:`MicroSandbox`,description:`Per-tenant shell sandbox running on microsandbox (Apple Virtualization.framework / KVM). Provides sandbox.shell + an opt-in browser.cdp sidecar (Stealth Chromium via CloakBrowser + Playwright MCP + noVNC; lit up by a follow-up PR).`,author:`tianshu-ai`,license:`Apache-2.0`,permissions:[`workspace.read`,`workspace.write`,`process.spawn`],provides:[`sandbox.shell`,`sandbox.taskPool`,`browser.cdp`],client:{entry:`@tianshu-builtin/plugin-microsandbox/client`},server:{entry:`@tianshu-builtin/plugin-microsandbox/server`},contributes:{topBarButtons:[{id:`browser`,icon:`Globe`,tooltip:`Browser viewport (noVNC)`,opensPanel:`microsandbox.browser`,order:210}],rightPanels:[{id:`browser`,displayName:`Browser`,component:`BrowserViewportPanel`}],adminPages:[{id:`main`,displayName:`Sandbox`,icon:`Box`,component:`MicroSandboxAdminPage`,group:`Plugins`,order:100}],sandboxes:[{id:`main`,kind:`shell`,displayName:`MicroSandbox`,module:`MicroSandboxRunner`}],tools:[{id:`exec`,module:`ExecTool`},{id:`reset_sandbox`,module:`ResetSandboxTool`},{id:`get_sandbox_status`,module:`GetSandboxStatusTool`},{id:`update_sandbox_config`,module:`UpdateSandboxConfigTool`},{id:`build_sandbox`,module:`BuildSandboxTool`},{id:`list_sandbox_builds`,module:`ListSandboxBuildsTool`},{id:`use_sandbox_build`,module:`UseSandboxBuildTool`},{id:`browser_health_check`,module:`BrowserHealthCheckTool`}],toolsets:[{id:`browser`,module:`BrowserToolset`,displayName:`Playwright (Browser)`}],skills:[{id:`exec-howto`,path:`skills/microsandbox-exec-howto.md`},{id:`config`,path:`skills/microsandbox-config.md`},{id:`build-use`,path:`skills/microsandbox-build-use.md`},{id:`browser-howto`,path:`skills/microsandbox-browser-howto.md`},{id:`libreoffice`,path:`skills/microsandbox-libreoffice.md`}],systemPromptFragments:[{id:`no-foreground-servers`,text:"- Long-running servers (`python -m http.server`, `npm start`, `npm run dev`, anything that listens on a port and never returns) WILL hang the `exec` call until the host's per-call timeout fires (5 min default). Even with `nohup` alone the call hangs because microsandbox's exec channel waits for the started process tree's stdio to close, and nohup doesn't close stdin or detach from the controlling terminal.\n\n If you need to start a server, the ONLY safe pattern is:\n\n nohup setsid <cmd> > /tmp/srv.log 2>&1 < /dev/null &\n\n All four pieces are required: `setsid` puts the process in a new session (no controlling terminal); `< /dev/null` closes stdin; `>/tmp/srv.log 2>&1` redirects stdout AND stderr; trailing `&` puts it in the shell background. Skip any one and exec hangs.\n\n Then verify with `curl http://localhost:<port>/...` in a separate exec call. Don't background-then-curl in the same shell line — the shell process itself becomes the parent and won't exit."},{id:`already-installed-runtimes`,text:"- The sandbox already ships chromium (CDP 9222), Playwright MCP (3200), LibreOffice, Node 22, and Python 3.12. Don't `apt install` / `pip install` / `playwright install` what's already there."},{id:`task-sandbox-is-ephemeral`,text:"- If you are running as a workboard task worker (you have a workboard task id and your run will end with `task_complete`), the sandbox you `exec` in is per-task and gets stopped the moment the task terminates. Anything you nohup / setsid / disown into the background dies with the sandbox — don't try to leave servers / queues / cron jobs / file watchers running for someone else to consume. Run the work inline, capture its output to a file under your home, then `task_complete` with the file path.\n\n Concrete VERIFY-task pattern: if the deliverable is an HTML / PDF / image file and you want to confirm it renders, DON'T spin up `python -m http.server` to serve it. Either (a) use a Playwright MCP `browser_navigate` to `file:///workspace/users/<self>/projects/<slug>/report.html` directly (Playwright MCP is configured with `--allow-unrestricted-file-access`, so file:// URLs work), or (b) `cat` / `head` the file and inspect the structure inline, or (c) for charts, check the rendered file's size + that it contains expected canvas/svg/img markup (`grep -c '<canvas\\|<svg\\|<img' report.html`). Spinning up a transient http server adds a process that has to be cleanly torn down before task_complete, and the typical agent forgets the `setsid + </dev/null` pattern and hangs the run.\n\n Long-lived background services belong in a chat session (the long-lived sandbox there survives between turns), not in a task. Installed packages, files you wrote, and other on-disk state DO survive across attempts of the same task — only running processes don't."}],apiRoutes:[{method:`GET`,path:`/status`,handler:`status`},{method:`GET`,path:`/sandboxfile`,handler:`getSandboxfile`},{method:`PUT`,path:`/sandboxfile`,handler:`putSandboxfile`},{method:`GET`,path:`/sandboxfile/templates`,handler:`getSandboxfileTemplates`},{method:`GET`,path:`/builds`,handler:`getBuilds`},{method:`POST`,path:`/builds`,handler:`postBuilds`},{method:`POST`,path:`/builds/use`,handler:`postUseBuild`},{method:`POST`,path:`/reset`,handler:`postReset`},{method:`POST`,path:`/exec`,handler:`postExec`},{method:`GET`,path:`/task-pool`,handler:`getTaskPool`},{method:`POST`,path:`/task-pool/destroy`,handler:`postTaskPoolDestroy`},{method:`GET`,path:`/browser/status`,handler:`getBrowserStatus`},{method:`POST`,path:`/browser/restart`,handler:`postBrowserRestart`},{method:`POST`,path:`/browser/resize`,handler:`postBrowserResize`}]},configSchema:{fields:[{key:`memoryMib`,label:`Browser sandbox memory`,kind:`number`,unit:`MiB`,min:512,max:65536,step:512,default:2048,description:`RAM allotted to the long-lived Browser sandbox VM. Increase to 8192+ MiB for browser-heavy workloads (chromium + Playwright MCP), 12288+ for build-time pip / npm of large stacks. Restart the sandbox (Reset) for the new value to take effect.`},{key:`cpus`,label:`Browser sandbox vCPU count`,kind:`number`,min:1,max:16,step:1,default:2,description:`Logical CPU count handed to the long-lived Browser sandbox VM. Reset the sandbox after changing.`},{key:`execTimeoutMs`,label:`Per-exec timeout (Browser)`,kind:`number`,unit:`ms`,min:5e3,max:18e5,step:5e3,default:3e5,description:"Max wall-clock time for one Browser `exec` call before it's force-killed. Bump this for long-running installers; consider running them with `nohup setsid … &` instead."},{key:`taskMemoryMib`,label:`Task sandbox memory`,kind:`number`,unit:`MiB`,min:512,max:65536,step:512,default:2048,description:`RAM allotted to per-task sandbox VMs (forked from the Task snapshot). Set lower than the Browser value to fit more parallel tasks; raise it for tasks that need a heavy data-science stack. Effective on the next task acquire.`},{key:`taskCpus`,label:`Task sandbox vCPU count`,kind:`number`,min:1,max:16,step:1,default:2,description:`Logical CPU count handed to each per-task sandbox VM. Effective on the next task acquire.`},{key:`taskExecTimeoutMs`,label:`Per-exec timeout (Task)`,kind:`number`,unit:`ms`,min:5e3,max:18e5,step:5e3,default:3e5,description:"Max wall-clock time for one Task `exec` call before it's force-killed. Per-task sandboxes typically run shorter, more focused commands than the Browser sandbox."},{key:`taskIdleShutdownMs`,label:`Task sandbox idle shutdown`,kind:`number`,unit:`ms`,min:0,max:864e5,step:6e4,default:6e5,description:`How long a task sandbox stays alive after its task ends before it's stopped. 0 = stop immediately on release. Higher values trade RAM for faster reuse when the same kind of task runs again soon.`}]}},iF={id:`web-search`,version:`0.1.0`,displayName:`Web Search`,description:`Web search via Tavily and Brave Search APIs. One tool, two providers, automatic fallback. Set API keys in Settings → Plugins.`,author:`tianshu-ai`,license:`Apache-2.0`,permissions:[`network.external`],server:{entry:`@tianshu-builtin/plugin-web-search/server`},contributes:{tools:[{id:`web_search`,module:`WebSearchTool`}],skills:[{id:`web-search-howto`,path:`skills/web-search-howto.md`}],apiRoutes:[{method:`GET`,path:`/health`,handler:`getHealth`},{method:`POST`,path:`/health/reset`,handler:`resetHealth`}]},configSchema:{fields:[{key:`tavilyApiKey`,label:`Tavily API key`,kind:`secret`,placeholder:`tvly-...`,description:`Sign up at tavily.com (free tier 1000 searches/month). Stored under <tenant>/secrets/, never returned to the browser.`},{key:`braveApiKey`,label:`Brave Search API key`,kind:`secret`,placeholder:`BSA...`,description:`Optional. Get a free key at api-dashboard.search.brave.com (2000/month). Used as fallback when Tavily fails or returns nothing.`},{key:`preferredProvider`,label:`Preferred provider`,kind:`select`,default:`tavily`,options:[{label:`Tavily`,value:`tavily`},{label:`Brave`,value:`brave`}],description:`Tried first when both keys are set. The other provider is used as automatic fallback only on transient errors (network / 5xx / 429). Auth failures (401 / 403) park the bad key in the health cache; clear it from Settings after fixing the key.`},{key:`timeoutMs`,label:`Per-request timeout`,kind:`number`,unit:`ms`,min:1e3,max:6e4,step:500,default:8e3,description:`Network timeout for each provider call. Increase if you hit timeouts on slow networks.`}]}},aF={id:`workboard`,version:`0.1.0`,displayName:`Workboard`,description:`Kanban task board with a worker pool. The orchestrator drops tasks onto the board; workers pick them up, run them, and report back. v0.2 ships an echo worker so the full ready→in-progress→done loop is visible end-to-end; real worker runtimes (qianliyan / luban / xihe / nvwa) land in follow-up PRs as separate plugins.`,author:`tianshu-ai`,license:`Apache-2.0`,permissions:[`workspace.read`,`tenant.db`],requires:[`host.agentLoop`,`host.sessionInbox`,`host.toolCatalog`,`host.skillCatalog`,`host.modelCatalog`],client:{entry:`@tianshu-builtin/plugin-workboard/client`},server:{entry:`@tianshu-builtin/plugin-workboard/server`},contributes:{topBarButtons:[{id:`toggle`,icon:`Kanban`,tooltip:`Task board`,opensPanel:`workboard.main`,order:200}],rightPanels:[{id:`main`,displayName:`Tasks`,component:`WorkboardPanel`}],sidebarSections:[{id:`workers`,displayName:`Workers`,component:`WorkersSidebarSection`,after:`workers`,order:100}],adminPages:[{id:`agents`,displayName:`Worker agents`,icon:`Bot`,component:`WorkerAgentsPage`,order:10}],tools:[{id:`task_list`,module:`TaskListTool`},{id:`task_create`,module:`TaskCreateTool`},{id:`task_update`,module:`TaskUpdateTool`},{id:`task_move`,module:`TaskMoveTool`},{id:`task_delete`,module:`TaskDeleteTool`},{id:`task_get_history`,module:`TaskGetHistoryTool`},{id:`task_complete`,module:`TaskCompleteTool`},{id:`task_continue`,module:`TaskContinueTool`},{id:`task_retry_fresh`,module:`TaskRetryFreshTool`},{id:`task_extend_timeout`,module:`TaskExtendTimeoutTool`},{id:`task_abort`,module:`TaskAbortTool`},{id:`model_list`,module:`ModelListTool`}],skills:[{id:`workboard-howto`,path:`skills/workboard-howto.md`},{id:`worker-creator`,path:`skills/worker-creator.md`},{id:`worker-fleet`,path:`skills/worker-fleet.md`},{id:`large-input-large-output`,path:`skills/large-input-large-output.md`}],agentSeeds:[{id:`echo-demo`,path:`agent-seeds/echo-demo`},{id:`llm-default`,path:`agent-seeds/llm-default`}],systemPromptFragments:[{id:`prefer-delegation`,text:'The workboard is active in this tenant. For any non-trivial user request — anything that takes more than a few minutes, fans out into multiple steps, or has clearly separable roles (design / build / test, research / write, etc.) — your default is to DELEGATE to worker agents via `task_create` rather than execute it yourself. The `worker-fleet` skill covers task decomposition (plan / design / build / verify phases), task sizing (avoiding max_tokens stalls on monolithic tasks), worker selection (matching by capability), and brief authoring (each task description is the worker\'s only view of the work) — read it before designing the task graph. Reuse existing workers (run `tenant_config_list({path:"workers"})` first); the `worker-creator` skill covers authoring agent.json + SOUL.md when no existing worker fits. Do the work yourself directly only when (a) the user explicitly says so, (b) the request is trivial (single tool call, one-line answer, quick lookup), or (c) the user wants a synchronous reply. When in doubt, ack the plan and give the user a chance to override.'},{id:`summarize-on-completion`,text:"When the workboard tasks you delegated for the user's current request have all finished, your job isn't done — you owe the user a synthesised reply. Steps: (1) Call `task_list({status:\"done\"})` (or filter by labels/ids you tracked) to confirm every task you created in this turn has actually completed; if any are still running, wait or fetch their status before composing. (2) For each completed task, call `task_get_history({id})` and READ the worker's actual output — don't trust `resultSummary` alone; workers sometimes write a one-liner that hides nuance, errors, or important findings. Skim the final assistant message + any tool results that produced files. (3) Compose ONE coherent reply to the user that: covers the original goal, integrates the per-task findings into a narrative (not a bulleted dump of resultSummaries), explicitly cites every output file the workers produced (use the file's path, and where the tenant has the `files` plugin enabled use the standard file-reference markup the user's chat client understands so they can click through), and surfaces any failures / partial results honestly. (4) If a task ended in awaiting-intervention, do NOT just report the failure — either resolve it yourself (task_continue / task_retry_fresh / task_extend_timeout / task_abort) before replying, or include in the reply a concrete suggestion for what the user should choose. Keep the synthesis honest: if outputs contradict each other or a worker punted, say so; don't paper over with cheerful language."}],apiRoutes:[{method:`GET`,path:`/tasks`,handler:`listTasks`},{method:`POST`,path:`/tasks`,handler:`createTask`},{method:`POST`,path:`/tasks/delete`,handler:`deleteTask`},{method:`PATCH`,path:`/tasks/:id`,handler:`patchTask`},{method:`GET`,path:`/tasks/:id/history`,handler:`taskHistory`},{method:`GET`,path:`/projects`,handler:`listProjects`},{method:`GET`,path:`/workers/status`,handler:`workerStatus`},{method:`POST`,path:`/workers/restart`,handler:`workerRestart`},{method:`GET`,path:`/agents`,handler:`listAgents`},{method:`PATCH`,path:`/agents/:slug/enabled`,handler:`setAgentEnabled`}]},configSchema:{fields:[{key:`echo.enabled`,label:`Enabled`,kind:`boolean`,default:!0,group:{id:`worker-type-echo`,label:`echo`,badge:`worker type`}},{key:`echo.delayMs`,label:`Simulated execution delay`,description:`How long an echo worker pretends to be busy on each task before marking it done. 0 makes tasks complete instantly.`,kind:`number`,default:3e4,min:0,step:1e3,unit:`ms`,group:{id:`worker-type-echo`,label:`echo`,badge:`worker type`}},{key:`llm.enabled`,label:`Enabled`,kind:`boolean`,default:!0,group:{id:`worker-type-llm`,label:`llm`,badge:`worker type`}},{key:`llm.firstResponseSec`,label:`First-response timeout`,description:`Hard cap on how long the LLM has to start streaming the very first event of the run. Catches connection-hung scenarios. Set to 0 to disable.`,kind:`number`,default:300,min:0,step:30,unit:`s`,group:{id:`worker-type-llm`,label:`llm`,badge:`worker type`}},{key:`llm.idleSec`,label:`Idle timeout`,description:"Mid-stream silence cap: if the LLM goes this long without emitting any event, abort the run as stuck. Long enough to allow large `write_file` arguments to stream through.",kind:`number`,default:600,min:0,step:60,unit:`s`,group:{id:`worker-type-llm`,label:`llm`,badge:`worker type`}},{key:`llm.maxRunSec`,label:`Max run time`,description:`Total wall-clock cap for one task run, across all turns. Protects against runaway loops.`,kind:`number`,default:1800,min:0,step:60,unit:`s`,group:{id:`worker-type-llm`,label:`llm`,badge:`worker type`}}]}},oF=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),J=o(((e,t)=>{t.exports=oF()}))();function sF(){return globalThis}function cF(e){sF().__tianshuPluginSdkComposer__=e}function lF(){return globalThis}function uF(e){lF().__tianshuPluginSdkOpenFile__=e}function dF(){return globalThis}function fF(e){dF().__tianshuPluginSdkPluginConfigForm__=e}var pF=e=>{let t=dF().__tianshuPluginSdkPluginConfigForm__;return t?S.createElement(t,e):null};function mF(){return e=>{let t=lF().__tianshuPluginSdkOpenFile__;if(!t){let t=e.replace(/^workspace:\/\/+/,`/`),n=`/api/p/files/raw?path=${encodeURIComponent(t)}`;window.open(n,`_blank`,`noopener`);return}t.open(e)}}var hF=`/api/p/files`,gF=new Set([`.png`,`.jpg`,`.jpeg`,`.gif`,`.webp`,`.bmp`,`.ico`,`.svg`]),_F=new Set([`.js`,`.cjs`,`.mjs`,`.ts`,`.jsx`,`.tsx`,`.py`,`.rb`,`.go`,`.rs`,`.c`,`.cpp`,`.h`,`.java`,`.kt`,`.swift`,`.sh`,`.bash`,`.zsh`,`.lua`,`.php`,`.pl`,`.vue`,`.svelte`]),vF=new Set([`.json`,`.yaml`,`.yml`,`.toml`,`.xml`,`.csv`,`.tsv`]),yF=new Set([`.mp4`,`.avi`,`.mov`,`.mkv`,`.webm`,`.m4v`]),bF=new Set([`.mp3`,`.wav`,`.ogg`,`.flac`,`.aac`,`.m4a`]),xF=new Set([`.zip`,`.tar`,`.gz`,`.tgz`,`.rar`,`.7z`,`.bz2`]),SF=new Set([`.md`,`.markdown`,`.txt`,`.log`,`.html`,`.css`,`.env`]);function CF(e){if(e.type===`directory`)return(0,J.jsx)($h,{size:16,className:`text-yellow-500`});let t=(e.extension??``).toLowerCase();return gF.has(t)?(0,J.jsx)(Fv,{size:16,className:`text-green-400`}):_F.has(t)?(0,J.jsx)(Vd,{size:16,className:`text-blue-400`}):vF.has(t)?(0,J.jsx)(Jm,{size:16,className:`text-orange-400`}):yF.has(t)?(0,J.jsx)(uh,{size:16,className:`text-purple-400`}):bF.has(t)?(0,J.jsx)(YS,{size:16,className:`text-pink-400`}):xF.has(t)?(0,J.jsx)(Ci,{size:16,className:`text-gray-400`}):SF.has(t)?(0,J.jsx)(Qm,{size:16,className:`text-gray-300`}):(0,J.jsx)(sh,{size:16,className:`text-gray-500`})}function wF(e){return e===0?`—`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(1)} GB`}function TF(e){if(e===0)return`—`;let t=Date.now()-e;return t<6e4?`Just now`:t<36e5?`${Math.floor(t/6e4)}m ago`:t<864e5?`${Math.floor(t/36e5)}h ago`:t<7*864e5?`${Math.floor(t/864e5)}d ago`:new Date(e).toLocaleDateString()}function EF({plugin:e}){let[t,n]=(0,S.useState)(`/`),[r,i]=(0,S.useState)(null),[a,o]=(0,S.useState)(!1),[s,c]=(0,S.useState)(null),[l,u]=(0,S.useState)(``),[d,f]=(0,S.useState)(`name`),[p,m]=(0,S.useState)(`asc`),[h,g]=(0,S.useState)(`list`),[_,v]=(0,S.useState)(null),y=(0,S.useCallback)(async e=>{o(!0),c(null);try{let t=await fetch(`${hF}/list?dir=${encodeURIComponent(e)}`,{credentials:`include`});if(!t.ok)throw Error(`${t.status}`);i(await t.json())}catch(e){c(e instanceof Error?e.message:String(e)),i(null)}finally{o(!1)}},[]);(0,S.useEffect)(()=>{y(t)},[t,y]);let b=(0,S.useMemo)(()=>{if(!r)return[];let e=[...r.entries];return e.sort((e,t)=>{if(e.type!==t.type)return e.type===`directory`?-1:1;let n=0;return n=d===`name`?e.name.localeCompare(t.name):d===`size`?e.size-t.size:e.modifiedMs-t.modifiedMs,p===`asc`?n:-n}),e},[r,d,p]),x=(0,S.useMemo)(()=>{if(!l)return b;let e=l.toLowerCase();return b.filter(t=>t.name.toLowerCase().includes(e))},[b,l]),C=e=>{u(``),n(e)};function w(e){d===e?m(e=>e===`asc`?`desc`:`asc`):(f(e),m(`asc`))}let T=t===`/`?[`/`]:[`/`,...t.split(`/`).filter(Boolean)];return(0,J.jsxs)(`div`,{className:`flex h-full flex-col bg-gray-950 text-gray-300`,children:[(0,J.jsxs)(`div`,{className:`space-y-2 border-b border-gray-800 px-3 py-2`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1 overflow-x-auto text-sm`,children:[t!==`/`&&(0,J.jsx)(`button`,{type:`button`,onClick:()=>C(t.substring(0,t.lastIndexOf(`/`))||`/`),className:`mr-1 shrink-0 text-gray-500 hover:text-gray-300`,title:`Up one level`,children:(0,J.jsx)(Ji,{size:14})}),T.map((e,t)=>{let n=t===0?`/`:`/`+T.slice(1,t+1).join(`/`),r=t===T.length-1;return(0,J.jsxs)(`span`,{className:`flex shrink-0 items-center`,children:[t>0&&(0,J.jsx)(zl,{size:12,className:`mx-0.5 text-gray-600`}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>C(n),className:[`rounded px-1 hover:text-white`,r?`font-medium text-white`:`text-gray-500`].join(` `),children:t===0?`~`:e})]},t)})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsxs)(`div`,{className:`relative flex-1`,children:[(0,J.jsx)(fD,{size:14,className:`pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-gray-500`}),(0,J.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`Filter files...`,className:`w-full rounded border border-gray-800 bg-gray-900 py-1 pl-8 pr-2 text-sm text-gray-300 placeholder-gray-600 focus:border-gray-600 focus:outline-none`})]}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>y(t),className:`rounded p-1.5 text-gray-400 hover:bg-gray-800 hover:text-gray-200`,title:`Refresh`,children:(0,J.jsx)(ZT,{size:14,className:a?`animate-spin`:``})}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>g(h===`list`?`grid`:`list`),className:`rounded p-1.5 text-gray-400 hover:bg-gray-800 hover:text-gray-200`,title:`Toggle view`,children:h===`list`?(0,J.jsx)(Sy,{size:14}):(0,J.jsx)(wy,{size:14})})]})]}),h===`list`&&(0,J.jsxs)(`div`,{className:`flex select-none items-center border-b border-gray-800/50 px-3 py-1 text-xs text-gray-500`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:()=>w(`name`),className:`flex flex-1 items-center gap-1 text-left hover:text-gray-300`,children:[`Name `,d===`name`&&(0,J.jsx)(na,{size:10})]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>w(`size`),className:`flex w-20 items-center justify-end gap-1 text-right hover:text-gray-300`,children:[`Size `,d===`size`&&(0,J.jsx)(na,{size:10})]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>w(`modified`),className:`flex w-24 items-center justify-end gap-1 text-right hover:text-gray-300`,children:[`Modified `,d===`modified`&&(0,J.jsx)(na,{size:10})]})]}),(0,J.jsxs)(`div`,{className:`flex-1 overflow-auto`,children:[a&&!r?(0,J.jsx)(`div`,{className:`flex h-32 items-center justify-center`,children:(0,J.jsx)(db,{size:20,className:`animate-spin text-gray-500`})}):s?(0,J.jsx)(`div`,{className:`p-4 text-center text-sm text-rose-400`,children:s}):x.length===0?(0,J.jsx)(`div`,{className:`p-8 text-center text-sm text-gray-600`,children:l?`No matching files`:`Empty directory`}):h===`list`?(0,J.jsx)(`ul`,{className:`divide-y divide-gray-800/30`,children:x.map(e=>(0,J.jsxs)(`li`,{className:`group flex cursor-pointer items-center px-3 py-1.5 hover:bg-gray-800/50`,onClick:()=>{e.type===`directory`?C(e.path):v(e)},children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[CF(e),(0,J.jsx)(`span`,{className:`truncate text-sm`,children:e.name})]}),(0,J.jsx)(`span`,{className:`w-20 text-right text-xs text-gray-500`,children:e.type===`file`?wF(e.size):`—`}),(0,J.jsx)(`span`,{className:`w-24 text-right text-xs text-gray-500`,children:TF(e.modifiedMs)})]},e.path))}):(0,J.jsx)(`div`,{className:`grid grid-cols-3 gap-2 p-3`,children:x.map(e=>(0,J.jsxs)(`button`,{type:`button`,onClick:()=>{e.type===`directory`?C(e.path):v(e)},className:`flex cursor-pointer flex-col items-center rounded-lg p-3 hover:bg-gray-800/50`,children:[(0,J.jsx)(`div`,{className:`mb-1`,children:CF(e)}),(0,J.jsx)(`span`,{className:`w-full truncate text-center text-xs`,children:e.name})]},e.path))}),r?.truncated&&(0,J.jsx)(`div`,{className:`px-3 py-2 text-[10px] text-amber-400`,children:`Listing truncated at 5000 entries.`})]}),_&&(0,J.jsx)(DF,{entry:_,onClose:()=>v(null)})]})}function DF({entry:e,onClose:t}){let[n,r]=(0,S.useState)(null),[i,a]=(0,S.useState)(null),o=(e.extension??``).toLowerCase(),s=gF.has(o);(0,S.useEffect)(()=>{if(s){r({path:e.path,size:e.size,modifiedMs:e.modifiedMs,binary:!0});return}let t=!1;return a(null),fetch(`${hF}/read?path=${encodeURIComponent(e.path)}`,{credentials:`include`}).then(async e=>{if(!e.ok){if(e.status===413){let t=await e.json();throw Error(`File is ${wF(t.size)}, exceeds the ${wF(t.maxBytes)} preview cap.`)}throw Error(`HTTP ${e.status}`)}return await e.json()}).then(e=>{t||r(e)}).catch(e=>{t||a(e instanceof Error?e.message:String(e))}),()=>{t=!0}},[e.path,e.size,e.modifiedMs,s]);let c=(0,S.useRef)(null);return(0,S.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]),(0,J.jsx)(`div`,{ref:c,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/70 p-6 backdrop-blur-sm`,onClick:t,children:(0,J.jsxs)(`div`,{className:`flex h-full max-h-[80vh] w-full max-w-3xl flex-col overflow-hidden rounded-xl border border-gray-700 bg-gray-900 shadow-2xl`,onClick:e=>e.stopPropagation(),children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between border-b border-gray-800 px-4 py-2.5`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[CF(e),(0,J.jsx)(`span`,{className:`truncate text-sm font-medium text-gray-100`,children:e.name}),(0,J.jsxs)(`span`,{className:`flex-shrink-0 text-[11px] text-gray-500`,children:[wF(e.size),` · `,TF(e.modifiedMs)]})]}),(0,J.jsx)(`button`,{type:`button`,onClick:t,className:`btn-ghost p-1.5`,"aria-label":`Close`,children:(0,J.jsx)(IP,{size:16})})]}),(0,J.jsx)(`div`,{className:`flex-1 overflow-auto bg-gray-950`,children:i?(0,J.jsx)(`div`,{className:`p-6 text-center text-sm text-rose-300`,children:i}):n?s?(0,J.jsx)(`img`,{src:`${hF}/raw?path=${encodeURIComponent(e.path)}`,alt:e.name,className:`mx-auto max-h-full max-w-full`}):n.binary?(0,J.jsxs)(`div`,{className:`p-6 text-center text-sm text-gray-500`,children:[`Binary file (`,wF(n.size),`). No preview available.`]}):(0,J.jsx)(`pre`,{className:`whitespace-pre-wrap break-all p-4 font-mono text-xs text-gray-200`,children:n.content}):(0,J.jsx)(`div`,{className:`flex h-32 items-center justify-center`,children:(0,J.jsx)(db,{size:20,className:`animate-spin text-gray-500`})})})]})})}var OF=50*1024*1024;function kF(e){let{composer:t}=e,n=(0,S.useRef)(null);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`button`,{type:`button`,onClick:()=>n.current?.click(),title:`Attach file`,"aria-label":`Attach file`,className:`rounded-lg p-1.5 text-gray-400 transition-colors hover:bg-gray-700 hover:text-gray-200`,children:(0,J.jsx)(nw,{size:16})}),(0,J.jsx)(`input`,{ref:n,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{let n=e.target.files?Array.from(e.target.files):[];e.target.value=``;for(let e of n){if(e.size>OF){t.addAttachment({name:e.name,size:e.size,status:`error`,error:`File exceeds ${(OF/1024/1024).toFixed(0)} MB cap`,mimeType:e.type||`application/octet-stream`});continue}AF(e,t.addAttachment({name:e.name,size:e.size,status:`uploading`,mimeType:e.type||`application/octet-stream`}),t)}}})]})}async function AF(e,t,n){try{let r=await fetch(`${hF}/upload`,{method:`POST`,headers:{"Content-Type":`application/octet-stream`,"X-Filename":encodeURIComponent(e.name)},body:e});if(!r.ok){let e=await jF(r);n.updateAttachment(t,{status:`error`,error:`${r.status}: ${e}`});return}let i=await r.json();n.updateAttachment(t,{status:`ready`,path:i.path,size:i.size})}catch(e){n.updateAttachment(t,{status:`error`,error:e instanceof Error?e.message:String(e)})}}async function jF(e){try{return(await e.text()).slice(0,200)}catch{return`(no body)`}}function MF({attachment:e,rawUrl:t}){let n=t(e.path),r=e.name??e.path;return(0,J.jsx)(`a`,{href:n,target:`_blank`,rel:`noreferrer`,title:r,className:`overflow-hidden rounded-md border border-gray-800 bg-gray-900/60`,children:(0,J.jsx)(`img`,{src:n,alt:r,className:`block max-h-48 max-w-[16rem] object-contain`,loading:`lazy`})})}function NF({attachment:e}){let t=e.name??e.path;return(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-md border border-gray-800 bg-gray-900/60 px-2 py-1 text-xs text-gray-200`,title:e.path,children:[(0,J.jsx)(sh,{size:12,className:`text-gray-400`}),(0,J.jsx)(`span`,{className:`max-w-[12rem] truncate`,children:t}),(0,J.jsx)(`span`,{className:`text-[10px] text-gray-500`,children:wF(e.size??0)})]})}uF({open(e){window.dispatchEvent(new CustomEvent(`tianshu:files:open`,{detail:{path:e}}))}});var PF={components:{FilesPanel:EF,UploadButton:kF,ImageAttachment:MF,FileAttachment:NF}};PF.components;var FF=`/api/p/microsandbox`;async function IF(e,t){let n=await fetch(e,{credentials:`include`,...t}),r=await n.text(),i=null;if(r)try{i=JSON.parse(r)}catch{}if(!n.ok){let e=i?.message??i?.error??`HTTP ${n.status}`;throw Error(e)}return i}function LF(e){let t=Date.parse(e);if(Number.isNaN(t))return e;let n=Date.now()-t,r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}function RF(e){if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${t%60}s`:`${Math.floor(n/60)}h ${n%60}m`}function zF(e){if(!Number.isFinite(e)||e<0)return`—`;if(e<1024)return`${e} KiB`;let t=e/1024;return t<1024?`${Math.round(t)} MiB`:`${(t/1024).toFixed(1)} GiB`}function BF(e,t){if(!e)return null;let n=e[t];return typeof n==`string`?n:null}function VF(e){let[t,n]=(0,S.useState)(0),r=(0,S.useCallback)(()=>n(e=>e+1),[]);return(0,J.jsxs)(`div`,{className:`mx-auto max-w-4xl px-6 py-6 text-gray-200`,children:[(0,J.jsxs)(`header`,{className:`mb-6 border-b border-gray-800 pb-4`,children:[(0,J.jsx)(`h1`,{className:`text-lg font-semibold text-gray-100`,children:`MicroSandbox`}),(0,J.jsx)(`p`,{className:`mt-1 text-[12px] leading-relaxed text-gray-500`,children:`Edit your Sandboxfile, build a new image, and switch this tenant to use it. Sanity-check a fresh build via the shell's preview target (“does my apt package show up on PATH?”) before flipping the tenant to it.`})]}),(0,J.jsx)(HF,{}),(0,J.jsx)(`div`,{className:`my-6 border-t border-gray-800`}),(0,J.jsx)(UF,{onMutate:r}),(0,J.jsx)(`div`,{className:`my-6 border-t border-gray-800`}),(0,J.jsx)(qF,{refreshTick:t}),(0,J.jsx)(`div`,{className:`my-6 border-t border-gray-800`}),(0,J.jsx)(WF,{}),(0,J.jsx)(`div`,{className:`my-6 border-t border-gray-800`}),(0,J.jsx)(KF,{refreshTick:t,onMutate:r})]})}function HF(){let[e,t]=(0,S.useState)(null),[n,r]=(0,S.useState)(``),[i,a]=(0,S.useState)(!0),[o,s]=(0,S.useState)(!1),[c,l]=(0,S.useState)(null),[u,d]=(0,S.useState)(null),[f,p]=(0,S.useState)(null),[m,h]=(0,S.useState)([]),g=(0,S.useCallback)(async()=>{a(!0),l(null);try{let e=await IF(`${FF}/sandboxfile`);t(e),r(e.content)}catch(e){l(e instanceof Error?e.message:String(e))}finally{a(!1)}},[]);(0,S.useEffect)(()=>{g()},[g]),(0,S.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await IF(`${FF}/sandboxfile/templates`);e||h(t.templates)}catch{}})(),()=>{e=!0}},[]);let _=e!=null&&n!==e.content;function v(t){if(!t)return;let i=m.find(e=>e.id===t);i&&(e&&n!==e.content&&!window.confirm(`You have unsaved changes. Replace the editor with the "${i.displayName}" template?`)||r(i.content))}async function y(){s(!0),l(null),d(null);try{let e=await IF(`${FF}/sandboxfile`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({content:n})});t({content:n,exists:!0,path:e.path}),d(e.parseError),p(Date.now())}catch(e){l(e instanceof Error?e.message:String(e))}finally{s(!1)}}return(0,J.jsxs)(`section`,{children:[(0,J.jsx)(ZF,{title:`Sandboxfile`,description:e?.exists===!1?`No Sandboxfile yet. Edit and save to create one.`:e?.path?`Saved at ${e.path}`:``,actions:(0,J.jsxs)(J.Fragment,{children:[m.length>0&&(0,J.jsxs)(`select`,{value:``,onChange:e=>{v(e.target.value),e.target.value=``},className:`rounded-md border border-gray-800 bg-gray-900 px-2 py-1 text-[11px] text-gray-300 hover:border-gray-700 focus:border-blue-700 focus:outline-none`,title:`Replace the editor contents with a starting template`,children:[(0,J.jsx)(`option`,{value:``,children:`Load template…`}),m.map(e=>(0,J.jsx)(`option`,{value:e.id,title:e.description,children:e.displayName},e.id))]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>void g(),disabled:i,className:`btn-ghost flex items-center gap-1.5 px-2 py-1 text-[11px] text-gray-400`,title:`Reload from disk`,children:[(0,J.jsx)(ZT,{size:12,className:i?`animate-spin`:``}),`Reload`]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>void y(),disabled:!_||o,className:`flex items-center gap-1.5 rounded-md bg-blue-600 px-3 py-1.5 text-[11px] font-medium text-white hover:bg-blue-500 disabled:cursor-not-allowed disabled:bg-gray-800 disabled:text-gray-500`,children:[o?(0,J.jsx)(db,{size:12,className:`animate-spin`}):(0,J.jsx)(BE,{size:12}),`Save`]})]})}),c&&(0,J.jsx)(QF,{kind:`error`,text:c}),u&&(0,J.jsx)(QF,{kind:`warn`,text:`Saved, but the file does not parse: ${u}`}),!c&&!u&&f&&Date.now()-f<4e3&&(0,J.jsx)(QF,{kind:`ok`,text:`Saved.`}),(0,J.jsx)(`textarea`,{value:n,onChange:e=>r(e.target.value),spellCheck:!1,className:`mt-2 h-64 w-full resize-y rounded-md border border-gray-800 bg-gray-950 px-3 py-2 font-mono text-[12px] leading-relaxed text-gray-200 outline-none focus:border-blue-700`,placeholder:`image: python:3.12-slim
|
|
25
|
+
- The chat UI knows how to render those; absolute host paths or bare "./foo" links won't preview.`},{id:`edit-vs-write`,text:"- `edit_file` is for changes to an existing file (in-place exact-text replace, atomic). `write_file` is for new files or full rewrites of the entire file. Prefer editing existing files; do not create new files unless asked."},{id:`edit-old-text-uniqueness`,text:'- Each `edit_file` `old_text` must appear exactly once in the file. Keep `old_text` as small as possible while still being unique — don\'t pad with large unchanged regions to "connect" two distant changes; emit two separate edits in the same `edits[]` batch instead.'},{id:`read-before-edit`,text:"- Before `edit_file` (or `write_file` overwrite) on a file you haven't seen yet in this session, call `read_file` once. The host tracks reads per session, so a single full-file read covers any number of follow-up `edit_file` / `write_file` calls on that same path — don't re-read between edits. Files you just created with `write_file` count as already-read; you can `edit_file` them right away without reading first."}]}},rF={id:`microsandbox`,version:`0.1.0`,displayName:`MicroSandbox`,description:`Per-tenant shell sandbox running on microsandbox (Apple Virtualization.framework / KVM). Provides sandbox.shell + an opt-in browser.cdp sidecar (Stealth Chromium via CloakBrowser + Playwright MCP + noVNC; lit up by a follow-up PR).`,author:`tianshu-ai`,license:`Apache-2.0`,permissions:[`workspace.read`,`workspace.write`,`process.spawn`],provides:[`sandbox.shell`,`sandbox.taskPool`,`browser.cdp`],client:{entry:`@tianshu-builtin/plugin-microsandbox/client`},server:{entry:`@tianshu-builtin/plugin-microsandbox/server`},contributes:{topBarButtons:[{id:`browser`,icon:`Globe`,tooltip:`Browser viewport (noVNC)`,opensPanel:`microsandbox.browser`,order:210}],rightPanels:[{id:`browser`,displayName:`Browser`,component:`BrowserViewportPanel`}],adminPages:[{id:`main`,displayName:`Sandbox`,icon:`Box`,component:`MicroSandboxAdminPage`,group:`Plugins`,order:100}],sandboxes:[{id:`main`,kind:`shell`,displayName:`MicroSandbox`,module:`MicroSandboxRunner`}],tools:[{id:`exec`,module:`ExecTool`},{id:`reset_sandbox`,module:`ResetSandboxTool`},{id:`get_sandbox_status`,module:`GetSandboxStatusTool`},{id:`update_sandbox_config`,module:`UpdateSandboxConfigTool`},{id:`build_sandbox`,module:`BuildSandboxTool`},{id:`list_sandbox_builds`,module:`ListSandboxBuildsTool`},{id:`use_sandbox_build`,module:`UseSandboxBuildTool`},{id:`browser_health_check`,module:`BrowserHealthCheckTool`}],toolsets:[{id:`browser`,module:`BrowserToolset`,displayName:`Playwright (Browser)`}],skills:[{id:`exec-howto`,path:`skills/microsandbox-exec-howto.md`},{id:`config`,path:`skills/microsandbox-config.md`},{id:`build-use`,path:`skills/microsandbox-build-use.md`},{id:`browser-howto`,path:`skills/microsandbox-browser-howto.md`},{id:`libreoffice`,path:`skills/microsandbox-libreoffice.md`}],systemPromptFragments:[{id:`no-foreground-servers`,text:"- Long-running servers (`python -m http.server`, `npm start`, `npm run dev`, anything that listens on a port and never returns) WILL hang the `exec` call until the host's per-call timeout fires (5 min default). Even with `nohup` alone the call hangs because microsandbox's exec channel waits for the started process tree's stdio to close, and nohup doesn't close stdin or detach from the controlling terminal.\n\n If you need to start a server, the ONLY safe pattern is:\n\n nohup setsid <cmd> > /tmp/srv.log 2>&1 < /dev/null &\n\n All four pieces are required: `setsid` puts the process in a new session (no controlling terminal); `< /dev/null` closes stdin; `>/tmp/srv.log 2>&1` redirects stdout AND stderr; trailing `&` puts it in the shell background. Skip any one and exec hangs.\n\n Then verify with `curl http://localhost:<port>/...` in a separate exec call. Don't background-then-curl in the same shell line — the shell process itself becomes the parent and won't exit."},{id:`already-installed-runtimes`,text:"- The sandbox already ships chromium (CDP 9222), Playwright MCP (3200), LibreOffice, Node 22, and Python 3.12. Don't `apt install` / `pip install` / `playwright install` what's already there."},{id:`task-sandbox-is-ephemeral`,text:"- If you are running as a workboard task worker (you have a workboard task id and your run will end with `task_complete`), the sandbox you `exec` in is per-task and gets stopped the moment the task terminates. Anything you nohup / setsid / disown into the background dies with the sandbox — don't try to leave servers / queues / cron jobs / file watchers running for someone else to consume. Run the work inline, capture its output to a file under your home, then `task_complete` with the file path.\n\n Concrete VERIFY-task pattern: if the deliverable is an HTML / PDF / image file and you want to confirm it renders, DON'T spin up `python -m http.server` to serve it. Either (a) use a Playwright MCP `browser_navigate` to `file:///workspace/users/<self>/projects/<slug>/report.html` directly (Playwright MCP is configured with `--allow-unrestricted-file-access`, so file:// URLs work), or (b) `cat` / `head` the file and inspect the structure inline, or (c) for charts, check the rendered file's size + that it contains expected canvas/svg/img markup (`grep -c '<canvas\\|<svg\\|<img' report.html`). Spinning up a transient http server adds a process that has to be cleanly torn down before task_complete, and the typical agent forgets the `setsid + </dev/null` pattern and hangs the run.\n\n Long-lived background services belong in a chat session (the long-lived sandbox there survives between turns), not in a task. Installed packages, files you wrote, and other on-disk state DO survive across attempts of the same task — only running processes don't."}],apiRoutes:[{method:`GET`,path:`/status`,handler:`status`},{method:`GET`,path:`/sandboxfile`,handler:`getSandboxfile`},{method:`PUT`,path:`/sandboxfile`,handler:`putSandboxfile`},{method:`GET`,path:`/sandboxfile/templates`,handler:`getSandboxfileTemplates`},{method:`GET`,path:`/builds`,handler:`getBuilds`},{method:`POST`,path:`/builds`,handler:`postBuilds`},{method:`POST`,path:`/builds/use`,handler:`postUseBuild`},{method:`POST`,path:`/reset`,handler:`postReset`},{method:`POST`,path:`/exec`,handler:`postExec`},{method:`GET`,path:`/task-pool`,handler:`getTaskPool`},{method:`POST`,path:`/task-pool/destroy`,handler:`postTaskPoolDestroy`},{method:`GET`,path:`/browser/status`,handler:`getBrowserStatus`},{method:`POST`,path:`/browser/restart`,handler:`postBrowserRestart`},{method:`POST`,path:`/browser/resize`,handler:`postBrowserResize`}]},configSchema:{fields:[{key:`memoryMib`,label:`Browser sandbox memory`,kind:`number`,unit:`MiB`,min:512,max:65536,step:512,default:2048,description:`RAM allotted to the long-lived Browser sandbox VM. Increase to 8192+ MiB for browser-heavy workloads (chromium + Playwright MCP), 12288+ for build-time pip / npm of large stacks. Restart the sandbox (Reset) for the new value to take effect.`},{key:`cpus`,label:`Browser sandbox vCPU count`,kind:`number`,min:1,max:16,step:1,default:2,description:`Logical CPU count handed to the long-lived Browser sandbox VM. Reset the sandbox after changing.`},{key:`execTimeoutMs`,label:`Per-exec timeout (Browser)`,kind:`number`,unit:`ms`,min:5e3,max:18e5,step:5e3,default:3e5,description:"Max wall-clock time for one Browser `exec` call before it's force-killed. Bump this for long-running installers; consider running them with `nohup setsid … &` instead."},{key:`taskMemoryMib`,label:`Task sandbox memory`,kind:`number`,unit:`MiB`,min:512,max:65536,step:512,default:2048,description:`RAM allotted to per-task sandbox VMs (forked from the Task snapshot). Set lower than the Browser value to fit more parallel tasks; raise it for tasks that need a heavy data-science stack. Effective on the next task acquire.`},{key:`taskCpus`,label:`Task sandbox vCPU count`,kind:`number`,min:1,max:16,step:1,default:2,description:`Logical CPU count handed to each per-task sandbox VM. Effective on the next task acquire.`},{key:`taskExecTimeoutMs`,label:`Per-exec timeout (Task)`,kind:`number`,unit:`ms`,min:5e3,max:18e5,step:5e3,default:3e5,description:"Max wall-clock time for one Task `exec` call before it's force-killed. Per-task sandboxes typically run shorter, more focused commands than the Browser sandbox."},{key:`taskIdleShutdownMs`,label:`Task sandbox idle shutdown`,kind:`number`,unit:`ms`,min:0,max:864e5,step:6e4,default:6e5,description:`How long a task sandbox stays alive after its task ends before it's stopped. 0 = stop immediately on release. Higher values trade RAM for faster reuse when the same kind of task runs again soon.`}]}},iF={id:`web-search`,version:`0.1.0`,displayName:`Web Search`,description:`Web search via Tavily and Brave Search APIs. One tool, two providers, automatic fallback. Set API keys in Settings → Plugins.`,author:`tianshu-ai`,license:`Apache-2.0`,permissions:[`network.external`],server:{entry:`@tianshu-builtin/plugin-web-search/server`},contributes:{tools:[{id:`web_search`,module:`WebSearchTool`}],skills:[{id:`web-search-howto`,path:`skills/web-search-howto.md`}],apiRoutes:[{method:`GET`,path:`/health`,handler:`getHealth`},{method:`POST`,path:`/health/reset`,handler:`resetHealth`}]},configSchema:{fields:[{key:`tavilyApiKey`,label:`Tavily API key`,kind:`secret`,placeholder:`tvly-...`,description:`Sign up at tavily.com (free tier 1000 searches/month). Stored under <tenant>/secrets/, never returned to the browser.`},{key:`braveApiKey`,label:`Brave Search API key`,kind:`secret`,placeholder:`BSA...`,description:`Optional. Get a free key at api-dashboard.search.brave.com (2000/month). Used as fallback when Tavily fails or returns nothing.`},{key:`preferredProvider`,label:`Preferred provider`,kind:`select`,default:`tavily`,options:[{label:`Tavily`,value:`tavily`},{label:`Brave`,value:`brave`}],description:`Tried first when both keys are set. The other provider is used as automatic fallback only on transient errors (network / 5xx / 429). Auth failures (401 / 403) park the bad key in the health cache; clear it from Settings after fixing the key.`},{key:`timeoutMs`,label:`Per-request timeout`,kind:`number`,unit:`ms`,min:1e3,max:6e4,step:500,default:8e3,description:`Network timeout for each provider call. Increase if you hit timeouts on slow networks.`}]}},aF={id:`workboard`,version:`0.1.0`,displayName:`Workboard`,description:`Kanban task board with a worker pool. The orchestrator drops tasks onto the board; workers pick them up, run them, and report back. v0.2 ships an echo worker so the full ready→in-progress→done loop is visible end-to-end; real worker runtimes (qianliyan / luban / xihe / nvwa) land in follow-up PRs as separate plugins.`,author:`tianshu-ai`,license:`Apache-2.0`,permissions:[`workspace.read`,`tenant.db`],requires:[`host.agentLoop`,`host.sessionInbox`,`host.toolCatalog`,`host.skillCatalog`,`host.modelCatalog`],client:{entry:`@tianshu-builtin/plugin-workboard/client`},server:{entry:`@tianshu-builtin/plugin-workboard/server`},contributes:{topBarButtons:[{id:`toggle`,icon:`Kanban`,tooltip:`Task board`,opensPanel:`workboard.main`,order:200}],rightPanels:[{id:`main`,displayName:`Tasks`,component:`WorkboardPanel`}],sidebarSections:[{id:`workers`,displayName:`Workers`,component:`WorkersSidebarSection`,after:`workers`,order:100}],adminPages:[{id:`agents`,displayName:`Worker agents`,icon:`Bot`,component:`WorkerAgentsPage`,order:10}],tools:[{id:`task_list`,module:`TaskListTool`},{id:`task_create`,module:`TaskCreateTool`},{id:`task_update`,module:`TaskUpdateTool`},{id:`task_move`,module:`TaskMoveTool`},{id:`task_delete`,module:`TaskDeleteTool`},{id:`task_get_history`,module:`TaskGetHistoryTool`},{id:`task_complete`,module:`TaskCompleteTool`},{id:`task_continue`,module:`TaskContinueTool`},{id:`task_retry_fresh`,module:`TaskRetryFreshTool`},{id:`task_extend_timeout`,module:`TaskExtendTimeoutTool`},{id:`task_abort`,module:`TaskAbortTool`},{id:`model_list`,module:`ModelListTool`},{id:`worker_analytics`,module:`WorkerAnalyticsTool`}],skills:[{id:`workboard-howto`,path:`skills/workboard-howto.md`},{id:`worker-creator`,path:`skills/worker-creator.md`},{id:`worker-fleet`,path:`skills/worker-fleet.md`},{id:`large-input-large-output`,path:`skills/large-input-large-output.md`}],agentSeeds:[{id:`echo-demo`,path:`agent-seeds/echo-demo`},{id:`llm-default`,path:`agent-seeds/llm-default`}],systemPromptFragments:[{id:`prefer-delegation`,text:'The workboard is active in this tenant. For any non-trivial user request — anything that takes more than a few minutes, fans out into multiple steps, or has clearly separable roles (design / build / test, research / write, etc.) — your default is to DELEGATE to worker agents via `task_create` rather than execute it yourself. The `worker-fleet` skill covers task decomposition (plan / design / build / verify phases), task sizing (avoiding max_tokens stalls on monolithic tasks), worker selection (matching by capability), and brief authoring (each task description is the worker\'s only view of the work) — read it before designing the task graph. Reuse existing workers (run `tenant_config_list({path:"workers"})` first); the `worker-creator` skill covers authoring agent.json + SOUL.md when no existing worker fits. Do the work yourself directly only when (a) the user explicitly says so, (b) the request is trivial (single tool call, one-line answer, quick lookup), or (c) the user wants a synchronous reply. When in doubt, ack the plan and give the user a chance to override.'},{id:`summarize-on-completion`,text:"When the workboard tasks you delegated for the user's current request have all finished, your job isn't done — you owe the user a synthesised reply. Steps: (1) Call `task_list({status:\"done\"})` (or filter by labels/ids you tracked) to confirm every task you created in this turn has actually completed; if any are still running, wait or fetch their status before composing. (2) For each completed task, call `task_get_history({id})` and READ the worker's actual output — don't trust `resultSummary` alone; workers sometimes write a one-liner that hides nuance, errors, or important findings. Skim the final assistant message + any tool results that produced files. (3) Compose ONE coherent reply to the user that: covers the original goal, integrates the per-task findings into a narrative (not a bulleted dump of resultSummaries), explicitly cites every output file the workers produced (use the file's path, and where the tenant has the `files` plugin enabled use the standard file-reference markup the user's chat client understands so they can click through), and surfaces any failures / partial results honestly. (4) If a task ended in awaiting-intervention, do NOT just report the failure — either resolve it yourself (task_continue / task_retry_fresh / task_extend_timeout / task_abort) before replying, or include in the reply a concrete suggestion for what the user should choose. Keep the synthesis honest: if outputs contradict each other or a worker punted, say so; don't paper over with cheerful language."}],apiRoutes:[{method:`GET`,path:`/tasks`,handler:`listTasks`},{method:`POST`,path:`/tasks`,handler:`createTask`},{method:`POST`,path:`/tasks/delete`,handler:`deleteTask`},{method:`PATCH`,path:`/tasks/:id`,handler:`patchTask`},{method:`GET`,path:`/tasks/:id/history`,handler:`taskHistory`},{method:`GET`,path:`/projects`,handler:`listProjects`},{method:`GET`,path:`/workers/status`,handler:`workerStatus`},{method:`POST`,path:`/workers/restart`,handler:`workerRestart`},{method:`GET`,path:`/agents`,handler:`listAgents`},{method:`PATCH`,path:`/agents/:slug/enabled`,handler:`setAgentEnabled`}]},configSchema:{fields:[{key:`echo.enabled`,label:`Enabled`,kind:`boolean`,default:!0,group:{id:`worker-type-echo`,label:`echo`,badge:`worker type`}},{key:`echo.delayMs`,label:`Simulated execution delay`,description:`How long an echo worker pretends to be busy on each task before marking it done. 0 makes tasks complete instantly.`,kind:`number`,default:3e4,min:0,step:1e3,unit:`ms`,group:{id:`worker-type-echo`,label:`echo`,badge:`worker type`}},{key:`llm.enabled`,label:`Enabled`,kind:`boolean`,default:!0,group:{id:`worker-type-llm`,label:`llm`,badge:`worker type`}},{key:`llm.firstResponseSec`,label:`First-response timeout`,description:`Hard cap on how long the LLM has to start streaming the very first event of the run. Catches connection-hung scenarios. Set to 0 to disable.`,kind:`number`,default:300,min:0,step:30,unit:`s`,group:{id:`worker-type-llm`,label:`llm`,badge:`worker type`}},{key:`llm.idleSec`,label:`Idle timeout`,description:"Mid-stream silence cap: if the LLM goes this long without emitting any event, abort the run as stuck. Long enough to allow large `write_file` arguments to stream through.",kind:`number`,default:600,min:0,step:60,unit:`s`,group:{id:`worker-type-llm`,label:`llm`,badge:`worker type`}},{key:`llm.maxRunSec`,label:`Max run time`,description:`Total wall-clock cap for one task run, across all turns. Protects against runaway loops.`,kind:`number`,default:1800,min:0,step:60,unit:`s`,group:{id:`worker-type-llm`,label:`llm`,badge:`worker type`}}]}},oF=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),J=o(((e,t)=>{t.exports=oF()}))();function sF(){return globalThis}function cF(e){sF().__tianshuPluginSdkComposer__=e}function lF(){return globalThis}function uF(e){lF().__tianshuPluginSdkOpenFile__=e}function dF(){return globalThis}function fF(e){dF().__tianshuPluginSdkPluginConfigForm__=e}var pF=e=>{let t=dF().__tianshuPluginSdkPluginConfigForm__;return t?S.createElement(t,e):null};function mF(){return e=>{let t=lF().__tianshuPluginSdkOpenFile__;if(!t){let t=e.replace(/^workspace:\/\/+/,`/`),n=`/api/p/files/raw?path=${encodeURIComponent(t)}`;window.open(n,`_blank`,`noopener`);return}t.open(e)}}var hF=`/api/p/files`,gF=new Set([`.png`,`.jpg`,`.jpeg`,`.gif`,`.webp`,`.bmp`,`.ico`,`.svg`]),_F=new Set([`.js`,`.cjs`,`.mjs`,`.ts`,`.jsx`,`.tsx`,`.py`,`.rb`,`.go`,`.rs`,`.c`,`.cpp`,`.h`,`.java`,`.kt`,`.swift`,`.sh`,`.bash`,`.zsh`,`.lua`,`.php`,`.pl`,`.vue`,`.svelte`]),vF=new Set([`.json`,`.yaml`,`.yml`,`.toml`,`.xml`,`.csv`,`.tsv`]),yF=new Set([`.mp4`,`.avi`,`.mov`,`.mkv`,`.webm`,`.m4v`]),bF=new Set([`.mp3`,`.wav`,`.ogg`,`.flac`,`.aac`,`.m4a`]),xF=new Set([`.zip`,`.tar`,`.gz`,`.tgz`,`.rar`,`.7z`,`.bz2`]),SF=new Set([`.md`,`.markdown`,`.txt`,`.log`,`.html`,`.css`,`.env`]);function CF(e){if(e.type===`directory`)return(0,J.jsx)($h,{size:16,className:`text-yellow-500`});let t=(e.extension??``).toLowerCase();return gF.has(t)?(0,J.jsx)(Fv,{size:16,className:`text-green-400`}):_F.has(t)?(0,J.jsx)(Vd,{size:16,className:`text-blue-400`}):vF.has(t)?(0,J.jsx)(Jm,{size:16,className:`text-orange-400`}):yF.has(t)?(0,J.jsx)(uh,{size:16,className:`text-purple-400`}):bF.has(t)?(0,J.jsx)(YS,{size:16,className:`text-pink-400`}):xF.has(t)?(0,J.jsx)(Ci,{size:16,className:`text-gray-400`}):SF.has(t)?(0,J.jsx)(Qm,{size:16,className:`text-gray-300`}):(0,J.jsx)(sh,{size:16,className:`text-gray-500`})}function wF(e){return e===0?`—`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(1)} GB`}function TF(e){if(e===0)return`—`;let t=Date.now()-e;return t<6e4?`Just now`:t<36e5?`${Math.floor(t/6e4)}m ago`:t<864e5?`${Math.floor(t/36e5)}h ago`:t<7*864e5?`${Math.floor(t/864e5)}d ago`:new Date(e).toLocaleDateString()}function EF({plugin:e}){let[t,n]=(0,S.useState)(`/`),[r,i]=(0,S.useState)(null),[a,o]=(0,S.useState)(!1),[s,c]=(0,S.useState)(null),[l,u]=(0,S.useState)(``),[d,f]=(0,S.useState)(`name`),[p,m]=(0,S.useState)(`asc`),[h,g]=(0,S.useState)(`list`),[_,v]=(0,S.useState)(null),y=(0,S.useCallback)(async e=>{o(!0),c(null);try{let t=await fetch(`${hF}/list?dir=${encodeURIComponent(e)}`,{credentials:`include`});if(!t.ok)throw Error(`${t.status}`);i(await t.json())}catch(e){c(e instanceof Error?e.message:String(e)),i(null)}finally{o(!1)}},[]);(0,S.useEffect)(()=>{y(t)},[t,y]);let b=(0,S.useMemo)(()=>{if(!r)return[];let e=[...r.entries];return e.sort((e,t)=>{if(e.type!==t.type)return e.type===`directory`?-1:1;let n=0;return n=d===`name`?e.name.localeCompare(t.name):d===`size`?e.size-t.size:e.modifiedMs-t.modifiedMs,p===`asc`?n:-n}),e},[r,d,p]),x=(0,S.useMemo)(()=>{if(!l)return b;let e=l.toLowerCase();return b.filter(t=>t.name.toLowerCase().includes(e))},[b,l]),C=e=>{u(``),n(e)};function w(e){d===e?m(e=>e===`asc`?`desc`:`asc`):(f(e),m(`asc`))}let T=t===`/`?[`/`]:[`/`,...t.split(`/`).filter(Boolean)];return(0,J.jsxs)(`div`,{className:`flex h-full flex-col bg-gray-950 text-gray-300`,children:[(0,J.jsxs)(`div`,{className:`space-y-2 border-b border-gray-800 px-3 py-2`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1 overflow-x-auto text-sm`,children:[t!==`/`&&(0,J.jsx)(`button`,{type:`button`,onClick:()=>C(t.substring(0,t.lastIndexOf(`/`))||`/`),className:`mr-1 shrink-0 text-gray-500 hover:text-gray-300`,title:`Up one level`,children:(0,J.jsx)(Ji,{size:14})}),T.map((e,t)=>{let n=t===0?`/`:`/`+T.slice(1,t+1).join(`/`),r=t===T.length-1;return(0,J.jsxs)(`span`,{className:`flex shrink-0 items-center`,children:[t>0&&(0,J.jsx)(zl,{size:12,className:`mx-0.5 text-gray-600`}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>C(n),className:[`rounded px-1 hover:text-white`,r?`font-medium text-white`:`text-gray-500`].join(` `),children:t===0?`~`:e})]},t)})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsxs)(`div`,{className:`relative flex-1`,children:[(0,J.jsx)(fD,{size:14,className:`pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-gray-500`}),(0,J.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`Filter files...`,className:`w-full rounded border border-gray-800 bg-gray-900 py-1 pl-8 pr-2 text-sm text-gray-300 placeholder-gray-600 focus:border-gray-600 focus:outline-none`})]}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>y(t),className:`rounded p-1.5 text-gray-400 hover:bg-gray-800 hover:text-gray-200`,title:`Refresh`,children:(0,J.jsx)(ZT,{size:14,className:a?`animate-spin`:``})}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>g(h===`list`?`grid`:`list`),className:`rounded p-1.5 text-gray-400 hover:bg-gray-800 hover:text-gray-200`,title:`Toggle view`,children:h===`list`?(0,J.jsx)(Sy,{size:14}):(0,J.jsx)(wy,{size:14})})]})]}),h===`list`&&(0,J.jsxs)(`div`,{className:`flex select-none items-center border-b border-gray-800/50 px-3 py-1 text-xs text-gray-500`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:()=>w(`name`),className:`flex flex-1 items-center gap-1 text-left hover:text-gray-300`,children:[`Name `,d===`name`&&(0,J.jsx)(na,{size:10})]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>w(`size`),className:`flex w-20 items-center justify-end gap-1 text-right hover:text-gray-300`,children:[`Size `,d===`size`&&(0,J.jsx)(na,{size:10})]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>w(`modified`),className:`flex w-24 items-center justify-end gap-1 text-right hover:text-gray-300`,children:[`Modified `,d===`modified`&&(0,J.jsx)(na,{size:10})]})]}),(0,J.jsxs)(`div`,{className:`flex-1 overflow-auto`,children:[a&&!r?(0,J.jsx)(`div`,{className:`flex h-32 items-center justify-center`,children:(0,J.jsx)(db,{size:20,className:`animate-spin text-gray-500`})}):s?(0,J.jsx)(`div`,{className:`p-4 text-center text-sm text-rose-400`,children:s}):x.length===0?(0,J.jsx)(`div`,{className:`p-8 text-center text-sm text-gray-600`,children:l?`No matching files`:`Empty directory`}):h===`list`?(0,J.jsx)(`ul`,{className:`divide-y divide-gray-800/30`,children:x.map(e=>(0,J.jsxs)(`li`,{className:`group flex cursor-pointer items-center px-3 py-1.5 hover:bg-gray-800/50`,onClick:()=>{e.type===`directory`?C(e.path):v(e)},children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[CF(e),(0,J.jsx)(`span`,{className:`truncate text-sm`,children:e.name})]}),(0,J.jsx)(`span`,{className:`w-20 text-right text-xs text-gray-500`,children:e.type===`file`?wF(e.size):`—`}),(0,J.jsx)(`span`,{className:`w-24 text-right text-xs text-gray-500`,children:TF(e.modifiedMs)})]},e.path))}):(0,J.jsx)(`div`,{className:`grid grid-cols-3 gap-2 p-3`,children:x.map(e=>(0,J.jsxs)(`button`,{type:`button`,onClick:()=>{e.type===`directory`?C(e.path):v(e)},className:`flex cursor-pointer flex-col items-center rounded-lg p-3 hover:bg-gray-800/50`,children:[(0,J.jsx)(`div`,{className:`mb-1`,children:CF(e)}),(0,J.jsx)(`span`,{className:`w-full truncate text-center text-xs`,children:e.name})]},e.path))}),r?.truncated&&(0,J.jsx)(`div`,{className:`px-3 py-2 text-[10px] text-amber-400`,children:`Listing truncated at 5000 entries.`})]}),_&&(0,J.jsx)(DF,{entry:_,onClose:()=>v(null)})]})}function DF({entry:e,onClose:t}){let[n,r]=(0,S.useState)(null),[i,a]=(0,S.useState)(null),o=(e.extension??``).toLowerCase(),s=gF.has(o);(0,S.useEffect)(()=>{if(s){r({path:e.path,size:e.size,modifiedMs:e.modifiedMs,binary:!0});return}let t=!1;return a(null),fetch(`${hF}/read?path=${encodeURIComponent(e.path)}`,{credentials:`include`}).then(async e=>{if(!e.ok){if(e.status===413){let t=await e.json();throw Error(`File is ${wF(t.size)}, exceeds the ${wF(t.maxBytes)} preview cap.`)}throw Error(`HTTP ${e.status}`)}return await e.json()}).then(e=>{t||r(e)}).catch(e=>{t||a(e instanceof Error?e.message:String(e))}),()=>{t=!0}},[e.path,e.size,e.modifiedMs,s]);let c=(0,S.useRef)(null);return(0,S.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]),(0,J.jsx)(`div`,{ref:c,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/70 p-6 backdrop-blur-sm`,onClick:t,children:(0,J.jsxs)(`div`,{className:`flex h-full max-h-[80vh] w-full max-w-3xl flex-col overflow-hidden rounded-xl border border-gray-700 bg-gray-900 shadow-2xl`,onClick:e=>e.stopPropagation(),children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between border-b border-gray-800 px-4 py-2.5`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[CF(e),(0,J.jsx)(`span`,{className:`truncate text-sm font-medium text-gray-100`,children:e.name}),(0,J.jsxs)(`span`,{className:`flex-shrink-0 text-[11px] text-gray-500`,children:[wF(e.size),` · `,TF(e.modifiedMs)]})]}),(0,J.jsx)(`button`,{type:`button`,onClick:t,className:`btn-ghost p-1.5`,"aria-label":`Close`,children:(0,J.jsx)(IP,{size:16})})]}),(0,J.jsx)(`div`,{className:`flex-1 overflow-auto bg-gray-950`,children:i?(0,J.jsx)(`div`,{className:`p-6 text-center text-sm text-rose-300`,children:i}):n?s?(0,J.jsx)(`img`,{src:`${hF}/raw?path=${encodeURIComponent(e.path)}`,alt:e.name,className:`mx-auto max-h-full max-w-full`}):n.binary?(0,J.jsxs)(`div`,{className:`p-6 text-center text-sm text-gray-500`,children:[`Binary file (`,wF(n.size),`). No preview available.`]}):(0,J.jsx)(`pre`,{className:`whitespace-pre-wrap break-all p-4 font-mono text-xs text-gray-200`,children:n.content}):(0,J.jsx)(`div`,{className:`flex h-32 items-center justify-center`,children:(0,J.jsx)(db,{size:20,className:`animate-spin text-gray-500`})})})]})})}var OF=50*1024*1024;function kF(e){let{composer:t}=e,n=(0,S.useRef)(null);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`button`,{type:`button`,onClick:()=>n.current?.click(),title:`Attach file`,"aria-label":`Attach file`,className:`rounded-lg p-1.5 text-gray-400 transition-colors hover:bg-gray-700 hover:text-gray-200`,children:(0,J.jsx)(nw,{size:16})}),(0,J.jsx)(`input`,{ref:n,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{let n=e.target.files?Array.from(e.target.files):[];e.target.value=``;for(let e of n){if(e.size>OF){t.addAttachment({name:e.name,size:e.size,status:`error`,error:`File exceeds ${(OF/1024/1024).toFixed(0)} MB cap`,mimeType:e.type||`application/octet-stream`});continue}AF(e,t.addAttachment({name:e.name,size:e.size,status:`uploading`,mimeType:e.type||`application/octet-stream`}),t)}}})]})}async function AF(e,t,n){try{let r=await fetch(`${hF}/upload`,{method:`POST`,headers:{"Content-Type":`application/octet-stream`,"X-Filename":encodeURIComponent(e.name)},body:e});if(!r.ok){let e=await jF(r);n.updateAttachment(t,{status:`error`,error:`${r.status}: ${e}`});return}let i=await r.json();n.updateAttachment(t,{status:`ready`,path:i.path,size:i.size})}catch(e){n.updateAttachment(t,{status:`error`,error:e instanceof Error?e.message:String(e)})}}async function jF(e){try{return(await e.text()).slice(0,200)}catch{return`(no body)`}}function MF({attachment:e,rawUrl:t}){let n=t(e.path),r=e.name??e.path;return(0,J.jsx)(`a`,{href:n,target:`_blank`,rel:`noreferrer`,title:r,className:`overflow-hidden rounded-md border border-gray-800 bg-gray-900/60`,children:(0,J.jsx)(`img`,{src:n,alt:r,className:`block max-h-48 max-w-[16rem] object-contain`,loading:`lazy`})})}function NF({attachment:e}){let t=e.name??e.path;return(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-md border border-gray-800 bg-gray-900/60 px-2 py-1 text-xs text-gray-200`,title:e.path,children:[(0,J.jsx)(sh,{size:12,className:`text-gray-400`}),(0,J.jsx)(`span`,{className:`max-w-[12rem] truncate`,children:t}),(0,J.jsx)(`span`,{className:`text-[10px] text-gray-500`,children:wF(e.size??0)})]})}uF({open(e){window.dispatchEvent(new CustomEvent(`tianshu:files:open`,{detail:{path:e}}))}});var PF={components:{FilesPanel:EF,UploadButton:kF,ImageAttachment:MF,FileAttachment:NF}};PF.components;var FF=`/api/p/microsandbox`;async function IF(e,t){let n=await fetch(e,{credentials:`include`,...t}),r=await n.text(),i=null;if(r)try{i=JSON.parse(r)}catch{}if(!n.ok){let e=i?.message??i?.error??`HTTP ${n.status}`;throw Error(e)}return i}function LF(e){let t=Date.parse(e);if(Number.isNaN(t))return e;let n=Date.now()-t,r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}function RF(e){if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${t%60}s`:`${Math.floor(n/60)}h ${n%60}m`}function zF(e){if(!Number.isFinite(e)||e<0)return`—`;if(e<1024)return`${e} KiB`;let t=e/1024;return t<1024?`${Math.round(t)} MiB`:`${(t/1024).toFixed(1)} GiB`}function BF(e,t){if(!e)return null;let n=e[t];return typeof n==`string`?n:null}function VF(e){let[t,n]=(0,S.useState)(0),r=(0,S.useCallback)(()=>n(e=>e+1),[]);return(0,J.jsxs)(`div`,{className:`mx-auto max-w-4xl px-6 py-6 text-gray-200`,children:[(0,J.jsxs)(`header`,{className:`mb-6 border-b border-gray-800 pb-4`,children:[(0,J.jsx)(`h1`,{className:`text-lg font-semibold text-gray-100`,children:`MicroSandbox`}),(0,J.jsx)(`p`,{className:`mt-1 text-[12px] leading-relaxed text-gray-500`,children:`Edit your Sandboxfile, build a new image, and switch this tenant to use it. Sanity-check a fresh build via the shell's preview target (“does my apt package show up on PATH?”) before flipping the tenant to it.`})]}),(0,J.jsx)(HF,{}),(0,J.jsx)(`div`,{className:`my-6 border-t border-gray-800`}),(0,J.jsx)(UF,{onMutate:r}),(0,J.jsx)(`div`,{className:`my-6 border-t border-gray-800`}),(0,J.jsx)(qF,{refreshTick:t}),(0,J.jsx)(`div`,{className:`my-6 border-t border-gray-800`}),(0,J.jsx)(WF,{}),(0,J.jsx)(`div`,{className:`my-6 border-t border-gray-800`}),(0,J.jsx)(KF,{refreshTick:t,onMutate:r})]})}function HF(){let[e,t]=(0,S.useState)(null),[n,r]=(0,S.useState)(``),[i,a]=(0,S.useState)(!0),[o,s]=(0,S.useState)(!1),[c,l]=(0,S.useState)(null),[u,d]=(0,S.useState)(null),[f,p]=(0,S.useState)(null),[m,h]=(0,S.useState)([]),g=(0,S.useCallback)(async()=>{a(!0),l(null);try{let e=await IF(`${FF}/sandboxfile`);t(e),r(e.content)}catch(e){l(e instanceof Error?e.message:String(e))}finally{a(!1)}},[]);(0,S.useEffect)(()=>{g()},[g]),(0,S.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await IF(`${FF}/sandboxfile/templates`);e||h(t.templates)}catch{}})(),()=>{e=!0}},[]);let _=e!=null&&n!==e.content;function v(t){if(!t)return;let i=m.find(e=>e.id===t);i&&(e&&n!==e.content&&!window.confirm(`You have unsaved changes. Replace the editor with the "${i.displayName}" template?`)||r(i.content))}async function y(){s(!0),l(null),d(null);try{let e=await IF(`${FF}/sandboxfile`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({content:n})});t({content:n,exists:!0,path:e.path}),d(e.parseError),p(Date.now())}catch(e){l(e instanceof Error?e.message:String(e))}finally{s(!1)}}return(0,J.jsxs)(`section`,{children:[(0,J.jsx)(ZF,{title:`Sandboxfile`,description:e?.exists===!1?`No Sandboxfile yet. Edit and save to create one.`:e?.path?`Saved at ${e.path}`:``,actions:(0,J.jsxs)(J.Fragment,{children:[m.length>0&&(0,J.jsxs)(`select`,{value:``,onChange:e=>{v(e.target.value),e.target.value=``},className:`rounded-md border border-gray-800 bg-gray-900 px-2 py-1 text-[11px] text-gray-300 hover:border-gray-700 focus:border-blue-700 focus:outline-none`,title:`Replace the editor contents with a starting template`,children:[(0,J.jsx)(`option`,{value:``,children:`Load template…`}),m.map(e=>(0,J.jsx)(`option`,{value:e.id,title:e.description,children:e.displayName},e.id))]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>void g(),disabled:i,className:`btn-ghost flex items-center gap-1.5 px-2 py-1 text-[11px] text-gray-400`,title:`Reload from disk`,children:[(0,J.jsx)(ZT,{size:12,className:i?`animate-spin`:``}),`Reload`]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>void y(),disabled:!_||o,className:`flex items-center gap-1.5 rounded-md bg-blue-600 px-3 py-1.5 text-[11px] font-medium text-white hover:bg-blue-500 disabled:cursor-not-allowed disabled:bg-gray-800 disabled:text-gray-500`,children:[o?(0,J.jsx)(db,{size:12,className:`animate-spin`}):(0,J.jsx)(BE,{size:12}),`Save`]})]})}),c&&(0,J.jsx)(QF,{kind:`error`,text:c}),u&&(0,J.jsx)(QF,{kind:`warn`,text:`Saved, but the file does not parse: ${u}`}),!c&&!u&&f&&Date.now()-f<4e3&&(0,J.jsx)(QF,{kind:`ok`,text:`Saved.`}),(0,J.jsx)(`textarea`,{value:n,onChange:e=>r(e.target.value),spellCheck:!1,className:`mt-2 h-64 w-full resize-y rounded-md border border-gray-800 bg-gray-950 px-3 py-2 font-mono text-[12px] leading-relaxed text-gray-200 outline-none focus:border-blue-700`,placeholder:`image: python:3.12-slim
|
|
26
26
|
cpus: 4
|
|
27
27
|
memory_mib: 4096`}),(0,J.jsxs)(`p`,{className:`mt-2 text-[11px] leading-relaxed text-gray-500`,children:[`Path: `,(0,J.jsx)(`code`,{className:`rounded bg-gray-800 px-1`,children:e?.path??`…`}),`. v0 grammar: `,(0,J.jsx)(`code`,{className:`rounded bg-gray-800 px-1`,children:`image:`}),`,`,` `,(0,J.jsx)(`code`,{className:`rounded bg-gray-800 px-1`,children:`cpus:`}),`,`,` `,(0,J.jsx)(`code`,{className:`rounded bg-gray-800 px-1`,children:`memory_mib:`}),`, and the lists`,` `,(0,J.jsx)(`code`,{className:`rounded bg-gray-800 px-1`,children:`apt`}),`,`,` `,(0,J.jsx)(`code`,{className:`rounded bg-gray-800 px-1`,children:`pip`}),`,`,` `,(0,J.jsx)(`code`,{className:`rounded bg-gray-800 px-1`,children:`npm`}),`,`,` `,(0,J.jsx)(`code`,{className:`rounded bg-gray-800 px-1`,children:`exec`}),`.`]})]})}function UF({onMutate:e}){let[t,n]=(0,S.useState)(null),[r,i]=(0,S.useState)(null),[a,o]=(0,S.useState)(!0),[s,c]=(0,S.useState)(!1),[l,u]=(0,S.useState)(null),[d,f]=(0,S.useState)(``),[p,m]=(0,S.useState)([]),[h,g]=(0,S.useState)(null),[_,v]=(0,S.useState)(0),y=(0,S.useRef)(null);(0,S.useEffect)(()=>{if(h===null)return;let e=window.setInterval(()=>v(Date.now()-h),250);return()=>window.clearInterval(e)},[h]),(0,S.useEffect)(()=>{let e=y.current;e&&(e.scrollTop=e.scrollHeight)},[p]);let b=(0,S.useCallback)(async()=>{o(!0),i(null);try{n(await IF(`${FF}/builds`))}catch(e){i(e instanceof Error?e.message:String(e))}finally{o(!1)}},[]);(0,S.useEffect)(()=>{b()},[b]);async function x(){c(!0),i(null),m([]),g(Date.now()),v(0);try{let e=new URLSearchParams({stream:`1`});d&&e.set(`from_snapshot`,d);let t=await fetch(`${FF}/builds?${e.toString()}`,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok||!t.body)throw Error(`build request failed: HTTP ${t.status}${t.statusText?` `+t.statusText:``}`);let n=t.body.getReader(),r=new TextDecoder,a=``,o=null;for(;;){let{value:e,done:t}=await n.read();if(t)break;a+=r.decode(e,{stream:!0});let i;for(;(i=a.indexOf(`
|
|
28
28
|
`))>=0;){let e=a.slice(0,i).trim();if(a=a.slice(i+1),!e)continue;let t;try{t=JSON.parse(e)}catch{m(t=>[...t,e]);continue}if(t.type===`log`&&typeof t.line==`string`){let e=t.line;m(t=>[...t,e])}else if(t.type===`start`)m(e=>[...e,`[stream] build ${String(t.buildId??`?`)} started (image=${String(t.image??`?`)})`]);else if(t.type!==`done`&&t.type===`error`){o=String(t.message??`build failed`);let e=typeof t.stderr==`string`&&t.stderr.length>0?`\n${t.stderr}`:``;m(t=>[...t,`[error] ${o}${e}`])}}}let s=a.trim();if(s)try{let e=JSON.parse(s);e.type===`log`&&typeof e.line==`string`&&m(t=>[...t,e.line])}catch{}o&&i(o),await b()}catch(e){i(e instanceof Error?e.message:String(e))}finally{c(!1),g(null)}}async function C(t,n,r){u(t),i(null);try{let a=new URLSearchParams({build_id:t,role:n});r&&a.set(`reset`,`1`);let o=await IF(`${FF}/builds/use?${a.toString()}`,{method:`POST`});r&&typeof o.reset==`object`&&o.reset!==null&&`failed`in o.reset&&i(`Switched, but reset failed: ${o.reset.failed}`),await b(),e()}catch(e){i(e instanceof Error?e.message:String(e))}finally{u(null)}}return(0,J.jsxs)(`section`,{children:[(0,J.jsx)(ZF,{title:`Builds`,description:(()=>{let e=t?.pointers?.browser,n=t?.pointers?.task;if(!e&&!n)return`No build selected — the runner uses the configured default image.`;if(e&&n&&e.snapshotName===n.snapshotName)return`In use (Browser + Task): ${e.snapshotName}`;let r=[];return e&&r.push(`Browser: ${e.snapshotName}`),n&&r.push(`Task: ${n.snapshotName}`),r.join(` · `)})(),actions:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`button`,{type:`button`,onClick:()=>void b(),disabled:a,className:`btn-ghost flex items-center gap-1.5 px-2 py-1 text-[11px] text-gray-400`,children:[(0,J.jsx)(ZT,{size:12,className:a?`animate-spin`:``}),`Refresh`]}),(0,J.jsxs)(`select`,{value:d,onChange:e=>f(e.target.value),disabled:s,className:`rounded border border-gray-700 bg-gray-900 px-2 py-1 text-[11px] text-gray-200 disabled:cursor-not-allowed disabled:opacity-50`,title:`Optional: layer this build on top of an existing snapshot. Leave as 'fresh image' to use the Sandboxfile's image: line.`,children:[(0,J.jsx)(`option`,{value:``,children:`based on: fresh image`}),(t?.builds??[]).map(e=>(0,J.jsxs)(`option`,{value:e.snapshotName,children:[`based on: `,e.buildId]},e.snapshotName))]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>void x(),disabled:s,className:`flex items-center gap-1.5 rounded-md bg-emerald-600 px-3 py-1.5 text-[11px] font-medium text-white hover:bg-emerald-500 disabled:cursor-not-allowed disabled:bg-gray-800 disabled:text-gray-500`,title:d?`Build on top of ${d}`:`Run apt/pip/npm/exec from your saved Sandboxfile and capture a snapshot`,children:[s?(0,J.jsx)(db,{size:12,className:`animate-spin`}):(0,J.jsx)(T_,{size:12}),`Build`]})]})}),r&&(0,J.jsx)(QF,{kind:`error`,text:r}),s&&p.length===0&&(0,J.jsx)(QF,{kind:`info`,text:`Building… this typically takes 10-30s for a slim base image plus a few apt/pip layers. `+(_>0?`(${(_/1e3).toFixed(0)}s elapsed)`:``)}),(s||p.length>0)&&(0,J.jsxs)(`div`,{className:`mb-3 overflow-hidden rounded-md border border-gray-800 bg-gray-950`,children:[(0,J.jsx)(`div`,{className:`flex items-center justify-between border-b border-gray-800 px-3 py-1.5`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] text-gray-300`,children:[s?(0,J.jsx)(db,{size:11,className:`animate-spin text-emerald-400`}):(0,J.jsx)(W,{size:11,className:`text-emerald-400`}),(0,J.jsx)(`span`,{children:s?`Build in progress`:`Last build log`}),s&&_>0&&(0,J.jsxs)(`span`,{className:`text-[10px] text-gray-500`,children:[(_/1e3).toFixed(0),`s`]}),(0,J.jsxs)(`span`,{className:`text-[10px] text-gray-600`,children:[p.length,` line`,p.length===1?``:`s`]})]})}),(0,J.jsx)(`pre`,{ref:y,className:`max-h-72 overflow-auto whitespace-pre-wrap px-3 py-2 font-mono text-[11px] leading-relaxed text-gray-300`,children:p.length>0?p.join(`
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Tianshu — AI agent platform</title>
|
|
7
7
|
<meta name="description" content="An open AI agent platform with a sidecar browser. Built in public." />
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-CEIw68Su.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-xU4lYYqY.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body class="bg-slate-950 text-slate-100">
|
|
@@ -257,4 +257,80 @@ export declare function claimNextTask(db: TenantDbHandle, opts?: {
|
|
|
257
257
|
* auto-resolve. (Owner can re-point with task_update.)
|
|
258
258
|
*/
|
|
259
259
|
export declare function isEligible(db: TenantDbHandle, task: Task): boolean;
|
|
260
|
+
export interface WorkerAnalyticsOpts {
|
|
261
|
+
/** Owner scope. Always required — analytics never crosses
|
|
262
|
+
* users, mirroring the rest of the workboard. */
|
|
263
|
+
ownerUserId: string;
|
|
264
|
+
/** Lower-bound (inclusive) on `ended_at`. Pass null/undefined
|
|
265
|
+
* to include all rows ever. */
|
|
266
|
+
sinceMs?: number | null;
|
|
267
|
+
/** Upper-bound (exclusive) on `ended_at`. Pass null/undefined
|
|
268
|
+
* to mean "up to now". */
|
|
269
|
+
untilMs?: number | null;
|
|
270
|
+
/** Hard cap on rows scanned. Default 5000. Analytics windows
|
|
271
|
+
* longer than this on a busy tenant are unusual; the cap
|
|
272
|
+
* protects pathological queries. */
|
|
273
|
+
limit?: number;
|
|
274
|
+
/** How many distinct failure-reason strings to surface in the
|
|
275
|
+
* per-agent breakdown. Default 3. */
|
|
276
|
+
topFailureCount?: number;
|
|
277
|
+
}
|
|
278
|
+
export interface FailureReasonCount {
|
|
279
|
+
/** Verbatim `failure_reason` string from `tasks`. NULL rows
|
|
280
|
+
* are dropped before counting. */
|
|
281
|
+
reason: string;
|
|
282
|
+
count: number;
|
|
283
|
+
}
|
|
284
|
+
export interface WorkerGroupStats {
|
|
285
|
+
/** Aggregation key — either a `worker_agent_id` slug or a
|
|
286
|
+
* `worker_role` string. `null` is reported as the literal
|
|
287
|
+
* string "(unassigned)" so the consumer doesn't have to
|
|
288
|
+
* special-case it. */
|
|
289
|
+
key: string;
|
|
290
|
+
/** How many rows entered this bucket. */
|
|
291
|
+
total: number;
|
|
292
|
+
/** Rows where `status='done'` and no intervention label was
|
|
293
|
+
* left behind. */
|
|
294
|
+
succeeded: number;
|
|
295
|
+
/** Rows where `intervention_reason` is set (any value). */
|
|
296
|
+
intervened: number;
|
|
297
|
+
/** Rows where the worker pool stamped `awaiting-intervention`
|
|
298
|
+
* AND the reason looked like a watchdog timeout — caller
|
|
299
|
+
* decides if that's a useful breakdown. We just count
|
|
300
|
+
* reasons starting with the literal prefix `watchdog`,
|
|
301
|
+
* matching the string the pool writes (see worker/pool.ts). */
|
|
302
|
+
timeoutHits: number;
|
|
303
|
+
/** Average run time in ms across rows with both timestamps.
|
|
304
|
+
* null when the bucket has no completed runs. */
|
|
305
|
+
avgDurationMs: number | null;
|
|
306
|
+
/** p50 / p95 run time across the same population. null on
|
|
307
|
+
* empty buckets. */
|
|
308
|
+
p50DurationMs: number | null;
|
|
309
|
+
p95DurationMs: number | null;
|
|
310
|
+
/** Sum of `attempts` across the bucket — a coarse signal of
|
|
311
|
+
* retry pressure. */
|
|
312
|
+
totalAttempts: number;
|
|
313
|
+
/** Top failure reasons, sorted by count descending. Empty
|
|
314
|
+
* when the bucket has no failures. */
|
|
315
|
+
topFailures: FailureReasonCount[];
|
|
316
|
+
}
|
|
317
|
+
export interface WorkerAnalyticsResult {
|
|
318
|
+
/** The actual window used (after clamping / defaulting). */
|
|
319
|
+
window: {
|
|
320
|
+
sinceMs: number | null;
|
|
321
|
+
untilMs: number | null;
|
|
322
|
+
};
|
|
323
|
+
/** Rows considered. */
|
|
324
|
+
sampleSize: number;
|
|
325
|
+
/** Per-agent stats — keyed on `worker_agent_id`. Agents that
|
|
326
|
+
* ran zero tasks in the window are not represented. */
|
|
327
|
+
perAgent: WorkerGroupStats[];
|
|
328
|
+
/** Per-role stats — keyed on `worker_role`. Same emptiness
|
|
329
|
+
* rule as `perAgent`. */
|
|
330
|
+
perRole: WorkerGroupStats[];
|
|
331
|
+
}
|
|
332
|
+
/** Pull the analytics window from `tasks` and aggregate twice —
|
|
333
|
+
* once per agent slug, once per role string. Both views share
|
|
334
|
+
* the same row set so the totals match up. */
|
|
335
|
+
export declare function computeWorkerAnalytics(db: TenantDbHandle, opts: WorkerAnalyticsOpts): WorkerAnalyticsResult;
|
|
260
336
|
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/db/tasks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/db/tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -448,4 +448,161 @@ function sanitiseDependsOn(raw, selfId) {
|
|
|
448
448
|
}
|
|
449
449
|
return out;
|
|
450
450
|
}
|
|
451
|
+
/** Compute p50 / p95 on a sorted ascending number array. Returns
|
|
452
|
+
* `null` when the input is empty. Used only by
|
|
453
|
+
* `computeWorkerAnalytics`. */
|
|
454
|
+
function percentile(sorted, p) {
|
|
455
|
+
if (sorted.length === 0)
|
|
456
|
+
return null;
|
|
457
|
+
if (sorted.length === 1)
|
|
458
|
+
return sorted[0];
|
|
459
|
+
const rank = (p / 100) * (sorted.length - 1);
|
|
460
|
+
const lo = Math.floor(rank);
|
|
461
|
+
const hi = Math.ceil(rank);
|
|
462
|
+
if (lo === hi)
|
|
463
|
+
return sorted[lo];
|
|
464
|
+
const weight = rank - lo;
|
|
465
|
+
return sorted[lo] * (1 - weight) + sorted[hi] * weight;
|
|
466
|
+
}
|
|
467
|
+
/** Bucket helper used twice (once per dimension). Mutates `out`
|
|
468
|
+
* in-place so the two passes can share the same accumulator
|
|
469
|
+
* shape. */
|
|
470
|
+
function bucketRow(out, key, row) {
|
|
471
|
+
const bucket = key ?? "(unassigned)";
|
|
472
|
+
let agg = out.get(bucket);
|
|
473
|
+
if (!agg) {
|
|
474
|
+
agg = {
|
|
475
|
+
total: 0,
|
|
476
|
+
succeeded: 0,
|
|
477
|
+
intervened: 0,
|
|
478
|
+
timeoutHits: 0,
|
|
479
|
+
durations: [],
|
|
480
|
+
attempts: 0,
|
|
481
|
+
failures: new Map(),
|
|
482
|
+
};
|
|
483
|
+
out.set(bucket, agg);
|
|
484
|
+
}
|
|
485
|
+
agg.total += 1;
|
|
486
|
+
agg.attempts += Number(row.attempts) || 0;
|
|
487
|
+
const labels = parseStringArray(row.labels);
|
|
488
|
+
const hasIntervention = labels.includes("awaiting-intervention") ||
|
|
489
|
+
!!row.intervention_reason;
|
|
490
|
+
if (hasIntervention)
|
|
491
|
+
agg.intervened += 1;
|
|
492
|
+
// "Succeeded" = terminal-done and not flagged for intervention.
|
|
493
|
+
if (row.status === "done" && !hasIntervention)
|
|
494
|
+
agg.succeeded += 1;
|
|
495
|
+
// Watchdog timeouts: the pool writes intervention_reason like
|
|
496
|
+
// "watchdog: ...". Match the prefix verbatim so this stat is
|
|
497
|
+
// robust to formatting tweaks in the pool's reason builder.
|
|
498
|
+
const reasonProbe = row.intervention_reason ?? row.failure_reason ?? "";
|
|
499
|
+
if (reasonProbe.toLowerCase().startsWith("watchdog")) {
|
|
500
|
+
agg.timeoutHits += 1;
|
|
501
|
+
}
|
|
502
|
+
if (row.started_at != null && row.ended_at != null && row.ended_at >= row.started_at) {
|
|
503
|
+
agg.durations.push(row.ended_at - row.started_at);
|
|
504
|
+
}
|
|
505
|
+
// Count distinct failure_reason strings (case-preserving — we
|
|
506
|
+
// don't want to fold "Watchdog: 10m" into "watchdog: 10m").
|
|
507
|
+
if (row.failure_reason) {
|
|
508
|
+
const k = row.failure_reason.trim();
|
|
509
|
+
if (k) {
|
|
510
|
+
agg.failures.set(k, (agg.failures.get(k) ?? 0) + 1);
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
function finaliseGroup(raw, topFailureCount) {
|
|
515
|
+
const out = [];
|
|
516
|
+
for (const [key, agg] of raw) {
|
|
517
|
+
const sorted = agg.durations.slice().sort((a, b) => a - b);
|
|
518
|
+
const avg = sorted.length === 0
|
|
519
|
+
? null
|
|
520
|
+
: sorted.reduce((s, v) => s + v, 0) / sorted.length;
|
|
521
|
+
const topFailures = Array.from(agg.failures.entries())
|
|
522
|
+
.sort((a, b) => b[1] - a[1])
|
|
523
|
+
.slice(0, Math.max(0, topFailureCount))
|
|
524
|
+
.map(([reason, count]) => ({ reason, count }));
|
|
525
|
+
out.push({
|
|
526
|
+
key,
|
|
527
|
+
total: agg.total,
|
|
528
|
+
succeeded: agg.succeeded,
|
|
529
|
+
intervened: agg.intervened,
|
|
530
|
+
timeoutHits: agg.timeoutHits,
|
|
531
|
+
avgDurationMs: avg,
|
|
532
|
+
p50DurationMs: percentile(sorted, 50),
|
|
533
|
+
p95DurationMs: percentile(sorted, 95),
|
|
534
|
+
totalAttempts: agg.attempts,
|
|
535
|
+
topFailures,
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
// Stable sort: highest-volume buckets first; ties broken by key.
|
|
539
|
+
out.sort((a, b) => {
|
|
540
|
+
if (b.total !== a.total)
|
|
541
|
+
return b.total - a.total;
|
|
542
|
+
return a.key.localeCompare(b.key);
|
|
543
|
+
});
|
|
544
|
+
return out;
|
|
545
|
+
}
|
|
546
|
+
/** Pull the analytics window from `tasks` and aggregate twice —
|
|
547
|
+
* once per agent slug, once per role string. Both views share
|
|
548
|
+
* the same row set so the totals match up. */
|
|
549
|
+
export function computeWorkerAnalytics(db, opts) {
|
|
550
|
+
const where = ["owner_user_id = ?"];
|
|
551
|
+
const params = [opts.ownerUserId];
|
|
552
|
+
// Window is `ended_at`-based — a task that never ended is
|
|
553
|
+
// skipped, on purpose: analytics is about completed runs,
|
|
554
|
+
// not in-flight work.
|
|
555
|
+
const sinceMs = opts.sinceMs != null ? Number(opts.sinceMs) : null;
|
|
556
|
+
const untilMs = opts.untilMs != null ? Number(opts.untilMs) : null;
|
|
557
|
+
if (sinceMs != null) {
|
|
558
|
+
where.push("ended_at IS NOT NULL AND ended_at >= ?");
|
|
559
|
+
params.push(sinceMs);
|
|
560
|
+
}
|
|
561
|
+
else {
|
|
562
|
+
where.push("ended_at IS NOT NULL");
|
|
563
|
+
}
|
|
564
|
+
if (untilMs != null) {
|
|
565
|
+
where.push("ended_at < ?");
|
|
566
|
+
params.push(untilMs);
|
|
567
|
+
}
|
|
568
|
+
const limit = Math.max(1, Math.min(opts.limit ?? 5000, 20_000));
|
|
569
|
+
const sql = `
|
|
570
|
+
SELECT worker_agent_id, worker_role, status, attempts,
|
|
571
|
+
failure_reason, intervention_reason,
|
|
572
|
+
started_at, ended_at, labels
|
|
573
|
+
FROM tasks
|
|
574
|
+
WHERE ${where.join(" AND ")}
|
|
575
|
+
ORDER BY ended_at DESC
|
|
576
|
+
LIMIT ?
|
|
577
|
+
`;
|
|
578
|
+
params.push(limit);
|
|
579
|
+
const rows = db.prepare(sql).all(...params);
|
|
580
|
+
const perAgentRaw = new Map();
|
|
581
|
+
const perRoleRaw = new Map();
|
|
582
|
+
for (const row of rows) {
|
|
583
|
+
bucketRow(perAgentRaw, row.worker_agent_id, row);
|
|
584
|
+
bucketRow(perRoleRaw, row.worker_role, row);
|
|
585
|
+
}
|
|
586
|
+
const topFailureCount = Math.max(0, Math.min(opts.topFailureCount ?? 3, 20));
|
|
587
|
+
return {
|
|
588
|
+
window: { sinceMs, untilMs },
|
|
589
|
+
sampleSize: rows.length,
|
|
590
|
+
perAgent: finaliseGroup(perAgentRaw, topFailureCount),
|
|
591
|
+
perRole: finaliseGroup(perRoleRaw, topFailureCount),
|
|
592
|
+
};
|
|
593
|
+
}
|
|
594
|
+
/** Builder for the bucket-row shape — kept as a separate helper
|
|
595
|
+
* only so `Map<string, ReturnType<typeof emptyAgg>>` reads
|
|
596
|
+
* cleanly above. */
|
|
597
|
+
function emptyAgg() {
|
|
598
|
+
return {
|
|
599
|
+
total: 0,
|
|
600
|
+
succeeded: 0,
|
|
601
|
+
intervened: 0,
|
|
602
|
+
timeoutHits: 0,
|
|
603
|
+
durations: [],
|
|
604
|
+
attempts: 0,
|
|
605
|
+
failures: new Map(),
|
|
606
|
+
};
|
|
607
|
+
}
|
|
451
608
|
//# sourceMappingURL=tasks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/db/tasks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/db/tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAEV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAKnB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAEV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAKnB,MAAM,wBAAwB,CAAC;AA6EhC,QAAA,MAAM,MAAM,EAAE,kBAiWb,CAAC;AAkBF,eAAO,MAAM,QAAQ,4EAA+B,CAAC;AACrD,eAAO,MAAM,UAAU,0CAAkC,CAAC;AAC1D,eAAe,MAAM,CAAC"}
|
|
@@ -26,7 +26,7 @@ import fs from "node:fs";
|
|
|
26
26
|
import path from "node:path";
|
|
27
27
|
import { setAgentEnabled } from "./fs-worker-agents.js";
|
|
28
28
|
import { EchoWorker, LLMWorker, WorkerPool, } from "./worker/pool.js";
|
|
29
|
-
import { buildModelListTool, buildTaskAbortTool, buildTaskCompleteTool, buildTaskContinueTool, buildTaskCreateTool, buildTaskExtendTimeoutTool, buildTaskGetHistoryTool, buildTaskRetryFreshTool, buildTaskDeleteTool, buildTaskListTool, buildTaskMoveTool, buildTaskUpdateTool, } from "./tools/index.js";
|
|
29
|
+
import { buildModelListTool, buildTaskAbortTool, buildTaskCompleteTool, buildTaskContinueTool, buildTaskCreateTool, buildTaskExtendTimeoutTool, buildTaskGetHistoryTool, buildTaskRetryFreshTool, buildTaskDeleteTool, buildTaskListTool, buildTaskMoveTool, buildTaskUpdateTool, buildWorkerAnalyticsTool, } from "./tools/index.js";
|
|
30
30
|
import { buildRoutes } from "./routes/handlers.js";
|
|
31
31
|
import { ensureSchema } from "./db/schema.js";
|
|
32
32
|
import { loadWorkerAgents } from "./fs-worker-agents.js";
|
|
@@ -344,6 +344,12 @@ const plugin = {
|
|
|
344
344
|
// Model catalog (main agent only — the available() guard
|
|
345
345
|
// and the worker deny-list both block worker access).
|
|
346
346
|
ModelListTool: buildModelListTool(),
|
|
347
|
+
// ADR-0002 §12 — orchestrator-side analytics. Read-only
|
|
348
|
+
// aggregations across `tasks` so the main agent can spot
|
|
349
|
+
// duration drift, intervention hot spots, and recurring
|
|
350
|
+
// failure reasons, and propose tuning to the user.
|
|
351
|
+
// Workers are denied via WORKER_DENY_TOOLS.
|
|
352
|
+
WorkerAnalyticsTool: buildWorkerAnalyticsTool(toolDeps),
|
|
347
353
|
},
|
|
348
354
|
routes,
|
|
349
355
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,4 +67,20 @@ export declare function buildTaskAbortTool(deps: ToolDeps): AgentTool;
|
|
|
67
67
|
*/
|
|
68
68
|
export declare function buildModelListTool(): AgentTool;
|
|
69
69
|
export declare function buildTaskCompleteTool(): AgentTool;
|
|
70
|
+
/**
|
|
71
|
+
* `worker_analytics` — read-only summary across recent task runs
|
|
72
|
+
* (ADR-0002 §12). Intended for the orchestrator (天枢) to spot
|
|
73
|
+
* patterns and propose tuning to the user. Workers are denied
|
|
74
|
+
* this tool via WORKER_DENY_TOOLS.
|
|
75
|
+
*
|
|
76
|
+
* Returns per-agent and per-role aggregates: total runs,
|
|
77
|
+
* success / intervention counts, watchdog-timeout hits,
|
|
78
|
+
* avg / p50 / p95 duration, and the top-N failure_reason strings.
|
|
79
|
+
* The orchestrator turns these numbers into prose recommendations
|
|
80
|
+
* ("raise web-research's timeoutMs to 15 min", etc.).
|
|
81
|
+
*
|
|
82
|
+
* Scope is single-tenant single-owner. Cross-tenant analytics is
|
|
83
|
+
* explicitly out of scope (ADR-0001).
|
|
84
|
+
*/
|
|
85
|
+
export declare function buildWorkerAnalyticsTool(deps: ToolDeps): AgentTool;
|
|
70
86
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,SAAS,EAGT,cAAc,EACd,YAAY,EACb,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,SAAS,EAGT,cAAc,EACd,YAAY,EACb,MAAM,wBAAwB,CAAC;AAsChC,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,cAAc,CAAC;IACnB,GAAG,EAAE,YAAY,CAAC;IAClB,oEAAoE;IACpE,WAAW,IAAI,IAAI,CAAC;IACpB;;;;;;;OAOG;IACH,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AA2FD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CA+D3D;AAkDD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAiH7D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAuH7D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAoG3D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAuF7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAkDjE;AA2CD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAkE/D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CA4DjE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAmFpE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAqD5D;AAED;;;;;;;;;;;;;GAaG;AACH;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,CAmD9C;AAED,wBAAgB,qBAAqB,IAAI,SAAS,CA0CjD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAgFlE"}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
// the scope without rewriting the tools.
|
|
22
22
|
import { randomUUID } from "node:crypto";
|
|
23
23
|
import { Type } from "typebox";
|
|
24
|
-
import { createTask, deleteTask, getTask, isEligible, listTasks, updateTask, isTaskStatus, INTERVENTION_LABEL, DEFAULT_TASK_TIMEOUT_MS, VISIBLE_STATUSES, } from "../db/tasks.js";
|
|
24
|
+
import { computeWorkerAnalytics, createTask, deleteTask, getTask, isEligible, listTasks, updateTask, isTaskStatus, INTERVENTION_LABEL, DEFAULT_TASK_TIMEOUT_MS, VISIBLE_STATUSES, } from "../db/tasks.js";
|
|
25
25
|
import { appendContinuationHint, stripContinuationHint, } from "../worker/pool.js";
|
|
26
26
|
import { loadWorkerAgents } from "../fs-worker-agents.js";
|
|
27
27
|
/** PR-C2 replaces the listWorkerAgents() DB call with a fs scan.
|
|
@@ -999,4 +999,107 @@ export function buildTaskCompleteTool() {
|
|
|
999
999
|
},
|
|
1000
1000
|
};
|
|
1001
1001
|
}
|
|
1002
|
+
/**
|
|
1003
|
+
* `worker_analytics` — read-only summary across recent task runs
|
|
1004
|
+
* (ADR-0002 §12). Intended for the orchestrator (天枢) to spot
|
|
1005
|
+
* patterns and propose tuning to the user. Workers are denied
|
|
1006
|
+
* this tool via WORKER_DENY_TOOLS.
|
|
1007
|
+
*
|
|
1008
|
+
* Returns per-agent and per-role aggregates: total runs,
|
|
1009
|
+
* success / intervention counts, watchdog-timeout hits,
|
|
1010
|
+
* avg / p50 / p95 duration, and the top-N failure_reason strings.
|
|
1011
|
+
* The orchestrator turns these numbers into prose recommendations
|
|
1012
|
+
* ("raise web-research's timeoutMs to 15 min", etc.).
|
|
1013
|
+
*
|
|
1014
|
+
* Scope is single-tenant single-owner. Cross-tenant analytics is
|
|
1015
|
+
* explicitly out of scope (ADR-0001).
|
|
1016
|
+
*/
|
|
1017
|
+
export function buildWorkerAnalyticsTool(deps) {
|
|
1018
|
+
return {
|
|
1019
|
+
schema: {
|
|
1020
|
+
name: "worker_analytics",
|
|
1021
|
+
description: "Read-only summary of recent worker task runs for the current user. " +
|
|
1022
|
+
"Use this to notice patterns across runs (duration drift, intervention-rate " +
|
|
1023
|
+
"hot spots, repeated failure reasons) and turn them into concrete tuning " +
|
|
1024
|
+
"suggestions you propose back to the user. Never auto-apply changes — " +
|
|
1025
|
+
"analytics is a recommendation surface, not a control loop. Pass a " +
|
|
1026
|
+
"`windowDays` to scope to a recent slice (default 7 days). Each call " +
|
|
1027
|
+
"returns per-agent and per-role aggregates plus top failure reasons.",
|
|
1028
|
+
parameters: Type.Object({
|
|
1029
|
+
windowDays: Type.Optional(Type.Number({
|
|
1030
|
+
description: "How many days back from now to include. Default 7. Pass 0 (or omit `windowDays` AND set `allTime=true`) to look at every completed task on record.",
|
|
1031
|
+
})),
|
|
1032
|
+
allTime: Type.Optional(Type.Boolean({
|
|
1033
|
+
description: "Override `windowDays` and look at every completed task on record. Default false.",
|
|
1034
|
+
})),
|
|
1035
|
+
topFailures: Type.Optional(Type.Number({
|
|
1036
|
+
description: "How many distinct failure_reason strings to surface per bucket. Default 3.",
|
|
1037
|
+
})),
|
|
1038
|
+
limit: Type.Optional(Type.Number({
|
|
1039
|
+
description: "Hard cap on rows scanned (most recent first). Default 5000.",
|
|
1040
|
+
})),
|
|
1041
|
+
}),
|
|
1042
|
+
},
|
|
1043
|
+
execute: (raw, ctx) => {
|
|
1044
|
+
const args = raw;
|
|
1045
|
+
const now = Date.now();
|
|
1046
|
+
const allTime = args.allTime === true;
|
|
1047
|
+
// Coerce windowDays: clamp negatives, treat 0 as "all time"
|
|
1048
|
+
// so callers don't need to learn the `allTime` flag.
|
|
1049
|
+
const daysRaw = typeof args.windowDays === "number" && Number.isFinite(args.windowDays)
|
|
1050
|
+
? args.windowDays
|
|
1051
|
+
: 7;
|
|
1052
|
+
const days = Math.max(0, daysRaw);
|
|
1053
|
+
const sinceMs = allTime || days === 0 ? null : now - days * 24 * 60 * 60 * 1000;
|
|
1054
|
+
const result = computeWorkerAnalytics(deps.db, {
|
|
1055
|
+
ownerUserId: ctx.userId,
|
|
1056
|
+
sinceMs,
|
|
1057
|
+
untilMs: null,
|
|
1058
|
+
limit: args.limit,
|
|
1059
|
+
topFailureCount: args.topFailures,
|
|
1060
|
+
});
|
|
1061
|
+
const windowLabel = sinceMs == null ? "all time" : `last ${days}d`;
|
|
1062
|
+
const lines = [];
|
|
1063
|
+
lines.push(`worker_analytics (${windowLabel}): ${result.sampleSize} completed task run(s).`);
|
|
1064
|
+
if (result.sampleSize === 0) {
|
|
1065
|
+
lines.push("(no completed runs in window — nothing to analyse)");
|
|
1066
|
+
return { ok: true, text: lines.join("\n"), data: result };
|
|
1067
|
+
}
|
|
1068
|
+
lines.push("");
|
|
1069
|
+
lines.push("Per agent:");
|
|
1070
|
+
lines.push(formatGroup(result.perAgent));
|
|
1071
|
+
lines.push("");
|
|
1072
|
+
lines.push("Per role:");
|
|
1073
|
+
lines.push(formatGroup(result.perRole));
|
|
1074
|
+
return { ok: true, text: lines.join("\n"), data: result };
|
|
1075
|
+
},
|
|
1076
|
+
};
|
|
1077
|
+
}
|
|
1078
|
+
/** Render a Group view as a fixed-column block: easier on the
|
|
1079
|
+
* orchestrator than a raw JSON dump when it's deciding what to
|
|
1080
|
+
* flag for the user. */
|
|
1081
|
+
function formatGroup(groups) {
|
|
1082
|
+
if (groups.length === 0)
|
|
1083
|
+
return " (none)";
|
|
1084
|
+
const lines = [];
|
|
1085
|
+
for (const g of groups) {
|
|
1086
|
+
const successRate = g.total > 0 ? Math.round((g.succeeded / g.total) * 100) : 0;
|
|
1087
|
+
const intervRate = g.total > 0 ? Math.round((g.intervened / g.total) * 100) : 0;
|
|
1088
|
+
const avg = g.avgDurationMs != null ? `${Math.round(g.avgDurationMs / 1000)}s` : "—";
|
|
1089
|
+
const p50 = g.p50DurationMs != null ? `${Math.round(g.p50DurationMs / 1000)}s` : "—";
|
|
1090
|
+
const p95 = g.p95DurationMs != null ? `${Math.round(g.p95DurationMs / 1000)}s` : "—";
|
|
1091
|
+
lines.push(` ${g.key}: total=${g.total} ` +
|
|
1092
|
+
`succeeded=${g.succeeded}(${successRate}%) ` +
|
|
1093
|
+
`intervened=${g.intervened}(${intervRate}%) ` +
|
|
1094
|
+
`watchdog=${g.timeoutHits} ` +
|
|
1095
|
+
`avg=${avg} p50=${p50} p95=${p95} attempts=${g.totalAttempts}`);
|
|
1096
|
+
if (g.topFailures.length > 0) {
|
|
1097
|
+
for (const f of g.topFailures) {
|
|
1098
|
+
const trimmed = f.reason.length > 80 ? f.reason.slice(0, 77) + "…" : f.reason;
|
|
1099
|
+
lines.push(` ×${f.count} ${trimmed}`);
|
|
1100
|
+
}
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
return lines.join("\n");
|
|
1104
|
+
}
|
|
1002
1105
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-policy.d.ts","sourceRoot":"","sources":["../../src/worker/tool-policy.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"tool-policy.d.ts","sourceRoot":"","sources":["../../src/worker/tool-policy.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAkCrC,CAAC;AAEX,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAErD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAEzC,CAAC"}
|
|
@@ -55,6 +55,11 @@ export const WORKER_DENY_TOOLS = [
|
|
|
55
55
|
"worker_agent_update",
|
|
56
56
|
"worker_agent_delete",
|
|
57
57
|
"worker_agent_reset",
|
|
58
|
+
// Orchestrator-only analytics (ADR-0002 §12). A worker has no
|
|
59
|
+
// legitimate reason to introspect its peers' aggregate run
|
|
60
|
+
// history, and letting it would loop the pool into
|
|
61
|
+
// self-monitoring.
|
|
62
|
+
"worker_analytics",
|
|
58
63
|
];
|
|
59
64
|
export const WORKER_DENY_TOOLS_SET = new Set(WORKER_DENY_TOOLS);
|
|
60
65
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-policy.js","sourceRoot":"","sources":["../../src/worker/tool-policy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,iEAAiE;AACjE,oEAAoE;AACpE,iCAAiC;AACjC,EAAE;AACF,gEAAgE;AAChE,+DAA+D;AAC/D,6BAA6B;AAC7B,4DAA4D;AAC5D,4DAA4D;AAC5D,iEAAiE;AACjE,8DAA8D;AAC9D,+DAA+D;AAC/D,+BAA+B;AAC/B,EAAE;AACF,+DAA+D;AAC/D,wDAAwD;AAExD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,WAAW;IACX,aAAa;IACb,aAAa;IACb,WAAW;IACX,aAAa;IACb,0DAA0D;IAC1D,8CAA8C;IAC9C,kBAAkB;IAClB,4DAA4D;IAC5D,0DAA0D;IAC1D,0DAA0D;IAC1D,eAAe;IACf,kBAAkB;IAClB,qBAAqB;IACrB,YAAY;IACZ,6DAA6D;IAC7D,mDAAmD;IACnD,gCAAgC;IAChC,YAAY;IACZ,6DAA6D;IAC7D,2DAA2D;IAC3D,gDAAgD;IAChD,yBAAyB;IACzB,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;
|
|
1
|
+
{"version":3,"file":"tool-policy.js","sourceRoot":"","sources":["../../src/worker/tool-policy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,iEAAiE;AACjE,oEAAoE;AACpE,iCAAiC;AACjC,EAAE;AACF,gEAAgE;AAChE,+DAA+D;AAC/D,6BAA6B;AAC7B,4DAA4D;AAC5D,4DAA4D;AAC5D,iEAAiE;AACjE,8DAA8D;AAC9D,+DAA+D;AAC/D,+BAA+B;AAC/B,EAAE;AACF,+DAA+D;AAC/D,wDAAwD;AAExD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,WAAW;IACX,aAAa;IACb,aAAa;IACb,WAAW;IACX,aAAa;IACb,0DAA0D;IAC1D,8CAA8C;IAC9C,kBAAkB;IAClB,4DAA4D;IAC5D,0DAA0D;IAC1D,0DAA0D;IAC1D,eAAe;IACf,kBAAkB;IAClB,qBAAqB;IACrB,YAAY;IACZ,6DAA6D;IAC7D,mDAAmD;IACnD,gCAAgC;IAChC,YAAY;IACZ,6DAA6D;IAC7D,2DAA2D;IAC3D,gDAAgD;IAChD,yBAAyB;IACzB,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;IACpB,8DAA8D;IAC9D,2DAA2D;IAC3D,mDAAmD;IACnD,mBAAmB;IACnB,kBAAkB;CACV,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAC/D,iBAAiB,CAClB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,eAAe;CACP,CAAC"}
|
|
@@ -56,7 +56,8 @@
|
|
|
56
56
|
{ "id": "task_retry_fresh", "module": "TaskRetryFreshTool" },
|
|
57
57
|
{ "id": "task_extend_timeout", "module": "TaskExtendTimeoutTool" },
|
|
58
58
|
{ "id": "task_abort", "module": "TaskAbortTool" },
|
|
59
|
-
{ "id": "model_list", "module": "ModelListTool" }
|
|
59
|
+
{ "id": "model_list", "module": "ModelListTool" },
|
|
60
|
+
{ "id": "worker_analytics", "module": "WorkerAnalyticsTool" }
|
|
60
61
|
],
|
|
61
62
|
"skills": [
|
|
62
63
|
{ "id": "workboard-howto", "path": "skills/workboard-howto.md" },
|