cli-jaw 2.17.6 → 2.17.7

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 (81) hide show
  1. package/dist/bin/commands/init.js +13 -1
  2. package/dist/bin/commands/init.js.map +1 -1
  3. package/dist/bin/commands/launchd.js +2 -1
  4. package/dist/bin/commands/launchd.js.map +1 -1
  5. package/dist/bin/commands/slack.js +26 -5
  6. package/dist/bin/commands/slack.js.map +1 -1
  7. package/dist/src/agent/cursor-runtime.js +122 -1
  8. package/dist/src/agent/cursor-runtime.js.map +1 -1
  9. package/dist/src/agent/events/helpers.js +13 -1
  10. package/dist/src/agent/events/helpers.js.map +1 -1
  11. package/dist/src/agent/jwc-event-mapper.js +7 -1
  12. package/dist/src/agent/jwc-event-mapper.js.map +1 -1
  13. package/dist/src/agent/spawn/queue.js +20 -3
  14. package/dist/src/agent/spawn/queue.js.map +1 -1
  15. package/dist/src/agent/spawn.js +12 -1
  16. package/dist/src/agent/spawn.js.map +1 -1
  17. package/dist/src/core/config.js +12 -7
  18. package/dist/src/core/config.js.map +1 -1
  19. package/dist/src/core/launchd-plist.js +21 -1
  20. package/dist/src/core/launchd-plist.js.map +1 -1
  21. package/dist/src/manager/launchd-service.js +2 -1
  22. package/dist/src/manager/launchd-service.js.map +1 -1
  23. package/dist/src/messaging/send.js +34 -0
  24. package/dist/src/messaging/send.js.map +1 -1
  25. package/dist/src/orchestrator/scope.js +6 -0
  26. package/dist/src/orchestrator/scope.js.map +1 -1
  27. package/dist/src/prompt/templates/a1-system.md +1 -1
  28. package/dist/src/slack/bot.js +20 -8
  29. package/dist/src/slack/bot.js.map +1 -1
  30. package/dist/src/slack/events.js +13 -7
  31. package/dist/src/slack/events.js.map +1 -1
  32. package/dist/src/slack/manifest.js +14 -0
  33. package/dist/src/slack/manifest.js.map +1 -1
  34. package/dist/src/slack/thread-tracker.js +41 -10
  35. package/dist/src/slack/thread-tracker.js.map +1 -1
  36. package/package.json +1 -1
  37. package/public/dist/assets/{Agent-DtgCvkB_.js → Agent-CVt8RCVj.js} +1 -1
  38. package/public/dist/assets/{Heartbeat-BeAP2bMO.js → Heartbeat-BeGhWW4a.js} +1 -1
  39. package/public/dist/assets/{Memory-frrIhLly.js → Memory-I30i-svi.js} +1 -1
  40. package/public/dist/assets/{ModelProvider-DqUvwyZ6.js → ModelProvider-B96RCkFb.js} +1 -1
  41. package/public/dist/assets/agent-meta-DrYdO9lB.js +1 -0
  42. package/public/dist/assets/{app-DPVu4Dwr.js → app-CLHmSSvs.js} +4 -4
  43. package/public/dist/assets/bgtask-badge-B-hXN7ic.js +1 -0
  44. package/public/dist/assets/{bgtask-badge-B2HfP_ZC.js → bgtask-badge-BktG0K_s.js} +1 -1
  45. package/public/dist/assets/constants-DK-21dMG.js +1 -0
  46. package/public/dist/assets/{employees-Bi4vau10.js → employees-Djy2E_CT.js} +1 -1
  47. package/public/dist/assets/{iframe-renderer-BjcFiUaa.js → iframe-renderer-BPikF1EP.js} +2 -2
  48. package/public/dist/assets/iframe-renderer-CgEvniVg.js +1 -0
  49. package/public/dist/assets/{manager-BTpvAFwX.js → manager-CBSvWXYT.js} +1 -1
  50. package/public/dist/assets/memory-C6mWs9-n.js +1 -0
  51. package/public/dist/assets/{memory-CDxbYIao.js → memory-DwCO8S_I.js} +1 -1
  52. package/public/dist/assets/{message-history-CXFkl6Vm.js → message-history-CMpbXj-4.js} +1 -1
  53. package/public/dist/assets/message-history-p99CsEH1.js +1 -0
  54. package/public/dist/assets/{render-CGAi_hV3.js → render-DdkZ0dBh.js} +1 -1
  55. package/public/dist/assets/settings-BhjKBEk9.js +1 -0
  56. package/public/dist/assets/{settings-BheEzOlI.js → settings-DDwT8XYV.js} +1 -1
  57. package/public/dist/assets/settings-core-88nMf3Y_.js +1 -0
  58. package/public/dist/assets/{settings-core-I3nD3Wih.js → settings-core-wgDdl-cI.js} +1 -1
  59. package/public/dist/assets/{sidebar-CooQJw_C.js → sidebar-DjtStOpw.js} +3 -3
  60. package/public/dist/assets/{skills-BCWdrxYX.js → skills-C_EQ7v4d.js} +1 -1
  61. package/public/dist/assets/skills-dPRlbNnZ.js +1 -0
  62. package/public/dist/assets/slash-commands-B0DxTVwT.js +1 -0
  63. package/public/dist/assets/{slash-commands-CXPhtxmU.js → slash-commands-neV3zrKO.js} +1 -1
  64. package/public/dist/assets/{trace-drawer-RBXkAtzT.js → trace-drawer-CyabEhtE.js} +1 -1
  65. package/public/dist/assets/ui--fPGTPJl.js +1 -0
  66. package/public/dist/assets/{ui-BC1suPnW.js → ui-BwfqQGIZ.js} +1 -1
  67. package/public/dist/index.html +1 -1
  68. package/public/dist/manager/index.html +1 -1
  69. package/public/js/constants.ts +2 -1
  70. package/public/manager/src/settings/pages/components/agent/agent-meta.ts +2 -1
  71. package/public/dist/assets/agent-meta-Bl-Q0EgC.js +0 -1
  72. package/public/dist/assets/bgtask-badge-BclDYtSs.js +0 -1
  73. package/public/dist/assets/constants-Bgyd1eDd.js +0 -1
  74. package/public/dist/assets/iframe-renderer-COoNu-3c.js +0 -1
  75. package/public/dist/assets/memory-iiBI0icy.js +0 -1
  76. package/public/dist/assets/message-history-B8ruDmxg.js +0 -1
  77. package/public/dist/assets/settings-D-0A6wJC.js +0 -1
  78. package/public/dist/assets/settings-core-BIuCCVxm.js +0 -1
  79. package/public/dist/assets/skills-COc5smja.js +0 -1
  80. package/public/dist/assets/slash-commands-CMIO_PoS.js +0 -1
  81. package/public/dist/assets/ui-DKPvpML4.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../../src/slack/bot.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,oEAAoE;AACpE,+EAA+E;AAC/E,+EAA+E;AAC/E,qDAAqD;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAA0B,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACH,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAC7D,gBAAgB,EAAE,mBAAmB,GACxC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAiD,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,uBAAuB,EAA0B,MAAM,aAAa,CAAC;AACnH,OAAO,EACH,oBAAoB,EAAE,sBAAsB,EAC5C,mBAAmB,EAAE,oBAAoB,EACzC,qBAAqB,EAAE,yBAAyB,GACnD,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAwB,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,aAAa,EAAE,mBAAmB,EAAwB,MAAM,cAAc,CAAC;AACpQ,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAA0B,MAAM,iCAAiC,CAAC;AACxG,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,2BAA2B,EAAkC,MAAM,sCAAsC,CAAC;AAClK,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAElF,IAAI,YAAY,GAA6B,IAAI,CAAC;AAClD,IAAI,gBAAgB,GAA6B,IAAI,CAAC;AACtD,IAAI,UAAU,GAAkB,IAAI,CAAC;AACrC,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAc,CAAC;AAClD;;;;GAIG;AACH,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAC5B;;;;GAIG;AACH,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAC/B,IAAI,oBAAoB,GAAqC,IAAI,CAAC;AAClE,SAAS,wBAAwB;IAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAgB,EAAE,CAAC,CAAC;IAChE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,SAAS,CAAC;AACrB,CAAC;AACD,MAAM,UAAU,kBAAkB,KAAoB,OAAO,UAAU,CAAC,CAAC,CAAC;AAC1E,MAAM,UAAU,yBAAyB,CAAC,KAAoB,IAAU,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;AAC7F,MAAM,UAAU,uBAAuB;IACnC,OAAO,YAAY,EAAE,QAAQ,EAAE,IAAI,cAAc,CAAC;AACtD,CAAC;AAED,SAAS,aAAa,KAAK,OAAO,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAE9E,SAAS,UAAU;IACf,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO;QACH,UAAU;QACV,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC;QAChC,WAAW,EAAE,EAAE,CAAC,WAAW,KAAK,KAAK;QACrC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAsB,CAAC,CAAC,CAAC,EAAE;QACzE,gEAAgE;QAChE,6DAA6D;QAC7D,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,KAAK,IAAI;QACtD,oBAAoB,EAAE,oBAAoB;KAC7C,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAwB;IAC9C,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,KAAK,KAAK,CAAC;IACjE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IACzC,OAAO,iBAAiB,CAAC,KAAK,CAAC,OAAiB,EAAE;QAC9C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC,CAAC;AACP,CAAC;AAED,uDAAuD;AAEvD,KAAK,UAAU,gBAAgB,CAC3B,MAAoB,EACpB,MAAc,EACd,UAAkB,EAClB,MAAmB,EACnB,SAII,EAAE;IAEN,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO;IAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/B,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO;IAC3B,sEAAsE;IACtE,4EAA4E;IAC5E,2EAA2E;IAC3E,oCAAoC;IACpC,IAAI,MAAM,CAAC,qBAAqB,KAAK,SAAS;WACvC,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAClD,OAAO;IACX,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC;QACzB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM;QAC/C,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,QAAQ,EAAE,KAAK,EAAE,GAAoB,EAAE,EAAE;YACrC,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACrC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,sBAAsB,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAChE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,IAA6B,EAAE,EAAE;oBACpE,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,YAAY;wBAAE,OAAO;oBAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,OAAO;wBAAE,OAAO;oBACzD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,wBAAwB,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;oBACzF,IAAI,IAAI;wBAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC,CAAC;gBACF,IAAI,QAAQ;oBAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;gBACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,gBAAgB,CACtC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,EACtD,GAAG,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE;oBAChC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS;oBACzD,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtD,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI;iBACxE,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;oBAClB,IAAI,CAAC,QAAQ;wBAAE,OAAO;oBACtB,uBAAuB,CAAC,eAAe,CAAC,CAAC;oBACzC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,CAAC,CAAC,CACL,CAAC,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC5D,4DAA4D;gBAC5D,0DAA0D;gBAC1D,IAAI,UAAU,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACnC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC5C,GAAG,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,QAAQ,KAAK,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YACzF,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACpB,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9C,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,YAAa,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9F,CAAC;QACL,CAAC;KACJ,CAAC,CAAC;IACH,0EAA0E;IAC1E,yEAAyE;IACzE,oDAAoD;IACpD,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU;QAAE,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvF,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEhF,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,qCAAqC,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,YAA2C,CAAC;QAChD,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,YAAY,CAAC,YAAY,CAAC,CAAC;YAC3B,uBAAuB,CAAC,YAAY,CAAC,CAAC;YACtC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,KAAK,EAAE,IAAY,EAAE,IAA6B,EAAE,EAAE;YACvE,IAAI,IAAI,KAAK,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,OAAO;mBACtE,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,6DAA6D;gBAC7D,IAAI,QAAQ;oBAAE,OAAO;gBACrB,OAAO,EAAE,CAAC;gBACV,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClC,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClE,IAAI,gBAAgB,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACzC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAChD,CAAC;QACL,CAAC,CAAC;QACF,oEAAoE;QACpE,mEAAmE;QACnE,4BAA4B;QAC5B,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACnC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAC/F,OAAO;IACX,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/B,kEAAkE;QAClE,oEAAoE;QACpE,4DAA4D;QAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YAChD,OAAO;QACX,CAAC;QACD,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO;IACX,CAAC;AAEL,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAkC,EAAE,SAAS,GAAG,KAAK;IACvF,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,qBAAqB,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACvG,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,4BAA4B,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACxH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,KAAwB,EACxB,MAAoB,EACpB,IAAY,EACZ,MAAmB,EACnB,OAMI,EAAE;IAEN,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,wCAAwC;IACxC,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,CAAC;QACD,MAAM,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;YAC/D,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,oBAAoB,CACzF,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,IAAI,CAAC,aAAc,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,CAC3F,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;YAAS,CAAC;QACP,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACjE,qBAAqB,CACjB,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CACrF,CAAC;QACN,CAAC;IACL,CAAC;AACL,CAAC;AAED,KAAK,UAAU,oBAAoB,CAC/B,KAAwB,EACxB,MAAoB,EACpB,IAAY,EACZ,MAAmB,EACnB,IAMC,EACD,cAA0B;IAE1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,4EAA4E;IAC5E,sDAAsD;IACtD,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACjE,2EAA2E;IAC3E,yEAAyE;IACzE,KAAK,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACpF,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO;QAC3B,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;QAC/E,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,sBAAsB,QAAQ,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,OAAO,GAAG,4BAA4B,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAChF,IAAI,OAAO;YAAE,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAChF,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO;QAC1B,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QACtE,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;YAC5B,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE;YACzC,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO;IACtC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC;IACvC,gEAAgE;IAChE,oEAAoE;IACpE,sEAAsE;IACtE,+CAA+C;IAC/C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5F,wEAAwE;QACxE,kEAAkE;QAClE,mBAAmB;QACnB,MAAM,GAAG,KAAK;YACV,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC;YAClC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1C,wEAAwE;QACxE,0EAA0E;QAC1E,WAAW,GAAG,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;QACxD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,IAAI,CAAC,qBAAqB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9F,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAExC,KAAK,UAAU,wBAAwB,CACnC,KAAwB,EAAE,QAAuB,EAAE,MAAmB,EACtE,OAAqE,EAAE,EACvE,iBAA6B,GAAG,EAAE,GAAG,CAAC;IAEtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IACpC,4EAA4E;IAC5E,gCAAgC;IAChC,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,KAAK,KAAK;QAAE,OAAO,EAAE,CAAC;IAChE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC,KAAK,CAAC;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IAEvC,MAAM,IAAI,GAAG,CAAC,KAAK,IAAqB,EAAE;QACtC,oEAAoE;QACpE,sCAAsC;QACtC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC7C,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC3D,QAAQ;gBACJ,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBACjE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;SACnC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7F,MAAM,KAAK,GAAG,sBAAsB,CAAC;YACjC,QAAQ;YACR,YAAY;YACZ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,UAAU;SACb,CAAC,CAAC;QACH,yEAAyE;QACzE,oEAAoE;QACpE,wEAAwE;QACxE,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC;QACrF,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM;YAAE,OAAO,KAAK,CAAC;QACnF,oEAAoE;QACpE,4CAA4C;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,SAAS,GAAG,KAAK;aAClB,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;aACnD,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,QAAQ,GAAG,mBAAmB,CAChC,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAC1E,MAAM,CAAC,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5B,iEAAiE;QACjE,cAAc,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtD,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,mBAAmB,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;AAClE,CAAC;AAED,mEAAmE;AACnE,KAAK,UAAU,oBAAoB,CAC/B,KAAa,EAAE,OAAe,EAAE,MAAc,EAC9C,IAAY,EAAE,MAAmB;IAEjC,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAChE,6EAA6E;IAC7E,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9F,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO;QACH,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;QACjE,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,oEAAoE;QACpE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAqB,EAAE,EAAU;IAC1D,OAAO,IAAI,OAAO,CAAS,OAAO,CAAC,EAAE;QACjC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,8DAA8D;QAC9D,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,IAAI,CACV,KAAK,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACjD,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAC9C,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAGD,uDAAuD;AAEvD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,QAAuB;IAChE,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC;IACjC,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,WAAW,CAAC;IAEvD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAoD,CAAC;IAC9E,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;IAC7B,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE;QAAE,OAAO,WAAW,CAAC;IAEtD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7E,IAAI,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAExC,MAAM,OAAO,GAAG,oBAAoB,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;QAC/C,SAAS,EAAE,KAAK,CAAC,OAAO;QACxB,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,QAAQ,EAAE,KAAK,CAAC,SAAS;QACzB,MAAM,EAAE,KAAK,CAAC,IAAI;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,UAAU,EAAE,QAAQ,CAAC,WAAW;QAChC,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,KAAK,KAAK;QACzD,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC;KAClC,CAAC,CAAC;IACH,IAAI,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC;IAEjC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5I,IAAI,CAAC,SAAS,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC;IACzC,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,wFAAwF;AACxF,SAAS,kBAAkB,CAAC,KAAwB;IAChD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5E,CAAC;AAED,uDAAuD;AAGvD,SAAS,sBAAsB,CAAC,OAAgC;IAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,MAAM,CAAE,IAAwB,CAAC,EAAE,CAAC,CAAC;IAClG,OAAO,EAAE,CAAC;AACd,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAuB,EAAE,iBAAiB,GAAG,oBAAoB;IACvG,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACrC,MAAM,uBAAuB,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACtD,OAAO;IACX,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ;YACnF,CAAC,CAAC,MAAM,CAAE,OAAO,CAAC,CAAC,CAA6B,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACpE,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,GAAG,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YAClE,OAAO;QACX,CAAC;QACD,MAAM,MAAM,GAAG,sBAAsB,CACjC,iBAAiB,EACjB,OAAO,EACP,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,MAAM,EACb;YACI,eAAe,EAAE,sBAAsB,CAAC,OAAO,CAAC;YAChD,iBAAiB,EAAE,CAAC;SACvB,CACJ,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;YACxE,CAAC,CAAC,MAAM,CAAE,OAAO,CAAC,SAAS,CAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9D,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC,KAAK,CAAC;QACzC,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YACnB,MAAM,aAAa,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO;IACX,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAoD,CAAC;IAC9E,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,iBAAiB,EAAE;QACtD,GAAG,KAAK;QACR,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;KACxE,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7B,IAAI,QAAQ,CAAC,OAAO;QAAE,OAAO;IAE7B,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7E,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACpD,OAAO;IACX,CAAC;IACD,2EAA2E;IAC3E,wEAAwE;IACxE,IAAI,gBAAoC,CAAC;IACzC,IAAI,qBAAyC,CAAC;IAC9C,+EAA+E;IAC/E,+EAA+E;IAC/E,gFAAgF;IAChF,gFAAgF;IAChF,gFAAgF;IAChF,gFAAgF;IAChF,sDAAsD;IACtD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,aAAa,CAC1B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CACnE,CAAC;QACF,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACjD,OAAO;QACX,CAAC;QACD,gBAAgB,GAAG,QAAQ,CAAC;QAC5B,qBAAqB,GAAG,wBAAwB,EAAE,CAAC;IACvD,CAAC;IACD,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,gBAAgB;QAClC,CAAC,CAAC,6BAA6B,CAAC,gBAAgB,CAAC;QACjD,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAChD,mEAAmE;QACnE,gEAAgE;QAChE,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YAC/B,iEAAiE;YACjE,mEAAmE;YACnE,iEAAiE;YACjE,IAAI,aAAa,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;gBAC1E,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACxE,CAAC;QACL,CAAC;IACL,CAAC;IACD,6EAA6E;IAC7E,uEAAuE;IACvE,qEAAqE;IACrE,yEAAyE;IACzE,4EAA4E;IAC5E,6EAA6E;IAC7E,8CAA8C;IAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,IAAI,aAAa;QAClD,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC;QAC1E,CAAC,CAAC,CAAC,CAAC;IACR,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,CAAC;QACD,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5C,oDAAoD;QACpD,8DAA8D;QAC9D,yCAAyC;QACzC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACzE,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,YAAY,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAC3C,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EACrC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CACvD,CAAC;gBACF,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oBACnB,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;oBACxB,QAAQ,GAAG,IAAI,CAAC;oBAChB,GAAG,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,OAAO,OAAO,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,MAAM,gBAAgB,CAAC,CAAC;gBACnG,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC/B,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,OAAO,KAAK,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAE5F,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,UAAU;oBAClE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC;oBACxC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;YAClD,CAAC;YACD,OAAO;QACX,CAAC;QAED,iBAAiB,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,CAC1E,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;YAClD,aAAa;YACb,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,gBAAgB;YAChB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC,CAAC,CAAC;IACZ,CAAC;YAAS,CAAC;QACP,IAAI,aAAa,IAAI,aAAa,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvD,qBAAqB,CACjB,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,EAAE,aAAa,CAC3E,CAAC;QACN,CAAC;IACL,CAAC;AACL,CAAC;AAED,uDAAuD;AAEvD,MAAM,CAAC,KAAK,UAAU,SAAS;IAC3B,IAAI,aAAa,EAAE,CAAC;QAChB,qEAAqE;QACrE,gDAAgD;QAChD,GAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QACxE,kBAAkB,GAAG,IAAI,CAAC;QAC1B,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IACD,aAAa,GAAG,IAAI,CAAC;IACrB,IAAI,OAA8B,CAAC;IACnC,IAAI,CAAC;QACD,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,iEAAiE;QACjE,qEAAqE;QACrE,kDAAkD;QAClD,MAAM,eAAe,EAAE,CAAC;QACxB,MAAM,GAAG,CAAC;IACd,CAAC;IACD,2EAA2E;IAC3E,2EAA2E;IAC3E,OAAO,CAAC,MAAM,eAAe,EAAE,CAAC,IAAI,OAAO,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,eAAe;IAC1B,aAAa,GAAG,KAAK,CAAC;IACtB,IAAI,CAAC,kBAAkB;QAAE,OAAO,IAAI,CAAC;IACrC,kBAAkB,GAAG,KAAK,CAAC;IAC3B,OAAO,SAAS,EAAE,CAAC;AACvB,CAAC;AAED,6DAA6D;AAC7D,KAAK,UAAU,YAAY;IACvB,sEAAsE;IACtE,oEAAoE;IACpE,oEAAoE;IACpE,sBAAsB;IACtB,MAAM,UAAU,GAAG,EAAE,mBAAmB,CAAC;IACzC,MAAM,mBAAmB,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACjE,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;QACf,kEAAkE;QAClE,6DAA6D;QAC7D,GAAG,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QAC/E,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;IACD,sEAAsE;IACtE,8DAA8D;IAC9D,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,IAAI,CAAC,gDAAgD,EAAE,CAAC,UAAU,WAAW,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1H,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAyC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9F,qEAAqE;IACrE,gEAAgE;IAChE,IAAI,UAAU,KAAK,mBAAmB,EAAE,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC3D,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC7D,CAAC;IACD,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC;IACxC,qEAAqE;IACrE,wEAAwE;IACxE,yEAAyE;IACzE,iDAAiD;IACjD,EAAE;IACF,2EAA2E;IAC3E,sEAAsE;IACtE,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,wEAAwE;IACxE,2BAA2B,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC9D,IAAI,QAAQ;QAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM;QAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACpE,sEAAsE;IACtE,sEAAsE;IACtE,sEAAsE;IACtE,oEAAoE;IACpE,sEAAsE;IACtE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAClC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,8EAA8E,CAAC,CAAC,CAAC;QACxG,OAAO,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC;QACjC,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,CAAC;QAC3E,iBAAiB,EAAE,sBAAsB;KAC5C,CAAC,CAAC;IACH,oBAAoB,GAAG,wBAAwB,EAAE,CAAC;IAClD,YAAY,GAAG,MAAM,CAAC;IACtB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,IAAI,UAAU,KAAK,mBAAmB,EAAE,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,YAAY,KAAK,MAAM;YAAE,YAAY,GAAG,IAAI,CAAC;QACjD,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB,GAAG,oBAAoB,CAAC;QACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAK;QAC1C,aAAa,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC;QACjD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,OAAO;KACnD,CAAC,CAAC;IACH,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,CAAC,0BAA0B,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;IAC9D,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IAC/B,mBAAmB,EAAE,CAAC;IACtB,MAAM,mBAAmB,EAAE,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,mBAAmB;IAC9B,MAAM,iBAAiB,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,wEAAwE;IACxE,8CAA8C;IAC9C,qBAAqB,EAAE,CAAC;IACxB,0EAA0E;IAC1E,iFAAiF;IACjF,uBAAuB,EAAE,CAAC;IAC1B,wEAAwE;IACxE,sEAAsE;IACtE,2BAA2B,EAAE,CAAC;IAC9B,4EAA4E;IAC5E,6DAA6D;IAC7D,yBAAyB,EAAE,CAAC;IAC5B,IAAI,gBAAgB,EAAE,CAAC;QACnB,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;QAC1C,gBAAgB,GAAG,IAAI,CAAC;IAC5B,CAAC;IACD,0EAA0E;IAC1E,8DAA8D;IAC9D,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,mBAAmB,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1D,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC5B,YAAY,EAAE,IAAI,EAAE,CAAC;IACrB,YAAY,GAAG,IAAI,CAAC;IACpB,UAAU,GAAG,IAAI,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../../src/slack/bot.ts"],"names":[],"mappings":"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"}
