@diff-review-system/drs 2.2.1 → 3.0.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 (240) hide show
  1. package/README.md +228 -92
  2. package/dist/ci/runner.d.ts.map +1 -1
  3. package/dist/ci/runner.js +19 -22
  4. package/dist/ci/runner.js.map +1 -1
  5. package/dist/cli/describe-mr.d.ts.map +1 -1
  6. package/dist/cli/describe-mr.js +39 -20
  7. package/dist/cli/describe-mr.js.map +1 -1
  8. package/dist/cli/describe-pr.d.ts.map +1 -1
  9. package/dist/cli/describe-pr.js +39 -20
  10. package/dist/cli/describe-pr.js.map +1 -1
  11. package/dist/cli/index.js +11 -7
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/cli/init.d.ts.map +1 -1
  14. package/dist/cli/init.js +30 -2
  15. package/dist/cli/init.js.map +1 -1
  16. package/dist/cli/post-comments.d.ts.map +1 -1
  17. package/dist/cli/post-comments.js +5 -5
  18. package/dist/cli/post-comments.js.map +1 -1
  19. package/dist/cli/review-local.d.ts.map +1 -1
  20. package/dist/cli/review-local.integration.test.d.ts +2 -0
  21. package/dist/cli/review-local.integration.test.d.ts.map +1 -0
  22. package/dist/cli/review-local.integration.test.js +343 -0
  23. package/dist/cli/review-local.integration.test.js.map +1 -0
  24. package/dist/cli/review-local.js +5 -4
  25. package/dist/cli/review-local.js.map +1 -1
  26. package/dist/cli/review-local.live.e2e.test.d.ts +2 -0
  27. package/dist/cli/review-local.live.e2e.test.d.ts.map +1 -0
  28. package/dist/cli/review-local.live.e2e.test.js +154 -0
  29. package/dist/cli/review-local.live.e2e.test.js.map +1 -0
  30. package/dist/cli/review-local.test.d.ts +2 -0
  31. package/dist/cli/review-local.test.d.ts.map +1 -0
  32. package/dist/cli/review-local.test.js +164 -0
  33. package/dist/cli/review-local.test.js.map +1 -0
  34. package/dist/cli/review-mr.d.ts +1 -1
  35. package/dist/cli/review-mr.d.ts.map +1 -1
  36. package/dist/cli/review-mr.js +92 -17
  37. package/dist/cli/review-mr.js.map +1 -1
  38. package/dist/cli/review-mr.test.d.ts +2 -0
  39. package/dist/cli/review-mr.test.d.ts.map +1 -0
  40. package/dist/cli/review-mr.test.js +142 -0
  41. package/dist/cli/review-mr.test.js.map +1 -0
  42. package/dist/cli/review-pr.d.ts +1 -1
  43. package/dist/cli/review-pr.d.ts.map +1 -1
  44. package/dist/cli/review-pr.js +96 -13
  45. package/dist/cli/review-pr.js.map +1 -1
  46. package/dist/cli/review-pr.test.d.ts +2 -0
  47. package/dist/cli/review-pr.test.d.ts.map +1 -0
  48. package/dist/cli/review-pr.test.js +137 -0
  49. package/dist/cli/review-pr.test.js.map +1 -0
  50. package/dist/cli/show-changes.js +4 -4
  51. package/dist/github/platform-adapter.js +2 -2
  52. package/dist/gitlab/client.js +1 -1
  53. package/dist/lib/code-quality-report.js +1 -1
  54. package/dist/lib/comment-formatter.d.ts +2 -1
  55. package/dist/lib/comment-formatter.d.ts.map +1 -1
  56. package/dist/lib/comment-formatter.js +33 -1
  57. package/dist/lib/comment-formatter.js.map +1 -1
  58. package/dist/lib/comment-formatter.test.js +43 -0
  59. package/dist/lib/comment-formatter.test.js.map +1 -1
  60. package/dist/lib/comment-manager.d.ts.map +1 -1
  61. package/dist/lib/comment-manager.js +4 -3
  62. package/dist/lib/comment-manager.js.map +1 -1
  63. package/dist/lib/comment-poster.d.ts +2 -1
  64. package/dist/lib/comment-poster.d.ts.map +1 -1
  65. package/dist/lib/comment-poster.js +2 -2
  66. package/dist/lib/comment-poster.js.map +1 -1
  67. package/dist/lib/comment-poster.test.js +27 -11
  68. package/dist/lib/comment-poster.test.js.map +1 -1
  69. package/dist/lib/config-model-overrides.test.d.ts +1 -1
  70. package/dist/lib/config-model-overrides.test.js +2 -2
  71. package/dist/lib/config-model-overrides.test.js.map +1 -1
  72. package/dist/lib/config.d.ts +34 -7
  73. package/dist/lib/config.d.ts.map +1 -1
  74. package/dist/lib/config.js +35 -13
  75. package/dist/lib/config.js.map +1 -1
  76. package/dist/lib/config.test.js +16 -0
  77. package/dist/lib/config.test.js.map +1 -1
  78. package/dist/lib/context-compression.d.ts +27 -1
  79. package/dist/lib/context-compression.d.ts.map +1 -1
  80. package/dist/lib/context-compression.js +106 -4
  81. package/dist/lib/context-compression.js.map +1 -1
  82. package/dist/lib/context-compression.test.js +305 -1
  83. package/dist/lib/context-compression.test.js.map +1 -1
  84. package/dist/lib/context-loader.d.ts +3 -2
  85. package/dist/lib/context-loader.d.ts.map +1 -1
  86. package/dist/lib/context-loader.js +11 -11
  87. package/dist/lib/context-loader.js.map +1 -1
  88. package/dist/lib/description-executor.d.ts +19 -2
  89. package/dist/lib/description-executor.d.ts.map +1 -1
  90. package/dist/lib/description-executor.js +52 -21
  91. package/dist/lib/description-executor.js.map +1 -1
  92. package/dist/lib/description-executor.test.d.ts +2 -0
  93. package/dist/lib/description-executor.test.d.ts.map +1 -0
  94. package/dist/lib/description-executor.test.js +120 -0
  95. package/dist/lib/description-executor.test.js.map +1 -0
  96. package/dist/lib/description-formatter.d.ts +8 -3
  97. package/dist/lib/description-formatter.d.ts.map +1 -1
  98. package/dist/lib/description-formatter.js +88 -13
  99. package/dist/lib/description-formatter.js.map +1 -1
  100. package/dist/lib/description-formatter.test.d.ts +2 -0
  101. package/dist/lib/description-formatter.test.d.ts.map +1 -0
  102. package/dist/lib/description-formatter.test.js +57 -0
  103. package/dist/lib/description-formatter.test.js.map +1 -0
  104. package/dist/lib/diff-parser.test.d.ts +2 -0
  105. package/dist/lib/diff-parser.test.d.ts.map +1 -0
  106. package/dist/lib/diff-parser.test.js +335 -0
  107. package/dist/lib/diff-parser.test.js.map +1 -0
  108. package/dist/lib/exit.d.ts +35 -0
  109. package/dist/lib/exit.d.ts.map +1 -0
  110. package/dist/lib/exit.js +53 -0
  111. package/dist/lib/exit.js.map +1 -0
  112. package/dist/lib/exit.test.d.ts +2 -0
  113. package/dist/lib/exit.test.d.ts.map +1 -0
  114. package/dist/lib/exit.test.js +120 -0
  115. package/dist/lib/exit.test.js.map +1 -0
  116. package/dist/lib/format-utils.d.ts +3 -0
  117. package/dist/lib/format-utils.d.ts.map +1 -0
  118. package/dist/lib/format-utils.js +7 -0
  119. package/dist/lib/format-utils.js.map +1 -0
  120. package/dist/lib/json-output.d.ts +4 -1
  121. package/dist/lib/json-output.d.ts.map +1 -1
  122. package/dist/lib/json-output.js +2 -1
  123. package/dist/lib/json-output.js.map +1 -1
  124. package/dist/lib/json-output.test.d.ts +2 -0
  125. package/dist/lib/json-output.test.d.ts.map +1 -0
  126. package/dist/lib/json-output.test.js +135 -0
  127. package/dist/lib/json-output.test.js.map +1 -0
  128. package/dist/lib/logger.d.ts +10 -2
  129. package/dist/lib/logger.d.ts.map +1 -1
  130. package/dist/lib/logger.js +22 -4
  131. package/dist/lib/logger.js.map +1 -1
  132. package/dist/lib/logger.test.d.ts +2 -0
  133. package/dist/lib/logger.test.d.ts.map +1 -0
  134. package/dist/lib/logger.test.js +324 -0
  135. package/dist/lib/logger.test.js.map +1 -0
  136. package/dist/lib/position-validator.test.d.ts +2 -0
  137. package/dist/lib/position-validator.test.d.ts.map +1 -0
  138. package/dist/lib/position-validator.test.js +128 -0
  139. package/dist/lib/position-validator.test.js.map +1 -0
  140. package/dist/lib/repository-validator.js +1 -1
  141. package/dist/lib/review-core.d.ts +9 -4
  142. package/dist/lib/review-core.d.ts.map +1 -1
  143. package/dist/lib/review-core.js +207 -112
  144. package/dist/lib/review-core.js.map +1 -1
  145. package/dist/lib/review-core.test.js +76 -30
  146. package/dist/lib/review-core.test.js.map +1 -1
  147. package/dist/lib/review-orchestrator.d.ts +12 -7
  148. package/dist/lib/review-orchestrator.d.ts.map +1 -1
  149. package/dist/lib/review-orchestrator.js +78 -22
  150. package/dist/lib/review-orchestrator.js.map +1 -1
  151. package/dist/lib/review-orchestrator.test.js +160 -42
  152. package/dist/lib/review-orchestrator.test.js.map +1 -1
  153. package/dist/lib/review-parser.test.d.ts +2 -0
  154. package/dist/lib/review-parser.test.d.ts.map +1 -0
  155. package/dist/lib/review-parser.test.js +130 -0
  156. package/dist/lib/review-parser.test.js.map +1 -0
  157. package/dist/lib/review-usage.d.ts +32 -0
  158. package/dist/lib/review-usage.d.ts.map +1 -0
  159. package/dist/lib/review-usage.js +72 -0
  160. package/dist/lib/review-usage.js.map +1 -0
  161. package/dist/lib/review-usage.test.d.ts +2 -0
  162. package/dist/lib/review-usage.test.d.ts.map +1 -0
  163. package/dist/lib/review-usage.test.js +83 -0
  164. package/dist/lib/review-usage.test.js.map +1 -0
  165. package/dist/lib/unified-review-executor.d.ts +6 -2
  166. package/dist/lib/unified-review-executor.d.ts.map +1 -1
  167. package/dist/lib/unified-review-executor.js +54 -28
  168. package/dist/lib/unified-review-executor.js.map +1 -1
  169. package/dist/lib/unified-review-executor.test.js +138 -16
  170. package/dist/lib/unified-review-executor.test.js.map +1 -1
  171. package/dist/lib/write-json-output.test.d.ts +2 -0
  172. package/dist/lib/write-json-output.test.d.ts.map +1 -0
  173. package/dist/lib/write-json-output.test.js +259 -0
  174. package/dist/lib/write-json-output.test.js.map +1 -0
  175. package/dist/pi/sdk.d.ts +94 -0
  176. package/dist/pi/sdk.d.ts.map +1 -0
  177. package/dist/pi/sdk.js +486 -0
  178. package/dist/pi/sdk.js.map +1 -0
  179. package/dist/pi/sdk.test.d.ts +2 -0
  180. package/dist/pi/sdk.test.d.ts.map +1 -0
  181. package/dist/pi/sdk.test.js +331 -0
  182. package/dist/pi/sdk.test.js.map +1 -0
  183. package/dist/{opencode → runtime}/agent-loader.d.ts +7 -5
  184. package/dist/runtime/agent-loader.d.ts.map +1 -0
  185. package/dist/{opencode → runtime}/agent-loader.js +24 -19
  186. package/dist/runtime/agent-loader.js.map +1 -0
  187. package/dist/runtime/agent-loader.test.d.ts +2 -0
  188. package/dist/runtime/agent-loader.test.d.ts.map +1 -0
  189. package/dist/runtime/agent-loader.test.js +280 -0
  190. package/dist/runtime/agent-loader.test.js.map +1 -0
  191. package/dist/runtime/built-in-paths.d.ts +2 -0
  192. package/dist/runtime/built-in-paths.d.ts.map +1 -0
  193. package/dist/runtime/built-in-paths.js +14 -0
  194. package/dist/runtime/built-in-paths.js.map +1 -0
  195. package/dist/{opencode → runtime}/client.d.ts +35 -18
  196. package/dist/runtime/client.d.ts.map +1 -0
  197. package/dist/runtime/client.js +486 -0
  198. package/dist/runtime/client.js.map +1 -0
  199. package/dist/{opencode → runtime}/client.test.d.ts.map +1 -1
  200. package/dist/runtime/client.test.js +392 -0
  201. package/dist/runtime/client.test.js.map +1 -0
  202. package/dist/runtime/path-config.d.ts +8 -0
  203. package/dist/runtime/path-config.d.ts.map +1 -0
  204. package/dist/runtime/path-config.js +68 -0
  205. package/dist/runtime/path-config.js.map +1 -0
  206. package/dist/runtime/path-config.test.d.ts +2 -0
  207. package/dist/runtime/path-config.test.d.ts.map +1 -0
  208. package/dist/runtime/path-config.test.js +103 -0
  209. package/dist/runtime/path-config.test.js.map +1 -0
  210. package/package.json +5 -5
  211. package/.opencode/opencode.jsonc +0 -15
  212. package/.opencode/tool/write_json_output.ts +0 -24
  213. package/.opencode/tools/drs_skill.ts +0 -67
  214. package/dist/lib/skills-prompt.d.ts +0 -3
  215. package/dist/lib/skills-prompt.d.ts.map +0 -1
  216. package/dist/lib/skills-prompt.js +0 -70
  217. package/dist/lib/skills-prompt.js.map +0 -1
  218. package/dist/opencode/agent-loader.d.ts.map +0 -1
  219. package/dist/opencode/agent-loader.js.map +0 -1
  220. package/dist/opencode/client.d.ts.map +0 -1
  221. package/dist/opencode/client.js +0 -456
  222. package/dist/opencode/client.js.map +0 -1
  223. package/dist/opencode/client.test.js +0 -317
  224. package/dist/opencode/client.test.js.map +0 -1
  225. package/dist/opencode/opencode-paths.d.ts +0 -2
  226. package/dist/opencode/opencode-paths.d.ts.map +0 -1
  227. package/dist/opencode/opencode-paths.js +0 -7
  228. package/dist/opencode/opencode-paths.js.map +0 -1
  229. package/dist/opencode/skill-loader.d.ts +0 -15
  230. package/dist/opencode/skill-loader.d.ts.map +0 -1
  231. package/dist/opencode/skill-loader.js +0 -88
  232. package/dist/opencode/skill-loader.js.map +0 -1
  233. /package/{.opencode/agent → .pi/agents}/describe/pr-describer.md +0 -0
  234. /package/{.opencode/agent → .pi/agents}/review/documentation.md +0 -0
  235. /package/{.opencode/agent → .pi/agents}/review/performance.md +0 -0
  236. /package/{.opencode/agent → .pi/agents}/review/quality.md +0 -0
  237. /package/{.opencode/agent → .pi/agents}/review/security.md +0 -0
  238. /package/{.opencode/agent → .pi/agents}/review/style.md +0 -0
  239. /package/{.opencode/agent → .pi/agents}/review/unified-reviewer.md +0 -0
  240. /package/dist/{opencode → runtime}/client.test.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/pi/sdk.ts"],"names":[],"mappings":"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"}
