@theihtisham/agent-shadow-brain 7.1.0 → 7.1.4

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.
Files changed (294) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +125 -450
  3. package/dist/activity-cli.d.ts +3 -0
  4. package/dist/activity-cli.d.ts.map +1 -0
  5. package/dist/activity-cli.js +78 -0
  6. package/dist/activity-cli.js.map +1 -0
  7. package/dist/adapters/index.d.ts +2 -1
  8. package/dist/adapters/index.d.ts.map +1 -1
  9. package/dist/adapters/index.js +3 -2
  10. package/dist/adapters/index.js.map +1 -1
  11. package/dist/brain/activity-journal.d.ts +82 -0
  12. package/dist/brain/activity-journal.d.ts.map +1 -0
  13. package/dist/brain/activity-journal.js +315 -0
  14. package/dist/brain/activity-journal.js.map +1 -0
  15. package/dist/brain/activity-reporting.d.ts +14 -0
  16. package/dist/brain/activity-reporting.d.ts.map +1 -0
  17. package/dist/brain/activity-reporting.js +17 -0
  18. package/dist/brain/activity-reporting.js.map +1 -0
  19. package/dist/brain/auto-update.js +1 -1
  20. package/dist/brain/brain-portability.js +1 -1
  21. package/dist/brain/client-config.d.ts +19 -0
  22. package/dist/brain/client-config.d.ts.map +1 -0
  23. package/dist/brain/client-config.js +40 -0
  24. package/dist/brain/client-config.js.map +1 -0
  25. package/dist/brain/client-integrations.d.ts +63 -0
  26. package/dist/brain/client-integrations.d.ts.map +1 -0
  27. package/dist/brain/client-integrations.js +79 -0
  28. package/dist/brain/client-integrations.js.map +1 -0
  29. package/dist/brain/context-assembly.d.ts +84 -0
  30. package/dist/brain/context-assembly.d.ts.map +1 -0
  31. package/dist/brain/context-assembly.js +529 -0
  32. package/dist/brain/context-assembly.js.map +1 -0
  33. package/dist/brain/context-request.d.ts +4 -0
  34. package/dist/brain/context-request.d.ts.map +1 -0
  35. package/dist/brain/context-request.js +22 -0
  36. package/dist/brain/context-request.js.map +1 -0
  37. package/dist/brain/context-retrieval.d.ts +88 -0
  38. package/dist/brain/context-retrieval.d.ts.map +1 -0
  39. package/dist/brain/context-retrieval.js +300 -0
  40. package/dist/brain/context-retrieval.js.map +1 -0
  41. package/dist/brain/feature-settings.d.ts +58 -0
  42. package/dist/brain/feature-settings.d.ts.map +1 -0
  43. package/dist/brain/feature-settings.js +242 -0
  44. package/dist/brain/feature-settings.js.map +1 -0
  45. package/dist/brain/file-identity.d.ts +4 -0
  46. package/dist/brain/file-identity.d.ts.map +1 -0
  47. package/dist/brain/file-identity.js +27 -0
  48. package/dist/brain/file-identity.js.map +1 -0
  49. package/dist/brain/global-brain.d.ts +18 -1
  50. package/dist/brain/global-brain.d.ts.map +1 -1
  51. package/dist/brain/global-brain.js +77 -10
  52. package/dist/brain/global-brain.js.map +1 -1
  53. package/dist/brain/mcp-server.d.ts +30 -1
  54. package/dist/brain/mcp-server.d.ts.map +1 -1
  55. package/dist/brain/mcp-server.js +378 -28
  56. package/dist/brain/mcp-server.js.map +1 -1
  57. package/dist/brain/mcp-stdio.d.ts +12 -0
  58. package/dist/brain/mcp-stdio.d.ts.map +1 -0
  59. package/dist/brain/mcp-stdio.js +140 -0
  60. package/dist/brain/mcp-stdio.js.map +1 -0
  61. package/dist/brain/memory-annotations.d.ts +97 -0
  62. package/dist/brain/memory-annotations.d.ts.map +1 -0
  63. package/dist/brain/memory-annotations.js +389 -0
  64. package/dist/brain/memory-annotations.js.map +1 -0
  65. package/dist/brain/memory-graph.d.ts.map +1 -1
  66. package/dist/brain/memory-graph.js +12 -23
  67. package/dist/brain/memory-graph.js.map +1 -1
  68. package/dist/brain/memory-inspection.d.ts +72 -0
  69. package/dist/brain/memory-inspection.d.ts.map +1 -0
  70. package/dist/brain/memory-inspection.js +131 -0
  71. package/dist/brain/memory-inspection.js.map +1 -0
  72. package/dist/brain/memory-mcp-content.d.ts +44 -0
  73. package/dist/brain/memory-mcp-content.d.ts.map +1 -0
  74. package/dist/brain/memory-mcp-content.js +91 -0
  75. package/dist/brain/memory-mcp-content.js.map +1 -0
  76. package/dist/brain/memory-sources.d.ts +8 -0
  77. package/dist/brain/memory-sources.d.ts.map +1 -0
  78. package/dist/brain/memory-sources.js +27 -0
  79. package/dist/brain/memory-sources.js.map +1 -0
  80. package/dist/brain/orchestrator.js +1 -1
  81. package/dist/brain/project-feedback.d.ts +63 -0
  82. package/dist/brain/project-feedback.d.ts.map +1 -0
  83. package/dist/brain/project-feedback.js +289 -0
  84. package/dist/brain/project-feedback.js.map +1 -0
  85. package/dist/brain/project-hub-contract.d.ts +326 -0
  86. package/dist/brain/project-hub-contract.d.ts.map +1 -0
  87. package/dist/brain/project-hub-contract.js +56 -0
  88. package/dist/brain/project-hub-contract.js.map +1 -0
  89. package/dist/brain/project-hub-mcp.d.ts +168 -0
  90. package/dist/brain/project-hub-mcp.d.ts.map +1 -0
  91. package/dist/brain/project-hub-mcp.js +41 -0
  92. package/dist/brain/project-hub-mcp.js.map +1 -0
  93. package/dist/brain/project-hub-pdf-worker.d.ts +13 -0
  94. package/dist/brain/project-hub-pdf-worker.d.ts.map +1 -0
  95. package/dist/brain/project-hub-pdf-worker.js +84 -0
  96. package/dist/brain/project-hub-pdf-worker.js.map +1 -0
  97. package/dist/brain/project-hub-store.d.ts +38 -0
  98. package/dist/brain/project-hub-store.d.ts.map +1 -0
  99. package/dist/brain/project-hub-store.js +189 -0
  100. package/dist/brain/project-hub-store.js.map +1 -0
  101. package/dist/brain/project-hub.d.ts +127 -0
  102. package/dist/brain/project-hub.d.ts.map +1 -0
  103. package/dist/brain/project-hub.js +381 -0
  104. package/dist/brain/project-hub.js.map +1 -0
  105. package/dist/brain/project-kit-inspection.d.ts +28 -0
  106. package/dist/brain/project-kit-inspection.d.ts.map +1 -0
  107. package/dist/brain/project-kit-inspection.js +200 -0
  108. package/dist/brain/project-kit-inspection.js.map +1 -0
  109. package/dist/brain/project-kit-paths.d.ts +13 -0
  110. package/dist/brain/project-kit-paths.d.ts.map +1 -0
  111. package/dist/brain/project-kit-paths.js +141 -0
  112. package/dist/brain/project-kit-paths.js.map +1 -0
  113. package/dist/brain/project-kit.d.ts +41 -0
  114. package/dist/brain/project-kit.d.ts.map +1 -0
  115. package/dist/brain/project-kit.js +255 -0
  116. package/dist/brain/project-kit.js.map +1 -0
  117. package/dist/brain/project-memory.d.ts +38 -0
  118. package/dist/brain/project-memory.d.ts.map +1 -0
  119. package/dist/brain/project-memory.js +76 -0
  120. package/dist/brain/project-memory.js.map +1 -0
  121. package/dist/brain/subconscious.d.ts +21 -24
  122. package/dist/brain/subconscious.d.ts.map +1 -1
  123. package/dist/brain/subconscious.js +82 -218
  124. package/dist/brain/subconscious.js.map +1 -1
  125. package/dist/brain/workflow-skills.d.ts +5 -5
  126. package/dist/brain/workflow-skills.d.ts.map +1 -1
  127. package/dist/brain/workflow-skills.js +3 -2
  128. package/dist/brain/workflow-skills.js.map +1 -1
  129. package/dist/cli.js +40 -4
  130. package/dist/cli.js.map +1 -1
  131. package/dist/context-cli.d.ts +3 -0
  132. package/dist/context-cli.d.ts.map +1 -0
  133. package/dist/context-cli.js +90 -0
  134. package/dist/context-cli.js.map +1 -0
  135. package/dist/curation-cli.d.ts +4 -0
  136. package/dist/curation-cli.d.ts.map +1 -0
  137. package/dist/curation-cli.js +118 -0
  138. package/dist/curation-cli.js.map +1 -0
  139. package/dist/dashboard/brain-hub-actions.d.ts +2 -0
  140. package/dist/dashboard/brain-hub-actions.d.ts.map +1 -0
  141. package/dist/dashboard/brain-hub-actions.js +137 -0
  142. package/dist/dashboard/brain-hub-actions.js.map +1 -0
  143. package/dist/dashboard/brain-hub-client.d.ts +2 -0
  144. package/dist/dashboard/brain-hub-client.d.ts.map +1 -0
  145. package/dist/dashboard/brain-hub-client.js +335 -0
  146. package/dist/dashboard/brain-hub-client.js.map +1 -0
  147. package/dist/dashboard/brain-hub-graph.d.ts +2 -0
  148. package/dist/dashboard/brain-hub-graph.d.ts.map +1 -0
  149. package/dist/dashboard/brain-hub-graph.js +176 -0
  150. package/dist/dashboard/brain-hub-graph.js.map +1 -0
  151. package/dist/dashboard/brain-hub-html.d.ts +2 -0
  152. package/dist/dashboard/brain-hub-html.d.ts.map +1 -0
  153. package/dist/dashboard/brain-hub-html.js +30 -0
  154. package/dist/dashboard/brain-hub-html.js.map +1 -0
  155. package/dist/dashboard/brain-hub-project-views.d.ts +2 -0
  156. package/dist/dashboard/brain-hub-project-views.d.ts.map +1 -0
  157. package/dist/dashboard/brain-hub-project-views.js +79 -0
  158. package/dist/dashboard/brain-hub-project-views.js.map +1 -0
  159. package/dist/dashboard/brain-hub-views.d.ts +2 -0
  160. package/dist/dashboard/brain-hub-views.d.ts.map +1 -0
  161. package/dist/dashboard/brain-hub-views.js +150 -0
  162. package/dist/dashboard/brain-hub-views.js.map +1 -0
  163. package/dist/dashboard/demo-workspace.d.ts +11 -0
  164. package/dist/dashboard/demo-workspace.d.ts.map +1 -0
  165. package/dist/dashboard/demo-workspace.js +178 -0
  166. package/dist/dashboard/demo-workspace.js.map +1 -0
  167. package/dist/dashboard/live-workspace-html.d.ts +2 -0
  168. package/dist/dashboard/live-workspace-html.d.ts.map +1 -0
  169. package/dist/dashboard/live-workspace-html.js +1042 -0
  170. package/dist/dashboard/live-workspace-html.js.map +1 -0
  171. package/dist/dashboard/project-feedback-html.d.ts +5 -0
  172. package/dist/dashboard/project-feedback-html.d.ts.map +1 -0
  173. package/dist/dashboard/project-feedback-html.js +216 -0
  174. package/dist/dashboard/project-feedback-html.js.map +1 -0
  175. package/dist/dashboard/project-hub-api.d.ts +5 -0
  176. package/dist/dashboard/project-hub-api.d.ts.map +1 -0
  177. package/dist/dashboard/project-hub-api.js +121 -0
  178. package/dist/dashboard/project-hub-api.js.map +1 -0
  179. package/dist/dashboard/project-kit-html.d.ts +4 -0
  180. package/dist/dashboard/project-kit-html.d.ts.map +1 -0
  181. package/dist/dashboard/project-kit-html.js +359 -0
  182. package/dist/dashboard/project-kit-html.js.map +1 -0
  183. package/dist/dashboard/project-workspace.d.ts +16 -0
  184. package/dist/dashboard/project-workspace.d.ts.map +1 -0
  185. package/dist/dashboard/project-workspace.js +106 -0
  186. package/dist/dashboard/project-workspace.js.map +1 -0
  187. package/dist/dashboard/server.d.ts +2 -0
  188. package/dist/dashboard/server.d.ts.map +1 -1
  189. package/dist/dashboard/server.js +65 -19
  190. package/dist/dashboard/server.js.map +1 -1
  191. package/dist/dashboard/v6-dashboard-html.d.ts +1 -1
  192. package/dist/dashboard/v6-dashboard-html.d.ts.map +1 -1
  193. package/dist/dashboard/v6-dashboard-html.js +34 -56
  194. package/dist/dashboard/v6-dashboard-html.js.map +1 -1
  195. package/dist/dashboard/workspace-api.d.ts +22 -0
  196. package/dist/dashboard/workspace-api.d.ts.map +1 -0
  197. package/dist/dashboard/workspace-api.js +429 -0
  198. package/dist/dashboard/workspace-api.js.map +1 -0
  199. package/dist/dashboard/workspace-html.d.ts +2 -0
  200. package/dist/dashboard/workspace-html.d.ts.map +1 -0
  201. package/dist/dashboard/workspace-html.js +2538 -0
  202. package/dist/dashboard/workspace-html.js.map +1 -0
  203. package/dist/dashboard/workspace-status.d.ts +50 -0
  204. package/dist/dashboard/workspace-status.d.ts.map +1 -0
  205. package/dist/dashboard/workspace-status.js +22 -0
  206. package/dist/dashboard/workspace-status.js.map +1 -0
  207. package/dist/index.d.ts +20 -0
  208. package/dist/index.d.ts.map +1 -1
  209. package/dist/index.js +15 -0
  210. package/dist/index.js.map +1 -1
  211. package/dist/integration-cli.d.ts +3 -0
  212. package/dist/integration-cli.d.ts.map +1 -0
  213. package/dist/integration-cli.js +16 -0
  214. package/dist/integration-cli.js.map +1 -0
  215. package/dist/project-cli.d.ts +3 -0
  216. package/dist/project-cli.d.ts.map +1 -0
  217. package/dist/project-cli.js +100 -0
  218. package/dist/project-cli.js.map +1 -0
  219. package/dist/types.d.ts +12 -3
  220. package/dist/types.d.ts.map +1 -1
  221. package/docs/COMPARISON.md +22 -0
  222. package/docs/COMPONENTS.md +66 -0
  223. package/docs/CONTEXT_LAB.md +79 -0
  224. package/docs/FEATURES_AND_LIMITS.md +24 -0
  225. package/docs/INTEGRATIONS.md +68 -0
  226. package/docs/LEARNING.md +46 -0
  227. package/docs/PROJECT_KIT.md +93 -0
  228. package/docs/QUICKSTART.md +44 -0
  229. package/docs/README.md +33 -0
  230. package/docs/ROADMAP-v7.md +147 -0
  231. package/docs/SHARING.md +13 -0
  232. package/docs/SHOWCASE.md +87 -0
  233. package/docs/STATS.md +21 -0
  234. package/docs/TROUBLESHOOTING.md +42 -0
  235. package/docs/UPGRADE_PLAN_v7.0.0.md +203 -0
  236. package/docs/VIRAL-PLAYBOOK.md +259 -0
  237. package/docs/VISUAL_GUIDE_v7.1.4.md +70 -0
  238. package/docs/WORKFLOW_INTEGRATION.md +19 -1
  239. package/docs/WORKSPACE.md +37 -0
  240. package/docs/assets/7.1.4-collaboration-design-preview.png +0 -0
  241. package/docs/assets/7.1.4-comparison.png +0 -0
  242. package/docs/assets/7.1.4-context-lab.png +0 -0
  243. package/docs/assets/7.1.4-control-room-dense-preview.png +0 -0
  244. package/docs/assets/7.1.4-control-room-focus-preview.png +0 -0
  245. package/docs/assets/7.1.4-features.png +0 -0
  246. package/docs/assets/7.1.4-graph.png +0 -0
  247. package/docs/assets/7.1.4-hub-control-room.png +0 -0
  248. package/docs/assets/7.1.4-hub-empty.png +0 -0
  249. package/docs/assets/7.1.4-hub-knowledge.png +0 -0
  250. package/docs/assets/7.1.4-hub-learning.png +0 -0
  251. package/docs/assets/7.1.4-hub-mobile.png +0 -0
  252. package/docs/assets/7.1.4-hub-public-docs-source.png +0 -0
  253. package/docs/assets/7.1.4-hub-public-docs.gif +0 -0
  254. package/docs/assets/7.1.4-hub-public-docs.png +0 -0
  255. package/docs/assets/7.1.4-hub-setup.png +0 -0
  256. package/docs/assets/7.1.4-hub-walkthrough.gif +0 -0
  257. package/docs/assets/7.1.4-integrations.png +0 -0
  258. package/docs/assets/7.1.4-knowledge-design-preview.png +0 -0
  259. package/docs/assets/7.1.4-learning-design-preview.png +0 -0
  260. package/docs/assets/7.1.4-learning.png +0 -0
  261. package/docs/assets/7.1.4-live.png +0 -0
  262. package/docs/assets/7.1.4-memory-review.png +0 -0
  263. package/docs/assets/7.1.4-mobile.png +0 -0
  264. package/docs/assets/7.1.4-models-design-preview.png +0 -0
  265. package/docs/assets/7.1.4-outcome-ranking.png +0 -0
  266. package/docs/assets/7.1.4-overview.png +0 -0
  267. package/docs/assets/7.1.4-project-kit.png +0 -0
  268. package/docs/assets/7.1.4-project-skill-preview.png +0 -0
  269. package/docs/assets/7.1.4-replay.png +0 -0
  270. package/docs/assets/7.1.4-setup-design-preview.png +0 -0
  271. package/docs/assets/7.1.4-usage-design-preview.png +0 -0
  272. package/docs/assets/context-flow-v7.2.png +0 -0
  273. package/docs/assets/context-v7.1.3.png +0 -0
  274. package/docs/assets/features-v7.1.3.png +0 -0
  275. package/docs/assets/graph-v7.1.3.png +0 -0
  276. package/docs/assets/integrations-v7.1.3.png +0 -0
  277. package/docs/assets/live-v7.1.3.png +0 -0
  278. package/docs/assets/live-v7.1.4.gif +0 -0
  279. package/docs/assets/memory-detail-v7.1.3.png +0 -0
  280. package/docs/assets/overview-v7.1.3.png +0 -0
  281. package/docs/assets/workspace-graph-v7.2.png +0 -0
  282. package/docs/assets/workspace-overview-v7.2.png +0 -0
  283. package/docs/evaluation/CONTEXT_EVALUATION_v7.1.4.json +1818 -0
  284. package/docs/evaluation/CONTEXT_EVALUATION_v7.1.4.md +36 -0
  285. package/docs/launch/COMPONENT_MAP_v7.1.4.md +307 -0
  286. package/docs/launch/PROJECT_KIT_PLAN_v7.1.4.md +110 -0
  287. package/docs/launch/PROJECT_LEARNING_PLAN_v7.1.4.md +63 -0
  288. package/docs/launch/RELEASE_NOTES_v7.1.3.md +40 -0
  289. package/docs/launch/RELEASE_NOTES_v7.1.4.md +30 -0
  290. package/docs/launch/RELEASE_NOTES_v7.2.0.md +24 -0
  291. package/docs/launch/RESEARCH_AND_PLAN_v7.1.4.md +255 -0
  292. package/package.json +43 -126
  293. package/skills/shadow-research/SKILL.md +2 -0
  294. package/skills/shadow-workflow/SKILL.md +6 -0
