@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,49 +6,127 @@ id: process-keys-ref
6
6
  aliases:
7
7
  - process key list
8
8
  - dispatch keys
9
+ - processkey reference
10
+ - routine keys
9
11
  category: reference
10
12
  summary: |
11
13
  The full list of ProcessKeys, what triggers each, and the default
12
14
  tier. Mirrors packages/shared/src/process-key.ts.
13
15
  section: process-keys
14
16
  tags:
17
+ - core
15
18
  - reference
16
19
  - dispatch
20
+ - backends
21
+ - routing
17
22
  status: stable
18
23
  ask_examples:
19
24
  - List all the ProcessKeys
20
25
  - What is the default tier for hourly check?
26
+ - Which ProcessKeys are configurable from the dashboard?
27
+ - What is routine.fetch_window used for?
21
28
  locale: en-US
29
+ keywords:
30
+ - processkey
31
+ - ProcessKey
32
+ - dispatch
33
+ - tier
34
+ - lite
35
+ - medium
36
+ - high
37
+ - routine.morning_routine
38
+ - routine.fetch_window
39
+ - message.dm
40
+ - calendar.change
41
+ - delegated_task
42
+ - gmail_classify
22
43
  created: 2026-04-25
23
- updated: 2026-04-25
44
+ updated: 2026-05-28
45
+ config_keys:
46
+ - monthlyReviewEnabled
47
+ - delegatedTaskHeavyEnabled
48
+ - hourlyCheckIntervalMinutes
49
+ - dayBoundaryHour
50
+ api_endpoints:
51
+ - POST /api/browser-task
52
+ ui_anchors:
53
+ - /settings/models
24
54
  related:
25
55
  - concepts/process-keys
56
+ - concepts/backends-and-tiers
57
+ - features/operations/backend-routing
58
+ - features/integrations/browser-history
59
+ - features/operations/managed-chromium
26
60
  ---
27
61
 
28
62
  # ProcessKeys
29
63
 
