@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
@@ -12,19 +12,20 @@ aliases:
12
12
  - on-demand retrospective
13
13
  category: concepts
14
14
  summary: |
15
- Aitne's safety model collapsed from four tiers to two: most
16
- actions run autonomously, a small set of posture-changing operations
17
- require explicit Approve. The previous Notify tier (DM the operator
18
- before / during a write) was abolished — the operator's `deniedTools`
19
- list is now the primary defense, and "what did the agent do?" is
20
- answered on demand via `GET /api/agent/actions` instead of pushed as
21
- a daily digest.
15
+ Aitne's risk classifier dropped from three write tiers to two: most
16
+ actions run autonomously, and a small set of posture-changing
17
+ operations require explicit Approve. The previous Notify tier (DM the
18
+ operator before / during a write) was abolished — the operator's
19
+ `deniedTools` list is now the primary defense, and "what did the
20
+ agent do?" is answered on demand via `GET /api/agent/actions` instead
21
+ of pushed as a daily digest. (The read-gating `ReadSensitive` tier is
22
+ unchanged.)
22
23
  section: safety
23
24
  tags:
24
25
  - core
25
26
  - safety
26
27
  - integrations
27
- - skills
28
+ - audit
28
29
  status: stable
29
30
  ask_examples:
30
31
  - Why doesn't the agent ask before sending an email anymore?
@@ -33,7 +34,7 @@ ask_examples:
33
34
  - Where do I see what the agent has been doing?
34
35
  locale: en-US
35
36
  created: 2026-04-26
36
- updated: 2026-04-26
37
+ updated: 2026-05-28
37
38
  keywords:
38
39
  - deniedTools
39
40
  - safety floor
@@ -50,10 +51,16 @@ related:
50
51
  - reference/disallowed-tools
51
52
  ui_anchors:
52
53
  - /connections
53
- - /settings/cost
54
- config_keys:
55
- - integrations
56
- - deniedTools
54
+ - /connections/mail
55
+ - /connections/calendar
56
+ - /analytics
57
+ api_endpoints:
58
+ - GET /api/agent/actions
59
+ - POST /api/integrations/:key/exec
60
+ - PATCH /api/integrations/:key
61
+ context_files:
62
+ - policies/integrations.md
63
+ - journal/agent.md
57
64
  ---
58
65
 
59
66
  # Safety Model (deniedTools + Approve Tier)
@@ -121,21 +128,27 @@ of "report to me" events. Information about what the agent did is
121
128
  - **`matchToolPattern`** — pattern matcher used everywhere `deniedTools`
122
129
  is enforced. Exact match (`send_email`), prefix glob (`send_*`), or
123
130
  bare `*`.
124
- - **`/api/integrations/:key/invoke`** — the cross-backend chokepoint.
125
- Enforces `deniedTools` server-side before spawning a subprocess.
131
+ - **`/api/integrations/:key/exec`** — the cross-backend chokepoint
132
+ (task mode; the RPC-style `/invoke` route was retired 2026-05-01,
133
+ see `docs/design/17-delegated-mode-v2.md` §4.2). It enforces
134
+ `deniedTools` server-side — see the *Where the Defenses Apply* table
135
+ below for the exact mechanism.
126
136
  - **`agent_actions`** — SQLite table of every agent action. Direct +
127
- cross-backend rows are full-fidelity. Same-backend native MCP rolls
128
- up to `mcp_tool_calls` + the parent session row.
137
+ cross-backend rows are full-fidelity (current cross-backend writes
138
+ emit `delegated_task.run` / `delegated_task.exec` /
139
+ `delegated_task.tool_step`; legacy rows from before 2026-05-01 carry
140
+ `delegated_proxy.invoke`). Same-backend native MCP rolls up to
141
+ `mcp_tool_calls` + the parent session row.
129
142
 
130
143
  ## Where the Defenses Apply
131
144
 
132
145
  | Path | Enforcement |
133
146
  |---|---|
134
147
  | Direct mode (`/api/mail/*`, `/api/calendar/*`) | Route handler middleware checks `deniedTools` against the materialized skill body's `allowed-tools` list (frontmatter). |
