From b4f817bb51ef863c7502a920039fd542a0e3fa35 Mon Sep 17 00:00:00 2001 From: 0libote <79215282+0libote@users.noreply.github.com> Date: Mon, 19 Oct 2026 11:53:50 +0100 Subject: [PATCH 01/11] feat(setup): add a toggle to hide bundled skills --- docker/setup/app.js | 1 + docker/setup/client/skills.js | 16 ++++++++-- docker/setup/console.css | 4 +++ docs/context-management.md | 6 ++++ scripts/skills-ui-audit.js | 22 ++++++++++++- tests/skills-ui.test.mjs | 60 +++++++++++++++++++++++++++++++++++ 6 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 tests/skills-ui.test.mjs diff --git a/docker/setup/app.js b/docker/setup/app.js index ea8dcfdf..499ed253 100644 --- a/docker/setup/app.js +++ b/docker/setup/app.js @@ -3406,6 +3406,7 @@ 'storage.versions': () => storageUI.reviewVersions(), 'storage.details': () => storageUI.toggle(), 'skills.refresh': () => skillsUI.refresh(), + 'skills.filter': () => skillsUI.toggleBundled(), 'skills.view': (a) => skillsUI.view(a.id), 'skills.add': () => skillsUI.add(), 'skills.import': () => skillsUI.install(), diff --git a/docker/setup/client/skills.js b/docker/setup/client/skills.js index 9f9bbfef..b98db53d 100644 --- a/docker/setup/client/skills.js +++ b/docker/setup/client/skills.js @@ -11,6 +11,10 @@ const T3SkillsUI = (() => { : { text: 'Unverified', tone: '' }; const create = ({ api, getStatus, render, readMarkdown, downloadMarkdown }) => { let provider = null, inventory = null, loading = false, error = null, generation = 0, viewer = null, changing = null; + const filterKey = 't3-console-hide-bundled-skills'; + let hideBundled = false; + try { hideBundled = localStorage.getItem(filterKey) === 'true'; } catch { /* this session only */ } + const visibleSkills = () => (inventory?.skills || []).filter((skill) => !hideBundled || skill.scope !== 'system'); const importer = T3SkillImport.create({ api, providers, refresh: () => load(true) }); const chooseDefault = () => { const installed = (getStatus()?.harnesses || []).filter((row) => row.installed).map((row) => row.id); @@ -30,7 +34,7 @@ const T3SkillsUI = (() => { }; const providerName = (id) => providers.find(([key]) => key === id)?.[1] || 'this agent'; const coverageSummary = () => !inventory || loading ? '' - : M.plural(inventory.skills?.length || 0, 'skill'); + : M.plural(visibleSkills().length, 'skill') + (hideBundled && inventory.skills?.some((skill) => skill.scope === 'system') ? ' · ' + (inventory.skills.length - visibleSkills().length) + ' hidden' : ''); // What a skill's availability means for this agent, said once under the list. const coverageText = () => !inventory ? 'Refresh after changing skills outside the console.' : inventory.coverage === 'policy' ? 'These settings are ' + providerName(provider) + '’s own, for every project. A project’s settings can still turn a skill off. A change applies to new conversations.' @@ -63,14 +67,15 @@ const T3SkillsUI = (() => { }; const content = () => html`
${coverageSummary()}
${actions()}
+
Hide skills included with the agent from this list.
${loading ? html`

Reading skills…

` : ''} ${error ? html`` : ''} ${!loading && !error && inventory ? html` ${inventory.nativeError ? html`

${icon('triangle-alert')}${providerName(provider)} couldn’t be asked which skills it loads: ${inventory.nativeError}

` : ''} ${(inventory.warnings || []).map((warning) => html`

${icon('triangle-alert')}${warning}

`)} - ${inventory.skills?.length ? html`
${inventory.skills.map(row)}
` : ''} - ${!inventory.skills?.length ? html`
${inventory.warnings?.length ? 'No skills could be shown' : 'No skills yet'}${inventory.warnings?.length ? 'The messages above say why.' : 'Nothing in ' + providerName(provider) + '’s global skill folders. Add one here, or install one from a source.'}
` : ''} + ${visibleSkills().length ? html`
${visibleSkills().map(row)}
` : ''} + ${!visibleSkills().length ? html`
${inventory.skills?.length ? 'All skills are hidden' : inventory.warnings?.length ? 'No skills could be shown' : 'No skills yet'}${inventory.skills?.length ? 'Turn off Hide bundled skills to show them.' : inventory.warnings?.length ? 'The messages above say why.' : 'Nothing in ' + providerName(provider) + '’s global skill folders. Add one here, or install one from a source.'}
` : ''} ${inventory.roots?.length ? html`
Looked in ${M.plural(inventory.roots.length, 'folder')}${inventory.roots.map((root) => html`${root.path}`)}
` : ''} ` : ''}
@@ -192,6 +197,11 @@ const T3SkillsUI = (() => { return { content, actions, setState, install: () => importer.open(provider || chooseDefault()), view: (id, editing = false) => open(id, editing), add: () => { if (inventory?.canCreate) return open(null, true, true); }, activate: () => { if (!inventory && !loading && !error) load(); }, refresh: () => load(true), + toggleBundled: () => { + hideBundled = !hideBundled; + try { localStorage.setItem(filterKey, String(hideBundled)); } catch { /* this session only */ } + render(); + }, select: (id) => { if (!providers.some(([key]) => key === id) || id === provider) return; viewer?.layer.close('provider'); diff --git a/docker/setup/console.css b/docker/setup/console.css index 95799505..8f39f2ba 100644 --- a/docker/setup/console.css +++ b/docker/setup/console.css @@ -649,6 +649,10 @@ html.tc-locked { overflow: hidden; } .tc-skill-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); padding: var(--space-4); } .tc-skill-toolbar .tc-label { margin: 0; } .tc-skill-toolbar select { width: auto; min-width: 140px; max-width: 100%; } +.tc-skill-filter { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); padding: 0 var(--space-4) var(--space-4); font-size: 12px; } +.tc-skill-filter label { cursor: pointer; } +.tc-skill-filter .tc-switch { flex: none; } +.tc-skill-filter .tc-hint { margin: 0; } .tc-skill-count { white-space: nowrap; } .tc-skill-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); } @media (max-width: 639.98px) { diff --git a/docs/context-management.md b/docs/context-management.md index cbd6835a..63b628be 100644 --- a/docs/context-management.md +++ b/docs/context-management.md @@ -102,6 +102,12 @@ and runtime metadata, as described below. Cursor, Grok and Muse still show **Unverified** availability. Plugin inventories and configured extra locations are outside the basic known-folder inventory. +**Hide bundled skills** hides entries identified as system skills, such as those +shipped with Codex. It only filters this list; the agent can still use them. The +choice is remembered in this browser, and the count shows how many are hidden. +User, administrator and plugin installations remain visible unless the provider +identifies them as system skills. + Inventory loads when the Skills tab opens or its agent changes. **Refresh skills** rescans after external changes. Concurrent requests share a lookup and results are cached for 15 seconds; regular `/status` polling does not scan skills. diff --git a/scripts/skills-ui-audit.js b/scripts/skills-ui-audit.js index fc7b1c22..0be611d6 100644 --- a/scripts/skills-ui-audit.js +++ b/scripts/skills-ui-audit.js @@ -59,6 +59,7 @@ const checkSelect = async (page, select, theme) => { let gateRead = false, releaseRead, oldReadStarted, readError = false, inventoryError = false; let saveError = true, gateSave = false, releaseSave, saveStarted; let stateError = true, gateState = false, releaseState, stateStarted, firstEnabled = true; + let bundledFixture = false; let policies = false, importFailure = true, gateImport = false, releaseImport, importStarted; let gateSource = false, releaseSource, sourceStarted; let gatePlan = false, releasePlan, planStarted, importPlanning = false; @@ -77,7 +78,7 @@ const checkSelect = async (page, select, theme) => { canEdit: true, canRemove: true, revision: 'fixture-revision', removalRevision: 'fixture-removal', removalKind: 'directory', removalPath: '/fixture/local/review' }); const inventoryFor = (provider) => ({ ok: true, provider, canCreate: true, creationTargets: [{ id: 'provider', name: 'Provider folder' }, ...(provider === 'codex' || provider === 'opencode' ? [{ id: 'shared', name: 'Shared .agents folder' }] : [])], - skills: [skill(provider, firstId, 'review'), skill(provider, secondId, 'manual-review')], + skills: [skill(provider, firstId, 'review'), skill(provider, secondId, 'manual-review'), ...(bundledFixture ? [{ ...skill(provider, 'c'.repeat(32), 'bundled-example'), scope: 'system', source: 'System', canToggle: false, canSetState: false }] : [])], coverage: provider === 'codex' ? 'native' : policies ? 'policy' : 'files', warnings: [], coverageText: provider + ' global skill inventory' }); await page.route('**/context/skills**', async (route) => { const url = new URL(route.request().url()), provider = url.searchParams.get('provider'); @@ -168,6 +169,25 @@ const checkSelect = async (page, select, theme) => { assert.equal(await page.locator('#skill-provider').inputValue(), 'opencode'); await page.locator('#skill-provider').selectOption('codex'); await page.locator('.tc-skills[data-provider="codex"]').waitFor(); + // Hiding bundled skills changes only the list, never the provider's settings. + bundledFixture = true; + await page.getByRole('button', { name: 'Refresh skills', exact: true }).click(); + await page.getByRole('button', { name: 'View bundled-example', exact: true }).waitFor(); + await capture('bundled-visible'); + const beforeFilterMutations = mutations.length; + await page.getByRole('switch', { name: 'Hide bundled skills', exact: true }).click(); + assert.equal(await page.locator('.tc-skill-row').count(), 2); + assert.equal(await page.locator('.tc-skill-count').innerText(), '2 skills · 1 hidden'); + assert.equal(await page.getByRole('button', { name: 'View bundled-example', exact: true }).count(), 0); + assert.equal(mutations.length, beforeFilterMutations); + assert.equal(await page.evaluate(() => document.documentElement.scrollWidth > innerWidth), false); + await capture('bundled-hidden'); + await page.getByRole('switch', { name: 'Hide bundled skills', exact: true }).click(); + assert.equal(await page.locator('.tc-skill-row').count(), 3); + bundledFixture = false; + await page.getByRole('button', { name: 'Refresh skills', exact: true }).click(); + await page.getByRole('button', { name: 'View review', exact: true }).waitFor(); + assert.equal(await page.getByRole('button', { name: 'View bundled-example', exact: true }).count(), 0); // Codex's own on/off for each skill is a switch in its row. const codexStates = () => page.locator('.tc-skill-row [role="switch"]').evaluateAll((all) => all.map((el) => el.getAttribute('aria-checked'))); const reviewSwitch = page.getByRole('switch', { name: 'review for Codex', exact: true }); diff --git a/tests/skills-ui.test.mjs b/tests/skills-ui.test.mjs new file mode 100644 index 00000000..a475ede9 --- /dev/null +++ b/tests/skills-ui.test.mjs @@ -0,0 +1,60 @@ +import assert from 'node:assert/strict'; +import { readFile } from 'node:fs/promises'; +import vm from 'node:vm'; +import test from 'node:test'; + +const source = await readFile(new URL('../docker/setup/client/skills.js', import.meta.url), 'utf8'); +const skills = [ + { id: 'user', name: 'My skill', scope: 'user' }, + { id: 'system', name: 'Bundled skill', scope: 'system' }, + { id: 'admin', name: 'Organization skill', scope: 'admin' }, + { id: 'plugin', name: 'Plugin skill', scope: 'user', source: 'Plugin' }, +]; +async function fixture(rows = skills, storage = new Map()) { + const requests = []; + const context = vm.createContext({ + Kit: { html: (parts, ...values) => parts.reduce((text, part, i) => text + part + (Array.isArray(values[i]) ? values[i].join('') : values[i] ?? ''), ''), raw: (value) => value, icon: () => '' }, + T3Model: { plural: (count, name) => `${count} ${name}${count === 1 ? '' : 's'}` }, + T3SkillImport: { create: () => ({}) }, + localStorage: { getItem: (key) => storage.get(key), setItem: (key, value) => storage.set(key, value) }, + }); + vm.runInContext(source + '\nglobalThis.create = T3SkillsUI.create;', context); + const ui = context.create({ render() {}, getStatus: () => ({ harnesses: [{ installed: true, id: 'codex' }] }), api: async (url) => { + requests.push(url); + return { ok: true, data: { provider: 'codex', skills: rows } }; + } }); + await ui.refresh(); + return { ui, requests, storage }; +} + +test('bundled filter hides only system skills and never changes provider state', async () => { + const { ui, requests, storage } = await fixture(); + assert.match(ui.content(), /View Bundled skill/); + ui.toggleBundled(); + const content = ui.content(); + assert.doesNotMatch(content, /View Bundled skill/); + for (const name of ['My skill', 'Organization skill', 'Plugin skill']) assert.ok(content.includes('View ' + name)); + assert.match(content, /3 skills · 1 hidden/); + assert.equal(requests.length, 1, 'filtering needs no API call'); + const restored = await fixture(skills, storage); + assert.doesNotMatch(restored.ui.content(), /View Bundled skill/); + restored.ui.toggleBundled(); + assert.match(restored.ui.content(), /View Bundled skill/); + assert.match(restored.ui.content(), /4 skills/); +}); + +test('filtered empty state explains how to reveal bundled skills', async () => { + const { ui } = await fixture([skills[1]]); + ui.toggleBundled(); + assert.match(ui.content(), /0 skills · 1 hidden/); + assert.match(ui.content(), /All skills are hidden/); + assert.match(ui.content(), /Turn off Hide bundled skills to show them/); + assert.doesNotMatch(ui.content(), /No skills yet/); +}); + +test('blocked browser storage still allows filtering for the session', async () => { + const storage = { get() { throw Error('blocked'); }, set() { throw Error('blocked'); } }; + const { ui } = await fixture(skills, storage); + ui.toggleBundled(); + assert.doesNotMatch(ui.content(), /View Bundled skill/); +}); From abb3240f3646068a3674e5d143f94447d5107d48 Mon Sep 17 00:00:00 2001 From: 0libote <79215282+0libote@users.noreply.github.com> Date: Mon, 19 Oct 2026 15:43:11 +0100 Subject: [PATCH 02/11] feat(setup): track repository skills and check for updates --- docker/setup/app.js | 1 + docker/setup/client/skill-import.js | 7 +- docker/setup/client/skills.js | 27 ++++++-- docker/setup/server.mjs | 9 +-- docker/setup/skills.mjs | 39 ++++++++++- docker/setup/skills/imports.mjs | 12 +++- docker/setup/skills/origins.mjs | 29 ++++++++ docker/setup/skills/sources.mjs | 4 +- docs/context-management.md | 21 ++++-- scripts/skills-ui-audit.js | 30 +++++++- tests/skill-sources.test.mjs | 1 + tests/skill-updates.test.mjs | 104 ++++++++++++++++++++++++++++ tests/skills-api.test.mjs | 3 +- 13 files changed, 260 insertions(+), 27 deletions(-) create mode 100644 docker/setup/skills/origins.mjs create mode 100644 tests/skill-updates.test.mjs diff --git a/docker/setup/app.js b/docker/setup/app.js index 499ed253..96e7293e 100644 --- a/docker/setup/app.js +++ b/docker/setup/app.js @@ -3405,6 +3405,7 @@ 'storage.preferences': () => storageUI.preferences(), 'storage.versions': () => storageUI.reviewVersions(), 'storage.details': () => storageUI.toggle(), + 'skills.check-updates': () => skillsUI.checkUpdates(), 'skills.refresh': () => skillsUI.refresh(), 'skills.filter': () => skillsUI.toggleBundled(), 'skills.view': (a) => skillsUI.view(a.id), diff --git a/docker/setup/client/skill-import.js b/docker/setup/client/skill-import.js index 3d50cb13..a6cc8406 100644 --- a/docker/setup/client/skill-import.js +++ b/docker/setup/client/skill-import.js @@ -4,7 +4,7 @@ const T3SkillImport = (() => { const { html, raw, icon } = Kit; const create = ({ api, providers, refresh }) => { let active = null; - const open = (provider) => { + const open = (provider, initial = null) => { if (active) return; const view = { source: '', catalogSearch: '', preview: null, plan: null, result: null, skills: new Set(), providers: new Set([provider]), busy: null, error: null, replace: false, layer: null }; active = view; @@ -53,7 +53,7 @@ const T3SkillImport = (() => { const input = view.layer.panel.querySelector('#skill-source'); if (input && input.value !== source) input.value = source; const result = await request('source', { source }, previous); - if (result) { view.preview = result; view.skills = new Set(result.skills.length === 1 ? result.skills.map((skill) => skill.name) : []); } + if (result) { view.preview = result; view.skills = new Set(initial?.name ? result.skills.filter((skill) => skill.name === initial.name).map((skill) => skill.name) : result.skills.length === 1 ? result.skills.map((skill) => skill.name) : []); } render(true); }; view.layer = Kit.open({ kind: 'center', panel: { class: 'tc-sheet tc-context-sheet tc-skill-sheet tc-skill-import ' + (Kit.isPhone() ? 'tc-sheet--bottom' : 'tc-sheet--inset'), role: 'dialog', 'aria-modal': 'true', 'aria-labelledby': 'skill-import-title' }, focus: '#skill-source', backdrop: 'ignore', onEscape: close, @@ -73,7 +73,7 @@ const T3SkillImport = (() => { ${view.plan && !view.result ? html`

${view.source}

${view.plan.destinations.map((entry) => html`
${providers.find(([id]) => id === entry.provider)?.[1]} · ${entry.name}

${entry.action === 'blocked' ? entry.error : entry.action === 'replace' ? 'Replace existing local skill folder and supporting files' : 'Add skill folder'}

${entry.directory ? html`${entry.directory}` : ''}${entry.also?.length ? html`

Same folder also used by ${entry.also.map((id) => providers.find(([key]) => key === id)?.[1]).join(', ')}

` : ''}
`)}
${view.plan.destinations.some((entry) => entry.action === 'replace') ? html`` : ''}

Installs the exact previewed contents. The source is not fetched again. Start a new conversation to load changes; provider policies may still restrict use.

` : ''} - ${view.result ? html`
${view.result.results.map((entry) => html`
${entry.name} · ${providers.find(([id]) => id === entry.provider)?.[1]}

${entry.status === 'failed' ? entry.error : 'Installed'}${entry.warning ? ' · ' + entry.warning : ''}

${entry.directory}
`)}

Start a new conversation to load installed skills. Availability is checked in the provider inventory where supported. To update, preview the source again and review its replacement destinations.

` : ''} + ${view.result ? html`
${view.result.results.map((entry) => html`
${entry.name} · ${providers.find(([id]) => id === entry.provider)?.[1]}

${entry.status === 'failed' ? entry.error : 'Installed'}${entry.warning ? ' · ' + entry.warning : ''}

${entry.directory}
`)}

Start a new conversation to load installed skills. Availability is checked in the provider inventory where supported. Repository installs remember their source. Use Check for updates in the skill list, then review the source before replacing an installation.

` : ''} ${view.busy ? html`

${view.busy === 'install' ? 'Installing…' : view.busy === 'plan' ? 'Checking destinations…' : 'Reading source… You can close this dialog while it finishes.'}

` : ''}
${view.plan && !view.result ? html`` : !view.result ? html`${view.preview?.skills?.length ? html`` : ''}` : ''}
`, }); @@ -113,6 +113,7 @@ const T3SkillImport = (() => { render(true); if (view.result) await refresh(); } }); + if (initial?.source) void preview(initial.source); }; return { open }; }; diff --git a/docker/setup/client/skills.js b/docker/setup/client/skills.js index b98db53d..9d01701e 100644 --- a/docker/setup/client/skills.js +++ b/docker/setup/client/skills.js @@ -10,7 +10,7 @@ const T3SkillsUI = (() => { : skill.native && skill.state === 'disabled' ? { text: 'Disabled', tone: '' } : { text: 'Unverified', tone: '' }; const create = ({ api, getStatus, render, readMarkdown, downloadMarkdown }) => { - let provider = null, inventory = null, loading = false, error = null, generation = 0, viewer = null, changing = null; + let provider = null, inventory = null, loading = false, error = null, generation = 0, viewer = null, changing = null, checking = false; const filterKey = 't3-console-hide-bundled-skills'; let hideBundled = false; try { hideBundled = localStorage.getItem(filterKey) === 'true'; } catch { /* this session only */ } @@ -59,7 +59,7 @@ const T3SkillsUI = (() => { return html`
${control(skill)}
@@ -81,7 +81,22 @@ const T3SkillsUI = (() => {
${icon('info', 'tc-icon--sm')}${coverageText()}
`; - const actions = () => html`${inventory?.canCreate ? html`` : ''}`; + const actions = () => html`${inventory?.skills?.some((skill) => skill.origin) ? html`` : ''}${inventory?.canCreate ? html`` : ''}`; + const checkUpdates = async () => { + if (loading || changing || checking) return; + const selected = provider, current = generation, rows = (inventory?.skills || []).filter((skill) => skill.origin); + checking = true; render(); + try { + for (const skill of rows) { + if (provider !== selected || generation !== current) break; + const response = await api('/context/skills/check-update', { body: { provider: selected, id: skill.id } }); + if (provider !== selected || generation !== current) break; + if (response.ok) skill.update = response.data.update; + else skill.update = { status: 'error', error: response.error }; + render(); + } + } finally { checking = false; render(); } + }; const setState = async (id, state) => { const row = inventory?.skills?.find((skill) => skill.id === id); if ((!row?.canToggle && !row?.canSetState) || loading || changing) return; @@ -119,6 +134,7 @@ const T3SkillsUI = (() => {
${creating ? html`${inventory?.creationTargets?.length > 1 ? html`

Shared skills can be used by multiple providers. Editing or removing them affects every provider using the same files.

` : ''}

Use lowercase letters, numbers and hyphens. The frontmatter name must match.

` : html`
Location${current.data?.path || row.path}${(current.data?.resolvedPath || row.resolvedPath) && (current.data?.resolvedPath || row.resolvedPath) !== row.path ? html`Linked target${current.data?.resolvedPath || row.resolvedPath}` : ''}

${stateOf(row).text}${row.invocation === 'manual' ? ' · Manual invocation requested by the skill' : row.invocation === 'model-only' ? ' · User invocation disabled in frontmatter' : ''}. ${row.stateAuthority === 'user-policy' ? 'Native user policy checked by the managed provider. ' + row.effectiveStateText + '. Session rules can differ.' : row.native ? 'Listed by Codex in the managed setup environment.' : 'File found on disk; provider availability is unverified.'}

`} + ${!creating && row.origin ? html`
Installed from${row.origin.source}

${row.update?.status === 'available' ? 'An update is available. Review the source before replacing this installation, including any local edits.' : row.update?.status === 'current' ? 'Installed source snapshot is up to date. Local edits are preserved until you explicitly replace this folder.' : row.update?.status === 'error' ? 'Could not check for updates: ' + row.update.error : 'Use Check for updates in the skill list to check this repository.'}

` : ''} ${!creating && row.stateReadOnlyReason ? html`

${row.stateReadOnlyReason}

` : ''} ${row.metadataError ? html`

${row.metadataError}

` : ''} ${current.error ? html`` : ''} @@ -128,7 +144,7 @@ const T3SkillsUI = (() => { ${current.editing ? html`
${editorMeta()}${creating ? 'Creates the skill in the selected location.' : 'Saving updates this file wherever it is used. Supporting files and symlinks stay in place.'} Ctrl/⌘ S to save.
` : (current.data?.readOnlyReason || current.data?.removalError) ? html`

${current.data.readOnlyReason || current.data.removalError}

` : ''} ` : ''}
- ${current.editing ? html`` : html`${current.data?.canRemove ? html`` : ''}${current.data?.canEdit ? html`` : ''}`}
`, + ${current.editing ? html`` : html`${current.data?.canRemove ? html`` : ''}${row.origin && current.data?.canEdit ? html`` : ''}${current.data?.canEdit ? html`` : ''}`}`, }); const syncEditor = () => { const meta = current.layer.panel.querySelector('#skill-editor-meta'); @@ -165,6 +181,7 @@ const T3SkillsUI = (() => { else if (button.hasAttribute('data-skill-copy')) Kit.copy(current.draft, button, 'Skill Markdown copied'); else if (button.hasAttribute('data-skill-download')) download(); else if (button.hasAttribute('data-skill-upload')) current.layer.panel.querySelector('#skill-file').click(); + else if (button.hasAttribute('data-skill-update')) { current.layer.close('update'); importer.open(current.provider, { source: row.origin.source, name: row.origin.name }); } else if (button.hasAttribute('data-skill-edit')) { current.editing = true; current.layer.render(); current.layer.panel.querySelector('#skill-content').focus(); } else if (button.hasAttribute('data-skill-save') || button.hasAttribute('data-skill-remove')) { const removing = button.hasAttribute('data-skill-remove'); @@ -194,7 +211,7 @@ const T3SkillsUI = (() => { else current.error = response.error; current.layer.render(); }; - return { content, actions, setState, install: () => importer.open(provider || chooseDefault()), view: (id, editing = false) => open(id, editing), add: () => { if (inventory?.canCreate) return open(null, true, true); }, + return { content, actions, checkUpdates, setState, install: () => importer.open(provider || chooseDefault()), view: (id, editing = false) => open(id, editing), add: () => { if (inventory?.canCreate) return open(null, true, true); }, activate: () => { if (!inventory && !loading && !error) load(); }, refresh: () => load(true), toggleBundled: () => { diff --git a/docker/setup/server.mjs b/docker/setup/server.mjs index 9a630911..71973645 100644 --- a/docker/setup/server.mjs +++ b/docker/setup/server.mjs @@ -2153,7 +2153,7 @@ const ROUTES = ["/login", "/logout", "/hello", "/status", "/pair", "/revoke", "/ "/providers", "/updates/check", "/packages/install", "/packages/update", "/packages/uninstall", "/packages/cancel", "/packages/registry", "/packages/versions", "/packages/info", - "/context/agents-md", "/context/skills/read", "/context/skills/create", "/context/skills/save", "/context/skills/remove", "/context/skills/state", "/context/skills/source", "/context/skills/plan", "/context/skills/install", "/context/skills/discard", "/context/skills"]; + "/context/agents-md", "/context/skills/read", "/context/skills/create", "/context/skills/save", "/context/skills/remove", "/context/skills/state", "/context/skills/check-update", "/context/skills/source", "/context/skills/plan", "/context/skills/install", "/context/skills/discard", "/context/skills"]; // One background pass for the opt-in auto-updater. Checks are cheap and // always safe; installs run only when enabled, an update is known, and @@ -2650,11 +2650,12 @@ const server = createServer(async (req, res) => { } } - if (req.method === "POST" && ["/context/skills/create", "/context/skills/save", "/context/skills/remove", "/context/skills/state", "/context/skills/source", "/context/skills/plan", "/context/skills/install", "/context/skills/discard"].includes(route)) { + if (req.method === "POST" && ["/context/skills/create", "/context/skills/save", "/context/skills/remove", "/context/skills/state", "/context/skills/check-update", "/context/skills/source", "/context/skills/plan", "/context/skills/install", "/context/skills/discard"].includes(route)) { try { const input = JSON.parse((await readBody(req, 6 * 64 * 1024 + 4096)) || "{}"); if (!input || typeof input !== "object" || Array.isArray(input)) return sendJson(res, 400, { ok: false, error: "Expected a skill operation object." }); - const result = route === "/context/skills/source" ? await skillsService.previewSource(input.source) + const result = route === "/context/skills/check-update" ? await skillsService.checkUpdate(input.provider, input.id) + : route === "/context/skills/source" ? await skillsService.previewSource(input.source) : route === "/context/skills/plan" ? await skillsService.planImport(input.previewId, input.skills, input.providers) : route === "/context/skills/install" ? await skillsService.installImport(input.previewId, input.planId, input.replace) : route === "/context/skills/discard" ? await skillsService.discardImport(input.previewId) @@ -2662,7 +2663,7 @@ const server = createServer(async (req, res) => { : route === "/context/skills/save" ? await skillsService.save(input.provider, input.id, input.revision, input.content) : route === "/context/skills/state" ? await skillsService.setState(input.provider, input.id, input.stateRevision, input.enabled, input.state) : await skillsService.remove(input.provider, input.id, input.revision, input.removalRevision); - if (!["/context/skills/source", "/context/skills/plan", "/context/skills/discard"].includes(route)) recordEvent("context.saved", route === "/context/skills/install" ? "Imported local skills; review individual installation results" : route === "/context/skills/remove" ? "Removed a local skill installation" : route === "/context/skills/state" ? "Changed native skill availability" : "Saved a local skill"); + if (!["/context/skills/check-update", "/context/skills/source", "/context/skills/plan", "/context/skills/discard"].includes(route)) recordEvent("context.saved", route === "/context/skills/install" ? "Imported local skills; review individual installation results" : route === "/context/skills/remove" ? "Removed a local skill installation" : route === "/context/skills/state" ? "Changed native skill availability" : "Saved a local skill"); return sendJson(res, 200, result); } catch (error) { const status = { invalid: 400, missing: 404, ENOENT: 404, conflict: 409, EEXIST: 409, too_large: 413, unsupported: 403, EACCES: 403, EPERM: 403 }[error?.code] || (error instanceof SyntaxError ? 400 : 500); diff --git a/docker/setup/skills.mjs b/docker/setup/skills.mjs index 3f282af4..d056aa85 100644 --- a/docker/setup/skills.mjs +++ b/docker/setup/skills.mjs @@ -8,6 +8,8 @@ import { listCodexSkills, writeCodexSkillConfig } from "./skills/codex.mjs"; import { codexConfigPath, configSnapshot, stateRevision, serializeState } from "./skills/state.mjs"; import { createSkillFileManager, skillRevision } from "./skills/files.mjs"; import { createSkillPolicies } from "./skills/policies.mjs"; +import { readSkillOrigin, skillFingerprint } from "./skills/origins.mjs"; +import { resolveSkillSource } from "./skills/sources.mjs"; import { createSkillImporter } from "./skills/imports.mjs"; const PROVIDERS = Object.freeze({ claude: "Claude Code", codex: "Codex", opencode: "OpenCode", cursor: "Cursor", grok: "Grok Build", muse: "Muse Code", antigravity: "Antigravity" }); @@ -145,7 +147,7 @@ export async function scanSkillFiles(provider, options) { export function createSkillsService({ home, env = process.env, io = fs, nativeCodex = listCodexSkills, nativeCodexWrite = writeCodexSkillConfig, inspectClaude, inspectOpenCode, getHarness = async () => null, ttlMs = 15000, limits, resolveSource } = {}) { home = path.resolve(home || env.HOME || "/home/t3"); - const cache = new Map(); + const cache = new Map(), updateStates = new Map(), updateChecks = new Map(); const policies = createSkillPolicies({ home, env, io, getHarness, inspectClaude, inspectOpenCode, invalidate: () => cache.clear() }); const load = async (provider) => { const scanned = await scanSkillFiles(provider, { home, env, io, limits }); @@ -194,6 +196,14 @@ export function createSkillsService({ home, env = process.env, io = fs, nativeCo } catch (error) { nativeError = summaryError(error); } } const policy = await fileManager.policyFor(provider); + for (const row of scanned.skills) { + const origin = await readSkillOrigin(io, row, home); + if (origin && policy.capabilities(row).canEdit) { + row.origin = origin; + const checked = updateStates.get(row.resolvedPath); + if (checked?.fingerprint === origin.fingerprint && checked.source === origin.source) row.update = checked; + } + } return { ok: true, provider, canCreate: policy.canCreate, creationTargets: policy.creationTargets, providers: skillProviders(), skills: scanned.skills.map((row) => { if (row.stateAuthority === "user-policy") return { ...row, ...policy.capabilities(row) }; const reason = provider !== "codex" ? nativeError || "Native policy controls are currently supported for Claude Code and OpenCode; native availability controls for Codex." @@ -268,5 +278,30 @@ export function createSkillsService({ home, env = process.env, io = fs, nativeCo }; const fileManager = createSkillFileManager({ home, env, io, rootsFor: (provider) => skillRoots(provider, { home, env }), metadata: skillMetadata, read, invalidate: () => cache.clear() }); const importer = createSkillImporter({ home, env, io, metadata: skillMetadata, policyFor: fileManager.policyFor, invalidate: () => cache.clear(), resolveSource }); - return { list, read, setState, create: fileManager.create, save: fileManager.save, remove: fileManager.remove, ...importer }; + const checkUpdate = async (provider, id) => { + const row = await read(provider, id); + if (!row.origin || !row.canEdit) throw problem("unsupported", "This skill has no tracked repository source. Re-import it from its repository to enable update checks."); + const key = row.resolvedPath; + if (updateChecks.has(key)) return updateChecks.get(key); + if (updateChecks.size >= 3) throw problem("conflict", "Other repository checks are still running. Try again when they finish."); + const pending = (async () => { + let update; + try { + const snapshot = await (resolveSource || resolveSkillSource)(row.origin.source, { home, env, metadata: skillMetadata }); + const skill = snapshot.skills?.find((entry) => entry.name === row.origin.name); + if (!skill) throw new Error("The installed skill was not found in this source. It may have been renamed or removed."); + update = { ...row.origin, status: skillFingerprint(skill) === row.origin.fingerprint ? "current" : "available", checkedAt: Date.now() }; + } catch (error) { update = { ...row.origin, status: "error", error: summaryError(error), checkedAt: Date.now() }; } + // A replaced or removed installation must not inherit a stale check result. + const current = await readSkillOrigin(io, row, home); + if (!current || current.source !== row.origin.source || current.fingerprint !== row.origin.fingerprint) throw problem("conflict", "The installation changed while checking. Refresh and check again."); + updateStates.delete(key); updateStates.set(key, update); + if (updateStates.size > 1024) updateStates.delete(updateStates.keys().next().value); + cache.clear(); + return { ok: true, id, update }; + })(); + updateChecks.set(key, pending); + try { return await pending; } finally { updateChecks.delete(key); } + }; + return { list, read, checkUpdate, setState, create: fileManager.create, save: fileManager.save, remove: fileManager.remove, ...importer }; } diff --git a/docker/setup/skills/imports.mjs b/docker/setup/skills/imports.mjs index 83ee3f30..a154d2dc 100644 --- a/docker/setup/skills/imports.mjs +++ b/docker/setup/skills/imports.mjs @@ -1,7 +1,8 @@ -// Previewed source snapshots become ordinary local skills. No package manifest. +// Previewed source snapshots become local skills with repository provenance. import path from "node:path"; import { randomBytes } from "node:crypto"; import { resolveSkillSource } from "./sources.mjs"; +import { ORIGIN_FILE, skillFingerprint } from "./origins.mjs"; import { removalPlan, serialized } from "./files.mjs"; const fail = (code, message) => Object.assign(new Error(message), { code }); @@ -68,7 +69,7 @@ export function createSkillImporter({ home, env, io, metadata, policyFor, invali return { ok: true, planId, destinations: destinations.map(({ root, rootPath, revision, ...entry }) => entry), canInstall: destinations.every((entry) => entry.action !== "blocked") }; } finally { snapshot.planning = false; } }; - const publish = async (entry, skill) => serialized(path.join(entry.directory, "SKILL.md"), async () => { + const publish = async (entry, skill, snapshot) => serialized(path.join(entry.directory, "SKILL.md"), async () => { for (const provider of entry.also) { const alias = await inspect(provider, skill); if (alias.directory !== entry.directory || alias.action !== entry.action || alias.revision !== entry.revision) throw fail("conflict", "A shared provider folder changed after review."); @@ -80,12 +81,17 @@ export function createSkillImporter({ home, env, io, metadata, policyFor, invali const staging = await io.mkdtemp(path.join(entry.root, ".t3-skill-import-")); let backup = null, reserved = false; try { + if (skill.files.some((file) => file.name === ORIGIN_FILE)) throw fail("conflict", "This source contains reserved skill tracking metadata."); for (const file of skill.files) { const output = path.join(staging, file.name); await io.mkdir(path.dirname(output), { recursive: true, mode: 0o700 }); await io.writeFile(output, file.data, { flag: "wx", mode: file.mode }); await io.chmod(output, file.mode); } + if (snapshot.sourceType === "git") { + // A source cannot supply or overwrite the console's provenance file. + await io.writeFile(path.join(staging, ORIGIN_FILE), JSON.stringify({ version: 1, source: snapshot.source, name: skill.name, fingerprint: skillFingerprint(skill) }) + "\n", { flag: "wx", mode: 0o600 }); + } // Recheck after staging too, so supporting-file edits invalidate replacement. for (const provider of [entry.provider, ...entry.also]) { const checked = await inspect(provider, skill); @@ -135,7 +141,7 @@ export function createSkillImporter({ home, env, io, metadata, policyFor, invali } const results = []; for (const entry of plan.destinations) { - try { results.push(await publish(entry, snapshot.skills.find((skill) => skill.name === entry.name))); } + try { results.push(await publish(entry, snapshot.skills.find((skill) => skill.name === entry.name), snapshot)); } catch (error) { results.push({ ...entry, status: "failed", error: error.message }); } } snapshot.result = { ok: true, results: results.map(({ root, rootPath, revision, ...entry }) => entry) }; diff --git a/docker/setup/skills/origins.mjs b/docker/setup/skills/origins.mjs new file mode 100644 index 00000000..fd1a1298 --- /dev/null +++ b/docker/setup/skills/origins.mjs @@ -0,0 +1,29 @@ +// Import provenance travels atomically with the installed folder. Inventory never fetches sources. +import path from "node:path"; +import { constants } from "node:fs"; +import { createHash } from "node:crypto"; +import { parseSkillSource } from "./sources.mjs"; + +export const ORIGIN_FILE = ".t3-skill-source.json"; +export const skillFingerprint = (skill) => { + const files = skill.files.map((file) => [file.name, Boolean(file.mode & 0o100), createHash("sha256").update(file.data).digest("hex")]); + files.sort((a, b) => a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0); + return createHash("sha256").update(JSON.stringify(files)).digest("hex"); +}; +export async function readSkillOrigin(io, row, home) { + if (!row.resolvedPath || row.scope !== "user" || row.source === "Plugin" || path.basename(row.path) !== "SKILL.md") return null; + let handle; + try { + // Refuse a retargeted skill before reading its adjacent metadata. + if (await io.realpath(row.path) !== row.resolvedPath) return null; + handle = await io.open(path.join(path.dirname(row.resolvedPath), ORIGIN_FILE), constants.O_RDONLY | constants.O_NONBLOCK | constants.O_NOFOLLOW); + const stat = await handle.stat(); + if (!stat.isFile() || stat.size > 8192) return null; + const buffer = Buffer.alloc(8193), { bytesRead } = await handle.read(buffer, 0, buffer.length, 0); + if (bytesRead > 8192) return null; + const value = JSON.parse(buffer.toString("utf8", 0, bytesRead)); + if (value.version !== 1 || typeof value.source !== "string" || parseSkillSource(value.source, home).type !== "git" || typeof value.name !== "string" || !/^[a-z0-9]+(-[a-z0-9]+)*$/.test(value.name) || value.name.length > 64 || !/^[a-f0-9]{64}$/.test(value.fingerprint)) return null; + return { source: value.source, name: value.name, fingerprint: value.fingerprint }; + } catch { return null; } + finally { await handle?.close(); } +} diff --git a/docker/setup/skills/sources.mjs b/docker/setup/skills/sources.mjs index 40781d1f..1c08ae4e 100644 --- a/docker/setup/skills/sources.mjs +++ b/docker/setup/skills/sources.mjs @@ -255,7 +255,7 @@ export async function resolveSkillSource(value, { home, metadata, env = process. const relative = file.name.slice(prefix.length), parts = relative.split("/"); for (let i = 1; i <= parts.length; i++) treeEntries.add(parts.slice(0, i).join("/")); } - if (treeEntries.size > 1024) throw fail("too_large", "This skill exceeds the 1024-entry management limit. Use a smaller skill folder."); + if (treeEntries.size + (parsed.type === "git" ? 1 : 0) > 1024) throw fail("too_large", "This skill exceeds the 1024-entry management limit. Use a smaller skill folder."); const copied = []; for (const file of children) { const name = file.name.slice(prefix.length); @@ -269,6 +269,6 @@ export async function resolveSkillSource(value, { home, metadata, env = process. if (preferredPaths?.has(entry.name)) foundPreferred = true; } if (!skills.length) throw fail(oversized ? "too_large" : "invalid", oversized ? "No matching skill could be imported. Skill Markdown must fit within 64 KiB; use a smaller skill or manage oversized skills directly." : parsed.filter ? "That skill was not found in this source." : "No valid SKILL.md files found. Choose a skill repository/folder or paste a direct Markdown link."); - return { source: value, skills, warnings: [...new Set(warnings)].slice(0, 30) }; + return { source: value, sourceType: parsed.type, skills, warnings: [...new Set(warnings)].slice(0, 30) }; } finally { await cleanup(); } } diff --git a/docs/context-management.md b/docs/context-management.md index 63b628be..9cd8cf0e 100644 --- a/docs/context-management.md +++ b/docs/context-management.md @@ -228,10 +228,23 @@ Native path references: [Cursor skills](https://cursor.com/docs/skills), [Muse skills](https://meta-models.github.io/muse-code-sdk/next/guides/extend/skills/), and [Antigravity skills](https://antigravity.google/docs/skills). -Re-importing the source is the update flow: review a fresh snapshot and explicitly -replace each existing local folder, including removed/renamed supporting files. -The console does not remember origins, schedule updates or maintain a source -manifest. Use **View → Remove** to delete an imported local skill. Files tracked +Repository installs remember their source and a fingerprint of the installed +files in `.t3-skill-source.json` inside the skill folder. **Check for updates** +on the Skills tab checks tracked repository installs on demand. It compares the +skill's complete source contents and executable flags, so unrelated repository +commits do not trigger an update. Ordinary inventory refreshes never fetch sources. +Checks report **Up to date**, **Update available**, or **Update check failed**. +These results last until the setup service restarts; source tracking survives restarts. + +Open a skill and choose **Review update** (or **Review source**) to preview its +repository with that skill selected. Explicitly confirm replacing the existing +folder, including local edits and removed/renamed supporting files. Checking alone +never changes installed files, and local edits do not count as upstream updates. +A ref pinned to a commit continues to check that commit. There are no scheduled +checks or automatic replacements. Earlier installs and imports from local folders +or direct Markdown links need a repository re-import to enable tracking. + +Use **View → Remove** to delete an imported local skill. Files tracked in the upstream skills CLI lock remain read-only here, including during import; manage those packages with their package manager. Unreadable locks, known plugin/system roots (including Grok/Antigravity plugin folders and Codex admin skills), linked diff --git a/scripts/skills-ui-audit.js b/scripts/skills-ui-audit.js index 0be611d6..33101792 100644 --- a/scripts/skills-ui-audit.js +++ b/scripts/skills-ui-audit.js @@ -59,7 +59,7 @@ const checkSelect = async (page, select, theme) => { let gateRead = false, releaseRead, oldReadStarted, readError = false, inventoryError = false; let saveError = true, gateSave = false, releaseSave, saveStarted; let stateError = true, gateState = false, releaseState, stateStarted, firstEnabled = true; - let bundledFixture = false; + let bundledFixture = false, trackedFixture = false, updateStatus = 'available'; let policies = false, importFailure = true, gateImport = false, releaseImport, importStarted; let gateSource = false, releaseSource, sourceStarted; let gatePlan = false, releasePlan, planStarted, importPlanning = false; @@ -68,7 +68,8 @@ const checkSelect = async (page, select, theme) => { const importFocus = async (id) => assert.equal(await page.evaluate(() => document.activeElement.id), id); const policyValues = { claude: 'on', opencode: 'allow' }; const mutations = []; - const skill = (provider, id, name) => ({ id, name, description: 'A description that is long enough to wrap comfortably on a phone. '.repeat(4), + const skill = (provider, id, name) => ({ id, name, + ...(trackedFixture && id === firstId ? { origin: { source: 'org/repo@review', name: 'review', fingerprint: 'a'.repeat(64) } } : {}), description: 'A description that is long enough to wrap comfortably on a phone. '.repeat(4), path: '/fixture/a-long-global-configuration-directory/skills/' + name + '/SKILL.md', resolvedPath: '/fixture/shared-source/skills/' + name + '/SKILL.md', source: 'Shared .agents', native: provider === 'codex', state: policies && provider !== 'codex' ? policyValues[provider] : id === firstId && firstEnabled ? 'enabled' : 'disabled', bytes: body.length, @@ -84,7 +85,10 @@ const checkSelect = async (page, select, theme) => { const url = new URL(route.request().url()), provider = url.searchParams.get('provider'); if (route.request().method() === 'POST') { const input = route.request().postDataJSON(); mutations.push({ path: url.pathname, input }); - if (url.pathname.endsWith('/source')) { + if (url.pathname.endsWith('/check-update')) { + assert.equal(input.id, firstId); + await route.fulfill({ json: { ok: true, id: input.id, update: { status: updateStatus, error: updateStatus === 'error' ? 'Repository unavailable' : undefined } } }); + } else if (url.pathname.endsWith('/source')) { if (gateSource) { gateSource = false; sourceStarted(); await new Promise((resolve) => { releaseSource = resolve; }); } if (input.source === 'bad-source') await route.fulfill({ status: 400, json: { ok: false, error: 'No skill found at this source.' } }); else if (input.source === 'catalog') await route.fulfill({ json: { ok: true, skills: [], warnings: [], links: [{ label: 'Frontend skill', source: 'org/repo@review' }, { label: 'Other skill', source: 'org/other' }] } }); @@ -401,6 +405,26 @@ const checkSelect = async (page, select, theme) => { await capture('results'); await page.getByRole('button', { name: 'Done', exact: true }).click(); assert.equal(await page.evaluate(() => document.documentElement.scrollWidth > innerWidth), false); + trackedFixture = true; readError = false; + await page.getByRole('button', { name: 'Refresh skills', exact: true }).click(); + const checkUpdates = page.getByRole('button', { name: 'Check for updates', exact: true }); + await checkUpdates.waitFor(); + await checkUpdates.click(); + await page.getByText('Update available', { exact: true }).waitFor(); + await capture('update-available'); + await page.getByRole('button', { name: 'View review', exact: true }).click(); + await page.locator('[data-skill-update]').waitFor(); + await page.locator('[data-skill-update]').click(); + await page.locator('[data-import-skill="review"]').waitFor(); + assert.equal(await page.locator('#skill-source').inputValue(), 'org/repo@review'); + assert.equal(await page.locator('[data-import-skill="review"]').isChecked(), true); + await capture('review-update'); + await page.getByRole('dialog').getByRole('button', { name: 'Close', exact: true }).last().click(); + updateStatus = 'error'; await checkUpdates.click(); + await page.getByText('Update check failed', { exact: true }).waitFor(); + updateStatus = 'current'; await checkUpdates.click(); + await page.getByText('Up to date', { exact: true }).waitFor(); + assert.equal(await page.evaluate(() => document.documentElement.scrollWidth > innerWidth), false); assert.deepEqual(errors, []); console.log('PASS Skill inventory, native state, files and source installation:', theme, width + 'x' + height, embedded ? 'embedded-query fallback' : 'standalone'); await page.close(); diff --git a/tests/skill-sources.test.mjs b/tests/skill-sources.test.mjs index b9144c66..f0da5852 100644 --- a/tests/skill-sources.test.mjs +++ b/tests/skill-sources.test.mjs @@ -81,6 +81,7 @@ test("Git discovery reads bounded blobs without checkout, shell execution, hooks assert.ok(args.includes("cat-file")); return { stdout: Buffer.from(args.at(-1) === "a".repeat(40) ? body : "check") }; }; const result = await f.resolve("https://github.com/org/repo/tree/main/skills/review", { run }); + assert.equal(result.sourceType, "git"); assert.equal(result.skills[0].files.length, 2); assert.equal(result.warnings.length, 2); assert.equal(calls.filter((args) => args.includes("cat-file")).length, 2); await assert.rejects(fs.stat(path.dirname(temporary)), { code: "ENOENT" }); diff --git a/tests/skill-updates.test.mjs b/tests/skill-updates.test.mjs new file mode 100644 index 00000000..5db9cbe1 --- /dev/null +++ b/tests/skill-updates.test.mjs @@ -0,0 +1,104 @@ +import test from "node:test"; +import assert from "node:assert/strict"; +import * as fs from "node:fs/promises"; +import path from "node:path"; +import os from "node:os"; +import { createSkillsService } from "../docker/setup/skills.mjs"; +import { ORIGIN_FILE } from "../docker/setup/skills/origins.mjs"; + +async function fixture(t) { + const home = await fs.mkdtemp(path.join(os.tmpdir(), "t3-skill-updates-")); + t.after(() => fs.rm(home, { recursive: true, force: true })); + let pause = null; + let guide = "Original guide", executable = false, failure = false, removed = false, calls = 0; + const source = "https://github.com/example/skills/tree/main/skills/review"; + const content = "---\nname: review\ndescription: Review changes\n---\nInstructions\n"; + const resolveSource = async (value) => { + assert.equal(value, source); calls++; + if (pause) await pause; + if (failure) throw Error("Repository unavailable"); + return { source, sourceType: "git", warnings: [], skills: removed ? [] : [{ name: "review", description: "Review changes", content, files: [ + { name: "SKILL.md", data: Buffer.from(content), mode: 0o600 }, + { name: "references/guide.md", data: Buffer.from(guide), mode: executable ? 0o700 : 0o600 }, + ] }] }; + }; + const options = { home, env: {}, resolveSource }; + const service = createSkillsService(options); + const install = async (replace = false) => { + const preview = await service.previewSource(source); + const plan = await service.planImport(preview.previewId, ["review"], ["claude"]); + return service.installImport(preview.previewId, plan.planId, replace); + }; + await install(); + const row = async () => (await service.list("claude", { refresh: true })).skills[0]; + return { home, service, options, source, install, row, pause: (promise) => { pause = promise; }, calls: () => calls, + change: () => { guide = "New upstream guide"; }, chmod: () => { executable = true; }, fail: () => { failure = true; }, remove: () => { removed = true; } }; +} + +test("repository origins survive restarts; checks detect supporting-file updates without writing skills", async (t) => { + const f = await fixture(t), row = await f.row(), calls = f.calls(); + assert.equal(row.origin.source, f.source); + const restarted = createSkillsService(f.options); + assert.equal((await restarted.list("claude")).skills[0].origin.source, f.source); + assert.equal(f.calls(), calls, "inventory never contacts the repository"); + assert.equal((await f.service.checkUpdate("claude", row.id)).update.status, "current"); + const local = path.join(path.dirname(row.path), "references/guide.md"); + await fs.writeFile(local, "Local edits"); + assert.equal((await f.service.checkUpdate("claude", row.id)).update.status, "current", "local changes do not masquerade as upstream updates"); + f.change(); + assert.equal((await f.service.checkUpdate("claude", row.id)).update.status, "available"); + assert.equal((await f.row()).update.status, "available"); + assert.equal(await fs.readFile(local, "utf8"), "Local edits"); + await assert.rejects(f.install(), /Confirm replacement/); + assert.equal((await f.install(true)).results[0].status, "installed"); + assert.equal((await f.row()).update, undefined, "the old check does not attach to the new snapshot"); + assert.equal((await f.service.checkUpdate("claude", row.id)).update.status, "current"); + assert.equal(await fs.readFile(local, "utf8"), "New upstream guide"); +}); + +test("file executability changes count as updates; unavailable and removed sources report errors", async (t) => { + const f = await fixture(t), row = await f.row(); + f.chmod(); assert.equal((await f.service.checkUpdate("claude", row.id)).update.status, "available"); + f.remove(); assert.match((await f.service.checkUpdate("claude", row.id)).update.error, /renamed or removed/); + f.fail(); assert.match((await f.service.checkUpdate("claude", row.id)).update.error, /Repository unavailable/); +}); + +test("untracked, malformed and linked provenance cannot trigger repository checks", async (t) => { + const f = await fixture(t), row = await f.row(); + const file = path.join(path.dirname(row.path), ORIGIN_FILE), calls = f.calls(); + await fs.writeFile(file, JSON.stringify({ version: 1, source: "/etc", name: "review", fingerprint: "a".repeat(64) })); + assert.equal((await f.row()).origin, undefined); + await assert.rejects(f.service.checkUpdate("claude", row.id), /no tracked repository/); + await fs.rm(file); await fs.symlink("/etc/passwd", file); + assert.equal((await f.row()).origin, undefined); + assert.equal(f.calls(), calls); +}); + + +test("concurrent checks share a fetch and discard results for a removed installation", { timeout: 3000 }, async (t) => { + const f = await fixture(t), row = await f.row(), before = f.calls(); + let release; + f.pause(new Promise((resolve) => { release = resolve; })); + const first = f.service.checkUpdate("claude", row.id); + const second = f.service.checkUpdate("claude", row.id); + // Both reads share the inventory; wait until the source fetch starts. + while (f.calls() === before) await new Promise((resolve) => setTimeout(resolve, 5)); + await fs.rm(path.join(path.dirname(row.path), ORIGIN_FILE)); + release(); + const results = await Promise.allSettled([first, second]); + assert.equal(f.calls(), before + 1); + assert.ok(results.every((entry) => entry.status === "rejected")); + assert.equal((await f.row()).update, undefined); +}); + + +test("source-supplied tracking metadata cannot impersonate a repository install", async (t) => { + const f = await fixture(t), row = await f.row(); + const local = createSkillsService({ home: f.home, env: {} }); + const preview = await local.previewSource(path.dirname(row.path)); + const plan = await local.planImport(preview.previewId, ["review"], ["cursor"]); + const result = await local.installImport(preview.previewId, plan.planId); + assert.equal(result.results[0].status, "failed"); + assert.match(result.results[0].error, /reserved skill tracking metadata/); + assert.equal((await local.list("cursor")).skills.filter((skill) => skill.source === "Provider").length, 0); +}); diff --git a/tests/skills-api.test.mjs b/tests/skills-api.test.mjs index 26a13529..39943f0f 100644 --- a/tests/skills-api.test.mjs +++ b/tests/skills-api.test.mjs @@ -72,7 +72,7 @@ require('node:readline').createInterface({input:process.stdin}).on('line',line=> assert.equal((await fetch(base + "/context/skills/read?provider=claude&id=" + "a".repeat(32))).status, 401); assert.equal((await get("/context/skills?provider=__proto__")).status, 400); assert.equal((await get("/context/skills")).status, 400); - for (const operation of ["source", "plan", "install", "discard"]) { + for (const operation of ["source", "plan", "install", "discard", "check-update"]) { assert.equal((await fetch(base + "/context/skills/" + operation, { method: "POST" })).status, 401); assert.equal((await post("/context/skills/" + operation, {}, { "sec-fetch-site": "cross-site" })).status, 403); assert.equal((await post("/context/skills/" + operation, null)).status, 400); @@ -95,6 +95,7 @@ require('node:readline').createInterface({input:process.stdin}).on('line',line=> const result = await (await get("/context/skills?provider=claude")).json(); assert.equal(result.coverage, "policy"); assert.equal(result.skills.length, 1); const row = result.skills[0]; assert.equal(row.name, "one"); assert.ok(!("content" in row)); + assert.equal((await post("/context/skills/check-update", { provider: "claude", id: row.id })).status, 403); const readPath = "/context/skills/read?provider=claude&id=" + row.id; assert.equal((await (await get(readPath + "&path=" + encodeURIComponent(other))).json()).content, markdown); assert.equal((await get("/context/skills/read?provider=claude&id=" + encodeURIComponent(other))).status, 400); From f6f4b195df73ec5a6427a9391b096552b11249e2 Mon Sep 17 00:00:00 2001 From: 0libote <79215282+0libote@users.noreply.github.com> Date: Tue, 20 Oct 2026 02:13:53 +0100 Subject: [PATCH 03/11] feat(skills): provider adapters with detection hints and project locations Borrow the registry shape from skills-hub (MIT): each inventory now reports its adapter (global/project skill dirs, install detection). Detection never gates management; undetected tools show a note. --- docker/setup/client/skills.js | 1 + docker/setup/skills.mjs | 4 +- docker/setup/skills/adapters.mjs | 64 ++++++++++++++++++++++++++ docs/context-management.md | 5 +++ docs/experiments/skills-hub.md | 67 +++++++++++++++++++++++++++ tests/skill-adapters.test.mjs | 77 ++++++++++++++++++++++++++++++++ 6 files changed, 217 insertions(+), 1 deletion(-) create mode 100644 docker/setup/skills/adapters.mjs create mode 100644 docs/experiments/skills-hub.md create mode 100644 tests/skill-adapters.test.mjs diff --git a/docker/setup/client/skills.js b/docker/setup/client/skills.js index 9d01701e..15535282 100644 --- a/docker/setup/client/skills.js +++ b/docker/setup/client/skills.js @@ -77,6 +77,7 @@ const T3SkillsUI = (() => { ${visibleSkills().length ? html`
${visibleSkills().map(row)}
` : ''} ${!visibleSkills().length ? html`
${inventory.skills?.length ? 'All skills are hidden' : inventory.warnings?.length ? 'No skills could be shown' : 'No skills yet'}${inventory.skills?.length ? 'Turn off Hide bundled skills to show them.' : inventory.warnings?.length ? 'The messages above say why.' : 'Nothing in ' + providerName(provider) + '’s global skill folders. Add one here, or install one from a source.'}
` : ''} ${inventory.roots?.length ? html`
Looked in ${M.plural(inventory.roots.length, 'folder')}${inventory.roots.map((root) => html`${root.path}`)}
` : ''} + ${inventory.adapter && !inventory.adapter.detected ? html`

${icon('info', 'tc-icon--sm')}${providerName(provider)} isn’t detected here, so these are plain files until it is installed. Adding, editing and importing still work.

` : ''} ` : ''}
${icon('info', 'tc-icon--sm')}${coverageText()}
diff --git a/docker/setup/skills.mjs b/docker/setup/skills.mjs index d056aa85..04e0071d 100644 --- a/docker/setup/skills.mjs +++ b/docker/setup/skills.mjs @@ -9,6 +9,7 @@ import { codexConfigPath, configSnapshot, stateRevision, serializeState } from " import { createSkillFileManager, skillRevision } from "./skills/files.mjs"; import { createSkillPolicies } from "./skills/policies.mjs"; import { readSkillOrigin, skillFingerprint } from "./skills/origins.mjs"; +import { adapterDetection } from "./skills/adapters.mjs"; import { resolveSkillSource } from "./skills/sources.mjs"; import { createSkillImporter } from "./skills/imports.mjs"; @@ -196,6 +197,7 @@ export function createSkillsService({ home, env = process.env, io = fs, nativeCo } catch (error) { nativeError = summaryError(error); } } const policy = await fileManager.policyFor(provider); + const adapter = await adapterDetection(provider, { home, env, io }); for (const row of scanned.skills) { const origin = await readSkillOrigin(io, row, home); if (origin && policy.capabilities(row).canEdit) { @@ -214,7 +216,7 @@ export function createSkillsService({ home, env = process.env, io = fs, nativeCo return { ...row, ...policy.capabilities(row), canToggle: !reason, stateReadOnlyReason: reason, stateRevision: !reason ? stateRevision(config, row) : null }; }).sort((a, b) => a.name.localeCompare(b.name) || a.path.localeCompare(b.path)), - roots: scanned.roots, coverage, nativeError, warnings: scanned.warnings, scannedAt: Date.now(), + roots: scanned.roots, coverage, nativeError, warnings: scanned.warnings, scannedAt: Date.now(), adapter, coverageText: coverage === "policy" ? "Known global skill folders with native user policy settings checked by the managed provider. Project/session and managed policies can further restrict availability." : coverage === "native" ? "Managed Codex inventory in the setup environment, with known local folders included. Project skills are excluded." : "Known global skill folders only. Provider availability, plugins and additional configured locations are not verified.", diff --git a/docker/setup/skills/adapters.mjs b/docker/setup/skills/adapters.mjs new file mode 100644 index 00000000..59fba592 --- /dev/null +++ b/docker/setup/skills/adapters.mjs @@ -0,0 +1,64 @@ +// Provider directory adapters: global/project skill locations and install +// detection hints. Table shape informed by skills-hub's tool registry (MIT, +// https://github.com/qufei1993/skills-hub); global locations stay aligned +// with skillRoots() in ../skills.mjs, which remains canonical for scanning. +// Detection is advisory only: an undetected tool stays fully manageable +// through its files, unlike registries that refuse unknown tools. +import path from "node:path"; + +const fail = (code, message) => Object.assign(new Error(message), { code }); + +// projectDir is relative to a project root; null means project scope is +// unverified for that provider. Codex, Cursor, OpenCode and Antigravity +// share the `.agents/skills` project directory, so one project's skills can +// appear in another provider's inventory. +const TABLE = Object.freeze({ + claude: Object.freeze({ label: "Claude Code", projectDir: ".claude/skills" }), + codex: Object.freeze({ label: "Codex", projectDir: ".agents/skills" }), + opencode: Object.freeze({ label: "OpenCode", projectDir: ".agents/skills" }), + cursor: Object.freeze({ label: "Cursor", projectDir: ".agents/skills" }), + grok: Object.freeze({ label: "Grok Build", projectDir: null }), + muse: Object.freeze({ label: "Muse Code", projectDir: null }), + antigravity: Object.freeze({ label: "Antigravity", projectDir: ".agents/skills" }), +}); + +export function adapterProviders() { + return Object.entries(TABLE).map(([id, { label }]) => ({ id, name: label })); +} + +// Resolve the global skills directory and the detection hint under home, +// honoring the same environment overrides as skillRoots(). +export function skillAdapter(provider, { home, env = {} } = {}) { + const entry = TABLE[provider]; + if (!entry) throw fail("invalid", "Unknown skill provider."); + const override = (key, fallback) => path.resolve(home, String(env[key] || "").trim() || fallback); + const config = override("XDG_CONFIG_HOME", ".config"); + const root = { + claude: override("CLAUDE_CONFIG_DIR", ".claude"), + codex: override("CODEX_HOME", ".codex"), + opencode: override("OPENCODE_CONFIG_DIR", path.join(config, "opencode")), + cursor: path.join(home, ".cursor"), + grok: override("GROK_HOME", ".grok"), + muse: path.join(config, "muse"), + antigravity: path.join(home, ".gemini", "config"), + }[provider]; + return { + id: provider, + label: entry.label, + globalDir: path.join(root, "skills"), + projectDir: entry.projectDir, + detectDir: root, + }; +} + +// Stat the detection directory. Filesystem errors mean "not detected", +// never a failure: inventory and management work regardless. +export async function adapterDetection(provider, { home, env = {}, io }) { + const adapter = skillAdapter(provider, { home, env }); + try { + const stat = await io.stat(adapter.detectDir); + return { ...adapter, detected: stat.isDirectory() }; + } catch { + return { ...adapter, detected: false }; + } +} diff --git a/docs/context-management.md b/docs/context-management.md index 9cd8cf0e..0a73812a 100644 --- a/docs/context-management.md +++ b/docs/context-management.md @@ -111,6 +111,11 @@ identifies them as system skills. Inventory loads when the Skills tab opens or its agent changes. **Refresh skills** rescans after external changes. Concurrent requests share a lookup and results are cached for 15 seconds; regular `/status` polling does not scan skills. +Each inventory also reports its provider adapter: the global skill folder, +the project skill folder where one is verified (Codex, Cursor, OpenCode and +Antigravity share `.agents/skills` inside a project), and whether the tool +itself is detected. Detection never gates management: an undetected tool +shows a note, and adding, editing and importing still work. Bodies load separately through authenticated, discovered-installation IDs. Details refuse a link retargeted after discovery. No skill files, provider settings or persistence mappings change during inventory reads. Native Codex diff --git a/docs/experiments/skills-hub.md b/docs/experiments/skills-hub.md new file mode 100644 index 00000000..92810f20 --- /dev/null +++ b/docs/experiments/skills-hub.md @@ -0,0 +1,67 @@ +# Spike: skills-hub CLI for skills/plugin support + +Branch: `exp/skills-hub-sync` (off `main`). Disposable test only, no repo changes. +Test home: `/tmp/sh-hub-test`, CLI 1.0.1 (`skillshub-cli`), glibc 2.41 satisfies CLI's 2.39 floor. + +## What skills-hub is + +Central library (`~/.skillshub/`) + `deploy` to 48 tool adapters +(`agents list`: global dir, project dir, detection dir, `sync_mode`). +Commands are JSON-stable: `skills install/list/search/show/status/check`, +`skills deploy/undeploy [--agent …] [--project …] [--dry-run]`, +`skills update/check --all`, `skills adopt --dry-run/--yes`, `tag`, `remove` +(recycle bin). Install script is SHA-256 verified, `~/.local/bin`, no node/npm. + +## Experiment: ponytail + +- `skills install https://github.com/DietrichGebert/ponytail` returns + `MULTI_SKILLS` with 6 candidates (`skills/ponytail`, `-audit`, `-debt`, + `-gain`, `-help`, `-review`). One `--subpath` each — same per-skill + friction our preview has. +- Library records git source + revision + content hash; `check` reports + `update_available` without touching targets. Closest existing equivalent + to our `origins.mjs` fingerprint + `check-update` model. +- `deploy --dry-run` previews; real deploy defaults to **symlink** + (`mode: symlink`) from each tool dir to the central copy, not a copy. +- Deploy **refuses unknown tools**: `AGENT_NOT_FOUND … not_installed` + until the detection dir exists (created `.claude`, `.codex`, + `.config/opencode` to proceed). Our console manages files regardless + of detection — UX gap to note. +- Conflict: planting an unmanaged `skills/ponytail/SKILL.md` then + deploying gives `TARGET_CONFLICT … unmanaged_target`; `adopt --dry-run` + is the recovery path. Mirrors our replacement-consent + fingerprint + checks, but centralized. + +## What it can't do (plugin gap remains) + +- No plugin/marketplace/hook handling: no `marketplace add`, no + `.claude-plugin` / `.codex-plugin` hooks, no `opencode.json` plugins + array, no Cursor `hooks.json` merge, no Grok enable list. Deploying + all 6 ponytail skills still yields prompt-only skills, same as our copy. +- No native policy controls: no Claude `skillOverrides`, OpenCode + `permission.skill`/`permissions`, Codex `skills/config/write` + enable/disable. Complementary to, not a replacement for, + `docker/setup/skills/policies.mjs` + `native.mjs`. +- No bundled/system/plugin inventory distinction beyond + managed-vs-unmanaged; our hide-bundled + read-only plugin roots + still add value. + +## Options for this repo + +1. **Adapter table**: borrow the 48-entry global/project/detection paths + (`tool_adapters/mod.rs`) to grow beyond our 7 providers. MIT licensed. + → Landed in part: `docker/setup/skills/adapters.mjs` + `adapter` on the + inventory + `tests/skill-adapters.test.mjs` (the update half came via + `feat/skill-source-updates`, below). +2. **Library + symlink deploy**: single update point + `check/update --all` + beats per-provider copies, but changes persistence (central lib must be + on the state volume), edit/remove semantics (symlink vs copy), and the + no-shell setup-page story (CLI vs native service). + → Landed in copy-model form via `feat/skill-source-updates`: + `.t3-skill-source.json` provenance + on-demand `check-update`, no + central library, no symlinks. +3. **CLI bridge**: shell to `skillshub-cli --json` like `native.mjs` shells + to managed CLIs — bounded, allowlisted subcommands, dry-run first. + Still leaves the ponytail plugin layer (hooks/commands/marketplace) open. + +Not committing to any option here; this file is the spike record. diff --git a/tests/skill-adapters.test.mjs b/tests/skill-adapters.test.mjs new file mode 100644 index 00000000..3c84eb4e --- /dev/null +++ b/tests/skill-adapters.test.mjs @@ -0,0 +1,77 @@ +import test from "node:test"; +import assert from "node:assert/strict"; +import * as fs from "node:fs/promises"; +import path from "node:path"; +import os from "node:os"; +import { adapterProviders, skillAdapter, adapterDetection } from "../docker/setup/skills/adapters.mjs"; +import { skillRoots, createSkillsService } from "../docker/setup/skills.mjs"; + +test("adapter registry covers every provider with portable project locations", () => { + const ids = adapterProviders().map((entry) => entry.id).sort(); + assert.deepEqual(ids, ["antigravity", "claude", "codex", "cursor", "grok", "muse", "opencode"]); + for (const { id, name } of adapterProviders()) { + assert.match(name, /^[A-Za-z ]+$/); + const adapter = skillAdapter(id, { home: "/home/fixture", env: {} }); + assert.equal(adapter.id, id); + assert.equal(adapter.label, name); + assert.ok(path.isAbsolute(adapter.globalDir)); + assert.ok(path.isAbsolute(adapter.detectDir)); + assert.equal(adapter.globalDir, path.join(adapter.detectDir, "skills")); + if (adapter.projectDir !== null) { + assert.match(adapter.projectDir, /^(\.[A-Za-z0-9_-]+)(\/[A-Za-z0-9_.-]+)*$/); + assert.ok(!path.isAbsolute(adapter.projectDir)); + } + } + // Codex, Cursor, OpenCode and Antigravity share one project directory. + for (const id of ["codex", "cursor", "opencode", "antigravity"]) { + assert.equal(skillAdapter(id, { home: "/home/fixture", env: {} }).projectDir, ".agents/skills"); + } + // Grok and Muse project scope stays unverified rather than guessed. + assert.equal(skillAdapter("grok", { home: "/home/fixture", env: {} }).projectDir, null); + assert.equal(skillAdapter("muse", { home: "/home/fixture", env: {} }).projectDir, null); + assert.throws(() => skillAdapter("unknown", { home: "/home/fixture", env: {} }), /Unknown skill provider/); +}); + +test("adapter global locations track the scanned primary roots and overrides", () => { + const home = "/home/fixture"; + for (const { id } of adapterProviders()) { + const adapter = skillAdapter(id, { home, env: {} }); + assert.equal(adapter.globalDir, skillRoots(id, { home, env: {} })[0].path); + } + const env = { CLAUDE_CONFIG_DIR: ".claude-alt", CODEX_HOME: ".codex-alt", GROK_HOME: ".grok-alt", XDG_CONFIG_HOME: ".cfg" }; + assert.equal(skillAdapter("claude", { home, env }).globalDir, path.join(home, ".claude-alt/skills")); + assert.equal(skillAdapter("codex", { home, env }).globalDir, path.join(home, ".codex-alt/skills")); + assert.equal(skillAdapter("grok", { home, env }).globalDir, path.join(home, ".grok-alt/skills")); + assert.equal(skillAdapter("opencode", { home, env }).globalDir, path.join(home, ".cfg/opencode/skills")); + assert.equal(skillAdapter("muse", { home, env }).globalDir, path.join(home, ".cfg/muse/skills")); + assert.equal(skillAdapter("cursor", { home, env }).globalDir, path.join(home, ".cursor/skills")); + assert.equal(skillAdapter("antigravity", { home, env }).globalDir, path.join(home, ".gemini/config/skills")); +}); + +test("detection reflects the install directory without failing", async (t) => { + const home = await fs.mkdtemp(path.join(os.tmpdir(), "t3-adapter-test-")); + t.after(() => fs.rm(home, { recursive: true, force: true })); + const missing = await adapterDetection("claude", { home, env: {}, io: fs }); + assert.equal(missing.detected, false); + assert.equal(missing.detectDir, path.join(home, ".claude")); + await fs.mkdir(path.join(home, ".claude"), { recursive: true }); + const present = await adapterDetection("claude", { home, env: {}, io: fs }); + assert.equal(present.detected, true); + // A broken io still reports undetected instead of throwing. + const broken = await adapterDetection("codex", { home, env: {}, io: { stat: async () => { throw new Error("denied"); } } }); + assert.equal(broken.detected, false); +}); + +test("inventory exposes the adapter without gating management", async (t) => { + const home = await fs.mkdtemp(path.join(os.tmpdir(), "t3-adapter-test-")); + t.after(() => fs.rm(home, { recursive: true, force: true })); + const service = createSkillsService({ home, env: {}, getHarness: async () => null }); + const undetected = await service.list("cursor", { refresh: true }); + assert.equal(undetected.adapter.id, "cursor"); + assert.equal(undetected.adapter.detected, false); + assert.equal(undetected.adapter.globalDir, path.join(home, ".cursor/skills")); + assert.equal(undetected.canCreate, true); + await fs.mkdir(path.join(home, ".cursor"), { recursive: true }); + const detected = await service.list("cursor", { refresh: true }); + assert.equal(detected.adapter.detected, true); +}); From d330e2024987fd7d9ac07cebfe510f9492aa9492 Mon Sep 17 00:00:00 2001 From: 0libote <79215282+0libote@users.noreply.github.com> Date: Tue, 20 Oct 2026 15:24:25 +0100 Subject: [PATCH 04/11] docs(skills): phone screenshots of the undetected-tool adapter note --- docs/media/skills/adapter-note-phone-dark.png | Bin 0 -> 46708 bytes docs/media/skills/adapter-note-phone-light.png | Bin 0 -> 52707 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/media/skills/adapter-note-phone-dark.png create mode 100644 docs/media/skills/adapter-note-phone-light.png diff --git a/docs/media/skills/adapter-note-phone-dark.png b/docs/media/skills/adapter-note-phone-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..0468bb00e2b7f1cd099090bc3042de29ef748537 GIT binary patch literal 46708 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 literal 0 HcmV?d00001 diff --git a/docs/media/skills/adapter-note-phone-light.png b/docs/media/skills/adapter-note-phone-light.png new file mode 100644 index 0000000000000000000000000000000000000000..0dea403708e7ec5a6e813af118017a3b7d34eb8a GIT binary patch literal 52707 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

n36-hD2vkSx zG^6DfwAnWt$LL?<)7Balw(JjHW$#y3Ks`!KRYo(@xICmX1+b|ovq*BVl5>7%K8m>3B` z0Bxlf?1$xEevC1S2-`6dJK(W4pcUS3GWOS%se@ z^9r6-1Tl5asaB?OqAHW4O26_DFPkxhKug3^2>>9n3 zU`!Bt!3cCi?hs&)kAvW&(DBoMgg%xI;%+sIqFRm`!45)vibJknO$u=nds(oAw0jWofa zv|f^I-Vk-CaTjZP1j5njhGAXH8V8I-S}~eG>p?D&*pfCiH#6uCNB{5=_)-Clr!1`gcrzzdHMAkbg9-qXP7Cu z6E&uB&0=Q&C7!%*R#>WZA>+NjLKmVR8YM5Rg{Ri6TG zD#45s^j3aV@84HB;yjk{c$1g+1MD&{ZWL+|ONohTq#`0sviL8pu<_Nzbt(%AUVB|{ z@1BbEV_)T9UeqIV#;QLx)#7*8qp0CBI24ZO;}SGl}lqZK!t|!OTTN6{RyZ;F1+uc_ zT5p6l>0gVdY760`reWo)4PV{leqFZl&e|KK*^^xHgfkOXq-!`2hso@My zj+o$xzAV#0>b|^g0w| zp<``t6P7vQ`rS@8Yi4Z}_psZvp<6Ad5z!$Y?9L_C#0%~*ZuR|tF9R34j`bmI4WhYb zm+-poe11YbL#-#f>jTKKHOP{DiFzh{<$Ol4uyvxYCvAS z)5lPuzm%jnQ>6h3_VvlNC(2PmWPuR@s<~vtkdv(adVQ=qqDiX%wQZ`6-f8wJP2tXK zvGA}sL?+$M*g7(L`XM{ieS@y@4AYn1fwzgb&>VUKf+hlCg=Di`WL$z@Nj|GbcXUpr zQooymS=@f$S0h=`Mk{N>#y9fM<4lr$UfZ(T4zCV2*dEy+XN2Mdmb$3zYh({sO7P(N z#PEU={2S=6)JrMeR{DQX9iBvA!TmX9L=$>lO72(Fx(JsAg-UJy z|Bp$I=y&~^$yZ0#)_H=tMNl_|nqHFjxSG&1*&z9bgIVOel7Z^WoU1?p7)ZTTFvTsQ zaKpl(3U>{(D)2&wxb)E+BQkFIN{t^pri4SX+qO&n*?y$aCJkcBEy(|8&R?3ateFyn zDVP3_kU)p!=iPJoxiU9%Kyr&~kcFTud$Uy!p=yj6ZgHt)=~8s+a_8m}%_6|Q^Dkc1 z^JHyGcS!QrOLjzZ^&5FcWxc^GaeJqM%E_1N8sQ2pqe3dK$?5;dC^EHjAYrb46fanACCtK31~+aRh>WL{0;`An_({Zke~a{+Yzj_gw_x8 z|Ht)!Kzfn?SIB&@wAQV?Gw8aE%Pu zOQ0VX`wY6um^Xa@=JM>!%tW~b(ayIQD)0YTvtSW=Iu?E))V=rJaw%QX;siY3jEwt* z&+m*0M1q13wy+Om}s4MU#9fP%B?t9EHK~6Zv~J9^-g=f30U=&d6>!2CAQyKu^_y z(Vr%Yy}b!jpfCSDZmYHva-@UjSRf{2aXp=AT0V31bR9dihpL=drT z!7xW75rzIMgELyp>A0@4qsYiUY-Yl;!hd_eo)8^b#=W9{X2uc zfbr>`D*-{=d`p97P^wZ9*&0%z@Z=;4Ch^_EVK<^&oPI3YIEm3`z6R~XfccUn54;#$ z#T_1%+*y~Z9`Gexsd^W79na#zTo`X#yiJu7hw5g?=>cwr5Oz97LIXJJr;m=>mUrwc zRHJKQA7#i6)0@=5z#L>lJR1E^>9k3C54^zq{z+K}Yx*5fGD51l|5g|PIpIff(&=a; z8*{I_UUy&L*;2Y|Xo!rKd&|Wr1iOUni&qR^_%j+53P)BMVYN-Xl-QO25D)LPD?zTF zHzuAd!->J#X8rrG8_u;{8AN<6xt&?<)E#`V9A-n8nhlWo0}u|Wfi*yQ^cxFE(^Ick zg@rL38lRW7xWbdNLC#6N*@sXiZtm70BszQN_0`&v<$Z8qI4Rb#&UpoVwgRd-vnBW6 z0t`!LR+mcZfve~d%C>Z|9<5aa+-Szsy8E3jBc)d2c^-8yuPBVbEOT+g(*1kiPcVqO z&|%=l>~vEMPi{qg(s`eFn93M|Lir z5>~hHG?s_hBXW~!AoznReRRt5PbAhMxqUHSIdQP*i!dgKB%5=0Qml?;i`QuF{`A4> z8CA9JsA%tKv%D-LOKf=#-Fx7h!AW0PKc@F)y{c-s*xBhF!MTUiwA<*@ZZGb|yKR(5 zy+UwAPDS~R(V;r+-|r@tvolAfI$LS+cxCVo+xBZrQc`J9w#xU>Dvb0<#yAxWEC|q{ znVVpZY)TOv^;J&Y7|tJp!>ICTWqB+;bW!OCHYQzeP|;CXgL#+jM1NG}gDYQ&Q8V6M zjqIJi5cW;Rulux&OAhYB6J%=?24NeAP)Lii#1eH1GN>D#x3G!v`R9h*@T8?(hq$0+ zj!f`wHp`@v_goG#)o@-MwL!5i`e(QThV6Ky?2~Gue*zCSJVdHE(1cE}Nv@mg%}D0TSRx~)8>79G0GYVTVP&w; z^8Dguu2twy>=pg0m0aYeb)+w9Uju{vzg#iM` zJ_J34Yu$l@9i@yAnEhU z70Q1sO?ojg51XB*Y5zjai~dW@z<&g!|93s{fAQsLTS09|aXa3ZwG?6H>F1xpjMStW)-%|t=1c0+A!V|6mx$&i56 z097+Se(cQb`n`Kqn?OO4O#)D6h4oHxaoL-v6rjI6J%|Q<1Tg#<=;_^DT?fR0^_zl? z9m#FLJnYZ#Psm_7`s@aB;{tYPitdIYFl`v&gEYpS4a?EFIl;Q?6=A72{rzjJeszOo z_=*R{V5vnFO*~JTv3B;H6BjNX9t4g6&0QnNGn3uR~iRB$H%|{j=x|w?90yf6eEV=PWwVV|XgrHjMi2FGyN-43iSc+qoFwGoq$Sha;btg?TaKoc0#kNI_3 ztwsmrG2m*goSvS39{TtzY-C)C8od`g?3X0~swM-4>{m#HtbxVdXcO4b36@QWBxwUT<%d!t+R8+fSQyLx*{|QR zq`yd2Y#VO5K%R%F|I0xdzU2uRE>Yp(L%!eUnm!BQShK9@XpVwl*94-1r%wnay)0vA zx%ulTSPtQ5go&8%HRzhI>*+1a`%!J{C(eRlE$S22yomkWE7)N>*G$)~FRp)D!p1w8 z`25+(>N)h@Kj)f-o)m+E!d5Utej@c5cuj)>oe+FRFQ*~Sz`p(HUnDcdhsTmPMjnrx zPl$=tz+U;`pMB!Q1z;X_y94c%=}DSyP9?0#PN!?GK&KDT1KEI$9-xcDw(OsB1$q2a z-pk#6^tG7@cVnF4E47#d#efZ&{ho@2Ccg)&s_Z*HFb9EMVbW2DCXvrCfltrddm7v; zX&ARw16MjDc|c$?K$f@r7se1(cCB%JhK=6(@Isv~wDlP;`Q$lWeUv32ZN%VS3NAzv z#Qg*xBL>wn-+#=b`_J5EVJjSZe&PX<(9Qm@W*a=igRcf3P|YAWtJMjngzaWtO2Qgv zr}bCNZ#5uVENyR_wucHW@f#L_j*0`|ZbbKv`5QbRhzFI(_$>=o(h>tvmKzmGeXBtw za%RYa6ZhYXVo|dfylkbQQX%A~XxRW9Eu6_DieuaYpiA8qf9pMe#bXQ=VoJjD!h%&Q zsu)8AL!ads?k^2{`~J;|J#ZUpf)=!3$wHI#*v!D-7&PMnoFOnUV?HR=Oi6}NnFmLV zGtJ{fs$~VDWNAk~Z64?5vObGmi*QToh9^hd%Tg)i!ODPk^nrUPoZSFsH%(!F`b_cn zY?I$Qguolg{<~A6@7jXP6f(R&w*l=g<@S<|#KQy30FRa5OWh^la;!1YBV@yU zlTdeIQ-;4}W5_%W1JKuCQ@QrWAHwb~LbSlUnX_Pu4Zo9ET^n2_5#g~@3Xky#yYa7} z_#|&Ny|NY>Erj@}8kg9Pi}|*PEFY6`P_O{p_*!=*S@nA-onPS4Aq@))XqYsS*HH|B zj!RO(-48#DAXl~J$D|_ANxBvOWNGuhBIqI+^+}k;`mR$kJBQyzQBgTVWthJO<{qT% zvYufeuk4PD*Cg-&Tbj)PyE#+sqzS@@Q4wLgmYDQiawFUFAqyOnWbLrIr6$mTB{3_a zDpO6xAxZ&+jTLSqn;_G>krxH6f$=Nb&$%mi^YBx00Vy0_%tC)kr>_|qi5Ct+ zcy4R9Nm3O!Z9pAJv~Jn^z`)=xcs&cKbVf>COIQNLdR_N2GxXn zbI{zI#s!6fx`5AIlW?M7VC;9nQv0hPl;8G9lYgNkOnlb8a*Fs($-w)pqC#Iwi}#Hw zN;6eAC`s`RqyV>=fFxiKJk=2M<*w9{qMV(q9&HTzr7cbXO#bp0$mMw zy2+13Vu-U2@f_Qyr!BwxH+{x0*Y9+uj=UQk(OJ?RlqS1CV5i}Yn)DT33DZa>dKWm1 z?*P6El>AzuJ7ozkMf*C)ix zY`?JXQc`8z_4_$f0b-cXqBO4v4#;ps$Z*Mi^(6J|Vx8d%VL!}j^%!~~OGralM0}fS z9$Co9P87n^cUK~q?R~8pPEfSZKx6a;AAf${G*%Y|QJt2ZITnb?Ri7yb-DNS0y-((E zU*oI>BI4%DvDSOEwtV#%6mP_B+%dNi_g&99VhE!;9QWOMkrtGg2VAD)UIsQcp4?kf z4pkOUFeCJvJ|j8`H2(s`tBsP<66Urshrl^`x?e$iJ!&WxHwqJP4f&W*x58RqPULG5Mq3_GD%)mEvoYVhO$q~;9=@{ZXZ#^V1RWN<%o)ctIP)NG?J&kBrWYfL(#=&k<*=p4 zr-*aJ$;c-_pm&X^Dj4xpVKNIdd8cQhRukXJ1+n(RHx!&x2-1i~etU~9G?jCO)pfM1 zMP&`f`t3OJMP4Q4K}@2%?#yBi%ricPWhUQ)+o{y1O^yZ1e5qGn69o<%m(ysWRQaJs zxlt=~533SUAi(WIom)tTM^I0gby$oUZR`h4)%|B60+rCP&7{2741ApdE>}}60ySjK zwUbEtZF5XLzmDKu*HT04Rf+$2M(^5aH*q1p7kIps?RpSPSvivb%+LWn^YWDS(p?O( z6W`uDaQ;c@->Y2kS&Wu6FNGc_^iI4>F7Q?+XS~L+YM{DovzM8KMW$K*9d;V*SL4f) z07mM}^HLQx=Jd7Tsgo9!D&D4lSc2G%Awh%#tmvL0HME{*OR;IdGbkMIGF{PJN`41? zj7}pq7F+t2eZUBB#xE@`#W=Bae&;jkBa$aCyLJIacVW{~)?0dBs)VeG50`sno9Yos z36UziLLrQPbTUAcSEdGjCW||%@7z=zA%53SP0@)XVMo28uE!ooFxIM%p2Co;a?W0h2pV zwY^wDOf&8rU#@B{qoGz|$h9u5=XD#rJxmgjp0F#F6w|gVF~icu|4F)^vJ*wWZtmCU z&E!}m&i*O#hb)@St=O_SBKv6ldBRfcEoLMqN%1bAde44;S}6H`BS}_EPwz=tnOI7# zhxU<`HW1WdEFjn=2IX5wA5}Wef-97JLe>(?q$XrR#CqYgv$SC**j0?zok4$P=@u!4 zx4>_)MQ%#%r#L;+teY~XDWy%}ELQzq>$ok|ip4S_I z8w{!@{7ba9VNXE&nYYZ`0}ZmCMpZe+#_ekCKdyNvo$a82&J;L4oT30_yQ8vNQzon? z8wW|sam4-wWAqx7IXPcb_!~}O`hhWyg@O&i?vu`BPVwZ=%F3mJ1kUjZRJzNGhP*v8 zAO;P}-%jP!?2mw*AMo`yDL4V^j~l(RDN7!~Djp60_Tde+(57H0&DXv@ofA6p45f|j zO>2p|P;yl=^&PH!<~tjs1*;&min^J$HBlC>)b@AJWf3Ilu(TKf^4)I$DzAR>nJP7U z&!zi?S1|JD_wRsIe+hH<-rhxNpDJI|OPf3RfMK4YG#AUfU8d zT>TzLxeib{N931siv*GEQvbZ0#0mD4>fbo;ore{Ipc9^7wR9L3CWW4zH?wd8vH=y0 zNgNEMWWb~pNG|t2i+0J#$beb^8=IKH|O(6FQhL9x&SYVYK6`sP9(NP$ddph?` z5FaQ56BOG+nZiCU)VO%Ic}ZQ;J>B>31>>g;0StbJ`ugZ&plN?)gmQm5bmQ5i&^JA@ zpgd@AsfDaj!lW(2ddO+b6WXiX7x^%MOVyk zY6gZ@?|E~WdP7hlnQ>|TBUvml{MQJg2fWd>gn z(yhz`qvY|^x~O{X^kn1{zC3aq6?dGsx_2$Lb3f_ou)}v_rv@6?=M=FHWG} zO}h*Z7U|%qltwcMS3B0u`KbwNJ2*h>ykffv7lJ(n9tDho(WRPa^{LNxrKJ0)LVXR$ za5~cxB1xjynLPW7|AbvK=(NC)SzG(x_c_NO!0PGjQ0CV9VTmiKn4$x&OBV81QBj?bnd68U#Kd)Cb#Go8RhMlsIP4INPcax^9@b(4ijfYTbk2a^uy%m+)!MC$ud^Aoq{;fZXLD4PP}+Dv827M3 zLvBjU)%K0|N<#9wof>;tk3bv4>q_1`(8QURmC5zuAqeut|X*XllBjEs3(V$%oP9;DEUlghm2n8~B? z%_LW+55L`2i+q2NMgBXNWhrm6MDmnBAKogJk#AERCvPko zMJ7r3j9h=BRDeFxh~lN}JFRafPV+e>m13@ut@cKkg{Aky$T(1i8kp2nR0cb`%26s< zyolP%f{>>lkuQY1^+>Bi0sghKxf#Cs`gH2};pF@^QCWE9r#=}n&_3iK9Gi}?wRIp!jFhlLO$kDBvmvXMItQ6p$og^;Jc;DJ=n3y<- zkJp*tJAnP?;N)c9@RQv8QUU_^b{D15I!0z@Nj^&LRzDj|>kG`vz0J+zFWsclel2t*KC%b7X)NF<(JD4&Q-u#6%Zd8`4^w%1KUucE>~Gl80msvw|D;^ z8*90ac065Nv`t>f7nxak{FTenXFs4fGVAjRJW%F5mM_iNNpKClJz@VcLLtP`%FeF) zr>Y$}&dMgq#*afWadA$5+)Uhss&;Q|o=k5wch&|oGiPg>%$W{lmfKnKgjK{}6umBY z__cE#JQ-^;c*zR1($mr~*9sPUmbwjo;Vs2^YnYgfrzl-yW@T|aK&U*tsH~_sglwjX zNi%;#h__LS=?)8vhJH3aPPW-?gpkvFdiQ_-YcUeM4MJcjV!q@H^ZL6qX7v z-rm^2c*>4sOH1>k492;f85?_|3t&`D;>WqDJABo-|JeQGy}fCrtQFEMI<`jia*K1u z-Z{(<7#=KPU=Sm;)m2Py3@~BN^Ou#+-u!?v=pvKab>3CHJ>%MjF$g)Ue;OCOU!`%I z^(;JMo=3@!F=2YC%hoVa9ndjKUl^I;{H6fbU~g~l#l;2tXJz)X@gdmhIJ&T)^oJV)1GKg#&Rm!Fww`cWsM ze`iHvdVW4jG^$58rpCk9Fwo_jtry~p+)KiM{DkDPfRzmhb%wAf9*Wzy=Bk$%*z=ys zge-=+uF(eLn00AbT2AL(X?N=G>T;fIs!fzt- zXmsT2>Z8g#RwlnS0|LB^j0l_%G5DnX);@msL#wcE@o>6QT4)-#4#a$ri5A5nI7Sjm zzaJoGvyESVo^Mi`73B}K!R8UQ+`5ic-@rh6rHk8-BSh6*SJ*5s&SzWcbZ{bjiuILJ zzxV0)w=-Pq#fp~>VyVi73oPXvuPJ-+ZdwWdDZG7TdyM|k3HG99; z-A-Bu5*2cDyZO|wiHeR!zS=$eH5eV;d+XMtx`u|MBj$Oxk5N$zwRLyI&SIX(;POz! zJb~|D!1vweC_H^=h<~g?7J@f497U?gi)K5280ELV#!Y;BZ{aDH_RuGh9&c}N%yYvc ztsC;e62g2x#OI|XfByRMqw?jkJprYPf+0}g-^}6Dw$hu0JXd*OC<5%-a-Vm5!T4V{ zGMxF>(;Khe_@QpCSo?Ffn@zEr5d6$dNQ68mj{|w!hipMBWhS$j5V!|FKa1l-?F?eq zSnfx?j){>=+Pas5uT%Q&CEp!6fg3FEciCjvTzq_JDevr`|KSXg`xv*W;r8;evNx-o zAs2$|>bY9icwzQOB`azm?c@hOMxB?^UFS=cFN%v};nX`a?W8vyGAs5Qu0|$dB1f~HhL}KH=LUE6D=s=@ zO!bR|vH}wUFHCPewN4plBHt^h#2tbJE-@4mvy(Hf(-DE-)<)u~DT``5i=wb1v?(Gx z$;kB5QOKAu$MhaYQJkm{PQEL@A+DL+rtt#(>2skU9Ng;66H`hTJFS-#1;%DvFnkrV zn|gD`wlMapWPw!`_}T;d`4>sqH1sV$VFN4@l%1-}8J$0i?oGfx;e$Z+{R75pIB|@e zWu>K@{F@t51TJ8~+JjtBQqmOm{TCJ@KS`C&<;nSTgkR-7J~Gg0QElPy7i6+V9J^UM ziHDxgI)v=)%{Bi5{Q2_d!pF30KJM-ce#=xw6Lp& zL&MG6Tjg4B_x84eg$0kAT4asO`wgFOtvQe)Ga+PiK}kUom8lk+yuP;9Sg-X>R_Vsj z$>JjM*3_d4xCa8xD_-d;v8Qv*s{Q@@7tSse*C)J^Gk(I++9Jlkn?pw1ZfaH9!}?CK`|UB#r>G-E z=^0h5y<=mHL(vpgmgslyHHnJ8%zPir;Q7_ABp@Y~U6~%RJ?+QB@(Uu;f)Az~K0yQt zkz{FE+1`lsB~_eyTwKZcSmoO4Di0TzU6b$5L|GIl32u3K)*?F*Pm0qicit_ zwXHDy`7@@Xm6{rdkPy?tXl;o>{>CkZA=S45P?vaZiwx&HipYd{?WksH(dMhBldH+g z42qOy8Bd=AuYC8nnvs2`sDs z#Tvb0t?*%deq~*ezi|5Ez+`Ytjf^jR!uo-u;lbfU9#+;=9pjMmLBL8IYj<^2yN%2M z+cZBv0TL|CD+uG`XHo(-EVQ(IEvJtg8X92iJkzc;HaaTGyRo&gv4KmpmQkrra{J{7 z{&^~5Y5JWkQYYYhpAZ~x_nq$jT2sF2@4uh6wD+Copm!E^b7Sj^(fBA;z|^<*fxfRG zTQN2EVrIVeE8^A*hH*-0BzcyPM0wN*eQDXrA)z!r}sG}hZo&T#!Y2{5qy12Muye=F$8tj_B~cqO*S_jTMS7C- zs<3YotqFOQ+o!7N>ShQZJGx1QnTxTMu~Ryc(FJYnE}^Ec*4=DRxa3z<9G{s--j^IllmD>BVe{$G$~p{{@4Efh4c8)_SeYEsCuux&!^Z}G~8Tv zgv9g7YP%07=}goW�^5XjtX5)-$9PBzOG;T))$!reA*L{^{w&ivYHLs5ad&p% z-fAb1*V~|9rmEd%2n^%JmWbGKMyl5pGLa5p(IR6=ZwHB@7hjKJ;@=WFGeOBh3>kL$ zEr{1R4?tQ$_-MV$3zu%yzF!t*W@^7;kU^Av^TzQ!Gavu12=e*M}tuD9e@>uPJ=f3GssSK=Cb zia?m)9uVK!?g|00O-YR%vavw)f{U9TxJANckypfi#0p>wpz3JO*(p_=U0oNqc#ytP zVH`0ivOA9pP?3Y~T7)ktRn( zm)dmSFRaE-siuiv;y@lv^+RX+EFD#ae5zeU?trJ(R^8f2CqlGFxq;WEcaBCyvS~(1 z5)G4yAGC#>4A0EWgnUZwOy&6C=kl+jkoEqbmKQis&_uGa=5qe8R3s-X7#J9rm!m^| hneYd^e?1X4#?P4J)Hy}JSoj+Z?Q7T7D^(pM{u?2jRsH|~ literal 0 HcmV?d00001 From 975e3f3135ace865c36bf6f53cc1e51c69deaf17 Mon Sep 17 00:00:00 2001 From: 0libote <79215282+0libote@users.noreply.github.com> Date: Wed, 21 Oct 2026 14:36:28 +0100 Subject: [PATCH 05/11] fix(skills): prefer published skills over agent-specific copies --- docker/setup/skills/sources.mjs | 40 +++++++++++----------- docs/context-management.md | 6 ++++ scripts/skills-import-smoke.mjs | 9 +++-- tests/skill-sources.test.mjs | 60 +++++++++++++++++++++++++++++++++ 4 files changed, 93 insertions(+), 22 deletions(-) diff --git a/docker/setup/skills/sources.mjs b/docker/setup/skills/sources.mjs index 2daf890f..9d77be0d 100644 --- a/docker/setup/skills/sources.mjs +++ b/docker/setup/skills/sources.mjs @@ -222,25 +222,20 @@ export async function resolveSkillSource(value, { home, metadata, env = process. read = async (file) => file.data; } total = 0; - const skills = [], names = new Set(); let oversized = false; - let candidates = files.filter((file) => path.posix.basename(file.name) === "SKILL.md"), preferredPaths = null, foundPreferred = false; + const skills = [], names = new Map(); let oversized = false, foundPreferred = false; // Match normal library discovery before falling back to arbitrary layouts. // Otherwise a tool repo's private workflows/examples become install picks - // alongside its published skills. Explicit name/folder sources still work. - if (!parsed.filter) { - const prefix = parsed.type === "git" && parsed.subpath ? parsed.subpath + "/" : ""; - const preferred = candidates.filter((file) => { - const relative = file.name.slice(prefix.length), parts = relative.split("/"); - return file.name.startsWith(prefix) && (parts.length <= 2 || parts[0] === "skills" || (parts[0].startsWith(".") && parts[1] === "skills")); - }); - if (preferred.length) { - preferredPaths = new Set(preferred.map((file) => file.name)); - candidates = [...preferred, ...candidates.filter((file) => !preferredPaths.has(file.name))]; - } - } - for (const entry of candidates) { - if (foundPreferred && !preferredPaths.has(entry.name)) break; - if (skills.length >= limits.skills) throw fail("too_large", "The source contains too many skills; use a specific folder."); + // alongside its published skills. Published copies also precede agent variants + // of the same name, including when a name selector is supplied. + const prefix = parsed.type === "git" && parsed.subpath ? parsed.subpath + "/" : ""; + const candidates = files.filter((file) => path.posix.basename(file.name) === "SKILL.md").map((entry) => { + const parts = entry.name.slice(prefix.length).split("/"); + const priority = !entry.name.startsWith(prefix) ? 2 : parts.length <= 2 || parts[0] === "skills" ? 0 + : parts[0].startsWith(".") && parts[1] === "skills" ? 1 : 2; + return { entry, priority }; + }).sort((a, b) => a.priority - b.priority); + for (const { entry, priority } of candidates) { + if (!parsed.filter && foundPreferred && priority === 2) break; // A large unrelated skill must not prevent selecting a portable sibling. // Check sizes before opening; an oversized selected folder still errors. if (entry.size > limits.markdownBytes) { @@ -251,10 +246,15 @@ export async function resolveSkillSource(value, { home, metadata, env = process. const content = raw.toString("utf8"), info = metadata(content, path.posix.basename(path.posix.dirname(entry.name))); if (info.metadataError || !portable(info.name)) { warnings.push("Skipped " + entry.name + ": " + (info.metadataError || "Use a portable skill name of 1–64 lowercase letters, numbers and single hyphens.")); continue; } if (parsed.filter && info.name !== parsed.filter) continue; - if (names.has(info.name)) throw fail("conflict", "The source contains duplicate skill names. Use a specific skill folder."); const directory = path.posix.dirname(entry.name), prefix = directory === "." ? "" : directory + "/"; const children = files.filter((file) => file.name.startsWith(prefix)); if (children.some((file) => file !== entry && path.posix.basename(file.name) === "SKILL.md")) { warnings.push("Skipped " + info.name + ": its folder contains another skill; use the inner skills instead."); continue; } + const previous = names.get(info.name); + if (previous) { + if (priority === previous.priority) throw fail("conflict", "The source contains duplicate skill names. Use a specific skill folder."); + warnings.push("Skipped " + entry.name + ": skill " + info.name + " is already provided by " + previous.path + "."); continue; + } + if (skills.length >= limits.skills) throw fail("too_large", "The source contains too many skills; use a specific folder."); const treeEntries = new Set(["."]); for (const file of children) { const relative = file.name.slice(prefix.length), parts = relative.split("/"); @@ -270,8 +270,8 @@ export async function resolveSkillSource(value, { home, metadata, env = process. if (data.length > limits.fileBytes || total + data.length > limits.bytes) throw fail("too_large", "Source contents grew beyond the preview limit. Preview a smaller folder."); total += data.length; copied.push({ name, data, mode: file.mode }); } - names.add(info.name); skills.push({ name: info.name, description: info.description, content, files: copied }); - if (preferredPaths?.has(entry.name)) foundPreferred = true; + names.set(info.name, { priority, path: entry.name }); skills.push({ name: info.name, description: info.description, content, files: copied }); + if (priority < 2) foundPreferred = true; } if (!skills.length) throw fail(oversized ? "too_large" : "invalid", oversized ? "No matching skill could be imported. Skill Markdown must fit within 64 KiB; use a smaller skill or manage oversized skills directly." : parsed.filter ? "That skill was not found in this source." : "No valid SKILL.md files found. Choose a skill repository/folder or paste a direct Markdown link."); return { source: value, sourceInfo, skills, warnings: [...new Set(warnings)].slice(0, 30) }; diff --git a/docs/context-management.md b/docs/context-management.md index e8006316..af9e1b74 100644 --- a/docs/context-management.md +++ b/docs/context-management.md @@ -288,6 +288,12 @@ Native path references: [Cursor skills](https://cursor.com/docs/skills), [Muse skills](https://meta-models.github.io/muse-code-sdk/next/guides/extend/skills/), and [Antigravity skills](https://antigravity.google/docs/skills). +When a repository publishes the same skill name in `skills/` and an agent-specific +folder such as `.openclaw/skills/`, preview prefers the published copy and warns +which variant was skipped. Name selectors use the same precedence. Paste a +specific folder link to choose another variant. Duplicate names within the same +discovery priority still require a specific folder. + Re-importing the source is the update flow: review a fresh snapshot and explicitly replace each existing local folder, including removed/renamed supporting files. The console does not remember origins, schedule updates or maintain a source diff --git a/scripts/skills-import-smoke.mjs b/scripts/skills-import-smoke.mjs index de1ec4a1..e00c132d 100644 --- a/scripts/skills-import-smoke.mjs +++ b/scripts/skills-import-smoke.mjs @@ -13,9 +13,14 @@ try { const env = { ...process.env, HOME: home, CLAUDE_CONFIG_DIR: path.join(home, ".claude"), CODEX_HOME: path.join(home, ".codex"), XDG_CONFIG_HOME: path.join(home, ".config"), XDG_DATA_HOME: path.join(home, ".local/share"), XDG_STATE_HOME: path.join(home, ".local/state"), XDG_CACHE_HOME: path.join(home, ".cache") }; for (const key of Object.keys(env)) if (/TOKEN|API_KEY|OPENCODE_CONFIG|OPENCODE_PERMISSION/.test(key)) delete env[key]; - const source = path.join(home, "source/import-check"); await fs.mkdir(path.join(source, "scripts"), { recursive: true }); + const source = path.join(home, "source"), published = path.join(source, "skills/import-check"), adapter = path.join(source, ".openclaw/skills/import-check"); + await fs.mkdir(path.join(published, "scripts"), { recursive: true }); await fs.mkdir(adapter, { recursive: true }); const markdown = (version) => `---\nname: import-check\ndescription: Disposable native import fixture\n---\nVersion ${version}.\n`; - const writeSource = async (version) => { await fs.writeFile(path.join(source, "SKILL.md"), markdown(version)); await fs.writeFile(path.join(source, "scripts/check.sh"), "#!/bin/sh\nexit " + version + "\n", { mode: 0o700 }); }; + const writeSource = async (version) => { + await fs.writeFile(path.join(published, "SKILL.md"), markdown(version)); + await fs.writeFile(path.join(published, "scripts/check.sh"), "#!/bin/sh\nexit " + version + "\n", { mode: 0o700 }); + await fs.writeFile(path.join(adapter, "SKILL.md"), markdown(version) + "Agent-specific variant.\n"); + }; await writeSource(1); const options = { home, env, getHarness: async (id) => id === provider ? { runnable: true, executable } : null }; let service = createSkillsService(options); diff --git a/tests/skill-sources.test.mjs b/tests/skill-sources.test.mjs index 16234db2..818f52f4 100644 --- a/tests/skill-sources.test.mjs +++ b/tests/skill-sources.test.mjs @@ -143,9 +143,69 @@ test("repository discovery prefers published skills over private workflow instru await f.put("library/skills/find-skills/SKILL.md", markdown("find-skills")); await f.put("library/.factory/workflows/triage/skills/triage/SKILL.md", markdown("triage")); const library = await f.resolve(path.join(f.home, "library")); assert.deepEqual(library.skills.map((skill) => skill.name), ["find-skills"]); + const selected = await f.resolve('npx skills add "' + path.join(f.home, "library") + '" --skill triage'); assert.deepEqual(selected.skills.map((skill) => skill.name), ["triage"]); const explicit = await f.resolve(path.join(f.home, "library/.factory/workflows/triage/skills/triage")); assert.deepEqual(explicit.skills.map((skill) => skill.name), ["triage"]); await f.put("custom/deep/bundles/review/SKILL.md", markdown("review")); assert.equal((await f.resolve(path.join(f.home, "custom"))).skills[0].name, "review", "Custom layouts retain bounded recursive discovery as a fallback"); await f.put("custom/SKILL.md", "An invalid placeholder"); assert.equal((await f.resolve(path.join(f.home, "custom"))).skills[0].name, "review", "An invalid placeholder cannot suppress the custom-layout fallback"); }); + +test("published skills take precedence over agent-specific copies without mixing their files", async (t) => { + const f = await fixture(t), root = path.join(f.home, "library"); + const published = markdown("review", "Published instructions"), adapter = markdown("review", "Agent-specific instructions"); + await f.put("library/.openclaw/skills/review/SKILL.md", adapter); + await f.put("library/.openclaw/skills/review/adapter.md", "Agent-only supporting file"); + await f.put("library/.openclaw/skills/extra/SKILL.md", markdown("extra")); + await f.put("library/skills/review/SKILL.md", published); + await f.put("library/skills/review/guide.md", "Published supporting file"); + for (const source of [root, 'npx skills add "' + root + '" --skill review']) { + const result = await f.resolve(source), review = result.skills.find(skill => skill.name === "review"); + assert.equal(review.content, published); + assert.deepEqual(review.files.map(file => file.name).sort(), ["SKILL.md", "guide.md"]); + assert(result.warnings.some(warning => warning.includes(".openclaw/skills/review/SKILL.md") && warning.includes("skills/review/SKILL.md"))); + assert.equal(result.skills.length, source === root ? 2 : 1, "Unique agent-specific skills remain available"); + } + const explicit = await f.resolve(path.join(root, ".openclaw/skills/review")); + assert.equal(explicit.skills[0].content, adapter, "Explicit folders retain their own variant"); +}); + +test("Git repository commands and name selectors prefer published copies regardless of tree order", async (t) => { + const f = await fixture(t), published = markdown("review", "Published"), adapter = markdown("review", "Agent-specific"); + const entries = [ + { name: ".openclaw/skills/review/SKILL.md", object: "a".repeat(40), content: adapter }, + { name: "skills/review/SKILL.md", object: "b".repeat(40), content: published }, + ]; + const run = async (command, args) => { + if (args.includes("clone")) return { stdout: Buffer.alloc(0) }; + if (args.includes("rev-parse")) return { stdout: Buffer.from("c".repeat(40)) }; + if (args.includes("ls-tree")) return { stdout: Buffer.from(entries.map(entry => `100644 blob ${entry.object} ${Buffer.byteLength(entry.content)}\t${entry.name}\0`).join("")) }; + return { stdout: Buffer.from(entries.find(entry => entry.object === args.at(-1)).content) }; + }; + for (const source of ["npx skills add org/repo", "npx skills add org/repo --skill review", "https://skills.sh/org/repo/review"]) { + const result = await f.resolve(source, { run }); + assert.equal(result.skills.length, 1); assert.equal(result.skills[0].content, published); + } +}); + +test("duplicates within the same discovery priority remain ambiguous", async (t) => { + const f = await fixture(t); + for (const directories of [["skills/a", "skills/b"], [".claude/skills/a", ".openclaw/skills/b"]]) { + const root = "duplicates-" + directories[0].split("/")[0]; + for (const directory of directories) await f.put(root + "/" + directory + "/SKILL.md", markdown()); + for (const source of [path.join(f.home, root), 'npx skills add "' + path.join(f.home, root) + '" --skill review']) { + await assert.rejects(f.resolve(source), { code: "conflict" }); + } + } +}); + +test("skipped agent copies do not count toward the skill limit", async (t) => { + const f = await fixture(t), root = path.join(f.home, "library"); + for (let i = 0; i < SOURCE_LIMITS.skills; i++) { + await f.put("library/skills/skill-" + i + "/SKILL.md", markdown("skill-" + i)); + } + await f.put("library/.openclaw/skills/skill-0/SKILL.md", markdown("skill-0", "Agent variant")); + assert.equal((await f.resolve(root)).skills.length, SOURCE_LIMITS.skills); + await f.put("library/skills/overflow/SKILL.md", markdown("overflow")); + await assert.rejects(f.resolve(root), { code: "too_large" }); +}); From 4c1981bd92557a3c7858a94fc089e0dca32d1c8d Mon Sep 17 00:00:00 2001 From: 0libote <79215282+0libote@users.noreply.github.com> Date: Wed, 21 Oct 2026 15:19:49 +0100 Subject: [PATCH 06/11] feat(skills): review and trust Codex plugin hooks --- docker/setup/app.js | 1 + docker/setup/client/skill-hooks.js | 87 ++++++++++++++++ docker/setup/client/skill-inspector.js | 3 +- docker/setup/client/skills.js | 8 +- docker/setup/console.css | 7 ++ docker/setup/page.mjs | 1 + docker/setup/server.mjs | 15 +-- docker/setup/skills.mjs | 8 +- docker/setup/skills/codex.mjs | 27 ++++- docker/setup/skills/hooks.mjs | 65 ++++++++++++ docs/context-management.md | 33 +++++- docs/media/skills/hooks-desktop-dark.png | Bin 0 -> 142394 bytes docs/media/skills/hooks-desktop-light.png | Bin 0 -> 188102 bytes docs/media/skills/hooks-phone-dark.png | Bin 0 -> 48189 bytes docs/media/skills/hooks-phone-light.png | Bin 0 -> 57120 bytes scripts/lib/skills-fixtures.cjs | 16 ++- scripts/skills-hooks-smoke.mjs | 52 ++++++++++ scripts/skills-hooks-ui-audit.js | 97 ++++++++++++++++++ scripts/smoke-test.sh | 10 +- tests/skill-hooks.test.mjs | 118 ++++++++++++++++++++++ tests/skills-api.test.mjs | 28 ++++- 21 files changed, 556 insertions(+), 20 deletions(-) create mode 100644 docker/setup/client/skill-hooks.js create mode 100644 docker/setup/skills/hooks.mjs create mode 100644 docs/media/skills/hooks-desktop-dark.png create mode 100644 docs/media/skills/hooks-desktop-light.png create mode 100644 docs/media/skills/hooks-phone-dark.png create mode 100644 docs/media/skills/hooks-phone-light.png create mode 100644 scripts/skills-hooks-smoke.mjs create mode 100644 scripts/skills-hooks-ui-audit.js create mode 100644 tests/skill-hooks.test.mjs diff --git a/docker/setup/app.js b/docker/setup/app.js index a4650cb9..76e9fb99 100644 --- a/docker/setup/app.js +++ b/docker/setup/app.js @@ -3455,6 +3455,7 @@ 'storage.versions': () => storageUI.reviewVersions(), 'storage.details': () => storageUI.toggle(), 'skills.refresh': () => skillsUI.refresh(), + 'skills.hooks': () => skillsUI.hooks(), 'skills.view': (a) => skillsUI.view(a.id), 'skills.add': () => skillsUI.add(), 'skills.import': () => skillsUI.install(), diff --git a/docker/setup/client/skill-hooks.js b/docker/setup/client/skill-hooks.js new file mode 100644 index 00000000..a6f1da85 --- /dev/null +++ b/docker/setup/client/skill-hooks.js @@ -0,0 +1,87 @@ +// Hook consent belongs to the person reviewing the exact native definition. +const T3SkillHooks = (() => { + 'use strict'; + const { html, raw, icon } = Kit; + const disabled = value => value ? raw(' disabled') : ''; + const label = event => event.replace(/([A-Z])/g, ' $1').replace(/^./, letter => letter.toUpperCase()); + const create = ({ api }) => { + let active = null; + const close = () => { + if (active?.saving || active?.confirming) return false; + active?.layer.close('close'); return true; + }; + const open = pluginId => { + if (!close()) return; + const view = { pluginId, data: null, loading: false, saving: false, confirming: false, error: null, message: '', layer: null }; + active = view; + const busy = () => view.loading || view.saving || view.confirming; + const paint = () => { if (active === view) view.layer.render(); }; + const beforeUnload = event => { if (view.saving) { event.preventDefault(); event.returnValue = ''; } }; + const load = async () => { + if (busy()) return; + view.loading = true; view.error = null; view.message = ''; paint(); + const response = await api('/context/skills/hooks'); + if (active !== view) return; + view.loading = false; view.data = response.ok ? response.data : null; + view.error = response.ok ? null : response.error; paint(); + }; + const change = async (id, action) => { + if (busy()) return; + const hook = view.data?.hooks.find(row => row.id === id); + if (!hook || hook.readOnlyReason) return; + if (action === 'trust' || action === 'enable') { + view.confirming = true; paint(); + const yes = await Kit.confirm({ title: action === 'trust' ? 'Trust this plugin hook?' : 'Enable this plugin hook?', + body: html`Allow this command to run automatically for ${label(hook.eventName)} in Codex?${hook.command}`, + consequences: [{ icon: 'info', text: 'Runs with your container user’s access. Applies to the plugin, including all its skills.' }, + ...(action === 'trust' && !hook.enabled ? [{ icon: 'info', text: 'This hook stays disabled until you enable it separately.' }] : [])], + confirm: action === 'trust' ? 'Trust this hook' : 'Enable hook', tone: 'primary' }); + if (active !== view) return; + view.confirming = false; + if (!yes) { paint(); view.layer.panel.querySelector('[data-hook-id="' + CSS.escape(id) + '"][data-hook-action="' + action + '"]')?.focus(); return; } + } + view.saving = true; view.error = null; view.message = ''; paint(); + const response = await api('/context/skills/hooks/state', { body: { id, revision: hook.revision, action } }); + if (active !== view) return; + view.saving = false; + if (response.ok) { + view.data = response.data; view.message = action === 'trust' ? 'Hook trusted. Start a new Codex session to use the updated settings.' : action === 'enable' ? 'Hook enabled for new Codex sessions.' : 'Hook disabled for new Codex sessions.'; + Kit.announce(view.message); + } else { view.data = null; view.error = response.error; } + paint(); + view.layer.panel.querySelector(view.error ? '[role=alert]' : '[data-hook="' + CSS.escape(id) + '"]')?.focus({ preventScroll: false }); + }; + const renderHooks = () => { + const hooks = (view.data?.hooks || []).filter(hook => !view.pluginId || hook.pluginId === view.pluginId); + const plugins = [...new Set(hooks.map(hook => hook.pluginId))]; + return html`${plugins.map(plugin => html`

${plugin}

${hooks.filter(hook => hook.pluginId === plugin).map(hook => html` +
${label(hook.eventName)}${hook.trustStatus === 'modified' ? 'Changed · needs review' : hook.trustStatus === 'untrusted' ? 'Needs review' : hook.trustStatus === 'managed' ? 'Managed' : 'Trusted'}${!hook.enabled ? 'Disabled' : ['trusted', 'managed'].includes(hook.trustStatus) ? 'Enabled' : 'Blocked until trusted'}
+ ${hook.command ? html`
${hook.command}
` : html`

${hook.handlerType} hook

`} +
Source
${hook.sourcePath}
Matches
${hook.matcher || 'All occurrences'}
Timeout
${hook.timeoutSec} seconds${hook.async ? ' · Runs in the background' : ''}
+ ${hook.readOnlyReason ? html`

${hook.readOnlyReason}

` : html`
${hook.trustStatus !== 'trusted' ? html`` : ''}${hook.enabled ? html`` : html``}
`} +
`)}
`)}${!hooks.length && view.data ? html`

${view.pluginId ? 'No hooks found for this installed plugin.' : 'No installed Codex plugins with hooks were found.'} Importing skill folders adds instructions; lifecycle hooks come from a full plugin installation.

` : ''}`; + }; + view.layer = Kit.open({ kind: 'sheet', returnTo: document.activeElement, + panel: { class: 'tc-sheet tc-skill-inspector tc-skill-hooks' + (Kit.isPhone() ? ' tc-sheet--bottom' : ''), role: 'dialog', 'aria-modal': 'true', 'aria-labelledby': 'skill-hooks-title' }, + focus: '[data-hooks-close]', backdrop: 'ignore', onEscape: close, + onClose: () => { window.removeEventListener('beforeunload', beforeUnload); if (active === view) active = null; }, + render: () => html`
${icon('shield-check')}

Codex plugin hooks

Review automatic commands
+

Hooks run at events such as starting a session. Trust is separate from skill availability. Changed definitions need another review. Only installed Codex plugins in the setup environment are listed here.

+ ${view.error ? html`` : ''} + ${view.message ? html`

${view.message}

` : ''}${view.loading ? html`

Reading plugin hooks…

` : renderHooks()} + ${(view.data?.warnings || []).map(warning => html`

${warning}

`)} +
${view.pluginId ? html`` : ''}
` }); + window.addEventListener('beforeunload', beforeUnload); + view.layer.panel.addEventListener('click', event => { + const button = event.target.closest('button'); if (!button || button.disabled) return; + if (button.hasAttribute('data-hooks-close')) close(); + else if (button.hasAttribute('data-hooks-refresh')) void load(); + else if (button.hasAttribute('data-hooks-all')) { view.pluginId = null; paint(); } + else if (button.dataset.hookAction) void change(button.dataset.hookId, button.dataset.hookAction); + }); + void load(); + }; + return { open, close }; + }; + return { create }; +})(); diff --git a/docker/setup/client/skill-inspector.js b/docker/setup/client/skill-inspector.js index f4c3dbce..cd333b30 100644 --- a/docker/setup/client/skill-inspector.js +++ b/docker/setup/client/skill-inspector.js @@ -78,7 +78,7 @@ const T3SkillInspector = (() => {
${view.error ? html`` : ''} ${creating ? html`

Other agents may read this folder too. Shared file changes affect everyone using it.

Lowercase letters, numbers and hyphens. The frontmatter name must match.

` : html`

${skill.description}

${renderAvailability()}${renderLocations()}${renderFiles()}`} - ${renderEditor()} + ${!creating && !view.editing && row()?.byProvider?.codex?.pluginId ? html`
Plugin hooks

Hook trust is separate from skill availability. Approval applies to this Codex plugin and all its skills.

` : ''}${renderEditor()}
${footer()}
` }); window.addEventListener('beforeunload', beforeUnload); const syncEditor = () => { @@ -109,6 +109,7 @@ const T3SkillInspector = (() => { if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === 's' && view.editing) { event.preventDefault(); view.layer.panel.querySelector('[data-inspect-save]')?.click(); } }); const act = async (action, button) => { + if (action === 'data-inspect-hooks' && !view.saving && !view.loading) { getLibrary().reviewHooks(row()?.byProvider?.codex?.pluginId); return; } if (action === 'data-inspect-rescan') { if (await view.close('refresh')) await refresh(); return; } if (action === 'data-inspect-menu') { Kit.menu(button, { label: 'Skill actions', items: [ diff --git a/docker/setup/client/skills.js b/docker/setup/client/skills.js index 205018aa..cc15307d 100644 --- a/docker/setup/client/skills.js +++ b/docker/setup/client/skills.js @@ -11,7 +11,8 @@ const T3SkillsUI = (() => { const columns = () => S.providers.filter(provider => showAll || installed.includes(provider.id)); const roots = () => S.rootsFor(inventories, reach); const library = () => ({ rows, inventories, errors, roots: roots(), installed, home: reach?.home || getStatus()?.paths?.volume, - install: options => importer.open(options) }); + install: options => importer.open(options), reviewHooks: pluginId => hooks.open(pluginId) }); + const hooks = T3SkillHooks.create({ api }); const inspector = T3SkillInspector.create({ api, getLibrary: library, getStatus, availability: (...args) => availability(...args), refresh: () => loadAll(true), readMarkdown, downloadMarkdown }); const importer = T3SkillImport.create({ api, getLibrary: library, refresh: () => loadAll(true), showInLibrary: names => { highlighted = new Set(names); query = ''; agent = ''; needsAttention = false; paint(); @@ -126,7 +127,7 @@ const T3SkillsUI = (() => { ${problems.length ? html`` : ''}
${problems.slice(0, 3).map(attentionNotice)}${problems.length > 3 ? html`` : ''}${inventoryNotices()}
${!rows.length && scanning ? html`
${[1, 2, 3, 4].map(i => html`
${i === 1 ? 'Reading skills across your agents…' : ''}
`)}
` : !filtered.length ? html`
${icon('sparkles')}${rows.length ? 'No skills match these filters' : failed ? 'Skills couldn’t be read' : 'No skills yet'}${rows.length ? 'Try another search, agent or attention filter.' : failed ? 'Some agent inventories are unavailable. Retry the scan to check for skills.' : 'Add one, or install some from a source.'}
${rows.length ? html`` : failed ? html`` : actions()}
` : html`${table(filtered)}${phoneList(filtered)}`} -
${icon('info', 'tc-icon--sm')}Changes apply to new sessions. A project’s own settings can still turn a skill off.${scanning ? 'Scanning…' : Number.isFinite(scannedAt) ? 'Scanned ' + M.relTime(scannedAt, Date.now()) : ''}
+
${icon('info', 'tc-icon--sm')}Changes apply to new sessions. A project’s own settings can still turn a skill off.${installed.includes('codex') ? html`` : ''}${scanning ? 'Scanning…' : Number.isFinite(scannedAt) ? 'Scanned ' + M.relTime(scannedAt, Date.now()) : ''}
${actions()}
`; }; const menu = (key, trigger) => { @@ -143,7 +144,8 @@ const T3SkillsUI = (() => { content: () => html`
${markup || (markup = body())}
`, actions, activate: navigation => { if (!started || navigation && installed.join() !== S.providers.filter(provider => getStatus()?.harnesses?.some(row => row.id === provider.id && row.installed)).map(provider => provider.id).join()) return loadAll(); }, count: () => rows.length, refresh: () => loadAll(true), setState, policyMenu, menu, - beforeNavigate: () => importer.closeForNavigation() ? inspector.close('route') : false, + beforeNavigate: () => hooks.close() && importer.closeForNavigation() ? inspector.close('route') : false, + hooks: () => hooks.open(), view: (id, editing = false) => inspector.open(id, editing), add: async () => { if (!started) await loadAll(); if (!Object.values(inventories).some(inventory => inventory.canCreate)) await loadProvider('claude'); diff --git a/docker/setup/console.css b/docker/setup/console.css index 0629ef84..cb36ec19 100644 --- a/docker/setup/console.css +++ b/docker/setup/console.css @@ -944,6 +944,13 @@ html.tc-locked { overflow: hidden; } .tc-layer--sheet > .tc-skill-inspector { width: min(520px, calc(100vw - 16px)); } .tc-insp-head, .tc-insp-foot { flex: none; } .tc-insp-foot { flex-wrap: wrap; } +.tc-hook { padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; } +.tc-hook-head, .tc-hook-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); } +.tc-hook-head strong { font-size: 13px; font-weight: 500; } +.tc-hook-command { display: block; white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/20px var(--font-mono); background: var(--surface-sunken); border: 1px solid var(--hairline); border-radius: var(--radius-md); padding: var(--space-3); margin-top: var(--space-2); } +.tc-hook .tc-pathlist { border: 0; padding: 0; } +.tc-skill-hooks .tc-hook-actions .tc-btn { min-height: 44px; } +.tc-skill-hooks .tc-notice-desc { color: var(--danger-text); } .tc-insp-foot > .tc-hint { display: inline-flex; align-items: flex-start; gap: var(--space-2); } .tc-insp-body { min-height: 0; overscroll-behavior: contain; } .tc-insp-body .tc-editor-area { min-height: 320px; width: 100%; resize: vertical; font: 400 12px/20px var(--font-mono); } diff --git a/docker/setup/page.mjs b/docker/setup/page.mjs index b15edde4..d8ccfe1e 100644 --- a/docker/setup/page.mjs +++ b/docker/setup/page.mjs @@ -31,6 +31,7 @@ export const CONSOLE_SCRIPTS = [ "client/skill-model.js", "client/skill-inspector.js", "client/skill-import.js", + "client/skill-hooks.js", "client/skills.js", "app.js", ]; diff --git a/docker/setup/server.mjs b/docker/setup/server.mjs index d8dd2cf9..939f4fd7 100644 --- a/docker/setup/server.mjs +++ b/docker/setup/server.mjs @@ -2150,7 +2150,7 @@ const ROUTES = ["/login", "/logout", "/hello", "/status", "/pair", "/revoke", "/ "/toolchains/install", "/toolchains/update", "/toolchains/uninstall", "/toolchains/cancel", "/auth/apikey/remove", "/auth/apikey", "/auth/signin", "/auth/session", "/auth/code", "/auth/cancel", "/source-control/signin", "/source-control/signout", - "/providers", "/updates/check", + "/providers", "/updates/check", "/context/skills/hooks", "/context/skills/hooks/state", "/packages/install", "/packages/update", "/packages/uninstall", "/packages/cancel", "/packages/registry", "/packages/versions", "/packages/info", "/context/agents-md", "/context/skills/reach", "/context/skills/read", "/context/skills/create", "/context/skills/save", "/context/skills/remove", "/context/skills/state", "/context/skills/source", "/context/skills/plan", "/context/skills/install", "/context/skills/discard", "/context/skills"]; @@ -2637,24 +2637,25 @@ const server = createServer(async (req, res) => { } // Skill discovery is on demand, never part of /status polling. - if (req.method === "GET" && (route === "/context/skills" || route === "/context/skills/read" || route === "/context/skills/reach")) { + if (req.method === "GET" && (route === "/context/skills" || route === "/context/skills/read" || route === "/context/skills/reach" || route === "/context/skills/hooks")) { try { const params = raw.searchParams; - const result = route === "/context/skills/reach" ? await skillsService.reach({ refresh: params.get("refresh") === "1" }) : route === "/context/skills/read" + const result = route === "/context/skills/hooks" ? await skillsService.listHooks() : route === "/context/skills/reach" ? await skillsService.reach({ refresh: params.get("refresh") === "1" }) : route === "/context/skills/read" ? await skillsService.read(params.get("provider"), params.get("id")) : await skillsService.list(params.get("provider"), { refresh: params.get("refresh") === "1" }); return sendJson(res, 200, result); } catch (error) { - const status = { invalid: 400, missing: 404, ENOENT: 404, conflict: 409, too_large: 413 }[error?.code] || 500; + const status = { invalid: 400, missing: 404, ENOENT: 404, conflict: 409, too_large: 413, unsupported: 403 }[error?.code] || 500; return sendJson(res, status, { ok: false, code: error?.code || "unavailable", error: String(error?.message || "Skill discovery is unavailable.").slice(0, 300) }); } } - if (req.method === "POST" && ["/context/skills/create", "/context/skills/save", "/context/skills/remove", "/context/skills/state", "/context/skills/source", "/context/skills/plan", "/context/skills/install", "/context/skills/discard"].includes(route)) { + if (req.method === "POST" && ["/context/skills/create", "/context/skills/save", "/context/skills/remove", "/context/skills/state", "/context/skills/source", "/context/skills/plan", "/context/skills/install", "/context/skills/discard", "/context/skills/hooks/state"].includes(route)) { try { const input = JSON.parse((await readBody(req, 6 * 64 * 1024 + 4096)) || "{}"); if (!input || typeof input !== "object" || Array.isArray(input)) return sendJson(res, 400, { ok: false, error: "Expected a skill operation object." }); - const result = route === "/context/skills/source" ? await skillsService.previewSource(input.source) + const result = route === "/context/skills/hooks/state" ? await skillsService.setHook(input.id, input.revision, input.action) + : route === "/context/skills/source" ? await skillsService.previewSource(input.source) : route === "/context/skills/plan" ? await skillsService.planImport(input.previewId, input.skills, input.providers) : route === "/context/skills/install" ? await skillsService.installImport(input.previewId, input.planId, input.replace) : route === "/context/skills/discard" ? await skillsService.discardImport(input.previewId) @@ -2662,7 +2663,7 @@ const server = createServer(async (req, res) => { : route === "/context/skills/save" ? await skillsService.save(input.provider, input.id, input.revision, input.content) : route === "/context/skills/state" ? await skillsService.setState(input.provider, input.id, input.stateRevision, input.enabled, input.state) : await skillsService.remove(input.provider, input.id, input.revision, input.removalRevision); - if (!["/context/skills/source", "/context/skills/plan", "/context/skills/discard"].includes(route)) recordEvent("context.saved", route === "/context/skills/install" ? "Imported local skills; review individual installation results" : route === "/context/skills/remove" ? "Removed a local skill installation" : route === "/context/skills/state" ? "Changed native skill availability" : "Saved a local skill"); + if (!["/context/skills/source", "/context/skills/plan", "/context/skills/discard"].includes(route)) recordEvent("context.saved", route === "/context/skills/hooks/state" ? "Changed a Codex plugin hook setting" : route === "/context/skills/install" ? "Imported local skills; review individual installation results" : route === "/context/skills/remove" ? "Removed a local skill installation" : route === "/context/skills/state" ? "Changed native skill availability" : "Saved a local skill"); return sendJson(res, 200, result); } catch (error) { const status = { invalid: 400, missing: 404, ENOENT: 404, conflict: 409, EEXIST: 409, too_large: 413, unsupported: 403, EACCES: 403, EPERM: 403 }[error?.code] || (error instanceof SyntaxError ? 400 : 500); diff --git a/docker/setup/skills.mjs b/docker/setup/skills.mjs index 7a4287d3..0c19f38f 100644 --- a/docker/setup/skills.mjs +++ b/docker/setup/skills.mjs @@ -10,6 +10,7 @@ import { createSkillFileManager, skillRevision } from "./skills/files.mjs"; import { createSkillPolicies } from "./skills/policies.mjs"; import { createSkillImporter } from "./skills/imports.mjs"; import { skillReach } from "./skills/reach.mjs"; +import { createPluginHookService } from "./skills/hooks.mjs"; const PROVIDERS = Object.freeze({ claude: "Claude Code", codex: "Codex", opencode: "OpenCode", cursor: "Cursor", grok: "Grok Build", muse: "Muse Code", antigravity: "Antigravity" }); const DEFAULT_LIMITS = { entries: 2048, skills: 256, depth: 8, bytes: 4 * 1024 * 1024, fileBytes: 64 * 1024, milliseconds: 3000 }; @@ -145,7 +146,7 @@ export async function scanSkillFiles(provider, options) { return { skills: [...rows.values()], roots, warnings: [...warnings] }; } -export function createSkillsService({ home, env = process.env, io = fs, nativeCodex = listCodexSkills, nativeCodexWrite = writeCodexSkillConfig, inspectClaude, inspectOpenCode, getHarness = async () => null, ttlMs = 15000, limits, resolveSource } = {}) { +export function createSkillsService({ home, env = process.env, io = fs, nativeCodex = listCodexSkills, nativeCodexWrite = writeCodexSkillConfig, nativeCodexHooks, nativeCodexHookWrite, inspectClaude, inspectOpenCode, getHarness = async () => null, ttlMs = 15000, limits, resolveSource } = {}) { home = path.resolve(home || env.HOME || "/home/t3"); const cache = new Map(); const policies = createSkillPolicies({ home, env, io, getHarness, inspectClaude, inspectOpenCode, invalidate: () => cache.clear() }); @@ -173,7 +174,7 @@ export function createSkillsService({ home, env = process.env, io = fs, nativeCo const resolvedPath = await io.realpath(entry.path).catch(() => null); byPath.set(entry.path, { ...previous, id: idFor(provider, entry.path), path: entry.path, resolvedPath, name: entry.name.slice(0, 256), description: entry.description.slice(0, 2048), scope: entry.scope, - source: entry.pluginId ? "Plugin" : entry.scope === "system" ? "System" : entry.scope === "admin" ? "Admin" : previous?.source || "Codex", + source: entry.pluginId ? "Plugin" : entry.scope === "system" ? "System" : entry.scope === "admin" ? "Admin" : previous?.source || "Codex", pluginId: typeof entry.pluginId === "string" ? entry.pluginId.slice(0, 256) : null, state: entry.enabled ? "enabled" : "disabled", native: true, error: previous?.error || (!resolvedPath ? "This skill's local file is unavailable." : null), }); @@ -278,5 +279,6 @@ export function createSkillsService({ home, env = process.env, io = fs, nativeCo .then(result => { entry.pending = false; entry.at = Date.now(); return { ...result, home }; }, error => { cache.delete(key); throw error; }); cache.set(key, entry); return entry.promise; }; - return { list, read, reach, setState, create: fileManager.create, save: fileManager.save, remove: fileManager.remove, ...importer }; + const hooks = createPluginHookService({ home, env, io, getHarness, nativeList: nativeCodexHooks, nativeWrite: nativeCodexHookWrite }); + return { list, read, reach, setState, create: fileManager.create, save: fileManager.save, remove: fileManager.remove, ...importer, ...hooks }; } diff --git a/docker/setup/skills/codex.mjs b/docker/setup/skills/codex.mjs index fc21c7a0..f8e52049 100644 --- a/docker/setup/skills/codex.mjs +++ b/docker/setup/skills/codex.mjs @@ -1,7 +1,7 @@ // Native metadata/settings exchanges. No thread, turn, prompt or model call. import { spawn } from "node:child_process"; -function codexRequest({ executable, home, env = process.env, timeoutMs = 6000, maxBytes = 2 * 1024 * 1024, spawnImpl = spawn }, method, params) { +function codexRequest({ executable, home, env = process.env, timeoutMs = 6000, maxBytes = 2 * 1024 * 1024, spawnImpl = spawn, experimentalApi = false }, method, params) { return new Promise((resolve, reject) => { let child, timer, settled = false, buffer = "", bytes = 0, stage = "initialize"; const finish = (error, result) => { @@ -46,6 +46,7 @@ function codexRequest({ executable, home, env = process.env, timeoutMs = 6000, m send({ id: 2, method, params }); } else if (stage === "request" && message.id === 2) { if (message.error || !message.result || typeof message.result !== "object" || Array.isArray(message.result)) { + if (experimentalApi) return finish(Object.assign(new Error(method === "config/batchWrite" ? "Codex could not save hook settings. Refresh and review the hooks again." : "This Codex version could not read plugin hooks and their settings."), { code: method === "config/batchWrite" ? "conflict" : "unsupported" })); return fail(method === "skills/list" ? "This Codex version could not list skills." : "Codex could not save skill availability. Refresh to check its current state."); } finish(null, message.result); @@ -55,7 +56,7 @@ function codexRequest({ executable, home, env = process.env, timeoutMs = 6000, m } } }); - send({ id: 1, method: "initialize", params: { clientInfo: { name: "t3-setup-skills", version: "1.0.0" } } }); + send({ id: 1, method: "initialize", params: { clientInfo: { name: "t3-setup-skills", version: "1.0.0" }, ...(experimentalApi ? { capabilities: { experimentalApi: true } } : {}) } }); } catch { fail("Could not start Codex skill discovery."); } @@ -76,3 +77,25 @@ export async function writeCodexSkillConfig(options) { } return result; } + +export async function listCodexHooks(options) { + const native = { ...options, experimentalApi: true }; + const result = await codexRequest(native, "hooks/list", { cwds: [options.home] }); + const entry = result.data?.find?.(item => item?.cwd === options.home); + if (!entry || !Array.isArray(entry.hooks) || !Array.isArray(entry.errors) || !Array.isArray(entry.warnings)) throw new Error("Codex returned an incomplete hook inventory."); + const config = await codexRequest(native, "config/read", { includeLayers: true }); + const user = config.layers?.find(layer => layer.name?.type === "user" && [options.configPath, options.resolvedConfigPath].includes(layer.name.file)); + if (!user || typeof user.version !== "string") throw new Error("Codex could not verify the user hook settings revision."); + return { ...entry, configVersion: user.version }; +} + +export async function writeCodexHookConfig(options) { + const key = "hooks.state." + JSON.stringify(options.key); + const edits = options.action === "trust" ? [{ keyPath: key + ".trusted_hash", value: options.currentHash, mergeStrategy: "replace" }] + : [{ keyPath: key + ".enabled", value: options.action === "enable", mergeStrategy: "replace" }]; + const result = await codexRequest({ ...options, experimentalApi: true }, "config/batchWrite", { + edits, filePath: options.resolvedConfigPath, expectedVersion: options.configVersion, + }); + if (result.status !== "ok" || result.filePath !== options.resolvedConfigPath) throw new Error("Codex did not confirm the hook setting. Refresh to check its state."); + return result; +} diff --git a/docker/setup/skills/hooks.mjs b/docker/setup/skills/hooks.mjs new file mode 100644 index 00000000..51520c37 --- /dev/null +++ b/docker/setup/skills/hooks.mjs @@ -0,0 +1,65 @@ +// Review installed Codex plugin hooks through native metadata, never by running them. +import path from "node:path"; +import { createHash } from "node:crypto"; +import { listCodexHooks, writeCodexHookConfig } from "./codex.mjs"; +import { codexConfigPath, configSnapshot, serializeState } from "./state.mjs"; + +const fail = (code, message) => Object.assign(new Error(message), { code }); +const digest = value => createHash("sha256").update(value).digest("hex"); +const text = (value, limit) => typeof value === "string" && value.length <= limit; + +export function createPluginHookService({ home, env, io, getHarness, nativeList = listCodexHooks, nativeWrite = writeCodexHookConfig }) { + const settings = codexConfigPath(home, env); + const load = async () => { + const harness = await getHarness("codex"); + if (!harness?.runnable || !harness.executable) throw fail("unsupported", "Install Codex to review its plugin hooks."); + const before = await configSnapshot(settings, io, true); + const options = { executable: harness.executable, home, env, configPath: settings, resolvedConfigPath: before.resolvedPath }; + const native = await nativeList(options); + if (before.revision !== await configSnapshot(settings, io)) throw fail("conflict", "Codex settings changed while reading hooks. Refresh and review them again."); + if (!Array.isArray(native.hooks) || native.hooks.length > 256 || !text(native.configVersion, 256) || !Array.isArray(native.errors) || !Array.isArray(native.warnings)) throw fail("unavailable", "Codex returned an incomplete or oversized hook inventory."); + // A partial inventory cannot authorize writes: a source may have failed to load. + if (native.errors.length) throw fail("unavailable", "Codex reported hook discovery errors. Resolve them in Codex before reviewing plugin hooks here."); + const hooks = [], seen = new Set(); + for (const hook of native.hooks) { + if (hook.source !== "plugin") continue; + if (!text(hook.pluginId, 256) || !hook.pluginId || !text(hook.key, 8192) || !hook.key || !text(hook.eventName, 128) + || !text(hook.sourcePath, 8192) || !path.isAbsolute(hook.sourcePath) || !/^sha256:[a-f0-9]{64}$/.test(hook.currentHash) + || !["trusted", "untrusted", "modified", "managed"].includes(hook.trustStatus) || typeof hook.enabled !== "boolean" || typeof hook.isManaged !== "boolean" + || !["command", "mcpTool", "prompt", "agent"].includes(hook.handlerType) || hook.handlerType === "command" && (!text(hook.command, 65536) || !hook.command.trim()) + || hook.matcher !== null && !text(hook.matcher, 8192) || !Number.isSafeInteger(hook.timeoutSec) || hook.timeoutSec < 0 + || hook.handlerType === "command" && typeof hook.async !== "boolean" || seen.has(hook.key)) throw fail("unavailable", "Codex returned unrecognized plugin hook metadata."); + seen.add(hook.key); + const row = { id: digest(hook.key).slice(0, 32), pluginId: hook.pluginId, eventName: hook.eventName, sourcePath: hook.sourcePath, + handlerType: hook.handlerType, command: hook.handlerType === "command" ? hook.command : null, matcher: hook.matcher, + timeoutSec: hook.timeoutSec, async: hook.async === true, enabled: hook.enabled, trustStatus: hook.trustStatus, isManaged: hook.isManaged, + readOnlyReason: hook.isManaged || hook.trustStatus === "managed" ? "Managed by Codex policy." : hook.handlerType !== "command" ? "Review this hook type in Codex; its full definition is not available here." : null }; + row.revision = digest(JSON.stringify([before.revision, hook])); + hooks.push({ ...row, key: hook.key, currentHash: hook.currentHash }); + } + return { hooks, options, configVersion: native.configVersion, configRevision: before.revision, + warnings: native.warnings.filter(warning => text(warning, 2048)).slice(0, 30) }; + }; + const publicInventory = inventory => ({ ok: true, provider: "codex", hooks: inventory.hooks.map(({ key, currentHash, ...hook }) => hook), warnings: inventory.warnings }); + const listHooks = async () => publicInventory(await load()); + const setHook = async (id, revision, action) => { + if (typeof id !== "string" || !/^[a-f0-9]{32}$/.test(id) || !["trust", "enable", "disable"].includes(action)) throw fail("invalid", "Choose a discovered plugin hook and a supported action."); + if (typeof revision !== "string" || !/^[a-f0-9]{64}$/.test(revision)) throw fail("conflict", "Refresh and review the hook before changing it."); + const resolved = await io.realpath(settings).catch(() => settings); + return serializeState(resolved, async () => { + const fresh = await load(), hook = fresh.hooks.find(row => row.id === id); + if (!hook) throw fail("missing", "This plugin hook is no longer installed. Refresh the list."); + if (hook.revision !== revision) throw fail("conflict", "The hook or Codex settings changed. Refresh and review the new definition."); + if (hook.readOnlyReason) throw fail("unsupported", hook.readOnlyReason); + if (action === "enable" && hook.trustStatus !== "trusted") throw fail("conflict", "Review and trust the current definition before enabling this hook."); + if (fresh.configRevision !== await configSnapshot(settings, io)) throw fail("conflict", "Codex settings changed. Refresh and review the hook again."); + await nativeWrite({ ...fresh.options, configVersion: fresh.configVersion, key: hook.key, currentHash: hook.currentHash, action }); + const verified = await load(), updated = verified.hooks.find(row => row.id === id); + if (!updated || updated.currentHash !== hook.currentHash || (action === "trust" ? updated.trustStatus !== "trusted" || updated.enabled !== hook.enabled : updated.enabled !== (action === "enable") || action === "enable" && updated.trustStatus !== "trusted")) { + throw fail("conflict", "The setting may have been saved, but the hook changed or its state could not be verified. Refresh before continuing."); + } + return publicInventory(verified); + }); + }; + return { listHooks, setHook }; +} diff --git a/docs/context-management.md b/docs/context-management.md index af9e1b74..5009de7c 100644 --- a/docs/context-management.md +++ b/docs/context-management.md @@ -383,6 +383,30 @@ do not support compare-and-swap, so an external writer can still race the last check. Start a new conversation after changing availability: loaded instructions can remain in existing conversations, and project/session settings may differ. +### Codex plugin hook review + +In Skills, **Plugin hooks** opens the installed Codex plugins' automatic commands. +An installed plugin skill also has **Review plugin hooks** in its inspector. +Each hook shows its event, complete command, source path, matcher and timeout, +with separate trust and enabled states. Importing skill folders adds instructions; +it does not install a plugin or its lifecycle hooks. + +**Review and trust** asks for consent to the displayed command. It records trust +for the current native hook definition; a disabled hook stays disabled until +you choose **Enable hook**. You can also disable a hook without changing its +trust. Start a new Codex session after changing these settings. Hooks run with +your container user's access and apply to the plugin, including all its skills. + +The console uses Codex's experimental `hooks/list` and native config APIs. It +never starts a thread, executes a hook or bypasses hook trust. Changes check the +reviewed definition and settings revision, use Codex's config version check, +then verify the result. Changed definitions require another review. Managed +hooks and hook types whose complete action is unavailable through native +metadata stay read-only. Discovery errors and unsupported Codex versions show +an error with a refresh action; no trust is inferred from skill availability. +Only global installed-plugin hooks in the setup environment are managed here; +project, user-defined and session-specific hooks remain in Codex's `/hooks` UI. + ### Claude visibility and OpenCode permissions Claude's **Visibility** menu, in each skill's row, preserves all four native `skillOverrides` states: @@ -483,12 +507,19 @@ node scripts/skills-policy-smoke.mjs opencode /absolute/path/to/opencode node scripts/skills-import-smoke.mjs claude /absolute/path/to/claude node scripts/skills-import-smoke.mjs codex /absolute/path/to/codex node scripts/skills-import-smoke.mjs opencode /absolute/path/to/opencode +node scripts/skills-hooks-smoke.mjs /absolute/path/to/codex ``` Claude 2.1.302 and OpenCode 1.19.3/2.0.31 passed native policy checks for every supported state, conflicts, fresh-process persistence and untouched skill content. OpenCode checks also verify comment preservation. Image smoke tests run these -scripts against the packaged modules and managed binaries. The import smoke +scripts against the packaged modules and managed binaries. The hook smoke installs +a local fixture plugin in a disposable home and checks trust, enablement, changed +definitions, restart persistence and symlinked settings without running a hook. +`node scripts/skills-hooks-ui-audit.js http://127.0.0.1:23785/__setup/ dev` +checks consent, stale/failed reads and writes, keyboard focus, long untrusted +commands and the inspector link in light/dark phone, desktop and embedded layouts. +The import smoke checks install supporting files, change a native policy, update the complete folder without changing that policy, verify discovery in a fresh process and remove the installation. Claude 2.1.302, Codex 0.163.0 and OpenCode 1.19.3/2.0.32 passed diff --git a/docs/media/skills/hooks-desktop-dark.png b/docs/media/skills/hooks-desktop-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f8e66942295d0c68a1494775ff705d03b1dcfaa3 GIT binary patch literal 142394 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

@o_tE-Pa$Uc?7B%OwyXfgEOr|E8gZn0u1 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¯_tN_P@_7ASt1cVrL5G$qLzI$#d4i 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%0DpM^DUI?Tz;~l$*@}6R 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 bF%jXCL{w+KA!SoRpCu=yELkUR`uhI?@G%{> literal 0 HcmV?d00001 diff --git a/docs/media/skills/hooks-desktop-light.png b/docs/media/skills/hooks-desktop-light.png new file mode 100644 index 0000000000000000000000000000000000000000..46071895b372e2e1c247ac54eaa956a9c67406b0 GIT binary patch literal 188102 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

a`P^d+%-yj&yta%rNlQA^D5h@Y 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 literal 0 HcmV?d00001 diff --git a/docs/media/skills/hooks-phone-dark.png b/docs/media/skills/hooks-phone-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..db99ba0cc0b95190f3fa066b8b68ceb32ad25551 GIT binary patch literal 48189 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 Rli@4ZWF?MT#ID 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

+TAB5@_Y1isC0pD;>9o1a zd;UiA)0Cn@z*9@4f_S8t{ye(Z4kPc+Ke&A-nAVnG6K0H0&f8Yzdizxm|LpDWce2jb zy^TNHpDA%=UiBlbtxsyXcYJak?D0X&>v?DF>(w?N@;1`h41T-UyR*_~R5}(JXN#R| zMFqeyw=Dy8;BvB+!gEC}0Z-~190jXL?{^$llq6RJ{#2E>|L~JQvOqI3^PGR2g*%O3 z+S+!0KAP{a;y}8yO0JVFMaFKemr{Dqs(ziXmN|ye8Z+>ogTMlF zGLne=Jz6kY;H?wvS)v^J8qNmHi8j_GCbdER>Yam8OcGAtL=MDaU}rdyf1M(R%iFhp zxaM6suk62W=&!m<%ukdj=>a$THR3XKq$AW+Pj`52XNTe4&3oTlikqD;B&xI8OO?z` zTPg$d$!d(&4f~U$)?a1Ew|fRqN5Sz4PEfoLt#2f(3$?5ZFY_eI9#Bx2ASCYF|KY*v zH>h7EUA0STF1C=cGrwx*;EqRCZPPqGFK24b@5k4{PFzN@1~k?>!Pyz+%_Es&>=ztdFI^=C>r<=#BW4y2@JE@%U{i zynXu%bT5f1_+5o+_C2+E4pTp*=|wq%2HMeyDuTTgxzV%$p7T zy9wB@Yip;hGG6q?B@gY58*|vdE4Se2D0_#AKp-Ax&VA3ue-Nh7Jx&LRCb6qAH({O%zJg4sKg z0j-efd!CjxWe!n|Bk;KrhVe{8#6MPk1m5VcD7ngJ zgA?a3Yn5b?Z!-P^p$a*LJ7WI!+Z2j8^GZP@yW86wd}_8|QfuwmFJKpJU*WTx#ier{ z&KjwDEIoYntCuHK215lG!rOMPVBk|39t zg88Z$6Ysp1UI7dFjvO*?usLpNU#2+D&TU$DAPOwHg#8pyBlR+<^4R(A$O*Uck+zmd zotM4lyWL-0Er6%PMkNFSlk}&4j2No@r)d#Aov_gZjKl~OVGvv>Yo*5j;d9Ad6fcKq z?6Ta0ZdyY}Zh_{>jCd?NKbX~exrzI0B|nQnAw-|%Mf|C6s=kO5T?S5;&y#eaq4Iri z;yYHvnHY3PPWQ&KU;Vp0k&!%$(5ai1K9bOf#_tyxo;4UnP}?I(lcyjwLTeRf9~q}N zd_G9^C&Ki5Y{5rgO0gJ~TI>ApRye!}pyk$=Fs#9x?he_&s87t7cH8G7#&R_^C?=GL z`*8CnRDlhBGvJIO!)5*)jiTZ`2RW09rR(#NEXm^b5H&0+F+U#}l-1y~B3AA1Y9IJ8 z+tK{$Hb&RXcNQ`#-%RzZ$Z`j0^!zT>D)FcJPKS@o1k%d9If~C`@8A=7XYvF_iG8b?;2<6#oMvnebuH#lT5C+fLGmi-~8Gg zFNtSPL}blBKeAhMaB$GRNX&B&w>g#Hj+1w+HnkR*R+mL#1#7 zyBv3n8ijZl)q2NnPdi za+j_DF>g`-Z{WE%zhYa!G7;M^98&IZpFMWXSi4A;S;gulcmb(4!QLo5)fmbDRQjF?Qjqnwf0&Mo#e2s2ZZgl=ccXxZVZ`D zB${m{y9}!wGUtFUU_;~et`*nXp45JJ^x|{}2~Gn{lEG-%&hhc_{_zPy5B8kLpXl|R zVsqhE0twN5U-9qXF<2M$&G!0Z3Nw-;?+0**7!yl${X`hBE{uRPd*B{;5%>5_A;2@A zo39%)l>%_!_=~bXmgU9K@Kx*}8t$eGI9GbaX^9L)|z!nD6#51ZE*1ffs z5SxEVA@0qnmO;Tx{EU z9QuU{v3I1VOg`=a*yU*OJaUEnRFQuQ0mIx+TR zL!8^LKnt4z#k} zN!6QF5DW6uGP8j&=l+&aa>y_)VA^){;St+fPb|?ckn8TP{wvJLsBt#yY-p{%w?#WY z_0}hlHGTP{53J|a1&*PC!F~R(@qkDyjtav`xY&O^$ngIKoY;>!@mm>~bt_vF5e4ae ze@o5t;fGIWOI!Cc%*QP(T^_38ToZ9mKUye;y_`zSv#ou}5diH-<|W%(;AI1DM|=(D z87q2rMapBAwbtx&vkx0RFtOPKAYIPSEw{b%{kRY766T`pdt|(M-8SIDkX~zNP>G{Q z9B&5C$i@)3+!GwZZ@@x}@$Mv%n~r*LF__sLDb*o-PIHqXii*%k;eA!4mH!-I#m%+w z671@GTMu6-OcgytnvU?fc@UKb1IpK@y;ndxTwh<;Ji;}`5_F3;#kCm9cviy&Fmkr) z4UU|0l}!rJk^QH-EzfH9tjBG`>rn(pG%gQ#tj|Oj3*JU~=8)~iItg7~Zj`$p%SGOF zgb{#{NKaeE9V%oK#eiOqXZF+Vxm5HSWh4wnn`2*iZCt1AG6?v=`tYMY__({ku*vg* z+OjZm)cr?j=9n051U#~H4Q|opL_zZvsK zUI6?CM%A;$m-6JqSw8y1RshY`Qb-@+ki>pha=*~>cruqUr|WH+?b?65t-)uJRN8RE z@XlM(RK-ERxD0B3^mC&0Q!|rUjTMHY+`WRzo_9shcn#~E-Zi60OB_6UJqRz_f)blI z1JNH;_ZpYo8#fOhVFYbWe7VJdh`kBdWp;gF8$vx#C9E~TqkVU((psFC(-lB?TN>5F zT&_vFMDKa|8D0 zHufM-dWHEar;QKEJmzf!-ObV=C$jwE%D5*jHX}KBe{Uxh{WjNA4s>G1{@(GI$JL%n zS63H{$&}ePC-7`R%^)nBN751*vLWh4HLlIDv{VAruMzr#ny;AtXV?!-J3= zHgFrVq)25@Y@*Bb#F5J&_=1bS)DdP_ZF>wm(Y{_$=RNe53o51iSyf3NX@P)ltMPqg zYvI@j{6Q8^vZ0=vI(rw{0a#x24zviuFU}MncU9n@KWf93Xx@)#bmP@SVRuH6FI67d zCLP9wufw`%SZc4I3$_RmnRiNv-nOskX4Du~Q<0L?%k^AR9XyI>*C$eRBZnno>Q53` zS6uDdneFXMxHNLmCZoj`^p%!oO(WrbL#e*?&JVf0N#aSa`R^9A@0sG&o|&GZ3KL}v zre^bMdz~gXf6vaI7Ct4mc=AbUrG)qci8XI(0;|Ky_qS+5lL05~;eNJa-j|Wh408!T zE}z653~HoV9&Gs9`bmb@P=3Y3ET7gN7kDged+^|#@YLi*ju$ph2qJ{LY5)Cy-4pex zJ`KE%2j_k%0~`y}`vIgp6vIyz1h|J~?hu~t$J<1{W;n2x!I4;{J|gw^_P+My^@%WS z)!5S94=zvsz3yr8i1Y}khR%xCp20-6R99h|+fE73_Y|5gXc^J(V!ep6(?YrNe}x;3 zy927f2d1z}Sxjl52kL+0fX&?kT4)HVJFLgzuOyuY$bFnYH>5cLX_uziGw7q~@ zVpvL?ZOv}0P*8P4L$Iw`08ibm-^TW}=z-VeGP(J4neF=s+2o335zjeoUPBtWV&%q$ zrtI#s$j%~1L@E0RDV%mrHg#&8B83`OtJK?)7q}PgoA*-QH!%1ZposdHRJ|U>O6Qv0 zGtL;Dn0VIknQqSV-YK@|t<&#LTKQ{>#gBqSr;xdy1Y))2GjQve<}3IkEV!HFb1%#9 z)Oew7qI2=|2VTdLe5#4hO(`T|`rs*)rA@l27wAgJH7V*`GJ%NS?a8k}rQ_Xs*cn11 zM^9{};0uq7=v4egmn2Jq-IY-kuWB&m2lo?-tv*e1|0kE0J;9W?Z>k7VZJ^`KM7 ze$TTUBCvRWfR9e~emjoUe!;yt>UU(j4=x#zdusn|+9A_njQ2dyJTpGHM>^urQH8+R z>Dw4>3r_oNB9kWU64qSdu*aNJVv1J8{1ePGB-Dlu2;!O6O}1QxGDB=X8`XqbU*)zR(9mw$KP60R4& z-_G_m9`D5&I=MM*nq4VHrS&qVK$rTD+^~Tc@maqho+&(XDT@2v_b9o{e6v-sZhc)cD|yngzcuATN|9Np-RGEzw|N(d3Wwh$ z(d4A92KNRzUNw1#@Ix3AZSGi!Y5LngRax~vausJjYw2IBtKgkKiCfi}-g=4%+xp8vJH; zDPbO2CExk*v?wGGiC*Tmw-L$;BtbRds1_SGTD;FM=jzGR36ntkg!t1C94+e7S8*NEdoe zb+K?YG`NkDxb(`}d{>AIioh5ci=&d)!o zq%=IQ3?Eq;l{THd9?83s`nW15GqD|I=Ixi*QN3i|oB(E#o@TE5kGXkG9bfh*d$;&z zh`KweBy(R+*D5d1-Kiu}IR>2aJacYN+yr1P`@#O+naHcbIAruimp{KKlhSx!RRIN8 zW+~-bQasQcTGh7rIx=$Bg@CbEqmyL*A~jQ9?$5Rlk_q431TZ{X)l*PrffjFJfK zFLqjUN1uo3c>|SMZ!wSuz>5y&ChlrDdkNUX=yM#pFEE@*dC+e#<33sphBI3JZ=R|! z(5-FFL4m>d$R0k{uj&U$D*~_G&#uLF>-X!Ypu(R6W|Kg(7&Nf-WMjE6ZaK_MDz@>1 z>;s?8?=$vi57DO#&}=5k*tGJn0L$4sIdy~%r3o&Tzv6#$E5PAzUASsJP9+T<+*Bdkkv?bJQuB2L=VUCMyiTXou!gYn)>PTcwbp=c@D;@Y z!3(Yi_{P%T77t9(dUo+Hxt{8lz0g?jC9Bqxxv>E`ee6s1#*a@6#@7I||K`ZDX&k^K z2du5v;A*aFk(sc*$zViTJ^1&Yj{zoExj?K7QVG2d0n18laQc} zl(!XE`g^(9`2|L&W#KzHjwid~->ao@>+Y!f8&P;cEK2ei2{IZd=!* z{&oLEW({N)xBqb3HM>2*4#Vf`7#ZE;<1R;*@#KDeU`p<86mVJ>5F)5f^?9TI18EVD z!7gC=F->&td&PK*&gk8)>U|-%gCa!gue9*1E$GtXTg+SX30x@?0V;=GaT& zui^D9g>NpIcOB8xr)v;uX#z;wEyXsI6&bmnoez`-z+9y>ZS8db@;h)yeY`#L?7#4G#}c&R3WyawV*=gCRC=Cl%p zxXH)CVAO4EhLQB_gN+59JWrRFlG2leUD}?=JY>15OX2-Rr}IG%aGc5pgS5ci{v_ZB z>3dHtu^N-)?fx3syYIEq&>Yd@T3rSc1IF~sgcd%{*Yuv=B~!Mq&Q zb9$1H>m1{ao zSj7HhA<P&a3Q=GS}ph5dYdF)5hPJ)$sv;(9at6sbxL@u)dSdx+4cev-k z8^kK6(ZoWvW&gXE6j!gF`r{eND!z{EH72oxNp_Z7+eu=7&C3sa1MKIszGk@4{t>)r za@|s7&f0?+ySvRID7#Oos6K6m=QAvP4Px~prNOpOUKb}Eig7ZFGH`VZoy@kE1vOmE zPkKK*I)ot`j>&=klUsAy2`NF*qNbl){5&6jN2M&1B3<1J?utq`$W^%Q#GW%5zS376 z$`|1I-yYxhsVvvjt*xTTMPtM(-Mlw8@9B@zX+C+qfakVP@`q3j9-AdYxbUv&DwrFI zS8)QR%kHr4XoOY%fxQy#c8dzskm;f<&=j47KccP(+$ zln#k|?!mBgyAH27D4YKC(|nDUYpv3}D~Jl^2a^WRIY!ZJiDSe-_lhL*ry zva6qE?75Ap=%#as|D_qS@qYDGk(~SSa4Y}Lm6Np;vuyVKP z`6B*a&&|)zj@*jsXg01LE~c8TL@#xGY5X%fSkPQ~^ka6n!_e67{*6ZL1 z7;g!w6i}k|wLAr$$TS@hf-=NB%<(_oNp_7dI&TV$8Z{4B@9~(>AHHMRR%dMpqHM8W z++CF0<3S>lh#ySjv0+5N==n}HFKb7g&=uK*Qs}$UVI%KJ_mjJvx3J+}c(tM?Ch@In zL1B6f&O5wQb{{$|*m@TSW6TKo9iC1{sd?wTAd&1;-B@AXY3Poe>RJ3soyFYyt%ijP ziwgO{$X$yg{#ZY96ni=QrBa7*A9geyq%FMb&_FUn1)22XIZdQ!wEdFaUuv&=Pfz%a z%qfpZE3%Z6nu}}Y!}ZzQq&hgdINFPX8(B^h@GPt*E5tHZv&2&nUX%}WqZe(%B@j#U zZkcqhs6)(oGwL|(V>77bnX~LTAvqu^gvJKNz2m5iVMfQNA zH;?O`ciq1s!{Cp{8t4F3)S>O_bDpAEOQ~*qAYgo#hvZi65wH)O@SE>-oXbsXP_dk#7atC{J+zQ zInU#~x1FOj?#}T)?AOQp9&6WIV>h<|8#IsqS!1Y`V)*ZEiuNJUy}_^lA~xW>7;Sgf zOF};jKQOT1eJ*bnSu(bi17fX*97+B)@^hf*BC~z}WBCcSO>=Jrg zSX(0??tOXG;%CmuiC9Pw6z=9QYOqgv$N-}B&N}HwP|W(zh_*pMe!KC*_RlXvSAOHB z={@1Jw6unX2EY|_wTH(0i?v0D^<;OI0S*D;Tg$9W7xmD1&z=IB+s4AapkduluvbJ; z&Al5Z;dLaDHHbm$Bf9S+WYCdT=-p_Rc zRbEGn9Zm^8Y$q8QlJJF`P29tm2epn#AlRF&4|{`)^m&8pqdCO8&o*-*by?~GcaOU^ z99P*D!78@d`IMyUO+{JIaFd9egA{e13K`w?9s4waQt(gnS@h2XotPclrh5Yr8=PdH z_m@IGYi9?0erY+`)|Vu^INgmZq`7xs$TwE?f-r#1!G(Y8G5V*+KHI~80S?^&A-Eo! z!f_9MG0D7~{_{41Y3}3DrE^q&NpYYxc>M6}TZN(@e$o9FIBJ^s0vNd8CX$E?v4rR` z%A30Sq>i6Ke!g8#3+4x13@Vy}ti}sQH_mi#XiUMqja%jGyP3^n`gM5QiLy8OFO7S6)*7MCdG-h0Pi_@_BdbLt=% zaG}O(JI7@61G^h{<5H&I{d$Eo^?3mrMfC&WleV%YVH5PZT0h;Fc?A8JIZ@}^7(^~3 z9kML8z07h=Q@N9sA3a9yW|&zhOZ%U#{AO1S*T?g|I8jApitbG z4L&zKY1-V0+Zfq04OX51?fJY|Xmal4xQB;#LmlDT?%i2&OhIKikb1`pNK=i=9?b~l(#=3mhZJ0vP;`D6s?J`C9eCl zp;oYz&3_j7!7`vR3fF%ad^1T@%_ozFX*cqirGqQvF%u2=l!slQ`RTus>;JPu=sy|s z|G!*7{~td6OqKpMC;(o6j~c;{9tA*ja-h@i?ih7}vfw$$Wh?@?)=#_=3tosi_v1~lBFr{=B=NoeLC6x9#H#&J zIv5M$g&f(h6@@&{_P{ESLCkKV5%;{>HcY&;`pEq%oaoD7hG?poR~;z8OiBssz41)o z+!Td;SG}_j5wp54_IJxT$Kl8E;uJtT_+9bSOxA)~qZX14LdcBbwMHX&WzaoD*ar$q-zRJe~* z=;rLbqoa-xN%Qmb16TO?S3_e^$MJatfkeK8L{ClKGWaCqTpY3ZLcqA~8D!<)ik%@s z1o@iCbsU-7QaV`@-VL4Y5@KRvF1xdxw;Nb{h@YZ&zx6OjHh-;AjgS{6H%!Ncuu;t2cuIZI55X?rlEO0o%L z8wF6h(6BN!KPfGAC?|2YFZ$M*9?*5fbDK($DqWmxcPn?qL9D1tS%UI%e+hU1$t?Ac zsi|L{)9ubSqH42h=Jvq<9{r?@d4Uop^uW<6G6hn=zva2#(C16IWN{6*=BcL6=g37< zUcmVp`UG+|d&CdXsz_BtyuY{j-RuRt8p=>h-s9?*ki(TpMysb^>4`gmV32o-YP(7 zB-HF(N!z>{nB~xhO6>ayyga=h=CLZO6I`aUKl=eAfW);u784$$QQ_0iDU!4S^S6|q zxSbB#6YY)faTQU@WC5dq%!G|<5CAlHucL!85yxDuBh!b#7C{XD$Gu6A6J~6?rnx0{ zl_d}P0uk95bRKN%lQzWG?^1v3%F(dHn)>>sIoJtWiUZ^bS)azR+|ESv0aC{9XMyQA zBhf69eteCVJ3!TmECVH@Tli!3mX}p8kw-O2&JH@PJ6%?_3X6H9PTm14rEE~;l<#gfru>f zT=Pw`sK;Y$YH1ORzyiUe2=SlgXc<1)rlE?Jc5|SKb~n53|LE)_^J5jccX@p!?DQ^G z!wga<5y_{m0U;Tp9(Nv#HY>P-~>^SgI_v>i!O(;6?%PjkqDN1N(uvdl?(Vwn|WCt#1^pp zC__=$Noeq}@3*O-nUIeS`1$0{!)AoW%cK}rqm=laI3nm_Tc(tPHN;b3bBEWKjPiXp z-};C0a$cVtrrSbe`D(k6=b{xkI$Vo3>kNOpJNs@;<{gBG+Ty*@XkVZq_{_zB%BrKg zJ8k~lfXfJ=V?OOR21`{!3{z+>VO>Vzh%F{_T~ zK*D6ZfV=l_DVJfV$Me3*uZ9gTLV&RQmADArz2WHj0XZGLp20w&)_8Z{DTa;RG+sSwst0zkL6=t(Vu;UWiW4OG~QB!qJJ|6Ki_3 zMgH4mrhLNwCZY4uWL3&e9aNb73yJj5Q*a$XQED#S>$4pIb+We$en8%&L@G)citE^>dunHAHw0BTq|(giV9qHu6BHB* z)<|qS>$peME=DT~0eUQ{UI>#13+&Am;UJmD(g#+mGX%y!Y99?k%q#OCP=Z31ZHJr0WZ4;5-b52+|@b$rGuNi zE(U1}I92gv<0>52zJgnSrBAoS^IQqCw{E~mVNwlzc%+yqCW?s)iFJ?D9q>G$R20fa z=)fVpvH@Gj6^woy45h%hi@EOk%92T9%zbqZUHWVDhmR_HTxBY^aPrA3k{t#0n4sMx zm(8EfKXNtT{c^Uq|K}@?V1%sKKlk>ffDU_pThQT`6%p4xJpt(NP09-m-#h7!rbI%; z2F1gs*5RdblP3@dp99ee%JxPeDNQT}u;FTJ5H=|$@M-nhq z9m{eUH?_?)sz8kS8DTcAVi?}|BgDvu)Av|CQ$C-Ti`B-XL}rAJyQlJdzw><`ei4)2 zxRBTUTl8kkk3mQ{gs-xWk!y;O<$A7pHe+n1Z(FN0{$*&YkT9=zJl_3N%Yk*Z@o2$1 zMkT{y^Y8W^bIY zlD3iV7Ml~CI=t=_@k)AN8&~nuUq6Zy-KW9huj@?B5WiZ-kRhYvAD%hmnda&OpZ(Xb z+_@Hh%o(+ax1{BW1d4)F#u4<9 zgy~k92|%_uEIg;v%p>< zZv9Ke^%Si6YMD)zV}(2_vK5!D0rJqA!eUtG+7`Iq`8M0_bVpQ1uqNCe%J2#_de01T zul{3gp%8X1N)s$EEudvB%H=W^Lq$e@`dL%(Ntyr{>E6r%hd=u-(g0aH=_% z2z;d^XNZuYst96{JT)veOY}#HaN3z(IX?s`YNCA2l6-Qa=$Udwp~qUo{pwc>Z({!^R28NVZXL=W)ZQysa|u*usI_M+a0v=@UoQsY82t< zlz!!OxD0EPc7HaWw3X-BcCo?x|Kd|> zziqKqVtR#1^!;YJmzQm7b#3i*b8L#!@Y)vaD@BPw07;Wsj}?9ZmobZ0mp!`HNALqd zz0Sy!WxnesI$^{j*7Dn}-!zaR(iB+%nGe*IyZ1I{zUZ#0r2J6c^f!SvlO}^&O;<22 zyBKr~rPbR1`88uZGkJ665&+n8dOtUUhJO1U_&A5 zZnN4yp#aO#6XF=yRAM!6rdBbCSgBub{8)kV2;*9Z&WZB;=M|RND0n2mfi=w3pFT-_ z{PJ|?0X8-dRE)6J7=nSrax`x&mJSuaGqp^yFts9`;!Q}X!<>f7u*jlkb+YqF zC7XaL3ciN$v$7X4gG!04lmaEE!`W9*U1CsS$uo4mGcyJI`jcdC=bP(BUJDgS_+E5` z-7F>uy|pSg_J5L(gH_=YnOHgF<3e&0B!a%%AYM%;IeQR>p@UFLrqv!hq2k)+t+-jv zdpag8ls|wjsc29{j9*Ic-B7~h_(h|{c)E;4*&z3>xTu9c;p~u|hiKDX)9`e@^xR3k zFii%Q=a_i3Y1h~Nzf=Z71Q`@EYV0e2_wstydI>4+*HI1bnsupX`U!H1iYVRx~v>}4Oa>03v~pnGpGs!TJanET#yq_983 zzk~*!1X&`Dg&I>cu!-W|87bCRo8E%b6N&6($%nr{=Vph7AOYJSx%;rixF4;*2fF-U zcS_ycdWG1w6khVkp#&B!3OFS}a>vC}0S7(#V;c#Yh87y>yNRsYcLl*-8Iq(y)Tp0F&qYO z0BoelaeLN|%=gi=s-v$C#jD1fRPDKVH~Cy&9}!>fCq?b!ljDmw)Kq8TT)UbrnpGk- z`2@uXGN|-wnRO_yuU(O$Zfu^|E5&TJ9%P?H@swXal4O2QAS}!1jk`BPz>v0qCv<+* zAQG2odt`DRBhj1*Yap;|LNIXW^7QaZYi`I6FAis5_Z&|rd9Be=^4c5yAW<#3`NtIl zQrvsn(7y20hnVGfp$e=0WF|9dLT_z<70F5mAK}e{7nYnr?YBwyz`%C??RGA!T(wL& z&B3pR7d-CgRf9c9{~S&Y5ti8B!$^i?nFknsGBK%qXIm%D7H*Z=ACk>yN+nj=%^`7> zd0&0NH{XPC%<#+0FmkBs;CCWa^V8_c31|LWK)(Yyseye|YqaY@=mB`^=<4d~w0-|? zF4<@XnUvrXF!OxwN2JLj5U^p^%HwO33&Ur4UTFn6{P>&ei*Jx&#h|-|NqAWV#}j6y z#E6J!KxT;v`XZ{HXj+z4 zL&U%#y;aZO)4=jZ<<|WLF7rCZCmN-yRVM_UZZXMUy?1jv|Dds~E7p_pcr`Z!ECeK7 z8)XwSB%t`HRjV{U`luC_LZWJo*@TD2Iw9D_D!7JGM7ck;@0fUPZ##a$J2m=f-F(uQ z9-;Xnc%1QxQ=bL~f-U)}V)&S|Vp88)dxV-UPW=k=U>in5Iaq$N?(^NBeIFC59(zVc zF{=d0l$+WI1==|>jKm$rK9A-aFIqr&25;xWzhtf(By;@}d|@i33#DsF5GVCBXSno? zsjjX*cs7l>296V>9|j5XMS7)g3uDUEBHl90~J_i;?*rp|8UF!XP?h z|9S!I)0E6pAG9o+XQ!}~p+D$uHOAvUh^{Z}?ln8EVIdK^G`=2Xtask_UGd+$7frEH z1k?ergpOU2DZon-DYdJjvpjX}ZS@$i78{6R~*zsP=8 zeluPHWsX#+9?w#Ui%F8=xxj#5MjA_LxV81pMXp!17VN&I}~1m(l-X|&%Ht4A=Z`&q8A0lXYeNwnf7ns z`~o@^<7pUKj-WQMV4OuJm-A4pWzYcB<{dZxg#d|%Sk}4F_0!+UKxwwT*al=K8d5kH zCOjC$7;2h~q-Uf5ig%3aov;2?=5$oOnbIlCHC;a(!`~1Yf*-O_1C=7zAhd+)eI_E} z|H_-DO8iz&y`AsT%^I%o?;pVlFLwEk_a{r`pXUlqvv<~OrN$(eX-?&Sx^Iv=yrsU> z!8EznGRjGBVa2m`yr6BL$BA8pTppUaf+6XT-g8g!^$o?&thHrhDN`7 z+dQkJcd-8Z0(I>(GkYus3~cm1e*2ju;r!^EM6&Z;t_M9>na{)he$lS3;PwrlA=mb0 znc{xuKDrgnpqegp3gO96y$I`&GHQ{?_1+f0kHlO?V`VSRMZBeirpfyC(}KiB3e0H8 ziQ5>VG;60&n|!_!y2sd{%x9@fRW{?FAP~3jP8#(sFTU+()b8B zV{YT0yK8O>97ht?e~-zrNBcbo7ds=Ue_cbziKmwrgB|2?@5jNGMK3ZV?Ha*EyEEH- zgT{xihJzrAtIN`=k&}VSCLgp+8tKoPvNU?3-3trU%VDxaRokV3jP4#j5NtE8x}_>f zh>lYNgw8)022~sHSzo#a-(hose}I~=dc+dr^s!{X-4=Or5m)AfAhJkB5}9<|eLpIG ztDmHy*tXEeR1AsAzDTuc#wTg&xe9o$4b00ee$v2CGV2tP+N97c#&ItZ@OQZ5(k#AV z*2pyi%I^FXF=%`nNWckU!owjiLV=rO$_4KC**zJ;UlD|KsBv=|B2F zn&RY@f59-7$F|Si3S-Tqj=|f}zbrBN7f%D|S%d=46}1x18vl2ZmH(-_`2Pn1DCh6m ztvh$_K#~U1eP?#>c>Sp>LZ0N8!=LJEAgveXaX+!*y-k$#g)j*4QD&rHM`mZmf|p$u z(fx=kdMzHkf1Qy_;bwtm9Yh`%}-KNq|wkh)y zr3pL2Ge;^e>l^o-UNPEG%kYtCM_DVv z$EQC#8Azq_aCcv1z^2v&MPMz=xY_*xiJyO5%*(y{^=LSV3!-6n)uvf>*qbc|ge)o| zp;!{~qAw}d`cszn7TTd@1o)|FO3^__fL1SIa*E-gpb~U&nyT6cGTu^_uOto>10jq4 z8sND8I6>wGThMX!h1~J8Mt9XFPn6L-RVZeu1Wtsy)N+ItiaIYYcCr8UOhk-Vy|D(0 zyh7^L=o18pWV5q#hK7d89Io!}kUfon@0Je9tyiS0P34XhsbUe*REhNePeoJzCogdY zgCcB02p6vCfG6qK{BJk;-0so?P9Z^shkmt|>Bs&MZ}SciInd$LOy3U52aLK}bxspL zH|guUyIgLkOY+emfI^pFDH_8i`MZd3%CTmhN~_-!Va3U@Q>Y~G*}<;_i*A7u%sr@R zOibQ}T>C1V73>emxJ`y30#w}Zxi_B;M0&VZoy%^}MNl)Sh~Ez*E=rz$eh7^RuO{X6 z;|Td}4M<4Ze<>iaIuaWq24|}6d;k$YTc-Q`2a3PquplNq0h|cXKwzvr0FDj@P=$xk zHc+GSF_@FH%8QA)tTYb?KCjYd0-sn6M&2KJs;dHmO?@h=pn zK)uT)og5ZO(RjQ&jer1&Jv{2cM1Vy)JU2VrWZdktw+m7aIbVSbv`^aEeS;TIaxaSx zB<91TqmD+3hc9sFOe9J<6^5X}6;a}IbNjO1w7m|_(M_j15L$AT5;0iddqR^_+}RQA z1Rw|6fc$U4`4}uLiygf{kiH`s`UEE;xS^Le4wTiWEH6O-=9YuKH&)D|zXur|A7+P^ zx@T23h&rc@67FAx+VCz-SQan7Eq-2kpW*Us|8SHEha|}r5^DdtInA_8%|I4e*)wfl zF~4?NA5NhHhYi@W$o_F;AU_VK*8|-N(#>;~B~X4BX8@c>-+vUBM5RoMgYGnZ9g7bVG z@LQd{OYgyebTq}k3m5|DJ|8s{8!0&1mt^wWUBlV~b3N3qe)C7cWIo9r_JwXWc>h(C zxucpvVRr#V68MiBCITl^uY*T zlA;R?B`kC>)2aTpB@KsKPI)s3er9u7jib;Nyy$%>&{6=cpG@U<&ILL=H-@w0)6>5K zn1F}-Vp7^#CyqChV{ou_lHPZ)(SE^fsVjT71DpfUNmyYwM_FVJi`Alw3`V|SBDVL% z#?2=%Lz5=-mt&3P zjmu6N&=4k7zO0~spN|{AdCz6Mxp^PzEnSku`%9X&QI0f0)ayvm7$5m4PlF67T83`n z@Zbpe2G}d1O%w%|SfB{cvDntw7rUeM>jNU752I_k?F*jG=;$xou2!SYYqsy*Q2=+FjK7yD7o>nbb zVCWjXE}EHC|KhxKpd*pXDK$TZ(pg@$jA`!fy&Y)3b)#8t*_o-QErpN+&_>*&AuV8u zAIV|x-}nxFD^B3tFzX2QQ=Xss^msWY-)Td$UqETDncslj$m}Pq=j2SN`V!kWSo_L9fCXM7ZRYTnF zRBl-gaqRd99ad27Ur=i|Tzyiih42YnZ&dTxXD#^}4RtCNtn3$^fBaPrk@P+o8O`<+ zXKe{Y80TqlrVp%jzgR^T2;#cv-#g?T1u9Up+#(%d0(2}Y_ponBH{A$Tw{^_tKnv#c zTm^*F9b4uk*=d8$VRWVW+a!dChxs_XQz3i1CMb^G1`_LE;XWPumQKb>xK3HX%v> zvrWO7k}`yRScCz&U0SsA z-vXl$oSEqh<)VS4^JOtqSwnFPc@)jf7z^+C@s)>tX|l;WL1muV+2(O;dE3+lxwx-i zfCM@T$Jk&Fih~yrjuPo8Kj2WIlEHJ3?~VDRm`n z?UDW-(LscMw=76~GF(rh0pL46FvZSr{8c1~=Fw-}G0m)B<$s270Am&GJ|Uw#33wwl zpoL5_Fx&DOfr^5he70LjU2?DsM~GA4W8mT?0xZWn!s7c+X{NQWpORv*8Qj4%nnDUp z+H=kp0OVp3tS}&$5qgGKxBrtxn$Qj~kLeka+V3y`wcUwQ2PIMhf}NUwr1_|o-}eJt zY}wzQs-CJikKl(agmoy{lF5a0yFO$ryP}FMw%T`V%3`AXu=obVOwL>-q!42z~Hn-%wa(T9%xi zKq>M*b^C`j`{PVek6&dktV`yxGi-KEPq~_I3-94z-2T_A1SQrTY8GDVjV;Qb`!vqW2bDDZNz!)M@#W@jAW6m?A~Tei`Tbfxtv|4)&Z-wEv% z;JtuzO3gsnU)5C!WumPt7WnFp-4u*)uTX|p(9Q};h{QE6t-Pn>Uq!(Z?z>Lk&t|a{ zgJj9{OT726jMGr)BhG#UgLxMgw8iSwbBa{X4|(2hegu5}GR}t-M5x(-dDjqfi}q9U zkjapf*=t9D{~S3DkbTbxB2Pw#jwT_8WonmK-pbTu+#(!emE1#MsalX+B4daM9-f^F z{FNf=u>;1ylEOD|pOpXF70Kh>Y49dZ1fBe4pb)*H%x}N^fIXdbp<~$8d11DaD}ZjN zi90A5Q&Ymp(foMuOJtBuiT?d}zx)4S29F6#%)NC` zmTlWFiiC8xAd;ehv^3HZA|NH*0@5f-cY~xzNQcrT-6@?SNJ)1{ckP3B%{S|>^{u^U z$LxRJd1hW8pPQTOI?v71Z$IY;MrSiqlxNSoc=q74?~N51X4?D}Sg<`{YUSmE4bJ{!IP+{)Fm<_aC4KNt z;P$rlIJw#GoVQyYmZ#?pI^lJL^MSg7fzs!PVfT2fsQFg#bT)y6A7JKWOm7XFTb|UQh;Kc!lNbFe>4U7jZVQ zMi_J?>jR=egACd}2--rK<$DSDvsAp5jv!o{z#=u?BEyNijIad2FoVAuvn2sfXF2dF z_jq+#pIMGsrQ}pUs9czt3Zb9@j>&p;VD9RR;T=HwLp;-EON$^jA;R$$XAk}%nzde~ z)fvPC!?Lt9KVJ$92-n{Vk1MUDP=fa0YCnKVAZ^&Z)z4nL((fNeG|VbGb$i+R3+z5a zOrSrxJxN9KR60xQjK9k#%nk3RUU_lDo)k~+SXl_)IJ_(g_Dxz4o1sbeEZ)^kf`u_V zzN7@++11TWOeF6e(e|hv39Jd&4bZu^!jn>M6*^Rp+bUDQ+2{$nNXYBsn*k9YQ6O`g zk!}bzpIY5VYhGSnkf*{>_dviQXabFB_55fPUT(^~`7QfM+ z<7r7rgioywKD=PAtG&Bp(s!bZBkQnSgdrsO;6W;knGgW<_2whCOe*LC#gGgFggmb^ zRC9|vn92VO3%H%~NqFwYzz21-g7X&+4je2jqDl?*Y1}CnB@eg?PX0aJ8iH#;kESn6 zBTkOdO{~uqDEv!?n>RFxUc&%ej(^-1Xb!*FEarho6f83f86ctXB0QAkmC?5Sh_U7w6kh@jg*NI${z8V-BNY z%PPa31CLBEFGav(5S8Tvi^tx!EWW+y;+kA*@Kqgz^{wbUGde|HS zO*W6U7A_?p85@n^Zv9{)HDm{Yk6X>E$M2p82}p-;9c}Vj%r>gP?wI~mBJiF^ zb0bhFPI@!tZ{If#mg9vn={M@Y*Aq(gSg$~%o68LA)%(6notk|fi{Hq~KRrLJwgt{T z=*xw0JJ`{7t!CVG)84AI(Qzfg@=)lwgQeX<`a~-W=63J^r9194!ZXIIL@iPl1!^D# zSd(B`d_|XXMU&SLpq;38wUp~F(LRX4iOL_+QcSjnv7=@fLsT~m>9eKA(y&pJi(Qgj zYNpOyCyzI}Gy0f2AqRU2+z?y&oMQh6oXx-e-yjj3|839Af9U~V(Z~uUvp#wh1mKYM z@a9pgo@tbvs!Vi4!+o%KOIiX}$`PfxMEEq?j?fY-nRvW{ReY{t4FKuV={dk@K*Wig||;G&>5!} z7cXW&v?~db=9-daRulW6z%8+(Ze*1LTLJ`fhQlRRYUedlWj!^}+6ij5fB%*n>gzSC zHEZ5|m~FgDSfP;(QK00rV+X`bDul=|Dk7^0#uZskV72dktu|<>hxP|(*6~>X^(Gn% zhC*lw5*#5LJDmUaV)b>QR!eJVJO|y2m`CsrFxG$Nv0hkMXuT$*jPIy+JAw{R-qXhx9jo3;hKgxDJh zRJt$Zl-AJTUh|F^1jX)aL-W9d!&FTJo3;=b>|X<~LyCtN4~hOz4)IVXQnZk@pa{UE zjux2lVABsJ4>e9!_ydApV7lk40b2zmoT%y}^bf&0%A`@^mB0+r>yfz@340^>hufI{ zGE;2&)=BYvuwsw{kY1qq8T=76w?O*g8VCG~GST$1Aw=DN1a_q*e}@QU`am{6X9Pw! zL5H>723JRZ0RhO?ECc}=&`?1j16=s-zFv6eFQDb7)^e$9p6^9zE;|SCmN3eA z@;wg&_-?)v7Hz#M8wog`KnE{mJ97!j8XEj?z#h)jdU9q#&_ zxjC;**!+%{d*fc&f}P~za2?$8Ea}QilGpHI4&ne*CVOge2)jR|y-(%8h7bCl8nT=& zAS+Ai0v6u&sVYUV0YsAF;oSm0)o)}9bZXx1%m_Q9yEHUvS5ZOz&ts*u=6H@wLPmx5 z^1#XhdN#J53d<@0(v6n7?s#5}3cbqkV`Uuxk1`uIj4q%A!dHeWD?zLAA?qm~P_oZM zCZ-I({Q~{NK9IUVj?XE4V8AZ9+7Ph&;JE@H1f1(7_KUS3doq{=K&nO}P=W8(nGA&$ zWL&063AOB3FsyO9ox;s$^IjN{L5_$`Ig1@91-v$<{gW8PJ($_XE5_fC)`mwfiD93( z#U-E}sa@4CydDUTVE76S_x6C58v$D&kenEQB^O{l1yHx*{c0sdSnU&;a*x3O0qVPb zK!seLoJ517Ad8?BEERq69KC~swsXy5H&-XcY0~?fKg!A^{s3HN29PT}lg~XlwVfbH zR;v!+qUBy^!4E?2yK`b|IUpbp=E^LBZms@Q+Z=e>wIM}IbO9t+@D2Hnz-NEx_z5o$q1+xWT$KS1A-?ZW81NaymfqNcTKDs54Ph3|Q$1~F&4L{0UFf{gf|E+yH z;-Yh}7N-|UQ3Ny}|89o?5ZS&5s^`0G`5T5?U+L!aMz@-hX+sX8F^QZDP`CkvA7URX z>>3M_OR?*ync~^qe}4r5Pxc{y*l_@%a$)3LWStN#xHf%O3@r)M_0DE%LyZu;3QyDd z=^mHujxAhi+auYSW1}F8fMt`U(PbcM0zjyHf*)DF8v#E zcmjCq+E3el^fA(Kn*(N?EbyV(9$-o(@vq#u^JO4`lCVM?lMJVvNJn$3g3%lvQZdF% z?cV_3*psX37VG^52?u(x-P#a)sY?%tgtq~1ggMw-E|i$rWqa~XO8AR-&Nl=&bA_sf zT4zAcuy3+^1C54Oh8PTwT-&8&0BHCDk{bl4N9Smsnm-Az^(0y6)x`;PGU4>FsTahL z%d6D0LNCcQyO=M)nS)k$R){A%w%dUOd$A?SKhzU{R|5co*#_6Z7>&{-_J{UtLjyo* z1#`7sdVc}ji|m@fy9V%PHLw?T!kj?jDRf_}1J~e`y1X+2W+^V`eaTO#rgo|lA1Xz? zFV`NKqQw%6&L3?CGHZ~?n)k|qe&tn9Og9`>d*?^m_5z1%lNE{ZNRqRsG5)r=4fxPo z37xEW4ytM8oC+c2)Uh_Kn5KoO0Un(;%#X_MArxpToYdJ z+ohYl@-0hVgfc@zkKyyzGC_g{MXf2TouEXF?3_s{78N*^>-knG0FeeSgG(%vl9OxDLZWnAr77L6&WXd_y433YmoBl` zKItR+Tmg5!u&%TOycl#^tOCf)!m7DfOTd8fQ4flwj4g>Krlu%t3Wiie&kPfHku>Dl z>Fp6BK8%;pl-S69dA9=^RENw+@)gA@8(sFvvlqA#iXr$6Ii8;%_5*|&RzdSf=0P+R z2ET`w#P9CzolG%cv8wL?;n5fSVCYiZ>zCkqnG#T1e zMI`TOsgPIW9<;^C#It*A4V>;R!cKy7BYr9&+Wx&3FK_M{(by%GaP56QyP#~a1Y-q! zl9GB6&rY-9^R`2u)(NT+yV+W%re0JdQ_cH0q4Rc)9K7gasD@P1Nl)+rr-U2f_lTKb z?0rZVsMz$0B6v6F|Lm1zp|7v-mZJyDA^UgXkmXM3n@2}Z=dsdoJX|w0wTomtkQBme zf7j}3NjWX|h*~6IHVn%gm&DX591b5i={i7@B$Ysj;T|+T0%{eFL$UXY(`j-+4A|tq zP`$S`%Sgn&uv>80_)Yj@*$Kn7Ps7h)Vukt{ELxEc!klJ(@d}r$&jAfx1$Dnq6U4i4 z4fBmq2PKZ>zebIE8p@BqI@9PbSVa0d?1<1CsUitYm|EaH96*$GL0mS|P6r=aN^ea+ zT=!V&51`zpz0A|k;1y{`iBL&MLd~1rF`WAXU6vp&RO*g?;}_Q*&CvVxDQFj`>^_al zL3|uu%ufi%CWg7Ajd`-nO#f)(t~4E#55dAOc^BGOV3=5DXjX&M3X_zR8{ugGkVYcl zsnxi_^`!CdVz*NQagzex!uA#-aR1!yw!FjjOpUe2yA8!TF0QPmR~K#O692ENv{8v8l!&g zBTh}j^oc+ z5wF!ajlVw9UPwvdDo$O&NQ*ggU-nBP;#XSeA&o|mibnG@c@#c!A|PquYWD{nCo8Qp zV+q4M`VvMUNgl;L5NSM3O!(l#Q`;H0zW7qRD1*yeb*Gq7`!iU^wM&hNt*8IsA4#2>G1I%@tGHD-}sY}vu5koHAPk%2hJ0s2R%2m0@x*2Ex$67D|tX+ zyS69x$w;nB9PWde#bAmeaT&#Afv2kIe|oVLz1c{fXc5^I*SVenydu^QxJTF_&+NuL^rB&%Zz<{lay0w?k5OiZXUc!;2 zsnNTvQ~zIBfT0i~vF^}1!n0Rg}Kw`?`dsI;pR;@BbXRn!wY3;=SVR!m9Kn1B`F0)jTHk^C`NZGTCI zDn3998~NTpyNfzc4P}DZA4%w1!(jIF36g8IWteZd=}Rcv<%6&+2lx;#llVC3B>h_C zXrcC$_6M3T{qX+<3;7ieo-mF)OtMlE{#3$+?t; z904qSZsK$HOIKAmy-g;5EVE3*Lstlh;1;e#oqiod!4hZ?;B5vj&tK{xyxm})DEyLu zNy0)s6G;lcgU{rR55Kep$c$*02$pGgue)^5=?$)$J-Q>v*mA%bqcf|aDEZa zBiVpYvT0qrto4DTTxH+8Z3JZls*En=MYze_Rir3f_vhZw{<*O*@ z%@7*pfqJO4nt;CGaaP@0bk|^x#qhn=fn-=i&^>cUChm)PAQIk9I9TdNd1=T*@lN7z zijXtZ2_D18;jx|s=gC>$?$y%0Ncxs4i1~Bfo(%ZAMSL>T=yEg(Z0@a;=;L-C46p}< z{J`f13gskgzKlO1dM!^Rda(Pi-uZpHbYJ!T4=7O6rucXcMM;1^{F*JR`f+45Ehg-baeDjQnH31X&-Hg$-`XjL?~J55=L?{-tP2Y#-O zwO%qC`yMw`B|5X~InjQ~v;;~5l&(|@K=QYbc3(v9yxQK_=sC$z&))>WJxCxFz(&U< zpsDnJJh2`qn!AFQbIsR2vYT65muthBfG@Nrk#iXFRq0tHnzG4H!t=Y@{kcxNidDv& z<_zQ!@FlRfjdvvht73R#+c?O3k7euNzAm-wF9E2KxV*Z0zueQ?)&@{H>G2cL+4g{z z$3Jy>K8WXY_|;Lqp|)TJc8z~w+WaTzbKYMBIn-@j?x7ic@Rh32K-bYa$64iXJ!xw3 zVMbH^F0EzR)sr6#2f(a&XNFl-^bsKmDrFx$&LB`B?MRL+8V}ruHp_dvnlgTk5=W;B z^X9D}Kl=xjf^2$gJMLm-b5Cxa`tk|yU{{K~A;^|m=}&}(EFBtwtE?}0v--yoK410f z>Jr-&l?*yMcpJ%TF#=<%vB|2hetHxNT4os3r3ggvKl&c;@3+?U#bVcpL0TQC>h6qA zHMkD`coW*c-!_z z*SEGEh}8r8#-hkv`gou^FLk4nh?Pz_-U~P>l%bk-z6X-mBubiUKVCh!p8GL>MrToV zgepEa)w=F`2#L~_P(=Vctz0Cv)6Kggxs((V8=G>k0{TKQm=k>Z`C*fXeX%-F&u&<( z4=qXo*^A+9-W+nSlgKmEg~s1r1x)vu$2Z&hu)!ZUD&3=yf?&6*`>(jn$>q z-Nlaf^f56$c+2WoxgUep1r4EX{%4s`N>B;TEC#s%VsXfgUzXMbtqFu69G65#(7A7> zuh2A+XTSKu#E@jf=SBGNvh#&TwcYT~(75>FyCBVReD{t310tqPfV=GHMX(3ONbc0~D1pTqi zBURvL1)j)aXJ!u7+HKJy{#9#n9vmCqH?+-3{9N$#-XDO&w&;Z|G6`iLtqop_)7#;U zv+>eJ&G$0(cz8=f+F!8+hU8l%tztb04)EuL7ybJA;18s z1<#!14YhK($6Qmksc;S^DPkGso>& zi1%*rbwZ_@#}rY1en}9^q8Y&VXS_61v)sSZj*iv~USdORM&WZcYRND!{EWq^N^6O& zRJgVlpZgKu;YD(pQB?<0@Mv88#iwoc77+ybo?p`3=ETPA)!o}XDM=Hta0)TJVT%9L zK=OavClwUZFI!*Vc&p45VP%bK3{_W^Q6|#43kGb|TYmAs(CGj6FZrJ(>HnKQzK1IN z3(5f@!n`lYZm4)x1k_6=TFVn2U*S@q+6V9=j+y>G&`REKI=n#4@CyZ=!snB@5cNE=bG($d2RdDGQLJ{B7x5~xP7zLEu zMAgnN1a|>L0Of`QpBWhy;Nt`A=_(}jEL$e30Lnn>`(S|GnsG-sg8&xDuA#M^(UEc6 zTNs55uG_RL7%D*crIxFlaz#6I4F?cNQMcAd7~y__^KlBkGvM>?;o%{4rh8n~!fJSn z%Pp+{Fa?-SF@$#Odsegr!@cY1$aVk-3Yb+ZEk@s+?Gw*7d4hjb8qO*ls%h{51_Ce! zB7(1fqM2XM02F32kVJ0AAR7%SGn+sg4@A;HlBopXj`?Fe+;cF5!^xM*WBnX*PeB4! zV>UPge>ddCWGR0Ofy46MhcHH4PbgjM{|zKz2&?IEM4&8*XOrq!FUzonY zs1(!(QdpSjrYkHXii_D;n~XbgK7Pz&zEywTy0U?1P6AytQMue@QGJDsPN~r{+#M+* zo>5ON$6$bud#rLV7`S!#yN5wb1p+C%!?kqqrZcPa8h1cc*~ccAqn?QgXQ+&Xlg9}V zS@}2=e>#hoXOLD*)~Jl&B22)Vt+r=vDm%Z$9*04g=y0NjG$Zvz}G? znq?g@vjOf7=or7#t|;i7D@Z^<;Iz~Q_T5=A?=_8bB~BR)Zn4nlrHu`MmuY3N{@`oK z17v)<|5K$4s$3yLHgwHlt39|Zl1%0o7@AVK->O3-I3^K$Uuv;_1Ds^IkIyc4NQQ{8 zq&*fEI|uJQ&0AbpsDC>WZasAjnp31;C@1aE*aFP1{wHM9b^`wkwOUZf)sw_80iZWn zI3k^*UcrcL#%ncRZqTCBr-7xphVuOo_G$?9;Q-1tg%P0Ln=4)#C?|$D;O%JMOX%4= zO@anJb)dq5LHxJ06vJh93{WK?XH!ODAQZSdncV}v5XLiOfaYOBfbd4~ias!3fmH4< zBp^ZS4?LTWR zy72-q(75PU;0RS;=7!MV4V%O9!NJaOW}?w6jXoG!RLV?`;IxM5u=9(H&{;LBC%?ck ze(T>)R)Fs2ueT&0Ixakof9f0up(0*Ir5Vx(K9|ZbK>@kOn*$uN@L;ka?oZh$TK*!CF7jiN4oIW`SUN`lSxi7$R6&3Z z90p)3*Ryy6a!0ni#|u9(;nrE7pZA_*@TIR!6YG4L{ih7};Up2y1oF6cU{~Wok7B2eM67|Y+Zn3A z)8&*htR^^tlO$Z{!*9ujUzwr10@$W5K7h^X_tX?7A;lsmv}czZcgC)E$2_JBp#CnG zE{+10ey@3|=#*S&w-}-`#e_4f^O1BQpwl>}f8faMH|a>bnY|H^h_Hhhy%vnTi_;+a z`?&FY52$K1GmR0CkxAy}xmHck!M6C!mYLzk+@+v_G5N9<&Y6f-!1FTMeqqEEx5qz1U6iK4&y zIhfmlCZbtTurXHiURqT*Lvj!2{v=3a)VgNBy)ZKuwow9Ms}hXK{swCB;vXJu4#}lg z!hY=c^mn0l98e9rlFpchv|uX(2r zD%St=G2AO&i7fT7QGdxcTf^x2Kq<-#b~|dy&_e$5zz4S&(DH#Xd}HzuLH?|4ErR4e zua|c`gg-z>9T1V_(B->Ol|~eq1>sVyHNZt-UOt_F;=U_yvbzLYU}`q?X965+Gy=eD z#bhliz+;Q$nS<$_2aOJGFAbW|$i!f6kSfW99vjdtQLv|paOqg>jvASRoy++AFc;qB z7Bp7%f-Jj?B^Q4cgrZ5<+#eXH1ZB4XyV<%2EsCJ5`S~0F^_{`e*TpG8HX2q<36rBl ze!dqzmf&RxNI;9L77qH6;QV@K5~KnJdJSJ)!`VeaS#J5J&B=R++8%>t3?vEYZ2CzaU7ZJM?cg8bETiqn7tq5Ni=S0`gLt z*cc`?3@pn%U;cs&yNXi|N&zPm+y{3(G0^RmDzrdP_sPr|ZrP6g-cMC{Gtam*S{2W> z{lWs?8ra_S3SbxxfXYCT0RORQUy$H4aDMGf*Z9scaAA#AY1qzh85F@Kz6uiYkYzr> zI%>uMKF{D9$jCuwDdW>C?^=?j6nd&hClvJ`z~FVPrZjLIw_57pCAJ!rym1e%3hgYd z3MR0etombCuro~m{R?5APSiW((EN6zXXhq)gI{sWZCoeX=3{tJ1#d4ZWk#21AhH58$_Xb zjzse0Yebq_y0{e7oegJ5y+{68z=kL6yNnk>2hv+QnfA<6izi8(Z#b#g_L=WLb3^93 zPtS6mR@PlEartxVLNFzWV}TbXVjf>aoLy~CSBOiTPksN9u3$6m=0w>^rS+@BU?m}a z&%-tR8*_0#UrWH0CL3Iw zVAHK-p@Sek;tK}N!JJow!op2G1gI+m$#hVB%3|Ssefj1S83)`QJ>1QJF9Nue#HjcW zF2daym`qgj)m6HNKrem==^XlZSIl2T1N+yB3lOq$uFOlwF{4q-BjN+|^BKh8gW;pzqgu&q)CCDEQ*jy6KHI}`=C5} z1cU`2|4rvQ?HS43z-9rm3!tLmxago!>SU`?G2jZr(=r<0?KLO1GAk9b2;%Mbd9EiEuIwx1AZ?fdN*yVns1RHhz7p z3k~f}m$-lh_C3UXrW^pm4$t&GUYkSc6$D#(+{2d^&+%e|JfdUx>|0?rqbUcL8>L_a zKDtaS3%ZU_dm;?0K3EW5Z1+BN^`9Q1vs^682KZzjj>1+6dDLDFiz_P_g}Km2`iZ(v zfW-RkP};NlN= z0lWYKCd=@Pg2RdIcm>oUx2Xm28o>Z}i$&Uk>Xj4x1MqE8@mQ_FLD}SvdHpgFV7TRh zWT=cYfml-bvkY9%D_}1dw)hZ5n^OIIzIMcpPzPE|CM2P`!iF8Cz2VO zv~7dz;{8XQ>%u$o;vym2BU_gM=5H75k5p8gpb;j+<@crD@RBw&MFpkV4i1GY>MUbKzC1T%=s zY1&r;p*;*QVgXN22Uj-;biEjU!js%IzZ#9l1ac-}O4j*e`Gf_fA~+4s&(HUT;J?;F zzZ6B(XYF}|kP=Q7Qk}Dwq2yvLvDoQI$OtP8h#C*ph9!nV8{M&S7x7%hd*Dd-Z-SML z2EUYPFBsgcm*+>!Cm$2$4QH7Tzu@Uqm5s<+1j>k&z`fnAFP`pK1*kHg$K^Qax>`D+ z_JoQK?Zst4G%_xZJwvtaC4)TUBb=l<_)YBM@){y8rhx=Zs2-bb2V@9*qCAp4{_hM# z(<#5JL40ZJeZ@;SZ)MuE<~`AO#Hnrma_SI$l8)z}E-%okfQ!!(28-r{-9hc@x;hc3 z-QCMGsL4D{qehZv(%|hQ%g`$~NB7YbsxL(2q{|D-;kU(_mPonYnmB*~XwQj-!0r&P zqXL?9ej5_VOM#k#F|z@k@p@-QmP{ZEKdkRNej>wxLkoVMzOJYn!>`NTxAkRALLxZo z#WO)e%0PMr32#rlkIaTm%H-m>!Kvd9FmZ?|`|M%RQ8xC}E_+EOyoyzGqqnDS`q5em1R9PxB&_^TI z(OLK*^N@*Nw)#^V^~x2O-A1kA>dvLp{^ZTYAoX)|U%t{U&a9wU^sZYo{UAYqYikyI zL`g;l>It(4NR51^ehgdN+sR2r9U;px?1pZXT;hHTgWDvV&0Ys!_TSiOwL<=ajJ)yZ z{<(n3wW~C0^5@U2MW1!$rQcCh_!R38@upHgNTr@d;7M2c6|k&Jx%Gjhp8<;slmWK0 z9x_RMh9KhN=m!H@h!kt>;?4tvE5Hgsif;VFBp6=abq|%1-~XA8!e9QNAddFCcZqZ~ zGUm)OyGYJf)bJ-lR9~c_xanEYC;EPbvPY&^$)7WmUr-7v?s$EySai%yr4Gy&-xY_*mSKp}fhwIVs?1_1ryIVWNgBtPmF^Qxvj`7ID#W`O1p4T_4 zyzoP3J3s#L+{71^%d$uG9jA!!8dvy;wCZts%q3&}wOKDDswEPCZH_{`(Zr!g;cWSiKCrt9hLRE<|lBgnE&)hlacpYib};f)jVJddO=eN+-X zhbH8*Yv4qnjVIXtY5DWE4=4^L!0Z4%v|%%Hf8B`=`=VHf;}em}K(*eiTs zXqzsB>|M@(6Ij0IDyMw3FknWKWj0A&ns}AJt%+e0_7jZ(STU6fiw~xBu~YJv=Vc^`;ewZ(Z% zDLD1d9w$t6ZAM)4Qk}6|kNgO+{H_|_M&esgohZj)BTvIwNXN;>Qn#4h7<&yDkr*h$Y45B?T|75Ea zWS%6UWg@XEr(2cYiw$*jefcnjj5qf08cwic{|nEzZv#B*=s$d@3?-L1v6C=0#JTyy zu->H+?a;iplTgs?4Qw`IplD_HMbnpRYr=5er51LeGy+YZ#PEz|dJ;B{GVCd$c`MD=+_f zsW*B!0usMs%Rm3X znFXK&$WSuf-Nd(NGo>S7sRpnf@y2XNXf84Dn9t)~St8H~7Mt$NRQmS}%v1FMd1 zuKetFYF1O|t7@7qZ<^l!s{sYb-EYh{8FJs=tq$B^QSiK*YyKm0<&Y@|ThGH@T%2DKU9j|I0YbOioj3Huf(# ziez>`ilt|{5xT0NBJN9TG`UbgyNjFDYs+yyzl8nRVLo7jm4NZz*SSx=q!=>G1C7rwuwXlrE!7cd+RuOEK?@)pnJ z5fhUI$R7i7{OK99!9G=fnHVMa4RF=7{a!YJziGaZSpPjo*To3|qPGYNt6=wf1F@md zIgs^KwfK*(xP8qu@S5ARH)`tY$Dhc{dgKK_ns|0~A%R0VzO%F>iTA>woZef$`RsDj zz3s%xfEWL?{lQ%`dLcFaCPqPGb?zE$*@hm$Cp}pf_7Fg@4j{I z&POqDGfuz!Z|9w>1D+3ii-n`UFZ~CrpN{3m53X|4Qd7~?FC6e6tDS3e49Y48E935I znIs`i*FxqL)%i_)pH*H_o7q$#MQV(>-4#+Y@QD5^m+JBlOE)wFO*pBvIq=EBIT zJxl$5bwawnSe{295Glm-(+8L8K(c1j$wu#0W|H^p)D$y6|3p2q!Uwca(Ev%>SFkr- zU1eXZl`Xdi+se{M!-$Rj;Mrw_$Tj;mr~5fKTH{=~e$BoxPa>i}r>#<bM-88aYOr4B4yZYYaM4|CJh^2bTevZb=Z&(Rz)_Zh0Cdf0G9L-o0 zX_@-VdK(EwM!zq|$bX=~rP397B8~k^Hm;NYk!*kUJx!g@7J?D0$gGaIxX1j?-*%^7 zpz!;LDMuf=AbJNlqlf;SgcQ=1{s&@*$gjF1X?*!9+fEKzeB&Ejo6fIJ*82M7H2|#E zw7u7b)`0NT-QE3jbjnEe>8bR)8n;$I*%g0h=Nf~z331JhPqbnbA|`%(Bc*q|7j_qe zkbrBdf#mDS`^F1-6)iViZ%*c_urhs&dLf2gr$O|Qlo#6O{2sBe@mvAHnvsA zb*euBiT|~7Ko7TJ+X&^$LH>wd)n~-&e3sR8s&{SI^y)KOPZ0@nq;m(q_?{E>I5g;& ztnV<^I%J=kmQ(6w*^*MoAbHm6s*{S3RYdlbr{3>I4`uPF`TTN7&T-^B!5b76$~A1l zKf>DnC858uq`o|@nO0`z-A~WhX=TI{7f=10VXyFcEZZwt@g4<)0(<9V$2fB$T< z-dR~o5ywhIs(ttCTvXRk=;Cs2fGH8=mLMlv*b(`eqH>J!MX>&kq3gdt8JyaSDyn$Pu=u8Sa!A;9Hte!SViA?GxK^VD9zn%ST{j;KUL zr8#q~pW8u1Y!@;6e6{y)3l^dZx)JSKQAU1pM5Ish?^+bLLoH2N#MI@!ij3vY$ z{j2)WGZ_H0f(7*Is_IncQ|S6p6QxQKO~{7-(s-A9_eH zIoApSx|Ej&cGe(PvS=hWVPLnzt^Qd;NlN-!M`sIAlv)Hm+$;knGzBH{sWkCz_A>3iH+73AEflGMxU@Op(JY-4C>C?zFjU=@-eSm6cJ$jHxcZWZok2QK9&2=fS49u}e&XBeBurZy>zH6?9{oo{sOA2;l4 zzdgMx{K@Rup3gL46EN_MpimO&d?2_qZo3Wl^>6|(#VR0u!p4LNT&v-{4ZfF= zqn38?(2q{pHmPW6jOVI!N(46E!Dbp+0j0axpW`j`kZ>L>eD;%oJQQS{cjYkN7i*OM znwoNL3-|z3G4=DE$Mj30N=kSpF>>F2D5kzX{)f#}RvZ@A4E!I_U1ucR39zT zs~IhVALwiPJKW3oV)qz1q^HI)aycKTbG&f*o%@+hY$H5AJ`i}`w?-$6rVE7(P&iUJ&EB2n%zdz zbM(u3jW6<3U8ZHD7T97NXngT6ts=8Ve;3o2Vv(Zb?cCGJ3t^8`w-L&GsFo(@_H5AY zqjXkmbBmvZT;$!L=tm^$V|t>7KI7wFB03Q`J{XLoUbEzUo@<)sQ37JQs_4it}7BswyI?1;%JEM!wy*KWiq4;2)`6A~tnbLr*`T4@+$kYoq~U$)a) zd~4zokPAbjNi9g2XCYA9U1esIO;e`Cse|0B?(SUV+^4d#j|qagoMg!uqVCE}j}!F< zD27oOh!{o+i`_$tEO<%2z+Rh5c5O$jfQf2`BlYU|*yvemYK&i=D)SryhQD~}cz7NQ z?N#8bodX8%(Dr3KL7JzwF~;wu2f{P?UE~+y`!7_IrH?Ag2!G7uzD__#TgAQ16XXlR z#Qes=fy)rRGRKOJjK~@{%w@-cyrz#NLUBpg^@n=AysFCAS2lg#BFkg-MTYn5A@iem z-x@WFdgClkZXz!(=-#~hUMm^A&`xA^%A$zA^Rx1@CNpVE%1WC8Lyk|)lwh}ic->+5 z%aA$u*%^x5H?42VaW#&3$~4rXLR6%Z)5F6lNc<(QBEFggnf!E<#io&M&ymx*|0?&0 zLGHeg>bJ*FI{7`{T`NL(k*MbvW7X)++E zd5OT`o2A8c6V}!$9jxLI3K1AyUrGk4acm+*qpK*R? zewDCPA|#>9e>>DSJI7qAp~KTl{d{-uRGJ2jaENeZ!f>76XO&nvP=ii3?V-9SN`K?w zDZ}%~@1OJ(3-B;PUwSxUV-4aX=aQ6=7ozF1#M0Yg?*=%d`KX2}psvUK6b_D+jUMhY z5vyVo!$Zy`SWC;!Iai#vQ^$a(+(+(PrBMfQXeK?(Zmty4?KEi0DEGoh{CwIBc|{kV z+w)P@P_Fif;bkey$;nmggcBo47L-?&cw{Q+$;}^NAm__`s=&9?@CKDoHyg z8~s>m;oXFCE|%aN9x_db?CY#wMwwLh1u0WrZ;rl2AGQNLcKkmv`ZU!jqSz2NOT!2eZaXHk1VA<@{XysBe%rjA;c(dQg3+`|j9= z03!ImIxNr>w6s8FhirJ4v88nvio|?BjSr;tHAO{k^%y-+Co((VwxKc&g-F?&^IE)xf%RASIS9`|(a!C+WJ|&}4-HP`s5;9rC8;W{SHq)tXizUd2;8uaG|UcyuZAtiKbte7VHZ)eIqqzMWGv0s}KtPA*1Ij|w@LTvj%hhX>Ks)t-2j zc`ZsSA6F>B@l-j=_er))ky_rNTm_ZS!wy74{M258-AAQCJ#iK*pGx%k#-g+Z)x>4R zSr86$(hv@1hJU=l^wIEn^~LY_n7C7}<1~n}L8p4rJf$!wIU(Ed2f-Iq0u^xHG5zu2 z>wnuSYHw}Cuw^g7f*_QclqB?(HNmmwZ-3A`)wU2J^wE4r7oSa zVs3@Jb)>)CBWLj;+cJhe>$_+WvPY%lf;?V+q|DdVm6f=r_Zc*jzt(*RmqPstwh*!3 zmNzF>k(SQ+deJ>EKw&`7eQd`nwt6q3lQBq5bccen8N+rZZ**g)ooV#mueAlb_jCQs zzn6|5U?^$iBQe1DgxKutcm32y!(Ws-XQsNV`d>J7csK2ujhBE|U49*Sl@sc6TY>^nmCK_A~QzCFuC`L+$FCoMRc1#egbM8C7U!WU&mi&UQe_GsH zCuBoMayaS%=2y{;z-YhUnAF@rIL66^l0NzRx3VxIm$Dq4%Kf6zZJ|8@Fk#it-vP6Q~Cs~=3x(R*g`TuWTsCjDnB0+WJYY8|jiP(-)|<7|Gw;ivaFw7;qxwb=elxo{!nF7i(^e@nx3pXd9h2aj!$vHnAm@p#&;Rw3BYA7 zs(0Lix+4)lMnnYeRZyO;f=mq?ZJgb>1B9~K4abwB!R=pWPJo|QOrZzXzK8tcqH+F#!3S>6XkvGMBo7eu&(O47C>G~%+| zo9wOhgaLL_s-)KOiz~1GJTECmG?!|zL*)eb>(*6e*QUWtX53Bd#1o(0)8*EB+UrofK^eck=M_T(>^+s{!_gww zLGJ6{sQm5-DR5z7J6f9ZCmw$Gl7^u2g@#pT&%oU0xHzZ4Bf%nAo&XY70l(msn zVkZx9-oM$#q7oX;)+ z0JJQW=AM7`?oPyLMRKIx%WmZn7s*fVAF0g-aPB@SBUTm`K%+tB#^wyP>(-O3upSmA zB`}Qf`z?%j^qYQH_N6<<;1jLt*ScZ<>_dZt|5k2u$@Ea$XZE(>hJ@7OTD;LCH!1q@ zk)D9`V3g@2@C~{^10W%tVBHtk8hw4is=?l5`C6pbM}vh&&9oG&X-%L*=kexZi|?wm zL%~vCR8NYlagBcfb*F;rJ%5?yLF>`=!x(!jV=mXWd0p-SbgC6%%I)ziF<3D+Qh@3K z`9c50L{v&wzIGKUGj{|ntqq~XIbCk;QBN8^`+-eMbvi^0 zDJGqc#p(aM&ufF_B+6wr0QnW2o>!JaWHVsXYRCI1)t4$VC{&f_!}JkU`)n^Ow; zqyBzwi*M3g@*BNN2}{N7t0`l%{iZS-@M1kfpE!Fu-fbYJv<$LDT#*?k!aVP-*QqhS zn6gFhM)b{{jIFxgJ<-&$7&xeva`o*IzY6wqr#K#;e$;zioD%R04Rt>F{y^BpVyd#) ze(|}JQ?(d7ZCqSdRu;ervvs7{B)+x7FzCq7#|IdO379ui zJ!-=SSA7j+=?Mg~^U>9|Qj(M3AFLEIDiS0mQG!sj>`m|Y+L{MS$qSo5k>(NT^3yaD z6N)EX*ai8x2g`}~E65X7{`5Pb>#Y}!M)^662DXqhdaxGA_Ws%FHnn|uW!`AANJ(0f z1fZq^=Q#V^HbUgrj8TgRA_^P7yQ?O@!i{$H>s!fv!OAX^{l!iRW20*pl{@=SgCbZ) zGarh|_qBm8IQDE#E1AlNw253cD;MuW3B%!ZY2p4~b~$*YQ-teks>uQ_VWN1ya{A)i z&$*u_CMMof*rt_rbrcFOgH`X!5x}h$zOwpfq8vkyKq#-V8WN1`a-fIrb_p*<;7L@@ zr`XeVzt)=@QZr30Me7Y1oW@rqF{Cpn4LVANsj3u#Dk59y5t6 zZ9|Kww{9sR`G1u;lwZ|&NZSq>TFKgSka^2e>XQVR|3_m#T z`u!=}_=qgXICl2Jv@|ovHB5Z6G6z0AT@Wa8be8q0g`9VU9hR#XyIUVPo*22>OT*K{ zw=rKbLb0!p57>ZZ**M|Iktu0sWgaq2vyWWZa9Ax#aBI@0#TyK*y`1bKpT5@s_Pz^2 z%_sJAs$GkYBt@UF3z(|I#5djHz~;@ufm4t0=WxBr&GNC|&B^>WqBnSoLgef(yDC!R zqkky8iAu?{sFL2uvo>t?#f&AF9_`uV)VaiR{&`^zmJ04WpB(;6{kZu+-f`cvCn@>q z>8BqStdiKU?&7PbT(xl%pS5$`TqpeV*Rg3w_L|=;Jff|nZpdDB$07%qy%#RXFLvP$ zPE6c*t79AIoi)qXC2rQ_PeEE?TuE!l9XG)sidXr%PFn?watK^ad0Jn0wrw27FF8D?z3)`~1R)Qlkz=;8=|WyY448 z!=`$lvfW>gEZGj+Ub { const reach = read('skills-reach'); const inventories = Object.fromEntries(['claude', 'codex', 'opencode', 'cursor', 'grok', 'muse', 'antigravity'].map(id => [id, read('skills-' + id)])); const previews = new Map(); + const hooks = ['sessionStart', 'userPromptSubmit', 'subagentStart'].map((eventName, index) => ({ + id: 'fixture-hook-' + index, revision: 'fixture-hook-revision-' + index, pluginId: 'ponytail@local', eventName, + sourcePath: '/home/t3/.codex/plugins/cache/ponytail/hooks/hooks.json', handlerType: 'command', + command: 'node "/home/t3/.codex/plugins/cache/ponytail/hooks/' + ['activate', 'track', 'subagent'][index] + '.js"', + matcher: index ? null : 'startup|resume|clear|compact', timeoutSec: 15, async: false, + trustStatus: index === 1 ? 'modified' : index === 2 ? 'trusted' : 'untrusted', enabled: index !== 2, isManaged: false, readOnlyReason: null, + })); let serial = 0; let shared = '# How I work\n\nBe direct and specific. Explain tradeoffs and check your assumptions.\n\n## Before making changes\n\nRead the relevant code and tests. Keep changes focused on the task.\n\n## Quality\n\nTest the complete user journey. Preserve accessibility and keyboard controls.\n'; const answer = (body, status = 200) => ({ status, body }); @@ -25,6 +32,13 @@ const createSkillsFixtures = ({ partial = false } = {}) => { return answer({ ok: true, content: shared, bytes: Buffer.byteLength(shared), revision: 'fixture-shared', path: '/home/t3/.t3/setup/context/AGENTS.md' }); } if (!url.pathname.includes('/context/skills')) return null; + if (at('/hooks/state')) { + const hook = hooks.find(hook => hook.id === input.id); + if (!hook || hook.revision !== input.revision) return answer({ ok: false, error: 'The hook changed. Refresh and review the new definition.' }, 409); + if (input.action === 'trust') hook.trustStatus = 'trusted'; else hook.enabled = input.action === 'enable'; + hook.revision += '-saved'; return answer({ ok: true, hooks, warnings: [] }); + } + if (at('/hooks')) return answer({ ok: true, hooks, warnings: [] }); if (at('/reach')) return answer({ ...reach, scannedAt: Date.now() - 120000 }); if (at('/read')) { const skill = inventories[provider]?.skills.find(row => row.id === url.searchParams.get('id')); @@ -69,6 +83,6 @@ const createSkillsFixtures = ({ partial = false } = {}) => { } return answer({ ok: true }); }; - return { respond, inventories, reach, previews }; + return { respond, inventories, reach, previews, hooks }; }; module.exports = { createSkillsFixtures, contentFor, filesFor }; diff --git a/scripts/skills-hooks-smoke.mjs b/scripts/skills-hooks-smoke.mjs new file mode 100644 index 00000000..dcef77a5 --- /dev/null +++ b/scripts/skills-hooks-smoke.mjs @@ -0,0 +1,52 @@ +#!/usr/bin/env node +// Native hook trust in a disposable plugin/home. No thread, hook or model is run. +import assert from 'node:assert/strict'; +import * as fs from 'node:fs/promises'; +import os from 'node:os'; +import path from 'node:path'; +import { execFile } from 'node:child_process'; +import { promisify } from 'node:util'; +const { createSkillsService } = await import(process.env.T3_SKILLS_MODULE || new URL('../docker/setup/skills.mjs', import.meta.url)); +const executable = process.argv[2]; +if (!path.isAbsolute(executable || '')) throw Error('Pass an absolute Codex executable path.'); +const home = await fs.mkdtemp(path.join(os.tmpdir(), 't3-hooks-native-')); +try { + const env = { ...process.env, HOME: home, CODEX_HOME: path.join(home, '.codex'), XDG_CONFIG_HOME: path.join(home, '.config') }; + await fs.mkdir(env.CODEX_HOME, { recursive: true }); + for (const key of Object.keys(env)) if (/TOKEN|API_KEY/.test(key)) delete env[key]; + const marketplace = path.join(home, 'marketplace'), plugin = path.join(marketplace, 'plugins/hook-fixture'); + const put = async (file, data) => { await fs.mkdir(path.dirname(file), { recursive: true }); await fs.writeFile(file, data); }; + await put(path.join(marketplace, '.claude-plugin/marketplace.json'), JSON.stringify({ name: 'hook-smoke', owner: { name: 'Fixture' }, plugins: [{ name: 'hook-fixture', source: './plugins/hook-fixture' }] })); + await put(path.join(plugin, '.codex-plugin/plugin.json'), JSON.stringify({ name: 'hook-fixture', version: '1.0.0', skills: './skills/', hooks: './hooks/hooks.json' })); + await put(path.join(plugin, 'skills/hook-check/SKILL.md'), '---\nname: hook-check\ndescription: Native hook smoke fixture\n---\nFixture.\n'); + await put(path.join(plugin, 'hooks/never-run.js'), "require('node:fs').writeFileSync(require('node:path').join(process.env.HOME, 'HOOK_RAN'), 'unexpected');"); + const definition = command => JSON.stringify({ hooks: { SessionStart: [{ hooks: [{ type: 'command', command, timeout: 15 }] }] } }); + await put(path.join(plugin, 'hooks/hooks.json'), definition('node "${PLUGIN_ROOT}/hooks/never-run.js"')); + const run = promisify(execFile); + await run(executable, ['plugin', 'marketplace', 'add', marketplace], { env, cwd: home, timeout: 20000 }); + await run(executable, ['plugin', 'add', 'hook-fixture@hook-smoke'], { env, cwd: home, timeout: 20000 }); + const options = { home, env, getHarness: async () => ({ runnable: true, executable }) }; + let service = createSkillsService(options), inventory = await service.listHooks(), hook = inventory.hooks[0]; + assert.equal(inventory.hooks.length, 1); assert.equal(hook.pluginId, 'hook-fixture@hook-smoke'); assert.equal(hook.trustStatus, 'untrusted'); + const skill = (await service.list('codex')).skills.find(row => row.path.endsWith('/skills/hook-check/SKILL.md')); + assert.equal(skill?.pluginId, hook.pluginId, 'Plugin skills retain their identity for the inspector hook action'); + const settings = path.join(env.CODEX_HOME, 'config.toml'); + const persisted = path.join(home, 'persisted-config.toml'); + await fs.rename(settings, persisted); await fs.symlink(persisted, settings); + await fs.appendFile(settings, '\n# Keep this unrelated comment\n'); + // The symlink/comment change requires a fresh review before the first write. + hook = (await service.listHooks()).hooks[0]; + const before = await fs.readFile(settings, 'utf8'); + const disabled = await service.setHook(hook.id, hook.revision, 'disable'); hook = disabled.hooks[0]; assert.equal(hook.enabled, false); + hook = (await service.setHook(hook.id, hook.revision, 'trust')).hooks[0]; assert.equal(hook.trustStatus, 'trusted'); assert.equal(hook.enabled, false); + hook = (await service.setHook(hook.id, hook.revision, 'enable')).hooks[0]; assert.equal(hook.enabled, true); + service = createSkillsService(options); hook = (await service.listHooks()).hooks[0]; assert.equal(hook.trustStatus, 'trusted'); + await put(hook.sourcePath, definition('node "${PLUGIN_ROOT}/hooks/never-run.js" changed')); + await assert.rejects(service.setHook(hook.id, hook.revision, 'trust'), { code: 'conflict' }); + const modified = (await service.listHooks()).hooks[0]; assert.equal(modified.trustStatus, 'modified'); + assert((await fs.lstat(settings)).isSymbolicLink()); + assert.match(await fs.readFile(settings, 'utf8'), /hook-fixture/); assert.match(before, /hook-fixture/); + assert.match(await fs.readFile(settings, 'utf8'), /Keep this unrelated comment/); + await assert.rejects(fs.stat(path.join(home, 'HOOK_RAN')), { code: 'ENOENT' }); + console.log('Codex: installed-plugin discovery, separate trust/enablement, persisted trust and changed-definition rejection passed; no hooks ran.'); +} finally { await fs.rm(home, { recursive: true, force: true }); } diff --git a/scripts/skills-hooks-ui-audit.js b/scripts/skills-hooks-ui-audit.js new file mode 100644 index 00000000..ded011e7 --- /dev/null +++ b/scripts/skills-hooks-ui-audit.js @@ -0,0 +1,97 @@ +#!/usr/bin/env node +// Real console, synthetic hooks and intercepted writes. No native approvals. +let chromium; +try { ({ chromium } = require('playwright')); } catch { ({ chromium } = require('playwright-core')); } +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const path = require('node:path'); +const { statusFor, framed } = require('./lib/console-fixtures.cjs'); +const { createSkillsFixtures } = require('./lib/skills-fixtures.cjs'); +const base = process.argv[2] || 'http://127.0.0.1:23785/__setup/'; +const key = process.argv[3] || 'dev'; +const output = process.env.T3_HOOKS_UI_OUTPUT || '/tmp/t3-hooks-ui-audit'; fs.mkdirSync(output, { recursive: true }); +const deferred = () => { let resolve; const promise = new Promise(done => { resolve = done; }); return { resolve, promise }; }; +(async () => { + const browser = await chromium.launch({ executablePath: process.env.CHROME_PATH || '/usr/bin/chromium', args: ['--no-sandbox'] }); + try { + for (const theme of ['light', 'dark']) for (const [width, height, embedded] of [[1440, 900], [390, 844], [360, 720], [1198, 878, true]]) { + const page = await browser.newPage({ viewport: { width, height }, colorScheme: theme, reducedMotion: 'reduce' }); + page.setDefaultTimeout(8000); + await page.addInitScript(value => localStorage.setItem('t3-console-theme', value), theme); + const api = createSkillsFixtures(), errors = [], writes = []; + api.inventories.codex.skills.push({ ...api.inventories.codex.skills[0], id: 'ponytail-plugin-skill', name: 'ponytail', source: 'Plugin', scope: 'user', pluginId: 'ponytail@local', + path: '/home/t3/.codex/plugins/cache/ponytail/skills/ponytail/SKILL.md', resolvedPath: '/home/t3/.codex/plugins/cache/ponytail/skills/ponytail/SKILL.md', + canEdit: false, canRemove: false, canToggle: false, canSetState: false, stateReadOnlyReason: 'Managed through the plugin' }); + let reads = 0, getGate, getStarted, saveGate, saveStarted, failRead = false, failSave = false, empty = false; + page.on('pageerror', error => errors.push(error.message)); + await page.route('**/*', async route => { + const request = route.request(), url = new URL(request.url()), method = request.method(), input = method === 'POST' ? request.postDataJSON() : {}; + if (url.pathname.endsWith('/skills/hooks')) { + reads++; + if (getGate) { getStarted.resolve(); await getGate.promise; getGate = null; } + if (failRead) return route.fulfill({ status: 403, json: { ok: false, error: 'This Codex version could not read plugin hooks.' } }); + if (empty) return route.fulfill({ json: { ok: true, hooks: [], warnings: [] } }); + } + if (url.pathname.endsWith('/hooks/state')) { + writes.push(input); + if (saveGate) { saveStarted.resolve(); await saveGate.promise; saveGate = null; } + if (failSave) return route.fulfill({ status: 409, json: { ok: false, error: 'The hook changed outside the console. Review the new definition.' } }); + } + const response = api.respond(method, url, input) || (url.pathname.endsWith('/status') ? { body: statusFor('skills') } : null); + if (response) return route.fulfill({ status: response.status || 200, json: response.body }); + return route.continue(); + }); + const target = embedded ? await framed(page, base + '?embed=t3&theme=' + theme) : page; + if (!embedded) await page.goto(base); + if (await target.locator('input[type=password]').count()) { + await target.locator('input[type=password]').fill(key); await target.locator('button[type=submit]').click(); + } + await target.waitForSelector('#app'); + await target.evaluate(() => { location.hash = 'instructions/skills'; }); + await target.locator('[data-cmd="skills.hooks"]').waitFor(); assert.equal(reads, 0, 'No hook discovery during normal inventory/polling'); + await target.locator('[data-cmd="skills.hooks"]').click(); + const sheet = target.locator('.tc-skill-hooks'), first = () => sheet.locator('[data-hook="fixture-hook-0"]'); + await first().waitFor(); assert.equal(await sheet.locator('.tc-hook').count(), 3); + assert.match(await sheet.innerText(), /Changed · needs review/); assert.match(await sheet.innerText(), /Disabled/); + await page.screenshot({ path: path.join(output, `${theme}-${width}${embedded ? '-embedded' : ''}-hooks.png`) }); + assert(await sheet.evaluate(el => el.scrollWidth <= el.clientWidth + 1)); + await first().getByRole('button', { name: 'Review and trust…' }).click(); + const confirm = target.getByRole('alertdialog'); await confirm.waitFor(); + assert.match(await confirm.innerText(), /activate.js/); await confirm.getByRole('button', { name: 'Cancel' }).click(); + assert.equal(writes.length, 0); assert(await first().getByRole('button', { name: 'Review and trust…' }).evaluate(el => el === document.activeElement)); + saveGate = deferred(); saveStarted = deferred(); + await first().getByRole('button', { name: 'Review and trust…' }).click(); await confirm.getByRole('button', { name: 'Trust this hook', exact: true }).click(); + await saveStarted.promise; await page.keyboard.press('Escape'); assert(await sheet.isVisible()); + assert(await sheet.getByRole('button', { name: 'Done', exact: true }).isDisabled()); + assert(await target.evaluate(() => { const event = new Event('beforeunload', { cancelable: true }); dispatchEvent(event); return event.defaultPrevented; })); + saveGate.resolve(); await first().getByText('Trusted', { exact: true }).waitFor(); assert.equal(writes.length, 1); + await first().getByRole('button', { name: 'Disable hook' }).click(); await first().getByText('Disabled', { exact: true }).waitFor(); + await first().getByRole('button', { name: 'Enable hook…' }).click(); await confirm.getByRole('button', { name: 'Enable hook', exact: true }).click(); + await first().getByText('Enabled', { exact: true }).waitFor(); + failSave = true; + await first().getByRole('button', { name: 'Disable hook' }).click(); await sheet.getByRole('alert').waitFor(); + assert.equal(await sheet.locator('.tc-hook').count(), 0, 'Stale actions disappear after failure'); + failSave = false; await sheet.getByRole('button', { name: 'Refresh', exact: true }).click(); await first().waitFor(); + api.hooks[0].command = '' + ' long-argument'.repeat(80); + await sheet.getByRole('button', { name: 'Refresh', exact: true }).click(); await first().getByLabel('Hook command').filter({ hasText: '