cuelo 0.9.6 → 0.9.8
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-path-routes-manifest.json +11 -10
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +2 -2
- package/.next/required-server-files.json +2 -2
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/_global-error/page.js +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/agent/[id]/account/route.js +1 -1
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/running/route.js +1 -1
- package/.next/server/app/api/attachment-settings/route.js +1 -1
- package/.next/server/app/api/attachments/[id]/transcription/route.js +2 -2
- package/.next/server/app/api/attachments/draft/route.js +1 -1
- package/.next/server/app/api/attachments/route.js +3 -3
- package/.next/server/app/api/auth/all-providers/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/cwd/browse/route.js +1 -1
- package/.next/server/app/api/cwd/validate/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/display-settings/route.js +1 -1
- package/.next/server/app/api/document-text/route.js +2 -2
- package/.next/server/app/api/experiments/route.js +1 -1
- package/.next/server/app/api/file-index/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +3 -3
- package/.next/server/app/api/git/diff/route.js +1 -1
- package/.next/server/app/api/git/status/route.js +1 -1
- package/.next/server/app/api/github/projects/route.js +1 -0
- package/.next/server/app/api/github/projects/route.js.nft.json +1 -0
- package/.next/server/app/api/github/projects/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/gpt6/handles/route.js +1 -1
- package/.next/server/app/api/gpt6/reply/route.js +1 -1
- package/.next/server/app/api/gpt6/token/route.js +1 -1
- package/.next/server/app/api/gpt6/web6-session/route.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/live/call/[callId]/route.js +1 -1
- package/.next/server/app/api/live/character-voice/route.js +1 -1
- package/.next/server/app/api/live/events/route.js +2 -2
- package/.next/server/app/api/live/offer/route.js +1 -1
- package/.next/server/app/api/live/voices/route.js +1 -1
- package/.next/server/app/api/lounge/events/route.js +2 -2
- package/.next/server/app/api/lounge/route.js +1 -1
- package/.next/server/app/api/mcp/route.js +2 -2
- package/.next/server/app/api/model-roles/route.js +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models-config/catalog/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/route.js +3 -3
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/office-avatars/[id]/route.js +1 -1
- package/.next/server/app/api/office-avatars/route.js +1 -1
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/project-trust/route.js +1 -1
- package/.next/server/app/api/projects/route.js +1 -1
- package/.next/server/app/api/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/runs/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/search/route.js +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/sidecars/[service]/[...path]/route.js +1 -1
- package/.next/server/app/api/skills/check/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js +2 -2
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/update/route.js +1 -1
- package/.next/server/app/api/theme/route.js +1 -1
- package/.next/server/app/api/tool-image/route.js +1 -1
- package/.next/server/app/api/update-maintenance/route.js +8 -4
- package/.next/server/app/api/updates/route.js +1 -1
- package/.next/server/app/api/web-access/recovery/route.js +1 -1
- package/.next/server/app/api/web-access/route.js +1 -1
- package/.next/server/app/api/web6/consults/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +5 -5
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +5 -5
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/.next/server/app/office/page.js +2 -2
- package/.next/server/app/office/page_client-reference-manifest.js +1 -1
- package/.next/server/app/office-preview/page.js +2 -2
- package/.next/server/app/office-preview/page_client-reference-manifest.js +1 -1
- package/.next/server/app/office-preview.html +1 -1
- package/.next/server/app/office-preview.rsc +2 -2
- package/.next/server/app/office-preview.segments/_full.segment.rsc +2 -2
- package/.next/server/app/office-preview.segments/_head.segment.rsc +1 -1
- package/.next/server/app/office-preview.segments/_index.segment.rsc +2 -2
- package/.next/server/app/office-preview.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/office-preview.segments/office-preview/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/office-preview.segments/office-preview.segment.rsc +1 -1
- package/.next/server/app/office.html +1 -1
- package/.next/server/app/office.rsc +5 -5
- package/.next/server/app/office.segments/_full.segment.rsc +5 -5
- package/.next/server/app/office.segments/_head.segment.rsc +1 -1
- package/.next/server/app/office.segments/_index.segment.rsc +2 -2
- package/.next/server/app/office.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/office.segments/office/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/office.segments/office.segment.rsc +1 -1
- package/.next/server/app/page.js +2 -2
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/recover/page.js +2 -2
- package/.next/server/app/recover/page_client-reference-manifest.js +1 -1
- package/.next/server/app/recover.html +1 -1
- package/.next/server/app/recover.rsc +2 -2
- package/.next/server/app/recover.segments/_full.segment.rsc +2 -2
- package/.next/server/app/recover.segments/_head.segment.rsc +1 -1
- package/.next/server/app/recover.segments/_index.segment.rsc +2 -2
- package/.next/server/app/recover.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/recover.segments/recover/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/recover.segments/recover.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +11 -10
- package/.next/server/chunks/1008.js +2 -2
- package/.next/server/chunks/2651.js +1 -1
- package/.next/server/chunks/3379.js +1 -1
- package/.next/server/chunks/5489.js +12 -12
- package/.next/server/chunks/6429.js +6 -6
- package/.next/server/chunks/7362.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware.js +2 -2
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/6110-9f1e951aafcdd72e.js +1 -0
- package/.next/static/chunks/9575-a48cda671c8b915d.js +22 -0
- package/.next/static/chunks/app/{api/agent/[id]/bash-output/route-6b1496af498bb4fd.js → _global-error/page-318ea6a550b5034e.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/{events/route-6b1496af498bb4fd.js → account/route-318ea6a550b5034e.js} +1 -1
- package/.next/static/chunks/app/{_global-error/page-6b1496af498bb4fd.js → api/agent/[id]/bash-output/route-318ea6a550b5034e.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/{account/route-6b1496af498bb4fd.js → events/route-318ea6a550b5034e.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/attachment-settings/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/attachments/[id]/transcription/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/attachments/draft/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/attachments/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/display-settings/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/document-text/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/experiments/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/github/projects/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/gpt6/handles/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/gpt6/reply/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/gpt6/token/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/gpt6/web6-session/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/home/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/live/call/[callId]/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/live/character-voice/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/live/events/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/live/offer/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/live/voices/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/lounge/events/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/lounge/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/model-roles/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/models/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/office-avatars/[id]/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/office-avatars/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/projects/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/runs/[runId]/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/runs/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/settings/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/skills/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/theme/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/tool-image/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/update-maintenance/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/updates/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/web-access/recovery/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/web-access/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/web6/consults/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/{layout-15c56b62f49b1c1d.js → layout-489bc5b73326436e.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/app/office/page-8dc604f9b5e6f220.js +1 -0
- package/.next/static/chunks/app/page-952b1ef4df5ac896.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-318ea6a550b5034e.js +1 -0
- package/.next/static/chunks/{webpack-fe8f1f81562a2b61.js → webpack-68986b211ad38cf1.js} +1 -1
- package/.next/static/css/4fae42750604bc1a.css +1 -0
- package/.next/static/pzZcPiD8nl6i7i_Ne9Ko-/_buildManifest.js +1 -0
- package/.next/trace +108 -108
- package/.next/trace-build +1 -1
- package/.next/types/app/api/github/projects/route.ts +351 -0
- package/.next/types/routes.d.ts +2 -1
- package/.next/types/validator.ts +9 -0
- package/README.md +8 -3
- package/Tools/CUELO_Setup/files/native-runtime-patch.js +3 -3
- package/Tools/OMP_Global_Config/agent/RULES.md +3 -1
- package/Tools/OMP_Global_Config/agent/TITLE_SYSTEM.md +17 -0
- package/Tools/OMP_Global_Config/agent/extensions/jev-runtime.ts +11 -4
- package/Tools/OMP_Global_Config/agent/prompt-copies/RULES.en.md +4 -2
- package/Tools/OMP_Global_Config/agent/tools/git-finalizer/finalizer.ps1 +68 -31
- package/Tools/OMP_Global_Config/agent/tools/git-finalizer/index.ts +8 -6
- package/Tools/OMP_Global_Config/patches/apply-core-patch.mjs +1119 -129
- package/bin/docker-entrypoint.mjs +19 -0
- package/install.mjs +11 -7
- package/package.json +8 -7
- package/.next/static/chunks/6110-004be57c825af4d9.js +0 -1
- package/.next/static/chunks/9575-4a84cf066c2f1257.js +0 -22
- package/.next/static/chunks/app/api/agent/[id]/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/agent/running/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/attachment-settings/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/attachments/[id]/transcription/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/attachments/draft/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/attachments/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/auth/all-providers/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/cwd/browse/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/cwd/validate/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/display-settings/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/document-text/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/experiments/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/file-index/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/gpt6/handles/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/gpt6/reply/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/gpt6/token/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/gpt6/web6-session/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/home/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/live/call/[callId]/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/live/character-voice/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/live/events/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/live/offer/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/live/voices/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/lounge/events/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/lounge/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/mcp/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/model-roles/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/models/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/models-config/catalog/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/models-config/discover/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/office-avatars/[id]/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/office-avatars/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/plugins/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/project-trust/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/projects/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/runs/[runId]/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/runs/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/export/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/state/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/sessions/search/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/settings/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/skills/check/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/skills/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/skills/update/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/theme/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/tool-image/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/update-maintenance/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/updates/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/web-access/recovery/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/web-access/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/web6/consults/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/app/office/page-424e244f1c7fcdc6.js +0 -1
- package/.next/static/chunks/app/page-b43b2b8679ed66e2.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-6b1496af498bb4fd.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6b1496af498bb4fd.js +0 -1
- package/.next/static/css/00f20b26266e86ed.css +0 -1
- package/.next/static/kRJ4zgHxJf680foSBrfpf/_buildManifest.js +0 -1
- /package/.next/static/{kRJ4zgHxJf680foSBrfpf → pzZcPiD8nl6i7i_Ne9Ko-}/_ssgManifest.js +0 -0
|
@@ -10,6 +10,10 @@ try {
|
|
|
10
10
|
$OutputEncoding = [Console]::OutputEncoding
|
|
11
11
|
} catch {}
|
|
12
12
|
$env:GIT_TERMINAL_PROMPT = '0'
|
|
13
|
+
# PowerShell 5.1 on Windows and PowerShell 7 on Linux share this transaction.
|
|
14
|
+
$isWindowsPlatform = [IO.Path]::DirectorySeparatorChar -eq '\'
|
|
15
|
+
$pathComparison = if ($isWindowsPlatform) { [StringComparison]::OrdinalIgnoreCase } else { [StringComparison]::Ordinal }
|
|
16
|
+
$pathComparer = if ($isWindowsPlatform) { [StringComparer]::OrdinalIgnoreCase } else { [StringComparer]::Ordinal }
|
|
13
17
|
|
|
14
18
|
$stage = 'request'
|
|
15
19
|
$createdCommit = $null
|
|
@@ -58,12 +62,12 @@ function Get-Sha256Hex([string]$Text) {
|
|
|
58
62
|
function Normalize-FullPath([string]$Path) {
|
|
59
63
|
$fullPath = [IO.Path]::GetFullPath($Path)
|
|
60
64
|
$pathRoot = [IO.Path]::GetPathRoot($fullPath)
|
|
61
|
-
if ($fullPath.Equals($pathRoot,
|
|
65
|
+
if ($fullPath.Equals($pathRoot, $pathComparison)) { return $pathRoot }
|
|
62
66
|
return $fullPath.TrimEnd([IO.Path]::DirectorySeparatorChar, [IO.Path]::AltDirectorySeparatorChar)
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
function Test-PathWithin([string]$Path, [string]$Root) {
|
|
66
|
-
if ($Path.Equals($Root,
|
|
70
|
+
if ($Path.Equals($Root, $pathComparison)) { return $true }
|
|
67
71
|
$prefix = $Root
|
|
68
72
|
if (
|
|
69
73
|
-not $prefix.EndsWith([IO.Path]::DirectorySeparatorChar) -and
|
|
@@ -71,7 +75,7 @@ function Test-PathWithin([string]$Path, [string]$Root) {
|
|
|
71
75
|
) {
|
|
72
76
|
$prefix += [IO.Path]::DirectorySeparatorChar
|
|
73
77
|
}
|
|
74
|
-
return $Path.StartsWith($prefix,
|
|
78
|
+
return $Path.StartsWith($prefix, $pathComparison)
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
function Get-NearestExistingDirectory([string]$Path) {
|
|
@@ -97,7 +101,7 @@ function Get-RepositoryRootInPathNamespace([string]$WorkingDirectory) {
|
|
|
97
101
|
}
|
|
98
102
|
|
|
99
103
|
function Convert-ToRepoPath([string]$FullPath, [string]$Root) {
|
|
100
|
-
if ($FullPath.Equals($Root,
|
|
104
|
+
if ($FullPath.Equals($Root, $pathComparison)) { return '' }
|
|
101
105
|
return $FullPath.Substring($Root.Length).TrimStart('\', '/').Replace('\', '/')
|
|
102
106
|
}
|
|
103
107
|
|
|
@@ -108,8 +112,8 @@ function Get-GitPaths([string]$WorkingDirectory, [string[]]$GitArgs) {
|
|
|
108
112
|
}
|
|
109
113
|
|
|
110
114
|
function Assert-ExactPathSet([string[]]$Actual, [string[]]$Expected, [string]$Label) {
|
|
111
|
-
$actualSet = [Collections.Generic.HashSet[string]]::new(
|
|
112
|
-
$expectedSet = [Collections.Generic.HashSet[string]]::new(
|
|
115
|
+
$actualSet = [Collections.Generic.HashSet[string]]::new($pathComparer)
|
|
116
|
+
$expectedSet = [Collections.Generic.HashSet[string]]::new($pathComparer)
|
|
113
117
|
foreach ($path in $Actual) { [void]$actualSet.Add($path) }
|
|
114
118
|
foreach ($path in $Expected) { [void]$expectedSet.Add($path) }
|
|
115
119
|
if (-not $actualSet.SetEquals($expectedSet)) {
|
|
@@ -129,7 +133,7 @@ try {
|
|
|
129
133
|
|
|
130
134
|
$stage = 'repository'
|
|
131
135
|
$resolvedFiles = @()
|
|
132
|
-
$seenFullPaths = [Collections.Generic.HashSet[string]]::new(
|
|
136
|
+
$seenFullPaths = [Collections.Generic.HashSet[string]]::new($pathComparer)
|
|
133
137
|
foreach ($inputFile in $inputFiles) {
|
|
134
138
|
if ($inputFile.IndexOfAny(@([char]0, [char]10, [char]13)) -ge 0) { throw 'File paths cannot contain NUL or newlines.' }
|
|
135
139
|
if ([IO.Path]::IsPathRooted($inputFile)) { throw "Absolute file path is not allowed: $inputFile" }
|
|
@@ -164,8 +168,8 @@ try {
|
|
|
164
168
|
$selectedRepoRoot = $targetRepoRoot
|
|
165
169
|
$selectedCommonDir = $targetCommonDir
|
|
166
170
|
} elseif (
|
|
167
|
-
-not $selectedRepoRoot.Equals($targetRepoRoot,
|
|
168
|
-
-not $selectedCommonDir.Equals($targetCommonDir,
|
|
171
|
+
-not $selectedRepoRoot.Equals($targetRepoRoot, $pathComparison) -or
|
|
172
|
+
-not $selectedCommonDir.Equals($targetCommonDir, $pathComparison)
|
|
169
173
|
) {
|
|
170
174
|
throw "Files belong to different repositories: $($file.Input)"
|
|
171
175
|
}
|
|
@@ -174,11 +178,11 @@ try {
|
|
|
174
178
|
$repoRoot = $selectedRepoRoot
|
|
175
179
|
$commonDir = $selectedCommonDir
|
|
176
180
|
if ($cwdRepoRoot) {
|
|
177
|
-
$targetsBelongToCwdRepository = $commonDir.Equals($cwdCommonDir,
|
|
181
|
+
$targetsBelongToCwdRepository = $commonDir.Equals($cwdCommonDir, $pathComparison)
|
|
178
182
|
if ($targetsBelongToCwdRepository) {
|
|
179
183
|
foreach ($file in $resolvedFiles) {
|
|
180
184
|
$parentPath = [IO.Path]::GetDirectoryName($file.FullPath)
|
|
181
|
-
$isDirectRepoRootChild = $parentPath -and $parentPath.Equals($cwdRepoRoot,
|
|
185
|
+
$isDirectRepoRootChild = $parentPath -and $parentPath.Equals($cwdRepoRoot, $pathComparison)
|
|
182
186
|
if (-not (Test-PathWithin -Path $file.FullPath -Root $cwd) -and -not $isDirectRepoRootChild) {
|
|
183
187
|
throw "File path escapes the session cwd: $($file.Input)"
|
|
184
188
|
}
|
|
@@ -195,10 +199,10 @@ try {
|
|
|
195
199
|
}
|
|
196
200
|
}
|
|
197
201
|
|
|
198
|
-
$seen = [Collections.Generic.HashSet[string]]::new(
|
|
202
|
+
$seen = [Collections.Generic.HashSet[string]]::new($pathComparer)
|
|
199
203
|
foreach ($file in $resolvedFiles) {
|
|
200
204
|
$repoPath = Convert-ToRepoPath -FullPath $file.FullPath -Root $repoRoot
|
|
201
|
-
if (-not $repoPath -or $repoPath -eq '.git' -or $repoPath.StartsWith('.git/',
|
|
205
|
+
if (-not $repoPath -or $repoPath -eq '.git' -or $repoPath.StartsWith('.git/', $pathComparison)) {
|
|
202
206
|
throw "Repository metadata or broad paths are not allowed: $($file.Input)"
|
|
203
207
|
}
|
|
204
208
|
if (-not $seen.Add($repoPath)) { throw "Duplicate file path: $($file.Input)" }
|
|
@@ -235,8 +239,9 @@ try {
|
|
|
235
239
|
$trackingConfigured = [bool]$configuredRemote -and [bool]$configuredUpstreamRef
|
|
236
240
|
|
|
237
241
|
$stage = 'lock'
|
|
238
|
-
$
|
|
239
|
-
$
|
|
242
|
+
$lockDirectory = if ($isWindowsPlatform) { $commonDir.ToLowerInvariant() } else { $commonDir }
|
|
243
|
+
$lockKey = Get-Sha256Hex ($lockDirectory + [char]0 + $remote + [char]0 + $upstreamRef)
|
|
244
|
+
$mutexName = if ($isWindowsPlatform) { "Global\OMP-GitFinalize-$lockKey" } else { "OMP-GitFinalize-$lockKey" }
|
|
240
245
|
$mutex = [Threading.Mutex]::new($false, $mutexName)
|
|
241
246
|
try {
|
|
242
247
|
$ownsMutex = $mutex.WaitOne([TimeSpan]::FromSeconds(120))
|
|
@@ -248,7 +253,7 @@ try {
|
|
|
248
253
|
$stage = 'locked-preflight'
|
|
249
254
|
$lockedCommonDir = Normalize-FullPath (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('rev-parse', '--path-format=absolute', '--git-common-dir')).Output
|
|
250
255
|
$lockedBranch = (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('rev-parse', '--abbrev-ref', 'HEAD')).Output
|
|
251
|
-
if (-not $lockedCommonDir.Equals($commonDir,
|
|
256
|
+
if (-not $lockedCommonDir.Equals($commonDir, $pathComparison) -or $lockedBranch -cne $branch) {
|
|
252
257
|
throw 'Repository or branch changed while acquiring the finalizer lock.'
|
|
253
258
|
}
|
|
254
259
|
|
|
@@ -276,22 +281,53 @@ try {
|
|
|
276
281
|
$stagedByFinalizer = $true
|
|
277
282
|
[void](Invoke-Git -WorkingDirectory $repoRoot -GitArgs (@('--literal-pathspecs', 'add', '-A', '--') + $repoPaths))
|
|
278
283
|
$cachedPaths = Get-GitPaths -WorkingDirectory $repoRoot -GitArgs @('-c', 'core.quotepath=false', 'diff', '--cached', '--no-renames', '--name-only')
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
$
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
$
|
|
286
|
-
$
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
284
|
+
# 이전 실행이 커밋은 만들고 push에서 실패했으면 요청 파일이 이미 깨끗하다. 그 파일이 아직 원격에 없는
|
|
285
|
+
# 커밋(upstream..HEAD, 원격 브랜치가 없으면 원격 추적 ref 어디에도 없는 HEAD 커밋)에 들어 있을 때만
|
|
286
|
+
# 그 커밋을 인정하고 새 커밋 없이 다시 보낸다.
|
|
287
|
+
$cachedPaths = @($cachedPaths)
|
|
288
|
+
$cachedSet = [Collections.Generic.HashSet[string]]::new($pathComparer)
|
|
289
|
+
foreach ($path in $cachedPaths) { [void]$cachedSet.Add($path) }
|
|
290
|
+
$alreadyCommitted = @($repoPaths | Where-Object { -not $cachedSet.Contains($_) })
|
|
291
|
+
$resumedPush = $false
|
|
292
|
+
if ($alreadyCommitted.Count -gt 0) {
|
|
293
|
+
if ($upstreamSha -eq $headSha) {
|
|
294
|
+
Assert-ExactPathSet -Actual $cachedPaths -Expected $repoPaths -Label 'Staged path set'
|
|
295
|
+
}
|
|
296
|
+
$pendingRange = if ($upstreamSha) { "${upstreamSha}..${headSha}" } else { "${headSha} not in refs/remotes/$remote" }
|
|
297
|
+
$pendingPaths = if ($upstreamSha) {
|
|
298
|
+
Get-GitPaths -WorkingDirectory $repoRoot -GitArgs @('-c', 'core.quotepath=false', 'diff', '--no-renames', '--name-only', $upstreamSha, $headSha)
|
|
299
|
+
} else {
|
|
300
|
+
Get-GitPaths -WorkingDirectory $repoRoot -GitArgs @('-c', 'core.quotepath=false', 'log', '--no-renames', '--format=', '--name-only', $headSha, '--not', "--remotes=$remote")
|
|
301
|
+
}
|
|
302
|
+
$pendingSet = [Collections.Generic.HashSet[string]]::new($pathComparer)
|
|
303
|
+
foreach ($path in $pendingPaths) { [void]$pendingSet.Add($path) }
|
|
304
|
+
$unpending = @($alreadyCommitted | Where-Object { -not $pendingSet.Contains($_) })
|
|
305
|
+
if ($unpending.Count -gt 0) {
|
|
306
|
+
throw "Staged path set mismatch. Unchanged paths are not in unpushed commits ${pendingRange}: $($unpending -join ', ')"
|
|
307
|
+
}
|
|
308
|
+
$resumedPush = $true
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
if ($cachedPaths.Count -gt 0) {
|
|
312
|
+
Assert-ExactPathSet -Actual $cachedPaths -Expected @($repoPaths | Where-Object { $cachedSet.Contains($_) }) -Label 'Staged path set'
|
|
313
|
+
$stage = 'commit'
|
|
314
|
+
$messageFile = [IO.Path]::GetTempFileName()
|
|
315
|
+
[IO.File]::WriteAllText($messageFile, $message + [Environment]::NewLine, [Text.UTF8Encoding]::new($false))
|
|
316
|
+
[void](Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('commit', '--file', $messageFile))
|
|
317
|
+
$createdCommit = (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('rev-parse', 'HEAD')).Output
|
|
318
|
+
$stagedByFinalizer = $false
|
|
319
|
+
|
|
320
|
+
$stage = 'commit-verify'
|
|
321
|
+
$parentSha = (Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('rev-parse', "$createdCommit^" )).Output
|
|
322
|
+
if ($parentSha -ne $headSha) {
|
|
323
|
+
throw "Created commit parent does not match the captured HEAD. parent=$parentSha head=$headSha"
|
|
324
|
+
}
|
|
325
|
+
$committedPaths = Get-GitPaths -WorkingDirectory $repoRoot -GitArgs @('-c', 'core.quotepath=false', 'diff-tree', '--no-commit-id', '--no-renames', '--name-only', '-r', $createdCommit)
|
|
326
|
+
Assert-ExactPathSet -Actual $committedPaths -Expected $cachedPaths -Label 'Committed path set'
|
|
327
|
+
} else {
|
|
328
|
+
$stagedByFinalizer = $false
|
|
329
|
+
$createdCommit = $headSha
|
|
292
330
|
}
|
|
293
|
-
$committedPaths = Get-GitPaths -WorkingDirectory $repoRoot -GitArgs @('-c', 'core.quotepath=false', 'diff-tree', '--no-commit-id', '--no-renames', '--name-only', '-r', $createdCommit)
|
|
294
|
-
Assert-ExactPathSet -Actual $committedPaths -Expected $repoPaths -Label 'Committed path set'
|
|
295
331
|
|
|
296
332
|
$stage = 'push'
|
|
297
333
|
[void](Invoke-Git -WorkingDirectory $repoRoot -GitArgs @('push', $remote, "${createdCommit}:${upstreamRef}"))
|
|
@@ -316,6 +352,7 @@ try {
|
|
|
316
352
|
commitSha = $createdCommit
|
|
317
353
|
remote = $remote
|
|
318
354
|
upstreamRef = $upstreamRef
|
|
355
|
+
resumedPush = $resumedPush
|
|
319
356
|
}
|
|
320
357
|
} catch {
|
|
321
358
|
$exitCode = 1
|
|
@@ -12,6 +12,7 @@ interface FinalizerResult {
|
|
|
12
12
|
commitSha?: string;
|
|
13
13
|
remote?: string;
|
|
14
14
|
upstreamRef?: string;
|
|
15
|
+
resumedPush?: boolean;
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
const scriptPath = fileURLToPath(new URL("./finalizer.ps1", import.meta.url));
|
|
@@ -30,6 +31,7 @@ node files/source-build-helper.js verify-source ../.. files/source-integrity.jso
|
|
|
30
31
|
Then include Tools/CUELO_Setup/files/source-integrity.json in the same commit.`;
|
|
31
32
|
const memorySyncScript = "Tools/OMP_Global_Config/memory-sync/sync.ts";
|
|
32
33
|
const memoryTransport = "Tools/OMP_Global_Config/memory-sync/memories.jsonl";
|
|
34
|
+
const pathKey = (value: string) => process.platform === "win32" ? value.toLowerCase() : value;
|
|
33
35
|
|
|
34
36
|
type Exec = (command: string, args: string[], options: { cwd: string }) => Promise<{ code: number; stdout: string; stderr?: string }>;
|
|
35
37
|
|
|
@@ -54,7 +56,7 @@ async function exportMemories(cwd: string, files: string[], exec: Exec): Promise
|
|
|
54
56
|
if (!files.every(inRoot)) return {};
|
|
55
57
|
const transport = relative(cwd, join(root, ...memoryTransport.split("/"))).split(sep).join("/");
|
|
56
58
|
if (transport.startsWith("../")) return { note: "기억 export 생략: 현재 cwd 밖의 파일이라 이 커밋에 넣을 수 없다." };
|
|
57
|
-
if (files.some((file) => file.replace(/\\/g, "/")
|
|
59
|
+
if (files.some((file) => pathKey(file.replace(/\\/g, "/")) === pathKey(transport))) return {};
|
|
58
60
|
const exported = await exec("bun", [join(root, ...memorySyncScript.split("/")), "export", root], { cwd: root });
|
|
59
61
|
if (exported.code !== 0) {
|
|
60
62
|
const reason = (exported.stderr || exported.stdout).trim().split(/\r?\n/).at(-1) || `exit ${exported.code}`;
|
|
@@ -99,7 +101,7 @@ async function checkSourceManifest(
|
|
|
99
101
|
if (!path || path === ".." || path.startsWith("../")) return;
|
|
100
102
|
targets.push({ root, path });
|
|
101
103
|
}
|
|
102
|
-
if (!targets.length || targets.some(({ root }) => root
|
|
104
|
+
if (!targets.length || targets.some(({ root }) => pathKey(root) !== pathKey(targets[0].root))) return;
|
|
103
105
|
|
|
104
106
|
const root = targets[0].root;
|
|
105
107
|
try {
|
|
@@ -108,7 +110,7 @@ async function checkSourceManifest(
|
|
|
108
110
|
if ((error as NodeJS.ErrnoException).code === "ENOENT") return;
|
|
109
111
|
throw error;
|
|
110
112
|
}
|
|
111
|
-
if (targets.some(({ path }) => path
|
|
113
|
+
if (targets.some(({ path }) => pathKey(path) === pathKey(manifestPath))) return;
|
|
112
114
|
|
|
113
115
|
let packagedTools: string[] = [];
|
|
114
116
|
try {
|
|
@@ -165,7 +167,7 @@ const factory: CustomToolFactory = (pi) => ({
|
|
|
165
167
|
label: "Git Finalize",
|
|
166
168
|
loadMode: "essential",
|
|
167
169
|
description:
|
|
168
|
-
"Atomically finalize relative exact files in one repository. Resolve every target from its nearest existing parent. Treat matching git common-dir values as the same repository: restrict those targets to paths inside cwd or an exact direct child file of the cwd repository root, while allowing one distinct repository; reject mixed repositories before staging. Serialize by repository/upstream, verify exact paths and ancestry, commit, then push the created SHA. Main only.",
|
|
170
|
+
"Atomically finalize relative exact files in one repository. Resolve every target from its nearest existing parent. Treat matching git common-dir values as the same repository: restrict those targets to paths inside cwd or an exact direct child file of the cwd repository root, while allowing one distinct repository; reject mixed repositories before staging. Serialize by repository/upstream, verify exact paths and ancestry, commit, then push the created SHA. If an earlier run committed but its push failed, call again with the same files: unchanged files found in unpushed upstream..HEAD commits are accepted and HEAD is pushed without a new commit. Main only.",
|
|
169
171
|
parameters: pi.zod.object({
|
|
170
172
|
files: pi.zod.array(pi.zod.string()),
|
|
171
173
|
message: pi.zod.string(),
|
|
@@ -176,7 +178,6 @@ const factory: CustomToolFactory = (pi) => ({
|
|
|
176
178
|
const message = params.message.trim();
|
|
177
179
|
if (requested.length === 0) throw new Error("git_finalize requires at least one exact file path.");
|
|
178
180
|
if (!message) throw new Error("git_finalize requires a non-empty commit message.");
|
|
179
|
-
if (process.platform !== "win32") throw new Error("git_finalize currently requires Windows PowerShell.");
|
|
180
181
|
|
|
181
182
|
const exec: Exec = (command, args, options) => pi.exec(command, args, { ...options, signal });
|
|
182
183
|
await checkSourceManifest(pi.cwd, requested, exec);
|
|
@@ -193,7 +194,7 @@ const factory: CustomToolFactory = (pi) => ({
|
|
|
193
194
|
try {
|
|
194
195
|
await writeFile(requestPath, JSON.stringify({ cwd: pi.cwd, files, message }), "utf8");
|
|
195
196
|
const result = await pi.exec(
|
|
196
|
-
"powershell.exe",
|
|
197
|
+
process.platform === "win32" ? "powershell.exe" : "pwsh",
|
|
197
198
|
["-NoProfile", "-ExecutionPolicy", "Bypass", "-File", scriptPath, "-Request", requestPath],
|
|
198
199
|
{ cwd: pi.cwd, signal, timeout: 180_000 },
|
|
199
200
|
);
|
|
@@ -207,6 +208,7 @@ const factory: CustomToolFactory = (pi) => ({
|
|
|
207
208
|
{
|
|
208
209
|
type: "text",
|
|
209
210
|
text: `Committed and pushed ${parsed.commitSha} to ${parsed.remote} ${parsed.upstreamRef}.`
|
|
211
|
+
+ (parsed.resumedPush ? " 이미 커밋돼 있던 미전송 커밋을 함께 다시 보냈다." : "")
|
|
210
212
|
+ (memory.file ? ` 기억 transport(${memory.file})를 함께 커밋했다.` : "")
|
|
211
213
|
+ (memory.note ? ` ${memory.note}` : ""),
|
|
212
214
|
},
|