monomind 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/README.md +1 -1
- package/package.json +2 -1
- package/packages/@monomind/cli/.claude/agents/design/design-monodesign.md +6 -6
- package/packages/@monomind/cli/.claude/agents/github/repo-architect.md +3 -3
- package/packages/@monomind/cli/.claude/agents/github/sync-coordinator.md +2 -2
- package/packages/@monomind/cli/.claude/agents/specialists/integration-architect.md +4 -4
- package/packages/@monomind/cli/.claude/commands/github/repo-architect.md +4 -4
- package/packages/@monomind/cli/.claude/commands/github/sync-coordinator.md +2 -2
- package/packages/@monomind/cli/.claude/commands/mastermind/_repeat.md +4 -4
- package/packages/@monomind/cli/.claude/commands/mastermind/approvev1.md +4 -4
- package/packages/@monomind/cli/.claude/commands/mastermind/architect.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/autodev.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/brain.md +2 -2
- package/packages/@monomind/cli/.claude/commands/mastermind/build.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/code-review.md +2 -2
- package/packages/@monomind/cli/.claude/commands/mastermind/content.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/createorg.md +4 -4
- package/packages/@monomind/cli/.claude/commands/mastermind/createtask.md +3 -3
- package/packages/@monomind/cli/.claude/commands/mastermind/debug.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/design.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/do.md +2 -2
- package/packages/@monomind/cli/.claude/commands/mastermind/execute.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/finance.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/finish.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/idea.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/ideate.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/improve.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/marketing.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/master.md +54 -54
- package/packages/@monomind/cli/.claude/commands/mastermind/ops.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/orgs.md +2 -2
- package/packages/@monomind/cli/.claude/commands/mastermind/orgstatus.md +2 -2
- package/packages/@monomind/cli/.claude/commands/mastermind/plan.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/receive-review.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/release.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/research.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/review.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/runorg.md +4 -4
- package/packages/@monomind/cli/.claude/commands/mastermind/runorgv1.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/sales.md +6 -6
- package/packages/@monomind/cli/.claude/commands/mastermind/skill-builder.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/stoporg.md +3 -3
- package/packages/@monomind/cli/.claude/commands/mastermind/taskdev.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/tdd.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/techport.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/verify.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/worktree.md +5 -5
- package/packages/@monomind/cli/.claude/helpers/control-start.cjs +30 -0
- package/packages/@monomind/cli/.claude/helpers/event-logger.cjs +2 -2
- package/packages/@monomind/cli/.claude/helpers/extras-registry.json +1 -1
- package/packages/@monomind/cli/.claude/helpers/handlers/agent-start-handler.cjs +2 -2
- package/packages/@monomind/cli/.claude/helpers/handlers/edit-handler.cjs +2 -2
- package/packages/@monomind/cli/.claude/helpers/handlers/gates-handler.cjs +1 -1
- package/packages/@monomind/cli/.claude/helpers/handlers/route-handler.cjs +1 -1
- package/packages/@monomind/cli/.claude/helpers/handlers/session-handler.cjs +1 -1
- package/packages/@monomind/cli/.claude/helpers/handlers/session-restore-handler.cjs +11 -11
- package/packages/@monomind/cli/.claude/helpers/handlers/task-handler.cjs +2 -2
- package/packages/@monomind/cli/.claude/helpers/hook-handler.cjs +8 -8
- package/packages/@monomind/cli/.claude/helpers/utils/monograph.cjs +44 -12
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/access.md → mastermind-access/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/activity.md → mastermind-activity/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/adapter-manager.md → mastermind-adapter-manager/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/adapters.md → mastermind-adapters/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/agent-detail.md → mastermind-agent-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/agents.md → mastermind-agents/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/approval-detail.md → mastermind-approval-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/approvev1.md → mastermind-approvev1/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/architect.md → mastermind-architect/SKILL.md} +7 -7
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/autodev.md → mastermind-autodev/SKILL.md} +10 -10
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/backup.md → mastermind-backup/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/bootstrap.md → mastermind-bootstrap/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/budgets.md → mastermind-budgets/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/build.md → mastermind-build/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/companies.md → mastermind-companies/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/content.md → mastermind-content/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/costs.md → mastermind-costs/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/createorg.md → mastermind-createorg/SKILL.md} +3 -3
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/debug.md → mastermind-debug/SKILL.md} +4 -4
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_delegation.md → mastermind-delegation/SKILL.md} +1 -1
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/design.md → mastermind-design/SKILL.md} +9 -9
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/diagnose.md → mastermind-diagnose/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/env.md → mastermind-env/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/environments.md → mastermind-environments/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/execute.md → mastermind-execute/SKILL.md} +10 -10
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/export.md → mastermind-export/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/finance.md → mastermind-finance/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/goal-detail.md → mastermind-goal-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/goals.md → mastermind-goals/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/heartbeatv1.md → mastermind-heartbeatv1/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/idea.md → mastermind-idea/SKILL.md} +7 -7
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/import.md → mastermind-import/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/inbox.md → mastermind-inbox/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/instance.md → mastermind-instance/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/instance-settings.md → mastermind-instance-settings/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/invite-landing.md → mastermind-invite-landing/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/invites.md → mastermind-invites/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/issue-detail.md → mastermind-issue-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/issues.md → mastermind-issues/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/join-queue.md → mastermind-join-queue/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/liveness.md → mastermind-liveness/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/marketing.md → mastermind-marketing/SKILL.md} +8 -8
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/memory.md → mastermind-memory/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/monitor.md → mastermind-monitor/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/my-issues.md → mastermind-my-issues/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/new-agent.md → mastermind-new-agent/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/ops.md → mastermind-ops/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/org-chart.md → mastermind-org-chart/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/org-settings.md → mastermind-org-settings/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/orgs.md → mastermind-orgs/SKILL.md} +1 -1
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/orgstatus.md → mastermind-orgstatus/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plan.md → mastermind-plan/SKILL.md} +7 -7
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plan-to-tasks.md → mastermind-plan-to-tasks/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plugin-manager.md → mastermind-plugin-manager/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plugin-settings.md → mastermind-plugin-settings/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plugins.md → mastermind-plugins/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/profile.md → mastermind-profile/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/project-detail.md → mastermind-project-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/project-workspace.md → mastermind-project-workspace/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/projects.md → mastermind-projects/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_protocol.md → mastermind-protocol/SKILL.md} +3 -3
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/release.md → mastermind-release/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_repeat.md → mastermind-repeat/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/research.md → mastermind-research/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/review.md → mastermind-review/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/routine-detail.md → mastermind-routine-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/routines.md → mastermind-routines/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/runorgv1.md → mastermind-runorgv1/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/sales.md → mastermind-sales/SKILL.md} +5 -5
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/search.md → mastermind-search/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/secrets.md → mastermind-secrets/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/skill-builder.md → mastermind-skill-builder/SKILL.md} +16 -14
- package/packages/@monomind/cli/.claude/skills/mastermind-skills/{skills.md → SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/stoporg.md → mastermind-stoporg/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/taskdev.md → mastermind-taskdev/SKILL.md} +6 -6
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/implementer-prompt.md +1 -1
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/tasks.md → mastermind-tasks/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/tdd.md → mastermind-tdd/SKILL.md} +4 -4
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/techport.md → mastermind-techport/SKILL.md} +6 -6
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/threads.md → mastermind-threads/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/tree-control.md → mastermind-tree-control/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/verify.md → mastermind-verify/SKILL.md} +1 -1
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/wiki.md → mastermind-wiki/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/workspace-detail.md → mastermind-workspace-detail/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/{mastermind-skills/workspaces.md → mastermind-workspaces/SKILL.md} +2 -2
- package/packages/@monomind/cli/.claude/skills/monodesign/SKILL.md +114 -190
- package/packages/@monomind/cli/.claude/skills/monodesign/adapt.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/agents/monodesign-asset-producer.md +4 -4
- package/packages/@monomind/cli/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +103 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/audit.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/craft.md +2 -2
- package/packages/@monomind/cli/.claude/skills/monodesign/critique.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/init.md +30 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/layout.md +36 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/live.md +19 -44
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/adapt.md +122 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/adapt.native.md +58 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/android.md +40 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/animate.md +39 -11
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/antipatterns-catalog.md +67 -16
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/audit.md +5 -3
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/audit.native.md +139 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/bolder.md +71 -64
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/brand.md +12 -18
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/clarify.md +114 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/codex.md +4 -6
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/colorize.md +108 -5
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/craft.md +70 -143
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/critique.md +635 -68
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/delight.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/distill.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/document.md +24 -22
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/extract.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/hooks.md +22 -29
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/init.md +221 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/interaction-design.md +0 -6
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/ios.md +45 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/layout.md +57 -13
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/live.md +159 -71
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/overdrive.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/personas.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/polish.md +16 -8
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/pre-delivery-checklist.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/product.md +1 -3
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/quieter.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/shape.md +27 -13
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/teach.md +6 -152
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/typeset.md +180 -3
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/command-metadata.json +94 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/context-signals.mjs +260 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/context.mjs +1061 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/critique-storage.mjs +416 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detect-csp.mjs +198 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detect.mjs +33 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +1962 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/cli/main.mjs +321 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/design-system.mjs +814 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +5601 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +50 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +259 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +258 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +636 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +1015 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +253 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +198 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/findings.mjs +12 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +181 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +373 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/index.mjs +426 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +198 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +166 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +563 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +2995 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/color.mjs +124 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +101 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +30 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +148 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/page.mjs +7 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-admin.mjs +661 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-before-edit.mjs +516 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-lib.mjs +1776 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook.mjs +61 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/design-parser.mjs +842 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/is-generated.mjs +69 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +640 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +129 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/provider.mjs +4 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/target-args.mjs +42 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +50 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/completion.mjs +19 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/event-validation.mjs +137 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/insert-ui.mjs +458 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-apply.mjs +939 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +357 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +152 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/session-store.mjs +293 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/svelte-component.mjs +826 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +274 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/ui-core.mjs +180 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/vocabulary.mjs +36 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-accept.mjs +812 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser-dom.js +146 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser-session.js +123 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser.js +11240 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +1241 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-complete.mjs +75 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +683 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +51 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-inject.mjs +583 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-insert.mjs +272 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +363 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-poll.mjs +384 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-resume.mjs +94 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-server.mjs +1137 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-status.mjs +61 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-target.mjs +30 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-wrap.mjs +894 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live.mjs +297 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +14 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/palette.mjs +633 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/scripts/pin.mjs +221 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/teach.md +7 -58
- package/packages/@monomind/cli/README.md +1 -1
- package/packages/@monomind/cli/dist/src/commands/design-detect.d.ts +7 -1
- package/packages/@monomind/cli/dist/src/commands/design-detect.js +131 -38
- package/packages/@monomind/cli/dist/src/commands/design-palette.d.ts +0 -1
- package/packages/@monomind/cli/dist/src/commands/design-palette.js +2 -3
- package/packages/@monomind/cli/dist/src/commands/doc.js +72 -15
- package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.d.ts +5 -1
- package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.js +24 -1
- package/packages/@monomind/cli/dist/src/commands/doctor.js +3 -3
- package/packages/@monomind/cli/dist/src/commands/hooks-workers.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/commands/hooks-workers.js +8 -8
- package/packages/@monomind/cli/dist/src/commands/init.js +2 -2
- package/packages/@monomind/cli/dist/src/commands/org.js +109 -9
- package/packages/@monomind/cli/dist/src/index.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/index.js +3 -3
- package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +5 -5
- package/packages/@monomind/cli/dist/src/init/executor.js +17 -6
- package/packages/@monomind/cli/dist/src/knowledge/document-pipeline.d.ts +2 -0
- package/packages/@monomind/cli/dist/src/knowledge/document-pipeline.js +4 -1
- package/packages/@monomind/cli/dist/src/mcp-server.js +2 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.js +1 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.js +2 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +1 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/knowledge-tools.js +38 -7
- package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.d.ts +8 -3
- package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +193 -31
- package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +33 -0
- package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +166 -17
- package/packages/@monomind/cli/dist/src/memory/memory-kg.d.ts +186 -0
- package/packages/@monomind/cli/dist/src/memory/memory-kg.js +450 -0
- package/packages/@monomind/cli/dist/src/memory/query-router.d.ts +44 -0
- package/packages/@monomind/cli/dist/src/memory/query-router.js +113 -0
- package/packages/@monomind/cli/dist/src/orgrt/daemon.d.ts +18 -0
- package/packages/@monomind/cli/dist/src/orgrt/daemon.js +249 -12
- package/packages/@monomind/cli/dist/src/orgrt/migrate.js +7 -0
- package/packages/@monomind/cli/dist/src/orgrt/policy.js +7 -0
- package/packages/@monomind/cli/dist/src/orgrt/session.d.ts +24 -1
- package/packages/@monomind/cli/dist/src/orgrt/session.js +18 -3
- package/packages/@monomind/cli/dist/src/orgrt/templates.d.ts +1 -0
- package/packages/@monomind/cli/dist/src/orgrt/templates.js +9 -4
- package/packages/@monomind/cli/dist/src/orgrt/types.d.ts +15 -0
- package/packages/@monomind/cli/dist/src/orgrt/types.js +2 -0
- package/packages/@monomind/cli/dist/src/routing/embed-worker.js +1 -1
- package/packages/@monomind/cli/dist/src/routing/llm-caller.js +1 -1
- package/packages/@monomind/cli/dist/src/routing/route-layer-factory.js +1 -1
- package/packages/@monomind/cli/dist/src/ui/dashboard.html +176 -26
- package/packages/@monomind/cli/dist/src/ui/orgs.html +24 -0
- package/packages/@monomind/cli/dist/src/ui/server.mjs +162 -12
- package/packages/@monomind/cli/dist/src/update/checker.js +3 -3
- package/packages/@monomind/cli/package.json +8 -6
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_agent-select.md → mastermind-agent-select/SKILL.md} +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/finish.md → mastermind-finish/SKILL.md} +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_intake.md → mastermind-intake/SKILL.md} +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-marketing}/references/copywriting-frameworks.md +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-marketing}/references/persuasion-psychology.md +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/monotask.md → mastermind-monotask/SKILL.md} +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/receive-review.md → mastermind-receive-review/SKILL.md} +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/runorg.md → mastermind-runorg/SKILL.md} +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/code-quality-reviewer-prompt.md +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/final-reviewer-prompt.md +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/spec-reviewer-prompt.md +0 -0
- /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/worktree.md → mastermind-worktree/SKILL.md} +0 -0
|
@@ -32,7 +32,7 @@ async function main() {
|
|
|
32
32
|
}
|
|
33
33
|
// Cap the task to prevent OOM when an oversized string is passed to the embedding model.
|
|
34
34
|
const task = rawTask.length > MAX_TASK_LENGTH ? rawTask.slice(0, MAX_TASK_LENGTH) : rawTask;
|
|
35
|
-
const { RouteLayer, ALL_ROUTES } = await import('@
|
|
35
|
+
const { RouteLayer, ALL_ROUTES } = await import('@monoes/routing');
|
|
36
36
|
const semantic = await createSemanticRouting(ALL_ROUTES);
|
|
37
37
|
if (!semantic) {
|
|
38
38
|
// Model unavailable — signal the parent to degrade.
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* No API key required: the host's existing Claude Code auth is reused.
|
|
8
8
|
*
|
|
9
9
|
* The returned function matches `LLMFallbackConfig.llmCaller` from
|
|
10
|
-
* `@
|
|
10
|
+
* `@monoes/routing` — `(prompt: string) => Promise<string>`. When the
|
|
11
11
|
* `claude` CLI is unavailable it throws, which the routing layer already
|
|
12
12
|
* catches and degrades to the best semantic match.
|
|
13
13
|
*/
|
|
@@ -140,7 +140,7 @@ function runWorker(task) {
|
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
142
|
export async function createConfiguredRouteLayer(opts = {}) {
|
|
143
|
-
const { RouteLayer, KeywordPreFilter, LLMFallbackRouter, ALL_ROUTES } = await import('@
|
|
143
|
+
const { RouteLayer, KeywordPreFilter, LLMFallbackRouter, ALL_ROUTES } = await import('@monoes/routing');
|
|
144
144
|
const { createClaudeLLMCaller } = await import('./llm-caller.js');
|
|
145
145
|
const llmCaller = createClaudeLLMCaller({ model: 'haiku' });
|
|
146
146
|
const keyword = new KeywordPreFilter();
|
|
@@ -126,14 +126,17 @@ html, body { height: 100%; background: var(--bg); color: var(--text-hi); font-fa
|
|
|
126
126
|
/* ── detail panel ─────────────────────────────────────────── */
|
|
127
127
|
#detail-panel {
|
|
128
128
|
position: absolute; top: 0; right: 252px; bottom: 0;
|
|
129
|
-
width:
|
|
129
|
+
width: 280px; overflow: hidden;
|
|
130
130
|
background: oklch(13% 0.009 55);
|
|
131
131
|
border-left: 1px solid var(--border);
|
|
132
132
|
border-right: 1px solid var(--border);
|
|
133
|
-
|
|
133
|
+
/* compositor-only reveal (opacity/transform) — animating width reflows on every frame */
|
|
134
|
+
opacity: 0; visibility: hidden; transform: translateX(12px);
|
|
135
|
+
transition: opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s 0.22s;
|
|
134
136
|
display: flex; flex-direction: column; z-index: 10;
|
|
135
137
|
}
|
|
136
|
-
#detail-panel.open {
|
|
138
|
+
#detail-panel.open { opacity: 1; visibility: visible; transform: none; transition: opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s 0s; }
|
|
139
|
+
@media (prefers-reduced-motion: reduce) { #detail-panel { transition: none; } #rp-fill { transition: none; } }
|
|
137
140
|
#detail-head { padding: 12px 14px; border-bottom: 1px solid var(--border); display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
|
|
138
141
|
#detail-head h3 { font-size: 12px; font-weight: 600; color: var(--text-hi); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
139
142
|
#detail-close { font-size: 14px; color: var(--text-lo); background: none; border: none; cursor: pointer; padding: 0 2px; line-height: 1; }
|
|
@@ -245,7 +248,7 @@ html, body { height: 100%; background: var(--bg); color: var(--text-hi); font-fa
|
|
|
245
248
|
.loop-cdown { font-family: var(--mono); font-size: 11px; color: var(--accent); white-space: nowrap; display: inline; }
|
|
246
249
|
.loop-cdown.overdue { color: var(--red); }
|
|
247
250
|
.lp-bar { height: 4px; background: var(--border); border-radius: 2px; margin-top: 5px; overflow: hidden; }
|
|
248
|
-
.lp-fill { height: 100%; background: var(--accent); border-radius: 2px;
|
|
251
|
+
.lp-fill { height: 100%; background: var(--accent); border-radius: 2px; }
|
|
249
252
|
.loop-stop-btn { font-size: 11px; padding: 2px 8px; background: none; border: 1px solid var(--border); border-radius: 4px; color: var(--text-lo); cursor: pointer; font-family: var(--sans); }
|
|
250
253
|
.loop-stop-btn:hover { border-color: var(--red); color: var(--red); }
|
|
251
254
|
.loop-status.done { background: var(--surface-hi); color: var(--text-xs); }
|
|
@@ -426,8 +429,53 @@ html, body { height: 100%; background: var(--bg); color: var(--text-hi); font-fa
|
|
|
426
429
|
.oms-val { font-size: 12px; color: var(--text-hi); word-break: break-word; line-height: 1.4; }
|
|
427
430
|
|
|
428
431
|
/* SVG org chart */
|
|
429
|
-
.org-chart-wrap { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; margin-bottom: 12px; }
|
|
432
|
+
.org-chart-wrap { position: relative; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; margin-bottom: 12px; }
|
|
430
433
|
.org-chart-svg { width: 100%; display: block; }
|
|
434
|
+
.v2-chart-expand {
|
|
435
|
+
position: absolute; top: 8px; right: 8px; z-index: 3;
|
|
436
|
+
width: 28px; height: 28px; padding: 0;
|
|
437
|
+
display: grid; place-items: center;
|
|
438
|
+
font-size: 14px; line-height: 1; cursor: pointer;
|
|
439
|
+
color: oklch(60% 0.01 75); background: oklch(16% 0.01 55 / 0.85);
|
|
440
|
+
border: 1px solid var(--border); border-radius: 6px;
|
|
441
|
+
transition: color 0.15s, border-color 0.15s;
|
|
442
|
+
}
|
|
443
|
+
.v2-chart-expand:hover { color: oklch(80% 0.12 75); border-color: oklch(72% 0.18 75 / 0.5); }
|
|
444
|
+
#v2-chart-modal {
|
|
445
|
+
position: fixed; inset: 0; z-index: 1200;
|
|
446
|
+
display: flex; flex-direction: column;
|
|
447
|
+
background: oklch(9% 0.008 55 / 0.985);
|
|
448
|
+
opacity: 0; transition: opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1);
|
|
449
|
+
}
|
|
450
|
+
#v2-chart-modal.open { opacity: 1; }
|
|
451
|
+
#v2-chart-modal .v2cm-head {
|
|
452
|
+
display: flex; align-items: center; justify-content: space-between;
|
|
453
|
+
padding: 14px 20px; border-bottom: 1px solid var(--border); flex: 0 0 auto;
|
|
454
|
+
}
|
|
455
|
+
#v2-chart-modal .v2cm-title {
|
|
456
|
+
font-size: 14px; font-weight: 600; letter-spacing: 0.02em; color: var(--text-hi, oklch(88% 0.005 75));
|
|
457
|
+
}
|
|
458
|
+
#v2-chart-modal .v2cm-close {
|
|
459
|
+
width: 32px; height: 32px; padding: 0; display: grid; place-items: center;
|
|
460
|
+
font-size: 15px; cursor: pointer; color: oklch(60% 0.01 75);
|
|
461
|
+
background: oklch(16% 0.01 55); border: 1px solid var(--border); border-radius: 7px;
|
|
462
|
+
transition: color 0.15s, border-color 0.15s;
|
|
463
|
+
}
|
|
464
|
+
#v2-chart-modal .v2cm-close:hover { color: oklch(85% 0.01 75); border-color: oklch(50% 0.01 75); }
|
|
465
|
+
#v2-chart-modal .v2cm-body {
|
|
466
|
+
flex: 1 1 auto; min-height: 0; overflow: auto; padding: 18px 24px 24px;
|
|
467
|
+
transform: scale(0.985); transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
|
|
468
|
+
}
|
|
469
|
+
#v2-chart-modal.open .v2cm-body { transform: scale(1); }
|
|
470
|
+
#v2-chart-modal .org-chart-wrap { border: none; background: transparent; }
|
|
471
|
+
#v2-chart-modal .org-chart-svg { min-height: calc(100vh - 260px) !important; max-height: none; }
|
|
472
|
+
.v2cm-placeholder {
|
|
473
|
+
padding: 40px 16px; text-align: center;
|
|
474
|
+
color: oklch(48% 0.005 75); font-size: 12px; letter-spacing: 0.02em;
|
|
475
|
+
}
|
|
476
|
+
@media (prefers-reduced-motion: reduce) {
|
|
477
|
+
#v2-chart-modal, #v2-chart-modal .v2cm-body { transition: none; transform: none; }
|
|
478
|
+
}
|
|
431
479
|
.v2-bubble-inner {
|
|
432
480
|
background: oklch(18% 0.01 55 / 0.95);
|
|
433
481
|
border: 1px solid oklch(72% 0.18 75 / 0.4);
|
|
@@ -744,7 +792,7 @@ html, body { height: 100%; background: var(--bg); color: var(--text-hi); font-fa
|
|
|
744
792
|
.rp-btn:hover { color:var(--text-hi); }
|
|
745
793
|
.rp-btn.active { color:var(--accent); border-color:oklch(72% 0.18 75 / 0.5); }
|
|
746
794
|
#rp-progress { flex:1; height:3px; background:var(--surface-hi); border-radius:2px; overflow:hidden; }
|
|
747
|
-
#rp-fill { height:100%; background:var(--accent); border-radius:2px; transition:
|
|
795
|
+
#rp-fill { height:100%; width:100%; background:var(--accent); border-radius:2px; transform:scaleX(0); transform-origin:left; transition:transform 0.15s; }
|
|
748
796
|
#rp-counter { font-size:11px; color:var(--text-lo); font-family:var(--mono); white-space:nowrap; }
|
|
749
797
|
|
|
750
798
|
/* ── agent chat view ─────────────────────────────────────── */
|
|
@@ -886,7 +934,7 @@ html, body { height: 100%; background: var(--bg); color: var(--text-hi); font-fa
|
|
|
886
934
|
.burn-gauge-row { display:flex; align-items:center; gap:8px; margin-bottom:4px; }
|
|
887
935
|
.burn-gauge-label { font-size:10px; color:var(--text-lo); width:60px; flex-shrink:0; }
|
|
888
936
|
.burn-gauge-track { flex:1; height:6px; background:var(--surface-hi); border-radius:3px; overflow:hidden; }
|
|
889
|
-
.burn-gauge-fill { height:100%; border-radius:3px;
|
|
937
|
+
.burn-gauge-fill { height:100%; border-radius:3px; }
|
|
890
938
|
.burn-val { font-size:10px; font-family:var(--mono); color:var(--text-xs); white-space:nowrap; }
|
|
891
939
|
.burn-rate-ok { background:oklch(65% 0.15 150); }
|
|
892
940
|
.burn-rate-warn { background:oklch(72% 0.18 75); }
|
|
@@ -1177,7 +1225,7 @@ textarea.sess-note-input:focus { border-color:var(--accent); }
|
|
|
1177
1225
|
.mg-bar-row { display:flex; align-items:center; gap:8px; margin-bottom:5px; font-size:12px; }
|
|
1178
1226
|
.mg-bar-row .mg-bar-lbl { width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-mid); flex-shrink:0; }
|
|
1179
1227
|
.mg-bar-track { flex:1; background:var(--surface-hi); border-radius:3px; height:6px; overflow:hidden; }
|
|
1180
|
-
.mg-bar-fill { height:100%; border-radius:3px; background:var(--accent);
|
|
1228
|
+
.mg-bar-fill { height:100%; border-radius:3px; background:var(--accent); }
|
|
1181
1229
|
.mg-bar-fill.mg { background:var(--mg-accent); }
|
|
1182
1230
|
.mg-bar-val { width:32px; text-align:right; color:var(--text-lo); font-size:11px; font-family:var(--mono); }
|
|
1183
1231
|
.mg-section-title { font-size:11px; text-transform:uppercase; letter-spacing:0.07em; color:var(--text-xs); margin:16px 0 8px; }
|
|
@@ -1213,7 +1261,7 @@ textarea.sess-note-input:focus { border-color:var(--accent); }
|
|
|
1213
1261
|
.mgr-ranked-num { font-size:10px; font-family:var(--mono); color:var(--text-lo); text-align:right; }
|
|
1214
1262
|
.mgr-ranked-name { font-size:12px; color:var(--text-hi); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
|
1215
1263
|
.mgr-ranked-bar-wrap { height:3px; background:oklch(25% 0.008 55); border-radius:2px; overflow:hidden; }
|
|
1216
|
-
.mgr-ranked-bar-fill { height:100%; border-radius:2px; background:var(--accent); transition:
|
|
1264
|
+
.mgr-ranked-bar-fill { height:100%; border-radius:2px; background:var(--accent); transform-origin:left; transition:transform 0.45s cubic-bezier(0.16,1,0.3,1); }
|
|
1217
1265
|
.mgr-ranked-val { font-size:11px; font-family:var(--mono); color:var(--accent); text-align:right; white-space:nowrap; }
|
|
1218
1266
|
/* risk items */
|
|
1219
1267
|
.mgr-risk-list { display:flex; flex-direction:column; gap:6px; }
|
|
@@ -1244,7 +1292,7 @@ textarea.sess-note-input:focus { border-color:var(--accent); }
|
|
|
1244
1292
|
.mgr-bar-row { display:grid; grid-template-columns:130px 1fr 70px; align-items:center; gap:10px; }
|
|
1245
1293
|
.mgr-bar-label { font-size:11px; font-family:var(--mono); color:var(--text-mid); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
|
1246
1294
|
.mgr-bar-track { height:4px; background:oklch(25% 0.008 55); border-radius:2px; overflow:hidden; }
|
|
1247
|
-
.mgr-bar-fill { height:100%; border-radius:2px; transition:
|
|
1295
|
+
.mgr-bar-fill { height:100%; border-radius:2px; transform-origin:left; transition:transform 0.5s cubic-bezier(0.16,1,0.3,1); }
|
|
1248
1296
|
.mgr-bar-count { font-size:11px; font-family:var(--mono); color:var(--text-lo); text-align:right; white-space:nowrap; }
|
|
1249
1297
|
/* all-clear */
|
|
1250
1298
|
.mgr-clear { font-size:12px; color:var(--green); font-family:var(--mono); padding:8px 0; display:flex; align-items:center; gap:8px; }
|
|
@@ -1301,7 +1349,7 @@ textarea.sess-note-input:focus { border-color:var(--accent); }
|
|
|
1301
1349
|
.mgr-node-name { font-size:12px; font-weight:600; color:var(--text-hi); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
|
1302
1350
|
.mgr-node-type { font-size:10px; font-family:var(--mono); color:var(--text-lo); background:oklch(25% 0.008 55); padding:2px 7px; border-radius:3px; white-space:nowrap; }
|
|
1303
1351
|
.mgr-node-bar-wrap { height:3px; background:oklch(25% 0.008 55); border-radius:2px; overflow:hidden; }
|
|
1304
|
-
.mgr-node-bar-fill { height:100%; background:var(--accent); border-radius:2px; transition:
|
|
1352
|
+
.mgr-node-bar-fill { height:100%; background:var(--accent); border-radius:2px; transform-origin:left; transition:transform 0.4s cubic-bezier(0.16,1,0.3,1); }
|
|
1305
1353
|
.mgr-node-count { font-size:11px; font-family:var(--mono); color:var(--accent); text-align:right; white-space:nowrap; }
|
|
1306
1354
|
|
|
1307
1355
|
/* Type distribution */
|
|
@@ -1309,7 +1357,7 @@ textarea.sess-note-input:focus { border-color:var(--accent); }
|
|
|
1309
1357
|
.mgr-type-row { display:grid; grid-template-columns:100px 1fr 52px 44px; align-items:center; gap:12px; }
|
|
1310
1358
|
.mgr-type-name { font-size:11px; font-family:var(--mono); color:var(--text-mid); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
|
1311
1359
|
.mgr-type-bar-wrap { height:4px; background:oklch(25% 0.008 55); border-radius:2px; overflow:hidden; }
|
|
1312
|
-
.mgr-type-bar-fill { height:100%; border-radius:2px; transition:
|
|
1360
|
+
.mgr-type-bar-fill { height:100%; border-radius:2px; transform-origin:left; transition:transform 0.5s cubic-bezier(0.16,1,0.3,1); }
|
|
1313
1361
|
.mgr-type-count { font-size:11px; font-family:var(--mono); color:var(--text-mid); text-align:right; }
|
|
1314
1362
|
.mgr-type-pct { font-size:10px; font-family:var(--mono); color:var(--text-lo); text-align:right; }
|
|
1315
1363
|
|
|
@@ -1445,7 +1493,7 @@ select.pb-cfg-inp { padding: 4px 7px; cursor: pointer; }
|
|
|
1445
1493
|
.wf-run-meta span { display: flex; align-items: center; gap: 4px; }
|
|
1446
1494
|
.wf-run-error { font-size: 11px; color: var(--red); margin-top: 6px; font-family: var(--mono); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
1447
1495
|
.wf-progress-bar { height: 3px; background: var(--border); border-radius: 2px; margin-top: 8px; overflow: hidden; }
|
|
1448
|
-
.wf-progress-bar-fill { height: 100%; background: var(--accent); border-radius: 2px;
|
|
1496
|
+
.wf-progress-bar-fill { height: 100%; background: var(--accent); border-radius: 2px; }
|
|
1449
1497
|
#wf-runs-list .loading-txt, #wf-defs-list .loading-txt { padding: 40px 0; text-align: center; color: var(--text-lo); }
|
|
1450
1498
|
.wf-def-card { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 14px 16px; margin-bottom: 8px; display: flex; align-items: flex-start; gap: 14px; cursor: default; transition: border-color 0.12s; }
|
|
1451
1499
|
.wf-def-card:hover { border-color: var(--accent); }
|
|
@@ -1630,7 +1678,7 @@ select.pb-cfg-inp { padding: 4px 7px; cursor: pointer; }
|
|
|
1630
1678
|
<button class="rp-btn" id="rp-play" onclick="replayToggle()" title="Play/pause replay">▶</button>
|
|
1631
1679
|
<button class="rp-btn" onclick="replayStep(-1)" title="Step back">‹</button>
|
|
1632
1680
|
<button class="rp-btn" onclick="replayStep(1)" title="Step forward">›</button>
|
|
1633
|
-
<div id="rp-progress"><div id="rp-fill"
|
|
1681
|
+
<div id="rp-progress"><div id="rp-fill"></div></div>
|
|
1634
1682
|
<span id="rp-counter">0 / 0</span>
|
|
1635
1683
|
<button class="rp-btn" onclick="stopReplay()" title="Exit replay">✕</button>
|
|
1636
1684
|
</div>
|
|
@@ -4924,7 +4972,7 @@ function highlightReplayEntry() {
|
|
|
4924
4972
|
});
|
|
4925
4973
|
const total = replayEvents.length;
|
|
4926
4974
|
const pct = total > 1 ? Math.round(replayIdx / (total - 1) * 100) : 100;
|
|
4927
|
-
document.getElementById('rp-fill').style.
|
|
4975
|
+
document.getElementById('rp-fill').style.transform = 'scaleX(' + (pct / 100) + ')';
|
|
4928
4976
|
document.getElementById('rp-counter').textContent = `${replayIdx + 1} / ${total}`;
|
|
4929
4977
|
// scroll into view
|
|
4930
4978
|
replayEvents[replayIdx]?.scrollIntoView({ block: 'nearest' });
|
|
@@ -6050,6 +6098,43 @@ function _v2OrgIsLeader(r) {
|
|
|
6050
6098
|
|| r.agent_type === 'coordinator' || r.agent_type === 'devbot-orchestrator';
|
|
6051
6099
|
}
|
|
6052
6100
|
|
|
6101
|
+
// ── Full-page chart modal ──────────────────────────────────────────────
|
|
6102
|
+
// While open, v2RenderOrgChart() renders into the modal body (wider viewBox)
|
|
6103
|
+
// and the inline pane holds a placeholder. Close restores the inline chart.
|
|
6104
|
+
let _v2ChartExpanded = false;
|
|
6105
|
+
function _v2ChartEsc(e) { if (e.key === 'Escape') v2ToggleChartExpand(false); }
|
|
6106
|
+
function v2ToggleChartExpand(open) {
|
|
6107
|
+
_v2ChartExpanded = !!open;
|
|
6108
|
+
let m = document.getElementById('v2-chart-modal');
|
|
6109
|
+
if (open) {
|
|
6110
|
+
if (!m) {
|
|
6111
|
+
m = document.createElement('div');
|
|
6112
|
+
m.id = 'v2-chart-modal';
|
|
6113
|
+
m.setAttribute('role', 'dialog');
|
|
6114
|
+
m.setAttribute('aria-modal', 'true');
|
|
6115
|
+
m.setAttribute('aria-label', 'Org chart, expanded view');
|
|
6116
|
+
m.innerHTML = `
|
|
6117
|
+
<div class="v2cm-head">
|
|
6118
|
+
<div class="v2cm-title"></div>
|
|
6119
|
+
<button class="v2cm-close" onclick="v2ToggleChartExpand(false)" aria-label="Close expanded chart">✕</button>
|
|
6120
|
+
</div>
|
|
6121
|
+
<div id="v2-chart-modal-body" class="v2cm-body"></div>`;
|
|
6122
|
+
document.body.appendChild(m);
|
|
6123
|
+
}
|
|
6124
|
+
m.querySelector('.v2cm-title').textContent = _v2SelOrg || 'Org chart';
|
|
6125
|
+
const inlinePane = document.getElementById('odt-chart');
|
|
6126
|
+
if (inlinePane) inlinePane.innerHTML = '<div class="v2cm-placeholder">Chart is expanded to full page · press Esc or ✕ to bring it back</div>';
|
|
6127
|
+
document.addEventListener('keydown', _v2ChartEsc);
|
|
6128
|
+
requestAnimationFrame(() => m.classList.add('open'));
|
|
6129
|
+
v2RenderOrgChart();
|
|
6130
|
+
m.querySelector('.v2cm-close').focus();
|
|
6131
|
+
} else {
|
|
6132
|
+
document.removeEventListener('keydown', _v2ChartEsc);
|
|
6133
|
+
if (m) m.remove();
|
|
6134
|
+
v2RenderOrgChart();
|
|
6135
|
+
}
|
|
6136
|
+
}
|
|
6137
|
+
|
|
6053
6138
|
function v2RenderOrgChart() {
|
|
6054
6139
|
if (!_v2SelOrg) return;
|
|
6055
6140
|
const d = _v2OrgData;
|
|
@@ -6060,7 +6145,17 @@ function v2RenderOrgChart() {
|
|
|
6060
6145
|
const goalText = d.goal || '—';
|
|
6061
6146
|
const topo = (d.topology || 'hierarchical').toLowerCase();
|
|
6062
6147
|
const created = d.created_at ? new Date(d.created_at).toLocaleDateString('en', {month:'short',day:'numeric',year:'numeric'}) : '—';
|
|
6063
|
-
|
|
6148
|
+
// Expanded mode renders into the full-page modal instead of the inline pane.
|
|
6149
|
+
// Exactly ONE chart instance exists at a time — the bubble/letter/particle
|
|
6150
|
+
// animation code queries singleton ids (v2-org-svg, v2oc-letters, …).
|
|
6151
|
+
const pane = _v2ChartExpanded
|
|
6152
|
+
? document.getElementById('v2-chart-modal-body')
|
|
6153
|
+
: document.getElementById('odt-chart');
|
|
6154
|
+
if (!pane) return;
|
|
6155
|
+
if (_v2ChartExpanded) {
|
|
6156
|
+
const _t = document.querySelector('#v2-chart-modal .v2cm-title');
|
|
6157
|
+
if (_t) _t.textContent = _v2SelOrg;
|
|
6158
|
+
}
|
|
6064
6159
|
|
|
6065
6160
|
// ── color palette ─────────────────────────────────────
|
|
6066
6161
|
const COLORS = [
|
|
@@ -6085,7 +6180,19 @@ function v2RenderOrgChart() {
|
|
|
6085
6180
|
}
|
|
6086
6181
|
|
|
6087
6182
|
// ── layout positions ──────────────────────────────────
|
|
6088
|
-
|
|
6183
|
+
// Expanded: width scales with head-count so nodes never overlap (inline
|
|
6184
|
+
// keeps the compact 720 viewBox that fits the tab column).
|
|
6185
|
+
let W = _v2ChartExpanded ? Math.max(1100, roles.length * 130) : 720;
|
|
6186
|
+
// Crowded orgs (8+ roles) get smaller rings + serpentine re-flow in BOTH
|
|
6187
|
+
// views, so topology reads instead of a wall of overlapping circles. Top
|
|
6188
|
+
// padding reserves room for activity bubbles (34px box floating 46px above
|
|
6189
|
+
// the ring) so message pop-ups never clip.
|
|
6190
|
+
const _crowded = roles.length > 7;
|
|
6191
|
+
const R = (_v2ChartExpanded || _crowded) ? 34 : 42;
|
|
6192
|
+
// Side padding must cover the 140px-wide activity bubble (70 each side of
|
|
6193
|
+
// a node center) or edge-column bubbles clip against the chart border.
|
|
6194
|
+
const PAD_X = (_v2ChartExpanded || _crowded) ? Math.max(R + 20, 78) : R + 20;
|
|
6195
|
+
const PAD_Y = (_v2ChartExpanded || _crowded) ? R + 96 : R + 24;
|
|
6089
6196
|
const roleIds = new Set(roles.map(r => r.id));
|
|
6090
6197
|
// all leaders at depth 0 (supports co-lead orgs)
|
|
6091
6198
|
const leaders = roles.filter(_v2OrgIsLeader);
|
|
@@ -6182,6 +6289,31 @@ function v2RenderOrgChart() {
|
|
|
6182
6289
|
_hubAndSpoke();
|
|
6183
6290
|
}
|
|
6184
6291
|
|
|
6292
|
+
// ── crowded re-flow: break single-row walls into a serpentine grid ──
|
|
6293
|
+
// A 12-role chain or hub laid out on one line says nothing about who talks
|
|
6294
|
+
// to whom. When the layout degenerates to <=2 distinct rows with a crowded
|
|
6295
|
+
// row, re-flow in reading order into rows of ~6, reversing every other row
|
|
6296
|
+
// so consecutive nodes stay physically adjacent across wraps. Applies in
|
|
6297
|
+
// both views for 8+ roles (the inline chart scales the viewBox down).
|
|
6298
|
+
if (_crowded) {
|
|
6299
|
+
const _rowsSeen = new Set(Object.values(pos).map(p => Math.round(p.y)));
|
|
6300
|
+
const _widest = Math.max(..._rowsSeen.size ? [..._rowsSeen].map(y => Object.values(pos).filter(p => Math.round(p.y) === y).length) : [0]);
|
|
6301
|
+
if (_rowsSeen.size <= 2 && _widest > 7) {
|
|
6302
|
+
const seq = [...roles].sort((a, b) => (pos[a.id].y - pos[b.id].y) || (pos[a.id].x - pos[b.id].x));
|
|
6303
|
+
const perRow = Math.min(6, Math.ceil(seq.length / Math.ceil(seq.length / 6)));
|
|
6304
|
+
const COL_W = 185, ROW_H = 205;
|
|
6305
|
+
seq.forEach((r, i) => {
|
|
6306
|
+
const row = Math.floor(i / perRow);
|
|
6307
|
+
let col = i % perRow;
|
|
6308
|
+
if (row % 2 === 1) col = perRow - 1 - col; // serpentine
|
|
6309
|
+
pos[r.id] = { x: PAD_X + col * COL_W, y: PAD_Y + row * ROW_H };
|
|
6310
|
+
});
|
|
6311
|
+
const rows = Math.ceil(seq.length / perRow);
|
|
6312
|
+
W = PAD_X * 2 + (perRow - 1) * COL_W;
|
|
6313
|
+
_layoutH = PAD_Y + (rows - 1) * ROW_H + R + 28;
|
|
6314
|
+
}
|
|
6315
|
+
}
|
|
6316
|
+
|
|
6185
6317
|
const H = _layoutH || (hasSubs ? 320 : 180);
|
|
6186
6318
|
|
|
6187
6319
|
// ── build edge SVG strings with offset parallel arrows ─
|
|
@@ -6217,7 +6349,19 @@ function v2RenderOrgChart() {
|
|
|
6217
6349
|
} else {
|
|
6218
6350
|
stroke='oklch(65% 0.15 150)'; dash=''; marker='v2ah'; opacity=0.6; sw=1.5;
|
|
6219
6351
|
}
|
|
6220
|
-
|
|
6352
|
+
// Long spans (the boss fan-out crossing rows) bow outward as quadratic
|
|
6353
|
+
// curves so crossings separate; short neighbor links stay straight.
|
|
6354
|
+
const _spanLen = len - (trimS + trimE);
|
|
6355
|
+
let dAttr;
|
|
6356
|
+
if (_spanLen > 260) {
|
|
6357
|
+
const sag = Math.min(56, _spanLen * 0.14) * edgeSide * canonDir;
|
|
6358
|
+
const mx = ((+x1 + +x2) / 2 + px * sag).toFixed(1);
|
|
6359
|
+
const my = ((+y1 + +y2) / 2 + py * sag).toFixed(1);
|
|
6360
|
+
dAttr = `M${x1},${y1} Q${mx},${my} ${x2},${y2}`;
|
|
6361
|
+
} else {
|
|
6362
|
+
dAttr = `M${x1},${y1} L${x2},${y2}`;
|
|
6363
|
+
}
|
|
6364
|
+
edgesHTML += `<path id="${pid}" class="v2oc-edge" d="${dAttr}" stroke="${stroke}" stroke-opacity="${opacity}" stroke-width="${sw}" ${dash?`stroke-dasharray="${dash}"`:''} fill="none" marker-end="url(#${marker})"/>`;
|
|
6221
6365
|
|
|
6222
6366
|
// Animated flow particle on command edges
|
|
6223
6367
|
if (edge.type === 'command') {
|
|
@@ -6269,13 +6413,15 @@ function v2RenderOrgChart() {
|
|
|
6269
6413
|
});
|
|
6270
6414
|
|
|
6271
6415
|
// ── assemble HTML ─────────────────────────────────────
|
|
6416
|
+
// Expanded view: the chart owns the space — meta cards stay in the tab.
|
|
6272
6417
|
pane.innerHTML = `
|
|
6273
|
-
|
|
6418
|
+
${_v2ChartExpanded ? '' : `<div class="org-meta-strip">
|
|
6274
6419
|
<div class="oms-cell"><div class="oms-lbl">Goal</div><div class="oms-val" style="color:var(--text-mid);font-size:11px;line-height:1.4">${esc(goalText)}</div></div>
|
|
6275
6420
|
<div class="oms-cell"><div class="oms-lbl">Topology</div><div class="oms-val">${esc(topo)}</div></div>
|
|
6276
6421
|
<div class="oms-cell"><div class="oms-lbl">Created</div><div class="oms-val" style="color:var(--text-mid)">${esc(created)}</div></div>
|
|
6277
|
-
</div
|
|
6422
|
+
</div>`}
|
|
6278
6423
|
<div class="org-chart-wrap">
|
|
6424
|
+
${_v2ChartExpanded ? '' : `<button class="v2-chart-expand" onclick="v2ToggleChartExpand(true)" title="Expand chart to full page" aria-label="Expand chart to full page">⛶</button>`}
|
|
6279
6425
|
<svg class="org-chart-svg" id="v2-org-svg" viewBox="0 0 ${W} ${H}" style="min-height:${Math.round(H * 0.5)}px">
|
|
6280
6426
|
<defs>
|
|
6281
6427
|
<marker id="v2ac" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0,0.5 L0,6.5 L6,3.5 z" fill="oklch(72% 0.18 75 / 0.8)"/></marker>
|
|
@@ -6320,7 +6466,7 @@ function v2RenderOrgChart() {
|
|
|
6320
6466
|
} else {
|
|
6321
6467
|
// CSS fallback: simple fade-in stagger
|
|
6322
6468
|
pane.querySelectorAll('.v2oc-node').forEach((el, i) => {
|
|
6323
|
-
el.style.animation = `v2nodeIn 0.45s cubic-bezier(0.
|
|
6469
|
+
el.style.animation = `v2nodeIn 0.45s cubic-bezier(0.16,1,0.3,1) ${(i * 0.08).toFixed(2)}s forwards`;
|
|
6324
6470
|
el.style.opacity = '0';
|
|
6325
6471
|
});
|
|
6326
6472
|
}
|
|
@@ -12156,8 +12302,8 @@ function mgShowResult(title, html) {
|
|
|
12156
12302
|
requestAnimationFrame(() => {
|
|
12157
12303
|
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
|
|
12158
12304
|
panel.querySelectorAll('.mgr-ranked-bar-fill, .mgr-bar-fill').forEach(b => {
|
|
12159
|
-
|
|
12160
|
-
requestAnimationFrame(() => { b.style.
|
|
12305
|
+
b.style.transform = 'scaleX(0)';
|
|
12306
|
+
requestAnimationFrame(() => { b.style.transform = 'scaleX(1)'; });
|
|
12161
12307
|
});
|
|
12162
12308
|
});
|
|
12163
12309
|
}
|
|
@@ -13075,9 +13221,8 @@ function mgRenderReport(markdown, el, stats) {
|
|
|
13075
13221
|
requestAnimationFrame(() => {
|
|
13076
13222
|
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
|
|
13077
13223
|
el.querySelectorAll('.mgr-node-bar-fill, .mgr-type-bar-fill').forEach(b => {
|
|
13078
|
-
|
|
13079
|
-
b.style.
|
|
13080
|
-
requestAnimationFrame(() => { b.style.width = w; });
|
|
13224
|
+
b.style.transform = 'scaleX(0)';
|
|
13225
|
+
requestAnimationFrame(() => { b.style.transform = 'scaleX(1)'; });
|
|
13081
13226
|
});
|
|
13082
13227
|
});
|
|
13083
13228
|
}
|
|
@@ -13633,8 +13778,13 @@ async function secondBrainSearch() {
|
|
|
13633
13778
|
results.map(function (res) {
|
|
13634
13779
|
var srcTag = (res.tags || []).find(function (t) { return t.indexOf('src:') === 0; });
|
|
13635
13780
|
var label = srcTag ? srcTag.slice(4).split('/').slice(-2).join('/') : (res.key || '');
|
|
13781
|
+
// Surface badge: the endpoint fuses chunks + KG triplets + rules +
|
|
13782
|
+
// pattern memories (RRF); show non-chunk kinds so users see where a
|
|
13783
|
+
// hit came from.
|
|
13784
|
+
var kindBadge = res.triplet ? 'kg' : (res.rule ? 'rule' : (res.memory ? 'memory' : ''));
|
|
13636
13785
|
return '<div style="border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:6px">' +
|
|
13637
13786
|
'<div style="font-size:10px;color:var(--text-lo);margin-bottom:3px">' + esc(label) +
|
|
13787
|
+
(kindBadge ? ' <span style="color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:0 4px">' + kindBadge + '</span>' : '') +
|
|
13638
13788
|
(res.global ? ' <span style="color:var(--accent-dim,#888);border:1px solid var(--border);border-radius:4px;padding:0 4px">global</span>' : '') +
|
|
13639
13789
|
' <span style="color:var(--accent)">' + (typeof res.score === 'number' ? res.score.toFixed(2) : '') + '</span></div>' +
|
|
13640
13790
|
'<div style="font-size:12px;white-space:pre-wrap;max-height:120px;overflow:hidden">' + esc(String(res.content || '').slice(0, 600)) + '</div>' +
|
|
@@ -976,6 +976,7 @@ html, body {
|
|
|
976
976
|
<div id="health-grid" class="health-grid"></div>
|
|
977
977
|
<div id="health-detail"></div>
|
|
978
978
|
<div id="health-history"></div>
|
|
979
|
+
<div id="health-memory"></div>
|
|
979
980
|
</div>
|
|
980
981
|
</div>
|
|
981
982
|
|
|
@@ -1762,6 +1763,7 @@ function renderHealth() {
|
|
|
1762
1763
|
}
|
|
1763
1764
|
|
|
1764
1765
|
loadRunHistory();
|
|
1766
|
+
loadOrgMemory();
|
|
1765
1767
|
}
|
|
1766
1768
|
|
|
1767
1769
|
// Run history (history.jsonl, written by the daemon at each stopOrg): outcome,
|
|
@@ -1793,6 +1795,28 @@ async function loadRunHistory() {
|
|
|
1793
1795
|
} catch (_) { el.innerHTML = ''; }
|
|
1794
1796
|
}
|
|
1795
1797
|
|
|
1798
|
+
// Org memory: knowledge-graph size, learned entities, and distilled rules
|
|
1799
|
+
// (accumulated across runs via org_learn / heuristic extraction).
|
|
1800
|
+
async function loadOrgMemory() {
|
|
1801
|
+
const el = document.getElementById('health-memory');
|
|
1802
|
+
if (!el || !selectedOrg) return;
|
|
1803
|
+
try {
|
|
1804
|
+
const listOrg = allOrgs.find(o => o.name === selectedOrg) || {};
|
|
1805
|
+
const r = await fetch(`/api/orgs/${encodeURIComponent(selectedOrg)}/memory?dir=${encodeURIComponent(listOrg.projectDir || '')}`);
|
|
1806
|
+
if (!r.ok) { el.innerHTML = ''; return; }
|
|
1807
|
+
const m = await r.json();
|
|
1808
|
+
if (!m.nodes && !m.rules) { el.innerHTML = ''; return; }
|
|
1809
|
+
el.innerHTML = `
|
|
1810
|
+
<div style="margin-top:16px">
|
|
1811
|
+
<div style="font-size:8px;letter-spacing:2px;color:var(--dim);margin-bottom:8px">ORG MEMORY — ${Number(m.nodes) || 0} ENTITIES · ${Number(m.edges) || 0} RELATIONS · ${Number(m.rules) || 0} RULES</div>
|
|
1812
|
+
${Array.isArray(m.glossary) && m.glossary.length ? `
|
|
1813
|
+
<div style="font-size:9px;color:var(--muted);line-height:1.7">${m.glossary.map(g => `<span style="border:1px solid oklch(50% 0 0 / 0.25);border-radius:3px;padding:1px 5px;margin-right:4px;white-space:nowrap;display:inline-block;margin-bottom:3px">${esc(g)}</span>`).join('')}</div>` : ''}
|
|
1814
|
+
${Array.isArray(m.ruleTexts) && m.ruleTexts.length ? m.ruleTexts.map(t => `
|
|
1815
|
+
<div style="font-size:9px;padding:4px 0;border-bottom:1px solid oklch(50% 0 0 / 0.1);color:var(--muted)">▸ ${esc(t)}</div>`).join('') : ''}
|
|
1816
|
+
</div>`;
|
|
1817
|
+
} catch (_) { el.innerHTML = ''; }
|
|
1818
|
+
}
|
|
1819
|
+
|
|
1796
1820
|
// ── CHAT TAB ──────────────────────────────────────────────────────
|
|
1797
1821
|
let chatSessions = []; // all sessions from /api/mastermind/sessions
|
|
1798
1822
|
let chatCurrentId = null; // currently viewed session id
|