@aitne-sh/aitne 0.1.7 → 0.1.9

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 (317) hide show
  1. package/README.md +256 -833
  2. package/agent-assets/agent-profiles/_safety.md +52 -20
  3. package/agent-assets/agent-profiles/browser-task.md +108 -0
  4. package/agent-assets/agent-profiles/conversational.md +3 -3
  5. package/agent-assets/agent-profiles/profile-importer.md +3 -3
  6. package/agent-assets/agent-profiles/routine-fetch-window.md +30 -19
  7. package/agent-assets/agent-profiles/routine.md +4 -3
  8. package/agent-assets/agents/context-index-reconcile/agent.md +52 -0
  9. package/agent-assets/agents/evening-review/agent.md +53 -0
  10. package/agent-assets/agents/hourly-check/agent.md +62 -0
  11. package/agent-assets/agents/monthly-review/agent.md +55 -0
  12. package/agent-assets/agents/morning-routine/agent.md +78 -0
  13. package/agent-assets/agents/roadmap-maintenance/agent.md +52 -0
  14. package/agent-assets/agents/skill-curation/agent.md +52 -0
  15. package/agent-assets/agents/user-profile-sweep-evening/agent.md +48 -0
  16. package/agent-assets/agents/user-profile-sweep-morning/agent.md +53 -0
  17. package/agent-assets/agents/weekly-review/agent.md +51 -0
  18. package/agent-assets/docs/concepts/agent-day.md +18 -11
  19. package/agent-assets/docs/concepts/auth-health.md +56 -10
  20. package/agent-assets/docs/concepts/backends-and-tiers.md +110 -41
  21. package/agent-assets/docs/concepts/costs-and-quotas.md +74 -19
  22. package/agent-assets/docs/concepts/delegated-mode.md +193 -75
  23. package/agent-assets/docs/concepts/memory-model.md +79 -34
  24. package/agent-assets/docs/concepts/observations.md +61 -11
  25. package/agent-assets/docs/concepts/process-keys.md +66 -17
  26. package/agent-assets/docs/concepts/routines.md +77 -32
  27. package/agent-assets/docs/concepts/safety-and-execution.md +50 -21
  28. package/agent-assets/docs/concepts/safety-model.md +62 -37
  29. package/agent-assets/docs/concepts/skills.md +38 -17
  30. package/agent-assets/docs/features/integrations/browser-history.md +195 -0
  31. package/agent-assets/docs/features/integrations/calendar.md +40 -30
  32. package/agent-assets/docs/features/integrations/git.md +20 -9
  33. package/agent-assets/docs/features/integrations/github.md +93 -35
  34. package/agent-assets/docs/features/integrations/mail.md +60 -17
  35. package/agent-assets/docs/features/integrations/notion.md +51 -11
  36. package/agent-assets/docs/features/integrations/obsidian.md +35 -7
  37. package/agent-assets/docs/features/lifestyle/git.md +45 -44
  38. package/agent-assets/docs/features/lifestyle/reading.md +50 -22
  39. package/agent-assets/docs/features/lifestyle/receipts.md +66 -21
  40. package/agent-assets/docs/features/lifestyle/travel-bookings.md +91 -14
  41. package/agent-assets/docs/features/memory-files/agent-journal.md +111 -50
  42. package/agent-assets/docs/features/memory-files/projects.md +75 -15
  43. package/agent-assets/docs/features/memory-files/roadmap.md +55 -10
  44. package/agent-assets/docs/features/memory-files/schedule.md +113 -70
  45. package/agent-assets/docs/features/memory-files/today.md +47 -21
  46. package/agent-assets/docs/features/memory-files/user-profile.md +67 -31
  47. package/agent-assets/docs/features/messaging/bang-commands.md +115 -28
  48. package/agent-assets/docs/features/messaging/dashboard-chat.md +43 -21
  49. package/agent-assets/docs/features/messaging/discord.md +46 -4
  50. package/agent-assets/docs/features/messaging/overview.md +40 -19
  51. package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +94 -27
  52. package/agent-assets/docs/features/messaging/slack.md +79 -14
  53. package/agent-assets/docs/features/messaging/telegram.md +25 -6
  54. package/agent-assets/docs/features/messaging/whatsapp.md +79 -14
  55. package/agent-assets/docs/features/operations/activity-and-conversations.md +45 -16
  56. package/agent-assets/docs/features/operations/approvals.md +53 -15
  57. package/agent-assets/docs/features/operations/backend-routing.md +75 -16
  58. package/agent-assets/docs/features/operations/cost-tracking.md +90 -17
  59. package/agent-assets/docs/features/operations/managed-chromium.md +221 -0
  60. package/agent-assets/docs/features/operations/notifications.md +58 -11
  61. package/agent-assets/docs/features/operations/quiet-hours.md +63 -40
  62. package/agent-assets/docs/features/operations/schedule-approaching.md +59 -16
  63. package/agent-assets/docs/features/routines/custom-routines.md +97 -23
  64. package/agent-assets/docs/features/routines/evening-review.md +75 -22
  65. package/agent-assets/docs/features/routines/hourly-check.md +150 -30
  66. package/agent-assets/docs/features/routines/morning-routine.md +60 -33
  67. package/agent-assets/docs/features/routines/weekly-review.md +65 -20
  68. package/agent-assets/docs/features/wiki/commands.md +37 -16
  69. package/agent-assets/docs/features/wiki/cost-and-approval.md +240 -0
  70. package/agent-assets/docs/features/wiki/dashboard.md +255 -0
  71. package/agent-assets/docs/features/wiki/overview.md +80 -12
  72. package/agent-assets/docs/features/wiki/search.md +248 -0
  73. package/agent-assets/docs/features/wiki/workspaces.md +254 -0
  74. package/agent-assets/docs/getting-started/01-what-is-this.md +64 -32
  75. package/agent-assets/docs/getting-started/02-first-steps.md +28 -10
  76. package/agent-assets/docs/getting-started/03-what-can-this-do.md +42 -21
  77. package/agent-assets/docs/getting-started/04-first-day.md +52 -20
  78. package/agent-assets/docs/glossary.md +285 -21
  79. package/agent-assets/docs/guides/add-a-custom-routine.md +74 -22
  80. package/agent-assets/docs/guides/backup-and-restore.md +92 -14
  81. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +62 -25
  82. package/agent-assets/docs/guides/build-your-wiki.md +33 -6
  83. package/agent-assets/docs/guides/change-which-model-handles-x.md +70 -9
  84. package/agent-assets/docs/guides/connect-a-new-mail-account.md +80 -15
  85. package/agent-assets/docs/guides/explore-with-trace-and-connect.md +32 -9
  86. package/agent-assets/docs/guides/import-knowledge-file.md +60 -39
  87. package/agent-assets/docs/guides/install-and-run.md +64 -19
  88. package/agent-assets/docs/guides/maintain-wiki-health.md +41 -10
  89. package/agent-assets/docs/guides/migrate-machines.md +86 -18
  90. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +119 -59
  91. package/agent-assets/docs/guides/pause-the-agent.md +71 -22
  92. package/agent-assets/docs/guides/reinstall-cleanly.md +102 -17
  93. package/agent-assets/docs/guides/setup-wizard.md +126 -56
  94. package/agent-assets/docs/guides/switch-default-backend.md +72 -17
  95. package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +31 -10
  96. package/agent-assets/docs/reference/api.md +162 -23
  97. package/agent-assets/docs/reference/cli-commands.md +55 -15
  98. package/agent-assets/docs/reference/config.md +246 -39
  99. package/agent-assets/docs/reference/disallowed-tools.md +42 -10
  100. package/agent-assets/docs/reference/keyboard-shortcuts.md +47 -10
  101. package/agent-assets/docs/reference/knowledge-layout.md +620 -0
  102. package/agent-assets/docs/reference/process-keys.md +126 -20
  103. package/agent-assets/docs/reference/skills.md +62 -18
  104. package/agent-assets/docs/troubleshooting/auth-failed.md +53 -19
  105. package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +96 -22
  106. package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +94 -20
  107. package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +77 -22
  108. package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +87 -22
  109. package/agent-assets/docs/troubleshooting/observation-not-detected.md +85 -21
  110. package/agent-assets/docs/troubleshooting/quota-exhausted.md +36 -6
  111. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +128 -51
  112. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +33 -11
  113. package/agent-assets/optimizer-skills/drift-analysis/SKILL.md +1 -1
  114. package/agent-assets/optimizer-skills/knowledge-map/SKILL.md +1 -1
  115. package/agent-assets/optimizer-skills/skill-curation/SKILL.md +2 -2
  116. package/agent-assets/sandbox/linux/aitne-chromium.apparmor +91 -0
  117. package/agent-assets/sandbox/macos/aitne-chromium.sb +156 -0
  118. package/agent-assets/skills/agent-actions/SKILL.md +122 -0
  119. package/agent-assets/skills/agent-create/SKILL.md +149 -0
  120. package/agent-assets/skills/attach/SKILL.md +3 -4
  121. package/agent-assets/skills/browser-history/SKILL.md +198 -0
  122. package/agent-assets/skills/browser-history-respond/SKILL.md +106 -0
  123. package/agent-assets/skills/browser-task/SKILL.md +169 -0
  124. package/agent-assets/skills/context/SKILL.md +45 -463
  125. package/agent-assets/skills/context/curation.json +2 -2
  126. package/agent-assets/skills/context/references/api.md +232 -0
  127. package/agent-assets/skills/context/references/required-frontmatter.md +73 -0
  128. package/agent-assets/skills/context/references/snapshot-files.md +103 -0
  129. package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +4 -4
  130. package/agent-assets/skills/docs-search/SKILL.md +17 -16
  131. package/agent-assets/skills/external-services/SKILL.delegated.claude.md +14 -26
  132. package/agent-assets/skills/external-services/SKILL.delegated.codex.md +14 -26
  133. package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +14 -26
  134. package/agent-assets/skills/external-services/SKILL.md +9 -262
  135. package/agent-assets/skills/external-services/SKILL.native.claude.md +6 -7
  136. package/agent-assets/skills/external-services/SKILL.native.codex.md +8 -9
  137. package/agent-assets/skills/external-services/SKILL.native.gemini.md +5 -6
  138. package/agent-assets/skills/external-services/references/calendar-apple.md +97 -0
  139. package/agent-assets/skills/external-services/references/calendar-google.md +72 -0
  140. package/agent-assets/skills/external-services/references/calendar-outlook.md +36 -0
  141. package/agent-assets/skills/external-services/references/github.md +17 -0
  142. package/agent-assets/skills/external-services/references/obsidian.md +49 -0
  143. package/agent-assets/skills/external-services/references/skills-crud.md +27 -0
  144. package/agent-assets/skills/gmail-lifestyle/SKILL.md +151 -0
  145. package/agent-assets/skills/gmail-lifestyle/references/receipts-api.md +93 -0
  146. package/agent-assets/skills/gmail-lifestyle/references/travel-bookings-api.md +75 -0
  147. package/agent-assets/skills/mail/SKILL.delegated.claude.md +15 -6
  148. package/agent-assets/skills/mail/SKILL.delegated.codex.md +9 -5
  149. package/agent-assets/skills/mail/SKILL.delegated.gemini.md +9 -5
  150. package/agent-assets/skills/mail/SKILL.md +9 -114
  151. package/agent-assets/skills/mail/SKILL.native.claude.md +1 -1
  152. package/agent-assets/skills/mail/SKILL.native.codex.md +1 -1
  153. package/agent-assets/skills/mail/SKILL.native.gemini.md +1 -1
  154. package/agent-assets/skills/mail/references/api.md +110 -0
  155. package/agent-assets/skills/mail/references/examples.md +70 -0
  156. package/agent-assets/skills/mail/references/providers.md +8 -8
  157. package/agent-assets/skills/managed-tasks/SKILL.md +472 -0
  158. package/agent-assets/skills/managed-tasks/references/errors.md +73 -0
  159. package/agent-assets/skills/managed-tasks/references/output-path.md +75 -0
  160. package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +86 -0
  161. package/agent-assets/skills/management-policy/SKILL.md +54 -125
  162. package/agent-assets/skills/management-policy/curation.json +1 -1
  163. package/agent-assets/skills/management-policy/references/policy-workflow.md +101 -0
  164. package/agent-assets/skills/management-policy/seeds/policy-file-shape.seed.json +1 -1
  165. package/agent-assets/skills/notify/SKILL.md +10 -82
  166. package/agent-assets/skills/notify/references/priority.md +65 -0
  167. package/agent-assets/skills/notion/SKILL.delegated.claude.md +2 -2
  168. package/agent-assets/skills/notion/SKILL.delegated.codex.md +2 -2
  169. package/agent-assets/skills/notion/SKILL.delegated.gemini.md +2 -2
  170. package/agent-assets/skills/notion/SKILL.md +6 -10
  171. package/agent-assets/skills/notion/SKILL.native.claude.md +11 -8
  172. package/agent-assets/skills/notion/SKILL.native.codex.md +10 -6
  173. package/agent-assets/skills/notion/SKILL.native.gemini.md +10 -6
  174. package/agent-assets/skills/observations/SKILL.md +25 -14
  175. package/agent-assets/skills/project-doc/SKILL.md +2 -6
  176. package/agent-assets/skills/project-doc/curation.json +3 -3
  177. package/agent-assets/skills/project-doc/seeds/project-shape.seed.json +7 -4
  178. package/agent-assets/skills/project-doc/seeds/slug-grammar.seed.json +3 -3
  179. package/agent-assets/skills/reading/SKILL.md +12 -2
  180. package/agent-assets/skills/reading/references/reading-taste.md +2 -2
  181. package/agent-assets/skills/roadmap/SKILL.md +43 -141
  182. package/agent-assets/skills/roadmap/curation.json +1 -1
  183. package/agent-assets/skills/roadmap/references/api.md +100 -0
  184. package/agent-assets/skills/roadmap/references/cross-check.md +80 -0
  185. package/agent-assets/skills/roadmap/references/migration.md +56 -0
  186. package/agent-assets/skills/roadmap/references/preparation-timeline.md +2 -2
  187. package/agent-assets/skills/roadmap/seeds/entry-types.seed.json +1 -1
  188. package/agent-assets/skills/schedule/SKILL.md +76 -104
  189. package/agent-assets/skills/schedule/references/batch.md +93 -0
  190. package/agent-assets/skills/schedule/references/errors.md +217 -0
  191. package/agent-assets/skills/schedule/references/model-selection.md +96 -0
  192. package/agent-assets/skills/schedule/references/recurrence-rule.md +86 -0
  193. package/agent-assets/skills/scheduled-managed-task/SKILL.md +59 -51
  194. package/agent-assets/skills/today/SKILL.md +32 -62
  195. package/agent-assets/skills/today/curation.json +3 -3
  196. package/agent-assets/skills/today/references/agent-plan-lifecycle.md +114 -0
  197. package/agent-assets/skills/today/seeds/section-shape.seed.json +1 -1
  198. package/agent-assets/skills/user-interview/SKILL.md +23 -67
  199. package/agent-assets/skills/user-interview/references/op-briefing.md +51 -0
  200. package/agent-assets/skills/user-interview/references/op-morning.md +59 -0
  201. package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +9 -1
  202. package/agent-assets/skills/user-profile/SKILL.md +54 -74
  203. package/agent-assets/skills/user-profile/curation.json +2 -2
  204. package/agent-assets/skills/user-profile/references/character-preferences.md +83 -0
  205. package/agent-assets/skills/user-profile/seeds/routing-table.seed.json +8 -8
  206. package/agent-assets/skills/user-profile/seeds/topic-files.seed.json +30 -2
  207. package/agent-assets/skills/wiki/wiki-ask/SKILL.md +0 -1
  208. package/agent-assets/skills/wiki/wiki-compile/SKILL.md +4 -5
  209. package/agent-assets/skills/wiki/wiki-connect/SKILL.md +0 -1
  210. package/agent-assets/skills/wiki/wiki-graduate/SKILL.md +0 -1
  211. package/agent-assets/skills/wiki/wiki-ingest/SKILL.md +0 -1
  212. package/agent-assets/skills/wiki/wiki-lint/SKILL.md +0 -1
  213. package/agent-assets/skills/wiki/wiki-trace/SKILL.md +0 -1
  214. package/agent-assets/skills/wiki/wiki-vault-rules/SKILL.md +0 -1
  215. package/agent-assets/system-prompts/routine-fetch-window.md +78 -0
  216. package/agent-assets/system-prompts/skill-index-instruction.md +26 -0
  217. package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +20 -11
  218. package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +18 -9
  219. package/agent-assets/task-flows/_partials/capture-user-info.md +24 -0
  220. package/agent-assets/task-flows/_partials/confirm-subflow.md +68 -0
  221. package/agent-assets/task-flows/_partials/dm-intent.long-horizon.md +35 -0
  222. package/agent-assets/task-flows/_partials/dm-intent.project.md +391 -0
  223. package/agent-assets/task-flows/_partials/mail-acquire.gmail.md +20 -11
  224. package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +18 -9
  225. package/agent-assets/task-flows/_partials/notion-acquire.notion.md +26 -15
  226. package/agent-assets/task-flows/browser_task.md +84 -0
  227. package/agent-assets/task-flows/github.assigned.md +1 -1
  228. package/agent-assets/task-flows/github.pull_request.review_requested.md +2 -2
  229. package/agent-assets/task-flows/github.workflow_run.failed.md +2 -2
  230. package/agent-assets/task-flows/knowledge.import.md +15 -15
  231. package/agent-assets/task-flows/message.received.dm.md +20 -17
  232. package/agent-assets/task-flows/message.received.dm_first.md +11 -15
  233. package/agent-assets/task-flows/routine.custom.md +6 -4
  234. package/agent-assets/task-flows/routine.evening_review.md +46 -170
  235. package/agent-assets/task-flows/routine.fetch_window.md +19 -14
  236. package/agent-assets/task-flows/routine.hourly_check.md +27 -15
  237. package/agent-assets/task-flows/routine.hourly_check.triage.md +1 -1
  238. package/agent-assets/task-flows/routine.monthly_review.md +67 -25
  239. package/agent-assets/task-flows/routine.morning_routine_journal.md +135 -0
  240. package/agent-assets/task-flows/routine.morning_routine_today.md +673 -0
  241. package/agent-assets/task-flows/routine.research_cluster_update.md +35 -0
  242. package/agent-assets/task-flows/routine.research_dispatch.md +38 -0
  243. package/agent-assets/task-flows/routine.research_offer_dm.md +125 -0
  244. package/agent-assets/task-flows/routine.research_wiki_summary.md +53 -0
  245. package/agent-assets/task-flows/routine.roadmap_refresh.md +68 -23
  246. package/agent-assets/task-flows/routine.today_refresh.md +4 -4
  247. package/agent-assets/task-flows/routine.user_profile_sweep.md +19 -20
  248. package/agent-assets/task-flows/routine.weekly_review.md +370 -86
  249. package/agent-assets/task-flows/schedule.approaching.md +0 -1
  250. package/agent-assets/task-flows/scheduled.dm.md +13 -13
  251. package/agent-assets/task-flows/scheduled.task.md +9 -9
  252. package/agent-assets/task-flows/setup.initial.md +171 -251
  253. package/agent-assets/task-flows/setup.update.md +2 -2
  254. package/agent-assets/task-flows/wiki.ingest_url.md +1 -1
  255. package/agent-assets/templates/README.md +27 -20
  256. package/agent-assets/templates/_index.md +42 -26
  257. package/agent-assets/templates/_manifest.json +34 -99
  258. package/agent-assets/templates/{user → identity}/_index.md +1 -1
  259. package/agent-assets/templates/identity/expertise.md +9 -0
  260. package/agent-assets/templates/identity/goals.md +9 -0
  261. package/agent-assets/templates/identity/people.md +13 -0
  262. package/agent-assets/templates/identity/personal.md +9 -0
  263. package/agent-assets/templates/{user → identity}/profile.md +2 -2
  264. package/agent-assets/templates/identity/work.md +9 -0
  265. package/agent-assets/templates/{dossiers → knowledge/dossiers}/_index.md +2 -2
  266. package/agent-assets/templates/{projects → plans/projects}/_active.base +1 -1
  267. package/agent-assets/templates/policies/_index.md +21 -0
  268. package/agent-assets/templates/{rules → policies}/journal-export.md +1 -1
  269. package/agent-assets/templates/policies/journal-format.md +168 -0
  270. package/agent-assets/templates/{rules/policies → policies/management-captures}/_index.md +2 -2
  271. package/agent-assets/templates/{rules → policies}/management.md +3 -3
  272. package/agent-assets/templates/{rules → policies}/mcp.md +1 -1
  273. package/agent-assets/templates/{rules → policies}/redaction.md +1 -1
  274. package/agent-assets/templates/{routines → policies/routines}/_index.md +1 -1
  275. package/agent-assets/templates/{routines → policies/routines}/evening.md +2 -2
  276. package/agent-assets/templates/{routines → policies/routines}/hourly.md +1 -1
  277. package/agent-assets/templates/{routines → policies/routines}/monthly.md +2 -2
  278. package/bin/aitne.mjs +21 -5
  279. package/package.json +5 -4
  280. package/scripts/commands/doctor.mjs +63 -5
  281. package/scripts/commands/run-now.mjs +187 -0
  282. package/scripts/commands/verify.mjs +264 -0
  283. package/scripts/lib/ports.d.mts +27 -0
  284. package/scripts/lib/ports.mjs +36 -0
  285. package/scripts/lib/read-api-token.mjs +176 -0
  286. package/scripts/start.mjs +2 -1
  287. package/agent-assets/docs/features/lifestyle/travel-time.md +0 -52
  288. package/agent-assets/docs/features/routines/monthly-review.md +0 -65
  289. package/agent-assets/skills/management-task-modify/SKILL.md +0 -203
  290. package/agent-assets/skills/management-task-register/SKILL.md +0 -330
  291. package/agent-assets/skills/management-task-stop/SKILL.md +0 -166
  292. package/agent-assets/skills/receipts/SKILL.md +0 -134
  293. package/agent-assets/skills/travel/SKILL.md +0 -132
  294. package/agent-assets/skills/travel-time/SKILL.md +0 -158
  295. package/agent-assets/task-flows/routine.morning_routine.md +0 -322
  296. package/agent-assets/task-flows/routine.morning_routine_initial.md +0 -204
  297. package/agent-assets/templates/context-index.md +0 -42
  298. package/agent-assets/templates/rules/_index.md +0 -19
  299. package/agent-assets/templates/rules/journal-format.md +0 -61
  300. package/agent-assets/templates/user/expertise.md +0 -7
  301. package/agent-assets/templates/user/goals.md +0 -7
  302. package/agent-assets/templates/user/people.md +0 -7
  303. package/agent-assets/templates/user/personal.md +0 -7
  304. package/agent-assets/templates/user/work.md +0 -7
  305. /package/agent-assets/templates/{agent/journal.md → journal/agent.md} +0 -0
  306. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/evening.md +0 -0
  307. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/hourly.md +0 -0
  308. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/monthly.md +0 -0
  309. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/morning.md +0 -0
  310. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/roadmap.md +0 -0
  311. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/weekly.md +0 -0
  312. /package/agent-assets/templates/{projects → plans/projects}/_index.md +0 -0
  313. /package/agent-assets/templates/{roadmap.md → plans/roadmap.md} +0 -0
  314. /package/agent-assets/templates/{routines → policies/routines}/morning.md +0 -0
  315. /package/agent-assets/templates/{routines → policies/routines}/weekly.md +0 -0
  316. /package/agent-assets/templates/{agent → state}/profile-questions.md +0 -0
  317. /package/agent-assets/templates/{today.md → state/today.md} +0 -0
