@esso0428/pi-subagents 0.15.5 → 0.15.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.
Files changed (234) hide show
  1. package/CHANGELOG.md +10 -19
  2. package/README.md +5 -5
  3. package/dist/agent-history-list.d.ts +19 -0
  4. package/dist/agent-history-list.d.ts.map +1 -0
  5. package/dist/agent-history-list.js +69 -0
  6. package/dist/agent-history-list.js.map +1 -0
  7. package/dist/agent-history.d.ts +2 -1
  8. package/dist/agent-history.d.ts.map +1 -0
  9. package/dist/agent-history.js +32 -34
  10. package/dist/agent-history.js.map +1 -0
  11. package/dist/agent-manager.d.ts +24 -8
  12. package/dist/agent-manager.d.ts.map +1 -0
  13. package/dist/agent-manager.js +171 -93
  14. package/dist/agent-manager.js.map +1 -0
  15. package/dist/agent-runner.d.ts +1 -0
  16. package/dist/agent-runner.d.ts.map +1 -0
  17. package/dist/agent-runner.js +75 -86
  18. package/dist/agent-runner.js.map +1 -0
  19. package/dist/agent-types.d.ts +1 -0
  20. package/dist/agent-types.d.ts.map +1 -0
  21. package/dist/agent-types.js +28 -45
  22. package/dist/agent-types.js.map +1 -0
  23. package/dist/context.d.ts +1 -0
  24. package/dist/context.d.ts.map +1 -0
  25. package/dist/context.js +3 -6
  26. package/dist/context.js.map +1 -0
  27. package/dist/cross-extension-rpc.d.ts +1 -0
  28. package/dist/cross-extension-rpc.d.ts.map +1 -0
  29. package/dist/cross-extension-rpc.js +6 -9
  30. package/dist/cross-extension-rpc.js.map +1 -0
  31. package/dist/custom-agents.d.ts +1 -0
  32. package/dist/custom-agents.d.ts.map +1 -0
  33. package/dist/custom-agents.js +16 -18
  34. package/dist/custom-agents.js.map +1 -0
  35. package/dist/default-agents.d.ts +1 -0
  36. package/dist/default-agents.d.ts.map +1 -0
  37. package/dist/default-agents.js +2 -4
  38. package/dist/default-agents.js.map +1 -0
  39. package/dist/enabled-models.d.ts +1 -0
  40. package/dist/enabled-models.d.ts.map +1 -0
  41. package/dist/enabled-models.js +12 -16
  42. package/dist/enabled-models.js.map +1 -0
  43. package/dist/env.d.ts +1 -0
  44. package/dist/env.d.ts.map +1 -0
  45. package/dist/env.js +2 -4
  46. package/dist/env.js.map +1 -0
  47. package/dist/group-join.d.ts +1 -0
  48. package/dist/group-join.d.ts.map +1 -0
  49. package/dist/group-join.js +2 -5
  50. package/dist/group-join.js.map +1 -0
  51. package/dist/index.d.ts +1 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +306 -292
  54. package/dist/index.js.map +1 -0
  55. package/dist/invocation-config.d.ts +1 -0
  56. package/dist/invocation-config.d.ts.map +1 -0
  57. package/dist/invocation-config.js +3 -6
  58. package/dist/invocation-config.js.map +1 -0
  59. package/dist/memory.d.ts +1 -0
  60. package/dist/memory.d.ts.map +1 -0
  61. package/dist/memory.js +25 -34
  62. package/dist/memory.js.map +1 -0
  63. package/dist/model-resolver.d.ts +1 -0
  64. package/dist/model-resolver.d.ts.map +1 -0
  65. package/dist/model-resolver.js +2 -4
  66. package/dist/model-resolver.js.map +1 -0
  67. package/dist/nico-overrides.d.ts +1 -0
  68. package/dist/nico-overrides.d.ts.map +1 -0
  69. package/dist/nico-overrides.js +15 -20
  70. package/dist/nico-overrides.js.map +1 -0
  71. package/dist/output-file.d.ts +1 -0
  72. package/dist/output-file.d.ts.map +1 -0
  73. package/dist/output-file.js +17 -22
  74. package/dist/output-file.js.map +1 -0
  75. package/dist/prompts.d.ts +1 -0
  76. package/dist/prompts.d.ts.map +1 -0
  77. package/dist/prompts.js +2 -4
  78. package/dist/prompts.js.map +1 -0
  79. package/dist/schedule-store.d.ts +1 -0
  80. package/dist/schedule-store.d.ts.map +1 -0
  81. package/dist/schedule-store.js +17 -21
  82. package/dist/schedule-store.js.map +1 -0
  83. package/dist/schedule.d.ts +1 -0
  84. package/dist/schedule.d.ts.map +1 -0
  85. package/dist/schedule.js +9 -12
  86. package/dist/schedule.js.map +1 -0
  87. package/dist/settings.d.ts +1 -0
  88. package/dist/settings.d.ts.map +1 -0
  89. package/dist/settings.js +16 -23
  90. package/dist/settings.js.map +1 -0
  91. package/dist/skill-loader.d.ts +1 -0
  92. package/dist/skill-loader.d.ts.map +1 -0
  93. package/dist/skill-loader.js +21 -23
  94. package/dist/skill-loader.js.map +1 -0
  95. package/dist/status-note.d.ts +1 -0
  96. package/dist/status-note.d.ts.map +1 -0
  97. package/dist/status-note.js +2 -4
  98. package/dist/status-note.js.map +1 -0
  99. package/dist/types.d.ts +5 -1
  100. package/dist/types.d.ts.map +1 -0
  101. package/dist/types.js +2 -4
  102. package/dist/types.js.map +1 -0
  103. package/dist/ui/agent-widget.d.ts +2 -5
  104. package/dist/ui/agent-widget.d.ts.map +1 -0
  105. package/dist/ui/agent-widget.js +29 -51
  106. package/dist/ui/agent-widget.js.map +1 -0
  107. package/dist/ui/ccstyle/diff/ansi-utils.d.ts +11 -0
  108. package/dist/ui/ccstyle/diff/ansi-utils.d.ts.map +1 -0
  109. package/dist/ui/ccstyle/diff/ansi-utils.js +145 -0
  110. package/dist/ui/ccstyle/diff/ansi-utils.js.map +1 -0
  111. package/dist/ui/ccstyle/diff/diff-presentation.d.ts +12 -0
  112. package/dist/ui/ccstyle/diff/diff-presentation.d.ts.map +1 -0
  113. package/dist/ui/ccstyle/diff/diff-presentation.js +49 -0
  114. package/dist/ui/ccstyle/diff/diff-presentation.js.map +1 -0
  115. package/dist/ui/ccstyle/diff/diff-renderer.d.ts +46 -0
  116. package/dist/ui/ccstyle/diff/diff-renderer.d.ts.map +1 -0
  117. package/dist/ui/ccstyle/diff/diff-renderer.js +2044 -0
  118. package/dist/ui/ccstyle/diff/diff-renderer.js.map +1 -0
  119. package/dist/ui/ccstyle/diff/line-width-safety.d.ts +12 -0
  120. package/dist/ui/ccstyle/diff/line-width-safety.d.ts.map +1 -0
  121. package/dist/ui/ccstyle/diff/line-width-safety.js +59 -0
  122. package/dist/ui/ccstyle/diff/line-width-safety.js.map +1 -0
  123. package/dist/ui/ccstyle/diff/render-utils.d.ts +6 -0
  124. package/dist/ui/ccstyle/diff/render-utils.d.ts.map +1 -0
  125. package/dist/ui/ccstyle/diff/render-utils.js +25 -0
  126. package/dist/ui/ccstyle/diff/render-utils.js.map +1 -0
  127. package/dist/ui/ccstyle/diff/types.d.ts +22 -0
  128. package/dist/ui/ccstyle/diff/types.d.ts.map +1 -0
  129. package/dist/ui/ccstyle/diff/types.js +10 -0
  130. package/dist/ui/ccstyle/diff/types.js.map +1 -0
  131. package/dist/ui/ccstyle/diff/write-display-utils.d.ts +2 -0
  132. package/dist/ui/ccstyle/diff/write-display-utils.d.ts.map +1 -0
  133. package/dist/ui/ccstyle/diff/write-display-utils.js +12 -0
  134. package/dist/ui/ccstyle/diff/write-display-utils.js.map +1 -0
  135. package/dist/ui/ccstyle/tool-renderer.d.ts +17 -0
  136. package/dist/ui/ccstyle/tool-renderer.d.ts.map +1 -0
  137. package/dist/ui/ccstyle/tool-renderer.js +58 -0
  138. package/dist/ui/ccstyle/tool-renderer.js.map +1 -0
  139. package/dist/ui/ccstyle/tool-result.d.ts +24 -0
  140. package/dist/ui/ccstyle/tool-result.d.ts.map +1 -0
  141. package/dist/ui/ccstyle/tool-result.js +193 -0
  142. package/dist/ui/ccstyle/tool-result.js.map +1 -0
  143. package/dist/ui/conversation-blocks.d.ts +46 -0
  144. package/dist/ui/conversation-blocks.d.ts.map +1 -0
  145. package/dist/ui/conversation-blocks.js +306 -0
  146. package/dist/ui/conversation-blocks.js.map +1 -0
  147. package/dist/ui/conversation-nvim.d.ts +8 -0
  148. package/dist/ui/conversation-nvim.d.ts.map +1 -0
  149. package/dist/ui/conversation-nvim.js +117 -0
  150. package/dist/ui/conversation-nvim.js.map +1 -0
  151. package/dist/ui/conversation-role.d.ts +13 -0
  152. package/dist/ui/conversation-role.d.ts.map +1 -0
  153. package/dist/ui/conversation-role.js +39 -0
  154. package/dist/ui/conversation-role.js.map +1 -0
  155. package/dist/ui/conversation-search.d.ts +39 -0
  156. package/dist/ui/conversation-search.d.ts.map +1 -0
  157. package/dist/ui/conversation-search.js +124 -0
  158. package/dist/ui/conversation-search.js.map +1 -0
  159. package/dist/ui/conversation-timeline.d.ts +62 -0
  160. package/dist/ui/conversation-timeline.d.ts.map +1 -0
  161. package/dist/ui/conversation-timeline.js +263 -0
  162. package/dist/ui/conversation-timeline.js.map +1 -0
  163. package/dist/ui/conversation-viewer.d.ts +62 -20
  164. package/dist/ui/conversation-viewer.d.ts.map +1 -0
  165. package/dist/ui/conversation-viewer.js +449 -224
  166. package/dist/ui/conversation-viewer.js.map +1 -0
  167. package/dist/ui/fleet-list.d.ts +24 -11
  168. package/dist/ui/fleet-list.d.ts.map +1 -0
  169. package/dist/ui/fleet-list.js +86 -78
  170. package/dist/ui/fleet-list.js.map +1 -0
  171. package/dist/ui/schedule-menu.d.ts +1 -0
  172. package/dist/ui/schedule-menu.d.ts.map +1 -0
  173. package/dist/ui/schedule-menu.js +2 -4
  174. package/dist/ui/schedule-menu.js.map +1 -0
  175. package/dist/ui/viewer-keys.d.ts +1 -0
  176. package/dist/ui/viewer-keys.d.ts.map +1 -0
  177. package/dist/ui/viewer-keys.js +8 -10
  178. package/dist/ui/viewer-keys.js.map +1 -0
  179. package/dist/usage.d.ts +1 -0
  180. package/dist/usage.d.ts.map +1 -0
  181. package/dist/usage.js +5 -10
  182. package/dist/usage.js.map +1 -0
  183. package/dist/worktree.d.ts +1 -0
  184. package/dist/worktree.d.ts.map +1 -0
  185. package/dist/worktree.js +27 -31
  186. package/dist/worktree.js.map +1 -0
  187. package/dist/write-execution.d.ts +42 -0
  188. package/dist/write-execution.d.ts.map +1 -0
  189. package/dist/write-execution.js +138 -0
  190. package/dist/write-execution.js.map +1 -0
  191. package/package.json +1 -1
  192. package/src/agent-history-list.ts +91 -0
  193. package/src/agent-history.ts +12 -17
  194. package/src/agent-manager.ts +169 -81
  195. package/src/agent-runner.ts +12 -13
  196. package/src/index.ts +117 -98
  197. package/src/output-file.ts +1 -1
  198. package/src/types.ts +4 -1
  199. package/src/ui/agent-widget.ts +3 -9
  200. package/src/ui/ccstyle/ATTRIBUTION.md +37 -0
  201. package/src/ui/ccstyle/diff/ansi-utils.ts +168 -0
  202. package/src/ui/ccstyle/diff/diff-presentation.ts +70 -0
  203. package/src/ui/ccstyle/diff/diff-renderer.ts +3148 -0
  204. package/src/ui/ccstyle/diff/line-width-safety.ts +92 -0
  205. package/src/ui/ccstyle/diff/render-utils.ts +32 -0
  206. package/src/ui/ccstyle/diff/types.ts +33 -0
  207. package/src/ui/ccstyle/diff/write-display-utils.ts +12 -0
  208. package/src/ui/ccstyle/tool-renderer.ts +71 -0
  209. package/src/ui/ccstyle/tool-result.ts +238 -0
  210. package/src/ui/conversation-blocks.ts +404 -0
  211. package/src/ui/conversation-nvim.ts +127 -0
  212. package/src/ui/conversation-role.ts +45 -0
  213. package/src/ui/conversation-search.ts +161 -0
  214. package/src/ui/conversation-timeline.ts +315 -0
  215. package/src/ui/conversation-viewer.ts +418 -210
  216. package/src/ui/fleet-list.ts +73 -52
  217. package/src/write-execution.ts +180 -0
  218. package/test/agent-history-list.test.ts +121 -0
  219. package/test/agent-manager-history.test.ts +59 -58
  220. package/test/agent-menu-history-navigation.test.ts +86 -0
  221. package/test/output-file-history.test.ts +50 -0
  222. package/test/ui/conversation-blocks.test.ts +103 -0
  223. package/test/ui/conversation-diff.test.ts +91 -0
  224. package/test/ui/conversation-search.test.ts +55 -0
  225. package/test/ui/conversation-viewer.test.ts +182 -0
  226. package/test/ui/fleet-list.test.ts +131 -0
  227. package/test/write-execution.test.ts +83 -0
  228. package/tsconfig.json +16 -0
  229. package/vitest.temp.config.mts +6 -0
  230. package/dist/ui/markdown-result.d.ts +0 -3
  231. package/dist/ui/markdown-result.js +0 -53
  232. package/src/ui/markdown-result.ts +0 -56
  233. package/test/agent-history.test.ts +0 -63
  234. package/test/ui/markdown-result.test.ts +0 -45
