@vibes.diy/api-svc 14.3.84 → 14.3.86

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 (170) hide show
  1. package/create-handler.js +2 -0
  2. package/create-handler.js.map +1 -1
  3. package/index.d.ts +3 -1
  4. package/index.js +3 -1
  5. package/index.js.map +1 -1
  6. package/intern/account-vibe-activity.js +2 -1
  7. package/intern/account-vibe-activity.js.map +1 -1
  8. package/intern/agent-account-tools.d.ts +1 -0
  9. package/intern/agent-account-tools.js +3 -1
  10. package/intern/agent-account-tools.js.map +1 -1
  11. package/intern/agent-assembly.js +8 -2
  12. package/intern/agent-assembly.js.map +1 -1
  13. package/intern/agent-belt.d.ts +1 -3
  14. package/intern/agent-belt.js +27 -27
  15. package/intern/agent-belt.js.map +1 -1
  16. package/intern/agent-build-tools.d.ts +7 -0
  17. package/intern/agent-build-tools.js +6 -19
  18. package/intern/agent-build-tools.js.map +1 -1
  19. package/intern/agent-closing-options.d.ts +26 -0
  20. package/intern/agent-closing-options.js +130 -0
  21. package/intern/agent-closing-options.js.map +1 -0
  22. package/intern/agent-discussions.js +2 -1
  23. package/intern/agent-discussions.js.map +1 -1
  24. package/intern/agent-dispatcher.d.ts +1 -0
  25. package/intern/agent-dispatcher.js +17 -3
  26. package/intern/agent-dispatcher.js.map +1 -1
  27. package/intern/agent-evidence.js +5 -4
  28. package/intern/agent-evidence.js.map +1 -1
  29. package/intern/agent-file-tools.js +5 -4
  30. package/intern/agent-file-tools.js.map +1 -1
  31. package/intern/agent-read-tools.js +43 -25
  32. package/intern/agent-read-tools.js.map +1 -1
  33. package/intern/agent-session-instruction.d.ts +3 -2
  34. package/intern/agent-session-instruction.js +10 -8
  35. package/intern/agent-session-instruction.js.map +1 -1
  36. package/intern/agent-session-runtime.js +2 -1
  37. package/intern/agent-session-runtime.js.map +1 -1
  38. package/intern/agent-session.js +8 -7
  39. package/intern/agent-session.js.map +1 -1
  40. package/intern/agent-turn.d.ts +1 -0
  41. package/intern/agent-turn.js +1 -0
  42. package/intern/agent-turn.js.map +1 -1
  43. package/intern/agent-wake.d.ts +1 -1
  44. package/intern/agent-wake.js +1 -1
  45. package/intern/agent-wake.js.map +1 -1
  46. package/intern/agent-with-vibe.d.ts +1 -0
  47. package/intern/agent-with-vibe.js +19 -18
  48. package/intern/agent-with-vibe.js.map +1 -1
  49. package/intern/alt-first-build.d.ts +36 -0
  50. package/intern/alt-first-build.js +137 -0
  51. package/intern/alt-first-build.js.map +1 -0
  52. package/intern/alt-landing.d.ts +7 -0
  53. package/intern/alt-landing.js +31 -0
  54. package/intern/alt-landing.js.map +1 -0
  55. package/intern/autumn-recent-usage.js +11 -10
  56. package/intern/autumn-recent-usage.js.map +1 -1
  57. package/intern/backend-db-callback.js +3 -2
  58. package/intern/backend-db-callback.js.map +1 -1
  59. package/intern/draft-chat-store.js +3 -2
  60. package/intern/draft-chat-store.js.map +1 -1
  61. package/intern/first-brief.d.ts +1 -1
  62. package/intern/first-brief.js +4 -3
  63. package/intern/first-brief.js.map +1 -1
  64. package/intern/first-build-classifier.d.ts +4 -4
  65. package/intern/first-build-classifier.js +18 -19
  66. package/intern/first-build-classifier.js.map +1 -1
  67. package/intern/first-build-race.d.ts +71 -0
  68. package/intern/first-build-race.js +257 -0
  69. package/intern/first-build-race.js.map +1 -0
  70. package/intern/guest-credit-meter.js +3 -2
  71. package/intern/guest-credit-meter.js.map +1 -1
  72. package/intern/image-survey.js +6 -5
  73. package/intern/image-survey.js.map +1 -1
  74. package/intern/instruction-variant.d.ts +25 -2
  75. package/intern/instruction-variant.js +189 -2
  76. package/intern/instruction-variant.js.map +1 -1
  77. package/intern/keeps-to-themselves.d.ts +1 -0
  78. package/intern/keeps-to-themselves.js +10 -0
  79. package/intern/keeps-to-themselves.js.map +1 -0
  80. package/intern/llm-tool-loop.d.ts +5 -1
  81. package/intern/llm-tool-loop.js +48 -15
  82. package/intern/llm-tool-loop.js.map +1 -1
  83. package/intern/manifest-assets-line.d.ts +2 -0
  84. package/intern/manifest-assets-line.js +14 -1
  85. package/intern/manifest-assets-line.js.map +1 -1
  86. package/intern/mercury-capability-triggers.d.ts +1 -0
  87. package/intern/mercury-capability-triggers.js +95 -0
  88. package/intern/mercury-capability-triggers.js.map +1 -0
  89. package/intern/mercury-first-build-seam.d.ts +77 -0
  90. package/intern/mercury-first-build-seam.js +316 -0
  91. package/intern/mercury-first-build-seam.js.map +1 -0
  92. package/intern/mercury-first-build.d.ts +691 -0
  93. package/intern/mercury-first-build.js +3519 -0
  94. package/intern/mercury-first-build.js.map +1 -0
  95. package/intern/mercury-resilience.d.ts +70 -0
  96. package/intern/mercury-resilience.js +122 -0
  97. package/intern/mercury-resilience.js.map +1 -0
  98. package/intern/mint-decision.d.ts +1 -0
  99. package/intern/mint-decision.js +3 -0
  100. package/intern/mint-decision.js.map +1 -1
  101. package/intern/option-line-hold.d.ts +5 -0
  102. package/intern/option-line-hold.js +39 -0
  103. package/intern/option-line-hold.js.map +1 -0
  104. package/intern/pinned-app-slug.js +2 -1
  105. package/intern/pinned-app-slug.js.map +1 -1
  106. package/intern/pouf-room-catalog.d.ts +2 -0
  107. package/intern/pouf-room-catalog.js +11 -0
  108. package/intern/pouf-room-catalog.js.map +1 -0
  109. package/intern/prompt-step.d.ts +1 -1
  110. package/intern/prompt-step.js.map +1 -1
  111. package/intern/prompt-usage.js +5 -4
  112. package/intern/prompt-usage.js.map +1 -1
  113. package/intern/retire-offer-options.d.ts +3 -0
  114. package/intern/retire-offer-options.js +91 -0
  115. package/intern/retire-offer-options.js.map +1 -0
  116. package/intern/save-repair-io.js +3 -2
  117. package/intern/save-repair-io.js.map +1 -1
  118. package/intern/seed-chat-section.d.ts +13 -0
  119. package/intern/seed-chat-section.js +62 -0
  120. package/intern/seed-chat-section.js.map +1 -1
  121. package/intern/server-first-build.js +1 -0
  122. package/intern/server-first-build.js.map +1 -1
  123. package/intern/url-research.js +3 -2
  124. package/intern/url-research.js.map +1 -1
  125. package/intern/vibe-font-catalog.d.ts +2 -0
  126. package/intern/vibe-font-catalog.js +8 -0
  127. package/intern/vibe-font-catalog.js.map +1 -0
  128. package/intern/work-tools.js +8 -5
  129. package/intern/work-tools.js.map +1 -1
  130. package/not-implemented-message.js +2 -1
  131. package/not-implemented-message.js.map +1 -1
  132. package/package.json +14 -14
  133. package/public/access-output-decoder.js +4 -3
  134. package/public/access-output-decoder.js.map +1 -1
  135. package/public/agent-turn-action.d.ts +1 -0
  136. package/public/agent-turn-action.js +312 -44
  137. package/public/agent-turn-action.js.map +1 -1
  138. package/public/agent-turn-assembly.js +5 -2
  139. package/public/agent-turn-assembly.js.map +1 -1
  140. package/public/draft-runtime.js +9 -5
  141. package/public/draft-runtime.js.map +1 -1
  142. package/public/list-memberships.js +3 -2
  143. package/public/list-memberships.js.map +1 -1
  144. package/public/list-notifications.js +2 -1
  145. package/public/list-notifications.js.map +1 -1
  146. package/public/list-recent-vibes.js +4 -3
  147. package/public/list-recent-vibes.js.map +1 -1
  148. package/public/prompt-chat-section.js +10 -1
  149. package/public/prompt-chat-section.js.map +1 -1
  150. package/public/prompt-turn-terminal.js +3 -1
  151. package/public/prompt-turn-terminal.js.map +1 -1
  152. package/public/provider-errors.js +3 -2
  153. package/public/provider-errors.js.map +1 -1
  154. package/public/report-activity.js +18 -2
  155. package/public/report-activity.js.map +1 -1
  156. package/public/report-cache.js +2 -1
  157. package/public/report-cache.js.map +1 -1
  158. package/public/serv-entry-point.js +2 -1
  159. package/public/serv-entry-point.js.map +1 -1
  160. package/public/vibe-traffic-source.js +1 -1
  161. package/public/vibe-traffic-source.js.map +1 -1
  162. package/types.d.ts +1 -0
  163. package/types.js +7 -6
  164. package/types.js.map +1 -1
  165. package/usage-report/new-user-alert-util.d.ts +6 -0
  166. package/usage-report/new-user-alert-util.js +30 -1
  167. package/usage-report/new-user-alert-util.js.map +1 -1
  168. package/intern/agent-options-tool.d.ts +0 -27
  169. package/intern/agent-options-tool.js +0 -213
  170. package/intern/agent-options-tool.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"guest-credit-meter.js","sourceRoot":"","sources":["../../jsr/intern/guest-credit-meter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,qBAAqB,EAAkB,MAAM,eAAe,CAAC;AAwBpH,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAQhG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAiC,EAAE,MAAc;IACtF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACvC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CACvG,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,UAAU;YACR,MAAM,YAAY,IAAI,CAAC,MAAM;gBAC3B,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;gBAClF,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,YAAY,GAAG,UAAU,GAAG,wBAAwB,CAAC;IAC3D,OAAO,MAAM,CAAC,EAAE,CAAC;QACf,YAAY;QACZ,eAAe,EAAE,qBAAqB;QACtC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,GAAG,YAAY,CAAC;KACpE,CAAC,CAAC;AACL,CAAC;AAED,MAAM,cAAc,GAAG,0CAA0C,CAAC;AAElE,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC,CAAC;AAElD,KAAK,UAAU,kBAAkB,CAC/B,IAAiC,EACjC,KAA6D;IAE7D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9G,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IACpF,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACvG,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC5E,CAAC;AAGD,MAAM,UAAU,mBAAmB,CAAC,IAA8E;IAChH,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,OAAO;QACL,IAAI,cAAc;YAChB,OAAO,KAAK,CAAC,cAAc,CAAC;QAC9B,CAAC;QACD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAKpB,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAChG,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK;gBAAE,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/E,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,gBAAgB,GAAG,CAAC;gBAC1C,gBAAgB,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,gBAAgB;aAChD,CAAC,CAAC;QACL,CAAC;QACD,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACjC,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK;gBAAE,OAAO,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACtF,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK;gBAAE,OAAO,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,OAAO,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,gBAAgB;gBACxC,cAAc,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,gBAAgB;gBAC7C,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,eAAe;aAC5C,CAAC,CAAC;QACL,CAAC;QACD,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC3B,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;QAClH,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CACxB,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;QAC7G,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAC1B,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC;KAChH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"guest-credit-meter.js","sourceRoot":"","sources":["../../jsr/intern/guest-credit-meter.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { eq } from "drizzle-orm";
4
4
  import { cssToHex, drawLookColorway, generatePalette, getStylePreset, lookColorwaySeed } from "@vibes.diy/prompts";
5
5
  import { MINT_FALLBACK_THEME } from "./mint-style.js";
6
6
  import { storeAndAuditAsset } from "../public/store-and-audit-asset.js";
7
+ import { lazyType } from "@vibes.diy/api-types/lazy-type";
7
8
  export const READINGS_MODEL = "google/gemini-2.5-flash";
8
9
  export const RENDER_MODEL = "google/gemini-2.5-flash-image";
9
10
  export const READINGS_DEADLINE_MS = 20_000;
@@ -48,9 +49,9 @@ export function renderPrompt(reading, colours) {
48
49
 
49
50
  ${buildable(colours)}`;
50
51
  }
51
- const readingsReply = type({
52
+ const readingsReply = lazyType(() => type({
52
53
  readings: type({ label: "string > 0", pitch: "string > 0", screen: "string > 0" }).array(),
53
- });
54
+ }));
54
55
  export function parseReadings(json) {
55
56
  const parsed = readingsReply(json);
56
57
  if (parsed instanceof type.errors)
@@ -59,11 +60,11 @@ export function parseReadings(json) {
59
60
  return Result.Err(`image-survey-readings-count: ${parsed.readings.length}`);
60
61
  return Result.Ok(parsed.readings.map((r) => ({ label: r.label, pitch: r.pitch, screen: r.screen })));
61
62
  }
62
- const imageReply = type({
63
+ const imageReply = lazyType(() => type({
63
64
  choices: type({
64
65
  message: { "images?": type({ image_url: { url: "string" } }).array() },
65
66
  }).array(),
66
- });
67
+ }));
67
68
  const DATA_URL = /^data:([^;,]+);base64,(.+)$/;
68
69
  export function parseImageReply(json) {
69
70
  const parsed = imageReply(json);
@@ -123,7 +124,7 @@ function unfence(text) {
123
124
  const fenced = /^\s*```(?:json)?\s*([\s\S]*?)\s*```\s*$/.exec(text);
124
125
  return fenced === null ? text : fenced[1];
125
126
  }
126
- const textReply = type({ choices: type({ message: { content: "string | null" } }).array() });
127
+ const textReply = lazyType(() => type({ choices: type({ message: { content: "string | null" } }).array() }));
127
128
  async function fetchReadings(vctx, prompt, signal) {
128
129
  const body = await completeJson(vctx, {
129
130
  model: READINGS_MODEL,
@@ -1 +1 @@
1
- {"version":3,"file":"image-survey.js","sourceRoot":"","sources":["../../jsr/intern/image-survey.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEnH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,CAAC,MAAM,cAAc,GAAG,yBAAyB,CAAC;AACxD,MAAM,CAAC,MAAM,YAAY,GAAG,+BAA+B,CAAC;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAYzC,MAAM,UAAU,kBAAkB,CAAC,GAAiB,EAAE,KAAK,GAAW,mBAAmB;IACvF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;AACpE,CAAC;AAYD,MAAM,aAAa,GAAkB;IACnC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IACd,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,SAAS;CACvB,CAAC;AAGF,MAAM,UAAU,aAAa,CAAC,IAA2D;IACvF,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChG,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IAC7C,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC,IAAI;QAC9D,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,IAAI;QAC3D,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG;QACjE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,MAAM;QAC/D,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,WAAW;KAC5E,CAAC;AACJ,CAAC;AAOD,SAAS,SAAS,CAAC,CAAgB;IACjC,OAAO,wbAAwb,CAAC,CAAC,IAAI,0BAA0B,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,WAAW,iNAAiN,CAAC;AACpwB,CAAC;AAGD,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAsB;IACrE,OAAO,sCAAsC,QAAQ;;;;EAIrD,SAAS,CAAC,OAAO,CAAC;;2PAEuO,CAAC;AAC5P,CAAC;AASD,MAAM,UAAU,YAAY,CAAC,OAAsB,EAAE,OAAsB;IACzE,OAAO,uIAAuI,OAAO,CAAC,MAAM;;EAE5J,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,aAAa,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE;CAC3F,CAAC,CAAC;AAGH,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,mCAAmC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1G,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,gCAAgC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9G,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,IAAI,CAAC;QACZ,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;KACvE,CAAC,CAAC,KAAK,EAAE;CACX,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,6BAA6B,CAAC;AAG/C,MAAM,UAAU,eAAe,CAAC,IAAa;IAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACxG,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC;IAClE,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,IAAI,OAAO,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,+BAA+B,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/F,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACtD,CAAC;AAWD,KAAK,UAAU,YAAY,CACzB,IAAiD,EACjD,SAAiB,EACjB,KAAmB;IAEnB,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,MAAM;QACtC,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,EAAE,SAAS,CAAC,CAAC;IACd,SAAS,KAAK;QACZ,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,EAAE,OAAO,KAAK,IAAI;QAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3C,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC,OAAO,EAAE;SACrB,IAAI,CAAC,SAAS,MAAM;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC;SACD,IAAI,CACH,SAAS,MAAM,CAAC,KAAK;QACnB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAChF,CAAC,EACD,SAAS,MAAM,CAAC,CAAU;QACxB,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACpD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,CAAC,CACF;SACA,OAAO,CAAC,SAAS,MAAM;QACtB,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC;AAKD,KAAK,UAAU,YAAY,CAAC,IAAe,EAAE,GAAe,EAAE,MAAmB;IAC/E,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACzH,IAAI,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC;IAC1B,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,GAAG,CAAC,uBAAuB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAsB,CAAC,CAAC;AAChE,CAAC;AAGD,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,MAAM,GAAG,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAE7F,KAAK,UAAU,aAAa,CAAC,IAAe,EAAE,MAAc,EAAE,MAAmB;IAC/E,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,IAAI,EACJ;QACE,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,KAAK;QACb,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;QACxC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;KACxE,EACD,MAAM,CACP,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,gCAAgC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACvG,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IACnD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACxH,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAY,CAAC,CAAC;IAC7E,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACzF,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,IAAe,EACf,MAAc,EACd,MAAmB;IAEnB,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,IAAI,EACJ;QACE,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;QAC7B,YAAY,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE;QACrC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;KACxE,EACD,MAAM,CACP,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,OAAO,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAOD,KAAK,UAAU,cAAc,CAC3B,IAAoB,EACpB,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACvC,IAAI,CAAC,GAAG,CAAC,EAAE;SACR,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SAChH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;SAClC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACtD,KAAK,CAAC,CAAC,CAAC,CACZ,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;IAC5E,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAoBD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAwB;IAC3D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACxC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;IAExF,MAAM,QAAQ,GAAG,MAAM,YAAY,CACjC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAC/E,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,oBAAoB,EAClD,IAAI,CAAC,MAAM,CACZ,CAAC;IACF,IAAI,QAAQ,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC1E,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IACpE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IAE/B,MAAM,KAAK,GAAyB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtG,SAAS,QAAQ;QACf,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACvG,CAAC;IAED,KAAK,UAAU,OAAO;QACpB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,KAAK,EAAE;YAAE,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,OAAO,EAAE,CAAC;IAEhB,KAAK,UAAU,UAAU,CAAC,KAAa;QACrC,MAAM,QAAQ,GAAG,MAAM,YAAY,CACjC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EACvE,IAAI,CAAC,SAAS,EAAE,QAAQ,IAAI,kBAAkB,EAC9C,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,IAA0E,EAAE;YACrG,IAAI,QAAQ,CAAC,QAAQ;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YACxE,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACpE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACnD,IAAI,OAAO,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE;gBACvC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,WAAW;gBACrC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO;gBAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG;gBACnC,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1C,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChH,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YAChF,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;QACrD,CAAC;QACD,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"image-survey.js","sourceRoot":"","sources":["../../jsr/intern/image-survey.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import { Result } from "@adviser/cement";
2
2
  import type { VibesApiSQLCtx } from "../types.js";
3
- export declare const INSTRUCTION_VARIANTS: readonly ["direct-write", "pre-staged-reply", "fast-first-turn", "server-first-build", "fast-server-first-build", "fast-first-turn-full-brief", "opus-server-first-build", "seeded-address-words", "no-first-brief"];
3
+ import type { MercuryFormat, MercuryPlanner } from "./mercury-first-build.js";
4
+ export declare const INSTRUCTION_VARIANTS: readonly ["direct-write", "pre-staged-reply", "fast-first-turn", "server-first-build", "fast-server-first-build", "fast-first-turn-full-brief", "opus-server-first-build", "seeded-address-words", "no-first-brief", "chopped-screwed", "mercury-recut-first-build", "mercury-chopped-first-build", "mercury-chopped-j-first-build", "mercury-chopped-js-first-build", "mercury-whole-first-build", "mercury-whole-duo-first-build", "mercury-onecall-first-build", "mercury-onecall-whole-first-build", "mercury-onecall-duo-first-build", "mercury-opus-planner-first-build", "mercury-prose-first-build", "mercury-thinkaloud-first-build", "mercury-cards-first-build", "mercury-cards-fim-first-build", "mercury-haiku-cards-first-build"];
4
5
  export type InstructionVariant = (typeof INSTRUCTION_VARIANTS)[number];
5
6
  export declare function variantForTurn(variant: InstructionVariant | undefined, turn: {
6
7
  readonly firstTurn: boolean;
7
8
  }): InstructionVariant | undefined;
8
9
  export declare function admitInstructionVariant(requested: unknown, ownerHandle: string | undefined): Result<InstructionVariant | undefined>;
9
10
  export declare const DIRECT_WRITE_VARIANT_INSTRUCTION = "<direct-write-session>\nIn this conversation you write the app's code yourself. You are its builder as well as the person's\nguide, so every file the app has is one you wrote and committed, and each change reaches the app as\nyour own commit.\n\nA new app starts with create_vibe carrying codegen: false, together with the fields you always fill:\nprompt, pairs, iconDescription, skills and nature. It answers `created`: the app has its\naddress, name, icon and look, and its files are yours to write. Then write App.jsx with write_file \u2014\nthe complete, working app with every feature wired, following the builder brief below \u2014 and, in the\nsame pass, access.js with the app's record rules and backend.js when it needs server work. Run\nvalidate, fix what it reports and validate again until it comes back clean, then commit_version. Its\n[commit result] is the moment the app is saved, and the reply that says the app is ready follows it.\n\nThe record rules are part of your first pass: the group shape the base instruction describes is an\naccess.js you write beside App.jsx, with the can gates in App.jsx itself, and the invite screen there\ntoo when the ask names other people, sharing or a group. The\nfirst touch of access.js or backend.js hands you the guide index for that file; read the section\nyou need at its offset.\n\nA later change takes the same shape: read the files it touches, edit_file or write_file, validate\nuntil clean, commit_version, then answer from the [commit result]. A reshape, a new screen and a\none-word fix all travel this way. set_app_style still owns the app's look setting.\n\nThe <builder-brief> below is exactly what the platform's builder is taught about writing an app\nhere: the React rules, the house look and its tokens, and the Fireproof, callAI, ImgGen, useVibe\nand useViewer APIs. It is your reference for App.jsx. Where it describes emitting fenced code\nblocks, a title and a feature list, your equivalent is the write_file call; where it closes a\nturn with an improvement question, your own reply rules apply. Any other capability in the\ncatalog reads as /skills/<name>.md with read_file (for example /skills/three-js.md).\n</direct-write-session>";
10
- export declare const PRE_STAGED_REPLY_VARIANT_INSTRUCTION = "<pre-staged-reply>\nOn this first build your reply comes in two parts, one on each side of the build.\n\nWhen create_vibe answers `building`, describe the app the person is about to open, in present\ntense and in the person's own terms, with a little room to explain: what the app is and who it is\nfor; its screens and the main things the person does on each; and its access rules in plain\nwords \u2014 who can see it, who can add or change things, and what someone opening a shared link\ngets. It describes the app itself; the build's arrival is the result's to announce. Then stop\nspeaking: the build owns the next step, and the options belong to the second part.\n\nWhen the [build result] arrives, the description is already on the person's screen, so the\nsecond part starts from what is new. When the result differs from the description \u2014 a field that\ncame out missing, an access rule that came out another way \u2014 say so in one sentence; when it\nmatches, go straight to the options. Then offer two or three concrete next features for this app\nas options, offered with offer_options as the turn's last call so they arrive as chips the person\ncan tap rather than as prose: each one something this app could do next that the person did not\nmention. The description stands as written: the second part carries no restatement of it and no line\nconfirming the app matches it.\n\nThe base rule holds across both parts: saved, done, ready, in and live belong to the second\npart, written after the result arrives.\n</pre-staged-reply>";
11
+ export declare const PRE_STAGED_REPLY_VARIANT_INSTRUCTION = "<pre-staged-reply>\nOn this first build your reply comes in two parts, one on each side of the build.\n\nWhen create_vibe answers `building`, describe the app the person is about to open, in present\ntense and in the person's own terms, with a little room to explain: what the app is and who it is\nfor; its screens and the main things the person does on each; and its access rules in plain\nwords \u2014 who can see it, who can add or change things, and what someone opening a shared link\ngets. It describes the app itself; the build's arrival is the result's to announce. Then stop\nspeaking: the build owns the next step, and the options belong to the second part.\n\nWhen the [build result] arrives, the description is already on the person's screen, so the\nsecond part starts from what is new. When the result differs from the description \u2014 a field that\ncame out missing, an access rule that came out another way \u2014 say so in one sentence; when it\nmatches, go straight to the options. Then offer two or three concrete next features for this app\nas options, written as your reply's last lines, each starting with \u25B8, so they arrive as chips the person\ncan tap rather than as prose: each one something this app could do next that the person did not\nmention. The description stands as written: the second part carries no restatement of it and no line\nconfirming the app matches it.\n\nThe base rule holds across both parts: saved, done, ready, in and live belong to the second\npart, written after the result arrives.\n</pre-staged-reply>";
11
12
  export declare const FAST_FIRST_TURN_AGENT_MODEL = "~anthropic/claude-sonnet-latest";
12
13
  export declare const FAST_FIRST_TURN_REASONING: {
13
14
  readonly effort: "none";
@@ -29,6 +30,28 @@ export declare function firstBriefRoundInstruction(words: readonly string[]): st
29
30
  export declare function seededAddressWordsArmed(variant: InstructionVariant | undefined, firstTurn: boolean): boolean;
30
31
  export declare const SEEDED_ADDRESS_WORDS_TAG = "<seeded-address-words>";
31
32
  export declare function seededAddressWordsInstruction(words: readonly string[]): string;
33
+ export declare const CHOPPED_SCREWED_VARIANT_INSTRUCTION = "<chopped-first-brief>\nThis first brief and its preamble are turned up. Everything the base instruction decides stays\nexactly as it decides it: what the app does, which features are on screen, the ownership and\naccess shape, the invite screen, the composer, the skills, the mechanics the ask implies. What\nchanges is how vividly you describe and choose, in the person's own nouns.\n\nThe preamble reads like you can already see the app: name the first screen's hero control and\nthe one moment that makes it fun to open.\n\nScreens carry one distinctive detail each: the big number, the chip row, the satisfying tap,\nthe state that changes colour \u2014 specific to this app, never a feature the ask did not imply.\n\nThe seed cast is a small world with names and dates: quoted names, believable counts, dates near\ntoday, a couple of records in the interesting states the screens show (one overdue, one sold out,\none flashed). Every seeded record is one the app's own Add could write.\n\nTitles are two or three punchy words in the app's own vocabulary, with one surprising pick among\nthe three. The look note names a scene \u2014 a surface, a palette, a card shape and one gesture of\nmood \u2014 in under twenty words.\n\nThe nouns come from the person's words and their world; a vivid phrase belongs to this app or it\nstays out. Length grows by a sentence or two per part, never by a new feature.\n</chopped-first-brief>";
34
+ export declare function mercuryRecutArmed(variant: InstructionVariant | undefined, firstTurn: boolean): boolean;
35
+ export declare const MERCURY_VARIANTS: readonly InstructionVariant[];
36
+ export declare function isMercuryVariant(variant: InstructionVariant | undefined): boolean;
37
+ export declare function mercuryStyleFor(variant: InstructionVariant | undefined): "base" | "chopped";
38
+ export declare function mercuryJuiceFor(variant: InstructionVariant | undefined): "examples" | "own-world";
39
+ export declare function mercuryDepthFor(variant: InstructionVariant | undefined): "none" | "sub-feature";
40
+ export declare function mercuryReplyFor(variant: InstructionVariant | undefined): "split" | "whole";
41
+ export declare function mercuryDuoFor(variant: InstructionVariant | undefined): boolean;
42
+ export declare function mercuryDuoPoolFor(variant: InstructionVariant | undefined): number | undefined;
43
+ export declare function mercuryOneCallFor(variant: InstructionVariant | undefined): boolean;
44
+ export declare function mercuryRecordsRulesFor(variant: InstructionVariant | undefined): boolean;
45
+ export declare function mercuryPlannerFor(variant: InstructionVariant | undefined): MercuryPlanner;
46
+ export declare function mercuryFormatFor(variant: InstructionVariant | undefined): "skeleton" | MercuryFormat;
47
+ export declare const MERCURY_FIRST_BUILD_ENV = "MERCURY_FIRST_BUILD";
48
+ export type MercuryFirstBuildMode = "off" | "onecall-duo" | "prose" | "cards-fim";
49
+ export declare const MERCURY_DEFAULT_SWITCH_MODE: Exclude<MercuryFirstBuildMode, "off">;
50
+ export declare function mercuryFirstBuildMode(flag: string | undefined): MercuryFirstBuildMode;
51
+ export declare function mercuryVariantForTurn(o: {
52
+ readonly instructionVariant: InstructionVariant | undefined;
53
+ readonly flag: string | undefined;
54
+ }): InstructionVariant | undefined;
32
55
  export declare function fastFirstTurnLevers(variant: InstructionVariant | undefined, firstTurn: boolean): FastFirstTurnLevers | undefined;
33
56
  export declare const FAST_FIRST_TURN_VARIANT_INSTRUCTION = "<fast-first-turn>\nThis first turn moves quickly. The person's own sentence travels to the builder in full as\ncreate_vibe's prompt, so the brief you add stays short: enrichedPrompt is two or three sentences\nnaming the screens and the actions on them, and the builder reads the person's own words for the\nrest. The skills list carries the capability choices \u2014 name each capability the ask needs there.\nCall create_vibe as your first action, then tell the person in a sentence or two what is on its way.\n</fast-first-turn>";
34
57
  export declare const FAST_FIRST_TURN_ENRICHED_PROMPT_DESCRIPTION: string;
@@ -14,6 +14,22 @@ export const INSTRUCTION_VARIANTS = [
14
14
  "opus-server-first-build",
15
15
  "seeded-address-words",
16
16
  "no-first-brief",
17
+ "chopped-screwed",
18
+ "mercury-recut-first-build",
19
+ "mercury-chopped-first-build",
20
+ "mercury-chopped-j-first-build",
21
+ "mercury-chopped-js-first-build",
22
+ "mercury-whole-first-build",
23
+ "mercury-whole-duo-first-build",
24
+ "mercury-onecall-first-build",
25
+ "mercury-onecall-whole-first-build",
26
+ "mercury-onecall-duo-first-build",
27
+ "mercury-opus-planner-first-build",
28
+ "mercury-prose-first-build",
29
+ "mercury-thinkaloud-first-build",
30
+ "mercury-cards-first-build",
31
+ "mercury-cards-fim-first-build",
32
+ "mercury-haiku-cards-first-build",
17
33
  ];
18
34
  const FIRST_TURN_ONLY_VARIANTS = [
19
35
  "pre-staged-reply",
@@ -24,6 +40,22 @@ const FIRST_TURN_ONLY_VARIANTS = [
24
40
  "opus-server-first-build",
25
41
  "seeded-address-words",
26
42
  "no-first-brief",
43
+ "chopped-screwed",
44
+ "mercury-recut-first-build",
45
+ "mercury-chopped-first-build",
46
+ "mercury-chopped-j-first-build",
47
+ "mercury-chopped-js-first-build",
48
+ "mercury-whole-first-build",
49
+ "mercury-whole-duo-first-build",
50
+ "mercury-onecall-first-build",
51
+ "mercury-onecall-whole-first-build",
52
+ "mercury-onecall-duo-first-build",
53
+ "mercury-opus-planner-first-build",
54
+ "mercury-prose-first-build",
55
+ "mercury-thinkaloud-first-build",
56
+ "mercury-cards-first-build",
57
+ "mercury-cards-fim-first-build",
58
+ "mercury-haiku-cards-first-build",
27
59
  ];
28
60
  export function variantForTurn(variant, turn) {
29
61
  if (variant !== undefined && FIRST_TURN_ONLY_VARIANTS.includes(variant) && turn.firstTurn === false)
@@ -89,7 +121,7 @@ When the [build result] arrives, the description is already on the person's scre
89
121
  second part starts from what is new. When the result differs from the description — a field that
90
122
  came out missing, an access rule that came out another way — say so in one sentence; when it
91
123
  matches, go straight to the options. Then offer two or three concrete next features for this app
92
- as options, offered with offer_options as the turn's last call so they arrive as chips the person
124
+ as options, written as your reply's last lines, each starting with ▸, so they arrive as chips the person
93
125
  can tap rather than as prose: each one something this app could do next that the person did not
94
126
  mention. The description stands as written: the second part carries no restatement of it and no line
95
127
  confirming the app matches it.
@@ -107,7 +139,7 @@ export function firstBriefArmed(variant, firstTurn, defaultOn) {
107
139
  return false;
108
140
  if (variant === "opus-server-first-build")
109
141
  return true;
110
- return variant === undefined && defaultOn;
142
+ return (variant === undefined || variant === "chopped-screwed") && defaultOn;
111
143
  }
112
144
  export const AGENT_FIRST_BRIEF_ENV = "AGENT_FIRST_BRIEF";
113
145
  export function agentFirstBriefEnabled(flag) {
@@ -137,6 +169,161 @@ export function seededAddressWordsInstruction(words) {
137
169
  return `${SEEDED_ADDRESS_WORDS_TAG}
138
170
  ${addressWordsSentence(words)}</seeded-address-words>`;
139
171
  }
172
+ export const CHOPPED_SCREWED_VARIANT_INSTRUCTION = `<chopped-first-brief>
173
+ This first brief and its preamble are turned up. Everything the base instruction decides stays
174
+ exactly as it decides it: what the app does, which features are on screen, the ownership and
175
+ access shape, the invite screen, the composer, the skills, the mechanics the ask implies. What
176
+ changes is how vividly you describe and choose, in the person's own nouns.
177
+
178
+ The preamble reads like you can already see the app: name the first screen's hero control and
179
+ the one moment that makes it fun to open.
180
+
181
+ Screens carry one distinctive detail each: the big number, the chip row, the satisfying tap,
182
+ the state that changes colour — specific to this app, never a feature the ask did not imply.
183
+
184
+ The seed cast is a small world with names and dates: quoted names, believable counts, dates near
185
+ today, a couple of records in the interesting states the screens show (one overdue, one sold out,
186
+ one flashed). Every seeded record is one the app's own Add could write.
187
+
188
+ Titles are two or three punchy words in the app's own vocabulary, with one surprising pick among
189
+ the three. The look note names a scene — a surface, a palette, a card shape and one gesture of
190
+ mood — in under twenty words.
191
+
192
+ The nouns come from the person's words and their world; a vivid phrase belongs to this app or it
193
+ stays out. Length grows by a sentence or two per part, never by a new feature.
194
+ </chopped-first-brief>`;
195
+ export function mercuryRecutArmed(variant, firstTurn) {
196
+ return isMercuryVariant(variant) && firstTurn;
197
+ }
198
+ export const MERCURY_VARIANTS = [
199
+ "mercury-recut-first-build",
200
+ "mercury-chopped-first-build",
201
+ "mercury-chopped-j-first-build",
202
+ "mercury-chopped-js-first-build",
203
+ "mercury-whole-first-build",
204
+ "mercury-whole-duo-first-build",
205
+ "mercury-onecall-first-build",
206
+ "mercury-onecall-whole-first-build",
207
+ "mercury-onecall-duo-first-build",
208
+ "mercury-opus-planner-first-build",
209
+ "mercury-prose-first-build",
210
+ "mercury-thinkaloud-first-build",
211
+ "mercury-cards-first-build",
212
+ "mercury-cards-fim-first-build",
213
+ "mercury-haiku-cards-first-build",
214
+ ];
215
+ export function isMercuryVariant(variant) {
216
+ return variant !== undefined && MERCURY_VARIANTS.includes(variant);
217
+ }
218
+ export function mercuryStyleFor(variant) {
219
+ return variant === "mercury-chopped-first-build" ||
220
+ variant === "mercury-chopped-j-first-build" ||
221
+ variant === "mercury-chopped-js-first-build" ||
222
+ variant === "mercury-whole-first-build" ||
223
+ variant === "mercury-whole-duo-first-build" ||
224
+ variant === "mercury-onecall-first-build" ||
225
+ variant === "mercury-onecall-whole-first-build" ||
226
+ variant === "mercury-onecall-duo-first-build" ||
227
+ variant === "mercury-opus-planner-first-build"
228
+ ? "chopped"
229
+ : "base";
230
+ }
231
+ export function mercuryJuiceFor(variant) {
232
+ return variant === "mercury-chopped-j-first-build" || variant === "mercury-chopped-js-first-build" ? "own-world" : "examples";
233
+ }
234
+ export function mercuryDepthFor(variant) {
235
+ return variant === "mercury-chopped-js-first-build" ||
236
+ variant === "mercury-whole-first-build" ||
237
+ variant === "mercury-whole-duo-first-build" ||
238
+ variant === "mercury-onecall-first-build" ||
239
+ variant === "mercury-onecall-whole-first-build" ||
240
+ variant === "mercury-onecall-duo-first-build" ||
241
+ variant === "mercury-opus-planner-first-build"
242
+ ? "sub-feature"
243
+ : "none";
244
+ }
245
+ export function mercuryReplyFor(variant) {
246
+ return variant === "mercury-whole-first-build" ||
247
+ variant === "mercury-whole-duo-first-build" ||
248
+ variant === "mercury-onecall-whole-first-build" ||
249
+ variant === "mercury-onecall-duo-first-build" ||
250
+ variant === "mercury-opus-planner-first-build" ||
251
+ variant === "mercury-prose-first-build" ||
252
+ variant === "mercury-thinkaloud-first-build" ||
253
+ variant === "mercury-cards-first-build" ||
254
+ variant === "mercury-cards-fim-first-build" ||
255
+ variant === "mercury-haiku-cards-first-build"
256
+ ? "whole"
257
+ : "split";
258
+ }
259
+ export function mercuryDuoFor(variant) {
260
+ return variant === "mercury-whole-duo-first-build" || variant === "mercury-onecall-duo-first-build";
261
+ }
262
+ export function mercuryDuoPoolFor(variant) {
263
+ if (variant === "mercury-whole-duo-first-build")
264
+ return 3;
265
+ if (variant === "mercury-onecall-duo-first-build")
266
+ return 4;
267
+ return undefined;
268
+ }
269
+ export function mercuryOneCallFor(variant) {
270
+ return (variant === "mercury-onecall-first-build" ||
271
+ variant === "mercury-onecall-whole-first-build" ||
272
+ variant === "mercury-onecall-duo-first-build" ||
273
+ variant === "mercury-opus-planner-first-build" ||
274
+ variant === "mercury-prose-first-build" ||
275
+ variant === "mercury-thinkaloud-first-build" ||
276
+ variant === "mercury-cards-first-build" ||
277
+ variant === "mercury-cards-fim-first-build" ||
278
+ variant === "mercury-haiku-cards-first-build");
279
+ }
280
+ export function mercuryRecordsRulesFor(variant) {
281
+ return (variant === "mercury-onecall-duo-first-build" ||
282
+ variant === "mercury-onecall-whole-first-build" ||
283
+ variant === "mercury-opus-planner-first-build");
284
+ }
285
+ export function mercuryPlannerFor(variant) {
286
+ if (variant === "mercury-opus-planner-first-build")
287
+ return "opus";
288
+ if (variant === "mercury-haiku-cards-first-build")
289
+ return "haiku";
290
+ return "mercury";
291
+ }
292
+ export function mercuryFormatFor(variant) {
293
+ if (variant === "mercury-prose-first-build")
294
+ return "prose";
295
+ if (variant === "mercury-thinkaloud-first-build")
296
+ return "thinkaloud";
297
+ if (variant === "mercury-cards-first-build" || variant === "mercury-haiku-cards-first-build")
298
+ return "cards";
299
+ if (variant === "mercury-cards-fim-first-build")
300
+ return "cards-fim";
301
+ return "skeleton";
302
+ }
303
+ export const MERCURY_FIRST_BUILD_ENV = "MERCURY_FIRST_BUILD";
304
+ export const MERCURY_DEFAULT_SWITCH_MODE = "cards-fim";
305
+ export function mercuryFirstBuildMode(flag) {
306
+ if (flag?.trim().toLowerCase() === "off")
307
+ return "off";
308
+ if (flag === "onecall-duo")
309
+ return "onecall-duo";
310
+ if (flag === "prose")
311
+ return "prose";
312
+ return MERCURY_DEFAULT_SWITCH_MODE;
313
+ }
314
+ const MERCURY_SWITCH_VARIANTS = {
315
+ "onecall-duo": "mercury-onecall-duo-first-build",
316
+ prose: "mercury-prose-first-build",
317
+ "cards-fim": "mercury-cards-fim-first-build",
318
+ };
319
+ export function mercuryVariantForTurn(o) {
320
+ if (isMercuryVariant(o.instructionVariant))
321
+ return o.instructionVariant;
322
+ const mode = mercuryFirstBuildMode(o.flag);
323
+ if (o.instructionVariant === undefined && mode !== "off")
324
+ return MERCURY_SWITCH_VARIANTS[mode];
325
+ return undefined;
326
+ }
140
327
  const FAST_FIRST_TURN_LEVER_VARIANTS = [
141
328
  "fast-first-turn",
142
329
  "fast-server-first-build",
@@ -1 +1 @@
1
- {"version":3,"file":"instruction-variant.js","sourceRoot":"","sources":["../../jsr/intern/instruction-variant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAuBpD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,yBAAyB;IACzB,4BAA4B;IAC5B,yBAAyB;IACzB,sBAAsB;IACtB,gBAAgB;CACR,CAAC;AAUX,MAAM,wBAAwB,GAAkC;IAC9D,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,yBAAyB;IACzB,4BAA4B;IAC5B,yBAAyB;IACzB,sBAAsB;IACtB,gBAAgB;CACjB,CAAC;AAWF,MAAM,UAAU,cAAc,CAC5B,OAAuC,EACvC,IAAqC;IAErC,IAAI,OAAO,KAAK,SAAS,IAAI,wBAAwB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IACtH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAU;IACtC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAK,oBAA0C,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AASD,MAAM,UAAU,uBAAuB,CACrC,SAAkB,EAClB,WAA+B;IAE/B,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,oBAAoB,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,GAAG,CACf,sBAAsB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,mCAAmC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACrH,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,CAAC,WAAW,CAAC,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,GAAG,CACf,kFAAkF,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC1G,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,UAAU,WAAW,EAAE,CAAC,CAClG,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAQD,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA6BxB,CAAC;AAqBzB,MAAM,CAAC,MAAM,oCAAoC,GAAG;;;;;;;;;;;;;;;;;;;;;oBAqBhC,CAAC;AAoBrB,MAAM,CAAC,MAAM,2BAA2B,GAAG,iCAAiC,CAAC;AAC7E,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,MAAM,EAAE,MAAM,EAAW,CAAC;AAwBrE,MAAM,UAAU,qBAAqB,CAAC,OAAuC,EAAE,SAAkB;IAC/F,OAAO,CAAC,OAAO,KAAK,oBAAoB,IAAI,OAAO,KAAK,yBAAyB,CAAC,IAAI,SAAS,CAAC;AAClG,CAAC;AA+BD,MAAM,UAAU,eAAe,CAAC,OAAuC,EAAE,SAAkB,EAAE,SAAkB;IAC7G,IAAI,SAAS,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,OAAO,KAAK,yBAAyB;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,OAAO,KAAK,SAAS,IAAI,SAAS,CAAC;AAC5C,CAAC;AAGD,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAQzD,MAAM,UAAU,sBAAsB,CAAC,IAAwB;IAC7D,OAAO,IAAI,KAAK,KAAK,CAAC;AACxB,CAAC;AAGD,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAS3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAQxC,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IAC3D,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;wBACkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;CACvC,CAAC;AACF,CAAC;AAUD,MAAM,UAAU,0BAA0B,CAAC,KAAwB;IACjE,OAAO,GAAG,qBAAqB;;;;EAI/B,oBAAoB,CAAC,KAAK,CAAC,sBAAsB,CAAC;AACpD,CAAC;AAUD,MAAM,UAAU,uBAAuB,CAAC,OAAuC,EAAE,SAAkB;IACjG,OAAO,OAAO,KAAK,sBAAsB,IAAI,SAAS,CAAC;AACzD,CAAC;AAGD,MAAM,CAAC,MAAM,wBAAwB,GAAG,wBAAwB,CAAC;AAGjE,MAAM,UAAU,6BAA6B,CAAC,KAAwB;IACpE,OAAO,GAAG,wBAAwB;EAClC,oBAAoB,CAAC,KAAK,CAAC,yBAAyB,CAAC;AACvD,CAAC;AAQD,MAAM,8BAA8B,GAAkC;IACpE,iBAAiB;IACjB,yBAAyB;IACzB,4BAA4B;CAC7B,CAAC;AAGF,MAAM,UAAU,mBAAmB,CAAC,OAAuC,EAAE,SAAkB;IAC7F,IAAI,OAAO,KAAK,SAAS,IAAI,8BAA8B,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,SAAS,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IACjI,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAE,GAAG,yBAAyB,EAAE,EAAE,CAAC;AAC7F,CAAC;AAMD,MAAM,CAAC,MAAM,mCAAmC,GAAG;;;;;;mBAMhC,CAAC;AAGpB,MAAM,CAAC,MAAM,2CAA2C,GACtD,4GAA4G;IAC5G,oGAAoG,CAAC;AAGvG,MAAM,UAAU,wBAAwB,CAAC,YAAoB;IAC3D,OAAO,GAAG,gCAAgC,wBAAwB,YAAY,oBAAoB,CAAC;AACrG,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAoB,EACpB,KAAa,EACb,MAA0B;IAK1B,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACpC,oBAAoB,CAAC,KAAK,EAAE;QAC1B,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC;QACtC,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC7D,KAAK,EAAE,sBAAsB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;KAC/D,CAAC,CACH,CAAC;IACF,IAAI,CAAC,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACnF,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC;AAQD,MAAM,UAAU,kBAAkB,CAChC,WAAoB,EACpB,SAAkB;IAMlB,OAAO;QACL;YACE,IAAI,EAAE,MAAe;YACrB,IAAI,EAAE,yBAAyB;YAC/B,aAAa,EAAE,EAAE,IAAI,EAAE,WAAoB,EAAE;SAC9C;QACD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACpF,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;KACjF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"instruction-variant.js","sourceRoot":"","sources":["../../jsr/intern/instruction-variant.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function keepsToThemselves(words: string): boolean;
@@ -0,0 +1,10 @@
1
+ const ONLY_ME_TOKEN = /(?<!\bnot )\b(?:only (?:i|me)|just (?:for )?(?:me|myself)|for myself|private to me|single[- ]user)\b|\bnobody else\b|\bno one else\b|\bkeep (?:it |this |them )?(?:to|for) myself\b/i;
2
+ const CO_AUDIENCE = /\b(?:me|i|myself) and\b|\b(?:everyone|anyone|anybody|others|other people|the public|public)\b|\bmy (?:friends?|team(?:mates)?|group|partner|followers|buddies|family|class|club|roommates?)\b|\b(?:share|invite|collaborat)/i;
3
+ const NEGATED_SHARE = /\b(?:do not|don't|never|without) shar(?:e|ing)\b|\bno sharing\b|\bnot (?:be )?shared\b|\b(?:nobody|no one) (?:but|except) me\b|\bkeep (?:it |this |them |everything )?private\b(?!\s+from\b)/i;
4
+ const OPEN_RULES_ASK = /\b(?:anyone|anybody|everyone|everybody) can edit\b|\bno access control\b/gi;
5
+ export function keepsToThemselves(words) {
6
+ if (NEGATED_SHARE.test(words))
7
+ return true;
8
+ return ONLY_ME_TOKEN.test(words) && CO_AUDIENCE.test(words.replace(OPEN_RULES_ASK, " ")) === false;
9
+ }
10
+ //# sourceMappingURL=keeps-to-themselves.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keeps-to-themselves.js","sourceRoot":"","sources":["../../jsr/intern/keeps-to-themselves.ts"],"names":[],"mappings":"AAoBA,MAAM,aAAa,GACjB,sLAAsL,CAAC;AAGzL,MAAM,WAAW,GACf,8NAA8N,CAAC;AAMjO,MAAM,aAAa,GACjB,+LAA+L,CAAC;AAKlM,MAAM,cAAc,GAAG,4EAA4E,CAAC;AAEpG,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC;AACrG,CAAC"}
@@ -43,7 +43,10 @@ export interface LlmToolExecutorInput {
43
43
  readonly call: LlmToolCall;
44
44
  readonly signal: AbortSignal;
45
45
  readonly attachImage?: (image: LlmToolImage) => void;
46
- readonly closeTurnWith?: (text: string) => void;
46
+ }
47
+ export interface SettledOptionLines {
48
+ readonly release: string;
49
+ readonly closing?: string;
47
50
  }
48
51
  export interface LlmToolImage {
49
52
  readonly dataUrl: string;
@@ -86,6 +89,7 @@ export interface LlmToolLoopArgs {
86
89
  readonly rounds: number;
87
90
  readonly calls: number;
88
91
  }) => void;
92
+ readonly settleOptionLines?: (held: string) => Promise<Result<SettledOptionLines>>;
89
93
  readonly onToolRound?: (round: {
90
94
  readonly round: number;
91
95
  readonly calls: readonly LlmToolCall[];
@@ -3,6 +3,7 @@ import { isSseEnd, isSseError, isSseLine, } from "@vibes.diy/call-ai-v2";
3
3
  import { composeAgentRequest, isRequestFrameMessage, withMovingCacheBreakpoint } from "./agent-request-frame.js";
4
4
  import { rolloverAgentTranscript } from "./agent-settled-history.js";
5
5
  import { providerStreamErrorMessage } from "../public/provider-errors.js";
6
+ import { createOptionLineHold } from "./option-line-hold.js";
6
7
  const DEFAULT_MAX_TOOL_ROUNDS = 3;
7
8
  const DEFAULT_MAX_TOOL_CALLS = 3;
8
9
  export const MAX_TOOL_RESULT_CHARS = 8_192;
@@ -240,7 +241,6 @@ async function executeWithDeadline(execute, call, budget, now, parentSignal, sid
240
241
  call,
241
242
  signal: abort.signal,
242
243
  ...(sides.attachImage === undefined ? {} : { attachImage: sides.attachImage }),
243
- ...(sides.closeTurnWith === undefined ? {} : { closeTurnWith: sides.closeTurnWith }),
244
244
  }));
245
245
  let timeoutId;
246
246
  let removeParentListener;
@@ -273,7 +273,41 @@ async function executeWithDeadline(execute, call, budget, now, parentSignal, sid
273
273
  return Result.Err(rExecution.Err());
274
274
  return Result.Ok(rExecution.Ok());
275
275
  }
276
- async function consumeProviderStream(args, stream, request, now, textState) {
276
+ function holdContent(event, hold) {
277
+ let changed = false;
278
+ const choices = event.chunk.choices.map((choice) => {
279
+ const content = choice.delta.content;
280
+ if (typeof content !== "string" || content.length === 0)
281
+ return choice;
282
+ const shown = hold.feed(content);
283
+ if (shown === content)
284
+ return choice;
285
+ changed = true;
286
+ return { ...choice, delta: { ...choice.delta, content: shown } };
287
+ });
288
+ return changed ? { ...event, chunk: { ...event.chunk, choices } } : event;
289
+ }
290
+ async function settleHeldLines(args, round, textState, streamId) {
291
+ if (round === undefined || args.settleOptionLines === undefined)
292
+ return Result.Ok();
293
+ const held = round.hold.take();
294
+ if (held === "")
295
+ return Result.Ok();
296
+ const rSettled = held.trim() === "" ? Result.Ok({ release: held }) : await args.settleOptionLines(held);
297
+ if (rSettled.isErr())
298
+ return Result.Err(rSettled.Err());
299
+ const settled = rSettled.Ok();
300
+ if (settled.closing !== undefined)
301
+ round.closing.text = settled.closing === "" ? undefined : settled.closing;
302
+ const release = settled.closing === undefined ? settled.release : settled.release.trimEnd();
303
+ if (release.length === 0)
304
+ return Result.Ok();
305
+ const rVisible = await args.onVisible(applyRoundSeparator(closingLine({ streamId, text: release }), textState));
306
+ if (rVisible.isErr())
307
+ return Result.Err(String(rVisible.Err()));
308
+ return Result.Ok();
309
+ }
310
+ async function consumeProviderStream(args, stream, request, now, textState, round) {
277
311
  const reader = stream.getReader();
278
312
  const partials = [];
279
313
  let sawToolCall = false;
@@ -333,7 +367,8 @@ async function consumeProviderStream(args, stream, request, now, textState) {
333
367
  if (choice.finish_reason === "tool_calls")
334
368
  sawToolFinish = true;
335
369
  }
336
- const rVisible = await args.onVisible(applyRoundSeparator(sawToolCall ? stripToolCallDeltas(event) : event, textState));
370
+ const shaped = sawToolCall ? stripToolCallDeltas(event) : event;
371
+ const rVisible = await args.onVisible(applyRoundSeparator(round === undefined ? shaped : holdContent(shaped, round.hold), textState));
337
372
  if (rVisible.isErr())
338
373
  return Result.Err(String(rVisible.Err()));
339
374
  for (const choice of event.chunk.choices) {
@@ -343,6 +378,9 @@ async function consumeProviderStream(args, stream, request, now, textState) {
343
378
  continue;
344
379
  }
345
380
  if (isSseEnd(event, event.streamId)) {
381
+ const rSettled = await settleHeldLines(args, round, textState, event.streamId);
382
+ if (rSettled.isErr())
383
+ return Result.Err(rSettled.Err());
346
384
  if (sawToolCall === false) {
347
385
  if (args.session !== undefined) {
348
386
  completedNormally = true;
@@ -373,24 +411,24 @@ async function consumeProviderStream(args, stream, request, now, textState) {
373
411
  }
374
412
  }
375
413
  function closeTurnBeforeTerminal(onVisible, closingWords) {
376
- let lastChar = "";
414
+ let tail = "";
377
415
  return async function visible(event) {
378
416
  if (isSseLine(event, event.streamId)) {
379
417
  for (const choice of event.chunk.choices) {
380
418
  const content = choice.delta.content;
381
419
  if (typeof content === "string" && content.length > 0)
382
- lastChar = content.slice(-1);
420
+ tail = (tail + content).slice(-2);
383
421
  }
384
422
  return onVisible(event);
385
423
  }
386
424
  const text = closingWords.text;
387
425
  if (isSseEnd(event, event.streamId) && text !== undefined) {
388
426
  closingWords.text = undefined;
389
- const lead = lastChar === "" ? "" : lastChar === "\n" ? "\n" : "\n\n";
427
+ const lead = tail === "" || tail === "\n\n" ? "" : tail.endsWith("\n") ? "\n" : "\n\n";
390
428
  const closed = await onVisible(closingLine({ streamId: event.streamId, text: lead + text }));
391
429
  if (closed.isErr())
392
430
  return closed;
393
- lastChar = text.slice(-1);
431
+ tail = (tail + text).slice(-2);
394
432
  }
395
433
  return onVisible(event);
396
434
  };
@@ -414,6 +452,7 @@ function closingLine(p) {
414
452
  export async function runLlmToolLoop(loopArgs) {
415
453
  const closingWords = {};
416
454
  const args = { ...loopArgs, onVisible: closeTurnBeforeTerminal(loopArgs.onVisible, closingWords) };
455
+ const round = args.settleOptionLines === undefined ? undefined : { hold: createOptionLineHold(), closing: closingWords };
417
456
  const now = args.now ?? (() => Date.now());
418
457
  const maxToolRounds = args.maxToolRounds ?? DEFAULT_MAX_TOOL_ROUNDS;
419
458
  const maxToolCalls = args.maxToolCalls ?? DEFAULT_MAX_TOOL_CALLS;
@@ -436,13 +475,13 @@ export async function runLlmToolLoop(loopArgs) {
436
475
  };
437
476
  try {
438
477
  if ((currentRequest.tools === undefined || currentRequest.tools.length === 0) && args.session === undefined) {
439
- const rInitial = await consumeProviderStream({ ...args, abort: currentAbort }, currentStream, currentRequest, now, textState);
478
+ const rInitial = await consumeProviderStream({ ...args, abort: currentAbort }, currentStream, currentRequest, now, textState, round);
440
479
  if (rInitial.isErr())
441
480
  return Result.Err(String(rInitial.Err()));
442
481
  return Result.Ok({ request: currentRequest, rounds, calls });
443
482
  }
444
483
  while (true) {
445
- const rStream = await consumeProviderStream({ ...args, budget, abort: currentAbort }, currentStream, currentRequest, now, textState);
484
+ const rStream = await consumeProviderStream({ ...args, budget, abort: currentAbort }, currentStream, currentRequest, now, textState, round);
446
485
  if (rStream.isErr()) {
447
486
  const error = rStream.Err();
448
487
  if (error instanceof LlmToolLoopAbandonedError &&
@@ -562,12 +601,8 @@ export async function runLlmToolLoop(loopArgs) {
562
601
  if (announced?.isErr())
563
602
  return Result.Err(announced.Err());
564
603
  const attached = [];
565
- let closing;
566
604
  const rTool = await executeWithDeadline(args.execute, call, budget, now, currentAbort?.signal, {
567
605
  attachImage: (image) => attached.push(image),
568
- closeTurnWith: (text) => {
569
- closing = text;
570
- },
571
606
  });
572
607
  if (currentAbort?.signal.aborted)
573
608
  return Result.Err("LLM tool loop aborted by parent request");
@@ -579,8 +614,6 @@ export async function runLlmToolLoop(loopArgs) {
579
614
  if (rTool.isOk())
580
615
  for (const image of attached)
581
616
  images.push(toolImageMessage(call.name, image));
582
- if (rTool.isOk() && closing !== undefined)
583
- closingWords.text = closing;
584
617
  calls++;
585
618
  }
586
619
  if (images.length > 0) {