@circuitwall/jarela 2.3.0 → 2.4.0

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 (208) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +4 -4
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  13. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  14. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  15. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  16. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  18. package/.next/standalone/.next/server/app/api/v1/access/[identity]/route.js +7 -0
  19. package/.next/standalone/.next/server/app/api/v1/access/route.js +7 -0
  20. package/.next/standalone/.next/server/app/api/v1/agents/[id]/compact/route.js +7 -0
  21. package/.next/standalone/.next/server/app/api/v1/agents/[id]/display-filters/route.js +17 -5
  22. package/.next/standalone/.next/server/app/api/v1/agents/[id]/route.js +7 -0
  23. package/.next/standalone/.next/server/app/api/v1/agents/[id]/thread/route.js +17 -5
  24. package/.next/standalone/.next/server/app/api/v1/agents/route.js +7 -0
  25. package/.next/standalone/.next/server/app/api/v1/allowed-sites/[hostname]/route.js +7 -0
  26. package/.next/standalone/.next/server/app/api/v1/allowed-sites/route.js +7 -0
  27. package/.next/standalone/.next/server/app/api/v1/artifacts/lifecycle/route.js +7 -0
  28. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/chats/route.js +26 -32
  29. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/chats/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/ignores/[remote_jid]/route.js +18 -7
  31. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/ignores/route.js +18 -7
  32. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/lookup/route.js +26 -32
  33. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/lookup/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/pair/route.js +27 -33
  35. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/pair/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js +26 -32
  37. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/routes/[route_id]/route.js +28 -12
  39. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/routes/route.js +28 -12
  40. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/status/route.js +26 -32
  41. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/status/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/v1/bridges/kinds/route.js +9 -2
  43. package/.next/standalone/.next/server/app/api/v1/bridges/kinds/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/v1/bridges/route.js +19 -7
  45. package/.next/standalone/.next/server/app/api/v1/bridges/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/v1/dashboard/metrics/route.js +17 -5
  47. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing/route.js +7 -0
  48. package/.next/standalone/.next/server/app/api/v1/documents/search/route.js +7 -0
  49. package/.next/standalone/.next/server/app/api/v1/documents/settings/route.js +7 -0
  50. package/.next/standalone/.next/server/app/api/v1/env-sync/allowlist/route.js +7 -0
  51. package/.next/standalone/.next/server/app/api/v1/env-sync/route.js +7 -0
  52. package/.next/standalone/.next/server/app/api/v1/events/route.js +26 -32
  53. package/.next/standalone/.next/server/app/api/v1/events/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/api/v1/extension/browser/activate/route.js +7 -0
  55. package/.next/standalone/.next/server/app/api/v1/extension/browser/foreground/route.js +7 -0
  56. package/.next/standalone/.next/server/app/api/v1/extension/browser/history/route.js +7 -0
  57. package/.next/standalone/.next/server/app/api/v1/extension/browser/poll/route.js +7 -0
  58. package/.next/standalone/.next/server/app/api/v1/extension/browser/progress/route.js +7 -0
  59. package/.next/standalone/.next/server/app/api/v1/extension/browser/result/route.js +7 -0
  60. package/.next/standalone/.next/server/app/api/v1/extension/browser/retry/route.js +7 -0
  61. package/.next/standalone/.next/server/app/api/v1/extension/browser/status/route.js +7 -0
  62. package/.next/standalone/.next/server/app/api/v1/extension/browser/tabs/route.js +7 -0
  63. package/.next/standalone/.next/server/app/api/v1/harnesses/[id]/route.js +7 -0
  64. package/.next/standalone/.next/server/app/api/v1/harnesses/default/route.js +7 -0
  65. package/.next/standalone/.next/server/app/api/v1/harnesses/route.js +7 -0
  66. package/.next/standalone/.next/server/app/api/v1/health/route.js +17 -5
  67. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/route.js +7 -0
  68. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/callback/route.js +7 -0
  69. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/start/route.js +7 -0
  70. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/status/route.js +7 -0
  71. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/callback/route.js +7 -0
  72. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/start/route.js +7 -0
  73. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/status/route.js +7 -0
  74. package/.next/standalone/.next/server/app/api/v1/integrations/route.js +7 -0
  75. package/.next/standalone/.next/server/app/api/v1/lifecycle/adoption/route.js +17 -5
  76. package/.next/standalone/.next/server/app/api/v1/maps/embed/route.js +7 -0
  77. package/.next/standalone/.next/server/app/api/v1/mcp-servers/[name]/route.js +17 -5
  78. package/.next/standalone/.next/server/app/api/v1/mcp-servers/route.js +17 -5
  79. package/.next/standalone/.next/server/app/api/v1/memory/[namespace]/[key]/route.js +7 -0
  80. package/.next/standalone/.next/server/app/api/v1/memory/policy/route.js +7 -0
  81. package/.next/standalone/.next/server/app/api/v1/memory/route.js +7 -0
  82. package/.next/standalone/.next/server/app/api/v1/memory/search/route.js +7 -0
  83. package/.next/standalone/.next/server/app/api/v1/models/[name]/compact-threads/route.js +7 -0
  84. package/.next/standalone/.next/server/app/api/v1/models/[name]/route.js +7 -0
  85. package/.next/standalone/.next/server/app/api/v1/models/route.js +7 -0
  86. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js +27 -12
  87. package/.next/standalone/.next/server/app/api/v1/profile/location/route.js +7 -0
  88. package/.next/standalone/.next/server/app/api/v1/profile/route.js +7 -0
  89. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/models/route.js +7 -0
  90. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/probe/route.js +7 -0
  91. package/.next/standalone/.next/server/app/api/v1/providers/github-copilot/auth/route.js +7 -0
  92. package/.next/standalone/.next/server/app/api/v1/providers/route.js +7 -0
  93. package/.next/standalone/.next/server/app/api/v1/proxy-config/route.js +7 -0
  94. package/.next/standalone/.next/server/app/api/v1/redaction/init/route.js +7 -0
  95. package/.next/standalone/.next/server/app/api/v1/redaction/route.js +7 -0
  96. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/route.js +17 -5
  97. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/route.js +7 -0
  98. package/.next/standalone/.next/server/app/api/v1/security/idle-timeout/route.js +7 -0
  99. package/.next/standalone/.next/server/app/api/v1/security/pin/route.js +7 -0
  100. package/.next/standalone/.next/server/app/api/v1/security/state/route.js +7 -0
  101. package/.next/standalone/.next/server/app/api/v1/security/unlock/route.js +7 -0
  102. package/.next/standalone/.next/server/app/api/v1/security/verify-pin/route.js +7 -0
  103. package/.next/standalone/.next/server/app/api/v1/skills/[id]/route.js +7 -0
  104. package/.next/standalone/.next/server/app/api/v1/skills/repos/[id]/route.js +7 -0
  105. package/.next/standalone/.next/server/app/api/v1/skills/repos/route.js +7 -0
  106. package/.next/standalone/.next/server/app/api/v1/skills/route.js +7 -0
  107. package/.next/standalone/.next/server/app/api/v1/tasks/[agent_id]/route.js +7 -0
  108. package/.next/standalone/.next/server/app/api/v1/tasks/route.js +7 -0
  109. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route.js +7 -0
  110. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/context-pin/route.js +12 -6
  111. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js +7 -0
  112. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js +0 -1
  113. package/.next/standalone/.next/server/app/api/v1/threads/route.js +17 -5
  114. package/.next/standalone/.next/server/app/api/v1/update/apply/route.js.nft.json +1 -1
  115. package/.next/standalone/.next/server/app/api/v1/voice/transcribe/route.js +17 -5
  116. package/.next/standalone/.next/server/app/api/v1/voice/tts/route.js +17 -5
  117. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/route.js +17 -5
  118. package/.next/standalone/.next/server/app/page.js +322 -275
  119. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/setup/page.js +8 -0
  121. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app-paths-manifest.json +4 -4
  123. package/.next/standalone/.next/server/chunks/1388.js +106 -36
  124. package/.next/standalone/.next/server/chunks/2068.js +47 -10
  125. package/.next/standalone/.next/server/chunks/210.js +6 -6
  126. package/.next/standalone/.next/server/chunks/2447.js +10 -5
  127. package/.next/standalone/.next/server/chunks/2471.js +17 -17
  128. package/.next/standalone/.next/server/chunks/3042.js +10 -8
  129. package/.next/standalone/.next/server/chunks/{4540.js → 309.js} +104 -38
  130. package/.next/standalone/.next/server/chunks/{2350.js → 3272.js} +104 -37
  131. package/.next/standalone/.next/server/chunks/3399.js +525 -525
  132. package/.next/standalone/.next/server/chunks/3524.js +150 -67
  133. package/.next/standalone/.next/server/chunks/4189.js +1 -1
  134. package/.next/standalone/.next/server/chunks/4508.js +2 -2
  135. package/.next/standalone/.next/server/chunks/46.js +73 -28
  136. package/.next/standalone/.next/server/chunks/5908.js +63 -42
  137. package/.next/standalone/.next/server/chunks/6142.js +10 -2
  138. package/.next/standalone/.next/server/chunks/6649.js +1 -1
  139. package/.next/standalone/.next/server/chunks/8461.js +10 -8
  140. package/.next/standalone/.next/server/chunks/9032.js +5 -5
  141. package/.next/standalone/.next/server/chunks/9164.js +435 -176
  142. package/.next/standalone/.next/server/chunks/9304.js +51 -12
  143. package/.next/standalone/.next/server/chunks/{423.js → 9590.js} +66 -21
  144. package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
  145. package/.next/standalone/.next/server/middleware.js +71 -18
  146. package/.next/standalone/.next/server/pages/404.html +2 -2
  147. package/.next/standalone/.next/server/pages/500.html +1 -1
  148. package/.next/standalone/.next/server/preview-props.json +3 -3
  149. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  150. package/.next/standalone/.next/static/chunks/app/{page-213a623b37226452.js → page-04748847c6ff866f.js} +171 -132
  151. package/.next/standalone/.next/static/css/{312542a5725ba0d5.css → 2669e8744cc8c212.css} +2 -2
  152. package/.next/standalone/docs/adoption/changesets.json +49 -0
  153. package/.next/standalone/package.json +1 -1
  154. package/CHANGELOG.md +19 -0
  155. package/app/api/v1/threads/[thread_id]/run/route.ts +0 -1
  156. package/components/chat/MessageBubble.tsx +12 -0
  157. package/components/integrations/NetworkSection.tsx +2 -2
  158. package/lib/agents/citation-checker.test.ts +40 -2
  159. package/lib/agents/citation-checker.ts +56 -11
  160. package/lib/agents/context-boundary.ts +5 -6
  161. package/lib/agents/instruction-edits.test.ts +120 -0
  162. package/lib/agents/instruction-edits.ts +65 -42
  163. package/lib/agents/prepare/request.ts +0 -2
  164. package/lib/agents/prepare/system-prompt.test.ts +10 -0
  165. package/lib/agents/prepare/system-prompt.ts +8 -2
  166. package/lib/agents/proposals.test.ts +76 -0
  167. package/lib/agents/proposals.ts +13 -5
  168. package/lib/agents/run-thread.auto-boundary.test.ts +125 -5
  169. package/lib/agents/run-thread.ts +24 -9
  170. package/lib/agents/sqlite-checkpoint-saver.test.ts +91 -0
  171. package/lib/agents/warm-summary-background.ts +22 -2
  172. package/lib/agents/warm-topics.test.ts +155 -1
  173. package/lib/agents/warm-topics.ts +27 -7
  174. package/lib/bridges/dispatcher.ts +1 -0
  175. package/lib/bridges/message-role.test.ts +81 -0
  176. package/lib/bridges/message-role.ts +23 -10
  177. package/lib/bridges/types.ts +6 -0
  178. package/lib/bridges/whatsapp-link.test.ts +32 -0
  179. package/lib/bridges/whatsapp-link.ts +21 -0
  180. package/lib/bridges/whatsapp.inbound.test.ts +239 -0
  181. package/lib/bridges/whatsapp.sender.test.ts +80 -1
  182. package/lib/bridges/whatsapp.ts +76 -38
  183. package/lib/pricing/snapshot.test.ts +70 -0
  184. package/lib/pricing/snapshot.ts +10 -2
  185. package/lib/proxy/dispatcher.test.ts +119 -1
  186. package/lib/proxy/dispatcher.ts +22 -9
  187. package/lib/stores/agent-configs.ts +10 -5
  188. package/lib/stores/bridges.test.ts +81 -0
  189. package/lib/stores/bridges.ts +9 -8
  190. package/lib/stores/proxy-config.test.ts +120 -0
  191. package/lib/stores/proxy-config.ts +22 -4
  192. package/lib/stores/threads.ts +12 -8
  193. package/lib/tools/communications/calendar.test.ts +43 -2
  194. package/lib/tools/communications/calendar.ts +2 -0
  195. package/lib/tools/communications/gmail.test.ts +51 -1
  196. package/lib/tools/communications/gmail.ts +44 -2
  197. package/lib/tools/communications/outlook-calendar.ts +2 -0
  198. package/lib/tools/communications/outlook.test.ts +33 -2
  199. package/lib/tools/communications/outlook.ts +2 -0
  200. package/lib/tools/filesystem/edit-match.test.ts +133 -0
  201. package/lib/tools/filesystem/edit-match.ts +7 -2
  202. package/lib/tools/support/result-refs.test.ts +131 -0
  203. package/lib/tools/support/result-refs.ts +41 -9
  204. package/lib/utils/source-link.test.ts +51 -0
  205. package/lib/utils/source-link.ts +45 -0
  206. package/package.json +1 -1
  207. /package/.next/standalone/.next/static/{bMRK5y3ruT7c3WtBfCQOG → hwujW4hR1b-r3k5WdMxZO}/_buildManifest.js +0 -0
  208. /package/.next/standalone/.next/static/{bMRK5y3ruT7c3WtBfCQOG → hwujW4hR1b-r3k5WdMxZO}/_ssgManifest.js +0 -0