64
+ A **ProcessKey** identifies the kind of work being dispatched (an owner DM,
65
+ the morning routine, an hourly check, …). The dispatcher passes a ProcessKey
66
+ to the `BackendRouter`, which resolves it to a `{ main, fallback }` backend
67
+ plus an execution tier — the dispatcher never picks a model directly.
68
+
69
+ The **default tier** column maps to a model size, not a specific id:
70
+
71
+ - `lite` → Haiku-class (cheap, fast, narrow)
72
+ - `medium` → Sonnet-class (the default for most owner-facing and routine work)
73
+ - `high` → Opus-class (opt-in only; see [Tier Locks](#tier-locks) and
74
+ [Delegated Task Hard Caps](#delegated-task-hard-caps))
75
+
30
76
  | ProcessKey | Trigger | Default tier | Configurable |
31
77
  |---|---|---|---|
32
- | `routine.morning_routine` | Daily at `dayBoundaryHour` (default 04:00) | heavy | yes |
33
- | `routine.morning_routine_initial` | One-shot, fired once during the setup wizard's first day | heavy | no |
34
- | `routine.evening_review` | Daily at 18:00 local (fixed) | light | yes |
35
- | `routine.weekly_review` | Friday 18:00 local (fixed) | light | yes |
36
- | `routine.monthly_review` | Last day of month, 18:00 local (fixed) | light | yes |
37
- | `routine.hourly_check` | Every `hourlyCheckIntervalMinutes` (default 60) inside the active window | light | yes |
38
- | `routine.user_profile_sweep` | Periodic agent-day summarization pass | light | no |
39
- | `routine.today_refresh` | Mid-day re-check of `today.md` | light | no |
40
- | `routine.roadmap_refresh` | Periodic roadmap re-derivation | light | no |
78
+ | `routine.morning_routine` | Daily at `dayBoundaryHour` (default 04:00). Parent envelope; LLM dispatch flows through the two stage keys below. | medium | yes |
79
+ | `routine.morning_routine_today` | Stage A of the morning-routine pipeline — `state/today.md` synthesis, schedule fan-out, profile-question pick, user-editable checks. Stage A also populates `plans/roadmap.md` from a daemon-prepared `<roadmap_skeleton>` block on the first-run branch (Phase 7 retired the heavy-tier `routine.morning_routine_initial`). | medium | yes |
80
+ | `routine.morning_routine_journal` | Stage B of the morning-routine pipeline — authors `journal/daily/<yesterday>.md` from the daemon-prepared journal skeleton. | lite | yes |
81
+ | `routine.today_refresh` | Calendar-drift-triggered (calendar change touching today's items; 5-min dedup, fires ~30s later) — drift-refresh of `state/today.md` | medium | yes |
82
+ | `routine.evening_review` | Daily at 18:00 local (fixed) | medium | yes |
83
+ | `routine.weekly_review` | Friday 18:00 local (fixed) | medium | yes |
84
+ | `routine.monthly_review` | Monthly cadence (gated OFF by default — kill switch `monthlyReviewEnabled` in runtime settings). The routine itself is off by default, but its backend/tier binding is still configurable. | medium | yes |
85
+ | `routine.hourly_check` | Every `hourlyCheckIntervalMinutes` (default 60) inside the active window | medium | yes |
86
+ | `routine.hourly_check.triage` | Stage 2 triage gate of every hourly check | lite | yes |
87
+ | `routine.fetch_window` | Pre-pass fetcher spawned before each main routine | lite | yes |
88
+ | `routine.user_profile_sweep` | Periodic agent-day profile summarization pass | medium | no |
89
+ | `routine.roadmap_refresh` | Periodic roadmap re-derivation (NOT in `ROUTINE_WINDOWS` — no `routine.fetch_window` pre-pass; the synthesis session itself drives the native-mode MCP fan-out) | medium | yes |
90
+ | `routine.skill_curation` | Background skill-curation / overlay refinement loop (cron cadence picked at `/settings/self-learning`) | medium | yes |
41
91
  | `routine.custom.<slug>` | Operator-defined recurrence (see [Custom Routines](../features/routines/custom-routines.md)) | configurable | yes |
42
- | `message.dm` | Owner DM | light | yes |
43
- | `message.mention` | @-mention in shared channel | light | yes |
44
- | `dashboard.chat` | `/chat` send | light | yes |
45
- | `dashboard.docs_qa` | Docs QA panel | light (forced) | yes (within forced light) |
46
- | `agent.task` | Future-dated agent action (recurring schedules) | light | yes |
47
- | `agent.dm_task` | DM-tone scheduled session (e.g. morning briefing) | light | yes |
48
- | `schedule.approaching` | Pre-event reminder | light | no |
49
- | `calendar.change` | Calendar event added / moved / cancelled | light | yes |
50
- | `gmail_classify` | Mail classifier inference | light | yes |
51
- | `setup` | Setup wizard one-shot | heavy | no |
92
+ | `message.dm` | Owner DM | medium | yes |
93
+ | `message.mention` | @-mention in a paired Slack channel where the agent is invited (DMs are `message.dm`; Telegram/WhatsApp groups are filtered out) | medium | yes |
94
+ | `dashboard.chat` | `/chat` send | medium | yes |
95
+ | `dashboard.docs_qa` | Docs QA panel — tier is hard-forced to medium regardless of any `message.dm` override; backend choice still inherits | medium (forced) | yes (backend only) |
96
+ | `agent.task` | Future-dated agent action (recurring schedules) | medium | yes |
97
+ | `agent.dm_task` | DM-tone scheduled session (e.g. morning briefing) | medium | yes |
98
+ | `schedule.approaching` | Pre-event reminder | medium | no |
99
+ | `calendar.change` | Calendar event added / moved / cancelled | lite | yes |
100
+ | `gmail_classify` | Mail classifier inference | lite | yes |
101
+ | `delegated_task` | Generic delegated sub-job invocation | lite | no (server-resolved) |
102
+ | `delegated_task_heavy` | Opt-in heavy variant gated by `delegatedTaskHeavyEnabled` (Approve-tier) | high | no (server-resolved) |
103
+ | `observation.summarize` | Per-observation summarizer (cost-reduction §A) | lite | yes |
104
+ | `integration_drift_sync` | Periodic drift-reconciler across connected integrations | lite | no |
105
+ | `knowledge.import` | One-shot heavy session that ingests an owner-uploaded knowledge file | medium | no |
106
+ | `setup` | One-shot setup wizard backend probe / write | medium | no |
107
+ | `git.lifecycle.poll` | Git repo poll observer | lite | yes |
108
+ | `git.push.detected` | New push on a watched git repo | lite | yes |
109
+ | `git.push.force_pushed` | Force-push detected on a watched repo | lite | yes |
110
+ | `git.branch.created` | New branch on a watched repo | lite | yes |
111
+ | `git.tag.created` | New tag on a watched repo | lite | yes |
112
+ | `git.merge_to_default` | Merge into the default branch | lite | yes |
113
+ | `git.local_ahead.stale` | Local branch ahead of remote for too long | lite | yes |
114
+ | `git.project.{init,update,refresh_architecture,retemplate}` | Project-doc lifecycle hooks for watched repos (one-shot, generative — Sonnet by default) | medium | yes |
115
+ | `github.assigned` | Issue / PR assigned to the operator | lite | yes |
116
+ | `github.pull_request.review_requested` | PR review requested | lite | yes |
117
+ | `github.workflow_run.failed` | CI run failed on a tracked repo | lite | yes |
118
+ | `github.security_alert` | Dependabot / security alert raised | lite | yes |
119
+ | `wiki.ingest_url` | URL → vault ingest (WIKI_BUILDER_DESIGN P1) | medium | yes |
120
+ | `wiki.compile` | Raw → wiki synthesis (P1) | medium | yes |
121
+ | `wiki.ask` | Q&A against the compiled wiki (P1) | medium | yes |
122
+ | `wiki.lint` | Health pass over the wiki — writes `90_meta/health/<date>.md` | medium | yes |
123
+ | `wiki.trace` | Chronological evolution of an idea across raw / wiki / outputs | medium | yes |
124
+ | `wiki.connect` | Bridges two domains — writes `30_outputs/<date>-connect-<slug>.md` | medium | yes |
125
+ | `routine.research_cluster_update` | Nightly per-cluster journal append (one row per cluster per day with new activity) | lite | yes |
126
+ | `routine.research_offer_dm` | Two-Option Offer DM composition when a research cluster qualifies | lite | yes |
127
+ | `routine.research_dispatch` | Accept path for the "research dive" option — WebSearch + WebFetch parallel research. Claude-only per §10.3 backend safety floor. | medium | yes |
128
+ | `routine.research_wiki_summary` | Accept path for the "wiki summary" option — writes a wiki note into Obsidian inbox / Notion / local context per integration availability | medium | yes |
129
+ | `browser_task` | Open-ended browser sub-agent (BROWSER_TASK_REDESIGN_PLAN.md §6.1). Claude-only backend floor; dispatched from `POST /api/browser-task` (DM, dashboard, or scheduler). | medium | yes |
52
130
 
53
131
  "Configurable" = the operator can override the backend / tier on
54
132
  `/settings/models` (i.e. the key appears in `CONFIGURABLE_PROCESS_KEYS`).
@@ -57,3 +135,31 @@ global default.
57
135
 
58
136
  This list mirrors `packages/shared/src/process-key.ts`. The codebase
59
137
  is the source of truth.
138
+
139
+ ## Reactive vs Autonomous
140
+
141
+ The set `REACTIVE_PROCESS_KEYS` (owner currently in the loop) is:
142
+ `message.dm`, `message.mention`, `dashboard.chat`, `dashboard.docs_qa`,
143
+ `setup`, `knowledge.import`. Every other key is autonomous and runs
144
+ under the tighter Approve-tier MCP tool-stripping that B-003 Phase 3
145
+ established.
146
+
147
+ ## Tier Locks
148
+
149
+ `TIER_LOCKED_PROCESS_KEYS` supersedes operator pins. Current entry:
150
+
151
+ - `dashboard.docs_qa` → `medium` (DOCS_QA_DESIGN.md §10.1).
152
+
153
+ ## Delegated Task Hard Caps
154
+
155
+ The `delegated_task` / `delegated_task_heavy` request shape is bounded
156
+ by `DELEGATED_TASK_HARD_CAPS` (server-enforced, not user-tunable):
157
+
158
+ - `maxToolCalls` ≤ 15
159
+ - `maxBudgetUsd` ≤ 0.50
160
+ - `maxTimeoutMs` ≤ 300 000
161
+ - `maxSchemaBytes` ≤ 4096
162
+
163
+ `config.ts` holds the *defaults* (`delegatedTaskDefaultMaxToolCalls`,
164
+ …); the caps above bound a prompt-injected caller regardless of the
165
+ per-request fields.
@@ -3,57 +3,101 @@ schema_version: 1
3
3
  slug: reference/skills
4
4
  title: Skills (Reference)
5
5
  id: skills-ref
6
+ aliases:
7
+ - skill index
8
+ - built-in skills
9
+ - skill registry
6
10
  category: reference
7
11
  summary: |
8
12
  Index of built-in skills bundled with Aitne. Each maps to
9
13
  a SKILL.md under agent-assets/skills/<slug>/.
10
14
  section: skills
11
15
  tags:
16
+ - core
12
17
  - reference
13
18
  - skills
14
19
  status: stable
15
20
  ask_examples:
16
21
  - List all the built-in skills
17
22
  - What does the docs-search skill do?
23
+ - What does the wiki skill do?
24
+ - How is each skill scoped?
18
25
  locale: en-US
26
+ keywords:
27
+ - skill
28
+ - skills
29
+ - SKILL.md
30
+ - skill registry
31
+ - overlay
32
+ - context skill
33
+ - mail skill
34
+ - wiki skill
35
+ - notify skill
19
36
  created: 2026-04-25
20
- updated: 2026-05-04
37
+ updated: 2026-05-28
38
+ ui_anchors:
39
+ - /knowledge?tab=skills
40
+ process_keys:
41
+ - dashboard.docs_qa
42
+ api_endpoints:
43
+ - /api/skills
44
+ - /api/skills/manifest/:processKey
45
+ - /api/browser-task
46
+ - /api/browser-history/offers/:slug/accept
47
+ context_files:
48
+ - state/today.md
49
+ - plans/roadmap.md
50
+ - state/profile-questions.md
21
51
  related:
22
52
  - concepts/skills
23
- - features/operations/skill-self-optimization
53
+ - features/integrations/browser-history
54
+ - features/operations/managed-chromium
24
55
  ---
25
56
 
26
57
  # Built-in Skills
27
58
 
59
+ Aitne ships a fixed set of built-in skills the agent loads per session. Most
60
+ are always available; a few are **conditional** — loaded only when a gating
61
+ flag is set (`gmail-lifestyle`, `managed-tasks`) or only for a specific event
62
+ type (`browser-task`, on owner DMs). The table below is the canonical roster.
63
+
28
64
  | Slug | Purpose |
29
65
  |---|---|
66
+ | `agent-actions` | Read the agent action log (`agent_actions` table) for retrospective audits. |
30
67
  | `attach` | Attach a generated or downloaded file to the agent's reply when the user expects a file artifact. |
31
- | `context` | Read / write context Markdown projects, weekly/monthly summaries, agent journal, generic context files. |
68
+ | `browser-history` | Read normalised browser activity through `/api/browser-history/*`. Used by research-cluster journal updates, accept-path dispatches, owner pulls of shopping / reload traces, and the morning research summary. Never reads browser SQLite or profile dirs directly. |
69
+ | `browser-history-respond` | Bridge the owner's natural-language reply to a research-offer DM ("dig deeper" / "summarise") into a structured `/api/browser-history/offers/<slug>/{accept,decline}` call. |
70
+ | `browser-task` | Drive managed Chromium for open-ended browser tasks the user describes in DM. POSTs to `/api/browser-task` with a natural-language description; relays sub-agent clarifications back through DM. Loaded only on `message.received.dm`. |
71
+ | `context` | Read / write context Markdown — projects, weekly summaries, agent journal, generic context files. |
32
72
  | `docs-search` | Read-only search and fetch over the operator-facing docs corpus. Used for `dashboard.docs_qa`. |
33
73
  | `external-services` | Call Google Calendar, the user's Obsidian vault, GitHub, or the agent Skills-management routes through the daemon proxy. |
34
- | `mail` | Unified multi-provider mail interface (Gmail, Outlook, Yahoo, iCloud) — search, label, classify. |
74
+ | `mail` | Unified multi-provider mail interface (Gmail, Outlook, Yahoo, iCloud, generic IMAP) — search, label, classify. |
75
+ | `gmail-lifestyle` | Conditional skill (gated by `gmailLifestyleActive` / `gmailLifestyleActiveForDm`). Merges travel-booking queries, calendar-event commute calculations, and receipt save-to-external-vault. |
76
+ | `managed-tasks` | Register, modify, stop, or one-off-run a Managed Task (`mt_<n>`) — a recurring agent fetch against a third-party app (Zoom / Gmail / Drive / Notion / custom MCP). Conditional skill gated by `managedTasksActive` / `managedTasksActiveForDm`. |
35
77
  | `management-policy` | Capture a durable management rule from a DM ("every morning X", "from now on when Y, do Z"). Persists to the management policy store. |
36
78
  | `notify` | Send a notification through the paired messaging app and decide whether notifying is warranted. |
37
79
  | `notion` | Read, query, search, create, update, and archive Notion pages and databases. |
38
80
  | `observations` | Drain the pending-observations queue and inspect raw external-source change records. |
81
+ | `project-doc` | Read / write Git-backed and manual project context docs. Git-managed repos write to `knowledge/repos/<slug>/overview.md` plus per-day `journal/repos/<slug>/<date>.md`; manual non-git project pages live at `plans/projects/<slug>.md`. |
39
82
  | `reading` | Query reading history and highlights; owns the reading-taste profile via the `books` and `reading_highlights` tables. |
40
- | `receipts` | Query and manage receipt / invoice attachments detected from Gmail; download and save to the external Obsidian vault. |
41
- | `roadmap` | Read / write `roadmap.md` (cross-request write lock). |
83
+ | `roadmap` | Read / write `plans/roadmap.md` (cross-request write lock). |
42
84
  | `schedule` | Schedule future agent wake-ups and DMs via the daemon (writes `agent_schedule` and `recurring_schedules` rows). |
43
- | `today` | Read or write `today.md` morning routines, hourly checks, DMs that need a today snapshot. |
44
- | `travel` | Query the travel-bookings store (flights, hotels, restaurants, trains). |
45
- | `travel-time` | Estimate door-to-door travel time via Google Maps; calculate departure times. |
46
- | `user-interview` | Manage the profile-interview queue at `agent/profile-questions.md`; ask one question at a time. |
47
- | `user-profile` | Record user facts identity, people, work, expertise, habits, goals into the `user/*` slices. |
85
+ | `scheduled-managed-task` | Surface and act on Managed Tasks that are due now. |
86
+ | `today` | Read or write `state/today.md` morning routines, hourly checks, DMs that need a today snapshot. |
87
+ | `user-interview` | Manage the profile-interview queue at `state/profile-questions.md`; ask one question at a time. |
88
+ | `user-profile` | Record user facts identity, people, work, expertise, habits, goals — into the `identity/*` slices (`profile.md`, `people.md`, `work.md`, …). |
89
+ | `wiki` | Build and maintain the personal wiki workspace `!ingest` / `!compile` / `!ask` / `!lint` / `!trace` / `!connect`. |
90
+
91
+ ## How skills are sourced
48
92
 
49
93
  The source of truth is each skill's `SKILL.md` under
50
94
  `agent-assets/skills/<slug>/`. The `description` field in that file's
51
95
  frontmatter is what the dispatcher uses for runtime skill selection.
52
96
 
53
- A subset of these skills' sections (knowledge layout, routing
54
- tables, search recipes, etc.) is also refined at runtime through
55
- JSON **overlays** maintained by the skill-curation loop. The seed
56
- files in `agent-assets/skills/` are never rewritten overlays are
57
- applied at session-init by the SkillsCompiler and live under
58
- `<dataDir>/overlays/<skill>/<section-id>.json`. See
59
- [Skill Self-Optimization](../features/operations/skill-self-optimization.md).
97
+ ## Runtime overlays
98
+
99
+ A subset of these skills' sections (knowledge layout, routing tables, search
100
+ recipes, etc.) is refined at runtime through JSON **overlays** maintained by
101
+ the skill-curation loop. The seed files in `agent-assets/skills/` are never
102
+ rewritten — overlays are applied at session-init by the `SkillsCompiler` and
103
+ live under `<dataDir>/overlays/<skill>/<section-id>.json`.
@@ -10,22 +10,41 @@ category: troubleshooting
10
10
  summary: |
11
11
  A backend's auth-health card flipped amber or red. Re-authenticate
12
12
  via the backend's CLI or paste a fresh API key.
13
- section: auth-failed
13
+ section: troubleshooting
14
14
  tags:
15
15
  - troubleshooting
16
16
  - safety
17
17
  - backends
18
+ - health
18
19
  status: stable
19
20
  ask_examples:
20
21
  - Why is the auth-health card amber?
21
22
  - How do I re-login to Claude?
23
+ - The auth-health pill went red, what now?
22
24
  locale: en-US
23
25
  created: 2026-04-25
24
- updated: 2026-05-04
26
+ updated: 2026-05-28
27
+ keywords:
28
+ - auth failed
29
+ - auth error
30
+ - subscription warning
31
+ - API key invalid
32
+ - BackendDecisiveFailure
33
+ - re-authenticate
25
34
  related:
26
35
  - concepts/auth-health
27
36
  - concepts/costs-and-quotas
28
37
  - features/operations/backend-routing
38
+ ui_anchors:
39
+ - /settings/models
40
+ - /connections
41
+ config_keys:
42
+ - authPreflightFreshnessMs
43
+ - authProbeDisabled
44
+ api_endpoints:
45
+ - POST /api/backends/:backendId/check-auth
46
+ - POST /api/backends/:backendId/recovery/start
47
+ - POST /api/backends/:backendId/recovery/code
29
48
  ---
30
49
 
31
50
  # Auth Failed
@@ -44,32 +63,47 @@ related:
44
63
  `claude`, `codex login`, `gemini auth` — and that session timed
45
64
  out). The recommended fix is to register an API key.
46
65
  3. **Account-level scope change** at the provider (key disabled,
47
- project deleted, billing suspended). For cloud providers
48
- (Bedrock / Vertex / Foundry / Azure OpenAI / Gemini-Vertex),
66
+ project deleted, billing suspended). For cloud-provider auth
67
+ (Bedrock / Vertex / Foundry for Claude, Vertex AI for Gemini),
49
68
  IAM-role / service-account changes show up the same way.
