rivet-design 0.14.11 → 0.14.12
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/dist/agent-variants/SessionStore.d.ts.map +1 -1
- package/dist/agent-variants/SessionStore.js +3 -0
- package/dist/agent-variants/SessionStore.js.map +1 -1
- package/dist/agent-variants/WorktreeOrchestrator.d.ts +2 -0
- package/dist/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
- package/dist/agent-variants/WorktreeOrchestrator.js +48 -30
- package/dist/agent-variants/WorktreeOrchestrator.js.map +1 -1
- package/dist/agent-variants/contextAssets.d.ts +23 -0
- package/dist/agent-variants/contextAssets.d.ts.map +1 -0
- package/dist/agent-variants/contextAssets.js +199 -0
- package/dist/agent-variants/contextAssets.js.map +1 -0
- package/dist/agent-variants/contracts.d.ts +730 -180
- package/dist/agent-variants/contracts.d.ts.map +1 -1
- package/dist/agent-variants/contracts.js +33 -2
- package/dist/agent-variants/contracts.js.map +1 -1
- package/dist/agent-variants/variantContext.d.ts +2 -1
- package/dist/agent-variants/variantContext.d.ts.map +1 -1
- package/dist/agent-variants/variantContext.js +9 -0
- package/dist/agent-variants/variantContext.js.map +1 -1
- package/dist/agent-variants/workItemBriefing.d.ts.map +1 -1
- package/dist/agent-variants/workItemBriefing.js +12 -0
- package/dist/agent-variants/workItemBriefing.js.map +1 -1
- package/dist/cli/commands/mcpServe.d.ts +3 -1
- package/dist/cli/commands/mcpServe.d.ts.map +1 -1
- package/dist/cli/commands/mcpServe.js +164 -24
- package/dist/cli/commands/mcpServe.js.map +1 -1
- package/dist/cli/commands/reference.d.ts.map +1 -1
- package/dist/cli/commands/reference.js +10 -4
- package/dist/cli/commands/reference.js.map +1 -1
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +36 -7
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/variants.d.ts.map +1 -1
- package/dist/cli/commands/variants.js +69 -1
- package/dist/cli/commands/variants.js.map +1 -1
- package/dist/cli/commands/wait.d.ts +38 -0
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +16 -2
- package/dist/cli/commands/wait.js.map +1 -1
- package/dist/cli/router.d.ts.map +1 -1
- package/dist/cli/router.js +3 -0
- package/dist/cli/router.js.map +1 -1
- package/dist/cli/telemetry.d.ts +14 -0
- package/dist/cli/telemetry.d.ts.map +1 -0
- package/dist/cli/telemetry.js +71 -0
- package/dist/cli/telemetry.js.map +1 -0
- package/dist/config/telemetryContract.d.ts +3 -0
- package/dist/config/telemetryContract.d.ts.map +1 -0
- package/dist/config/telemetryContract.js +6 -0
- package/dist/config/telemetryContract.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +95 -6
- package/dist/index.js.map +1 -1
- package/dist/routes/agentVariants.d.ts.map +1 -1
- package/dist/routes/agentVariants.js +5 -0
- package/dist/routes/agentVariants.js.map +1 -1
- package/dist/services/TelemetryService.d.ts +47 -10
- package/dist/services/TelemetryService.d.ts.map +1 -1
- package/dist/services/TelemetryService.js +66 -13
- package/dist/services/TelemetryService.js.map +1 -1
- package/dist/services/VariantGenerationService.d.ts.map +1 -1
- package/dist/services/VariantGenerationService.js +10 -4
- package/dist/services/VariantGenerationService.js.map +1 -1
- package/dist/types/change-request-types.d.ts +3 -0
- package/dist/types/change-request-types.d.ts.map +1 -1
- package/dist/types/change-request-types.js +0 -5
- package/dist/types/change-request-types.js.map +1 -1
- package/package.json +1 -1
- package/src/ui/dist/assets/main-CgF_gMPR.js +422 -0
- package/src/ui/dist/index.html +1 -1
- package/src/ui/dist/assets/main-EGX1lAi3.js +0 -422
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ContextAssetInput, StagedContextAsset, VariantAssignedWorkspace, WorkspaceContextAsset } from './contracts';
|
|
2
|
+
export declare const MAX_CONTEXT_ASSET_BYTES: number;
|
|
3
|
+
export declare const MAX_CONTEXT_ASSET_TOTAL_BYTES: number;
|
|
4
|
+
type ContextAssetSource = {
|
|
5
|
+
resolvedPath: string;
|
|
6
|
+
originalFilename: string;
|
|
7
|
+
extension: string;
|
|
8
|
+
sizeBytes: number;
|
|
9
|
+
};
|
|
10
|
+
/** Validates one caller-selected asset without mutating the filesystem. */
|
|
11
|
+
export declare const inspectContextAssetSource: (input: ContextAssetInput) => ContextAssetSource;
|
|
12
|
+
/** @effect Copies context assets into the read-only session context bundle. */
|
|
13
|
+
export declare const stageContextAssets: (args: {
|
|
14
|
+
assets: ContextAssetInput[];
|
|
15
|
+
contextBundlePath: string;
|
|
16
|
+
}) => StagedContextAsset[];
|
|
17
|
+
/** @effect Copies staged context assets into one isolated variant workspace. */
|
|
18
|
+
export declare const materializeContextAssets: (args: {
|
|
19
|
+
assets: StagedContextAsset[];
|
|
20
|
+
workspace: VariantAssignedWorkspace;
|
|
21
|
+
}) => WorkspaceContextAsset[];
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=contextAssets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextAssets.d.ts","sourceRoot":"","sources":["../../src/agent-variants/contextAssets.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AACxD,eAAO,MAAM,6BAA6B,QAAoB,CAAC;AAyB/D,KAAK,kBAAkB,GAAG;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AA4BF,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB,GACpC,OAAO,iBAAiB,KACvB,kBAwCF,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,GAAI,MAAM;IACvC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,KAAG,kBAAkB,EAuDrB,CAAC;AAsCF,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,GAAI,MAAM;IAC7C,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,SAAS,EAAE,wBAAwB,CAAC;CACrC,KAAG,qBAAqB,EAqExB,CAAC"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.materializeContextAssets = exports.stageContextAssets = exports.inspectContextAssetSource = exports.MAX_CONTEXT_ASSET_TOTAL_BYTES = exports.MAX_CONTEXT_ASSET_BYTES = void 0;
|
|
7
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const contracts_1 = require("./contracts");
|
|
11
|
+
const errors_1 = require("./errors");
|
|
12
|
+
exports.MAX_CONTEXT_ASSET_BYTES = 50 * 1024 * 1024;
|
|
13
|
+
exports.MAX_CONTEXT_ASSET_TOTAL_BYTES = 100 * 1024 * 1024;
|
|
14
|
+
const MIME_TYPE_BY_EXTENSION = new Map([
|
|
15
|
+
['.woff', 'font/woff'],
|
|
16
|
+
['.woff2', 'font/woff2'],
|
|
17
|
+
['.ttf', 'font/ttf'],
|
|
18
|
+
['.otf', 'font/otf'],
|
|
19
|
+
['.eot', 'application/vnd.ms-fontobject'],
|
|
20
|
+
['.svg', 'image/svg+xml'],
|
|
21
|
+
['.png', 'image/png'],
|
|
22
|
+
['.jpg', 'image/jpeg'],
|
|
23
|
+
['.jpeg', 'image/jpeg'],
|
|
24
|
+
['.webp', 'image/webp'],
|
|
25
|
+
['.gif', 'image/gif'],
|
|
26
|
+
['.avif', 'image/avif'],
|
|
27
|
+
['.mp4', 'video/mp4'],
|
|
28
|
+
['.webm', 'video/webm'],
|
|
29
|
+
['.mov', 'video/quicktime'],
|
|
30
|
+
['.mp3', 'audio/mpeg'],
|
|
31
|
+
['.wav', 'audio/wav'],
|
|
32
|
+
['.ogg', 'audio/ogg'],
|
|
33
|
+
['.m4a', 'audio/mp4'],
|
|
34
|
+
['.pdf', 'application/pdf'],
|
|
35
|
+
]);
|
|
36
|
+
const isPathWithinRoot = (absolutePath, root) => {
|
|
37
|
+
const relative = path_1.default.relative(root, absolutePath);
|
|
38
|
+
return (relative === '' ||
|
|
39
|
+
(relative.length > 0 &&
|
|
40
|
+
!relative.startsWith('..') &&
|
|
41
|
+
!path_1.default.isAbsolute(relative)));
|
|
42
|
+
};
|
|
43
|
+
const safeFilename = (value) => {
|
|
44
|
+
const parsed = path_1.default.parse(value);
|
|
45
|
+
const base = parsed.name
|
|
46
|
+
.replace(/[^a-zA-Z0-9_-]+/g, '-')
|
|
47
|
+
.replace(/^-+|-+$/g, '')
|
|
48
|
+
.slice(0, 64)
|
|
49
|
+
.toLowerCase();
|
|
50
|
+
return `${base || 'asset'}${parsed.ext.toLowerCase()}`;
|
|
51
|
+
};
|
|
52
|
+
const sha256File = (filePath) => {
|
|
53
|
+
const hash = crypto_1.default.createHash('sha256');
|
|
54
|
+
hash.update(fs_1.default.readFileSync(filePath));
|
|
55
|
+
return hash.digest('hex');
|
|
56
|
+
};
|
|
57
|
+
/** Validates one caller-selected asset without mutating the filesystem. */
|
|
58
|
+
const inspectContextAssetSource = (input) => {
|
|
59
|
+
const absolutePath = path_1.default.resolve(input.path);
|
|
60
|
+
let sourceStat;
|
|
61
|
+
try {
|
|
62
|
+
sourceStat = fs_1.default.lstatSync(absolutePath);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
throw new errors_1.AgentVariantsError('SOURCE_CONTEXT_INVALID', `Context asset is not readable: ${input.path}`);
|
|
66
|
+
}
|
|
67
|
+
if (sourceStat.isSymbolicLink()) {
|
|
68
|
+
throw new errors_1.AgentVariantsError('SOURCE_CONTEXT_INVALID', `Context asset must not be a symlink: ${input.path}`);
|
|
69
|
+
}
|
|
70
|
+
if (!sourceStat.isFile()) {
|
|
71
|
+
throw new errors_1.AgentVariantsError('SOURCE_CONTEXT_INVALID', `Context asset must be a regular file: ${input.path}`);
|
|
72
|
+
}
|
|
73
|
+
const resolvedPath = fs_1.default.realpathSync(absolutePath);
|
|
74
|
+
const originalFilename = path_1.default.basename(resolvedPath);
|
|
75
|
+
const extension = path_1.default.extname(resolvedPath).toLowerCase();
|
|
76
|
+
if (sourceStat.size === 0 || sourceStat.size > exports.MAX_CONTEXT_ASSET_BYTES) {
|
|
77
|
+
throw new errors_1.AgentVariantsError('SOURCE_CONTEXT_TOO_LARGE', `Context asset must be 1 byte – ${exports.MAX_CONTEXT_ASSET_BYTES} bytes: ${input.path}`);
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
resolvedPath,
|
|
81
|
+
originalFilename,
|
|
82
|
+
extension,
|
|
83
|
+
sizeBytes: sourceStat.size,
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
exports.inspectContextAssetSource = inspectContextAssetSource;
|
|
87
|
+
/** @effect Copies context assets into the read-only session context bundle. */
|
|
88
|
+
const stageContextAssets = (args) => {
|
|
89
|
+
if (args.assets.length > contracts_1.CONTEXT_ASSET_MAX_ITEMS) {
|
|
90
|
+
throw new errors_1.AgentVariantsError('SOURCE_CONTEXT_INVALID', `Context assets exceed item limit (${args.assets.length} > ${contracts_1.CONTEXT_ASSET_MAX_ITEMS})`);
|
|
91
|
+
}
|
|
92
|
+
const inspected = args.assets.map((asset) => ({
|
|
93
|
+
input: asset,
|
|
94
|
+
source: (0, exports.inspectContextAssetSource)(asset),
|
|
95
|
+
}));
|
|
96
|
+
const uniquePaths = new Set(inspected.map(({ source }) => source.resolvedPath));
|
|
97
|
+
if (uniquePaths.size !== inspected.length) {
|
|
98
|
+
throw new errors_1.AgentVariantsError('SOURCE_CONTEXT_INVALID', 'Context assets contain duplicate source paths.');
|
|
99
|
+
}
|
|
100
|
+
const totalBytes = inspected.reduce((total, { source }) => total + source.sizeBytes, 0);
|
|
101
|
+
if (totalBytes > exports.MAX_CONTEXT_ASSET_TOTAL_BYTES) {
|
|
102
|
+
throw new errors_1.AgentVariantsError('SOURCE_CONTEXT_TOO_LARGE', `Context assets exceed total size limit (${totalBytes} > ${exports.MAX_CONTEXT_ASSET_TOTAL_BYTES})`);
|
|
103
|
+
}
|
|
104
|
+
const assetDirectory = path_1.default.join(args.contextBundlePath, 'assets');
|
|
105
|
+
fs_1.default.mkdirSync(assetDirectory, { recursive: true });
|
|
106
|
+
return inspected.map(({ input, source }, index) => {
|
|
107
|
+
const id = `asset-${index + 1}`;
|
|
108
|
+
const filename = `${id}-${safeFilename(source.originalFilename)}`;
|
|
109
|
+
const destination = path_1.default.join(assetDirectory, filename);
|
|
110
|
+
fs_1.default.copyFileSync(source.resolvedPath, destination);
|
|
111
|
+
const stagedStat = fs_1.default.statSync(destination);
|
|
112
|
+
if (!stagedStat.isFile() || stagedStat.nlink !== 1) {
|
|
113
|
+
throw new errors_1.AgentVariantsError('SOURCE_CONTEXT_INVALID', `Staged context asset is not a safe regular file: ${input.path}`);
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
id,
|
|
117
|
+
path: destination,
|
|
118
|
+
originalFilename: source.originalFilename,
|
|
119
|
+
...(MIME_TYPE_BY_EXTENSION.get(source.extension)
|
|
120
|
+
? { mimeType: MIME_TYPE_BY_EXTENSION.get(source.extension) }
|
|
121
|
+
: {}),
|
|
122
|
+
sizeBytes: stagedStat.size,
|
|
123
|
+
sha256: sha256File(destination),
|
|
124
|
+
...(input.label ? { label: input.label } : {}),
|
|
125
|
+
};
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
exports.stageContextAssets = stageContextAssets;
|
|
129
|
+
const assertPathWithinRoot = (candidate, root) => {
|
|
130
|
+
if (!isPathWithinRoot(candidate, root)) {
|
|
131
|
+
throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `Context asset destination escapes its workspace: ${candidate}`);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
const workspaceAssetDestination = (args) => {
|
|
135
|
+
if (args.workspace.kind === 'artifact_directory') {
|
|
136
|
+
return {
|
|
137
|
+
workspacePath: path_1.default.join(args.workspace.rootPath, 'assets', 'rivet', args.filename),
|
|
138
|
+
referencePath: `./assets/rivet/${args.filename}`,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
const hasPublicDirectoryConvention = fs_1.default.existsSync(path_1.default.join(args.workspace.projectPath, 'package.json'));
|
|
142
|
+
const assetDirectory = hasPublicDirectoryConvention
|
|
143
|
+
? path_1.default.join(args.workspace.projectPath, 'public', 'rivet-assets')
|
|
144
|
+
: path_1.default.join(args.workspace.projectPath, 'rivet-assets');
|
|
145
|
+
return {
|
|
146
|
+
workspacePath: path_1.default.join(assetDirectory, args.filename),
|
|
147
|
+
referencePath: `/rivet-assets/${args.filename}`,
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
/** @effect Copies staged context assets into one isolated variant workspace. */
|
|
151
|
+
const materializeContextAssets = (args) => {
|
|
152
|
+
fs_1.default.mkdirSync(args.workspace.rootPath, { recursive: true });
|
|
153
|
+
const requestedWorkspaceRoot = path_1.default.resolve(args.workspace.rootPath);
|
|
154
|
+
const resolvedWorkspaceRoot = fs_1.default.realpathSync(args.workspace.rootPath);
|
|
155
|
+
return args.assets.map((asset) => {
|
|
156
|
+
let sourceStat;
|
|
157
|
+
try {
|
|
158
|
+
sourceStat = fs_1.default.lstatSync(asset.path);
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `Context asset is missing from its staged bundle: ${asset.id}`);
|
|
162
|
+
}
|
|
163
|
+
if (sourceStat.isSymbolicLink() ||
|
|
164
|
+
!sourceStat.isFile() ||
|
|
165
|
+
sourceStat.nlink !== 1) {
|
|
166
|
+
throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `Context asset is not a safe staged file: ${asset.id}`);
|
|
167
|
+
}
|
|
168
|
+
if (sha256File(asset.path) !== asset.sha256) {
|
|
169
|
+
throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `Context asset digest changed after staging: ${asset.id}`);
|
|
170
|
+
}
|
|
171
|
+
const filename = path_1.default.basename(asset.path);
|
|
172
|
+
const destination = workspaceAssetDestination({
|
|
173
|
+
workspace: args.workspace,
|
|
174
|
+
filename,
|
|
175
|
+
});
|
|
176
|
+
assertPathWithinRoot(path_1.default.resolve(destination.workspacePath), requestedWorkspaceRoot);
|
|
177
|
+
fs_1.default.mkdirSync(path_1.default.dirname(destination.workspacePath), { recursive: true });
|
|
178
|
+
const resolvedDestinationDirectory = fs_1.default.realpathSync(path_1.default.dirname(destination.workspacePath));
|
|
179
|
+
assertPathWithinRoot(resolvedDestinationDirectory, resolvedWorkspaceRoot);
|
|
180
|
+
fs_1.default.copyFileSync(asset.path, destination.workspacePath);
|
|
181
|
+
const destinationStat = fs_1.default.lstatSync(destination.workspacePath);
|
|
182
|
+
if (destinationStat.isSymbolicLink() ||
|
|
183
|
+
!destinationStat.isFile() ||
|
|
184
|
+
destinationStat.nlink !== 1 ||
|
|
185
|
+
sha256File(destination.workspacePath) !== asset.sha256) {
|
|
186
|
+
throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `Context asset failed workspace integrity validation: ${asset.id}`);
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
id: asset.id,
|
|
190
|
+
sourcePath: asset.path,
|
|
191
|
+
workspacePath: destination.workspacePath,
|
|
192
|
+
referencePath: destination.referencePath,
|
|
193
|
+
sha256: asset.sha256,
|
|
194
|
+
...(asset.label ? { label: asset.label } : {}),
|
|
195
|
+
};
|
|
196
|
+
});
|
|
197
|
+
};
|
|
198
|
+
exports.materializeContextAssets = materializeContextAssets;
|
|
199
|
+
//# sourceMappingURL=contextAssets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextAssets.js","sourceRoot":"","sources":["../../src/agent-variants/contextAssets.ts"],"names":[],"mappings":"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"}
|