@aitne-sh/aitne 0.1.8 → 0.1.10

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 (308) hide show
  1. package/README.md +251 -164
  2. package/agent-assets/agent-profiles/_safety.md +3 -3
  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 +2 -2
  6. package/agent-assets/agent-profiles/routine-fetch-window.md +30 -19
  7. package/agent-assets/agents/context-index-reconcile/agent.md +52 -0
  8. package/agent-assets/agents/evening-review/agent.md +53 -0
  9. package/agent-assets/agents/hourly-check/agent.md +62 -0
  10. package/agent-assets/agents/monthly-review/agent.md +55 -0
  11. package/agent-assets/agents/morning-routine/agent.md +78 -0
  12. package/agent-assets/agents/roadmap-maintenance/agent.md +52 -0
  13. package/agent-assets/agents/skill-curation/agent.md +52 -0
  14. package/agent-assets/agents/user-profile-sweep-evening/agent.md +48 -0
  15. package/agent-assets/agents/user-profile-sweep-morning/agent.md +53 -0
  16. package/agent-assets/agents/weekly-review/agent.md +51 -0
  17. package/agent-assets/docs/concepts/agent-day.md +13 -11
  18. package/agent-assets/docs/concepts/auth-health.md +47 -10
  19. package/agent-assets/docs/concepts/backends-and-tiers.md +66 -31
  20. package/agent-assets/docs/concepts/costs-and-quotas.md +51 -15
  21. package/agent-assets/docs/concepts/delegated-mode.md +56 -17
  22. package/agent-assets/docs/concepts/memory-model.md +77 -34
  23. package/agent-assets/docs/concepts/observations.md +49 -11
  24. package/agent-assets/docs/concepts/process-keys.md +56 -22
  25. package/agent-assets/docs/concepts/routines.md +60 -33
  26. package/agent-assets/docs/concepts/safety-and-execution.md +50 -21
  27. package/agent-assets/docs/concepts/safety-model.md +61 -50
  28. package/agent-assets/docs/concepts/skills.md +34 -18
  29. package/agent-assets/docs/features/integrations/browser-history.md +196 -0
  30. package/agent-assets/docs/features/integrations/calendar.md +39 -29
  31. package/agent-assets/docs/features/integrations/git.md +18 -7
  32. package/agent-assets/docs/features/integrations/github.md +84 -33
  33. package/agent-assets/docs/features/integrations/mail.md +61 -17
  34. package/agent-assets/docs/features/integrations/notion.md +18 -6
  35. package/agent-assets/docs/features/integrations/obsidian.md +28 -5
  36. package/agent-assets/docs/features/lifestyle/git.md +44 -40
  37. package/agent-assets/docs/features/lifestyle/reading.md +57 -22
  38. package/agent-assets/docs/features/lifestyle/receipts.md +51 -21
  39. package/agent-assets/docs/features/lifestyle/travel-bookings.md +77 -14
  40. package/agent-assets/docs/features/memory-files/agent-journal.md +132 -53
  41. package/agent-assets/docs/features/memory-files/agent-lessons.md +177 -0
  42. package/agent-assets/docs/features/memory-files/projects.md +73 -17
  43. package/agent-assets/docs/features/memory-files/roadmap.md +54 -11
  44. package/agent-assets/docs/features/memory-files/schedule.md +113 -70
  45. package/agent-assets/docs/features/memory-files/today.md +46 -21
  46. package/agent-assets/docs/features/memory-files/user-profile.md +63 -33
  47. package/agent-assets/docs/features/messaging/bang-commands.md +113 -36
  48. package/agent-assets/docs/features/messaging/dashboard-chat.md +43 -21
  49. package/agent-assets/docs/features/messaging/discord.md +35 -4
  50. package/agent-assets/docs/features/messaging/overview.md +37 -19
  51. package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +94 -27
  52. package/agent-assets/docs/features/messaging/slack.md +67 -14
  53. package/agent-assets/docs/features/messaging/telegram.md +22 -8
  54. package/agent-assets/docs/features/messaging/whatsapp.md +71 -17
  55. package/agent-assets/docs/features/operations/activity-and-conversations.md +45 -15
  56. package/agent-assets/docs/features/operations/approvals.md +49 -16
  57. package/agent-assets/docs/features/operations/backend-routing.md +68 -16
  58. package/agent-assets/docs/features/operations/cost-tracking.md +84 -17
  59. package/agent-assets/docs/features/operations/managed-chromium.md +222 -0
  60. package/agent-assets/docs/features/operations/notifications.md +52 -11
  61. package/agent-assets/docs/features/operations/quiet-hours.md +64 -40
  62. package/agent-assets/docs/features/operations/schedule-approaching.md +54 -24
  63. package/agent-assets/docs/features/routines/custom-routines.md +98 -26
  64. package/agent-assets/docs/features/routines/evening-review.md +82 -21
  65. package/agent-assets/docs/features/routines/hourly-check.md +149 -29
  66. package/agent-assets/docs/features/routines/morning-routine.md +54 -35
  67. package/agent-assets/docs/features/routines/weekly-review.md +46 -21
  68. package/agent-assets/docs/features/wiki/commands.md +26 -16
  69. package/agent-assets/docs/features/wiki/cost-and-approval.md +241 -0
  70. package/agent-assets/docs/features/wiki/dashboard.md +256 -0
  71. package/agent-assets/docs/features/wiki/overview.md +70 -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 +34 -23
  75. package/agent-assets/docs/getting-started/02-first-steps.md +17 -10
  76. package/agent-assets/docs/getting-started/03-what-can-this-do.md +25 -14
  77. package/agent-assets/docs/getting-started/04-first-day.md +39 -21
  78. package/agent-assets/docs/glossary.md +235 -24
  79. package/agent-assets/docs/guides/add-a-custom-routine.md +63 -23
  80. package/agent-assets/docs/guides/backup-and-restore.md +80 -16
  81. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +57 -26
  82. package/agent-assets/docs/guides/build-your-wiki.md +22 -9
  83. package/agent-assets/docs/guides/change-which-model-handles-x.md +64 -10
  84. package/agent-assets/docs/guides/connect-a-new-mail-account.md +66 -15
  85. package/agent-assets/docs/guides/explore-with-trace-and-connect.md +32 -14
  86. package/agent-assets/docs/guides/import-knowledge-file.md +50 -40
  87. package/agent-assets/docs/guides/install-and-run.md +49 -20
  88. package/agent-assets/docs/guides/maintain-wiki-health.md +35 -10
  89. package/agent-assets/docs/guides/migrate-machines.md +74 -18
  90. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +111 -60
  91. package/agent-assets/docs/guides/pause-the-agent.md +69 -24
  92. package/agent-assets/docs/guides/reinstall-cleanly.md +88 -18
  93. package/agent-assets/docs/guides/setup-wizard.md +116 -54
  94. package/agent-assets/docs/guides/switch-default-backend.md +62 -16
  95. package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +30 -14
  96. package/agent-assets/docs/reference/api.md +153 -32
  97. package/agent-assets/docs/reference/cli-commands.md +39 -18
  98. package/agent-assets/docs/reference/config.md +241 -49
  99. package/agent-assets/docs/reference/disallowed-tools.md +34 -13
  100. package/agent-assets/docs/reference/keyboard-shortcuts.md +34 -10
  101. package/agent-assets/docs/reference/knowledge-layout.md +629 -0
  102. package/agent-assets/docs/reference/process-keys.md +62 -6
  103. package/agent-assets/docs/reference/skills.md +41 -14
  104. package/agent-assets/docs/troubleshooting/auth-failed.md +51 -21
  105. package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +97 -28
  106. package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +86 -22
  107. package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +68 -24
  108. package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +80 -20
  109. package/agent-assets/docs/troubleshooting/observation-not-detected.md +73 -21
  110. package/agent-assets/docs/troubleshooting/quota-exhausted.md +33 -8
  111. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +126 -54
  112. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +29 -12
  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 +1 -1
  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 +25 -41
  119. package/agent-assets/skills/agent-create/SKILL.md +158 -0
  120. package/agent-assets/skills/attach/SKILL.md +10 -29
  121. package/agent-assets/skills/browser-history/SKILL.md +211 -0
  122. package/agent-assets/skills/browser-history-respond/SKILL.md +111 -0
  123. package/agent-assets/skills/browser-task/SKILL.md +164 -0
  124. package/agent-assets/skills/context/SKILL.md +35 -44
  125. package/agent-assets/skills/context/curation.json +14 -14
  126. package/agent-assets/skills/context/references/api.md +52 -40
  127. package/agent-assets/skills/context/references/required-frontmatter.md +13 -12
  128. package/agent-assets/skills/context/references/snapshot-files.md +18 -17
  129. package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +8 -8
  130. package/agent-assets/skills/context/seeds/frontmatter-requirements.seed.json +3 -3
  131. package/agent-assets/skills/docs-search/SKILL.md +23 -34
  132. package/agent-assets/skills/external-services/SKILL.delegated.claude.md +17 -114
  133. package/agent-assets/skills/external-services/SKILL.delegated.codex.md +17 -113
  134. package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +17 -113
  135. package/agent-assets/skills/external-services/SKILL.md +3 -3
  136. package/agent-assets/skills/external-services/SKILL.native.claude.md +7 -7
  137. package/agent-assets/skills/external-services/SKILL.native.codex.md +7 -7
  138. package/agent-assets/skills/external-services/SKILL.native.gemini.md +4 -4
  139. package/agent-assets/skills/external-services/references/calendar-apple.md +2 -2
  140. package/agent-assets/skills/external-services/references/calendar-outlook.md +1 -1
  141. package/agent-assets/skills/external-services/references/exec-errors.md +32 -0
  142. package/agent-assets/skills/external-services/references/obsidian.md +2 -2
  143. package/agent-assets/skills/external-services/references/skills-crud.md +5 -5
  144. package/agent-assets/skills/gmail-lifestyle/SKILL.md +11 -83
  145. package/agent-assets/skills/gmail-lifestyle/references/receipts-api.md +4 -0
  146. package/agent-assets/skills/gmail-lifestyle/references/travel-bookings-api.md +9 -0
  147. package/agent-assets/skills/mail/SKILL.delegated.claude.md +15 -18
  148. package/agent-assets/skills/mail/SKILL.delegated.codex.md +11 -6
  149. package/agent-assets/skills/mail/SKILL.delegated.gemini.md +11 -6
  150. package/agent-assets/skills/mail/SKILL.md +10 -18
  151. package/agent-assets/skills/mail/SKILL.native.claude.md +8 -7
  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 +10 -3
  155. package/agent-assets/skills/mail/references/examples.md +2 -1
  156. package/agent-assets/skills/mail/references/providers.md +1 -1
  157. package/agent-assets/skills/managed-tasks/SKILL.md +48 -81
  158. package/agent-assets/skills/managed-tasks/references/errors.md +33 -19
  159. package/agent-assets/skills/managed-tasks/references/output-path.md +33 -17
  160. package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +7 -5
  161. package/agent-assets/skills/management-policy/SKILL.md +42 -42
  162. package/agent-assets/skills/management-policy/curation.json +1 -1
  163. package/agent-assets/skills/management-policy/references/policy-workflow.md +11 -12
  164. package/agent-assets/skills/management-policy/seeds/policy-file-shape.seed.json +1 -1
  165. package/agent-assets/skills/notify/SKILL.md +14 -16
  166. package/agent-assets/skills/notify/references/priority.md +28 -20
  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 +17 -17
  171. package/agent-assets/skills/notion/SKILL.native.claude.md +11 -7
  172. package/agent-assets/skills/notion/SKILL.native.codex.md +10 -5
  173. package/agent-assets/skills/notion/SKILL.native.gemini.md +10 -5
  174. package/agent-assets/skills/observations/SKILL.md +29 -28
  175. package/agent-assets/skills/observations/references/fetch-fallback.md +22 -0
  176. package/agent-assets/skills/project-doc/SKILL.md +10 -7
  177. package/agent-assets/skills/project-doc/curation.json +3 -3
  178. package/agent-assets/skills/project-doc/seeds/project-shape.seed.json +8 -5
  179. package/agent-assets/skills/project-doc/seeds/slug-grammar.seed.json +5 -5
  180. package/agent-assets/skills/reading/SKILL.md +18 -42
  181. package/agent-assets/skills/reading/references/reading-taste.md +7 -7
  182. package/agent-assets/skills/roadmap/SKILL.md +8 -24
  183. package/agent-assets/skills/roadmap/curation.json +1 -1
  184. package/agent-assets/skills/roadmap/references/api.md +21 -11
  185. package/agent-assets/skills/roadmap/references/cross-check.md +15 -8
  186. package/agent-assets/skills/roadmap/references/horizon-tags.md +11 -0
  187. package/agent-assets/skills/roadmap/references/migration.md +12 -10
  188. package/agent-assets/skills/roadmap/references/retention.md +18 -0
  189. package/agent-assets/skills/roadmap/seeds/entry-types.seed.json +1 -1
  190. package/agent-assets/skills/schedule/SKILL.md +41 -50
  191. package/agent-assets/skills/schedule/references/batch.md +2 -2
  192. package/agent-assets/skills/schedule/references/errors.md +7 -4
  193. package/agent-assets/skills/schedule/references/importance.md +23 -0
  194. package/agent-assets/skills/schedule/references/model-selection.md +3 -3
  195. package/agent-assets/skills/schedule/references/recurrence-rule.md +7 -5
  196. package/agent-assets/skills/scheduled-managed-task/SKILL.md +77 -70
  197. package/agent-assets/skills/today/SKILL.md +24 -83
  198. package/agent-assets/skills/today/curation.json +3 -3
  199. package/agent-assets/skills/today/references/agent-plan-lifecycle.md +6 -5
  200. package/agent-assets/skills/today/references/today-skeleton.md +66 -0
  201. package/agent-assets/skills/today/seeds/agent-notes-flavors.seed.json +1 -1
  202. package/agent-assets/skills/today/seeds/section-shape.seed.json +7 -7
  203. package/agent-assets/skills/user-interview/SKILL.md +21 -93
  204. package/agent-assets/skills/user-interview/references/op-briefing.md +3 -3
  205. package/agent-assets/skills/user-interview/references/op-dm-handler.md +88 -0
  206. package/agent-assets/skills/user-interview/references/op-morning.md +1 -1
  207. package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +9 -1
  208. package/agent-assets/skills/user-profile/SKILL.md +29 -39
  209. package/agent-assets/skills/user-profile/curation.json +4 -4
  210. package/agent-assets/skills/user-profile/references/character-preferences.md +3 -3
  211. package/agent-assets/skills/user-profile/seeds/routing-table.seed.json +8 -8
  212. package/agent-assets/skills/user-profile/seeds/topic-files.seed.json +6 -6
  213. package/agent-assets/skills/wiki/wiki-ask/SKILL.md +1 -1
  214. package/agent-assets/skills/wiki/wiki-compile/SKILL.md +9 -8
  215. package/agent-assets/skills/wiki/wiki-connect/SKILL.md +32 -5
  216. package/agent-assets/skills/wiki/wiki-ingest/SKILL.md +6 -50
  217. package/agent-assets/skills/wiki/wiki-ingest/references/curl-errors.md +58 -0
  218. package/agent-assets/skills/wiki/wiki-lint/SKILL.md +20 -14
  219. package/agent-assets/skills/wiki/wiki-trace/SKILL.md +10 -5
  220. package/agent-assets/skills/wiki/wiki-vault-rules/SKILL.md +2 -0
  221. package/agent-assets/system-prompts/routine-fetch-window.md +22 -12
  222. package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +4 -2
  223. package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +4 -2
  224. package/agent-assets/task-flows/_partials/capture-user-info.md +2 -2
  225. package/agent-assets/task-flows/_partials/dm-intent.long-horizon.md +1 -1
  226. package/agent-assets/task-flows/_partials/dm-intent.project.md +9 -9
  227. package/agent-assets/task-flows/_partials/feedback-capture.md +30 -0
  228. package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +3 -2
  229. package/agent-assets/task-flows/_partials/notion-acquire.notion.md +10 -5
  230. package/agent-assets/task-flows/browser_task.md +84 -0
  231. package/agent-assets/task-flows/github.assigned.md +1 -1
  232. package/agent-assets/task-flows/github.pull_request.review_requested.md +2 -2
  233. package/agent-assets/task-flows/github.workflow_run.failed.md +2 -2
  234. package/agent-assets/task-flows/knowledge.import.md +14 -14
  235. package/agent-assets/task-flows/message.received.dm.md +13 -4
  236. package/agent-assets/task-flows/message.received.dm_first.md +7 -3
  237. package/agent-assets/task-flows/routine.custom.md +3 -3
  238. package/agent-assets/task-flows/routine.evening_review.md +88 -8
  239. package/agent-assets/task-flows/routine.fetch_window.md +2 -2
  240. package/agent-assets/task-flows/routine.hourly_check.md +16 -12
  241. package/agent-assets/task-flows/routine.monthly_review.md +93 -21
  242. package/agent-assets/task-flows/routine.morning_routine_journal.md +119 -97
  243. package/agent-assets/task-flows/routine.morning_routine_today.md +43 -43
  244. package/agent-assets/task-flows/routine.research_cluster_update.md +35 -0
  245. package/agent-assets/task-flows/routine.research_dispatch.md +38 -0
  246. package/agent-assets/task-flows/routine.research_offer_dm.md +125 -0
  247. package/agent-assets/task-flows/routine.research_wiki_summary.md +53 -0
  248. package/agent-assets/task-flows/routine.roadmap_refresh.md +10 -10
  249. package/agent-assets/task-flows/routine.today_refresh.md +4 -4
  250. package/agent-assets/task-flows/routine.user_profile_sweep.md +10 -10
  251. package/agent-assets/task-flows/routine.weekly_review.md +114 -24
  252. package/agent-assets/task-flows/schedule.approaching.md +0 -1
  253. package/agent-assets/task-flows/scheduled.dm.md +5 -5
  254. package/agent-assets/task-flows/scheduled.task.md +4 -4
  255. package/agent-assets/task-flows/setup.initial.md +21 -21
  256. package/agent-assets/task-flows/setup.update.md +2 -2
  257. package/agent-assets/task-flows/wiki.trace.md +1 -1
  258. package/agent-assets/templates/README.md +27 -20
  259. package/agent-assets/templates/_index.md +42 -26
  260. package/agent-assets/templates/_manifest.json +34 -99
  261. package/agent-assets/templates/{user → identity}/_index.md +1 -1
  262. package/agent-assets/templates/{user → identity}/profile.md +2 -2
  263. package/agent-assets/templates/{dossiers → knowledge/dossiers}/_index.md +1 -1
  264. package/agent-assets/templates/{projects → plans/projects}/_active.base +1 -1
  265. package/agent-assets/templates/policies/_index.md +21 -0
  266. package/agent-assets/templates/{rules → policies}/journal-export.md +1 -1
  267. package/agent-assets/templates/{rules → policies}/journal-format.md +5 -5
  268. package/agent-assets/templates/{rules/policies → policies/management-captures}/_index.md +2 -2
  269. package/agent-assets/templates/{rules → policies}/management.md +3 -3
  270. package/agent-assets/templates/{rules → policies}/mcp.md +1 -1
  271. package/agent-assets/templates/{rules → policies}/redaction.md +1 -1
  272. package/agent-assets/templates/{routines → policies/routines}/_index.md +1 -1
  273. package/agent-assets/templates/{routines → policies/routines}/evening.md +2 -2
  274. package/agent-assets/templates/{routines → policies/routines}/hourly.md +1 -1
  275. package/agent-assets/templates/{routines → policies/routines}/monthly.md +2 -2
  276. package/bin/aitne.mjs +58 -15
  277. package/package.json +5 -4
  278. package/scripts/commands/doctor.mjs +25 -10
  279. package/scripts/commands/run-now.mjs +6 -21
  280. package/scripts/lib/ports.d.mts +27 -0
  281. package/scripts/lib/ports.mjs +36 -0
  282. package/scripts/lib/process-identity.d.mts +46 -0
  283. package/scripts/lib/process-identity.mjs +193 -0
  284. package/scripts/lib/read-api-token.mjs +176 -0
  285. package/scripts/start.mjs +16 -5
  286. package/agent-assets/docs/features/lifestyle/travel-time.md +0 -58
  287. package/agent-assets/skills/gmail-lifestyle/references/travel-time-api.md +0 -59
  288. package/agent-assets/skills/schedule/references/recurring.md +0 -185
  289. package/agent-assets/templates/context-index.md +0 -42
  290. package/agent-assets/templates/rules/_index.md +0 -19
  291. /package/agent-assets/templates/{user → identity}/expertise.md +0 -0
  292. /package/agent-assets/templates/{user → identity}/goals.md +0 -0
  293. /package/agent-assets/templates/{user → identity}/people.md +0 -0
  294. /package/agent-assets/templates/{user → identity}/personal.md +0 -0
  295. /package/agent-assets/templates/{user → identity}/work.md +0 -0
  296. /package/agent-assets/templates/{agent/journal.md → journal/agent.md} +0 -0
  297. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/evening.md +0 -0
  298. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/hourly.md +0 -0
  299. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/monthly.md +0 -0
  300. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/morning.md +0 -0
  301. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/roadmap.md +0 -0
  302. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/weekly.md +0 -0
  303. /package/agent-assets/templates/{projects → plans/projects}/_index.md +0 -0
  304. /package/agent-assets/templates/{roadmap.md → plans/roadmap.md} +0 -0
  305. /package/agent-assets/templates/{routines → policies/routines}/morning.md +0 -0
  306. /package/agent-assets/templates/{routines → policies/routines}/weekly.md +0 -0
  307. /package/agent-assets/templates/{agent → state}/profile-questions.md +0 -0
  308. /package/agent-assets/templates/{today.md → state/today.md} +0 -0
