@tekmidian/pai 0.65.0 → 0.65.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -1065
- package/dist/{async-CNn36gm4.mjs → async-C2Bm_Lal.mjs} +2 -2
- package/dist/{async-CNn36gm4.mjs.map → async-C2Bm_Lal.mjs.map} +1 -1
- package/dist/{auto-route-sLMU-NnM.mjs → auto-route-o0BOsXn7.mjs} +2 -2
- package/dist/{auto-route-sLMU-NnM.mjs.map → auto-route-o0BOsXn7.mjs.map} +1 -1
- package/dist/{chain-C8QO8gwj.mjs → chain-CT3SI-3z.mjs} +2 -2
- package/dist/{chain-C8QO8gwj.mjs.map → chain-CT3SI-3z.mjs.map} +1 -1
- package/dist/cli/index.mjs +12 -10
- package/dist/cli/index.mjs.map +1 -1
- package/dist/cli/program.mjs +10 -10
- package/dist/{clusters-PgIUYT_v.mjs → clusters-BCtD3fbe.mjs} +1 -1
- package/dist/{clusters-PgIUYT_v.mjs.map → clusters-BCtD3fbe.mjs.map} +1 -1
- package/dist/config-BbLFD7Uf.mjs.map +1 -1
- package/dist/{context-handover-cache-mGxq2-8f.mjs → context-handover-cache-CRSFdkNi.mjs} +2 -2
- package/dist/{context-handover-cache-mGxq2-8f.mjs.map → context-handover-cache-CRSFdkNi.mjs.map} +1 -1
- package/dist/daemon/index.mjs +12 -10
- package/dist/daemon/index.mjs.map +1 -1
- package/dist/daemon-DoTVK9z6.mjs +19 -0
- package/dist/{daemon-D2r1AQqE.mjs → daemon-SaPnmoyg.mjs} +23 -23
- package/dist/{daemon-D2r1AQqE.mjs.map → daemon-SaPnmoyg.mjs.map} +1 -1
- package/dist/daemon-mcp/index.mjs +7 -5
- package/dist/daemon-mcp/index.mjs.map +1 -1
- package/dist/detector-BEPFsINR.mjs +3 -0
- package/dist/{detector-CIHEXKsV.mjs → detector-BRTtAWrM.mjs} +1 -1
- package/dist/{detector-CIHEXKsV.mjs.map → detector-BRTtAWrM.mjs.map} +1 -1
- package/dist/{embeddings-BbNVXa_0.mjs → embeddings-Bx3q0QOY.mjs} +1 -1
- package/dist/{embeddings-BbNVXa_0.mjs.map → embeddings-Bx3q0QOY.mjs.map} +1 -1
- package/dist/{embeddings-CDfM63uC.mjs → embeddings-CcscYWwk.mjs} +1 -1
- package/dist/env-JNEIrQWg.mjs +14 -0
- package/dist/env-JNEIrQWg.mjs.map +1 -0
- package/dist/{factory-y36qGegI.mjs → factory-CNpPQQ-5.mjs} +7 -7
- package/dist/{factory-y36qGegI.mjs.map → factory-CNpPQQ-5.mjs.map} +1 -1
- package/dist/{factory-CaswxuJ0.mjs → factory-DY7x73mE.mjs} +1 -1
- package/dist/{fallback-CWDQYmJi.mjs → fallback-vHjFZP0Y.mjs} +2 -2
- package/dist/{fallback-CWDQYmJi.mjs.map → fallback-vHjFZP0Y.mjs.map} +1 -1
- package/dist/hooks/block-sleep-poll.mjs.map +1 -1
- package/dist/hooks/context-compression-hook.mjs.map +1 -1
- package/dist/hooks/load-project-context.mjs.map +2 -2
- package/dist/hooks/post-compact-inject.mjs.map +1 -1
- package/dist/hooks/route-agents-to-worker.mjs.map +1 -1
- package/dist/hooks/security-validator.mjs +2 -2
- package/dist/hooks/security-validator.mjs.map +1 -1
- package/dist/hooks/whisper-rules.mjs.map +1 -1
- package/dist/hooks/worker-guard.mjs.map +1 -1
- package/dist/hooks/worker-proxy.mjs.map +1 -1
- package/dist/hooks/worker-status-line.mjs.map +2 -2
- package/dist/hooks/worker-supervision.mjs.map +1 -1
- package/dist/{indexer-backend-Cnc7Tf5C.mjs → indexer-backend-DFF2FrYx.mjs} +1 -1
- package/dist/{kg-entity-COTUj1ZC.mjs → kg-entity-DCOcsVFD.mjs} +1 -1
- package/dist/{kg-entity-COTUj1ZC.mjs.map → kg-entity-DCOcsVFD.mjs.map} +1 -1
- package/dist/{latent-ideas-ByvMjVcb.mjs → latent-ideas-wwAXquGe.mjs} +3 -3
- package/dist/{latent-ideas-ByvMjVcb.mjs.map → latent-ideas-wwAXquGe.mjs.map} +1 -1
- package/dist/{link-boost-UiE-uooT.mjs → link-boost-CnI7UVMJ.mjs} +1 -1
- package/dist/{link-boost-UiE-uooT.mjs.map → link-boost-CnI7UVMJ.mjs.map} +1 -1
- package/dist/{main-resolver-CDe7DCso.mjs → main-resolver-CKNGux1B.mjs} +8 -8
- package/dist/{main-resolver-CDe7DCso.mjs.map → main-resolver-CKNGux1B.mjs.map} +1 -1
- package/dist/{main-resolver-DI-A7lSO.mjs → main-resolver-VSM5ytnA.mjs} +1 -1
- package/dist/{neighborhood-CvRHlqdR.mjs → neighborhood-2FsmzoxG.mjs} +2 -2
- package/dist/{neighborhood-CvRHlqdR.mjs.map → neighborhood-2FsmzoxG.mjs.map} +1 -1
- package/dist/{note-context-BrbfUIoP.mjs → note-context-De63k8na.mjs} +1 -1
- package/dist/{note-context-BrbfUIoP.mjs.map → note-context-De63k8na.mjs.map} +1 -1
- package/dist/{planner-8-shIa8t.mjs → planner-Dzs9-8AS.mjs} +4 -4
- package/dist/{planner-8-shIa8t.mjs.map → planner-Dzs9-8AS.mjs.map} +1 -1
- package/dist/{postgres-DYtZg7J7.mjs → postgres-Ceqsa64C.mjs} +3 -3
- package/dist/{postgres-DYtZg7J7.mjs.map → postgres-Ceqsa64C.mjs.map} +1 -1
- package/dist/{program-DiktbiWa.mjs → program-DK0mRRlf.mjs} +81 -59
- package/dist/program-DK0mRRlf.mjs.map +1 -0
- package/dist/{registry-postgres-DSrkxqfF.mjs → registry-postgres-nOfyBSIW.mjs} +1 -1
- package/dist/{registry-postgres-DSrkxqfF.mjs.map → registry-postgres-nOfyBSIW.mjs.map} +1 -1
- package/dist/{registry-sqlite-B2436JgX.mjs → registry-sqlite-DrCW1aRK.mjs} +1 -1
- package/dist/{registry-sqlite-B2436JgX.mjs.map → registry-sqlite-DrCW1aRK.mjs.map} +1 -1
- package/dist/router-CXUGsv85.mjs +3 -0
- package/dist/{router-aqLMvNMg.mjs → router-a5G7q8_3.mjs} +1 -1
- package/dist/{router-aqLMvNMg.mjs.map → router-a5G7q8_3.mjs.map} +1 -1
- package/dist/{run-DUZRSnIT.mjs → run-DMaCpvMW.mjs} +23 -5
- package/dist/run-DMaCpvMW.mjs.map +1 -0
- package/dist/{session-keepalive-CZUwp5IQ.mjs → session-keepalive-DVZ9-7qg.mjs} +2 -2
- package/dist/{session-keepalive-CZUwp5IQ.mjs.map → session-keepalive-DVZ9-7qg.mjs.map} +1 -1
- package/dist/skills/Tasks/SKILL.md +1 -1
- package/dist/{sources-DX4ElmrE.mjs → sources-CijVso3n.mjs} +1 -1
- package/dist/{sources-DX4ElmrE.mjs.map → sources-CijVso3n.mjs.map} +1 -1
- package/dist/{sqlite-BrEu3avy.mjs → sqlite-CqsTy6xo.mjs} +3 -3
- package/dist/{sqlite-BrEu3avy.mjs.map → sqlite-CqsTy6xo.mjs.map} +1 -1
- package/dist/{themes-BgqahYVM.mjs → themes-CTaOj3e1.mjs} +2 -2
- package/dist/{themes-BgqahYVM.mjs.map → themes-CTaOj3e1.mjs.map} +1 -1
- package/dist/{tools-gMGDIpJ9.mjs → tools-BcOKPBtg.mjs} +16 -16
- package/dist/{tools-gMGDIpJ9.mjs.map → tools-BcOKPBtg.mjs.map} +1 -1
- package/dist/{tools-BbqQIHPe.mjs → tools-C-_l0o8Z.mjs} +4 -4
- package/dist/{trace-CmAB7iJZ.mjs → trace-CtV0RO6n.mjs} +1 -1
- package/dist/{trace-CmAB7iJZ.mjs.map → trace-CtV0RO6n.mjs.map} +1 -1
- package/dist/{vault-indexer-Ddq51X20.mjs → vault-indexer-BG1sEVyM.mjs} +1 -1
- package/dist/{vault-indexer-Ddq51X20.mjs.map → vault-indexer-BG1sEVyM.mjs.map} +1 -1
- package/dist/{wakeup-CZw88uXf.mjs → wakeup-D8n33hYV.mjs} +2 -2
- package/dist/{wakeup-CZw88uXf.mjs.map → wakeup-D8n33hYV.mjs.map} +1 -1
- package/dist/{work-queue-worker-Taba_vcA.mjs → work-queue-worker-D7GHuj2I.mjs} +3 -3
- package/dist/{work-queue-worker-DCzfH0d1.mjs → work-queue-worker-DZiEMvBQ.mjs} +3 -3
- package/dist/{work-queue-worker-DCzfH0d1.mjs.map → work-queue-worker-DZiEMvBQ.mjs.map} +1 -1
- package/dist/{zettelkasten-Dwj67e4p.mjs → zettelkasten-CtGHQWPU.mjs} +3 -3
- package/dist/{zettelkasten-Dwj67e4p.mjs.map → zettelkasten-CtGHQWPU.mjs.map} +1 -1
- package/docs/auto-compact.md +31 -0
- package/docs/budget-advisor.md +48 -0
- package/docs/command-reference.md +25 -0
- package/docs/companion-projects.md +9 -0
- package/docs/context-preservation.md +43 -0
- package/docs/how-it-works.md +25 -0
- package/docs/install-linux.md +32 -0
- package/docs/install.md +56 -0
- package/docs/memory.md +96 -0
- package/docs/observations.md +58 -0
- package/docs/release-history.md +42 -0
- package/docs/rules-and-privacy.md +37 -0
- package/docs/search.md +169 -0
- package/docs/session-management.md +153 -0
- package/docs/session-notes.md +64 -0
- package/docs/skills.md +45 -0
- package/docs/task-bus.md +1 -2
- package/docs/use-cases.md +194 -0
- package/docs/what-you-can-ask.md +78 -0
- package/docs/worker-providers.md +58 -0
- package/docs/zettelkasten.md +37 -0
- package/package.json +1 -1
- package/plugins/productivity/skills/Tasks/SKILL.md +1 -1
- package/src/hooks/ts/pre-tool-use/security-validator.test.ts +23 -0
- package/src/hooks/ts/pre-tool-use/security-validator.ts +1 -1
- package/src/hooks/ts/session-start/load-project-context.ts +1 -1
- package/statusline-command.sh +1 -1
- package/dist/daemon-CX9JomIJ.mjs +0 -19
- package/dist/detector-C3Q7mxQU.mjs +0 -3
- package/dist/program-DiktbiWa.mjs.map +0 -1
- package/dist/router-S6C5BxzZ.mjs +0 -3
- package/dist/run-DUZRSnIT.mjs.map +0 -1
|
@@ -4,26 +4,26 @@ import { n as ensurePaiMarker } from "./pai-marker-D1MMswkz.mjs";
|
|
|
4
4
|
import { t as STOP_WORDS } from "./stop-words-BdQuaE9K.mjs";
|
|
5
5
|
import { t as applyRecencyBoost } from "./search-BOSphCJ1.mjs";
|
|
6
6
|
import { n as resolveFromModule, t as packageRoot } from "./module-paths-DdRzbkUI.mjs";
|
|
7
|
-
import { a as getStorageBackend, i as getRegistryBackend, r as createStorageBackend, s as humanDuration } from "./factory-
|
|
8
|
-
import { a as formatDetectionJson, i as formatDetection, n as migrateIdentityFile, r as detectProject } from "./wakeup-
|
|
9
|
-
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-
|
|
7
|
+
import { a as getStorageBackend, i as getRegistryBackend, r as createStorageBackend, s as humanDuration } from "./factory-CNpPQQ-5.mjs";
|
|
8
|
+
import { a as formatDetectionJson, i as formatDetection, n as migrateIdentityFile, r as detectProject } from "./wakeup-D8n33hYV.mjs";
|
|
9
|
+
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-CRSFdkNi.mjs";
|
|
10
10
|
import { a as paiHomePath, i as paiHomeDir, n as migratePaiDir, o as resolvePaiFile, r as migratePaiFile, t as PaiFileMigrationError } from "./pai-home-Cm9rcJgX.mjs";
|
|
11
11
|
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-BbLFD7Uf.mjs";
|
|
12
12
|
import { a as schedulerLogPath, i as paiSocketPath, n as daemonLogPath, r as daemonPidPath } from "./runtime-paths-CHTg3ywb.mjs";
|
|
13
13
|
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-BHWnXqle.mjs";
|
|
14
|
-
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-
|
|
14
|
+
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-DMaCpvMW.mjs";
|
|
15
15
|
import { t as MergeError } from "./merge-DgU9OgZy.mjs";
|
|
16
16
|
import { n as oldFederationPath, t as federationDbPath } from "./federation-db-BTyoufBh.mjs";
|
|
17
17
|
import { r as registryDbPath, t as oldRegistryPath } from "./registry-db-C7voqML9.mjs";
|
|
18
|
-
import { i as indexProjectWithBackend } from "./async-
|
|
18
|
+
import { i as indexProjectWithBackend } from "./async-C2Bm_Lal.mjs";
|
|
19
19
|
import { t as PaiClient } from "./ipc-client-D16Xw6Uo.mjs";
|
|
20
|
-
import { A as getConfigValueOp, C as setWorkersEnabled, D as useProvider, E as updateProvider, M as setConfigValueOp, N as unsetConfigValueOp, O as MainConfigOpsError, S as setProviderModel, T as unsetClass, _ as removeProvider, a as followWorkers, b as setClass, c as statusLineOutput, d as addProvider, f as classTargetText, g as modelPrefsText, h as describeProviders, i as fallbackStatusText, j as listConfigOp, k as formatConfigGetOutput, l as readSpecPrompt, m as describeModels, n as fallbackOn, o as psOutput, p as describeCapabilities, r as fallbackStatus, s as replayOutput, t as fallbackOff, u as resolveSpecPath, v as resolveProviderName, w as unsetCapabilityPreference, x as setProviderEnabled, y as setCapabilityPreference } from "./fallback-
|
|
21
|
-
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-
|
|
20
|
+
import { A as getConfigValueOp, C as setWorkersEnabled, D as useProvider, E as updateProvider, M as setConfigValueOp, N as unsetConfigValueOp, O as MainConfigOpsError, S as setProviderModel, T as unsetClass, _ as removeProvider, a as followWorkers, b as setClass, c as statusLineOutput, d as addProvider, f as classTargetText, g as modelPrefsText, h as describeProviders, i as fallbackStatusText, j as listConfigOp, k as formatConfigGetOutput, l as readSpecPrompt, m as describeModels, n as fallbackOn, o as psOutput, p as describeCapabilities, r as fallbackStatus, s as replayOutput, t as fallbackOff, u as resolveSpecPath, v as resolveProviderName, w as unsetCapabilityPreference, x as setProviderEnabled, y as setCapabilityPreference } from "./fallback-vHjFZP0Y.mjs";
|
|
21
|
+
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-CKNGux1B.mjs";
|
|
22
22
|
import { n as queriesDirPath, t as migrateQueriesDir } from "./query-feedback-BIaZTTFO.mjs";
|
|
23
23
|
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-DlL1QI2k.mjs";
|
|
24
24
|
import { i as sendToSession, n as fetchLiveSessions, r as revealItermSession, t as callAiBroker } from "./aibroker-client-C5Fw7DNz.mjs";
|
|
25
|
-
import { a as totalUsageTokens, i as parseSessionUsage, r as sessionKeepaliveLedgerSummary, t as loadSessionKeepaliveState } from "./session-keepalive-
|
|
26
|
-
import { t as runChain } from "./chain-
|
|
25
|
+
import { a as totalUsageTokens, i as parseSessionUsage, r as sessionKeepaliveLedgerSummary, t as loadSessionKeepaliveState } from "./session-keepalive-DVZ9-7qg.mjs";
|
|
26
|
+
import { t as runChain } from "./chain-CT3SI-3z.mjs";
|
|
27
27
|
import { appendFileSync, chmodSync, closeSync, copyFileSync, cpSync, createReadStream, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readdirSync, readlinkSync, realpathSync, renameSync, statSync, symlinkSync, unlinkSync, writeFileSync } from "node:fs";
|
|
28
28
|
import { homedir, platform, tmpdir, userInfo } from "node:os";
|
|
29
29
|
import { basename, dirname, join, relative, resolve, sep } from "node:path";
|
|
@@ -162,7 +162,7 @@ async function cmdPromote(opts) {
|
|
|
162
162
|
console.error(dim$1(` Pick a durable location for the new project.`));
|
|
163
163
|
process.exit(1);
|
|
164
164
|
}
|
|
165
|
-
const { getRegistryBackend } = await import("./factory-
|
|
165
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
166
166
|
const registryBackend = await getRegistryBackend();
|
|
167
167
|
const encodedDir = encodeDir(targetPath);
|
|
168
168
|
if (await registryBackend.getProjectBySlug(slug) ?? await registryBackend.getProjectByRootPath(targetPath) ?? await registryBackend.getProjectByEncodedDir(encodedDir)) {
|
|
@@ -2046,7 +2046,7 @@ async function cmdUnregister(slug, opts = {}) {
|
|
|
2046
2046
|
//#region src/cli/commands/project/projects-index.ts
|
|
2047
2047
|
function registerProjectsCommands(projectsCmd) {
|
|
2048
2048
|
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) => {
|
|
2049
|
-
const { cmdMain } = await import("./main-resolver-
|
|
2049
|
+
const { cmdMain } = await import("./main-resolver-VSM5ytnA.mjs");
|
|
2050
2050
|
await cmdMain(void 0, void 0, opts);
|
|
2051
2051
|
});
|
|
2052
2052
|
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) => {
|
|
@@ -2912,7 +2912,7 @@ const DEFAULT_PAGE_SIZE = 500;
|
|
|
2912
2912
|
async function runEmbed(backend, projectId, projectSlug, batchSize = 50, pageSize = DEFAULT_PAGE_SIZE) {
|
|
2913
2913
|
const label = projectSlug ? `project ${projectSlug}` : "all projects";
|
|
2914
2914
|
console.log(dim$1(`Generating embeddings for ${label} (this may take a while on first run)...`));
|
|
2915
|
-
const { generateEmbeddings, serializeEmbedding } = await import("./embeddings-
|
|
2915
|
+
const { generateEmbeddings, serializeEmbedding } = await import("./embeddings-CcscYWwk.mjs");
|
|
2916
2916
|
const { chunks: totalEstimate } = projectId !== void 0 ? await backend.getProjectStats(projectId) : await backend.getStats();
|
|
2917
2917
|
let done = 0;
|
|
2918
2918
|
let after = null;
|
|
@@ -3076,7 +3076,7 @@ function registerSearchCommand(memoryCmd) {
|
|
|
3076
3076
|
let results;
|
|
3077
3077
|
if (mode === "keyword") results = await backend.searchKeyword(query, searchOpts);
|
|
3078
3078
|
else {
|
|
3079
|
-
const { generateEmbedding } = await import("./embeddings-
|
|
3079
|
+
const { generateEmbedding } = await import("./embeddings-CcscYWwk.mjs");
|
|
3080
3080
|
console.log(dim$1("Generating query embedding..."));
|
|
3081
3081
|
const queryEmbedding = await generateEmbedding(query, true);
|
|
3082
3082
|
if (mode === "semantic") results = await backend.searchSemantic(queryEmbedding, searchOpts);
|
|
@@ -3261,9 +3261,9 @@ function registerStatsCommands(memoryCmd) {
|
|
|
3261
3261
|
//#region src/cli/commands/memory/sources-cmd.ts
|
|
3262
3262
|
function registerSourcesCommand(memoryCmd) {
|
|
3263
3263
|
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) => {
|
|
3264
|
-
const { createStorageBackend } = await import("./factory-
|
|
3264
|
+
const { createStorageBackend } = await import("./factory-DY7x73mE.mjs");
|
|
3265
3265
|
const { loadConfig } = await import("./config-YinjgXEJ.mjs");
|
|
3266
|
-
const { cmdMemorySources } = await import("./sources-
|
|
3266
|
+
const { cmdMemorySources } = await import("./sources-CijVso3n.mjs");
|
|
3267
3267
|
let backend;
|
|
3268
3268
|
try {
|
|
3269
3269
|
backend = await createStorageBackend(loadConfig());
|
|
@@ -3963,7 +3963,7 @@ async function escalate(task, headline, detail, state, now, opts) {
|
|
|
3963
3963
|
state.alarmedAt[task.id] = now;
|
|
3964
3964
|
let delivered = false;
|
|
3965
3965
|
try {
|
|
3966
|
-
const { routeNotification } = await import("./router-
|
|
3966
|
+
const { routeNotification } = await import("./router-CXUGsv85.mjs");
|
|
3967
3967
|
const { loadConfig } = await import("./config-YinjgXEJ.mjs");
|
|
3968
3968
|
delivered = (await routeNotification({
|
|
3969
3969
|
event: "error",
|
|
@@ -6737,19 +6737,41 @@ Restart=on-failure
|
|
|
6737
6737
|
WantedBy=default.target
|
|
6738
6738
|
`;
|
|
6739
6739
|
}
|
|
6740
|
-
|
|
6741
|
-
|
|
6742
|
-
|
|
6743
|
-
|
|
6744
|
-
"
|
|
6745
|
-
|
|
6746
|
-
|
|
6747
|
-
|
|
6748
|
-
|
|
6749
|
-
|
|
6750
|
-
|
|
6751
|
-
|
|
6740
|
+
const runLoginctl = (args) => {
|
|
6741
|
+
const r = spawnSync("loginctl", args, { encoding: "utf8" });
|
|
6742
|
+
return {
|
|
6743
|
+
status: r.status,
|
|
6744
|
+
stdout: r.stdout ?? ""
|
|
6745
|
+
};
|
|
6746
|
+
};
|
|
6747
|
+
/**
|
|
6748
|
+
* Turns on systemd linger for the user (so the user unit survives logout) without sudo
|
|
6749
|
+
* or a prompt; prints the sudo command only when the system refuses. Linux only.
|
|
6750
|
+
*/
|
|
6751
|
+
function ensureLinger(plat = process.platform, username = userInfo().username, loginctl = runLoginctl, log = console.log) {
|
|
6752
|
+
if (plat !== "linux") return;
|
|
6753
|
+
const linger = () => {
|
|
6754
|
+
const r = loginctl([
|
|
6755
|
+
"show-user",
|
|
6756
|
+
username,
|
|
6757
|
+
"-p",
|
|
6758
|
+
"Linger"
|
|
6759
|
+
]);
|
|
6760
|
+
return r.status === 0 ? r.stdout.trim() : null;
|
|
6761
|
+
};
|
|
6762
|
+
const before = linger();
|
|
6763
|
+
if (before === null || before === "Linger=yes") return;
|
|
6764
|
+
loginctl([
|
|
6765
|
+
"--no-ask-password",
|
|
6766
|
+
"enable-linger",
|
|
6767
|
+
username
|
|
6768
|
+
]);
|
|
6769
|
+
if (linger() === "Linger=yes") {
|
|
6770
|
+
log(ok$1(" linger: on (daemon survives logout)"));
|
|
6771
|
+
return;
|
|
6752
6772
|
}
|
|
6773
|
+
log(warn$1(` Linger is off for ${username} — the daemon stops when you log out.`));
|
|
6774
|
+
log(dim$1(` Enable it: sudo loginctl enable-linger ${username}`));
|
|
6753
6775
|
}
|
|
6754
6776
|
async function cmdStatus$1() {
|
|
6755
6777
|
const client = new PaiClient(loadConfig().socketPath);
|
|
@@ -6879,7 +6901,7 @@ function installServiceLinux(daemonBin) {
|
|
|
6879
6901
|
], { encoding: "utf8" });
|
|
6880
6902
|
if (enableResult.status === 0) console.log(ok$1(" Enabled and started via systemd."));
|
|
6881
6903
|
else console.log(warn$1(` systemctl enable --now: ${(enableResult.stderr || "").trim()}`));
|
|
6882
|
-
|
|
6904
|
+
ensureLinger();
|
|
6883
6905
|
return true;
|
|
6884
6906
|
}
|
|
6885
6907
|
function cmdInstall() {
|
|
@@ -7075,7 +7097,7 @@ function cmdLogs(opts) {
|
|
|
7075
7097
|
}
|
|
7076
7098
|
function registerDaemonCommands(daemonCmd) {
|
|
7077
7099
|
daemonCmd.command("serve").description("Start the PAI daemon in the foreground").action(async () => {
|
|
7078
|
-
const { serve } = await import("./daemon-
|
|
7100
|
+
const { serve } = await import("./daemon-DoTVK9z6.mjs");
|
|
7079
7101
|
const { loadConfig: lc, ensureConfigDir } = await import("./config-YinjgXEJ.mjs");
|
|
7080
7102
|
ensureConfigDir();
|
|
7081
7103
|
await serve(lc());
|
|
@@ -8703,7 +8725,7 @@ function stepSummary(configUpdates, claudeMdGenerated, paiSkillInstalled, aiStee
|
|
|
8703
8725
|
* Label wins because labels survive a task being moved between containers, and
|
|
8704
8726
|
* because a task parked in the findings inbox has no meaningful container yet.
|
|
8705
8727
|
*
|
|
8706
|
-
* See
|
|
8728
|
+
* See docs/task-bus.md.
|
|
8707
8729
|
*/
|
|
8708
8730
|
/**
|
|
8709
8731
|
* Fold a tracker-supplied string onto its comparable form.
|
|
@@ -9702,7 +9724,7 @@ async function cmdExplore(note, opts) {
|
|
|
9702
9724
|
const depth = parseInt(opts.depth ?? "3", 10);
|
|
9703
9725
|
const direction = opts.direction ?? "both";
|
|
9704
9726
|
const mode = opts.mode ?? "all";
|
|
9705
|
-
const { zettelExplore } = await import("./zettelkasten-
|
|
9727
|
+
const { zettelExplore } = await import("./zettelkasten-CtGHQWPU.mjs");
|
|
9706
9728
|
const result = await zettelExplore(await getFedBackend(), {
|
|
9707
9729
|
startNote: note,
|
|
9708
9730
|
depth,
|
|
@@ -9767,7 +9789,7 @@ async function cmdHealth(opts) {
|
|
|
9767
9789
|
const projectPath = opts.project;
|
|
9768
9790
|
const recentDays = parseInt(opts.days ?? "30", 10);
|
|
9769
9791
|
const includeTypes = opts.include ? opts.include.split(",").map((s) => s.trim()) : void 0;
|
|
9770
|
-
const { zettelHealth } = await import("./zettelkasten-
|
|
9792
|
+
const { zettelHealth } = await import("./zettelkasten-CtGHQWPU.mjs");
|
|
9771
9793
|
const result = await zettelHealth(await getFedBackend(), {
|
|
9772
9794
|
scope,
|
|
9773
9795
|
projectPath,
|
|
@@ -9838,7 +9860,7 @@ async function cmdSurprise(note, opts) {
|
|
|
9838
9860
|
const limit = parseInt(opts.limit ?? "10", 10);
|
|
9839
9861
|
const minSimilarity = parseFloat(opts.minSimilarity ?? "0.3");
|
|
9840
9862
|
const minGraphDistance = parseInt(opts.minDistance ?? "3", 10);
|
|
9841
|
-
const { zettelSurprise } = await import("./zettelkasten-
|
|
9863
|
+
const { zettelSurprise } = await import("./zettelkasten-CtGHQWPU.mjs");
|
|
9842
9864
|
const backend = await getFedBackend();
|
|
9843
9865
|
console.log();
|
|
9844
9866
|
console.log(header(" PAI Zettel Surprise"));
|
|
@@ -9893,7 +9915,7 @@ async function cmdSuggest(note, opts) {
|
|
|
9893
9915
|
const vaultProjectId = parseInt(opts.vaultProjectId, 10);
|
|
9894
9916
|
const limit = parseInt(opts.limit ?? "5", 10);
|
|
9895
9917
|
const excludeLinked = opts.excludeLinked !== false;
|
|
9896
|
-
const { zettelSuggest } = await import("./zettelkasten-
|
|
9918
|
+
const { zettelSuggest } = await import("./zettelkasten-CtGHQWPU.mjs");
|
|
9897
9919
|
const backend = await getFedBackend();
|
|
9898
9920
|
console.log();
|
|
9899
9921
|
console.log(header(" PAI Zettel Suggest"));
|
|
@@ -9946,7 +9968,7 @@ async function cmdConverse(question, opts) {
|
|
|
9946
9968
|
const vaultProjectId = parseInt(opts.vaultProjectId, 10);
|
|
9947
9969
|
const depth = parseInt(opts.depth ?? "2", 10);
|
|
9948
9970
|
const limit = parseInt(opts.limit ?? "15", 10);
|
|
9949
|
-
const { zettelConverse } = await import("./zettelkasten-
|
|
9971
|
+
const { zettelConverse } = await import("./zettelkasten-CtGHQWPU.mjs");
|
|
9950
9972
|
const backend = await getFedBackend();
|
|
9951
9973
|
console.log();
|
|
9952
9974
|
console.log(header(" PAI Zettel Converse"));
|
|
@@ -10009,7 +10031,7 @@ async function cmdThemes(opts) {
|
|
|
10009
10031
|
const minClusterSize = parseInt(opts.minSize ?? "3", 10);
|
|
10010
10032
|
const maxThemes = parseInt(opts.maxThemes ?? "10", 10);
|
|
10011
10033
|
const similarityThreshold = parseFloat(opts.threshold ?? "0.65");
|
|
10012
|
-
const { zettelThemes } = await import("./zettelkasten-
|
|
10034
|
+
const { zettelThemes } = await import("./zettelkasten-CtGHQWPU.mjs");
|
|
10013
10035
|
const backend = await getFedBackend();
|
|
10014
10036
|
console.log();
|
|
10015
10037
|
console.log(header(" PAI Zettel Themes"));
|
|
@@ -14285,7 +14307,7 @@ function registerNotifyCommands(notifyCmd) {
|
|
|
14285
14307
|
* and the bus reports ownership instead of delivering. PAI must stay useful on
|
|
14286
14308
|
* machines that do not run iTerm2.
|
|
14287
14309
|
*
|
|
14288
|
-
* See
|
|
14310
|
+
* See docs/task-bus.md.
|
|
14289
14311
|
*/
|
|
14290
14312
|
/**
|
|
14291
14313
|
* How long AIBroker may spend on one dispatch, in seconds.
|
|
@@ -16084,7 +16106,7 @@ async function migrateToPostgres(opts = {}) {
|
|
|
16084
16106
|
const dump = pgDump(container, pgConfig, dumpPath);
|
|
16085
16107
|
if (!dump.ok) return refused(dump.reason, dryRun);
|
|
16086
16108
|
}
|
|
16087
|
-
const { PostgresBackend } = await import("./postgres-
|
|
16109
|
+
const { PostgresBackend } = await import("./postgres-Ceqsa64C.mjs");
|
|
16088
16110
|
await PostgresBackend.ensureDatabase(pgConfig);
|
|
16089
16111
|
const sqlite = new BetterSqlite3(sqliteFederationPath, { readonly: true });
|
|
16090
16112
|
const registrySqlite = sqliteRegistryPath === sqliteFederationPath ? sqlite : new BetterSqlite3(sqliteRegistryPath, { readonly: true });
|
|
@@ -16655,7 +16677,7 @@ async function getSessionTags(registryBackend, sessionId) {
|
|
|
16655
16677
|
* Session CRUD commands: list, info, rename, slug, tag, route, active, auto-route.
|
|
16656
16678
|
*/
|
|
16657
16679
|
async function cmdList(projectSlug, opts) {
|
|
16658
|
-
const { getRegistryBackend } = await import("./factory-
|
|
16680
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
16659
16681
|
const registryBackend = await getRegistryBackend();
|
|
16660
16682
|
const limit = parseInt(opts.limit ?? "20", 10);
|
|
16661
16683
|
let project;
|
|
@@ -16720,7 +16742,7 @@ async function cmdList(projectSlug, opts) {
|
|
|
16720
16742
|
console.log(dim$1(` ${rows.length} session(s) shown (limit: ${limit})`));
|
|
16721
16743
|
}
|
|
16722
16744
|
async function cmdInfo(projectSlug, sessionNumber) {
|
|
16723
|
-
const { getRegistryBackend } = await import("./factory-
|
|
16745
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
16724
16746
|
const registryBackend = await getRegistryBackend();
|
|
16725
16747
|
const project = await getProject$1(registryBackend, projectSlug);
|
|
16726
16748
|
if (!project) {
|
|
@@ -16744,7 +16766,7 @@ async function cmdInfo(projectSlug, sessionNumber) {
|
|
|
16744
16766
|
console.log();
|
|
16745
16767
|
}
|
|
16746
16768
|
async function cmdRename(projectSlug, numberOrLatest, newSlug) {
|
|
16747
|
-
const { getRegistryBackend } = await import("./factory-
|
|
16769
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
16748
16770
|
await cmdRenameWith(await getRegistryBackend(), projectSlug, numberOrLatest, newSlug);
|
|
16749
16771
|
}
|
|
16750
16772
|
async function cmdRenameWith(registryBackend, projectSlug, numberOrLatest, newSlug) {
|
|
@@ -16807,7 +16829,7 @@ async function cmdRenameWith(registryBackend, projectSlug, numberOrLatest, newSl
|
|
|
16807
16829
|
console.log();
|
|
16808
16830
|
}
|
|
16809
16831
|
async function cmdSlug(projectSlug, numberOrLatest, opts) {
|
|
16810
|
-
const { getRegistryBackend } = await import("./factory-
|
|
16832
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
16811
16833
|
const registryBackend = await getRegistryBackend();
|
|
16812
16834
|
const project = await getProject$1(registryBackend, projectSlug);
|
|
16813
16835
|
if (!project) {
|
|
@@ -16837,7 +16859,7 @@ async function cmdSlug(projectSlug, numberOrLatest, opts) {
|
|
|
16837
16859
|
}
|
|
16838
16860
|
}
|
|
16839
16861
|
async function cmdTag(projectSlug, sessionNumber, rawTags) {
|
|
16840
|
-
const { getRegistryBackend } = await import("./factory-
|
|
16862
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
16841
16863
|
const registryBackend = await getRegistryBackend();
|
|
16842
16864
|
const project = await getProject$1(registryBackend, projectSlug);
|
|
16843
16865
|
if (!project) {
|
|
@@ -16877,7 +16899,7 @@ async function cmdTag(projectSlug, sessionNumber, rawTags) {
|
|
|
16877
16899
|
console.log();
|
|
16878
16900
|
}
|
|
16879
16901
|
async function cmdRoute(projectSlug, sessionNumber, targetProjectSlug, opts) {
|
|
16880
|
-
const { getRegistryBackend } = await import("./factory-
|
|
16902
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
16881
16903
|
const registryBackend = await getRegistryBackend();
|
|
16882
16904
|
const project = await getProject$1(registryBackend, projectSlug);
|
|
16883
16905
|
if (!project) {
|
|
@@ -16919,7 +16941,7 @@ async function cmdRoute(projectSlug, sessionNumber, targetProjectSlug, opts) {
|
|
|
16919
16941
|
console.log();
|
|
16920
16942
|
}
|
|
16921
16943
|
async function cmdActive(opts) {
|
|
16922
|
-
const { getRegistryBackend } = await import("./factory-
|
|
16944
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
16923
16945
|
const registryBackend = await getRegistryBackend();
|
|
16924
16946
|
const minutes = parseInt(opts.minutes ?? "60", 10);
|
|
16925
16947
|
const cutoff = Date.now() - minutes * 60 * 1e3;
|
|
@@ -17006,8 +17028,8 @@ async function cmdActive(opts) {
|
|
|
17006
17028
|
], rows));
|
|
17007
17029
|
}
|
|
17008
17030
|
async function cmdAutoRoute(opts) {
|
|
17009
|
-
const { autoRoute, formatAutoRouteJson } = await import("./auto-route-
|
|
17010
|
-
const { getRegistryBackend, createStorageBackend } = await import("./factory-
|
|
17031
|
+
const { autoRoute, formatAutoRouteJson } = await import("./auto-route-o0BOsXn7.mjs");
|
|
17032
|
+
const { getRegistryBackend, createStorageBackend } = await import("./factory-DY7x73mE.mjs");
|
|
17011
17033
|
const { loadConfig } = await import("./config-YinjgXEJ.mjs");
|
|
17012
17034
|
const config = loadConfig();
|
|
17013
17035
|
const registryBackend = await getRegistryBackend();
|
|
@@ -17244,7 +17266,7 @@ async function cmdPause(opts) {
|
|
|
17244
17266
|
process.exitCode = 1;
|
|
17245
17267
|
return;
|
|
17246
17268
|
}
|
|
17247
|
-
const { getRegistryBackend } = await import("./factory-
|
|
17269
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
17248
17270
|
const registryBackend = await getRegistryBackend();
|
|
17249
17271
|
const cwd = process.cwd();
|
|
17250
17272
|
const project = await resolveProjectByCwd(registryBackend, cwd);
|
|
@@ -17639,7 +17661,7 @@ function buildStopBody(project, sessionId) {
|
|
|
17639
17661
|
}
|
|
17640
17662
|
}
|
|
17641
17663
|
async function cmdHandover(projectSlug, numberOrLatest, sessionId) {
|
|
17642
|
-
const { getRegistryBackend } = await import("./factory-
|
|
17664
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
17643
17665
|
const registryBackend = await getRegistryBackend();
|
|
17644
17666
|
let project;
|
|
17645
17667
|
if (projectSlug) {
|
|
@@ -17935,7 +17957,7 @@ function touchSentinel(rootPath) {
|
|
|
17935
17957
|
async function cmdAutosave(opts) {
|
|
17936
17958
|
const minGap = parseInt(opts.minGap ?? String(DEFAULT_MIN_GAP), 10);
|
|
17937
17959
|
const cwd = process.cwd();
|
|
17938
|
-
const { getRegistryBackend } = await import("./factory-
|
|
17960
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
17939
17961
|
const registryBackend = await getRegistryBackend();
|
|
17940
17962
|
const project = await resolveProjectByCwd(registryBackend, cwd);
|
|
17941
17963
|
if (!project) return;
|
|
@@ -20330,7 +20352,7 @@ async function countVectorDbPaths(oldPaths) {
|
|
|
20330
20352
|
if (oldPaths.length === 0) return 0;
|
|
20331
20353
|
try {
|
|
20332
20354
|
const { loadConfig } = await import("./config-YinjgXEJ.mjs");
|
|
20333
|
-
const { createStorageBackend } = await import("./factory-
|
|
20355
|
+
const { createStorageBackend } = await import("./factory-DY7x73mE.mjs");
|
|
20334
20356
|
const config = loadConfig();
|
|
20335
20357
|
if (config.storageBackend !== "postgres") return 0;
|
|
20336
20358
|
const backend = await createStorageBackend(config);
|
|
@@ -20348,7 +20370,7 @@ async function updateVectorDbPaths(moves) {
|
|
|
20348
20370
|
if (moves.length === 0) return 0;
|
|
20349
20371
|
try {
|
|
20350
20372
|
const { loadConfig } = await import("./config-YinjgXEJ.mjs");
|
|
20351
|
-
const { createStorageBackend } = await import("./factory-
|
|
20373
|
+
const { createStorageBackend } = await import("./factory-DY7x73mE.mjs");
|
|
20352
20374
|
const config = loadConfig();
|
|
20353
20375
|
if (config.storageBackend !== "postgres") return 0;
|
|
20354
20376
|
const backend = await createStorageBackend(config);
|
|
@@ -20435,7 +20457,7 @@ async function displayDryRun(plans) {
|
|
|
20435
20457
|
console.log();
|
|
20436
20458
|
}
|
|
20437
20459
|
async function executeCleanup(plans, skipReindex) {
|
|
20438
|
-
const { getRegistryBackend } = await import("./factory-
|
|
20460
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
20439
20461
|
const registryBackend = await getRegistryBackend();
|
|
20440
20462
|
let deleted = 0;
|
|
20441
20463
|
let renamed = 0;
|
|
@@ -20632,7 +20654,7 @@ async function executeCleanup(plans, skipReindex) {
|
|
|
20632
20654
|
//#region src/cli/commands/session-cleanup/index.ts
|
|
20633
20655
|
function registerSessionCleanupCommand(sessionCmd) {
|
|
20634
20656
|
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) => {
|
|
20635
|
-
const { getRegistryBackend } = await import("./factory-
|
|
20657
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
20636
20658
|
const registryBackend = await getRegistryBackend();
|
|
20637
20659
|
const dryRun = !opts.execute;
|
|
20638
20660
|
const skipReindex = opts.reindex === false;
|
|
@@ -20702,7 +20724,7 @@ function finalizeNote(notePath) {
|
|
|
20702
20724
|
}
|
|
20703
20725
|
async function cmdEnd(opts) {
|
|
20704
20726
|
await cmdPause(opts);
|
|
20705
|
-
const { getRegistryBackend } = await import("./factory-
|
|
20727
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
20706
20728
|
const registryBackend = await getRegistryBackend();
|
|
20707
20729
|
const cwd = process.cwd();
|
|
20708
20730
|
const project = await registryBackend.findProjectByCwdPrefix(cwd);
|
|
@@ -21150,7 +21172,7 @@ async function cmdFind(query, opts) {
|
|
|
21150
21172
|
*/
|
|
21151
21173
|
async function getProjects(includeArchived) {
|
|
21152
21174
|
try {
|
|
21153
|
-
const { getRegistryBackend } = await import("./factory-
|
|
21175
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
21154
21176
|
const rows = await (await getRegistryBackend()).listProjectsWithSessionStats();
|
|
21155
21177
|
return includeArchived ? rows : rows.filter((p) => p.status === "active");
|
|
21156
21178
|
} catch {
|
|
@@ -21624,7 +21646,7 @@ async function cmdPick(opts = {}) {
|
|
|
21624
21646
|
const onRemove = async (rec) => {
|
|
21625
21647
|
if (!rec.slug) return false;
|
|
21626
21648
|
try {
|
|
21627
|
-
const { getRegistryBackend } = await import("./factory-
|
|
21649
|
+
const { getRegistryBackend } = await import("./factory-DY7x73mE.mjs");
|
|
21628
21650
|
const registryBackend = await getRegistryBackend();
|
|
21629
21651
|
const project = await registryBackend.getProjectBySlug(rec.slug);
|
|
21630
21652
|
if (!project || project.status !== "active") return false;
|
|
@@ -21909,4 +21931,4 @@ claude() {
|
|
|
21909
21931
|
|
|
21910
21932
|
//#endregion
|
|
21911
21933
|
export { drainStdio as n, buildProgram as t };
|
|
21912
|
-
//# sourceMappingURL=program-
|
|
21934
|
+
//# sourceMappingURL=program-DK0mRRlf.mjs.map
|