@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.
- package/ARCHITECTURE.md +3 -0
- package/README.md +19 -0
- package/dist/{aibroker-client-BYG-GtAg.mjs → aibroker-client-BpfuGPe5.mjs} +1 -1
- package/dist/{aibroker-client-BK1h--W_.mjs → aibroker-client-DRld7g6z.mjs} +2 -2
- package/dist/{aibroker-client-BK1h--W_.mjs.map → aibroker-client-DRld7g6z.mjs.map} +1 -1
- package/dist/{async-DNVWtQl2.mjs → async-CY_cd_8j.mjs} +5 -4
- package/dist/async-CY_cd_8j.mjs.map +1 -0
- package/dist/{auto-route-CF8WNaoy.mjs → auto-route-CPlam4iv.mjs} +2 -2
- package/dist/{auto-route-CF8WNaoy.mjs.map → auto-route-CPlam4iv.mjs.map} +1 -1
- package/dist/{chain-CuaDawK9.mjs → chain-o-g8AgE3.mjs} +4 -4
- package/dist/{chain-CuaDawK9.mjs.map → chain-o-g8AgE3.mjs.map} +1 -1
- package/dist/chunker-BH4i-F2b.mjs +300 -0
- package/dist/chunker-BH4i-F2b.mjs.map +1 -0
- package/dist/cli/index.mjs +20 -20
- package/dist/cli/program.mjs +20 -20
- package/dist/{clusters-Ci1mseh2.mjs → clusters-DsMf20PP.mjs} +2 -2
- package/dist/{clusters-Ci1mseh2.mjs.map → clusters-DsMf20PP.mjs.map} +1 -1
- package/dist/{config-CQCmH_gV.mjs → config-2wkz744W.mjs} +3 -3
- package/dist/{config-CQCmH_gV.mjs.map → config-2wkz744W.mjs.map} +1 -1
- package/dist/{config-DjXq_W42.mjs → config-CUTg6VDq.mjs} +1 -1
- package/dist/{context-handover-cache-DFNnlWv2.mjs → context-handover-cache-BOpjLsKe.mjs} +6 -6
- package/dist/{context-handover-cache-DFNnlWv2.mjs.map → context-handover-cache-BOpjLsKe.mjs.map} +1 -1
- package/dist/daemon/index.mjs +16 -16
- package/dist/{daemon-Bf7Eock4.mjs → daemon-BYieXduQ.mjs} +31 -30
- package/dist/{daemon-Bf7Eock4.mjs.map → daemon-BYieXduQ.mjs.map} +1 -1
- package/dist/daemon-mcp/index.mjs +20 -11
- package/dist/daemon-mcp/index.mjs.map +1 -1
- package/dist/daemon-q3xjHwa4.mjs +19 -0
- package/dist/{detector-3g7XuU1r.mjs → detector-BAlmrLQ0.mjs} +2 -2
- package/dist/{detector-3g7XuU1r.mjs.map → detector-BAlmrLQ0.mjs.map} +1 -1
- package/dist/detector-C-YmZsOi.mjs +3 -0
- package/dist/{embeddings-DfrYNIng.mjs → embeddings-DK9XfQic.mjs} +1 -1
- package/dist/{embeddings-DfrYNIng.mjs.map → embeddings-DK9XfQic.mjs.map} +1 -1
- package/dist/{embeddings-BNv3TQC5.mjs → embeddings-Xg8XLf2K.mjs} +1 -1
- package/dist/{factory-UO9_DFMN.mjs → factory-BMK0tC1b.mjs} +1 -1
- package/dist/{factory-BozZa81q.mjs → factory-C4We3xR_.mjs} +13 -13
- package/dist/{factory-BozZa81q.mjs.map → factory-C4We3xR_.mjs.map} +1 -1
- package/dist/{fallback-F0TWGVM2.mjs → fallback-ECiqCuh6.mjs} +5 -5
- package/dist/{fallback-F0TWGVM2.mjs.map → fallback-ECiqCuh6.mjs.map} +1 -1
- package/dist/federation-db-BZ8PyxFe.mjs +3 -0
- package/dist/{federation-db-w8e-sKjp.mjs → federation-db-CUgy0WYs.mjs} +2 -2
- package/dist/{federation-db-w8e-sKjp.mjs.map → federation-db-CUgy0WYs.mjs.map} +1 -1
- package/dist/{helpers-Dj-B314s.mjs → helpers-BRCJg0G3.mjs} +2 -208
- package/dist/helpers-BRCJg0G3.mjs.map +1 -0
- package/dist/hooks/load-project-context.mjs +6 -0
- package/dist/hooks/load-project-context.mjs.map +2 -2
- package/dist/index.d.mts +26 -8
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +5 -4
- package/dist/indexer-backend-CJ0RGgMz.mjs +5 -0
- package/dist/{ipc-client-Dasm515c.mjs → ipc-client-EhWY8XL0.mjs} +2 -2
- package/dist/{ipc-client-Dasm515c.mjs.map → ipc-client-EhWY8XL0.mjs.map} +1 -1
- package/dist/{kg-entity-Cj8Q6YmU.mjs → kg-entity-1uqCnk4u.mjs} +1 -1
- package/dist/{kg-entity-Cj8Q6YmU.mjs.map → kg-entity-1uqCnk4u.mjs.map} +1 -1
- package/dist/{latent-ideas-BRy6HNwg.mjs → latent-ideas-CSuKfiq3.mjs} +4 -4
- package/dist/{latent-ideas-BRy6HNwg.mjs.map → latent-ideas-CSuKfiq3.mjs.map} +1 -1
- package/dist/{link-boost-BptbAPuv.mjs → link-boost-BtjzfE3c.mjs} +1 -1
- package/dist/{link-boost-BptbAPuv.mjs.map → link-boost-BtjzfE3c.mjs.map} +1 -1
- package/dist/{main-resolver-BIft_FVF.mjs → main-resolver-DyOrwNYw.mjs} +6 -6
- package/dist/{main-resolver-BIft_FVF.mjs.map → main-resolver-DyOrwNYw.mjs.map} +1 -1
- package/dist/main-resolver-vN09bkXv.mjs +7 -0
- package/dist/merge-CXGz5wXz.mjs +3 -0
- package/dist/{merge-xoyfZQ4W.mjs → merge-D58n_-LZ.mjs} +1 -1
- package/dist/{merge-xoyfZQ4W.mjs.map → merge-D58n_-LZ.mjs.map} +1 -1
- package/dist/{neighborhood-D8uscnGy.mjs → neighborhood-DNuRelRB.mjs} +2 -2
- package/dist/{neighborhood-D8uscnGy.mjs.map → neighborhood-DNuRelRB.mjs.map} +1 -1
- package/dist/{note-context-CgffaUMh.mjs → note-context-D9JZ4-7o.mjs} +1 -1
- package/dist/{note-context-CgffaUMh.mjs.map → note-context-D9JZ4-7o.mjs.map} +1 -1
- package/dist/{pai-home-CeOIYltV.mjs → pai-home-UncxWxlX.mjs} +1 -1
- package/dist/{pai-home-CeOIYltV.mjs.map → pai-home-UncxWxlX.mjs.map} +1 -1
- package/dist/{planner-BG9ivPj0.mjs → planner-DgC3oSvb.mjs} +7 -7
- package/dist/{planner-BG9ivPj0.mjs.map → planner-DgC3oSvb.mjs.map} +1 -1
- package/dist/{postgres-CxD6_Dca.mjs → postgres-CcsRKir-.mjs} +6 -5
- package/dist/{postgres-CxD6_Dca.mjs.map → postgres-CcsRKir-.mjs.map} +1 -1
- package/dist/{program-BRvCzhjx.mjs → program-JhF2GgJY.mjs} +87 -74
- package/dist/program-JhF2GgJY.mjs.map +1 -0
- package/dist/query-feedback-BPHFFSu1.mjs +3 -0
- package/dist/{query-feedback-xz5axTj3.mjs → query-feedback-BPa0dISE.mjs} +2 -2
- package/dist/{query-feedback-xz5axTj3.mjs.map → query-feedback-BPa0dISE.mjs.map} +1 -1
- package/dist/{registry-db-Bkpbp7Gf.mjs → registry-db-DCzdI4sC.mjs} +2 -2
- package/dist/{registry-db-Bkpbp7Gf.mjs.map → registry-db-DCzdI4sC.mjs.map} +1 -1
- package/dist/registry-db-Hphlj3H4.mjs +3 -0
- package/dist/{registry-postgres-B07-hmn8.mjs → registry-postgres-BUnkHKYs.mjs} +2 -2
- package/dist/{registry-postgres-B07-hmn8.mjs.map → registry-postgres-BUnkHKYs.mjs.map} +1 -1
- package/dist/{registry-sqlite-CkGND_tm.mjs → registry-sqlite-CKYNwkUv.mjs} +2 -2
- package/dist/{registry-sqlite-CkGND_tm.mjs.map → registry-sqlite-CKYNwkUv.mjs.map} +1 -1
- package/dist/{reranker-BS5gqGeF.mjs → reranker-CFiEzHQu.mjs} +1 -1
- package/dist/{reranker-CRVawoEh.mjs → reranker-DKv80KO5.mjs} +1 -1
- package/dist/{reranker-CRVawoEh.mjs.map → reranker-DKv80KO5.mjs.map} +1 -1
- package/dist/{router-DjFZIoDl.mjs → router-CGZATlvm.mjs} +1 -1
- package/dist/{router-DjFZIoDl.mjs.map → router-CGZATlvm.mjs.map} +1 -1
- package/dist/router-CoA8Uy1m.mjs +3 -0
- package/dist/{run-BVQZI79D.mjs → run-W2rV_9j0.mjs} +78 -54
- package/dist/run-W2rV_9j0.mjs.map +1 -0
- package/dist/{run-env-BE5xyCwy.mjs → run-env-Br4Bc7Vz.mjs} +3 -3
- package/dist/{run-env-BE5xyCwy.mjs.map → run-env-Br4Bc7Vz.mjs.map} +1 -1
- package/dist/{runtime-paths-BRwDeBEg.mjs → runtime-paths-QGQJAekd.mjs} +1 -1
- package/dist/{runtime-paths-BRwDeBEg.mjs.map → runtime-paths-QGQJAekd.mjs.map} +1 -1
- package/dist/{search-BaTbyWjK.mjs → search-BOSphCJ1.mjs} +2 -2
- package/dist/{search-BaTbyWjK.mjs.map → search-BOSphCJ1.mjs.map} +1 -1
- package/dist/search-Bf3Kub3F.mjs +3 -0
- package/dist/{server-BY6AedmC.mjs → server-B71rem4q.mjs} +3 -3
- package/dist/{server-BY6AedmC.mjs.map → server-B71rem4q.mjs.map} +1 -1
- package/dist/{session-keepalive-DJA97K2X.mjs → session-keepalive-Dgil9hjw.mjs} +7 -7
- package/dist/{session-keepalive-DJA97K2X.mjs.map → session-keepalive-Dgil9hjw.mjs.map} +1 -1
- package/dist/{sources-BBe3AZ-W.mjs → sources-LcGptLA-.mjs} +1 -1
- package/dist/{sources-BBe3AZ-W.mjs.map → sources-LcGptLA-.mjs.map} +1 -1
- package/dist/{sqlite-CfKfuggn.mjs → sqlite-CAJcw2zL.mjs} +8 -7
- package/dist/sqlite-CAJcw2zL.mjs.map +1 -0
- package/dist/{state-n13uPK5B.mjs → state-CHltNjXI.mjs} +1 -1
- package/dist/{state-n13uPK5B.mjs.map → state-CHltNjXI.mjs.map} +1 -1
- package/dist/{state-CwlGAKgF.mjs → state-S9wlKarB.mjs} +1 -1
- package/dist/{stop-words-ClCwO8mZ.mjs → stop-words-BdQuaE9K.mjs} +1 -1
- package/dist/{stop-words-ClCwO8mZ.mjs.map → stop-words-BdQuaE9K.mjs.map} +1 -1
- package/dist/{themes-B2v7RNnA.mjs → themes-D1FQFthd.mjs} +3 -3
- package/dist/{themes-B2v7RNnA.mjs.map → themes-D1FQFthd.mjs.map} +1 -1
- package/dist/{tools-DFdPbX-X.mjs → tools-BFC-113F.mjs} +84 -68
- package/dist/tools-BFC-113F.mjs.map +1 -0
- package/dist/tools-BW7OXf-N.mjs +6 -0
- package/dist/{trace-BRflVyBi.mjs → trace-IDKK1VFs.mjs} +1 -1
- package/dist/{trace-BRflVyBi.mjs.map → trace-IDKK1VFs.mjs.map} +1 -1
- package/dist/{vault-indexer-mCFus_AM.mjs → vault-indexer-y6YC2-mh.mjs} +4 -3
- package/dist/vault-indexer-y6YC2-mh.mjs.map +1 -0
- package/dist/{wakeup-DO1O4udw.mjs → wakeup-CNZQZzsY.mjs} +3 -3
- package/dist/{wakeup-DO1O4udw.mjs.map → wakeup-CNZQZzsY.mjs.map} +1 -1
- package/dist/work-queue-worker-CkShUa0z.mjs +11 -0
- package/dist/{work-queue-worker-BbrC3I_R.mjs → work-queue-worker-Dy5FT2ak.mjs} +4 -4
- package/dist/{work-queue-worker-BbrC3I_R.mjs.map → work-queue-worker-Dy5FT2ak.mjs.map} +1 -1
- package/dist/{zettelkasten-BPxSOalU.mjs → zettelkasten-Dx-63BEk.mjs} +4 -4
- package/dist/{zettelkasten-BPxSOalU.mjs.map → zettelkasten-Dx-63BEk.mjs.map} +1 -1
- package/docs/commands/README.md +2 -0
- package/docs/commands/project.md +14 -5
- package/docs/commands/projects.md +14 -5
- package/gemini-extension.json +1 -1
- package/package.json +1 -1
- package/pai-plugin.json +1 -0
- package/src/hooks/ts/session-start/load-project-context.ts +9 -0
- package/dist/async-DNVWtQl2.mjs.map +0 -1
- package/dist/daemon-bJi1gDkG.mjs +0 -19
- package/dist/detector-DgDn56j-.mjs +0 -3
- package/dist/federation-db-CJDw_Pwq.mjs +0 -3
- package/dist/helpers-Dj-B314s.mjs.map +0 -1
- package/dist/indexer-backend-BN9rpp9O.mjs +0 -5
- package/dist/main-resolver-C9-poMdi.mjs +0 -7
- package/dist/merge-BncjJTfb.mjs +0 -3
- package/dist/program-BRvCzhjx.mjs.map +0 -1
- package/dist/query-feedback-COYCnvHQ.mjs +0 -3
- package/dist/registry-db-DwXpf7yF.mjs +0 -3
- package/dist/router-C5hPk9YP.mjs +0 -3
- package/dist/run-BVQZI79D.mjs.map +0 -1
- package/dist/search-BQHL5wDr.mjs +0 -3
- package/dist/sqlite-CfKfuggn.mjs.map +0 -1
- package/dist/tools-B52IvaU6.mjs +0 -6
- package/dist/tools-DFdPbX-X.mjs.map +0 -1
- package/dist/vault-indexer-mCFus_AM.mjs.map +0 -1
- package/dist/work-queue-worker-z-AATZ2t.mjs +0 -11
- /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-
|
|
5
|
-
import { t as applyRecencyBoost } from "./search-
|
|
6
|
-
import { a as getStorageBackend, i as getRegistryBackend, r as createStorageBackend, s as humanDuration } from "./factory-
|
|
7
|
-
import { a as formatDetectionJson, i as formatDetection, n as migrateIdentityFile, r as detectProject } from "./wakeup-
|
|
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-
|
|
9
|
-
import { a as paiHomePath, i as paiHomeDir, n as migratePaiDir, o as resolvePaiFile, r as migratePaiFile, t as PaiFileMigrationError } from "./pai-home-
|
|
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-
|
|
11
|
-
import { a as schedulerLogPath, i as paiSocketPath, n as daemonLogPath, r as daemonPidPath } from "./runtime-paths-
|
|
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-
|
|
13
|
-
import {
|
|
14
|
-
import { t as MergeError } from "./merge-
|
|
15
|
-
import { n as oldFederationPath, t as federationDbPath } from "./federation-db-
|
|
16
|
-
import { r as registryDbPath, t as oldRegistryPath } from "./registry-db-
|
|
17
|
-
import { i as indexProjectWithBackend } from "./async-
|
|
18
|
-
import { t as PaiClient } from "./ipc-client-
|
|
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-
|
|
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-
|
|
21
|
-
import { n as queriesDirPath, t as migrateQueriesDir } from "./query-feedback-
|
|
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-
|
|
23
|
-
import { i as sendToSession, n as fetchLiveSessions, r as revealItermSession, t as callAiBroker } from "./aibroker-client-
|
|
24
|
-
import { a as totalUsageTokens, i as parseSessionUsage, r as sessionKeepaliveLedgerSummary, t as loadSessionKeepaliveState } from "./session-keepalive-
|
|
25
|
-
import { t as runChain } from "./chain-
|
|
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-
|
|
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
|
|
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 (
|
|
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(
|
|
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
|
|
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 (
|
|
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(
|
|
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-
|
|
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
|
|
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("
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
3251
|
-
const { loadConfig } = await import("./config-
|
|
3252
|
-
const { cmdMemorySources } = await import("./sources-
|
|
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-
|
|
3953
|
-
const { loadConfig } = await import("./config-
|
|
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-
|
|
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-
|
|
7077
|
-
const { loadConfig: lc, ensureConfigDir } = await import("./config-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
17017
|
-
const { getRegistryBackend, createStorageBackend } = await import("./factory-
|
|
17018
|
-
const { loadConfig } = await import("./config-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
20340
|
-
const { createStorageBackend } = await import("./factory-
|
|
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-
|
|
20358
|
-
const { createStorageBackend } = await import("./factory-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
21932
|
+
//# sourceMappingURL=program-JhF2GgJY.mjs.map
|