mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-10-26 10:45:22 +00:00
- 组合包拥有、可随时重建的配置、日志与缓存统一放在 <agentDir>/my-pi/:permission-system/(policy.jsonc、hard-guards.jsonc、 logs/)、rtk-optimizer/config.json、tool-search/(config.json、 catalog-v1.json)与 system-prompt-cover.md。hashline.json、lsp.json 由外部扩展读取固定路径,是唯一例外。 - 新增 config/bundle-manifest.json 与 scripts/rebuild-bundle-config.mjs: 先校验全部来源与目标,在临时目录构建完整树,再整体删除旧 my-pi/ (符号链接只删链接)并原子替换,不备份。install.sh / update.sh 每次 运行都调用它;扩展自身不再播种或迁移配置。 - update.sh 删除 pi update 失败后的 git clean 恢复逻辑:Pi 1.3.0 会在 下一次 pi update 时依据中断标记自行恢复。同时删除 Tool Search settings.json 快照迁移与封面部署脚本。 - Tool Search 改为读取 my-pi/tool-search/config.json(源为 config/tool-search.json,须与 BUNDLE_TOOL_SEARCH_DEFAULTS 一致), 不再读写 settings.json 的 toolSearch 段,移除 bundleDefaultsVersion。 - 默认权限策略开启 debugLog。 - 旧位置的残留文件不迁移、不清理;AGENTS.md / README 同步新约束。 Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
import { join } from "node:path";
|
|
|
|
const EXTENSION_ID = "pi-permission-system";
|
|
|
|
/**
|
|
* Bundle-owned config tree under the agent directory: install.sh / update.sh
|
|
* delete and rebuild `my-pi/` wholesale on every run, so policy, hard guards,
|
|
* and logs all live beneath it. Files at the former
|
|
* `extensions/pi-permission-system/` location are ignored — never migrated.
|
|
*/
|
|
const BUNDLE_CONFIG_DIR = "my-pi";
|
|
const BUNDLE_PERMISSION_DIR = "permission-system";
|
|
|
|
export const DEBUG_LOG_FILENAME = `${EXTENSION_ID}-debug.jsonl`;
|
|
export const REVIEW_LOG_FILENAME = `${EXTENSION_ID}-permission-review.jsonl`;
|
|
|
|
export function getGlobalConfigDir(agentDir: string): string {
|
|
return join(agentDir, BUNDLE_CONFIG_DIR, BUNDLE_PERMISSION_DIR);
|
|
}
|
|
|
|
export function getGlobalConfigPath(agentDir: string): string {
|
|
return join(getGlobalConfigDir(agentDir), "policy.jsonc");
|
|
}
|
|
|
|
export function getHardGuardConfigPath(agentDir: string): string {
|
|
return join(getGlobalConfigDir(agentDir), "hard-guards.jsonc");
|
|
}
|
|
|
|
|
|
export function getGlobalLogsDir(agentDir: string): string {
|
|
return join(getGlobalConfigDir(agentDir), "logs");
|
|
}
|
|
|
|
|
|
/**
|
|
* Directory holding project-scoped custom agent definition files.
|
|
*
|
|
* `<cwd>/.pi/agents` is a Pi platform convention, also encoded by
|
|
* `@gotgenes/pi-subagents`' `loadCustomAgents` (`config/custom-agents.ts`).
|
|
* The two packages encode it independently — pi-permission-system has no
|
|
* dependency on pi-subagents (ADR-0002) — so this is this package's
|
|
* authoritative copy.
|
|
*/
|
|
export function getProjectAgentsDir(cwd: string): string {
|
|
return join(cwd, ".pi", "agents");
|
|
}
|
|
|
|
export function getLegacyGlobalPolicyPath(agentDir: string): string {
|
|
return join(agentDir, "pi-permissions.jsonc");
|
|
}
|
|
|
|
|
|
export function getLegacyExtensionConfigPath(extensionRoot: string): string {
|
|
return join(extensionRoot, "config.json");
|
|
}
|