@@ -0,0 +1,48 @@
1
+ ---
2
+ # ── Identity ─────────────────────────────────────────────────────────────────
3
+ slug: user-profile-sweep-evening
4
+ name: User Profile Sweep (Evening)
5
+ description: "Refreshes identity/profile.md from the day's DM traffic shortly before the evening review."
6
+ kind: builtin
7
+ version: 1
8
+ enabled: true
9
+ tags: [routine, profile, sweep, evening]
10
+
11
+ # ── Schedule (17:50 — 10 min before Evening Review at 18:00) ────────────────
12
+ schedule:
13
+ kind: cron
14
+ expression: "50 17 * * *"
15
+
16
+ # ── Backend / routing (tier/model deferred to process_backend_config) ───────
17
+ backend:
18
+ process_key: routine.user_profile_sweep
19
+ tier: null
20
+ model: null
21
+
22
+ # ── Limits (per execution; minimal-tools background pass) ───────────────────
23
+ limits:
24
+ max_turns: 15
25
+ max_budget_usd: 0.20
26
+ timeout_minutes: 8
27
+
28
+ # ── Expected outputs ─────────────────────────────────────────────────────────
29
+ outputs:
30
+ - identity/profile.md
31
+ - "identity/<topic>.md"
32
+
33
+ success_criteria: []
34
+
35
+ # ── Stop warning (byte-identical to BUILTIN_AGENT_REGISTRY, §12.1) ──────────
36
+ stop_warning:
37
+ level: normal
38
+ services_lost:
39
+ - "Pre-evening user/profile.md refresh from the day's DM traffic"
40
+ dependent_agents:
41
+ - evening-review
42
+ reactivation_hint: "Re-enable from /agents/user-profile-sweep-evening. Runs 10 min before Evening Review."
43
+ ---
44
+
45
+ # User Profile Sweep (Evening)
46
+
47
+ Built-in routine — the execution prompt lives in the task-flow, not here.
48
+ See `agent-assets/task-flows/routine.user_profile_sweep.md` (phase: evening).
@@ -0,0 +1,53 @@
1
+ ---
2
+ # ── Identity ─────────────────────────────────────────────────────────────────
3
+ slug: user-profile-sweep-morning
4
+ name: User Profile Sweep (Morning)
5
+ description: "Refreshes identity/profile.md from the day's DM traffic shortly before the day boundary, ahead of the morning routine."
6
+ kind: builtin
7
+ version: 1
8
+ enabled: true
9
+ tags: [routine, profile, sweep, morning]
10
+
11
+ # ── Schedule ─────────────────────────────────────────────────────────────────
12
+ # `{dayBoundaryHour-1}` resolves to the hour before the day boundary
13
+ # (default 4 → "50 3 * * *"), i.e. 10 min before Morning Routine at 04:00.
14
+ schedule:
15
+ kind: cron
16
+ expression: "50 {dayBoundaryHour-1} * * *"
17
+
18
+ # ── Backend / routing (tier/model deferred to process_backend_config) ───────
19
+ backend:
20
+ process_key: routine.user_profile_sweep
21
+ tier: null
22
+ model: null
23
+
24
+ # ── Limits (per execution; minimal-tools background pass) ───────────────────
25
+ limits:
26
+ max_turns: 15
27
+ max_budget_usd: 0.20
28
+ timeout_minutes: 8
29
+
30
+ # ── Expected outputs ─────────────────────────────────────────────────────────
31
+ # Writes are silent and idempotent (no user-visible output, no /api/notify).
32
+ # profile.md pre-exists and is appended/patched, so file presence is not a
33
+ # meaningful per-run signal — documented here, no criterion asserted.
34
+ outputs:
35
+ - identity/profile.md
36
+ - "identity/<topic>.md"
37
+
38
+ success_criteria: []
39
+
40
+ # ── Stop warning (byte-identical to BUILTIN_AGENT_REGISTRY, §12.1) ──────────
41
+ stop_warning:
42
+ level: normal
43
+ services_lost:
44
+ - "Pre-morning user/profile.md refresh from the day's DM traffic"
45
+ dependent_agents:
46
+ - morning-routine
47
+ reactivation_hint: "Re-enable from /agents/user-profile-sweep-morning. Runs 10 min before the day boundary."
48
+ ---
49
+
50
+ # User Profile Sweep (Morning)
51
+
52
+ Built-in routine — the execution prompt lives in the task-flow, not here.
53
+ See `agent-assets/task-flows/routine.user_profile_sweep.md` (phase: morning).
@@ -0,0 +1,51 @@
1
+ ---
2
+ # ── Identity ─────────────────────────────────────────────────────────────────
3
+ slug: weekly-review
4
+ name: Weekly Review
5
+ description: "Writes the weekly synthesis note and reviews the roadmap every Friday evening."
6
+ kind: builtin
7
+ version: 1
8
+ enabled: true
9
+ tags: [routine, weekly, journal]
10
+
11
+ # ── Schedule (Friday 19:00) ──────────────────────────────────────────────────
12
+ schedule:
13
+ kind: cron
14
+ expression: "0 19 * * 5"
15
+
16
+ # ── Backend / routing (tier/model deferred to process_backend_config) ───────
17
+ backend:
18
+ process_key: routine.weekly_review
19
+ tier: null
20
+ model: null
21
+
22
+ # ── Limits (per execution) ───────────────────────────────────────────────────
23
+ limits:
24
+ max_turns: 30
25
+ max_budget_usd: 0.50
26
+ timeout_minutes: 15
27
+
28
+ # ── Expected outputs ─────────────────────────────────────────────────────────
29
+ # The synthesis note is keyed on the ISO week (`journal/weekly/YYYY-Www.md`),
30
+ # which the `{date}`-only success-criteria evaluator cannot target in v1, so it
31
+ # is documented here rather than asserted as a criterion.
32
+ outputs:
33
+ - "journal/weekly/{week}.md"
34
+ - plans/roadmap.md
35
+
36
+ success_criteria: []
37
+
38
+ # ── Stop warning (byte-identical to BUILTIN_AGENT_REGISTRY, §12.1) ──────────
39
+ stop_warning:
40
+ level: high
41
+ services_lost:
42
+ - "Weekly synthesis note (journal/weekly/{week}.md)"
43
+ - "Weekly roadmap review"
44
+ dependent_agents: []
45
+ reactivation_hint: "Re-enable from /agents/weekly-review. Resumes on the next Friday 19:00 firing."
46
+ ---
47
+
48
+ # Weekly Review
49
+
50
+ Built-in routine — the execution prompt lives in the task-flow, not here.
51
+ See `agent-assets/task-flows/routine.weekly_review.md`.
@@ -15,9 +15,9 @@ summary: |
15
15
  section: agent-day