@@ -26,9 +26,9 @@ tags:
26
26
  - lifestyle
27
27
  - git
28
28
  - github
29
- - automation
30
- - observation
31
- - architecture
29
+ - autonomous
30
+ - observations
31
+ - core
32
32
  status: stable
33
33
  ask_examples:
34
34
  - What is the My Life › Git page for?
@@ -46,7 +46,7 @@ ask_examples:
46
46
  - How much does one Architecture refresh cost?
47
47
  locale: en-US
48
48
  created: 2026-05-05
49
- updated: 2026-05-07
49
+ updated: 2026-05-28
50
50
  keywords:
51
51
  - my life
52
52
  - git
@@ -63,13 +63,26 @@ related:
63
63
  - features/integrations/git
64
64
  - features/integrations/github
65
65
  - features/routines/hourly-check
66
- - guides/refresh-repository-architecture
67
66
  - concepts/observations
68
67
  ui_anchors:
69
68
  - /git
70
69
  - /connections/repositories
71
70
  config_keys:
72
71
  - gitPollIntervalSeconds
72
+ process_keys:
73
+ - git.project.init
74
+ - git.project.update
75
+ - git.project.refresh_architecture
76
+ - git.project.retemplate
77
+ api_endpoints:
78
+ - PUT /api/repositories/:id/architecture-section
79
+ - POST /api/repositories/:id/management/init
80
+ - POST /api/repositories/:id/management/refresh-architecture
81
+ - POST /api/repositories/:id/management/scan
82
+ context_files:
83
+ - knowledge/repos/<slug>/overview.md
84
+ - knowledge/repos/<slug>/README.md
85
+ - journal/repos/<slug>/<date>.md
73
86
  ---