50
69
 
51
70
  ## Diagnostic Steps
52
71
 
53
72
  1. Click the pill to see the recovery hint.
54
- 2. Check `/settings/models` the backend card shows whether it is
73
+ 2. Open `/settings/models`. The backend card shows whether it is
55
74
  running on a registered API key (the supported path) or on the
56
- subscription fallback. The `SubscriptionAuthWarning` banner
57
- appears whenever any backend is on the fallback.
58
- 3. If on the API key, paste a fresh key on `/settings/models` — the
59
- daemon mirrors it into `process.env` and re-probes immediately.
60
- 4. If on the subscription fallback, the recommended fix is to
61
- register an API key on `/settings/models` (or one of the cloud-
62
- provider options — see
63
- [Use a Cloud Provider for Models](../guides/use-cloud-providers.md)).
64
- If you cannot or do not want to, run the corresponding CLI login
65
- (`claude`, `codex login`, `gemini auth`) and the daemon picks up
66
- the new credentials on the next probe. Note that this fallback
67
- is not provider-supported for automated agent use — see
68
- [Costs and Quotas](../concepts/costs-and-quotas.md).
75
+ subscription fallback. The **API-key panel always carries the
76
+ subscription-auth warning** registering a paid key is the
77
+ recommended path because several providers (Anthropic in
78
+ particular) do not support running automated agents on a
79
+ subscription plan.
80
+
81
+ ## Fixing It
82
+
83
+ **If the backend is on a registered API key:** paste a fresh key on
84
+ `/settings/models`. The daemon mirrors it into `process.env` and
85
+ re-probes immediately no restart needed.
86
+
87
+ **If the backend is on the subscription fallback:** the recommended
88
+ fix is to register an API key on `/settings/models`. The same picker
89
+ also exposes cloud-provider auth — Bedrock / Vertex / Foundry for
90
+ Claude, Vertex AI for Gemini. (Codex Azure OpenAI is not offered here;
91
+ it needs a `~/.codex/config.toml` the env-mirroring path cannot write,
92
+ so Codex stays direct-key only.)
93
+
94
+ If you cannot or do not want to register a key, re-run the
95
+ corresponding CLI login (`claude`, `codex login`, `gemini auth`) and
96
+ the daemon picks up the new credentials on the next probe. Some
97
+ backends also expose an in-dashboard device-code recovery flow
98
+ (`recovery/start` → `recovery/code`) reachable from the pill's
99
+ recovery hint. Note that subscription auth is not provider-supported
100
+ for automated agent use — see
101
+ [Costs and Quotas](../concepts/costs-and-quotas.md).
69
102
 
