@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
@@ -6,18 +6,22 @@ id: delegated-mode
6
6
  aliases:
7
7
  - delegated
8
8
  - direct mode
9
+ - native mode
9
10
  - same-backend
10
11
  - cross-backend
11
12
  - integration delegation
12
13
  category: concepts
13
14
  summary: |
14
- Each integration (Gmail, Google Calendar, …) runs in one of three
15
- modes: direct (the daemon holds OAuth credentials), delegated (the
16
- agent's backend connector holds them), or disabled. Under delegation,
17
- the agent reaches the integration through one of two paths depending
18
- on whether its DM session backend matches the connector's owner —
19
- same-backend (native MCP, no daemon involved) or cross-backend
20
- (`/api/integrations/:key/invoke` proxy).
15
+ Each integration (Gmail, Google Calendar, …) runs in one of four
16
+ modes: direct (the daemon holds OAuth credentials and polls),
17
+ delegated (the agent's backend connector holds them; the daemon syncs
18
+ on opt-in cadences), native (the main backend's MCP connector reaches
19
+ the integration on-demand; no daemon polling and no daemon-side
20
+ proxy), or disabled. Under `delegated`, the agent reaches the
21
+ integration through one of two paths depending on whether its DM
22
+ session backend matches the connector's owner — same-backend (native
23
+ MCP, no daemon involved) or cross-backend
24
+ (`/api/integrations/:key/exec` task-mode proxy).
21
25
  section: integrations
22
26
  tags:
23
27
  - core
@@ -32,16 +36,18 @@ ask_examples:
32
36
  - Why don't I see a SKILL.md for Gmail in my Codex session?
33
37
  locale: en-US
34
38
  created: 2026-04-26
35
- updated: 2026-04-26
39
+ updated: 2026-05-28
36
40
  keywords:
37
41
  - delegated mode
38
42
  - direct mode
43
+ - native mode
39
44
  - same-backend
40
45
  - cross-backend
41
46
  - integrations.md
42
47
  - delegatedBackend
48
+ - nativeBackend
43
49
  - SKILL.delegated
44
- - invoke endpoint
50
+ - exec endpoint
45
51
  related:
46
52
  - concepts/safety-model
47
53
  - concepts/skills
@@ -49,21 +55,29 @@ related:
49
55
  - features/integrations/mail
50
56
  ui_anchors:
51
57
  - /connections
58
+ - /connections/mail
59
+ - /connections/calendar
52
60
  - /settings/models
53
- config_keys:
54
- - integrations
61
+ api_endpoints:
62
+ - PATCH /api/integrations/:key
63
+ - POST /api/integrations/:key/exec
64
+ - POST /api/integrations/:key/probe
65
+ - POST /api/observations/batch
66
+ context_files:
67
+ - policies/integrations.md
55
68
  ---
56
69
 
57
70
  # Delegated Mode (Integration Modes)
58
71
 
59
72
  ## TL;DR
60
73
 
61
- Each integration is in one of three modes:
74
+ Each integration is in one of four modes:
62
75
 
63
76
  | Mode | Who holds credentials | What the agent calls |
64
77
  |---|---|---|
65
78
  | `direct` | Daemon (OAuth in macOS Keychain) | `curl /api/mail/*` / `curl /api/calendar/*` |
66
- | `delegated` | The agent's backend connector (claude.ai / ChatGPT / Google) | Native MCP tools or the `/api/integrations/:key/invoke` proxy |
79
+ | `delegated` | The agent's backend connector (claude.ai / ChatGPT / Google) | Native MCP tools (same-backend) or the `/api/integrations/:key/exec` task-mode proxy (cross-backend) |
80
+ | `native` | The main backend's connector (no daemon credentials, no daemon poller) | Native MCP tools on the main backend; observations are POSTed to `/api/observations/batch` for the routine pre-pass |
67
81
  | `disabled` | Nobody | Nothing — the integration is off |
68
82
 
69
83
  Under `delegated`, two sub-cases exist depending on whether the DM session's
@@ -72,9 +86,30 @@ backend is the same as the integration's `delegatedBackend`:
72
86
  - **Same-backend** — DM agent calls the connector's MCP tool directly.
73
87
  The daemon is not involved. No skill body is materialized.
74
88
  - **Cross-backend** — DM agent calls
