instar 1.3.1593 → 1.3.1595

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 (139) hide show
  1. package/dashboard/console/console.css +1 -0
  2. package/dashboard/console/sessions.js +1 -1
  3. package/dist/commands/server.d.ts.map +1 -1
  4. package/dist/commands/server.js +3 -0
  5. package/dist/commands/server.js.map +1 -1
  6. package/dist/core/AppConversationService.d.ts +38 -0
  7. package/dist/core/AppConversationService.d.ts.map +1 -1
  8. package/dist/core/AppConversationService.js +145 -4
  9. package/dist/core/AppConversationService.js.map +1 -1
  10. package/dist/core/AppConversationStore.d.ts +60 -2
  11. package/dist/core/AppConversationStore.d.ts.map +1 -1
  12. package/dist/core/AppConversationStore.js +142 -7
  13. package/dist/core/AppConversationStore.js.map +1 -1
  14. package/dist/core/AppConversationsReplicatedStore.js +1 -1
  15. package/dist/core/AppConversationsReplicatedStore.js.map +1 -1
  16. package/dist/core/AppMediaStore.d.ts +186 -0
  17. package/dist/core/AppMediaStore.d.ts.map +1 -0
  18. package/dist/core/AppMediaStore.js +805 -0
  19. package/dist/core/AppMediaStore.js.map +1 -0
  20. package/dist/core/AppRecordSignatures.d.ts +11 -0
  21. package/dist/core/AppRecordSignatures.d.ts.map +1 -1
  22. package/dist/core/AppRecordSignatures.js +33 -3
  23. package/dist/core/AppRecordSignatures.js.map +1 -1
  24. package/dist/core/AppReplyRelayInstaller.d.ts +4 -0
  25. package/dist/core/AppReplyRelayInstaller.d.ts.map +1 -1
  26. package/dist/core/AppReplyRelayInstaller.js +17 -3
  27. package/dist/core/AppReplyRelayInstaller.js.map +1 -1
  28. package/dist/core/DesktopHelperPermissionNotice.d.ts +38 -0
  29. package/dist/core/DesktopHelperPermissionNotice.d.ts.map +1 -0
  30. package/dist/core/DesktopHelperPermissionNotice.js +65 -0
  31. package/dist/core/DesktopHelperPermissionNotice.js.map +1 -0
  32. package/dist/core/DesktopHelperRetention.d.ts +89 -0
  33. package/dist/core/DesktopHelperRetention.d.ts.map +1 -0
  34. package/dist/core/DesktopHelperRetention.js +299 -0
  35. package/dist/core/DesktopHelperRetention.js.map +1 -0
  36. package/dist/core/DesktopHost.d.ts +5 -0
  37. package/dist/core/DesktopHost.d.ts.map +1 -1
  38. package/dist/core/DesktopHost.js.map +1 -1
  39. package/dist/core/DesktopProbeReadiness.d.ts +4 -0
  40. package/dist/core/DesktopProbeReadiness.d.ts.map +1 -1
  41. package/dist/core/DesktopProbeReadiness.js +16 -5
  42. package/dist/core/DesktopProbeReadiness.js.map +1 -1
  43. package/dist/core/FileClassifier.d.ts.map +1 -1
  44. package/dist/core/FileClassifier.js +1 -0
  45. package/dist/core/FileClassifier.js.map +1 -1
  46. package/dist/core/InstarWorktreeManager.js +1 -1
  47. package/dist/core/InstarWorktreeManager.js.map +1 -1
  48. package/dist/core/MacDesktopHost.d.ts +18 -1
  49. package/dist/core/MacDesktopHost.d.ts.map +1 -1
  50. package/dist/core/MacDesktopHost.js +102 -14
  51. package/dist/core/MacDesktopHost.js.map +1 -1
  52. package/dist/core/MobileChatRequests.d.ts.map +1 -1
  53. package/dist/core/MobileChatRequests.js +3 -0
  54. package/dist/core/MobileChatRequests.js.map +1 -1
  55. package/dist/core/MobileDeviceKeys.d.ts +8 -2
  56. package/dist/core/MobileDeviceKeys.d.ts.map +1 -1
  57. package/dist/core/MobileDeviceKeys.js +10 -4
  58. package/dist/core/MobileDeviceKeys.js.map +1 -1
  59. package/dist/core/PostUpdateMigrator.d.ts +6 -0
  60. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  61. package/dist/core/PostUpdateMigrator.js +22 -0
  62. package/dist/core/PostUpdateMigrator.js.map +1 -1
  63. package/dist/core/WriteDomainRegistry.d.ts.map +1 -1
  64. package/dist/core/WriteDomainRegistry.js +11 -0
  65. package/dist/core/WriteDomainRegistry.js.map +1 -1
  66. package/dist/core/appInboundDispatch.d.ts.map +1 -1
  67. package/dist/core/appInboundDispatch.js +11 -2
  68. package/dist/core/appInboundDispatch.js.map +1 -1
  69. package/dist/core/appMediaReplyFiles.d.ts +34 -0
  70. package/dist/core/appMediaReplyFiles.d.ts.map +1 -0
  71. package/dist/core/appMediaReplyFiles.js +172 -0
  72. package/dist/core/appMediaReplyFiles.js.map +1 -0
  73. package/dist/core/appMediaTypes.d.ts +64 -0
  74. package/dist/core/appMediaTypes.d.ts.map +1 -0
  75. package/dist/core/appMediaTypes.js +192 -0
  76. package/dist/core/appMediaTypes.js.map +1 -0
  77. package/dist/core/appMediaWorker.d.ts +19 -0
  78. package/dist/core/appMediaWorker.d.ts.map +1 -0
  79. package/dist/core/appMediaWorker.js +162 -0
  80. package/dist/core/appMediaWorker.js.map +1 -0
  81. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  82. package/dist/core/devGatedFeatures.js +6 -0
  83. package/dist/core/devGatedFeatures.js.map +1 -1
  84. package/dist/core/types.d.ts +11 -0
  85. package/dist/core/types.d.ts.map +1 -1
  86. package/dist/core/types.js.map +1 -1
  87. package/dist/data/standards-guard-index.json +1 -1
  88. package/dist/data/standards-guard-index.meta.json +2 -2
  89. package/dist/data/standards-registry.meta.json +1 -1
  90. package/dist/monitoring/templates-drift-verifier.d.ts.map +1 -1
  91. package/dist/monitoring/templates-drift-verifier.js +6 -1
  92. package/dist/monitoring/templates-drift-verifier.js.map +1 -1
  93. package/dist/native/instar-desktop-host +0 -0
  94. package/dist/native/instar-desktop-host.json +1 -0
  95. package/dist/scaffold/templates.d.ts.map +1 -1
  96. package/dist/scaffold/templates.js +3 -2
  97. package/dist/scaffold/templates.js.map +1 -1
  98. package/dist/server/AgentServer.d.ts +2 -0
  99. package/dist/server/AgentServer.d.ts.map +1 -1
  100. package/dist/server/AgentServer.js +53 -6
  101. package/dist/server/AgentServer.js.map +1 -1
  102. package/dist/server/CapabilityIndex.js +2 -2
  103. package/dist/server/CapabilityIndex.js.map +1 -1
  104. package/dist/server/mobileConversationRoutes.d.ts +5 -2
  105. package/dist/server/mobileConversationRoutes.d.ts.map +1 -1
  106. package/dist/server/mobileConversationRoutes.js +186 -24
  107. package/dist/server/mobileConversationRoutes.js.map +1 -1
  108. package/dist/server/mobileMediaRoutes.d.ts +12 -0
  109. package/dist/server/mobileMediaRoutes.d.ts.map +1 -0
  110. package/dist/server/mobileMediaRoutes.js +337 -0
  111. package/dist/server/mobileMediaRoutes.js.map +1 -0
  112. package/dist/server/mobilePairingRoutes.d.ts +5 -0
  113. package/dist/server/mobilePairingRoutes.d.ts.map +1 -1
  114. package/dist/server/mobilePairingRoutes.js +43 -2
  115. package/dist/server/mobilePairingRoutes.js.map +1 -1
  116. package/dist/server/routes.d.ts.map +1 -1
  117. package/dist/server/routes.js +133 -10
  118. package/dist/server/routes.js.map +1 -1
  119. package/dist/testing/selfActionRegistry.d.ts.map +1 -1
  120. package/dist/testing/selfActionRegistry.js +33 -0
  121. package/dist/testing/selfActionRegistry.js.map +1 -1
  122. package/package.json +1 -1
  123. package/scripts/blocking-decision-surfaces-baseline.json +2 -2
  124. package/scripts/build-native-desktop-host.mjs +11 -0
  125. package/scripts/check-native-desktop-release.mjs +4 -0
  126. package/src/data/builtin-manifest.json +74 -66
  127. package/src/data/standards-guard-index.json +1 -1
  128. package/src/data/standards-guard-index.meta.json +2 -2
  129. package/src/data/standards-registry.meta.json +1 -1
  130. package/src/data/state-coherence-registry.json +40 -0
  131. package/src/scaffold/templates.ts +3 -2
  132. package/src/templates/scripts/app-media-path +58 -0
  133. package/src/templates/scripts/app-reply.sh +65 -4
  134. package/upgrades/1.3.1594.md +31 -0
  135. package/upgrades/1.3.1595.md +25 -0
  136. package/upgrades/side-effects/console-composer-placeholder.eli16.md +7 -0
  137. package/upgrades/side-effects/console-composer-placeholder.md +31 -0
  138. package/upgrades/side-effects/desktop-grant-survives-update.md +73 -0
  139. package/upgrades/side-effects/mobile-native-chat-media-inc1.md +146 -0
