@aitne-sh/aitne 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/README.md +256 -833
  2. package/agent-assets/agent-profiles/_safety.md +52 -20
  3. package/agent-assets/agent-profiles/browser-task.md +108 -0
  4. package/agent-assets/agent-profiles/conversational.md +3 -3
  5. package/agent-assets/agent-profiles/profile-importer.md +3 -3
  6. package/agent-assets/agent-profiles/routine-fetch-window.md +30 -19
  7. package/agent-assets/agent-profiles/routine.md +4 -3
  8. package/agent-assets/agents/context-index-reconcile/agent.md +52 -0
  9. package/agent-assets/agents/evening-review/agent.md +53 -0
  10. package/agent-assets/agents/hourly-check/agent.md +62 -0
  11. package/agent-assets/agents/monthly-review/agent.md +55 -0
  12. package/agent-assets/agents/morning-routine/agent.md +78 -0
  13. package/agent-assets/agents/roadmap-maintenance/agent.md +52 -0
  14. package/agent-assets/agents/skill-curation/agent.md +52 -0
  15. package/agent-assets/agents/user-profile-sweep-evening/agent.md +48 -0
  16. package/agent-assets/agents/user-profile-sweep-morning/agent.md +53 -0
  17. package/agent-assets/agents/weekly-review/agent.md +51 -0
  18. package/agent-assets/docs/concepts/agent-day.md +18 -11
  19. package/agent-assets/docs/concepts/auth-health.md +56 -10
  20. package/agent-assets/docs/concepts/backends-and-tiers.md +110 -41
  21. package/agent-assets/docs/concepts/costs-and-quotas.md +74 -19
  22. package/agent-assets/docs/concepts/delegated-mode.md +193 -75
  23. package/agent-assets/docs/concepts/memory-model.md +79 -34
  24. package/agent-assets/docs/concepts/observations.md +61 -11
  25. package/agent-assets/docs/concepts/process-keys.md +66 -17
  26. package/agent-assets/docs/concepts/routines.md +77 -32
  27. package/agent-assets/docs/concepts/safety-and-execution.md +50 -21
  28. package/agent-assets/docs/concepts/safety-model.md +62 -37
  29. package/agent-assets/docs/concepts/skills.md +38 -17
  30. package/agent-assets/docs/features/integrations/browser-history.md +195 -0
  31. package/agent-assets/docs/features/integrations/calendar.md +40 -30
  32. package/agent-assets/docs/features/integrations/git.md +20 -9
  33. package/agent-assets/docs/features/integrations/github.md +93 -35
  34. package/agent-assets/docs/features/integrations/mail.md +60 -17
  35. package/agent-assets/docs/features/integrations/notion.md +51 -11
  36. package/agent-assets/docs/features/integrations/obsidian.md +35 -7
  37. package/agent-assets/docs/features/lifestyle/git.md +45 -44
  38. package/agent-assets/docs/features/lifestyle/reading.md +50 -22
  39. package/agent-assets/docs/features/lifestyle/receipts.md +66 -21
  40. package/agent-assets/docs/features/lifestyle/travel-bookings.md +91 -14
  41. package/agent-assets/docs/features/memory-files/agent-journal.md +111 -50
  42. package/agent-assets/docs/features/memory-files/projects.md +75 -15
  43. package/agent-assets/docs/features/memory-files/roadmap.md +55 -10
  44. package/agent-assets/docs/features/memory-files/schedule.md +113 -70
  45. package/agent-assets/docs/features/memory-files/today.md +47 -21
  46. package/agent-assets/docs/features/memory-files/user-profile.md +67 -31
  47. package/agent-assets/docs/features/messaging/bang-commands.md +115 -28
  48. package/agent-assets/docs/features/messaging/dashboard-chat.md +43 -21
  49. package/agent-assets/docs/features/messaging/discord.md +46 -4
  50. package/agent-assets/docs/features/messaging/overview.md +40 -19
  51. package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +94 -27
  52. package/agent-assets/docs/features/messaging/slack.md +79 -14
  53. package/agent-assets/docs/features/messaging/telegram.md +25 -6
  54. package/agent-assets/docs/features/messaging/whatsapp.md +79 -14
  55. package/agent-assets/docs/features/operations/activity-and-conversations.md +45 -16
  56. package/agent-assets/docs/features/operations/approvals.md +53 -15
  57. package/agent-assets/docs/features/operations/backend-routing.md +75 -16
  58. package/agent-assets/docs/features/operations/cost-tracking.md +90 -17
  59. package/agent-assets/docs/features/operations/managed-chromium.md +221 -0
  60. package/agent-assets/docs/features/operations/notifications.md +58 -11
  61. package/agent-assets/docs/features/operations/quiet-hours.md +63 -40
  62. package/agent-assets/docs/features/operations/schedule-approaching.md +59 -16
  63. package/agent-assets/docs/features/routines/custom-routines.md +97 -23
  64. package/agent-assets/docs/features/routines/evening-review.md +75 -22
  65. package/agent-assets/docs/features/routines/hourly-check.md +150 -30
  66. package/agent-assets/docs/features/routines/morning-routine.md +60 -33
  67. package/agent-assets/docs/features/routines/weekly-review.md +65 -20
  68. package/agent-assets/docs/features/wiki/commands.md +37 -16
  69. package/agent-assets/docs/features/wiki/cost-and-approval.md +240 -0
  70. package/agent-assets/docs/features/wiki/dashboard.md +255 -0
  71. package/agent-assets/docs/features/wiki/overview.md +80 -12
  72. package/agent-assets/docs/features/wiki/search.md +248 -0
  73. package/agent-assets/docs/features/wiki/workspaces.md +254 -0
  74. package/agent-assets/docs/getting-started/01-what-is-this.md +64 -32
  75. package/agent-assets/docs/getting-started/02-first-steps.md +28 -10
  76. package/agent-assets/docs/getting-started/03-what-can-this-do.md +42 -21
  77. package/agent-assets/docs/getting-started/04-first-day.md +52 -20
  78. package/agent-assets/docs/glossary.md +285 -21
  79. package/agent-assets/docs/guides/add-a-custom-routine.md +74 -22
  80. package/agent-assets/docs/guides/backup-and-restore.md +92 -14
  81. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +62 -25
  82. package/agent-assets/docs/guides/build-your-wiki.md +33 -6
  83. package/agent-assets/docs/guides/change-which-model-handles-x.md +70 -9
  84. package/agent-assets/docs/guides/connect-a-new-mail-account.md +80 -15
  85. package/agent-assets/docs/guides/explore-with-trace-and-connect.md +32 -9
  86. package/agent-assets/docs/guides/import-knowledge-file.md +60 -39
  87. package/agent-assets/docs/guides/install-and-run.md +64 -19
  88. package/agent-assets/docs/guides/maintain-wiki-health.md +41 -10
  89. package/agent-assets/docs/guides/migrate-machines.md +86 -18
  90. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +119 -59
  91. package/agent-assets/docs/guides/pause-the-agent.md +71 -22
  92. package/agent-assets/docs/guides/reinstall-cleanly.md +102 -17
  93. package/agent-assets/docs/guides/setup-wizard.md +126 -56
  94. package/agent-assets/docs/guides/switch-default-backend.md +72 -17
  95. package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +31 -10
  96. package/agent-assets/docs/reference/api.md +162 -23
  97. package/agent-assets/docs/reference/cli-commands.md +55 -15
  98. package/agent-assets/docs/reference/config.md +246 -39
  99. package/agent-assets/docs/reference/disallowed-tools.md +42 -10
  100. package/agent-assets/docs/reference/keyboard-shortcuts.md +47 -10
  101. package/agent-assets/docs/reference/knowledge-layout.md +620 -0
  102. package/agent-assets/docs/reference/process-keys.md +126 -20
  103. package/agent-assets/docs/reference/skills.md +62 -18
  104. package/agent-assets/docs/troubleshooting/auth-failed.md +53 -19
  105. package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +96 -22
  106. package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +94 -20
  107. package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +77 -22
  108. package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +87 -22
  109. package/agent-assets/docs/troubleshooting/observation-not-detected.md +85 -21
  110. package/agent-assets/docs/troubleshooting/quota-exhausted.md +36 -6
  111. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +128 -51
  112. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +33 -11
  113. package/agent-assets/optimizer-skills/drift-analysis/SKILL.md +1 -1
  114. package/agent-assets/optimizer-skills/knowledge-map/SKILL.md +1 -1
  115. package/agent-assets/optimizer-skills/skill-curation/SKILL.md +2 -2
  116. package/agent-assets/sandbox/linux/aitne-chromium.apparmor +91 -0
  117. package/agent-assets/sandbox/macos/aitne-chromium.sb +156 -0
  118. package/agent-assets/skills/agent-actions/SKILL.md +122 -0
  119. package/agent-assets/skills/agent-create/SKILL.md +149 -0
  120. package/agent-assets/skills/attach/SKILL.md +3 -4
  121. package/agent-assets/skills/browser-history/SKILL.md +198 -0
  122. package/agent-assets/skills/browser-history-respond/SKILL.md +106 -0
  123. package/agent-assets/skills/browser-task/SKILL.md +169 -0
  124. package/agent-assets/skills/context/SKILL.md +45 -463
  125. package/agent-assets/skills/context/curation.json +2 -2
  126. package/agent-assets/skills/context/references/api.md +232 -0
  127. package/agent-assets/skills/context/references/required-frontmatter.md +73 -0
  128. package/agent-assets/skills/context/references/snapshot-files.md +103 -0
  129. package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +4 -4
  130. package/agent-assets/skills/docs-search/SKILL.md +17 -16
  131. package/agent-assets/skills/external-services/SKILL.delegated.claude.md +14 -26
  132. package/agent-assets/skills/external-services/SKILL.delegated.codex.md +14 -26
  133. package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +14 -26
  134. package/agent-assets/skills/external-services/SKILL.md +9 -262
  135. package/agent-assets/skills/external-services/SKILL.native.claude.md +6 -7
  136. package/agent-assets/skills/external-services/SKILL.native.codex.md +8 -9
  137. package/agent-assets/skills/external-services/SKILL.native.gemini.md +5 -6
  138. package/agent-assets/skills/external-services/references/calendar-apple.md +97 -0
  139. package/agent-assets/skills/external-services/references/calendar-google.md +72 -0
  140. package/agent-assets/skills/external-services/references/calendar-outlook.md +36 -0
  141. package/agent-assets/skills/external-services/references/github.md +17 -0
  142. package/agent-assets/skills/external-services/references/obsidian.md +49 -0
  143. package/agent-assets/skills/external-services/references/skills-crud.md +27 -0
  144. package/agent-assets/skills/gmail-lifestyle/SKILL.md +151 -0
  145. package/agent-assets/skills/gmail-lifestyle/references/receipts-api.md +93 -0
  146. package/agent-assets/skills/gmail-lifestyle/references/travel-bookings-api.md +75 -0
  147. package/agent-assets/skills/mail/SKILL.delegated.claude.md +15 -6
  148. package/agent-assets/skills/mail/SKILL.delegated.codex.md +9 -5
  149. package/agent-assets/skills/mail/SKILL.delegated.gemini.md +9 -5
  150. package/agent-assets/skills/mail/SKILL.md +9 -114
  151. package/agent-assets/skills/mail/SKILL.native.claude.md +1 -1
  152. package/agent-assets/skills/mail/SKILL.native.codex.md +1 -1
  153. package/agent-assets/skills/mail/SKILL.native.gemini.md +1 -1
  154. package/agent-assets/skills/mail/references/api.md +110 -0
  155. package/agent-assets/skills/mail/references/examples.md +70 -0
  156. package/agent-assets/skills/mail/references/providers.md +8 -8
  157. package/agent-assets/skills/managed-tasks/SKILL.md +472 -0
  158. package/agent-assets/skills/managed-tasks/references/errors.md +73 -0
  159. package/agent-assets/skills/managed-tasks/references/output-path.md +75 -0
  160. package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +86 -0
  161. package/agent-assets/skills/management-policy/SKILL.md +54 -125
  162. package/agent-assets/skills/management-policy/curation.json +1 -1
  163. package/agent-assets/skills/management-policy/references/policy-workflow.md +101 -0
  164. package/agent-assets/skills/management-policy/seeds/policy-file-shape.seed.json +1 -1
  165. package/agent-assets/skills/notify/SKILL.md +10 -82
  166. package/agent-assets/skills/notify/references/priority.md +65 -0
  167. package/agent-assets/skills/notion/SKILL.delegated.claude.md +2 -2
  168. package/agent-assets/skills/notion/SKILL.delegated.codex.md +2 -2
  169. package/agent-assets/skills/notion/SKILL.delegated.gemini.md +2 -2
  170. package/agent-assets/skills/notion/SKILL.md +6 -10
  171. package/agent-assets/skills/notion/SKILL.native.claude.md +11 -8
  172. package/agent-assets/skills/notion/SKILL.native.codex.md +10 -6
  173. package/agent-assets/skills/notion/SKILL.native.gemini.md +10 -6
  174. package/agent-assets/skills/observations/SKILL.md +25 -14
  175. package/agent-assets/skills/project-doc/SKILL.md +2 -6
  176. package/agent-assets/skills/project-doc/curation.json +3 -3
  177. package/agent-assets/skills/project-doc/seeds/project-shape.seed.json +7 -4
  178. package/agent-assets/skills/project-doc/seeds/slug-grammar.seed.json +3 -3
  179. package/agent-assets/skills/reading/SKILL.md +12 -2
  180. package/agent-assets/skills/reading/references/reading-taste.md +2 -2
  181. package/agent-assets/skills/roadmap/SKILL.md +43 -141
  182. package/agent-assets/skills/roadmap/curation.json +1 -1
  183. package/agent-assets/skills/roadmap/references/api.md +100 -0
  184. package/agent-assets/skills/roadmap/references/cross-check.md +80 -0
  185. package/agent-assets/skills/roadmap/references/migration.md +56 -0
  186. package/agent-assets/skills/roadmap/references/preparation-timeline.md +2 -2
  187. package/agent-assets/skills/roadmap/seeds/entry-types.seed.json +1 -1
  188. package/agent-assets/skills/schedule/SKILL.md +76 -104
  189. package/agent-assets/skills/schedule/references/batch.md +93 -0
  190. package/agent-assets/skills/schedule/references/errors.md +217 -0
  191. package/agent-assets/skills/schedule/references/model-selection.md +96 -0
  192. package/agent-assets/skills/schedule/references/recurrence-rule.md +86 -0
  193. package/agent-assets/skills/scheduled-managed-task/SKILL.md +59 -51
  194. package/agent-assets/skills/today/SKILL.md +32 -62
  195. package/agent-assets/skills/today/curation.json +3 -3
  196. package/agent-assets/skills/today/references/agent-plan-lifecycle.md +114 -0
  197. package/agent-assets/skills/today/seeds/section-shape.seed.json +1 -1
  198. package/agent-assets/skills/user-interview/SKILL.md +23 -67
  199. package/agent-assets/skills/user-interview/references/op-briefing.md +51 -0
  200. package/agent-assets/skills/user-interview/references/op-morning.md +59 -0
  201. package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +9 -1
  202. package/agent-assets/skills/user-profile/SKILL.md +54 -74
  203. package/agent-assets/skills/user-profile/curation.json +2 -2
  204. package/agent-assets/skills/user-profile/references/character-preferences.md +83 -0
  205. package/agent-assets/skills/user-profile/seeds/routing-table.seed.json +8 -8
  206. package/agent-assets/skills/user-profile/seeds/topic-files.seed.json +30 -2
  207. package/agent-assets/skills/wiki/wiki-ask/SKILL.md +0 -1
  208. package/agent-assets/skills/wiki/wiki-compile/SKILL.md +4 -5
  209. package/agent-assets/skills/wiki/wiki-connect/SKILL.md +0 -1
  210. package/agent-assets/skills/wiki/wiki-graduate/SKILL.md +0 -1
  211. package/agent-assets/skills/wiki/wiki-ingest/SKILL.md +0 -1
  212. package/agent-assets/skills/wiki/wiki-lint/SKILL.md +0 -1
  213. package/agent-assets/skills/wiki/wiki-trace/SKILL.md +0 -1
  214. package/agent-assets/skills/wiki/wiki-vault-rules/SKILL.md +0 -1
  215. package/agent-assets/system-prompts/routine-fetch-window.md +78 -0
  216. package/agent-assets/system-prompts/skill-index-instruction.md +26 -0
  217. package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +20 -11
  218. package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +18 -9
  219. package/agent-assets/task-flows/_partials/capture-user-info.md +24 -0
  220. package/agent-assets/task-flows/_partials/confirm-subflow.md +68 -0
  221. package/agent-assets/task-flows/_partials/dm-intent.long-horizon.md +35 -0
  222. package/agent-assets/task-flows/_partials/dm-intent.project.md +391 -0
  223. package/agent-assets/task-flows/_partials/mail-acquire.gmail.md +20 -11
  224. package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +18 -9
  225. package/agent-assets/task-flows/_partials/notion-acquire.notion.md +26 -15
  226. package/agent-assets/task-flows/browser_task.md +84 -0
  227. package/agent-assets/task-flows/github.assigned.md +1 -1
  228. package/agent-assets/task-flows/github.pull_request.review_requested.md +2 -2
  229. package/agent-assets/task-flows/github.workflow_run.failed.md +2 -2
  230. package/agent-assets/task-flows/knowledge.import.md +15 -15
  231. package/agent-assets/task-flows/message.received.dm.md +20 -17
  232. package/agent-assets/task-flows/message.received.dm_first.md +11 -15
  233. package/agent-assets/task-flows/routine.custom.md +6 -4
  234. package/agent-assets/task-flows/routine.evening_review.md +46 -170
  235. package/agent-assets/task-flows/routine.fetch_window.md +19 -14
  236. package/agent-assets/task-flows/routine.hourly_check.md +27 -15
  237. package/agent-assets/task-flows/routine.hourly_check.triage.md +1 -1
  238. package/agent-assets/task-flows/routine.monthly_review.md +67 -25
  239. package/agent-assets/task-flows/routine.morning_routine_journal.md +135 -0
  240. package/agent-assets/task-flows/routine.morning_routine_today.md +673 -0
  241. package/agent-assets/task-flows/routine.research_cluster_update.md +35 -0
  242. package/agent-assets/task-flows/routine.research_dispatch.md +38 -0
  243. package/agent-assets/task-flows/routine.research_offer_dm.md +125 -0
  244. package/agent-assets/task-flows/routine.research_wiki_summary.md +53 -0
  245. package/agent-assets/task-flows/routine.roadmap_refresh.md +68 -23
  246. package/agent-assets/task-flows/routine.today_refresh.md +4 -4
  247. package/agent-assets/task-flows/routine.user_profile_sweep.md +19 -20
  248. package/agent-assets/task-flows/routine.weekly_review.md +370 -86
  249. package/agent-assets/task-flows/schedule.approaching.md +0 -1
  250. package/agent-assets/task-flows/scheduled.dm.md +13 -13
  251. package/agent-assets/task-flows/scheduled.task.md +9 -9
  252. package/agent-assets/task-flows/setup.initial.md +171 -251
  253. package/agent-assets/task-flows/setup.update.md +2 -2
  254. package/agent-assets/task-flows/wiki.ingest_url.md +1 -1
  255. package/agent-assets/templates/README.md +27 -20
  256. package/agent-assets/templates/_index.md +42 -26
  257. package/agent-assets/templates/_manifest.json +34 -99
  258. package/agent-assets/templates/{user → identity}/_index.md +1 -1
  259. package/agent-assets/templates/identity/expertise.md +9 -0
  260. package/agent-assets/templates/identity/goals.md +9 -0
  261. package/agent-assets/templates/identity/people.md +13 -0
  262. package/agent-assets/templates/identity/personal.md +9 -0
  263. package/agent-assets/templates/{user → identity}/profile.md +2 -2
  264. package/agent-assets/templates/identity/work.md +9 -0
  265. package/agent-assets/templates/{dossiers → knowledge/dossiers}/_index.md +2 -2
  266. package/agent-assets/templates/{projects → plans/projects}/_active.base +1 -1
  267. package/agent-assets/templates/policies/_index.md +21 -0
  268. package/agent-assets/templates/{rules → policies}/journal-export.md +1 -1
  269. package/agent-assets/templates/policies/journal-format.md +168 -0
  270. package/agent-assets/templates/{rules/policies → policies/management-captures}/_index.md +2 -2
  271. package/agent-assets/templates/{rules → policies}/management.md +3 -3
  272. package/agent-assets/templates/{rules → policies}/mcp.md +1 -1
  273. package/agent-assets/templates/{rules → policies}/redaction.md +1 -1
  274. package/agent-assets/templates/{routines → policies/routines}/_index.md +1 -1
  275. package/agent-assets/templates/{routines → policies/routines}/evening.md +2 -2
  276. package/agent-assets/templates/{routines → policies/routines}/hourly.md +1 -1
  277. package/agent-assets/templates/{routines → policies/routines}/monthly.md +2 -2
  278. package/bin/aitne.mjs +21 -5
  279. package/package.json +5 -4
  280. package/scripts/commands/doctor.mjs +63 -5
  281. package/scripts/commands/run-now.mjs +187 -0
  282. package/scripts/commands/verify.mjs +264 -0
  283. package/scripts/lib/ports.d.mts +27 -0
  284. package/scripts/lib/ports.mjs +36 -0
  285. package/scripts/lib/read-api-token.mjs +176 -0
  286. package/scripts/start.mjs +2 -1
  287. package/agent-assets/docs/features/lifestyle/travel-time.md +0 -52
  288. package/agent-assets/docs/features/routines/monthly-review.md +0 -65
  289. package/agent-assets/skills/management-task-modify/SKILL.md +0 -203
  290. package/agent-assets/skills/management-task-register/SKILL.md +0 -330
  291. package/agent-assets/skills/management-task-stop/SKILL.md +0 -166
  292. package/agent-assets/skills/receipts/SKILL.md +0 -134
  293. package/agent-assets/skills/travel/SKILL.md +0 -132
  294. package/agent-assets/skills/travel-time/SKILL.md +0 -158
  295. package/agent-assets/task-flows/routine.morning_routine.md +0 -322
  296. package/agent-assets/task-flows/routine.morning_routine_initial.md +0 -204
  297. package/agent-assets/templates/context-index.md +0 -42
  298. package/agent-assets/templates/rules/_index.md +0 -19
  299. package/agent-assets/templates/rules/journal-format.md +0 -61
  300. package/agent-assets/templates/user/expertise.md +0 -7
  301. package/agent-assets/templates/user/goals.md +0 -7
  302. package/agent-assets/templates/user/people.md +0 -7
  303. package/agent-assets/templates/user/personal.md +0 -7
  304. package/agent-assets/templates/user/work.md +0 -7
  305. /package/agent-assets/templates/{agent/journal.md → journal/agent.md} +0 -0
  306. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/evening.md +0 -0
  307. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/hourly.md +0 -0
  308. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/monthly.md +0 -0
  309. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/morning.md +0 -0
  310. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/roadmap.md +0 -0
  311. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/weekly.md +0 -0
  312. /package/agent-assets/templates/{projects → plans/projects}/_index.md +0 -0
  313. /package/agent-assets/templates/{roadmap.md → plans/roadmap.md} +0 -0
  314. /package/agent-assets/templates/{routines → policies/routines}/morning.md +0 -0
  315. /package/agent-assets/templates/{routines → policies/routines}/weekly.md +0 -0
  316. /package/agent-assets/templates/{agent → state}/profile-questions.md +0 -0
  317. /package/agent-assets/templates/{today.md → state/today.md} +0 -0
