@aitne-sh/aitne 0.1.8 → 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 (276) hide show
  1. package/README.md +218 -161
  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 +50 -15
  21. package/agent-assets/docs/concepts/delegated-mode.md +52 -13
  22. package/agent-assets/docs/concepts/memory-model.md +72 -32
  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 +42 -34
  28. package/agent-assets/docs/concepts/skills.md +33 -17
  29. package/agent-assets/docs/features/integrations/browser-history.md +195 -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 +59 -16
  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 +42 -38
  37. package/agent-assets/docs/features/lifestyle/reading.md +50 -22
  38. package/agent-assets/docs/features/lifestyle/receipts.md +51 -21
  39. package/agent-assets/docs/features/lifestyle/travel-bookings.md +76 -14
  40. package/agent-assets/docs/features/memory-files/agent-journal.md +111 -50
  41. package/agent-assets/docs/features/memory-files/projects.md +71 -17
  42. package/agent-assets/docs/features/memory-files/roadmap.md +50 -10
  43. package/agent-assets/docs/features/memory-files/schedule.md +113 -70
  44. package/agent-assets/docs/features/memory-files/today.md +46 -21
  45. package/agent-assets/docs/features/memory-files/user-profile.md +63 -33
  46. package/agent-assets/docs/features/messaging/bang-commands.md +113 -36
  47. package/agent-assets/docs/features/messaging/dashboard-chat.md +43 -21
  48. package/agent-assets/docs/features/messaging/discord.md +35 -4
  49. package/agent-assets/docs/features/messaging/overview.md +37 -19
  50. package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +94 -27
  51. package/agent-assets/docs/features/messaging/slack.md +67 -14
  52. package/agent-assets/docs/features/messaging/telegram.md +18 -5
  53. package/agent-assets/docs/features/messaging/whatsapp.md +71 -17
  54. package/agent-assets/docs/features/operations/activity-and-conversations.md +44 -15
  55. package/agent-assets/docs/features/operations/approvals.md +48 -16
  56. package/agent-assets/docs/features/operations/backend-routing.md +68 -16
  57. package/agent-assets/docs/features/operations/cost-tracking.md +84 -17
  58. package/agent-assets/docs/features/operations/managed-chromium.md +221 -0
  59. package/agent-assets/docs/features/operations/notifications.md +52 -11
  60. package/agent-assets/docs/features/operations/quiet-hours.md +63 -40
  61. package/agent-assets/docs/features/operations/schedule-approaching.md +54 -24
  62. package/agent-assets/docs/features/routines/custom-routines.md +88 -20
  63. package/agent-assets/docs/features/routines/evening-review.md +74 -21
  64. package/agent-assets/docs/features/routines/hourly-check.md +149 -29
  65. package/agent-assets/docs/features/routines/morning-routine.md +53 -35
  66. package/agent-assets/docs/features/routines/weekly-review.md +40 -21
  67. package/agent-assets/docs/features/wiki/commands.md +26 -16
  68. package/agent-assets/docs/features/wiki/cost-and-approval.md +240 -0
  69. package/agent-assets/docs/features/wiki/dashboard.md +255 -0
  70. package/agent-assets/docs/features/wiki/overview.md +68 -10
  71. package/agent-assets/docs/features/wiki/search.md +248 -0
  72. package/agent-assets/docs/features/wiki/workspaces.md +254 -0
  73. package/agent-assets/docs/getting-started/01-what-is-this.md +34 -23
  74. package/agent-assets/docs/getting-started/02-first-steps.md +13 -8
  75. package/agent-assets/docs/getting-started/03-what-can-this-do.md +25 -14
  76. package/agent-assets/docs/getting-started/04-first-day.md +38 -20
  77. package/agent-assets/docs/glossary.md +235 -24
  78. package/agent-assets/docs/guides/add-a-custom-routine.md +63 -23
  79. package/agent-assets/docs/guides/backup-and-restore.md +80 -16
  80. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +56 -25
  81. package/agent-assets/docs/guides/build-your-wiki.md +22 -9
  82. package/agent-assets/docs/guides/change-which-model-handles-x.md +64 -10
  83. package/agent-assets/docs/guides/connect-a-new-mail-account.md +64 -15
  84. package/agent-assets/docs/guides/explore-with-trace-and-connect.md +28 -11
  85. package/agent-assets/docs/guides/import-knowledge-file.md +50 -40
  86. package/agent-assets/docs/guides/install-and-run.md +48 -19
  87. package/agent-assets/docs/guides/maintain-wiki-health.md +35 -10
  88. package/agent-assets/docs/guides/migrate-machines.md +74 -18
  89. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +111 -60
  90. package/agent-assets/docs/guides/pause-the-agent.md +65 -24
  91. package/agent-assets/docs/guides/reinstall-cleanly.md +88 -18
  92. package/agent-assets/docs/guides/setup-wizard.md +113 -54
  93. package/agent-assets/docs/guides/switch-default-backend.md +62 -16
  94. package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +26 -10
  95. package/agent-assets/docs/reference/api.md +143 -32
  96. package/agent-assets/docs/reference/cli-commands.md +38 -17
  97. package/agent-assets/docs/reference/config.md +224 -49
  98. package/agent-assets/docs/reference/disallowed-tools.md +29 -10
  99. package/agent-assets/docs/reference/keyboard-shortcuts.md +34 -10
  100. package/agent-assets/docs/reference/knowledge-layout.md +620 -0
  101. package/agent-assets/docs/reference/process-keys.md +61 -5
  102. package/agent-assets/docs/reference/skills.md +38 -12
  103. package/agent-assets/docs/troubleshooting/auth-failed.md +48 -19
  104. package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +90 -28
  105. package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +86 -22
  106. package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +68 -24
  107. package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +80 -20
  108. package/agent-assets/docs/troubleshooting/observation-not-detected.md +73 -21
  109. package/agent-assets/docs/troubleshooting/quota-exhausted.md +29 -5
  110. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +126 -54
  111. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +29 -12
  112. package/agent-assets/optimizer-skills/drift-analysis/SKILL.md +1 -1
  113. package/agent-assets/optimizer-skills/knowledge-map/SKILL.md +1 -1
  114. package/agent-assets/optimizer-skills/skill-curation/SKILL.md +1 -1
  115. package/agent-assets/sandbox/linux/aitne-chromium.apparmor +91 -0
  116. package/agent-assets/sandbox/macos/aitne-chromium.sb +156 -0
  117. package/agent-assets/skills/agent-actions/SKILL.md +2 -2
  118. package/agent-assets/skills/agent-create/SKILL.md +149 -0
  119. package/agent-assets/skills/attach/SKILL.md +2 -2
  120. package/agent-assets/skills/browser-history/SKILL.md +198 -0
  121. package/agent-assets/skills/browser-history-respond/SKILL.md +106 -0
  122. package/agent-assets/skills/browser-task/SKILL.md +169 -0
  123. package/agent-assets/skills/context/SKILL.md +12 -12
  124. package/agent-assets/skills/context/curation.json +2 -2
  125. package/agent-assets/skills/context/references/api.md +43 -31
  126. package/agent-assets/skills/context/references/required-frontmatter.md +3 -3
  127. package/agent-assets/skills/context/references/snapshot-files.md +6 -6
  128. package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +3 -3
  129. package/agent-assets/skills/docs-search/SKILL.md +4 -3
  130. package/agent-assets/skills/external-services/SKILL.delegated.claude.md +11 -21
  131. package/agent-assets/skills/external-services/SKILL.delegated.codex.md +11 -21
  132. package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +11 -21
  133. package/agent-assets/skills/external-services/SKILL.md +3 -3
  134. package/agent-assets/skills/external-services/SKILL.native.claude.md +5 -5
  135. package/agent-assets/skills/external-services/SKILL.native.codex.md +7 -7
  136. package/agent-assets/skills/external-services/SKILL.native.gemini.md +4 -4
  137. package/agent-assets/skills/external-services/references/calendar-apple.md +2 -2
  138. package/agent-assets/skills/external-services/references/calendar-outlook.md +1 -1
  139. package/agent-assets/skills/external-services/references/obsidian.md +2 -2
  140. package/agent-assets/skills/gmail-lifestyle/SKILL.md +9 -82
  141. package/agent-assets/skills/mail/SKILL.delegated.claude.md +14 -5
  142. package/agent-assets/skills/mail/SKILL.delegated.codex.md +8 -4
  143. package/agent-assets/skills/mail/SKILL.delegated.gemini.md +8 -4
  144. package/agent-assets/skills/mail/references/api.md +4 -2
  145. package/agent-assets/skills/mail/references/providers.md +1 -1
  146. package/agent-assets/skills/managed-tasks/SKILL.md +9 -9
  147. package/agent-assets/skills/managed-tasks/references/errors.md +9 -6
  148. package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +1 -1
  149. package/agent-assets/skills/management-policy/SKILL.md +32 -31
  150. package/agent-assets/skills/management-policy/curation.json +1 -1
  151. package/agent-assets/skills/management-policy/references/policy-workflow.md +9 -9
  152. package/agent-assets/skills/management-policy/seeds/policy-file-shape.seed.json +1 -1
  153. package/agent-assets/skills/notify/SKILL.md +4 -4
  154. package/agent-assets/skills/notify/references/priority.md +9 -4
  155. package/agent-assets/skills/notion/SKILL.delegated.claude.md +1 -1
  156. package/agent-assets/skills/notion/SKILL.delegated.codex.md +1 -1
  157. package/agent-assets/skills/notion/SKILL.delegated.gemini.md +1 -1
  158. package/agent-assets/skills/notion/SKILL.native.claude.md +10 -6
  159. package/agent-assets/skills/notion/SKILL.native.codex.md +9 -4
  160. package/agent-assets/skills/notion/SKILL.native.gemini.md +9 -4
  161. package/agent-assets/skills/observations/SKILL.md +24 -8
  162. package/agent-assets/skills/project-doc/SKILL.md +1 -1
  163. package/agent-assets/skills/project-doc/curation.json +3 -3
  164. package/agent-assets/skills/project-doc/seeds/project-shape.seed.json +7 -4
  165. package/agent-assets/skills/project-doc/seeds/slug-grammar.seed.json +3 -3
  166. package/agent-assets/skills/reading/SKILL.md +10 -0
  167. package/agent-assets/skills/reading/references/reading-taste.md +2 -2
  168. package/agent-assets/skills/roadmap/SKILL.md +5 -5
  169. package/agent-assets/skills/roadmap/curation.json +1 -1
  170. package/agent-assets/skills/roadmap/references/api.md +7 -7
  171. package/agent-assets/skills/roadmap/references/cross-check.md +15 -8
  172. package/agent-assets/skills/roadmap/references/migration.md +4 -4
  173. package/agent-assets/skills/roadmap/seeds/entry-types.seed.json +1 -1
  174. package/agent-assets/skills/schedule/SKILL.md +42 -34
  175. package/agent-assets/skills/schedule/references/batch.md +2 -2
  176. package/agent-assets/skills/schedule/references/errors.md +7 -4
  177. package/agent-assets/skills/schedule/references/model-selection.md +3 -3
  178. package/agent-assets/skills/schedule/references/recurrence-rule.md +1 -1
  179. package/agent-assets/skills/scheduled-managed-task/SKILL.md +46 -36
  180. package/agent-assets/skills/today/SKILL.md +9 -9
  181. package/agent-assets/skills/today/curation.json +3 -3
  182. package/agent-assets/skills/today/references/agent-plan-lifecycle.md +6 -5
  183. package/agent-assets/skills/today/seeds/section-shape.seed.json +1 -1
  184. package/agent-assets/skills/user-interview/SKILL.md +12 -9
  185. package/agent-assets/skills/user-interview/references/op-briefing.md +2 -2
  186. package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +8 -0
  187. package/agent-assets/skills/user-profile/SKILL.md +17 -17
  188. package/agent-assets/skills/user-profile/curation.json +2 -2
  189. package/agent-assets/skills/user-profile/references/character-preferences.md +2 -2
  190. package/agent-assets/skills/user-profile/seeds/routing-table.seed.json +8 -8
  191. package/agent-assets/skills/user-profile/seeds/topic-files.seed.json +6 -6
  192. package/agent-assets/skills/wiki/wiki-compile/SKILL.md +4 -4
  193. package/agent-assets/system-prompts/routine-fetch-window.md +22 -12
  194. package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +4 -2
  195. package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +4 -2
  196. package/agent-assets/task-flows/_partials/capture-user-info.md +2 -2
  197. package/agent-assets/task-flows/_partials/dm-intent.long-horizon.md +1 -1
  198. package/agent-assets/task-flows/_partials/dm-intent.project.md +9 -9
  199. package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +3 -2
  200. package/agent-assets/task-flows/_partials/notion-acquire.notion.md +10 -5
  201. package/agent-assets/task-flows/browser_task.md +84 -0
  202. package/agent-assets/task-flows/github.assigned.md +1 -1
  203. package/agent-assets/task-flows/github.pull_request.review_requested.md +2 -2
  204. package/agent-assets/task-flows/github.workflow_run.failed.md +2 -2
  205. package/agent-assets/task-flows/knowledge.import.md +14 -14
  206. package/agent-assets/task-flows/message.received.dm.md +9 -4
  207. package/agent-assets/task-flows/message.received.dm_first.md +3 -3
  208. package/agent-assets/task-flows/routine.custom.md +3 -3
  209. package/agent-assets/task-flows/routine.evening_review.md +8 -8
  210. package/agent-assets/task-flows/routine.fetch_window.md +2 -2
  211. package/agent-assets/task-flows/routine.hourly_check.md +16 -12
  212. package/agent-assets/task-flows/routine.monthly_review.md +21 -21
  213. package/agent-assets/task-flows/routine.morning_routine_journal.md +119 -97
  214. package/agent-assets/task-flows/routine.morning_routine_today.md +43 -43
  215. package/agent-assets/task-flows/routine.research_cluster_update.md +35 -0
  216. package/agent-assets/task-flows/routine.research_dispatch.md +38 -0
  217. package/agent-assets/task-flows/routine.research_offer_dm.md +125 -0
  218. package/agent-assets/task-flows/routine.research_wiki_summary.md +53 -0
  219. package/agent-assets/task-flows/routine.roadmap_refresh.md +10 -10
  220. package/agent-assets/task-flows/routine.today_refresh.md +4 -4
  221. package/agent-assets/task-flows/routine.user_profile_sweep.md +10 -10
  222. package/agent-assets/task-flows/routine.weekly_review.md +93 -24
  223. package/agent-assets/task-flows/schedule.approaching.md +0 -1
  224. package/agent-assets/task-flows/scheduled.dm.md +5 -5
  225. package/agent-assets/task-flows/scheduled.task.md +4 -4
  226. package/agent-assets/task-flows/setup.initial.md +21 -21
  227. package/agent-assets/task-flows/setup.update.md +2 -2
  228. package/agent-assets/templates/README.md +27 -20
  229. package/agent-assets/templates/_index.md +42 -26
  230. package/agent-assets/templates/_manifest.json +34 -99
  231. package/agent-assets/templates/{user → identity}/_index.md +1 -1
  232. package/agent-assets/templates/{user → identity}/profile.md +2 -2
  233. package/agent-assets/templates/{dossiers → knowledge/dossiers}/_index.md +1 -1
  234. package/agent-assets/templates/{projects → plans/projects}/_active.base +1 -1
  235. package/agent-assets/templates/policies/_index.md +21 -0
  236. package/agent-assets/templates/{rules → policies}/journal-export.md +1 -1
  237. package/agent-assets/templates/{rules → policies}/journal-format.md +5 -5
  238. package/agent-assets/templates/{rules/policies → policies/management-captures}/_index.md +2 -2
  239. package/agent-assets/templates/{rules → policies}/management.md +3 -3
  240. package/agent-assets/templates/{rules → policies}/mcp.md +1 -1
  241. package/agent-assets/templates/{rules → policies}/redaction.md +1 -1
  242. package/agent-assets/templates/{routines → policies/routines}/_index.md +1 -1
  243. package/agent-assets/templates/{routines → policies/routines}/evening.md +2 -2
  244. package/agent-assets/templates/{routines → policies/routines}/hourly.md +1 -1
  245. package/agent-assets/templates/{routines → policies/routines}/monthly.md +2 -2
  246. package/bin/aitne.mjs +13 -4
  247. package/package.json +5 -4
  248. package/scripts/commands/doctor.mjs +14 -8
  249. package/scripts/commands/run-now.mjs +6 -21
  250. package/scripts/lib/ports.d.mts +27 -0
  251. package/scripts/lib/ports.mjs +36 -0
  252. package/scripts/lib/read-api-token.mjs +176 -0
  253. package/scripts/start.mjs +2 -1
  254. package/agent-assets/docs/features/lifestyle/travel-time.md +0 -58
  255. package/agent-assets/skills/gmail-lifestyle/references/travel-time-api.md +0 -59
  256. package/agent-assets/skills/schedule/references/recurring.md +0 -185
  257. package/agent-assets/templates/context-index.md +0 -42
  258. package/agent-assets/templates/rules/_index.md +0 -19
  259. /package/agent-assets/templates/{user → identity}/expertise.md +0 -0
  260. /package/agent-assets/templates/{user → identity}/goals.md +0 -0
  261. /package/agent-assets/templates/{user → identity}/people.md +0 -0
  262. /package/agent-assets/templates/{user → identity}/personal.md +0 -0
  263. /package/agent-assets/templates/{user → identity}/work.md +0 -0
  264. /package/agent-assets/templates/{agent/journal.md → journal/agent.md} +0 -0
  265. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/evening.md +0 -0
  266. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/hourly.md +0 -0
  267. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/monthly.md +0 -0
  268. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/morning.md +0 -0
  269. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/roadmap.md +0 -0
  270. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/weekly.md +0 -0
  271. /package/agent-assets/templates/{projects → plans/projects}/_index.md +0 -0
  272. /package/agent-assets/templates/{roadmap.md → plans/roadmap.md} +0 -0
  273. /package/agent-assets/templates/{routines → policies/routines}/morning.md +0 -0
  274. /package/agent-assets/templates/{routines → policies/routines}/weekly.md +0 -0
  275. /package/agent-assets/templates/{agent → state}/profile-questions.md +0 -0
  276. /package/agent-assets/templates/{today.md → state/today.md} +0 -0
