@tekmidian/pai 0.62.0 → 0.64.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 (157) hide show
  1. package/ARCHITECTURE.md +3 -0
  2. package/README.md +19 -0
  3. package/dist/{aibroker-client-BYG-GtAg.mjs → aibroker-client-BpfuGPe5.mjs} +1 -1
  4. package/dist/{aibroker-client-BK1h--W_.mjs → aibroker-client-DRld7g6z.mjs} +2 -2
  5. package/dist/{aibroker-client-BK1h--W_.mjs.map → aibroker-client-DRld7g6z.mjs.map} +1 -1
  6. package/dist/{async-DNVWtQl2.mjs → async-CY_cd_8j.mjs} +5 -4
  7. package/dist/async-CY_cd_8j.mjs.map +1 -0
  8. package/dist/{auto-route-CF8WNaoy.mjs → auto-route-CPlam4iv.mjs} +2 -2
  9. package/dist/{auto-route-CF8WNaoy.mjs.map → auto-route-CPlam4iv.mjs.map} +1 -1
  10. package/dist/{chain-CuaDawK9.mjs → chain-o-g8AgE3.mjs} +4 -4
  11. package/dist/{chain-CuaDawK9.mjs.map → chain-o-g8AgE3.mjs.map} +1 -1
  12. package/dist/chunker-BH4i-F2b.mjs +300 -0
  13. package/dist/chunker-BH4i-F2b.mjs.map +1 -0
  14. package/dist/cli/index.mjs +20 -20
  15. package/dist/cli/program.mjs +20 -20
  16. package/dist/{clusters-Ci1mseh2.mjs → clusters-DsMf20PP.mjs} +2 -2
  17. package/dist/{clusters-Ci1mseh2.mjs.map → clusters-DsMf20PP.mjs.map} +1 -1
  18. package/dist/{config-CQCmH_gV.mjs → config-2wkz744W.mjs} +3 -3
  19. package/dist/{config-CQCmH_gV.mjs.map → config-2wkz744W.mjs.map} +1 -1
  20. package/dist/{config-DjXq_W42.mjs → config-CUTg6VDq.mjs} +1 -1
  21. package/dist/{context-handover-cache-DFNnlWv2.mjs → context-handover-cache-BOpjLsKe.mjs} +6 -6
  22. package/dist/{context-handover-cache-DFNnlWv2.mjs.map → context-handover-cache-BOpjLsKe.mjs.map} +1 -1
  23. package/dist/daemon/index.mjs +16 -16
  24. package/dist/{daemon-Bf7Eock4.mjs → daemon-BYieXduQ.mjs} +31 -30
  25. package/dist/{daemon-Bf7Eock4.mjs.map → daemon-BYieXduQ.mjs.map} +1 -1
  26. package/dist/daemon-mcp/index.mjs +20 -11
  27. package/dist/daemon-mcp/index.mjs.map +1 -1
  28. package/dist/daemon-q3xjHwa4.mjs +19 -0
  29. package/dist/{detector-3g7XuU1r.mjs → detector-BAlmrLQ0.mjs} +2 -2
  30. package/dist/{detector-3g7XuU1r.mjs.map → detector-BAlmrLQ0.mjs.map} +1 -1
  31. package/dist/detector-C-YmZsOi.mjs +3 -0
  32. package/dist/{embeddings-DfrYNIng.mjs → embeddings-DK9XfQic.mjs} +1 -1
  33. package/dist/{embeddings-DfrYNIng.mjs.map → embeddings-DK9XfQic.mjs.map} +1 -1
  34. package/dist/{embeddings-BNv3TQC5.mjs → embeddings-Xg8XLf2K.mjs} +1 -1
  35. package/dist/{factory-UO9_DFMN.mjs → factory-BMK0tC1b.mjs} +1 -1
  36. package/dist/{factory-BozZa81q.mjs → factory-C4We3xR_.mjs} +13 -13
  37. package/dist/{factory-BozZa81q.mjs.map → factory-C4We3xR_.mjs.map} +1 -1
  38. package/dist/{fallback-F0TWGVM2.mjs → fallback-ECiqCuh6.mjs} +5 -5
  39. package/dist/{fallback-F0TWGVM2.mjs.map → fallback-ECiqCuh6.mjs.map} +1 -1
  40. package/dist/federation-db-BZ8PyxFe.mjs +3 -0
  41. package/dist/{federation-db-w8e-sKjp.mjs → federation-db-CUgy0WYs.mjs} +2 -2
  42. package/dist/{federation-db-w8e-sKjp.mjs.map → federation-db-CUgy0WYs.mjs.map} +1 -1
  43. package/dist/{helpers-Dj-B314s.mjs → helpers-BRCJg0G3.mjs} +2 -208
  44. package/dist/helpers-BRCJg0G3.mjs.map +1 -0
  45. package/dist/hooks/load-project-context.mjs +6 -0
  46. package/dist/hooks/load-project-context.mjs.map +2 -2
  47. package/dist/index.d.mts +26 -8
  48. package/dist/index.d.mts.map +1 -1
  49. package/dist/index.mjs +5 -4
  50. package/dist/indexer-backend-CJ0RGgMz.mjs +5 -0
  51. package/dist/{ipc-client-Dasm515c.mjs → ipc-client-EhWY8XL0.mjs} +2 -2
  52. package/dist/{ipc-client-Dasm515c.mjs.map → ipc-client-EhWY8XL0.mjs.map} +1 -1
  53. package/dist/{kg-entity-Cj8Q6YmU.mjs → kg-entity-1uqCnk4u.mjs} +1 -1
  54. package/dist/{kg-entity-Cj8Q6YmU.mjs.map → kg-entity-1uqCnk4u.mjs.map} +1 -1
  55. package/dist/{latent-ideas-BRy6HNwg.mjs → latent-ideas-CSuKfiq3.mjs} +4 -4
  56. package/dist/{latent-ideas-BRy6HNwg.mjs.map → latent-ideas-CSuKfiq3.mjs.map} +1 -1
  57. package/dist/{link-boost-BptbAPuv.mjs → link-boost-BtjzfE3c.mjs} +1 -1
  58. package/dist/{link-boost-BptbAPuv.mjs.map → link-boost-BtjzfE3c.mjs.map} +1 -1
  59. package/dist/{main-resolver-BIft_FVF.mjs → main-resolver-DyOrwNYw.mjs} +6 -6
  60. package/dist/{main-resolver-BIft_FVF.mjs.map → main-resolver-DyOrwNYw.mjs.map} +1 -1
  61. package/dist/main-resolver-vN09bkXv.mjs +7 -0
  62. package/dist/merge-CXGz5wXz.mjs +3 -0
  63. package/dist/{merge-xoyfZQ4W.mjs → merge-D58n_-LZ.mjs} +1 -1
  64. package/dist/{merge-xoyfZQ4W.mjs.map → merge-D58n_-LZ.mjs.map} +1 -1
  65. package/dist/{neighborhood-D8uscnGy.mjs → neighborhood-DNuRelRB.mjs} +2 -2
  66. package/dist/{neighborhood-D8uscnGy.mjs.map → neighborhood-DNuRelRB.mjs.map} +1 -1
  67. package/dist/{note-context-CgffaUMh.mjs → note-context-D9JZ4-7o.mjs} +1 -1
  68. package/dist/{note-context-CgffaUMh.mjs.map → note-context-D9JZ4-7o.mjs.map} +1 -1
  69. package/dist/{pai-home-CeOIYltV.mjs → pai-home-UncxWxlX.mjs} +1 -1
  70. package/dist/{pai-home-CeOIYltV.mjs.map → pai-home-UncxWxlX.mjs.map} +1 -1
  71. package/dist/{planner-BG9ivPj0.mjs → planner-DgC3oSvb.mjs} +7 -7
  72. package/dist/{planner-BG9ivPj0.mjs.map → planner-DgC3oSvb.mjs.map} +1 -1
  73. package/dist/{postgres-CxD6_Dca.mjs → postgres-CcsRKir-.mjs} +6 -5
  74. package/dist/{postgres-CxD6_Dca.mjs.map → postgres-CcsRKir-.mjs.map} +1 -1
  75. package/dist/{program-BRvCzhjx.mjs → program-JhF2GgJY.mjs} +87 -74
  76. package/dist/program-JhF2GgJY.mjs.map +1 -0
  77. package/dist/query-feedback-BPHFFSu1.mjs +3 -0
  78. package/dist/{query-feedback-xz5axTj3.mjs → query-feedback-BPa0dISE.mjs} +2 -2
  79. package/dist/{query-feedback-xz5axTj3.mjs.map → query-feedback-BPa0dISE.mjs.map} +1 -1
  80. package/dist/{registry-db-Bkpbp7Gf.mjs → registry-db-DCzdI4sC.mjs} +2 -2
  81. package/dist/{registry-db-Bkpbp7Gf.mjs.map → registry-db-DCzdI4sC.mjs.map} +1 -1
  82. package/dist/registry-db-Hphlj3H4.mjs +3 -0
  83. package/dist/{registry-postgres-B07-hmn8.mjs → registry-postgres-BUnkHKYs.mjs} +2 -2
  84. package/dist/{registry-postgres-B07-hmn8.mjs.map → registry-postgres-BUnkHKYs.mjs.map} +1 -1
  85. package/dist/{registry-sqlite-CkGND_tm.mjs → registry-sqlite-CKYNwkUv.mjs} +2 -2
  86. package/dist/{registry-sqlite-CkGND_tm.mjs.map → registry-sqlite-CKYNwkUv.mjs.map} +1 -1
  87. package/dist/{reranker-BS5gqGeF.mjs → reranker-CFiEzHQu.mjs} +1 -1
  88. package/dist/{reranker-CRVawoEh.mjs → reranker-DKv80KO5.mjs} +1 -1
  89. package/dist/{reranker-CRVawoEh.mjs.map → reranker-DKv80KO5.mjs.map} +1 -1
  90. package/dist/{router-DjFZIoDl.mjs → router-CGZATlvm.mjs} +1 -1
  91. package/dist/{router-DjFZIoDl.mjs.map → router-CGZATlvm.mjs.map} +1 -1
  92. package/dist/router-CoA8Uy1m.mjs +3 -0
  93. package/dist/{run-BVQZI79D.mjs → run-W2rV_9j0.mjs} +78 -54
  94. package/dist/run-W2rV_9j0.mjs.map +1 -0
  95. package/dist/{run-env-BE5xyCwy.mjs → run-env-Br4Bc7Vz.mjs} +3 -3
  96. package/dist/{run-env-BE5xyCwy.mjs.map → run-env-Br4Bc7Vz.mjs.map} +1 -1
  97. package/dist/{runtime-paths-BRwDeBEg.mjs → runtime-paths-QGQJAekd.mjs} +1 -1
  98. package/dist/{runtime-paths-BRwDeBEg.mjs.map → runtime-paths-QGQJAekd.mjs.map} +1 -1
  99. package/dist/{search-BaTbyWjK.mjs → search-BOSphCJ1.mjs} +2 -2
  100. package/dist/{search-BaTbyWjK.mjs.map → search-BOSphCJ1.mjs.map} +1 -1
  101. package/dist/search-Bf3Kub3F.mjs +3 -0
  102. package/dist/{server-BY6AedmC.mjs → server-B71rem4q.mjs} +3 -3
  103. package/dist/{server-BY6AedmC.mjs.map → server-B71rem4q.mjs.map} +1 -1
  104. package/dist/{session-keepalive-DJA97K2X.mjs → session-keepalive-Dgil9hjw.mjs} +7 -7
  105. package/dist/{session-keepalive-DJA97K2X.mjs.map → session-keepalive-Dgil9hjw.mjs.map} +1 -1
  106. package/dist/{sources-BBe3AZ-W.mjs → sources-LcGptLA-.mjs} +1 -1
  107. package/dist/{sources-BBe3AZ-W.mjs.map → sources-LcGptLA-.mjs.map} +1 -1
  108. package/dist/{sqlite-CfKfuggn.mjs → sqlite-CAJcw2zL.mjs} +8 -7
  109. package/dist/sqlite-CAJcw2zL.mjs.map +1 -0
  110. package/dist/{state-n13uPK5B.mjs → state-CHltNjXI.mjs} +1 -1
  111. package/dist/{state-n13uPK5B.mjs.map → state-CHltNjXI.mjs.map} +1 -1
  112. package/dist/{state-CwlGAKgF.mjs → state-S9wlKarB.mjs} +1 -1
  113. package/dist/{stop-words-ClCwO8mZ.mjs → stop-words-BdQuaE9K.mjs} +1 -1
  114. package/dist/{stop-words-ClCwO8mZ.mjs.map → stop-words-BdQuaE9K.mjs.map} +1 -1
  115. package/dist/{themes-B2v7RNnA.mjs → themes-D1FQFthd.mjs} +3 -3
  116. package/dist/{themes-B2v7RNnA.mjs.map → themes-D1FQFthd.mjs.map} +1 -1
  117. package/dist/{tools-DFdPbX-X.mjs → tools-BFC-113F.mjs} +84 -68
  118. package/dist/tools-BFC-113F.mjs.map +1 -0
  119. package/dist/tools-BW7OXf-N.mjs +6 -0
  120. package/dist/{trace-BRflVyBi.mjs → trace-IDKK1VFs.mjs} +1 -1
  121. package/dist/{trace-BRflVyBi.mjs.map → trace-IDKK1VFs.mjs.map} +1 -1
  122. package/dist/{vault-indexer-mCFus_AM.mjs → vault-indexer-y6YC2-mh.mjs} +4 -3
  123. package/dist/vault-indexer-y6YC2-mh.mjs.map +1 -0
  124. package/dist/{wakeup-DO1O4udw.mjs → wakeup-CNZQZzsY.mjs} +3 -3
  125. package/dist/{wakeup-DO1O4udw.mjs.map → wakeup-CNZQZzsY.mjs.map} +1 -1
  126. package/dist/work-queue-worker-CkShUa0z.mjs +11 -0
  127. package/dist/{work-queue-worker-BbrC3I_R.mjs → work-queue-worker-Dy5FT2ak.mjs} +4 -4
  128. package/dist/{work-queue-worker-BbrC3I_R.mjs.map → work-queue-worker-Dy5FT2ak.mjs.map} +1 -1
  129. package/dist/{zettelkasten-BPxSOalU.mjs → zettelkasten-Dx-63BEk.mjs} +4 -4
  130. package/dist/{zettelkasten-BPxSOalU.mjs.map → zettelkasten-Dx-63BEk.mjs.map} +1 -1
  131. package/docs/commands/README.md +2 -0
  132. package/docs/commands/project.md +14 -5
  133. package/docs/commands/projects.md +14 -5
  134. package/gemini-extension.json +1 -1
  135. package/package.json +1 -1
  136. package/pai-plugin.json +1 -0
  137. package/src/hooks/ts/session-start/load-project-context.ts +9 -0
  138. package/dist/async-DNVWtQl2.mjs.map +0 -1
  139. package/dist/daemon-bJi1gDkG.mjs +0 -19
  140. package/dist/detector-DgDn56j-.mjs +0 -3
  141. package/dist/federation-db-CJDw_Pwq.mjs +0 -3
  142. package/dist/helpers-Dj-B314s.mjs.map +0 -1
  143. package/dist/indexer-backend-BN9rpp9O.mjs +0 -5
  144. package/dist/main-resolver-C9-poMdi.mjs +0 -7
  145. package/dist/merge-BncjJTfb.mjs +0 -3
  146. package/dist/program-BRvCzhjx.mjs.map +0 -1
  147. package/dist/query-feedback-COYCnvHQ.mjs +0 -3
  148. package/dist/registry-db-DwXpf7yF.mjs +0 -3
  149. package/dist/router-C5hPk9YP.mjs +0 -3
  150. package/dist/run-BVQZI79D.mjs.map +0 -1
  151. package/dist/search-BQHL5wDr.mjs +0 -3
  152. package/dist/sqlite-CfKfuggn.mjs.map +0 -1
  153. package/dist/tools-B52IvaU6.mjs +0 -6
  154. package/dist/tools-DFdPbX-X.mjs.map +0 -1
  155. package/dist/vault-indexer-mCFus_AM.mjs.map +0 -1
  156. package/dist/work-queue-worker-z-AATZ2t.mjs +0 -11
  157. /package/dist/{indexer-backend-Cc-_NK3q.mjs → indexer-backend-DotpxHJd.mjs} +0 -0
