opendevbrowser 0.0.20 → 0.0.21
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 +6 -6
- package/dist/{chunk-LMNFPJRI.js → chunk-4KVXCXV3.js} +9 -7
- package/dist/{chunk-LMNFPJRI.js.map → chunk-4KVXCXV3.js.map} +1 -1
- package/dist/{chunk-C6QUKABT.js → chunk-ZE2E7ZGH.js} +243 -37
- package/dist/chunk-ZE2E7ZGH.js.map +1 -0
- package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/index.js +49 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/workflow-message.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/inspiredesign/handoff.d.ts +34 -0
- package/dist/inspiredesign/handoff.d.ts.map +1 -0
- package/dist/opendevbrowser.js +7 -7
- package/dist/opendevbrowser.js.map +1 -1
- package/dist/providers/inspiredesign-contract.d.ts +33 -0
- package/dist/providers/inspiredesign-contract.d.ts.map +1 -1
- package/dist/providers/renderer.d.ts +3 -1
- package/dist/providers/renderer.d.ts.map +1 -1
- package/dist/providers/workflow-handoff.d.ts +14 -0
- package/dist/providers/workflow-handoff.d.ts.map +1 -0
- package/dist/providers/workflows.d.ts.map +1 -1
- package/dist/{providers-3VBLTNAX.js → providers-ZIVHHH4F.js} +2 -2
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/opendevbrowser-product-presentation-asset/SKILL.md +2 -2
- package/dist/chunk-C6QUKABT.js.map +0 -1
- /package/dist/{providers-3VBLTNAX.js.map → providers-ZIVHHH4F.js.map} +0 -0
|
@@ -9736,6 +9736,46 @@ var enrichResearchRecords = (records, timebox, now = /* @__PURE__ */ new Date())
|
|
|
9736
9736
|
return records.map((record) => toResearchRecord(record, timebox, now));
|
|
9737
9737
|
};
|
|
9738
9738
|
|
|
9739
|
+
// src/inspiredesign/handoff.ts
|
|
9740
|
+
var INSPIREDESIGN_HANDOFF_FILES = {
|
|
9741
|
+
designMarkdown: "design.md",
|
|
9742
|
+
designContract: "design-contract.json",
|
|
9743
|
+
canvasPlanRequest: "canvas-plan.request.json",
|
|
9744
|
+
designAgentHandoff: "design-agent-handoff.json",
|
|
9745
|
+
generationPlan: "generation-plan.json",
|
|
9746
|
+
implementationPlanMarkdown: "implementation-plan.md",
|
|
9747
|
+
implementationPlan: "implementation-plan.json",
|
|
9748
|
+
evidence: "evidence.json",
|
|
9749
|
+
prototypeGuidance: "prototype-guidance.md"
|
|
9750
|
+
};
|
|
9751
|
+
var INSPIREDESIGN_HANDOFF_SKILLS = {
|
|
9752
|
+
bestPractices: {
|
|
9753
|
+
name: "opendevbrowser-best-practices",
|
|
9754
|
+
topic: "quick start"
|
|
9755
|
+
},
|
|
9756
|
+
designAgent: {
|
|
9757
|
+
name: "opendevbrowser-design-agent",
|
|
9758
|
+
topic: "canvas-contract"
|
|
9759
|
+
}
|
|
9760
|
+
};
|
|
9761
|
+
var formatSkillReference = (skill) => `${skill.name} "${skill.topic}"`;
|
|
9762
|
+
var formatSkillLoadCommand = (skill) => `opendevbrowser_skill_load ${skill.name} "${skill.topic}"`;
|
|
9763
|
+
var INSPIREDESIGN_HANDOFF_COMMANDS = {
|
|
9764
|
+
loadBestPractices: formatSkillLoadCommand(INSPIREDESIGN_HANDOFF_SKILLS.bestPractices),
|
|
9765
|
+
loadDesignAgent: formatSkillLoadCommand(INSPIREDESIGN_HANDOFF_SKILLS.designAgent),
|
|
9766
|
+
continueInCanvas: `opendevbrowser canvas --command canvas.plan.set --params-file ./${INSPIREDESIGN_HANDOFF_FILES.canvasPlanRequest}`
|
|
9767
|
+
};
|
|
9768
|
+
var INSPIREDESIGN_HANDOFF_RECOMMENDED_SKILLS = [
|
|
9769
|
+
formatSkillReference(INSPIREDESIGN_HANDOFF_SKILLS.bestPractices),
|
|
9770
|
+
formatSkillReference(INSPIREDESIGN_HANDOFF_SKILLS.designAgent)
|
|
9771
|
+
];
|
|
9772
|
+
var INSPIREDESIGN_HANDOFF_GUIDANCE = {
|
|
9773
|
+
prepareCanvasPlanRequest: `Fill canvasSessionId, leaseId, and documentId in ${INSPIREDESIGN_HANDOFF_FILES.canvasPlanRequest} before running ${INSPIREDESIGN_HANDOFF_COMMANDS.continueInCanvas}.`,
|
|
9774
|
+
deepCaptureRecommendation: "Rerun inspiredesign with captureMode=deep only when you need richer evidence for visual hierarchy, protected references, or capture-specific debugging."
|
|
9775
|
+
};
|
|
9776
|
+
var buildInspiredesignFollowthroughSummary = () => `Continue in OpenDevBrowser Canvas with ${INSPIREDESIGN_HANDOFF_FILES.canvasPlanRequest} and ${INSPIREDESIGN_HANDOFF_FILES.designAgentHandoff}, load ${INSPIREDESIGN_HANDOFF_RECOMMENDED_SKILLS[0]} plus ${INSPIREDESIGN_HANDOFF_RECOMMENDED_SKILLS[1]} before implementation, and rerun with captureMode=deep only when you need richer evidence.`;
|
|
9777
|
+
var buildInspiredesignNextStep = () => `${INSPIREDESIGN_HANDOFF_GUIDANCE.prepareCanvasPlanRequest} Then run ${INSPIREDESIGN_HANDOFF_COMMANDS.continueInCanvas}, confirm planStatus=accepted, then patch only the governance blocks listed in ${INSPIREDESIGN_HANDOFF_FILES.designAgentHandoff}.`;
|
|
9778
|
+
|
|
9739
9779
|
// src/providers/renderer.ts
|
|
9740
9780
|
var toCurrency = (value) => `$${value.toFixed(2)}`;
|
|
9741
9781
|
var primaryConstraintSummaryFromMeta = (meta) => {
|
|
@@ -9941,6 +9981,8 @@ var renderInspiredesign = (args) => {
|
|
|
9941
9981
|
brief: args.brief,
|
|
9942
9982
|
urls: args.urls,
|
|
9943
9983
|
designContract: args.designContract,
|
|
9984
|
+
canvasPlanRequest: args.canvasPlanRequest,
|
|
9985
|
+
designAgentHandoff: args.designAgentHandoff,
|
|
9944
9986
|
generationPlan: args.generationPlan,
|
|
9945
9987
|
implementationPlan: args.implementationPlan,
|
|
9946
9988
|
designMarkdown: args.designMarkdown,
|
|
@@ -9949,22 +9991,44 @@ var renderInspiredesign = (args) => {
|
|
|
9949
9991
|
evidence: args.evidence,
|
|
9950
9992
|
meta: args.meta
|
|
9951
9993
|
};
|
|
9994
|
+
const suggestedSteps = [
|
|
9995
|
+
{
|
|
9996
|
+
reason: "Load the baseline workflow runbook before implementation.",
|
|
9997
|
+
command: args.designAgentHandoff.commandExamples.loadBestPractices
|
|
9998
|
+
},
|
|
9999
|
+
{
|
|
10000
|
+
reason: "Load the Canvas contract lane before patching.",
|
|
10001
|
+
command: args.designAgentHandoff.commandExamples.loadDesignAgent
|
|
10002
|
+
},
|
|
10003
|
+
{
|
|
10004
|
+
reason: INSPIREDESIGN_HANDOFF_GUIDANCE.prepareCanvasPlanRequest,
|
|
10005
|
+
command: args.designAgentHandoff.commandExamples.continueInCanvas
|
|
10006
|
+
},
|
|
10007
|
+
{
|
|
10008
|
+
reason: args.designAgentHandoff.deepCaptureRecommendation
|
|
10009
|
+
}
|
|
10010
|
+
];
|
|
9952
10011
|
const files = [
|
|
9953
|
-
{ path:
|
|
9954
|
-
{ path:
|
|
9955
|
-
{ path:
|
|
9956
|
-
{ path:
|
|
9957
|
-
{ path:
|
|
9958
|
-
{ path:
|
|
10012
|
+
{ path: INSPIREDESIGN_HANDOFF_FILES.designMarkdown, content: args.designMarkdown },
|
|
10013
|
+
{ path: INSPIREDESIGN_HANDOFF_FILES.designContract, content: args.designContract },
|
|
10014
|
+
{ path: INSPIREDESIGN_HANDOFF_FILES.canvasPlanRequest, content: args.canvasPlanRequest },
|
|
10015
|
+
{ path: INSPIREDESIGN_HANDOFF_FILES.designAgentHandoff, content: args.designAgentHandoff },
|
|
10016
|
+
{ path: INSPIREDESIGN_HANDOFF_FILES.generationPlan, content: args.generationPlan },
|
|
10017
|
+
{ path: INSPIREDESIGN_HANDOFF_FILES.implementationPlanMarkdown, content: args.implementationPlanMarkdown },
|
|
10018
|
+
{ path: INSPIREDESIGN_HANDOFF_FILES.implementationPlan, content: args.implementationPlan },
|
|
10019
|
+
{ path: INSPIREDESIGN_HANDOFF_FILES.evidence, content: args.evidence }
|
|
9959
10020
|
];
|
|
9960
10021
|
if (args.prototypeGuidanceMarkdown) {
|
|
9961
|
-
files.push({ path:
|
|
10022
|
+
files.push({ path: INSPIREDESIGN_HANDOFF_FILES.prototypeGuidance, content: args.prototypeGuidanceMarkdown });
|
|
9962
10023
|
}
|
|
9963
10024
|
if (args.mode === "compact") {
|
|
9964
10025
|
return {
|
|
9965
10026
|
response: {
|
|
9966
10027
|
mode: args.mode,
|
|
9967
10028
|
summary,
|
|
10029
|
+
followthroughSummary: args.designAgentHandoff.summary,
|
|
10030
|
+
suggestedNextAction: args.designAgentHandoff.nextStep,
|
|
10031
|
+
suggestedSteps,
|
|
9968
10032
|
meta: args.meta
|
|
9969
10033
|
},
|
|
9970
10034
|
files
|
|
@@ -9976,11 +10040,16 @@ var renderInspiredesign = (args) => {
|
|
|
9976
10040
|
mode: args.mode,
|
|
9977
10041
|
brief: args.brief,
|
|
9978
10042
|
urls: args.urls,
|
|
10043
|
+
canvasPlanRequest: args.canvasPlanRequest,
|
|
10044
|
+
designAgentHandoff: args.designAgentHandoff,
|
|
9979
10045
|
designContract: args.designContract,
|
|
9980
10046
|
generationPlan: args.generationPlan,
|
|
9981
10047
|
implementationPlan: args.implementationPlan,
|
|
9982
10048
|
prototypeGuidanceMarkdown: args.prototypeGuidanceMarkdown,
|
|
9983
10049
|
evidence: args.evidence,
|
|
10050
|
+
followthroughSummary: args.designAgentHandoff.summary,
|
|
10051
|
+
suggestedNextAction: args.designAgentHandoff.nextStep,
|
|
10052
|
+
suggestedSteps,
|
|
9984
10053
|
meta: args.meta
|
|
9985
10054
|
},
|
|
9986
10055
|
files
|
|
@@ -9993,6 +10062,9 @@ var renderInspiredesign = (args) => {
|
|
|
9993
10062
|
markdown: args.designMarkdown,
|
|
9994
10063
|
implementationPlanMarkdown: args.implementationPlanMarkdown,
|
|
9995
10064
|
prototypeGuidanceMarkdown: args.prototypeGuidanceMarkdown,
|
|
10065
|
+
followthroughSummary: args.designAgentHandoff.summary,
|
|
10066
|
+
suggestedNextAction: args.designAgentHandoff.nextStep,
|
|
10067
|
+
suggestedSteps,
|
|
9996
10068
|
meta: args.meta
|
|
9997
10069
|
},
|
|
9998
10070
|
files
|
|
@@ -10003,6 +10075,9 @@ var renderInspiredesign = (args) => {
|
|
|
10003
10075
|
response: {
|
|
10004
10076
|
mode: args.mode,
|
|
10005
10077
|
context: contextPayload,
|
|
10078
|
+
followthroughSummary: args.designAgentHandoff.summary,
|
|
10079
|
+
suggestedNextAction: args.designAgentHandoff.nextStep,
|
|
10080
|
+
suggestedSteps,
|
|
10006
10081
|
meta: args.meta
|
|
10007
10082
|
},
|
|
10008
10083
|
files
|
|
@@ -10011,6 +10086,9 @@ var renderInspiredesign = (args) => {
|
|
|
10011
10086
|
return {
|
|
10012
10087
|
response: {
|
|
10013
10088
|
mode: "path",
|
|
10089
|
+
followthroughSummary: args.designAgentHandoff.summary,
|
|
10090
|
+
suggestedNextAction: args.designAgentHandoff.nextStep,
|
|
10091
|
+
suggestedSteps,
|
|
10014
10092
|
meta: args.meta
|
|
10015
10093
|
},
|
|
10016
10094
|
files
|
|
@@ -10311,7 +10389,8 @@ var design_contract_v1_default = {
|
|
|
10311
10389
|
|
|
10312
10390
|
// src/providers/inspiredesign-contract.ts
|
|
10313
10391
|
var BASE_CONTRACT_TEMPLATE = design_contract_v1_default;
|
|
10314
|
-
var
|
|
10392
|
+
var BASE_PLAN_REQUEST_TEMPLATE = canvas_generation_plan_design_v1_default;
|
|
10393
|
+
var BASE_GENERATION_PLAN = BASE_PLAN_REQUEST_TEMPLATE.generationPlan;
|
|
10315
10394
|
var PROFILE_MATCHERS = [
|
|
10316
10395
|
{ profile: "auth-focused", keywords: ["auth", "login", "signin", "sign-in", "signup", "sign-up", "onboarding"] },
|
|
10317
10396
|
{ profile: "settings-system", keywords: ["settings", "preferences", "account", "profile", "billing"] },
|
|
@@ -10716,6 +10795,59 @@ var buildRuntimeBudgetsBlock = (plan) => ({
|
|
|
10716
10795
|
"Avoid heavyweight decorative animation before interaction clarity is established."
|
|
10717
10796
|
]
|
|
10718
10797
|
});
|
|
10798
|
+
var EMITTED_GOVERNANCE_BLOCKS = [
|
|
10799
|
+
"intent",
|
|
10800
|
+
"generationPlan",
|
|
10801
|
+
"designLanguage",
|
|
10802
|
+
"contentModel",
|
|
10803
|
+
"layoutSystem",
|
|
10804
|
+
"typographySystem",
|
|
10805
|
+
"colorSystem",
|
|
10806
|
+
"surfaceSystem",
|
|
10807
|
+
"iconSystem",
|
|
10808
|
+
"motionSystem",
|
|
10809
|
+
"responsiveSystem",
|
|
10810
|
+
"accessibilityPolicy",
|
|
10811
|
+
"libraryPolicy",
|
|
10812
|
+
"runtimeBudgets"
|
|
10813
|
+
];
|
|
10814
|
+
var buildNavigationModelBlock = (profile) => {
|
|
10815
|
+
const block = cloneTemplate(BASE_CONTRACT_TEMPLATE.navigationModel);
|
|
10816
|
+
return {
|
|
10817
|
+
...block,
|
|
10818
|
+
primaryRouteModel: `Use a ${PROFILE_CONFIG[profile].navigationModel} route shell so the primary action remains stable through state changes.`
|
|
10819
|
+
};
|
|
10820
|
+
};
|
|
10821
|
+
var buildAsyncModelBlock = () => {
|
|
10822
|
+
return cloneTemplate(BASE_CONTRACT_TEMPLATE.asyncModel);
|
|
10823
|
+
};
|
|
10824
|
+
var buildPerformanceModelBlock = () => {
|
|
10825
|
+
return cloneTemplate(BASE_CONTRACT_TEMPLATE.performanceModel);
|
|
10826
|
+
};
|
|
10827
|
+
var buildCanvasPlanRequest = (brief, generationPlan) => ({
|
|
10828
|
+
...cloneTemplate(BASE_PLAN_REQUEST_TEMPLATE),
|
|
10829
|
+
requestId: `req_plan_${referenceFingerprint(brief).slice(0, 12)}`,
|
|
10830
|
+
generationPlan
|
|
10831
|
+
});
|
|
10832
|
+
var buildContractScope = () => ({
|
|
10833
|
+
emittedContract: "CanvasDesignGovernance",
|
|
10834
|
+
emittedGovernanceBlocks: [...EMITTED_GOVERNANCE_BLOCKS],
|
|
10835
|
+
omittedTemplateBlocks: ["navigationModel", "asyncModel", "performanceModel"],
|
|
10836
|
+
note: `${INSPIREDESIGN_HANDOFF_FILES.designContract} is the narrowed canvas governance contract. Use ${INSPIREDESIGN_HANDOFF_FILES.designAgentHandoff} for navigation, async, and performance context that informs implementation but does not belong in canvas governance patches.`
|
|
10837
|
+
});
|
|
10838
|
+
var buildFollowthrough = (generationPlan) => ({
|
|
10839
|
+
summary: buildInspiredesignFollowthroughSummary(),
|
|
10840
|
+
nextStep: buildInspiredesignNextStep(),
|
|
10841
|
+
recommendedSkills: [...INSPIREDESIGN_HANDOFF_RECOMMENDED_SKILLS],
|
|
10842
|
+
commandExamples: { ...INSPIREDESIGN_HANDOFF_COMMANDS },
|
|
10843
|
+
deepCaptureRecommendation: INSPIREDESIGN_HANDOFF_GUIDANCE.deepCaptureRecommendation,
|
|
10844
|
+
contractScope: buildContractScope(),
|
|
10845
|
+
implementationContext: {
|
|
10846
|
+
navigationModel: buildNavigationModelBlock(generationPlan.visualDirection.profile),
|
|
10847
|
+
asyncModel: buildAsyncModelBlock(),
|
|
10848
|
+
performanceModel: buildPerformanceModelBlock()
|
|
10849
|
+
}
|
|
10850
|
+
});
|
|
10719
10851
|
var buildDesignContract = (brief, urls, references, plan) => ({
|
|
10720
10852
|
intent: buildIntentBlock(brief, urls, references),
|
|
10721
10853
|
generationPlan: plan,
|
|
@@ -11007,6 +11139,8 @@ var renderDeliverablesSummary = (includePrototypeGuidance) => {
|
|
|
11007
11139
|
const deliverables = [
|
|
11008
11140
|
"Structured `designContract` JSON aligned to canvas governance",
|
|
11009
11141
|
"Valid `generationPlan` JSON aligned to the canvas generation plan contract",
|
|
11142
|
+
"Ready-to-fill `canvasPlanRequest` JSON for `canvas.plan.set`",
|
|
11143
|
+
"Design-agent handoff JSON with contract scope, skill nudges, and richer implementation context",
|
|
11010
11144
|
"Human-readable `design.md` design specification",
|
|
11011
11145
|
"Engineering implementation plan in JSON and Markdown"
|
|
11012
11146
|
];
|
|
@@ -11053,7 +11187,9 @@ var buildInspiredesignPacket = (input) => {
|
|
|
11053
11187
|
}));
|
|
11054
11188
|
const profile = classifyProfile(brief, references);
|
|
11055
11189
|
const generationPlan = buildGenerationPlan(brief, profile, references);
|
|
11190
|
+
const canvasPlanRequest = buildCanvasPlanRequest(brief, generationPlan);
|
|
11056
11191
|
const designContract = buildDesignContract(brief, urls, references, generationPlan);
|
|
11192
|
+
const followthrough = buildFollowthrough(generationPlan);
|
|
11057
11193
|
const implementationPlan = buildImplementationPlan(brief, profile, references);
|
|
11058
11194
|
const governanceMarkdown = renderGovernanceMarkdown(designContract, implementationPlan);
|
|
11059
11195
|
const implementationPlanMarkdown = renderImplementationMarkdown(implementationPlan);
|
|
@@ -11098,6 +11234,8 @@ var buildInspiredesignPacket = (input) => {
|
|
|
11098
11234
|
return {
|
|
11099
11235
|
designContract,
|
|
11100
11236
|
generationPlan,
|
|
11237
|
+
canvasPlanRequest,
|
|
11238
|
+
followthrough,
|
|
11101
11239
|
designMarkdown,
|
|
11102
11240
|
implementationPlan,
|
|
11103
11241
|
implementationPlanMarkdown,
|
|
@@ -11106,6 +11244,49 @@ var buildInspiredesignPacket = (input) => {
|
|
|
11106
11244
|
};
|
|
11107
11245
|
};
|
|
11108
11246
|
|
|
11247
|
+
// src/providers/workflow-handoff.ts
|
|
11248
|
+
var PRODUCT_VIDEO_BRIEF_HELPER_PATH = "./skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh";
|
|
11249
|
+
var PRODUCT_VIDEO_BRIEF_HELPER_COMMAND = `${PRODUCT_VIDEO_BRIEF_HELPER_PATH} <pack>/manifest.json`;
|
|
11250
|
+
var createSuccessHandoff = (followthroughSummary, suggestedNextAction, suggestedSteps) => ({
|
|
11251
|
+
followthroughSummary,
|
|
11252
|
+
suggestedNextAction,
|
|
11253
|
+
suggestedSteps
|
|
11254
|
+
});
|
|
11255
|
+
var buildResearchSuccessHandoff = () => {
|
|
11256
|
+
return createSuccessHandoff(
|
|
11257
|
+
"Review the ranked records and artifact bundle before turning the result into a publishable claim.",
|
|
11258
|
+
"Open the returned artifact path, inspect the supporting records, and rerun with explicit --sources or a tighter timebox if you need stronger evidence.",
|
|
11259
|
+
[
|
|
11260
|
+
{ reason: "Check which records actually support the final claim." },
|
|
11261
|
+
{ reason: "Rerun with explicit sources or a narrower timebox if the evidence set is still too broad." }
|
|
11262
|
+
]
|
|
11263
|
+
);
|
|
11264
|
+
};
|
|
11265
|
+
var buildShoppingSuccessHandoff = () => {
|
|
11266
|
+
return createSuccessHandoff(
|
|
11267
|
+
"Review the offer set and diagnostics before calling any result a strong deal.",
|
|
11268
|
+
"Inspect the offers and meta.offerFilterDiagnostics, then rerun with explicit providers or budget and region adjustments if you need a tighter comparison.",
|
|
11269
|
+
[
|
|
11270
|
+
{ reason: "Check which offers survived the workflow filters and why." },
|
|
11271
|
+
{ reason: "Rerun with explicit providers or updated budget and region inputs if the comparison is still noisy." }
|
|
11272
|
+
]
|
|
11273
|
+
);
|
|
11274
|
+
};
|
|
11275
|
+
var buildProductVideoSuccessHandoff = () => {
|
|
11276
|
+
return createSuccessHandoff(
|
|
11277
|
+
"Review the generated asset pack to confirm whether it is visual-ready or metadata-first before briefing production.",
|
|
11278
|
+
`Open the returned pack path, inspect manifest.json plus copy and features, then run ${PRODUCT_VIDEO_BRIEF_HELPER_COMMAND} to generate production briefs and sourcing notes.`,
|
|
11279
|
+
[
|
|
11280
|
+
{ reason: "Confirm whether the pack already includes enough images or screenshots for production." },
|
|
11281
|
+
{
|
|
11282
|
+
reason: "Run the product-presentation-asset brief helper on manifest.json to generate the production brief files.",
|
|
11283
|
+
command: PRODUCT_VIDEO_BRIEF_HELPER_COMMAND
|
|
11284
|
+
},
|
|
11285
|
+
{ reason: "Source or capture visuals before final handoff if the pack is metadata-first." }
|
|
11286
|
+
]
|
|
11287
|
+
);
|
|
11288
|
+
};
|
|
11289
|
+
|
|
11109
11290
|
// src/providers/shopping-postprocess.ts
|
|
11110
11291
|
import { createHash as createHash4 } from "crypto";
|
|
11111
11292
|
var LOOKS_LIKE_URL_RE = /^https?:\/\/\S+$/i;
|
|
@@ -12693,6 +12874,10 @@ var SIGNAL_WINDOW = 50;
|
|
|
12693
12874
|
var RECOVERY_WINDOWS_REQUIRED = 2;
|
|
12694
12875
|
var providerSignalMap = /* @__PURE__ */ new Map();
|
|
12695
12876
|
var workflowLogger = createLogger("provider-workflows");
|
|
12877
|
+
var withFollowthroughMeta = (meta, handoff) => ({
|
|
12878
|
+
...meta,
|
|
12879
|
+
followthroughSummary: handoff.followthroughSummary
|
|
12880
|
+
});
|
|
12696
12881
|
var detectSignal = (error) => {
|
|
12697
12882
|
const reasonCode = error.reasonCode ?? normalizeProviderReasonCode({
|
|
12698
12883
|
code: error.code,
|
|
@@ -13605,7 +13790,7 @@ var summarizeInspiredesignCaptureConstraint = (references) => {
|
|
|
13605
13790
|
}
|
|
13606
13791
|
};
|
|
13607
13792
|
};
|
|
13608
|
-
var buildInspiredesignMeta = (runtime, workflowInput, references, failures) => {
|
|
13793
|
+
var buildInspiredesignMeta = (runtime, workflowInput, references, failures, followthrough) => {
|
|
13609
13794
|
const failedCaptures = references.filter((reference) => reference.captureStatus === "failed");
|
|
13610
13795
|
let reasonCodeDistribution = summarizeReasonCodeDistribution(failures);
|
|
13611
13796
|
let meta = withCamelCasePrimaryConstraintMeta(withReasonCodeDistributionMeta({
|
|
@@ -13635,7 +13820,13 @@ var buildInspiredesignMeta = (runtime, workflowInput, references, failures) => {
|
|
|
13635
13820
|
meta = withPrimaryConstraintSummaryOverride(meta, captureConstraint.summary, captureConstraint.guidance);
|
|
13636
13821
|
}
|
|
13637
13822
|
}
|
|
13638
|
-
return
|
|
13823
|
+
return {
|
|
13824
|
+
...meta,
|
|
13825
|
+
followthroughSummary: followthrough.summary,
|
|
13826
|
+
recommendedSkills: followthrough.recommendedSkills,
|
|
13827
|
+
deepCaptureRecommendation: followthrough.deepCaptureRecommendation,
|
|
13828
|
+
contractScope: followthrough.contractScope
|
|
13829
|
+
};
|
|
13639
13830
|
};
|
|
13640
13831
|
var inferBrandFromContent = (content) => {
|
|
13641
13832
|
const normalized = normalizePlainText(content);
|
|
@@ -14232,11 +14423,13 @@ var runResearchWorkflow = async (runtime, input) => {
|
|
|
14232
14423
|
failures: mergedFailures,
|
|
14233
14424
|
alerts: buildWorkflowAlerts(runtime, mergedFailures)
|
|
14234
14425
|
}, primaryConstraintFailures);
|
|
14426
|
+
const handoff = buildResearchSuccessHandoff();
|
|
14427
|
+
const responseMeta = withFollowthroughMeta(meta, handoff);
|
|
14235
14428
|
const rendered = renderResearch({
|
|
14236
14429
|
mode: workflowInput.mode,
|
|
14237
14430
|
topic: plan.compiled.topic,
|
|
14238
14431
|
records: ranked,
|
|
14239
|
-
meta
|
|
14432
|
+
meta: responseMeta
|
|
14240
14433
|
});
|
|
14241
14434
|
const bundle = await createArtifactBundle({
|
|
14242
14435
|
namespace: "research",
|
|
@@ -14247,20 +14440,22 @@ var runResearchWorkflow = async (runtime, input) => {
|
|
|
14247
14440
|
if (workflowInput.mode === "path") {
|
|
14248
14441
|
return {
|
|
14249
14442
|
...rendered.response,
|
|
14443
|
+
...handoff,
|
|
14250
14444
|
path: bundle.basePath,
|
|
14251
14445
|
records: ranked,
|
|
14252
14446
|
meta: {
|
|
14253
|
-
...
|
|
14447
|
+
...responseMeta,
|
|
14254
14448
|
artifact_manifest: bundle.manifest
|
|
14255
14449
|
}
|
|
14256
14450
|
};
|
|
14257
14451
|
}
|
|
14258
14452
|
return {
|
|
14259
14453
|
...rendered.response,
|
|
14454
|
+
...handoff,
|
|
14260
14455
|
artifact_path: bundle.basePath,
|
|
14261
14456
|
records: ranked,
|
|
14262
14457
|
meta: {
|
|
14263
|
-
...
|
|
14458
|
+
...responseMeta,
|
|
14264
14459
|
artifact_manifest: bundle.manifest
|
|
14265
14460
|
}
|
|
14266
14461
|
};
|
|
@@ -14407,11 +14602,13 @@ var runShoppingWorkflow = async (runtime, input) => {
|
|
|
14407
14602
|
if (typeof filterConstraintSummary === "string") {
|
|
14408
14603
|
meta = withPrimaryConstraintSummaryOverride(meta, filterConstraintSummary);
|
|
14409
14604
|
}
|
|
14605
|
+
const handoff = buildShoppingSuccessHandoff();
|
|
14606
|
+
const responseMeta = withFollowthroughMeta(meta, handoff);
|
|
14410
14607
|
const rendered = renderShopping({
|
|
14411
14608
|
mode: workflowInput.mode,
|
|
14412
14609
|
query: plan.compiled.query,
|
|
14413
14610
|
offers,
|
|
14414
|
-
meta
|
|
14611
|
+
meta: responseMeta
|
|
14415
14612
|
});
|
|
14416
14613
|
const bundle = await createArtifactBundle({
|
|
14417
14614
|
namespace: "shopping",
|
|
@@ -14422,20 +14619,22 @@ var runShoppingWorkflow = async (runtime, input) => {
|
|
|
14422
14619
|
if (workflowInput.mode === "path") {
|
|
14423
14620
|
return {
|
|
14424
14621
|
...rendered.response,
|
|
14622
|
+
...handoff,
|
|
14425
14623
|
path: bundle.basePath,
|
|
14426
14624
|
offers,
|
|
14427
14625
|
meta: {
|
|
14428
|
-
...
|
|
14626
|
+
...responseMeta,
|
|
14429
14627
|
artifact_manifest: bundle.manifest
|
|
14430
14628
|
}
|
|
14431
14629
|
};
|
|
14432
14630
|
}
|
|
14433
14631
|
return {
|
|
14434
14632
|
...rendered.response,
|
|
14633
|
+
...handoff,
|
|
14435
14634
|
offers,
|
|
14436
14635
|
artifact_path: bundle.basePath,
|
|
14437
14636
|
meta: {
|
|
14438
|
-
...
|
|
14637
|
+
...responseMeta,
|
|
14439
14638
|
artifact_manifest: bundle.manifest
|
|
14440
14639
|
}
|
|
14441
14640
|
};
|
|
@@ -14485,18 +14684,20 @@ var runInspiredesignWorkflow = async (runtime, input, options = {}) => {
|
|
|
14485
14684
|
captureStatus: capture.captureStatus
|
|
14486
14685
|
});
|
|
14487
14686
|
}
|
|
14488
|
-
const meta = buildInspiredesignMeta(runtime, workflowInput, references, failures);
|
|
14489
14687
|
const packet = buildInspiredesignPacket({
|
|
14490
14688
|
brief: workflowInput.brief,
|
|
14491
14689
|
urls: workflowInput.urls,
|
|
14492
14690
|
references,
|
|
14493
14691
|
includePrototypeGuidance: workflowInput.includePrototypeGuidance
|
|
14494
14692
|
});
|
|
14693
|
+
const meta = buildInspiredesignMeta(runtime, workflowInput, references, failures, packet.followthrough);
|
|
14495
14694
|
const rendered = renderInspiredesign({
|
|
14496
14695
|
mode: workflowInput.mode,
|
|
14497
14696
|
brief: workflowInput.brief,
|
|
14498
14697
|
urls: workflowInput.urls,
|
|
14499
14698
|
designContract: packet.designContract,
|
|
14699
|
+
canvasPlanRequest: packet.canvasPlanRequest,
|
|
14700
|
+
designAgentHandoff: packet.followthrough,
|
|
14500
14701
|
generationPlan: packet.generationPlan,
|
|
14501
14702
|
implementationPlan: packet.implementationPlan,
|
|
14502
14703
|
designMarkdown: packet.designMarkdown,
|
|
@@ -14872,32 +15073,35 @@ var runProductVideoWorkflow = async (runtime, input, options = {}) => {
|
|
|
14872
15073
|
const cookieDiagnostics = summarizeCookieDiagnostics(details.failures, details.records);
|
|
14873
15074
|
const antiBotPressure = summarizeAntiBotPressure(details.failures);
|
|
14874
15075
|
const primaryIssue = summarizePrimaryProviderIssue(details.failures);
|
|
15076
|
+
const handoff = buildProductVideoSuccessHandoff();
|
|
15077
|
+
const meta = withFollowthroughMeta({
|
|
15078
|
+
alerts: buildWorkflowAlerts(runtime, details.failures),
|
|
15079
|
+
failures: details.failures,
|
|
15080
|
+
...primaryIssue ? { primaryConstraintSummary: primaryIssue.summary } : {},
|
|
15081
|
+
reasonCodeDistribution,
|
|
15082
|
+
transcript_strategy_failures: transcriptStrategyFailures,
|
|
15083
|
+
transcriptStrategyFailures,
|
|
15084
|
+
transcript_strategy_detail_failures: transcriptStrategyFailures,
|
|
15085
|
+
transcriptStrategyDetailFailures: transcriptStrategyFailures,
|
|
15086
|
+
transcript_strategy_detail_distribution: transcriptStrategyDetailDistribution,
|
|
15087
|
+
transcriptStrategyDetailDistribution,
|
|
15088
|
+
transcript_durability: transcriptDurability,
|
|
15089
|
+
transcriptDurability,
|
|
15090
|
+
cookie_diagnostics: cookieDiagnostics,
|
|
15091
|
+
cookieDiagnostics,
|
|
15092
|
+
anti_bot_pressure: antiBotPressure,
|
|
15093
|
+
antiBotPressure,
|
|
15094
|
+
artifact_manifest: bundle.manifest
|
|
15095
|
+
}, handoff);
|
|
14875
15096
|
return {
|
|
15097
|
+
...handoff,
|
|
14876
15098
|
path: bundle.basePath,
|
|
14877
15099
|
manifest: manifestPayload,
|
|
14878
15100
|
product: productPayload,
|
|
14879
15101
|
pricing,
|
|
14880
15102
|
screenshots: screenshotPaths,
|
|
14881
15103
|
images: imagePaths,
|
|
14882
|
-
meta
|
|
14883
|
-
alerts: buildWorkflowAlerts(runtime, details.failures),
|
|
14884
|
-
failures: details.failures,
|
|
14885
|
-
...primaryIssue ? { primaryConstraintSummary: primaryIssue.summary } : {},
|
|
14886
|
-
reasonCodeDistribution,
|
|
14887
|
-
transcript_strategy_failures: transcriptStrategyFailures,
|
|
14888
|
-
transcriptStrategyFailures,
|
|
14889
|
-
transcript_strategy_detail_failures: transcriptStrategyFailures,
|
|
14890
|
-
transcriptStrategyDetailFailures: transcriptStrategyFailures,
|
|
14891
|
-
transcript_strategy_detail_distribution: transcriptStrategyDetailDistribution,
|
|
14892
|
-
transcriptStrategyDetailDistribution,
|
|
14893
|
-
transcript_durability: transcriptDurability,
|
|
14894
|
-
transcriptDurability,
|
|
14895
|
-
cookie_diagnostics: cookieDiagnostics,
|
|
14896
|
-
cookieDiagnostics,
|
|
14897
|
-
anti_bot_pressure: antiBotPressure,
|
|
14898
|
-
antiBotPressure,
|
|
14899
|
-
artifact_manifest: bundle.manifest
|
|
14900
|
-
}
|
|
15104
|
+
meta
|
|
14901
15105
|
};
|
|
14902
15106
|
};
|
|
14903
15107
|
|
|
@@ -17037,6 +17241,8 @@ export {
|
|
|
17037
17241
|
filterByTimebox,
|
|
17038
17242
|
toResearchRecord,
|
|
17039
17243
|
enrichResearchRecords,
|
|
17244
|
+
INSPIREDESIGN_HANDOFF_COMMANDS,
|
|
17245
|
+
INSPIREDESIGN_HANDOFF_GUIDANCE,
|
|
17040
17246
|
renderResearch,
|
|
17041
17247
|
renderShopping,
|
|
17042
17248
|
renderInspiredesign,
|
|
@@ -17050,4 +17256,4 @@ export {
|
|
|
17050
17256
|
createProviderRuntime,
|
|
17051
17257
|
createDefaultRuntime
|
|
17052
17258
|
};
|
|
17053
|
-
//# sourceMappingURL=chunk-
|
|
17259
|
+
//# sourceMappingURL=chunk-ZE2E7ZGH.js.map
|