@theihtisham/agent-shadow-brain 7.2.0 → 7.22.1
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/CHANGELOG.md +482 -427
- package/README.md +202 -68
- package/dist/activity-cli.d.ts +3 -0
- package/dist/activity-cli.d.ts.map +1 -0
- package/dist/activity-cli.js +78 -0
- package/dist/activity-cli.js.map +1 -0
- package/dist/adapters/index.d.ts +2 -1
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +3 -2
- package/dist/adapters/index.js.map +1 -1
- package/dist/brain/activity-journal.d.ts +82 -0
- package/dist/brain/activity-journal.d.ts.map +1 -0
- package/dist/brain/activity-journal.js +315 -0
- package/dist/brain/activity-journal.js.map +1 -0
- package/dist/brain/activity-reporting.d.ts +14 -0
- package/dist/brain/activity-reporting.d.ts.map +1 -0
- package/dist/brain/activity-reporting.js +17 -0
- package/dist/brain/activity-reporting.js.map +1 -0
- package/dist/brain/auto-update.js +1 -1
- package/dist/brain/auto-update.js.map +1 -1
- package/dist/brain/brain-portability.js +1 -1
- package/dist/brain/brain-portability.js.map +1 -1
- package/dist/brain/client-config.d.ts +19 -0
- package/dist/brain/client-config.d.ts.map +1 -0
- package/dist/brain/client-config.js +40 -0
- package/dist/brain/client-config.js.map +1 -0
- package/dist/brain/client-integrations.d.ts +63 -0
- package/dist/brain/client-integrations.d.ts.map +1 -0
- package/dist/brain/client-integrations.js +79 -0
- package/dist/brain/client-integrations.js.map +1 -0
- package/dist/brain/context-assembly.d.ts +41 -5
- package/dist/brain/context-assembly.d.ts.map +1 -1
- package/dist/brain/context-assembly.js +366 -35
- package/dist/brain/context-assembly.js.map +1 -1
- package/dist/brain/context-efficiency.d.ts +48 -0
- package/dist/brain/context-efficiency.d.ts.map +1 -0
- package/dist/brain/context-efficiency.js +34 -0
- package/dist/brain/context-efficiency.js.map +1 -0
- package/dist/brain/context-request.d.ts +4 -0
- package/dist/brain/context-request.d.ts.map +1 -0
- package/dist/brain/context-request.js +24 -0
- package/dist/brain/context-request.js.map +1 -0
- package/dist/brain/context-retrieval.d.ts +88 -0
- package/dist/brain/context-retrieval.d.ts.map +1 -0
- package/dist/brain/context-retrieval.js +301 -0
- package/dist/brain/context-retrieval.js.map +1 -0
- package/dist/brain/feature-settings.d.ts +10 -0
- package/dist/brain/feature-settings.d.ts.map +1 -1
- package/dist/brain/feature-settings.js +18 -2
- package/dist/brain/feature-settings.js.map +1 -1
- package/dist/brain/file-identity.d.ts +4 -0
- package/dist/brain/file-identity.d.ts.map +1 -0
- package/dist/brain/file-identity.js +27 -0
- package/dist/brain/file-identity.js.map +1 -0
- package/dist/brain/global-brain.d.ts +18 -2
- package/dist/brain/global-brain.d.ts.map +1 -1
- package/dist/brain/global-brain.js +75 -7
- package/dist/brain/global-brain.js.map +1 -1
- package/dist/brain/managed-project-skills.d.ts +48 -0
- package/dist/brain/managed-project-skills.d.ts.map +1 -0
- package/dist/brain/managed-project-skills.js +230 -0
- package/dist/brain/managed-project-skills.js.map +1 -0
- package/dist/brain/mcp-presence.d.ts +50 -0
- package/dist/brain/mcp-presence.d.ts.map +1 -0
- package/dist/brain/mcp-presence.js +214 -0
- package/dist/brain/mcp-presence.js.map +1 -0
- package/dist/brain/mcp-server.d.ts +40 -1
- package/dist/brain/mcp-server.d.ts.map +1 -1
- package/dist/brain/mcp-server.js +506 -52
- package/dist/brain/mcp-server.js.map +1 -1
- package/dist/brain/mcp-stdio.d.ts +12 -0
- package/dist/brain/mcp-stdio.d.ts.map +1 -0
- package/dist/brain/mcp-stdio.js +158 -0
- package/dist/brain/mcp-stdio.js.map +1 -0
- package/dist/brain/memory-annotations.d.ts +99 -0
- package/dist/brain/memory-annotations.d.ts.map +1 -0
- package/dist/brain/memory-annotations.js +402 -0
- package/dist/brain/memory-annotations.js.map +1 -0
- package/dist/brain/memory-graph.d.ts.map +1 -1
- package/dist/brain/memory-graph.js +12 -23
- package/dist/brain/memory-graph.js.map +1 -1
- package/dist/brain/memory-inspection.d.ts +73 -0
- package/dist/brain/memory-inspection.d.ts.map +1 -0
- package/dist/brain/memory-inspection.js +131 -0
- package/dist/brain/memory-inspection.js.map +1 -0
- package/dist/brain/memory-mcp-content.d.ts +46 -0
- package/dist/brain/memory-mcp-content.d.ts.map +1 -0
- package/dist/brain/memory-mcp-content.js +95 -0
- package/dist/brain/memory-mcp-content.js.map +1 -0
- package/dist/brain/memory-sources.d.ts +8 -0
- package/dist/brain/memory-sources.d.ts.map +1 -0
- package/dist/brain/memory-sources.js +27 -0
- package/dist/brain/memory-sources.js.map +1 -0
- package/dist/brain/model-registry.d.ts +4 -5
- package/dist/brain/model-registry.d.ts.map +1 -1
- package/dist/brain/model-registry.js +22 -207
- package/dist/brain/model-registry.js.map +1 -1
- package/dist/brain/model-usage.d.ts +66 -0
- package/dist/brain/model-usage.d.ts.map +1 -0
- package/dist/brain/model-usage.js +246 -0
- package/dist/brain/model-usage.js.map +1 -0
- package/dist/brain/native-codex.d.ts +105 -0
- package/dist/brain/native-codex.d.ts.map +1 -0
- package/dist/brain/native-codex.js +292 -0
- package/dist/brain/native-codex.js.map +1 -0
- package/dist/brain/native-session-import.d.ts +56 -0
- package/dist/brain/native-session-import.d.ts.map +1 -0
- package/dist/brain/native-session-import.js +307 -0
- package/dist/brain/native-session-import.js.map +1 -0
- package/dist/brain/orchestrator.js +1 -1
- package/dist/brain/orchestrator.js.map +1 -1
- package/dist/brain/project-feedback.d.ts +63 -0
- package/dist/brain/project-feedback.d.ts.map +1 -0
- package/dist/brain/project-feedback.js +300 -0
- package/dist/brain/project-feedback.js.map +1 -0
- package/dist/brain/project-hub-contract.d.ts +332 -0
- package/dist/brain/project-hub-contract.d.ts.map +1 -0
- package/dist/brain/project-hub-contract.js +57 -0
- package/dist/brain/project-hub-contract.js.map +1 -0
- package/dist/brain/project-hub-mcp.d.ts +182 -0
- package/dist/brain/project-hub-mcp.d.ts.map +1 -0
- package/dist/brain/project-hub-mcp.js +46 -0
- package/dist/brain/project-hub-mcp.js.map +1 -0
- package/dist/brain/project-hub-pdf-worker.d.ts +13 -0
- package/dist/brain/project-hub-pdf-worker.d.ts.map +1 -0
- package/dist/brain/project-hub-pdf-worker.js +84 -0
- package/dist/brain/project-hub-pdf-worker.js.map +1 -0
- package/dist/brain/project-hub-store.d.ts +50 -0
- package/dist/brain/project-hub-store.d.ts.map +1 -0
- package/dist/brain/project-hub-store.js +257 -0
- package/dist/brain/project-hub-store.js.map +1 -0
- package/dist/brain/project-hub.d.ts +132 -0
- package/dist/brain/project-hub.d.ts.map +1 -0
- package/dist/brain/project-hub.js +403 -0
- package/dist/brain/project-hub.js.map +1 -0
- package/dist/brain/project-kit-inspection.d.ts +28 -0
- package/dist/brain/project-kit-inspection.d.ts.map +1 -0
- package/dist/brain/project-kit-inspection.js +200 -0
- package/dist/brain/project-kit-inspection.js.map +1 -0
- package/dist/brain/project-kit-paths.d.ts +13 -0
- package/dist/brain/project-kit-paths.d.ts.map +1 -0
- package/dist/brain/project-kit-paths.js +141 -0
- package/dist/brain/project-kit-paths.js.map +1 -0
- package/dist/brain/project-kit.d.ts +51 -0
- package/dist/brain/project-kit.d.ts.map +1 -0
- package/dist/brain/project-kit.js +319 -0
- package/dist/brain/project-kit.js.map +1 -0
- package/dist/brain/project-memory.d.ts +38 -0
- package/dist/brain/project-memory.d.ts.map +1 -0
- package/dist/brain/project-memory.js +76 -0
- package/dist/brain/project-memory.js.map +1 -0
- package/dist/brain/project-policy-delivery.d.ts +8 -0
- package/dist/brain/project-policy-delivery.d.ts.map +1 -0
- package/dist/brain/project-policy-delivery.js +38 -0
- package/dist/brain/project-policy-delivery.js.map +1 -0
- package/dist/brain/project-policy.d.ts +88 -0
- package/dist/brain/project-policy.d.ts.map +1 -0
- package/dist/brain/project-policy.js +267 -0
- package/dist/brain/project-policy.js.map +1 -0
- package/dist/brain/project-session-contract.d.ts +180 -0
- package/dist/brain/project-session-contract.d.ts.map +1 -0
- package/dist/brain/project-session-contract.js +50 -0
- package/dist/brain/project-session-contract.js.map +1 -0
- package/dist/brain/project-session-mcp.d.ts +145 -0
- package/dist/brain/project-session-mcp.d.ts.map +1 -0
- package/dist/brain/project-session-mcp.js +58 -0
- package/dist/brain/project-session-mcp.js.map +1 -0
- package/dist/brain/project-sessions.d.ts +97 -0
- package/dist/brain/project-sessions.d.ts.map +1 -0
- package/dist/brain/project-sessions.js +223 -0
- package/dist/brain/project-sessions.js.map +1 -0
- package/dist/brain/project-source-contract.d.ts +109 -0
- package/dist/brain/project-source-contract.d.ts.map +1 -0
- package/dist/brain/project-source-contract.js +2 -0
- package/dist/brain/project-source-contract.js.map +1 -0
- package/dist/brain/project-source-intake.d.ts +26 -0
- package/dist/brain/project-source-intake.d.ts.map +1 -0
- package/dist/brain/project-source-intake.js +457 -0
- package/dist/brain/project-source-intake.js.map +1 -0
- package/dist/brain/subconscious.d.ts +3 -1
- package/dist/brain/subconscious.d.ts.map +1 -1
- package/dist/brain/subconscious.js +8 -3
- package/dist/brain/subconscious.js.map +1 -1
- package/dist/brain/workflow-skills.d.ts +5 -5
- package/dist/brain/workflow-skills.d.ts.map +1 -1
- package/dist/brain/workflow-skills.js +3 -2
- package/dist/brain/workflow-skills.js.map +1 -1
- package/dist/cli.js +37 -3
- package/dist/cli.js.map +1 -1
- package/dist/context-cli.d.ts.map +1 -1
- package/dist/context-cli.js +49 -7
- package/dist/context-cli.js.map +1 -1
- package/dist/curation-cli.d.ts +4 -0
- package/dist/curation-cli.d.ts.map +1 -0
- package/dist/curation-cli.js +118 -0
- package/dist/curation-cli.js.map +1 -0
- package/dist/dashboard/brain-hub-actions.d.ts +2 -0
- package/dist/dashboard/brain-hub-actions.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-actions.js +234 -0
- package/dist/dashboard/brain-hub-actions.js.map +1 -0
- package/dist/dashboard/brain-hub-agent-dock.d.ts +2 -0
- package/dist/dashboard/brain-hub-agent-dock.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-agent-dock.js +255 -0
- package/dist/dashboard/brain-hub-agent-dock.js.map +1 -0
- package/dist/dashboard/brain-hub-brand-icons.d.ts +2 -0
- package/dist/dashboard/brain-hub-brand-icons.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-brand-icons.js +9 -0
- package/dist/dashboard/brain-hub-brand-icons.js.map +1 -0
- package/dist/dashboard/brain-hub-client.d.ts +2 -0
- package/dist/dashboard/brain-hub-client.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-client.js +435 -0
- package/dist/dashboard/brain-hub-client.js.map +1 -0
- package/dist/dashboard/brain-hub-context.d.ts +2 -0
- package/dist/dashboard/brain-hub-context.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-context.js +37 -0
- package/dist/dashboard/brain-hub-context.js.map +1 -0
- package/dist/dashboard/brain-hub-controls.d.ts +2 -0
- package/dist/dashboard/brain-hub-controls.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-controls.js +63 -0
- package/dist/dashboard/brain-hub-controls.js.map +1 -0
- package/dist/dashboard/brain-hub-exchanges.d.ts +2 -0
- package/dist/dashboard/brain-hub-exchanges.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-exchanges.js +82 -0
- package/dist/dashboard/brain-hub-exchanges.js.map +1 -0
- package/dist/dashboard/brain-hub-graph.d.ts +2 -0
- package/dist/dashboard/brain-hub-graph.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-graph.js +338 -0
- package/dist/dashboard/brain-hub-graph.js.map +1 -0
- package/dist/dashboard/brain-hub-html.d.ts +2 -0
- package/dist/dashboard/brain-hub-html.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-html.js +85 -0
- package/dist/dashboard/brain-hub-html.js.map +1 -0
- package/dist/dashboard/brain-hub-knowledge.d.ts +2 -0
- package/dist/dashboard/brain-hub-knowledge.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-knowledge.js +33 -0
- package/dist/dashboard/brain-hub-knowledge.js.map +1 -0
- package/dist/dashboard/brain-hub-live.d.ts +2 -0
- package/dist/dashboard/brain-hub-live.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-live.js +151 -0
- package/dist/dashboard/brain-hub-live.js.map +1 -0
- package/dist/dashboard/brain-hub-managed-skills.d.ts +2 -0
- package/dist/dashboard/brain-hub-managed-skills.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-managed-skills.js +20 -0
- package/dist/dashboard/brain-hub-managed-skills.js.map +1 -0
- package/dist/dashboard/brain-hub-native.d.ts +2 -0
- package/dist/dashboard/brain-hub-native.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-native.js +44 -0
- package/dist/dashboard/brain-hub-native.js.map +1 -0
- package/dist/dashboard/brain-hub-project-views.d.ts +2 -0
- package/dist/dashboard/brain-hub-project-views.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-project-views.js +80 -0
- package/dist/dashboard/brain-hub-project-views.js.map +1 -0
- package/dist/dashboard/brain-hub-sessions.d.ts +2 -0
- package/dist/dashboard/brain-hub-sessions.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-sessions.js +40 -0
- package/dist/dashboard/brain-hub-sessions.js.map +1 -0
- package/dist/dashboard/brain-hub-usage.d.ts +2 -0
- package/dist/dashboard/brain-hub-usage.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-usage.js +28 -0
- package/dist/dashboard/brain-hub-usage.js.map +1 -0
- package/dist/dashboard/brain-hub-views.d.ts +2 -0
- package/dist/dashboard/brain-hub-views.d.ts.map +1 -0
- package/dist/dashboard/brain-hub-views.js +155 -0
- package/dist/dashboard/brain-hub-views.js.map +1 -0
- package/dist/dashboard/demo-workspace.d.ts +11 -0
- package/dist/dashboard/demo-workspace.d.ts.map +1 -0
- package/dist/dashboard/demo-workspace.js +178 -0
- package/dist/dashboard/demo-workspace.js.map +1 -0
- package/dist/dashboard/live-workspace-html.d.ts +2 -0
- package/dist/dashboard/live-workspace-html.d.ts.map +1 -0
- package/dist/dashboard/live-workspace-html.js +1042 -0
- package/dist/dashboard/live-workspace-html.js.map +1 -0
- package/dist/dashboard/managed-project-skills-api.d.ts +29 -0
- package/dist/dashboard/managed-project-skills-api.d.ts.map +1 -0
- package/dist/dashboard/managed-project-skills-api.js +28 -0
- package/dist/dashboard/managed-project-skills-api.js.map +1 -0
- package/dist/dashboard/native-codex-api.d.ts +83 -0
- package/dist/dashboard/native-codex-api.d.ts.map +1 -0
- package/dist/dashboard/native-codex-api.js +91 -0
- package/dist/dashboard/native-codex-api.js.map +1 -0
- package/dist/dashboard/project-feedback-html.d.ts +5 -0
- package/dist/dashboard/project-feedback-html.d.ts.map +1 -0
- package/dist/dashboard/project-feedback-html.js +216 -0
- package/dist/dashboard/project-feedback-html.js.map +1 -0
- package/dist/dashboard/project-file-watch.d.ts +46 -0
- package/dist/dashboard/project-file-watch.d.ts.map +1 -0
- package/dist/dashboard/project-file-watch.js +221 -0
- package/dist/dashboard/project-file-watch.js.map +1 -0
- package/dist/dashboard/project-hub-api.d.ts +5 -0
- package/dist/dashboard/project-hub-api.d.ts.map +1 -0
- package/dist/dashboard/project-hub-api.js +121 -0
- package/dist/dashboard/project-hub-api.js.map +1 -0
- package/dist/dashboard/project-kit-html.d.ts +4 -0
- package/dist/dashboard/project-kit-html.d.ts.map +1 -0
- package/dist/dashboard/project-kit-html.js +359 -0
- package/dist/dashboard/project-kit-html.js.map +1 -0
- package/dist/dashboard/project-live-stream.d.ts +33 -0
- package/dist/dashboard/project-live-stream.d.ts.map +1 -0
- package/dist/dashboard/project-live-stream.js +233 -0
- package/dist/dashboard/project-live-stream.js.map +1 -0
- package/dist/dashboard/project-policy-api.d.ts +37 -0
- package/dist/dashboard/project-policy-api.d.ts.map +1 -0
- package/dist/dashboard/project-policy-api.js +31 -0
- package/dist/dashboard/project-policy-api.js.map +1 -0
- package/dist/dashboard/project-session-api.d.ts +28 -0
- package/dist/dashboard/project-session-api.d.ts.map +1 -0
- package/dist/dashboard/project-session-api.js +84 -0
- package/dist/dashboard/project-session-api.js.map +1 -0
- package/dist/dashboard/project-source-api.d.ts +11 -0
- package/dist/dashboard/project-source-api.d.ts.map +1 -0
- package/dist/dashboard/project-source-api.js +67 -0
- package/dist/dashboard/project-source-api.js.map +1 -0
- package/dist/dashboard/project-workspace.d.ts +16 -0
- package/dist/dashboard/project-workspace.d.ts.map +1 -0
- package/dist/dashboard/project-workspace.js +124 -0
- package/dist/dashboard/project-workspace.js.map +1 -0
- package/dist/dashboard/server.d.ts +1 -0
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +99 -42
- package/dist/dashboard/server.js.map +1 -1
- package/dist/dashboard/v6-dashboard-html.d.ts +1 -1
- package/dist/dashboard/v6-dashboard-html.d.ts.map +1 -1
- package/dist/dashboard/v6-dashboard-html.js +39 -87
- package/dist/dashboard/v6-dashboard-html.js.map +1 -1
- package/dist/dashboard/workspace-api.d.ts +12 -0
- package/dist/dashboard/workspace-api.d.ts.map +1 -1
- package/dist/dashboard/workspace-api.js +359 -41
- package/dist/dashboard/workspace-api.js.map +1 -1
- package/dist/dashboard/workspace-html.d.ts.map +1 -1
- package/dist/dashboard/workspace-html.js +2535 -1552
- package/dist/dashboard/workspace-html.js.map +1 -1
- package/dist/dashboard/workspace-status.d.ts +53 -0
- package/dist/dashboard/workspace-status.d.ts.map +1 -0
- package/dist/dashboard/workspace-status.js +23 -0
- package/dist/dashboard/workspace-status.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/integration-cli.d.ts +3 -0
- package/dist/integration-cli.d.ts.map +1 -0
- package/dist/integration-cli.js +16 -0
- package/dist/integration-cli.js.map +1 -0
- package/dist/project-cli.d.ts +3 -0
- package/dist/project-cli.d.ts.map +1 -0
- package/dist/project-cli.js +100 -0
- package/dist/project-cli.js.map +1 -0
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/docs/BRAND_ASSETS.md +36 -0
- package/docs/COMPARISON.md +22 -0
- package/docs/COMPONENTS.md +66 -0
- package/docs/CONTEXT_LAB.md +79 -0
- package/docs/FEATURES_AND_LIMITS.md +29 -0
- package/docs/INTEGRATIONS.md +70 -0
- package/docs/LEARNING.md +46 -0
- package/docs/PROJECT_KIT.md +98 -0
- package/docs/QUICKSTART.md +62 -0
- package/docs/README.md +36 -0
- package/docs/ROADMAP-v7.md +147 -0
- package/docs/SESSIONS.md +77 -0
- package/docs/SHARING.md +13 -0
- package/docs/SHOWCASE.md +87 -0
- package/docs/SOURCE_INTAKE.md +33 -0
- package/docs/STATS.md +21 -0
- package/docs/TROUBLESHOOTING.md +42 -0
- package/docs/UPGRADE_PLAN_v7.0.0.md +203 -0
- package/docs/VIRAL-PLAYBOOK.md +259 -0
- package/docs/VISUAL_GUIDE_v7.1.4.md +70 -0
- package/docs/VISUAL_GUIDE_v7.22.0.md +73 -0
- package/docs/WORKFLOW_INTEGRATION.md +125 -105
- package/docs/WORKSPACE.md +63 -70
- package/docs/assets/7.1.4-collaboration-design-preview.png +0 -0
- package/docs/assets/7.1.4-comparison.png +0 -0
- package/docs/assets/7.1.4-context-lab.png +0 -0
- package/docs/assets/7.1.4-control-room-dense-preview.png +0 -0
- package/docs/assets/7.1.4-control-room-focus-preview.png +0 -0
- package/docs/assets/7.1.4-features.png +0 -0
- package/docs/assets/7.1.4-graph.png +0 -0
- package/docs/assets/7.1.4-hub-control-room.png +0 -0
- package/docs/assets/7.1.4-hub-empty.png +0 -0
- package/docs/assets/7.1.4-hub-knowledge.png +0 -0
- package/docs/assets/7.1.4-hub-learning.png +0 -0
- package/docs/assets/7.1.4-hub-mobile.png +0 -0
- package/docs/assets/7.1.4-hub-public-docs-source.png +0 -0
- package/docs/assets/7.1.4-hub-public-docs.gif +0 -0
- package/docs/assets/7.1.4-hub-public-docs.png +0 -0
- package/docs/assets/7.1.4-hub-setup.png +0 -0
- package/docs/assets/7.1.4-hub-walkthrough.gif +0 -0
- package/docs/assets/7.1.4-integrations.png +0 -0
- package/docs/assets/7.1.4-knowledge-design-preview.png +0 -0
- package/docs/assets/7.1.4-learning-design-preview.png +0 -0
- package/docs/assets/7.1.4-learning.png +0 -0
- package/docs/assets/7.1.4-live.png +0 -0
- package/docs/assets/7.1.4-memory-review.png +0 -0
- package/docs/assets/7.1.4-mobile.png +0 -0
- package/docs/assets/7.1.4-models-design-preview.png +0 -0
- package/docs/assets/7.1.4-outcome-ranking.png +0 -0
- package/docs/assets/7.1.4-overview.png +0 -0
- package/docs/assets/7.1.4-project-kit.png +0 -0
- package/docs/assets/7.1.4-project-skill-preview.png +0 -0
- package/docs/assets/7.1.4-replay.png +0 -0
- package/docs/assets/7.1.4-setup-design-preview.png +0 -0
- package/docs/assets/7.1.4-usage-design-preview.png +0 -0
- package/docs/assets/7.22.0-agent-dock-mobile.png +0 -0
- package/docs/assets/7.22.0-agent-dock.gif +0 -0
- package/docs/assets/7.22.0-agent-dock.png +0 -0
- package/docs/assets/7.22.0-hub-exchange.png +0 -0
- package/docs/assets/7.22.0-hub-exchanges.gif +0 -0
- package/docs/assets/7.22.0-hub-graph.png +0 -0
- package/docs/assets/7.22.0-hub-mobile-empty.png +0 -0
- package/docs/assets/7.22.0-managed-skills.png +0 -0
- package/docs/assets/7.22.0-plain-evidence.png +0 -0
- package/docs/assets/7.22.0-project-controls.png +0 -0
- package/docs/assets/7.22.0-sessions.png +0 -0
- package/docs/assets/7.22.0-teach-brain.png +0 -0
- package/docs/assets/context-v7.1.3.png +0 -0
- package/docs/assets/features-v7.1.3.png +0 -0
- package/docs/assets/graph-v7.1.3.png +0 -0
- package/docs/assets/integrations-v7.1.3.png +0 -0
- package/docs/assets/live-v7.1.3.png +0 -0
- package/docs/assets/live-v7.1.4.gif +0 -0
- package/docs/assets/memory-detail-v7.1.3.png +0 -0
- package/docs/assets/overview-v7.1.3.png +0 -0
- package/docs/evaluation/CONTEXT_EVALUATION_v7.1.4.json +1818 -0
- package/docs/evaluation/CONTEXT_EVALUATION_v7.1.4.md +36 -0
- package/docs/launch/COMPONENT_MAP_v7.1.4.md +307 -0
- package/docs/launch/PROJECT_KIT_PLAN_v7.1.4.md +110 -0
- package/docs/launch/PROJECT_LEARNING_PLAN_v7.1.4.md +63 -0
- package/docs/launch/RELEASE_ACCEPTANCE_v7.22.0.md +48 -0
- package/docs/launch/RELEASE_CHECKLIST_v7.0.0.md +24 -24
- package/docs/launch/RELEASE_NOTES_v7.0.0.md +44 -44
- package/docs/launch/RELEASE_NOTES_v7.1.0.md +32 -32
- package/docs/launch/RELEASE_NOTES_v7.1.3.md +40 -0
- package/docs/launch/RELEASE_NOTES_v7.1.4.md +30 -0
- package/docs/launch/RELEASE_NOTES_v7.2.0.md +24 -24
- package/docs/launch/RELEASE_NOTES_v7.22.0.md +53 -0
- package/docs/launch/RELEASE_NOTES_v7.22.1.md +11 -0
- package/docs/launch/RESEARCH_AND_PLAN_v7.1.4.md +255 -0
- package/docs/launch/RESEARCH_AND_PLAN_v7.22.0.md +672 -0
- package/package.json +139 -111
- package/skills/shadow-debug/SKILL.md +16 -16
- package/skills/shadow-implement/SKILL.md +16 -16
- package/skills/shadow-release/SKILL.md +16 -16
- package/skills/shadow-research/SKILL.md +14 -12
- package/skills/shadow-review/SKILL.md +14 -14
- package/skills/shadow-workflow/SKILL.md +39 -31
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { BRAIN_HUB_SESSIONS } from './brain-hub-sessions.js';
|
|
2
|
+
import { BRAIN_HUB_AGENT_DOCK } from './brain-hub-agent-dock.js';
|
|
3
|
+
import { BRAIN_HUB_CONTROLS } from './brain-hub-controls.js';
|
|
4
|
+
import { BRAIN_HUB_MANAGED_SKILLS } from './brain-hub-managed-skills.js';
|
|
5
|
+
import { BRAIN_HUB_CONTEXT } from './brain-hub-context.js';
|
|
6
|
+
import { BRAIN_HUB_USAGE } from './brain-hub-usage.js';
|
|
7
|
+
import { BRAIN_HUB_PROJECT_VIEWS } from './brain-hub-project-views.js';
|
|
8
|
+
import { BRAIN_HUB_ACTIONS } from './brain-hub-actions.js';
|
|
9
|
+
export const BRAIN_HUB_VIEWS = String.raw `
|
|
10
|
+
function eventLabel(event){
|
|
11
|
+
if(event.tool)return event.tool+' · '+(event.outcome??(event.kind==='tool-start'?'started':'returned'));
|
|
12
|
+
if(event.phase)return 'Phase · '+event.phase;
|
|
13
|
+
return event.kind.replaceAll('-',' ');
|
|
14
|
+
}
|
|
15
|
+
function eventTone(event){return event.source==='measured'?'cyan':'amber';}
|
|
16
|
+
function evidence(event){return event.source==='measured'?'Measured '+(event.transport==='mcp'?'MCP':'tool'):'Reported';}
|
|
17
|
+
function timelineMarkup(trace=false){
|
|
18
|
+
const events=state.events;
|
|
19
|
+
if(!events.length)return empty(state.errors.telemetry?'Activity unavailable':state.live?'No recorded activity':'Activity display is off',state.errors.telemetry||
|
|
20
|
+
(state.live?'A tool exchange or reported phase will appear here when activity recording is enabled.':'Enable live dashboard activity in Setup.'),view('setup','Open setup'));
|
|
21
|
+
return list([...events].reverse().map(event=>'<li><button class="entry event" type="button" data-event="'+esc(event.id)+'" aria-pressed="'+(state.replayId===event.id)+'"><time class="mono" datetime="'+esc(event.timestamp)+'">'+esc(time(event.timestamp))+'</time><span>'+esc(eventLabel(event))+' <span class="muted">· '+esc(hostName(event.agent))+'</span></span>'+chip(evidence(event),eventTone(event))+'</button></li>').join(''),trace?'aria-label="Recorded tool trace"':'aria-label="Recorded activity"');
|
|
22
|
+
}
|
|
23
|
+
function trace(values){
|
|
24
|
+
if(values.length<2)return '';
|
|
25
|
+
const max=Math.max(...values,1);
|
|
26
|
+
const points=values.map((value,index)=>(2+index*62/(values.length-1))+','+(22-value*19/max));
|
|
27
|
+
return '<svg class="metric-trace cyan" viewBox="0 0 66 26" aria-hidden="true"><path d="M'+points.join(' L')+'" fill="none" stroke="currentColor" stroke-width="1.25"/></svg>';
|
|
28
|
+
}
|
|
29
|
+
function telemetryStrip(){
|
|
30
|
+
const measured=state.events.filter(event=>event.source==='measured'&&event.kind==='tool-end');
|
|
31
|
+
const durations=measured.map(event=>event.durationMs).filter(Number.isFinite);
|
|
32
|
+
const observed=new Set(state.events.filter(event=>event.agent&&event.agent!=='user'&&event.agent!=='portal').map(event=>event.agent));
|
|
33
|
+
const memories=state.graph?.totalMemories??state.overview?.quality?.total;
|
|
34
|
+
const pack=state.context?.budget;
|
|
35
|
+
return '<dl class="strip"><div class="metric"><dt>Stored memories in scope</dt><dd class="mono cyan">'+fmt(memories)+'</dd><small>'+esc(scopeName())+'</small></div><div class="metric">'+trace(durations.slice(-16))+'<dt>Measured tool returns</dt><dd class="mono">'+(state.live?fmt(measured.length):'Unavailable')+'</dd><small>'+esc(state.errors.telemetry?'Activity unavailable':state.live?fmt(observed.size)+' client labels in retained activity':'Activity display off')+'</small></div><div class="metric"><dt>Model usage receipts</dt><dd class="mono">'+(state.usage?fmt(arr(state.usage.receipts).length):'Not loaded')+'</dd><small>'+(state.usage?'Host-reported · retained window':'Open Usage to inspect host reports')+'</small></div><div class="metric"><dt>Latest context pack estimate</dt><dd class="mono pink">'+(pack?fmt(pack.estimatedTokens)+' / '+fmt(pack.tokenBudget):'No pack built')+'</dd><small>'+esc(pack?arr(state.context.entries).length+' selected memories':'Assemble a scoped pack in Context')+'</small></div></dl>';
|
|
36
|
+
}
|
|
37
|
+
function rail(){
|
|
38
|
+
const graph=arr(state.graph?.nodes);
|
|
39
|
+
const projects=arr(state.overview?.projects).filter(project=>!state.project||project.id===state.project);
|
|
40
|
+
const memories=graph.filter(node=>node.kind==='memory').slice(0,6);
|
|
41
|
+
const projectsMarkup=projects.length?list(projects.slice(0,7).map(project=>'<li><button type="button" class="rail-entry" data-project="'+esc(project.id)+'" aria-pressed="'+(state.project===project.id)+'"><strong>'+esc(project.name)+'</strong><small>'+fmt(project.memories)+' memories</small></button></li>').join('')):empty('No projects with memories','Open a project workspace to add project-local knowledge.',view('setup','See setup'));
|
|
42
|
+
return '<aside class="panel rail" aria-label="Projects and recent records"><div class="rail-title row"><h2>Projects</h2>'+chip(projects.length)+'</div>'+projectsMarkup+'<div class="rail-title row"><h2>Recent records</h2>'+chip(memories.length)+'</div>'+(memories.length?list(memories.map(node=>'<li><button type="button" class="rail-entry" data-node="'+esc(node.id)+'"><strong>'+esc(node.label)+'</strong><small>'+esc(node.category)+' · '+esc(hostName(node.agent))+'</small></button></li>').join('')):empty('No memory records','Add project knowledge or connect a host.',view('knowledge','Open knowledge')) )+'</aside>';
|
|
43
|
+
}
|
|
44
|
+
function graphMarkup(){
|
|
45
|
+
const nodes=arr(state.graph?.nodes),nodeIds=new Set(nodes.map(node=>node.id));
|
|
46
|
+
const edges=arr(state.graph?.edges).filter(edge=>nodeIds.has(edge.source)&&nodeIds.has(edge.target));
|
|
47
|
+
const traceMode=state.graphMode==='trace';
|
|
48
|
+
const filters=[['all','All links',''],['project','Project membership','blue'],['author','Recorded author','pink'],['typed','Recorded relation','cyan']];
|
|
49
|
+
const legend=filters.map(([id,label,tone])=>'<button class="legend-filter" type="button" data-graph-filter="'+id+'" aria-pressed="'+(state.graphFilter===id)+'">'+
|
|
50
|
+
(tone?'<i class="'+tone+'" aria-hidden="true"></i>':'')+esc(label)+'</button>').join('');
|
|
51
|
+
const graphTools=traceMode?'':action('node-list','Find node','','aria-expanded="'+state.listing+'" aria-controls="node-list"')+
|
|
52
|
+
action('clear-focus','Clear focus','quiet','id="clear-focus" '+(state.focus?'':'hidden'));
|
|
53
|
+
return '<section class="panel graph-panel'+(state.graph&&!nodes.length&&!traceMode?' graph-panel-empty':'')+'"><div class="panel-head"><div><h2>'+(traceMode?'Recorded trace':'Memory graph')+'</h2><span class="small mono muted">'+fmt(nodes.length)+' records / '+fmt(edges.length)+' relationships'+(state.graph?.truncated?' · limited view':'')+'</span></div><div class="actions">'+
|
|
54
|
+
action('graph','Graph','','aria-pressed="'+!traceMode+'"')+action('trace','Trace','','aria-pressed="'+traceMode+'"')+graphTools+'</div></div>'+
|
|
55
|
+
'<div class="graph-stage" id="brain-stage"><canvas id="brain-canvas" aria-hidden="true" '+(traceMode?'hidden':'')+'></canvas><div class="graph-meta" aria-hidden="true"><span>Project memory</span><span>Recorded authors</span></div>'+
|
|
56
|
+
(!nodes.length&&!traceMode?'<div class="graph-empty"><strong>'+esc(state.errors.graph?'Memory graph unavailable':state.graph?'No stored graph records':'Loading memory graph')+'</strong><p class="small muted">'+esc(state.errors.graph??(state.graph?'Save knowledge or use a connected host to create your first record.':'Reading the selected workspace.'))+'</p><div class="actions">'+(state.errors.graph?action('refresh','Retry'):view('knowledge','Open knowledge')+view('setup','Connect a host'))+'</div></div>':'')+
|
|
57
|
+
graphFinderMarkup(!state.listing||traceMode)+'<div id="trace-list" class="trace-list" '+(traceMode?'':'hidden')+'>'+(traceMode?timelineMarkup(true):'')+'</div>'+
|
|
58
|
+
'<span class="live-path-label" id="graph-event" aria-hidden="true" hidden></span><div id="node-caption" class="focus-label" hidden></div></div>'+
|
|
59
|
+
(!traceMode?'<div class="graph-foot"><div class="legend" aria-label="Graph relationship filters">'+legend+'</div><div class="graph-camera" aria-label="Graph zoom controls">'+
|
|
60
|
+
action('graph-zoom-out','−','','id="graph-zoom-out" aria-label="Zoom out"')+'<output class="mono" id="graph-zoom">100%</output>'+
|
|
61
|
+
action('graph-zoom-in','+','','id="graph-zoom-in" aria-label="Zoom in"')+action('graph-fit','Fit','','aria-label="Reset graph to fit"')+'</div></div>':'')+
|
|
62
|
+
'<div class="graph-exchanges" id="graph-exchanges">'+exchangeMarkup()+'</div>'+
|
|
63
|
+
'<p class="small graph-foot" id="project-file-pulse" hidden></p></section>';
|
|
64
|
+
}
|
|
65
|
+
function inspectorBody(){
|
|
66
|
+
const item=arr(state.graph?.nodes).find(node=>node.id===state.picked);
|
|
67
|
+
const memory=state.memory?.memory;
|
|
68
|
+
const event=displayEvent();
|
|
69
|
+
const tabs=[['record','Record'],['sources','Sources'],['relations','Links'],['event','Event']].map(([id,label])=>btn(label,'data-inspect="'+id+'" aria-pressed="'+(state.inspector===id)+'"')).join('');
|
|
70
|
+
let details;
|
|
71
|
+
if(state.inspector==='event'){
|
|
72
|
+
details=event?'<div class="panel-body stack"><div class="row"><h3>'+esc(eventLabel(event))+'</h3>'+chip(evidence(event),eventTone(event))+'</div><dl class="facts">'+fact('Host',hostName(event.agent))+fact('Time',isoTime(event.timestamp))+fact('Transport',event.transport)+fact('Session',event.sessionId)+fact('Outcome',event.outcome)+fact('Duration',Number.isFinite(event.durationMs)?event.durationMs+' ms':undefined)+'</dl>'+pairedExchangeMarkup(event)+action('copy-event','Copy event receipt')+'</div>':empty(state.replayExpired?'Replay record expired':'No activity selected',state.replayExpired?'Choose another journal record or return to Latest.':'Select a recorded journal event to inspect its source and outcome.');
|
|
73
|
+
}else if(!item){
|
|
74
|
+
details=empty('Select a graph record','Choose a node, a recent record, or a journal event to inspect its evidence.',state.events.length?action('inspect-latest','Inspect latest event'):'');
|
|
75
|
+
}else if(state.inspector==='sources'){
|
|
76
|
+
const sources=arr(memory?.sources??item.sources);
|
|
77
|
+
details='<div class="panel-body stack"><h3>'+esc(item.label)+'</h3>'+(sources.length?list(sources.map(source=>'<li class="item mono small">'+esc(source)+'</li>').join('')):empty('No source attached','This record has no persisted source reference.'))+(local&&item.memoryId?action('source-evidence','Verify original source','','data-memory="'+esc(item.memoryId)+'"'):'')+'</div>';
|
|
78
|
+
}else if(state.inspector==='relations'){
|
|
79
|
+
const edges=arr(state.graph?.edges).filter(edge=>edge.source===item.id||edge.target===item.id);
|
|
80
|
+
details='<div class="panel-body stack"><h3>'+esc(item.label)+'</h3>'+(edges.length?list(edges.map(edge=>{
|
|
81
|
+
const id=edge.source===item.id?edge.target:edge.source;
|
|
82
|
+
const node=arr(state.graph?.nodes).find(point=>point.id===id);
|
|
83
|
+
return '<li><button type="button" class="entry" data-node="'+esc(id)+'"><strong>'+esc(node?.label??id)+'</strong><small>'+esc(edge.kind)+'</small></button></li>';
|
|
84
|
+
}).join('')):empty('No graph relationships','There are no visible relationships for this record.'))+'</div>';
|
|
85
|
+
}else{
|
|
86
|
+
details='<div class="panel-body stack"><div class="row"><h3>'+esc(item.kind==='agent'?hostName(item.label):item.label)+'</h3>'+chip(item.kind)+'</div><dl class="facts">'+fact('Project',item.project)+fact('Recorded by',item.agent&&hostName(item.agent))+fact('State',memory?.effectiveState??item.effectiveState)+fact('Updated',item.updatedAt&&isoTime(item.updatedAt))+'</dl>'+(item.kind==='memory'?'<pre>'+esc(memory?.content??item.snippet)+'</pre>'+action('copy-memory','Copy record'):'')+'</div>';
|
|
87
|
+
}
|
|
88
|
+
return '<div class="panel-head"><h2>Record inspector</h2>'+(item?chip(item.category??item.kind):'')+'</div><div class="tabs" aria-label="Inspector tabs">'+tabs+'</div>'+details;
|
|
89
|
+
}
|
|
90
|
+
function renderInspector(){
|
|
91
|
+
const target=$('inspector');
|
|
92
|
+
if(target){
|
|
93
|
+
const tab=target.querySelector('[data-inspect]:focus')?.dataset.inspect;
|
|
94
|
+
target.innerHTML=inspectorBody();
|
|
95
|
+
if(tab)[...target.querySelectorAll('[data-inspect]')].find(button=>button.dataset.inspect===tab)?.focus({preventScroll:true});
|
|
96
|
+
}
|
|
97
|
+
syncGraphControls();
|
|
98
|
+
}
|
|
99
|
+
function overviewPage(){
|
|
100
|
+
const event=displayEvent();
|
|
101
|
+
const pack=state.context?.budget;
|
|
102
|
+
const compare=state.comparison;
|
|
103
|
+
const contextBody=pack?'<div class="panel-body stack"><div class="row"><span class="muted">Estimated pack tokens</span><strong class="mono">'+fmt(pack.estimatedTokens)+' / '+fmt(pack.tokenBudget)+'</strong></div><div class="meter"><i style="width:'+Math.min(100,Math.round(100*pack.estimatedTokens/Math.max(1,pack.tokenBudget)))+'%"></i></div>'+(compare?'<p class="small muted">Legacy '+fmt(compare.legacy.budget.estimatedTokens)+' · Adaptive '+fmt(compare.adaptive.budget.estimatedTokens)+' estimated tokens</p>':'')+(state.context?.efficiency?'<p><strong>'+(state.context.efficiency.signedTokenDifference<0?fmt(-state.context.efficiency.signedTokenDifference)+' more estimated tokens':fmt(state.context.efficiency.estimatedTokensAvoided)+' estimated tokens avoided')+'</strong></p><p class="small muted">Compared with the same task using the largest pack permitted by project controls. '+state.context.efficiency.assemblyMs+' ms assembly. Not measured billing savings.</p>':'')+view('context','Open context pack')+'</div>':empty('No context pack for this session','Assemble a pack to inspect estimated tokens and selection reasons.',view('context','Build context pack'));
|
|
104
|
+
return heading('Brain control room','Explore stored memories, inspect tool exchanges, and connect your project.',action('pause',state.motionPaused?'Resume motion':'Pause motion','','id="pause-motion" '+(reduced.matches?'disabled':''))+view('setup','Connection setup'))+
|
|
105
|
+
telemetryStrip()+agentDock()+'<div class="control-grid">'+rail()+graphMarkup()+'<section class="panel inspect" id="inspector">'+inspectorBody()+'</section></div><div class="lower">'+panel('Context efficiency',contextBody,chip('Estimates','pink'))+
|
|
106
|
+
panel('Activity journal','<div class="replay"><label for="replay" class="small muted">Seek record</label><input id="replay" type="range" min="0" max="'+Math.max(0,state.events.length-1)+'" value="'+Math.max(0,state.events.indexOf(event))+'" '+(state.events.length?'':'disabled')+'><output class="mono small" id="event-time">'+esc(event?time(event.timestamp):state.replayExpired?'Expired':'—')+'</output>'+action('live','Latest','','id="return-live" '+(state.replayId?'':'hidden'))+'</div><div class="timeline" id="timeline">'+timelineMarkup()+'</div>', '<span id="journal-state">'+chip(state.replayId?(state.replayExpired?'Replay expired':'Replay'):state.live?'Recorded activity':'Activity unavailable',state.replayId?'amber':'cyan')+'</span>')+'</div>';
|
|
107
|
+
}
|
|
108
|
+
function updateOverviewLive(){
|
|
109
|
+
const timeline=$('timeline'),range=$('replay');
|
|
110
|
+
if(!timeline||!range)return;
|
|
111
|
+
const event=displayEvent();
|
|
112
|
+
const markup=timelineMarkup(),previous=timeline.querySelector('[data-event]:focus')?.dataset.event;
|
|
113
|
+
if(timeline.dataset.markup!==markup){
|
|
114
|
+
timeline.innerHTML=markup;timeline.dataset.markup=markup;
|
|
115
|
+
if(previous)[...timeline.querySelectorAll('[data-event]')].find(node=>node.dataset.event===previous)?.focus({preventScroll:true});
|
|
116
|
+
}
|
|
117
|
+
const traceList=$('trace-list');
|
|
118
|
+
if(traceList&&!traceList.hidden){
|
|
119
|
+
const trace=timelineMarkup(true),previous=traceList.querySelector('[data-event]:focus')?.dataset.event;
|
|
120
|
+
if(traceList.dataset.markup!==trace){
|
|
121
|
+
traceList.innerHTML=trace;traceList.dataset.markup=trace;
|
|
122
|
+
if(previous)[...traceList.querySelectorAll('[data-event]')].find(node=>node.dataset.event===previous)?.focus({preventScroll:true});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
range.max=String(Math.max(0,state.events.length-1));range.value=String(Math.max(0,state.events.indexOf(event)));range.disabled=!state.events.length;
|
|
126
|
+
if(event)range.setAttribute('aria-valuetext',time(event.timestamp)+' · '+eventLabel(event));
|
|
127
|
+
else range.removeAttribute('aria-valuetext');
|
|
128
|
+
$('event-time').textContent=event?time(event.timestamp):state.replayExpired?'Expired':'—';
|
|
129
|
+
$('return-live').hidden=!state.replayId;
|
|
130
|
+
$('journal-state').innerHTML=chip(state.replayId?(state.replayExpired?'Replay expired':'Replay'):state.live?'Recorded activity':'Activity unavailable',state.replayId?'amber':'cyan');
|
|
131
|
+
const strip=$('main').querySelector('.strip');if(strip)strip.outerHTML=telemetryStrip();
|
|
132
|
+
if(state.inspector==='event'&&!$('inspector').matches(':focus-within'))renderInspector();
|
|
133
|
+
const pause=$('pause-motion');pause.textContent=state.motionPaused?'Resume motion':'Pause motion';pause.disabled=reduced.matches;
|
|
134
|
+
updateExchanges();drawGraph();updateAgentDock();
|
|
135
|
+
}
|
|
136
|
+
${BRAIN_HUB_CONTEXT}
|
|
137
|
+
${BRAIN_HUB_AGENT_DOCK}
|
|
138
|
+
${BRAIN_HUB_USAGE}
|
|
139
|
+
${BRAIN_HUB_SESSIONS}
|
|
140
|
+
${BRAIN_HUB_CONTROLS}
|
|
141
|
+
${BRAIN_HUB_MANAGED_SKILLS}
|
|
142
|
+
function setupPage(){
|
|
143
|
+
const features=state.features;
|
|
144
|
+
const flags=features?list(arr(features.definitions).map(item=>{
|
|
145
|
+
const reason=featureLimit(item.id),on=!reason&&features.features[item.id];
|
|
146
|
+
return '<li class="item"><div class="row"><strong>'+esc(item.label)+'</strong>'+btn(reason?'Unavailable':on?'On':'Off','data-feature="'+esc(item.id)+'" role="switch" aria-checked="'+!!on+'" aria-label="'+esc(item.label)+'" '+(state.pending||reason?'disabled':''))+'</div><p class="small muted">'+esc(reason??item.description)+'</p></li>';
|
|
147
|
+
}).join('')):error('features','feature settings')||empty('Loading feature settings','The server supplies the current switches and their descriptions.');
|
|
148
|
+
const hosts=arr(state.integrations?.agents);
|
|
149
|
+
const recipes=hosts.length?list(hosts.map(host=>'<li class="item"><div class="row"><h3>'+esc(host.label)+'</h3>'+chip(host.installation)+'</div><p class="small muted">'+esc(host.detail)+'</p><details><summary>Connection recipe</summary><div class="stack"><pre>'+esc(host.config?.content)+'</pre>'+arr(host.config?.notes).map(note=>'<p class="small muted">'+esc(note)+'</p>').join('')+'<div class="actions">'+action('copy-host','Copy configuration','','data-host="'+esc(host.id)+'"')+action('copy-command','Copy skill command','','data-host="'+esc(host.id)+'"')+'</div></div></details></li>').join('')):error('integrations','host recipes')||empty('Loading host recipes','Configuration recipes are generated locally.');
|
|
150
|
+
const checks=arr(state.integrations?.checks);
|
|
151
|
+
return heading('Workspace setup','Configure host access and manage the workspace’s real feature switches.',action('refresh','Refresh checks'))+projectControls()+managedSkillControls()+'<div class="two">'+panel('Features',flags,features?chip('Revision '+features.revision):'')+panel('Client configuration',recipes,chip('Local recipes','cyan'))+'</div>'+panel('Local checks',checks.length?list(checks.map(check=>'<li class="item"><div class="row"><strong>'+esc(check.label)+'</strong>'+chip(check.status,check.status==='pass'?'green':check.status==='error'?'red':'')+'</div><p class="small muted">'+esc(check.detail)+'</p></li>').join('')):empty('No checks loaded','Refresh to retry host and storage checks.'),checks.length?action('copy-diagnostics','Copy diagnostics'):'');
|
|
152
|
+
}
|
|
153
|
+
const views={overview:overviewPage,sessions:sessionsPage,context:contextPage,models:modelsPage,usage:usagePage,setup:setupPage,knowledge:knowledgePage,room:roomPage,learning:learningPage};
|
|
154
|
+
` + BRAIN_HUB_PROJECT_VIEWS + BRAIN_HUB_ACTIONS;
|
|
155
|
+
//# sourceMappingURL=brain-hub-views.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brain-hub-views.js","sourceRoot":"","sources":["../../src/dashboard/brain-hub-views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+HvC,iBAAiB;EACjB,oBAAoB;EACpB,eAAe;EACf,kBAAkB;EAClB,kBAAkB;EAClB,wBAAwB;;;;;;;;;;;;;CAazB,GAAG,uBAAuB,GAAG,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface DemoWorkspaceOptions {
|
|
2
|
+
port?: number;
|
|
3
|
+
activity?: boolean;
|
|
4
|
+
}
|
|
5
|
+
/** An isolated loopback tour. Never discovers clients or opens default memory/provider configuration. */
|
|
6
|
+
export declare function startDemoWorkspace(options?: DemoWorkspaceOptions): Promise<{
|
|
7
|
+
url: string;
|
|
8
|
+
directory: string;
|
|
9
|
+
close: () => Promise<void>;
|
|
10
|
+
}>;
|
|
11
|
+
//# sourceMappingURL=demo-workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-workspace.d.ts","sourceRoot":"","sources":["../../src/dashboard/demo-workspace.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,oBAAoB;IAAG,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE;AAyB3E,yGAAyG;AACzG,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,oBAAyB;;;;GA0G1E"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as os from 'node:os';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import * as http from 'node:http';
|
|
5
|
+
import { GlobalBrain } from '../brain/global-brain.js';
|
|
6
|
+
import { FeatureSettingsStore } from '../brain/feature-settings.js';
|
|
7
|
+
import { memoryAnnotationsFor } from '../brain/memory-annotations.js';
|
|
8
|
+
import { ActivityJournal } from '../brain/activity-journal.js';
|
|
9
|
+
import { MCPServer } from '../brain/mcp-server.js';
|
|
10
|
+
import { handleWorkspaceRequest } from './workspace-api.js';
|
|
11
|
+
import { WORKSPACE_HTML } from './workspace-html.js';
|
|
12
|
+
import { LIVE_WORKSPACE_HTML } from './live-workspace-html.js';
|
|
13
|
+
import { BRAIN_HUB_HTML } from './brain-hub-html.js';
|
|
14
|
+
import { WorkspaceRuntime } from './workspace-status.js';
|
|
15
|
+
const projectId = 'demo-checkout';
|
|
16
|
+
const seeds = [
|
|
17
|
+
['decision', 'Retry only idempotent checkout requests.\nA stable idempotency key keeps a retry from charging twice.', 'docs/checkout/decision.md'],
|
|
18
|
+
['pattern', 'retryBudgetPolicy limits reconnect attempts.\nUse capped exponential backoff with jitter; retries share a request budget.', 'src/retryBudgetPolicy.ts'],
|
|
19
|
+
['verification', 'A retry test proves one charge after a connection reset.\nThe synthetic fixture records three attempts and one committed operation.', 'tests/checkout-retry.test.ts'],
|
|
20
|
+
['warning', 'Do not retry validation failures.\nOnly transient connection failures enter the retry queue.', 'docs/checkout/errors.md'],
|
|
21
|
+
['lesson', 'The old retry loop reused stale request bodies.', 'docs/checkout/history.md'],
|
|
22
|
+
['decision', 'A reviewed retry queue preserves the original request identity.', 'docs/checkout/replacement.md'],
|
|
23
|
+
['lesson', 'A team note proposes retrying all failures.', ''],
|
|
24
|
+
['research', 'Latency measurements distinguish queue wait from tool execution.', 'docs/telemetry.md'],
|
|
25
|
+
['pattern', 'Cancellation releases the queue slot before admitting another request.', 'src/cancel-request.ts'],
|
|
26
|
+
['decision', 'Project context remains scoped unless broader retrieval is explicitly enabled.', 'docs/context-policy.md'],
|
|
27
|
+
['reference', 'Import replay uses the recorded checksum to deduplicate work.', 'src/import/replay.ts'],
|
|
28
|
+
['verification', 'A bounded importer rejects duplicate events without changing prior commits.', 'tests/import/replay.test.ts'],
|
|
29
|
+
['release', 'Release checks include migrations, rollback and retry regression cases.', 'docs/release.md'],
|
|
30
|
+
['research', 'Java worker interop uses the stable queue protocol.', 'docs/java-worker.md'],
|
|
31
|
+
['pattern', 'JavaScript UI state is separate from the Java worker protocol.', 'docs/ui-state.md'],
|
|
32
|
+
['lesson', 'Review the remaining retry assumption with the team.', ''],
|
|
33
|
+
['lesson', 'Review the remaining retry assumption with the team.', ''],
|
|
34
|
+
['warning', 'Exception boundaries must preserve the original request identifier.', 'src/errors.ts'],
|
|
35
|
+
['decision', 'A separate billing worker owns settlement reconciliation.', 'docs/billing.md', 'demo-billing'],
|
|
36
|
+
['pattern', 'Billing retry limits follow the settlement queue policy.', 'src/billing/retry.ts', 'demo-billing'],
|
|
37
|
+
];
|
|
38
|
+
/** An isolated loopback tour. Never discovers clients or opens default memory/provider configuration. */
|
|
39
|
+
export async function startDemoWorkspace(options = {}) {
|
|
40
|
+
const port = options.port ?? 0;
|
|
41
|
+
if (!Number.isSafeInteger(port) || port < 0 || port > 65535)
|
|
42
|
+
throw new TypeError('Demo port must be an integer from 0 to 65535.');
|
|
43
|
+
const tempRoot = fs.realpathSync(os.tmpdir());
|
|
44
|
+
const directory = fs.mkdtempSync(path.join(tempRoot, 'shadow-brain-demo-'));
|
|
45
|
+
const dbPath = path.join(directory, 'global.json');
|
|
46
|
+
const brain = GlobalBrain.getInstance({ dbPath, syncIntervalMs: 60000 });
|
|
47
|
+
if (brain.dbPath !== dbPath) {
|
|
48
|
+
fs.rmdirSync(directory);
|
|
49
|
+
throw new Error('Run demo in a separate CLI process so its memory store stays isolated.');
|
|
50
|
+
}
|
|
51
|
+
const settings = new FeatureSettingsStore({ filePath: path.join(directory, 'feature-settings.json') });
|
|
52
|
+
const journal = new ActivityJournal({ filePath: path.join(directory, 'activity-journal.json') });
|
|
53
|
+
const servers = [];
|
|
54
|
+
const runtime = new WorkspaceRuntime('demo');
|
|
55
|
+
let listener;
|
|
56
|
+
let timer;
|
|
57
|
+
let task;
|
|
58
|
+
let closing;
|
|
59
|
+
let stopped = false;
|
|
60
|
+
const close = () => closing ?? (closing = (async () => {
|
|
61
|
+
stopped = true;
|
|
62
|
+
if (timer)
|
|
63
|
+
clearTimeout(timer);
|
|
64
|
+
if (listener?.listening) {
|
|
65
|
+
listener.closeAllConnections();
|
|
66
|
+
await new Promise((resolve, reject) => listener.close(error => error ? reject(error) : resolve()));
|
|
67
|
+
}
|
|
68
|
+
if (task)
|
|
69
|
+
await task.catch(() => { });
|
|
70
|
+
for (const server of servers)
|
|
71
|
+
await server.finishMemorySession();
|
|
72
|
+
await brain.shutdown();
|
|
73
|
+
const resolved = path.resolve(directory);
|
|
74
|
+
const relative = path.relative(tempRoot, resolved);
|
|
75
|
+
if (!relative.startsWith('shadow-brain-demo-') || relative.includes(path.sep) ||
|
|
76
|
+
fs.lstatSync(resolved).isSymbolicLink() || fs.realpathSync(resolved) !== resolved)
|
|
77
|
+
throw new Error('Demo cleanup path changed; temporary files were retained.');
|
|
78
|
+
fs.rmSync(resolved, { recursive: true });
|
|
79
|
+
})());
|
|
80
|
+
try {
|
|
81
|
+
await brain.init();
|
|
82
|
+
const ids = seeds.map(([category, content, source, project], index) => brain.writeSync({
|
|
83
|
+
projectId: project ?? projectId, projectName: project ? 'Billing worker · demo' : 'Checkout API · demo',
|
|
84
|
+
category, content, agentTool: ['codex', 'claude-code', 'opencode'][index % 3],
|
|
85
|
+
importance: category === 'warning' ? 0.85 : 0.7, metadata: source ? { source } : {},
|
|
86
|
+
}));
|
|
87
|
+
await brain.sync();
|
|
88
|
+
const annotations = memoryAnnotationsFor(brain);
|
|
89
|
+
for (const [from, to, type] of [[2, 0, 'supports'], [0, 1, 'related'], [3, 6, 'contradicts'], [5, 4, 'supersedes'], [10, 11, 'supports'], [1, 12, 'related']]) {
|
|
90
|
+
await annotations.update({ kind: 'link', projectId, fromId: ids[from], toId: ids[to], type, note: 'Synthetic demonstration relationship.' });
|
|
91
|
+
}
|
|
92
|
+
await annotations.update({ kind: 'review', projectId, memoryId: ids[6], state: 'contested', note: 'Synthetic note awaiting evidence.' });
|
|
93
|
+
await settings.update({ activityRecording: true, liveActivity: true });
|
|
94
|
+
for (let i = 0; i < 3; i++) {
|
|
95
|
+
const server = new MCPServer(null, { toolProfile: 'memory', authToken: '' }, { brain, settings, projectDir: directory, projectId });
|
|
96
|
+
servers.push(server);
|
|
97
|
+
await server.handleRequest({ jsonrpc: '2.0', id: 1, method: 'initialize', params: {
|
|
98
|
+
protocolVersion: '2025-11-25', clientInfo: { name: 'synthetic-demo-' + i, version: '1' }, capabilities: {},
|
|
99
|
+
} });
|
|
100
|
+
}
|
|
101
|
+
let step = 0;
|
|
102
|
+
const tick = async () => {
|
|
103
|
+
const server = servers[step % servers.length];
|
|
104
|
+
const phase = ['understand', 'plan', 'work', 'verify'][Math.floor(step / servers.length) % 4];
|
|
105
|
+
await server.handleRequest({ jsonrpc: '2.0', id: 2, method: 'tools/call', params: {
|
|
106
|
+
name: 'activity_report', arguments: { kind: 'phase', phase, agent: 'demo-worker-' + (step % servers.length + 1) },
|
|
107
|
+
} });
|
|
108
|
+
const calls = [
|
|
109
|
+
{ name: 'context_pack', arguments: { projectId, query: 'Fix checkout retryBudgetPolicy', profile: 'adaptive', tokenBudget: 1800 } },
|
|
110
|
+
{ name: 'memory_health', arguments: { projectId, limit: 5 } },
|
|
111
|
+
{ name: 'memory_inspect', arguments: { projectId, memoryId: ids[step % 18] } },
|
|
112
|
+
];
|
|
113
|
+
await server.handleRequest({ jsonrpc: '2.0', id: 3, method: 'tools/call', params: calls[step % calls.length] });
|
|
114
|
+
step++;
|
|
115
|
+
};
|
|
116
|
+
for (let i = 0; i < 9; i++)
|
|
117
|
+
await tick();
|
|
118
|
+
listener = http.createServer((req, res) => {
|
|
119
|
+
const actualPort = listener.address().port;
|
|
120
|
+
if (!['127.0.0.1:' + actualPort, 'localhost:' + actualPort].includes(req.headers.host ?? '')) {
|
|
121
|
+
res.writeHead(403);
|
|
122
|
+
res.end('Unsupported host.');
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (req.url?.startsWith('/api/workspace/')) {
|
|
126
|
+
void handleWorkspaceRequest(req, res, { brain, settings, annotations, journal, demo: true, runtime });
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (req.method !== 'GET') {
|
|
130
|
+
res.writeHead(405);
|
|
131
|
+
res.end('Method not allowed.');
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
let pathname;
|
|
135
|
+
try {
|
|
136
|
+
pathname = new URL(req.url ?? '/', 'http://localhost').pathname;
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
res.writeHead(400);
|
|
140
|
+
res.end('Invalid request URL.');
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (pathname === '/favicon.ico') {
|
|
144
|
+
res.writeHead(204);
|
|
145
|
+
res.end();
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const html = pathname === '/' || pathname === '/hub' ? BRAIN_HUB_HTML : pathname === '/workspace' || pathname === '/memory-workspace' ? WORKSPACE_HTML : pathname === '/live' ? LIVE_WORKSPACE_HTML : null;
|
|
149
|
+
if (!html) {
|
|
150
|
+
res.writeHead(404);
|
|
151
|
+
res.end('This demo serves /workspace and /live.');
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8', 'Cache-Control': 'no-store', 'X-Content-Type-Options': 'nosniff', 'Referrer-Policy': 'no-referrer' });
|
|
155
|
+
res.end(html.replace('<html ', '<html data-demo="true" '));
|
|
156
|
+
});
|
|
157
|
+
await new Promise((resolve, reject) => {
|
|
158
|
+
listener.once('error', reject);
|
|
159
|
+
listener.listen(port, '127.0.0.1', () => { listener.off('error', reject); resolve(); });
|
|
160
|
+
});
|
|
161
|
+
if (options.activity !== false) {
|
|
162
|
+
const schedule = () => {
|
|
163
|
+
if (stopped)
|
|
164
|
+
return;
|
|
165
|
+
timer = setTimeout(() => {
|
|
166
|
+
task = tick().catch(() => { console.error('A synthetic demo activity cycle failed; the workspace remains available.'); }).finally(schedule);
|
|
167
|
+
}, 1800);
|
|
168
|
+
};
|
|
169
|
+
schedule();
|
|
170
|
+
}
|
|
171
|
+
return { url: 'http://127.0.0.1:' + listener.address().port, directory, close };
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
await close();
|
|
175
|
+
throw error;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=demo-workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-workspace.js","sourceRoot":"","sources":["../../src/dashboard/demo-workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-workspace-html.d.ts","sourceRoot":"","sources":["../../src/dashboard/live-workspace-html.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,mBAAmB,QA+gCxB,CAAC"}
|