cuelo 0.9.6 → 0.9.7
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 +12 -11
- 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 +2 -2
- 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 +12 -11
- 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 +2 -2
- 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-fe25836fd76b4655.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-2bf5721b24426873.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/vrwvD7kuXEjDJZtO0Q3iO/_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 +6 -3
- package/Tools/CUELO_Setup/files/native-runtime-patch.js +3 -3
- package/Tools/OMP_Global_Config/agent/RULES.md +1 -0
- 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 +2 -1
- 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 → vrwvD7kuXEjDJZtO0Q3iO}/_ssgManifest.js +0 -0
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-webpack","duration":
|
|
1
|
+
[{"name":"run-webpack","duration":72389084,"timestamp":482166,"id":14,"parentId":1,"tags":{},"startTime":1791304441290,"traceId":"2884e985fe8af4dd"},{"name":"run-typescript","duration":12676339,"timestamp":73190125,"id":11084,"parentId":1,"tags":{},"startTime":1791304513999,"traceId":"2884e985fe8af4dd"},{"name":"static-check","duration":3728380,"timestamp":85943245,"id":11087,"parentId":1,"tags":{},"startTime":1791304526752,"traceId":"2884e985fe8af4dd"},{"name":"static-generation","duration":5957315,"timestamp":89752602,"id":11259,"parentId":1,"tags":{},"startTime":1791304530562,"traceId":"2884e985fe8af4dd"},{"name":"collect-build-traces","duration":13514574,"timestamp":89731595,"id":11256,"parentId":1,"tags":{},"startTime":1791304530541,"traceId":"2884e985fe8af4dd"},{"name":"telemetry-flush","duration":44,"timestamp":103249229,"id":11268,"parentId":1,"tags":{},"startTime":1791304544058,"traceId":"2884e985fe8af4dd"},{"name":"next-build","duration":102844180,"timestamp":405110,"id":1,"tags":{"buildMode":"default","version":"16.2.12","bundler":"webpack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1791304441213,"traceId":"2884e985fe8af4dd"}]
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
// File: D:\a\CUELO\CUELO\app\api\github\projects\route.ts
|
|
2
|
+
import * as entry from '../../../../../../app/api/github/projects/route.js'
|
|
3
|
+
import type { NextRequest } from 'next/server.js'
|
|
4
|
+
|
|
5
|
+
import type { InstantConfigForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
|
|
6
|
+
|
|
7
|
+
type TEntry = typeof import('../../../../../../app/api/github/projects/route.js')
|
|
8
|
+
|
|
9
|
+
type SegmentParams<T extends Object = any> = T extends Record<string, any>
|
|
10
|
+
? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
|
|
11
|
+
: T
|
|
12
|
+
|
|
13
|
+
// Check that the entry is a valid entry
|
|
14
|
+
checkFields<Diff<{
|
|
15
|
+
GET?: Function
|
|
16
|
+
HEAD?: Function
|
|
17
|
+
OPTIONS?: Function
|
|
18
|
+
POST?: Function
|
|
19
|
+
PUT?: Function
|
|
20
|
+
DELETE?: Function
|
|
21
|
+
PATCH?: Function
|
|
22
|
+
config?: {}
|
|
23
|
+
generateStaticParams?: Function
|
|
24
|
+
unstable_instant?: InstantConfigForTypeCheckInternal
|
|
25
|
+
unstable_dynamicStaleTime?: number
|
|
26
|
+
revalidate?: RevalidateRange<TEntry> | false
|
|
27
|
+
dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
|
|
28
|
+
dynamicParams?: boolean
|
|
29
|
+
fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
|
|
30
|
+
preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
|
|
31
|
+
runtime?: 'nodejs' | 'experimental-edge' | 'edge'
|
|
32
|
+
maxDuration?: number
|
|
33
|
+
|
|
34
|
+
}, TEntry, ''>>()
|
|
35
|
+
|
|
36
|
+
type RouteContext = { params: Promise<SegmentParams> }
|
|
37
|
+
// Check the prop type of the entry function
|
|
38
|
+
if ('GET' in entry) {
|
|
39
|
+
checkFields<
|
|
40
|
+
Diff<
|
|
41
|
+
ParamCheck<Request | NextRequest>,
|
|
42
|
+
{
|
|
43
|
+
__tag__: 'GET'
|
|
44
|
+
__param_position__: 'first'
|
|
45
|
+
__param_type__: FirstArg<MaybeField<TEntry, 'GET'>>
|
|
46
|
+
},
|
|
47
|
+
'GET'
|
|
48
|
+
>
|
|
49
|
+
>()
|
|
50
|
+
checkFields<
|
|
51
|
+
Diff<
|
|
52
|
+
ParamCheck<RouteContext>,
|
|
53
|
+
{
|
|
54
|
+
__tag__: 'GET'
|
|
55
|
+
__param_position__: 'second'
|
|
56
|
+
__param_type__: SecondArg<MaybeField<TEntry, 'GET'>>
|
|
57
|
+
},
|
|
58
|
+
'GET'
|
|
59
|
+
>
|
|
60
|
+
>()
|
|
61
|
+
|
|
62
|
+
checkFields<
|
|
63
|
+
Diff<
|
|
64
|
+
{
|
|
65
|
+
__tag__: 'GET',
|
|
66
|
+
__return_type__: Response | void | never | Promise<Response | void | never>
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
__tag__: 'GET',
|
|
70
|
+
__return_type__: ReturnType<MaybeField<TEntry, 'GET'>>
|
|
71
|
+
},
|
|
72
|
+
'GET'
|
|
73
|
+
>
|
|
74
|
+
>()
|
|
75
|
+
}
|
|
76
|
+
// Check the prop type of the entry function
|
|
77
|
+
if ('HEAD' in entry) {
|
|
78
|
+
checkFields<
|
|
79
|
+
Diff<
|
|
80
|
+
ParamCheck<Request | NextRequest>,
|
|
81
|
+
{
|
|
82
|
+
__tag__: 'HEAD'
|
|
83
|
+
__param_position__: 'first'
|
|
84
|
+
__param_type__: FirstArg<MaybeField<TEntry, 'HEAD'>>
|
|
85
|
+
},
|
|
86
|
+
'HEAD'
|
|
87
|
+
>
|
|
88
|
+
>()
|
|
89
|
+
checkFields<
|
|
90
|
+
Diff<
|
|
91
|
+
ParamCheck<RouteContext>,
|
|
92
|
+
{
|
|
93
|
+
__tag__: 'HEAD'
|
|
94
|
+
__param_position__: 'second'
|
|
95
|
+
__param_type__: SecondArg<MaybeField<TEntry, 'HEAD'>>
|
|
96
|
+
},
|
|
97
|
+
'HEAD'
|
|
98
|
+
>
|
|
99
|
+
>()
|
|
100
|
+
|
|
101
|
+
checkFields<
|
|
102
|
+
Diff<
|
|
103
|
+
{
|
|
104
|
+
__tag__: 'HEAD',
|
|
105
|
+
__return_type__: Response | void | never | Promise<Response | void | never>
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
__tag__: 'HEAD',
|
|
109
|
+
__return_type__: ReturnType<MaybeField<TEntry, 'HEAD'>>
|
|
110
|
+
},
|
|
111
|
+
'HEAD'
|
|
112
|
+
>
|
|
113
|
+
>()
|
|
114
|
+
}
|
|
115
|
+
// Check the prop type of the entry function
|
|
116
|
+
if ('OPTIONS' in entry) {
|
|
117
|
+
checkFields<
|
|
118
|
+
Diff<
|
|
119
|
+
ParamCheck<Request | NextRequest>,
|
|
120
|
+
{
|
|
121
|
+
__tag__: 'OPTIONS'
|
|
122
|
+
__param_position__: 'first'
|
|
123
|
+
__param_type__: FirstArg<MaybeField<TEntry, 'OPTIONS'>>
|
|
124
|
+
},
|
|
125
|
+
'OPTIONS'
|
|
126
|
+
>
|
|
127
|
+
>()
|
|
128
|
+
checkFields<
|
|
129
|
+
Diff<
|
|
130
|
+
ParamCheck<RouteContext>,
|
|
131
|
+
{
|
|
132
|
+
__tag__: 'OPTIONS'
|
|
133
|
+
__param_position__: 'second'
|
|
134
|
+
__param_type__: SecondArg<MaybeField<TEntry, 'OPTIONS'>>
|
|
135
|
+
},
|
|
136
|
+
'OPTIONS'
|
|
137
|
+
>
|
|
138
|
+
>()
|
|
139
|
+
|
|
140
|
+
checkFields<
|
|
141
|
+
Diff<
|
|
142
|
+
{
|
|
143
|
+
__tag__: 'OPTIONS',
|
|
144
|
+
__return_type__: Response | void | never | Promise<Response | void | never>
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
__tag__: 'OPTIONS',
|
|
148
|
+
__return_type__: ReturnType<MaybeField<TEntry, 'OPTIONS'>>
|
|
149
|
+
},
|
|
150
|
+
'OPTIONS'
|
|
151
|
+
>
|
|
152
|
+
>()
|
|
153
|
+
}
|
|
154
|
+
// Check the prop type of the entry function
|
|
155
|
+
if ('POST' in entry) {
|
|
156
|
+
checkFields<
|
|
157
|
+
Diff<
|
|
158
|
+
ParamCheck<Request | NextRequest>,
|
|
159
|
+
{
|
|
160
|
+
__tag__: 'POST'
|
|
161
|
+
__param_position__: 'first'
|
|
162
|
+
__param_type__: FirstArg<MaybeField<TEntry, 'POST'>>
|
|
163
|
+
},
|
|
164
|
+
'POST'
|
|
165
|
+
>
|
|
166
|
+
>()
|
|
167
|
+
checkFields<
|
|
168
|
+
Diff<
|
|
169
|
+
ParamCheck<RouteContext>,
|
|
170
|
+
{
|
|
171
|
+
__tag__: 'POST'
|
|
172
|
+
__param_position__: 'second'
|
|
173
|
+
__param_type__: SecondArg<MaybeField<TEntry, 'POST'>>
|
|
174
|
+
},
|
|
175
|
+
'POST'
|
|
176
|
+
>
|
|
177
|
+
>()
|
|
178
|
+
|
|
179
|
+
checkFields<
|
|
180
|
+
Diff<
|
|
181
|
+
{
|
|
182
|
+
__tag__: 'POST',
|
|
183
|
+
__return_type__: Response | void | never | Promise<Response | void | never>
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
__tag__: 'POST',
|
|
187
|
+
__return_type__: ReturnType<MaybeField<TEntry, 'POST'>>
|
|
188
|
+
},
|
|
189
|
+
'POST'
|
|
190
|
+
>
|
|
191
|
+
>()
|
|
192
|
+
}
|
|
193
|
+
// Check the prop type of the entry function
|
|
194
|
+
if ('PUT' in entry) {
|
|
195
|
+
checkFields<
|
|
196
|
+
Diff<
|
|
197
|
+
ParamCheck<Request | NextRequest>,
|
|
198
|
+
{
|
|
199
|
+
__tag__: 'PUT'
|
|
200
|
+
__param_position__: 'first'
|
|
201
|
+
__param_type__: FirstArg<MaybeField<TEntry, 'PUT'>>
|
|
202
|
+
},
|
|
203
|
+
'PUT'
|
|
204
|
+
>
|
|
205
|
+
>()
|
|
206
|
+
checkFields<
|
|
207
|
+
Diff<
|
|
208
|
+
ParamCheck<RouteContext>,
|
|
209
|
+
{
|
|
210
|
+
__tag__: 'PUT'
|
|
211
|
+
__param_position__: 'second'
|
|
212
|
+
__param_type__: SecondArg<MaybeField<TEntry, 'PUT'>>
|
|
213
|
+
},
|
|
214
|
+
'PUT'
|
|
215
|
+
>
|
|
216
|
+
>()
|
|
217
|
+
|
|
218
|
+
checkFields<
|
|
219
|
+
Diff<
|
|
220
|
+
{
|
|
221
|
+
__tag__: 'PUT',
|
|
222
|
+
__return_type__: Response | void | never | Promise<Response | void | never>
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
__tag__: 'PUT',
|
|
226
|
+
__return_type__: ReturnType<MaybeField<TEntry, 'PUT'>>
|
|
227
|
+
},
|
|
228
|
+
'PUT'
|
|
229
|
+
>
|
|
230
|
+
>()
|
|
231
|
+
}
|
|
232
|
+
// Check the prop type of the entry function
|
|
233
|
+
if ('DELETE' in entry) {
|
|
234
|
+
checkFields<
|
|
235
|
+
Diff<
|
|
236
|
+
ParamCheck<Request | NextRequest>,
|
|
237
|
+
{
|
|
238
|
+
__tag__: 'DELETE'
|
|
239
|
+
__param_position__: 'first'
|
|
240
|
+
__param_type__: FirstArg<MaybeField<TEntry, 'DELETE'>>
|
|
241
|
+
},
|
|
242
|
+
'DELETE'
|
|
243
|
+
>
|
|
244
|
+
>()
|
|
245
|
+
checkFields<
|
|
246
|
+
Diff<
|
|
247
|
+
ParamCheck<RouteContext>,
|
|
248
|
+
{
|
|
249
|
+
__tag__: 'DELETE'
|
|
250
|
+
__param_position__: 'second'
|
|
251
|
+
__param_type__: SecondArg<MaybeField<TEntry, 'DELETE'>>
|
|
252
|
+
},
|
|
253
|
+
'DELETE'
|
|
254
|
+
>
|
|
255
|
+
>()
|
|
256
|
+
|
|
257
|
+
checkFields<
|
|
258
|
+
Diff<
|
|
259
|
+
{
|
|
260
|
+
__tag__: 'DELETE',
|
|
261
|
+
__return_type__: Response | void | never | Promise<Response | void | never>
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
__tag__: 'DELETE',
|
|
265
|
+
__return_type__: ReturnType<MaybeField<TEntry, 'DELETE'>>
|
|
266
|
+
},
|
|
267
|
+
'DELETE'
|
|
268
|
+
>
|
|
269
|
+
>()
|
|
270
|
+
}
|
|
271
|
+
// Check the prop type of the entry function
|
|
272
|
+
if ('PATCH' in entry) {
|
|
273
|
+
checkFields<
|
|
274
|
+
Diff<
|
|
275
|
+
ParamCheck<Request | NextRequest>,
|
|
276
|
+
{
|
|
277
|
+
__tag__: 'PATCH'
|
|
278
|
+
__param_position__: 'first'
|
|
279
|
+
__param_type__: FirstArg<MaybeField<TEntry, 'PATCH'>>
|
|
280
|
+
},
|
|
281
|
+
'PATCH'
|
|
282
|
+
>
|
|
283
|
+
>()
|
|
284
|
+
checkFields<
|
|
285
|
+
Diff<
|
|
286
|
+
ParamCheck<RouteContext>,
|
|
287
|
+
{
|
|
288
|
+
__tag__: 'PATCH'
|
|
289
|
+
__param_position__: 'second'
|
|
290
|
+
__param_type__: SecondArg<MaybeField<TEntry, 'PATCH'>>
|
|
291
|
+
},
|
|
292
|
+
'PATCH'
|
|
293
|
+
>
|
|
294
|
+
>()
|
|
295
|
+
|
|
296
|
+
checkFields<
|
|
297
|
+
Diff<
|
|
298
|
+
{
|
|
299
|
+
__tag__: 'PATCH',
|
|
300
|
+
__return_type__: Response | void | never | Promise<Response | void | never>
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
__tag__: 'PATCH',
|
|
304
|
+
__return_type__: ReturnType<MaybeField<TEntry, 'PATCH'>>
|
|
305
|
+
},
|
|
306
|
+
'PATCH'
|
|
307
|
+
>
|
|
308
|
+
>()
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// Check the arguments and return type of the generateStaticParams function
|
|
312
|
+
if ('generateStaticParams' in entry) {
|
|
313
|
+
checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
|
|
314
|
+
checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
export interface PageProps {
|
|
318
|
+
params?: Promise<SegmentParams>
|
|
319
|
+
searchParams?: Promise<any>
|
|
320
|
+
}
|
|
321
|
+
export interface LayoutProps {
|
|
322
|
+
children?: React.ReactNode
|
|
323
|
+
|
|
324
|
+
params?: Promise<SegmentParams>
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
// =============
|
|
328
|
+
// Utility types
|
|
329
|
+
type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
|
|
330
|
+
|
|
331
|
+
// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
|
|
332
|
+
type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
|
|
333
|
+
type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
|
|
334
|
+
|
|
335
|
+
type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
|
|
336
|
+
type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
|
|
337
|
+
type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
|
|
338
|
+
|
|
339
|
+
type ParamCheck<T> = {
|
|
340
|
+
__tag__: string
|
|
341
|
+
__param_position__: string
|
|
342
|
+
__param_type__: T
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
function checkFields<_ extends { [k in keyof any]: never }>() {}
|
|
346
|
+
|
|
347
|
+
// https://github.com/sindresorhus/type-fest
|
|
348
|
+
type Numeric = number | bigint
|
|
349
|
+
type Zero = 0 | 0n
|
|
350
|
+
type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
|
|
351
|
+
type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
|
package/.next/types/routes.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Do not edit this file manually
|
|
3
3
|
|
|
4
4
|
type AppRoutes = "/" | "/office" | "/office-preview" | "/recover"
|
|
5
|
-
type AppRouteHandlerRoutes = "/api/agent/[id]" | "/api/agent/[id]/account" | "/api/agent/[id]/bash-output" | "/api/agent/[id]/events" | "/api/agent/new" | "/api/agent/running" | "/api/attachment-settings" | "/api/attachments" | "/api/attachments/[id]/transcription" | "/api/attachments/draft" | "/api/auth/all-providers" | "/api/auth/api-key/[provider]" | "/api/auth/login/[provider]" | "/api/auth/logout/[provider]" | "/api/auth/providers" | "/api/cwd/browse" | "/api/cwd/validate" | "/api/default-cwd" | "/api/display-settings" | "/api/document-text" | "/api/experiments" | "/api/file-index" | "/api/files/[...path]" | "/api/git/diff" | "/api/git/status" | "/api/gpt6/handles" | "/api/gpt6/reply" | "/api/gpt6/token" | "/api/gpt6/web6-session" | "/api/home" | "/api/live/call/[callId]" | "/api/live/character-voice" | "/api/live/events" | "/api/live/offer" | "/api/live/voices" | "/api/lounge" | "/api/lounge/events" | "/api/mcp" | "/api/model-roles" | "/api/models" | "/api/models-config" | "/api/models-config/catalog" | "/api/models-config/discover" | "/api/models-config/test" | "/api/office-avatars" | "/api/office-avatars/[id]" | "/api/plugins" | "/api/project-trust" | "/api/projects" | "/api/runs" | "/api/runs/[runId]" | "/api/sessions" | "/api/sessions/[id]" | "/api/sessions/[id]/auto-name" | "/api/sessions/[id]/context" | "/api/sessions/[id]/entries/[entryId]/thinking" | "/api/sessions/[id]/export" | "/api/sessions/[id]/state" | "/api/sessions/search" | "/api/settings" | "/api/sidecars/[service]/[...path]" | "/api/skills" | "/api/skills/check" | "/api/skills/install" | "/api/skills/search" | "/api/skills/update" | "/api/theme" | "/api/tool-image" | "/api/update-maintenance" | "/api/updates" | "/api/web-access" | "/api/web-access/recovery" | "/api/web6/consults" | "/api/worktrees"
|
|
5
|
+
type AppRouteHandlerRoutes = "/api/agent/[id]" | "/api/agent/[id]/account" | "/api/agent/[id]/bash-output" | "/api/agent/[id]/events" | "/api/agent/new" | "/api/agent/running" | "/api/attachment-settings" | "/api/attachments" | "/api/attachments/[id]/transcription" | "/api/attachments/draft" | "/api/auth/all-providers" | "/api/auth/api-key/[provider]" | "/api/auth/login/[provider]" | "/api/auth/logout/[provider]" | "/api/auth/providers" | "/api/cwd/browse" | "/api/cwd/validate" | "/api/default-cwd" | "/api/display-settings" | "/api/document-text" | "/api/experiments" | "/api/file-index" | "/api/files/[...path]" | "/api/git/diff" | "/api/git/status" | "/api/github/projects" | "/api/gpt6/handles" | "/api/gpt6/reply" | "/api/gpt6/token" | "/api/gpt6/web6-session" | "/api/home" | "/api/live/call/[callId]" | "/api/live/character-voice" | "/api/live/events" | "/api/live/offer" | "/api/live/voices" | "/api/lounge" | "/api/lounge/events" | "/api/mcp" | "/api/model-roles" | "/api/models" | "/api/models-config" | "/api/models-config/catalog" | "/api/models-config/discover" | "/api/models-config/test" | "/api/office-avatars" | "/api/office-avatars/[id]" | "/api/plugins" | "/api/project-trust" | "/api/projects" | "/api/runs" | "/api/runs/[runId]" | "/api/sessions" | "/api/sessions/[id]" | "/api/sessions/[id]/auto-name" | "/api/sessions/[id]/context" | "/api/sessions/[id]/entries/[entryId]/thinking" | "/api/sessions/[id]/export" | "/api/sessions/[id]/state" | "/api/sessions/search" | "/api/settings" | "/api/sidecars/[service]/[...path]" | "/api/skills" | "/api/skills/check" | "/api/skills/install" | "/api/skills/search" | "/api/skills/update" | "/api/theme" | "/api/tool-image" | "/api/update-maintenance" | "/api/updates" | "/api/web-access" | "/api/web-access/recovery" | "/api/web6/consults" | "/api/worktrees"
|
|
6
6
|
type PageRoutes = never
|
|
7
7
|
type LayoutRoutes = "/"
|
|
8
8
|
type RedirectRoutes = never
|
|
@@ -37,6 +37,7 @@ interface ParamMap {
|
|
|
37
37
|
"/api/files/[...path]": { "path": string[]; }
|
|
38
38
|
"/api/git/diff": {}
|
|
39
39
|
"/api/git/status": {}
|
|
40
|
+
"/api/github/projects": {}
|
|
40
41
|
"/api/gpt6/handles": {}
|
|
41
42
|
"/api/gpt6/reply": {}
|
|
42
43
|
"/api/gpt6/token": {}
|
package/.next/types/validator.ts
CHANGED
|
@@ -308,6 +308,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
308
308
|
type __Unused = __Check
|
|
309
309
|
}
|
|
310
310
|
|
|
311
|
+
// Validate ../../app/api/github/projects/route.ts
|
|
312
|
+
{
|
|
313
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/github/projects">> = Specific
|
|
314
|
+
const handler = {} as typeof import("../../app/api/github/projects/route.js")
|
|
315
|
+
type __Check = __IsExpected<typeof handler>
|
|
316
|
+
// @ts-ignore
|
|
317
|
+
type __Unused = __Check
|
|
318
|
+
}
|
|
319
|
+
|
|
311
320
|
// Validate ../../app/api/gpt6/handles/route.ts
|
|
312
321
|
{
|
|
313
322
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/gpt6/handles">> = Specific
|
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ Use the same `~/.omp/agent` sessions, credentials and model configuration from t
|
|
|
16
16
|
|
|
17
17
|
**한국어:** CUELO는 omp(oh-my-pi)를 위한 오픈소스 AI 코딩 에이전트 작업 공간이자 하네스입니다. 웹 앱은 omp SDK를 서버 안에서 실행하고, `omp` CLI와 같은 `~/.omp/agent` 디렉터리를 씁니다. 터미널에서 하던 세션을 브라우저에서 이어 가고, 다시 터미널로 돌아가도 기록·계정·모델 설정을 공유합니다.
|
|
18
18
|
|
|
19
|
-
내장 OMP 코어는 **18.6.
|
|
19
|
+
내장 OMP 코어는 **18.6.3**입니다. 추론 강도를 바꾸거나 서브에이전트를 다시 이어도 예비 모델 설정을 유지하며, 별도로 설치한 `omp` CLI의 버전은 웹 업데이트와 독립적입니다.
|
|
20
20
|
|
|
21
21
|
CUELO의 목적은 작업 중 확인한 실패와 막힘을 기억·작업 규칙·실행 절차에 반영해, 사람이 같은 문제를 다시 지적하지 않아도 다음 작업에서 실수를 줄이는 것입니다. 원인을 확인하고 필요한 부분만 바꾸며, 다음 작업에서 적용과 효과를 확인하는 것까지를 지향합니다. 기록을 저장했다는 이유만으로 자동 개선이 끝났다고 보지는 않습니다.
|
|
22
22
|
|
|
@@ -31,7 +31,7 @@ CUELO의 목적은 작업 중 확인한 실패와 막힘을 기억·작업 규
|
|
|
31
31
|
| 구분 | 내용 |
|
|
32
32
|
| --- | --- |
|
|
33
33
|
| 앱·런타임 설치 뒤 동작 | 세션 탐색·실시간 대화·분기/fork, 모델 역할, provider·플러그인·스킬 관리, 파일 미리보기, 비밀번호 잠금, 캐릭터 알림 등. 대화에는 별도 제공자 인증이 필요합니다 |
|
|
34
|
-
| 사용자가 준비할 것 | Node.js·Bun과 자신의 모델 제공자 계정·모델 선택. 소스 checkout/전체 Git 기능에는 Git for Windows도 필요합니다. 인증정보·세션·설정은 사용자의 로컬 `~/.omp/agent`에 저장합니다 |
|
|
34
|
+
| 사용자가 준비할 것 | Node.js·Bun과 자신의 모델 제공자 계정·모델 선택. 소스 checkout/전체 Git 기능에는 Git(Windows는 Git for Windows)도 필요합니다. 인증정보·세션·설정은 사용자의 로컬 `~/.omp/agent`에 저장합니다 |
|
|
35
35
|
| 로컬 사이드카 (공개) | 계정 사용량 카드, 사이드 챗(`/btw`), SubAgent 아카이브의 실행 소스도 포함합니다. `start`가 앱과 함께 실행합니다. usage의 CLI fallback·`stats`에는 별도 `omp` CLI가 필요합니다 |
|
|
36
36
|
| OMP 하네스 (공개) | Main/Maker 역할 분담, 발주·검수 계약, task guard, 판단 라우팅(Jev), 캐릭터 음성, 명령 가드의 규칙·SOP·확장과 앱 SDK core 패치입니다. `setup`으로 설치합니다. [하네스 안내](./docs/harness.md)에 Jev의 외부 자격 경계가 있습니다 |
|
|
37
37
|
| 포함하지 않는 것 | 개발자의 로그인 정보·API 키·개인 계정 및 모델 설정·개인 skill·대화와 작업 기록·PC별 운영 자료. 공개 설치는 필요한 비개인 운영 기본값만 제공하고 모델은 사용자가 고릅니다 |
|
|
@@ -53,6 +53,8 @@ CUELO의 목적은 작업 중 확인한 실패와 막힘을 기억·작업 규
|
|
|
53
53
|
- 모델 선택기 맨 위에 자주 고른 모델이 나오고, 팔레트에서 넓은 대화 폭을 켤 수 있습니다.
|
|
54
54
|
- 입력창 아래 줄은 Main 프리셋 → 그 제공자의 모델 → 추론 강도 순서입니다. "자동, 최대 high"처럼 상한을 고를 수 있고, Auto가 실제로 적용한 값은 「현재 추론 강도」로 따로 표시합니다. 실행 중에 지시를 덧붙이면 Auto가 다시 판단해 강도를 올릴 수 있고, 같은 답변 안에서는 내리지 않습니다. 새 대화는 선택한 상한 적용을 마친 뒤 첫 메시지를 보내며, 적용에 실패하면 재전송 때 다시 시도합니다.
|
|
55
55
|
- 도구 옆 시간에는 모델 응답 생성 시간을 포함하지 않습니다. 실행 전에 취소된 도구나 완료 시각을 확인할 수 없는 옛 기록에는 시간을 추정해 붙이지 않습니다.
|
|
56
|
+
- 자동 제목과 수동 「이름 짓기」는 요청 언어를 따릅니다. 한국어 요청에는 한국어 제목을 붙이고 파일명·명령·제품명은 원문을 유지합니다. 이미 붙은 제목은 바꾸지 않습니다.
|
|
57
|
+
- 클라우드에서는 GitHub 저장소를 선택하거나 URL을 입력해 가져온 뒤 프로젝트로 열 수 있습니다. GitHub 연결과 서버 폴더 열기를 한 화면에서 제공하며, 클라우드 기능을 켜지 않은 인스턴스의 화면은 그대로입니다. 설정·인증·작업물 보존과 이전 방법은 [Docker 안내](./docs/docker.md)를 확인하세요.
|
|
56
58
|
|
|
57
59
|
**계정과 자원**
|
|
58
60
|
|
|
@@ -116,7 +118,7 @@ CUELO의 목적은 작업 중 확인한 실패와 막힘을 기억·작업 규
|
|
|
116
118
|
|
|
117
119
|
CUELO는 GitHub 소스와 npm 패키지 [`cuelo`](https://www.npmjs.com/package/cuelo)로 설치합니다. npm의 `omp-web`은 upstream 프로젝트이며 CUELO와 별개입니다. **기존 `omp` CLI만 설치한 PC에도 `omp-web` 없이 CUELO를 추가할 수 있습니다.** 기존 `config.yml`·계정·세션을 보존하는 순서는 [대표 설치 경로](./docs/installation.md#대표-경로-omp만-있는-windows-pc-omp-web-없음)에 있습니다.
|
|
118
120
|
|
|
119
|
-
> **개발·검증 환경은 Windows입니다.** macOS
|
|
121
|
+
> **개발·검증 환경은 Windows와 Linux(WSL2 Ubuntu 24.04)입니다.** 공개 CI는 Windows에서 실행합니다. macOS는 개발·테스트 환경이 아니므로 동작과 지원을 보장하지 않습니다.
|
|
120
122
|
|
|
121
123
|
서버는 **Bun 1.4.2 이상**에서만 실행됩니다(omp SDK가 TypeScript 소스와 `bun:` 내장 모듈을 사용). Node.js 22.19.0 이상도 `install.mjs`와 npm에 필요합니다. Git은 소스 checkout과 Git 작업(worktree·commit 등)에 필요하지만 npm 설치와 기본 대화에는 필요하지 않습니다.
|
|
122
124
|
메모리 패키지가 선언한 선택적 ONNX peer는 `onnxruntime-node:1.21.0`으로 제공합니다. Transformers가 요구하는 별도 버전은 자체 의존성으로 유지하며, 설치 오류를 피하려고 peer 검증을 끄지 않습니다. Mnemopi의 로컬 임베딩은 별도 `fastembed`와 모델을 첫 사용 때 내려받을 수 있습니다.
|
|
@@ -124,6 +126,7 @@ CUELO는 GitHub 소스와 npm 패키지 [`cuelo`](https://www.npmjs.com/package/
|
|
|
124
126
|
```bash
|
|
125
127
|
# Bun 설치
|
|
126
128
|
powershell -c "irm bun.sh/install.ps1 | iex" # Windows
|
|
129
|
+
curl -fsSL https://bun.sh/install | bash # Linux
|
|
127
130
|
|
|
128
131
|
# CUELO 받기와 실행
|
|
129
132
|
git clone https://github.com/gim47656-ship-it/CUELO.git
|
|
@@ -9,9 +9,9 @@ const MEMORY_RE = /(const phase1Model = await resolveMemoryModel\(\{[^}]*?fallba
|
|
|
9
9
|
const MEMORY_DONE = /const phase1Model = await resolveMemoryModel\(\{[^}]*?fallbackRole: "smol"/;
|
|
10
10
|
const EXPECTED = {
|
|
11
11
|
name: 'cuelo',
|
|
12
|
-
version: '0.9.
|
|
12
|
+
version: '0.9.7',
|
|
13
13
|
distribution: 'cuelo',
|
|
14
|
-
coreVersion: '18.6.
|
|
14
|
+
coreVersion: '18.6.3',
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
// OMP core 18.4.12 `src/sdk.ts`: session-scoped AsyncJobManager for a process
|
|
@@ -177,7 +177,7 @@ function readNativePackage(target) {
|
|
|
177
177
|
throw new Error(`unexpected native package ${packageJson.name}@${packageJson.version}`);
|
|
178
178
|
}
|
|
179
179
|
if (!build || build.distribution !== EXPECTED.distribution || build.coreVersion !== EXPECTED.coreVersion) {
|
|
180
|
-
throw new Error('native cueloBuild metadata does not match cuelo / core 18.6.
|
|
180
|
+
throw new Error('native cueloBuild metadata does not match cuelo / core 18.6.3');
|
|
181
181
|
}
|
|
182
182
|
return packageJson;
|
|
183
183
|
}
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
그 자리에서 멈춰 원인 근거·시도한 것·남은 막힘을 보고한다.
|
|
29
29
|
- 도구·저장소·현재 문맥으로 해결할 수 있는 작업은 확인을 요청하거나 중간 단계에서 멈추지 않고 끝까지 수행한다. 단, 삭제·배포·비용 발생·호환성 파괴는 실행 전에 사용자 승인을 받는다.
|
|
30
30
|
- MCP 설치·등록·인증·권한 변경은 대상과 범위를 설명하고 먼저 사용자 승인을 받는다. 승인 뒤에는 에이전트가 가능한 설치·설정·연결·검증을 끝까지 실행한다. "사용자 승인 필요"를 "사용자가 직접 실행해야 함"으로 바꿔 해석하지 않는다. 사용자 본인 로그인·인증정보 입력·제공자 안전 확인·동의처럼 사람이 필요한 단계만 사용자에게 넘긴다. JEV 추천·필요성 판정은 사용자 승인을 대신하지 않는다.
|
|
31
|
+
- 호스트 OS 시스템 변경(사용자, 2026-10-06): 커널·필터 드라이버, 부팅·System 시작 서비스의 `Start` 값, 네트워크 스택·방화벽·보안/금융 보안 프로그램, 부팅 설정, 시스템 레지스트리는 "꺼 보고 확인" 같은 진단 수단으로 건드리지 않는다. 바꿔야 할 근거가 있으면 실행 전에 대상, 현재 값, 바꿀 값, 예상 영향(네트워크 단절·부팅 실패 가능성), 되돌리는 방법을 설명하고 그 정확한 변경에 대해 사용자 승인을 받는다. "UAC 창이 뜨면 허용해 주세요"는 승인 요청이 아니며 UAC 허용도 승인으로 보지 않는다. 비활성화보다 해당 프로그램의 정식 제거·설정을 먼저 검토하고, 읽기 전용 조회(`reg query`·`sc query`)로 원인을 먼저 좁힌다.
|
|
31
32
|
- 배포 확인(사용자, 2026-09-26·2026-09-29·2026-09-30): 집 PC(hostname `KYS`)와 사무실 PC(hostname은 비공개 배포 표에 있다)는 같은 절차를 따른다. 그 PC의 CUELO 세션이 소스 변경을 검증하고 커밋·push했으면, 그 커밋의 GitHub CI가 끝날 때까지 지켜본 뒤 결과를 보고하고 배포 여부를 묻는다. 사용자가 승인하면 같은 revision의 `Tools/CUELO_Setup/deploy-live.ps1`과 `Tools/OMP_Global_Config/verify.ps1 -StrictRuntime`을 실행한다(`Tools/CUELO_Setup/setup.ps1`은 앱 전체 설치기라 이 단계가 아니다). 배포 트랜잭션이 새 서버를 띄우기 전에 `Tools/OMP_Global_Config/setup.ps1 -ProfileOnly`로 미러 프로필을 반영하고, 새 서버 `/api/models`의 역할 selector가 미러 `config.yml` `modelRoles`와 같은지 확인해 receipt `profile`에 남기므로 배포 뒤 ProfileOnly·`CUELO-Restart`를 따로 돌리지 않는다. 역할이 다르거나 관측되지 않으면 deploy-live가 exit 3으로 끝나며 rollback하지 않으니, 안내대로 재시작한 뒤 `/api/models`를 다시 확인한다. 세션 안 배포는 deploy-live가 worker 접수 뒤 반환하므로 재개 뒤 transaction receipt의 `profile.modelRoles.matched`가 `true`인지 직접 확인한다. 배포 없이 프로필만 바꿨으면 ProfileOnly 뒤 서버를 재시작하고 같은 역할 확인을 한다. 라이브 서버는 Settings를 시작 때 한 번만 읽어 파일 변경·touch로는 반영되지 않는다. 실행 전 `hostname`으로 PC를 확인한다. 예약 작업 같은 자동 배포는 두지 않는다. stage·rollback 삭제, 이 두 PC 밖의 배포, CLI 업데이트, 비용이 드는 작업은 따로 승인받는다.
|
|
32
33
|
- CI 감시(사용자, 2026-09-28·2026-10-03): 커밋의 CI를 지켜볼 때는 기다릴 워크플로를 이름으로 지정하고(`gh run list --workflow <이름>` 등), 그 run이 끝나는 즉시 결과를 보고한다. 같은 SHA에 걸린 run 전체의 완료를 조건으로 삼지 않는다. CI 성공이 트리거하는 릴리스·배포 run(`workflow_run`)이 몇 초 뒤 같은 SHA로 생겨 CI 완료 보고를 붙잡기 때문이다. 이어 붙는 run은 보고한 뒤 따로 지켜본다. 감시는 `bash`의 `gh run watch <id> --exit-status`나 `gh run list` 직접 조회로 하고, `eval` 커널 안에서 `gh`를 subprocess로 부르는 폴링 루프로 짜지 않는다. 2026-10-03 그런 루프가 빈 출력을 "run 없음"으로 읽어, CI가 끝난 뒤에도 20분 넘게 보고하지 못했다. 직접 짠 폴링은 빈 출력·0이 아닌 exit를 즉시 오류로 끝낸다. 공개 미러 CI는 headSha가 원본 커밋과 다르므로 run 제목으로 찾는다.
|
|
33
34
|
- 구현 방법의 불확실성은 명시 요구·승인된 계약, 실제 호출부와 데이터 흐름, 테스트·재현 결과,
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
You name coding-agent sessions. Write a short title for the task in the next message.
|
|
2
|
+
|
|
3
|
+
Write the title in the language the user wrote the request in. A Korean request gets a Korean title, even when the request mixes in English words or the surrounding notes are in English. Keep code identifiers, file names, commands, product and model names in their original form.
|
|
4
|
+
|
|
5
|
+
Rules:
|
|
6
|
+
- Name the user's goal as a short phrase built from the user's own key words (the feature, component, or error they name). Korean titles end in a noun or a noun phrase such as "~ 수정", "~ 추가", "~ 조사"; English titles are a 3-6 word imperative. Avoid vague filler like "logic", "issues", "functionality", "문제", "작업".
|
|
7
|
+
- Keep it short: about 4-20 Korean characters, or 3-6 English words.
|
|
8
|
+
- `[Image #N, WxH]` marks an image you cannot see. Never mention it or guess what it shows; title the task the surrounding words name.
|
|
9
|
+
- Decline greetings, acknowledgements, gibberish, or requests too vague to name without context you cannot see ("help", "fix this", "이거 봐줘").
|
|
10
|
+
- A `<chat>` block summarizes a longer session: its first `<user>` turn is the opening request, followed by recent turns (often the assistant's working notes, sometimes in English). Title the goal the session is working on, in the language of the user's turns, using the opening request unless later turns clearly moved to a new task; never title the current micro-step, and ignore file names and symbols unless they are the subject.
|
|
11
|
+
- No quotes, trailing punctuation, or explanations.
|
|
12
|
+
|
|
13
|
+
Examples:
|
|
14
|
+
- "the retry queue drops jobs when redis restarts, can u look" → Fix retry queue dropping jobs
|
|
15
|
+
- "npm run build 할 때 peer deps 경고 없애줘" → peer dependency 빌드 경고 제거
|
|
16
|
+
- "로그인하면 가끔 빈 화면만 뜨는데 확인 좀" → 로그인 후 빈 화면 수정
|
|
17
|
+
- `<chat>` whose user turns are Korean and whose assistant notes say "adding a backoff field to RetryPolicy… now wiring jitter" → 재시도 backoff·jitter 추가
|
|
@@ -81,6 +81,8 @@ export interface JevRuntimeDeps {
|
|
|
81
81
|
ledgerPath?: string;
|
|
82
82
|
/** 회상 기억 적용 점검의 bounded advisory latency. 테스트만 짧게 준다. 기본은 MEMORY_APPLICATION_TIMEOUT_MS다. */
|
|
83
83
|
memoryApplicationTimeoutMs?: number;
|
|
84
|
+
/** 셸 오류 분류·안내를 고를 실행 플랫폼. 테스트만 주입한다. 기본은 process.platform이다. */
|
|
85
|
+
platform?: NodeJS.Platform;
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
// ---------------------------------------------------------------------------
|
|
@@ -247,10 +249,14 @@ function textContent(content: unknown): string {
|
|
|
247
249
|
// Windows 기본 curl.exe 는 `-o /dev/null` 을 파일 경로로 받아 쓰지 못하고 응답을 받은 뒤 exit 23 으로 끝난다.
|
|
248
250
|
const WINDOWS_CURL_DEVNULL = /\bcurl(?:\.exe)?\b[^\n;|&]*\s-o\s*\/dev\/null\b/u;
|
|
249
251
|
|
|
250
|
-
|
|
252
|
+
const WINDOWS_SHELL_NEXT_ACTION = "같은 명령을 그대로 재시도하지 않는다. PowerShell 로직은 write로 .ps1 파일을 만들고 -File <슬래시 절대경로>로 실행한다. .\\x·역슬래시 경로 대신 슬래시 절대경로를 쓴다. cmd /c rd·del 대신 rm 또는 .ps1의 Remove-Item -LiteralPath를 쓴다. `$'\\r'` 구문 오류는 PATH 첫 bash(WSL)가 CRLF .sh를 읽은 것이니 Git Bash(\"C:/Program Files/Git/bin/bash.exe\" <스크립트>)로 실행한다. `curl -o /dev/null`의 exit 23은 Windows curl.exe가 /dev/null에 쓰지 못한 것이라 응답은 이미 받았다. `-o NUL`이나 셸 리디렉션 `>/dev/null`로 바꾼다.";
|
|
253
|
+
// Linux(WSL 포함) 셸: Windows 명령·CRLF 스크립트·interop PowerShell 호출이 원인이다.
|
|
254
|
+
const POSIX_SHELL_NEXT_ACTION = "같은 명령을 그대로 재시도하지 않는다. 이 셸은 Linux다. del·copy·findstr·cmd /c 대신 rm·cp·grep을 쓴다. Windows 전용 작업만 interop으로 부르고, PowerShell 로직은 write로 .ps1 파일을 만들어 powershell.exe -File \"$(wslpath -w <스크립트>)\"로 실행하며 넘기는 경로도 wslpath -w로 바꾼다. `$'\\r'` 구문 오류는 CRLF .sh를 읽은 것이니 bash <(tr -d '\\r' < <스크립트>)로 실행하거나 스크립트를 LF로 저장한다.";
|
|
255
|
+
|
|
256
|
+
function classifyError(content: unknown, input: unknown, platform: NodeJS.Platform): string {
|
|
251
257
|
const text = textContent(content);
|
|
252
258
|
const command = input && typeof input === "object" && "command" in input ? input.command : undefined;
|
|
253
|
-
if (/exited with code 23\b/u.test(text) && typeof command === "string" && WINDOWS_CURL_DEVNULL.test(command)) {
|
|
259
|
+
if (platform === "win32" && /exited with code 23\b/u.test(text) && typeof command === "string" && WINDOWS_CURL_DEVNULL.test(command)) {
|
|
254
260
|
return "windows-shell";
|
|
255
261
|
}
|
|
256
262
|
for (const [pattern, category] of ERROR_CATEGORY_PATTERNS) {
|
|
@@ -889,6 +895,7 @@ function renderMemoryApplication(
|
|
|
889
895
|
|
|
890
896
|
export function createJevRuntime(deps: JevRuntimeDeps = {}) {
|
|
891
897
|
return function jevRuntime(pi: ExtensionAPI): void {
|
|
898
|
+
const platform = deps.platform ?? process.platform;
|
|
892
899
|
/** toolCallId → spawn된 task 메타. pre-dispatch 중복 판정의 기존 maker 목록. */
|
|
893
900
|
const liveMakers = new Map<string, SpawnedTaskMeta[]>();
|
|
894
901
|
/** jobId → {callId, taskIndex}. settle 시 해당 child만 liveMakers에서 닫는다. */
|
|
@@ -1903,7 +1910,7 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
|
|
|
1903
1910
|
const inputChanged = serializeInput(event.input) !== failure.inputSerialized;
|
|
1904
1911
|
const observation = failure.observation;
|
|
1905
1912
|
const nextAction = failure.category === "windows-shell"
|
|
1906
|
-
?
|
|
1913
|
+
? (platform === "win32" ? WINDOWS_SHELL_NEXT_ACTION : POSIX_SHELL_NEXT_ACTION)
|
|
1907
1914
|
: observation.cancelled && !observation.deterministicExitObserved
|
|
1908
1915
|
? "취소 근거 없음: 실행 결과 회수 또는 다음 한 변수 확인. 산출물·로그·프로세스 생존 중 하나를 새로 확인한 뒤 결정한다. stdout 침묵·낮은 CPU·elapsed만으로 stall을 확정하지 않는다."
|
|
1909
1916
|
: RETRY_CATEGORY_NEXT_ACTION[failure.category]
|
|
@@ -2166,7 +2173,7 @@ export function createJevRuntime(deps: JevRuntimeDeps = {}) {
|
|
|
2166
2173
|
if (!EXPLORATION_TOOLS[event.toolName]) {
|
|
2167
2174
|
pendingFailures.set(event.toolName, {
|
|
2168
2175
|
inputSerialized: serializeInput(event.input),
|
|
2169
|
-
category: classifyError(event.content, event.input),
|
|
2176
|
+
category: classifyError(event.content, event.input, platform),
|
|
2170
2177
|
interveningTools: [],
|
|
2171
2178
|
observation: readFailureObservation(event.details, event.content),
|
|
2172
2179
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- source-fingerprint:
|
|
1
|
+
<!-- source-fingerprint: 55cee63431d4beb1 -->
|
|
2
2
|
# Global Rules
|
|
3
3
|
|
|
4
4
|
(Model-facing English copy of the Korean source `RULES.md`.)
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
- Do not repeat the same action under the same conditions. Diagnosis that narrows the cause from observation and changes the next action accordingly is not blind retrying; the same error string alone does not make it the same attempt. If after the first failure there is neither an action to change nor a safe path forward, do not confirm the same failure a second time — stop there and report the cause evidence, what was tried, and the remaining blocker.
|
|
14
14
|
- Work solvable with tools, the repository, and the current context is carried to completion without asking for confirmation or stopping midway. Exception: get user approval before deletion, deployment, incurring cost, or breaking compatibility.
|
|
15
15
|
- Before installing/registering MCP servers or changing their authentication/permissions, explain the target and scope and get user approval. After approval, the agent carries out the supported installation, configuration, connection, and verification. Do not reinterpret "user approval required" as "the user must execute it manually." Hand over only steps requiring the person, such as personal login, credential entry, or interactive provider safety checks/consent. JEV recommendations or relevance judgments never substitute for user approval.
|
|
16
|
+
- Host OS system changes (user, 2026-10-06): never touch kernel or filter drivers, the `Start` value of boot/System-start services, the network stack, firewall or security/banking-security software, boot configuration, or system registry keys as a diagnostic "disable it and see". When evidence says one must change, first explain the target, current value, new value, expected impact (possible network loss or boot failure), and how to revert, and get user approval for that exact change. "Please allow the UAC prompt" is not an approval request, and allowing UAC is not approval. Consider the program's supported uninstall or settings before disabling anything, and narrow the cause with read-only queries (`reg query`, `sc query`) first.
|
|
16
17
|
- Deploy confirmation (user, 2026-09-26, 2026-09-29 and 2026-09-30): the home PC (hostname `KYS`) and the office PC (its hostname is in the private deploy table) follow the same procedure. Once that PC's CUELO session has verified a source change and committed and pushed it, watch that commit's GitHub CI until it finishes, report the result, and ask whether to deploy. After the user approves, run `Tools/CUELO_Setup/deploy-live.ps1` and `Tools/OMP_Global_Config/verify.ps1 -StrictRuntime` for that same revision (`Tools/CUELO_Setup/setup.ps1` is the full app installer, not this step). The deploy transaction applies the mirror profile with `Tools/OMP_Global_Config/setup.ps1 -ProfileOnly` before starting the new server, then checks that the new server's `/api/models` role selectors match the mirror `config.yml` `modelRoles` and records it in the receipt `profile`, so do not run ProfileOnly or `CUELO-Restart` separately after a deploy. If the roles differ or could not be observed, deploy-live exits 3 without rolling back; restart as its guidance says and check `/api/models` again. An in-session deploy returns once the worker accepts, so after resuming check yourself that the transaction receipt's `profile.modelRoles.matched` is `true`. If only the profile changed without a deploy, restart the server after ProfileOnly and do the same role check. The live server reads Settings once at startup; file changes or a touch do not reload it. Check the PC with `hostname` first. Do not add automatic deployment such as a scheduled task. Deleting stages or rollbacks, deploying to any PC other than these two, updating the CLI, and anything that incurs cost still need separate approval.
|
|
17
18
|
- CI watching (user, 2026-09-28 and 2026-10-03): when watching a commit's CI, name the workflow you wait on (`gh run list --workflow <name>` or similar) and report the moment that run finishes. Never use "every run for this SHA is completed" as the condition: a release/deploy run triggered by CI success (`workflow_run`) appears seconds later on the same SHA and holds back the CI report. Watch such follow-on runs separately after reporting. Watch with `gh run watch <id> --exit-status` or a direct `gh run list` in `bash`; never write a polling loop that calls `gh` as a subprocess inside the `eval` kernel. On 2026-10-03 such a loop read empty output as "no run yet" and missed a finished CI for over 20 minutes. Any hand-written poll must fail at once on empty output or a nonzero exit. Public-mirror CI runs carry a different headSha than the source commit, so find them by run title.
|
|
18
19
|
- Narrow implementation uncertainty using explicit requirements and approved contracts, actual callers and data flow, test/reproduction results, and current behavior and docs. Once evidence settles the direction, proceed and record the basis; do not ask for confirmation on every minor implementation choice. Tests, docs, and current behavior are not automatically right; when they conflict with the requirements, check the actual behavior. Escalate to the user only items that change product meaning and cannot be settled by evidence, or that lack authority or external approval; keep doing independently allowed work even if that part is blocked.
|