@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
@@ -14,22 +14,25 @@ summary: |
14
14
  notification spam.
15
15
  section: integrations
16
16
  tags:
17
- - integration
17
+ - integrations
18
18
  - git
19
- - observation
19
+ - observations
20
+ - polling
20
21
  status: stable
21
22
  ask_examples:
22
23
  - How do I add a git repo to watch?
23
24
  - Will the agent message me on every commit?
24
25
  - Can the agent push to my repos?
26
+ - How often does the daemon poll my repos?
25
27
  locale: en-US
26
28
  created: 2026-04-25
27
- updated: 2026-04-25
29
+ updated: 2026-05-28
28
30
  keywords:
29
31
  - git
30
32
  - commit
31
33
  - repository
32
34
  - observer
35
+ - polling
33
36
  related:
34
37
  - features/integrations/github
35
38
  - features/routines/hourly-check
@@ -38,12 +41,17 @@ ui_anchors:
38
41
  - /connections/repositories
39
42
  config_keys:
40
43
  - gitPollIntervalSeconds
44
+ process_keys:
45
+ - git.push.detected
46
+ - git.lifecycle.poll
47
+ api_endpoints:
48
+ - /api/git/log
49
+ - /api/git/diff
50
+ - /api/git/show
41
51
  ---
42
52
 
43
53
  # Git
44
54
 
45
- ## In One Sentence
46
-
47
55
  Add local git repositories to a watched set; the daemon polls them
48
56
  and the hourly check decides whether the recent activity is worth
49
57
  flagging.
@@ -72,19 +80,22 @@ by design.
72
80
 
73
81
  ## Where in the Dashboard
74
82
 
75
- - **Connections → Git** lists the watched paths and last-poll times.
83
+ - **Connections → Repositories** lists the watched paths and last-poll
84
+ times. Git repos are managed as part of the unified Repositories
85
+ surface (the same place that links a local checkout to its GitHub
86
+ remote).
76
87
 
77
88
  ## Configuration
78
89
 
79
90
  | Setting | Default | Notes |
80
91
  |---|---|---|
81
- | `gitPollIntervalSeconds` | 300 | How often to scan watched repos. |
92
+ | `gitPollIntervalSeconds` | 3600 | How often to scan watched repos. |
82
93
 
83
94
  ## When Something Goes Wrong
84
95
 
85
96
  - A **missing observation** for a commit you just made: check that the
86
- repo path is actually watched on `/connections/git` and that the
87
- poll has fired since.
97
+ repo path is actually watched on `/connections/repositories` and that
98
+ the poll has fired since (it runs every `gitPollIntervalSeconds`).
88
99
  - A repo that **never appears** in observations: the agent's own
89
100
  writes are filtered out (see `AgentWriteTracker`); make sure the
90
101
  commit was authored by you, not by an agent session.
@@ -7,36 +7,60 @@ aliases:
7
7
  - github integration
8
8
  - github poller
9
9
  - github notifications
10
+ - github delegated mode
10
11
  category: features
11
12
  summary: |
12
13
  GitHub is the remote-side counterpart to the Git integration. The
13
14
  daemon polls notifications and CI failures via the local `gh` CLI;
14
15
  high-priority signals (review requests, default-branch CI failures,
15
- security alerts, assignments) become direct DMs.
16
+ security alerts, assignments) become direct DMs. Watched repos are
17
+ registered as unified Repository rows, not config keys.
16
18
  section: integrations
17
19
  tags:
18
- - integration
20
+ - integrations
19
21
  - github
20
- - observation
22
+ - observations
23
+ - polling
21
24
  status: stable
22
25
  ask_examples:
23
26
  - How do I connect GitHub?
24
27
  - Will the agent message me on every CI failure?
25
28
  - Can the agent reply to GitHub issues?
29
+ - Where do I add a GitHub repo to watch?
26
30
  locale: en-US
27
31
  created: 2026-04-25