74
87
 
75
88
  # My Life — Git
@@ -87,8 +100,7 @@ mirror of the source README.
87
100
 
88
101
  The page lists every repository registered on
89
102
  **Connections → Repositories** and exposes three collapsible sections
90
- per repo (now **all open by default** so the controls are visible at
91
- a glance):
103
+ per repo (all open by default so the controls are visible at a glance):
92
104
 
93
105
  1. **Polling** — overrides the global `gitPollIntervalSeconds` for
94
106
  this repository alone. Useful when one repo is high-traffic and
@@ -103,12 +115,12 @@ a glance):
103
115
  3. **Daily git management** — opt-in per repo. Enabling it does three
104
116
  distinct kinds of work, on different cadences:
105
117
  - On the first **Run init now** click, writes the curated
106
- `git/<slug>/overview.md` skeleton, mirrors the source `README.*`
107
- to `git/<slug>/README.md`, and **automatically queues a
108
- one-shot Architecture refresh** so the AI agent fills in the
109
- deep Architecture section for you.
110
- - Once a day, the `repository-management-cron` observer iterates
111
- enabled rows and writes `git/<slug>/journal/YYYY-MM-DD.md` if
118
+ `knowledge/repos/<slug>/overview.md` skeleton, mirrors the source
119
+ `README.*` to `knowledge/repos/<slug>/README.md`, and
120
+ **automatically queues a one-shot Architecture refresh** so the AI
121
+ agent fills in the deep Architecture section for you.
122
+ - Once a day, the `RepositoryManagementCron` observer iterates
123
+ enabled rows and writes `journal/repos/<slug>/YYYY-MM-DD.md` if
112
124
  there was activity, plus a one-line entry under