@@ -232,6 +232,13 @@ module.exports = require("node:path");
232
232
 
233
233
  /***/ }),
234
234
 
235
+ /***/ 77030:
236
+ /***/ ((module) => {
237
+
238
+ module.exports = require("node:net");
239
+
240
+ /***/ }),
241
+
235
242
  /***/ 77598:
236
243
  /***/ ((module) => {
237
244
 
@@ -680,6 +680,13 @@ module.exports = require("node:path");
680
680
 
681
681
  /***/ }),
682
682
 
683
+ /***/ 77030:
684
+ /***/ ((module) => {
685
+
686
+ module.exports = require("node:net");
687
+
688
+ /***/ }),
689
+
683
690
  /***/ 77598:
684
691
  /***/ ((module) => {
685
692
 
@@ -676,6 +676,13 @@ module.exports = require("node:path");
676
676
 
677
677
  /***/ }),
678
678
 
679
+ /***/ 77030:
680
+ /***/ ((module) => {
681
+
682
+ module.exports = require("node:net");
683
+
684
+ /***/ }),
685
+
679
686
  /***/ 77598:
680
687
  /***/ ((module) => {
681
688
 
@@ -679,6 +679,13 @@ module.exports = require("node:path");
679
679
 
680
680
  /***/ }),
681
681
 
