@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,25 +1,19 @@
1
- "use strict";
2
1
  /**
3
2
  * output-file.ts — Streaming JSONL output file for agent transcripts.
4
3
  *
5
4
  * Creates a per-agent output file that streams conversation turns as JSONL,
6
5
  * matching Claude Code's task output file format.
7
6
  */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.encodeCwd = encodeCwd;
10
- exports.createOutputFilePath = createOutputFilePath;
11
- exports.writeInitialEntry = writeInitialEntry;
12
- exports.streamToOutputFile = streamToOutputFile;
13
- const node_fs_1 = require("node:fs");
14
- const node_os_1 = require("node:os");
15
- const node_path_1 = require("node:path");
7
+ import { appendFileSync, chmodSync, mkdirSync, writeFileSync } from "node:fs";
8
+ import { tmpdir } from "node:os";
9
+ import { join } from "node:path";
16
10
  /**
17
11
  * Encode a cwd path as a filesystem-safe directory name. Handles:
18
12
  * - POSIX: "/home/user/project" → "home-user-project"
19
13
  * - Windows: "C:\Users\foo\project" → "Users-foo-project"
20
14
  * - UNC: "\\\\server\\share\\project" → "server-share-project"
21
15
  */
22
- function encodeCwd(cwd) {
16
+ export function encodeCwd(cwd) {
23
17
  return cwd
24
18
  .replace(/[/\\]/g, "-") // both separators → dash
25
19
  .replace(/^[A-Za-z]:-/, "") // strip Windows drive prefix ("C:-")
@@ -27,25 +21,25 @@ function encodeCwd(cwd) {
27
21
  }
28
22
  /** Create the output file path, ensuring the directory exists.
29
23
  * Mirrors Claude Code's layout: /tmp/{prefix}-{uid}/{encoded-cwd}/{sessionId}/tasks/{agentId}.output */
30
- function createOutputFilePath(cwd, agentId, sessionId) {
24
+ export function createOutputFilePath(cwd, agentId, sessionId) {
31
25
  const encoded = encodeCwd(cwd);
32
- const root = (0, node_path_1.join)((0, node_os_1.tmpdir)(), `pi-subagents-${process.getuid?.() ?? 0}`);
33
- (0, node_fs_1.mkdirSync)(root, { recursive: true, mode: 0o700 });
26
+ const root = join(tmpdir(), `pi-subagents-${process.getuid?.() ?? 0}`);
27
+ mkdirSync(root, { recursive: true, mode: 0o700 });
34
28
  // chmod is a no-op on Windows and throws on some Windows filesystems.
35
29
  // On Unix we still want to enforce 0o700 past umask, so only swallow on Windows.
36
30
  try {
37
- (0, node_fs_1.chmodSync)(root, 0o700);
31
+ chmodSync(root, 0o700);
38
32
  }
39
33
  catch (err) {
40
34
  if (process.platform !== "win32")
41
35
  throw err;
42
36
  }
43
- const dir = (0, node_path_1.join)(root, encoded, sessionId, "tasks");
44
- (0, node_fs_1.mkdirSync)(dir, { recursive: true });
45
- return (0, node_path_1.join)(dir, `${agentId}.output`);
37
+ const dir = join(root, encoded, sessionId, "tasks");
38
+ mkdirSync(dir, { recursive: true });
39
+ return join(dir, `${agentId}.output`);
46
40
  }
47
41
  /** Write the initial user prompt entry. */
48
- function writeInitialEntry(path, agentId, prompt, cwd) {
42
+ export function writeInitialEntry(path, agentId, prompt, cwd) {
49
43
  const entry = {
50
44
  isSidechain: true,
51
45
  agentId,
@@ -54,15 +48,15 @@ function writeInitialEntry(path, agentId, prompt, cwd) {
54
48
  timestamp: new Date().toISOString(),
55
49
  cwd,
56
50
  };
57
- (0, node_fs_1.writeFileSync)(path, JSON.stringify(entry) + "\n", "utf-8");
51
+ writeFileSync(path, JSON.stringify(entry) + "\n", "utf-8");
58
52
  }
59
53
  /**
60
54
  * Subscribe to session events and flush new messages to the output file on each turn_end.
61
55
  * Returns a cleanup function that does a final flush and unsubscribes.
62
56
  */
63
- function streamToOutputFile(session, path, agentId, cwd, historyPath) {
64
- const outputPaths = historyPath && historyPath !== path ? [path, historyPath] : [path];
57
+ export function streamToOutputFile(session, path, agentId, cwd, historyPath) {
65
58
  let writtenCount = 1; // initial user prompt already written
59
+ const outputPaths = historyPath && historyPath !== path ? [path, historyPath] : [path];
66
60
  const flush = () => {
67
61
  const messages = session.messages;
68
62
  while (writtenCount < messages.length) {
@@ -77,7 +71,7 @@ function streamToOutputFile(session, path, agentId, cwd, historyPath) {
77
71
  };
78
72
  for (const outputPath of outputPaths) {
79
73
  try {
80
- (0, node_fs_1.appendFileSync)(outputPath, JSON.stringify(entry) + "\n", "utf-8");
74
+ appendFileSync(outputPath, JSON.stringify(entry) + "\n", "utf-8");
81
75
  }
82
76
  catch { /* ignore write errors */ }
83
77
  }
@@ -108,3 +102,4 @@ function streamToOutputFile(session, path, agentId, cwd, historyPath) {
108
102
  unsubscribe();
109
103
  };
110
104
  }
105
+ //# sourceMappingURL=output-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-file.js","sourceRoot":"","sources":["../src/output-file.ts"],"names":[],"mappings":"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"}
package/dist/prompts.d.ts CHANGED
@@ -30,3 +30,4 @@ export interface PromptExtras {
30
30
  * @param extras Optional extra sections to inject (memory, preloaded skills).
31
31
  */
32
32
  export declare function buildAgentPrompt(config: AgentConfig, cwd: string, env: EnvInfo, parentSystemPrompt?: string, extras?: PromptExtras): string;
33
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEvD,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,OAAO,EACZ,kBAAkB,CAAC,EAAE,MAAM,EAC3B,MAAM,CAAC,EAAE,YAAY,GACpB,MAAM,CAuDR"}
package/dist/prompts.js CHANGED
@@ -1,9 +1,6 @@
1
- "use strict";
2
1
  /**
3
2
  * prompts.ts — System prompt builder for agents.
4
3
  */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.buildAgentPrompt = buildAgentPrompt;
7
4
  /**
8
5
  * Build the system prompt for an agent from its config.
9
6
  *
@@ -21,7 +18,7 @@ exports.buildAgentPrompt = buildAgentPrompt;
21
18
  * @param parentSystemPrompt The parent agent's effective system prompt (for append mode).
22
19
  * @param extras Optional extra sections to inject (memory, preloaded skills).
23
20
  */
24
- function buildAgentPrompt(config, cwd, env, parentSystemPrompt, extras) {
21
+ export function buildAgentPrompt(config, cwd, env, parentSystemPrompt, extras) {
25
22
  const activeAgentTag = `<active_agent name="${config.name}"/>\n\n`;
26
23
  const envBlock = `# Environment
27
24
  Working directory: ${cwd}
@@ -74,3 +71,4 @@ const genericBase = `# Role
74
71
  You are a general-purpose coding agent for complex, multi-step tasks.
75
72
  You have full access to read, write, edit files, and execute commands.
76
73
  Do what has been asked; nothing more, nothing less.`;
74
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAmB,EACnB,GAAW,EACX,GAAY,EACZ,kBAA2B,EAC3B,MAAqB;IAErB,MAAM,cAAc,GAAG,uBAAuB,MAAM,CAAC,IAAI,SAAS,CAAC;IAEnE,MAAM,QAAQ,GAAG;qBACE,GAAG;EACtB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,gCAAgC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,sBAAsB;YAC3E,GAAG,CAAC,QAAQ,EAAE,CAAC;IAEzB,+BAA+B;IAC/B,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,MAAM,EAAE,WAAW,EAAE,CAAC;QACxB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvC,aAAa,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvF,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,kBAAkB,IAAI,WAAW,CAAC;QAEnD,MAAM,MAAM,GAAG;;;;;;;;;;;qBAWE,CAAC;QAElB,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE;YAC/C,CAAC,CAAC,6BAA6B,MAAM,CAAC,YAAY,yBAAyB;YAC3E,CAAC,CAAC,EAAE,CAAC;QAEP,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,0EAA0E;QAC1E,OAAO,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,QAAQ,GAAG,aAAa,GAAG,YAAY,CAAC;IACxG,CAAC;IAED,gEAAgE;IAChE,MAAM,aAAa,GAAG;;;EAGtB,QAAQ,EAAE,CAAC;IAEX,OAAO,cAAc,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;AACtF,CAAC;AAED,oFAAoF;AACpF,MAAM,WAAW,GAAG;;;oDAGgC,CAAC"}
@@ -36,3 +36,4 @@ export declare class ScheduleStore {
36
36
  /** Delete the backing file (used when no jobs remain, optional cleanup). */
37
37
  deleteFileIfEmpty(): void;
38
38
  }
39
+ //# sourceMappingURL=schedule-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-store.d.ts","sourceRoot":"","sources":["../src/schedule-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,YAAY,CAAC;AAqCvE,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAAwC;gBAExC,QAAQ,EAAE,MAAM;IAM5B,8EAA8E;IAC9E,OAAO,CAAC,SAAS;IAIjB,uEAAuE;IACvE,OAAO,CAAC,IAAI;IASZ,0DAA0D;IAC1D,OAAO,CAAC,IAAI;IAOZ,uDAAuD;IACvD,OAAO,CAAC,QAAQ;IAahB,6DAA6D;IAC7D,IAAI,IAAI,iBAAiB,EAAE;IAI3B,wCAAwC;IACxC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAOjD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI9C,GAAG,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;IAMjC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,GAAG,SAAS;IAapF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAM3B,4EAA4E;IAC5E,iBAAiB,IAAI,IAAI;CAK1B"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * schedule-store.ts — File-backed store for scheduled subagents.
4
3
  *
@@ -10,11 +9,8 @@
10
9
  * mutation acquires a PID-based exclusion lock, re-reads the latest state
11
10
  * from disk, applies the change, atomic-writes via temp+rename, releases.
12
11
  */
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.ScheduleStore = void 0;
15
- exports.resolveStorePath = resolveStorePath;
16
- const node_fs_1 = require("node:fs");
17
- const node_path_1 = require("node:path");
12
+ import { existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
13
+ import { dirname, join } from "node:path";
18
14
  const LOCK_RETRY_MS = 50;
19
15
  const LOCK_MAX_RETRIES = 100;
20
16
  function isProcessRunning(pid) {
@@ -29,15 +25,15 @@ function isProcessRunning(pid) {
29
25
  function acquireLock(lockPath) {
30
26
  for (let i = 0; i < LOCK_MAX_RETRIES; i++) {
31
27
  try {
32
- (0, node_fs_1.writeFileSync)(lockPath, `${process.pid}`, { flag: "wx" });
28
+ writeFileSync(lockPath, `${process.pid}`, { flag: "wx" });
33
29
  return;
34
30
  }
35
31
  catch (e) {
36
32
  if (e.code === "EEXIST") {
37
33
  try {
38
- const pid = parseInt((0, node_fs_1.readFileSync)(lockPath, "utf-8"), 10);
34
+ const pid = parseInt(readFileSync(lockPath, "utf-8"), 10);
39
35
  if (pid && !isProcessRunning(pid)) {
40
- (0, node_fs_1.unlinkSync)(lockPath);
36
+ unlinkSync(lockPath);
41
37
  continue;
42
38
  }
43
39
  }
@@ -53,15 +49,15 @@ function acquireLock(lockPath) {
53
49
  }
54
50
  function releaseLock(lockPath) {
55
51
  try {
56
- (0, node_fs_1.unlinkSync)(lockPath);
52
+ unlinkSync(lockPath);
57
53
  }
58
54
  catch { /* ignore */ }
59
55
  }
60
56
  /** Resolve the storage path for a session-scoped store. */
61
- function resolveStorePath(cwd, sessionId) {
62
- return (0, node_path_1.join)(cwd, ".pi", "subagent-schedules", `${sessionId}.json`);
57
+ export function resolveStorePath(cwd, sessionId) {
58
+ return join(cwd, ".pi", "subagent-schedules", `${sessionId}.json`);
63
59
  }
64
- class ScheduleStore {
60
+ export class ScheduleStore {
65
61
  filePath;
66
62
  lockPath;
67
63
  jobs = new Map();
@@ -72,14 +68,14 @@ class ScheduleStore {
72
68
  }
73
69
  /** Create the backing directory lazily — only when we're about to persist. */
74
70
  ensureDir() {
75
- (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(this.filePath), { recursive: true });
71
+ mkdirSync(dirname(this.filePath), { recursive: true });
76
72
  }
77
73
  /** Load from disk into the in-memory cache. Silent on parse errors. */
78
74
  load() {
79
- if (!(0, node_fs_1.existsSync)(this.filePath))
75
+ if (!existsSync(this.filePath))
80
76
  return;
81
77
  try {
82
- const data = JSON.parse((0, node_fs_1.readFileSync)(this.filePath, "utf-8"));
78
+ const data = JSON.parse(readFileSync(this.filePath, "utf-8"));
83
79
  this.jobs.clear();
84
80
  for (const j of data.jobs ?? [])
85
81
  this.jobs.set(j.id, j);
@@ -90,8 +86,8 @@ class ScheduleStore {
90
86
  save() {
91
87
  const data = { version: 1, jobs: [...this.jobs.values()] };
92
88
  const tmp = this.filePath + ".tmp";
93
- (0, node_fs_1.writeFileSync)(tmp, JSON.stringify(data, null, 2));
94
- (0, node_fs_1.renameSync)(tmp, this.filePath);
89
+ writeFileSync(tmp, JSON.stringify(data, null, 2));
90
+ renameSync(tmp, this.filePath);
95
91
  }
96
92
  /** Acquire lock → reload → mutate → save → release. */
97
93
  withLock(fn) {
@@ -149,12 +145,12 @@ class ScheduleStore {
149
145
  }
150
146
  /** Delete the backing file (used when no jobs remain, optional cleanup). */
151
147
  deleteFileIfEmpty() {
152
- if (this.jobs.size === 0 && (0, node_fs_1.existsSync)(this.filePath)) {
148
+ if (this.jobs.size === 0 && existsSync(this.filePath)) {
153
149
  try {
154
- (0, node_fs_1.unlinkSync)(this.filePath);
150
+ unlinkSync(this.filePath);
155
151
  }
156
152
  catch { /* ignore */ }
157
153
  }
158
154
  }
159
155
  }
160
- exports.ScheduleStore = ScheduleStore;
156
+ //# sourceMappingURL=schedule-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-store.js","sourceRoot":"","sources":["../src/schedule-store.ts"],"names":[],"mappings":"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"}
@@ -107,3 +107,4 @@ export declare class SubagentScheduler {
107
107
  /** "10s"/"5m"/"1h"/"2d" → milliseconds. */
108
108
  static parseInterval(s: string): number | null;
109
109
  }
110
+ //# sourceMappingURL=schedule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"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"}
package/dist/schedule.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * schedule.ts — `SubagentScheduler`: timer-driven dispatcher of scheduled subagents.
4
3
  *
@@ -15,12 +14,10 @@
15
14
  * - Result delivery is implicit: spawn → background completion → existing
16
15
  * `subagent-notification` followUp path. No new delivery code.
17
16
  */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.SubagentScheduler = void 0;
20
- const croner_1 = require("croner");
21
- const nanoid_1 = require("nanoid");
22
- const model_resolver_js_1 = require("./model-resolver.js");
23
- class SubagentScheduler {
17
+ import { Cron } from "croner";
18
+ import { nanoid } from "nanoid";
19
+ import { resolveModel } from "./model-resolver.js";
20
+ export class SubagentScheduler {
24
21
  jobs = new Map();
25
22
  intervals = new Map();
26
23
  store;
@@ -65,7 +62,7 @@ class SubagentScheduler {
65
62
  buildJob(input) {
66
63
  const detected = SubagentScheduler.detectSchedule(input.schedule);
67
64
  return {
68
- id: (0, nanoid_1.nanoid)(10),
65
+ id: nanoid(10),
69
66
  name: input.name,
70
67
  description: input.description,
71
68
  schedule: detected.normalized,
@@ -168,7 +165,7 @@ class SubagentScheduler {
168
165
  }
169
166
  }
170
167
  else {
171
- const cron = new croner_1.Cron(job.schedule, () => this.executeJob(job.id));
168
+ const cron = new Cron(job.schedule, () => this.executeJob(job.id));
172
169
  this.jobs.set(job.id, cron);
173
170
  }
174
171
  }
@@ -210,7 +207,7 @@ class SubagentScheduler {
210
207
  // if resolution fails; the spawn path handles undefined model gracefully.
211
208
  let resolvedModel;
212
209
  if (job.model) {
213
- const r = (0, model_resolver_js_1.resolveModel)(job.model, ctx.modelRegistry);
210
+ const r = resolveModel(job.model, ctx.modelRegistry);
214
211
  if (typeof r !== "string")
215
212
  resolvedModel = r;
216
213
  }
@@ -316,7 +313,7 @@ class SubagentScheduler {
316
313
  }
317
314
  try {
318
315
  // Croner validates by construction.
319
- new croner_1.Cron(expr, () => { });
316
+ new Cron(expr, () => { });
320
317
  return { valid: true };
321
318
  }
322
319
  catch (e) {
@@ -339,4 +336,4 @@ class SubagentScheduler {
339
336
  return parseInt(m[1], 10) * { s: 1000, m: 60_000, h: 3_600_000, d: 86_400_000 }[m[2]];
340
337
  }
341
338
  }
342
- exports.SubagentScheduler = SubagentScheduler;
339
+ //# sourceMappingURL=schedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA0BnD,MAAM,OAAO,iBAAiB;IACpB,IAAI,GAAG,IAAI,GAAG,EAAgB,CAAC;IAC/B,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC9C,KAAK,CAA4B;IACjC,EAAE,CAA2B;IAC7B,GAAG,CAA+B;IAClC,OAAO,CAA2B;IAE1C,2EAA2E;IAC3E,KAAK,CAAC,EAAgB,EAAE,GAAqB,EAAE,OAAqB,EAAE,KAAoB;QACxF,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/B,IAAI,GAAG,CAAC,OAAO;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,IAAI;QACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,qEAAqE;IACrE,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IAClC,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAkB;QACzB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClE,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,QAAQ,CAAC,UAAU;YAC7B,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,CAAC;SACZ,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,MAAM,CAAC,KAAkB;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,IAAI,mBAAmB,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,GAAG,CAAC,OAAO;YAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAClC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,uEAAuE;IACvE,SAAS,CAAC,EAAU,EAAE,KAAiC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,OAAO,CAAC,OAAO;YAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iEAAiE;IACjE,UAAU,CAAC,KAAa;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,EAAE,OAAO;YAAE,OAAO,SAAS,CAAC;QACpC,IAAI,GAAG,CAAC,YAAY,KAAK,MAAM;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC;QACrD,IAAI,GAAG,CAAC,YAAY,KAAK,UAAU,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACtD,sEAAsE;YACtE,kEAAkE;YAClE,oDAAoD;YACpD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACxE,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACvD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wEAAwE;IAEhE,WAAW,CAAC,GAAsB;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,YAAY,KAAK,UAAU,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACtD,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;gBACrE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,GAAG,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAClC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;wBACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACxB,oEAAoE;wBACpE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;wBACzC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAClC,IAAI,OAAO;4BAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC5D,CAAC,EAAE,KAAK,CAAC,CAAC;oBACV,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,mDAAmD;oBACnD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC9D,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,GAAG,CAAC,QAAQ,iBAAiB,EAAE,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,EAAU;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC;YACN,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,aAAa,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,EAAU;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO;YAAE,OAAO;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,EAAE,OAAO;YAAE,OAAO;QAE1B,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QAE5C,4EAA4E;QAC5E,4EAA4E;QAC5E,0EAA0E;QAC1E,IAAI,aAA8B,CAAC;QACnC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;YACrD,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,aAAa,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE;gBAC9D,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,GAAG,CAAC,SAAS;gBACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,aAAa,EAAE,GAAG,CAAC,QAAQ;gBAC3B,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/D,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,CAAC,MAA2B,EAAE,EAAE;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9B,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;gBACf,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACjC,UAAU,EAAE,MAAM;gBAClB,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;gBACtC,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,4EAA4E;QAC5E,6EAA6E;QAC7E,+EAA+E;QAC/E,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO;iBACX,IAAI,CAAC,GAAG,EAAE;gBACT,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACrC,MAAM,MAAM,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,IAAI,CAAC,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC;gBAC3F,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,mFAAmF;YACnF,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,KAA0B;QACrC,IAAI,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,wEAAwE;IAExE;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,CAAS;QAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,6BAA6B;QAC7B,MAAM,GAAG,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QAC3D,kBAAkB;QAClB,MAAM,GAAG,GAAG,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACpF,uEAAuE;QACvE,0EAA0E;QAC1E,2CAA2C;QAC3C,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBACvE,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACvD,CAAC;QACH,CAAC;QACD,iBAAiB;QACjB,MAAM,SAAS,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,SAAS,CAAC,KAAK;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,qBAAqB,CAAC,gHAAgH,CACvI,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,MAAM,CAAC,sBAAsB,CAAC,IAAY;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,mEAAmE,MAAM,CAAC,MAAM,gDAAgD;aACxI,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,oCAAoC;YACpC,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,CAAC,iBAAiB,CAAC,CAAS;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAA0B,CAAC,CAAC;QACnH,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,CAAC;IAED,2CAA2C;IAC3C,MAAM,CAAC,aAAa,CAAC,CAAS;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAA0B,CAAC,CAAC;IACjH,CAAC;CACF"}
@@ -139,3 +139,4 @@ export declare function saveAndEmitChanged(snapshot: SubagentsSettings, successM
139
139
  message: string;
140
140
  level: "info" | "warning";
141
141
  };
142
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
package/dist/settings.js CHANGED
@@ -1,17 +1,9 @@
1
- "use strict";
2
1
  // Persistence for pi-subagents operational settings.
3
2
  // - Global: ~/.pi/agent/subagents.json (via getAgentDir()) — manual defaults, never written here
4
3
  // - Project: <cwd>/.pi/subagents.json — written by /agents → Settings; overrides global on load
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.loadSettings = loadSettings;
7
- exports.saveSettings = saveSettings;
8
- exports.applySettings = applySettings;
9
- exports.persistToastFor = persistToastFor;
10
- exports.applyAndEmitLoaded = applyAndEmitLoaded;
11
- exports.saveAndEmitChanged = saveAndEmitChanged;
12
- const node_fs_1 = require("node:fs");
13
- const node_path_1 = require("node:path");
14
- const pi_coding_agent_1 = require("@earendil-works/pi-coding-agent");
4
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
5
+ import { dirname, join } from "node:path";
6
+ import { getAgentDir } from "@earendil-works/pi-coding-agent";
15
7
  const VALID_JOIN_MODES = new Set(["async", "group", "smart"]);
16
8
  const VALID_TOOL_DESCRIPTION_MODES = new Set(["full", "compact", "custom"]);
17
9
  const VALID_WIDGET_MODES = new Set(["all", "background", "off"]);
@@ -69,10 +61,10 @@ function sanitize(raw) {
69
61
  return out;
70
62
  }
71
63
  function globalPath() {
72
- return (0, node_path_1.join)((0, pi_coding_agent_1.getAgentDir)(), "subagents.json");
64
+ return join(getAgentDir(), "subagents.json");
73
65
  }
74
66
  function projectPath(cwd) {
75
- return (0, node_path_1.join)(cwd, ".pi", "subagents.json");
67
+ return join(cwd, ".pi", "subagents.json");
76
68
  }
77
69
  /**
78
70
  * Read a settings file. Missing file is silent (returns `{}`). A file that
@@ -80,10 +72,10 @@ function projectPath(cwd) {
80
72
  * silently reverted to defaults — and still returns `{}` so startup proceeds.
81
73
  */
82
74
  function readSettingsFile(path) {
83
- if (!(0, node_fs_1.existsSync)(path))
75
+ if (!existsSync(path))
84
76
  return {};
85
77
  try {
86
- return sanitize(JSON.parse((0, node_fs_1.readFileSync)(path, "utf-8")));
78
+ return sanitize(JSON.parse(readFileSync(path, "utf-8")));
87
79
  }
88
80
  catch (err) {
89
81
  const reason = err instanceof Error ? err.message : String(err);
@@ -92,7 +84,7 @@ function readSettingsFile(path) {
92
84
  }
93
85
  }
94
86
  /** Load merged settings: global provides defaults, project overrides. */
95
- function loadSettings(cwd = process.cwd()) {
87
+ export function loadSettings(cwd = process.cwd()) {
96
88
  return { ...readSettingsFile(globalPath()), ...readSettingsFile(projectPath(cwd)) };
97
89
  }
98
90
  /**
@@ -100,11 +92,11 @@ function loadSettings(cwd = process.cwd()) {
100
92
  * Returns `true` on success, `false` if the write (or mkdir) failed so the
101
93
  * caller can surface a warning — persistence isn't fatal but isn't silent.
102
94
  */
103
- function saveSettings(s, cwd = process.cwd()) {
95
+ export function saveSettings(s, cwd = process.cwd()) {
104
96
  const path = projectPath(cwd);
105
97
  try {
106
- (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(path), { recursive: true });
107
- (0, node_fs_1.writeFileSync)(path, JSON.stringify(s, null, 2), "utf-8");
98
+ mkdirSync(dirname(path), { recursive: true });
99
+ writeFileSync(path, JSON.stringify(s, null, 2), "utf-8");
108
100
  return true;
109
101
  }
110
102
  catch {
@@ -112,7 +104,7 @@ function saveSettings(s, cwd = process.cwd()) {
112
104
  }
113
105
  }
114
106
  /** Apply persisted settings to the in-memory state via caller-supplied setters. */
115
- function applySettings(s, appliers) {
107
+ export function applySettings(s, appliers) {
116
108
  if (typeof s.maxConcurrent === "number")
117
109
  appliers.setMaxConcurrent(s.maxConcurrent);
118
110
  if (typeof s.defaultMaxTurns === "number")
@@ -141,7 +133,7 @@ function applySettings(s, appliers) {
141
133
  * routes the success/failure of `saveSettings` into the right message + level
142
134
  * so the UI layer (index.ts) stays a thin wire between input and notification.
143
135
  */
144
- function persistToastFor(successMsg, persisted) {
136
+ export function persistToastFor(successMsg, persisted) {
145
137
  return persisted
146
138
  ? { message: successMsg, level: "info" }
147
139
  : { message: `${successMsg} (session only; failed to persist)`, level: "warning" };
@@ -151,7 +143,7 @@ function persistToastFor(successMsg, persisted) {
151
143
  * `subagents:settings_loaded` lifecycle event. Returns the loaded settings so
152
144
  * callers can log/inspect. Extension init wires this once.
153
145
  */
154
- function applyAndEmitLoaded(appliers, emit, cwd = process.cwd()) {
146
+ export function applyAndEmitLoaded(appliers, emit, cwd = process.cwd()) {
155
147
  const settings = loadSettings(cwd);
156
148
  applySettings(settings, appliers);
157
149
  emit("subagents:settings_loaded", { settings });
@@ -163,8 +155,9 @@ function applyAndEmitLoaded(appliers, emit, cwd = process.cwd()) {
163
155
  * return the toast the UI should display. Event payload carries the `persisted`
164
156
  * flag so listeners can react to write failures.
165
157
  */
166
- function saveAndEmitChanged(snapshot, successMsg, emit, cwd = process.cwd()) {
158
+ export function saveAndEmitChanged(snapshot, successMsg, emit, cwd = process.cwd()) {
167
159
  const persisted = saveSettings(snapshot, cwd);
168
160
  emit("subagents:settings_changed", { settings: snapshot, persisted });
169
161
  return persistToastFor(successMsg, persisted);
170
162
  }
163
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
@@ -22,3 +22,4 @@ export interface PreloadedSkill {
22
22
  content: string;
23
23
  }
24
24
  export declare function preloadSkills(skillNames: string[], cwd: string): PreloadedSkill[];
25
+ //# sourceMappingURL=skill-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-loader.d.ts","sourceRoot":"","sources":["../src/skill-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AASH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAEjF"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * skill-loader.ts — Preload named skills.
4
3
  *
@@ -18,26 +17,24 @@
18
17
  *
19
18
  * Symlinks are rejected for security (deviation from Pi, which follows them).
20
19
  */
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.preloadSkills = preloadSkills;
23
- const node_fs_1 = require("node:fs");
24
- const node_os_1 = require("node:os");
25
- const node_path_1 = require("node:path");
26
- const pi_coding_agent_1 = require("@earendil-works/pi-coding-agent");
27
- const memory_js_1 = require("./memory.js");
28
- function preloadSkills(skillNames, cwd) {
20
+ import { existsSync, readdirSync } from "node:fs";
21
+ import { homedir } from "node:os";
22
+ import { join } from "node:path";
23
+ import { getAgentDir } from "@earendil-works/pi-coding-agent";
24
+ import { isSymlink, isUnsafeName, safeReadFile } from "./memory.js";
25
+ export function preloadSkills(skillNames, cwd) {
29
26
  return skillNames.map((name) => ({ name, content: loadSkillContent(name, cwd) }));
30
27
  }
31
28
  function loadSkillContent(name, cwd) {
32
- if ((0, memory_js_1.isUnsafeName)(name)) {
29
+ if (isUnsafeName(name)) {
33
30
  return `(Skill "${name}" skipped: name contains path traversal characters)`;
34
31
  }
35
32
  const roots = [
36
- (0, node_path_1.join)(cwd, ".pi", "skills"), // project — Pi standard
37
- (0, node_path_1.join)(cwd, ".agents", "skills"), // project — Agent Skills spec
38
- (0, node_path_1.join)((0, pi_coding_agent_1.getAgentDir)(), "skills"), // user — Pi standard
39
- (0, node_path_1.join)((0, node_os_1.homedir)(), ".agents", "skills"), // user — Agent Skills spec
40
- (0, node_path_1.join)((0, node_os_1.homedir)(), ".pi", "skills"), // legacy global, pre-Pi
33
+ join(cwd, ".pi", "skills"), // project — Pi standard
34
+ join(cwd, ".agents", "skills"), // project — Agent Skills spec
35
+ join(getAgentDir(), "skills"), // user — Pi standard
36
+ join(homedir(), ".agents", "skills"), // user — Agent Skills spec
37
+ join(homedir(), ".pi", "skills"), // legacy global, pre-Pi
41
38
  ];
42
39
  for (const root of roots) {
43
40
  const content = findInRoot(root, name);
@@ -47,16 +44,16 @@ function loadSkillContent(name, cwd) {
47
44
  return `(Skill "${name}" not found in .pi/skills/, .agents/skills/, or global skill locations)`;
48
45
  }
49
46
  function findInRoot(root, name) {
50
- if ((0, memory_js_1.isSymlink)(root))
47
+ if (isSymlink(root))
51
48
  return undefined; // reject symlinked roots entirely
52
- const flat = (0, memory_js_1.safeReadFile)((0, node_path_1.join)(root, `${name}.md`))?.trim();
49
+ const flat = safeReadFile(join(root, `${name}.md`))?.trim();
53
50
  if (flat !== undefined)
54
51
  return flat;
55
52
  return findSkillDirectory(root, name);
56
53
  }
57
54
  /** BFS under `root` for a directory named `name` containing `SKILL.md`. Pi-conforming filters. */
58
55
  function findSkillDirectory(root, name) {
59
- if (!(0, node_fs_1.existsSync)(root))
56
+ if (!existsSync(root))
60
57
  return undefined;
61
58
  const queue = [root];
62
59
  while (queue.length > 0) {
@@ -65,7 +62,7 @@ function findSkillDirectory(root, name) {
65
62
  continue;
66
63
  let entries;
67
64
  try {
68
- entries = (0, node_fs_1.readdirSync)(current, { withFileTypes: true });
65
+ entries = readdirSync(current, { withFileTypes: true });
69
66
  }
70
67
  catch {
71
68
  continue;
@@ -78,12 +75,12 @@ function findSkillDirectory(root, name) {
78
75
  if (entry.name.startsWith(".") || entry.name === "node_modules")
79
76
  continue;
80
77
  // Symlinked dirs already filtered by entry.isDirectory() — Dirent uses lstat semantics.
81
- const path = (0, node_path_1.join)(current, entry.name);
82
- const skillMd = (0, node_path_1.join)(path, "SKILL.md");
83
- const isSkillDir = (0, node_fs_1.existsSync)(skillMd);
78
+ const path = join(current, entry.name);
79
+ const skillMd = join(path, "SKILL.md");
80
+ const isSkillDir = existsSync(skillMd);
84
81
  if (isSkillDir) {
85
82
  if (entry.name === name) {
86
- const content = (0, memory_js_1.safeReadFile)(skillMd)?.trim();
83
+ const content = safeReadFile(skillMd)?.trim();
87
84
  if (content !== undefined)
88
85
  return content;
89
86
  }
@@ -94,3 +91,4 @@ function findSkillDirectory(root, name) {
94
91
  }
95
92
  return undefined;
96
93
  }
94
+ //# sourceMappingURL=skill-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-loader.js","sourceRoot":"","sources":["../src/skill-loader.ts"],"names":[],"mappings":"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"}
@@ -11,3 +11,4 @@
11
11
  * from a budget cutoff.
12
12
  */
13
13
  export declare function getStatusNote(status: string): string;
14
+ //# sourceMappingURL=status-note.d.ts.map