@rubytech/create-maxy-code 0.1.558 → 0.1.560
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/package.json +1 -1
- package/payload/platform/plugins/admin/mcp/dist/index.js +34 -0
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/roster-census.d.ts +39 -0
- package/payload/platform/plugins/admin/mcp/dist/lib/roster-census.d.ts.map +1 -0
- package/payload/platform/plugins/admin/mcp/dist/lib/roster-census.js +67 -0
- package/payload/platform/plugins/admin/mcp/dist/lib/roster-census.js.map +1 -0
- package/payload/platform/plugins/admin/skills/agent-builder/SKILL.md +15 -10
- package/payload/platform/plugins/admin/skills/agent-builder/references/agent-pattern.md +6 -3
- package/payload/platform/plugins/admin/skills/specialist-management/SKILL.md +26 -0
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +10 -0
- package/payload/platform/plugins/filesystem/mcp/dist/lib/result.d.ts +5 -1
- package/payload/platform/plugins/filesystem/mcp/dist/lib/result.d.ts.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/lib/result.js +4 -1
- package/payload/platform/plugins/filesystem/mcp/dist/lib/result.js.map +1 -1
- 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 +2 -1
- 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.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-write.js +2 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/file-write.js.map +1 -1
- package/payload/platform/plugins/scheduling/PLUGIN.md +4 -2
- package/payload/platform/plugins/scheduling/mcp/dist/index.js +15 -3
- package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/schedule-audit.test.js +72 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/schedule-audit.test.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/workflow-census.test.d.ts +2 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/workflow-census.test.d.ts.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/workflow-census.test.js +112 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/workflow-census.test.js.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.d.ts +59 -6
- package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.d.ts.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.js +154 -18
- package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +17 -2
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-list-kind.test.d.ts +2 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-list-kind.test.d.ts.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-list-kind.test.js +25 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-list-kind.test.js.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.d.ts +15 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.d.ts.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.js +66 -46
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.js.map +1 -1
- package/payload/platform/plugins/storage-broker/mcp/dist/index.js +5 -2
- package/payload/platform/plugins/storage-broker/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/url-get/mcp/dist/index.js +13 -13
- package/payload/platform/plugins/url-get/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/workflows/PLUGIN.md +4 -1
- package/payload/platform/plugins/workflows/mcp/dist/__tests__/retry-delay.test.d.ts +2 -0
- package/payload/platform/plugins/workflows/mcp/dist/__tests__/retry-delay.test.d.ts.map +1 -0
- package/payload/platform/plugins/workflows/mcp/dist/__tests__/retry-delay.test.js +33 -0
- package/payload/platform/plugins/workflows/mcp/dist/__tests__/retry-delay.test.js.map +1 -0
- package/payload/platform/plugins/workflows/mcp/dist/index.js +1 -0
- package/payload/platform/plugins/workflows/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/workflows/mcp/dist/lib/__tests__/step-resolver.test.d.ts +2 -0
- package/payload/platform/plugins/workflows/mcp/dist/lib/__tests__/step-resolver.test.d.ts.map +1 -0
- package/payload/platform/plugins/workflows/mcp/dist/lib/__tests__/step-resolver.test.js +42 -0
- package/payload/platform/plugins/workflows/mcp/dist/lib/__tests__/step-resolver.test.js.map +1 -0
- package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.d.ts +23 -5
- package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.d.ts.map +1 -1
- package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.js +20 -12
- package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.js.map +1 -1
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.d.ts +2 -0
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.d.ts.map +1 -1
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.js +2 -0
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.js.map +1 -1
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts +10 -0
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts.map +1 -1
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +53 -7
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -1
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.d.ts.map +1 -1
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.js +2 -0
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.js.map +1 -1
- package/payload/platform/scripts/__tests__/authored-agent-durable-copy.test.sh +78 -0
- package/payload/platform/scripts/__tests__/provision-bundle-orphan.test.sh +132 -0
- package/payload/platform/scripts/__tests__/provision-honours-disabled-agents.test.sh +4 -3
- package/payload/platform/scripts/__tests__/provision-specialist-retirement.test.sh +115 -0
- package/payload/platform/scripts/lib/provision-account-dir.sh +135 -13
- package/payload/platform/scripts/logs-rotate.sh +6 -1
- 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 +42 -5
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-tee.d.ts +16 -0
- package/payload/platform/services/claude-session-manager/dist/pty-tee.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/pty-tee.js +84 -0
- package/payload/platform/services/claude-session-manager/dist/pty-tee.js.map +1 -0
- package/payload/premium-plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +2 -0
- package/payload/server/public/activity.html +5 -5
- package/payload/server/public/agents.html +4 -4
- package/payload/server/public/assets/{AdminLoginScreens-BUv_EOfw.js → AdminLoginScreens-DLogIsJT.js} +1 -1
- package/payload/server/public/assets/AdminLoginScreens-DLogIsJT.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-DLogIsJT.js.gz +0 -0
- package/payload/server/public/assets/{AdminShell-BVKfxSgh.js → AdminShell-B67tPTyE.js} +1 -1
- package/payload/server/public/assets/AdminShell-B67tPTyE.js.br +0 -0
- package/payload/server/public/assets/AdminShell-B67tPTyE.js.gz +0 -0
- package/payload/server/public/assets/{activity-CBcvL5MZ.js → activity-AVJSFESV.js} +1 -1
- package/payload/server/public/assets/activity-AVJSFESV.js.br +0 -0
- package/payload/server/public/assets/activity-AVJSFESV.js.gz +0 -0
- package/payload/server/public/assets/{admin-BUor8KRy.js → admin-eFgbld42.js} +1 -1
- package/payload/server/public/assets/admin-eFgbld42.js.br +0 -0
- package/payload/server/public/assets/admin-eFgbld42.js.gz +0 -0
- package/payload/server/public/assets/{agents-Dzx8Uxgz.js → agents-CoWLZMf7.js} +1 -1
- package/payload/server/public/assets/agents-CoWLZMf7.js.br +0 -0
- package/payload/server/public/assets/agents-CoWLZMf7.js.gz +0 -0
- package/payload/server/public/assets/{browser-B7EsGyVd.js → browser-C6K66_fw.js} +1 -1
- package/payload/server/public/assets/browser-C6K66_fw.js.br +0 -0
- package/payload/server/public/assets/browser-C6K66_fw.js.gz +0 -0
- package/payload/server/public/assets/{calendar-D4qD0upn.js → calendar-Dnw_cP4b.js} +1 -1
- package/payload/server/public/assets/calendar-Dnw_cP4b.js.br +0 -0
- package/payload/server/public/assets/calendar-Dnw_cP4b.js.gz +0 -0
- package/payload/server/public/assets/chat-Cm0fkpg1.js +1 -0
- package/payload/server/public/assets/chat-Cm0fkpg1.js.br +0 -0
- package/payload/server/public/assets/chat-Cm0fkpg1.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-CjRH-BtF.js +1 -0
- package/payload/server/public/assets/chevron-left-CjRH-BtF.js.br +0 -0
- package/payload/server/public/assets/clock-wbYEt1kM.js +1 -0
- package/payload/server/public/assets/clock-wbYEt1kM.js.br +0 -0
- package/payload/server/public/assets/clock-wbYEt1kM.js.gz +0 -0
- package/payload/server/public/assets/{copy-CG2tAK16.js → copy-kuNM0Etw.js} +1 -1
- package/payload/server/public/assets/copy-kuNM0Etw.js.br +0 -0
- package/payload/server/public/assets/copy-kuNM0Etw.js.gz +0 -0
- package/payload/server/public/assets/data-c47T2NCd.js +1 -0
- package/payload/server/public/assets/data-c47T2NCd.js.br +1 -0
- package/payload/server/public/assets/data-c47T2NCd.js.gz +0 -0
- package/payload/server/public/assets/{file-text-47cIljhV.js → file-text-BWkobrcx.js} +1 -1
- package/payload/server/public/assets/file-text-BWkobrcx.js.br +0 -0
- package/payload/server/public/assets/file-text-BWkobrcx.js.gz +0 -0
- package/payload/server/public/assets/{graph-CDbi-eqF.js → graph-BGjTL5Vz.js} +1 -1
- package/payload/server/public/assets/graph-BGjTL5Vz.js.br +0 -0
- package/payload/server/public/assets/graph-BGjTL5Vz.js.gz +0 -0
- package/payload/server/public/assets/{graph-labels-Byp2RkVg.js → graph-labels-Dvc5Kw_r.js} +1 -1
- package/payload/server/public/assets/graph-labels-Dvc5Kw_r.js.br +0 -0
- package/payload/server/public/assets/graph-labels-Dvc5Kw_r.js.gz +0 -0
- package/payload/server/public/assets/{operator-t15ZvJER.js → operator-CzBGv_he.js} +1 -1
- package/payload/server/public/assets/operator-CzBGv_he.js.br +0 -0
- package/payload/server/public/assets/operator-CzBGv_he.js.gz +0 -0
- package/payload/server/public/assets/{page-DcKH1PVD.js → page-BIY4Ku8Q.js} +1 -1
- package/payload/server/public/assets/page-BIY4Ku8Q.js.br +0 -0
- package/payload/server/public/assets/page-BIY4Ku8Q.js.gz +0 -0
- package/payload/server/public/assets/{page-CogD1Hho.js → page-DaySqamH.js} +1 -1
- package/payload/server/public/assets/page-DaySqamH.js.br +0 -0
- package/payload/server/public/assets/page-DaySqamH.js.gz +0 -0
- package/payload/server/public/assets/play-C8RA52_i.js +1 -0
- package/payload/server/public/assets/play-C8RA52_i.js.br +0 -0
- package/payload/server/public/assets/play-C8RA52_i.js.gz +0 -0
- package/payload/server/public/assets/{public-UlLvs9vV.js → public-pwDSvhBv.js} +1 -1
- package/payload/server/public/assets/public-pwDSvhBv.js.br +0 -0
- package/payload/server/public/assets/public-pwDSvhBv.js.gz +0 -0
- package/payload/server/public/assets/{rotate-ccw-Dbj7NrEB.js → rotate-ccw-B6s7tkEt.js} +1 -1
- package/payload/server/public/assets/rotate-ccw-B6s7tkEt.js.br +0 -0
- package/payload/server/public/assets/rotate-ccw-B6s7tkEt.js.gz +0 -0
- package/payload/server/public/assets/routines-CFlyRdYg.js +2 -0
- package/payload/server/public/assets/routines-CFlyRdYg.js.br +0 -0
- package/payload/server/public/assets/routines-CFlyRdYg.js.gz +0 -0
- package/payload/server/public/assets/{skills-EtKyNK_3.js → skills-C45kfL_Q.js} +1 -1
- package/payload/server/public/assets/skills-C45kfL_Q.js.br +0 -0
- package/payload/server/public/assets/skills-C45kfL_Q.js.gz +0 -0
- package/payload/server/public/assets/{tasks-U0poqfi9.js → tasks-BwoCTCu5.js} +1 -1
- package/payload/server/public/assets/tasks-BwoCTCu5.js.br +0 -0
- package/payload/server/public/assets/tasks-BwoCTCu5.js.gz +0 -0
- package/payload/server/public/assets/{triangle-alert-D7zwttJW.js → triangle-alert-B3bthSzx.js} +1 -1
- package/payload/server/public/assets/triangle-alert-B3bthSzx.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-B3bthSzx.js.gz +0 -0
- package/payload/server/public/assets/{useCopyFeedback-Ae_va0Ps.js → useCopyFeedback-BzJAkFEb.js} +1 -1
- package/payload/server/public/assets/useCopyFeedback-BzJAkFEb.js.br +0 -0
- package/payload/server/public/assets/useCopyFeedback-BzJAkFEb.js.gz +0 -0
- package/payload/server/public/assets/{useMediaQuery-HRgPNA8l.css → useMediaQuery-DW_xRrMl.css} +1 -1
- package/payload/server/public/assets/useMediaQuery-DW_xRrMl.css.br +0 -0
- package/payload/server/public/assets/{useMediaQuery-HRgPNA8l.css.gz → useMediaQuery-DW_xRrMl.css.gz} +0 -0
- package/payload/server/public/assets/{useVoiceRecorder-q9U5ahfg.js → useVoiceRecorder-_qI_BAOo.js} +1 -1
- package/payload/server/public/assets/useVoiceRecorder-_qI_BAOo.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-_qI_BAOo.js.gz +0 -0
- package/payload/server/public/assets/{wrench-BmXV4Tmh.js → wrench-Bqux9jaw.js} +1 -1
- package/payload/server/public/assets/wrench-Bqux9jaw.js.br +0 -0
- package/payload/server/public/assets/wrench-Bqux9jaw.js.gz +0 -0
- package/payload/server/public/browser.html +4 -4
- package/payload/server/public/calendar.html +7 -7
- 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 +13 -13
- package/payload/server/public/operator.html +14 -14
- package/payload/server/public/public.html +13 -13
- package/payload/server/public/routines.html +7 -7
- package/payload/server/public/skills.html +5 -5
- package/payload/server/public/tasks.html +6 -6
- package/payload/server/server.js +169 -43
- package/payload/server/public/assets/AdminLoginScreens-BUv_EOfw.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-BUv_EOfw.js.gz +0 -0
- package/payload/server/public/assets/AdminShell-BVKfxSgh.js.br +0 -0
- package/payload/server/public/assets/AdminShell-BVKfxSgh.js.gz +0 -0
- package/payload/server/public/assets/activity-CBcvL5MZ.js.br +0 -0
- package/payload/server/public/assets/activity-CBcvL5MZ.js.gz +0 -0
- package/payload/server/public/assets/admin-BUor8KRy.js.br +0 -0
- package/payload/server/public/assets/admin-BUor8KRy.js.gz +0 -0
- package/payload/server/public/assets/agents-Dzx8Uxgz.js.br +0 -0
- package/payload/server/public/assets/agents-Dzx8Uxgz.js.gz +0 -0
- package/payload/server/public/assets/browser-B7EsGyVd.js.br +0 -0
- package/payload/server/public/assets/browser-B7EsGyVd.js.gz +0 -0
- package/payload/server/public/assets/calendar-D4qD0upn.js.br +0 -0
- package/payload/server/public/assets/calendar-D4qD0upn.js.gz +0 -0
- package/payload/server/public/assets/chat-D7LjNerV.js +0 -1
- package/payload/server/public/assets/chat-D7LjNerV.js.br +0 -0
- package/payload/server/public/assets/chat-D7LjNerV.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-CGsW9Vsp.js +0 -1
- package/payload/server/public/assets/chevron-left-CGsW9Vsp.js.br +0 -0
- package/payload/server/public/assets/clock-B_xWWLQW.js +0 -1
- package/payload/server/public/assets/clock-B_xWWLQW.js.br +0 -0
- package/payload/server/public/assets/clock-B_xWWLQW.js.gz +0 -0
- package/payload/server/public/assets/copy-CG2tAK16.js.br +0 -0
- package/payload/server/public/assets/copy-CG2tAK16.js.gz +0 -0
- package/payload/server/public/assets/data-BU60tJiv.js +0 -1
- package/payload/server/public/assets/data-BU60tJiv.js.br +0 -0
- package/payload/server/public/assets/data-BU60tJiv.js.gz +0 -0
- package/payload/server/public/assets/file-text-47cIljhV.js.br +0 -0
- package/payload/server/public/assets/file-text-47cIljhV.js.gz +0 -0
- package/payload/server/public/assets/graph-CDbi-eqF.js.br +0 -0
- package/payload/server/public/assets/graph-CDbi-eqF.js.gz +0 -0
- package/payload/server/public/assets/graph-labels-Byp2RkVg.js.br +0 -0
- package/payload/server/public/assets/graph-labels-Byp2RkVg.js.gz +0 -0
- package/payload/server/public/assets/operator-t15ZvJER.js.br +0 -0
- package/payload/server/public/assets/operator-t15ZvJER.js.gz +0 -0
- package/payload/server/public/assets/page-CogD1Hho.js.br +0 -0
- package/payload/server/public/assets/page-CogD1Hho.js.gz +0 -0
- package/payload/server/public/assets/page-DcKH1PVD.js.br +0 -0
- package/payload/server/public/assets/page-DcKH1PVD.js.gz +0 -0
- package/payload/server/public/assets/play-Bankj0zU.js +0 -1
- package/payload/server/public/assets/play-Bankj0zU.js.br +0 -0
- package/payload/server/public/assets/play-Bankj0zU.js.gz +0 -0
- package/payload/server/public/assets/public-UlLvs9vV.js.br +0 -0
- package/payload/server/public/assets/public-UlLvs9vV.js.gz +0 -0
- package/payload/server/public/assets/rotate-ccw-Dbj7NrEB.js.br +0 -0
- package/payload/server/public/assets/rotate-ccw-Dbj7NrEB.js.gz +0 -0
- package/payload/server/public/assets/routines-CdqGJwyD.js +0 -2
- package/payload/server/public/assets/routines-CdqGJwyD.js.br +0 -0
- package/payload/server/public/assets/routines-CdqGJwyD.js.gz +0 -0
- package/payload/server/public/assets/skills-EtKyNK_3.js.br +0 -0
- package/payload/server/public/assets/skills-EtKyNK_3.js.gz +0 -0
- package/payload/server/public/assets/tasks-U0poqfi9.js.br +0 -0
- package/payload/server/public/assets/tasks-U0poqfi9.js.gz +0 -0
- package/payload/server/public/assets/triangle-alert-D7zwttJW.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-D7zwttJW.js.gz +0 -0
- package/payload/server/public/assets/useCopyFeedback-Ae_va0Ps.js.br +0 -4
- package/payload/server/public/assets/useCopyFeedback-Ae_va0Ps.js.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-HRgPNA8l.css.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-q9U5ahfg.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-q9U5ahfg.js.gz +0 -0
- package/payload/server/public/assets/wrench-BmXV4Tmh.js.br +0 -0
- package/payload/server/public/assets/wrench-BmXV4Tmh.js.gz +0 -0
- /package/payload/server/public/assets/{useMediaQuery-DIm6yGOl.js → useMediaQuery-DJ6XeNN7.js} +0 -0
- /package/payload/server/public/assets/{useMediaQuery-DIm6yGOl.js.br → useMediaQuery-DJ6XeNN7.js.br} +0 -0
- /package/payload/server/public/assets/{useMediaQuery-DIm6yGOl.js.gz → useMediaQuery-DJ6XeNN7.js.gz} +0 -0
|
@@ -18,6 +18,17 @@
|
|
|
18
18
|
# Owned-dir schema merge (plugin-declared top-level account dirs).
|
|
19
19
|
. "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/account-schema-owned-dirs.sh"
|
|
20
20
|
|
|
21
|
+
# Task 2415 — bash 3.2 has no associative arrays; a linear scan over the
|
|
22
|
+
# template basenames is the membership test the retirement loop needs.
|
|
23
|
+
_specialist_in_list() {
|
|
24
|
+
local _needle="$1"; shift
|
|
25
|
+
local _x
|
|
26
|
+
for _x in "$@"; do
|
|
27
|
+
[ "$_x" = "$_needle" ] && return 0
|
|
28
|
+
done
|
|
29
|
+
return 1
|
|
30
|
+
}
|
|
31
|
+
|
|
21
32
|
provision_account_dir() {
|
|
22
33
|
local ACCOUNT_DIR="$1"
|
|
23
34
|
local ACCOUNT_ID="$2"
|
|
@@ -240,21 +251,84 @@ SETTINGS_EOF
|
|
|
240
251
|
|
|
241
252
|
cp "$TEMPLATES_DIR/specialists/.claude-plugin/plugin.json" "$ACCOUNT_DIR/specialists/.claude-plugin/plugin.json"
|
|
242
253
|
|
|
243
|
-
#
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
254
|
+
# Task 2415 — retire against provenance, never against the filename.
|
|
255
|
+
#
|
|
256
|
+
# The old predicate identified "core" by the ABSENCE of `--` and deleted
|
|
257
|
+
# everything that matched, while the copy loop below restored only bundled
|
|
258
|
+
# templates. Anything neither `--`-named nor a template was destroyed and
|
|
259
|
+
# never came back: authored specialists on two installs, and three premium
|
|
260
|
+
# agents that happen to be named without `--`. A plain-named file carries no
|
|
261
|
+
# record of who put it there, so the manifest supplies it: `.provisioned.json`
|
|
262
|
+
# names exactly what THIS installer delivered on the previous run, and only
|
|
263
|
+
# what it delivered can be retired.
|
|
264
|
+
#
|
|
265
|
+
# Retirement stays a real job — archive-ingest-operator, dropped from
|
|
266
|
+
# templates at 55b3577cb, is correctly gone from every install that had it.
|
|
267
|
+
local _manifest="$ACCOUNT_DIR/specialists/.provisioned.json"
|
|
268
|
+
local _templates=() _t
|
|
269
|
+
for _t in "$TEMPLATES_DIR/specialists/agents/"*.md; do
|
|
270
|
+
[ -f "$_t" ] && _templates+=("$(basename "$_t")")
|
|
251
271
|
done
|
|
252
272
|
|
|
253
|
-
|
|
273
|
+
if [ "${#_templates[@]}" -eq 0 ]; then
|
|
274
|
+
# Zero templates on disk is a broken install tree, not twelve simultaneous
|
|
275
|
+
# retirements. Retire nothing and leave the manifest alone, so a later
|
|
276
|
+
# healthy run can still retire against the ownership record that survived.
|
|
277
|
+
echo " op=specialist-retirement retired=0 reason=no-templates-on-disk path=$TEMPLATES_DIR/specialists/agents"
|
|
278
|
+
elif [ ! -f "$_manifest" ]; then
|
|
279
|
+
# Every install that predates this manifest. Nothing is provably ours, so
|
|
280
|
+
# nothing is retired; one is written at the end of this run.
|
|
281
|
+
echo " op=specialist-retirement retired=0 reason=no-manifest"
|
|
282
|
+
else
|
|
283
|
+
local _prev _retired=0
|
|
284
|
+
if _prev="$(python3 -c '
|
|
285
|
+
import json, sys
|
|
286
|
+
with open(sys.argv[1]) as fh:
|
|
287
|
+
names = json.load(fh)["delivered"]
|
|
288
|
+
if not isinstance(names, list):
|
|
289
|
+
raise SystemExit(1)
|
|
290
|
+
for n in names:
|
|
291
|
+
if isinstance(n, str) and n.endswith(".md") and "/" not in n and ".." not in n:
|
|
292
|
+
print(n)
|
|
293
|
+
' "$_manifest" 2>/dev/null)"; then
|
|
294
|
+
local _name
|
|
295
|
+
while IFS= read -r _name; do
|
|
296
|
+
[ -n "$_name" ] || continue
|
|
297
|
+
_specialist_in_list "$_name" "${_templates[@]}" && continue
|
|
298
|
+
[ -e "$ACCOUNT_DIR/specialists/agents/$_name" ] || continue
|
|
299
|
+
rm -f "$ACCOUNT_DIR/specialists/agents/$_name"
|
|
300
|
+
echo " op=specialist-retired name=$_name reason=absent-from-templates"
|
|
301
|
+
_retired=$((_retired + 1))
|
|
302
|
+
done <<< "$_prev"
|
|
303
|
+
echo " op=specialist-retirement retired=$_retired"
|
|
304
|
+
else
|
|
305
|
+
# Same doctrine as the disabled store below: a corrupt file is not
|
|
306
|
+
# evidence that anything should be deleted.
|
|
307
|
+
echo " op=specialist-retirement retired=0 reason=manifest-unreadable"
|
|
308
|
+
fi
|
|
309
|
+
fi
|
|
310
|
+
|
|
311
|
+
local specialist _delivered=()
|
|
254
312
|
for specialist in "$TEMPLATES_DIR/specialists/agents/"*.md; do
|
|
255
|
-
[ -f "$specialist" ]
|
|
313
|
+
[ -f "$specialist" ] || continue
|
|
314
|
+
if cp "$specialist" "$ACCOUNT_DIR/specialists/agents/$(basename "$specialist")"; then
|
|
315
|
+
_delivered+=("$(basename "$specialist")")
|
|
316
|
+
fi
|
|
256
317
|
done
|
|
257
318
|
|
|
319
|
+
# Task 2415 — the ownership record the retirement loop reads next run. It
|
|
320
|
+
# names what was actually copied, not what the template dir listed, so a
|
|
321
|
+
# failed cp never lets a later run claim the file was ours to delete.
|
|
322
|
+
if [ "${#_delivered[@]}" -gt 0 ]; then
|
|
323
|
+
python3 -c '
|
|
324
|
+
import json, sys
|
|
325
|
+
with open(sys.argv[1], "w") as fh:
|
|
326
|
+
json.dump({"delivered": sorted(sys.argv[2:])}, fh, indent=2)
|
|
327
|
+
fh.write("\n")
|
|
328
|
+
' "$_manifest" "${_delivered[@]}"
|
|
329
|
+
echo " op=specialist-manifest delivered=${#_delivered[@]}"
|
|
330
|
+
fi
|
|
331
|
+
|
|
258
332
|
# Task 1996 — the copy loop above re-delivers every core specialist, which
|
|
259
333
|
# would silently undo a disable on the next publish. specialists/agents/ is
|
|
260
334
|
# the dispatchable set (spawn-context.ts reads it), so an agent the operator
|
|
@@ -283,9 +357,10 @@ for n in names:
|
|
|
283
357
|
if [ -e "$ACCOUNT_DIR/specialists/agents/$_name" ]; then
|
|
284
358
|
# MOVE, never delete. In the drift state the standing parity check
|
|
285
359
|
# exists to catch (store names it, file is live, quarantine empty) a
|
|
286
|
-
# delete would destroy the only copy of a premium
|
|
287
|
-
# operator-edited override: the
|
|
288
|
-
# the copy loop only restores
|
|
360
|
+
# delete would destroy the only copy of a premium agent or an
|
|
361
|
+
# operator-edited override: the retirement loop above touches only
|
|
362
|
+
# names the manifest claims, and the copy loop only restores
|
|
363
|
+
# templates, so nothing re-delivers it.
|
|
289
364
|
mkdir -p "$ACCOUNT_DIR/specialists/agents-disabled"
|
|
290
365
|
mv -f "$ACCOUNT_DIR/specialists/agents/$_name" \
|
|
291
366
|
"$ACCOUNT_DIR/specialists/agents-disabled/$_name"
|
|
@@ -298,6 +373,53 @@ for n in names:
|
|
|
298
373
|
fi
|
|
299
374
|
fi
|
|
300
375
|
|
|
376
|
+
# Task 2418 — a `--` agent whose bundle has left the install tree stays
|
|
377
|
+
# dispatchable forever. The retirement loop above deletes only what the
|
|
378
|
+
# manifest claims, and the manifest names only files copied from
|
|
379
|
+
# $TEMPLATES_DIR, so a premium `--` file is never in it and nothing notices
|
|
380
|
+
# when its bundle goes. Measured on beacons: writer-craft--manuscript-reviewer
|
|
381
|
+
# dispatchable since May 13 with no writer-craft bundle under premium-plugins/.
|
|
382
|
+
#
|
|
383
|
+
# MOVE, never delete. The bundle is gone, so unlike a retired template there is
|
|
384
|
+
# nothing to restore from and this may be the only copy on the machine. It does
|
|
385
|
+
# NOT go to agents-disabled/: that directory is paired with agents-disabled.json
|
|
386
|
+
# and a file there with no store entry is exactly the drift described above.
|
|
387
|
+
#
|
|
388
|
+
# Runs AFTER the disabled block so that in the drift state (store names it,
|
|
389
|
+
# file still live) the disable wins and the store and its directory agree.
|
|
390
|
+
local _premium_root="$PROJECT_DIR/../premium-plugins"
|
|
391
|
+
local _bundle_count=0 _b
|
|
392
|
+
for _b in "$_premium_root"/*/; do
|
|
393
|
+
[ -d "$_b" ] && _bundle_count=$((_bundle_count + 1))
|
|
394
|
+
done
|
|
395
|
+
if [ "$_bundle_count" -eq 0 ]; then
|
|
396
|
+
# No bundle resolvable, whether the root is missing or merely empty. Both
|
|
397
|
+
# make every `--` file test as orphaned, and both are indistinguishable from
|
|
398
|
+
# a brand that legitimately ships none (paths.ts bundleMode defaults to
|
|
399
|
+
# 'none'). Acting would strip the account's whole premium set. Same doctrine
|
|
400
|
+
# as no-templates-on-disk above.
|
|
401
|
+
echo " op=specialist-orphan-reconcile orphaned=0 reason=no-premium-bundles"
|
|
402
|
+
else
|
|
403
|
+
local _orphaned=0 _cand _base _twin _found
|
|
404
|
+
for _cand in "$ACCOUNT_DIR/specialists/agents/"*--*.md; do
|
|
405
|
+
[ -f "$_cand" ] || continue
|
|
406
|
+
_base="$(basename "$_cand")"
|
|
407
|
+
# Any bundle's agents/ dir. `--` names are already bundle-unique, so this
|
|
408
|
+
# answers the same question as parsing the prefix, without reintroducing a
|
|
409
|
+
# filename-derived predicate.
|
|
410
|
+
_found=0
|
|
411
|
+
for _twin in "$_premium_root"/*/agents/"$_base"; do
|
|
412
|
+
[ -f "$_twin" ] && { _found=1; break; }
|
|
413
|
+
done
|
|
414
|
+
[ "$_found" = 1 ] && continue
|
|
415
|
+
mkdir -p "$ACCOUNT_DIR/specialists/agents-orphaned"
|
|
416
|
+
mv -f "$_cand" "$ACCOUNT_DIR/specialists/agents-orphaned/$_base"
|
|
417
|
+
echo " op=specialist-orphaned name=$_base reason=bundle-absent"
|
|
418
|
+
_orphaned=$((_orphaned + 1))
|
|
419
|
+
done
|
|
420
|
+
echo " op=specialist-orphan-reconcile orphaned=$_orphaned"
|
|
421
|
+
fi
|
|
422
|
+
|
|
301
423
|
rm -f "$ACCOUNT_DIR/.claude/agents/"*.md 2>/dev/null || true
|
|
302
424
|
|
|
303
425
|
# SOUL.md — user-controlled. Only create if missing. Never overwrite.
|
|
@@ -161,8 +161,12 @@ done
|
|
|
161
161
|
# sitedesk-code, 3.25x the cap. A long-lived session's file also has a fresh
|
|
162
162
|
# mtime forever, so the age purge below never reaches it — without size rotation
|
|
163
163
|
# it is genuinely unbounded.
|
|
164
|
+
#
|
|
165
|
+
# pty-*.log: the per-session capture of what a spawned claude process printed
|
|
166
|
+
# (Task 2407, pty-tee.ts). One file per session, appendFileSync, no fd held.
|
|
167
|
+
# Carries no in-process cap at all, so rotation is its only bound.
|
|
164
168
|
shopt -s nullglob
|
|
165
|
-
for f in "$LOGS_DIR"/mcp-*.log "$LOGS_DIR"/rc-child-*.log; do
|
|
169
|
+
for f in "$LOGS_DIR"/mcp-*.log "$LOGS_DIR"/rc-child-*.log "$LOGS_DIR"/pty-*.log; do
|
|
166
170
|
rotate_file "$f"
|
|
167
171
|
done
|
|
168
172
|
shopt -u nullglob
|
|
@@ -203,5 +207,6 @@ purge_old() {
|
|
|
203
207
|
|
|
204
208
|
purge_old 'rc-child-*.log*'
|
|
205
209
|
purge_old 'mcp-*.log*'
|
|
210
|
+
purge_old 'pty-*.log*'
|
|
206
211
|
|
|
207
212
|
exit 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pty-spawner.d.ts","sourceRoot":"","sources":["../src/pty-spawner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pty-spawner.d.ts","sourceRoot":"","sources":["../src/pty-spawner.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAA;AAwB3B,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAA;AAmH7B,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAiEpG;;;gFAGgF;AAChF,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAQ1C;AAED;;;;;;;;;0DAS0D;AAC1D,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAIrE;AA2BD,MAAM,WAAW,UAAU;IACzB;qEACiE;IACjE,SAAS,EAAE,MAAM,CAAA;IACjB;6CACyC;IACzC,eAAe,EAAE,MAAM,CAAA;IACvB,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,4DAA4D;IAC5D,GAAG,EAAE,SAAS,CAAA;IACd;;kEAE8D;IAC9D,MAAM,EAAE,OAAO,CAAA;IACf;;;sEAGkE;IAClE,UAAU,EAAE,OAAO,CAAA;IACnB;yEACqE;IACrE,MAAM,EAAE,OAAO,CAAA;IACf;iCAC6B;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;;;;;kBAKc;IACd,cAAc,EAAE,MAAM,CAAA;CACvB;AAoCD;;;;;uDAKuD;AACvD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE3E;AAYD;;8DAE8D;AAC9D,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;;;0EAI0E;AAC1E,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAElE;AAED;;;;;6EAK6E;AAC7E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,MAAM,GAAG,QAAQ,CAMpB;AAED;;;uEAGuE;AACvE,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;sCAGsC;AACtC,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE/E;AAED;;;;wEAIwE;AACxE,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAKpE;AAED;;0DAE0D;AAC1D,wBAAgB,cAAc,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAEtE;AAED;0EAC0E;AAC1E,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;mEAGmE;AACnE,wBAAgB,cAAc,IAAI,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAM1E;AAED;;;;4DAI4D;AAC5D,wBAAgB,yBAAyB,IAAI,IAAI,CAIhD;AAED;;;;8DAI8D;AAC9D,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAGD;;;yDAGyD;AACzD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAGtE;AAED,MAAM,MAAM,kBAAkB,GAC1B,wBAAwB,GACxB,kBAAkB,GAClB,kBAAkB,GAClB,2BAA2B,GAC3B,yBAAyB,GAMzB,iBAAiB,GAOjB,2BAA2B,GAC3B,qBAAqB,GAIrB,YAAY,GACZ,mBAAmB,GACnB,iBAAiB,GACjB,yBAAyB,GACzB,sBAAsB,GACtB,yBAAyB,GAGzB,wBAAwB,GAGxB,sBAAsB,CAAA;AAE1B,MAAM,MAAM,oBAAoB,GAC5B,wBAAwB,GACxB,yBAAyB,GACzB,YAAY,CAAA;AAEhB,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,wBAAwB,CAAA;IAC9B,YAAY,EAAE,MAAM,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,yBAAyB,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;iDAEiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;6CAS6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB;;;;8CAI0C;IAC1C,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,OAAO,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,sBAAsB,GAAG,wBAAwB,GAAG,kBAAkB,CAAA;CAAE,CAAA;AAEnG,MAAM,WAAW,SAAS;IACxB;;;;qDAIiD;IACjD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,SAAS,CAAA;IAC5G;;;;;;;;yEAQqE;IACrE,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,SAAS,CAAA;IAC3I,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB;;sFAEkF;IAClF,OAAO,EAAE,MAAM,CAAA;IACf;qDACiD;IACjD,gBAAgB,EAAE,MAAM,CAAA;IACxB;6DACyD;IACzD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,SAAS,CAAA;IAClB,IAAI,EAAE,cAAc,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAA;IAC1D,wBAAwB,EAAE,MAAM,CAAA;IAChC;;;;;sBAKkB;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,WAAW,CAAA;IACxB;;;;;;2CAMuC;IACvC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAA;IAC9C;;;;;mEAK+D;IAC/D,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,oDAAoD;IACpD,eAAe,EAAE,MAAM,CAAA;IACvB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAA;IACnB;;2DAEuD;IACvD,kBAAkB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IACxC;;;;;;iEAM6D;IAC7D,uBAAuB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;IAClE;;;;;;;;;;2BAUuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;;4CAMwC;IACxC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;+DAI2D;IAC3D,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE;QAC3B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAA;QACtD,SAAS,EAAE,MAAM,CAAA;KAClB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7B;;sDAEkD;IAClD,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC;;mDAE+C;IAC/C,YAAY,CAAC,EAAE,eAAe,CAAA;IAC9B;;;;4CAIwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAA;IAC1B;;;;;;qEAMiE;IACjE,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;;6DAIyD;IACzD,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAK7C,CAAA;AAEF,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;;yEAKqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;IACzC,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;IACvC,iBAAiB,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;wCAGoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;kCAK8B;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;2EACuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;;kEAS8D;IAC9D,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;;;;oFAKgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;wEAGoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;8BAE0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;4EAMwE;IACxE,cAAc,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;IACxE;;;uCAGmC;IACnC,eAAe,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9E;;;;+CAI2C;IAC3C,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;IACxE;;;;;;yDAMqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;8EAG0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;;;;;;iDAU6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;6DAIyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;gEAI4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAKD,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAA;AAChD,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAA2B,CAAA;AAEjF,UAAU,oBAAoB;IAC5B,IAAI,EAAE,SAAS,CAAA;IACf,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB;;;kBAGc;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd;;;;;mDAK+C;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB;;;;;;;kEAO8D;IAC9D,SAAS,EAAE,MAAM,CAAA;IACjB;;;;;;0EAMsE;IACtE,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd;;;;mBAIe;IACf,eAAe,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAA;IACzC;;;;kEAI8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;0EAIsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;gEAG4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,KAAK,oBAAoB,GACrB;IACE,EAAE,EAAE,IAAI,CAAA;IACR,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB;;;;+DAI2D;IAC3D,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAA;CAC/D,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjC;;;;;;sBAMsB;AACtB,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAmCzF;AAED;;;;;;;;;;;;;;;;;;;;;;;sBAuBsB;AACtB,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAanF;AAED;;;;;;;;sBAQsB;AACtB,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C;IACD,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACnC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC,CAqBA;AAED;;;;yCAIyC;AACzC,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,GAAG,gBAAgB,GAAG,QAAQ,CAAC,EAChI,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgDxB;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,oBAAoB,GAAG,oBAAoB,CAyHpF;AAqOD;8CAC8C;AAC9C,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEhE;AACD,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AAgDD;;mEAEmE;AACnE,wBAAgB,iCAAiC,IAAI,IAAI,CAKxD;AA+BD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAwlD/F;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd;2EACuE;IACvE,YAAY,CAAC,EAAE,eAAe,CAAA;IAC9B;;;;;;wEAMoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC;;;;;;8CAM0C;IAC1C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED;;;;;;;gEAOgE;AAChE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,gBAAgB,CAAA;IACjD;;;;;;+BAM2B;IAC3B,YAAY,EACR,IAAI,GACJ,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,qBAAqB,GACrB,OAAO,GACP,gBAAgB,CAAA;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;YAqBY;AACZ,wBAAgB,oBAAoB,CAClC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EACxB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,UAAU,EAAE,MAAM,GACjB,IAAI,CAiCN;AAwED;;;;;;;;;;;;;;wEAcwE;AACxE,wBAAsB,WAAW,CAC/B,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,CA2F7B;AAED;6EAC6E;AAC7E,eAAO,MAAM,WAAW,oBAAc,CAAA;AAEtC;;;;sDAIsD;AACtD,wBAAgB,WAAW,IAAI,MAAM,CAMpC;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDA+BkD;AAClD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IACtC,cAAc,IAAI,MAAM,EAAE,CAAA;IAC1B,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC9C,aAAa,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,IAAI,MAAM,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,0BAA0B,EAAE,MAAM,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,uBAAuB,CAgDvF;AAED;;;;;;;;;sBASsB;AACtB,wBAAgB,kBAAkB,CAChC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EACxB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,MAAM,GAChB,UAAU,CAoBZ;AAED;;;;;;;;qBAQqB;AACrB,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EACxB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,MAAM,GACd;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CASrC;AAED;2DAC2D;AAC3D,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,cAAc,CAAA;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;iFASiF;AACjF,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAA;AAG5C,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,MAAM,GACb,gBAAgB,CAalB"}
|
|
@@ -33,6 +33,7 @@ import { applyHostCredsEnv } from './claude-host-creds.js';
|
|
|
33
33
|
import { randomUUID } from 'node:crypto';
|
|
34
34
|
import { defaultSystemctlRunner, evictSessionProcess, scopeUnitName, stopScopeUnit, } from './systemd-scope.js';
|
|
35
35
|
import { startUrlCapture } from './url-capture.js';
|
|
36
|
+
import { attachPtyTee } from './pty-tee.js';
|
|
36
37
|
import { buildWebchatChannelMcpServers, buildWebchatChannelArgv, webchatChannelMcpConfigPath, } from './webchat-channel-mcp.js';
|
|
37
38
|
// Task 2262 — the reply-tool constants moved with the arms into
|
|
38
39
|
// public-allowlist.ts; this file no longer names any of them directly.
|
|
@@ -1176,8 +1177,27 @@ export async function spawnClaudeSession(deps, args) {
|
|
|
1176
1177
|
// session_<id> RC URL, so the flag is dead weight (one idle outbound
|
|
1177
1178
|
// WebSocket per visitor). Admin interactive sessions now run under the
|
|
1178
1179
|
// per-account `claude rc` daemon, not per-spawn --remote-control.
|
|
1180
|
+
// Task 2420 — a CHANNEL-BOUND public spawn is the exception to Task 500. The
|
|
1181
|
+
// flag is not dead weight there: without it a notifications/claude/channel
|
|
1182
|
+
// message reaches the agent and never becomes a turn, so every public webchat,
|
|
1183
|
+
// WhatsApp and Telegram session received its inbound and answered nothing.
|
|
1184
|
+
// Measured on the laptop 2026-08-04 by driving the real webhook with synthetic
|
|
1185
|
+
// senders — the identical public argv replied with the flag (op=reply bytes=32,
|
|
1186
|
+
// 75,360-byte transcript) and produced no turn at all without it, across three
|
|
1187
|
+
// sessions, against the admin path which carries the flag and has always
|
|
1188
|
+
// worked. A public spawn with NO channel keeps Task 500's saving.
|
|
1179
1189
|
const headless = isSpecialistSpawn && HEADLESS_ROLES.has(args.specialist);
|
|
1180
|
-
const
|
|
1190
|
+
const channelBound = Boolean(args.webchatChannel || args.waChannel || args.telegramChannel);
|
|
1191
|
+
const remoteControl = !headless && (args.role !== 'public' || channelBound);
|
|
1192
|
+
// Task 2420 — the flag widened; the OPERATOR surface did not. Two other things
|
|
1193
|
+
// keyed off the old predicate: `CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE` below,
|
|
1194
|
+
// which Task 1724 documents as enabling SendUserFile, and URL capture, which
|
|
1195
|
+
// exists to give an operator an iframe URL. Neither belongs to a visitor: the
|
|
1196
|
+
// first would put a file-sending tool inside the Task 615 ringfence, whose
|
|
1197
|
+
// whole premise is that a public spawn's surface is its channel reply tool or
|
|
1198
|
+
// nothing, and the second captures a URL Task 500 established no visitor ever
|
|
1199
|
+
// opens. They keep the narrow predicate.
|
|
1200
|
+
const remoteOperatorSurface = !headless && args.role !== 'public';
|
|
1181
1201
|
const argv = ['--verbose'];
|
|
1182
1202
|
if (remoteControl)
|
|
1183
1203
|
argv.push('--remote-control');
|
|
@@ -1826,7 +1846,7 @@ export async function spawnClaudeSession(deps, args) {
|
|
|
1826
1846
|
// happens on every spawn whose bridge DID bind — this makes it unconditional
|
|
1827
1847
|
// rather than new in kind. An upload failure is recorded on the attachment
|
|
1828
1848
|
// (`upload_error`) and never thrown, so it cannot fail the delivery itself.
|
|
1829
|
-
if (
|
|
1849
|
+
if (remoteOperatorSurface)
|
|
1830
1850
|
spawnEnv.CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE = 'remote';
|
|
1831
1851
|
// Task 207 — specialist spawns inherit per-account env explicitly so
|
|
1832
1852
|
// plugin-system MCP children get a deterministic context without the
|
|
@@ -2001,6 +2021,15 @@ export async function spawnClaudeSession(deps, args) {
|
|
|
2001
2021
|
// below passes without each test harvesting `--session-id` from argv.
|
|
2002
2022
|
deps.watcher.registerPidSessionId?.(pty.pid, sessionId);
|
|
2003
2023
|
const tail = attachPtyTail(pty);
|
|
2024
|
+
// Task 2407 — the process's own output, to `logs/pty-<sessionId>.log`. The
|
|
2025
|
+
// in-memory tail above is 4 KiB and dies with this function; the startup
|
|
2026
|
+
// watcher, the dev-channel confirm and the URL capture are all disposed at
|
|
2027
|
+
// boot completion. So nothing survived boot to say what a session that took a
|
|
2028
|
+
// channel notification and produced no turn actually did. Nothing gates this:
|
|
2029
|
+
// not role, not channel, not remoteControl. A spawn that hangs is the case it
|
|
2030
|
+
// exists for, and roles differ only in which faults they hit. Disposed at the
|
|
2031
|
+
// four exits below, never at boot.
|
|
2032
|
+
const ptyTee = attachPtyTee(pty, { logDir: deps.logDir, sessionId, logger: deps.logger });
|
|
2004
2033
|
// Task 2283 — armed HERE, above the dev-channel confirm below, so the confirm
|
|
2005
2034
|
// can clear this buffer. Two properties are load-bearing:
|
|
2006
2035
|
//
|
|
@@ -2071,8 +2100,10 @@ export async function spawnClaudeSession(deps, args) {
|
|
|
2071
2100
|
// Task 171 — headless spawns never emit the `/remote-control is active`
|
|
2072
2101
|
// banner (the flag is absent), so the handler is not attached and no
|
|
2073
2102
|
// PTY bytes are consumed by a regex that will never match. Task 500 —
|
|
2074
|
-
// same for public spawns
|
|
2075
|
-
//
|
|
2103
|
+
// same for public spawns, so the gate keys off the operator-surface
|
|
2104
|
+
// predicate, not `headless`. Task 2420 — and not off `remoteControl`
|
|
2105
|
+
// either, now that a channel-bound public spawn carries the flag: the
|
|
2106
|
+
// banner it emits names a URL no visitor opens.
|
|
2076
2107
|
//
|
|
2077
2108
|
// Task 260 — `capturedUrl` is the value SpawnedSession returns to the
|
|
2078
2109
|
// caller (the route includes it in the immediate /spawn response when
|
|
@@ -2083,7 +2114,7 @@ export async function spawnClaudeSession(deps, args) {
|
|
|
2083
2114
|
// Mutable holder so the URL callback can find the row once sessionId
|
|
2084
2115
|
// is known. The PID-file event below sets sessionIdRef.current.
|
|
2085
2116
|
const sessionIdRef = { current: null };
|
|
2086
|
-
if (
|
|
2117
|
+
if (remoteOperatorSurface) {
|
|
2087
2118
|
startUrlCapture({
|
|
2088
2119
|
pty,
|
|
2089
2120
|
timeoutMs: deps.urlCaptureTimeoutMs,
|
|
@@ -2134,6 +2165,9 @@ export async function spawnClaudeSession(deps, args) {
|
|
|
2134
2165
|
pty.kill('SIGKILL');
|
|
2135
2166
|
const stderrTail = tail.getTail();
|
|
2136
2167
|
tail.dispose();
|
|
2168
|
+
// Task 2407 — this path SIGKILLs the pty and returns before `pty.onExit` is
|
|
2169
|
+
// ever registered, so it is a process exit that must detach explicitly.
|
|
2170
|
+
ptyTee.dispose();
|
|
2137
2171
|
startupPrompt.dispose();
|
|
2138
2172
|
if (err instanceof StartupPromptError) {
|
|
2139
2173
|
deps.logger(`spawn-failed reason=startup-prompt-block pid=${pty.pid} prompt=${JSON.stringify(err.title)} captureTail=${Buffer.byteLength(stderrTail, 'utf8')}`);
|
|
@@ -2155,6 +2189,7 @@ export async function spawnClaudeSession(deps, args) {
|
|
|
2155
2189
|
if (sessionIdSource === 'minted' && row.sessionId !== sessionId) {
|
|
2156
2190
|
pty.kill('SIGKILL');
|
|
2157
2191
|
tail.dispose();
|
|
2192
|
+
ptyTee.dispose();
|
|
2158
2193
|
deps.logger(`spawn-failed reason=pid-file-session-mismatch minted=${sessionId.slice(0, 8)} pid-file=${row.sessionId.slice(0, 8)} pid=${pty.pid}`);
|
|
2159
2194
|
return { ok: false, reason: 'pid-file-session-mismatch', stderrTail: `pid-file sessionId=${row.sessionId} != minted=${sessionId}` };
|
|
2160
2195
|
}
|
|
@@ -2272,6 +2307,7 @@ export async function spawnClaudeSession(deps, args) {
|
|
|
2272
2307
|
pty.kill('SIGKILL');
|
|
2273
2308
|
const stderrTail = tail.getTail();
|
|
2274
2309
|
tail.dispose();
|
|
2310
|
+
ptyTee.dispose();
|
|
2275
2311
|
deps.logger(`spawn-failed reason=sidecar-write-failed sessionId=${sessionId.slice(0, 8)} path=${sidecarPath} err=${JSON.stringify(detail)} stderr-tail=${formatTailForLog(stderrTail)}`);
|
|
2276
2312
|
return { ok: false, reason: 'sidecar-write-failed', stderrTail };
|
|
2277
2313
|
}
|
|
@@ -2307,6 +2343,7 @@ export async function spawnClaudeSession(deps, args) {
|
|
|
2307
2343
|
pty.onExit((e) => {
|
|
2308
2344
|
const stderrTail = tail.getTail();
|
|
2309
2345
|
tail.dispose();
|
|
2346
|
+
ptyTee.dispose();
|
|
2310
2347
|
handlePtyNaturalExit({ logger: deps.logger }, tracker, e, stderrTail);
|
|
2311
2348
|
});
|
|
2312
2349
|
const responseMs = Date.now() - start;
|