113
125
  `## Daily Activity Log` in `overview.md`.
114
126
  - **Refresh architecture** (the button) re-runs the Architecture
@@ -121,8 +133,9 @@ The agent never pushes, amends, or force-resets. Read-only by design.
121
133
 
122
134
  ## Architecture Section — Deep AI Analysis
123
135
 
124
- The `## Architecture` block of `git/<slug>/overview.md` is wrapped in
125
- `<!-- architecture:start -->` / `<!-- architecture:end -->` markers
136
+ The `## Architecture` block of `knowledge/repos/<slug>/overview.md` is
137
+ wrapped in `<!-- architecture:start -->` / `<!-- architecture:end -->`
138
+ markers
126
139
  and contains a **module map, runtime shape, data flow, persistence
127
140
  model, integrations, build pipeline, and design choices** produced by
128
141
  a Sonnet-class agent that reads the actual code.
@@ -137,8 +150,8 @@ a Sonnet-class agent that reads the actual code.
137
150
  re-copies the source README into the slug directory before queueing
138
151
  the agent run, so the mirror stays in sync with what the agent
139
152
  actually reads.
140
- - **Never automatically** — there is no weekly/monthly cron that
141
- refreshes Architecture. This is by design: each refresh costs one
153
+ - **Never automatically** — there is no recurring cron that refreshes
154
+ Architecture. This is by design: each refresh costs one
142
155
  Sonnet session, and the analysis is durable across daily journal