682
+ /***/ 77030:
683
+ /***/ ((module) => {
684
+
685
+ module.exports = require("node:net");
686
+
687
+ /***/ }),
688
+
682
689
  /***/ 77598:
683
690
  /***/ ((module) => {
684
691
 
@@ -676,6 +676,13 @@ module.exports = require("node:path");
676
676
 
677
677
  /***/ }),
678
678
 
679
+ /***/ 77030:
680
+ /***/ ((module) => {
681
+
682
+ module.exports = require("node:net");
683
+
684
+ /***/ }),
685
+
679
686
  /***/ 77598:
680
687
  /***/ ((module) => {
681
688
 
@@ -212,6 +212,13 @@ module.exports = require("node:path");
212
212
 
213
213
  /***/ }),
214
214
 
215
+ /***/ 77030:
216
+ /***/ ((module) => {
217
+
218
+ module.exports = require("node:net");
219
+
220
+ /***/ }),
221
+
215
222
  /***/ 77598:
216
223
  /***/ ((module) => {
217
224
 
@@ -676,6 +676,13 @@ module.exports = require("node:path");
676
676
 
677
677
  /***/ }),
678
678
 
679
+ /***/ 77030:
680
+ /***/ ((module) => {
681
+
682
+ module.exports = require("node:net");
683
+
684
+ /***/ }),
685
+
679
686
  /***/ 77598:
680
687
  /***/ ((module) => {
681
688
 
@@ -680,6 +680,13 @@ module.exports = require("node:path");
680
680
 
681
681
  /***/ }),
682
682
 
683
+ /***/ 77030:
684
+ /***/ ((module) => {
685
+
686
+ module.exports = require("node:net");
687
+
688
+ /***/ }),
689
+
683
690
  /***/ 77598:
684
691
  /***/ ((module) => {
685
692
 
@@ -656,6 +656,13 @@ module.exports = require("node:path");
656
656
 
657
657
  /***/ }),
658
658
 
659
+ /***/ 77030:
660
+ /***/ ((module) => {
661
+
662
+ module.exports = require("node:net");
663
+
664
+ /***/ }),
665
+
659
666
  /***/ 77598:
660
667
  /***/ ((module) => {
661
668
 
@@ -801,6 +801,13 @@ module.exports = require("node:path");
801
801
 
802
802
  /***/ }),
803
803
 
804
+ /***/ 77030:
805
+ /***/ ((module) => {
806
+
807
+ module.exports = require("node:net");
808
+
809
+ /***/ }),
810
+
804
811
  /***/ 77598:
805
812
  /***/ ((module) => {
806
813
 
@@ -777,6 +777,13 @@ module.exports = require("node:path");
777
777
 
778
778
  /***/ }),
779
779
 
780
+ /***/ 77030:
781
+ /***/ ((module) => {
782
+
783
+ module.exports = require("node:net");
784
+
785
+ /***/ }),
786
+
780
787
  /***/ 77598:
781
788
  /***/ ((module) => {
782
789
 
@@ -786,6 +786,13 @@ module.exports = require("node:path");
786
786
 
787
787
  /***/ }),
788
788
 
789
+ /***/ 77030:
790
+ /***/ ((module) => {
791
+
792
+ module.exports = require("node:net");
793
+
794
+ /***/ }),
795
+
789
796
  /***/ 77598:
790
797
  /***/ ((module) => {
791
798
 
@@ -466,12 +466,17 @@ function upsertAgentConfigTransaction(input) {
466
466
  const db = (0,_lib_db__WEBPACK_IMPORTED_MODULE_0__/* .getDb */ .Lf)();
467
467
  const existing = getAgentConfig(input.id);
468
468
  const created_at = existing?.created_at ?? t;
469
- const mbti = input.adaptive_mbti ?? toMbti(existing?.adaptive_mbti) ?? "INTJ";
469
+ const existingMbti = toMbti(existing?.adaptive_mbti);
470
+ const mbti = input.adaptive_mbti ?? existingMbti ?? "INTJ";
470
471
  const preset = _lib_agents_adaptive_persona_presets__WEBPACK_IMPORTED_MODULE_2__/* .MBTI_PRESETS */ .e[mbti];
471
- const strength = input.adaptive_persona_strength ?? preset.strength;
472
- const empathy = input.adaptive_empathy ?? preset.empathy;
473
- const expressiveness = input.adaptive_expressiveness ?? preset.expressiveness;
474
- const verbosity = input.adaptive_verbosity ?? preset.verbosity;
472
+ // Omitted sliders keep their tuned values; they only fall back to the
473
+ // preset when the type changes or the agent is new. Otherwise every
474
+ // partial update (approved proposals, tool edits) reset them.
475
+ const keepTuned = existing !== null && existing !== undefined && mbti === existingMbti;
476
+ const strength = input.adaptive_persona_strength ?? (keepTuned ? existing.adaptive_persona_strength : preset.strength);
477
+ const empathy = input.adaptive_empathy ?? (keepTuned ? existing.adaptive_empathy : preset.empathy);
478
+ const expressiveness = input.adaptive_expressiveness ?? (keepTuned ? existing.adaptive_expressiveness : preset.expressiveness);
479
+ const verbosity = input.adaptive_verbosity ?? (keepTuned ? existing.adaptive_verbosity : preset.verbosity);
475
480
  if (input.is_default) db.prepare("UPDATE agent_configs SET is_default=0").run();
476
481
  // harness_id: explicit `undefined` means "keep existing"; explicit `null`
477
482
  // means "use the global default". Empty string is normalised to null too,
@@ -1153,6 +1158,13 @@ module.exports = require("node:path");
1153
1158
 
1154
1159
  /***/ }),
1155
1160
 
1161
+ /***/ 77030:
1162
+ /***/ ((module) => {
1163
+
1164
+ module.exports = require("node:net");
1165
+
1166
+ /***/ }),
1167
+
1156
1168
  /***/ 77598:
1157
1169
  /***/ ((module) => {
1158
1170
 
@@ -833,6 +833,13 @@ module.exports = require("node:path");
833
833
 
834
834
  /***/ }),
835
835
 
836
+ /***/ 77030:
837
+ /***/ ((module) => {
838
+
839
+ module.exports = require("node:net");
840
+
841
+ /***/ }),
842
+
836
843
  /***/ 77598:
837
844
  /***/ ((module) => {
838
845
 
@@ -635,6 +635,13 @@ module.exports = require("node:path");
635
635
 
636
636
  /***/ }),
637
637
 
638
+ /***/ 77030:
639
+ /***/ ((module) => {
640
+
641
+ module.exports = require("node:net");
642
+
643
+ /***/ }),
644
+
638
645
  /***/ 77598:
639
646
  /***/ ((module) => {
640
647
 
@@ -1035,6 +1035,13 @@ module.exports = require("node:path");
1035
1035
 
1036
1036
  /***/ }),
1037
1037
 
1038
+ /***/ 77030:
1039
+ /***/ ((module) => {
1040
+
1041
+ module.exports = require("node:net");
1042
+
1043
+ /***/ }),
1044
+
1038
1045
  /***/ 77598:
1039
1046
  /***/ ((module) => {
1040
1047
 
@@ -879,6 +879,13 @@ module.exports = require("node:path");
879
879
 
880
880
  /***/ }),
881
881
 
882
+ /***/ 77030:
883
+ /***/ ((module) => {
884
+
885
+ module.exports = require("node:net");
886
+
887
+ /***/ }),
888
+
882
889
  /***/ 77598:
883
890
  /***/ ((module) => {
884
891
 
@@ -378,6 +378,13 @@ module.exports = require("node:path");
378
378
 
379
379
  /***/ }),
380
380
 
381
+ /***/ 77030:
382
+ /***/ ((module) => {
383
+
384
+ module.exports = require("node:net");
385
+
386
+ /***/ }),
387
+
381
388
  /***/ 77598:
382
389
  /***/ ((module) => {
383
390
 
@@ -914,6 +914,13 @@ module.exports = require("node:path");
914
914
 
915
915
  /***/ }),
916
916
 
917
+ /***/ 77030:
918
+ /***/ ((module) => {
919
+
920
+ module.exports = require("node:net");
921
+
922
+ /***/ }),
923
+
917
924
  /***/ 77598:
918
925
  /***/ ((module) => {
919
926
 
@@ -810,6 +810,13 @@ module.exports = require("node:path");
810
810
 
811
811
  /***/ }),
812
812
 
813
+ /***/ 77030:
814
+ /***/ ((module) => {
815
+
816
+ module.exports = require("node:net");
817
+
818
+ /***/ }),
819
+
813
820
  /***/ 77598:
814
821
  /***/ ((module) => {
815
822
 
@@ -291,6 +291,13 @@ module.exports = require("node:path");
291
291
 
292
292
  /***/ }),
293
293
 
294
+ /***/ 77030:
295
+ /***/ ((module) => {
296
+
297
+ module.exports = require("node:net");
298
+
299
+ /***/ }),
300
+
294
301
  /***/ 77169:
295
302
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
296
303
 
@@ -845,12 +845,17 @@ function upsertAgentConfigTransaction(input) {
845
845
  const db = (0,_lib_db__WEBPACK_IMPORTED_MODULE_0__/* .getDb */ .Lf)();
846
846
  const existing = getAgentConfig(input.id);
847
847
  const created_at = existing?.created_at ?? t;
848
- const mbti = input.adaptive_mbti ?? toMbti(existing?.adaptive_mbti) ?? "INTJ";
848
+ const existingMbti = toMbti(existing?.adaptive_mbti);
849
+ const mbti = input.adaptive_mbti ?? existingMbti ?? "INTJ";
849
850
  const preset = _lib_agents_adaptive_persona_presets__WEBPACK_IMPORTED_MODULE_2__/* .MBTI_PRESETS */ .e[mbti];
850
- const strength = input.adaptive_persona_strength ?? preset.strength;
851
- const empathy = input.adaptive_empathy ?? preset.empathy;
852
- const expressiveness = input.adaptive_expressiveness ?? preset.expressiveness;
853
- const verbosity = input.adaptive_verbosity ?? preset.verbosity;
851
+ // Omitted sliders keep their tuned values; they only fall back to the
852
+ // preset when the type changes or the agent is new. Otherwise every
853
+ // partial update (approved proposals, tool edits) reset them.
854
+ const keepTuned = existing !== null && existing !== undefined && mbti === existingMbti;
855
+ const strength = input.adaptive_persona_strength ?? (keepTuned ? existing.adaptive_persona_strength : preset.strength);
856
+ const empathy = input.adaptive_empathy ?? (keepTuned ? existing.adaptive_empathy : preset.empathy);
857
+ const expressiveness = input.adaptive_expressiveness ?? (keepTuned ? existing.adaptive_expressiveness : preset.expressiveness);
858
+ const verbosity = input.adaptive_verbosity ?? (keepTuned ? existing.adaptive_verbosity : preset.verbosity);
854
859
  if (input.is_default) db.prepare("UPDATE agent_configs SET is_default=0").run();
855
860
  // harness_id: explicit `undefined` means "keep existing"; explicit `null`
856
861
  // means "use the global default". Empty string is normalised to null too,
@@ -1088,6 +1093,13 @@ module.exports = require("node:path");
1088
1093
 
1089
1094
  /***/ }),