16
16
  tags:
17
17
  - core
18
- - timing
19
18
  - memory
20
19
  - routines
20
+ - scheduler
21
21
  status: stable
22
22
  ask_examples:
23
23
  - When does the agent day actually roll over?
@@ -26,7 +26,7 @@ ask_examples:
26
26
  - What is dayBoundaryHour?
27
27
  locale: en-US
28
28
  created: 2026-04-25
29
- updated: 2026-05-15
29
+ updated: 2026-06-07
30
30
  keywords:
31
31
  - day boundary
32
32
  - 04:00
@@ -40,6 +40,7 @@ related:
40
40
  - features/memory-files/today
41
41
  ui_anchors:
42
42
  - /settings
43
+ - /settings/schedule
43
44
  config_keys:
44
45
  - dayBoundaryHour
45
46
  ---
@@ -50,7 +51,7 @@ config_keys:
50
51
 
51
52
  Aitne treats the "day" as starting at **04:00 local time**, not
52
53
  00:00. Anything you log between midnight and 4am is filed under the day
53
- that just ended, so a late commit at 02:30 lands in the same `today.md`
54
+ that just ended, so a late commit at 02:30 lands in the same `state/today.md`
54
55
  that opened the previous morning.
55
56
 
56
57
  ## Why This Concept Exists
