@aitne-sh/aitne 0.1.12 → 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/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 +7 -2
- 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 +21 -13
- 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 +7 -6
- 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 +22 -21
- package/agent-assets/docs/features/routines/weekly-review.md +57 -51
- package/agent-assets/docs/features/wiki/commands.md +27 -21
- package/agent-assets/docs/features/wiki/cost-and-approval.md +28 -23
- package/agent-assets/docs/features/wiki/dashboard.md +21 -23
- 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 +3 -4
- 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 +17 -16
- 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 +55 -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 +11 -12
- 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 +9 -11
- 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/skills/agent-create/SKILL.md +39 -5
- package/agent-assets/skills/background-task/SKILL.md +9 -4
- package/agent-assets/skills/board/SKILL.md +8 -9
- package/agent-assets/skills/browser-task/SKILL.md +2 -0
- package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +2 -1
- package/agent-assets/skills/schedule/SKILL.md +6 -5
- 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 +5 -2
- 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 +8 -3
- package/agent-assets/templates/_manifest.json +1 -0
- package/agent-assets/templates/knowledge/sources/_index.md +19 -0
- package/package.json +4 -4
|
@@ -21,9 +21,7 @@ summary: |
|
|
|
21
21
|
section: wiki
|
|
22
22
|
tags:
|
|
23
23
|
- wiki
|
|
24
|
-
-
|
|
25
|
-
- fts
|
|
26
|
-
- reference
|
|
24
|
+
- knowledge
|
|
27
25
|
status: stable
|
|
28
26
|
ask_examples:
|
|
29
27
|
- How does !ask find the right wiki pages?
|
|
@@ -36,7 +34,7 @@ ask_examples:
|
|
|
36
34
|
- What is fts_wiki?
|
|
37
35
|
locale: en-US
|
|
38
36
|
created: 2026-05-21
|
|
39
|
-
updated: 2026-
|
|
37
|
+
updated: 2026-07-01
|
|
40
38
|
keywords:
|
|
41
39
|
- wiki search
|
|
42
40
|
- fts_wiki
|
|
@@ -83,9 +81,9 @@ The wiki exposes two read paths the skills use to find content:
|
|
|
83
81
|
A short, human-readable list with one bullet per wiki page, kept
|
|
84
82
|
current by every `!compile` run. Good for "give me the lay of the
|
|
85
83
|
land" queries.
|
|
86
|
-
2. **`fts_wiki`** — a
|
|
87
|
-
daemon syncs on every successful disk
|
|
88
|
-
page that mentions X" queries.
|
|
84
|
+
2. **`fts_wiki`** — a full-text search index (a content-less SQLite
|
|
85
|
+
FTS5 virtual table) the daemon syncs on every successful disk
|
|
86
|
+
write. Good for "find any page that mentions X" queries.
|
|
89
87
|
|
|
90
88
|
Both surfaces are read-only consumers; only `!compile` writes the
|
|
91
89
|
catalogue, and only the wiki API write endpoints update `fts_wiki`.
|
|
@@ -139,9 +137,9 @@ CREATE VIRTUAL TABLE IF NOT EXISTS fts_wiki USING fts5(
|
|
|
139
137
|
```
|
|
140
138
|
|
|
141
139
|
The `unicode61` tokenizer with `remove_diacritics 2` matches the
|
|
142
|
-
mail FTS table for consistency. CJK
|
|
143
|
-
|
|
144
|
-
mixed-script wikis.
|
|
140
|
+
mail FTS table for consistency. CJK (Chinese, Japanese, Korean)
|
|
141
|
+
content is handled by code-point breaking, so searches work across
|
|
142
|
+
those scripts and mixed-script wikis.
|
|
145
143
|
|
|
146
144
|
### Layer prefixes
|
|
147
145
|
|
|
@@ -157,9 +155,9 @@ The path classifier maps each on-disk file to one of six layers:
|
|
|
157
155
|
Only four of these are actually indexed. `upsertWikiFulltextRow`
|
|
158
156
|
**drops `log` and `inbox` rows** before insert: `log.md` is an
|
|
159
157
|
append-only audit trail and `00_inbox/` is human-only, so indexing
|
|
160
|
-
them would bury wiki and raw matches under log noise. So the
|
|
161
|
-
you ever see in `fts_wiki.layer` are `raw`, `wiki`, `output`,
|
|
162
|
-
`meta`.
|
|
158
|
+
them would bury wiki and raw matches under log noise. So the only
|
|
159
|
+
values you ever see in `fts_wiki.layer` are `raw`, `wiki`, `output`,
|
|
160
|
+
and `meta`.
|
|
163
161
|
|
|
164
162
|
Searches can filter by layer to restrict the result set — e.g.
|
|
165
163
|
`layer=wiki` for only canonical pages, not raw notes.
|
|
@@ -173,7 +171,7 @@ evidence. The query supports:
|
|
|
173
171
|
|
|
174
172
|
- `q` — the search query. Each whitespace-separated token is quoted
|
|
175
173
|
and joined by implicit AND, so a multi-word query narrows the
|
|
176
|
-
result set. (Tokens are quoted to
|
|
174
|
+
result set. (Tokens are quoted to neutralize FTS5's `AND`/`OR`/
|
|
177
175
|
`NOT`/`NEAR` operator vocabulary — typing literally `rust AND go`
|
|
178
176
|
matches those words, it does not parse as a boolean.)
|
|
179
177
|
- `layer` — restrict to a single indexed layer (`raw` / `wiki` /
|
|
@@ -187,8 +185,8 @@ evidence. The query supports:
|
|
|
187
185
|
|
|
188
186
|
Each result row carries `path`, `layer`, `title`, a body `snippet`
|
|
189
187
|
(FTS5 `snippet()` output, `<mark>`-wrapped), `mtime` so the caller
|
|
190
|
-
can rank by recency, and a BM25 `rank` (lower is better,
|
|
191
|
-
weighted above `body`).
|
|
188
|
+
can rank by recency, and a BM25 relevance `rank` (lower is better,
|
|
189
|
+
`title` weighted above `body`).
|
|
192
190
|
|
|
193
191
|
There is no dashboard content-search bar today — the FTS surface is
|
|
194
192
|
used by the agent, not the user UI. The dashboard timeline
|
|
@@ -222,7 +220,7 @@ A simplified flow for `!ask <question>`:
|
|
|
222
220
|
question's key terms.
|
|
223
221
|
2. It reads `10_raw/` notes only when the wiki pages need source
|
|
224
222
|
verification.
|
|
225
|
-
3. The LLM
|
|
223
|
+
3. The LLM synthesizes an answer from the pages it pulled.
|
|
226
224
|
4. The answer is written to
|
|
227
225
|
`30_outputs/<YYYY-MM-DD>-<slug>.md` (the date-prefixed output
|
|
228
226
|
shape the `OUTPUT_RE` path check enforces). The file records the
|
|
@@ -24,7 +24,6 @@ tags:
|
|
|
24
24
|
- wiki
|
|
25
25
|
- workspaces
|
|
26
26
|
- config
|
|
27
|
-
- core
|
|
28
27
|
status: stable
|
|
29
28
|
ask_examples:
|
|
30
29
|
- What is a wiki workspace?
|
|
@@ -37,7 +36,7 @@ ask_examples:
|
|
|
37
36
|
- Can two wikis live in nested folders?
|
|
38
37
|
locale: en-US
|
|
39
38
|
created: 2026-05-21
|
|
40
|
-
updated: 2026-
|
|
39
|
+
updated: 2026-07-01
|
|
41
40
|
keywords:
|
|
42
41
|
- wiki workspace
|
|
43
42
|
- workspace
|
|
@@ -87,10 +86,10 @@ config_keys:
|
|
|
87
86
|
# Wiki Workspaces, Vaults, and Write Strategy
|
|
88
87
|
|
|
89
88
|
A **wiki workspace** is one row in the `wiki_workspaces` table plus
|
|
90
|
-
the directory tree it points at. Aitne
|
|
91
|
-
workspace
|
|
92
|
-
`default`.
|
|
93
|
-
|
|
89
|
+
the directory tree it points at. Aitne starts with no active
|
|
90
|
+
workspace. The first run of the Enable flow creates one named
|
|
91
|
+
`default`. You can run as many side-by-side wikis as you have
|
|
92
|
+
distinct knowledge domains — one per subject is a common setup.
|
|
94
93
|
|
|
95
94
|
## Internal vs external mode
|
|
96
95
|
|
|
@@ -109,8 +108,8 @@ Path-collision rules apply to both modes:
|
|
|
109
108
|
- Two wiki workspaces may not nest — neither root can be inside the other.
|
|
110
109
|
|
|
111
110
|
The dashboard probe (`POST /api/wiki/workspaces/probe`) runs these
|
|
112
|
-
checks live before the workspace row is written and
|
|
113
|
-
|
|
111
|
+
checks live before the workspace row is written, and shows a
|
|
112
|
+
plain-language error if any rule is broken.
|
|
114
113
|
|
|
115
114
|
## The layered layout
|
|
116
115
|
|
|
@@ -126,19 +125,19 @@ top-level subdirectories plus a workspace-root `log.md`:
|
|
|
126
125
|
| `90_meta/` | Wiki agent | Taxonomy (`taxonomy.md`), schemas, health reports (`90_meta/health/<date>.md`), migration records (`90_meta/health/pre-migrate-<date>/`). |
|
|
127
126
|
| `log.md` | Wiki agent (append-only) | One line per write. Drives the dashboard timeline. |
|
|
128
127
|
|
|
129
|
-
The DM agent can read wiki search and index routes, but only the
|
|
128
|
+
The DM agent can read the wiki search and index routes, but only the
|
|
130
129
|
wiki process keys (`wiki.ingest_url`, `wiki.compile`, `wiki.ask`,
|
|
131
|
-
`wiki.lint`, `wiki.trace`, `wiki.connect`)
|
|
132
|
-
layers.
|
|
133
|
-
|
|
134
|
-
writes to `00_inbox
|
|
130
|
+
`wiki.lint`, `wiki.trace`, `wiki.connect`) may write into these
|
|
131
|
+
layers. Every write funnels through one route,
|
|
132
|
+
`POST /api/wiki/:workspace/files/:path`, which checks which layer the
|
|
133
|
+
path lands in and always rejects writes to `00_inbox/`.
|
|
135
134
|
|
|
136
135
|
## Multi-workspace addressing
|
|
137
136
|
|
|
138
|
-
Every wiki bang command
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
137
|
+
Every wiki bang command takes an optional `@<name>` token right
|
|
138
|
+
after the bang to aim at a specific workspace. Aitne reads this token
|
|
139
|
+
before the command parses the rest of the line, so multi-word topics
|
|
140
|
+
and comma-separated arguments still work as usual:
|
|
142
141
|
|
|
143
142
|
```
|
|
144
143
|
!compile @research full
|
|
@@ -146,15 +145,15 @@ multi-word topics and comma-separated arguments work as normal:
|
|
|
146
145
|
!connect @research diffusion models, score matching
|
|
147
146
|
```
|
|
148
147
|
|
|
149
|
-
|
|
150
|
-
in practice the oldest active workspace (lowest id)
|
|
151
|
-
named `default` on a fresh install, or the next-oldest
|
|
152
|
-
workspace if `default` has been archived.
|
|
148
|
+
Leave the token off and the command targets the **default**
|
|
149
|
+
workspace — in practice the oldest active workspace (lowest id). That
|
|
150
|
+
is the one named `default` on a fresh install, or the next-oldest
|
|
151
|
+
active workspace if `default` has been archived.
|
|
153
152
|
|
|
154
|
-
A workspace name after `@` must start with a letter or digit and
|
|
155
|
-
contain only letters, digits, `.`, `_`, or `-` (max 64
|
|
156
|
-
invalid token
|
|
157
|
-
|
|
153
|
+
A workspace name after `@` must start with a letter or digit, and the
|
|
154
|
+
rest may contain only letters, digits, `.`, `_`, or `-` (max 64
|
|
155
|
+
chars). An invalid token gets a usage error rather than a silent
|
|
156
|
+
fall-back to the default.
|
|
158
157
|
|
|
159
158
|
See [guides/multiple-wikis-for-multiple-domains](../../guides/multiple-wikis-for-multiple-domains.md)
|
|
160
159
|
for a walkthrough.
|
|
@@ -172,18 +171,18 @@ write. Three values:
|
|
|
172
171
|
running). Used for external vaults that live in sandboxed
|
|
173
172
|
locations (typically iCloud-synced vaults) where direct fs writes
|
|
174
173
|
fail with `EPERM` / `EACCES` / `EROFS` / `EBUSY`.
|
|
175
|
-
- **`auto`** —
|
|
176
|
-
|
|
177
|
-
|
|
174
|
+
- **`auto`** — tries `fs` first, falls back to `cli` on those
|
|
175
|
+
sandbox error codes, and saves the value it settled on back to the
|
|
176
|
+
row so later writes skip the check.
|
|
178
177
|
|
|
179
178
|
Internal workspaces are pinned to `fs`. External workspaces start in
|
|
180
|
-
`auto` and
|
|
181
|
-
`/settings/wiki` if you need to force one path or the other (
|
|
182
|
-
test the CLI path on a non-sandboxed vault).
|
|
179
|
+
`auto` and tune themselves. You can override the resolved value from
|
|
180
|
+
`/settings/wiki` if you need to force one path or the other (for
|
|
181
|
+
example, to test the CLI path on a non-sandboxed vault).
|
|
183
182
|
|
|
184
|
-
The resolved strategy
|
|
185
|
-
|
|
186
|
-
|
|
183
|
+
The resolved strategy shows up in the workspace API response and on
|
|
184
|
+
the `/settings/wiki` row, so you can always see which path (`fs` or
|
|
185
|
+
`cli`) `auto` settled on. The full design is in
|
|
187
186
|
WIKI_BUILDER_DESIGN.md §P2.B / §8.
|
|
188
187
|
|
|
189
188
|
## Dispatch mode (`parallel` / `serial`)
|
|
@@ -191,13 +190,13 @@ WIKI_BUILDER_DESIGN.md §P2.B / §8.
|
|
|
191
190
|
`!ingest` honours the per-workspace **dispatch mode** in
|
|
192
191
|
`/settings/wiki`:
|
|
193
192
|
|
|
194
|
-
- **Parallel** (default): all URLs
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
limits at the URL host.
|
|
198
|
-
- **Serial**: URLs
|
|
199
|
-
session starts only after the previous one
|
|
200
|
-
|
|
193
|
+
- **Parallel** (default): all URLs run at once, up to the per-URL
|
|
194
|
+
concurrency cap (`wiki_workspaces.concurrency_cap`, default `3`,
|
|
195
|
+
valid range 1–10). Fastest, with a small risk of tripping rate
|
|
196
|
+
limits at the URL's host.
|
|
197
|
+
- **Serial**: URLs run in the order you submitted them; each agent
|
|
198
|
+
session starts only after the previous one finishes. Slower, but
|
|
199
|
+
the budget and request rate stay predictable.
|
|
201
200
|
|
|
202
201
|
The acknowledgement DM tells you which mode ran
|
|
203
202
|
(`in parallel` / `serially`).
|
|
@@ -205,10 +204,10 @@ The acknowledgement DM tells you which mode ran
|
|
|
205
204
|
## Language
|
|
206
205
|
|
|
207
206
|
`wiki_workspaces.language` is the workspace's content language. It
|
|
208
|
-
defaults to `en` and is
|
|
209
|
-
— see WIKI_BUILDER_DESIGN.md §14 Q2 for the reasoning.
|
|
210
|
-
|
|
211
|
-
|
|
207
|
+
defaults to `en` and is separate from `runtimeSettings.primaryLanguage`
|
|
208
|
+
— see WIKI_BUILDER_DESIGN.md §14 Q2 for the reasoning. Pick any
|
|
209
|
+
language tag from the picker in `/settings/wiki`; Aitne passes that
|
|
210
|
+
value to the wiki skills as the target language for compiled
|
|
212
211
|
articles, ask answers, and trace / connect outputs.
|
|
213
212
|
|
|
214
213
|
The wiki language does **not** cascade from your primary language at
|
|
@@ -217,16 +216,16 @@ wiki in English, and vice versa.
|
|
|
217
216
|
|
|
218
217
|
## Archive vs delete
|
|
219
218
|
|
|
220
|
-
- **Archive** —
|
|
219
|
+
- **Archive** — sets `active=0` on the row but keeps the on-disk
|
|
221
220
|
data and the row's metadata. Bang commands cannot target an
|
|
222
|
-
archived workspace; the dashboard hides it from the active list
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
- **Delete** — drops the row.
|
|
226
|
-
external workspaces (the daemon never deletes
|
|
227
|
-
|
|
228
|
-
`$PA_DATA_DIR/context/knowledge/wiki/<name>` — recover
|
|
229
|
-
|
|
221
|
+
archived workspace; the dashboard hides it from the active list and
|
|
222
|
+
tucks it into an "Archived" collapsible. Re-enable the workspace to
|
|
223
|
+
unarchive it.
|
|
224
|
+
- **Delete** — drops the row. The on-disk data is **not** removed for
|
|
225
|
+
external workspaces (the daemon never deletes your vault). For
|
|
226
|
+
internal workspaces, the disk tree is also left in place under
|
|
227
|
+
`$PA_DATA_DIR/context/knowledge/wiki/<name>` — to recover, create a
|
|
228
|
+
workspace again with the same name.
|
|
230
229
|
|
|
231
230
|
## Fields and defaults reference
|
|
232
231
|
|
|
@@ -250,5 +249,5 @@ Quick map between the dashboard knobs and the `wiki_workspaces` row:
|
|
|
250
249
|
| Active | `active` | `1` |
|
|
251
250
|
|
|
252
251
|
`dm_agent_write_enabled=0` is the safe default — the DM agent can
|
|
253
|
-
only call the read-side wiki routes
|
|
254
|
-
`wiki.*` sessions
|
|
252
|
+
only call the read-side wiki routes. Writes happen inside dedicated
|
|
253
|
+
`wiki.*` sessions that bang commands spawn.
|
|
@@ -18,7 +18,6 @@ summary: |
|
|
|
18
18
|
Markdown files.
|
|
19
19
|
section: getting-started
|
|
20
20
|
tags:
|
|
21
|
-
- core
|
|
22
21
|
- getting-started
|
|
23
22
|
- backends
|
|
24
23
|
status: stable
|
|
@@ -42,7 +41,7 @@ keywords:
|
|
|
42
41
|
- markdown memory
|
|
43
42
|
- backends
|
|
44
43
|
created: 2026-04-25
|
|
45
|
-
updated: 2026-
|
|
44
|
+
updated: 2026-07-01
|
|
46
45
|
context_files:
|
|
47
46
|
- state/today.md
|
|
48
47
|
- plans/roadmap.md
|
|
@@ -59,7 +58,7 @@ related:
|
|
|
59
58
|
# What is Aitne?
|
|
60
59
|
|
|
61
60
|
Aitne is a local-first personal AI agent. It runs as a long-running
|
|
62
|
-
daemon on your own machine, drives Claude Code, Codex CLI, Gemini
|
|
61
|
+
background program (a daemon) on your own machine, drives Claude Code, Codex CLI, Gemini
|
|
63
62
|
CLI, or OpenCode (`@opencode-ai/sdk` server) via provider API keys
|
|
64
63
|
you register (with the CLI's local subscription login as a
|
|
65
64
|
fallback), and keeps all of its memory as plain Markdown files under
|
|
@@ -122,7 +121,7 @@ decides what (if anything) is worth telling you about.
|
|
|
122
121
|
|
|
123
122
|
- [Mail](../features/integrations/mail.md) — Gmail, Outlook, Yahoo,
|
|
124
123
|
iCloud, or any IMAP server. Searches your messages locally via
|
|
125
|
-
FTS5. Auto-classifies into
|
|
124
|
+
FTS5 (SQLite's built-in full-text search). Auto-classifies into
|
|
126
125
|
[reading list](../features/lifestyle/reading.md),
|
|
127
126
|
[receipts](../features/lifestyle/receipts.md), and
|
|
128
127
|
[travel bookings](../features/lifestyle/travel-bookings.md).
|
|
@@ -14,7 +14,6 @@ summary: |
|
|
|
14
14
|
pair a messaging app, and arrive at a green health pill.
|
|
15
15
|
section: getting-started
|
|
16
16
|
tags:
|
|
17
|
-
- core
|
|
18
17
|
- getting-started
|
|
19
18
|
- setup
|
|
20
19
|
status: stable
|
|
@@ -31,7 +30,7 @@ keywords:
|
|
|
31
30
|
- dashboard onboarding
|
|
32
31
|
- health pill
|
|
33
32
|
created: 2026-04-27
|
|
34
|
-
updated: 2026-
|
|
33
|
+
updated: 2026-07-01
|
|
35
34
|
related:
|
|
36
35
|
- getting-started/01-what-is-this
|
|
37
36
|
- getting-started/03-what-can-this-do
|
|
@@ -70,19 +69,19 @@ skippable in the wizard. Run through it once, top to bottom.
|
|
|
70
69
|
the daemon claims you as the owner. See
|
|
71
70
|
[Messaging Overview](../features/messaging/overview.md) for the
|
|
72
71
|
list of supported apps and what each one does well.
|
|
73
|
-
3. **Pick a main backend and register an API key.**
|
|
72
|
+
3. **Pick a main backend and register an API key.** This is the LLM
|
|
74
73
|
the agent uses for "think hard" turns (Claude / Codex / Gemini /
|
|
75
|
-
OpenCode)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
because most providers do not support running agents on
|
|
80
|
-
personal subscription. The same picker
|
|
74
|
+
OpenCode). Paste a provider API key — that is the supported way
|
|
75
|
+
to run the agent unattended (with no human signed in). If you skip
|
|
76
|
+
the key, the daemon falls back to whatever subscription login the
|
|
77
|
+
matching CLI already has on your machine, and the dashboard shows
|
|
78
|
+
a warning, because most providers do not support running agents on
|
|
79
|
+
a personal subscription. The same picker can instead point the
|
|
81
80
|
backend at a cloud provider (Bedrock / Vertex / Foundry / Azure
|
|
82
|
-
OpenAI / Gemini-Vertex)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
81
|
+
OpenAI / Gemini-Vertex) rather than a direct API key — the provider
|
|
82
|
+
dropdown on `/settings/models` is the single place for both direct
|
|
83
|
+
keys and cloud-provider credentials. The defaults are sensible, and
|
|
84
|
+
you can change them later from `/settings/models`.
|
|
86
85
|
Background: [Backends and Tiers](../concepts/backends-and-tiers.md).
|
|
87
86
|
4. **Skip integrations you do not need yet.** Mail, calendar, git,
|
|
88
87
|
Notion, Obsidian are all optional and re-runnable any time from
|
|
@@ -14,7 +14,6 @@ summary: |
|
|
|
14
14
|
granularity, with a link to the detailed feature doc for each.
|
|
15
15
|
section: getting-started
|
|
16
16
|
tags:
|
|
17
|
-
- core
|
|
18
17
|
- getting-started
|
|
19
18
|
- routines
|
|
20
19
|
- messaging
|
|
@@ -35,7 +34,7 @@ keywords:
|
|
|
35
34
|
- wiki
|
|
36
35
|
- lifestyle
|
|
37
36
|
created: 2026-04-27
|
|
38
|
-
updated: 2026-
|
|
37
|
+
updated: 2026-07-01
|
|
39
38
|
related:
|
|
40
39
|
- getting-started/01-what-is-this
|
|
41
40
|
- getting-started/02-first-steps
|
|
@@ -110,16 +109,17 @@ them — the agent reads what's there next time it runs.
|
|
|
110
109
|
|
|
111
110
|
## Build a personal wiki from what you DM
|
|
112
111
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
cited answer all stay on disk
|
|
116
|
-
API
|
|
112
|
+
Send the agent URLs, pastes, or notes and it builds them into a linked
|
|
113
|
+
Markdown wiki inside a dedicated workspace. The raw capture, the
|
|
114
|
+
synthesized article, and any cited answer all stay as files on disk. The
|
|
115
|
+
agent writes only through the daemon API, which keeps the folder layout
|
|
116
|
+
consistent.
|
|
117
117
|
|
|
118
118
|
- [Wiki Overview](../features/wiki/overview.md) — the workspace concept,
|
|
119
119
|
the `00_inbox` / `10_raw` / `20_wiki` / `30_outputs` layers, and the
|
|
120
120
|
approval gate on full rebuilds.
|
|
121
121
|
- [Wiki Commands](../features/wiki/commands.md) — `!ingest` (capture
|
|
122
|
-
URLs), `!compile` (
|
|
122
|
+
URLs), `!compile` (synthesize), `!ask` (cited Q&A), `!lint` /
|
|
123
123
|
`!trace` / `!connect` (audit, history, bridges), `!wiki` (status).
|
|
124
124
|
- [Build Your Wiki](../guides/build-your-wiki.md) — the first-day
|
|
125
125
|
walkthrough from empty workspace to first answered question.
|
|
@@ -15,7 +15,6 @@ aliases:
|
|
|
15
15
|
- day zero
|
|
16
16
|
section: getting-started
|
|
17
17
|
tags:
|
|
18
|
-
- core
|
|
19
18
|
- getting-started
|
|
20
19
|
- setup
|
|
21
20
|
- integrations
|
|
@@ -52,7 +51,7 @@ context_files:
|
|
|
52
51
|
api_endpoints:
|
|
53
52
|
- POST /api/knowledge/import
|
|
54
53
|
created: 2026-04-25
|
|
55
|
-
updated: 2026-
|
|
54
|
+
updated: 2026-07-01
|
|
56
55
|
related:
|
|
57
56
|
- getting-started/02-first-steps
|
|
58
57
|
- getting-started/03-what-can-this-do
|
|
@@ -119,9 +118,9 @@ Send 3–5 DMs that read like introductions to a new assistant:
|
|
|
119
118
|
|
|
120
119
|
The agent appends each fact to the right `identity/*.md` file (work
|
|
121
120
|
facts → `identity/work.md`, people → `identity/people.md`, preferences →
|
|
122
|
-
`identity/personal.md`, and so on). Identity-class facts (legal
|
|
123
|
-
primary timezone)
|
|
124
|
-
|
|
121
|
+
`identity/personal.md`, and so on). Identity-class facts (your legal
|
|
122
|
+
name, your primary timezone) wait for you to confirm them instead of
|
|
123
|
+
being written automatically.
|
|
125
124
|
|
|
126
125
|
### Bootstrap from ChatGPT, Gemini, or anywhere else
|
|
127
126
|
|
|
@@ -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
|
|
|
@@ -262,7 +262,7 @@ in 2026-05 to trim morning-routine input tokens by ~24%.
|
|
|
262
262
|
|
|
263
263
|
## Observation
|
|
264
264
|
|
|
265
|
-
One row in the `observations` table. A change record a polling
|
|
265
|
+
One row in the `observations` table. A change record that a polling
|
|
266
266
|
integration (Obsidian, Git, Notion, calendar, mail, browser history)
|
|
267
267
|
or a `routine.fetch_window` pre-pass wrote into SQLite. The
|
|
268
268
|
`routine.activity_scan` is the consumer — there is no per-change
|
|
@@ -272,7 +272,8 @@ to break the agent-observing-its-own-writes loop. See
|
|
|
272
272
|
|
|
273
273
|
## ProcessKey
|
|
274
274
|
|
|
275
|
-
The
|
|
275
|
+
The typed string identifier (a "branded" string in the TypeScript code)
|
|
276
|
+
for a class of agent invocation, e.g.
|
|
276
277
|
`routine.morning_routine`, `message.dm`, `dashboard.docs_qa`. Drives
|
|
277
278
|
backend selection, skill manifest, agent profile, and task-flow
|
|
278
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
|
|