@@ -10,24 +10,31 @@ aliases:
10
10
  - runtime config
11
11
  category: reference
12
12
  summary: |
13
- All AgentConfig fields, their types, and where each is set
14
- (environment, database settings table, or in-process default).
13
+ Source-of-truth map for AgentConfig where each field is set
14
+ (env, dashboard PATCH, OS keychain), which fields require a restart,
15
+ and pointers to the canonical key tuples in shared/.
15
16
  section: config
16
17
  tags:
17
18
  - core
18
19
  - reference
19
20
  - config
20
21
  - operations
22
+ - backends
21
23
  status: stable
22
24
  ask_examples:
23
25
  - What configuration keys does the agent expose?
24
26
  - Where does config get loaded from?
25
27
  - How do I change the day boundary?
26
28
  - Which config keys are runtime-editable from the dashboard?
29
+ - Which keys need a daemon restart?
30
+ - Where is the pre-pass freshness window set?
31
+ - What is the default daily cost cap?
27
32
  locale: en-US
28
33
  keywords:
29
34
  - AgentConfig
30
35
  - applyConfigUpdates
36
+ - EDITABLE_RUNTIME_KEY_TUPLE
37
+ - RESTART_REQUIRED_KEY_TUPLE
31
38
  - dayBoundaryHour
