cuelo 0.9.0 → 0.9.2
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 -8
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +4 -2
- package/.next/required-server-files.json +4 -2
- package/.next/routes-manifest.json +20 -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 +3 -3
- package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- 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 +2 -2
- package/.next/server/app/api/agent/[id]/account/route.js +1 -1
- package/.next/server/app/api/agent/[id]/account/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
- package/.next/server/app/api/agent/[id]/bash-output/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/running/route.js +1 -1
- package/.next/server/app/api/agent/running/route.js.nft.json +1 -1
- package/.next/server/app/api/attachment-settings/route.js +1 -0
- package/.next/server/app/api/attachment-settings/route.js.nft.json +1 -0
- package/.next/server/app/api/attachment-settings/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/attachments/[id]/transcription/route.js +2 -0
- package/.next/server/app/api/attachments/[id]/transcription/route.js.nft.json +1 -0
- package/.next/server/app/api/attachments/[id]/transcription/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/attachments/draft/route.js +1 -0
- package/.next/server/app/api/attachments/draft/route.js.nft.json +1 -0
- package/.next/server/app/api/attachments/draft/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/attachments/route.js +28 -5
- package/.next/server/app/api/attachments/route.js.nft.json +1 -1
- 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/cwd/validate/route.js.nft.json +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js.nft.json +1 -1
- package/.next/server/app/api/display-settings/route.js +1 -1
- package/.next/server/app/api/display-settings/route.js.nft.json +1 -1
- package/.next/server/app/api/document-text/route.js +4 -4
- 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/file-index/route.js.nft.json +1 -1
- package/.next/server/app/api/files/[...path]/route.js +2 -2
- package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/git/diff/route.js +2 -2
- package/.next/server/app/api/git/diff/route.js.nft.json +1 -1
- package/.next/server/app/api/git/status/route.js +2 -2
- package/.next/server/app/api/git/status/route.js.nft.json +1 -1
- package/.next/server/app/api/gpt6/handles/route.js +1 -1
- package/.next/server/app/api/gpt6/handles/route.js.nft.json +1 -1
- package/.next/server/app/api/gpt6/reply/route.js +1 -1
- package/.next/server/app/api/gpt6/reply/route.js.nft.json +1 -1
- package/.next/server/app/api/gpt6/token/route.js +1 -1
- package/.next/server/app/api/gpt6/token/route.js.nft.json +1 -1
- package/.next/server/app/api/gpt6/web6-session/route.js +1 -1
- package/.next/server/app/api/gpt6/web6-session/route.js.nft.json +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/call/[callId]/route.js.nft.json +1 -1
- package/.next/server/app/api/live/character-voice/route.js +1 -1
- package/.next/server/app/api/live/character-voice/route.js.nft.json +1 -1
- package/.next/server/app/api/live/events/route.js +2 -2
- package/.next/server/app/api/live/events/route.js.nft.json +1 -1
- package/.next/server/app/api/live/offer/route.js +1 -1
- package/.next/server/app/api/live/offer/route.js.nft.json +1 -1
- package/.next/server/app/api/live/voices/route.js +1 -1
- package/.next/server/app/api/live/voices/route.js.nft.json +1 -1
- package/.next/server/app/api/lounge/events/route.js +2 -2
- package/.next/server/app/api/lounge/events/route.js.nft.json +1 -1
- package/.next/server/app/api/lounge/route.js +1 -1
- package/.next/server/app/api/lounge/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js +2 -2
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/model-roles/route.js +1 -1
- package/.next/server/app/api/model-roles/route.js.nft.json +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models/route.js.nft.json +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 +4 -4
- 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/plugins/route.js.nft.json +1 -1
- package/.next/server/app/api/project-trust/route.js +1 -1
- package/.next/server/app/api/project-trust/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/route.js +1 -1
- package/.next/server/app/api/projects/route.js.nft.json +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]/auto-name/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/search/route.js +1 -1
- package/.next/server/app/api/sessions/search/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/settings/route.js.nft.json +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/check/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/install/route.js +2 -2
- package/.next/server/app/api/skills/install/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- 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/skills/update/route.js.nft.json +1 -1
- package/.next/server/app/api/theme/route.js +1 -1
- package/.next/server/app/api/theme/route.js.nft.json +1 -1
- package/.next/server/app/api/tool-image/route.js +1 -1
- package/.next/server/app/api/tool-image/route.js.nft.json +1 -1
- package/.next/server/app/api/update-maintenance/route.js +3 -3
- package/.next/server/app/api/update-maintenance/route.js.nft.json +1 -1
- 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/api/worktrees/route.js.nft.json +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 +3 -3
- 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 +3 -3
- 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 +3 -3
- package/.next/server/app/office-preview.segments/_full.segment.rsc +3 -3
- package/.next/server/app/office-preview.segments/_head.segment.rsc +1 -1
- package/.next/server/app/office-preview.segments/_index.segment.rsc +3 -3
- package/.next/server/app/office-preview.segments/_tree.segment.rsc +2 -2
- 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 +3 -3
- package/.next/server/app/office.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/office.segments/office/__PAGE__.segment.rsc +3 -3
- 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 +3 -3
- package/.next/server/app/recover.segments/_full.segment.rsc +3 -3
- package/.next/server/app/recover.segments/_head.segment.rsc +1 -1
- package/.next/server/app/recover.segments/_index.segment.rsc +3 -3
- package/.next/server/app/recover.segments/_tree.segment.rsc +2 -2
- 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 -8
- package/.next/server/chunks/1517.js +1 -1
- package/.next/server/chunks/2651.js +1 -1
- package/.next/server/chunks/4649.js +1 -1
- package/.next/server/chunks/5270.js +8 -0
- package/.next/server/chunks/5489.js +14 -14
- package/.next/server/chunks/5582.js +6 -6
- package/.next/server/chunks/6429.js +3 -3
- package/.next/server/chunks/7121.js +4 -0
- package/.next/server/chunks/7362.js +1 -1
- package/.next/server/chunks/8741.js +1 -0
- package/.next/server/chunks/877.js +1 -1
- package/.next/server/functions-config-manifest.json +9 -2
- package/.next/server/instrumentation.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware.js +4 -4
- 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/ZY07mKbniJf7UEsQUdUMV/_buildManifest.js +1 -0
- package/.next/static/chunks/6110-691c0f77641fc07e.js +1 -0
- package/.next/static/chunks/9575-2bfc351b31f30a41.js +22 -0
- package/.next/static/chunks/app/_global-error/page-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/account/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/attachment-settings/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/attachments/[id]/transcription/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/attachments/draft/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/attachments/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/display-settings/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/document-text/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/experiments/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/gpt6/handles/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/gpt6/reply/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/gpt6/token/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/gpt6/web6-session/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/home/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/live/call/[callId]/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/live/character-voice/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/live/events/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/live/offer/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/live/voices/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/lounge/events/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/lounge/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/model-roles/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/models/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/office-avatars/[id]/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/office-avatars/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/projects/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/runs/[runId]/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/runs/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/settings/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/skills/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/theme/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/tool-image/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/update-maintenance/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/updates/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/web-access/recovery/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/web-access/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/web6/consults/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/app/{layout-3adbfd44301cba82.js → layout-8ee6fa0157a0b288.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/{main-2603b128da53b28c.js → main-26b32c580fb6231f.js} +3 -3
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-6b1496af498bb4fd.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6b1496af498bb4fd.js +1 -0
- package/.next/static/css/81a05eb6255ef12e.css +1 -0
- package/.next/trace +108 -107
- package/.next/trace-build +1 -1
- package/.next/types/app/api/attachment-settings/route.ts +351 -0
- package/.next/types/app/api/attachments/[id]/transcription/route.ts +351 -0
- package/.next/types/app/api/attachments/draft/route.ts +351 -0
- package/.next/types/routes.d.ts +4 -1
- package/.next/types/validator.ts +27 -0
- package/README.md +2 -1
- package/Tools/CUELO_Setup/files/native-runtime-patch.js +1 -1
- package/Tools/OMP_Global_Config/patches/apply-core-patch.mjs +180 -0
- package/next.config.ts +1 -0
- package/package.json +4 -1
- package/.next/static/chunks/6110-dffa6a7b1ada31e6.js +0 -1
- package/.next/static/chunks/9575-09e3873e0ee5ecfc.js +0 -22
- package/.next/static/chunks/app/_global-error/page-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/account/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/events/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/agent/running/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/attachments/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/auth/all-providers/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/cwd/browse/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/cwd/validate/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/display-settings/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/document-text/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/experiments/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/file-index/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/gpt6/handles/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/gpt6/reply/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/gpt6/token/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/gpt6/web6-session/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/home/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/live/call/[callId]/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/live/character-voice/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/live/events/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/live/offer/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/live/voices/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/lounge/events/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/lounge/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/mcp/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/model-roles/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/models/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/models-config/catalog/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/models-config/discover/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/office-avatars/[id]/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/office-avatars/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/plugins/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/project-trust/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/projects/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/runs/[runId]/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/runs/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/export/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/state/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/sessions/search/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/settings/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/skills/check/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/skills/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/skills/update/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/theme/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/tool-image/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/update-maintenance/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/updates/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/web-access/recovery/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/web-access/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/web6/consults/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-b73c548944bb1320.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b73c548944bb1320.js +0 -1
- package/.next/static/css/1a4cea7126dfb757.css +0 -1
- package/.next/static/do0UuZKXEeG2rQnEL-f1I/_buildManifest.js +0 -1
- /package/.next/static/{do0UuZKXEeG2rQnEL-f1I → ZY07mKbniJf7UEsQUdUMV}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
// File: D:\a\CUELO\CUELO\app\api\attachments\draft\route.ts
|
|
2
|
+
import * as entry from '../../../../../../app/api/attachments/draft/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/attachments/draft/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/attachments" | "/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/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
|
|
@@ -18,7 +18,10 @@ interface ParamMap {
|
|
|
18
18
|
"/api/agent/[id]/events": { "id": string; }
|
|
19
19
|
"/api/agent/new": {}
|
|
20
20
|
"/api/agent/running": {}
|
|
21
|
+
"/api/attachment-settings": {}
|
|
21
22
|
"/api/attachments": {}
|
|
23
|
+
"/api/attachments/[id]/transcription": { "id": string; }
|
|
24
|
+
"/api/attachments/draft": {}
|
|
22
25
|
"/api/auth/all-providers": {}
|
|
23
26
|
"/api/auth/api-key/[provider]": { "provider": string; }
|
|
24
27
|
"/api/auth/login/[provider]": { "provider": string; }
|
package/.next/types/validator.ts
CHANGED
|
@@ -137,6 +137,33 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
137
137
|
type __Unused = __Check
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
+
// Validate ../../app/api/attachment-settings/route.ts
|
|
141
|
+
{
|
|
142
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/attachment-settings">> = Specific
|
|
143
|
+
const handler = {} as typeof import("../../app/api/attachment-settings/route.js")
|
|
144
|
+
type __Check = __IsExpected<typeof handler>
|
|
145
|
+
// @ts-ignore
|
|
146
|
+
type __Unused = __Check
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Validate ../../app/api/attachments/[id]/transcription/route.ts
|
|
150
|
+
{
|
|
151
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/attachments/[id]/transcription">> = Specific
|
|
152
|
+
const handler = {} as typeof import("../../app/api/attachments/[id]/transcription/route.js")
|
|
153
|
+
type __Check = __IsExpected<typeof handler>
|
|
154
|
+
// @ts-ignore
|
|
155
|
+
type __Unused = __Check
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Validate ../../app/api/attachments/draft/route.ts
|
|
159
|
+
{
|
|
160
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/attachments/draft">> = Specific
|
|
161
|
+
const handler = {} as typeof import("../../app/api/attachments/draft/route.js")
|
|
162
|
+
type __Check = __IsExpected<typeof handler>
|
|
163
|
+
// @ts-ignore
|
|
164
|
+
type __Unused = __Check
|
|
165
|
+
}
|
|
166
|
+
|
|
140
167
|
// Validate ../../app/api/attachments/route.ts
|
|
141
168
|
{
|
|
142
169
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/attachments">> = Specific
|
package/README.md
CHANGED
|
@@ -42,7 +42,7 @@ CUELO의 목적은 작업 중 확인한 실패와 막힘을 기억·작업 규
|
|
|
42
42
|
- goal 모드의 자동 이어 가기와 todo 진행 상황을 대화창 위에서 확인합니다. 실행을 취소하면 자동 이어 가기가 멈추며, 일시정지된 목표는 `/goal resume`으로 재개합니다.
|
|
43
43
|
- 실행 중에 Steer로 지시를 바꾸면, 도구 호출이 없는 모델 요청은 서버의 전환 신호를 기다리지 않고 새 지시로 다시 요청합니다. 이미 보인 답변은 유지하며, 재요청에 따라 사용량이 늘 수 있습니다.
|
|
44
44
|
- 작업 로그 패널에서 이번 턴의 과정 항목과 턴마다 쓴 파일을 따로 봅니다.
|
|
45
|
-
- 입력창에 이미지·문서 외에 음성(받아쓰기), 코드·설정 파일(본문 첨부), 그 밖의 파일(저장 후 경로 첨부)을 붙여넣기·드롭·선택으로 넣습니다. 음성
|
|
45
|
+
- 입력창에 이미지·문서 외에 음성(받아쓰기), 코드·설정 파일(본문 첨부), 그 밖의 파일(저장 후 경로 첨부)을 붙여넣기·드롭·선택으로 넣습니다. 저장형 첨부는 기본 파일당 100MB이며 설정에서 한도를 바꿀 수 있습니다. 큰 음성은 처리 계획과 계정 사용량 안내를 확인한 뒤 압축·분할 전사를 시작합니다. 음성 받아쓰기는 Google Antigravity 계정이 필요합니다. 대화·분기·초안에서 사용 중인 파일은 보존하고, 미사용이 확인된 첨부만 7일 유예 후 자동 정리합니다. [첨부와 자동 정리 안내](./docs/attachments.md)를 확인하세요.
|
|
46
46
|
- 에이전트가 생성하거나 확인한 이미지가 그 턴의 대화 흐름에 썸네일로 보이고, 누르면 크게 열립니다.
|
|
47
47
|
- Ctrl+K 팔레트로 대화 내용을 검색해 해당 메시지로 이동합니다. 압축으로 사라진 과거 메시지는 제외하고, 현재 볼 수 있는 메시지를 세션당 최대 3건 보여 줍니다. 긴 대화 안에서는 Ctrl+F로 찾고, 오른쪽 질문 레일로 내가 한 질문 사이를 오갑니다.
|
|
48
48
|
- 서버나 PC가 꺼져 실행이 끊긴 대화를 열면 중단 알림을 보여 줍니다. 컨텍스트 압축 중에는 경과 시간을 표시합니다.
|
|
@@ -62,6 +62,7 @@ CUELO의 목적은 작업 중 확인한 실패와 막힘을 기억·작업 규
|
|
|
62
62
|
|
|
63
63
|
- SubAgent 아카이브: 진행 중·완료된 자식 에이전트의 기록을 열어 봅니다.
|
|
64
64
|
- 서브에이전트를 발주한 답변 안에 접힌 카드가 붙어, 맡긴 일마다 실행 상태와 Main의 검수 판정을 한 줄로 보여 줍니다. 펼치면 현재 단계·모델·판정 사유와 상세 패널 링크가 나옵니다. 실행이 끝났어도 Main이 판정을 남기지 않았으면 「검수 미기록」으로 표시하며, 끝난 것을 통과로 치지 않습니다. 서브에이전트가 실행 중이거나 판정을 기다리는 동안에는 입력창 위에 한 줄 요약이 고정되고, 누르면 그 카드로 스크롤해 강조합니다.
|
|
65
|
+
- 대화가 압축돼도 서브에이전트 카드·진행줄과 할 일 목록은 현재 분기의 기록을 이어서 보여 줍니다. 압축으로 원래 답변이 가려진 카드는 압축 지점에서 다시 열 수 있으며, 새로고침해도 복원됩니다. 이후 실행 상태와 검수 판정은 새 관측에 맞춰 갱신됩니다.
|
|
65
66
|
- 끝난 턴의 마지막 답변 아래에 변경 파일·검사·실패·미확인 개수를 한 줄로 요약하고, 펼치면 파일과 검사 명령·결과를 봅니다.
|
|
66
67
|
- 실행 중에 보낸 입력은 「지금 지시」와 「완료 후 요청」으로 나뉘어, 접수·전달 대기·대화에 들어감 단계를 따로 보여 줍니다. 전달을 확인하지 못하면 그렇다고 표시합니다. 스크린샷만 보낸 입력도 「이미지 N개」로 표시합니다. 기본 목록에는 최근 4개만 보이고, 「이전 N개 더 보기」로 나머지를 펼칠 수 있습니다. 실제 대기 중인 입력은 목록에서 숨겨져도 유지되며, 펼친 목록에서 거둘 수 있습니다.
|
|
67
68
|
- 오피스 화면: 대화 화면의 「오피스」를 누르면 3D 사무실 전용 화면(`/office`)이 새 탭에서 열립니다. 원래 탭의 주소·선택한 세션·작성 중인 초안·진행 중인 응답은 그대로 남고, 오피스 탭도 같은 세션 주소(`?session=`)를 쓰므로 직접 열거나 새로고침해도 같은 세션이 열립니다. 사무실이 화면 폭을 다 쓰고, Main과 참여한 Maker가 각자 캐릭터로 자리에 앉아 실제 실행 상태대로 일하거나 책상 곁에서 기다리며, 실행이 끝나면 쉬는 자리로 돌아갑니다. 실행 완료는 Main의 수용으로 표시하지 않습니다. 이 세션에 참여하지 않은 캐릭터는 휴게 구역에서 쉬며, 가리키면 「참여 안 함」이 보입니다. 오른쪽 위 버튼으로 확대·축소·전체 보기를 하고, 확대한 뒤에는 장면을 끌거나 화살표 버튼으로 둘러봅니다. 참여자 캐릭터나 머리 위 말풍선, 아래 참여자 줄을 누르면 사무실 대신 그 대상의 대화나 작업 기록·파일이 화면을 다 쓰고, 참여자 줄의 「사무실」로 돌아옵니다. 창이 낮으면 줄여 맞추지 않고 세로로 스크롤합니다. Maker 기록은 조회 전용이고 입력은 늘 Main에게 갑니다. 고르기만 해서는 모델·계정이 바뀌거나 메시지가 다른 대상으로 가지 않습니다. 오피스 탭의 「대화 화면」은 같은 세션의 대화 화면으로 돌아갑니다. 두 탭이 같은 세션을 열어 두면 완료 알림·소리가 탭마다 날 수 있습니다. WebGL을 쓸 수 없거나 장면을 받지 못하면 자리 카드로 보여 주고 다시 시도할 수 있습니다. 캐릭터는 기본적으로 코드로 그리고, 방의 가구는 KayKit·Kenney의 CC0 모델을 오피스를 열 때만 받습니다. 가구를 받지 못하면 코드로 그린 방을 보여 줍니다([`public/office3d/ASSETS.md`](./public/office3d/ASSETS.md)).
|
|
@@ -9,7 +9,7 @@ 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.2',
|
|
13
13
|
distribution: 'cuelo',
|
|
14
14
|
coreVersion: '18.6.0',
|
|
15
15
|
};
|
|
@@ -3040,6 +3040,25 @@ import { isUnexpectedSocketCloseMessage } from "@oh-my-pi/pi-utils/fetch-retry";
|
|
|
3040
3040
|
if (AgentLifecycleManager.#global === this) AgentLifecycleManager.#global = undefined;
|
|
3041
3041
|
}`,
|
|
3042
3042
|
},
|
|
3043
|
+
{
|
|
3044
|
+
// 2026-10-04 실측: Maker 가 측정 job(bash async)을 띄우고 턴을 끝낸 지 task.agentIdleTtlMs(기본 420000ms)
|
|
3045
|
+
// 뒤 park() 가 세션을 dispose 했다. park 는 대기 중인 async 작업을 보지 않아 job 완료 알림이 전달되지 않고
|
|
3046
|
+
// 남은 작업도 끊겼다(upstream 18.6.0 도 같다). 커밋 직전 재확인에서 작업이 남아 있으면 dispose 하지 않고
|
|
3047
|
+
// idle 타이머를 다시 건다. job 은 실행 한도, 남은 전달·yield 큐는 idle flush 로 끝나므로 영구 잔류는 없다.
|
|
3048
|
+
file: "src/registry/agent-lifecycle.ts",
|
|
3049
|
+
marker: "// HANSE: keep sessions with pending async work",
|
|
3050
|
+
anchor: ` if (this.#adopted.get(id)?.ref !== ref) return;
|
|
3051
|
+
|
|
3052
|
+
// Commit: detach + parked *before* dispose`,
|
|
3053
|
+
patched: ` if (this.#adopted.get(id)?.ref !== ref) return;
|
|
3054
|
+
// HANSE: keep sessions with pending async work
|
|
3055
|
+
if (session.hasPendingAsyncWork()) {
|
|
3056
|
+
this.#armTimer(id, adopted);
|
|
3057
|
+
return;
|
|
3058
|
+
}
|
|
3059
|
+
|
|
3060
|
+
// Commit: detach + parked *before* dispose`,
|
|
3061
|
+
},
|
|
3043
3062
|
{
|
|
3044
3063
|
file: "src/sdk.ts",
|
|
3045
3064
|
marker: "lifecycle.dispose(undefined, registeredAgentRef)",
|
|
@@ -5967,6 +5986,167 @@ export class LearnTool implements AgentTool<LearnSchema> {`,
|
|
|
5967
5986
|
);
|
|
5968
5987
|
`,
|
|
5969
5988
|
},
|
|
5989
|
+
{
|
|
5990
|
+
// 2026-10-04 한국어 회상 측정(.omp/memory-eval, 190문항, multilingual-e5-large): baseline hit@8 19.4%.
|
|
5991
|
+
// 정답 원문 learn/retain 은 상위 8칸 1,520칸 중 79칸뿐이었고, 세 원인이 겹쳐 있었다. 하나만 고치면 다른
|
|
5992
|
+
// 원인이 빈자리를 채워 효과가 없었고(13.9~26.7%), 셋을 함께 고치면 57.8%다(영어 fixture MRR 0.695→0.872).
|
|
5993
|
+
// (1) FTS5 unicode61 은 어절을 통째로 토큰으로 삼아 `배포를`·`배포는` 이 서로 맞지 않는다(질의 어절 2,879개
|
|
5994
|
+
// 중 정답 원문에 그대로 있는 것 521, 조사를 떼면 761). 한글로만 된 어절은 조사·어미를 뗀 어간을 어휘 그룹에
|
|
5995
|
+
// 더하고 FTS 는 그 어간의 접두 질의로 찾는다. 사전 없이 끝 음절만 자르므로 어간은 늘 원 어절의 접두다.
|
|
5996
|
+
file: "../pi-mnemopi/src/core/beam/recall.ts",
|
|
5997
|
+
marker: "// HANSE: korean particle stem",
|
|
5998
|
+
anchor: "const FLAT_FACT_SEARCH_NOISE: Record<string, true> = { entity: true, fact: true };\n",
|
|
5999
|
+
patched: `const FLAT_FACT_SEARCH_NOISE: Record<string, true> = { entity: true, fact: true };
|
|
6000
|
+
|
|
6001
|
+
// HANSE: korean particle stem
|
|
6002
|
+
const HANGUL_WORD = /^[\\uac00-\\ud7af]+$/;
|
|
6003
|
+
/** 긴 것부터 맞춘다. 떼고 남는 어간이 두 음절보다 짧으면 떼지 않는다. */
|
|
6004
|
+
const KOREAN_SUFFIXES = [
|
|
6005
|
+
"에서는", "에서도", "으로는", "으로도", "에게서", "이라는", "이라고", "했는데", "됐는데", "하나요", "되나요", "인가요", "하려면", "입니다", "합니다",
|
|
6006
|
+
"에서", "으로", "에게", "한테", "까지", "부터", "처럼", "보다", "마다", "라는", "라고", "에는", "로는", "이나", "이며", "이고", "하고", "해줘",
|
|
6007
|
+
"해야", "하는", "했다", "하면", "해서", "하게", "하지", "되는", "된다", "인데", "이다", "인지",
|
|
6008
|
+
"와", "과", "을", "를", "이", "가", "은", "는", "에", "의", "도", "만", "로", "나", "랑", "한", "할", "해", "된",
|
|
6009
|
+
];
|
|
6010
|
+
function koreanStem(token: string): string {
|
|
6011
|
+
if (!HANGUL_WORD.test(token)) return token;
|
|
6012
|
+
for (const suffix of KOREAN_SUFFIXES) {
|
|
6013
|
+
if (token.endsWith(suffix) && token.length - suffix.length >= 2) return token.slice(0, -suffix.length);
|
|
6014
|
+
}
|
|
6015
|
+
return token;
|
|
6016
|
+
}
|
|
6017
|
+
`,
|
|
6018
|
+
},
|
|
6019
|
+
{
|
|
6020
|
+
file: "../pi-mnemopi/src/core/beam/recall.ts",
|
|
6021
|
+
marker: "if (stem !== token) seen.add(stem);",
|
|
6022
|
+
anchor: "\t\tfor (const variant of recallSynonyms(token, useSynonyms)) {\n\t\t\tfor (const part of tokenize(variant)) seen.add(part);\n\t\t}\n\t\tif (seen.size > 0) groups.push([...seen]);\n",
|
|
6023
|
+
patched: "\t\tfor (const variant of recallSynonyms(token, useSynonyms)) {\n\t\t\tfor (const part of tokenize(variant)) seen.add(part);\n\t\t}\n\t\tconst stem = koreanStem(token);\n\t\tif (stem !== token) seen.add(stem);\n\t\tif (seen.size > 0) groups.push([...seen]);\n",
|
|
6024
|
+
},
|
|
6025
|
+
{
|
|
6026
|
+
file: "../pi-mnemopi/src/core/beam/recall.ts",
|
|
6027
|
+
marker: "ftsPhrase(koreanStem(token))}*",
|
|
6028
|
+
anchor: '\treturn tokens.map(ftsPhrase).join(" OR ");\n',
|
|
6029
|
+
patched: '\treturn tokens.map(token => (koreanStem(token) === token ? ftsPhrase(token) : `${ftsPhrase(koreanStem(token))}*`)).join(" OR ");\n',
|
|
6030
|
+
},
|
|
6031
|
+
{
|
|
6032
|
+
// (2) sleep 은 같은 출처의 working 행을 ` | ` 로 이어 aaak 로 줄인 에피소드를 만든다(CUELO 평균 11,180자, 최대
|
|
6033
|
+
// 99,932자). 원본 행은 consolidated_at 만 찍히고 남아 그 자체로 후보다. 그래서 에피소드는 사본인데, 병합 문서의
|
|
6034
|
+
// 임베딩이 여러 질의에 두루 가깝고 episodic 점수가 dense 를 working(0.2)보다 크게(0.5) 쳐서 상위 8칸 중
|
|
6035
|
+
// 718칸을 차지했다. 원본이 모두 살아 있는(지워지거나 superseded 되지 않은) 에피소드만 후보에서 뺀다.
|
|
6036
|
+
// 원본이 하나라도 없으면 그 에피소드가 유일한 사본이므로 지금처럼 남긴다. 30일·180일 열화로 에피소드
|
|
6037
|
+
// 뒤쪽 교훈이 잘리는 손실(226개 중 127·155개)도 원본이 남은 에피소드에는 회상 손실이 되지 않는다.
|
|
6038
|
+
file: "../pi-mnemopi/src/core/beam/recall.ts",
|
|
6039
|
+
marker: "// HANSE: skip sleep episodes whose sources are live",
|
|
6040
|
+
anchor: "\tif (candidates.length === 0) return candidates;\n\tvoid useSynonyms;\n\treturn candidates;\n",
|
|
6041
|
+
patched: ` if (candidates.length === 0) return candidates;
|
|
6042
|
+
void useSynonyms;
|
|
6043
|
+
// HANSE: skip sleep episodes whose sources are live
|
|
6044
|
+
return candidates.filter(candidate => {
|
|
6045
|
+
if (candidate.tierLabel !== "episodic" || asString(candidate.row.source) !== "sleep_consolidation") return true;
|
|
6046
|
+
const ids = asString(candidate.row.summary_of)
|
|
6047
|
+
.split(",")
|
|
6048
|
+
.map(id => id.trim())
|
|
6049
|
+
.filter(id => id.length > 0);
|
|
6050
|
+
if (ids.length === 0) return true;
|
|
6051
|
+
const live = queryGet(
|
|
6052
|
+
beam,
|
|
6053
|
+
\`SELECT COUNT(*) AS n FROM working_memory WHERE id IN (\${placeholders(ids.length)}) AND superseded_by IS NULL\`,
|
|
6054
|
+
ids,
|
|
6055
|
+
);
|
|
6056
|
+
return asNumber(live?.n) !== ids.length;
|
|
6057
|
+
});
|
|
6058
|
+
`,
|
|
6059
|
+
},
|
|
6060
|
+
{
|
|
6061
|
+
// (3) learn/retain 은 의도적 기록인데 veracity "tool" 로 저장되고(learn.ts·memory-retain.ts) 회상 가중이 0.5 라,
|
|
6062
|
+
// "unknown"(0.8)인 자동 transcript 아래로 밀렸다(정답 원문 fts=1 이어도 순위 25위). omp 에서 "tool" 을 쓰는
|
|
6063
|
+
// 곳은 이 둘뿐이다. 회상 점수의 가중만 1.0 으로 올린다. 저장 데이터와 veracity-consolidation 가중은 그대로다.
|
|
6064
|
+
// config.ts 의 MNEMOPI_TOOL_WEIGHT(toolWeight)는 어디서도 읽지 않아 이 경로를 바꾸지 못한다.
|
|
6065
|
+
file: "../pi-mnemopi/src/core/beam/recall.ts",
|
|
6066
|
+
marker: "// HANSE: deliberate learn/retain weight",
|
|
6067
|
+
anchor: "\ttool: 0.5,\n\tfalse: 0,\n",
|
|
6068
|
+
patched: "\t// HANSE: deliberate learn/retain weight\n\ttool: 1.0,\n\tfalse: 0,\n",
|
|
6069
|
+
},
|
|
6070
|
+
{
|
|
6071
|
+
// (4) 2026-10-04 2차 측정(재임베딩 복사본, 190문항): queryTime 이 없는 일반 회상에서 72시간 반감 recency 배율
|
|
6072
|
+
// (0.7~1.0)이 기본 점수 차이보다 커서, 1위를 놓친 정답 101건 중 89건이 더 최근의 덜 관련된 교훈에 밀렸다(질문
|
|
6073
|
+
// hit@1 21.1%). 일반 질의는 배율을 쓰지 않는다(53.3%, 영어 fixture MRR 0.878). 시간 질의(queryTime 이 있는
|
|
6074
|
+
// temporalBoost 경로)와 recency_score 필드 값은 그대로다. 교훈 갱신은 learn topic 이 같은 행을 고쳐 쓰고,
|
|
6075
|
+
// invalidate·superseded 행은 buildWhere 가 이미 빼므로 옛 판이 새 판을 앞서지 않는다.
|
|
6076
|
+
file: "../pi-mnemopi/src/core/beam/recall.ts",
|
|
6077
|
+
marker: "// HANSE: no recency multiplier for plain recall",
|
|
6078
|
+
anchor: "\tlet score = baseScore * (0.7 + 0.3 * decay);\n",
|
|
6079
|
+
patched: "\t// HANSE: no recency multiplier for plain recall\n\tlet score = options.queryTime == null ? baseScore : baseScore * (0.7 + 0.3 * decay);\n",
|
|
6080
|
+
},
|
|
6081
|
+
{
|
|
6082
|
+
// (5) working 기억의 dense 가중이 0.2 로 고정돼(MNEMOPI_VEC_WEIGHT 는 episodic 분기만 쓴다) 어휘 점수가 순위를
|
|
6083
|
+
// 거의 정했다. 재임베딩 복사본 190문항에서 0.8 이 질문 MRR 0.565→0.644, 작업 hit@8 61.1→67.8(접두 포함)로
|
|
6084
|
+
// 가장 고르게 올랐다(1.0 은 질문만 오르고 작업 hit@8 이 58.9 로 떨어졌다).
|
|
6085
|
+
file: "../pi-mnemopi/src/core/beam/recall.ts",
|
|
6086
|
+
marker: "// HANSE: working dense weight 0.8",
|
|
6087
|
+
anchor: "\t\tif (candidate.signals.dense > 0) baseScore = baseScore * 0.8 + candidate.signals.dense * 0.2;\n",
|
|
6088
|
+
patched: "\t\t// HANSE: working dense weight 0.8\n\t\tif (candidate.signals.dense > 0) baseScore = baseScore * 0.2 + candidate.signals.dense * 0.8;\n",
|
|
6089
|
+
},
|
|
6090
|
+
{
|
|
6091
|
+
// (6) 2026-10-04 실측: fastembed 3.0.0 업그레이드(18.5.1) 뒤 같은 이름의 multilingual-e5-large 가 다른 벡터를
|
|
6092
|
+
// 냈다(옛 저장 벡터와 새 벡터 코사인 0.85~0.90, 저장 벡터 순위 hit@1 5.6%). stamp 가 모델 이름뿐이라
|
|
6093
|
+
// reconcileEmbeddingModel 이 재구축하지 않았다. 로컬 fastembed 모델의 stamp 에 runtime versionKey 와 e5 접두
|
|
6094
|
+
// 방식을 붙여, 둘 중 하나가 바뀌면 기존 wipe→재구축 경로가 돈다. 주입 provider·API 모델 stamp 는 그대로다.
|
|
6095
|
+
// e5 는 query:/passage: 접두를 전제로 학습됐다(접두+dense 0.8: 질문 58.9/77.8, 작업 hit@8 67.8).
|
|
6096
|
+
file: "../pi-mnemopi/src/core/embeddings.ts",
|
|
6097
|
+
marker: "// HANSE: local embedding fingerprint and e5 prefixes",
|
|
6098
|
+
anchor: "export function currentEmbeddingModel(): string {\n\treturn defaultModel();\n}\n",
|
|
6099
|
+
patched: `// HANSE: local embedding fingerprint and e5 prefixes
|
|
6100
|
+
const E5_PREFIX_STAMP = "e5-prefix-v1";
|
|
6101
|
+
|
|
6102
|
+
/** The local fastembed model in use (no injected provider, not an API model), or null. */
|
|
6103
|
+
function localEmbeddingModel(): string | null {
|
|
6104
|
+
if (resolveEmbeddingProvider(activeEmbeddingOptions()?.provider) !== undefined || providerOverride !== null) return null;
|
|
6105
|
+
const model = defaultModel();
|
|
6106
|
+
return isApiModel(model) ? null : model;
|
|
6107
|
+
}
|
|
6108
|
+
|
|
6109
|
+
function usesE5Prefix(): boolean {
|
|
6110
|
+
const model = localEmbeddingModel();
|
|
6111
|
+
return model !== null && /(^|[/_-])e5([-_]|$)/i.test(model);
|
|
6112
|
+
}
|
|
6113
|
+
|
|
6114
|
+
/** Adds the e5 retrieval prefix for local e5 models; other models embed the text as-is. */
|
|
6115
|
+
export function e5Prefixed(kind: "query" | "passage", texts: readonly string[]): readonly string[] {
|
|
6116
|
+
return usesE5Prefix() ? texts.map(text => \`\${kind}: \${text}\`) : texts;
|
|
6117
|
+
}
|
|
6118
|
+
|
|
6119
|
+
export function currentEmbeddingModel(): string {
|
|
6120
|
+
const model = localEmbeddingModel();
|
|
6121
|
+
if (model === null) return defaultModel();
|
|
6122
|
+
return \`\${model}#\${fastembedRuntimeInstallPlan().versionKey}\${usesE5Prefix() ? \`#\${E5_PREFIX_STAMP}\` : ""}\`;
|
|
6123
|
+
}
|
|
6124
|
+
`,
|
|
6125
|
+
},
|
|
6126
|
+
{
|
|
6127
|
+
file: "../pi-mnemopi/src/core/embeddings.ts",
|
|
6128
|
+
marker: "import { fastembedRuntimeInstallPlan, loadFastembed } from",
|
|
6129
|
+
anchor: 'import { loadFastembed } from "./fastembed-runtime";\n',
|
|
6130
|
+
patched: 'import { fastembedRuntimeInstallPlan, loadFastembed } from "./fastembed-runtime";\n',
|
|
6131
|
+
},
|
|
6132
|
+
{
|
|
6133
|
+
file: "../pi-mnemopi/src/core/embeddings.ts",
|
|
6134
|
+
marker: 'await embed(e5Prefixed("query", [text]))',
|
|
6135
|
+
anchor: "\tconst vectors = await embed([text]);\n",
|
|
6136
|
+
patched: '\tconst vectors = await embed(e5Prefixed("query", [text]));\n',
|
|
6137
|
+
},
|
|
6138
|
+
{
|
|
6139
|
+
file: "../pi-mnemopi/src/core/beam/helpers.ts",
|
|
6140
|
+
marker: 'await embed(e5Prefixed("passage",',
|
|
6141
|
+
anchor: "\t\tconst matrix = await embed(items.map(item => item.content));\n",
|
|
6142
|
+
patched: '\t\tconst matrix = await embed(e5Prefixed("passage", items.map(item => item.content)));\n',
|
|
6143
|
+
},
|
|
6144
|
+
{
|
|
6145
|
+
file: "../pi-mnemopi/src/core/beam/helpers.ts",
|
|
6146
|
+
marker: "import { currentEmbeddingModel, e5Prefixed, embed } from",
|
|
6147
|
+
anchor: 'import { currentEmbeddingModel, embed } from "../embeddings";\n',
|
|
6148
|
+
patched: 'import { currentEmbeddingModel, e5Prefixed, embed } from "../embeddings";\n',
|
|
6149
|
+
},
|
|
5970
6150
|
{
|
|
5971
6151
|
// 2026-09-29 실측: 기억 임베딩 재구축(모델 변경·중단 뒤 재개)이 128건 묶음을 한꺼번에 worker 에
|
|
5972
6152
|
// 올렸다. worker 는 요청을 하나씩 처리하는데 요청마다 120초 타이머가 보낸 순간부터 흘러,
|