psadk 1.4.8 → 1.5.1

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 (211) hide show
  1. package/build/main/index.d.ts +1 -0
  2. package/build/main/lib/PSAI.js +1 -2
  3. package/build/main/lib/PSAgent.d.ts +46 -44
  4. package/build/main/lib/PSAgent.js +176 -961
  5. package/build/main/lib/PSAgentConfig.d.ts +110 -26
  6. package/build/main/lib/PSAgentLogger.js +1 -2
  7. package/build/main/lib/PSAgentTool.d.ts +8 -3
  8. package/build/main/lib/PSAgentTool.js +3 -3
  9. package/build/main/lib/agent-core/{agent-loop.d.ts → src/agent-loop.d.ts} +1 -1
  10. package/build/main/lib/agent-core/src/agent-loop.js +514 -0
  11. package/build/{module/lib/agent-core → main/lib/agent-core/src}/agent.d.ts +2 -2
  12. package/build/main/lib/agent-core/src/agent.js +419 -0
  13. package/build/main/lib/agent-core/{harness → src/harness}/agent-harness.d.ts +36 -26
  14. package/build/main/lib/agent-core/src/harness/agent-harness.js +1028 -0
  15. package/build/main/lib/agent-core/src/harness/compaction/branch-summarization.d.ts +52 -0
  16. package/build/main/lib/agent-core/src/harness/compaction/branch-summarization.js +182 -0
  17. package/build/main/lib/agent-core/src/harness/compaction/compaction.d.ts +94 -0
  18. package/build/main/lib/agent-core/src/harness/compaction/compaction.js +550 -0
  19. package/build/main/lib/agent-core/src/harness/compaction/utils.d.ts +24 -0
  20. package/build/main/lib/agent-core/src/harness/compaction/utils.js +131 -0
  21. package/build/main/lib/agent-core/src/harness/env/nodejs.d.ts +50 -0
  22. package/build/main/lib/agent-core/src/harness/env/nodejs.js +494 -0
  23. package/build/main/lib/agent-core/{harness → src/harness}/messages.d.ts +2 -2
  24. package/build/{module/lib/agent-core → main/lib/agent-core/src}/harness/messages.js +1 -1
  25. package/build/main/lib/agent-core/{harness → src/harness}/prompt-templates.d.ts +4 -1
  26. package/build/main/lib/agent-core/src/harness/prompt-templates.js +235 -0
  27. package/build/{module/lib/agent-core/harness/session/repo/jsonl.d.ts → main/lib/agent-core/src/harness/session/jsonl-repo.d.ts} +7 -1
  28. package/build/main/lib/agent-core/src/harness/session/jsonl-repo.js +106 -0
  29. package/build/{module/lib/agent-core/harness/session/storage/jsonl.d.ts → main/lib/agent-core/src/harness/session/jsonl-storage.d.ts} +7 -4
  30. package/build/main/lib/agent-core/src/harness/session/jsonl-storage.js +234 -0
  31. package/build/main/lib/agent-core/{harness/session/repo/memory.d.ts → src/harness/session/memory-repo.d.ts} +1 -1
  32. package/build/main/lib/agent-core/src/harness/session/memory-repo.js +45 -0
  33. package/build/main/lib/agent-core/{harness/session/storage/memory.d.ts → src/harness/session/memory-storage.d.ts} +4 -5
  34. package/build/main/lib/agent-core/src/harness/session/memory-storage.js +116 -0
  35. package/build/main/lib/agent-core/{harness/session/repo/shared.d.ts → src/harness/session/repo-utils.d.ts} +3 -2
  36. package/build/main/lib/agent-core/src/harness/session/repo-utils.js +39 -0
  37. package/build/{module/lib/agent-core → main/lib/agent-core/src}/harness/session/session.d.ts +3 -2
  38. package/build/main/lib/agent-core/src/harness/session/session.js +213 -0
  39. package/build/main/lib/agent-core/src/harness/session/uuid.d.ts +1 -0
  40. package/build/main/lib/agent-core/src/harness/session/uuid.js +54 -0
  41. package/build/main/lib/agent-core/{harness → src/harness}/skills.d.ts +4 -1
  42. package/build/main/lib/agent-core/src/harness/skills.js +353 -0
  43. package/build/main/lib/agent-core/{harness → src/harness}/system-prompt.d.ts +1 -1
  44. package/build/main/lib/agent-core/src/harness/system-prompt.js +30 -0
  45. package/build/{module/lib/agent-core → main/lib/agent-core/src}/harness/types.d.ts +160 -70
  46. package/build/main/lib/agent-core/src/harness/types.js +94 -0
  47. package/build/main/lib/agent-core/{harness → src/harness}/utils/shell-output.d.ts +2 -2
  48. package/build/main/lib/agent-core/src/harness/utils/shell-output.js +134 -0
  49. package/build/main/lib/agent-core/src/harness/utils/truncate.js +294 -0
  50. package/build/main/lib/agent-core/src/index.d.ts +19 -0
  51. package/build/main/lib/agent-core/src/index.js +25 -0
  52. package/build/main/lib/agent-core/src/node.d.ts +2 -0
  53. package/build/main/lib/agent-core/src/node.js +3 -0
  54. package/build/main/lib/agent-core/{proxy.js → src/proxy.js} +3 -2
  55. package/build/{module/lib/agent-core → main/lib/agent-core/src}/types.d.ts +13 -1
  56. package/build/{module/lib/agent-core → main/lib/agent-core/src}/types.js +1 -1
  57. package/build/main/lib/localAgent.d.ts +35 -0
  58. package/build/main/lib/localAgent.js +329 -0
  59. package/build/main/lib/remoteAgent.d.ts +25 -0
  60. package/build/main/lib/remoteAgent.js +311 -0
  61. package/build/main/lib/skills/skillParser.d.ts +13 -3
  62. package/build/main/lib/skills/skillParser.js +61 -12
  63. package/build/main/lib/skills/utils.js +18 -10
  64. package/build/main/lib/tools/BraveWebSearchTool.js +1 -2
  65. package/build/main/lib/tools/PSArtifactTool.js +1 -2
  66. package/build/main/lib/tools/PSClarifyTool.js +1 -2
  67. package/build/main/lib/tools/PSCommandLineTool.js +1 -2
  68. package/build/main/lib/tools/PSMemoryTool.js +1 -2
  69. package/build/main/lib/tools/PSReadFileTool.js +1 -2
  70. package/build/main/lib/tools/PSRetrievalTool.js +1 -2
  71. package/build/main/lib/tools/PSSkillTool.js +1 -2
  72. package/build/main/lib/tools/PSSubAgentTool.js +1 -1
  73. package/build/main/lib/tools/PSWriteFileTool.js +1 -2
  74. package/build/main/lib/tools/TodoTool.js +1 -2
  75. package/build/main/lib/utils/debuglogger.js +1 -2
  76. package/build/main/lib/utils/helpers.js +1 -6
  77. package/build/module/index.d.ts +1 -0
  78. package/build/module/lib/PSAI.js +1 -2
  79. package/build/module/lib/PSAgent.d.ts +46 -44
  80. package/build/module/lib/PSAgent.js +176 -961
  81. package/build/module/lib/PSAgentConfig.d.ts +110 -26
  82. package/build/module/lib/PSAgentLogger.js +1 -2
  83. package/build/module/lib/PSAgentTool.d.ts +8 -3
  84. package/build/module/lib/PSAgentTool.js +3 -3
  85. package/build/module/lib/agent-core/{agent-loop.d.ts → src/agent-loop.d.ts} +1 -1
  86. package/build/module/lib/agent-core/src/agent-loop.js +514 -0
  87. package/build/{main/lib/agent-core → module/lib/agent-core/src}/agent.d.ts +2 -2
  88. package/build/module/lib/agent-core/src/agent.js +419 -0
  89. package/build/module/lib/agent-core/{harness → src/harness}/agent-harness.d.ts +36 -26
  90. package/build/module/lib/agent-core/src/harness/agent-harness.js +1028 -0
  91. package/build/module/lib/agent-core/src/harness/compaction/branch-summarization.d.ts +52 -0
  92. package/build/module/lib/agent-core/src/harness/compaction/branch-summarization.js +182 -0
  93. package/build/module/lib/agent-core/src/harness/compaction/compaction.d.ts +94 -0
  94. package/build/module/lib/agent-core/src/harness/compaction/compaction.js +550 -0
  95. package/build/module/lib/agent-core/src/harness/compaction/utils.d.ts +24 -0
  96. package/build/module/lib/agent-core/src/harness/compaction/utils.js +131 -0
  97. package/build/module/lib/agent-core/src/harness/env/nodejs.d.ts +50 -0
  98. package/build/module/lib/agent-core/src/harness/env/nodejs.js +494 -0
  99. package/build/module/lib/agent-core/{harness → src/harness}/messages.d.ts +2 -2
  100. package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/messages.js +1 -1
  101. package/build/module/lib/agent-core/{harness → src/harness}/prompt-templates.d.ts +4 -1
  102. package/build/module/lib/agent-core/src/harness/prompt-templates.js +235 -0
  103. package/build/{main/lib/agent-core/harness/session/repo/jsonl.d.ts → module/lib/agent-core/src/harness/session/jsonl-repo.d.ts} +7 -1
  104. package/build/module/lib/agent-core/src/harness/session/jsonl-repo.js +106 -0
  105. package/build/{main/lib/agent-core/harness/session/storage/jsonl.d.ts → module/lib/agent-core/src/harness/session/jsonl-storage.d.ts} +7 -4
  106. package/build/module/lib/agent-core/src/harness/session/jsonl-storage.js +234 -0
  107. package/build/module/lib/agent-core/{harness/session/repo/memory.d.ts → src/harness/session/memory-repo.d.ts} +1 -1
  108. package/build/module/lib/agent-core/src/harness/session/memory-repo.js +45 -0
  109. package/build/module/lib/agent-core/{harness/session/storage/memory.d.ts → src/harness/session/memory-storage.d.ts} +4 -5
  110. package/build/module/lib/agent-core/src/harness/session/memory-storage.js +116 -0
  111. package/build/module/lib/agent-core/{harness/session/repo/shared.d.ts → src/harness/session/repo-utils.d.ts} +3 -2
  112. package/build/module/lib/agent-core/src/harness/session/repo-utils.js +39 -0
  113. package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/session/session.d.ts +3 -2
  114. package/build/module/lib/agent-core/src/harness/session/session.js +213 -0
  115. package/build/module/lib/agent-core/src/harness/session/uuid.d.ts +1 -0
  116. package/build/module/lib/agent-core/src/harness/session/uuid.js +54 -0
  117. package/build/module/lib/agent-core/{harness → src/harness}/skills.d.ts +4 -1
  118. package/build/module/lib/agent-core/src/harness/skills.js +353 -0
  119. package/build/module/lib/agent-core/{harness → src/harness}/system-prompt.d.ts +1 -1
  120. package/build/module/lib/agent-core/src/harness/system-prompt.js +30 -0
  121. package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/types.d.ts +160 -70
  122. package/build/module/lib/agent-core/src/harness/types.js +94 -0
  123. package/build/module/lib/agent-core/{harness → src/harness}/utils/shell-output.d.ts +2 -2
  124. package/build/module/lib/agent-core/src/harness/utils/shell-output.js +134 -0
  125. package/build/module/lib/agent-core/src/harness/utils/truncate.js +294 -0
  126. package/build/module/lib/agent-core/src/index.d.ts +19 -0
  127. package/build/module/lib/agent-core/src/index.js +25 -0
  128. package/build/module/lib/agent-core/src/node.d.ts +2 -0
  129. package/build/module/lib/agent-core/src/node.js +3 -0
  130. package/build/module/lib/agent-core/{proxy.js → src/proxy.js} +3 -2
  131. package/build/{main/lib/agent-core → module/lib/agent-core/src}/types.d.ts +13 -1
  132. package/build/{main/lib/agent-core → module/lib/agent-core/src}/types.js +1 -1
  133. package/build/module/lib/localAgent.d.ts +35 -0
  134. package/build/module/lib/localAgent.js +329 -0
  135. package/build/module/lib/remoteAgent.d.ts +25 -0
  136. package/build/module/lib/remoteAgent.js +311 -0
  137. package/build/module/lib/skills/skillParser.d.ts +13 -3
  138. package/build/module/lib/skills/skillParser.js +61 -12
  139. package/build/module/lib/skills/utils.js +18 -10
  140. package/build/module/lib/tools/BraveWebSearchTool.js +1 -2
  141. package/build/module/lib/tools/PSArtifactTool.js +1 -2
  142. package/build/module/lib/tools/PSClarifyTool.js +1 -2
  143. package/build/module/lib/tools/PSCommandLineTool.js +1 -2
  144. package/build/module/lib/tools/PSMemoryTool.js +1 -2
  145. package/build/module/lib/tools/PSReadFileTool.js +1 -2
  146. package/build/module/lib/tools/PSRetrievalTool.js +1 -2
  147. package/build/module/lib/tools/PSSkillTool.js +1 -2
  148. package/build/module/lib/tools/PSSubAgentTool.js +1 -1
  149. package/build/module/lib/tools/PSWriteFileTool.js +1 -2
  150. package/build/module/lib/tools/TodoTool.js +1 -2
  151. package/build/module/lib/utils/debuglogger.js +1 -2
  152. package/build/module/lib/utils/helpers.js +1 -6
  153. package/package.json +2 -1
  154. package/build/main/lib/agent-core/agent-loop.js +0 -483
  155. package/build/main/lib/agent-core/agent.js +0 -419
  156. package/build/main/lib/agent-core/harness/agent-harness.js +0 -772
  157. package/build/main/lib/agent-core/harness/compaction/branch-summarization.d.ts +0 -87
  158. package/build/main/lib/agent-core/harness/compaction/branch-summarization.js +0 -246
  159. package/build/main/lib/agent-core/harness/compaction/compaction.d.ts +0 -121
  160. package/build/main/lib/agent-core/harness/compaction/compaction.js +0 -637
  161. package/build/main/lib/agent-core/harness/compaction/utils.d.ts +0 -37
  162. package/build/main/lib/agent-core/harness/compaction/utils.js +0 -153
  163. package/build/main/lib/agent-core/harness/env/nodejs.d.ts +0 -43
  164. package/build/main/lib/agent-core/harness/env/nodejs.js +0 -353
  165. package/build/main/lib/agent-core/harness/execution-env.d.ts +0 -3
  166. package/build/main/lib/agent-core/harness/execution-env.js +0 -3
  167. package/build/main/lib/agent-core/harness/prompt-templates.js +0 -204
  168. package/build/main/lib/agent-core/harness/session/repo/jsonl.js +0 -98
  169. package/build/main/lib/agent-core/harness/session/repo/memory.js +0 -46
  170. package/build/main/lib/agent-core/harness/session/repo/shared.js +0 -31
  171. package/build/main/lib/agent-core/harness/session/session.js +0 -199
  172. package/build/main/lib/agent-core/harness/session/storage/jsonl.js +0 -170
  173. package/build/main/lib/agent-core/harness/session/storage/memory.js +0 -94
  174. package/build/main/lib/agent-core/harness/skills.js +0 -266
  175. package/build/main/lib/agent-core/harness/system-prompt.js +0 -30
  176. package/build/main/lib/agent-core/harness/types.js +0 -16
  177. package/build/main/lib/agent-core/harness/utils/shell-output.js +0 -101
  178. package/build/main/lib/agent-core/harness/utils/truncate.js +0 -208
  179. package/build/main/lib/agent-core/index.d.ts +0 -19
  180. package/build/main/lib/agent-core/index.js +0 -25
  181. package/build/module/lib/agent-core/agent-loop.js +0 -483
  182. package/build/module/lib/agent-core/agent.js +0 -419
  183. package/build/module/lib/agent-core/harness/agent-harness.js +0 -772
  184. package/build/module/lib/agent-core/harness/compaction/branch-summarization.d.ts +0 -87
  185. package/build/module/lib/agent-core/harness/compaction/branch-summarization.js +0 -246
  186. package/build/module/lib/agent-core/harness/compaction/compaction.d.ts +0 -121
  187. package/build/module/lib/agent-core/harness/compaction/compaction.js +0 -637
  188. package/build/module/lib/agent-core/harness/compaction/utils.d.ts +0 -37
  189. package/build/module/lib/agent-core/harness/compaction/utils.js +0 -153
  190. package/build/module/lib/agent-core/harness/env/nodejs.d.ts +0 -43
  191. package/build/module/lib/agent-core/harness/env/nodejs.js +0 -353
  192. package/build/module/lib/agent-core/harness/execution-env.d.ts +0 -3
  193. package/build/module/lib/agent-core/harness/execution-env.js +0 -3
  194. package/build/module/lib/agent-core/harness/prompt-templates.js +0 -204
  195. package/build/module/lib/agent-core/harness/session/repo/jsonl.js +0 -98
  196. package/build/module/lib/agent-core/harness/session/repo/memory.js +0 -46
  197. package/build/module/lib/agent-core/harness/session/repo/shared.js +0 -31
  198. package/build/module/lib/agent-core/harness/session/session.js +0 -199
  199. package/build/module/lib/agent-core/harness/session/storage/jsonl.js +0 -170
  200. package/build/module/lib/agent-core/harness/session/storage/memory.js +0 -94
  201. package/build/module/lib/agent-core/harness/skills.js +0 -266
  202. package/build/module/lib/agent-core/harness/system-prompt.js +0 -30
  203. package/build/module/lib/agent-core/harness/types.js +0 -16
  204. package/build/module/lib/agent-core/harness/utils/shell-output.js +0 -101
  205. package/build/module/lib/agent-core/harness/utils/truncate.js +0 -208
  206. package/build/module/lib/agent-core/index.d.ts +0 -19
  207. package/build/module/lib/agent-core/index.js +0 -25
  208. /package/build/main/lib/agent-core/{harness → src/harness}/utils/truncate.d.ts +0 -0
  209. /package/build/main/lib/agent-core/{proxy.d.ts → src/proxy.d.ts} +0 -0
  210. /package/build/module/lib/agent-core/{harness → src/harness}/utils/truncate.d.ts +0 -0
  211. /package/build/module/lib/agent-core/{proxy.d.ts → src/proxy.d.ts} +0 -0
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ /**
3
+ * Remote agent A2A execution — plain function, no class.
4
+ *
5
+ * Bridges a remote PS platform agent run into an A2A ExecutionEventBus.
6
+ * Called from PSAgent.execute() when local: false (the default).
7
+ *
8
+ * Everything PSAgent-specific is passed in via RemoteAgentContext so this
9
+ * module has no dependency on PSAgent itself.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.executeRemoteAgent = executeRemoteAgent;
13
+ const uuid_1 = require("uuid");
14
+ const PSAgent_1 = require("./PSAgent");
15
+ // ─── executeRemoteAgent ───────────────────────────────────────────────────────
16
+ async function executeRemoteAgent(ctx, requestContext, eventBus) {
17
+ const { name, log, cancelledTasks } = ctx;
18
+ const userMessage = requestContext.userMessage;
19
+ const existingTask = requestContext.task;
20
+ const taskId = existingTask?.id || (0, uuid_1.v4)();
21
+ const contextId = userMessage.contextId || existingTask?.contextId || (0, uuid_1.v4)();
22
+ log?.info(`[${name}:AgentExecutor] Processing message ${userMessage.messageId} for task ${taskId} (context: ${contextId})`);
23
+ if (!existingTask) {
24
+ const initialTask = {
25
+ kind: 'task',
26
+ id: taskId,
27
+ contextId,
28
+ status: { state: 'submitted', timestamp: new Date().toISOString() },
29
+ history: [userMessage],
30
+ metadata: userMessage.metadata,
31
+ artifacts: [],
32
+ };
33
+ eventBus.publish(initialTask);
34
+ }
35
+ let workingStatusUpdate = {
36
+ kind: 'status-update',
37
+ taskId,
38
+ contextId,
39
+ status: {
40
+ state: 'working',
41
+ message: {
42
+ kind: 'message',
43
+ role: 'agent',
44
+ messageId: (0, uuid_1.v4)(),
45
+ parts: [{ kind: 'text', text: 'Initializing the agent...' }],
46
+ taskId,
47
+ contextId,
48
+ },
49
+ timestamp: new Date().toISOString(),
50
+ },
51
+ final: false,
52
+ };
53
+ eventBus.publish(workingStatusUpdate);
54
+ const history = existingTask?.history ? [...existingTask.history] : [];
55
+ if (!history.find((m) => m.messageId === userMessage.messageId)) {
56
+ history.push(userMessage);
57
+ }
58
+ const messages = history
59
+ .map((m) => ({
60
+ role: (m.role === 'agent' ? 'model' : 'user'),
61
+ content: m.parts
62
+ .filter((p) => p.kind === 'text' && !!p.text)
63
+ .map((p) => p.text)
64
+ .join('\n'),
65
+ }))
66
+ .filter((m) => m.content.length > 0);
67
+ if (messages.length === 0) {
68
+ log?.warn(`[${name}:AgentExecutor] No valid text messages found in history for task ${taskId}.`);
69
+ eventBus.publish({
70
+ kind: 'status-update',
71
+ taskId,
72
+ contextId,
73
+ status: {
74
+ state: 'failed',
75
+ message: {
76
+ kind: 'message',
77
+ role: 'agent',
78
+ messageId: (0, uuid_1.v4)(),
79
+ parts: [{ kind: 'text', text: 'No input message found to process.' }],
80
+ taskId,
81
+ contextId,
82
+ },
83
+ timestamp: new Date().toISOString(),
84
+ },
85
+ final: true,
86
+ });
87
+ return;
88
+ }
89
+ try {
90
+ const input = {};
91
+ for (const part of userMessage.parts ?? []) {
92
+ if (part.kind === 'text' && part.text) {
93
+ input['query'] = part.text;
94
+ }
95
+ }
96
+ log?.debug(`Agent input: ${JSON.stringify(input)}`);
97
+ const correlationId = await ctx.start(input, messages.slice(0, -1), log);
98
+ workingStatusUpdate = {
99
+ kind: 'status-update',
100
+ taskId,
101
+ contextId,
102
+ status: {
103
+ state: 'working',
104
+ message: {
105
+ kind: 'message',
106
+ role: 'agent',
107
+ messageId: (0, uuid_1.v4)(),
108
+ parts: [
109
+ {
110
+ kind: 'text',
111
+ text: `started new agent, correlationid: ${correlationId}`,
112
+ },
113
+ ],
114
+ taskId,
115
+ contextId,
116
+ },
117
+ timestamp: new Date().toISOString(),
118
+ },
119
+ final: false,
120
+ };
121
+ eventBus.publish(workingStatusUpdate);
122
+ let events;
123
+ let lastevent = { timestamp: Date.now() };
124
+ let processedEvents = 0;
125
+ do {
126
+ do {
127
+ if (cancelledTasks.has(taskId)) {
128
+ log?.info(`[${name}:AgentExecutor] Task ${taskId} has been cancelled.`);
129
+ eventBus.publish({
130
+ kind: 'status-update',
131
+ taskId,
132
+ contextId,
133
+ status: { state: 'canceled', timestamp: new Date().toISOString() },
134
+ final: true,
135
+ });
136
+ eventBus.finished();
137
+ cancelledTasks.delete(taskId);
138
+ return;
139
+ }
140
+ await (0, PSAgent_1.sleep)(500);
141
+ events = await ctx.getEvents();
142
+ if (events.length > processedEvents) {
143
+ events = events.slice(processedEvents);
144
+ }
145
+ } while (events.length === 0);
146
+ const event = events[0];
147
+ if (lastevent.timestamp !== event.timestamp) {
148
+ lastevent = event;
149
+ if (lastevent.agentStatus === 'waiting') {
150
+ if (lastevent.tool?.startsWith('mcp_')) {
151
+ log?.info(`[${name}:AgentExecutor] waiting for mcp tool ${lastevent.tool} to complete...`);
152
+ }
153
+ else if (lastevent.tool) {
154
+ log?.info(`[${name}:AgentExecutor] toolcall: ${lastevent.tool}, ts:${lastevent.timestamp}, c:${processedEvents}\n`);
155
+ let ws = {
156
+ kind: 'status-update',
157
+ taskId,
158
+ contextId,
159
+ status: {
160
+ state: 'working',
161
+ message: {
162
+ kind: 'message',
163
+ role: 'agent',
164
+ messageId: (0, uuid_1.v4)(),
165
+ parts: [
166
+ {
167
+ kind: 'text',
168
+ text: `invoking tool ${lastevent.tool}(${JSON.stringify(lastevent.toolInput.request_body)})...\n`,
169
+ },
170
+ ],
171
+ taskId,
172
+ contextId,
173
+ metadata: { data: lastevent.toolInput.request_body },
174
+ },
175
+ timestamp: new Date().toISOString(),
176
+ },
177
+ final: false,
178
+ };
179
+ eventBus.publish(ws);
180
+ const res = await ctx.executeTool(lastevent.tool, lastevent.toolInput.request_body, log);
181
+ let statusMsg = `Tool ${lastevent.tool} executed `;
182
+ if (res.error) {
183
+ log?.error(`${res.error}`);
184
+ statusMsg += `with error: ${res.error.message || res.error.toString()}`;
185
+ }
186
+ else {
187
+ statusMsg += `successfully.`;
188
+ }
189
+ ws = {
190
+ kind: 'status-update',
191
+ taskId,
192
+ contextId,
193
+ status: {
194
+ state: 'working',
195
+ message: {
196
+ kind: 'message',
197
+ role: 'agent',
198
+ messageId: (0, uuid_1.v4)(),
199
+ parts: [{ kind: 'text', text: statusMsg }],
200
+ taskId,
201
+ contextId,
202
+ },
203
+ timestamp: new Date().toISOString(),
204
+ },
205
+ final: false,
206
+ };
207
+ eventBus.publish(ws);
208
+ }
209
+ }
210
+ else if (lastevent.agentStatus === 'in-progress') {
211
+ if (lastevent.tool === 'generate_plan_tool' && lastevent.toolOutput) {
212
+ log?.info('```log-Agent_Plan\n' + lastevent.toolOutput + '\n```');
213
+ }
214
+ else if (lastevent.message.indexOf('resume')) {
215
+ // silent
216
+ }
217
+ else {
218
+ log?.info(`\n\n#### ${lastevent.message}:\n`);
219
+ }
220
+ }
221
+ else if (lastevent.agentStatus === 'completed') {
222
+ log?.info(`Agent Execution Completed`);
223
+ log?.info(`---`);
224
+ log?.done(JSON.stringify(lastevent.output, null, 2));
225
+ }
226
+ else if (lastevent.agentStatus !== 'pending') {
227
+ log?.warn(`#### ${lastevent.agentStatus}`);
228
+ log?.error(`Agent execution failed: ${JSON.stringify(lastevent)}`);
229
+ log?.done(' Agent execution failed ');
230
+ }
231
+ processedEvents++;
232
+ }
233
+ } while (lastevent?.agentStatus !== 'failed' &&
234
+ lastevent?.agentStatus !== 'completed');
235
+ if (lastevent?.agentStatus === 'failed') {
236
+ eventBus.publish({
237
+ kind: 'status-update',
238
+ taskId,
239
+ contextId,
240
+ status: {
241
+ state: 'failed',
242
+ message: {
243
+ kind: 'message',
244
+ role: 'agent',
245
+ messageId: (0, uuid_1.v4)(),
246
+ parts: [
247
+ {
248
+ kind: 'text',
249
+ text: `Agent execution failed: ${lastevent?.message || ''}`,
250
+ },
251
+ ],
252
+ taskId,
253
+ contextId,
254
+ },
255
+ timestamp: new Date().toISOString(),
256
+ },
257
+ final: true,
258
+ });
259
+ }
260
+ else if (lastevent?.agentStatus === 'completed') {
261
+ eventBus.publish({
262
+ kind: 'status-update',
263
+ taskId,
264
+ contextId,
265
+ status: {
266
+ state: 'completed',
267
+ message: {
268
+ kind: 'message',
269
+ role: 'agent',
270
+ messageId: (0, uuid_1.v4)(),
271
+ parts: [
272
+ { kind: 'text', text: lastevent.output.response },
273
+ { kind: 'data', data: lastevent.output },
274
+ ],
275
+ taskId,
276
+ contextId,
277
+ },
278
+ timestamp: new Date().toISOString(),
279
+ },
280
+ final: true,
281
+ });
282
+ }
283
+ }
284
+ catch (error) {
285
+ log?.error(`[${name}:AgentExecutor] Error processing task ${taskId}:`, error);
286
+ eventBus.publish({
287
+ kind: 'status-update',
288
+ taskId,
289
+ contextId,
290
+ status: {
291
+ state: 'failed',
292
+ message: {
293
+ kind: 'message',
294
+ role: 'agent',
295
+ messageId: (0, uuid_1.v4)(),
296
+ parts: [
297
+ {
298
+ kind: 'text',
299
+ text: `Error processing your message: ${error instanceof Error ? error.message : String(error)}`,
300
+ },
301
+ ],
302
+ taskId,
303
+ contextId,
304
+ },
305
+ timestamp: new Date().toISOString(),
306
+ },
307
+ final: true,
308
+ });
309
+ }
310
+ }
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlQWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlbW90ZUFnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7R0FRRzs7QUFtQ0gsZ0RBeVVDO0FBeFdELCtCQUFvQztBQUVwQyx1Q0FBa0M7QUEyQmxDLGlGQUFpRjtBQUUxRSxLQUFLLFVBQVUsa0JBQWtCLENBQ3RDLEdBQXVCLEVBQ3ZCLGNBQThCLEVBQzlCLFFBQTJCO0lBRTNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxHQUFHLEdBQUcsQ0FBQztJQUMxQyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDO0lBQy9DLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFFekMsTUFBTSxNQUFNLEdBQUcsWUFBWSxFQUFFLEVBQUUsSUFBSSxJQUFBLFNBQU0sR0FBRSxDQUFDO0lBQzVDLE1BQU0sU0FBUyxHQUNiLFdBQVcsQ0FBQyxTQUFTLElBQUksWUFBWSxFQUFFLFNBQVMsSUFBSSxJQUFBLFNBQU0sR0FBRSxDQUFDO0lBRS9ELEdBQUcsRUFBRSxJQUFJLENBQ1AsSUFBSSxJQUFJLHNDQUFzQyxXQUFXLENBQUMsU0FBUyxhQUFhLE1BQU0sY0FBYyxTQUFTLEdBQUcsQ0FDakgsQ0FBQztJQUVGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixNQUFNLFdBQVcsR0FBUztZQUN4QixJQUFJLEVBQUUsTUFBTTtZQUNaLEVBQUUsRUFBRSxNQUFNO1lBQ1YsU0FBUztZQUNULE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDbkUsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO1lBQ3RCLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtZQUM5QixTQUFTLEVBQUUsRUFB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
@@ -1,14 +1,24 @@
1
+ import { IDebugLogger } from '../utils/debuglogger';
1
2
  import { SkillMetadata } from './types';
3
+ export declare function toOptionalString(value: unknown): string | undefined;
2
4
  /**
3
- * Parses a SKILL.md file content to extract all metadata using gray-matter
5
+ * Parses SKILL.md content and extracts frontmatter + markdown body.
6
+ * If no valid frontmatter is present, frontmatter is empty and body is the full content.
4
7
  */