@@ -58,7 +59,7 @@ that opened the previous morning.
58
59
  Owner-as-user installations almost always have late-night work sessions
59
60
  that, mentally, belong to "today" even though the wall-clock has already
60
61
  ticked over. A day boundary at midnight would split a single coherent
61
- working session across two `today.md` files, and the morning routine
62
+ working session across two `state/today.md` files, and the morning routine
62
63
  would open against an empty schedule because no agent activity had been
63
64
  logged for the new calendar day yet.
64
65
 
@@ -69,25 +70,26 @@ clean boundary before they start.
69
70
  ## Definitions
70
71
 
71
72
  - **Agent day**: the 24-hour window starting at the configured day-boundary hour and ending at the same hour the next calendar day.
72
- - **Day boundary**: the hour-of-day that starts the agent day. Configured via the `dayBoundaryHour` setting (default `4`).
73
- - **Day-stamped file**: any file whose name includes `YYYY-MM-DD` (e.g. `daily/2026-04-25.md`, `weekly/2026-04-20.md`). The date stamp uses the agent-day boundary, not the calendar day.
73
+ - **Day boundary**: the hour-of-day that starts the agent day. Configured via the `dayBoundaryHour` setting (default `4`, valid range `0`–`9`). Values above 9 are rejected — the boundary is intended for the small hours, not mid-day.
74
+ - **Day-stamped file**: any file whose name carries a date (e.g. `journal/daily/2026-04-25.md` with a `YYYY-MM-DD` stamp, `journal/weekly/2026-W17.md` with an ISO `YYYY-Www` week slug). The stamp uses the agent-day boundary, not the calendar day.
74
75
 
