@monoes/monomindcli 2.5.1 → 2.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/design/design-monodesign.md +6 -6
- package/.claude/agents/github/repo-architect.md +3 -3
- package/.claude/agents/github/sync-coordinator.md +2 -2
- package/.claude/agents/specialists/integration-architect.md +4 -4
- package/.claude/commands/github/repo-architect.md +4 -4
- package/.claude/commands/github/sync-coordinator.md +2 -2
- package/.claude/commands/mastermind/_repeat.md +4 -4
- package/.claude/commands/mastermind/approvev1.md +4 -4
- package/.claude/commands/mastermind/architect.md +6 -6
- package/.claude/commands/mastermind/autodev.md +5 -5
- package/.claude/commands/mastermind/brain.md +2 -2
- package/.claude/commands/mastermind/build.md +6 -6
- package/.claude/commands/mastermind/code-review.md +2 -2
- package/.claude/commands/mastermind/content.md +6 -6
- package/.claude/commands/mastermind/createorg.md +4 -4
- package/.claude/commands/mastermind/createtask.md +3 -3
- package/.claude/commands/mastermind/debug.md +5 -5
- package/.claude/commands/mastermind/design.md +5 -5
- package/.claude/commands/mastermind/do.md +2 -2
- package/.claude/commands/mastermind/execute.md +5 -5
- package/.claude/commands/mastermind/finance.md +6 -6
- package/.claude/commands/mastermind/finish.md +5 -5
- package/.claude/commands/mastermind/idea.md +6 -6
- package/.claude/commands/mastermind/ideate.md +5 -5
- package/.claude/commands/mastermind/improve.md +6 -6
- package/.claude/commands/mastermind/marketing.md +6 -6
- package/.claude/commands/mastermind/master.md +54 -54
- package/.claude/commands/mastermind/ops.md +6 -6
- package/.claude/commands/mastermind/orgs.md +2 -2
- package/.claude/commands/mastermind/orgstatus.md +2 -2
- package/.claude/commands/mastermind/plan.md +5 -5
- package/.claude/commands/mastermind/receive-review.md +5 -5
- package/.claude/commands/mastermind/release.md +6 -6
- package/.claude/commands/mastermind/research.md +6 -6
- package/.claude/commands/mastermind/review.md +6 -6
- package/.claude/commands/mastermind/runorg.md +4 -4
- package/.claude/commands/mastermind/runorgv1.md +5 -5
- package/.claude/commands/mastermind/sales.md +6 -6
- package/.claude/commands/mastermind/skill-builder.md +5 -5
- package/.claude/commands/mastermind/stoporg.md +3 -3
- package/.claude/commands/mastermind/taskdev.md +5 -5
- package/.claude/commands/mastermind/tdd.md +5 -5
- package/.claude/commands/mastermind/techport.md +5 -5
- package/.claude/commands/mastermind/verify.md +5 -5
- package/.claude/commands/mastermind/worktree.md +5 -5
- package/.claude/helpers/control-start.cjs +30 -0
- package/.claude/helpers/event-logger.cjs +2 -2
- package/.claude/helpers/extras-registry.json +1 -1
- package/.claude/helpers/handlers/agent-start-handler.cjs +2 -2
- package/.claude/helpers/handlers/edit-handler.cjs +2 -2
- package/.claude/helpers/handlers/gates-handler.cjs +1 -1
- package/.claude/helpers/handlers/route-handler.cjs +1 -1
- package/.claude/helpers/handlers/session-handler.cjs +1 -1
- package/.claude/helpers/handlers/session-restore-handler.cjs +11 -11
- package/.claude/helpers/handlers/task-handler.cjs +2 -2
- package/.claude/helpers/hook-handler.cjs +8 -8
- package/.claude/helpers/utils/monograph.cjs +44 -12
- package/.claude/skills/{mastermind-skills/access.md → mastermind-access/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/activity.md → mastermind-activity/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/adapter-manager.md → mastermind-adapter-manager/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/adapters.md → mastermind-adapters/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/agent-detail.md → mastermind-agent-detail/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/agents.md → mastermind-agents/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/approval-detail.md → mastermind-approval-detail/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/approvev1.md → mastermind-approvev1/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/architect.md → mastermind-architect/SKILL.md} +7 -7
- package/.claude/skills/{mastermind-skills/autodev.md → mastermind-autodev/SKILL.md} +10 -10
- package/.claude/skills/{mastermind-skills/backup.md → mastermind-backup/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/bootstrap.md → mastermind-bootstrap/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/budgets.md → mastermind-budgets/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/build.md → mastermind-build/SKILL.md} +5 -5
- package/.claude/skills/{mastermind-skills/companies.md → mastermind-companies/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/content.md → mastermind-content/SKILL.md} +5 -5
- package/.claude/skills/{mastermind-skills/costs.md → mastermind-costs/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/createorg.md → mastermind-createorg/SKILL.md} +3 -3
- package/.claude/skills/{mastermind-skills/debug.md → mastermind-debug/SKILL.md} +4 -4
- package/.claude/skills/{mastermind-skills/_delegation.md → mastermind-delegation/SKILL.md} +1 -1
- package/.claude/skills/{mastermind-skills/design.md → mastermind-design/SKILL.md} +9 -9
- package/.claude/skills/{mastermind-skills/diagnose.md → mastermind-diagnose/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/env.md → mastermind-env/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/environments.md → mastermind-environments/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/execute.md → mastermind-execute/SKILL.md} +10 -10
- package/.claude/skills/{mastermind-skills/export.md → mastermind-export/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/finance.md → mastermind-finance/SKILL.md} +5 -5
- package/.claude/skills/{mastermind-skills/goal-detail.md → mastermind-goal-detail/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/goals.md → mastermind-goals/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/heartbeatv1.md → mastermind-heartbeatv1/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/idea.md → mastermind-idea/SKILL.md} +7 -7
- package/.claude/skills/{mastermind-skills/import.md → mastermind-import/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/inbox.md → mastermind-inbox/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/instance.md → mastermind-instance/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/instance-settings.md → mastermind-instance-settings/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/invite-landing.md → mastermind-invite-landing/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/invites.md → mastermind-invites/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/issue-detail.md → mastermind-issue-detail/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/issues.md → mastermind-issues/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/join-queue.md → mastermind-join-queue/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/liveness.md → mastermind-liveness/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/marketing.md → mastermind-marketing/SKILL.md} +8 -8
- package/.claude/skills/{mastermind-skills/memory.md → mastermind-memory/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/monitor.md → mastermind-monitor/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/my-issues.md → mastermind-my-issues/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/new-agent.md → mastermind-new-agent/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/ops.md → mastermind-ops/SKILL.md} +5 -5
- package/.claude/skills/{mastermind-skills/org-chart.md → mastermind-org-chart/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/org-settings.md → mastermind-org-settings/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/orgs.md → mastermind-orgs/SKILL.md} +1 -1
- package/.claude/skills/{mastermind-skills/orgstatus.md → mastermind-orgstatus/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/plan.md → mastermind-plan/SKILL.md} +7 -7
- package/.claude/skills/{mastermind-skills/plan-to-tasks.md → mastermind-plan-to-tasks/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/plugin-manager.md → mastermind-plugin-manager/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/plugin-settings.md → mastermind-plugin-settings/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/plugins.md → mastermind-plugins/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/profile.md → mastermind-profile/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/project-detail.md → mastermind-project-detail/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/project-workspace.md → mastermind-project-workspace/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/projects.md → mastermind-projects/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/_protocol.md → mastermind-protocol/SKILL.md} +3 -3
- package/.claude/skills/{mastermind-skills/release.md → mastermind-release/SKILL.md} +5 -5
- package/.claude/skills/{mastermind-skills/_repeat.md → mastermind-repeat/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/research.md → mastermind-research/SKILL.md} +5 -5
- package/.claude/skills/{mastermind-skills/review.md → mastermind-review/SKILL.md} +5 -5
- package/.claude/skills/{mastermind-skills/routine-detail.md → mastermind-routine-detail/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/routines.md → mastermind-routines/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/runorgv1.md → mastermind-runorgv1/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/sales.md → mastermind-sales/SKILL.md} +5 -5
- package/.claude/skills/{mastermind-skills/search.md → mastermind-search/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/secrets.md → mastermind-secrets/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/skill-builder.md → mastermind-skill-builder/SKILL.md} +16 -14
- package/.claude/skills/mastermind-skills/{skills.md → SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/stoporg.md → mastermind-stoporg/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/taskdev.md → mastermind-taskdev/SKILL.md} +6 -6
- package/.claude/skills/{mastermind-skills → mastermind-taskdev}/implementer-prompt.md +1 -1
- package/.claude/skills/{mastermind-skills/tasks.md → mastermind-tasks/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/tdd.md → mastermind-tdd/SKILL.md} +4 -4
- package/.claude/skills/{mastermind-skills/techport.md → mastermind-techport/SKILL.md} +6 -6
- package/.claude/skills/{mastermind-skills/threads.md → mastermind-threads/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/tree-control.md → mastermind-tree-control/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/verify.md → mastermind-verify/SKILL.md} +1 -1
- package/.claude/skills/{mastermind-skills/wiki.md → mastermind-wiki/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/workspace-detail.md → mastermind-workspace-detail/SKILL.md} +2 -2
- package/.claude/skills/{mastermind-skills/workspaces.md → mastermind-workspaces/SKILL.md} +2 -2
- package/.claude/skills/monodesign/SKILL.md +114 -190
- package/.claude/skills/monodesign/adapt.md +1 -1
- package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +4 -4
- package/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +103 -0
- package/.claude/skills/monodesign/audit.md +1 -1
- package/.claude/skills/monodesign/craft.md +2 -2
- package/.claude/skills/monodesign/critique.md +1 -1
- package/.claude/skills/monodesign/init.md +30 -0
- package/.claude/skills/monodesign/layout.md +36 -0
- package/.claude/skills/monodesign/live.md +19 -44
- package/.claude/skills/monodesign/reference/adapt.md +122 -0
- package/.claude/skills/monodesign/reference/adapt.native.md +58 -0
- package/.claude/skills/monodesign/reference/android.md +40 -0
- package/.claude/skills/monodesign/reference/animate.md +39 -11
- package/.claude/skills/monodesign/reference/antipatterns-catalog.md +67 -16
- package/.claude/skills/monodesign/reference/audit.md +5 -3
- package/.claude/skills/monodesign/reference/audit.native.md +139 -0
- package/.claude/skills/monodesign/reference/bolder.md +71 -64
- package/.claude/skills/monodesign/reference/brand.md +12 -18
- package/.claude/skills/monodesign/reference/clarify.md +114 -0
- package/.claude/skills/monodesign/reference/codex.md +4 -6
- package/.claude/skills/monodesign/reference/colorize.md +108 -5
- package/.claude/skills/monodesign/reference/craft.md +70 -143
- package/.claude/skills/monodesign/reference/critique.md +635 -68
- package/.claude/skills/monodesign/reference/delight.md +1 -1
- package/.claude/skills/monodesign/reference/distill.md +1 -1
- package/.claude/skills/monodesign/reference/document.md +24 -22
- package/.claude/skills/monodesign/reference/extract.md +1 -1
- package/.claude/skills/monodesign/reference/hooks.md +22 -29
- package/.claude/skills/monodesign/reference/init.md +221 -0
- package/.claude/skills/monodesign/reference/interaction-design.md +0 -6
- package/.claude/skills/monodesign/reference/ios.md +45 -0
- package/.claude/skills/monodesign/reference/layout.md +57 -13
- package/.claude/skills/monodesign/reference/live.md +159 -71
- package/.claude/skills/monodesign/reference/overdrive.md +1 -1
- package/.claude/skills/monodesign/reference/personas.md +1 -1
- package/.claude/skills/monodesign/reference/polish.md +16 -8
- package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +1 -1
- package/.claude/skills/monodesign/reference/product.md +1 -3
- package/.claude/skills/monodesign/reference/quieter.md +1 -1
- package/.claude/skills/monodesign/reference/shape.md +27 -13
- package/.claude/skills/monodesign/reference/teach.md +6 -152
- package/.claude/skills/monodesign/reference/typeset.md +180 -3
- package/.claude/skills/monodesign/scripts/command-metadata.json +94 -0
- package/.claude/skills/monodesign/scripts/context-signals.mjs +260 -0
- package/.claude/skills/monodesign/scripts/context.mjs +1061 -0
- package/.claude/skills/monodesign/scripts/critique-storage.mjs +416 -0
- package/.claude/skills/monodesign/scripts/detect-csp.mjs +198 -0
- package/.claude/skills/monodesign/scripts/detect.mjs +33 -0
- package/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +1962 -0
- package/.claude/skills/monodesign/scripts/detector/cli/main.mjs +321 -0
- package/.claude/skills/monodesign/scripts/detector/design-system.mjs +814 -0
- package/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +5601 -0
- package/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +50 -0
- package/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +259 -0
- package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +258 -0
- package/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +636 -0
- package/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +1015 -0
- package/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +253 -0
- package/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +198 -0
- package/.claude/skills/monodesign/scripts/detector/findings.mjs +12 -0
- package/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +181 -0
- package/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +373 -0
- package/.claude/skills/monodesign/scripts/detector/fix/index.mjs +426 -0
- package/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +198 -0
- package/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +166 -0
- package/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +563 -0
- package/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +2995 -0
- package/.claude/skills/monodesign/scripts/detector/shared/color.mjs +124 -0
- package/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +101 -0
- package/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +30 -0
- package/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +148 -0
- package/.claude/skills/monodesign/scripts/detector/shared/page.mjs +7 -0
- package/.claude/skills/monodesign/scripts/hook-admin.mjs +661 -0
- package/.claude/skills/monodesign/scripts/hook-before-edit.mjs +516 -0
- package/.claude/skills/monodesign/scripts/hook-lib.mjs +1776 -0
- package/.claude/skills/monodesign/scripts/hook.mjs +61 -0
- package/.claude/skills/monodesign/scripts/lib/design-parser.mjs +842 -0
- package/.claude/skills/monodesign/scripts/lib/is-generated.mjs +69 -0
- package/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +640 -0
- package/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +129 -0
- package/.claude/skills/monodesign/scripts/lib/provider.mjs +4 -0
- package/.claude/skills/monodesign/scripts/lib/target-args.mjs +42 -0
- package/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +50 -0
- package/.claude/skills/monodesign/scripts/live/completion.mjs +19 -0
- package/.claude/skills/monodesign/scripts/live/event-validation.mjs +137 -0
- package/.claude/skills/monodesign/scripts/live/insert-ui.mjs +458 -0
- package/.claude/skills/monodesign/scripts/live/manual-apply.mjs +939 -0
- package/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +357 -0
- package/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +152 -0
- package/.claude/skills/monodesign/scripts/live/session-store.mjs +293 -0
- package/.claude/skills/monodesign/scripts/live/svelte-component.mjs +826 -0
- package/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +274 -0
- package/.claude/skills/monodesign/scripts/live/ui-core.mjs +180 -0
- package/.claude/skills/monodesign/scripts/live/vocabulary.mjs +36 -0
- package/.claude/skills/monodesign/scripts/live-accept.mjs +812 -0
- package/.claude/skills/monodesign/scripts/live-browser-dom.js +146 -0
- package/.claude/skills/monodesign/scripts/live-browser-session.js +123 -0
- package/.claude/skills/monodesign/scripts/live-browser.js +11240 -0
- package/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +1241 -0
- package/.claude/skills/monodesign/scripts/live-complete.mjs +75 -0
- package/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +683 -0
- package/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +51 -0
- package/.claude/skills/monodesign/scripts/live-inject.mjs +583 -0
- package/.claude/skills/monodesign/scripts/live-insert.mjs +272 -0
- package/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +363 -0
- package/.claude/skills/monodesign/scripts/live-poll.mjs +384 -0
- package/.claude/skills/monodesign/scripts/live-resume.mjs +94 -0
- package/.claude/skills/monodesign/scripts/live-server.mjs +1137 -0
- package/.claude/skills/monodesign/scripts/live-status.mjs +61 -0
- package/.claude/skills/monodesign/scripts/live-target.mjs +30 -0
- package/.claude/skills/monodesign/scripts/live-wrap.mjs +894 -0
- package/.claude/skills/monodesign/scripts/live.mjs +297 -0
- package/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +14 -0
- package/.claude/skills/monodesign/scripts/palette.mjs +633 -0
- package/.claude/skills/monodesign/scripts/pin.mjs +221 -0
- package/.claude/skills/monodesign/teach.md +7 -58
- package/README.md +1 -1
- package/dist/src/commands/design-detect.d.ts +7 -1
- package/dist/src/commands/design-detect.d.ts.map +1 -1
- package/dist/src/commands/design-detect.js +131 -38
- package/dist/src/commands/design-detect.js.map +1 -1
- package/dist/src/commands/design-palette.d.ts +0 -1
- package/dist/src/commands/design-palette.d.ts.map +1 -1
- package/dist/src/commands/design-palette.js +2 -3
- package/dist/src/commands/design-palette.js.map +1 -1
- package/dist/src/commands/doc.d.ts.map +1 -1
- package/dist/src/commands/doc.js +72 -15
- package/dist/src/commands/doc.js.map +1 -1
- package/dist/src/commands/doctor-project-checks.d.ts +5 -1
- package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +24 -1
- package/dist/src/commands/doctor-project-checks.js.map +1 -1
- package/dist/src/commands/doctor.js +3 -3
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/hooks-workers.d.ts +1 -1
- package/dist/src/commands/hooks-workers.js +8 -8
- package/dist/src/commands/hooks-workers.js.map +1 -1
- package/dist/src/commands/init.js +2 -2
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +109 -9
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/claudemd-generator.js +5 -5
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +17 -6
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/knowledge/document-pipeline.d.ts +2 -0
- package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
- package/dist/src/knowledge/document-pipeline.js +4 -1
- package/dist/src/knowledge/document-pipeline.js.map +1 -1
- package/dist/src/mcp-server.js +2 -2
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.d.ts +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.js +1 -1
- package/dist/src/mcp-tools/hooks-routing.js +2 -2
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +1 -1
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/knowledge-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/knowledge-tools.js +38 -7
- package/dist/src/mcp-tools/knowledge-tools.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts +8 -3
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +193 -31
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts +33 -0
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +166 -17
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-kg.d.ts +186 -0
- package/dist/src/memory/memory-kg.d.ts.map +1 -0
- package/dist/src/memory/memory-kg.js +450 -0
- package/dist/src/memory/memory-kg.js.map +1 -0
- package/dist/src/memory/query-router.d.ts +44 -0
- package/dist/src/memory/query-router.d.ts.map +1 -0
- package/dist/src/memory/query-router.js +113 -0
- package/dist/src/memory/query-router.js.map +1 -0
- package/dist/src/orgrt/daemon.d.ts +18 -0
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +249 -12
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/migrate.d.ts.map +1 -1
- package/dist/src/orgrt/migrate.js +7 -0
- package/dist/src/orgrt/migrate.js.map +1 -1
- package/dist/src/orgrt/policy.d.ts.map +1 -1
- package/dist/src/orgrt/policy.js +7 -0
- package/dist/src/orgrt/policy.js.map +1 -1
- package/dist/src/orgrt/session.d.ts +24 -1
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +18 -3
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/templates.d.ts +1 -0
- package/dist/src/orgrt/templates.d.ts.map +1 -1
- package/dist/src/orgrt/templates.js +9 -4
- package/dist/src/orgrt/templates.js.map +1 -1
- package/dist/src/orgrt/types.d.ts +15 -0
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +2 -0
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/routing/embed-worker.js +1 -1
- package/dist/src/routing/embed-worker.js.map +1 -1
- package/dist/src/routing/llm-caller.js +1 -1
- package/dist/src/routing/route-layer-factory.js +1 -1
- package/dist/src/routing/route-layer-factory.js.map +1 -1
- package/dist/src/ui/dashboard.html +176 -26
- package/dist/src/ui/data/sessions/final-sess-001.jsonl +180 -180
- package/dist/src/ui/orgs.html +24 -0
- package/dist/src/ui/server.mjs +162 -12
- package/dist/src/update/checker.js +3 -3
- package/dist/src/update/checker.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -6
- /package/.claude/skills/{mastermind-skills/_agent-select.md → mastermind-agent-select/SKILL.md} +0 -0
- /package/.claude/skills/{mastermind-skills/finish.md → mastermind-finish/SKILL.md} +0 -0
- /package/.claude/skills/{mastermind-skills/_intake.md → mastermind-intake/SKILL.md} +0 -0
- /package/.claude/skills/{mastermind-skills → mastermind-marketing}/references/copywriting-frameworks.md +0 -0
- /package/.claude/skills/{mastermind-skills → mastermind-marketing}/references/persuasion-psychology.md +0 -0
- /package/.claude/skills/{mastermind-skills/monotask.md → mastermind-monotask/SKILL.md} +0 -0
- /package/.claude/skills/{mastermind-skills/receive-review.md → mastermind-receive-review/SKILL.md} +0 -0
- /package/.claude/skills/{mastermind-skills/runorg.md → mastermind-runorg/SKILL.md} +0 -0
- /package/.claude/skills/{mastermind-skills → mastermind-taskdev}/code-quality-reviewer-prompt.md +0 -0
- /package/.claude/skills/{mastermind-skills → mastermind-taskdev}/final-reviewer-prompt.md +0 -0
- /package/.claude/skills/{mastermind-skills → mastermind-taskdev}/spec-reviewer-prompt.md +0 -0
- /package/.claude/skills/{mastermind-skills/worktree.md → mastermind-worktree/SKILL.md} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-kg.js","sourceRoot":"","sources":["../../../src/memory/memory-kg.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query Router + RRF fusion — Phase 4 of the cognee port plan.
|
|
3
|
+
*
|
|
4
|
+
* routeQuery: cognee's rule-based (non-LLM) recall router scaled to our four
|
|
5
|
+
* retrieval surfaces — document chunks, knowledge-graph triplets, distilled
|
|
6
|
+
* rules, and org/pattern memories. Weighted regex rules with a negation
|
|
7
|
+
* window, a confidence gate (winner must be ≥2× runner-up), and an in-memory
|
|
8
|
+
* misroute counter for debuggability.
|
|
9
|
+
*
|
|
10
|
+
* rrfFuse: Reciprocal Rank Fusion across result lists whose raw scores are
|
|
11
|
+
* not comparable (cosine vs blended vs keyword) — `Σ 1/(rrf_k + rank + 1)`
|
|
12
|
+
* with cognee's adaptive rrf_k = max(30, min(60, 20 + 2·top_k)).
|
|
13
|
+
*
|
|
14
|
+
* @module v1/cli/memory/query-router
|
|
15
|
+
*/
|
|
16
|
+
export type RetrievalSurface = 'chunks' | 'kg' | 'rules' | 'memory';
|
|
17
|
+
export interface RouteDecision {
|
|
18
|
+
/** Surfaces to hit, best first. Always non-empty ('chunks' is the fallback). */
|
|
19
|
+
surfaces: RetrievalSurface[];
|
|
20
|
+
/** Winner's score ≥ 2× runner-up (cognee's confidence gate). Low-confidence
|
|
21
|
+
* routes should hit ALL surfaces and fuse. */
|
|
22
|
+
confident: boolean;
|
|
23
|
+
scores: Record<RetrievalSurface, number>;
|
|
24
|
+
}
|
|
25
|
+
export declare function routeQuery(query: string): RouteDecision;
|
|
26
|
+
/** Call when a route proved wrong (caller retried another surface) — counts
|
|
27
|
+
* feed debugging, mirroring cognee's record_override telemetry. */
|
|
28
|
+
export declare function recordRouteOverride(from: RetrievalSurface, to: RetrievalSurface): void;
|
|
29
|
+
/** In-memory counts from this process only; pass merged=true to include the
|
|
30
|
+
* persisted cross-process counts from .monomind/metrics/route-overrides.json. */
|
|
31
|
+
export declare function getRouteOverrides(merged?: boolean): Record<string, number>;
|
|
32
|
+
export interface FusableResult {
|
|
33
|
+
/** Stable identity across lists (id or key). */
|
|
34
|
+
id: string;
|
|
35
|
+
/** Importance factor input in [0,1]; defaults 0.5. */
|
|
36
|
+
importance?: number;
|
|
37
|
+
[extra: string]: unknown;
|
|
38
|
+
}
|
|
39
|
+
/** Fuse ranked lists via RRF × importance factor (cognee hybrid/ranking.py).
|
|
40
|
+
* Input lists must each be ranked best-first; raw scores are ignored. */
|
|
41
|
+
export declare function rrfFuse<T extends FusableResult>(lists: T[][], topK: number): (T & {
|
|
42
|
+
rrf: number;
|
|
43
|
+
})[];
|
|
44
|
+
//# sourceMappingURL=query-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-router.d.ts","sourceRoot":"","sources":["../../../src/memory/query-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAC;AAyBpE,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B;mDAC+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;CAC1C;AAmBD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAqBvD;AAED;oEACoE;AACpE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAItF;AACD;kFACkF;AAClF,wBAAgB,iBAAiB,CAAC,MAAM,UAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxE;AAID,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED;0EAC0E;AAC1E,wBAAgB,OAAO,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,CAgBpG"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query Router + RRF fusion — Phase 4 of the cognee port plan.
|
|
3
|
+
*
|
|
4
|
+
* routeQuery: cognee's rule-based (non-LLM) recall router scaled to our four
|
|
5
|
+
* retrieval surfaces — document chunks, knowledge-graph triplets, distilled
|
|
6
|
+
* rules, and org/pattern memories. Weighted regex rules with a negation
|
|
7
|
+
* window, a confidence gate (winner must be ≥2× runner-up), and an in-memory
|
|
8
|
+
* misroute counter for debuggability.
|
|
9
|
+
*
|
|
10
|
+
* rrfFuse: Reciprocal Rank Fusion across result lists whose raw scores are
|
|
11
|
+
* not comparable (cosine vs blended vs keyword) — `Σ 1/(rrf_k + rank + 1)`
|
|
12
|
+
* with cognee's adaptive rrf_k = max(30, min(60, 20 + 2·top_k)).
|
|
13
|
+
*
|
|
14
|
+
* @module v1/cli/memory/query-router
|
|
15
|
+
*/
|
|
16
|
+
import fs from 'node:fs';
|
|
17
|
+
import path from 'node:path';
|
|
18
|
+
// Order matters only for tie display; scoring is additive per surface.
|
|
19
|
+
const ROUTE_RULES = [
|
|
20
|
+
// Rules: "how should I", conventions, policies, dos and don'ts.
|
|
21
|
+
{ surface: 'rules', pattern: /\b(rules?|conventions?|policy|policies|guidelines?|best practices?|should (i|we|you)|always|never|allowed|forbidden)\b/i, weight: 2 },
|
|
22
|
+
// KG: relationships, structure, "how does X relate to / depend on Y", who/what connects.
|
|
23
|
+
{ surface: 'kg', pattern: /\b(relat(e|es|ed|ionship)|depend(s|ency|encies)?|connect(s|ed|ion)?|link(s|ed)?|between|structure|architecture|who (owns|maintains|uses)|what (uses|calls|imports))\b/i, weight: 2 },
|
|
24
|
+
{ surface: 'kg', pattern: /\b(entity|entities|graph|triplet)\b/i, weight: 1.5 },
|
|
25
|
+
// Memory: past runs/decisions/outcomes/history.
|
|
26
|
+
{ surface: 'memory', pattern: /\b(last (run|time)|previous(ly)?|history|past|earlier|before|decision|decided|outcome|learned|remember)\b/i, weight: 2 },
|
|
27
|
+
// Chunks: docs/specs/definitions/how-to content.
|
|
28
|
+
{ surface: 'chunks', pattern: /\b(doc(s|ument|umentation)?|spec|readme|guide|manual|note(s)?|wrote|written|what is|how (do|to)|explain|describe|definition)\b/i, weight: 1.5 },
|
|
29
|
+
];
|
|
30
|
+
/** Negated mentions must not vote: "not about the architecture" (cognee uses
|
|
31
|
+
* a 20-char pre-match negation window; same here). */
|
|
32
|
+
const NEGATION_RE = /\b(not?|without|except|ignore|don'?t|excluding)\b[^.!?]{0,20}$/i;
|
|
33
|
+
const overrideCounts = {};
|
|
34
|
+
/** Overrides persist across processes (the CLI is one-shot — an in-memory
|
|
35
|
+
* counter alone evaporates before doctor/debugging can read it). Best-effort
|
|
36
|
+
* read-merge-write of a tiny JSON file; never throws into the caller. */
|
|
37
|
+
const OVERRIDES_FILE = ['.monomind', 'metrics', 'route-overrides.json'];
|
|
38
|
+
function persistOverride(key) {
|
|
39
|
+
try {
|
|
40
|
+
const file = path.join(process.cwd(), ...OVERRIDES_FILE);
|
|
41
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
42
|
+
let disk = {};
|
|
43
|
+
try {
|
|
44
|
+
disk = JSON.parse(fs.readFileSync(file, 'utf-8'));
|
|
45
|
+
}
|
|
46
|
+
catch { /* fresh file */ }
|
|
47
|
+
disk[key] = (typeof disk[key] === 'number' ? disk[key] : 0) + 1;
|
|
48
|
+
fs.writeFileSync(file, JSON.stringify(disk, null, 2));
|
|
49
|
+
}
|
|
50
|
+
catch { /* telemetry must never block or throw */ }
|
|
51
|
+
}
|
|
52
|
+
export function routeQuery(query) {
|
|
53
|
+
const q = String(query ?? '').slice(0, 2000);
|
|
54
|
+
const scores = { chunks: 0.5, kg: 0, rules: 0, memory: 0 }; // chunks = weak prior
|
|
55
|
+
for (const rule of ROUTE_RULES) {
|
|
56
|
+
for (const m of q.matchAll(new RegExp(rule.pattern.source, rule.pattern.flags + 'g'))) {
|
|
57
|
+
const before = q.slice(Math.max(0, (m.index ?? 0) - 26), m.index ?? 0);
|
|
58
|
+
if (NEGATION_RE.test(before))
|
|
59
|
+
continue;
|
|
60
|
+
scores[rule.surface] += rule.weight;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const ranked = Object.entries(scores)
|
|
64
|
+
.sort((a, b) => b[1] - a[1]);
|
|
65
|
+
const [winner, runnerUp] = ranked;
|
|
66
|
+
const confident = winner[1] >= 2 * Math.max(runnerUp[1], 0.25);
|
|
67
|
+
const surfaces = confident
|
|
68
|
+
? [winner[0]]
|
|
69
|
+
: ranked.filter(([, s]) => s > 0).map(([k]) => k);
|
|
70
|
+
return { surfaces: surfaces.length ? surfaces : ['chunks'], confident, scores };
|
|
71
|
+
}
|
|
72
|
+
/** Call when a route proved wrong (caller retried another surface) — counts
|
|
73
|
+
* feed debugging, mirroring cognee's record_override telemetry. */
|
|
74
|
+
export function recordRouteOverride(from, to) {
|
|
75
|
+
const key = `${from}->${to}`;
|
|
76
|
+
overrideCounts[key] = (overrideCounts[key] ?? 0) + 1;
|
|
77
|
+
persistOverride(key);
|
|
78
|
+
}
|
|
79
|
+
/** In-memory counts from this process only; pass merged=true to include the
|
|
80
|
+
* persisted cross-process counts from .monomind/metrics/route-overrides.json. */
|
|
81
|
+
export function getRouteOverrides(merged = false) {
|
|
82
|
+
if (!merged)
|
|
83
|
+
return { ...overrideCounts };
|
|
84
|
+
try {
|
|
85
|
+
const disk = JSON.parse(fs.readFileSync(path.join(process.cwd(), ...OVERRIDES_FILE), 'utf-8'));
|
|
86
|
+
return { ...disk }; // disk already includes this process's persisted increments
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return { ...overrideCounts };
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** Fuse ranked lists via RRF × importance factor (cognee hybrid/ranking.py).
|
|
93
|
+
* Input lists must each be ranked best-first; raw scores are ignored. */
|
|
94
|
+
export function rrfFuse(lists, topK) {
|
|
95
|
+
const rrfK = Math.max(30, Math.min(60, 20 + 2 * topK));
|
|
96
|
+
const byId = new Map();
|
|
97
|
+
for (const list of lists) {
|
|
98
|
+
list.forEach((item, rank) => {
|
|
99
|
+
const importance = typeof item.importance === 'number' ? item.importance : 0.5;
|
|
100
|
+
const contribution = (1 / (rrfK + rank + 1)) * (0.75 + 0.5 * importance);
|
|
101
|
+
const existing = byId.get(item.id);
|
|
102
|
+
if (existing)
|
|
103
|
+
existing.rrf += contribution;
|
|
104
|
+
else
|
|
105
|
+
byId.set(item.id, { item, rrf: contribution });
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
return [...byId.values()]
|
|
109
|
+
.sort((a, b) => b.rrf - a.rrf)
|
|
110
|
+
.slice(0, topK)
|
|
111
|
+
.map(({ item, rrf }) => ({ ...item, rrf }));
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=query-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-router.js","sourceRoot":"","sources":["../../../src/memory/query-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,8 @@ export declare class OrgDaemon {
|
|
|
44
44
|
private globalSubscribers;
|
|
45
45
|
private leases;
|
|
46
46
|
private forwarders;
|
|
47
|
+
private watchdogs;
|
|
48
|
+
private stopping;
|
|
47
49
|
constructor(root: string, opts?: DaemonOpts);
|
|
48
50
|
/** Publish this daemon's inbox so orgs started AFTER this call register with the broker. */
|
|
49
51
|
setInboxUrl(url: string): void;
|
|
@@ -98,6 +100,7 @@ export declare class OrgDaemon {
|
|
|
98
100
|
* Fire-and-forget — errors are logged but don't propagate to the sender. */
|
|
99
101
|
private autoWake;
|
|
100
102
|
stopOrg(name: string): Promise<void>;
|
|
103
|
+
private finishStop;
|
|
101
104
|
stopAll(): Promise<void>;
|
|
102
105
|
private orgMemoryNamespace;
|
|
103
106
|
/** Store dir for org cross-run memory — inside the org root so the bridge's
|
|
@@ -109,6 +112,16 @@ export declare class OrgDaemon {
|
|
|
109
112
|
* unusual daemon setups) that redirect would write into the WRONG project's
|
|
110
113
|
* memory — verify the guard kept our path, and skip org memory otherwise. */
|
|
111
114
|
private orgMemoryUsable;
|
|
115
|
+
/** Namespace for a role's PRIVATE memories, inside the org memory DB. */
|
|
116
|
+
private agentMemoryNamespace;
|
|
117
|
+
/** org_remember implementation: a deliberate write to org-shared or
|
|
118
|
+
* role-private memory (both in the org memory DB, split by namespace). */
|
|
119
|
+
private rememberOrgMemory;
|
|
120
|
+
/** Entry IDs served by org_recall during the current run, per org. This is
|
|
121
|
+
* the usage record the run-outcome auto-rating consumes (cognee's
|
|
122
|
+
* used_graph_element_ids pattern) — recall renders text to the agent, so
|
|
123
|
+
* the IDs must be captured here or they're gone. */
|
|
124
|
+
private recallUsage;
|
|
112
125
|
/** org_recall implementation: search the org's memory namespace via the
|
|
113
126
|
* memory bridge (semantic when the local model is available, tokenized
|
|
114
127
|
* keyword otherwise). Failures return a message, never throw into the tool. */
|
|
@@ -121,6 +134,11 @@ export declare class OrgDaemon {
|
|
|
121
134
|
text: string;
|
|
122
135
|
hits: number;
|
|
123
136
|
}>;
|
|
137
|
+
/** org_learn implementation: merge coordinator-extracted entities/relations/
|
|
138
|
+
* rules into the org's knowledge graph (LLM extraction happens inside the
|
|
139
|
+
* agent's own subscription-auth SDK session — no separate LLM call here). */
|
|
140
|
+
private orgLearnedRuns;
|
|
141
|
+
private learnOrgKnowledge;
|
|
124
142
|
/** Persist the run's outcome into cross-run org memory so org_recall (and
|
|
125
143
|
* future runs) can find it by meaning, not just recency. Best-effort. */
|
|
126
144
|
private storeRunMemory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/orgrt/daemon.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAKvC,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAW,MAAM,YAAY,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAE5D,UAAU,YAAY;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,yFAAyF;IACzF,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,QAAQ,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;+EAG2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;uEAEmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mHAAmH;IACnH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/orgrt/daemon.ts"],"names":[],"mappings":"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"}
|
package/dist/src/orgrt/daemon.js
CHANGED
|
@@ -19,6 +19,8 @@ export class OrgDaemon {
|
|
|
19
19
|
globalSubscribers = new Set();
|
|
20
20
|
leases = new Map();
|
|
21
21
|
forwarders = new Map();
|
|
22
|
+
watchdogs = new Map();
|
|
23
|
+
stopping = new Map();
|
|
22
24
|
constructor(root, opts = {}) {
|
|
23
25
|
this.root = root;
|
|
24
26
|
this.opts = opts;
|
|
@@ -51,10 +53,26 @@ export class OrgDaemon {
|
|
|
51
53
|
// Write's captured content snapshot alone can be up to 200KB (policy.ts).
|
|
52
54
|
const MAX_COLLECTED = 5000;
|
|
53
55
|
const collected = [];
|
|
56
|
+
let lastActivity = Date.now();
|
|
54
57
|
bus.subscribe(e => {
|
|
55
58
|
collected.push(e);
|
|
56
59
|
if (collected.length > MAX_COLLECTED)
|
|
57
60
|
collected.splice(0, collected.length - MAX_COLLECTED);
|
|
61
|
+
// The watchdog's own nudge event must not count as org activity, or a
|
|
62
|
+
// hung boss would never trip the "nudge produced no activity" stop.
|
|
63
|
+
if (e.reason !== 'idle-nudge')
|
|
64
|
+
lastActivity = Date.now();
|
|
65
|
+
// org_complete IS the end of the run — self-stop instead of sitting
|
|
66
|
+
// "running" forever after a recorded outcome. Deferred (unref'd) so the
|
|
67
|
+
// tool call's receipt reaches the boss and its final turn text still
|
|
68
|
+
// lands on the bus before mailboxes close; stopOrg is reentrant-safe
|
|
69
|
+
// against a concurrent manual stop.
|
|
70
|
+
if (e.type === 'status' && e.reason === 'org-complete') {
|
|
71
|
+
const t = setTimeout(() => {
|
|
72
|
+
this.stopOrg(name).catch(err => console.error(`org ${name}: auto-stop after org_complete failed:`, err instanceof Error ? err.message : err));
|
|
73
|
+
}, 1000);
|
|
74
|
+
t.unref?.();
|
|
75
|
+
}
|
|
58
76
|
for (const fn of this.globalSubscribers)
|
|
59
77
|
fn(e);
|
|
60
78
|
});
|
|
@@ -69,6 +87,19 @@ export class OrgDaemon {
|
|
|
69
87
|
// fallback-selected boss could be told to call org_complete without having
|
|
70
88
|
// the tool.
|
|
71
89
|
const bossRole = def.roles.find(r => r.type === 'boss' || r.reports_to === null) ?? def.roles[0];
|
|
90
|
+
// Canonical entity names from the org KG — injected into the coordinator
|
|
91
|
+
// prompt so org_learn extractions reuse them instead of minting duplicates.
|
|
92
|
+
const glossary = await (async () => {
|
|
93
|
+
try {
|
|
94
|
+
if (!(await this.orgMemoryUsable()))
|
|
95
|
+
return [];
|
|
96
|
+
const kg = await import('../memory/memory-kg.js');
|
|
97
|
+
return await kg.kgGlossary({ dbPath: this.orgMemoryDbPath() });
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
})();
|
|
72
103
|
for (const role of def.roles) {
|
|
73
104
|
const mailbox = new Mailbox();
|
|
74
105
|
const policy = new PolicyEngine(role.id, { maxTokens: perRoleBudget, ...(role.policy ?? {}) }, bus, cwd);
|
|
@@ -84,7 +115,7 @@ export class OrgDaemon {
|
|
|
84
115
|
}
|
|
85
116
|
: undefined,
|
|
86
117
|
recall: async (r, q) => {
|
|
87
|
-
const answer = await this.recallOrgMemory(name, def, q);
|
|
118
|
+
const answer = await this.recallOrgMemory(name, def, q, r);
|
|
88
119
|
bus.emit({ type: 'status', from: r, reason: 'org-recall', msg: `recall: ${q.slice(0, 80)}`, data: { hits: answer.hits } });
|
|
89
120
|
return answer.text;
|
|
90
121
|
},
|
|
@@ -93,6 +124,20 @@ export class OrgDaemon {
|
|
|
93
124
|
bus.emit({ type: 'status', from: r, reason: 'knowledge-search', msg: `knowledge: ${q.slice(0, 80)}`, data: { hits: answer.hits } });
|
|
94
125
|
return answer.text;
|
|
95
126
|
},
|
|
127
|
+
glossary,
|
|
128
|
+
remember: async (r, content, scope) => {
|
|
129
|
+
const text = await this.rememberOrgMemory(name, def, r, content, scope, run);
|
|
130
|
+
bus.emit({ type: 'status', from: r, reason: 'org-remember', msg: `remember (${scope}): ${content.slice(0, 80)}`, data: { scope } });
|
|
131
|
+
return text;
|
|
132
|
+
},
|
|
133
|
+
learn: async (r, payload) => {
|
|
134
|
+
const text = await this.learnOrgKnowledge(name, run, payload);
|
|
135
|
+
bus.emit({
|
|
136
|
+
type: 'status', from: r, reason: 'org-learn', msg: `learn: ${text.slice(0, 120)}`,
|
|
137
|
+
data: { nodes: payload.nodes?.length ?? 0, edges: payload.edges?.length ?? 0, rules: payload.rules?.length ?? 0 },
|
|
138
|
+
});
|
|
139
|
+
return text;
|
|
140
|
+
},
|
|
96
141
|
queryFn: this.opts.queryFn,
|
|
97
142
|
};
|
|
98
143
|
// Supervised session: transient crashes (provider blips, network) restart
|
|
@@ -163,6 +208,50 @@ export class OrgDaemon {
|
|
|
163
208
|
`Coordinate your team via org_send. When the goal is achieved (or clearly can't be), record it with org_complete, then end your turn.${prevBrief}`);
|
|
164
209
|
bus.emit({ type: 'status', msg: `org started (${def.roles.length} agents)`, data: { goal: taskOverride ?? def.goal } });
|
|
165
210
|
this.persistState(name, 'running', run);
|
|
211
|
+
// Idle watchdog: a hung tool call (or a run that quietly finished without
|
|
212
|
+
// org_complete) produces no bus events, and every agent just waits. After
|
|
213
|
+
// idle_minutes of silence, nudge the boss to complete or reassign; if the
|
|
214
|
+
// nudge itself produces no activity (boss hung/crashed), or the org keeps
|
|
215
|
+
// going idle after MAX_IDLE_NUDGES nudges, stop the run instead of letting
|
|
216
|
+
// it freeze forever. idle_minutes: 0 disables.
|
|
217
|
+
const idleMs = (def.run_config.idle_minutes ?? 10) * 60_000;
|
|
218
|
+
if (idleMs > 0) {
|
|
219
|
+
const MAX_IDLE_NUDGES = 3;
|
|
220
|
+
let nudgedAt = 0;
|
|
221
|
+
let nudges = 0;
|
|
222
|
+
const idleStop = (msg) => {
|
|
223
|
+
bus.emit({ type: 'audit', reason: 'idle-stop', msg });
|
|
224
|
+
this.stopOrg(name).catch(err => console.error(`org ${name}: idle-stop failed:`, err instanceof Error ? err.message : err));
|
|
225
|
+
};
|
|
226
|
+
const wd = setInterval(() => {
|
|
227
|
+
const idleFor = Date.now() - lastActivity;
|
|
228
|
+
if (idleFor < idleMs) {
|
|
229
|
+
nudgedAt = 0;
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
if (nudgedAt === 0) {
|
|
233
|
+
if (nudges >= MAX_IDLE_NUDGES) {
|
|
234
|
+
idleStop(`org idle again after ${nudges} nudges — stopping run`);
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
const bossRt = running.agents.get(bossRole.id);
|
|
238
|
+
if (!bossRt || bossRt.status !== 'running' || bossRt.mailbox.isClosed) {
|
|
239
|
+
idleStop(`org idle for ${Math.round(idleFor / 60_000)}m and boss "${bossRole.id}" is unreachable — stopping run`);
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
nudges++;
|
|
243
|
+
nudgedAt = Date.now();
|
|
244
|
+
bus.emit({ type: 'audit', from: bossRole.id, reason: 'idle-nudge', msg: `no org activity for ${Math.round(idleFor / 60_000)}m — nudging boss (${nudges}/${MAX_IDLE_NUDGES})` });
|
|
245
|
+
bossRt.mailbox.push(`[watchdog] No activity in org "${name}" for ${Math.round(idleFor / 60_000)} minute(s). ` +
|
|
246
|
+
`If the goal is achieved (or clearly can't be), call org_complete now. Otherwise check on your team via org_send and reassign stalled work.`);
|
|
247
|
+
}
|
|
248
|
+
else if (Date.now() - nudgedAt >= idleMs) {
|
|
249
|
+
idleStop(`nudge produced no activity for another ${Math.round(idleMs / 60_000)}m — boss appears hung, stopping run`);
|
|
250
|
+
}
|
|
251
|
+
}, Math.max(200, Math.min(idleMs / 2, 30_000)));
|
|
252
|
+
wd.unref?.();
|
|
253
|
+
this.watchdogs.set(name, wd);
|
|
254
|
+
}
|
|
166
255
|
if (this.opts.crossProcess && this.opts.inboxUrl) {
|
|
167
256
|
const lease = new BrokerLease(name, this.opts.inboxUrl, this.opts.brokerDir);
|
|
168
257
|
lease.start();
|
|
@@ -383,19 +472,42 @@ export class OrgDaemon {
|
|
|
383
472
|
.finally(() => { this.waking.delete(name); });
|
|
384
473
|
}
|
|
385
474
|
async stopOrg(name) {
|
|
475
|
+
// Join an in-flight stop instead of no-oping: the self-stop paths
|
|
476
|
+
// (org_complete, idle watchdog) run detached, and a caller like
|
|
477
|
+
// `org run`'s final stopAll() must not resolve — letting the process
|
|
478
|
+
// exit — while that stop is still flushing the bus and writing
|
|
479
|
+
// history/runtime.json.
|
|
480
|
+
const inflight = this.stopping.get(name);
|
|
481
|
+
if (inflight)
|
|
482
|
+
return inflight;
|
|
386
483
|
const org = this.orgs.get(name);
|
|
387
484
|
if (!org)
|
|
388
|
-
return; // already stopped
|
|
485
|
+
return; // already stopped
|
|
389
486
|
// Remove immediately (not at the end) so a concurrent stopOrg(name) call —
|
|
390
|
-
// e.g. stopAll() racing a scheduler-triggered stop on SIGINT —
|
|
391
|
-
//
|
|
487
|
+
// e.g. stopAll() racing a scheduler-triggered stop on SIGINT — joins this
|
|
488
|
+
// shutdown via `stopping` instead of re-running the whole sequence and
|
|
392
489
|
// double-emitting 'org stopped' (duplicate org:complete/session:complete).
|
|
393
490
|
this.orgs.delete(name);
|
|
491
|
+
const p = this.finishStop(name, org);
|
|
492
|
+
this.stopping.set(name, p);
|
|
493
|
+
try {
|
|
494
|
+
await p;
|
|
495
|
+
}
|
|
496
|
+
finally {
|
|
497
|
+
this.stopping.delete(name);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
async finishStop(name, org) {
|
|
394
501
|
// Capture THIS run's forwarder now: an autoWake-restart of the same org
|
|
395
502
|
// during the long tail below (agent wait, flush, history write) would
|
|
396
503
|
// register a NEW forwarder under the same name — settling/unsubscribing
|
|
397
504
|
// that one would sever the new run's dashboard stream.
|
|
398
505
|
const forwarder = this.forwarders.get(name);
|
|
506
|
+
const wd = this.watchdogs.get(name);
|
|
507
|
+
if (wd) {
|
|
508
|
+
clearInterval(wd);
|
|
509
|
+
this.watchdogs.delete(name);
|
|
510
|
+
}
|
|
399
511
|
this.leases.get(name)?.stop();
|
|
400
512
|
this.leases.delete(name);
|
|
401
513
|
for (const a of org.agents.values())
|
|
@@ -453,7 +565,10 @@ export class OrgDaemon {
|
|
|
453
565
|
this.persistState(name, 'stopped', org.run);
|
|
454
566
|
}
|
|
455
567
|
async stopAll() {
|
|
456
|
-
await Promise.all([
|
|
568
|
+
await Promise.all([
|
|
569
|
+
...[...this.orgs.keys()].map(n => this.stopOrg(n)),
|
|
570
|
+
...this.stopping.values(), // detached self-stops still flushing
|
|
571
|
+
]);
|
|
457
572
|
}
|
|
458
573
|
orgMemoryNamespace(name, def) {
|
|
459
574
|
return def.run_config.memory_namespace ?? `org:${name}`;
|
|
@@ -486,21 +601,82 @@ export class OrgDaemon {
|
|
|
486
601
|
return false;
|
|
487
602
|
}
|
|
488
603
|
}
|
|
604
|
+
/** Namespace for a role's PRIVATE memories, inside the org memory DB. */
|
|
605
|
+
agentMemoryNamespace(name, def, role) {
|
|
606
|
+
return `agent:${this.orgMemoryNamespace(name, def)}:${role}`;
|
|
607
|
+
}
|
|
608
|
+
/** org_remember implementation: a deliberate write to org-shared or
|
|
609
|
+
* role-private memory (both in the org memory DB, split by namespace). */
|
|
610
|
+
async rememberOrgMemory(name, def, role, content, scope, run) {
|
|
611
|
+
try {
|
|
612
|
+
if (!(await this.orgMemoryUsable()))
|
|
613
|
+
return 'org memory is not available in this environment.';
|
|
614
|
+
const { bridgeStoreEntry } = await import('../memory/memory-bridge.js');
|
|
615
|
+
const namespace = scope === 'agent' ? this.agentMemoryNamespace(name, def, role) : this.orgMemoryNamespace(name, def);
|
|
616
|
+
const res = await bridgeStoreEntry({
|
|
617
|
+
key: `mem-${run}-${Date.now().toString(36)}`,
|
|
618
|
+
value: content.slice(0, 20_000),
|
|
619
|
+
namespace,
|
|
620
|
+
dbPath: this.orgMemoryDbPath(),
|
|
621
|
+
tags: [scope, role],
|
|
622
|
+
metadata: { origin_refs: [`run:${run}`], by: role },
|
|
623
|
+
});
|
|
624
|
+
if (res?.duplicate)
|
|
625
|
+
return `Already remembered (near-duplicate exists) — reinforced instead.`;
|
|
626
|
+
return res?.success ? `Remembered (${scope} scope).` : `Could not store memory${res?.error ? `: ${res.error}` : ''}.`;
|
|
627
|
+
}
|
|
628
|
+
catch (err) {
|
|
629
|
+
return `org_remember failed (${err instanceof Error ? err.message : 'error'})`;
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
/** Entry IDs served by org_recall during the current run, per org. This is
|
|
633
|
+
* the usage record the run-outcome auto-rating consumes (cognee's
|
|
634
|
+
* used_graph_element_ids pattern) — recall renders text to the agent, so
|
|
635
|
+
* the IDs must be captured here or they're gone. */
|
|
636
|
+
recallUsage = new Map();
|
|
489
637
|
/** org_recall implementation: search the org's memory namespace via the
|
|
490
638
|
* memory bridge (semantic when the local model is available, tokenized
|
|
491
639
|
* keyword otherwise). Failures return a message, never throw into the tool. */
|
|
492
|
-
async recallOrgMemory(name, def, query) {
|
|
640
|
+
async recallOrgMemory(name, def, query, role) {
|
|
493
641
|
try {
|
|
494
642
|
if (!(await this.orgMemoryUsable()))
|
|
495
643
|
return { text: 'org memory is not available in this environment.', hits: 0 };
|
|
496
|
-
const
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
644
|
+
const bridge = await import('../memory/memory-bridge.js');
|
|
645
|
+
// Shared org memory plus the caller's private agent scope, merged by score.
|
|
646
|
+
const [shared, priv] = await Promise.all([
|
|
647
|
+
bridge.bridgeSearchEntries({
|
|
648
|
+
query, namespace: this.orgMemoryNamespace(name, def), limit: 5, dbPath: this.orgMemoryDbPath(),
|
|
649
|
+
}),
|
|
650
|
+
role ? bridge.bridgeSearchEntries({
|
|
651
|
+
query, namespace: this.agentMemoryNamespace(name, def, role), limit: 3, dbPath: this.orgMemoryDbPath(),
|
|
652
|
+
}) : null,
|
|
653
|
+
]);
|
|
654
|
+
const results = [
|
|
655
|
+
...(shared?.results ?? []),
|
|
656
|
+
...(priv?.results ?? []).map(r => ({ ...r, key: `${r.key} (private)` })),
|
|
657
|
+
].sort((a, b) => b.score - a.score).slice(0, 6);
|
|
501
658
|
if (!results.length)
|
|
502
659
|
return { text: 'No matching org memory found — this may be the first run covering this topic.', hits: 0 };
|
|
503
|
-
const
|
|
660
|
+
const ids = results.map(r => r.id).filter(Boolean);
|
|
661
|
+
let used = this.recallUsage.get(name);
|
|
662
|
+
if (!used) {
|
|
663
|
+
used = new Set();
|
|
664
|
+
this.recallUsage.set(name, used);
|
|
665
|
+
}
|
|
666
|
+
for (const id of ids)
|
|
667
|
+
used.add(id);
|
|
668
|
+
// Frequency reinforcement is immediate; the feedback rating waits for the
|
|
669
|
+
// run outcome (positive-only — see storeRunMemory).
|
|
670
|
+
bridge.bridgeRecordUsage({ entryIds: ids, dbPath: this.orgMemoryDbPath() }).catch(() => { });
|
|
671
|
+
let text = results.map((r, i) => `${i + 1}. [${r.key}] ${r.content}`).join('\n\n');
|
|
672
|
+
// Structured knowledge: relationship triplets from the org KG, when any.
|
|
673
|
+
try {
|
|
674
|
+
const kg = await import('../memory/memory-kg.js');
|
|
675
|
+
const graph = await kg.kgSearch({ query, dbPath: this.orgMemoryDbPath(), limit: 5 });
|
|
676
|
+
if (graph.context)
|
|
677
|
+
text += `\n\nKnowledge graph:\n${graph.context}`;
|
|
678
|
+
}
|
|
679
|
+
catch { /* best effort */ }
|
|
504
680
|
return { text, hits: results.length };
|
|
505
681
|
}
|
|
506
682
|
catch (err) {
|
|
@@ -524,6 +700,38 @@ export class OrgDaemon {
|
|
|
524
700
|
return { text: `knowledge search unavailable (${err instanceof Error ? err.message : 'error'})`, hits: 0 };
|
|
525
701
|
}
|
|
526
702
|
}
|
|
703
|
+
/** org_learn implementation: merge coordinator-extracted entities/relations/
|
|
704
|
+
* rules into the org's knowledge graph (LLM extraction happens inside the
|
|
705
|
+
* agent's own subscription-auth SDK session — no separate LLM call here). */
|
|
706
|
+
orgLearnedRuns = new Set();
|
|
707
|
+
async learnOrgKnowledge(name, run, payload) {
|
|
708
|
+
try {
|
|
709
|
+
if (!(await this.orgMemoryUsable()))
|
|
710
|
+
return 'org memory is not available in this environment.';
|
|
711
|
+
const kg = await import('../memory/memory-kg.js');
|
|
712
|
+
const dbPath = this.orgMemoryDbPath();
|
|
713
|
+
const originRef = `run:${run}`;
|
|
714
|
+
const graph = await kg.kgIngest({
|
|
715
|
+
nodes: (payload.nodes ?? []),
|
|
716
|
+
edges: (payload.edges ?? []),
|
|
717
|
+
originRef, dbPath,
|
|
718
|
+
});
|
|
719
|
+
const rules = Array.isArray(payload.rules) && payload.rules.length
|
|
720
|
+
? await kg.kgIngestRules({ rules: payload.rules, originRef, dbPath })
|
|
721
|
+
: null;
|
|
722
|
+
this.orgLearnedRuns.add(`${name}:${run}`);
|
|
723
|
+
const parts = [
|
|
724
|
+
`entities: +${graph.nodesAdded} new, ${graph.nodesMerged} merged`,
|
|
725
|
+
`relations: +${graph.edgesAdded} new, ${graph.edgesMerged} merged`,
|
|
726
|
+
];
|
|
727
|
+
if (rules)
|
|
728
|
+
parts.push(`rules: ${rules.accepted} accepted, ${rules.verdicts.filter(v => v.verdict === 'already_known').length} already known`);
|
|
729
|
+
return `Recorded in org knowledge graph — ${parts.join('; ')}. Rollback ref: ${originRef}.`;
|
|
730
|
+
}
|
|
731
|
+
catch (err) {
|
|
732
|
+
return `org_learn failed (${err instanceof Error ? err.message : 'error'})`;
|
|
733
|
+
}
|
|
734
|
+
}
|
|
527
735
|
/** Persist the run's outcome into cross-run org memory so org_recall (and
|
|
528
736
|
* future runs) can find it by meaning, not just recency. Best-effort. */
|
|
529
737
|
async storeRunMemory(name, def, run, summary) {
|
|
@@ -547,6 +755,35 @@ export class OrgDaemon {
|
|
|
547
755
|
dbPath: this.orgMemoryDbPath(),
|
|
548
756
|
upsert: true,
|
|
549
757
|
});
|
|
758
|
+
// Heuristic KG fallback: if the coordinator never called org_learn this
|
|
759
|
+
// run, extract lower-trust entities from the outcome summary so the
|
|
760
|
+
// graph still accumulates something. LLM-quality extraction only comes
|
|
761
|
+
// from org_learn (the agent's own session).
|
|
762
|
+
if (!this.orgLearnedRuns.delete(`${name}:${run}`)) {
|
|
763
|
+
try {
|
|
764
|
+
const kg = await import('../memory/memory-kg.js');
|
|
765
|
+
const extracted = kg.heuristicExtract(lines.join('\n'), { sourceName: `run:${run}` });
|
|
766
|
+
if (extracted.nodes.length) {
|
|
767
|
+
await kg.kgIngest({ ...extracted, originRef: `run:${run}`, dbPath: this.orgMemoryDbPath() });
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
catch { /* best effort */ }
|
|
771
|
+
}
|
|
772
|
+
// Auto-rate the memories this run recalled — POSITIVE-ONLY: a failed run
|
|
773
|
+
// proves nothing about the recalled memories (the failure may be entirely
|
|
774
|
+
// unrelated), so failure never rates them down. Idempotent per run via
|
|
775
|
+
// the feedback ledger, so a retried stopOrg can't double-apply.
|
|
776
|
+
const used = this.recallUsage.get(name);
|
|
777
|
+
this.recallUsage.delete(name);
|
|
778
|
+
if (used?.size && summary.outcome?.status === 'achieved') {
|
|
779
|
+
const { bridgeApplyFeedback } = await import('../memory/memory-bridge.js');
|
|
780
|
+
await bridgeApplyFeedback({
|
|
781
|
+
entryIds: [...used],
|
|
782
|
+
score: 0.9,
|
|
783
|
+
ledgerKey: `org-${name}-${run}`,
|
|
784
|
+
dbPath: this.orgMemoryDbPath(),
|
|
785
|
+
}).catch(() => { });
|
|
786
|
+
}
|
|
550
787
|
}
|
|
551
788
|
catch (err) {
|
|
552
789
|
if (process.env.DEBUG || process.env.MONOMIND_DEBUG)
|