@aitne-sh/aitne 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +256 -833
- package/agent-assets/agent-profiles/_safety.md +52 -20
- 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 +3 -3
- package/agent-assets/agent-profiles/routine-fetch-window.md +30 -19
- package/agent-assets/agent-profiles/routine.md +4 -3
- 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 +18 -11
- package/agent-assets/docs/concepts/auth-health.md +56 -10
- package/agent-assets/docs/concepts/backends-and-tiers.md +110 -41
- package/agent-assets/docs/concepts/costs-and-quotas.md +74 -19
- package/agent-assets/docs/concepts/delegated-mode.md +193 -75
- package/agent-assets/docs/concepts/memory-model.md +79 -34
- package/agent-assets/docs/concepts/observations.md +61 -11
- package/agent-assets/docs/concepts/process-keys.md +66 -17
- package/agent-assets/docs/concepts/routines.md +77 -32
- package/agent-assets/docs/concepts/safety-and-execution.md +50 -21
- package/agent-assets/docs/concepts/safety-model.md +62 -37
- package/agent-assets/docs/concepts/skills.md +38 -17
- package/agent-assets/docs/features/integrations/browser-history.md +195 -0
- package/agent-assets/docs/features/integrations/calendar.md +40 -30
- package/agent-assets/docs/features/integrations/git.md +20 -9
- package/agent-assets/docs/features/integrations/github.md +93 -35
- package/agent-assets/docs/features/integrations/mail.md +60 -17
- package/agent-assets/docs/features/integrations/notion.md +51 -11
- package/agent-assets/docs/features/integrations/obsidian.md +35 -7
- package/agent-assets/docs/features/lifestyle/git.md +45 -44
- package/agent-assets/docs/features/lifestyle/reading.md +50 -22
- package/agent-assets/docs/features/lifestyle/receipts.md +66 -21
- package/agent-assets/docs/features/lifestyle/travel-bookings.md +91 -14
- package/agent-assets/docs/features/memory-files/agent-journal.md +111 -50
- package/agent-assets/docs/features/memory-files/projects.md +75 -15
- package/agent-assets/docs/features/memory-files/roadmap.md +55 -10
- package/agent-assets/docs/features/memory-files/schedule.md +113 -70
- package/agent-assets/docs/features/memory-files/today.md +47 -21
- package/agent-assets/docs/features/memory-files/user-profile.md +67 -31
- package/agent-assets/docs/features/messaging/bang-commands.md +115 -28
- package/agent-assets/docs/features/messaging/dashboard-chat.md +43 -21
- package/agent-assets/docs/features/messaging/discord.md +46 -4
- package/agent-assets/docs/features/messaging/overview.md +40 -19
- package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +94 -27
- package/agent-assets/docs/features/messaging/slack.md +79 -14
- package/agent-assets/docs/features/messaging/telegram.md +25 -6
- package/agent-assets/docs/features/messaging/whatsapp.md +79 -14
- package/agent-assets/docs/features/operations/activity-and-conversations.md +45 -16
- package/agent-assets/docs/features/operations/approvals.md +53 -15
- package/agent-assets/docs/features/operations/backend-routing.md +75 -16
- package/agent-assets/docs/features/operations/cost-tracking.md +90 -17
- package/agent-assets/docs/features/operations/managed-chromium.md +221 -0
- package/agent-assets/docs/features/operations/notifications.md +58 -11
- package/agent-assets/docs/features/operations/quiet-hours.md +63 -40
- package/agent-assets/docs/features/operations/schedule-approaching.md +59 -16
- package/agent-assets/docs/features/routines/custom-routines.md +97 -23
- package/agent-assets/docs/features/routines/evening-review.md +75 -22
- package/agent-assets/docs/features/routines/hourly-check.md +150 -30
- package/agent-assets/docs/features/routines/morning-routine.md +60 -33
- package/agent-assets/docs/features/routines/weekly-review.md +65 -20
- package/agent-assets/docs/features/wiki/commands.md +37 -16
- package/agent-assets/docs/features/wiki/cost-and-approval.md +240 -0
- package/agent-assets/docs/features/wiki/dashboard.md +255 -0
- package/agent-assets/docs/features/wiki/overview.md +80 -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 +64 -32
- package/agent-assets/docs/getting-started/02-first-steps.md +28 -10
- package/agent-assets/docs/getting-started/03-what-can-this-do.md +42 -21
- package/agent-assets/docs/getting-started/04-first-day.md +52 -20
- package/agent-assets/docs/glossary.md +285 -21
- package/agent-assets/docs/guides/add-a-custom-routine.md +74 -22
- package/agent-assets/docs/guides/backup-and-restore.md +92 -14
- package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +62 -25
- package/agent-assets/docs/guides/build-your-wiki.md +33 -6
- package/agent-assets/docs/guides/change-which-model-handles-x.md +70 -9
- package/agent-assets/docs/guides/connect-a-new-mail-account.md +80 -15
- package/agent-assets/docs/guides/explore-with-trace-and-connect.md +32 -9
- package/agent-assets/docs/guides/import-knowledge-file.md +60 -39
- package/agent-assets/docs/guides/install-and-run.md +64 -19
- package/agent-assets/docs/guides/maintain-wiki-health.md +41 -10
- package/agent-assets/docs/guides/migrate-machines.md +86 -18
- package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +119 -59
- package/agent-assets/docs/guides/pause-the-agent.md +71 -22
- package/agent-assets/docs/guides/reinstall-cleanly.md +102 -17
- package/agent-assets/docs/guides/setup-wizard.md +126 -56
- package/agent-assets/docs/guides/switch-default-backend.md +72 -17
- package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +31 -10
- package/agent-assets/docs/reference/api.md +162 -23
- package/agent-assets/docs/reference/cli-commands.md +55 -15
- package/agent-assets/docs/reference/config.md +246 -39
- package/agent-assets/docs/reference/disallowed-tools.md +42 -10
- package/agent-assets/docs/reference/keyboard-shortcuts.md +47 -10
- package/agent-assets/docs/reference/knowledge-layout.md +620 -0
- package/agent-assets/docs/reference/process-keys.md +126 -20
- package/agent-assets/docs/reference/skills.md +62 -18
- package/agent-assets/docs/troubleshooting/auth-failed.md +53 -19
- package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +96 -22
- package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +94 -20
- package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +77 -22
- package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +87 -22
- package/agent-assets/docs/troubleshooting/observation-not-detected.md +85 -21
- package/agent-assets/docs/troubleshooting/quota-exhausted.md +36 -6
- package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +128 -51
- package/agent-assets/docs/troubleshooting/wiki-write-failed.md +33 -11
- 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 +2 -2
- 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 +122 -0
- package/agent-assets/skills/agent-create/SKILL.md +149 -0
- package/agent-assets/skills/attach/SKILL.md +3 -4
- package/agent-assets/skills/browser-history/SKILL.md +198 -0
- package/agent-assets/skills/browser-history-respond/SKILL.md +106 -0
- package/agent-assets/skills/browser-task/SKILL.md +169 -0
- package/agent-assets/skills/context/SKILL.md +45 -463
- package/agent-assets/skills/context/curation.json +2 -2
- package/agent-assets/skills/context/references/api.md +232 -0
- package/agent-assets/skills/context/references/required-frontmatter.md +73 -0
- package/agent-assets/skills/context/references/snapshot-files.md +103 -0
- package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +4 -4
- package/agent-assets/skills/docs-search/SKILL.md +17 -16
- package/agent-assets/skills/external-services/SKILL.delegated.claude.md +14 -26
- package/agent-assets/skills/external-services/SKILL.delegated.codex.md +14 -26
- package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +14 -26
- package/agent-assets/skills/external-services/SKILL.md +9 -262
- package/agent-assets/skills/external-services/SKILL.native.claude.md +6 -7
- package/agent-assets/skills/external-services/SKILL.native.codex.md +8 -9
- package/agent-assets/skills/external-services/SKILL.native.gemini.md +5 -6
- package/agent-assets/skills/external-services/references/calendar-apple.md +97 -0
- package/agent-assets/skills/external-services/references/calendar-google.md +72 -0
- package/agent-assets/skills/external-services/references/calendar-outlook.md +36 -0
- package/agent-assets/skills/external-services/references/github.md +17 -0
- package/agent-assets/skills/external-services/references/obsidian.md +49 -0
- package/agent-assets/skills/external-services/references/skills-crud.md +27 -0
- package/agent-assets/skills/gmail-lifestyle/SKILL.md +151 -0
- package/agent-assets/skills/gmail-lifestyle/references/receipts-api.md +93 -0
- package/agent-assets/skills/gmail-lifestyle/references/travel-bookings-api.md +75 -0
- package/agent-assets/skills/mail/SKILL.delegated.claude.md +15 -6
- package/agent-assets/skills/mail/SKILL.delegated.codex.md +9 -5
- package/agent-assets/skills/mail/SKILL.delegated.gemini.md +9 -5
- package/agent-assets/skills/mail/SKILL.md +9 -114
- package/agent-assets/skills/mail/SKILL.native.claude.md +1 -1
- 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 +110 -0
- package/agent-assets/skills/mail/references/examples.md +70 -0
- package/agent-assets/skills/mail/references/providers.md +8 -8
- package/agent-assets/skills/managed-tasks/SKILL.md +472 -0
- package/agent-assets/skills/managed-tasks/references/errors.md +73 -0
- package/agent-assets/skills/managed-tasks/references/output-path.md +75 -0
- package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +86 -0
- package/agent-assets/skills/management-policy/SKILL.md +54 -125
- package/agent-assets/skills/management-policy/curation.json +1 -1
- package/agent-assets/skills/management-policy/references/policy-workflow.md +101 -0
- package/agent-assets/skills/management-policy/seeds/policy-file-shape.seed.json +1 -1
- package/agent-assets/skills/notify/SKILL.md +10 -82
- package/agent-assets/skills/notify/references/priority.md +65 -0
- 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 +6 -10
- package/agent-assets/skills/notion/SKILL.native.claude.md +11 -8
- package/agent-assets/skills/notion/SKILL.native.codex.md +10 -6
- package/agent-assets/skills/notion/SKILL.native.gemini.md +10 -6
- package/agent-assets/skills/observations/SKILL.md +25 -14
- package/agent-assets/skills/project-doc/SKILL.md +2 -6
- package/agent-assets/skills/project-doc/curation.json +3 -3
- package/agent-assets/skills/project-doc/seeds/project-shape.seed.json +7 -4
- package/agent-assets/skills/project-doc/seeds/slug-grammar.seed.json +3 -3
- package/agent-assets/skills/reading/SKILL.md +12 -2
- package/agent-assets/skills/reading/references/reading-taste.md +2 -2
- package/agent-assets/skills/roadmap/SKILL.md +43 -141
- package/agent-assets/skills/roadmap/curation.json +1 -1
- package/agent-assets/skills/roadmap/references/api.md +100 -0
- package/agent-assets/skills/roadmap/references/cross-check.md +80 -0
- package/agent-assets/skills/roadmap/references/migration.md +56 -0
- package/agent-assets/skills/roadmap/references/preparation-timeline.md +2 -2
- package/agent-assets/skills/roadmap/seeds/entry-types.seed.json +1 -1
- package/agent-assets/skills/schedule/SKILL.md +76 -104
- package/agent-assets/skills/schedule/references/batch.md +93 -0
- package/agent-assets/skills/schedule/references/errors.md +217 -0
- package/agent-assets/skills/schedule/references/model-selection.md +96 -0
- package/agent-assets/skills/schedule/references/recurrence-rule.md +86 -0
- package/agent-assets/skills/scheduled-managed-task/SKILL.md +59 -51
- package/agent-assets/skills/today/SKILL.md +32 -62
- package/agent-assets/skills/today/curation.json +3 -3
- package/agent-assets/skills/today/references/agent-plan-lifecycle.md +114 -0
- package/agent-assets/skills/today/seeds/section-shape.seed.json +1 -1
- package/agent-assets/skills/user-interview/SKILL.md +23 -67
- package/agent-assets/skills/user-interview/references/op-briefing.md +51 -0
- package/agent-assets/skills/user-interview/references/op-morning.md +59 -0
- package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +9 -1
- package/agent-assets/skills/user-profile/SKILL.md +54 -74
- package/agent-assets/skills/user-profile/curation.json +2 -2
- package/agent-assets/skills/user-profile/references/character-preferences.md +83 -0
- package/agent-assets/skills/user-profile/seeds/routing-table.seed.json +8 -8
- package/agent-assets/skills/user-profile/seeds/topic-files.seed.json +30 -2
- package/agent-assets/skills/wiki/wiki-ask/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-compile/SKILL.md +4 -5
- package/agent-assets/skills/wiki/wiki-connect/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-graduate/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-ingest/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-lint/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-trace/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-vault-rules/SKILL.md +0 -1
- package/agent-assets/system-prompts/routine-fetch-window.md +78 -0
- package/agent-assets/system-prompts/skill-index-instruction.md +26 -0
- package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +20 -11
- package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +18 -9
- package/agent-assets/task-flows/_partials/capture-user-info.md +24 -0
- package/agent-assets/task-flows/_partials/confirm-subflow.md +68 -0
- package/agent-assets/task-flows/_partials/dm-intent.long-horizon.md +35 -0
- package/agent-assets/task-flows/_partials/dm-intent.project.md +391 -0
- package/agent-assets/task-flows/_partials/mail-acquire.gmail.md +20 -11
- package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +18 -9
- package/agent-assets/task-flows/_partials/notion-acquire.notion.md +26 -15
- 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 +15 -15
- package/agent-assets/task-flows/message.received.dm.md +20 -17
- package/agent-assets/task-flows/message.received.dm_first.md +11 -15
- package/agent-assets/task-flows/routine.custom.md +6 -4
- package/agent-assets/task-flows/routine.evening_review.md +46 -170
- package/agent-assets/task-flows/routine.fetch_window.md +19 -14
- package/agent-assets/task-flows/routine.hourly_check.md +27 -15
- package/agent-assets/task-flows/routine.hourly_check.triage.md +1 -1
- package/agent-assets/task-flows/routine.monthly_review.md +67 -25
- package/agent-assets/task-flows/routine.morning_routine_journal.md +135 -0
- package/agent-assets/task-flows/routine.morning_routine_today.md +673 -0
- 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 +68 -23
- package/agent-assets/task-flows/routine.today_refresh.md +4 -4
- package/agent-assets/task-flows/routine.user_profile_sweep.md +19 -20
- package/agent-assets/task-flows/routine.weekly_review.md +370 -86
- package/agent-assets/task-flows/schedule.approaching.md +0 -1
- package/agent-assets/task-flows/scheduled.dm.md +13 -13
- package/agent-assets/task-flows/scheduled.task.md +9 -9
- package/agent-assets/task-flows/setup.initial.md +171 -251
- package/agent-assets/task-flows/setup.update.md +2 -2
- package/agent-assets/task-flows/wiki.ingest_url.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/identity/expertise.md +9 -0
- package/agent-assets/templates/identity/goals.md +9 -0
- package/agent-assets/templates/identity/people.md +13 -0
- package/agent-assets/templates/identity/personal.md +9 -0
- package/agent-assets/templates/{user → identity}/profile.md +2 -2
- package/agent-assets/templates/identity/work.md +9 -0
- package/agent-assets/templates/{dossiers → knowledge/dossiers}/_index.md +2 -2
- 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/policies/journal-format.md +168 -0
- 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 +21 -5
- package/package.json +5 -4
- package/scripts/commands/doctor.mjs +63 -5
- package/scripts/commands/run-now.mjs +187 -0
- package/scripts/commands/verify.mjs +264 -0
- package/scripts/lib/ports.d.mts +27 -0
- package/scripts/lib/ports.mjs +36 -0
- package/scripts/lib/read-api-token.mjs +176 -0
- package/scripts/start.mjs +2 -1
- package/agent-assets/docs/features/lifestyle/travel-time.md +0 -52
- package/agent-assets/docs/features/routines/monthly-review.md +0 -65
- package/agent-assets/skills/management-task-modify/SKILL.md +0 -203
- package/agent-assets/skills/management-task-register/SKILL.md +0 -330
- package/agent-assets/skills/management-task-stop/SKILL.md +0 -166
- package/agent-assets/skills/receipts/SKILL.md +0 -134
- package/agent-assets/skills/travel/SKILL.md +0 -132
- package/agent-assets/skills/travel-time/SKILL.md +0 -158
- package/agent-assets/task-flows/routine.morning_routine.md +0 -322
- package/agent-assets/task-flows/routine.morning_routine_initial.md +0 -204
- package/agent-assets/templates/context-index.md +0 -42
- package/agent-assets/templates/rules/_index.md +0 -19
- package/agent-assets/templates/rules/journal-format.md +0 -61
- package/agent-assets/templates/user/expertise.md +0 -7
- package/agent-assets/templates/user/goals.md +0 -7
- package/agent-assets/templates/user/people.md +0 -7
- package/agent-assets/templates/user/personal.md +0 -7
- package/agent-assets/templates/user/work.md +0 -7
- /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
|
@@ -6,18 +6,22 @@ id: delegated-mode
|
|
|
6
6
|
aliases:
|
|
7
7
|
- delegated
|
|
8
8
|
- direct mode
|
|
9
|
+
- native mode
|
|
9
10
|
- same-backend
|
|
10
11
|
- cross-backend
|
|
11
12
|
- integration delegation
|
|
12
13
|
category: concepts
|
|
13
14
|
summary: |
|
|
14
|
-
Each integration (Gmail, Google Calendar, …) runs in one of
|
|
15
|
-
modes: direct (the daemon holds OAuth credentials),
|
|
16
|
-
agent's backend connector holds them
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
Each integration (Gmail, Google Calendar, …) runs in one of four
|
|
16
|
+
modes: direct (the daemon holds OAuth credentials and polls),
|
|
17
|
+
delegated (the agent's backend connector holds them; the daemon syncs
|
|
18
|
+
on opt-in cadences), native (the main backend's MCP connector reaches
|
|
19
|
+
the integration on-demand; no daemon polling and no daemon-side
|
|
20
|
+
proxy), or disabled. Under `delegated`, the agent reaches the
|
|
21
|
+
integration through one of two paths depending on whether its DM
|
|
22
|
+
session backend matches the connector's owner — same-backend (native
|
|
23
|
+
MCP, no daemon involved) or cross-backend
|
|
24
|
+
(`/api/integrations/:key/exec` task-mode proxy).
|
|
21
25
|
section: integrations
|
|
22
26
|
tags:
|
|
23
27
|
- core
|
|
@@ -32,16 +36,18 @@ ask_examples:
|
|
|
32
36
|
- Why don't I see a SKILL.md for Gmail in my Codex session?
|
|
33
37
|
locale: en-US
|
|
34
38
|
created: 2026-04-26
|
|
35
|
-
updated: 2026-
|
|
39
|
+
updated: 2026-05-28
|
|
36
40
|
keywords:
|
|
37
41
|
- delegated mode
|
|
38
42
|
- direct mode
|
|
43
|
+
- native mode
|
|
39
44
|
- same-backend
|
|
40
45
|
- cross-backend
|
|
41
46
|
- integrations.md
|
|
42
47
|
- delegatedBackend
|
|
48
|
+
- nativeBackend
|
|
43
49
|
- SKILL.delegated
|
|
44
|
-
-
|
|
50
|
+
- exec endpoint
|
|
45
51
|
related:
|
|
46
52
|
- concepts/safety-model
|
|
47
53
|
- concepts/skills
|
|
@@ -49,21 +55,29 @@ related:
|
|
|
49
55
|
- features/integrations/mail
|
|
50
56
|
ui_anchors:
|
|
51
57
|
- /connections
|
|
58
|
+
- /connections/mail
|
|
59
|
+
- /connections/calendar
|
|
52
60
|
- /settings/models
|
|
53
|
-
|
|
54
|
-
- 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
|
|
55
68
|
---
|
|
56
69
|
|
|
57
70
|
# Delegated Mode (Integration Modes)
|
|
58
71
|
|
|
59
72
|
## TL;DR
|
|
60
73
|
|
|
61
|
-
Each integration is in one of
|
|
74
|
+
Each integration is in one of four modes:
|
|
62
75
|
|
|
63
76
|
| Mode | Who holds credentials | What the agent calls |
|
|
64
77
|
|---|---|---|
|
|
65
78
|
| `direct` | Daemon (OAuth in macOS Keychain) | `curl /api/mail/*` / `curl /api/calendar/*` |
|
|
66
|
-
| `delegated` | The agent's backend connector (claude.ai / ChatGPT / Google) | Native MCP tools or the `/api/integrations/:key/
|
|
79
|
+
| `delegated` | The agent's backend connector (claude.ai / ChatGPT / Google) | Native MCP tools (same-backend) or the `/api/integrations/:key/exec` task-mode proxy (cross-backend) |
|
|
80
|
+
| `native` | The main backend's connector (no daemon credentials, no daemon poller) | Native MCP tools on the main backend; observations are POSTed to `/api/observations/batch` for the routine pre-pass |
|
|
67
81
|
| `disabled` | Nobody | Nothing — the integration is off |
|
|
68
82
|
|
|
69
83
|
Under `delegated`, two sub-cases exist depending on whether the DM session's
|
|
@@ -72,9 +86,30 @@ backend is the same as the integration's `delegatedBackend`:
|
|
|
72
86
|
- **Same-backend** — DM agent calls the connector's MCP tool directly.
|
|
73
87
|
The daemon is not involved. No skill body is materialized.
|
|
74
88
|
- **Cross-backend** — DM agent calls
|
|
75
|
-
`POST /api/integrations/:key/
|
|
76
|
-
|
|
77
|
-
|
|
89
|
+
`POST /api/integrations/:key/exec` in **task mode** with body
|
|
90
|
+
`{task: "<natural-language description>", outputSchema, maxToolCalls,
|
|
91
|
+
cacheable}`. The daemon spawns a one-shot subprocess of
|
|
92
|
+
`delegatedBackend`, the task-mode planner picks the appropriate tool
|
|
93
|
+
from the integration's registered `capabilityTools`, runs it, and
|
|
94
|
+
returns a structured result conforming to `outputSchema`. The legacy
|
|
95
|
+
RPC route `POST /api/integrations/:key/invoke {tool, args}` was
|
|
96
|
+
retired 2026-05-01 — cross-backend tool-name divergence (Claude
|
|
97
|
+
`search_threads` vs Codex `search_emails` vs Gemini `search`) made
|
|
98
|
+
the RPC shape brittle. See `docs/design/17-delegated-mode-v2.md` §4.2 for the
|
|
99
|
+
retirement rationale and `docs/design/appendices/routine-data-acquisition.md` §8.1
|
|
100
|
+
for the task-mode body shape.
|
|
101
|
+
|
|
102
|
+
`native` has no sub-cases. The integration's `nativeBackend` must equal
|
|
103
|
+
the main DM backend — `BackendRouter.setMainBackend` cascades unmatched
|
|
104
|
+
`native` rows to `disabled`. From the agent's call-site view, `native`
|
|
105
|
+
is indistinguishable from `delegated` same-backend (both are in-session
|
|
106
|
+
MCP); the difference is who polls (no one, for `native`).
|
|
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.
|
|
78
113
|
|
|
79
114
|
## Why This Concept Exists
|
|
80
115
|
|
|
@@ -97,25 +132,45 @@ that case the daemon spawns the other backend per call.
|
|
|
97
132
|
- **`direct`** — daemon holds the credentials (OAuth refresh token in
|
|
98
133
|
macOS Keychain, app-password for Yahoo / iCloud, …). Pollers run.
|
|
99
134
|
Full feature set. The operator did the vendor-console setup.
|
|
100
|
-
- **`delegated`** — daemon holds nothing for this integration.
|
|
101
|
-
|
|
102
|
-
|
|
135
|
+
- **`delegated`** — daemon holds nothing for this integration. The
|
|
136
|
+
daemon's `delegated-sync-worker` polls on opt-in cadences via the
|
|
137
|
+
delegated backend's connector. Per-DM-turn calls reach the connector
|
|
138
|
+
through the agent's backend (same-backend) or via the daemon's
|
|
139
|
+
`/exec` proxy (cross-backend).
|
|
140
|
+
- **`native`** — daemon holds nothing AND runs no poller. The main
|
|
141
|
+
backend's MCP connector reaches the integration on-demand within the
|
|
142
|
+
agent's own turn (DM, hourly_check, routine pre-pass). The agent
|
|
143
|
+
POSTs results to `/api/observations/batch` so the rest of the
|
|
144
|
+
observation pipeline (summarizer, hourly check) still operates. See
|
|
145
|
+
`docs/design/appendices/native-integration-mode.md` for the full
|
|
146
|
+
spec, including the per-key `runtime_state.integration_flip_lock:<key>`
|
|
147
|
+
drain protocol.
|
|
103
148
|
- **`disabled`** — nobody holds credentials. The integration is off.
|
|
104
149
|
- **`delegatedBackend`** — when delegated, which backend's connector
|
|
105
150
|
serves the calls. `claude` / `codex` / `gemini`. Editable per
|
|
106
151
|
integration in **Connections → Gmail / Google Calendar**.
|
|
107
|
-
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
`
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
session
|
|
152
|
+
- **`nativeBackend`** — when native, which backend's connector is
|
|
153
|
+
expected. Must equal the main DM backend; changing the main backend
|
|
154
|
+
cascades unmatched `native` rows to `disabled` (the cascade is
|
|
155
|
+
triggered by `BackendRouter.setMainBackend` /
|
|
156
|
+
`PUT /api/backends/main`).
|
|
157
|
+
- **Same-backend** — DM session backend matches `delegatedBackend` /
|
|
158
|
+
`nativeBackend`. The daemon is not in the loop; the agent calls
|
|
159
|
+
native MCP directly. No skill body is materialized for the
|
|
160
|
+
integration's slug — the connector describes its own tools at
|
|
161
|
+
session-init.
|
|
162
|
+
- **Cross-backend** — DM session backend differs from
|
|
163
|
+
`delegatedBackend`. Cross-backend exists only for `delegated` — never
|
|
164
|
+
for `native`, which is locked to the main DM backend. The agent
|
|
165
|
+
reaches the integration through `POST /api/integrations/:key/exec`
|
|
166
|
+
in task mode and the daemon spawns `delegatedBackend` as a
|
|
167
|
+
subprocess for each call. A `SKILL.delegated.<sessionBackend>.md`
|
|
168
|
+
file is materialized into the session workdir.
|
|
117
169
|
- **`integrations.md`** — daemon-rendered snapshot of every
|
|
118
|
-
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
|
|
119
174
|
reads it to know which path to take.
|
|
120
175
|
|
|
121
176
|
## How to Choose
|
|
@@ -123,7 +178,8 @@ that case the daemon spawns the other backend per call.
|
|
|
123
178
|
| You want… | Pick |
|
|
124
179
|
|---|---|
|
|
125
180
|
| Full feature set (send mail, attachments, full search) and you're comfortable with one-time vendor-console setup | **direct** |
|
|
126
|
-
| Zero setup tax,
|
|
181
|
+
| Zero setup tax, with opt-in background polling on the delegated backend's connector cadence | **delegated** |
|
|
182
|
+
| Zero setup tax, on-demand only — main backend reaches the integration when the agent turns up a reason to look (no daemon polling, no proxy spawn) | **native** |
|
|
127
183
|
| The integration off entirely | **disabled** |
|
|
128
184
|
|
|
129
185
|
When you pick `delegated`, also pick `delegatedBackend`:
|
|
@@ -136,28 +192,63 @@ When you pick `delegated`, also pick `delegatedBackend`:
|
|
|
136
192
|
connector you want (e.g. Codex's full Gmail) but a different backend
|
|
137
193
|
is your preferred DM driver (e.g. Claude).
|
|
138
194
|
|
|
195
|
+
When you pick `native`, `nativeBackend` is fixed to your main DM
|
|
196
|
+
backend. Flipping the main backend re-targets every `native` row; rows
|
|
197
|
+
whose new `nativeBackend` has no descriptor connector for the
|
|
198
|
+
integration (e.g. `gmail` native on a backend that doesn't ship a Gmail
|
|
199
|
+
connector) cascade to `disabled` and the operator gets a DM.
|
|
200
|
+
|
|
139
201
|
## Concrete Examples
|
|
140
202
|
|
|
141
|
-
|
|
142
|
-
|---|---|
|
|
143
|
-
| Gmail direct | Agent: `curl /api/mail/<acct>/messages?q=...` → daemon hits Gmail API with stored OAuth |
|
|
144
|
-
| Gmail delegated to Codex × Codex DM (same-backend) | Agent: `mcp__codex_apps__gmail._search_emails(...)` → Codex's connector hits Gmail. No daemon involvement. No skill file. |
|
|
145
|
-
| Gmail delegated to Codex × Claude DM (cross-backend) | Agent: `curl -X POST /api/integrations/gmail/invoke -d '{"tool":"search_emails","args":{...}}'` → daemon spawns Codex subprocess with `proxy.md` profile → Codex calls `mcp__codex_apps__gmail._search_emails` → returns raw result through daemon |
|
|
203
|
+
What happens on a Gmail search, by setup:
|
|
146
204
|
|
|
147
|
-
|
|
205
|
+
| Setup | Path |
|
|
206
|
+
|---|---|
|
|
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
|
+
```
|
|
148
227
|
|
|
149
|
-
`
|
|
150
|
-
|
|
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`.
|
|
151
232
|
|
|
152
|
-
|
|
153
|
-
- `null` — every touched integration is delegated and same-backend.
|
|
154
|
-
No skill is materialized (the connector self-describes).
|
|
155
|
-
- `"SKILL.delegated.<sessionBackend>.md"` — at least one touched
|
|
156
|
-
integration is delegated cross-backend; one body per session backend
|
|
157
|
-
covers every `delegatedBackend` because the API is uniform.
|
|
233
|
+
## How the Skill File Resolves
|
|
158
234
|
|
|
159
|
-
|
|
160
|
-
|
|
235
|
+
`selectSkillVariantFile(skillSlug, sessionBackend, integrations)`
|
|
236
|
+
returns one of four values, picked by tie-break order
|
|
237
|
+
(`docs/design/appendices/native-integration-mode.md` §5.4.1):
|
|
238
|
+
|
|
239
|
+
1. `"SKILL.delegated.<sessionBackend>.md"` — at least one touched
|
|
240
|
+
integration is delegated cross-backend. The body documents the
|
|
241
|
+
`/exec` task-mode proxy and any native siblings inline (§7.4
|
|
242
|
+
mixed-mode prompts).
|
|
243
|
+
2. `"SKILL.native.<sessionBackend>.md"` — at least one touched
|
|
244
|
+
integration is `native` (and no cross-backend wins above). Native
|
|
245
|
+
is always explicit-skill-required (§7.5 — never drops to `null`).
|
|
246
|
+
3. `null` — every touched integration is delegated same-backend AND
|
|
247
|
+
each declares the skill in its descriptor's
|
|
248
|
+
`sameBackendDropsSkillBody`. The connector self-describes; no body
|
|
249
|
+
is materialized.
|
|
250
|
+
4. `"SKILL.md"` — direct mode, mixed states, or skill not gated by any
|
|
251
|
+
integration.
|
|
161
252
|
|
|
162
253
|
## Where You See It in the Dashboard
|
|
163
254
|
|
|
@@ -166,52 +257,79 @@ Mixed states (some same-backend, some cross-backend) fall back to
|
|
|
166
257
|
- **Settings → Models** — main backend switch. Flipping main flips the
|
|
167
258
|
same-/cross-backend status of every delegated integration and
|
|
168
259
|
re-materializes the active DM workdir.
|
|
169
|
-
- **Setup wizard** — first-run integration mode picker;
|
|
170
|
-
|
|
171
|
-
|
|
260
|
+
- **Setup wizard** — first-run integration mode picker; both
|
|
261
|
+
`delegated` and `native` are gated on a **live probe** (§4.12.2)
|
|
262
|
+
that confirms three things before the mode is written to
|
|
263
|
+
`integrations.md`: the backend binary is resolvable, backend auth
|
|
264
|
+
is valid, and the connector reports every `requiredCapabilities`
|
|
265
|
+
entry the descriptor demands. Cached probe rows are invalidated on mode
|
|
266
|
+
change. `POST /api/integrations/:key/probe` is the chokepoint.
|
|
172
267
|
|
|
173
268
|
## How `integrations.md` Reflects This
|
|
174
269
|
|
|
175
|
-
|
|
176
|
-
agent consults at session-init.
|
|
270
|
+
`<contextDir>/policies/integrations.md` is the operator-readable snapshot
|
|
271
|
+
the agent consults at session-init. It is rendered as a Markdown table:
|
|
177
272
|
|
|
178
273
|
```markdown
|
|
179
|
-
##
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
## google_calendar
|
|
187
|
-
mode: delegated
|
|
188
|
-
delegatedBackend: claude
|
|
189
|
-
deniedTools:
|
|
190
|
-
- delete_event
|
|
274
|
+
## Current state
|
|
275
|
+
|
|
276
|
+
| Integration | Mode | Backend | Sub-tier | Last changed |
|
|
277
|
+
|---|---|---|---|---|
|
|
278
|
+
| gmail | delegated | codex | full-auto | 2026-05-15T07:15:32.911Z |
|
|
279
|
+
| google_calendar | native | codex | — | 2026-05-15T07:15:38.605Z |
|
|
280
|
+
| notion | disabled | — | — | 2026-05-15T07:14:56Z |
|
|
191
281
|
```
|
|
192
282
|
|
|
283
|
+
The "Backend" column surfaces whichever binding is active for the row —
|
|
284
|
+
`delegatedBackend` for `delegated`, `nativeBackend` for `native`. For
|
|
285
|
+
`direct` and `disabled` rows it is `—`. The "Sub-tier" column annotates
|
|
286
|
+
delegated Gmail rows (`draft-only` for Claude, `full-auto` for Codex)
|
|
287
|
+
and is `—` for everything else. The file also includes the per-backend
|
|
288
|
+
connector support matrix and the `deniedTools` block; both are rendered
|
|
289
|
+
by `renderManagementMd` (`packages/daemon/src/core/management-md.ts`).
|
|
290
|
+
|
|
193
291
|
A daemon-side write chokepoint guarantees the file matches DB state. The
|
|
194
292
|
fs-watcher reverts hand-edits that fail validation and DMs the operator.
|
|
195
293
|
|
|
196
294
|
## Failure Modes
|
|
197
295
|
|
|
198
296
|
- **Cross-backend, connector signed out on `delegatedBackend`** — the
|
|
199
|
-
|
|
200
|
-
to surface this as "re-sign-in to the connector."
|
|
201
|
-
- **
|
|
202
|
-
|
|
203
|
-
|
|
297
|
+
`/exec` endpoint returns `502 auth_error`. Skill prose tells the
|
|
298
|
+
agent to surface this as "re-sign-in to the connector."
|
|
299
|
+
- **Cross-backend, daemon's delegated-task queue saturated** — `/exec`
|
|
300
|
+
returns `503 delegated_proxy_busy`. The skill body advises a 3–5s
|
|
301
|
+
backoff with one retry.
|
|
302
|
+
- **Cross-backend, fully-denied surface** — when every tool in the
|
|
303
|
+
integration's `capabilityTools` is in `deniedTools`, the task-mode
|
|
304
|
+
planner has nothing to pick. `/exec` short-circuits with
|
|
305
|
+
`errorClass: "denied_tool"` before spawning a subprocess.
|
|
306
|
+
- **Same-backend or native, connector not signed in on the DM backend**
|
|
307
|
+
— the agent has no Gmail tools at all. The setup wizard's pre-commit
|
|
308
|
+
live probe is the primary defense; if the operator signs out
|
|
204
309
|
post-setup, the agent will report "no Gmail tools available" until
|
|
205
310
|
re-signed.
|
|
206
|
-
- **Mode flip mid-call** —
|
|
207
|
-
|
|
311
|
+
- **Mode flip mid-call** — `/exec` returns `409 precondition`; agent
|
|
312
|
+
re-reads `integrations.md` and replans. `native` rows also flip-lock
|
|
313
|
+
via the per-key `runtime_state.integration_flip_lock:<key>` row —
|
|
314
|
+
observations posted during the drain receive
|
|
315
|
+
`results[*].status = "flip_locked"`; the partial / agent profile
|
|
316
|
+
records the row in `errors[]` and the next routine tick reaps it.
|
|
208
317
|
|
|
209
318
|
## Related
|
|
210
319
|
|
|
211
320
|
- [Safety Model](safety-model.md) — how the deny list (the primary
|
|
212
321
|
defense in delegated mode) works.
|
|
213
322
|
- [Skills](skills.md) — how `selectSkillVariantFile` picks the body.
|
|
214
|
-
- Integration Delegation Framework (design) —
|
|
215
|
-
the load-bearing spec
|
|
216
|
-
|
|
217
|
-
|
|
323
|
+
- Integration Delegation Framework (design) —
|
|
324
|
+
`docs/design/14-integration-delegation.md`, the load-bearing spec
|
|
325
|
+
(§14.14 covers the four modes and their cascade rules).
|
|
326
|
+
- Delegated Mode v2 (design) — `docs/design/17-delegated-mode-v2.md` §4.2, the
|
|
327
|
+
`/exec` task-mode model that replaced the retired `/invoke` RPC
|
|
328
|
+
route.
|
|
329
|
+
- Native Integration Mode (design) —
|
|
330
|
+
`docs/design/appendices/native-integration-mode.md`, the on-demand
|
|
331
|
+
surface used by `native` rows and its `integration_flip_lock:<key>`
|
|
332
|
+
drain protocol.
|
|
333
|
+
- Routine Data Acquisition (design) — `docs/design/appendices/routine-data-acquisition.md`
|
|
334
|
+
§6.8 / §8.1, the per-(integration, mode) partial schema used by
|
|
335
|
+
`routine.fetch_window`.
|
|
@@ -17,24 +17,33 @@ section: memory
|
|
|
17
17
|
tags:
|
|
18
18
|
- core
|
|
19
19
|
- memory
|
|
20
|
-
-
|
|
20
|
+
- knowledge
|
|
21
|
+
- context
|
|
22
|
+
- safety
|
|
21
23
|
status: stable
|
|
22
24
|
ask_examples:
|
|
23
25
|
- Where are my context files stored?
|
|
24
26
|
- How does the agent edit context files?
|
|
25
27
|
- What is the difference between context MD and SQLite?
|
|
28
|
+
- Where do management rules and policies live?
|
|
29
|
+
- How does the daemon prevent the agent from writing to disk directly?
|
|
26
30
|
locale: en-US
|
|
27
31
|
created: 2026-04-25
|
|
28
|
-
updated: 2026-05-
|
|
32
|
+
updated: 2026-05-28
|
|
29
33
|
keywords:
|
|
30
34
|
- context
|
|
31
35
|
- markdown
|
|
32
36
|
- SQLite
|
|
33
|
-
- today.md
|
|
34
|
-
-
|
|
35
|
-
- roadmap.md
|
|
36
|
-
-
|
|
37
|
-
-
|
|
37
|
+
- state/today.md
|
|
38
|
+
- identity/profile.md
|
|
39
|
+
- plans/roadmap.md
|
|
40
|
+
- policies/management.md
|
|
41
|
+
- policies/management-captures
|
|
42
|
+
- journal/agent.md
|
|
43
|
+
- context API
|
|
44
|
+
- AgentWriteTracker
|
|
45
|
+
- durable memory
|
|
46
|
+
- context-vault v2
|
|
38
47
|
related:
|
|
39
48
|
- features/memory-files/today
|
|
40
49
|
- features/memory-files/user-profile
|
|
@@ -42,20 +51,27 @@ related:
|
|
|
42
51
|
- features/memory-files/agent-journal
|
|
43
52
|
- features/memory-files/schedule
|
|
44
53
|
- features/memory-files/projects
|
|
45
|
-
- features/memory-files/management-rules
|
|
46
54
|
ui_anchors:
|
|
47
55
|
- /knowledge
|
|
48
56
|
- /connections/knowledge
|
|
49
57
|
context_files:
|
|
50
|
-
- today.md
|
|
51
|
-
-
|
|
52
|
-
- roadmap.md
|
|
53
|
-
- agent
|
|
54
|
-
- daily/<date>.md
|
|
55
|
-
- projects/<slug>.md
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
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/*
|
|
59
75
|
---
|
|
60
76
|
|
|
61
77
|
# Memory Model
|
|
@@ -66,7 +82,11 @@ Aitne treats Markdown files in `~/.personal-agent/context/`
|
|
|
66
82
|
as its long-term memory and SQLite
|
|
67
83
|
(`~/.personal-agent/data/personal_agent.db`) as session-scoped state.
|
|
68
84
|
Anything you want the agent to remember between runs lives in an MD
|
|
69
|
-
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.
|
|
70
90
|
|
|
71
91
|
## Why This Concept Exists
|
|
72
92
|
|
|
@@ -92,28 +112,52 @@ indexes, and configuration.
|
|
|
92
112
|
legal write path. The agent does not have direct `Edit` / `Write`
|
|
93
113
|
permissions on the filesystem; it must go through the daemon.
|
|
94
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
|
+
|
|
95
140
|
## Concrete Examples
|
|
96
141
|
|
|
97
|
-
- `today.md` — rewritten by the morning routine.
|
|
98
|
-
- `
|
|
142
|
+
- `state/today.md` — rewritten by the morning routine.
|
|
143
|
+
- `identity/profile.md` — your profile, hand-edited or appended by the
|
|
99
144
|
agent on request. Topic-shaped slices live alongside it
|
|
100
|
-
(`
|
|
101
|
-
`
|
|
145
|
+
(`identity/people.md`, `identity/work.md`, `identity/expertise.md`,
|
|
146
|
+
`identity/personal.md`, `identity/goals.md`). See
|
|
102
147
|
[User Profile](../features/memory-files/user-profile.md).
|
|
103
|
-
- `roadmap.md` — long-running goals + Preparation Timeline rows that
|
|
148
|
+
- `plans/roadmap.md` — long-running goals + Preparation Timeline rows that
|
|
104
149
|
fire daily during the morning routine.
|
|
105
|
-
- `agent
|
|
150
|
+
- `journal/agent.md` — the agent's own running log of decisions,
|
|
106
151
|
retros, and judgement calls.
|
|
107
|
-
- `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,
|
|
108
153
|
synthesized by the morning routine.
|
|
109
|
-
- `projects/<slug>.md` — one file per active project.
|
|
110
|
-
- `
|
|
154
|
+
- `plans/projects/<slug>.md` — one file per active project.
|
|
155
|
+
- `policies/management.md` — the umbrella registry: Source-of-Truth
|
|
111
156
|
bindings, Managed Tasks, an Active Policies summary. Always
|
|
112
|
-
injected into every flow.
|
|
113
|
-
|
|
114
|
-
- `rules/policies/<slug>.md` — one file per durable management rule
|
|
157
|
+
injected into every flow.
|
|
158
|
+
- `policies/management-captures/<slug>.md` — one file per durable management rule
|
|
115
159
|
("from now on, do X"). The daemon auto-maintains a slug index at
|
|
116
|
-
`
|
|
160
|
+
`policies/management-captures/_index.md`.
|
|
117
161
|
|
|
118
162
|
## Where You See It in the Dashboard
|
|
119
163
|
|
|
@@ -124,8 +168,9 @@ indexes, and configuration.
|
|
|
124
168
|
|
|
125
169
|
## Related
|
|
126
170
|
|
|
127
|
-
- [
|
|
128
|
-
- [
|
|
129
|
-
- [
|
|
171
|
+
- [Knowledge Layout](../reference/knowledge-layout.md) — canonical map of every vault file
|
|
172
|
+
- [state/today.md](../features/memory-files/today.md)
|
|
173
|
+
- [identity/profile.md](../features/memory-files/user-profile.md)
|
|
174
|
+
- [plans/roadmap.md](../features/memory-files/roadmap.md)
|
|
130
175
|
- [Skills](skills.md) — the per-skill SKILL.md files that tell the
|
|
131
176
|
agent how to read and write each context file.
|