143
156
  appends. If you want a recurring refresh, click the button on
144
157
  whatever cadence makes sense for the repo (after a big refactor,
@@ -163,8 +176,8 @@ for recovery.
163
176
 
164
177
  ## README Mirror
165
178
 
166
- `git/<slug>/README.md` is a **mechanical verbatim copy** of the
167
- repository's `README.*` (whichever extension exists, with `.md`
179
+ `knowledge/repos/<slug>/README.md` is a **mechanical verbatim copy** of
180
+ the repository's `README.*` (whichever extension exists, with `.md`
168
181
  preferred). It is refreshed on:
169
182
 
170
183
  - Every **Run init now** (initial mirror).
@@ -202,13 +215,13 @@ README is rewritten.
202
215
 
203
216
  ## What It Outputs
204
217
 
205
- Per repository, under `<contextDir>/git/<slug>/`:
218
+ Per repository, under `<contextDir>/`:
206
219
 
207
220
  | File | Source | Refresh cadence |
208
221
  |---|---|---|
209
- | `overview.md` | Daemon (skeleton + Notable Changes + journal log) + Agent (Architecture section) | Skeleton on init; Architecture on init/refresh; daily entry appended on each scan |
210
- | `README.md` | Verbatim copy of `<repo>/README.*` | Every init + every architecture refresh |
211
- | `journal/YYYY-MM-DD.md` | Daemon (commits + PR/workflow observations + diff stat) | Once per day per repo, when activity exists |
222
+ | `knowledge/repos/<slug>/overview.md` | Daemon (skeleton + Notable Changes + journal log) + Agent (Architecture section) | Skeleton on init; Architecture on init/refresh; daily entry appended on each scan |
223
+ | `knowledge/repos/<slug>/README.md` | Verbatim copy of `<repo>/README.*` | Every init + every architecture refresh |
224
+ | `journal/repos/<slug>/<date>.md` | Daemon (commits + PR/workflow observations + diff stat) | Once per day per repo, when activity exists |
212
225
 
213
226
  Polling additionally produces `observation` rows in the database;
214
227
  triggers spawn autonomous sessions whose task-flow is selected by the
@@ -217,7 +230,10 @@ trigger's process key.
217
230
  ## Where in the Dashboard
218
231
 
219
232
  - **My Life → Git** (`/git`) — this page. Polling, Triggers, and Daily
220
- git management are now all expanded by default.
233
+ git management are all expanded by default. The Daily-git-management
234
+ panel's buttons appear in lifecycle order — **Run init now → Refresh
235
+ architecture → Run today's scan now** — and each surfaces an inline
236
+ green confirmation on success or a red error message on failure.
221
237
  - **Connections → Repositories** (`/connections/repositories`) —
222
238
  register a repo (link a `localPath` and/or `owner/repo`), rename,
223
239
  set `local-only`, delete. The model-binding cards visible on this
@@ -227,24 +243,11 @@ trigger's process key.
227
243
  `github.pull_request.review_requested`, `github.workflow_run.failed`)
228
244
  were folded back into the default routing. To pin a different model