32
39
  - hourlyCheckIntervalMinutes
33
40
  - quietHoursStart
@@ -35,72 +42,240 @@ keywords:
35
42
  - executeTimeoutMinutes
36
43
  - autonomousDailyCostCapUsd
37
44
  - allowedToolsOverride
45
+ - voiceTranscriptionEnabled
46
+ - hourlyCheckPrePassFreshnessMinutes
47
+ - vaultMode
38
48
  - PA_DATA_DIR
39
49
  - PA_API_PORT
50
+ config_keys:
51
+ - dayBoundaryHour
52
+ - timezone
53
+ - primaryLanguage
54
+ - vaultMode
55
+ - hourlyCheckEnabled
56
+ - hourlyCheckIntervalMinutes
57
+ - hourlyCheckPrePassFreshnessMinutes
58
+ - quietHoursStart
59
+ - quietHoursEnd
60
+ - maxNotificationsPerHour
61
+ - maxNotificationsPerDay
62
+ - maxConcurrentSessions
63
+ - maxReactiveSessions
64
+ - executeTimeoutMinutes
65
+ - autonomousDailyCostCapUsd
66
+ - autonomousMonthlyCostCapUsd
67
+ - disallowedTools
68
+ - allowedToolsOverride
69
+ - claudeExecutionPermissionMode
70
+ - enabledMailProviders
71
+ - voiceTranscriptionEnabled
72
+ - advisorEnabled
73
+ - advisorModel
74
+ api_endpoints:
75
+ - PATCH /api/config
76
+ - POST /api/voice/install
77
+ ui_anchors:
78
+ - /settings/advanced
79
+ - /settings/models
40
80
  created: 2026-04-25
