@aitne-sh/aitne 0.1.9 → 0.1.11
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 +41 -11
- package/agent-assets/agent-profiles/background-task.md +53 -0
- package/agent-assets/agent-profiles/conversational.md +1 -0
- package/agent-assets/agent-profiles/routine-fetch-window.md +14 -75
- package/agent-assets/agent-profiles/routine.md +1 -1
- package/agent-assets/agents/{hourly-check → activity-scan}/agent.md +22 -17
- package/agent-assets/agents/monthly-review/agent.md +6 -5
- package/agent-assets/docs/concepts/agent-day.md +6 -7
- package/agent-assets/docs/concepts/auth-health.md +23 -20
- package/agent-assets/docs/concepts/backends-and-tiers.md +13 -9
- package/agent-assets/docs/concepts/costs-and-quotas.md +14 -12
- package/agent-assets/docs/concepts/delegated-mode.md +18 -17
- package/agent-assets/docs/concepts/memory-model.md +16 -9
- package/agent-assets/docs/concepts/observations.md +24 -20
- package/agent-assets/docs/concepts/process-keys.md +10 -9
- package/agent-assets/docs/concepts/routines.md +34 -31
- package/agent-assets/docs/concepts/safety-and-execution.md +11 -7
- package/agent-assets/docs/concepts/safety-model.md +39 -25
- package/agent-assets/docs/concepts/skills.md +12 -10
- package/agent-assets/docs/features/integrations/browser-history.md +23 -18
- package/agent-assets/docs/features/integrations/calendar.md +28 -17
- package/agent-assets/docs/features/integrations/git.md +13 -11
- package/agent-assets/docs/features/integrations/github.md +22 -14
- package/agent-assets/docs/features/integrations/mail.md +25 -22
- package/agent-assets/docs/features/integrations/notion.md +35 -11
- package/agent-assets/docs/features/integrations/obsidian.md +8 -8
- package/agent-assets/docs/features/lifestyle/git.md +27 -23
- package/agent-assets/docs/features/lifestyle/reading.md +20 -11
- package/agent-assets/docs/features/lifestyle/receipts.md +11 -10
- package/agent-assets/docs/features/lifestyle/travel-bookings.md +4 -3
- package/agent-assets/docs/features/memory-files/agent-journal.md +53 -26
- package/agent-assets/docs/features/memory-files/agent-lessons.md +178 -0
- package/agent-assets/docs/features/memory-files/projects.md +11 -8
- package/agent-assets/docs/features/memory-files/roadmap.md +17 -14
- package/agent-assets/docs/features/memory-files/schedule.md +6 -3
- package/agent-assets/docs/features/memory-files/today.md +10 -7
- package/agent-assets/docs/features/memory-files/user-profile.md +14 -9
- package/agent-assets/docs/features/messaging/bang-commands.md +21 -6
- package/agent-assets/docs/features/messaging/overview.md +17 -14
- package/agent-assets/docs/features/messaging/telegram.md +10 -9
- package/agent-assets/docs/features/operations/activity-and-conversations.md +6 -5
- package/agent-assets/docs/features/operations/approvals.md +6 -5
- package/agent-assets/docs/features/operations/browser-tasks.md +184 -0
- package/agent-assets/docs/features/operations/cost-tracking.md +11 -1
- package/agent-assets/docs/features/operations/managed-chromium.md +4 -2
- package/agent-assets/docs/features/operations/notifications.md +11 -1
- package/agent-assets/docs/features/operations/quiet-hours.md +41 -11
- package/agent-assets/docs/features/operations/schedule-approaching.md +2 -2
- package/agent-assets/docs/features/routines/activity-scan.md +220 -0
- package/agent-assets/docs/features/routines/custom-routines.md +82 -134
- package/agent-assets/docs/features/routines/evening-review.md +23 -13
- package/agent-assets/docs/features/routines/morning-routine.md +7 -5
- package/agent-assets/docs/features/routines/weekly-review.md +24 -3
- package/agent-assets/docs/features/wiki/commands.md +4 -4
- package/agent-assets/docs/features/wiki/cost-and-approval.md +4 -3
- package/agent-assets/docs/features/wiki/dashboard.md +7 -6
- package/agent-assets/docs/features/wiki/overview.md +3 -3
- package/agent-assets/docs/features/wiki/search.md +5 -5
- package/agent-assets/docs/features/wiki/workspaces.md +2 -2
- package/agent-assets/docs/getting-started/01-what-is-this.md +3 -3
- package/agent-assets/docs/getting-started/02-first-steps.md +5 -3
- package/agent-assets/docs/getting-started/04-first-day.md +27 -30
- package/agent-assets/docs/glossary.md +8 -8
- package/agent-assets/docs/guides/add-a-custom-routine.md +122 -68
- package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +2 -2
- package/agent-assets/docs/guides/connect-a-new-mail-account.md +4 -2
- package/agent-assets/docs/guides/explore-with-trace-and-connect.md +5 -4
- package/agent-assets/docs/guides/install-and-run.md +2 -2
- package/agent-assets/docs/guides/maintain-wiki-health.md +2 -2
- package/agent-assets/docs/guides/pause-the-agent.md +27 -21
- package/agent-assets/docs/guides/reinstall-cleanly.md +2 -0
- package/agent-assets/docs/guides/setup-wizard.md +12 -6
- package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +6 -6
- package/agent-assets/docs/reference/api.md +26 -5
- package/agent-assets/docs/reference/cli-commands.md +3 -3
- package/agent-assets/docs/reference/config.md +51 -24
- package/agent-assets/docs/reference/disallowed-tools.md +6 -4
- package/agent-assets/docs/reference/keyboard-shortcuts.md +2 -2
- package/agent-assets/docs/reference/knowledge-layout.md +25 -12
- package/agent-assets/docs/reference/process-keys.md +9 -9
- package/agent-assets/docs/reference/skills.md +10 -6
- package/agent-assets/docs/troubleshooting/auth-failed.md +9 -8
- package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +16 -9
- package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +2 -2
- package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +32 -16
- package/agent-assets/docs/troubleshooting/observation-not-detected.md +26 -24
- package/agent-assets/docs/troubleshooting/quota-exhausted.md +7 -6
- package/agent-assets/docs/troubleshooting/wiki-write-failed.md +3 -3
- package/agent-assets/skills/agent-actions/SKILL.md +23 -39
- package/agent-assets/skills/agent-create/SKILL.md +26 -6
- package/agent-assets/skills/attach/SKILL.md +8 -27
- package/agent-assets/skills/background-task/SKILL.md +184 -0
- package/agent-assets/skills/background-task-reply/SKILL.md +100 -0
- package/agent-assets/skills/browser-history/SKILL.md +60 -29
- package/agent-assets/skills/browser-history-respond/SKILL.md +6 -1
- package/agent-assets/skills/browser-task/SKILL.md +33 -31
- package/agent-assets/skills/context/SKILL.md +26 -34
- package/agent-assets/skills/context/curation.json +12 -12
- package/agent-assets/skills/context/references/api.md +22 -20
- package/agent-assets/skills/context/references/required-frontmatter.md +10 -9
- package/agent-assets/skills/context/references/snapshot-files.md +16 -15
- package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +5 -5
- package/agent-assets/skills/context/seeds/frontmatter-requirements.seed.json +3 -3
- package/agent-assets/skills/docs-search/SKILL.md +19 -31
- package/agent-assets/skills/external-services/SKILL.delegated.claude.md +8 -95
- package/agent-assets/skills/external-services/SKILL.delegated.codex.md +8 -94
- package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +8 -94
- package/agent-assets/skills/external-services/SKILL.native.claude.md +15 -9
- package/agent-assets/skills/external-services/SKILL.native.codex.md +11 -5
- package/agent-assets/skills/external-services/SKILL.native.gemini.md +11 -5
- package/agent-assets/skills/external-services/references/exec-errors.md +32 -0
- package/agent-assets/skills/external-services/references/skills-crud.md +5 -5
- package/agent-assets/skills/gmail-lifestyle/SKILL.md +3 -2
- package/agent-assets/skills/gmail-lifestyle/references/receipts-api.md +4 -0
- package/agent-assets/skills/gmail-lifestyle/references/travel-bookings-api.md +9 -0
- package/agent-assets/skills/mail/SKILL.delegated.claude.md +13 -25
- package/agent-assets/skills/mail/SKILL.delegated.codex.md +3 -2
- package/agent-assets/skills/mail/SKILL.delegated.gemini.md +3 -2
- package/agent-assets/skills/mail/SKILL.md +12 -20
- package/agent-assets/skills/mail/SKILL.native.claude.md +24 -16
- package/agent-assets/skills/mail/SKILL.native.codex.md +16 -9
- package/agent-assets/skills/mail/SKILL.native.gemini.md +12 -6
- package/agent-assets/skills/mail/references/api.md +6 -1
- package/agent-assets/skills/mail/references/examples.md +2 -1
- package/agent-assets/skills/managed-tasks/SKILL.md +44 -77
- package/agent-assets/skills/managed-tasks/references/errors.md +25 -14
- package/agent-assets/skills/managed-tasks/references/output-path.md +33 -17
- package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +26 -16
- package/agent-assets/skills/management-policy/SKILL.md +36 -28
- package/agent-assets/skills/management-policy/curation.json +1 -1
- package/agent-assets/skills/management-policy/references/policy-workflow.md +30 -18
- package/agent-assets/skills/notify/SKILL.md +16 -13
- package/agent-assets/skills/notify/references/priority.md +42 -26
- package/agent-assets/skills/notion/SKILL.delegated.claude.md +1 -1
- package/agent-assets/skills/notion/SKILL.delegated.codex.md +1 -1
- package/agent-assets/skills/notion/SKILL.delegated.gemini.md +1 -1
- package/agent-assets/skills/notion/SKILL.md +18 -18
- package/agent-assets/skills/notion/SKILL.native.claude.md +4 -4
- package/agent-assets/skills/notion/SKILL.native.codex.md +3 -3
- package/agent-assets/skills/notion/SKILL.native.gemini.md +3 -3
- package/agent-assets/skills/observations/SKILL.md +9 -24
- package/agent-assets/skills/observations/references/fetch-fallback.md +22 -0
- package/agent-assets/skills/project-doc/SKILL.md +9 -6
- package/agent-assets/skills/project-doc/curation.json +3 -3
- package/agent-assets/skills/project-doc/seeds/project-shape.seed.json +2 -2
- package/agent-assets/skills/project-doc/seeds/slug-grammar.seed.json +3 -3
- package/agent-assets/skills/reading/SKILL.md +8 -42
- package/agent-assets/skills/reading/references/reading-taste.md +5 -5
- package/agent-assets/skills/roadmap/SKILL.md +3 -19
- package/agent-assets/skills/roadmap/references/api.md +23 -8
- package/agent-assets/skills/roadmap/references/horizon-tags.md +11 -0
- package/agent-assets/skills/roadmap/references/migration.md +8 -6
- package/agent-assets/skills/roadmap/references/retention.md +18 -0
- package/agent-assets/skills/schedule/SKILL.md +20 -28
- package/agent-assets/skills/schedule/references/importance.md +23 -0
- package/agent-assets/skills/schedule/references/recurrence-rule.md +26 -16
- package/agent-assets/skills/scheduled-managed-task/SKILL.md +46 -46
- package/agent-assets/skills/today/SKILL.md +38 -81
- package/agent-assets/skills/today/references/agent-plan-lifecycle.md +9 -4
- package/agent-assets/skills/today/references/agent-plan-revision.md +28 -0
- package/agent-assets/skills/today/references/today-skeleton.md +66 -0
- package/agent-assets/skills/today/seeds/agent-notes-flavors.seed.json +1 -1
- package/agent-assets/skills/today/seeds/section-shape.seed.json +6 -6
- package/agent-assets/skills/user-interview/SKILL.md +15 -90
- package/agent-assets/skills/user-interview/references/op-briefing.md +1 -1
- package/agent-assets/skills/user-interview/references/op-dm-handler.md +88 -0
- package/agent-assets/skills/user-interview/references/op-morning.md +2 -2
- package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +1 -1
- package/agent-assets/skills/user-profile/SKILL.md +16 -26
- package/agent-assets/skills/user-profile/curation.json +3 -3
- package/agent-assets/skills/user-profile/references/character-preferences.md +3 -3
- package/agent-assets/skills/wiki/wiki-ask/SKILL.md +1 -1
- package/agent-assets/skills/wiki/wiki-compile/SKILL.md +5 -4
- package/agent-assets/skills/wiki/wiki-connect/SKILL.md +32 -5
- package/agent-assets/skills/wiki/wiki-ingest/SKILL.md +6 -50
- package/agent-assets/skills/wiki/wiki-ingest/references/curl-errors.md +58 -0
- package/agent-assets/skills/wiki/wiki-lint/SKILL.md +20 -14
- package/agent-assets/skills/wiki/wiki-trace/SKILL.md +10 -5
- package/agent-assets/skills/wiki/wiki-vault-rules/SKILL.md +2 -0
- package/agent-assets/system-prompts/routine-research-cluster-update.md +71 -0
- package/agent-assets/task-flows/_partials/feedback-capture.md +30 -0
- package/agent-assets/task-flows/_partials/notion-acquire.notion.md +47 -21
- package/agent-assets/task-flows/background_task.md +81 -0
- package/agent-assets/task-flows/git.local_ahead.stale.md +1 -1
- package/agent-assets/task-flows/git.push.detected.md +1 -1
- package/agent-assets/task-flows/git.tag.created.md +1 -1
- 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.security_alert.md +1 -1
- package/agent-assets/task-flows/message.received.dm.md +11 -3
- package/agent-assets/task-flows/message.received.dm_first.md +8 -2
- package/agent-assets/task-flows/{routine.hourly_check.md → routine.activity_scan.md} +31 -23
- package/agent-assets/task-flows/{routine.hourly_check.triage.md → routine.activity_scan.triage.md} +3 -3
- package/agent-assets/task-flows/routine.evening_review.md +80 -0
- package/agent-assets/task-flows/routine.monthly_review.md +81 -8
- package/agent-assets/task-flows/routine.research_cluster_update.md +33 -19
- package/agent-assets/task-flows/routine.roadmap_refresh.md +2 -2
- package/agent-assets/task-flows/routine.today_refresh.md +1 -1
- package/agent-assets/task-flows/routine.weekly_review.md +124 -4
- package/agent-assets/task-flows/schedule.approaching.md +2 -2
- package/agent-assets/task-flows/scheduled.dm.md +77 -1
- package/agent-assets/task-flows/scheduled.task.md +7 -1
- package/agent-assets/task-flows/wiki.trace.md +1 -1
- package/agent-assets/templates/_manifest.json +2 -2
- package/agent-assets/templates/knowledge/dossiers/_index.md +1 -1
- package/agent-assets/templates/knowledge/dossiers/{hourly.md → activity-scan.md} +1 -1
- package/agent-assets/templates/policies/journal-format.md +1 -1
- package/agent-assets/templates/policies/mcp.md +1 -1
- package/agent-assets/templates/policies/routines/_index.md +1 -1
- package/agent-assets/templates/policies/routines/{hourly.md → activity-scan.md} +5 -5
- package/bin/aitne.mjs +45 -11
- package/package.json +6 -5
- package/scripts/commands/doctor.mjs +11 -2
- package/scripts/lib/process-identity.d.mts +46 -0
- package/scripts/lib/process-identity.mjs +193 -0
- package/scripts/lib/read-api-token.mjs +1 -1
- package/scripts/start.mjs +14 -4
- package/agent-assets/docs/features/routines/hourly-check.md +0 -205
|
@@ -1,46 +1,54 @@
|
|
|
1
1
|
---
|
|
2
2
|
schema_version: 1
|
|
3
3
|
slug: guides/add-a-custom-routine
|
|
4
|
-
title:
|
|
4
|
+
title: Create a Recurring Agent
|
|
5
5
|
id: add-a-custom-routine
|
|
6
6
|
aliases:
|
|
7
|
+
- recurring agent
|
|
8
|
+
- new agent
|
|
9
|
+
- user agent
|
|
7
10
|
- custom routine
|
|
8
|
-
- user-defined routine
|
|
9
11
|
- add a routine
|
|
10
12
|
- scheduled task
|
|
11
13
|
category: guides
|
|
12
14
|
summary: |
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
Make the agent run a prompt you write on a schedule you pick by
|
|
16
|
+
creating a user Agent — via the "New Agent" form on /agents or
|
|
17
|
+
POST /api/agents. The Markdown body (the prompt) becomes the task
|
|
18
|
+
prompt for every run; runs appear on the Agent's detail page.
|
|
16
19
|
section: add-a-custom-routine
|
|
17
20
|
tags:
|
|
18
21
|
- guides
|
|
22
|
+
- agents
|
|
19
23
|
- routines
|
|
20
24
|
- scheduler
|
|
21
25
|
- autonomous
|
|
22
26
|
- core
|
|
23
27
|
status: stable
|
|
24
28
|
ask_examples:
|
|
25
|
-
- How do I
|
|
26
|
-
- What can a custom routine do?
|
|
29
|
+
- How do I create a recurring agent?
|
|
27
30
|
- How do I schedule the agent to run on a cron?
|
|
31
|
+
- How do I add a custom routine?
|
|
32
|
+
- Where do I see my agent's runs?
|
|
28
33
|
locale: en-US
|
|
29
34
|
created: 2026-04-25
|
|
30
|
-
updated: 2026-
|
|
35
|
+
updated: 2026-06-10
|
|
31
36
|
keywords:
|
|
32
|
-
-
|
|
33
|
-
-
|
|
37
|
+
- recurring agent
|
|
38
|
+
- new agent
|
|
34
39
|
- cron
|
|
40
|
+
- schedule
|
|
35
41
|
- recurrence
|
|
36
|
-
-
|
|
37
|
-
-
|
|
42
|
+
- task prompt
|
|
43
|
+
- agent.task
|
|
38
44
|
ui_anchors:
|
|
39
|
-
- /
|
|
45
|
+
- /agents
|
|
40
46
|
api_endpoints:
|
|
41
|
-
-
|
|
47
|
+
- POST /api/agents
|
|
48
|
+
- GET /api/agents/{slug}/executions
|
|
49
|
+
- POST /api/agents/{slug}/run-now
|
|
42
50
|
context_files:
|
|
43
|
-
- policies/
|
|
51
|
+
- policies/agents/<slug>/agent.md
|
|
44
52
|
related:
|
|
45
53
|
- features/routines/custom-routines
|
|
46
54
|
- concepts/routines
|
|
@@ -48,76 +56,122 @@ related:
|
|
|
48
56
|
- concepts/backends-and-tiers
|
|
49
57
|
---
|
|
50
58
|
|
|
51
|
-
#
|
|
59
|
+
# Create a Recurring Agent
|
|
52
60
|
|
|
53
61
|
## Goal
|
|
54
62
|
|
|
55
|
-
Make the agent fire a particular kind of work on a schedule you pick
|
|
63
|
+
Make the agent fire a particular kind of work on a schedule you pick —
|
|
64
|
+
as a user **Agent** you can watch, tune, and toggle from `/agents`.
|
|
56
65
|
|
|
57
66
|
## Prerequisites
|
|
58
67
|
|
|
59
68
|
- Daemon running.
|
|
60
69
|
|
|
61
|
-
## Steps
|
|
62
|
-
|
|
63
|
-
1. Open `/
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
- **
|
|
68
|
-
|
|
69
|
-
`
|
|
70
|
-
|
|
71
|
-
- **
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
- **Backend tier** — `lite` (Haiku), `medium`
|
|
75
|
-
(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
- **
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
context
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
70
|
+
## Steps (dashboard)
|
|
71
|
+
|
|
72
|
+
1. Open **Agents** (`/agents`) and click **New Agent**.
|
|
73
|
+
2. Fill the form:
|
|
74
|
+
- **Name** — the human label in the agents list (e.g. "Daily
|
|
75
|
+
Digest").
|
|
76
|
+
- **ID** — lowercase kebab-case slug. It becomes the URL
|
|
77
|
+
(`/agents/<id>`) and the definition file
|
|
78
|
+
`policies/agents/<id>/agent.md`. Must not collide with an
|
|
79
|
+
existing Agent (built-in slugs are reserved too).
|
|
80
|
+
- **Schedule** — pick a frequency (hourly / daily / weekly /
|
|
81
|
+
monthly) and its fields, e.g. weekly on Tuesday at 11:00. An
|
|
82
|
+
optional toggle defers runs that land inside your quiet hours.
|
|
83
|
+
- **Backend engine / Model tier** — `lite` (Haiku-class), `medium`
|
|
84
|
+
(Sonnet-class), or `high` (Opus-class). See
|
|
85
|
+
[Backends and tiers](../concepts/backends-and-tiers.md).
|
|
86
|
+
- **Limits** — max turns, max budget (USD) per run, and timeout
|
|
87
|
+
(minutes).
|
|
88
|
+
- **Task prompt** — what the agent should do on each run. This text
|
|
89
|
+
becomes the Markdown body of `agent.md` and is the prompt the
|
|
90
|
+
agent receives every time it fires.
|
|
91
|
+
- An **Advanced (YAML)** toggle reveals the raw `agent.md` editor
|
|
92
|
+
for long-tail fields the form doesn't expose (tags, tools,
|
|
93
|
+
success criteria, error handling).
|
|
94
|
+
3. Save. The dashboard writes `policies/agents/<slug>/agent.md`
|
|
95
|
+
through the context vault and opens the new Agent's detail page;
|
|
96
|
+
the daemon imports the file without a restart.
|
|
97
|
+
|
|
98
|
+
## Steps (API)
|
|
99
|
+
|
|
100
|
+
`POST /api/agents` is the programmatic counterpart:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
curl -X POST http://localhost:8321/api/agents \
|
|
104
|
+
-H "Content-Type: application/json" \
|
|
105
|
+
-d '{
|
|
106
|
+
"slug": "tuesday-notion-sweep",
|
|
107
|
+
"name": "Tuesday Notion Sweep",
|
|
108
|
+
"description": "Weekly Notion inbox cleanup",
|
|
109
|
+
"schedule": { "kind": "cron", "expression": "0 11 * * 2" },
|
|
110
|
+
"backend": { "tier": "medium" },
|
|
111
|
+
"limits": { "max_budget_usd": 0.10 },
|
|
112
|
+
"prompt": "- Review my Notion inbox for items older than a week.\n- File or archive each one.\n- DM me a one-paragraph summary."
|
|
113
|
+
}'
|
|
103
114
|
```
|
|
104
115
|
|
|
105
|
-
|
|
106
|
-
|
|
116
|
+
- **`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.
|
|
118
|
+
- **`schedule`** takes one of two forms: a raw 5-field cron
|
|
119
|
+
(`{ "kind": "cron", "expression": "0 11 * * 2" }`, interpreted in
|
|
120
|
+
the daemon's timezone unless `schedule.timezone` is set) or a
|
|
121
|
+
structured rule (`{ "kind": "recurring", "recurrence": { "frequency":
|
|
122
|
+
"weekly", "daysOfWeek": ["tuesday"], "time": "11:00" } }`).
|
|
123
|
+
`/agents` is recurring-only — a one-time task belongs on
|
|
124
|
+
`POST /api/schedule` instead.
|
|
125
|
+
- **`backend.tier`** is optional; omitted, the Agent inherits the
|
|
126
|
+
`agent.task` process default (medium). `backend.process_key`
|
|
127
|
+
defaults to `agent.task` — you don't need to set it.
|
|
128
|
+
- **`limits`** defaults: 20 turns, $0.25 per run, 10-minute timeout.
|
|
129
|
+
- Success returns `201 { "status": "created", "slug": ... }`. A taken
|
|
130
|
+
slug returns `409 slug_collision`; validation failures return `400`
|
|
131
|
+
with a field-level `issues` list.
|
|
132
|
+
|
|
133
|
+
## Where to See Runs
|
|
134
|
+
|
|
135
|
+
- **`/agents`** lists every Agent with its schedule, enable toggle,
|
|
136
|
+
7-day metrics, and last run.
|
|
137
|
+
- **`/agents/<slug>`** is the detail page: the full definition, recent
|
|
138
|
+
execution history with results and cost, and a **Run now** button
|
|
139
|
+
(`POST /api/agents/<slug>/run-now`).
|
|
140
|
+
- **Activity** logs each run alongside everything else the agent does.
|
|
141
|
+
- Programmatically: `GET /api/agents/<slug>/executions`.
|
|
107
142
|
|
|
108
143
|
## Verification
|
|
109
144
|
|
|
110
|
-
-
|
|
111
|
-
|
|
145
|
+
- Click **Run now** on the detail page (or wait for the schedule); an
|
|
146
|
+
execution row should appear with its result and cost.
|
|
112
147
|
|
|
113
148
|
## If It Fails
|
|
114
149
|
|
|
115
|
-
-
|
|
116
|
-
|
|
117
|
-
-
|
|
118
|
-
|
|
150
|
+
- `409 slug_collision` — pick a different ID; built-in Agent slugs are
|
|
151
|
+
reserved.
|
|
152
|
+
- `400 invalid_definition` — fix the fields listed in `issues`.
|
|
153
|
+
- `400 one_shot_not_supported` — `/agents` is recurring-only; use
|
|
154
|
+
`POST /api/schedule` for one-time work.
|
|
155
|
+
- A prompt that hits the absolute-block guardrails: the run fires but
|
|
156
|
+
the offending tool call is logged as `blocked_absolute` in the
|
|
119
157
|
action log.
|
|
120
158
|
|
|
159
|
+
## Migrating From Custom Routines
|
|
160
|
+
|
|
161
|
+
The legacy custom-routine format —
|
|
162
|
+
`policies/routines/custom/<slug>.md` files with `cron:` frontmatter
|
|
163
|
+
and a `## Checks` body — is retired and those files no longer fire.
|
|
164
|
+
At the first daemon start after the upgrade, each valid file was
|
|
165
|
+
converted **once** into a user Agent with the same cron, tier, budget,
|
|
166
|
+
and enabled state; the `## Checks` body became the Agent's task
|
|
167
|
+
prompt, and the source file was kept but marked inert
|
|
168
|
+
(`enabled: false` plus a `migrated_to_agent: <slug>` marker). See
|
|
169
|
+
[Custom Routines (Retired)](../features/routines/custom-routines.md)
|
|
170
|
+
for collision and invalid-file handling.
|
|
171
|
+
|
|
121
172
|
## Related
|
|
122
173
|
|
|
123
|
-
- [Custom Routines](../features/routines/custom-routines.md)
|
|
174
|
+
- [Custom Routines (Retired)](../features/routines/custom-routines.md)
|
|
175
|
+
- [Routines](../concepts/routines.md)
|
|
176
|
+
- [ProcessKeys](../concepts/process-keys.md)
|
|
177
|
+
- [Backends and tiers](../concepts/backends-and-tiers.md)
|
|
@@ -27,7 +27,7 @@ ask_examples:
|
|
|
27
27
|
- What does the pre-compile snapshot do?
|
|
28
28
|
locale: en-US
|
|
29
29
|
created: 2026-05-12
|
|
30
|
-
updated: 2026-
|
|
30
|
+
updated: 2026-06-07
|
|
31
31
|
keywords:
|
|
32
32
|
- wiki budget
|
|
33
33
|
- wiki cost
|
|
@@ -126,7 +126,7 @@ before `!compile full`** enabled, Aitne runs:
|
|
|
126
126
|
git -C <vault> status --porcelain
|
|
127
127
|
# must be empty — dirty trees refuse the operation entirely
|
|
128
128
|
git -C <vault> add -A
|
|
129
|
-
git -C <vault> commit -m "aitne wiki: pre-compile snapshot <ISO-8601-ts>"
|
|
129
|
+
git -C <vault> commit --allow-empty -m "aitne wiki: pre-compile snapshot <ISO-8601-ts>"
|
|
130
130
|
```
|
|
131
131
|
|
|
132
132
|
before the compile session starts. The commit message is
|
|
@@ -27,7 +27,7 @@ ask_examples:
|
|
|
27
27
|
- How do I connect an Outlook mailbox?
|
|
28
28
|
locale: en-US
|
|
29
29
|
created: 2026-04-25
|
|
30
|
-
updated: 2026-
|
|
30
|
+
updated: 2026-06-07
|
|
31
31
|
keywords:
|
|
32
32
|
- mail
|
|
33
33
|
- imap
|
|
@@ -48,6 +48,7 @@ api_endpoints:
|
|
|
48
48
|
- /api/config/mail/app-password
|
|
49
49
|
config_keys:
|
|
50
50
|
- enabledMailProviders
|
|
51
|
+
- mailPollIntervalSeconds
|
|
51
52
|
context_files:
|
|
52
53
|
- state/today.md
|
|
53
54
|
---
|
|
@@ -96,7 +97,8 @@ kind authenticates differently:
|
|
|
96
97
|
4. Save. Registration succeeds regardless of the enabled-providers
|
|
97
98
|
setting (`enabledMailProviders`); the account goes live only when
|
|
98
99
|
you flip its **Enable** toggle on the mail card.
|
|
99
|
-
5. The
|
|
100
|
+
5. The account is picked up on the next mail poll tick (default every
|
|
101
|
+
180 seconds, configurable via `mailPollIntervalSeconds`).
|
|
100
102
|
|
|
101
103
|
## Verification
|
|
102
104
|
|
|
@@ -30,7 +30,7 @@ ask_examples:
|
|
|
30
30
|
- How do I run !trace against a non-default wiki workspace?
|
|
31
31
|
locale: en-US
|
|
32
32
|
created: 2026-05-12
|
|
33
|
-
updated: 2026-
|
|
33
|
+
updated: 2026-06-07
|
|
34
34
|
keywords:
|
|
35
35
|
- "!trace"
|
|
36
36
|
- "!connect"
|
|
@@ -187,6 +187,7 @@ Every report is a regular wiki file under `30_outputs/`. You can:
|
|
|
187
187
|
## Cost Envelope
|
|
188
188
|
|
|
189
189
|
Both commands run at Sonnet medium tier with a default $1.00
|
|
190
|
-
spend cap per run, identical to `!ask`. The
|
|
191
|
-
|
|
192
|
-
see
|
|
190
|
+
spend cap per run, identical to `!ask`. The **Settings → Wiki**
|
|
191
|
+
overview shows a single 7-day cost stat across all wiki commands;
|
|
192
|
+
to see per-command spend, filter the timeline on `/wiki/timeline`
|
|
193
|
+
by `wiki.trace` or `wiki.connect`.
|
|
@@ -29,7 +29,7 @@ ask_examples:
|
|
|
29
29
|
- How do I install the aitne npm package?
|
|
30
30
|
locale: en-US
|
|
31
31
|
created: 2026-04-25
|
|
32
|
-
updated: 2026-
|
|
32
|
+
updated: 2026-06-07
|
|
33
33
|
keywords:
|
|
34
34
|
- install
|
|
35
35
|
- first run
|
|
@@ -60,7 +60,7 @@ through the setup wizard.
|
|
|
60
60
|
Google (`GEMINI_API_KEY` / `GOOGLE_API_KEY`). API keys are the
|
|
61
61
|
recommended and provider-supported way to run Aitne. If you skip
|
|
62
62
|
the key, Aitne falls back to the corresponding CLI's local
|
|
63
|
-
subscription login (`claude`, `codex login`, `gemini
|
|
63
|
+
subscription login (`claude auth login`, `codex login`, `gemini`); see
|
|
64
64
|
[Costs and Quotas](../concepts/costs-and-quotas.md) for the trade-
|
|
65
65
|
offs and the provider policies that apply.
|
|
66
66
|
- The CLI binary for whichever backend you pick (Claude Code, Codex
|
|
@@ -28,7 +28,7 @@ ask_examples:
|
|
|
28
28
|
- What is a taxonomy candidate?
|
|
29
29
|
locale: en-US
|
|
30
30
|
created: 2026-05-12
|
|
31
|
-
updated: 2026-
|
|
31
|
+
updated: 2026-06-07
|
|
32
32
|
keywords:
|
|
33
33
|
- wiki health
|
|
34
34
|
- wiki lint
|
|
@@ -68,7 +68,7 @@ notes itself.
|
|
|
68
68
|
## When to Run
|
|
69
69
|
|
|
70
70
|
`!lint` runs on the `wiki.lint` process key (medium tier — Sonnet
|
|
71
|
-
by default, $
|
|
71
|
+
by default, $0.50 budget envelope) and never changes your notes.
|
|
72
72
|
Run it whenever you want a snapshot of wiki health. A practical
|
|
73
73
|
cadence:
|
|
74
74
|
|
|
@@ -23,7 +23,7 @@ ask_examples:
|
|
|
23
23
|
- Can I disable everything for a week?
|
|
24
24
|
locale: en-US
|
|
25
25
|
created: 2026-04-25
|
|
26
|
-
updated: 2026-
|
|
26
|
+
updated: 2026-06-10
|
|
27
27
|
keywords:
|
|
28
28
|
- pause agent
|
|
29
29
|
- stop agent
|
|
@@ -36,10 +36,10 @@ related:
|
|
|
36
36
|
- features/messaging/bang-commands
|
|
37
37
|
- concepts/routines
|
|
38
38
|
ui_anchors:
|
|
39
|
-
- /settings/
|
|
40
|
-
- /
|
|
39
|
+
- /settings/hours
|
|
40
|
+
- /agents
|
|
41
41
|
config_keys:
|
|
42
|
-
-
|
|
42
|
+
- activityScanEnabled
|
|
43
43
|
- monthlyReviewEnabled
|
|
44
44
|
- quietHoursStart
|
|
45
45
|
- quietHoursEnd
|
|
@@ -62,7 +62,7 @@ DM `!stop` to the agent on any paired messaging app. This is the
|
|
|
62
62
|
recommended way to go silent and the only one you need for most cases:
|
|
63
63
|
|
|
64
64
|
- It pauses **every** cron-driven routine — morning, evening, weekly,
|
|
65
|
-
monthly, and the
|
|
65
|
+
monthly, and the activity scan — not just one of them.
|
|
66
66
|
- Non-command DMs are declined with a paused notice (no LLM cost)
|
|
67
67
|
until you resume.
|
|
68
68
|
- The paused state is persisted, so a daemon restart does **not**
|
|
@@ -75,23 +75,29 @@ Resume with `!start` whenever you want the agent active again. See
|
|
|
75
75
|
|
|
76
76
|
## Finer-grained control from the dashboard
|
|
77
77
|
|
|
78
|
-
If you want to mute specific behaviour rather than pause everything
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
78
|
+
If you want to mute specific behaviour rather than pause everything:
|
|
79
|
+
|
|
80
|
+
1. **Disable the activity scan** — open `/agents/activity-scan` and click
|
|
81
|
+
**Disable**. This leaves the morning, evening, weekly, and monthly
|
|
82
|
+
routines running. (The agent's enable switch replaced the legacy
|
|
83
|
+
`activityScanEnabled` config key, now a deprecated fallback.)
|
|
84
|
+
2. **Disable the monthly review** — open `/agents/monthly-review` and
|
|
85
|
+
click **Disable** (it ships disabled by default; the agent's enable
|
|
86
|
+
switch replaced the legacy `monthlyReviewEnabled` config key).
|
|
87
|
+
3. **Silence notifications without pausing work** — on `/settings/hours`
|
|
88
|
+
("Hours & Notifications"), set an extended quiet hours window: e.g.
|
|
89
|
+
`quietHoursStart: "00:00"`, `quietHoursEnd: "23:59"`. Both fields
|
|
90
|
+
take an `HH:MM` string. Routines still run; they just don't notify
|
|
91
|
+
you.
|
|
89
92
|
|
|
90
93
|
Morning (fires at the day boundary, default 04:00), evening (18:00),
|
|
91
|
-
and weekly (Fri
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
and weekly (Fri 19:00) reviews each have a per-routine Enable/Disable
|
|
95
|
+
toggle on the `/agents` page — open `/agents/<slug>` (e.g.
|
|
96
|
+
`/agents/weekly-review`) and click Disable (a stop-warning confirmation
|
|
97
|
+
appears for these system agents). To halt all of them at once, use
|
|
98
|
+
`!stop` above instead. Each routine's instructions (its rulebook) are
|
|
99
|
+
edited on the same page's **Rulebook** tab
|
|
100
|
+
(`/agents/<slug>?tab=rulebook`).
|
|
95
101
|
|
|
96
102
|
## Last resort: stop the daemon
|
|
97
103
|
|
|
@@ -111,7 +117,7 @@ temporary pause that survives across days, prefer `!stop`. Restart with
|
|
|
111
117
|
|
|
112
118
|
- A routine still fires after `!stop`: confirm the pause registered by
|
|
113
119
|
checking `!help` or the dashboard banner; re-send `!stop`.
|
|
114
|
-
- A
|
|
120
|
+
- A setting on `/settings/hours` did not take effect: confirm it
|
|
115
121
|
saved — the dashboard's "Save" button must be clicked.
|
|
116
122
|
|
|
117
123
|
## Related
|
|
@@ -29,7 +29,7 @@ ask_examples:
|
|
|
29
29
|
- Where do I paste my API key?
|
|
30
30
|
locale: en-US
|
|
31
31
|
created: 2026-04-25
|
|
32
|
-
updated: 2026-
|
|
32
|
+
updated: 2026-06-10
|
|
33
33
|
keywords:
|
|
34
34
|
- setup
|
|
35
35
|
- wizard
|
|
@@ -57,7 +57,8 @@ ui_anchors:
|
|
|
57
57
|
- /setup
|
|
58
58
|
- /settings/models
|
|
59
59
|
- /connections
|
|
60
|
-
- /
|
|
60
|
+
- /agents
|
|
61
|
+
- /settings/hours
|
|
61
62
|
---
|
|
62
63
|
|
|
63
64
|
# Setup Wizard Walkthrough
|
|
@@ -187,10 +188,15 @@ character prompt referenced in Step 1 actually gets written.
|
|
|
187
188
|
|
|
188
189
|
## After the wizard
|
|
189
190
|
|
|
190
|
-
Routines are **not** configured in the wizard.
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
191
|
+
Routines are **not** configured in the wizard. Post-setup, each routine
|
|
192
|
+
is an agent under `/agents`: edit the per-cadence rulebooks (morning /
|
|
193
|
+
evening / weekly / activity scan) on the agent's Rulebook tab, create custom
|
|
194
|
+
recurring agents from the New Agent dialog, set the activity-scan switch
|
|
195
|
+
and cadence on `/agents/activity-scan`, and opt into the monthly review
|
|
196
|
+
by enabling `/agents/monthly-review`. Quiet hours, timezone, and
|
|
197
|
+
notification caps live on `/settings/hours` ("Hours & Notifications").
|
|
198
|
+
Repositories are also added after setup, from Connections →
|
|
199
|
+
Repositories.
|
|
194
200
|
|
|
195
201
|
## Verification
|
|
196
202
|
|
|
@@ -26,7 +26,7 @@ ask_examples:
|
|
|
26
26
|
- Why is Split greyed out?
|
|
27
27
|
locale: en-US
|
|
28
28
|
created: 2026-05-12
|
|
29
|
-
updated: 2026-
|
|
29
|
+
updated: 2026-06-07
|
|
30
30
|
keywords:
|
|
31
31
|
- external vault
|
|
32
32
|
- existing obsidian vault
|
|
@@ -68,11 +68,11 @@ vs Split**.
|
|
|
68
68
|
|
|
69
69
|
Open **`/settings/wiki`** in the dashboard (or open `/wiki` and follow
|
|
70
70
|
the **Enable Wiki** button — both land on the same page). If you have
|
|
71
|
-
no workspace yet, the page shows two
|
|
71
|
+
no workspace yet, the page shows two options:
|
|
72
72
|
|
|
73
|
-
- **Enable
|
|
74
|
-
- **
|
|
75
|
-
the folder picker.
|
|
73
|
+
- **Internal** → **Enable internal wiki** — uses the daemon-owned root.
|
|
74
|
+
- **Existing Obsidian vault** → **Use this folder** — points at the
|
|
75
|
+
path you choose with the folder picker.
|
|
76
76
|
|
|
77
77
|
### Picking the path
|
|
78
78
|
|
|
@@ -110,7 +110,7 @@ levels:
|
|
|
110
110
|
an existing wiki layout is detected, the wizard will surface the
|
|
111
111
|
Adopt / Migrate decision in Step 3.
|
|
112
112
|
|
|
113
|
-
The **
|
|
113
|
+
The **Use this folder** button is greyed out while the banner
|
|
114
114
|
is an error so you cannot fire a workspace-create that the daemon
|
|
115
115
|
already knows will fail.
|
|
116
116
|
|
|
@@ -28,7 +28,7 @@ ask_examples:
|
|
|
28
28
|
- How do I list registered backends?
|
|
29
29
|
locale: en-US
|
|
30
30
|
created: 2026-04-25
|
|
31
|
-
updated: 2026-
|
|
31
|
+
updated: 2026-06-08
|
|
32
32
|
keywords:
|
|
33
33
|
- API
|
|
34
34
|
- REST
|
|
@@ -54,7 +54,7 @@ The daemon serves a single Hono app on `127.0.0.1:PA_API_PORT` (default
|
|
|
54
54
|
`8321`). Almost all endpoints are mounted under `/api/*`; the lone
|
|
55
55
|
exception is the GitHub webhook receiver, mounted at root `/webhook/github`.
|
|
56
56
|
**Source of truth:** `packages/daemon/src/api/server.ts` (`createApp`)
|
|
57
|
-
registers most route groups, with
|
|
57
|
+
registers most route groups, with one post-compose mount in
|
|
58
58
|
`packages/daemon/src/bootstrap/api.ts` (the docs corpus + docs-QA, wired
|
|
59
59
|
only after the indexer handle exists). Each group lives in its own file
|
|
60
60
|
or directory under `packages/daemon/src/api/routes/`.
|
|
@@ -93,13 +93,13 @@ callers pass it as `Authorization: Bearer <token>`.
|
|
|
93
93
|
| Activity sources | `/api/activity-sources/*` | `activity-sources.ts` | Activity feed sources. |
|
|
94
94
|
| Entities | `/api/entities/*` | `entities.ts` | Entity registry CRUD. |
|
|
95
95
|
| SoT bindings | `/api/sot-bindings/*` | `sot-bindings.ts` | Source-of-truth bindings (vault ↔ daemon). |
|
|
96
|
-
| Voice | `/api/voice/*` | `voice.ts` |
|
|
96
|
+
| Voice | `/api/voice/*` | `voice.ts` | Whisper model install / status / weight-removal opt-in surface for the dashboard. |
|
|
97
97
|
|
|
98
98
|
### Integrations
|
|
99
99
|
|
|
100
100
|
| Group | Path | Source | Purpose |
|
|
101
101
|
|---|---|---|---|
|
|
102
|
-
| Mail | `/api/mail/*` | `mail
|
|
102
|
+
| Mail | `/api/mail/*` | `mail/` | Multi-provider mail proxy (Gmail / Outlook / Yahoo / iCloud / IMAP) + FTS5 local search. |
|
|
103
103
|
| Calendar | `/api/calendar/*` | `calendar.ts` | Google Calendar proxy. |
|
|
104
104
|
| Apple Calendar | `/api/apple-calendar/*` | `apple-calendar.ts` | macOS Calendar.app bridge. |
|
|
105
105
|
| Notion | `/api/notion/*` | `notion.ts` | Notion proxy. |
|
|
@@ -107,7 +107,7 @@ callers pass it as `Authorization: Bearer <token>`.
|
|
|
107
107
|
| Git | `/api/git/*`, `/api/git-accounts/*` | `git.ts`, `git-accounts.ts`, `git-templates.ts` | Read-only git proxy (`/api/git/{log,diff,show}`), repo templates (`/api/git/templates/*`), and git-account CRUD (`/api/git-accounts/*`). |
|
|
108
108
|
| Repositories | `/api/repositories/*` | `repositories.ts` | Unified repository CRUD (replaces split Git/GitHub settings). |
|
|
109
109
|
| GitHub | `/api/github/*`, `POST /webhook/github` | `github.ts` | GitHub proxy and webhook receiver (mounted under `/`, not `/api`). |
|
|
110
|
-
| Integrations | `/api/integrations/*` | `integrations
|
|
110
|
+
| Integrations | `/api/integrations/*` | `integrations/`, `integrations-reconcile.ts` | Integration mode CRUD (`direct \| delegated \| native \| disabled`), live probe endpoint, mode reconciliation. |
|
|
111
111
|
| Delegated sync | `/api/delegated/*`, `/api/delegated-sync/*` | `delegated.ts`, `delegated-sync.ts` | Delegated worker control + opt-in cadence config. |
|
|
112
112
|
| MCP | `/api/mcp/*` | `mcp.ts` | Per-session MCP materializer. |
|
|
113
113
|
|
|
@@ -129,6 +129,27 @@ callers pass it as `Authorization: Bearer <token>`.
|
|
|
129
129
|
| Books | `/api/books/*` | `books.ts` | Reading-list CRUD. |
|
|
130
130
|
| Travel bookings | `/api/travel-bookings/*` | `travel-bookings.ts` | Travel-booking CRUD. |
|
|
131
131
|
|
|
132
|
+
### Feedback learning
|
|
133
|
+
|
|
134
|
+
All three routes are `RiskTier.Autonomous`. `POST /api/feedback` server-restricts `source` to `explicit` / `self_critique` — `behavioral` signals are daemon-only (written by `SignalDetector`) and a `behavioral` body returns 400.
|
|
135
|
+
|
|
136
|
+
| Group | Path | Source | Purpose |
|
|
137
|
+
|---|---|---|---|
|
|
138
|
+
| Feedback | `POST /api/feedback` | `feedback.ts` | Record an explicit or self-critique feedback signal. Dedups on `(scope_type, scope_ref, summary)` within 10 min. When `feedbackLearningEnabled=false` returns `200 {disabled:true}` without recording. |
|
|
139
|
+
| Feedback consume | `POST /api/feedback/consume` | `feedback.ts` | `{ids: number[], lessonRef?}` → `{consumed, notFound}`. Marks signals consumed after a consolidation pass. |
|
|
140
|
+
| Feedback lessons | `GET /api/feedback/lessons` | `feedback.ts` | Read-only lesson-store overview for the dashboard — global `agent` store plus every per-agent store on disk, with cap-utilisation metrics. |
|
|
141
|
+
|
|
142
|
+
### Self-tuning
|
|
143
|
+
|
|
144
|
+
Both routes are `RiskTier.Autonomous`. The weekly review's Recommend pre-step generates at most 3 bounded recommendations per cycle; verdicts may only reference the single-use ids the daemon generated for the **current** cycle (the pending blob is overwritten — and prior ids expired — every weekly run). Verdicts are always recorded and audited as `agent_actions.action_type='self_tuning.verdict'`, and rejections become `self_critique` feedback signals server-side.
|
|
145
|
+
|
|
146
|
+
While `selfTuningEnabled=false` (the shipped default) the loop runs in **shadow mode**: nothing is ever actuated and responses carry `shadow: true` with an empty `applied` array. With the flag on (**live mode**), newly-recorded `apply` verdicts actuate per key namespace: config knobs go through the `applyConfigUpdates` chokepoint (bounds enforced there), write a `runtime_state.self_tuning:<key>` ledger entry, audit `self_tuning.applied`, and DM the owner one line with the `!revert tuning` undo hint; `notification:<type>` (R2) applies are recorded as lesson guidance only; `recurring_schedules:<id>` (R4) applies become an owner DM suggestion — never an automatic flip. Retried POSTs are `duplicate` per id and never re-actuate. A daily auto-revert monitor re-measures each applied change after its 7-day verify window and reverts on regression (audit `self_tuning.reverted`, 28-day re-proposal cool-down); clean windows are stamped `self_tuning.verified`.
|
|
147
|
+
|
|
148
|
+
| Group | Path | Source | Purpose |
|
|
149
|
+
|---|---|---|---|
|
|
150
|
+
| Tuning verdicts | `POST /api/tuning/verdicts` | `tuning.ts` | `{cycleId, verdicts: [{id, verdict: apply\|reject\|defer, reason}]}` → per-id `recorded`/`duplicate`/`conflict` results plus `shadow`, `applied[]`, and `actuationFailures[]`. Idempotent per id (first verdict wins); 400 atomically on any unknown id; 409 on a missing or expired cycle. |
|
|
151
|
+
| Tuning pending | `GET /api/tuning/pending` | `tuning.ts` | The current cycle's recommendations + recorded verdicts, for the owner's validation and the dashboard. `shadow` reflects the live flag. |
|
|
152
|
+
|
|
132
153
|
### Docs and wiki
|
|
133
154
|
|
|
134
155
|
| Group | Path | Source | Purpose |
|
|
@@ -28,7 +28,7 @@ ask_examples:
|
|
|
28
28
|
- How do I check my install with aitne doctor?
|
|
29
29
|
locale: en-US
|
|
30
30
|
created: 2026-04-27
|
|
31
|
-
updated: 2026-
|
|
31
|
+
updated: 2026-06-07
|
|
32
32
|
keywords:
|
|
33
33
|
- aitne start
|
|
34
34
|
- aitne stop
|
|
@@ -95,7 +95,7 @@ needed.
|
|
|
95
95
|
| `aitne open` | Open the dashboard root in the default browser. |
|
|
96
96
|
| `aitne doctor` | Install-health checks (Node, ports, OS keychain, backend CLIs, native bindings, …). |
|
|
97
97
|
| `aitne audit [--since 24h] [--type X] [--result failed]` | Show the agent action log; flags filter by time, action type, result, or backend. `--json` for machine-readable. |
|
|
98
|
-
| `aitne run-now <job>` | Fire a daemon-internal maintenance job on demand. The only supported job today is `roadmap_maintenance`. Reads the API token from the macOS Keychain, so
|
|
98
|
+
| `aitne run-now <job>` | Fire a daemon-internal maintenance job on demand. The only supported job today is `roadmap_maintenance`. Reads the API token from the OS secret store (macOS Keychain, Windows DPAPI, Linux libsecret, or the encrypted file fallback), so it works on every supported platform. |
|
|
99
99
|
| `aitne verify [target]` | Run post-launch verification for a shipped design surface (e.g. `evening-review-slimdown`). |
|
|
100
100
|
| `aitne version [--json]` | Print version, Node version, install path, last build time. |
|
|
101
101
|
| `aitne update [--check]` | Print the npm command to upgrade. `--check` makes one network call to compare against the latest published version. |
|
|
@@ -150,7 +150,7 @@ and the cost-gate / approval semantics.
|
|
|
150
150
|
|---|---|---|
|
|
151
151
|
| `PA_DATA_DIR` | `~/.personal-agent` | Where logs, the SQLite DB, context Markdown, and prompts live. |
|
|
152
152
|
| `PA_API_PORT` | `8321` | Daemon HTTP port. |
|
|
153
|
-
| `PA_DASHBOARD_PORT` | `
|
|
153
|
+
| `PA_DASHBOARD_PORT` | `8322` | Dashboard port. |
|
|
154
154
|
|
|
155
155
|
All runtime state — PIDs, logs, SQLite DB, context Markdown, prompts —
|
|
156
156
|
lives under `PA_DATA_DIR`, **not** inside the repo.
|