28
- updated: 2026-04-28
32
+ updated: 2026-05-28
33
+ keywords:
34
+ - github
35
+ - issue
36
+ - pull request
37
+ - PR review
38
+ - workflow run
39
+ - security alert
40
+ - delegated mode
41
+ - gh cli
42
+ - repositories
29
43
  related:
30
44
  - features/integrations/git
31
45
  - concepts/observations
46
+ - concepts/delegated-mode
32
47
  ui_anchors:
33
48
  - /connections/repositories
49
+ config_keys:
50
+ - githubPollIntervalSeconds
51
+ api_endpoints:
52
+ - PATCH /api/integrations/github
53
+ process_keys:
54
+ - github.pull_request.review_requested
55
+ - github.assigned
56
+ - github.security_alert
57
+ - github.workflow_run.failed
58
+ context_files:
59
+ - state/today.md
34
60
  ---
35
61
 
36
62
  # GitHub
37
63
 
38
- ## In One Sentence
39
-
40
64
  The daemon polls GitHub via the local `gh` CLI: review requests, CI
41
65
  failures on the default branch, security alerts, and assignments
42
66
  become DMs; everything else is recorded for the hourly check.
@@ -44,10 +68,14 @@ become DMs; everything else is recorded for the hourly check.
44
68
  ## What It Does
45
69
 
