| Filename | Latest commit message | Latest commit date |
|---|---|---|
Second module of the tabs.js split (after the roster keystone). The P3RM1SS10NS tab — the per-agent capabilities + tool-groups matrices — is the cleanest leaf: six contiguous functions with no module-scoped state (each render builds fresh from the fetched payload) and no cross-domain references except the agent roster, which it now imports from state.js. Moves applyCapabilitiesChanged / applyToolGroupsChanged (the live-update handlers wired into the entry's mutation dispatch table) and fetchAndRenderCapabilities / fetchAndRenderToolGroups (called on tab activation) into a new permissions.js, exporting those four; the two renderers stay module-private. tabs.js imports the four — the dispatch table and tab-activation call-sites resolve unchanged. Behaviour-preserving: pure code motion. esbuild inlines permissions.js into the tabs.js bundle, so the static output is unchanged. Build green; tabs.js drops 258 lines. |
||
| .. | ||
| src | ||
| build.mjs | ||
| package.json | ||