41
- updated: 2026-05-15
81
+ updated: 2026-05-28
42
82
  related:
43
83
  - reference/api
44
84
  - reference/cli-commands
85
+ - reference/disallowed-tools
86
+ - concepts/safety-and-execution
45
87
  ---
46
88
 
47
89
  # Config Reference
48
90
 
49
- The full schema is `AgentConfig` in `packages/daemon/src/config.ts`.
50
- A subset listed in `applyConfigUpdates` is mutable at runtime via
51
- `PATCH /api/config`. The rest must be set via env or restart.
91
+ The full `AgentConfig` schema lives in
92
+ `packages/daemon/src/config.ts`. Three canonical tuples in
93
+ `packages/shared/src/editable-config-keys.ts` govern what is editable
94
+ and when:
95
+
96
+ - **`EDITABLE_RUNTIME_KEY_TUPLE`** — the ~80 keys mutable at runtime
97
+ via `PATCH /api/config`. Both the daemon and the dashboard import
98
+ from this tuple so the accepted-key set is enforced at compile time
99
+ in both packages.
100
+ - **`RESTART_REQUIRED_KEY_TUPLE`** — runtime-editable keys whose
101
+ change does not apply to a running worker (the dashboard renders a
102
+ restart-required badge for these).
103
+ - **`EDITABLE_BOOTSTRAP_KEY_TUPLE`** — `apiPort` only, written to
104
+ `.env` because it's read before the daemon binds.
105
+
106
+ Anything not in those tuples must be set via env or restart.
107
+
108
+ ## Where Each Field Comes From
109
+
110
+ | Source | What lives there |
111
+ |---|---|
112
+ | `.env` | `PA_DATA_DIR`, `PA_API_PORT`, log level, the bootstrap port from `EDITABLE_BOOTSTRAP_KEY_TUPLE`. Chmod 0600 on first launch; never store secrets here. |
113
+ | OS keychain | All secrets — backend API keys, messaging tokens, OAuth grants. Resolved via `PlatformSecretStore` (macOS Keychain / Windows DPAPI / Linux libsecret or AES-GCM file). |
114
+ | `settings` DB table | Runtime-edited values from `EDITABLE_RUNTIME_KEY_TUPLE`, merged on top of env at boot via `mergeRuntimeSettingsFromDb`. |
115
+ | `runtime_state` DB table | Operational state that the agent or daemon writes (pause flag, integration flip locks, pre-pass freshness, B-4 toggles). Not editable as config. |
52
116
 
53
117
  ## Selected Keys
54
118
 
55
- | Key | Type | Default |
119
+ A representative slice of `EDITABLE_RUNTIME_KEY_TUPLE` the full list
120
+ of ~80 keys is in `editable-config-keys.ts`. Names below are exact and
121
+ case-sensitive.
122
+
123
+ ### Identity and timezone
124
+
125
+ | Key | Type | Notes |
126
+ |---|---|---|
127
+ | `agentDisplayName` | string | What the agent calls itself in DMs. |
128
+ | `character` | string | Persona key (one of the entries in `agent-assets/agent-profiles/`). |
129
+ | `timezone` | IANA tz | Empty falls back to the system tz. |
130
+ | `dayBoundaryHour` | 0–9 | Default `4`. Controls the agent-day rollover (must be an early-morning hour). |
131
+ | `primaryLanguage` | BCP-47 | Output language for DMs, journal, and Obsidian writes. Templates stay English-headered. |
132
+ | `vaultMode` | enum | Where context lives — `plain` (default; `<dataDir>/context`) or `obsidian` (an external Obsidian vault). |
133
+
134
+ ### Hourly check and gate
135
+
136
+ | Key | Type | Notes |
137
+ |---|---|---|
138
+ | `hourlyCheckEnabled` | boolean | Default `true`. |
139
+ | `hourlyCheckIntervalMinutes` | number | Default `60`. |
140
+ | `hourlyCheckActiveStartHour` | 0–23 | Default `4`. |
141
+ | `hourlyCheckActiveEndHour` | 1–24 | End-exclusive; `24` ≡ midnight. |
142
+ | `hourlyCheckMinObservations` | number | Default `1`. |
143
+ | `hourlyCheckStage2Enabled` | boolean | cost-reduction-structural §B Stage 2 toggle. |
144
+ | `hourlyCheckHeartbeatHours` | number | Quiet-day heartbeat cadence. |
145
+ | `hourlyCheckLowSignalPendingCeiling` | number | Low-signal ceiling before forcing dispatch. |
146
+ | `hourlyCheckPrePassFreshnessMinutes` | number | Layer-1 freshness window — `harvestForGate` skips a per-integration fetch if `runtime_state.pre_pass_last_run:<key>` is fresher. |
147
+
148
+ ### Notifications and quiet hours
149
+
150
+ | Key | Type | Notes |
151
+ |---|---|---|
152
+ | `quietHoursStart` / `quietHoursEnd` | `HH:MM` | Defaults `"22:00"` / `"08:00"`. |
153
+ | `maxNotificationsPerHour` | number | Default `3`. |
154
+ | `maxNotificationsPerDay` | number | Default `12`. |
155
+ | `batchIntervalMinutes` | number | Notification batching window. |
156
+ | `primaryPlatform` | enum | Channel the agent defaults to for new DMs. |
157
+ | `defaultNotificationPlatforms` | enum[] | Fan-out set. |
158
+
159
+ ### Sessions and execution
160
+
161
+ | Key | Type | Notes |
56
162
  |---|---|---|