46
70
  - **Polls Notifications** every `githubPollIntervalSeconds` (default
47
- 600s) using ETag caching — 304s cost no rate-limit quota.
48
- - **Polls workflow_runs** per watched GitHub repository on the same
49
- cadence, filtered by `status=failure`. Watched repos can come from a
50
- local clone's GitHub `origin` or from an explicit `owner/repo` entry.
71
+ 1800s / 30 min) using ETag caching — 304 responses cost no
72
+ rate-limit quota.
73
+ - **Polls workflow_runs** per watched GitHub repository, filtered by
74
+ `status=failure`. Each repo's GitHub side comes from a unified
75
+ **Repository** row (a `owner/repo` remote, optionally paired with a
76
+ local clone — see [Setup](#setup)). Per-repo cadence overrides apply
77
+ to the workflow-runs side; the notifications poll always runs at the
78
+ global cadence.
51
79
  - **DMs the user** on the four high-priority triggers below; quieter
52
80
  signals are coalesced into the hourly check summary.
53
81
 
@@ -66,17 +94,17 @@ depending on your notify-skill settings) on:
66
94
  observation-only — they're the normal developer feedback loop).
67
95
 
68
96
  Each DM follows the notify skill's awareness-gate: if the agent already
69
- sees you triaging it in `today.md`, it stays silent and just logs.
97
+ sees you triaging it in `state/today.md`, it stays silent and just logs.
70
98
 
71
99
  ## Setup
72
100
 
73
101
  1. Install `gh`: `brew install gh` on macOS; see
74
102
  [cli.github.com](https://cli.github.com/) for other platforms.
75
103
  2. Authenticate: `gh auth login` (browser flow).
76
- 3. Add `owner/repo` entries to **Connections → GitHub**, or add local
77
- repository paths to **Connections Git Repositories**. For local
78
- paths, the poller derives `owner/name` from each repo's `origin`
79
- remote — non-GitHub remotes are silently skipped.
104
+ 3. Register the repos to watch on **Connections → Repositories**. Each
105
+ row links an `owner/repo` GitHub remote, an optional local clone, or
106
+ both. If you link only a local clone, the poller derives `owner/name`
107
+ from its `origin` remote — non-GitHub remotes are silently skipped.
80
108
  4. Restart the daemon (the poll interval is captured at start time).
81
109
 
82
110
  The daemon does NOT need a personal access token in its keychain — it
@@ -84,27 +112,39 @@ re-uses whatever `gh` already has.
84
112
 
85
113
  ## Cold-start behavior
86
114
 
87
- The first time the daemon polls a watched repo, it records the latest
88
- failed workflow runs **without emitting any events**. This prevents a
89
- flood of DMs about historical CI failures the user has already triaged.
90
- New failures landing after that warm-up are surfaced normally.
115
+ The first time the daemon polls a watched repo's **workflow runs**, it
116
+ records the latest failures **without emitting any events**. This
117
+ prevents a flood of DMs about historical CI failures you have already
118
+ triaged. New failures landing after that warm-up are surfaced normally.
119
+
120
+ The notifications side needs no warm-up: GitHub returns only unread
121
+ items, so there is no historical backlog to suppress.
91
122
 
92
123
  ## Where in the Dashboard
93
124
 
94
- - **Connections → GitHub** shows status and the `gh auth login`
95
- hint.
96
- - **Connections → GitHub** controls explicit `owner/repo` watched repos.
97
- When this list is non-empty, notification processing is scoped to it.
98
- - **Connections Git Repositories** controls local clone paths whose
99
- GitHub remotes are watched for workflow_run failures.
125
+ Everything lives on **Connections → Repositories**
126
+ (`/connections/repositories`):
127
+
128
+ - The GitHub integration card shows status, the `gh auth login` hint,
129
+ and the integration mode picker (see [Modes](#modes)).
130
+ - Each repository row links an `owner/repo` GitHub remote and/or a
131
+ local clone. When at least one row has a GitHub remote, notification
132
+ processing is scoped to those repos.
133
+ - Per-repo polling cadence, automation triggers, and daily git
134
+ management are configured on **My Life → Git** (`/git`), not here.
100
135
 
101
136
  ## Configuration
102
137
 
103
138
  | Setting | Default | Notes |
104
139
  |---|---|---|
105
- | `githubPollIntervalSeconds` | 600 (10 min) | Both poll cadences. Lower for faster review-request alerts at the cost of slightly more rate-limit budget. **Restart-required.** |
106
- | `gitRepos` | `[]` | Local repo paths to watch. |
107
- | `githubRepos` | `[]` | Direct remote repos in `owner/repo` form. Also scopes notification processing when non-empty. |
140
+ | `githubPollIntervalSeconds` | 1800 (30 min) | Global poll cadence. Lower for faster review-request alerts at the cost of slightly more rate-limit budget. **Restart-required.** |
141
+
142
+ Watched repos are no longer config keys. The old `gitRepos` /
143
+ `githubRepos` settings were removed at the unified-repositories
144
+ cutover — repos now live in the `repositories` table and are managed on
145
+ **Connections → Repositories**. Per-repo polling cadence is set on
146
+ **My Life → Git** and overrides the global interval for that repo's
147
+ workflow-runs poll.
108
148
 
109
149
  ## When Something Goes Wrong
110
150
 
@@ -123,16 +163,34 @@ New failures landing after that warm-up are surfaced normally.
123
163
  poller pre-checks `observations(source, ref)` before every emit. If
124
164
  it does, file a bug with the notification id.
125
165
 
126
- ## Delegated mode (coming soon)
127
-
128
- A future release will let Claude Code, Codex, or Gemini CLI handle
129
- GitHub directly via their native MCP / `gh` integrations, optionally
130
- replacing the daemon-side poller. Most users won't need this the
131
- built-in poller already covers the common surface — but it'll be
132
- useful if you'd rather skip the daemon-side polling entirely.
166
+ ## Modes
167
+
168
+ GitHub supports three integration modes: `direct` (default),
169
+ `delegated`, and `disabled`. Native mode is not offered the
170
+ backend-side connectors are read-only `gh` CLI wrappers that do not
171
+ need a daemon-spawned poller's bookkeeping.
172
+
173
+ - **direct** — the daemon's `GitHubPoller` runs as described above.
174
+ Use this when you want the daemon to own the poll schedule and to
175
+ emit DMs without the main backend having to wake up.
176
+ - **delegated** — the delegated-sync worker invokes the chosen
177
+ backend's read-only `gh` CLI surface on opt-in cadences (see
178
+ [Delegated Mode](../../concepts/delegated-mode.md) and
179
+ `docs/design/appendices/delegated-sync-opt-in.md`). The daemon
180
+ poller stays off; the lite-tier delegated session takes the polling
181
+ cost.
182
+ - **disabled** — neither the poller nor the delegated worker runs;
183
+ the integration is silent.
184
+
185
+ Pick the mode from the GitHub card on **Connections → Repositories**.
186
+ Mode changes go through the standard `PATCH /api/integrations/github`
187
+ flip-lock so the poller and the delegated worker never run
188
+ simultaneously.
133
189
 
134
190
  ## Related
135
191
 
136
192
  - [Git](git.md) — local repo file watcher (separate observer).
137
193
  - [Hourly Check](../routines/hourly-check.md) — the consumer of
138
194
  non-DM-priority observations.
195
+ - [Delegated Mode](../../concepts/delegated-mode.md) — how the
196
+ `delegated` mode polls without a daemon poller.
@@ -17,7 +17,7 @@ summary: |
17
17
  transport, not a separately exposed provider kind.)
18
18
  section: integrations
19
19
  tags:
20
- - integration
20
+ - integrations
21
21
  - mail
22
22
  - core
23
23
  status: stable
@@ -27,7 +27,7 @@ ask_examples:
27
27
  - How do I add a second mail account?
28
28
  locale: en-US
29
29
  created: 2026-04-25
30
- updated: 2026-04-25
30
+ updated: 2026-05-28
31
31
  keywords:
32
32
  - mail
33
33
  - gmail
@@ -36,22 +36,35 @@ keywords:
36
36
  - icloud
37
37
  - inbox
38
38
  - labels
39
+ - native mode
40
+ - delegated
41
+ - direct
42
+ - fts5
39
43
  related:
40
44
  - guides/connect-a-new-mail-account
41
45
  - features/routines/morning-routine
46
+ - concepts/delegated-mode
42
47
  ui_anchors:
43
48
  - /connections/mail
44
49
  api_endpoints:
45
50
  - /api/mail
51
+ - /api/mail/accounts
52
+ - /api/mail/search
53
+ config_keys:
54
+ - enabledMailProviders
55
+ - mailPollIntervalSeconds
56
+ - gmailPollIntervalSeconds
57
+ context_files:
58
+ - state/today.md
46
59
  ---
47
60
 
48
61
  # Mail
49
62
 
50
- ## In One Sentence
51
-
52
- Connect one or more mailboxes; the daemon polls them, classifies
53
- incoming threads, and lets the agent read / label / search via the
54
- `mail` skill.
63
+ Connect one or more mailboxes (Gmail, Outlook, Yahoo, iCloud, or any
64
+ IMAP server) and Aitne polls them, classifies incoming threads, and
65
+ lets the agent search / label / read via the `mail` skill. Search is
66
+ local backed by SQLite FTS5 so the agent doesn't need to round-trip
67
+ the provider for every query.
55
68
 
56
69
  ## What It Does
57
70
 
@@ -62,24 +75,52 @@ incoming threads, and lets the agent read / label / search via the
62
75
  - **Surface** the small set of mail items in the morning routine that
63
76
  actually need owner action.
64
77
 
65
- The agent does **not** send mail on your behalf. Drafting is supported
66
- (via the provider's draft API where available) but sending is an
67
- operator action.
78
+ The agent **prefers drafts** over sending. By convention it creates a
79
+ draft (`POST /mail/:account/drafts`) and lets you review and hit send
80
+ yourself. Direct send (`POST /mail/:account/messages/send`) is *not*
81
+ blocked — it is classified as an autonomous action, so the daemon does
82
+ not DM you for approval first. The agent only sends directly when it
83
+ judges you'd clearly want it to, and it tells you afterward; during the
84
+ hourly check the `mail` skill is hard read-only (no sending, drafting,
85
+ labeling, or filing).
68
86
 
69
87
  ## When It Runs / How It Is Triggered
70
88
 
71
- - A poller pulls new messages every `gmailPollIntervalSeconds` (or the
72
- per-provider equivalent) see Settings → Advanced.
89
+ - In `direct` mode a poller pulls new messages on a cadence. Gmail uses
90
+ `gmailPollIntervalSeconds` (default 600); IMAP-backed accounts (Yahoo,
91
+ iCloud, generic IMAP) use `mailPollIntervalSeconds` (default 180).
92
+ Adjust both under **Settings → Advanced**.
73
93
  - The morning routine reads the labeled queue and decides which need
74
94
  surfacing.
75
95
  - Reactive turns (you DM "what's in my mail?") use the `mail` skill on
76
96
  demand.
77
97
 
98
+ ## Integration Modes
99
+
100
+ Mail supports all four integration modes
101
+ (`direct | delegated | native | disabled`); each provider may sit in a
102
+ different mode.
103
+
104
+ | Provider | Direct | Delegated | Native | Notes |
105
+ |---|---|---|---|---|
106
+ | Gmail | ✓ | ✓ | ✓ (descriptor-driven) | Native mode uses Google's official Gmail MCP connector on the main backend; the connector POSTs observations back via `/api/observations`. |
107
+ | Outlook | ✓ | ✓ | ✓ (user-managed) | Native mode requires you to install your own MCP / skill harness on the main backend (`userManagedConnector: true`); the probe synthesises a user-managed result and skips the missing-variant gate. |
108
+ | Yahoo | ✓ | ✓ | — | IMAP transport. No native MCP variant. |
109
+ | iCloud | ✓ | ✓ | — | IMAP transport. No native MCP variant. |
110
+ | Generic IMAP | ✓ | ✓ | — | IMAP transport. No native MCP variant. |
111
+
112
+ Mode flips run through the §14.7 live probe + the per-key
113
+ `runtime_state.integration_flip_lock:<key>`. Changing the main
114
+ backend cascades unmatched `native` rows to `disabled`.
115
+
116
+ See [Delegated Mode](../../concepts/delegated-mode.md) for the full
117
+ mode lifecycle.
118
+
78
119
  ## What It Outputs
79
120
 
80
121
  - New threads land in the local `messages` table (FTS-indexed).
81
122
  - Classification labels are written via the provider API.
82
- - A short "mail" section in `today.md` when items qualified.
123
+ - A short "mail" section in `state/today.md` when items qualified.
83
124
 
84
125
  ## Where in the Dashboard
85
126
 
@@ -88,10 +129,11 @@ operator action.
88
129
 
89
130
  ## Configuration
90
131
 
91
- Per-account settings: provider kind (`gmail` / `outlook` / `yahoo` /
92
- `icloud`), credential store, label conventions, polling interval.
93
- Yahoo and iCloud use IMAP transport internally; the operator picks
94
- the kind, not the transport.
132
+ Per account you choose a provider kind (`gmail` / `outlook` / `yahoo` /
133
+ `icloud`) plus credentials, label conventions, and polling interval. You
134
+ pick the kind, not the transport Yahoo and iCloud connect over IMAP
135
+ under the hood, but that is an implementation detail. The set of enabled
136
+ providers is `enabledMailProviders` (default `["gmail"]`).
95
137
 
96
138
  ## When Something Goes Wrong
97
139
 
@@ -104,3 +146,4 @@ the kind, not the transport.
104
146
 
105
147
  - [Connect a new mail account](../../guides/connect-a-new-mail-account.md)
106
148
  - [Morning Routine](../routines/morning-routine.md)
149
+ - [Delegated Mode](../../concepts/delegated-mode.md)
@@ -12,31 +12,45 @@ summary: |
12
12
  Changes record observations consumed by the hourly check.
13
13
  section: integrations
14
14
  tags:
15
- - integration
15
+ - integrations
16
+ - notion
16
17
  - knowledge
17
- - observation
18
+ - observations
18
19
  status: stable
19
20
  ask_examples:
20
21
  - How do I connect Notion?
21
22
  - Will Notion notify me on every page change?
23
+ - What does Notion native mode do?
22
24
  locale: en-US
23
25
  created: 2026-04-25
24
- updated: 2026-04-25
26
+ updated: 2026-05-28
27
+ keywords:
28
+ - notion
29
+ - page
30
+ - database
31
+ - notion observer
32
+ - notion poller
33
+ - integration modes
25
34
  related:
26
35
  - features/integrations/obsidian
27
36
  - features/routines/hourly-check
37
+ - concepts/delegated-mode
38
+ - concepts/observations
28
39
  ui_anchors:
29
40
  - /connections/knowledge
30
41
  config_keys:
31
42
  - notionPollIntervalSeconds
43
+ api_endpoints:
44
+ - POST /api/integrations/:key/probe
45
+ - POST /api/observations
32
46
  ---
33
47
 
34
48
  # Notion
35
49
 
36
- ## In One Sentence
37
-
38
- A Notion integration polls a configured database / page set and
39
- records observations on change.
50
+ Aitne polls a configured Notion database or page set, records an
51
+ observation on change, and the hourly check decides whether anything
52
+ warrants surfacing. The agent can also read pages on demand through
53
+ the `notion` skill.
40
54
 
41
55
  ## What It Does
42
56
 
@@ -46,23 +60,49 @@ records observations on change.
46
60
 
47
61
  ## When It Runs / How It Is Triggered
48
62
 
49
- Continuous polling.
63
+ Continuous polling in `direct` mode. In `delegated` / `native` / `disabled`
64
+ modes the poller does not run — see Integration Modes below.
65
+
66
+ ## Integration Modes
67
+
68
+ Notion supports all four integration modes (`direct` / `delegated` /
69
+ `native` / `disabled`), selected from **Connections → Knowledge**.
70
+
71
+ - **`direct`** — the daemon polls Notion itself, records change
72
+ observations, and the hourly check consumes them.
73
+ - **`delegated`** — a delegated-sync worker runs on opt-in cadences;
74
+ observations are recorded the same way but on a different
75
+ schedule (see [Delegated Mode](../../concepts/delegated-mode.md)).
76
+ - **`native`** — the main backend reaches Notion through its own MCP
77
+ connector on demand; the daemon does no polling. Observations
78
+ flow in only when the main backend POSTs them in-turn via
79
+ `POST /api/observations`. Supported when the main backend is
80
+ Claude, Codex, or Gemini (each ships a Notion connector — e.g.
81
+ Claude's is `mcp__claude_ai_Notion__*`). OpenCode hosts no native
82
+ connectors, so selecting it as the main backend cascades Notion to
83
+ `disabled`.
84
+ - **`disabled`** — silence; no observations, no daemon access.
85
+
86
+ Switching modes requires the integration flip-lock probe to pass
87
+ (connector reachable, capabilities reported). See `POST /api/integrations/notion/probe`.
50
88
 
51
89
  ## Where in the Dashboard
52
90
 
53
- - **Connections → Knowledge** holds the integration token and target
54
- databases.
91
+ - **Connections → Knowledge** holds the integration token, target
92
+ databases, and the mode picker.
55
93
 
56
94
  ## Configuration
57
95
 
58
96
  | Setting | Default | Notes |
59
97
  |---|---|---|
60
- | `notionPollIntervalSeconds` | 300 | Polling interval. |
98
+ | `notionPollIntervalSeconds` | 300 | Polling interval (direct mode only). |
61
99
 
62
100
  ## When Something Goes Wrong
63
101
 
64
102
  - Notion's API rate-limits aggressively at high poll frequency. Stay
65
103
  ≥ 300 seconds.
104
+ - "No observations" in `native` mode is expected — observations flow
105
+ only when the main backend POSTs them during a session.
66
106
 
67
107
  ## Related
68
108
 
@@ -13,9 +13,10 @@ summary: |
13
13
  notes on demand.
14
14
  section: integrations
15
15
  tags:
16
- - integration
16
+ - integrations
17
17
  - knowledge
18
- - observation
18
+ - observations
19
+ - obsidian
19
20
  status: stable
20
21
  ask_examples:
21
22
  - How do I connect my Obsidian vault?
@@ -23,7 +24,12 @@ ask_examples:
23
24
  - Why didn't the agent see my new note?
24
25
  locale: en-US
25
26
  created: 2026-04-25
26
- updated: 2026-04-25
27
+ updated: 2026-05-28
28
+ keywords:
29
+ - obsidian
30
+ - vault
31
+ - vault watcher
32
+ - obsidian observer
27
33
  related:
28
34
  - features/integrations/notion
29
35
  - features/routines/hourly-check
@@ -31,15 +37,20 @@ related:
31
37
  ui_anchors:
32
38
  - /connections/knowledge
33
39
  config_keys:
40
+ - externalObsidianVaultPath
41
+ - externalObsidianVaultName
42
+ - externalObsidianWatch
34
43
  - obsidianDebounceSeconds
35
44
  ---
36
45
 
37
46
  # Obsidian
38
47
 
39
- ## In One Sentence
48
+ Point Aitne at your Obsidian vault directory; new and changed notes
49
+ record observations the hourly check consumes. The agent can read and
50
+ write vault notes through the `external-services` skill.
40
51
 
41
- Point Aitne at your Obsidian vault directory; new and changed
42
- notes record observations the hourly check consumes.
52
+ Reads and writes go through the Obsidian app's CLI the Obsidian app
53
+ must be running, or vault read/write calls fail.
43
54
 
44
55
  ## What It Does
45
56
 
@@ -47,9 +58,22 @@ notes record observations the hourly check consumes.
47
58
  - Filters out agent-originated writes via `AgentWriteTracker`.
48
59
  - Records observations for genuine operator edits.
49
60
 
61
+ ### Will it edit my notes?
62
+
63
+ The agent reads on demand and can create, append to, overwrite, or
64
+ delete notes when you ask it to (via the `external-services` skill). It
65
+ never edits your vault unprompted. When the agent does write, the
66
+ watcher does not treat its own writes as new observations —
67
+ `AgentWriteTracker` suppresses them — so the agent does not re-observe
68
+ its own output.
69
+
50
70
  ## When It Runs / How It Is Triggered
51
71
 
52
- Continuously. The watcher is debounced by `obsidianDebounceSeconds`.
72
+ Continuously the watcher runs as long as the daemon is up and a vault
73
+ path is configured (`externalObsidianWatch=true`). Saves are debounced
74
+ by `obsidianDebounceSeconds` before an observation is recorded; the
75
+ [hourly check](../routines/hourly-check.md) later consumes those
76
+ observations.
53
77
 
54
78
  ## Where in the Dashboard
55
79
 
@@ -59,10 +83,14 @@ Continuously. The watcher is debounced by `obsidianDebounceSeconds`.
59
83
 
60
84
  | Setting | Default | Notes |
61
85
  |---|---|---|
86
+ | `externalObsidianVaultPath` | unset | Vault directory; set in Connections → Knowledge. |
87
+ | `externalObsidianWatch` | true | Set false to keep the path but stop recording changes (large-vault churn control). |
62
88
  | `obsidianDebounceSeconds` | 5 | How long to wait after a save before recording. |
63
89
 
64
90
  ## When Something Goes Wrong
65
91
 
92
+ - A vault read or write that failed: the Obsidian app must be running,
93
+ since reads and writes proxy through its CLI. Open Obsidian and retry.
66
94
  - A change that did not record: the debounce may have folded multiple
67
95
  saves; the next one will fire.
68
96