@namzu/cli 29.0.0 → 29.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +146 -0
- package/README.md +20 -0
- package/dist/browser/commands.d.ts +29 -0
- package/dist/browser/commands.d.ts.map +1 -0
- package/dist/browser/commands.js +361 -0
- package/dist/browser/commands.js.map +1 -0
- package/dist/browser/control.d.ts +79 -0
- package/dist/browser/control.d.ts.map +1 -0
- package/dist/browser/control.js +140 -0
- package/dist/browser/control.js.map +1 -0
- package/dist/browser/describe.d.ts +12 -0
- package/dist/browser/describe.d.ts.map +1 -0
- package/dist/browser/describe.js +27 -0
- package/dist/browser/describe.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +29 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/acp.d.ts.map +1 -1
- package/dist/commands/acp.js +1 -0
- package/dist/commands/acp.js.map +1 -1
- package/dist/commands/browser.d.ts +7 -0
- package/dist/commands/browser.d.ts.map +1 -0
- package/dist/commands/browser.js +16 -0
- package/dist/commands/browser.js.map +1 -0
- package/dist/commands/drain.d.ts +2 -1
- package/dist/commands/drain.d.ts.map +1 -1
- package/dist/commands/drain.js +6 -3
- package/dist/commands/drain.js.map +1 -1
- package/dist/commands/exec-flags.d.ts +2 -1
- package/dist/commands/exec-flags.d.ts.map +1 -1
- package/dist/commands/exec-flags.js +6 -3
- package/dist/commands/exec-flags.js.map +1 -1
- package/dist/commands/exec-json.d.ts.map +1 -1
- package/dist/commands/exec-json.js +2 -1
- package/dist/commands/exec-json.js.map +1 -1
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +2 -1
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/host-queries.d.ts.map +1 -1
- package/dist/commands/host-queries.js +10 -3
- package/dist/commands/host-queries.js.map +1 -1
- package/dist/commands/schedule.d.ts +9 -0
- package/dist/commands/schedule.d.ts.map +1 -0
- package/dist/commands/schedule.js +126 -0
- package/dist/commands/schedule.js.map +1 -0
- package/dist/commands/serve.d.ts +3 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +5 -3
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/skills.d.ts +10 -0
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +23 -7
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/upgrade.d.ts +5 -0
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +11 -0
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/config/load.d.ts +39 -0
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +232 -1
- package/dist/config/load.js.map +1 -1
- package/dist/config/schema.d.ts +78 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/config/user-config.d.ts +23 -0
- package/dist/config/user-config.d.ts.map +1 -0
- package/dist/config/user-config.js +48 -0
- package/dist/config/user-config.js.map +1 -0
- package/dist/context/capabilities.d.ts +1 -1
- package/dist/context/capabilities.d.ts.map +1 -1
- package/dist/context/capabilities.js +1 -0
- package/dist/context/capabilities.js.map +1 -1
- package/dist/doctor/checks/browser.d.ts +15 -0
- package/dist/doctor/checks/browser.d.ts.map +1 -0
- package/dist/doctor/checks/browser.js +63 -0
- package/dist/doctor/checks/browser.js.map +1 -0
- package/dist/doctor/checks/index.d.ts +4 -1
- package/dist/doctor/checks/index.d.ts.map +1 -1
- package/dist/doctor/checks/index.js +8 -1
- package/dist/doctor/checks/index.js.map +1 -1
- package/dist/doctor/checks/scheduler.d.ts +10 -0
- package/dist/doctor/checks/scheduler.d.ts.map +1 -0
- package/dist/doctor/checks/scheduler.js +74 -0
- package/dist/doctor/checks/scheduler.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/notifications/desktop/freedesktop.d.ts +10 -0
- package/dist/integrations/notifications/desktop/freedesktop.d.ts.map +1 -0
- package/dist/integrations/notifications/desktop/freedesktop.js +33 -0
- package/dist/integrations/notifications/desktop/freedesktop.js.map +1 -0
- package/dist/integrations/notifications/desktop/macos.d.ts +6 -0
- package/dist/integrations/notifications/desktop/macos.d.ts.map +1 -0
- package/dist/integrations/notifications/desktop/macos.js +17 -0
- package/dist/integrations/notifications/desktop/macos.js.map +1 -0
- package/dist/integrations/notifications/desktop/sanitize.d.ts +16 -0
- package/dist/integrations/notifications/desktop/sanitize.d.ts.map +1 -0
- package/dist/integrations/notifications/desktop/sanitize.js +49 -0
- package/dist/integrations/notifications/desktop/sanitize.js.map +1 -0
- package/dist/integrations/notifications/desktop/throttle.d.ts +10 -0
- package/dist/integrations/notifications/desktop/throttle.d.ts.map +1 -0
- package/dist/integrations/notifications/desktop/throttle.js +39 -0
- package/dist/integrations/notifications/desktop/throttle.js.map +1 -0
- package/dist/integrations/notifications/desktop/windows-toast.d.ts +23 -0
- package/dist/integrations/notifications/desktop/windows-toast.d.ts.map +1 -0
- package/dist/integrations/notifications/desktop/windows-toast.js +56 -0
- package/dist/integrations/notifications/desktop/windows-toast.js.map +1 -0
- package/dist/integrations/notifications/desktop.d.ts +82 -0
- package/dist/integrations/notifications/desktop.d.ts.map +1 -0
- package/dist/integrations/notifications/desktop.js +198 -0
- package/dist/integrations/notifications/desktop.js.map +1 -0
- package/dist/integrations/resident/session-step.d.ts.map +1 -1
- package/dist/integrations/resident/session-step.js +1 -0
- package/dist/integrations/resident/session-step.js.map +1 -1
- package/dist/integrations/subagents/runtime.d.ts +6 -0
- package/dist/integrations/subagents/runtime.d.ts.map +1 -1
- package/dist/integrations/subagents/runtime.js +14 -5
- package/dist/integrations/subagents/runtime.js.map +1 -1
- package/dist/permissions/browser-sites.d.ts +95 -0
- package/dist/permissions/browser-sites.d.ts.map +1 -0
- package/dist/permissions/browser-sites.js +270 -0
- package/dist/permissions/browser-sites.js.map +1 -0
- package/dist/permissions/checks.d.ts.map +1 -1
- package/dist/permissions/checks.js +7 -1
- package/dist/permissions/checks.js.map +1 -1
- package/dist/permissions/rules.d.ts.map +1 -1
- package/dist/permissions/rules.js +4 -8
- package/dist/permissions/rules.js.map +1 -1
- package/dist/schedule/build.d.ts +79 -0
- package/dist/schedule/build.d.ts.map +1 -0
- package/dist/schedule/build.js +246 -0
- package/dist/schedule/build.js.map +1 -0
- package/dist/schedule/changes.d.ts +22 -0
- package/dist/schedule/changes.d.ts.map +1 -0
- package/dist/schedule/changes.js +55 -0
- package/dist/schedule/changes.js.map +1 -0
- package/dist/schedule/commands/add.d.ts +24 -0
- package/dist/schedule/commands/add.d.ts.map +1 -0
- package/dist/schedule/commands/add.js +459 -0
- package/dist/schedule/commands/add.js.map +1 -0
- package/dist/schedule/commands/args.d.ts +22 -0
- package/dist/schedule/commands/args.d.ts.map +1 -0
- package/dist/schedule/commands/args.js +80 -0
- package/dist/schedule/commands/args.js.map +1 -0
- package/dist/schedule/commands/confirm-prompt.d.ts +6 -0
- package/dist/schedule/commands/confirm-prompt.d.ts.map +1 -0
- package/dist/schedule/commands/confirm-prompt.js +21 -0
- package/dist/schedule/commands/confirm-prompt.js.map +1 -0
- package/dist/schedule/commands/lifecycle.d.ts +39 -0
- package/dist/schedule/commands/lifecycle.d.ts.map +1 -0
- package/dist/schedule/commands/lifecycle.js +585 -0
- package/dist/schedule/commands/lifecycle.js.map +1 -0
- package/dist/schedule/commands/list.d.ts +33 -0
- package/dist/schedule/commands/list.d.ts.map +1 -0
- package/dist/schedule/commands/list.js +202 -0
- package/dist/schedule/commands/list.js.map +1 -0
- package/dist/schedule/commands/logs.d.ts +7 -0
- package/dist/schedule/commands/logs.d.ts.map +1 -0
- package/dist/schedule/commands/logs.js +106 -0
- package/dist/schedule/commands/logs.js.map +1 -0
- package/dist/schedule/commands/service.d.ts +16 -0
- package/dist/schedule/commands/service.d.ts.map +1 -0
- package/dist/schedule/commands/service.js +458 -0
- package/dist/schedule/commands/service.js.map +1 -0
- package/dist/schedule/daemon/daemon.d.ts +156 -0
- package/dist/schedule/daemon/daemon.d.ts.map +1 -0
- package/dist/schedule/daemon/daemon.js +1248 -0
- package/dist/schedule/daemon/daemon.js.map +1 -0
- package/dist/schedule/daemon/endpoint.d.ts +38 -0
- package/dist/schedule/daemon/endpoint.d.ts.map +1 -0
- package/dist/schedule/daemon/endpoint.js +158 -0
- package/dist/schedule/daemon/endpoint.js.map +1 -0
- package/dist/schedule/daemon/exit.d.ts +8 -0
- package/dist/schedule/daemon/exit.d.ts.map +1 -0
- package/dist/schedule/daemon/exit.js +8 -0
- package/dist/schedule/daemon/exit.js.map +1 -0
- package/dist/schedule/daemon/log.d.ts +12 -0
- package/dist/schedule/daemon/log.d.ts.map +1 -0
- package/dist/schedule/daemon/log.js +53 -0
- package/dist/schedule/daemon/log.js.map +1 -0
- package/dist/schedule/daemon/notify.d.ts +31 -0
- package/dist/schedule/daemon/notify.d.ts.map +1 -0
- package/dist/schedule/daemon/notify.js +89 -0
- package/dist/schedule/daemon/notify.js.map +1 -0
- package/dist/schedule/daemon/retention.d.ts +16 -0
- package/dist/schedule/daemon/retention.d.ts.map +1 -0
- package/dist/schedule/daemon/retention.js +46 -0
- package/dist/schedule/daemon/retention.js.map +1 -0
- package/dist/schedule/daemon/sessions.d.ts +23 -0
- package/dist/schedule/daemon/sessions.d.ts.map +1 -0
- package/dist/schedule/daemon/sessions.js +52 -0
- package/dist/schedule/daemon/sessions.js.map +1 -0
- package/dist/schedule/env.d.ts +28 -0
- package/dist/schedule/env.d.ts.map +1 -0
- package/dist/schedule/env.js +99 -0
- package/dist/schedule/env.js.map +1 -0
- package/dist/schedule/fire/browser-preflight.d.ts +41 -0
- package/dist/schedule/fire/browser-preflight.d.ts.map +1 -0
- package/dist/schedule/fire/browser-preflight.js +73 -0
- package/dist/schedule/fire/browser-preflight.js.map +1 -0
- package/dist/schedule/fire/fire.d.ts +78 -0
- package/dist/schedule/fire/fire.d.ts.map +1 -0
- package/dist/schedule/fire/fire.js +482 -0
- package/dist/schedule/fire/fire.js.map +1 -0
- package/dist/schedule/fire/result.d.ts +13 -0
- package/dist/schedule/fire/result.d.ts.map +1 -0
- package/dist/schedule/fire/result.js +18 -0
- package/dist/schedule/fire/result.js.map +1 -0
- package/dist/schedule/fire/unattended-note.d.ts +22 -0
- package/dist/schedule/fire/unattended-note.d.ts.map +1 -0
- package/dist/schedule/fire/unattended-note.js +46 -0
- package/dist/schedule/fire/unattended-note.js.map +1 -0
- package/dist/schedule/floor.d.ts +116 -0
- package/dist/schedule/floor.d.ts.map +1 -0
- package/dist/schedule/floor.js +1051 -0
- package/dist/schedule/floor.js.map +1 -0
- package/dist/schedule/folder.d.ts +34 -0
- package/dist/schedule/folder.d.ts.map +1 -0
- package/dist/schedule/folder.js +84 -0
- package/dist/schedule/folder.js.map +1 -0
- package/dist/schedule/paths.d.ts +49 -0
- package/dist/schedule/paths.d.ts.map +1 -0
- package/dist/schedule/paths.js +53 -0
- package/dist/schedule/paths.js.map +1 -0
- package/dist/schedule/policy.d.ts +141 -0
- package/dist/schedule/policy.d.ts.map +1 -0
- package/dist/schedule/policy.js +378 -0
- package/dist/schedule/policy.js.map +1 -0
- package/dist/schedule/resume-command.d.ts +36 -0
- package/dist/schedule/resume-command.d.ts.map +1 -0
- package/dist/schedule/resume-command.js +72 -0
- package/dist/schedule/resume-command.js.map +1 -0
- package/dist/schedule/service/detect.d.ts +22 -0
- package/dist/schedule/service/detect.d.ts.map +1 -0
- package/dist/schedule/service/detect.js +29 -0
- package/dist/schedule/service/detect.js.map +1 -0
- package/dist/schedule/service/index.d.ts +48 -0
- package/dist/schedule/service/index.d.ts.map +1 -0
- package/dist/schedule/service/index.js +352 -0
- package/dist/schedule/service/index.js.map +1 -0
- package/dist/schedule/service/launchd.d.ts +24 -0
- package/dist/schedule/service/launchd.d.ts.map +1 -0
- package/dist/schedule/service/launchd.js +84 -0
- package/dist/schedule/service/launchd.js.map +1 -0
- package/dist/schedule/service/manifest.d.ts +44 -0
- package/dist/schedule/service/manifest.d.ts.map +1 -0
- package/dist/schedule/service/manifest.js +16 -0
- package/dist/schedule/service/manifest.js.map +1 -0
- package/dist/schedule/service/names.d.ts +9 -0
- package/dist/schedule/service/names.d.ts.map +1 -0
- package/dist/schedule/service/names.js +22 -0
- package/dist/schedule/service/names.js.map +1 -0
- package/dist/schedule/service/quote.d.ts +24 -0
- package/dist/schedule/service/quote.d.ts.map +1 -0
- package/dist/schedule/service/quote.js +64 -0
- package/dist/schedule/service/quote.js.map +1 -0
- package/dist/schedule/service/runner.d.ts +17 -0
- package/dist/schedule/service/runner.d.ts.map +1 -0
- package/dist/schedule/service/runner.js +31 -0
- package/dist/schedule/service/runner.js.map +1 -0
- package/dist/schedule/service/systemd.d.ts +37 -0
- package/dist/schedule/service/systemd.d.ts.map +1 -0
- package/dist/schedule/service/systemd.js +96 -0
- package/dist/schedule/service/systemd.js.map +1 -0
- package/dist/schedule/service/windows-task.d.ts +51 -0
- package/dist/schedule/service/windows-task.d.ts.map +1 -0
- package/dist/schedule/service/windows-task.js +134 -0
- package/dist/schedule/service/windows-task.js.map +1 -0
- package/dist/schedule/service/wsl.d.ts +57 -0
- package/dist/schedule/service/wsl.d.ts.map +1 -0
- package/dist/schedule/service/wsl.js +111 -0
- package/dist/schedule/service/wsl.js.map +1 -0
- package/dist/schedule/store/atomic.d.ts +43 -0
- package/dist/schedule/store/atomic.d.ts.map +1 -0
- package/dist/schedule/store/atomic.js +135 -0
- package/dist/schedule/store/atomic.js.map +1 -0
- package/dist/schedule/store/claims.d.ts +26 -0
- package/dist/schedule/store/claims.d.ts.map +1 -0
- package/dist/schedule/store/claims.js +57 -0
- package/dist/schedule/store/claims.js.map +1 -0
- package/dist/schedule/store/digest.d.ts +18 -0
- package/dist/schedule/store/digest.d.ts.map +1 -0
- package/dist/schedule/store/digest.js +139 -0
- package/dist/schedule/store/digest.js.map +1 -0
- package/dist/schedule/store/history.d.ts +21 -0
- package/dist/schedule/store/history.d.ts.map +1 -0
- package/dist/schedule/store/history.js +114 -0
- package/dist/schedule/store/history.js.map +1 -0
- package/dist/schedule/store/jobs.d.ts +61 -0
- package/dist/schedule/store/jobs.d.ts.map +1 -0
- package/dist/schedule/store/jobs.js +210 -0
- package/dist/schedule/store/jobs.js.map +1 -0
- package/dist/schedule/store/state.d.ts +19 -0
- package/dist/schedule/store/state.d.ts.map +1 -0
- package/dist/schedule/store/state.js +38 -0
- package/dist/schedule/store/state.js.map +1 -0
- package/dist/schedule/types.d.ts +256 -0
- package/dist/schedule/types.d.ts.map +1 -0
- package/dist/schedule/types.js +9 -0
- package/dist/schedule/types.js.map +1 -0
- package/dist/skills/catalog.d.ts +96 -0
- package/dist/skills/catalog.d.ts.map +1 -0
- package/dist/skills/catalog.js +226 -0
- package/dist/skills/catalog.js.map +1 -0
- package/dist/skills/save.d.ts +148 -0
- package/dist/skills/save.d.ts.map +1 -0
- package/dist/skills/save.js +344 -0
- package/dist/skills/save.js.map +1 -0
- package/dist/skills/store.d.ts +103 -16
- package/dist/skills/store.d.ts.map +1 -1
- package/dist/skills/store.js +230 -29
- package/dist/skills/store.js.map +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +591 -72
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/LiveActivity.d.ts +8 -1
- package/dist/tui/LiveActivity.d.ts.map +1 -1
- package/dist/tui/LiveActivity.js +20 -4
- package/dist/tui/LiveActivity.js.map +1 -1
- package/dist/tui/PermissionOverlay.d.ts +24 -4
- package/dist/tui/PermissionOverlay.d.ts.map +1 -1
- package/dist/tui/PermissionOverlay.js +113 -15
- package/dist/tui/PermissionOverlay.js.map +1 -1
- package/dist/tui/SaveSkillOverlay.d.ts +33 -0
- package/dist/tui/SaveSkillOverlay.d.ts.map +1 -0
- package/dist/tui/SaveSkillOverlay.js +118 -0
- package/dist/tui/SaveSkillOverlay.js.map +1 -0
- package/dist/tui/agent.d.ts +185 -5
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/agent.js +325 -54
- package/dist/tui/agent.js.map +1 -1
- package/dist/tui/browser-notices.d.ts +33 -0
- package/dist/tui/browser-notices.d.ts.map +1 -0
- package/dist/tui/browser-notices.js +102 -0
- package/dist/tui/browser-notices.js.map +1 -0
- package/dist/tui/permission-review.d.ts.map +1 -1
- package/dist/tui/permission-review.js +53 -4
- package/dist/tui/permission-review.js.map +1 -1
- package/dist/tui/schedule/host-commands.d.ts +34 -0
- package/dist/tui/schedule/host-commands.d.ts.map +1 -0
- package/dist/tui/schedule/host-commands.js +309 -0
- package/dist/tui/schedule/host-commands.js.map +1 -0
- package/dist/tui/schedule/integration.d.ts +62 -0
- package/dist/tui/schedule/integration.d.ts.map +1 -0
- package/dist/tui/schedule/integration.js +145 -0
- package/dist/tui/schedule/integration.js.map +1 -0
- package/dist/tui/schedule/loop-host.d.ts +42 -0
- package/dist/tui/schedule/loop-host.d.ts.map +1 -0
- package/dist/tui/schedule/loop-host.js +153 -0
- package/dist/tui/schedule/loop-host.js.map +1 -0
- package/dist/tui/schedule/resume.d.ts +122 -0
- package/dist/tui/schedule/resume.d.ts.map +1 -0
- package/dist/tui/schedule/resume.js +324 -0
- package/dist/tui/schedule/resume.js.map +1 -0
- package/dist/tui/schedule/startup.d.ts +11 -0
- package/dist/tui/schedule/startup.d.ts.map +1 -0
- package/dist/tui/schedule/startup.js +121 -0
- package/dist/tui/schedule/startup.js.map +1 -0
- package/dist/tui/schedule/tool-host.d.ts +44 -0
- package/dist/tui/schedule/tool-host.d.ts.map +1 -0
- package/dist/tui/schedule/tool-host.js +294 -0
- package/dist/tui/schedule/tool-host.js.map +1 -0
- package/dist/tui/skills/learning.d.ts +74 -0
- package/dist/tui/skills/learning.d.ts.map +1 -0
- package/dist/tui/skills/learning.js +131 -0
- package/dist/tui/skills/learning.js.map +1 -0
- package/dist/tui/skills/suggest-setting.d.ts +22 -0
- package/dist/tui/skills/suggest-setting.d.ts.map +1 -0
- package/dist/tui/skills/suggest-setting.js +55 -0
- package/dist/tui/skills/suggest-setting.js.map +1 -0
- package/dist/tui/skills/suggestion-ledger.d.ts +35 -0
- package/dist/tui/skills/suggestion-ledger.d.ts.map +1 -0
- package/dist/tui/skills/suggestion-ledger.js +52 -0
- package/dist/tui/skills/suggestion-ledger.js.map +1 -0
- package/dist/tui/slashCommands.d.ts +20 -0
- package/dist/tui/slashCommands.d.ts.map +1 -1
- package/dist/tui/slashCommands.js +76 -2
- package/dist/tui/slashCommands.js.map +1 -1
- package/dist/tui/turn-interruption.d.ts +20 -1
- package/dist/tui/turn-interruption.d.ts.map +1 -1
- package/dist/tui/turn-interruption.js +43 -0
- package/dist/tui/turn-interruption.js.map +1 -1
- package/dist/tui/types.d.ts +9 -1
- package/dist/tui/types.d.ts.map +1 -1
- package/package.json +5 -3
- package/skills/README.md +15 -0
- package/skills/browser-automation/SKILL.md +84 -0
- package/skills/schedule-task/SKILL.md +140 -0
- package/skills/skill-creator/SKILL.md +101 -0
package/dist/skills/store.d.ts
CHANGED
|
@@ -2,22 +2,37 @@
|
|
|
2
2
|
* Skill loader — agentskills.io-style `SKILL.md` files.
|
|
3
3
|
*
|
|
4
4
|
* A skill is a directory containing a `SKILL.md` with YAML frontmatter
|
|
5
|
-
* (`name`, `description`) and a markdown body. Skills are discovered from
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* - project: `<cwd>/.namzu/skills/<name>/SKILL.md`
|
|
9
|
-
* - legacy project: `<cwd>/skills/<name>/SKILL.md`
|
|
5
|
+
* (`name`, `description`) and a markdown body. Skills are discovered from six
|
|
6
|
+
* tiers, lowest precedence first; a later tier shadows an earlier one's skill
|
|
7
|
+
* of the same name:
|
|
10
8
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
9
|
+
* 1. system: `<package>/skills/<name>/SKILL.md` (shipped with the CLI)
|
|
10
|
+
* 2. `~/.agents/skills/<name>/SKILL.md` (shared with other agents)
|
|
11
|
+
* 3. `~/.namzu/skills/<name>/SKILL.md`
|
|
12
|
+
* 4. legacy project: `<cwd>/skills/<name>/SKILL.md`
|
|
13
|
+
* 5. `.agents/skills/<name>/SKILL.md` in every directory from the checkout's
|
|
14
|
+
* root down to `<cwd>` (deeper wins)
|
|
15
|
+
* 6. project: `<cwd>/.namzu/skills/<name>/SKILL.md`
|
|
16
|
+
*
|
|
17
|
+
* The operator lists them (`/skills list`, `namzu skills`) and activates one
|
|
18
|
+
* (`/skills <name>`) by injecting its body into the system prompt; the model
|
|
19
|
+
* sees them through the session catalog (`catalog.ts`) and loads one with
|
|
20
|
+
* the kernel's `skill` tool.
|
|
14
21
|
*/
|
|
15
|
-
|
|
22
|
+
import type { SkillsConfig } from '../config/schema.js';
|
|
23
|
+
/** Who a skill belongs to: shipped with the CLI, the operator's, or the project's. */
|
|
24
|
+
export type SkillSource = 'system' | 'user' | 'project';
|
|
25
|
+
/** The directory family a skill was found in, lowest precedence first. */
|
|
26
|
+
export type SkillTier = 'system' | 'agents-user' | 'user' | 'legacy-project' | 'agents-project' | 'project';
|
|
27
|
+
/** Precedence order, lowest first. A later tier shadows an earlier one. */
|
|
28
|
+
export declare const SKILL_TIERS: readonly SkillTier[];
|
|
16
29
|
export interface SkillInfo {
|
|
17
30
|
readonly name: string;
|
|
18
31
|
readonly description: string;
|
|
19
32
|
readonly path: string;
|
|
20
33
|
readonly source: SkillSource;
|
|
34
|
+
/** The directory family it came from; see {@link SKILL_TIERS}. */
|
|
35
|
+
readonly tier: SkillTier;
|
|
21
36
|
/**
|
|
22
37
|
* Why this skill cannot be used, when it cannot.
|
|
23
38
|
*
|
|
@@ -25,15 +40,60 @@ export interface SkillInfo {
|
|
|
25
40
|
* loaded with the metadata missing, but refusing it must not take the rest
|
|
26
41
|
* of the roster with it: one unreadable file in `~/.namzu/skills` would
|
|
27
42
|
* otherwise leave the operator with no skills and no reason. So it stays in
|
|
28
|
-
* the list, named, carrying the reason it is unusable.
|
|
43
|
+
* the list, named, carrying the reason it is unusable. A skill named in
|
|
44
|
+
* `skills.disabled` is listed the same way.
|
|
29
45
|
*/
|
|
30
46
|
readonly problem?: string;
|
|
47
|
+
/** Named in the config's `skills.disabled`. */
|
|
48
|
+
readonly disabled?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* `operator` when the author wrote `invocation: operator` or
|
|
51
|
+
* `disable-model-invocation: true`: the model is never offered it.
|
|
52
|
+
*/
|
|
53
|
+
readonly invocation?: 'model' | 'operator' | 'both';
|
|
54
|
+
/** Tools the session must have for the model to be offered it (`metadata.namzu-requires-tools`). */
|
|
55
|
+
readonly requiresTools?: readonly string[];
|
|
56
|
+
/** Lower-precedence `SKILL.md` files of the same name this one hides. */
|
|
57
|
+
readonly shadows?: readonly string[];
|
|
31
58
|
}
|
|
59
|
+
export interface SkillDiscoveryOptions {
|
|
60
|
+
/** The operator's home directory; `~/.agents` and `~/.namzu` resolve under it. */
|
|
61
|
+
readonly home?: string;
|
|
62
|
+
readonly cwd?: string;
|
|
63
|
+
readonly config?: SkillsConfig;
|
|
64
|
+
/** The system tier's directory. Defaults to the one shipped in this package. */
|
|
65
|
+
readonly systemDir?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The built-in skills shipped in this package's `skills/` directory.
|
|
69
|
+
*
|
|
70
|
+
* Resolved from this module's own location, so it is the same directory from
|
|
71
|
+
* `src/skills/store.ts` under the test runner and from `dist/skills/store.js`
|
|
72
|
+
* in an installed package — both sit two levels below the package root.
|
|
73
|
+
*/
|
|
74
|
+
export declare function systemSkillsDir(): string;
|
|
75
|
+
export declare function agentsUserSkillsDir(home?: string): string;
|
|
32
76
|
export declare function userSkillsDir(home?: string): string;
|
|
33
77
|
export declare function projectSkillsDir(cwd?: string): string;
|
|
78
|
+
/**
|
|
79
|
+
* Every `.agents/skills` from the checkout's root down to `cwd`, shallowest
|
|
80
|
+
* first. Outside a checkout, only `cwd`'s own.
|
|
81
|
+
*
|
|
82
|
+
* The root is the nearest ancestor holding a `.git` entry (a directory, or a
|
|
83
|
+
* file in a worktree). Directories above it are not read: a skill in
|
|
84
|
+
* `~/code/.agents/skills` belongs to no project in particular.
|
|
85
|
+
*/
|
|
86
|
+
export declare function agentsProjectSkillsDirs(cwd?: string): string[];
|
|
87
|
+
/** The directories read, in precedence order (lowest first). */
|
|
88
|
+
export declare function skillRoots(opts?: SkillDiscoveryOptions): {
|
|
89
|
+
readonly tier: SkillTier;
|
|
90
|
+
readonly dir: string;
|
|
91
|
+
}[];
|
|
34
92
|
interface ParsedSkill {
|
|
35
93
|
readonly name?: string;
|
|
36
94
|
readonly description?: string;
|
|
95
|
+
readonly invocation?: 'model' | 'operator' | 'both';
|
|
96
|
+
readonly requiresTools?: readonly string[];
|
|
37
97
|
readonly body: string;
|
|
38
98
|
}
|
|
39
99
|
/**
|
|
@@ -67,13 +127,31 @@ interface ParsedSkill {
|
|
|
67
127
|
*/
|
|
68
128
|
export declare function parseSkillMarkdown(raw: string, source?: string): ParsedSkill;
|
|
69
129
|
/**
|
|
70
|
-
*
|
|
71
|
-
*
|
|
130
|
+
* `metadata.namzu-requires-tools`: tool names separated by commas or spaces.
|
|
131
|
+
* Undefined when absent or empty.
|
|
132
|
+
*/
|
|
133
|
+
export declare function parseRequiredTools(declared: string | undefined): readonly string[] | undefined;
|
|
134
|
+
/** Every skill found, winners and the ones they shadow. */
|
|
135
|
+
export interface SkillRoster {
|
|
136
|
+
/** One per name: the highest-precedence tier's, sorted by name. */
|
|
137
|
+
readonly skills: readonly SkillInfo[];
|
|
138
|
+
/** The lower-precedence files hidden by a winner, each naming the path that hides it. */
|
|
139
|
+
readonly shadowed: readonly (SkillInfo & {
|
|
140
|
+
readonly shadowedBy: string;
|
|
141
|
+
})[];
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Discover every tier and resolve shadowing. A name in `skills.disabled` is
|
|
145
|
+
* kept in the list, marked, with the reason it cannot be used.
|
|
72
146
|
*/
|
|
73
|
-
export declare function
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
147
|
+
export declare function discoverSkillRoster(opts?: SkillDiscoveryOptions): SkillRoster;
|
|
148
|
+
/**
|
|
149
|
+
* Discover all skills, the highest-precedence tier winning on a name clash.
|
|
150
|
+
* Returns an empty list when no skill dirs exist.
|
|
151
|
+
*/
|
|
152
|
+
export declare function discoverSkills(opts?: SkillDiscoveryOptions): SkillInfo[];
|
|
153
|
+
/** How a tier reads in a listing: where the file lives, in the operator's words. */
|
|
154
|
+
export declare function skillTierLabel(tier: SkillTier): string;
|
|
77
155
|
/** Read a skill's markdown body (frontmatter stripped). */
|
|
78
156
|
export declare function loadSkillBody(info: SkillInfo): string;
|
|
79
157
|
/** Compose the active-skills system block, or null when none are active. */
|
|
@@ -81,5 +159,14 @@ export declare function composeSkillsPrompt(active: ReadonlyArray<{
|
|
|
81
159
|
name: string;
|
|
82
160
|
body: string;
|
|
83
161
|
}>): string | null;
|
|
162
|
+
/** What `/skills` says when no tier holds a skill. */
|
|
163
|
+
export declare const NO_SKILLS_FOUND = "No skills found. Add one at ~/.namzu/skills/<name>/SKILL.md, ~/.agents/skills/<name>/SKILL.md or ./.agents/skills/<name>/SKILL.md.";
|
|
164
|
+
/**
|
|
165
|
+
* `/skills list`: every skill with where it came from, what it hides, and why
|
|
166
|
+
* it cannot be used when it cannot. A refused skill is shown with its reason
|
|
167
|
+
* rather than hidden — dropping it silently would leave someone wondering
|
|
168
|
+
* where a file they can see on disk went.
|
|
169
|
+
*/
|
|
170
|
+
export declare function renderSkillRoster(skills: readonly SkillInfo[], activeNames: ReadonlySet<string>): string;
|
|
84
171
|
export {};
|
|
85
172
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/skills/store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/skills/store.ts"],"names":[],"mappings":"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"}
|
package/dist/skills/store.js
CHANGED
|
@@ -2,20 +2,59 @@
|
|
|
2
2
|
* Skill loader — agentskills.io-style `SKILL.md` files.
|
|
3
3
|
*
|
|
4
4
|
* A skill is a directory containing a `SKILL.md` with YAML frontmatter
|
|
5
|
-
* (`name`, `description`) and a markdown body. Skills are discovered from
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* - project: `<cwd>/.namzu/skills/<name>/SKILL.md`
|
|
9
|
-
* - legacy project: `<cwd>/skills/<name>/SKILL.md`
|
|
5
|
+
* (`name`, `description`) and a markdown body. Skills are discovered from six
|
|
6
|
+
* tiers, lowest precedence first; a later tier shadows an earlier one's skill
|
|
7
|
+
* of the same name:
|
|
10
8
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
9
|
+
* 1. system: `<package>/skills/<name>/SKILL.md` (shipped with the CLI)
|
|
10
|
+
* 2. `~/.agents/skills/<name>/SKILL.md` (shared with other agents)
|
|
11
|
+
* 3. `~/.namzu/skills/<name>/SKILL.md`
|
|
12
|
+
* 4. legacy project: `<cwd>/skills/<name>/SKILL.md`
|
|
13
|
+
* 5. `.agents/skills/<name>/SKILL.md` in every directory from the checkout's
|
|
14
|
+
* root down to `<cwd>` (deeper wins)
|
|
15
|
+
* 6. project: `<cwd>/.namzu/skills/<name>/SKILL.md`
|
|
16
|
+
*
|
|
17
|
+
* The operator lists them (`/skills list`, `namzu skills`) and activates one
|
|
18
|
+
* (`/skills <name>`) by injecting its body into the system prompt; the model
|
|
19
|
+
* sees them through the session catalog (`catalog.ts`) and loads one with
|
|
20
|
+
* the kernel's `skill` tool.
|
|
14
21
|
*/
|
|
15
|
-
import { readFileSync, readdirSync } from 'node:fs';
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
22
|
+
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
23
|
+
import { homedir } from 'node:os';
|
|
24
|
+
import { dirname, join, relative, resolve, sep } from 'node:path';
|
|
25
|
+
import { fileURLToPath } from 'node:url';
|
|
26
|
+
import { SKILL_FRONTMATTER_KEYS, parseFrontmatter } from '@namzu/sdk';
|
|
18
27
|
import { namzuHomePath } from '../integrations/state/home.js';
|
|
28
|
+
/** Precedence order, lowest first. A later tier shadows an earlier one. */
|
|
29
|
+
export const SKILL_TIERS = [
|
|
30
|
+
'system',
|
|
31
|
+
'agents-user',
|
|
32
|
+
'user',
|
|
33
|
+
'legacy-project',
|
|
34
|
+
'agents-project',
|
|
35
|
+
'project',
|
|
36
|
+
];
|
|
37
|
+
const TIER_SOURCE = {
|
|
38
|
+
system: 'system',
|
|
39
|
+
'agents-user': 'user',
|
|
40
|
+
user: 'user',
|
|
41
|
+
'legacy-project': 'project',
|
|
42
|
+
'agents-project': 'project',
|
|
43
|
+
project: 'project',
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* The built-in skills shipped in this package's `skills/` directory.
|
|
47
|
+
*
|
|
48
|
+
* Resolved from this module's own location, so it is the same directory from
|
|
49
|
+
* `src/skills/store.ts` under the test runner and from `dist/skills/store.js`
|
|
50
|
+
* in an installed package — both sit two levels below the package root.
|
|
51
|
+
*/
|
|
52
|
+
export function systemSkillsDir() {
|
|
53
|
+
return fileURLToPath(new URL('../../skills/', import.meta.url));
|
|
54
|
+
}
|
|
55
|
+
export function agentsUserSkillsDir(home) {
|
|
56
|
+
return join(home ?? homedir(), '.agents', 'skills');
|
|
57
|
+
}
|
|
19
58
|
export function userSkillsDir(home) {
|
|
20
59
|
return join(namzuHomePath(home), 'skills');
|
|
21
60
|
}
|
|
@@ -25,6 +64,53 @@ export function projectSkillsDir(cwd = process.cwd()) {
|
|
|
25
64
|
function legacyProjectSkillsDir(cwd = process.cwd()) {
|
|
26
65
|
return join(cwd, 'skills');
|
|
27
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Every `.agents/skills` from the checkout's root down to `cwd`, shallowest
|
|
69
|
+
* first. Outside a checkout, only `cwd`'s own.
|
|
70
|
+
*
|
|
71
|
+
* The root is the nearest ancestor holding a `.git` entry (a directory, or a
|
|
72
|
+
* file in a worktree). Directories above it are not read: a skill in
|
|
73
|
+
* `~/code/.agents/skills` belongs to no project in particular.
|
|
74
|
+
*/
|
|
75
|
+
export function agentsProjectSkillsDirs(cwd = process.cwd()) {
|
|
76
|
+
const start = resolve(cwd);
|
|
77
|
+
let root;
|
|
78
|
+
for (let dir = start;; dir = dirname(dir)) {
|
|
79
|
+
if (existsSync(join(dir, '.git'))) {
|
|
80
|
+
root = dir;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
if (dirname(dir) === dir)
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
if (root === undefined)
|
|
87
|
+
return [join(start, '.agents', 'skills')];
|
|
88
|
+
const dirs = [root];
|
|
89
|
+
const rest = relative(root, start);
|
|
90
|
+
if (rest) {
|
|
91
|
+
let current = root;
|
|
92
|
+
for (const part of rest.split(sep)) {
|
|
93
|
+
current = join(current, part);
|
|
94
|
+
dirs.push(current);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return dirs.map((dir) => join(dir, '.agents', 'skills'));
|
|
98
|
+
}
|
|
99
|
+
/** The directories read, in precedence order (lowest first). */
|
|
100
|
+
export function skillRoots(opts = {}) {
|
|
101
|
+
const roots = [];
|
|
102
|
+
if (opts.config?.builtin !== false) {
|
|
103
|
+
roots.push({ tier: 'system', dir: opts.systemDir ?? systemSkillsDir() });
|
|
104
|
+
}
|
|
105
|
+
roots.push({ tier: 'agents-user', dir: agentsUserSkillsDir(opts.home) });
|
|
106
|
+
roots.push({ tier: 'user', dir: userSkillsDir(opts.home) });
|
|
107
|
+
roots.push({ tier: 'legacy-project', dir: legacyProjectSkillsDir(opts.cwd) });
|
|
108
|
+
for (const dir of agentsProjectSkillsDirs(opts.cwd))
|
|
109
|
+
roots.push({ tier: 'agents-project', dir });
|
|
110
|
+
roots.push({ tier: 'project', dir: projectSkillsDir(opts.cwd) });
|
|
111
|
+
return roots;
|
|
112
|
+
}
|
|
113
|
+
const READS_SKILL_KEY = (key) => SKILL_FRONTMATTER_KEYS.includes(key);
|
|
28
114
|
/**
|
|
29
115
|
* Split `SKILL.md` into frontmatter (name/description) + body.
|
|
30
116
|
*
|
|
@@ -57,21 +143,65 @@ function legacyProjectSkillsDir(cwd = process.cwd()) {
|
|
|
57
143
|
export function parseSkillMarkdown(raw, source = 'SKILL.md') {
|
|
58
144
|
if (!raw.trimStart().startsWith('---'))
|
|
59
145
|
return { body: raw.trim() };
|
|
60
|
-
|
|
146
|
+
// The kernel loader's vocabulary: a key it does not read is skipped whole,
|
|
147
|
+
// so a skill written for another agent (`argument-hint: [file]`) is not
|
|
148
|
+
// refused here over a field nothing reads. `allowed-tools` may be a YAML
|
|
149
|
+
// list, as the Agent Skills format writes it; the kernel's loader accepts
|
|
150
|
+
// the same.
|
|
151
|
+
const { values, body } = parseFrontmatter(raw, source, {
|
|
152
|
+
lists: ['allowed-tools'],
|
|
153
|
+
readsKey: READS_SKILL_KEY,
|
|
154
|
+
});
|
|
61
155
|
// A non-scalar `name` or `description` is dropped rather than rendered:
|
|
62
156
|
// there is no sensible string for a block of indented pairs, and the
|
|
63
157
|
// fallbacks below (directory name, "(no description)") are the honest
|
|
64
158
|
// answer for a key that did not carry one.
|
|
65
159
|
const name = values.name?.kind === 'scalar' ? values.name.value : undefined;
|
|
66
160
|
const description = values.description?.kind === 'scalar' ? values.description.value : undefined;
|
|
67
|
-
|
|
161
|
+
const declared = values.invocation?.kind === 'scalar' ? values.invocation.value : undefined;
|
|
162
|
+
const disableModel = values['disable-model-invocation']?.kind === 'scalar'
|
|
163
|
+
? values['disable-model-invocation'].value
|
|
164
|
+
: undefined;
|
|
165
|
+
const invocation = disableModel === 'true'
|
|
166
|
+
? 'operator'
|
|
167
|
+
: declared === 'model' || declared === 'operator' || declared === 'both'
|
|
168
|
+
? declared
|
|
169
|
+
: undefined;
|
|
170
|
+
const metadata = values.metadata?.kind === 'mapping' ? values.metadata.entries : undefined;
|
|
171
|
+
const requiresTools = parseRequiredTools(metadata && Object.hasOwn(metadata, 'namzu-requires-tools')
|
|
172
|
+
? metadata['namzu-requires-tools']
|
|
173
|
+
: undefined);
|
|
174
|
+
return {
|
|
175
|
+
name,
|
|
176
|
+
description,
|
|
177
|
+
...(invocation ? { invocation } : {}),
|
|
178
|
+
...(requiresTools ? { requiresTools } : {}),
|
|
179
|
+
body,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* `metadata.namzu-requires-tools`: tool names separated by commas or spaces.
|
|
184
|
+
* Undefined when absent or empty.
|
|
185
|
+
*/
|
|
186
|
+
export function parseRequiredTools(declared) {
|
|
187
|
+
if (declared === undefined)
|
|
188
|
+
return undefined;
|
|
189
|
+
const names = declared
|
|
190
|
+
.split(/[\s,]+/)
|
|
191
|
+
.map((name) => name.trim())
|
|
192
|
+
.filter((name) => name.length > 0);
|
|
193
|
+
return names.length > 0 ? names : undefined;
|
|
68
194
|
}
|
|
69
|
-
function readSkillsFrom(dir,
|
|
195
|
+
function readSkillsFrom(dir, tier) {
|
|
196
|
+
const source = TIER_SOURCE[tier];
|
|
70
197
|
let entries;
|
|
71
198
|
try {
|
|
72
199
|
entries = readdirSync(dir, { withFileTypes: true })
|
|
73
|
-
|
|
74
|
-
|
|
200
|
+
// Hidden and `_`-prefixed entries are not skills, as in the kernel's
|
|
201
|
+
// own discovery: `.gitkeep`-style placeholders and drafts stay out.
|
|
202
|
+
.filter((e) => e.isDirectory() && !e.name.startsWith('.') && !e.name.startsWith('_'))
|
|
203
|
+
.map((e) => e.name)
|
|
204
|
+
.sort();
|
|
75
205
|
}
|
|
76
206
|
catch {
|
|
77
207
|
return [];
|
|
@@ -99,6 +229,7 @@ function readSkillsFrom(dir, source) {
|
|
|
99
229
|
description: '(could not be read)',
|
|
100
230
|
path,
|
|
101
231
|
source,
|
|
232
|
+
tier,
|
|
102
233
|
problem: err instanceof Error ? err.message : String(err),
|
|
103
234
|
});
|
|
104
235
|
continue;
|
|
@@ -108,26 +239,71 @@ function readSkillsFrom(dir, source) {
|
|
|
108
239
|
description: parsed.description ?? '(no description)',
|
|
109
240
|
path,
|
|
110
241
|
source,
|
|
242
|
+
tier,
|
|
243
|
+
...(parsed.invocation ? { invocation: parsed.invocation } : {}),
|
|
244
|
+
...(parsed.requiresTools ? { requiresTools: parsed.requiresTools } : {}),
|
|
111
245
|
});
|
|
112
246
|
}
|
|
113
247
|
return skills;
|
|
114
248
|
}
|
|
115
249
|
/**
|
|
116
|
-
* Discover
|
|
117
|
-
*
|
|
250
|
+
* Discover every tier and resolve shadowing. A name in `skills.disabled` is
|
|
251
|
+
* kept in the list, marked, with the reason it cannot be used.
|
|
118
252
|
*/
|
|
119
|
-
export function
|
|
120
|
-
const
|
|
121
|
-
const legacyProject = readSkillsFrom(legacyProjectSkillsDir(opts.cwd), 'project');
|
|
122
|
-
const project = readSkillsFrom(projectSkillsDir(opts.cwd), 'project');
|
|
253
|
+
export function discoverSkillRoster(opts = {}) {
|
|
254
|
+
const disabled = new Set(opts.config?.disabled ?? []);
|
|
123
255
|
const byName = new Map();
|
|
124
|
-
for (const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
256
|
+
for (const root of skillRoots(opts)) {
|
|
257
|
+
for (const skill of readSkillsFrom(root.dir, root.tier)) {
|
|
258
|
+
const list = byName.get(skill.name) ?? [];
|
|
259
|
+
list.push(skill);
|
|
260
|
+
byName.set(skill.name, list);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
const skills = [];
|
|
264
|
+
const shadowed = [];
|
|
265
|
+
for (const [name, found] of byName) {
|
|
266
|
+
const winner = found[found.length - 1];
|
|
267
|
+
const hidden = found.slice(0, -1).reverse();
|
|
268
|
+
for (const lower of hidden)
|
|
269
|
+
shadowed.push({ ...lower, shadowedBy: winner.path });
|
|
270
|
+
skills.push({
|
|
271
|
+
...winner,
|
|
272
|
+
...(hidden.length > 0 ? { shadows: hidden.map((lower) => lower.path) } : {}),
|
|
273
|
+
...(disabled.has(name)
|
|
274
|
+
? {
|
|
275
|
+
disabled: true,
|
|
276
|
+
problem: winner.problem ?? 'disabled by skills.disabled in the config',
|
|
277
|
+
}
|
|
278
|
+
: {}),
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
skills.sort((a, b) => a.name.localeCompare(b.name));
|
|
282
|
+
return { skills, shadowed };
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Discover all skills, the highest-precedence tier winning on a name clash.
|
|
286
|
+
* Returns an empty list when no skill dirs exist.
|
|
287
|
+
*/
|
|
288
|
+
export function discoverSkills(opts = {}) {
|
|
289
|
+
return [...discoverSkillRoster(opts).skills];
|
|
290
|
+
}
|
|
291
|
+
/** How a tier reads in a listing: where the file lives, in the operator's words. */
|
|
292
|
+
export function skillTierLabel(tier) {
|
|
293
|
+
switch (tier) {
|
|
294
|
+
case 'system':
|
|
295
|
+
return 'built-in';
|
|
296
|
+
case 'agents-user':
|
|
297
|
+
return '~/.agents/skills';
|
|
298
|
+
case 'user':
|
|
299
|
+
return '~/.namzu/skills';
|
|
300
|
+
case 'legacy-project':
|
|
301
|
+
return './skills';
|
|
302
|
+
case 'agents-project':
|
|
303
|
+
return '.agents/skills';
|
|
304
|
+
case 'project':
|
|
305
|
+
return './.namzu/skills';
|
|
306
|
+
}
|
|
131
307
|
}
|
|
132
308
|
/** Read a skill's markdown body (frontmatter stripped). */
|
|
133
309
|
export function loadSkillBody(info) {
|
|
@@ -147,4 +323,29 @@ export function composeSkillsPrompt(active) {
|
|
|
147
323
|
blocks.join('\n\n'),
|
|
148
324
|
].join('\n');
|
|
149
325
|
}
|
|
326
|
+
/** What `/skills` says when no tier holds a skill. */
|
|
327
|
+
export const NO_SKILLS_FOUND = 'No skills found. Add one at ~/.namzu/skills/<name>/SKILL.md, ~/.agents/skills/<name>/SKILL.md or ./.agents/skills/<name>/SKILL.md.';
|
|
328
|
+
/**
|
|
329
|
+
* `/skills list`: every skill with where it came from, what it hides, and why
|
|
330
|
+
* it cannot be used when it cannot. A refused skill is shown with its reason
|
|
331
|
+
* rather than hidden — dropping it silently would leave someone wondering
|
|
332
|
+
* where a file they can see on disk went.
|
|
333
|
+
*/
|
|
334
|
+
export function renderSkillRoster(skills, activeNames) {
|
|
335
|
+
const lines = [];
|
|
336
|
+
for (const s of skills) {
|
|
337
|
+
const where = skillTierLabel(s.tier);
|
|
338
|
+
if (s.problem)
|
|
339
|
+
lines.push(`! ${s.name} [${where}] — ${s.problem}`);
|
|
340
|
+
else
|
|
341
|
+
lines.push(`${activeNames.has(s.name) ? '● ' : '○ '}${s.name} [${where}] — ${s.description}`);
|
|
342
|
+
if (s.invocation === 'operator')
|
|
343
|
+
lines.push(' operator only: not offered to the model');
|
|
344
|
+
if (s.requiresTools)
|
|
345
|
+
lines.push(` offered to the model when these tools exist: ${s.requiresTools.join(', ')}`);
|
|
346
|
+
for (const hidden of s.shadows ?? [])
|
|
347
|
+
lines.push(` shadows ${hidden}`);
|
|
348
|
+
}
|
|
349
|
+
return `Skills (● active):\n ${lines.join('\n ')}`;
|
|
350
|
+
}
|
|
150
351
|
//# sourceMappingURL=store.js.map
|
package/dist/skills/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/skills/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/skills/store.ts"],"names":[],"mappings":"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"}
|
package/dist/tui/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAON,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAON,KAAK,OAAO,EAmBZ,MAAM,YAAY,CAAA;AAkMnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AA8DvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAa/D,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;IAC1D,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAA;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAA;KAAE,CAAA;CAC3D;AASD,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC5B,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAmSrB,6EAA6E;AAC7E,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,MAAM,EAAE,CAM7F;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,EAAE,MAAM,MAAM,EACpB,iBAAiB,GAAE,SAAS,MAAM,EAAO,GACvC,SAAS,iBAAiB,EAAE,CAqE9B;AAsHD,wBAAgB,GAAG,CAAC,EACnB,GAAG,EAAE,UAAU,EACf,aAAa,EACb,cAAsC,EACtC,eAAe,GACf,EAAE,QAAQ,2CA4oQV"}
|