57
- | `timezone` | IANA tz | `""` (falls back to system tz, e.g. `America/New_York`) |
58
- | `dayBoundaryHour` | 0–23 | `4` |
59
- | `hourlyCheckEnabled` | boolean | `true` |
60
- | `hourlyCheckIntervalMinutes` | number | `60` |
61
- | `hourlyCheckActiveStartHour` | 0–23 | `4` |
62
- | `hourlyCheckActiveEndHour` | 1–24 | `24` (end-exclusive; `24` midnight) |
63
- | `hourlyCheckMinObservations` | number | `1` |
64
- | `quietHoursStart` | `HH:MM` string | `"22:00"` |
65
- | `quietHoursEnd` | `HH:MM` string | `"08:00"` |
66
- | `maxNotificationsPerHour` | number | `3` |
67
- | `maxNotificationsPerDay` | number | `12` |
68
- | `batchIntervalMinutes` | number | `15` |
69
- | `executeTimeoutMinutes` | number | `60` |
70
- | `maxConcurrentSessions` | number | `3` |
71
- | `disallowedTools` | string[] | absolute-block defaults |
72
- | `allowedToolsOverride` | string[] | empty |
73
- | `autonomousDailyCostCapUsd` | number | `0` (off) |
74
- | `hourlyCheckPrePassFreshnessMinutes` | number | freshness window for the hourly_check `harvestForGate` pre-pass (Layer 1) — skips per-integration fetch if `runtime_state.pre_pass_last_run:<key>` is fresher than this |
75
- | `monthlyReviewEnabled` | boolean | `false` (kill switch — routine.monthly_review stays registered but does not fire by default) |
76
- | `delegatedTaskHeavyEnabled` | boolean | `false` (Approve-tier opt-in — gates `delegated_task_heavy` ProcessKey) |
77
- | `voiceTranscriptionEnabled` | boolean | `false` (Whisper local transcription for voice attachments) |
78
- | `voiceTranscriptionPrimaryLanguage` | string | Whisper language code (see VOICE_LANGUAGE_FULL list) |
79
- | `claudeExecutionPermissionMode` | `"safe"`/`"allow"` | per-backend Safe/Allow posture set in the setup wizard |
80
- | `codexExecutionPermissionMode` | `"safe"`/`"allow"` | same; absolute-block layer overlays both modes |
81
- | `geminiExecutionPermissionMode` | `"safe"`/`"allow"` | same |
82
- | `opencodeExecutionPermissionMode` | `"safe"`/`"allow"` | per-backend mode for the OpenCode backend |
83
- | `opencodeBaseUrl` | URL string | OpenCode server URL (when self-hosted) |
84
- | `opencodeServerUsername` | string | OpenCode server username, default `"opencode"` |
85
-
86
- The runtime-mutable subset can be edited from `/settings/*`. Restart-only
87
- fields (e.g. `apiPort`) require `aitne restart`.
88
-
89
- ### Routine schedule keys do not exist
90
-
91
- Morning, evening, and weekly routines fire at fixed times in
92
- `packages/daemon/src/core/scheduler.ts`. There is no `morningRoutineHour`,
93
- `eveningReviewHour`, or `weeklyReviewDay` config key.
163
+ | `maxConcurrentSessions` | number | Default `3`. |
164
+ | `maxReactiveSessions` | number | Sub-cap reserved for DM/mention work. |
165
+ | `executeTimeoutMinutes` | number | Per-execute wall-clock cap. |
166
+ | `sessionTimeoutDmMinutes` / `…ChannelMinutes` / `…DashboardMinutes` | number | Idle TTLs per surface. |
167
+ | `historyInjectionMaxMessages` / `…MaxTokens` | number | History-window caps for next-turn injection. |
168
+ | `autonomousDailyCostCapUsd` / `…MonthlyCostCapUsd` | number / null | Spend ceilings for autonomous work; default `null` (off). When set, must be positive. The daily cap makes the dispatcher skip autonomous sessions once the day's cumulative cost exceeds it — reactive DMs/mentions always pass through. The monthly cap is a notifications-only soft cap (no dispatcher enforcement). Distinct from the removed Phase-9 `maxDailyCostUsd`, which blanket-blocked every session. |
169
+
170
+ ### Safety and execution mode
171
+
172
+ | Key | Type | Notes |
173
+ |---|---|---|
174
+ | `disallowedTools` | string[] | Hard-deny tool matchers (Safe-mode strict set). |
175
+ | `allowedToolsOverride` | string[] | Runtime widening — cannot widen past `ALWAYS_DISALLOWED_TOOLS`. |
176
+ | `claudeExecutionPermissionMode` | `"safe"`/`"allow"` | Per-backend Safe/Allow posture. |
177
+ | `codexExecutionPermissionMode` | `"safe"`/`"allow"` | Same; allow mode cannot enforce absolute-block on shell. |
178
+ | `geminiExecutionPermissionMode` | `"safe"`/`"allow"` | Same. |
179
+ | `opencodeExecutionPermissionMode` | `"safe"`/`"allow"` | Per-backend mode for OpenCode. |
180
+
181
+ ### Pre-pass and observation summarizer
182
+
183
+ | Key | Type | Notes |
184
+ |---|---|---|
185
+ | `prePassMaxAttemptsPerIntegration` | number | Retry cap per integration in the routine pre-pass. |
186
+ | `prePassBackoffMs` | number | Backoff between retries. |
187
+ | `prePassRetryEscalationTier` | enum | Tier to escalate to on partial / failure. |
188
+ | `prePassFanOutConcurrency` | number | Parallel integrations during pre-pass fan-out. |
189
+ | `prePassMaxBudgetUsdPerIntegration` | number | Budget cap per integration per routine. |
190
+ | `prePassMaxBudgetUsdPerRoutine` | number | Aggregate budget cap per routine. |
191
+ | `prePassRetryOnPartial` | boolean | Whether partial results trigger a retry. |
192
+ | `observationSummarizerEnabled` | boolean | cost-reduction-structural §A observation summariser worker on/off. |
193
+ | `observationSummarizerConcurrency` / `…MaxCallsPerMinute` / `…QueueLimit` / `…TimeoutMs` | number | Summariser tuning. **Restart-required** (worker captures these at boot). |
194
+
195
+ ### Mail / calendar / git / browser-history polling
196
+
197
+ | Key | Type | Notes |
198
+ |---|---|---|
199
+ | `mailPollIntervalSeconds` / `mailIdleEnabled` / `mailIdleInstabilityThreshold` / `mailIdleFallbackRecoveryMinutes` / `mailMaxMessagesPerPoll` / `mailAuthFailureRetryHours` | various | Mail-poller knobs (multi-provider). |
200
+ | `enabledMailProviders` | enum[] | Which providers participate. One or more of `gmail`, `outlook`, `yahoo`, `icloud`. Default `["gmail"]`. |
201
+ | `vipMailSenders` | string[] | Sender list that bumps mail priority. |
202
+ | `outlookDeltaPageSize` / `outlookGraphConcurrency` | number | Outlook Graph API tuning. |
203
+ | `imapReconnectBaseMs` / `imapReconnectMaxMs` | number | IMAP reconnect backoff. |
204
+ | `gmailPollIntervalSeconds` | number | Gmail-specific cadence (restart-required). |
205
+ | `calendarPollIntervalSeconds` | number | Google Calendar poll interval. |
206
+ | `notionPollIntervalSeconds` | number | Notion poll interval. |
207
+ | `gitPollIntervalSeconds` / `githubPollIntervalSeconds` | number | Git / GitHub cadences (both restart-required — `GitWatcher` / `GitHubPoller` bind at construction). |
208
+ | `browserHistoryConsentAccepted` | boolean | B-3 consent gate — must be `true` for the poller to start. |
209
+ | `browserHistoryBrowserOverrides` | object | Per-browser opt-in/out and DB-path overrides. |
210
+ | `browserHistoryCategories` | enum[] | Visit-category allowlist. |
211
+ | `browserHistoryRetentionDays` / `…SearchQueryRetentionDays` | number | Retention windows. |
212
+ | `browserHistoryLifecycle` | object | Cluster lifecycle thresholds. |
213
+ | `browserHistoryResearchDomainAllowlist` / `…Denylist` | string[] | Domain filters for cluster qualification. |
214
+
215
+ ### Voice transcription
216
+
217
+ | Key | Type | Notes |
218
+ |---|---|---|
219
+ | `voiceTranscriptionEnabled` | boolean | Whisper local transcription for voice attachments. Default `false`. Restart-required when the env var is set; live-flip via `POST /api/voice/install` (downloads weights with progress UI). |
220
+ | `voiceTranscriptionPrimaryLanguage` | BCP-47 | Fallback language after Whisper's auto-detect. Live-applied on the next inbound audio attachment. |
221
+
222
+ ### Delegated tasks
223
+
224
+ | Key | Type | Notes |
225
+ |---|---|---|
226
+ | `delegatedTaskModeEnabled` | boolean | Master kill switch for the `/api/integrations/:key/exec` task-mode endpoints. Default `false`; mutable at runtime so an emergency disable needs no restart. |
227
+ | `delegatedTaskMaxPerDay` | number | Per-day quota. |
228
+ | `delegatedTaskDefaultMaxToolCalls` / `…DefaultMaxBudgetUsd` / `…DefaultTimeoutMs` | various | Per-task defaults. |
229
+ | `delegatedTaskHeavyEnabled` | boolean | Approve-tier opt-in gate for the heavy variant. |
230
+ | `delegatedTaskStructuredOutputEnabled` / `…CacheEnabled` / `…CacheTtlSeconds` / `…CacheMaxEntries` / `…SubprocessPoolEnabled` / `…SubprocessPoolTtlSeconds` | various | Phase-3 optimisation kill switches (independent). |
231
+ | `delegatedProxyMaxConcurrent` | number | Concurrency cap for the proxy worker. |
232
+
233
+ ### Advisor
234
+
235
+ | Key | Type | Notes |
236
+ |---|---|---|
237
+ | `advisorEnabled` | boolean | SDK advisor toggle. |
238
+ | `advisorModel` | string / null | Model id; default `null`. Validated against `ADVISOR_ALLOWED_MODELS`, which the SDK pins to `claude-sonnet-4-6` and `claude-opus-4-6` only. Newer Opus generations (`claude-opus-4-7`, `claude-opus-4-8`) are silently skipped by the SDK advisor path — see `docs/advisor.md`. |
239
+
240
+ ## Routine Schedule Times Are Not Configurable
241
+
242
+ The morning, evening, weekly, and monthly routines fire at fixed times
243
+ defined in `packages/daemon/src/core/scheduler.ts`. There is no
244
+ `morningRoutineHour`, `eveningReviewHour`, or `weeklyReviewDay` key — to
245
+ shift the whole day, change `dayBoundaryHour` instead.
94
246
 