75
- `POST /api/integrations/:key/invoke {tool, args}`. The daemon spawns
76
- a one-shot subprocess of `delegatedBackend`, runs the tool there,
77
- and returns the raw result.
89
+ `POST /api/integrations/:key/exec` in **task mode** with body
90
+ `{task: "<natural-language description>", outputSchema, maxToolCalls,
91
+ cacheable}`. The daemon spawns a one-shot subprocess of
92
+ `delegatedBackend`, the task-mode planner picks the appropriate tool
93
+ from the integration's registered `capabilityTools`, runs it, and
94
+ returns a structured result conforming to `outputSchema`. The legacy
95
+ RPC route `POST /api/integrations/:key/invoke {tool, args}` was
96
+ retired 2026-05-01 — cross-backend tool-name divergence (Claude
97
+ `search_threads` vs Codex `search_emails` vs Gemini `search`) made
98
+ the RPC shape brittle. See `docs/design/17-delegated-mode-v2.md` §4.2 for the
99
+ retirement rationale and `docs/design/appendices/routine-data-acquisition.md` §8.1
100
+ for the task-mode body shape.
101
+
102
+ `native` has no sub-cases. The integration's `nativeBackend` must equal
103
+ the main DM backend — `BackendRouter.setMainBackend` cascades unmatched
104
+ `native` rows to `disabled`. From the agent's call-site view, `native`
105
+ is indistinguishable from `delegated` same-backend (both are in-session
106
+ MCP); the difference is who polls (no one, for `native`).
107
+
108
+ > The four modes are `direct | delegated | native | disabled`
109
+ > (`INTEGRATION_MODES` in `packages/shared/src/integrations.ts`).
110
+ > `git` and `github` support only `direct | delegated | disabled` — no
111
+ > native mode (they use read-only CLI connectors), and `browser_history`
112
+ > is `direct | disabled` only.
78
113
 
79
114
  ## Why This Concept Exists
80
115
 
@@ -97,25 +132,45 @@ that case the daemon spawns the other backend per call.
97
132
  - **`direct`** — daemon holds the credentials (OAuth refresh token in
98
133
  macOS Keychain, app-password for Yahoo / iCloud, …). Pollers run.
99
134
  Full feature set. The operator did the vendor-console setup.
100
- - **`delegated`** — daemon holds nothing for this integration. Pollers
101
- are stopped. The connector running inside the agent's backend (or a
102
- spawned-on-demand backend) does the work.
135
+ - **`delegated`** — daemon holds nothing for this integration. The
136
+ daemon's `delegated-sync-worker` polls on opt-in cadences via the
137
+ delegated backend's connector. Per-DM-turn calls reach the connector
138
+ through the agent's backend (same-backend) or via the daemon's
139
+ `/exec` proxy (cross-backend).
140
+ - **`native`** — daemon holds nothing AND runs no poller. The main
141
+ backend's MCP connector reaches the integration on-demand within the
142
+ agent's own turn (DM, hourly_check, routine pre-pass). The agent
143
+ POSTs results to `/api/observations/batch` so the rest of the
144
+ observation pipeline (summarizer, hourly check) still operates. See
145
+ `docs/design/appendices/native-integration-mode.md` for the full
146
+ spec, including the per-key `runtime_state.integration_flip_lock:<key>`
147
+ drain protocol.
103
148
  - **`disabled`** — nobody holds credentials. The integration is off.
104
149
  - **`delegatedBackend`** — when delegated, which backend's connector
105
150
  serves the calls. `claude` / `codex` / `gemini`. Editable per
106
151
  integration in **Connections → Gmail / Google Calendar**.
