@aitne-sh/aitne 0.1.11 → 0.1.13
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 +4 -0
- package/agent-assets/agent-profiles/background-task.md +8 -1
- package/agent-assets/agent-profiles/routine-fetch-window.md +11 -0
- package/agent-assets/agents/evening-review/agent.md +6 -2
- package/agent-assets/agents/lesson-maintenance/agent.md +56 -0
- package/agent-assets/agents/morning-routine/agent.md +10 -6
- package/agent-assets/agents/source-librarian/agent.md +51 -0
- package/agent-assets/docs/concepts/agent-day.md +15 -15
- package/agent-assets/docs/concepts/auth-health.md +10 -7
- package/agent-assets/docs/concepts/backends-and-tiers.md +34 -23
- package/agent-assets/docs/concepts/costs-and-quotas.md +10 -10
- package/agent-assets/docs/concepts/delegated-mode.md +18 -18
- package/agent-assets/docs/concepts/memory-model.md +25 -24
- package/agent-assets/docs/concepts/observations.md +27 -19
- package/agent-assets/docs/concepts/process-keys.md +25 -26
- package/agent-assets/docs/concepts/routines.md +18 -17
- package/agent-assets/docs/concepts/safety-and-execution.md +20 -17
- package/agent-assets/docs/concepts/safety-model.md +16 -15
- package/agent-assets/docs/concepts/skills.md +7 -4
- package/agent-assets/docs/features/integrations/browser-history.md +52 -47
- package/agent-assets/docs/features/integrations/calendar.md +7 -7
- package/agent-assets/docs/features/integrations/git.md +15 -13
- package/agent-assets/docs/features/integrations/github.md +12 -10
- package/agent-assets/docs/features/integrations/mail.md +47 -45
- package/agent-assets/docs/features/integrations/notion.md +15 -11
- package/agent-assets/docs/features/integrations/obsidian.md +27 -23
- package/agent-assets/docs/features/lifestyle/git.md +7 -8
- package/agent-assets/docs/features/lifestyle/reading.md +11 -8
- package/agent-assets/docs/features/lifestyle/receipts.md +21 -22
- package/agent-assets/docs/features/lifestyle/travel-bookings.md +9 -9
- package/agent-assets/docs/features/memory-files/agent-journal.md +12 -10
- package/agent-assets/docs/features/memory-files/agent-lessons.md +46 -21
- package/agent-assets/docs/features/memory-files/projects.md +13 -14
- package/agent-assets/docs/features/memory-files/roadmap.md +16 -15
- package/agent-assets/docs/features/memory-files/schedule.md +10 -10
- package/agent-assets/docs/features/memory-files/today.md +18 -18
- package/agent-assets/docs/features/memory-files/user-profile.md +17 -17
- package/agent-assets/docs/features/messaging/bang-commands.md +15 -15
- package/agent-assets/docs/features/messaging/dashboard-chat.md +8 -7
- package/agent-assets/docs/features/messaging/discord.md +7 -5
- package/agent-assets/docs/features/messaging/overview.md +14 -14
- package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +12 -12
- package/agent-assets/docs/features/messaging/slack.md +9 -8
- package/agent-assets/docs/features/messaging/telegram.md +7 -7
- package/agent-assets/docs/features/messaging/whatsapp.md +6 -6
- package/agent-assets/docs/features/operations/activity-and-conversations.md +9 -9
- package/agent-assets/docs/features/operations/approvals.md +13 -12
- package/agent-assets/docs/features/operations/backend-routing.md +38 -37
- package/agent-assets/docs/features/operations/browser-tasks.md +63 -57
- package/agent-assets/docs/features/operations/cost-tracking.md +5 -5
- package/agent-assets/docs/features/operations/managed-chromium.md +23 -22
- package/agent-assets/docs/features/operations/notifications.md +15 -15
- package/agent-assets/docs/features/operations/quiet-hours.md +14 -15
- package/agent-assets/docs/features/operations/schedule-approaching.md +16 -14
- package/agent-assets/docs/features/routines/activity-scan.md +14 -11
- package/agent-assets/docs/features/routines/custom-routines.md +9 -7
- package/agent-assets/docs/features/routines/evening-review.md +6 -7
- package/agent-assets/docs/features/routines/morning-routine.md +23 -22
- package/agent-assets/docs/features/routines/weekly-review.md +57 -51
- package/agent-assets/docs/features/wiki/commands.md +28 -22
- package/agent-assets/docs/features/wiki/cost-and-approval.md +28 -23
- package/agent-assets/docs/features/wiki/dashboard.md +22 -24
- package/agent-assets/docs/features/wiki/overview.md +17 -25
- package/agent-assets/docs/features/wiki/search.md +15 -17
- package/agent-assets/docs/features/wiki/workspaces.md +55 -56
- package/agent-assets/docs/getting-started/01-what-is-this.md +4 -5
- package/agent-assets/docs/getting-started/02-first-steps.md +12 -13
- package/agent-assets/docs/getting-started/03-what-can-this-do.md +7 -7
- package/agent-assets/docs/getting-started/04-first-day.md +4 -5
- package/agent-assets/docs/glossary.md +21 -19
- package/agent-assets/docs/guides/add-a-custom-routine.md +17 -12
- package/agent-assets/docs/guides/backup-and-restore.md +19 -16
- package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +57 -62
- package/agent-assets/docs/guides/build-your-wiki.md +11 -12
- package/agent-assets/docs/guides/change-which-model-handles-x.md +30 -28
- package/agent-assets/docs/guides/connect-a-new-mail-account.md +30 -29
- package/agent-assets/docs/guides/explore-with-trace-and-connect.md +30 -32
- package/agent-assets/docs/guides/import-knowledge-file.md +9 -10
- package/agent-assets/docs/guides/install-and-run.md +9 -10
- package/agent-assets/docs/guides/maintain-wiki-health.md +10 -10
- package/agent-assets/docs/guides/migrate-machines.md +16 -14
- package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +12 -13
- package/agent-assets/docs/guides/pause-the-agent.md +25 -25
- package/agent-assets/docs/guides/reinstall-cleanly.md +13 -12
- package/agent-assets/docs/guides/setup-wizard.md +10 -12
- package/agent-assets/docs/guides/switch-default-backend.md +9 -9
- package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +9 -11
- package/agent-assets/docs/pages/activity.md +76 -0
- package/agent-assets/docs/pages/agents.md +78 -0
- package/agent-assets/docs/pages/analytics.md +70 -0
- package/agent-assets/docs/pages/browser.md +73 -0
- package/agent-assets/docs/pages/chat.md +67 -0
- package/agent-assets/docs/pages/connections.md +78 -0
- package/agent-assets/docs/pages/git.md +73 -0
- package/agent-assets/docs/pages/knowledge.md +75 -0
- package/agent-assets/docs/pages/overview.md +90 -0
- package/agent-assets/docs/pages/reading.md +65 -0
- package/agent-assets/docs/pages/settings.md +77 -0
- package/agent-assets/docs/pages/tasks.md +74 -0
- package/agent-assets/docs/pages/wiki.md +73 -0
- package/agent-assets/docs/reference/api.md +18 -17
- package/agent-assets/docs/reference/cli-commands.md +13 -10
- package/agent-assets/docs/reference/config.md +40 -35
- package/agent-assets/docs/reference/disallowed-tools.md +18 -17
- package/agent-assets/docs/reference/keyboard-shortcuts.md +6 -8
- package/agent-assets/docs/reference/knowledge-layout.md +10 -10
- package/agent-assets/docs/reference/process-keys.md +20 -22
- package/agent-assets/docs/reference/skills.md +18 -16
- package/agent-assets/docs/troubleshooting/auth-failed.md +13 -11
- package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +10 -10
- package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +26 -24
- package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +8 -9
- package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +19 -18
- package/agent-assets/docs/troubleshooting/observation-not-detected.md +14 -15
- package/agent-assets/docs/troubleshooting/quota-exhausted.md +28 -26
- package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +35 -34
- package/agent-assets/docs/troubleshooting/wiki-write-failed.md +21 -24
- package/agent-assets/playbooks/markdown-note.md +43 -0
- package/agent-assets/playbooks/monitoring.md +29 -0
- package/agent-assets/playbooks/research.md +47 -0
- package/agent-assets/skills/agent-create/SKILL.md +71 -32
- package/agent-assets/skills/agent-create/references/prompt-frame-extended.md +132 -0
- package/agent-assets/skills/agent-create/references/prompt-frame.md +125 -0
- package/agent-assets/skills/background-task/SKILL.md +13 -8
- package/agent-assets/skills/background-task-reply/SKILL.md +2 -2
- package/agent-assets/skills/board/SKILL.md +92 -0
- package/agent-assets/skills/browser-history/SKILL.md +3 -3
- package/agent-assets/skills/browser-history-respond/SKILL.md +3 -3
- package/agent-assets/skills/browser-task/SKILL.md +4 -2
- package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +2 -1
- package/agent-assets/skills/schedule/SKILL.md +21 -18
- package/agent-assets/skills/schedule/references/batch.md +1 -1
- package/agent-assets/skills/schedule/references/model-selection.md +1 -1
- package/agent-assets/skills/schedule/references/prompt-frame.md +125 -0
- package/agent-assets/skills/sources/SKILL.md +68 -0
- package/agent-assets/skills/sources/curation.json +21 -0
- package/agent-assets/skills/sources/seeds/filing-rules.seed.json +25 -0
- package/agent-assets/skills/sources/seeds/source-collections.seed.json +20 -0
- package/agent-assets/skills/task/SKILL.md +82 -0
- package/agent-assets/task-flows/background_task.md +29 -3
- package/agent-assets/task-flows/message.received.dm.md +1 -1
- package/agent-assets/task-flows/routine.activity_scan.md +17 -2
- package/agent-assets/task-flows/routine.evening_review.md +72 -11
- package/agent-assets/task-flows/routine.fetch_window.md +21 -0
- package/agent-assets/task-flows/routine.monthly_review.md +3 -1
- package/agent-assets/task-flows/routine.morning_routine_today.md +26 -7
- package/agent-assets/task-flows/routine.source_maintenance.md +50 -0
- package/agent-assets/task-flows/scheduled.dm.md +29 -16
- package/agent-assets/templates/_manifest.json +1 -0
- package/agent-assets/templates/knowledge/sources/_index.md +19 -0
- package/package.json +4 -4
|
@@ -13,9 +13,7 @@ summary: |
|
|
|
13
13
|
Single flat term list for Aitne vocabulary. Cross-references
|
|
14
14
|
link to a single canonical anchor here so concept docs do not drift.
|
|
15
15
|
tags:
|
|
16
|
-
-
|
|
17
|
-
- reference
|
|
18
|
-
- glossary
|
|
16
|
+
- knowledge
|
|
19
17
|
status: stable
|
|
20
18
|
ask_examples:
|
|
21
19
|
- What is a ProcessKey?
|
|
@@ -35,7 +33,7 @@ ask_examples:
|
|
|
35
33
|
- What is an observation?
|
|
36
34
|
locale: en-US
|
|
37
35
|
created: 2026-04-25
|
|
38
|
-
updated: 2026-
|
|
36
|
+
updated: 2026-07-01
|
|
39
37
|
keywords:
|
|
40
38
|
- terminology
|
|
41
39
|
- vocabulary
|
|
@@ -102,7 +100,7 @@ and rationale.
|
|
|
102
100
|
|
|
103
101
|
## Backend
|
|
104
102
|
|
|
105
|
-
One of the model providers Aitne can
|
|
103
|
+
One of the AI model providers Aitne can send work to: `claude`
|
|
106
104
|
(Claude Code SDK), `codex` (Codex CLI), `gemini` (Gemini CLI), or
|
|
107
105
|
`opencode` (`@opencode-ai/sdk` HTTP server). Each backend is configured
|
|
108
106
|
per-installation; one is the **main backend**, and the others can be
|
|
@@ -110,12 +108,13 @@ enabled as fallbacks.
|
|
|
110
108
|
|
|
111
109
|
## Browser History (B-3)
|
|
112
110
|
|
|
113
|
-
|
|
111
|
+
A local-only poller that reads the browser's own SQLite history database
|
|
114
112
|
(Chromium-based browsers — Chrome, Chromium, Edge, Brave, Comet, Atlas)
|
|
115
|
-
and records page visits as observations.
|
|
116
|
-
reload-memory block, and the
|
|
117
|
-
on-demand reload tally.
|
|
118
|
-
visit timings the browser
|
|
113
|
+
and records page visits as observations. It feeds the **research cluster**
|
|
114
|
+
derivation, the weekly reload-memory block, and the
|
|
115
|
+
[`!checks`](features/messaging/bang-commands.md) on-demand reload tally.
|
|
116
|
+
Nothing is uploaded — only the URLs, titles, and visit timings the browser
|
|
117
|
+
itself already recorded. See
|
|
119
118
|
[Browser History](features/integrations/browser-history.md).
|
|
120
119
|
|
|
121
120
|
## Managed Chromium (B-4)
|
|
@@ -146,8 +145,9 @@ enabled custom commands appear in `!help`. See
|
|
|
146
145
|
|
|
147
146
|
## Backend Router
|
|
148
147
|
|
|
149
|
-
The component that
|
|
150
|
-
model, maxTurns, maxBudgetUsd)` binding at dispatch time
|
|
148
|
+
The component that turns a `ProcessKey` into a concrete `(backend,
|
|
149
|
+
model, maxTurns, maxBudgetUsd)` binding at dispatch time (the moment an
|
|
150
|
+
invocation is handed to a backend). Lives in
|
|
151
151
|
`packages/daemon/src/core/backends/backend-router.ts`. Routing reads
|
|
152
152
|
`process_backend_config` (per-process pins) layered over
|
|
153
153
|
`backend_global_defaults` (installation-wide defaults).
|
|
@@ -160,8 +160,8 @@ matching anchor.
|
|
|
160
160
|
|
|
161
161
|
## Day Boundary
|
|
162
162
|
|
|
163
|
-
The hour
|
|
164
|
-
`dayBoundaryHour` (default `4`).
|
|
163
|
+
The hour of the day when the agent day rolls over (when "today" starts
|
|
164
|
+
fresh). Configured via `dayBoundaryHour` (default `4`).
|
|
165
165
|
|
|
166
166
|
## deniedTools
|
|
167
167
|
|
|
@@ -228,10 +228,11 @@ dashboard page.
|
|
|
228
228
|
|
|
229
229
|
Operator-facing umbrella for the two non-heavy lanes on each backend:
|
|
230
230
|
|
|
231
|
-
- **Medium / Main** (Claude Sonnet
|
|
232
|
-
`gemini-3.1-pro-preview` on Gemini, Sonnet
|
|
231
|
+
- **Medium / Main** (Claude Sonnet 5, `gpt-5.4` on Codex,
|
|
232
|
+
`gemini-3.1-pro-preview` on Gemini, Sonnet 5 via OpenCode) —
|
|
233
233
|
default for owner DMs, dashboard chat, the activity scan, and the
|
|
234
|
-
morning / evening / weekly review routines.
|
|
234
|
+
morning / evening / weekly review routines. (Sonnet 4.6 became a
|
|
235
|
+
`(legacy)` pin when Sonnet 5 shipped on 2026-06-30.)
|
|
235
236
|
- **Lite / Delegated** (Claude Haiku 4.5, `gpt-5.4-mini` on Codex,
|
|
236
237
|
`gemini-3.1-flash-lite-preview` on Gemini, Haiku 4.5 via OpenCode) —
|
|
237
238
|
reserved for mechanical / delegated surfaces: Gmail classification,
|
|
@@ -261,7 +262,7 @@ in 2026-05 to trim morning-routine input tokens by ~24%.
|
|
|
261
262
|
|
|
262
263
|
## Observation
|
|
263
264
|
|
|
264
|
-
One row in the `observations` table. A change record a polling
|
|
265
|
+
One row in the `observations` table. A change record that a polling
|
|
265
266
|
integration (Obsidian, Git, Notion, calendar, mail, browser history)
|
|
266
267
|
or a `routine.fetch_window` pre-pass wrote into SQLite. The
|
|
267
268
|
`routine.activity_scan` is the consumer — there is no per-change
|
|
@@ -271,7 +272,8 @@ to break the agent-observing-its-own-writes loop. See
|
|
|
271
272
|
|
|
272
273
|
## ProcessKey
|
|
273
274
|
|
|
274
|
-
The
|
|
275
|
+
The typed string identifier (a "branded" string in the TypeScript code)
|
|
276
|
+
for a class of agent invocation, e.g.
|
|
275
277
|
`routine.morning_routine`, `message.dm`, `dashboard.docs_qa`. Drives
|
|
276
278
|
backend selection, skill manifest, agent profile, and task-flow
|
|
277
279
|
template lookup. Defined in `packages/shared/src/process-key.ts`.
|
|
@@ -18,12 +18,10 @@ summary: |
|
|
|
18
18
|
prompt for every run; runs appear on the Agent's detail page.
|
|
19
19
|
section: add-a-custom-routine
|
|
20
20
|
tags:
|
|
21
|
-
- guides
|
|
22
21
|
- agents
|
|
23
22
|
- routines
|
|
24
23
|
- scheduler
|
|
25
24
|
- autonomous
|
|
26
|
-
- core
|
|
27
25
|
status: stable
|
|
28
26
|
ask_examples:
|
|
29
27
|
- How do I create a recurring agent?
|
|
@@ -32,7 +30,7 @@ ask_examples:
|
|
|
32
30
|
- Where do I see my agent's runs?
|
|
33
31
|
locale: en-US
|
|
34
32
|
created: 2026-04-25
|
|
35
|
-
updated: 2026-
|
|
33
|
+
updated: 2026-07-01
|
|
36
34
|
keywords:
|
|
37
35
|
- recurring agent
|
|
38
36
|
- new agent
|
|
@@ -60,8 +58,8 @@ related:
|
|
|
60
58
|
|
|
61
59
|
## Goal
|
|
62
60
|
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
Run a task you write on a schedule you pick, packaged as a user
|
|
62
|
+
**Agent** you can watch, tune, and toggle from `/agents`.
|
|
65
63
|
|
|
66
64
|
## Prerequisites
|
|
67
65
|
|
|
@@ -89,7 +87,7 @@ as a user **Agent** you can watch, tune, and toggle from `/agents`.
|
|
|
89
87
|
becomes the Markdown body of `agent.md` and is the prompt the
|
|
90
88
|
agent receives every time it fires.
|
|
91
89
|
- An **Advanced (YAML)** toggle reveals the raw `agent.md` editor
|
|
92
|
-
for
|
|
90
|
+
for the extra fields the form doesn't expose (tags, tools,
|
|
93
91
|
success criteria, error handling).
|
|
94
92
|
3. Save. The dashboard writes `policies/agents/<slug>/agent.md`
|
|
95
93
|
through the context vault and opens the new Agent's detail page;
|
|
@@ -114,7 +112,10 @@ curl -X POST http://localhost:8321/api/agents \
|
|
|
114
112
|
```
|
|
115
113
|
|
|
116
114
|
- **`prompt` becomes the Agent's task prompt** — it is stored as the
|
|
117
|
-
Markdown body of `agent.md` and sent to the agent on every run.
|
|
115
|
+
Markdown body of `agent.md` and sent to the agent on every run. It
|
|
116
|
+
must be a real task definition: an empty body or a stand-in like
|
|
117
|
+
`"placeholder"`/`"TODO"` is rejected as `400 invalid_definition`
|
|
118
|
+
(the agent would skip every run as too ambiguous to act on).
|
|
118
119
|
- **`schedule`** takes one of two forms: a raw 5-field cron
|
|
119
120
|
(`{ "kind": "cron", "expression": "0 11 * * 2" }`, interpreted in
|
|
120
121
|
the daemon's timezone unless `schedule.timezone` is set) or a
|
|
@@ -122,8 +123,8 @@ curl -X POST http://localhost:8321/api/agents \
|
|
|
122
123
|
"weekly", "daysOfWeek": ["tuesday"], "time": "11:00" } }`).
|
|
123
124
|
`/agents` is recurring-only — a one-time task belongs on
|
|
124
125
|
`POST /api/schedule` instead.
|
|
125
|
-
- **`backend.tier`** is optional;
|
|
126
|
-
`agent.task` process default (medium). `backend.process_key`
|
|
126
|
+
- **`backend.tier`** is optional; if you omit it, the Agent inherits
|
|
127
|
+
the `agent.task` process default (medium). `backend.process_key`
|
|
127
128
|
defaults to `agent.task` — you don't need to set it.
|
|
128
129
|
- **`limits`** defaults: 20 turns, $0.25 per run, 10-minute timeout.
|
|
129
130
|
- Success returns `201 { "status": "created", "slug": ... }`. A taken
|
|
@@ -152,9 +153,13 @@ curl -X POST http://localhost:8321/api/agents \
|
|
|
152
153
|
- `400 invalid_definition` — fix the fields listed in `issues`.
|
|
153
154
|
- `400 one_shot_not_supported` — `/agents` is recurring-only; use
|
|
154
155
|
`POST /api/schedule` for one-time work.
|
|
155
|
-
-
|
|
156
|
-
|
|
157
|
-
|
|
156
|
+
- **Run now** returns `409 agent_prompt_placeholder` — the Agent's
|
|
157
|
+
stored prompt is empty or still a placeholder stub (possible for
|
|
158
|
+
Agents created before this was validated); write the real task into
|
|
159
|
+
its `agent.md` and try again.
|
|
160
|
+
- A prompt that trips the absolute-block guardrails — the run still
|
|
161
|
+
executes, but the offending tool call is logged as `blocked_absolute`
|
|
162
|
+
in the action log.
|
|
158
163
|
|
|
159
164
|
## Migrating From Custom Routines
|
|
160
165
|
|
|
@@ -17,7 +17,6 @@ summary: |
|
|
|
17
17
|
this directory, so re-register them after a restore.
|
|
18
18
|
section: backup-and-restore
|
|
19
19
|
tags:
|
|
20
|
-
- guides
|
|
21
20
|
- operations
|
|
22
21
|
- backup
|
|
23
22
|
status: stable
|
|
@@ -27,7 +26,7 @@ ask_examples:
|
|
|
27
26
|
- Why are my API keys gone after restoring a backup?
|
|
28
27
|
locale: en-US
|
|
29
28
|
created: 2026-04-25
|
|
30
|
-
updated: 2026-
|
|
29
|
+
updated: 2026-07-01
|
|
31
30
|
keywords:
|
|
32
31
|
- backup
|
|
33
32
|
- restore
|
|
@@ -46,12 +45,12 @@ related:
|
|
|
46
45
|
|
|
47
46
|
## Goal
|
|
48
47
|
|
|
49
|
-
|
|
50
|
-
restore later — on this machine or a
|
|
48
|
+
Save everything Aitne keeps on disk into a single tar archive (a `.tgz`
|
|
49
|
+
file) that you can restore later — on this machine or a new one.
|
|
51
50
|
|
|
52
51
|
## What's in the backup (and what isn't)
|
|
53
52
|
|
|
54
|
-
Everything Aitne
|
|
53
|
+
Everything Aitne saves lives under `PA_DATA_DIR` (default
|
|
55
54
|
`~/.personal-agent`), so backing up that one directory captures it all:
|
|
56
55
|
|
|
57
56
|
- `data/personal_agent.db` — sessions, actions, observations, FTS index
|
|
@@ -72,8 +71,9 @@ Both are re-added through the dashboard after restore.
|
|
|
72
71
|
|
|
73
72
|
## Steps
|
|
74
73
|
|
|
75
|
-
1. **Stop the daemon**
|
|
76
|
-
the
|
|
74
|
+
1. **Stop the daemon** (Aitne's background service). This flushes any
|
|
75
|
+
pending database writes to disk — the SQLite write-ahead log is
|
|
76
|
+
checkpointed — so your snapshot is a clean, consistent copy:
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
79
|
aitne stop
|
|
@@ -95,7 +95,8 @@ Both are re-added through the dashboard after restore.
|
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
Schema migrations run automatically on the first boot (see below), so
|
|
98
|
-
an older
|
|
98
|
+
Aitne upgrades an older database to the current shape without extra
|
|
99
|
+
steps.
|
|
99
100
|
|
|
100
101
|
4. **Re-register secrets and re-pair messaging** through the dashboard —
|
|
101
102
|
they were never in the tar.
|
|
@@ -109,16 +110,18 @@ Both are re-added through the dashboard after restore.
|
|
|
109
110
|
## If It Fails
|
|
110
111
|
|
|
111
112
|
- **Schema mismatch on restore.** Aitne ships forward-only schema
|
|
112
|
-
migrations
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
(
|
|
113
|
+
migrations — they only ever upgrade a database, never downgrade it —
|
|
114
|
+
and applies them automatically at boot (see
|
|
115
|
+
[Schema Migration](../glossary.md#schema-migration)), so a restored
|
|
116
|
+
database from an older daemon version usually just works: the migration
|
|
117
|
+
runner brings it up to the current shape on the next start. Only fall
|
|
118
|
+
back to dropping the database (see
|
|
119
|
+
[Reinstall Cleanly](reinstall-cleanly.md)) if the daemon refuses to
|
|
120
|
+
start *after* you've checked the log (`aitne logs`) for a real
|
|
121
|
+
migration error.
|
|
119
122
|
- **The agent can't reach its backends after restore.** That's the
|
|
120
123
|
missing keychain secrets — re-add your API keys in the dashboard
|
|
121
|
-
(Step 4). The
|
|
124
|
+
(Step 4). The database and context restore fine without them.
|
|
122
125
|
|
|
123
126
|
## Moving to a different machine?
|
|
124
127
|
|
|
@@ -15,7 +15,6 @@ summary: |
|
|
|
15
15
|
to tune the threshold.
|
|
16
16
|
section: budget-and-cost-for-wiki
|
|
17
17
|
tags:
|
|
18
|
-
- guides
|
|
19
18
|
- wiki
|
|
20
19
|
- cost
|
|
21
20
|
- approval
|
|
@@ -27,7 +26,7 @@ ask_examples:
|
|
|
27
26
|
- What does the pre-compile snapshot do?
|
|
28
27
|
locale: en-US
|
|
29
28
|
created: 2026-05-12
|
|
30
|
-
updated: 2026-
|
|
29
|
+
updated: 2026-07-01
|
|
31
30
|
keywords:
|
|
32
31
|
- wiki budget
|
|
33
32
|
- wiki cost
|
|
@@ -56,90 +55,86 @@ ui_anchors:
|
|
|
56
55
|
|
|
57
56
|
# Wiki Budgets and Cost
|
|
58
57
|
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
This is the operator's walkthrough for keeping wiki spending under
|
|
59
|
+
control. For the deep mechanics — exactly how the estimate is
|
|
60
|
+
computed and how the approval gate decides — see
|
|
61
|
+
[features/wiki/cost-and-approval](../features/wiki/cost-and-approval.md).
|
|
61
62
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
The wiki gives you three cost knobs, all in **Settings → Wiki**
|
|
64
|
+
(`/settings/wiki`):
|
|
65
|
+
|
|
66
|
+
1. **Per-command model picker** — one model per wiki process. The
|
|
67
|
+
picker covers `wiki.ingest_url`, `wiki.compile`, and `wiki.ask`,
|
|
68
|
+
plus the operational trio `wiki.lint`, `wiki.trace`, and
|
|
69
|
+
`wiki.connect`. Each starts on your main backend at the medium
|
|
70
|
+
tier. If you ingest a lot of URLs, drop `wiki.ingest_url` to a lite
|
|
71
|
+
tier to save money.
|
|
68
72
|
2. **Per-process budget cap** (`max_budget_usd` on each row). The
|
|
69
|
-
dispatcher's per-session budget envelope
|
|
73
|
+
dispatcher's per-session budget envelope enforces it.
|
|
70
74
|
3. **Per-workspace `!compile full` approval threshold** (default
|
|
71
|
-
$2.00, range $0–$100). The
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
+
$2.00, range $0–$100). The estimator brackets the likely spend at
|
|
76
|
+
0.5× / 1× / 2× the estimated input-token count; if the worst-case
|
|
77
|
+
(2×) number crosses the threshold, `!compile full` asks for
|
|
78
|
+
approval instead of running on its own.
|
|
75
79
|
|
|
76
80
|
## What the Estimator Does
|
|
77
81
|
|
|
78
82
|
`!compile full` is the most expensive wiki command because a full
|
|
79
|
-
rebuild touches every raw note.
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
per-call overhead (system prompt, skills bundle, tool docs). The unit
|
|
94
|
-
cost (`$0.003` per 1k tokens) matches Claude Sonnet 4.6's ~$3 /
|
|
95
|
-
Mtoken input price. The bracket lets you see a worst case before
|
|
96
|
-
approving.
|
|
83
|
+
rebuild touches every raw note. Before it runs, a small piece of
|
|
84
|
+
plain JavaScript estimates the cost — it never spawns an agent, since
|
|
85
|
+
spawning one just to estimate would itself burn budget. It walks the
|
|
86
|
+
`10_raw/` layer, approximates each file's token count from its size on
|
|
87
|
+
disk, and reports a low/high bracket so you can weigh a worst case
|
|
88
|
+
before you approve. For the exact character-to-token ratios and the
|
|
89
|
+
0.5× / 2× bracket math, see
|
|
90
|
+
[features/wiki/cost-and-approval](../features/wiki/cost-and-approval.md).
|
|
91
|
+
|
|
92
|
+
The unit cost (`$0.003` per 1k tokens) matches Claude Sonnet 5's ~$3
|
|
93
|
+
/ Mtoken standard input price. (An introductory $2 / Mtoken rate runs
|
|
94
|
+
through 2026-08-31; the estimate lists the standard rate, while the
|
|
95
|
+
SDK's billed `total_cost_usd` reflects the intro price during the
|
|
96
|
+
window.)
|
|
97
97
|
|
|
98
98
|
> The dashboard surfaces the top raw files by estimated token count,
|
|
99
99
|
> so you can see which sources dominate the bill before approving.
|
|
100
|
-
> An older flat heuristic (`raw_count × 1500 tokens`) survives as an
|
|
101
|
-
> opt-in fallback for deterministic banner copy, but the default is
|
|
102
|
-
> the per-file character scan described above.
|
|
103
100
|
|
|
104
101
|
## Where the Gate Fires
|
|
105
102
|
|
|
106
|
-
- **Below threshold**: the compile runs
|
|
107
|
-
completion DM with actual spend.
|
|
108
|
-
- **Above threshold**: the
|
|
109
|
-
row with `task_type='approval'`, DMs you the
|
|
110
|
-
The request shows up as an **Approvals** card
|
|
111
|
-
page (`/`); the `/settings/wiki` page also
|
|
112
|
-
|
|
113
|
-
and the scheduler picks it up — only
|
|
114
|
-
snapshot
|
|
103
|
+
- **Below threshold**: the compile runs on its own, and you get a
|
|
104
|
+
completion DM with the actual spend.
|
|
105
|
+
- **Above threshold**: the compile pauses. It inserts an
|
|
106
|
+
`agent_schedule` row with `task_type='approval'`, DMs you the
|
|
107
|
+
estimate, and waits. The request shows up as an **Approvals** card
|
|
108
|
+
on the dashboard home page (`/`); the `/settings/wiki` page also
|
|
109
|
+
points you there. When you click **Approve**, the row flips to
|
|
110
|
+
`task_type='approved_task'` and the scheduler picks it up — only
|
|
111
|
+
then does Aitne take the pre-compile git snapshot (see below) and
|
|
112
|
+
start the compile session.
|
|
115
113
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
spawned.
|
|
114
|
+
Changed your mind? Click **Deny** on the approval card. The row flips
|
|
115
|
+
to `skipped`, no git commit is made, and no agent session runs.
|
|
119
116
|
|
|
120
117
|
## Git Pre-Compile Snapshot
|
|
121
118
|
|
|
122
119
|
On an external workspace that is a git repo and has **Auto-commit
|
|
123
|
-
before `!compile full`** enabled, Aitne
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
git
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
before the compile session starts. The commit message is
|
|
133
|
-
deterministic so you can roll back with `git reset --hard HEAD~1` if
|
|
134
|
-
the compile produces a surprise. The `--no-verify` flag is not used —
|
|
135
|
-
your pre-commit hooks run as normal.
|
|
120
|
+
before `!compile full`** enabled, Aitne commits the vault
|
|
121
|
+
(`git add -A && git commit`) just before the compile session starts,
|
|
122
|
+
giving you a rollback point. If the compile produces a surprise,
|
|
123
|
+
`git reset --hard HEAD~1` puts the vault back. A dirty working tree
|
|
124
|
+
refuses the operation entirely — commit or stash first, then re-run.
|
|
125
|
+
The commit runs your normal pre-commit hooks (the `--no-verify` flag
|
|
126
|
+
is not used).
|
|
136
127
|
|
|
137
128
|
The estimate DM tells you which snapshot path applies:
|
|
138
129
|
**"will commit before compile starts"** (clean repo), **"not taken
|
|
139
130
|
(no git repo)"**, **"disabled by setting"** (auto-commit off), or
|
|
140
131
|
**"not applicable"** for internal-mode workspaces — those recover via
|
|
141
132
|
`md_file_snapshots` instead of git. When no git backup will be taken,
|
|
142
|
-
you can
|
|
133
|
+
you can add one yourself before approving.
|
|
134
|
+
|
|
135
|
+
For the full state-by-state table of what the snapshot gate does in
|
|
136
|
+
each workspace configuration, see
|
|
137
|
+
[features/wiki/cost-and-approval](../features/wiki/cost-and-approval.md).
|
|
143
138
|
|
|
144
139
|
## Tuning the Threshold
|
|
145
140
|
|
|
@@ -14,7 +14,6 @@ summary: |
|
|
|
14
14
|
notes, and ask a question against the vault.
|
|
15
15
|
section: build-your-wiki
|
|
16
16
|
tags:
|
|
17
|
-
- guide
|
|
18
17
|
- wiki
|
|
19
18
|
- knowledge
|
|
20
19
|
status: stable
|
|
@@ -24,7 +23,7 @@ ask_examples:
|
|
|
24
23
|
- How do I compile my ingested notes into wiki articles?
|
|
25
24
|
locale: en-US
|
|
26
25
|
created: 2026-05-12
|
|
27
|
-
updated: 2026-
|
|
26
|
+
updated: 2026-07-01
|
|
28
27
|
keywords:
|
|
29
28
|
- wiki
|
|
30
29
|
- build wiki
|
|
@@ -53,14 +52,14 @@ prerequisites:
|
|
|
53
52
|
|
|
54
53
|
## Goal
|
|
55
54
|
|
|
56
|
-
|
|
57
|
-
article, and
|
|
55
|
+
Turn on the internal wiki, capture a URL, compile it into a wiki
|
|
56
|
+
article, and ask a question about the result.
|
|
58
57
|
|
|
59
58
|
## Prerequisites
|
|
60
59
|
|
|
61
60
|
- A paired messaging channel (Telegram, Slack, Discord, WhatsApp, or
|
|
62
61
|
dashboard chat) — see
|
|
63
|
-
[Pairing and the Magic Phrase](../messaging/pairing-and-magic-phrase.md).
|
|
62
|
+
[Pairing and the Magic Phrase](../features/messaging/pairing-and-magic-phrase.md).
|
|
64
63
|
- The daemon is running and the dashboard is reachable.
|
|
65
64
|
|
|
66
65
|
## Where you'll work in the dashboard
|
|
@@ -71,8 +70,8 @@ browsing lives under **My Life**.
|
|
|
71
70
|
|
|
72
71
|
- **My Life → Wiki** (`/wiki`) — your main entry point. Shows
|
|
73
72
|
workspace stats, the compiled `_index.md`, and recent activity. When
|
|
74
|
-
the wiki is not enabled yet, this page
|
|
75
|
-
|
|
73
|
+
the wiki is not enabled yet, this page shows an **Enable Wiki**
|
|
74
|
+
button instead.
|
|
76
75
|
- **Setup → Settings → Wiki** (`/settings/wiki`) — workspace creation,
|
|
77
76
|
internal/external mode, per-command model selectors, budgets,
|
|
78
77
|
archive / delete.
|
|
@@ -101,8 +100,8 @@ you enable a workspace, so you do not need to remember the URL.
|
|
|
101
100
|
number of URLs queued.
|
|
102
101
|
5. Wait for the per-URL completion DMs (parallel mode) or the single
|
|
103
102
|
summary reply (serial mode).
|
|
104
|
-
6. Run `!compile` to
|
|
105
|
-
compile session
|
|
103
|
+
6. Run `!compile` to turn your raw captures into wiki articles. The
|
|
104
|
+
compile session writes `20_wiki/<slug>.md` files and updates
|
|
106
105
|
`20_wiki/_index.md`.
|
|
107
106
|
7. Ask a question: `!ask What did this source say about X?`. The
|
|
108
107
|
answer is written to `30_outputs/<YYYY-MM-DD>-<slug>.md` with
|
|
@@ -115,9 +114,9 @@ returns the command list.
|
|
|
115
114
|
## What to Try Next
|
|
116
115
|
|
|
117
116
|
- **Send multiple URLs at once**: `!ingest https://a.com, https://b.com`
|
|
118
|
-
|
|
119
|
-
`/settings/wiki` when you
|
|
120
|
-
|
|
117
|
+
processes them in parallel (all at once) by default. Switch to serial
|
|
118
|
+
mode on `/settings/wiki` when you want them handled one at a time, for
|
|
119
|
+
predictable ordering and request pacing.
|
|
121
120
|
- **Point at an existing Obsidian vault** instead of the daemon-owned
|
|
122
121
|
root — see [Use An Existing Obsidian Vault](use-an-existing-obsidian-vault.md).
|
|
123
122
|
- **Tune the budget** for `wiki.compile` and `wiki.ingest_url` from
|
|
@@ -14,7 +14,6 @@ summary: |
|
|
|
14
14
|
reasoning, or run a routine on Codex while Claude stays the default.
|
|
15
15
|
section: change-which-model-handles-x
|
|
16
16
|
tags:
|
|
17
|
-
- guide
|
|
18
17
|
- backends
|
|
19
18
|
- operations
|
|
20
19
|
- routing
|
|
@@ -25,7 +24,7 @@ ask_examples:
|
|
|
25
24
|
- Can I change the model for just one ProcessKey?
|
|
26
25
|
locale: en-US
|
|
27
26
|
created: 2026-04-25
|
|
28
|
-
updated: 2026-
|
|
27
|
+
updated: 2026-07-01
|
|
29
28
|
keywords:
|
|
30
29
|
- per-process model
|
|
31
30
|
- /settings/models
|
|
@@ -54,50 +53,53 @@ config_keys:
|
|
|
54
53
|
|
|
55
54
|
## Goal
|
|
56
55
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
delegated routine onto Gemini
|
|
56
|
+
Change the backend or model tier for a **single** ProcessKey — the label
|
|
57
|
+
the agent gives to one kind of work, such as `routine.evening_review` —
|
|
58
|
+
without touching the global default. Reach for this when one job needs a
|
|
59
|
+
stronger (or cheaper) model than the shipped default: pin the evening
|
|
60
|
+
review to Opus (high tier), or push a noisy delegated routine onto Gemini
|
|
61
|
+
to save your Claude quota.
|
|
62
62
|
|
|
63
63
|
## Steps
|
|
64
64
|
|
|
65
65
|
1. Open `/settings/models`.
|
|
66
66
|
2. Find the ProcessKey row in the per-process table (e.g.
|
|
67
67
|
`routine.evening_review`).
|
|
68
|
-
3. Set its **main backend** and **tier** explicitly.
|
|
68
|
+
3. Set its **main backend** and **tier** explicitly. Each tier picks a
|
|
69
69
|
model class — `lite` → Haiku-class, `medium` → Sonnet-class,
|
|
70
|
-
`high` → Opus-class.
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
`high` → Opus-class. You can also set a **fallback** backend to use if
|
|
71
|
+
the main one is unavailable.
|
|
72
|
+
4. Save. The row is now marked operator-edited, so it keeps your pin
|
|
73
|
+
through a defaults reset — only an install-time `force` re-seed
|
|
74
|
+
overwrites it.
|
|
74
75
|
|
|
75
76
|
## Concrete Example
|
|
76
77
|
|
|
77
78
|
To give the evening review deeper reasoning, set
|
|
78
79
|
`routine.evening_review` → main `claude`, tier `high`. The next evening
|
|
79
|
-
run
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
run then uses **Opus 4.8** instead of the default Sonnet 5. The run's
|
|
81
|
+
budget scales with the tier too — high tier carries a larger turn and
|
|
82
|
+
cost envelope than medium.
|
|
82
83
|
|
|
83
84
|
## Verification
|
|
84
85
|
|
|
85
|
-
- The next
|
|
86
|
-
the
|
|
86
|
+
- The next time that ProcessKey runs, its **Activity** event detail
|
|
87
|
+
shows the new backend and model (after fallback resolution).
|
|
87
88
|
|
|
88
89
|
## Caveats
|
|
89
90
|
|
|
90
|
-
- **`dashboard.docs_qa` is tier-locked to `medium`** —
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
- **High tier is opt-in,
|
|
94
|
-
|
|
95
|
-
`delegated_task_heavy`,
|
|
96
|
-
config flag.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
higher model in the
|
|
91
|
+
- **`dashboard.docs_qa` is tier-locked to `medium`** — the router
|
|
92
|
+
ignores a high or lite pin on that row. It also takes its backend from
|
|
93
|
+
whatever `message.dm` is pinned to.
|
|
94
|
+
- **High tier is opt-in, never auto-selected.** No shipped surface
|
|
95
|
+
defaults to high. The only `high`-tagged ProcessKey out of the box is
|
|
96
|
+
`delegated_task_heavy`, and that stays behind the
|
|
97
|
+
`delegatedTaskHeavyEnabled` config flag. You can still pin any *other*
|
|
98
|
+
ProcessKey to high here.
|
|
99
|
+
- **Codex and Gemini ship no separate high model.** On those backends
|
|
100
|
+
the high tier falls back to the medium model, so pinning them to high
|
|
101
|
+
changes nothing unless you also pick a specific higher model in the
|
|
102
|
+
row.
|
|
101
103
|
- To change the backend for *every* ProcessKey at once, use the global
|
|
102
104
|
default instead — see Related.
|
|
103
105
|
|