229
245
  for any of those, use **Settings → Models** instead.
230
- - **Knowledge** (`/knowledge?path=git/<slug>/overview`) — quick links
231
- on each Daily-git-management panel open the generated overview, the
232
- current day's journal, and (after the architecture refresh
233
- completes) the AI-rich Architecture section in context.
234
-
235
- ## UI polish (2026-05-07)
236
-
237
- - The Daily git management toggle is now a styled switch instead of a
238
- raw checkbox — same behavior, more legible state.
239
- - Init / Refresh architecture / Run today's scan now buttons surface
240
- inline confirmation messages (green) on success and inline error
241
- messages (red) on failure, instead of the previous silent return.
242
- - The button order on the panel is **Run init now → Refresh
243
- architecture → Run today's scan now**, matching the lifecycle order
244
- (one-time skeleton → one-time deep analysis → daily increments).
245
- - The Polling, Triggers, and Daily git management collapsibles all
246
- open by default so a freshly-loaded `/git` page exposes every
247
- per-repo control without an extra click.
246
+ - **Knowledge → Context Files** (`/knowledge?tab=context-files`) — quick
247
+ links on each Daily-git-management panel open the generated overview
248
+ (`knowledge/repos/<slug>/overview.md`), the current day's journal
249
+ (`journal/repos/<slug>/<date>.md`), and (after the architecture
250
+ refresh completes) the AI-rich Architecture section in context.
248
251
 
249
252
  ## Configuration
250
253
 
@@ -314,8 +317,6 @@ repository has a `localPath`:
314
317
 
315
318
  ## Related
316
319
 
317
- - [Refresh repository architecture](../../guides/refresh-repository-architecture.md)
318
- — focused walkthrough of the Refresh architecture button.
319
320
  - [Git integration](../integrations/git.md) — the underlying observer
320
321
  contract and `gitPollIntervalSeconds` semantics.
321
322
  - [GitHub integration](../integrations/github.md) — remote-side data
@@ -11,8 +11,8 @@ category: features
11
11
  summary: |
12
12
  Track books and Kindle highlights in a SQLite-backed reading list
13
13
  surfaced at /reading. The schema covers title/author/status plus a
14
- separate reading_highlights table populated from Kindle clipping
15
- imports.
14
+ separate reading_highlights table populated from Kindle imports
15
+ (My Clippings.txt or an Export Notebook email).
16
16
  section: lifestyle
17
17
  tags:
18
18
  - lifestyle
@@ -21,20 +21,27 @@ tags:
21
21
  status: stable
22
22
  ask_examples:
23
23
  - How do I add a book to my reading list?
24
+ - How do I import my Kindle highlights?
24
25
  - Can the agent recommend something from my reading list?
25
26
  - Where do reading-list items get stored?
26
27
  locale: en-US
27
28
  created: 2026-04-25
28
- updated: 2026-04-25
29
+ updated: 2026-05-28
29
30
  keywords:
30
31
  - reading
31
32
  - books
32
- - articles
33
+ - highlights
34
+ - kindle
33
35
  - read later
34
36
  related:
35
37
  - features/memory-files/user-profile
36
38
  - features/lifestyle/receipts
37
39
  - features/lifestyle/travel-bookings
40
+ api_endpoints:
41
+ - GET /api/books
42
+ - PATCH /api/books/:id
43
+ - POST /api/books/import-clippings
44
+ - POST /api/books/import-notebook-html
38
45
  ui_anchors:
39
46
  - /reading
40
47
  ---
@@ -44,22 +51,32 @@ ui_anchors:
44
51
  ## In One Sentence
45
52
 
46
53
  A reading list backed by the `books` and `reading_highlights` SQLite
47
- tables: imports Kindle clippings, tracks status (`reading`/`finished`/etc.),
48
- and surfaces the working set at `/reading`.
54
+ tables: imports your Kindle highlights, tracks each book's status
55
+ (`reading`, `completed`, or `abandoned`), and surfaces the working set
56
+ at `/reading`.
49
57
 
50
58
  ## What It Does
51
59
 
52
- - **Add** items by DM ("agent, add 'The Soul of a New Machine' to my
53
- reading list") the agent inserts into `books` via the daemon
54
- `/api/books` route.
55
- - **Import Kindle highlights** via `POST /api/books/import-clippings`,
56
- which parses a `My Clippings.txt` paste and populates the
57
- `reading_highlights` table linked back to `books.id`.
58
- - **List** what's outstanding on `/reading`.
59
- - **Mark complete** the agent updates the row's `status` and
60
- `completed_at` columns.
61
- - **Recommend** from the list during reactive turns when context
62
- invites it.
60
+ - **Import Kindle highlights** the primary way books enter the list.
61
+ Two pipelines, both of which create any missing `books` rows and link
62
+ every highlight back to `books.id` in the `reading_highlights` table:
63
+ - `POST /api/books/import-clippings` parses a pasted `My Clippings.txt`.
64
+ - `POST /api/books/import-notebook-html` parses the HTML of a Kindle
65
+ "Export Notebook" email.
66
+ - **List** the library on `/reading` or via `GET /api/books`
67
+ (filterable by `status` and `source`, paginated to 200 rows per call).
68
+ - **Mark complete or abandoned** — the agent updates an existing row via
69
+ `PATCH /api/books/:id`. Setting `status` to `completed` stamps
70
+ `completed_at` automatically; you can also set a 1–5 `rating` or
71
+ `notes`.
72
+ - **Recommend** from the list during reactive turns, and refresh the
73
+ reading-taste profile during weekly and monthly reviews.
74
+
75
+ There is **no bare "add a book" endpoint** — new books arrive through the
76
+ two Kindle import pipelines above (or are created internally during an
77
+ import); `PATCH` only edits books that already exist. If you ask the
78
+ agent to "add a book" conversationally, it works from whatever import
79
+ data it has rather than minting a free-form row.
63
80
 
64
81
  There is no Markdown context file for the reading list; the durable
65
82
  record is the SQLite row. If you want a parallel copy in your external
@@ -68,8 +85,13 @@ stays canonical in the database.
68
85
 
69
86
  ## When It Runs / How It Is Triggered
70
87
 
71
- Reactive only. There is no autonomous reading-list routine in the
72
- default install the operator drives the list shape.
88
+ There is no dedicated autonomous reading-list routine the operator
89
+ drives the list shape. The reading skill loads in two situations:
90
+
91
+ - **Reactively**, when you mention a book or highlight in a DM.
92
+ - **From existing routines** — the morning routine can mention what
93
+ you're currently reading, and the weekly and monthly reviews pull
94
+ reading progress and refresh the reading-taste profile.
73
95
 
74
96
  ## What It Outputs
75
97
 
@@ -83,9 +105,15 @@ default install — the operator drives the list shape.
83
105
 
84
106
  ## When Something Goes Wrong
85
107
 
86
- - A **missing add**: check the Activity row's tool calls — the agent
87
- hits `/api/books`, so a network or quota error there will surface in
88
- the audit log even when the chat reply looked fine.
108
+ - **An import that produced no books**: check the Activity row's tool
109
+ calls — the agent hits `/api/books/import-clippings` (or
110
+ `/import-notebook-html`), so a parse failure, oversized payload, or
111
+ network error there surfaces in the audit log even when the chat reply
112
+ looked fine. A common cause is pasting a partial or non-Kindle
113
+ clippings file, which yields zero parsed books.
114
+ - **An edit that didn't stick**: `PATCH /api/books/:id` returns 404 if
115
+ the id doesn't exist and 400 for an invalid `status` (only `reading`,
116
+ `completed`, `abandoned`) or an out-of-range `rating` (must be 1–5).
89
117
 