@@ -1,30 +1,12 @@
1
- "use strict";
2
1
  /**
3
2
  * agent-types.ts — Unified agent type registry.
4
3
  *
5
4
  * Merges embedded default agents with user-defined agents from .pi/agents/*.md, .agents/agents/*.md, and global agents.
6
5
  * User agents override defaults with the same name. Disabled agents are kept but excluded from spawning.
7
6
  */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.BUILTIN_TOOL_NAMES = void 0;
10
- exports.isDefaultsDisabled = isDefaultsDisabled;
11
- exports.setDefaultsDisabled = setDefaultsDisabled;
12
- exports.registerAgents = registerAgents;
13
- exports.applyNicoOverrides = applyNicoOverrides;
14
- exports.resolveType = resolveType;
15
- exports.getAgentConfig = getAgentConfig;
16
- exports.getAvailableTypes = getAvailableTypes;
17
- exports.getAllTypes = getAllTypes;
18
- exports.getDefaultAgentNames = getDefaultAgentNames;
19
- exports.getUserAgentNames = getUserAgentNames;
20
- exports.isValidType = isValidType;
21
- exports.getMemoryToolNames = getMemoryToolNames;
22
- exports.getReadOnlyMemoryToolNames = getReadOnlyMemoryToolNames;
23
- exports.getToolNamesForType = getToolNamesForType;
24
- exports.getConfig = getConfig;
25
- const pi_coding_agent_1 = require("@earendil-works/pi-coding-agent");
26
- const default_agents_js_1 = require("./default-agents.js");
27
- const nico_overrides_js_1 = require("./nico-overrides.js");
7
+ import { createCodingTools, createReadOnlyTools } from "@earendil-works/pi-coding-agent";
8
+ import { DEFAULT_AGENTS } from "./default-agents.js";
9
+ import { applyNicoOverridesToMap, readNicoAgentOverrides } from "./nico-overrides.js";
28
10
  /**
29
11
  * All known built-in tool names, derived from pi's own tool factories rather
30
12
  * than hardcoded so the set tracks pi-mono if it adds/renames a built-in.
@@ -33,27 +15,27 @@ const nico_overrides_js_1 = require("./nico-overrides.js");
33
15
  * (read, bash, edit, write, grep, find, ls). The `cwd` only binds tool
34
16
  * operations we never invoke here — we read each tool's `.name` and discard it.
35
17
  */