135
- | Cross-backend (`/api/integrations/:key/invoke`) | Endpoint handler runs `matchToolPattern(deniedPattern, tool)` before spawning. Returns `403 denied_tool` on hit. |
136
- | Same-backend native MCP — Claude | `collectSessionDeniedTools` merges the deny patterns into the SDK's `disallowedTools` array at `query()` time. |
137
- | Same-backend native MCP — Gemini | Patterns are folded into `generateAdminPolicy`'s TOML deny rules (priority 1000). |
138
- | Same-backend native MCP — Codex | **Prose-only.** Codex bundles its connector apps into the binary; there is no per-tool deny config and the workspace-write sandbox does not match MCP tool calls. Skill prose lists the denied tools explicitly. Operators who require strict deny on Gmail / Calendar should pick a non-Codex DM backend or run those integrations through the proxy. |
148
+ | Cross-backend (`/api/integrations/:key/exec`) | Invoker filters the integration's `capabilityTools` through `deniedTools` before spawning the delegated backend so the task-mode planner can only pick from the allowed surface. A fully-denied surface short-circuits with `errorClass: "denied_tool"`; individual tool denials surface as the same error from the invoker's `resolveAllowedToolPatterns`. |
149
+ | Same-backend / native MCP — Claude | `collectSessionDeniedTools` merges the deny patterns into the SDK's `disallowedTools` array at `query()` time. Same code path covers both delegated same-backend and native — they share the in-session MCP surface. |
150
+ | Same-backend / native MCP — Gemini | Patterns are folded into `generateAdminPolicy`'s TOML deny rules (priority 1000). |
151
+ | Same-backend / native MCP — Codex | **Prose-only.** Codex bundles its connector apps into the binary; there is no per-tool deny config and the workspace-write sandbox does not match MCP tool calls. Skill prose lists the denied tools explicitly. Operators who require strict deny on Gmail / Calendar should pick a non-Codex DM backend or route those integrations through `delegated` cross-backend mode (which IS deny-enforced at `/exec`). |
139
152
 
140
153
  ## Recommended Starter Denylists
141
154
 
@@ -211,18 +224,29 @@ When the operator asks "what did you do yesterday?" / "have you sent
211
224
  anything from Gmail this week?" the agent calls:
212
225
 
213
226
  ```bash
214
- curl 'http://localhost:8321/api/agent/actions?since=2026-04-25T00:00:00Z&kind=delegated_proxy.invoke&limit=50'
227
+ curl 'http://localhost:8321/api/agent/actions?since=2026-04-25T00:00:00Z&kind=delegated_task.run&kind=delegated_task.tool_step&limit=50'
215
228
  ```
216
229
 
217
230
  and answers in conversation. The endpoint:
218
231
 
219
232
  - Lives at `Autonomous` tier — the agent reads only its own audit
220
233
  trail, no operator data.
221
- - Accepts `since`, `kind`, `limit` (default 50, max 200).
222
- - Redacts values via the standard secret-redaction utility before
223
- serializing.
224
- - Returns rows from `agent_actions`, optionally joined with
225
- `mcp_tool_calls` when `kind=mcp` (same-backend native MCP).
234
+ - Accepts `since` (ISO-8601; defaults to the last 24h if omitted),
235
+ `kind` (an `action_type` filter repeat for multiple values, e.g.
236
+ `?kind=a&kind=b`), and `limit` (default 50, max 200).
237
+ - Redacts the free-text `error` / `detail` fields via the standard
238
+ secret-redaction utility before serializing.
239
+ - Returns rows from `agent_actions` only. Same-backend / native MCP
240
+ calls surface as their own `action_type` rows (e.g. `kind=mcp`);
241
+ the per-call detail lives in `mcp_tool_calls`, which this endpoint
242
+ does not join — query it separately if you need step-level fidelity.
243
+
244
+ Common `kind` values for the cross-backend proxy: `delegated_task.run`
245
+ (one row per `/exec` call), `delegated_task.exec` (the planner's
246
+ chosen tool), `delegated_task.tool_step` (each individual tool call
247
+ inside the task). The legacy `delegated_proxy.invoke` rows persist
248
+ from before 2026-05-01 — include them if the `since` window crosses
249
+ that date.
226
250
 