@@ -1,28 +1,28 @@
1
1
  import { _ as warn$1, a as fmtDate, c as ok$1, d as resolvePath, f as scaffoldProjectDirs, g as smartDecodeDir, h as slugify, i as err, m as slugFromPath, n as dim$1, o as header, p as shortenPath, r as encodeDir, s as now, t as bold$1, u as renderTable } from "./utils-C9HsYDpO.mjs";
2
2
  import { a as slugify$1, i as parseSessionFilename } from "./migrate-BD7D8EEh.mjs";
3
3
  import { n as ensurePaiMarker } from "./pai-marker-D1MMswkz.mjs";
4
- import { t as STOP_WORDS } from "./stop-words-ClCwO8mZ.mjs";
5
- import { t as applyRecencyBoost } from "./search-BaTbyWjK.mjs";
6
- import { a as getStorageBackend, i as getRegistryBackend, r as createStorageBackend, s as humanDuration } from "./factory-BozZa81q.mjs";
7
- import { a as formatDetectionJson, i as formatDetection, n as migrateIdentityFile, r as detectProject } from "./wakeup-DO1O4udw.mjs";
8
- import { B as claudeProjectsDir, C as findLatestNote, H as scanTranscriptFolders, I as resolveHome, L as saveScanConfig, M as cmdScan, N as loadScanConfig, P as migrateScanConfig, R as upsertProject, S as applyContinue, T as readBodyFile, U as transcriptFiles, V as findMovedProjects, d as migrateWorkQueue, g as migrateSummaryCooldowns, t as readContextHandoverCache, v as extractAndStoreTriples, w as findNotesDir$1, x as appendCheckpointToNote, z as upsertSession } from "./context-handover-cache-DFNnlWv2.mjs";
9
- import { a as paiHomePath, i as paiHomeDir, n as migratePaiDir, o as resolvePaiFile, r as migratePaiFile, t as PaiFileMigrationError } from "./pai-home-CeOIYltV.mjs";
10
- import { b as OWNER_LABEL_PREFIX, c as migrateConfigFile, d as readMainConfigRaw, f as writeMainConfigRaw, h as resolvedMainConfigPath, l as paiConfigFilePath, m as migrateMainConfigToYaml, n as CONFIG_FILE$2, o as expandHome, p as MainConfigError, s as loadConfig, t as CONFIG_DIR, u as paiConfigYamlFilePath, v as readJsonStrict, x as UNROUTED, y as writeJsonAtomic } from "./config-CQCmH_gV.mjs";
11
- import { a as schedulerLogPath, i as paiSocketPath, n as daemonLogPath, r as daemonPidPath } from "./runtime-paths-BRwDeBEg.mjs";
12
- import { B as contextWindowFromModelId, C as nativeAnthropicProvider, E as readWorkersSection, F as parseWorkersYamlDocument, I as relocateWorkersYaml, L as workersYamlLegacyNotice, M as inlineWorkersYamlKeys, N as migrateWorkersToYaml, P as needsWorkersYamlRelocation, R as workersYamlPath, S as maskKey, V as stripModelVariant, b as isModelCapability, f as PROVIDER_TAGS, j as initWorkersYaml, m as WorkersConfigError, r as ANTHROPIC_NATIVE, t as buildRunEnv, u as MODEL_CAPABILITIES, v as expandHome$1, y as getProviderOrNative, z as DEFAULT_CONTEXT_WINDOW } from "./run-env-BE5xyCwy.mjs";
13
- import { A as appendLedger, B as loadStatus, D as mergeWorker, E as git, G as saveStatus, J as longInlinePromptHint, K as setWorkerLabel, M as UNLABELED, O as uncommittedPaths, Q as expandMcpNames, R as isChatPane, T as gcWorktrees, V as loadStatuses, W as ownsPid, Y as parseRunnerArgs, Z as describeMcp, a as projectLaunchConfig, c as handoffFromInside, f as checkPaneForWorker, g as markControlsHeld, h as clickrControlsArgv, i as usageContextTokens, m as openPaneForWorker, n as runWorker, o as parseWorkerReport, p as openFollowPane, q as waitForTerminalStatus, r as testProvider, u as sayToWorker, w as discardWorker, z as isLive } from "./run-BVQZI79D.mjs";
14
- import { t as MergeError } from "./merge-xoyfZQ4W.mjs";
15
- import { n as oldFederationPath, t as federationDbPath } from "./federation-db-w8e-sKjp.mjs";
16
- import { r as registryDbPath, t as oldRegistryPath } from "./registry-db-Bkpbp7Gf.mjs";
17
- import { i as indexProjectWithBackend } from "./async-DNVWtQl2.mjs";
18
- import { t as PaiClient } from "./ipc-client-Dasm515c.mjs";
19
- import { A as getConfigValueOp, C as psOutput, D as resolveSpecPath, E as readSpecPrompt, M as setConfigValueOp, N as unsetConfigValueOp, O as MainConfigOpsError, S as followWorkers, T as statusLineOutput, _ as setWorkersEnabled, a as addProvider, b as updateProvider, c as describeModels, d as removeProvider, f as resolveProviderName, g as setProviderModel, h as setProviderEnabled, i as fallbackStatusText, j as listConfigOp, k as formatConfigGetOutput, l as describeProviders, m as setClass, n as fallbackOn, o as classTargetText, p as setCapabilityPreference, r as fallbackStatus, s as describeCapabilities, t as fallbackOff, u as modelPrefsText, v as unsetCapabilityPreference, w as replayOutput, x as useProvider, y as unsetClass } from "./fallback-F0TWGVM2.mjs";
20
- import { _ as resolveSessionByNameOrId, a as buildDeduped, c as hasConversation, d as providerResumePlan, f as restoreTopLevel, g as migrateSessionScanCache, h as fmtAge$1, l as launchInDir, m as printExitDir, o as normalizeName$2, p as resumeArgvText, s as renderDedupedSessions, t as cmdMain, u as launchPrompt, v as scanCacheFilePath, y as scanSessions } from "./main-resolver-BIft_FVF.mjs";
21
- import { n as queriesDirPath, t as migrateQueriesDir } from "./query-feedback-xz5axTj3.mjs";
22
- import { _ as statusPath, h as ledgerPath, m as eventsPath, n as ensureProxyRunning, p as ensureNoMcpConfig, r as stopProxy, t as DEFAULT_PROXY_PORT, v as workersLogDir } from "./server-BY6AedmC.mjs";
23
- import { i as sendToSession, n as fetchLiveSessions, r as revealItermSession, t as callAiBroker } from "./aibroker-client-BK1h--W_.mjs";
24
- import { a as totalUsageTokens, i as parseSessionUsage, r as sessionKeepaliveLedgerSummary, t as loadSessionKeepaliveState } from "./session-keepalive-DJA97K2X.mjs";
25
- import { t as runChain } from "./chain-CuaDawK9.mjs";
4
+ import { t as STOP_WORDS } from "./stop-words-BdQuaE9K.mjs";
5
+ import { t as applyRecencyBoost } from "./search-BOSphCJ1.mjs";
6
+ import { a as getStorageBackend, i as getRegistryBackend, r as createStorageBackend, s as humanDuration } from "./factory-C4We3xR_.mjs";
7
+ import { a as formatDetectionJson, i as formatDetection, n as migrateIdentityFile, r as detectProject } from "./wakeup-CNZQZzsY.mjs";
8
+ import { B as claudeProjectsDir, C as findLatestNote, H as scanTranscriptFolders, I as resolveHome, L as saveScanConfig, M as cmdScan, N as loadScanConfig, P as migrateScanConfig, R as upsertProject, S as applyContinue, T as readBodyFile, U as transcriptFiles, V as findMovedProjects, d as migrateWorkQueue, g as migrateSummaryCooldowns, t as readContextHandoverCache, v as extractAndStoreTriples, w as findNotesDir$1, x as appendCheckpointToNote, z as upsertSession } from "./context-handover-cache-BOpjLsKe.mjs";
9
+ import { a as paiHomePath, i as paiHomeDir, n as migratePaiDir, o as resolvePaiFile, r as migratePaiFile, t as PaiFileMigrationError } from "./pai-home-UncxWxlX.mjs";
10
+ import { b as OWNER_LABEL_PREFIX, c as migrateConfigFile, d as readMainConfigRaw, f as writeMainConfigRaw, h as resolvedMainConfigPath, l as paiConfigFilePath, m as migrateMainConfigToYaml, n as CONFIG_FILE$2, o as expandHome, p as MainConfigError, s as loadConfig, t as CONFIG_DIR, u as paiConfigYamlFilePath, v as readJsonStrict, x as UNROUTED, y as writeJsonAtomic } from "./config-2wkz744W.mjs";
11
+ import { a as schedulerLogPath, i as paiSocketPath, n as daemonLogPath, r as daemonPidPath } from "./runtime-paths-QGQJAekd.mjs";
12
+ import { B as contextWindowFromModelId, C as nativeAnthropicProvider, E as readWorkersSection, F as parseWorkersYamlDocument, I as relocateWorkersYaml, L as workersYamlLegacyNotice, M as inlineWorkersYamlKeys, N as migrateWorkersToYaml, P as needsWorkersYamlRelocation, R as workersYamlPath, S as maskKey, V as stripModelVariant, b as isModelCapability, f as PROVIDER_TAGS, j as initWorkersYaml, m as WorkersConfigError, r as ANTHROPIC_NATIVE, t as buildRunEnv, u as MODEL_CAPABILITIES, v as expandHome$1, y as getProviderOrNative, z as DEFAULT_CONTEXT_WINDOW } from "./run-env-Br4Bc7Vz.mjs";
13
+ import { $ as expandMcpNames, B as loadStatuses, C as discardWorker, D as uncommittedPaths, E as mergeWorker, G as setWorkerLabel, J as parseRunnerArgs, K as waitForTerminalStatus, L as isChatPane, Q as describeMcp, R as isLive, T as git, U as ownsPid, W as saveStatus, X as pinNotices, Z as projectLaunchConfig, a as parseWorkerReport, d as checkPaneForWorker, f as openFollowPane, h as markControlsHeld, i as usageContextTokens, j as UNLABELED, k as appendLedger, l as sayToWorker, m as clickrControlsArgv, n as runWorker, p as openPaneForWorker, q as longInlinePromptHint, r as testProvider, s as handoffFromInside, w as gcWorktrees, z as loadStatus } from "./run-W2rV_9j0.mjs";
14
+ import { t as MergeError } from "./merge-D58n_-LZ.mjs";
15
+ import { n as oldFederationPath, t as federationDbPath } from "./federation-db-CUgy0WYs.mjs";
16
+ import { r as registryDbPath, t as oldRegistryPath } from "./registry-db-DCzdI4sC.mjs";
17
+ import { i as indexProjectWithBackend } from "./async-CY_cd_8j.mjs";
18
+ import { t as PaiClient } from "./ipc-client-EhWY8XL0.mjs";
19
+ import { A as getConfigValueOp, C as psOutput, D as resolveSpecPath, E as readSpecPrompt, M as setConfigValueOp, N as unsetConfigValueOp, O as MainConfigOpsError, S as followWorkers, T as statusLineOutput, _ as setWorkersEnabled, a as addProvider, b as updateProvider, c as describeModels, d as removeProvider, f as resolveProviderName, g as setProviderModel, h as setProviderEnabled, i as fallbackStatusText, j as listConfigOp, k as formatConfigGetOutput, l as describeProviders, m as setClass, n as fallbackOn, o as classTargetText, p as setCapabilityPreference, r as fallbackStatus, s as describeCapabilities, t as fallbackOff, u as modelPrefsText, v as unsetCapabilityPreference, w as replayOutput, x as useProvider, y as unsetClass } from "./fallback-ECiqCuh6.mjs";
20
+ import { _ as resolveSessionByNameOrId, a as buildDeduped, c as hasConversation, d as providerResumePlan, f as restoreTopLevel, g as migrateSessionScanCache, h as fmtAge$1, l as launchInDir, m as printExitDir, o as normalizeName$2, p as resumeArgvText, s as renderDedupedSessions, t as cmdMain, u as launchPrompt, v as scanCacheFilePath, y as scanSessions } from "./main-resolver-DyOrwNYw.mjs";
21
+ import { n as queriesDirPath, t as migrateQueriesDir } from "./query-feedback-BPa0dISE.mjs";
22
+ import { _ as statusPath, h as ledgerPath, m as eventsPath, n as ensureProxyRunning, p as ensureNoMcpConfig, r as stopProxy, t as DEFAULT_PROXY_PORT, v as workersLogDir } from "./server-B71rem4q.mjs";
23
+ import { i as sendToSession, n as fetchLiveSessions, r as revealItermSession, t as callAiBroker } from "./aibroker-client-DRld7g6z.mjs";
24
+ import { a as totalUsageTokens, i as parseSessionUsage, r as sessionKeepaliveLedgerSummary, t as loadSessionKeepaliveState } from "./session-keepalive-Dgil9hjw.mjs";
25
+ import { t as runChain } from "./chain-o-g8AgE3.mjs";
26
26
  import { appendFileSync, chmodSync, closeSync, copyFileSync, cpSync, createReadStream, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readdirSync, readlinkSync, realpathSync, renameSync, statSync, symlinkSync, unlinkSync, writeFileSync } from "node:fs";