package/dist/pi/sdk.js ADDED
@@ -0,0 +1,486 @@
1
+ import { randomUUID } from 'crypto';
2
+ import { isAbsolute, join, resolve } from 'path';
3
+ import { Type } from '@sinclair/typebox';
4
+ import { AuthStorage, createAgentSession, createBashTool, createEditTool, createFindTool, createGrepTool, createLsTool, createReadTool, createWriteTool, DefaultResourceLoader, ModelRegistry, SessionManager, } from '@mariozechner/pi-coding-agent';
5
+ import { writeJsonOutput } from '../lib/write-json-output.js';
6
+ function asRecord(value) {
7
+ return value && typeof value === 'object' && !Array.isArray(value)
8
+ ? value
9
+ : {};
10
+ }
11
+ function asString(value) {
12
+ return typeof value === 'string' ? value : undefined;
13
+ }
14
+ function asNumber(value) {
15
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
16
+ }
17
+ function asBoolean(value) {
18
+ return typeof value === 'boolean' ? value : undefined;
19
+ }
20
+ function asBooleanRecord(value) {
21
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
22
+ return undefined;
23
+ }
24
+ const result = {};
25
+ let hasEntries = false;
26
+ for (const [key, val] of Object.entries(value)) {
27
+ if (typeof val === 'boolean') {
28
+ result[key] = val;
29
+ hasEntries = true;
30
+ }
31
+ }
32
+ return hasEntries ? result : undefined;
33
+ }
34
+ function normalizeUsage(value) {
35
+ const usage = asRecord(value);
36
+ const input = asNumber(usage.input);
37
+ const output = asNumber(usage.output);
38
+ const cacheRead = asNumber(usage.cacheRead);
39
+ const cacheWrite = asNumber(usage.cacheWrite);
40
+ const totalTokens = asNumber(usage.totalTokens);
41
+ const rawCost = asRecord(usage.cost);
42
+ const totalCost = asNumber(rawCost.total);
43
+ if (input === undefined &&
44
+ output === undefined &&
45
+ cacheRead === undefined &&
46
+ cacheWrite === undefined &&
47
+ totalTokens === undefined &&
48
+ totalCost === undefined) {
49
+ return undefined;
50
+ }
51
+ const normalized = {
52
+ input,
53
+ output,
54
+ cacheRead,
55
+ cacheWrite,
56
+ totalTokens,
57
+ };
58
+ if (totalCost !== undefined) {
59
+ normalized.cost = { total: totalCost };
60
+ }
61
+ return normalized;
62
+ }
63
+ function asStringArray(value) {
64
+ if (!Array.isArray(value)) {
65
+ return [];
66
+ }
67
+ return value
68
+ .map((entry) => (typeof entry === 'string' ? entry.trim() : ''))
69
+ .filter((entry) => entry.length > 0);
70
+ }
71
+ function normalizeAgentSkills(value) {
72
+ const normalized = {};
73
+ for (const [agentName, skills] of Object.entries(value)) {
74
+ const parsedSkills = asStringArray(skills);
75
+ if (parsedSkills.length > 0) {
76
+ normalized[agentName] = parsedSkills;
77
+ }
78
+ }
79
+ return normalized;
80
+ }
81
+ function normalizeSkillPath(cwd, skillPath) {
82
+ return isAbsolute(skillPath) ? resolve(skillPath) : resolve(cwd, skillPath);
83
+ }
84
+ function extractText(content) {
85
+ if (typeof content === 'string') {
86
+ return content;
87
+ }
88
+ if (!Array.isArray(content)) {
89
+ return '';
90
+ }
91
+ return content
92
+ .map((part) => {
93
+ if (!part || typeof part !== 'object') {
94
+ return '';
95
+ }
96
+ const typedPart = part;
97
+ if (typedPart.type === 'text') {
98
+ return typedPart.text ?? '';
99
+ }
100
+ if (typedPart.type === 'thinking') {
101
+ return typedPart.thinking ?? '';
102
+ }
103
+ return '';
104
+ })
105
+ .join('');
106
+ }
107
+ function toSessionMessage(rawMessage, sessionId, index) {
108
+ const message = asRecord(rawMessage);
109
+ const role = asString(message.role);
110
+ if (!role) {
111
+ return null;
112
+ }
113
+ const timestamp = typeof message.timestamp === 'number' ? message.timestamp : Date.now();
114
+ if (role === 'user') {
115
+ return {
116
+ info: {
117
+ id: `${sessionId}-${index}`,
118
+ role: 'user',
119
+ time: { completed: timestamp },
120
+ },
121
+ parts: [{ text: extractText(message.content) }],
122
+ };
123
+ }
124
+ if (role === 'assistant') {
125
+ const info = {
126
+ id: `${sessionId}-${index}`,
127
+ role: 'assistant',
128
+ time: { completed: timestamp },
129
+ error: message.errorMessage,
130
+ };
131
+ const provider = asString(message.provider);
132
+ if (provider) {
133
+ info.provider = provider;
134
+ }
135
+ const model = asString(message.model);
136
+ if (model) {
137
+ info.model = model;
138
+ }
139
+ const usage = normalizeUsage(message.usage);
140
+ if (usage) {
141
+ info.usage = usage;
142
+ }
143
+ return {
144
+ info,
145
+ parts: [{ text: extractText(message.content) }],
146
+ };
147
+ }
148
+ if (role === 'toolResult') {
149
+ const isError = message.isError === true;
150
+ return {
151
+ info: {
152
+ id: `${sessionId}-${index}`,
153
+ role: 'tool',
154
+ time: { completed: timestamp },
155
+ error: isError ? extractText(message.content) : undefined,
156
+ toolName: asString(message.toolName),
157
+ toolCallId: asString(message.toolCallId),
158
+ },
159
+ parts: [{ text: extractText(message.content) }],
160
+ };
161
+ }
162
+ return null;
163
+ }
164
+ class PiSessionRuntime {
165
+ runtimeConfig;
166
+ authStorage;
167
+ modelRegistry;
168
+ sessions = new Map();
169
+ sessionApi;
170
+ constructor(config) {
171
+ this.runtimeConfig = {
172
+ tools: asRecord(config.tools),
173
+ agent: asRecord(config.agent),
174
+ provider: asRecord(config.provider),
175
+ skillSearchPaths: asStringArray(config.skillSearchPaths),
176
+ agentSkills: normalizeAgentSkills(asRecord(config.agentSkills)),
177
+ };
178
+ this.authStorage = AuthStorage.create();
179
+ this.modelRegistry = new ModelRegistry(this.authStorage);
180
+ this.registerCustomProviders();
181
+ this.sessionApi = {
182
+ create: (input) => this.createSession(input),
183
+ prompt: (input) => this.promptSession(input),
184
+ messages: (input) => this.readMessages(input),
185
+ delete: (input) => this.deleteSession(input),
186
+ sendMessage: (input) => this.sendMessage(input),
187
+ };
188
+ }
189
+ close() {
190
+ for (const record of this.sessions.values()) {
191
+ record.session?.dispose();
192
+ }
193
+ this.sessions.clear();
194
+ }
195
+ registerCustomProviders() {
196
+ for (const [providerName, providerConfig] of Object.entries(this.runtimeConfig.provider ?? {})) {
197
+ const provider = asRecord(providerConfig);
198
+ const options = asRecord(provider.options);
199
+ const models = asRecord(provider.models);
200
+ const modelEntries = Object.entries(models).map(([id, modelValue]) => {
201
+ const model = asRecord(modelValue);
202
+ const modelCost = asRecord(model.cost);
203
+ return {
204
+ id,
205
+ name: asString(model.name) ?? id,
206
+ api: 'openai-completions',
207
+ reasoning: asBoolean(model.reasoning) ?? true,
208
+ input: ['text'],
209
+ cost: {
210
+ input: asNumber(modelCost.input) ?? 0,
211
+ output: asNumber(modelCost.output) ?? 0,
212
+ cacheRead: asNumber(modelCost.cacheRead) ?? 0,
213
+ cacheWrite: asNumber(modelCost.cacheWrite) ?? 0,
214
+ },
215
+ contextWindow: asNumber(model.contextWindow) ?? 128000,
216
+ maxTokens: asNumber(model.maxTokens) ?? 16384,
217
+ };
218
+ });
219
+ const providerInput = {
220
+ api: 'openai-completions',
221
+ };
222
+ if (typeof options.baseURL === 'string' && options.baseURL.length > 0) {
223
+ providerInput.baseUrl = options.baseURL;
224
+ }
225
+ if (typeof options.apiKey === 'string' && options.apiKey.length > 0) {
226
+ providerInput.apiKey = options.apiKey;
227
+ }
228
+ if (modelEntries.length > 0) {
229
+ providerInput.models = modelEntries;
230
+ }
231
+ this.modelRegistry.registerProvider(providerName, providerInput);
232
+ }
233
+ }
234
+ resolveAgentSettings(agentName) {
235
+ const agentConfig = asRecord(this.runtimeConfig.agent?.[agentName]);
236
+ return {
237
+ prompt: asString(agentConfig.prompt),
238
+ model: asString(agentConfig.model),
239
+ tools: asBooleanRecord(agentConfig.tools),
240
+ };
241
+ }
242
+ resolveModel(modelId) {
243
+ if (!modelId) {
244
+ return undefined;
245
+ }
246
+ const [provider, ...rest] = modelId.split('/');
247
+ if (!provider || rest.length === 0) {
248
+ throw new Error(`Failed to resolve model "${modelId}"`);
249
+ }
250
+ const model = this.modelRegistry.find(provider, rest.join('/'));
251
+ if (!model) {
252
+ throw new Error(`Failed to resolve model "${modelId}"`);
253
+ }
254
+ return model;
255
+ }
256
+ getModelContextWindow(modelId) {
257
+ if (!modelId)
258
+ return undefined;
259
+ const parts = modelId.split('/');
260
+ if (parts.length < 2)
261
+ return undefined;
262
+ const [provider, ...rest] = parts;
263
+ const model = this.modelRegistry.find(provider, rest.join('/'));
264
+ return model?.contextWindow;
265
+ }
266
+ isToolEnabled(toolName, defaultValue, agentTools) {
267
+ // Per-agent tools take precedence over global config
268
+ if (agentTools && toolName in agentTools) {
269
+ return agentTools[toolName];
270
+ }
271
+ const value = this.runtimeConfig.tools?.[toolName];
272
+ return typeof value === 'boolean' ? value : defaultValue;
273
+ }
274
+ resolveTools(cwd, agentTools) {
275
+ const tools = [];
276
+ if (this.isToolEnabled('Read', true, agentTools)) {
277
+ tools.push(createReadTool(cwd));
278
+ }
279
+ if (this.isToolEnabled('Bash', true, agentTools)) {
280
+ tools.push(createBashTool(cwd));
281
+ }
282
+ if (this.isToolEnabled('Edit', false, agentTools)) {
283
+ tools.push(createEditTool(cwd));
284
+ }
285
+ if (this.isToolEnabled('Write', false, agentTools)) {
286
+ tools.push(createWriteTool(cwd));
287
+ }
288
+ if (this.isToolEnabled('Grep', true, agentTools)) {
289
+ tools.push(createGrepTool(cwd));
290
+ }
291
+ if (this.isToolEnabled('Glob', true, agentTools)) {
292
+ tools.push(createFindTool(cwd));
293
+ tools.push(createLsTool(cwd));
294
+ }
295
+ if (tools.length === 0) {
296
+ tools.push(createReadTool(cwd), createBashTool(cwd));
297
+ }
298
+ return tools;
299
+ }
300
+ resolveSkillSearchPaths(cwd) {
301
+ const configuredPaths = this.runtimeConfig.skillSearchPaths ?? [];
302
+ if (configuredPaths.length === 0) {
303
+ return [join(cwd, '.drs', 'skills'), join(cwd, '.pi', 'skills')];
304
+ }
305
+ return configuredPaths.map((skillPath) => normalizeSkillPath(cwd, skillPath));
306
+ }
307
+ resolveAgentSkills(agentName) {
308
+ return this.runtimeConfig.agentSkills?.[agentName] ?? [];
309
+ }
310
+ resolveCustomTools(workingDir) {
311
+ const customTools = [];
312
+ if (this.isToolEnabled('write_json_output', true)) {
313
+ customTools.push({
314
+ name: 'write_json_output',
315
+ label: 'write_json_output',
316
+ description: 'Validate and write structured JSON output for DRS agents.',
317
+ parameters: Type.Object({
318
+ outputType: Type.Union([Type.Literal('describe_output'), Type.Literal('review_output')]),
319
+ payload: Type.Any(),
320
+ pretty: Type.Optional(Type.Boolean()),
321
+ indent: Type.Optional(Type.Number({ minimum: 2, maximum: 8 })),
322
+ }),
323
+ execute: async (_toolCallId, params) => {
324
+ const pointer = await writeJsonOutput({
325
+ outputType: params.outputType,
326
+ payload: params.payload,
327
+ pretty: params.pretty,
328
+ indent: params.indent,
329
+ workingDir,
330
+ });
331
+ return {
332
+ content: [{ type: 'text', text: JSON.stringify(pointer) }],
333
+ details: pointer,
334
+ };
335
+ },
336
+ });
337
+ }
338
+ return customTools;
339
+ }
340
+ async createAgentSession(cwd, agentName) {
341
+ const settings = this.resolveAgentSettings(agentName);
342
+ const configuredSkillNames = new Set(this.resolveAgentSkills(agentName));
343
+ const skillSearchPaths = this.resolveSkillSearchPaths(cwd);
344
+ const resourceLoader = new DefaultResourceLoader({
345
+ cwd,
346
+ noSkills: true,
347
+ additionalSkillPaths: skillSearchPaths,
348
+ skillsOverride: configuredSkillNames.size > 0
349
+ ? (base) => ({
350
+ skills: base.skills.filter((skill) => configuredSkillNames.has(skill.name)),
351
+ diagnostics: base.diagnostics,
352
+ })
353
+ : undefined,
354
+ systemPromptOverride: () => settings.prompt ?? `You are ${agentName}. Provide concise, actionable answers.`,
355
+ appendSystemPromptOverride: () => [],
356
+ });
357
+ await resourceLoader.reload();
358
+ if (configuredSkillNames.size > 0) {
359
+ const loadedSkillNames = new Set(resourceLoader.getSkills().skills.map((skill) => skill.name));
360
+ const missingSkills = Array.from(configuredSkillNames).filter((skillName) => !loadedSkillNames.has(skillName));
361
+ if (missingSkills.length > 0) {
362
+ console.warn(`⚠️ Missing skill definitions for ${agentName}: ${missingSkills.join(', ')}`);
363
+ }
364
+ }
365
+ const { session } = await createAgentSession({
366
+ cwd,
367
+ authStorage: this.authStorage,
368
+ modelRegistry: this.modelRegistry,
369
+ model: this.resolveModel(settings.model),
370
+ resourceLoader,
371
+ sessionManager: SessionManager.inMemory(),
372
+ tools: this.resolveTools(cwd, settings.tools),
373
+ customTools: this.resolveCustomTools(cwd),
374
+ });
375
+ return session;
376
+ }
377
+ getSessionRecord(sessionId) {
378
+ const record = this.sessions.get(sessionId);
379
+ if (!record) {
380
+ throw new Error(`Session "${sessionId}" not found`);
381
+ }
382
+ return record;
383
+ }
384
+ createSession(input) {
385
+ const sessionId = randomUUID();
386
+ const cwd = resolve(input.query.directory ?? process.cwd());
387
+ this.sessions.set(sessionId, {
388
+ id: sessionId,
389
+ cwd,
390
+ });
391
+ return Promise.resolve({
392
+ data: {
393
+ id: sessionId,
394
+ },
395
+ });
396
+ }
397
+ async promptSession(input) {
398
+ const record = this.getSessionRecord(input.path.id);
399
+ const cwd = resolve(input.query.directory ?? record.cwd);
400
+ const promptText = input.body.parts
401
+ .map((part) => part.text)
402
+ .filter((part) => part.length > 0)
403
+ .join('\n\n');
404
+ try {
405
+ if (!record.session || record.agent !== input.body.agent) {
406
+ record.session?.dispose();
407
+ record.session = await this.createAgentSession(cwd, input.body.agent);
408
+ record.agent = input.body.agent;
409
+ record.cwd = cwd;
410
+ }
411
+ record.error = undefined;
412
+ await record.session.prompt(promptText);
413
+ return { ok: true };
414
+ }
415
+ catch (error) {
416
+ record.error = error;
417
+ return { ok: false };
418
+ }
419
+ }
420
+ readMessages(input) {
421
+ const record = this.getSessionRecord(input.path.id);
422
+ const messages = [];
423
+ if (record.session) {
424
+ let index = 0;
425
+ for (const message of record.session.messages) {
426
+ const converted = toSessionMessage(message, record.id, index);
427
+ index += 1;
428
+ if (converted) {
429
+ messages.push(converted);
430
+ }
431
+ }
432
+ }
433
+ if (record.error) {
434
+ messages.push({
435
+ info: {
436
+ id: `${record.id}-error`,
437
+ role: 'assistant',
438
+ time: { completed: Date.now() },
439
+ error: record.error instanceof Error ? record.error.message : String(record.error),
440
+ },
441
+ parts: [{ text: '' }],
442
+ });
443
+ }
444
+ return Promise.resolve({ data: messages });
445
+ }
446
+ async sendMessage(input) {
447
+ const record = this.getSessionRecord(input.path.id);
448
+ if (!record.session) {
449
+ throw new Error('Session has not been started yet. Call prompt() first.');
450
+ }
451
+ try {
452
+ record.error = undefined;
453
+ await record.session.prompt(input.body.content);
454
+ return { ok: true };
455
+ }
456
+ catch (error) {
457
+ record.error = error;
458
+ return { ok: false };
459
+ }
460
+ }
461
+ deleteSession(input) {
462
+ const record = this.sessions.get(input.path.id);
463
+ if (record?.session) {
464
+ record.session.dispose();
465
+ }
466
+ this.sessions.delete(input.path.id);
467
+ return Promise.resolve({ ok: true });
468
+ }
469
+ }
470
+ /**
471
+ * Pi SDK adapter used by DRS runtime orchestration.
472
+ */
473
+ export function createPiInProcessServer(options) {
474
+ const runtime = new PiSessionRuntime(options.config);
475
+ return Promise.resolve({
476
+ server: {
477
+ url: 'pi://in-process',
478
+ close: () => runtime.close(),
479
+ },
480
+ client: {
481
+ session: runtime.sessionApi,
482
+ getModelContextWindow: (modelId) => runtime.getModelContextWindow(modelId),
483
+ },
484
+ });
485
+ }
486
+ //# sourceMappingURL=sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/pi/sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sdk.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.test.d.ts","sourceRoot":"","sources":["../../src/pi/sdk.test.ts"],"names":[],"mappings":""}