75
76
  ## Concrete Examples
76
77
 
77
78
  | Wall-clock time | Calendar date | Agent day |
78
79
  |---|---|---|
79
- | 2026-04-25 02:30 | April 25 | April 24 (late session) |
80
- | 2026-04-25 04:30 | April 25 | April 25 |
81
- | 2026-04-25 23:50 | April 25 | April 25 |
82
- | 2026-04-26 03:55 | April 26 | April 25 (still!) |
80
+ | 2026-04-25 02:30 | April 25 | April 24 (before boundary) |
81
+ | 2026-04-25 04:30 | April 25 | April 25 (after boundary) |
82
+ | 2026-04-25 23:50 | April 25 | April 25 (normal) |
83
+ | 2026-04-26 03:55 | April 26 | April 25 (before boundary) |
83
84
 
84
85
  ## Where You See It in the Dashboard
85
86
 
86
87
  - The Schedule view labels each day's column by **agent day**, so a 02:30 calendar entry appears under the previous day's header.
87
88
  - Activity → Conversations groups sessions by agent day for the same reason.
88
89
  - Cost analytics roll up by agent day so a late-night research binge does not split into two separate "days" of spend.
90
+ - To change the boundary, open **Settings → Schedule** (`/settings/schedule`) and edit the day-boundary hour.
89
91
 
90
92
  ## Related
91
93
 
92
- - [Morning Routine](../features/routines/morning-routine.md) opens at the day boundary's morning-routine hour, not midnight.
94
+ - [Morning Routine](../features/routines/morning-routine.md) opens shortly after the day boundary as part of the morning routine, not at midnight.
93
95
  - [today.md](../features/memory-files/today.md) is rebuilt once per agent day, anchored on the boundary.