5
- export declare function parseSkillMetadataFromContent(content: string, skillPath: string): SkillMetadata;
8
+ export declare function parseSkillMarkdown(content: string, logger: IDebugLogger): {
9
+ frontmatter: Record<string, unknown>;
10
+ body: string;
11
+ };
12
+ /**
13
+ * Parses a SKILL.md file content to extract all metadata.
14
+ */
15
+ export declare function parseSkillMetadataFromContent(content: string, skillPath: string, logger: IDebugLogger): SkillMetadata;
6
16
  /**
7
17
  * Parses a SKILL.md file to extract metadata for the registry (legacy format)
8
18
  * @param {string} filePath - The absolute path to the SKILL.md file.
9
19
  * @returns {Object|null} - Returns { name, description, folderPath } or null if invalid.
10
20
  */
11
- export default function parseSkillMetadata(filePath: string): {
21
+ export default function parseSkillMetadata(filePath: string, logger: IDebugLogger): {
12
22
  name: string;
13
23
  description: string;
14
24
  folderPath: string;
@@ -3,22 +3,71 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.toOptionalString = toOptionalString;
7
+ exports.parseSkillMarkdown = parseSkillMarkdown;
6
8
  exports.parseSkillMetadataFromContent = parseSkillMetadataFromContent;
7
9
  exports.default = parseSkillMetadata;
8
10
  const node_fs_1 = __importDefault(require("node:fs"));
9
11
  const node_path_1 = __importDefault(require("node:path"));
10
- const gray_matter_1 = __importDefault(require("gray-matter"));
12
+ const yaml_1 = require("yaml");
13
+ const FRONTMATTER_REGEX = /^---[ \t]*\n([\s\S]*?)\n---(?:[ \t]*\n|$)/;
14
+ function normalizeContent(content) {
15
+ return content
16
+ .replace(/^\uFEFF/, '')
17
+ .replace(/\r\n/g, '\n')
18
+ .replace(/\r/g, '\n');
19
+ }
20
+ function parseYamlFrontmatter(content, logger) {
21
+ try {
22
+ const parsed = (0, yaml_1.parse)(content);
23
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
24
+ return parsed;
25
+ }
26
+ }
27
+ catch (error) {
28
+ logger.error('Failed to parse skill YAML frontmatter. Falling back to defaults.', error);
29
+ }
30
+ return {};
31
+ }
32
+ function toOptionalString(value) {
33
+ if (typeof value === 'string') {
34
+ const trimmed = value.trim();
35
+ return trimmed.length > 0 ? trimmed : undefined;
36
+ }
37
+ return undefined;
38
+ }
39
+ /**
40
+ * Parses SKILL.md content and extracts frontmatter + markdown body.
41
+ * If no valid frontmatter is present, frontmatter is empty and body is the full content.
42
+ */
43
+ function parseSkillMarkdown(content, logger) {
44
+ const normalized = normalizeContent(content);
45
+ const match = FRONTMATTER_REGEX.exec(normalized);
46
+ if (!match) {
47
+ return {
48
+ frontmatter: {},
49
+ body: normalized,
50
+ };
51
+ }
52
+ const frontmatter = parseYamlFrontmatter(match[1], logger);
53
+ const body = normalized.slice(match[0].length);
54
+ return {
55
+ frontmatter,
56
+ body,
57
+ };
58
+ }
11
59
  /**
12
- * Parses a SKILL.md file content to extract all metadata using gray-matter
60
+ * Parses a SKILL.md file content to extract all metadata.
13
61
  */
14
- function parseSkillMetadataFromContent(content, skillPath) {
15
- const parsed = (0, gray_matter_1.default)(content);
62
+ function parseSkillMetadataFromContent(content, skillPath, logger) {
63
+ const { frontmatter } = parseSkillMarkdown(content, logger);
64
+ const folderName = node_path_1.default.basename(skillPath) || 'unknown';
16
65
  return {
17
- name: parsed.data.name || 'unknown',
18
- description: parsed.data.description || 'No description available',
19
- version: parsed.data.version,
20
- author: parsed.data.author,
21
- license: parsed.data.license,
66
+ name: toOptionalString(frontmatter.name) || folderName,
67
+ description: toOptionalString(frontmatter.description) || 'No description available',
68
+ version: toOptionalString(frontmatter.version),
69
+ author: toOptionalString(frontmatter.author),
70
+ license: toOptionalString(frontmatter.license),
22
71
  path: skillPath,
23
72
  };
24
73
  }
@@ -27,7 +76,7 @@ function parseSkillMetadataFromContent(content, skillPath) {
27
76
  * @param {string} filePath - The absolute path to the SKILL.md file.
28
77
  * @returns {Object|null} - Returns { name, description, folderPath } or null if invalid.
29
78
  */
30
- function parseSkillMetadata(filePath) {
79
+ function parseSkillMetadata(filePath, logger) {
31
80
  try {
32
81
  if (!node_fs_1.default.existsSync(filePath)) {
33
82
  return null;
@@ -35,7 +84,7 @@ function parseSkillMetadata(filePath) {
35
84
  const fileContent = node_fs_1.default.readFileSync(filePath, 'utf8');
36
85
  const skillPath = node_path_1.default.dirname(filePath);
37
86
  // Parse using the unified function
38
- const fullMetadata = parseSkillMetadataFromContent(fileContent, skillPath);
87
+ const fullMetadata = parseSkillMetadataFromContent(fileContent, skillPath, logger);
39
88
  // Return legacy format for backward compatibility
40
89
  return {
41
90
  name: fullMetadata.name,
@@ -47,4 +96,4 @@ function parseSkillMetadata(filePath) {
47
96
  return null;
48
97
  }
49
98
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpbGxQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NraWxscy9za2lsbFBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVVBLHNFQWNDO0FBT0QscUNBdUJDO0FBdERELHNEQUF5QjtBQUN6QiwwREFBNkI7QUFFN0IsOERBQWlDO0FBSWpDOztHQUVHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQzNDLE9BQWUsRUFDZixTQUFpQjtJQUVqQixNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFNLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFFL0IsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTO1FBQ25DLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSwwQkFBMEI7UUFDbEUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTztRQUM1QixNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNO1FBQzFCLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU87UUFDNUIsSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBd0Isa0JBQWtCLENBQ3hDLFFBQWdCO0lBRWhCLElBQUksQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLGlCQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0RCxNQUFNLFNBQVMsR0FBRyxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6QyxtQ0FBbUM7UUFDbkMsTUFBTSxZQUFZLEdBQUcsNkJBQTZCLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTNFLGtEQUFrRDtRQUNsRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO1lBQ3ZCLFdBQVcsRUFBRSxZQUFZLENBQUMsV0FBVztZQUNyQyxVQUFVLEVBQUUsWUFBWSxDQUFDLElBQUk7U0FDOUIsQ0FBQztJQUNKLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDIn0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpbGxQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NraWxscy9za2lsbFBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXFDQSw0Q0FPQztBQU1ELGdEQXdCQztBQUtELHNFQWlCQztBQU9ELHFDQTRCQztBQW5JRCxzREFBeUI7QUFDekIsMERBQTZCO0FBRTdCLCtCQUE2QjtBQU03QixNQUFNLGlCQUFpQixHQUFHLDJDQUEyQyxDQUFDO0FBRXRFLFNBQVMsZ0JBQWdCLENBQUMsT0FBZTtJQUN2QyxPQUFPLE9BQU87U0FDWCxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztTQUN0QixPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQztTQUN0QixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUMzQixPQUFlLEVBQ2YsTUFBb0I7SUFFcEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBQSxZQUFLLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25FLE9BQU8sTUFBaUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLENBQUMsS0FBSyxDQUNWLG1FQUFtRSxFQUNuRSxLQUFLLENBQ04sQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFjO0lBQzdDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLE9BQU8sT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQ2hDLE9BQWUsRUFDZixNQUFvQjtJQUtwQixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxNQUFNLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFakQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTztZQUNMLFdBQVcsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0QsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFL0MsT0FBTztRQUNMLFdBQVc7UUFDWCxJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDZCQUE2QixDQUMzQyxPQUFlLEVBQ2YsU0FBaUIsRUFDakIsTUFBb0I7SUFFcEIsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1RCxNQUFNLFVBQVUsR0FBRyxtQkFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUM7SUFFekQsT0FBTztRQUNMLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVTtRQUN0RCxXQUFXLEVBQ1QsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLDBCQUEwQjtRQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUM5QyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUM5QyxJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUF3QixrQkFBa0IsQ0FDeEMsUUFBZ0IsRUFDaEIsTUFBb0I7SUFFcEIsSUFBSSxDQUFDO1FBQ0gsSUFBSSxDQUFDLGlCQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsaUJBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELE1BQU0sU0FBUyxHQUFHLG1CQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLG1DQUFtQztRQUNuQyxNQUFNLFlBQVksR0FBRyw2QkFBNkIsQ0FDaEQsV0FBVyxFQUNYLFNBQVMsRUFDVCxNQUFNLENBQ1AsQ0FBQztRQUVGLGtEQUFrRDtRQUNsRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO1lBQ3ZCLFdBQVcsRUFBRSxZQUFZLENBQUMsV0FBVztZQUNyQyxVQUFVLEVBQUUsWUFBWSxDQUFDLElBQUk7U0FDOUIsQ0FBQztJQUNKLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDIn0=
@@ -21,7 +21,6 @@ const fs_1 = require("fs");
21
21
  const node_fs_1 = __importDefault(require("node:fs"));
22
22
  const node_os_1 = __importDefault(require("node:os"));
23
23
  const node_path_1 = __importDefault(require("node:path"));
24
- const gray_matter_1 = __importDefault(require("gray-matter"));
25
24
  const debuglogger_1 = __importDefault(require("../utils/debuglogger"));
26
25
  const constants_1 = __importDefault(require("./constants"));
27
26
  const skillParser_1 = require("./skillParser");
@@ -129,24 +128,33 @@ function skillExists(skillsPath, skillName) {
129
128
  const skillFilePath = getSkillFilePath(skillsPath, skillName);
130
129
  return node_fs_1.default.existsSync(skillFilePath);
131
130
  }
131
+ function normalizeDependencies(value) {
132
+ if (Array.isArray(value)) {
133
+ return value.filter((dependency) => {
134
+ return typeof dependency === 'string' && dependency.trim().length > 0;
135
+ });
136
+ }
137
+ const singleDependency = (0, skillParser_1.toOptionalString)(value);
138
+ return singleDependency ? [singleDependency] : [];
139
+ }
132
140
  /**
133
141
  * Reads skill content and parses frontmatter using skillParser
134
142
  */
135
143
  async function readSkillContent(skillsPath, skillName) {
136
144
  const skillFilePath = getSkillFilePath(skillsPath, skillName);
137
145
  const rawContent = await fs_1.promises.readFile(skillFilePath, 'utf-8');
138
- const parsed = (0, gray_matter_1.default)(rawContent);
146
+ const { frontmatter, body } = (0, skillParser_1.parseSkillMarkdown)(rawContent, dlog);
139
147
  // Create SkillFrontmatter with user-friendly defaults (different from SkillMetadata)
140
148
  const metadata = {
141
- name: parsed.data.name || skillName,
142
- description: parsed.data.description || 'No description provided',
143
- version: parsed.data.version || '1.0.0',
144
- author: parsed.data.author || 'Unknown',
145
- dependencies: parsed.data.dependencies || [],
149
+ name: (0, skillParser_1.toOptionalString)(frontmatter.name) || skillName,
150
+ description: (0, skillParser_1.toOptionalString)(frontmatter.description) || 'No description provided',
151
+ version: (0, skillParser_1.toOptionalString)(frontmatter.version) || '1.0.0',
152
+ author: (0, skillParser_1.toOptionalString)(frontmatter.author) || 'Unknown',
153
+ dependencies: normalizeDependencies(frontmatter.dependencies),
146
154
  };
147
155
  return {
148
156
  metadata,
149
- content: parsed.content,
157
+ content: body,
150
158
  rawContent,
151
159
  };
152
160
  }
@@ -204,7 +212,7 @@ async function loadSkillMetadata(skillDir) {
204
212
  const skillMdPath = node_path_1.default.join(skillDir, SKILL_DEFINITION_FILE);
205
213
  try {
206
214
  const fileContent = await fs_1.promises.readFile(skillMdPath, 'utf-8');
207
- return (0, skillParser_1.parseSkillMetadataFromContent)(fileContent, skillDir);
215
+ return (0, skillParser_1.parseSkillMetadataFromContent)(fileContent, skillDir, dlog);
208
216
  }
209
217
  catch {
210
218
  return null;
@@ -384,4 +392,4 @@ async function setupSkillsAndGetPrompt(skillsPath, sources, log) {
384
392
  }
385
393
  return await getSkillsSystemPromptFromDirectory(skillsPath);
386
394
  }
387
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NraWxscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQTJCQSwwQ0E4Q0M7QUFhRCw4Q0FJQztBQUtELGtEQStCQztBQUtELHNEQUVDO0FBTUQsNENBZUM7QUFLRCxrQ0FHQztBQUtELDRDQXVCQztBQUtELGtEQXNEQztBQXFCRCxvREFrQkM7QUFLRCw0Q0FzQkM7QUFLRCxvQ0E4Q0M7QUF3REQsd0VBU0M7QUFLRCxnRkFNQztBQU1ELDBEQW9EQztBQXBmRCwyQkFBNEM7QUFDNUMsc0RBQXlCO0FBQ3pCLHNEQUF5QjtBQUN6QiwwREFBNkI7QUFFN0IsOERBQWlDO0FBR2pDLHVFQUErQztBQUUvQyw0REFBMEM7QUFDMUMsK0NBQThEO0FBQzlELDhGQUFxRTtBQVNyRTs7Ozs7R0FLRztBQUNILFNBQXdCLHVCQUF1QixDQUFDLFFBQWdCO0lBQzlELE1BQU0sTUFBTSxHQUdSO1FBQ0YsMEJBQTBCLEVBQUUsSUFBSTtRQUNoQyxxQkFBcUIsRUFBRSxJQUFJO0tBQzVCLENBQUM7SUFFRixJQUFJLENBQUM7UUFDSCwyQ0FBMkM7UUFDM0MsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE1BQU0scUJBQXFCLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQ3JDLFFBQVEsRUFDUixtQkFBZSxDQUFDLGFBQWEsQ0FDOUIsQ0FBQztZQUVGLHVEQUF1RDtZQUN2RCxJQUFJLENBQUMsaUJBQUUsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxpQkFBRSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFFRCxNQUFNLENBQUMsMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7UUFDNUQsQ0FBQztRQUVELHFFQUFxRTtRQUNyRSxNQUFNLFdBQVcsR0FBRyxpQkFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWpDLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQ2hDLFdBQVcsRUFDWCxtQkFBZSxDQUFDLGFBQWEsQ0FDOUIsQ0FBQztRQUVGLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsaUJBQUUsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQ3JDLGlCQUFFLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE1BQU0sQ0FBQyxxQkFBcUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUVoRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLCtEQUErRDtRQUMvRCxPQUFPLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBQSxxQkFBVyxFQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFN0MsNkRBQTZEO0FBQzdELE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLHFCQUFxQixFQUFFLEdBQUcsbUJBQWUsQ0FBQztBQUUxRSxnRUFBZ0U7QUFDaEUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBa0MsQ0FBQztBQUV2RTs7R0FFRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFNBQWlCO0lBQ2pELHNFQUFzRTtJQUN0RSxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztJQUN4QyxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ25FLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLE1BQWM7SUFDaEQsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMxQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFOUIsc0NBQXNDO0lBQ3RDLE1BQU0saUJBQWlCLEdBQUc7UUFDeEIsa0JBQWtCLEVBQUUsdUJBQXVCO1FBQzNDLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsSUFBSSxFQUFFLG9EQUFvRDtRQUMxRCxJQUFJLEVBQUUsMkNBQTJDO1FBQ2pELDRDQUE0QztRQUM1QyxpQkFBaUIsRUFBRSxxQkFBcUI7S0FDekMsQ0FBQztJQUVGLEtBQUssTUFBTSxPQUFPLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN4QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsbUNBQW1DO0lBQ25DLE1BQU0sZUFBZSxHQUFHO1FBQ3RCLHFEQUFxRCxFQUFFLG1CQUFtQjtRQUMxRSxrRUFBa0UsRUFBRSw4QkFBOEI7UUFDbEcsNEVBQTRFLEVBQUUsa0JBQWtCO0tBQ2pHLENBQUM7SUFFRixPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUscUJBQXFCLENBQUMsVUFBa0I7SUFDNUQsTUFBTSxhQUFVLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FDOUIsVUFBa0IsRUFDbEIsU0FBaUI7SUFFakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsT0FBTyxtQkFBSSxDQUFDLElBQUksQ0FDZCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QscUJBQXFCLENBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixXQUFXLENBQUMsVUFBa0IsRUFBRSxTQUFpQjtJQUMvRCxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUQsT0FBTyxpQkFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLFVBQWtCLEVBQ2xCLFNBQWlCO0lBRWpCLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUU5RCxNQUFNLFVBQVUsR0FBRyxNQUFNLGFBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQU0sRUFBQyxVQUFVLENBQUMsQ0FBQztJQUVsQyxxRkFBcUY7SUFDckYsTUFBTSxRQUFRLEdBQXFCO1FBQ2pDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTO1FBQ25DLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSx5QkFBeUI7UUFDakUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU87UUFDdkMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVM7UUFDdkMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUU7S0FDN0MsQ0FBQztJQUVGLE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLFVBQVU7S0FDWCxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxVQUFrQjtJQUVsQixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUV6RCxJQUFJLENBQUM7UUFDSCxNQUFNLGFBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCw2RUFBNkU7UUFDN0UsTUFBTSxTQUFTLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLDhCQUE4QixTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQztZQUNILE1BQU0sYUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUMzRCxPQUFPLGVBQWUsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxhQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUNsRCxhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUNQLGdCQUFnQixFQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ3RFLENBQUM7UUFFRixLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzVCLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sUUFBUSxHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBRW5ELE1BQU0sUUFBUSxHQUFHLE1BQU0saUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUUvRCxJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUNiLFFBQVEsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO29CQUN6QixlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLFFBQWdCO0lBRWhCLE1BQU0sV0FBVyxHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBRS9ELElBQUksQ0FBQztRQUNILE1BQU0sV0FBVyxHQUFHLE1BQU0sYUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEUsT0FBTyxJQUFBLDJDQUE2QixFQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsTUFBYztJQUNqRCxvQ0FBb0M7SUFDcEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRS9CLGlEQUFpRDtJQUNqRCxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFOUMsc0VBQXNFO0lBQ3RFLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVuRCxtRUFBbUU7SUFDbkUsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFdEQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsTUFBYztJQUM3Qyx1QkFBdUI7SUFDdkIsZ0NBQWdDO0lBQ2hDLHFCQUFxQjtJQUNyQiwwQ0FBMEM7SUFFMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV4RCxJQUFJLFNBQWlCLENBQUM7SUFDdEIsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDN0IsU0FBUyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztTQUFNLENBQUM7UUFDTixzQ0FBc0M7UUFDdEMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksZUFBZSxDQUFDO0lBQzFELENBQUM7SUFFRCxpREFBaUQ7SUFDakQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLFlBQVksQ0FDaEMsT0FBaUM7SUFFakMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxHQUFHLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUV4RCxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXJELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGtFQUFrRTtJQUNsRSxJQUFJLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLFNBQVMsa0NBQWtDLENBQUMsQ0FBQztRQUMzRSxPQUFPLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsNkJBQTZCO0lBQzdCLElBQUksV0FBVyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sUUFBUSxHQUFHLE1BQU0saUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxTQUFTLG9CQUFvQixDQUFDLENBQUM7WUFDbEQsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsTUFBTSxtQkFBbUIsR0FBRyx5QkFBeUIsQ0FDbkQsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsT0FBTyxDQUNSLENBQUM7SUFDRixvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFFekQsSUFBSSxDQUFDO1FBQ0gsT0FBTyxNQUFNLG1CQUFtQixDQUFDO0lBQ25DLENBQUM7WUFBUyxDQUFDO1FBQ1Qsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxLQUFLLFVBQVUseUJBQXlCLENBQ3RDLGdCQUF3QixFQUN4QixTQUFpQixFQUNqQixVQUFrQixFQUNsQixPQUFlO0lBRWYsTUFBTSxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV4QyxJQUFJLENBQUM7UUFDSCw4RUFBOEU7UUFDOUUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFNUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ3RDLEdBQUcsRUFBRSxVQUFVO1lBQ2YsT0FBTztZQUNQLEtBQUssRUFBRSxTQUFTLEVBQUUsdUJBQXVCO1lBQ3pDLFFBQVEsRUFBRSxNQUFNO1NBQ2pCLENBQUMsQ0FBQztRQUVILDhCQUE4QjtRQUM5QixJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDckIsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsMkRBQTJEO1FBQzNELE1BQU0sUUFBUSxHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sUUFBUSxHQUFHLE1BQU0saUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbkQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsaUNBQWlDLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDeEQsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUNiLHlEQUF5RCxRQUFRLEVBQUUsQ0FDcEUsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLFNBQVMsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiw4QkFBOEIsQ0FDNUMsTUFBdUI7SUFFdkIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7UUFDaEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO0tBQy9CLENBQUMsQ0FBQyxDQUFDO0lBRUosT0FBTyxJQUFBLG9DQUF5QixFQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRDs7R0FFRztBQUNJLEtBQUssVUFBVSxrQ0FBa0MsQ0FDdEQsVUFBa0I7SUFFbEIsTUFBTSxlQUFlLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5RCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELE9BQU8sOEJBQThCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSx1QkFBdUIsQ0FDM0MsVUFBa0IsRUFDbEIsT0FBNEIsRUFDNUIsR0FBbUI7SUFFbkIsTUFBTSxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV4QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsR0FBRyxFQUFFLElBQUksRUFBRSxDQUNULGlCQUFpQixZQUFZLENBQUMsTUFBTSwrQkFBK0IsQ0FDcEUsQ0FBQztZQUVGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLENBQUM7b0JBQ0gsc0JBQXNCO29CQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO3dCQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDMUQsQ0FBQztvQkFFRCxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFFN0Qsc0RBQXNEO29CQUN0RCxpREFBaUQ7b0JBQ2pELElBQUksZUFBZSxHQUFHLGdCQUFnQixDQUFDO29CQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQ3BDLGVBQWUsR0FBRyxHQUFHLGdCQUFnQixJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUN2RCxDQUFDO29CQUVELEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FDVCx3QkFBd0IsU0FBUyxVQUFVLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLFVBQVUsSUFBSSxLQUFLLEdBQUcsQ0FDM0YsQ0FBQztvQkFFRixNQUFNLFlBQVksQ0FBQzt3QkFDakIsTUFBTSxFQUFFLGVBQWU7d0JBQ3ZCLFVBQVU7d0JBQ1YsT0FBTyxFQUFFLEtBQUs7cUJBQ2YsQ0FBQyxDQUFDO29CQUVILEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxtQ0FBbUMsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNmLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyw4QkFBOEIsU0FBUyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ2pFLCtDQUErQztnQkFDakQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxrQ0FBa0MsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM5RCxDQUFDIn0=
395
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NraWxscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQTZCQSwwQ0E4Q0M7QUFhRCw4Q0FJQztBQUtELGtEQStCQztBQUtELHNEQUVDO0FBTUQsNENBZUM7QUFLRCxrQ0FHQztBQWdCRCw0Q0F3QkM7QUFLRCxrREFzREM7QUFxQkQsb0RBa0JDO0FBS0QsNENBc0JDO0FBS0Qsb0NBOENDO0FBd0RELHdFQVNDO0FBS0QsZ0ZBTUM7QUFNRCwwREFvREM7QUFsZ0JELDJCQUE0QztBQUM1QyxzREFBeUI7QUFDekIsc0RBQXlCO0FBQ3pCLDBEQUE2QjtBQUc3Qix1RUFBK0M7QUFFL0MsNERBQTBDO0FBQzFDLCtDQUl1QjtBQUN2Qiw4RkFBcUU7QUFTckU7Ozs7O0dBS0c7QUFDSCxTQUF3Qix1QkFBdUIsQ0FBQyxRQUFnQjtJQUM5RCxNQUFNLE1BQU0sR0FHUjtRQUNGLDBCQUEwQixFQUFFLElBQUk7UUFDaEMscUJBQXFCLEVBQUUsSUFBSTtLQUM1QixDQUFDO0lBRUYsSUFBSSxDQUFDO1FBQ0gsMkNBQTJDO1FBQzNDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLHFCQUFxQixHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUNyQyxRQUFRLEVBQ1IsbUJBQWUsQ0FBQyxhQUFhLENBQzlCLENBQUM7WUFFRix1REFBdUQ7WUFDdkQsSUFBSSxDQUFDLGlCQUFFLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztnQkFDMUMsaUJBQUUsQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBRUQsTUFBTSxDQUFDLDBCQUEwQixHQUFHLHFCQUFxQixDQUFDO1FBQzVELENBQUM7UUFFRCxxRUFBcUU7UUFDckUsTUFBTSxXQUFXLEdBQUcsaUJBQUUsQ0FB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
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BraveWebSearchTool = void 0;
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
4
  const v4_1 = require("zod/v4");
6
5
  const PSAgentTool_1 = require("../PSAgentTool");
7
6
  class BraveWebSearchTool extends PSAgentTool_1.PSAgentTool {
@@ -89,4 +88,4 @@ class BraveWebSearchTool extends PSAgentTool_1.PSAgentTool {
89
88
  }
90
89
  }
91
90
  exports.BraveWebSearchTool = BraveWebSearchTool;
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJhdmVXZWJTZWFyY2hUb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90b29scy9CcmF2ZVdlYlNlYXJjaFRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQXVEO0FBQ3ZELCtCQUEyQjtBQUczQixnREFBNkM7QUFFN0MsTUFBYSxrQkFBbUIsU0FBUSx5QkFBVztJQUMxQyxNQUFNLENBQVUsUUFBUSxHQUFHLHVCQUF1QixDQUFDO0lBQzFELGlCQUFpQixDQUFVO0lBQzNCLFlBQVksT0FBdUM7UUFDakQsS0FBSyxDQUFDO1lBQ0osSUFBSSxFQUFFLGtCQUFrQixDQUFDLFFBQVE7WUFDakMsV0FBVyxFQUFFLHVDQUF1QztZQUNwRCxJQUFJLEVBQUUsS0FBSztZQUNYLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLElBQUksRUFBRSxJQUFJO1lBQ1YsV0FBVyxFQUFFO2dCQUNYLEdBQUcsRUFBRSxvQkFBb0Isa0JBQWtCLENBQUMsUUFBUSxFQUFFO2dCQUN0RCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxXQUFXLEVBQUUsTUFBQyxDQUFDLFlBQVksQ0FDekIsTUFBQztxQkFDRSxNQUFNLENBQUM7b0JBQ04sS0FBSyxFQUFFLE1BQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7d0JBQ2xCLEtBQUssRUFBRSxjQUFjO3dCQUNyQixXQUFXLEVBQUUsa0NBQWtDO3FCQUNoRCxDQUFDO2lCQUNILENBQUM7cUJBQ0QsSUFBSSxDQUFDO29CQUNKLEtBQUssRUFBRSxxQkFBcUI7b0JBQzVCLFdBQVcsRUFBRSxrREFBa0Q7aUJBQ2hFLENBQUMsRUFDSixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FDaEI7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7SUFDckQsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FB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
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJhdmVXZWJTZWFyY2hUb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90b29scy9CcmF2ZVdlYlNlYXJjaFRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQTJCO0FBRzNCLGdEQUE2QztBQUU3QyxNQUFhLGtCQUFtQixTQUFRLHlCQUFXO0lBQzFDLE1BQU0sQ0FBVSxRQUFRLEdBQUcsdUJBQXVCLENBQUM7SUFDMUQsaUJBQWlCLENBQVU7SUFDM0IsWUFBWSxPQUF1QztRQUNqRCxLQUFLLENBQUM7WUFDSixJQUFJLEVBQUUsa0JBQWtCLENBQUMsUUFBUTtZQUNqQyxXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELElBQUksRUFBRSxLQUFLO1lBQ1gsZUFBZSxFQUFFLElBQUk7WUFDckIsSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUU7Z0JBQ1gsR0FBRyxFQUFFLG9CQUFvQixrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3RELE1BQU0sRUFBRSxNQUFNO2dCQUNkLFdBQVcsRUFBRSxNQUFDLENBQUMsWUFBWSxDQUN6QixNQUFDO3FCQUNFLE1BQU0sQ0FBQztvQkFDTixLQUFLLEVBQUUsTUFBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzt3QkFDbEIsS0FBSyxFQUFFLGNBQWM7d0JBQ3JCLFdBQVcsRUFBRSxrQ0FBa0M7cUJBQ2hELENBQUM7aUJBQ0gsQ0FBQztxQkFDRCxJQUFJLENBQUM7b0JBQ0osS0FBSyxFQUFFLHFCQUFxQjtvQkFDNUIsV0FBVyxFQUFFLGtEQUFrRDtpQkFDaEUsQ0FBQyxFQUNKLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUNoQjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUNyRCxDQUFDO0lBRU0sS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFhO1FBQ3ZDLElBQUks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