@auvira.ai/sdk 0.5.0 → 0.6.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 (70) hide show
  1. package/README.md +37 -0
  2. package/dist/agent/Agent.d.ts.map +1 -1
  3. package/dist/agent/Agent.js +9 -0
  4. package/dist/agent/Agent.js.map +1 -1
  5. package/dist/agent/RunEventBus.d.ts +1 -1
  6. package/dist/agent/RunEventBus.d.ts.map +1 -1
  7. package/dist/agent/RunEventBus.js.map +1 -1
  8. package/dist/agent/attachmentContext.d.ts +9 -0
  9. package/dist/agent/attachmentContext.d.ts.map +1 -0
  10. package/dist/agent/attachmentContext.js +72 -0
  11. package/dist/agent/attachmentContext.js.map +1 -0
  12. package/dist/agent/editCompletion.d.ts +29 -2
  13. package/dist/agent/editCompletion.d.ts.map +1 -1
  14. package/dist/agent/editCompletion.js +276 -8
  15. package/dist/agent/editCompletion.js.map +1 -1
  16. package/dist/agent/hostTools.d.ts +51 -0
  17. package/dist/agent/hostTools.d.ts.map +1 -0
  18. package/dist/agent/hostTools.js +111 -0
  19. package/dist/agent/hostTools.js.map +1 -0
  20. package/dist/agent/parseSendPayload.d.ts +3 -1
  21. package/dist/agent/parseSendPayload.d.ts.map +1 -1
  22. package/dist/agent/parseSendPayload.js +16 -0
  23. package/dist/agent/parseSendPayload.js.map +1 -1
  24. package/dist/agent/runAgentTask.d.ts +4 -1
  25. package/dist/agent/runAgentTask.d.ts.map +1 -1
  26. package/dist/agent/runAgentTask.js +12 -0
  27. package/dist/agent/runAgentTask.js.map +1 -1
  28. package/dist/agent/runValidationWithRepair.d.ts.map +1 -1
  29. package/dist/agent/runValidationWithRepair.js +4 -0
  30. package/dist/agent/runValidationWithRepair.js.map +1 -1
  31. package/dist/agent/tools/executeTool.d.ts.map +1 -1
  32. package/dist/agent/tools/executeTool.js +15 -1
  33. package/dist/agent/tools/executeTool.js.map +1 -1
  34. package/dist/agent/tools/types.d.ts +3 -0
  35. package/dist/agent/tools/types.d.ts.map +1 -1
  36. package/dist/agent/types.d.ts +62 -0
  37. package/dist/agent/types.d.ts.map +1 -1
  38. package/dist/agent/types.js.map +1 -1
  39. package/dist/agent/validateOptions.d.ts.map +1 -1
  40. package/dist/agent/validateOptions.js +10 -1
  41. package/dist/agent/validateOptions.js.map +1 -1
  42. package/dist/index.d.ts +5 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +3 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/providers/agentic/AgenticCustomProvider.d.ts.map +1 -1
  47. package/dist/providers/agentic/AgenticCustomProvider.js +21 -0
  48. package/dist/providers/agentic/AgenticCustomProvider.js.map +1 -1
  49. package/dist/providers/agentic/agentLoop.d.ts +4 -1
  50. package/dist/providers/agentic/agentLoop.d.ts.map +1 -1
  51. package/dist/providers/agentic/agentLoop.js +287 -266
  52. package/dist/providers/agentic/agentLoop.js.map +1 -1
  53. package/dist/providers/agentic/toolSchemas.d.ts +314 -0
  54. package/dist/providers/agentic/toolSchemas.d.ts.map +1 -1
  55. package/dist/providers/agentic/toolSchemas.js +7 -0
  56. package/dist/providers/agentic/toolSchemas.js.map +1 -1
  57. package/dist/providers/types.d.ts +4 -1
  58. package/dist/providers/types.d.ts.map +1 -1
  59. package/dist/providers/types.js.map +1 -1
  60. package/dist/runner/jobTypes.d.ts +3 -2
  61. package/dist/runner/jobTypes.d.ts.map +1 -1
  62. package/dist/runner/run.d.ts.map +1 -1
  63. package/dist/runner/run.js +6 -2
  64. package/dist/runner/run.js.map +1 -1
  65. package/dist/runner/validateJob.d.ts.map +1 -1
  66. package/dist/runner/validateJob.js +135 -0
  67. package/dist/runner/validateJob.js.map +1 -1
  68. package/docs/host-integration-image-placement.md +152 -0
  69. package/docs/sandbox-runner.md +22 -1
  70. package/package.json +2 -1
