pi-para 0.5.5 → 0.6.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/CHANGELOG.md +22 -0
- package/package.json +8 -5
- package/scripts/build-assets.mjs +29 -0
- package/scripts/install.ps1 +27 -16
- package/scripts/install.sh +3 -2
- package/scripts/smoke-install.mjs +5 -3
- package/src/doctor.ts +5 -0
- package/dist/atomic-write.d.ts +0 -2
- package/dist/atomic-write.d.ts.map +0 -1
- package/dist/atomic-write.js +0 -18
- package/dist/atomic-write.js.map +0 -1
- package/dist/capture.d.ts +0 -34
- package/dist/capture.d.ts.map +0 -1
- package/dist/capture.js +0 -461
- package/dist/capture.js.map +0 -1
- package/dist/cli-legacy.d.ts +0 -4
- package/dist/cli-legacy.d.ts.map +0 -1
- package/dist/cli-legacy.js +0 -41
- package/dist/cli-legacy.js.map +0 -1
- package/dist/cli.d.ts +0 -8
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -511
- package/dist/cli.js.map +0 -1
- package/dist/commands.d.ts +0 -15
- package/dist/commands.d.ts.map +0 -1
- package/dist/commands.js +0 -719
- package/dist/commands.js.map +0 -1
- package/dist/config.d.ts +0 -104
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -242
- package/dist/config.js.map +0 -1
- package/dist/context.d.ts +0 -63
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -311
- package/dist/context.js.map +0 -1
- package/dist/credentials.d.ts +0 -27
- package/dist/credentials.d.ts.map +0 -1
- package/dist/credentials.js +0 -85
- package/dist/credentials.js.map +0 -1
- package/dist/daemon.d.ts +0 -49
- package/dist/daemon.d.ts.map +0 -1
- package/dist/daemon.js +0 -226
- package/dist/daemon.js.map +0 -1
- package/dist/doctor.d.ts +0 -20
- package/dist/doctor.d.ts.map +0 -1
- package/dist/doctor.js +0 -171
- package/dist/doctor.js.map +0 -1
- package/dist/frontmatter.d.ts +0 -59
- package/dist/frontmatter.d.ts.map +0 -1
- package/dist/frontmatter.js +0 -170
- package/dist/frontmatter.js.map +0 -1
- package/dist/gepa/dataset.d.ts +0 -36
- package/dist/gepa/dataset.d.ts.map +0 -1
- package/dist/gepa/dataset.js +0 -148
- package/dist/gepa/dataset.js.map +0 -1
- package/dist/gepa/evaluator.d.ts +0 -51
- package/dist/gepa/evaluator.d.ts.map +0 -1
- package/dist/gepa/evaluator.js +0 -317
- package/dist/gepa/evaluator.js.map +0 -1
- package/dist/gepa/index.d.ts +0 -66
- package/dist/gepa/index.d.ts.map +0 -1
- package/dist/gepa/index.js +0 -240
- package/dist/gepa/index.js.map +0 -1
- package/dist/gepa/llm.d.ts +0 -35
- package/dist/gepa/llm.d.ts.map +0 -1
- package/dist/gepa/llm.js +0 -268
- package/dist/gepa/llm.js.map +0 -1
- package/dist/gepa/optimized/capture-prompt.txt +0 -65
- package/dist/gepa/optimizer.d.ts +0 -29
- package/dist/gepa/optimizer.d.ts.map +0 -1
- package/dist/gepa/optimizer.js +0 -249
- package/dist/gepa/optimizer.js.map +0 -1
- package/dist/gepa/targets.d.ts +0 -39
- package/dist/gepa/targets.d.ts.map +0 -1
- package/dist/gepa/targets.js +0 -326
- package/dist/gepa/targets.js.map +0 -1
- package/dist/gepa/types.d.ts +0 -168
- package/dist/gepa/types.d.ts.map +0 -1
- package/dist/gepa/types.js +0 -124
- package/dist/gepa/types.js.map +0 -1
- package/dist/index.d.ts +0 -21
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -359
- package/dist/index.js.map +0 -1
- package/dist/ingest.d.ts +0 -88
- package/dist/ingest.d.ts.map +0 -1
- package/dist/ingest.js +0 -105
- package/dist/ingest.js.map +0 -1
- package/dist/link-discovery.d.ts +0 -40
- package/dist/link-discovery.d.ts.map +0 -1
- package/dist/link-discovery.js +0 -122
- package/dist/link-discovery.js.map +0 -1
- package/dist/link-utils.d.ts +0 -30
- package/dist/link-utils.d.ts.map +0 -1
- package/dist/link-utils.js +0 -145
- package/dist/link-utils.js.map +0 -1
- package/dist/lint.d.ts +0 -39
- package/dist/lint.d.ts.map +0 -1
- package/dist/lint.js +0 -827
- package/dist/lint.js.map +0 -1
- package/dist/maintainer.d.ts +0 -24
- package/dist/maintainer.d.ts.map +0 -1
- package/dist/maintainer.js +0 -358
- package/dist/maintainer.js.map +0 -1
- package/dist/model-resolver.d.ts +0 -30
- package/dist/model-resolver.d.ts.map +0 -1
- package/dist/model-resolver.js +0 -71
- package/dist/model-resolver.js.map +0 -1
- package/dist/paths.d.ts +0 -20
- package/dist/paths.d.ts.map +0 -1
- package/dist/paths.js +0 -33
- package/dist/paths.js.map +0 -1
- package/dist/processor.d.ts +0 -14
- package/dist/processor.d.ts.map +0 -1
- package/dist/processor.js +0 -361
- package/dist/processor.js.map +0 -1
- package/dist/qmd-providers.d.ts +0 -12
- package/dist/qmd-providers.d.ts.map +0 -1
- package/dist/qmd-providers.js +0 -45
- package/dist/qmd-providers.js.map +0 -1
- package/dist/query.d.ts +0 -69
- package/dist/query.d.ts.map +0 -1
- package/dist/query.js +0 -120
- package/dist/query.js.map +0 -1
- package/dist/raw.d.ts +0 -57
- package/dist/raw.d.ts.map +0 -1
- package/dist/raw.js +0 -219
- package/dist/raw.js.map +0 -1
- package/dist/redact.d.ts +0 -21
- package/dist/redact.d.ts.map +0 -1
- package/dist/redact.js +0 -143
- package/dist/redact.js.map +0 -1
- package/dist/repair.d.ts +0 -11
- package/dist/repair.d.ts.map +0 -1
- package/dist/repair.js +0 -41
- package/dist/repair.js.map +0 -1
- package/dist/scheduler/controls.d.ts +0 -35
- package/dist/scheduler/controls.d.ts.map +0 -1
- package/dist/scheduler/controls.js +0 -98
- package/dist/scheduler/controls.js.map +0 -1
- package/dist/scheduler/index.d.ts +0 -48
- package/dist/scheduler/index.d.ts.map +0 -1
- package/dist/scheduler/index.js +0 -193
- package/dist/scheduler/index.js.map +0 -1
- package/dist/scheduler/leases.d.ts +0 -22
- package/dist/scheduler/leases.d.ts.map +0 -1
- package/dist/scheduler/leases.js +0 -74
- package/dist/scheduler/leases.js.map +0 -1
- package/dist/scheduler/session-capture.d.ts +0 -33
- package/dist/scheduler/session-capture.d.ts.map +0 -1
- package/dist/scheduler/session-capture.js +0 -108
- package/dist/scheduler/session-capture.js.map +0 -1
- package/dist/scheduler/state.d.ts +0 -56
- package/dist/scheduler/state.d.ts.map +0 -1
- package/dist/scheduler/state.js +0 -210
- package/dist/scheduler/state.js.map +0 -1
- package/dist/scope.d.ts +0 -54
- package/dist/scope.d.ts.map +0 -1
- package/dist/scope.js +0 -161
- package/dist/scope.js.map +0 -1
- package/dist/scripts/bulk-link-fix.d.ts +0 -9
- package/dist/scripts/bulk-link-fix.d.ts.map +0 -1
- package/dist/scripts/bulk-link-fix.js +0 -106
- package/dist/scripts/bulk-link-fix.js.map +0 -1
- package/dist/session-tools.d.ts +0 -33
- package/dist/session-tools.d.ts.map +0 -1
- package/dist/session-tools.js +0 -211
- package/dist/session-tools.js.map +0 -1
- package/dist/settings.d.ts +0 -19
- package/dist/settings.d.ts.map +0 -1
- package/dist/settings.js +0 -106
- package/dist/settings.js.map +0 -1
- package/dist/setup.d.ts +0 -29
- package/dist/setup.d.ts.map +0 -1
- package/dist/setup.js +0 -90
- package/dist/setup.js.map +0 -1
- package/dist/state.d.ts +0 -54
- package/dist/state.d.ts.map +0 -1
- package/dist/state.js +0 -176
- package/dist/state.js.map +0 -1
- package/dist/status.d.ts +0 -22
- package/dist/status.d.ts.map +0 -1
- package/dist/status.js +0 -93
- package/dist/status.js.map +0 -1
- package/dist/store.d.ts +0 -71
- package/dist/store.d.ts.map +0 -1
- package/dist/store.js +0 -282
- package/dist/store.js.map +0 -1
- package/dist/summarize.d.ts +0 -60
- package/dist/summarize.d.ts.map +0 -1
- package/dist/summarize.js +0 -266
- package/dist/summarize.js.map +0 -1
- package/dist/tag-registry.d.ts +0 -56
- package/dist/tag-registry.d.ts.map +0 -1
- package/dist/tag-registry.js +0 -146
- package/dist/tag-registry.js.map +0 -1
- package/dist/templates/prompts.d.ts +0 -63
- package/dist/templates/prompts.d.ts.map +0 -1
- package/dist/templates/prompts.js +0 -260
- package/dist/templates/prompts.js.map +0 -1
- package/dist/tools.d.ts +0 -26
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js +0 -1198
- package/dist/tools.js.map +0 -1
- package/dist/watcher.d.ts +0 -25
- package/dist/watcher.d.ts.map +0 -1
- package/dist/watcher.js +0 -84
- package/dist/watcher.js.map +0 -1
- package/dist/webui/client/dist/index.html +0 -1885
- package/dist/webui/server.d.ts +0 -31
- package/dist/webui/server.d.ts.map +0 -1
- package/dist/webui/server.js +0 -566
- package/dist/webui/server.js.map +0 -1
- package/dist/wiki-tool-guidance.d.ts +0 -6
- package/dist/wiki-tool-guidance.d.ts.map +0 -1
- package/dist/wiki-tool-guidance.js +0 -70
- package/dist/wiki-tool-guidance.js.map +0 -1
- package/dist/wiki.d.ts +0 -108
- package/dist/wiki.d.ts.map +0 -1
- package/dist/wiki.js +0 -497
- package/dist/wiki.js.map +0 -1
- package/scripts/gepa/__pycache__/dataset.cpython-313.pyc +0 -0
- package/scripts/gepa/__pycache__/lm_providers.cpython-313.pyc +0 -0
- package/scripts/gepa/__pycache__/metric.cpython-313.pyc +0 -0
- package/scripts/gepa/__pycache__/program.cpython-313.pyc +0 -0
- package/scripts/gepa/__pycache__/wiki_reader.cpython-313.pyc +0 -0
- package/scripts/gepa/uv.lock +0 -2241
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## [0.6.0] — 2026-07-14
|
|
6
|
+
|
|
7
|
+
### Breaking
|
|
8
|
+
- Node.js >= 22 is now required (`engines.node`), matching the embedded qmd-engine SDK. Installers reject Node 20/21.
|
|
9
|
+
|
|
5
10
|
### Changed
|
|
11
|
+
- Upgraded `qmd-engine` to ^2.5.0 — `node-llama-cpp` is now an optional peer dependency upstream, so API-provider installs no longer pull the native llama.cpp toolchain.
|
|
12
|
+
- Upgraded `better-sqlite3` to ^12.8.0 (prebuilt binaries for current Node majors, including Node 25 on Windows).
|
|
13
|
+
- Wiki context is injected as a named `<system-reminder name="pi-para-wiki-context">` block with explicit wiki operating rules (search first, verify stale claims, persist decisions, prefer wiki_edit, no secrets).
|
|
14
|
+
|
|
15
|
+
### Performance
|
|
16
|
+
- `wiki_write` inline overhead cut from ~2.3s to ~0.6s on 500+ page wikis: single-pass parallel `rebuildIndex`, readdir-only slug scan for auto-linking, and QMD reindex deferred to the debounced background maintenance queue (same as `wiki_edit`).
|
|
17
|
+
- `wiki_query` self-heals stale search state: on zero results it refreshes the QMD filesystem index once and retries before reporting no matches.
|
|
18
|
+
|
|
19
|
+
### Fixed (Windows)
|
|
20
|
+
- `scripts/install.ps1` requires Node >= 22, invokes `npx.cmd` explicitly (bare `npx` resolves to npx.ps1 and is blocked under restricted execution policies), and propagates `$LASTEXITCODE`.
|
|
21
|
+
- `scripts/install.sh` minimum Node raised to 22.
|
|
22
|
+
- Build/clean npm scripts are cross-platform (Node-based asset copy instead of POSIX `mkdir -p`/`cp`/`rm -rf`).
|
|
23
|
+
- Fresh-install smoke test works on Windows (`fileURLToPath` for paths; sets both `HOME` and `USERPROFILE`).
|
|
24
|
+
- `pi-para doctor` no longer emits a false secrets-permission warning on Windows/NTFS.
|
|
25
|
+
- CI now includes a `windows-latest` job (typecheck, build, fresh-install smoke).
|
|
26
|
+
|
|
27
|
+
### Changed (docs/infra)
|
|
6
28
|
- Primary setup/runtime documentation now targets the no-daemon in-process scheduler architecture.
|
|
7
29
|
- Added cross-platform install wrappers in `scripts/install.sh` and `scripts/install.ps1`.
|
|
8
30
|
- Deprecated legacy daemon setup artifacts: `setup.sh` now delegates to the current setup flow, and `pi-para-daemon.service` / `DAEMON-PLAN.md` are marked legacy.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-para",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "PARA Knowledge Base Extension for pi — persistent, LLM-curated personal wiki",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -144,8 +144,8 @@
|
|
|
144
144
|
"skills"
|
|
145
145
|
],
|
|
146
146
|
"scripts": {
|
|
147
|
-
"clean": "
|
|
148
|
-
"build": "tsc -p tsconfig.json &&
|
|
147
|
+
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
148
|
+
"build": "tsc -p tsconfig.json && node scripts/build-assets.mjs",
|
|
149
149
|
"check": "tsc --noEmit",
|
|
150
150
|
"test": "vitest --run",
|
|
151
151
|
"test:coverage": "vitest --run --coverage",
|
|
@@ -155,10 +155,13 @@
|
|
|
155
155
|
},
|
|
156
156
|
"dependencies": {
|
|
157
157
|
"@types/better-sqlite3": "^7.6.13",
|
|
158
|
-
"better-sqlite3": "^11.
|
|
159
|
-
"qmd-engine": "^2.
|
|
158
|
+
"better-sqlite3": "^12.11.1",
|
|
159
|
+
"qmd-engine": "^2.5.0",
|
|
160
160
|
"yaml": "^2.8.2"
|
|
161
161
|
},
|
|
162
|
+
"engines": {
|
|
163
|
+
"node": ">=22.0.0"
|
|
164
|
+
},
|
|
162
165
|
"peerDependencies": {
|
|
163
166
|
"@earendil-works/pi-agent-core": "^0.80.2",
|
|
164
167
|
"@earendil-works/pi-ai": "^0.80.2",
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/* v8 ignore start */
|
|
3
|
+
// Cross-platform post-tsc asset copy (replaces POSIX mkdir -p/cp in npm build).
|
|
4
|
+
import { cp, mkdir, readdir } from "node:fs/promises";
|
|
5
|
+
import { existsSync } from "node:fs";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
import { join, resolve, dirname } from "node:path";
|
|
8
|
+
|
|
9
|
+
const root = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
10
|
+
|
|
11
|
+
// 1. Web UI client bundle
|
|
12
|
+
const webuiSrc = join(root, "src", "webui", "client", "dist", "index.html");
|
|
13
|
+
const webuiDestDir = join(root, "dist", "webui", "client", "dist");
|
|
14
|
+
await mkdir(webuiDestDir, { recursive: true });
|
|
15
|
+
if (existsSync(webuiSrc)) {
|
|
16
|
+
await cp(webuiSrc, join(webuiDestDir, "index.html"));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// 2. GEPA optimized prompt text files (optional)
|
|
20
|
+
const gepaSrcDir = join(root, "src", "gepa", "optimized");
|
|
21
|
+
const gepaDestDir = join(root, "dist", "gepa", "optimized");
|
|
22
|
+
await mkdir(gepaDestDir, { recursive: true });
|
|
23
|
+
if (existsSync(gepaSrcDir)) {
|
|
24
|
+
for (const entry of await readdir(gepaSrcDir)) {
|
|
25
|
+
if (entry.endsWith(".txt")) {
|
|
26
|
+
await cp(join(gepaSrcDir, entry), join(gepaDestDir, entry));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
package/scripts/install.ps1
CHANGED
|
@@ -9,36 +9,47 @@ Write-Host ""
|
|
|
9
9
|
|
|
10
10
|
$package = "pi-para"
|
|
11
11
|
$packageLatest = "$package@latest"
|
|
12
|
-
|
|
13
|
-
$
|
|
14
|
-
|
|
15
|
-
if (-not (Get-Command npx -ErrorAction SilentlyContinue)) {
|
|
16
|
-
Write-Host " ✗ npx not found." -ForegroundColor Red
|
|
17
|
-
Write-Host ""
|
|
18
|
-
Write-Host " Install Node.js (>= $minMajor.$minMinor) from https://nodejs.org, then re-run." -ForegroundColor Yellow
|
|
19
|
-
Write-Host ""
|
|
20
|
-
exit 1
|
|
21
|
-
}
|
|
12
|
+
# qmd-engine (embedded search SDK) requires Node >= 22.
|
|
13
|
+
$minMajor = 22
|
|
22
14
|
|
|
23
15
|
$nodeVer = (node -v 2>$null) -replace '^v',''
|
|
24
16
|
if (-not $nodeVer) {
|
|
25
17
|
Write-Host " ✗ Node.js not found on PATH." -ForegroundColor Red
|
|
26
|
-
Write-Host " Install Node.js (>= $minMajor
|
|
18
|
+
Write-Host " Install Node.js (>= $minMajor) from https://nodejs.org, then re-run." -ForegroundColor Yellow
|
|
27
19
|
exit 1
|
|
28
20
|
}
|
|
29
21
|
|
|
30
22
|
$parts = $nodeVer.Split('.')
|
|
31
23
|
$major = [int]$parts[0]
|
|
32
|
-
$
|
|
33
|
-
|
|
34
|
-
Write-Host " ✗ Node.js $nodeVer is too old (requires >= $minMajor.$minMinor)" -ForegroundColor Red
|
|
24
|
+
if ($major -lt $minMajor) {
|
|
25
|
+
Write-Host " ✗ Node.js $nodeVer is too old (pi-para requires Node >= $minMajor)" -ForegroundColor Red
|
|
35
26
|
Write-Host " Upgrade Node.js: https://nodejs.org" -ForegroundColor Yellow
|
|
36
27
|
exit 1
|
|
37
28
|
}
|
|
38
29
|
|
|
39
|
-
|
|
30
|
+
# Resolve npx.cmd explicitly. Bare `npx` resolves to npx.ps1, which fails
|
|
31
|
+
# under restricted PowerShell execution policies.
|
|
32
|
+
$npx = $null
|
|
33
|
+
$npxCmd = Get-Command npx.cmd -ErrorAction SilentlyContinue
|
|
34
|
+
if ($npxCmd) {
|
|
35
|
+
$npx = $npxCmd.Source
|
|
36
|
+
} else {
|
|
37
|
+
$nodeCmd = Get-Command node -ErrorAction SilentlyContinue
|
|
38
|
+
if ($nodeCmd) {
|
|
39
|
+
$candidate = Join-Path (Split-Path $nodeCmd.Source) "npx.cmd"
|
|
40
|
+
if (Test-Path $candidate) { $npx = $candidate }
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (-not $npx) {
|
|
44
|
+
Write-Host " ✗ npx.cmd not found." -ForegroundColor Red
|
|
45
|
+
Write-Host " Install Node.js (>= $minMajor) from https://nodejs.org, then re-run." -ForegroundColor Yellow
|
|
46
|
+
exit 1
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
Write-Host " → Using $npx (Node $nodeVer)" -ForegroundColor Gray
|
|
40
50
|
Write-Host ""
|
|
41
51
|
|
|
42
52
|
# Always pin @latest so npx does a registry lookup instead of reusing an older
|
|
43
53
|
# cached package.
|
|
44
|
-
& npx -y $packageLatest setup @args
|
|
54
|
+
& $npx -y $packageLatest setup @args
|
|
55
|
+
exit $LASTEXITCODE
|
package/scripts/install.sh
CHANGED
|
@@ -6,8 +6,9 @@ set -euo pipefail
|
|
|
6
6
|
# curl -fsSL https://raw.githubusercontent.com/picassio/pi-para/main/scripts/install.sh | bash
|
|
7
7
|
|
|
8
8
|
PACKAGE="pi-para"
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
# qmd-engine (embedded search SDK) requires Node >= 22.
|
|
10
|
+
MIN_NODE_MAJOR=22
|
|
11
|
+
MIN_NODE_MINOR=0
|
|
11
12
|
|
|
12
13
|
check_node_version() {
|
|
13
14
|
if ! command -v node >/dev/null 2>&1; then
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
import { mkdtemp, rm, access } from "node:fs/promises";
|
|
4
4
|
import { constants } from "node:fs";
|
|
5
5
|
import { tmpdir } from "node:os";
|
|
6
|
-
import { join, resolve } from "node:path";
|
|
6
|
+
import { join, resolve, dirname } from "node:path";
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
7
8
|
import { execFile } from "node:child_process";
|
|
8
9
|
import { promisify } from "node:util";
|
|
9
10
|
|
|
10
11
|
const execFileAsync = promisify(execFile);
|
|
11
|
-
const root = resolve(
|
|
12
|
+
const root = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
12
13
|
const cli = join(root, "dist", "cli.js");
|
|
13
14
|
|
|
14
15
|
async function main() {
|
|
@@ -17,7 +18,8 @@ async function main() {
|
|
|
17
18
|
});
|
|
18
19
|
|
|
19
20
|
const home = await mkdtemp(join(tmpdir(), "pi-para-smoke-"));
|
|
20
|
-
|
|
21
|
+
// os.homedir() reads HOME on POSIX and USERPROFILE on Windows — set both.
|
|
22
|
+
const env = { ...process.env, HOME: home, USERPROFILE: home };
|
|
21
23
|
|
|
22
24
|
try {
|
|
23
25
|
await run([cli, "setup", "--yes", "--local", root], env);
|
package/src/doctor.ts
CHANGED
|
@@ -101,6 +101,11 @@ async function checkSecrets(secretsPath: string): Promise<DoctorCheck> {
|
|
|
101
101
|
try {
|
|
102
102
|
const store = await readSecretStore(secretsPath);
|
|
103
103
|
if (!existsSync(secretsPath)) return { name: "secrets", status: "ok", message: "no local pi-para secrets configured" };
|
|
104
|
+
// POSIX mode bits are meaningless on Windows/NTFS — stat reports 666 and
|
|
105
|
+
// chmod is a no-op, so a permissions warning there is a false positive.
|
|
106
|
+
if (process.platform === "win32") {
|
|
107
|
+
return { name: "secrets", status: "ok", message: `${Object.keys(store.secrets).length} local secret(s) (POSIX permission check skipped on Windows)` };
|
|
108
|
+
}
|
|
104
109
|
const mode = statSync(secretsPath).mode & 0o777;
|
|
105
110
|
if (mode & 0o077) {
|
|
106
111
|
return { name: "secrets", status: "warn", message: `${secretsPath} permissions are too open (${mode.toString(8)})`, fixable: true };
|
package/dist/atomic-write.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"atomic-write.d.ts","sourceRoot":"","sources":["../src/atomic-write.ts"],"names":[],"mappings":"AAKA,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWjG"}
|
package/dist/atomic-write.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { closeSync, fsyncSync, openSync, renameSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { mkdir } from "node:fs/promises";
|
|
3
|
-
import { dirname, join } from "node:path";
|
|
4
|
-
import { randomUUID } from "node:crypto";
|
|
5
|
-
export async function atomicWriteFile(path, content, mode) {
|
|
6
|
-
await mkdir(dirname(path), { recursive: true });
|
|
7
|
-
const tempPath = join(dirname(path), `.${randomUUID()}.tmp`);
|
|
8
|
-
const fd = openSync(tempPath, "w", mode);
|
|
9
|
-
try {
|
|
10
|
-
writeFileSync(fd, content, "utf-8");
|
|
11
|
-
fsyncSync(fd);
|
|
12
|
-
}
|
|
13
|
-
finally {
|
|
14
|
-
closeSync(fd);
|
|
15
|
-
}
|
|
16
|
-
renameSync(tempPath, path);
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=atomic-write.js.map
|
package/dist/atomic-write.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"atomic-write.js","sourceRoot":"","sources":["../src/atomic-write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,OAAe,EAAE,IAAa;IAChF,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACpC,SAAS,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IACD,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/capture.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session knowledge capture — extracts insights from sessions into the wiki.
|
|
3
|
-
*
|
|
4
|
-
* Two modes:
|
|
5
|
-
* - Auto-capture on session_shutdown (standalone Agent with wiki tools)
|
|
6
|
-
* - Explicit capture via /wiki-capture command (standalone Agent)
|
|
7
|
-
*
|
|
8
|
-
* Both are fully automatic — no user confirmation prompts.
|
|
9
|
-
*/
|
|
10
|
-
import type { Model } from "@earendil-works/pi-ai";
|
|
11
|
-
import type { AgentMessage } from "@earendil-works/pi-agent-core";
|
|
12
|
-
import type { ModelRegistry } from "@earendil-works/pi-coding-agent";
|
|
13
|
-
import type { QMDStore } from "qmd-engine";
|
|
14
|
-
import type { ProjectScope } from "./scope.js";
|
|
15
|
-
import type { PageRef } from "./wiki.js";
|
|
16
|
-
import type { SessionDigest } from "./raw.js";
|
|
17
|
-
export interface CaptureResult {
|
|
18
|
-
pagesCreated: PageRef[];
|
|
19
|
-
pagesUpdated: PageRef[];
|
|
20
|
-
skipped: boolean;
|
|
21
|
-
reason?: string;
|
|
22
|
-
digestEntry?: SessionDigest;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Called automatically on session_shutdown.
|
|
26
|
-
* Spins up a standalone Agent with wiki tools, aborts after timeoutMs.
|
|
27
|
-
*/
|
|
28
|
-
export declare function autoCapture(wikiDir: string, store: QMDStore, messages: AgentMessage[], scope: ProjectScope, sessionFile: string, model: Model<any>, modelRegistry: ModelRegistry, timeoutMs?: number, alreadyCaptured?: string[]): Promise<CaptureResult>;
|
|
29
|
-
/**
|
|
30
|
-
* Called when user explicitly requests capture mid-session via /wiki-capture.
|
|
31
|
-
* Spins up a standalone Agent with wiki tools.
|
|
32
|
-
*/
|
|
33
|
-
export declare function explicitCapture(wikiDir: string, store: QMDStore, topic: string | undefined, messages: AgentMessage[], scope: ProjectScope, sessionFile: string, model: Model<any>, modelRegistry: ModelRegistry, alreadyCaptured?: string[]): Promise<CaptureResult>;
|
|
34
|
-
//# sourceMappingURL=capture.d.ts.map
|
package/dist/capture.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAC;AAGvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAO9C,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,aAAa,CAAC;CAC7B;AAqMD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,aAAa,EAAE,aAAa,EAC5B,SAAS,CAAC,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,aAAa,CAAC,CAkJxB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,aAAa,EAAE,aAAa,EAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,aAAa,CAAC,CAqHxB"}
|