@cachly-dev/mcp-server 0.10.65 → 0.10.67

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 (277) hide show
  1. package/dist/src/embeddings.js +10 -0
  2. package/dist/src/embeddings.js.map +1 -1
  3. package/dist/src/handlers/brain.js +2 -1
  4. package/dist/src/handlers/brain.js.map +1 -1
  5. package/dist/src/handlers/cache.js +4 -0
  6. package/dist/src/handlers/cache.js.map +1 -1
  7. package/dist/src/handlers/tco.js +1 -0
  8. package/dist/src/handlers/tco.js.map +1 -1
  9. package/dist/src/index.js +2 -2
  10. package/dist/src/index.js.map +1 -1
  11. package/package.json +7 -1
  12. package/server.json +2 -2
  13. package/.env.test.example +0 -23
  14. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -50
  15. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  16. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -25
  17. package/.github/workflows/eas-build-android.yml +0 -58
  18. package/.github/workflows/eas-update.yml +0 -55
  19. package/.github/workflows/publish.yml +0 -72
  20. package/BENCH.md +0 -113
  21. package/CHANGELOG.md +0 -653
  22. package/Dockerfile +0 -16
  23. package/LAUNCH_TEXTS.md +0 -182
  24. package/PROGRESS.md +0 -141
  25. package/STRATEGY.md +0 -228
  26. package/VISION_10X.md +0 -133
  27. package/apps/travel-chaos-organizer/.env.example +0 -49
  28. package/apps/travel-chaos-organizer/DEPLOY.md +0 -328
  29. package/apps/travel-chaos-organizer/Makefile +0 -57
  30. package/apps/travel-chaos-organizer/README.md +0 -159
  31. package/apps/travel-chaos-organizer/backend/.env.example +0 -10
  32. package/apps/travel-chaos-organizer/backend/Dockerfile +0 -25
  33. package/apps/travel-chaos-organizer/backend/alembic/env.py +0 -56
  34. package/apps/travel-chaos-organizer/backend/alembic/script.py.mako +0 -24
  35. package/apps/travel-chaos-organizer/backend/alembic/versions/.gitkeep +0 -0
  36. package/apps/travel-chaos-organizer/backend/alembic/versions/0001_stripe_customer_id.py +0 -24
  37. package/apps/travel-chaos-organizer/backend/alembic/versions/0002_telegram_chat_id.py +0 -24
  38. package/apps/travel-chaos-organizer/backend/alembic.ini +0 -39
  39. package/apps/travel-chaos-organizer/backend/app/__init__.py +0 -0
  40. package/apps/travel-chaos-organizer/backend/app/auth/__init__.py +0 -0
  41. package/apps/travel-chaos-organizer/backend/app/auth/keycloak.py +0 -81
  42. package/apps/travel-chaos-organizer/backend/app/config.py +0 -66
  43. package/apps/travel-chaos-organizer/backend/app/db/__init__.py +0 -0
  44. package/apps/travel-chaos-organizer/backend/app/db/database.py +0 -20
  45. package/apps/travel-chaos-organizer/backend/app/db/migrations/001_init.sql +0 -71
  46. package/apps/travel-chaos-organizer/backend/app/db/migrations/002_telemetry_freemium.sql +0 -31
  47. package/apps/travel-chaos-organizer/backend/app/db/migrations/003_telegram_chat_id.sql +0 -4
  48. package/apps/travel-chaos-organizer/backend/app/db/migrations/004_stripe_and_email.sql +0 -5
  49. package/apps/travel-chaos-organizer/backend/app/limiter.py +0 -4
  50. package/apps/travel-chaos-organizer/backend/app/logging_config.py +0 -25
  51. package/apps/travel-chaos-organizer/backend/app/main.py +0 -77
  52. package/apps/travel-chaos-organizer/backend/app/models/__init__.py +0 -0
  53. package/apps/travel-chaos-organizer/backend/app/models/schemas.py +0 -142
  54. package/apps/travel-chaos-organizer/backend/app/routers/__init__.py +0 -0
  55. package/apps/travel-chaos-organizer/backend/app/routers/admin.py +0 -237
  56. package/apps/travel-chaos-organizer/backend/app/routers/cache.py +0 -13
  57. package/apps/travel-chaos-organizer/backend/app/routers/events.py +0 -29
  58. package/apps/travel-chaos-organizer/backend/app/routers/export.py +0 -122
  59. package/apps/travel-chaos-organizer/backend/app/routers/inbox.py +0 -122
  60. package/apps/travel-chaos-organizer/backend/app/routers/items.py +0 -130
  61. package/apps/travel-chaos-organizer/backend/app/routers/mail.py +0 -108
  62. package/apps/travel-chaos-organizer/backend/app/routers/parse.py +0 -303
  63. package/apps/travel-chaos-organizer/backend/app/routers/payments.py +0 -179
  64. package/apps/travel-chaos-organizer/backend/app/routers/trips.py +0 -134
  65. package/apps/travel-chaos-organizer/backend/app/routers/users.py +0 -169
  66. package/apps/travel-chaos-organizer/backend/app/routers/waitlist.py +0 -37
  67. package/apps/travel-chaos-organizer/backend/app/services/__init__.py +0 -0
  68. package/apps/travel-chaos-organizer/backend/app/services/cache.py +0 -131
  69. package/apps/travel-chaos-organizer/backend/app/services/drip.py +0 -128
  70. package/apps/travel-chaos-organizer/backend/app/services/email.py +0 -61
  71. package/apps/travel-chaos-organizer/backend/app/services/errors.py +0 -44
  72. package/apps/travel-chaos-organizer/backend/app/services/notifier.py +0 -10
  73. package/apps/travel-chaos-organizer/backend/app/services/ollama.py +0 -101
  74. package/apps/travel-chaos-organizer/backend/app/services/parser.py +0 -22
  75. package/apps/travel-chaos-organizer/backend/app/services/quota.py +0 -85
  76. package/apps/travel-chaos-organizer/backend/app/services/sentry.py +0 -11
  77. package/apps/travel-chaos-organizer/backend/app/services/telemetry.py +0 -35
  78. package/apps/travel-chaos-organizer/backend/pytest.ini +0 -4
  79. package/apps/travel-chaos-organizer/backend/requirements-dev.txt +0 -6
  80. package/apps/travel-chaos-organizer/backend/requirements.txt +0 -25
  81. package/apps/travel-chaos-organizer/backend/tests/__init__.py +0 -0
  82. package/apps/travel-chaos-organizer/backend/tests/conftest.py +0 -223
  83. package/apps/travel-chaos-organizer/backend/tests/test_admin.py +0 -99
  84. package/apps/travel-chaos-organizer/backend/tests/test_cache.py +0 -142
  85. package/apps/travel-chaos-organizer/backend/tests/test_drip.py +0 -32
  86. package/apps/travel-chaos-organizer/backend/tests/test_e2e_chain.py +0 -121
  87. package/apps/travel-chaos-organizer/backend/tests/test_export.py +0 -48
  88. package/apps/travel-chaos-organizer/backend/tests/test_inbox.py +0 -107
  89. package/apps/travel-chaos-organizer/backend/tests/test_items.py +0 -138
  90. package/apps/travel-chaos-organizer/backend/tests/test_mail.py +0 -113
  91. package/apps/travel-chaos-organizer/backend/tests/test_ollama.py +0 -145
  92. package/apps/travel-chaos-organizer/backend/tests/test_parse_url.py +0 -98
  93. package/apps/travel-chaos-organizer/backend/tests/test_parser.py +0 -72
  94. package/apps/travel-chaos-organizer/backend/tests/test_payments.py +0 -163
  95. package/apps/travel-chaos-organizer/backend/tests/test_quota.py +0 -46
  96. package/apps/travel-chaos-organizer/backend/tests/test_search.py +0 -67
  97. package/apps/travel-chaos-organizer/backend/tests/test_trips.py +0 -123
  98. package/apps/travel-chaos-organizer/backend/tests/test_users.py +0 -52
  99. package/apps/travel-chaos-organizer/backups/.gitkeep +0 -0
  100. package/apps/travel-chaos-organizer/caddy/Caddyfile +0 -27
  101. package/apps/travel-chaos-organizer/docker-compose.node1.yml +0 -31
  102. package/apps/travel-chaos-organizer/docker-compose.override.yml +0 -14
  103. package/apps/travel-chaos-organizer/docker-compose.yml +0 -128
  104. package/apps/travel-chaos-organizer/frontend/.env.example +0 -13
  105. package/apps/travel-chaos-organizer/frontend/app/(app)/_layout.tsx +0 -80
  106. package/apps/travel-chaos-organizer/frontend/app/(app)/inbox.tsx +0 -166
  107. package/apps/travel-chaos-organizer/frontend/app/(app)/search.tsx +0 -130
  108. package/apps/travel-chaos-organizer/frontend/app/(app)/settings.tsx +0 -381
  109. package/apps/travel-chaos-organizer/frontend/app/(app)/trips/[id].tsx +0 -346
  110. package/apps/travel-chaos-organizer/frontend/app/(app)/trips.tsx +0 -363
  111. package/apps/travel-chaos-organizer/frontend/app/(app)/upgrade/cancel.tsx +0 -34
  112. package/apps/travel-chaos-organizer/frontend/app/(app)/upgrade/success.tsx +0 -35
  113. package/apps/travel-chaos-organizer/frontend/app/(auth)/login.tsx +0 -91
  114. package/apps/travel-chaos-organizer/frontend/app/_layout.tsx +0 -71
  115. package/apps/travel-chaos-organizer/frontend/app/auth.tsx +0 -29
  116. package/apps/travel-chaos-organizer/frontend/app/index.tsx +0 -16
  117. package/apps/travel-chaos-organizer/frontend/app/onboarding.tsx +0 -119
  118. package/apps/travel-chaos-organizer/frontend/app.config.ts +0 -54
  119. package/apps/travel-chaos-organizer/frontend/assets/adaptive-icon.svg +0 -66
  120. package/apps/travel-chaos-organizer/frontend/assets/icon.svg +0 -79
  121. package/apps/travel-chaos-organizer/frontend/assets/splash.svg +0 -15
  122. package/apps/travel-chaos-organizer/frontend/components/BottomSheet.tsx +0 -102
  123. package/apps/travel-chaos-organizer/frontend/components/ConfettiCannon.tsx +0 -107
  124. package/apps/travel-chaos-organizer/frontend/components/ConfirmDialog.tsx +0 -109
  125. package/apps/travel-chaos-organizer/frontend/components/ErrorBoundary.tsx +0 -45
  126. package/apps/travel-chaos-organizer/frontend/components/FileUploadButton.tsx +0 -19
  127. package/apps/travel-chaos-organizer/frontend/components/ImportSheet.tsx +0 -155
  128. package/apps/travel-chaos-organizer/frontend/components/OfflineBadge.tsx +0 -55
  129. package/apps/travel-chaos-organizer/frontend/components/QRCodeViewer.tsx +0 -80
  130. package/apps/travel-chaos-organizer/frontend/components/ScoreRing.tsx +0 -39
  131. package/apps/travel-chaos-organizer/frontend/components/Screen.tsx +0 -39
  132. package/apps/travel-chaos-organizer/frontend/components/Skeleton.tsx +0 -70
  133. package/apps/travel-chaos-organizer/frontend/components/SwipeableInboxItem.tsx +0 -121
  134. package/apps/travel-chaos-organizer/frontend/components/SwipeableTimelineItem.tsx +0 -70
  135. package/apps/travel-chaos-organizer/frontend/components/TimelineItem.tsx +0 -73
  136. package/apps/travel-chaos-organizer/frontend/components/TimelineItemDetail.tsx +0 -130
  137. package/apps/travel-chaos-organizer/frontend/components/Toast.tsx +0 -60
  138. package/apps/travel-chaos-organizer/frontend/components/ToastContext.tsx +0 -42
  139. package/apps/travel-chaos-organizer/frontend/components/TripCard.tsx +0 -146
  140. package/apps/travel-chaos-organizer/frontend/components/TripQRModal.tsx +0 -70
  141. package/apps/travel-chaos-organizer/frontend/components/UpgradeBanner.tsx +0 -44
  142. package/apps/travel-chaos-organizer/frontend/eas.json +0 -22
  143. package/apps/travel-chaos-organizer/frontend/hooks/useInbox.ts +0 -24
  144. package/apps/travel-chaos-organizer/frontend/hooks/useNetworkSync.ts +0 -60
  145. package/apps/travel-chaos-organizer/frontend/hooks/useTrips.ts +0 -112
  146. package/apps/travel-chaos-organizer/frontend/lib/api.ts +0 -223
  147. package/apps/travel-chaos-organizer/frontend/lib/auth.ts +0 -93
  148. package/apps/travel-chaos-organizer/frontend/lib/db.ts +0 -86
  149. package/apps/travel-chaos-organizer/frontend/lib/fileCache.ts +0 -54
  150. package/apps/travel-chaos-organizer/frontend/lib/haptics.ts +0 -13
  151. package/apps/travel-chaos-organizer/frontend/lib/notifications.ts +0 -112
  152. package/apps/travel-chaos-organizer/frontend/lib/offlineQueue.ts +0 -145
  153. package/apps/travel-chaos-organizer/frontend/lib/quota.tsx +0 -43
  154. package/apps/travel-chaos-organizer/frontend/lib/sentry.ts +0 -28
  155. package/apps/travel-chaos-organizer/frontend/lib/shareIntent.ts +0 -44
  156. package/apps/travel-chaos-organizer/frontend/package-lock.json +0 -13221
  157. package/apps/travel-chaos-organizer/frontend/package.json +0 -44
  158. package/apps/travel-chaos-organizer/frontend/tsconfig.json +0 -23
  159. package/apps/travel-chaos-organizer/keycloak/realm-export.json +0 -59
  160. package/apps/travel-chaos-organizer/landing/index.html +0 -773
  161. package/apps/travel-chaos-organizer/scripts/backup.sh +0 -14
  162. package/apps/travel-chaos-organizer/scripts/configure-env.sh +0 -82
  163. package/apps/travel-chaos-organizer/scripts/deploy.sh +0 -54
  164. package/apps/travel-chaos-organizer/scripts/health-check.sh +0 -36
  165. package/apps/travel-chaos-organizer/scripts/migrate.sh +0 -7
  166. package/apps/travel-chaos-organizer/scripts/server-setup.sh +0 -85
  167. package/apps/travel-chaos-organizer/scripts/smoke-test.sh +0 -29
  168. package/apps/travel-chaos-organizer/scripts/verify-tracking.sh +0 -71
  169. package/apps/travel-chaos-organizer/telegram-bot/.env.example +0 -3
  170. package/apps/travel-chaos-organizer/telegram-bot/Dockerfile +0 -6
  171. package/apps/travel-chaos-organizer/telegram-bot/bot.py +0 -504
  172. package/apps/travel-chaos-organizer/telegram-bot/requirements.txt +0 -3
  173. package/dist/src/__tests__/auth.test.d.ts +0 -1
  174. package/dist/src/__tests__/auth.test.js +0 -107
  175. package/dist/src/__tests__/auth.test.js.map +0 -1
  176. package/dist/src/__tests__/brain-flow.test.d.ts +0 -12
  177. package/dist/src/__tests__/brain-flow.test.js +0 -1241
  178. package/dist/src/__tests__/brain-flow.test.js.map +0 -1
  179. package/dist/src/__tests__/confidence.test.d.ts +0 -13
  180. package/dist/src/__tests__/confidence.test.js +0 -233
  181. package/dist/src/__tests__/confidence.test.js.map +0 -1
  182. package/dist/src/__tests__/e2e/api-auth.test.d.ts +0 -7
  183. package/dist/src/__tests__/e2e/api-auth.test.js +0 -162
  184. package/dist/src/__tests__/e2e/api-auth.test.js.map +0 -1
  185. package/dist/src/__tests__/e2e/api-health.test.d.ts +0 -7
  186. package/dist/src/__tests__/e2e/api-health.test.js +0 -95
  187. package/dist/src/__tests__/e2e/api-health.test.js.map +0 -1
  188. package/dist/src/__tests__/e2e/cli.test.d.ts +0 -10
  189. package/dist/src/__tests__/e2e/cli.test.js +0 -204
  190. package/dist/src/__tests__/e2e/cli.test.js.map +0 -1
  191. package/dist/src/__tests__/e2e/config.d.ts +0 -35
  192. package/dist/src/__tests__/e2e/config.js +0 -53
  193. package/dist/src/__tests__/e2e/config.js.map +0 -1
  194. package/dist/src/__tests__/e2e/funnel.test.d.ts +0 -13
  195. package/dist/src/__tests__/e2e/funnel.test.js +0 -90
  196. package/dist/src/__tests__/e2e/funnel.test.js.map +0 -1
  197. package/dist/src/__tests__/e2e/mcp-tools.test.d.ts +0 -7
  198. package/dist/src/__tests__/e2e/mcp-tools.test.js +0 -129
  199. package/dist/src/__tests__/e2e/mcp-tools.test.js.map +0 -1
  200. package/dist/src/__tests__/e2e/provisioning.test.d.ts +0 -15
  201. package/dist/src/__tests__/e2e/provisioning.test.js +0 -123
  202. package/dist/src/__tests__/e2e/provisioning.test.js.map +0 -1
  203. package/dist/src/__tests__/handlers-unit.test.d.ts +0 -12
  204. package/dist/src/__tests__/handlers-unit.test.js +0 -505
  205. package/dist/src/__tests__/handlers-unit.test.js.map +0 -1
  206. package/dist/src/__tests__/namespace.test.d.ts +0 -1
  207. package/dist/src/__tests__/namespace.test.js +0 -114
  208. package/dist/src/__tests__/namespace.test.js.map +0 -1
  209. package/dist/src/__tests__/rerank.test.d.ts +0 -1
  210. package/dist/src/__tests__/rerank.test.js +0 -125
  211. package/dist/src/__tests__/rerank.test.js.map +0 -1
  212. package/dist/src/__tests__/utils.test.d.ts +0 -1
  213. package/dist/src/__tests__/utils.test.js +0 -83
  214. package/dist/src/__tests__/utils.test.js.map +0 -1
  215. package/dist/src/bench/cachly-bench.d.ts +0 -39
  216. package/dist/src/bench/cachly-bench.js +0 -223
  217. package/dist/src/bench/cachly-bench.js.map +0 -1
  218. package/dist/src/bench/fixtures.d.ts +0 -37
  219. package/dist/src/bench/fixtures.js +0 -225
  220. package/dist/src/bench/fixtures.js.map +0 -1
  221. package/dist/src/search.test.d.ts +0 -1
  222. package/dist/src/search.test.js +0 -713
  223. package/dist/src/search.test.js.map +0 -1
  224. package/eslint.config.js +0 -16
  225. package/glama.json +0 -36
  226. package/llms.txt +0 -155
  227. package/packages/telegram-notify/SPLIT_PLAN.md +0 -106
  228. package/packages/telegram-notify/client.ts +0 -88
  229. package/packages/telegram-notify/emojis.json +0 -22
  230. package/packages/telegram-notify/pyproject.toml +0 -17
  231. package/packages/telegram-notify/telegram_notify/__init__.py +0 -3
  232. package/packages/telegram-notify/telegram_notify/client.py +0 -87
  233. package/packages/telegram-notify/telegram_notify/emojis.json +0 -22
  234. package/scripts/e2e-run.sh +0 -160
  235. package/scripts/generate-icons.js +0 -28
  236. package/smithery.yaml +0 -45
  237. package/src/__tests__/auth.test.ts +0 -147
  238. package/src/__tests__/brain-flow.test.ts +0 -1472
  239. package/src/__tests__/confidence.test.ts +0 -285
  240. package/src/__tests__/e2e/api-auth.test.ts +0 -182
  241. package/src/__tests__/e2e/api-health.test.ts +0 -103
  242. package/src/__tests__/e2e/cli.test.ts +0 -228
  243. package/src/__tests__/e2e/config.ts +0 -53
  244. package/src/__tests__/e2e/funnel.test.ts +0 -99
  245. package/src/__tests__/e2e/mcp-tools.test.ts +0 -191
  246. package/src/__tests__/e2e/provisioning.test.ts +0 -128
  247. package/src/__tests__/handlers-unit.test.ts +0 -677
  248. package/src/__tests__/namespace.test.ts +0 -126
  249. package/src/__tests__/rerank.test.ts +0 -141
  250. package/src/__tests__/utils.test.ts +0 -81
  251. package/src/auth.ts +0 -46
  252. package/src/bench/cachly-bench.ts +0 -263
  253. package/src/bench/fixtures.ts +0 -256
  254. package/src/ckg.ts +0 -103
  255. package/src/confidence.ts +0 -38
  256. package/src/embeddings.ts +0 -217
  257. package/src/handlers/advanced.ts +0 -647
  258. package/src/handlers/brain.ts +0 -2622
  259. package/src/handlers/cache.ts +0 -633
  260. package/src/handlers/context.ts +0 -222
  261. package/src/handlers/fedbrain.ts +0 -1232
  262. package/src/handlers/instances.ts +0 -180
  263. package/src/handlers/roadmap.ts +0 -201
  264. package/src/handlers/syndicate.ts +0 -460
  265. package/src/handlers/tco.ts +0 -345
  266. package/src/handlers/team.ts +0 -1249
  267. package/src/index.ts +0 -2815
  268. package/src/namespace.ts +0 -128
  269. package/src/notifier.ts +0 -5
  270. package/src/rerank.ts +0 -148
  271. package/src/search.test.ts +0 -848
  272. package/src/search.ts +0 -1781
  273. package/src/tools.ts +0 -2056
  274. package/src/utils.ts +0 -90
  275. package/test-features.cjs +0 -23
  276. package/tsconfig.json +0 -16
  277. package/vitest.config.ts +0 -14
