commandmate 0.11.4 → 0.12.1
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/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +406 -314
- package/.next/app-path-routes-manifest.json +35 -26
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +15 -15
- package/.next/react-loadable-manifest.json +8 -6
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +66 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route.js +1 -1
- package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route.js +1 -1
- package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route.js +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/[id]/route.js +1 -0
- package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/route.js +1 -0
- package/.next/server/app/api/skills/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/todos/route.js +1 -1
- package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/route.js +23 -0
- package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +2 -2
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page.js +2 -2
- package/.next/server/app/more/page.js.nft.json +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page.js.nft.json +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page.js +1 -1
- package/.next/server/app/repositories/page.js.nft.json +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page.js +1 -1
- package/.next/server/app/review/page.js.nft.json +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page.js +1 -1
- package/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page.js +2 -0
- package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -0
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/skills/page.js +2 -0
- package/.next/server/app/skills/page.js.nft.json +1 -0
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -0
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +9 -9
- package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
- package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +35 -26
- package/.next/server/chunks/1117.js +1 -1
- package/.next/server/chunks/120.js +1 -0
- package/.next/server/chunks/1808.js +1 -0
- package/.next/server/chunks/186.js +1 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/22.js +1 -0
- package/.next/server/chunks/2328.js +1 -0
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/3042.js +2 -0
- package/.next/server/chunks/3543.js +1 -1
- package/.next/server/chunks/3708.js +1 -0
- package/.next/server/chunks/3945.js +1 -1
- package/.next/server/chunks/5064.js +1 -0
- package/.next/server/chunks/5226.js +28 -0
- package/.next/server/chunks/5306.js +2 -0
- package/.next/server/chunks/5312.js +1 -0
- package/.next/server/chunks/5326.js +1 -0
- package/.next/server/chunks/5381.js +1 -1
- package/.next/server/chunks/5456.js +1 -0
- package/.next/server/chunks/5571.js +1 -1
- package/.next/server/chunks/5959.js +3 -3
- package/.next/server/chunks/6065.js +1 -0
- package/.next/server/chunks/6130.js +1 -0
- package/.next/server/chunks/6283.js +1 -1
- package/.next/server/chunks/6285.js +1 -1
- package/.next/server/chunks/646.js +6 -6
- package/.next/server/chunks/{9968.js → 7587.js} +1 -1
- package/.next/server/chunks/8584.js +1 -0
- package/.next/server/chunks/8681.js +1 -1
- package/.next/server/chunks/8807.js +950 -804
- package/.next/server/chunks/9123.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/ZYti9g9gICKnjtmkfvvB2/_buildManifest.js +1 -0
- package/.next/static/chunks/1668-7484081c45a44f89.js +1 -0
- package/.next/static/chunks/3418-7e47651340d940b0.js +1 -0
- package/.next/static/chunks/4027-0c529b322be7d4d8.js +1 -0
- package/.next/static/chunks/{4560-64b1461fd996127a.js → 4560-04e5aebcab96bfa1.js} +1 -1
- package/.next/static/chunks/6007-de36119357dcd418.js +1 -0
- package/.next/static/chunks/{6488-76295bf0184b101f.js → 6488-624d4b6d2d4cc236.js} +1 -1
- package/.next/static/chunks/{8965-872d8de254196cec.js → 6497-dc26c6c6b0b15adf.js} +1 -1
- package/.next/static/chunks/790-d8e6acd26e03679c.js +1 -0
- package/.next/static/chunks/8361.4bf062be2d2962f4.js +1 -0
- package/.next/static/chunks/app/api/app/update/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/app/update-check/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/assistant/conversation/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/assistant/current-output/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/assistant/messages/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/assistant/session/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/assistant/start/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/assistant/terminal/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/assistant/tools/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/status/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/external-apps/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/hooks/claude-done/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/ollama/models/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/push/subscriptions/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/push/vapid/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/repositories/excluded/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/repositories/restore/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/repositories/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/repositories/scan/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/repositories/sync/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/sidebar/group-order/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/skills/[id]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/skills/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/slash-commands/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/templates/[id]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/templates/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/todos/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/chat/{page-9ed2ffd98eb4ae18.js → page-9cf4ba62e21d9074.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/more/{page-a496425bba427b48.js → page-082d4ae496f9a36e.js} +1 -1
- package/.next/static/chunks/app/{page-15bfd76bcf65842d.js → page-af457ca5876ed616.js} +1 -1
- package/.next/static/chunks/app/proxy/[...path]/route-56dad0523d3c4a92.js +1 -0
- package/.next/static/chunks/app/repositories/{page-d214522ab8792ce7.js → page-75f0d70452c6b6c0.js} +1 -1
- package/.next/static/chunks/app/review/{page-1dadf0b5d7129598.js → page-f431d630097c2e85.js} +1 -1
- package/.next/static/chunks/app/sessions/{page-96f007d986c5f327.js → page-20f07a99db64d2ca.js} +1 -1
- package/.next/static/chunks/app/skills/[skillId]/page-68ed5e9186efe56d.js +1 -0
- package/.next/static/chunks/app/skills/page-46242c428ee8bccf.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-7dd929bfc978742e.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/terminal/page-a75fe180a7233b2b.js +1 -0
- package/.next/static/chunks/webpack-0f9275e279c058eb.js +1 -0
- package/.next/static/css/b4bdb1f3457fe9a7.css +1 -0
- package/.next/trace +11 -10
- package/.next/types/app/api/skills/[id]/route.ts +347 -0
- package/.next/types/app/api/skills/route.ts +347 -0
- package/.next/types/app/api/worktrees/[id]/skills/[skillId]/install/route.ts +347 -0
- package/.next/types/app/api/worktrees/[id]/skills/[skillId]/plan/route.ts +347 -0
- package/.next/types/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.ts +347 -0
- package/.next/types/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.ts +347 -0
- package/.next/types/app/api/worktrees/[id]/skills/route.ts +347 -0
- package/.next/types/app/skills/[skillId]/page.ts +84 -0
- package/.next/types/app/skills/page.ts +84 -0
- package/.next/types/routes.d.ts +11 -2
- package/.next/types/validator.ts +81 -0
- package/dist/cli/commands/skill-format.d.ts +28 -0
- package/dist/cli/commands/skill-format.d.ts.map +1 -0
- package/dist/cli/commands/skill-format.js +163 -0
- package/dist/cli/commands/skill-guards.d.ts +53 -0
- package/dist/cli/commands/skill-guards.d.ts.map +1 -0
- package/dist/cli/commands/skill-guards.js +188 -0
- package/dist/cli/commands/skill.d.ts +24 -0
- package/dist/cli/commands/skill.d.ts.map +1 -0
- package/dist/cli/commands/skill.js +365 -0
- package/dist/cli/docs/agent-operations.d.ts +1 -1
- package/dist/cli/docs/agent-operations.d.ts.map +1 -1
- package/dist/cli/docs/agent-operations.js +36 -0
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +11 -0
- package/dist/cli/types/api-responses.d.ts +215 -0
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/types/index.d.ts +60 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/types/index.js +23 -1
- package/dist/cli/utils/api-client.d.ts +19 -1
- package/dist/cli/utils/api-client.d.ts.map +1 -1
- package/dist/cli/utils/api-client.js +41 -4
- package/dist/server/server.js +57 -0
- package/dist/server/src/config/activity-bar-config.js +2 -0
- package/dist/server/src/config/git-status-config.js +83 -0
- package/dist/server/src/config/skill-security-config.js +139 -0
- package/dist/server/src/lib/cli-tools/antigravity.js +8 -13
- package/dist/server/src/lib/cli-tools/codex.js +8 -14
- package/dist/server/src/lib/cli-tools/copilot.js +12 -13
- package/dist/server/src/lib/cli-tools/gemini.js +8 -13
- package/dist/server/src/lib/cli-tools/opencode.js +8 -13
- package/dist/server/src/lib/cli-tools/submit-verified-sender.js +174 -0
- package/dist/server/src/lib/cli-tools/vibe-local.js +12 -17
- package/dist/server/src/lib/db/migrations/index.js +8 -0
- package/dist/server/src/lib/db/migrations/runner.js +1 -1
- package/dist/server/src/lib/db/migrations/v44-skill-operations.js +81 -0
- package/dist/server/src/lib/db/migrations/v45-skill-installations.js +59 -0
- package/dist/server/src/lib/db/migrations/v46-skill-installations-cascade.js +107 -0
- package/dist/server/src/lib/db/migrations/v47-skill-installations-roots.js +70 -0
- package/dist/server/src/lib/db/worktree-db.js +9 -4
- package/dist/server/src/lib/git/git-errors.js +336 -0
- package/dist/server/src/lib/git/git-exec.js +285 -0
- package/dist/server/src/lib/session-key-sender.js +11 -9
- package/dist/server/src/lib/skills/compatibility.js +194 -0
- package/dist/server/src/lib/skills/constants.js +252 -0
- package/dist/server/src/lib/skills/errors.js +82 -0
- package/dist/server/src/lib/skills/index.js +91 -0
- package/dist/server/src/lib/skills/install-apply.js +670 -0
- package/dist/server/src/lib/skills/install-plan.js +582 -0
- package/dist/server/src/lib/skills/installed-state.js +127 -0
- package/dist/server/src/lib/skills/integrity.js +225 -0
- package/dist/server/src/lib/skills/json-schema.js +365 -0
- package/dist/server/src/lib/skills/operation-audit.js +120 -0
- package/dist/server/src/lib/skills/operation-journal.js +286 -0
- package/dist/server/src/lib/skills/operation-lock.js +339 -0
- package/dist/server/src/lib/skills/operation-reconciler.js +107 -0
- package/dist/server/src/lib/skills/operation-store.js +153 -0
- package/dist/server/src/lib/skills/package-reader.js +495 -0
- package/dist/server/src/lib/skills/package-validator.js +451 -0
- package/dist/server/src/lib/skills/preview-diff.js +627 -0
- package/dist/server/src/lib/skills/safe-yaml.js +593 -0
- package/dist/server/src/lib/skills/schema.js +1248 -0
- package/dist/server/src/lib/skills/semver.js +193 -0
- package/dist/server/src/lib/skills/snapshot-store.js +334 -0
- package/dist/server/src/lib/skills/startup-reconcile.js +138 -0
- package/dist/server/src/lib/skills/uninstall-apply.js +495 -0
- package/dist/server/src/lib/skills/uninstall-plan.js +479 -0
- package/dist/server/src/types/skills.js +17 -0
- package/package.json +1 -1
- package/.next/server/chunks/129.js +0 -1
- package/.next/server/chunks/2478.js +0 -1
- package/.next/server/chunks/9886.js +0 -1
- package/.next/static/0_lnKsT0DH-MnHhnV5n-l/_buildManifest.js +0 -1
- package/.next/static/chunks/3165-87bf884f7f3d15cf.js +0 -1
- package/.next/static/chunks/6416.6756b7ad06dd96f7.js +0 -1
- package/.next/static/chunks/8676.57260a06f6554e7e.js +0 -1
- package/.next/static/chunks/app/api/app/update/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/app/update-check/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/assistant/conversation/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/assistant/current-output/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/assistant/messages/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/assistant/session/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/assistant/start/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/assistant/terminal/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/assistant/tools/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/status/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/external-apps/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/hooks/claude-done/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/ollama/models/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/push/subscriptions/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/push/vapid/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/repositories/excluded/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/repositories/restore/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/repositories/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/repositories/scan/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/repositories/sync/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/sidebar/group-order/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/slash-commands/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/templates/[id]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/templates/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/todos/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/proxy/[...path]/route-7536041a7a89616d.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-9a4ce51e697baac6.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/terminal/page-ed4590b024edd8d6.js +0 -1
- package/.next/static/chunks/webpack-2e3739a831868daa.js +0 -1
- package/.next/static/css/d7e2e8d1b8d69d36.css +0 -1
- package/dist/server/src/lib/pasted-text-helper.js +0 -58
- /package/.next/static/{0_lnKsT0DH-MnHhnV5n-l → ZYti9g9gICKnjtmkfvvB2}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CommandMate compatibility judgement and version resolution (Issue #1231)
|
|
4
|
+
*
|
|
5
|
+
* Pure functions: no filesystem, no network, no process state. The host version
|
|
6
|
+
* is always an explicit argument so UI, API and CLI can evaluate the same
|
|
7
|
+
* Catalog against the same rules and reach the same verdict.
|
|
8
|
+
*
|
|
9
|
+
* Every verdict carries a stable machine code *and* a human-readable message
|
|
10
|
+
* (受入条件: "互換性NGの理由がmachine-readable codeとhuman-readable messageで返る").
|
|
11
|
+
* Messages are built from the code, the declared range and the host version
|
|
12
|
+
* only — never from a path, token or URL.
|
|
13
|
+
*
|
|
14
|
+
* @module lib/skills/compatibility
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.SkillRecommendationReason = exports.UNKNOWN_HOST_VERSION_SENTINEL = exports.SKILL_COMPATIBILITY_MESSAGE_KEYS = exports.SkillCompatibilityReason = void 0;
|
|
18
|
+
exports.normalizeHostVersion = normalizeHostVersion;
|
|
19
|
+
exports.evaluateCommandMateCompatibility = evaluateCommandMateCompatibility;
|
|
20
|
+
exports.evaluateVersionCompatibility = evaluateVersionCompatibility;
|
|
21
|
+
exports.describeAgentCompatibility = describeAgentCompatibility;
|
|
22
|
+
exports.resolveSkillVersions = resolveSkillVersions;
|
|
23
|
+
exports.findSkillCatalogEntry = findSkillCatalogEntry;
|
|
24
|
+
// Sibling modules of the same package are imported directly rather than through
|
|
25
|
+
// the `@/lib/skills` barrel, so adding this module to the barrel later can never
|
|
26
|
+
// introduce an import cycle. External callers still go through the barrel.
|
|
27
|
+
const constants_1 = require("../../lib/skills/constants");
|
|
28
|
+
const semver_1 = require("../../lib/skills/semver");
|
|
29
|
+
/** Stable reason codes for a CommandMate compatibility verdict. */
|
|
30
|
+
exports.SkillCompatibilityReason = {
|
|
31
|
+
/** Host version satisfies the declared range. */
|
|
32
|
+
SATISFIED: 'SKILL_COMPAT_SATISFIED',
|
|
33
|
+
/** Host version is valid but outside the declared range. */
|
|
34
|
+
HOST_VERSION_OUT_OF_RANGE: 'SKILL_COMPAT_HOST_VERSION_OUT_OF_RANGE',
|
|
35
|
+
/** The running CommandMate version could not be determined. */
|
|
36
|
+
HOST_VERSION_UNKNOWN: 'SKILL_COMPAT_HOST_VERSION_UNKNOWN',
|
|
37
|
+
/** The publisher's range is not expressible in the supported grammar. */
|
|
38
|
+
RANGE_UNSUPPORTED: 'SKILL_COMPAT_RANGE_UNSUPPORTED',
|
|
39
|
+
};
|
|
40
|
+
/** i18n keys paired with each reason code, so UI and CLI share one vocabulary. */
|
|
41
|
+
exports.SKILL_COMPATIBILITY_MESSAGE_KEYS = {
|
|
42
|
+
[exports.SkillCompatibilityReason.SATISFIED]: 'skills.compatibility.reason.satisfied',
|
|
43
|
+
[exports.SkillCompatibilityReason.HOST_VERSION_OUT_OF_RANGE]: 'skills.compatibility.reason.hostVersionOutOfRange',
|
|
44
|
+
[exports.SkillCompatibilityReason.HOST_VERSION_UNKNOWN]: 'skills.compatibility.reason.hostVersionUnknown',
|
|
45
|
+
[exports.SkillCompatibilityReason.RANGE_UNSUPPORTED]: 'skills.compatibility.reason.rangeUnsupported',
|
|
46
|
+
};
|
|
47
|
+
// =============================================================================
|
|
48
|
+
// Host version
|
|
49
|
+
// =============================================================================
|
|
50
|
+
/**
|
|
51
|
+
* Sentinel `getServerVersion()` returns when it cannot read a real version.
|
|
52
|
+
*
|
|
53
|
+
* It is syntactically valid SemVer, so without this guard an unreadable
|
|
54
|
+
* package.json would silently produce a confident "incompatible" verdict
|
|
55
|
+
* instead of the honest "unknown".
|
|
56
|
+
*/
|
|
57
|
+
exports.UNKNOWN_HOST_VERSION_SENTINEL = '0.0.0';
|
|
58
|
+
/**
|
|
59
|
+
* Normalize a raw CommandMate version into a strict SemVer 2.0 string.
|
|
60
|
+
*
|
|
61
|
+
* @returns The version, or null when it is absent, the unknown sentinel, or not
|
|
62
|
+
* strict SemVer 2.0 (the Skill contract rejects the `v` prefix).
|
|
63
|
+
*/
|
|
64
|
+
function normalizeHostVersion(raw) {
|
|
65
|
+
if (typeof raw !== 'string')
|
|
66
|
+
return null;
|
|
67
|
+
const trimmed = raw.trim();
|
|
68
|
+
if (trimmed.length === 0)
|
|
69
|
+
return null;
|
|
70
|
+
if (trimmed === exports.UNKNOWN_HOST_VERSION_SENTINEL)
|
|
71
|
+
return null;
|
|
72
|
+
return (0, semver_1.parseSemVer)(trimmed) === null ? null : trimmed;
|
|
73
|
+
}
|
|
74
|
+
// =============================================================================
|
|
75
|
+
// Compatibility
|
|
76
|
+
// =============================================================================
|
|
77
|
+
function buildMessage(reasonCode, requiredRange, currentVersion) {
|
|
78
|
+
switch (reasonCode) {
|
|
79
|
+
case exports.SkillCompatibilityReason.SATISFIED:
|
|
80
|
+
return `CommandMate ${currentVersion} satisfies the required range "${requiredRange}".`;
|
|
81
|
+
case exports.SkillCompatibilityReason.HOST_VERSION_OUT_OF_RANGE:
|
|
82
|
+
return `This Skill requires CommandMate "${requiredRange}", but CommandMate ${currentVersion} is running.`;
|
|
83
|
+
case exports.SkillCompatibilityReason.HOST_VERSION_UNKNOWN:
|
|
84
|
+
return `The running CommandMate version could not be determined, so compatibility with "${requiredRange}" is unverified.`;
|
|
85
|
+
case exports.SkillCompatibilityReason.RANGE_UNSUPPORTED:
|
|
86
|
+
return `This Skill declares the unsupported CommandMate version range "${requiredRange}", so compatibility is unverified.`;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function verdict(status, reasonCode, requiredRange, currentVersion) {
|
|
90
|
+
return {
|
|
91
|
+
status,
|
|
92
|
+
reasonCode,
|
|
93
|
+
messageKey: exports.SKILL_COMPATIBILITY_MESSAGE_KEYS[reasonCode],
|
|
94
|
+
message: buildMessage(reasonCode, requiredRange, currentVersion),
|
|
95
|
+
requiredRange,
|
|
96
|
+
currentVersion,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Judge whether the running CommandMate satisfies a declared version range.
|
|
101
|
+
*
|
|
102
|
+
* Fails closed in both directions: an unparsable range and an undeterminable
|
|
103
|
+
* host version both yield `unknown`, never `compatible`.
|
|
104
|
+
*
|
|
105
|
+
* @param requiredRange - Range declared in `compatibility.commandmate`
|
|
106
|
+
* @param currentVersion - Host version, already passed through {@link normalizeHostVersion}
|
|
107
|
+
*/
|
|
108
|
+
function evaluateCommandMateCompatibility(requiredRange, currentVersion) {
|
|
109
|
+
const range = typeof requiredRange === 'string' ? requiredRange : '';
|
|
110
|
+
if (!(0, semver_1.isValidSkillVersionRange)(range)) {
|
|
111
|
+
return verdict('unknown', exports.SkillCompatibilityReason.RANGE_UNSUPPORTED, range, currentVersion ?? null);
|
|
112
|
+
}
|
|
113
|
+
if (currentVersion === null) {
|
|
114
|
+
return verdict('unknown', exports.SkillCompatibilityReason.HOST_VERSION_UNKNOWN, range, null);
|
|
115
|
+
}
|
|
116
|
+
if (!(0, semver_1.satisfiesSkillVersionRange)(currentVersion, range)) {
|
|
117
|
+
return verdict('incompatible', exports.SkillCompatibilityReason.HOST_VERSION_OUT_OF_RANGE, range, currentVersion);
|
|
118
|
+
}
|
|
119
|
+
return verdict('compatible', exports.SkillCompatibilityReason.SATISFIED, range, currentVersion);
|
|
120
|
+
}
|
|
121
|
+
/** Judge one Catalog version against the running CommandMate. */
|
|
122
|
+
function evaluateVersionCompatibility(version, currentVersion) {
|
|
123
|
+
return evaluateCommandMateCompatibility(version.compatibility.commandmate, currentVersion);
|
|
124
|
+
}
|
|
125
|
+
/** Attach the shared i18n label key to each Agent support claim. */
|
|
126
|
+
function describeAgentCompatibility(agents) {
|
|
127
|
+
return agents.map((entry) => ({
|
|
128
|
+
agent: entry.agent,
|
|
129
|
+
support: entry.support,
|
|
130
|
+
labelKey: constants_1.AGENT_SUPPORT_LABEL_KEYS[entry.support],
|
|
131
|
+
evidence: entry.evidence,
|
|
132
|
+
}));
|
|
133
|
+
}
|
|
134
|
+
// =============================================================================
|
|
135
|
+
// Version resolution
|
|
136
|
+
// =============================================================================
|
|
137
|
+
/** Why a particular version was recommended, or why none was. */
|
|
138
|
+
exports.SkillRecommendationReason = {
|
|
139
|
+
/** Highest listed version that is compatible with the running CommandMate. */
|
|
140
|
+
HIGHEST_COMPATIBLE: 'SKILL_RECOMMEND_HIGHEST_COMPATIBLE',
|
|
141
|
+
/** Host version is unknown, so the publisher's `latest` is offered unverified. */
|
|
142
|
+
LATEST_UNVERIFIED: 'SKILL_RECOMMEND_LATEST_UNVERIFIED',
|
|
143
|
+
/** Every listed version is incompatible with the running CommandMate. */
|
|
144
|
+
NONE_COMPATIBLE: 'SKILL_RECOMMEND_NONE_COMPATIBLE',
|
|
145
|
+
/** No version survived filtering (e.g. prerelease-only entry without opt-in). */
|
|
146
|
+
NO_VERSIONS: 'SKILL_RECOMMEND_NO_VERSIONS',
|
|
147
|
+
};
|
|
148
|
+
function isPrerelease(version) {
|
|
149
|
+
const parsed = (0, semver_1.parseSemVer)(version);
|
|
150
|
+
return parsed !== null && parsed.prerelease.length > 0;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Sort, filter and pick a default version for one Catalog entry.
|
|
154
|
+
*
|
|
155
|
+
* Prereleases are excluded unless explicitly requested. Versions the Catalog
|
|
156
|
+
* validator already accepted are strict SemVer 2.0, so ordering is total.
|
|
157
|
+
*/
|
|
158
|
+
function resolveSkillVersions(entry, options) {
|
|
159
|
+
const { currentVersion, includePrerelease = false } = options;
|
|
160
|
+
const versions = entry.versions
|
|
161
|
+
.map((version) => ({
|
|
162
|
+
version,
|
|
163
|
+
prerelease: isPrerelease(version.version),
|
|
164
|
+
compatibility: evaluateVersionCompatibility(version, currentVersion),
|
|
165
|
+
}))
|
|
166
|
+
.filter((candidate) => includePrerelease || !candidate.prerelease)
|
|
167
|
+
.sort((a, b) => ((0, semver_1.compareSemVer)(b.version.version, a.version.version) ?? 0));
|
|
168
|
+
if (versions.length === 0) {
|
|
169
|
+
return { versions, recommended: null, reasonCode: exports.SkillRecommendationReason.NO_VERSIONS };
|
|
170
|
+
}
|
|
171
|
+
const compatible = versions.find((candidate) => candidate.compatibility.status === 'compatible');
|
|
172
|
+
if (compatible) {
|
|
173
|
+
return {
|
|
174
|
+
versions,
|
|
175
|
+
recommended: compatible,
|
|
176
|
+
reasonCode: exports.SkillRecommendationReason.HIGHEST_COMPATIBLE,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
// Host version unknown: nothing can be *proven* compatible, so the publisher's
|
|
180
|
+
// `latest` is offered with an explicit unverified reason rather than hidden.
|
|
181
|
+
if (currentVersion === null) {
|
|
182
|
+
const latest = versions.find((candidate) => candidate.version.version === entry.latest) ?? versions[0];
|
|
183
|
+
return {
|
|
184
|
+
versions,
|
|
185
|
+
recommended: latest,
|
|
186
|
+
reasonCode: exports.SkillRecommendationReason.LATEST_UNVERIFIED,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
return { versions, recommended: null, reasonCode: exports.SkillRecommendationReason.NONE_COMPATIBLE };
|
|
190
|
+
}
|
|
191
|
+
/** Find one entry by exact Skill ID. Returns null when absent. */
|
|
192
|
+
function findSkillCatalogEntry(catalog, id) {
|
|
193
|
+
return catalog.entries.find((entry) => entry.id === id) ?? null;
|
|
194
|
+
}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Agent Skills distribution contract constants (Issue #1228)
|
|
4
|
+
*
|
|
5
|
+
* Single source of truth for every limit, pattern and layout rule referenced by
|
|
6
|
+
* docs/design/agent-skills-distribution.md. Downstream issues (#1229 catalog,
|
|
7
|
+
* #1231 install, #1234 audit) must import from here rather than re-deriving
|
|
8
|
+
* values, so a contract change is a one-line change.
|
|
9
|
+
*
|
|
10
|
+
* @module lib/skills/constants
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.PERMISSION_DECLARATION_NOTICE_KEY = exports.HTTPS_URL_PREFIX = exports.NETWORK_HOST_PATTERN = exports.COMMAND_NAME_PATTERN = exports.SPDX_LICENSE_PATTERN = exports.RFC3339_UTC_PATTERN = exports.GIT_REF_PATTERN = exports.REPOSITORY_SLUG_PATTERN = exports.GIT_COMMIT_SHA_PATTERN = exports.SHA256_HEX_PATTERN = exports.SKILL_FILE_KINDS = exports.SKILL_DECLARED_PERMISSIONS = exports.SKILL_RISK_ORDER = exports.SKILL_RISK_LEVELS = exports.SKILL_AGENT_SUPPORT_VALUES = exports.SKILL_YAML_SAFE_PROFILE = exports.SKILL_CATALOG_VERSIONS_MAX_COUNT = exports.SKILL_CATALOG_ENTRIES_MAX_COUNT = exports.SKILL_NETWORK_HOSTS_MAX_COUNT = exports.SKILL_COMMANDS_MAX_COUNT = exports.SKILL_RATIONALE_MAX_LENGTH = exports.SKILL_EVIDENCE_MAX_LENGTH = exports.SKILL_CHANGELOG_MAX_LENGTH = exports.SKILL_KEYWORD_MAX_LENGTH = exports.SKILL_KEYWORDS_MAX_COUNT = exports.SKILL_BULLET_MAX_COUNT = exports.SKILL_BULLET_MAX_LENGTH = exports.SKILL_DESCRIPTION_MAX_LENGTH = exports.SKILL_SUMMARY_MAX_LENGTH = exports.SKILL_NAME_MAX_LENGTH = exports.SKILL_PATH_MAX_LENGTH = exports.SKILL_PATH_MAX_DEPTH = exports.SKILL_PATH_SEGMENT_MAX_LENGTH = exports.SKILL_FILES_MAX_COUNT = exports.SKILL_FILE_MAX_SIZE = exports.SKILL_ARTIFACT_MAX_SIZE = exports.SKILL_ARTIFACT_CONTENT_TYPE = exports.SKILL_ARTIFACT_FORMAT = exports.REQUIRED_PACKAGE_ENTRIES = exports.SKILL_STAGING_DIRNAME = exports.SKILL_MD_FILENAME = exports.SKILL_MANIFEST_FILENAME = exports.SKILL_PRIMARY_INSTALL_ROOT_PREFIX = exports.SKILL_INSTALL_ROOT_PREFIXES = exports.SKILL_CLAUDE_INSTALL_ROOT_PREFIX = exports.SKILL_INSTALL_ROOT_PREFIX = exports.RESERVED_SKILL_IDS = exports.SKILL_ID_MAX_LENGTH = exports.SKILL_ID_PATTERN = exports.SKILL_SCHEMA_VERSION = void 0;
|
|
14
|
+
exports.AGENT_SUPPORT_LABEL_KEYS = void 0;
|
|
15
|
+
exports.isKnownSkillInstallRootPrefix = isKnownSkillInstallRootPrefix;
|
|
16
|
+
exports.buildSkillAssetName = buildSkillAssetName;
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// Schema version
|
|
19
|
+
// =============================================================================
|
|
20
|
+
/** The only schema version this build understands. Anything else fails closed. */
|
|
21
|
+
exports.SKILL_SCHEMA_VERSION = 1;
|
|
22
|
+
// =============================================================================
|
|
23
|
+
// Skill ID
|
|
24
|
+
// =============================================================================
|
|
25
|
+
/**
|
|
26
|
+
* Skill ID grammar: ASCII lowercase slug.
|
|
27
|
+
*
|
|
28
|
+
* Anchored and ASCII-only by construction, so uppercase, Unicode homoglyphs,
|
|
29
|
+
* leading/trailing hyphens and dot-prefixed names are all rejected here rather
|
|
30
|
+
* than by a later, easier-to-forget check.
|
|
31
|
+
*/
|
|
32
|
+
exports.SKILL_ID_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
33
|
+
/** Maximum Skill ID length in characters. */
|
|
34
|
+
exports.SKILL_ID_MAX_LENGTH = 64;
|
|
35
|
+
/**
|
|
36
|
+
* IDs that may never be used as a Skill directory name.
|
|
37
|
+
*
|
|
38
|
+
* Covers Windows reserved device names (which resolve to devices regardless of
|
|
39
|
+
* the directory they appear in) and names CommandMate claims for itself.
|
|
40
|
+
*/
|
|
41
|
+
exports.RESERVED_SKILL_IDS = [
|
|
42
|
+
'commandmate',
|
|
43
|
+
'system',
|
|
44
|
+
'con',
|
|
45
|
+
'prn',
|
|
46
|
+
'aux',
|
|
47
|
+
'nul',
|
|
48
|
+
'com1',
|
|
49
|
+
'com2',
|
|
50
|
+
'com3',
|
|
51
|
+
'com4',
|
|
52
|
+
'com5',
|
|
53
|
+
'com6',
|
|
54
|
+
'com7',
|
|
55
|
+
'com8',
|
|
56
|
+
'com9',
|
|
57
|
+
'lpt1',
|
|
58
|
+
'lpt2',
|
|
59
|
+
'lpt3',
|
|
60
|
+
'lpt4',
|
|
61
|
+
'lpt5',
|
|
62
|
+
'lpt6',
|
|
63
|
+
'lpt7',
|
|
64
|
+
'lpt8',
|
|
65
|
+
'lpt9',
|
|
66
|
+
];
|
|
67
|
+
// =============================================================================
|
|
68
|
+
// Layout
|
|
69
|
+
// =============================================================================
|
|
70
|
+
/** Skill payload root inside a worktree, resolved from a registered worktree ID. */
|
|
71
|
+
exports.SKILL_INSTALL_ROOT_PREFIX = '.agents/skills';
|
|
72
|
+
/**
|
|
73
|
+
* Claude Code Skill discovery root inside a worktree (Issue #1460).
|
|
74
|
+
*
|
|
75
|
+
* The counterpart of {@link SKILL_INSTALL_ROOT_PREFIX}: Claude reads
|
|
76
|
+
* `.claude/skills/<id>/SKILL.md` (#343) where Codex reads `.agents/skills`
|
|
77
|
+
* (#1165). Placing a package into both makes the same install discoverable by
|
|
78
|
+
* both Agents.
|
|
79
|
+
*/
|
|
80
|
+
exports.SKILL_CLAUDE_INSTALL_ROOT_PREFIX = '.claude/skills';
|
|
81
|
+
/**
|
|
82
|
+
* Ordered set of roots an official Skill is placed into by default (#1460).
|
|
83
|
+
*
|
|
84
|
+
* Order is significant. `.agents/skills` is first and is the *primary* root: it
|
|
85
|
+
* remains the single atomic-rename commit point and the backward-compatible
|
|
86
|
+
* anchor every legacy single-root receipt names. `.claude/skills` is a
|
|
87
|
+
* *secondary* root, converged forward from the primary by reconciliation if a
|
|
88
|
+
* crash lands only one of the two renames. Adding an Agent (Gemini, OpenCode …)
|
|
89
|
+
* is a one-line addition here.
|
|
90
|
+
*/
|
|
91
|
+
exports.SKILL_INSTALL_ROOT_PREFIXES = [
|
|
92
|
+
exports.SKILL_INSTALL_ROOT_PREFIX,
|
|
93
|
+
exports.SKILL_CLAUDE_INSTALL_ROOT_PREFIX,
|
|
94
|
+
];
|
|
95
|
+
/** The primary root that stays the commit point and the receipt's `install_root`. */
|
|
96
|
+
exports.SKILL_PRIMARY_INSTALL_ROOT_PREFIX = exports.SKILL_INSTALL_ROOT_PREFIX;
|
|
97
|
+
/** Whether a repository-relative root prefix is one CommandMate installs into. */
|
|
98
|
+
function isKnownSkillInstallRootPrefix(prefix) {
|
|
99
|
+
return exports.SKILL_INSTALL_ROOT_PREFIXES.includes(prefix);
|
|
100
|
+
}
|
|
101
|
+
/** Manifest filename, placed at the Skill root next to SKILL.md. */
|
|
102
|
+
exports.SKILL_MANIFEST_FILENAME = 'commandmate.skill.yaml';
|
|
103
|
+
/** Standard Agent Skills authoring file, required in every package. */
|
|
104
|
+
exports.SKILL_MD_FILENAME = 'SKILL.md';
|
|
105
|
+
/**
|
|
106
|
+
* Reserved private namespace for install-commit staging.
|
|
107
|
+
*
|
|
108
|
+
* Lives under the target `.agents/skills` so the atomic rename stays on one
|
|
109
|
+
* filesystem. Excluded from Skill discovery because the leading dot is outside
|
|
110
|
+
* {@link SKILL_ID_PATTERN}.
|
|
111
|
+
*/
|
|
112
|
+
exports.SKILL_STAGING_DIRNAME = '.commandmate-staging';
|
|
113
|
+
/** Entries every valid package must contain, relative to the archive root directory. */
|
|
114
|
+
exports.REQUIRED_PACKAGE_ENTRIES = [
|
|
115
|
+
exports.SKILL_MD_FILENAME,
|
|
116
|
+
exports.SKILL_MANIFEST_FILENAME,
|
|
117
|
+
];
|
|
118
|
+
// =============================================================================
|
|
119
|
+
// Artifact
|
|
120
|
+
// =============================================================================
|
|
121
|
+
/** The only artifact format accepted in schema_version 1. */
|
|
122
|
+
exports.SKILL_ARTIFACT_FORMAT = 'tar.gz';
|
|
123
|
+
/** Required Content-Type of a release asset. */
|
|
124
|
+
exports.SKILL_ARTIFACT_CONTENT_TYPE = 'application/gzip';
|
|
125
|
+
/** Maximum artifact size in bytes (16 MiB). */
|
|
126
|
+
exports.SKILL_ARTIFACT_MAX_SIZE = 16 * 1024 * 1024;
|
|
127
|
+
/** Maximum size of a single payload file in bytes (4 MiB). */
|
|
128
|
+
exports.SKILL_FILE_MAX_SIZE = 4 * 1024 * 1024;
|
|
129
|
+
/** Maximum number of payload files declared in a manifest. */
|
|
130
|
+
exports.SKILL_FILES_MAX_COUNT = 500;
|
|
131
|
+
/** Build the required release asset name for a version. */
|
|
132
|
+
function buildSkillAssetName(skillId, version) {
|
|
133
|
+
return `${skillId}-${version}.tar.gz`;
|
|
134
|
+
}
|
|
135
|
+
// =============================================================================
|
|
136
|
+
// Payload paths
|
|
137
|
+
// =============================================================================
|
|
138
|
+
/** Maximum length of a single path segment. */
|
|
139
|
+
exports.SKILL_PATH_SEGMENT_MAX_LENGTH = 100;
|
|
140
|
+
/** Maximum number of path segments in a payload path. */
|
|
141
|
+
exports.SKILL_PATH_MAX_DEPTH = 8;
|
|
142
|
+
/** Maximum total length of a payload path. */
|
|
143
|
+
exports.SKILL_PATH_MAX_LENGTH = 255;
|
|
144
|
+
// =============================================================================
|
|
145
|
+
// Text limits
|
|
146
|
+
// =============================================================================
|
|
147
|
+
exports.SKILL_NAME_MAX_LENGTH = 100;
|
|
148
|
+
exports.SKILL_SUMMARY_MAX_LENGTH = 200;
|
|
149
|
+
exports.SKILL_DESCRIPTION_MAX_LENGTH = 2000;
|
|
150
|
+
exports.SKILL_BULLET_MAX_LENGTH = 200;
|
|
151
|
+
exports.SKILL_BULLET_MAX_COUNT = 10;
|
|
152
|
+
exports.SKILL_KEYWORDS_MAX_COUNT = 20;
|
|
153
|
+
exports.SKILL_KEYWORD_MAX_LENGTH = 40;
|
|
154
|
+
exports.SKILL_CHANGELOG_MAX_LENGTH = 4000;
|
|
155
|
+
exports.SKILL_EVIDENCE_MAX_LENGTH = 300;
|
|
156
|
+
exports.SKILL_RATIONALE_MAX_LENGTH = 500;
|
|
157
|
+
exports.SKILL_COMMANDS_MAX_COUNT = 20;
|
|
158
|
+
exports.SKILL_NETWORK_HOSTS_MAX_COUNT = 20;
|
|
159
|
+
exports.SKILL_CATALOG_ENTRIES_MAX_COUNT = 500;
|
|
160
|
+
exports.SKILL_CATALOG_VERSIONS_MAX_COUNT = 100;
|
|
161
|
+
// =============================================================================
|
|
162
|
+
// Safe YAML parse profile
|
|
163
|
+
// =============================================================================
|
|
164
|
+
/**
|
|
165
|
+
* Limits any manifest YAML parser must enforce.
|
|
166
|
+
*
|
|
167
|
+
* The contract (not the parser) lives here: #1229/#1231 pick an implementation
|
|
168
|
+
* but must reject aliases, anchors, merge keys, custom tags, duplicate keys and
|
|
169
|
+
* prototype-polluting keys, and must apply these bounds.
|
|
170
|
+
*/
|
|
171
|
+
exports.SKILL_YAML_SAFE_PROFILE = {
|
|
172
|
+
maxBytes: 64 * 1024,
|
|
173
|
+
maxDepth: 16,
|
|
174
|
+
maxNodes: 5000,
|
|
175
|
+
maxScalarLength: 8192,
|
|
176
|
+
allowAliases: false,
|
|
177
|
+
allowCustomTags: false,
|
|
178
|
+
allowDuplicateKeys: false,
|
|
179
|
+
/** Keys rejected outright to prevent prototype pollution through parsed objects. */
|
|
180
|
+
forbiddenKeys: ['__proto__', 'constructor', 'prototype'],
|
|
181
|
+
};
|
|
182
|
+
// =============================================================================
|
|
183
|
+
// Enumerations
|
|
184
|
+
// =============================================================================
|
|
185
|
+
exports.SKILL_AGENT_SUPPORT_VALUES = [
|
|
186
|
+
'native',
|
|
187
|
+
'commandmate_runtime',
|
|
188
|
+
'unsupported',
|
|
189
|
+
'unknown',
|
|
190
|
+
];
|
|
191
|
+
exports.SKILL_RISK_LEVELS = ['low', 'moderate', 'high'];
|
|
192
|
+
/** Ordering used to resolve the effective risk. Higher index wins. */
|
|
193
|
+
exports.SKILL_RISK_ORDER = {
|
|
194
|
+
low: 0,
|
|
195
|
+
moderate: 1,
|
|
196
|
+
high: 2,
|
|
197
|
+
};
|
|
198
|
+
exports.SKILL_DECLARED_PERMISSIONS = [
|
|
199
|
+
'filesystem_read',
|
|
200
|
+
'filesystem_write',
|
|
201
|
+
'network_access',
|
|
202
|
+
'process_execution',
|
|
203
|
+
'environment_read',
|
|
204
|
+
'credential_access',
|
|
205
|
+
];
|
|
206
|
+
exports.SKILL_FILE_KINDS = [
|
|
207
|
+
'skill_md',
|
|
208
|
+
'instruction',
|
|
209
|
+
'script',
|
|
210
|
+
'asset',
|
|
211
|
+
];
|
|
212
|
+
// =============================================================================
|
|
213
|
+
// Formats
|
|
214
|
+
// =============================================================================
|
|
215
|
+
/** Lowercase hex SHA-256. Uppercase is rejected so digests compare byte-wise. */
|
|
216
|
+
exports.SHA256_HEX_PATTERN = /^[0-9a-f]{64}$/;
|
|
217
|
+
/** Resolved git commit SHA-1, full 40 hex digits. Abbreviations are rejected. */
|
|
218
|
+
exports.GIT_COMMIT_SHA_PATTERN = /^[0-9a-f]{40}$/;
|
|
219
|
+
/** `owner/name` source repository coordinate. */
|
|
220
|
+
exports.REPOSITORY_SLUG_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]*\/[A-Za-z0-9][A-Za-z0-9._-]*$/;
|
|
221
|
+
/** Human-facing git ref (tag or branch). `..` is rejected separately. */
|
|
222
|
+
exports.GIT_REF_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._/-]{0,99}$/;
|
|
223
|
+
/** RFC 3339 UTC instant, `Z` suffix only, so published_at compares lexicographically. */
|
|
224
|
+
exports.RFC3339_UTC_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;
|
|
225
|
+
/** SPDX license identifier shape (expressions are out of scope for schema_version 1). */
|
|
226
|
+
exports.SPDX_LICENSE_PATTERN = /^[A-Za-z0-9][A-Za-z0-9.+-]{0,63}$/;
|
|
227
|
+
/** External command name a Skill may require. */
|
|
228
|
+
exports.COMMAND_NAME_PATTERN = /^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$/;
|
|
229
|
+
/** Network host: DNS hostname, optionally a leading `*.` wildcard label. */
|
|
230
|
+
exports.NETWORK_HOST_PATTERN = /^(?:\*\.)?(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/;
|
|
231
|
+
/** Artifact and homepage URLs must be HTTPS. */
|
|
232
|
+
exports.HTTPS_URL_PREFIX = 'https://';
|
|
233
|
+
// =============================================================================
|
|
234
|
+
// UI vocabulary
|
|
235
|
+
// =============================================================================
|
|
236
|
+
/**
|
|
237
|
+
* Wording that must accompany any permission display.
|
|
238
|
+
*
|
|
239
|
+
* Prevents the declaration from being read as enforcement (see the ADR's
|
|
240
|
+
* "declaration is not enforcement" decision).
|
|
241
|
+
*/
|
|
242
|
+
exports.PERMISSION_DECLARATION_NOTICE_KEY = 'skills.permissions.declarationOnlyNotice';
|
|
243
|
+
/**
|
|
244
|
+
* Labels for {@link SkillAgentSupport}, so UI and CLI use one vocabulary (UX-05).
|
|
245
|
+
* Values are i18n message keys, not user-visible strings.
|
|
246
|
+
*/
|
|
247
|
+
exports.AGENT_SUPPORT_LABEL_KEYS = {
|
|
248
|
+
native: 'skills.compatibility.native',
|
|
249
|
+
commandmate_runtime: 'skills.compatibility.commandmateRuntime',
|
|
250
|
+
unsupported: 'skills.compatibility.unsupported',
|
|
251
|
+
unknown: 'skills.compatibility.unknown',
|
|
252
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Typed errors for the Agent Skills distribution contract (Issue #1228)
|
|
4
|
+
*
|
|
5
|
+
* Every rejection carries a stable machine code plus a JSON-Pointer-like path,
|
|
6
|
+
* so callers can branch on the reason and localize the message without parsing
|
|
7
|
+
* prose. Messages are built from the code and the document path only: they
|
|
8
|
+
* never embed a token, signed URL, secret or machine-absolute path.
|
|
9
|
+
*
|
|
10
|
+
* @module lib/skills/errors
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.SkillContractErrorCode = void 0;
|
|
14
|
+
exports.skillError = skillError;
|
|
15
|
+
exports.skillOk = skillOk;
|
|
16
|
+
exports.skillFail = skillFail;
|
|
17
|
+
exports.joinPath = joinPath;
|
|
18
|
+
/** Stable, client-safe reason codes for contract validation failures. */
|
|
19
|
+
exports.SkillContractErrorCode = {
|
|
20
|
+
/** Document is not a plain object. */
|
|
21
|
+
NOT_AN_OBJECT: 'SKILL_NOT_AN_OBJECT',
|
|
22
|
+
/** `schema_version` is missing, malformed, or newer than this build supports. */
|
|
23
|
+
SCHEMA_VERSION_UNSUPPORTED: 'SKILL_SCHEMA_VERSION_UNSUPPORTED',
|
|
24
|
+
/** A required field is absent. */
|
|
25
|
+
MISSING_FIELD: 'SKILL_MISSING_FIELD',
|
|
26
|
+
/** A field exists but has the wrong JSON type. */
|
|
27
|
+
INVALID_TYPE: 'SKILL_INVALID_TYPE',
|
|
28
|
+
/** A field carries a value outside its enumeration. */
|
|
29
|
+
INVALID_ENUM: 'SKILL_INVALID_ENUM',
|
|
30
|
+
/** A field is syntactically wrong (pattern mismatch). */
|
|
31
|
+
INVALID_FORMAT: 'SKILL_INVALID_FORMAT',
|
|
32
|
+
/** A numeric or length bound was exceeded. */
|
|
33
|
+
LIMIT_EXCEEDED: 'SKILL_LIMIT_EXCEEDED',
|
|
34
|
+
/** An unspecified field is present; schema_version 1 is closed. */
|
|
35
|
+
UNKNOWN_FIELD: 'SKILL_UNKNOWN_FIELD',
|
|
36
|
+
/** Skill ID does not match the slug grammar. */
|
|
37
|
+
ID_INVALID: 'SKILL_ID_INVALID',
|
|
38
|
+
/** Skill ID is reserved by CommandMate or by the host filesystem. */
|
|
39
|
+
ID_RESERVED: 'SKILL_ID_RESERVED',
|
|
40
|
+
/** Skill ID collides with an existing name under case/Unicode folding. */
|
|
41
|
+
ID_COLLISION: 'SKILL_ID_COLLISION',
|
|
42
|
+
/** Directory name, SKILL.md name and manifest id disagree. */
|
|
43
|
+
ID_MISMATCH: 'SKILL_ID_MISMATCH',
|
|
44
|
+
/** Version is not valid SemVer 2.0. */
|
|
45
|
+
VERSION_INVALID: 'SKILL_VERSION_INVALID',
|
|
46
|
+
/** Version range is not expressible in the supported range grammar. */
|
|
47
|
+
VERSION_RANGE_INVALID: 'SKILL_VERSION_RANGE_INVALID',
|
|
48
|
+
/** Digest is not lowercase hex SHA-256. */
|
|
49
|
+
DIGEST_INVALID: 'SKILL_DIGEST_INVALID',
|
|
50
|
+
/** Payload path escapes the Skill root or is otherwise unsafe. */
|
|
51
|
+
FILE_PATH_UNSAFE: 'SKILL_FILE_PATH_UNSAFE',
|
|
52
|
+
/** Two entries declare the same payload path (possibly after folding). */
|
|
53
|
+
FILE_PATH_DUPLICATE: 'SKILL_FILE_PATH_DUPLICATE',
|
|
54
|
+
/** Declared file set does not match the package's payload file set. */
|
|
55
|
+
FILE_SET_MISMATCH: 'SKILL_FILE_SET_MISMATCH',
|
|
56
|
+
/** Artifact name, format or Content-Type violates the packaging rule. */
|
|
57
|
+
ARTIFACT_INVALID: 'SKILL_ARTIFACT_INVALID',
|
|
58
|
+
/** Source ref is present but the resolved commit SHA is missing or malformed. */
|
|
59
|
+
SOURCE_COMMIT_INVALID: 'SKILL_SOURCE_COMMIT_INVALID',
|
|
60
|
+
/** Catalog `latest` does not resolve to a listed version. */
|
|
61
|
+
CATALOG_LATEST_UNRESOLVED: 'SKILL_CATALOG_LATEST_UNRESOLVED',
|
|
62
|
+
/** The same identity is declared twice within one document. */
|
|
63
|
+
DUPLICATE_ENTRY: 'SKILL_DUPLICATE_ENTRY',
|
|
64
|
+
/** Two fields that must agree do not. */
|
|
65
|
+
INCONSISTENT_VALUE: 'SKILL_INCONSISTENT_VALUE',
|
|
66
|
+
};
|
|
67
|
+
/** Build a validation failure. */
|
|
68
|
+
function skillError(code, path, message, detail) {
|
|
69
|
+
return detail ? { code, path, message, detail } : { code, path, message };
|
|
70
|
+
}
|
|
71
|
+
/** Wrap a validated document as a success result. */
|
|
72
|
+
function skillOk(value) {
|
|
73
|
+
return { ok: true, value, errors: [] };
|
|
74
|
+
}
|
|
75
|
+
/** Wrap one or more failures as a failure result. */
|
|
76
|
+
function skillFail(errors) {
|
|
77
|
+
return { ok: false, value: null, errors };
|
|
78
|
+
}
|
|
79
|
+
/** Append a segment to a JSON-Pointer-like path. */
|
|
80
|
+
function joinPath(base, segment) {
|
|
81
|
+
return `${base}/${segment}`;
|
|
82
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Public API of the Agent Skills distribution contract (Issue #1228)
|
|
4
|
+
*
|
|
5
|
+
* This barrel is the *contract* surface only: schema, types, constants, error
|
|
6
|
+
* codes, and SemVer. It is isomorphic — it pulls in no Node builtin — so client
|
|
7
|
+
* components can import from it safely.
|
|
8
|
+
*
|
|
9
|
+
* Deliberately NOT re-exported here (import the concrete module instead):
|
|
10
|
+
*
|
|
11
|
+
* | module | why it stays out of the barrel |
|
|
12
|
+
* | --- | --- |
|
|
13
|
+
* | `artifact-downloader`, `snapshot-store`, `integrity` (#1229) | `fs` / `crypto`, transitively `version-checker` (`fs`, `path`) |
|
|
14
|
+
* | `package-reader`, `package-validator` (#1230) | `zlib` / `fs` |
|
|
15
|
+
* | `operation-lock`, `operation-journal`, `operation-store`, `operation-audit`, `operation-reconciler` (#1234) | `fs` / `os`, service-owned state root |
|
|
16
|
+
* | `catalog-client`, `compatibility` (#1231) | server-side cache ownership; `compatibility` is pure but is paired with the client |
|
|
17
|
+
* | `safe-yaml` (#1230) | pure, but only meaningful together with `package-reader` |
|
|
18
|
+
*
|
|
19
|
+
* Re-exporting those would drag `fs` / `zlib` into any consumer of
|
|
20
|
+
* `@/lib/skills`, including the `use client` components under
|
|
21
|
+
* `src/components/skills/`. Keep server-only modules concrete:
|
|
22
|
+
* `import { … } from '../../lib/skills/snapshot-store'`.
|
|
23
|
+
*
|
|
24
|
+
* @module lib/skills
|
|
25
|
+
*/
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.validateSkillCatalog = exports.validateManifestFileSet = exports.resolveEffectiveSkillRisk = exports.foldSkillIdForCollision = exports.detectSkillIdCollision = exports.computeSkillRisk = exports.canonicalizeSkillReceipt = exports.SKILL_OPTIONAL_FIELDS = exports.SKILL_DOCUMENT_FIELDS = exports.satisfiesSkillVersionRange = exports.parseSkillVersionRange = exports.parseSemVer = exports.isValidSkillVersionRange = exports.isValidSemVer = exports.compareSemVer = exports.compareParsedSemVer = exports.SEMVER_2_PATTERN = exports.skillOk = exports.skillFail = exports.skillError = exports.joinSkillErrorPath = exports.SkillContractErrorCode = exports.buildSkillAssetName = exports.REQUIRED_PACKAGE_ENTRIES = exports.SKILL_YAML_SAFE_PROFILE = exports.SKILL_STAGING_DIRNAME = exports.SKILL_SCHEMA_VERSION = exports.SKILL_RISK_ORDER = exports.SKILL_RISK_LEVELS = exports.SKILL_MD_FILENAME = exports.SKILL_MANIFEST_FILENAME = exports.SKILL_INSTALL_ROOT_PREFIX = exports.SKILL_ID_PATTERN = exports.SKILL_ID_MAX_LENGTH = exports.SKILL_FILES_MAX_COUNT = exports.SKILL_FILE_MAX_SIZE = exports.SKILL_FILE_KINDS = exports.SKILL_DECLARED_PERMISSIONS = exports.SKILL_ARTIFACT_MAX_SIZE = exports.SKILL_ARTIFACT_FORMAT = exports.SKILL_ARTIFACT_CONTENT_TYPE = exports.SKILL_AGENT_SUPPORT_VALUES = exports.SHA256_HEX_PATTERN = exports.RFC3339_UTC_PATTERN = exports.RESERVED_SKILL_IDS = exports.REPOSITORY_SLUG_PATTERN = exports.PERMISSION_DECLARATION_NOTICE_KEY = exports.GIT_REF_PATTERN = exports.GIT_COMMIT_SHA_PATTERN = exports.AGENT_SUPPORT_LABEL_KEYS = void 0;
|
|
28
|
+
exports.SKILL_RECEIPT_JSON_SCHEMA = exports.SKILL_MANIFEST_JSON_SCHEMA = exports.SKILL_CATALOG_JSON_SCHEMA = exports.validateSkillPayloadPath = exports.validateSkillManifest = exports.validateSkillInstallReceipt = exports.validateSkillIdentityConsistency = exports.validateSkillId = void 0;
|
|
29
|
+
var constants_1 = require("../../lib/skills/constants");
|
|
30
|
+
Object.defineProperty(exports, "AGENT_SUPPORT_LABEL_KEYS", { enumerable: true, get: function () { return constants_1.AGENT_SUPPORT_LABEL_KEYS; } });
|
|
31
|
+
Object.defineProperty(exports, "GIT_COMMIT_SHA_PATTERN", { enumerable: true, get: function () { return constants_1.GIT_COMMIT_SHA_PATTERN; } });
|
|
32
|
+
Object.defineProperty(exports, "GIT_REF_PATTERN", { enumerable: true, get: function () { return constants_1.GIT_REF_PATTERN; } });
|
|
33
|
+
Object.defineProperty(exports, "PERMISSION_DECLARATION_NOTICE_KEY", { enumerable: true, get: function () { return constants_1.PERMISSION_DECLARATION_NOTICE_KEY; } });
|
|
34
|
+
Object.defineProperty(exports, "REPOSITORY_SLUG_PATTERN", { enumerable: true, get: function () { return constants_1.REPOSITORY_SLUG_PATTERN; } });
|
|
35
|
+
Object.defineProperty(exports, "RESERVED_SKILL_IDS", { enumerable: true, get: function () { return constants_1.RESERVED_SKILL_IDS; } });
|
|
36
|
+
Object.defineProperty(exports, "RFC3339_UTC_PATTERN", { enumerable: true, get: function () { return constants_1.RFC3339_UTC_PATTERN; } });
|
|
37
|
+
Object.defineProperty(exports, "SHA256_HEX_PATTERN", { enumerable: true, get: function () { return constants_1.SHA256_HEX_PATTERN; } });
|
|
38
|
+
Object.defineProperty(exports, "SKILL_AGENT_SUPPORT_VALUES", { enumerable: true, get: function () { return constants_1.SKILL_AGENT_SUPPORT_VALUES; } });
|
|
39
|
+
Object.defineProperty(exports, "SKILL_ARTIFACT_CONTENT_TYPE", { enumerable: true, get: function () { return constants_1.SKILL_ARTIFACT_CONTENT_TYPE; } });
|
|
40
|
+
Object.defineProperty(exports, "SKILL_ARTIFACT_FORMAT", { enumerable: true, get: function () { return constants_1.SKILL_ARTIFACT_FORMAT; } });
|
|
41
|
+
Object.defineProperty(exports, "SKILL_ARTIFACT_MAX_SIZE", { enumerable: true, get: function () { return constants_1.SKILL_ARTIFACT_MAX_SIZE; } });
|
|
42
|
+
Object.defineProperty(exports, "SKILL_DECLARED_PERMISSIONS", { enumerable: true, get: function () { return constants_1.SKILL_DECLARED_PERMISSIONS; } });
|
|
43
|
+
Object.defineProperty(exports, "SKILL_FILE_KINDS", { enumerable: true, get: function () { return constants_1.SKILL_FILE_KINDS; } });
|
|
44
|
+
Object.defineProperty(exports, "SKILL_FILE_MAX_SIZE", { enumerable: true, get: function () { return constants_1.SKILL_FILE_MAX_SIZE; } });
|
|
45
|
+
Object.defineProperty(exports, "SKILL_FILES_MAX_COUNT", { enumerable: true, get: function () { return constants_1.SKILL_FILES_MAX_COUNT; } });
|
|
46
|
+
Object.defineProperty(exports, "SKILL_ID_MAX_LENGTH", { enumerable: true, get: function () { return constants_1.SKILL_ID_MAX_LENGTH; } });
|
|
47
|
+
Object.defineProperty(exports, "SKILL_ID_PATTERN", { enumerable: true, get: function () { return constants_1.SKILL_ID_PATTERN; } });
|
|
48
|
+
Object.defineProperty(exports, "SKILL_INSTALL_ROOT_PREFIX", { enumerable: true, get: function () { return constants_1.SKILL_INSTALL_ROOT_PREFIX; } });
|
|
49
|
+
Object.defineProperty(exports, "SKILL_MANIFEST_FILENAME", { enumerable: true, get: function () { return constants_1.SKILL_MANIFEST_FILENAME; } });
|
|
50
|
+
Object.defineProperty(exports, "SKILL_MD_FILENAME", { enumerable: true, get: function () { return constants_1.SKILL_MD_FILENAME; } });
|
|
51
|
+
Object.defineProperty(exports, "SKILL_RISK_LEVELS", { enumerable: true, get: function () { return constants_1.SKILL_RISK_LEVELS; } });
|
|
52
|
+
Object.defineProperty(exports, "SKILL_RISK_ORDER", { enumerable: true, get: function () { return constants_1.SKILL_RISK_ORDER; } });
|
|
53
|
+
Object.defineProperty(exports, "SKILL_SCHEMA_VERSION", { enumerable: true, get: function () { return constants_1.SKILL_SCHEMA_VERSION; } });
|
|
54
|
+
Object.defineProperty(exports, "SKILL_STAGING_DIRNAME", { enumerable: true, get: function () { return constants_1.SKILL_STAGING_DIRNAME; } });
|
|
55
|
+
Object.defineProperty(exports, "SKILL_YAML_SAFE_PROFILE", { enumerable: true, get: function () { return constants_1.SKILL_YAML_SAFE_PROFILE; } });
|
|
56
|
+
Object.defineProperty(exports, "REQUIRED_PACKAGE_ENTRIES", { enumerable: true, get: function () { return constants_1.REQUIRED_PACKAGE_ENTRIES; } });
|
|
57
|
+
Object.defineProperty(exports, "buildSkillAssetName", { enumerable: true, get: function () { return constants_1.buildSkillAssetName; } });
|
|
58
|
+
var errors_1 = require("../../lib/skills/errors");
|
|
59
|
+
Object.defineProperty(exports, "SkillContractErrorCode", { enumerable: true, get: function () { return errors_1.SkillContractErrorCode; } });
|
|
60
|
+
Object.defineProperty(exports, "joinSkillErrorPath", { enumerable: true, get: function () { return errors_1.joinPath; } });
|
|
61
|
+
Object.defineProperty(exports, "skillError", { enumerable: true, get: function () { return errors_1.skillError; } });
|
|
62
|
+
Object.defineProperty(exports, "skillFail", { enumerable: true, get: function () { return errors_1.skillFail; } });
|
|
63
|
+
Object.defineProperty(exports, "skillOk", { enumerable: true, get: function () { return errors_1.skillOk; } });
|
|
64
|
+
var semver_1 = require("../../lib/skills/semver");
|
|
65
|
+
Object.defineProperty(exports, "SEMVER_2_PATTERN", { enumerable: true, get: function () { return semver_1.SEMVER_2_PATTERN; } });
|
|
66
|
+
Object.defineProperty(exports, "compareParsedSemVer", { enumerable: true, get: function () { return semver_1.compareParsedSemVer; } });
|
|
67
|
+
Object.defineProperty(exports, "compareSemVer", { enumerable: true, get: function () { return semver_1.compareSemVer; } });
|
|
68
|
+
Object.defineProperty(exports, "isValidSemVer", { enumerable: true, get: function () { return semver_1.isValidSemVer; } });
|
|
69
|
+
Object.defineProperty(exports, "isValidSkillVersionRange", { enumerable: true, get: function () { return semver_1.isValidSkillVersionRange; } });
|
|
70
|
+
Object.defineProperty(exports, "parseSemVer", { enumerable: true, get: function () { return semver_1.parseSemVer; } });
|
|
71
|
+
Object.defineProperty(exports, "parseSkillVersionRange", { enumerable: true, get: function () { return semver_1.parseSkillVersionRange; } });
|
|
72
|
+
Object.defineProperty(exports, "satisfiesSkillVersionRange", { enumerable: true, get: function () { return semver_1.satisfiesSkillVersionRange; } });
|
|
73
|
+
var schema_1 = require("../../lib/skills/schema");
|
|
74
|
+
Object.defineProperty(exports, "SKILL_DOCUMENT_FIELDS", { enumerable: true, get: function () { return schema_1.SKILL_DOCUMENT_FIELDS; } });
|
|
75
|
+
Object.defineProperty(exports, "SKILL_OPTIONAL_FIELDS", { enumerable: true, get: function () { return schema_1.SKILL_OPTIONAL_FIELDS; } });
|
|
76
|
+
Object.defineProperty(exports, "canonicalizeSkillReceipt", { enumerable: true, get: function () { return schema_1.canonicalizeSkillReceipt; } });
|
|
77
|
+
Object.defineProperty(exports, "computeSkillRisk", { enumerable: true, get: function () { return schema_1.computeSkillRisk; } });
|
|
78
|
+
Object.defineProperty(exports, "detectSkillIdCollision", { enumerable: true, get: function () { return schema_1.detectSkillIdCollision; } });
|
|
79
|
+
Object.defineProperty(exports, "foldSkillIdForCollision", { enumerable: true, get: function () { return schema_1.foldSkillIdForCollision; } });
|
|
80
|
+
Object.defineProperty(exports, "resolveEffectiveSkillRisk", { enumerable: true, get: function () { return schema_1.resolveEffectiveSkillRisk; } });
|
|
81
|
+
Object.defineProperty(exports, "validateManifestFileSet", { enumerable: true, get: function () { return schema_1.validateManifestFileSet; } });
|
|
82
|
+
Object.defineProperty(exports, "validateSkillCatalog", { enumerable: true, get: function () { return schema_1.validateSkillCatalog; } });
|
|
83
|
+
Object.defineProperty(exports, "validateSkillId", { enumerable: true, get: function () { return schema_1.validateSkillId; } });
|
|
84
|
+
Object.defineProperty(exports, "validateSkillIdentityConsistency", { enumerable: true, get: function () { return schema_1.validateSkillIdentityConsistency; } });
|
|
85
|
+
Object.defineProperty(exports, "validateSkillInstallReceipt", { enumerable: true, get: function () { return schema_1.validateSkillInstallReceipt; } });
|
|
86
|
+
Object.defineProperty(exports, "validateSkillManifest", { enumerable: true, get: function () { return schema_1.validateSkillManifest; } });
|
|
87
|
+
Object.defineProperty(exports, "validateSkillPayloadPath", { enumerable: true, get: function () { return schema_1.validateSkillPayloadPath; } });
|
|
88
|
+
var json_schema_1 = require("../../lib/skills/json-schema");
|
|
89
|
+
Object.defineProperty(exports, "SKILL_CATALOG_JSON_SCHEMA", { enumerable: true, get: function () { return json_schema_1.SKILL_CATALOG_JSON_SCHEMA; } });
|
|
90
|
+
Object.defineProperty(exports, "SKILL_MANIFEST_JSON_SCHEMA", { enumerable: true, get: function () { return json_schema_1.SKILL_MANIFEST_JSON_SCHEMA; } });
|
|
91
|
+
Object.defineProperty(exports, "SKILL_RECEIPT_JSON_SCHEMA", { enumerable: true, get: function () { return json_schema_1.SKILL_RECEIPT_JSON_SCHEMA; } });
|