@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
@@ -50,6 +50,134 @@ function validateImages(raw) {
50
50
  };
51
51
  });
52
52
  }
53
+ function validateAttachments(raw) {
54
+ if (raw === undefined) {
55
+ return undefined;
56
+ }
57
+ if (!Array.isArray(raw)) {
58
+ throw new SandboxJobValidationError("attachments must be an array");
59
+ }
60
+ return raw.map((item, index) => {
61
+ if (!isRecord(item)) {
62
+ throw new SandboxJobValidationError(`attachments[${index}] must be an object`);
63
+ }
64
+ const publicUrl = readString(item.publicUrl, `attachments[${index}].publicUrl`);
65
+ const attachment = {
66
+ index: item.index === undefined
67
+ ? index
68
+ : Number(item.index),
69
+ publicUrl,
70
+ };
71
+ if (!Number.isFinite(attachment.index)) {
72
+ throw new SandboxJobValidationError(`attachments[${index}].index must be a number`);
73
+ }
74
+ if (item.destPath !== undefined) {
75
+ attachment.destPath = readString(item.destPath, `attachments[${index}].destPath`);
76
+ }
77
+ if (item.mimeType !== undefined) {
78
+ attachment.mimeType = readString(item.mimeType, `attachments[${index}].mimeType`);
79
+ }
80
+ if (item.role !== undefined) {
81
+ const role = readString(item.role, `attachments[${index}].role`);
82
+ if (role !== "style_reference" &&
83
+ role !== "decoration" &&
84
+ role !== "content" &&
85
+ role !== "unspecified") {
86
+ throw new SandboxJobValidationError(`attachments[${index}].role is invalid`);
87
+ }
88
+ attachment.role = role;
89
+ }
90
+ if (item.label !== undefined) {
91
+ attachment.label = readString(item.label, `attachments[${index}].label`);
92
+ }
93
+ return attachment;
94
+ });
95
+ }
96
+ function validateCompletionRules(raw) {
97
+ if (!isRecord(raw)) {
98
+ throw new SandboxJobValidationError("completion.rules must be an object");
99
+ }
100
+ const rules = {};
101
+ if (raw.requiredChanges !== undefined) {
102
+ if (!Array.isArray(raw.requiredChanges)) {
103
+ throw new SandboxJobValidationError("completion.rules.requiredChanges must be an array");
104
+ }
105
+ rules.requiredChanges = raw.requiredChanges.map((item, index) => {
106
+ if (!isRecord(item)) {
107
+ throw new SandboxJobValidationError(`completion.rules.requiredChanges[${index}] must be an object`);
108
+ }
109
+ const requirement = {
110
+ pattern: readString(item.pattern, `completion.rules.requiredChanges[${index}].pattern`),
111
+ };
112
+ if (item.required !== undefined) {
113
+ return { ...requirement, required: Boolean(item.required) };
114
+ }
115
+ if (item.mustExist !== undefined) {
116
+ return { ...requirement, mustExist: Boolean(item.mustExist) };
117
+ }
118
+ return requirement;
119
+ });
120
+ }
121
+ if (raw.requiredPaths !== undefined) {
122
+ if (!Array.isArray(raw.requiredPaths)) {
123
+ throw new SandboxJobValidationError("completion.rules.requiredPaths must be an array");
124
+ }
125
+ rules.requiredPaths = raw.requiredPaths.map((p) => readString(p, "completion.rules.requiredPaths[]"));
126
+ }
127
+ if (raw.requireAssetPublish !== undefined) {
128
+ if (raw.requireAssetPublish === "uploads" ||
129
+ raw.requireAssetPublish === "assets" ||
130
+ raw.requireAssetPublish === "none") {
131
+ rules.requireAssetPublish = raw.requireAssetPublish;
132
+ }
133
+ else if (typeof raw.requireAssetPublish === "boolean") {
134
+ rules.requireAssetPublish = raw.requireAssetPublish;
135
+ }
136
+ else {
137
+ throw new SandboxJobValidationError('completion.rules.requireAssetPublish must be boolean or "uploads" | "assets" | "none"');
138
+ }
139
+ }
140
+ if (raw.requiredContent !== undefined) {
141
+ if (!Array.isArray(raw.requiredContent)) {
142
+ throw new SandboxJobValidationError("completion.rules.requiredContent must be an array");
143
+ }
144
+ rules.requiredContent = raw.requiredContent.map((item, index) => {
145
+ if (!isRecord(item)) {
146
+ throw new SandboxJobValidationError(`completion.rules.requiredContent[${index}] must be an object`);
147
+ }
148
+ const requirement = {
149
+ pathPattern: readString(item.pathPattern, `completion.rules.requiredContent[${index}].pathPattern`),
150
+ contentPattern: readString(item.contentPattern, `completion.rules.requiredContent[${index}].contentPattern`),
151
+ ...(item.required !== undefined ? { required: Boolean(item.required) } : {}),
152
+ ...(item.nudge !== undefined
153
+ ? {
154
+ nudge: readString(item.nudge, `completion.rules.requiredContent[${index}].nudge`),
155
+ }
156
+ : {}),
157
+ };
158
+ return requirement;
159
+ });
160
+ }
161
+ if (raw.orphanComponentGuard !== undefined) {
162
+ rules.orphanComponentGuard = Boolean(raw.orphanComponentGuard);
163
+ }
164
+ return rules;
165
+ }
166
+ function validateWiringHints(raw) {
167
+ if (!isRecord(raw)) {
168
+ throw new SandboxJobValidationError("completion.wiringHints must be an object");
169
+ }
170
+ const hints = {};
171
+ for (const key of ["configPaths", "pagePaths", "requiredFields"]) {
172
+ if (raw[key] !== undefined) {
173
+ if (!Array.isArray(raw[key])) {
174
+ throw new SandboxJobValidationError(`completion.wiringHints.${key} must be an array`);
175
+ }
176
+ hints[key] = raw[key].map((value) => readString(value, `completion.wiringHints.${key}[]`));
177
+ }
178
+ }
179
+ return hints;
180
+ }
53
181
  function validateCompletion(raw) {
54
182
  if (raw === undefined) {
55
183
  return undefined;
@@ -107,6 +235,12 @@ function validateCompletion(raw) {
107
235
  }
108
236
  }
109
237
  }
238
+ if (raw.rules !== undefined) {
239
+ completion.rules = validateCompletionRules(raw.rules);
240
+ }
241
+ if (raw.wiringHints !== undefined) {
242
+ completion.wiringHints = validateWiringHints(raw.wiringHints);
243
+ }
110
244
  return completion;
111
245
  }
112
246
  /** Validates and parses raw job JSON into SandboxAuviraJobInput v1. */
@@ -133,6 +267,7 @@ export function validateSandboxJob(raw) {
133
267
  promptText,
134
268
  model,
135
269
  images: validateImages(raw.images),
270
+ attachments: validateAttachments(raw.attachments),
136
271
  resumeAgentId: raw.resumeAgentId === undefined
137
272
  ? undefined
138
273
  : readString(raw.resumeAgentId, "resumeAgentId"),
@@ -1 +1 @@
1
- {"version":3,"file":"validateJob.js","sourceRoot":"","sources":["../../src/runner/validateJob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateJob.js","sourceRoot":"","sources":["../../src/runner/validateJob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ # Host integration: image placement
2
+
3
+ This guide maps the generic image-placement architecture to **SDK APIs (v0.6+)** vs **website-repo responsibilities**. The SDK stays product-agnostic; site-specific resolvers, prompts, and safety live in the host app.
4
+
5
+ ## Boundary
6
+
7
+ | Concern | Website repo | `@auvira.ai/sdk` |
8
+ | --- | --- | --- |
9
+ | Upload API → `public/uploads/` | Yes | No |
10
+ | `ImagePlacementTarget` resolver (hero / card / gallery) | Yes | No |
11
+ | Field-path checklists in prompts (`siteConfig.sections[…]`) | Yes | No |
12
+ | `evaluateImageEmbedding` + `image_unwired` rollback | Yes | No |
13
+ | `replace_image` / `place_image` domain tool | Yes (host tool) | Registry + dispatch only |
14
+ | Typed attachment metadata + manifest | Consumes | `AgentAttachmentMeta`, `.auvira/attachments.json` |
15
+ | Vision bytes for model | Optional | `images[]` on send payload |
16
+ | Serializable multi-file completion | Configures | `completion.rules` |
17
+ | Built-in `get_attachment_urls` | Can override | Shipped generic tool |
18
+
19
+ ## Layer 1 — Attachments vs vision images
20
+
21
+ **Attachments** are already on disk (host uploaded to `public/`). Pass metadata only:
22
+
23
+ ```ts
24
+ await agent.send(
25
+ {
26
+ text: harnessPrompt,
27
+ attachments: [
28
+ {
29
+ index: 0,
30
+ publicUrl: "/uploads/hero.jpg",
31
+ destPath: "public/uploads/hero.jpg",
32
+ role: "decoration",
33
+ label: "Hero background",
34
+ },
35
+ ],
36
+ // Optional: thumbnails for vision when style matching matters
37
+ images: [{ data: base64, mimeType: "image/jpeg" }],
38
+ },
39
+ { completion: { mode: "multi_file_required" } },
40
+ );
41
+ ```
42
+
43
+ The SDK:
44
+
45
+ 1. Writes `.auvira/attachments.json` in the workspace (no file copy).
46
+ 2. Injects a generic `UPLOADED ASSETS` block into harness prompts via `formatAttachmentsContextBlock`.
47
+ 3. Registers built-in `get_attachment_urls` unless the host overrides it.
48
+
49
+ Use **attachments** when URLs are known and files exist. Use **images** when the model needs pixel-level vision (vibe matching). Both can be combined.
50
+
51
+ ## Layer 2 — Serializable completion rules
52
+
53
+ `isComplete` callbacks cannot cross `job.json`. Use `completion.rules` instead:
54
+
55
+ ```ts
56
+ completion: {
57
+ mode: "multi_file_required",
58
+ requireWiringAfterStyle: true,
59
+ styleAssetPatterns: ["globals\\.css", "siteConfig", "pages/.*\\.siteConfig"],
60
+ wiringPatterns: ["page\\.tsx", "pages/.*\\.tsx"],
61
+ rules: {
62
+ requireAssetPublish: false, // uploads already on disk
63
+ requiredChanges: [
64
+ { pattern: "siteConfig|pages/.*\\.siteConfig", required: true },
65
+ { pattern: "page\\.tsx|pages/.*\\.tsx", required: true },
66
+ ],
67
+ requiredPaths: ["public/uploads/hero.jpg"],
68
+ },
69
+ }
70
+ ```
71
+
72
+ Rules gate **file classes** (regex on `changedFiles`), **workspace paths** (exact or glob), and **file contents** (regex on disk at end of turn).
73
+
74
+ ### Content-level rules (v0.6.1+)
75
+
76
+ When file-path gates are not enough (e.g. `siteConfig.ts` changed but `backgroundImageUrl` missing), add `requiredContent`:
77
+
78
+ ```ts
79
+ rules: {
80
+ requiredChanges: [
81
+ { pattern: "src/lib/siteConfig\\.ts", required: true },
82
+ { pattern: "src/app/page\\.tsx", required: true },
83
+ ],
84
+ requiredPaths: ["public/uploads/garden-path-*.png"], // globs supported
85
+ requireAssetPublish: false, // or omit when requiredPaths are all public/uploads/
86
+ requiredContent: [
87
+ {
88
+ pathPattern: "src/lib/siteConfig\\.ts",
89
+ contentPattern: 'backgroundImageUrl\\s*:\\s*["\']/uploads/',
90
+ nudge: "Set presentation.backgroundImageUrl to the uploaded /uploads/ URL.",
91
+ },
92
+ ],
93
+ },
94
+ wiringHints: {
95
+ requiredFields: ["presentation.backgroundImageUrl"], // nudge-only, opaque
96
+ configPaths: ["src/lib/siteConfig.ts"],
97
+ },
98
+ ```
99
+
100
+ **`requireAssetPublish` semantics:**
101
+
102
+ | Value | Behavior |
103
+ | --- | --- |
104
+ | `false` / `"none"` | Skip `public/assets/` gate |
105
+ | `"uploads"` | Skip `public/assets/` gate; use content rules for URL wiring |
106
+ | `true` / `"assets"` | Require `public/assets/` change unless all `requiredPaths` are existing `public/uploads/` files |
107
+
108
+ Override default `wiringPatterns` for image edits — the SDK default includes `/components/`, which is too permissive for config wiring checks.
109
+
110
+ Sandbox `job.json` supports `completion.rules`, `completion.wiringHints`, and `attachments` (see [sandbox-runner.md](./sandbox-runner.md)). **Host tools are in-process only** — not serializable to sandbox v1.
111
+
112
+ ## Layer 3 — Host-injectable tools
113
+
114
+ Register domain tools at **create or send** time (in-process only; not serializable to sandbox v1). You do **not** need to pass the same tools on both — send-time tools override create-time tools with the same name.
115
+
116
+ ```ts
117
+ // Per-send (dynamic target per turn)
118
+ await agent.send(payload, { hostTools: [placeUploadedImageTool] });
119
+
120
+ // Or create-time (stable across turns)
121
+ await Agent.create({ ..., hostTools: [placeUploadedImageTool] });
122
+ ```
123
+
124
+ Constraints:
125
+
126
+ - Names must match `^[a-z][a-z0-9_]{0,63}$`.
127
+ - Cannot collide with core tools (`grep`, `read`, `publish_reference_image`, etc.).
128
+ - Sandbox runner: use in-process `Agent.send` for host tools, or document a future `hostToolsEndpoint`.
129
+
130
+ ## Layer 4 — Publish + generate (existing v0.5)
131
+
132
+ - `publish_reference_image` — copy `.auvira/input-image-N` or vision primary to `public/assets/`.
133
+ - `generate_image` — MiniMax image-01 when `AUVIRA_IMAGE_GEN_ENABLED=true`.
134
+
135
+ Wire `publicUrl` from tool JSON in TSX/CSS; never `destPath` or `/public/...` in `src`.
136
+
137
+ ## Non-goals (SDK)
138
+
139
+ The SDK does **not** include:
140
+
141
+ - `siteConfig` schemas or section types
142
+ - Migration page paths or renderer names
143
+ - Doraemon / demo-specific examples
144
+ - `evaluateImageEmbedding` or `image_unwired` safety (host `cursorEditSafety`)
145
+
146
+ ## Suggested host wiring
147
+
148
+ 1. **Upload API** → write file under `public/uploads/`, build `AgentAttachmentMeta[]`.
149
+ 2. **Resolver** → produce target field paths for the prompt (repo-only).
150
+ 3. **Send** → `attachments` + harness prompt + `completion.rules`.
151
+ 4. **Optional** → register `place_image` host tool for structured placement.
152
+ 5. **Post-run** → host safety verifies embedding via `evaluateImageEmbedding`.
@@ -89,6 +89,14 @@ auvira-sdk-run --job <editJobId>
89
89
  "images": [
90
90
  { "data": "<base64>", "mimeType": "image/png" }
91
91
  ],
92
+ "attachments": [
93
+ {
94
+ "index": 0,
95
+ "publicUrl": "/uploads/hero.jpg",
96
+ "destPath": "public/uploads/hero.jpg",
97
+ "role": "decoration"
98
+ }
99
+ ],
92
100
  "selectedDom": {
93
101
  "sectionIndex": 6,
94
102
  "sectionTitle": "Our Services",
@@ -97,7 +105,15 @@ auvira-sdk-run --job <editJobId>
97
105
  "completion": {
98
106
  "mode": "multi_file_required",
99
107
  "requireWiringAfterStyle": true,
100
- "auto": false
108
+ "auto": false,
109
+ "rules": {
110
+ "requiredChanges": [
111
+ { "pattern": "siteConfig", "required": true },
112
+ { "pattern": "page\\.tsx", "required": true }
113
+ ],
114
+ "requiredPaths": ["public/uploads/hero.jpg"],
115
+ "requireAssetPublish": false
116
+ }
101
117
  },
102
118
  "validation": { "skip": true },
103
119
  "reuseWorkspace": false,
@@ -112,9 +128,14 @@ auvira-sdk-run --job <editJobId>
112
128
 
113
129
  - `promptText` must use harness format (`\n\n---\n\n` delimiter) for website edits.
114
130
  - `images` are base64 only — no host filesystem paths.
131
+ - `attachments` are host metadata for files already on disk (`publicUrl`, optional `destPath`, `role`). The runner writes `.auvira/attachments.json` and injects a generic context block.
132
+ - `completion.rules` provides JSON-serializable multi-file gates (`requiredChanges`, `requiredPaths`, `requireAssetPublish`).
115
133
  - `completion.isComplete` is not allowed (not JSON-serializable).
134
+ - `hostTools` are **not** supported in `job.json` v1 — register them in-process via `Agent.create` / `Agent.send`.
116
135
  - `model.apiKey` is rejected by the validator.
117
136
 
137
+ See [host-integration-image-placement.md](./host-integration-image-placement.md) for the full SDK vs website-repo split.
138
+
118
139
  ## Result (`SandboxAuviraJobResult`)
119
140
 
120
141
  Written to `result.json` and appended as the final `events.ndjson` line:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auvira.ai/sdk",
3
- "version": "0.5.0",
3
+ "version": "0.6.1",
4
4
  "description": "Cursor-SDK-compatible visual coding agent with custom model support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -48,6 +48,7 @@
48
48
  "test:runner:image-gen": "AUVIRA_REAL_IMAGE_GEN_E2E=true AUVIRA_IMAGE_GEN_ENABLED=true node --env-file=.env ./node_modules/vitest/vitest.mjs run src/__tests__/runner/run-cli-generate-image.real.e2e.test.ts",
49
49
  "test:real:image-api": "AUVIRA_REAL_IMAGE_API=true AUVIRA_IMAGE_GEN_ENABLED=true node --env-file=.env ./node_modules/vitest/vitest.mjs run src/__tests__/real/minimax-image-api.real.test.ts",
50
50
  "test:real:multi-image": "AUVIRA_REAL_MULTI_IMAGE_E2E=true node --env-file=.env ./node_modules/vitest/vitest.mjs run src/__tests__/real/agent-multi-image.e2e.test.ts src/__tests__/runner/run-cli-multi-image.real.e2e.test.ts",
51
+ "test:real:attachment-placement": "AUVIRA_REAL_ATTACHMENT_E2E=true node --env-file=.env ./node_modules/vitest/vitest.mjs run src/__tests__/real/agent-attachment-placement.e2e.test.ts src/__tests__/runner/run-cli-attachment-placement.real.e2e.test.ts",
51
52
  "test:runner:vibe": "node --env-file=.env ./node_modules/vitest/vitest.mjs run src/__tests__/runner/run-cli-vibe-consumer.real.e2e.test.ts"
52
53
  },
53
54
  "keywords": [