@@ -1,3 +1,5 @@
1
+ import { access, readdir, readFile } from "node:fs/promises";
2
+ import { dirname, join } from "node:path";
1
3
  export const DEFAULT_STYLE_ASSET_PATTERNS = [
2
4
  /globals\.css$/i,
3
5
  /tailwind\.config/i,
@@ -15,6 +17,8 @@ export const DEFAULT_MULTI_STEP_LIMITS = {
15
17
  };
16
18
  const WIRING_INCOMPLETE_NUDGE = "Style files changed but pinned-target wiring is incomplete. Update config or component files that apply styles to the pinned target before stopping.";
17
19
  const ASSET_PUBLISH_INCOMPLETE_NUDGE = 'Component wiring references an image but no file exists under public/assets/. Call publish_reference_image with the correct source ("primary" or "index:N") before stopping.';
20
+ const COMPLETION_RULES_INCOMPLETE_NUDGE = "Completion rules are not satisfied yet. Update the required config/component files before stopping.";
21
+ const ORPHAN_COMPONENT_NUDGE = "Do not finish with orphan components under src/components/. Wire the uploaded publicUrl in config and render it from the pinned section renderer in page.tsx.";
18
22
  function compilePatterns(patterns) {
19
23
  return patterns.map((pattern) => new RegExp(pattern, "i"));
20
24
  }
@@ -38,12 +42,113 @@ function matchesAnyPattern(file, patterns) {
38
42
  return patterns.some((pattern) => pattern.test(normalized));
39
43
  }
40
44
  /** True when style patterns include public/assets (decoration publish expected). */
41
- function requiresPublicAssetPublish(completion) {
45
+ function requiresPublicAssetPublishFromStylePatterns(completion) {
42
46
  return resolveStylePatterns(completion).some((pattern) => pattern.test("public/assets/edits/placeholder.png"));
43
47
  }
44
48
  function hasPublicAssetChange(changedFiles) {
45
49
  return changedFiles.some((file) => normalizePath(file).startsWith("public/assets/"));
46
50
  }
51
+ function globPatternToRegex(glob) {
52
+ const escaped = glob
53
+ .replace(/[.+^${}()|[\]\\]/g, "\\$&")
54
+ .replace(/\*/g, "[^/]*")
55
+ .replace(/\?/g, ".");
56
+ return new RegExp(`^${escaped}$`, "i");
57
+ }
58
+ function isGlobPattern(pattern) {
59
+ return pattern.includes("*") || pattern.includes("?");
60
+ }
61
+ async function collectRelativePaths(repoPath, relativeDir, depth = 0) {
62
+ if (depth > 8) {
63
+ return [];
64
+ }
65
+ const absoluteDir = join(repoPath, relativeDir);
66
+ let entries;
67
+ try {
68
+ entries = await readdir(absoluteDir, { withFileTypes: true });
69
+ }
70
+ catch {
71
+ return [];
72
+ }
73
+ const paths = [];
74
+ for (const entry of entries) {
75
+ const rel = relativeDir ? `${relativeDir}/${entry.name}` : entry.name;
76
+ if (entry.isDirectory()) {
77
+ paths.push(...(await collectRelativePaths(repoPath, rel, depth + 1)));
78
+ }
79
+ else {
80
+ paths.push(normalizePath(rel));
81
+ }
82
+ }
83
+ return paths;
84
+ }
85
+ /** Returns true when a repo-relative path or glob exists under repoPath. */
86
+ export async function pathExistsUnderRepo(repoPath, pattern) {
87
+ const normalized = normalizePath(pattern);
88
+ if (!isGlobPattern(normalized)) {
89
+ try {
90
+ await access(join(repoPath, normalized));
91
+ return true;
92
+ }
93
+ catch {
94
+ return false;
95
+ }
96
+ }
97
+ const regex = globPatternToRegex(normalized);
98
+ const prefix = normalized.includes("/")
99
+ ? normalized.slice(0, normalized.indexOf("*"))
100
+ : "";
101
+ const searchRoot = prefix ? dirname(prefix) : ".";
102
+ const files = await collectRelativePaths(repoPath, searchRoot === "." ? "" : searchRoot);
103
+ return files.some((file) => regex.test(file));
104
+ }
105
+ function isUploadRequiredPathPattern(pattern) {
106
+ return normalizePath(pattern).startsWith("public/uploads/");
107
+ }
108
+ /** Builds optional nudge text from opaque wiring hints. */
109
+ export function buildWiringHintNudge(hints) {
110
+ if (!hints) {
111
+ return "";
112
+ }
113
+ const parts = [];
114
+ if (hints.requiredFields?.length) {
115
+ parts.push(`Required fields: ${hints.requiredFields.join(", ")}`);
116
+ }
117
+ if (hints.configPaths?.length) {
118
+ parts.push(`Config files: ${hints.configPaths.join(", ")}`);
119
+ }
120
+ if (hints.pagePaths?.length) {
121
+ parts.push(`Page files: ${hints.pagePaths.join(", ")}`);
122
+ }
123
+ return parts.join(". ");
124
+ }
125
+ function appendWiringHintNudge(nudge, completion) {
126
+ const hint = buildWiringHintNudge(completion?.wiringHints);
127
+ if (!hint) {
128
+ return nudge;
129
+ }
130
+ return `${nudge} ${hint}`.trim();
131
+ }
132
+ /** Determines whether the public/assets publish gate should apply. */
133
+ export async function shouldRequirePublicAssetPublish(input) {
134
+ const setting = input.rules?.requireAssetPublish;
135
+ if (setting === false || setting === "none" || setting === "uploads") {
136
+ return false;
137
+ }
138
+ const requiredPaths = input.rules?.requiredPaths ?? [];
139
+ if (requiredPaths.length > 0 &&
140
+ requiredPaths.every(isUploadRequiredPathPattern) &&
141
+ input.repoPath) {
142
+ const exists = await Promise.all(requiredPaths.map((pattern) => pathExistsUnderRepo(input.repoPath, pattern)));
143
+ if (exists.every(Boolean)) {
144
+ return false;
145
+ }
146
+ }
147
+ if (setting === true || setting === "assets") {
148
+ return true;
149
+ }
150
+ return requiresPublicAssetPublishFromStylePatterns(input.completion);
151
+ }
47
152
  /** True when every changed file is a style asset and none are wiring paths. */
48
153
  export function isStyleOnlyDiff(changedFiles, completion) {
49
154
  if (changedFiles.length === 0) {
@@ -87,6 +192,9 @@ function isCompletionContractActive(input) {
87
192
  if (completion.isComplete) {
88
193
  return true;
89
194
  }
195
+ if (completion.rules) {
196
+ return true;
197
+ }
90
198
  if (completion.requireWiringAfterStyle &&
91
199
  input.hasVisionImages &&
92
200
  hasSelectedDomContext(input.selectedDom)) {
@@ -94,8 +202,152 @@ function isCompletionContractActive(input) {
94
202
  }
95
203
  return completion.mode === "multi_file_required";
96
204
  }
205
+ function matchesRequirement(changedFiles, requirement) {
206
+ const pattern = new RegExp(requirement.pattern, "i");
207
+ return changedFiles.some((file) => pattern.test(normalizePath(file)));
208
+ }
209
+ async function readRepoFileContent(repoPath, relativePath) {
210
+ try {
211
+ return await readFile(join(repoPath, normalizePath(relativePath)), "utf8");
212
+ }
213
+ catch {
214
+ return undefined;
215
+ }
216
+ }
217
+ async function evaluateRequiredContent(input) {
218
+ if (!input.repoPath || input.requirements.length === 0) {
219
+ return { met: true };
220
+ }
221
+ for (const requirement of input.requirements) {
222
+ if (requirement.required === false) {
223
+ continue;
224
+ }
225
+ const pathRegex = new RegExp(requirement.pathPattern, "i");
226
+ const contentRegex = new RegExp(requirement.contentPattern, "i");
227
+ const candidates = new Set();
228
+ for (const file of input.changedFiles) {
229
+ if (pathRegex.test(normalizePath(file))) {
230
+ candidates.add(normalizePath(file));
231
+ }
232
+ }
233
+ if (candidates.size === 0) {
234
+ const allFiles = await collectRelativePaths(input.repoPath, "");
235
+ for (const file of allFiles) {
236
+ if (pathRegex.test(file)) {
237
+ candidates.add(file);
238
+ }
239
+ }
240
+ }
241
+ if (candidates.size === 0) {
242
+ return {
243
+ met: false,
244
+ nudge: requirement.nudge ??
245
+ `${COMPLETION_RULES_INCOMPLETE_NUDGE} No file matches /${requirement.pathPattern}/.`,
246
+ };
247
+ }
248
+ let contentMatched = false;
249
+ for (const relPath of candidates) {
250
+ const content = await readRepoFileContent(input.repoPath, relPath);
251
+ if (content && contentRegex.test(content)) {
252
+ contentMatched = true;
253
+ break;
254
+ }
255
+ }
256
+ if (!contentMatched) {
257
+ return {
258
+ met: false,
259
+ nudge: requirement.nudge ??
260
+ `${COMPLETION_RULES_INCOMPLETE_NUDGE} File content must match /${requirement.contentPattern}/.`,
261
+ };
262
+ }
263
+ }
264
+ return { met: true };
265
+ }
266
+ function hasOrphanComponentChange(changedFiles) {
267
+ return changedFiles.some((file) => /(?:^|\/)src\/components\//i.test(normalizePath(file)));
268
+ }
269
+ function shouldOrphanComponentGuard(input) {
270
+ if (input.contentMet) {
271
+ return false;
272
+ }
273
+ const hasRequiredContent = (input.rules?.requiredContent?.length ?? 0) > 0;
274
+ const guardEnabled = input.rules?.orphanComponentGuard !== false && hasRequiredContent;
275
+ if (!guardEnabled) {
276
+ return false;
277
+ }
278
+ if (!input.hasVisionImages || !hasSelectedDomContext(input.selectedDom)) {
279
+ return false;
280
+ }
281
+ return hasOrphanComponentChange(input.changedFiles);
282
+ }
283
+ /** Evaluates serializable completion rules against changed files and workspace paths. */
284
+ export async function evaluateSerializableCompletionRules(input) {
285
+ const rules = input.rules;
286
+ if (rules) {
287
+ for (const requirement of rules.requiredChanges ?? []) {
288
+ if (requirement.required === false) {
289
+ continue;
290
+ }
291
+ if (!matchesRequirement(input.changedFiles, requirement)) {
292
+ return {
293
+ met: false,
294
+ nudge: appendWiringHintNudge(`${COMPLETION_RULES_INCOMPLETE_NUDGE} Missing required change matching /${requirement.pattern}/.`, input.completion),
295
+ };
296
+ }
297
+ }
298
+ if (input.repoPath) {
299
+ for (const relPath of rules.requiredPaths ?? []) {
300
+ const exists = await pathExistsUnderRepo(input.repoPath, relPath);
301
+ if (!exists) {
302
+ return {
303
+ met: false,
304
+ nudge: appendWiringHintNudge(`${COMPLETION_RULES_INCOMPLETE_NUDGE} Required path missing: ${relPath}`, input.completion),
305
+ };
306
+ }
307
+ }
308
+ }
309
+ const contentResult = await evaluateRequiredContent({
310
+ repoPath: input.repoPath,
311
+ changedFiles: input.changedFiles,
312
+ requirements: rules.requiredContent ?? [],
313
+ });
314
+ if (!contentResult.met) {
315
+ if (shouldOrphanComponentGuard({
316
+ rules,
317
+ changedFiles: input.changedFiles,
318
+ hasVisionImages: input.hasVisionImages,
319
+ selectedDom: input.selectedDom,
320
+ contentMet: false,
321
+ })) {
322
+ return {
323
+ met: false,
324
+ nudge: appendWiringHintNudge(ORPHAN_COMPONENT_NUDGE, input.completion),
325
+ };
326
+ }
327
+ return {
328
+ met: false,
329
+ nudge: appendWiringHintNudge(contentResult.nudge ?? COMPLETION_RULES_INCOMPLETE_NUDGE, input.completion),
330
+ };
331
+ }
332
+ }
333
+ const requireAssetPublish = await shouldRequirePublicAssetPublish({
334
+ rules,
335
+ completion: input.completion,
336
+ repoPath: input.repoPath,
337
+ });
338
+ if (requireAssetPublish &&
339
+ input.hasVisionImages &&
340
+ input.wiringComplete &&
341
+ !hasPublicAssetChange(input.changedFiles)) {
342
+ return {
343
+ met: false,
344
+ nudge: getAssetPublishIncompleteNudge(),
345
+ };
346
+ }
347
+ return { met: true };
348
+ }
97
349
  /** Evaluates whether harness early finish should proceed, continue, or fail. */
98
- export function evaluateHarnessCompletionGate(input) {
350
+ export async function evaluateHarnessCompletionGate(input) {
99
351
  const styleOnly = isStyleOnlyDiff(input.changedFiles, input.completion);
100
352
  const wiringComplete = hasWiringChange(input.changedFiles, input.completion);
101
353
  const limits = resolveMultiStepLimits(input.completion);
@@ -173,23 +425,33 @@ export function evaluateHarnessCompletionGate(input) {
173
425
  wiringComplete,
174
426
  };
175
427
  }
176
- if (requiresPublicAssetPublish(input.completion) &&
177
- input.hasVisionImages &&
178
- wiringComplete &&
179
- !hasPublicAssetChange(input.changedFiles)) {
428
+ const rulesResult = await evaluateSerializableCompletionRules({
429
+ changedFiles: input.changedFiles,
430
+ repoPath: input.repoPath,
431
+ rules: input.completion?.rules,
432
+ completion: input.completion,
433
+ hasVisionImages: input.hasVisionImages,
434
+ wiringComplete,
435
+ selectedDom: input.selectedDom,
436
+ });
437
+ if (!rulesResult.met) {
438
+ const continueReason = rulesResult.nudge === getAssetPublishIncompleteNudge()
439
+ ? "asset_publish_incomplete"
440
+ : "completion_callback";
180
441
  if (input.deferredFinishCount >= limits.maxExtraTurnsAfterStyleOnly) {
181
442
  return {
182
443
  action: "fail",
183
444
  styleOnly,
184
445
  wiringComplete,
185
- failMessage: "Multi-step asset edit incomplete: wiring changed without a published public/assets file",
446
+ failMessage: rulesResult.nudge ?? "Completion rules not satisfied",
186
447
  };
187
448
  }
188
449
  return {
189
450
  action: "continue",
190
- continueReason: "asset_publish_incomplete",
451
+ continueReason,
191
452
  styleOnly,
192
453
  wiringComplete,
454
+ continueNudge: rulesResult.nudge,
193
455
  };
194
456
  }
195
457
  }
@@ -206,4 +468,10 @@ export function getWiringIncompleteNudge() {
206
468
  export function getAssetPublishIncompleteNudge() {
207
469
  return ASSET_PUBLISH_INCOMPLETE_NUDGE;
208
470
  }
471
+ export function getCompletionRulesIncompleteNudge() {
472
+ return COMPLETION_RULES_INCOMPLETE_NUDGE;
473
+ }
474
+ export function getOrphanComponentNudge() {
475
+ return ORPHAN_COMPONENT_NUDGE;
476
+ }
209
477
  //# sourceMappingURL=editCompletion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editCompletion.js","sourceRoot":"","sources":["../../src/agent/editCompletion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editCompletion.js","sourceRoot":"","sources":["../../src/agent/editCompletion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { AgentAttachmentMeta, SelectedDomContext } from "./types.js";
2
+ export interface HostToolDefinition {
3
+ name: string;
4
+ description: string;
5
+ parameters: Record<string, unknown>;
6
+ }
7
+ export interface HostToolContext {
8
+ repoPath: string;
9
+ attachments?: AgentAttachmentMeta[];
10
+ selectedDom?: SelectedDomContext;
11
+ }
12
+ export interface HostToolHandlerResult {
13
+ ok: boolean;
14
+ output: string;
15
+ meta?: Record<string, unknown>;
16
+ }
17
+ export type HostToolHandler = (args: Record<string, unknown>, ctx: HostToolContext) => Promise<HostToolHandlerResult>;
18
+ export interface HostToolRegistration {
19
+ definition: HostToolDefinition;
20
+ handler: HostToolHandler;
21
+ }
22
+ /** Validates host tool registrations and rejects core tool name collisions. */
23
+ export declare function validateHostToolRegistrations(registrations: HostToolRegistration[]): void;
24
+ /**
25
+ * Merges host tool sources with later sources winning on name collision.
26
+ * Call order: create (lowest) → context → send (highest).
27
+ */
28
+ export declare function mergeHostToolRegistrations(...sources: Array<HostToolRegistration[] | undefined>): HostToolRegistration[];
29
+ /** Merges user host tools with SDK builtins for the current run. */
30
+ export declare function resolveHostToolsForRun(input: {
31
+ hostTools?: HostToolRegistration[];
32
+ includeAttachmentUrlsTool?: boolean;
33
+ }): HostToolRegistration[];
34
+ /** Built-in host tool that returns canonical attachment metadata for the run. */
35
+ export declare function createGetAttachmentUrlsHostTool(): HostToolRegistration;
36
+ /** Registers host tool handlers for a single agent run. */
37
+ export declare function registerHostToolsForRun(registrations: HostToolRegistration[]): void;
38
+ /** Clears host tool handlers after a run completes. */
39
+ export declare function clearHostToolsForRun(): void;
40
+ /** Dispatches a host tool call when registered for the current run. */
41
+ export declare function executeHostTool(toolName: string, args: Record<string, unknown>, ctx: HostToolContext): Promise<HostToolHandlerResult | undefined>;
42
+ /** Converts host tool definitions to OpenAI-compatible tool schemas. */
43
+ export declare function hostToolsToOpenAiDefinitions(registrations: HostToolRegistration[]): Array<{
44
+ type: "function";
45
+ function: {
46
+ name: string;
47
+ description: string;
48
+ parameters: Record<string, unknown>;
49
+ };
50
+ }>;
51
+ //# sourceMappingURL=hostTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostTools.d.ts","sourceRoot":"","sources":["../../src/agent/hostTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAG1E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,eAAe,KACjB,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,OAAO,EAAE,eAAe,CAAC;CAC1B;AAiBD,+EAA+E;AAC/E,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,oBAAoB,EAAE,GACpC,IAAI,CAiBN;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,OAAO,EAAE,KAAK,CAAC,oBAAoB,EAAE,GAAG,SAAS,CAAC,GACpD,oBAAoB,EAAE,CAQxB;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACnC,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,GAAG,oBAAoB,EAAE,CAYzB;AAED,iFAAiF;AACjF,wBAAgB,+BAA+B,IAAI,oBAAoB,CAuBtE;AAID,2DAA2D;AAC3D,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,oBAAoB,EAAE,GACpC,IAAI,CAQN;AAED,uDAAuD;AACvD,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,uEAAuE;AACvE,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAM5C;AAED,wEAAwE;AACxE,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,oBAAoB,EAAE,GACpC,KAAK,CAAC;IACP,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;CACH,CAAC,CASD"}
@@ -0,0 +1,111 @@
1
+ import { readAttachmentsManifest } from "./attachmentContext.js";
2
+ const CORE_TOOL_NAMES = new Set([
3
+ "grep",
4
+ "read",
5
+ "read_file",
6
+ "glob",
7
+ "list_dir",
8
+ "search_replace",
9
+ "edit",
10
+ "write",
11
+ "publish_reference_image",
12
+ "generate_image",
13
+ ]);
14
+ const HOST_TOOL_NAME_PATTERN = /^[a-z][a-z0-9_]{0,63}$/;
15
+ /** Validates host tool registrations and rejects core tool name collisions. */
16
+ export function validateHostToolRegistrations(registrations) {
17
+ const seen = new Set();
18
+ for (const registration of registrations) {
19
+ const name = registration.definition.name.trim().toLowerCase();
20
+ if (!HOST_TOOL_NAME_PATTERN.test(name)) {
21
+ throw new Error(`Invalid host tool name "${registration.definition.name}" — use lowercase letters, digits, and underscores`);
22
+ }
23
+ if (CORE_TOOL_NAMES.has(name)) {
24
+ throw new Error(`Host tool name collides with core tool: ${name}`);
25
+ }
26
+ if (seen.has(name)) {
27
+ throw new Error(`Duplicate host tool registration: ${name}`);
28
+ }
29
+ seen.add(name);
30
+ }
31
+ }
32
+ /**
33
+ * Merges host tool sources with later sources winning on name collision.
34
+ * Call order: create (lowest) → context → send (highest).
35
+ */
36
+ export function mergeHostToolRegistrations(...sources) {
37
+ const byName = new Map();
38
+ for (const source of sources) {
39
+ for (const registration of source ?? []) {
40
+ byName.set(registration.definition.name.trim().toLowerCase(), registration);
41
+ }
42
+ }
43
+ return [...byName.values()];
44
+ }
45
+ /** Merges user host tools with SDK builtins for the current run. */
46
+ export function resolveHostToolsForRun(input) {
47
+ const registrations = [...(input.hostTools ?? [])];
48
+ if (input.includeAttachmentUrlsTool) {
49
+ const hasBuiltin = registrations.some((tool) => tool.definition.name === "get_attachment_urls");
50
+ if (!hasBuiltin) {
51
+ registrations.push(createGetAttachmentUrlsHostTool());
52
+ }
53
+ }
54
+ validateHostToolRegistrations(registrations);
55
+ return registrations;
56
+ }
57
+ /** Built-in host tool that returns canonical attachment metadata for the run. */
58
+ export function createGetAttachmentUrlsHostTool() {
59
+ return {
60
+ definition: {
61
+ name: "get_attachment_urls",
62
+ description: "Returns uploaded attachment metadata (index, publicUrl, destPath, role) for the current run.",
63
+ parameters: {
64
+ type: "object",
65
+ properties: {},
66
+ },
67
+ },
68
+ handler: async (_args, ctx) => {
69
+ const attachments = ctx.attachments && ctx.attachments.length > 0
70
+ ? ctx.attachments
71
+ : await readAttachmentsManifest(ctx.repoPath);
72
+ return {
73
+ ok: true,
74
+ output: JSON.stringify({ attachments }, null, 2),
75
+ meta: { count: attachments.length },
76
+ };
77
+ },
78
+ };
79
+ }
80
+ const hostToolHandlers = new Map();
81
+ /** Registers host tool handlers for a single agent run. */
82
+ export function registerHostToolsForRun(registrations) {
83
+ hostToolHandlers.clear();
84
+ for (const registration of registrations) {
85
+ hostToolHandlers.set(registration.definition.name.toLowerCase(), registration.handler);
86
+ }
87
+ }
88
+ /** Clears host tool handlers after a run completes. */
89
+ export function clearHostToolsForRun() {
90
+ hostToolHandlers.clear();
91
+ }
92
+ /** Dispatches a host tool call when registered for the current run. */
93
+ export async function executeHostTool(toolName, args, ctx) {
94
+ const handler = hostToolHandlers.get(toolName.toLowerCase());
95
+ if (!handler) {
96
+ return undefined;
97
+ }
98
+ return handler(args, ctx);
99
+ }
100
+ /** Converts host tool definitions to OpenAI-compatible tool schemas. */
101
+ export function hostToolsToOpenAiDefinitions(registrations) {
102
+ return registrations.map((registration) => ({
103
+ type: "function",
104
+ function: {
105
+ name: registration.definition.name,
106
+ description: registration.definition.description,
107
+ parameters: registration.definition.parameters,
108
+ },
109
+ }));
110
+ }
111
+ //# sourceMappingURL=hostTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostTools.js","sourceRoot":"","sources":["../../src/agent/hostTools.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
- import type { AgentImageInput, AgentSendOptions } from "./types.js";
1
+ import type { AgentAttachmentMeta, AgentImageInput, AgentSendOptions } from "./types.js";
2
2
  export type AgentSendPayload = string | {
3
3
  text: string;
4
4
  images?: AgentImageInput[];
5
+ attachments?: AgentAttachmentMeta[];
5
6
  };
6
7
  export interface ParsedSendPayload {
7
8
  prompt: string;
8
9
  images: AgentImageInput[];
10
+ attachments: AgentAttachmentMeta[];
9
11
  /** @deprecated First image as raw base64 for legacy screenshot writers. */
10
12
  screenshotBase64?: string;
11
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parseSendPayload.d.ts","sourceRoot":"","sources":["../../src/agent/parseSendPayload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAgBD,gFAAgF;AAChF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,gBAAqB,GAC7B,iBAAiB,CA0BnB;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAWA;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAK3D;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,8EAA8E;AAC9E,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQrE"}
1
+ {"version":3,"file":"parseSendPayload.d.ts","sourceRoot":"","sources":["../../src/agent/parseSendPayload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEzF,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACrC,CAAC;AAEN,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAgCD,gFAAgF;AAChF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,gBAAqB,GAC7B,iBAAiB,CAgCnB;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAWA;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAK3D;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,8EAA8E;AAC9E,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQrE"}
@@ -10,6 +10,19 @@ function imagesFromDeprecatedOptions(options) {
10
10
  }
11
11
  return [];
12
12
  }
13
+ function normalizeAttachments(attachments) {
14
+ if (!attachments?.length) {
15
+ return [];
16
+ }
17
+ return attachments.map((attachment, index) => ({
18
+ index: attachment.index ?? index,
19
+ publicUrl: attachment.publicUrl.trim(),
20
+ ...(attachment.destPath?.trim() ? { destPath: attachment.destPath.trim() } : {}),
21
+ ...(attachment.mimeType?.trim() ? { mimeType: attachment.mimeType.trim() } : {}),
22
+ ...(attachment.role ? { role: attachment.role } : {}),
23
+ ...(attachment.label?.trim() ? { label: attachment.label.trim() } : {}),
24
+ }));
25
+ }
13
26
  /** Normalizes Cursor-style send payloads into prompt text and vision fields. */
14
27
  export function parseSendPayload(payload, options = {}) {
15
28
  if (typeof payload === "string") {
@@ -17,6 +30,7 @@ export function parseSendPayload(payload, options = {}) {
17
30
  return {
18
31
  prompt: payload,
19
32
  images,
33
+ attachments: normalizeAttachments(options.attachments),
20
34
  screenshotBase64: images[0]?.data,
21
35
  };
22
36
  }
@@ -27,9 +41,11 @@ export function parseSendPayload(payload, options = {}) {
27
41
  const images = payloadImages.length > 0
28
42
  ? payloadImages
29
43
  : imagesFromDeprecatedOptions(options);
44
+ const attachments = normalizeAttachments(payload.attachments?.length ? payload.attachments : options.attachments);
30
45
  return {
31
46
  prompt: payload.text,
32
47
  images,
48
+ attachments,
33
49
  screenshotBase64: images[0]?.data,
34
50
  };
35
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parseSendPayload.js","sourceRoot":"","sources":["../../src/agent/parseSendPayload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseSendPayload.js","sourceRoot":"","sources":["../../src/agent/parseSendPayload.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import type { RunEventBus } from "./RunEventBus.js";
2
- import type { AgentCreateOptions, AgentImageInput, AgentRunResult, AgentSendOptions, ConversationTurn, PreparedWorkspace } from "./types.js";
2
+ import type { AgentAttachmentMeta, AgentCreateOptions, AgentImageInput, AgentRunResult, AgentSendOptions, ConversationTurn, PreparedWorkspace } from "./types.js";
3
+ import { type HostToolRegistration } from "./hostTools.js";
3
4
  export interface RunAgentTaskContext {
4
5
  signal?: AbortSignal;
5
6
  agentId?: string;
6
7
  images?: AgentImageInput[];
8
+ attachments?: AgentAttachmentMeta[];
9
+ hostTools?: HostToolRegistration[];
7
10
  conversationHistory?: ConversationTurn[];
8
11
  reuseWorkspace?: PreparedWorkspace;
9
12
  onWorkspacePrepared?: (workspace: PreparedWorkspace) => void;