@@ -22,7 +22,7 @@ redaction is performed in code by `packages/shared/src/secret-redaction.ts`.
22
22
  ## Context-specific (journal export)
23
23
 
24
24
  When exporting `daily/*.md` to an external vault (B-005), additional
25
- user-defined rules in `rules/journal-export.md` are applied on top.
25
+ user-defined rules in `policies/journal-export.md` are applied on top.
26
26
 
27
27
  ## Appearance in logs
28
28
 
@@ -17,4 +17,4 @@ I've added later via DM). All checks are treated equally.
17
17
  | `evening.md` | evening | `routine.evening_review` |
18
18
  | `weekly.md` | Friday | `routine.weekly_review` |
19
19
  | `monthly.md` | month-end | `routine.monthly_review` |
20
- | custom/<slug>.md | user-defined cron in `routines/custom/` | `routine.custom.<slug>` |
20
+ | custom/<slug>.md | user-defined cron in `policies/routines/custom/` | `routine.custom.<slug>` |
@@ -10,7 +10,7 @@ template_version: 1
10
10
  ## Checks
11
11
 
12
12
  ### Today → Handoff
13
- - **Action**: scan `today.md` for open items and summarize them into
13
+ - **Action**: scan `state/today.md` for open items and summarize them into
14
14
  `## Handoff` so tomorrow's morning routine can pick them up