1090
1095
 
1096
+ /***/ 77030:
1097
+ /***/ ((module) => {
1098
+
1099
+ module.exports = require("node:net");
1100
+
1101
+ /***/ }),
1102
+
1091
1103
  /***/ 77598:
1092
1104
  /***/ ((module) => {
1093
1105
 
@@ -361,6 +361,13 @@ module.exports = require("node:path");
361
361
 
362
362
  /***/ }),
363
363
 
364
+ /***/ 77030:
365
+ /***/ ((module) => {
366
+
367
+ module.exports = require("node:net");
368
+
369
+ /***/ }),
370
+
364
371
  /***/ 77598:
365
372
  /***/ ((module) => {
366
373
 
@@ -1043,12 +1043,17 @@ function upsertAgentConfigTransaction(input) {
1043
1043
  const db = (0,_lib_db__WEBPACK_IMPORTED_MODULE_0__/* .getDb */ .Lf)();
1044
1044
  const existing = getAgentConfig(input.id);
1045
1045
  const created_at = existing?.created_at ?? t;
1046
- const mbti = input.adaptive_mbti ?? toMbti(existing?.adaptive_mbti) ?? "INTJ";
1046
+ const existingMbti = toMbti(existing?.adaptive_mbti);
1047
+ const mbti = input.adaptive_mbti ?? existingMbti ?? "INTJ";
1047
1048
  const preset = _lib_agents_adaptive_persona_presets__WEBPACK_IMPORTED_MODULE_2__/* .MBTI_PRESETS */ .e[mbti];
1048
- const strength = input.adaptive_persona_strength ?? preset.strength;
1049
- const empathy = input.adaptive_empathy ?? preset.empathy;
1050
- const expressiveness = input.adaptive_expressiveness ?? preset.expressiveness;
1051
- const verbosity = input.adaptive_verbosity ?? preset.verbosity;
1049
+ // Omitted sliders keep their tuned values; they only fall back to the
1050
+ // preset when the type changes or the agent is new. Otherwise every
1051
+ // partial update (approved proposals, tool edits) reset them.
1052
+ const keepTuned = existing !== null && existing !== undefined && mbti === existingMbti;
1053
+ const strength = input.adaptive_persona_strength ?? (keepTuned ? existing.adaptive_persona_strength : preset.strength);
1054
+ const empathy = input.adaptive_empathy ?? (keepTuned ? existing.adaptive_empathy : preset.empathy);
1055
+ const expressiveness = input.adaptive_expressiveness ?? (keepTuned ? existing.adaptive_expressiveness : preset.expressiveness);
1056
+ const verbosity = input.adaptive_verbosity ?? (keepTuned ? existing.adaptive_verbosity : preset.verbosity);
1052
1057
  if (input.is_default) db.prepare("UPDATE agent_configs SET is_default=0").run();
1053
1058
  // harness_id: explicit `undefined` means "keep existing"; explicit `null`
1054
1059
  // means "use the global default". Empty string is normalised to null too,
@@ -1421,6 +1426,13 @@ module.exports = require("node:path");
1421
1426
 
1422
1427
  /***/ }),
1423
1428
 
1429
+ /***/ 77030:
1430
+ /***/ ((module) => {
1431
+
1432
+ module.exports = require("node:net");
1433
+
1434
+ /***/ }),
1435
+
1424
1436
  /***/ 77598:
1425
1437
  /***/ ((module) => {
1426
1438
 
@@ -599,12 +599,17 @@ function upsertAgentConfigTransaction(input) {
599
599
  const db = (0,_lib_db__WEBPACK_IMPORTED_MODULE_0__/* .getDb */ .Lf)();
600
600
  const existing = getAgentConfig(input.id);
601
601
  const created_at = existing?.created_at ?? t;
602
- const mbti = input.adaptive_mbti ?? toMbti(existing?.adaptive_mbti) ?? "INTJ";
602
+ const existingMbti = toMbti(existing?.adaptive_mbti);
603
+ const mbti = input.adaptive_mbti ?? existingMbti ?? "INTJ";
603
604
  const preset = _lib_agents_adaptive_persona_presets__WEBPACK_IMPORTED_MODULE_2__/* .MBTI_PRESETS */ .e[mbti];
604
- const strength = input.adaptive_persona_strength ?? preset.strength;
605
- const empathy = input.adaptive_empathy ?? preset.empathy;
606
- const expressiveness = input.adaptive_expressiveness ?? preset.expressiveness;
607
- const verbosity = input.adaptive_verbosity ?? preset.verbosity;
605
+ // Omitted sliders keep their tuned values; they only fall back to the
606
+ // preset when the type changes or the agent is new. Otherwise every
607
+ // partial update (approved proposals, tool edits) reset them.
608
+ const keepTuned = existing !== null && existing !== undefined && mbti === existingMbti;
609
+ const strength = input.adaptive_persona_strength ?? (keepTuned ? existing.adaptive_persona_strength : preset.strength);
610
+ const empathy = input.adaptive_empathy ?? (keepTuned ? existing.adaptive_empathy : preset.empathy);
611
+ const expressiveness = input.adaptive_expressiveness ?? (keepTuned ? existing.adaptive_expressiveness : preset.expressiveness);
612
+ const verbosity = input.adaptive_verbosity ?? (keepTuned ? existing.adaptive_verbosity : preset.verbosity);
608
613
  if (input.is_default) db.prepare("UPDATE agent_configs SET is_default=0").run();
609
614
  // harness_id: explicit `undefined` means "keep existing"; explicit `null`
610
615
  // means "use the global default". Empty string is normalised to null too,
@@ -1407,6 +1412,13 @@ module.exports = require("node:path");
1407
1412
 
1408
1413
  /***/ }),
1409
1414
 
1415
+ /***/ 77030:
1416
+ /***/ ((module) => {
1417
+
1418
+ module.exports = require("node:net");
1419
+
1420
+ /***/ }),
1421
+
1410
1422
  /***/ 77598:
1411
1423
  /***/ ((module) => {
1412
1424
 
@@ -782,6 +782,13 @@ module.exports = require("node:path");
782
782
 
783
783
  /***/ }),
784
784
 
785
+ /***/ 77030:
786
+ /***/ ((module) => {
787
+
788
+ module.exports = require("node:net");
789
+
790
+ /***/ }),
791
+
785
792
  /***/ 77598:
786
793
  /***/ ((module) => {
787
794
 
@@ -694,6 +694,13 @@ module.exports = require("node:path");
694
694
 
695
695
  /***/ }),
696
696
 
697
+ /***/ 77030:
698
+ /***/ ((module) => {
699
+
700
+ module.exports = require("node:net");
701
+
702
+ /***/ }),
703
+
697
704
  /***/ 77598:
698
705
  /***/ ((module) => {
699
706
 
@@ -804,6 +804,13 @@ module.exports = require("node:path");
804
804
 
805
805
  /***/ }),
806
806
 
807
+ /***/ 77030:
808
+ /***/ ((module) => {
809
+
810
+ module.exports = require("node:net");
811
+
812
+ /***/ }),
813
+
807
814
  /***/ 77598:
808
815
  /***/ ((module) => {
809
816
 
@@ -711,6 +711,13 @@ module.exports = require("node:path");
711
711
 
712
712
  /***/ }),
713
713
 
714
+ /***/ 77030:
715
+ /***/ ((module) => {
716
+
717
+ module.exports = require("node:net");
718
+
719
+ /***/ }),
720
+
714
721
  /***/ 77598:
715
722
  /***/ ((module) => {
716
723
 
@@ -340,6 +340,13 @@ module.exports = require("node:path");
340
340
 
341
341
  /***/ }),
342
342
 
343
+ /***/ 77030:
344
+ /***/ ((module) => {
345
+
346
+ module.exports = require("node:net");
347
+
348
+ /***/ }),
349
+
343
350
  /***/ 77598:
344
351
  /***/ ((module) => {
345
352
 
@@ -1251,6 +1251,13 @@ module.exports = require("node:path");
1251
1251
 
1252
1252
  /***/ }),
1253
1253
 
1254
+ /***/ 77030:
1255
+ /***/ ((module) => {
1256
+
1257
+ module.exports = require("node:net");
1258
+
1259
+ /***/ }),
1260
+
1254
1261
  /***/ 77598:
1255
1262
  /***/ ((module) => {
1256
1263
 
@@ -1212,6 +1212,13 @@ module.exports = require("node:path");
1212
1212
 
1213
1213
  /***/ }),
1214
1214
 
1215
+ /***/ 77030:
1216
+ /***/ ((module) => {
1217
+
1218
+ module.exports = require("node:net");
1219
+
1220
+ /***/ }),
1221
+
1215
1222
  /***/ 77598:
1216
1223
  /***/ ((module) => {
1217
1224
 
@@ -372,12 +372,13 @@ function applyUpdateAgentTools(payload) {
372
372
  ok: false,
373
373
  detail: "mode must be add or replace"
374
374
  };
375
+ const requested = p.tools.filter((tool)=>typeof tool === "string").map((tool)=>tool.trim()).filter(Boolean);
375
376
  const nextTools = mode === "replace" ? [
376
- ...new Set(p.tools)
377
+ ...new Set(requested)
377
378
  ] : [
378
379
  ...new Set([
379
380
  ...before,
380
- ...p.tools
381
+ ...requested
381
382
  ])
382
383
  ];
383
384
  (0,agent_configs/* upsertAgentConfig */.BM)({
@@ -406,11 +407,19 @@ function applyUpdateAgent(payload) {
406
407
  ok: false,
407
408
  detail: "agent_id required"
408
409
  };
409
- if (p.warm_summary_limit !== undefined && (!Number.isInteger(p.warm_summary_limit) || p.warm_summary_limit < 0)) {
410
- return {
411
- ok: false,
412
- detail: "warm_summary_limit must be a nonnegative integer"
413
- };
410
+ for (const field of [
411
+ "warm_summary_limit",
412
+ "hot_turn_limit",
413
+ "history_limit",
414
+ "history_window_hours"
415
+ ]){
416
+ const value = p[field];
417
+ if (value !== undefined && (!Number.isInteger(value) || value < 0)) {
418
+ return {
419
+ ok: false,
420
+ detail: `${field} must be a nonnegative integer`
421
+ };
422
+ }
414
423
  }
415
424
  const editModes = [
416
425
  p.instructions !== undefined,
@@ -465,6 +474,7 @@ function applyUpdateAgent(payload) {
465
474
  model_config_name: existing.model_config_name,
466
475
  history_limit: p.history_limit ?? existing.history_limit,
467
476
  history_window_hours: p.history_window_hours ?? existing.history_window_hours,
477
+ hot_turn_limit: p.hot_turn_limit,
468
478
  warm_summary_limit: p.warm_summary_limit ?? existing.warm_summary_limit,
469
479
  harness_id: p.harness_id
470
480
  });
@@ -1382,12 +1392,17 @@ function upsertAgentConfigTransaction(input) {
1382
1392
  const db = (0,_lib_db__WEBPACK_IMPORTED_MODULE_0__/* .getDb */ .Lf)();
1383
1393
  const existing = getAgentConfig(input.id);
1384
1394
  const created_at = existing?.created_at ?? t;
1385
- const mbti = input.adaptive_mbti ?? toMbti(existing?.adaptive_mbti) ?? "INTJ";
1395
+ const existingMbti = toMbti(existing?.adaptive_mbti);
1396
+ const mbti = input.adaptive_mbti ?? existingMbti ?? "INTJ";
1386
1397
  const preset = _lib_agents_adaptive_persona_presets__WEBPACK_IMPORTED_MODULE_2__/* .MBTI_PRESETS */ .e[mbti];
1387
- const strength = input.adaptive_persona_strength ?? preset.strength;
1388
- const empathy = input.adaptive_empathy ?? preset.empathy;
1389
- const expressiveness = input.adaptive_expressiveness ?? preset.expressiveness;
1390
- const verbosity = input.adaptive_verbosity ?? preset.verbosity;
1398
+ // Omitted sliders keep their tuned values; they only fall back to the
1399
+ // preset when the type changes or the agent is new. Otherwise every
1400
+ // partial update (approved proposals, tool edits) reset them.
1401
+ const keepTuned = existing !== null && existing !== undefined && mbti === existingMbti;
1402
+ const strength = input.adaptive_persona_strength ?? (keepTuned ? existing.adaptive_persona_strength : preset.strength);
1403
+ const empathy = input.adaptive_empathy ?? (keepTuned ? existing.adaptive_empathy : preset.empathy);
1404
+ const expressiveness = input.adaptive_expressiveness ?? (keepTuned ? existing.adaptive_expressiveness : preset.expressiveness);
1405
+ const verbosity = input.adaptive_verbosity ?? (keepTuned ? existing.adaptive_verbosity : preset.verbosity);
1391
1406
  if (input.is_default) db.prepare("UPDATE agent_configs SET is_default=0").run();
1392
1407
  // harness_id: explicit `undefined` means "keep existing"; explicit `null`
1393
1408
  // means "use the global default". Empty string is normalised to null too,
@@ -797,6 +797,13 @@ module.exports = require("node:path");
797
797
 
798
798
  /***/ }),
799
799
 
800
+ /***/ 77030:
801
+ /***/ ((module) => {
802
+
803
+ module.exports = require("node:net");
804
+
805
+ /***/ }),
806
+
800
807
  /***/ 77598:
801
808
  /***/ ((module) => {
802
809