psadk 1.4.8 → 1.5.0

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 (205) 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/tools/BraveWebSearchTool.js +1 -2
  62. package/build/main/lib/tools/PSArtifactTool.js +1 -2
  63. package/build/main/lib/tools/PSClarifyTool.js +1 -2
  64. package/build/main/lib/tools/PSCommandLineTool.js +1 -2
  65. package/build/main/lib/tools/PSMemoryTool.js +1 -2
  66. package/build/main/lib/tools/PSReadFileTool.js +1 -2
  67. package/build/main/lib/tools/PSRetrievalTool.js +1 -2
  68. package/build/main/lib/tools/PSSkillTool.js +1 -2
  69. package/build/main/lib/tools/PSSubAgentTool.js +1 -1
  70. package/build/main/lib/tools/PSWriteFileTool.js +1 -2
  71. package/build/main/lib/tools/TodoTool.js +1 -2
  72. package/build/main/lib/utils/debuglogger.js +1 -2
  73. package/build/main/lib/utils/helpers.js +1 -6
  74. package/build/module/index.d.ts +1 -0
  75. package/build/module/lib/PSAI.js +1 -2
  76. package/build/module/lib/PSAgent.d.ts +46 -44
  77. package/build/module/lib/PSAgent.js +176 -961
  78. package/build/module/lib/PSAgentConfig.d.ts +110 -26
  79. package/build/module/lib/PSAgentLogger.js +1 -2
  80. package/build/module/lib/PSAgentTool.d.ts +8 -3
  81. package/build/module/lib/PSAgentTool.js +3 -3
  82. package/build/module/lib/agent-core/{agent-loop.d.ts → src/agent-loop.d.ts} +1 -1
  83. package/build/module/lib/agent-core/src/agent-loop.js +514 -0
  84. package/build/{main/lib/agent-core → module/lib/agent-core/src}/agent.d.ts +2 -2
  85. package/build/module/lib/agent-core/src/agent.js +419 -0
  86. package/build/module/lib/agent-core/{harness → src/harness}/agent-harness.d.ts +36 -26
  87. package/build/module/lib/agent-core/src/harness/agent-harness.js +1028 -0
  88. package/build/module/lib/agent-core/src/harness/compaction/branch-summarization.d.ts +52 -0
  89. package/build/module/lib/agent-core/src/harness/compaction/branch-summarization.js +182 -0
  90. package/build/module/lib/agent-core/src/harness/compaction/compaction.d.ts +94 -0
  91. package/build/module/lib/agent-core/src/harness/compaction/compaction.js +550 -0
  92. package/build/module/lib/agent-core/src/harness/compaction/utils.d.ts +24 -0
  93. package/build/module/lib/agent-core/src/harness/compaction/utils.js +131 -0
  94. package/build/module/lib/agent-core/src/harness/env/nodejs.d.ts +50 -0
  95. package/build/module/lib/agent-core/src/harness/env/nodejs.js +494 -0
  96. package/build/module/lib/agent-core/{harness → src/harness}/messages.d.ts +2 -2
  97. package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/messages.js +1 -1
  98. package/build/module/lib/agent-core/{harness → src/harness}/prompt-templates.d.ts +4 -1
  99. package/build/module/lib/agent-core/src/harness/prompt-templates.js +235 -0
  100. 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
  101. package/build/module/lib/agent-core/src/harness/session/jsonl-repo.js +106 -0
  102. 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
  103. package/build/module/lib/agent-core/src/harness/session/jsonl-storage.js +234 -0
  104. package/build/module/lib/agent-core/{harness/session/repo/memory.d.ts → src/harness/session/memory-repo.d.ts} +1 -1
  105. package/build/module/lib/agent-core/src/harness/session/memory-repo.js +45 -0
  106. package/build/module/lib/agent-core/{harness/session/storage/memory.d.ts → src/harness/session/memory-storage.d.ts} +4 -5
  107. package/build/module/lib/agent-core/src/harness/session/memory-storage.js +116 -0
  108. package/build/module/lib/agent-core/{harness/session/repo/shared.d.ts → src/harness/session/repo-utils.d.ts} +3 -2
  109. package/build/module/lib/agent-core/src/harness/session/repo-utils.js +39 -0
  110. package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/session/session.d.ts +3 -2
  111. package/build/module/lib/agent-core/src/harness/session/session.js +213 -0
  112. package/build/module/lib/agent-core/src/harness/session/uuid.d.ts +1 -0
  113. package/build/module/lib/agent-core/src/harness/session/uuid.js +54 -0
  114. package/build/module/lib/agent-core/{harness → src/harness}/skills.d.ts +4 -1
  115. package/build/module/lib/agent-core/src/harness/skills.js +353 -0
  116. package/build/module/lib/agent-core/{harness → src/harness}/system-prompt.d.ts +1 -1
  117. package/build/module/lib/agent-core/src/harness/system-prompt.js +30 -0
  118. package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/types.d.ts +160 -70
  119. package/build/module/lib/agent-core/src/harness/types.js +94 -0
  120. package/build/module/lib/agent-core/{harness → src/harness}/utils/shell-output.d.ts +2 -2
  121. package/build/module/lib/agent-core/src/harness/utils/shell-output.js +134 -0
  122. package/build/module/lib/agent-core/src/harness/utils/truncate.js +294 -0
  123. package/build/module/lib/agent-core/src/index.d.ts +19 -0
  124. package/build/module/lib/agent-core/src/index.js +25 -0
  125. package/build/module/lib/agent-core/src/node.d.ts +2 -0
  126. package/build/module/lib/agent-core/src/node.js +3 -0
  127. package/build/module/lib/agent-core/{proxy.js → src/proxy.js} +3 -2
  128. package/build/{main/lib/agent-core → module/lib/agent-core/src}/types.d.ts +13 -1
  129. package/build/{main/lib/agent-core → module/lib/agent-core/src}/types.js +1 -1
  130. package/build/module/lib/localAgent.d.ts +35 -0
  131. package/build/module/lib/localAgent.js +329 -0
  132. package/build/module/lib/remoteAgent.d.ts +25 -0
  133. package/build/module/lib/remoteAgent.js +311 -0
  134. package/build/module/lib/tools/BraveWebSearchTool.js +1 -2
  135. package/build/module/lib/tools/PSArtifactTool.js +1 -2
  136. package/build/module/lib/tools/PSClarifyTool.js +1 -2
  137. package/build/module/lib/tools/PSCommandLineTool.js +1 -2
  138. package/build/module/lib/tools/PSMemoryTool.js +1 -2
  139. package/build/module/lib/tools/PSReadFileTool.js +1 -2
  140. package/build/module/lib/tools/PSRetrievalTool.js +1 -2
  141. package/build/module/lib/tools/PSSkillTool.js +1 -2
  142. package/build/module/lib/tools/PSSubAgentTool.js +1 -1
  143. package/build/module/lib/tools/PSWriteFileTool.js +1 -2
  144. package/build/module/lib/tools/TodoTool.js +1 -2
  145. package/build/module/lib/utils/debuglogger.js +1 -2
  146. package/build/module/lib/utils/helpers.js +1 -6
  147. package/package.json +2 -1
  148. package/build/main/lib/agent-core/agent-loop.js +0 -483
  149. package/build/main/lib/agent-core/agent.js +0 -419
  150. package/build/main/lib/agent-core/harness/agent-harness.js +0 -772
  151. package/build/main/lib/agent-core/harness/compaction/branch-summarization.d.ts +0 -87
  152. package/build/main/lib/agent-core/harness/compaction/branch-summarization.js +0 -246
  153. package/build/main/lib/agent-core/harness/compaction/compaction.d.ts +0 -121
  154. package/build/main/lib/agent-core/harness/compaction/compaction.js +0 -637
  155. package/build/main/lib/agent-core/harness/compaction/utils.d.ts +0 -37
  156. package/build/main/lib/agent-core/harness/compaction/utils.js +0 -153
  157. package/build/main/lib/agent-core/harness/env/nodejs.d.ts +0 -43
  158. package/build/main/lib/agent-core/harness/env/nodejs.js +0 -353
  159. package/build/main/lib/agent-core/harness/execution-env.d.ts +0 -3
  160. package/build/main/lib/agent-core/harness/execution-env.js +0 -3
  161. package/build/main/lib/agent-core/harness/prompt-templates.js +0 -204
  162. package/build/main/lib/agent-core/harness/session/repo/jsonl.js +0 -98
  163. package/build/main/lib/agent-core/harness/session/repo/memory.js +0 -46
  164. package/build/main/lib/agent-core/harness/session/repo/shared.js +0 -31
  165. package/build/main/lib/agent-core/harness/session/session.js +0 -199
  166. package/build/main/lib/agent-core/harness/session/storage/jsonl.js +0 -170
  167. package/build/main/lib/agent-core/harness/session/storage/memory.js +0 -94
  168. package/build/main/lib/agent-core/harness/skills.js +0 -266
  169. package/build/main/lib/agent-core/harness/system-prompt.js +0 -30
  170. package/build/main/lib/agent-core/harness/types.js +0 -16
  171. package/build/main/lib/agent-core/harness/utils/shell-output.js +0 -101
  172. package/build/main/lib/agent-core/harness/utils/truncate.js +0 -208
  173. package/build/main/lib/agent-core/index.d.ts +0 -19
  174. package/build/main/lib/agent-core/index.js +0 -25
  175. package/build/module/lib/agent-core/agent-loop.js +0 -483
  176. package/build/module/lib/agent-core/agent.js +0 -419
  177. package/build/module/lib/agent-core/harness/agent-harness.js +0 -772
  178. package/build/module/lib/agent-core/harness/compaction/branch-summarization.d.ts +0 -87
  179. package/build/module/lib/agent-core/harness/compaction/branch-summarization.js +0 -246
  180. package/build/module/lib/agent-core/harness/compaction/compaction.d.ts +0 -121
  181. package/build/module/lib/agent-core/harness/compaction/compaction.js +0 -637
  182. package/build/module/lib/agent-core/harness/compaction/utils.d.ts +0 -37
  183. package/build/module/lib/agent-core/harness/compaction/utils.js +0 -153
  184. package/build/module/lib/agent-core/harness/env/nodejs.d.ts +0 -43
  185. package/build/module/lib/agent-core/harness/env/nodejs.js +0 -353
  186. package/build/module/lib/agent-core/harness/execution-env.d.ts +0 -3
  187. package/build/module/lib/agent-core/harness/execution-env.js +0 -3
  188. package/build/module/lib/agent-core/harness/prompt-templates.js +0 -204
  189. package/build/module/lib/agent-core/harness/session/repo/jsonl.js +0 -98
  190. package/build/module/lib/agent-core/harness/session/repo/memory.js +0 -46
  191. package/build/module/lib/agent-core/harness/session/repo/shared.js +0 -31
  192. package/build/module/lib/agent-core/harness/session/session.js +0 -199
  193. package/build/module/lib/agent-core/harness/session/storage/jsonl.js +0 -170
  194. package/build/module/lib/agent-core/harness/session/storage/memory.js +0 -94
  195. package/build/module/lib/agent-core/harness/skills.js +0 -266
  196. package/build/module/lib/agent-core/harness/system-prompt.js +0 -30
  197. package/build/module/lib/agent-core/harness/types.js +0 -16
  198. package/build/module/lib/agent-core/harness/utils/shell-output.js +0 -101
  199. package/build/module/lib/agent-core/harness/utils/truncate.js +0 -208
  200. package/build/module/lib/agent-core/index.d.ts +0 -19
  201. package/build/module/lib/agent-core/index.js +0 -25
  202. /package/build/main/lib/agent-core/{harness → src/harness}/utils/truncate.d.ts +0 -0
  203. /package/build/main/lib/agent-core/{proxy.d.ts → src/proxy.d.ts} +0 -0
  204. /package/build/module/lib/agent-core/{harness → src/harness}/utils/truncate.d.ts +0 -0
  205. /package/build/module/lib/agent-core/{proxy.d.ts → src/proxy.d.ts} +0 -0
