@tintinweb/pi-subagents 0.4.10 → 0.4.11
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 +5 -0
- package/dist/agent-manager.d.ts +18 -4
- package/dist/agent-manager.js +111 -9
- package/dist/agent-runner.d.ts +10 -6
- package/dist/agent-runner.js +80 -26
- package/dist/agent-types.d.ts +10 -0
- package/dist/agent-types.js +23 -1
- package/dist/cross-extension-rpc.d.ts +30 -0
- package/dist/cross-extension-rpc.js +33 -0
- package/dist/custom-agents.js +36 -8
- package/dist/index.js +335 -66
- package/dist/memory.d.ts +49 -0
- package/dist/memory.js +151 -0
- package/dist/output-file.d.ts +17 -0
- package/dist/output-file.js +66 -0
- package/dist/prompts.d.ts +12 -1
- package/dist/prompts.js +15 -3
- package/dist/skill-loader.d.ts +19 -0
- package/dist/skill-loader.js +67 -0
- package/dist/types.d.ts +45 -1
- package/dist/ui/agent-widget.d.ts +21 -0
- package/dist/ui/agent-widget.js +205 -127
- package/dist/ui/conversation-viewer.d.ts +2 -2
- package/dist/ui/conversation-viewer.js +2 -2
- package/dist/ui/conversation-viewer.test.d.ts +1 -0
- package/dist/ui/conversation-viewer.test.js +254 -0
- package/dist/worktree.d.ts +36 -0
- package/dist/worktree.js +139 -0
- package/package.json +3 -1
package/dist/custom-agents.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* custom-agents.ts — Load user-defined agents from project (.pi/agents/) and global (~/.pi/agent/agents/) locations.
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import { readFileSync, readdirSync, existsSync } from "node:fs";
|
|
6
|
-
import { join, basename } from "node:path";
|
|
4
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
7
5
|
import { homedir } from "node:os";
|
|
6
|
+
import { basename, join } from "node:path";
|
|
7
|
+
import { parseFrontmatter } from "@mariozechner/pi-coding-agent";
|
|
8
8
|
import { BUILTIN_TOOL_NAMES } from "./agent-types.js";
|
|
9
9
|
/**
|
|
10
10
|
* Scan for custom agent .md files from multiple locations.
|
|
@@ -49,6 +49,7 @@ function loadFromDir(dir, agents, source) {
|
|
|
49
49
|
displayName: str(fm.display_name),
|
|
50
50
|
description: str(fm.description) ?? name,
|
|
51
51
|
builtinToolNames: csvList(fm.tools, BUILTIN_TOOL_NAMES),
|
|
52
|
+
disallowedTools: csvListOptional(fm.disallowed_tools),
|
|
52
53
|
extensions: inheritField(fm.extensions ?? fm.inherit_extensions),
|
|
53
54
|
skills: inheritField(fm.skills ?? fm.inherit_skills),
|
|
54
55
|
model: str(fm.model),
|
|
@@ -59,6 +60,8 @@ function loadFromDir(dir, agents, source) {
|
|
|
59
60
|
inheritContext: fm.inherit_context === true,
|
|
60
61
|
runInBackground: fm.run_in_background === true,
|
|
61
62
|
isolated: fm.isolated === true,
|
|
63
|
+
memory: parseMemory(fm.memory),
|
|
64
|
+
isolation: fm.isolation === "worktree" ? "worktree" : undefined,
|
|
62
65
|
enabled: fm.enabled !== false, // default true; explicitly false disables
|
|
63
66
|
source,
|
|
64
67
|
});
|
|
@@ -75,16 +78,41 @@ function positiveInt(val) {
|
|
|
75
78
|
return typeof val === "number" && val >= 1 ? val : undefined;
|
|
76
79
|
}
|
|
77
80
|
/**
|
|
78
|
-
* Parse a
|
|
81
|
+
* Parse a raw CSV field value into items, or undefined if absent/empty/"none".
|
|
82
|
+
*/
|
|
83
|
+
function parseCsvField(val) {
|
|
84
|
+
if (val === undefined || val === null)
|
|
85
|
+
return undefined;
|
|
86
|
+
const s = String(val).trim();
|
|
87
|
+
if (!s || s === "none")
|
|
88
|
+
return undefined;
|
|
89
|
+
const items = s.split(",").map(t => t.trim()).filter(Boolean);
|
|
90
|
+
return items.length > 0 ? items : undefined;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Parse a comma-separated list field with defaults.
|
|
79
94
|
* omitted → defaults; "none"/empty → []; csv → listed items.
|
|
80
95
|
*/
|
|
81
96
|
function csvList(val, defaults) {
|
|
82
97
|
if (val === undefined || val === null)
|
|
83
98
|
return defaults;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
99
|
+
return parseCsvField(val) ?? [];
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Parse an optional comma-separated list field.
|
|
103
|
+
* omitted → undefined; "none"/empty → undefined; csv → listed items.
|
|
104
|
+
*/
|
|
105
|
+
function csvListOptional(val) {
|
|
106
|
+
return parseCsvField(val);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Parse a memory scope field.
|
|
110
|
+
* omitted → undefined; "user"/"project"/"local" → MemoryScope.
|
|
111
|
+
*/
|
|
112
|
+
function parseMemory(val) {
|
|
113
|
+
if (val === "user" || val === "project" || val === "local")
|
|
114
|
+
return val;
|
|
115
|
+
return undefined;
|
|
88
116
|
}
|
|
89
117
|
/**
|
|
90
118
|
* Parse an inherit field (extensions, skills).
|