@surething/cockpit 1.0.275 → 1.0.276
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-prod/BUILD_ID +1 -1
- package/.next-prod/app-path-routes-manifest.json +3 -1
- package/.next-prod/build-manifest.json +2 -2
- package/.next-prod/cockpit-build.json +1 -1
- package/.next-prod/prerender-manifest.json +4 -4
- package/.next-prod/routes-manifest.json +14 -0
- package/.next-prod/server/app/_global-error/page.js +2 -2
- package/.next-prod/server/app/_global-error/page.js.nft.json +1 -1
- package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/_global-error.html +1 -1
- package/.next-prod/server/app/_global-error.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found/page.js +1 -1
- package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
- package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/_not-found.html +2 -2
- package/.next-prod/server/app/_not-found.rsc +3 -3
- package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next-prod/server/app/api/agent/test/route.js +1 -1
- package/.next-prod/server/app/api/agent/test/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/bash/route.js +1 -1
- package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/bots/[id]/route.js +1 -0
- package/.next-prod/server/app/api/bots/[id]/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/bots/[id]/route_client-reference-manifest.js +1 -0
- package/.next-prod/server/app/api/bots/route.js +1 -0
- package/.next-prod/server/app/api/bots/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/bots/route_client-reference-manifest.js +1 -0
- package/.next-prod/server/app/api/chat/codex/route.js +1 -1
- package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/deepseek/route.js +1 -1
- package/.next-prod/server/app/api/chat/deepseek/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/glm/route.js +1 -1
- package/.next-prod/server/app/api/chat/glm/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/kimi/route.js +1 -1
- package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/ollama/route.js +1 -1
- package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/route.js +1 -1
- package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/stop/route.js +1 -1
- package/.next-prod/server/app/api/chat/stop/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/claude-stats/route.js +1 -1
- package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/commands/route.js +1 -1
- package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/comments/route.js +1 -1
- package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/columns/route.js +2 -2
- package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/connect/route.js +1 -1
- package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/export/route.js +1 -1
- package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/query/route.js +1 -1
- package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/schemas/route.js +1 -1
- package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/deepseek/balance/route.js +1 -1
- package/.next-prod/server/app/api/deepseek/balance/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/deepseek/credentials/route.js +1 -1
- package/.next-prod/server/app/api/deepseek/credentials/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/deepseek/models/route.js +1 -1
- package/.next-prod/server/app/api/deepseek/models/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/dev/spans/route.js +1 -1
- package/.next-prod/server/app/api/dev/spans/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/extension/version/route.js +1 -1
- package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/file/route.js +1 -1
- package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/blame/route.js +1 -1
- package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/clipboard/route.js +1 -1
- package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/copy/route.js +1 -1
- package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/delete/route.js +1 -1
- package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/expanded/route.js +1 -1
- package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/index/route.js +1 -1
- package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/init/route.js +1 -1
- package/.next-prod/server/app/api/files/init/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/paste/route.js +1 -1
- package/.next-prod/server/app/api/files/paste/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/read/route.js +1 -1
- package/.next-prod/server/app/api/files/read/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/readdir/route.js +1 -1
- package/.next-prod/server/app/api/files/readdir/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/recent/route.js +1 -1
- package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/save/route.js +1 -1
- package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/search/route.js +1 -1
- package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/stat/route.js +1 -1
- package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/text/route.js +1 -1
- package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/blob/route.js +1 -1
- package/.next-prod/server/app/api/git/blob/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/branch-diff/route.js +1 -1
- package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/branches/route.js +1 -1
- package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/commit-diff/route.js +1 -1
- package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/commits/route.js +1 -1
- package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/current-branch/route.js +1 -1
- package/.next-prod/server/app/api/git/current-branch/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/diff/route.js +1 -1
- package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/discard/route.js +1 -1
- package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/stage/route.js +1 -1
- package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/status/route.js +1 -1
- package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/unstage/route.js +1 -1
- package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/worktree/route.js +1 -1
- package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/glm/credentials/route.js +1 -1
- package/.next-prod/server/app/api/glm/credentials/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/glm/models/route.js +1 -1
- package/.next-prod/server/app/api/glm/models/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/glm/usage/route.js +1 -1
- package/.next-prod/server/app/api/glm/usage/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/global-state/route.js +2 -2
- package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/health/route.js +1 -1
- package/.next-prod/server/app/api/health/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/html-apps/[id]/route.js +1 -1
- package/.next-prod/server/app/api/html-apps/[id]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/html-apps/route.js +1 -1
- package/.next-prod/server/app/api/html-apps/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/instructions/config/route.js +1 -1
- package/.next-prod/server/app/api/instructions/config/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/kimi/credentials/route.js +1 -1
- package/.next-prod/server/app/api/kimi/credentials/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/kimi/models/route.js +1 -1
- package/.next-prod/server/app/api/kimi/models/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/kimi/usage/route.js +1 -1
- package/.next-prod/server/app/api/kimi/usage/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/definition/route.js +1 -1
- package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/hover/route.js +1 -1
- package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/references/route.js +1 -1
- package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/status/route.js +1 -1
- package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/warmup/route.js +1 -1
- package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/columns/route.js +1 -1
- package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/connect/route.js +1 -1
- package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/export/route.js +1 -1
- package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/query/route.js +1 -1
- package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/schemas/route.js +1 -1
- package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/connect/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/query/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/schema/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/note/route.js +1 -1
- package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/ollama/config/route.js +1 -1
- package/.next-prod/server/app/api/ollama/config/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/ollama/models/route.js +1 -1
- package/.next-prod/server/app/api/ollama/models/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/ollama/start/route.js +1 -1
- package/.next-prod/server/app/api/ollama/start/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/open-cursor/route.js +1 -1
- package/.next-prod/server/app/api/open-cursor/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/open-vscode/route.js +1 -1
- package/.next-prod/server/app/api/open-vscode/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/pick-folder/route.js +1 -1
- package/.next-prod/server/app/api/pick-folder/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/pinned-sessions/route.js +1 -1
- package/.next-prod/server/app/api/pinned-sessions/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/project-settings/route.js +1 -1
- package/.next-prod/server/app/api/project-settings/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/project-state/route.js +2 -2
- package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/affected/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/affected/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/callees/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/callees/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/callers/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/callers/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/coedit/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/coedit/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/context/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/context/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/file/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/file/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/file-functions/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/file-functions/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/impact/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/impact/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/related/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/related/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/risk/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/risk/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/search/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/search/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projects/route.js +1 -1
- package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/push/public-key/route.js +1 -1
- package/.next-prod/server/app/api/push/public-key/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/push/subscribe/route.js +1 -1
- package/.next-prod/server/app/api/push/subscribe/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/push/unsubscribe/route.js +1 -1
- package/.next-prod/server/app/api/push/unsubscribe/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/command/route.js +1 -1
- package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/connect/route.js +1 -1
- package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/delete/route.js +1 -1
- package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/get/route.js +1 -1
- package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/keys/route.js +1 -1
- package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/set/route.js +1 -1
- package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/restart/route.js +1 -1
- package/.next-prod/server/app/api/restart/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/[id]/comments/route.js +1 -1
- package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/[id]/replies/route.js +1 -1
- package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/[id]/route.js +1 -1
- package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/identify/route.js +1 -1
- package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/order/route.js +1 -1
- package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/route.js +1 -1
- package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/share-info/route.js +1 -1
- package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/users/route.js +1 -1
- package/.next-prod/server/app/api/review/users/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/scheduled-tasks/route.js +2 -2
- package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/services/config/route.js +1 -1
- package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/services/scripts/route.js +1 -1
- package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/fork/route.js +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/history/route.js +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/turn/route.js +2 -2
- package/.next-prod/server/app/api/session/[sessionId]/turn/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session/user-messages/route.js +1 -1
- package/.next-prod/server/app/api/session/user-messages/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session-by-path/route.js +1 -1
- package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/delegate/route.js +1 -1
- package/.next-prod/server/app/api/sessions/delegate/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js +1 -1
- package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/projects/route.js +1 -1
- package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/route.js +1 -1
- package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/search/route.js +1 -1
- package/.next-prod/server/app/api/sessions/search/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/status/route.js +1 -1
- package/.next-prod/server/app/api/sessions/status/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/settings/route.js +1 -1
- package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/shutdown/route.js +1 -1
- package/.next-prod/server/app/api/shutdown/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/skills/[id]/route.js +1 -1
- package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/skills/content/route.js +1 -1
- package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/skills/route.js +1 -1
- package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/snapshots/blob/route.js +1 -1
- package/.next-prod/server/app/api/snapshots/blob/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/snapshots/diff/route.js +1 -1
- package/.next-prod/server/app/api/snapshots/diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/snapshots/route.js +1 -1
- package/.next-prod/server/app/api/snapshots/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/aliases/route.js +1 -1
- package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/autocomplete/route.js +1 -1
- package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
- package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/env/route.js +1 -1
- package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/history/route.js +1 -1
- package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/update/route.js +1 -1
- package/.next-prod/server/app/api/update/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/update-state/route.js +1 -1
- package/.next-prod/server/app/api/update-state/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/version/route.js +1 -1
- package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
- package/.next-prod/server/app/apps/[...path]/route.js +1 -1
- package/.next-prod/server/app/apps/[...path]/route.js.nft.json +1 -1
- package/.next-prod/server/app/favicon.ico/route.js +1 -1
- package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next-prod/server/app/m/page.js +1 -1
- package/.next-prod/server/app/m/page.js.nft.json +1 -1
- package/.next-prod/server/app/m/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/manifest.webmanifest/route.js +2 -2
- package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next-prod/server/app/page.js +1 -1
- package/.next-prod/server/app/page.js.nft.json +1 -1
- package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/project/page.js +1 -1
- package/.next-prod/server/app/project/page.js.nft.json +1 -1
- package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/review/[id]/page.js +1 -1
- package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
- package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app-paths-manifest.json +3 -1
- package/.next-prod/server/chunks/2493.js +13 -9
- package/.next-prod/server/chunks/{7956.js → 3354.js} +2 -2
- package/.next-prod/server/chunks/6495.js +1 -1
- package/.next-prod/server/chunks/6548.js +1 -1
- package/.next-prod/server/chunks/7438.js +764 -0
- package/.next-prod/server/chunks/{1653.js → 8022.js} +2 -2
- package/.next-prod/server/middleware-build-manifest.js +1 -1
- package/.next-prod/server/pages/404.html +2 -2
- package/.next-prod/server/pages/500.html +1 -1
- package/.next-prod/server/server-reference-manifest.json +1 -1
- package/.next-prod/static/O8neHUIr3dQhe1jcOUsQ8/_buildManifest.js +1 -0
- package/.next-prod/static/chunks/{103-1f50be74a00f89af.js → 50015-b81552adf20a6a33.js} +2 -2
- package/.next-prod/static/chunks/72539-049ac78fc767d177.js +17 -0
- package/.next-prod/static/chunks/89656-d9dd3a8559041236.js +34 -0
- package/.next-prod/static/chunks/99092-5b836813f4b1d4b3.js +716 -0
- package/.next-prod/static/chunks/app/_global-error/{page-b56c0b18a3b4d026.js → page-e2f146f38bb4df42.js} +1 -1
- package/.next-prod/static/chunks/app/api/agent/test/{route-b56c0b18a3b4d026.js → route-e2f146f38bb4df42.js} +1 -1
- package/.next-prod/static/chunks/app/api/bash/{route-b56c0b18a3b4d026.js → route-e2f146f38bb4df42.js} +1 -1
- package/.next-prod/static/chunks/app/api/{chat/codex/route-b56c0b18a3b4d026.js → bots/[id]/route-e2f146f38bb4df42.js} +1 -1
- package/.next-prod/static/chunks/app/api/bots/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/codex/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/deepseek/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/glm/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/kimi/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/ollama/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/stop/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/claude-stats/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/commands/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/comments/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/db/columns/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/db/connect/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/db/disconnect/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/db/export/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/db/query/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/db/schemas/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/deepseek/balance/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/deepseek/credentials/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/deepseek/models/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/dev/spans/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/extension/version/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/file/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/blame/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/clipboard/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/copy/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/delete/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/expanded/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/index/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/init/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/paste/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/read/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/readdir/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/recent/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/save/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/search/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/stat/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/files/text/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/git/blob/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branches/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commits/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/git/current-branch/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/git/diff/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/git/discard/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/git/stage/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/git/status/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/git/unstage/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/git/worktree/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/glm/credentials/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/glm/models/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/glm/usage/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/global-state/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/health/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/html-apps/[id]/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/html-apps/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/instructions/config/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/kimi/credentials/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/kimi/models/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/kimi/usage/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/definition/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/hover/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/references/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/status/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/columns/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/connect/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/export/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/query/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/query/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/note/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/config/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/models/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/start/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/open-cursor/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/open-vscode/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/pick-folder/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/project-settings/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/project-state/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/affected/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/callees/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/callers/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/context/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/file/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/impact/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/related/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/risk/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/search/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/projects/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/push/public-key/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/push/subscribe/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/push/unsubscribe/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/command/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/connect/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/delete/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/get/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/keys/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/set/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/restart/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/review/identify/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/review/order/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/review/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/review/share-info/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/review/users/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/services/config/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/services/scripts/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/turn/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/session/user-messages/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/session-by-path/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/delegate/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/search/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/status/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/settings/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/shutdown/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/[id]/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/content/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/snapshots/blob/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/snapshots/diff/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/snapshots/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/env/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/history/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/update/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/update-state/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/api/version/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/apps/[...path]/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/layout-347ca1b3228d5b23.js +1 -0
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/app/page-2ade7ecd21636624.js +1 -0
- package/.next-prod/static/chunks/app/project/page-2ade7ecd21636624.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-e2f146f38bb4df42.js +1 -0
- package/.next-prod/static/css/7a02a222d1299650.css +1 -0
- package/.next-prod/trace +15 -15
- package/.next-prod/trace-build +1 -1
- package/.next-prod/types/app/api/bots/[id]/route.ts +353 -0
- package/.next-prod/types/app/api/bots/route.ts +353 -0
- package/.next-prod/types/routes.d.ts +3 -1
- package/.next-prod/types/validator.ts +18 -0
- package/README.md +13 -0
- package/README.zh.md +13 -0
- package/bots/README.md +86 -0
- package/bots/cockpit-helper/BOT.md +95 -0
- package/bots/cockpit-helper/commitments/active.md +3 -0
- package/bots/cockpit-helper/evidence/refs.md +3 -0
- package/bots/cockpit-helper/identity/persona.md +25 -0
- package/bots/cockpit-helper/identity/principles.md +49 -0
- package/bots/cockpit-helper/memory/facts.md +3 -0
- package/bots/cockpit-helper/relationships/user.md +3 -0
- package/dist/{chunk-JJWVBF6H.mjs → chunk-BCWVTDEZ.mjs} +648 -140
- package/dist/{chunk-6R4AHIIV.mjs → chunk-QY2K7YIF.mjs} +1 -1
- package/dist/httpApi.mjs +2 -2
- package/dist/scheduledTasks.mjs +80 -14
- package/dist/wsServer.mjs +2 -2
- package/package.json +2 -1
- package/skills/README.md +18 -2
- package/skills/bot/SKILL.md +155 -0
- package/skills/bot-run/SKILL.md +214 -0
- package/skills/bot-turn/SKILL.md +99 -0
- package/skills/bot-turn/attach.md +45 -0
- package/skills/bot-turn/export.md +113 -0
- package/skills/bot-turn/review.md +101 -0
- package/skills/bot-turn/writing.md +110 -0
- package/.next-prod/server/chunks/5750.js +0 -762
- package/.next-prod/static/chunks/72539-7e4ca2de5c9f3f90.js +0 -17
- package/.next-prod/static/chunks/89656-bc48af1f9ee9c312.js +0 -32
- package/.next-prod/static/chunks/99092-36ee2c49e4c4c059.js +0 -716
- package/.next-prod/static/chunks/app/api/chat/deepseek/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/glm/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/kimi/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/ollama/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/stop/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/claude-stats/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/commands/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/comments/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/db/columns/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/db/connect/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/db/disconnect/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/db/export/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/db/query/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/db/schemas/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/deepseek/balance/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/deepseek/credentials/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/deepseek/models/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/dev/spans/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/extension/version/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/file/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/blame/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/clipboard/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/copy/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/delete/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/expanded/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/index/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/init/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/paste/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/read/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/readdir/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/recent/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/save/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/search/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/stat/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/files/text/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/git/blob/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branches/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commits/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/git/current-branch/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/git/diff/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/git/discard/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/git/stage/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/git/status/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/git/unstage/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/git/worktree/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/glm/credentials/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/glm/models/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/glm/usage/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/global-state/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/health/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/html-apps/[id]/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/html-apps/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/instructions/config/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/kimi/credentials/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/kimi/models/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/kimi/usage/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/definition/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/hover/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/references/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/status/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/columns/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/connect/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/export/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/query/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/query/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/note/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/config/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/models/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/start/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/open-cursor/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/open-vscode/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/pick-folder/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/project-settings/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/project-state/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/affected/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/callees/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/callers/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/context/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/file/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/impact/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/related/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/risk/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/search/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/projects/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/push/public-key/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/push/subscribe/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/push/unsubscribe/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/command/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/connect/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/delete/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/get/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/keys/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/set/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/restart/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/review/identify/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/review/order/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/review/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/review/share-info/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/review/users/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/services/config/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/services/scripts/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/turn/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/session/user-messages/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/session-by-path/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/delegate/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/search/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/status/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/settings/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/shutdown/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/[id]/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/content/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/snapshots/blob/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/snapshots/diff/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/snapshots/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/env/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/history/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/update/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/update-state/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/api/version/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/apps/[...path]/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/layout-5e8ca15dabb4d8c2.js +0 -1
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/app/page-eb7a11e6dd6a9e94.js +0 -1
- package/.next-prod/static/chunks/app/project/page-eb7a11e6dd6a9e94.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-b56c0b18a3b4d026.js +0 -1
- package/.next-prod/static/css/08c892de6d5e2335.css +0 -1
- package/.next-prod/static/mTTTlFslhC7zzHMDXGNOW/_buildManifest.js +0 -1
- /package/.next-prod/static/{mTTTlFslhC7zzHMDXGNOW → O8neHUIr3dQhe1jcOUsQ8}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Changing a Bot's files
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Changing a Bot's files
|
|
6
|
+
|
|
7
|
+
Read this before you create, edit or delete anything under a Bot directory. Reading its files
|
|
8
|
+
needs nothing from here; changing them needs all of it — the metadata every entry carries, the
|
|
9
|
+
bar a change has to clear, and the lock that keeps two sessions from writing at once.
|
|
10
|
+
|
|
11
|
+
## 1. Entry format
|
|
12
|
+
|
|
13
|
+
Every recorded entry is a `## <short title>` section followed by one metadata comment. Without it
|
|
14
|
+
an entry cannot be aged, traced, or closed later. This block is a shape, not a record — when you
|
|
15
|
+
copy it anywhere, keep it as placeholders:
|
|
16
|
+
|
|
17
|
+
```markdown
|
|
18
|
+
## <short title>
|
|
19
|
+
<!-- confirmed: <YYYY-MM-DD> · source: <user | session:id | evidence key> · authority: <user-confirmed | observed | inferred> · status: active -->
|
|
20
|
+
|
|
21
|
+
<What was established, as prose.>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
- `confirmed` — the date it was last verified. `source` — `user`, `session:<id>`, or a key in
|
|
25
|
+
`evidence/refs.md`.
|
|
26
|
+
- `authority` — `user-confirmed` (the user stated or approved it) > `observed` (a tool run or a
|
|
27
|
+
file proved it) > `inferred` (you concluded it). **An `inferred` entry never overrides a
|
|
28
|
+
`user-confirmed` one** — on a clash the inferred side loses, however new it is.
|
|
29
|
+
- `status` — `active` (default), `superseded`, `done`, `cancelled`. Add `supersedes: <title>` on
|
|
30
|
+
the entry that replaces another, and `expires: <YYYY-MM-DD>` when the information is time-bound.
|
|
31
|
+
- A commitment carries a second comment line — without it "is this still open?" is guesswork:
|
|
32
|
+
`waiting-on` (who or what it is blocked on, `nobody` when it is your move) · `next-check` (the
|
|
33
|
+
date worth looking again) · `done-when` (the observable condition that closes it, not "when it
|
|
34
|
+
feels finished").
|
|
35
|
+
|
|
36
|
+
Keep the body prose. This is metadata for aging entries, not a schema — never split an entry into
|
|
37
|
+
fields the reader has to reassemble.
|
|
38
|
+
|
|
39
|
+
## 2. Only when asked
|
|
40
|
+
|
|
41
|
+
You should be here only because the task explicitly asked to remember, update, correct or forget
|
|
42
|
+
something. If it did not, go back and end with a "Could be recorded" list instead.
|
|
43
|
+
|
|
44
|
+
`BOT.md`'s "Updating" section says where each kind of thing goes in *this* Bot. Regardless of
|
|
45
|
+
that routing:
|
|
46
|
+
|
|
47
|
+
- Every entry you write or update carries the metadata comment from §1.
|
|
48
|
+
- Never let an `inferred` entry overwrite a `user-confirmed` one — record the disagreement and ask.
|
|
49
|
+
- Editing `identity/persona.md` or `identity/principles.md` changes how every future turn behaves:
|
|
50
|
+
quote the exact wording you intend to write and wait for approval. Everything else follows the
|
|
51
|
+
normal rule — asked for, then written.
|
|
52
|
+
- **Never record**: chit-chat; guesses presented as fact; secrets (keys, tokens, passwords); full
|
|
53
|
+
conversation transcripts or third-party material you were not asked to keep; anything re-readable
|
|
54
|
+
from the source system (code, database rows, file contents); caches, logs, generated indexes.
|
|
55
|
+
|
|
56
|
+
## 3. The write lock
|
|
57
|
+
|
|
58
|
+
Other sessions may be reading or writing this Bot at the same time. Reads never block. Hold the
|
|
59
|
+
lock only around the edits, and release it even when an edit fails.
|
|
60
|
+
|
|
61
|
+
**1. Acquire.** `mkdir` is atomic, so exactly one session wins. The `cwd` recorded below must be
|
|
62
|
+
**this session's own working directory**, which Cockpit exports as `COCKPIT_CWD` — never a path
|
|
63
|
+
you worked out, and never the Bot's own directory unless that is genuinely where the session
|
|
64
|
+
started. Step 3 looks the owner up by that exact string; a wrong one answers "no such session",
|
|
65
|
+
which reads as "the lock is stale" for a session that is very much alive.
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
BOT='<the Bot directory>'
|
|
69
|
+
SESSION_CWD="${COCKPIT_CWD:-$PWD}" # this session's own cwd; `pwd` has moved if anything cd'd
|
|
70
|
+
|
|
71
|
+
mkdir -p "$BOT/.locks"
|
|
72
|
+
if mkdir "$BOT/.locks/write" 2>/dev/null; then
|
|
73
|
+
printf 'run: %s\ncwd: %s\nsince: %s\ntask: %s\n' \
|
|
74
|
+
"${COCKPIT_RUN_ID:-unknown}" "$SESSION_CWD" "$(date -u +%FT%TZ)" '<short task label>' \
|
|
75
|
+
> "$BOT/.locks/write/owner"
|
|
76
|
+
echo acquired
|
|
77
|
+
else
|
|
78
|
+
# `mkdir` and the owner write are two steps, so a lock taken a moment ago may
|
|
79
|
+
# have no owner file yet. Absent is not the same as unowned.
|
|
80
|
+
cat "$BOT/.locks/write/owner" 2>/dev/null || echo 'held; owner not written yet'
|
|
81
|
+
fi
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**2. Failed?** Another session holds it. Retry every 10s for about 2 minutes.
|
|
85
|
+
|
|
86
|
+
**3. Still locked?** Decide from `owner`, never from the clock — a three-hour-old timestamp is as
|
|
87
|
+
likely to be a slow task as a crash.
|
|
88
|
+
|
|
89
|
+
- `run:` is your own `$COCKPIT_RUN_ID` → your own lock, from a turn of this session that died
|
|
90
|
+
holding it (a session keeps the same run id across turns). Clearing it is safe.
|
|
91
|
+
- Otherwise ask whether that run is still alive, using the two lines the file records:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
curl -sS --get "{{BASE_URL}}/api/sessions/status" \
|
|
95
|
+
--data-urlencode "cwd=<the cwd line>" --data-urlencode "sessionId=<the run line>"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
`status: running` → **it is working. Wait, or stop and tell the user. Do not clear it.**
|
|
99
|
+
Any other status, or a 404 → that run has ended and left the lock behind.
|
|
100
|
+
|
|
101
|
+
- No `owner` file at all → either the holder is mid-acquire, or it crashed between the two steps.
|
|
102
|
+
Keep retrying; after the window it is decided the same way as any other foreign lock.
|
|
103
|
+
- Even then, **clearing someone else's lock is the user's call**, not yours: quote the `owner`
|
|
104
|
+
file and the status you got, and let them run `rm -rf <bot>/.locks/write`. Never delete another
|
|
105
|
+
session's lock on a timer.
|
|
106
|
+
|
|
107
|
+
**4. Holding it:** re-read every file you are about to change — what you read before the lock may
|
|
108
|
+
be stale. Then edit.
|
|
109
|
+
|
|
110
|
+
**5. Release:** `rm -rf "$BOT/.locks/write"`. Do this even when an edit failed halfway.
|