227
251
  This **replaces** the rejected daily-digest pattern. Reasons:
228
252
 
@@ -231,7 +255,7 @@ This **replaces** the rejected daily-digest pattern. Reasons:
231
255
  - The operator does not have to manage the agent's reporting calendar.
232
256
 
233
257
  The optional fallback — extending the existing morning routine to
234
- summarize yesterday's `agent_actions` into `agent/journal.md` — is
258
+ summarize yesterday's `agent_actions` into `journal/agent.md` — is
235
259
  deferred until the on-demand path proves insufficient.
236
260
 
237
261
  ## What Stayed Approve-Tier
@@ -251,15 +275,16 @@ Approve still gates:
251
275
 
252
276
  ## Where You See It in the Dashboard
253
277
 
254
- - **Connections → \<integration\> → Tool Permissions** — the
278
+ - **Connections → \<integration\> → Tool Permissions**
279
+ (e.g. `/connections/mail`, `/connections/calendar`) — the
255
280
  `deniedTools` editor with the starter list pre-populated. Above the
256
- editor, the safety guidance prose explains each entry and which the
257
- team recommends keeping.
258
- - **Settings Cost Delegated proxy facet** — only cross-backend
259
- invocations show here; same-backend rolls up under the parent
260
- session.
261
- - **Activity / Audit** — every action with full attribution, queried
262
- the same way the agent queries `GET /api/agent/actions`.
281
+ editor, the safety guidance prose explains each entry and which ones
282
+ are recommended to keep.
283
+ - **Analytics** (`/analytics`) spend and the delegated-task facet;
284
+ only cross-backend invocations show here, while same-backend MCP
285
+ rolls up under the parent session.
286
+ - **Activity** (`/activity`) — every action with full attribution,
287
+ the same audit trail the agent reads via `GET /api/agent/actions`.
263
288
 
264
289
  ## Related
265
290
 
@@ -270,5 +295,5 @@ Approve still gates:
270
295
  Allow modes.
271
296
  - Integration Delegation Framework (design) — `docs/design/14-integration-delegation.md`
272
297
  §14.12, the deniedTools spec.
273
- - Delegated Mode v2 (design) — `DELEGATED-MODE-V2-DESIGN.md` §4.5,
298
+ - Delegated Mode v2 (design) — `docs/design/17-delegated-mode-v2.md` §4.5,
274
299
  the rationale for Notify-tier abolition + the starter denylist.
@@ -17,14 +17,18 @@ tags:
17
17
  - core
18
18
  - skills
19
19
  - safety
20
+ - knowledge
21
+ - backends
20
22
  status: stable
21
23
  ask_examples:
22
24
  - What skills does the agent have?
23
25
  - How do I add a new skill?
24
26
  - Why does the agent refuse to run a tool?
27
+ - How does skill self-optimization work?
28
+ - Where do skill overlays live?
25
29
  locale: en-US
26
30
  created: 2026-04-25
27
- updated: 2026-05-04
31
+ updated: 2026-05-28
28
32
  keywords:
29
33
  - SKILL.md
30
34
  - allowed-tools
@@ -33,15 +37,25 @@ keywords:
33
37
  - self-optimization
34
38
  - skill curation
35
39
  - overlays
40
+ - skill
41
+ - skills
36
42
  related:
37
43
  - concepts/safety-and-execution
38
44
  - concepts/process-keys
39
45
  - reference/skills
40
- - features/operations/skill-self-optimization
41
46
  ui_anchors:
42
47
  - /knowledge
43
48
  - /connections/mcp
44
49
  - /settings/self-learning
50
+ process_keys:
51
+ - dashboard.docs_qa
52
+ - routine.skill_curation
53
+ config_keys:
54
+ - allowedToolsOverride
55
+ - disallowedTools
56
+ api_endpoints:
57
+ - GET /api/skills
58
+ - GET /api/skills/manifest/:processKey
45
59
  ---
46
60
 
47
61
  # Skills
@@ -68,8 +82,11 @@ visible to the model.
68
82
 