package/VISION_10X.md DELETED
@@ -1,133 +0,0 @@
1
- # cachly-mcp — Wie wir 10x schärfer werden
2
-
3
- > Dieses Dokument baut auf [STRATEGY.md](./STRATEGY.md) (der ehrlichen
4
- > Standortbestimmung) auf und übersetzt sie in **konkrete, schärfende Hebel**.
5
- > STRATEGY.md sagt *warum* und *in welcher Reihenfolge*. Hier steht *wie genau* —
6
- > und welche zehn Wetten den größten Unterschied machen.
7
- >
8
- > **Leitsatz (unverändert):** Erst stabil & reibungslos → dann beweisbar schlauer
9
- > → dann team-weit uneinholbar → immer modell-neutral.
10
-
11
- ---
12
-
13
- ## 0. Der eine Satz
14
-
15
- > **Anthropic gibt jedem Claude ein Gedächtnis. Wir geben jedem _Team_ ein
16
- > gemeinsames, geprüftes, modell-neutrales Gehirn — und beweisen mit einer Zahl,
17
- > dass es den richtigen Rat schneller findet.**
18
-
19
- Alles unten dient diesem einen Satz. Was ihn nicht schärft, ist Ablenkung.
20
-
21
- ---
22
-
23
- ## 1. Die Asymmetrie, die wir ausnutzen
24
-
25
- Anthropic kann strukturell **nicht**:
26
- 1. **Team-weit teilen** ohne das Per-User-Lock-in zu untergraben.
27
- 2. **Modell-neutral** sein — Memory in Anthropics Filesystem ist an Claude gebunden.
28
- 3. **Governance** liefern (Reviews, Rollen, Audit, DSGVO-Löschung im Kunden-VPC).
29
- 4. **Strukturiert kausal** denken statt flache Files linear zu lesen.
30
-
31
- Jeder dieser vier Punkte ist bereits in cachly angelegt (CKG, `team_confirm`,
32
- Visibility, Self-Hosting-Pfad). Die 10x-Arbeit ist **Tiefe, nicht Breite**.
33
-
34
- ---
35
-
36
- ## 2. Die zehn schärfenden Wetten (priorisiert)
37
-
38
- ### Wette 1 — Der unabhängige Beweis (höchste Priorität)
39
- **Problem:** Unser Hauptargument ("strukturiert > flat files") ist intern bewiesen
40
- (+22.2 % P@1), aber auf eigenem Korpus. Skeptiker glauben das nicht.
41
- **10x-Hebel:**
42
- - Externen, von Dritten gelabelten Korpus aus realen Agent-Traces bauen.
43
- - **Head-to-head** gegen Anthropics Memory-Tool (flat files) auf *denselben* Tasks.
44
- - Eine reproduzierbare Zahl, die jeder selbst nachfahren kann: `npx cachly bench --vs-flatfile`.
45
- **Erfolg sieht so aus:** "In 100 echten Debugging-Sessions fand cachly die hilfreiche
46
- Lesson 2.3x öfter im Top-1 als ein flat-file-Memory." — zitierbar, verteidigbar.
47
-
48
- ### Wette 2 — Time-to-first-recall < 60 s
49
- **Problem:** Jede Onboarding-Stufe ist ein Drop-off. First-party hat 0 Setup.
50
- **10x-Hebel:** `npx @cachly-dev/init` — auto-provision + device-flow + MCP-config-write
51
- + erster `brain_from_git`-Seed, idempotent, mit sichtbarem Fortschritt, <60 s.
52
- **Metrik:** vom `npx`-Befehl bis zum ersten wertvollen Recall. Ziel: <2 min, dann <60 s.
53
-
54
- ### Wette 3 — Wert sichtbar machen (jede Session)
55
- **Problem:** Anthropic-Memory ist unsichtbar-bequem; unseres war sichtbar-umständlich.
56
- **10x-Hebel:** Das "Brain saved you ~Xm here"-Banner (bereits live) wird zur
57
- **laufenden Bilanz**: pro Woche/Monat aggregierte Zeitersparnis, geteilte
58
- Team-Reuse-Momente ("Bob's Lesson hat dir gerade 40 min erspart").
59
- **Erfolg:** Der User *fühlt* den Wert, bevor er über Kündigung nachdenkt.
60
-
61
- ### Wette 4 — Personalisiertes, wer-was-wo-gewichtetes Recall
62
- **Problem:** Recall ignoriert heute, *wer* fragt und *woran* gerade gearbeitet wird.
63
- **10x-Hebel:** Die Phase-3-Graphen (Person/File/Konzept) ins Ranking ziehen:
64
- - Lessons aus dem aktuellen File-Kontext höher.
65
- - Lessons von Personen mit hoher Domain-Confidence höher.
66
- - "Du arbeitest an `payments/`, Carol hat hier 3x erfolgreich gefixt" — proaktiv.
67
-
68
- ### Wette 5 — Kollaborations-Graph (Personen ↔ Personen)
69
- **Problem:** Wir kennen Person→Konzept und Person→File, aber nicht Person↔Person.
70
- **10x-Hebel:** Kanten zwischen Menschen, die an denselben Dateien/Konzepten arbeiten
71
- → "Frag X *und* Y, die haben das zusammen gelöst." Onboarding-Gold, Bus-Faktor-Schutz.
72
-
73
- ### Wette 6 — Rollen & Team-Scopes (Enterprise-Eintrittskarte)
74
- **Problem:** Heute nur lesson-level `private`. Enterprises brauchen Rollen.
75
- **10x-Hebel:** admin / reviewer / contributor / viewer; Scopes auf Team-Ebene;
76
- nur reviewer dürfen `team_confirm`. Macht den Self-Hosted-Tier verkaufbar.
77
-
78
- ### Wette 7 — Stabilität auf First-Party-Niveau
79
- **Problem:** Gegen ein eingebautes Feature ist Vertrauen asymmetrisch — ein Crash kostet mehr.
80
- **10x-Hebel:** Circuit-Breaker + Timeouts überall (✅ erste Guards in 0.10.62);
81
- jede Tool-Antwort hat einen Vertragstest (405 Tests, weiter ausbauen);
82
- Graceful Degradation: Tool blockiert **nie** den Agent-Call.
83
-
84
- ### Wette 8 — "Dreaming"-Konter: Team-Crystallize
85
- **Problem:** Anthropics "Dreaming" extrahiert Muster pro User — bedroht unser Crystallize.
86
- **10x-Hebel:** Wir crystallizen **team-weit** und **kausal**: nicht nur "was passierte",
87
- sondern "welche Fixes haben strukturell ähnliche Probleme über *mehrere Personen* gelöst".
88
- Das kann ein per-User-Background-Prozess nicht.
89
-
90
- ### Wette 9 — Modell-Neutralität als Feature, nicht Fußnote
91
- **Hebel:** "Bring your own model, keep your brain." First-class über jeden MCP-Client.
92
- Ein sichtbarer Beweis: dasselbe Brain in Claude *und* einem anderen MCP-Client live zeigen.
93
-
94
- ### Wette 10 — Teilbare Domänen-Brains (Ökosystem/Virality)
95
- **Hebel:** Kuratierte öffentliche Brains ("Kubernetes-Incident-Brain",
96
- "React-Best-Practices-Brain") als Marktplatz. Je mehr Org-Wissen, desto höher die
97
- Wechselkosten *weg* von cachly — aber **null** Lock-in beim Modell.
98
-
99
- ---
100
-
101
- ## 3. Was 10x **nicht** ist (Anti-Roadmap)
102
-
103
- - ❌ Mehr Tools stapeln. Wir sind bei 100 — **Tiefe vor Breite**.
104
- - ❌ Anthropics Single-User-Memory feature-für-feature schlagen. Das verlieren wir.
105
- - ❌ Modell-Lock-in aufbauen. Das ist unser einziger glaubwürdiger Vorteil.
106
- - ❌ Beweis durch Marketing ersetzen. Ohne Zahl keine Story.
107
-
108
- ---
109
-
110
- ## 4. Wie wir Fortschritt messen
111
-
112
- | Hebel | Leitmetrik | Schwelle für "10x erreicht" |
113
- |---|---|---|
114
- | Beweis (W1) | Recall-Lift vs. flat-file auf externem Korpus | reproduzierbar, Dritte bestätigen |
115
- | Onboarding (W2) | Time-to-first-recall | <60 s im Median |
116
- | Wertsichtbarkeit (W3) | Wöchentlich angezeigte Zeitersparnis | User nennt sie unaufgefordert |
117
- | Team-Reuse (W4/W5) | Recalls einer Lesson durch *andere* Person | >30 % der wertvollen Recalls |
118
- | Stabilität (W7) | Tool-Fehlerquote, die den Agent-Call bricht | ~0 |
119
-
120
- ---
121
-
122
- ## 5. Die Reihenfolge (nicht verhandelbar)
123
-
124
- ```
125
- 1. STABIL & REIBUNGSLOS → W2, W7 (sonst ist alles wertlos)
126
- 2. BEWEISBAR SCHLAUER → W1, W3, W4 (jetzt verdienen wir den Wettbewerb)
127
- 3. TEAM-WEIT UNEINHOLBAR → W5, W6, W8, W10 (hier ist Anthropic strukturell raus)
128
- 4. NEUTRALER LAYER → W9 (die Positionierung, die nie veraltet)
129
- ```
130
-
131
- > Wir gewinnen nicht, indem wir Anthropic kopieren. Wir gewinnen, indem wir das
132
- > werden, was Anthropic strukturell **nicht sein darf**: der neutrale, team-weite,
133
- > beweisbar-bessere Wissens-Layer über allen Modellen.
@@ -1,49 +0,0 @@
1
- # Travel Chaos Organizer — Environment Variables
2
- # Copy to .env and fill in your values
3
-
4
- # App
5
- DEBUG=false
6
- UPLOAD_DIR=/data/uploads
7
-
8
- # Database (overridden by docker-compose for containerized runs)
9
- DATABASE_URL=postgresql+asyncpg://tco:tco@localhost:5432/tco
10
-
11
- # Keycloak
12
- KEYCLOAK_URL=http://localhost:8080
13
- KEYCLOAK_REALM=travel-chaos
14
- KEYCLOAK_CLIENT_ID=tco-backend
15
-
16
- # Ollama — point to your self-hosted instance
17
- OLLAMA_URL=http://your-server:11434
18
- OLLAMA_MODEL=llama3.2-vision
19
- OLLAMA_TIMEOUT=120
20
-
21
- # Cachly Redis — caches Ollama parse results to avoid duplicate AI calls.
22
- # docker-compose sets this automatically (local Redis).
23
- # In production, replace with your Cachly instance URL:
24
- # cachly.dev → Instances → Connection String
25
- # Same document uploaded twice? Instant response from cache, no second AI call.
26
- CACHLY_REDIS_URL=redis://localhost:6379/0
27
- # CACHLY_REDIS_URL=redis://:<password>@<host>.cachly.dev:6380/0
28
-
29
- # Telegram Notifier (optional) — get token from @BotFather
30
- # TELEGRAM_BOT_TOKEN=...
31
- # TCO_TELEGRAM_CHAT_ID=... # chat or channel ID for TCO events
32
-
33
- # Email — Resend (optional, https://resend.com)
34
- # RESEND_API_KEY=re_...
35
- # RESEND_FROM=noreply@yourdomain.com
36
-
37
- # Admin dashboard (change before going live!)
38
- ADMIN_USER=admin
39
- ADMIN_PASSWORD=changeme
40
-
41
- # CORS — comma-separated origins, or * for all
42
- CORS_ORIGINS=*
43
-
44
- # Stripe
45
- # STRIPE_SECRET_KEY=sk_live_...
46
- # STRIPE_WEBHOOK_SECRET=whsec_...
47
- # STRIPE_PRO_PRICE_ID=price_...
48
- STRIPE_SUCCESS_URL=https://YOUR_DOMAIN/upgrade/success
49
- STRIPE_CANCEL_URL=https://YOUR_DOMAIN/upgrade/cancel
@@ -1,328 +0,0 @@
1
- # Travel Chaos Organizer — Deployment & Test Checklist
2
-
3
- > Hand this file to any agent or developer to get the app running end-to-end.
4
- > Everything below assumes a fresh Ubuntu 22.04 VPS and an Android phone for testing.
5
-
6
- ---
7
-
8
- ## Prerequisites
9
-
10
- | What | Where to get |
11
- |------|-------------|
12
- | VPS (min. 2 GB RAM) | Hetzner / DigitalOcean / any Ubuntu 22.04 |
13
- | Domain pointing to VPS | Your DNS provider → A record → VPS IP |
14
- | Stripe account | stripe.com — get secret key + webhook secret + price ID |
15
- | Resend account | resend.com — get API key, verify sender domain |
16
- | Telegram bot (optional) | @BotFather → create bot → get token + chat ID |
17
- | Expo account | expo.dev — needed for EAS builds |
18
- | Android phone | Expo Go from Play Store for quick testing |
19
-
20
- ---
21
-
22
- ## Step 1 — Server Setup (run once)
23
-
24
- ```bash
25
- # On the VPS as root:
26
- curl -o server-setup.sh https://raw.githubusercontent.com/cachly-dev/cachly-mcp/claude/plan-mvp-project-1ORlN/apps/travel-chaos-organizer/scripts/server-setup.sh
27
- chmod +x server-setup.sh
28
- bash server-setup.sh
29
- # → installs Docker, UFW, creates tco user, sets up backup cron
30
- ```
31
-
32
- ---
33
-
34
- ## Step 2 — Configure Environment
35
-
36
- ```bash
37
- # As the tco user on the VPS:
38
- git clone https://github.com/cachly-dev/cachly-mcp.git /home/tco/app
39
- cd /home/tco/app/apps/travel-chaos-organizer
40
- bash scripts/configure-env.sh
41
- ```
42
-
43
- **The script asks for these values — have them ready:**
44
-
45
- ### Backend `.env` (created at `apps/travel-chaos-organizer/.env`)
46
-
47
- | Variable | Value / Where to find |
48
- |----------|-----------------------|
49
- | `DATABASE_URL` | `postgresql+asyncpg://tco:YOURPASSWORD@postgres:5432/tco` |
50
- | `KEYCLOAK_URL` | `https://auth.YOURDOMAIN.com` |
51
- | `KEYCLOAK_REALM` | `tco` |
52
- | `KEYCLOAK_CLIENT_ID` | `tco-app` |
53
- | `OLLAMA_URL` | `http://ollama:11434` |
54
- | `OLLAMA_MODEL` | `llama3.2-vision` |
55
- | `STRIPE_SECRET_KEY` | Stripe Dashboard → Developers → API keys |
56
- | `STRIPE_WEBHOOK_SECRET` | Stripe Dashboard → Webhooks → signing secret |
57
- | `STRIPE_PRO_PRICE_ID` | Stripe Dashboard → Products → your Pro price ID |
58
- | `RESEND_API_KEY` | Resend Dashboard → API Keys |
59
- | `RESEND_FROM` | `TCO <noreply@YOURDOMAIN.com>` |
60
- | `ADMIN_USER` | choose a username (not "admin") |
61
- | `ADMIN_PASSWORD` | strong password (min 20 chars) |
62
- | `TELEGRAM_BOT_TOKEN` | @BotFather → your bot token (optional) |
63
- | `TCO_TELEGRAM_CHAT_ID` | your personal/group chat ID (optional) |
64
- | `SENTRY_DSN` | sentry.io → project → DSN (optional) |
65
- | `CORS_ORIGINS` | `https://YOURDOMAIN.com` (lock down in production) |
66
- | `SECRET_KEY` | run: `openssl rand -hex 32` |
67
- | `APP_URL` | `https://YOURDOMAIN.com` |
68
-
69
- ### Frontend `.env.production` (created at `apps/travel-chaos-organizer/frontend/.env.production`)
70
-
71
- | Variable | Value |
72
- |----------|-------|
73
- | `EXPO_PUBLIC_API_URL` | `https://YOURDOMAIN.com` |
74
- | `EXPO_PUBLIC_KEYCLOAK_URL` | `https://auth.YOURDOMAIN.com` |
75
- | `EXPO_PUBLIC_KEYCLOAK_REALM` | `tco` |
76
- | `EXPO_PUBLIC_KEYCLOAK_CLIENT_ID` | `tco-app` |
77
- | `EXPO_PUBLIC_UPGRADE_URL` | `https://YOURDOMAIN.com/upgrade` (or Stripe payment link) |
78
- | `EXPO_PUBLIC_PRIVACY_URL` | `https://YOURDOMAIN.com/privacy` |
79
- | `EXPO_PUBLIC_TERMS_URL` | `https://YOURDOMAIN.com/terms` |
80
- | `EXPO_PUBLIC_SUPPORT_EMAIL` | `support@YOURDOMAIN.com` |
81
- | `EXPO_PUBLIC_SENTRY_DSN` | same Sentry DSN as backend (optional) |
82
-
83
- ---
84
-
85
- ## Step 3 — Deploy Backend
86
-
87
- ```bash
88
- cd /home/tco/app/apps/travel-chaos-organizer
89
- bash scripts/deploy.sh
90
- # → pulls images, builds, starts containers, runs Alembic migrations
91
- ```
92
-
93
- **Verify it's running:**
94
- ```bash
95
- bash scripts/health-check.sh
96
- # Should print: ✓ API healthy, ✓ Keycloak reachable
97
- ```
98
-
99
- ---
100
-
101
- ## Step 4 — Pull Ollama Model
102
-
103
- ```bash
104
- # On the VPS (this downloads ~2GB, takes a few minutes):
105
- docker exec tco-ollama ollama pull llama3.2-vision
106
-
107
- # Verify:
108
- docker exec tco-ollama ollama list
109
- # Should show: llama3.2-vision
110
- ```
111
-
112
- ---
113
-
114
- ## Step 5 — Configure Keycloak
115
-
116
- ```bash
117
- # Open in browser:
118
- https://auth.YOURDOMAIN.com/admin
119
-
120
- # Login with: admin / (password set during server-setup.sh)
121
- ```
122
-
123
- 1. **Import realm**: Realm Settings → Import → upload `keycloak/realm-export.json`
124
- 2. **Set SMTP** (for password reset emails):
125
- - Realm Settings → Email → configure with your SMTP provider
126
- 3. **Create first user** (optional — users can self-register):
127
- - Users → Add user → set email + temp password
128
- 4. **Verify redirect URIs**: Clients → tco-app → Settings → Valid redirect URIs should include:
129
- - `tco://*`
130
- - `exp://*`
131
- - `https://auth.expo.io/@YOUR_EXPO_USERNAME/tco`
132
-
133
- ---
134
-
135
- ## Step 6 — Configure Stripe Webhook
136
-
137
- 1. Go to Stripe Dashboard → Developers → Webhooks
138
- 2. Click "Add endpoint"
139
- 3. Endpoint URL: `https://YOURDOMAIN.com/api/v1/payments/webhook`
140
- 4. Events to listen for:
141
- - `checkout.session.completed`
142
- - `customer.subscription.deleted`
143
- - `customer.subscription.paused`
144
- - `invoice.payment_succeeded`
145
- - `invoice.payment_failed`
146
- 5. Copy the signing secret → put in `STRIPE_WEBHOOK_SECRET` env var
147
- 6. Re-run `bash scripts/deploy.sh` to apply the new env var
148
-
149
- ---
150
-
151
- ## Step 7 — Generate App Icons (local, on your machine)
152
-
153
- ```bash
154
- # On your local machine in the repo:
155
- cd apps/travel-chaos-organizer/frontend
156
- npm install -g sharp-cli
157
- node ../../scripts/generate-icons.js
158
- # → creates icon.png, adaptive-icon.png, splash.png, favicon.png in assets/
159
- ```
160
-
161
- > If sharp-cli fails: open `assets/icon.svg` in a browser, screenshot at 1024×1024, save as `assets/icon.png`. Repeat for splash at 1284×2778.
162
-
163
- ---
164
-
165
- ## Step 8 — Test on Android with Expo Go (quickest)
166
-
167
- ```bash
168
- # On your local machine:
169
- cd apps/travel-chaos-organizer/frontend
170
- cp .env.production .env.local # use production config
171
- npx expo start --tunnel # --tunnel makes it reachable over internet
172
- ```
173
-
174
- 1. Install **Expo Go** from Play Store on your Android phone
175
- 2. Scan the QR code shown in the terminal
176
- 3. App opens on your phone with live reload
177
-
178
- **Test these flows in order:**
179
- - [ ] Onboarding slides swipe correctly, "Start" navigates to login
180
- - [ ] Login via Keycloak opens browser, redirects back to app
181
- - [ ] `/api/v1/users/me` returns plan (check Network tab or backend logs)
182
- - [ ] Create a trip → check it appears in list
183
- - [ ] Upload a PDF/screenshot → Ollama parses it → item appears in timeline
184
- - [ ] Parse success triggers confetti ✨
185
- - [ ] Trip countdown shows correct days
186
- - [ ] Score ring updates after adding flight/hotel items
187
- - [ ] Tap "↗" share button → share sheet opens with formatted text
188
- - [ ] Inbox shows parsed items without trip_id
189
- - [ ] Assign inbox item to trip
190
- - [ ] Go offline (airplane mode) → create trip → back online → syncs
191
- - [ ] Settings → Plan shows Free/Pro correctly
192
-
193
- ---
194
-
195
- ## Step 9 — Build Production APK with EAS
196
-
197
- ```bash
198
- # On your local machine (one-time setup):
199
- npm install -g eas-cli
200
- eas login # with your Expo account
201
-
202
- cd apps/travel-chaos-organizer/frontend
203
-
204
- # Preview build (sideloadable APK, no Play Store needed):
205
- eas build --profile preview --platform android
206
- # → ~10-15 min build time on EAS servers
207
- # → get download link by email + in Expo dashboard
208
- ```
209
-
210
- **Install on phone:**
211
- 1. Open the download link on your Android phone
212
- 2. Tap Install (allow "Install unknown apps" for your browser)
213
- 3. Done — this is the real app, no Expo Go needed
214
-
215
- ---
216
-
217
- ## Step 10 — Smoke Test Production
218
-
219
- ```bash
220
- bash scripts/smoke-test.sh
221
- # Tests: health, waitlist signup, event tracking, admin auth
222
- ```
223
-
224
- ```bash
225
- bash scripts/verify-tracking.sh
226
- # Checks: Sentry DSN, Telegram bot, Resend API, Stripe, Ollama, Cachly Redis
227
- ```
228
-
229
- ---
230
-
231
- ## Admin Dashboard
232
-
233
- ```
234
- https://YOURDOMAIN.com/admin
235
- Username: (ADMIN_USER from .env)
236
- Password: (ADMIN_PASSWORD from .env)
237
- ```
238
-
239
- Features:
240
- - See all users + their plan status
241
- - Manually upgrade/downgrade a user's plan
242
- - View telemetry events
243
- - View waitlist signups
244
- - Trigger drip email sequence (dry run first!)
245
-
246
- ---
247
-
248
- ## Drip Emails
249
-
250
- ```bash
251
- # Dry run first — see what would be sent:
252
- make drip-dry
253
- # or: curl -X POST https://YOURDOMAIN.com/admin/drip/run?dry_run=true -u admin:password
254
-
255
- # Actually send:
256
- make drip-run
257
- ```
258
-
259
- Set up a cron job on the VPS to run daily:
260
- ```bash
261
- # As tco user — add to crontab:
262
- 0 9 * * * curl -s -X POST https://YOURDOMAIN.com/admin/drip/run -u ADMIN_USER:ADMIN_PASSWORD
263
- ```
264
-
265
- ---
266
-
267
- ## Backups
268
-
269
- ```bash
270
- # Manual backup:
271
- bash scripts/backup.sh
272
- # → creates timestamped pg_dump in backups/
273
-
274
- # Docker backup profile (scheduled):
275
- docker compose --profile backup run backup
276
- ```
277
-
278
- Backups are kept for 30 days, stored in `backups/` on the VPS.
279
-
280
- ---
281
-
282
- ## Monitoring
283
-
284
- | What | Where |
285
- |------|-------|
286
- | App errors (mobile) | Sentry → your project |
287
- | Backend errors | `docker compose logs backend -f` |
288
- | Stripe payments | Stripe Dashboard → Events |
289
- | New users / signups | Telegram bot notifications |
290
- | Admin overview | `https://YOURDOMAIN.com/admin` |
291
-
292
- ---
293
-
294
- ## Common Issues
295
-
296
- **Parse fails / Ollama error**
297
- ```bash
298
- docker exec tco-ollama ollama list # is model downloaded?
299
- docker logs tco-ollama --tail 50 # any errors?
300
- curl http://localhost:11434/api/tags # is Ollama responding?
301
- ```
302
-
303
- **Login fails / Keycloak error**
304
- ```bash
305
- docker logs tco-keycloak --tail 50
306
- # Check redirect URIs in Keycloak client config
307
- # Check EXPO_PUBLIC_KEYCLOAK_URL matches exactly (no trailing slash)
308
- ```
309
-
310
- **Stripe webhook returns 400**
311
- ```bash
312
- docker logs tco-backend --tail 50
313
- # Check STRIPE_WEBHOOK_SECRET is the signing secret (not the API key)
314
- # In Stripe Dashboard: Webhooks → your endpoint → "Signing secret" (not "Secret key")
315
- ```
316
-
317
- **Push notifications not arriving**
318
- - Expo Go: notifications don't work in Expo Go — use EAS Preview build
319
- - Check device has notifications enabled for the app
320
- - event_at must be in the future for reminders to schedule
321
-
322
- ---
323
-
324
- ## Branch
325
-
326
- All code is on: `claude/plan-mvp-project-1ORlN`
327
-
328
- Merge to `main` when ready to ship.
@@ -1,57 +0,0 @@
1
- .PHONY: up down build logs ps health smoke migrate migrate-history backup deploy setup-env drip-dry drip-run shell-backend shell-db restart-backend caddy-reload
2
-
3
- up:
4
- docker compose up -d
5
-
6
- down:
7
- docker compose down
8
-
9
- build:
10
- docker compose build
11
-
12
- logs:
13
- docker compose logs -f --tail=100
14
-
15
- ps:
16
- docker compose ps
17
-
18
- health:
19
- bash scripts/health-check.sh
20
-
21
- smoke:
22
- bash scripts/smoke-test.sh
23
-
24
- migrate:
25
- docker compose exec backend alembic upgrade head
26
-
27
- migrate-history:
28
- docker compose exec backend alembic history
29
-
30
- backup:
31
- docker compose --profile backup run --rm backup
32
-
33
- deploy:
34
- bash scripts/deploy.sh
35
-
36
- setup-env:
37
- bash scripts/configure-env.sh
38
-
39
- drip-dry:
40
- curl -s -u "$$(grep ADMIN_USER .env | cut -d= -f2):$$(grep ADMIN_PASSWORD .env | cut -d= -f2)" \
41
- -X POST "http://localhost:8000/admin/drip/run?dry_run=true" | python3 -m json.tool
42
-
43
- drip-run:
44
- curl -s -u "$$(grep ADMIN_USER .env | cut -d= -f2):$$(grep ADMIN_PASSWORD .env | cut -d= -f2)" \
45
- -X POST "http://localhost:8000/admin/drip/run" | python3 -m json.tool
46
-
47
- shell-backend:
48
- docker compose exec backend bash
49
-
50
- shell-db:
51
- docker compose exec postgres psql -U tco -d tco
52
-
53
- restart-backend:
54
- docker compose restart backend
55
-
56
- caddy-reload:
57
- docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile