@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.
- package/README.md +37 -0
- package/dist/agent/Agent.d.ts.map +1 -1
- package/dist/agent/Agent.js +9 -0
- package/dist/agent/Agent.js.map +1 -1
- package/dist/agent/RunEventBus.d.ts +1 -1
- package/dist/agent/RunEventBus.d.ts.map +1 -1
- package/dist/agent/RunEventBus.js.map +1 -1
- package/dist/agent/attachmentContext.d.ts +9 -0
- package/dist/agent/attachmentContext.d.ts.map +1 -0
- package/dist/agent/attachmentContext.js +72 -0
- package/dist/agent/attachmentContext.js.map +1 -0
- package/dist/agent/editCompletion.d.ts +29 -2
- package/dist/agent/editCompletion.d.ts.map +1 -1
- package/dist/agent/editCompletion.js +276 -8
- package/dist/agent/editCompletion.js.map +1 -1
- package/dist/agent/hostTools.d.ts +51 -0
- package/dist/agent/hostTools.d.ts.map +1 -0
- package/dist/agent/hostTools.js +111 -0
- package/dist/agent/hostTools.js.map +1 -0
- package/dist/agent/parseSendPayload.d.ts +3 -1
- package/dist/agent/parseSendPayload.d.ts.map +1 -1
- package/dist/agent/parseSendPayload.js +16 -0
- package/dist/agent/parseSendPayload.js.map +1 -1
- package/dist/agent/runAgentTask.d.ts +4 -1
- package/dist/agent/runAgentTask.d.ts.map +1 -1
- package/dist/agent/runAgentTask.js +12 -0
- package/dist/agent/runAgentTask.js.map +1 -1
- package/dist/agent/runValidationWithRepair.d.ts.map +1 -1
- package/dist/agent/runValidationWithRepair.js +4 -0
- package/dist/agent/runValidationWithRepair.js.map +1 -1
- package/dist/agent/tools/executeTool.d.ts.map +1 -1
- package/dist/agent/tools/executeTool.js +15 -1
- package/dist/agent/tools/executeTool.js.map +1 -1
- package/dist/agent/tools/types.d.ts +3 -0
- package/dist/agent/tools/types.d.ts.map +1 -1
- package/dist/agent/types.d.ts +62 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/agent/validateOptions.d.ts.map +1 -1
- package/dist/agent/validateOptions.js +10 -1
- package/dist/agent/validateOptions.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/agentic/AgenticCustomProvider.d.ts.map +1 -1
- package/dist/providers/agentic/AgenticCustomProvider.js +21 -0
- package/dist/providers/agentic/AgenticCustomProvider.js.map +1 -1
- package/dist/providers/agentic/agentLoop.d.ts +4 -1
- package/dist/providers/agentic/agentLoop.d.ts.map +1 -1
- package/dist/providers/agentic/agentLoop.js +287 -266
- package/dist/providers/agentic/agentLoop.js.map +1 -1
- package/dist/providers/agentic/toolSchemas.d.ts +314 -0
- package/dist/providers/agentic/toolSchemas.d.ts.map +1 -1
- package/dist/providers/agentic/toolSchemas.js +7 -0
- package/dist/providers/agentic/toolSchemas.js.map +1 -1
- package/dist/providers/types.d.ts +4 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/runner/jobTypes.d.ts +3 -2
- package/dist/runner/jobTypes.d.ts.map +1 -1
- package/dist/runner/run.d.ts.map +1 -1
- package/dist/runner/run.js +6 -2
- package/dist/runner/run.js.map +1 -1
- package/dist/runner/validateJob.d.ts.map +1 -1
- package/dist/runner/validateJob.js +135 -0
- package/dist/runner/validateJob.js.map +1 -1
- package/docs/host-integration-image-placement.md +152 -0
- package/docs/sandbox-runner.md +22 -1
- 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`.
|
package/docs/sandbox-runner.md
CHANGED
|
@@ -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.
|
|
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": [
|