69
83
  - **SKILL.md**: the Markdown file that defines a single skill. Lives
70
84
  under `agent-assets/skills/<slug>/SKILL.md` in the repo and is
71
- materialized into each session workdir as `.claude/skills/<slug>/SKILL.md`
72
- (or the per-backend equivalent).
85
+ materialized into each session workdir under a per-backend namespace —
86
+ `.claude/skills/<slug>/` for Claude, `.codex/skills/` for Codex,
87
+ `.gemini/skills/` for Gemini, and `.opencode/skills/` for OpenCode.
88
+ The frontmatter (`name`, `description`, `allowed-tools`) is byte-identical
89
+ across all four; only the destination directory changes.
73
90
  - **`allowed-tools`**: a YAML list in the skill's frontmatter naming
74
91
  tools and patterns the session may use. Patterns like
75
92
  `Bash(curl http://localhost:8321/api/context/*)` are the daemon's
@@ -82,7 +99,7 @@ visible to the model.
82
99
 
83
100
  ## Concrete Examples
84
101
 
85
- - `today` — read and rewrite `today.md`.
102
+ - `today` — read and rewrite `state/today.md`.
86
103
  - `schedule` — produce per-date schedule files from the calendar.
87
104
  - `mail` — search and label messages via the daemon's mail proxy.
88
105
  - `docs-search` — read-only fetch over the docs corpus, used only by
@@ -93,25 +110,29 @@ visible to the model.
93
110
 
94
111
  Skills aren't frozen. A background process — **skill curation** —
95
112
  watches how your knowledge layout drifts (file moves, new
96
- sub-folders, schema tweaks in `user/`, `projects/`, etc.) and
97
- proposes JSON **overlays** that update specific sections of the
113
+ sub-folders, schema tweaks under `identity/`, `plans/projects/`, etc.)
114
+ and proposes JSON **overlays** that update specific sections of the
98
115
  relevant skill: knowledge layout, routing tables, frontmatter
99
116
  schema, search recipes, convention notes, cross-references.
100
117
 
101
- Overlays live at `<dataDir>/overlays/<skill>/<section-id>.json` and
102
- are merged in by the SkillsCompiler at session-init. The original
118
+ Overlays live at `<dataDir>/skill-curation-overlays/<slug>/<section_id>.json`
119
+ and are merged in by the SkillsCompiler at session-init. The original
103
120
  `SKILL.md` files in `agent-assets/skills/` are never rewritten;
104
- disabling the overlay (or deleting the JSON file) reverts to the
121
+ disabling self-learning (or deleting the JSON file) reverts to the
105
122
  seed payload immediately.
106
123
 
107
124
  The optimizer agent runs in an isolated workdir with a tightly
108
125
  scoped toolset (`Bash(curl http://localhost:8321/api/skill-curation/*)`,
109
- `Read`) and an auto-revert safety net if the next run sees more
110
- drift signals than the previous overlay generated, the section is
111
- reverted and frozen for two cycles.
126
+ `Read`) and an auto-revert safety net: each cadence cycle the daemon
127
+ re-checks recently-applied overlays, and any section that has
128
+ accumulated *more* drift signal weight after the overlay was applied
129
+ than before is rolled back automatically and frozen for two cycles to
130
+ stop thrashing. This is the only roll-back path — there is no
131
+ per-proposal approve/reject API, just the on/off toggle.
112
132
 
113
- See [Skill Self-Optimization](../features/operations/skill-self-optimization.md)
114
- for cadence, manual run, and the dashboard surface.
133
+ Skill curation is **off by default**. The master toggle, curation
134
+ cadence, manual-run trigger, and the per-skill exclusion list are all
135
+ surfaced at **Settings → Self-learning** (`/settings/self-learning`).
115
136
 
116
137
  ## Where You See It in the Dashboard
117
138
 
@@ -131,5 +152,5 @@ for cadence, manual run, and the dashboard surface.
131
152
  `allowed-tools` is too permissive.
132
153
  - [Process Keys](process-keys.md) — the dispatch identity that picks
133
154
  which skill manifest to load.
