@rubytech/create-maxy-code 0.1.592 → 0.1.594
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 +2 -2
- package/payload/platform/package.json +1 -0
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +11 -5
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +11 -0
- package/payload/platform/plugins/cloudflare/PLUGIN.md +2 -0
- package/payload/platform/plugins/docs/references/internals.md +5 -3
- package/payload/platform/plugins/docs/references/telegram-guide.md +5 -1
- package/payload/platform/plugins/scheduling/PLUGIN.md +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js +15 -2
- 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.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js +7 -2
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/scheduling-gate.test.js +125 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/scheduling-gate.test.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.d.ts +28 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.d.ts.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.js +72 -12
- package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.js.map +1 -1
- package/payload/platform/plugins/telegram/PLUGIN.md +12 -5
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/ask-tool.test.js +31 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/ask-tool.test.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/card-tool.test.js +30 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/card-tool.test.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/media-fetch-tool.test.js +24 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/media-fetch-tool.test.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/media-send-tool.test.js +31 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/media-send-tool.test.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin-registry.test.d.ts +2 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin-registry.test.d.ts.map +1 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin-registry.test.js +55 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin-registry.test.js.map +1 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin.test.d.ts +2 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin.test.d.ts.map +1 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin.test.js +89 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin.test.js.map +1 -0
- package/payload/platform/plugins/telegram/mcp/dist/index.js +13 -42
- package/payload/platform/plugins/telegram/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/lib/public-pin.d.ts +80 -0
- package/payload/platform/plugins/telegram/mcp/dist/lib/public-pin.d.ts.map +1 -0
- package/payload/platform/plugins/telegram/mcp/dist/lib/public-pin.js +96 -0
- package/payload/platform/plugins/telegram/mcp/dist/lib/public-pin.js.map +1 -0
- package/payload/platform/plugins/telegram/mcp/dist/tools/ask.d.ts +5 -0
- package/payload/platform/plugins/telegram/mcp/dist/tools/ask.d.ts.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/ask.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/card.d.ts +5 -0
- package/payload/platform/plugins/telegram/mcp/dist/tools/card.d.ts.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/card.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/media-fetch.d.ts +5 -0
- package/payload/platform/plugins/telegram/mcp/dist/tools/media-fetch.d.ts.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/media-fetch.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/media-send.d.ts +5 -0
- package/payload/platform/plugins/telegram/mcp/dist/tools/media-send.d.ts.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/media-send.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/thread.d.ts +5 -0
- package/payload/platform/plugins/telegram/mcp/dist/tools/thread.d.ts.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/thread.js.map +1 -1
- package/payload/platform/scripts/__tests__/agent-identity-reconcile.test.sh +110 -0
- package/payload/platform/scripts/__tests__/check-orphan-dist.test.sh +87 -0
- package/payload/platform/scripts/check-orphan-dist.mjs +143 -0
- package/payload/platform/scripts/lib/agent-identity-reconcile.sh +122 -0
- package/payload/platform/scripts/lib/provision-account-dir.sh +8 -26
- package/payload/platform/scripts/setup-account.sh +15 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +37 -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 +178 -13
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/index.js +5 -0
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.d.ts +5 -0
- 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 +42 -1
- package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/rc-public-lockdown.d.ts +13 -5
- package/payload/platform/services/claude-session-manager/dist/rc-public-lockdown.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/rc-public-lockdown.js +23 -9
- package/payload/platform/services/claude-session-manager/dist/rc-public-lockdown.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.d.ts +7 -4
- package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.js +5 -3
- package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/telegram-channel-store.d.ts +15 -1
- package/payload/platform/services/claude-session-manager/dist/telegram-channel-store.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/telegram-channel-store.js +16 -7
- package/payload/platform/services/claude-session-manager/dist/telegram-channel-store.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/telegram-plugin-mcp.d.ts +28 -0
- package/payload/platform/services/claude-session-manager/dist/telegram-plugin-mcp.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/telegram-plugin-mcp.js +53 -0
- package/payload/platform/services/claude-session-manager/dist/telegram-plugin-mcp.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.d.ts +9 -5
- package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.js +12 -6
- package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.d.ts +7 -3
- package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.js +5 -1
- package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.js.map +1 -1
- package/payload/platform/services/telegram-channel/dist/instructions.d.ts +14 -2
- package/payload/platform/services/telegram-channel/dist/instructions.d.ts.map +1 -1
- package/payload/platform/services/telegram-channel/dist/instructions.js +34 -3
- package/payload/platform/services/telegram-channel/dist/instructions.js.map +1 -1
- package/payload/platform/templates/agents/public/IDENTITY.md +3 -3
- package/payload/server/server.js +74 -9
- package/payload/platform/lib/anthropic-key/dist/index.d.ts +0 -22
- package/payload/platform/lib/anthropic-key/dist/index.d.ts.map +0 -1
- package/payload/platform/lib/anthropic-key/dist/index.js +0 -232
- package/payload/platform/lib/anthropic-key/dist/index.js.map +0 -1
- package/payload/platform/lib/graph-search/dist/query-expansion.d.ts +0 -37
- package/payload/platform/lib/graph-search/dist/query-expansion.d.ts.map +0 -1
- package/payload/platform/lib/graph-search/dist/query-expansion.js +0 -101
- package/payload/platform/lib/graph-search/dist/query-expansion.js.map +0 -1
- package/payload/platform/lib/oauth-llm/dist/index.d.ts +0 -116
- package/payload/platform/lib/oauth-llm/dist/index.d.ts.map +0 -1
- package/payload/platform/lib/oauth-llm/dist/index.js +0 -386
- package/payload/platform/lib/oauth-llm/dist/index.js.map +0 -1
- package/payload/platform/lib/screening-patterns/dist/index.d.ts +0 -29
- package/payload/platform/lib/screening-patterns/dist/index.d.ts.map +0 -1
- package/payload/platform/lib/screening-patterns/dist/index.js +0 -48
- package/payload/platform/lib/screening-patterns/dist/index.js.map +0 -1
- package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-identity-authenticate.test.d.ts +0 -2
- package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-identity-authenticate.test.d.ts.map +0 -1
- package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-identity-authenticate.test.js +0 -34
- package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-identity-authenticate.test.js.map +0 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.d.ts +0 -39
- package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.d.ts.map +0 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.js +0 -249
- package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.js.map +0 -1
- package/payload/platform/plugins/admin/mcp/dist/tools/admin-identity-authenticate.d.ts +0 -6
- package/payload/platform/plugins/admin/mcp/dist/tools/admin-identity-authenticate.d.ts.map +0 -1
- package/payload/platform/plugins/admin/mcp/dist/tools/admin-identity-authenticate.js +0 -32
- package/payload/platform/plugins/admin/mcp/dist/tools/admin-identity-authenticate.js.map +0 -1
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts +0 -283
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts.map +0 -1
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js +0 -1155
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js.map +0 -1
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.d.ts +0 -90
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.d.ts.map +0 -1
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.js +0 -551
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.js.map +0 -1
- package/payload/platform/plugins/email/mcp/dist/lib/claude-bridge.d.ts +0 -17
- package/payload/platform/plugins/email/mcp/dist/lib/claude-bridge.d.ts.map +0 -1
- package/payload/platform/plugins/email/mcp/dist/lib/claude-bridge.js +0 -186
- package/payload/platform/plugins/email/mcp/dist/lib/claude-bridge.js.map +0 -1
- package/payload/platform/plugins/email/mcp/dist/lib/screening.d.ts +0 -29
- package/payload/platform/plugins/email/mcp/dist/lib/screening.d.ts.map +0 -1
- package/payload/platform/plugins/email/mcp/dist/lib/screening.js +0 -105
- package/payload/platform/plugins/email/mcp/dist/lib/screening.js.map +0 -1
- package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.d.ts +0 -38
- package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.d.ts.map +0 -1
- package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.js +0 -817
- package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.js.map +0 -1
- package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.d.ts +0 -30
- package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.d.ts.map +0 -1
- package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.js +0 -215
- package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.js.map +0 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.d.ts +0 -19
- package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.d.ts.map +0 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.js +0 -151
- package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.js.map +0 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-classify.d.ts +0 -6
- package/payload/platform/plugins/email/mcp/dist/tools/email-classify.d.ts.map +0 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-classify.js +0 -89
- package/payload/platform/plugins/email/mcp/dist/tools/email-classify.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.js +0 -90
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js +0 -226
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts +0 -60
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js +0 -169
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts +0 -248
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js +0 -824
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts +0 -63
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js +0 -210
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.d.ts +0 -35
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.js +0 -28
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.js +0 -68
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.js +0 -88
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.js +0 -58
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.js +0 -64
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.js +0 -70
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.js +0 -48
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.js +0 -74
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.js +0 -47
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.js +0 -65
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.js +0 -43
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.js +0 -65
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.js +0 -49
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.js +0 -79
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.js +0 -329
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.d.ts +0 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js +0 -81
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts +0 -34
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js +0 -62
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.d.ts +0 -61
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.js +0 -102
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.d.ts +0 -35
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.js +0 -73
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.d.ts +0 -29
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.js +0 -22
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.d.ts +0 -30
- package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.js +0 -130
- package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.js.map +0 -1
- package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts +0 -65
- package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts.map +0 -1
- package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js +0 -262
- package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js.map +0 -1
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/normalise-start-date.test.d.ts +0 -2
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/normalise-start-date.test.d.ts.map +0 -1
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/normalise-start-date.test.js +0 -100
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/normalise-start-date.test.js.map +0 -1
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/scheduled-seat-id.test.d.ts +0 -2
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/scheduled-seat-id.test.d.ts.map +0 -1
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/scheduled-seat-id.test.js +0 -22
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/scheduled-seat-id.test.js.map +0 -1
- package/payload/platform/plugins/scheduling/mcp/dist/lib/scheduled-seat-id.d.ts +0 -11
- package/payload/platform/plugins/scheduling/mcp/dist/lib/scheduled-seat-id.d.ts.map +0 -1
- package/payload/platform/plugins/scheduling/mcp/dist/lib/scheduled-seat-id.js +0 -19
- package/payload/platform/plugins/scheduling/mcp/dist/lib/scheduled-seat-id.js.map +0 -1
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/invoice-tool.test.d.ts +0 -2
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/invoice-tool.test.d.ts.map +0 -1
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/invoice-tool.test.js +0 -196
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/invoice-tool.test.js.map +0 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/invoice.d.ts +0 -70
- package/payload/platform/plugins/telegram/mcp/dist/tools/invoice.d.ts.map +0 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/invoice.js +0 -247
- package/payload/platform/plugins/telegram/mcp/dist/tools/invoice.js.map +0 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts +0 -21
- package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts.map +0 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/message.js +0 -40
- package/payload/platform/plugins/telegram/mcp/dist/tools/message.js.map +0 -1
- package/payload/platform/plugins/url-get/mcp/dist/lib/summarise.d.ts +0 -8
- package/payload/platform/plugins/url-get/mcp/dist/lib/summarise.d.ts.map +0 -1
- package/payload/platform/plugins/url-get/mcp/dist/lib/summarise.js +0 -83
- package/payload/platform/plugins/url-get/mcp/dist/lib/summarise.js.map +0 -1
- package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.d.ts +0 -151
- package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.d.ts.map +0 -1
- package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.js +0 -299
- package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.js.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/account-admin-census.d.ts +0 -39
- package/payload/platform/services/claude-session-manager/dist/account-admin-census.d.ts.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/account-admin-census.js +0 -122
- package/payload/platform/services/claude-session-manager/dist/account-admin-census.js.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/admin-identity-audit.d.ts +0 -39
- package/payload/platform/services/claude-session-manager/dist/admin-identity-audit.d.ts.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/admin-identity-audit.js +0 -133
- package/payload/platform/services/claude-session-manager/dist/admin-identity-audit.js.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/input-postcondition.d.ts +0 -22
- package/payload/platform/services/claude-session-manager/dist/input-postcondition.d.ts.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/input-postcondition.js +0 -50
- package/payload/platform/services/claude-session-manager/dist/input-postcondition.js.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-observer.d.ts +0 -30
- package/payload/platform/services/claude-session-manager/dist/jsonl-observer.d.ts.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-observer.js +0 -204
- package/payload/platform/services/claude-session-manager/dist/jsonl-observer.js.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/rc-script-spawn.d.ts +0 -80
- package/payload/platform/services/claude-session-manager/dist/rc-script-spawn.d.ts.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/rc-script-spawn.js +0 -306
- package/payload/platform/services/claude-session-manager/dist/rc-script-spawn.js.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/session-store.d.ts +0 -49
- package/payload/platform/services/claude-session-manager/dist/session-store.d.ts.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/session-store.js +0 -52
- package/payload/platform/services/claude-session-manager/dist/session-store.js.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/systemd-spawn.d.ts +0 -83
- package/payload/platform/services/claude-session-manager/dist/systemd-spawn.d.ts.map +0 -1
- package/payload/platform/services/claude-session-manager/dist/systemd-spawn.js +0 -345
- package/payload/platform/services/claude-session-manager/dist/systemd-spawn.js.map +0 -1
- package/payload/platform/services/telegram-channel/dist/turn-follow.d.ts +0 -104
- package/payload/platform/services/telegram-channel/dist/turn-follow.d.ts.map +0 -1
- package/payload/platform/services/telegram-channel/dist/turn-follow.js +0 -408
- package/payload/platform/services/telegram-channel/dist/turn-follow.js.map +0 -1
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts +0 -104
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts.map +0 -1
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.js +0 -393
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.js.map +0 -1
|
@@ -1,345 +0,0 @@
|
|
|
1
|
-
// Task 552 — non-PTY spawn primitive for claude scope units.
|
|
2
|
-
//
|
|
3
|
-
// Wraps `child_process.spawn` around `systemd-run --user --scope ...` so
|
|
4
|
-
// the manager allocates ZERO file descriptors per spawn (stdio: 'ignore',
|
|
5
|
-
// detached + unref). The previous `spawnPty` adapter wrapped node-pty
|
|
6
|
-
// around the same systemd-run argv, which opened a master pty fd in the
|
|
7
|
-
// manager process — one fd leaked per /rc-spawn click and one per
|
|
8
|
-
// rc-daemon respawn until V8 GC fired.
|
|
9
|
-
//
|
|
10
|
-
// This primitive is for spawns the manager never talks to: `/rc-spawn`
|
|
11
|
-
// (fire-and-forget, the route never writes back to the child) and the
|
|
12
|
-
// rc-daemon supervisor. Channel-bridge spawns (`/spawn`,
|
|
13
|
-
// `:sessionId/input`, WhatsApp / public-agent / channel-pty-bridge) keep
|
|
14
|
-
// node-pty because they genuinely need bidirectional IO with the
|
|
15
|
-
// manager.
|
|
16
|
-
//
|
|
17
|
-
// Argv composition reuses `buildSystemdRunArgv` from systemd-scope.ts so
|
|
18
|
-
// the SIGHUP wrap, per-spawn unit token, slice membership,
|
|
19
|
-
// `--setenv=KEY=VAL` env block, and `script(1)`-based TTY allocation
|
|
20
|
-
// (Task 556) are byte-identical with the PTY spawn path.
|
|
21
|
-
//
|
|
22
|
-
// Task 556 — child output capture is the typescript file written by the
|
|
23
|
-
// inner `script -q -f -c "$1" "$2"` wrapper (see buildSystemdRunArgv).
|
|
24
|
-
// The prior Task 555 attempt to capture via `StandardOutput=journal`
|
|
25
|
-
// scope properties was a no-op: those properties are `Exec*=`
|
|
26
|
-
// service-unit fields that systemd silently ignores on `--scope` units,
|
|
27
|
-
// which inherit the launcher's fds. With the manager's `stdio: 'ignore'`
|
|
28
|
-
// the child received `/dev/null` on every stream and `claude
|
|
29
|
-
// --remote-control --resume` / `claude rc --spawn` early-exited because
|
|
30
|
-
// no TTY / live stdin was present. The `script` wrap allocates a real
|
|
31
|
-
// pty, claude stays resident, and the per-spawn capture file holds the
|
|
32
|
-
// stdout/stderr for retrieval after the scope is reaped.
|
|
33
|
-
//
|
|
34
|
-
// Task 554 — activation gate reads ActiveState + ControlGroup + cgroup.procs,
|
|
35
|
-
// NOT MainPID. `systemctl show -p MainPID` returns nothing for transient
|
|
36
|
-
// scope units on systemd 255 (Ubuntu 24.04), so the prior MainPID poll
|
|
37
|
-
// timed out at 5 s even though the scope was already live. The new gate:
|
|
38
|
-
//
|
|
39
|
-
// - One `systemctl show -p ActiveState -p ControlGroup` call per poll
|
|
40
|
-
// iteration.
|
|
41
|
-
// - The pid is read from `cgroup.procs` under the path systemd reports
|
|
42
|
-
// in `ControlGroup`. The minimum pid wins — the in-place exec chain
|
|
43
|
-
// `systemd-run → /bin/sh → claude` preserves the original pid, which
|
|
44
|
-
// is the lowest in the cgroup.
|
|
45
|
-
// - Three terminal outcomes distinguish how a spawn failed:
|
|
46
|
-
// systemd-start-failure — ActiveState terminated and cgroup.procs
|
|
47
|
-
// was never populated (bad cwd, missing binary, slice not loaded).
|
|
48
|
-
// boot-crash — cgroup.procs was populated then emptied
|
|
49
|
-
// before ActiveState reached `active`. Claude itself crashed at
|
|
50
|
-
// init; observed pid is captured in the error message.
|
|
51
|
-
// activation-timeout — deadline reached without ActiveState ever
|
|
52
|
-
// leaving the activating set. Reserved for genuine systemd hangs;
|
|
53
|
-
// the terminal ActiveState value is logged.
|
|
54
|
-
// - Before any terminal reject, `stopScopeUnit` is called against the
|
|
55
|
-
// unit so a partially-registered scope cannot leak. The eight
|
|
56
|
-
// `claude-session-rc-daemon-*.scope` units leaked on the laptop by
|
|
57
|
-
// the prior bug are reaped at session-manager startup via
|
|
58
|
-
// `reapOrphanNonPtyScopes` (systemd-scope.ts).
|
|
59
|
-
import { spawn } from 'node:child_process';
|
|
60
|
-
import { mkdirSync, openSync, readFileSync, readSync, statSync, closeSync } from 'node:fs';
|
|
61
|
-
import { dirname } from 'node:path';
|
|
62
|
-
import { buildSystemdRunArgv, defaultSystemctlRunner, scopeUnitName, stopScopeUnit, } from './systemd-scope.js';
|
|
63
|
-
const ACTIVE_STATES = new Set(['active', 'activating', 'reloading']);
|
|
64
|
-
/** Spawn `systemd-run --user --scope ... <claudeBin> <claudeArgs>` so the
|
|
65
|
-
* manager holds no file descriptors for the resulting claude process.
|
|
66
|
-
* Returns once cgroup.procs is non-empty AND ActiveState is `active`.
|
|
67
|
-
* On terminal failure, stops the partially-registered scope and rejects
|
|
68
|
-
* with one of three distinct error tokens. */
|
|
69
|
-
export async function systemdSpawn(p) {
|
|
70
|
-
const run = p.runSystemctl ?? defaultSystemctlRunner;
|
|
71
|
-
const readCgroupProcs = p.readCgroupProcs ?? defaultReadCgroupProcs;
|
|
72
|
-
const readCaptureTailFn = p.readCaptureTail ?? readCaptureFile;
|
|
73
|
-
const spawnChild = p.spawnChild ?? defaultSpawnChild;
|
|
74
|
-
const activationTimeoutMs = p.activationTimeoutMs ?? 5_000;
|
|
75
|
-
const pollIntervalMs = p.activationPollIntervalMs ?? 50;
|
|
76
|
-
// script(1) opens the typescript file for write at exec time. ENOENT on
|
|
77
|
-
// the parent dir would surface as a fast-exit with no capture — make
|
|
78
|
-
// the dir before spawn so the capture path is always writable.
|
|
79
|
-
try {
|
|
80
|
-
mkdirSync(dirname(p.captureFilePath), { recursive: true });
|
|
81
|
-
}
|
|
82
|
-
catch (err) {
|
|
83
|
-
throw new Error(`[systemd-spawn] capture-dir-create-failed unitToken=${p.unitToken} captureFilePath=${p.captureFilePath} err=${err instanceof Error ? err.message : String(err)}`);
|
|
84
|
-
}
|
|
85
|
-
const wrapped = buildSystemdRunArgv({
|
|
86
|
-
unitToken: p.unitToken,
|
|
87
|
-
claudeBin: p.claudeBin,
|
|
88
|
-
claudeArgs: p.claudeArgs,
|
|
89
|
-
env: p.env,
|
|
90
|
-
cwd: p.cwd,
|
|
91
|
-
captureFilePath: p.captureFilePath,
|
|
92
|
-
});
|
|
93
|
-
// Spawn systemd-run as a detached child with stdio:'ignore'. The manager
|
|
94
|
-
// process holds zero fds to it; user systemd owns the scope cgroup's
|
|
95
|
-
// lifetime. `detached: true` puts the child in its own process group so
|
|
96
|
-
// it survives manager exit (systemd already owns it once registered, but
|
|
97
|
-
// the detach is belt-and-braces against PG signal forwarding).
|
|
98
|
-
let child;
|
|
99
|
-
const errorBox = { err: null };
|
|
100
|
-
try {
|
|
101
|
-
child = spawnChild(wrapped.cmd, wrapped.args, {
|
|
102
|
-
cwd: p.cwd,
|
|
103
|
-
env: process.env,
|
|
104
|
-
stdio: 'ignore',
|
|
105
|
-
detached: true,
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
catch (err) {
|
|
109
|
-
throw new Error(`[systemd-spawn] spawn-failed unitToken=${p.unitToken} err=${err instanceof Error ? err.message : String(err)}`);
|
|
110
|
-
}
|
|
111
|
-
child.on('error', (err) => {
|
|
112
|
-
errorBox.err = err;
|
|
113
|
-
});
|
|
114
|
-
child.unref();
|
|
115
|
-
const unit = scopeUnitName(p.unitToken);
|
|
116
|
-
const deadline = Date.now() + activationTimeoutMs;
|
|
117
|
-
let seenPid = null;
|
|
118
|
-
let lastControlGroup = '';
|
|
119
|
-
let lastActiveState = '';
|
|
120
|
-
while (Date.now() < deadline) {
|
|
121
|
-
if (errorBox.err) {
|
|
122
|
-
// Pair with stop so the scope (if it managed to register before the
|
|
123
|
-
// child errored on the manager side) doesn't leak. systemctl's stop
|
|
124
|
-
// is harmless when the unit was never loaded.
|
|
125
|
-
await safeStop(run, p.unitToken);
|
|
126
|
-
throw new Error(`[systemd-spawn] child-error unitToken=${p.unitToken} err=${errorBox.err.message}`);
|
|
127
|
-
}
|
|
128
|
-
const show = run([
|
|
129
|
-
'--user', 'show',
|
|
130
|
-
'-p', 'ActiveState',
|
|
131
|
-
'-p', 'ControlGroup',
|
|
132
|
-
'-p', 'Result',
|
|
133
|
-
'-p', 'SubState',
|
|
134
|
-
unit,
|
|
135
|
-
]);
|
|
136
|
-
const fields = show.exitCode === 0 ? parseShowFields(show.stdout) : {};
|
|
137
|
-
const activeState = fields.ActiveState ?? '';
|
|
138
|
-
const controlGroup = fields.ControlGroup ?? '';
|
|
139
|
-
const result = fields.Result ?? '';
|
|
140
|
-
const subState = fields.SubState ?? '';
|
|
141
|
-
if (activeState)
|
|
142
|
-
lastActiveState = activeState;
|
|
143
|
-
if (controlGroup)
|
|
144
|
-
lastControlGroup = controlGroup;
|
|
145
|
-
if (controlGroup) {
|
|
146
|
-
const pids = readCgroupProcs(controlGroup);
|
|
147
|
-
if (pids.length > 0) {
|
|
148
|
-
seenPid = Math.min(...pids);
|
|
149
|
-
if (activeState === 'active') {
|
|
150
|
-
return buildHandle(seenPid, p.unitToken, p.captureFilePath, run);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
// Terminal non-active state — classify by (seenPid, Result). systemd's
|
|
155
|
-
// `Result` is the truthful signal for whether the start succeeded:
|
|
156
|
-
// `success` ⇒ unit started and the child terminated normally;
|
|
157
|
-
// anything else ⇒ start or runtime failure recognised by systemd.
|
|
158
|
-
// The seenPid branch separates "child died during boot" from "child
|
|
159
|
-
// exited before the poll loop ever observed it in cgroup.procs".
|
|
160
|
-
//
|
|
161
|
-
// seenPid observed → boot-crash
|
|
162
|
-
// no seenPid + Result=success → child-exited-during-activation
|
|
163
|
-
// (the race this gate was missing;
|
|
164
|
-
// systemd is happy, the child just
|
|
165
|
-
// exited faster than 50 ms)
|
|
166
|
-
// no seenPid + Result!=success → systemd-start-failure
|
|
167
|
-
// (genuine systemd-side start fail
|
|
168
|
-
// — bad cwd, missing binary, slice
|
|
169
|
-
// not loaded, etc.)
|
|
170
|
-
//
|
|
171
|
-
// Every branch carries the journal tail in the thrown message so the
|
|
172
|
-
// admin-UI log line surfaces the child's last stderr/stdout without an
|
|
173
|
-
// SSH-into-the-box step.
|
|
174
|
-
if (activeState && !ACTIVE_STATES.has(activeState)) {
|
|
175
|
-
const capture = await safeReadCaptureTail(readCaptureTailFn, p.captureFilePath, 2_048);
|
|
176
|
-
await safeStop(run, p.unitToken, seenPid);
|
|
177
|
-
const journalSuffix = capture ? ` captureTail=${JSON.stringify(capture)}` : '';
|
|
178
|
-
if (seenPid !== null) {
|
|
179
|
-
throw new Error(`[systemd-spawn] boot-crash unitToken=${p.unitToken} observedPid=${seenPid} controlGroup=${lastControlGroup} activeState=${activeState}${journalSuffix}`);
|
|
180
|
-
}
|
|
181
|
-
if (result === 'success') {
|
|
182
|
-
throw new Error(`[systemd-spawn] child-exited-during-activation unitToken=${p.unitToken} activeState=${activeState} subState=${subState || 'unknown'}${journalSuffix}`);
|
|
183
|
-
}
|
|
184
|
-
throw new Error(`[systemd-spawn] systemd-start-failure unitToken=${p.unitToken} activeState=${activeState} result=${result || 'unknown'}${journalSuffix}`);
|
|
185
|
-
}
|
|
186
|
-
await sleep(pollIntervalMs);
|
|
187
|
-
}
|
|
188
|
-
// Deadline hit while still activating (or no controlGroup ever
|
|
189
|
-
// reported). Stop the scope to avoid leaking it, then reject.
|
|
190
|
-
await safeStop(run, p.unitToken, seenPid);
|
|
191
|
-
throw new Error(`[systemd-spawn] activation-timeout unitToken=${p.unitToken} activeState=${lastActiveState || 'unknown'} timeoutMs=${activationTimeoutMs}`);
|
|
192
|
-
}
|
|
193
|
-
function parseShowFields(stdout) {
|
|
194
|
-
const out = {};
|
|
195
|
-
for (const line of stdout.split('\n')) {
|
|
196
|
-
const eq = line.indexOf('=');
|
|
197
|
-
if (eq < 0)
|
|
198
|
-
continue;
|
|
199
|
-
out[line.slice(0, eq)] = line.slice(eq + 1).trim();
|
|
200
|
-
}
|
|
201
|
-
return out;
|
|
202
|
-
}
|
|
203
|
-
/** Read /sys/fs/cgroup<controlGroup>/cgroup.procs. Returns the parsed pids
|
|
204
|
-
* (one per line). Empty list on ENOENT / parse failure — the caller treats
|
|
205
|
-
* empty as "scope not yet populated", which is the truthful default. */
|
|
206
|
-
function defaultReadCgroupProcs(controlGroup) {
|
|
207
|
-
if (!controlGroup)
|
|
208
|
-
return [];
|
|
209
|
-
// ControlGroup is the systemd-relative path (e.g.
|
|
210
|
-
// `/user.slice/user-1000.slice/.../foo.scope`). Concatenate with
|
|
211
|
-
// /sys/fs/cgroup for the unified hierarchy.
|
|
212
|
-
const path = `/sys/fs/cgroup${controlGroup}/cgroup.procs`;
|
|
213
|
-
try {
|
|
214
|
-
const raw = readFileSync(path, 'utf8');
|
|
215
|
-
const pids = [];
|
|
216
|
-
for (const line of raw.split('\n')) {
|
|
217
|
-
const trimmed = line.trim();
|
|
218
|
-
if (!trimmed)
|
|
219
|
-
continue;
|
|
220
|
-
const n = Number.parseInt(trimmed, 10);
|
|
221
|
-
if (Number.isFinite(n) && n > 0)
|
|
222
|
-
pids.push(n);
|
|
223
|
-
}
|
|
224
|
-
return pids;
|
|
225
|
-
}
|
|
226
|
-
catch {
|
|
227
|
-
return [];
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
/** Best-effort cleanup of a partially-registered scope on terminal
|
|
231
|
-
* failure. Swallows stop errors — the caller is already about to reject
|
|
232
|
-
* with the original cause; surfacing a secondary stop failure would mask
|
|
233
|
-
* it. */
|
|
234
|
-
async function safeStop(run, unitToken, pid = null) {
|
|
235
|
-
try {
|
|
236
|
-
await stopScopeUnit(run, unitToken, { pid: pid ?? undefined });
|
|
237
|
-
}
|
|
238
|
-
catch {
|
|
239
|
-
/* deliberately swallow — original failure is what the caller needs */
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
/** Best-effort capture-file tail read for inclusion in activation-gate
|
|
243
|
-
* failure envelopes. A read failure must not mask the underlying
|
|
244
|
-
* activation-gate error, so any throw degrades to an empty string. */
|
|
245
|
-
async function safeReadCaptureTail(reader, captureFilePath, maxBytes) {
|
|
246
|
-
try {
|
|
247
|
-
return await reader(captureFilePath, maxBytes);
|
|
248
|
-
}
|
|
249
|
-
catch {
|
|
250
|
-
return '';
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
function buildHandle(pid, unitToken, captureFilePath, run) {
|
|
254
|
-
const unit = scopeUnitName(unitToken);
|
|
255
|
-
return {
|
|
256
|
-
pid,
|
|
257
|
-
unitToken,
|
|
258
|
-
captureFilePath,
|
|
259
|
-
async waitForExit(opts) {
|
|
260
|
-
const interval = opts?.pollIntervalMs ?? 250;
|
|
261
|
-
while (true) {
|
|
262
|
-
const r = run(['--user', 'show', '-p', 'ActiveState', '--value', unit]);
|
|
263
|
-
const state = r.exitCode === 0 ? r.stdout.trim() : '';
|
|
264
|
-
// Empty state OR exit code 4 (unit not loaded) means the transient
|
|
265
|
-
// unit has been collected — treat as exited.
|
|
266
|
-
if (!state || !ACTIVE_STATES.has(state)) {
|
|
267
|
-
return readScopeExit(run, unit);
|
|
268
|
-
}
|
|
269
|
-
await sleep(interval);
|
|
270
|
-
}
|
|
271
|
-
},
|
|
272
|
-
async readCaptureTail(maxBytes) {
|
|
273
|
-
return readCaptureFile(captureFilePath, maxBytes);
|
|
274
|
-
},
|
|
275
|
-
async stop() {
|
|
276
|
-
await stopScopeUnit(run, unitToken, { pid });
|
|
277
|
-
},
|
|
278
|
-
};
|
|
279
|
-
}
|
|
280
|
-
function readScopeExit(run, unit) {
|
|
281
|
-
const r = run([
|
|
282
|
-
'--user',
|
|
283
|
-
'show',
|
|
284
|
-
'-p', 'Result',
|
|
285
|
-
'-p', 'ExecMainStatus',
|
|
286
|
-
'-p', 'ExecMainCode',
|
|
287
|
-
unit,
|
|
288
|
-
]);
|
|
289
|
-
if (r.exitCode !== 0) {
|
|
290
|
-
return { result: 'unknown', exitCode: null, code: null };
|
|
291
|
-
}
|
|
292
|
-
const fields = {};
|
|
293
|
-
for (const line of r.stdout.split('\n')) {
|
|
294
|
-
const eq = line.indexOf('=');
|
|
295
|
-
if (eq < 0)
|
|
296
|
-
continue;
|
|
297
|
-
fields[line.slice(0, eq)] = line.slice(eq + 1);
|
|
298
|
-
}
|
|
299
|
-
const statusRaw = fields.ExecMainStatus ?? '';
|
|
300
|
-
const status = statusRaw === '' ? null : Number.parseInt(statusRaw, 10);
|
|
301
|
-
return {
|
|
302
|
-
result: fields.Result || 'unknown',
|
|
303
|
-
exitCode: Number.isFinite(status) ? status : null,
|
|
304
|
-
code: fields.ExecMainCode || null,
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
/** Read the last `maxBytes` bytes of the script(1) typescript file.
|
|
308
|
-
* Returns '' when the file does not exist (the child died before
|
|
309
|
-
* script(1) opened it) or on any read failure — the caller treats
|
|
310
|
-
* empty as "no capture available" and falls through to the bare error
|
|
311
|
-
* envelope. */
|
|
312
|
-
async function readCaptureFile(captureFilePath, maxBytes) {
|
|
313
|
-
try {
|
|
314
|
-
const st = statSync(captureFilePath);
|
|
315
|
-
const size = st.size;
|
|
316
|
-
if (size === 0)
|
|
317
|
-
return '';
|
|
318
|
-
const start = size > maxBytes ? size - maxBytes : 0;
|
|
319
|
-
const length = size - start;
|
|
320
|
-
const fd = openSync(captureFilePath, 'r');
|
|
321
|
-
try {
|
|
322
|
-
const buf = Buffer.alloc(length);
|
|
323
|
-
readSync(fd, buf, 0, length, start);
|
|
324
|
-
return buf.toString('utf8');
|
|
325
|
-
}
|
|
326
|
-
finally {
|
|
327
|
-
closeSync(fd);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
catch {
|
|
331
|
-
return '';
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
function defaultSpawnChild(cmd, args, opts) {
|
|
335
|
-
const child = spawn(cmd, [...args], opts);
|
|
336
|
-
return {
|
|
337
|
-
pid: child.pid,
|
|
338
|
-
unref: () => child.unref(),
|
|
339
|
-
on: (event, cb) => { child.on(event, cb); },
|
|
340
|
-
};
|
|
341
|
-
}
|
|
342
|
-
function sleep(ms) {
|
|
343
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
344
|
-
}
|
|
345
|
-
//# sourceMappingURL=systemd-spawn.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"systemd-spawn.js","sourceRoot":"","sources":["../src/systemd-spawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
export interface TurnOutcome {
|
|
2
|
-
/** A telegram reply tool_use appeared in the turn. */
|
|
3
|
-
replied: boolean;
|
|
4
|
-
/** Text of the end_turn assistant message ('' when none / not yet reached). */
|
|
5
|
-
finalText: string;
|
|
6
|
-
/** The turn reached an assistant end_turn. */
|
|
7
|
-
reachedEndTurn: boolean;
|
|
8
|
-
/** Task 2078 — the byte range of this turn's lines in the JSONL, so a reader
|
|
9
|
-
* in another process can parse exactly this turn without being handed its
|
|
10
|
-
* text. -1/-1 from `reduceTurnFromLines`, which is given lines and not
|
|
11
|
-
* offsets; `followTurnEnds` overwrites both before calling back. */
|
|
12
|
-
segmentStart: number;
|
|
13
|
-
segmentEnd: number;
|
|
14
|
-
/** Task 2451 — `message.id` of the closing end_turn row; '' when the row
|
|
15
|
-
* carries none. Claude Code 2.1.222 can persist ONE assistant message as
|
|
16
|
-
* several rows, each stamped end_turn, so this is the identity
|
|
17
|
-
* `followTurnEnds` merges a split message on. */
|
|
18
|
-
messageId: string;
|
|
19
|
-
/** Task 2451 — `type:'tool_use'` blocks across EVERY assistant row in the
|
|
20
|
-
* segment. `replied` cannot serve here: it matches only the retired reply
|
|
21
|
-
* tool names, so a turn that called Read or Bash reports replied=false
|
|
22
|
-
* with tool_use present. The hold rule needs "this turn called no tool
|
|
23
|
-
* at all". */
|
|
24
|
-
toolUseBlocks: number;
|
|
25
|
-
/**
|
|
26
|
-
* Task 2456 — how many channel inbounds this turn answered. `followTurnEnds`
|
|
27
|
-
* segments on ANY assistant end_turn, so a turn woken by something other than
|
|
28
|
-
* a channel message arrives at the callback too and must consume nothing:
|
|
29
|
-
* measured on the laptop 2026-08-06, 2 of 15 telegram turn segments and 113
|
|
30
|
-
* of 411 webchat segments hold no channel row at all. Non-zero counts also
|
|
31
|
-
* matter: the harness answers every inbound queued while it was busy in ONE
|
|
32
|
-
* turn, so a turn-end can owe several credits, not one.
|
|
33
|
-
*/
|
|
34
|
-
consumedInbounds: number;
|
|
35
|
-
/** Task 2364 — the turn's token and thinking counts, for the gateway's
|
|
36
|
-
* op=turn-context line. */
|
|
37
|
-
context: TurnContextCounts;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Task 2364 — the per-turn evidence a refusal has to be diagnosed from. Every
|
|
41
|
-
* field is `-1` when no figure was available and `>= 0` when measured; a real 0
|
|
42
|
-
* (nothing cached this turn, no thinking done) is a finding and must never read
|
|
43
|
-
* as "not reported".
|
|
44
|
-
*/
|
|
45
|
-
export interface TurnContextCounts {
|
|
46
|
-
/** `message.usage.cache_read_input_tokens` on the turn's end_turn row. It
|
|
47
|
-
* separates "the turn was outside the model's context" from "the model had it
|
|
48
|
-
* and did not use it". -1 when that row carries no usage object. */
|
|
49
|
-
cacheReadTokens: number;
|
|
50
|
-
/** `message.usage.input_tokens` on the end_turn row; -1 when absent. */
|
|
51
|
-
inputTokens: number;
|
|
52
|
-
/** `message.usage.output_tokens` on the end_turn row; -1 when absent. */
|
|
53
|
-
outputTokens: number;
|
|
54
|
-
/** `type:'thinking'` blocks across EVERY assistant row in the turn. The
|
|
55
|
-
* reasoning sits on the rows before the final one; the end_turn row usually
|
|
56
|
-
* carries only text, so an end-row-only count reads 0 on a turn that
|
|
57
|
-
* reasoned at length. Never -1 from a live producer. */
|
|
58
|
-
thinkingBlocks: number;
|
|
59
|
-
/** Summed length of those blocks' `thinking` strings. 0 across a non-zero
|
|
60
|
-
* `thinkingBlocks` is the finding this exists for: the reasoning behind the
|
|
61
|
-
* turn is unrecoverable. Never -1 from a live producer. */
|
|
62
|
-
thinkingChars: number;
|
|
63
|
-
}
|
|
64
|
-
/** Fold one turn's JSONL line strings into the delivery decision. Pure. */
|
|
65
|
-
export declare function reduceTurnFromLines(lines: string[]): TurnOutcome;
|
|
66
|
-
export type OnTurnEnd = (outcome: TurnOutcome) => void;
|
|
67
|
-
/**
|
|
68
|
-
* Walk `${CLAUDE_CONFIG_DIR}/projects/<slug>/` for `${sessionId}.jsonl` (live
|
|
69
|
-
* and archived). Returns the first match or null. Inlined from
|
|
70
|
-
* whatsapp-channel/jsonl-watch.ts (itself inlined from
|
|
71
|
-
* claude-session-manager/src/jsonl-path.ts) to avoid a cross-package dep.
|
|
72
|
-
*/
|
|
73
|
-
export declare function findJsonlForSessionId(sessionId: string, env?: NodeJS.ProcessEnv): string | null;
|
|
74
|
-
/**
|
|
75
|
-
* Task 2451 — the follower's live hold state, mutated in place so the owning
|
|
76
|
-
* channel server can log a standing census without the follower importing a
|
|
77
|
-
* logger. A held segment that never resolves emits no event of its own; the
|
|
78
|
-
* census is the only surface that shows it.
|
|
79
|
-
*/
|
|
80
|
-
export interface FollowerState {
|
|
81
|
-
/** True while a thinking-only close is held awaiting the rest of its message. */
|
|
82
|
-
held: boolean;
|
|
83
|
-
/** `message.id` of the held segment; '' when not holding. */
|
|
84
|
-
heldMessageId: string;
|
|
85
|
-
/** Clock value when the hold began; -1 when not holding. */
|
|
86
|
-
heldSinceMs: number;
|
|
87
|
-
/** `message.id` of the last outcome emitted; '' before the first. */
|
|
88
|
-
lastMessageId: string;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Tail `jsonlPath` from `startOffset` for the life of the session, invoking
|
|
92
|
-
* `onTurnEnd` once per TURN. Task 2451: that is once per assistant end_turn
|
|
93
|
-
* EXCEPT where one message was split across several end_turn rows, which are
|
|
94
|
-
* merged into a single call. It
|
|
95
|
-
* segments the JSONL at each end_turn so a follow-on turn produced from a
|
|
96
|
-
* mid-turn-queued message is reported too. The process dies with the session,
|
|
97
|
-
* so there is no per-turn timeout; the promise resolves only when the file
|
|
98
|
-
* becomes unreadable. Never rejects. (Mirror of the WhatsApp twin.)
|
|
99
|
-
*/
|
|
100
|
-
export declare function followTurnEnds(jsonlPath: string, startOffset: number, onTurnEnd: OnTurnEnd, opts?: {
|
|
101
|
-
state?: FollowerState;
|
|
102
|
-
now?: () => number;
|
|
103
|
-
}): Promise<void>;
|
|
104
|
-
//# sourceMappingURL=turn-follow.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"turn-follow.d.ts","sourceRoot":"","sources":["../src/turn-follow.ts"],"names":[],"mappings":"AA6DA,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAA;IAChB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,cAAc,EAAE,OAAO,CAAA;IACvB;;;yEAGqE;IACrE,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB;;;sDAGkD;IAClD,SAAS,EAAE,MAAM,CAAA;IACjB;;;;mBAIe;IACf,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;;;;OAQG;IACH,gBAAgB,EAAE,MAAM,CAAA;IACxB;gCAC4B;IAC5B,OAAO,EAAE,iBAAiB,CAAA;CAC3B;AAYD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;yEAEqE;IACrE,eAAe,EAAE,MAAM,CAAA;IACvB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAA;IACpB;;;6DAGyD;IACzD,cAAc,EAAE,MAAM,CAAA;IACtB;;gEAE4D;IAC5D,aAAa,EAAE,MAAM,CAAA;CACtB;AAOD,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAmFhE;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;AAkBtD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,IAAI,CAmBf;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,iFAAiF;IACjF,IAAI,EAAE,OAAO,CAAA;IACb,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAA;IACrB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAA;CACtB;AAmCD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,SAAS,EACpB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,aAAa,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GACvD,OAAO,CAAC,IAAI,CAAC,CA+Jf"}
|