@tekmidian/pai 0.11.0 → 0.12.0

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 (126) hide show
  1. package/README.md +84 -10
  2. package/dist/{auto-route-D54Kv7yI.mjs → auto-route-CLYcToZ5.mjs} +4 -4
  3. package/dist/{auto-route-D54Kv7yI.mjs.map → auto-route-CLYcToZ5.mjs.map} +1 -1
  4. package/dist/cli/index.mjs +20 -10275
  5. package/dist/cli/index.mjs.map +1 -1
  6. package/dist/cli/program.d.mts +11 -0
  7. package/dist/cli/program.d.mts.map +1 -0
  8. package/dist/cli/program.mjs +249 -0
  9. package/dist/cli/program.mjs.map +1 -0
  10. package/dist/{clusters-BwmdKB-V.mjs → clusters-BYPw7vfW.mjs} +2 -2
  11. package/dist/{clusters-BwmdKB-V.mjs.map → clusters-BYPw7vfW.mjs.map} +1 -1
  12. package/dist/{config-DqBY3aT0.mjs → config-BuhHWyOK.mjs} +1 -1
  13. package/dist/{config-DqBY3aT0.mjs.map → config-BuhHWyOK.mjs.map} +1 -1
  14. package/dist/daemon/index.mjs +16 -18
  15. package/dist/daemon/index.mjs.map +1 -1
  16. package/dist/{daemon-CSKj8Xm9.mjs → daemon-DDplhnm9.mjs} +185 -31
  17. package/dist/daemon-DDplhnm9.mjs.map +1 -0
  18. package/dist/daemon-mcp/index.mjs +2 -2
  19. package/dist/{db-CYmBWcjh.mjs → db-CmYbAVCD.mjs} +1 -1
  20. package/dist/{db-CYmBWcjh.mjs.map → db-CmYbAVCD.mjs.map} +1 -1
  21. package/dist/{detect-CdaA48EI.mjs → detect-KjycLtXM.mjs} +1 -1
  22. package/dist/{detect-CdaA48EI.mjs.map → detect-KjycLtXM.mjs.map} +1 -1
  23. package/dist/{detector-Q_lVXtj-.mjs → detector-ZiOhHszd.mjs} +2 -2
  24. package/dist/{detector-Q_lVXtj-.mjs.map → detector-ZiOhHszd.mjs.map} +1 -1
  25. package/dist/{embeddings-DGRAPAYb.mjs → embeddings-BJPOcbik.mjs} +1 -1
  26. package/dist/{embeddings-DGRAPAYb.mjs.map → embeddings-BJPOcbik.mjs.map} +1 -1
  27. package/dist/{factory-BufouUQ1.mjs → factory-CayQCMoN.mjs} +5 -8
  28. package/dist/{factory-BufouUQ1.mjs.map → factory-CayQCMoN.mjs.map} +1 -1
  29. package/dist/{helpers-crDEr6S2.mjs → helpers-IjZkXBhj.mjs} +1 -1
  30. package/dist/{helpers-crDEr6S2.mjs.map → helpers-IjZkXBhj.mjs.map} +1 -1
  31. package/dist/hooks/observe.mjs +21 -0
  32. package/dist/hooks/observe.mjs.map +2 -2
  33. package/dist/index.mjs +9 -10
  34. package/dist/{indexer-backend-DcYThufd.mjs → indexer-backend-Cm5RS7y0.mjs} +3 -3
  35. package/dist/{indexer-backend-DcYThufd.mjs.map → indexer-backend-Cm5RS7y0.mjs.map} +1 -1
  36. package/dist/{ipc-client-C3pjwy2m.mjs → ipc-client-CoyUHPod.mjs} +1 -1
  37. package/dist/{ipc-client-C3pjwy2m.mjs.map → ipc-client-CoyUHPod.mjs.map} +1 -1
  38. package/dist/{kg-entity-DVzTsy6G.mjs → kg-entity-LXblD7LZ.mjs} +1 -1
  39. package/dist/{kg-entity-DVzTsy6G.mjs.map → kg-entity-LXblD7LZ.mjs.map} +1 -1
  40. package/dist/{kg-extraction-iR1BKKWK.mjs → kg-extraction-C8DEUHTS.mjs} +17 -6
  41. package/dist/kg-extraction-C8DEUHTS.mjs.map +1 -0
  42. package/dist/{latent-ideas-dWVuI_dg.mjs → latent-ideas-RyC6eyqI.mjs} +4 -4
  43. package/dist/{latent-ideas-dWVuI_dg.mjs.map → latent-ideas-RyC6eyqI.mjs.map} +1 -1
  44. package/dist/main-resolver-uFxNiDy7.mjs +1339 -0
  45. package/dist/main-resolver-uFxNiDy7.mjs.map +1 -0
  46. package/dist/{migrate-fLD6rAdO.mjs → migrate-B02wDDgS.mjs} +2 -2
  47. package/dist/{migrate-fLD6rAdO.mjs.map → migrate-B02wDDgS.mjs.map} +1 -1
  48. package/dist/{neighborhood-DixmpfPT.mjs → neighborhood-CklGIB8r.mjs} +2 -2
  49. package/dist/{neighborhood-DixmpfPT.mjs.map → neighborhood-CklGIB8r.mjs.map} +1 -1
  50. package/dist/{note-context-BY7rfGdl.mjs → note-context-qvZlVXVO.mjs} +1 -1
  51. package/dist/{note-context-BY7rfGdl.mjs.map → note-context-qvZlVXVO.mjs.map} +1 -1
  52. package/dist/{pai-marker-CXQPX2P6.mjs → pai-marker-HVBwwBW-.mjs} +1 -1
  53. package/dist/{pai-marker-CXQPX2P6.mjs.map → pai-marker-HVBwwBW-.mjs.map} +1 -1
  54. package/dist/pick-Dt21ojcW.mjs +8250 -0
  55. package/dist/pick-Dt21ojcW.mjs.map +1 -0
  56. package/dist/{postgres-Cp25xZes.mjs → postgres-B451Hnkm.mjs} +2 -2
  57. package/dist/{postgres-Cp25xZes.mjs.map → postgres-B451Hnkm.mjs.map} +1 -1
  58. package/dist/{query-feedback-C0hKUHVz.mjs → query-feedback-fapbqRgh.mjs} +1 -1
  59. package/dist/{query-feedback-C0hKUHVz.mjs.map → query-feedback-fapbqRgh.mjs.map} +1 -1
  60. package/dist/{reranker-CMNZcfVx.mjs → reranker-C08R99zn.mjs} +1 -1
  61. package/dist/{reranker-CMNZcfVx.mjs.map → reranker-C08R99zn.mjs.map} +1 -1
  62. package/dist/{search-i2nlQ-JM.mjs → search-HcdKtMla.mjs} +3 -3
  63. package/dist/{search-i2nlQ-JM.mjs.map → search-HcdKtMla.mjs.map} +1 -1
  64. package/dist/{sqlite-B3JHfJc2.mjs → sqlite-DQpY1Esi.mjs} +3 -3
  65. package/dist/{sqlite-B3JHfJc2.mjs.map → sqlite-DQpY1Esi.mjs.map} +1 -1
  66. package/dist/{state-BHZAhLou.mjs → state-BIlxNRUn.mjs} +1 -1
  67. package/dist/{state-BHZAhLou.mjs.map → state-BIlxNRUn.mjs.map} +1 -1
  68. package/dist/{stop-words-BaMEGVeY.mjs → stop-words-BwplsQ3z.mjs} +1 -1
  69. package/dist/{stop-words-BaMEGVeY.mjs.map → stop-words-BwplsQ3z.mjs.map} +1 -1
  70. package/dist/{sync-CmBKOL3K.mjs → sync-uPR4g438.mjs} +205 -6
  71. package/dist/sync-uPR4g438.mjs.map +1 -0
  72. package/dist/{themes-DO8mUVwD.mjs → themes-Cg8oG9Ra.mjs} +3 -3
  73. package/dist/{themes-DO8mUVwD.mjs.map → themes-Cg8oG9Ra.mjs.map} +1 -1
  74. package/dist/{tools-C1JNgya7.mjs → tools-Op3C2Nm6.mjs} +26 -26
  75. package/dist/{tools-C1JNgya7.mjs.map → tools-Op3C2Nm6.mjs.map} +1 -1
  76. package/dist/{trace-TYCLMCkY.mjs → trace-CLK-NPkb.mjs} +1 -1
  77. package/dist/{trace-TYCLMCkY.mjs.map → trace-CLK-NPkb.mjs.map} +1 -1
  78. package/dist/{utils-BAxjW3j8.mjs → utils-CqqgB0dH.mjs} +1 -1
  79. package/dist/{utils-BAxjW3j8.mjs.map → utils-CqqgB0dH.mjs.map} +1 -1
  80. package/dist/{vault-indexer-vNnL3Azb.mjs → vault-indexer-Dn_BccVK.mjs} +2 -2
  81. package/dist/{vault-indexer-vNnL3Azb.mjs.map → vault-indexer-Dn_BccVK.mjs.map} +1 -1
  82. package/dist/{work-queue-worker-BxsBtz6j.mjs → work-queue-worker-DHOIVVQ7.mjs} +5 -5
  83. package/dist/{work-queue-worker-BxsBtz6j.mjs.map → work-queue-worker-DHOIVVQ7.mjs.map} +1 -1
  84. package/dist/{zettelkasten-B-94vghH.mjs → zettelkasten-NwBD1NsT.mjs} +4 -4
  85. package/dist/{zettelkasten-B-94vghH.mjs.map → zettelkasten-NwBD1NsT.mjs.map} +1 -1
  86. package/docs/commands/README.md +151 -0
  87. package/docs/commands/_examples/kg.md +13 -0
  88. package/docs/commands/_examples/memory.md +13 -0
  89. package/docs/commands/_examples/observation.md +13 -0
  90. package/docs/commands/_examples/projects.md +16 -0
  91. package/docs/commands/_examples/skill.md +13 -0
  92. package/docs/commands/_examples/zettel.md +13 -0
  93. package/docs/commands/backup.md +24 -0
  94. package/docs/commands/clear-names.md +27 -0
  95. package/docs/commands/daemon.md +78 -0
  96. package/docs/commands/db.md +74 -0
  97. package/docs/commands/end.md +24 -0
  98. package/docs/commands/help.md +30 -0
  99. package/docs/commands/kg.md +89 -0
  100. package/docs/commands/mcp.md +35 -0
  101. package/docs/commands/memory.md +125 -0
  102. package/docs/commands/notify.md +83 -0
  103. package/docs/commands/observation.md +80 -0
  104. package/docs/commands/obsidian.md +60 -0
  105. package/docs/commands/pause.md +35 -0
  106. package/docs/commands/project.md +345 -0
  107. package/docs/commands/projects.md +364 -0
  108. package/docs/commands/registry.md +68 -0
  109. package/docs/commands/restore.md +31 -0
  110. package/docs/commands/sessions.md +25 -0
  111. package/docs/commands/setup.md +20 -0
  112. package/docs/commands/shell-init.md +18 -0
  113. package/docs/commands/skill.md +54 -0
  114. package/docs/commands/topic.md +46 -0
  115. package/docs/commands/update.md +18 -0
  116. package/docs/commands/zettel.md +151 -0
  117. package/docs/mcp-skill-guide.md +292 -0
  118. package/package.json +4 -2
  119. package/scripts/build-docs.mjs +371 -0
  120. package/src/hooks/ts/post-tool-use/observe.ts +43 -0
  121. package/dist/daemon-CSKj8Xm9.mjs.map +0 -1
  122. package/dist/db-BtuN768f.mjs +0 -206
  123. package/dist/db-BtuN768f.mjs.map +0 -1
  124. package/dist/indexer-D7MvSQPY.mjs +0 -1
  125. package/dist/kg-extraction-iR1BKKWK.mjs.map +0 -1
  126. package/dist/sync-CmBKOL3K.mjs.map +0 -1