70
103
  ## Confirming the Fix
71
104
 
72
- - The pill flips green within `authPreflightFreshnessMs`.
105
+ The pill flips green within `authPreflightFreshnessMs` of the next
106
+ probe (default 10 minutes).
73
107
 
74
108
  ## Related
75
109
 
@@ -3,53 +3,127 @@ schema_version: 1
3
3
  slug: troubleshooting/dashboard-shows-degraded
4
4
  title: Dashboard Shows Degraded
5
5
  id: dashboard-shows-degraded
6
+ aliases:
7
+ - dashboard degraded
8
+ - degraded banner
9
+ - daemon degraded
10
+ - primary vault unreachable
11
+ - writes are blocked
6
12
  category: troubleshooting
7
13
  summary: |
8
- The DegradedBanner appears at the top of every page when the daemon
9
- reports a critical-write block. Usually an integration auth failure
10
- or a context-file lock issue.
11
- section: dashboard-shows-degraded
14
+ A red "Daemon degraded" banner appears above every page when the daemon
15
+ enters degraded mode. This almost always means your Obsidian-style primary
16
+ vault is unreachable (path moved, drive unplugged, or not yet seeded), or a
17
+ context migration is in progress. While degraded, every context write is
18
+ refused with HTTP 503.
19
+ section: troubleshooting
20
+ status: stable
12
21
  tags:
13
22
  - troubleshooting
14
23
  - operations
15
- status: stable
24
+ - health
25
+ - memory
16
26
  ask_examples:
17
27
  - Why is the dashboard showing a degraded banner?
18
- - What does "writes are blocked" mean?
28
+ - What does "primary vault unreachable" mean?
29
+ - Why are context writes being refused with 503?
19
30
  locale: en-US
20
31
  created: 2026-04-25
21
- updated: 2026-04-25
32
+ updated: 2026-05-28
33
+ keywords:
34
+ - degraded
35
+ - degraded banner
36
+ - primary vault unreachable
37
+ - management mode
38
+ - /api/health
39
+ - "503"
40
+ config_keys:
41
+ - vaultMode
42
+ - primaryVaultPath
43
+ api_endpoints:
44
+ - GET /api/health
45
+ context_files:
46
+ - policies/management.md
47
+ ui_anchors:
48
+ - /settings
49
+ - /health
22
50
  related:
23
51
  - troubleshooting/auth-failed
24
- - features/memory-files/today
52
+ - guides/use-an-existing-obsidian-vault
53
+ - concepts/memory-model
25
54
  ---
26
55
 
27
56
  # Dashboard Shows Degraded
28
57
 
29
58
  ## What You See
30
59
 
31
- - A red banner at the top of every page reading
32
- "Writes are blocked".
33
- - Routines that write context files fail.
60
+ - A red banner pinned above every page. Its headline is either
61
+ **"Primary vault unreachable"** or **"Daemon degraded: `<reason>`"**, often
62
+ followed by the offending path.
63
+ - An **Open Management Mode** button on the right of the banner (links to
64
+ Settings → Management Mode).
65
+ - Any routine or skill that writes a context file fails: the context API
66
+ returns **HTTP 503** for every `POST`/`PUT`/`PATCH`/`DELETE` while degraded.
67
+
68
+ ## What "Degraded" Actually Means
69
+
70
+ Degraded mode is set by the daemon's vault-health probe, which re-runs every
71
+ 30 seconds. It is **not** about backend auth, message delivery, or a stuck
72
+ write lock — it is specifically about the daemon being unable to safely write
73
+ your memory files.
34
74
 