90
118
  ## Related
91
119
 
@@ -3,6 +3,11 @@ schema_version: 1
3
3
  slug: features/lifestyle/receipts
4
4
  title: Receipts
5
5
  id: receipts
6
+ aliases:
7
+ - receipts
8
+ - invoices
9
+ - expenses
10
+ - receipt files
6
11
  category: features
7
12
  summary: |
8
13
  A SQLite-backed log of receipt and invoice attachments the Gmail
@@ -12,14 +17,29 @@ section: lifestyle
12
17
  tags:
13
18
  - lifestyle
14
19
  - receipts
20
+ - mail
21
+ - integrations
15
22
  status: stable
16
23
  ask_examples:
17
24
  - Where are my receipts stored?
18
25
  - How do I save a receipt to my Obsidian vault?
19
26
  - What does the receipts table track?
27
+ - What receipts haven't I saved yet?
20
28
  locale: en-US
21
29
  created: 2026-04-25
22
- updated: 2026-04-26
30
+ updated: 2026-05-28
31
+ keywords:
32
+ - receipt
33
+ - invoice
34
+ - expense
35
+ - attachment
36
+ - PDF
37
+ - gmail receipts
38
+ api_endpoints:
39
+ - GET /api/receipts
40
+ - GET /api/receipts/summary
41
+ - POST /api/receipts/:id/download
42
+ - PATCH /api/receipts/:id
23
43
  related:
24
44
  - features/lifestyle/reading
25
45
  - features/lifestyle/travel-bookings
@@ -30,39 +50,64 @@ related:
30
50
 
31
51
  ## In One Sentence
32
52
 
33
- Receipts are PDF / image attachments the Gmail observer flags as
34
- receipts or invoices; their metadata lives in the `receipts` SQLite
35
- table, and the agent can export the original file into your external
53
+ Receipts are PDF / image attachments the Gmail observer detects while
54
+ scanning your mail; their metadata lives in the `receipts` SQLite
55
+ table, and the agent can save the original file into your external
36
56
  Obsidian vault on request.
37
57
 
38
- ## What It Does
58
+ ## How Detection Works
59
+
60
+ The Gmail observer scans travel-booking emails for PDF / image
61
+ attachments and retains other generic documents it finds. Each detected
62
+ attachment inserts a row into the `receipts` table, keyed uniquely on
63
+ `(account_id, provider_msg_id, attachment_id)` so re-scans are
64
+ idempotent. Columns:
39
65
 
40
- - The Gmail observer auto-detects receipt / invoice attachments while
41
- scanning travel-booking and document mail.
42
- - Each detection inserts a row into the `receipts` table
43
- (`provider_msg_id`, `attachment_id`, `filename`, `mime_type`,
44
- `size_bytes`, `category`, `obsidian_path`, `saved_at`, `account_id`).
45
- - The agent surfaces summaries via the `/api/receipts` and
46
- `/api/receipts/summary` HTTP routes.
47
- - On request, the agent downloads the attachment via
48
- `POST /api/receipts/:id/download`, writes it into the external
49
- Obsidian vault under `receipts/YYYY/MM/<merchant>-<date>.<ext>`, and
50
- patches the row's `obsidian_path` / `saved_at` columns.
66
+ - `category` `document` or `travel` (nullable until classified)
67
+ - `provider_msg_id`, `attachment_id`, `account_id` — locate the source
68
+ attachment in the unified mail registry
69
+ - `filename`, `mime_type`, `size_bytes` — attachment metadata
70
+ - `obsidian_path`, `saved_at` `NULL` until you save the file to your
71
+ vault (see below)
72
+ - `id`, `created_at` — row identity and detection time
51
73
 
52
74
  There is no Markdown context file for receipts; the durable record is
53
75
  the SQLite row plus the optional Obsidian copy.
54
76
 
77
+ ## Saving a Receipt to Your Vault
78
+
79
+ Saving is a two-step flow — the download endpoint never writes to the
80
+ vault by itself:
81
+
82
+ 1. The agent downloads the original bytes via
83
+ `POST /api/receipts/:id/download`, which streams the raw attachment
84
+ (resolved through the mail registry by `account_id`; oversized files
85
+ over 100 MB and orphaned rows with a null `account_id` are rejected).
86
+ 2. The agent writes the file into your **external** Obsidian vault — not
87
+ the primary management vault — under the convention
88
+ `receipts/YYYY/MM/<merchant>-<date>.<ext>` (e.g.
89
+ `receipts/2026/04/amazon-2026-04-12.pdf`), then records that path
90
+ with `PATCH /api/receipts/:id` (body `{"obsidianPath": "..."}`),
91
+ which also stamps `saved_at`.
92
+
93
+ To reclassify a receipt, the agent PATCHes `{"category": "travel"}`
94
+ (or `"document"`).
95
+
55
96
  ## Where in the Dashboard
56
97
 
57
98
  There is no dedicated tab today. Receipts surface inline when you ask
