@rubytech/create-maxy-code 0.1.542 → 0.1.543
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/dist/index.js +37 -0
- package/package.json +1 -1
- package/payload/platform/lib/shared-folder/dist/index.d.ts +47 -0
- package/payload/platform/lib/shared-folder/dist/index.d.ts.map +1 -0
- package/payload/platform/lib/shared-folder/dist/index.js +93 -0
- package/payload/platform/lib/shared-folder/dist/index.js.map +1 -0
- package/payload/platform/lib/shared-folder/src/index.ts +92 -0
- package/payload/platform/lib/shared-folder/tsconfig.json +5 -0
- package/payload/platform/package.json +2 -2
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +15 -1
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +8 -0
- package/payload/platform/plugins/docs/references/access-control.md +14 -0
- package/payload/platform/plugins/filesystem/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/filesystem/PLUGIN.md +11 -1
- package/payload/platform/plugins/filesystem/mcp/dist/index.js +23 -7
- package/payload/platform/plugins/filesystem/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/lib/__tests__/scope.test.js +104 -4
- package/payload/platform/plugins/filesystem/mcp/dist/lib/__tests__/scope.test.js.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/lib/__tests__/shared-folder.test.d.ts +2 -0
- package/payload/platform/plugins/filesystem/mcp/dist/lib/__tests__/shared-folder.test.d.ts.map +1 -0
- package/payload/platform/plugins/filesystem/mcp/dist/lib/__tests__/shared-folder.test.js +67 -0
- package/payload/platform/plugins/filesystem/mcp/dist/lib/__tests__/shared-folder.test.js.map +1 -0
- package/payload/platform/plugins/filesystem/mcp/dist/lib/scope.d.ts +16 -2
- package/payload/platform/plugins/filesystem/mcp/dist/lib/scope.d.ts.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/lib/scope.js +54 -1
- package/payload/platform/plugins/filesystem/mcp/dist/lib/scope.js.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/__tests__/handlers.test.js +76 -2
- package/payload/platform/plugins/filesystem/mcp/dist/tools/__tests__/handlers.test.js.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-edit.d.ts +1 -0
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-edit.d.ts.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-edit.js +3 -3
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-edit.js.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-glob.d.ts +1 -0
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-glob.d.ts.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-glob.js +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-glob.js.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-grep.d.ts +1 -0
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-grep.d.ts.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-grep.js +3 -3
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-grep.js.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-list.d.ts +1 -0
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-list.d.ts.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-list.js +3 -3
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-list.js.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-read.d.ts +1 -0
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-read.d.ts.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-read.js +3 -3
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-read.js.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-write.d.ts +1 -0
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-write.d.ts.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-write.js +3 -3
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-write.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js +81 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts +22 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js +80 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +13 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
- package/payload/platform/plugins/whatsapp/PLUGIN.md +2 -2
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js +1 -1
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +1 -1
- package/payload/platform/scripts/check-no-esm-require.mjs +5 -0
- package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.d.ts +8 -4
- package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.js +27 -7
- package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/config.d.ts +11 -6
- package/payload/platform/services/claude-session-manager/dist/config.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/config.js +8 -4
- package/payload/platform/services/claude-session-manager/dist/config.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/fs-watcher.d.ts +2 -2
- package/payload/platform/services/claude-session-manager/dist/fs-watcher.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +35 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +136 -19
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/index.js +98 -26
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +24 -12
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +130 -27
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js +4 -0
- package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/role-census.d.ts +24 -0
- package/payload/platform/services/claude-session-manager/dist/role-census.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/role-census.js +50 -0
- package/payload/platform/services/claude-session-manager/dist/role-census.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/session-sidecar.d.ts +9 -2
- package/payload/platform/services/claude-session-manager/dist/session-sidecar.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/session-sidecar.js +13 -0
- package/payload/platform/services/claude-session-manager/dist/session-sidecar.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/stuck-turn-recover.d.ts +67 -0
- package/payload/platform/services/claude-session-manager/dist/stuck-turn-recover.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/stuck-turn-recover.js +101 -19
- package/payload/platform/services/claude-session-manager/dist/stuck-turn-recover.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/stuck-turn.d.ts +19 -0
- package/payload/platform/services/claude-session-manager/dist/stuck-turn.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/stuck-turn.js +37 -2
- package/payload/platform/services/claude-session-manager/dist/stuck-turn.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js +9 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/types.d.ts +9 -3
- package/payload/platform/services/claude-session-manager/dist/types.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +105 -8
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.js +108 -10
- package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/server.d.ts +18 -0
- package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/server.js +86 -5
- package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/targets.d.ts +38 -7
- package/payload/platform/services/whatsapp-channel/dist/targets.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/targets.js +42 -7
- package/payload/platform/services/whatsapp-channel/dist/targets.js.map +1 -1
- package/payload/platform/templates/agents/admin/INSTRUCTION.md +15 -0
- package/payload/server/{adminuser-self-heal-LC7HZAC6.js → adminuser-self-heal-ZHFNDKJK.js} +1 -1
- package/payload/server/{chunk-CKTHAHL4.js → chunk-BIHII3CT.js} +3 -2
- package/payload/server/{chunk-PFF6I7KP.js → chunk-HYQNUVGO.js} +8 -1
- package/payload/server/{chunk-HZP7BKBF.js → chunk-MGW536C5.js} +128 -4
- package/payload/server/{chunk-ERIM3EFB.js → chunk-RSNVIN4G.js} +1 -1
- package/payload/server/{manager-CM55K4J2.js → manager-GJHKO7WW.js} +3 -3
- package/payload/server/maxy-edge.js +3 -3
- package/payload/server/public/activity.html +5 -5
- package/payload/server/public/agents.html +4 -4
- package/payload/server/public/assets/AdminLoginScreens-C1iXeR-9.js +1 -0
- package/payload/server/public/assets/AdminLoginScreens-C1iXeR-9.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-C1iXeR-9.js.gz +0 -0
- package/payload/server/public/assets/AdminShell-BeIGNC1Q.js +2 -0
- package/payload/server/public/assets/AdminShell-BeIGNC1Q.js.br +0 -0
- package/payload/server/public/assets/AdminShell-BeIGNC1Q.js.gz +0 -0
- package/payload/server/public/assets/activity-AaFvfwrZ.js +1 -0
- package/payload/server/public/assets/activity-AaFvfwrZ.js.br +0 -0
- package/payload/server/public/assets/activity-AaFvfwrZ.js.gz +0 -0
- package/payload/server/public/assets/admin-Bz34CZqL.js +1 -0
- package/payload/server/public/assets/admin-Bz34CZqL.js.br +0 -0
- package/payload/server/public/assets/admin-Bz34CZqL.js.gz +0 -0
- package/payload/server/public/assets/agents-N0z7qg8a.js +1 -0
- package/payload/server/public/assets/agents-N0z7qg8a.js.br +0 -0
- package/payload/server/public/assets/agents-N0z7qg8a.js.gz +0 -0
- package/payload/server/public/assets/browser-_k-v0iky.js +1 -0
- package/payload/server/public/assets/browser-_k-v0iky.js.br +0 -0
- package/payload/server/public/assets/browser-_k-v0iky.js.gz +0 -0
- package/payload/server/public/assets/calendar-D_DvVRJS.js +1 -0
- package/payload/server/public/assets/calendar-D_DvVRJS.js.br +0 -0
- package/payload/server/public/assets/calendar-D_DvVRJS.js.gz +0 -0
- package/payload/server/public/assets/chat-BbAsvXL_.js +1 -0
- package/payload/server/public/assets/chat-BbAsvXL_.js.br +1 -0
- package/payload/server/public/assets/chat-BbAsvXL_.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-trZmu0ZU.js +1 -0
- package/payload/server/public/assets/chevron-left-trZmu0ZU.js.br +0 -0
- package/payload/server/public/assets/chevron-right-BiGJuNSX.js +1 -0
- package/payload/server/public/assets/chevron-right-BiGJuNSX.js.br +0 -0
- package/payload/server/public/assets/clock-DAeRdj4p.js +1 -0
- package/payload/server/public/assets/clock-DAeRdj4p.js.br +0 -0
- package/payload/server/public/assets/clock-DAeRdj4p.js.gz +0 -0
- package/payload/server/public/assets/{copy-3kj9Oaoc.js → copy-BDoxl3Oi.js} +1 -1
- package/payload/server/public/assets/copy-BDoxl3Oi.js.br +0 -0
- package/payload/server/public/assets/copy-BDoxl3Oi.js.gz +0 -0
- package/payload/server/public/assets/data-DB6T1I-w.js +1 -0
- package/payload/server/public/assets/data-DB6T1I-w.js.br +1 -0
- package/payload/server/public/assets/data-DB6T1I-w.js.gz +0 -0
- package/payload/server/public/assets/{file-text-CBaewT76.js → file-text-DRGn4gjH.js} +1 -1
- package/payload/server/public/assets/file-text-DRGn4gjH.js.br +0 -0
- package/payload/server/public/assets/file-text-DRGn4gjH.js.gz +0 -0
- package/payload/server/public/assets/{graph-B8-e2_Z-.js → graph-D7ECsLPs.js} +3 -3
- package/payload/server/public/assets/graph-D7ECsLPs.js.br +0 -0
- package/payload/server/public/assets/graph-D7ECsLPs.js.gz +0 -0
- package/payload/server/public/assets/{graph-labels-Bsc23eZU.js → graph-labels-ClzmLEoK.js} +1 -1
- package/payload/server/public/assets/graph-labels-ClzmLEoK.js.br +0 -0
- package/payload/server/public/assets/graph-labels-ClzmLEoK.js.gz +0 -0
- package/payload/server/public/assets/operator-jSdha7TP.js +1 -0
- package/payload/server/public/assets/operator-jSdha7TP.js.br +0 -0
- package/payload/server/public/assets/operator-jSdha7TP.js.gz +0 -0
- package/payload/server/public/assets/page-Cq4SkWbr.js +1 -0
- package/payload/server/public/assets/page-Cq4SkWbr.js.br +0 -0
- package/payload/server/public/assets/page-Cq4SkWbr.js.gz +0 -0
- package/payload/server/public/assets/page-DrwRXi3K.js +32 -0
- package/payload/server/public/assets/page-DrwRXi3K.js.br +0 -0
- package/payload/server/public/assets/page-DrwRXi3K.js.gz +0 -0
- package/payload/server/public/assets/play-CWyPEXiB.js +1 -0
- package/payload/server/public/assets/play-CWyPEXiB.js.br +0 -0
- package/payload/server/public/assets/play-CWyPEXiB.js.gz +0 -0
- package/payload/server/public/assets/public-D7MfkWvM.js +1 -0
- package/payload/server/public/assets/public-D7MfkWvM.js.br +0 -0
- package/payload/server/public/assets/public-D7MfkWvM.js.gz +0 -0
- package/payload/server/public/assets/{rotate-ccw-FZW7c8p8.js → rotate-ccw-CaWP-njL.js} +1 -1
- package/payload/server/public/assets/rotate-ccw-CaWP-njL.js.br +0 -0
- package/payload/server/public/assets/rotate-ccw-CaWP-njL.js.gz +0 -0
- package/payload/server/public/assets/routines-XTk0vJUD.js +2 -0
- package/payload/server/public/assets/routines-XTk0vJUD.js.br +0 -0
- package/payload/server/public/assets/routines-XTk0vJUD.js.gz +0 -0
- package/payload/server/public/assets/skills-sjTaAr0v.js +1 -0
- package/payload/server/public/assets/skills-sjTaAr0v.js.br +0 -0
- package/payload/server/public/assets/skills-sjTaAr0v.js.gz +0 -0
- package/payload/server/public/assets/tasks-D0-qwWZR.js +3 -0
- package/payload/server/public/assets/tasks-D0-qwWZR.js.br +0 -0
- package/payload/server/public/assets/tasks-D0-qwWZR.js.gz +0 -0
- package/payload/server/public/assets/{triangle-alert-CR-jRJdI.js → triangle-alert-BCndBPvE.js} +1 -1
- package/payload/server/public/assets/triangle-alert-BCndBPvE.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-BCndBPvE.js.gz +0 -0
- package/payload/server/public/assets/useCopyFeedback-BFMmBvVw.js +1 -0
- package/payload/server/public/assets/useCopyFeedback-BFMmBvVw.js.br +0 -0
- package/payload/server/public/assets/useCopyFeedback-BFMmBvVw.js.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-CXdUnGSe.css +1 -0
- package/payload/server/public/assets/useMediaQuery-CXdUnGSe.css.br +0 -0
- package/payload/server/public/assets/useMediaQuery-CXdUnGSe.css.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-q9BSy1Ld.js +14 -0
- package/payload/server/public/assets/useMediaQuery-q9BSy1Ld.js.br +0 -0
- package/payload/server/public/assets/useMediaQuery-q9BSy1Ld.js.gz +0 -0
- package/payload/server/public/assets/useVoiceRecorder-DmW6CW7B.js +2 -0
- package/payload/server/public/assets/useVoiceRecorder-DmW6CW7B.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-DmW6CW7B.js.gz +0 -0
- package/payload/server/public/assets/{wrench-CpCOYUBc.js → wrench-BBl51xDU.js} +1 -1
- package/payload/server/public/assets/wrench-BBl51xDU.js.br +0 -0
- package/payload/server/public/assets/wrench-BBl51xDU.js.gz +0 -0
- package/payload/server/public/browser.html +4 -4
- package/payload/server/public/calendar.html +8 -8
- package/payload/server/public/chat.html +13 -13
- package/payload/server/public/data.html +11 -11
- package/payload/server/public/graph.html +9 -9
- package/payload/server/public/index.html +14 -14
- package/payload/server/public/operator.html +14 -14
- package/payload/server/public/public.html +13 -13
- package/payload/server/public/routines.html +6 -6
- package/payload/server/public/skills.html +5 -5
- package/payload/server/public/tasks.html +6 -6
- package/payload/server/server.js +474 -254
- package/payload/server/{src-JN6PIAJN.js → src-MM64CYYZ.js} +1 -1
- package/payload/server/{userprofile-reconcile-QHVLY2AH.js → userprofile-reconcile-TL4JKBPG.js} +1 -1
- package/payload/server/public/assets/AdminLoginScreens-DuFCjbz2.js +0 -1
- package/payload/server/public/assets/AdminLoginScreens-DuFCjbz2.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-DuFCjbz2.js.gz +0 -0
- package/payload/server/public/assets/AdminShell-DJL5DzRX.js +0 -2
- package/payload/server/public/assets/AdminShell-DJL5DzRX.js.br +0 -0
- package/payload/server/public/assets/AdminShell-DJL5DzRX.js.gz +0 -0
- package/payload/server/public/assets/activity-CpMnNr5c.js +0 -1
- package/payload/server/public/assets/activity-CpMnNr5c.js.br +0 -0
- package/payload/server/public/assets/activity-CpMnNr5c.js.gz +0 -0
- package/payload/server/public/assets/admin-CBwKIfaI.js +0 -1
- package/payload/server/public/assets/admin-CBwKIfaI.js.br +0 -0
- package/payload/server/public/assets/admin-CBwKIfaI.js.gz +0 -0
- package/payload/server/public/assets/agents-C4LmSKjb.js +0 -1
- package/payload/server/public/assets/agents-C4LmSKjb.js.br +0 -0
- package/payload/server/public/assets/agents-C4LmSKjb.js.gz +0 -0
- package/payload/server/public/assets/browser-Bm9xm_yc.js +0 -1
- package/payload/server/public/assets/browser-Bm9xm_yc.js.br +0 -0
- package/payload/server/public/assets/browser-Bm9xm_yc.js.gz +0 -0
- package/payload/server/public/assets/calendar-CNY9FTWe.js +0 -1
- package/payload/server/public/assets/calendar-CNY9FTWe.js.br +0 -0
- package/payload/server/public/assets/calendar-CNY9FTWe.js.gz +0 -0
- package/payload/server/public/assets/chat-3WoUGCTd.js +0 -1
- package/payload/server/public/assets/chat-3WoUGCTd.js.br +0 -0
- package/payload/server/public/assets/chat-3WoUGCTd.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-BE16BJnw.js +0 -1
- package/payload/server/public/assets/chevron-left-BE16BJnw.js.br +0 -0
- package/payload/server/public/assets/chevron-right-Bu2VKpeU.js +0 -1
- package/payload/server/public/assets/chevron-right-Bu2VKpeU.js.br +0 -0
- package/payload/server/public/assets/clock-C4Nu2aRV.js +0 -1
- package/payload/server/public/assets/clock-C4Nu2aRV.js.br +0 -0
- package/payload/server/public/assets/copy-3kj9Oaoc.js.br +0 -0
- package/payload/server/public/assets/copy-3kj9Oaoc.js.gz +0 -0
- package/payload/server/public/assets/data-C-x5EHyi.js +0 -1
- package/payload/server/public/assets/data-C-x5EHyi.js.br +0 -1
- package/payload/server/public/assets/data-C-x5EHyi.js.gz +0 -0
- package/payload/server/public/assets/file-text-CBaewT76.js.br +0 -0
- package/payload/server/public/assets/file-text-CBaewT76.js.gz +0 -0
- package/payload/server/public/assets/graph-B8-e2_Z-.js.br +0 -0
- package/payload/server/public/assets/graph-B8-e2_Z-.js.gz +0 -0
- package/payload/server/public/assets/graph-labels-Bsc23eZU.js.br +0 -0
- package/payload/server/public/assets/graph-labels-Bsc23eZU.js.gz +0 -0
- package/payload/server/public/assets/operator-Cve0-qfO.js +0 -1
- package/payload/server/public/assets/operator-Cve0-qfO.js.br +0 -0
- package/payload/server/public/assets/operator-Cve0-qfO.js.gz +0 -0
- package/payload/server/public/assets/page-BgVMs6Vf.js +0 -1
- package/payload/server/public/assets/page-BgVMs6Vf.js.br +0 -0
- package/payload/server/public/assets/page-BgVMs6Vf.js.gz +0 -0
- package/payload/server/public/assets/page-fABub-w8.js +0 -32
- package/payload/server/public/assets/page-fABub-w8.js.br +0 -0
- package/payload/server/public/assets/page-fABub-w8.js.gz +0 -0
- package/payload/server/public/assets/play-B6zXB9K7.js +0 -1
- package/payload/server/public/assets/play-B6zXB9K7.js.br +0 -0
- package/payload/server/public/assets/play-B6zXB9K7.js.gz +0 -0
- package/payload/server/public/assets/public--R2DbdWs.js +0 -1
- package/payload/server/public/assets/public--R2DbdWs.js.br +0 -0
- package/payload/server/public/assets/public--R2DbdWs.js.gz +0 -0
- package/payload/server/public/assets/rotate-ccw-FZW7c8p8.js.br +0 -0
- package/payload/server/public/assets/rotate-ccw-FZW7c8p8.js.gz +0 -0
- package/payload/server/public/assets/routines-BpZs2SaT.js +0 -2
- package/payload/server/public/assets/routines-BpZs2SaT.js.br +0 -0
- package/payload/server/public/assets/routines-BpZs2SaT.js.gz +0 -0
- package/payload/server/public/assets/skills-DF7uyEEz.js +0 -1
- package/payload/server/public/assets/skills-DF7uyEEz.js.br +0 -0
- package/payload/server/public/assets/skills-DF7uyEEz.js.gz +0 -0
- package/payload/server/public/assets/tasks-BfJJmoWO.js +0 -3
- package/payload/server/public/assets/tasks-BfJJmoWO.js.br +0 -0
- package/payload/server/public/assets/tasks-BfJJmoWO.js.gz +0 -0
- package/payload/server/public/assets/triangle-alert-CR-jRJdI.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-CR-jRJdI.js.gz +0 -0
- package/payload/server/public/assets/useCopyFeedback-IOuPUAHY.js +0 -1
- package/payload/server/public/assets/useCopyFeedback-IOuPUAHY.js.br +0 -0
- package/payload/server/public/assets/useCopyFeedback-IOuPUAHY.js.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-CA6dR5iz.js +0 -14
- package/payload/server/public/assets/useMediaQuery-CA6dR5iz.js.br +0 -0
- package/payload/server/public/assets/useMediaQuery-CA6dR5iz.js.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-DpwgV1Da.css +0 -1
- package/payload/server/public/assets/useMediaQuery-DpwgV1Da.css.br +0 -0
- package/payload/server/public/assets/useMediaQuery-DpwgV1Da.css.gz +0 -0
- package/payload/server/public/assets/useVoiceRecorder-DGhsN7nV.js +0 -2
- package/payload/server/public/assets/useVoiceRecorder-DGhsN7nV.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-DGhsN7nV.js.gz +0 -0
- package/payload/server/public/assets/wrench-CpCOYUBc.js.br +0 -0
- package/payload/server/public/assets/wrench-CpCOYUBc.js.gz +0 -0
package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-agent-reachability.d.ts","sourceRoot":"","sources":["../src/public-agent-reachability.ts"],"names":[],"mappings":"AAcA,OAAO,EAAuD,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAE5H,eAAO,MAAM,sBAAsB,wEAAyE,CAAA;AAI5G,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,UAAU,GAAG,yBAAyB,GAAG,eAAe,CAAA;AACzF,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,WAAW,CAAA;IACnB;iEAC6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAID,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;AAE3C;;;qCAGqC;AACrC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,YAAY,CAKd;AAED;;;;;;yDAMyD;AACzD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAKd;AAsBD,MAAM,WAAW,qBAAqB;IACpC;;;2DAGuD;IACvD,WAAW,EAAE,MAAM;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC9D,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,IAAI,IAAI,CAAA;IACb,IAAI,IAAI,IAAI,CAAA;IACZ,QAAQ,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CACrD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"public-agent-reachability.d.ts","sourceRoot":"","sources":["../src/public-agent-reachability.ts"],"names":[],"mappings":"AAcA,OAAO,EAAuD,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAE5H,eAAO,MAAM,sBAAsB,wEAAyE,CAAA;AAI5G,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,UAAU,GAAG,yBAAyB,GAAG,eAAe,CAAA;AACzF,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,WAAW,CAAA;IACnB;iEAC6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAID,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;AAE3C;;;qCAGqC;AACrC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,YAAY,CAKd;AAED;;;;;;yDAMyD;AACzD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAKd;AAsBD,MAAM,WAAW,qBAAqB;IACpC;;;2DAGuD;IACvD,WAAW,EAAE,MAAM;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC9D,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,IAAI,IAAI,CAAA;IACb,IAAI,IAAI,IAAI,CAAA;IACZ,QAAQ,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CACrD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,iBAAiB,CAsEtF"}
|
|
@@ -91,6 +91,10 @@ export function createReachabilityAudit(deps) {
|
|
|
91
91
|
// IDENTITY is missing is reachable=false, so `reachable=true` implies the
|
|
92
92
|
// spawn will not refuse on a missing file — the audit can no longer
|
|
93
93
|
// certify an agent it has never proven can spawn.
|
|
94
|
+
// Task 2325 — the resolver now returns null for an unnamed role. The
|
|
95
|
+
// literal 'public' here is a named arm, so it never can; the non-null
|
|
96
|
+
// assertion keeps the audit's shape unchanged rather than threading an
|
|
97
|
+
// impossible branch through it.
|
|
94
98
|
const identityDir = resolveAgentIdentityDir(account.accountDir, 'public', entry.name);
|
|
95
99
|
const v = reachabilityWithFiles(entry.name, defaultAgent, MANAGER_SHADOWED_SLUGS, publicIdentityFilesPresent(identityDir));
|
|
96
100
|
if (!v.reachable)
|
package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-agent-reachability.js","sourceRoot":"","sources":["../src/public-agent-reachability.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"public-agent-reachability.js","sourceRoot":"","sources":["../src/public-agent-reachability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AgentRole } from './types.js';
|
|
2
|
+
export type Logger = (line: string) => void;
|
|
3
|
+
export interface RoleCensusCounts {
|
|
4
|
+
admin: number;
|
|
5
|
+
public: number;
|
|
6
|
+
passive: number;
|
|
7
|
+
/** Spawns refused because no role could be resolved. Structurally zero. */
|
|
8
|
+
unresolved: number;
|
|
9
|
+
}
|
|
10
|
+
/** Pure. The census line for one interval's counts. */
|
|
11
|
+
export declare function formatRoleCensus(c: RoleCensusCounts): string;
|
|
12
|
+
export interface RoleCensusDeps {
|
|
13
|
+
logger: Logger;
|
|
14
|
+
intervalMs: number;
|
|
15
|
+
}
|
|
16
|
+
export interface RoleCensus {
|
|
17
|
+
/** Record one spawn attempt. `null` is a spawn whose role did not resolve. */
|
|
18
|
+
record(role: AgentRole | null): void;
|
|
19
|
+
tickOnce(): void;
|
|
20
|
+
start(): void;
|
|
21
|
+
stop(): void;
|
|
22
|
+
}
|
|
23
|
+
export declare function createRoleCensus(deps: RoleCensusDeps): RoleCensus;
|
|
24
|
+
//# sourceMappingURL=role-census.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-census.d.ts","sourceRoot":"","sources":["../src/role-census.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAI3C,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAE5D;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,8EAA8E;IAC9E,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;IACpC,QAAQ,IAAI,IAAI,CAAA;IAChB,KAAK,IAAI,IAAI,CAAA;IACb,IAAI,IAAI,IAAI,CAAA;CACb;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,UAAU,CAqCjE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
const TAG = '[role-census]';
|
|
2
|
+
/** Pure. The census line for one interval's counts. */
|
|
3
|
+
export function formatRoleCensus(c) {
|
|
4
|
+
return `${TAG} op=spawn-role-census admin=${c.admin} public=${c.public} passive=${c.passive} unresolved=${c.unresolved}`;
|
|
5
|
+
}
|
|
6
|
+
function zeroed() {
|
|
7
|
+
return { admin: 0, public: 0, passive: 0, unresolved: 0 };
|
|
8
|
+
}
|
|
9
|
+
export function createRoleCensus(deps) {
|
|
10
|
+
let counts = zeroed();
|
|
11
|
+
let timer = null;
|
|
12
|
+
function tickOnce() {
|
|
13
|
+
// Emitted on zero. A quiet interval is itself the signal that the census is
|
|
14
|
+
// alive, so a missing line means the audit stopped rather than that nothing
|
|
15
|
+
// spawned.
|
|
16
|
+
deps.logger(formatRoleCensus(counts));
|
|
17
|
+
counts = zeroed();
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
record(role) {
|
|
21
|
+
if (role === null)
|
|
22
|
+
counts.unresolved += 1;
|
|
23
|
+
else
|
|
24
|
+
counts[role] += 1;
|
|
25
|
+
},
|
|
26
|
+
tickOnce,
|
|
27
|
+
start() {
|
|
28
|
+
if (timer)
|
|
29
|
+
return;
|
|
30
|
+
timer = setInterval(() => {
|
|
31
|
+
try {
|
|
32
|
+
tickOnce();
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
deps.logger(`${TAG} op=census-tick-failed message=${err instanceof Error ? err.message : String(err)}`);
|
|
36
|
+
}
|
|
37
|
+
}, deps.intervalMs);
|
|
38
|
+
if (typeof timer.unref === 'function')
|
|
39
|
+
timer.unref();
|
|
40
|
+
deps.logger(`${TAG} op=census-started intervalMs=${deps.intervalMs}`);
|
|
41
|
+
},
|
|
42
|
+
stop() {
|
|
43
|
+
if (timer) {
|
|
44
|
+
clearInterval(timer);
|
|
45
|
+
timer = null;
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=role-census.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-census.js","sourceRoot":"","sources":["../src/role-census.ts"],"names":[],"mappings":"AAqBA,MAAM,GAAG,GAAG,eAAe,CAAA;AAY3B,uDAAuD;AACvD,MAAM,UAAU,gBAAgB,CAAC,CAAmB;IAClD,OAAO,GAAG,GAAG,+BAA+B,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,UAAU,EAAE,CAAA;AAC1H,CAAC;AAeD,SAAS,MAAM;IACb,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,IAAI,MAAM,GAAqB,MAAM,EAAE,CAAA;IACvC,IAAI,KAAK,GAA0C,IAAI,CAAA;IAEvD,SAAS,QAAQ;QACf,4EAA4E;QAC5E,4EAA4E;QAC5E,WAAW;QACX,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;QACrC,MAAM,GAAG,MAAM,EAAE,CAAA;IACnB,CAAC;IAED,OAAO;QACL,MAAM,CAAC,IAAI;YACT,IAAI,IAAI,KAAK,IAAI;gBAAE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAA;;gBACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;QACD,QAAQ;QACR,KAAK;YACH,IAAI,KAAK;gBAAE,OAAM;YACjB,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;gBACvB,IAAI,CAAC;oBACH,QAAQ,EAAE,CAAA;gBACZ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACzG,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;YACnB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;gBAAE,KAAK,CAAC,KAAK,EAAE,CAAA;YACpD,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,iCAAiC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QACvE,CAAC;QACD,IAAI;YACF,IAAI,KAAK,EAAE,CAAC;gBACV,aAAa,CAAC,KAAK,CAAC,CAAA;gBACpB,KAAK,GAAG,IAAI,CAAA;YACd,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Logger,
|
|
1
|
+
import type { Logger, AgentRole, Channel } from './types.js';
|
|
2
2
|
export interface SessionSidecar {
|
|
3
3
|
senderId: string;
|
|
4
|
-
role:
|
|
4
|
+
role: AgentRole;
|
|
5
5
|
channel: Channel;
|
|
6
6
|
/** Operator-facing iframe URL from the `/remote-control is active` banner.
|
|
7
7
|
* Null until url-capture matches; may stay null forever on headless
|
|
@@ -138,4 +138,11 @@ export declare function updateSidecar(path: string, patch: Partial<SessionSideca
|
|
|
138
138
|
* fields, so the rename-loses-write window is the existing limitation
|
|
139
139
|
* rather than a new one. */
|
|
140
140
|
export declare function appendBridgeId(path: string, bridgeSuffix: string, logger: Logger): 'ok' | 'duplicate' | 'no-sidecar';
|
|
141
|
+
/** Task 2325 — the role a sidecar records. `passive` is a persona role
|
|
142
|
+
* resolved at the spawn boundary; writing it here would fail the ROLES
|
|
143
|
+
* allowlist in `parseSidecar` and make every passive session's sidecar load
|
|
144
|
+
* back as null, so it maps to the wire role it rode in on before the role
|
|
145
|
+
* became first-class. Exported so the derivation is testable and so
|
|
146
|
+
* pty-spawner calls one function rather than repeating a literal. */
|
|
147
|
+
export declare function sidecarWireRole(role: AgentRole): AgentRole;
|
|
141
148
|
//# sourceMappingURL=session-sidecar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sidecar.d.ts","sourceRoot":"","sources":["../src/session-sidecar.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"session-sidecar.d.ts","sourceRoot":"","sources":["../src/session-sidecar.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB;;;0BAGsB;IACtB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB;;;;;;oDAMgD;IAChD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;;;;uCAMmC;IACnC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC;;;yEAGqE;IACrE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB;0DACsD;IACtD,MAAM,EAAE,OAAO,CAAA;IACf;4DACwD;IACxD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;;;;;oEAKgE;IAChE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;;;;oDAMgD;IAChD,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB;;;6EAGyE;IACzE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB;;;;;;wBAMoB;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;;;wCAMoC;IACpC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC;;;0BAGsB;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB;;;qFAGiF;IACjF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB;;;;;;;qCAOiC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;;;;;sDAKkD;IAClD,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B;;;sDAGkD;IAClD,OAAO,EAAE,IAAI,GAAG,SAAS,GAAG,cAAc,CAAA;IAC1C,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAA;CACd;AAMD;;;;6BAI6B;AAC7B,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CA+B5E;AAED;;;qCAGqC;AACrC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAiBxF;AAED;;;;+DAI+D;AAC/D,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAmBT;AAED;;;;;;;;;6BAS6B;AAC7B,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,IAAI,GAAG,WAAW,GAAG,YAAY,CAmBnC;AAQD;;;;;sEAKsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAE1D"}
|
|
@@ -171,7 +171,20 @@ export function appendBridgeId(path, bridgeSuffix, logger) {
|
|
|
171
171
|
logger(`[session-sidecar] append-bridge sessionId=${basenameShort(path)} bridgeId=${bridgeSuffix} count=${next.bridgeIds.length} bytes=${bytes}`);
|
|
172
172
|
return 'ok';
|
|
173
173
|
}
|
|
174
|
+
// Task 2325 — the disk subset of AgentRole. `passive` is a persona role
|
|
175
|
+
// resolved at the spawn boundary and is deliberately absent here: no sidecar
|
|
176
|
+
// may record it, and pty-spawner maps a passive spawn back to its wire role
|
|
177
|
+
// before writing. Widening this makes every pre-2325 reader reject the row.
|
|
174
178
|
const ROLES = ['admin', 'public'];
|
|
179
|
+
/** Task 2325 — the role a sidecar records. `passive` is a persona role
|
|
180
|
+
* resolved at the spawn boundary; writing it here would fail the ROLES
|
|
181
|
+
* allowlist in `parseSidecar` and make every passive session's sidecar load
|
|
182
|
+
* back as null, so it maps to the wire role it rode in on before the role
|
|
183
|
+
* became first-class. Exported so the derivation is testable and so
|
|
184
|
+
* pty-spawner calls one function rather than repeating a literal. */
|
|
185
|
+
export function sidecarWireRole(role) {
|
|
186
|
+
return role === 'passive' ? 'public' : role;
|
|
187
|
+
}
|
|
175
188
|
const CHANNELS = ['browser', 'whatsapp', 'telegram', 'webchat', 'email'];
|
|
176
189
|
function parseSidecar(raw) {
|
|
177
190
|
if (!raw || typeof raw !== 'object')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sidecar.js","sourceRoot":"","sources":["../src/session-sidecar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-sidecar.js","sourceRoot":"","sources":["../src/session-sidecar.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,4 +39,71 @@ export interface RecoverWedgedDeps {
|
|
|
39
39
|
* detached-survivor class the manager never owned as a tracker). */
|
|
40
40
|
export declare function stopConfirmsExit(scopeOutcome: string): boolean;
|
|
41
41
|
export declare function recoverWedgedSession(deps: RecoverWedgedDeps, sessionId: string, accountId: string | null): Promise<void>;
|
|
42
|
+
/** Task 2320 — where a retired transcript goes. The suffix is appended AFTER
|
|
43
|
+
* `.jsonl` rather than replacing it, because three readers key on this path and
|
|
44
|
+
* they disagree about what matches:
|
|
45
|
+
* - fs-watcher.ts:718/:831/:846 tests `endsWith('.jsonl')` and takes the id
|
|
46
|
+
* as the basename minus that suffix, so a `*.jsonl` name would register a
|
|
47
|
+
* phantom session row;
|
|
48
|
+
* - sidebar-sessions.ts:173 tests an anchored `^<uuid>\.jsonl$`;
|
|
49
|
+
* - jsonl-path.ts:133 tests the exact basename `<sid>.jsonl`, top level and
|
|
50
|
+
* archive/, and is what makes the next spawn `mode=fresh`.
|
|
51
|
+
* This name is rejected by all three. It stays in the same directory, so the
|
|
52
|
+
* retired transcript survives for logs-read.sh. */
|
|
53
|
+
export declare function wedgedRotationPath(jsonlPath: string, nowMs: number): string;
|
|
54
|
+
export interface RotateWedgedDeps {
|
|
55
|
+
/** SIGTERM the rc scope. Same contract as RecoverWedgedDeps.stop. */
|
|
56
|
+
stop(sessionId: string): Promise<{
|
|
57
|
+
scopeOutcome: string;
|
|
58
|
+
}>;
|
|
59
|
+
/** True once the wedged process has exited (its pid is no longer alive). */
|
|
60
|
+
processGone(sessionId: string): boolean;
|
|
61
|
+
/** Rename the transcript to `wedgedRotationPath`. Returns the new path.
|
|
62
|
+
* Throws on any fs failure; the caller logs and does NOT spawn. */
|
|
63
|
+
rotateJsonl(jsonlPath: string): string;
|
|
64
|
+
/** Drive a FRESH rc-spawn at the same id. With the transcript gone from the
|
|
65
|
+
* path the resume check reads, /rc-spawn resolves `mode=fresh` on its own
|
|
66
|
+
* (Task 547); `initialMessage` rides as the CLI's sole positional. */
|
|
67
|
+
freshSpawn(sessionId: string, accountId: string | null, initialMessage: string): Promise<{
|
|
68
|
+
spawned: boolean;
|
|
69
|
+
}>;
|
|
70
|
+
logger: (l: string) => void;
|
|
71
|
+
sleep(ms: number): Promise<void>;
|
|
72
|
+
/** Max wait for the SIGTERM'd process to exit before abandoning the rotation. */
|
|
73
|
+
exitTimeoutMs: number;
|
|
74
|
+
/** Poll interval while waiting for the process exit. */
|
|
75
|
+
pollMs: number;
|
|
76
|
+
}
|
|
77
|
+
/** Task 2320 — retire a transcript the resume path cannot clear.
|
|
78
|
+
*
|
|
79
|
+
* A public session past the CLI's resume threshold renders an interactive TUI
|
|
80
|
+
* gate on every `--resume`. Nothing answers it, so the watchdog's own remedy
|
|
81
|
+
* re-creates the wedge and `ageMs` climbs forever. Retiring the transcript is
|
|
82
|
+
* the only exit: the session id is derived rather than allocated
|
|
83
|
+
* (`adminSessionIdFor`), so the fresh spawn must land at the SAME id or the
|
|
84
|
+
* hub, the channel binding and the rebind store are all orphaned.
|
|
85
|
+
*
|
|
86
|
+
* The stop is not optional. /rc-spawn short-circuits an already-live session
|
|
87
|
+
* (http-server.ts:3112) with `outcome:'bound', reused:true` and no spawn, so a
|
|
88
|
+
* rename-then-request would report a bind that did not happen and leave the
|
|
89
|
+
* gate-parked process running against a path that no longer holds its file.
|
|
90
|
+
*
|
|
91
|
+
* SECURITY INVARIANT — this rotates the JSONL and NOTHING ELSE. In particular
|
|
92
|
+
* the session's `<sid>.meta.json` sidecar MUST stay where it is. The fresh
|
|
93
|
+
* spawn posts no `role`, so `rcRole` is undefined and
|
|
94
|
+
* `effectiveRcRole = rcRole ?? priorSidecar?.role` (http-server.ts:3440) is the
|
|
95
|
+
* only thing that re-derives `public` for it. That sidecar read is what keeps
|
|
96
|
+
* `buildRcPublicLockdownArgv` applied. Rotate the sidecar too and a visitor's
|
|
97
|
+
* session respawns with no lockdown and the full admin tool surface — the exact
|
|
98
|
+
* defect Task 2260 closed. The sidecar survives the fresh spawn on its own
|
|
99
|
+
* (the classification write is gated `rcRole !== undefined` at :3824 AND
|
|
100
|
+
* write-once on `!existsSync`), and no `updateSidecar` caller patches `role`. */
|
|
101
|
+
export declare function rotateWedgedSession(deps: RotateWedgedDeps, input: {
|
|
102
|
+
sessionId: string;
|
|
103
|
+
jsonlPath: string;
|
|
104
|
+
initialMessage: string;
|
|
105
|
+
pendingQueued: number;
|
|
106
|
+
carried: number;
|
|
107
|
+
accountId: string | null;
|
|
108
|
+
}): Promise<void>;
|
|
42
109
|
//# sourceMappingURL=stuck-turn-recover.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stuck-turn-recover.d.ts","sourceRoot":"","sources":["../src/stuck-turn-recover.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,iBAAiB;IAChC;;;8EAG0E;IAC1E,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1D,4EAA4E;IAC5E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IACvC;;;;+EAI2E;IAC3E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACvF,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,+EAA+E;IAC/E,aAAa,EAAE,MAAM,CAAA;IACrB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;qEAaqE;AACrE,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAI9D;
|
|
1
|
+
{"version":3,"file":"stuck-turn-recover.d.ts","sourceRoot":"","sources":["../src/stuck-turn-recover.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,iBAAiB;IAChC;;;8EAG0E;IAC1E,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1D,4EAA4E;IAC5E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IACvC;;;;+EAI2E;IAC3E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACvF,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,+EAA+E;IAC/E,aAAa,EAAE,MAAM,CAAA;IACrB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;qEAaqE;AACrE,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAI9D;AAoCD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;;;;;;;;oDAUoD;AACpD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1D,4EAA4E;IAC5E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IACvC;wEACoE;IACpE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;IACtC;;2EAEuE;IACvE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAC9G,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAA;IACrB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;kFAuBkF;AAClF,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE;IACL,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB,GACA,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
|
|
@@ -24,32 +24,114 @@ export function stopConfirmsExit(scopeOutcome) {
|
|
|
24
24
|
|| scopeOutcome === 'escalated-term'
|
|
25
25
|
|| scopeOutcome === 'escalated-kill';
|
|
26
26
|
}
|
|
27
|
+
/** Task 2320 — the stop-and-confirm preamble both recovery composites open
|
|
28
|
+
* with, extracted so the resume path and the rotate path cannot drift on the
|
|
29
|
+
* pid-reuse hardening.
|
|
30
|
+
*
|
|
31
|
+
* Task 1276 — when stopSession verified the exit at kill time, return
|
|
32
|
+
* immediately: the pid-liveness poll could otherwise be defeated by a kernel
|
|
33
|
+
* pid-reuse inside the post-SIGTERM / pre-fs-watcher window and strand the turn
|
|
34
|
+
* on a false still-alive. Only ambiguous / possibly-alive outcomes fall through
|
|
35
|
+
* to the poll (which handles slow exiters and the detached survivors the
|
|
36
|
+
* manager does not own as a tracker).
|
|
37
|
+
*
|
|
38
|
+
* `exited` false means the process outlived `exitTimeoutMs`. Neither caller may
|
|
39
|
+
* proceed on that. */
|
|
40
|
+
async function stopAndConfirmExit(deps, sessionId) {
|
|
41
|
+
const stopResult = await deps.stop(sessionId);
|
|
42
|
+
if (stopConfirmsExit(stopResult.scopeOutcome))
|
|
43
|
+
return { scopeOutcome: stopResult.scopeOutcome, exited: true };
|
|
44
|
+
let waited = 0;
|
|
45
|
+
while (!deps.processGone(sessionId)) {
|
|
46
|
+
if (waited >= deps.exitTimeoutMs)
|
|
47
|
+
return { scopeOutcome: stopResult.scopeOutcome, exited: false };
|
|
48
|
+
await deps.sleep(deps.pollMs);
|
|
49
|
+
waited += deps.pollMs;
|
|
50
|
+
}
|
|
51
|
+
return { scopeOutcome: stopResult.scopeOutcome, exited: true };
|
|
52
|
+
}
|
|
27
53
|
export async function recoverWedgedSession(deps, sessionId, accountId) {
|
|
28
54
|
const id8 = sessionId.slice(0, 8);
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
// the turn on a false still-alive. Only ambiguous / possibly-alive outcomes
|
|
34
|
-
// fall through to the poll (which handles slow exiters and the detached
|
|
35
|
-
// survivors the manager does not own as a tracker).
|
|
36
|
-
if (!stopConfirmsExit(stopResult.scopeOutcome)) {
|
|
37
|
-
let waited = 0;
|
|
38
|
-
while (!deps.processGone(sessionId)) {
|
|
39
|
-
if (waited >= deps.exitTimeoutMs) {
|
|
40
|
-
deps.logger(`[stuck-turn] op=recycle-resume sessionId=${id8} spawn=skipped reason=still-alive stop-outcome=${stopResult.scopeOutcome}`);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
await deps.sleep(deps.pollMs);
|
|
44
|
-
waited += deps.pollMs;
|
|
45
|
-
}
|
|
55
|
+
const { scopeOutcome, exited } = await stopAndConfirmExit(deps, sessionId);
|
|
56
|
+
if (!exited) {
|
|
57
|
+
deps.logger(`[stuck-turn] op=recycle-resume sessionId=${id8} spawn=skipped reason=still-alive stop-outcome=${scopeOutcome}`);
|
|
58
|
+
return;
|
|
46
59
|
}
|
|
47
60
|
try {
|
|
48
61
|
const r = await deps.resumeSpawn(sessionId, accountId);
|
|
49
|
-
deps.logger(`[stuck-turn] op=recycle-resume sessionId=${id8} spawn=${r.spawned ? 'bound' : 'failed'} stop-outcome=${
|
|
62
|
+
deps.logger(`[stuck-turn] op=recycle-resume sessionId=${id8} spawn=${r.spawned ? 'bound' : 'failed'} stop-outcome=${scopeOutcome}`);
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
deps.logger(`[stuck-turn] op=recycle-resume sessionId=${id8} spawn=error stop-outcome=${scopeOutcome} message=${JSON.stringify(err instanceof Error ? err.message : String(err))}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/** Task 2320 — where a retired transcript goes. The suffix is appended AFTER
|
|
69
|
+
* `.jsonl` rather than replacing it, because three readers key on this path and
|
|
70
|
+
* they disagree about what matches:
|
|
71
|
+
* - fs-watcher.ts:718/:831/:846 tests `endsWith('.jsonl')` and takes the id
|
|
72
|
+
* as the basename minus that suffix, so a `*.jsonl` name would register a
|
|
73
|
+
* phantom session row;
|
|
74
|
+
* - sidebar-sessions.ts:173 tests an anchored `^<uuid>\.jsonl$`;
|
|
75
|
+
* - jsonl-path.ts:133 tests the exact basename `<sid>.jsonl`, top level and
|
|
76
|
+
* archive/, and is what makes the next spawn `mode=fresh`.
|
|
77
|
+
* This name is rejected by all three. It stays in the same directory, so the
|
|
78
|
+
* retired transcript survives for logs-read.sh. */
|
|
79
|
+
export function wedgedRotationPath(jsonlPath, nowMs) {
|
|
80
|
+
return `${jsonlPath}.wedged-${nowMs}`;
|
|
81
|
+
}
|
|
82
|
+
/** Task 2320 — retire a transcript the resume path cannot clear.
|
|
83
|
+
*
|
|
84
|
+
* A public session past the CLI's resume threshold renders an interactive TUI
|
|
85
|
+
* gate on every `--resume`. Nothing answers it, so the watchdog's own remedy
|
|
86
|
+
* re-creates the wedge and `ageMs` climbs forever. Retiring the transcript is
|
|
87
|
+
* the only exit: the session id is derived rather than allocated
|
|
88
|
+
* (`adminSessionIdFor`), so the fresh spawn must land at the SAME id or the
|
|
89
|
+
* hub, the channel binding and the rebind store are all orphaned.
|
|
90
|
+
*
|
|
91
|
+
* The stop is not optional. /rc-spawn short-circuits an already-live session
|
|
92
|
+
* (http-server.ts:3112) with `outcome:'bound', reused:true` and no spawn, so a
|
|
93
|
+
* rename-then-request would report a bind that did not happen and leave the
|
|
94
|
+
* gate-parked process running against a path that no longer holds its file.
|
|
95
|
+
*
|
|
96
|
+
* SECURITY INVARIANT — this rotates the JSONL and NOTHING ELSE. In particular
|
|
97
|
+
* the session's `<sid>.meta.json` sidecar MUST stay where it is. The fresh
|
|
98
|
+
* spawn posts no `role`, so `rcRole` is undefined and
|
|
99
|
+
* `effectiveRcRole = rcRole ?? priorSidecar?.role` (http-server.ts:3440) is the
|
|
100
|
+
* only thing that re-derives `public` for it. That sidecar read is what keeps
|
|
101
|
+
* `buildRcPublicLockdownArgv` applied. Rotate the sidecar too and a visitor's
|
|
102
|
+
* session respawns with no lockdown and the full admin tool surface — the exact
|
|
103
|
+
* defect Task 2260 closed. The sidecar survives the fresh spawn on its own
|
|
104
|
+
* (the classification write is gated `rcRole !== undefined` at :3824 AND
|
|
105
|
+
* write-once on `!existsSync`), and no `updateSidecar` caller patches `role`. */
|
|
106
|
+
export async function rotateWedgedSession(deps, input) {
|
|
107
|
+
const id8 = input.sessionId.slice(0, 8);
|
|
108
|
+
const { scopeOutcome, exited } = await stopAndConfirmExit(deps, input.sessionId);
|
|
109
|
+
if (!exited) {
|
|
110
|
+
deps.logger(`[stuck-turn] op=recycle-rotate sessionId=${id8} outcome=failed reason=still-alive stop-outcome=${scopeOutcome}`);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
let rotatedPath;
|
|
114
|
+
try {
|
|
115
|
+
rotatedPath = deps.rotateJsonl(input.jsonlPath);
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
// Do NOT spawn: the transcript is still at the live path, so /rc-spawn
|
|
119
|
+
// would resolve mode=resume and re-render the very gate this exists to clear.
|
|
120
|
+
const code = err?.code ?? 'unknown';
|
|
121
|
+
deps.logger(`[stuck-turn] op=recycle-rotate sessionId=${id8} outcome=failed reason=rename-${code}`);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
// The rotation is its own event, emitted before the spawn: a spawn that hangs
|
|
125
|
+
// must not make the rotation itself unobservable. `carried` is the count of
|
|
126
|
+
// pending inbounds whose text made it into initialMessage; it is below
|
|
127
|
+
// pendingQueued only when an enqueue row carried no string content.
|
|
128
|
+
deps.logger(`[stuck-turn] op=recycle-rotate sessionId=${id8} jsonl=${rotatedPath} pendingQueued=${input.pendingQueued} carried=${input.carried}`);
|
|
129
|
+
try {
|
|
130
|
+
const r = await deps.freshSpawn(input.sessionId, input.accountId, input.initialMessage);
|
|
131
|
+
deps.logger(`[stuck-turn] op=recycle-rotate-spawn sessionId=${id8} spawn=${r.spawned ? 'bound' : 'failed'}`);
|
|
50
132
|
}
|
|
51
133
|
catch (err) {
|
|
52
|
-
deps.logger(`[stuck-turn] op=recycle-
|
|
134
|
+
deps.logger(`[stuck-turn] op=recycle-rotate-spawn sessionId=${id8} spawn=error message=${JSON.stringify(err instanceof Error ? err.message : String(err))}`);
|
|
53
135
|
}
|
|
54
136
|
}
|
|
55
137
|
//# sourceMappingURL=stuck-turn-recover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stuck-turn-recover.js","sourceRoot":"","sources":["../src/stuck-turn-recover.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,gFAAgF;AAChF,iFAAiF;AACjF,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,wDAAwD;AAwBxD;;;;;;;;;;;;;qEAaqE;AACrE,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,OAAO,YAAY,KAAK,IAAI;WACvB,YAAY,KAAK,gBAAgB;WACjC,YAAY,KAAK,gBAAgB,CAAA;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAuB,EACvB,SAAiB,EACjB,SAAwB;IAExB,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,MAAM,
|
|
1
|
+
{"version":3,"file":"stuck-turn-recover.js","sourceRoot":"","sources":["../src/stuck-turn-recover.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,gFAAgF;AAChF,iFAAiF;AACjF,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,wDAAwD;AAwBxD;;;;;;;;;;;;;qEAaqE;AACrE,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,OAAO,YAAY,KAAK,IAAI;WACvB,YAAY,KAAK,gBAAgB;WACjC,YAAY,KAAK,gBAAgB,CAAA;AACxC,CAAC;AAED;;;;;;;;;;;;uBAYuB;AACvB,KAAK,UAAU,kBAAkB,CAC/B,IAMC,EACD,SAAiB;IAEjB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7C,IAAI,gBAAgB,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAC7G,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QACjG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7B,MAAM,IAAI,IAAI,CAAC,MAAM,CAAA;IACvB,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAuB,EACvB,SAAiB,EACjB,SAAwB;IAExB,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,MAAM,CAAC,4CAA4C,GAAG,kDAAkD,YAAY,EAAE,CAAC,CAAA;QAC5H,OAAM;IACR,CAAC;IACD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,MAAM,CAAC,4CAA4C,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,iBAAiB,YAAY,EAAE,CAAC,CAAA;IACrI,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,CAAC,4CAA4C,GAAG,6BAA6B,YAAY,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAA;IACrL,CAAC;AACH,CAAC;AAED;;;;;;;;;;oDAUoD;AACpD,MAAM,UAAU,kBAAkB,CAAC,SAAiB,EAAE,KAAa;IACjE,OAAO,GAAG,SAAS,WAAW,KAAK,EAAE,CAAA;AACvC,CAAC;AAsBD;;;;;;;;;;;;;;;;;;;;;;;kFAuBkF;AAClF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAsB,EACtB,KAOC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACvC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IAChF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,MAAM,CAAC,4CAA4C,GAAG,mDAAmD,YAAY,EAAE,CAAC,CAAA;QAC7H,OAAM;IACR,CAAC;IACD,IAAI,WAAmB,CAAA;IACvB,IAAI,CAAC;QACH,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,uEAAuE;QACvE,8EAA8E;QAC9E,MAAM,IAAI,GAAI,GAA6B,EAAE,IAAI,IAAI,SAAS,CAAA;QAC9D,IAAI,CAAC,MAAM,CAAC,4CAA4C,GAAG,iCAAiC,IAAI,EAAE,CAAC,CAAA;QACnG,OAAM;IACR,CAAC;IACD,8EAA8E;IAC9E,4EAA4E;IAC5E,uEAAuE;IACvE,oEAAoE;IACpE,IAAI,CAAC,MAAM,CACT,4CAA4C,GAAG,UAAU,WAAW,kBAAkB,KAAK,CAAC,aAAa,YAAY,KAAK,CAAC,OAAO,EAAE,CACrI,CAAA;IACD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;QACvF,IAAI,CAAC,MAAM,CAAC,kDAAkD,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9G,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,CAAC,kDAAkD,GAAG,wBAAwB,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAA;IAC9J,CAAC;AACH,CAAC"}
|
|
@@ -19,6 +19,15 @@ export interface StuckTurnVerdict {
|
|
|
19
19
|
/** The last assistant record emitted tool_use block(s) with no later
|
|
20
20
|
* progress record — a tool is legitimately running, so this is NOT a wedge. */
|
|
21
21
|
toolInFlight: boolean;
|
|
22
|
+
/** Task 2320 — the `content` of each pending enqueue, in file order. The
|
|
23
|
+
* rotation renames the transcript out from under the harness, which destroys
|
|
24
|
+
* the queued rows, so the visitor's own text must be read out of the verdict
|
|
25
|
+
* BEFORE the file moves and handed to the fresh spawn as its initial message.
|
|
26
|
+
* String-valued records only: an enqueue carrying no string `content` is
|
|
27
|
+
* counted by `pendingQueued` but cannot be carried, because there is nothing
|
|
28
|
+
* to carry. The two therefore diverge legitimately, and the rotation logs
|
|
29
|
+
* both so the divergence is visible rather than silent. */
|
|
30
|
+
pendingEnqueueContents: string[];
|
|
22
31
|
}
|
|
23
32
|
/** Pure wedge classifier. Walks records in file order; see `StuckTurnVerdict`. */
|
|
24
33
|
export declare function classifyStuckTurn(records: ReadonlyArray<Record<string, unknown>>, opts: {
|
|
@@ -44,6 +53,16 @@ export interface StuckTurnWatchDeps {
|
|
|
44
53
|
* rc-spawns --resume and drains). Fire-and-forget; failures logged by the
|
|
45
54
|
* callee. */
|
|
46
55
|
recycle: (sessionId: string) => void;
|
|
56
|
+
/** Task 2320 — retire a transcript the resume path has been PROVEN unable to
|
|
57
|
+
* clear, and respawn fresh at the same derived id carrying `initialMessage`.
|
|
58
|
+
* Fire-and-forget; every outcome is logged by the callee. */
|
|
59
|
+
rotate: (input: {
|
|
60
|
+
sessionId: string;
|
|
61
|
+
jsonlPath: string;
|
|
62
|
+
initialMessage: string;
|
|
63
|
+
pendingQueued: number;
|
|
64
|
+
carried: number;
|
|
65
|
+
}) => void;
|
|
47
66
|
thresholdMs: number;
|
|
48
67
|
intervalMs: number;
|
|
49
68
|
/** A session recycled within this window is not re-flagged or re-recycled.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stuck-turn.d.ts","sourceRoot":"","sources":["../src/stuck-turn.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,WAAW,gBAAgB;IAC/B;8CAC0C;IAC1C,MAAM,EAAE,OAAO,CAAA;IACf;;+EAE2E;IAC3E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;;qFAIiF;IACjF,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC;yEACqE;IACrE,aAAa,EAAE,MAAM,CAAA;IACrB;oFACgF;IAChF,YAAY,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"stuck-turn.d.ts","sourceRoot":"","sources":["../src/stuck-turn.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,WAAW,gBAAgB;IAC/B;8CAC0C;IAC1C,MAAM,EAAE,OAAO,CAAA;IACf;;+EAE2E;IAC3E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;;qFAIiF;IACjF,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC;yEACqE;IACrE,aAAa,EAAE,MAAM,CAAA;IACrB;oFACgF;IAChF,YAAY,EAAE,OAAO,CAAA;IACrB;;;;;;;gEAO4D;IAC5D,sBAAsB,EAAE,MAAM,EAAE,CAAA;CACjC;AAiCD,kFAAkF;AAClF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC/C,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACzC,gBAAgB,CA0ClB;AAyCD;;;;iCAIiC;AACjC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAqBzG;AAED;6EAC6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,UAAU,EAAE,MAAM,kBAAkB,EAAE,CAAA;IACtC;;kBAEc;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC;;kEAE8D;IAC9D,MAAM,EAAE,CAAC,KAAK,EAAE;QACd,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,cAAc,EAAE,MAAM,CAAA;QACtB,aAAa,EAAE,MAAM,CAAA;QACrB,OAAO,EAAE,MAAM,CAAA;KAChB,KAAK,IAAI,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB;;;0DAGsD;IACtD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;8BAG0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACvD;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,IAAI,IAAI,CAAA;IACb,IAAI,IAAI,IAAI,CAAA;IACZ,QAAQ,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAChD;AAID,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAuH7E"}
|
|
@@ -61,7 +61,7 @@ export function classifyStuckTurn(records, opts) {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
if (lastProgressIdx === -1) {
|
|
64
|
-
return { wedged: false, lastProgressTs: null, oldestPendingEnqueueTs: null, pendingQueued: 0, toolInFlight: false };
|
|
64
|
+
return { wedged: false, lastProgressTs: null, oldestPendingEnqueueTs: null, pendingQueued: 0, toolInFlight: false, pendingEnqueueContents: [] };
|
|
65
65
|
}
|
|
66
66
|
// A tool is in flight when the last assistant emitted tool_use AND nothing
|
|
67
67
|
// progressed past it (no tool_result returned). The loop is waiting on the
|
|
@@ -69,11 +69,15 @@ export function classifyStuckTurn(records, opts) {
|
|
|
69
69
|
const toolInFlight = lastAssistantHadToolUse && lastAssistantIdx === lastProgressIdx;
|
|
70
70
|
let pendingQueued = 0;
|
|
71
71
|
let oldestPendingEnqueueIdx = -1;
|
|
72
|
+
const pendingEnqueueContents = [];
|
|
72
73
|
for (let i = lastProgressIdx + 1; i < records.length; i++) {
|
|
73
74
|
if (isEnqueue(records[i])) {
|
|
74
75
|
pendingQueued += 1;
|
|
75
76
|
if (oldestPendingEnqueueIdx === -1)
|
|
76
77
|
oldestPendingEnqueueIdx = i;
|
|
78
|
+
const content = records[i].content;
|
|
79
|
+
if (typeof content === 'string' && content.length > 0)
|
|
80
|
+
pendingEnqueueContents.push(content);
|
|
77
81
|
}
|
|
78
82
|
}
|
|
79
83
|
const lastProgressTs = parseTs(records[lastProgressIdx]);
|
|
@@ -85,7 +89,7 @@ export function classifyStuckTurn(records, opts) {
|
|
|
85
89
|
const oldestPendingEnqueueTs = oldestPendingEnqueueIdx === -1 ? null : parseTs(records[oldestPendingEnqueueIdx]);
|
|
86
90
|
const aged = oldestPendingEnqueueTs !== null && opts.now - oldestPendingEnqueueTs > opts.thresholdMs;
|
|
87
91
|
const wedged = !toolInFlight && pendingQueued > 0 && aged;
|
|
88
|
-
return { wedged, lastProgressTs, oldestPendingEnqueueTs, pendingQueued, toolInFlight };
|
|
92
|
+
return { wedged, lastProgressTs, oldestPendingEnqueueTs, pendingQueued, toolInFlight, pendingEnqueueContents };
|
|
89
93
|
}
|
|
90
94
|
const TAIL_READ_BYTES = 256 * 1024;
|
|
91
95
|
function parseLines(text) {
|
|
@@ -173,6 +177,9 @@ export function createStuckTurnWatch(deps) {
|
|
|
173
177
|
function tickOnce() {
|
|
174
178
|
let scanned = 0;
|
|
175
179
|
let wedged = 0;
|
|
180
|
+
let rotated = 0;
|
|
181
|
+
let stillFrozen = 0;
|
|
182
|
+
let drained = 0;
|
|
176
183
|
try {
|
|
177
184
|
const candidates = deps.candidates();
|
|
178
185
|
scanned = candidates.length;
|
|
@@ -199,9 +206,24 @@ export function createStuckTurnWatch(deps) {
|
|
|
199
206
|
if (verdict.wedged) {
|
|
200
207
|
const ageMs = verdict.oldestPendingEnqueueTs !== null ? t - verdict.oldestPendingEnqueueTs : -1;
|
|
201
208
|
deps.logger(`[stuck-turn] op=recycle-drain sessionId=${sid.slice(0, 8)} outcome=still-frozen ageMs=${ageMs}`);
|
|
209
|
+
stillFrozen += 1;
|
|
210
|
+
// Task 2320 — ONE still-frozen drain is the trigger, not two. The
|
|
211
|
+
// recycle already ran a stop and a bound resume; a session still
|
|
212
|
+
// frozen after that has proven the resume path cannot clear it, and a
|
|
213
|
+
// second cycle buys no evidence while the visitor waits another
|
|
214
|
+
// interval. Retire the transcript instead.
|
|
215
|
+
deps.rotate({
|
|
216
|
+
sessionId: sid,
|
|
217
|
+
jsonlPath: p.jsonlPath,
|
|
218
|
+
initialMessage: verdict.pendingEnqueueContents.join('\n'),
|
|
219
|
+
pendingQueued: verdict.pendingQueued,
|
|
220
|
+
carried: verdict.pendingEnqueueContents.length,
|
|
221
|
+
});
|
|
222
|
+
rotated += 1;
|
|
202
223
|
}
|
|
203
224
|
else {
|
|
204
225
|
deps.logger(`[stuck-turn] op=recycle-drain sessionId=${sid.slice(0, 8)} outcome=drained`);
|
|
226
|
+
drained += 1;
|
|
205
227
|
}
|
|
206
228
|
pendingVerify.delete(sid);
|
|
207
229
|
}
|
|
@@ -225,6 +247,19 @@ export function createStuckTurnWatch(deps) {
|
|
|
225
247
|
pendingVerify.set(cand.sessionId, { jsonlPath: cand.jsonlPath, recycledAt: t });
|
|
226
248
|
deps.recycle(cand.sessionId);
|
|
227
249
|
}
|
|
250
|
+
// Task 2320 — standing census, emitted on zero. The wedge is a no-event
|
|
251
|
+
// failure: the CLI writes its resume gate to the PTY, not the JSONL, so
|
|
252
|
+
// interactive-wedge.ts (Task 1552) is structurally blind to it and the
|
|
253
|
+
// only trace of the four-hour outage was a climbing ageMs nothing counted.
|
|
254
|
+
// stillFrozen must fall to zero within one tick of a rotation; a value
|
|
255
|
+
// surviving two consecutive ticks is a live wedge with no remedy. This
|
|
256
|
+
// sits inside the try, so a tick that threw logs tick-failed rather than a
|
|
257
|
+
// falsely-healthy row of zeros.
|
|
258
|
+
// `rotated` counts rotations REQUESTED: the composite is async and
|
|
259
|
+
// fire-and-forget, so one whose stop times out increments this while
|
|
260
|
+
// nothing moved. Its own `op=recycle-rotate outcome=failed` line is what
|
|
261
|
+
// distinguishes a requested rotation from a performed one.
|
|
262
|
+
deps.logger(`[stuck-turn] op=recycle-census rotated=${rotated} stillFrozen=${stillFrozen} drained=${drained}`);
|
|
228
263
|
deps.logger(`[stuck-turn] tick scanned=${scanned} wedged=${wedged}`);
|
|
229
264
|
}
|
|
230
265
|
catch (err) {
|