@tekmidian/pai 0.66.2 → 0.66.4
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/dist/{aibroker-client-CHEEvJZW.mjs → aibroker-client-Ck3p3k_-.mjs} +1 -1
- package/dist/{aibroker-client-Dfv7j1Od.mjs → aibroker-client-WCZi_tn-.mjs} +2 -2
- package/dist/{aibroker-client-Dfv7j1Od.mjs.map → aibroker-client-WCZi_tn-.mjs.map} +1 -1
- package/dist/{chain-D5876UQX.mjs → chain-BhPwBDXB.mjs} +3 -3
- package/dist/{chain-D5876UQX.mjs.map → chain-BhPwBDXB.mjs.map} +1 -1
- package/dist/cli/index.mjs +13 -13
- package/dist/cli/program.mjs +13 -13
- package/dist/{config-DKIA7wgF.mjs → config-CnsDMETf.mjs} +1 -1
- package/dist/{config-C-LiGlop.mjs → config-Ddc4DIPk.mjs} +5 -3
- package/dist/config-Ddc4DIPk.mjs.map +1 -0
- package/dist/{context-handover-cache-9PGvXRIw.mjs → context-handover-cache-BbCYQUGo.mjs} +244 -10
- package/dist/context-handover-cache-BbCYQUGo.mjs.map +1 -0
- package/dist/daemon/index.mjs +11 -11
- package/dist/{daemon-BUgNvMUh.mjs → daemon-DzXOfieK.mjs} +37 -18
- package/dist/daemon-DzXOfieK.mjs.map +1 -0
- package/dist/daemon-UJtRscyO.mjs +18 -0
- package/dist/daemon-mcp/index.mjs +9 -9
- package/dist/{embeddings-CEBGrzwu.mjs → embeddings-D0WOQpYR.mjs} +1 -1
- package/dist/{embeddings-DOLZnT1X.mjs → embeddings-DMVzpvRZ.mjs} +18 -9
- package/dist/embeddings-DMVzpvRZ.mjs.map +1 -0
- package/dist/{factory-Ypf8r0fK.mjs → factory-CXFHwvcv.mjs} +5 -5
- package/dist/{factory-Ypf8r0fK.mjs.map → factory-CXFHwvcv.mjs.map} +1 -1
- package/dist/{factory-DrBg24UT.mjs → factory-CnKsU6zX.mjs} +4 -4
- package/dist/{fallback-D51R4shY.mjs → fallback-CoooFqyA.mjs} +4 -4
- package/dist/{fallback-D51R4shY.mjs.map → fallback-CoooFqyA.mjs.map} +1 -1
- package/dist/hooks/block-sleep-poll.mjs +6 -5
- package/dist/hooks/block-sleep-poll.mjs.map +3 -3
- package/dist/hooks/context-compression-hook.mjs +1 -0
- package/dist/hooks/context-compression-hook.mjs.map +2 -2
- package/dist/hooks/load-project-context.mjs +6 -5
- package/dist/hooks/load-project-context.mjs.map +3 -3
- package/dist/hooks/post-compact-inject.mjs +6 -5
- package/dist/hooks/post-compact-inject.mjs.map +3 -3
- package/dist/hooks/route-agents-to-worker.mjs +6 -5
- package/dist/hooks/route-agents-to-worker.mjs.map +3 -3
- package/dist/hooks/security-validator.mjs +1 -0
- package/dist/hooks/security-validator.mjs.map +2 -2
- package/dist/hooks/whisper-rules.mjs +1 -0
- package/dist/hooks/whisper-rules.mjs.map +2 -2
- package/dist/hooks/worker-guard.mjs +6 -5
- package/dist/hooks/worker-guard.mjs.map +3 -3
- package/dist/hooks/worker-proxy.mjs +6 -5
- package/dist/hooks/worker-proxy.mjs.map +3 -3
- package/dist/hooks/worker-status-line.mjs +6 -5
- package/dist/hooks/worker-status-line.mjs.map +3 -3
- package/dist/hooks/worker-supervision.mjs +6 -5
- package/dist/hooks/worker-supervision.mjs.map +3 -3
- package/dist/{ipc-client-BLYX51nG.mjs → ipc-client-DkxRay-o.mjs} +2 -2
- package/dist/{ipc-client-BLYX51nG.mjs.map → ipc-client-DkxRay-o.mjs.map} +1 -1
- package/dist/main-resolver-DrHtx8iW.mjs +7 -0
- package/dist/{main-resolver-kVkMJZUD.mjs → main-resolver-SfGGg1DB.mjs} +6 -6
- package/dist/{main-resolver-kVkMJZUD.mjs.map → main-resolver-SfGGg1DB.mjs.map} +1 -1
- package/dist/{pai-home-Cm9rcJgX.mjs → pai-home-UncxWxlX.mjs} +1 -1
- package/dist/{pai-home-Cm9rcJgX.mjs.map → pai-home-UncxWxlX.mjs.map} +1 -1
- package/dist/{planner-D5yt0EfA.mjs → planner-C43lzcw5.mjs} +8 -8
- package/dist/{planner-D5yt0EfA.mjs.map → planner-C43lzcw5.mjs.map} +1 -1
- package/dist/postgres-B2BEBT-J.mjs +5 -0
- package/dist/{postgres-D3xc2RB4.mjs → postgres-BxmyQHoA.mjs} +53 -5
- package/dist/postgres-BxmyQHoA.mjs.map +1 -0
- package/dist/{program-DIXRtAFy.mjs → program-DB-hoyfW.mjs} +124 -172
- package/dist/program-DB-hoyfW.mjs.map +1 -0
- package/dist/{query-feedback-B7FYE4JR.mjs → query-feedback-BPdapXKd.mjs} +2 -2
- package/dist/{query-feedback-B7FYE4JR.mjs.map → query-feedback-BPdapXKd.mjs.map} +1 -1
- package/dist/{run-env-Bnmf6bRI.mjs → run-env-CQRnxNht.mjs} +3 -3
- package/dist/{run-env-Bnmf6bRI.mjs.map → run-env-CQRnxNht.mjs.map} +1 -1
- package/dist/{run-CLYTOm0x.mjs → run-wi5NEkJd.mjs} +118 -9
- package/dist/run-wi5NEkJd.mjs.map +1 -0
- package/dist/{runtime-paths-D3FKAm69.mjs → runtime-paths-Bw3Jk8qJ.mjs} +4 -2
- package/dist/runtime-paths-Bw3Jk8qJ.mjs.map +1 -0
- package/dist/{zettelkasten-BhZMvmoK.mjs → zettelkasten-BRIaHzFm.mjs} +2 -2
- package/dist/{zettelkasten-BhZMvmoK.mjs.map → zettelkasten-BRIaHzFm.mjs.map} +1 -1
- package/dist/{zettelkasten-BwV1pluL.mjs → zettelkasten-G0-ZTybr.mjs} +3 -3
- package/docs/commands/memory.md +2 -0
- package/package.json +1 -1
- package/dist/config-C-LiGlop.mjs.map +0 -1
- package/dist/context-handover-cache-9PGvXRIw.mjs.map +0 -1
- package/dist/daemon-BUgNvMUh.mjs.map +0 -1
- package/dist/daemon-DL0eglMJ.mjs +0 -18
- package/dist/embeddings-DOLZnT1X.mjs.map +0 -1
- package/dist/main-resolver-BYgP86C1.mjs +0 -7
- package/dist/postgres-BmLr0MUm.mjs +0 -5
- package/dist/postgres-D3xc2RB4.mjs.map +0 -1
- package/dist/program-DIXRtAFy.mjs.map +0 -1
- package/dist/run-CLYTOm0x.mjs.map +0 -1
- package/dist/runtime-paths-D3FKAm69.mjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as paiHomePath, n as migratePaiDir, o as resolvePaiFile } from "./pai-home-
|
|
1
|
+
import { a as paiHomePath, n as migratePaiDir, o as resolvePaiFile } from "./pai-home-UncxWxlX.mjs";
|
|
2
2
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
import { join } from "node:path";
|
|
@@ -85,4 +85,4 @@ function saveQueryResult(record) {
|
|
|
85
85
|
|
|
86
86
|
//#endregion
|
|
87
87
|
export { queriesDirPath as n, saveQueryResult as r, migrateQueriesDir as t };
|
|
88
|
-
//# sourceMappingURL=query-feedback-
|
|
88
|
+
//# sourceMappingURL=query-feedback-BPdapXKd.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-feedback-
|
|
1
|
+
{"version":3,"file":"query-feedback-BPdapXKd.mjs","names":[],"sources":["../src/zettelkasten/query-feedback.ts"],"sourcesContent":["/**\n * Query feedback loop — persist search queries and results as markdown files.\n *\n * When memory_search or zettel_converse returns results, the query + result\n * metadata is saved to ~/.config/pai/queries/ as a markdown file with YAML\n * frontmatter. The daemon indexer picks these up on the next cycle and indexes\n * them into the storage backend, creating a self-reinforcing feedback loop: past\n * queries become searchable context for future queries.\n */\n\nimport { existsSync, mkdirSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { paiHomePath, resolvePaiFile, migratePaiDir, type MigrateDirResult } from \"../config/pai-home.js\";\n\nexport interface QueryRecord {\n /** The original query string. */\n query: string;\n /** Timestamp of the query. */\n timestamp: number;\n /** Tool that produced the result: 'memory_search' | 'zettel_converse'. */\n source: string;\n /** Slugs of the top result paths (for linking back). */\n sourceSlugs: string[];\n /** Preview of the answer/result (first 500 chars). */\n answerPreview: string;\n /** Number of results returned. */\n resultCount: number;\n}\n\nfunction oldQueriesDir(): string {\n return join(homedir(), \".config\", \"pai\", \"queries\");\n}\n\n/** Where queries live: the new PAI_HOME dir if it has anything in it or was\n * already created, else the pre-2026-09-19 ~/.config/pai/queries (printing\n * a one-time notice), else the new dir (the target a first write creates). */\nexport function queriesDirPath(): string {\n return resolvePaiFile(paiHomePath(\"queries\"), [oldQueriesDir()], \"pai config migrate\");\n}\n\nexport function migrateQueriesDir(opts: { dryRun?: boolean } = {}): MigrateDirResult {\n return migratePaiDir(paiHomePath(\"queries\"), [oldQueriesDir()], opts);\n}\n\n/**\n * Ensure the queries directory exists.\n */\nfunction ensureQueriesDir(): void {\n const dir = paiHomePath(\"queries\");\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n}\n\n/**\n * Generate a filename-safe slug from a query string.\n */\nfunction querySlug(query: string, timestamp: number): string {\n const slug = query\n .toLowerCase()\n .replace(/[^a-z0-9\\s]/g, \"\")\n .replace(/\\s+/g, \"-\")\n .slice(0, 60);\n const ts = new Date(timestamp).toISOString().slice(0, 10);\n const shortHash = timestamp.toString(36).slice(-4);\n return `${ts}-${slug}-${shortHash}`;\n}\n\n/**\n * Save a query + result record as a markdown file with YAML frontmatter.\n *\n * The file is written to PAI_HOME's queries/ dir and will be picked up by\n * the daemon indexer on the next cycle.\n */\nexport function saveQueryResult(record: QueryRecord): string | null {\n try {\n ensureQueriesDir();\n\n const filename = querySlug(record.query, record.timestamp) + \".md\";\n const filepath = join(paiHomePath(\"queries\"), filename);\n\n // Don't overwrite if the exact file already exists\n if (existsSync(filepath)) return filepath;\n\n const frontmatter = [\n \"---\",\n `query: \"${record.query.replace(/\"/g, '\\\\\"')}\"`,\n `timestamp: ${new Date(record.timestamp).toISOString()}`,\n `source: ${record.source}`,\n `result_count: ${record.resultCount}`,\n `source_slugs:`,\n ...record.sourceSlugs.map((s) => ` - \"${s}\"`),\n \"---\",\n ].join(\"\\n\");\n\n const body = [\n \"\",\n `# Query: ${record.query}`,\n \"\",\n `**Source:** ${record.source} `,\n `**Date:** ${new Date(record.timestamp).toISOString().slice(0, 19).replace(\"T\", \" \")} `,\n `**Results:** ${record.resultCount}`,\n \"\",\n \"## Answer Preview\",\n \"\",\n record.answerPreview,\n \"\",\n \"## Source Paths\",\n \"\",\n ...record.sourceSlugs.map((s) => `- \\`${s}\\``),\n \"\",\n ].join(\"\\n\");\n\n writeFileSync(filepath, frontmatter + body, \"utf8\");\n return filepath;\n } catch {\n // Non-critical — don't crash the parent tool if query logging fails\n return null;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AA8BA,SAAS,gBAAwB;AAC/B,QAAO,KAAK,SAAS,EAAE,WAAW,OAAO,UAAU;;;;;AAMrD,SAAgB,iBAAyB;AACvC,QAAO,eAAe,YAAY,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE,qBAAqB;;AAGxF,SAAgB,kBAAkB,OAA6B,EAAE,EAAoB;AACnF,QAAO,cAAc,YAAY,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK;;;;;AAMvE,SAAS,mBAAyB;CAChC,MAAM,MAAM,YAAY,UAAU;AAClC,KAAI,CAAC,WAAW,IAAI,CAClB,WAAU,KAAK,EAAE,WAAW,MAAM,CAAC;;;;;AAOvC,SAAS,UAAU,OAAe,WAA2B;CAC3D,MAAM,OAAO,MACV,aAAa,CACb,QAAQ,gBAAgB,GAAG,CAC3B,QAAQ,QAAQ,IAAI,CACpB,MAAM,GAAG,GAAG;AAGf,QAAO,GAFI,IAAI,KAAK,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,CAE5C,GAAG,KAAK,GADH,UAAU,SAAS,GAAG,CAAC,MAAM,GAAG;;;;;;;;AAUpD,SAAgB,gBAAgB,QAAoC;AAClE,KAAI;AACF,oBAAkB;EAElB,MAAM,WAAW,UAAU,OAAO,OAAO,OAAO,UAAU,GAAG;EAC7D,MAAM,WAAW,KAAK,YAAY,UAAU,EAAE,SAAS;AAGvD,MAAI,WAAW,SAAS,CAAE,QAAO;AA+BjC,gBAAc,UA7BM;GAClB;GACA,WAAW,OAAO,MAAM,QAAQ,MAAM,OAAM,CAAC;GAC7C,cAAc,IAAI,KAAK,OAAO,UAAU,CAAC,aAAa;GACtD,WAAW,OAAO;GAClB,iBAAiB,OAAO;GACxB;GACA,GAAG,OAAO,YAAY,KAAK,MAAM,QAAQ,EAAE,GAAG;GAC9C;GACD,CAAC,KAAK,KAAK,GAEC;GACX;GACA,YAAY,OAAO;GACnB;GACA,eAAe,OAAO,OAAO;GAC7B,aAAa,IAAI,KAAK,OAAO,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC;GACrF,gBAAgB,OAAO;GACvB;GACA;GACA;GACA,OAAO;GACP;GACA;GACA;GACA,GAAG,OAAO,YAAY,KAAK,MAAM,OAAO,EAAE,IAAI;GAC9C;GACD,CAAC,KAAK,KAAK,EAEgC,OAAO;AACnD,SAAO;SACD;AAEN,SAAO"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { _ as writeYamlFileAtomic, d as readMainConfigRaw, f as writeMainConfigRaw, g as YamlStoreError, n as CONFIG_FILE, v as readJsonStrict, y as writeJsonAtomic } from "./config-
|
|
2
|
-
import { a as paiHomePath, o as resolvePaiFile, r as migratePaiFile } from "./pai-home-
|
|
1
|
+
import { _ as writeYamlFileAtomic, d as readMainConfigRaw, f as writeMainConfigRaw, g as YamlStoreError, n as CONFIG_FILE, v as readJsonStrict, y as writeJsonAtomic } from "./config-Ddc4DIPk.mjs";
|
|
2
|
+
import { a as paiHomePath, o as resolvePaiFile, r as migratePaiFile } from "./pai-home-UncxWxlX.mjs";
|
|
3
3
|
import { chmodSync, existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { homedir } from "node:os";
|
|
5
5
|
import { delimiter, dirname, join } from "node:path";
|
|
@@ -1462,4 +1462,4 @@ function onPath(bin, env) {
|
|
|
1462
1462
|
|
|
1463
1463
|
//#endregion
|
|
1464
1464
|
export { resolveProviderKey as A, DEFAULT_CONTEXT_WINDOW as B, maskKey as C, readWorkersSection as D, providerKeyPath as E, needsWorkersYamlRelocation as F, stripModelVariant as H, parseWorkersYamlDocument as I, relocateWorkersYaml as L, initWorkersYaml as M, inlineWorkersYamlKeys as N, resolveCapability as O, migrateWorkersToYaml as P, workersYamlLegacyNotice as R, keysDir as S, providerCostTier as T, contextWindowFromModelId as V, classModelCapability as _, DEFAULT_CACHE_KEEPALIVE_SECS as a, getProviderOrNative as b, DEFAULT_PANE as c, MODEL_CAPABILITIES as d, NATIVE_ANTHROPIC_MODELS as f, assertProviderRunnable as g, WorkersConfigError as h, CAPABILITY_NAME_RE as i, writeWorkersSection as j, resolveModelCapability as k, DEFAULT_ROUTING as l, WORKER_CLASSES as m, claudeCommand as n, DEFAULT_LOG_DIR as o, PROVIDER_TAGS as p, ANTHROPIC_NATIVE as r, DEFAULT_MAX_MINUTES as s, buildRunEnv as t, DEFAULT_TREE as u, defaultWorkersConfig as v, nativeAnthropicProvider as w, isModelCapability as x, expandHome as y, workersYamlPath as z };
|
|
1465
|
-
//# sourceMappingURL=run-env-
|
|
1465
|
+
//# sourceMappingURL=run-env-CQRnxNht.mjs.map
|