@cachly-dev/mcp-server 0.10.65 → 0.10.66

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 (269) hide show
  1. package/dist/src/handlers/brain.js +1 -1
  2. package/dist/src/index.js +1 -1
  3. package/package.json +7 -1
  4. package/server.json +2 -2
  5. package/.env.test.example +0 -23
  6. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -50
  7. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  8. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -25
  9. package/.github/workflows/eas-build-android.yml +0 -58
  10. package/.github/workflows/eas-update.yml +0 -55
  11. package/.github/workflows/publish.yml +0 -72
  12. package/BENCH.md +0 -113
  13. package/CHANGELOG.md +0 -653
  14. package/Dockerfile +0 -16
  15. package/LAUNCH_TEXTS.md +0 -182
  16. package/PROGRESS.md +0 -141
  17. package/STRATEGY.md +0 -228
  18. package/VISION_10X.md +0 -133
  19. package/apps/travel-chaos-organizer/.env.example +0 -49
  20. package/apps/travel-chaos-organizer/DEPLOY.md +0 -328
  21. package/apps/travel-chaos-organizer/Makefile +0 -57
  22. package/apps/travel-chaos-organizer/README.md +0 -159
  23. package/apps/travel-chaos-organizer/backend/.env.example +0 -10
  24. package/apps/travel-chaos-organizer/backend/Dockerfile +0 -25
  25. package/apps/travel-chaos-organizer/backend/alembic/env.py +0 -56
  26. package/apps/travel-chaos-organizer/backend/alembic/script.py.mako +0 -24
  27. package/apps/travel-chaos-organizer/backend/alembic/versions/.gitkeep +0 -0
  28. package/apps/travel-chaos-organizer/backend/alembic/versions/0001_stripe_customer_id.py +0 -24
  29. package/apps/travel-chaos-organizer/backend/alembic/versions/0002_telegram_chat_id.py +0 -24
  30. package/apps/travel-chaos-organizer/backend/alembic.ini +0 -39
  31. package/apps/travel-chaos-organizer/backend/app/__init__.py +0 -0
  32. package/apps/travel-chaos-organizer/backend/app/auth/__init__.py +0 -0
  33. package/apps/travel-chaos-organizer/backend/app/auth/keycloak.py +0 -81
  34. package/apps/travel-chaos-organizer/backend/app/config.py +0 -66
  35. package/apps/travel-chaos-organizer/backend/app/db/__init__.py +0 -0
  36. package/apps/travel-chaos-organizer/backend/app/db/database.py +0 -20
  37. package/apps/travel-chaos-organizer/backend/app/db/migrations/001_init.sql +0 -71
  38. package/apps/travel-chaos-organizer/backend/app/db/migrations/002_telemetry_freemium.sql +0 -31
  39. package/apps/travel-chaos-organizer/backend/app/db/migrations/003_telegram_chat_id.sql +0 -4
  40. package/apps/travel-chaos-organizer/backend/app/db/migrations/004_stripe_and_email.sql +0 -5
  41. package/apps/travel-chaos-organizer/backend/app/limiter.py +0 -4
  42. package/apps/travel-chaos-organizer/backend/app/logging_config.py +0 -25
  43. package/apps/travel-chaos-organizer/backend/app/main.py +0 -77
  44. package/apps/travel-chaos-organizer/backend/app/models/__init__.py +0 -0
  45. package/apps/travel-chaos-organizer/backend/app/models/schemas.py +0 -142
  46. package/apps/travel-chaos-organizer/backend/app/routers/__init__.py +0 -0
  47. package/apps/travel-chaos-organizer/backend/app/routers/admin.py +0 -237
  48. package/apps/travel-chaos-organizer/backend/app/routers/cache.py +0 -13
  49. package/apps/travel-chaos-organizer/backend/app/routers/events.py +0 -29
  50. package/apps/travel-chaos-organizer/backend/app/routers/export.py +0 -122
  51. package/apps/travel-chaos-organizer/backend/app/routers/inbox.py +0 -122
  52. package/apps/travel-chaos-organizer/backend/app/routers/items.py +0 -130
  53. package/apps/travel-chaos-organizer/backend/app/routers/mail.py +0 -108
  54. package/apps/travel-chaos-organizer/backend/app/routers/parse.py +0 -303
  55. package/apps/travel-chaos-organizer/backend/app/routers/payments.py +0 -179
  56. package/apps/travel-chaos-organizer/backend/app/routers/trips.py +0 -134
  57. package/apps/travel-chaos-organizer/backend/app/routers/users.py +0 -169
  58. package/apps/travel-chaos-organizer/backend/app/routers/waitlist.py +0 -37
  59. package/apps/travel-chaos-organizer/backend/app/services/__init__.py +0 -0
  60. package/apps/travel-chaos-organizer/backend/app/services/cache.py +0 -131
  61. package/apps/travel-chaos-organizer/backend/app/services/drip.py +0 -128
  62. package/apps/travel-chaos-organizer/backend/app/services/email.py +0 -61
  63. package/apps/travel-chaos-organizer/backend/app/services/errors.py +0 -44
  64. package/apps/travel-chaos-organizer/backend/app/services/notifier.py +0 -10
  65. package/apps/travel-chaos-organizer/backend/app/services/ollama.py +0 -101
  66. package/apps/travel-chaos-organizer/backend/app/services/parser.py +0 -22
  67. package/apps/travel-chaos-organizer/backend/app/services/quota.py +0 -85
  68. package/apps/travel-chaos-organizer/backend/app/services/sentry.py +0 -11
  69. package/apps/travel-chaos-organizer/backend/app/services/telemetry.py +0 -35
  70. package/apps/travel-chaos-organizer/backend/pytest.ini +0 -4
  71. package/apps/travel-chaos-organizer/backend/requirements-dev.txt +0 -6
  72. package/apps/travel-chaos-organizer/backend/requirements.txt +0 -25
  73. package/apps/travel-chaos-organizer/backend/tests/__init__.py +0 -0
  74. package/apps/travel-chaos-organizer/backend/tests/conftest.py +0 -223
  75. package/apps/travel-chaos-organizer/backend/tests/test_admin.py +0 -99
  76. package/apps/travel-chaos-organizer/backend/tests/test_cache.py +0 -142
  77. package/apps/travel-chaos-organizer/backend/tests/test_drip.py +0 -32
  78. package/apps/travel-chaos-organizer/backend/tests/test_e2e_chain.py +0 -121
  79. package/apps/travel-chaos-organizer/backend/tests/test_export.py +0 -48
  80. package/apps/travel-chaos-organizer/backend/tests/test_inbox.py +0 -107
  81. package/apps/travel-chaos-organizer/backend/tests/test_items.py +0 -138
  82. package/apps/travel-chaos-organizer/backend/tests/test_mail.py +0 -113
  83. package/apps/travel-chaos-organizer/backend/tests/test_ollama.py +0 -145
  84. package/apps/travel-chaos-organizer/backend/tests/test_parse_url.py +0 -98
  85. package/apps/travel-chaos-organizer/backend/tests/test_parser.py +0 -72
  86. package/apps/travel-chaos-organizer/backend/tests/test_payments.py +0 -163
  87. package/apps/travel-chaos-organizer/backend/tests/test_quota.py +0 -46
  88. package/apps/travel-chaos-organizer/backend/tests/test_search.py +0 -67
  89. package/apps/travel-chaos-organizer/backend/tests/test_trips.py +0 -123
  90. package/apps/travel-chaos-organizer/backend/tests/test_users.py +0 -52
  91. package/apps/travel-chaos-organizer/backups/.gitkeep +0 -0
  92. package/apps/travel-chaos-organizer/caddy/Caddyfile +0 -27
  93. package/apps/travel-chaos-organizer/docker-compose.node1.yml +0 -31
  94. package/apps/travel-chaos-organizer/docker-compose.override.yml +0 -14
  95. package/apps/travel-chaos-organizer/docker-compose.yml +0 -128
  96. package/apps/travel-chaos-organizer/frontend/.env.example +0 -13
  97. package/apps/travel-chaos-organizer/frontend/app/(app)/_layout.tsx +0 -80
  98. package/apps/travel-chaos-organizer/frontend/app/(app)/inbox.tsx +0 -166
  99. package/apps/travel-chaos-organizer/frontend/app/(app)/search.tsx +0 -130
  100. package/apps/travel-chaos-organizer/frontend/app/(app)/settings.tsx +0 -381
  101. package/apps/travel-chaos-organizer/frontend/app/(app)/trips/[id].tsx +0 -346
  102. package/apps/travel-chaos-organizer/frontend/app/(app)/trips.tsx +0 -363
  103. package/apps/travel-chaos-organizer/frontend/app/(app)/upgrade/cancel.tsx +0 -34
  104. package/apps/travel-chaos-organizer/frontend/app/(app)/upgrade/success.tsx +0 -35
  105. package/apps/travel-chaos-organizer/frontend/app/(auth)/login.tsx +0 -91
  106. package/apps/travel-chaos-organizer/frontend/app/_layout.tsx +0 -71
  107. package/apps/travel-chaos-organizer/frontend/app/auth.tsx +0 -29
  108. package/apps/travel-chaos-organizer/frontend/app/index.tsx +0 -16
  109. package/apps/travel-chaos-organizer/frontend/app/onboarding.tsx +0 -119
  110. package/apps/travel-chaos-organizer/frontend/app.config.ts +0 -54
  111. package/apps/travel-chaos-organizer/frontend/assets/adaptive-icon.svg +0 -66
  112. package/apps/travel-chaos-organizer/frontend/assets/icon.svg +0 -79
  113. package/apps/travel-chaos-organizer/frontend/assets/splash.svg +0 -15
  114. package/apps/travel-chaos-organizer/frontend/components/BottomSheet.tsx +0 -102
  115. package/apps/travel-chaos-organizer/frontend/components/ConfettiCannon.tsx +0 -107
  116. package/apps/travel-chaos-organizer/frontend/components/ConfirmDialog.tsx +0 -109
  117. package/apps/travel-chaos-organizer/frontend/components/ErrorBoundary.tsx +0 -45
  118. package/apps/travel-chaos-organizer/frontend/components/FileUploadButton.tsx +0 -19
  119. package/apps/travel-chaos-organizer/frontend/components/ImportSheet.tsx +0 -155
  120. package/apps/travel-chaos-organizer/frontend/components/OfflineBadge.tsx +0 -55
  121. package/apps/travel-chaos-organizer/frontend/components/QRCodeViewer.tsx +0 -80
  122. package/apps/travel-chaos-organizer/frontend/components/ScoreRing.tsx +0 -39
  123. package/apps/travel-chaos-organizer/frontend/components/Screen.tsx +0 -39
  124. package/apps/travel-chaos-organizer/frontend/components/Skeleton.tsx +0 -70
  125. package/apps/travel-chaos-organizer/frontend/components/SwipeableInboxItem.tsx +0 -121
  126. package/apps/travel-chaos-organizer/frontend/components/SwipeableTimelineItem.tsx +0 -70
  127. package/apps/travel-chaos-organizer/frontend/components/TimelineItem.tsx +0 -73
  128. package/apps/travel-chaos-organizer/frontend/components/TimelineItemDetail.tsx +0 -130
  129. package/apps/travel-chaos-organizer/frontend/components/Toast.tsx +0 -60
  130. package/apps/travel-chaos-organizer/frontend/components/ToastContext.tsx +0 -42
  131. package/apps/travel-chaos-organizer/frontend/components/TripCard.tsx +0 -146
  132. package/apps/travel-chaos-organizer/frontend/components/TripQRModal.tsx +0 -70
  133. package/apps/travel-chaos-organizer/frontend/components/UpgradeBanner.tsx +0 -44
  134. package/apps/travel-chaos-organizer/frontend/eas.json +0 -22
  135. package/apps/travel-chaos-organizer/frontend/hooks/useInbox.ts +0 -24
  136. package/apps/travel-chaos-organizer/frontend/hooks/useNetworkSync.ts +0 -60
  137. package/apps/travel-chaos-organizer/frontend/hooks/useTrips.ts +0 -112
  138. package/apps/travel-chaos-organizer/frontend/lib/api.ts +0 -223
  139. package/apps/travel-chaos-organizer/frontend/lib/auth.ts +0 -93
  140. package/apps/travel-chaos-organizer/frontend/lib/db.ts +0 -86
  141. package/apps/travel-chaos-organizer/frontend/lib/fileCache.ts +0 -54
  142. package/apps/travel-chaos-organizer/frontend/lib/haptics.ts +0 -13
  143. package/apps/travel-chaos-organizer/frontend/lib/notifications.ts +0 -112
  144. package/apps/travel-chaos-organizer/frontend/lib/offlineQueue.ts +0 -145
  145. package/apps/travel-chaos-organizer/frontend/lib/quota.tsx +0 -43
  146. package/apps/travel-chaos-organizer/frontend/lib/sentry.ts +0 -28
  147. package/apps/travel-chaos-organizer/frontend/lib/shareIntent.ts +0 -44
  148. package/apps/travel-chaos-organizer/frontend/package-lock.json +0 -13221
  149. package/apps/travel-chaos-organizer/frontend/package.json +0 -44
  150. package/apps/travel-chaos-organizer/frontend/tsconfig.json +0 -23
  151. package/apps/travel-chaos-organizer/keycloak/realm-export.json +0 -59
  152. package/apps/travel-chaos-organizer/landing/index.html +0 -773
  153. package/apps/travel-chaos-organizer/scripts/backup.sh +0 -14
  154. package/apps/travel-chaos-organizer/scripts/configure-env.sh +0 -82
  155. package/apps/travel-chaos-organizer/scripts/deploy.sh +0 -54
  156. package/apps/travel-chaos-organizer/scripts/health-check.sh +0 -36
  157. package/apps/travel-chaos-organizer/scripts/migrate.sh +0 -7
  158. package/apps/travel-chaos-organizer/scripts/server-setup.sh +0 -85
  159. package/apps/travel-chaos-organizer/scripts/smoke-test.sh +0 -29
  160. package/apps/travel-chaos-organizer/scripts/verify-tracking.sh +0 -71
  161. package/apps/travel-chaos-organizer/telegram-bot/.env.example +0 -3
  162. package/apps/travel-chaos-organizer/telegram-bot/Dockerfile +0 -6
  163. package/apps/travel-chaos-organizer/telegram-bot/bot.py +0 -504
  164. package/apps/travel-chaos-organizer/telegram-bot/requirements.txt +0 -3
  165. package/dist/src/__tests__/auth.test.d.ts +0 -1
  166. package/dist/src/__tests__/auth.test.js +0 -107
  167. package/dist/src/__tests__/auth.test.js.map +0 -1
  168. package/dist/src/__tests__/brain-flow.test.d.ts +0 -12
  169. package/dist/src/__tests__/brain-flow.test.js +0 -1241
  170. package/dist/src/__tests__/brain-flow.test.js.map +0 -1
  171. package/dist/src/__tests__/confidence.test.d.ts +0 -13
  172. package/dist/src/__tests__/confidence.test.js +0 -233
  173. package/dist/src/__tests__/confidence.test.js.map +0 -1
  174. package/dist/src/__tests__/e2e/api-auth.test.d.ts +0 -7
  175. package/dist/src/__tests__/e2e/api-auth.test.js +0 -162
  176. package/dist/src/__tests__/e2e/api-auth.test.js.map +0 -1
  177. package/dist/src/__tests__/e2e/api-health.test.d.ts +0 -7
  178. package/dist/src/__tests__/e2e/api-health.test.js +0 -95
  179. package/dist/src/__tests__/e2e/api-health.test.js.map +0 -1
  180. package/dist/src/__tests__/e2e/cli.test.d.ts +0 -10
  181. package/dist/src/__tests__/e2e/cli.test.js +0 -204
  182. package/dist/src/__tests__/e2e/cli.test.js.map +0 -1
  183. package/dist/src/__tests__/e2e/config.d.ts +0 -35
  184. package/dist/src/__tests__/e2e/config.js +0 -53
  185. package/dist/src/__tests__/e2e/config.js.map +0 -1
  186. package/dist/src/__tests__/e2e/funnel.test.d.ts +0 -13
  187. package/dist/src/__tests__/e2e/funnel.test.js +0 -90
  188. package/dist/src/__tests__/e2e/funnel.test.js.map +0 -1
  189. package/dist/src/__tests__/e2e/mcp-tools.test.d.ts +0 -7
  190. package/dist/src/__tests__/e2e/mcp-tools.test.js +0 -129
  191. package/dist/src/__tests__/e2e/mcp-tools.test.js.map +0 -1
  192. package/dist/src/__tests__/e2e/provisioning.test.d.ts +0 -15
  193. package/dist/src/__tests__/e2e/provisioning.test.js +0 -123
  194. package/dist/src/__tests__/e2e/provisioning.test.js.map +0 -1
  195. package/dist/src/__tests__/handlers-unit.test.d.ts +0 -12
  196. package/dist/src/__tests__/handlers-unit.test.js +0 -505
  197. package/dist/src/__tests__/handlers-unit.test.js.map +0 -1
  198. package/dist/src/__tests__/namespace.test.d.ts +0 -1
  199. package/dist/src/__tests__/namespace.test.js +0 -114
  200. package/dist/src/__tests__/namespace.test.js.map +0 -1
  201. package/dist/src/__tests__/rerank.test.d.ts +0 -1
  202. package/dist/src/__tests__/rerank.test.js +0 -125
  203. package/dist/src/__tests__/rerank.test.js.map +0 -1
  204. package/dist/src/__tests__/utils.test.d.ts +0 -1
  205. package/dist/src/__tests__/utils.test.js +0 -83
  206. package/dist/src/__tests__/utils.test.js.map +0 -1
  207. package/dist/src/bench/cachly-bench.d.ts +0 -39
  208. package/dist/src/bench/cachly-bench.js +0 -223
  209. package/dist/src/bench/cachly-bench.js.map +0 -1
  210. package/dist/src/bench/fixtures.d.ts +0 -37
  211. package/dist/src/bench/fixtures.js +0 -225
  212. package/dist/src/bench/fixtures.js.map +0 -1
  213. package/dist/src/search.test.d.ts +0 -1
  214. package/dist/src/search.test.js +0 -713
  215. package/dist/src/search.test.js.map +0 -1
  216. package/eslint.config.js +0 -16
  217. package/glama.json +0 -36
  218. package/llms.txt +0 -155
  219. package/packages/telegram-notify/SPLIT_PLAN.md +0 -106
  220. package/packages/telegram-notify/client.ts +0 -88
  221. package/packages/telegram-notify/emojis.json +0 -22
  222. package/packages/telegram-notify/pyproject.toml +0 -17
  223. package/packages/telegram-notify/telegram_notify/__init__.py +0 -3
  224. package/packages/telegram-notify/telegram_notify/client.py +0 -87
  225. package/packages/telegram-notify/telegram_notify/emojis.json +0 -22
  226. package/scripts/e2e-run.sh +0 -160
  227. package/scripts/generate-icons.js +0 -28
  228. package/smithery.yaml +0 -45
  229. package/src/__tests__/auth.test.ts +0 -147
  230. package/src/__tests__/brain-flow.test.ts +0 -1472
  231. package/src/__tests__/confidence.test.ts +0 -285
  232. package/src/__tests__/e2e/api-auth.test.ts +0 -182
  233. package/src/__tests__/e2e/api-health.test.ts +0 -103
  234. package/src/__tests__/e2e/cli.test.ts +0 -228
  235. package/src/__tests__/e2e/config.ts +0 -53
  236. package/src/__tests__/e2e/funnel.test.ts +0 -99
  237. package/src/__tests__/e2e/mcp-tools.test.ts +0 -191
  238. package/src/__tests__/e2e/provisioning.test.ts +0 -128
  239. package/src/__tests__/handlers-unit.test.ts +0 -677
  240. package/src/__tests__/namespace.test.ts +0 -126
  241. package/src/__tests__/rerank.test.ts +0 -141
  242. package/src/__tests__/utils.test.ts +0 -81
  243. package/src/auth.ts +0 -46
  244. package/src/bench/cachly-bench.ts +0 -263
  245. package/src/bench/fixtures.ts +0 -256
  246. package/src/ckg.ts +0 -103
  247. package/src/confidence.ts +0 -38
  248. package/src/embeddings.ts +0 -217
  249. package/src/handlers/advanced.ts +0 -647
  250. package/src/handlers/brain.ts +0 -2622
  251. package/src/handlers/cache.ts +0 -633
  252. package/src/handlers/context.ts +0 -222
  253. package/src/handlers/fedbrain.ts +0 -1232
  254. package/src/handlers/instances.ts +0 -180
  255. package/src/handlers/roadmap.ts +0 -201
  256. package/src/handlers/syndicate.ts +0 -460
  257. package/src/handlers/tco.ts +0 -345
  258. package/src/handlers/team.ts +0 -1249
  259. package/src/index.ts +0 -2815
  260. package/src/namespace.ts +0 -128
  261. package/src/notifier.ts +0 -5
  262. package/src/rerank.ts +0 -148
  263. package/src/search.test.ts +0 -848
  264. package/src/search.ts +0 -1781
  265. package/src/tools.ts +0 -2056
  266. package/src/utils.ts +0 -90
  267. package/test-features.cjs +0 -23
  268. package/tsconfig.json +0 -16
  269. 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