@@ -20,6 +20,7 @@ tags:
20
20
  - safety
21
21
  - backends
22
22
  - operations
23
+ - health
23
24
  status: stable
24
25
  ask_examples:
25
26
  - Why is the dashboard showing a degraded backend?
@@ -28,7 +29,7 @@ ask_examples:
28
29
  - What is the SubscriptionAuthWarning banner?
29
30
  locale: en-US
30
31
  created: 2026-04-25
31
- updated: 2026-05-15
32
+ updated: 2026-05-28
32
33
  keywords:
33
34
  - auth
34
35
  - authentication
@@ -43,9 +44,18 @@ related:
43
44
  - concepts/backends-and-tiers
44
45
  - concepts/costs-and-quotas
45
46
  - troubleshooting/auth-failed
47
+ ui_anchors:
48
+ - /settings/models
49
+ - /
46
50
  config_keys:
47
51
  - authProbeDisabled
48
52
  - authPreflightFreshnessMs
53
+ api_endpoints:
54
+ - POST /api/backends/:backendId/check-auth
55
+ - POST /api/backends/:backendId/recovery/start
56
+ - GET /api/backends/:backendId/recovery/status
57
+ - POST /api/backends/:backendId/recovery/code
58
+ - POST /api/backends/:backendId/recovery/cancel
49
59
  ---
50
60
 
51
61
  # Auth Health
@@ -71,12 +81,21 @@ routine fails.
71
81
  is live. Without an API key, the probe checks whatever local CLI
72
82
  login Aitne fell back to (Claude credentials store, Codex token,
73
83
  Gemini ADC).
74
- - **Preflight freshness**: how long the daemon trusts a successful
75
- probe before re-running.
76
- - **Recovery**: backend-specific repair. The recommended path is
77
- re-pasting the API key on `/settings/models`; for the fallback
78
- path, re-running the matching CLI login (`claude`,
79
- `codex login`, `gemini auth`).
84
+ - **Preflight freshness**: how long the daemon trusts a cached probe
85
+ result before the router consults the backend again. Controlled by
86
+ `authPreflightFreshnessMs` (default 600000 = 10 min). A cached
87
+ `expired`/`missing` status younger than this window makes the router
88
+ skip the main backend and route straight to fallback. Set to `0` to
89
+ disable the pre-flight check entirely.
90
+ - **Recovery**: backend-specific repair. The recommended path is always
91
+ re-pasting a paid API key on `/settings/models`. If you run on CLI
92
+ subscription auth instead, you can recover the login from the same
93
+ page: `/settings/models` exposes a recovery dialog that drives the
94
+ backend's own interactive login subprocess —
95
+ `claude auth login --claudeai` (browser OAuth), `codex login
96
+ --device-auth` (device code), or Gemini's direct OAuth flow. As a
97
+ manual fallback you can always re-run the backend's CLI login in a
98
+ terminal yourself.
80
99
 
81
100
  ## Concrete Examples
82
101
 
@@ -86,7 +105,9 @@ routine fails.
86
105
  - Operator never registered an API key, ran on the subscription
87
106
  fallback, and the underlying `claude` CLI session expired → probe
88
107
  fails → card flips amber → recommended fix is to register an API
89
- key on `/settings/models`; otherwise re-run the CLI login.
108
+ key on `/settings/models`. To keep using subscription auth instead,
109
+ open the recovery dialog on the same page and complete the browser
110
+ OAuth login it launches.
90
111
 
91
112
  Cloud-provider credentials (Bedrock / Vertex / Foundry / Azure
92
113
  OpenAI / Gemini-Vertex) are not probed against a `models` endpoint —
@@ -94,7 +115,23 @@ those providers trust the SDK's runtime auth chain, so the auth-
94
115
  health card stays neutral until the first execution either succeeds
95
116
  or surfaces a runtime auth error.
96
117
 