36
- exports.BUILTIN_TOOL_NAMES = [
37
- ...new Set([...(0, pi_coding_agent_1.createCodingTools)("."), ...(0, pi_coding_agent_1.createReadOnlyTools)(".")].map((t) => t.name)),
18
+ export const BUILTIN_TOOL_NAMES = [
19
+ ...new Set([...createCodingTools("."), ...createReadOnlyTools(".")].map((t) => t.name)),
38
20
  ];
39
21
  /** Unified runtime registry of all agents (defaults + user-defined). */
40
22
  const agents = new Map();
41
23
  /** When true, DEFAULT_AGENTS are skipped during registration. */
42
24
  let disableDefaults = false;
43
25
  /** Check whether default agents are disabled. */
44
- function isDefaultsDisabled() { return disableDefaults; }
26
+ export function isDefaultsDisabled() { return disableDefaults; }
45
27
  /** Set whether default agents are disabled. */
46
- function setDefaultsDisabled(b) { disableDefaults = b; }
28
+ export function setDefaultsDisabled(b) { disableDefaults = b; }
47
29
  /**
48
30
  * Register agents into the unified registry.
49
31
  * Starts with DEFAULT_AGENTS, then overlays user agents (overrides defaults with same name).
50
32
  * Disabled agents (enabled === false) are kept in the registry but excluded from spawning.
51
33
  */
52
- function registerAgents(userAgents) {
34
+ export function registerAgents(userAgents) {
53
35
  agents.clear();
54
36
  // Start with defaults (unless disabled via settings)
55
37
  if (!disableDefaults) {
56
- for (const [name, config] of default_agents_js_1.DEFAULT_AGENTS) {
38
+ for (const [name, config] of DEFAULT_AGENTS) {
57
39
  agents.set(name, config);
58
40
  }
59
41
  }
@@ -68,9 +50,9 @@ function registerAgents(userAgents) {
68
50
  * them as the highest-priority layer. Auto-registers agents that don't
69
51
  * exist in the registry yet.
70
52
  */
71
- function applyNicoOverrides() {
72
- const { overrides, defaultModel } = (0, nico_overrides_js_1.readNicoAgentOverrides)(process.cwd());
73
- (0, nico_overrides_js_1.applyNicoOverridesToMap)(agents, overrides, defaultModel);
53
+ export function applyNicoOverrides() {
54
+ const { overrides, defaultModel } = readNicoAgentOverrides(process.cwd());
55
+ applyNicoOverridesToMap(agents, overrides, defaultModel);
74
56
  }
75
57
  /** Case-insensitive key resolution. */
76
58
  function resolveKey(name) {
@@ -84,38 +66,38 @@ function resolveKey(name) {
84
66
  return undefined;
85
67
  }
86
68
  /** Resolve a type name case-insensitively. Returns the canonical key or undefined. */
87
- function resolveType(name) {
69
+ export function resolveType(name) {
88
70
  return resolveKey(name);
89
71
  }
90
72
  /** Get the agent config for a type (case-insensitive). */
91
- function getAgentConfig(name) {
73
+ export function getAgentConfig(name) {
92
74
  const key = resolveKey(name);
93
75
  return key ? agents.get(key) : undefined;
94
76
  }
95
77
  /** Get all enabled type names (for spawning and tool descriptions). */
96
- function getAvailableTypes() {
78
+ export function getAvailableTypes() {
97
79
  return [...agents.entries()]
98
80
  .filter(([_, config]) => config.enabled !== false)
99
81
  .map(([name]) => name);
100
82
  }
101
83
  /** Get all type names including disabled (for UI listing). */
102
- function getAllTypes() {
84
+ export function getAllTypes() {
103
85
  return [...agents.keys()];
104
86
  }
105
87
  /** Get names of default agents currently in the registry. */
106
- function getDefaultAgentNames() {
88
+ export function getDefaultAgentNames() {
107
89
  return [...agents.entries()]
108
90
  .filter(([_, config]) => config.isDefault === true)
109
91
  .map(([name]) => name);
110
92
  }
111
93
  /** Get names of user-defined agents (non-defaults) currently in the registry. */
112
- function getUserAgentNames() {
94
+ export function getUserAgentNames() {
113
95
  return [...agents.entries()]
114
96
  .filter(([_, config]) => config.isDefault !== true)
115
97
  .map(([name]) => name);
116
98
  }
117
99
  /** Check if a type is valid and enabled (case-insensitive). */
118
- function isValidType(type) {
100
+ export function isValidType(type) {
119
101
  const key = resolveKey(type);
120
102
  if (!key)
121
103
  return false;
@@ -126,7 +108,7 @@ const MEMORY_TOOL_NAMES = ["read", "write", "edit"];
126
108
  /**
127
109
  * Get memory tool names (read/write/edit) not already in the provided set.
128
110
  */
129
- function getMemoryToolNames(existingToolNames) {
111
+ export function getMemoryToolNames(existingToolNames) {
130
112
  return MEMORY_TOOL_NAMES.filter(n => !existingToolNames.has(n));
131
113
  }
132
114
  /** Tool names needed for read-only memory access. */
@@ -134,27 +116,27 @@ const READONLY_MEMORY_TOOL_NAMES = ["read"];
134
116
  /**
135
117
  * Get read-only memory tool names not already in the provided set.
136
118
  */
137
- function getReadOnlyMemoryToolNames(existingToolNames) {
119
+ export function getReadOnlyMemoryToolNames(existingToolNames) {
138
120
  return READONLY_MEMORY_TOOL_NAMES.filter(n => !existingToolNames.has(n));
139
121
  }
140
122
  /** Get built-in tool names for a type (case-insensitive). */
141
- function getToolNamesForType(type) {
123
+ export function getToolNamesForType(type) {
142
124
  const key = resolveKey(type);
143
125
  const raw = key ? agents.get(key) : undefined;
144
126
  const config = raw?.enabled !== false ? raw : undefined;
145
127
  // `undefined` (definition omitted the field) → all built-ins; an explicit `[]`
146
128
  // (`tools: none` or a `tools:` with only `ext:` entries) → zero built-ins.
147
- return config?.builtinToolNames ?? [...exports.BUILTIN_TOOL_NAMES];
129
+ return config?.builtinToolNames ?? [...BUILTIN_TOOL_NAMES];
148
130
  }
149
131
  /** Get config for a type (case-insensitive, returns a SubagentTypeConfig-compatible object). Falls back to general-purpose. */
150
- function getConfig(type) {
132
+ export function getConfig(type) {
151
133
  const key = resolveKey(type);
152
134
  const config = key ? agents.get(key) : undefined;
153
135
  if (config && config.enabled !== false) {
154
136
  return {
155
137
  displayName: config.displayName ?? config.name,
156
138
  description: config.description,
157
- builtinToolNames: config.builtinToolNames ?? exports.BUILTIN_TOOL_NAMES,
139
+ builtinToolNames: config.builtinToolNames ?? BUILTIN_TOOL_NAMES,
158
140
  extensions: config.extensions,
159
141
  excludeExtensions: config.excludeExtensions,
160
142
  skills: config.skills,
@@ -167,7 +149,7 @@ function getConfig(type) {
167
149
  return {
168
150
  displayName: gp.displayName ?? gp.name,
169
151
  description: gp.description,
170
- builtinToolNames: gp.builtinToolNames ?? exports.BUILTIN_TOOL_NAMES,
152
+ builtinToolNames: gp.builtinToolNames ?? BUILTIN_TOOL_NAMES,
171
153
  extensions: gp.extensions,
172
154
  excludeExtensions: gp.excludeExtensions,
173
155
  skills: gp.skills,
@@ -178,9 +160,10 @@ function getConfig(type) {
178
160
  return {
179
161
  displayName: "Agent",
180
162
  description: "General-purpose agent for complex, multi-step tasks",
181
- builtinToolNames: exports.BUILTIN_TOOL_NAMES,
163
+ builtinToolNames: BUILTIN_TOOL_NAMES,
182
164
  extensions: true,
183
165
  skills: true,
184
166
  promptMode: "append",
185
167
  };
186
168
  }
169
+ //# sourceMappingURL=agent-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-types.js","sourceRoot":"","sources":["../src/agent-types.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -10,3 +10,4 @@ export declare function extractText(content: unknown[]): string;
10
10
  * into what has been discussed/done so far.
11
11
  */
12
12
  export declare function buildParentContext(ctx: ExtensionContext): string;
13
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAKtD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAsChE"}
package/dist/context.js CHANGED
@@ -1,12 +1,8 @@
1
- "use strict";
2
1
  /**
3
2
  * context.ts — Extract parent conversation context for subagent inheritance.
4
3
  */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.extractText = extractText;
7
- exports.buildParentContext = buildParentContext;
8
4
  /** Extract text from a message content block array. */
9
- function extractText(content) {
5
+ export function extractText(content) {
10
6
  return content
11
7
  .filter((c) => c.type === "text")
12
8
  .map((c) => c.text ?? "")
@@ -17,7 +13,7 @@ function extractText(content) {
17
13
  * Used when inherit_context is true to give the subagent visibility
18
14
  * into what has been discussed/done so far.
19
15
  */
20
- function buildParentContext(ctx) {
16
+ export function buildParentContext(ctx) {
21
17
  const entries = ctx.sessionManager.getBranch();
22
18
  if (!entries || entries.length === 0)
23
19
  return "";
@@ -58,3 +54,4 @@ ${parts.join("\n\n")}
58
54
  # Your Task (below)
59
55
  `;
60
56
  }
57
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,uDAAuD;AACvD,MAAM,UAAU,WAAW,CAAC,OAAkB;IAC5C,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SACrC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAqB;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;IAC/C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;oBAC1C,CAAC,CAAC,GAAG,CAAC,OAAO;oBACb,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC7B,IAAI,IAAI,CAAC,IAAI,EAAE;oBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,IAAI,CAAC,IAAI,EAAE;oBAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,qDAAqD;QACvD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACvC,2DAA2D;YAC3D,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,OAAO;;;;EAIP,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;;;;CAInB,CAAC;AACF,CAAC"}
@@ -44,3 +44,4 @@ export interface RpcHandle {
44
44
  * Returns unsub functions for cleanup.
45
45
  */
46
46
  export declare function registerRpcHandlers(deps: RpcDeps): RpcHandle;
47
+ //# sourceMappingURL=cross-extension-rpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-extension-rpc.d.ts","sourceRoot":"","sources":["../src/cross-extension-rpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAChE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1C;AAED,gEAAgE;AAChE,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,IAAI,IACzB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAA;CAAE,GAC3B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC;IACrF,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,QAAQ,CAAC;IACjB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AA0BD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CA+C5D"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * Cross-extension RPC handlers for the subagents extension.
4
3
  *
@@ -9,12 +8,9 @@
9
8
  * success → { success: true, data?: T }
10
9
  * error → { success: false, error: string }
11
10
  */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.PROTOCOL_VERSION = void 0;
14
- exports.registerRpcHandlers = registerRpcHandlers;
15
- const model_resolver_js_1 = require("./model-resolver.js");
11
+ import { resolveModel } from "./model-resolver.js";
16
12
  /** RPC protocol version — bumped when the envelope or method contracts change. */
17
- exports.PROTOCOL_VERSION = 2;
13
+ export const PROTOCOL_VERSION = 2;
18
14
  /**
19
15
  * Wire a single RPC handler: listen on `channel`, run `fn(params)`,
20
16
  * emit the reply envelope on `channel:reply:${requestId}`.
@@ -40,10 +36,10 @@ function handleRpc(events, channel, fn) {
40
36
  * Register ping, spawn, and stop RPC handlers on the event bus.
41
37
  * Returns unsub functions for cleanup.
42
38
  */
43
- function registerRpcHandlers(deps) {
39
+ export function registerRpcHandlers(deps) {
44
40
  const { events, pi, getCtx, manager } = deps;
45
41
  const unsubPing = handleRpc(events, "subagents:rpc:ping", () => {
46
- return { version: exports.PROTOCOL_VERSION };
42
+ return { version: PROTOCOL_VERSION };
47
43
  });
48
44
  const unsubSpawn = handleRpc(events, "subagents:rpc:spawn", ({ type, prompt, options }) => {
49
45
  const ctx = getCtx();
@@ -61,7 +57,7 @@ function registerRpcHandlers(deps) {
61
57
  if (!registry) {
62
58
  throw new Error(`Model override "${normalizedOptions.model}" provided but ctx.modelRegistry is unavailable`);
63
59
  }
64
- const resolved = (0, model_resolver_js_1.resolveModel)(normalizedOptions.model, registry);
60
+ const resolved = resolveModel(normalizedOptions.model, registry);
65
61
  if (typeof resolved === "string") {
66
62
  // resolveModel returns a human-readable error string when the
67
63
  // input doesn't match any available model. Surface it instead of
@@ -78,3 +74,4 @@ function registerRpcHandlers(deps) {
78
74
  });
79
75
  return { unsubPing, unsubSpawn, unsubStop };
80
76
  }
77
+ //# sourceMappingURL=cross-extension-rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-extension-rpc.js","sourceRoot":"","sources":["../src/cross-extension-rpc.ts"],"names":[],"mappings":"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"}
@@ -15,3 +15,4 @@ import type { AgentConfig } from "./types.js";
15
15
  * Any name is allowed — names matching defaults (e.g. "Explore") override them.
16
16
  */
17
17
  export declare function loadCustomAgents(cwd: string): Map<string, AgentConfig>;
18
+ //# sourceMappingURL=custom-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-agents.d.ts","sourceRoot":"","sources":["../src/custom-agents.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,WAAW,EAA8B,MAAM,YAAY,CAAC;AAE1E;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAUtE"}
@@ -1,13 +1,10 @@
1
- "use strict";
2
1
  /**
3
2
  * custom-agents.ts — Load user-defined agents from project (.pi/agents/, plus the shared .agents/agents/ workspace) and global ($PI_CODING_AGENT_DIR/agents/, default ~/.pi/agent/agents/) locations.
4
3
  */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.loadCustomAgents = loadCustomAgents;
7
- const node_fs_1 = require("node:fs");
8
- const node_path_1 = require("node:path");
9
- const pi_coding_agent_1 = require("@earendil-works/pi-coding-agent");
10
- const agent_types_js_1 = require("./agent-types.js");
4
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
5
+ import { basename, join } from "node:path";
6
+ import { getAgentDir, parseFrontmatter } from "@earendil-works/pi-coding-agent";
7
+ import { BUILTIN_TOOL_NAMES } from "./agent-types.js";
11
8
  /**
12
9
  * Scan for custom agent .md files from multiple locations.
13
10
  * Discovery hierarchy (higher priority wins):
@@ -20,10 +17,10 @@ const agent_types_js_1 = require("./agent-types.js");
20
17
  * authority; .agents/agents is an additional read location.
21
18
  * Any name is allowed — names matching defaults (e.g. "Explore") override them.
22
19
  */
23
- function loadCustomAgents(cwd) {
24
- const globalDir = (0, node_path_1.join)((0, pi_coding_agent_1.getAgentDir)(), "agents");
25
- const workspaceProjectDir = (0, node_path_1.join)(cwd, ".agents", "agents");
26
- const projectDir = (0, node_path_1.join)(cwd, ".pi", "agents");
20
+ export function loadCustomAgents(cwd) {
21
+ const globalDir = join(getAgentDir(), "agents");
22
+ const workspaceProjectDir = join(cwd, ".agents", "agents");
23
+ const projectDir = join(cwd, ".pi", "agents");
27
24
  const agents = new Map();
28
25
  loadFromDir(globalDir, agents, "global"); // lowest priority
29
26
  loadFromDir(workspaceProjectDir, agents, "project"); // shared workspace
@@ -32,25 +29,25 @@ function loadCustomAgents(cwd) {
32
29
  }
33
30
  /** Load agent configs from a directory into the map. */
34
31
  function loadFromDir(dir, agents, source) {
35
- if (!(0, node_fs_1.existsSync)(dir))
32
+ if (!existsSync(dir))
36
33
  return;
37
34
  let files;
38
35
  try {
39
- files = (0, node_fs_1.readdirSync)(dir).filter(f => f.endsWith(".md"));
36
+ files = readdirSync(dir).filter(f => f.endsWith(".md"));
40
37
  }
41
38
  catch {
42
39
  return;
43
40
  }
44
41
  for (const file of files) {
45
- const name = (0, node_path_1.basename)(file, ".md");
42
+ const name = basename(file, ".md");
46
43
  let content;
47
44
  try {
48
- content = (0, node_fs_1.readFileSync)((0, node_path_1.join)(dir, file), "utf-8");
45
+ content = readFileSync(join(dir, file), "utf-8");
49
46
  }
50
47
  catch {
51
48
  continue;
52
49
  }
53
- const { frontmatter: fm, body } = (0, pi_coding_agent_1.parseFrontmatter)(content);
50
+ const { frontmatter: fm, body } = parseFrontmatter(content);
54
51
  const { builtinToolNames, extSelectors } = parseToolsField(fm.tools);
55
52
  agents.set(name, {
56
53
  name,
@@ -119,13 +116,13 @@ function csvList(val, defaults) {
119
116
  * `tools:` present with only `ext:` entries → zero built-ins (use `*`).
120
117
  */
121
118
  function parseToolsField(val) {
122
- const entries = csvList(val, agent_types_js_1.BUILTIN_TOOL_NAMES);
119
+ const entries = csvList(val, BUILTIN_TOOL_NAMES);
123
120
  const isWildcard = (e) => e === "*" || e.toLowerCase() === "all";
124
121
  const hasWildcard = entries.some(isWildcard);
125
122
  const plain = entries.filter(e => !isWildcard(e) && !e.startsWith("ext:"));
126
123
  const extEntries = entries.filter(e => e.startsWith("ext:"));
127
124
  return {
128
- builtinToolNames: hasWildcard ? [...new Set([...agent_types_js_1.BUILTIN_TOOL_NAMES, ...plain])] : plain,
125
+ builtinToolNames: hasWildcard ? [...new Set([...BUILTIN_TOOL_NAMES, ...plain])] : plain,
129
126
  extSelectors: extEntries.length > 0 ? extEntries : undefined,
130
127
  };
131
128
  }
@@ -157,3 +154,4 @@ function inheritField(val) {
157
154
  const items = csvList(val, []);
158
155
  return items.length > 0 ? items : false;
159
156
  }
157
+ //# sourceMappingURL=custom-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-agents.js","sourceRoot":"","sources":["../src/custom-agents.ts"],"names":[],"mappings":"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"}
@@ -5,3 +5,4 @@
5
5
  */
6
6
  import type { AgentConfig } from "./types.js";
7
7
  export declare const DEFAULT_AGENTS: Map<string, AgentConfig>;
8
+ //# sourceMappingURL=default-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-agents.d.ts","sourceRoot":"","sources":["../src/default-agents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAmHlD,CAAC"}
@@ -1,13 +1,10 @@
1
- "use strict";
2
1
  /**
3
2
  * default-agents.ts — Embedded default agent configurations.
4
3
  *
5
4
  * These are always available but can be overridden by user .md files with the same name.
6
5
  */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.DEFAULT_AGENTS = void 0;
9
6
  const READ_ONLY_TOOLS = ["read", "bash", "grep", "find", "ls"];
10
- exports.DEFAULT_AGENTS = new Map([
7
+ export const DEFAULT_AGENTS = new Map([
11
8
  [
12
9
  "general-purpose",
13
10
  {
@@ -123,3 +120,4 @@ List 3-5 files most critical for implementing this plan:
123
120
  },
124
121
  ],
125
122
  ]);
123
+ //# sourceMappingURL=default-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-agents.js","sourceRoot":"","sources":["../src/default-agents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,cAAc,GAA6B,IAAI,GAAG,CAAC;IAC9D;QACE,iBAAiB;QACjB;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,yRAAyR;YACtS,mFAAmF;YACnF,kGAAkG;YAClG,+GAA+G;YAC/G,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,SAAS;QACT;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,2mBAA2mB;YACxnB,gBAAgB,EAAE,eAAe;YACjC,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,IAAI;YACZ,2EAA2E;YAC3E,4EAA4E;YAC5E,wEAAwE;YACxE,KAAK,EAAE,4BAA4B;YACnC,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA2BM;YACpB,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,MAAM;QACN;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,oOAAoO;YACjP,gBAAgB,EAAE,eAAe;YACjC,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAuCyB;YACvC,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,IAAI;SAChB;KACF;CACF,CAAC,CAAC"}
@@ -47,3 +47,4 @@ export declare function isModelInScope(model: {
47
47
  provider: string;
48
48
  id: string;
49
49
  }, allowed: Set<string>): boolean;
50
+ //# sourceMappingURL=enabled-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enabled-models.d.ts","sourceRoot":"","sources":["../src/enabled-models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,IAAI,OAAO,EAAE,CAAC;IACpB,YAAY,CAAC,IAAI,OAAO,EAAE,CAAC;CAC5B;AAsBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAGnE;AAgCD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9B,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,GAAE,MAAsB,GAC1B,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAgCzB;AAID;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EACvC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GACnB,OAAO,CAET"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * Reads `enabledModels` from pi's settings (global `<agentDir>/settings.json`
4
3
  * + project-local `<cwd>/.pi/settings.json`, project wins) and resolves
@@ -26,26 +25,22 @@
26
25
  * enabledModels = ["anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-6"]
27
26
  * → resolves to { "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-6" }
28
27
  */
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.readEnabledModels = readEnabledModels;
31
- exports.resolveEnabledModels = resolveEnabledModels;
32
- exports.isModelInScope = isModelInScope;
33
- const node_fs_1 = require("node:fs");
34
- const node_path_1 = require("node:path");
35
- const pi_coding_agent_1 = require("@earendil-works/pi-coding-agent");
28
+ import { existsSync, readFileSync, statSync } from "node:fs";
29
+ import { join } from "node:path";
30
+ import { getAgentDir } from "@earendil-works/pi-coding-agent";
36
31
  /** Paths to pi's settings.json files: [project, global] (project takes precedence). */
37
32
  function settingsPaths(cwd) {
38
33
  return [
39
- (0, node_path_1.join)(cwd, ".pi", "settings.json"),
40
- (0, node_path_1.join)((0, pi_coding_agent_1.getAgentDir)(), "settings.json"),
34
+ join(cwd, ".pi", "settings.json"),
35
+ join(getAgentDir(), "settings.json"),
41
36
  ];
42
37
  }
43
38
  /** Read `enabledModels` from a single settings.json file. Undefined when missing or absent. */
44
39
  function readField(path) {
45
- if (!(0, node_fs_1.existsSync)(path))
40
+ if (!existsSync(path))
46
41
  return undefined;
47
42
  try {
48
- const raw = JSON.parse((0, node_fs_1.readFileSync)(path, "utf-8"));
43
+ const raw = JSON.parse(readFileSync(path, "utf-8"));
49
44
  if (Array.isArray(raw?.enabledModels))
50
45
  return raw.enabledModels;
51
46
  }
@@ -60,7 +55,7 @@ function readField(path) {
60
55
  * (and matches our own loadSettings precedence in src/settings.ts).
61
56
  * Returns undefined when neither file has the field.
62
57
  */
63
- function readEnabledModels(cwd) {
58
+ export function readEnabledModels(cwd) {
64
59
  const [project, global] = settingsPaths(cwd);
65
60
  return readField(project) ?? readField(global);
66
61
  }
@@ -85,14 +80,14 @@ let cachedPatternsKey = "";
85
80
  /** mtime+size hash of one file, or "missing" if absent. */
86
81
  function hashOf(path) {
87
82
  try {
88
- const s = (0, node_fs_1.statSync)(path);
83
+ const s = statSync(path);
89
84
  return `${s.mtimeMs}-${s.size}`;
90
85
  }
91
86
  catch {
92
87
  return "missing";
93
88
  }
94
89
  }
95
- function resolveEnabledModels(patterns, registry, cwd = process.cwd()) {
90
+ export function resolveEnabledModels(patterns, registry, cwd = process.cwd()) {
96
91
  // Fast path: check cache (stat both project and global settings.json files)
97
92
  const patternsKey = JSON.stringify(patterns);
98
93
  const [project, global] = settingsPaths(cwd);
@@ -126,7 +121,7 @@ function resolveEnabledModels(patterns, registry, cwd = process.cwd()) {
126
121
  * (`provider/id` lowercase) so callers don't have to reproduce it —
127
122
  * both set-building (resolveExact) and lookup go through `modelKey`.
128
123
  */
129
- function isModelInScope(model, allowed) {
124
+ export function isModelInScope(model, allowed) {
130
125
  return allowed.has(modelKey(model));
131
126
  }
132
127
  /** Canonical lowercase `provider/id` key for the allowed set. */
@@ -148,3 +143,4 @@ function resolveExact(pattern, available, allowed) {
148
143
  allowed.add(modelKey(exact));
149
144
  }
150
145
  }
146
+ //# sourceMappingURL=enabled-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enabled-models.js","sourceRoot":"","sources":["../src/enabled-models.ts"],"names":[],"mappings":"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"}
package/dist/env.d.ts CHANGED
@@ -4,3 +4,4 @@
4
4
  import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
5
5
  import type { EnvInfo } from "./types.js";
6
6
  export declare function detectEnv(pi: ExtensionAPI, cwd: string): Promise<EnvInfo>;
7
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,wBAAsB,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyB/E"}
package/dist/env.js CHANGED
@@ -1,10 +1,7 @@
1
- "use strict";
2
1
  /**
3
2
  * env.ts — Detect environment info (git, platform) for subagent system prompts.
4
3
  */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.detectEnv = detectEnv;
7
- async function detectEnv(pi, cwd) {
4
+ export async function detectEnv(pi, cwd) {
8
5
  let isGitRepo = false;
9
6
  let branch = "";
10
7
  try {
@@ -29,3 +26,4 @@ async function detectEnv(pi, cwd) {
29
26
  platform: process.platform,
30
27
  };
31
28
  }
29
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAAgB,EAAE,GAAW;IAC3D,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpG,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;IACxC,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1F,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS;QACT,MAAM;QACN,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;AACJ,CAAC"}
@@ -30,3 +30,4 @@ export declare class GroupJoinManager {
30
30
  isGrouped(agentId: string): boolean;
31
31
  dispose(): void;
32
32
  }
33
+ //# sourceMappingURL=group-join.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-join.d.ts","sourceRoot":"","sources":["../src/group-join.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAiBlF,qBAAa,gBAAgB;IAKzB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,YAAY;IALtB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,YAAY,CAA6B;gBAGvC,SAAS,EAAE,gBAAgB,EAC3B,YAAY,SAAkB;IAGxC,2DAA2D;IAC3D,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAcxD;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM;IA0BnE,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,YAAY;IASpB,uCAAuC;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAInC,OAAO,IAAI,IAAI;CAOhB"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * group-join.ts — Manages grouped background agent completion notifications.
4
3
  *
@@ -6,13 +5,11 @@
6
5
  * agents in a group are held until all complete (or a timeout fires),
7
6
  * then a single consolidated notification is sent.
8
7
  */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.GroupJoinManager = void 0;
11
8
  /** Default timeout: 30s after first completion in a group. */
12
9
  const DEFAULT_TIMEOUT = 30_000;
13
10
  /** Straggler re-batch timeout: 15s. */
14
11
  const STRAGGLER_TIMEOUT = 15_000;
15
- class GroupJoinManager {
12
+ export class GroupJoinManager {
16
13
  deliverCb;
17
14
  groupTimeout;
18
15
  groups = new Map();
@@ -117,4 +114,4 @@ class GroupJoinManager {
117
114
  this.agentToGroup.clear();
118
115
  }
119
116
  }
120
- exports.GroupJoinManager = GroupJoinManager;
117
+ //# sourceMappingURL=group-join.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-join.js","sourceRoot":"","sources":["../src/group-join.ts"],"names":[],"mappings":"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"}