@@ -82,15 +82,21 @@ export function shouldProcessSlackEvent(event, config, envelopeType) {
82
82
  // channel need the gate. DMs always bypass it.
83
83
  if (config.mentionOnly && !dm && event.type !== 'app_mention') {
84
84
  if (!config.selfUserId || !mentionsUser(event.text || '', config.selfUserId)) {
85
- // Thread continuation: a thread the bot already participates in
86
- // (started by a mention, or the bot replied into it) keeps
87
- // flowing without re-mention (Hermes thread_require_mention:false
88
- // semantics — devlog 260806 unit). Ordering is intentional: the
89
- // self-echo/bot/allowlist gates above already ran, so a
90
- // participated thread never bypasses those.
85
+ // Thread continuation, but only for a thread the bot itself started:
86
+ // there, its reply is the parent and every follow-up is addressed to
87
+ // it, so re-mentioning would be noise (Hermes
88
+ // thread_require_mention:false semantics — devlog 260806 unit).
89
+ //
90
+ // A thread the bot was pulled INTO partway does not qualify. People
91
+ // were already talking there and keep talking to each other; reading
92
+ // one mention as consent for the rest of that conversation is how the
93
+ // bot answered six messages that named other people (#400).
94
+ //
95
+ // Ordering is intentional: the self-echo/bot/allowlist gates above
96
+ // already ran, so a participated thread never bypasses those.
91
97
  const inParticipatedThread = !config.threadRequireMention
92
98
  && !!event.thread_ts
93
- && config.isParticipatedThread(event.channel || '', event.thread_ts);
99
+ && config.threadParticipation(event.channel || '', event.thread_ts) === 'owned';
94
100
  if (!inParticipatedThread) {
95
101
  return { process: false, reason: 'mention_required' };
96
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/slack/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/slack/events.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,2EAA2E;AAC3E,0DAA0D;AA6D1D,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC7B,iBAAiB;IACjB,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,aAAa;IACb,0BAA0B;CAC7B,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAAC,KAAwB;IACpD,OAAO,KAAK,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,MAAc;IACrD,OAAO,IAAI,MAAM,CAAC,KAAK,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAmB,EAAE,WAAoB;IACvE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,MAAM,KAAK,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,MAAc;IACrD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,MAAM,gBAAgB,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACjF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACjC,cAAsB,EACtB,UAAoB,EACpB,IAAa;IAEb,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC,UAAU,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,KAAwB,EACxB,MAAuB,EACvB,YAAoB;IAEpB,IAAI,KAAK,CAAC,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;IAClE,CAAC;IACD,2EAA2E;IAC3E,8BAA8B;IAC9B,IAAI,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;QACxD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IACtD,CAAC;IACD,4EAA4E;IAC5E,6EAA6E;IAC7E,uDAAuD;IACvD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAC7D,CAAC;IACD,yEAAyE;IACzE,yEAAyE;IACzE,sEAAsE;IACtE,oEAAoE;IACpE,uEAAuE;IACvE,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,UAAU;WACrD,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACjE,CAAC;IACD,wEAAwE;IACxE,+CAA+C;IAC/C,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3E,qEAAqE;YACrE,qEAAqE;YACrE,8CAA8C;YAC9C,gEAAgE;YAChE,EAAE;YACF,oEAAoE;YACpE,qEAAqE;YACrE,sEAAsE;YACtE,4DAA4D;YAC5D,EAAE;YACF,mEAAmE;YACnE,8DAA8D;YAC9D,MAAM,oBAAoB,GAAG,CAAC,MAAM,CAAC,oBAAoB;mBAClD,CAAC,CAAC,KAAK,CAAC,SAAS;mBACjB,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC;YACpF,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACxB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;YAC1D,CAAC;QACL,CAAC;IACL,CAAC;IACD,IAAI,YAAY,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAChG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,QAAQ,GAAG,IAAI;IACpE,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,MAAM,KAAK,GAAc,CAAC,GAAG,MAAM,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QAChD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,gCAAgC;QAC9D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,IAA+B,CAAC;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QAC1B,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,uDAAuD;YACvD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB,CAAC,KAAwB,EAAE,UAAyB;IAChF,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM;QAAE,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9E,IAAI,UAAU;QAAE,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC"}
@@ -125,4 +125,18 @@ export function slackManifestYaml(appName = DEFAULT_SLACK_APP_NAME) {
125
125
  export function slackManifestJson(appName = DEFAULT_SLACK_APP_NAME) {
126
126
  return JSON.stringify(createSlackAppManifest(appName), null, 2);
127
127
  }
128
+ /**
129
+ * App-creation URL with the manifest already in it.
130
+ *
131
+ * Slack's "From a manifest" editor is not what gets validated: the page posts the
132
+ * `manifest_json` query parameter to apps.manifest.validate. Arriving at plain
133
+ * `?new_app=1` therefore sends `{}` no matter what was pasted, and the only symptom
134
+ * is a Create button that never enables — no error, no banner, and a correct-looking
135
+ * manifest on screen (#396). Carrying it in the URL is the only way the flow works
136
+ * first time.
137
+ */
138
+ export function slackManifestCreateUrl(appName = DEFAULT_SLACK_APP_NAME) {
139
+ const manifest = encodeURIComponent(JSON.stringify(createSlackAppManifest(appName)));
140
+ return `https://api.slack.com/apps?new_app=1&manifest_json=${manifest}`;
141
+ }
128
142
  //# sourceMappingURL=manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/slack/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/slack/manifest.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ import { JAW_HOME } from '../core/config.js';
16
16
  /** Cap before trimming — matches Hermes' 500-entry tracker. */
17
17
  export const SLACK_THREADS_CAP = 500;
18
18
  let storePath = path.join(JAW_HOME, 'slack-threads.json');
19
- // key = `${channel}:${threadTs}` → last-marked epoch ms. thread_ts values are
19
+ // key = `${channel}:${threadTs}` → participation record. thread_ts values are
20
20
  // only unique within a channel, so the channel is part of the key.
21
21
  let threads = null;
22
22
  export function threadKey(channel, threadTs) {
@@ -30,8 +30,22 @@ function load() {
30
30
  const raw = JSON.parse(fs.readFileSync(storePath, 'utf8'));
31
31
  if (raw && typeof raw === 'object' && !Array.isArray(raw)) {
32
32
  for (const [key, value] of Object.entries(raw)) {
33
- if (typeof value === 'number')
34
- threads.set(key, value);
33
+ // A bare number is a record from before this file distinguished the
34
+ // two cases. Which one it was is unknowable, so it reads as `joined`:
35
+ // that asks for a mention the bot may not have needed, whereas
36
+ // guessing `owned` would carry #400 forward for every existing user.
37
+ if (typeof value === 'number') {
38
+ threads.set(key, { at: value, kind: 'joined' });
39
+ }
40
+ else if (value && typeof value === 'object') {
41
+ const record = value;
42
+ if (typeof record.at === 'number') {
43
+ threads.set(key, {
44
+ at: record.at,
45
+ kind: record.kind === 'owned' ? 'owned' : 'joined',
46
+ });
47
+ }
48
+ }
35
49
  }
36
50
  }
37
51
  }
@@ -50,27 +64,33 @@ function save(map) {
50
64
  console.warn('[slack:threads] persist failed:', error.message);
51
65
  }
52
66
  }
53
- export function markThreadParticipated(channel, threadTs) {
67
+ export function markThreadParticipated(channel, threadTs, kind = 'joined') {
54
68
  if (!channel || !threadTs)
55
69
  return;
56
70
  const map = load();
57
71
  const key = threadKey(channel, threadTs);
58
- const isNew = !map.has(key);
59
- map.set(key, Date.now());
72
+ const existing = map.get(key);
73
+ const isNew = !existing;
74
+ // Ownership is decided when the thread is first seen and never upgraded
75
+ // afterwards. A reply the bot posts INTO someone else's thread is exactly
76
+ // what `joined` describes, so letting that reply promote the thread to
77
+ // `owned` would hand the bot the conversation it was only invited into.
78
+ const kindToStore = existing?.kind === 'owned' ? 'owned' : kind;
79
+ map.set(key, { at: Date.now(), kind: kindToStore });
60
80
  let trimmed = false;
61
81
  if (map.size > SLACK_THREADS_CAP) {
62
82
  // Trim the least-recently-marked half, like Hermes' 500-cap tracker.
63
83
  // Sorted by stored timestamp, not Map insertion order, because
64
84
  // re-marking an existing key refreshes its value without moving it.
65
- const entries = [...map.entries()].sort((a, b) => a[1] - b[1]);
85
+ const entries = [...map.entries()].sort((a, b) => a[1].at - b[1].at);
66
86
  for (const [staleKey] of entries.slice(0, Math.floor(map.size / 2))) {
67
87
  map.delete(staleKey);
68
88
  }
69
89
  trimmed = true;
70
90
  }
71
- // Persist on new participation or cap trim; refreshing a timestamp alone
72
- // is not worth a disk write per thread reply.
73
- if (isNew || trimmed)
91
+ // Persist on new participation, a kind change, or a cap trim; refreshing a
92
+ // timestamp alone is not worth a disk write per thread reply.
93
+ if (isNew || trimmed || existing?.kind !== kindToStore)
74
94
  save(map);
75
95
  }
76
96
  export function isThreadParticipated(channel, threadTs) {
@@ -78,6 +98,17 @@ export function isThreadParticipated(channel, threadTs) {
78
98
  return false;
79
99
  return load().has(threadKey(channel, threadTs));
80
100
  }
101
+ /**
102
+ * How the bot is in this thread, or null when it is not in it at all.
103
+ *
104
+ * The mention gate asks THIS rather than `isThreadParticipated`: presence alone
105
+ * never meant the whole thread was addressed to the bot.
106
+ */
107
+ export function threadParticipationKind(channel, threadTs) {
108
+ if (!channel || !threadTs)
109
+ return null;
110
+ return load().get(threadKey(channel, threadTs))?.kind ?? null;
111
+ }
81
112
  /** key -> current owner and whether history was actually injected. */
82
113
  const prefetchClaimed = new Map();
83
114
  const PREFETCH_CLAIM_CAP = 500;
@@ -1 +1 @@
1
- {"version":3,"file":"thread-tracker.js","sourceRoot":"","sources":["../../../src/slack/thread-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-tracker.js","sourceRoot":"","sources":["../../../src/slack/thread-tracker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cli-jaw",
3
- "version": "2.17.6",
3
+ "version": "2.17.7",
4
4
  "description": "Personal AI assistant powered by Pi, Antigravity, AI-E, Claude, Claude E, Codex, Codex App, Cursor, Grok, Kiro, OpenCode, and Copilot — Web, Terminal, Telegram, and Discord interfaces with 107 built-in skills",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-XQCOJYun.js";import{n as t}from"./settings-types-DPhhM-cj.js";import{n,t as r}from"./jsx-runtime-CYoNlHAD.js";import{t as i}from"./settings-client-D9KY2Ufl.js";import{t as a}from"./error-normalize-CLRJh19F.js";import{a as o,i as s,n as c,r as l,t as u}from"./page-shell-GpE8A-FA.js";import{i as d,s as f}from"./fields-BwOMlwS0.js";import{a as p,n as m,o as h}from"./Permissions-RgyF1O6q.js";import{a as ee,c as g,i as _,l as v,n as y,o as b,r as te,s as ne,t as x}from"./agent-meta-Bl-Q0EgC.js";import{t as S}from"./path-utils-CHwADH-r.js";var C=e(n(),1),re=1e3,ie=8e3,ae=9e4;function oe(e,t){if(!e||!t)return!1;let n=e[t]?.probeState;return n?n===`checking`||n===`failing`:!1}function se(e){let t=re*2**Math.min(Number.isFinite(e)&&e>0?Math.floor(e):0,8);return Math.min(Math.max(t,re),ie)}function ce(e){let{snapshot:t,cli:n,attempts:r,now:i,deadline:a}=e;if(!oe(t,n))return{kind:`stop`};if(i>=a||r>=24)return{kind:`exhausted`};let o=t?.[n]?.nextRetryAt,s=typeof o==`number`&&o>i?o:i+se(r);return{kind:`wait`,delayMs:Math.max(Math.min(s,a)-i,0)}}var w=r();function le({cli:e,cliOptions:t,provider:n=``,providerOptions:r=[],model:i,modelOptions:a,effort:o,effortOptions:c,workingDir:l,workingDirError:u,cliMeta:p,onCliChange:m,onProviderChange:h,onModelChange:ee,onEffortChange:g,onWorkingDirChange:v}){let y=ne(t),b=y.filter(e=>x.includes(e)).length;return(0,w.jsx)(s,{title:`Agent runtime`,hint:`Active CLI, model, effort, and workspace used by this instance.`,children:(0,w.jsxs)(`div`,{className:`settings-agent-runtime-grid`,children:[(0,w.jsx)(d,{id:`agent-cli`,label:`Active CLI`,value:e,options:y.map(e=>({value:e,label:_(e,p).label||e})),collapsedAfter:b,onChange:m}),r.length>0?(0,w.jsx)(d,{id:`agent-${e}-provider`,label:`Provider`,value:n,options:r.map(e=>({value:e,label:e})),onChange:e=>h?.(e)}):null,(0,w.jsx)(d,{id:`agent-model`,label:`Active model`,value:i,options:a.length>0?a:[{value:``,label:`(default)`}],onChange:ee}),(0,w.jsx)(d,{id:`agent-effort`,label:`Effort`,value:o,options:[{value:``,label:`(default)`},...c.map(e=>({value:e,label:e}))],disabled:c.length===0,onChange:g}),(0,w.jsx)(f,{id:`agent-workingDir`,label:`Working directory`,value:l,error:u,placeholder:`/path/to/project`,onChange:v})]})})}var T=[{value:`auto`,label:`Auto`},{value:`custom`,label:`Custom allowlist`}];function ue({value:e,onChange:t}){let n=p(e),r=n.mode===`custom`?`custom`:`auto`,i=n.mode===`custom`?n.tokens:[],a=n.mode===`custom`?`${i.length} explicit token${i.length===1?``:`s`}`:`Runtime resolves allowed capabilities`;return(0,w.jsxs)(s,{title:`Permissions`,hint:`Quick runtime mode. Open Permissions for detailed allowlist editing.`,children:[(0,w.jsx)(d,{id:`agent-permissions-mode`,label:`Mode`,value:r,options:T,onChange:e=>{t(e===`auto`?`auto`:i.length>0&&m(i)?i:h(null))}}),(0,w.jsx)(`p`,{className:`settings-agent-note`,children:a})]})}function de({activeCli:e,flushCli:t,flushModel:n,cliOptions:r,modelOptions:i,cliMeta:a,loading:o,error:c,onFlushCliChange:l,onFlushModelChange:u}){let f=t||e,p=f?_(f,a).label||f:`active`;return(0,w.jsx)(s,{title:`Flush Agent`,hint:`Separate summary agent used for context flush and compact work.`,children:(0,w.jsxs)(`details`,{className:`settings-agent-flush`,children:[(0,w.jsxs)(`summary`,{children:[(0,w.jsx)(`span`,{children:`Flush runtime`}),(0,w.jsxs)(`code`,{children:[p,n&&n!==`default`?` / ${n}`:``]})]}),o?(0,w.jsx)(`p`,{className:`settings-agent-note`,children:`Loading flush settings...`}):null,c?(0,w.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:c}):null,(0,w.jsxs)(`div`,{className:`settings-agent-runtime-grid`,children:[(0,w.jsx)(d,{id:`agent-flush-cli`,label:`Flush CLI`,value:t,options:[{value:``,label:`(active CLI)`},...r.map(e=>({value:e,label:_(e,a).label||e}))],onChange:l}),(0,w.jsx)(d,{id:`agent-flush-model`,label:`Flush model`,value:n,options:[{value:``,label:`(default)`},...i],onChange:u})]})]})})}function E(e){return e.source===`static`||e.id.startsWith(`static:`)}function D(){return`new:${Date.now().toString(36)}:${Math.random().toString(36).slice(2,8)}`}function O(e,t){let n=e[0]||`claude`,r=t?.[n]?.models?.[0]||`default`;return{id:D(),name:`New Agent`,cli:n,model:r,role:``,status:`idle`,source:`db`}}function fe(e){return Array.isArray(e)?e.map(k).filter(Boolean):e.data.map(k).filter(Boolean)}function k(e){if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.id==`string`?t.id:``,r=typeof t.name==`string`?t.name:``;if(!n||!r)return null;let i=t.source===`static`||n.startsWith(`static:`)?`static`:`db`,a={id:n,name:r,cli:typeof t.cli==`string`&&t.cli?t.cli:`claude`,model:typeof t.model==`string`&&t.model?t.model:`default`,role:typeof t.role==`string`?t.role:``,source:i};return typeof t.status==`string`&&(a.status=t.status),a}function A(e){return e.name.trim()?e.cli.trim()?e.model.trim()?null:`Model is required`:`CLI is required`:`Name is required`}function pe(e){return e.some(e=>A(e)!==null)}function me(e,t){return JSON.stringify(e.map(N))===JSON.stringify(t.map(N))}function he(e,t){let n=new Map(e.map(e=>[e.id,e])),r=new Set(t.map(e=>e.id)),i=[],a=[],o=[];for(let e of t){let t=n.get(e.id);if(!t||e.id.startsWith(`new:`)){i.push(e);continue}let r=M(t,e);Object.keys(r).length>0&&a.push({before:t,after:e,patch:r})}for(let t of e)!r.has(t.id)&&!E(t)&&o.push(t);return{added:i,updated:a,removed:o}}function ge(e,t){let n=he(e,t);return{added:n.added.length,updated:n.updated.length,removed:n.removed.length}}async function j(e,t,n){let r=he(t,n);for(let t of r.removed)await e.delete(`/api/employees/${encodeURIComponent(t.id)}`);for(let t of r.added)await e.post(`/api/employees`,_e(t));for(let t of r.updated)await e.put(`/api/employees/${encodeURIComponent(t.after.id)}`,t.patch)}function M(e,t){if(E(t))return e.model===t.model?{}:{model:t.model};let n={};for(let r of[`name`,`cli`,`model`,`role`,`status`])(e[r]||``)!==(t[r]||``)&&(n[r]=t[r]||``);return n}function _e(e){return{name:e.name.trim()||`New Agent`,cli:e.cli.trim()||`claude`,model:e.model.trim()||`default`,role:e.role.trim()}}function N(e){let t={id:e.id,name:e.name,cli:e.cli,model:e.model,role:e.role,source:e.source};return e.status!==void 0&&(t.status=e.status),t}function P({employee:e,index:t,cliOptions:n,cliMeta:r,onChange:i,onRemove:a}){let o=E(e),s=b(_(e.cli,r).models,e.model),c=A(e),l=Array.from(new Set([...n,e.cli,`claude`])).filter(Boolean);return(0,w.jsxs)(`fieldset`,{className:`settings-runtime-employee-row`,children:[(0,w.jsxs)(`legend`,{children:[e.name||`Employee ${t+1}`,o?(0,w.jsx)(`span`,{children:`static`}):null]}),(0,w.jsxs)(`div`,{className:`settings-runtime-employee-grid`,children:[(0,w.jsx)(f,{id:`runtime-employee-${e.id}-name`,label:`Name`,value:e.name,disabled:o,error:c===`Name is required`?c:null,onChange:e=>i({name:e})}),(0,w.jsx)(d,{id:`runtime-employee-${e.id}-cli`,label:`CLI`,value:e.cli,disabled:o,options:l.map(e=>({value:e,label:_(e,r).label||e})),onChange:e=>{i({cli:e,model:_(e,r).models[0]||`default`})}}),(0,w.jsx)(d,{id:`runtime-employee-${e.id}-model`,label:`Model`,value:e.model,options:s.length>0?s:[{value:`default`,label:`default`}],onChange:e=>i({model:e})}),(0,w.jsx)(f,{id:`runtime-employee-${e.id}-role`,label:`Role`,value:e.role,disabled:o,onChange:e=>i({role:e})})]}),(0,w.jsxs)(`div`,{className:`settings-runtime-employee-footer`,children:[(0,w.jsxs)(`span`,{children:[e.source,e.status?` / ${e.status}`:``]}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,disabled:o,onClick:a,"aria-label":`Remove employee ${e.name||t+1}`,children:`Remove`})]})]})}function ve({roster:e,original:t,cliOptions:n,cliMeta:r,loading:i,error:a,onRosterChange:o}){let c=ge(t,e),l=pe(e);function u(t,n){o(e.map((e,r)=>r===t?{...e,...n}:e))}function d(t){o(e.filter((e,n)=>n!==t))}return(0,w.jsxs)(s,{title:`Employees`,hint:`Runtime dispatch roster. Static employees keep their locked identity; database employees can be edited.`,children:[(0,w.jsxs)(`div`,{className:`settings-runtime-employee-summary`,children:[(0,w.jsxs)(`span`,{children:[`+`,c.added]}),(0,w.jsxs)(`span`,{children:[`~`,c.updated]}),(0,w.jsxs)(`span`,{children:[`-`,c.removed]}),l?(0,w.jsx)(`strong`,{children:`Fix invalid rows before saving.`}):null]}),i?(0,w.jsx)(`p`,{className:`settings-agent-note`,children:`Loading employees...`}):null,a?(0,w.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:a}):null,e.length===0?(0,w.jsx)(`p`,{className:`settings-empty`,children:`No runtime employees configured.`}):(0,w.jsx)(`div`,{className:`settings-runtime-employee-list`,children:e.map((e,t)=>(0,w.jsx)(P,{employee:e,index:t,cliOptions:n,cliMeta:r??null,onChange:e=>u(t,e),onRemove:()=>d(t)},e.id))}),(0,w.jsx)(`div`,{className:`settings-employee-footer-bar`,children:(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,onClick:()=>o([...e,O(n,r)]),children:`+ Add employee`})})]})}var F=new Set([`runtimeEmployees`,`flushCli`,`flushModel`]);function I(e){let t={},n=null,r=null;for(let[i,a]of Object.entries(e))i===`runtimeEmployees`?r=a:i===`flushCli`||i===`flushModel`?(n??={},n[i===`flushCli`?`cli`:`model`]=String(a??``)):F.has(i)||(t[i]=a);return{settingsBundle:t,flushPatch:n,runtimeEmployeesNext:r}}async function ye(e){let{client:t,bundle:n,employeeDraft:r,employeeOriginal:i}=e;if(pe(r))throw Error(`runtime employees: fix invalid rows before saving`);let{settingsBundle:a,flushPatch:o,runtimeEmployeesNext:s}=I(n),c=null;try{if(Object.keys(a).length>0){let e=await t.put(`/api/settings`,S(a));c=e&&typeof e==`object`&&`data`in e?e.data:e}}catch(e){throw Error(`settings save failed: ${e instanceof Error?e.message:String(e)}`)}try{o&&await t.put(`/api/memory-files/settings`,o)}catch(e){throw Error(`flush settings save failed: ${e instanceof Error?e.message:String(e)}`)}try{s&&await j(t,i,s)}catch(e){throw Error(`runtime employees save failed: ${e instanceof Error?e.message:String(e)}`)}return c}function be({status:e,exhausted:n=!1}){if(n)return(0,w.jsx)(`div`,{className:`settings-inline-notice`,role:`alert`,children:`상태 확인이 끝나지 않았습니다. 새로고침하거나 잠시 후 다시 확인하세요.`});if(!e)return null;let r=t(e);return r.kind===`checking`?(0,w.jsx)(`div`,{className:`settings-inline-notice`,role:`status`,"aria-live":`polite`,children:`상태 확인 중`}):r.kind===`unknown`?(0,w.jsx)(`div`,{className:`settings-inline-notice`,role:`alert`,children:r.message}):r.kind===`failing`?(0,w.jsxs)(`div`,{className:`settings-inline-notice`,role:`alert`,children:[`상태 확인 실패 (재시도 중)`,e.probeError?`: ${e.probeError}`:``]}):null}function L(e){if(!(e instanceof i)||e.status!==409)return null;try{return JSON.parse(e.detail).settings??null}catch{return null}}function R({port:e,client:t,dirty:n,registerSave:r}){let{state:i,refresh:s,setData:d}=o(t,`/api/settings`),[f,m]=(0,C.useState)({cli:``,provider:``,model:``,effort:``,workingDir:``,permissions:`auto`}),[h,ne]=(0,C.useState)({}),[x,S]=(0,C.useState)({}),[re,ie]=(0,C.useState)(!0),[oe,se]=(0,C.useState)(null),[T,E]=(0,C.useState)([]),[D,O]=(0,C.useState)([]),[k,A]=(0,C.useState)(!0),[he,ge]=(0,C.useState)(null),[j,M]=(0,C.useState)(null),[_e,N]=(0,C.useState)({}),[P,F]=(0,C.useState)(!1),[I,R]=(0,C.useState)(null),[xe,Se]=(0,C.useState)(!1),[Ce,we]=(0,C.useState)(null),z=(0,C.useCallback)(async()=>{try{let e=await t.get(`/api/cli-registry`);M(ee(e&&typeof e==`object`&&`data`in e?e.data:e))}catch{M(null)}},[t]),B=(0,C.useRef)(0),V=(0,C.useRef)({}),[Te,Ee]=(0,C.useState)(!1),H=(0,C.useCallback)(async e=>{try{let n=await t.get(`/api/cli-status`);if(e!==void 0&&e!==B.current)return;V.current=n,N(n)}catch{if(e!==void 0&&e!==B.current)return;V.current={},N({})}},[t]),U=(0,C.useCallback)(async()=>{ie(!0),se(null);try{let e=await t.get(`/api/memory-files`),n={cli:e.cli||``,model:e.model||``};ne(n),S(n)}catch(e){se(e instanceof Error?e.message:String(e))}finally{ie(!1)}},[t]),W=(0,C.useCallback)(async()=>{A(!0),ge(null);try{let e=fe(await t.get(`/api/employees`));E(e),O(e)}catch(e){ge(e instanceof Error?e.message:String(e))}finally{A(!1)}},[t]);(0,C.useEffect)(()=>{z(),H(),U(),W()},[z,H,W,U]),(0,C.useEffect)(()=>{if(!f.cli)return;let e=B.current+1;B.current=e,Ee(!1);let t=Date.now()+ae,n=0,r,i=()=>{if(e!==B.current)return;let a=ce({snapshot:V.current,cli:f.cli,attempts:n,now:Date.now(),deadline:t});if(a.kind!==`stop`){if(a.kind===`exhausted`){Ee(!0);return}r=setTimeout(()=>{e===B.current&&(n+=1,H(e).then(()=>{e===B.current&&i()}))},a.delayMs)}};return i(),()=>{B.current=e+1,r!==void 0&&clearTimeout(r)}},[f.cli,H]),(0,C.useEffect)(()=>{if(i.kind!==`ready`)return;let e=Object.keys(i.data.perCli||{}),t=i.data.cli||e[0]||``,n=p(i.data.permissions),r=_(t,j);m({cli:t,provider:i.data.perCli?.[t]?.provider||r.defaultProvider||``,model:v(t,i.data.perCli,i.data.activeOverrides),effort:g(t,i.data.perCli,i.data.activeOverrides),workingDir:i.data.workingDir||``,permissions:n.mode===`custom`?n.tokens:`auto`})},[j,i]),(0,C.useEffect)(()=>()=>{for(let e of Array.from(n.pending.keys()))(e===`cli`||e===`workingDir`||e===`permissions`||e===`runtimeEmployees`||e===`flushCli`||e===`flushModel`||e.startsWith(`activeOverrides.`))&&n.remove(e)},[n]);let G=(0,C.useCallback)((e,t)=>n.set(e,t),[n]),De=(0,C.useCallback)(async()=>{let e=n.saveBundle();if(Object.keys(e).length===0)return;let r=await ye({client:t,bundle:e,employeeDraft:D,employeeOriginal:T});n.clear(),r&&d(r),await s(),await z(),await U(),await W()},[t,n,D,T,z,W,U,s,d]);(0,C.useEffect)(()=>{if(r)return r(De),()=>r(null)},[r,De]);let K=i.kind===`ready`?i.data:{},q=K.perCli||{},J=K.activeOverrides||{},Y=(0,C.useMemo)(()=>Object.keys(q),[q]),X=_(f.cli,j),Z=f.provider||X.defaultProvider||X.providers?.[0]||``,Oe=f.cli===`pi`,Q=!Oe&&(X.providers?.length??0)>0,ke=b(Q&&X.modelsByProvider?.[Z]||X.models,f.model),Ae=Q?te(X,f.model,X.effortsByProvider?.[Z]||X.efforts,Z):te(X,f.model),je=f.workingDir.trim()?null:`Required`,Me=(0,C.useCallback)(async e=>{F(!0),R(null);try{let n=await t.post(`/api/settings/runtime-default-migration`,{action:e}),r;r=`settings`in n&&n.settings?n.settings:`data`in n&&n.data?n.data:n,d(r)}catch(e){let t=L(e);if(t){d(t);return}R(a(e))}finally{F(!1)}},[t,d]),Ne=(0,C.useCallback)(async e=>{Se(!0),we(null);try{let n=await t.post(`/api/settings/multi-session-default-migration`,{action:e}),r;r=`settings`in n&&n.settings?n.settings:`data`in n&&n.data?n.data:n,d(r)}catch(e){let t=L(e);if(t){d(t);return}we(a(e))}finally{Se(!1)}},[t,d]);if(i.kind===`loading`)return(0,w.jsx)(c,{});if(i.kind===`offline`)return(0,w.jsx)(l,{port:e});if(i.kind===`error`)return(0,w.jsx)(u,{message:i.message});function Pe(){for(let e of Array.from(n.pending.keys()))e.startsWith(`activeOverrides.`)&&n.remove(e)}function $(e){m(e)}return(0,w.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>{e.preventDefault(),De()},children:[K.runtimeDefaultMigration?.state===`pending`?(0,w.jsxs)(`div`,{className:`settings-inline-notice`,role:`status`,children:[(0,w.jsx)(`strong`,{children:`기본 런타임 변경 안내`}),(0,w.jsx)(`p`,{children:`기존 선택은 유지됩니다. Codex App으로 전환하거나 현재 런타임을 계속 사용할 수 있습니다.`}),(0,w.jsxs)(`div`,{className:`settings-inline-actions`,children:[(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,disabled:P,onClick:()=>void Me(`accept`),children:`Codex App 사용`}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-secondary`,disabled:P,onClick:()=>void Me(`keep`),children:`현재 런타임 유지`})]}),I?(0,w.jsx)(`span`,{className:`settings-field-error`,role:`alert`,children:I}):null]}):null,K.multiSessionDefaultMigration?.state===`pending`?(0,w.jsxs)(`div`,{className:`settings-inline-notice`,role:`status`,children:[(0,w.jsx)(`strong`,{children:`다중 세션 안내`}),(0,w.jsx)(`p`,{children:`대화 세션을 여러 개 열 수 있습니다. 켜면 동시 실행도 2로 올라가서, 두 번째 세션이 첫 번째가 끝나기를 기다리지 않습니다. 지금 설정은 그대로 유지됩니다.`}),(0,w.jsxs)(`div`,{className:`settings-inline-actions`,children:[(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,disabled:xe,onClick:()=>void Ne(`accept`),children:`다중 세션 켜기`}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-secondary`,disabled:xe,onClick:()=>void Ne(`keep`),children:`지금 설정 유지`})]}),Ce?(0,w.jsx)(`span`,{className:`settings-field-error`,role:`alert`,children:Ce}):null]}):null,(0,w.jsx)(be,{status:_e[f.cli],exhausted:Te}),(0,w.jsx)(le,{cli:f.cli,cliOptions:Y.length>0?Y:[f.cli||`claude`],provider:Z,providerOptions:Oe?[]:X.providers||[],model:f.model,modelOptions:ke,effort:f.effort,effortOptions:Ae,workingDir:f.workingDir,workingDirError:je,cliMeta:j,onCliChange:e=>{let t=_(e,j),n={...f,cli:e,provider:q[e]?.provider||t.defaultProvider||``,model:v(e,q,J),effort:g(e,q,J)};Pe(),$(n),G(`cli`,{value:e,original:K.cli||``,valid:!0})},onProviderChange:e=>{let t=X.modelsByProvider?.[e]||[],n=X.effortsByProvider?.[e]||[],r=t.includes(f.model)?f.model:t[0]||``,i=y(X,r,f.effort,n,e);$({...f,provider:e,model:r,effort:i}),G(`perCli.${f.cli}.provider`,{value:e,original:q[f.cli]?.provider||X.defaultProvider||``,valid:!0}),G(`activeOverrides.${f.cli}.model`,{value:r,original:v(f.cli,q,J),valid:r.trim().length>0}),G(`activeOverrides.${f.cli}.effort`,{value:i,original:g(f.cli,q,J),valid:!0})},onModelChange:e=>{let t=y(X,e,f.effort,Q?X.effortsByProvider?.[Z]||X.efforts:void 0,Q?Z:void 0);$({...f,model:e,effort:t}),G(`activeOverrides.${f.cli}.model`,{value:e,original:v(f.cli,q,J),valid:e.trim().length>0}),t!==f.effort&&G(`activeOverrides.${f.cli}.effort`,{value:t,original:g(f.cli,q,J),valid:!0})},onEffortChange:e=>{$({...f,effort:e}),G(`activeOverrides.${f.cli}.effort`,{value:e,original:g(f.cli,q,J),valid:!0})},onWorkingDirChange:e=>{$({...f,workingDir:e}),G(`workingDir`,{value:e,original:K.workingDir||``,valid:e.trim().length>0})}}),(0,w.jsx)(ue,{value:f.permissions,onChange:e=>{$({...f,permissions:e}),G(`permissions`,{value:e,original:K.permissions??`auto`,valid:e===`auto`||e.length>0})}}),(0,w.jsx)(de,{activeCli:f.cli,flushCli:x.cli||``,flushModel:x.model||``,cliOptions:Y,cliMeta:j,modelOptions:b(_(x.cli||f.cli,j).models,x.model||``),loading:re,error:oe,onFlushCliChange:e=>{let t=e&&_(e,j).models[0]||``;S({cli:e,model:t}),G(`flushCli`,{value:e,original:h.cli||``,valid:!0}),G(`flushModel`,{value:t,original:h.model||``,valid:!0})},onFlushModelChange:e=>{S({...x,model:e}),G(`flushModel`,{value:e,original:h.model||``,valid:!0})}}),(0,w.jsx)(ve,{roster:D,original:T,cliOptions:Y,cliMeta:j,loading:k,error:he,onRosterChange:e=>{if(O(e),me(e,T)){n.remove(`runtimeEmployees`);return}n.set(`runtimeEmployees`,{value:e,original:T,valid:!pe(e)})}})]})}export{be as CliProbeNotice,L as conflictSettingsFromError,R as default,I as splitAgentSaveBundle};
1
+ import{r as e}from"./rolldown-runtime-XQCOJYun.js";import{n as t}from"./settings-types-DPhhM-cj.js";import{n,t as r}from"./jsx-runtime-CYoNlHAD.js";import{t as i}from"./settings-client-D9KY2Ufl.js";import{t as a}from"./error-normalize-CLRJh19F.js";import{a as o,i as s,n as c,r as l,t as u}from"./page-shell-GpE8A-FA.js";import{i as d,s as f}from"./fields-BwOMlwS0.js";import{a as p,n as m,o as h}from"./Permissions-RgyF1O6q.js";import{a as ee,c as g,i as _,l as v,n as y,o as b,r as te,s as ne,t as x}from"./agent-meta-DrYdO9lB.js";import{t as S}from"./path-utils-CHwADH-r.js";var C=e(n(),1),re=1e3,ie=8e3,ae=9e4;function oe(e,t){if(!e||!t)return!1;let n=e[t]?.probeState;return n?n===`checking`||n===`failing`:!1}function se(e){let t=re*2**Math.min(Number.isFinite(e)&&e>0?Math.floor(e):0,8);return Math.min(Math.max(t,re),ie)}function ce(e){let{snapshot:t,cli:n,attempts:r,now:i,deadline:a}=e;if(!oe(t,n))return{kind:`stop`};if(i>=a||r>=24)return{kind:`exhausted`};let o=t?.[n]?.nextRetryAt,s=typeof o==`number`&&o>i?o:i+se(r);return{kind:`wait`,delayMs:Math.max(Math.min(s,a)-i,0)}}var w=r();function le({cli:e,cliOptions:t,provider:n=``,providerOptions:r=[],model:i,modelOptions:a,effort:o,effortOptions:c,workingDir:l,workingDirError:u,cliMeta:p,onCliChange:m,onProviderChange:h,onModelChange:ee,onEffortChange:g,onWorkingDirChange:v}){let y=ne(t),b=y.filter(e=>x.includes(e)).length;return(0,w.jsx)(s,{title:`Agent runtime`,hint:`Active CLI, model, effort, and workspace used by this instance.`,children:(0,w.jsxs)(`div`,{className:`settings-agent-runtime-grid`,children:[(0,w.jsx)(d,{id:`agent-cli`,label:`Active CLI`,value:e,options:y.map(e=>({value:e,label:_(e,p).label||e})),collapsedAfter:b,onChange:m}),r.length>0?(0,w.jsx)(d,{id:`agent-${e}-provider`,label:`Provider`,value:n,options:r.map(e=>({value:e,label:e})),onChange:e=>h?.(e)}):null,(0,w.jsx)(d,{id:`agent-model`,label:`Active model`,value:i,options:a.length>0?a:[{value:``,label:`(default)`}],onChange:ee}),(0,w.jsx)(d,{id:`agent-effort`,label:`Effort`,value:o,options:[{value:``,label:`(default)`},...c.map(e=>({value:e,label:e}))],disabled:c.length===0,onChange:g}),(0,w.jsx)(f,{id:`agent-workingDir`,label:`Working directory`,value:l,error:u,placeholder:`/path/to/project`,onChange:v})]})})}var T=[{value:`auto`,label:`Auto`},{value:`custom`,label:`Custom allowlist`}];function ue({value:e,onChange:t}){let n=p(e),r=n.mode===`custom`?`custom`:`auto`,i=n.mode===`custom`?n.tokens:[],a=n.mode===`custom`?`${i.length} explicit token${i.length===1?``:`s`}`:`Runtime resolves allowed capabilities`;return(0,w.jsxs)(s,{title:`Permissions`,hint:`Quick runtime mode. Open Permissions for detailed allowlist editing.`,children:[(0,w.jsx)(d,{id:`agent-permissions-mode`,label:`Mode`,value:r,options:T,onChange:e=>{t(e===`auto`?`auto`:i.length>0&&m(i)?i:h(null))}}),(0,w.jsx)(`p`,{className:`settings-agent-note`,children:a})]})}function de({activeCli:e,flushCli:t,flushModel:n,cliOptions:r,modelOptions:i,cliMeta:a,loading:o,error:c,onFlushCliChange:l,onFlushModelChange:u}){let f=t||e,p=f?_(f,a).label||f:`active`;return(0,w.jsx)(s,{title:`Flush Agent`,hint:`Separate summary agent used for context flush and compact work.`,children:(0,w.jsxs)(`details`,{className:`settings-agent-flush`,children:[(0,w.jsxs)(`summary`,{children:[(0,w.jsx)(`span`,{children:`Flush runtime`}),(0,w.jsxs)(`code`,{children:[p,n&&n!==`default`?` / ${n}`:``]})]}),o?(0,w.jsx)(`p`,{className:`settings-agent-note`,children:`Loading flush settings...`}):null,c?(0,w.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:c}):null,(0,w.jsxs)(`div`,{className:`settings-agent-runtime-grid`,children:[(0,w.jsx)(d,{id:`agent-flush-cli`,label:`Flush CLI`,value:t,options:[{value:``,label:`(active CLI)`},...r.map(e=>({value:e,label:_(e,a).label||e}))],onChange:l}),(0,w.jsx)(d,{id:`agent-flush-model`,label:`Flush model`,value:n,options:[{value:``,label:`(default)`},...i],onChange:u})]})]})})}function E(e){return e.source===`static`||e.id.startsWith(`static:`)}function D(){return`new:${Date.now().toString(36)}:${Math.random().toString(36).slice(2,8)}`}function O(e,t){let n=e[0]||`claude`,r=t?.[n]?.models?.[0]||`default`;return{id:D(),name:`New Agent`,cli:n,model:r,role:``,status:`idle`,source:`db`}}function fe(e){return Array.isArray(e)?e.map(k).filter(Boolean):e.data.map(k).filter(Boolean)}function k(e){if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.id==`string`?t.id:``,r=typeof t.name==`string`?t.name:``;if(!n||!r)return null;let i=t.source===`static`||n.startsWith(`static:`)?`static`:`db`,a={id:n,name:r,cli:typeof t.cli==`string`&&t.cli?t.cli:`claude`,model:typeof t.model==`string`&&t.model?t.model:`default`,role:typeof t.role==`string`?t.role:``,source:i};return typeof t.status==`string`&&(a.status=t.status),a}function A(e){return e.name.trim()?e.cli.trim()?e.model.trim()?null:`Model is required`:`CLI is required`:`Name is required`}function pe(e){return e.some(e=>A(e)!==null)}function me(e,t){return JSON.stringify(e.map(N))===JSON.stringify(t.map(N))}function he(e,t){let n=new Map(e.map(e=>[e.id,e])),r=new Set(t.map(e=>e.id)),i=[],a=[],o=[];for(let e of t){let t=n.get(e.id);if(!t||e.id.startsWith(`new:`)){i.push(e);continue}let r=M(t,e);Object.keys(r).length>0&&a.push({before:t,after:e,patch:r})}for(let t of e)!r.has(t.id)&&!E(t)&&o.push(t);return{added:i,updated:a,removed:o}}function ge(e,t){let n=he(e,t);return{added:n.added.length,updated:n.updated.length,removed:n.removed.length}}async function j(e,t,n){let r=he(t,n);for(let t of r.removed)await e.delete(`/api/employees/${encodeURIComponent(t.id)}`);for(let t of r.added)await e.post(`/api/employees`,_e(t));for(let t of r.updated)await e.put(`/api/employees/${encodeURIComponent(t.after.id)}`,t.patch)}function M(e,t){if(E(t))return e.model===t.model?{}:{model:t.model};let n={};for(let r of[`name`,`cli`,`model`,`role`,`status`])(e[r]||``)!==(t[r]||``)&&(n[r]=t[r]||``);return n}function _e(e){return{name:e.name.trim()||`New Agent`,cli:e.cli.trim()||`claude`,model:e.model.trim()||`default`,role:e.role.trim()}}function N(e){let t={id:e.id,name:e.name,cli:e.cli,model:e.model,role:e.role,source:e.source};return e.status!==void 0&&(t.status=e.status),t}function P({employee:e,index:t,cliOptions:n,cliMeta:r,onChange:i,onRemove:a}){let o=E(e),s=b(_(e.cli,r).models,e.model),c=A(e),l=Array.from(new Set([...n,e.cli,`claude`])).filter(Boolean);return(0,w.jsxs)(`fieldset`,{className:`settings-runtime-employee-row`,children:[(0,w.jsxs)(`legend`,{children:[e.name||`Employee ${t+1}`,o?(0,w.jsx)(`span`,{children:`static`}):null]}),(0,w.jsxs)(`div`,{className:`settings-runtime-employee-grid`,children:[(0,w.jsx)(f,{id:`runtime-employee-${e.id}-name`,label:`Name`,value:e.name,disabled:o,error:c===`Name is required`?c:null,onChange:e=>i({name:e})}),(0,w.jsx)(d,{id:`runtime-employee-${e.id}-cli`,label:`CLI`,value:e.cli,disabled:o,options:l.map(e=>({value:e,label:_(e,r).label||e})),onChange:e=>{i({cli:e,model:_(e,r).models[0]||`default`})}}),(0,w.jsx)(d,{id:`runtime-employee-${e.id}-model`,label:`Model`,value:e.model,options:s.length>0?s:[{value:`default`,label:`default`}],onChange:e=>i({model:e})}),(0,w.jsx)(f,{id:`runtime-employee-${e.id}-role`,label:`Role`,value:e.role,disabled:o,onChange:e=>i({role:e})})]}),(0,w.jsxs)(`div`,{className:`settings-runtime-employee-footer`,children:[(0,w.jsxs)(`span`,{children:[e.source,e.status?` / ${e.status}`:``]}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,disabled:o,onClick:a,"aria-label":`Remove employee ${e.name||t+1}`,children:`Remove`})]})]})}function ve({roster:e,original:t,cliOptions:n,cliMeta:r,loading:i,error:a,onRosterChange:o}){let c=ge(t,e),l=pe(e);function u(t,n){o(e.map((e,r)=>r===t?{...e,...n}:e))}function d(t){o(e.filter((e,n)=>n!==t))}return(0,w.jsxs)(s,{title:`Employees`,hint:`Runtime dispatch roster. Static employees keep their locked identity; database employees can be edited.`,children:[(0,w.jsxs)(`div`,{className:`settings-runtime-employee-summary`,children:[(0,w.jsxs)(`span`,{children:[`+`,c.added]}),(0,w.jsxs)(`span`,{children:[`~`,c.updated]}),(0,w.jsxs)(`span`,{children:[`-`,c.removed]}),l?(0,w.jsx)(`strong`,{children:`Fix invalid rows before saving.`}):null]}),i?(0,w.jsx)(`p`,{className:`settings-agent-note`,children:`Loading employees...`}):null,a?(0,w.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:a}):null,e.length===0?(0,w.jsx)(`p`,{className:`settings-empty`,children:`No runtime employees configured.`}):(0,w.jsx)(`div`,{className:`settings-runtime-employee-list`,children:e.map((e,t)=>(0,w.jsx)(P,{employee:e,index:t,cliOptions:n,cliMeta:r??null,onChange:e=>u(t,e),onRemove:()=>d(t)},e.id))}),(0,w.jsx)(`div`,{className:`settings-employee-footer-bar`,children:(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,onClick:()=>o([...e,O(n,r)]),children:`+ Add employee`})})]})}var F=new Set([`runtimeEmployees`,`flushCli`,`flushModel`]);function I(e){let t={},n=null,r=null;for(let[i,a]of Object.entries(e))i===`runtimeEmployees`?r=a:i===`flushCli`||i===`flushModel`?(n??={},n[i===`flushCli`?`cli`:`model`]=String(a??``)):F.has(i)||(t[i]=a);return{settingsBundle:t,flushPatch:n,runtimeEmployeesNext:r}}async function ye(e){let{client:t,bundle:n,employeeDraft:r,employeeOriginal:i}=e;if(pe(r))throw Error(`runtime employees: fix invalid rows before saving`);let{settingsBundle:a,flushPatch:o,runtimeEmployeesNext:s}=I(n),c=null;try{if(Object.keys(a).length>0){let e=await t.put(`/api/settings`,S(a));c=e&&typeof e==`object`&&`data`in e?e.data:e}}catch(e){throw Error(`settings save failed: ${e instanceof Error?e.message:String(e)}`)}try{o&&await t.put(`/api/memory-files/settings`,o)}catch(e){throw Error(`flush settings save failed: ${e instanceof Error?e.message:String(e)}`)}try{s&&await j(t,i,s)}catch(e){throw Error(`runtime employees save failed: ${e instanceof Error?e.message:String(e)}`)}return c}function be({status:e,exhausted:n=!1}){if(n)return(0,w.jsx)(`div`,{className:`settings-inline-notice`,role:`alert`,children:`상태 확인이 끝나지 않았습니다. 새로고침하거나 잠시 후 다시 확인하세요.`});if(!e)return null;let r=t(e);return r.kind===`checking`?(0,w.jsx)(`div`,{className:`settings-inline-notice`,role:`status`,"aria-live":`polite`,children:`상태 확인 중`}):r.kind===`unknown`?(0,w.jsx)(`div`,{className:`settings-inline-notice`,role:`alert`,children:r.message}):r.kind===`failing`?(0,w.jsxs)(`div`,{className:`settings-inline-notice`,role:`alert`,children:[`상태 확인 실패 (재시도 중)`,e.probeError?`: ${e.probeError}`:``]}):null}function L(e){if(!(e instanceof i)||e.status!==409)return null;try{return JSON.parse(e.detail).settings??null}catch{return null}}function R({port:e,client:t,dirty:n,registerSave:r}){let{state:i,refresh:s,setData:d}=o(t,`/api/settings`),[f,m]=(0,C.useState)({cli:``,provider:``,model:``,effort:``,workingDir:``,permissions:`auto`}),[h,ne]=(0,C.useState)({}),[x,S]=(0,C.useState)({}),[re,ie]=(0,C.useState)(!0),[oe,se]=(0,C.useState)(null),[T,E]=(0,C.useState)([]),[D,O]=(0,C.useState)([]),[k,A]=(0,C.useState)(!0),[he,ge]=(0,C.useState)(null),[j,M]=(0,C.useState)(null),[_e,N]=(0,C.useState)({}),[P,F]=(0,C.useState)(!1),[I,R]=(0,C.useState)(null),[xe,Se]=(0,C.useState)(!1),[Ce,we]=(0,C.useState)(null),z=(0,C.useCallback)(async()=>{try{let e=await t.get(`/api/cli-registry`);M(ee(e&&typeof e==`object`&&`data`in e?e.data:e))}catch{M(null)}},[t]),B=(0,C.useRef)(0),V=(0,C.useRef)({}),[Te,Ee]=(0,C.useState)(!1),H=(0,C.useCallback)(async e=>{try{let n=await t.get(`/api/cli-status`);if(e!==void 0&&e!==B.current)return;V.current=n,N(n)}catch{if(e!==void 0&&e!==B.current)return;V.current={},N({})}},[t]),U=(0,C.useCallback)(async()=>{ie(!0),se(null);try{let e=await t.get(`/api/memory-files`),n={cli:e.cli||``,model:e.model||``};ne(n),S(n)}catch(e){se(e instanceof Error?e.message:String(e))}finally{ie(!1)}},[t]),W=(0,C.useCallback)(async()=>{A(!0),ge(null);try{let e=fe(await t.get(`/api/employees`));E(e),O(e)}catch(e){ge(e instanceof Error?e.message:String(e))}finally{A(!1)}},[t]);(0,C.useEffect)(()=>{z(),H(),U(),W()},[z,H,W,U]),(0,C.useEffect)(()=>{if(!f.cli)return;let e=B.current+1;B.current=e,Ee(!1);let t=Date.now()+ae,n=0,r,i=()=>{if(e!==B.current)return;let a=ce({snapshot:V.current,cli:f.cli,attempts:n,now:Date.now(),deadline:t});if(a.kind!==`stop`){if(a.kind===`exhausted`){Ee(!0);return}r=setTimeout(()=>{e===B.current&&(n+=1,H(e).then(()=>{e===B.current&&i()}))},a.delayMs)}};return i(),()=>{B.current=e+1,r!==void 0&&clearTimeout(r)}},[f.cli,H]),(0,C.useEffect)(()=>{if(i.kind!==`ready`)return;let e=Object.keys(i.data.perCli||{}),t=i.data.cli||e[0]||``,n=p(i.data.permissions),r=_(t,j);m({cli:t,provider:i.data.perCli?.[t]?.provider||r.defaultProvider||``,model:v(t,i.data.perCli,i.data.activeOverrides),effort:g(t,i.data.perCli,i.data.activeOverrides),workingDir:i.data.workingDir||``,permissions:n.mode===`custom`?n.tokens:`auto`})},[j,i]),(0,C.useEffect)(()=>()=>{for(let e of Array.from(n.pending.keys()))(e===`cli`||e===`workingDir`||e===`permissions`||e===`runtimeEmployees`||e===`flushCli`||e===`flushModel`||e.startsWith(`activeOverrides.`))&&n.remove(e)},[n]);let G=(0,C.useCallback)((e,t)=>n.set(e,t),[n]),De=(0,C.useCallback)(async()=>{let e=n.saveBundle();if(Object.keys(e).length===0)return;let r=await ye({client:t,bundle:e,employeeDraft:D,employeeOriginal:T});n.clear(),r&&d(r),await s(),await z(),await U(),await W()},[t,n,D,T,z,W,U,s,d]);(0,C.useEffect)(()=>{if(r)return r(De),()=>r(null)},[r,De]);let K=i.kind===`ready`?i.data:{},q=K.perCli||{},J=K.activeOverrides||{},Y=(0,C.useMemo)(()=>Object.keys(q),[q]),X=_(f.cli,j),Z=f.provider||X.defaultProvider||X.providers?.[0]||``,Oe=f.cli===`pi`,Q=!Oe&&(X.providers?.length??0)>0,ke=b(Q&&X.modelsByProvider?.[Z]||X.models,f.model),Ae=Q?te(X,f.model,X.effortsByProvider?.[Z]||X.efforts,Z):te(X,f.model),je=f.workingDir.trim()?null:`Required`,Me=(0,C.useCallback)(async e=>{F(!0),R(null);try{let n=await t.post(`/api/settings/runtime-default-migration`,{action:e}),r;r=`settings`in n&&n.settings?n.settings:`data`in n&&n.data?n.data:n,d(r)}catch(e){let t=L(e);if(t){d(t);return}R(a(e))}finally{F(!1)}},[t,d]),Ne=(0,C.useCallback)(async e=>{Se(!0),we(null);try{let n=await t.post(`/api/settings/multi-session-default-migration`,{action:e}),r;r=`settings`in n&&n.settings?n.settings:`data`in n&&n.data?n.data:n,d(r)}catch(e){let t=L(e);if(t){d(t);return}we(a(e))}finally{Se(!1)}},[t,d]);if(i.kind===`loading`)return(0,w.jsx)(c,{});if(i.kind===`offline`)return(0,w.jsx)(l,{port:e});if(i.kind===`error`)return(0,w.jsx)(u,{message:i.message});function Pe(){for(let e of Array.from(n.pending.keys()))e.startsWith(`activeOverrides.`)&&n.remove(e)}function $(e){m(e)}return(0,w.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>{e.preventDefault(),De()},children:[K.runtimeDefaultMigration?.state===`pending`?(0,w.jsxs)(`div`,{className:`settings-inline-notice`,role:`status`,children:[(0,w.jsx)(`strong`,{children:`기본 런타임 변경 안내`}),(0,w.jsx)(`p`,{children:`기존 선택은 유지됩니다. Codex App으로 전환하거나 현재 런타임을 계속 사용할 수 있습니다.`}),(0,w.jsxs)(`div`,{className:`settings-inline-actions`,children:[(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,disabled:P,onClick:()=>void Me(`accept`),children:`Codex App 사용`}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-secondary`,disabled:P,onClick:()=>void Me(`keep`),children:`현재 런타임 유지`})]}),I?(0,w.jsx)(`span`,{className:`settings-field-error`,role:`alert`,children:I}):null]}):null,K.multiSessionDefaultMigration?.state===`pending`?(0,w.jsxs)(`div`,{className:`settings-inline-notice`,role:`status`,children:[(0,w.jsx)(`strong`,{children:`다중 세션 안내`}),(0,w.jsx)(`p`,{children:`대화 세션을 여러 개 열 수 있습니다. 켜면 동시 실행도 2로 올라가서, 두 번째 세션이 첫 번째가 끝나기를 기다리지 않습니다. 지금 설정은 그대로 유지됩니다.`}),(0,w.jsxs)(`div`,{className:`settings-inline-actions`,children:[(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,disabled:xe,onClick:()=>void Ne(`accept`),children:`다중 세션 켜기`}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-secondary`,disabled:xe,onClick:()=>void Ne(`keep`),children:`지금 설정 유지`})]}),Ce?(0,w.jsx)(`span`,{className:`settings-field-error`,role:`alert`,children:Ce}):null]}):null,(0,w.jsx)(be,{status:_e[f.cli],exhausted:Te}),(0,w.jsx)(le,{cli:f.cli,cliOptions:Y.length>0?Y:[f.cli||`claude`],provider:Z,providerOptions:Oe?[]:X.providers||[],model:f.model,modelOptions:ke,effort:f.effort,effortOptions:Ae,workingDir:f.workingDir,workingDirError:je,cliMeta:j,onCliChange:e=>{let t=_(e,j),n={...f,cli:e,provider:q[e]?.provider||t.defaultProvider||``,model:v(e,q,J),effort:g(e,q,J)};Pe(),$(n),G(`cli`,{value:e,original:K.cli||``,valid:!0})},onProviderChange:e=>{let t=X.modelsByProvider?.[e]||[],n=X.effortsByProvider?.[e]||[],r=t.includes(f.model)?f.model:t[0]||``,i=y(X,r,f.effort,n,e);$({...f,provider:e,model:r,effort:i}),G(`perCli.${f.cli}.provider`,{value:e,original:q[f.cli]?.provider||X.defaultProvider||``,valid:!0}),G(`activeOverrides.${f.cli}.model`,{value:r,original:v(f.cli,q,J),valid:r.trim().length>0}),G(`activeOverrides.${f.cli}.effort`,{value:i,original:g(f.cli,q,J),valid:!0})},onModelChange:e=>{let t=y(X,e,f.effort,Q?X.effortsByProvider?.[Z]||X.efforts:void 0,Q?Z:void 0);$({...f,model:e,effort:t}),G(`activeOverrides.${f.cli}.model`,{value:e,original:v(f.cli,q,J),valid:e.trim().length>0}),t!==f.effort&&G(`activeOverrides.${f.cli}.effort`,{value:t,original:g(f.cli,q,J),valid:!0})},onEffortChange:e=>{$({...f,effort:e}),G(`activeOverrides.${f.cli}.effort`,{value:e,original:g(f.cli,q,J),valid:!0})},onWorkingDirChange:e=>{$({...f,workingDir:e}),G(`workingDir`,{value:e,original:K.workingDir||``,valid:e.trim().length>0})}}),(0,w.jsx)(ue,{value:f.permissions,onChange:e=>{$({...f,permissions:e}),G(`permissions`,{value:e,original:K.permissions??`auto`,valid:e===`auto`||e.length>0})}}),(0,w.jsx)(de,{activeCli:f.cli,flushCli:x.cli||``,flushModel:x.model||``,cliOptions:Y,cliMeta:j,modelOptions:b(_(x.cli||f.cli,j).models,x.model||``),loading:re,error:oe,onFlushCliChange:e=>{let t=e&&_(e,j).models[0]||``;S({cli:e,model:t}),G(`flushCli`,{value:e,original:h.cli||``,valid:!0}),G(`flushModel`,{value:t,original:h.model||``,valid:!0})},onFlushModelChange:e=>{S({...x,model:e}),G(`flushModel`,{value:e,original:h.model||``,valid:!0})}}),(0,w.jsx)(ve,{roster:D,original:T,cliOptions:Y,cliMeta:j,loading:k,error:he,onRosterChange:e=>{if(O(e),me(e,T)){n.remove(`runtimeEmployees`);return}n.set(`runtimeEmployees`,{value:e,original:T,valid:!pe(e)})}})]})}export{be as CliProbeNotice,L as conflictSettingsFromError,R as default,I as splitAgentSaveBundle};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-XQCOJYun.js";import{n as t,t as n}from"./jsx-runtime-CYoNlHAD.js";import{a as r,i,n as a,r as o,t as s}from"./page-shell-GpE8A-FA.js";import{a as c,i as l,s as u}from"./fields-BwOMlwS0.js";import{i as d}from"./agent-meta-Bl-Q0EgC.js";import{t as f}from"./path-utils-CHwADH-r.js";var p=e(t(),1),m=n(),h=[{value:`every`,label:`every (interval)`},{value:`cron`,label:`cron expression`}];function g({job:e,index:t,bodyError:n,timeZoneError:r,onChange:i,onRemove:a}){let o=(0,p.useId)(),s=e.schedule.kind,d=e.schedule.timeZone??``;return(0,m.jsxs)(`fieldset`,{className:`settings-heartbeat-job`,"aria-label":`Heartbeat job ${t+1}${e.name?` (${e.name})`:``}`,children:[(0,m.jsx)(`legend`,{className:`settings-heartbeat-job-legend`,children:e.name||`Job ${t+1}`}),(0,m.jsx)(c,{id:`${o}-enabled`,label:`Enabled`,value:e.enabled,onChange:e=>i({enabled:e})}),(0,m.jsx)(u,{id:`${o}-name`,label:`Name`,value:e.name,placeholder:`Morning summary`,onChange:e=>i({name:e})}),(0,m.jsx)(l,{id:`${o}-kind`,label:`Schedule kind`,value:s,options:h,onChange:e=>{e===`every`&&s!==`every`?i({schedule:{kind:`every`,minutes:30,...d?{timeZone:d}:{}}}):e===`cron`&&s!==`cron`&&i({schedule:{kind:`cron`,cron:`0 9 * * *`,...d?{timeZone:d}:{}}})}}),s===`every`?(0,m.jsx)(u,{id:`${o}-minutes`,label:`Every (minutes)`,value:String(e.schedule.minutes??``),placeholder:`30`,error:n??null,onChange:e=>{let t=e.trim(),n=Number(t);i({schedule:{kind:`every`,minutes:Number.isFinite(n)?n:NaN,...d?{timeZone:d}:{}}})}}):(0,m.jsx)(u,{id:`${o}-cron`,label:`Cron expression`,value:e.schedule.cron??``,placeholder:`0 9 * * *`,error:n??null,onChange:e=>i({schedule:{kind:`cron`,cron:e,...d?{timeZone:d}:{}}})}),(0,m.jsx)(u,{id:`${o}-tz`,label:`Time zone (optional)`,value:d,placeholder:`Asia/Seoul`,error:r??null,onChange:t=>{let n=t.trim();i(s===`every`?{schedule:{kind:`every`,minutes:e.schedule.minutes,...n?{timeZone:n}:{}}}:{schedule:{kind:`cron`,cron:e.schedule.cron,...n?{timeZone:n}:{}}})}}),(0,m.jsxs)(`label`,{className:`settings-field settings-field-textarea`,htmlFor:`${o}-prompt`,children:[(0,m.jsx)(`span`,{className:`settings-field-label`,children:`Prompt`}),(0,m.jsx)(`textarea`,{id:`${o}-prompt`,rows:3,value:e.prompt,placeholder:`What should this heartbeat do?`,onChange:e=>i({prompt:e.target.value})})]}),(0,m.jsx)(`div`,{className:`settings-heartbeat-job-footer`,children:(0,m.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,onClick:a,children:`Remove job`})})]})}var _=/^\d+[smh]$/,v=/^([01]\d|2[0-3]):[0-5]\d$/,y=[`ai-e`,`claude`,`claude-e`,`codex`,`codex-app`,`copilot`,`cursor`,`kiro-code`,`gemini`,`grok`,`opencode`],b=[`heartbeat.enabled`,`heartbeat.every`,`heartbeat.activeHours.start`,`heartbeat.activeHours.end`,`heartbeat.target`],x=[`heartbeat.jobs`,`heartbeat.md`];function S(e){return _.test(e.trim())}function C(e){return v.test(e.trim())}function w(e=Date.now()){return{id:`hb_${e}`,name:``,enabled:!0,schedule:{kind:`every`,minutes:30},prompt:``}}function T(e){return e.startsWith(`heartbeat.`)&&e!==`heartbeat.jobs`&&e!==`heartbeat.md`}function E(e,t){if(!e||typeof e!=`object`)return null;let n=e,r=typeof n.id==`string`&&n.id.trim()?n.id.trim():`hb_unknown_${t}`,i=typeof n.name==`string`?n.name:``,a=n.enabled!==!1,o=typeof n.prompt==`string`?n.prompt:``,s=n.schedule,c;if(s&&typeof s==`object`){let e=s;c=e.kind===`cron`&&typeof e.cron==`string`?{kind:`cron`,cron:e.cron,...typeof e.timeZone==`string`&&e.timeZone?{timeZone:e.timeZone}:{}}:{kind:`every`,minutes:typeof e.minutes==`number`?e.minutes:30,...typeof e.timeZone==`string`&&e.timeZone?{timeZone:e.timeZone}:{}}}else c={kind:`every`,minutes:30};return{id:r,name:i,enabled:a,schedule:c,prompt:o}}function D(e){if(!e||typeof e!=`object`)return[];let t=e.jobs;return Array.isArray(t)?t.map((e,t)=>E(e,t)).filter(e=>e!==null):[]}function O(e){if(e.kind===`every`){let t=e.minutes;return!Number.isFinite(t)||t<=0||!Number.isInteger(t)?`Minutes must be a positive integer`:null}let t=e.cron?.trim()??``;return t?t.split(/\s+/).length<5?`Cron must have at least 5 fields`:null:`Cron expression required`}function k(e){return e.some(e=>O(e.schedule)!==null)}function A({port:e,client:t,dirty:n,snapshot:r}){let[i,a]=(0,p.useState)([]),[c,l]=(0,p.useState)([]),[u,d]=(0,p.useState)(!1),[f,h]=(0,p.useState)(null);(0,p.useEffect)(()=>{if(r.kind!==`ready`)return;let e=D(r.data);a(e),l(e)},[r]),(0,p.useEffect)(()=>{n.set(`heartbeat.jobs`,{value:i,original:c,valid:!k(i)})},[i,c,n]),(0,p.useEffect)(()=>()=>{n.remove(`heartbeat.jobs`)},[n]);let _=(0,p.useCallback)(async()=>{if(k(i)){h(`Fix invalid schedules before saving.`);return}d(!0),h(null);try{let e=D(await t.put(`/api/heartbeat`,{jobs:i}));a(e),l(e),n.remove(`heartbeat.jobs`)}catch(e){h(e instanceof Error?e.message:String(e))}finally{d(!1)}},[t,n,i]);if(r.kind===`loading`)return(0,m.jsx)(`p`,{className:`settings-section-hint`,children:`Loading jobs…`});if(r.kind===`offline`)return(0,m.jsx)(o,{port:e});if(r.kind===`error`)return(0,m.jsx)(s,{message:r.message});let v=n.pending.has(`heartbeat.jobs`),y=k(i);function b(e,t){a(n=>n.map((n,r)=>r===e?{...n,...t}:n))}function x(){a(e=>[...e,w()])}function S(e){a(t=>t.filter((t,n)=>n!==e))}return(0,m.jsxs)(m.Fragment,{children:[i.length===0?(0,m.jsx)(`p`,{className:`settings-section-hint`,children:`No jobs configured. Add one below.`}):(0,m.jsx)(`div`,{className:`settings-heartbeat-jobs-list`,children:i.map((e,t)=>(0,m.jsx)(g,{job:e,index:t,bodyError:O(e.schedule),onChange:e=>b(t,e),onRemove:()=>S(t)},e.id))}),(0,m.jsxs)(`div`,{className:`settings-heartbeat-jobs-footer`,children:[(0,m.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,onClick:x,children:`+ Add job`}),(0,m.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,onClick:()=>void _(),disabled:u||!v||y,children:u?`Saving…`:`Apply jobs`})]}),f?(0,m.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:f}):null]})}function j({port:e,client:t,dirty:n,snapshot:r}){let[i,a]=(0,p.useState)(``),[c,l]=(0,p.useState)(``),[u,d]=(0,p.useState)(!1),[f,h]=(0,p.useState)(null);(0,p.useEffect)(()=>{if(r.kind!==`ready`)return;let e=r.data.content??``;a(e),l(e)},[r]),(0,p.useEffect)(()=>{n.set(`heartbeat.md`,{value:i,original:c,valid:!0})},[i,c,n]),(0,p.useEffect)(()=>()=>{n.remove(`heartbeat.md`)},[n]);let g=(0,p.useCallback)(async()=>{d(!0),h(null);try{await t.put(`/api/heartbeat-md`,{content:i}),l(i),n.remove(`heartbeat.md`)}catch(e){h(e instanceof Error?e.message:String(e))}finally{d(!1)}},[t,n,i]);if(r.kind===`loading`)return(0,m.jsx)(`p`,{className:`settings-section-hint`,children:`Loading template…`});if(r.kind===`offline`)return(0,m.jsx)(o,{port:e});if(r.kind===`error`)return(0,m.jsx)(s,{message:r.message});let _=n.pending.has(`heartbeat.md`);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`label`,{className:`settings-field settings-field-textarea`,htmlFor:`hb-md`,children:[(0,m.jsx)(`span`,{className:`settings-field-label`,children:`Template`}),(0,m.jsx)(`textarea`,{id:`hb-md`,rows:10,spellCheck:!1,value:i,onChange:e=>a(e.target.value),style:{fontFamily:`ui-monospace, monospace`}})]}),(0,m.jsx)(`div`,{className:`settings-heartbeat-md-footer`,children:(0,m.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,onClick:()=>void g(),disabled:u||!_,children:u?`Saving…`:`Save template`})}),f?(0,m.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:f}):null]})}function M({port:e,client:t,dirty:n,registerSave:h}){let g=r(t,`/api/settings`),_=r(t,`/api/heartbeat`),v=r(t,`/api/heartbeat-md`),[x,w]=(0,p.useState)(!1),[E,D]=(0,p.useState)(`30m`),[O,k]=(0,p.useState)(`08:00`),[M,N]=(0,p.useState)(`22:00`),[P,F]=(0,p.useState)(`all`);(0,p.useEffect)(()=>{if(g.state.kind!==`ready`)return;let e=g.state.data.heartbeat||{};w(!!e.enabled),D(typeof e.every==`string`?e.every:`30m`),k(e.activeHours?.start??`08:00`),N(e.activeHours?.end??`22:00`),F(typeof e.target==`string`?e.target:`all`)},[g.state]),(0,p.useEffect)(()=>()=>{for(let e of b)n.remove(e)},[n]);let I=(0,p.useMemo)(()=>g.state.kind===`ready`&&g.state.data.heartbeat||{},[g.state]),L=(0,p.useCallback)((e,t)=>n.set(e,t),[n]),R=(0,p.useRef)(0),z=(0,p.useCallback)(async()=>{let e=n.saveBundle(),r={};for(let[t,n]of Object.entries(e))T(t)&&(r[t]=n);if(Object.keys(r).length===0)return;let i=++R.current,a=f(r),o=await t.put(`/api/settings`,a);if(i!==R.current)return;let s=o&&typeof o==`object`&&`data`in o?o.data:o;for(let e of b)n.remove(e);g.setData(s);let c=s.heartbeat||{};w(!!c.enabled),D(typeof c.every==`string`?c.every:`30m`),k(c.activeHours?.start??`08:00`),N(c.activeHours?.end??`22:00`),F(typeof c.target==`string`?c.target:`all`),await g.refresh()},[t,n,g]);if((0,p.useEffect)(()=>{if(h)return h(z),()=>h(null)},[h,z]),g.state.kind===`loading`)return(0,m.jsx)(a,{});if(g.state.kind===`offline`)return(0,m.jsx)(o,{port:e});if(g.state.kind===`error`)return(0,m.jsx)(s,{message:g.state.message});let B=S(E)?null:"Use the form `<n>s|m|h`, e.g. `30m`",V=C(O)?null:`Use HH:MM (24h)`,H=C(M)?null:`Use HH:MM (24h)`,U=g.state.data.perCli||{},W=Object.keys(U),G=[{value:`all`,label:`all (broadcast)`},...(W.length>0?W:[...y]).map(e=>({value:e,label:d(e).label||e}))];return G.some(e=>e.value===P)||G.push({value:P,label:`${d(P).label||P} (legacy)`}),(0,m.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>{e.preventDefault(),z()},children:[(0,m.jsxs)(i,{title:`Heartbeat`,hint:`Background prompts the agent runs on a schedule.`,children:[(0,m.jsx)(c,{id:`hb-enabled`,label:`Heartbeat enabled`,value:x,onChange:e=>{w(e),L(`heartbeat.enabled`,{value:e,original:!!I.enabled,valid:!0})}}),(0,m.jsx)(u,{id:`hb-every`,label:`Default interval`,value:E,placeholder:`30m`,error:B,onChange:e=>{D(e),L(`heartbeat.every`,{value:e,original:I.every??`30m`,valid:S(e)})}}),(0,m.jsx)(u,{id:`hb-start`,label:`Active hours start`,value:O,placeholder:`08:00`,error:V,onChange:e=>{k(e),L(`heartbeat.activeHours.start`,{value:e,original:I.activeHours?.start??`08:00`,valid:C(e)})}}),(0,m.jsx)(u,{id:`hb-end`,label:`Active hours end`,value:M,placeholder:`22:00`,error:H,onChange:e=>{N(e),L(`heartbeat.activeHours.end`,{value:e,original:I.activeHours?.end??`22:00`,valid:C(e)})}}),(0,m.jsx)(l,{id:`hb-target`,label:`Target`,value:P,options:G,onChange:e=>{F(e),L(`heartbeat.target`,{value:e,original:I.target??`all`,valid:!0})}})]}),(0,m.jsx)(i,{title:`Jobs`,hint:`Each job replaces the entire heartbeat.json on save. Concurrent edits from multiple browsers will overwrite — last write wins.`,children:(0,m.jsx)(A,{port:e,client:t,dirty:n,snapshot:_.state})}),(0,m.jsx)(i,{title:`Default heartbeat prompt template`,hint:`Markdown shown to the agent when a heartbeat fires without a job-specific prompt.`,children:(0,m.jsx)(j,{port:e,client:t,dirty:n,snapshot:v.state})})]})}export{x as PAGE_LOCAL_KEYS,b as SECTION_A_KEYS,y as TARGET_FALLBACK,M as default,T as isHeartbeatSettingsKey,O as jobScheduleBodyError,k as jobsHaveErrors,w as makeDefaultJob,D as normalizeJobsResponse,C as validateHHMM,S as validateInterval};
1
+ import{r as e}from"./rolldown-runtime-XQCOJYun.js";import{n as t,t as n}from"./jsx-runtime-CYoNlHAD.js";import{a as r,i,n as a,r as o,t as s}from"./page-shell-GpE8A-FA.js";import{a as c,i as l,s as u}from"./fields-BwOMlwS0.js";import{i as d}from"./agent-meta-DrYdO9lB.js";import{t as f}from"./path-utils-CHwADH-r.js";var p=e(t(),1),m=n(),h=[{value:`every`,label:`every (interval)`},{value:`cron`,label:`cron expression`}];function g({job:e,index:t,bodyError:n,timeZoneError:r,onChange:i,onRemove:a}){let o=(0,p.useId)(),s=e.schedule.kind,d=e.schedule.timeZone??``;return(0,m.jsxs)(`fieldset`,{className:`settings-heartbeat-job`,"aria-label":`Heartbeat job ${t+1}${e.name?` (${e.name})`:``}`,children:[(0,m.jsx)(`legend`,{className:`settings-heartbeat-job-legend`,children:e.name||`Job ${t+1}`}),(0,m.jsx)(c,{id:`${o}-enabled`,label:`Enabled`,value:e.enabled,onChange:e=>i({enabled:e})}),(0,m.jsx)(u,{id:`${o}-name`,label:`Name`,value:e.name,placeholder:`Morning summary`,onChange:e=>i({name:e})}),(0,m.jsx)(l,{id:`${o}-kind`,label:`Schedule kind`,value:s,options:h,onChange:e=>{e===`every`&&s!==`every`?i({schedule:{kind:`every`,minutes:30,...d?{timeZone:d}:{}}}):e===`cron`&&s!==`cron`&&i({schedule:{kind:`cron`,cron:`0 9 * * *`,...d?{timeZone:d}:{}}})}}),s===`every`?(0,m.jsx)(u,{id:`${o}-minutes`,label:`Every (minutes)`,value:String(e.schedule.minutes??``),placeholder:`30`,error:n??null,onChange:e=>{let t=e.trim(),n=Number(t);i({schedule:{kind:`every`,minutes:Number.isFinite(n)?n:NaN,...d?{timeZone:d}:{}}})}}):(0,m.jsx)(u,{id:`${o}-cron`,label:`Cron expression`,value:e.schedule.cron??``,placeholder:`0 9 * * *`,error:n??null,onChange:e=>i({schedule:{kind:`cron`,cron:e,...d?{timeZone:d}:{}}})}),(0,m.jsx)(u,{id:`${o}-tz`,label:`Time zone (optional)`,value:d,placeholder:`Asia/Seoul`,error:r??null,onChange:t=>{let n=t.trim();i(s===`every`?{schedule:{kind:`every`,minutes:e.schedule.minutes,...n?{timeZone:n}:{}}}:{schedule:{kind:`cron`,cron:e.schedule.cron,...n?{timeZone:n}:{}}})}}),(0,m.jsxs)(`label`,{className:`settings-field settings-field-textarea`,htmlFor:`${o}-prompt`,children:[(0,m.jsx)(`span`,{className:`settings-field-label`,children:`Prompt`}),(0,m.jsx)(`textarea`,{id:`${o}-prompt`,rows:3,value:e.prompt,placeholder:`What should this heartbeat do?`,onChange:e=>i({prompt:e.target.value})})]}),(0,m.jsx)(`div`,{className:`settings-heartbeat-job-footer`,children:(0,m.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,onClick:a,children:`Remove job`})})]})}var _=/^\d+[smh]$/,v=/^([01]\d|2[0-3]):[0-5]\d$/,y=[`ai-e`,`claude`,`claude-e`,`codex`,`codex-app`,`copilot`,`cursor`,`kiro-code`,`gemini`,`grok`,`opencode`],b=[`heartbeat.enabled`,`heartbeat.every`,`heartbeat.activeHours.start`,`heartbeat.activeHours.end`,`heartbeat.target`],x=[`heartbeat.jobs`,`heartbeat.md`];function S(e){return _.test(e.trim())}function C(e){return v.test(e.trim())}function w(e=Date.now()){return{id:`hb_${e}`,name:``,enabled:!0,schedule:{kind:`every`,minutes:30},prompt:``}}function T(e){return e.startsWith(`heartbeat.`)&&e!==`heartbeat.jobs`&&e!==`heartbeat.md`}function E(e,t){if(!e||typeof e!=`object`)return null;let n=e,r=typeof n.id==`string`&&n.id.trim()?n.id.trim():`hb_unknown_${t}`,i=typeof n.name==`string`?n.name:``,a=n.enabled!==!1,o=typeof n.prompt==`string`?n.prompt:``,s=n.schedule,c;if(s&&typeof s==`object`){let e=s;c=e.kind===`cron`&&typeof e.cron==`string`?{kind:`cron`,cron:e.cron,...typeof e.timeZone==`string`&&e.timeZone?{timeZone:e.timeZone}:{}}:{kind:`every`,minutes:typeof e.minutes==`number`?e.minutes:30,...typeof e.timeZone==`string`&&e.timeZone?{timeZone:e.timeZone}:{}}}else c={kind:`every`,minutes:30};return{id:r,name:i,enabled:a,schedule:c,prompt:o}}function D(e){if(!e||typeof e!=`object`)return[];let t=e.jobs;return Array.isArray(t)?t.map((e,t)=>E(e,t)).filter(e=>e!==null):[]}function O(e){if(e.kind===`every`){let t=e.minutes;return!Number.isFinite(t)||t<=0||!Number.isInteger(t)?`Minutes must be a positive integer`:null}let t=e.cron?.trim()??``;return t?t.split(/\s+/).length<5?`Cron must have at least 5 fields`:null:`Cron expression required`}function k(e){return e.some(e=>O(e.schedule)!==null)}function A({port:e,client:t,dirty:n,snapshot:r}){let[i,a]=(0,p.useState)([]),[c,l]=(0,p.useState)([]),[u,d]=(0,p.useState)(!1),[f,h]=(0,p.useState)(null);(0,p.useEffect)(()=>{if(r.kind!==`ready`)return;let e=D(r.data);a(e),l(e)},[r]),(0,p.useEffect)(()=>{n.set(`heartbeat.jobs`,{value:i,original:c,valid:!k(i)})},[i,c,n]),(0,p.useEffect)(()=>()=>{n.remove(`heartbeat.jobs`)},[n]);let _=(0,p.useCallback)(async()=>{if(k(i)){h(`Fix invalid schedules before saving.`);return}d(!0),h(null);try{let e=D(await t.put(`/api/heartbeat`,{jobs:i}));a(e),l(e),n.remove(`heartbeat.jobs`)}catch(e){h(e instanceof Error?e.message:String(e))}finally{d(!1)}},[t,n,i]);if(r.kind===`loading`)return(0,m.jsx)(`p`,{className:`settings-section-hint`,children:`Loading jobs…`});if(r.kind===`offline`)return(0,m.jsx)(o,{port:e});if(r.kind===`error`)return(0,m.jsx)(s,{message:r.message});let v=n.pending.has(`heartbeat.jobs`),y=k(i);function b(e,t){a(n=>n.map((n,r)=>r===e?{...n,...t}:n))}function x(){a(e=>[...e,w()])}function S(e){a(t=>t.filter((t,n)=>n!==e))}return(0,m.jsxs)(m.Fragment,{children:[i.length===0?(0,m.jsx)(`p`,{className:`settings-section-hint`,children:`No jobs configured. Add one below.`}):(0,m.jsx)(`div`,{className:`settings-heartbeat-jobs-list`,children:i.map((e,t)=>(0,m.jsx)(g,{job:e,index:t,bodyError:O(e.schedule),onChange:e=>b(t,e),onRemove:()=>S(t)},e.id))}),(0,m.jsxs)(`div`,{className:`settings-heartbeat-jobs-footer`,children:[(0,m.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,onClick:x,children:`+ Add job`}),(0,m.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,onClick:()=>void _(),disabled:u||!v||y,children:u?`Saving…`:`Apply jobs`})]}),f?(0,m.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:f}):null]})}function j({port:e,client:t,dirty:n,snapshot:r}){let[i,a]=(0,p.useState)(``),[c,l]=(0,p.useState)(``),[u,d]=(0,p.useState)(!1),[f,h]=(0,p.useState)(null);(0,p.useEffect)(()=>{if(r.kind!==`ready`)return;let e=r.data.content??``;a(e),l(e)},[r]),(0,p.useEffect)(()=>{n.set(`heartbeat.md`,{value:i,original:c,valid:!0})},[i,c,n]),(0,p.useEffect)(()=>()=>{n.remove(`heartbeat.md`)},[n]);let g=(0,p.useCallback)(async()=>{d(!0),h(null);try{await t.put(`/api/heartbeat-md`,{content:i}),l(i),n.remove(`heartbeat.md`)}catch(e){h(e instanceof Error?e.message:String(e))}finally{d(!1)}},[t,n,i]);if(r.kind===`loading`)return(0,m.jsx)(`p`,{className:`settings-section-hint`,children:`Loading template…`});if(r.kind===`offline`)return(0,m.jsx)(o,{port:e});if(r.kind===`error`)return(0,m.jsx)(s,{message:r.message});let _=n.pending.has(`heartbeat.md`);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`label`,{className:`settings-field settings-field-textarea`,htmlFor:`hb-md`,children:[(0,m.jsx)(`span`,{className:`settings-field-label`,children:`Template`}),(0,m.jsx)(`textarea`,{id:`hb-md`,rows:10,spellCheck:!1,value:i,onChange:e=>a(e.target.value),style:{fontFamily:`ui-monospace, monospace`}})]}),(0,m.jsx)(`div`,{className:`settings-heartbeat-md-footer`,children:(0,m.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,onClick:()=>void g(),disabled:u||!_,children:u?`Saving…`:`Save template`})}),f?(0,m.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:f}):null]})}function M({port:e,client:t,dirty:n,registerSave:h}){let g=r(t,`/api/settings`),_=r(t,`/api/heartbeat`),v=r(t,`/api/heartbeat-md`),[x,w]=(0,p.useState)(!1),[E,D]=(0,p.useState)(`30m`),[O,k]=(0,p.useState)(`08:00`),[M,N]=(0,p.useState)(`22:00`),[P,F]=(0,p.useState)(`all`);(0,p.useEffect)(()=>{if(g.state.kind!==`ready`)return;let e=g.state.data.heartbeat||{};w(!!e.enabled),D(typeof e.every==`string`?e.every:`30m`),k(e.activeHours?.start??`08:00`),N(e.activeHours?.end??`22:00`),F(typeof e.target==`string`?e.target:`all`)},[g.state]),(0,p.useEffect)(()=>()=>{for(let e of b)n.remove(e)},[n]);let I=(0,p.useMemo)(()=>g.state.kind===`ready`&&g.state.data.heartbeat||{},[g.state]),L=(0,p.useCallback)((e,t)=>n.set(e,t),[n]),R=(0,p.useRef)(0),z=(0,p.useCallback)(async()=>{let e=n.saveBundle(),r={};for(let[t,n]of Object.entries(e))T(t)&&(r[t]=n);if(Object.keys(r).length===0)return;let i=++R.current,a=f(r),o=await t.put(`/api/settings`,a);if(i!==R.current)return;let s=o&&typeof o==`object`&&`data`in o?o.data:o;for(let e of b)n.remove(e);g.setData(s);let c=s.heartbeat||{};w(!!c.enabled),D(typeof c.every==`string`?c.every:`30m`),k(c.activeHours?.start??`08:00`),N(c.activeHours?.end??`22:00`),F(typeof c.target==`string`?c.target:`all`),await g.refresh()},[t,n,g]);if((0,p.useEffect)(()=>{if(h)return h(z),()=>h(null)},[h,z]),g.state.kind===`loading`)return(0,m.jsx)(a,{});if(g.state.kind===`offline`)return(0,m.jsx)(o,{port:e});if(g.state.kind===`error`)return(0,m.jsx)(s,{message:g.state.message});let B=S(E)?null:"Use the form `<n>s|m|h`, e.g. `30m`",V=C(O)?null:`Use HH:MM (24h)`,H=C(M)?null:`Use HH:MM (24h)`,U=g.state.data.perCli||{},W=Object.keys(U),G=[{value:`all`,label:`all (broadcast)`},...(W.length>0?W:[...y]).map(e=>({value:e,label:d(e).label||e}))];return G.some(e=>e.value===P)||G.push({value:P,label:`${d(P).label||P} (legacy)`}),(0,m.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>{e.preventDefault(),z()},children:[(0,m.jsxs)(i,{title:`Heartbeat`,hint:`Background prompts the agent runs on a schedule.`,children:[(0,m.jsx)(c,{id:`hb-enabled`,label:`Heartbeat enabled`,value:x,onChange:e=>{w(e),L(`heartbeat.enabled`,{value:e,original:!!I.enabled,valid:!0})}}),(0,m.jsx)(u,{id:`hb-every`,label:`Default interval`,value:E,placeholder:`30m`,error:B,onChange:e=>{D(e),L(`heartbeat.every`,{value:e,original:I.every??`30m`,valid:S(e)})}}),(0,m.jsx)(u,{id:`hb-start`,label:`Active hours start`,value:O,placeholder:`08:00`,error:V,onChange:e=>{k(e),L(`heartbeat.activeHours.start`,{value:e,original:I.activeHours?.start??`08:00`,valid:C(e)})}}),(0,m.jsx)(u,{id:`hb-end`,label:`Active hours end`,value:M,placeholder:`22:00`,error:H,onChange:e=>{N(e),L(`heartbeat.activeHours.end`,{value:e,original:I.activeHours?.end??`22:00`,valid:C(e)})}}),(0,m.jsx)(l,{id:`hb-target`,label:`Target`,value:P,options:G,onChange:e=>{F(e),L(`heartbeat.target`,{value:e,original:I.target??`all`,valid:!0})}})]}),(0,m.jsx)(i,{title:`Jobs`,hint:`Each job replaces the entire heartbeat.json on save. Concurrent edits from multiple browsers will overwrite — last write wins.`,children:(0,m.jsx)(A,{port:e,client:t,dirty:n,snapshot:_.state})}),(0,m.jsx)(i,{title:`Default heartbeat prompt template`,hint:`Markdown shown to the agent when a heartbeat fires without a job-specific prompt.`,children:(0,m.jsx)(j,{port:e,client:t,dirty:n,snapshot:v.state})})]})}export{x as PAGE_LOCAL_KEYS,b as SECTION_A_KEYS,y as TARGET_FALLBACK,M as default,T as isHeartbeatSettingsKey,O as jobScheduleBodyError,k as jobsHaveErrors,w as makeDefaultJob,D as normalizeJobsResponse,C as validateHHMM,S as validateInterval};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-XQCOJYun.js";import{n as t,t as n}from"./jsx-runtime-CYoNlHAD.js";import{a as r,i,n as a,r as o,t as s}from"./page-shell-GpE8A-FA.js";import{a as c,i as l,r as u}from"./fields-BwOMlwS0.js";import{i as d}from"./agent-meta-Bl-Q0EgC.js";import{t as f}from"./path-utils-CHwADH-r.js";var p=e(t(),1),m=[`memory.enabled`,`memory.flushEvery`,`memory.cli`,`memory.retentionDays`,`memory.autoReflectAfterFlush`,`memory.flushLanguage`],h=[{value:`en`,label:`English (en)`},{value:`ko`,label:`한국어 (ko)`},{value:`ja`,label:`日本語 (ja)`},{value:`zh`,label:`中文 (zh)`}],g=50;function _(e){return m.includes(e)}function v(e){let t=y(e);if(!Array.isArray(t))return[];let n=[];for(let e of t){let t=b(e);t&&n.push(t)}return n}function y(e){if(!e||typeof e!=`object`)return e;let t=e;return Array.isArray(t)?t:`data`in t?t.data:e}function b(e){if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.key==`string`?t.key:null;return n?{key:n,value:typeof t.value==`string`?t.value:``,source:typeof t.source==`string`?t.source:`manual`}:null}function x(e,t){return!Number.isFinite(e)||!Number.isInteger(e)||e<=0?`${t} must be a positive integer`:null}function S(e,t,n=50){let r=Math.max(0,Math.floor(t))*n,i=e.slice(r,r+n),a=Math.max(1,Math.ceil(e.length/n));return{slice:i,hasMore:r+n<e.length,pageCount:a}}function C(e,t=80){return e.length<=t?e:`${e.slice(0,t)}…`}var w=n();function T({row:e,onOpen:t}){return(0,w.jsxs)(`tr`,{className:`settings-memory-row`,children:[(0,w.jsx)(`td`,{className:`settings-memory-key`,children:(0,w.jsx)(`button`,{type:`button`,className:`settings-memory-link`,onClick:()=>t(e),"aria-label":`Open memory entry ${e.key}`,children:e.key})}),(0,w.jsx)(`td`,{className:`settings-memory-source`,children:e.source}),(0,w.jsx)(`td`,{className:`settings-memory-length`,children:e.value.length}),(0,w.jsx)(`td`,{className:`settings-memory-preview`,title:e.value,children:C(e.value)})]})}var E={busy:null,notice:null,error:null};function D({port:e,client:t,dirty:n,registerSave:g}){let y=r(t,`/api/settings`),b=r(t,`/api/memory`),[C,D]=(0,p.useState)(!0),[O,k]=(0,p.useState)(10),[A,j]=(0,p.useState)(``),[M,N]=(0,p.useState)(30),[ee,P]=(0,p.useState)(!1),[F,I]=(0,p.useState)(`en`),[L,R]=(0,p.useState)(0),[z,B]=(0,p.useState)(null),[V,H]=(0,p.useState)(E);(0,p.useEffect)(()=>{if(y.state.kind!==`ready`)return;let e=y.state.data.memory||{};D(e.enabled!==!1),k(typeof e.flushEvery==`number`?e.flushEvery:10),j(typeof e.cli==`string`?e.cli:``),N(typeof e.retentionDays==`number`?e.retentionDays:30),P(!!e.autoReflectAfterFlush),I(typeof e.flushLanguage==`string`&&e.flushLanguage?e.flushLanguage:`en`)},[y.state]),(0,p.useEffect)(()=>()=>{for(let e of m)n.remove(e)},[n]),(0,p.useEffect)(()=>{if(!z)return;let e=e=>{e.key===`Escape`&&B(null)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[z]);let U=(0,p.useCallback)((e,t)=>n.set(e,t),[n]),W=(0,p.useMemo)(()=>y.state.kind===`ready`&&y.state.data.memory||{},[y.state]),G=(0,p.useCallback)(async()=>{let e=n.saveBundle(),r={};for(let[t,n]of Object.entries(e))_(t)&&(r[t]=n);if(Object.keys(r).length===0)return;let i=f(r),a=await t.put(`/api/settings`,i),o=a&&typeof a==`object`&&`data`in a?a.data:a;for(let e of m)n.remove(e);y.setData(o);let s=o.memory||{};D(s.enabled!==!1),k(typeof s.flushEvery==`number`?s.flushEvery:10),j(typeof s.cli==`string`?s.cli:``),N(typeof s.retentionDays==`number`?s.retentionDays:30),P(!!s.autoReflectAfterFlush),I(typeof s.flushLanguage==`string`&&s.flushLanguage?s.flushLanguage:`en`),await y.refresh()},[t,n,y]);(0,p.useEffect)(()=>{if(g)return g(G),()=>g(null)},[g,G]);let K=(0,p.useCallback)(async()=>{H({busy:`flush`,notice:null,error:null});try{await t.post(`/api/jaw-memory/flush`,{}),H({busy:null,notice:`Memory flush queued. Browse refreshes when it completes.`,error:null}),await b.refresh()}catch(e){H({busy:null,notice:null,error:e instanceof Error?e.message:String(e)})}},[t,b]),q=(0,p.useCallback)(async()=>{H({busy:`reflect`,notice:null,error:null});try{await t.post(`/api/jaw-memory/reflect`,{}),H({busy:null,notice:`Reflect complete.`,error:null}),await b.refresh()}catch(e){H({busy:null,notice:null,error:e instanceof Error?e.message:String(e)})}},[t,b]),J=(0,p.useCallback)(()=>{if(b.state.kind!==`ready`)return;let t=v(b.state.data),n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`jaw-memory-${e}-${Date.now()}.json`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)},[b.state,e]);if(y.state.kind===`loading`)return(0,w.jsx)(a,{});if(y.state.kind===`offline`)return(0,w.jsx)(o,{port:e});if(y.state.kind===`error`)return(0,w.jsx)(s,{message:y.state.message});let Y=x(O,`Flush every`),X=x(M,`Retention days`),Z=y.state.data.perCli||{},Q=[{value:``,label:`(profile default)`},...Object.keys(Z).map(e=>({value:e,label:d(e).label||e}))];A&&!Q.some(e=>e.value===A)&&Q.push({value:A,label:`${d(A).label||A} (legacy)`});let $=b.state.kind===`ready`?v(b.state.data):[],{slice:te,hasMore:ne,pageCount:re}=S($,Math.min(L,Math.max(0,Math.ceil($.length/50)-1)));return(0,w.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>{e.preventDefault(),G()},children:[(0,w.jsxs)(i,{title:`Memory engine`,hint:`Background memory flush and reflection cadence.`,children:[(0,w.jsx)(c,{id:`memory-enabled`,label:`Memory enabled`,value:C,onChange:e=>{D(e),U(`memory.enabled`,{value:e,original:W.enabled!==!1,valid:!0})}}),(0,w.jsx)(u,{id:`memory-flush-every`,label:`Flush every (sessions)`,value:O,min:1,error:Y,onChange:e=>{k(e),U(`memory.flushEvery`,{value:e,original:typeof W.flushEvery==`number`?W.flushEvery:10,valid:x(e,`Flush every`)===null})}}),(0,w.jsx)(l,{id:`memory-cli`,label:`Flush CLI`,value:A,options:Q,onChange:e=>{j(e),U(`memory.cli`,{value:e,original:W.cli??``,valid:!0})}}),(0,w.jsx)(u,{id:`memory-retention`,label:`Retention days`,value:M,min:1,error:X,onChange:e=>{N(e),U(`memory.retentionDays`,{value:e,original:typeof W.retentionDays==`number`?W.retentionDays:30,valid:x(e,`Retention days`)===null})}}),(0,w.jsx)(c,{id:`memory-auto-reflect`,label:`Auto-reflect after flush`,value:ee,onChange:e=>{P(e),U(`memory.autoReflectAfterFlush`,{value:e,original:!!W.autoReflectAfterFlush,valid:!0})}}),(0,w.jsx)(l,{id:`memory-flush-language`,label:`Flush language`,value:F,options:[...h],onChange:e=>{I(e),U(`memory.flushLanguage`,{value:e,original:W.flushLanguage??`en`,valid:!0})}})]}),(0,w.jsx)(i,{title:`Stored entries`,hint:`Read-only browse of the key/value memory table (50/page).`,children:b.state.kind===`loading`?(0,w.jsx)(`p`,{className:`settings-section-hint`,children:`Loading entries…`}):b.state.kind===`offline`?(0,w.jsx)(o,{port:e}):b.state.kind===`error`?(0,w.jsx)(s,{message:b.state.message}):$.length===0?(0,w.jsx)(`p`,{className:`settings-section-hint`,children:`No memory entries yet.`}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`table`,{className:`settings-memory-table`,children:[(0,w.jsx)(`thead`,{children:(0,w.jsxs)(`tr`,{children:[(0,w.jsx)(`th`,{scope:`col`,children:`Key`}),(0,w.jsx)(`th`,{scope:`col`,children:`Source`}),(0,w.jsx)(`th`,{scope:`col`,children:`Length`}),(0,w.jsx)(`th`,{scope:`col`,children:`Preview`})]})}),(0,w.jsx)(`tbody`,{children:te.map(e=>(0,w.jsx)(T,{row:e,onOpen:B},e.key))})]}),(0,w.jsxs)(`div`,{className:`settings-memory-pagination`,children:[(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,disabled:L===0,onClick:()=>R(e=>Math.max(0,e-1)),children:`Prev`}),(0,w.jsxs)(`span`,{className:`settings-memory-pageinfo`,children:[`Page `,L+1,` / `,re]}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,disabled:!ne,onClick:()=>R(e=>e+1),children:`Next`})]})]})}),(0,w.jsxs)(i,{title:`Actions`,hint:`Flush runs async — the browse list refreshes when it finishes.`,children:[(0,w.jsxs)(`div`,{className:`settings-memory-actions`,children:[(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,disabled:V.busy!==null,onClick:()=>void K(),children:V.busy===`flush`?`Queuing…`:`Flush now`}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,disabled:V.busy!==null,onClick:()=>void q(),children:V.busy===`reflect`?`Reflecting…`:`Reflect soul`}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,disabled:b.state.kind!==`ready`,onClick:J,children:`Export memory`})]}),V.notice?(0,w.jsx)(`p`,{className:`settings-section-hint`,role:`status`,children:V.notice}):null,V.error?(0,w.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:V.error}):null]}),z?(0,w.jsx)(`div`,{className:`settings-memory-modal`,role:`dialog`,"aria-modal":`true`,"aria-label":`Memory entry ${z.key}`,onClick:e=>{e.target===e.currentTarget&&B(null)},children:(0,w.jsxs)(`div`,{className:`settings-memory-modal-card`,children:[(0,w.jsxs)(`header`,{className:`settings-memory-modal-header`,children:[(0,w.jsx)(`h3`,{children:z.key}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,onClick:()=>B(null),"aria-label":`Close memory entry`,children:`Close`})]}),(0,w.jsx)(`pre`,{className:`settings-memory-modal-body`,children:z.value})]})}):null]})}export{h as FLUSH_LANGUAGE_OPTIONS,g as MEMORY_PAGE_SIZE,m as MEMORY_SECTION_A_KEYS,D as default,_ as isMemorySettingsKey,v as normalizeMemoryRows,S as paginate,C as previewValue,x as validatePositiveInt};
1
+ import{r as e}from"./rolldown-runtime-XQCOJYun.js";import{n as t,t as n}from"./jsx-runtime-CYoNlHAD.js";import{a as r,i,n as a,r as o,t as s}from"./page-shell-GpE8A-FA.js";import{a as c,i as l,r as u}from"./fields-BwOMlwS0.js";import{i as d}from"./agent-meta-DrYdO9lB.js";import{t as f}from"./path-utils-CHwADH-r.js";var p=e(t(),1),m=[`memory.enabled`,`memory.flushEvery`,`memory.cli`,`memory.retentionDays`,`memory.autoReflectAfterFlush`,`memory.flushLanguage`],h=[{value:`en`,label:`English (en)`},{value:`ko`,label:`한국어 (ko)`},{value:`ja`,label:`日本語 (ja)`},{value:`zh`,label:`中文 (zh)`}],g=50;function _(e){return m.includes(e)}function v(e){let t=y(e);if(!Array.isArray(t))return[];let n=[];for(let e of t){let t=b(e);t&&n.push(t)}return n}function y(e){if(!e||typeof e!=`object`)return e;let t=e;return Array.isArray(t)?t:`data`in t?t.data:e}function b(e){if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.key==`string`?t.key:null;return n?{key:n,value:typeof t.value==`string`?t.value:``,source:typeof t.source==`string`?t.source:`manual`}:null}function x(e,t){return!Number.isFinite(e)||!Number.isInteger(e)||e<=0?`${t} must be a positive integer`:null}function S(e,t,n=50){let r=Math.max(0,Math.floor(t))*n,i=e.slice(r,r+n),a=Math.max(1,Math.ceil(e.length/n));return{slice:i,hasMore:r+n<e.length,pageCount:a}}function C(e,t=80){return e.length<=t?e:`${e.slice(0,t)}…`}var w=n();function T({row:e,onOpen:t}){return(0,w.jsxs)(`tr`,{className:`settings-memory-row`,children:[(0,w.jsx)(`td`,{className:`settings-memory-key`,children:(0,w.jsx)(`button`,{type:`button`,className:`settings-memory-link`,onClick:()=>t(e),"aria-label":`Open memory entry ${e.key}`,children:e.key})}),(0,w.jsx)(`td`,{className:`settings-memory-source`,children:e.source}),(0,w.jsx)(`td`,{className:`settings-memory-length`,children:e.value.length}),(0,w.jsx)(`td`,{className:`settings-memory-preview`,title:e.value,children:C(e.value)})]})}var E={busy:null,notice:null,error:null};function D({port:e,client:t,dirty:n,registerSave:g}){let y=r(t,`/api/settings`),b=r(t,`/api/memory`),[C,D]=(0,p.useState)(!0),[O,k]=(0,p.useState)(10),[A,j]=(0,p.useState)(``),[M,N]=(0,p.useState)(30),[ee,P]=(0,p.useState)(!1),[F,I]=(0,p.useState)(`en`),[L,R]=(0,p.useState)(0),[z,B]=(0,p.useState)(null),[V,H]=(0,p.useState)(E);(0,p.useEffect)(()=>{if(y.state.kind!==`ready`)return;let e=y.state.data.memory||{};D(e.enabled!==!1),k(typeof e.flushEvery==`number`?e.flushEvery:10),j(typeof e.cli==`string`?e.cli:``),N(typeof e.retentionDays==`number`?e.retentionDays:30),P(!!e.autoReflectAfterFlush),I(typeof e.flushLanguage==`string`&&e.flushLanguage?e.flushLanguage:`en`)},[y.state]),(0,p.useEffect)(()=>()=>{for(let e of m)n.remove(e)},[n]),(0,p.useEffect)(()=>{if(!z)return;let e=e=>{e.key===`Escape`&&B(null)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[z]);let U=(0,p.useCallback)((e,t)=>n.set(e,t),[n]),W=(0,p.useMemo)(()=>y.state.kind===`ready`&&y.state.data.memory||{},[y.state]),G=(0,p.useCallback)(async()=>{let e=n.saveBundle(),r={};for(let[t,n]of Object.entries(e))_(t)&&(r[t]=n);if(Object.keys(r).length===0)return;let i=f(r),a=await t.put(`/api/settings`,i),o=a&&typeof a==`object`&&`data`in a?a.data:a;for(let e of m)n.remove(e);y.setData(o);let s=o.memory||{};D(s.enabled!==!1),k(typeof s.flushEvery==`number`?s.flushEvery:10),j(typeof s.cli==`string`?s.cli:``),N(typeof s.retentionDays==`number`?s.retentionDays:30),P(!!s.autoReflectAfterFlush),I(typeof s.flushLanguage==`string`&&s.flushLanguage?s.flushLanguage:`en`),await y.refresh()},[t,n,y]);(0,p.useEffect)(()=>{if(g)return g(G),()=>g(null)},[g,G]);let K=(0,p.useCallback)(async()=>{H({busy:`flush`,notice:null,error:null});try{await t.post(`/api/jaw-memory/flush`,{}),H({busy:null,notice:`Memory flush queued. Browse refreshes when it completes.`,error:null}),await b.refresh()}catch(e){H({busy:null,notice:null,error:e instanceof Error?e.message:String(e)})}},[t,b]),q=(0,p.useCallback)(async()=>{H({busy:`reflect`,notice:null,error:null});try{await t.post(`/api/jaw-memory/reflect`,{}),H({busy:null,notice:`Reflect complete.`,error:null}),await b.refresh()}catch(e){H({busy:null,notice:null,error:e instanceof Error?e.message:String(e)})}},[t,b]),J=(0,p.useCallback)(()=>{if(b.state.kind!==`ready`)return;let t=v(b.state.data),n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`jaw-memory-${e}-${Date.now()}.json`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)},[b.state,e]);if(y.state.kind===`loading`)return(0,w.jsx)(a,{});if(y.state.kind===`offline`)return(0,w.jsx)(o,{port:e});if(y.state.kind===`error`)return(0,w.jsx)(s,{message:y.state.message});let Y=x(O,`Flush every`),X=x(M,`Retention days`),Z=y.state.data.perCli||{},Q=[{value:``,label:`(profile default)`},...Object.keys(Z).map(e=>({value:e,label:d(e).label||e}))];A&&!Q.some(e=>e.value===A)&&Q.push({value:A,label:`${d(A).label||A} (legacy)`});let $=b.state.kind===`ready`?v(b.state.data):[],{slice:te,hasMore:ne,pageCount:re}=S($,Math.min(L,Math.max(0,Math.ceil($.length/50)-1)));return(0,w.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>{e.preventDefault(),G()},children:[(0,w.jsxs)(i,{title:`Memory engine`,hint:`Background memory flush and reflection cadence.`,children:[(0,w.jsx)(c,{id:`memory-enabled`,label:`Memory enabled`,value:C,onChange:e=>{D(e),U(`memory.enabled`,{value:e,original:W.enabled!==!1,valid:!0})}}),(0,w.jsx)(u,{id:`memory-flush-every`,label:`Flush every (sessions)`,value:O,min:1,error:Y,onChange:e=>{k(e),U(`memory.flushEvery`,{value:e,original:typeof W.flushEvery==`number`?W.flushEvery:10,valid:x(e,`Flush every`)===null})}}),(0,w.jsx)(l,{id:`memory-cli`,label:`Flush CLI`,value:A,options:Q,onChange:e=>{j(e),U(`memory.cli`,{value:e,original:W.cli??``,valid:!0})}}),(0,w.jsx)(u,{id:`memory-retention`,label:`Retention days`,value:M,min:1,error:X,onChange:e=>{N(e),U(`memory.retentionDays`,{value:e,original:typeof W.retentionDays==`number`?W.retentionDays:30,valid:x(e,`Retention days`)===null})}}),(0,w.jsx)(c,{id:`memory-auto-reflect`,label:`Auto-reflect after flush`,value:ee,onChange:e=>{P(e),U(`memory.autoReflectAfterFlush`,{value:e,original:!!W.autoReflectAfterFlush,valid:!0})}}),(0,w.jsx)(l,{id:`memory-flush-language`,label:`Flush language`,value:F,options:[...h],onChange:e=>{I(e),U(`memory.flushLanguage`,{value:e,original:W.flushLanguage??`en`,valid:!0})}})]}),(0,w.jsx)(i,{title:`Stored entries`,hint:`Read-only browse of the key/value memory table (50/page).`,children:b.state.kind===`loading`?(0,w.jsx)(`p`,{className:`settings-section-hint`,children:`Loading entries…`}):b.state.kind===`offline`?(0,w.jsx)(o,{port:e}):b.state.kind===`error`?(0,w.jsx)(s,{message:b.state.message}):$.length===0?(0,w.jsx)(`p`,{className:`settings-section-hint`,children:`No memory entries yet.`}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`table`,{className:`settings-memory-table`,children:[(0,w.jsx)(`thead`,{children:(0,w.jsxs)(`tr`,{children:[(0,w.jsx)(`th`,{scope:`col`,children:`Key`}),(0,w.jsx)(`th`,{scope:`col`,children:`Source`}),(0,w.jsx)(`th`,{scope:`col`,children:`Length`}),(0,w.jsx)(`th`,{scope:`col`,children:`Preview`})]})}),(0,w.jsx)(`tbody`,{children:te.map(e=>(0,w.jsx)(T,{row:e,onOpen:B},e.key))})]}),(0,w.jsxs)(`div`,{className:`settings-memory-pagination`,children:[(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,disabled:L===0,onClick:()=>R(e=>Math.max(0,e-1)),children:`Prev`}),(0,w.jsxs)(`span`,{className:`settings-memory-pageinfo`,children:[`Page `,L+1,` / `,re]}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,disabled:!ne,onClick:()=>R(e=>e+1),children:`Next`})]})]})}),(0,w.jsxs)(i,{title:`Actions`,hint:`Flush runs async — the browse list refreshes when it finishes.`,children:[(0,w.jsxs)(`div`,{className:`settings-memory-actions`,children:[(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,disabled:V.busy!==null,onClick:()=>void K(),children:V.busy===`flush`?`Queuing…`:`Flush now`}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,disabled:V.busy!==null,onClick:()=>void q(),children:V.busy===`reflect`?`Reflecting…`:`Reflect soul`}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,disabled:b.state.kind!==`ready`,onClick:J,children:`Export memory`})]}),V.notice?(0,w.jsx)(`p`,{className:`settings-section-hint`,role:`status`,children:V.notice}):null,V.error?(0,w.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:V.error}):null]}),z?(0,w.jsx)(`div`,{className:`settings-memory-modal`,role:`dialog`,"aria-modal":`true`,"aria-label":`Memory entry ${z.key}`,onClick:e=>{e.target===e.currentTarget&&B(null)},children:(0,w.jsxs)(`div`,{className:`settings-memory-modal-card`,children:[(0,w.jsxs)(`header`,{className:`settings-memory-modal-header`,children:[(0,w.jsx)(`h3`,{children:z.key}),(0,w.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,onClick:()=>B(null),"aria-label":`Close memory entry`,children:`Close`})]}),(0,w.jsx)(`pre`,{className:`settings-memory-modal-body`,children:z.value})]})}):null]})}export{h as FLUSH_LANGUAGE_OPTIONS,g as MEMORY_PAGE_SIZE,m as MEMORY_SECTION_A_KEYS,D as default,_ as isMemorySettingsKey,v as normalizeMemoryRows,S as paginate,C as previewValue,x as validatePositiveInt};