@@ -1009,6 +1009,7 @@ button.run-mark:focus-visible { outline: 2px solid var(--accent); outline-offset
1009
1009
  .sess-resume { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); z-index: 2; }
1010
1010
  .sess-composer { display: flex; gap: var(--s-2); align-items: flex-end; position: sticky; bottom: 0; padding: var(--s-2) 0; background: var(--bg); }
1011
1011
  .sess-input { flex: 1; min-height: 44px; font-size: 16px; resize: none; }
1012
+ .sess-input::placeholder { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
1012
1013
  .sess-composer-btns { display: flex; gap: var(--s-2); }
1013
1014
  .sess-attach { min-width: 44px; min-height: 44px; padding: 0 10px; font-size: 18px; }
1014
1015
  .sess-attach:disabled { opacity: .45; cursor: not-allowed; }
@@ -239,7 +239,7 @@ function openView(box, row) {
239
239
  const termBox = el('div', { class: 'sess-term', 'aria-label': 'Live terminal' });
240
240
  const resume = el('button', { class: 'btn-primary btn-inline sess-resume', type: 'button', text: '▼ Back to live', hidden: true });
241
241
  const more = el('button', { class: 'btn-quiet sess-more', type: 'button', 'aria-label': 'More', text: '⋯', 'data-more': '1' });
242
- const input = el('textarea', { class: 'reason-input sess-input', rows: '1', placeholder: 'Type a message…', 'aria-label': 'Message to the session' });
242
+ const input = el('textarea', { class: 'reason-input sess-input', rows: '1', placeholder: 'Message…', 'aria-label': 'Message to the session' });
243
243
  const sendBtn = el('button', { class: 'btn-primary btn-inline', type: 'button', text: 'Send', 'data-send': '1' });
244
244
  const keysBtn = el('button', { class: 'btn-quiet', type: 'button', text: 'Keys', 'aria-expanded': 'false', 'data-keys': '1' });
245
245
  // Attach: a screenshot or file, picked, pasted or dropped. Saved on this machine, so a
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAuHA,OAAO,EAAE,cAAc,EAAwD,MAAM,2BAA2B,CAAC;AAgBjH,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AA6BjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA6J7D,OAAO,KAAK,EAAW,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA4GtD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AA0ID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA0DD,+EAA+E;AAC/E,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,IAAI,CAAC,OAAO,2BAA2B,EAAE,cAAc,EAAE,QAAQ,CAAC,GAAG,IAAI,EACpF,OAAO,EAAE,MAAM,GACd,IAAI,CAEN;AAukBD,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,kBAAkB,CAAC,EAAE,MAAM;AAC3B;;qCAEqC;AACrC,WAAW,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;AACzD;;wEAEwE;AACxE,SAAS,CAAC,EAAE;IACV,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;sEAGkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GACA,OAAO,CAAC,MAAM,CAAC,CAiZjB;AA0xBD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,oBAAoB,GAAG,IAAI,GACxC;IACD,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,CAqBA;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAQrD,oBAAoB,CAAC,EAAE,MAAM;IAC3B,YAAY,EAAE,OAAO,kBAAkB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,GACP,IAAI,CAo4BN;AA+pBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAg41BtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDzE;AA+BD,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkE5E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
@@ -8658,6 +8658,9 @@ export async function startServer(options) {
8658
8658
  }
8659
8659
  catch { /* @silent-fallback-ok — the stop record is observability */ }
8660
8660
  },
8661
+ mediaMaxStoreBytes: () => config.mobilePairing?.native?.media?.maxStoreBytes,
8662
+ raiseAttention: (item) => { void telegram?.createAttentionItem({ id: item.conditionKey, conditionKey: item.conditionKey, title: item.title, summary: item.body, category: 'general', priority: 'NORMAL', sourceContext: 'app-media' }); },
8663
+ clearAttention: (conditionKey) => { telegram?.clearAttentionCondition({ conditionKey }, 'cleared: the app media store has room again'); },
8661
8664
  reportDegradation: (what, detail) => degradationReporter.report({
8662
8665
  feature: what, primary: 'record and deliver native app conversations', fallback: 'the request was refused or reported outcome-unknown',
8663
8666
  reason: detail, impact: 'An app conversation step needs attention.',