95
247
  | Routine | Trigger |
96
248
  |---|---|
97
- | `routine.morning_routine` | daily at `dayBoundaryHour` |
98
- | `routine.evening_review` | daily at `18:00` local |
99
- | `routine.weekly_review` | Friday `18:00` local |
249
+ | `routine.morning_routine` | Daily at `dayBoundaryHour` (default 04:00). |
250
+ | `routine.evening_review` | Daily at `18:00` local. |
251
+ | `routine.weekly_review` | Friday `19:00` local (one hour after the evening review). |
252
+ | `routine.monthly_review` | Last day of the month at `18:00` local, but **disabled by default** (`monthlyReviewEnabled = false`). |
253
+
254
+ The hourly check is the one autonomous routine with a configurable
255
+ cadence (`hourlyCheckIntervalMinutes`) and active window
256
+ (`hourlyCheckActiveStartHour` / `…ActiveEndHour`).
257
+
258
+ ## Restart-Required Keys
259
+
260
+ The `RESTART_REQUIRED_KEY_TUPLE` covers fields whose new value is
261
+ written through `applyConfigUpdates` but does not apply to a running
262
+ worker — the dashboard renders a badge prompting an `aitne restart`.
263
+ The current list:
100
264
 
101
- Only the hourly check has a configurable cadence (`hourlyCheckIntervalMinutes`)
102
- and an active window (`hourlyCheckActiveStartHour` / `…ActiveEndHour`).
265
+ - `apiPort` (env-only)
266
+ - `externalObsidianVaultName` / `externalObsidianVaultPath` / `externalObsidianWatch`
267
+ - `primaryVaultPath` / `primaryVaultName`
268
+ - `slackOwnerUserId` / `telegramOwnerChatId` / `discordOwnerUserId`
269
+ - `whatsappEnabled` / `whatsappOwnerPhone` / `whatsappAuthDir`
270
+ - `notionDatabaseIds`
271
+ - `gmailPollIntervalSeconds` / `gitPollIntervalSeconds` / `githubPollIntervalSeconds`
272
+ - `delegatedProbeIntervalMinutes`
273
+ - `voiceTranscriptionEnabled` (only when `PA_VOICE_TRANSCRIPTION_ENABLED` env is set)
274
+ - `observationSummarizerEnabled` / `…Concurrency` / `…MaxCallsPerMinute` / `…QueueLimit` / `…TimeoutMs`
103
275
 