35
- ## Most Likely Causes
75
+ You only see this banner if you switched memory to an **Obsidian-style vault**
76
+ (`vaultMode: "obsidian"`). The default `vaultMode: "plain"` stores memory under
77
+ `~/.personal-agent/context/` and does not enter this state.
36
78
 
37
- 1. The today-write-lock did not release (rare; daemon was killed
38
- mid-write).
39
- 2. An integration auth failure that propagated.
40
- 3. The data directory ran out of disk.
79
+ The `reason` in the banner is one of:
80
+
81
+ | `reason` | Meaning |
82
+ |--------------------------------|---------|
83
+ | `primary_vault_unreachable` | The configured vault path doesn't exist, isn't a directory, or isn't writable (e.g. an external drive was unplugged). |
84
+ | `primary_vault_not_configured` | Vault mode is Obsidian but no `primaryVaultPath` is set. |
85
+ | `primary_vault_missing_content`| The path is reachable but doesn't carry the expected vault markers (it was never seeded / restructured). |
86
+ | `migration_in_progress` | A context-vault migration (`/api/setup/migrate-context`) is running. Writes are gated until it finishes; reads still work. This one clears itself. |
41
87
 
42
88
  ## Diagnostic Steps
43
89
 
44
- 1. `pa logs` search for the most recent error.
45
- 2. Confirm `df -h` shows free space on the data directory.
46
- 3. Check for a stale lock file in `~/.personal-agent/`.
90
+ 1. **Read the banner.** The `reason` and `path` tell you most of the story.
91
+ 2. `aitne logs` — look for `Vault health probe entered degraded mode`; the
92
+ logged `reason` matches the banner.
93
+ 3. If the reason is `migration_in_progress`, **wait** — the migration releases
94
+ the write gate when it completes; do not restart mid-migration.
95
+ 4. Otherwise the issue is your vault path. Confirm it exists and is writable:
96
+ - `ls -ld "<path-from-banner>"` — the directory must exist.
97
+ - `df -h "<path-from-banner>"` — confirm the volume is mounted with free
98
+ space (a full or read-only filesystem reports as `not_writable`).
99
+ - If it lives on an external drive, re-mount the drive.
100
+
101
+ ## Fixing It
102
+
103
+ Open **Settings → Management Mode** (the banner's button, or `/settings`):
104
+
105
+ - **Path moved or drive unplugged** — restore the original path, or point
106
+ `primaryVaultPath` at the vault's current location.
107
+ - **You don't need an external vault** — switch Management Mode back to
108
+ **This app** (`vaultMode: "plain"`); memory returns to
109
+ `~/.personal-agent/context/`.
110
+ - **`primary_vault_missing_content`** — the target needs to be seeded. Re-run
111
+ the Obsidian vault setup so `policies/management.md` and the rest of the
112
+ skeleton are written into it. See
113
+ [Use an existing Obsidian vault](../guides/use-an-existing-obsidian-vault.md).
47
114
 
48
115
  ## Confirming the Fix
49
116
 
50
- - The banner clears within 30 seconds of the underlying issue
51
- resolving.
117
+ - The vault-health probe re-runs every 30 seconds, and the dashboard refetches
118
+ `/api/health` every 10 seconds. Once the path is reachable again, the banner
119
+ clears within roughly half a minute — no restart needed.
120
+ - To check from the CLI without the dashboard, query the daemon:
121
+ `curl -s localhost:8321/api/health | grep -o '"status":"[^"]*"'` — it should
122
+ report `"status":"ok"` (degraded reports `"status":"degraded"` with a
123
+ populated `degraded` object).
52
124
 
53
125
  ## Related
54
126
 
55
- - [Auth Failed](auth-failed.md)
127
+ - [Auth Failed](auth-failed.md) — unrelated; covers backend auth, not the vault.
128
+ - [Use an existing Obsidian vault](../guides/use-an-existing-obsidian-vault.md)
129
+ - [Memory model](../concepts/memory-model.md)