fastrmemory 0.3.0 → 0.4.0

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 (67) hide show
  1. package/.claude-plugin/marketplace.json +14 -14
  2. package/.claude-plugin/plugin.json +18 -18
  3. package/.cursor/mcp.json +3 -1
  4. package/.cursor/skills/fastr-compress/SKILL.md +33 -33
  5. package/.cursor/skills/fastr-curate/SKILL.md +62 -62
  6. package/.cursor/skills/fastr-dag/SKILL.md +47 -47
  7. package/.cursor/skills/fastr-doctor/SKILL.md +39 -39
  8. package/.cursor/skills/fastr-memory/SKILL.md +51 -51
  9. package/.cursor/skills/fastr-plan-estimate/SKILL.md +45 -45
  10. package/.cursor/skills/fastr-session-commit/SKILL.md +49 -49
  11. package/.cursor/skills/fastr-setup/SKILL.md +45 -45
  12. package/.cursor/skills/fastr-trap-log/SKILL.md +39 -39
  13. package/.cursor/skills/fastr-vision/SKILL.md +35 -35
  14. package/.cursor/skills/skills.json +65 -65
  15. package/README.md +642 -729
  16. package/bin/fastr-guard.mjs +61 -0
  17. package/dist/bin/fastr.js +68 -10
  18. package/dist/bin/fastr.js.map +1 -1
  19. package/dist/src/bench/benchmark.js +13 -13
  20. package/dist/src/bench/harness.js +17 -17
  21. package/dist/src/bench/public-harness.js +5 -5
  22. package/dist/src/branch/manager.js +31 -31
  23. package/dist/src/ci/guardian.js +9 -9
  24. package/dist/src/db/doctor.js +25 -25
  25. package/dist/src/db/hygiene.js +23 -23
  26. package/dist/src/db/repository.js +283 -283
  27. package/dist/src/db/schema.js +268 -268
  28. package/dist/src/db/spool.js +4 -4
  29. package/dist/src/export/obsidian.js +15 -15
  30. package/dist/src/import/local.js +4 -4
  31. package/dist/src/installer/mcp-init.d.ts +65 -0
  32. package/dist/src/installer/mcp-init.d.ts.map +1 -0
  33. package/dist/src/installer/mcp-init.js +293 -0
  34. package/dist/src/installer/mcp-init.js.map +1 -0
  35. package/dist/src/installer/setup.d.ts +2 -0
  36. package/dist/src/installer/setup.d.ts.map +1 -1
  37. package/dist/src/installer/setup.js +24 -18
  38. package/dist/src/installer/setup.js.map +1 -1
  39. package/dist/src/mcp/server.js +25 -25
  40. package/dist/src/mirror/markdown-pages.js +22 -22
  41. package/dist/src/search/backfill.js +6 -6
  42. package/dist/src/search/hybrid-rrf.js +60 -60
  43. package/dist/src/ui/server.js +1259 -1259
  44. package/dist/src/vision/assets.js +6 -6
  45. package/dist-ui/assets/ActionsPage-B3quzFNF.js +11 -11
  46. package/dist-ui/assets/GraphPage-DetiATmC.js +1 -1
  47. package/dist-ui/assets/ObservatoryPage-QIGMwENf.js +16 -16
  48. package/dist-ui/assets/TreemapPage-C7uLZd37.js +2 -2
  49. package/dist-ui/assets/index-BJnPINTu.css +1 -1
  50. package/dist-ui/assets/index-DWAH--Fu.js +329 -329
  51. package/dist-ui/assets/maximize-2-BebkGbZA.js +6 -6
  52. package/dist-ui/build-manifest.json +95 -95
  53. package/dist-ui/index.html +26 -26
  54. package/llms-install.md +77 -69
  55. package/package.json +108 -107
  56. package/server.json +28 -28
  57. package/skills/fastr-compress/SKILL.md +33 -33
  58. package/skills/fastr-curate/SKILL.md +62 -62
  59. package/skills/fastr-dag/SKILL.md +47 -47
  60. package/skills/fastr-doctor/SKILL.md +39 -39
  61. package/skills/fastr-memory/SKILL.md +51 -51
  62. package/skills/fastr-plan-estimate/SKILL.md +45 -45
  63. package/skills/fastr-session-commit/SKILL.md +49 -49
  64. package/skills/fastr-setup/SKILL.md +45 -45
  65. package/skills/fastr-trap-log/SKILL.md +39 -39
  66. package/skills/fastr-vision/SKILL.md +35 -35
  67. package/skills/skills.json +65 -65