104
276
  ## Related
105
277
 
106
278
  - [API](api.md)
279
+ - [CLI Commands](cli-commands.md)
280
+ - [Disallowed Tools](disallowed-tools.md)
281
+ - [Safety and Execution](../concepts/safety-and-execution.md)
@@ -12,18 +12,20 @@ category: reference
12
12
  summary: |
13
13
  The absolute-block tool patterns. Cannot be widened by config or
14
14
  by skill-level allow-lists. Mirrors src/safety/always-disallowed.ts.
15
- section: disallowed-tools
15
+ section: reference
16
16
  tags:
17
17
  - reference
18
18
  - safety
19
19
  - core
20
+ - audit
20
21
  status: stable
21
22
  ask_examples:
22
23
  - What can the agent never run?
23
24
  - Can I unblock a tool in the absolute-block list?
25
+ - Why can't the agent read my .env or SSH keys?
24
26
  locale: en-US
25
27
  created: 2026-04-25
26
- updated: 2026-04-26
28
+ updated: 2026-05-28
27
29
  keywords:
28
30
  - disallowedTools
29
31
  - deniedTools
@@ -31,8 +33,10 @@ keywords:
31
33
  - always-disallowed
32
34
  - Bash(rm -rf)
33
35
  - PreToolUse
36
+ - blocked_absolute
34
37
  related:
35
38
  - concepts/safety-and-execution
39
+ - concepts/safety-model
36
40
  ---
37
41
 
38
42
  # Disallowed Tools
@@ -52,20 +56,25 @@ or `allowedToolsOverride`. Source of truth:
52
56
  | Recursive delete | `Bash(rm -rf *)`, `Bash(rm -r *)`, `Bash(rm -R*)`, `Bash(rm -fr*)`, `Bash(rm --recursive*)`, plus the bypass-coverage family of every short-flag bundle containing `r`/`R` (see source) |
53
57
  | Privilege escalation | `Bash(sudo *)`, `Bash(doas *)`, `Bash(su *)` |
54
58
  | Pipe-to-shell RCE | `Bash(curl * | sh*)`, `Bash(curl * | bash*)`, `Bash(wget * | sh*)`, `Bash(wget * | bash*)`, `Bash(bash <(*)*)`, `Bash(sh <(*)*)`, `Bash(bash<*)`, `Bash(sh<*)`, `Bash(eval *)`, `Bash(source *)` |
55
- | Platform secret-management CLIs | `Bash(security *)` (macOS Keychain), `Bash(secret-tool *)` (libsecret), `Bash(cmdkey *)` (Windows Credential Manager) |
56
- | Secret-file reads | `Read(.env)`, `Read(.env.*)`, `Read(**/.env)`, `Read(id_rsa*)`, `Read(id_ed25519*)`, `Read(~/.ssh/**)`, `Read(~/.gnupg/**)`, `Read(~/.aws/**)`, `Read(~/.config/gcloud/**)`, `Read(~/.config/gh/hosts.yml)`, `Read(~/.netrc)`, `Read(~/Library/Keychains/**)`, `Read(~/.local/share/keyrings/**)` |
59
+ | Platform secret-management CLIs | `Bash(security *)` (macOS Keychain), `Bash(secret-tool *)` (libsecret), `Bash(cmdkey *)` (Windows Credential Manager), `Bash(certutil *)` and `Bash(rundll32.exe *)` (Windows DPAPI / vault dump) |
60
+ | Secret-file reads | `Read(.env)`, `Read(.env.*)`, `Read(**/.env)`, `Read(**/.env.*)`, `Read(id_rsa*)`, `Read(id_ed25519*)`, `Read(~/.ssh/**)`, `Read(~/.gnupg/**)`, `Read(~/.aws/**)`, `Read(~/.config/gcloud/**)`, `Read(~/.config/gh/hosts.yml)`, `Read(~/.netrc)`, `Read(~/Library/Keychains/**)`, `Read(~/.local/share/keyrings/**)` |
57
61
  | Daemon-managed secret surfaces | `Read(~/.personal-agent/backups/**)`, `Read(~/.personal-agent/whatsapp/auth/**)`, `Read(~/.personal-agent/secrets/**)` |
