rivet-design 0.21.10 → 0.22.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.
- package/README.md +5 -1
- package/README.npm.md +5 -1
- package/bin/rivet.js +4 -0
- package/dist/agent-variants/PreviewRuntime.d.ts.map +1 -1
- package/dist/agent-variants/PreviewRuntime.js +3 -5
- package/dist/agent-variants/PreviewRuntime.js.map +1 -1
- package/dist/agent-variants/SessionStore.d.ts +12 -2
- package/dist/agent-variants/SessionStore.d.ts.map +1 -1
- package/dist/agent-variants/SessionStore.js +69 -77
- package/dist/agent-variants/SessionStore.js.map +1 -1
- package/dist/agent-variants/VariantWorkspaceManager.d.ts.map +1 -1
- package/dist/agent-variants/VariantWorkspaceManager.js +8 -14
- package/dist/agent-variants/VariantWorkspaceManager.js.map +1 -1
- package/dist/agent-variants/WorkspaceProvisioning.d.ts.map +1 -1
- package/dist/agent-variants/WorkspaceProvisioning.js +20 -18
- package/dist/agent-variants/WorkspaceProvisioning.js.map +1 -1
- package/dist/agent-variants/WorktreeOrchestrator.d.ts +2 -1
- package/dist/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
- package/dist/agent-variants/WorktreeOrchestrator.js +53 -26
- package/dist/agent-variants/WorktreeOrchestrator.js.map +1 -1
- package/dist/agent-variants/contextAssets.d.ts.map +1 -1
- package/dist/agent-variants/contextAssets.js +2 -8
- package/dist/agent-variants/contextAssets.js.map +1 -1
- package/dist/agent-variants/contracts.d.ts +73 -63
- package/dist/agent-variants/contracts.d.ts.map +1 -1
- package/dist/agent-variants/contracts.js.map +1 -1
- package/dist/agent-variants/staticPreviewFiles.d.ts.map +1 -1
- package/dist/agent-variants/staticPreviewFiles.js +7 -6
- package/dist/agent-variants/staticPreviewFiles.js.map +1 -1
- package/dist/agent-variants/staticPreviewRefinements.d.ts.map +1 -1
- package/dist/agent-variants/staticPreviewRefinements.js +3 -3
- package/dist/agent-variants/staticPreviewRefinements.js.map +1 -1
- package/dist/agent-variants/variantContext.d.ts.map +1 -1
- package/dist/agent-variants/variantContext.js +2 -8
- package/dist/agent-variants/variantContext.js.map +1 -1
- package/dist/agent-variants/variantWorkspaceFiles.d.ts +0 -1
- package/dist/agent-variants/variantWorkspaceFiles.d.ts.map +1 -1
- package/dist/agent-variants/variantWorkspaceFiles.js +5 -10
- package/dist/agent-variants/variantWorkspaceFiles.js.map +1 -1
- package/dist/agent-variants/workItemInput.d.ts +5950 -0
- package/dist/agent-variants/workItemInput.d.ts.map +1 -0
- package/dist/agent-variants/workItemInput.js +76 -0
- package/dist/agent-variants/workItemInput.js.map +1 -0
- package/dist/agent-variants/workItemPreviewRoutes.js +2 -2
- package/dist/agent-variants/workItemPreviewRoutes.js.map +1 -1
- package/dist/cli/handoff.d.ts +5 -0
- package/dist/cli/handoff.d.ts.map +1 -1
- package/dist/cli/handoff.js +13 -10
- package/dist/cli/handoff.js.map +1 -1
- package/dist/config/proxy.d.ts +3 -0
- package/dist/config/proxy.d.ts.map +1 -1
- package/dist/config/proxy.js +7 -5
- package/dist/config/proxy.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -7
- package/dist/index.js.map +1 -1
- package/dist/install/agentSkill.d.ts +16 -0
- package/dist/install/agentSkill.d.ts.map +1 -0
- package/dist/install/agentSkill.js +54 -0
- package/dist/install/agentSkill.js.map +1 -0
- package/dist/install/allowlists.d.ts +3 -1
- package/dist/install/allowlists.d.ts.map +1 -1
- package/dist/install/allowlists.js +89 -27
- package/dist/install/allowlists.js.map +1 -1
- package/dist/install/automaticCliUpdate.d.ts.map +1 -1
- package/dist/install/automaticCliUpdate.js +6 -11
- package/dist/install/automaticCliUpdate.js.map +1 -1
- package/dist/install/channelCli.d.ts.map +1 -1
- package/dist/install/channelCli.js +2 -37
- package/dist/install/channelCli.js.map +1 -1
- package/dist/install/channelManager.d.ts +2 -1
- package/dist/install/channelManager.d.ts.map +1 -1
- package/dist/install/channelManager.js +23 -20
- package/dist/install/channelManager.js.map +1 -1
- package/dist/install/codexSkill.d.ts +1 -8
- package/dist/install/codexSkill.d.ts.map +1 -1
- package/dist/install/codexSkill.js +9 -50
- package/dist/install/codexSkill.js.map +1 -1
- package/dist/install/cursorSkill.d.ts +6 -0
- package/dist/install/cursorSkill.d.ts.map +1 -0
- package/dist/install/cursorSkill.js +36 -0
- package/dist/install/cursorSkill.js.map +1 -0
- package/dist/install/globalBootstrap.d.ts +3 -2
- package/dist/install/globalBootstrap.d.ts.map +1 -1
- package/dist/install/globalBootstrap.js +9 -41
- package/dist/install/globalBootstrap.js.map +1 -1
- package/dist/install/harnesses.d.ts +27 -0
- package/dist/install/harnesses.d.ts.map +1 -1
- package/dist/install/harnesses.js +174 -76
- package/dist/install/harnesses.js.map +1 -1
- package/dist/library/importFiles.d.ts.map +1 -1
- package/dist/library/importFiles.js +3 -3
- package/dist/library/importFiles.js.map +1 -1
- package/dist/prototype-host.js +2 -1
- package/dist/prototype-host.js.map +1 -1
- package/dist/routes/agentVariants.d.ts.map +1 -1
- package/dist/routes/agentVariants.js +5 -11
- package/dist/routes/agentVariants.js.map +1 -1
- package/dist/routes/library/staticPreview.d.ts.map +1 -1
- package/dist/routes/library/staticPreview.js +9 -7
- package/dist/routes/library/staticPreview.js.map +1 -1
- package/dist/routes/prototypeHost.d.ts.map +1 -1
- package/dist/routes/prototypeHost.js +3 -3
- package/dist/routes/prototypeHost.js.map +1 -1
- package/dist/routes/staticPreviewPolicy.d.ts.map +1 -1
- package/dist/routes/staticPreviewPolicy.js +2 -10
- package/dist/routes/staticPreviewPolicy.js.map +1 -1
- package/dist/routes/variantRequestSchema.d.ts +4 -4
- package/dist/services/AuthService.js +3 -3
- package/dist/services/AuthService.js.map +1 -1
- package/dist/services/BundleStore.d.ts.map +1 -1
- package/dist/services/BundleStore.js +4 -8
- package/dist/services/BundleStore.js.map +1 -1
- package/dist/services/DependencyPreparationService.d.ts.map +1 -1
- package/dist/services/DependencyPreparationService.js +4 -3
- package/dist/services/DependencyPreparationService.js.map +1 -1
- package/dist/services/OperatingSystemServices.d.ts +5 -0
- package/dist/services/OperatingSystemServices.d.ts.map +1 -1
- package/dist/services/OperatingSystemServices.js +9 -3
- package/dist/services/OperatingSystemServices.js.map +1 -1
- package/dist/services/ProjectImport.d.ts.map +1 -1
- package/dist/services/ProjectImport.js +2 -1
- package/dist/services/ProjectImport.js.map +1 -1
- package/dist/services/ProjectPackageManager.d.ts +0 -1
- package/dist/services/ProjectPackageManager.d.ts.map +1 -1
- package/dist/services/ProjectPackageManager.js +5 -12
- package/dist/services/ProjectPackageManager.js.map +1 -1
- package/dist/services/PrototypeBuildService.d.ts.map +1 -1
- package/dist/services/PrototypeBuildService.js +10 -6
- package/dist/services/PrototypeBuildService.js.map +1 -1
- package/dist/services/VariantHistoryService.js +5 -8
- package/dist/services/VariantHistoryService.js.map +1 -1
- package/dist/services/WorktreeManager.d.ts.map +1 -1
- package/dist/services/WorktreeManager.js +4 -4
- package/dist/services/WorktreeManager.js.map +1 -1
- package/dist/services/packageManagerProcess.d.ts +20 -0
- package/dist/services/packageManagerProcess.d.ts.map +1 -0
- package/dist/services/packageManagerProcess.js +55 -0
- package/dist/services/packageManagerProcess.js.map +1 -0
- package/dist/services/referenceImages.d.ts.map +1 -1
- package/dist/services/referenceImages.js +4 -4
- package/dist/services/referenceImages.js.map +1 -1
- package/dist/services/staticProjectTarget.d.ts.map +1 -1
- package/dist/services/staticProjectTarget.js +3 -5
- package/dist/services/staticProjectTarget.js.map +1 -1
- package/dist/storage/library/ProjectPreviewCache.d.ts +2 -2
- package/dist/utils/pathContainment.d.ts +15 -0
- package/dist/utils/pathContainment.d.ts.map +1 -0
- package/dist/utils/pathContainment.js +46 -0
- package/dist/utils/pathContainment.js.map +1 -0
- package/dist/utils/skillWriter.d.ts +5 -2
- package/dist/utils/skillWriter.d.ts.map +1 -1
- package/dist/utils/skillWriter.js +93 -34
- package/dist/utils/skillWriter.js.map +1 -1
- package/package.json +2 -2
- package/src/ui/dist/assets/{LibraryEntry-CnaaBqt0.js → LibraryEntry-CjxmVfhv.js} +8 -8
- package/src/ui/dist/assets/{main-CPmhttJP.js → main-CdSzrhWD.js} +133 -133
- package/src/ui/dist/assets/main-DVb3ws41.css +1 -0
- package/src/ui/dist/index.html +2 -2
- package/src/ui/dist/assets/main-vcYlLdli.css +0 -1
|
@@ -9,6 +9,7 @@ const contracts_1 = require("./contracts");
|
|
|
9
9
|
const briefContent_1 = require("./briefContent");
|
|
10
10
|
const runLabel_1 = require("./runLabel");
|
|
11
11
|
const runPlan_1 = require("./runPlan");
|
|
12
|
+
const workItemInput_1 = require("./workItemInput");
|
|
12
13
|
const MAX_SUBTITLE_WORDS = 10;
|
|
13
14
|
const MAX_RELEVANT_FILES = 12;
|
|
14
15
|
const capSubtitleWords = (text) => {
|
|
@@ -22,11 +23,10 @@ exports.DEFAULT_LEASE_TTL_MS = 20 * 60 * 1000;
|
|
|
22
23
|
exports.SCAFFOLD_LEASE_TTL_MS = 30 * 60 * 1000;
|
|
23
24
|
const SYSTEM_CLOCK = { now: () => Date.now() };
|
|
24
25
|
function isAdoptedVariant(item) {
|
|
25
|
-
return Boolean(item.input.adoptedFrom);
|
|
26
|
+
return (0, workItemInput_1.isVariantWorkItem)(item) && Boolean(item.input.adoptedFrom);
|
|
26
27
|
}
|
|
27
28
|
function isForkedStaticPreviewVariant(item) {
|
|
28
|
-
return
|
|
29
|
-
Boolean(item.input.sourceVariantId));
|
|
29
|
+
return item.kind === 'static_preview' && Boolean(item.input.sourceVariantId);
|
|
30
30
|
}
|
|
31
31
|
function fingerprint(parts) {
|
|
32
32
|
return parts.map((p) => (p === undefined ? '∅' : String(p))).join('|');
|
|
@@ -762,12 +762,13 @@ class SessionStore {
|
|
|
762
762
|
item.error = args.error;
|
|
763
763
|
if (args.runtime)
|
|
764
764
|
item.runtime = args.runtime;
|
|
765
|
-
if (args.status === 'succeeded' &&
|
|
766
|
-
|
|
765
|
+
if (args.status === 'succeeded' &&
|
|
766
|
+
(args.title || args.description) &&
|
|
767
|
+
(0, workItemInput_1.isVariantWorkItem)(item)) {
|
|
767
768
|
if (args.title)
|
|
768
|
-
input.briefLabel = args.title.trim().slice(0, 80);
|
|
769
|
+
item.input.briefLabel = args.title.trim().slice(0, 80);
|
|
769
770
|
if (args.description)
|
|
770
|
-
input.briefBody = args.description.trim();
|
|
771
|
+
item.input.briefBody = args.description.trim();
|
|
771
772
|
}
|
|
772
773
|
item.acceptedReports.push(fp);
|
|
773
774
|
item.lease = undefined;
|
|
@@ -797,8 +798,8 @@ class SessionStore {
|
|
|
797
798
|
item.lease = undefined;
|
|
798
799
|
item.output = undefined;
|
|
799
800
|
item.error = undefined;
|
|
800
|
-
|
|
801
|
-
|
|
801
|
+
if ((0, workItemInput_1.isVariantWorkItem)(item))
|
|
802
|
+
item.input = { ...item.input, qaRetry: args.qaRetry };
|
|
802
803
|
const result = {
|
|
803
804
|
stage: session.stage,
|
|
804
805
|
progress: this.progressOf(session),
|
|
@@ -818,8 +819,7 @@ class SessionStore {
|
|
|
818
819
|
const activeRefinement = [...session.workItems.values()].find((item) => {
|
|
819
820
|
if (item.kind !== 'refine_variant')
|
|
820
821
|
return false;
|
|
821
|
-
|
|
822
|
-
return input.variantId === args.variantId && item.status === 'pending';
|
|
822
|
+
return (item.input.variantId === args.variantId && item.status === 'pending');
|
|
823
823
|
});
|
|
824
824
|
if (activeRefinement) {
|
|
825
825
|
throw new errors_1.AgentVariantsError('PENDING_CHANGE_CONFLICT', 'A refinement is already queued for this variant');
|
|
@@ -847,7 +847,7 @@ class SessionStore {
|
|
|
847
847
|
...(args.currentHtml ? { currentHtml: args.currentHtml } : {}),
|
|
848
848
|
...(args.targetElement ? { targetElement: args.targetElement } : {}),
|
|
849
849
|
...(args.requestId ? { requestId: args.requestId } : {}),
|
|
850
|
-
projectContext: targetInput.projectContext
|
|
850
|
+
projectContext: targetInput.projectContext,
|
|
851
851
|
...(targetInput.context ? { context: targetInput.context } : {}),
|
|
852
852
|
...(relevantFiles.length > 0 ? { relevantFiles } : {}),
|
|
853
853
|
},
|
|
@@ -870,8 +870,7 @@ class SessionStore {
|
|
|
870
870
|
const activeRefinement = [...session.workItems.values()].find((item) => {
|
|
871
871
|
if (item.kind !== 'refine_variant')
|
|
872
872
|
return false;
|
|
873
|
-
|
|
874
|
-
return (input.variantId === args.sourceVariantId &&
|
|
873
|
+
return (item.input.variantId === args.sourceVariantId &&
|
|
875
874
|
(item.status === 'pending' || item.status === 'running'));
|
|
876
875
|
});
|
|
877
876
|
if (activeRefinement) {
|
|
@@ -946,7 +945,7 @@ class SessionStore {
|
|
|
946
945
|
...(args.targetElement ? { targetElement: args.targetElement } : {}),
|
|
947
946
|
...(args.requestId ? { requestId: args.requestId } : {}),
|
|
948
947
|
...(args.fidelity ? { fidelity: args.fidelity } : {}),
|
|
949
|
-
projectContext: sourceInput.projectContext
|
|
948
|
+
projectContext: sourceInput.projectContext,
|
|
950
949
|
...(context ? { context } : {}),
|
|
951
950
|
...(relevantFiles.length > 0 ? { relevantFiles } : {}),
|
|
952
951
|
},
|
|
@@ -984,16 +983,15 @@ class SessionStore {
|
|
|
984
983
|
const activeRefinement = [...session.workItems.values()].find((item) => {
|
|
985
984
|
if (item.kind !== 'refine_variant')
|
|
986
985
|
return false;
|
|
987
|
-
|
|
988
|
-
return (input.variantId === args.sourceVariantId &&
|
|
986
|
+
return (item.input.variantId === args.sourceVariantId &&
|
|
989
987
|
(item.status === 'pending' || item.status === 'running'));
|
|
990
988
|
});
|
|
991
989
|
if (activeRefinement) {
|
|
992
990
|
throw new errors_1.AgentVariantsError('PENDING_CHANGE_CONFLICT', 'Cannot vary a variant while an in-place refinement is pending or running');
|
|
993
991
|
}
|
|
994
992
|
}
|
|
995
|
-
const sourceInput = (source
|
|
996
|
-
const relevantFiles = mergeRelevantFiles(sourceInput
|
|
993
|
+
const sourceInput = source && (0, workItemInput_1.isVariantWorkItem)(source) ? source.input : undefined;
|
|
994
|
+
const relevantFiles = mergeRelevantFiles(sourceInput?.relevantFiles, args.relevantFiles);
|
|
997
995
|
const createdWorkItemIds = [];
|
|
998
996
|
for (const [batchSlotIndex, brief] of args.briefs.entries()) {
|
|
999
997
|
const context = resolveVariantWorkItemContext({
|
|
@@ -1015,7 +1013,7 @@ class SessionStore {
|
|
|
1015
1013
|
briefId: brief.briefId,
|
|
1016
1014
|
briefLabel: brief.label,
|
|
1017
1015
|
briefBody: brief.body,
|
|
1018
|
-
references: (0, variant_reference_1.mergeVariantReferences)(sourceInput
|
|
1016
|
+
references: (0, variant_reference_1.mergeVariantReferences)(sourceInput?.references, context?.references),
|
|
1019
1017
|
instruction: args.instruction,
|
|
1020
1018
|
guidance: args.guidance ?? [],
|
|
1021
1019
|
...(brief.notes ? { briefNotes: brief.notes } : {}),
|
|
@@ -1024,10 +1022,10 @@ class SessionStore {
|
|
|
1024
1022
|
...(args.sourceVariantId
|
|
1025
1023
|
? { sourceVariantId: args.sourceVariantId }
|
|
1026
1024
|
: {}),
|
|
1027
|
-
...(
|
|
1025
|
+
...(sourceInput?.briefLabel
|
|
1028
1026
|
? { sourceLabel: sourceInput.briefLabel }
|
|
1029
1027
|
: {}),
|
|
1030
|
-
...(
|
|
1028
|
+
...(sourceInput?.briefBody
|
|
1031
1029
|
? { sourceBody: sourceInput.briefBody }
|
|
1032
1030
|
: {}),
|
|
1033
1031
|
target: session.target,
|
|
@@ -1053,10 +1051,9 @@ class SessionStore {
|
|
|
1053
1051
|
}
|
|
1054
1052
|
const existing = this.findAdoptedVariant(session, args.source);
|
|
1055
1053
|
if (existing) {
|
|
1056
|
-
const input = existing.input;
|
|
1057
1054
|
return {
|
|
1058
1055
|
workItemId: existing.id,
|
|
1059
|
-
briefId: input.briefId ?? '',
|
|
1056
|
+
briefId: existing.input.briefId ?? '',
|
|
1060
1057
|
created: false,
|
|
1061
1058
|
};
|
|
1062
1059
|
}
|
|
@@ -1121,10 +1118,9 @@ class SessionStore {
|
|
|
1121
1118
|
}
|
|
1122
1119
|
findAdoptedVariant(session, source) {
|
|
1123
1120
|
for (const item of session.workItems.values()) {
|
|
1124
|
-
if (item.removed)
|
|
1121
|
+
if (item.removed || !(0, workItemInput_1.isVariantWorkItem)(item))
|
|
1125
1122
|
continue;
|
|
1126
|
-
const adoptedFrom = item.input
|
|
1127
|
-
.adoptedFrom;
|
|
1123
|
+
const { adoptedFrom } = item.input;
|
|
1128
1124
|
if (adoptedFrom &&
|
|
1129
1125
|
adoptedFrom.sessionId === source.sessionId &&
|
|
1130
1126
|
adoptedFrom.variantId === source.variantId) {
|
|
@@ -1136,43 +1132,38 @@ class SessionStore {
|
|
|
1136
1132
|
assignVariantPreviewRoutes(args) {
|
|
1137
1133
|
const session = this.requireSession(args.sessionId);
|
|
1138
1134
|
const source = args.sourceVariantId
|
|
1139
|
-
? this.requireWorkItem(session, args.sourceVariantId)
|
|
1135
|
+
? this.requireWorkItem(session, args.sourceVariantId)
|
|
1140
1136
|
: undefined;
|
|
1141
|
-
const merged = (0, preview_routes_1.mergePreviewRoutes)(args.previewRoutes, source
|
|
1137
|
+
const merged = (0, preview_routes_1.mergePreviewRoutes)(args.previewRoutes, source && (0, workItemInput_1.isVariantWorkItem)(source)
|
|
1138
|
+
? source.input.previewRoutes
|
|
1139
|
+
: undefined);
|
|
1142
1140
|
if (!merged.length)
|
|
1143
1141
|
return;
|
|
1144
1142
|
const previewRoutes = preview_routes_1.previewRoutesSchema.parse(merged);
|
|
1145
1143
|
for (const workItemId of args.workItemIds) {
|
|
1146
1144
|
const item = this.requireWorkItem(session, workItemId);
|
|
1147
|
-
|
|
1148
|
-
...item.input,
|
|
1149
|
-
previewRoutes: [...previewRoutes],
|
|
1150
|
-
};
|
|
1145
|
+
if ((0, workItemInput_1.isVariantWorkItem)(item))
|
|
1146
|
+
item.input = { ...item.input, previewRoutes: [...previewRoutes] };
|
|
1151
1147
|
}
|
|
1152
1148
|
}
|
|
1153
1149
|
assignVariantRequestId(sessionId, workItemIds, requestId) {
|
|
1154
1150
|
const session = this.requireSession(sessionId);
|
|
1155
1151
|
for (const id of workItemIds) {
|
|
1156
1152
|
const item = session.workItems.get(id);
|
|
1157
|
-
if (
|
|
1158
|
-
|
|
1159
|
-
const input = (item.input ?? {});
|
|
1160
|
-
item.input = { ...input, requestId };
|
|
1153
|
+
if (item && (0, workItemInput_1.isVariantWorkItem)(item))
|
|
1154
|
+
item.input = { ...item.input, requestId };
|
|
1161
1155
|
}
|
|
1162
1156
|
}
|
|
1163
1157
|
getPendingRefinement(sessionId, variantId) {
|
|
1164
|
-
return [...this.requireSession(sessionId).workItems.values()].find((item) =>
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
const input = item.input;
|
|
1168
|
-
return input.variantId === variantId && item.status === 'pending';
|
|
1169
|
-
});
|
|
1158
|
+
return [...this.requireSession(sessionId).workItems.values()].find((item) => item.kind === 'refine_variant' &&
|
|
1159
|
+
item.input.variantId === variantId &&
|
|
1160
|
+
item.status === 'pending');
|
|
1170
1161
|
}
|
|
1171
1162
|
appendPendingRefineVariantInstruction(args) {
|
|
1172
1163
|
const refineItem = this.getPendingRefinement(args.sessionId, args.variantId);
|
|
1173
1164
|
if (!refineItem)
|
|
1174
1165
|
return false;
|
|
1175
|
-
const input = refineItem
|
|
1166
|
+
const { input } = refineItem;
|
|
1176
1167
|
input.guidance = args.guidance ?? [];
|
|
1177
1168
|
input.requestId = args.requestId;
|
|
1178
1169
|
input.instruction =
|
|
@@ -1192,7 +1183,7 @@ class SessionStore {
|
|
|
1192
1183
|
const runningRefinement = [...session.workItems.values()].find((item) => {
|
|
1193
1184
|
if (item.kind !== 'refine_variant')
|
|
1194
1185
|
return false;
|
|
1195
|
-
const input = item
|
|
1186
|
+
const { input } = item;
|
|
1196
1187
|
return input.variantId === args.variantId && item.status === 'running';
|
|
1197
1188
|
});
|
|
1198
1189
|
if (runningRefinement) {
|
|
@@ -1201,7 +1192,7 @@ class SessionStore {
|
|
|
1201
1192
|
const refineItem = [...session.workItems.values()].find((item) => {
|
|
1202
1193
|
if (item.kind !== 'refine_variant')
|
|
1203
1194
|
return false;
|
|
1204
|
-
const input = item
|
|
1195
|
+
const { input } = item;
|
|
1205
1196
|
return input.variantId === args.variantId && item.status === 'pending';
|
|
1206
1197
|
});
|
|
1207
1198
|
if (!refineItem) {
|
|
@@ -1299,7 +1290,7 @@ class SessionStore {
|
|
|
1299
1290
|
for (const other of session.workItems.values()) {
|
|
1300
1291
|
if (other.kind !== 'refine_variant')
|
|
1301
1292
|
continue;
|
|
1302
|
-
const input = other
|
|
1293
|
+
const { input } = other;
|
|
1303
1294
|
if (input.variantId !== item.id)
|
|
1304
1295
|
continue;
|
|
1305
1296
|
if (other.status === 'pending' || other.status === 'running') {
|
|
@@ -1318,8 +1309,8 @@ class SessionStore {
|
|
|
1318
1309
|
renameWorkItem(args) {
|
|
1319
1310
|
const session = this.requireSession(args.sessionId);
|
|
1320
1311
|
const item = this.requireWorkItem(session, args.workItemId);
|
|
1321
|
-
|
|
1322
|
-
|
|
1312
|
+
if ((0, workItemInput_1.isVariantWorkItem)(item))
|
|
1313
|
+
item.input.briefLabel = args.label;
|
|
1323
1314
|
return {
|
|
1324
1315
|
workItemId: item.id,
|
|
1325
1316
|
label: args.label,
|
|
@@ -1332,9 +1323,9 @@ class SessionStore {
|
|
|
1332
1323
|
const workItemIds = [];
|
|
1333
1324
|
for (const id of session.workItemOrder) {
|
|
1334
1325
|
const item = session.workItems.get(id);
|
|
1335
|
-
if (!item || item.removed)
|
|
1326
|
+
if (!item || item.removed || !(0, workItemInput_1.isVariantWorkItem)(item))
|
|
1336
1327
|
continue;
|
|
1337
|
-
const input = item
|
|
1328
|
+
const { input } = item;
|
|
1338
1329
|
if (input.requestId !== args.requestId)
|
|
1339
1330
|
continue;
|
|
1340
1331
|
const effective = input.runLabel ?? sessionFallback;
|
|
@@ -1401,12 +1392,7 @@ class SessionStore {
|
|
|
1401
1392
|
const { lease } = item;
|
|
1402
1393
|
if (!lease || item.status !== 'running')
|
|
1403
1394
|
return [];
|
|
1404
|
-
const
|
|
1405
|
-
? item.input
|
|
1406
|
-
: {};
|
|
1407
|
-
const variantId = item.kind === 'refine_variant' && typeof input.variantId === 'string'
|
|
1408
|
-
? input.variantId
|
|
1409
|
-
: item.id;
|
|
1395
|
+
const variantId = (item.kind === 'refine_variant' && item.input.variantId) || item.id;
|
|
1410
1396
|
return {
|
|
1411
1397
|
workId: item.id,
|
|
1412
1398
|
variantId,
|
|
@@ -1432,14 +1418,25 @@ class SessionStore {
|
|
|
1432
1418
|
hasSession(sessionId) {
|
|
1433
1419
|
return this.sessions.has(sessionId);
|
|
1434
1420
|
}
|
|
1435
|
-
|
|
1421
|
+
getVariantWorkItemInput(sessionId, workItemId) {
|
|
1436
1422
|
const session = this.requireSession(sessionId);
|
|
1437
1423
|
const item = this.requireWorkItem(session, workItemId);
|
|
1438
|
-
return item
|
|
1424
|
+
return (0, workItemInput_1.isVariantWorkItem)(item)
|
|
1425
|
+
? (0, workItemInput_1.parseVariantWorkItemInput)(item)
|
|
1426
|
+
: undefined;
|
|
1427
|
+
}
|
|
1428
|
+
requireVariantWorkItemInput(args) {
|
|
1429
|
+
const session = this.requireSession(args.sessionId);
|
|
1430
|
+
const item = this.requireWorkItem(session, args.workItemId);
|
|
1431
|
+
const kind = args.kinds.find((candidate) => candidate === item.kind);
|
|
1432
|
+
if (!kind) {
|
|
1433
|
+
throw new errors_1.AgentVariantsError('WORK_ITEM_NOT_FOUND', `Work item ${item.id} is a ${item.kind} work item, not ${args.kinds.join(' or ')}`);
|
|
1434
|
+
}
|
|
1435
|
+
return (0, workItemInput_1.parseVariantWorkItemInput)({ id: item.id, kind, input: item.input });
|
|
1439
1436
|
}
|
|
1440
1437
|
getWorkItemIdsForRequest(sessionId, requestId) {
|
|
1441
1438
|
return [...this.requireSession(sessionId).workItems.values()]
|
|
1442
|
-
.filter((item) => item.input.requestId === requestId)
|
|
1439
|
+
.filter((item) => (0, workItemInput_1.isVariantWorkItem)(item) && item.input.requestId === requestId)
|
|
1443
1440
|
.map((item) => item.id);
|
|
1444
1441
|
}
|
|
1445
1442
|
getWorkItemOutput(sessionId, workItemId) {
|
|
@@ -1463,7 +1460,7 @@ class SessionStore {
|
|
|
1463
1460
|
}
|
|
1464
1461
|
isVaryForkWorkItem(sessionId, workItemId) {
|
|
1465
1462
|
const item = this.sessions.get(sessionId)?.workItems.get(workItemId);
|
|
1466
|
-
return Boolean(item && item.input.sourceVariantId);
|
|
1463
|
+
return Boolean(item && (0, workItemInput_1.isVariantWorkItem)(item) && item.input.sourceVariantId);
|
|
1467
1464
|
}
|
|
1468
1465
|
isWorkItemAborted(sessionId, workItemId) {
|
|
1469
1466
|
const session = this.sessions.get(sessionId);
|
|
@@ -1551,8 +1548,7 @@ class SessionStore {
|
|
|
1551
1548
|
return out;
|
|
1552
1549
|
}
|
|
1553
1550
|
hasLeasableCodeGenForStaticPreview(session, staticPreview) {
|
|
1554
|
-
|
|
1555
|
-
if (!staticInput.briefId)
|
|
1551
|
+
if (!(0, workItemInput_1.isVariantWorkItem)(staticPreview) || !staticPreview.input.briefId)
|
|
1556
1552
|
return false;
|
|
1557
1553
|
for (const candidate of session.workItems.values()) {
|
|
1558
1554
|
if (candidate.kind !== 'code_gen')
|
|
@@ -1561,8 +1557,7 @@ class SessionStore {
|
|
|
1561
1557
|
continue;
|
|
1562
1558
|
if (!this.dependenciesMet(session, candidate))
|
|
1563
1559
|
continue;
|
|
1564
|
-
|
|
1565
|
-
if (codeInput.briefId === staticInput.briefId)
|
|
1560
|
+
if (candidate.input.briefId === staticPreview.input.briefId)
|
|
1566
1561
|
return true;
|
|
1567
1562
|
}
|
|
1568
1563
|
return false;
|
|
@@ -1661,14 +1656,11 @@ class SessionStore {
|
|
|
1661
1656
|
successCount: items.filter((i) => i.status === 'succeeded').length,
|
|
1662
1657
|
failureCount: items.filter((i) => i.status === 'failed').length,
|
|
1663
1658
|
cancelledCount: items.filter((i) => i.status === 'cancelled').length,
|
|
1664
|
-
variants: items.map((i) => {
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
label: input.briefLabel,
|
|
1670
|
-
};
|
|
1671
|
-
}),
|
|
1659
|
+
variants: items.map((i) => ({
|
|
1660
|
+
workItemId: i.id,
|
|
1661
|
+
status: i.status,
|
|
1662
|
+
label: (0, workItemInput_1.isVariantWorkItem)(i) ? i.input.briefLabel : undefined,
|
|
1663
|
+
})),
|
|
1672
1664
|
};
|
|
1673
1665
|
}
|
|
1674
1666
|
refinementSnapshotPriority(item) {
|
|
@@ -1684,7 +1676,7 @@ class SessionStore {
|
|
|
1684
1676
|
for (const item of session.workItems.values()) {
|
|
1685
1677
|
if (item.kind !== 'refine_variant')
|
|
1686
1678
|
continue;
|
|
1687
|
-
const input = item
|
|
1679
|
+
const { input } = item;
|
|
1688
1680
|
if (!input.variantId)
|
|
1689
1681
|
continue;
|
|
1690
1682
|
const existing = refinementsByVariantId.get(input.variantId);
|
|
@@ -1698,14 +1690,14 @@ class SessionStore {
|
|
|
1698
1690
|
.map((id) => session.workItems.get(id))
|
|
1699
1691
|
.filter((i) => !!i &&
|
|
1700
1692
|
!i.removed &&
|
|
1693
|
+
(0, workItemInput_1.isVariantWorkItem)(i) &&
|
|
1701
1694
|
(i.kind === kind ||
|
|
1702
1695
|
isAdoptedVariant(i) ||
|
|
1703
1696
|
isForkedStaticPreviewVariant(i)))
|
|
1704
1697
|
.map((item) => {
|
|
1705
|
-
const input = item
|
|
1698
|
+
const { input } = item;
|
|
1706
1699
|
const refineItem = refinementsByVariantId.get(item.id);
|
|
1707
|
-
const refineRequestId = refineItem?.input
|
|
1708
|
-
?.requestId;
|
|
1700
|
+
const refineRequestId = refineItem?.input.requestId;
|
|
1709
1701
|
return {
|
|
1710
1702
|
workItemId: item.id,
|
|
1711
1703
|
...(input.previewRoutes
|