@@ -1 +1 @@
1
- {"version":3,"file":"v6-dashboard-html.d.ts","sourceRoot":"","sources":["../../src/dashboard/v6-dashboard-html.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,6+sTA2uItB,CAAC"}
1
+ {"version":3,"file":"v6-dashboard-html.d.ts","sourceRoot":"","sources":["../../src/dashboard/v6-dashboard-html.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,6trTAqtItB,CAAC"}
@@ -7,7 +7,7 @@ export const V6_DASHBOARD_HTML = `<!DOCTYPE html>
7
7
  <meta charset="UTF-8">
8
8
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
9
9
  <meta name="color-scheme" content="dark light">
10
- <title>Shadow Brain v7.1 — Hive Mind Control</title>
10
+ <title>Shadow Brain v7.2 — Hive Mind Control</title>
11
11
  <link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><rect width='100' height='100' rx='22' fill='%230a0e1a'/><path d='M50 50 L24 30 M50 50 L76 30 M50 50 L24 70 M50 50 L76 70' stroke='%23ffffff' stroke-opacity='0.28' stroke-width='3'/><circle cx='50' cy='50' r='12' fill='%2318ffff'/><circle cx='24' cy='30' r='7' fill='%2310e68c'/><circle cx='76' cy='30' r='7' fill='%23ffb53f'/><circle cx='24' cy='70' r='7' fill='%23a855f7'/><circle cx='76' cy='70' r='7' fill='%23ec4899'/></svg>">
12
12
  <link rel="preconnect" href="https://cdn.jsdelivr.net">
13
13
  <script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
@@ -1071,7 +1071,7 @@ export const V6_DASHBOARD_HTML = `<!DOCTYPE html>
1071
1071
  </div>
1072
1072
 
1073
1073
  <div class="brand">
1074
- <div class="name">Shadow Brain <span style="color:var(--text-3);font-size:10px;font-weight:600">v7.1 Hive Mind</span></div>
1074
+ <div class="name">Shadow Brain <span style="color:var(--text-3);font-size:10px;font-weight:600">v7.2 Hive Mind</span></div>
1075
1075
  <div class="state" id="brain-state">learning · reflecting · charging</div>
1076
1076
  </div>
1077
1077
 
@@ -1129,9 +1129,9 @@ export const V6_DASHBOARD_HTML = `<!DOCTYPE html>
1129
1129
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>
1130
1130
  Activity
1131
1131
  </button>
1132
- <button class="nav-item" data-tab="agents" data-title="Connected Tools" title="See which AI coding tools (Claude, Cursor, Codex…) are connected to your brain.">
1132
+ <button class="nav-item" data-tab="agents" data-title="Client setup" title="Inspect coding-client configuration and recorded tool identities.">
1133
1133
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>
1134
- Connected Tools<span class="badge-count" id="badge-agents">0</span>
1134
+ Client setup<span class="badge-count" id="badge-agents">0</span>
1135
1135
  </button>
1136
1136
  <button class="nav-item" data-tab="livebrain" data-title="Brain Health" title="A health check of your brain's memory quality, with tips to improve it.">
1137
1137
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>
@@ -1149,9 +1149,9 @@ export const V6_DASHBOARD_HTML = `<!DOCTYPE html>
1149
1149
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 19V5"/><path d="M4 6h9l1 2h6v8h-9l-1-2H4"/></svg>
1150
1150
  Project Memory<span class="badge-count" id="badge-ww2br">0</span>
1151
1151
  </button>
1152
- <button class="nav-item" data-tab="graph" data-title="Live Network" title="A live animation of your tools talking to the brain.">
1152
+ <button class="nav-item" data-tab="graph" data-title="Recorded network" title="Configured clients and newly observed recorded events.">
1153
1153
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><circle cx="12" cy="12" r="8"/></svg>
1154
- Live Network
1154
+ Recorded network
1155
1155
  </button>
1156
1156
  <button class="nav-item" data-tab="seeder" data-title="Add Knowledge" title="Research a topic and save it as verified, source-backed knowledge.">
1157
1157
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"/><path d="M5 9c0-3 2-5 7-7 5 2 7 4 7 7 0 5-4 8-7 8s-7-3-7-8z"/><path d="M8 12h8"/></svg>
@@ -1279,7 +1279,7 @@ export const V6_DASHBOARD_HTML = `<!DOCTYPE html>
1279
1279
 
1280
1280
  <div class="grid cols-4">
1281
1281
  <div class="card stat-card accent">
1282
- <div class="label">Tools Connected</div>
1282
+ <div class="label">Recorded tools</div>
1283
1283
  <div class="value accent" id="ov-agents">—</div>
1284
1284
  <div class="trend">AI tools linked to your brain</div>
1285
1285
  </div>
@@ -1941,7 +1941,7 @@ export const V6_DASHBOARD_HTML = `<!DOCTYPE html>
1941
1941
  </div>
1942
1942
  <div class="grid cols-2 mt">
1943
1943
  <div class="card stat-card"><div class="label">Monthly Projection</div><div class="value" id="tok-proj">$—</div><div class="trend">from last 7 days</div></div>
1944
- <div class="card stat-card"><div class="label">Savings Available</div><div class="value" style="color:var(--success)" id="tok-save">$—</div><div class="trend up">via smart routing</div></div>
1944
+ <div class="card stat-card"><div class="label">Estimated opportunity</div><div class="value" style="color:var(--success)" id="tok-save">$—</div><div class="trend up">manual ledger · pricing estimates</div></div>
1945
1945
  </div>
1946
1946
  <div class="warning-banner mt" id="tok-runtime-note"><strong>Accuracy</strong><span>Token records are historical. Current agent and model spend are shown separately.</span></div>
1947
1947
  <div class="grid cols-2 mt-lg">
@@ -2092,7 +2092,7 @@ export const V6_DASHBOARD_HTML = `<!DOCTYPE html>
2092
2092
  <!-- ════ FEATURE TOGGLES ═════════════════════════════════════════ -->
2093
2093
  <section class="section" id="tab-features">
2094
2094
  <div class="accent-bar"></div>
2095
- <div class="section-header"><div><h1 class="section-title">Feature Toggles</h1><div class="section-subtitle">Enable / disable any v6 module · persisted globally</div></div></div>
2095
+ <div class="section-header"><div><h1 class="section-title">Feature controls</h1><div class="section-subtitle">Manage context, briefings, and the activity feed in the workspace.</div></div></div>
2096
2096
  <div class="card"><div class="feature-grid" id="feature-grid"></div></div>
2097
2097
  </section>
2098
2098
 
@@ -2213,10 +2213,10 @@ const FEATURES = [
2213
2213
  ['memory','Memories','Browse and search saved knowledge'],
2214
2214
  ['chat','Ask the Brain','Ask questions in plain language'],
2215
2215
  ['activity','Activity','Live feed of what the brain is doing'],
2216
- ['agents','Connected Tools','Which AI tools are linked to the brain'],
2216
+ ['agents','Client setup','Client configuration and recorded tools'],
2217
2217
  ['livebrain','Brain Health','Memory quality with tips to improve'],
2218
2218
  ['ww2br','Project Memory','Memory and status for one project'],
2219
- ['graph','Live Network','Live animation of tools talking to the brain'],
2219
+ ['graph','Recorded network','Configured clients and newly observed recorded events'],
2220
2220
  ['seeder','Add Knowledge','Research a topic and save it as verified knowledge'],
2221
2221
  ['garden','Memory Garden','Watch your memories grow over time'],
2222
2222
  ['sabb','Sub-Agents','Share the right context with helper agents'],
@@ -2412,10 +2412,10 @@ async function refresh() {
2412
2412
  state.hive = hive;
2413
2413
  state.lastRefreshAt = Date.now();
2414
2414
 
2415
- animateNum('stat-agents', hive.totalAgentsConnected ?? 0);
2415
+ animateNum('stat-agents', hive.totalRecordedAgents ?? hive.totalAgentsConnected ?? 0);
2416
2416
  animateNum('stat-memories', hive.totalMemoriesStored ?? 0);
2417
2417
  animateNum('stat-dreams', hive.modules.dream?.totalDreams ?? 0);
2418
- animateNum('stat-tools', hive.totalAgentsConnected ?? 0);
2418
+ animateNum('stat-tools', hive.totalRecordedAgents ?? hive.totalAgentsConnected ?? 0);
2419
2419
  document.getElementById('badge-sabb').textContent = hive.modules.sabb?.totalSpawns ?? 0;
2420
2420
  document.getElementById('badge-causal').textContent = hive.modules.causal?.totalLinks ?? 0;
2421
2421
  document.getElementById('badge-collision').textContent = hive.modules.collision?.collisionsDetected ?? 0;
@@ -2428,7 +2428,7 @@ async function refresh() {
2428
2428
  async function refreshOverview() {
2429
2429
  const hive = state.hive || await api('/api/v6/hive-status');
2430
2430
  if (!hive) return;
2431
- animateNum('ov-agents', hive.totalAgentsConnected ?? 0);
2431
+ animateNum('ov-agents', hive.totalRecordedAgents ?? hive.totalAgentsConnected ?? 0);
2432
2432
  animateNum('ov-memories', hive.totalMemoriesStored ?? 0);
2433
2433
  animateNum('ov-subagents', hive.modules.sabb?.totalSpawns ?? 0);
2434
2434
  document.getElementById('ov-subagents-sub').textContent = \`grad: \${hive.modules.sabb?.graduated ?? 0} · quar: \${hive.modules.sabb?.quarantined ?? 0}\`;
@@ -2455,7 +2455,7 @@ async function refreshOverview() {
2455
2455
  ['Air-gap', hive.modules.airGap?.enabled ? 'ENABLED' : 'disabled', hive.modules.airGap?.enabled ? 'good' : ''],
2456
2456
  ['Version', hive.version, ''],
2457
2457
  ['Monthly cost', '$' + (hive.modules.tokenEconomy?.monthlyProjectionUsd?.toFixed?.(2) ?? '0.00'), 'warn'],
2458
- ['Cost saved/mo', '$' + (hive.modules.tokenEconomy?.savingsOpportunitiesUsd?.toFixed?.(2) ?? '0.00'), 'good'],
2458
+ ['Estimated savings opportunity', '$' + (hive.modules.tokenEconomy?.savingsOpportunitiesUsd?.toFixed?.(2) ?? '0.00'), 'good'],
2459
2459
  ];
2460
2460
  document.getElementById('ov-health').innerHTML = health.map(([k, v, cls]) => \`<div class="row"><span class="k">\${k}</span><span class="v \${cls}">\${v}</span></div>\`).join('');
2461
2461
 
@@ -2519,7 +2519,7 @@ function renderMemoryItems(items, emptyMessage) {
2519
2519
  if (!items || !items.length) return '<div class="empty-tight">' + htmlEscape(emptyMessage) + '</div>';
2520
2520
  return items.map(item => {
2521
2521
  const importancePct = item.importance !== undefined ? Math.round((item.importance || 0) * 100) + '%' : '';
2522
- // v7.1.0: real blended recall confidence (recency + importance + corroboration + usage + relevance).
2522
+ // v7.1.3: real blended recall confidence (recency + importance + corroboration + usage + relevance).
2523
2523
  const conf = item.confidence && typeof item.confidence.score === 'number' ? item.confidence : null;
2524
2524
  const confCls = conf ? (conf.level === 'high' ? 'green' : conf.level === 'medium' ? 'yellow' : 'red') : '';
2525
2525
  const confBadge = conf ? '<span class="pill ' + confCls + '" title="Heuristic recall score (not probability of truth) ' + Math.round(conf.score * 100) + '% (' + htmlEscape(conf.level) + ') | relevance ' + conf.signals.relevance + ', creation-age recency ' + conf.signals.recency + ', importance ' + conf.signals.importance + ', matching-content agent reports ' + conf.signals.corroboration + ', usage ' + conf.signals.usage + '">\u2737 ' + Math.round(conf.score * 100) + '%</span>' : '';
@@ -3124,29 +3124,7 @@ async function exportPackage() {
3124
3124
 
3125
3125
  // ──── Features ─────────────────────────────────────────────────────────
3126
3126
  async function refreshFeatures() {
3127
- const cfg = (await api('/api/v6/features-config')) ?? {};
3128
- document.getElementById('feature-grid').innerHTML = FEATURES.map(([id, name, desc]) => {
3129
- const on = cfg[id] !== false; // default enabled
3130
- return \`<div class="feature-toggle" id="ft-\${id}">
3131
- <div class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg></div>
3132
- <div class="meta"><div class="name">\${name}</div><div class="desc">\${desc}</div></div>
3133
- <label class="switch"><input type="checkbox" \${on ? 'checked' : ''} data-feature="\${id}"><span class="slider"></span></label>
3134
- </div>\`;
3135
- }).join('');
3136
- // Bind listeners cleanly so the toggle always fires
3137
- document.querySelectorAll('#feature-grid input[data-feature]').forEach(el => {
3138
- el.addEventListener('change', async e => {
3139
- const id = e.target.getAttribute('data-feature');
3140
- const on = e.target.checked;
3141
- const res = await api('/api/v6/features-config', { [id]: on });
3142
- toast(on ? 'Enabled' : 'Disabled', id, on ? 'success' : 'warn');
3143
- if (!res) { e.target.checked = !on; /* revert on error */ }
3144
- });
3145
- });
3146
- }
3147
- async function toggleFeature(id, on) {
3148
- const res = await api('/api/v6/features-config', { [id]: on });
3149
- if (res) toast(on ? 'Enabled' : 'Disabled', id, on ? 'success' : 'warn');
3127
+ document.getElementById('feature-grid').innerHTML = '<div><p>Runtime controls have moved to the workspace. Each switch describes the behavior it changes.</p><p style="margin-top:16px"><a class="btn primary" href="/#features">Open feature controls</a></p></div>';
3150
3128
  }
3151
3129
 
3152
3130
  // ──── Models & Intelligence ────────────────────────────────────────────
@@ -3320,7 +3298,7 @@ async function refreshConfig() {
3320
3298
  document.getElementById('config-state').innerHTML = \`
3321
3299
  <div class="row"><span class="k">Version</span><span class="v">\${hive.version}</span></div>
3322
3300
  <div class="row"><span class="k">Local-first</span><span class="v \${hive.localFirst ? 'good' : 'warn'}">\${hive.localFirst ? 'YES' : 'no'}</span></div>
3323
- <div class="row"><span class="k">Agents connected</span><span class="v">\${hive.totalAgentsConnected}</span></div>
3301
+ <div class="row"><span class="k">Recorded tools</span><span class="v">\${hive.totalAgentsConnected}</span></div>
3324
3302
  <div class="row"><span class="k">Memories stored</span><span class="v">\${hive.totalMemoriesStored}</span></div>
3325
3303
  <div class="row"><span class="k">Modules active</span><span class="v good">\${Object.keys(hive.modules || {}).length}</span></div>\`;
3326
3304
  }
@@ -3342,8 +3320,8 @@ async function refreshAgents() {
3342
3320
  <td style="text-align:right">\${a.hookInstalled ? \`<button class="btn sm danger" onclick="detachOne('\${a.name}')">Disconnect</button>\` : \`<button class="btn sm success" onclick="attachOne('\${a.name}')">Connect</button>\`}</td>
3343
3321
  </tr>\`).join('') || '<tr><td colspan="5"><div class="empty">No agents detected</div></td></tr>';
3344
3322
  }
3345
- async function attachOne(agent) { await api('/api/v6/agents-attach', { agent }); toast('Attached', agent); refreshAgents(); }
3346
- async function detachOne(agent) { await api('/api/v6/agents-detach', { agent }); toast('Detached', agent, 'warn'); refreshAgents(); }
3323
+ async function attachOne(agent) { const r = await api('/api/v6/agents-attach', { agent }); if (r?.ok) toast('Attached', agent); else toast('No change', r?.error || r?.report?.failed?.[0]?.reason || 'Attachment failed.', 'warn'); refreshAgents(); }
3324
+ async function detachOne(agent) { const r = await api('/api/v6/agents-detach', { agent }); if (r?.ok) toast('Detached', agent, 'warn'); else toast('No change', r?.error || r?.report?.failed?.[0]?.reason || 'No hook was removed.', 'warn'); refreshAgents(); }
3347
3325
  async function attachAll() { const r = await api('/api/v6/agents-attach-all', {}); if (r) { toast('Attach All', (r.attached?.length ?? 0) + ' agents wired'); refreshAgents(); } }
3348
3326
  async function detachAll() { if (!confirm('Detach Shadow Brain hooks from ALL agents?')) return; const r = await api('/api/v6/agents-detach-all', {}); if (r) { toast('Detach All', (r.attached?.length ?? 0) + ' agents', 'warn'); refreshAgents(); } }
3349
3327
 
@@ -3636,14 +3614,7 @@ function ingestActivity(raw, fresh) {
3636
3614
  if (!activityPaused) {
3637
3615
  appendLog(e.source, e.type, e.detail);
3638
3616
  if (fresh) {
3639
- try {
3640
- if (typeof graphTimer !== 'undefined' && graphTimer) {
3641
- const col = signalColors[e.type] || '#18ffff';
3642
- const srcExists = graphNodes.find(n => n.id === e.source);
3643
- graphSignals.push({ fromId: srcExists ? e.source : 'brain', toId: 'brain', type: e.type, color: col, progress: 0, spawnedAt: Date.now() });
3644
- if (graphSignals.length > 100) graphSignals = graphSignals.slice(-100);
3645
- }
3646
- } catch (err) {}
3617
+ // Graph animation consumes the deduplicated stored-event stream in pullTopology.
3647
3618
  lastIngestFresh = true;
3648
3619
  }
3649
3620
  }
@@ -3729,6 +3700,7 @@ async function refreshActivity() {
3729
3700
  }
3730
3701
 
3731
3702
  // ──── Live Graph ───────────────────────────────────────────────────────
3703
+ let graphObservedEvents = new Set(), graphObserved = false;
3732
3704
  let graphFrame = 0, graphNodes = [], graphEdges = [], graphSignals = [], graphTimer = null, graphPullTimer = null;
3733
3705
  const signalColors = { 'memory-write':'#10e68c','subagent-spawn':'#18ffff','dream':'#a855f7','revisit':'#a855f7','counterfactual':'#a855f7','consolidation':'#a855f7','contradiction':'#ff5864','pattern-discovery':'#10e68c','collision':'#ff5864','quarantine':'#ec4899','firewall-block':'#ffb53f' };
3734
3706
  async function startGraph() { await pullTopology(); if (graphTimer) cancelAnimationFrame(graphTimer); graphLoop(); if (graphPullTimer) clearInterval(graphPullTimer); graphPullTimer = setInterval(pullTopology, 3000); }
@@ -3740,10 +3712,10 @@ async function pullTopology() {
3740
3712
  const W = canvas.width, H = canvas.height, cx = W/2, cy = H/2;
3741
3713
  const prev = new Map(graphNodes.map(n => [n.id, { x: n.x, y: n.y }]));
3742
3714
  graphNodes = [{ id:'brain', label:'HIVE MIND', x: cx, y: cy, r: 50, type:'brain', color:'#a855f7' }];
3743
- (topo.agents || []).forEach((a, i, arr) => {
3715
+ (topo.agents || []).filter(a => a.configurationDetected).forEach((a, i, arr) => {
3744
3716
  const ang = (i / arr.length) * Math.PI * 2 - Math.PI / 2, r = 240;
3745
3717
  const p = prev.get(a.id);
3746
- graphNodes.push({ id: a.id, label: a.displayName, x: p?.x ?? cx + Math.cos(ang) * r, y: p?.y ?? cy + Math.sin(ang) * r, targetX: cx + Math.cos(ang) * r, targetY: cy + Math.sin(ang) * r, r: a.connected ? 24 : 16, type:'agent', connected: a.connected, color: a.connected ? '#18ffff' : '#556080' });
3718
+ graphNodes.push({ id: a.id, label: a.displayName, x: p?.x ?? cx + Math.cos(ang) * r, y: p?.y ?? cy + Math.sin(ang) * r, targetX: cx + Math.cos(ang) * r, targetY: cy + Math.sin(ang) * r, r: 20, type:'agent', connected: false, color: '#8695aa' });
3747
3719
  });
3748
3720
  (topo.subAgents || []).forEach((s, i, arr) => {
3749
3721
  const parent = graphNodes.find(n => n.id === s.parent), ang = (i / Math.max(arr.length,1)) * Math.PI * 2, r = 130;
@@ -3752,19 +3724,25 @@ async function pullTopology() {
3752
3724
  });
3753
3725
  graphEdges = [];
3754
3726
  for (const n of graphNodes) {
3755
- if (n.type === 'agent') graphEdges.push({ from:'brain', to: n.id, active: n.connected });
3756
- if (n.type === 'subagent') graphEdges.push({ from: n.parent ?? 'brain', to: n.id, active: true });
3727
+ if (n.type === 'agent') graphEdges.push({ from:'brain', to: n.id, active: false });
3728
+ if (n.type === 'subagent') graphEdges.push({ from: n.parent ?? 'brain', to: n.id, active: false });
3757
3729
  }
3758
3730
  const now = Date.now();
3759
3731
  for (const e of (topo.events || [])) {
3732
+ const eventKey = e.id || JSON.stringify([e.type,e.source,e.target,e.timestamp]);
3733
+ if (graphObservedEvents.has(eventKey)) continue;
3734
+ graphObservedEvents.add(eventKey);
3735
+ if (!graphObserved) continue;
3760
3736
  const src = e.source ?? 'brain';
3761
- const srcN = graphNodes.find(n => n.id === src) ?? graphNodes[0];
3737
+ const srcN = graphNodes.find(n => n.id === src);
3762
3738
  const dstN = e.type === 'subagent-spawn' ? graphNodes.find(n => n.id === e.target) : graphNodes.find(n => n.id === 'brain');
3763
3739
  if (!srcN || !dstN) continue;
3764
3740
  graphSignals.push({ fromId: srcN.id, toId: dstN.id, type: e.type, color: signalColors[e.type] || '#18ffff', progress: 0, spawnedAt: now });
3765
3741
  }
3742
+ graphObserved = true;
3743
+ if (graphObservedEvents.size > 500) graphObservedEvents = new Set([...graphObservedEvents].slice(-500));
3766
3744
  if (graphSignals.length > 100) graphSignals = graphSignals.slice(-100);
3767
- document.getElementById('graph-meta').textContent = \`\${(topo.agents || []).length} agents · \${(topo.subAgents || []).length} sub-agents · \${graphSignals.length} signals\`;
3745
+ document.getElementById('graph-meta').textContent = \`\${(topo.agents || []).filter(a => a.configurationDetected).length} configured/detected clients · \${(topo.subAgents || []).length} recorded sub-agents · \${graphSignals.length} new event signals\`;
3768
3746
  }
3769
3747
  function graphLoop() {
3770
3748
  const c = document.getElementById('graph-canvas');
@@ -1 +1 @@
1
- {"version":3,"file":"v6-dashboard-html.js","sourceRoot":"","sources":["../../src/dashboard/v6-dashboard-html.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,sFAAsF;AACtF,wFAAwF;AAExF,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA2uIzB,CAAC"}
1
+ {"version":3,"file":"v6-dashboard-html.js","sourceRoot":"","sources":["../../src/dashboard/v6-dashboard-html.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,sFAAsF;AACtF,wFAAwF;AAExF,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqtIzB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import { type GlobalBrain } from '../brain/global-brain.js';
3
+ import { type FeatureSettingsStore } from '../brain/feature-settings.js';
4
+ import { type MemoryAnnotationsStore } from '../brain/memory-annotations.js';
5
+ import { type ActivityJournal } from '../brain/activity-journal.js';
6
+ import { WorkspaceRuntime } from './workspace-status.js';
7
+ import type { ProjectHubService } from '../brain/project-hub.js';
8
+ export interface WorkspaceDependencies {
9
+ brain?: GlobalBrain;
10
+ settings?: FeatureSettingsStore;
11
+ annotations?: MemoryAnnotationsStore;
12
+ projectDir?: string;
13
+ journal?: ActivityJournal;
14
+ demo?: boolean;
15
+ localProject?: boolean;
16
+ runtime?: WorkspaceRuntime;
17
+ hub?: ProjectHubService;
18
+ prepareStorage?: () => Promise<string | null>;
19
+ }
20
+ /** The workspace API reads only the memory store and dedicated feature settings. */
21
+ export declare function handleWorkspaceRequest(req: IncomingMessage, res: ServerResponse, dependencies?: WorkspaceDependencies): Promise<void>;
22
+ //# sourceMappingURL=workspace-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-api.d.ts","sourceRoot":"","sources":["../../src/dashboard/workspace-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK5E,OAAO,EAA2C,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAClH,OAAO,EAAqC,KAAK,sBAAsB,EAAiC,MAAM,gCAAgC,CAAC;AAG/I,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAMxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAKjE,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC/C;AAwED,oFAAoF;AACpF,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,YAAY,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA4R/I"}