118
+ ## The "API key recommended" warning
119
+
120
+ Separate from probe failures, `/settings/models` (and the setup
121
+ wizard's AI Backends step) shows a standing **API-key-recommended**
122
+ warning whenever a backend has no registered key. Skipping the key
123
+ falls the daemon back to that backend's local CLI subscription login,
124
+ which most providers do not officially support for automated agents —
125
+ Anthropic in particular currently prohibits running the Claude Agent
126
+ SDK on a Claude Pro / Max subscription. The warning is advisory, not a
127
+ probe result: it stays visible while you are on the fallback so you can
128
+ register a paid key and leave the gray area.
129
+
97
130
  ## Related
98
131
 
99
- - [Backends and Tiers](backends-and-tiers.md)
100
- - [Troubleshooting: Auth Failed](../troubleshooting/auth-failed.md)
132
+ - [Backends and Tiers](backends-and-tiers.md) — tiers, models, and
133
+ fallback routing.
134
+ - [Costs and Quotas](costs-and-quotas.md) — how API-key billing and
135
+ quota signals interact.
136
+ - [Troubleshooting: Auth Failed](../troubleshooting/auth-failed.md) —
137
+ step-by-step recovery when a card goes red.
@@ -31,7 +31,7 @@ ask_examples:
31
31
  - How does Aitne fail over when a backend hits its quota?
32
32
  locale: en-US
33
33
  created: 2026-04-25
34
- updated: 2026-05-15
34
+ updated: 2026-05-28
35
35
  keywords:
36
36
  - claude
37
37
  - codex
@@ -55,6 +55,24 @@ related:
55
55
  - features/operations/backend-routing
56
56
  ui_anchors:
57
57
  - /settings/models
58
+ - /analytics
59
+ process_keys:
60
+ - message.dm
61
+ - dashboard.chat
62
+ - dashboard.docs_qa
63
+ - routine.morning_routine
64
+ - gmail_classify
65
+ - calendar.change
66
+ - delegated_task
67
+ - delegated_task_heavy
68
+ config_keys:
69
+ - claudeExecutionPermissionMode
70
+ - codexExecutionPermissionMode
71
+ - geminiExecutionPermissionMode
72
+ - opencodeExecutionPermissionMode
73
+ - opencodeBaseUrl
74
+ - opencodeServerUsername
75
+ - delegatedTaskHeavyEnabled
58
76
  ---
59
77
 
60
78
  # Backends and Tiers
@@ -62,27 +80,39 @@ ui_anchors:
62
80
  ## TL;DR
63
81
 
64
82
  Four backends are supported: **Claude Code** (default), **Codex**,
65
- **Gemini CLI**, and **OpenCode**. Each backend exposes three classes
66
- of model used at install time:
67
-
68
- - **Medium / Main** (Sonnet 4.6 / GPT-5.4-mini / Gemini 3 Flash /
69
- Sonnet 4.6 via OpenCode) — the default for owner-facing work (DMs,
70
- daily / weekly review, morning routine, dashboard chat, scheduled
71
- tasks).
72
- - **Lite / Delegated** (Haiku 4.5 on Claude and OpenCode; latest
73
- light tier on Codex / Gemini) — cheaper model used for "simple"
74
- backend surfaces with no owner in the loop: Gmail classification,
75
- GitHub event triage, git-poll observers, calendar-change
76
- handlers, the routine pre-pass fetcher, the `delegated_task`
77
- invoker.
78
- - **High / Heavy** (Opus 4.7 / GPT-5.5 / Gemini 3 Pro / Opus 4.7
79
- via OpenCode) — registered but *not* auto-selected. Operators opt
80
- in per-process from `/settings/models`. After morning-routine
81
- Phase 7 (2026-05-16) the only flows that run heavy by default are
82
- `setup` (one-shot wizard) and `knowledge.import` (owner-uploaded
83
- files). The first morning routine after setup runs on medium
84
- tier with a daemon-prepared `<roadmap_skeleton>` block instead of
85
- the retired heavy `routine.morning_routine_initial`.
83
+ **Gemini CLI**, and **OpenCode**. Each backend exposes three model
84
+ tiers. The per-backend defaults seeded at install time are:
85
+
86
+ | Tier | Claude | Codex | Gemini | OpenCode |
87
+ |---|---|---|---|---|
88
+ | **medium** (main) | Sonnet 4.6 | GPT-5.4 | Gemini 3.1 Pro (preview) | Sonnet 4.6 |
89
+ | **lite** (delegated) | Haiku 4.5 | GPT-5.4 Mini | Gemini 3.1 Flash Lite (preview) | Haiku 4.5 |
90
+ | **high** (heavy) | Opus 4.8 | GPT-5.4¹ | Gemini 3.1 Pro (preview)¹ | Opus 4.8 |
91
+
92
+ ¹ Codex and Gemini have no separately-seeded high model their high
93
+ tier collapses to the medium model via `SEED_HIGH_TIER_OVERRIDE`.
94
+ Codex's flagship GPT-5.5 is Opus-priced and stays an opt-in; Gemini
95
+ has no Opus-priced Google flagship worth defaulting to. Pin a higher
96
+ model per row from `/settings/models` if you want it.
97
+
98
+ What each tier is for:
99
+
100
+ - **Medium / Main** — the default for owner-facing work: DMs and
101
+ mentions, dashboard chat, morning / evening / weekly / monthly
102
+ review, the hourly check, scheduled tasks.
103
+ - **Lite / Delegated** — the cheaper model for "simple" backend
104
+ surfaces with no owner in the loop: Gmail classification, GitHub
105
+ event triage, git-poll observers, calendar-change handlers, the
106
+ routine pre-pass fetcher, the `delegated_task` invoker.
107
+ - **High / Heavy** — registered but *not* auto-selected. After the
108
+ "no Opus by default" pass (2026-05-16), **no install-time-seeded
109
+ surface defaults to high.** The only `high`-tagged ProcessKey is
110
+ `delegated_task_heavy`, and it is opt-in (gated by the
111
+ `delegatedTaskHeavyEnabled` config flag). Operators can pin any
112
+ other ProcessKey to high per row from `/settings/models`. The
113
+ first morning routine after setup runs on **medium** tier with a
114
+ daemon-prepared `<roadmap_skeleton>` block instead of the retired
115
+ heavy `routine.morning_routine_initial`.
86
116
 
87
117
  Every ProcessKey resolves to a backend + model binding via
88
118
  `BackendRouter`. Aitne **does not store or read subscription-plan
@@ -126,11 +156,13 @@ top of the `@opencode-ai/sdk` HTTP server and supports the same
126
156
  `ProcessKey` set as the other backends. Two operating modes:
127
157
 
128
158
  - **Managed** — the daemon spawns and supervises a local
129
- `opencode` HTTP server on loopback. Configuration (model,
130
- permissions, agent dir) is written into a managed `opencode.json`
131
- under `<dataDir>/opencode-home/`.
159
+ `opencode` HTTP server on loopback (`127.0.0.1`, OS-picked port).
160
+ Per-session config (model, permissions, agent dir) is passed
161
+ inline to the server via the `OPENCODE_CONFIG_CONTENT` env var —
162
+ no config file is written to disk.
132
163
  - **Remote** — you point Aitne at an existing OpenCode server
133
- baseUrl (your own cluster or a managed deployment).
164
+ baseUrl (your own cluster or a managed deployment), set via the
165
+ `opencodeBaseUrl` / `opencodeServerUsername` config keys.
134
166
 
135
167
  OpenCode is a runtime peer of Claude / Codex / Gemini for
136
168
  dispatching ProcessKeys, but it intentionally does **not** host
@@ -156,10 +188,12 @@ Claude's quota is exhausted, or use Gemini for cheap polling tasks.
156
188
  - **Backend**: the agent runtime. One of `claude`, `codex`, `gemini`,
157
189
  `opencode`.
158
190
  - **Tier**: `lite`, `medium`, or `high`. `high` maps to the strongest
159
- model (Opus 4.7 / GPT-5.5 / Gemini 3 Pro / Opus 4.7 via OpenCode).
160
- `medium` (Sonnet 4.6 and equivalents) is the operator's day-to-day
161
- tier for owner-facing work; `lite` (Haiku 4.5 and equivalents) is
162
- reserved for mechanical / delegated surfaces.
191
+ model class (Opus-class Opus 4.8 on Claude and OpenCode; on Codex
192
+ and Gemini the seeded high binding collapses to the medium model).
193
+ `medium` (Sonnet-class Sonnet 4.6 and equivalents) is the
194
+ operator's day-to-day tier for owner-facing work; `lite`
195
+ (Haiku-class — Haiku 4.5 and equivalents) is reserved for
196
+ mechanical / delegated surfaces.
163
197
  - **Main / Fallback**: each ProcessKey has a `main` backend and a
164
198
  `fallback`. The router fails over on `BackendQuotaError` /
165
199
  `BackendDecisiveFailure`.
@@ -174,12 +208,13 @@ Claude's quota is exhausted, or use Gemini for cheap polling tasks.
174
208
  | `routine.hourly_check` | claude | Sonnet 4.6 |
175
209
  | `message.dm` | claude | Sonnet 4.6 |
176
210
  | `dashboard.chat` | claude | Sonnet 4.6 |
177
- | `dashboard.docs_qa` | inherits from `message.dm` | Sonnet 4.6 (light forced) |
211
+ | `dashboard.docs_qa` | inherits from `message.dm` | Sonnet 4.6 (locked to medium) |
178
212
  | `gmail_classify` | claude | Haiku 4.5 |
179
213
  | `github.*` | claude | Haiku 4.5 |
180
214
  | `git.push.detected` (and other git-poll keys) | claude | Haiku 4.5 |
181
215
  | `calendar.change` | claude | Haiku 4.5 |
182
216
  | `delegated_task` | claude | Haiku 4.5 |
217
+ | `delegated_task_heavy` | claude | Opus 4.8 (high; opt-in, off by default) |
183
218
 
184
219
  ## Where You See It in the Dashboard
185
220
 
@@ -31,7 +31,7 @@ ask_examples:
31
31
  - How does Gemini's per-day quota work?
32
32
  locale: en-US
33
33
  created: 2026-04-25
34
- updated: 2026-05-15
34
+ updated: 2026-06-07
35
35
  keywords:
36
36
  - cost
37
37
  - budget
@@ -43,6 +43,7 @@ keywords:
43
43
  - opencode
44
44
  - openrouter
45
45
  - daily cap
46
+ - monthly cap
46
47
  - autonomous cap
47
48
  related:
48
49
  - concepts/backends-and-tiers
@@ -53,6 +54,11 @@ ui_anchors:
53
54
  - /settings/models
54
55
  config_keys:
55
56
  - autonomousDailyCostCapUsd
57
+ - autonomousMonthlyCostCapUsd
58
+ process_keys:
59
+ - routine.morning_routine
60
+ - routine.fetch_window
61
+ - routine.hourly_check
56
62
  ---
57
63
 
58
64
  # Costs and Quotas
@@ -92,8 +98,13 @@ agent's problem to *avoid*: the dashboard shows you what each routine
92
98
  costs so you can re-pin tiers if a routine has gotten too expensive.
93
99
 
94
100
  The autonomous daily-cost cap (`autonomousDailyCostCapUsd`) is a
95
- bumper, not a budget — it pauses autonomous routines when crossed but
96
- does not interrupt reactive (in-the-loop) traffic.
101
+ bumper, not a budget — once the day's autonomous spend crosses it the
102
+ dispatcher starts shedding the *lowest-priority* routines first
103
+ (hourly check), and only escalates to higher-priority ones as spend
104
+ climbs further; the morning routine is the last to be cut. Reactive
105
+ (in-the-loop) DMs and dashboard chat always pass through. A separate
106
+ `autonomousMonthlyCostCapUsd` is a notifications-only soft cap — it
107
+ fires an alert when crossed but never skips a session.
97
108
 
98
109
  ## Authentication policy
99
110
 
@@ -137,13 +148,23 @@ register an API key on `/settings/models`.
137
148
  `codex login`, `gemini auth`). Used only when no API key is