@@ -1,6 +1,6 @@
1
- import{c as e}from"./index-DWAH--Fu.js";/**
2
- * @license lucide-react v0.475.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const i=[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]],o=e("Maximize2",i);export{o as M};
1
+ import{c as e}from"./index-DWAH--Fu.js";/**
2
+ * @license lucide-react v0.475.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const i=[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]],o=e("Maximize2",i);export{o as M};
@@ -1,95 +1,95 @@
1
- {
2
- "schemaVersion": 1,
3
- "generator": "scripts/build-dist-ui-manifest.mjs",
4
- "uiRoot": "ui",
5
- "outputRoot": "dist-ui",
6
- "sourceHash": "6c553dde3079236c68384a31897932a0795a6870e2516d263ac52a440ab2b023",
7
- "sources": {
8
- "ui/components.json": "40ae7e0306e52e38bf99373f31512e2a5ad29615c95f537677db1d339174de63",
9
- "ui/index.html": "e220c31aa5831bf41b969ab100bb09798630d8d65f24765a9090dcf1447679b2",
10
- "ui/package-lock.json": "0cfd3b68d68ff637371a387eff2bf7da281fe9035230a9630ee5f765caaf0ecd",
11
- "ui/package.json": "469ebd1449e456d69e74db587f95e4f2610b6f4b9d4f6aeeb7adb9bcc581974d",
12
- "ui/src/App.tsx": "8c94731e3fc808ca6aca2bef4abee47a97e282dd93d23b9b9f557b2ad3eec527",
13
- "ui/src/components/ActionDagCanvas.tsx": "b3ecf4cd0b8ef6b9bdca6f560b5b0189305c81ebee993c06a5d873545f179785",
14
- "ui/src/components/BrainObservatory3D.tsx": "30da357f2dffac4293e6809a25353a68432165d34b3879e45f4b9d59eaab4c29",
15
- "ui/src/components/common.tsx": "20e5f1ef92fcea0a0de53efa2449804b0d4889949ec4f78d1f752bc3ac572fdf",
16
- "ui/src/components/ConfirmDialog.tsx": "5e964edd61b080f49fc8b6dd14a72073d23a77c452f8d4d0f1bb63a0e2562398",
17
- "ui/src/components/ConflictCard.tsx": "cf64e2dc6e4fe08e396132c5cc0b32c929cfa435e0bac55027db85c36f3df9fc",
18
- "ui/src/components/CopyButton.tsx": "0b6a9650ba23cad4690e1d8817389a2fb2f62c7cbb5f50ff10dac892797ab017",
19
- "ui/src/components/CreateMemoryDialog.tsx": "2758ed78d74040d123438133c9f0e9e63c44da63e6282d03568f9a1a43b42d86",
20
- "ui/src/components/ErrorBoundary.tsx": "d8b11f61d3b1176658a13aa69bdc29765259a05c2c6abfd3d4ab903c8dde6e0c",
21
- "ui/src/components/layout/AppShell.tsx": "e720b57020f0a652bb2c5dc195c70ae551ee81176ff9b1d8cccd7641f8e30740",
22
- "ui/src/components/layout/CommandPalette.tsx": "eb0873548807f77a5438c0fc8a2177ff221630c500023fbce0975a887f514605",
23
- "ui/src/components/layout/nav.ts": "3c734d6ee56851a0179a7dd70ce1b4016ea837bf3125dffa0e7e58793dca71c6",
24
- "ui/src/components/MarkdownView.tsx": "660d477511b80333860f888654c0cea0539e43716d603a4d0a879393eb215fde",
25
- "ui/src/components/MemoryDetailSheet.tsx": "a9448d2763df77b8f7724a5463eafa4cdb49839692ce8e6361847f96c6e90021",
26
- "ui/src/components/ReplayWorkspace.tsx": "dbd5c8ff00cbabc15cfc660d942a1d5acc62a0cbf7b97e109cfdf10278e5b42e",
27
- "ui/src/components/TreemapCanvas.tsx": "947c2ddc9f383f8f1c2e4d95c014fad44f0f2b25b860c60dec6626ba5eb85b26",
28
- "ui/src/components/ui/alert-dialog.tsx": "5f3318ea6440a1759e77f4a1319a066d1a990bc14b99caad9a65712e46b6abea",
29
- "ui/src/components/ui/badge.tsx": "732a21b7d90edcddd380488b6fe47ad4a1a8ed28551db316cb863559690fe2de",
30
- "ui/src/components/ui/button.tsx": "33ae398e7b2731c556dec8688a19e9e068a109c8b758876d402300044fe27789",
31
- "ui/src/components/ui/card.tsx": "16f38ee8f48aaa5e48df6b56f146b2859aaad50ae4eeef6d52dcbfab5a0aeb36",
32
- "ui/src/components/ui/checkbox.tsx": "4018d921ecbabcf69ddcc627ce30f6ab712f08a5fd0d6cbc49e973a8931abcc6",
33
- "ui/src/components/ui/command.tsx": "a42636c435d29914674fc746eff256995b18e536127ca67dc8798f27ac504ce8",
34
- "ui/src/components/ui/dialog.tsx": "123c7b0af546b9f65167fa98641b76475df0b486a7c8dbcd00bba3f40fbed6eb",
35
- "ui/src/components/ui/dropdown-menu.tsx": "1eb4210efa0cd7dae17bae03c283abc603d12d7bbfb3a5f2b55c7645ac38b95b",
36
- "ui/src/components/ui/input.tsx": "a6df7717795e0c2f245abe19ad3bcd3b588b67c6db1d8697b81c01a82e53705d",
37
- "ui/src/components/ui/label.tsx": "aa3a91cbb30ddd4a4ade248455ecf7984e1c93b4836a14a0ba6e54c2a747cf47",
38
- "ui/src/components/ui/scroll-area.tsx": "daaf9d4ed206b40f0c4c7020f77fd3b5e79eaf0ee03abfafd47e40798936a95e",
39
- "ui/src/components/ui/select.tsx": "013b457322b2681449a21eb14ffc551fb99feae9af63c02cabefaaa364a51383",
40
- "ui/src/components/ui/separator.tsx": "f9a0757e04066ae088b74393c6056af615fae198d41cb5675c082122b2bd5caa",
41
- "ui/src/components/ui/sheet.tsx": "95e2c04d2377b9f137a70f91f899de5804dcdba927d39f1a8b008800e4f0e243",
42
- "ui/src/components/ui/skeleton.tsx": "e86887b048bb6ebca504bf82c9c055f3b46bf830e6c1f51107aa105dccb7f479",
43
- "ui/src/components/ui/sonner.tsx": "85e13bb109dd6af6d6ae7bd15daa032459c436cecf5f148a5783de43762ca13a",
44
- "ui/src/components/ui/table.tsx": "e6e2d6466af43fd31fcb4b2a309c5dd427e82d2feca9a1049bb24ae567b57b70",
45
- "ui/src/components/ui/tabs.tsx": "36acaa2fda2c961999d6cc1264638af01ce609ccb8deb8cb8c5d50396ef2bb34",
46
- "ui/src/components/ui/textarea.tsx": "c149d5badd45ded82c2f1aff2fc454f934b0a3576013ad40b96c94694e8c7c9a",
47
- "ui/src/components/ui/tooltip.tsx": "593edfbfdc51d21f92eb5720db1e62a870727af1e21c2e2511cd088f3ee40403",
48
- "ui/src/components/WordDiff.tsx": "9cb6ef75ade5e35beb667cd0fa16f2193dfd0fd155e6b112b9ee4c896f144fcd",
49
- "ui/src/hooks/queries.ts": "1de00ad8c3ed464b9c2b95acd36268f867f7b3ae2ad8c34d8ffb3f5c50bd2847",
50
- "ui/src/hooks/useDebounced.ts": "e8688f3985b61016a877e6df01254ea20ebb079bec388efbb9959d58ba1beb8a",
51
- "ui/src/hooks/useLiveSync.tsx": "8c46d83945c15d4c9423224cf95be8e54f2f30520ed4851a532bfae12711d0bd",
52
- "ui/src/hooks/useMediaQuery.ts": "ff26dc14cc521ad86fdf120392fc1c96fa95e9a902bfecbe618c015cd4c1c808",
53
- "ui/src/hooks/useMemoryActions.ts": "e04f27956592c7f3cb8e3adf8aab41e28d7b3ea21dd4745eb9221f6807c0cbb7",
54
- "ui/src/index.css": "38d745d60c2b718b6f021546515f8872dfd7987b9a76c56640aece7f03b8f433",
55
- "ui/src/lib/api.ts": "f6806505d80b82d59514b55d7f29bde67760fd931fc04d2024cec3137e28498b",
56
- "ui/src/lib/diff.ts": "1e56fd1c13ce791484f8c0c1e69fe7aa897878343363f4aa14de7987377d216e",
57
- "ui/src/lib/format.ts": "2b75729c64c1f19af51aa47a5ecf003740efe240a91eb6e4e18db5ab769527c3",
58
- "ui/src/lib/glossary.ts": "f18ea064db60e3528d41e6846b7fc604effe3d06b26e7a02dfabf142cda38767",
59
- "ui/src/lib/graph-layout.ts": "36ced9e29a4a16cfd6804d7bdd93dabb019593d5e4dee53197309e98736dc93a",
60
- "ui/src/lib/pending-ops.ts": "dd2d25fe900c2b190a0d9c6bc91d33090ee96055c987b128fe6e2a61934585ef",
61
- "ui/src/lib/query-client.ts": "beb41af5f0041444f98905d7fb00214f2e27a86f16c9a9c29d0a8d0194bd35e6",
62
- "ui/src/lib/router.ts": "1d8efac91dbe85b44a29a4a6fd90ab2b9fd44ad66f98dc99aa7147f84716bf1f",
63
- "ui/src/lib/theme.tsx": "33a3d96f7f2427bd0ed677a5397ab84a9f05fd412b5c1990081add3b16c1dfc7",
64
- "ui/src/lib/utils.ts": "c89ec69856bdd27ad73f1c5fefa4244d1df3361e76ba63f4588b970c8217f2c7",
65
- "ui/src/main.tsx": "79faf095f462c11b5dc445dac9043c06809247d25c47f6693fccd656d1a1d35a",
66
- "ui/src/routes/ActionsPage.tsx": "6cefad5a14eec98fe6a151efa8f3e0c2d177722ab669be2acc7d687b36a1fa54",
67
- "ui/src/routes/ConflictsPage.tsx": "906c01b8e1ca0bca0ec8433e7c7f0cb4e0ac1b2a4c50d94484ddda0be94b9b49",
68
- "ui/src/routes/GraphPage.tsx": "6bbb1ef0a544cb29037fc601a2efb458858393ba4e73574e899f73aae3745850",
69
- "ui/src/routes/HealthPage.tsx": "b38ae7712a994eaff90f758f239b5bb47338533e826fbfafa4a3a28a3ab3ce9a",
70
- "ui/src/routes/HomePage.tsx": "c0effef0b67e93c5b41d3af87052f3d06702d9cd11e5b4d86ace17bc54a654a1",
71
- "ui/src/routes/MemoriesPage.tsx": "8e63b382565a65b5c436a8f7ce4c574afde37a8d1b0174ebb0add93eb5ca638b",
72
- "ui/src/routes/ObservatoryPage.tsx": "f9a155f55329e639dbba86f834d943062a16afd6323300dae9a3b71e680be817",
73
- "ui/src/routes/ReplayPage.tsx": "985e6aaaf133357b612167660805c7588e01b2705bc24207b6aa14bc96ab56d1",
74
- "ui/src/routes/SearchLabPage.tsx": "72498788cc28a06e0a74470118b9b1240541211735814a361df001d70af51c04",
75
- "ui/src/routes/SettingsPage.tsx": "c3a7ecc4cd95b292fe0bcbd633f1f82642efa67fd00bf674de7bf7ae70785489",
76
- "ui/src/routes/TrapsPage.tsx": "4d7f23a025cb17c2d7ea8da5189e59451132961b0a6e5088a644ede3c70fe15e",
77
- "ui/src/routes/TreemapPage.tsx": "bc22b7cece9180805d734d66f2ca9d0e72d849ae1a54972702cfd6f8d870e1e1",
78
- "ui/src/utils/squarify.ts": "a52dd340fe73164807e04ce3ceac586f1d25ecd3c5a8cd4263f8349893cb78a3",
79
- "ui/tsconfig.json": "219388c41d5a2b05e0face518be07c2d351526e5234b5ffab76d9c6b8841f79d",
80
- "ui/vite.config.ts": "be3b5aa477fd1d2e770c6e99c4d53178b0822b4171adde32b285696047b02b19"
81
- },
82
- "files": {
83
- "assets/ActionsPage-B3quzFNF.js": "d5e4a59adcfc232a257e38fdeae8de2ab5d6d69f7495326108c43bdd166b8671",
84
- "assets/GraphPage-DetiATmC.js": "2da84c55e557d855ebe9945e7bebc2b508031bea70906402469be50c650f1a6e",
85
- "assets/index-BJnPINTu.css": "718a40e10df13b00f35e37e75a3fcc215b060fa8094188d2a24750e7f67f0056",
86
- "assets/index-DWAH--Fu.js": "bc3d865a13bcd6e9a8cce975cb7f7cad6b6818c2cf4b239517a7f10041ce33c1",
87
- "assets/maximize-2-BebkGbZA.js": "644a5aad7dbed131bdefa138e517c3abbbc8f31d5da0461e321c8c366f2c6ec4",
88
- "assets/ObservatoryPage-QIGMwENf.js": "a38fb2a1c13cc9709c30bfbfc1b8282db2e0e914e02099e185f03dbf771165cd",
89
- "assets/query-fe9kutlk.js": "44a5c6682b4595c47fe6a6b91dd1d4a4ab3e8503eed6a18abbfacbe356ae3a00",
90
- "assets/three-CjKLTR5c.js": "d83f62405579c59aac4c18d513e53ac0a9eef8c78f45b2e5999eac9f4bafaf10",
91
- "assets/TreemapPage-C7uLZd37.js": "e25c9f2b4faa823e4c178536294165fe3470dff8e18715221cc521e7dde96094",
92
- "assets/vendor-wVc5lIPn.js": "27b169519376edf90743a8d45ccf327a9d4d12d20118f91da67a23ed6bcbde3a",
93
- "index.html": "96e889d3ec816f04b0a885a0a32c76699c5ced6bf03cbc409cc7e1d636129247"
94
- }
95
- }
1
+ {
2
+ "schemaVersion": 1,
3
+ "generator": "scripts/build-dist-ui-manifest.mjs",
4
+ "uiRoot": "ui",
5
+ "outputRoot": "dist-ui",
6
+ "sourceHash": "6c553dde3079236c68384a31897932a0795a6870e2516d263ac52a440ab2b023",
7
+ "sources": {
8
+ "ui/components.json": "40ae7e0306e52e38bf99373f31512e2a5ad29615c95f537677db1d339174de63",
9
+ "ui/index.html": "e220c31aa5831bf41b969ab100bb09798630d8d65f24765a9090dcf1447679b2",
10
+ "ui/package-lock.json": "0cfd3b68d68ff637371a387eff2bf7da281fe9035230a9630ee5f765caaf0ecd",
11
+ "ui/package.json": "469ebd1449e456d69e74db587f95e4f2610b6f4b9d4f6aeeb7adb9bcc581974d",
12
+ "ui/src/App.tsx": "8c94731e3fc808ca6aca2bef4abee47a97e282dd93d23b9b9f557b2ad3eec527",
13
+ "ui/src/components/ActionDagCanvas.tsx": "b3ecf4cd0b8ef6b9bdca6f560b5b0189305c81ebee993c06a5d873545f179785",
14
+ "ui/src/components/BrainObservatory3D.tsx": "30da357f2dffac4293e6809a25353a68432165d34b3879e45f4b9d59eaab4c29",
15
+ "ui/src/components/common.tsx": "20e5f1ef92fcea0a0de53efa2449804b0d4889949ec4f78d1f752bc3ac572fdf",
16
+ "ui/src/components/ConfirmDialog.tsx": "5e964edd61b080f49fc8b6dd14a72073d23a77c452f8d4d0f1bb63a0e2562398",
17
+ "ui/src/components/ConflictCard.tsx": "cf64e2dc6e4fe08e396132c5cc0b32c929cfa435e0bac55027db85c36f3df9fc",
18
+ "ui/src/components/CopyButton.tsx": "0b6a9650ba23cad4690e1d8817389a2fb2f62c7cbb5f50ff10dac892797ab017",
19
+ "ui/src/components/CreateMemoryDialog.tsx": "2758ed78d74040d123438133c9f0e9e63c44da63e6282d03568f9a1a43b42d86",
20
+ "ui/src/components/ErrorBoundary.tsx": "d8b11f61d3b1176658a13aa69bdc29765259a05c2c6abfd3d4ab903c8dde6e0c",
21
+ "ui/src/components/layout/AppShell.tsx": "e720b57020f0a652bb2c5dc195c70ae551ee81176ff9b1d8cccd7641f8e30740",
22
+ "ui/src/components/layout/CommandPalette.tsx": "eb0873548807f77a5438c0fc8a2177ff221630c500023fbce0975a887f514605",
23
+ "ui/src/components/layout/nav.ts": "3c734d6ee56851a0179a7dd70ce1b4016ea837bf3125dffa0e7e58793dca71c6",
24
+ "ui/src/components/MarkdownView.tsx": "660d477511b80333860f888654c0cea0539e43716d603a4d0a879393eb215fde",
25
+ "ui/src/components/MemoryDetailSheet.tsx": "a9448d2763df77b8f7724a5463eafa4cdb49839692ce8e6361847f96c6e90021",
26
+ "ui/src/components/ReplayWorkspace.tsx": "dbd5c8ff00cbabc15cfc660d942a1d5acc62a0cbf7b97e109cfdf10278e5b42e",
27
+ "ui/src/components/TreemapCanvas.tsx": "947c2ddc9f383f8f1c2e4d95c014fad44f0f2b25b860c60dec6626ba5eb85b26",
28
+ "ui/src/components/ui/alert-dialog.tsx": "5f3318ea6440a1759e77f4a1319a066d1a990bc14b99caad9a65712e46b6abea",
29
+ "ui/src/components/ui/badge.tsx": "732a21b7d90edcddd380488b6fe47ad4a1a8ed28551db316cb863559690fe2de",
30
+ "ui/src/components/ui/button.tsx": "33ae398e7b2731c556dec8688a19e9e068a109c8b758876d402300044fe27789",
31
+ "ui/src/components/ui/card.tsx": "16f38ee8f48aaa5e48df6b56f146b2859aaad50ae4eeef6d52dcbfab5a0aeb36",
32
+ "ui/src/components/ui/checkbox.tsx": "4018d921ecbabcf69ddcc627ce30f6ab712f08a5fd0d6cbc49e973a8931abcc6",
33
+ "ui/src/components/ui/command.tsx": "a42636c435d29914674fc746eff256995b18e536127ca67dc8798f27ac504ce8",
34
+ "ui/src/components/ui/dialog.tsx": "123c7b0af546b9f65167fa98641b76475df0b486a7c8dbcd00bba3f40fbed6eb",
35
+ "ui/src/components/ui/dropdown-menu.tsx": "1eb4210efa0cd7dae17bae03c283abc603d12d7bbfb3a5f2b55c7645ac38b95b",
36
+ "ui/src/components/ui/input.tsx": "a6df7717795e0c2f245abe19ad3bcd3b588b67c6db1d8697b81c01a82e53705d",
37
+ "ui/src/components/ui/label.tsx": "aa3a91cbb30ddd4a4ade248455ecf7984e1c93b4836a14a0ba6e54c2a747cf47",
38
+ "ui/src/components/ui/scroll-area.tsx": "daaf9d4ed206b40f0c4c7020f77fd3b5e79eaf0ee03abfafd47e40798936a95e",
39
+ "ui/src/components/ui/select.tsx": "013b457322b2681449a21eb14ffc551fb99feae9af63c02cabefaaa364a51383",
40
+ "ui/src/components/ui/separator.tsx": "f9a0757e04066ae088b74393c6056af615fae198d41cb5675c082122b2bd5caa",
41
+ "ui/src/components/ui/sheet.tsx": "95e2c04d2377b9f137a70f91f899de5804dcdba927d39f1a8b008800e4f0e243",
42
+ "ui/src/components/ui/skeleton.tsx": "e86887b048bb6ebca504bf82c9c055f3b46bf830e6c1f51107aa105dccb7f479",
43
+ "ui/src/components/ui/sonner.tsx": "85e13bb109dd6af6d6ae7bd15daa032459c436cecf5f148a5783de43762ca13a",
44
+ "ui/src/components/ui/table.tsx": "e6e2d6466af43fd31fcb4b2a309c5dd427e82d2feca9a1049bb24ae567b57b70",
45
+ "ui/src/components/ui/tabs.tsx": "36acaa2fda2c961999d6cc1264638af01ce609ccb8deb8cb8c5d50396ef2bb34",
46
+ "ui/src/components/ui/textarea.tsx": "c149d5badd45ded82c2f1aff2fc454f934b0a3576013ad40b96c94694e8c7c9a",
47
+ "ui/src/components/ui/tooltip.tsx": "593edfbfdc51d21f92eb5720db1e62a870727af1e21c2e2511cd088f3ee40403",
48
+ "ui/src/components/WordDiff.tsx": "9cb6ef75ade5e35beb667cd0fa16f2193dfd0fd155e6b112b9ee4c896f144fcd",
49
+ "ui/src/hooks/queries.ts": "1de00ad8c3ed464b9c2b95acd36268f867f7b3ae2ad8c34d8ffb3f5c50bd2847",
50
+ "ui/src/hooks/useDebounced.ts": "e8688f3985b61016a877e6df01254ea20ebb079bec388efbb9959d58ba1beb8a",
51
+ "ui/src/hooks/useLiveSync.tsx": "8c46d83945c15d4c9423224cf95be8e54f2f30520ed4851a532bfae12711d0bd",
52
+ "ui/src/hooks/useMediaQuery.ts": "ff26dc14cc521ad86fdf120392fc1c96fa95e9a902bfecbe618c015cd4c1c808",
53
+ "ui/src/hooks/useMemoryActions.ts": "e04f27956592c7f3cb8e3adf8aab41e28d7b3ea21dd4745eb9221f6807c0cbb7",
54
+ "ui/src/index.css": "38d745d60c2b718b6f021546515f8872dfd7987b9a76c56640aece7f03b8f433",
55
+ "ui/src/lib/api.ts": "f6806505d80b82d59514b55d7f29bde67760fd931fc04d2024cec3137e28498b",
56
+ "ui/src/lib/diff.ts": "1e56fd1c13ce791484f8c0c1e69fe7aa897878343363f4aa14de7987377d216e",
57
+ "ui/src/lib/format.ts": "2b75729c64c1f19af51aa47a5ecf003740efe240a91eb6e4e18db5ab769527c3",
58
+ "ui/src/lib/glossary.ts": "f18ea064db60e3528d41e6846b7fc604effe3d06b26e7a02dfabf142cda38767",
59
+ "ui/src/lib/graph-layout.ts": "36ced9e29a4a16cfd6804d7bdd93dabb019593d5e4dee53197309e98736dc93a",
60
+ "ui/src/lib/pending-ops.ts": "dd2d25fe900c2b190a0d9c6bc91d33090ee96055c987b128fe6e2a61934585ef",
61
+ "ui/src/lib/query-client.ts": "beb41af5f0041444f98905d7fb00214f2e27a86f16c9a9c29d0a8d0194bd35e6",
62
+ "ui/src/lib/router.ts": "1d8efac91dbe85b44a29a4a6fd90ab2b9fd44ad66f98dc99aa7147f84716bf1f",
63
+ "ui/src/lib/theme.tsx": "33a3d96f7f2427bd0ed677a5397ab84a9f05fd412b5c1990081add3b16c1dfc7",
64
+ "ui/src/lib/utils.ts": "c89ec69856bdd27ad73f1c5fefa4244d1df3361e76ba63f4588b970c8217f2c7",
65
+ "ui/src/main.tsx": "79faf095f462c11b5dc445dac9043c06809247d25c47f6693fccd656d1a1d35a",
66
+ "ui/src/routes/ActionsPage.tsx": "6cefad5a14eec98fe6a151efa8f3e0c2d177722ab669be2acc7d687b36a1fa54",
67
+ "ui/src/routes/ConflictsPage.tsx": "906c01b8e1ca0bca0ec8433e7c7f0cb4e0ac1b2a4c50d94484ddda0be94b9b49",
68
+ "ui/src/routes/GraphPage.tsx": "6bbb1ef0a544cb29037fc601a2efb458858393ba4e73574e899f73aae3745850",
69
+ "ui/src/routes/HealthPage.tsx": "b38ae7712a994eaff90f758f239b5bb47338533e826fbfafa4a3a28a3ab3ce9a",
70
+ "ui/src/routes/HomePage.tsx": "c0effef0b67e93c5b41d3af87052f3d06702d9cd11e5b4d86ace17bc54a654a1",
71
+ "ui/src/routes/MemoriesPage.tsx": "8e63b382565a65b5c436a8f7ce4c574afde37a8d1b0174ebb0add93eb5ca638b",
72
+ "ui/src/routes/ObservatoryPage.tsx": "f9a155f55329e639dbba86f834d943062a16afd6323300dae9a3b71e680be817",
73
+ "ui/src/routes/ReplayPage.tsx": "985e6aaaf133357b612167660805c7588e01b2705bc24207b6aa14bc96ab56d1",
74
+ "ui/src/routes/SearchLabPage.tsx": "72498788cc28a06e0a74470118b9b1240541211735814a361df001d70af51c04",
75
+ "ui/src/routes/SettingsPage.tsx": "c3a7ecc4cd95b292fe0bcbd633f1f82642efa67fd00bf674de7bf7ae70785489",
76
+ "ui/src/routes/TrapsPage.tsx": "4d7f23a025cb17c2d7ea8da5189e59451132961b0a6e5088a644ede3c70fe15e",
77
+ "ui/src/routes/TreemapPage.tsx": "bc22b7cece9180805d734d66f2ca9d0e72d849ae1a54972702cfd6f8d870e1e1",
78
+ "ui/src/utils/squarify.ts": "a52dd340fe73164807e04ce3ceac586f1d25ecd3c5a8cd4263f8349893cb78a3",
79
+ "ui/tsconfig.json": "219388c41d5a2b05e0face518be07c2d351526e5234b5ffab76d9c6b8841f79d",
80
+ "ui/vite.config.ts": "be3b5aa477fd1d2e770c6e99c4d53178b0822b4171adde32b285696047b02b19"
81
+ },
82
+ "files": {
83
+ "assets/ActionsPage-B3quzFNF.js": "d5e4a59adcfc232a257e38fdeae8de2ab5d6d69f7495326108c43bdd166b8671",
84
+ "assets/GraphPage-DetiATmC.js": "2da84c55e557d855ebe9945e7bebc2b508031bea70906402469be50c650f1a6e",
85
+ "assets/index-BJnPINTu.css": "718a40e10df13b00f35e37e75a3fcc215b060fa8094188d2a24750e7f67f0056",
86
+ "assets/index-DWAH--Fu.js": "bc3d865a13bcd6e9a8cce975cb7f7cad6b6818c2cf4b239517a7f10041ce33c1",
87
+ "assets/maximize-2-BebkGbZA.js": "644a5aad7dbed131bdefa138e517c3abbbc8f31d5da0461e321c8c366f2c6ec4",
88
+ "assets/ObservatoryPage-QIGMwENf.js": "a38fb2a1c13cc9709c30bfbfc1b8282db2e0e914e02099e185f03dbf771165cd",
89
+ "assets/query-fe9kutlk.js": "44a5c6682b4595c47fe6a6b91dd1d4a4ab3e8503eed6a18abbfacbe356ae3a00",
90
+ "assets/three-CjKLTR5c.js": "d83f62405579c59aac4c18d513e53ac0a9eef8c78f45b2e5999eac9f4bafaf10",
91
+ "assets/TreemapPage-C7uLZd37.js": "e25c9f2b4faa823e4c178536294165fe3470dff8e18715221cc521e7dde96094",
92
+ "assets/vendor-wVc5lIPn.js": "27b169519376edf90743a8d45ccf327a9d4d12d20118f91da67a23ed6bcbde3a",
93
+ "index.html": "96e889d3ec816f04b0a885a0a32c76699c5ced6bf03cbc409cc7e1d636129247"
94
+ }
95
+ }
@@ -1,26 +1,26 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
6
- <meta name="color-scheme" content="light dark" />
7
- <title>FastrMemory Hub</title>
8
- <link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2338bdf8'><path d='M13 2L3 14h9l-1 8 10-12h-9l1-8z'/></svg>" />
9
- <script>
10
- // Apply the persisted theme before first paint to avoid a light/dark flash.
11
- (function () {
12
- var mode = 'system';
13
- try { mode = localStorage.getItem('fastr-theme') || 'system'; } catch (e) {}
14
- var dark = mode === 'dark' || (mode !== 'light' && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches);
15
- document.documentElement.classList.toggle('dark', dark);
16
- })();
17
- </script>
18
- <script type="module" crossorigin src="/assets/index-DWAH--Fu.js"></script>
19
- <link rel="modulepreload" crossorigin href="/assets/vendor-wVc5lIPn.js">
20
- <link rel="modulepreload" crossorigin href="/assets/query-fe9kutlk.js">
21
- <link rel="stylesheet" crossorigin href="/assets/index-BJnPINTu.css">
22
- </head>
23
- <body>
24
- <div id="root"></div>
25
- </body>
26
- </html>
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
6
+ <meta name="color-scheme" content="light dark" />
7
+ <title>FastrMemory Hub</title>
8
+ <link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2338bdf8'><path d='M13 2L3 14h9l-1 8 10-12h-9l1-8z'/></svg>" />
9
+ <script>
10
+ // Apply the persisted theme before first paint to avoid a light/dark flash.
11
+ (function () {
12
+ var mode = 'system';
13
+ try { mode = localStorage.getItem('fastr-theme') || 'system'; } catch (e) {}
14
+ var dark = mode === 'dark' || (mode !== 'light' && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches);
15
+ document.documentElement.classList.toggle('dark', dark);
16
+ })();
17
+ </script>
18
+ <script type="module" crossorigin src="/assets/index-DWAH--Fu.js"></script>
19
+ <link rel="modulepreload" crossorigin href="/assets/vendor-wVc5lIPn.js">
20
+ <link rel="modulepreload" crossorigin href="/assets/query-fe9kutlk.js">
21
+ <link rel="stylesheet" crossorigin href="/assets/index-BJnPINTu.css">
22
+ </head>
23
+ <body>
24
+ <div id="root"></div>
25
+ </body>
26
+ </html>
package/llms-install.md CHANGED
@@ -1,69 +1,77 @@
1
- # Installing FastrMemory (for AI agents)
2
-
3
- You are an AI agent asked to install FastrMemory for a developer or team. Follow these steps in order, run every command yourself, and finish with the verification in step 5. Stop and report the exact error if a step fails.
4
-
5
- ## 1. Check the prerequisite
6
-
7
- ```bash
8
- node --version # must be 22.16.0 or newer
9
- ```
10
-
11
- FastrMemory uses the built-in `node:sqlite` module, so there is no database service to install.
12
-
13
- ## 2. Install the CLI
14
-
15
- ```bash
16
- npm install -g fastrmemory@0.3.0
17
- fastr --version
18
- ```
19
-
20
- If global installs are not allowed, replace `fastr <command>` with `npx -y fastrmemory@0.3.0 <command>` in the remaining steps. Pin the version so an unrelated future release cannot change the installed behavior.
21
-
22
- ## 3. Wire the agent clients
23
-
24
- From the project the developer works in:
25
-
26
- ```bash
27
- fastr setup
28
- ```
29
-
30
- `fastr setup` initializes `.fastr/` and writes MCP entries for the clients it finds. It also adds the AGENTS.md discipline block and installs the Agent Skills. Existing JSON configs are merged, not replaced, and changed files are backed up. It never creates a database outside the project and never uploads memory content.
31
-
32
- For Claude Code lifecycle hooks only:
33
-
34
- ```bash
35
- fastr hook install
36
- ```
37
-
38
- ## 4. Manual MCP configuration
39
-
40
- Any MCP client can launch the stdio server directly:
41
-
42
- ```json
43
- {
44
- "mcpServers": {
45
- "fastrmemory": {
46
- "command": "npx",
47
- "args": ["-y", "fastrmemory@0.3.0", "mcp"]
48
- }
49
- }
50
- }
51
- ```
52
-
53
- On native Windows, use `cmd /c npx -y fastrmemory@0.3.0 mcp` if the client cannot launch `npx` directly. The full 41-tool surface is the default; add `--profile core` to expose the 12-tool daily loop.
54
-
55
- ## 5. Verify
56
-
57
- ```bash
58
- fastr status
59
- fastr trap list
60
- ```
61
-
62
- `fastr status` prints the project ID, memory counts, embedding coverage, and database path. Inside an MCP session, call `fastr_status` with an empty object and confirm it returns the same project.
63
-
64
- ## Rules while using FastrMemory
65
-
66
- - Never store API keys, tokens, passwords, private keys, or personal data in a memory. The secret scrubber is a safety net, not a guarantee.
67
- - Remember decisions, rules, file-scoped traps, and known dead ends, not full transcripts.
68
- - Call `fastr_trap_recall` before editing files and log diagnosed failures with `fastr_trap_log`.
69
- - Use `fastr recall` or `fastr_recall` to retrieve context instead of loading the whole database.
1
+ # Installing FastrMemory (for AI agents)
2
+
3
+ You are an AI agent asked to install FastrMemory for a developer or team. Follow these steps in order, run every command yourself, and finish with the verification in step 5. Stop and report the exact error if a step fails.
4
+
5
+ ## 1. Check the prerequisite
6
+
7
+ ```bash
8
+ node --version # must be 22.16.0 or newer
9
+ ```
10
+
11
+ FastrMemory uses the built-in `node:sqlite` module, so there is no database service to install.
12
+
13
+ ## 2. Install the CLI
14
+
15
+ ```bash
16
+ npm install -g fastrmemory@latest
17
+ fastr --version
18
+ ```
19
+
20
+ If global installs are not allowed, replace `fastr <command>` with `npx -y fastrmemory@latest <command>` in the remaining steps. For a fully reproducible install, replace `@latest` with the exact version the project has approved.
21
+
22
+ ## 3. Wire the agent clients
23
+
24
+ From the project the developer works in, configure the MCP client with one command:
25
+
26
+ ```bash
27
+ fastr mcp init --client claude
28
+ ```
29
+
30
+ Supported project-scoped clients are `claude`, `cursor`, `vscode`, `opencode`, `gemini`, and `copilot`. Use `--client all --scope project` for all six. User-scoped clients are `claude`, `cursor`, `vscode`, `gemini`, `windsurf`, `antigravity`, `claude-desktop`, and `codex`; `codex` prints a TOML snippet for `~/.codex/config.toml` instead of rewriting it. The default writes `fastrmemory@latest`; add `--channel pinned` to write the exact version, `--runner pnpm|yarn|bunx` to change the package runner, and `--dry-run` to inspect without writing. Existing JSON is merged, unrelated keys are preserved, and the first change writes a `.fastr.bak` backup.
31
+
32
+ > `mcp init` is prepared in `0.4.0`; as of 2026-10-23, `0.3.1` is still npm `latest` and does not include the command. If `fastr mcp init` returns an unknown-command error, run `npx --yes github:atifjubaer/fastrmemory#main mcp init --client claude`, use `fastr setup`, or use the manual JSON in step 4 until `0.4.0` publishes.
33
+
34
+ For the full installer (database initialization, `AGENTS.md`, skills, and lifecycle hooks), run:
35
+
36
+ ```bash
37
+ fastr setup
38
+ ```
39
+
40
+ `fastr setup` writes MCP entries for the clients it finds. It never creates a database outside the project and never uploads memory content. For lifecycle hooks only:
41
+
42
+ ```bash
43
+ fastr hook install
44
+ ```
45
+
46
+ ## 4. Manual MCP configuration
47
+
48
+ Any MCP client can launch the stdio server directly:
49
+
50
+ ```json
51
+ {
52
+ "mcpServers": {
53
+ "fastrmemory": {
54
+ "command": "npx",
55
+ "args": ["-y", "fastrmemory@latest", "mcp"]
56
+ }
57
+ }
58
+ }
59
+ ```
60
+
61
+ For user-scoped clients (Claude Desktop, Antigravity, Windsurf, and the Claude Code entry in `~/.claude.json`), append `--project /absolute/path/to/project` so the client's launch directory cannot select the wrong database. `fastr mcp init --scope user` adds this automatically. On native Windows, `fastr mcp init` emits `cmd /c npx ...`; a manual entry can use `cmd /c npx -y fastrmemory@latest mcp` if the client cannot launch `npx` directly. `fastr setup` writes the absolute `node` path automatically. The full 41-tool surface is the default; add `--profile core` to expose the 12-tool daily loop.
62
+
63
+ ## 5. Verify
64
+
65
+ ```bash
66
+ fastr status
67
+ fastr trap list
68
+ ```
69
+
70
+ `fastr status` prints the project ID, memory counts, embedding coverage, and database path. Inside an MCP session, call `fastr_status` with an empty object and confirm it returns the same project.
71
+
72
+ ## Rules while using FastrMemory
73
+
74
+ - Never store API keys, tokens, passwords, private keys, or personal data in a memory. The secret scrubber is a safety net, not a guarantee.
75
+ - Remember decisions, rules, file-scoped traps, and known dead ends, not full transcripts.
76
+ - Call `fastr_trap_recall` before editing files and log diagnosed failures with `fastr_trap_log`.
77
+ - Use `fastr recall` or `fastr_recall` to retrieve context instead of loading the whole database.