58
- for them in chat (e.g. "what receipts haven't I saved yet?"). The
59
- underlying API is documented in `agent-assets/skills/receipts/SKILL.md`.
99
+ for them in chat (e.g. "what receipts haven't I saved yet?"). List and
100
+ filter them with `GET /api/receipts` (`category`, `saved`, `limit`
101
+ params) and pull totals from `GET /api/receipts/summary`. The full API
102
+ is documented in
103
+ `agent-assets/skills/gmail-lifestyle/references/receipts-api.md`
104
+ (loaded by the `gmail-lifestyle` skill).
60
105
 
61
106
  ## Configuration
62
107
 
63
- The detection runs as part of the Gmail observer; see
64
- [Mail](../integrations/mail.md). The Obsidian save path follows the
65
- external vault convention `receipts/YYYY/MM/<merchant>-<date>.<ext>`.
108
+ Detection runs as part of the Gmail observer; see
109
+ [Mail](../integrations/mail.md). The save target follows the external
110
+ vault convention `receipts/YYYY/MM/<merchant>-<date>.<ext>`.
66
111
 
67
112
  ## Related
68
113
 
@@ -3,42 +3,119 @@ schema_version: 1
3
3
  slug: features/lifestyle/travel-bookings
4
4
  title: Travel Bookings
5
5
  id: travel-bookings
6
+ aliases:
7
+ - travel
8
+ - bookings
9
+ - flights
10
+ - hotels
11
+ - trains
6
12
  category: features
7
13
  summary: |
8
- A lightweight log of trips, flights, hotels, and confirmation
9
- numbers. The agent appends to it from confirmation emails or DMs.
14
+ A log of trips, flights, hotels, restaurants, and confirmation
15
+ numbers that the agent builds automatically from booking-confirmation
16
+ emails. The morning routine surfaces upcoming travel.
10
17
  section: lifestyle
11
18
  tags:
12
19
  - lifestyle
13
20
  - travel
21
+ - mail
22
+ - integrations
14
23
  status: stable
15
24
  ask_examples:
16
- - How do I log a flight?
25
+ - How does the agent track my flights and hotels?
17
26
  - Will the agent remind me about my upcoming trip?
27
+ - Where are my travel bookings stored?
18
28
  locale: en-US
19
29
  created: 2026-04-25
20
- updated: 2026-04-25
30
+ updated: 2026-05-28
31
+ keywords:
32
+ - flight
33
+ - hotel
34
+ - booking
35
+ - trip
36
+ - itinerary
37
+ - trains
38
+ - restaurants
39
+ - confirmation number
21
40
  related:
22
- - features/lifestyle/travel-time
41
+ - features/integrations/mail
42
+ - features/lifestyle/receipts
43
+ - features/routines/morning-routine
44
+ api_endpoints:
45
+ - /api/travel-bookings
46
+ - /api/travel-bookings/upcoming
47
+ process_keys:
48
+ - gmail_classify
49
+ - routine.morning_routine
50
+ ui_anchors:
51
+ - /trip
23
52
  ---
24
53
 
25
54
  # Travel Bookings
26
55
 
27
56
  ## In One Sentence
28
57
 
29
- A trip log the agent appends to from confirmation emails and DMs,
30
- referenced by the morning routine on travel days.
58
+ A trip log the agent builds automatically from booking-confirmation
59
+ emails, surfaced by the morning routine on travel days.
31
60
 
32
61
  ## What It Does
33
62
 
34
- - Captures trip dates, modes, and confirmation numbers.
35
- - Surfaces in the morning routine on the day of departure.
36
- - Cross-references the travel-time skill for door-to-airport math.
63
+ The mail observer watches your connected mail accounts for booking
64
+ confirmations from airlines, hotels, online travel agencies, restaurant
65
+ reservation platforms, and rail/bus services. When a message is
66
+ classified as travel, the daemon extracts the details and stores a row
67
+ in the `travel_bookings` SQLite table:
68
+
69
+ - **Type** — `flight`, `hotel`, `restaurant`, `train`, `bus`, or `other`.
70
+ - **Provider** — e.g. the airline or hotel chain.
71
+ - **Dates** — `start_date` and (where present) `end_date`.
72
+ - **Confirmation number**, **amount**, and **currency**.
73
+
74
+ Each booking is keyed by its source message, so re-reading the same
75
+ confirmation email never creates a duplicate row.
76
+
77
+ ## How Bookings Get Created
78
+
79
+ Bookings are extracted from email only — there is no manual "log a
80
+ flight" command or DM shortcut. To start capturing travel, connect a
81
+ mail account (see [Mail](features/integrations/mail)) and let the
82
+ classifier do the rest. The flow is:
83
+
84
+ 1. The mail poller fetches new messages.
85
+ 2. The classifier (`gmail_classify`, lite tier) tags travel
86
+ confirmations.
87
+ 3. The daemon parses the booking and inserts it into `travel_bookings`.
88
+
89
+ ## Where Bookings Surface
90
+
91
+ - **Morning routine.** On travel days the morning routine
92
+ (`routine.morning_routine`) surfaces upcoming trips in your briefing.
93
+ A booking with a `start_date` within roughly the last 30 days (or in
94
+ the future) keeps the travel-aware briefing helpers active.
95
+ - **Trip page.** The dashboard `/trip` page is the eventual home for an
96
+ itinerary timeline view. It is a placeholder while that view is built
97
+ — the underlying data already lives in the database and is reachable
98
+ via the API below.
99
+
100
+ ## API
101
+
102
+ Read-only and status-update access (read endpoints are autonomous; the
103
+ PATCH endpoint follows the standard write-safety tier):
37
104
 
38
- ## Where in the Dashboard
105
+ ```bash
106
+ # All bookings (optionally filter by type/status/date range)
107
+ curl -s "http://localhost:8321/api/travel-bookings?type=flight&limit=20"
39
108
 
40
- Surfaces inline in chat and via the morning briefing on travel days.
109
+ # Upcoming only, sorted by start date
110
+ curl -s "http://localhost:8321/api/travel-bookings/upcoming?limit=10"
41
111
 
42
- ## Related
112
+ # Mark a booking completed
113
+ curl -s -X PATCH "http://localhost:8321/api/travel-bookings/1" \
114
+ -H "Content-Type: application/json" \
115
+ -d '{"status": "completed"}'
116
+ ```
43
117
 
44
- - [Travel Time](travel-time.md)
118
+ Filters on `GET /api/travel-bookings`: `type`
119
+ (`flight|hotel|restaurant|train|bus|other`), `status`
120
+ (`upcoming|completed|cancelled|all`), `from` / `to` (ISO date on
121
+ `start_date`), and `limit` (1–200, default 50).