134
- - [Skill Self-Optimization](../features/operations/skill-self-optimization.md) —
135
- how overlays are generated and applied.
155
+ - [Skills (Reference)](../reference/skills.md) — index of every
156
+ built-in skill.
@@ -0,0 +1,195 @@
1
+ ---
2
+ schema_version: 1
3
+ slug: features/integrations/browser-history
4
+ title: Browser History
5
+ id: browser-history
6
+ aliases:
7
+ - browser history
8
+ - browsing history
9
+ - research clusters
10
+ - reload memory
11
+ - B-3
12
+ category: features
13
+ summary: |
14
+ Local-only poller that reads the browser's own SQLite databases
15
+ (Chrome / Safari / Firefox / Arc), records visits as observations,
16
+ derives research clusters from sustained reading patterns, and
17
+ surfaces what you keep refreshing. Nothing leaves the daemon.
18
+ section: integrations
19
+ tags:
20
+ - integrations
21
+ - observations
22
+ - browser-history
23
+ - polling
24
+ - autonomous
25
+ status: stable
26
+ ask_examples:
27
+ - How does Aitne use my browser history?
28
+ - What is a research cluster?
29
+ - What does `!checks` show?
30
+ - Does my browsing data go anywhere?
31
+ - How do I opt out of browser history?
32
+ locale: en-US
33
+ created: 2026-05-22
34
+ updated: 2026-05-28
35
+ keywords:
36
+ - browser history
37
+ - browser history poller
38
+ - research cluster
39
+ - reload signal
40
+ - "!checks"
41
+ - "!research"
42
+ - shopping comparison
43
+ - two-option offer
44
+ - local-only
45
+ related:
46
+ - features/messaging/bang-commands
47
+ - features/integrations/notion
48
+ - features/operations/managed-chromium
49
+ - features/routines/weekly-review
50
+ - features/routines/morning-routine
51
+ ui_anchors:
52
+ - /settings/integrations/browser-history
53
+ config_keys:
54
+ - browserHistoryConsentAccepted
55
+ - browserHistoryBrowserOverrides
56
+ - browserHistoryCategories
57
+ - browserHistoryRetentionDays
58
+ - browserHistorySearchQueryRetentionDays
59
+ - browserHistoryLifecycle
60
+ - browserHistoryResearchDomainAllowlist
61
+ - browserHistoryResearchDomainDenylist
62
+ process_keys:
63
+ - routine.research_cluster_update
64
+ - routine.research_offer_dm
65
+ - routine.research_dispatch
66
+ - routine.research_wiki_summary
67
+ api_endpoints:
68
+ - GET /api/browser-history/status
69
+ - GET /api/browser-history/research-clusters
70
+ - POST /api/browser-history/offers/:slug/accept
71
+ - POST /api/browser-history/offers/:slug/decline
72
+ - GET /api/browser-history/reloads/weekly
73
+ ---
74
+
75
+ # Browser History
76
+
77
+ Aitne can read the SQLite history databases that Chrome, Safari,
78
+ Firefox, and Arc already maintain on disk, classify visits into
79
+ categories, and use the result to notice what you've been
80
+ researching, what you've been refreshing, and what comparison-shopping
81
+ windows you're in. Everything stays local — no URLs, titles, or
82
+ clicks leave the daemon.
83
+
84
+ ## What It Does
85
+
86
+ - **Reads visits** from the browser's own history DB on a 30-min
87
+ cadence (per browser, per profile) and inserts them into the
88
+ daemon's `browser_visits` table.
89
+ - **Counts reloads** per `<domain>/<first-path>` into
90
+ `browser_reload_signals`. Surfaced via [`!checks`](../messaging/bang-commands.md)
91
+ for the agent-day and via the weekly review's "this week you
92
+ checked" block.
93
+ - **Derives research clusters** when a topic crosses meaningful-visits
94
+ / foreground-time / distinct-domain thresholds. Clusters live in
95
+ `browser_research_clusters` with a slug, display name, journal at
96
+ `context/research/<slug>.md`, and a status (`active | dormant |
97
+ muted | concluded`).
98
+ - **Offers engagement DMs** via the Two-Option Offer pattern when a
99
+ cluster qualifies: pick "research dive" (parallel web research +
100
+ summary) or "wiki summary" (Obsidian / Notion / local context).
101
+ Accept paths run through `routine.research_dispatch` /
102
+ `routine.research_wiki_summary`; decline silences offers for 14
103
+ days; mute / unmute / rename / conclude via [`!research`](../messaging/bang-commands.md).
104
+ - **Detects shopping comparison windows** — 90-min sliding windows
105
+ containing ≥3 distinct ASINs surface as comparison sessions the
106
+ agent can summarise.
107
+ - **Powers the pre-morning digest** — yesterday's reading and reload
108
+ patterns feed the morning routine's pre-pass digest.
109
+
110
+ ## Privacy and Consent
111
+
112
+ - **Default off.** The integration does not start until the operator
113
+ flips `browserHistoryConsentAccepted = true` on the
114
+ **Settings → Integrations → Browser History**
115
+ (`/settings/integrations/browser-history`) page. The integration only
116
+ supports `direct` (the daemon poller) or `disabled` — there is no
117
+ delegated or native mode.
118
+ - **Local-only.** No request leaves the daemon. The browser's
119
+ history file is opened read-only; the daemon never reaches into
120
+ cookies, login sessions, or profile dirs other than the history DB.
121
+ - **Per-browser opt-in.** `browserHistoryBrowserOverrides` lets you
122
+ enable / disable each detected browser independently and override
123
+ the DB path for atypical installs.
124
+ - **Per-category gate.** `browserHistoryCategories` controls which
125
+ visit categories (research / shopping / docs / media / …) get
126
+ ingested. Categories you exclude are dropped at ingest time, not
127
+ filtered later.
128
+ - **Retention.** `browserHistoryRetentionDays` (visits) and
129
+ `browserHistorySearchQueryRetentionDays` (search queries) cap the
130
+ on-disk window; older rows are deleted on the next ingest tick.
131
+ - **Domain controls.** `browserHistoryResearchDomainAllowlist` /
132
+ `…Denylist` filter which domains can qualify a research cluster.
133
+
134
+ ## How Clusters Qualify
135
+
136
+ A research cluster qualifies when the combination of meaningful visits,
137
+ foreground time, and distinct domains crosses the thresholds in
138
+ `DEFAULT_OFFER_THRESHOLDS` (tunable via `browserHistoryLifecycle`).
139
+ On each tick the poller evaluates the offer triggers per active cluster
140
+ (`evaluateOfferTriggers`); once the **per-cluster offer rate-limit gate**
141
+ (`gateOfferRateLimit`) approves — this is the 14-day, per-slug offer
142
+ backoff, not the daemon-wide session gate that Phase 9 removed — a
143
+ Two-Option Offer DM is composed by the `routine.research_offer_dm`
144
+ process key.
145
+
146
+ Accepting either path clears every pending-offer row for that slug, so a
147
+ later tick cannot re-offer the same cluster.
148
+
149
+ ## Owner Controls
150
+
151
+ | Surface | What it does |
152
+ |---|---|
153
+ | `!checks` | Today's top reload patterns (pure DB read, safe while paused). |
154
+ | `!research` | List active + dormant clusters. |
155
+ | `!research <slug>` | Show one cluster's detail. |
156
+ | `!research accept <slug>` | Enqueue `routine.research_dispatch`. |
157
+ | `!research wiki <slug>` | Enqueue `routine.research_wiki_summary`. |
158
+ | `!research decline <slug>` | Silence offers for 14 days. |
159
+ | `!research mute <slug>` / `unmute` | Toggle offers off (until unmute) / restore. |
160
+ | `!research rename <slug> <new name>` | Change display name. |
161
+ | `!research conclude <slug>` | Mark concluded; preserve the journal. |
162
+ | Natural-language reply to an offer DM | The `browser-history-respond` skill bridges into the same `/api/browser-history/offers/<slug>/{accept,decline}` call. |
163
+
164
+ ## When It Runs
165
+
166
+ | Signal | Cadence | Source |
167
+ |---|---|---|
168
+ | Visit ingest | Every 30 min per browser profile | `BrowserHistoryPoller` |
169
+ | Cluster engagement evaluation | Same tick as visit ingest | `pipeline/offer-triggers.ts` |
170
+ | Shopping-comparison window scan | Same tick, 7-day lookback | `SHOPPING_COMPARISON_WINDOW_MS` constants |
171
+ | Nightly journal append | Agent-day boundary | `routine.research_cluster_update` (lite tier, one row per active cluster per day) |
172
+ | Weekly reload-memory block | Friday weekly review | `routine.weekly_review` reads `/api/browser-history/reloads/weekly` |
173
+ | Pre-morning digest | Morning routine pre-pass | Yesterday's reading + reloads feed the digest block |
174
+
175
+ ## When Something Goes Wrong
176
+
177
+ - **The settings page shows no browsers.** Open
178
+ `/settings/integrations/browser-history` and run `aitne doctor` — the
179
+ platform detector might be failing to resolve the user's profile dir.
180
+ The daemon log line will name the candidate paths it tried.
181
+ - **A cluster keeps re-offering.** Check the `lastResearchOfferAt` /
182
+ `lastWikiOfferAt` columns; the rate-limit gate uses those for the
183
+ 14-day backoff. `!research decline <slug>` stamps both fields.
184
+ - **`!checks` is empty.** That's the common case for a quiet day —
185
+ the reload signals are gated to the agent-day, not UTC.
186
+
187
+ ## Related
188
+
189
+ - [Managed Chromium](../operations/managed-chromium.md) — separate
190
+ experimental flow for *driving* a Chromium profile (B-4), not
191
+ reading browser history.
192
+ - [Weekly Review](../routines/weekly-review.md)
193
+ - [Morning Routine](../routines/morning-routine.md)
194
+ - [Bang Commands](../messaging/bang-commands.md)
195
+ - [Glossary: Research Cluster](../../glossary.md#research-cluster)
@@ -10,16 +10,18 @@ aliases:
10
10
  category: features
11
11
  summary: |
12
12
  The calendar integration pulls your events into Aitne so the
13
- morning routine, schedule files, and travel-time skill can reason
14
- about your day. The Connections → Calendar page also picks the
15
- backend that handles approaching-event notifications and observed
16
- calendar changes (Calendar Event Model) — that picker only applies
17
- when the integration runs in direct mode.
13
+ morning routine and schedule files can reason about your day.
14
+ The Connections → Calendar page also picks the backend that handles
15
+ observed calendar changes (the Calendar Event Model card, binding
16
+ calendar.change) — that picker only applies when the integration runs
17
+ in direct mode.
18
18
  section: integrations
19
19
  tags:
20
- - integration
20
+ - integrations
21
21
  - calendar
22
22
  - core
23
+ - observations
24
+ - polling
23
25
  status: stable
24
26
  ask_examples:
25
27
  - How do I connect my Google Calendar?
@@ -28,10 +30,10 @@ ask_examples:
28
30
  - What is the Calendar Event Model setting on the Connections page?
29
31
  - Why is the Calendar Event Model card missing when my calendar is delegated?
30
32
  - Will Aitne notice calendar changes while my calendar is delegated?
31
- - Which model handles approaching-event reminders?
33
+ - Which model handles detected calendar changes?
32
34
  locale: en-US
33
35
  created: 2026-04-25
34
- updated: 2026-04-28
36
+ updated: 2026-05-28
35
37
  keywords:
36
38
  - calendar
37
39
  - google calendar
@@ -47,25 +49,28 @@ keywords:
47
49
  related:
48
50
  - features/routines/morning-routine
49
51
  - features/memory-files/schedule
52
+ - features/operations/schedule-approaching
50
53
  - concepts/delegated-mode
51
54
  - concepts/process-keys
52
55
  - concepts/observations
53
56
  ui_anchors:
54
57
  - /connections/calendar
55
58
  api_endpoints:
56
- - /api/calendar
59
+ - /api/calendar/calendars
60
+ - /api/calendar/events
61
+ - /api/calendar/freebusy
57
62
  config_keys:
58
63
  - calendarPollIntervalSeconds
59
64
  process_keys:
60
65
  - calendar.change
66
+ - schedule.approaching
61
67
  ---
62
68
 
63
69
  # Calendar
64
70
 
65
- ## In One Sentence
66
-
67
- Pull events from one or more calendars (Google Calendar today, more
68
- backends planned) so Aitne can plan your day around them.
71
+ Aitne pulls events from one or more calendars (Google Calendar today,
72
+ more backends planned) so it can build today's plan around them and
73
+ DM you ahead of meetings that matter.
69
74
 
70
75
  ## What It Does
71
76
 
@@ -73,11 +78,13 @@ backends planned) so Aitne can plan your day around them.
73
78
  - **Records observations** when events change (add / move / remove),
