privateer-agent 0.12.5 → 0.12.7
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/LICENSE +21 -0
- package/README.md +44 -2
- package/bin/privateer-acp.mjs +2 -2
- package/bin/privateer-harbor.mjs +2 -2
- package/bin/privateer-launch.mjs +2 -2
- package/bin/privateer.mjs +9 -2
- package/extensions/privateer-brand.ts +79 -6
- package/extensions/privateer-connect.ts +22 -2
- package/extensions/privateer-hints.ts +20 -0
- package/extensions/privateer-spawn-skills.ts +39 -0
- package/extensions/privateer-speak.ts +15 -0
- package/package.json +2 -2
- package/patches/@earendil-works+pi-coding-agent+0.80.3.patch +68 -0
- package/src/acp/run.ts +1 -1
- package/src/channels/run.ts +1 -1
- package/src/cli/chat.ts +23 -8
- package/src/config/spawns.ts +187 -0
- package/src/ext/permissionGate.ts +8 -1
- package/src/harbor/ipc.ts +27 -1
- package/src/mcp/catalog.ts +67 -8
- package/src/permissions/modeGate.ts +26 -7
- package/src/providers/account.ts +5 -4
- package/src/providers/defaultModel.ts +36 -15
- package/src/providers/modelCatalog.ts +115 -0
- package/src/remote/skillsControl.ts +17 -0
|
@@ -79,6 +79,17 @@ export function makeSkillsControl(opts: {
|
|
|
79
79
|
cwd: string;
|
|
80
80
|
agentDir: string;
|
|
81
81
|
settingsManager: SettingsManager;
|
|
82
|
+
/**
|
|
83
|
+
* Extra skill directories to load beyond settings' own `skillPaths`.
|
|
84
|
+
*
|
|
85
|
+
* The desktop passes this folder's per-spawn skills dir (config/spawns.ts). Pi
|
|
86
|
+
* discovers project skills only under `<cwd>/.privateer/skills`, which would mean
|
|
87
|
+
* writing into the user's tree to give a folder its own skills — so they live
|
|
88
|
+
* under the global dir with the folder's other defaults and arrive here instead.
|
|
89
|
+
* Read-only from this control's point of view: `editable` still means "under
|
|
90
|
+
* <agentDir>/skills", so create/delete keep targeting the one dir they always did.
|
|
91
|
+
*/
|
|
92
|
+
extraSkillPaths?: string[];
|
|
82
93
|
}): SkillsControl {
|
|
83
94
|
// The user's own global skills live here; only these are editable.
|
|
84
95
|
const userSkillsDir = path.join(opts.agentDir, "skills");
|
|
@@ -99,6 +110,12 @@ export function makeSkillsControl(opts: {
|
|
|
99
110
|
} catch {
|
|
100
111
|
skillPaths = [];
|
|
101
112
|
}
|
|
113
|
+
// Appended, not prepended: a path the user configured in settings outranks a
|
|
114
|
+
// per-spawn one on a name clash, the same way an explicit setting outranks a
|
|
115
|
+
// default everywhere else. De-duplicated so a dir named in both is loaded once.
|
|
116
|
+
for (const extra of opts.extraSkillPaths ?? []) {
|
|
117
|
+
if (extra && !skillPaths.includes(extra)) skillPaths.push(extra);
|
|
118
|
+
}
|
|
102
119
|
let result;
|
|
103
120
|
try {
|
|
104
121
|
result = loadSkills({ cwd: opts.cwd, agentDir: opts.agentDir, skillPaths, includeDefaults: true });
|