@@ -0,0 +1,364 @@
1
+ <!-- GENERATED by scripts/build-docs.mjs from the live Commander tree (src/cli/program.ts). Do not edit by hand. -->
2
+
3
+ # pai projects
4
+
5
+ > Manage registered projects (list, cd, add, info, ...)
6
+
7
+ ## Synopsis
8
+
9
+ ```
10
+ pai projects <subcommand> [options]
11
+ ```
12
+
13
+ ## Subcommands
14
+
15
+ | Command | Description |
16
+ |---------|-------------|
17
+ | [`pai projects list`](#pai-projects-list) | Show the unified deduped listing (same as `pai`). |
18
+ | [`pai projects list-raw`](#pai-projects-list-raw) | Raw registry listing with slug, path, status, last_active columns |
19
+ | [`pai projects cd <identifier>`](#pai-projects-cd-identifier) | cd to a project directory. Short form: pai cd <name> |
20
+ | [`pai projects add <path>`](#pai-projects-add-path) | Register a project directory in the PAI registry |
21
+ | [`pai projects info <slug>`](#pai-projects-info-slug) | Show full details for a project |
22
+ | [`pai projects archive <slug>`](#pai-projects-archive-slug) | Archive a project |
23
+ | [`pai projects unarchive <slug>`](#pai-projects-unarchive-slug) | Restore an archived project to active status |
24
+ | [`pai projects move <slug> <new-path>`](#pai-projects-move-slug-new-path) | Update the root path for a project |
25
+ | [`pai projects rebind <slug> <new-path>`](#pai-projects-rebind-slug-new-path) | Manually update the root_path for a project (for when auto-detect found multiple matches). |
26
+ | [`pai projects tag <slug> <tags...>`](#pai-projects-tag-slug-tags) | Add one or more tags to a project |
27
+ | [`pai projects alias <slug> <alias>`](#pai-projects-alias-slug-alias) | Register an alternative slug for a project |
28
+ | [`pai projects edit <slug>`](#pai-projects-edit-slug) | Edit project metadata |
29
+ | [`pai projects detect [path]`](#pai-projects-detect-path) | Detect which registered project the given path (or CWD) belongs to |
30
+ | [`pai projects health`](#pai-projects-health) | Audit all registered projects: check which paths still exist, find moved/dead projects |
31
+ | [`pai projects consolidate <identifier>`](#pai-projects-consolidate-identifier) | Consolidate scattered ~/.claude/projects/.../Notes/ directories for a project into its canonical Notes/ location |
32
+ | [`pai projects promote`](#pai-projects-promote) | Promote a session note into a new standalone project |
33
+ | [`pai projects go <query>`](#pai-projects-go-query) | Print the root path for a project by slug, partial name, or fuzzy match. |
34
+ | [`pai projects name <identifier> <shortname>`](#pai-projects-name-identifier-shortname) | Give a project a short name for quick access |
35
+ | [`pai projects unname <shortname>`](#pai-projects-unname-shortname) | Remove a project's short name |
36
+ | [`pai projects names`](#pai-projects-names) | List named projects (your curated shortlist) |
37
+ | [`pai projects config [identifier]`](#pai-projects-config-identifier) | View or modify session launch config for a project. |
38
+
39
+ ### pai projects list
40
+
41
+ Show the unified deduped listing (same as `pai`).
42
+
43
+ Use --all to include cold / zero-session / archived projects.
44
+
45
+ **Options**
46
+
47
+ | Option | Description | Default |
48
+ |--------|-------------|---------|
49
+ | `--all` | Show all entries including cold / zero-session / archived projects | |
50
+ | `-n, --n <count>` | Max rows to show | `20` |
51
+
52
+
53
+ ### pai projects list-raw
54
+
55
+ Raw registry listing with slug, path, status, last_active columns
56
+
57
+ **Options**
58
+
59
+ | Option | Description | Default |
60
+ |--------|-------------|---------|
61
+ | `--all` | Include archived projects (default: active only) | |
62
+ | `--status <status>` | Filter by status: active \| archived | |
63
+ | `--tag <tag>` | Filter by tag | |
64
+ | `--type <type>` | Filter by type | |
65
+
66
+
67
+ ### pai projects cd <identifier>
68
+
69
+ cd to a project directory. Short form: pai cd <name>
70
+
71
+ (The shell wrapper handles the actual cd; pure output here.)
72
+ Auto-detects moved projects when the registered path no longer exists.
73
+
74
+ **Arguments**
75
+
76
+ | Argument | Kind |
77
+ |----------|------|
78
+ | `<identifier>` | required |
79
+
80
+
81
+ ### pai projects add <path>
82
+
83
+ Register a project directory in the PAI registry
84
+
85
+ **Arguments**
86
+
87
+ | Argument | Kind |
88
+ |----------|------|
89
+ | `<path>` | required |
90
+
91
+ **Options**
92
+
93
+ | Option | Description | Default |
94
+ |--------|-------------|---------|
95
+ | `--slug <slug>` | Override auto-generated slug | |
96
+ | `--type <type>` | Project type: local \| central \| obsidian-linked \| external | `local` |
97
+ | `--display-name <name>` | Human-readable display name | |
98
+
99
+
100
+ ### pai projects info <slug>
101
+
102
+ Show full details for a project
103
+
104
+ **Arguments**
105
+
106
+ | Argument | Kind |
107
+ |----------|------|
108
+ | `<slug>` | required |
109
+
110
+
111
+ ### pai projects archive <slug>
112
+
113
+ Archive a project
114
+
115
+ **Arguments**
116
+
117
+ | Argument | Kind |
118
+ |----------|------|
119
+ | `<slug>` | required |
120
+
121
+
122
+ ### pai projects unarchive <slug>
123
+
124
+ Restore an archived project to active status
125
+
126
+ **Arguments**
127
+
128
+ | Argument | Kind |
129
+ |----------|------|
130
+ | `<slug>` | required |
131
+
132
+
133
+ ### pai projects move <slug> <new-path>
134
+
135
+ Update the root path for a project
136
+
137
+ **Arguments**
138
+
139
+ | Argument | Kind |
140
+ |----------|------|
141
+ | `<slug>` | required |
142
+ | `<new-path>` | required |
143
+
144
+
145
+ ### pai projects rebind <slug> <new-path>
146
+
147
+ Manually update the root_path for a project (for when auto-detect found multiple matches).
148
+
149
+ Validates the new path exists and is a directory, then updates the registry.
150
+
151
+ **Arguments**
152
+
153
+ | Argument | Kind |
154
+ |----------|------|
155
+ | `<slug>` | required |
156
+ | `<new-path>` | required |
157
+
158
+
159
+ ### pai projects tag <slug> <tags...>
160
+
161
+ Add one or more tags to a project
162
+
163
+ **Arguments**
164
+
165
+ | Argument | Kind |
166
+ |----------|------|
167
+ | `<slug>` | required |
168
+ | `<tags...>` | variadic |
169
+
170
+
171
+ ### pai projects alias <slug> <alias>
172
+
173
+ Register an alternative slug for a project
174
+
175
+ **Arguments**
176
+
177
+ | Argument | Kind |
178
+ |----------|------|
179
+ | `<slug>` | required |
180
+ | `<alias>` | required |
181
+
182
+
183
+ ### pai projects edit <slug>
184
+
185
+ Edit project metadata
186
+
187
+ **Arguments**
188
+
189
+ | Argument | Kind |
190
+ |----------|------|
191
+ | `<slug>` | required |
192
+
193
+ **Options**
194
+
195
+ | Option | Description | Default |
196
+ |--------|-------------|---------|
197
+ | `--display-name <name>` | New display name | |
198
+ | `--type <type>` | New type | |
199
+
200
+
201
+ ### pai projects detect [path]
202
+
203
+ Detect which registered project the given path (or CWD) belongs to
204
+
205
+ **Arguments**
206
+
207
+ | Argument | Kind |
208
+ |----------|------|
209
+ | `[path]` | optional |
210
+
211
+ **Options**
212
+
213
+ | Option | Description | Default |
214
+ |--------|-------------|---------|
215
+ | `--json` | Output raw JSON instead of human-readable text | |
216
+
217
+
218
+ ### pai projects health
219
+
220
+ Audit all registered projects: check which paths still exist, find moved/dead projects
221
+
222
+ **Options**
223
+
224
+ | Option | Description | Default |
225
+ |--------|-------------|---------|
226
+ | `--fix` | Auto-remediate where possible | |
227
+ | `--json` | Output raw JSON report | |
228
+ | `--status <category>` | Filter output to: active \| stale \| dead | |
229
+
230
+
231
+ ### pai projects consolidate <identifier>
232
+
233
+ Consolidate scattered ~/.claude/projects/.../Notes/ directories for a project into its canonical Notes/ location
234
+
235
+ **Arguments**
236
+
237
+ | Argument | Kind |
238
+ |----------|------|
239
+ | `<identifier>` | required |
240
+
241
+ **Options**
242
+
243
+ | Option | Description | Default |
244
+ |--------|-------------|---------|
245
+ | `--yes` | Perform consolidation without confirmation prompt | |
246
+ | `--dry-run` | Preview what would be moved without making changes | |
247
+
248
+
249
+ ### pai projects promote
250
+
251
+ Promote a session note into a new standalone project
252
+
253
+ **Options**
254
+
255
+ | Option | Description | Default |
256
+ |--------|-------------|---------|
257
+ | `--from-session <path>` | Path to the session note markdown file | |
258
+ | `--to <path>` | Directory path for the new project (must not exist) | |
259
+ | `--name <name>` | Display name for the new project (derived from filename if omitted) | |
260
+
261
+
262
+ ### pai projects go <query>
263
+
264
+ Print the root path for a project by slug, partial name, or fuzzy match.
265
+
266
+ Designed for shell integration: cd $(pai projects go <query>)
267
+
268
+ **Arguments**
269
+
270
+ | Argument | Kind |
271
+ |----------|------|
272
+ | `<query>` | required |
273
+
274
+
275
+ ### pai projects name <identifier> <shortname>
276
+
277
+ Give a project a short name for quick access
278
+
279
+ **Arguments**
280
+
281
+ | Argument | Kind |
282
+ |----------|------|
283
+ | `<identifier>` | required |
284
+ | `<shortname>` | required |
285
+
286
+ **Options**
287
+
288
+ | Option | Description | Default |
289
+ |--------|-------------|---------|
290
+ | `--permission <level>` | Permission level: full \| trusted \| default | |
291
+
292
+
293
+ ### pai projects unname <shortname>
294
+
295
+ Remove a project's short name
296
+
297
+ **Arguments**
298
+
299
+ | Argument | Kind |
300
+ |----------|------|
301
+ | `<shortname>` | required |
302
+
303
+
304
+ ### pai projects names
305
+
306
+ List named projects (your curated shortlist)
307
+
308
+ **Options**
309
+
310
+ | Option | Description | Default |
311
+ |--------|-------------|---------|
312
+ | `--json` | Output JSON for AIBroker consumption | |
313
+
314
+
315
+ ### pai projects config [identifier]
316
+
317
+ View or modify session launch config for a project.
318
+
319
+ Use --options to discover available keys and presets.
320
+
321
+ **Arguments**
322
+
323
+ | Argument | Kind |
324
+ |----------|------|
325
+ | `[identifier]` | optional |
326
+
327
+ **Options**
328
+
329
+ | Option | Description | Default |
330
+ |--------|-------------|---------|
331
+ | `--set <key=value...>` | Set config values (repeatable) | `` |
332
+ | `--unset <key...>` | Remove config keys (repeatable, use env.KEY for env vars) | `` |
333
+ | `--preset <name>` | Apply a permission preset: full \| trusted \| default | |
334
+ | `--defaults` | Manage global session defaults instead of a project | |
335
+ | `--options` | List available config keys and presets | |
336
+ | `--json` | Output JSON | |
337
+ | `--reset` | Reset config to empty (inherit global defaults) | |
338
+
339
+
340
+ ## Examples
341
+
342
+ ```bash
343
+ # Jump into a project directory (with the shell wrapper installed)
344
+ pai cd pai
345
+
346
+ # Register the current directory as a project
347
+ pai projects add .
348
+
349
+ # Show everything known about a project
350
+ pai projects info pai
351
+
352
+ # Repair a project whose folder moved on disk
353
+ pai projects rebind pai /new/path/to/pai
354
+
355
+ # Audit all registered projects for dead / moved paths
356
+ pai projects health --fix
357
+ ```
358
+
359
+ ## See also
360
+
361
+ [`pai backup`](backup.md) · [`pai clear-names`](clear-names.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai end`](end.md) · [`pai help`](help.md) · [`pai kg`](kg.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai pause`](pause.md) · [`pai project`](project.md) · [`pai registry`](registry.md) · [`pai restore`](restore.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai zettel`](zettel.md)
362
+
363
+ Run `pai help <area>` to read any of these in the terminal.
364
+
@@ -0,0 +1,68 @@
1
+ <!-- GENERATED by scripts/build-docs.mjs from the live Commander tree (src/cli/program.ts). Do not edit by hand. -->
2
+
3
+ # pai registry
4
+
5
+ > Registry maintenance: scan, migrate, stats, rebuild
6
+
7
+ ## Synopsis
8
+
9
+ ```
10
+ pai registry <subcommand> [options]
11
+ ```
12
+
13
+ ## Subcommands
14
+
15
+ | Command | Description |
16
+ |---------|-------------|
17
+ | [`pai registry scan`](#pai-registry-scan) | Walk ~/.claude/projects/ and configured scan_dirs, upsert all projects |
18
+ | [`pai registry migrate`](#pai-registry-migrate) | Import data from ~/.claude/session-registry.json |
19
+ | [`pai registry stats`](#pai-registry-stats) | Show summary statistics for the registry |
20
+ | [`pai registry rebuild`](#pai-registry-rebuild) | Erase all registry data and rebuild from the filesystem (destructive) |
21
+ | [`pai registry lookup`](#pai-registry-lookup) | Find the project slug for a filesystem path (for use in scripts) |
22
+
23
+ ### pai registry scan
24
+
25
+ Walk ~/.claude/projects/ and configured scan_dirs, upsert all projects
26
+
27
+ **Options**
28
+
29
+ | Option | Description | Default |
30
+ |--------|-------------|---------|
31
+ | `--add-dir <path>` | Add a directory to scan_dirs config | |
32
+ | `--remove-dir <path>` | Remove a directory from scan_dirs config | |
33
+ | `--show-dirs` | Show currently configured scan directories | |
34
+ | `--quick` | Minimal output mode (used by hooks and daemon) | |
35
+
36
+
37
+ ### pai registry migrate
38
+
39
+ Import data from ~/.claude/session-registry.json
40
+
41
+
42
+ ### pai registry stats
43
+
44
+ Show summary statistics for the registry
45
+
46
+
47
+ ### pai registry rebuild
48
+
49
+ Erase all registry data and rebuild from the filesystem (destructive)
50
+
51
+
52
+ ### pai registry lookup
53
+
54
+ Find the project slug for a filesystem path (for use in scripts)
55
+
56
+ **Options**
57
+
58
+ | Option | Description | Default |
59
+ |--------|-------------|---------|
60
+ | `--path <path>` | Filesystem path to look up | |
61
+
62
+
63
+ ## See also
64
+
65
+ [`pai backup`](backup.md) · [`pai clear-names`](clear-names.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai end`](end.md) · [`pai help`](help.md) · [`pai kg`](kg.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai pause`](pause.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai restore`](restore.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai zettel`](zettel.md)
66
+
67
+ Run `pai help <area>` to read any of these in the terminal.
68
+
@@ -0,0 +1,31 @@
1
+ <!-- GENERATED by scripts/build-docs.mjs from the live Commander tree (src/cli/program.ts). Do not edit by hand. -->
2
+
3
+ # pai restore
4
+
5
+ > Restore from a backup directory (created by pai backup)
6
+
7
+ ## Synopsis
8
+
9
+ ```
10
+ pai restore [backup-path] [options]
11
+ ```
12
+
13
+ ## Arguments
14
+
15
+ | Argument | Kind |
16
+ |----------|------|
17
+ | `[backup-path]` | optional |
18
+
19
+ ## Options
20
+
21
+ | Option | Description | Default |
22
+ |--------|-------------|---------|
23
+ | `--no-postgres` | Skip restoring the Postgres database | |
24
+ | `--yes` | Skip confirmation prompt (non-interactive) | |
25
+
26
+ ## See also
27
+
28
+ [`pai backup`](backup.md) · [`pai clear-names`](clear-names.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai end`](end.md) · [`pai help`](help.md) · [`pai kg`](kg.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai pause`](pause.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai registry`](registry.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai zettel`](zettel.md)
29
+
30
+ Run `pai help <area>` to read any of these in the terminal.
31
+
@@ -0,0 +1,25 @@
1
+ <!-- GENERATED by scripts/build-docs.mjs from the live Commander tree (src/cli/program.ts). Do not edit by hand. -->
2
+
3
+ # pai sessions
4
+
5
+ > Alias for `pai` — show the unified deduped listing.
6
+
7
+ ## Synopsis
8
+
9
+ ```
10
+ pai sessions [options]
11
+ ```
12
+
13
+ ## Options
14
+
15
+ | Option | Description | Default |
16
+ |--------|-------------|---------|
17
+ | `--all` | Show all entries including cold / zero-session / archived projects | |
18
+ | `-n, --n <count>` | Max candidates for history search | `20` |
19
+
20
+ ## See also
21
+
22
+ [`pai backup`](backup.md) · [`pai clear-names`](clear-names.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai end`](end.md) · [`pai help`](help.md) · [`pai kg`](kg.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai pause`](pause.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai registry`](registry.md) · [`pai restore`](restore.md) · [`pai setup`](setup.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai zettel`](zettel.md)
23
+
24
+ Run `pai help <area>` to read any of these in the terminal.
25
+
@@ -0,0 +1,20 @@
1
+ <!-- GENERATED by scripts/build-docs.mjs from the live Commander tree (src/cli/program.ts). Do not edit by hand. -->
2
+
3
+ # pai setup
4
+
5
+ > Interactive setup wizard — configure storage, embeddings, agent config, and indexing
6
+
7
+ **Aliases:** `install`
8
+
9
+ ## Synopsis
10
+
11
+ ```
12
+ pai setup
13
+ ```
14
+
15
+ ## See also
16
+
17
+ [`pai backup`](backup.md) · [`pai clear-names`](clear-names.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai end`](end.md) · [`pai help`](help.md) · [`pai kg`](kg.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai pause`](pause.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai registry`](registry.md) · [`pai restore`](restore.md) · [`pai sessions`](sessions.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai zettel`](zettel.md)
18
+
19
+ Run `pai help <area>` to read any of these in the terminal.
20
+
@@ -0,0 +1,18 @@
1
+ <!-- GENERATED by scripts/build-docs.mjs from the live Commander tree (src/cli/program.ts). Do not edit by hand. -->
2
+
3
+ # pai shell-init
4
+
5
+ > Emit shell integration code. Add to ~/.zshrc: eval "$(pai shell-init)"
6
+
7
+ ## Synopsis
8
+
9
+ ```
10
+ pai shell-init
11
+ ```
12
+
13
+ ## See also
14
+
15
+ [`pai backup`](backup.md) · [`pai clear-names`](clear-names.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai end`](end.md) · [`pai help`](help.md) · [`pai kg`](kg.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai pause`](pause.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai registry`](registry.md) · [`pai restore`](restore.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai skill`](skill.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai zettel`](zettel.md)
16
+
17
+ Run `pai help <area>` to read any of these in the terminal.
18
+
@@ -0,0 +1,54 @@
1
+ <!-- GENERATED by scripts/build-docs.mjs from the live Commander tree (src/cli/program.ts). Do not edit by hand. -->
2
+
3
+ # pai skill
4
+
5
+ > Skill telemetry and (future) discovery for the self-educating skill system
6
+
7
+ ## Synopsis
8
+
9
+ ```
10
+ pai skill <subcommand> [options]
11
+ ```
12
+
13
+ ## Subcommands
14
+
15
+ | Command | Description |
16
+ |---------|-------------|
17
+ | [`pai skill telemetry`](#pai-skill-telemetry) | Show skill-invocation telemetry (triggers, last used, projects) |
18
+
19
+ ### pai skill telemetry
20
+
21
+ Show skill-invocation telemetry (triggers, last used, projects)
22
+
23
+ **Options**
24
+
25
+ | Option | Description | Default |
26
+ |--------|-------------|---------|
27
+ | `--scope <scope>` | Governance scope | `default` |
28
+ | `--status <status>` | Filter by status: trial \| active \| archived | |
29
+ | `--limit <n>` | Maximum rows | `50` |
30
+ | `--json` | Output raw JSON | |
31
+
32
+
33
+ ## Examples
34
+
35
+ ```bash
36
+ # Which skills have actually been triggered, most-used first
37
+ pai skill telemetry
38
+
39
+ # Only skills still in trial (quarantined, not yet promoted)
40
+ pai skill telemetry --status trial
41
+
42
+ # Machine-readable output for dashboards
43
+ pai skill telemetry --json
44
+ ```
45
+
46
+ See `Notes/swarm/skills-self-educating.md` for the full self-educating loop
47
+ (discovery, sandbox trial, telemetry, adaptation).
48
+
49
+ ## See also
50
+
51
+ [`pai backup`](backup.md) · [`pai clear-names`](clear-names.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai end`](end.md) · [`pai help`](help.md) · [`pai kg`](kg.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai pause`](pause.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai registry`](registry.md) · [`pai restore`](restore.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai shell-init`](shell-init.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai zettel`](zettel.md)
52
+
53
+ Run `pai help <area>` to read any of these in the terminal.
54
+
@@ -0,0 +1,46 @@
1
+ <!-- GENERATED by scripts/build-docs.mjs from the live Commander tree (src/cli/program.ts). Do not edit by hand. -->
2
+
3
+ # pai topic
4
+
5
+ > Topic shift detection: check whether context has drifted to a different project
6
+
7
+ ## Synopsis
8
+
9
+ ```
10
+ pai topic <subcommand> [options]
11
+ ```
12
+
13
+ ## Subcommands
14
+
15
+ | Command | Description |
16
+ |---------|-------------|
17
+ | [`pai topic check <context>`](#pai-topic-check-context) | Check whether context text has drifted to a different project. |
18
+
19
+ ### pai topic check <context>
20
+
21
+ Check whether context text has drifted to a different project.
22
+
23
+ Example: pai topic check "working on JWT authentication"
24
+ Exit code 1 if a shift is detected (useful for hooks).
25
+
26
+ **Arguments**
27
+
28
+ | Argument | Kind |
29
+ |----------|------|
30
+ | `<context>` | required |
31
+
32
+ **Options**
33
+
34
+ | Option | Description | Default |
35
+ |--------|-------------|---------|
36
+ | `--current <slug>` | The project this session is currently routed to | |
37
+ | `--threshold <n>` | Confidence threshold [0-1] to declare a shift (default: 0.6) | |
38
+ | `--json` | Output raw JSON result | |
39
+
40
+
41
+ ## See also
42
+
43
+ [`pai backup`](backup.md) · [`pai clear-names`](clear-names.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai end`](end.md) · [`pai help`](help.md) · [`pai kg`](kg.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai pause`](pause.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai registry`](registry.md) · [`pai restore`](restore.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai update`](update.md) · [`pai zettel`](zettel.md)
44
+
45
+ Run `pai help <area>` to read any of these in the terminal.
46
+
@@ -0,0 +1,18 @@
1
+ <!-- GENERATED by scripts/build-docs.mjs from the live Commander tree (src/cli/program.ts). Do not edit by hand. -->
2
+
3
+ # pai update
4
+
5
+ > Update PAI from GitHub (git pull + rebuild + daemon restart). Preserves local customizations.
6
+
7
+ ## Synopsis
8
+
9
+ ```
10
+ pai update
11
+ ```
12
+
13
+ ## See also
14
+
15
+ [`pai backup`](backup.md) · [`pai clear-names`](clear-names.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai end`](end.md) · [`pai help`](help.md) · [`pai kg`](kg.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai pause`](pause.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai registry`](registry.md) · [`pai restore`](restore.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai topic`](topic.md) · [`pai zettel`](zettel.md)
16
+
17
+ Run `pai help <area>` to read any of these in the terminal.
18
+