74
79
  consumed by the hourly check.
75
80
  - **Surfaces today's events** to the morning routine so they land in
76
- `today.md` and the day's schedule file.
81
+ `state/today.md` and the day's schedule file.
77
82
  - **Reads** events on demand for reactive turns ("am I free at 3?").
78
83
 
79
- The agent can create events when the operator asks (a `notify`-tier
80
- action). It does not auto-schedule on its own.
84
+ The agent can create, move, or delete events when the operator asks
85
+ (`POST`/`PATCH`/`DELETE /api/calendar/events`, all Autonomous-tier no
86
+ approval prompt). It does not auto-schedule on its own; it acts only on
87
+ an explicit request.
81
88
 
82
89
  ## When It Runs / How It Is Triggered
83
90
 
@@ -99,22 +106,24 @@ action). It does not auto-schedule on its own.
99
106
  ## Calendar Event Model
100
107
 
101
108
  The Calendar Event Model picker chooses the backend and model that
102
- runs when the agent reacts to a calendar event. It binds the
103
- `calendar.change` ProcessKey, which fires from the calendar poller in
104
- three situations:
109
+ runs when the **daemon-side poller detects a calendar change**. It binds
110
+ the `calendar.change` ProcessKey, which fires in two situations:
105
111
 
106
- - An event is about to start (the operator gets an approaching-event
107
- reminder).
108
112
  - An event was added, moved, or deleted between polls (recorded as a
109
113
  change observation; the hourly check picks it up).