15
15
 
16
16
  ### Tomorrow preview
@@ -18,5 +18,5 @@ template_version: 1
18
18
  deadlines into `## Handoff`
19
19
 
20
20
  ### Journal tail
21
- - **Action**: append a 1–2 sentence note to `agent/journal.md` describing
21
+ - **Action**: append a 1–2 sentence note to `journal/agent.md` describing
22
22
  anything surprising the agent observed today
@@ -21,7 +21,7 @@ skipping any whose preconditions are not met.
21
21
 
22
22
  ### Upcoming schedule
23
23
  - **Precondition**: always
24
- - **Action**: scan `today.md` `## Agent Plan` for items in the next 60
24
+ - **Action**: scan `state/today.md` `## Agent Plan` for items in the next 60
25
25
  min; ensure each has a `scheduled.task` row.
26
26
 
27
27
  ## Skip conditions (applied before any check)
@@ -17,9 +17,9 @@ Fires on the last calendar day of the month. Output target:
17
17
  `daily/*.md` items
18
18
 
19
19
  ### Roadmap delta
20
- - **Action**: compare current `roadmap.md` against the month's progress;
20
+ - **Action**: compare current `plans/roadmap.md` against the month's progress;
21
21
  highlight completed + delayed items
22
22
 
23
23
  ### Habit + health snapshot