27
27
  import { homedir, platform, tmpdir, userInfo } from "node:os";
28
28
  import { basename, dirname, join, relative, resolve, sep } from "node:path";
@@ -161,7 +161,7 @@ async function cmdPromote(opts) {
161
161
  console.error(dim$1(` Pick a durable location for the new project.`));
162
162
  process.exit(1);
163
163
  }
164
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
164
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
165
165
  const registryBackend = await getRegistryBackend();
166
166
  const encodedDir = encodeDir(targetPath);
167
167
  if (await registryBackend.getProjectBySlug(slug) ?? await registryBackend.getProjectByRootPath(targetPath) ?? await registryBackend.getProjectByEncodedDir(encodedDir)) {
@@ -1324,7 +1324,7 @@ async function cmdConfig(identifier, opts) {
1324
1324
  console.log();
1325
1325
  }
1326
1326
  /**
1327
- * `pai project mcp [names...]` — the MCP servers this project's interactive
1327
+ * `pai project mcp [--set names | --clear]` — the MCP servers this project's interactive
1328
1328
  * supervisor session loads. Operates on whichever registered project's
1329
1329
  * root_path covers `opts.cwd` (default: process.cwd()) — run it from inside
1330
1330
  * the project, same as `pai projects here`. Unset (the default) means every
@@ -1332,6 +1332,11 @@ async function cmdConfig(identifier, opts) {
1332
1332
  * ~/.claude.json's mcpServers / workers.mcpSets the same way `--mcp` is.
1333
1333
  */
1334
1334
  async function cmdMcp$1(names, opts = {}) {
1335
+ if (names.length) {
1336
+ console.error(err("use --set <names> to change the pin; `pai project mcp` shows it"));
1337
+ process.exitCode = 1;
1338
+ return;
1339
+ }
1335
1340
  const project = await currentProject(opts.cwd);
1336
1341
  if (!project) {
1337
1342
  console.error(err("No registered project matches the current directory."));
@@ -1346,23 +1351,28 @@ async function cmdMcp$1(names, opts = {}) {
1346
1351
  console.log(ok$1(`MCP servers unset for ${bold$1(project.slug)} — all servers load again.`));
1347
1352
  return;
1348
1353
  }
1349
- if (!names.length) {
1354
+ if (opts.set === void 0) {
1350
1355
  console.log(config.mcp?.length ? config.mcp.join(",") : "unset (all)");
1351
1356
  return;
1352
1357
  }
1353
1358
  const { workers } = readWorkersSection();
1354
- config.mcp = expandMcpNames(splitNames(names), workers);
1359
+ config.mcp = expandMcpNames(splitNames([opts.set]), workers);
1355
1360
  await saveSessionConfig(project, config);
1356
1361
  console.log(ok$1(`MCP servers set for ${bold$1(project.slug)}: ${config.mcp.join(", ")}`));
1357
1362
  }
1358
1363
  /**
1359
- * `pai project tools [names...]` — the built-in tool schemas this project's
1364
+ * `pai project tools [--set names | --clear]` — the built-in tool schemas this project's
1360
1365
  * interactive supervisor session loads (Read, Edit, Bash, …). Same cwd-based
1361
1366
  * project resolution and unset semantics as `cmdMcp`. Unlike MCP names, tool
1362
1367
  * names are not validated against a fixed list — the harness itself rejects
1363
1368
  * an unrecognised one at launch.
1364
1369
  */
1365
1370
  async function cmdTools(names, opts = {}) {
1371
+ if (names.length) {
1372
+ console.error(err("use --set <names> to change the pin; `pai project tools` shows it"));
1373
+ process.exitCode = 1;
1374
+ return;
1375
+ }
1366
1376
  const project = await currentProject(opts.cwd);
1367
1377
  if (!project) {
1368
1378
  console.error(err("No registered project matches the current directory."));
@@ -1377,11 +1387,11 @@ async function cmdTools(names, opts = {}) {
1377
1387
  console.log(ok$1(`Tools unset for ${bold$1(project.slug)} — all built-in tools load again.`));
1378
1388
  return;
1379
1389
  }
1380
- if (!names.length) {
1390
+ if (opts.set === void 0) {
1381
1391
  console.log(config.tools?.length ? config.tools.join(",") : "unset (all)");
1382
1392
  return;
1383
1393
  }
1384
- config.tools = splitNames(names);
1394
+ config.tools = splitNames([opts.set]);
1385
1395
  await saveSessionConfig(project, config);
1386
1396
  console.log(ok$1(`Tools set for ${bold$1(project.slug)}: ${config.tools.join(", ")}`));
1387
1397
  }
@@ -2035,7 +2045,7 @@ async function cmdUnregister(slug, opts = {}) {
2035
2045
  //#region src/cli/commands/project/projects-index.ts
2036
2046
  function registerProjectsCommands(projectsCmd) {
2037
2047
  projectsCmd.command("list", { isDefault: true }).description("Show the unified deduped listing (same as `pai`).\nUse --all to include cold / zero-session / archived projects.").option("--all", "Show all entries including cold / zero-session / archived projects").option("-n, --n <count>", "Max rows to show", "20").action(async (opts) => {
2038
- const { cmdMain } = await import("./main-resolver-C9-poMdi.mjs");
2048
+ const { cmdMain } = await import("./main-resolver-vN09bkXv.mjs");
2039
2049
  await cmdMain(void 0, void 0, opts);
2040
2050
  });
2041
2051
  projectsCmd.command("list-raw").description("Raw registry listing with slug, path, status, last_active columns").option("--all", "Include archived projects (default: active only)").option("--status <status>", "Filter by status: active | archived").option("--tag <tag>", "Filter by tag").option("--type <type>", "Filter by type").action(async (opts) => {
@@ -2139,10 +2149,13 @@ function registerProjectsCommands(projectsCmd) {
2139
2149
  projectsCmd.command("config [identifier]").description("View or modify session launch config for a project.\nUse --options to discover available keys and presets.").option("--set <key=value...>", "Set config values (repeatable)", (v, prev) => [...prev, v], []).option("--unset <key...>", "Remove config keys (repeatable, use env.KEY for env vars)", (v, prev) => [...prev, v], []).option("--preset <name>", "Apply a permission preset: full | trusted | default").option("--defaults", "Manage global session defaults instead of a project").option("--options", "List available config keys and presets").option("--json", "Output JSON").option("--reset", "Reset config to empty (inherit global defaults)").action(async (identifier, opts) => {
2140
2150
  await cmdConfig(identifier, opts);
2141
2151
  });
2142
- projectsCmd.command("mcp [names...]").description("View or set the MCP servers this project's interactive supervisor session\nloads (run from inside the project, like `pai projects here`).\nNo names: print the current value. Names (comma-separated or repeated\nargs): set it, validated against ~/.claude.json's mcpServers.\n--clear: unset (all servers load — today's default).").option("--clear", "Unset — all MCP servers load again").action(async (names, opts) => {
2152
+ projectsCmd.command("mcp [names...]").description("View or set the MCP servers this project's interactive supervisor session\nloads (run from inside the project, like `pai projects here`).\nNo args: print the current value. --set <names> (comma-separated): set it,\nvalidated against ~/.claude.json's mcpServers. --clear: unset (all\nservers load — today's default). Positional names are an error.").option("--set <names>", "Set the pin (comma-separated server or set names)").option("--clear", "Unset — all MCP servers load again").action(async (names, opts) => {
2143
2153
  await cmdMcp$1(names, opts);
2144
2154
  });
2145
- projectsCmd.command("tools [names...]").description("View or set the built-in tool schemas this project's interactive\nsupervisor session loads (run from inside the project, like `pai projects\nhere`). No names: print the current value. Names (comma-separated or\nrepeated args): set it. --clear: unset (all tools load — today's default).").option("--clear", "Unset — all built-in tools load again").action(async (names, opts) => {
2155
+ projectsCmd.command("pins").description("Print one line per active MCP/tools pin for the current directory's project (nothing when unpinned)").action(async () => {
2156
+ for (const line of pinNotices(await projectLaunchConfig(process.cwd()))) console.log(line);
2157
+ });
2158
+ projectsCmd.command("tools [names...]").description("View or set the built-in tool schemas this project's interactive\nsupervisor session loads (run from inside the project, like `pai projects\nhere`). No args: print the current value. --set <names> (comma-separated):\nset it. --clear: unset (all tools load — today's default). Positional\nnames are an error.").option("--set <names>", "Set the pin (comma-separated tool names)").option("--clear", "Unset — all built-in tools load again").action(async (names, opts) => {
2146
2159
  await cmdTools(names, opts);
2147
2160
  });
2148
2161
  }
@@ -2898,7 +2911,7 @@ const DEFAULT_PAGE_SIZE = 500;
2898
2911
  async function runEmbed(backend, projectId, projectSlug, batchSize = 50, pageSize = DEFAULT_PAGE_SIZE) {
2899
2912
  const label = projectSlug ? `project ${projectSlug}` : "all projects";
2900
2913
  console.log(dim$1(`Generating embeddings for ${label} (this may take a while on first run)...`));
2901
- const { generateEmbeddings, serializeEmbedding } = await import("./embeddings-BNv3TQC5.mjs");
2914
+ const { generateEmbeddings, serializeEmbedding } = await import("./embeddings-Xg8XLf2K.mjs");
2902
2915
  const { chunks: totalEstimate } = projectId !== void 0 ? await backend.getProjectStats(projectId) : await backend.getStats();
2903
2916
  let done = 0;
2904
2917
  let after = null;
@@ -3062,7 +3075,7 @@ function registerSearchCommand(memoryCmd) {
3062
3075
  let results;
3063
3076
  if (mode === "keyword") results = await backend.searchKeyword(query, searchOpts);
3064
3077
  else {
3065
- const { generateEmbedding } = await import("./embeddings-BNv3TQC5.mjs");
3078
+ const { generateEmbedding } = await import("./embeddings-Xg8XLf2K.mjs");
3066
3079
  console.log(dim$1("Generating query embedding..."));
3067
3080
  const queryEmbedding = await generateEmbedding(query, true);
3068
3081
  if (mode === "semantic") results = await backend.searchSemantic(queryEmbedding, searchOpts);
@@ -3108,7 +3121,7 @@ function registerSearchCommand(memoryCmd) {
3108
3121
  return;
3109
3122
  }
3110
3123
  if (opts.rerank !== false) {
3111
- const { rerankResults } = await import("./reranker-BS5gqGeF.mjs");
3124
+ const { rerankResults } = await import("./reranker-CFiEzHQu.mjs");
3112
3125
  console.log(dim$1("Reranking with cross-encoder..."));
3113
3126
  results = await rerankResults(query, results, { topK: maxResults });
3114
3127
  }
@@ -3247,9 +3260,9 @@ function registerStatsCommands(memoryCmd) {
3247
3260
  //#region src/cli/commands/memory/sources-cmd.ts
3248
3261
  function registerSourcesCommand(memoryCmd) {
3249
3262
  memoryCmd.command("sources").description("Show what the indexer has taken in: composition by source, which roots\ncontent enters from, the heaviest single files, and how many chunks are\nrewritten per day (which distinguishes a finite backlog from a treadmill).").option("--limit <n>", "Rows per section (default 8)", "8").action(async (opts) => {
3250
- const { createStorageBackend } = await import("./factory-UO9_DFMN.mjs");
3251
- const { loadConfig } = await import("./config-DjXq_W42.mjs");
3252
- const { cmdMemorySources } = await import("./sources-BBe3AZ-W.mjs");
3263
+ const { createStorageBackend } = await import("./factory-BMK0tC1b.mjs");
3264
+ const { loadConfig } = await import("./config-CUTg6VDq.mjs");
3265
+ const { cmdMemorySources } = await import("./sources-LcGptLA-.mjs");
3253
3266
  let backend;
3254
3267
  try {
3255
3268
  backend = await createStorageBackend(loadConfig());
@@ -3949,8 +3962,8 @@ async function escalate(task, headline, detail, state, now, opts) {
3949
3962
  state.alarmedAt[task.id] = now;
3950
3963
  let delivered = false;
3951
3964
  try {
3952
- const { routeNotification } = await import("./router-C5hPk9YP.mjs");
3953
- const { loadConfig } = await import("./config-DjXq_W42.mjs");
3965
+ const { routeNotification } = await import("./router-CoA8Uy1m.mjs");
3966
+ const { loadConfig } = await import("./config-CUTg6VDq.mjs");
3954
3967
  delivered = (await routeNotification({
3955
3968
  event: "error",
3956
3969
  title: `PAI: ${headline}`,
@@ -3985,7 +3998,7 @@ async function escalate(task, headline, detail, state, now, opts) {
3985
3998
  async function alertParked(task, reason) {
3986
3999
  const text = `PAI parked "${task.title}" (${task.id}) — the scheduler will not retry it.\nReason: ${reason}\nTo release it: fix the cause, then move the due date — due_string, natural language only (e.g. "tomorrow 9am").`;
3987
4000
  try {
3988
- const { callAiBroker } = await import("./aibroker-client-BYG-GtAg.mjs");
4001
+ const { callAiBroker } = await import("./aibroker-client-BpfuGPe5.mjs");
3989
4002
  await callAiBroker("pailot_send", { text }, 8e3);
3990
4003
  } catch (e) {
3991
4004
  console.error(`[pai-poller] parked-task alert not delivered to PAILot (${e instanceof Error ? e.message : String(e)}): ${text}`);
@@ -6494,7 +6507,7 @@ const SERVERS = [{
6494
6507
  name: "pai",
6495
6508
  entry: "mcp/index.mjs",
6496
6509
  label: "PAI MCP server",
6497
- tools: "memory_search, memory_get, project_info, project_list, session_list, registry_search"
6510
+ tools: "memory_search, memory_get, memory_outline, project_info, project_list, session_list, registry_search"
6498
6511
  }];
6499
6512
  function cmdInstall$1() {
6500
6513
  const config = readClaudeJson();
@@ -7073,8 +7086,8 @@ function cmdLogs(opts) {
7073
7086
  }
7074
7087
  function registerDaemonCommands(daemonCmd) {
7075
7088
  daemonCmd.command("serve").description("Start the PAI daemon in the foreground").action(async () => {
7076
- const { serve } = await import("./daemon-bJi1gDkG.mjs");
7077
- const { loadConfig: lc, ensureConfigDir } = await import("./config-DjXq_W42.mjs");
7089
+ const { serve } = await import("./daemon-q3xjHwa4.mjs");
7090
+ const { loadConfig: lc, ensureConfigDir } = await import("./config-CUTg6VDq.mjs");
7078
7091
  ensureConfigDir();
7079
7092
  await serve(lc());
7080
7093
  });
@@ -9715,7 +9728,7 @@ async function cmdExplore(note, opts) {
9715
9728
  const depth = parseInt(opts.depth ?? "3", 10);
9716
9729
  const direction = opts.direction ?? "both";
9717
9730
  const mode = opts.mode ?? "all";
9718
- const { zettelExplore } = await import("./zettelkasten-BPxSOalU.mjs");
9731
+ const { zettelExplore } = await import("./zettelkasten-Dx-63BEk.mjs");
9719
9732
  const result = await zettelExplore(await getFedBackend(), {
9720
9733
  startNote: note,
9721
9734
  depth,
@@ -9780,7 +9793,7 @@ async function cmdHealth(opts) {
9780
9793
  const projectPath = opts.project;
9781
9794
  const recentDays = parseInt(opts.days ?? "30", 10);
9782
9795
  const includeTypes = opts.include ? opts.include.split(",").map((s) => s.trim()) : void 0;
9783
- const { zettelHealth } = await import("./zettelkasten-BPxSOalU.mjs");
9796
+ const { zettelHealth } = await import("./zettelkasten-Dx-63BEk.mjs");
9784
9797
  const result = await zettelHealth(await getFedBackend(), {
9785
9798
  scope,
9786
9799
  projectPath,
@@ -9851,7 +9864,7 @@ async function cmdSurprise(note, opts) {
9851
9864
  const limit = parseInt(opts.limit ?? "10", 10);
9852
9865
  const minSimilarity = parseFloat(opts.minSimilarity ?? "0.3");
9853
9866
  const minGraphDistance = parseInt(opts.minDistance ?? "3", 10);
9854
- const { zettelSurprise } = await import("./zettelkasten-BPxSOalU.mjs");
9867
+ const { zettelSurprise } = await import("./zettelkasten-Dx-63BEk.mjs");
9855
9868
  const backend = await getFedBackend();
9856
9869
  console.log();
9857
9870
  console.log(header(" PAI Zettel Surprise"));
@@ -9906,7 +9919,7 @@ async function cmdSuggest(note, opts) {
9906
9919
  const vaultProjectId = parseInt(opts.vaultProjectId, 10);
9907
9920
  const limit = parseInt(opts.limit ?? "5", 10);
9908
9921
  const excludeLinked = opts.excludeLinked !== false;
9909
- const { zettelSuggest } = await import("./zettelkasten-BPxSOalU.mjs");
9922
+ const { zettelSuggest } = await import("./zettelkasten-Dx-63BEk.mjs");
9910
9923
  const backend = await getFedBackend();
9911
9924
  console.log();
9912
9925
  console.log(header(" PAI Zettel Suggest"));
@@ -9959,7 +9972,7 @@ async function cmdConverse(question, opts) {
9959
9972
  const vaultProjectId = parseInt(opts.vaultProjectId, 10);
9960
9973
  const depth = parseInt(opts.depth ?? "2", 10);
9961
9974
  const limit = parseInt(opts.limit ?? "15", 10);
9962
- const { zettelConverse } = await import("./zettelkasten-BPxSOalU.mjs");
9975
+ const { zettelConverse } = await import("./zettelkasten-Dx-63BEk.mjs");
9963
9976
  const backend = await getFedBackend();
9964
9977
  console.log();
9965
9978
  console.log(header(" PAI Zettel Converse"));
@@ -10022,7 +10035,7 @@ async function cmdThemes(opts) {
10022
10035
  const minClusterSize = parseInt(opts.minSize ?? "3", 10);
10023
10036
  const maxThemes = parseInt(opts.maxThemes ?? "10", 10);
10024
10037
  const similarityThreshold = parseFloat(opts.threshold ?? "0.65");
10025
- const { zettelThemes } = await import("./zettelkasten-BPxSOalU.mjs");
10038
+ const { zettelThemes } = await import("./zettelkasten-Dx-63BEk.mjs");
10026
10039
  const backend = await getFedBackend();
10027
10040
  console.log();
10028
10041
  console.log(header(" PAI Zettel Themes"));
@@ -16091,7 +16104,7 @@ async function migrateToPostgres(opts = {}) {
16091
16104
  const dump = pgDump(container, pgConfig, dumpPath);
16092
16105
  if (!dump.ok) return refused(dump.reason, dryRun);
16093
16106
  }
16094
- const { PostgresBackend } = await import("./postgres-CxD6_Dca.mjs");
16107
+ const { PostgresBackend } = await import("./postgres-CcsRKir-.mjs");
16095
16108
  await PostgresBackend.ensureDatabase(pgConfig);
16096
16109
  const sqlite = new BetterSqlite3(sqliteFederationPath, { readonly: true });
16097
16110
  const registrySqlite = sqliteRegistryPath === sqliteFederationPath ? sqlite : new BetterSqlite3(sqliteRegistryPath, { readonly: true });
@@ -16662,7 +16675,7 @@ async function getSessionTags(registryBackend, sessionId) {
16662
16675
  * Session CRUD commands: list, info, rename, slug, tag, route, active, auto-route.
16663
16676
  */
16664
16677
  async function cmdList(projectSlug, opts) {
16665
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
16678
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
16666
16679
  const registryBackend = await getRegistryBackend();
16667
16680
  const limit = parseInt(opts.limit ?? "20", 10);
16668
16681
  let project;
@@ -16727,7 +16740,7 @@ async function cmdList(projectSlug, opts) {
16727
16740
  console.log(dim$1(` ${rows.length} session(s) shown (limit: ${limit})`));
16728
16741
  }
16729
16742
  async function cmdInfo(projectSlug, sessionNumber) {
16730
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
16743
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
16731
16744
  const registryBackend = await getRegistryBackend();
16732
16745
  const project = await getProject$1(registryBackend, projectSlug);
16733
16746
  if (!project) {
@@ -16751,7 +16764,7 @@ async function cmdInfo(projectSlug, sessionNumber) {
16751
16764
  console.log();
16752
16765
  }
16753
16766
  async function cmdRename(projectSlug, numberOrLatest, newSlug) {
16754
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
16767
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
16755
16768
  await cmdRenameWith(await getRegistryBackend(), projectSlug, numberOrLatest, newSlug);
16756
16769
  }
16757
16770
  async function cmdRenameWith(registryBackend, projectSlug, numberOrLatest, newSlug) {
@@ -16814,7 +16827,7 @@ async function cmdRenameWith(registryBackend, projectSlug, numberOrLatest, newSl
16814
16827
  console.log();
16815
16828
  }
16816
16829
  async function cmdSlug(projectSlug, numberOrLatest, opts) {
16817
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
16830
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
16818
16831
  const registryBackend = await getRegistryBackend();
16819
16832
  const project = await getProject$1(registryBackend, projectSlug);
16820
16833
  if (!project) {
@@ -16844,7 +16857,7 @@ async function cmdSlug(projectSlug, numberOrLatest, opts) {
16844
16857
  }
16845
16858
  }
16846
16859
  async function cmdTag(projectSlug, sessionNumber, rawTags) {
16847
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
16860
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
16848
16861
  const registryBackend = await getRegistryBackend();
16849
16862
  const project = await getProject$1(registryBackend, projectSlug);
16850
16863
  if (!project) {
@@ -16884,7 +16897,7 @@ async function cmdTag(projectSlug, sessionNumber, rawTags) {
16884
16897
  console.log();
16885
16898
  }
16886
16899
  async function cmdRoute(projectSlug, sessionNumber, targetProjectSlug, opts) {
16887
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
16900
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
16888
16901
  const registryBackend = await getRegistryBackend();
16889
16902
  const project = await getProject$1(registryBackend, projectSlug);
16890
16903
  if (!project) {
@@ -16926,7 +16939,7 @@ async function cmdRoute(projectSlug, sessionNumber, targetProjectSlug, opts) {
16926
16939
  console.log();
16927
16940
  }
16928
16941
  async function cmdActive(opts) {
16929
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
16942
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
16930
16943
  const registryBackend = await getRegistryBackend();
16931
16944
  const minutes = parseInt(opts.minutes ?? "60", 10);
16932
16945
  const cutoff = Date.now() - minutes * 60 * 1e3;
@@ -17013,9 +17026,9 @@ async function cmdActive(opts) {
17013
17026
  ], rows));
17014
17027
  }
17015
17028
  async function cmdAutoRoute(opts) {
17016
- const { autoRoute, formatAutoRouteJson } = await import("./auto-route-CF8WNaoy.mjs");
17017
- const { getRegistryBackend, createStorageBackend } = await import("./factory-UO9_DFMN.mjs");
17018
- const { loadConfig } = await import("./config-DjXq_W42.mjs");
17029
+ const { autoRoute, formatAutoRouteJson } = await import("./auto-route-CPlam4iv.mjs");
17030
+ const { getRegistryBackend, createStorageBackend } = await import("./factory-BMK0tC1b.mjs");
17031
+ const { loadConfig } = await import("./config-CUTg6VDq.mjs");
17019
17032
  const config = loadConfig();
17020
17033
  const registryBackend = await getRegistryBackend();
17021
17034
  const federation = await createStorageBackend(config);
@@ -17251,7 +17264,7 @@ async function cmdPause(opts) {
17251
17264
  process.exitCode = 1;
17252
17265
  return;
17253
17266
  }
17254
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
17267
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
17255
17268
  const registryBackend = await getRegistryBackend();
17256
17269
  const cwd = process.cwd();
17257
17270
  const project = await resolveProjectByCwd(registryBackend, cwd);
@@ -17646,7 +17659,7 @@ function buildStopBody(project, sessionId) {
17646
17659
  }
17647
17660
  }
17648
17661
  async function cmdHandover(projectSlug, numberOrLatest, sessionId) {
17649
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
17662
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
17650
17663
  const registryBackend = await getRegistryBackend();
17651
17664
  let project;
17652
17665
  if (projectSlug) {
@@ -17942,7 +17955,7 @@ function touchSentinel(rootPath) {
17942
17955
  async function cmdAutosave(opts) {
17943
17956
  const minGap = parseInt(opts.minGap ?? String(DEFAULT_MIN_GAP), 10);
17944
17957
  const cwd = process.cwd();
17945
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
17958
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
17946
17959
  const registryBackend = await getRegistryBackend();
17947
17960
  const project = await resolveProjectByCwd(registryBackend, cwd);
17948
17961
  if (!project) return;
@@ -20336,8 +20349,8 @@ async function analyzeProject(registryBackend, project) {
20336
20349
  async function countVectorDbPaths(oldPaths) {
20337
20350
  if (oldPaths.length === 0) return 0;
20338
20351
  try {
20339
- const { loadConfig } = await import("./config-DjXq_W42.mjs");
20340
- const { createStorageBackend } = await import("./factory-UO9_DFMN.mjs");
20352
+ const { loadConfig } = await import("./config-CUTg6VDq.mjs");
20353
+ const { createStorageBackend } = await import("./factory-BMK0tC1b.mjs");
20341
20354
  const config = loadConfig();
20342
20355
  if (config.storageBackend !== "postgres") return 0;
20343
20356
  const backend = await createStorageBackend(config);
@@ -20354,8 +20367,8 @@ async function countVectorDbPaths(oldPaths) {
20354
20367
  async function updateVectorDbPaths(moves) {
20355
20368
  if (moves.length === 0) return 0;
20356
20369
  try {
20357
- const { loadConfig } = await import("./config-DjXq_W42.mjs");
20358
- const { createStorageBackend } = await import("./factory-UO9_DFMN.mjs");
20370
+ const { loadConfig } = await import("./config-CUTg6VDq.mjs");
20371
+ const { createStorageBackend } = await import("./factory-BMK0tC1b.mjs");
20359
20372
  const config = loadConfig();
20360
20373
  if (config.storageBackend !== "postgres") return 0;
20361
20374
  const backend = await createStorageBackend(config);
@@ -20442,7 +20455,7 @@ async function displayDryRun(plans) {
20442
20455
  console.log();
20443
20456
  }
20444
20457
  async function executeCleanup(plans, skipReindex) {
20445
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
20458
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
20446
20459
  const registryBackend = await getRegistryBackend();
20447
20460
  let deleted = 0;
20448
20461
  let renamed = 0;
@@ -20639,7 +20652,7 @@ async function executeCleanup(plans, skipReindex) {
20639
20652
  //#region src/cli/commands/session-cleanup/index.ts
20640
20653
  function registerSessionCleanupCommand(sessionCmd) {
20641
20654
  sessionCmd.command("cleanup [project-slug]").description("Clean up session notes: delete empties, auto-name unnamed, move into YYYY/MM/ hierarchy, renumber").option("--execute", "Actually perform the cleanup (default is dry-run)").option("--no-renumber", "Skip renumbering sessions after deletions").option("--no-reindex", "Skip triggering memory re-index after moves").action(async (projectSlug, opts) => {
20642
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
20655
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
20643
20656
  const registryBackend = await getRegistryBackend();
20644
20657
  const dryRun = !opts.execute;
20645
20658
  const skipReindex = opts.reindex === false;
@@ -20709,7 +20722,7 @@ function finalizeNote(notePath) {
20709
20722
  }
20710
20723
  async function cmdEnd(opts) {
20711
20724
  await cmdPause(opts);
20712
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
20725
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
20713
20726
  const registryBackend = await getRegistryBackend();
20714
20727
  const cwd = process.cwd();
20715
20728
  const project = await registryBackend.findProjectByCwdPrefix(cwd);
@@ -21157,7 +21170,7 @@ async function cmdFind(query, opts) {
21157
21170
  */
21158
21171
  async function getProjects(includeArchived) {
21159
21172
  try {
21160
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
21173
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
21161
21174
  const rows = await (await getRegistryBackend()).listProjectsWithSessionStats();
21162
21175
  return includeArchived ? rows : rows.filter((p) => p.status === "active");
21163
21176
  } catch {
@@ -21631,7 +21644,7 @@ async function cmdPick(opts = {}) {
21631
21644
  const onRemove = async (rec) => {
21632
21645
  if (!rec.slug) return false;
21633
21646
  try {
21634
- const { getRegistryBackend } = await import("./factory-UO9_DFMN.mjs");
21647
+ const { getRegistryBackend } = await import("./factory-BMK0tC1b.mjs");
21635
21648
  const registryBackend = await getRegistryBackend();
21636
21649
  const project = await registryBackend.getProjectBySlug(rec.slug);
21637
21650
  if (!project || project.status !== "active") return false;
@@ -21916,4 +21929,4 @@ claude() {
21916
21929
 
21917
21930
  //#endregion
21918
21931
  export { drainStdio as n, buildProgram as t };
21919
- //# sourceMappingURL=program-BRvCzhjx.mjs.map
21932
+ //# sourceMappingURL=program-JhF2GgJY.mjs.map