@@ -0,0 +1,131 @@
1
+ /** Create an empty file-operation accumulator. */
2
+ export function createFileOps() {
3
+ return {
4
+ read: new Set(),
5
+ written: new Set(),
6
+ edited: new Set(),
7
+ };
8
+ }
9
+ /** Add file operations from assistant tool calls to an accumulator. */
10
+ export function extractFileOpsFromMessage(message, fileOps) {
11
+ if (message.role !== 'assistant')
12
+ return;
13
+ if (!('content' in message) || !Array.isArray(message.content))
14
+ return;
15
+ for (const block of message.content) {
16
+ if (typeof block !== 'object' || block === null)
17
+ continue;
18
+ if (!('type' in block) || block.type !== 'toolCall')
19
+ continue;
20
+ if (!('arguments' in block) || !('name' in block))
21
+ continue;
22
+ const args = block.arguments;
23
+ if (!args)
24
+ continue;
25
+ const path = typeof args.path === 'string' ? args.path : undefined;
26
+ if (!path)
27
+ continue;
28
+ switch (block.name) {
29
+ case 'read':
30
+ fileOps.read.add(path);
31
+ break;
32
+ case 'write':
33
+ fileOps.written.add(path);
34
+ break;
35
+ case 'edit':
36
+ fileOps.edited.add(path);
37
+ break;
38
+ }
39
+ }
40
+ }
41
+ /** Compute sorted read-only and modified file lists from accumulated operations. */
42
+ export function computeFileLists(fileOps) {
43
+ const modified = new Set([...fileOps.edited, ...fileOps.written]);
44
+ const readOnly = [...fileOps.read].filter((f) => !modified.has(f)).sort();
45
+ const modifiedFiles = [...modified].sort();
46
+ return { readFiles: readOnly, modifiedFiles };
47
+ }
48
+ /** Format file lists as summary metadata tags. */
49
+ export function formatFileOperations(readFiles, modifiedFiles) {
50
+ const sections = [];
51
+ if (readFiles.length > 0) {
52
+ sections.push(`<read-files>\n${readFiles.join('\n')}\n</read-files>`);
53
+ }
54
+ if (modifiedFiles.length > 0) {
55
+ sections.push(`<modified-files>\n${modifiedFiles.join('\n')}\n</modified-files>`);
56
+ }
57
+ if (sections.length === 0)
58
+ return '';
59
+ return `\n\n${sections.join('\n\n')}`;
60
+ }
61
+ const TOOL_RESULT_MAX_CHARS = 2000;
62
+ function safeJsonStringify(value) {
63
+ try {
64
+ return JSON.stringify(value) ?? 'undefined';
65
+ }
66
+ catch {
67
+ return '[unserializable]';
68
+ }
69
+ }
70
+ function truncateForSummary(text, maxChars) {
71
+ if (text.length <= maxChars)
72
+ return text;
73
+ const truncatedChars = text.length - maxChars;
74
+ return `${text.slice(0, maxChars)}\n\n[... ${truncatedChars} more characters truncated]`;
75
+ }
76
+ /** Serialize LLM messages to plain text for summarization prompts. */
77
+ export function serializeConversation(messages) {
78
+ const parts = [];
79
+ for (const msg of messages) {
80
+ if (msg.role === 'user') {
81
+ const content = typeof msg.content === 'string'
82
+ ? msg.content
83
+ : msg.content
84
+ .filter((c) => c.type === 'text')
85
+ .map((c) => c.text)
86
+ .join('');
87
+ if (content)
88
+ parts.push(`[User]: ${content}`);
89
+ }
90
+ else if (msg.role === 'assistant') {
91
+ const textParts = [];
92
+ const thinkingParts = [];
93
+ const toolCalls = [];
94
+ for (const block of msg.content) {
95
+ if (block.type === 'text') {
96
+ textParts.push(block.text);
97
+ }
98
+ else if (block.type === 'thinking') {
99
+ thinkingParts.push(block.thinking);
100
+ }
101
+ else if (block.type === 'toolCall') {
102
+ const args = block.arguments;
103
+ const argsStr = Object.entries(args)
104
+ .map(([k, v]) => `${k}=${safeJsonStringify(v)}`)
105
+ .join(', ');
106
+ toolCalls.push(`${block.name}(${argsStr})`);
107
+ }
108
+ }
109
+ if (thinkingParts.length > 0) {
110
+ parts.push(`[Assistant thinking]: ${thinkingParts.join('\n')}`);
111
+ }
112
+ if (textParts.length > 0) {
113
+ parts.push(`[Assistant]: ${textParts.join('\n')}`);
114
+ }
115
+ if (toolCalls.length > 0) {
116
+ parts.push(`[Assistant tool calls]: ${toolCalls.join('; ')}`);
117
+ }
118
+ }
119
+ else if (msg.role === 'toolResult') {
120
+ const content = msg.content
121
+ .filter((c) => c.type === 'text')
122
+ .map((c) => c.text)
123
+ .join('');
124
+ if (content) {
125
+ parts.push(`[Tool result]: ${truncateForSummary(content, TOOL_RESULT_MAX_CHARS)}`);
126
+ }
127
+ }
128
+ }
129
+ return parts.join('\n\n');
130
+ }
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2FnZW50LWNvcmUvc3JjL2hhcm5lc3MvY29tcGFjdGlvbi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxrREFBa0Q7QUFDbEQsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNmLE9BQU8sRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNsQixNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUU7S0FDbEIsQ0FBQztBQUNKLENBQUM7QUFFRCx1RUFBdUU7QUFDdkUsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxPQUFxQixFQUNyQixPQUF1QjtJQUV2QixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVztRQUFFLE9BQU87SUFDekMsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQUUsT0FBTztJQUV2RSxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSTtZQUFFLFNBQVM7UUFDMUQsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVTtZQUFFLFNBQVM7UUFDOUQsSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1lBQUUsU0FBUztRQUU1RCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsU0FBZ0QsQ0FBQztRQUNwRSxJQUFJLENBQUMsSUFBSTtZQUFFLFNBQVM7UUFFcEIsTUFBTSxJQUFJLEdBQUcsT0FBTyxJQUFJ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
@@ -0,0 +1,50 @@
1
+ import { type ExecutionEnv, ExecutionError, FileError, type FileInfo, type Result } from '../types.ts';
2
+ export declare class NodeExecutionEnv implements ExecutionEnv {
3
+ cwd: string;
4
+ private shellPath?;
5
+ private shellEnv?;
6
+ constructor(options: {
7
+ cwd: string;
8
+ shellPath?: string;
9
+ shellEnv?: NodeJS.ProcessEnv;
10
+ });
11
+ absolutePath(path: string): Promise<Result<string, FileError>>;
12
+ joinPath(parts: string[]): Promise<Result<string, FileError>>;
13
+ exec(command: string, options?: {
14
+ cwd?: string;
15
+ env?: Record<string, string>;
16
+ timeout?: number;
17
+ abortSignal?: AbortSignal;
18
+ onStdout?: (chunk: string) => void;
19
+ onStderr?: (chunk: string) => void;
20
+ }): Promise<Result<{
21
+ stdout: string;
22
+ stderr: string;
23
+ exitCode: number;
24
+ }, ExecutionError>>;
25
+ readTextFile(path: string, abortSignal?: AbortSignal): Promise<Result<string, FileError>>;
26
+ readTextLines(path: string, options?: {
27
+ maxLines?: number;
28
+ abortSignal?: AbortSignal;
29
+ }): Promise<Result<string[], FileError>>;
30
+ readBinaryFile(path: string, abortSignal?: AbortSignal): Promise<Result<Uint8Array, FileError>>;
31
+ writeFile(path: string, content: string | Uint8Array, abortSignal?: AbortSignal): Promise<Result<void, FileError>>;
32
+ appendFile(path: string, content: string | Uint8Array): Promise<Result<void, FileError>>;
33
+ fileInfo(path: string): Promise<Result<FileInfo, FileError>>;
34
+ listDir(path: string, abortSignal?: AbortSignal): Promise<Result<FileInfo[], FileError>>;
35
+ canonicalPath(path: string): Promise<Result<string, FileError>>;
36
+ exists(path: string): Promise<Result<boolean, FileError>>;
37
+ createDir(path: string, options?: {
38
+ recursive?: boolean;
39
+ }): Promise<Result<void, FileError>>;
40
+ remove(path: string, options?: {
41
+ recursive?: boolean;
42
+ force?: boolean;
43
+ }): Promise<Result<void, FileError>>;
44
+ createTempDir(prefix?: string): Promise<Result<string, FileError>>;
45
+ createTempFile(options?: {
46
+ prefix?: string;
47
+ suffix?: string;
48
+ }): Promise<Result<string, FileError>>;
49
+ cleanup(): Promise<void>;
50
+ }