cuelo 0.5.1 → 0.5.3
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 +10 -10
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +5 -5
- package/.next/required-server-files.json +5 -5
- 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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agent/running/route.js +1 -1
- package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/all-providers/route.js +1 -1
- package/.next/server/app/api/auth/all-providers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/browse/route.js +1 -1
- package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/validate/route.js +1 -1
- package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/display-settings/route.js +1 -1
- package/.next/server/app/api/display-settings/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/document-text/route.js +2 -2
- package/.next/server/app/api/document-text/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/experiments/route.js +1 -1
- package/.next/server/app/api/experiments/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/file-index/route.js +1 -1
- package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/diff/route.js +2 -2
- package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/status/route.js +1 -1
- package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/gpt6/handles/route.js +1 -1
- package/.next/server/app/api/gpt6/handles/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/gpt6/mcp/route.js +1 -1
- package/.next/server/app/api/gpt6/mcp/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/gpt6/reply/route.js +1 -1
- package/.next/server/app/api/gpt6/reply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/gpt6/token/route.js +1 -1
- package/.next/server/app/api/gpt6/token/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/gpt6/web6-session/route.js +1 -1
- package/.next/server/app/api/gpt6/web6-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/home/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/live/call/[callId]/route.js +1 -1
- package/.next/server/app/api/live/call/[callId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/live/events/route.js +2 -2
- package/.next/server/app/api/live/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/live/offer/route.js +1 -1
- package/.next/server/app/api/live/offer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/live/voices/route.js +1 -1
- package/.next/server/app/api/live/voices/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/route.js +1 -1
- package/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model-roles/route.js +1 -1
- package/.next/server/app/api/model-roles/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models-config/catalog/route.js +1 -1
- package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models-config/route.js +2 -2
- package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/project-trust/route.js +1 -1
- package/.next/server/app/api/project-trust/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/projects/route.js +1 -1
- package/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/runs/route.js +1 -1
- package/.next/server/app/api/runs/route_client-reference-manifest.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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidecars/[service]/[...path]/route.js +1 -1
- package/.next/server/app/api/sidecars/[service]/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/check/route.js +1 -1
- package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/install/route.js +1 -1
- package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/update/route.js +1 -1
- package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/theme/route.js +1 -1
- package/.next/server/app/api/theme/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/update-maintenance/route.js +2 -2
- package/.next/server/app/api/update-maintenance/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/updates/route.js +1 -1
- package/.next/server/app/api/updates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/web-access/recovery/route.js +1 -1
- package/.next/server/app/api/web-access/recovery/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/web-access/route.js +1 -1
- package/.next/server/app/api/web-access/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/web6/consults/route.js +1 -1
- package/.next/server/app/api/web6/consults/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.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 +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/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +4 -4
- 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 +4 -4
- package/.next/server/app/recover.segments/_full.segment.rsc +4 -4
- 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 +2 -2
- package/.next/server/app/recover.segments/recover.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +10 -10
- package/.next/server/chunks/319.js +3 -3
- package/.next/server/chunks/3379.js +1 -1
- package/.next/server/chunks/7245.js +1 -1
- package/.next/server/chunks/9280.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware.js +3 -3
- 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/app/_not-found/page-9e5295df095e2e41.js +1 -0
- package/.next/static/chunks/app/layout-6068ca5fef089e8f.js +1 -0
- package/.next/static/chunks/app/{page-5cde6189aa974555.js → page-d0f53d2b019e567d.js} +3 -3
- package/.next/static/chunks/app/recover/{page-b21a217e972ce75f.js → page-c0c40b3c215078a4.js} +1 -1
- package/.next/static/chunks/{main-app-0af2539744a1d9c8.js → main-app-fbc4aa3c15d48613.js} +1 -1
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-50782c8c9c06c8b5.js +1 -0
- package/.next/static/css/41958fa4965167ad.css +1 -0
- package/.next/trace +104 -7
- package/.next/trace-build +1 -1
- package/.next/types/app/api/agent/[id]/account/route.ts +1 -1
- package/.next/types/app/api/agent/[id]/bash-output/route.ts +1 -1
- package/.next/types/app/api/agent/[id]/events/route.ts +1 -1
- package/.next/types/app/api/agent/[id]/route.ts +1 -1
- package/.next/types/app/api/agent/new/route.ts +1 -1
- package/.next/types/app/api/agent/running/route.ts +1 -1
- package/.next/types/app/api/auth/all-providers/route.ts +1 -1
- package/.next/types/app/api/auth/api-key/[provider]/route.ts +1 -1
- package/.next/types/app/api/auth/login/[provider]/route.ts +1 -1
- package/.next/types/app/api/auth/logout/[provider]/route.ts +1 -1
- package/.next/types/app/api/auth/providers/route.ts +1 -1
- package/.next/types/app/api/cwd/browse/route.ts +1 -1
- package/.next/types/app/api/cwd/validate/route.ts +1 -1
- package/.next/types/app/api/default-cwd/route.ts +1 -1
- package/.next/types/app/api/display-settings/route.ts +1 -1
- package/.next/types/app/api/document-text/route.ts +1 -1
- package/.next/types/app/api/experiments/route.ts +1 -1
- package/.next/types/app/api/file-index/route.ts +1 -1
- package/.next/types/app/api/files/[...path]/route.ts +1 -1
- package/.next/types/app/api/git/diff/route.ts +1 -1
- package/.next/types/app/api/git/status/route.ts +1 -1
- package/.next/types/app/api/gpt6/handles/route.ts +1 -1
- package/.next/types/app/api/gpt6/mcp/route.ts +1 -1
- package/.next/types/app/api/gpt6/reply/route.ts +1 -1
- package/.next/types/app/api/gpt6/token/route.ts +1 -1
- package/.next/types/app/api/gpt6/web6-session/route.ts +1 -1
- package/.next/types/app/api/home/route.ts +1 -1
- package/.next/types/app/api/live/call/[callId]/route.ts +1 -1
- package/.next/types/app/api/live/events/route.ts +1 -1
- package/.next/types/app/api/live/offer/route.ts +1 -1
- package/.next/types/app/api/live/voices/route.ts +1 -1
- package/.next/types/app/api/mcp/route.ts +1 -1
- package/.next/types/app/api/model-roles/route.ts +1 -1
- package/.next/types/app/api/models/route.ts +1 -1
- package/.next/types/app/api/models-config/catalog/route.ts +1 -1
- package/.next/types/app/api/models-config/discover/route.ts +1 -1
- package/.next/types/app/api/models-config/route.ts +1 -1
- package/.next/types/app/api/models-config/test/route.ts +1 -1
- package/.next/types/app/api/plugins/route.ts +1 -1
- package/.next/types/app/api/project-trust/route.ts +1 -1
- package/.next/types/app/api/projects/route.ts +1 -1
- package/.next/types/app/api/runs/[runId]/route.ts +1 -1
- package/.next/types/app/api/runs/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/auto-name/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/context/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/export/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/state/route.ts +1 -1
- package/.next/types/app/api/sessions/route.ts +1 -1
- package/.next/types/app/api/settings/route.ts +1 -1
- package/.next/types/app/api/sidecars/[service]/[...path]/route.ts +1 -1
- package/.next/types/app/api/skills/check/route.ts +1 -1
- package/.next/types/app/api/skills/install/route.ts +1 -1
- package/.next/types/app/api/skills/route.ts +1 -1
- package/.next/types/app/api/skills/search/route.ts +1 -1
- package/.next/types/app/api/skills/update/route.ts +1 -1
- package/.next/types/app/api/theme/route.ts +1 -1
- package/.next/types/app/api/update-maintenance/route.ts +1 -1
- package/.next/types/app/api/updates/route.ts +1 -1
- package/.next/types/app/api/web-access/recovery/route.ts +1 -1
- package/.next/types/app/api/web-access/route.ts +1 -1
- package/.next/types/app/api/web6/consults/route.ts +1 -1
- package/.next/types/app/api/worktrees/route.ts +1 -1
- package/.next/types/app/layout.ts +1 -1
- package/.next/types/app/page.ts +1 -1
- package/.next/types/app/recover/page.ts +1 -1
- package/README.md +3 -3
- package/Tools/CUELO_Setup/files/native-runtime-patch.js +1 -1
- package/Tools/OMP_Global_Config/agent/AGENTS.md +2 -2
- package/Tools/OMP_Global_Config/agent/agents/maker.md +11 -8
- package/Tools/OMP_Global_Config/agent/extensions/external-advice-check.ts +131 -0
- package/Tools/OMP_Global_Config/agent/extensions/jev-runtime.ts +141 -10
- package/Tools/OMP_Global_Config/agent/extensions/lib/maker-routing.ts +22 -2
- package/Tools/OMP_Global_Config/agent/extensions/lib/routing-ledger.ts +2 -0
- package/Tools/OMP_Global_Config/agent/extensions/turn-end-guard.ts +180 -18
- package/Tools/OMP_Global_Config/agent/prompt-copies/AGENTS.en.md +3 -3
- package/Tools/OMP_Global_Config/agent/rules/harness-policy.json +28 -3
- package/Tools/OMP_Global_Config/agent/rules/subagent.md +15 -0
- package/Tools/OMP_Global_Config/agent/rules/verdict.md +8 -3
- package/Tools/OMP_Global_Config/agent/sop/_common.md +10 -7
- package/Tools/OMP_Global_Config/agent/tools/git-finalizer/index.ts +101 -2
- package/Tools/OMP_Global_Config/patches/apply-core-patch.mjs +173 -0
- package/package.json +3 -3
- package/.next/static/chunks/app/_not-found/page-d47816c8266ad10a.js +0 -1
- package/.next/static/chunks/app/layout-85736d5559027813.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-5bf20286772920a7.js +0 -1
- package/.next/static/css/e55ae9b4602a1ee6.css +0 -1
- /package/.next/static/{RnMmpk_boPQwlwbelVcs- → -47RqT-7phbUEMcVgR7Jy}/_buildManifest.js +0 -0
- /package/.next/static/{RnMmpk_boPQwlwbelVcs- → -47RqT-7phbUEMcVgR7Jy}/_ssgManifest.js +0 -0
|
@@ -4627,6 +4627,102 @@ import { getActiveRules } from "../capability/rule";`,
|
|
|
4627
4627
|
anchor: "\t\t\t\ttype: \"tool_call\",\n\t\t\t\ttoolName: ctx.tool.name,\n\t\t\t\ttoolCallId: ctx.toolCall.id,\n",
|
|
4628
4628
|
patched: "\t\t\t\ttype: \"tool_call\",\n\t\t\t\ttoolName: ctx.tool.name,\n\t\t\t\ttoolCallId: ctx.toolCall.id,\n\t\t\t\tassistantMessage: ctx.assistantMessage, // HANSE: steering gate\n",
|
|
4629
4629
|
},
|
|
4630
|
+
// 2026-09-26: Opus 5.5는 도구 앞 사용자용 문장을 서명에 `narration`이 든 thinking 블록으로 보낸다.
|
|
4631
|
+
// omitThinking(`display: "omitted"`)은 그 문장까지 비워서, 세션 79개 중 25개 메시지의 답이 화면·세션 파일에서
|
|
4632
|
+
// 사라졌다(`T[thinking] T[narration] toolCall`). 요청은 summarized로 받고, omitThinking이면 thinking 내용은 계속
|
|
4633
|
+
// 숨기되 narration만 본문 text 블록으로 보인다. 다시 보낼 때는 서명된 thinking을 원래대로 보내고 화면용 사본은 뺀다.
|
|
4634
|
+
{
|
|
4635
|
+
file: "../pi-ai/src/providers/anthropic.ts",
|
|
4636
|
+
marker: "function isHanseNarrationSignature(",
|
|
4637
|
+
anchor: "function unwrapAnthropicThinkingEnvelope(text: string): string | undefined {\n",
|
|
4638
|
+
patched: [
|
|
4639
|
+
"/** HANSE: 도구 앞 사용자용 문장을 담은 thinking 블록인지 서명 안의 블록 종류 이름으로 본다(2026-09-26 실측). */",
|
|
4640
|
+
"function isHanseNarrationSignature(signature: string | undefined): boolean {",
|
|
4641
|
+
"\tif (!signature) return false;",
|
|
4642
|
+
"\ttry {",
|
|
4643
|
+
"\t\treturn Buffer.from(signature, \"base64\").toString(\"latin1\").includes(\"narration\");",
|
|
4644
|
+
"\t} catch {",
|
|
4645
|
+
"\t\treturn false;",
|
|
4646
|
+
"\t}",
|
|
4647
|
+
"}",
|
|
4648
|
+
"",
|
|
4649
|
+
"function unwrapAnthropicThinkingEnvelope(text: string): string | undefined {",
|
|
4650
|
+
"",
|
|
4651
|
+
].join("\n"),
|
|
4652
|
+
},
|
|
4653
|
+
{
|
|
4654
|
+
file: "../pi-ai/src/providers/anthropic.ts",
|
|
4655
|
+
marker: "const hanseHideThinking = options?.thinkingDisplay === \"omitted\";",
|
|
4656
|
+
anchor: "\t\t\tconst finalizeStreamBlock = (block: Block, contentIndex: number): void => {\n",
|
|
4657
|
+
patched: [
|
|
4658
|
+
"\t\t\t// HANSE: omitThinking은 thinking 내용을 숨기되 도구 앞 narration 문장은 본문으로 보인다.",
|
|
4659
|
+
"\t\t\tconst hanseHideThinking = options?.thinkingDisplay === \"omitted\";",
|
|
4660
|
+
"\t\t\tconst finalizeStreamBlock = (block: Block, contentIndex: number): void => {",
|
|
4661
|
+
"",
|
|
4662
|
+
].join("\n"),
|
|
4663
|
+
},
|
|
4664
|
+
{
|
|
4665
|
+
file: "../pi-ai/src/providers/anthropic.ts",
|
|
4666
|
+
marker: "hanseBlock.hanseHiddenThinking = (hanseBlock.hanseHiddenThinking ?? \"\") + event.delta.thinking;",
|
|
4667
|
+
anchor: "\t\t\t\t\t\t\t\tstreamedReplayUnsafeContent = true;\n\t\t\t\t\t\t\t\tblock.thinking += event.delta.thinking;\n",
|
|
4668
|
+
patched: [
|
|
4669
|
+
"\t\t\t\t\t\t\t\tstreamedReplayUnsafeContent = true;",
|
|
4670
|
+
"\t\t\t\t\t\t\t\tif (hanseHideThinking) {",
|
|
4671
|
+
"\t\t\t\t\t\t\t\t\t// narration인지는 블록 끝의 서명으로만 알 수 있어, 그때까지 화면에 내보내지 않고 모은다.",
|
|
4672
|
+
"\t\t\t\t\t\t\t\t\tconst hanseBlock = block as Block & { hanseHiddenThinking?: string };",
|
|
4673
|
+
"\t\t\t\t\t\t\t\t\thanseBlock.hanseHiddenThinking = (hanseBlock.hanseHiddenThinking ?? \"\") + event.delta.thinking;",
|
|
4674
|
+
"\t\t\t\t\t\t\t\t\tcontinue;",
|
|
4675
|
+
"\t\t\t\t\t\t\t\t}",
|
|
4676
|
+
"\t\t\t\t\t\t\t\tblock.thinking += event.delta.thinking;",
|
|
4677
|
+
"",
|
|
4678
|
+
].join("\n"),
|
|
4679
|
+
},
|
|
4680
|
+
{
|
|
4681
|
+
file: "../pi-ai/src/providers/anthropic.ts",
|
|
4682
|
+
marker: "hanseNarration: true, [kStreamingBlockIndex]: -1",
|
|
4683
|
+
anchor: "\t\t\t\t\tstream.push({ type: \"thinking_end\", contentIndex, content: block.thinking, partial: output });\n",
|
|
4684
|
+
patched: [
|
|
4685
|
+
"\t\t\t\t\tstream.push({ type: \"thinking_end\", contentIndex, content: block.thinking, partial: output });",
|
|
4686
|
+
"\t\t\t\t\tif (hanseHideThinking) {",
|
|
4687
|
+
"\t\t\t\t\t\tconst hanseBlock = block as Block & { hanseHiddenThinking?: string };",
|
|
4688
|
+
"\t\t\t\t\t\tconst hanseHidden = (hanseBlock.hanseHiddenThinking ?? \"\").trim();",
|
|
4689
|
+
"\t\t\t\t\t\tdelete hanseBlock.hanseHiddenThinking;",
|
|
4690
|
+
"\t\t\t\t\t\tif (hanseHidden && isHanseNarrationSignature(block.thinkingSignature)) {",
|
|
4691
|
+
"\t\t\t\t\t\t\tconst narration = { type: \"text\", text: hanseHidden, hanseNarration: true, [kStreamingBlockIndex]: -1 } as unknown as Block;",
|
|
4692
|
+
"\t\t\t\t\t\t\toutput.content.push(narration as AssistantMessage[\"content\"][number]);",
|
|
4693
|
+
"\t\t\t\t\t\t\tconst narrationIndex = output.content.length - 1;",
|
|
4694
|
+
"\t\t\t\t\t\t\tstream.push({ type: \"text_start\", contentIndex: narrationIndex, partial: output });",
|
|
4695
|
+
"\t\t\t\t\t\t\tstream.push({ type: \"text_delta\", contentIndex: narrationIndex, delta: hanseHidden, partial: output });",
|
|
4696
|
+
"\t\t\t\t\t\t\tstream.push({ type: \"text_end\", contentIndex: narrationIndex, content: hanseHidden, partial: output });",
|
|
4697
|
+
"\t\t\t\t\t\t}",
|
|
4698
|
+
"\t\t\t\t\t}",
|
|
4699
|
+
"",
|
|
4700
|
+
].join("\n"),
|
|
4701
|
+
},
|
|
4702
|
+
{
|
|
4703
|
+
file: "../pi-ai/src/providers/anthropic.ts",
|
|
4704
|
+
marker: "adaptive.display = \"summarized\"; // HANSE: narration",
|
|
4705
|
+
anchor: "adaptive.display = thinkingOptions.thinkingDisplay ?? \"summarized\";",
|
|
4706
|
+
patched: "adaptive.display = \"summarized\"; // HANSE: narration은 omitted에서 비므로 숨김은 스트림에서 한다",
|
|
4707
|
+
},
|
|
4708
|
+
{
|
|
4709
|
+
file: "../pi-ai/src/providers/anthropic.ts",
|
|
4710
|
+
marker: "display: \"summarized\", // HANSE: narration",
|
|
4711
|
+
anchor: "display: thinkingOptions.thinkingDisplay ?? \"summarized\",",
|
|
4712
|
+
patched: "display: \"summarized\", // HANSE: narration은 omitted에서 비므로 숨김은 스트림에서 한다",
|
|
4713
|
+
},
|
|
4714
|
+
{
|
|
4715
|
+
file: "../pi-ai/src/providers/anthropic.ts",
|
|
4716
|
+
marker: "\"hanseNarration\" in block && block.hanseNarration === true && hasSignedThinking",
|
|
4717
|
+
anchor: "\t\t\t\tif (block.type === \"text\") {\n\t\t\t\t\tif (block.text.trim().length === 0) continue;\n",
|
|
4718
|
+
patched: [
|
|
4719
|
+
"\t\t\t\tif (block.type === \"text\") {",
|
|
4720
|
+
"\t\t\t\t\tif (block.text.trim().length === 0) continue;",
|
|
4721
|
+
"\t\t\t\t\t// HANSE: narration 문장은 서명된 thinking 안에 이미 있다. 그 thinking을 보낼 때는 화면용 사본을 뺀다.",
|
|
4722
|
+
"\t\t\t\t\tif (\"hanseNarration\" in block && block.hanseNarration === true && hasSignedThinking && !opts?.dropAllThinking) continue;",
|
|
4723
|
+
"",
|
|
4724
|
+
].join("\n"),
|
|
4725
|
+
},
|
|
4630
4726
|
{
|
|
4631
4727
|
// 2026-09-25: CUELO는 Next 서버 프로세스 안에서 에이전트를 돌린다. `next start`가 그 프로세스에 넣은
|
|
4632
4728
|
// NODE_ENV=production·PORT·NEXT_* 가 bash 도구 자식 셸에 그대로 새어, 셸에서 띄운 `next dev`가
|
|
@@ -4721,6 +4817,83 @@ export function hostNextServerEnvUnsets(
|
|
|
4721
4817
|
anchor: "\t\tcontent: [{ type: \"text\", text: errorMessage ? `${message}: ${errorMessage}` : `${message}.` }],\n",
|
|
4722
4818
|
patched: "\t\t// HANSE: skipped reason stands alone\n\t\tcontent: [{ type: \"text\", text: reason === \"skipped\" && errorMessage ? errorMessage : errorMessage ? `${message}: ${errorMessage}` : `${message}.` }],\n",
|
|
4723
4819
|
},
|
|
4820
|
+
{
|
|
4821
|
+
// 2026-09-25·27 실측: edit 거부 안내(seen-line guard)는 native 가 만든 영어 문장이라, Main 이 바로 다음
|
|
4822
|
+
// 진행 문장을 영어로 이어 썼다. 문구는 pi-natives 바이너리 안에 있어 직접 못 고치지만 모델에는 이 파일의
|
|
4823
|
+
// 오류 반환을 거쳐 간다. 알려진 문장 틀만 한국어로 바꾸고, 틀이 다르면 원문을 그대로 둔다.
|
|
4824
|
+
file: "src/edit/index.ts",
|
|
4825
|
+
marker: "// HANSE: localized seen-line rejection",
|
|
4826
|
+
anchor: "function operationFromNative(op: string): Operation | undefined {\n",
|
|
4827
|
+
patched: `// HANSE: localized seen-line rejection
|
|
4828
|
+
const SEEN_LINE_HEAD =
|
|
4829
|
+
/^This edit anchors to lines (.+?) of (.+?) that (\\[[^\\]\\n]+\\]) never displayed \\(it showed a partial range, a search hit, or a folded summary\\)\\. (?:Actual file content at those lines|Preview of the actual file content at the first (\\d+) unseen line\\(s\\)):$/gm;
|
|
4830
|
+
const SEEN_LINE_TAIL =
|
|
4831
|
+
/^Verify the content matches what you intend to touch, then re-issue the edit with the same \\[path#tag\\] header — a straight retry now succeeds without a re-read\\. If the content does NOT match, fix your line numbers\\.$/gm;
|
|
4832
|
+
export function localizeSeenLineRejection(text: string): string {
|
|
4833
|
+
return text
|
|
4834
|
+
.replace(
|
|
4835
|
+
SEEN_LINE_HEAD,
|
|
4836
|
+
(_match, lines: string, file: string, tag: string, preview: string | undefined) =>
|
|
4837
|
+
"이 edit는 " + file + "의 " + lines + "번 줄을 기준으로 했지만, " + tag +
|
|
4838
|
+
" 스냅샷은 그 줄을 온전히 보여 준 적이 없다(부분 범위·검색 결과·접힌 요약만 보였다). " +
|
|
4839
|
+
(preview ? "보지 않은 줄 중 앞쪽 " + preview + "줄의 실제 내용:" : "그 줄의 실제 내용:"),
|
|
4840
|
+
)
|
|
4841
|
+
.replace(
|
|
4842
|
+
SEEN_LINE_TAIL,
|
|
4843
|
+
"건드리려던 내용과 맞는지 확인한 뒤 같은 [path#tag] 헤더로 edit를 다시 보낸다. 다시 읽지 않고 그대로 재시도해도 이제 성공한다. 내용이 다르면 줄 번호를 고친다.",
|
|
4844
|
+
);
|
|
4845
|
+
}
|
|
4846
|
+
|
|
4847
|
+
function operationFromNative(op: string): Operation | undefined {
|
|
4848
|
+
`,
|
|
4849
|
+
},
|
|
4850
|
+
{
|
|
4851
|
+
file: "src/edit/index.ts",
|
|
4852
|
+
marker: "text: localizeSeenLineRejection(outcome.text) }], isError: true };",
|
|
4853
|
+
anchor: "\t\t\treturn { content: [{ type: \"text\", text: outcome.text }], isError: true };\n",
|
|
4854
|
+
patched: "\t\t\treturn { content: [{ type: \"text\", text: localizeSeenLineRejection(outcome.text) }], isError: true };\n",
|
|
4855
|
+
},
|
|
4856
|
+
{
|
|
4857
|
+
// 2026-09-27 자가학습 점검: Maker(taskDepth>0) 세션은 부모 state 의 alias 로 만들어지면서
|
|
4858
|
+
// hasRecalledForFirstTurn=true 로 시작해, 자기 작업 brief 로는 한 번도 회상하지 않았다(작업 직전
|
|
4859
|
+
// 교훈 적용 연결이 끊김). 첫 턴 회상 경로(beforeAgentStartPrompt)는 child 자기 state 를 쓰고, alias 는
|
|
4860
|
+
// 부모와 같은 scoped 저장소를 공유하므로 이 값만 풀면 작업 brief 로 한 번 회상한다. 쓰기(retain)는
|
|
4861
|
+
// 기존대로 alias 에서 막힌다.
|
|
4862
|
+
file: "src/mnemopi/backend.ts",
|
|
4863
|
+
marker: "// HANSE: child recalls its own task",
|
|
4864
|
+
anchor: "\t\t\t\t\taliasOf: parent,\n\t\t\t\t\thasRecalledForFirstTurn: true,\n",
|
|
4865
|
+
patched: "\t\t\t\t\taliasOf: parent,\n\t\t\t\t\t// HANSE: child recalls its own task\n\t\t\t\t\thasRecalledForFirstTurn: false,\n",
|
|
4866
|
+
},
|
|
4867
|
+
{
|
|
4868
|
+
// 위 항목의 짝. child 는 부모의 첫 턴 회상(부모 첫 요청 기준)이 아니라 자기 작업 회상만 싣는다.
|
|
4869
|
+
// 부모 snippet 을 계속 붙이면 child 첫 요청에 서로 다른 <memories> 두 벌이 실린다.
|
|
4870
|
+
file: "src/mnemopi/backend.ts",
|
|
4871
|
+
marker: "const recallSnippet = state?.aliasOf ? state.lastRecallSnippet : primary?.lastRecallSnippet;",
|
|
4872
|
+
anchor: "\t\tif (primary?.lastRecallSnippet) parts.push(primary.lastRecallSnippet);\n",
|
|
4873
|
+
patched: "\t\tconst recallSnippet = state?.aliasOf ? state.lastRecallSnippet : primary?.lastRecallSnippet;\n\t\tif (recallSnippet) parts.push(recallSnippet);\n",
|
|
4874
|
+
},
|
|
4875
|
+
{
|
|
4876
|
+
// 주입되는 <memories> 줄에 기억 id 를 싣는다. recall 도구 결과에는 id 가 있지만 자동 주입 블록에는
|
|
4877
|
+
// 없어서, 작업에 전달된 교훈을 routing_verdict appliedLessons 로 가리킬 수 없었다.
|
|
4878
|
+
file: "src/mnemopi/state.ts",
|
|
4879
|
+
marker: "// HANSE: recall line carries memory id",
|
|
4880
|
+
anchor: "\t\treturn `- ${content}${source}${date}`;\n",
|
|
4881
|
+
patched: "\t\t// HANSE: recall line carries memory id\n\t\tconst memoryId = result.id ? ` (id: ${result.id})` : \"\";\n\t\treturn `- ${content}${source}${date}${memoryId}`;\n",
|
|
4882
|
+
},
|
|
4883
|
+
{
|
|
4884
|
+
// learn 은 rememberScoped 가 돌려준 기억 id 를 버리고 "Lesson stored." 만 알렸다. 교훈을 뒤에서
|
|
4885
|
+
// 가리킬 식별자가 없으면 적용·결과를 연결할 수 없다. mnemopi 경로에서만 id 를 싣는다.
|
|
4886
|
+
file: "src/tools/learn.ts",
|
|
4887
|
+
marker: "// HANSE: learn reports memory id",
|
|
4888
|
+
anchor: "\t\t\ttry {\n\t\t\t\tstate.rememberScoped(params.memory, {\n",
|
|
4889
|
+
patched: "\t\t\ttry {\n\t\t\t\t// HANSE: learn reports memory id\n\t\t\t\tconst memoryId = state.rememberScoped(params.memory, {\n",
|
|
4890
|
+
},
|
|
4891
|
+
{
|
|
4892
|
+
file: "src/tools/learn.ts",
|
|
4893
|
+
marker: "memoryMessage = `Lesson stored (id: ${memoryId})`;",
|
|
4894
|
+
anchor: "\t\t\t\t\tmemoryType: \"fact\",\n\t\t\t\t});\n\t\t\t} catch (error) {\n",
|
|
4895
|
+
patched: "\t\t\t\t\tmemoryType: \"fact\",\n\t\t\t\t});\n\t\t\t\tif (memoryId) memoryMessage = `Lesson stored (id: ${memoryId})`;\n\t\t\t} catch (error) {\n",
|
|
4896
|
+
},
|
|
4724
4897
|
{
|
|
4725
4898
|
// 2026-09-26 실측: `learn`/`retain` 은 `extract: true` 로 저장돼 원문 기억 1건에서 문장 단위 fact 가
|
|
4726
4899
|
// 파생된다(facts.source_msg_id = 원문 working id). fact 회수 결과에는 그 연결이 빠져 있어서, 세션 첫
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cuelo",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "CUELO — open-source AI coding agent workspace and harness for omp (oh-my-pi)",
|
|
5
5
|
"homepage": "https://github.com/gim47656-ship-it/CUELO#readme",
|
|
6
6
|
"repository": {
|
|
@@ -82,8 +82,8 @@
|
|
|
82
82
|
"start:lan": "bun bin/cuelo.js --no-open -H 0.0.0.0 -p 30141",
|
|
83
83
|
"lint": "eslint .",
|
|
84
84
|
"typecheck": "tsc --noEmit",
|
|
85
|
-
"test": "bun test ./app ./components ./hooks ./lib ./public ./bin",
|
|
86
|
-
"test:coverage": "bun test --coverage ./app ./components ./hooks ./lib ./public ./bin"
|
|
85
|
+
"test": "bun test ./app ./components ./hooks ./lib ./public ./bin ./install.test.mjs",
|
|
86
|
+
"test:coverage": "bun test --coverage ./app ./components ./hooks ./lib ./public ./bin ./install.test.mjs"
|
|
87
87
|
},
|
|
88
88
|
"dependencies": {
|
|
89
89
|
"@oh-my-pi/pi-agent-core": "18.3.2",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9492],{1129:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return l(9541)}])},9541:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let r=l(95155),n=l(35949),o=function(){return(0,r.jsx)("html",{children:(0,r.jsx)("body",{children:(0,r.jsx)(n.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})})})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},35949:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessErrorFallback",{enumerable:!0,get:function(){return o}});let r=l(95155),n=l(37356);function o({status:e,message:t}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("title",{children:`${e}: ${t}`}),(0,r.jsx)("div",{style:n.styles.error,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,r.jsx)("h1",{className:"next-error-h1",style:n.styles.h1,children:e}),(0,r.jsx)("div",{style:n.styles.desc,children:(0,r.jsx)("h2",{style:n.styles.h2,children:t})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},37356:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"styles",{enumerable:!0,get:function(){return l}});let l={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{e.O(0,[8441,3794,7358],()=>e(e.s=1129)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{57788:(e,r,t)=>{"use strict";t.d(r,{PwaRegistration:()=>o});var n=t(12115);function o(){return(0,n.useEffect)(()=>{if(!("serviceWorker"in navigator))return;let e=()=>{let e=`/sw.js?v=${encodeURIComponent("0.5.1")}`;navigator.serviceWorker.register(e,{scope:"/",updateViaCache:"none"}).catch(e=>{console.error("Failed to register the CUELO service worker:",e)})};return"complete"===document.readyState?void e():(window.addEventListener("load",e,{once:!0}),()=>window.removeEventListener("load",e))},[]),null}},66872:()=>{},84559:()=>{},90275:(e,r,t)=>{Promise.resolve().then(t.bind(t,57788)),Promise.resolve().then(t.t.bind(t,84559,23)),Promise.resolve().then(t.t.bind(t,66872,23))}},e=>{e.O(0,[5846,7513,8441,3794,7358],()=>e(e.s=90275)),_N_E=e.O()}]);
|
package/.next/static/chunks/next/dist/client/components/builtin/global-error-5bf20286772920a7.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9337],{16537:(e,s,_)=>{Promise.resolve().then(_.t.bind(_,27123,23))}},e=>{e.O(0,[8441,3794,7358],()=>e(e.s=16537)),_N_E=e.O()}]);
|