24
- - **Action**: if the user logged health/habit data in `user/personal.md`,
24
+ - **Action**: if the user logged health/habit data in `identity/personal.md`,
25
25
  surface month-over-month changes (opt-in only)
package/bin/aitne.mjs CHANGED
@@ -8,6 +8,15 @@ import process from "node:process";
8
8
  import { fileURLToPath } from "node:url";
9
9
  import { ensureBuild } from "../scripts/run-node.mjs";
10
10
  import { fetchHttpOk, openBrowser } from "../scripts/browser.mjs";
11
+ // Port defaults live in this plain-ESM module (NOT @aitne/shared, per the
12
+ // pre-build constraint noted below). scripts/lib/ ships in the published
13
+ // `files` list, so this import works in global installs too.
14
+ import {
15
+ DEFAULT_API_PORT,
16
+ DEFAULT_DASHBOARD_PORT,
17
+ resolveApiPort,
18
+ resolveDashboardPort,
19
+ } from "../scripts/lib/ports.mjs";
11
20
 
12
21
  const IS_WINDOWS = process.platform === "win32";
13
22
 
@@ -55,8 +64,8 @@ const DAEMON_PID_FILE = path.join(PIDS_DIR, "daemon.pid");
55
64
  const DASHBOARD_PID_FILE = path.join(PIDS_DIR, "dashboard.pid");