138
149
  configured. Cost behaviour then matches whatever the subscription
139
150
  enforces (e.g. Claude's rolling 5-hour Opus window on a Max plan).
140
- - **Daily cost cap**: `autonomousDailyCostCapUsd` autonomous routines
141
- pause on the day they cross it. Reactive DMs / dashboard chat keep
142
- running; you can always reach the agent.
151
+ - **Daily cost cap**: `autonomousDailyCostCapUsd` (default unset)
152
+ once the day's autonomous spend crosses it, lower-priority routines
153
+ are skipped first (hourly check at 100% of the cap, the morning
154
+ routine only at 200%). Reactive DMs / dashboard chat keep running;
155
+ you can always reach the agent. Distinct from the removed
156
+ `maxDailyCostUsd`, which used to blanket-block reactive traffic too.
157
+ - **Monthly cost cap**: `autonomousMonthlyCostCapUsd` (default unset) —
158
+ a notifications-only soft threshold across the rolling agent month;
159
+ it raises an alert in the Notifications Center but never skips a
160
+ session.
143
161
  - **Per-process tier**: each ProcessKey has its own tier, max-turns,
144
162
  and max-budget USD. Configurable on `/settings/models`.
145
163
  - **Quota error**: `BackendQuotaError` thrown by an SDK / CLI tells
146
- the router to fail over to the fallback backend.
164
+ the router to fail over to the fallback backend. Its sibling
165
+ `BackendDecisiveFailure` (e.g. an auth failure) triggers the same
166
+ failover — these two signals are why a routine that started on
167
+ Claude can finish on Codex.
147
168
 
148
169
  ## Concrete Examples
149
170
 
@@ -162,21 +183,36 @@ register an API key on `/settings/models`.
162
183
  `routine.morning_routine` envelope (medium tier) with a
163
184
  daemon-prepared `<roadmap_skeleton>` block.
164
185
  - Gemini hourly check on Flash via `GEMINI_API_KEY` = ~$0.0005 per
165
- fire on the paid tier; free tier instead consumes a per-day quota
166
- slot.
186
+ fire on the paid tier; the free tier instead consumes one of a
187
+ fixed per-day request budget (Aitne caps Gemini at 450 requests/day
188
+ to match Google's free-tier daily limit — this ceiling is
189
+ Gemini-only by design; Claude and Codex meter per-window and surface
190
+ exhaustion as a quota error).
167
191
  - Claude Code without an API key (subscription fallback on a Max20
168
192
  login) = covered by the subscription, but the daemon flags the
169
193
  fallback because it falls outside Anthropic's published policy.
170
194
 
171
- ## Where You See It in the Dashboard
195
+ ## Where You See It
172
196
 
173
- - **Analytics** rolls today's cost by backend, by ProcessKey, and by
174
- hour. When a backend is running on the subscription fallback,
175
- remaining-window math is shown there too.
197
+ In the dashboard:
198
+
199
+ - **Analytics** (`/analytics`) rolls cost by backend, by ProcessKey
200
+ (event type), by model, and over daily / weekly / monthly periods,
201
+ plus a today total. When a backend is running on the
202
+ subscription fallback, remaining-window math is shown there too.
176
203
  - **Sidebar footer** shows the day's running total.
177
204
  - **Activity** event details include the per-execute cost.
178
- - **Settings → Models** exposes the per-backend API-key panel and a
179
- warning banner whenever a backend is running on subscription auth.
205
+ - **Settings → Models** (`/settings/models`) exposes the per-backend
206
+ API-key panel and a warning banner whenever a backend is running on
207
+ subscription auth.
208
+
209
+ From a DM or the terminal:
210
+
211
+ - **`!cost`** (and `!cost claude` / `!cost codex` / `!cost gemini`)
212
+ DM the agent for trailing-7-day spend, broken down or per-backend.
213
+ - **`aitne status`** prints today's action count and spend;
214
+ **`aitne audit`** lists the action log (filter with `--since`,
215
+ `--backend`, `--result`).
180
216
 
181
217
  ## Related
182
218