rivet-design 0.21.9 → 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 +21 -2
- package/dist/agent-variants/SessionStore.d.ts.map +1 -1
- package/dist/agent-variants/SessionStore.js +88 -71
- 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 +32 -21
- package/dist/agent-variants/WorkspaceProvisioning.js.map +1 -1
- package/dist/agent-variants/WorktreeOrchestrator.d.ts +7 -37
- package/dist/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
- package/dist/agent-variants/WorktreeOrchestrator.js +148 -103
- 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 +103 -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 +33 -0
- package/dist/agent-variants/staticPreviewFiles.d.ts.map +1 -0
- package/dist/agent-variants/staticPreviewFiles.js +109 -0
- package/dist/agent-variants/staticPreviewFiles.js.map +1 -0
- 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/workItemBriefing.d.ts.map +1 -1
- package/dist/agent-variants/workItemBriefing.js +4 -0
- package/dist/agent-variants/workItemBriefing.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.d.ts +23 -0
- package/dist/agent-variants/workItemPreviewRoutes.d.ts.map +1 -0
- package/dist/agent-variants/workItemPreviewRoutes.js +95 -0
- package/dist/agent-variants/workItemPreviewRoutes.js.map +1 -0
- 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/proxy-middleware/proxy-config.d.ts +10 -0
- package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
- package/dist/proxy-middleware/proxy-config.js +20 -29
- package/dist/proxy-middleware/proxy-config.js.map +1 -1
- package/dist/routes/agentVariants.d.ts +1 -5
- package/dist/routes/agentVariants.d.ts.map +1 -1
- package/dist/routes/agentVariants.js +42 -85
- 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 +13 -0
- package/dist/routes/staticPreviewPolicy.d.ts.map +1 -0
- package/dist/routes/staticPreviewPolicy.js +61 -0
- package/dist/routes/staticPreviewPolicy.js.map +1 -0
- 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.d.ts +3 -0
- package/dist/services/VariantHistoryService.d.ts.map +1 -1
- package/dist/services/VariantHistoryService.js +36 -12
- 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/types/preview-routes.d.ts +6 -0
- package/dist/types/preview-routes.d.ts.map +1 -0
- package/dist/types/preview-routes.js +35 -0
- package/dist/types/preview-routes.js.map +1 -0
- package/dist/types/variant-history.d.ts +6 -0
- package/dist/types/variant-history.d.ts.map +1 -1
- 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/dist/utils/staticPreviewPage.d.ts +11 -0
- package/dist/utils/staticPreviewPage.d.ts.map +1 -0
- package/dist/utils/staticPreviewPage.js +40 -0
- package/dist/utils/staticPreviewPage.js.map +1 -0
- package/package.json +6 -2
- package/src/ui/dist/assets/{LibraryEntry-BaphzdNv.js → LibraryEntry-CjxmVfhv.js} +8 -8
- package/src/ui/dist/assets/main-CdSzrhWD.js +435 -0
- package/src/ui/dist/assets/main-DVb3ws41.css +1 -0
- package/src/ui/dist/index.html +2 -2
- package/dist/agent-variants/elementRefToTarget.d.ts +0 -4
- package/dist/agent-variants/elementRefToTarget.d.ts.map +0 -1
- package/dist/agent-variants/elementRefToTarget.js +0 -30
- package/dist/agent-variants/elementRefToTarget.js.map +0 -1
- package/dist/prompts/commentVariationPromptConfig.d.ts +0 -7
- package/dist/prompts/commentVariationPromptConfig.d.ts.map +0 -1
- package/dist/prompts/commentVariationPromptConfig.js +0 -12
- package/dist/prompts/commentVariationPromptConfig.js.map +0 -1
- package/dist/prompts/commentVariationPromptSnapshot.d.ts +0 -3
- package/dist/prompts/commentVariationPromptSnapshot.d.ts.map +0 -1
- package/dist/prompts/commentVariationPromptSnapshot.js +0 -31
- package/dist/prompts/commentVariationPromptSnapshot.js.map +0 -1
- package/dist/prompts/commentVariationPrompts.d.ts +0 -7
- package/dist/prompts/commentVariationPrompts.d.ts.map +0 -1
- package/dist/prompts/commentVariationPrompts.js +0 -54
- package/dist/prompts/commentVariationPrompts.js.map +0 -1
- package/dist/services/adapters/TailwindTokenAdapter.d.ts +0 -17
- package/dist/services/adapters/TailwindTokenAdapter.d.ts.map +0 -1
- package/dist/services/adapters/TailwindTokenAdapter.js +0 -284
- package/dist/services/adapters/TailwindTokenAdapter.js.map +0 -1
- package/dist/services/extractors/CSSVariableExtractor.d.ts +0 -10
- package/dist/services/extractors/CSSVariableExtractor.d.ts.map +0 -1
- package/dist/services/extractors/CSSVariableExtractor.js +0 -110
- package/dist/services/extractors/CSSVariableExtractor.js.map +0 -1
- package/dist/services/staticStarter.d.ts +0 -3
- package/dist/services/staticStarter.d.ts.map +0 -1
- package/dist/services/staticStarter.js +0 -129
- package/dist/services/staticStarter.js.map +0 -1
- package/dist/utils/elementFileHintSignals.d.ts +0 -3
- package/dist/utils/elementFileHintSignals.d.ts.map +0 -1
- package/dist/utils/elementFileHintSignals.js +0 -35
- package/dist/utils/elementFileHintSignals.js.map +0 -1
- package/dist/utils/formatElementTargetingContext.d.ts +0 -28
- package/dist/utils/formatElementTargetingContext.d.ts.map +0 -1
- package/dist/utils/formatElementTargetingContext.js +0 -82
- package/dist/utils/formatElementTargetingContext.js.map +0 -1
- package/dist/utils/variantPreviewPort.d.ts +0 -15
- package/dist/utils/variantPreviewPort.d.ts.map +0 -1
- package/dist/utils/variantPreviewPort.js +0 -25
- package/dist/utils/variantPreviewPort.js.map +0 -1
- package/src/ui/dist/assets/main-CVCXVenP.js +0 -435
- package/src/ui/dist/assets/main-vcYlLdli.css +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SessionStore = exports.buildImageRefs = exports.SOURCE_PLAN_ACTION_OPTIONS = exports.SOURCE_PLAN_OUTPUT_SCHEMA = exports.SCAFFOLD_LEASE_TTL_MS = exports.DEFAULT_LEASE_TTL_MS = void 0;
|
|
4
|
+
const preview_routes_1 = require("../types/preview-routes");
|
|
4
5
|
const variant_reference_1 = require("../types/variant-reference");
|
|
5
6
|
const crypto_1 = require("crypto");
|
|
6
7
|
const errors_1 = require("./errors");
|
|
@@ -8,6 +9,7 @@ const contracts_1 = require("./contracts");
|
|
|
8
9
|
const briefContent_1 = require("./briefContent");
|
|
9
10
|
const runLabel_1 = require("./runLabel");
|
|
10
11
|
const runPlan_1 = require("./runPlan");
|
|
12
|
+
const workItemInput_1 = require("./workItemInput");
|
|
11
13
|
const MAX_SUBTITLE_WORDS = 10;
|
|
12
14
|
const MAX_RELEVANT_FILES = 12;
|
|
13
15
|
const capSubtitleWords = (text) => {
|
|
@@ -21,11 +23,10 @@ exports.DEFAULT_LEASE_TTL_MS = 20 * 60 * 1000;
|
|
|
21
23
|
exports.SCAFFOLD_LEASE_TTL_MS = 30 * 60 * 1000;
|
|
22
24
|
const SYSTEM_CLOCK = { now: () => Date.now() };
|
|
23
25
|
function isAdoptedVariant(item) {
|
|
24
|
-
return Boolean(item.input.adoptedFrom);
|
|
26
|
+
return (0, workItemInput_1.isVariantWorkItem)(item) && Boolean(item.input.adoptedFrom);
|
|
25
27
|
}
|
|
26
28
|
function isForkedStaticPreviewVariant(item) {
|
|
27
|
-
return
|
|
28
|
-
Boolean(item.input.sourceVariantId));
|
|
29
|
+
return item.kind === 'static_preview' && Boolean(item.input.sourceVariantId);
|
|
29
30
|
}
|
|
30
31
|
function fingerprint(parts) {
|
|
31
32
|
return parts.map((p) => (p === undefined ? '∅' : String(p))).join('|');
|
|
@@ -761,12 +762,13 @@ class SessionStore {
|
|
|
761
762
|
item.error = args.error;
|
|
762
763
|
if (args.runtime)
|
|
763
764
|
item.runtime = args.runtime;
|
|
764
|
-
if (args.status === 'succeeded' &&
|
|
765
|
-
|
|
765
|
+
if (args.status === 'succeeded' &&
|
|
766
|
+
(args.title || args.description) &&
|
|
767
|
+
(0, workItemInput_1.isVariantWorkItem)(item)) {
|
|
766
768
|
if (args.title)
|
|
767
|
-
input.briefLabel = args.title.trim().slice(0, 80);
|
|
769
|
+
item.input.briefLabel = args.title.trim().slice(0, 80);
|
|
768
770
|
if (args.description)
|
|
769
|
-
input.briefBody = args.description.trim();
|
|
771
|
+
item.input.briefBody = args.description.trim();
|
|
770
772
|
}
|
|
771
773
|
item.acceptedReports.push(fp);
|
|
772
774
|
item.lease = undefined;
|
|
@@ -796,8 +798,8 @@ class SessionStore {
|
|
|
796
798
|
item.lease = undefined;
|
|
797
799
|
item.output = undefined;
|
|
798
800
|
item.error = undefined;
|
|
799
|
-
|
|
800
|
-
|
|
801
|
+
if ((0, workItemInput_1.isVariantWorkItem)(item))
|
|
802
|
+
item.input = { ...item.input, qaRetry: args.qaRetry };
|
|
801
803
|
const result = {
|
|
802
804
|
stage: session.stage,
|
|
803
805
|
progress: this.progressOf(session),
|
|
@@ -817,8 +819,7 @@ class SessionStore {
|
|
|
817
819
|
const activeRefinement = [...session.workItems.values()].find((item) => {
|
|
818
820
|
if (item.kind !== 'refine_variant')
|
|
819
821
|
return false;
|
|
820
|
-
|
|
821
|
-
return input.variantId === args.variantId && item.status === 'pending';
|
|
822
|
+
return (item.input.variantId === args.variantId && item.status === 'pending');
|
|
822
823
|
});
|
|
823
824
|
if (activeRefinement) {
|
|
824
825
|
throw new errors_1.AgentVariantsError('PENDING_CHANGE_CONFLICT', 'A refinement is already queued for this variant');
|
|
@@ -846,7 +847,7 @@ class SessionStore {
|
|
|
846
847
|
...(args.currentHtml ? { currentHtml: args.currentHtml } : {}),
|
|
847
848
|
...(args.targetElement ? { targetElement: args.targetElement } : {}),
|
|
848
849
|
...(args.requestId ? { requestId: args.requestId } : {}),
|
|
849
|
-
projectContext: targetInput.projectContext
|
|
850
|
+
projectContext: targetInput.projectContext,
|
|
850
851
|
...(targetInput.context ? { context: targetInput.context } : {}),
|
|
851
852
|
...(relevantFiles.length > 0 ? { relevantFiles } : {}),
|
|
852
853
|
},
|
|
@@ -869,8 +870,7 @@ class SessionStore {
|
|
|
869
870
|
const activeRefinement = [...session.workItems.values()].find((item) => {
|
|
870
871
|
if (item.kind !== 'refine_variant')
|
|
871
872
|
return false;
|
|
872
|
-
|
|
873
|
-
return (input.variantId === args.sourceVariantId &&
|
|
873
|
+
return (item.input.variantId === args.sourceVariantId &&
|
|
874
874
|
(item.status === 'pending' || item.status === 'running'));
|
|
875
875
|
});
|
|
876
876
|
if (activeRefinement) {
|
|
@@ -878,6 +878,7 @@ class SessionStore {
|
|
|
878
878
|
}
|
|
879
879
|
const sourceInput = source.input;
|
|
880
880
|
const relevantFiles = mergeRelevantFiles(sourceInput.relevantFiles, args.relevantFiles);
|
|
881
|
+
const previewRoutes = (0, preview_routes_1.mergePreviewRoutes)(args.previewRoutes, sourceInput.previewRoutes);
|
|
881
882
|
const seedHtml = args.currentHtml ??
|
|
882
883
|
source.output?.html;
|
|
883
884
|
const briefs = args.briefs?.map(briefContent_1.normalizeBriefContent);
|
|
@@ -925,6 +926,7 @@ class SessionStore {
|
|
|
925
926
|
briefId: `${sourceInput.briefId ?? 'v'}-vary-${(0, crypto_1.randomUUID)().slice(0, 8)}`,
|
|
926
927
|
briefLabel: brief?.label ?? `${labelBase}${suffix}`,
|
|
927
928
|
briefBody: brief?.body ?? prettyInstruction,
|
|
929
|
+
...(previewRoutes.length ? { previewRoutes } : {}),
|
|
928
930
|
references: (0, variant_reference_1.mergeVariantReferences)(sourceInput.references, context?.references),
|
|
929
931
|
...(args.runLabel ? { runLabel: args.runLabel } : {}),
|
|
930
932
|
...(brief?.visualReferenceUrl
|
|
@@ -943,7 +945,7 @@ class SessionStore {
|
|
|
943
945
|
...(args.targetElement ? { targetElement: args.targetElement } : {}),
|
|
944
946
|
...(args.requestId ? { requestId: args.requestId } : {}),
|
|
945
947
|
...(args.fidelity ? { fidelity: args.fidelity } : {}),
|
|
946
|
-
projectContext: sourceInput.projectContext
|
|
948
|
+
projectContext: sourceInput.projectContext,
|
|
947
949
|
...(context ? { context } : {}),
|
|
948
950
|
...(relevantFiles.length > 0 ? { relevantFiles } : {}),
|
|
949
951
|
},
|
|
@@ -981,16 +983,15 @@ class SessionStore {
|
|
|
981
983
|
const activeRefinement = [...session.workItems.values()].find((item) => {
|
|
982
984
|
if (item.kind !== 'refine_variant')
|
|
983
985
|
return false;
|
|
984
|
-
|
|
985
|
-
return (input.variantId === args.sourceVariantId &&
|
|
986
|
+
return (item.input.variantId === args.sourceVariantId &&
|
|
986
987
|
(item.status === 'pending' || item.status === 'running'));
|
|
987
988
|
});
|
|
988
989
|
if (activeRefinement) {
|
|
989
990
|
throw new errors_1.AgentVariantsError('PENDING_CHANGE_CONFLICT', 'Cannot vary a variant while an in-place refinement is pending or running');
|
|
990
991
|
}
|
|
991
992
|
}
|
|
992
|
-
const sourceInput = (source
|
|
993
|
-
const relevantFiles = mergeRelevantFiles(sourceInput
|
|
993
|
+
const sourceInput = source && (0, workItemInput_1.isVariantWorkItem)(source) ? source.input : undefined;
|
|
994
|
+
const relevantFiles = mergeRelevantFiles(sourceInput?.relevantFiles, args.relevantFiles);
|
|
994
995
|
const createdWorkItemIds = [];
|
|
995
996
|
for (const [batchSlotIndex, brief] of args.briefs.entries()) {
|
|
996
997
|
const context = resolveVariantWorkItemContext({
|
|
@@ -1012,7 +1013,7 @@ class SessionStore {
|
|
|
1012
1013
|
briefId: brief.briefId,
|
|
1013
1014
|
briefLabel: brief.label,
|
|
1014
1015
|
briefBody: brief.body,
|
|
1015
|
-
references: (0, variant_reference_1.mergeVariantReferences)(sourceInput
|
|
1016
|
+
references: (0, variant_reference_1.mergeVariantReferences)(sourceInput?.references, context?.references),
|
|
1016
1017
|
instruction: args.instruction,
|
|
1017
1018
|
guidance: args.guidance ?? [],
|
|
1018
1019
|
...(brief.notes ? { briefNotes: brief.notes } : {}),
|
|
@@ -1021,10 +1022,10 @@ class SessionStore {
|
|
|
1021
1022
|
...(args.sourceVariantId
|
|
1022
1023
|
? { sourceVariantId: args.sourceVariantId }
|
|
1023
1024
|
: {}),
|
|
1024
|
-
...(
|
|
1025
|
+
...(sourceInput?.briefLabel
|
|
1025
1026
|
? { sourceLabel: sourceInput.briefLabel }
|
|
1026
1027
|
: {}),
|
|
1027
|
-
...(
|
|
1028
|
+
...(sourceInput?.briefBody
|
|
1028
1029
|
? { sourceBody: sourceInput.briefBody }
|
|
1029
1030
|
: {}),
|
|
1030
1031
|
target: session.target,
|
|
@@ -1050,10 +1051,9 @@ class SessionStore {
|
|
|
1050
1051
|
}
|
|
1051
1052
|
const existing = this.findAdoptedVariant(session, args.source);
|
|
1052
1053
|
if (existing) {
|
|
1053
|
-
const input = existing.input;
|
|
1054
1054
|
return {
|
|
1055
1055
|
workItemId: existing.id,
|
|
1056
|
-
briefId: input.briefId ?? '',
|
|
1056
|
+
briefId: existing.input.briefId ?? '',
|
|
1057
1057
|
created: false,
|
|
1058
1058
|
};
|
|
1059
1059
|
}
|
|
@@ -1074,6 +1074,7 @@ class SessionStore {
|
|
|
1074
1074
|
...(args.runLabel ? { runLabel: args.runLabel } : {}),
|
|
1075
1075
|
adoptedFrom: { ...args.source },
|
|
1076
1076
|
references: (0, variant_reference_1.mergeVariantReferences)(args.references),
|
|
1077
|
+
previewRoutes: args.previewRoutes,
|
|
1077
1078
|
projectContext: session.projectContext,
|
|
1078
1079
|
},
|
|
1079
1080
|
acceptedReports: [],
|
|
@@ -1106,6 +1107,7 @@ class SessionStore {
|
|
|
1106
1107
|
label: args.label,
|
|
1107
1108
|
description: args.description,
|
|
1108
1109
|
references: args.references,
|
|
1110
|
+
previewRoutes: args.previewRoutes,
|
|
1109
1111
|
runLabel: args.runLabel,
|
|
1110
1112
|
});
|
|
1111
1113
|
return {
|
|
@@ -1116,10 +1118,9 @@ class SessionStore {
|
|
|
1116
1118
|
}
|
|
1117
1119
|
findAdoptedVariant(session, source) {
|
|
1118
1120
|
for (const item of session.workItems.values()) {
|
|
1119
|
-
if (item.removed)
|
|
1121
|
+
if (item.removed || !(0, workItemInput_1.isVariantWorkItem)(item))
|
|
1120
1122
|
continue;
|
|
1121
|
-
const adoptedFrom = item.input
|
|
1122
|
-
.adoptedFrom;
|
|
1123
|
+
const { adoptedFrom } = item.input;
|
|
1123
1124
|
if (adoptedFrom &&
|
|
1124
1125
|
adoptedFrom.sessionId === source.sessionId &&
|
|
1125
1126
|
adoptedFrom.variantId === source.variantId) {
|
|
@@ -1128,29 +1129,41 @@ class SessionStore {
|
|
|
1128
1129
|
}
|
|
1129
1130
|
return undefined;
|
|
1130
1131
|
}
|
|
1132
|
+
assignVariantPreviewRoutes(args) {
|
|
1133
|
+
const session = this.requireSession(args.sessionId);
|
|
1134
|
+
const source = args.sourceVariantId
|
|
1135
|
+
? this.requireWorkItem(session, args.sourceVariantId)
|
|
1136
|
+
: undefined;
|
|
1137
|
+
const merged = (0, preview_routes_1.mergePreviewRoutes)(args.previewRoutes, source && (0, workItemInput_1.isVariantWorkItem)(source)
|
|
1138
|
+
? source.input.previewRoutes
|
|
1139
|
+
: undefined);
|
|
1140
|
+
if (!merged.length)
|
|
1141
|
+
return;
|
|
1142
|
+
const previewRoutes = preview_routes_1.previewRoutesSchema.parse(merged);
|
|
1143
|
+
for (const workItemId of args.workItemIds) {
|
|
1144
|
+
const item = this.requireWorkItem(session, workItemId);
|
|
1145
|
+
if ((0, workItemInput_1.isVariantWorkItem)(item))
|
|
1146
|
+
item.input = { ...item.input, previewRoutes: [...previewRoutes] };
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1131
1149
|
assignVariantRequestId(sessionId, workItemIds, requestId) {
|
|
1132
1150
|
const session = this.requireSession(sessionId);
|
|
1133
1151
|
for (const id of workItemIds) {
|
|
1134
1152
|
const item = session.workItems.get(id);
|
|
1135
|
-
if (
|
|
1136
|
-
|
|
1137
|
-
const input = (item.input ?? {});
|
|
1138
|
-
item.input = { ...input, requestId };
|
|
1153
|
+
if (item && (0, workItemInput_1.isVariantWorkItem)(item))
|
|
1154
|
+
item.input = { ...item.input, requestId };
|
|
1139
1155
|
}
|
|
1140
1156
|
}
|
|
1141
1157
|
getPendingRefinement(sessionId, variantId) {
|
|
1142
|
-
return [...this.requireSession(sessionId).workItems.values()].find((item) =>
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
const input = item.input;
|
|
1146
|
-
return input.variantId === variantId && item.status === 'pending';
|
|
1147
|
-
});
|
|
1158
|
+
return [...this.requireSession(sessionId).workItems.values()].find((item) => item.kind === 'refine_variant' &&
|
|
1159
|
+
item.input.variantId === variantId &&
|
|
1160
|
+
item.status === 'pending');
|
|
1148
1161
|
}
|
|
1149
1162
|
appendPendingRefineVariantInstruction(args) {
|
|
1150
1163
|
const refineItem = this.getPendingRefinement(args.sessionId, args.variantId);
|
|
1151
1164
|
if (!refineItem)
|
|
1152
1165
|
return false;
|
|
1153
|
-
const input = refineItem
|
|
1166
|
+
const { input } = refineItem;
|
|
1154
1167
|
input.guidance = args.guidance ?? [];
|
|
1155
1168
|
input.requestId = args.requestId;
|
|
1156
1169
|
input.instruction =
|
|
@@ -1170,7 +1183,7 @@ class SessionStore {
|
|
|
1170
1183
|
const runningRefinement = [...session.workItems.values()].find((item) => {
|
|
1171
1184
|
if (item.kind !== 'refine_variant')
|
|
1172
1185
|
return false;
|
|
1173
|
-
const input = item
|
|
1186
|
+
const { input } = item;
|
|
1174
1187
|
return input.variantId === args.variantId && item.status === 'running';
|
|
1175
1188
|
});
|
|
1176
1189
|
if (runningRefinement) {
|
|
@@ -1179,7 +1192,7 @@ class SessionStore {
|
|
|
1179
1192
|
const refineItem = [...session.workItems.values()].find((item) => {
|
|
1180
1193
|
if (item.kind !== 'refine_variant')
|
|
1181
1194
|
return false;
|
|
1182
|
-
const input = item
|
|
1195
|
+
const { input } = item;
|
|
1183
1196
|
return input.variantId === args.variantId && item.status === 'pending';
|
|
1184
1197
|
});
|
|
1185
1198
|
if (!refineItem) {
|
|
@@ -1277,7 +1290,7 @@ class SessionStore {
|
|
|
1277
1290
|
for (const other of session.workItems.values()) {
|
|
1278
1291
|
if (other.kind !== 'refine_variant')
|
|
1279
1292
|
continue;
|
|
1280
|
-
const input = other
|
|
1293
|
+
const { input } = other;
|
|
1281
1294
|
if (input.variantId !== item.id)
|
|
1282
1295
|
continue;
|
|
1283
1296
|
if (other.status === 'pending' || other.status === 'running') {
|
|
@@ -1296,8 +1309,8 @@ class SessionStore {
|
|
|
1296
1309
|
renameWorkItem(args) {
|
|
1297
1310
|
const session = this.requireSession(args.sessionId);
|
|
1298
1311
|
const item = this.requireWorkItem(session, args.workItemId);
|
|
1299
|
-
|
|
1300
|
-
|
|
1312
|
+
if ((0, workItemInput_1.isVariantWorkItem)(item))
|
|
1313
|
+
item.input.briefLabel = args.label;
|
|
1301
1314
|
return {
|
|
1302
1315
|
workItemId: item.id,
|
|
1303
1316
|
label: args.label,
|
|
@@ -1310,9 +1323,9 @@ class SessionStore {
|
|
|
1310
1323
|
const workItemIds = [];
|
|
1311
1324
|
for (const id of session.workItemOrder) {
|
|
1312
1325
|
const item = session.workItems.get(id);
|
|
1313
|
-
if (!item || item.removed)
|
|
1326
|
+
if (!item || item.removed || !(0, workItemInput_1.isVariantWorkItem)(item))
|
|
1314
1327
|
continue;
|
|
1315
|
-
const input = item
|
|
1328
|
+
const { input } = item;
|
|
1316
1329
|
if (input.requestId !== args.requestId)
|
|
1317
1330
|
continue;
|
|
1318
1331
|
const effective = input.runLabel ?? sessionFallback;
|
|
@@ -1379,12 +1392,7 @@ class SessionStore {
|
|
|
1379
1392
|
const { lease } = item;
|
|
1380
1393
|
if (!lease || item.status !== 'running')
|
|
1381
1394
|
return [];
|
|
1382
|
-
const
|
|
1383
|
-
? item.input
|
|
1384
|
-
: {};
|
|
1385
|
-
const variantId = item.kind === 'refine_variant' && typeof input.variantId === 'string'
|
|
1386
|
-
? input.variantId
|
|
1387
|
-
: item.id;
|
|
1395
|
+
const variantId = (item.kind === 'refine_variant' && item.input.variantId) || item.id;
|
|
1388
1396
|
return {
|
|
1389
1397
|
workId: item.id,
|
|
1390
1398
|
variantId,
|
|
@@ -1410,14 +1418,25 @@ class SessionStore {
|
|
|
1410
1418
|
hasSession(sessionId) {
|
|
1411
1419
|
return this.sessions.has(sessionId);
|
|
1412
1420
|
}
|
|
1413
|
-
|
|
1421
|
+
getVariantWorkItemInput(sessionId, workItemId) {
|
|
1414
1422
|
const session = this.requireSession(sessionId);
|
|
1415
1423
|
const item = this.requireWorkItem(session, workItemId);
|
|
1416
|
-
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 });
|
|
1417
1436
|
}
|
|
1418
1437
|
getWorkItemIdsForRequest(sessionId, requestId) {
|
|
1419
1438
|
return [...this.requireSession(sessionId).workItems.values()]
|
|
1420
|
-
.filter((item) => item.input.requestId === requestId)
|
|
1439
|
+
.filter((item) => (0, workItemInput_1.isVariantWorkItem)(item) && item.input.requestId === requestId)
|
|
1421
1440
|
.map((item) => item.id);
|
|
1422
1441
|
}
|
|
1423
1442
|
getWorkItemOutput(sessionId, workItemId) {
|
|
@@ -1441,7 +1460,7 @@ class SessionStore {
|
|
|
1441
1460
|
}
|
|
1442
1461
|
isVaryForkWorkItem(sessionId, workItemId) {
|
|
1443
1462
|
const item = this.sessions.get(sessionId)?.workItems.get(workItemId);
|
|
1444
|
-
return Boolean(item && item.input.sourceVariantId);
|
|
1463
|
+
return Boolean(item && (0, workItemInput_1.isVariantWorkItem)(item) && item.input.sourceVariantId);
|
|
1445
1464
|
}
|
|
1446
1465
|
isWorkItemAborted(sessionId, workItemId) {
|
|
1447
1466
|
const session = this.sessions.get(sessionId);
|
|
@@ -1529,8 +1548,7 @@ class SessionStore {
|
|
|
1529
1548
|
return out;
|
|
1530
1549
|
}
|
|
1531
1550
|
hasLeasableCodeGenForStaticPreview(session, staticPreview) {
|
|
1532
|
-
|
|
1533
|
-
if (!staticInput.briefId)
|
|
1551
|
+
if (!(0, workItemInput_1.isVariantWorkItem)(staticPreview) || !staticPreview.input.briefId)
|
|
1534
1552
|
return false;
|
|
1535
1553
|
for (const candidate of session.workItems.values()) {
|
|
1536
1554
|
if (candidate.kind !== 'code_gen')
|
|
@@ -1539,8 +1557,7 @@ class SessionStore {
|
|
|
1539
1557
|
continue;
|
|
1540
1558
|
if (!this.dependenciesMet(session, candidate))
|
|
1541
1559
|
continue;
|
|
1542
|
-
|
|
1543
|
-
if (codeInput.briefId === staticInput.briefId)
|
|
1560
|
+
if (candidate.input.briefId === staticPreview.input.briefId)
|
|
1544
1561
|
return true;
|
|
1545
1562
|
}
|
|
1546
1563
|
return false;
|
|
@@ -1639,14 +1656,11 @@ class SessionStore {
|
|
|
1639
1656
|
successCount: items.filter((i) => i.status === 'succeeded').length,
|
|
1640
1657
|
failureCount: items.filter((i) => i.status === 'failed').length,
|
|
1641
1658
|
cancelledCount: items.filter((i) => i.status === 'cancelled').length,
|
|
1642
|
-
variants: items.map((i) => {
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
label: input.briefLabel,
|
|
1648
|
-
};
|
|
1649
|
-
}),
|
|
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
|
+
})),
|
|
1650
1664
|
};
|
|
1651
1665
|
}
|
|
1652
1666
|
refinementSnapshotPriority(item) {
|
|
@@ -1662,7 +1676,7 @@ class SessionStore {
|
|
|
1662
1676
|
for (const item of session.workItems.values()) {
|
|
1663
1677
|
if (item.kind !== 'refine_variant')
|
|
1664
1678
|
continue;
|
|
1665
|
-
const input = item
|
|
1679
|
+
const { input } = item;
|
|
1666
1680
|
if (!input.variantId)
|
|
1667
1681
|
continue;
|
|
1668
1682
|
const existing = refinementsByVariantId.get(input.variantId);
|
|
@@ -1676,16 +1690,19 @@ class SessionStore {
|
|
|
1676
1690
|
.map((id) => session.workItems.get(id))
|
|
1677
1691
|
.filter((i) => !!i &&
|
|
1678
1692
|
!i.removed &&
|
|
1693
|
+
(0, workItemInput_1.isVariantWorkItem)(i) &&
|
|
1679
1694
|
(i.kind === kind ||
|
|
1680
1695
|
isAdoptedVariant(i) ||
|
|
1681
1696
|
isForkedStaticPreviewVariant(i)))
|
|
1682
1697
|
.map((item) => {
|
|
1683
|
-
const input = item
|
|
1698
|
+
const { input } = item;
|
|
1684
1699
|
const refineItem = refinementsByVariantId.get(item.id);
|
|
1685
|
-
const refineRequestId = refineItem?.input
|
|
1686
|
-
?.requestId;
|
|
1700
|
+
const refineRequestId = refineItem?.input.requestId;
|
|
1687
1701
|
return {
|
|
1688
1702
|
workItemId: item.id,
|
|
1703
|
+
...(input.previewRoutes
|
|
1704
|
+
? { previewRoutes: [...input.previewRoutes] }
|
|
1705
|
+
: {}),
|
|
1689
1706
|
briefId: input.briefId ?? '',
|
|
1690
1707
|
label: input.briefLabel ?? 'Variant',
|
|
1691
1708
|
references: input.references,
|