New extensions/sync/ that bidirectionally syncs ~/.pi/agent/ configs + memories with an S3 bucket so fresh OpenShell sandboxes (or new laptops) boot with existing pi state. - Allowlist: settings.json, k8s.json, websearch.json, custom-providers.json, hosts.json, local-models.json, memory/**. Excludes auth.json (provider API keys; injected per-sandbox). - Per-file last-write-wins by real mtime carried in x-amz-meta-pi-mtime; 1s clock-jitter tolerance. - Per-machine ~/.pi/agent/.sync-manifest.json records what was last seen on S3 so auto-prune can't wipe a concurrent laptop's data. - Manual /sync command opens a TUI panel; subcommands /sync pull, push, prune, status work without the panel. - session_start auto-pulls (5s soft timeout, non-blocking). - session_shutdown auto-prunes then auto-pushes (10s hard timeout). - Config via PI_AWS_* env vars only (chicken/egg: nothing to bootstrap). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
44 lines
967 B
JSON
44 lines
967 B
JSON
{
|
|
"name": "pi-customizations",
|
|
"version": "0.1.0",
|
|
"description": "Personal pi coding agent customizations: subagent + custom-providers extensions, agents, prompt templates",
|
|
"private": true,
|
|
"keywords": [
|
|
"pi-package"
|
|
],
|
|
"pi": {
|
|
"extensions": [
|
|
"./extensions"
|
|
],
|
|
"prompts": [
|
|
"./prompts"
|
|
]
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"scripts": {
|
|
"test": "vitest --run",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "3.1057.0",
|
|
"@mozilla/readability": "^0.5.0",
|
|
"linkedom": "^0.18.0",
|
|
"turndown": "^7.2.0",
|
|
"turndown-plugin-gfm": "^1.0.2"
|
|
},
|
|
"peerDependencies": {
|
|
"@earendil-works/pi-agent-core": "*",
|
|
"@earendil-works/pi-ai": "*",
|
|
"@earendil-works/pi-coding-agent": "*",
|
|
"@earendil-works/pi-tui": "*",
|
|
"typebox": "*"
|
|
},
|
|
"devDependencies": {
|
|
"@types/turndown": "^5.0.6",
|
|
"typescript": "^6.0.3",
|
|
"vitest": "^3.2.4"
|
|
}
|
|
}
|