107
- - **Same-backend**DM session backend matches `delegatedBackend`. The
108
- daemon is not in the loop; the agent calls native MCP directly. No
109
- skill body is materialized for the integration's slug — the connector
110
- describes its own tools at session-init.
111
- - **Cross-backend** — DM session backend differs from `delegatedBackend`.
112
- The agent reaches the integration through
113
- `POST /api/integrations/:key/invoke` and the daemon spawns
114
- `delegatedBackend` as a subprocess for each call. A
115
- `SKILL.delegated.<sessionBackend>.md` file is materialized into the
116
- session workdir.
152
+ - **`nativeBackend`**when native, which backend's connector is
153
+ expected. Must equal the main DM backend; changing the main backend
154
+ cascades unmatched `native` rows to `disabled` (the cascade is
155
+ triggered by `BackendRouter.setMainBackend` /
156
+ `PUT /api/backends/main`).
157
+ - **Same-backend** DM session backend matches `delegatedBackend` /
158
+ `nativeBackend`. The daemon is not in the loop; the agent calls
159
+ native MCP directly. No skill body is materialized for the
160
+ integration's slug the connector describes its own tools at
161
+ session-init.
162
+ - **Cross-backend** — DM session backend differs from
163
+ `delegatedBackend`. Cross-backend exists only for `delegated` — never
164
+ for `native`, which is locked to the main DM backend. The agent
165
+ reaches the integration through `POST /api/integrations/:key/exec`
166
+ in task mode and the daemon spawns `delegatedBackend` as a
167
+ subprocess for each call. A `SKILL.delegated.<sessionBackend>.md`
168
+ file is materialized into the session workdir.
117
169
  - **`integrations.md`** — daemon-rendered snapshot of every
118
- integration's mode at `~/.personal-agent/integrations.md`. The agent
170
+ integration's mode. After the context-vault restructure it lives
171
+ inside the vault under the `policies` class at
172
+ `<contextDir>/policies/integrations.md` (the legacy
173
+ `~/.personal-agent/integrations.md` location was retired). The agent
119
174
  reads it to know which path to take.
120
175
 
121
176
  ## How to Choose
@@ -123,7 +178,8 @@ that case the daemon spawns the other backend per call.
123
178
  | You want… | Pick |
124
179
  |---|---|
125
180
  | Full feature set (send mail, attachments, full search) and you're comfortable with one-time vendor-console setup | **direct** |
126
- | Zero setup tax, willing to live with whatever the connector exposes (Claude Gmail = draft-only; Codex Gmail = full) | **delegated** |
181
+ | Zero setup tax, with opt-in background polling on the delegated backend's connector cadence | **delegated** |
182
+ | Zero setup tax, on-demand only — main backend reaches the integration when the agent turns up a reason to look (no daemon polling, no proxy spawn) | **native** |
127
183
  | The integration off entirely | **disabled** |
128
184
 
129
185
  When you pick `delegated`, also pick `delegatedBackend`:
@@ -136,28 +192,63 @@ When you pick `delegated`, also pick `delegatedBackend`:
136
192
  connector you want (e.g. Codex's full Gmail) but a different backend
137
193
  is your preferred DM driver (e.g. Claude).
138
194
 
195
+ When you pick `native`, `nativeBackend` is fixed to your main DM
196
+ backend. Flipping the main backend re-targets every `native` row; rows
197
+ whose new `nativeBackend` has no descriptor connector for the
198
+ integration (e.g. `gmail` native on a backend that doesn't ship a Gmail
199
+ connector) cascade to `disabled` and the operator gets a DM.
200
+
139
201
  ## Concrete Examples
140
202
 
141
- | Setup | What happens on a Gmail search |
142
- |---|---|
143
- | Gmail direct | Agent: `curl /api/mail/<acct>/messages?q=...` → daemon hits Gmail API with stored OAuth |
144
- | Gmail delegated to Codex × Codex DM (same-backend) | Agent: `mcp__codex_apps__gmail._search_emails(...)` → Codex's connector hits Gmail. No daemon involvement. No skill file. |
145
- | Gmail delegated to Codex × Claude DM (cross-backend) | Agent: `curl -X POST /api/integrations/gmail/invoke -d '{"tool":"search_emails","args":{...}}'` → daemon spawns Codex subprocess with `proxy.md` profile → Codex calls `mcp__codex_apps__gmail._search_emails` → returns raw result through daemon |
203
+ What happens on a Gmail search, by setup:
146
204
 
147
- ## How the Skill File Resolves
205
+ | Setup | Path |
206
+ |---|---|
207
+ | Gmail **direct** | `curl /api/mail/<acct>/messages?q=...` → daemon hits Gmail API with stored OAuth |
208
+ | Gmail **delegated** to Codex, Codex DM (same-backend) | Agent calls `mcp__codex_apps__gmail._search_emails(...)` → Codex's connector hits Gmail. No daemon involvement. No skill file. |
209
+ | Gmail **delegated** to Codex, Claude DM (cross-backend) | Agent POSTs to `/api/integrations/gmail/exec` in task mode (see below) → daemon spawns a Codex subprocess → returns a structured result. |
210
+ | Gmail **native** on Codex DM | Identical call to delegated same-backend (`mcp__codex_apps__gmail._search_emails(...)`). No daemon involvement. The daemon poller is OFF; the routine pre-pass POSTs results to `/api/observations/batch`. |
211
+
212
+ The cross-backend row above issues a task-mode `/exec` call:
213
+
214
+ ```bash
215
+ curl -X POST http://localhost:8321/api/integrations/gmail/exec \
216
+ -d '{
217
+ "task": "Search Gmail for newer_than:1d, return id/subject/from/snippet/date for each message",
218
+ "outputSchema": {
219
+ "type": "object",
220
+ "required": ["messages"],
221
+ "properties": { "messages": { "type": "array", "items": { } } }
222
+ },
223
+ "maxToolCalls": 3,
224
+ "cacheable": true
225
+ }'
226
+ ```
148
227
 
149
- `selectSkillVariantFile(skillSlug, sessionBackend, integrations)` returns
150
- one of three values:
228
+ The daemon spawns a Codex subprocess with the `proxy.md` profile, the
229
+ task-mode planner picks `_search_emails` from the registered
230
+ `capabilityTools`, runs it, and returns a structured `{messages:[…]}`
231
+ conforming to `outputSchema`.
151
232
 
152
- - `"SKILL.md"` direct mode, or skill not gated by any integration.
153
- - `null` — every touched integration is delegated and same-backend.
154
- No skill is materialized (the connector self-describes).
155
- - `"SKILL.delegated.<sessionBackend>.md"` — at least one touched
156
- integration is delegated cross-backend; one body per session backend
157
- covers every `delegatedBackend` because the API is uniform.
233
+ ## How the Skill File Resolves
158
234
 
159
- Mixed states (some same-backend, some cross-backend) fall back to
160
- `SKILL.md`.
235
+ `selectSkillVariantFile(skillSlug, sessionBackend, integrations)`
236
+ returns one of four values, picked by tie-break order
237
+ (`docs/design/appendices/native-integration-mode.md` §5.4.1):
238
+
239
+ 1. `"SKILL.delegated.<sessionBackend>.md"` — at least one touched
240
+ integration is delegated cross-backend. The body documents the
241
+ `/exec` task-mode proxy and any native siblings inline (§7.4
242
+ mixed-mode prompts).
243
+ 2. `"SKILL.native.<sessionBackend>.md"` — at least one touched
244
+ integration is `native` (and no cross-backend wins above). Native
245
+ is always explicit-skill-required (§7.5 — never drops to `null`).
246
+ 3. `null` — every touched integration is delegated same-backend AND
247
+ each declares the skill in its descriptor's
248
+ `sameBackendDropsSkillBody`. The connector self-describes; no body
249
+ is materialized.
250
+ 4. `"SKILL.md"` — direct mode, mixed states, or skill not gated by any
251
+ integration.
161
252
 
162
253
  ## Where You See It in the Dashboard
163
254
 
@@ -166,52 +257,79 @@ Mixed states (some same-backend, some cross-backend) fall back to
166
257
  - **Settings → Models** — main backend switch. Flipping main flips the
167
258
  same-/cross-backend status of every delegated integration and
168
259
  re-materializes the active DM workdir.
169
- - **Setup wizard** — first-run integration mode picker; delegated mode
170
- is gated on a live probe that confirms the connector reports every
171
- `requiredCapability` for the integration.
260
+ - **Setup wizard** — first-run integration mode picker; both
261
+ `delegated` and `native` are gated on a **live probe** (§4.12.2)
262
+ that confirms three things before the mode is written to
263
+ `integrations.md`: the backend binary is resolvable, backend auth
264
+ is valid, and the connector reports every `requiredCapabilities`
265
+ entry the descriptor demands. Cached probe rows are invalidated on mode
266
+ change. `POST /api/integrations/:key/probe` is the chokepoint.
172
267
 
173
268
  ## How `integrations.md` Reflects This
174
269
 
175
- `~/.personal-agent/integrations.md` is the operator-readable snapshot the
176
- agent consults at session-init. Example:
270
+ `<contextDir>/policies/integrations.md` is the operator-readable snapshot
271
+ the agent consults at session-init. It is rendered as a Markdown table:
177
272
 
178
273
  ```markdown
179
- ## gmail
180
- mode: delegated
181
- delegatedBackend: codex
182
- deniedTools:
183
- - send_email
184
- - delete_emails
185
-
186
- ## google_calendar
187
- mode: delegated
188
- delegatedBackend: claude
189
- deniedTools:
190
- - delete_event
274
+ ## Current state
275
+
276
+ | Integration | Mode | Backend | Sub-tier | Last changed |
277
+ |---|---|---|---|---|
278
+ | gmail | delegated | codex | full-auto | 2026-05-15T07:15:32.911Z |
279
+ | google_calendar | native | codex | — | 2026-05-15T07:15:38.605Z |
280
+ | notion | disabled | — | — | 2026-05-15T07:14:56Z |
191
281
  ```
192
282
 
283
+ The "Backend" column surfaces whichever binding is active for the row —
284
+ `delegatedBackend` for `delegated`, `nativeBackend` for `native`. For
285
+ `direct` and `disabled` rows it is `—`. The "Sub-tier" column annotates
286
+ delegated Gmail rows (`draft-only` for Claude, `full-auto` for Codex)
287
+ and is `—` for everything else. The file also includes the per-backend
288
+ connector support matrix and the `deniedTools` block; both are rendered
289
+ by `renderManagementMd` (`packages/daemon/src/core/management-md.ts`).
290
+
193
291
  A daemon-side write chokepoint guarantees the file matches DB state. The
194
292
  fs-watcher reverts hand-edits that fail validation and DMs the operator.
195
293
 
196
294
  ## Failure Modes
197
295
 
198
296
  - **Cross-backend, connector signed out on `delegatedBackend`** — the
199
- invoke endpoint returns `502 auth_error`. Skill prose tells the agent
200
- to surface this as "re-sign-in to the connector."
201
- - **Same-backend, connector not signed in on the DM backend** — the
202
- agent has no Gmail tools at all. The setup wizard's pre-commit live
203
- probe is the primary defense; if the operator signs out
297
+ `/exec` endpoint returns `502 auth_error`. Skill prose tells the
298
+ agent to surface this as "re-sign-in to the connector."
299
+ - **Cross-backend, daemon's delegated-task queue saturated** — `/exec`
300
+ returns `503 delegated_proxy_busy`. The skill body advises a 3–5s
301
+ backoff with one retry.
302
+ - **Cross-backend, fully-denied surface** — when every tool in the
303
+ integration's `capabilityTools` is in `deniedTools`, the task-mode
304
+ planner has nothing to pick. `/exec` short-circuits with
305
+ `errorClass: "denied_tool"` before spawning a subprocess.
306
+ - **Same-backend or native, connector not signed in on the DM backend**
307
+ — the agent has no Gmail tools at all. The setup wizard's pre-commit
308
+ live probe is the primary defense; if the operator signs out
204
309
  post-setup, the agent will report "no Gmail tools available" until
205
310
  re-signed.
206
- - **Mode flip mid-call** — the invoke endpoint returns
207
- `409 precondition`; agent re-reads `integrations.md` and replans.
311
+ - **Mode flip mid-call** — `/exec` returns `409 precondition`; agent
312
+ re-reads `integrations.md` and replans. `native` rows also flip-lock
313
+ via the per-key `runtime_state.integration_flip_lock:<key>` row —
314
+ observations posted during the drain receive
315
+ `results[*].status = "flip_locked"`; the partial / agent profile
316
+ records the row in `errors[]` and the next routine tick reaps it.
208
317
 
209
318
  ## Related
210
319
 
211
320
  - [Safety Model](safety-model.md) — how the deny list (the primary
212
321
  defense in delegated mode) works.
213
322
  - [Skills](skills.md) — how `selectSkillVariantFile` picks the body.
214
- - Integration Delegation Framework (design) — `docs/design/14-integration-delegation.md`,
215
- the load-bearing spec.
216
- - Delegated Mode v2 (design) `DELEGATED-MODE-V2-DESIGN.md`, the
217
- canonical model for the current behavior.
323
+ - Integration Delegation Framework (design) —
324
+ `docs/design/14-integration-delegation.md`, the load-bearing spec
325
+ (§14.14 covers the four modes and their cascade rules).
326
+ - Delegated Mode v2 (design) — `docs/design/17-delegated-mode-v2.md` §4.2, the
327
+ `/exec` task-mode model that replaced the retired `/invoke` RPC
328
+ route.
329
+ - Native Integration Mode (design) —
330
+ `docs/design/appendices/native-integration-mode.md`, the on-demand
331
+ surface used by `native` rows and its `integration_flip_lock:<key>`
332
+ drain protocol.
333
+ - Routine Data Acquisition (design) — `docs/design/appendices/routine-data-acquisition.md`
334
+ §6.8 / §8.1, the per-(integration, mode) partial schema used by
335
+ `routine.fetch_window`.
@@ -17,24 +17,33 @@ section: memory
17
17
  tags:
18
18
  - core
19
19
  - memory
20
- - storage
20
+ - knowledge
21
+ - context
22
+ - safety
21
23
  status: stable
22
24
  ask_examples:
23
25
  - Where are my context files stored?
24
26
  - How does the agent edit context files?
25
27
  - What is the difference between context MD and SQLite?
28
+ - Where do management rules and policies live?
29
+ - How does the daemon prevent the agent from writing to disk directly?
26
30
  locale: en-US
27
31
  created: 2026-04-25
28
- updated: 2026-05-04
32
+ updated: 2026-05-28
29
33
  keywords:
30
34
  - context
31
35
  - markdown
32
36
  - SQLite
33
- - today.md
34
- - user/profile.md
35
- - roadmap.md
36
- - rules/management.md
37
- - rules/policies
37
+ - state/today.md
38
+ - identity/profile.md
39
+ - plans/roadmap.md
40
+ - policies/management.md
41
+ - policies/management-captures
42
+ - journal/agent.md
43
+ - context API
44
+ - AgentWriteTracker
45
+ - durable memory
46
+ - context-vault v2
38
47
  related:
39
48
  - features/memory-files/today
40
49
  - features/memory-files/user-profile
@@ -42,20 +51,27 @@ related:
42
51
  - features/memory-files/agent-journal
43
52
  - features/memory-files/schedule
44
53
  - features/memory-files/projects
45
- - features/memory-files/management-rules
46
54
  ui_anchors:
47
55
  - /knowledge
48
56
  - /connections/knowledge
49
57
  context_files:
50
- - today.md
51
- - user/profile.md
52
- - roadmap.md
53
- - agent/journal.md
54
- - daily/<date>.md
55
- - projects/<slug>.md
56
- - rules/management.md
57
- - rules/policies/<slug>.md
58
- - rules/policies/_index.md
58
+ - state/today.md
59
+ - identity/profile.md
60
+ - plans/roadmap.md
61
+ - journal/agent.md
62
+ - journal/daily/<date>.md
63
+ - plans/projects/<slug>.md
64
+ - policies/management.md
65
+ - policies/management-captures/<slug>.md
66
+ - policies/management-captures/_index.md
67
+ config_keys:
68
+ - dayBoundaryHour
69
+ - dataDir
70
+ api_endpoints:
71
+ - GET /api/context/*
72
+ - PUT /api/context/*
73
+ - PATCH /api/context/*
74
+ - DELETE /api/context/*
59
75
  ---
60
76
 
61
77
  # Memory Model
@@ -66,7 +82,11 @@ Aitne treats Markdown files in `~/.personal-agent/context/`
66
82
  as its long-term memory and SQLite
67
83
  (`~/.personal-agent/data/personal_agent.db`) as session-scoped state.
68
84
  Anything you want the agent to remember between runs lives in an MD
69
- file you can read, diff, and edit by hand.
85
+ file you can read, diff, and edit by hand. The vault is partitioned
86
+ into six authority classes — `identity/`, `state/`, `plans/`, `journal/`,
87
+ `knowledge/`, and `policies/` — each carrying its own authority and
88
+ lifecycle contract. See [Knowledge Layout](../reference/knowledge-layout.md)
89
+ for the canonical map.
70
90
 
71
91
  ## Why This Concept Exists
72
92
 
@@ -92,28 +112,52 @@ indexes, and configuration.
92
112
  legal write path. The agent does not have direct `Edit` / `Write`
93
113
  permissions on the filesystem; it must go through the daemon.
94
114
 
115
+ ## How the Agent Writes
116
+
117
+ The agent has no `Edit` or `Write` tool. To change a context file it
118
+ calls the daemon over HTTP, and every write funnels through one
119
+ endpoint family so the daemon can validate, hold locks, and snapshot a
120
+ backup before touching disk. Paths are class-prefixed
121
+ (`/api/context/<class>/<path>`):
122
+
123
+ ```bash
124
+ # Append a section to today.md
125
+ curl -X PATCH http://localhost:8321/api/context/state/today.md \
126
+ -H 'Content-Type: application/json' \
127
+ -d '{"mode":"append","section":"Notes","content":"Booked the dentist."}'
128
+ ```
129
+
130
+ - `PUT /api/context/*` replaces a whole file; `PATCH` does a section op
131
+ (`append`, `replace`, `clear`, `clear_before`, `append_to_file`);
132
+ `DELETE` removes a file (permitted only for custom routines).
133
+ - Legacy bare paths (`/api/context/today.md`) still resolve — the daemon
134
+ rewrites them to the canonical class-prefixed form in process, so a
135
+ plain `curl -X PATCH` without `-L` keeps working — but new writes
136
+ emit the class-prefixed path.
137
+ - `state/today.md` and `plans/roadmap.md` are serialized behind
138
+ dedicated write locks, so two flows can't clobber each other.
139
+
95
140
  ## Concrete Examples
96
141
 
97
- - `today.md` — rewritten by the morning routine.
98
- - `user/profile.md` — your profile, hand-edited or appended by the
142
+ - `state/today.md` — rewritten by the morning routine.
143
+ - `identity/profile.md` — your profile, hand-edited or appended by the
99
144
  agent on request. Topic-shaped slices live alongside it
100
- (`user/people.md`, `user/work.md`, `user/expertise.md`,
101
- `user/personal.md`, `user/goals.md`). See
145
+ (`identity/people.md`, `identity/work.md`, `identity/expertise.md`,
146
+ `identity/personal.md`, `identity/goals.md`). See
102
147
  [User Profile](../features/memory-files/user-profile.md).
103
- - `roadmap.md` — long-running goals + Preparation Timeline rows that
148
+ - `plans/roadmap.md` — long-running goals + Preparation Timeline rows that
104
149
  fire daily during the morning routine.
105
- - `agent/journal.md` — the agent's own running log of decisions,
150
+ - `journal/agent.md` — the agent's own running log of decisions,
106
151
  retros, and judgement calls.
107
- - `daily/2026-04-25.md` — per-date archive of that day's plan,
152
+ - `journal/daily/2026-04-25.md` — per-date archive of that day's plan,
108
153
  synthesized by the morning routine.
109
- - `projects/<slug>.md` — one file per active project.
110
- - `rules/management.md` — the umbrella registry: Source-of-Truth
154
+ - `plans/projects/<slug>.md` — one file per active project.
155
+ - `policies/management.md` — the umbrella registry: Source-of-Truth
111
156
  bindings, Managed Tasks, an Active Policies summary. Always
112
- injected into every flow. See
113
- [rules/management.md and rules/policies/](../features/memory-files/management-rules.md).
114
- - `rules/policies/<slug>.md` — one file per durable management rule
157
+ injected into every flow.
158
+ - `policies/management-captures/<slug>.md` one file per durable management rule
115
159
  ("from now on, do X"). The daemon auto-maintains a slug index at
116
- `rules/policies/_index.md`.
160
+ `policies/management-captures/_index.md`.
117
161
 
118
162
  ## Where You See It in the Dashboard
119
163
 
@@ -124,8 +168,9 @@ indexes, and configuration.
124
168
 
125
169
  ## Related
126
170
 
127
- - [today.md](../features/memory-files/today.md)
128
- - [user/profile.md](../features/memory-files/user-profile.md)
129
- - [roadmap.md](../features/memory-files/roadmap.md)
171
+ - [Knowledge Layout](../reference/knowledge-layout.md) — canonical map of every vault file
172
+ - [state/today.md](../features/memory-files/today.md)
173
+ - [identity/profile.md](../features/memory-files/user-profile.md)
174
+ - [plans/roadmap.md](../features/memory-files/roadmap.md)
130
175
  - [Skills](skills.md) — the per-skill SKILL.md files that tell the
131
176
  agent how to read and write each context file.