@burdenoff/fe-libs 2026.1007.5 → 2026.1008.1

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 (119) hide show
  1. package/dist/shared/assistant/api.d.ts +11 -0
  2. package/dist/shared/assistant/api.d.ts.map +1 -1
  3. package/dist/shared/assistant/api.js +6 -2
  4. package/dist/shared/assistant/attachmentCommit.d.ts +175 -0
  5. package/dist/shared/assistant/attachmentCommit.d.ts.map +1 -0
  6. package/dist/shared/assistant/attachmentCommit.js +638 -0
  7. package/dist/shared/assistant/attachments.d.ts +39 -19
  8. package/dist/shared/assistant/attachments.d.ts.map +1 -1
  9. package/dist/shared/assistant/conversation.d.ts +14 -0
  10. package/dist/shared/assistant/conversation.d.ts.map +1 -1
  11. package/dist/shared/assistant/createSandboxAssistantTransport.d.ts +8 -1
  12. package/dist/shared/assistant/createSandboxAssistantTransport.d.ts.map +1 -1
  13. package/dist/shared/assistant/createSandboxAssistantTransport.js +70 -51
  14. package/dist/shared/assistant/history/historyEngine.js +280 -280
  15. package/dist/shared/assistant/history/historyMapping.d.ts.map +1 -1
  16. package/dist/shared/assistant/history/historyMapping.js +19 -12
  17. package/dist/shared/assistant/i18nManifest.d.ts +23 -2
  18. package/dist/shared/assistant/i18nManifest.d.ts.map +1 -1
  19. package/dist/shared/assistant/i18nManifest.js +26 -3
  20. package/dist/shared/assistant/index.d.ts +9 -0
  21. package/dist/shared/assistant/index.d.ts.map +1 -1
  22. package/dist/shared/assistant/localUiCommandCopy.d.ts +23 -0
  23. package/dist/shared/assistant/localUiCommandCopy.d.ts.map +1 -1
  24. package/dist/shared/assistant/localUiCommandCopy.js +60 -23
  25. package/dist/shared/assistant/localUiCommands.d.ts +29 -0
  26. package/dist/shared/assistant/localUiCommands.d.ts.map +1 -1
  27. package/dist/shared/assistant/localUiCommands.js +18 -7
  28. package/dist/shared/assistant/types.d.ts +19 -8
  29. package/dist/shared/assistant/types.d.ts.map +1 -1
  30. package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
  31. package/dist/shared/assistant/ui/AssistantChatArea.js +1624 -1266
  32. package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts +18 -3
  33. package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts.map +1 -1
  34. package/dist/shared/assistant/ui/AssistantMarkdownRenderer.js +1 -1
  35. package/dist/shared/assistant/ui/AssistantMessageItem.d.ts +5 -0
  36. package/dist/shared/assistant/ui/AssistantMessageItem.d.ts.map +1 -1
  37. package/dist/shared/assistant/ui/AssistantMessageItem.js +89 -84
  38. package/dist/shared/assistant/ui/AssistantMessageList.d.ts +5 -0
  39. package/dist/shared/assistant/ui/AssistantMessageList.d.ts.map +1 -1
  40. package/dist/shared/assistant/ui/AssistantMessageList.js +26 -25
  41. package/dist/shared/assistant/ui/AssistantUiOfferLink.d.ts +45 -0
  42. package/dist/shared/assistant/ui/AssistantUiOfferLink.d.ts.map +1 -0
  43. package/dist/shared/assistant/ui/AssistantUiOfferLink.js +56 -0
  44. package/dist/shared/assistant/ui/assistantOverlayState.d.ts +9 -0
  45. package/dist/shared/assistant/ui/assistantOverlayState.d.ts.map +1 -1
  46. package/dist/shared/assistant/ui/assistantOverlayState.js +37 -28
  47. package/dist/shared/assistant/ui/composer/AssistantAttachmentChips.d.ts +8 -5
  48. package/dist/shared/assistant/ui/composer/AssistantAttachmentChips.d.ts.map +1 -1
  49. package/dist/shared/assistant/ui/composer/AssistantAttachmentChips.js +26 -9
  50. package/dist/shared/assistant/ui/composer/AssistantComposer.d.ts +3 -2
  51. package/dist/shared/assistant/ui/composer/AssistantComposer.d.ts.map +1 -1
  52. package/dist/shared/assistant/ui/composer/AssistantComposer.js +214 -125
  53. package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.d.ts.map +1 -1
  54. package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.js +1 -1
  55. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts +15 -0
  56. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts.map +1 -1
  57. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.js +127 -118
  58. package/dist/shared/assistant/ui/voice/VoiceConversationView.d.ts +6 -1
  59. package/dist/shared/assistant/ui/voice/VoiceConversationView.d.ts.map +1 -1
  60. package/dist/shared/assistant/ui/voice/VoiceConversationView.js +7 -7
  61. package/dist/shared/assistant/ui/voice/VoiceTranscriptDrawer.d.ts +6 -1
  62. package/dist/shared/assistant/ui/voice/VoiceTranscriptDrawer.d.ts.map +1 -1
  63. package/dist/shared/assistant/ui/voice/VoiceTranscriptDrawer.js +15 -12
  64. package/dist/shared/assistant/uiActions/actOnResolve.d.ts +108 -0
  65. package/dist/shared/assistant/uiActions/actOnResolve.d.ts.map +1 -0
  66. package/dist/shared/assistant/uiActions/actOnResolve.js +51 -0
  67. package/dist/shared/assistant/uiActions/linkContext.d.ts +29 -0
  68. package/dist/shared/assistant/uiActions/linkContext.d.ts.map +1 -1
  69. package/dist/shared/assistant/uiActions/linkContext.js +37 -10
  70. package/dist/shared/assistant/uiActions/navIntent.d.ts +58 -0
  71. package/dist/shared/assistant/uiActions/navIntent.d.ts.map +1 -0
  72. package/dist/shared/assistant/uiActions/navIntent.js +79 -0
  73. package/dist/shared/assistant/uiActions/navigateAction.d.ts +6 -1
  74. package/dist/shared/assistant/uiActions/navigateAction.d.ts.map +1 -1
  75. package/dist/shared/assistant/uiActions/navigateAction.js +18 -14
  76. package/dist/shared/assistant/uiActions/navigationOutcome.d.ts +16 -2
  77. package/dist/shared/assistant/uiActions/navigationOutcome.d.ts.map +1 -1
  78. package/dist/shared/assistant/uiActions/navigationOutcome.js +6 -2
  79. package/dist/shared/assistant/uiActions/offerYesOnSurface.d.ts +39 -0
  80. package/dist/shared/assistant/uiActions/offerYesOnSurface.d.ts.map +1 -0
  81. package/dist/shared/assistant/uiActions/offerYesOnSurface.js +34 -0
  82. package/dist/shared/assistant/uiActions/uiCatalogue.d.ts +14 -0
  83. package/dist/shared/assistant/uiActions/uiCatalogue.d.ts.map +1 -1
  84. package/dist/shared/assistant/uiActions/uiCatalogue.js +23 -3
  85. package/dist/shared/assistant/uiActions/uiOffers.d.ts +249 -0
  86. package/dist/shared/assistant/uiActions/uiOffers.d.ts.map +1 -0
  87. package/dist/shared/assistant/uiActions/uiOffers.js +195 -0
  88. package/dist/shared/assistant/useAssistantAttachments.d.ts +20 -2
  89. package/dist/shared/assistant/useAssistantAttachments.d.ts.map +1 -1
  90. package/dist/shared/assistant/useAssistantAttachments.js +146 -202
  91. package/dist/shared/assistant/useAttachmentCommitter.d.ts +17 -0
  92. package/dist/shared/assistant/useAttachmentCommitter.d.ts.map +1 -0
  93. package/dist/shared/assistant/useAttachmentCommitter.js +41 -0
  94. package/dist/shared/assistant/voiceCommit.d.ts +36 -0
  95. package/dist/shared/assistant/voiceCommit.d.ts.map +1 -0
  96. package/dist/shared/assistant/voiceCommit.js +24 -0
  97. package/dist/shared/assistant/writeProposals.d.ts +6 -0
  98. package/dist/shared/assistant/writeProposals.d.ts.map +1 -1
  99. package/dist/shared/assistant/writeReplyBinder.d.ts +40 -0
  100. package/dist/shared/assistant/writeReplyBinder.d.ts.map +1 -1
  101. package/dist/shared/assistant/writeReplyBinder.js +100 -83
  102. package/dist/shared/assistant/writeReplySend.d.ts +14 -0
  103. package/dist/shared/assistant/writeReplySend.d.ts.map +1 -1
  104. package/dist/shared/assistant/writeReplySend.js +32 -29
  105. package/dist/shared/hooks/index.d.ts +2 -0
  106. package/dist/shared/hooks/index.d.ts.map +1 -1
  107. package/dist/shared/navigation/unsavedChanges.d.ts +83 -0
  108. package/dist/shared/navigation/unsavedChanges.d.ts.map +1 -0
  109. package/dist/shared/navigation/unsavedChanges.js +46 -0
  110. package/dist/shared-assistant.js +247 -238
  111. package/dist/shared-hooks.js +10 -9
  112. package/dist/shared.js +20 -19
  113. package/dist/storage/filesPort.d.ts +111 -0
  114. package/dist/storage/filesPort.d.ts.map +1 -0
  115. package/dist/storage/filesPort.js +262 -0
  116. package/dist/storage/index.d.ts +2 -0
  117. package/dist/storage/index.d.ts.map +1 -1
  118. package/dist/storage/index.js +9 -8
  119. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"historyMapping.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/history/historyMapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAQV,OAAO,EACR,MAAM,iBAAiB,CAAC;AAUzB,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EAEzB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAKxB,8HAA8H;AAC9H,eAAO,MAAM,yBAAyB,QAAwC,CAAC;AAC/E,6DAA6D;AAC7D,eAAO,MAAM,yBAAyB,SAAU,CAAC;AACjD,8GAA8G;AAC9G,eAAO,MAAM,+BAA+B,QAAS,CAAC;AACtD,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,QAAS,CAAC;AACrD,6CAA6C;AAC7C,eAAO,MAAM,mCAAmC,QAAS,CAAC;AA6B1D,mFAAmF;AACnF,eAAO,MAAM,yBAAyB,2CAAsC,CAAC;AAE7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEjE;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAsCD,0GAA0G;AAC1G,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI3D;AAmGD,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAmC,CAAC;AAEvF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,+BAA+B;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG,uBAAuB,CAkBhF;AAQD;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,yBAAyB,EAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzB;AAyGD,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWpE;AAgBD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,yBAAyB,CAAC;CACjC;AAED,0EAA0E;AAC1E,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,0BAA0B,EAAE,GACpC,MAAM,CAkBR;AAED,4FAA4F;AAC5F,eAAO,MAAM,iCAAiC,QACW,CAAC;AAE1D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,EAAE,iBAAiB,GACxB,0BAA0B,EAAE,CA+C9B;AAED,sGAAsG;AACtG,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,SAAS,0BAA0B,EAAE,GAC7C,OAAO,CAWT;AA8MD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAc5E"}
