@rubytech/create-realagent-code 0.1.593 → 0.1.595
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/lib/telegram-button-labels/dist/index.d.ts +19 -0
- package/payload/platform/lib/telegram-button-labels/dist/index.d.ts.map +1 -0
- package/payload/platform/lib/telegram-button-labels/dist/index.js +84 -0
- package/payload/platform/lib/telegram-button-labels/dist/index.js.map +1 -0
- package/payload/platform/lib/telegram-button-labels/src/__tests__/store.test.ts +67 -0
- package/payload/platform/lib/telegram-button-labels/src/index.ts +88 -0
- package/payload/platform/lib/telegram-button-labels/tsconfig.json +9 -0
- package/payload/platform/lib/telegram-button-labels/vitest.config.ts +9 -0
- package/payload/platform/package.json +3 -2
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +12 -3
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +10 -0
- package/payload/platform/plugins/cloudflare/PLUGIN.md +2 -0
- package/payload/platform/plugins/docs/references/internals.md +1 -1
- package/payload/platform/plugins/docs/references/telegram-guide.md +10 -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/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/templates/agents/public/IDENTITY.md +3 -3
- package/payload/server/server.js +543 -409
- 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/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,81 +0,0 @@
|
|
|
1
|
-
// Task 168 — per-tool emit assertion for memory-write.
|
|
2
|
-
import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
|
|
3
|
-
import { setupEmitCapture, makeMockSession } from "./_helpers/emit-capture.js";
|
|
4
|
-
const mockSession = makeMockSession();
|
|
5
|
-
vi.mock("../../lib/neo4j.js", () => ({
|
|
6
|
-
getSession: () => mockSession,
|
|
7
|
-
}));
|
|
8
|
-
vi.mock("../../lib/embeddings.js", () => ({
|
|
9
|
-
embed: vi.fn().mockResolvedValue([0.1, 0.2, 0.3]),
|
|
10
|
-
}));
|
|
11
|
-
vi.mock("../../lib/schema-validator.js", () => ({
|
|
12
|
-
validateWrite: vi.fn(),
|
|
13
|
-
}));
|
|
14
|
-
vi.mock("../../lib/graph-write-gate.js", () => ({
|
|
15
|
-
checkGraphWriteGate: vi.fn().mockResolvedValue({ ok: true }),
|
|
16
|
-
checkPropertyWriteGate: vi.fn().mockReturnValue({ ok: true }),
|
|
17
|
-
checkLabelWriteGate: vi.fn().mockReturnValue({ ok: true }),
|
|
18
|
-
COMPILED_TRUTH_MAX_CHARS: 2000,
|
|
19
|
-
}));
|
|
20
|
-
vi.mock("../../../../../../lib/graph-write/dist/index.js", () => ({
|
|
21
|
-
writeNodeWithEdges: vi.fn(),
|
|
22
|
-
injectConversationProvenance: vi
|
|
23
|
-
.fn()
|
|
24
|
-
.mockImplementation(async ({ relationships }) => relationships),
|
|
25
|
-
}));
|
|
26
|
-
import { memoryWrite } from "../memory-write.js";
|
|
27
|
-
import { writeNodeWithEdges } from "../../../../../../lib/graph-write/dist/index.js";
|
|
28
|
-
describe("memory-write — emit wrapper wired", () => {
|
|
29
|
-
let emit;
|
|
30
|
-
beforeEach(() => {
|
|
31
|
-
emit = setupEmitCapture();
|
|
32
|
-
// Use mockClear (not mockReset) so the helper's default
|
|
33
|
-
// implementation — empty `records` array — is preserved. memory-write
|
|
34
|
-
// now runs resolveActiveVertical via this session before validating;
|
|
35
|
-
// a wiped implementation would return undefined and crash that read.
|
|
36
|
-
mockSession.run.mockClear();
|
|
37
|
-
vi.mocked(writeNodeWithEdges).mockReset();
|
|
38
|
-
});
|
|
39
|
-
afterEach(() => emit.restore());
|
|
40
|
-
it("emits result=ok line on happy path", async () => {
|
|
41
|
-
vi.mocked(writeNodeWithEdges).mockResolvedValue({
|
|
42
|
-
nodeId: "4:abc:1",
|
|
43
|
-
labels: ["LocalBusiness"],
|
|
44
|
-
created: true,
|
|
45
|
-
});
|
|
46
|
-
await memoryWrite({
|
|
47
|
-
labels: ["LocalBusiness"],
|
|
48
|
-
properties: { name: "Smalleys" },
|
|
49
|
-
accountId: "acct-1",
|
|
50
|
-
scope: "shared",
|
|
51
|
-
relationships: [{ type: "BELONGS_TO", direction: "outgoing", targetNodeId: "4:owner:1" }],
|
|
52
|
-
createdBy: { agent: "system", session: "s1" },
|
|
53
|
-
validator: { schema: { brandVertical: null } },
|
|
54
|
-
});
|
|
55
|
-
expect(emit.fetchSpy).toHaveBeenCalledTimes(1);
|
|
56
|
-
const body = emit.captures()[0];
|
|
57
|
-
expect(body.tag).toBe("mcp:memory");
|
|
58
|
-
expect(body.level).toBe("info");
|
|
59
|
-
expect(body.line).toContain("memory-write");
|
|
60
|
-
expect(body.line).toContain("result=ok");
|
|
61
|
-
expect(body.line).toContain("elementId=4:abc:1");
|
|
62
|
-
});
|
|
63
|
-
it("emits result=error reason=invalid-input on missing scope", async () => {
|
|
64
|
-
await expect(memoryWrite({
|
|
65
|
-
labels: ["LocalBusiness"],
|
|
66
|
-
properties: { name: "Smalleys" },
|
|
67
|
-
accountId: "acct-1",
|
|
68
|
-
scope: "",
|
|
69
|
-
relationships: [],
|
|
70
|
-
createdBy: {},
|
|
71
|
-
validator: { schema: { brandVertical: null } },
|
|
72
|
-
})).rejects.toThrow(/scope is required/);
|
|
73
|
-
expect(emit.fetchSpy).toHaveBeenCalledTimes(1);
|
|
74
|
-
const body = emit.captures()[0];
|
|
75
|
-
expect(body.level).toBe("error");
|
|
76
|
-
expect(body.line).toContain("memory-write");
|
|
77
|
-
expect(body.line).toContain("result=error");
|
|
78
|
-
expect(body.line).toContain("reason=invalid-input");
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
//# sourceMappingURL=memory-write-emit.test.js.map
|
package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-write-emit.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-write-emit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* memory-classify MCP tool — classifies an unstructured document into typed
|
|
3
|
-
* sections via Claude Haiku, ready for memory-ingest to write as typed
|
|
4
|
-
* graph nodes.
|
|
5
|
-
*
|
|
6
|
-
* Pairs with memory-ingest-extract (which produces the text) and memory-ingest
|
|
7
|
-
* (which consumes the typed structure). The classifier output is a deterministic
|
|
8
|
-
* JSON shape — every `kind` is verified against the live ontology label set
|
|
9
|
-
* before reaching this tool's caller, so a hallucinated label can never reach
|
|
10
|
-
* the graph writer.
|
|
11
|
-
*/
|
|
12
|
-
import { type ClassifyResult } from "../lib/llm-classifier.js";
|
|
13
|
-
import type { LiveSchemaSource } from "../lib/live-schema-source.js";
|
|
14
|
-
export interface MemoryClassifyParams {
|
|
15
|
-
accountId: string;
|
|
16
|
-
/**
|
|
17
|
-
* The attachmentId from memory-ingest-extract — its cache holds the
|
|
18
|
-
* extracted text. The classifier never re-reads the file from disk.
|
|
19
|
-
*/
|
|
20
|
-
attachmentId: string;
|
|
21
|
-
/**
|
|
22
|
-
* Anchor description — a short human sentence the classifier reads to
|
|
23
|
-
* decide which ontology edges fit. Examples:
|
|
24
|
-
* "subject = UserProfile (the account owner)"
|
|
25
|
-
* "subject = LocalBusiness (the operator's business)"
|
|
26
|
-
* "subject = Person {name: 'Jane Smith'} (a third party)"
|
|
27
|
-
*/
|
|
28
|
-
anchorDescription: string;
|
|
29
|
-
/** Live ∪ declared label source — used to verify every classifier `kind`. */
|
|
30
|
-
liveSchemaSource: LiveSchemaSource;
|
|
31
|
-
}
|
|
32
|
-
export type MemoryClassifyResult = ClassifyResult;
|
|
33
|
-
export declare function memoryClassify(params: MemoryClassifyParams): Promise<MemoryClassifyResult>;
|
|
34
|
-
//# sourceMappingURL=memory-classify.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-classify.d.ts","sourceRoot":"","sources":["../../src/tools/memory-classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC;AA4BlD,wBAAsB,cAAc,CAClC,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAK/B"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* memory-classify MCP tool — classifies an unstructured document into typed
|
|
3
|
-
* sections via Claude Haiku, ready for memory-ingest to write as typed
|
|
4
|
-
* graph nodes.
|
|
5
|
-
*
|
|
6
|
-
* Pairs with memory-ingest-extract (which produces the text) and memory-ingest
|
|
7
|
-
* (which consumes the typed structure). The classifier output is a deterministic
|
|
8
|
-
* JSON shape — every `kind` is verified against the live ontology label set
|
|
9
|
-
* before reaching this tool's caller, so a hallucinated label can never reach
|
|
10
|
-
* the graph writer.
|
|
11
|
-
*/
|
|
12
|
-
import { extractCache } from "./memory-ingest-extract.js";
|
|
13
|
-
import { classifyDocument } from "../lib/llm-classifier.js";
|
|
14
|
-
import { withWriteEvent } from "../lib/log-ingest.js";
|
|
15
|
-
/**
|
|
16
|
-
* Natural-edge map pasted into the classifier prompt. Mirrors
|
|
17
|
-
* schema-base.md "Section kinds" table. Every section becomes a `:Section`
|
|
18
|
-
* node with the listed secondary label (e.g. `:Section:Position`).
|
|
19
|
-
*
|
|
20
|
-
* For identity kinds: anchorEdge points from the document subject to the
|
|
21
|
-
* multi-labeled section node. For structural and contract-clause kinds:
|
|
22
|
-
* anchorEdge is null — the section is anchored only via HAS_SECTION + NEXT.
|
|
23
|
-
* Special-case extras for Parties + Definitions are emitted via documentEdges
|
|
24
|
-
* and section-level related entries.
|
|
25
|
-
*/
|
|
26
|
-
const NATURAL_EDGE_MAP = `Section kind | Anchor edge (direction = from-anchor unless noted)
|
|
27
|
-
Position (identity) | (anchor:UserProfile)-[:HAS_POSITION]->(:Section:Position); section -[:AT]-> related:Organization (merge:true)
|
|
28
|
-
Education (identity) | (anchor:UserProfile)-[:ATTENDED {degree, startDate, endDate}]->(:Section:Education); section -[:ATTENDED]-> related:Organization {organizationCategory:'educational'} (merge:true)
|
|
29
|
-
Credential (identity) | (anchor:UserProfile)-[:HOLDS]->(:Section:Credential)
|
|
30
|
-
Skill (identity) | (anchor:UserProfile)-[:HAS_SKILL]->(:Section:Skill)
|
|
31
|
-
Biography (identity) | (anchor:UserProfile)-[:DESCRIBED_BY]->(:Section:Biography)
|
|
32
|
-
Project (standalone, not :Section) | (anchor:UserProfile)-[:CREATED]->(:Project); optional (:Project)-[:UNDER]->related:Organization (merge:true)
|
|
33
|
-
Preface, Abstract, Introduction, TableOfContents, Chapter, Conclusion, Appendix, Bibliography, Glossary, Acknowledgments (structural)
|
|
34
|
-
| anchorEdge: null — anchored only via (:KnowledgeDocument)-[:HAS_SECTION]->(:Section:<Kind>) + (:Section)-[:NEXT]->(:Section)
|
|
35
|
-
Parties, Recitals, Definitions, Scope, Term, Payment, Confidentiality, IntellectualProperty, Warranties, Indemnification, Liability, Termination, GoverningLaw, ForceMajeure, Notices, EntireAgreement, Amendment, Assignment, Severability, Signatures (contract-clause)
|
|
36
|
-
| anchorEdge: null — anchored via HAS_SECTION + NEXT; for Parties section, additionally emit top-level documentEdges PARTY entries; for Definitions, emit related DefinedTerm nodes with edge type DEFINES (direction outgoing from the Definitions section).
|
|
37
|
-
Other (label fallback) | anchorEdge: null — section-kind closure miss; you MUST also include 'classifierReason' (one-line about-what)
|
|
38
|
-
|
|
39
|
-
Set "anchorEdge" to null for any kind whose row says "anchorEdge: null". For others, emit { "type": "<edge>", "direction": "from-anchor", "properties": { ... edge properties if any } }.`;
|
|
40
|
-
export async function memoryClassify(params) {
|
|
41
|
-
return withWriteEvent({ tool: "memory-classify", accountId: params.accountId, name: params.attachmentId }, () => memoryClassifyImpl(params));
|
|
42
|
-
}
|
|
43
|
-
async function memoryClassifyImpl(params) {
|
|
44
|
-
const { accountId, attachmentId, anchorDescription, liveSchemaSource } = params;
|
|
45
|
-
const cached = extractCache.get(attachmentId);
|
|
46
|
-
if (!cached) {
|
|
47
|
-
throw new Error(`No cached extract found for attachment "${attachmentId}". ` +
|
|
48
|
-
`Call memory-ingest-extract first.`);
|
|
49
|
-
}
|
|
50
|
-
// Live ∪ declared labels — the gate the validator uses for memory-write.
|
|
51
|
-
// The classifier sees the same set so its output and the validator agree
|
|
52
|
-
// by construction.
|
|
53
|
-
const ontologyLabels = liveSchemaSource.recognisedLabels();
|
|
54
|
-
return classifyDocument({
|
|
55
|
-
accountId,
|
|
56
|
-
anchorDescription,
|
|
57
|
-
ontologyLabels,
|
|
58
|
-
naturalEdgeMap: NATURAL_EDGE_MAP,
|
|
59
|
-
documentText: cached.text,
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=memory-classify.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-classify.js","sourceRoot":"","sources":["../../src/tools/memory-classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAuB,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAuBtD;;;;;;;;;;GAUG;AACH,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;0LAaiK,CAAC;AAE3L,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA4B;IAE5B,OAAO,cAAc,CACnB,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,EACnF,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,MAA4B;IAE5B,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;IAEhF,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,2CAA2C,YAAY,KAAK;YAC5D,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,mBAAmB;IACnB,MAAM,cAAc,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;IAE3D,OAAO,gBAAgB,CAAC;QACtB,SAAS;QACT,iBAAiB;QACjB,cAAc;QACd,cAAc,EAAE,gBAAgB;QAChC,YAAY,EAAE,MAAM,CAAC,IAAI;KAC1B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* memory-rank — LLM-reasoned entity ranking.
|
|
3
|
-
*
|
|
4
|
-
* Flow:
|
|
5
|
-
* 1. memorySearch(..., limit = candidatePoolSize) to retrieve candidates
|
|
6
|
-
* using the existing hybrid vector+BM25 pipeline and scope/agent filters.
|
|
7
|
-
* 2. rankCandidates(candidates, criteria, accountId) — passes the pool to
|
|
8
|
-
* Claude Haiku with a sandboxed ranking prompt, parses the response, and
|
|
9
|
-
* filters any hallucinated nodeIds.
|
|
10
|
-
* 3. Merge reasoning back onto the original memory-search results and slice
|
|
11
|
-
* to `limit`.
|
|
12
|
-
* 4. On LLM unavailability (no key, API error, malformed response, etc.),
|
|
13
|
-
* fall back to the unranked memory-search results prefixed with a
|
|
14
|
-
* "[Ranking unavailable: <reason>]" notice. Degraded success — not an
|
|
15
|
-
* error response. This makes the failure visible to the agent so it can
|
|
16
|
-
* relay to the user.
|
|
17
|
-
*/
|
|
18
|
-
export interface RankParams {
|
|
19
|
-
query: string;
|
|
20
|
-
criteria: string;
|
|
21
|
-
labels?: string[];
|
|
22
|
-
accountId: string;
|
|
23
|
-
limit?: number;
|
|
24
|
-
candidatePoolSize?: number;
|
|
25
|
-
expandHops?: number;
|
|
26
|
-
allowedScopes?: string[];
|
|
27
|
-
keywords?: string[];
|
|
28
|
-
keywordMatch?: "any" | "all";
|
|
29
|
-
agentSlug?: string;
|
|
30
|
-
/** Passed through to memory-search so reactive knowledge subscriptions
|
|
31
|
-
* (KNOWLEDGE_KEYWORDS env var on public agents) expand the candidate pool
|
|
32
|
-
* the same way they do for memory-search. Omitting this would silently
|
|
33
|
-
* give memory-rank a narrower candidate pool than memory-search for the
|
|
34
|
-
* same account. */
|
|
35
|
-
keywordSubscriptions?: string[];
|
|
36
|
-
}
|
|
37
|
-
export interface RankedResult {
|
|
38
|
-
nodeId: string;
|
|
39
|
-
labels: string[];
|
|
40
|
-
properties: Record<string, unknown>;
|
|
41
|
-
score: number;
|
|
42
|
-
related: Array<{
|
|
43
|
-
relationship: string;
|
|
44
|
-
direction: string;
|
|
45
|
-
labels: string[];
|
|
46
|
-
properties: Record<string, unknown>;
|
|
47
|
-
}>;
|
|
48
|
-
rank?: number;
|
|
49
|
-
reasoning?: string;
|
|
50
|
-
}
|
|
51
|
-
export interface RankResponse {
|
|
52
|
-
results: RankedResult[];
|
|
53
|
-
/** When present, ranking failed and results are in original memory-search score order. */
|
|
54
|
-
fallbackReason?: string;
|
|
55
|
-
/** Number of candidates the LLM invented that were filtered out. */
|
|
56
|
-
hallucinated: number;
|
|
57
|
-
/** Number of candidates returned by memory-search before ranking. */
|
|
58
|
-
candidatePoolSize: number;
|
|
59
|
-
}
|
|
60
|
-
export declare function memoryRank(params: RankParams): Promise<RankResponse>;
|
|
61
|
-
//# sourceMappingURL=memory-rank.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-rank.d.ts","sourceRoot":"","sources":["../../src/tools/memory-rank.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;uBAImB;IACnB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAeD,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAqF1E"}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* memory-rank — LLM-reasoned entity ranking.
|
|
3
|
-
*
|
|
4
|
-
* Flow:
|
|
5
|
-
* 1. memorySearch(..., limit = candidatePoolSize) to retrieve candidates
|
|
6
|
-
* using the existing hybrid vector+BM25 pipeline and scope/agent filters.
|
|
7
|
-
* 2. rankCandidates(candidates, criteria, accountId) — passes the pool to
|
|
8
|
-
* Claude Haiku with a sandboxed ranking prompt, parses the response, and
|
|
9
|
-
* filters any hallucinated nodeIds.
|
|
10
|
-
* 3. Merge reasoning back onto the original memory-search results and slice
|
|
11
|
-
* to `limit`.
|
|
12
|
-
* 4. On LLM unavailability (no key, API error, malformed response, etc.),
|
|
13
|
-
* fall back to the unranked memory-search results prefixed with a
|
|
14
|
-
* "[Ranking unavailable: <reason>]" notice. Degraded success — not an
|
|
15
|
-
* error response. This makes the failure visible to the agent so it can
|
|
16
|
-
* relay to the user.
|
|
17
|
-
*/
|
|
18
|
-
import { memorySearch } from "./memory-search.js";
|
|
19
|
-
import { rankCandidates } from "../lib/llm-ranker.js";
|
|
20
|
-
// ---------------------------------------------------------------------------
|
|
21
|
-
// Defaults
|
|
22
|
-
// ---------------------------------------------------------------------------
|
|
23
|
-
const DEFAULT_LIMIT = 10;
|
|
24
|
-
const DEFAULT_POOL = 20;
|
|
25
|
-
const MAX_POOL = 50;
|
|
26
|
-
const DEFAULT_EXPAND = 1;
|
|
27
|
-
// ---------------------------------------------------------------------------
|
|
28
|
-
// Main entry point
|
|
29
|
-
// ---------------------------------------------------------------------------
|
|
30
|
-
export async function memoryRank(params) {
|
|
31
|
-
const limit = Math.max(1, Math.min(params.limit ?? DEFAULT_LIMIT, MAX_POOL));
|
|
32
|
-
const pool = Math.max(1, Math.min(params.candidatePoolSize ?? DEFAULT_POOL, MAX_POOL));
|
|
33
|
-
const expandHops = params.expandHops ?? DEFAULT_EXPAND;
|
|
34
|
-
// --- Step 1: retrieve candidates via memory-search ---
|
|
35
|
-
const candidates = await memorySearch({
|
|
36
|
-
query: params.query,
|
|
37
|
-
labels: params.labels,
|
|
38
|
-
accountId: params.accountId,
|
|
39
|
-
limit: pool,
|
|
40
|
-
expandHops,
|
|
41
|
-
allowedScopes: params.allowedScopes,
|
|
42
|
-
keywords: params.keywords,
|
|
43
|
-
keywordMatch: params.keywordMatch,
|
|
44
|
-
agentSlug: params.agentSlug,
|
|
45
|
-
keywordSubscriptions: params.keywordSubscriptions,
|
|
46
|
-
});
|
|
47
|
-
process.stderr.write(`[memory-rank] [${params.accountId}] candidates=${candidates.length} (requested pool=${pool}, limit=${limit})\n`);
|
|
48
|
-
if (candidates.length === 0) {
|
|
49
|
-
return {
|
|
50
|
-
results: [],
|
|
51
|
-
hallucinated: 0,
|
|
52
|
-
candidatePoolSize: 0,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
// --- Step 2: LLM ranking ---
|
|
56
|
-
const rankCandidatePayload = candidates.map((c) => ({
|
|
57
|
-
nodeId: c.nodeId,
|
|
58
|
-
labels: c.labels,
|
|
59
|
-
properties: c.properties,
|
|
60
|
-
related: c.related,
|
|
61
|
-
}));
|
|
62
|
-
const rankResult = await rankCandidates(rankCandidatePayload, params.criteria, params.accountId);
|
|
63
|
-
// --- Step 3a: error path — return original memory-search order unranked ---
|
|
64
|
-
if (rankResult.kind === "error") {
|
|
65
|
-
const sliced = candidates.slice(0, limit).map((c) => ({
|
|
66
|
-
nodeId: c.nodeId,
|
|
67
|
-
labels: c.labels,
|
|
68
|
-
properties: c.properties,
|
|
69
|
-
score: c.score,
|
|
70
|
-
related: c.related,
|
|
71
|
-
}));
|
|
72
|
-
return {
|
|
73
|
-
results: sliced,
|
|
74
|
-
fallbackReason: rankResult.reason,
|
|
75
|
-
hallucinated: 0,
|
|
76
|
-
candidatePoolSize: candidates.length,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
// --- Step 3b: ranked path — merge reasoning back onto memory-search results ---
|
|
80
|
-
const candidateByNodeId = new Map(candidates.map((c) => [c.nodeId, c]));
|
|
81
|
-
const rankedResults = [];
|
|
82
|
-
for (const ranking of rankResult.rankings) {
|
|
83
|
-
const candidate = candidateByNodeId.get(ranking.nodeId);
|
|
84
|
-
if (!candidate)
|
|
85
|
-
continue; // defensive — should never hit since llm-ranker already filtered
|
|
86
|
-
rankedResults.push({
|
|
87
|
-
nodeId: candidate.nodeId,
|
|
88
|
-
labels: candidate.labels,
|
|
89
|
-
properties: candidate.properties,
|
|
90
|
-
score: candidate.score,
|
|
91
|
-
related: candidate.related,
|
|
92
|
-
rank: ranking.rank,
|
|
93
|
-
reasoning: ranking.reasoning,
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
return {
|
|
97
|
-
results: rankedResults.slice(0, limit),
|
|
98
|
-
hallucinated: rankResult.hallucinated,
|
|
99
|
-
candidatePoolSize: candidates.length,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=memory-rank.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-rank.js","sourceRoot":"","sources":["../../src/tools/memory-rank.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAsB,MAAM,sBAAsB,CAAC;AAmD1E,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAkB;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,IAAI,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvF,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,cAAc,CAAC;IAEvD,wDAAwD;IACxD,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC;QACpC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,IAAI;QACX,UAAU;QACV,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;KAClD,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kBAAkB,MAAM,CAAC,SAAS,gBAAgB,UAAU,CAAC,MAAM,oBAAoB,IAAI,WAAW,KAAK,KAAK,CACjH,CAAC;IAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,CAAC;YACf,iBAAiB,EAAE,CAAC;SACrB,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,MAAM,oBAAoB,GAAoB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,OAAO,EAAE,CAAC,CAAC,OAAO;KACnB,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAG,MAAM,cAAc,CACrC,oBAAoB,EACpB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,SAAS,CACjB,CAAC;IAEF,6EAA6E;IAC7E,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC,CAAC;QACJ,OAAO;YACL,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,UAAU,CAAC,MAAM;YACjC,YAAY,EAAE,CAAC;YACf,iBAAiB,EAAE,UAAU,CAAC,MAAM;SACrC,CAAC;IACJ,CAAC;IAED,iFAAiF;IACjF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAmB,EAAE,CAAC;IAEzC,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS;YAAE,SAAS,CAAC,iEAAiE;QAC3F,aAAa,CAAC,IAAI,CAAC;YACjB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;QACtC,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,iBAAiB,EAAE,UAAU,CAAC,MAAM;KACrC,CAAC;AACJ,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
interface SignalsRecentParams {
|
|
2
|
-
accountId: string;
|
|
3
|
-
/** Hours back from now. Default 24. Capped at 720h (30 days) — beyond that the read becomes a graph crawl, not a diagnostic. */
|
|
4
|
-
windowHours?: number;
|
|
5
|
-
/** Max rows returned. Default 50, max 200. */
|
|
6
|
-
limit?: number;
|
|
7
|
-
}
|
|
8
|
-
interface MentionRow {
|
|
9
|
-
kind: "mention";
|
|
10
|
-
entityLabel: string;
|
|
11
|
-
entityName: string;
|
|
12
|
-
conversationId: string;
|
|
13
|
-
messageId: string;
|
|
14
|
-
messageExcerpt: string;
|
|
15
|
-
observedAt: string;
|
|
16
|
-
}
|
|
17
|
-
interface IdeaRow {
|
|
18
|
-
kind: "idea";
|
|
19
|
-
conversationId: string;
|
|
20
|
-
ideaBody: string;
|
|
21
|
-
observedAt: string;
|
|
22
|
-
}
|
|
23
|
-
type SignalRow = MentionRow | IdeaRow;
|
|
24
|
-
interface SignalsRecentResult {
|
|
25
|
-
rows: SignalRow[];
|
|
26
|
-
windowHours: number;
|
|
27
|
-
counts: {
|
|
28
|
-
mentions: number;
|
|
29
|
-
ideas: number;
|
|
30
|
-
total: number;
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
export declare function memorySignalsRecent(params: SignalsRecentParams): Promise<SignalsRecentResult>;
|
|
34
|
-
export {};
|
|
35
|
-
//# sourceMappingURL=memory-signals-recent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-signals-recent.d.ts","sourceRoot":"","sources":["../../src/tools/memory-signals-recent.ts"],"names":[],"mappings":"AAiBA,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,gIAAgI;IAChI,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAEtC,UAAU,mBAAmB;IAC3B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAOD,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CA8E9B"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { getSession } from "../lib/neo4j.js";
|
|
2
|
-
import { notTrashed } from "../../../../../lib/graph-trash/dist/index.js";
|
|
3
|
-
const DEFAULT_WINDOW_HOURS = 24;
|
|
4
|
-
const MAX_WINDOW_HOURS = 720;
|
|
5
|
-
const DEFAULT_LIMIT = 50;
|
|
6
|
-
const MAX_LIMIT = 200;
|
|
7
|
-
export async function memorySignalsRecent(params) {
|
|
8
|
-
const { accountId } = params;
|
|
9
|
-
const windowHours = Math.min(Math.max(params.windowHours ?? DEFAULT_WINDOW_HOURS, 1), MAX_WINDOW_HOURS);
|
|
10
|
-
const limit = Math.min(Math.max(params.limit ?? DEFAULT_LIMIT, 1), MAX_LIMIT);
|
|
11
|
-
const session = getSession();
|
|
12
|
-
try {
|
|
13
|
-
// Mentions: :Message-[:MENTIONS]->Entity edges written by signal-detector
|
|
14
|
-
// since the cutoff. Excerpt is the first 120 chars of the message body
|
|
15
|
-
// so the operator sees enough to recognise context without a separate read.
|
|
16
|
-
const mentionsResult = await session.run(`MATCH (m:Message)-[r:MENTIONS]->(e)
|
|
17
|
-
WHERE m.accountId = $accountId
|
|
18
|
-
AND r.createdByAgent = 'signal-detector'
|
|
19
|
-
AND r.createdAt > datetime() - duration({hours: $windowHours})
|
|
20
|
-
AND ${notTrashed("m")}
|
|
21
|
-
AND ${notTrashed("e")}
|
|
22
|
-
RETURN labels(e) AS entityLabels,
|
|
23
|
-
coalesce(e.name, e.title, '<unnamed>') AS entityName,
|
|
24
|
-
m.conversationId AS conversationId,
|
|
25
|
-
elementId(m) AS messageId,
|
|
26
|
-
substring(coalesce(m.body, m.text, ''), 0, 120) AS messageExcerpt,
|
|
27
|
-
toString(r.createdAt) AS observedAt
|
|
28
|
-
ORDER BY r.createdAt DESC
|
|
29
|
-
LIMIT $limit`, { accountId, windowHours, limit });
|
|
30
|
-
const mentions = mentionsResult.records.map((rec) => ({
|
|
31
|
-
kind: "mention",
|
|
32
|
-
entityLabel: (rec.get("entityLabels") ?? []).find((l) => l !== "Trashed") ?? "Unknown",
|
|
33
|
-
entityName: String(rec.get("entityName") ?? ""),
|
|
34
|
-
conversationId: String(rec.get("conversationId") ?? ""),
|
|
35
|
-
messageId: String(rec.get("messageId") ?? ""),
|
|
36
|
-
messageExcerpt: String(rec.get("messageExcerpt") ?? ""),
|
|
37
|
-
observedAt: String(rec.get("observedAt") ?? ""),
|
|
38
|
-
}));
|
|
39
|
-
// Ideas: :Idea nodes written by signal-detector since the cutoff.
|
|
40
|
-
const ideasResult = await session.run(`MATCH (i:Idea)
|
|
41
|
-
WHERE i.accountId = $accountId
|
|
42
|
-
AND i.createdByAgent = 'signal-detector'
|
|
43
|
-
AND i.createdAt > datetime() - duration({hours: $windowHours})
|
|
44
|
-
AND ${notTrashed("i")}
|
|
45
|
-
RETURN coalesce(i.conversationId, '<none>') AS conversationId,
|
|
46
|
-
coalesce(i.body, '') AS ideaBody,
|
|
47
|
-
toString(i.createdAt) AS observedAt
|
|
48
|
-
ORDER BY i.createdAt DESC
|
|
49
|
-
LIMIT $limit`, { accountId, windowHours, limit });
|
|
50
|
-
const ideas = ideasResult.records.map((rec) => ({
|
|
51
|
-
kind: "idea",
|
|
52
|
-
conversationId: String(rec.get("conversationId") ?? ""),
|
|
53
|
-
ideaBody: String(rec.get("ideaBody") ?? ""),
|
|
54
|
-
observedAt: String(rec.get("observedAt") ?? ""),
|
|
55
|
-
}));
|
|
56
|
-
// Interleaved by observedAt desc so the operator scans a single
|
|
57
|
-
// chronological feed instead of two separate sections.
|
|
58
|
-
const rows = [...mentions, ...ideas].sort((a, b) => a.observedAt < b.observedAt ? 1 : a.observedAt > b.observedAt ? -1 : 0);
|
|
59
|
-
return {
|
|
60
|
-
rows: rows.slice(0, limit),
|
|
61
|
-
windowHours,
|
|
62
|
-
counts: {
|
|
63
|
-
mentions: mentions.length,
|
|
64
|
-
ideas: ideas.length,
|
|
65
|
-
total: mentions.length + ideas.length,
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
finally {
|
|
70
|
-
await session.close();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=memory-signals-recent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-signals-recent.js","sourceRoot":"","sources":["../../src/tools/memory-signals-recent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP tool wrapper for the typed-edge pass.
|
|
3
|
-
*
|
|
4
|
-
* Called by `database-operator` (Task-spawned by admin during an on-demand
|
|
5
|
-
* `/insight` pass). Admin does not call this tool directly — it is not in
|
|
6
|
-
* `ADMIN_CORE_TOOLS`. Backfill invokes the underlying `runTypedEdgePass`
|
|
7
|
-
* via the CLI script, bypassing this tool.
|
|
8
|
-
*
|
|
9
|
-
* Returns the pass counters so database-operator can hand them back to
|
|
10
|
-
* admin for its insight-pass summary.
|
|
11
|
-
*/
|
|
12
|
-
import type { Session } from "neo4j-driver";
|
|
13
|
-
import { type TypedEdgePassResult } from "../lib/typed-edge-pass.js";
|
|
14
|
-
export interface MemoryTypedEdgePassArgs {
|
|
15
|
-
/**
|
|
16
|
-
* Lower bound on `node.updatedAt`. The admin agent passes the session
|
|
17
|
-
* start timestamp from the insight-pass prompt. Backfill mode passes
|
|
18
|
-
* null (handled by the CLI script, not this tool).
|
|
19
|
-
*/
|
|
20
|
-
sinceIso: string;
|
|
21
|
-
/**
|
|
22
|
-
* Optional conversation id stamped onto the createdBy provenance of
|
|
23
|
-
* MERGEd edges. Admin passes its own conversation id; if absent, the
|
|
24
|
-
* env var fallback is used.
|
|
25
|
-
*/
|
|
26
|
-
sessionId?: string;
|
|
27
|
-
}
|
|
28
|
-
export declare function memoryTypedEdgePass(args: MemoryTypedEdgePassArgs, session: Session, accountId: string): Promise<TypedEdgePassResult>;
|
|
29
|
-
//# sourceMappingURL=memory-typed-edge-pass.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-typed-edge-pass.d.ts","sourceRoot":"","sources":["../../src/tools/memory-typed-edge-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAoB,KAAK,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,uBAAuB,EAC7B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAQ9B"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP tool wrapper for the typed-edge pass.
|
|
3
|
-
*
|
|
4
|
-
* Called by `database-operator` (Task-spawned by admin during an on-demand
|
|
5
|
-
* `/insight` pass). Admin does not call this tool directly — it is not in
|
|
6
|
-
* `ADMIN_CORE_TOOLS`. Backfill invokes the underlying `runTypedEdgePass`
|
|
7
|
-
* via the CLI script, bypassing this tool.
|
|
8
|
-
*
|
|
9
|
-
* Returns the pass counters so database-operator can hand them back to
|
|
10
|
-
* admin for its insight-pass summary.
|
|
11
|
-
*/
|
|
12
|
-
import { runTypedEdgePass } from "../lib/typed-edge-pass.js";
|
|
13
|
-
export async function memoryTypedEdgePass(args, session, accountId) {
|
|
14
|
-
const sessionId = args.sessionId ?? process.env.SESSION_ID ?? null;
|
|
15
|
-
return runTypedEdgePass({
|
|
16
|
-
session,
|
|
17
|
-
accountId,
|
|
18
|
-
sinceIso: args.sinceIso,
|
|
19
|
-
sessionId,
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=memory-typed-edge-pass.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-typed-edge-pass.js","sourceRoot":"","sources":["../../src/tools/memory-typed-edge-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,gBAAgB,EAA4B,MAAM,2BAA2B,CAAC;AAiBvF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAA6B,EAC7B,OAAgB,EAChB,SAAiB;IAEjB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC;IACnE,OAAO,gBAAgB,CAAC;QACtB,OAAO;QACP,SAAS;QACT,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS;KACV,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session-retrospective skip-rate visibility tool.
|
|
3
|
-
*
|
|
4
|
-
* Called by the admin agent at session start. Returns the ratio of recent
|
|
5
|
-
* sessions that closed without calling `session-retrospective-mark-complete`
|
|
6
|
-
* — sessions where the typed-edge pass, learnings pass, and SOUL.md pass
|
|
7
|
-
* never ran. The admin agent surfaces the result to the operator if the
|
|
8
|
-
* rate is non-zero so closing via Sidebar Archive / tab-close becomes a
|
|
9
|
-
* visible cost rather than a silent one.
|
|
10
|
-
*
|
|
11
|
-
* Mechanism: count `:Conversation` nodes for this account in the recent
|
|
12
|
-
* window; count those whose corresponding session log contains the
|
|
13
|
-
* sentinel tool-use of `session-retrospective-mark-complete`. The ratio
|
|
14
|
-
* is the skip rate. Pending nodes (prose with `updatedAt` later than the
|
|
15
|
-
* most-recent completed retrospective) carry the deferred typed-edge work
|
|
16
|
-
* that will land at the next /end.
|
|
17
|
-
*/
|
|
18
|
-
import { type Session } from "neo4j-driver";
|
|
19
|
-
export interface SessionSkipRateArgs {
|
|
20
|
-
/** Window size — number of most-recent sessions to inspect. Default 10. */
|
|
21
|
-
windowSize?: number;
|
|
22
|
-
}
|
|
23
|
-
export interface SessionSkipRateResult {
|
|
24
|
-
windowSessions: number;
|
|
25
|
-
completedRetrospectives: number;
|
|
26
|
-
skipRate: number;
|
|
27
|
-
oldestPendingSinceIso: string | null;
|
|
28
|
-
}
|
|
29
|
-
export declare function sessionRetrospectiveSkipRate(args: SessionSkipRateArgs, session: Session, accountId: string): Promise<SessionSkipRateResult>;
|
|
30
|
-
//# sourceMappingURL=session-retrospective-skip-rate.d.ts.map
|
package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-retrospective-skip-rate.d.ts","sourceRoot":"","sources":["../../src/tools/session-retrospective-skip-rate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAO,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC,CAuHhC"}
|