58
- | Secret-file writes | `Write(...)` and `Edit(...)` mirrors of every secret-file Read pattern above |
62
+ | Browser-history profile dirs | `Bash(sqlite3 *)`, `Bash(curl file://*)`, `Bash(cp ~/Library/Application Support/Google/Chrome/*)` (Chrome / Chromium / Edge / Brave / Comet / Atlas on macOS, Linux, and `/mnt/c/Users/*` for WSL), plus the matching `Read(...)` patterns access goes through `/api/browser-history/*` only |
63
+ | Managed-Chromium profile dirs | `Read(~/.personal-agent/chromium-sync/**)`, `chromium-automation{,-anon,-auth,-purchase}/**`, and `Bash(cp …)` / `mv` / `tar` / `zip` / `rsync` of `~/.personal-agent/chromium-*` — protects the daemon-owned OAuth refresh token |
64
+ | Anthropic-cloud managed agents | `CronCreate`, `CronList`, `CronDelete`, `RemoteTrigger`, `PushNotification` — Aitne is local-first; cloud-scheduled agents would bypass the audit log, MD memory, quiet hours, and cost telemetry |
65
+ | Secret-file writes | `Write(...)` and `Edit(...)` mirrors of every Read pattern in the secret-file and profile-dir rows above |
59
66
 
60
67
  Plain `curl` / `wget` are intentionally **not** in this list — skills
61
68
  rely on `curl http://localhost:<port>/api/...` as the daemon-API
62
- chokepoint for memory writes.
69
+ chokepoint for memory writes (including the browser-history and
70
+ managed-Chromium chokepoints above).
63
71
 
64
72
  > **Codex allow-mode gap.** Codex CLI has no hook or admin-policy
65
73
  > surface for shell commands, so allow mode runs under
66
74
  > `--dangerously-bypass-approvals-and-sandbox` and the absolute-block
67
- > layer can't enforce on Codex there. See
68
- > `docs/design/09-safety-cost.md` §6.4 for the accepted gap.
75
+ > layer can't enforce on Codex there. Claude, Gemini, and OpenCode
76
+ > enforce it in every mode. See [Safety and Execution](../concepts/safety-and-execution.md)
77
+ > for the accepted gap.
69
78
 
70
79
  ## Default strict-mode list (relaxable)
71
80
 
@@ -82,8 +91,18 @@ Every absolute-block match is logged as
82
91
  `agent_actions(action_type='blocked_absolute')` with a redacted form
83
92
  of the offending argument and the matched category. The classifier
84
93
  that produces the category is `classifyAbsoluteBlock` in
85
- `src/safety/always-disallowed.ts`.
94
+ `src/safety/always-disallowed.ts`; browser-profile and managed-Chromium
95
+ attempts route through `classifyChromiumTokenAccess` /
96
+ `looksLikeBrowserProfileBash` in the same module.
97
+
98
+ The `blocked_absolute` row is written on Claude (a PreToolUse `block`
99
+ hook on top of the SDK `disallowedTools` glob list) and on Codex,
100
+ Gemini, and OpenCode (a stream observer that classifies each attempted
101
+ command, recording `result='partial'`). You can review these in
102
+ `aitne audit` (e.g. `aitne audit --type blocked_absolute`) or under
103
+ [Activity](/activity?tab=system) in the dashboard.
86
104
 
87
105
  ## Related
88
106
 
89
- - [Safety and Execution](../concepts/safety-and-execution.md)
107
+ - [Safety and Execution](../concepts/safety-and-execution.md) — how Safe vs Allow mode interacts with this layer
108
+ - [Safety Model](../concepts/safety-model.md) — the broader risk-classification picture
@@ -11,7 +11,7 @@ category: reference
11
11
  summary: |
12
12
  Keyboard shortcuts available in the dashboard. The set is small by
13
13
  design — the dashboard is a low-cognition surface.
14
- section: keyboard-shortcuts
14
+ section: reference
15
15
  tags:
16
16
  - reference
17
17
  - dashboard
@@ -19,9 +19,11 @@ tags:
19
19
  status: stable
20
20
  ask_examples:
21
21
  - What keyboard shortcuts work in the dashboard?
22
+ - How do I open the search palette?
23
+ - What does pressing "?" do in the dashboard?
22
24
  locale: en-US
23
25
  created: 2026-04-25
24
- updated: 2026-04-25
26
+ updated: 2026-05-28
25
27
  keywords:
26
28
  - shortcut
27
29
  - hotkey
@@ -30,22 +32,44 @@ keywords:
30
32
  - keyboard
31
33
  - cmdk
32
34
  - command palette
35
+ - help slide-over
36
+ ui_anchors:
37
+ - /chat
38
+ - /docs
33
39
  related:
34
40
  - features/messaging/dashboard-chat
35
41
  ---
36
42
 
37
43
  # Keyboard Shortcuts
38
44
 
45
+ The dashboard ships a deliberately small set of shortcuts — it is a
46
+ low-cognition surface, not a power-user IDE. These work from any
47
+ dashboard screen.
48
+
39
49
  | Keys | Action |
40
50
  |---|---|
41
- | `?` | Open the contextual help slide-over. On `/docs`, focuses the inline QA composer. |
42
- | `Cmd+K` / `Ctrl+K` | Open the search palette (settings + Actions). |
43
- | `Esc` | Close the slide-over / palette. |
44
- | `Cmd+Enter` | Send the current QA composer / chat message. |
45
-
46
- Shortcuts are skipped when an input or textarea is focused (so typing
47
- `?` in chat does not open the slide-over). The exception is `Cmd+K`,
48
- which still opens regardless.
51
+ | `Cmd+K` / `Ctrl+K` | Toggle the search palette jump to any setting or run an action (e.g. "Ask docs…"). |
52
+ | `?` | Open the contextual help slide-over. On the `/docs` viewer it focuses the inline question composer instead. |
53
+ | `Esc` | Close the open slide-over or palette. |
54
+ | `Cmd+Enter` / `Ctrl+Enter` | Send the message you are typing — works in the chat composer and the docs question composer. |
55
+
56
+ ## When shortcuts are suppressed
57
+
58
+ Most shortcuts are ignored while a text field (input, textarea, or
59
+ contenteditable) is focused, so typing `?` into a chat message does not
60
+ pop the help slide-over.
61
+
62
+ **`Cmd+K` / `Ctrl+K` is the exception** — it opens the search palette
63
+ regardless of where focus sits.
64
+
65
+ ## Examples
66
+
67
+ - Press `Cmd+K`, type "timezone", and hit Enter to jump straight to the
68
+ Timezone field on `/settings/schedule`.
69
+ - On any screen, press `?` to ask a question about what you are looking
70
+ at; the help slide-over opens pre-scoped to that page's doc.
71
+ - While drafting a message in `/chat`, press `Cmd+Enter` to send without
72
+ reaching for the mouse.
49
73
 
50
74
  ## Related
51
75