1
+ {"version":3,"file":"historyMapping.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/history/historyMapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EASV,OAAO,EACR,MAAM,iBAAiB,CAAC;AAUzB,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EAEzB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAKxB,8HAA8H;AAC9H,eAAO,MAAM,yBAAyB,QAAwC,CAAC;AAC/E,6DAA6D;AAC7D,eAAO,MAAM,yBAAyB,SAAU,CAAC;AACjD,8GAA8G;AAC9G,eAAO,MAAM,+BAA+B,QAAS,CAAC;AACtD,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,QAAS,CAAC;AACrD,6CAA6C;AAC7C,eAAO,MAAM,mCAAmC,QAAS,CAAC;AA6B1D,mFAAmF;AACnF,eAAO,MAAM,yBAAyB,2CAAsC,CAAC;AAE7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEjE;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAsCD,0GAA0G;AAC1G,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI3D;AAmGD,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAmC,CAAC;AAEvF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,+BAA+B;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG,uBAAuB,CAkBhF;AAQD;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,yBAAyB,EAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzB;AAyGD,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWpE;AAgBD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,yBAAyB,CAAC;CACjC;AAED,0EAA0E;AAC1E,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,0BAA0B,EAAE,GACpC,MAAM,CAkBR;AAED,4FAA4F;AAC5F,eAAO,MAAM,iCAAiC,QACW,CAAC;AAE1D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,EAAE,iBAAiB,GACxB,0BAA0B,EAAE,CA+C9B;AAED,sGAAsG;AACtG,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,SAAS,0BAA0B,EAAE,GAC7C,OAAO,CAWT;AAkOD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAc5E"}
@@ -324,12 +324,17 @@ var he = [
324
324
  "back",
325
325
  "offer"
326
326
  ], Q = [
327
+ "tap",
328
+ "deixis",
329
+ "yes",
330
+ "resolve"
331
+ ], ge = /^uo_[0-9a-f]{32}$/, _e = [
327
332
  "arrived",
328
333
  "redirected",
329
334
  "new-tab",
330
335
  "refused",
331
336
  "unconfirmed"
332
- ], $ = 256, ge = [
337
+ ], $ = 256, ve = [
333
338
  "done",
334
339
  "already",
335
340
  "failed",
@@ -338,7 +343,7 @@ var he = [
338
343
  "ambiguous",
339
344
  "confirm"
340
345
  ];
341
- function _e(e) {
346
+ function ye(e) {
342
347
  if (!C(e)) return null;
343
348
  if (e.kind === "theme" && typeof e.mode == "string" && typeof e.alreadyApplied == "boolean") return {
344
349
  kind: "theme",
@@ -346,7 +351,7 @@ function _e(e) {
346
351
  alreadyApplied: e.alreadyApplied
347
352
  };
348
353
  if (e.kind === "navigate" && typeof e.destinationId == "string" && typeof e.path == "string" && typeof e.alreadyHere == "boolean") {
349
- let t = he.find((t) => t === e.via), n = Q.find((t) => t === e.outcome), { landedPath: r } = e;
354
+ let t = he.find((t) => t === e.via), n = _e.find((t) => t === e.outcome), { landedPath: r, offerId: i } = e, a = t === "offer" ? Q.find((t) => t === e.trigger) : void 0, o = t === "offer" && typeof i == "string" && ge.test(i) ? i : void 0;
350
355
  return {
351
356
  kind: "navigate",
352
357
  destinationId: e.destinationId,
@@ -354,11 +359,13 @@ function _e(e) {
354
359
  alreadyHere: e.alreadyHere,
355
360
  ...t ? { via: t } : {},
356
361
  ...n ? { outcome: n } : {},
357
- ...typeof r == "string" && r.length <= $ ? { landedPath: r } : {}
362
+ ...typeof r == "string" && r.length <= $ ? { landedPath: r } : {},
363
+ ...a ? { trigger: a } : {},
364
+ ...o ? { offerId: o } : {}
358
365
  };
359
366
  }
360
367
  if (e.kind === "app-control" && typeof e.control == "string") {
361
- let t = ge.find((t) => t === e.outcome);
368
+ let t = ve.find((t) => t === e.outcome);
362
369
  if (t && e.control.length <= $) {
363
370
  let n = e.control === "language" && (t === "done" || t === "already") && typeof e.languageLabel == "string" && e.languageLabel.length > 0 && e.languageLabel.length <= 80 ? e.languageLabel : null;
364
371
  return {
@@ -380,7 +387,7 @@ function _e(e) {
380
387
  candidateIds: [...t]
381
388
  } : null;
382
389
  }
383
- function ve(e) {
390
+ function be(e) {
384
391
  if (!L(e) || !C(e)) return null;
385
392
  let { kind: t, version: n, status: r, summary: i, data: a, at: o } = e;
386
393
  if (typeof t != "string" || typeof n != "number") return null;
@@ -394,7 +401,7 @@ function ve(e) {
394
401
  ...typeof o == "string" ? { at: o } : {}
395
402
  };
396
403
  }
397
- function ye(t) {
404
+ function xe(t) {
398
405
  let { kept: n } = z(t), r = {};
399
406
  if (n.voice === !0 && (r.voice = !0, typeof n.voiceSessionId == "string" && n.voiceSessionId.length > 0 && (r.voiceSessionId = n.voiceSessionId)), typeof n.lang == "string" && n.lang.length > 0 && (r.lang = n.lang), e(n.mode) && (r.mode = n.mode), typeof n.sandboxId == "string" && (r.sandboxId = n.sandboxId), typeof n.sessionId == "string" && (r.sessionId = n.sessionId), Array.isArray(n.attachments)) {
400
407
  let e = n.attachments.map(pe).filter((e) => e !== null);
@@ -404,15 +411,15 @@ function ye(t) {
404
411
  let e = n.artifacts.map(me).filter((e) => e !== null);
405
412
  e.length > 0 && (r.artifacts = e);
406
413
  }
407
- let i = _e(n.localAction);
414
+ let i = ye(n.localAction);
408
415
  if (i && (r.localAction = i), typeof n.continuedVoiceTurns == "number" && (r.continuedVoiceTurns = n.continuedVoiceTurns), n.approvalFollowUp === !0 && (r.approvalFollowUp = !0), n.incomplete === !0 && (r.incomplete = !0), n.truncated === !0 && (r.truncated = !0), Array.isArray(n.records)) {
409
- let e = n.records.map(ve).filter((e) => e !== null);
416
+ let e = n.records.map(be).filter((e) => e !== null);
410
417
  e.length > 0 && (r.records = e);
411
418
  }
412
419
  return r;
413
420
  }
414
- function be(e) {
415
- let t = ye(e.metadata);
421
+ function Se(e) {
422
+ let t = xe(e.metadata);
416
423
  return {
417
424
  id: e.clientMessageId ?? `legacy:${e.id}`,
418
425
  role: de[e.role],
@@ -424,4 +431,4 @@ function be(e) {
424
431
  };
425
432
  }
426
433
  //#endregion
427
- export { s as HISTORY_CLIENT_ID_PATTERN, l as HISTORY_ENTRY_CONTENT_CAP_BYTES, c as HISTORY_MAX_CONTENT_BYTES, ee as HISTORY_METADATA_ENVELOPE_MAX_BYTES, oe as HISTORY_METADATA_KEYS, u as HISTORY_REQUEST_HEADROOM_BYTES, Z as HISTORY_SAVE_REQUEST_BUDGET_BYTES, y as HISTORY_TRUNCATION_MARKER, z as filterHistoryMetadata, H as fitHistoryMetadataEnvelope, be as fromHistoryEntry, ue as historyEntriesMatchKind, b as isHistoryClientId, X as measureHistorySaveRequest, le as toHistoryEntries, k as toStorableHistoryText, q as truncateUtf8, x as utf8ByteLength };
434
+ export { s as HISTORY_CLIENT_ID_PATTERN, l as HISTORY_ENTRY_CONTENT_CAP_BYTES, c as HISTORY_MAX_CONTENT_BYTES, ee as HISTORY_METADATA_ENVELOPE_MAX_BYTES, oe as HISTORY_METADATA_KEYS, u as HISTORY_REQUEST_HEADROOM_BYTES, Z as HISTORY_SAVE_REQUEST_BUDGET_BYTES, y as HISTORY_TRUNCATION_MARKER, z as filterHistoryMetadata, H as fitHistoryMetadataEnvelope, Se as fromHistoryEntry, ue as historyEntriesMatchKind, b as isHistoryClientId, X as measureHistorySaveRequest, le as toHistoryEntries, k as toStorableHistoryText, q as truncateUtf8, x as utf8ByteLength };
@@ -189,22 +189,32 @@ export declare const ASSISTANT_I18N_LITERAL_COPY: {
189
189
  readonly "appControl.workspaceSwitched": "Switching to {{name}}.";
190
190
  readonly "attachments.blockedMany": "{{count}} attachments didn't upload. Retry or remove them before sending.";
191
191
  readonly "attachments.blockedOne": "{{name}} didn't upload. Retry or remove it before sending.";
192
+ readonly "attachments.cancelSaving": "Cancel";
192
193
  readonly "attachments.empty": "That file is empty.";
193
194
  readonly "attachments.failed": "Upload failed";
194
195
  readonly "attachments.imagesNotSent": "_Your photo was too large to include with this message, so the answer above is from the text and the file link only. Try a smaller or more tightly cropped photo._";
196
+ readonly "attachments.inlineOnly": "Not saved to Files (over 5 MB). Its text is still included.";
195
197
  readonly "attachments.listLabel": "Attached files";
196
198
  readonly "attachments.messageLabel": "Files sent with this message";
197
199
  readonly "attachments.open": "Open {{name}}";
198
200
  readonly "attachments.preparing": "Reading file…";
201
+ readonly "attachments.quotaFull": "File storage is full or not set up for this workspace, so the attachments couldn't be saved. Nothing was sent.";
199
202
  readonly "attachments.remove": "Remove {{name}}";
200
203
  readonly "attachments.retry": "Retry uploading {{name}}";
201
- readonly "attachments.retrying": "Retrying {{attempt}} of {{max}}";
204
+ readonly "attachments.retrySend": "Press Send to try again, or remove the file.";
205
+ readonly "attachments.saveBusy": "The assistant started another reply, so nothing was sent. Your message and files are still here.";
206
+ readonly "attachments.saveFailedMany": "{{count}} attachments couldn't be saved, so nothing was sent.";
207
+ readonly "attachments.saveFailedOne": "{{name}} couldn't be saved, so nothing was sent.";
208
+ readonly "attachments.saveMoved": "You switched conversations while the files were being saved, so nothing was sent. Your message and files are still here.";
209
+ readonly "attachments.saving": "Saving your attachments…";
210
+ readonly "attachments.savingProgress": "Saving {{percent}}%";
202
211
  readonly "attachments.tooLarge": "That file is larger than 10 MB.";
212
+ readonly "attachments.tooLargeToSave": "That file is over 5 MB, so it can't be saved to Files, and no text could be read from it.";
203
213
  readonly "attachments.tooMany": "You can attach up to {{max}} files per message.";
204
214
  readonly "attachments.unreadable": "That file could not be read.";
205
215
  readonly "attachments.unsupportedImage": "This device can't read that image format, so it can't be resized to send. Save it as JPEG and try again.";
206
216
  readonly "attachments.uploading": "Uploading…";
207
- readonly "attachments.waking": "File service is starting up — retry {{attempt}} of {{max}}";
217
+ readonly "attachments.voiceDropped": "{{count}} attachment(s) couldn't be saved and weren't sent.";
208
218
  readonly "chatArea.placeholderActions": "What would you like me to do?";
209
219
  readonly "chatArea.placeholderGeneral": "Ask me anything…";
210
220
  readonly "chatInput.ariaLabel": "Message input";
@@ -337,6 +347,8 @@ export declare const ASSISTANT_I18N_LITERAL_COPY: {
337
347
  readonly "localCommand.themeHighContrast": "high-contrast";
338
348
  readonly "localCommand.themeLight": "light";
339
349
  readonly "localCommand.themeSet": "Switched to the {{theme}} theme.";
350
+ readonly "localCommand.thisPage": "this page";
351
+ readonly "localCommand.unsavedChanges": "You have unsaved changes in {{label}}. Save or discard them, then ask again.";
340
352
  readonly "markdown.closePreview": "Close image preview";
341
353
  readonly "markdown.copied": "Copied";
342
354
  readonly "markdown.copy": "Copy";
@@ -361,6 +373,13 @@ export declare const ASSISTANT_I18N_LITERAL_COPY: {
361
373
  readonly "modeSelector.ariaLabel": "Select assistant mode";
362
374
  readonly "modeSelector.auto": "Auto";
363
375
  readonly "modeSelector.autoHint": "Answers your questions, and proposes changes for you to approve";
376
+ readonly "offer.announce": "Suggested page: {{page}}";
377
+ readonly "offer.expired": "That suggestion has expired. Ask again, or use the menu.";
378
+ readonly "offer.hintLink": "Tap, or say “take me there”.";
379
+ readonly "offer.hintRead": "Tap, or say “take me there” or “yes”.";
380
+ readonly "offer.keptForUnsaved": "You have unsaved changes in {{label}}, so I stayed here. Tap Open {{page}} when you're ready.";
381
+ readonly "offer.notAvailable": "{{page}} isn't in your menu right now.";
382
+ readonly "offer.open": "Open {{page}}";
364
383
  readonly "overlay.launcher": "AI Assistant";
365
384
  readonly "overlay.launcherTitle": "AI Assistant ({{shortcut}})";
366
385
  readonly "panel.ariaLabel": "AI Assistant";
@@ -542,6 +561,8 @@ export declare const ASSISTANT_I18N_COMPUTED_COPY: Readonly<Record<string, strin
542
561
  * Only add an entry here for a key already live in product bundles.
543
562
  */
544
563
  export declare const ASSISTANT_I18N_SEED_COMPAT_COPY: Readonly<{
564
+ readonly "attachments.retrying": "Retrying {{attempt}} of {{max}}";
565
+ readonly "attachments.waking": "File service is starting up — retry {{attempt}} of {{max}}";
545
566
  readonly "outcome.usageDailyLimitReachedNoTime": "You've reached today's AI assistant limit. Try again tomorrow.";
546
567
  }>;
547
568
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"i18nManifest.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/i18nManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAc1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+dG,CAAC;AAE5C,mDAAmD;AACnD,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,2BAA2B,CAAC;AAW/E;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgCtE,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,+BAA+B;;EAGjC,CAAC;AAEZ;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKjE,CAAC;AAEL;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,mBAAmB,EACnB,IAAI,GAAG,OAAO,GAAG,mBAAmB,CACrC,GACC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,uBAAuB,EAAE,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,4EAA4E;IAC5E,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuCzB"}
1
+ {"version":3,"file":"i18nManifest.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/i18nManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAc1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+fG,CAAC;AAE5C,mDAAmD;AACnD,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,2BAA2B,CAAC;AAW/E;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgCtE,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,+BAA+B;;;;EAQjC,CAAC;AAEZ;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKjE,CAAC;AAEL;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,mBAAmB,EACnB,IAAI,GAAG,OAAO,GAAG,mBAAmB,CACrC,GACC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,uBAAuB,EAAE,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,4EAA4E;IAC5E,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuCzB"}
@@ -83,22 +83,32 @@ var m = {
83
83
  "appControl.workspaceSwitched": "Switching to {{name}}.",
84
84
  "attachments.blockedMany": "{{count}} attachments didn't upload. Retry or remove them before sending.",
85
85
  "attachments.blockedOne": "{{name}} didn't upload. Retry or remove it before sending.",
86
+ "attachments.cancelSaving": "Cancel",
86
87
  "attachments.empty": "That file is empty.",
87
88
  "attachments.failed": "Upload failed",
88
89
  "attachments.imagesNotSent": "_Your photo was too large to include with this message, so the answer above is from the text and the file link only. Try a smaller or more tightly cropped photo._",
90
+ "attachments.inlineOnly": "Not saved to Files (over 5 MB). Its text is still included.",
89
91
  "attachments.listLabel": "Attached files",
90
92
  "attachments.messageLabel": "Files sent with this message",
91
93
  "attachments.open": "Open {{name}}",
92
94
  "attachments.preparing": "Reading file…",
95
+ "attachments.quotaFull": "File storage is full or not set up for this workspace, so the attachments couldn't be saved. Nothing was sent.",
93
96
  "attachments.remove": "Remove {{name}}",
94
97
  "attachments.retry": "Retry uploading {{name}}",
95
- "attachments.retrying": "Retrying {{attempt}} of {{max}}",
98
+ "attachments.retrySend": "Press Send to try again, or remove the file.",
99
+ "attachments.saveBusy": "The assistant started another reply, so nothing was sent. Your message and files are still here.",
100
+ "attachments.saveFailedMany": "{{count}} attachments couldn't be saved, so nothing was sent.",
101
+ "attachments.saveFailedOne": "{{name}} couldn't be saved, so nothing was sent.",
102
+ "attachments.saveMoved": "You switched conversations while the files were being saved, so nothing was sent. Your message and files are still here.",
103
+ "attachments.saving": "Saving your attachments…",
104
+ "attachments.savingProgress": "Saving {{percent}}%",
96
105
  "attachments.tooLarge": "That file is larger than 10 MB.",
106
+ "attachments.tooLargeToSave": "That file is over 5 MB, so it can't be saved to Files, and no text could be read from it.",
97
107
  "attachments.tooMany": "You can attach up to {{max}} files per message.",
98
108
  "attachments.unreadable": "That file could not be read.",
99
109
  "attachments.unsupportedImage": "This device can't read that image format, so it can't be resized to send. Save it as JPEG and try again.",
100
110
  "attachments.uploading": "Uploading…",
101
- "attachments.waking": "File service is starting up — retry {{attempt}} of {{max}}",
111
+ "attachments.voiceDropped": "{{count}} attachment(s) couldn't be saved and weren't sent.",
102
112
  "chatArea.placeholderActions": "What would you like me to do?",
103
113
  "chatArea.placeholderGeneral": "Ask me anything…",
104
114
  "chatInput.ariaLabel": "Message input",
@@ -231,6 +241,8 @@ var m = {
231
241
  "localCommand.themeHighContrast": "high-contrast",
232
242
  "localCommand.themeLight": "light",
233
243
  "localCommand.themeSet": "Switched to the {{theme}} theme.",
244
+ "localCommand.thisPage": "this page",
245
+ "localCommand.unsavedChanges": "You have unsaved changes in {{label}}. Save or discard them, then ask again.",
234
246
  "markdown.closePreview": "Close image preview",
235
247
  "markdown.copied": "Copied",
236
248
  "markdown.copy": "Copy",
@@ -255,6 +267,13 @@ var m = {
255
267
  "modeSelector.ariaLabel": "Select assistant mode",
256
268
  "modeSelector.auto": "Auto",
257
269
  "modeSelector.autoHint": "Answers your questions, and proposes changes for you to approve",
270
+ "offer.announce": "Suggested page: {{page}}",
271
+ "offer.expired": "That suggestion has expired. Ask again, or use the menu.",
272
+ "offer.hintLink": "Tap, or say “take me there”.",
273
+ "offer.hintRead": "Tap, or say “take me there” or “yes”.",
274
+ "offer.keptForUnsaved": "You have unsaved changes in {{label}}, so I stayed here. Tap Open {{page}} when you're ready.",
275
+ "offer.notAvailable": "{{page}} isn't in your menu right now.",
276
+ "offer.open": "Open {{page}}",
258
277
  "overlay.launcher": "AI Assistant",
259
278
  "overlay.launcherTitle": "AI Assistant ({{shortcut}})",
260
279
  "panel.ariaLabel": "AI Assistant",
@@ -432,7 +451,11 @@ var m = {
432
451
  ...h(Object.values(f)),
433
452
  ...h(Object.values(p)),
434
453
  ...Object.fromEntries(u.map((e) => [e.labelKey, e.labelFallback]))
435
- }), _ = Object.freeze({ "outcome.usageDailyLimitReachedNoTime": "You've reached today's AI assistant limit. Try again tomorrow." }), v = Object.freeze({
454
+ }), _ = Object.freeze({
455
+ "attachments.retrying": "Retrying {{attempt}} of {{max}}",
456
+ "attachments.waking": "File service is starting up — retry {{attempt}} of {{max}}",
457
+ "outcome.usageDailyLimitReachedNoTime": "You've reached today's AI assistant limit. Try again tomorrow."
458
+ }), v = Object.freeze({
436
459
  ...m,
437
460
  ...g,
438
461
  ..._
@@ -99,6 +99,9 @@ export * from './voice/replyLanguage';
99
99
  export * from './voice/speechPlayback';
100
100
  export * from './conversation';
101
101
  export * from './attachments';
102
+ export * from './attachmentCommit';
103
+ export * from './voiceCommit';
104
+ export * from './useAttachmentCommitter';
102
105
  export * from './store';
103
106
  export * from './guardedStorage';
104
107
  export * from './turnState';
@@ -209,6 +212,7 @@ export * from './history/historySearch';
209
212
  export * from './history/useAssistantHistorySearch';
210
213
  export * from './ui/AssistantMessageItem';
211
214
  export * from './ui/AssistantMessageList';
215
+ export * from './ui/AssistantUiOfferLink';
212
216
  export * from './ui/AssistantTurnActivity';
213
217
  export * from './ui/voice/AssistantVoiceSession';
214
218
  export * from './ui/voice/HandsFreePrivacyNotice';
@@ -241,6 +245,11 @@ export * from './uiActions/linkContext';
241
245
  export * from './uiActions/deixis';
242
246
  export * from './uiActions/recordNames';
243
247
  export * from './uiActions/uiCatalogue';
248
+ export * from './uiActions/uiOffers';
249
+ export * from './uiActions/offerYesOnSurface';
250
+ export * from './uiActions/navIntent';
251
+ export * from './uiActions/actOnResolve';
252
+ export * from '../navigation/unsavedChanges';
244
253
  export * from './appControls/types';
245
254
  export * from './appControls/registry';
246
255
  export * from './appControls/useAssistantControl';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
@@ -46,10 +46,18 @@ export interface NavigationOutcomeNames {
46
46
  * - redirected: where the person actually is. A landing with no registry label
47
47
  * is "another page" rather than a raw path.
48
48
  * - unconfirmed / refused: "Couldn't open X." (the router never got there).
49
+ * - refused for unsaved changes (N4): "You have unsaved changes in {label}.
50
+ * Save or discard them, then ask again." — the first change the guard named;
51
+ * "this page" when it gave no label.
49
52
  * - new-tab: honest either way — a voice-triggered `window.open` has no user
50
53
  * activation and may be blocked, so the link is given too.
51
54
  */
52
55
  export declare function navigationOutcomeCopy(tr: AssistantTr, outcome: NavigationOutcome, names: NavigationOutcomeNames): LocalCommandCopy;
56
+ /**
57
+ * ★ BOFF-8060 (N4): an assistant navigation refused because the page holds
58
+ * unsaved changes. `label` is the product's own name for what is unsaved.
59
+ */
60
+ export declare function unsavedChangesCopy(tr: AssistantTr, label: string | null): LocalCommandCopy;
53
61
  /** "Back on X." — `page` is the registry label of where the person went back to. */
54
62
  export declare function backDoneCopy(tr: AssistantTr, page: string | null): LocalCommandCopy;
55
63
  /** A link in the last reply that does not resolve to a page the person can open. */
@@ -76,4 +84,19 @@ export declare function entityNounText(tr: AssistantTr, noun: {
76
84
  key: string;
77
85
  fallback: string;
78
86
  }): string;
87
+ /** The link: "Open {{page}}". */
88
+ export declare function offerOpenText(tr: AssistantTr, page: string): string;
89
+ /** Announced once, politely, when the link first appears. */
90
+ export declare function offerAnnounceText(tr: AssistantTr, page: string): string;
91
+ /**
92
+ * The hint under the link: "yes" is named only for an offer the model asked
93
+ * about in a read transport (`uiOfferHintKind`).
94
+ */
95
+ export declare function offerHintText(tr: AssistantTr, kind: "read" | "link"): string;
96
+ /** A "yes" to an offer that ran out of time. */
97
+ export declare function offerExpiredCopy(tr: AssistantTr): LocalCommandCopy;
98
+ /** An accepted offer whose page the live registry no longer holds. */
99
+ export declare function offerNotAvailableCopy(tr: AssistantTr, page: string | null): LocalCommandCopy;
100
+ /** Act-on-resolve held back by unsaved changes (N4): the offer stays. */
101
+ export declare function offerKeptForUnsavedCopy(tr: AssistantTr, label: string | null, page: string | null): LocalCommandCopy;
79
102
  //# sourceMappingURL=localUiCommandCopy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"localUiCommandCopy.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/localUiCommandCopy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AA8CD,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,WAAW,EACf,IAAI,EAAE;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,EACvD,aAAa,EAAE,OAAO,GACrB,gBAAgB,CAiClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,WAC8B,CAAC;AAIxE,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,GACnB,gBAAgB,CAOlB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,gBAAgB,EAAE,GACtC,gBAAgB,CAelB;AAiDD,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA4BD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,sBAAsB,GAC5B,gBAAgB,CAkBlB;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAEnF;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAErE;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,WAAW,EACf,UAAU,EAAE,SAAS,gBAAgB,EAAE,GACtC,gBAAgB,CAQlB;AAED,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAElE;AA2BD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,WAAW,EACf,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,UAAU,EAAE,SAAS,gBAAgB,EAAE,GACtC,gBAAgB,CAWlB;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,gBAAgB,EAAE,GACtC,gBAAgB,CAKlB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,WAAW,EACf,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtC,MAAM,CAER"}
1
+ {"version":3,"file":"localUiCommandCopy.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/localUiCommandCopy.ts"],"names":[],"mappings":"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"}
@@ -33,8 +33,8 @@ function c(e, t, i) {
33
33
  return `${r(e ?? "", { page: a(t) })}\n\n${n.join("\n")}`;
34
34
  });
35
35
  }
36
- var l = (e) => [e("localCommand.opened", "Opened {{page}}."), "Opened {{page}}."], u = (e) => [e("localCommand.redirected", "{{page}} didn't open. You're on {{landed}} instead."), "{{page}} didn't open. You're on {{landed}} instead."], d = (e) => [e("localCommand.notOpened", "Couldn't open {{page}}."), "Couldn't open {{page}}."], f = (e) => [e("localCommand.newTab", "{{page}} opens in a separate tab. If nothing opened, use this link: {{link}}"), "{{page}} opens in a separate tab. If nothing opened, use this link: {{link}}"], p = (e) => [e("localCommand.backDone", "Back on {{page}}."), "Back on {{page}}."], m = (e) => [e("localCommand.linkNotOpenable", "I can't open that link from here."), "I can't open that link from here."], h = (e) => [e("localCommand.chooseLinked", "My last reply links more than one page. Which one?"), "My last reply links more than one page. Which one?"], g = (e) => [e("localCommand.pickFromList", "Pick one of the pages listed above."), "Pick one of the pages listed above."], _ = (e) => [e("localCommand.previousPage", "the previous page"), "the previous page"], v = (e) => [e("localCommand.anotherPage", "another page"), "another page"];
37
- function y(e, t, i, o = () => ({})) {
36
+ var l = (e) => [e("localCommand.opened", "Opened {{page}}."), "Opened {{page}}."], u = (e) => [e("localCommand.redirected", "{{page}} didn't open. You're on {{landed}} instead."), "{{page}} didn't open. You're on {{landed}} instead."], d = (e) => [e("localCommand.notOpened", "Couldn't open {{page}}."), "Couldn't open {{page}}."], f = (e) => [e("localCommand.newTab", "{{page}} opens in a separate tab. If nothing opened, use this link: {{link}}"), "{{page}} opens in a separate tab. If nothing opened, use this link: {{link}}"], p = (e) => [e("localCommand.backDone", "Back on {{page}}."), "Back on {{page}}."], m = (e) => [e("localCommand.linkNotOpenable", "I can't open that link from here."), "I can't open that link from here."], h = (e) => [e("localCommand.chooseLinked", "My last reply links more than one page. Which one?"), "My last reply links more than one page. Which one?"], g = (e) => [e("localCommand.pickFromList", "Pick one of the pages listed above."), "Pick one of the pages listed above."], _ = (e) => [e("localCommand.previousPage", "the previous page"), "the previous page"], v = (e) => [e("localCommand.anotherPage", "another page"), "another page"], y = (e) => [e("localCommand.unsavedChanges", "You have unsaved changes in {{label}}. Save or discard them, then ask again."), "You have unsaved changes in {{label}}. Save or discard them, then ask again."], b = (e) => [e("localCommand.thisPage", "this page"), "this page"];
37
+ function x(e, t, i, o = () => ({})) {
38
38
  let s = [t], c = Object.entries(i).map(([t, { label: n, fallback: r }]) => ({
39
39
  name: t,
40
40
  label: n,
@@ -49,62 +49,99 @@ function y(e, t, i, o = () => ({})) {
49
49
  });
50
50
  });
51
51
  }
52
- function b(e, t, n) {
52
+ function S(e, t, n) {
53
53
  let r = {
54
54
  label: n.page,
55
55
  fallback: v
56
56
  };
57
57
  switch (t.status) {
58
- case "arrived": return y(e, l(e), { page: r });
59
- case "redirected": return y(e, u(e), {
58
+ case "arrived": return x(e, l(e), { page: r });
59
+ case "redirected": return x(e, u(e), {
60
60
  page: r,
61
61
  landed: {
62
62
  label: n.landed,
63
63
  fallback: v
64
64
  }
65
65
  });
66
- case "new-tab": return y(e, f(e), { page: r }, ({ page: e }) => ({ link: n.path ? `[${e ?? ""}](${o(n.path)})` : e ?? "" }));
67
- case "refused":
68
- case "unconfirmed": return y(e, d(e), { page: r });
66
+ case "new-tab": return x(e, f(e), { page: r }, ({ page: e }) => ({ link: n.path ? `[${e ?? ""}](${o(n.path)})` : e ?? "" }));
67
+ case "refused": return t.reason === "unsaved-changes" ? C(e, t.unsaved?.[0]?.label ?? null) : x(e, d(e), { page: r });
68
+ case "unconfirmed": return x(e, d(e), { page: r });
69
69
  }
70
70
  }
71
- function x(e, t) {
72
- return y(e, p(e), { page: {
71
+ function C(e, t) {
72
+ return x(e, y(e), { label: {
73
+ label: t,
74
+ fallback: b
75
+ } });
76
+ }
77
+ function w(e, t) {
78
+ return x(e, p(e), { page: {
73
79
  label: t,
74
80
  fallback: _
75
81
  } });
76
82
  }
77
- function S(e) {
83
+ function T(e) {
78
84
  return n([m(e)], ([e]) => e ?? "");
79
85
  }
80
- function C(e, t) {
86
+ function E(e, t) {
81
87
  return n([h(e)], ([e]) => {
82
88
  let n = t.map((e, t) => `${t + 1}. [${a(e.label)}](${o(e.path)})${e.context ? ` — ${a(e.context)}` : ""}`);
83
89
  return `${e ?? ""}\n\n${n.join("\n")}`;
84
90
  });
85
91
  }
86
- function w(e) {
92
+ function D(e) {
87
93
  return n([g(e)], ([e]) => e ?? "");
88
94
  }
89
- var T = (e) => [e("localCommand.chooseKinds", "Do you mean the {{first}} or the {{second}}?"), "Do you mean the {{first}} or the {{second}}?"], E = (e) => [e("localCommand.chooseKindsMany", "Which one do you mean?"), "Which one do you mean?"], D = (e) => [e("localCommand.chooseRecord", "More than one {{noun}} is called “{{name}}”. Which one?"), "More than one {{noun}} is called “{{name}}”. Which one?"];
90
- function O(e) {
95
+ var O = (e) => [e("localCommand.chooseKinds", "Do you mean the {{first}} or the {{second}}?"), "Do you mean the {{first}} or the {{second}}?"], k = (e) => [e("localCommand.chooseKindsMany", "Which one do you mean?"), "Which one do you mean?"], A = (e) => [e("localCommand.chooseRecord", "More than one {{noun}} is called “{{name}}”. Which one?"), "More than one {{noun}} is called “{{name}}”. Which one?"];
96
+ function j(e) {
91
97
  return e.map((e, t) => `${t + 1}. [${a(e.label)}](${o(e.path)})${e.context ? ` — ${a(e.context)}` : ""}`).join("\n");
92
98
  }
93
- function k(e, t, i) {
99
+ function M(e, t, i) {
94
100
  let o = t.length === 2;
95
- return n([o ? T(e) : E(e)], ([e]) => `${o ? r(e ?? "", {
101
+ return n([o ? O(e) : k(e)], ([e]) => `${o ? r(e ?? "", {
96
102
  first: a(t[0] ?? ""),
97
103
  second: a(t[1] ?? "")
98
- }) : e ?? ""}\n\n${O(i)}`);
104
+ }) : e ?? ""}\n\n${j(i)}`);
99
105
  }
100
- function A(e, t, i, o) {
101
- return n([D(e)], ([e]) => `${r(e ?? "", {
106
+ function N(e, t, i, o) {
107
+ return n([A(e)], ([e]) => `${r(e ?? "", {
102
108
  noun: a(t),
103
109
  name: a(i)
104
- })}\n\n${O(o)}`);
110
+ })}\n\n${j(o)}`);
105
111
  }
106
- function j(e, t) {
112
+ function P(e, t) {
107
113
  return e(t.key, t.fallback);
108
114
  }
115
+ function F(e, t) {
116
+ return r(e("offer.open", "Open {{page}}"), { page: t });
117
+ }
118
+ function I(e, t) {
119
+ return r(e("offer.announce", "Suggested page: {{page}}"), { page: t });
120
+ }
121
+ function L(e, t) {
122
+ return t === "read" ? e("offer.hintRead", "Tap, or say “take me there” or “yes”.") : e("offer.hintLink", "Tap, or say “take me there”.");
123
+ }
124
+ var R = (e) => [e("offer.expired", "That suggestion has expired. Ask again, or use the menu."), "That suggestion has expired. Ask again, or use the menu."], z = (e) => [e("offer.notAvailable", "{{page}} isn't in your menu right now."), "{{page}} isn't in your menu right now."], B = (e) => [e("offer.keptForUnsaved", "You have unsaved changes in {{label}}, so I stayed here. Tap Open {{page}} when you're ready."), "You have unsaved changes in {{label}}, so I stayed here. Tap Open {{page}} when you're ready."];
125
+ function V(e) {
126
+ return n([R(e)], ([e]) => e ?? "");
127
+ }
128
+ function H(e, t) {
129
+ return x(e, z(e), { page: {
130
+ label: t,
131
+ fallback: v
132
+ } });
133
+ }
134
+ function U(e, t, n) {
135
+ return x(e, B(e), {
136
+ label: {
137
+ label: t,
138
+ fallback: b
139
+ },
140
+ page: {
141
+ label: n,
142
+ fallback: v
143
+ }
144
+ });
145
+ }
109
146
  //#endregion
110
- export { x as backDoneCopy, c as chooseDestinationCopy, C as chooseLinkedCopy, j as entityNounText, S as linkNotOpenableCopy, a as markdownText, s as navigationCommandCopy, b as navigationOutcomeCopy, w as pickFromListCopy, A as recordChoiceCopy, k as recordKindsCopy, i as themeCommandCopy };
147
+ export { w as backDoneCopy, c as chooseDestinationCopy, E as chooseLinkedCopy, P as entityNounText, T as linkNotOpenableCopy, a as markdownText, s as navigationCommandCopy, S as navigationOutcomeCopy, I as offerAnnounceText, V as offerExpiredCopy, L as offerHintText, U as offerKeptForUnsavedCopy, H as offerNotAvailableCopy, F as offerOpenText, D as pickFromListCopy, N as recordChoiceCopy, M as recordKindsCopy, i as themeCommandCopy, C as unsavedChangesCopy };
@@ -42,6 +42,19 @@ export type LocalUiCommand = {
42
42
  kind: "navigate";
43
43
  destination: LocalDestination;
44
44
  via?: "link" | "choice";
45
+ }
46
+ /**
47
+ * ★ BOFF-8060 (N3): a page the model OFFERED, accepted — "take me there"
48
+ * (`deixis`) over the newest reply's one target, or a bare "yes" the 5a
49
+ * binder accepted (`yes`). The panel re-validates and claims the offer before
50
+ * it navigates. `destination` is the person's own registry entry.
51
+ */
52
+ | {
53
+ kind: "navigate";
54
+ destination: LocalDestination;
55
+ via: "offer";
56
+ offerId: string;
57
+ trigger: "deixis" | "yes";
45
58
  } | {
46
59
  kind: "choose-destination";
47
60
  query: string;
@@ -138,6 +151,22 @@ export interface LocalUiCommandOptions {
138
151
  * the N2 sandbox image is live.
139
152
  */
140
153
  uiCatalogue?: boolean;
154
+ /**
155
+ * ★ BOFF-8060 (N3): read the pages the model OFFERS (`uiOffers` on the turn
156
+ * poller's reads) and draw an "Open {page}" link under the reply. Default
157
+ * off. Read only from a sandbox whose own `/health` says it serves offers
158
+ * and is proposal-v1.
159
+ */
160
+ uiOffers?: boolean;
161
+ /**
162
+ * ★★ BOFF-8060 (N4, design §8 R5): the product ATTESTS that every editor
163
+ * which can hold a draft registers it with N4 (`useUnsavedChanges`), so an
164
+ * empty `listUnsavedChanges()` means "nothing unsaved" and not "nobody
165
+ * reports". Default off: act-on-resolve then never acts (R5 is absent) and
166
+ * every offer stays an "Open {page}" link. Set it only in the same release
167
+ * as the editors' adoption, with a seam test that pins both.
168
+ */
169
+ leaveGuard?: boolean;
141
170
  }
142
171
  /**
143
172
  * What only the panel knows at the moment of sending. Optional, so every
@@ -1 +1 @@
1
- {"version":3,"file":"localUiCommands.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/localUiCommands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localUiCommands.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/localUiCommands.ts"],"names":[],"mappings":"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"}
@@ -228,14 +228,25 @@ function N(e, t) {
228
228
  candidateIds: t.pendingChoice.candidateIds
229
229
  };
230
230
  let { targets: n, unresolved: r } = t.links, [a] = n;
231
- return a ? n.length === 1 ? {
232
- kind: "navigate",
233
- destination: a,
234
- via: "link"
235
- } : {
231
+ if (!a) return r > 0 ? { kind: "link-not-openable" } : null;
232
+ if (n.length === 1) {
233
+ let e = t.offers?.find((e) => e.path === a.path)?.offerId;
234
+ return e ? {
235
+ kind: "navigate",
236
+ destination: a,
237
+ via: "offer",
238
+ offerId: e,
239
+ trigger: "deixis"
240
+ } : {
241
+ kind: "navigate",
242
+ destination: a,
243
+ via: "link"
244
+ };
245
+ }
246
+ return {
236
247
  kind: "choose-linked",
237
248
  candidates: n.slice(0, 4)
238
- } : r > 0 ? { kind: "link-not-openable" } : null;
249
+ };
239
250
  }
240
251
  function P(e, t) {
241
252
  let n = (e) => e.kind === "navigate" ? [e.destination] : e.kind === "choose-linked" || e.kind === "choose-destination" ? e.candidates : null, r = n(e), i = n(t);
@@ -243,7 +254,7 @@ function P(e, t) {
243
254
  let a = [];
244
255
  for (let e of [...r, ...i]) a.some((t) => t.path === e.path) || a.push(e);
245
256
  let [o] = a;
246
- return o && a.length === 1 ? {
257
+ return o && a.length === 1 ? e.kind === "navigate" ? e : {
247
258
  kind: "navigate",
248
259
  destination: o,
249
260
  via: "link"