commandmate 0.42.2 → 0.44.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/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +176 -176
- package/.next/app-path-routes-manifest.json +34 -34
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +15 -15
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route.js +2 -2
- package/.next/server/app/api/app/update/route.js.nft.json +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.js.nft.json +1 -1
- package/.next/server/app/api/app/update-check/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/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/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.js.nft.json +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.js.nft.json +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.js.nft.json +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js +103 -1
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js +2 -2
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
- package/.next/server/app/api/metrics/vibe/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/escalation/route.js +1 -1
- package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
- package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route.js +1 -1
- package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/route.js +1 -1
- package/.next/server/app/api/relays/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-surface-mode/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route.js.nft.json +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 -1
- package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route.js +1 -1
- package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route.js +2 -2
- package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route.js +1 -1
- package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/slash-commands/route.js +1 -1
- package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route.js.nft.json +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +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 +3 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +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]/direct-input/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/env/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.js.nft.json +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 +3 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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]/instances/notes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +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.nft.json +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.nft.json +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 +7 -7
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +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.nft.json +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.nft.json +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.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +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]/resolve-target/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +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 -103
- 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 +3 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +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 +3 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +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 +3 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +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 -103
- 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]/git-workflow/route.js +103 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +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]/tasks/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js +103 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +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.nft.json +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.js.nft.json +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]/verify/config/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/apply-default-agents/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +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 +1 -1
- package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
- 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 +1 -1
- 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 +34 -34
- package/.next/server/chunks/1068.js +1 -1
- package/.next/server/chunks/1210.js +1 -1
- package/.next/server/chunks/1501.js +3 -3
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/22.js +1 -1
- package/.next/server/chunks/2283.js +15 -0
- package/.next/server/chunks/2328.js +1 -1
- package/.next/server/chunks/2404.js +4 -3
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/252.js +1 -1
- package/.next/server/chunks/2816.js +1 -1
- package/.next/server/chunks/3543.js +1 -1
- package/.next/server/chunks/3730.js +1 -1
- package/.next/server/chunks/3945.js +1 -1
- package/.next/server/chunks/4207.js +3 -3
- package/.next/server/chunks/4802.js +1 -1
- package/.next/server/chunks/488.js +1 -0
- package/.next/server/chunks/5064.js +1 -1
- package/.next/server/chunks/5326.js +1 -1
- package/.next/server/chunks/5456.js +1 -1
- package/.next/server/chunks/5571.js +1 -1
- package/.next/server/chunks/5775.js +1 -1
- package/.next/server/chunks/611.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6285.js +1 -1
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/6474.js +14 -0
- package/.next/server/chunks/650.js +1 -1
- package/.next/server/chunks/6661.js +1 -1
- package/.next/server/chunks/6781.js +1 -1
- package/.next/server/chunks/6793.js +1 -1
- package/.next/server/chunks/6927.js +1 -0
- package/.next/server/chunks/7491.js +3 -0
- package/.next/server/chunks/7506.js +1 -1
- package/.next/server/chunks/7685.js +1 -1
- package/.next/server/chunks/7905.js +1 -1
- package/.next/server/chunks/8543.js +1 -1
- package/.next/server/chunks/8581.js +2 -2
- package/.next/server/chunks/8728.js +2 -2
- package/.next/server/chunks/8782.js +1 -0
- package/.next/server/chunks/8791.js +1 -1
- package/.next/server/chunks/8800.js +4 -3
- package/.next/server/chunks/8918.js +108 -6
- package/.next/server/chunks/9130.js +3 -3
- package/.next/server/chunks/{8052.js → 9353.js} +4 -2
- package/.next/server/chunks/9390.js +3 -0
- package/.next/server/chunks/9627.js +3 -3
- package/.next/server/chunks/967.js +1 -0
- package/.next/server/chunks/9731.js +3 -3
- package/.next/server/chunks/9882.js +3 -3
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/server/src/middleware.js +2 -2
- package/.next/server/src/middleware.js.map +1 -1
- package/.next/static/chunks/2053-85a974ddfe7498fe.js +1 -0
- package/.next/static/chunks/{2407-6b9e12c099fa598c.js → 2407-340774f1a24f2b45.js} +1 -1
- package/.next/static/chunks/5449-6cb80bab2bd06b79.js +1 -0
- package/.next/static/chunks/5521-c358c31f60e5e689.js +1 -0
- package/.next/static/chunks/591-0a45801e83f26f24.js +1 -0
- package/.next/static/chunks/8165-3853772f6ae1299b.js +1 -0
- package/.next/static/chunks/{8566-a6a7c70558927410.js → 8566-aeda747542072ace.js} +1 -1
- package/.next/static/chunks/8811-29eaa24237f48558.js +1 -0
- package/.next/static/chunks/{9619-22adf5367c4b7080.js → 9619-84aced0846cbe3ac.js} +1 -1
- package/.next/static/chunks/app/{layout-5b95e1236dcd9ef6.js → layout-0fc249fb7de75a27.js} +1 -1
- package/.next/static/chunks/app/review/page-ff9efae3f86eb840.js +1 -0
- package/.next/static/chunks/app/sessions/page-55297155e7bf01b9.js +1 -0
- package/.next/static/chunks/app/skills/[skillId]/page-9ee7a381636e60cb.js +1 -0
- package/.next/static/chunks/app/skills/page-182e16168b2fc098.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-d2103e0c25be83c8.js +1 -0
- package/.next/static/css/38070d879efa1371.css +1 -0
- package/.next/trace +13 -13
- package/README.md +58 -620
- package/dist/cli/commands/ask.d.ts.map +1 -1
- package/dist/cli/commands/ask.js +23 -149
- package/dist/cli/commands/capture.d.ts.map +1 -1
- package/dist/cli/commands/capture.js +11 -1
- package/dist/cli/commands/docs.d.ts.map +1 -1
- package/dist/cli/commands/docs.js +5 -0
- package/dist/cli/commands/remote.d.ts +24 -1
- package/dist/cli/commands/remote.d.ts.map +1 -1
- package/dist/cli/commands/remote.js +155 -6
- package/dist/cli/commands/reply.d.ts +40 -0
- package/dist/cli/commands/reply.d.ts.map +1 -0
- package/dist/cli/commands/reply.js +133 -0
- package/dist/cli/commands/respond.d.ts.map +1 -1
- package/dist/cli/commands/respond.js +255 -112
- package/dist/cli/commands/stop.d.ts.map +1 -1
- package/dist/cli/commands/stop.js +53 -1
- package/dist/cli/commands/sync.js +3 -3
- package/dist/cli/commands/wait.d.ts +5 -0
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +10 -1
- package/dist/cli/docs/agent-operations.d.ts +2 -2
- package/dist/cli/docs/agent-operations.d.ts.map +1 -1
- package/dist/cli/docs/agent-operations.js +13 -0
- package/dist/cli/docs/setup-guide.d.ts +14 -0
- package/dist/cli/docs/setup-guide.d.ts.map +1 -0
- package/dist/cli/docs/setup-guide.js +366 -0
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +4 -0
- package/dist/cli/types/api-responses.d.ts +11 -0
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/types/index.d.ts +2 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/utils/daemon.d.ts +42 -2
- package/dist/cli/utils/daemon.d.ts.map +1 -1
- package/dist/cli/utils/daemon.js +222 -40
- package/dist/cli/utils/docs-reader.d.ts +6 -0
- package/dist/cli/utils/docs-reader.d.ts.map +1 -1
- package/dist/cli/utils/docs-reader.js +14 -13
- package/dist/cli/utils/npm-runner.d.ts +12 -0
- package/dist/cli/utils/npm-runner.d.ts.map +1 -1
- package/dist/cli/utils/npm-runner.js +36 -0
- package/dist/cli/utils/process-inspect.d.ts +55 -0
- package/dist/cli/utils/process-inspect.d.ts.map +1 -0
- package/dist/cli/utils/process-inspect.js +214 -0
- package/dist/cli/utils/remote-pairing.d.ts +68 -0
- package/dist/cli/utils/remote-pairing.d.ts.map +1 -0
- package/dist/cli/utils/remote-pairing.js +117 -0
- package/dist/cli/utils/reply-ledger.d.ts +95 -0
- package/dist/cli/utils/reply-ledger.d.ts.map +1 -0
- package/dist/cli/utils/reply-ledger.js +187 -0
- package/dist/cli/utils/server-identity.d.ts +50 -0
- package/dist/cli/utils/server-identity.d.ts.map +1 -0
- package/dist/cli/utils/server-identity.js +118 -0
- package/dist/cli/utils/server-ready.d.ts +13 -0
- package/dist/cli/utils/server-ready.d.ts.map +1 -1
- package/dist/cli/utils/server-ready.js +16 -0
- package/dist/lib/cli-tools/copilot-executable.d.ts +9 -0
- package/dist/lib/cli-tools/copilot-executable.d.ts.map +1 -1
- package/dist/lib/cli-tools/copilot-executable.js +21 -5
- package/dist/lib/cli-tools/opencode-executable.d.ts +103 -0
- package/dist/lib/cli-tools/opencode-executable.d.ts.map +1 -0
- package/dist/lib/cli-tools/opencode-executable.js +179 -0
- package/dist/lib/cli-tools/types.d.ts +1 -1
- package/dist/lib/cli-tools/types.d.ts.map +1 -1
- package/dist/lib/cli-tools/types.js +5 -1
- package/dist/lib/detection/tools/verified-against.d.ts +15 -0
- package/dist/lib/detection/tools/verified-against.d.ts.map +1 -1
- package/dist/lib/detection/tools/verified-against.js +17 -1
- package/dist/lib/detection/version-probes.d.ts.map +1 -1
- package/dist/lib/detection/version-probes.js +14 -1
- package/dist/lib/security/pairing-code.d.ts +2 -1
- package/dist/lib/security/pairing-code.d.ts.map +1 -1
- package/dist/lib/session/tmux-session-surface.d.ts.map +1 -1
- package/dist/lib/session/tmux-session-surface.js +1 -1
- package/dist/server/locales/en/worktree.json +72 -20
- package/dist/server/locales/ja/worktree.json +72 -20
- package/dist/server/server.js +23 -0
- package/dist/server/src/config/cli-tool-timing-config.js +19 -1
- package/dist/server/src/config/detection-evidence-config.js +3 -0
- package/dist/server/src/config/image-extensions.js +1 -0
- package/dist/server/src/config/schedule-config.js +55 -1
- package/dist/server/src/lib/auto-yes-poller.js +69 -4
- package/dist/server/src/lib/cli-tools/agent-mode-spec.js +54 -2
- package/dist/server/src/lib/cli-tools/base.js +6 -2
- package/dist/server/src/lib/cli-tools/command-code-plan-review.js +175 -0
- package/dist/server/src/lib/cli-tools/command-code.js +81 -2
- package/dist/server/src/lib/cli-tools/composer-spec.js +10 -0
- package/dist/server/src/lib/cli-tools/copilot-executable.js +21 -5
- package/dist/server/src/lib/cli-tools/graceful-exit.js +15 -1
- package/dist/server/src/lib/cli-tools/index.js +3 -1
- package/dist/server/src/lib/cli-tools/install-hints.js +9 -3
- package/dist/server/src/lib/cli-tools/liveness-spec.js +19 -0
- package/dist/server/src/lib/cli-tools/manager.js +2 -0
- package/dist/server/src/lib/cli-tools/opencode-executable.js +179 -0
- package/dist/server/src/lib/cli-tools/opencode-v2.js +369 -0
- package/dist/server/src/lib/cli-tools/opencode.js +29 -5
- package/dist/server/src/lib/cli-tools/types.js +5 -1
- package/dist/server/src/lib/cmate-cli-tool-parser.js +65 -7
- package/dist/server/src/lib/cmate-parser.js +12 -0
- package/dist/server/src/lib/cmate-validator.js +13 -1
- package/dist/server/src/lib/detection/cli-patterns.js +172 -3
- package/dist/server/src/lib/detection/model-info-extractor.js +79 -7
- package/dist/server/src/lib/detection/status-detector.js +10 -1
- package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +2 -1
- package/dist/server/src/lib/detection/tools/codex/detect.js +26 -0
- package/dist/server/src/lib/detection/tools/command-code/plan-review-state.js +75 -0
- package/dist/server/src/lib/detection/tools/opencode-v2/detect.js +253 -0
- package/dist/server/src/lib/detection/tools/opencode-v2/dialog-title.js +48 -0
- package/dist/server/src/lib/detection/tools/registry.js +2 -0
- package/dist/server/src/lib/detection/tools/run-detection.js +9 -0
- package/dist/server/src/lib/detection/tools/verified-against.js +17 -1
- package/dist/server/src/lib/detection/upstream-faults.js +8 -0
- package/dist/server/src/lib/detection/version-probes.js +14 -1
- package/dist/server/src/lib/hooks/agent-session-telemetry.js +36 -1
- package/dist/server/src/lib/hooks/sources/claude/transcript.js +33 -1
- package/dist/server/src/lib/hooks/sources/opencode/log-diagnosis.js +105 -0
- package/dist/server/src/lib/hooks/sources/opencode/source.js +7 -1
- package/dist/server/src/lib/hooks/sources/opencode-v2/client.js +422 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/decision-labels.js +24 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/history.js +421 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/ingest.js +271 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/mappers.js +165 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/payloads.js +351 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/ports.js +230 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/reattach.js +149 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/runtime.js +180 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/secrets.js +182 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/source.js +295 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/subscription.js +455 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/tool-id.js +18 -0
- package/dist/server/src/lib/hooks/sources/opencode-v2/usage.js +214 -0
- package/dist/server/src/lib/hooks/sources/registry.js +2 -0
- package/dist/server/src/lib/hooks/structured-decision-response.js +14 -5
- package/dist/server/src/lib/job-executor.js +2 -1
- package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +15 -1
- package/dist/server/src/lib/polling/structured-history-gate.js +19 -5
- package/dist/server/src/lib/relay/relay-delivery.js +4 -1
- package/dist/server/src/lib/session/agent-event-state.js +24 -0
- package/dist/server/src/lib/session/claude-executor.js +186 -12
- package/dist/server/src/lib/session/claude-session.js +131 -15
- package/dist/server/src/lib/session/current-output-builder.js +27 -3
- package/dist/server/src/lib/session/send-user-message.js +4 -0
- package/dist/server/src/lib/session/session-start-error.js +20 -0
- package/dist/server/src/lib/session/structured-prompt.js +54 -0
- package/dist/server/src/lib/session/tmux-session-surface.js +1 -1
- package/dist/server/src/lib/skills/agent-state-paths.js +39 -0
- package/dist/server/src/lib/skills/compatibility-matrix.js +65 -0
- package/dist/server/src/lib/skills/receipt-owned-paths.js +118 -0
- package/dist/server/src/lib/tmux/tmux.js +73 -2
- package/dist/server/src/lib/verification/env-clean-gate.js +281 -10
- package/dist/server/src/lib/verification/gate-runner.js +29 -2
- package/dist/server/src/lib/verification/scope-gate.js +58 -4
- package/dist/server/src/types/cli-tool-contracts.js +10 -2
- package/dist/types/cli-tool-contracts.d.ts +16 -5
- package/dist/types/cli-tool-contracts.d.ts.map +1 -1
- package/dist/types/cli-tool-contracts.js +10 -2
- package/docs/en/architecture.md +722 -0
- package/docs/en/user-guide/agents-guide.md +306 -0
- package/docs/en/user-guide/cli-setup-guide.md +676 -0
- package/docs/en/user-guide/cmate-schedules-guide.md +388 -0
- package/docs/en/user-guide/commands-guide.md +467 -0
- package/docs/en/user-guide/quick-start.md +231 -0
- package/docs/en/user-guide/webapp-guide.md +1020 -0
- package/docs/en/user-guide/workflow-examples.md +463 -0
- package/package.json +19 -7
- package/release-notes/0.43.0.json +130 -0
- package/release-notes/0.44.0.json +82 -0
- package/scripts/hooks/cmate-agent-event.sh +14 -0
- package/scripts/opencode-v2/launch.sh +226 -0
- package/.next/server/chunks/1990.js +0 -103
- package/.next/server/chunks/3707.js +0 -15
- package/.next/server/chunks/4443.js +0 -3
- package/.next/server/chunks/5164.js +0 -1
- package/.next/server/chunks/5742.js +0 -1
- package/.next/server/chunks/7004.js +0 -1
- package/.next/server/chunks/8673.js +0 -14
- package/.next/static/chunks/2039-117a361f795ddc4b.js +0 -1
- package/.next/static/chunks/2053-611dd27d42721b79.js +0 -1
- package/.next/static/chunks/3778-56f41fc2cecb8c43.js +0 -1
- package/.next/static/chunks/5449-550bd273dccc3ae4.js +0 -1
- package/.next/static/chunks/7705-2a2936551b0cf9a3.js +0 -1
- package/.next/static/chunks/8165-934ee7ff3b4ddfd4.js +0 -1
- package/.next/static/chunks/app/review/page-30616daa1dc595c2.js +0 -1
- package/.next/static/chunks/app/sessions/page-1a8ba152bbcb9efb.js +0 -1
- package/.next/static/chunks/app/skills/[skillId]/page-ab7e432b69fccb3b.js +0 -1
- package/.next/static/chunks/app/skills/page-56b4fa11223e0cbd.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-59f5337e031518c6.js +0 -1
- package/.next/static/css/b3f433d52b8ed5c8.css +0 -1
- /package/.next/static/{MXZXkcFAnpELZnxxHB4iJ → wu7SUiHTirFcrpo5teyZ3}/_buildManifest.js +0 -0
- /package/.next/static/{MXZXkcFAnpELZnxxHB4iJ → wu7SUiHTirFcrpo5teyZ3}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=5456,exports.ids=[5456],exports.modules={13075:(a,b,c)=>{c.d(b,{EU:()=>K,JJ:()=>S,Jg:()=>T,MD:()=>W,Yz:()=>U,bX:()=>R,en:()=>X,jH:()=>J,qZ:()=>V,r5:()=>M,vy:()=>I});var d=c(15194),e=c(96210),f=c(55432),g=c(36931);let h=["schema_version","id","name","version","summary","description","capabilities","expected_outcomes","provider","license","homepage","keywords","compatibility","requirements","declared_permissions","declared_risk","risk_rationale","files"],i=["schema_version","entries"],j=["id","name","summary","provider","license","homepage","keywords","latest","versions"],k=["version","changelog","published_at","source","artifact","compatibility","declared_risk"],l=["schema_version","skill_id","version","install_root","install_roots","source","artifact","files","declared_risk","computed_risk","effective_risk","declared_permissions","agent_compatibility"],m=["name","url","contact"],n=["commandmate","agents"],o=["agent","support","evidence"],p=["commands","network_hosts"],q=["name","version_range"],r=["path","sha256","size","kind","executable","script"],s=["repository","ref","commit"],t=["asset_name","url","sha256","size","content_type","format"],u=["asset_name","sha256","size","format"],v=["path","sha256","size","executable"];function w(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function x(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function y(a,b,c){return w(a)?a:(c.push((0,f.iS)(f.J$.NOT_AN_OBJECT,b,`${b||"/"} must be an object`)),null)}function z(a,b,c,d){for(let g of Object.keys(a))b.includes(g)||d.push((0,f.iS)(f.J$.UNKNOWN_FIELD,(0,f.uJ)(c,g),`unknown field is not allowed in schema_version ${e.jq}`))}function A(a,b,c,d,e={}){let g=(0,f.uJ)(c,b);if(!x(a,b)||void 0===a[b]){e.optional||d.push((0,f.iS)(f.J$.MISSING_FIELD,g,`${b} is required`));return}let h=a[b];if("string"!=typeof h)return void d.push((0,f.iS)(f.J$.INVALID_TYPE,g,`${b} must be a string`));let i=e.formatCode??f.J$.LIMIT_EXCEEDED,j=e.minLength??1;return h.length<j?void d.push((0,f.iS)(i,g,`${b} is shorter than the minimum`,{minLength:j})):void 0!==e.maxLength&&h.length>e.maxLength?void d.push((0,f.iS)(i,g,`${b} exceeds the maximum length`,{maxLength:e.maxLength})):e.pattern&&!e.pattern.test(h)?void d.push((0,f.iS)(e.formatCode??f.J$.INVALID_FORMAT,g,`${b} does not match the required format`,e.patternName?{format:e.patternName}:void 0)):h}function B(a,b,c,d,e){let g=(0,f.uJ)(c,b);if(!x(a,b)||void 0===a[b])return void d.push((0,f.iS)(f.J$.MISSING_FIELD,g,`${b} is required`));let h=a[b];return"number"==typeof h&&Number.isInteger(h)?h<e.min||h>e.max?void d.push((0,f.iS)(f.J$.LIMIT_EXCEEDED,g,`${b} is out of range`,e)):h:void d.push((0,f.iS)(f.J$.INVALID_TYPE,g,`${b} must be an integer`))}function C(a,b,c,d){let e=(0,f.uJ)(c,b);if(!x(a,b)||void 0===a[b])return void d.push((0,f.iS)(f.J$.MISSING_FIELD,e,`${b} is required`));let g=a[b];return"boolean"!=typeof g?void d.push((0,f.iS)(f.J$.INVALID_TYPE,e,`${b} must be a boolean`)):g}function D(a,b,c,d,e){let g=(0,f.uJ)(c,b);if(!x(a,b)||void 0===a[b]){e.optional||d.push((0,f.iS)(f.J$.MISSING_FIELD,g,`${b} is required`));return}let h=a[b];return Array.isArray(h)?h.length>e.maxItems?void d.push((0,f.iS)(f.J$.LIMIT_EXCEEDED,g,`${b} has too many items`,{maxItems:e.maxItems})):h:void d.push((0,f.iS)(f.J$.INVALID_TYPE,g,`${b} must be an array`))}function E(a,b,c,d,e){let g=(0,f.uJ)(c,b);if(!x(a,b)||void 0===a[b])return void d.push((0,f.iS)(f.J$.MISSING_FIELD,g,`${b} is required`));let h=a[b];return"string"==typeof h&&e.includes(h)?h:void d.push((0,f.iS)(f.J$.INVALID_ENUM,g,`${b} is not an allowed value`,{allowed:e.join("|")}))}function F(a,b,c,d,e){let g=D(a,b,c,d,{maxItems:e.maxItems,optional:e.optional});if(void 0===g)return;let h=[],i=!1;return g.forEach((a,g)=>{let j=(0,f.uJ)((0,f.uJ)(c,b),g);if("string"!=typeof a||0===a.length||a.length>e.maxLength){d.push((0,f.iS)(f.J$.INVALID_TYPE,j,"item must be a bounded string",{maxLength:e.maxLength})),i=!0;return}if(e.pattern&&!e.pattern.test(a)){d.push((0,f.iS)(f.J$.INVALID_FORMAT,j,"item does not match the required format")),i=!0;return}h.push(a)}),i?void 0:h}function G(a,b,c,d,g={}){let h=A(a,b,c,d,{optional:g.optional,maxLength:512});if(void 0!==h)return h.startsWith(e.JO)?h:void d.push((0,f.iS)(f.J$.INVALID_FORMAT,(0,f.uJ)(c,b),`${b} must be an https URL`))}function H(a,b){let c="/schema_version",d=a.schema_version;return void 0===d?void b.push((0,f.iS)(f.J$.SCHEMA_VERSION_UNSUPPORTED,c,"schema_version is required")):d!==e.jq?void b.push((0,f.iS)(f.J$.SCHEMA_VERSION_UNSUPPORTED,c,"schema_version is not supported by this build",{supported:e.jq})):e.jq}function I(a){return a.normalize("NFKC").toLowerCase()}function J(a,b="/id"){return"string"!=typeof a||0===a.length?(0,f._9)([(0,f.iS)(f.J$.ID_INVALID,b,"id must be a non-empty string")]):a.length>e.cj?(0,f._9)([(0,f.iS)(f.J$.ID_INVALID,b,"id exceeds the maximum length",{maxLength:e.cj})]):e.X0.test(a)?e.kM.includes(a)?(0,f._9)([(0,f.iS)(f.J$.ID_RESERVED,b,"id is reserved")]):(0,f.qO)(a):(0,f._9)([(0,f.iS)(f.J$.ID_INVALID,b,"id must be a lowercase ASCII slug",{format:"lowercase-slug"})])}function K(a){let b=J(a.manifestId);if(!b.ok)return b;let c=[];return a.directoryName!==a.manifestId&&c.push((0,f.iS)(f.J$.ID_MISMATCH,"/id","directory name does not match the manifest id")),a.skillMdName!==a.manifestName&&c.push((0,f.iS)(f.J$.ID_MISMATCH,"/name","SKILL.md name does not match the manifest name")),c.length>0?(0,f._9)(c):(0,f.qO)(a.manifestId)}let L=/^[A-Za-z]:/;function M(a,b){let c=(a,c)=>(0,f._9)([(0,f.iS)(f.J$.FILE_PATH_UNSAFE,b,a,c)]);if("string"!=typeof a||0===a.length)return c("path must be a non-empty string");if(a.length>e.S$)return c("path exceeds the maximum length",{maxLength:e.S$});if(function(a){for(let b=0;b<a.length;b++){let c=a.charCodeAt(b);if(c<32||127===c||92===c)return!0}return!1}(a))return c("path contains a control character or a backslash");if(a.startsWith("/")||L.test(a))return c("path must be relative");if(a!==a.normalize("NFC"))return c("path must be NFC-normalized");if(a.includes("//"))return c("path must not contain empty segments");if(a.endsWith("/"))return c("path must not be a directory entry");let d=a.split("/");if(d.length>e.$e)return c("path is nested too deeply",{maxDepth:e.$e});for(let a of d){if("."===a||".."===a)return c('path must not contain "." or ".." segments');if(a.length>e.AN)return c("path segment is too long",{maxLength:e.AN});if(a!==a.trim())return c("path segment must not be padded with whitespace")}return(0,f.qO)(a)}function N(a,b,c){let d=(0,f.uJ)(b,"provider"),g=a.provider;if(void 0===g)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,d,"provider is required"));let h=y(g,d,c);if(!h)return;z(h,m,d,c);let i=A(h,"name",d,c,{maxLength:e.q3}),j=G(h,"url",d,c,{optional:!0}),k=A(h,"contact",d,c,{optional:!0,maxLength:200});if(void 0!==i)return{name:i,...void 0!==j?{url:j}:{},...void 0!==k?{contact:k}:{}}}function O(a,b,c){let g=y(a,b,c);if(!g)return;z(g,o,b,c);let h=A(g,"agent",b,c,{maxLength:40});if(void 0!==h&&!(0,d.hR)(h))return void c.push((0,f.iS)(f.J$.INVALID_ENUM,(0,f.uJ)(b,"agent"),"agent is not a known CLI tool"));let i=E(g,"support",b,c,e.h3),j=A(g,"evidence",b,c,{maxLength:e.G0});if(void 0!==h&&void 0!==i&&void 0!==j)return{agent:h,support:i,evidence:j}}function P(a,b,c){let d=(0,f.uJ)(b,"compatibility"),e=a.compatibility;if(void 0===e)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,d,"compatibility is required"));let h=y(e,d,c);if(!h)return;z(h,n,d,c);let i=A(h,"commandmate",d,c,{maxLength:100});if(void 0!==i&&!(0,g.LE)(i))return void c.push((0,f.iS)(f.J$.VERSION_RANGE_INVALID,(0,f.uJ)(d,"commandmate"),"commandmate is not a supported version range"));let j=D(h,"agents",d,c,{maxItems:20});if(void 0===i||void 0===j)return;let k=[],l=new Set,m=!1;return j.forEach((a,b)=>{let e=(0,f.uJ)((0,f.uJ)(d,"agents"),b),g=O(a,e,c);if(!g){m=!0;return}if(l.has(g.agent)){c.push((0,f.iS)(f.J$.DUPLICATE_ENTRY,e,"agent is declared more than once")),m=!0;return}l.add(g.agent),k.push(g)}),m?void 0:{commandmate:i,agents:k}}function Q(a,b,c){let d=(0,f.uJ)(b,"source"),g=a.source;if(void 0===g)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,d,"source is required"));let h=y(g,d,c);if(!h)return;z(h,s,d,c);let i=A(h,"repository",d,c,{maxLength:140,pattern:e.AH,patternName:"owner/name"}),j=A(h,"ref",d,c,{maxLength:100,pattern:e.mg,patternName:"git-ref"});if(void 0!==j&&j.includes(".."))return void c.push((0,f.iS)(f.J$.INVALID_FORMAT,(0,f.uJ)(d,"ref"),'ref must not contain ".."'));let k=A(h,"commit",d,c,{maxLength:40,minLength:40,pattern:e.Z4,patternName:"sha1-40-hex",formatCode:f.J$.SOURCE_COMMIT_INVALID});if(void 0!==i&&void 0!==j&&void 0!==k)return{repository:i,ref:j,commit:k}}function R(a){let b=[],c=y(a,"",b);if(!c)return(0,f._9)(b);let d=H(c,b);if(void 0===d)return(0,f._9)(b);z(c,h,"",b);let i=J(c.id);i.ok||b.push(...i.errors);let j=A(c,"name","",b,{maxLength:e.q3}),k=A(c,"version","",b,{maxLength:64});void 0===k||(0,g.BO)(k)||b.push((0,f.iS)(f.J$.VERSION_INVALID,"/version",'version must be SemVer 2.0 without a "v" prefix'));let l=A(c,"summary","",b,{maxLength:e.BQ}),m=A(c,"description","",b,{maxLength:e.t9}),n=F(c,"capabilities","",b,{maxItems:e.yV,maxLength:e.$K}),o=F(c,"expected_outcomes","",b,{maxItems:e.yV,maxLength:e.$K}),s=N(c,"",b),t=A(c,"license","",b,{maxLength:64,pattern:e.DA,patternName:"spdx-license-id"}),u=G(c,"homepage","",b,{optional:!0}),v=F(c,"keywords","",b,{maxItems:e.Ue,maxLength:e.UN,optional:!0}),w=P(c,"",b),x=function(a,b,c){let d=(0,f.uJ)("","requirements"),h=a.requirements;if(void 0===h)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,d,"requirements is required"));let i=y(h,d,c);if(!i)return;z(i,p,d,c);let j=D(i,"commands",d,c,{maxItems:e.SU}),k=F(i,"network_hosts",d,c,{maxItems:e._Z,maxLength:253,pattern:e.PB});if(void 0===j||void 0===k)return;let l=[],m=!1;return j.forEach((a,b)=>{let h=(0,f.uJ)((0,f.uJ)(d,"commands"),b),i=y(a,h,c);if(!i){m=!0;return}z(i,q,h,c);let j=A(i,"name",h,c,{maxLength:64,pattern:e.do,patternName:"command-name"}),k=A(i,"version_range",h,c,{optional:!0,maxLength:100});if(void 0!==k&&!(0,g.LE)(k)){c.push((0,f.iS)(f.J$.VERSION_RANGE_INVALID,(0,f.uJ)(h,"version_range"),"version_range is not a supported version range")),m=!0;return}if(void 0===j){m=!0;return}l.push({name:j,...void 0!==k?{version_range:k}:{}})}),m?void 0:{commands:l,network_hosts:k}}(c,0,b),K=F(c,"declared_permissions","",b,{maxItems:e.mt.length,maxLength:40});if(K)for(let[a,c]of K.entries())e.mt.includes(c)||b.push((0,f.iS)(f.J$.INVALID_ENUM,(0,f.uJ)("/declared_permissions",a),"declared permission is not an allowed value"));let L=E(c,"declared_risk","",b,e.wI),O=A(c,"risk_rationale","",b,{maxLength:e.gI}),Q=function(a,b,c){let d=(0,f.uJ)("","files"),g=D(a,"files","",c,{maxItems:e.xP});if(void 0===g)return;let h=[],i=new Set,j=!1;if(g.forEach((a,b)=>{let g=(0,f.uJ)(d,b),k=y(a,g,c);if(!k){j=!0;return}z(k,r,g,c);let l=M(k.path,(0,f.uJ)(g,"path")),m=A(k,"sha256",g,c,{minLength:64,maxLength:64,pattern:e.x2,patternName:"sha256-lowercase-hex",formatCode:f.J$.DIGEST_INVALID}),n=B(k,"size",g,c,{min:0,max:e.em}),o=E(k,"kind",g,c,e.Hx),p=C(k,"executable",g,c),q=C(k,"script",g,c);if(!l.ok){c.push(...l.errors),j=!0;return}if(void 0===m||void 0===n||void 0===o||void 0===p||void 0===q){j=!0;return}let s=l.value;if(s===e.KH){c.push((0,f.iS)(f.J$.FILE_SET_MISMATCH,(0,f.uJ)(g,"path"),"the manifest must not declare a digest for itself")),j=!0;return}let t=I(s);if(i.has(t)){c.push((0,f.iS)(f.J$.FILE_PATH_DUPLICATE,(0,f.uJ)(g,"path"),"path collides with another declared file")),j=!0;return}i.add(t),h.push({path:s,sha256:m,size:n,kind:o,executable:p,script:q})}),j)return;let k=h.filter(a=>a.path===e.Wr);return 1!==k.length?void c.push((0,f.iS)(f.J$.FILE_SET_MISMATCH,d,`files must declare exactly one ${e.Wr}`)):"skill_md"!==k[0].kind?void c.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,d,`${e.Wr} must be declared with kind "skill_md"`)):h}(c,"",b);return(n&&0===n.length&&b.push((0,f.iS)(f.J$.MISSING_FIELD,"/capabilities","capabilities must not be empty")),o&&0===o.length&&b.push((0,f.iS)(f.J$.MISSING_FIELD,"/expected_outcomes","expected_outcomes must not be empty")),b.length>0||!i.ok||void 0===j||void 0===k||void 0===l||void 0===m||void 0===n||void 0===o||void 0===s||void 0===t||void 0===w||void 0===x||void 0===K||void 0===L||void 0===O||void 0===Q)?(0,f._9)(b.length>0?b:[(0,f.iS)(f.J$.MISSING_FIELD,"","manifest is incomplete")]):(0,f.qO)({schema_version:d,id:i.value,name:j,version:k,summary:l,description:m,capabilities:n,expected_outcomes:o,provider:s,license:t,...void 0!==u?{homepage:u}:{},...void 0!==v?{keywords:v}:{},compatibility:w,requirements:x,declared_permissions:K,declared_risk:L,risk_rationale:O,files:Q})}function S(a){let b=[],c=y(a,"",b);if(!c)return(0,f._9)(b);let d=H(c,b);if(void 0===d)return(0,f._9)(b);z(c,i,"",b);let h=D(c,"entries","",b,{maxItems:e.Gm});if(void 0===h)return(0,f._9)(b);let l=[],m=new Set;return(h.forEach((a,c)=>{let d=(0,f.uJ)("/entries",c),h=function(a,b,c){let d=y(a,b,c);if(!d)return;z(d,j,b,c);let h=J(d.id,(0,f.uJ)(b,"id"));if(!h.ok)return void c.push(...h.errors);let i=h.value,l=A(d,"name",b,c,{maxLength:e.q3}),m=A(d,"summary",b,c,{maxLength:e.BQ}),n=N(d,b,c),o=A(d,"license",b,c,{maxLength:64,pattern:e.DA,patternName:"spdx-license-id"}),p=G(d,"homepage",b,c,{optional:!0}),q=F(d,"keywords",b,c,{maxItems:e.Ue,maxLength:e.UN,optional:!0}),r=A(d,"latest",b,c,{maxLength:64}),s=D(d,"versions",b,c,{maxItems:e.Xk});if(void 0===l||void 0===m||void 0===n||void 0===o||void 0===r||void 0===s)return;if(0===s.length)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,(0,f.uJ)(b,"versions"),"versions must not be empty"));let u=[],v=new Set,w=!1;if(s.forEach((a,d)=>{let h=(0,f.uJ)((0,f.uJ)(b,"versions"),d),j=function(a,b,c,d){let h=y(a,b,d);if(!h)return;z(h,k,b,d);let i=A(h,"version",b,d,{maxLength:64});if(void 0!==i&&!(0,g.BO)(i))return void d.push((0,f.iS)(f.J$.VERSION_INVALID,(0,f.uJ)(b,"version"),"version must be SemVer 2.0"));let j=A(h,"changelog",b,d,{maxLength:e.b}),l=A(h,"published_at",b,d,{maxLength:30,pattern:e.qu,patternName:"rfc3339-utc"}),m=Q(h,b,d),n=function(a,b,c){let d=(0,f.uJ)(b,"artifact"),g=a.artifact;if(void 0===g)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,d,"artifact is required"));let h=y(g,d,c);if(!h)return;z(h,t,d,c);let i=A(h,"asset_name",d,c,{maxLength:200}),j=G(h,"url",d,c),k=A(h,"sha256",d,c,{minLength:64,maxLength:64,pattern:e.x2,patternName:"sha256-lowercase-hex",formatCode:f.J$.DIGEST_INVALID}),l=B(h,"size",d,c,{min:1,max:e.a6}),m=A(h,"content_type",d,c,{maxLength:100}),n=E(h,"format",d,c,[e.jn]);return void 0!==m&&m!==e.gJ?void c.push((0,f.iS)(f.J$.ARTIFACT_INVALID,(0,f.uJ)(d,"content_type"),"content_type must be the fixed artifact media type",{expected:e.gJ})):void 0!==i&&void 0!==j&&void 0!==k&&void 0!==l&&void 0!==m&&void 0!==n?{asset_name:i,url:j,sha256:k,size:l,content_type:m,format:n}:void 0}(h,b,d),o=P(h,b,d),p=E(h,"declared_risk",b,d,e.wI);if(void 0===i||void 0===j||void 0===l||void 0===m||void 0===n||void 0===o||void 0===p)return;let q=(0,e.l9)(c,i);return n.asset_name!==q?void d.push((0,f.iS)(f.J$.ARTIFACT_INVALID,(0,f.uJ)((0,f.uJ)(b,"artifact"),"asset_name"),"asset_name must follow the <skill-id>-<version>.tar.gz convention",{expected:q})):{version:i,changelog:j,published_at:l,source:m,artifact:n,compatibility:o,declared_risk:p}}(a,h,i,c);if(!j){w=!0;return}if(v.has(j.version)){c.push((0,f.iS)(f.J$.DUPLICATE_ENTRY,h,"version is listed more than once")),w=!0;return}v.add(j.version),u.push(j)}),!w)return v.has(r)?{id:i,name:l,summary:m,provider:n,license:o,...void 0!==p?{homepage:p}:{},...void 0!==q?{keywords:q}:{},latest:r,versions:u}:void c.push((0,f.iS)(f.J$.CATALOG_LATEST_UNRESOLVED,(0,f.uJ)(b,"latest"),"latest must reference a listed version"))}(a,d,b);if(!h)return;let i=I(h.id);if(m.has(i))return void b.push((0,f.iS)(f.J$.ID_COLLISION,d,"entry id collides with another entry"));m.add(i),l.push(h)}),b.length>0)?(0,f._9)(b):(0,f.qO)({schema_version:d,entries:l})}function T(a){let b=[],c=y(a,"",b);if(!c)return(0,f._9)(b);let d=H(c,b);if(void 0===d)return(0,f._9)(b);z(c,l,"",b);let h=J(c.skill_id,"/skill_id");h.ok||b.push(...h.errors);let i=A(c,"version","",b,{maxLength:64});void 0===i||(0,g.BO)(i)||b.push((0,f.iS)(f.J$.VERSION_INVALID,"/version","version must be SemVer 2.0"));let j=A(c,"install_root","",b,{maxLength:200}),k=void 0!==c.install_roots?F(c,"install_roots","",b,{maxItems:e.y2.length,maxLength:200}):void 0,m=Q(c,"",b),n=function(a,b,c){let d=(0,f.uJ)("","artifact"),g=a.artifact;if(void 0===g)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,d,"artifact is required"));let h=y(g,d,c);if(!h)return;z(h,u,d,c);let i=A(h,"asset_name",d,c,{maxLength:200}),j=A(h,"sha256",d,c,{minLength:64,maxLength:64,pattern:e.x2,patternName:"sha256-lowercase-hex",formatCode:f.J$.DIGEST_INVALID}),k=B(h,"size",d,c,{min:1,max:e.a6}),l=E(h,"format",d,c,[e.jn]);if(void 0!==i&&void 0!==j&&void 0!==k&&void 0!==l)return{asset_name:i,sha256:j,size:k,format:l}}(c,0,b),o=function(a,b,c){let d=(0,f.uJ)("","files"),g=D(a,"files","",c,{maxItems:e.xP});if(void 0===g)return;let h=[],i=!1;if(g.forEach((a,b)=>{let g=(0,f.uJ)(d,b),j=y(a,g,c);if(!j){i=!0;return}z(j,v,g,c);let k=M(j.path,(0,f.uJ)(g,"path")),l=A(j,"sha256",g,c,{minLength:64,maxLength:64,pattern:e.x2,patternName:"sha256-lowercase-hex",formatCode:f.J$.DIGEST_INVALID}),m=B(j,"size",g,c,{min:0,max:e.em}),n=C(j,"executable",g,c);if(!k.ok){c.push(...k.errors),i=!0;return}if(void 0===l||void 0===m||void 0===n){i=!0;return}h.push({path:k.value,sha256:l,size:m,executable:n})}),!i){for(let a=1;a<h.length;a++)if(h[a-1].path>=h[a].path)return void c.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,d,"files must be sorted by path in ascending order without duplicates"));return h}}(c,"",b),p=E(c,"declared_risk","",b,e.wI),q=E(c,"computed_risk","",b,e.wI),r=E(c,"effective_risk","",b,e.wI),s=F(c,"declared_permissions","",b,{maxItems:e.mt.length,maxLength:40});if(s)for(let[a,c]of s.entries())e.mt.includes(c)||b.push((0,f.iS)(f.J$.INVALID_ENUM,(0,f.uJ)("/declared_permissions",a),"declared permission is not an allowed value"));let t=D(c,"agent_compatibility","",b,{maxItems:20}),w=[];if(t&&t.forEach((a,c)=>{let d=O(a,(0,f.uJ)("/agent_compatibility",c),b);d&&w.push(d)}),h.ok&&void 0!==j){let a=`${e.Co}/${h.value}`;j!==a&&b.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,"/install_root","install_root must be the repository-relative skill root",{expected:a}))}if(h.ok&&void 0!==j&&void 0!==k){let a=e.y2.map(a=>`${a}/${h.value}`);0===k.length?b.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,"/install_roots","install_roots must not be empty")):k[0]!==j&&b.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,"/install_roots/0","install_roots[0] must equal install_root (the primary root)",{expected:j}));let c=new Set;k.forEach((d,e)=>{a.includes(d)||b.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,`/install_roots/${e}`,"install_roots entry must be a known repository-relative skill root")),c.has(d)&&b.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,`/install_roots/${e}`,"install_roots must not repeat a root")),c.add(d)})}if(h.ok&&void 0!==i&&void 0!==n){let a=(0,e.l9)(h.value,i);n.asset_name!==a&&b.push((0,f.iS)(f.J$.ARTIFACT_INVALID,"/artifact/asset_name","asset_name must follow the <skill-id>-<version>.tar.gz convention",{expected:a}))}if(void 0!==p&&void 0!==q&&void 0!==r){let a=V(p,q);r!==a&&b.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,"/effective_risk","effective_risk must be the higher of declared_risk and computed_risk",{expected:a}))}return b.length>0||!h.ok||void 0===i||void 0===j||void 0===m||void 0===n||void 0===o||void 0===p||void 0===q||void 0===r||void 0===s||void 0===t?(0,f._9)(b.length>0?b:[(0,f.iS)(f.J$.MISSING_FIELD,"","receipt is incomplete")]):(0,f.qO)({schema_version:d,skill_id:h.value,version:i,install_root:j,...void 0!==k?{install_roots:k}:{},source:m,artifact:n,files:o,declared_risk:p,computed_risk:q,effective_risk:r,declared_permissions:s,agent_compatibility:w})}function U(a,b){let c=new Set(a.files.map(a=>a.path)),d=new Set(b.filter(a=>a!==e.KH)),g=[];for(let a of c)d.has(a)||g.push((0,f.iS)(f.J$.FILE_SET_MISMATCH,"/files","declared file is absent from the package",{path:a}));for(let a of d)c.has(a)||g.push((0,f.iS)(f.J$.FILE_SET_MISMATCH,"/files","package contains an undeclared file",{path:a}));return g.length>0?(0,f._9)(g):(0,f.qO)([...c].sort())}function V(a,b){return e.$Y[b]>e.$Y[a]?b:a}function W(a){return a.executable_paths.length>0||a.declared_permissions.includes("credential_access")?"high":a.script_paths.length>0||a.network_hosts.length>0||a.declared_permissions.includes("process_execution")||a.declared_permissions.includes("filesystem_write")?"moderate":"low"}function X(a){return JSON.stringify(function a(b){if(Array.isArray(b))return b.map(a);if(w(b)){let c={};for(let d of Object.keys(b).sort())void 0!==b[d]&&(c[d]=a(b[d]));return c}return b}(a))}},55432:(a,b,c)=>{c.d(b,{J$:()=>d,_9:()=>g,iS:()=>e,qO:()=>f,uJ:()=>h});let d={NOT_AN_OBJECT:"SKILL_NOT_AN_OBJECT",SCHEMA_VERSION_UNSUPPORTED:"SKILL_SCHEMA_VERSION_UNSUPPORTED",MISSING_FIELD:"SKILL_MISSING_FIELD",INVALID_TYPE:"SKILL_INVALID_TYPE",INVALID_ENUM:"SKILL_INVALID_ENUM",INVALID_FORMAT:"SKILL_INVALID_FORMAT",LIMIT_EXCEEDED:"SKILL_LIMIT_EXCEEDED",UNKNOWN_FIELD:"SKILL_UNKNOWN_FIELD",ID_INVALID:"SKILL_ID_INVALID",ID_RESERVED:"SKILL_ID_RESERVED",ID_COLLISION:"SKILL_ID_COLLISION",ID_MISMATCH:"SKILL_ID_MISMATCH",VERSION_INVALID:"SKILL_VERSION_INVALID",VERSION_RANGE_INVALID:"SKILL_VERSION_RANGE_INVALID",DIGEST_INVALID:"SKILL_DIGEST_INVALID",FILE_PATH_UNSAFE:"SKILL_FILE_PATH_UNSAFE",FILE_PATH_DUPLICATE:"SKILL_FILE_PATH_DUPLICATE",FILE_SET_MISMATCH:"SKILL_FILE_SET_MISMATCH",ARTIFACT_INVALID:"SKILL_ARTIFACT_INVALID",SOURCE_COMMIT_INVALID:"SKILL_SOURCE_COMMIT_INVALID",CATALOG_LATEST_UNRESOLVED:"SKILL_CATALOG_LATEST_UNRESOLVED",DUPLICATE_ENTRY:"SKILL_DUPLICATE_ENTRY",INCONSISTENT_VALUE:"SKILL_INCONSISTENT_VALUE"};function e(a,b,c,d){return d?{code:a,path:b,message:c,detail:d}:{code:a,path:b,message:c}}function f(a){return{ok:!0,value:a,errors:[]}}function g(a){return{ok:!1,value:null,errors:a}}function h(a,b){return`${a}/${b}`}}};
|
|
1
|
+
"use strict";exports.id=5456,exports.ids=[5456],exports.modules={13075:(a,b,c)=>{c.d(b,{EU:()=>K,JJ:()=>S,Jg:()=>T,MD:()=>W,Yz:()=>U,bX:()=>R,en:()=>X,jH:()=>J,qZ:()=>V,r5:()=>M,vy:()=>I});var d=c(15194),e=c(96210),f=c(55432),g=c(36931);let h=["schema_version","id","name","version","summary","description","capabilities","expected_outcomes","provider","license","homepage","keywords","compatibility","requirements","declared_permissions","declared_risk","risk_rationale","files"],i=["schema_version","entries"],j=["id","name","summary","provider","license","homepage","keywords","latest","versions"],k=["version","changelog","published_at","source","artifact","compatibility","declared_risk"],l=["schema_version","skill_id","version","install_root","install_roots","source","artifact","files","declared_risk","computed_risk","effective_risk","declared_permissions","agent_compatibility"],m=["name","url","contact"],n=["commandmate","agents"],o=["agent","support","evidence"],p=["commands","network_hosts"],q=["name","version_range"],r=["path","sha256","size","kind","executable","script"],s=["repository","ref","commit"],t=["asset_name","url","sha256","size","content_type","format"],u=["asset_name","sha256","size","format"],v=["path","sha256","size","executable"];function w(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function x(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function y(a,b,c){return w(a)?a:(c.push((0,f.iS)(f.J$.NOT_AN_OBJECT,b,`${b||"/"} must be an object`)),null)}function z(a,b,c,d){for(let g of Object.keys(a))b.includes(g)||d.push((0,f.iS)(f.J$.UNKNOWN_FIELD,(0,f.uJ)(c,g),`unknown field is not allowed in schema_version ${e.jq}`))}function A(a,b,c,d,e={}){let g=(0,f.uJ)(c,b);if(!x(a,b)||void 0===a[b]){e.optional||d.push((0,f.iS)(f.J$.MISSING_FIELD,g,`${b} is required`));return}let h=a[b];if("string"!=typeof h)return void d.push((0,f.iS)(f.J$.INVALID_TYPE,g,`${b} must be a string`));let i=e.formatCode??f.J$.LIMIT_EXCEEDED,j=e.minLength??1;return h.length<j?void d.push((0,f.iS)(i,g,`${b} is shorter than the minimum`,{minLength:j})):void 0!==e.maxLength&&h.length>e.maxLength?void d.push((0,f.iS)(i,g,`${b} exceeds the maximum length`,{maxLength:e.maxLength})):e.pattern&&!e.pattern.test(h)?void d.push((0,f.iS)(e.formatCode??f.J$.INVALID_FORMAT,g,`${b} does not match the required format`,e.patternName?{format:e.patternName}:void 0)):h}function B(a,b,c,d,e){let g=(0,f.uJ)(c,b);if(!x(a,b)||void 0===a[b])return void d.push((0,f.iS)(f.J$.MISSING_FIELD,g,`${b} is required`));let h=a[b];return"number"==typeof h&&Number.isInteger(h)?h<e.min||h>e.max?void d.push((0,f.iS)(f.J$.LIMIT_EXCEEDED,g,`${b} is out of range`,e)):h:void d.push((0,f.iS)(f.J$.INVALID_TYPE,g,`${b} must be an integer`))}function C(a,b,c,d){let e=(0,f.uJ)(c,b);if(!x(a,b)||void 0===a[b])return void d.push((0,f.iS)(f.J$.MISSING_FIELD,e,`${b} is required`));let g=a[b];return"boolean"!=typeof g?void d.push((0,f.iS)(f.J$.INVALID_TYPE,e,`${b} must be a boolean`)):g}function D(a,b,c,d,e){let g=(0,f.uJ)(c,b);if(!x(a,b)||void 0===a[b]){e.optional||d.push((0,f.iS)(f.J$.MISSING_FIELD,g,`${b} is required`));return}let h=a[b];return Array.isArray(h)?h.length>e.maxItems?void d.push((0,f.iS)(f.J$.LIMIT_EXCEEDED,g,`${b} has too many items`,{maxItems:e.maxItems})):h:void d.push((0,f.iS)(f.J$.INVALID_TYPE,g,`${b} must be an array`))}function E(a,b,c,d,e){let g=(0,f.uJ)(c,b);if(!x(a,b)||void 0===a[b])return void d.push((0,f.iS)(f.J$.MISSING_FIELD,g,`${b} is required`));let h=a[b];return"string"==typeof h&&e.includes(h)?h:void d.push((0,f.iS)(f.J$.INVALID_ENUM,g,`${b} is not an allowed value`,{allowed:e.join("|")}))}function F(a,b,c,d,e){let g=D(a,b,c,d,{maxItems:e.maxItems,optional:e.optional});if(void 0===g)return;let h=[],i=!1;return g.forEach((a,g)=>{let j=(0,f.uJ)((0,f.uJ)(c,b),g);if("string"!=typeof a||0===a.length||a.length>e.maxLength){d.push((0,f.iS)(f.J$.INVALID_TYPE,j,"item must be a bounded string",{maxLength:e.maxLength})),i=!0;return}if(e.pattern&&!e.pattern.test(a)){d.push((0,f.iS)(f.J$.INVALID_FORMAT,j,"item does not match the required format")),i=!0;return}h.push(a)}),i?void 0:h}function G(a,b,c,d,g={}){let h=A(a,b,c,d,{optional:g.optional,maxLength:512});if(void 0!==h)return h.startsWith(e.JO)?h:void d.push((0,f.iS)(f.J$.INVALID_FORMAT,(0,f.uJ)(c,b),`${b} must be an https URL`))}function H(a,b){let c="/schema_version",d=a.schema_version;return void 0===d?void b.push((0,f.iS)(f.J$.SCHEMA_VERSION_UNSUPPORTED,c,"schema_version is required")):d!==e.jq?void b.push((0,f.iS)(f.J$.SCHEMA_VERSION_UNSUPPORTED,c,"schema_version is not supported by this build",{supported:e.jq})):e.jq}function I(a){return a.normalize("NFKC").toLowerCase()}function J(a,b="/id"){return"string"!=typeof a||0===a.length?(0,f._9)([(0,f.iS)(f.J$.ID_INVALID,b,"id must be a non-empty string")]):a.length>e.cj?(0,f._9)([(0,f.iS)(f.J$.ID_INVALID,b,"id exceeds the maximum length",{maxLength:e.cj})]):e.X0.test(a)?e.kM.includes(a)?(0,f._9)([(0,f.iS)(f.J$.ID_RESERVED,b,"id is reserved")]):(0,f.qO)(a):(0,f._9)([(0,f.iS)(f.J$.ID_INVALID,b,"id must be a lowercase ASCII slug",{format:"lowercase-slug"})])}function K(a){let b=J(a.manifestId);if(!b.ok)return b;let c=[];return a.directoryName!==a.manifestId&&c.push((0,f.iS)(f.J$.ID_MISMATCH,"/id","directory name does not match the manifest id")),a.skillMdName!==a.manifestName&&c.push((0,f.iS)(f.J$.ID_MISMATCH,"/name","SKILL.md name does not match the manifest name")),c.length>0?(0,f._9)(c):(0,f.qO)(a.manifestId)}let L=/^[A-Za-z]:/;function M(a,b){let c=(a,c)=>(0,f._9)([(0,f.iS)(f.J$.FILE_PATH_UNSAFE,b,a,c)]);if("string"!=typeof a||0===a.length)return c("path must be a non-empty string");if(a.length>e.S$)return c("path exceeds the maximum length",{maxLength:e.S$});if(function(a){for(let b=0;b<a.length;b++){let c=a.charCodeAt(b);if(c<32||127===c||92===c)return!0}return!1}(a))return c("path contains a control character or a backslash");if(a.startsWith("/")||L.test(a))return c("path must be relative");if(a!==a.normalize("NFC"))return c("path must be NFC-normalized");if(a.includes("//"))return c("path must not contain empty segments");if(a.endsWith("/"))return c("path must not be a directory entry");let d=a.split("/");if(d.length>e.$e)return c("path is nested too deeply",{maxDepth:e.$e});for(let a of d){if("."===a||".."===a)return c('path must not contain "." or ".." segments');if(a.length>e.AN)return c("path segment is too long",{maxLength:e.AN});if(a!==a.trim())return c("path segment must not be padded with whitespace")}return(0,f.qO)(a)}function N(a,b,c){let d=(0,f.uJ)(b,"provider"),g=a.provider;if(void 0===g)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,d,"provider is required"));let h=y(g,d,c);if(!h)return;z(h,m,d,c);let i=A(h,"name",d,c,{maxLength:e.q3}),j=G(h,"url",d,c,{optional:!0}),k=A(h,"contact",d,c,{optional:!0,maxLength:200});if(void 0!==i)return{name:i,...void 0!==j?{url:j}:{},...void 0!==k?{contact:k}:{}}}function O(a,b,c){let g=y(a,b,c);if(!g)return;z(g,o,b,c);let h=A(g,"agent",b,c,{maxLength:40});if(void 0!==h&&!(0,d.hR)(h))return void c.push((0,f.iS)(f.J$.INVALID_ENUM,(0,f.uJ)(b,"agent"),"agent is not a known CLI tool"));let i=E(g,"support",b,c,e.h3),j=A(g,"evidence",b,c,{maxLength:e.G0});if(void 0!==h&&void 0!==i&&void 0!==j)return{agent:h,support:i,evidence:j}}function P(a,b,c){let d=(0,f.uJ)(b,"compatibility"),e=a.compatibility;if(void 0===e)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,d,"compatibility is required"));let h=y(e,d,c);if(!h)return;z(h,n,d,c);let i=A(h,"commandmate",d,c,{maxLength:100});if(void 0!==i&&!(0,g.LE)(i))return void c.push((0,f.iS)(f.J$.VERSION_RANGE_INVALID,(0,f.uJ)(d,"commandmate"),"commandmate is not a supported version range"));let j=D(h,"agents",d,c,{maxItems:20});if(void 0===i||void 0===j)return;let k=[],l=new Set,m=!1;return j.forEach((a,b)=>{let e=(0,f.uJ)((0,f.uJ)(d,"agents"),b),g=O(a,e,c);if(!g){m=!0;return}if(l.has(g.agent)){c.push((0,f.iS)(f.J$.DUPLICATE_ENTRY,e,"agent is declared more than once")),m=!0;return}l.add(g.agent),k.push(g)}),m?void 0:{commandmate:i,agents:k}}function Q(a,b,c){let d=(0,f.uJ)(b,"source"),g=a.source;if(void 0===g)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,d,"source is required"));let h=y(g,d,c);if(!h)return;z(h,s,d,c);let i=A(h,"repository",d,c,{maxLength:140,pattern:e.AH,patternName:"owner/name"}),j=A(h,"ref",d,c,{maxLength:100,pattern:e.mg,patternName:"git-ref"});if(void 0!==j&&j.includes(".."))return void c.push((0,f.iS)(f.J$.INVALID_FORMAT,(0,f.uJ)(d,"ref"),'ref must not contain ".."'));let k=A(h,"commit",d,c,{maxLength:40,minLength:40,pattern:e.Z4,patternName:"sha1-40-hex",formatCode:f.J$.SOURCE_COMMIT_INVALID});if(void 0!==i&&void 0!==j&&void 0!==k)return{repository:i,ref:j,commit:k}}function R(a){let b=[],c=y(a,"",b);if(!c)return(0,f._9)(b);let d=H(c,b);if(void 0===d)return(0,f._9)(b);z(c,h,"",b);let i=J(c.id);i.ok||b.push(...i.errors);let j=A(c,"name","",b,{maxLength:e.q3}),k=A(c,"version","",b,{maxLength:64});void 0===k||(0,g.BO)(k)||b.push((0,f.iS)(f.J$.VERSION_INVALID,"/version",'version must be SemVer 2.0 without a "v" prefix'));let l=A(c,"summary","",b,{maxLength:e.BQ}),m=A(c,"description","",b,{maxLength:e.t9}),n=F(c,"capabilities","",b,{maxItems:e.yV,maxLength:e.$K}),o=F(c,"expected_outcomes","",b,{maxItems:e.yV,maxLength:e.$K}),s=N(c,"",b),t=A(c,"license","",b,{maxLength:64,pattern:e.DA,patternName:"spdx-license-id"}),u=G(c,"homepage","",b,{optional:!0}),v=F(c,"keywords","",b,{maxItems:e.Ue,maxLength:e.UN,optional:!0}),w=P(c,"",b),x=function(a,b,c){let d=(0,f.uJ)("","requirements"),h=a.requirements;if(void 0===h)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,d,"requirements is required"));let i=y(h,d,c);if(!i)return;z(i,p,d,c);let j=D(i,"commands",d,c,{maxItems:e.SU}),k=F(i,"network_hosts",d,c,{maxItems:e._Z,maxLength:253,pattern:e.PB});if(void 0===j||void 0===k)return;let l=[],m=!1;return j.forEach((a,b)=>{let h=(0,f.uJ)((0,f.uJ)(d,"commands"),b),i=y(a,h,c);if(!i){m=!0;return}z(i,q,h,c);let j=A(i,"name",h,c,{maxLength:64,pattern:e.do,patternName:"command-name"}),k=A(i,"version_range",h,c,{optional:!0,maxLength:100});if(void 0!==k&&!(0,g.LE)(k)){c.push((0,f.iS)(f.J$.VERSION_RANGE_INVALID,(0,f.uJ)(h,"version_range"),"version_range is not a supported version range")),m=!0;return}if(void 0===j){m=!0;return}l.push({name:j,...void 0!==k?{version_range:k}:{}})}),m?void 0:{commands:l,network_hosts:k}}(c,0,b),K=F(c,"declared_permissions","",b,{maxItems:e.mt.length,maxLength:40});if(K)for(let[a,c]of K.entries())e.mt.includes(c)||b.push((0,f.iS)(f.J$.INVALID_ENUM,(0,f.uJ)("/declared_permissions",a),"declared permission is not an allowed value"));let L=E(c,"declared_risk","",b,e.wI),O=A(c,"risk_rationale","",b,{maxLength:e.gI}),Q=function(a,b,c){let d=(0,f.uJ)("","files"),g=D(a,"files","",c,{maxItems:e.xP});if(void 0===g)return;let h=[],i=new Set,j=!1;if(g.forEach((a,b)=>{let g=(0,f.uJ)(d,b),k=y(a,g,c);if(!k){j=!0;return}z(k,r,g,c);let l=M(k.path,(0,f.uJ)(g,"path")),m=A(k,"sha256",g,c,{minLength:64,maxLength:64,pattern:e.x2,patternName:"sha256-lowercase-hex",formatCode:f.J$.DIGEST_INVALID}),n=B(k,"size",g,c,{min:0,max:e.em}),o=E(k,"kind",g,c,e.Hx),p=C(k,"executable",g,c),q=C(k,"script",g,c);if(!l.ok){c.push(...l.errors),j=!0;return}if(void 0===m||void 0===n||void 0===o||void 0===p||void 0===q){j=!0;return}let s=l.value;if(s===e.KH){c.push((0,f.iS)(f.J$.FILE_SET_MISMATCH,(0,f.uJ)(g,"path"),"the manifest must not declare a digest for itself")),j=!0;return}let t=I(s);if(i.has(t)){c.push((0,f.iS)(f.J$.FILE_PATH_DUPLICATE,(0,f.uJ)(g,"path"),"path collides with another declared file")),j=!0;return}i.add(t),h.push({path:s,sha256:m,size:n,kind:o,executable:p,script:q})}),j)return;let k=h.filter(a=>a.path===e.Wr);return 1!==k.length?void c.push((0,f.iS)(f.J$.FILE_SET_MISMATCH,d,`files must declare exactly one ${e.Wr}`)):"skill_md"!==k[0].kind?void c.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,d,`${e.Wr} must be declared with kind "skill_md"`)):h}(c,"",b);return(n&&0===n.length&&b.push((0,f.iS)(f.J$.MISSING_FIELD,"/capabilities","capabilities must not be empty")),o&&0===o.length&&b.push((0,f.iS)(f.J$.MISSING_FIELD,"/expected_outcomes","expected_outcomes must not be empty")),b.length>0||!i.ok||void 0===j||void 0===k||void 0===l||void 0===m||void 0===n||void 0===o||void 0===s||void 0===t||void 0===w||void 0===x||void 0===K||void 0===L||void 0===O||void 0===Q)?(0,f._9)(b.length>0?b:[(0,f.iS)(f.J$.MISSING_FIELD,"","manifest is incomplete")]):(0,f.qO)({schema_version:d,id:i.value,name:j,version:k,summary:l,description:m,capabilities:n,expected_outcomes:o,provider:s,license:t,...void 0!==u?{homepage:u}:{},...void 0!==v?{keywords:v}:{},compatibility:w,requirements:x,declared_permissions:K,declared_risk:L,risk_rationale:O,files:Q})}function S(a){let b=[],c=y(a,"",b);if(!c)return(0,f._9)(b);let d=H(c,b);if(void 0===d)return(0,f._9)(b);z(c,i,"",b);let h=D(c,"entries","",b,{maxItems:e.Gm});if(void 0===h)return(0,f._9)(b);let l=[],m=new Set;return(h.forEach((a,c)=>{let d=(0,f.uJ)("/entries",c),h=function(a,b,c){let d=y(a,b,c);if(!d)return;z(d,j,b,c);let h=J(d.id,(0,f.uJ)(b,"id"));if(!h.ok)return void c.push(...h.errors);let i=h.value,l=A(d,"name",b,c,{maxLength:e.q3}),m=A(d,"summary",b,c,{maxLength:e.BQ}),n=N(d,b,c),o=A(d,"license",b,c,{maxLength:64,pattern:e.DA,patternName:"spdx-license-id"}),p=G(d,"homepage",b,c,{optional:!0}),q=F(d,"keywords",b,c,{maxItems:e.Ue,maxLength:e.UN,optional:!0}),r=A(d,"latest",b,c,{maxLength:64}),s=D(d,"versions",b,c,{maxItems:e.Xk});if(void 0===l||void 0===m||void 0===n||void 0===o||void 0===r||void 0===s)return;if(0===s.length)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,(0,f.uJ)(b,"versions"),"versions must not be empty"));let u=[],v=new Set,w=!1;if(s.forEach((a,d)=>{let h=(0,f.uJ)((0,f.uJ)(b,"versions"),d),j=function(a,b,c,d){let h=y(a,b,d);if(!h)return;z(h,k,b,d);let i=A(h,"version",b,d,{maxLength:64});if(void 0!==i&&!(0,g.BO)(i))return void d.push((0,f.iS)(f.J$.VERSION_INVALID,(0,f.uJ)(b,"version"),"version must be SemVer 2.0"));let j=A(h,"changelog",b,d,{maxLength:e.b}),l=A(h,"published_at",b,d,{maxLength:30,pattern:e.qu,patternName:"rfc3339-utc"}),m=Q(h,b,d),n=function(a,b,c){let d=(0,f.uJ)(b,"artifact"),g=a.artifact;if(void 0===g)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,d,"artifact is required"));let h=y(g,d,c);if(!h)return;z(h,t,d,c);let i=A(h,"asset_name",d,c,{maxLength:200}),j=G(h,"url",d,c),k=A(h,"sha256",d,c,{minLength:64,maxLength:64,pattern:e.x2,patternName:"sha256-lowercase-hex",formatCode:f.J$.DIGEST_INVALID}),l=B(h,"size",d,c,{min:1,max:e.a6}),m=A(h,"content_type",d,c,{maxLength:100}),n=E(h,"format",d,c,[e.jn]);return void 0!==m&&m!==e.gJ?void c.push((0,f.iS)(f.J$.ARTIFACT_INVALID,(0,f.uJ)(d,"content_type"),"content_type must be the fixed artifact media type",{expected:e.gJ})):void 0!==i&&void 0!==j&&void 0!==k&&void 0!==l&&void 0!==m&&void 0!==n?{asset_name:i,url:j,sha256:k,size:l,content_type:m,format:n}:void 0}(h,b,d),o=P(h,b,d),p=E(h,"declared_risk",b,d,e.wI);if(void 0===i||void 0===j||void 0===l||void 0===m||void 0===n||void 0===o||void 0===p)return;let q=(0,e.l9)(c,i);return n.asset_name!==q?void d.push((0,f.iS)(f.J$.ARTIFACT_INVALID,(0,f.uJ)((0,f.uJ)(b,"artifact"),"asset_name"),"asset_name must follow the <skill-id>-<version>.tar.gz convention",{expected:q})):{version:i,changelog:j,published_at:l,source:m,artifact:n,compatibility:o,declared_risk:p}}(a,h,i,c);if(!j){w=!0;return}if(v.has(j.version)){c.push((0,f.iS)(f.J$.DUPLICATE_ENTRY,h,"version is listed more than once")),w=!0;return}v.add(j.version),u.push(j)}),!w)return v.has(r)?{id:i,name:l,summary:m,provider:n,license:o,...void 0!==p?{homepage:p}:{},...void 0!==q?{keywords:q}:{},latest:r,versions:u}:void c.push((0,f.iS)(f.J$.CATALOG_LATEST_UNRESOLVED,(0,f.uJ)(b,"latest"),"latest must reference a listed version"))}(a,d,b);if(!h)return;let i=I(h.id);if(m.has(i))return void b.push((0,f.iS)(f.J$.ID_COLLISION,d,"entry id collides with another entry"));m.add(i),l.push(h)}),b.length>0)?(0,f._9)(b):(0,f.qO)({schema_version:d,entries:l})}function T(a){let b=[],c=y(a,"",b);if(!c)return(0,f._9)(b);let d=H(c,b);if(void 0===d)return(0,f._9)(b);z(c,l,"",b);let h=J(c.skill_id,"/skill_id");h.ok||b.push(...h.errors);let i=A(c,"version","",b,{maxLength:64});void 0===i||(0,g.BO)(i)||b.push((0,f.iS)(f.J$.VERSION_INVALID,"/version","version must be SemVer 2.0"));let j=A(c,"install_root","",b,{maxLength:200}),k=void 0!==c.install_roots?F(c,"install_roots","",b,{maxItems:e.y2.length,maxLength:200}):void 0,m=Q(c,"",b),n=function(a,b,c){let d=(0,f.uJ)("","artifact"),g=a.artifact;if(void 0===g)return void c.push((0,f.iS)(f.J$.MISSING_FIELD,d,"artifact is required"));let h=y(g,d,c);if(!h)return;z(h,u,d,c);let i=A(h,"asset_name",d,c,{maxLength:200}),j=A(h,"sha256",d,c,{minLength:64,maxLength:64,pattern:e.x2,patternName:"sha256-lowercase-hex",formatCode:f.J$.DIGEST_INVALID}),k=B(h,"size",d,c,{min:1,max:e.a6}),l=E(h,"format",d,c,[e.jn]);if(void 0!==i&&void 0!==j&&void 0!==k&&void 0!==l)return{asset_name:i,sha256:j,size:k,format:l}}(c,0,b),o=function(a,b,c){let d=(0,f.uJ)("","files"),g=D(a,"files","",c,{maxItems:e.xP});if(void 0===g)return;let h=[],i=!1;if(g.forEach((a,b)=>{let g=(0,f.uJ)(d,b),j=y(a,g,c);if(!j){i=!0;return}z(j,v,g,c);let k=M(j.path,(0,f.uJ)(g,"path")),l=A(j,"sha256",g,c,{minLength:64,maxLength:64,pattern:e.x2,patternName:"sha256-lowercase-hex",formatCode:f.J$.DIGEST_INVALID}),m=B(j,"size",g,c,{min:0,max:e.em}),n=C(j,"executable",g,c);if(!k.ok){c.push(...k.errors),i=!0;return}if(void 0===l||void 0===m||void 0===n){i=!0;return}h.push({path:k.value,sha256:l,size:m,executable:n})}),!i){for(let a=1;a<h.length;a++)if(h[a-1].path>=h[a].path)return void c.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,d,"files must be sorted by path in ascending order without duplicates"));return h}}(c,"",b),p=E(c,"declared_risk","",b,e.wI),q=E(c,"computed_risk","",b,e.wI),r=E(c,"effective_risk","",b,e.wI),s=F(c,"declared_permissions","",b,{maxItems:e.mt.length,maxLength:40});if(s)for(let[a,c]of s.entries())e.mt.includes(c)||b.push((0,f.iS)(f.J$.INVALID_ENUM,(0,f.uJ)("/declared_permissions",a),"declared permission is not an allowed value"));let t=D(c,"agent_compatibility","",b,{maxItems:20}),w=[];if(t&&t.forEach((a,c)=>{let d=O(a,(0,f.uJ)("/agent_compatibility",c),b);d&&w.push(d)}),h.ok&&void 0!==j){let a=`${e.Co}/${h.value}`;j!==a&&b.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,"/install_root","install_root must be the repository-relative skill root",{expected:a}))}if(h.ok&&void 0!==j&&void 0!==k){let a=e.y2.map(a=>`${a}/${h.value}`);0===k.length?b.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,"/install_roots","install_roots must not be empty")):k[0]!==j&&b.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,"/install_roots/0","install_roots[0] must equal install_root (the primary root)",{expected:j}));let c=new Set;k.forEach((d,e)=>{a.includes(d)||b.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,`/install_roots/${e}`,"install_roots entry must be a known repository-relative skill root")),c.has(d)&&b.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,`/install_roots/${e}`,"install_roots must not repeat a root")),c.add(d)})}if(h.ok&&void 0!==i&&void 0!==n){let a=(0,e.l9)(h.value,i);n.asset_name!==a&&b.push((0,f.iS)(f.J$.ARTIFACT_INVALID,"/artifact/asset_name","asset_name must follow the <skill-id>-<version>.tar.gz convention",{expected:a}))}if(void 0!==p&&void 0!==q&&void 0!==r){let a=V(p,q);r!==a&&b.push((0,f.iS)(f.J$.INCONSISTENT_VALUE,"/effective_risk","effective_risk must be the higher of declared_risk and computed_risk",{expected:a}))}return b.length>0||!h.ok||void 0===i||void 0===j||void 0===m||void 0===n||void 0===o||void 0===p||void 0===q||void 0===r||void 0===s||void 0===t?(0,f._9)(b.length>0?b:[(0,f.iS)(f.J$.MISSING_FIELD,"","receipt is incomplete")]):(0,f.qO)({schema_version:d,skill_id:h.value,version:i,install_root:j,...void 0!==k?{install_roots:k}:{},source:m,artifact:n,files:o,declared_risk:p,computed_risk:q,effective_risk:r,declared_permissions:s,agent_compatibility:w})}function U(a,b){let c=new Set(a.files.map(a=>a.path)),d=new Set(b.filter(a=>a!==e.KH)),g=[];for(let a of c)d.has(a)||g.push((0,f.iS)(f.J$.FILE_SET_MISMATCH,"/files","declared file is absent from the package",{path:a}));for(let a of d)c.has(a)||g.push((0,f.iS)(f.J$.FILE_SET_MISMATCH,"/files","package contains an undeclared file",{path:a}));return g.length>0?(0,f._9)(g):(0,f.qO)([...c].sort())}function V(a,b){return e.$Y[b]>e.$Y[a]?b:a}function W(a){return a.executable_paths.length>0||a.declared_permissions.includes("credential_access")?"high":a.script_paths.length>0||a.network_hosts.length>0||a.declared_permissions.includes("process_execution")||a.declared_permissions.includes("filesystem_write")?"moderate":"low"}function X(a){return JSON.stringify(function a(b){if(Array.isArray(b))return b.map(a);if(w(b)){let c={};for(let d of Object.keys(b).sort())void 0!==b[d]&&(c[d]=a(b[d]));return c}return b}(a))}},36931:(a,b,c)=>{c.d(b,{BO:()=>f,Cg:()=>h,IX:()=>e,LE:()=>j,Qk:()=>k,l2:()=>d});let d=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function e(a){if("string"!=typeof a||a.length>64)return null;let b=d.exec(a);return b?{major:Number(b[1]),minor:Number(b[2]),patch:Number(b[3]),prerelease:b[4]?b[4].split("."):[],build:b[5]?b[5].split("."):[]}:null}function f(a){return null!==e(a)}function g(a,b){return a.major!==b.major?a.major<b.major?-1:1:a.minor!==b.minor?a.minor<b.minor?-1:1:a.patch!==b.patch?a.patch<b.patch?-1:1:function(a,b){if(0===a.length&&0===b.length)return 0;if(0===a.length)return 1;if(0===b.length)return -1;let c=Math.min(a.length,b.length);for(let d=0;d<c;d++){let c=a[d],e=b[d];if(c===e)continue;let f=/^\d+$/.test(c),g=/^\d+$/.test(e);if(f&&g)return Number(c)<Number(e)?-1:1;if(f)return -1;if(g)return 1;return c<e?-1:1}return a.length===b.length?0:a.length<b.length?-1:1}(a.prerelease,b.prerelease)}function h(a,b){let c=e(a),d=e(b);return c&&d?g(c,d):null}function i(a){if("string"!=typeof a)return null;let b=a.trim();if(0===b.length||b.length>100||b.includes("||"))return null;let c=b.split(/\s+/);if(c.length>4)return null;let d=[];for(let a of c){let b=/^(>=|<=|>|<|=|\^|~)?(.+)$/.exec(a);if(!b)return null;let c=b[1]??"=",f=e(b[2]);if(!f)return null;if("^"===c||"~"===c){let a="^"===c?f.major>0?{major:f.major+1,minor:0,patch:0,prerelease:[],build:[]}:f.minor>0?{major:0,minor:f.minor+1,patch:0,prerelease:[],build:[]}:{major:0,minor:0,patch:f.patch+1,prerelease:[],build:[]}:{major:f.major,minor:f.minor+1,patch:0,prerelease:[],build:[]};d.push({operator:">=",version:f}),d.push({operator:"<",version:a});continue}d.push({operator:c,version:f})}return d.length>8?null:d}function j(a){return null!==i(a)}function k(a,b){let c=e(a),d=i(b);return!!c&&!!d&&(!(c.prerelease.length>0)||!!d.some(a=>{var b;return a.version.prerelease.length>0&&(b=a.version,c.major===b.major&&c.minor===b.minor&&c.patch===b.patch)}))&&d.every(a=>(function(a,b){let c=g(a,b.version);switch(b.operator){case"=":return 0===c;case">":return c>0;case">=":return c>=0;case"<":return c<0;case"<=":return c<=0}})(c,a))}},55432:(a,b,c)=>{c.d(b,{J$:()=>d,_9:()=>g,iS:()=>e,qO:()=>f,uJ:()=>h});let d={NOT_AN_OBJECT:"SKILL_NOT_AN_OBJECT",SCHEMA_VERSION_UNSUPPORTED:"SKILL_SCHEMA_VERSION_UNSUPPORTED",MISSING_FIELD:"SKILL_MISSING_FIELD",INVALID_TYPE:"SKILL_INVALID_TYPE",INVALID_ENUM:"SKILL_INVALID_ENUM",INVALID_FORMAT:"SKILL_INVALID_FORMAT",LIMIT_EXCEEDED:"SKILL_LIMIT_EXCEEDED",UNKNOWN_FIELD:"SKILL_UNKNOWN_FIELD",ID_INVALID:"SKILL_ID_INVALID",ID_RESERVED:"SKILL_ID_RESERVED",ID_COLLISION:"SKILL_ID_COLLISION",ID_MISMATCH:"SKILL_ID_MISMATCH",VERSION_INVALID:"SKILL_VERSION_INVALID",VERSION_RANGE_INVALID:"SKILL_VERSION_RANGE_INVALID",DIGEST_INVALID:"SKILL_DIGEST_INVALID",FILE_PATH_UNSAFE:"SKILL_FILE_PATH_UNSAFE",FILE_PATH_DUPLICATE:"SKILL_FILE_PATH_DUPLICATE",FILE_SET_MISMATCH:"SKILL_FILE_SET_MISMATCH",ARTIFACT_INVALID:"SKILL_ARTIFACT_INVALID",SOURCE_COMMIT_INVALID:"SKILL_SOURCE_COMMIT_INVALID",CATALOG_LATEST_UNRESOLVED:"SKILL_CATALOG_LATEST_UNRESOLVED",DUPLICATE_ENTRY:"SKILL_DUPLICATE_ENTRY",INCONSISTENT_VALUE:"SKILL_INCONSISTENT_VALUE"};function e(a,b,c,d){return d?{code:a,path:b,message:c,detail:d}:{code:a,path:b,message:c}}function f(a){return{ok:!0,value:a,errors:[]}}function g(a){return{ok:!1,value:null,errors:a}}function h(a,b){return`${a}/${b}`}},96210:(a,b,c)=>{c.d(b,{$K:()=>B,$Y:()=>P,$e:()=>w,AH:()=>U,AN:()=>v,B3:()=>n,BQ:()=>z,Co:()=>h,DA:()=>X,G0:()=>G,Gm:()=>K,Hx:()=>R,JO:()=>$,KH:()=>l,PB:()=>Z,S$:()=>x,SU:()=>I,UN:()=>E,Ue:()=>D,WL:()=>M,Wr:()=>m,Wy:()=>_,X0:()=>e,Xk:()=>L,Z4:()=>T,_Z:()=>J,a6:()=>r,b:()=>F,cj:()=>f,do:()=>Y,em:()=>s,gI:()=>H,gJ:()=>q,h3:()=>N,jn:()=>p,jq:()=>d,kM:()=>g,l9:()=>u,mg:()=>V,mt:()=>Q,pg:()=>k,q3:()=>y,qu:()=>W,t9:()=>A,td:()=>i,wD:()=>o,wI:()=>O,x2:()=>S,xP:()=>t,y2:()=>j,yV:()=>C});let d=1,e=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,f=64,g=["commandmate","system","con","prn","aux","nul","com1","com2","com3","com4","com5","com6","com7","com8","com9","lpt1","lpt2","lpt3","lpt4","lpt5","lpt6","lpt7","lpt8","lpt9"],h=".agents/skills",i=".claude/skills",j=[h,i],k=h,l="commandmate.skill.yaml",m="SKILL.md",n=".commandmate-staging",o=[m,l],p="tar.gz",q="application/gzip",r=0x1000000,s=4194304,t=500;function u(a,b){return`${a}-${b}.tar.gz`}let v=100,w=8,x=255,y=100,z=200,A=2e3,B=200,C=10,D=20,E=40,F=4e3,G=300,H=500,I=20,J=20,K=500,L=100,M={maxBytes:65536,maxDepth:16,maxNodes:5e3,maxScalarLength:8192,allowAliases:!1,allowCustomTags:!1,allowDuplicateKeys:!1,forbiddenKeys:["__proto__","constructor","prototype"]},N=["native","commandmate_runtime","unsupported","unknown"],O=["low","moderate","high"],P={low:0,moderate:1,high:2},Q=["filesystem_read","filesystem_write","network_access","process_execution","environment_read","credential_access"],R=["skill_md","instruction","script","asset"],S=/^[0-9a-f]{64}$/,T=/^[0-9a-f]{40}$/,U=/^[A-Za-z0-9][A-Za-z0-9._-]*\/[A-Za-z0-9][A-Za-z0-9._-]*$/,V=/^[A-Za-z0-9][A-Za-z0-9._/-]{0,99}$/,W=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/,X=/^[A-Za-z0-9][A-Za-z0-9.+-]{0,63}$/,Y=/^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$/,Z=/^(?:\*\.)?(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/,$="https://",_={native:"skills.compatibility.native",commandmate_runtime:"skills.compatibility.commandmateRuntime",unsupported:"skills.compatibility.unsupported",unknown:"skills.compatibility.unknown"}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=5571,exports.ids=[5571],exports.modules={95571:a=>{a.exports=JSON.parse('{"title":"Schedules","executionLogs":"Execution Logs","tabs":{"schedules":"Schedules","logs":"Logs"},"emptyState":{"title":"No schedules yet","description":"Run an agent automatically on a cron schedule.","createButton":"Create Schedule","manualToggle":"Or edit CMATE.md manually"},"noSchedules":"No schedules configured. Add a CMATE.md with a Schedules section.","noSchedulesTitle":"No schedules configured","noSchedulesStep1":"Switch to the Files tab","noSchedulesStep2":"Click the CMATE button in the toolbar to create CMATE.md","noSchedulesStep3":"Edit the Schedules table (Name, Cron, Message, CLI Tool, Enabled, Permission)","noSchedulesStep4":"Click CMATE again to validate","noLogs":"No execution logs yet.","status":{"running":"Running","completed":"Completed","failed":"Failed","timeout":"Timeout","cancelled":"Cancelled"},"enabled":"Enabled","disabled":"Disabled","activeSchedulesTitle":"Active Schedules","activeSchedulesDescription":"In-memory cron state currently registered by the scheduler.","noActiveSchedules":"No schedules are currently registered in memory.","nextRun":"Next run","agentLabel":"Agent","activeState":{"active":"Active","inactive":"Inactive","executing":"Executing"},"lastRun":"Last run","cron":"Cron","exitCode":"Exit","noOutput":"(no output)","message":"Message","response":"Response","unknownSchedule":"(deleted schedule)","retry":"Retry","loading":"Loading...","notes":"Notes","logs":"Schedules","notesAndLogs":"CMATE","agentTab":"Agent","agentSettings":"Agent Settings","selectAgents":"Select 2 agents to display in the terminal header tabs.","agentSaveSuccess":"Agent settings saved.","agentSaveError":"Failed to save agent settings.","agentInstances":"Agent Instances","agentInstancesDescription":"Manage the agents shown in the terminal header tabs. Add multiple instances of the same tool and give each an alias.","agentInstanceAliasLabel":"Alias","agentInstanceAliasPlaceholder":"Display name","agentInstanceBaseTool":"Base tool","agentInstanceAdd":"Add instance","agentInstanceDelete":"Delete instance","agentInstanceMoveUp":"Move up","agentInstanceMoveDown":"Move down","agentInstanceActions":"Instance actions","memoMoveUp":"Move up","memoMoveDown":"Move down","agentInstanceMax":"Up to {max} instances can be added.","agentInstanceMin":"At least {min} instance is required.","agentInstanceSaveError":"Failed to save agent instances.","agentDefaults":"Use this layout as the default","agentDefaultsDescription":"Save the tool order shown here as the default for new branches, or apply it to the branches of this repository that nobody has touched yet. Several instances of one tool count once.","agentDefaultsSetDefault":"Make this the default","agentDefaultsSaved":"Saved as the default. It now shows under \\"Default agents for new branches\\" in Settings.","agentDefaultsSaveError":"Could not save the default.","agentDefaultsApply":"Apply to unchanged branches","agentDefaultsApplyScope":"Only branches of this repository are affected. Other repositories, and branches whose agents you changed by hand, are left alone.","agentDefaultsEligible":"Would change {count} branch(es) in this repository","agentDefaultsEligibleUnknown":"Branches this would change: unknown","agentDefaultsRepositoryLabel":"Repository: {repository}","agentDefaultsRepoDeclared":"This repository declares its agents in .commandmate/agents.yaml. A bulk apply would override that declaration permanently, so it is disabled here — change the file instead.","agentDefaultsApplyConfirm":"Apply {agents} to {count} unchanged branch(es) in this repository. Other repositories, and branches whose agents you changed by hand, are left alone.","agentDefaultsApplied":"Applied to {count} branch(es).","agentDefaultsApplyError":"Could not apply to the branches.","agentDefaultsCountError":"Could not read how many branches this would change.","agentDefaultsRetry":"Retry the count","agentDefaultsInvalidRoster":"A default needs between {min} and {max} distinct tools. Add or remove a tool.","mobileVisibleInstances":"Show on this device","mobileVisibleInstancesDescription":"Choose which instances appear as tabs on this device. This selection is saved per device and does not change the shared instance list.","mobileVisibleInstanceMin":"At least one instance must stay visible on this device.","vibeLocalModel":"Ollama Model","vibeLocalModelDefault":"Default","vibeLocalContextWindow":"Context Window","vibeLocalContextWindowDefault":"Default (auto)","ollamaNotAvailable":"Ollama is not running. Start Ollama to select a model.","cmateCreated":"CMATE.md created with template. Edit it to configure schedules.","cmateValidation":{"noSchedulesSection":"CMATE.md has no Schedules section.","valid":"{count} schedule(s) validated successfully.","errors":"{errorCount} validation error(s) found: {details}","failed":"Failed to process CMATE.md."},"edit":{"newSchedule":"New Schedule","titleCreate":"New Schedule","titleEdit":"Edit Schedule","sectionBasic":"Basic","sectionAdvanced":"Advanced","sectionMessage":"Message","name":"Name","namePlaceholder":"daily-review","cron":"Cron Expression","cronPlaceholder":"0 9 * * *","cronPreset":"Preset","cronPresetHourly":"Every hour (0 */1 * * *)","cronPresetDaily9":"Daily at 9:00 (0 9 * * *)","cronPresetWeeklyMon9":"Mondays at 9:00 (0 9 * * 1)","cronPresetCustom":"Custom","askAiCron":"Ask AI","askAiMessage":"Ask AI to draft","askAiHint":"Drafts a prompt into the AI chat (no auto-send)","aiPrompts":{"cron":"I want to express the schedule timing as a cron expression. Convert a plain-language request (e.g. \\"every Monday at 9\\") into a cron expression and suggest a few candidates (e.g. \\"every Monday at 9\\" → `0 9 * * 1`).","cronRefine":"I want to express the schedule timing as a cron expression. The current input is {current}. Building on that, convert a plain-language request (e.g. \\"every Monday at 9\\") into a cron expression and suggest a few candidates (e.g. \\"every Monday at 9\\" → `0 9 * * 1`).","messageDraft":"For this schedule, I want to write the message (the instruction prompt) that the CLI tool will run on a schedule. First ask me what it is for, then propose the message content based on my answer.","messageDraftNamed":"For the schedule {name}, I want to write the message (the instruction prompt) that the CLI tool will run on a schedule. First ask me what it is for, then propose the message content based on my answer."},"cliTool":"CLI Tool","model":"Model","modelPlaceholder":"gpt-4.1","opencodeAgent":"Agent (opencode)","opencodeAgentPlaceholder":"plan","opencodeVariant":"Variant (opencode)","opencodeVariantPlaceholder":"high","opencodeTitle":"Session title (opencode)","opencodeTitlePlaceholder":"nightly-review","opencodeContinue":"Continue the last session (--continue)","permission":"Permission","commandCodeReadOnlyNote":"In command-code print mode, anything other than `yolo` blocks edit_file / write_file / shell_command / monitor_command / kill_shell, so the run is read-only (and is still recorded as a success).","message":"Message","messagePlaceholder":"Summarize README.md","charCount":"{count} / {max}","enabledLabel":"Enabled","save":"Save","cancel":"Cancel","edit":"Edit","delete":"Delete","enable":"Enable","disable":"Disable","confirmDelete":"Delete schedule \\"{name}\\"?","saveError":"Failed to save the schedule.","errorNameRequired":"Name is required.","errorNameTooLong":"Name must be {max} characters or less.","errorNameInvalid":"Name contains invalid characters.","errorCronInvalid":"Invalid cron expression.","errorMessageRequired":"Message is required.","errorMessageTooLong":"Message must be {max} characters or less.","errorModelInvalid":"Invalid model name.","errorAgentInvalid":"Invalid agent name.","errorVariantInvalid":"Invalid variant name.","errorTitleInvalid":"Invalid session title."},"timerTab":"Timer","todoTab":"ToDo","skillsTab":"Skills","verificationTab":"Verification","envTab":"Env","timer":{"title":"Delayed Messages","titleCreate":"New Timer","createButton":"Create Timer","newTimer":"New Timer","close":"Cancel","agent":"Agent","message":"Message","delay":"Send After","register":"Register Timer","cancel":"Cancel","noTimers":"No timers registered.","maxReached":"Maximum {max} timers per worktree.","registerSuccess":"Timer registered.","registerError":"Failed to register timer.","cancelSuccess":"Timer cancelled.","cancelError":"Failed to cancel timer.","status":{"pending":"Pending","sending":"Sending","sent":"Sent","failed":"Failed","cancelled":"Cancelled","no_session":"No Session"},"sessionWarning":"Session is not running. If the session is not running when the timer fires, the message will not be sent.","minutesShort":"{minutes}m","hoursMinutesShort":"{hours}h {minutes}m","loadMore":"Load more","clearHistory":"Clear history","clearConfirm":"Delete all sent, failed, and cancelled timer history?","cleared":"History cleared ({count} items)","detailTitle":"Timer Details","statusLabel":"Status","scheduledTime":"Scheduled Send","createdTime":"Created","sentTime":"Sent","failureReason":"Failure Reason"},"memoAdd":"Add Memo","memoRemaining":"{count} remaining","memoDefaultTitle":"Memo","memoTitlePlaceholder":"Memo title","memoInsertToMessage":"Insert to message","memoCopyContent":"Copy memo content","memoDelete":"Delete memo","memoContentPlaceholder":"Enter memo content...","memoLoading":"Loading memos...","memoSearchToggle":"Search memos","memoEmpty":"No memos yet.","memoEmptyHint":"Click the button below to add one.","memoNoMatch":"No memos match your search.","memoSearchLabel":"Memo search","memoSearchPlaceholder":"Search...","memoSearchInputLabel":"Search memos","memoSearchPrev":"Previous match (prev)","memoSearchNext":"Next match (next)","memoSearchClose":"Close search (close)","opencodeSettings":"opencode launch settings","opencodeSettingsDescription":"The agent, model and variant this instance starts opencode with and sends prompts as.","opencodeAgent":"Agent","opencodeModel":"Model","opencodeVariant":"Variant (reasoning effort)","opencodeDefault":"opencode default","opencodeAgentPlaceholder":"build","opencodeModelPlaceholder":"provider/model","opencodeVariantPlaceholder":"high","opencodeNoVariants":"This model has no variants.","opencodeSettingsOffline":"opencode is not running, so no candidates could be read. Values can be typed in directly (model as provider/model).","opencodeVariantLaunchNote":"Agent and model take effect the next time this instance starts. The variant cannot be passed as a launch flag — opencode 1.18.22\'s TUI has no --variant — so it is applied to the prompts CommandMate posts, from the next message on.","opencodeSettingsLoadError":"Failed to load the opencode launch settings.","opencodeSettingsSaveError":"Failed to save the opencode launch settings."}')}};
|
|
1
|
+
"use strict";exports.id=5571,exports.ids=[5571],exports.modules={95571:a=>{a.exports=JSON.parse('{"title":"Schedules","executionLogs":"Execution Logs","tabs":{"schedules":"Schedules","logs":"Logs"},"emptyState":{"title":"No schedules yet","description":"Run an agent automatically on a cron schedule.","createButton":"Create Schedule","manualToggle":"Or edit CMATE.md manually"},"noSchedules":"No schedules configured. Add a CMATE.md with a Schedules section.","noSchedulesTitle":"No schedules configured","noSchedulesStep1":"Switch to the Files tab","noSchedulesStep2":"Click the CMATE button in the toolbar to create CMATE.md","noSchedulesStep3":"Edit the Schedules table (Name, Cron, Message, CLI Tool, Enabled, Permission)","noSchedulesStep4":"Click CMATE again to validate","noLogs":"No execution logs yet.","status":{"running":"Running","completed":"Completed","failed":"Failed","timeout":"Timeout","cancelled":"Cancelled"},"enabled":"Enabled","disabled":"Disabled","activeSchedulesTitle":"Active Schedules","activeSchedulesDescription":"In-memory cron state currently registered by the scheduler.","noActiveSchedules":"No schedules are currently registered in memory.","nextRun":"Next run","agentLabel":"Agent","activeState":{"active":"Active","inactive":"Inactive","executing":"Executing"},"lastRun":"Last run","cron":"Cron","exitCode":"Exit","noOutput":"(no output)","message":"Message","response":"Response","unknownSchedule":"(deleted schedule)","retry":"Retry","loading":"Loading...","notes":"Notes","logs":"Schedules","notesAndLogs":"CMATE","agentTab":"Agent","agentSettings":"Agent Settings","selectAgents":"Select 2 agents to display in the terminal header tabs.","agentSaveSuccess":"Agent settings saved.","agentSaveError":"Failed to save agent settings.","agentInstances":"Agent Instances","agentInstancesDescription":"Manage the agents shown in the terminal header tabs. Add multiple instances of the same tool and give each an alias.","agentInstanceAliasLabel":"Alias","agentInstanceAliasPlaceholder":"Display name","agentInstanceBaseTool":"Base tool","agentInstanceAdd":"Add instance","agentInstanceDelete":"Delete instance","agentInstanceMoveUp":"Move up","agentInstanceMoveDown":"Move down","agentInstanceActions":"Instance actions","memoMoveUp":"Move up","memoMoveDown":"Move down","agentInstanceMax":"Up to {max} instances can be added.","agentInstanceMin":"At least {min} instance is required.","agentInstanceSaveError":"Failed to save agent instances.","agentDefaults":"Use this layout as the default","agentDefaultsDescription":"Save the tool order shown here as the default for new branches, or apply it to the branches of this repository that nobody has touched yet. Several instances of one tool count once.","agentDefaultsSetDefault":"Make this the default","agentDefaultsSaved":"Saved as the default. It now shows under \\"Default agents for new branches\\" in Settings.","agentDefaultsSaveError":"Could not save the default.","agentDefaultsApply":"Apply to unchanged branches","agentDefaultsApplyScope":"Only branches of this repository are affected. Other repositories, and branches whose agents you changed by hand, are left alone.","agentDefaultsEligible":"Would change {count} branch(es) in this repository","agentDefaultsEligibleUnknown":"Branches this would change: unknown","agentDefaultsRepositoryLabel":"Repository: {repository}","agentDefaultsRepoDeclared":"This repository declares its agents in .commandmate/agents.yaml. A bulk apply would override that declaration permanently, so it is disabled here — change the file instead.","agentDefaultsApplyConfirm":"Apply {agents} to {count} unchanged branch(es) in this repository. Other repositories, and branches whose agents you changed by hand, are left alone.","agentDefaultsApplied":"Applied to {count} branch(es).","agentDefaultsApplyError":"Could not apply to the branches.","agentDefaultsCountError":"Could not read how many branches this would change.","agentDefaultsRetry":"Retry the count","agentDefaultsInvalidRoster":"A default needs between {min} and {max} distinct tools. Add or remove a tool.","mobileVisibleInstances":"Show on this device","mobileVisibleInstancesDescription":"Choose which instances appear as tabs on this device. This selection is saved per device and does not change the shared instance list.","mobileVisibleInstanceMin":"At least one instance must stay visible on this device.","vibeLocalModel":"Ollama Model","vibeLocalModelDefault":"Default","vibeLocalContextWindow":"Context Window","vibeLocalContextWindowDefault":"Default (auto)","ollamaNotAvailable":"Ollama is not running. Start Ollama to select a model.","cmateCreated":"CMATE.md created with template. Edit it to configure schedules.","cmateValidation":{"noSchedulesSection":"CMATE.md has no Schedules section.","valid":"{count} schedule(s) validated successfully.","errors":"{errorCount} validation error(s) found: {details}","failed":"Failed to process CMATE.md."},"edit":{"newSchedule":"New Schedule","titleCreate":"New Schedule","titleEdit":"Edit Schedule","sectionBasic":"Basic","sectionAdvanced":"Advanced","sectionMessage":"Message","name":"Name","namePlaceholder":"daily-review","cron":"Cron Expression","cronPlaceholder":"0 9 * * *","cronPreset":"Preset","cronPresetHourly":"Every hour (0 */1 * * *)","cronPresetDaily9":"Daily at 9:00 (0 9 * * *)","cronPresetWeeklyMon9":"Mondays at 9:00 (0 9 * * 1)","cronPresetCustom":"Custom","askAiCron":"Ask AI","askAiMessage":"Ask AI to draft","askAiHint":"Drafts a prompt into the AI chat (no auto-send)","aiPrompts":{"cron":"I want to express the schedule timing as a cron expression. Convert a plain-language request (e.g. \\"every Monday at 9\\") into a cron expression and suggest a few candidates (e.g. \\"every Monday at 9\\" → `0 9 * * 1`).","cronRefine":"I want to express the schedule timing as a cron expression. The current input is {current}. Building on that, convert a plain-language request (e.g. \\"every Monday at 9\\") into a cron expression and suggest a few candidates (e.g. \\"every Monday at 9\\" → `0 9 * * 1`).","messageDraft":"For this schedule, I want to write the message (the instruction prompt) that the CLI tool will run on a schedule. First ask me what it is for, then propose the message content based on my answer.","messageDraftNamed":"For the schedule {name}, I want to write the message (the instruction prompt) that the CLI tool will run on a schedule. First ask me what it is for, then propose the message content based on my answer."},"cliTool":"CLI Tool","model":"Model","modelPlaceholder":"gpt-4.1","opencodeAgent":"Agent (opencode)","opencodeAgentPlaceholder":"plan","opencodeVariant":"Variant (opencode)","opencodeVariantPlaceholder":"high","opencodeTitle":"Session title (opencode)","opencodeTitlePlaceholder":"nightly-review","opencodeContinue":"Continue the last session (--continue)","permission":"Permission","commandCodeReadOnlyNote":"In command-code print mode, anything other than `yolo` blocks edit_file / write_file / shell_command / monitor_command / kill_shell, so the run is read-only (and is still recorded as a success).","message":"Message","messagePlaceholder":"Summarize README.md","charCount":"{count} / {max}","enabledLabel":"Enabled","save":"Save","cancel":"Cancel","edit":"Edit","delete":"Delete","enable":"Enable","disable":"Disable","confirmDelete":"Delete schedule \\"{name}\\"?","saveError":"Failed to save the schedule.","errorNameRequired":"Name is required.","errorNameTooLong":"Name must be {max} characters or less.","errorNameInvalid":"Name contains invalid characters.","errorCronInvalid":"Invalid cron expression.","errorMessageRequired":"Message is required.","errorMessageTooLong":"Message must be {max} characters or less.","errorModelInvalid":"Invalid model name.","errorAgentInvalid":"Invalid agent name.","errorVariantInvalid":"Invalid variant name.","errorVariantNeedsModel":"OpenCode V2 needs a Model to go with the Variant (it is sent as -m <provider/model>#<variant>).","errorTitleInvalid":"Invalid session title."},"timerTab":"Timer","todoTab":"ToDo","skillsTab":"Skills","verificationTab":"Verification","envTab":"Env","timer":{"title":"Delayed Messages","titleCreate":"New Timer","createButton":"Create Timer","newTimer":"New Timer","close":"Cancel","agent":"Agent","message":"Message","delay":"Send After","register":"Register Timer","cancel":"Cancel","noTimers":"No timers registered.","maxReached":"Maximum {max} timers per worktree.","registerSuccess":"Timer registered.","registerError":"Failed to register timer.","cancelSuccess":"Timer cancelled.","cancelError":"Failed to cancel timer.","status":{"pending":"Pending","sending":"Sending","sent":"Sent","failed":"Failed","cancelled":"Cancelled","no_session":"No Session"},"sessionWarning":"Session is not running. If the session is not running when the timer fires, the message will not be sent.","minutesShort":"{minutes}m","hoursMinutesShort":"{hours}h {minutes}m","loadMore":"Load more","clearHistory":"Clear history","clearConfirm":"Delete all sent, failed, and cancelled timer history?","cleared":"History cleared ({count} items)","detailTitle":"Timer Details","statusLabel":"Status","scheduledTime":"Scheduled Send","createdTime":"Created","sentTime":"Sent","failureReason":"Failure Reason"},"memoAdd":"Add Memo","memoRemaining":"{count} remaining","memoDefaultTitle":"Memo","memoTitlePlaceholder":"Memo title","memoInsertToMessage":"Insert to message","memoCopyContent":"Copy memo content","memoDelete":"Delete memo","memoContentPlaceholder":"Enter memo content...","memoLoading":"Loading memos...","memoSearchToggle":"Search memos","memoEmpty":"No memos yet.","memoEmptyHint":"Click the button below to add one.","memoNoMatch":"No memos match your search.","memoSearchLabel":"Memo search","memoSearchPlaceholder":"Search...","memoSearchInputLabel":"Search memos","memoSearchPrev":"Previous match (prev)","memoSearchNext":"Next match (next)","memoSearchClose":"Close search (close)","opencodeSettings":"opencode launch settings","opencodeSettingsDescription":"The agent, model and variant this instance starts opencode with and sends prompts as.","opencodeAgent":"Agent","opencodeModel":"Model","opencodeVariant":"Variant (reasoning effort)","opencodeDefault":"opencode default","opencodeAgentPlaceholder":"build","opencodeModelPlaceholder":"provider/model","opencodeVariantPlaceholder":"high","opencodeNoVariants":"This model has no variants.","opencodeSettingsOffline":"opencode is not running, so no candidates could be read. Values can be typed in directly (model as provider/model).","opencodeVariantLaunchNote":"Agent and model take effect the next time this instance starts. The variant cannot be passed as a launch flag — opencode 1.18.22\'s TUI has no --variant — so it is applied to the prompts CommandMate posts, from the next message on.","opencodeSettingsLoadError":"Failed to load the opencode launch settings.","opencodeSettingsSaveError":"Failed to save the opencode launch settings."}')}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=5775,exports.ids=[964,2839,5220,5775,8583],exports.modules={15608:(a,b,c)=>{function d(){return globalThis.__cmLegacySessionAliases??=new Map}function e(a){return d().get(a)}function f(a){let b=d(),c=!1;for(let[d,e]of b)e===a&&(b.delete(d),c=!0);return c}c.d(b,{mc:()=>e,y:()=>f})},39687:(a,b,c)=>{c.d(b,{d:()=>
|
|
1
|
+
"use strict";exports.id=5775,exports.ids=[964,2839,5220,5775,8583],exports.modules={15608:(a,b,c)=>{function d(){return globalThis.__cmLegacySessionAliases??=new Map}function e(a){return d().get(a)}function f(a){let b=d(),c=!1;for(let[d,e]of b)e===a&&(b.delete(d),c=!0);return c}c.d(b,{mc:()=>e,y:()=>f})},39687:(a,b,c)=>{c.d(b,{d:()=>t});var d=c(56791),e=c(8360),f=c(15194),g=c(95220),h=c(12462),i=c(43015),j=c(54325),k=c(72626),l=c(34331),m=c(40964),n=c(58707),o=c(2669),p=c(49319);let q=(0,k.h)("session/send-user-message");function r(a){return a instanceof Error?a.message:String(a)}async function s(a,b){let c=`${a}:${b}`,d=Date.now()+5e3;for(;(0,g.getActivePollers)().includes(c);){if(Date.now()>=d)return!1;await new Promise(a=>setTimeout(a,100))}return!0}async function t(a,b){let{worktreeId:c,content:k,cliToolId:t,instanceId:u,absoluteImagePath:v,copilotModel:w}=b,x=b.messageType??"normal",y=u??t,z=e.CLIToolManager.getInstance().getTool(t),A=(0,m.mf)(t,c,u),B=await (0,l.L)(c,A,a);if(null===B||"foreign"===B.verdict)return q.warn("send-refused-foreign-session",{worktreeId:c,cliToolId:t,instanceId:y,sessionName:A,sessionPath:B?.sessionPath??null,reason:B?"foreign":"worktree_not_found"}),{ok:!1,stage:"foreign_session",error:B?`tmux session "${A}" belongs to another CommandMate server`:`Worktree '${c}' not found; cannot confirm tmux session "${A}" is this server's`};let C=await (0,n.a3)(c,t,u,{ignoreStructured:b.ignoreStructuredPromptGuard});if(C.waiting)return q.info("send-refused-prompt-waiting",{worktreeId:c,cliToolId:t,reason:C.reason,blockedBy:C.blockedBy}),{ok:!1,stage:"prompt_waiting",error:(0,n.br)(c,C.blockedBy)};if(w&&"copilot"===t){try{await z.sendModelCommand(c,w,u),q.info("copilot-model-command-sent",{model:w})}catch(a){return q.error("failed-to-send-model-command:",{error:r(a)}),{ok:!1,stage:"model",error:r(a)}}await s(c,y)||q.warn("previous-turn-poller-still-running",{worktreeId:c,instanceId:y,waitedMs:5e3})}let D=new Date;try{await (0,h.o4)(a,c,t,D,u)}catch(a){q.error("failed-to-save-pending-assistant-response:",{error:r(a)})}let E=null;try{let b=(0,d.getMessages)(a,c,{limit:1,cliToolId:t,instanceId:y,matchResolvedInstance:!0});b.length>0&&"user"===b[0].role&&b[0].content===k&&(E=b[0].id)}catch(a){q.error("failed-to-detect-orphaned-messages:",{error:r(a)})}try{v?(0,f._J)(z)?await z.sendMessageWithImage(c,k,v,u):await z.sendMessage(c,(0,p.TZ)(k,v),u):await z.sendMessage(c,k,u)}catch(a){if(q.error("failed-to-send-message-to:",{error:r(a)}),(0,o.wQ)(a))return{ok:!1,stage:"send",error:a.message,code:o.M7};return{ok:!1,stage:"send",error:r(a)}}let F=(0,d.createMessage)(a,{worktreeId:c,role:"user",content:k,messageType:x,timestamp:D,cliToolId:t,instanceId:u,requestId:b.requestId});try{(0,i.broadcastMessage)("message",{worktreeId:c,message:{...F,cliToolId:t,instanceId:y}})}catch(a){q.warn("user-message-broadcast-failed",{error:r(a)})}if(E)try{if((0,d.deleteMessageById)(a,E)){q.info("cleaned-up-orphaned-user");try{(0,i.broadcastMessage)(j.dz,{worktreeId:c,cliToolId:t,instanceId:y,reason:"orphan_cleanup"})}catch(a){q.warn("orphan-cleanup-broadcast-failed",{error:r(a)})}}}catch(a){q.error("failed-to-clean-up-orphaned-message:",{error:r(a)})}return(0,d.updateLastUserMessage)(a,c,k,D),(0,d.clearInProgressMessageId)(a,c,t,u),q.info("cleared-in-progress-message-for"),(0,g.startPolling)(c,t,u),{ok:!0,message:F}}},40964:(a,b,c)=>{c.d(b,{s4:()=>k,NN:()=>n,Ze:()=>l,mf:()=>m});var d=c(15194);let e=/^[a-zA-Z0-9_-]+$/;function f(a){if(!e.test(a))throw Error(`Invalid session name format: ${a}`)}var g=c(15608);let h="mcbd-",i=/^[0-9a-f]{8}$/,j=[...d.XH].sort((a,b)=>b.length-a.length);function k(){return globalThis.__cmTmuxSessionNamespace??null}function l(a,b,c,e){var g=null===a?h:`${h}${a}-`;let i=`${g}${b}-${c}`;if(!e||e===b)return f(i),i;let j=(0,d.pL)(e,b),k=j?`${i}-${j}`:i;return f(k),k}function m(a,b,c){let d=k(),e=l(d,a,b,c);return null===d?e:(0,g.mc)(e)??e}function n(a){if(!a.startsWith(h))return null;let b=a.slice(h.length),c=null,d=b.indexOf("-");d>0&&i.test(b.slice(0,d))&&(c=b.slice(0,d),b=b.slice(d+1));let e=j.find(a=>b.startsWith(`${a}-`));if(!e)return null;let f=b.slice(e.length+1);return""===f?null:{namespace:c,cliToolId:e,rest:f}}},58707:(a,b,c)=>{c.d(b,{$n:()=>k,a3:()=>l,br:()=>m});var d=c(8360),e=c(31990),f=c(95595),g=c(34405),h=c(72626),i=c(30008);let j=(0,h.h)("prompt-waiting-guard"),k="PROMPT_WAITING";async function l(a,b,c,h){try{let k=d.CLIToolManager.getInstance().getTool(b);if(!await k.isRunning(a,c))return{waiting:!1};let l=await (0,e.Wh)(a,b,g._,c),m=(0,f.WC)(l,b),n=(0,i._G)({worktreeId:a,cliToolId:b,instanceId:c,scraper:{status:m.status,reason:m.reason,hasActivePrompt:m.hasActivePrompt},ignoreStructured:h?.ignoreStructured});if(!n.blocksSend)return null!==n.structuredSendBlockSuppressed&&j.info("structured-send-guard-not-applied",{worktreeId:a,cliToolId:b,instanceId:c,suppressed:n.structuredSendBlockSuppressed,promptWaitingSince:n.structured?.at??null}),{waiting:!1};return{waiting:!0,reason:n.blockReason??void 0,blockedBy:n.blockedBy??void 0}}catch(c){return j.warn("prompt-waiting-check-failed",{worktreeId:a,cliToolId:b,error:c instanceof Error?c.message:String(c)}),{waiting:!1}}}function m(a,b){let c=`${a} is waiting on a prompt. Sending now would type into the prompt's input line instead of reaching the agent, and would leave that text in place for the next answer. Answer the prompt first: \`commandmate respond ${a} <answer>\`.`;if("structured"!==b)return c;let d=Math.round(i.j0/6e4);return`${c} This dialog was reported by the agent's own hooks and is not visible to the terminal scraper, so if the pane looks idle the record has outlived its dialog: it stops blocking sends ${d} minutes after it was reported, or immediately with \`commandmate send ${a} <message> --ignore-structured-prompt\` (server-wide: ${i.F1}=off).`}},85775:(a,b,c)=>{c.d(b,{Tm:()=>o,x4:()=>m,xJ:()=>n});var d=c(34129),e=c(8360),f=c(88807),g=c(72626),h=c(87374),i=c(39687);let j=(0,g.h)("timer-manager");function k(){return globalThis.__timerManagerState||(globalThis.__timerManagerState={timers:new Map,timerWorktrees:new Map,initialized:!1}),globalThis.__timerManagerState}async function l(a){let b=k(),c=(0,f.getDbInstance)();try{let b=(0,d.kx)(c,a);if(!b||"pending"!==b.status)return;let f=e.CLIToolManager.getInstance().getTool(b.cliToolId),g=b.instanceId;if(!await f.isRunning(b.worktreeId,g)){j.warn("timer:no-session",{timerId:a,worktreeId:b.worktreeId,instanceId:g}),(0,d.j2)(c,a,h.HR.NO_SESSION);return}(0,d.j2)(c,a,"sending");let k=await (0,i.d)(c,{worktreeId:b.worktreeId,content:b.message,cliToolId:b.cliToolId,instanceId:g});if(!k.ok){let b=`[${k.stage}] ${k.error}`;(0,d.j2)(c,a,"failed",void 0,b),j.error("timer:send-failed",{timerId:a,stage:k.stage,error:k.error});return}(0,d.j2)(c,a,"sent",Date.now()),j.info("timer:sent",{timerId:a,worktreeId:b.worktreeId})}catch(e){let b=e instanceof Error?e.message:String(e);try{(0,d.j2)(c,a,"failed",void 0,b)}catch{}j.error("timer:send-failed",{timerId:a,error:b})}finally{b.timers.delete(a),b.timerWorktrees.delete(a)}}function m(a,b,c){let d=k(),e=setTimeout(()=>{l(a)},c);d.timers.set(a,e),d.timerWorktrees.set(a,b)}function n(a){let b=k(),c=b.timers.get(a);c&&(clearTimeout(c),b.timers.delete(a),b.timerWorktrees.delete(a));let e=(0,f.getDbInstance)();(0,d.Ud)(e,a)}function o(a){let b=k(),c=(0,f.getDbInstance)();for(let[c,d]of b.timerWorktrees)if(d===a){let a=b.timers.get(c);a&&clearTimeout(a),b.timers.delete(c),b.timerWorktrees.delete(c)}(0,d.$$)(c,a)}},95220:(a,b,c)=>{c.r(b),c.d(b,{accumulateTuiContent:()=>g.IZ,cleanClaudeResponse:()=>f.NN,cleanCopilotResponse:()=>f.LH,cleanGeminiResponse:()=>f.IS,cleanOpenCodeResponse:()=>f.aW,clearPromptHashCache:()=>h.iX,clearTuiAccumulator:()=>g.q1,extractCopilotContentLines:()=>g.o0,extractTuiContentLines:()=>g.K0,findOverlapIndex:()=>g.vQ,getAccumulatedContent:()=>g.Uz,getActivePollers:()=>d.KQ,initTuiAccumulator:()=>g.tb,isDuplicatePrompt:()=>h.gv,isOpenCodeComplete:()=>e.bE,migrateResponsePollerWorktreeIds:()=>d.sR,normalizeCopilotLine:()=>g.IW,normalizePromptForDedup:()=>h.zm,renamePromptHashCacheKey:()=>h.i2,resolveExtractionStartIndex:()=>e.QM,startPolling:()=>d.g8,stopAllPolling:()=>d.fq,stopPolling:()=>d.Et,truncateMessage:()=>f.Sj});var d=c(45146),e=c(60),f=c(82450),g=c(13033),h=c(72457)}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=611,exports.ids=[611,3718],exports.modules={15388:(a,b,c)=>{c.d(b,{RJ:()=>f,SQ:()=>g});var d=c(24455);let e=globalThis.__toolInputNormalizations??(globalThis.__toolInputNormalizations=new Map);function f(a,b,c,g,h,i=Date.now()){e.set((0,d.v7)(a,b,c),{...g,toolName:h,at:i})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},31517:(a,b,c)=>{c.d(b,{DL:()=>j,sD:()=>f});var d=c(2734);let e=(0,c(72626).h)("lib/hooks/stop-history-capture"),f=[150,500,2e3,5e3],g=new Set([d.c]);function h(a){return new Promise(b=>{setTimeout(b,a)})}async function i(a,b,c,d,f,g){let i=Date.now();try{for(let[j,k]of g.entries()){await h(k);let l={};if(await a.captureStructuredHistoryTurn(b.id,c,d,f,l))return e.info("stop-history-capture-deferred-captured",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,elapsedMs:Date.now()-i}),!0;e.debug("stop-history-capture-deferred-open",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,outcome:l.outcome??"unavailable",elapsedMs:Date.now()-i})}return e.info("stop-history-capture-deferred-exhausted",{worktreeId:b.id,cliToolId:c,instanceId:d,attempts:g.length,elapsedMs:Date.now()-i}),!1}catch(a){return e.warn("stop-history-capture-deferred-failed",{worktreeId:b.id,cliToolId:c,instanceId:d,error:a instanceof Error?a.message:String(a)}),!1}}async function j(a,b,d,k={}){try{let j=await Promise.all([c.e(1503),c.e(8791),c.e(1719),c.e(2119),c.e(2445),c.e(252),c.e(8800),c.e(7905),c.e(9731),c.e(8728),c.e(
|
|
1
|
+
"use strict";exports.id=611,exports.ids=[611,3718],exports.modules={15388:(a,b,c)=>{c.d(b,{RJ:()=>f,SQ:()=>g});var d=c(24455);let e=globalThis.__toolInputNormalizations??(globalThis.__toolInputNormalizations=new Map);function f(a,b,c,g,h,i=Date.now()){e.set((0,d.v7)(a,b,c),{...g,toolName:h,at:i})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},31517:(a,b,c)=>{c.d(b,{DL:()=>j,sD:()=>f});var d=c(2734);let e=(0,c(72626).h)("lib/hooks/stop-history-capture"),f=[150,500,2e3,5e3],g=new Set([d.c]);function h(a){return new Promise(b=>{setTimeout(b,a)})}async function i(a,b,c,d,f,g){let i=Date.now();try{for(let[j,k]of g.entries()){await h(k);let l={};if(await a.captureStructuredHistoryTurn(b.id,c,d,f,l))return e.info("stop-history-capture-deferred-captured",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,elapsedMs:Date.now()-i}),!0;e.debug("stop-history-capture-deferred-open",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,outcome:l.outcome??"unavailable",elapsedMs:Date.now()-i})}return e.info("stop-history-capture-deferred-exhausted",{worktreeId:b.id,cliToolId:c,instanceId:d,attempts:g.length,elapsedMs:Date.now()-i}),!1}catch(a){return e.warn("stop-history-capture-deferred-failed",{worktreeId:b.id,cliToolId:c,instanceId:d,error:a instanceof Error?a.message:String(a)}),!1}}async function j(a,b,d,k={}){try{let j=await Promise.all([c.e(1503),c.e(8791),c.e(1719),c.e(2119),c.e(2445),c.e(252),c.e(8800),c.e(7905),c.e(9731),c.e(8728),c.e(8918)]).then(c.bind(c,28918));if(!j.isPullTranscriptHistory(b))return{status:"unavailable"};let l={worktreePath:a.path,transcriptPathHint:null},m={};if(await j.captureStructuredHistoryTurn(a.id,b,d,l,m))return{status:"captured"};let n=()=>"not_yet_closed"===m.outcome?Promise.resolve(!0):j.hasStructuredHistoryTranscript(a.id,b,d,l);if(g.has(b)){let c=k.deferredDelaysMs??f;if(0===c.length||!await n())return{status:"unavailable"};let g=i(j,a,b,d,l,c);return e.info("stop-history-capture-deferred",{worktreeId:a.id,cliToolId:b,instanceId:d,delaysMs:c}),{status:"deferred",deferred:g}}let o=k.retryDelayMs??500;if(o<=0||!await n())return{status:"unavailable"};let p=Math.max(1,k.maxAttempts??3);for(let c=2;c<=p;c+=1){await h(o);let f={},g=await j.captureStructuredHistoryTurn(a.id,b,d,l,f);if(e.debug("stop-history-capture-retried",{worktreeId:a.id,cliToolId:b,instanceId:d,attempt:c,maxAttempts:p,captured:g,outcome:f.outcome??"unavailable"}),g)return{status:"captured"}}return{status:"unavailable"}}catch(c){return e.warn("stop-history-capture-failed",{worktreeId:a.id,cliToolId:b,instanceId:d,error:c instanceof Error?c.message:String(c)}),{status:"unavailable"}}}},52277:(a,b,c)=>{c.d(b,{ZS:()=>f,gb:()=>g});var d=c(24455);let e=globalThis.__autoYesPolicySuppressions??(globalThis.__autoYesPolicySuppressions=new Map);function f(a,b,c,g,h=Date.now()){e.set((0,d.v7)(a,b,c),{...g,at:h})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},52767:(a,b,c)=>{c.d(b,{r:()=>i,g:()=>h});var d=c(48524),e=c(87009),f=c(72626);let g=(0,f.h)("lib/tasks/task-transition-service");function h(a,b,c,f){let h=a.transaction(()=>{let g=(0,d.gg)(a,b);if(!g)return null;let h=g.status,i=function(a,b){switch(a){case"pending":switch(b){case"message_sent":return"running";case"send_failed":case"cancel":return"cancelled";default:return null}case"running":switch(b){case"prompt_detected":return"waiting_input";case"agent_idle":return"running";case"verify_started":return"verifying";case"send_failed":return"failed";case"cancel":return"cancelled";default:return null}case"waiting_input":switch(b){case"prompt_answered_auto":case"prompt_answered_human":case"agent_idle":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}case"verifying":switch(b){case"verify_passed":return"succeeded";case"verify_failed":return"failed";case"verify_not_started":return"not_started";case"cancel":return"cancelled";default:return null}case"failed":case"not_started":switch(b){case"message_sent":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}default:return null}}(h,c),j=Date.now(),k=(0,e.P)(a,{taskId:b,event:c,fromStatus:h,toStatus:i,payload:f,createdAt:j});return null===i?{task:g,fromStatus:h,toStatus:null,eventId:k}:{task:(0,d.xZ)(a,b,i,f?.runId===void 0?{}:{lastVerificationRunId:f.runId}),fromStatus:h,toStatus:i,eventId:k}})();return null===h?g.warn("task-event-unknown-task",{taskId:b,event:c}):null===h.toStatus&&g.warn("task-event-rejected",{taskId:b,event:c,fromStatus:h.fromStatus}),h}function i(a,b,c,e,f,i){try{let g=(0,d.MH)(a,b,c,e);if(!g)return null;return h(a,g.id,f,i)}catch(a){return g.warn("task-event-failed",{worktreeId:b,cliToolId:c,instanceId:e,event:f,error:a instanceof Error?a.message:String(a)}),null}}},75498:(a,b,c)=>{c.d(b,{Lj:()=>f,Tb:()=>e,sD:()=>g});var d=c(68901);let e=2e4;function f(a,b,c){if(!c)return null;if("off"===c.mode)return{reason:"mode-off"};let f=function(a,b){if(0===b.length)return{outcome:"no-match"};let c=a.map(a=>a.length>e?a.slice(0,e):a);for(let a of b){if(a.length>200||!(0,d.P0)(a).valid)return{outcome:"unusable",pattern:a};let b=new RegExp(a);for(let e of c){let c=(0,d.eJ)(b,e);if(null===c)return{outcome:"unusable",pattern:a};if(c)return{outcome:"match",pattern:a}}}return{outcome:"no-match"}}(b,c.denyPatterns);return"match"===f.outcome?{reason:"deny-pattern",pattern:f.pattern}:"unusable"===f.outcome?{reason:"deny-pattern-unusable",pattern:f.pattern}:"safe"===c.mode?"yes_no"===a?null:{reason:"type-not-allowed"}:"allow-listed"===c.mode?c.allowPromptTypes.includes(a)?null:{reason:"type-not-allowed"}:null}function g(a,b){let c=function(a){if("yes_no"===a.type)return"y";if("multiple_choice"===a.type){if(!0===a.multiSelect)return null;let b=a.options.find(a=>a.isDefault)??a.options[0];return!b||b.requiresTextInput?null:b.number.toString()}return null}(a);if(null===c)return{answer:null,suppressedBy:null};let d=f(a.type,function(a){let b=[a.question];if(a.approvalTarget&&b.push(a.approvalTarget),"multiple_choice"===a.type)for(let c of a.options)b.push(c.label);else b.push(...a.options);return b}(a),b);return d?{answer:null,suppressedBy:d.reason,pattern:d.pattern}:{answer:c,suppressedBy:null}}},77244:(a,b,c)=>{c.d(b,{FD:()=>h,Wo:()=>e,fA:()=>g});var d=c(24455);let e=8e3,f=globalThis.__antigravityPermissionReceipts??(globalThis.__antigravityPermissionReceipts=new Map);function g(a,b,c,e,h=Date.now()){if(null!==e){for(let[a,b]of f)h-b.at>36e5&&f.delete(a);f.set((0,d.v7)(a,b,c),{toolName:e,at:h})}}function h(a,b,c,g,i=Date.now()){let j=f.get((0,d.v7)(a,b,c));return!!j&&(void 0===g||j.toolName===g)&&i-j.at<=e}},91318:(a,b,c)=>{c.d(b,{ie:()=>j,n:()=>i});var d=c(56791),e=c(88807),f=c(24455);let g=(0,c(72626).h)("auto-yes-policy"),h=new Map;function i(a,b,c){let i=c??b,j=(0,f.v7)(a,b,i),k=Date.now(),l=h.get(j);if(l&&l.expiresAt>k)return l.policy;let m=function(a,b,c){try{let f=(0,d.getActiveTaskForInstance)((0,e.getDbInstance)(),a,b,c);if(!f)return null;return f.contract.autoYes}catch(d){return g.warn("policy-lookup-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)}),null}}(a,b,i);return h.size>=200&&function(a){for(let[b,c]of h.entries())c.expiresAt<=a&&h.delete(b)}(k),h.set(j,{policy:m,expiresAt:k+5e3}),m}function j(a){h.delete(a)}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=6130,exports.ids=[6130],exports.modules={26838:(a,b,c)=>{c.d(b,{E2:()=>
|
|
1
|
+
"use strict";exports.id=6130,exports.ids=[6130],exports.modules={26838:(a,b,c)=>{c.d(b,{E2:()=>p,MQ:()=>l,Mj:()=>n,Sw:()=>m,lX:()=>q});var d=c(29021),e=c(33873),f=c(54325),g=c(90164);let h=/^v?\d+\.\d+\.\d+$/,i=/^[a-zA-Z0-9.\-\s_v]+$/,j=[".next","required-server-files.json"],k=globalThis.__versionCheckCache??(globalThis.__versionCheckCache={result:null,fetchedAt:0,rateLimitResetAt:null});function l(a,b){if(!h.test(a)||!h.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[g,i,j]=c(b);return g!==d?g>d:i!==e?i>e:j>f}function m(){return function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),"package.json"),"utf-8"),b=JSON.parse(a);if("commandmate"===b.name&&"string"==typeof b.version&&b.version.length>0)return b.version;return null}catch{return null}}()??"0.44.0"}function n(){return m()}let o=null;function p(a){let b=o??=function(){{let a=function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),...j),"utf-8"),b=JSON.parse(a),c=b.config?.env?.NEXT_PUBLIC_APP_VERSION;if("string"==typeof c&&c.length>0)return c;return null}catch{return null}}();if(a)return a}return"0.44.0"}();return(0,f.LE)(b,a)?{serverVersion:b,clientVersion:a}:null}async function q(){try{var a,b,c;if(null!==k.result&&Date.now()-k.fetchedAt<36e5||k.rateLimitResetAt&&(!(Date.now()>=k.rateLimitResetAt)||(k.rateLimitResetAt=null,0)))return k.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${n()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?k.rateLimitResetAt=1e3*parseInt(b,10):k.rateLimitResetAt=Date.now()+36e5}(d),k.result;if(!d.ok)return k.result;let e=await d.json(),f=n(),h=e.tag_name.replace(/^v/,""),j={hasUpdate:l(f,e.tag_name),currentVersion:f,latestVersion:h,releaseUrl:(a=e.html_url).startsWith(g.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,i.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return k.result=j,k.fetchedAt=Date.now(),j}catch{return k.result}}},54325:(a,b,c)=>{c.d(b,{LE:()=>f,Oo:()=>e,ST:()=>d,T4:()=>k,dz:()=>j,r9:()=>h,rx:()=>i,rz:()=>g});let d="client_version",e="version_mismatch";function f(a,b){return!!a&&!!b&&"0.0.0"!==a&&"0.0.0"!==b&&a!==b}let g="chat_turn_progress",h=1e3;function i(a,b=65536){return b<=0?{body:"",truncated:a.length>0}:a.length<=b?{body:a,truncated:!1}:{body:a.slice(a.length-b),truncated:!0}}let j="messages_invalidated",k="model_changed"},88573:(a,b,c)=>{c.d(b,{Lw:()=>s});let d="https://raw.githubusercontent.com/Kewton/commandmate-skills/main/catalog/v1/catalog.json",e=[d],f=/^[A-Za-z0-9/+=_."-]{1,128}$/;var g=c(72626),h=c(13075);let i=(0,g.h)("lib/skills/catalog-client"),j={FETCH_FAILED:"SKILL_CATALOG_FETCH_FAILED",RATE_LIMITED:"SKILL_CATALOG_RATE_LIMITED",OVERSIZED:"SKILL_CATALOG_OVERSIZED",MALFORMED:"SKILL_CATALOG_MALFORMED",INVALID_SCHEMA:"SKILL_CATALOG_INVALID_SCHEMA"},k=globalThis.__skillCatalogCache??={catalog:null,validatedAt:0,confirmedAt:0,etag:null,revision:null,rateLimitResetAt:null,inflight:null};class l extends Error{}let m={[j.FETCH_FAILED]:"The Skill Catalog could not be retrieved.",[j.RATE_LIMITED]:"The Skill Catalog origin is rate limiting requests.",[j.OVERSIZED]:"The Skill Catalog response exceeded the allowed size.",[j.MALFORMED]:"The Skill Catalog response was not valid JSON.",[j.INVALID_SCHEMA]:"The Skill Catalog response did not match the supported Catalog schema."};function n(a){return new Date(a).toISOString()}function o(a,b,c){return{catalog:a,fetchedAt:n(k.validatedAt),revalidatedAt:n(k.confirmedAt),state:b,stale:"stale"===b,offline:"stale"===b,staleReason:c,source:{repository:"Kewton/commandmate-skills",ref:"main",revision:k.revision}}}function p(a,b=[]){return k.catalog?{ok:!0,snapshot:o(k.catalog,"stale",a)}:{ok:!1,failure:{code:a,message:m[a],errors:b}}}async function q(a,b){let c=a.headers.get("Content-Length");if(null!==c){let a=Number(c);if(!Number.isFinite(a)||a<0||a>b)throw new l("content-length out of bounds")}let d=a.body;if(!d||"function"!=typeof d.getReader){let c=await a.text();if(new TextEncoder().encode(c).length>b)throw new l("body exceeded size cap");return c}let e=d.getReader(),f=[],g=0;for(;;){let{done:a,value:c}=await e.read();if(a)break;if(c){if((g+=c.byteLength)>b)throw await e.cancel(),new l("body exceeded size cap");f.push(c)}}let h=new Uint8Array(g),i=0;for(let a of f)h.set(a,i),i+=a.byteLength;return new TextDecoder("utf-8").decode(h)}async function r(a){let b,c,g;if(!e.includes(d))return p(j.FETCH_FAILED);let m={Accept:"application/json","User-Agent":`CommandMate/${a}`};null!==k.catalog&&null!==k.etag&&(m["If-None-Match"]=k.etag);try{b=await fetch(d,{headers:m,cache:"no-store",signal:AbortSignal.timeout(5e3)})}catch{return i.warn("catalog-fetch-failed",{reason:j.FETCH_FAILED}),p(j.FETCH_FAILED)}if(304===b.status&&null!==k.catalog)return k.confirmedAt=Date.now(),{ok:!0,snapshot:o(k.catalog,"revalidated",null)};if(403===b.status||429===b.status)return!function(a){let b=Date.now(),c=b+864e5,d=a.headers.get("X-RateLimit-Reset");if(null!==d){let a=Number(d);if(Number.isFinite(a)&&a>0){k.rateLimitResetAt=Math.min(1e3*a,c);return}}let e=a.headers.get("Retry-After");if(null!==e){let a=Number(e);if(Number.isFinite(a)&&a>0){k.rateLimitResetAt=Math.min(b+1e3*a,c);return}}k.rateLimitResetAt=b+36e5}(b),i.warn("catalog-rate-limited",{status:b.status}),p(j.RATE_LIMITED);if(!b.ok)return i.warn("catalog-fetch-failed",{status:b.status}),p(j.FETCH_FAILED);try{c=await q(b,1048576)}catch(b){let a=b instanceof l?j.OVERSIZED:j.FETCH_FAILED;return i.warn("catalog-body-rejected",{reason:a}),p(a)}try{g=JSON.parse(c)}catch{return i.warn("catalog-malformed",{reason:j.MALFORMED}),p(j.MALFORMED)}let n=(0,h.JJ)(g);if(!n.ok)return i.warn("catalog-invalid-schema",{errorCount:n.errors.length}),p(j.INVALID_SCHEMA,n.errors);let r=Date.now();return k.catalog=n.value,k.validatedAt=r,k.confirmedAt=r,k.etag=b.headers.get("ETag"),k.revision=function(a){if(null===a)return null;let b=a.trim();return f.test(b)?b:null}(k.etag),{ok:!0,snapshot:o(n.value,"fresh",null)}}async function s(a={}){let{hostVersion:b="0.0.0",forceRevalidate:c=!1}=a;return!c&&null!==k.catalog&&Date.now()-k.confirmedAt<9e5&&null!==k.catalog?{ok:!0,snapshot:o(k.catalog,"cached",null)}:null!==k.rateLimitResetAt&&(!(Date.now()>=k.rateLimitResetAt)||(k.rateLimitResetAt=null,0))?p(j.RATE_LIMITED):(null===k.inflight&&(k.inflight=r(b).finally(()=>{k.inflight=null})),k.inflight)}},90164:(a,b,c)=>{c.d(b,{Dk:()=>e,kD:()=>f});let d="https://github.com/Kewton/CommandMate",e=`${d}/releases/`,f=`${d}/blob/main/docs/security-guide.md`}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=6285,exports.ids=[6285],exports.modules={26285:a=>{a.exports=JSON.parse('{"title":"スケジュール","executionLogs":"実行ログ","tabs":{"schedules":"スケジュール","logs":"ログ"},"emptyState":{"title":"スケジュールはまだありません","description":"cron スケジュールでエージェントを自動実行します。","createButton":"新規スケジュール作成","manualToggle":"または CMATE.md を直接編集"},"noSchedules":"スケジュールが設定されていません。CMATE.mdにSchedulesセクションを追加してください。","noSchedulesTitle":"スケジュールが設定されていません","noSchedulesStep1":"Files タブに切り替えてください","noSchedulesStep2":"ツールバーの CMATE ボタンをクリックして CMATE.md を作成","noSchedulesStep3":"Schedules テーブルを編集(Name, Cron, Message, CLI Tool, Enabled, Permission)","noSchedulesStep4":"再度 CMATE をクリックしてバリデーション","noLogs":"実行ログはまだありません。","status":{"running":"実行中","completed":"完了","failed":"失敗","timeout":"タイムアウト","cancelled":"キャンセル"},"enabled":"有効","disabled":"無効","activeSchedulesTitle":"Active Schedules","activeSchedulesDescription":"DB設定ではなく、現在メモリ上で登録されている cron state です。","noActiveSchedules":"現在メモリ上で登録されている schedule はありません。","nextRun":"次回実行","agentLabel":"Agent","activeState":{"active":"稼働中","inactive":"停止","executing":"実行中"},"lastRun":"最終実行","cron":"Cron式","exitCode":"終了コード","noOutput":"(出力なし)","message":"メッセージ","response":"レスポンス","unknownSchedule":"(削除済みスケジュール)","retry":"再試行","loading":"読み込み中...","notes":"メモ","logs":"Schedules","notesAndLogs":"CMATE","agentTab":"Agent","agentSettings":"エージェント設定","selectAgents":"ターミナルヘッダーのタブに表示するエージェントを2つ選択してください。","agentSaveSuccess":"エージェント設定を保存しました。","agentSaveError":"エージェント設定の保存に失敗しました。","agentInstances":"エージェントインスタンス","agentInstancesDescription":"ターミナルヘッダーのタブに表示するエージェントを管理します。同じツールのインスタンスを複数追加し、それぞれに別名を付けられます。","agentInstanceAliasLabel":"別名","agentInstanceAliasPlaceholder":"表示名","agentInstanceBaseTool":"ベースツール","agentInstanceAdd":"インスタンスを追加","agentInstanceDelete":"インスタンスを削除","agentInstanceMoveUp":"上へ移動","agentInstanceMoveDown":"下へ移動","agentInstanceActions":"インスタンス操作","memoMoveUp":"上へ移動","memoMoveDown":"下へ移動","agentInstanceMax":"インスタンスは最大{max}個まで追加できます。","agentInstanceMin":"インスタンスは最低{min}個必要です。","agentInstanceSaveError":"エージェントインスタンスの保存に失敗しました。","agentDefaults":"既定として使う","agentDefaultsDescription":"いま並んでいるツールの順番を、新しいブランチの既定にしたり、このリポジトリのまだ触っていないブランチにまとめて適用したりできます。同じツールのインスタンスは 1 つとして数えます。","agentDefaultsSetDefault":"この構成を既定にする","agentDefaultsSaved":"既定として保存しました。設定画面の「新規ブランチの既定エージェント」に反映されます。","agentDefaultsSaveError":"既定の保存に失敗しました。","agentDefaultsApply":"未変更のブランチにも適用する","agentDefaultsApplyScope":"適用先はこのリポジトリのブランチだけです。他のリポジトリと、手でエージェント構成を変更したブランチは変更されません。","agentDefaultsEligible":"適用対象: このリポジトリの {count} ブランチ","agentDefaultsEligibleUnknown":"適用対象: 不明","agentDefaultsRepositoryLabel":"対象リポジトリ: {repository}","agentDefaultsRepoDeclared":"このリポジトリは .commandmate/agents.yaml でエージェントを宣言しています。一括適用はその宣言を恒久的に上書きしてしまうため、ここでは無効です。変更はファイル側で行ってください。","agentDefaultsApplyConfirm":"このリポジトリの未変更の {count} ブランチに {agents} を適用します。他のリポジトリと、手でエージェント構成を変更したブランチは変更されません。","agentDefaultsApplied":"{count} ブランチに適用しました。","agentDefaultsApplyError":"ブランチへの適用に失敗しました。","agentDefaultsCountError":"適用対象の件数を読み込めませんでした。","agentDefaultsRetry":"件数を再読み込み","agentDefaultsInvalidRoster":"既定にできるのは {min} 〜 {max} 種類のツールです。ツールの種類を増やすか減らしてください。","mobileVisibleInstances":"この端末に表示","mobileVisibleInstancesDescription":"この端末でタブとして表示するインスタンスを選択します。この選択は端末ごとに保存され、共有のインスタンス一覧は変更されません。","mobileVisibleInstanceMin":"この端末には最低1つのインスタンスを表示しておく必要があります。","vibeLocalModel":"Ollamaモデル","vibeLocalModelDefault":"デフォルト","vibeLocalContextWindow":"コンテキストウィンドウ","vibeLocalContextWindowDefault":"デフォルト(自動)","ollamaNotAvailable":"Ollamaが起動していません。モデルを選択するにはOllamaを起動してください。","cmateCreated":"CMATE.mdをテンプレートで作成しました。スケジュールを設定してください。","cmateValidation":{"noSchedulesSection":"CMATE.mdにSchedulesセクションがありません。","valid":"{count}件のスケジュールが正常に検証されました。","errors":"{errorCount}件の検証エラー: {details}","failed":"CMATE.mdの処理に失敗しました。"},"edit":{"newSchedule":"新規スケジュール","titleCreate":"新規スケジュール","titleEdit":"スケジュールの編集","sectionBasic":"基本情報","sectionAdvanced":"詳細設定","sectionMessage":"メッセージ","name":"名前","namePlaceholder":"daily-review","cron":"Cron式","cronPlaceholder":"0 9 * * *","cronPreset":"プリセット","cronPresetHourly":"毎時 (0 */1 * * *)","cronPresetDaily9":"毎日9時 (0 9 * * *)","cronPresetWeeklyMon9":"毎週月曜9時 (0 9 * * 1)","cronPresetCustom":"カスタム","askAiCron":"AIに相談","askAiMessage":"AIに下書きを依頼","askAiHint":"AIチャットにプロンプトを下書きします(自動送信はされません)","aiPrompts":{"cron":"スケジュール実行のタイミングを cron 式で表現したいです。自然言語の要望(例: 「毎週月曜 9 時」)を cron 式に変換し、候補をいくつか提案してください(例: 「毎週月曜 9 時」→ `0 9 * * 1`)。","cronRefine":"スケジュール実行のタイミングを cron 式で表現したいです。現在の入力は {current} です。これを踏まえて、自然言語の要望(例: 「毎週月曜 9 時」)を cron 式に変換し、候補をいくつか提案してください(例: 「毎週月曜 9 時」→ `0 9 * * 1`)。","messageDraft":"このスケジュールで CLI ツールに定期実行させる message(指示プロンプト)を作成したいです。まず用途を私に聞き取り、それを踏まえた message の内容を提案してください。","messageDraftNamed":"スケジュール {name} で CLI ツールに定期実行させる message(指示プロンプト)を作成したいです。まず用途を私に聞き取り、それを踏まえた message の内容を提案してください。"},"cliTool":"CLIツール","model":"モデル","modelPlaceholder":"gpt-4.1","opencodeAgent":"Agent(opencode)","opencodeAgentPlaceholder":"plan","opencodeVariant":"Variant(opencode)","opencodeVariantPlaceholder":"high","opencodeTitle":"セッションタイトル(opencode)","opencodeTitlePlaceholder":"nightly-review","opencodeContinue":"直前のセッションを継続する(--continue)","permission":"権限","commandCodeReadOnlyNote":"command-code の print モードでは、`yolo` 以外を選ぶと edit_file / write_file / shell_command / monitor_command / kill_shell がブロックされ、読み取り専用の実行になります(実行自体は成功として記録されます)。","message":"メッセージ","messagePlaceholder":"README.mdを要約してください","charCount":"{count} / {max}","enabledLabel":"有効","save":"保存","cancel":"キャンセル","edit":"編集","delete":"削除","enable":"有効化","disable":"無効化","confirmDelete":"スケジュール「{name}」を削除しますか?","saveError":"スケジュールの保存に失敗しました。","errorNameRequired":"名前は必須です。","errorNameTooLong":"名前は{max}文字以内で入力してください。","errorNameInvalid":"名前に使用できない文字が含まれています。","errorCronInvalid":"Cron式が不正です。","errorMessageRequired":"メッセージは必須です。","errorMessageTooLong":"メッセージは{max}文字以内で入力してください。","errorModelInvalid":"モデル名が不正です。","errorAgentInvalid":"Agent 名が不正です。","errorVariantInvalid":"Variant 名が不正です。","errorTitleInvalid":"セッションタイトルが不正です。"},"timerTab":"Timer","todoTab":"ToDo","skillsTab":"Skills","verificationTab":"検証","envTab":"環境変数","timer":{"title":"遅延メッセージ","titleCreate":"タイマー作成","createButton":"タイマー作成","newTimer":"新規タイマー","close":"キャンセル","agent":"エージェント","message":"メッセージ","delay":"送信タイミング","register":"タイマー登録","cancel":"キャンセル","noTimers":"タイマーは登録されていません。","maxReached":"ワークツリーあたり最大{max}件です。","registerSuccess":"タイマーを登録しました。","registerError":"タイマーの登録に失敗しました。","cancelSuccess":"タイマーをキャンセルしました。","cancelError":"タイマーのキャンセルに失敗しました。","status":{"pending":"待機中","sending":"送信中","sent":"送信済み","failed":"失敗","cancelled":"キャンセル済み","no_session":"セッション未起動"},"sessionWarning":"セッションが起動していません。タイマー実行時にセッションが起動していない場合、メッセージは送信されません。","minutesShort":"{minutes}分","hoursMinutesShort":"{hours}時間{minutes}分","loadMore":"もっと見る","clearHistory":"履歴クリア","clearConfirm":"送信済み・失敗・キャンセル済みのタイマー履歴をすべて削除しますか?","cleared":"履歴を削除しました({count}件)","detailTitle":"タイマー詳細","statusLabel":"ステータス","scheduledTime":"予定送信時刻","createdTime":"作成時刻","sentTime":"送信時刻","failureReason":"失敗理由"},"memoAdd":"メモを追加","memoRemaining":"残り {count} 件","memoDefaultTitle":"メモ","memoTitlePlaceholder":"メモのタイトル","memoInsertToMessage":"メッセージに挿入","memoCopyContent":"メモの内容をコピー","memoDelete":"メモを削除","memoContentPlaceholder":"メモの内容を入力...","memoLoading":"メモを読み込み中...","memoSearchToggle":"メモを検索","memoEmpty":"メモはまだありません。","memoEmptyHint":"下のボタンから追加できます。","memoNoMatch":"検索条件に一致するメモがありません。","memoSearchLabel":"メモ検索","memoSearchPlaceholder":"検索...","memoSearchInputLabel":"メモを検索","memoSearchPrev":"前の一致(前へ)","memoSearchNext":"次の一致(次へ)","memoSearchClose":"検索を閉じる(閉じる)","opencodeSettings":"opencode 起動設定","opencodeSettingsDescription":"このインスタンスが opencode を起動・送信するときのエージェント/モデル/バリアントを指定します。","opencodeAgent":"エージェント","opencodeModel":"モデル","opencodeVariant":"バリアント(推論の深さ)","opencodeDefault":"opencode のデフォルト","opencodeAgentPlaceholder":"build","opencodeModelPlaceholder":"provider/model","opencodeVariantPlaceholder":"high","opencodeNoVariants":"このモデルにバリアントはありません。","opencodeSettingsOffline":"opencode が起動していないため候補を取得できません。値は直接入力できます(モデルは provider/model 形式)。","opencodeVariantLaunchNote":"エージェントとモデルは次回の起動から反映されます。バリアントは opencode 1.18.22 の TUI に --variant が無いため起動引数では渡せず、CommandMate が送信するプロンプトに適用されます(次のメッセージから反映)。","opencodeSettingsLoadError":"opencode 起動設定の読み込みに失敗しました。","opencodeSettingsSaveError":"opencode 起動設定の保存に失敗しました。"}')}};
|
|
1
|
+
"use strict";exports.id=6285,exports.ids=[6285],exports.modules={26285:a=>{a.exports=JSON.parse('{"title":"スケジュール","executionLogs":"実行ログ","tabs":{"schedules":"スケジュール","logs":"ログ"},"emptyState":{"title":"スケジュールはまだありません","description":"cron スケジュールでエージェントを自動実行します。","createButton":"新規スケジュール作成","manualToggle":"または CMATE.md を直接編集"},"noSchedules":"スケジュールが設定されていません。CMATE.mdにSchedulesセクションを追加してください。","noSchedulesTitle":"スケジュールが設定されていません","noSchedulesStep1":"Files タブに切り替えてください","noSchedulesStep2":"ツールバーの CMATE ボタンをクリックして CMATE.md を作成","noSchedulesStep3":"Schedules テーブルを編集(Name, Cron, Message, CLI Tool, Enabled, Permission)","noSchedulesStep4":"再度 CMATE をクリックしてバリデーション","noLogs":"実行ログはまだありません。","status":{"running":"実行中","completed":"完了","failed":"失敗","timeout":"タイムアウト","cancelled":"キャンセル"},"enabled":"有効","disabled":"無効","activeSchedulesTitle":"Active Schedules","activeSchedulesDescription":"DB設定ではなく、現在メモリ上で登録されている cron state です。","noActiveSchedules":"現在メモリ上で登録されている schedule はありません。","nextRun":"次回実行","agentLabel":"Agent","activeState":{"active":"稼働中","inactive":"停止","executing":"実行中"},"lastRun":"最終実行","cron":"Cron式","exitCode":"終了コード","noOutput":"(出力なし)","message":"メッセージ","response":"レスポンス","unknownSchedule":"(削除済みスケジュール)","retry":"再試行","loading":"読み込み中...","notes":"メモ","logs":"Schedules","notesAndLogs":"CMATE","agentTab":"Agent","agentSettings":"エージェント設定","selectAgents":"ターミナルヘッダーのタブに表示するエージェントを2つ選択してください。","agentSaveSuccess":"エージェント設定を保存しました。","agentSaveError":"エージェント設定の保存に失敗しました。","agentInstances":"エージェントインスタンス","agentInstancesDescription":"ターミナルヘッダーのタブに表示するエージェントを管理します。同じツールのインスタンスを複数追加し、それぞれに別名を付けられます。","agentInstanceAliasLabel":"別名","agentInstanceAliasPlaceholder":"表示名","agentInstanceBaseTool":"ベースツール","agentInstanceAdd":"インスタンスを追加","agentInstanceDelete":"インスタンスを削除","agentInstanceMoveUp":"上へ移動","agentInstanceMoveDown":"下へ移動","agentInstanceActions":"インスタンス操作","memoMoveUp":"上へ移動","memoMoveDown":"下へ移動","agentInstanceMax":"インスタンスは最大{max}個まで追加できます。","agentInstanceMin":"インスタンスは最低{min}個必要です。","agentInstanceSaveError":"エージェントインスタンスの保存に失敗しました。","agentDefaults":"既定として使う","agentDefaultsDescription":"いま並んでいるツールの順番を、新しいブランチの既定にしたり、このリポジトリのまだ触っていないブランチにまとめて適用したりできます。同じツールのインスタンスは 1 つとして数えます。","agentDefaultsSetDefault":"この構成を既定にする","agentDefaultsSaved":"既定として保存しました。設定画面の「新規ブランチの既定エージェント」に反映されます。","agentDefaultsSaveError":"既定の保存に失敗しました。","agentDefaultsApply":"未変更のブランチにも適用する","agentDefaultsApplyScope":"適用先はこのリポジトリのブランチだけです。他のリポジトリと、手でエージェント構成を変更したブランチは変更されません。","agentDefaultsEligible":"適用対象: このリポジトリの {count} ブランチ","agentDefaultsEligibleUnknown":"適用対象: 不明","agentDefaultsRepositoryLabel":"対象リポジトリ: {repository}","agentDefaultsRepoDeclared":"このリポジトリは .commandmate/agents.yaml でエージェントを宣言しています。一括適用はその宣言を恒久的に上書きしてしまうため、ここでは無効です。変更はファイル側で行ってください。","agentDefaultsApplyConfirm":"このリポジトリの未変更の {count} ブランチに {agents} を適用します。他のリポジトリと、手でエージェント構成を変更したブランチは変更されません。","agentDefaultsApplied":"{count} ブランチに適用しました。","agentDefaultsApplyError":"ブランチへの適用に失敗しました。","agentDefaultsCountError":"適用対象の件数を読み込めませんでした。","agentDefaultsRetry":"件数を再読み込み","agentDefaultsInvalidRoster":"既定にできるのは {min} 〜 {max} 種類のツールです。ツールの種類を増やすか減らしてください。","mobileVisibleInstances":"この端末に表示","mobileVisibleInstancesDescription":"この端末でタブとして表示するインスタンスを選択します。この選択は端末ごとに保存され、共有のインスタンス一覧は変更されません。","mobileVisibleInstanceMin":"この端末には最低1つのインスタンスを表示しておく必要があります。","vibeLocalModel":"Ollamaモデル","vibeLocalModelDefault":"デフォルト","vibeLocalContextWindow":"コンテキストウィンドウ","vibeLocalContextWindowDefault":"デフォルト(自動)","ollamaNotAvailable":"Ollamaが起動していません。モデルを選択するにはOllamaを起動してください。","cmateCreated":"CMATE.mdをテンプレートで作成しました。スケジュールを設定してください。","cmateValidation":{"noSchedulesSection":"CMATE.mdにSchedulesセクションがありません。","valid":"{count}件のスケジュールが正常に検証されました。","errors":"{errorCount}件の検証エラー: {details}","failed":"CMATE.mdの処理に失敗しました。"},"edit":{"newSchedule":"新規スケジュール","titleCreate":"新規スケジュール","titleEdit":"スケジュールの編集","sectionBasic":"基本情報","sectionAdvanced":"詳細設定","sectionMessage":"メッセージ","name":"名前","namePlaceholder":"daily-review","cron":"Cron式","cronPlaceholder":"0 9 * * *","cronPreset":"プリセット","cronPresetHourly":"毎時 (0 */1 * * *)","cronPresetDaily9":"毎日9時 (0 9 * * *)","cronPresetWeeklyMon9":"毎週月曜9時 (0 9 * * 1)","cronPresetCustom":"カスタム","askAiCron":"AIに相談","askAiMessage":"AIに下書きを依頼","askAiHint":"AIチャットにプロンプトを下書きします(自動送信はされません)","aiPrompts":{"cron":"スケジュール実行のタイミングを cron 式で表現したいです。自然言語の要望(例: 「毎週月曜 9 時」)を cron 式に変換し、候補をいくつか提案してください(例: 「毎週月曜 9 時」→ `0 9 * * 1`)。","cronRefine":"スケジュール実行のタイミングを cron 式で表現したいです。現在の入力は {current} です。これを踏まえて、自然言語の要望(例: 「毎週月曜 9 時」)を cron 式に変換し、候補をいくつか提案してください(例: 「毎週月曜 9 時」→ `0 9 * * 1`)。","messageDraft":"このスケジュールで CLI ツールに定期実行させる message(指示プロンプト)を作成したいです。まず用途を私に聞き取り、それを踏まえた message の内容を提案してください。","messageDraftNamed":"スケジュール {name} で CLI ツールに定期実行させる message(指示プロンプト)を作成したいです。まず用途を私に聞き取り、それを踏まえた message の内容を提案してください。"},"cliTool":"CLIツール","model":"モデル","modelPlaceholder":"gpt-4.1","opencodeAgent":"Agent(opencode)","opencodeAgentPlaceholder":"plan","opencodeVariant":"Variant(opencode)","opencodeVariantPlaceholder":"high","opencodeTitle":"セッションタイトル(opencode)","opencodeTitlePlaceholder":"nightly-review","opencodeContinue":"直前のセッションを継続する(--continue)","permission":"権限","commandCodeReadOnlyNote":"command-code の print モードでは、`yolo` 以外を選ぶと edit_file / write_file / shell_command / monitor_command / kill_shell がブロックされ、読み取り専用の実行になります(実行自体は成功として記録されます)。","message":"メッセージ","messagePlaceholder":"README.mdを要約してください","charCount":"{count} / {max}","enabledLabel":"有効","save":"保存","cancel":"キャンセル","edit":"編集","delete":"削除","enable":"有効化","disable":"無効化","confirmDelete":"スケジュール「{name}」を削除しますか?","saveError":"スケジュールの保存に失敗しました。","errorNameRequired":"名前は必須です。","errorNameTooLong":"名前は{max}文字以内で入力してください。","errorNameInvalid":"名前に使用できない文字が含まれています。","errorCronInvalid":"Cron式が不正です。","errorMessageRequired":"メッセージは必須です。","errorMessageTooLong":"メッセージは{max}文字以内で入力してください。","errorModelInvalid":"モデル名が不正です。","errorAgentInvalid":"Agent 名が不正です。","errorVariantInvalid":"Variant 名が不正です。","errorVariantNeedsModel":"OpenCode V2 では Variant は Model と一緒に指定してください(-m <provider/model>#<variant> として渡します)。","errorTitleInvalid":"セッションタイトルが不正です。"},"timerTab":"Timer","todoTab":"ToDo","skillsTab":"Skills","verificationTab":"検証","envTab":"環境変数","timer":{"title":"遅延メッセージ","titleCreate":"タイマー作成","createButton":"タイマー作成","newTimer":"新規タイマー","close":"キャンセル","agent":"エージェント","message":"メッセージ","delay":"送信タイミング","register":"タイマー登録","cancel":"キャンセル","noTimers":"タイマーは登録されていません。","maxReached":"ワークツリーあたり最大{max}件です。","registerSuccess":"タイマーを登録しました。","registerError":"タイマーの登録に失敗しました。","cancelSuccess":"タイマーをキャンセルしました。","cancelError":"タイマーのキャンセルに失敗しました。","status":{"pending":"待機中","sending":"送信中","sent":"送信済み","failed":"失敗","cancelled":"キャンセル済み","no_session":"セッション未起動"},"sessionWarning":"セッションが起動していません。タイマー実行時にセッションが起動していない場合、メッセージは送信されません。","minutesShort":"{minutes}分","hoursMinutesShort":"{hours}時間{minutes}分","loadMore":"もっと見る","clearHistory":"履歴クリア","clearConfirm":"送信済み・失敗・キャンセル済みのタイマー履歴をすべて削除しますか?","cleared":"履歴を削除しました({count}件)","detailTitle":"タイマー詳細","statusLabel":"ステータス","scheduledTime":"予定送信時刻","createdTime":"作成時刻","sentTime":"送信時刻","failureReason":"失敗理由"},"memoAdd":"メモを追加","memoRemaining":"残り {count} 件","memoDefaultTitle":"メモ","memoTitlePlaceholder":"メモのタイトル","memoInsertToMessage":"メッセージに挿入","memoCopyContent":"メモの内容をコピー","memoDelete":"メモを削除","memoContentPlaceholder":"メモの内容を入力...","memoLoading":"メモを読み込み中...","memoSearchToggle":"メモを検索","memoEmpty":"メモはまだありません。","memoEmptyHint":"下のボタンから追加できます。","memoNoMatch":"検索条件に一致するメモがありません。","memoSearchLabel":"メモ検索","memoSearchPlaceholder":"検索...","memoSearchInputLabel":"メモを検索","memoSearchPrev":"前の一致(前へ)","memoSearchNext":"次の一致(次へ)","memoSearchClose":"検索を閉じる(閉じる)","opencodeSettings":"opencode 起動設定","opencodeSettingsDescription":"このインスタンスが opencode を起動・送信するときのエージェント/モデル/バリアントを指定します。","opencodeAgent":"エージェント","opencodeModel":"モデル","opencodeVariant":"バリアント(推論の深さ)","opencodeDefault":"opencode のデフォルト","opencodeAgentPlaceholder":"build","opencodeModelPlaceholder":"provider/model","opencodeVariantPlaceholder":"high","opencodeNoVariants":"このモデルにバリアントはありません。","opencodeSettingsOffline":"opencode が起動していないため候補を取得できません。値は直接入力できます(モデルは provider/model 形式)。","opencodeVariantLaunchNote":"エージェントとモデルは次回の起動から反映されます。バリアントは opencode 1.18.22 の TUI に --variant が無いため起動引数では渡せず、CommandMate が送信するプロンプトに適用されます(次のメッセージから反映)。","opencodeSettingsLoadError":"opencode 起動設定の読み込みに失敗しました。","opencodeSettingsSaveError":"opencode 起動設定の保存に失敗しました。"}')}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=6401,exports.ids=[6401],exports.modules={20419:(a,b,c)=>{c.r(b),c.d(b,{default:()=>g});var d=c(75338),e=c(93045),f=c(27289);async function g({children:a,params:b}){let{id:c}=await b,g=(0,f.z)(c);return g!==c&&(0,e.permanentRedirect)(`/worktrees/${encodeURIComponent(g)}`),(0,d.jsx)(d.Fragment,{children:a})}},25799:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(82831),e=c(43740),f=c(29305),g=c(61981),h=c(26906),i=c(69168);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},27289:(a,b,c)=>{c.d(b,{t:()=>j,z:()=>i});var d=c(10641),e=c(88807),f=c(56791),g=c(95506),h=c(66007);function i(a){if(!a)return a;try{if(!(0,h.h6)(a))return a;let b=(0,e.getDbInstance)();return(0,g.l0)(b,a)??a}catch{return a}}function j(a){if(!(0,h.h6)(a))return d.NextResponse.json({error:"Invalid worktree ID format"},{status:400});let b=(0,e.getDbInstance)(),c=(0,f.getWorktreeById)(b,i(a));return c||d.NextResponse.json({error:"Worktree not found"},{status:404})}},29088:(a,b,c)=>{function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},47614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getRedirectError:function(){return g},getRedirectStatusCodeFromError:function(){return l},getRedirectTypeFromError:function(){return k},getURLFromRedirectError:function(){return j},permanentRedirect:function(){return i},redirect:function(){return h}});let d=c(91203),e=c(92781),f=c(19121).actionAsyncStorage;function g(a,b,c){void 0===c&&(c=d.RedirectStatusCode.TemporaryRedirect);let f=Object.defineProperty(Error(e.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return f.digest=e.REDIRECT_ERROR_CODE+";"+b+";"+a+";"+c+";",f}function h(a,b){var c;throw null!=b||(b=(null==f||null==(c=f.getStore())?void 0:c.isAction)?e.RedirectType.push:e.RedirectType.replace),g(a,b,d.RedirectStatusCode.TemporaryRedirect)}function i(a,b){throw void 0===b&&(b=e.RedirectType.replace),g(a,b,d.RedirectStatusCode.PermanentRedirect)}function j(a){return(0,e.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function k(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function l(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},56791:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>d.ks,ACTIVE_TASK_STATUSES:()=>d.EL,AgentInstanceLimitError:()=>d.AC,CURRENT_SCHEMA_VERSION:()=>f.FT,DEFAULT_RUN_HISTORY_LIMIT:()=>d.Tu,InvalidAgentInstanceError:()=>d.ug,MAX_DISABLED_REPOSITORIES:()=>h.nc,MAX_RUN_HISTORY_DAYS:()=>d.eP,MAX_RUN_HISTORY_LIMIT:()=>d.mg,MemoDbError:()=>d.lm,NEW_SUBSCRIPTION_DEFAULTS:()=>d.s6,PUSH_DEFAULTS_VERSION:()=>d.VP,RepositoryDbError:()=>h.j8,TASK_STATUSES:()=>d.Hi,TERMINAL_TASK_STATUSES:()=>d.sA,VERIFICATION_GATE_SOURCES:()=>d.Dx,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,findMessageByRequestId:()=>d.Ow,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLegacyDbPaths:()=>q,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,pushSubscriptionNeedsDefaultsNotice:()=>d.Zj,recomputeLastUserMessage:()=>d.jp,recordAnsweredPrompt:()=>d.pG,recordWorktreeAlias:()=>d.xJ,recoverStuckSendingTimers:()=>d.Xm,registerAndFilterRepositories:()=>h.$G,removeAgentInstance:()=>d.NU,reorderMemos:()=>d.nQ,reorderWorktreeTodos:()=>d.yb,resolveAndValidatePath:()=>p,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.PP,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(683),e=c(88807),f=c(67469),g=c(20416),h=c(10406),i=c(29021),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c(7956);let o=(0,c(72626).h)("db-migration-path");function p(a,b){try{if(!j().existsSync(a))return null;let c=j().realpathSync(a);if((0,n.fW)(c))return o.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return o.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function q(){let a=[];a.push(l().join(process.cwd(),"data","db.sqlite")),a.push(l().join(process.cwd(),"data","cm.db")),a.push(l().join((0,m.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=l().resolve(b);(0,n.fW)(c)?o.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{o.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function r(a){let b=l().resolve(a);if((0,n.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(j().existsSync(a)){let b=p(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of q()){let c=p(a,"legacy path");if(!c)continue;let d=`${c}.bak`;j().copyFileSync(c,d),j().chmodSync(d,384);let e=l().dirname(b);return j().existsSync(e)||j().mkdirSync(e,{recursive:!0,mode:448}),j().copyFileSync(c,b),o.info(`[Migration] Database migrated from ${c} to ${b}`),o.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},57387:(a,b,c)=>{c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(43084);function f(){return(0,d.jsx)(e.k,{})}},64404:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return e}});let d=""+c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},64712:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(25799).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},67837:(a,b,c)=>{function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},93045:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=c(47614),e=c(92781),f=c(64404),g=c(67837),h=c(29088),i=c(64712);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)}};
|
|
1
|
+
exports.id=6401,exports.ids=[6401],exports.modules={3421:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},26838:(a,b,c)=>{"use strict";c.d(b,{E2:()=>p,MQ:()=>l,Mj:()=>n,Sw:()=>m,lX:()=>q});var d=c(29021),e=c(33873),f=c(54325),g=c(90164);let h=/^v?\d+\.\d+\.\d+$/,i=/^[a-zA-Z0-9.\-\s_v]+$/,j=[".next","required-server-files.json"],k=globalThis.__versionCheckCache??(globalThis.__versionCheckCache={result:null,fetchedAt:0,rateLimitResetAt:null});function l(a,b){if(!h.test(a)||!h.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[g,i,j]=c(b);return g!==d?g>d:i!==e?i>e:j>f}function m(){return function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),"package.json"),"utf-8"),b=JSON.parse(a);if("commandmate"===b.name&&"string"==typeof b.version&&b.version.length>0)return b.version;return null}catch{return null}}()??"0.44.0"}function n(){return m()}let o=null;function p(a){let b=o??=function(){{let a=function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),...j),"utf-8"),b=JSON.parse(a),c=b.config?.env?.NEXT_PUBLIC_APP_VERSION;if("string"==typeof c&&c.length>0)return c;return null}catch{return null}}();if(a)return a}return"0.44.0"}();return(0,f.LE)(b,a)?{serverVersion:b,clientVersion:a}:null}async function q(){try{var a,b,c;if(null!==k.result&&Date.now()-k.fetchedAt<36e5||k.rateLimitResetAt&&(!(Date.now()>=k.rateLimitResetAt)||(k.rateLimitResetAt=null,0)))return k.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${n()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?k.rateLimitResetAt=1e3*parseInt(b,10):k.rateLimitResetAt=Date.now()+36e5}(d),k.result;if(!d.ok)return k.result;let e=await d.json(),f=n(),h=e.tag_name.replace(/^v/,""),j={hasUpdate:l(f,e.tag_name),currentVersion:f,latestVersion:h,releaseUrl:(a=e.html_url).startsWith(g.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,i.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return k.result=j,k.fetchedAt=Date.now(),j}catch{return k.result}}},48870:(a,b,c)=>{"use strict";c.d(b,{GQ:()=>j,TJ:()=>g,Tf:()=>h,WI:()=>i});var d=c(29021),e=c(33873),f=c(21820);function g(){let a=(0,e.dirname)(__dirname);return a.includes("/lib/node_modules/")||a.includes("\\node_modules\\")||a.includes("/node_modules/commandmate")}function h(){let a=(0,e.dirname)(__dirname);return a.includes("/_npx/")||a.includes("\\_npx\\")}function i(){if(g()){let a=(0,e.join)((0,f.homedir)(),".commandmate");if((0,d.existsSync)(a)){let b=(0,d.realpathSync)(a),c=(0,d.realpathSync)((0,f.homedir)());if(!b.startsWith(c))throw Error(`Security error: Config directory ${a} is outside home directory`);return b}return a}let a=process.cwd();return(0,d.realpathSync)(a)}function j(){let a=g()?(0,e.join)((0,f.homedir)(),".commandmate"):process.cwd();return(0,d.existsSync)(a)||(0,d.mkdirSync)(a,{recursive:!0,mode:448}),i()}},53515:(a,b,c)=>{"use strict";c.d(b,{n8:()=>m,KC:()=>l});var d=c(79646);function e(a){return"string"==typeof a?a.trim():""}c(29021),c(33873);var f=c(26838);let g=/^\d+\.\d+\.\d+$/,h=/^v?\d+\.\d+\.\d+$/,i=globalThis.__npmPublishCheckCache??(globalThis.__npmPublishCheckCache={targetVersion:null,npmVersion:null,checkedAt:0,inFlight:null});async function j(){let a=await new Promise(a=>{(0,d.execFile)("npm",["view","commandmate","version"],{encoding:"utf-8",timeout:1e4},(b,c,d)=>{if(b)return"ENOENT"===b.code?void a({success:!1,error:"npm command not found. Install Node.js/npm and try again."}):void a({success:!1,error:e(d)||b.message});let f=e(c);if(!f)return void a({success:!1,error:"npm view returned no version"});a({success:!0,version:f})})});return a.success&&a.version&&g.test(a.version)?a.version:null}async function k(a,b,c){var d,e,g,h;if(i.targetVersion===a){if(null!==i.npmVersion&&(d=i.npmVersion,!(0,f.MQ)(d,a))||c()-i.checkedAt<3e5)return i.npmVersion}i.inFlight||(i.inFlight=(async()=>{try{return await b()}catch{return null}})());let j=i.inFlight,k=await j;return i.inFlight===j&&(i.inFlight=null,e=a,g=k,h=c(),i.targetVersion=e,i.npmVersion=g,i.checkedAt=h),k}async function l(a,b={}){var c;if(!a.hasUpdate)return{hasUpdate:!1,pendingVersion:null};let d=await k(a.latestVersion,b.fetchNpmLatest??j,b.now??Date.now);return null!==d&&(c=a.latestVersion,(0,f.MQ)(d,c))?{hasUpdate:!1,pendingVersion:a.latestVersion}:{hasUpdate:!0,pendingVersion:null}}async function m(a,b={}){let c;if(!h.test(a))return null;try{c=await (b.fetchNpmLatest??j)()}catch{return null}return null===c?null:(0,f.MQ)(a,c)}},54325:(a,b,c)=>{"use strict";c.d(b,{LE:()=>f,Oo:()=>e,ST:()=>d,T4:()=>k,dz:()=>j,r9:()=>h,rx:()=>i,rz:()=>g});let d="client_version",e="version_mismatch";function f(a,b){return!!a&&!!b&&"0.0.0"!==a&&"0.0.0"!==b&&a!==b}let g="chat_turn_progress",h=1e3;function i(a,b=65536){return b<=0?{body:"",truncated:a.length>0}:a.length<=b?{body:a,truncated:!1}:{body:a.slice(a.length-b),truncated:!0}}let j="messages_invalidated",k="model_changed"},78335:()=>{},90164:(a,b,c)=>{"use strict";c.d(b,{Dk:()=>e,kD:()=>f});let d="https://github.com/Kewton/CommandMate",e=`${d}/releases/`,f=`${d}/blob/main/docs/security-guide.md`},95736:(a,b,c)=>{"use strict";a.exports=c(44870)},96487:()=>{}};
|