56
65
  const DAEMON_LOG_FILE = path.join(DATA_DIR, "logs", "daemon.log");
57
66
  const DASHBOARD_LOG_FILE = path.join(DATA_DIR, "logs", "dashboard.log");
58
- const DAEMON_PORT = parseInt(process.env.PA_API_PORT || "8321", 10);
59
- const DASHBOARD_PORT = parseInt(process.env.PA_DASHBOARD_PORT || "3000", 10);
67
+ const DAEMON_PORT = resolveApiPort();
68
+ const DASHBOARD_PORT = resolveDashboardPort();
60
69
 
61
70
  const VERSION = JSON.parse(
62
71
  fs.readFileSync(path.join(PROJECT_ROOT, "package.json"), "utf8"),
@@ -989,6 +998,11 @@ Operations:
989
998
  open Open dashboard root in browser
990
999
  doctor Diagnose install (Node, ports, keychain, CLIs, …)
991
1000
  audit [--since <dur>] [--type X] Show agent action log (filterable)
1001
+ run-now <job> Fire a daemon-internal maintenance job
1002
+ on demand (e.g. roadmap_maintenance)
1003
+ verify [target] Run post-launch verification for a
1004
+ shipped design surface (e.g.
1005
+ evening-review-slimdown)
992
1006
  version Print version + Node + install path
993
1007
  update Print npm command to upgrade
994
1008
  uninstall Stop, then offer to wipe ${path.basename(DATA_DIR) || "data dir"}
@@ -999,8 +1013,8 @@ Options:
999
1013
 
1000
1014
  Environment:
1001
1015
  PA_DATA_DIR Data directory (default: ~/.personal-agent)
1002
- PA_API_PORT Daemon port (default: 8321)
1003
- PA_DASHBOARD_PORT Dashboard port (default: 3000)
1016
+ PA_API_PORT Daemon port (default: ${DEFAULT_API_PORT})
1017
+ PA_DASHBOARD_PORT Dashboard port (default: ${DEFAULT_DASHBOARD_PORT})
1004
1018
 
1005
1019
  Examples:
1006
1020
  aitne start Launch in background
@@ -1016,7 +1030,7 @@ Run 'aitne help <command>' for detailed usage of a single command.`);
1016
1030
  // Used by `aitne help <cmd>` to dispatch into the module rather than duplicating
1017
1031
  // usage strings in cmdHelp() above.
1018
1032
  const PER_COMMAND_HELP = new Set([
1019
- "doctor", "audit", "setup", "open", "version", "update", "uninstall",
1033
+ "doctor", "audit", "setup", "open", "version", "update", "uninstall", "run-now", "verify",
1020
1034
  ]);
1021
1035
 
1022
1036
  /**
@@ -1069,6 +1083,8 @@ switch (subcommand) {
1069
1083
  case "open": await runExternalCommand("open", subArgs); break;
1070
1084
  case "doctor": await runExternalCommand("doctor", subArgs); break;
1071
1085
  case "audit": await runExternalCommand("audit", subArgs); break;
1086
+ case "run-now": await runExternalCommand("run-now", subArgs); break;
1087
+ case "verify": await runExternalCommand("verify", subArgs); break;
1072
1088
 
1073
1089
  // version / -v / --version all dispatch identically — passing subArgs
1074
1090
  // through so `aitne --version --json` yields the same output as
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aitne-sh/aitne",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "Aitne — a local-first, proactive personal AI agent. A long-running TypeScript daemon is the nervous system; Claude Code (or Codex / Gemini CLI) is the brain. All persistent memory lives in local Markdown files.",
5
5
  "keywords": [
6
6
  "ai",
@@ -43,9 +43,9 @@
43
43
  "README.md"
44
44
  ],
45
45
  "dependencies": {
46
- "@aitne/daemon": "0.1.7",
47
- "@aitne/dashboard": "0.1.7",
48
- "@aitne/shared": "0.1.7"
46
+ "@aitne/daemon": "0.1.9",
47
+ "@aitne/dashboard": "0.1.9",
48
+ "@aitne/shared": "0.1.9"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@typescript-eslint/eslint-plugin": "^8.58.1",
@@ -75,6 +75,7 @@
75
75
  "test": "node scripts/check-redaction-coverage.mjs && vitest run --coverage",
76
76
  "test:watch": "vitest",
77
77
  "check:redaction": "node scripts/check-redaction-coverage.mjs",
78
+ "check:vault-paths": "node scripts/check-vault-path-drift.mjs",
78
79
  "lint": "turbo run lint",
79
80
  "typecheck:tests": "turbo run typecheck:tests",
80
81
  "clean": "turbo run clean && node scripts/rm-paths.mjs node_modules .buildstamp"
@@ -37,6 +37,8 @@ Exit code:
37
37
  await checkPort("Dashboard port", ctx.DASHBOARD_PORT, ctx.DASHBOARD_PID_FILE, ctx.helpers.getRunningPid),
38
38
  await checkSecretStore(ctx),
39
39
  await checkBackendCli(),
40
+ await checkProcessProbe(),
41
+ await checkBrowserOpener(ctx.DASHBOARD_PORT),
40
42
  await checkDataDirWritable(ctx.DATA_DIR),
41
43
  await checkBetterSqlite3(ctx.PROJECT_ROOT),
42
44
  await checkAgentAssets(ctx.PROJECT_ROOT),
@@ -125,8 +127,8 @@ async function checkPort(label, port, pidFile, getRunningPid) {
125
127
  label,
126
128
  detail: `${port} in use by another process`,
127
129
  hint: label.startsWith("Daemon")
128
- ? `Set PA_API_PORT to an open port (e.g. PA_API_PORT=8322 aitne start), or stop the conflicting process.`
129
- : `Set PA_DASHBOARD_PORT to an open port (e.g. PA_DASHBOARD_PORT=3001 aitne start), or stop the conflicting process.`,
130
+ ? `Set PA_API_PORT to an open port (e.g. PA_API_PORT=8331 aitne start), or stop the conflicting process.`
131
+ : `Set PA_DASHBOARD_PORT to an open port (e.g. PA_DASHBOARD_PORT=8333 aitne start), or stop the conflicting process.`,
130
132
  };
131
133
  }
132
134
 
@@ -180,11 +182,17 @@ async function checkSecretStore(ctx) {
180
182
  }
181
183
  }
182
184
  if (platform === "win32") {
183
- const psBinary = whichSync("powershell.exe") ? "powershell.exe" : "pwsh.exe";
185
+ // Match the factory's terminal fallback (secret-client-factory.ts:37-41): prefer
186
+ // in-box powershell.exe, else pwsh.exe, else default to powershell.exe — the exact
187
+ // binary the daemon will exec — so a both-missing FAIL names the right binary.
188
+ const psBinary = whichSync("powershell.exe") ? "powershell.exe" : (whichSync("pwsh.exe") ? "pwsh.exe" : "powershell.exe");
184
189
  try {
190
+ // Mirror WindowsDpapiSecretClient's real encrypt path: ConvertTo/From-SecureString
191
+ // (no -Key => DPAPI). Works on both powershell.exe (5.1) and pwsh.exe (7+); the prior
192
+ // [ProtectedData] type check false-fails on PowerShell-Core-only hosts that work fine.
185
193
  execFileSync(psBinary, [
186
- "-NoProfile", "-Command",
187
- "[System.Security.Cryptography.ProtectedData] | Out-Null; exit 0",
194
+ "-NoProfile", "-NonInteractive", "-Command",
195
+ "$s = ConvertTo-SecureString 'probe' -AsPlainText -Force; $e = ConvertFrom-SecureString $s; if (-not $e) { exit 1 }; exit 0",
188
196
  ], { stdio: "pipe", timeout: 5000 });
189
197
  return { status: "pass", label: "Secret store", detail: `Windows DPAPI via ${psBinary} reachable` };
190
198
  } catch (err) {
@@ -221,6 +229,56 @@ async function checkBackendCli() {
221
229
  };
222
230
  }
223
231
 
232
+ /**
233
+ * Process-listing primitive — `pgrep` on POSIX, `tasklist` on Windows. The
234
+ * Obsidian observer uses this to ask "is the desktop app currently open?"
235
+ * before treating the vault as live (services/obsidian.ts). Warn (not fail)
236
+ * because every other observer keeps working without it.
237
+ */
238
+ async function checkProcessProbe() {
239
+ const isWin = process.platform === "win32";
240
+ const tool = isWin ? "tasklist" : "pgrep";
241
+ if (whichSync(tool)) {
242
+ return { status: "pass", label: "Process probe", detail: `${tool} on PATH` };
243
+ }
244
+ return {
245
+ status: "warn",
246
+ label: "Process probe",
247
+ detail: `${tool} not on PATH`,
248
+ hint: isWin
249
+ ? "tasklist ships with Windows — check that %SystemRoot%\\System32 is on PATH."
250
+ : process.platform === "linux"
251
+ ? "apt install procps · or equivalent for your distro."
252
+ : "pgrep ships with macOS in-box; check $PATH.",
253
+ };
254
+ }
255
+
256
+ /**
257
+ * Browser opener used by `aitne open` and the auto-open after `aitne start`.
258
+ * darwin → `open`, win32 → `cmd` (hosts the `start` builtin), linux → `xdg-open`.
259
+ * Warn-only: nothing in the daemon depends on this; users can navigate to
260
+ * the dashboard URL by hand if missing.
261
+ */
262
+ async function checkBrowserOpener(dashboardPort) {
263
+ const platform = process.platform;
264
+ const tool =
265
+ platform === "darwin" ? "open"
266
+ : platform === "win32" ? "cmd"
267
+ : "xdg-open";
268
+ if (whichSync(tool)) {
269
+ return { status: "pass", label: "Browser opener", detail: `${tool} on PATH` };
270
+ }
271
+ return {
272
+ status: "warn",
273
+ label: "Browser opener",
274
+ detail: `${tool} not on PATH`,
275
+ hint:
276
+ platform === "linux"
277
+ ? `apt install xdg-utils · or open http://localhost:${dashboardPort} manually after \`aitne start\`.`
278
+ : "Auto-open is a convenience; the dashboard URL works in any browser.",
279
+ };
280
+ }
281
+
224
282
  async function checkDataDirWritable(dataDir) {
225
283
  try {
226
284
  fs.mkdirSync(dataDir, { recursive: true });
@@ -0,0 +1,187 @@
1
+ /**
2
+ * `aitne run-now <job>` — fire a daemon-internal maintenance job on
3
+ * demand.
4
+ *
5
+ * Currently supported jobs:
6
+ * - `roadmap_maintenance` — mechanical roadmap.md maintenance pass
7
+ * (substeps 2a / 2b / 2d of the legacy `routine.evening_review`
8
+ * Step 2). Same code path the 17:45 cron callback fires. See
9
+ * `docs/design/appendices/evening-review-slimdown.md` §2.2.
10
+ *
11
+ * Implementation:
12
+ * - Reads the daemon's apiToken from the OS secret store (macOS
13
+ * Keychain, Windows DPAPI, Linux libsecret, or the encrypted file
14
+ * fallback) via the shared cross-platform reader — the same entry
15
+ * the dashboard proxy uses. Bearer-auth required because
16
+ * `POST /api/agent/run-now/*` routes are Approve-tier in the
17
+ * `risk-classifier`.
18
+ * - POSTs to `http://127.0.0.1:<PA_API_PORT>/api/agent/run-now/<job>`.
19
+ * - Renders the structured `result` payload as a compact summary
20
+ * plus the full JSON on `--json`.
21
+ *
22
+ * Exit codes:
23
+ * - 0 job completed (including idempotent / no-op runs)
24
+ * - 2 validation / argument error
25
+ * - 3 daemon not running, not reachable, or 5xx
26
+ * - 4 result.status === "failed" — the job reported errors[]
27
+ */
28
+ import { readApiToken } from "../lib/read-api-token.mjs";
29
+
30
+ const SUPPORTED_JOBS = new Set(["roadmap_maintenance"]);
31
+
32
+ const JOB_ENDPOINTS = {
33
+ roadmap_maintenance: "/api/agent/run-now/roadmap-maintenance",
34
+ };
35
+
36
+ export async function run(args, ctx) {
37
+ if (args.includes("--help") || args.includes("-h")) {
38
+ printHelp();
39
+ return;
40
+ }
41
+ const opts = parseArgs(args);
42
+ if (!opts.job) {
43
+ process.stderr.write("Job is required.\n");
44
+ process.stderr.write("Available jobs: " + [...SUPPORTED_JOBS].join(", ") + "\n");
45
+ process.stderr.write("Run `aitne help run-now` for usage.\n");
46
+ process.exit(2);
47
+ }
48
+
49
+ if (!SUPPORTED_JOBS.has(opts.job)) {
50
+ process.stderr.write(`Unknown job: ${opts.job}\n`);
51
+ process.stderr.write("Available jobs: " + [...SUPPORTED_JOBS].join(", ") + "\n");
52
+ process.exit(2);
53
+ }
54
+
55
+ const token = readApiToken();
56
+ if (!token) {
57
+ process.stderr.write(
58
+ "Failed to read the daemon API token from the OS secret store.\n" +
59
+ "Is the daemon initialized? Run `aitne start` once first.\n",
60
+ );
61
+ process.exit(3);
62
+ }
63
+
64
+ const endpoint = JOB_ENDPOINTS[opts.job];
65
+ const url = `http://127.0.0.1:${ctx.DAEMON_PORT}${endpoint}`;
66
+
67
+ let res;
68
+ try {
69
+ res = await fetch(url, {
70
+ method: "POST",
71
+ headers: {
72
+ "Content-Type": "application/json",
73
+ Authorization: `Bearer ${token}`,
74
+ },
75
+ body: JSON.stringify({}),
76
+ });
77
+ } catch (err) {
78
+ process.stderr.write(`Failed to reach the daemon at ${url}: ${err.message}\n`);
79
+ process.stderr.write("Is the daemon running? Try `aitne status`.\n");
80
+ process.exit(3);
81
+ }
82
+
83
+ const text = await res.text();
84
+ let body;
85
+ try {
86
+ body = JSON.parse(text);
87
+ } catch {
88
+ body = { raw: text };
89
+ }
90
+
91
+ if (!res.ok) {
92
+ process.stderr.write(
93
+ `POST ${endpoint} → ${res.status}: ${body.error ?? "unknown"}\n`,
94
+ );
95
+ if (body.message) process.stderr.write(`${body.message}\n`);
96
+ process.exit(res.status >= 500 ? 3 : 2);
97
+ }
98
+
99
+ if (opts.json) {
100
+ process.stdout.write(JSON.stringify(body, null, 2) + "\n");
101
+ } else {
102
+ printSummary(opts.job, body.result ?? body);
103
+ }
104
+
105
+ const status = body?.result?.status;
106
+ if (status === "failed") process.exit(4);
107
+ }
108
+
109
+ function parseArgs(args) {
110
+ const opts = { job: null, json: false };
111
+ for (let i = 0; i < args.length; i++) {
112
+ const a = args[i];
113
+ if (a === "--json") {
114
+ opts.json = true;
115
+ continue;
116
+ }
117
+ if (a.startsWith("-")) {
118
+ process.stderr.write(`Unknown flag: ${a}\n`);
119
+ process.exit(2);
120
+ }
121
+ if (opts.job) {
122
+ process.stderr.write(`Unexpected positional argument: ${a}\n`);
123
+ process.exit(2);
124
+ }
125
+ opts.job = a;
126
+ }
127
+ return opts;
128
+ }
129
+
130
+ function printSummary(job, result) {
131
+ if (job === "roadmap_maintenance") {
132
+ if (!result || typeof result !== "object") {
133
+ process.stdout.write("(no result payload)\n");
134
+ return;
135
+ }
136
+ const status = result.status ?? "unknown";
137
+ const lines = [
138
+ `status: ${status}`,
139
+ `status_synced: ${result.statusSynced ?? 0}`,
140
+ `swept: ${result.swept ?? 0}`,
141
+ `stale_marked: ${result.staleMarked ?? 0}`,
142
+ ];
143
+ if (result.skipReason) lines.push(`skip_reason: ${result.skipReason}`);
144
+ if (Array.isArray(result.errors) && result.errors.length > 0) {
145
+ lines.push(`errors: ${result.errors.length}`);
146
+ for (const err of result.errors) {
147
+ lines.push(` - ${err.step}: ${err.message}`);
148
+ }
149
+ }
150
+ process.stdout.write(lines.join("\n") + "\n");
151
+ return;
152
+ }
153
+ process.stdout.write(JSON.stringify(result, null, 2) + "\n");
154
+ }
155
+
156
+ function printHelp() {
157
+ process.stdout.write(`Usage: aitne run-now <job> [--json]
158
+
159
+ Fire a daemon-internal maintenance job on demand. Uses the same code
160
+ path the cron schedule fires — useful for parallel-verification
161
+ rollouts and operator debugging.
162
+
163
+ Jobs:
164
+ roadmap_maintenance Run the mechanical roadmap.md maintenance pass
165
+ (substeps 2a / 2b / 2d). Acquires roadmap write
166
+ lock, syncs Scheduled: statuses, sweeps aged
167
+ Agent Action Plan entries, and applies
168
+ Long-term Plans stale markers. Emits an
169
+ \`agent_actions\` audit row with
170
+ action_type='roadmap_mechanical_maintenance'
171
+ and appends a line to agent/journal.md.
172
+
173
+ Flags:
174
+ --json Emit the full JSON result instead of the summary.
175
+ -h, --help Print this message.
176
+
177
+ Exit codes:
178
+ 0 completed (success / skipped)
179
+ 2 argument / validation error
180
+ 3 daemon unreachable or 5xx
181
+ 4 the job ran but reported errors[]
182
+
183
+ Examples:
184
+ aitne run-now roadmap_maintenance
185
+ aitne run-now roadmap_maintenance --json
186
+ `);
187
+ }