@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.
- package/README.md +251 -164
- package/agent-assets/agent-profiles/_safety.md +3 -3
- package/agent-assets/agent-profiles/browser-task.md +108 -0
- package/agent-assets/agent-profiles/conversational.md +3 -3
- package/agent-assets/agent-profiles/profile-importer.md +2 -2
- package/agent-assets/agent-profiles/routine-fetch-window.md +30 -19
- package/agent-assets/agents/context-index-reconcile/agent.md +52 -0
- package/agent-assets/agents/evening-review/agent.md +53 -0
- package/agent-assets/agents/hourly-check/agent.md +62 -0
- package/agent-assets/agents/monthly-review/agent.md +55 -0
- package/agent-assets/agents/morning-routine/agent.md +78 -0
- package/agent-assets/agents/roadmap-maintenance/agent.md +52 -0
- package/agent-assets/agents/skill-curation/agent.md +52 -0
- package/agent-assets/agents/user-profile-sweep-evening/agent.md +48 -0
- package/agent-assets/agents/user-profile-sweep-morning/agent.md +53 -0
- package/agent-assets/agents/weekly-review/agent.md +51 -0
- package/agent-assets/docs/concepts/agent-day.md +13 -11
- package/agent-assets/docs/concepts/auth-health.md +47 -10
- package/agent-assets/docs/concepts/backends-and-tiers.md +66 -31
- package/agent-assets/docs/concepts/costs-and-quotas.md +51 -15
- package/agent-assets/docs/concepts/delegated-mode.md +56 -17
- package/agent-assets/docs/concepts/memory-model.md +77 -34
- package/agent-assets/docs/concepts/observations.md +49 -11
- package/agent-assets/docs/concepts/process-keys.md +56 -22
- package/agent-assets/docs/concepts/routines.md +60 -33
- package/agent-assets/docs/concepts/safety-and-execution.md +50 -21
- package/agent-assets/docs/concepts/safety-model.md +61 -50
- package/agent-assets/docs/concepts/skills.md +34 -18
- package/agent-assets/docs/features/integrations/browser-history.md +196 -0
- package/agent-assets/docs/features/integrations/calendar.md +39 -29
- package/agent-assets/docs/features/integrations/git.md +18 -7
- package/agent-assets/docs/features/integrations/github.md +84 -33
- package/agent-assets/docs/features/integrations/mail.md +61 -17
- package/agent-assets/docs/features/integrations/notion.md +18 -6
- package/agent-assets/docs/features/integrations/obsidian.md +28 -5
- package/agent-assets/docs/features/lifestyle/git.md +44 -40
- package/agent-assets/docs/features/lifestyle/reading.md +57 -22
- package/agent-assets/docs/features/lifestyle/receipts.md +51 -21
- package/agent-assets/docs/features/lifestyle/travel-bookings.md +77 -14
- package/agent-assets/docs/features/memory-files/agent-journal.md +132 -53
- package/agent-assets/docs/features/memory-files/agent-lessons.md +177 -0
- package/agent-assets/docs/features/memory-files/projects.md +73 -17
- package/agent-assets/docs/features/memory-files/roadmap.md +54 -11
- package/agent-assets/docs/features/memory-files/schedule.md +113 -70
- package/agent-assets/docs/features/memory-files/today.md +46 -21
- package/agent-assets/docs/features/memory-files/user-profile.md +63 -33
- package/agent-assets/docs/features/messaging/bang-commands.md +113 -36
- package/agent-assets/docs/features/messaging/dashboard-chat.md +43 -21
- package/agent-assets/docs/features/messaging/discord.md +35 -4
- package/agent-assets/docs/features/messaging/overview.md +37 -19
- package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +94 -27
- package/agent-assets/docs/features/messaging/slack.md +67 -14
- package/agent-assets/docs/features/messaging/telegram.md +22 -8
- package/agent-assets/docs/features/messaging/whatsapp.md +71 -17
- package/agent-assets/docs/features/operations/activity-and-conversations.md +45 -15
- package/agent-assets/docs/features/operations/approvals.md +49 -16
- package/agent-assets/docs/features/operations/backend-routing.md +68 -16
- package/agent-assets/docs/features/operations/cost-tracking.md +84 -17
- package/agent-assets/docs/features/operations/managed-chromium.md +222 -0
- package/agent-assets/docs/features/operations/notifications.md +52 -11
- package/agent-assets/docs/features/operations/quiet-hours.md +64 -40
- package/agent-assets/docs/features/operations/schedule-approaching.md +54 -24
- package/agent-assets/docs/features/routines/custom-routines.md +98 -26
- package/agent-assets/docs/features/routines/evening-review.md +82 -21
- package/agent-assets/docs/features/routines/hourly-check.md +149 -29
- package/agent-assets/docs/features/routines/morning-routine.md +54 -35
- package/agent-assets/docs/features/routines/weekly-review.md +46 -21
- package/agent-assets/docs/features/wiki/commands.md +26 -16
- package/agent-assets/docs/features/wiki/cost-and-approval.md +241 -0
- package/agent-assets/docs/features/wiki/dashboard.md +256 -0
- package/agent-assets/docs/features/wiki/overview.md +70 -12
- package/agent-assets/docs/features/wiki/search.md +248 -0
- package/agent-assets/docs/features/wiki/workspaces.md +254 -0
- package/agent-assets/docs/getting-started/01-what-is-this.md +34 -23
- package/agent-assets/docs/getting-started/02-first-steps.md +17 -10
- package/agent-assets/docs/getting-started/03-what-can-this-do.md +25 -14
- package/agent-assets/docs/getting-started/04-first-day.md +39 -21
- package/agent-assets/docs/glossary.md +235 -24
- package/agent-assets/docs/guides/add-a-custom-routine.md +63 -23
- package/agent-assets/docs/guides/backup-and-restore.md +80 -16
- package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +57 -26
- package/agent-assets/docs/guides/build-your-wiki.md +22 -9
- package/agent-assets/docs/guides/change-which-model-handles-x.md +64 -10
- package/agent-assets/docs/guides/connect-a-new-mail-account.md +66 -15
- package/agent-assets/docs/guides/explore-with-trace-and-connect.md +32 -14
- package/agent-assets/docs/guides/import-knowledge-file.md +50 -40
- package/agent-assets/docs/guides/install-and-run.md +49 -20
- package/agent-assets/docs/guides/maintain-wiki-health.md +35 -10
- package/agent-assets/docs/guides/migrate-machines.md +74 -18
- package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +111 -60
- package/agent-assets/docs/guides/pause-the-agent.md +69 -24
- package/agent-assets/docs/guides/reinstall-cleanly.md +88 -18
- package/agent-assets/docs/guides/setup-wizard.md +116 -54
- package/agent-assets/docs/guides/switch-default-backend.md +62 -16
- package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +30 -14
- package/agent-assets/docs/reference/api.md +153 -32
- package/agent-assets/docs/reference/cli-commands.md +39 -18
- package/agent-assets/docs/reference/config.md +241 -49
- package/agent-assets/docs/reference/disallowed-tools.md +34 -13
- package/agent-assets/docs/reference/keyboard-shortcuts.md +34 -10
- package/agent-assets/docs/reference/knowledge-layout.md +629 -0
- package/agent-assets/docs/reference/process-keys.md +62 -6
- package/agent-assets/docs/reference/skills.md +41 -14
- package/agent-assets/docs/troubleshooting/auth-failed.md +51 -21
- package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +97 -28
- package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +86 -22
- package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +68 -24
- package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +80 -20
- package/agent-assets/docs/troubleshooting/observation-not-detected.md +73 -21
- package/agent-assets/docs/troubleshooting/quota-exhausted.md +33 -8
- package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +126 -54
- package/agent-assets/docs/troubleshooting/wiki-write-failed.md +29 -12
- package/agent-assets/optimizer-skills/drift-analysis/SKILL.md +1 -1
- package/agent-assets/optimizer-skills/knowledge-map/SKILL.md +1 -1
- package/agent-assets/optimizer-skills/skill-curation/SKILL.md +1 -1
- package/agent-assets/sandbox/linux/aitne-chromium.apparmor +91 -0
- package/agent-assets/sandbox/macos/aitne-chromium.sb +156 -0
- package/agent-assets/skills/agent-actions/SKILL.md +25 -41
- package/agent-assets/skills/agent-create/SKILL.md +158 -0
- package/agent-assets/skills/attach/SKILL.md +10 -29
- package/agent-assets/skills/browser-history/SKILL.md +211 -0
- package/agent-assets/skills/browser-history-respond/SKILL.md +111 -0
- package/agent-assets/skills/browser-task/SKILL.md +164 -0
- package/agent-assets/skills/context/SKILL.md +35 -44
- package/agent-assets/skills/context/curation.json +14 -14
- package/agent-assets/skills/context/references/api.md +52 -40
- package/agent-assets/skills/context/references/required-frontmatter.md +13 -12
- package/agent-assets/skills/context/references/snapshot-files.md +18 -17
- package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +8 -8
- package/agent-assets/skills/context/seeds/frontmatter-requirements.seed.json +3 -3
- package/agent-assets/skills/docs-search/SKILL.md +23 -34
- package/agent-assets/skills/external-services/SKILL.delegated.claude.md +17 -114
- package/agent-assets/skills/external-services/SKILL.delegated.codex.md +17 -113
- package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +17 -113
- package/agent-assets/skills/external-services/SKILL.md +3 -3
- package/agent-assets/skills/external-services/SKILL.native.claude.md +7 -7
- package/agent-assets/skills/external-services/SKILL.native.codex.md +7 -7
- package/agent-assets/skills/external-services/SKILL.native.gemini.md +4 -4
- package/agent-assets/skills/external-services/references/calendar-apple.md +2 -2
- package/agent-assets/skills/external-services/references/calendar-outlook.md +1 -1
- package/agent-assets/skills/external-services/references/exec-errors.md +32 -0
- package/agent-assets/skills/external-services/references/obsidian.md +2 -2
- package/agent-assets/skills/external-services/references/skills-crud.md +5 -5
- package/agent-assets/skills/gmail-lifestyle/SKILL.md +11 -83
- package/agent-assets/skills/gmail-lifestyle/references/receipts-api.md +4 -0
- package/agent-assets/skills/gmail-lifestyle/references/travel-bookings-api.md +9 -0
- package/agent-assets/skills/mail/SKILL.delegated.claude.md +15 -18
- package/agent-assets/skills/mail/SKILL.delegated.codex.md +11 -6
- package/agent-assets/skills/mail/SKILL.delegated.gemini.md +11 -6
- package/agent-assets/skills/mail/SKILL.md +10 -18
- package/agent-assets/skills/mail/SKILL.native.claude.md +8 -7
- package/agent-assets/skills/mail/SKILL.native.codex.md +1 -1
- package/agent-assets/skills/mail/SKILL.native.gemini.md +1 -1
- package/agent-assets/skills/mail/references/api.md +10 -3
- package/agent-assets/skills/mail/references/examples.md +2 -1
- package/agent-assets/skills/mail/references/providers.md +1 -1
- package/agent-assets/skills/managed-tasks/SKILL.md +48 -81
- package/agent-assets/skills/managed-tasks/references/errors.md +33 -19
- package/agent-assets/skills/managed-tasks/references/output-path.md +33 -17
- package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +7 -5
- package/agent-assets/skills/management-policy/SKILL.md +42 -42
- package/agent-assets/skills/management-policy/curation.json +1 -1
- package/agent-assets/skills/management-policy/references/policy-workflow.md +11 -12
- package/agent-assets/skills/management-policy/seeds/policy-file-shape.seed.json +1 -1
- package/agent-assets/skills/notify/SKILL.md +14 -16
- package/agent-assets/skills/notify/references/priority.md +28 -20
- package/agent-assets/skills/notion/SKILL.delegated.claude.md +2 -2
- package/agent-assets/skills/notion/SKILL.delegated.codex.md +2 -2
- package/agent-assets/skills/notion/SKILL.delegated.gemini.md +2 -2
- package/agent-assets/skills/notion/SKILL.md +17 -17
- package/agent-assets/skills/notion/SKILL.native.claude.md +11 -7
- package/agent-assets/skills/notion/SKILL.native.codex.md +10 -5
- package/agent-assets/skills/notion/SKILL.native.gemini.md +10 -5
- package/agent-assets/skills/observations/SKILL.md +29 -28
- package/agent-assets/skills/observations/references/fetch-fallback.md +22 -0
- package/agent-assets/skills/project-doc/SKILL.md +10 -7
- package/agent-assets/skills/project-doc/curation.json +3 -3
- package/agent-assets/skills/project-doc/seeds/project-shape.seed.json +8 -5
- package/agent-assets/skills/project-doc/seeds/slug-grammar.seed.json +5 -5
- package/agent-assets/skills/reading/SKILL.md +18 -42
- package/agent-assets/skills/reading/references/reading-taste.md +7 -7
- package/agent-assets/skills/roadmap/SKILL.md +8 -24
- package/agent-assets/skills/roadmap/curation.json +1 -1
- package/agent-assets/skills/roadmap/references/api.md +21 -11
- package/agent-assets/skills/roadmap/references/cross-check.md +15 -8
- package/agent-assets/skills/roadmap/references/horizon-tags.md +11 -0
- package/agent-assets/skills/roadmap/references/migration.md +12 -10
- package/agent-assets/skills/roadmap/references/retention.md +18 -0
- package/agent-assets/skills/roadmap/seeds/entry-types.seed.json +1 -1
- package/agent-assets/skills/schedule/SKILL.md +41 -50
- package/agent-assets/skills/schedule/references/batch.md +2 -2
- package/agent-assets/skills/schedule/references/errors.md +7 -4
- package/agent-assets/skills/schedule/references/importance.md +23 -0
- package/agent-assets/skills/schedule/references/model-selection.md +3 -3
- package/agent-assets/skills/schedule/references/recurrence-rule.md +7 -5
- package/agent-assets/skills/scheduled-managed-task/SKILL.md +77 -70
- package/agent-assets/skills/today/SKILL.md +24 -83
- package/agent-assets/skills/today/curation.json +3 -3
- package/agent-assets/skills/today/references/agent-plan-lifecycle.md +6 -5
- package/agent-assets/skills/today/references/today-skeleton.md +66 -0
- package/agent-assets/skills/today/seeds/agent-notes-flavors.seed.json +1 -1
- package/agent-assets/skills/today/seeds/section-shape.seed.json +7 -7
- package/agent-assets/skills/user-interview/SKILL.md +21 -93
- package/agent-assets/skills/user-interview/references/op-briefing.md +3 -3
- package/agent-assets/skills/user-interview/references/op-dm-handler.md +88 -0
- package/agent-assets/skills/user-interview/references/op-morning.md +1 -1
- package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +9 -1
- package/agent-assets/skills/user-profile/SKILL.md +29 -39
- package/agent-assets/skills/user-profile/curation.json +4 -4
- package/agent-assets/skills/user-profile/references/character-preferences.md +3 -3
- package/agent-assets/skills/user-profile/seeds/routing-table.seed.json +8 -8
- package/agent-assets/skills/user-profile/seeds/topic-files.seed.json +6 -6
- package/agent-assets/skills/wiki/wiki-ask/SKILL.md +1 -1
- package/agent-assets/skills/wiki/wiki-compile/SKILL.md +9 -8
- package/agent-assets/skills/wiki/wiki-connect/SKILL.md +32 -5
- package/agent-assets/skills/wiki/wiki-ingest/SKILL.md +6 -50
- package/agent-assets/skills/wiki/wiki-ingest/references/curl-errors.md +58 -0
- package/agent-assets/skills/wiki/wiki-lint/SKILL.md +20 -14
- package/agent-assets/skills/wiki/wiki-trace/SKILL.md +10 -5
- package/agent-assets/skills/wiki/wiki-vault-rules/SKILL.md +2 -0
- package/agent-assets/system-prompts/routine-fetch-window.md +22 -12
- package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +4 -2
- package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +4 -2
- package/agent-assets/task-flows/_partials/capture-user-info.md +2 -2
- package/agent-assets/task-flows/_partials/dm-intent.long-horizon.md +1 -1
- package/agent-assets/task-flows/_partials/dm-intent.project.md +9 -9
- package/agent-assets/task-flows/_partials/feedback-capture.md +30 -0
- package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +3 -2
- package/agent-assets/task-flows/_partials/notion-acquire.notion.md +10 -5
- package/agent-assets/task-flows/browser_task.md +84 -0
- package/agent-assets/task-flows/github.assigned.md +1 -1
- package/agent-assets/task-flows/github.pull_request.review_requested.md +2 -2
- package/agent-assets/task-flows/github.workflow_run.failed.md +2 -2
- package/agent-assets/task-flows/knowledge.import.md +14 -14
- package/agent-assets/task-flows/message.received.dm.md +13 -4
- package/agent-assets/task-flows/message.received.dm_first.md +7 -3
- package/agent-assets/task-flows/routine.custom.md +3 -3
- package/agent-assets/task-flows/routine.evening_review.md +88 -8
- package/agent-assets/task-flows/routine.fetch_window.md +2 -2
- package/agent-assets/task-flows/routine.hourly_check.md +16 -12
- package/agent-assets/task-flows/routine.monthly_review.md +93 -21
- package/agent-assets/task-flows/routine.morning_routine_journal.md +119 -97
- package/agent-assets/task-flows/routine.morning_routine_today.md +43 -43
- package/agent-assets/task-flows/routine.research_cluster_update.md +35 -0
- package/agent-assets/task-flows/routine.research_dispatch.md +38 -0
- package/agent-assets/task-flows/routine.research_offer_dm.md +125 -0
- package/agent-assets/task-flows/routine.research_wiki_summary.md +53 -0
- package/agent-assets/task-flows/routine.roadmap_refresh.md +10 -10
- package/agent-assets/task-flows/routine.today_refresh.md +4 -4
- package/agent-assets/task-flows/routine.user_profile_sweep.md +10 -10
- package/agent-assets/task-flows/routine.weekly_review.md +114 -24
- package/agent-assets/task-flows/schedule.approaching.md +0 -1
- package/agent-assets/task-flows/scheduled.dm.md +5 -5
- package/agent-assets/task-flows/scheduled.task.md +4 -4
- package/agent-assets/task-flows/setup.initial.md +21 -21
- package/agent-assets/task-flows/setup.update.md +2 -2
- package/agent-assets/task-flows/wiki.trace.md +1 -1
- package/agent-assets/templates/README.md +27 -20
- package/agent-assets/templates/_index.md +42 -26
- package/agent-assets/templates/_manifest.json +34 -99
- package/agent-assets/templates/{user → identity}/_index.md +1 -1
- package/agent-assets/templates/{user → identity}/profile.md +2 -2
- package/agent-assets/templates/{dossiers → knowledge/dossiers}/_index.md +1 -1
- package/agent-assets/templates/{projects → plans/projects}/_active.base +1 -1
- package/agent-assets/templates/policies/_index.md +21 -0
- package/agent-assets/templates/{rules → policies}/journal-export.md +1 -1
- package/agent-assets/templates/{rules → policies}/journal-format.md +5 -5
- package/agent-assets/templates/{rules/policies → policies/management-captures}/_index.md +2 -2
- package/agent-assets/templates/{rules → policies}/management.md +3 -3
- package/agent-assets/templates/{rules → policies}/mcp.md +1 -1
- package/agent-assets/templates/{rules → policies}/redaction.md +1 -1
- package/agent-assets/templates/{routines → policies/routines}/_index.md +1 -1
- package/agent-assets/templates/{routines → policies/routines}/evening.md +2 -2
- package/agent-assets/templates/{routines → policies/routines}/hourly.md +1 -1
- package/agent-assets/templates/{routines → policies/routines}/monthly.md +2 -2
- package/bin/aitne.mjs +58 -15
- package/package.json +5 -4
- package/scripts/commands/doctor.mjs +25 -10
- package/scripts/commands/run-now.mjs +6 -21
- package/scripts/lib/ports.d.mts +27 -0
- package/scripts/lib/ports.mjs +36 -0
- package/scripts/lib/process-identity.d.mts +46 -0
- package/scripts/lib/process-identity.mjs +193 -0
- package/scripts/lib/read-api-token.mjs +176 -0
- package/scripts/start.mjs +16 -5
- package/agent-assets/docs/features/lifestyle/travel-time.md +0 -58
- package/agent-assets/skills/gmail-lifestyle/references/travel-time-api.md +0 -59
- package/agent-assets/skills/schedule/references/recurring.md +0 -185
- package/agent-assets/templates/context-index.md +0 -42
- package/agent-assets/templates/rules/_index.md +0 -19
- /package/agent-assets/templates/{user → identity}/expertise.md +0 -0
- /package/agent-assets/templates/{user → identity}/goals.md +0 -0
- /package/agent-assets/templates/{user → identity}/people.md +0 -0
- /package/agent-assets/templates/{user → identity}/personal.md +0 -0
- /package/agent-assets/templates/{user → identity}/work.md +0 -0
- /package/agent-assets/templates/{agent/journal.md → journal/agent.md} +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/evening.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/hourly.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/monthly.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/morning.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/roadmap.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/weekly.md +0 -0
- /package/agent-assets/templates/{projects → plans/projects}/_index.md +0 -0
- /package/agent-assets/templates/{roadmap.md → plans/roadmap.md} +0 -0
- /package/agent-assets/templates/{routines → policies/routines}/morning.md +0 -0
- /package/agent-assets/templates/{routines → policies/routines}/weekly.md +0 -0
- /package/agent-assets/templates/{agent → state}/profile-questions.md +0 -0
- /package/agent-assets/templates/{today.md → state/today.md} +0 -0
|
@@ -36,7 +36,7 @@ ask_examples:
|
|
|
36
36
|
- Why don't I see a SKILL.md for Gmail in my Codex session?
|
|
37
37
|
locale: en-US
|
|
38
38
|
created: 2026-04-26
|
|
39
|
-
updated: 2026-
|
|
39
|
+
updated: 2026-06-07
|
|
40
40
|
keywords:
|
|
41
41
|
- delegated mode
|
|
42
42
|
- direct mode
|
|
@@ -55,9 +55,16 @@ related:
|
|
|
55
55
|
- features/integrations/mail
|
|
56
56
|
ui_anchors:
|
|
57
57
|
- /connections
|
|
58
|
+
- /connections/mail
|
|
59
|
+
- /connections/calendar
|
|
58
60
|
- /settings/models
|
|
59
|
-
|
|
60
|
-
- integrations
|
|
61
|
+
api_endpoints:
|
|
62
|
+
- PATCH /api/integrations/:key
|
|
63
|
+
- POST /api/integrations/:key/exec
|
|
64
|
+
- POST /api/integrations/:key/probe
|
|
65
|
+
- POST /api/observations/batch
|
|
66
|
+
context_files:
|
|
67
|
+
- policies/integrations.md
|
|
61
68
|
---
|
|
62
69
|
|
|
63
70
|
# Delegated Mode (Integration Modes)
|
|
@@ -93,11 +100,17 @@ backend is the same as the integration's `delegatedBackend`:
|
|
|
93
100
|
for the task-mode body shape.
|
|
94
101
|
|
|
95
102
|
`native` has no sub-cases. The integration's `nativeBackend` must equal
|
|
96
|
-
the main DM backend — `
|
|
97
|
-
`native` rows to `disabled`. From the agent's call-site view, `native`
|
|
103
|
+
the main DM backend — `cascadeNativeBindingsOnMainSwitch` cascades
|
|
104
|
+
unmatched `native` rows to `disabled`. From the agent's call-site view, `native`
|
|
98
105
|
is indistinguishable from `delegated` same-backend (both are in-session
|
|
99
106
|
MCP); the difference is who polls (no one, for `native`).
|
|
100
107
|
|
|
108
|
+
> The four modes are `direct | delegated | native | disabled`
|
|
109
|
+
> (`INTEGRATION_MODES` in `packages/shared/src/integrations.ts`).
|
|
110
|
+
> `git` and `github` support only `direct | delegated | disabled` — no
|
|
111
|
+
> native mode (they use read-only CLI connectors), and `browser_history`
|
|
112
|
+
> is `direct | disabled` only.
|
|
113
|
+
|
|
101
114
|
## Why This Concept Exists
|
|
102
115
|
|
|
103
116
|
The setup tax for direct mode (OAuth client setup in a vendor console, then
|
|
@@ -139,8 +152,8 @@ that case the daemon spawns the other backend per call.
|
|
|
139
152
|
- **`nativeBackend`** — when native, which backend's connector is
|
|
140
153
|
expected. Must equal the main DM backend; changing the main backend
|
|
141
154
|
cascades unmatched `native` rows to `disabled` (the cascade is
|
|
142
|
-
|
|
143
|
-
`PUT /api/backends/main`).
|
|
155
|
+
performed by `cascadeNativeBindingsOnMainSwitch` from the
|
|
156
|
+
`PUT /api/backends/main` handler).
|
|
144
157
|
- **Same-backend** — DM session backend matches `delegatedBackend` /
|
|
145
158
|
`nativeBackend`. The daemon is not in the loop; the agent calls
|
|
146
159
|
native MCP directly. No skill body is materialized for the
|
|
@@ -154,7 +167,10 @@ that case the daemon spawns the other backend per call.
|
|
|
154
167
|
subprocess for each call. A `SKILL.delegated.<sessionBackend>.md`
|
|
155
168
|
file is materialized into the session workdir.
|
|
156
169
|
- **`integrations.md`** — daemon-rendered snapshot of every
|
|
157
|
-
integration's mode
|
|
170
|
+
integration's mode. After the context-vault restructure it lives
|
|
171
|
+
inside the vault under the `policies` class at
|
|
172
|
+
`<contextDir>/policies/integrations.md` (the legacy
|
|
173
|
+
`~/.personal-agent/integrations.md` location was retired). The agent
|
|
158
174
|
reads it to know which path to take.
|
|
159
175
|
|
|
160
176
|
## How to Choose
|
|
@@ -184,12 +200,35 @@ connector) cascade to `disabled` and the operator gets a DM.
|
|
|
184
200
|
|
|
185
201
|
## Concrete Examples
|
|
186
202
|
|
|
187
|
-
|
|
203
|
+
What happens on a Gmail search, by setup:
|
|
204
|
+
|
|
205
|
+
| Setup | Path |
|
|
188
206
|
|---|---|
|
|
189
|
-
| Gmail direct |
|
|
190
|
-
| Gmail delegated to Codex
|
|
191
|
-
| Gmail delegated to Codex
|
|
192
|
-
| Gmail native on Codex DM |
|
|
207
|
+
| Gmail **direct** | `curl /api/mail/<acct>/messages?q=...` → daemon hits Gmail API with stored OAuth |
|
|
208
|
+
| Gmail **delegated** to Codex, Codex DM (same-backend) | Agent calls `mcp__codex_apps__gmail._search_emails(...)` → Codex's connector hits Gmail. No daemon involvement. No skill file. |
|
|
209
|
+
| Gmail **delegated** to Codex, Claude DM (cross-backend) | Agent POSTs to `/api/integrations/gmail/exec` in task mode (see below) → daemon spawns a Codex subprocess → returns a structured result. |
|
|
210
|
+
| Gmail **native** on Codex DM | Identical call to delegated same-backend (`mcp__codex_apps__gmail._search_emails(...)`). No daemon involvement. The daemon poller is OFF; the routine pre-pass POSTs results to `/api/observations/batch`. |
|
|
211
|
+
|
|
212
|
+
The cross-backend row above issues a task-mode `/exec` call:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
curl -X POST http://localhost:8321/api/integrations/gmail/exec \
|
|
216
|
+
-d '{
|
|
217
|
+
"task": "Search Gmail for newer_than:1d, return id/subject/from/snippet/date for each message",
|
|
218
|
+
"outputSchema": {
|
|
219
|
+
"type": "object",
|
|
220
|
+
"required": ["messages"],
|
|
221
|
+
"properties": { "messages": { "type": "array", "items": { } } }
|
|
222
|
+
},
|
|
223
|
+
"maxToolCalls": 3,
|
|
224
|
+
"cacheable": true
|
|
225
|
+
}'
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
The daemon spawns a Codex subprocess with the `proxy.md` profile, the
|
|
229
|
+
task-mode planner picks `_search_emails` from the registered
|
|
230
|
+
`capabilityTools`, runs it, and returns a structured `{messages:[…]}`
|
|
231
|
+
conforming to `outputSchema`.
|
|
193
232
|
|
|
194
233
|
## How the Skill File Resolves
|
|
195
234
|
|
|
@@ -222,14 +261,14 @@ returns one of four values, picked by tie-break order
|
|
|
222
261
|
`delegated` and `native` are gated on a **live probe** (§4.12.2)
|
|
223
262
|
that confirms three things before the mode is written to
|
|
224
263
|
`integrations.md`: the backend binary is resolvable, backend auth
|
|
225
|
-
is valid, and the connector reports every `
|
|
226
|
-
descriptor demands. Cached probe rows are invalidated on mode
|
|
264
|
+
is valid, and the connector reports every `requiredCapabilities`
|
|
265
|
+
entry the descriptor demands. Cached probe rows are invalidated on mode
|
|
227
266
|
change. `POST /api/integrations/:key/probe` is the chokepoint.
|
|
228
267
|
|
|
229
268
|
## How `integrations.md` Reflects This
|
|
230
269
|
|
|
231
|
-
|
|
232
|
-
agent consults at session-init. It is rendered as a Markdown table:
|
|
270
|
+
`<contextDir>/policies/integrations.md` is the operator-readable snapshot
|
|
271
|
+
the agent consults at session-init. It is rendered as a Markdown table:
|
|
233
272
|
|
|
234
273
|
```markdown
|
|
235
274
|
## Current state
|
|
@@ -17,8 +17,9 @@ section: memory
|
|
|
17
17
|
tags:
|
|
18
18
|
- core
|
|
19
19
|
- memory
|
|
20
|
-
- storage
|
|
21
20
|
- knowledge
|
|
21
|
+
- context
|
|
22
|
+
- safety
|
|
22
23
|
status: stable
|
|
23
24
|
ask_examples:
|
|
24
25
|
- Where are my context files stored?
|
|
@@ -28,20 +29,21 @@ ask_examples:
|
|
|
28
29
|
- How does the daemon prevent the agent from writing to disk directly?
|
|
29
30
|
locale: en-US
|
|
30
31
|
created: 2026-04-25
|
|
31
|
-
updated: 2026-
|
|
32
|
+
updated: 2026-06-07
|
|
32
33
|
keywords:
|
|
33
34
|
- context
|
|
34
35
|
- markdown
|
|
35
36
|
- SQLite
|
|
36
|
-
- today.md
|
|
37
|
-
-
|
|
38
|
-
- roadmap.md
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
- agent
|
|
37
|
+
- state/today.md
|
|
38
|
+
- identity/profile.md
|
|
39
|
+
- plans/roadmap.md
|
|
40
|
+
- policies/management.md
|
|
41
|
+
- policies/management-captures
|
|
42
|
+
- journal/agent.md
|
|
42
43
|
- context API
|
|
43
44
|
- AgentWriteTracker
|
|
44
45
|
- durable memory
|
|
46
|
+
- context-vault v2
|
|
45
47
|
related:
|
|
46
48
|
- features/memory-files/today
|
|
47
49
|
- features/memory-files/user-profile
|
|
@@ -53,15 +55,23 @@ ui_anchors:
|
|
|
53
55
|
- /knowledge
|
|
54
56
|
- /connections/knowledge
|
|
55
57
|
context_files:
|
|
56
|
-
- today.md
|
|
57
|
-
-
|
|
58
|
-
- roadmap.md
|
|
59
|
-
- agent
|
|
60
|
-
- daily/<date>.md
|
|
61
|
-
- projects/<slug>.md
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
58
|
+
- state/today.md
|
|
59
|
+
- identity/profile.md
|
|
60
|
+
- plans/roadmap.md
|
|
61
|
+
- journal/agent.md
|
|
62
|
+
- journal/daily/<date>.md
|
|
63
|
+
- plans/projects/<slug>.md
|
|
64
|
+
- policies/management.md
|
|
65
|
+
- policies/management-captures/<slug>.md
|
|
66
|
+
- policies/management-captures/_index.md
|
|
67
|
+
config_keys:
|
|
68
|
+
- dayBoundaryHour
|
|
69
|
+
- dataDir
|
|
70
|
+
api_endpoints:
|
|
71
|
+
- GET /api/context/*
|
|
72
|
+
- PUT /api/context/*
|
|
73
|
+
- PATCH /api/context/*
|
|
74
|
+
- DELETE /api/context/*
|
|
65
75
|
---
|
|
66
76
|
|
|
67
77
|
# Memory Model
|
|
@@ -72,7 +82,11 @@ Aitne treats Markdown files in `~/.personal-agent/context/`
|
|
|
72
82
|
as its long-term memory and SQLite
|
|
73
83
|
(`~/.personal-agent/data/personal_agent.db`) as session-scoped state.
|
|
74
84
|
Anything you want the agent to remember between runs lives in an MD
|
|
75
|
-
file you can read, diff, and edit by hand.
|
|
85
|
+
file you can read, diff, and edit by hand. The vault is partitioned
|
|
86
|
+
into six authority classes — `identity/`, `state/`, `plans/`, `journal/`,
|
|
87
|
+
`knowledge/`, and `policies/` — each carrying its own authority and
|
|
88
|
+
lifecycle contract. See [Knowledge Layout](../reference/knowledge-layout.md)
|
|
89
|
+
for the canonical map.
|
|
76
90
|
|
|
77
91
|
## Why This Concept Exists
|
|
78
92
|
|
|
@@ -98,27 +112,55 @@ indexes, and configuration.
|
|
|
98
112
|
legal write path. The agent does not have direct `Edit` / `Write`
|
|
99
113
|
permissions on the filesystem; it must go through the daemon.
|
|
100
114
|
|
|
115
|
+
## How the Agent Writes
|
|
116
|
+
|
|
117
|
+
The agent has no `Edit` or `Write` tool. To change a context file it
|
|
118
|
+
calls the daemon over HTTP, and every write funnels through one
|
|
119
|
+
endpoint family so the daemon can validate, hold locks, and snapshot a
|
|
120
|
+
backup before touching disk. Paths are class-prefixed
|
|
121
|
+
(`/api/context/<class>/<path>`):
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Append a section to today.md
|
|
125
|
+
curl -X PATCH http://localhost:8321/api/context/state/today.md \
|
|
126
|
+
-H 'Content-Type: application/json' \
|
|
127
|
+
-d '{"mode":"append","section":"Notes","content":"Booked the dentist."}'
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
- `PUT /api/context/*` replaces a whole file; `PATCH` does a section op
|
|
131
|
+
(`append`, `replace`, `clear`, `clear_before`, `append_to_file`);
|
|
132
|
+
`DELETE` removes a file (permitted only for custom routines).
|
|
133
|
+
- Legacy bare paths (`/api/context/today.md`) still resolve — the daemon
|
|
134
|
+
rewrites them to the canonical class-prefixed form in process, so a
|
|
135
|
+
plain `curl -X PATCH` without `-L` keeps working — but new writes
|
|
136
|
+
emit the class-prefixed path.
|
|
137
|
+
- `state/today.md` and `plans/roadmap.md` are serialized behind
|
|
138
|
+
dedicated write locks, so two flows can't clobber each other.
|
|
139
|
+
|
|
101
140
|
## Concrete Examples
|
|
102
141
|
|
|
103
|
-
- `today.md` — rewritten by the morning routine.
|
|
104
|
-
- `
|
|
142
|
+
- `state/today.md` — rewritten by the morning routine.
|
|
143
|
+
- `identity/profile.md` — your profile, hand-edited or appended by the
|
|
105
144
|
agent on request. Topic-shaped slices live alongside it
|
|
106
|
-
(`
|
|
107
|
-
`
|
|
145
|
+
(`identity/people.md`, `identity/work.md`, `identity/expertise.md`,
|
|
146
|
+
`identity/personal.md`, `identity/goals.md`). See
|
|
108
147
|
[User Profile](../features/memory-files/user-profile.md).
|
|
109
|
-
- `roadmap.md` — long-running goals + Preparation Timeline rows that
|
|
148
|
+
- `plans/roadmap.md` — long-running goals + Preparation Timeline rows that
|
|
110
149
|
fire daily during the morning routine.
|
|
111
|
-
- `agent
|
|
150
|
+
- `journal/agent.md` — the agent's own running log of decisions,
|
|
112
151
|
retros, and judgement calls.
|
|
113
|
-
- `daily/2026-04-25.md` — per-date archive of that day's plan,
|
|
152
|
+
- `journal/daily/2026-04-25.md` — per-date archive of that day's plan,
|
|
114
153
|
synthesized by the morning routine.
|
|
115
|
-
- `projects/<slug>.md` — one file per active project.
|
|
116
|
-
- `
|
|
117
|
-
bindings, Managed Tasks, an Active Policies summary.
|
|
118
|
-
|
|
119
|
-
|
|
154
|
+
- `plans/projects/<slug>.md` — one file per active project.
|
|
155
|
+
- `policies/management.md` — the umbrella registry: Source-of-Truth
|
|
156
|
+
bindings, Managed Tasks, an Active Policies summary. Injected as
|
|
157
|
+
`<management_rules>` on the wide-path flows (DMs, mentions, the
|
|
158
|
+
morning routine); a few narrow routines (the journal stage, hourly
|
|
159
|
+
check, today refresh, observer events, scheduled tasks) opt out to
|
|
160
|
+
save budget.
|
|
161
|
+
- `policies/management-captures/<slug>.md` — one file per durable management rule
|
|
120
162
|
("from now on, do X"). The daemon auto-maintains a slug index at
|
|
121
|
-
`
|
|
163
|
+
`policies/management-captures/_index.md`.
|
|
122
164
|
|
|
123
165
|
## Where You See It in the Dashboard
|
|
124
166
|
|
|
@@ -129,8 +171,9 @@ indexes, and configuration.
|
|
|
129
171
|
|
|
130
172
|
## Related
|
|
131
173
|
|
|
132
|
-
- [
|
|
133
|
-
- [
|
|
134
|
-
- [
|
|
174
|
+
- [Knowledge Layout](../reference/knowledge-layout.md) — canonical map of every vault file
|
|
175
|
+
- [state/today.md](../features/memory-files/today.md)
|
|
176
|
+
- [identity/profile.md](../features/memory-files/user-profile.md)
|
|
177
|
+
- [plans/roadmap.md](../features/memory-files/roadmap.md)
|
|
135
178
|
- [Skills](skills.md) — the per-skill SKILL.md files that tell the
|
|
136
179
|
agent how to read and write each context file.
|
|
@@ -29,7 +29,7 @@ ask_examples:
|
|
|
29
29
|
- Where does the routine pre-pass write observations?
|
|
30
30
|
locale: en-US
|
|
31
31
|
created: 2026-04-25
|
|
32
|
-
updated: 2026-05-
|
|
32
|
+
updated: 2026-05-28
|
|
33
33
|
keywords:
|
|
34
34
|
- observation
|
|
35
35
|
- observations
|
|
@@ -40,11 +40,31 @@ keywords:
|
|
|
40
40
|
- pre-pass
|
|
41
41
|
- AgentWriteTracker
|
|
42
42
|
- contentHash
|
|
43
|
+
- recordObservation
|
|
44
|
+
- observation queue
|
|
45
|
+
- dedupe
|
|
43
46
|
related:
|
|
44
47
|
- features/routines/hourly-check
|
|
45
48
|
- features/routines/morning-routine
|
|
46
49
|
- concepts/process-keys
|
|
47
50
|
- concepts/routines
|
|
51
|
+
- features/integrations/git
|
|
52
|
+
- features/integrations/obsidian
|
|
53
|
+
ui_anchors:
|
|
54
|
+
- /activity
|
|
55
|
+
process_keys:
|
|
56
|
+
- routine.hourly_check
|
|
57
|
+
- routine.fetch_window
|
|
58
|
+
config_keys:
|
|
59
|
+
- hourlyCheckIntervalMinutes
|
|
60
|
+
- hourlyCheckPrePassFreshnessMinutes
|
|
61
|
+
api_endpoints:
|
|
62
|
+
- POST /api/observations
|
|
63
|
+
- GET /api/observations
|
|
64
|
+
- POST /api/observations/consume
|
|
65
|
+
context_files:
|
|
66
|
+
- packages/daemon/src/core/routine-windows.ts
|
|
67
|
+
- packages/daemon/src/api/routes/observations.ts
|
|
48
68
|
---
|
|
49
69
|
|
|
50
70
|
# Observations
|
|
@@ -57,13 +77,15 @@ SQLite. A single `routine.hourly_check` consumes the queue and decides
|
|
|
57
77
|
what is worth surfacing.
|
|
58
78
|
|
|
59
79
|
Since 2026-05, observations have a **second writer**: every main
|
|
60
|
-
routine (
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
80
|
+
routine (`routine.morning_routine`, `routine.today_refresh`,
|
|
81
|
+
`routine.hourly_check`, `routine.evening_review`,
|
|
82
|
+
`routine.weekly_review`) is preceded by a lite-tier
|
|
83
|
+
`routine.fetch_window` pre-pass that fetches mail / calendar / Notion
|
|
84
|
+
windows and POSTs them to `/api/observations`.
|
|
85
|
+
(`routine.monthly_review` has no pre-pass window.) The main routine
|
|
86
|
+
then reads them via the same `pending=true` queue that the polling
|
|
87
|
+
path feeds. Observation rows look identical regardless of which writer
|
|
88
|
+
produced them — the distinction is invisible to downstream consumers.
|
|
67
89
|
|
|
68
90
|
## Why This Concept Exists
|
|
69
91
|
|
|
@@ -75,6 +97,18 @@ up to something the operator should hear about.
|
|
|
75
97
|
|
|
76
98
|
## Definitions
|
|
77
99
|
|
|
100
|
+
**Two writer paths feed one queue.** Observations enter the
|
|
101
|
+
`observations` table from two places, and downstream consumers cannot
|
|
102
|
+
tell them apart:
|
|
103
|
+
|
|
104
|
+
1. **Background pollers** (Obsidian, Git, GitHub, Notion, Calendar,
|
|
105
|
+
Mail) call `recordObservation` when they detect a change.
|
|
106
|
+
2. **The pre-pass** — the lite-tier `routine.fetch_window` session
|
|
107
|
+
spawned ahead of each main routine — POSTs mail / calendar / Notion
|
|
108
|
+
windows to `/api/observations`.
|
|
109
|
+
|
|
110
|
+
Both write rows of the same shape; the consumer reads the merged queue.
|
|
111
|
+
|
|
78
112
|
- **Observation**: one row in the `observations` table.
|
|
79
113
|
- **Actor**: who caused the change. `actor='agent'` rows are filtered
|
|
80
114
|
out by the consumer (anti-loop).
|
|
@@ -88,9 +122,10 @@ up to something the operator should hear about.
|
|
|
88
122
|
session spawned by each main routine's dispatcher. Fetches a
|
|
89
123
|
per-routine window (`ROUTINE_WINDOWS` in
|
|
90
124
|
`packages/daemon/src/core/routine-windows.ts`) for each enabled
|
|
91
|
-
mail / calendar / Notion integration and POSTs
|
|
92
|
-
server computes `contentHash` from
|
|
93
|
-
unchanged item written twice in the same
|
|
125
|
+
mail / calendar / Notion integration and POSTs the results to
|
|
126
|
+
`/api/observations`. The server computes `contentHash` from
|
|
127
|
+
`(source, payload)`, so an unchanged item written twice in the same
|
|
128
|
+
cadence dedupes to a 409.
|
|
94
129
|
|
|
95
130
|
## Concrete Examples
|
|
96
131
|
|
|
@@ -106,5 +141,8 @@ up to something the operator should hear about.
|
|
|
106
141
|
## Related
|
|
107
142
|
|
|
108
143
|
- [Hourly Check](../features/routines/hourly-check.md)
|
|
144
|
+
- [Morning Routine](../features/routines/morning-routine.md)
|
|
145
|
+
- [Process Keys](./process-keys.md)
|
|
146
|
+
- [Routines](./routines.md)
|
|
109
147
|
- [Git](../features/integrations/git.md)
|
|
110
148
|
- [Obsidian](../features/integrations/obsidian.md)
|
|
@@ -26,14 +26,17 @@ ask_examples:
|
|
|
26
26
|
- What is the difference between configurable and fixed ProcessKeys?
|
|
27
27
|
locale: en-US
|
|
28
28
|
created: 2026-04-25
|
|
29
|
-
updated: 2026-05-
|
|
29
|
+
updated: 2026-05-28
|
|
30
30
|
keywords:
|
|
31
31
|
- process key
|
|
32
32
|
- ProcessKey
|
|
33
33
|
- dispatch
|
|
34
34
|
- routing
|
|
35
|
+
- tier
|
|
35
36
|
- CONFIGURABLE_PROCESS_KEYS
|
|
36
37
|
- DEFAULT_PROCESS_TIERS
|
|
38
|
+
- REACTIVE_PROCESS_KEYS
|
|
39
|
+
- TIER_LOCKED_PROCESS_KEYS
|
|
37
40
|
- PROCESS_TO_EVENT_TYPE
|
|
38
41
|
- routine.morning_routine
|
|
39
42
|
- message.dm
|
|
@@ -42,6 +45,25 @@ related:
|
|
|
42
45
|
- concepts/backends-and-tiers
|
|
43
46
|
- concepts/skills
|
|
44
47
|
- reference/process-keys
|
|
48
|
+
- features/operations/backend-routing
|
|
49
|
+
process_keys:
|
|
50
|
+
- routine.morning_routine
|
|
51
|
+
- routine.morning_routine_today
|
|
52
|
+
- routine.morning_routine_journal
|
|
53
|
+
- routine.evening_review
|
|
54
|
+
- routine.hourly_check
|
|
55
|
+
- routine.fetch_window
|
|
56
|
+
- routine.hourly_check.triage
|
|
57
|
+
- message.dm
|
|
58
|
+
- message.mention
|
|
59
|
+
- dashboard.chat
|
|
60
|
+
- dashboard.docs_qa
|
|
61
|
+
- agent.task
|
|
62
|
+
- agent.dm_task
|
|
63
|
+
- delegated_task
|
|
64
|
+
- delegated_task_heavy
|
|
65
|
+
ui_anchors:
|
|
66
|
+
- /settings/models
|
|
45
67
|
---
|
|
46
68
|
|
|
47
69
|
# ProcessKeys
|
|
@@ -64,37 +86,49 @@ those subsystems.
|
|
|
64
86
|
## Definitions
|
|
65
87
|
|
|
66
88
|
- **CONFIGURABLE_PROCESS_KEYS**: the set the operator can override per
|
|
67
|
-
backend on `/settings/models`.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
- **
|
|
71
|
-
`
|
|
89
|
+
backend on `/settings/models`. The rest (`delegated_task`, `setup`,
|
|
90
|
+
`schedule.approaching`, …) use fixed defaults and are not surfaced
|
|
91
|
+
there.
|
|
92
|
+
- **REACTIVE_PROCESS_KEYS**: those tied to in-the-loop events
|
|
93
|
+
(`message.dm`, `message.mention`, `dashboard.chat`,
|
|
94
|
+
`dashboard.docs_qa`, `setup`, `knowledge.import`). Everything else is
|
|
95
|
+
autonomous.
|
|
96
|
+
- **DEFAULT_PROCESS_TIERS**: the per-key default model size — `lite`
|
|
97
|
+
(Haiku-class), `medium` (Sonnet-class), or `high` (Opus-class).
|
|
98
|
+
Unknown keys (including `routine.custom.<slug>`) default to `medium`.
|
|
99
|
+
- **TIER_LOCKED_PROCESS_KEYS**: keys whose tier is hard-locked and
|
|
100
|
+
cannot be overridden by an operator pin. Today this is just
|
|
101
|
+
`dashboard.docs_qa`, locked to `medium`.
|
|
72
102
|
- **PROCESS_TO_EVENT_TYPE**: maps a ProcessKey to the skill manifest
|
|
73
|
-
key.
|
|
103
|
+
key, so the skills compiler can pick the right tool set.
|
|
74
104
|
|
|
75
105
|
## Concrete Examples
|
|
76
106
|
|
|
77
|
-
- Routines
|
|
78
|
-
pre-routine gate
|
|
79
|
-
`routine.morning_routine_today`
|
|
107
|
+
- **Routines:** `routine.morning_routine` is the parent envelope read by
|
|
108
|
+
the pre-routine gate; the actual work runs as two parallel split keys
|
|
109
|
+
— `routine.morning_routine_today` (Stage A, today.md, medium) and
|
|
110
|
+
`routine.morning_routine_journal` (Stage B, daily journal, lite). Also
|
|
80
111
|
`routine.evening_review`, `routine.weekly_review`,
|
|
81
|
-
`routine.hourly_check`,
|
|
82
|
-
`routine.
|
|
83
|
-
`routine.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
- Routine sub-jobs (lite tier, dispatcher-spawned, not user-facing):
|
|
112
|
+
`routine.hourly_check`, `routine.roadmap_refresh`,
|
|
113
|
+
`routine.today_refresh`, `routine.user_profile_sweep`.
|
|
114
|
+
`routine.morning_routine_initial` was retired (2026-05-16) — the
|
|
115
|
+
first-run branch now routes through `routine.morning_routine`.
|
|
116
|
+
- **Routine sub-jobs** (lite tier, dispatcher-spawned, not user-facing):
|
|
87
117
|
`routine.fetch_window` (pre-pass mail/calendar/Notion fetcher that
|
|
88
118
|
runs before each main routine and POSTs observations) and
|
|
89
119
|
`routine.hourly_check.triage` (Stage 2 escalate-vs-log-only gate
|
|
90
120
|
inside the hourly check).
|
|
91
|
-
- Custom routines
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
121
|
+
- **Custom routines:** `routine.custom.<slug>` (kebab-case slug;
|
|
122
|
+
defaults to medium tier).
|
|
123
|
+
- **Messaging:** `message.dm`, `message.mention`
|
|
124
|
+
- **Dashboard:** `dashboard.chat`, `dashboard.docs_qa`
|
|
125
|
+
- **Scheduled / external:** `agent.task` (recurring schedules),
|
|
95
126
|
`agent.dm_task` (DM-tone scheduled briefings),
|
|
96
|
-
`schedule.approaching`, `calendar.change`, `gmail_classify`,
|
|
97
|
-
|
|
127
|
+
`schedule.approaching`, `calendar.change`, `gmail_classify`, `setup`
|
|
128
|
+
- **Delegated work:** `delegated_task` (lite) and `delegated_task_heavy`
|
|
129
|
+
— the only high-tier key, opt-in via the `delegatedTaskHeavyEnabled`
|
|
130
|
+
config flag. No install-time surface defaults to `high`; operators
|
|
131
|
+
pin high per-row on `/settings/models`.
|
|
98
132
|
|
|
99
133
|
## Where You See It in the Dashboard
|
|
100
134
|
|
|
@@ -30,7 +30,7 @@ ask_examples:
|
|
|
30
30
|
- Which routine uses the high tier by default?
|
|
31
31
|
locale: en-US
|
|
32
32
|
created: 2026-04-25
|
|
33
|
-
updated: 2026-05-
|
|
33
|
+
updated: 2026-05-28
|
|
34
34
|
keywords:
|
|
35
35
|
- routine
|
|
36
36
|
- routines
|
|
@@ -52,6 +52,25 @@ related:
|
|
|
52
52
|
ui_anchors:
|
|
53
53
|
- /connections/routines
|
|
54
54
|
- /settings/routines
|
|
55
|
+
process_keys:
|
|
56
|
+
- routine.morning_routine
|
|
57
|
+
- routine.morning_routine_today
|
|
58
|
+
- routine.morning_routine_journal
|
|
59
|
+
- routine.evening_review
|
|
60
|
+
- routine.weekly_review
|
|
61
|
+
- routine.monthly_review
|
|
62
|
+
- routine.hourly_check
|
|
63
|
+
- routine.today_refresh
|
|
64
|
+
- routine.fetch_window
|
|
65
|
+
- routine.hourly_check.triage
|
|
66
|
+
config_keys:
|
|
67
|
+
- dayBoundaryHour
|
|
68
|
+
- hourlyCheckEnabled
|
|
69
|
+
- hourlyCheckIntervalMinutes
|
|
70
|
+
- hourlyCheckActiveStartHour
|
|
71
|
+
- hourlyCheckActiveEndHour
|
|
72
|
+
- hourlyCheckPrePassFreshnessMinutes
|
|
73
|
+
- monthlyReviewEnabled
|
|
55
74
|
---
|
|
56
75
|
|
|
57
76
|
# Routines
|
|
@@ -60,8 +79,9 @@ ui_anchors:
|
|
|
60
79
|
|
|
61
80
|
A routine is a unit of agent work that runs on a schedule, not in
|
|
62
81
|
response to a message. The morning routine fires once per agent day at
|
|
63
|
-
`dayBoundaryHour`; evening
|
|
64
|
-
|
|
82
|
+
`dayBoundaryHour`; the evening review (18:00 daily), weekly review
|
|
83
|
+
(Friday 19:00), and optional monthly review fire on fixed schedules in
|
|
84
|
+
code; the hourly check coalesces accumulated observations on a
|
|
65
85
|
configurable cadence.
|
|
66
86
|
|
|
67
87
|
## Why This Concept Exists
|
|
@@ -82,51 +102,58 @@ DM is who fired the event.
|
|
|
82
102
|
a ProcessKey starting with `routine.`.
|
|
83
103
|
- **Agent day**: the 24-hour window starting at `dayBoundaryHour`
|
|
84
104
|
(default 04:00) — see [Agent Day](agent-day.md).
|
|
85
|
-
- **Catch-up**: if the daemon was offline at the trigger time,
|
|
86
|
-
|
|
87
|
-
the
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
105
|
+
- **Catch-up**: if the daemon was offline at the trigger time, a
|
|
106
|
+
boot-time check re-fires any routine whose window has already
|
|
107
|
+
opened but never ran (morning routine within the agent day; evening
|
|
108
|
+
review once it is past 18:00; weekly review across Fri–Sun). It never
|
|
109
|
+
double-fires a routine that already succeeded.
|
|
110
|
+
- **Tier policy**: **no routine runs the high tier by default.** Every
|
|
111
|
+
recurring routine — morning, evening, weekly, hourly check —
|
|
112
|
+
defaults to **medium** (Sonnet on Claude). The **lite** (Haiku) tier
|
|
113
|
+
is reserved for the morning routine's Stage B and for mechanical
|
|
114
|
+
sub-jobs (the hourly-check triage gate and the pre-pass fetcher). The
|
|
115
|
+
only high-tier ProcessKey in the whole system is `delegated_task_heavy`,
|
|
116
|
+
which is opt-in and not a routine. See
|
|
117
|
+
[Backends and Tiers](backends-and-tiers.md).
|
|
118
|
+
- **Two-stage morning routine**: the morning routine runs as a parent
|
|
119
|
+
envelope `routine.morning_routine` (medium) that fans out two stages
|
|
120
|
+
in parallel — Stage A `routine.morning_routine_today` (medium, builds
|
|
121
|
+
`state/today.md`) and Stage B `routine.morning_routine_journal` (lite,
|
|
122
|
+
authors the previous day's journal). The legacy heavy-tier
|
|
123
|
+
`routine.morning_routine_initial` first-run branch was retired in
|
|
124
|
+
Phase 7 (2026-05-16); a first run is now detected inline from a
|
|
125
|
+
missing `state/yesterday.md` and handled by the same medium-tier
|
|
126
|
+
parent with a daemon-prepared `<roadmap_skeleton>` block.
|
|
102
127
|
- **Pre-pass fetcher**: each main routine that needs fresh mail /
|
|
103
128
|
calendar / Notion data is preceded by a lite-tier
|
|
104
129
|
`routine.fetch_window` session that fetches the relevant window and
|
|
105
|
-
POSTs observations. The main routine consumes the resulting
|
|
106
|
-
`<fetch_report>` block plus pending observations instead of
|
|
107
|
-
|
|
108
|
-
introduced in 2026-05.
|
|
130
|
+
POSTs observations. The main routine then consumes the resulting
|
|
131
|
+
`<fetch_report>` block plus pending observations instead of hitting
|
|
132
|
+
upstream APIs itself — a cost-savings split introduced in 2026-05.
|
|
109
133
|
|
|
110
134
|
## Concrete Examples
|
|
111
135
|
|
|
112
136
|
| ProcessKey | When | Tier |
|
|
113
137
|
|---|---|---|
|
|
114
|
-
| `routine.morning_routine` | `dayBoundaryHour` daily (parent envelope; first-run branch detected inline from missing `yesterday.md`) | medium |
|
|
138
|
+
| `routine.morning_routine` | `dayBoundaryHour` daily (parent envelope; first-run branch detected inline from missing `state/yesterday.md`) | medium |
|
|
115
139
|
| `routine.morning_routine_today` | Stage A of every morning routine (today.md synthesis + roadmap maintenance + schedule fan-out) | medium |
|
|
116
|
-
| `routine.morning_routine_journal` | Stage B of every morning routine (daily/<yesterday>.md authoring) | lite |
|
|
117
|
-
| `routine.today_refresh` | Every 4h inside the active window | medium |
|
|
140
|
+
| `routine.morning_routine_journal` | Stage B of every morning routine (`journal/daily/<yesterday>.md` authoring) | lite |
|
|
118
141
|
| `routine.evening_review` | 18:00 daily (fixed) | medium |
|
|
142
|
+
| `routine.weekly_review` | Friday 19:00 (fixed, one hour after evening review) | medium |
|
|
143
|
+
| `routine.monthly_review` | Last day of month at 18:00, **default off** (`monthlyReviewEnabled`) | medium |
|
|
119
144
|
| `routine.hourly_check` | Every `hourlyCheckIntervalMinutes` (default 60) inside the active window | medium |
|
|
120
|
-
| `routine.
|
|
121
|
-
| `routine.fetch_window` | Spawned before each routine above | lite |
|
|
145
|
+
| `routine.today_refresh` | On calendar drift or a dashboard "refresh today" request (not a fixed cron) | medium |
|
|
146
|
+
| `routine.fetch_window` | Spawned before each routine above that needs fresh upstream data | lite |
|
|
122
147
|
| `routine.hourly_check.triage` | Stage 2 gate of every hourly check | lite |
|
|
123
|
-
| `routine.custom.<slug>` | Operator-defined recurrence |
|
|
148
|
+
| `routine.custom.<slug>` | Operator-defined recurrence | medium (override per routine via `backend_tier`) |
|
|
124
149
|
|
|
125
150
|
## Where You See It in the Dashboard
|
|
126
151
|
|
|
127
|
-
- **Settings → Routines** is where the hourly check active window
|
|
128
|
-
|
|
129
|
-
|
|
152
|
+
- **Settings → Routines** is where the hourly check active window
|
|
153
|
+
(`hourlyCheckActiveStartHour` / `hourlyCheckActiveEndHour`), the
|
|
154
|
+
hourly check cadence (`hourlyCheckIntervalMinutes`), and any custom
|
|
155
|
+
routines live. Morning, evening, weekly, and monthly fire times are
|
|
156
|
+
fixed in code and not surfaced here.
|
|
130
157
|
- **Connections → Routines** is the unified view of next-fire times.
|
|
131
158
|
- **Activity** logs each routine run with its outcome.
|
|
132
159
|
|