rivet-design 0.10.6 → 0.10.8

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.
Files changed (136) hide show
  1. package/dist/index.d.ts +7 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +42 -23
  4. package/dist/index.js.map +1 -1
  5. package/dist/mcp/agent-variants/SessionStore.d.ts +11 -0
  6. package/dist/mcp/agent-variants/SessionStore.d.ts.map +1 -1
  7. package/dist/mcp/agent-variants/SessionStore.js +44 -14
  8. package/dist/mcp/agent-variants/SessionStore.js.map +1 -1
  9. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts +68 -3
  10. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  11. package/dist/mcp/agent-variants/WorktreeOrchestrator.js +411 -98
  12. package/dist/mcp/agent-variants/WorktreeOrchestrator.js.map +1 -1
  13. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts +5 -0
  14. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts.map +1 -1
  15. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js +18 -4
  16. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js.map +1 -1
  17. package/dist/mcp/agent-variants/contracts.d.ts +40 -0
  18. package/dist/mcp/agent-variants/contracts.d.ts.map +1 -1
  19. package/dist/mcp/agent-variants/contracts.js.map +1 -1
  20. package/dist/mcp/agent-variants/createZeroToOneTool.d.ts +47 -265
  21. package/dist/mcp/agent-variants/createZeroToOneTool.d.ts.map +1 -1
  22. package/dist/mcp/agent-variants/createZeroToOneTool.js +147 -207
  23. package/dist/mcp/agent-variants/createZeroToOneTool.js.map +1 -1
  24. package/dist/mcp/agent-variants/generatedDestination.d.ts +75 -0
  25. package/dist/mcp/agent-variants/generatedDestination.d.ts.map +1 -0
  26. package/dist/mcp/agent-variants/generatedDestination.js +104 -0
  27. package/dist/mcp/agent-variants/generatedDestination.js.map +1 -0
  28. package/dist/mcp/agent-variants/index.d.ts +1 -2
  29. package/dist/mcp/agent-variants/index.d.ts.map +1 -1
  30. package/dist/mcp/agent-variants/index.js +1 -3
  31. package/dist/mcp/agent-variants/index.js.map +1 -1
  32. package/dist/mcp/agent-variants/pinterestSourceContext.d.ts +18 -0
  33. package/dist/mcp/agent-variants/pinterestSourceContext.d.ts.map +1 -0
  34. package/dist/mcp/agent-variants/pinterestSourceContext.js +144 -0
  35. package/dist/mcp/agent-variants/pinterestSourceContext.js.map +1 -0
  36. package/dist/mcp/agent-variants/runPlan.d.ts +107 -0
  37. package/dist/mcp/agent-variants/runPlan.d.ts.map +1 -0
  38. package/dist/mcp/agent-variants/runPlan.js +97 -0
  39. package/dist/mcp/agent-variants/runPlan.js.map +1 -0
  40. package/dist/mcp/agent-variants/tools.d.ts +48 -3
  41. package/dist/mcp/agent-variants/tools.d.ts.map +1 -1
  42. package/dist/mcp/agent-variants/tools.js +61 -52
  43. package/dist/mcp/agent-variants/tools.js.map +1 -1
  44. package/dist/mcp/integrations/tools.d.ts +14 -0
  45. package/dist/mcp/integrations/tools.d.ts.map +1 -0
  46. package/dist/mcp/integrations/tools.js +38 -0
  47. package/dist/mcp/integrations/tools.js.map +1 -0
  48. package/dist/mcp/server.d.ts.map +1 -1
  49. package/dist/mcp/server.js +31 -25
  50. package/dist/mcp/server.js.map +1 -1
  51. package/dist/routes/agentVariants.d.ts +2 -1
  52. package/dist/routes/agentVariants.d.ts.map +1 -1
  53. package/dist/routes/agentVariants.js +272 -19
  54. package/dist/routes/agentVariants.js.map +1 -1
  55. package/dist/routes/design.d.ts.map +1 -1
  56. package/dist/routes/design.js +0 -122
  57. package/dist/routes/design.js.map +1 -1
  58. package/dist/server.d.ts +6 -0
  59. package/dist/server.d.ts.map +1 -1
  60. package/dist/server.js +11 -6
  61. package/dist/server.js.map +1 -1
  62. package/dist/services/AgentSessionService.d.ts +5 -1
  63. package/dist/services/AgentSessionService.d.ts.map +1 -1
  64. package/dist/services/AgentSessionService.js +11 -4
  65. package/dist/services/AgentSessionService.js.map +1 -1
  66. package/dist/services/InlineVariantGenerationService.d.ts +2 -3
  67. package/dist/services/InlineVariantGenerationService.d.ts.map +1 -1
  68. package/dist/services/InlineVariantGenerationService.js +7 -5
  69. package/dist/services/InlineVariantGenerationService.js.map +1 -1
  70. package/dist/services/IntegrationsClient.d.ts +78 -0
  71. package/dist/services/IntegrationsClient.d.ts.map +1 -0
  72. package/dist/services/IntegrationsClient.js +139 -0
  73. package/dist/services/IntegrationsClient.js.map +1 -0
  74. package/dist/services/TelemetryService.d.ts +2 -0
  75. package/dist/services/TelemetryService.d.ts.map +1 -1
  76. package/dist/services/TelemetryService.js +2 -0
  77. package/dist/services/TelemetryService.js.map +1 -1
  78. package/dist/services/VariantHistoryService.d.ts +8 -0
  79. package/dist/services/VariantHistoryService.d.ts.map +1 -1
  80. package/dist/services/VariantHistoryService.js +23 -0
  81. package/dist/services/VariantHistoryService.js.map +1 -1
  82. package/dist/services/VariantRunService.d.ts +56 -0
  83. package/dist/services/VariantRunService.d.ts.map +1 -0
  84. package/dist/services/VariantRunService.js +56 -0
  85. package/dist/services/VariantRunService.js.map +1 -0
  86. package/dist/services/VariantsRuntime.d.ts +22 -0
  87. package/dist/services/VariantsRuntime.d.ts.map +1 -0
  88. package/dist/services/VariantsRuntime.js +32 -0
  89. package/dist/services/VariantsRuntime.js.map +1 -0
  90. package/dist/services/VisualVariantAgentRunner.d.ts +20 -0
  91. package/dist/services/VisualVariantAgentRunner.d.ts.map +1 -0
  92. package/dist/services/VisualVariantAgentRunner.js +66 -0
  93. package/dist/services/VisualVariantAgentRunner.js.map +1 -0
  94. package/dist/services/WorktreeManager.d.ts +34 -0
  95. package/dist/services/WorktreeManager.d.ts.map +1 -1
  96. package/dist/services/WorktreeManager.js +172 -23
  97. package/dist/services/WorktreeManager.js.map +1 -1
  98. package/dist/services/createAgentVariantsOrchestrator.d.ts.map +1 -1
  99. package/dist/services/createAgentVariantsOrchestrator.js +2 -0
  100. package/dist/services/createAgentVariantsOrchestrator.js.map +1 -1
  101. package/dist/services/staticStarter.d.ts +1 -1
  102. package/dist/services/staticStarter.d.ts.map +1 -1
  103. package/dist/services/staticStarter.js +76 -19
  104. package/dist/services/staticStarter.js.map +1 -1
  105. package/dist/utils/devServerCommand.d.ts +11 -4
  106. package/dist/utils/devServerCommand.d.ts.map +1 -1
  107. package/dist/utils/devServerCommand.js +17 -8
  108. package/dist/utils/devServerCommand.js.map +1 -1
  109. package/dist/utils/devServerError.d.ts +34 -0
  110. package/dist/utils/devServerError.d.ts.map +1 -0
  111. package/dist/utils/devServerError.js +39 -0
  112. package/dist/utils/devServerError.js.map +1 -0
  113. package/dist/utils/elementRefToContext.d.ts +4 -0
  114. package/dist/utils/elementRefToContext.d.ts.map +1 -0
  115. package/dist/utils/elementRefToContext.js +63 -0
  116. package/dist/utils/elementRefToContext.js.map +1 -0
  117. package/dist/utils/skills/describe-motion-protocol.d.ts +1 -1
  118. package/dist/utils/skills/describe-motion-protocol.d.ts.map +1 -1
  119. package/dist/utils/skills/describe-motion-protocol.js +11 -11
  120. package/dist/utils/skills/shared-variants-protocol.d.ts.map +1 -1
  121. package/dist/utils/skills/shared-variants-protocol.js +6 -4
  122. package/dist/utils/skills/shared-variants-protocol.js.map +1 -1
  123. package/package.json +3 -1
  124. package/src/ui/dist/assets/main-WqlDU4Ou.js +645 -0
  125. package/src/ui/dist/assets/main-auZA25j4.css +1 -0
  126. package/src/ui/dist/index.html +2 -2
  127. package/dist/services/CommentVariationService.d.ts +0 -34
  128. package/dist/services/CommentVariationService.d.ts.map +0 -1
  129. package/dist/services/CommentVariationService.js +0 -136
  130. package/dist/services/CommentVariationService.js.map +0 -1
  131. package/dist/services/VariantCodeGeneratorService.d.ts +0 -39
  132. package/dist/services/VariantCodeGeneratorService.d.ts.map +0 -1
  133. package/dist/services/VariantCodeGeneratorService.js +0 -109
  134. package/dist/services/VariantCodeGeneratorService.js.map +0 -1
  135. package/src/ui/dist/assets/main-B54sNpwl.css +0 -1
  136. package/src/ui/dist/assets/main-B9BHMA4s.js +0 -646
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatedDestination.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/generatedDestination.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,8 @@ export type { ApprovedBriefSelection, ApproveResult, ProposeArgs, ProposeResult,
3
3
  export { PendingChangesAdapter } from './pendingChangesAdapter';
4
4
  export type { AdapterTelemetry, BridgeChangeIntent, BridgeQueue, } from './pendingChangesAdapter';
5
5
  export { AgentVariantsOrchestrator } from './WorktreeOrchestrator';
6
- export type { OrchestratorDeps, ProjectEnvironment, WorktreeManagerLike, } from './WorktreeOrchestrator';
6
+ export type { ActiveSnapshot, OrchestratorDeps, ProjectEnvironment, WorktreeManagerLike, } from './WorktreeOrchestrator';
7
7
  export { registerAgentVariantsTools, slugifyPrompt } from './tools';
8
- export { registerCreateZeroToOneTool } from './createZeroToOneTool';
9
8
  export type { ToolDeps } from './tools';
10
9
  export { AgentVariantsError, ERROR_CODES, type ErrorCode } from './errors';
11
10
  export { VARIANT_COUNT_MIN, VARIANT_COUNT_MAX } from './contracts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACnE,YAAY,EACV,KAAK,EACL,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,8BAA8B,EAC9B,+BAA+B,EAC/B,WAAW,EACX,wBAAwB,EACxB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,KAAK,EACL,MAAM,EACN,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,EACR,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACnE,YAAY,EACV,KAAK,EACL,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,8BAA8B,EAC9B,+BAA+B,EAC/B,WAAW,EACX,wBAAwB,EACxB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,KAAK,EACL,MAAM,EACN,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,EACR,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VARIANT_COUNT_MAX = exports.VARIANT_COUNT_MIN = exports.ERROR_CODES = exports.AgentVariantsError = exports.registerCreateZeroToOneTool = exports.slugifyPrompt = exports.registerAgentVariantsTools = exports.AgentVariantsOrchestrator = exports.PendingChangesAdapter = exports.SessionStore = void 0;
3
+ exports.VARIANT_COUNT_MAX = exports.VARIANT_COUNT_MIN = exports.ERROR_CODES = exports.AgentVariantsError = exports.slugifyPrompt = exports.registerAgentVariantsTools = exports.AgentVariantsOrchestrator = exports.PendingChangesAdapter = exports.SessionStore = void 0;
4
4
  var SessionStore_1 = require("./SessionStore");
5
5
  Object.defineProperty(exports, "SessionStore", { enumerable: true, get: function () { return SessionStore_1.SessionStore; } });
6
6
  var pendingChangesAdapter_1 = require("./pendingChangesAdapter");
@@ -10,8 +10,6 @@ Object.defineProperty(exports, "AgentVariantsOrchestrator", { enumerable: true,
10
10
  var tools_1 = require("./tools");
11
11
  Object.defineProperty(exports, "registerAgentVariantsTools", { enumerable: true, get: function () { return tools_1.registerAgentVariantsTools; } });
12
12
  Object.defineProperty(exports, "slugifyPrompt", { enumerable: true, get: function () { return tools_1.slugifyPrompt; } });
13
- var createZeroToOneTool_1 = require("./createZeroToOneTool");
14
- Object.defineProperty(exports, "registerCreateZeroToOneTool", { enumerable: true, get: function () { return createZeroToOneTool_1.registerCreateZeroToOneTool; } });
15
13
  var errors_1 = require("./errors");
16
14
  Object.defineProperty(exports, "AgentVariantsError", { enumerable: true, get: function () { return errors_1.AgentVariantsError; } });
17
15
  Object.defineProperty(exports, "ERROR_CODES", { enumerable: true, get: function () { return errors_1.ERROR_CODES; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAUrB,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAM9B,+DAAmE;AAA1D,iIAAA,yBAAyB,OAAA;AAMlC,iCAAoE;AAA3D,mHAAA,0BAA0B,OAAA;AAAE,sGAAA,aAAa,OAAA;AAClD,6DAAoE;AAA3D,kIAAA,2BAA2B,OAAA;AAEpC,mCAA2E;AAAlE,4GAAA,kBAAkB,OAAA;AAAE,qGAAA,WAAW,OAAA;AACxC,yCAAmE;AAA1D,8GAAA,iBAAiB,OAAA;AAAE,8GAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAUrB,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAM9B,+DAAmE;AAA1D,iIAAA,yBAAyB,OAAA;AAOlC,iCAAoE;AAA3D,mHAAA,0BAA0B,OAAA;AAAE,sGAAA,aAAa,OAAA;AAElD,mCAA2E;AAAlE,4GAAA,kBAAkB,OAAA;AAAE,qGAAA,WAAW,OAAA;AACxC,yCAAmE;AAA1D,8GAAA,iBAAiB,OAAA;AAAE,8GAAA,iBAAiB,OAAA"}
@@ -0,0 +1,18 @@
1
+ import type { IntegrationsClient } from '../../services/IntegrationsClient';
2
+ import type { SourceArtifactInput } from './contracts';
3
+ type PinterestSourceContextInput = {
4
+ sourceUrls: string[];
5
+ integrationsClient?: Pick<IntegrationsClient, 'fetchPinterest'>;
6
+ };
7
+ export type PinterestSourceContextEnrichment = {
8
+ sourceArtifacts: SourceArtifactInput[];
9
+ warnings: string[];
10
+ };
11
+ export declare const selectPrimaryPinterestImage: (imageUrls: readonly string[]) => string | null;
12
+ /**
13
+ * Enriches Pinterest source URLs through the existing proxy-backed integration
14
+ * client, preserving local auth/token handling outside MCP.
15
+ */
16
+ export declare const enrichPinterestSourceContext: (input: PinterestSourceContextInput) => Promise<PinterestSourceContextEnrichment>;
17
+ export {};
18
+ //# sourceMappingURL=pinterestSourceContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pinterestSourceContext.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/pinterestSourceContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAqBvD,KAAK,2BAA2B,GAAG;IACjC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;CACjE,CAAC;AAQF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AA6BF,eAAO,MAAM,2BAA2B,GACtC,WAAW,SAAS,MAAM,EAAE,KAC3B,MAAM,GAAG,IAoBX,CAAC;AAqEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACvC,OAAO,2BAA2B,KACjC,OAAO,CAAC,gCAAgC,CA2C1C,CAAC"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.enrichPinterestSourceContext = exports.selectPrimaryPinterestImage = void 0;
4
+ const MAX_PINTEREST_SOURCE_URLS = 1;
5
+ const MAX_PINTEREST_PINS = 3;
6
+ const MAX_PINTEREST_ARTIFACT_CONTENT_LENGTH = 7_500;
7
+ const PINTEREST_HOST_SUFFIX = 'pinterest.com';
8
+ const NOT_CONNECTED_FALLBACK_WARNING = 'Pinterest is not connected; using the Pinterest URL without authenticated board context.';
9
+ /**
10
+ * Builds the not-connected warning, embedding the proxy-provided connect URL as
11
+ * an actionable nudge when present so the agent can link the user to it during
12
+ * zero-to-one variant generation, and falling back to the generic wording
13
+ * otherwise.
14
+ */
15
+ const buildNotConnectedWarning = (connectUrl) => connectUrl
16
+ ? `Pinterest is not connected. Connect Pinterest at ${connectUrl}; using the Pinterest URL without authenticated board context.`
17
+ : NOT_CONNECTED_FALLBACK_WARNING;
18
+ const isPinterestUrl = (rawUrl) => {
19
+ try {
20
+ const parsed = new URL(rawUrl);
21
+ const hostname = parsed.hostname.replace(/^www\./, '').toLowerCase();
22
+ return (hostname === PINTEREST_HOST_SUFFIX ||
23
+ hostname.endsWith(`.${PINTEREST_HOST_SUFFIX}`));
24
+ }
25
+ catch {
26
+ return false;
27
+ }
28
+ };
29
+ const inferImageScore = (url) => {
30
+ const sizePair = url.match(/(?:^|[^\d])(\d{2,5})x(\d{2,5})(?:[^\d]|$)/);
31
+ if (sizePair) {
32
+ return Number(sizePair[1]) * Number(sizePair[2]);
33
+ }
34
+ const pinterestWidth = url.match(/\/(\d{2,5})x\//);
35
+ if (pinterestWidth) {
36
+ return Number(pinterestWidth[1]);
37
+ }
38
+ return null;
39
+ };
40
+ const selectPrimaryPinterestImage = (imageUrls) => {
41
+ const candidates = imageUrls
42
+ .map((url, index) => ({ url, score: inferImageScore(url), index }))
43
+ .filter((candidate) => candidate.url.length > 0);
44
+ if (candidates.length === 0) {
45
+ return null;
46
+ }
47
+ const scoredCandidates = candidates.filter((candidate) => candidate.score !== null);
48
+ if (scoredCandidates.length > 0) {
49
+ return scoredCandidates.reduce((largest, candidate) => candidate.score > largest.score ? candidate : largest).url;
50
+ }
51
+ return candidates[candidates.length - 1].url;
52
+ };
53
+ exports.selectPrimaryPinterestImage = selectPrimaryPinterestImage;
54
+ const compactLine = (label, value) => (value ? `${label}: ${value}` : null);
55
+ const buildPinLines = (pin, index) => {
56
+ const primaryImageUrl = (0, exports.selectPrimaryPinterestImage)(pin.image_urls);
57
+ return [
58
+ `Pin ${index + 1}`,
59
+ compactLine('id', pin.id),
60
+ compactLine('title', pin.title),
61
+ compactLine('description', pin.description),
62
+ compactLine('alt_text', pin.alt_text),
63
+ compactLine('dominant_color', pin.dominant_color),
64
+ compactLine('link', pin.link),
65
+ compactLine('primary_image_url', primaryImageUrl),
66
+ pin.image_urls.length > 0
67
+ ? `image_urls: ${pin.image_urls.join(', ')}`
68
+ : null,
69
+ ].filter((line) => Boolean(line));
70
+ };
71
+ const buildBoardLines = (board) => {
72
+ if (!board) {
73
+ return [];
74
+ }
75
+ return [
76
+ compactLine('board_title', board.name),
77
+ compactLine('board_description', board.description),
78
+ compactLine('board_privacy', board.privacy),
79
+ ].filter((line) => Boolean(line));
80
+ };
81
+ const buildPinterestArtifact = (input) => {
82
+ const pins = input.pins.slice(0, MAX_PINTEREST_PINS);
83
+ if (pins.length === 0) {
84
+ return null;
85
+ }
86
+ const label = input.board?.name
87
+ ? `Pinterest: ${input.board.name}`
88
+ : 'Pinterest visual reference';
89
+ const content = [
90
+ `source_url: ${input.sourceUrl}`,
91
+ ...buildBoardLines(input.board),
92
+ ...pins.flatMap((pin, index) => ['', ...buildPinLines(pin, index)]),
93
+ ]
94
+ .join('\n')
95
+ .trim()
96
+ .slice(0, MAX_PINTEREST_ARTIFACT_CONTENT_LENGTH);
97
+ if (!content) {
98
+ return null;
99
+ }
100
+ return {
101
+ kind: 'visualBrief',
102
+ label,
103
+ content,
104
+ };
105
+ };
106
+ /**
107
+ * Enriches Pinterest source URLs through the existing proxy-backed integration
108
+ * client, preserving local auth/token handling outside MCP.
109
+ */
110
+ const enrichPinterestSourceContext = async (input) => {
111
+ const allPinterestUrls = input.sourceUrls.filter(isPinterestUrl);
112
+ const pinterestUrls = allPinterestUrls.slice(0, MAX_PINTEREST_SOURCE_URLS);
113
+ if (!input.integrationsClient || pinterestUrls.length === 0) {
114
+ return { sourceArtifacts: [], warnings: [] };
115
+ }
116
+ const sourceArtifacts = [];
117
+ const warnings = [];
118
+ const skippedPinterestUrlCount = allPinterestUrls.length - pinterestUrls.length;
119
+ if (skippedPinterestUrlCount > 0) {
120
+ warnings.push(`Only the first Pinterest source URL is enriched; ${skippedPinterestUrlCount} additional Pinterest URL(s) remain as plain source links.`);
121
+ }
122
+ for (const sourceUrl of pinterestUrls) {
123
+ const result = await input.integrationsClient.fetchPinterest(sourceUrl);
124
+ if (result.status === 'not_connected') {
125
+ warnings.push(buildNotConnectedWarning(result.connectUrl));
126
+ continue;
127
+ }
128
+ if (result.status === 'error') {
129
+ warnings.push(`Pinterest fetch failed; using the Pinterest URL without authenticated board context. ${result.message}`);
130
+ continue;
131
+ }
132
+ const artifact = buildPinterestArtifact({
133
+ sourceUrl,
134
+ board: result.type === 'board' ? result.board : undefined,
135
+ pins: result.pins,
136
+ });
137
+ if (artifact) {
138
+ sourceArtifacts.push(artifact);
139
+ }
140
+ }
141
+ return { sourceArtifacts, warnings };
142
+ };
143
+ exports.enrichPinterestSourceContext = enrichPinterestSourceContext;
144
+ //# sourceMappingURL=pinterestSourceContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pinterestSourceContext.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/pinterestSourceContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * VariantRunPlan — the single, canonical resolution of "what kind of run is
3
+ * this" for an agent-variants session.
4
+ *
5
+ * Historically the lifecycle policy (work-item topology, how variants are
6
+ * provisioned, how they're committed, how they preview) was re-derived
7
+ * independently at every stage from `projectContext.kind`,
8
+ * `executionPlan.mode`, and framework detection — `SessionStore.approve`,
9
+ * `WorktreeOrchestrator` provisioning, the commit path, and the preview
10
+ * wiring each made the same `kind === 'fresh'` / `mode === 'vite_app'`
11
+ * decisions in their own way. That spread the same handful of facts across
12
+ * dozens of call sites and let them drift.
13
+ *
14
+ * This module collapses those facts into a *closed* discriminated union. There
15
+ * are exactly three legal run shapes:
16
+ *
17
+ * 1. existing project — clone+diff against the user's tree
18
+ * 2. generated project, static — inline HTML/CSS/JS, no runtime
19
+ * 3. generated project, app (vite) — scaffolded Vite app with a dev server
20
+ *
21
+ * Every other lifecycle policy (topology / provision / commit) is a pure
22
+ * function of which of those three a session is — see `runPlanPolicy`. Callers
23
+ * resolve the plan once (at `approve` time, the first point where every input
24
+ * is known) and read policy off it, rather than re-deriving from raw context.
25
+ *
26
+ * Preview is deliberately *not* a fixed field of the plan. For generated
27
+ * projects it's determined (static → static_artifact, app → dev_server), but
28
+ * for existing projects it's only known at success time — a `framework:'static'`
29
+ * existing project previews as a materialized static artifact, anything else
30
+ * proxies a dev server. That one genuinely-late decision is exposed via
31
+ * `existingPreviewKind` rather than baked into the plan at resolve time.
32
+ */
33
+ import type { ProjectContext } from './contracts';
34
+ /**
35
+ * The closed set of legal run shapes. Modelled as a discriminated union so the
36
+ * compiler rejects impossible combinations (e.g. an existing project with a
37
+ * `runtime`, or a generated project with no runtime) at construction time —
38
+ * there is no way to hand-assemble an illegal plan.
39
+ */
40
+ export type VariantRunPlan = {
41
+ source: 'existing';
42
+ } | {
43
+ source: 'generated';
44
+ runtime: 'static';
45
+ } | {
46
+ source: 'generated';
47
+ runtime: 'app';
48
+ };
49
+ /** How the work items for a run are shaped at approve time. */
50
+ export type RunTopology =
51
+ /** One `code_gen` item per variant, edited inside a git worktree. Used by
52
+ * existing projects and (with a `scaffold_base` dependency) generated apps. */
53
+ 'code_gen'
54
+ /** One `static_preview` item per variant — inline HTML is the deliverable,
55
+ * no worktree, no scaffold. Generated-static only. */
56
+ | 'static_preview';
57
+ /** How each variant's working copy is provisioned. */
58
+ export type RunProvision =
59
+ /** A git worktree cloned from the user's repo (existing projects). */
60
+ 'git_worktree'
61
+ /** A scaffolded template worktree under `.rivet-variants` (generated apps). */
62
+ | 'template_worktree'
63
+ /** Nothing — the deliverable is inline HTML (generated-static). */
64
+ | 'none';
65
+ /** How the picked variant is landed when the user commits. */
66
+ export type RunCommit =
67
+ /** Apply the captured diff to the user's working tree (existing projects). */
68
+ 'apply_diff'
69
+ /** Write the static site (HTML + assets) to the destination
70
+ * (generated-static). */
71
+ | 'write_static_site'
72
+ /** Materialize / rename the whole scaffolded app to the destination
73
+ * (generated apps). */
74
+ | 'materialize_project';
75
+ /** Preview surface for a generated variant. Existing projects defer this to
76
+ * success time — see {@link existingPreviewKind}. */
77
+ export type RunPreview = 'static_artifact' | 'dev_server';
78
+ export interface RunPlanPolicy {
79
+ topology: RunTopology;
80
+ provision: RunProvision;
81
+ commit: RunCommit;
82
+ /** True when the run needs a `scaffold_base` work item gating its
83
+ * `code_gen` items (generated Vite apps). */
84
+ needsScaffoldBase: boolean;
85
+ /** Fixed preview surface when the source determines it; `undefined` for
86
+ * existing projects, where it's resolved at success time. */
87
+ preview?: RunPreview;
88
+ }
89
+ /**
90
+ * Resolve the run plan from a project context. This is the single decision
91
+ * point: `source` comes from `projectContext.kind`; for generated projects the
92
+ * `runtime` comes from the agent's reported `executionPlan.mode`, defaulting to
93
+ * `static` for source-less zero-to-one runs (which never report a plan).
94
+ */
95
+ export declare function resolveRunPlan(projectContext: ProjectContext): VariantRunPlan;
96
+ /** Derive the lifecycle policy for a resolved plan. Total over the closed set. */
97
+ export declare function runPlanPolicy(plan: VariantRunPlan): RunPlanPolicy;
98
+ /** Convenience: resolve and derive policy in one step. */
99
+ export declare function resolveRunPlanPolicy(projectContext: ProjectContext): RunPlanPolicy;
100
+ /**
101
+ * Preview surface for an existing-project variant, resolved at success time
102
+ * from whether the variant materialized static files (framework `static`, no
103
+ * dev command) or runs a dev server. Generated projects don't use this — their
104
+ * preview is fixed by {@link runPlanPolicy}.
105
+ */
106
+ export declare function existingPreviewKind(hasStaticFiles: boolean): RunPreview;
107
+ //# sourceMappingURL=runPlan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runPlan.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/runPlan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GACtB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,GAC1C;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;AAE5C,+DAA+D;AAC/D,MAAM,MAAM,WAAW;AACrB;gFACgF;AAC9E,UAAU;AACZ;uDACuD;GACrD,gBAAgB,CAAC;AAErB,sDAAsD;AACtD,MAAM,MAAM,YAAY;AACtB,sEAAsE;AACpE,cAAc;AAChB,+EAA+E;GAC7E,mBAAmB;AACrB,mEAAmE;GACjE,MAAM,CAAC;AAEX,8DAA8D;AAC9D,MAAM,MAAM,SAAS;AACnB,8EAA8E;AAC5E,YAAY;AACd;0BAC0B;GACxB,mBAAmB;AACrB;wBACwB;GACtB,qBAAqB,CAAC;AAE1B;sDACsD;AACtD,MAAM,MAAM,UAAU,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,YAAY,CAAC;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB;kDAC8C;IAC9C,iBAAiB,EAAE,OAAO,CAAC;IAC3B;kEAC8D;IAC9D,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,cAAc,CAU7E;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa,CA2BjE;AAED,0DAA0D;AAC1D,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,cAAc,GAC7B,aAAa,CAEf;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,OAAO,GAAG,UAAU,CAEvE"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ /**
3
+ * VariantRunPlan — the single, canonical resolution of "what kind of run is
4
+ * this" for an agent-variants session.
5
+ *
6
+ * Historically the lifecycle policy (work-item topology, how variants are
7
+ * provisioned, how they're committed, how they preview) was re-derived
8
+ * independently at every stage from `projectContext.kind`,
9
+ * `executionPlan.mode`, and framework detection — `SessionStore.approve`,
10
+ * `WorktreeOrchestrator` provisioning, the commit path, and the preview
11
+ * wiring each made the same `kind === 'fresh'` / `mode === 'vite_app'`
12
+ * decisions in their own way. That spread the same handful of facts across
13
+ * dozens of call sites and let them drift.
14
+ *
15
+ * This module collapses those facts into a *closed* discriminated union. There
16
+ * are exactly three legal run shapes:
17
+ *
18
+ * 1. existing project — clone+diff against the user's tree
19
+ * 2. generated project, static — inline HTML/CSS/JS, no runtime
20
+ * 3. generated project, app (vite) — scaffolded Vite app with a dev server
21
+ *
22
+ * Every other lifecycle policy (topology / provision / commit) is a pure
23
+ * function of which of those three a session is — see `runPlanPolicy`. Callers
24
+ * resolve the plan once (at `approve` time, the first point where every input
25
+ * is known) and read policy off it, rather than re-deriving from raw context.
26
+ *
27
+ * Preview is deliberately *not* a fixed field of the plan. For generated
28
+ * projects it's determined (static → static_artifact, app → dev_server), but
29
+ * for existing projects it's only known at success time — a `framework:'static'`
30
+ * existing project previews as a materialized static artifact, anything else
31
+ * proxies a dev server. That one genuinely-late decision is exposed via
32
+ * `existingPreviewKind` rather than baked into the plan at resolve time.
33
+ */
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.resolveRunPlan = resolveRunPlan;
36
+ exports.runPlanPolicy = runPlanPolicy;
37
+ exports.resolveRunPlanPolicy = resolveRunPlanPolicy;
38
+ exports.existingPreviewKind = existingPreviewKind;
39
+ /**
40
+ * Resolve the run plan from a project context. This is the single decision
41
+ * point: `source` comes from `projectContext.kind`; for generated projects the
42
+ * `runtime` comes from the agent's reported `executionPlan.mode`, defaulting to
43
+ * `static` for source-less zero-to-one runs (which never report a plan).
44
+ */
45
+ function resolveRunPlan(projectContext) {
46
+ if (projectContext.kind === 'existing') {
47
+ return { source: 'existing' };
48
+ }
49
+ // Generated (fresh) project. `executionPlan` is present only for
50
+ // source-grounded runs (reported via `report_source_plan`); source-less
51
+ // zero-to-one runs default to a static preview.
52
+ const runtime = projectContext.executionPlan?.mode === 'vite_app' ? 'app' : 'static';
53
+ return { source: 'generated', runtime };
54
+ }
55
+ /** Derive the lifecycle policy for a resolved plan. Total over the closed set. */
56
+ function runPlanPolicy(plan) {
57
+ if (plan.source === 'existing') {
58
+ return {
59
+ topology: 'code_gen',
60
+ provision: 'git_worktree',
61
+ commit: 'apply_diff',
62
+ needsScaffoldBase: false,
63
+ // preview deferred to success time (static vs dev_server by framework).
64
+ };
65
+ }
66
+ if (plan.runtime === 'static') {
67
+ return {
68
+ topology: 'static_preview',
69
+ provision: 'none',
70
+ commit: 'write_static_site',
71
+ needsScaffoldBase: false,
72
+ preview: 'static_artifact',
73
+ };
74
+ }
75
+ // generated app (vite)
76
+ return {
77
+ topology: 'code_gen',
78
+ provision: 'template_worktree',
79
+ commit: 'materialize_project',
80
+ needsScaffoldBase: true,
81
+ preview: 'dev_server',
82
+ };
83
+ }
84
+ /** Convenience: resolve and derive policy in one step. */
85
+ function resolveRunPlanPolicy(projectContext) {
86
+ return runPlanPolicy(resolveRunPlan(projectContext));
87
+ }
88
+ /**
89
+ * Preview surface for an existing-project variant, resolved at success time
90
+ * from whether the variant materialized static files (framework `static`, no
91
+ * dev command) or runs a dev server. Generated projects don't use this — their
92
+ * preview is fixed by {@link runPlanPolicy}.
93
+ */
94
+ function existingPreviewKind(hasStaticFiles) {
95
+ return hasStaticFiles ? 'static_artifact' : 'dev_server';
96
+ }
97
+ //# sourceMappingURL=runPlan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runPlan.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/runPlan.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;;AAkEH,wCAUC;AAGD,sCA2BC;AAGD,oDAIC;AAQD,kDAEC;AA/DD;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,cAA8B;IAC3D,IAAI,cAAc,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChC,CAAC;IACD,iEAAiE;IACjE,wEAAwE;IACxE,gDAAgD;IAChD,MAAM,OAAO,GACX,cAAc,CAAC,aAAa,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED,kFAAkF;AAClF,SAAgB,aAAa,CAAC,IAAoB;IAChD,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO;YACL,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,cAAc;YACzB,MAAM,EAAE,YAAY;YACpB,iBAAiB,EAAE,KAAK;YACxB,wEAAwE;SACzE,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,mBAAmB;YAC3B,iBAAiB,EAAE,KAAK;YACxB,OAAO,EAAE,iBAAiB;SAC3B,CAAC;IACJ,CAAC;IACD,uBAAuB;IACvB,OAAO;QACL,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,mBAAmB;QAC9B,MAAM,EAAE,qBAAqB;QAC7B,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,YAAY;KACtB,CAAC;AACJ,CAAC;AAED,0DAA0D;AAC1D,SAAgB,oBAAoB,CAClC,cAA8B;IAE9B,OAAO,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,cAAuB;IACzD,OAAO,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC;AAC3D,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { type VariantQaResult, type VisualEditorAttachment } from './contracts';
3
3
  import { VariantHistoryService } from '../../services/VariantHistoryService';
4
- import { slugifyPrompt } from './createZeroToOneTool';
4
+ import { slugifyPrompt } from './generatedDestination';
5
5
  export { slugifyPrompt };
6
6
  import type { AgentVariantsOrchestrator } from './WorktreeOrchestrator';
7
+ import type { IntegrationsClient } from '../../services/IntegrationsClient';
7
8
  /**
8
9
  * Coerce `output` to a structured value when an agent (incorrectly) sends a
9
10
  * stringified JSON. The MCP schema accepts `z.unknown()` so the call doesn't
@@ -18,7 +19,7 @@ export interface ToolDeps {
18
19
  /**
19
20
  * Zero-to-one only: ensure the Rivet visual editor is up on the future
20
21
  * destination path so the iframe is ready when variants render. Wired
21
- * from server.ts; same hook used by create_zero_to_one_project. When
22
+ * from server.ts. When
22
23
  * absent (e.g. unit tests), start_variants(mode='zero_to_one') skips
23
24
  * the auto-open and the caller can open the editor themselves.
24
25
  */
@@ -40,11 +41,55 @@ export interface ToolDeps {
40
41
  * `start_variants(mode='zero_to_one')` so new projects default to the
41
42
  * workspace the user is already working in. Wired from server.ts. */
42
43
  getProjectPath?: () => string | null;
43
- telemetry?: unknown;
44
+ telemetry?: VariantsToolTelemetry;
44
45
  /** Read-only access to the on-disk variant history under
45
46
  * `<projectPath>/.rivet/variants/`. Defaults to a fresh
46
47
  * `VariantHistoryService` since the service is stateless. */
47
48
  variantHistory?: VariantHistoryService;
49
+ /** Test seam — defaults to os.homedir. Used to authorize asset-source
50
+ * roots for source-grounded zero-to-one sessions. */
51
+ homedir?: () => string;
52
+ /** Optional authenticated integration client for source-context enrichment. */
53
+ integrationsClient?: Pick<IntegrationsClient, 'fetchPinterest'>;
54
+ }
55
+ /**
56
+ * Telemetry surface used by the variants tools. All methods optional so unit
57
+ * tests can omit them; the real telemetry service structurally satisfies this.
58
+ */
59
+ export interface VariantsToolTelemetry {
60
+ track(event: string, properties: Record<string, unknown>): void;
61
+ trackAgentVariantsSourceContextQuality?: (data: {
62
+ sessionId: string;
63
+ sourceUrlCount: number;
64
+ artifactCount: number;
65
+ hasScreenshotReferences: boolean;
66
+ preserveBrand: boolean;
67
+ }) => void;
68
+ /**
69
+ * Outcome metadata only — counts of links, successes, low-signal pages,
70
+ * fetch failures, blocked targets, the merge strategy, and cache outcome
71
+ * counts. Full URLs, fetched HTML, file paths, and extracted text MUST NOT
72
+ * be forwarded.
73
+ */
74
+ trackAgentVariantsInspirationExtraction?: (data: {
75
+ sessionId: string;
76
+ inspirationLinkCount: number;
77
+ referenceLinkCount: number;
78
+ successfulExtractions: number;
79
+ lowSignalCount: number;
80
+ fetchFailureCount: number;
81
+ blockedTargetCount: number;
82
+ mergeStrategy: 'merge' | 'separate' | 'none';
83
+ cacheHitCount: number;
84
+ cacheMissCount: number;
85
+ cacheStaleCount: number;
86
+ cacheVersionMismatchCount: number;
87
+ cacheLowConfidenceCount: number;
88
+ cacheRegenerationCount: number;
89
+ cacheForcedRefresh: boolean;
90
+ cacheReuseAgeBucket?: 'lt_1h' | '1h_24h' | '1d_7d' | '7d_30d' | 'gt_30d';
91
+ cacheReuseConfidenceBucket?: 'low' | 'medium' | 'high';
92
+ }) => void;
48
93
  }
49
94
  export declare function registerAgentVariantsTools(mcp: McpServer, deps: ToolDeps): void;
50
95
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EA0CL,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EAEtB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,CAAC;AAGzB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAGxE;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ,OAAO,KAAG,OAOtD,CAAC;AAyBF,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,yBAAyB,CAAC;IACxC,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC/B;kDAC0C;QAC1C,WAAW,EAAE,MAAM,CAAC;QACpB;;8DAEsD;QACtD,aAAa,EAAE,MAAM,CAAC;QACtB;+DACuD;QACvD,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;KAC9B,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACtC,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;0EAEsE;IACtE,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;kEAE8D;IAC9D,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AA0BD,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,QAAQ,GACb,IAAI,CAsjBN;AA+GD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,eAAe,CAAA;CAAE,CAAC,EACvD,YAAY,EAAE,MAAM,GACnB,MAAM,CAwBR"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/tools.ts"],"names":[],"mappings":"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"}