110
- - An event was created far in advance (long-horizon events nudge the
111
- roadmap-refresh routine so `roadmap.md` can build a preparation
112
- timeline).
114
+ - An event was created far in advance (long-horizon events more than 14
115
+ days out nudge the roadmap-refresh routine so `plans/roadmap.md` can
116
+ build a preparation timeline).
117
+
118
+ Approaching-event reminders are a separate flow: they fire on the
119
+ `schedule.approaching` ProcessKey, not `calendar.change`, and are not
120
+ configured by this card. See [Schedule Approaching](../operations/schedule-approaching.md).
113
121
 
114
- Light tier is the default and almost always sufficient — these flows
115
- are classification and scheduling, not generation. The default backend
116
- is whichever you picked as your main backend during setup; you can
117
- override per-process here if you want a different mix.
122
+ Light tier (Haiku 4.5 / gpt-5.4-mini) is the default and almost always
123
+ sufficient — these flows are event classification at low cost, not
124
+ generation. The default backend is whichever you picked as your main
125
+ backend during setup; you can override per-process here if you want a
126
+ different mix.
118
127
 
119
128
  The picker is **only meaningful when Google Calendar runs in direct
120
129
  mode.** In delegated mode the daemon hands off all Google Calendar
@@ -157,7 +166,8 @@ rather than an env-style setting; the underlying state lives in the
157
166
  ## Related
158
167
 
159
168
  - [Morning Routine](../routines/morning-routine.md)
160
- - [daily/ files](../memory-files/schedule.md)
169
+ - [Schedule files](../memory-files/schedule.md)
170
+ - [Schedule Approaching](../operations/schedule-approaching.md)
161
171
  - [Delegated Mode](../../concepts/delegated-mode.md)
162
- - [ProcessKeys](../../concepts/process-keys.md)
172
+ - [Process Keys](../../concepts/process-keys.md)
163
173
  - [Observations](../../concepts/observations.md)