employee001 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/server/app/(workspace)/handover/page_client-reference-manifest.js +1 -1
  5. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  13. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/api/connections/[id]/route.js +2 -2
  21. package/.next/standalone/.next/server/app/api/connections/[id]/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/council/chat/route.js +5 -5
  23. package/.next/standalone/.next/server/app/api/council/chat/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/employees/[id]/task/route.js +2 -2
  25. package/.next/standalone/.next/server/app/api/employees/[id]/task/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/invites/[token]/complete/route.js +2 -2
  27. package/.next/standalone/.next/server/app/api/invites/[token]/complete/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/invites/[token]/connections/[toolkit]/disconnect/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/invites/[token]/connections/initiate/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/invites/[token]/connections/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/invites/[token]/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/invites/bulk-revoke/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/invites/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/marketplace/trial-chat/route.js +5 -5
  35. package/.next/standalone/.next/server/app/api/marketplace/trial-chat/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/routines/[id]/run/route.js +4 -4
  37. package/.next/standalone/.next/server/app/api/routines/[id]/run/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/routines/route.js +4 -4
  39. package/.next/standalone/.next/server/app/api/routines/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/twin/chat/route.js +4 -4
  41. package/.next/standalone/.next/server/app/api/twin/chat/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/audit.html +1 -1
  43. package/.next/standalone/.next/server/app/audit.rsc +1 -1
  44. package/.next/standalone/.next/server/app/audit.segments/!KHdvcmtzcGFjZSk/audit/__PAGE__.segment.rsc +1 -1
  45. package/.next/standalone/.next/server/app/audit.segments/!KHdvcmtzcGFjZSk/audit.segment.rsc +1 -1
  46. package/.next/standalone/.next/server/app/audit.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  47. package/.next/standalone/.next/server/app/audit.segments/_full.segment.rsc +1 -1
  48. package/.next/standalone/.next/server/app/audit.segments/_head.segment.rsc +1 -1
  49. package/.next/standalone/.next/server/app/audit.segments/_index.segment.rsc +1 -1
  50. package/.next/standalone/.next/server/app/audit.segments/_tree.segment.rsc +1 -1
  51. package/.next/standalone/.next/server/app/budgets.html +1 -1
  52. package/.next/standalone/.next/server/app/budgets.rsc +1 -1
  53. package/.next/standalone/.next/server/app/budgets.segments/!KHdvcmtzcGFjZSk/budgets/__PAGE__.segment.rsc +1 -1
  54. package/.next/standalone/.next/server/app/budgets.segments/!KHdvcmtzcGFjZSk/budgets.segment.rsc +1 -1
  55. package/.next/standalone/.next/server/app/budgets.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  56. package/.next/standalone/.next/server/app/budgets.segments/_full.segment.rsc +1 -1
  57. package/.next/standalone/.next/server/app/budgets.segments/_head.segment.rsc +1 -1
  58. package/.next/standalone/.next/server/app/budgets.segments/_index.segment.rsc +1 -1
  59. package/.next/standalone/.next/server/app/budgets.segments/_tree.segment.rsc +1 -1
  60. package/.next/standalone/.next/server/app/cockpit.html +1 -1
  61. package/.next/standalone/.next/server/app/cockpit.rsc +1 -1
  62. package/.next/standalone/.next/server/app/cockpit.segments/!KHdvcmtzcGFjZSk/cockpit/__PAGE__.segment.rsc +1 -1
  63. package/.next/standalone/.next/server/app/cockpit.segments/!KHdvcmtzcGFjZSk/cockpit.segment.rsc +1 -1
  64. package/.next/standalone/.next/server/app/cockpit.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  65. package/.next/standalone/.next/server/app/cockpit.segments/_full.segment.rsc +1 -1
  66. package/.next/standalone/.next/server/app/cockpit.segments/_head.segment.rsc +1 -1
  67. package/.next/standalone/.next/server/app/cockpit.segments/_index.segment.rsc +1 -1
  68. package/.next/standalone/.next/server/app/cockpit.segments/_tree.segment.rsc +1 -1
  69. package/.next/standalone/.next/server/app/connections.html +1 -1
  70. package/.next/standalone/.next/server/app/connections.rsc +1 -1
  71. package/.next/standalone/.next/server/app/connections.segments/!KHdvcmtzcGFjZSk/connections/__PAGE__.segment.rsc +1 -1
  72. package/.next/standalone/.next/server/app/connections.segments/!KHdvcmtzcGFjZSk/connections.segment.rsc +1 -1
  73. package/.next/standalone/.next/server/app/connections.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  74. package/.next/standalone/.next/server/app/connections.segments/_full.segment.rsc +1 -1
  75. package/.next/standalone/.next/server/app/connections.segments/_head.segment.rsc +1 -1
  76. package/.next/standalone/.next/server/app/connections.segments/_index.segment.rsc +1 -1
  77. package/.next/standalone/.next/server/app/connections.segments/_tree.segment.rsc +1 -1
  78. package/.next/standalone/.next/server/app/council.html +1 -1
  79. package/.next/standalone/.next/server/app/council.rsc +1 -1
  80. package/.next/standalone/.next/server/app/council.segments/!KHdvcmtzcGFjZSk/council/__PAGE__.segment.rsc +1 -1
  81. package/.next/standalone/.next/server/app/council.segments/!KHdvcmtzcGFjZSk/council.segment.rsc +1 -1
  82. package/.next/standalone/.next/server/app/council.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  83. package/.next/standalone/.next/server/app/council.segments/_full.segment.rsc +1 -1
  84. package/.next/standalone/.next/server/app/council.segments/_head.segment.rsc +1 -1
  85. package/.next/standalone/.next/server/app/council.segments/_index.segment.rsc +1 -1
  86. package/.next/standalone/.next/server/app/council.segments/_tree.segment.rsc +1 -1
  87. package/.next/standalone/.next/server/app/employees.html +1 -1
  88. package/.next/standalone/.next/server/app/employees.rsc +1 -1
  89. package/.next/standalone/.next/server/app/employees.segments/!KHdvcmtzcGFjZSk/employees/__PAGE__.segment.rsc +1 -1
  90. package/.next/standalone/.next/server/app/employees.segments/!KHdvcmtzcGFjZSk/employees.segment.rsc +1 -1
  91. package/.next/standalone/.next/server/app/employees.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/employees.segments/_full.segment.rsc +1 -1
  93. package/.next/standalone/.next/server/app/employees.segments/_head.segment.rsc +1 -1
  94. package/.next/standalone/.next/server/app/employees.segments/_index.segment.rsc +1 -1
  95. package/.next/standalone/.next/server/app/employees.segments/_tree.segment.rsc +1 -1
  96. package/.next/standalone/.next/server/app/flow.html +1 -1
  97. package/.next/standalone/.next/server/app/flow.rsc +1 -1
  98. package/.next/standalone/.next/server/app/flow.segments/!KHdvcmtzcGFjZSk/flow/__PAGE__.segment.rsc +1 -1
  99. package/.next/standalone/.next/server/app/flow.segments/!KHdvcmtzcGFjZSk/flow.segment.rsc +1 -1
  100. package/.next/standalone/.next/server/app/flow.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  101. package/.next/standalone/.next/server/app/flow.segments/_full.segment.rsc +1 -1
  102. package/.next/standalone/.next/server/app/flow.segments/_head.segment.rsc +1 -1
  103. package/.next/standalone/.next/server/app/flow.segments/_index.segment.rsc +1 -1
  104. package/.next/standalone/.next/server/app/flow.segments/_tree.segment.rsc +1 -1
  105. package/.next/standalone/.next/server/app/focus.html +1 -1
  106. package/.next/standalone/.next/server/app/focus.rsc +1 -1
  107. package/.next/standalone/.next/server/app/focus.segments/!KHdvcmtzcGFjZSk/focus/__PAGE__.segment.rsc +1 -1
  108. package/.next/standalone/.next/server/app/focus.segments/!KHdvcmtzcGFjZSk/focus.segment.rsc +1 -1
  109. package/.next/standalone/.next/server/app/focus.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  110. package/.next/standalone/.next/server/app/focus.segments/_full.segment.rsc +1 -1
  111. package/.next/standalone/.next/server/app/focus.segments/_head.segment.rsc +1 -1
  112. package/.next/standalone/.next/server/app/focus.segments/_index.segment.rsc +1 -1
  113. package/.next/standalone/.next/server/app/focus.segments/_tree.segment.rsc +1 -1
  114. package/.next/standalone/.next/server/app/forgot-password.html +1 -1
  115. package/.next/standalone/.next/server/app/forgot-password.rsc +1 -1
  116. package/.next/standalone/.next/server/app/forgot-password.segments/!KGF1dGgp/forgot-password/__PAGE__.segment.rsc +1 -1
  117. package/.next/standalone/.next/server/app/forgot-password.segments/!KGF1dGgp/forgot-password.segment.rsc +1 -1
  118. package/.next/standalone/.next/server/app/forgot-password.segments/!KGF1dGgp.segment.rsc +1 -1
  119. package/.next/standalone/.next/server/app/forgot-password.segments/_full.segment.rsc +1 -1
  120. package/.next/standalone/.next/server/app/forgot-password.segments/_head.segment.rsc +1 -1
  121. package/.next/standalone/.next/server/app/forgot-password.segments/_index.segment.rsc +1 -1
  122. package/.next/standalone/.next/server/app/forgot-password.segments/_tree.segment.rsc +1 -1
  123. package/.next/standalone/.next/server/app/generation.html +1 -1
  124. package/.next/standalone/.next/server/app/generation.rsc +1 -1
  125. package/.next/standalone/.next/server/app/generation.segments/!KHdvcmtzcGFjZSk/generation/__PAGE__.segment.rsc +1 -1
  126. package/.next/standalone/.next/server/app/generation.segments/!KHdvcmtzcGFjZSk/generation.segment.rsc +1 -1
  127. package/.next/standalone/.next/server/app/generation.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  128. package/.next/standalone/.next/server/app/generation.segments/_full.segment.rsc +1 -1
  129. package/.next/standalone/.next/server/app/generation.segments/_head.segment.rsc +1 -1
  130. package/.next/standalone/.next/server/app/generation.segments/_index.segment.rsc +1 -1
  131. package/.next/standalone/.next/server/app/generation.segments/_tree.segment.rsc +1 -1
  132. package/.next/standalone/.next/server/app/handover/live.html +1 -1
  133. package/.next/standalone/.next/server/app/handover/live.rsc +1 -1
  134. package/.next/standalone/.next/server/app/handover/live.segments/!KHdvcmtzcGFjZSk/handover/live/__PAGE__.segment.rsc +1 -1
  135. package/.next/standalone/.next/server/app/handover/live.segments/!KHdvcmtzcGFjZSk/handover/live.segment.rsc +1 -1
  136. package/.next/standalone/.next/server/app/handover/live.segments/!KHdvcmtzcGFjZSk/handover.segment.rsc +1 -1
  137. package/.next/standalone/.next/server/app/handover/live.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  138. package/.next/standalone/.next/server/app/handover/live.segments/_full.segment.rsc +1 -1
  139. package/.next/standalone/.next/server/app/handover/live.segments/_head.segment.rsc +1 -1
  140. package/.next/standalone/.next/server/app/handover/live.segments/_index.segment.rsc +1 -1
  141. package/.next/standalone/.next/server/app/handover/live.segments/_tree.segment.rsc +1 -1
  142. package/.next/standalone/.next/server/app/handover.html +1 -1
  143. package/.next/standalone/.next/server/app/handover.rsc +2 -2
  144. package/.next/standalone/.next/server/app/handover.segments/!KHdvcmtzcGFjZSk/handover/__PAGE__.segment.rsc +2 -2
  145. package/.next/standalone/.next/server/app/handover.segments/!KHdvcmtzcGFjZSk/handover.segment.rsc +1 -1
  146. package/.next/standalone/.next/server/app/handover.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  147. package/.next/standalone/.next/server/app/handover.segments/_full.segment.rsc +2 -2
  148. package/.next/standalone/.next/server/app/handover.segments/_head.segment.rsc +1 -1
  149. package/.next/standalone/.next/server/app/handover.segments/_index.segment.rsc +1 -1
  150. package/.next/standalone/.next/server/app/handover.segments/_tree.segment.rsc +1 -1
  151. package/.next/standalone/.next/server/app/inbox.html +1 -1
  152. package/.next/standalone/.next/server/app/inbox.rsc +1 -1
  153. package/.next/standalone/.next/server/app/inbox.segments/!KHdvcmtzcGFjZSk/inbox/__PAGE__.segment.rsc +1 -1
  154. package/.next/standalone/.next/server/app/inbox.segments/!KHdvcmtzcGFjZSk/inbox.segment.rsc +1 -1
  155. package/.next/standalone/.next/server/app/inbox.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  156. package/.next/standalone/.next/server/app/inbox.segments/_full.segment.rsc +1 -1
  157. package/.next/standalone/.next/server/app/inbox.segments/_head.segment.rsc +1 -1
  158. package/.next/standalone/.next/server/app/inbox.segments/_index.segment.rsc +1 -1
  159. package/.next/standalone/.next/server/app/inbox.segments/_tree.segment.rsc +1 -1
  160. package/.next/standalone/.next/server/app/index.html +1 -1
  161. package/.next/standalone/.next/server/app/index.rsc +1 -1
  162. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  163. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  164. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  165. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  166. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  167. package/.next/standalone/.next/server/app/join.html +1 -1
  168. package/.next/standalone/.next/server/app/join.rsc +1 -1
  169. package/.next/standalone/.next/server/app/join.segments/_full.segment.rsc +1 -1
  170. package/.next/standalone/.next/server/app/join.segments/_head.segment.rsc +1 -1
  171. package/.next/standalone/.next/server/app/join.segments/_index.segment.rsc +1 -1
  172. package/.next/standalone/.next/server/app/join.segments/_tree.segment.rsc +1 -1
  173. package/.next/standalone/.next/server/app/join.segments/join/__PAGE__.segment.rsc +1 -1
  174. package/.next/standalone/.next/server/app/join.segments/join.segment.rsc +1 -1
  175. package/.next/standalone/.next/server/app/launchpad.html +1 -1
  176. package/.next/standalone/.next/server/app/launchpad.rsc +1 -1
  177. package/.next/standalone/.next/server/app/launchpad.segments/_full.segment.rsc +1 -1
  178. package/.next/standalone/.next/server/app/launchpad.segments/_head.segment.rsc +1 -1
  179. package/.next/standalone/.next/server/app/launchpad.segments/_index.segment.rsc +1 -1
  180. package/.next/standalone/.next/server/app/launchpad.segments/_tree.segment.rsc +1 -1
  181. package/.next/standalone/.next/server/app/launchpad.segments/launchpad/__PAGE__.segment.rsc +1 -1
  182. package/.next/standalone/.next/server/app/launchpad.segments/launchpad.segment.rsc +1 -1
  183. package/.next/standalone/.next/server/app/learning.html +1 -1
  184. package/.next/standalone/.next/server/app/learning.rsc +1 -1
  185. package/.next/standalone/.next/server/app/learning.segments/!KHdvcmtzcGFjZSk/learning/__PAGE__.segment.rsc +1 -1
  186. package/.next/standalone/.next/server/app/learning.segments/!KHdvcmtzcGFjZSk/learning.segment.rsc +1 -1
  187. package/.next/standalone/.next/server/app/learning.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  188. package/.next/standalone/.next/server/app/learning.segments/_full.segment.rsc +1 -1
  189. package/.next/standalone/.next/server/app/learning.segments/_head.segment.rsc +1 -1
  190. package/.next/standalone/.next/server/app/learning.segments/_index.segment.rsc +1 -1
  191. package/.next/standalone/.next/server/app/learning.segments/_tree.segment.rsc +1 -1
  192. package/.next/standalone/.next/server/app/login.html +1 -1
  193. package/.next/standalone/.next/server/app/login.rsc +1 -1
  194. package/.next/standalone/.next/server/app/login.segments/!KGF1dGgp/login/__PAGE__.segment.rsc +1 -1
  195. package/.next/standalone/.next/server/app/login.segments/!KGF1dGgp/login.segment.rsc +1 -1
  196. package/.next/standalone/.next/server/app/login.segments/!KGF1dGgp.segment.rsc +1 -1
  197. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +1 -1
  198. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  199. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +1 -1
  200. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  201. package/.next/standalone/.next/server/app/marketplace.html +1 -1
  202. package/.next/standalone/.next/server/app/marketplace.rsc +1 -1
  203. package/.next/standalone/.next/server/app/marketplace.segments/!KHdvcmtzcGFjZSk/marketplace/__PAGE__.segment.rsc +1 -1
  204. package/.next/standalone/.next/server/app/marketplace.segments/!KHdvcmtzcGFjZSk/marketplace.segment.rsc +1 -1
  205. package/.next/standalone/.next/server/app/marketplace.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  206. package/.next/standalone/.next/server/app/marketplace.segments/_full.segment.rsc +1 -1
  207. package/.next/standalone/.next/server/app/marketplace.segments/_head.segment.rsc +1 -1
  208. package/.next/standalone/.next/server/app/marketplace.segments/_index.segment.rsc +1 -1
  209. package/.next/standalone/.next/server/app/marketplace.segments/_tree.segment.rsc +1 -1
  210. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  211. package/.next/standalone/.next/server/app/onboarding.rsc +1 -1
  212. package/.next/standalone/.next/server/app/onboarding.segments/_full.segment.rsc +1 -1
  213. package/.next/standalone/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
  214. package/.next/standalone/.next/server/app/onboarding.segments/_index.segment.rsc +1 -1
  215. package/.next/standalone/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
  216. package/.next/standalone/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
  217. package/.next/standalone/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
  218. package/.next/standalone/.next/server/app/profile.html +1 -1
  219. package/.next/standalone/.next/server/app/profile.rsc +1 -1
  220. package/.next/standalone/.next/server/app/profile.segments/!KHdvcmtzcGFjZSk/profile/__PAGE__.segment.rsc +1 -1
  221. package/.next/standalone/.next/server/app/profile.segments/!KHdvcmtzcGFjZSk/profile.segment.rsc +1 -1
  222. package/.next/standalone/.next/server/app/profile.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  223. package/.next/standalone/.next/server/app/profile.segments/_full.segment.rsc +1 -1
  224. package/.next/standalone/.next/server/app/profile.segments/_head.segment.rsc +1 -1
  225. package/.next/standalone/.next/server/app/profile.segments/_index.segment.rsc +1 -1
  226. package/.next/standalone/.next/server/app/profile.segments/_tree.segment.rsc +1 -1
  227. package/.next/standalone/.next/server/app/routines.html +1 -1
  228. package/.next/standalone/.next/server/app/routines.rsc +1 -1
  229. package/.next/standalone/.next/server/app/routines.segments/!KHdvcmtzcGFjZSk/routines/__PAGE__.segment.rsc +1 -1
  230. package/.next/standalone/.next/server/app/routines.segments/!KHdvcmtzcGFjZSk/routines.segment.rsc +1 -1
  231. package/.next/standalone/.next/server/app/routines.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  232. package/.next/standalone/.next/server/app/routines.segments/_full.segment.rsc +1 -1
  233. package/.next/standalone/.next/server/app/routines.segments/_head.segment.rsc +1 -1
  234. package/.next/standalone/.next/server/app/routines.segments/_index.segment.rsc +1 -1
  235. package/.next/standalone/.next/server/app/routines.segments/_tree.segment.rsc +1 -1
  236. package/.next/standalone/.next/server/app/settings.html +1 -1
  237. package/.next/standalone/.next/server/app/settings.rsc +1 -1
  238. package/.next/standalone/.next/server/app/settings.segments/!KHdvcmtzcGFjZSk/settings/__PAGE__.segment.rsc +1 -1
  239. package/.next/standalone/.next/server/app/settings.segments/!KHdvcmtzcGFjZSk/settings.segment.rsc +1 -1
  240. package/.next/standalone/.next/server/app/settings.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  241. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  242. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  243. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  244. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  245. package/.next/standalone/.next/server/app/setup.html +1 -1
  246. package/.next/standalone/.next/server/app/setup.rsc +1 -1
  247. package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +1 -1
  248. package/.next/standalone/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  249. package/.next/standalone/.next/server/app/setup.segments/_index.segment.rsc +1 -1
  250. package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
  251. package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
  252. package/.next/standalone/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  253. package/.next/standalone/.next/server/app/signup.html +1 -1
  254. package/.next/standalone/.next/server/app/signup.rsc +1 -1
  255. package/.next/standalone/.next/server/app/signup.segments/!KGF1dGgp/signup/__PAGE__.segment.rsc +1 -1
  256. package/.next/standalone/.next/server/app/signup.segments/!KGF1dGgp/signup.segment.rsc +1 -1
  257. package/.next/standalone/.next/server/app/signup.segments/!KGF1dGgp.segment.rsc +1 -1
  258. package/.next/standalone/.next/server/app/signup.segments/_full.segment.rsc +1 -1
  259. package/.next/standalone/.next/server/app/signup.segments/_head.segment.rsc +1 -1
  260. package/.next/standalone/.next/server/app/signup.segments/_index.segment.rsc +1 -1
  261. package/.next/standalone/.next/server/app/signup.segments/_tree.segment.rsc +1 -1
  262. package/.next/standalone/.next/server/app/sources.html +1 -1
  263. package/.next/standalone/.next/server/app/sources.rsc +1 -1
  264. package/.next/standalone/.next/server/app/sources.segments/_full.segment.rsc +1 -1
  265. package/.next/standalone/.next/server/app/sources.segments/_head.segment.rsc +1 -1
  266. package/.next/standalone/.next/server/app/sources.segments/_index.segment.rsc +1 -1
  267. package/.next/standalone/.next/server/app/sources.segments/_tree.segment.rsc +1 -1
  268. package/.next/standalone/.next/server/app/sources.segments/sources/__PAGE__.segment.rsc +1 -1
  269. package/.next/standalone/.next/server/app/sources.segments/sources.segment.rsc +1 -1
  270. package/.next/standalone/.next/server/app/tasks.html +1 -1
  271. package/.next/standalone/.next/server/app/tasks.rsc +1 -1
  272. package/.next/standalone/.next/server/app/tasks.segments/!KHdvcmtzcGFjZSk/tasks/__PAGE__.segment.rsc +1 -1
  273. package/.next/standalone/.next/server/app/tasks.segments/!KHdvcmtzcGFjZSk/tasks.segment.rsc +1 -1
  274. package/.next/standalone/.next/server/app/tasks.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  275. package/.next/standalone/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
  276. package/.next/standalone/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  277. package/.next/standalone/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
  278. package/.next/standalone/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
  279. package/.next/standalone/.next/server/app/templates.html +1 -1
  280. package/.next/standalone/.next/server/app/templates.rsc +1 -1
  281. package/.next/standalone/.next/server/app/templates.segments/!KHdvcmtzcGFjZSk/templates/__PAGE__.segment.rsc +1 -1
  282. package/.next/standalone/.next/server/app/templates.segments/!KHdvcmtzcGFjZSk/templates.segment.rsc +1 -1
  283. package/.next/standalone/.next/server/app/templates.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  284. package/.next/standalone/.next/server/app/templates.segments/_full.segment.rsc +1 -1
  285. package/.next/standalone/.next/server/app/templates.segments/_head.segment.rsc +1 -1
  286. package/.next/standalone/.next/server/app/templates.segments/_index.segment.rsc +1 -1
  287. package/.next/standalone/.next/server/app/templates.segments/_tree.segment.rsc +1 -1
  288. package/.next/standalone/.next/server/app/twin-build.html +1 -1
  289. package/.next/standalone/.next/server/app/twin-build.rsc +1 -1
  290. package/.next/standalone/.next/server/app/twin-build.segments/_full.segment.rsc +1 -1
  291. package/.next/standalone/.next/server/app/twin-build.segments/_head.segment.rsc +1 -1
  292. package/.next/standalone/.next/server/app/twin-build.segments/_index.segment.rsc +1 -1
  293. package/.next/standalone/.next/server/app/twin-build.segments/_tree.segment.rsc +1 -1
  294. package/.next/standalone/.next/server/app/twin-build.segments/twin-build/__PAGE__.segment.rsc +1 -1
  295. package/.next/standalone/.next/server/app/twin-build.segments/twin-build.segment.rsc +1 -1
  296. package/.next/standalone/.next/server/app/welcome.html +1 -1
  297. package/.next/standalone/.next/server/app/welcome.rsc +1 -1
  298. package/.next/standalone/.next/server/app/welcome.segments/_full.segment.rsc +1 -1
  299. package/.next/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  300. package/.next/standalone/.next/server/app/welcome.segments/_index.segment.rsc +1 -1
  301. package/.next/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +1 -1
  302. package/.next/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +1 -1
  303. package/.next/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  304. package/.next/standalone/.next/server/app/workspace.html +1 -1
  305. package/.next/standalone/.next/server/app/workspace.rsc +1 -1
  306. package/.next/standalone/.next/server/app/workspace.segments/!KHdvcmtzcGFjZSk/workspace/__PAGE__.segment.rsc +1 -1
  307. package/.next/standalone/.next/server/app/workspace.segments/!KHdvcmtzcGFjZSk/workspace.segment.rsc +1 -1
  308. package/.next/standalone/.next/server/app/workspace.segments/!KHdvcmtzcGFjZSk.segment.rsc +1 -1
  309. package/.next/standalone/.next/server/app/workspace.segments/_full.segment.rsc +1 -1
  310. package/.next/standalone/.next/server/app/workspace.segments/_head.segment.rsc +1 -1
  311. package/.next/standalone/.next/server/app/workspace.segments/_index.segment.rsc +1 -1
  312. package/.next/standalone/.next/server/app/workspace.segments/_tree.segment.rsc +1 -1
  313. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1356xg3._.js → [root-of-the-server]__003k8.p._.js} +1 -1
  314. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07h84a1._.js +6 -0
  315. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0a_ynue._.js +1 -1
  316. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ex2yk2._.js +32 -0
  317. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f~5z1~._.js +3 -0
  318. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0j3azpj._.js +3 -0
  319. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0q3c~~d._.js +6 -0
  320. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10ny17j._.js +6 -0
  321. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11m~2bm._.js +8 -0
  322. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0z-3x3f._.js → [root-of-the-server]__125y-wk._.js} +4 -4
  323. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12zipk.._.js +6 -0
  324. package/.next/standalone/.next/server/chunks/_059o3h8._.js +53 -25
  325. package/.next/standalone/.next/server/chunks/src_lib_routine-scheduler_ts_0vht_3x._.js +15 -14
  326. package/.next/standalone/.next/server/chunks/ssr/src_app_(workspace)_handover_page_tsx_07ypqvb._.js +11 -1
  327. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  328. package/.next/standalone/.next/server/pages/404.html +1 -1
  329. package/.next/standalone/.next/server/pages/500.html +1 -1
  330. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  331. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  332. package/.next/standalone/.next/static/chunks/0da2sz-erick..js +11 -0
  333. package/.next/standalone/CHANGELOG.md +33 -1
  334. package/.next/standalone/CLAUDE.md +57 -0
  335. package/.next/standalone/package-lock.json +2 -2
  336. package/.next/standalone/package.json +1 -1
  337. package/.next/standalone/src/app/(workspace)/handover/page.tsx +173 -1
  338. package/.next/standalone/src/lib/consult-mcp.ts +99 -0
  339. package/.next/standalone/src/lib/council-runner.ts +51 -21
  340. package/.next/standalone/src/lib/shift-runner.ts +19 -1
  341. package/.next/standalone/src/lib/tool-policy.ts +6 -0
  342. package/.next/standalone/src/lib/twin-consult.ts +249 -0
  343. package/.next/static/chunks/0da2sz-erick..js +11 -0
  344. package/package.json +1 -1
  345. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.lr-mi._.js +0 -32
  346. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05-f-_8._.js +0 -8
  347. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06jgjeu._.js +0 -6
  348. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0h-6u7~._.js +0 -3
  349. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0mjn1lx._.js +0 -6
  350. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0sg37l0._.js +0 -6
  351. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13x7apk._.js +0 -6
  352. package/.next/standalone/.next/static/chunks/0gd374f-lp3~3.js +0 -1
  353. package/.next/static/chunks/0gd374f-lp3~3.js +0 -1
  354. /package/.next/standalone/.next/static/{1xm9LkIMmOAJXw3szDboz → hKlCROIMCh5LN5hzTxGHc}/_buildManifest.js +0 -0
  355. /package/.next/standalone/.next/static/{1xm9LkIMmOAJXw3szDboz → hKlCROIMCh5LN5hzTxGHc}/_clientMiddlewareManifest.js +0 -0
  356. /package/.next/standalone/.next/static/{1xm9LkIMmOAJXw3szDboz → hKlCROIMCh5LN5hzTxGHc}/_ssgManifest.js +0 -0
  357. /package/.next/static/{1xm9LkIMmOAJXw3szDboz → hKlCROIMCh5LN5hzTxGHc}/_buildManifest.js +0 -0
  358. /package/.next/static/{1xm9LkIMmOAJXw3szDboz → hKlCROIMCh5LN5hzTxGHc}/_clientMiddlewareManifest.js +0 -0
  359. /package/.next/static/{1xm9LkIMmOAJXw3szDboz → hKlCROIMCh5LN5hzTxGHc}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},92509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},27699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},27022,e=>{"use strict";var t=e.i(54799);async function r(e){let t=await l(s(e,"oauth-protected-resource")),r=t.authorization_servers?.[0];if(!r)throw Error("MCP server does not advertise an authorization_servers entry — cannot start OAuth.");let n=await l(s(r,"oauth-authorization-server"));if(!n.authorization_endpoint||!n.token_endpoint)throw Error("Authorization server metadata is missing required endpoints.");if(!(Array.isArray(n.code_challenge_methods_supported)&&n.code_challenge_methods_supported.includes("S256")))throw Error("Authorization server does not advertise S256 PKCE — refusing.");return{authorizationServer:r,authorizationEndpoint:n.authorization_endpoint,tokenEndpoint:n.token_endpoint,registrationEndpoint:n.registration_endpoint,scopesSupported:n.scopes_supported??t.scopes_supported,pkceS256Supported:!0}}async function n(e,t,r){let n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({client_name:r,redirect_uris:[t],grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:"none",application_type:"web"})});if(!n.ok){let e=await n.text().catch(()=>"");throw Error(`Dynamic Client Registration failed (${n.status}): ${e.slice(0,200)}`)}let i=await n.json();if(!i.client_id)throw Error("Registration endpoint did not return a client_id.");return{clientId:i.client_id,clientSecret:i.client_secret}}async function i(e){let t=new URLSearchParams({grant_type:"authorization_code",code:e.code,code_verifier:e.codeVerifier,client_id:e.clientId,redirect_uri:e.redirectUri});return o(e.tokenEndpoint,t,e.clientSecret,e.clientId)}async function a(e){let t=new URLSearchParams({grant_type:"refresh_token",refresh_token:e.refreshToken,client_id:e.clientId});return o(e.tokenEndpoint,t,e.clientSecret,e.clientId)}async function o(e,t,r,n){let i={"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"};r&&(i.Authorization="Basic "+Buffer.from(`${n}:${r}`).toString("base64"));let a=await fetch(e,{method:"POST",headers:i,body:t});if(!a.ok){let e=await a.text().catch(()=>"");throw Error(`Token endpoint returned ${a.status}: ${e.slice(0,200)}`)}let o=await a.json();if(!o.access_token)throw Error("Token response missing access_token.");let s="number"==typeof o.expires_in?o.expires_in:3600;return{accessToken:o.access_token,refreshToken:o.refresh_token,expiresAt:new Date(Date.now()+1e3*s).toISOString(),scope:o.scope}}function s(e,t){let r=new URL(e);return`${r.origin}/.well-known/${t}`}async function l(e){let t=await fetch(e,{headers:{Accept:"application/json"}});if(!t.ok)throw Error(`GET ${e} → ${t.status}`);return await t.json()}function c(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}e.s(["buildAuthUrl",0,function(e){let t=new URL(e.authorizationEndpoint);return t.searchParams.set("response_type","code"),t.searchParams.set("client_id",e.clientId),t.searchParams.set("redirect_uri",e.redirectUri),t.searchParams.set("state",e.state),t.searchParams.set("code_challenge",e.codeChallenge),t.searchParams.set("code_challenge_method","S256"),e.scope&&t.searchParams.set("scope",e.scope),t.toString()},"discoverOAuth",0,r,"exchangeCode",0,i,"pkcePair",0,function(){let e=c((0,t.randomBytes)(32)),r=c((0,t.createHash)("sha256").update(e).digest());return{verifier:e,challenge:r}},"randomState",0,function(){return c((0,t.randomBytes)(24))},"refreshAccessToken",0,a,"registerClient",0,n])},48705,e=>{"use strict";var t=e.i(14747),r=e.i(24868),n=e.i(27022);let i=t.default.join(process.cwd(),"data","org"),a=t.default.join(i,"custom-mcp.json");async function o(){try{let e=await r.default.readFile(a,"utf-8"),t=JSON.parse(e);return{servers:Array.isArray(t.servers)?t.servers:[]}}catch{return{servers:[]}}}async function s(e){await r.default.mkdir(i,{recursive:!0}),await r.default.writeFile(a,JSON.stringify(e,null,2))}async function l(){let{servers:e}=await o();return[...e].sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime())}async function c(e){let t=y(e);if(t)throw Error(t);let r=new Date().toISOString(),n={id:`mcp_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`,name:e.name.trim(),description:e.description?.trim()||void 0,transport:e.transport,url:e.url.trim(),headers:_(e.headers??[]),...e.oauth?{oauth:e.oauth}:{},enabled:e.enabled??!0,createdAt:r,updatedAt:r},i=await o();if(i.servers.some(e=>m(e.name)===m(n.name)))throw Error(`An MCP server named "${n.name}" already exists. Pick a different name.`);return i.servers.push(n),await s(i),n}async function u(e,t){let r=await o(),n=r.servers.findIndex(t=>t.id===e);if(-1===n)return null;let i={...r.servers[n],...void 0!==t.name?{name:t.name.trim()}:{},...void 0!==t.description?{description:t.description.trim()||void 0}:{},...void 0!==t.transport?{transport:t.transport}:{},...void 0!==t.url?{url:t.url.trim()}:{},...void 0!==t.headers?{headers:_(t.headers)}:{},...void 0!==t.enabled?{enabled:t.enabled}:{},updatedAt:new Date().toISOString()},a=y(i);if(a)throw Error(a);let l=m(i.name);if(r.servers.some((e,t)=>t!==n&&m(e.name)===l))throw Error(`An MCP server named "${i.name}" already exists. Pick a different name.`);return r.servers[n]=i,await s(r),i}async function d(e,t){let r=await o(),n=r.servers.findIndex(t=>t.id===e);return -1!==n&&(r.servers[n]={...r.servers[n],oauth:t},await s(r),!0)}async function p(e){let t=await o(),r=t.servers.length;return t.servers=t.servers.filter(t=>t.id!==e),t.servers.length!==r&&(await s(t),!0)}async function f(e){let t=e.oauth;if(!t)return null;let r=Date.parse(t.expiresAt);if(Number.isFinite(r)&&Date.now()<r-6e4)return t.accessToken;if(!t.refreshToken)return console.warn(`[mcp-oauth] ${e.name}: access token expired and no refresh token on file — skipping until reconnect.`),null;try{let r=await (0,n.refreshAccessToken)({tokenEndpoint:t.tokenEndpoint,refreshToken:t.refreshToken,clientId:t.clientId,clientSecret:t.clientSecret}),i={...t,accessToken:r.accessToken,refreshToken:r.refreshToken??t.refreshToken,expiresAt:r.expiresAt,scope:r.scope??t.scope};return await d(e.id,i),r.accessToken}catch(r){let t=r instanceof Error?r.message:String(r);return console.warn(`[mcp-oauth] ${e.name}: refresh failed (${t}) — skipping until reconnect.`),null}}async function h(){let e=(await l()).filter(e=>e.enabled&&e.url);if(0===e.length)return{};let t={};for(let r of e){let e=m(r.name)||`mcp_${r.id}`;if(t[e])continue;let n=function(e){let t={};for(let r of e)t[r.key]=r.value;return t}(r.headers);if(r.oauth){let e=await f(r);if(!e)continue;n.Authorization=`Bearer ${e}`}if("http"===r.transport){let i={type:"http",url:r.url,...Object.keys(n).length>0?{headers:n}:{}};t[e]=i}else{let i={type:"sse",url:r.url,...Object.keys(n).length>0?{headers:n}:{}};t[e]=i}}return t}function m(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"").slice(0,32)}function _(e){return e.map(e=>({key:e.key.trim(),value:e.value.trim()})).filter(e=>e.key&&e.value)}function y(e){if(!e.name||!e.name.trim())return"Name is required.";if(!e.url||!e.url.trim())return"URL is required.";try{let t=new URL(e.url);if("https:"!==t.protocol&&"http:"!==t.protocol)return"URL must be http(s)."}catch{return"URL is not valid."}return e.transport&&"http"!==e.transport&&"sse"!==e.transport?"Transport must be 'http' or 'sse'.":0===m(e.name).length?"Name must contain at least one alphanumeric character.":null}e.s(["createCustomMcp",0,c,"deleteCustomMcp",0,p,"listCustomMcp",0,l,"loadOrgCustomMcpServers",0,h,"updateCustomMcp",0,u])},7416,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=r.default.join(process.cwd(),"data","audit.jsonl");function i(){let e=r.default.dirname(n);t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0})}let a=0,o=/^audit\.(\d{4}-\d{2})\.jsonl$/;e.s(["appendAuditEntry",0,function(e){try{i(),function(e){try{if(t.default.statSync(e).size<0xa00000)return;let n=t.default.readFileSync(e,"utf8").split("\n").filter(Boolean),i=Date.now()-2592e6,a=[],o=new Map;for(let e of n)try{let t=JSON.parse(e);if((t.ts?new Date(t.ts).getTime():0)>=i)a.push(e);else{let r=t.ts?t.ts.slice(0,7):"unknown";o.has(r)||o.set(r,[]),o.get(r).push(e)}}catch{a.push(e)}let s=r.default.dirname(e);for(let[e,n]of o){let i=r.default.join(s,`audit.${e}.jsonl`);t.default.appendFileSync(i,n.join("\n")+"\n","utf8")}t.default.writeFileSync(e,a.join("\n")+(a.length?"\n":""),"utf8")}catch{}}(n);let o={id:(a++,`aud_${Date.now().toString(36)}_${a}`),ts:new Date().toISOString(),...e};t.default.appendFileSync(n,JSON.stringify(o)+"\n","utf8")}catch{}},"readAuditLog",0,function(e={}){let a=Math.max(1,e.page??1),s=Math.min(500,Math.max(1,e.pageSize??100)),l=function(){try{let e=r.default.dirname(n);if(!t.default.existsSync(e))return[];let i=[];for(let r of t.default.readdirSync(e)){let e=r.match(o);e&&i.push(e[1])}return i.sort().reverse()}catch{return[]}}();try{var c;i();let o=e.archive?(c=e.archive,r.default.join(r.default.dirname(n),`audit.${c}.jsonl`)):n;if(!t.default.existsSync(o))return{entries:[],totalCount:0,page:a,pageSize:s,archives:l};let u=t.default.readFileSync(o,"utf8").split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e),d=e.since?Date.parse(e.since):-1/0,p=e.until?Date.parse(e.until):1/0,f=u.filter(t=>{if(e.employeeId&&t.employeeId!==e.employeeId||e.toolName&&!t.bareName.toLowerCase().includes(e.toolName.toLowerCase())||e.verdict&&t.verdict!==e.verdict)return!1;let r=Date.parse(t.ts);return(!Number.isFinite(r)||!(r<d)&&!(r>p))&&!0}).reverse(),h=(a-1)*s;return{entries:f.slice(h,h+s),totalCount:f.length,page:a,pageSize:s,archives:l}}catch{return{entries:[],totalCount:0,page:a,pageSize:s,archives:l}}}])},85824,e=>{"use strict";var t=e.i(7416);let r="claude-sonnet-4-6",n="claude-sonnet-4-5",i=["Bash","NotebookEdit","EnterWorktree","ExitWorktree"];e.s(["TWIN_MODEL_FALLBACK",0,n,"TWIN_MODEL_PRIMARY",0,r,"buildBaseOptions",0,function(e){let t="builder"===e.surface||"relay"===e.surface?"high":"routine"===e.surface?"low":"medium",a="1"===process.env.TWIN_ENABLE_1M_CONTEXT;return{model:e.modelOverride??r,fallbackModel:n,effort:t,thinking:{type:"adaptive"},disallowedTools:i,betas:a?["context-1m-2025-08-07"]:void 0,env:{...process.env,CLAUDE_AGENT_SDK_CLIENT_APP:"Employee001/0.2.0"},abortController:e.abortController,title:e.title,promptSuggestions:"chat"===e.surface||"meeting"===e.surface,agentProgressSummaries:!1,strictMcpConfig:!0}},"buildTwinHooks",0,function(r){return{PreToolUse:[{hooks:[async e=>"PreToolUse"!==e.hook_event_name?{}:i.includes(e.tool_name)?{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`${e.tool_name} is hard-disallowed for twins (see sdk-defaults.ts).`}}:{},async n=>{if("PreToolUse"!==n.hook_event_name||"Write"!==n.tool_name)return{};let i=n.tool_input??{},a="string"==typeof i.file_path?i.file_path:"",o=e=>{console.warn(`[restrictWriteToScratch] DENIED — ${e} (raw: "${a}")`);try{(0,t.appendAuditEntry)({runId:r.runId,employeeId:r.employeeId,employeeName:r.employeeName,toolName:"Write",bareName:"Write",input:{file_path:a},verdict:"hard_blocked",blockReason:e})}catch{}return r.onNotification?.({kind:"write_denied",message:e,title:"Scratch write denied"}),{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:e}}};if(!a)return o("Write requires a file_path.");let s=`scratch/${r.employeeId}/`,l=a.replace(/^\.\//,"").replace(/\\/g,"/"),c=l.indexOf(s);if(c>0&&(l=l.slice(c)),!((l=l.replace(/^data\//,"")).startsWith(s)&&!l.includes("..")&&!l.split("/").some(e=>e.startsWith("."))))return o(`Write is sandboxed to ${s}<filename>. Got: "${a}" (normalised: "${l}"). Use a relative path like scratch/${r.employeeId}/my-memo.md`);try{let t=await e.A(23970),n=(await e.A(89793)).join(process.cwd(),"data","scratch",r.employeeId);t.mkdirSync(n,{recursive:!0})}catch{}return(console.log(`[restrictWriteToScratch] ALLOWED — "${l}" (original: "${a}")`),l!==a.replace(/^\.\//,"").replace(/\\/g,"/"))?{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{...i,file_path:l}}}:{}}]}],PostToolUse:[{hooks:[async e=>{if("PostToolUse"!==e.hook_event_name)return{};let n=e.tool_input??{},i=e.tool_name.replace(/^mcp__[a-z0-9_]+__/i,"");try{(0,t.appendAuditEntry)({runId:r.runId,employeeId:r.employeeId,employeeName:r.employeeName,toolName:e.tool_name,bareName:i,input:n,verdict:"executed",durationMs:e.duration_ms,...e.agent_id?{agentId:e.agent_id}:{},...e.agent_type?{agentType:e.agent_type}:{}})}catch(t){let e=t instanceof Error?t.message:String(t);console.warn(`[twin-hooks] audit append failed: ${e}`)}return{}},async e=>{if("PostToolUse"!==e.hook_event_name||"WebSearch"!==e.tool_name&&"WebFetch"!==e.tool_name)return{};let t=e.tool_input??{},r=new Date().toISOString().split("T")[0],n="string"==typeof t.url?t.url:null;return{hookSpecificOutput:{hookEventName:"PostToolUse",additionalContext:n?`[Fetched from ${n} on ${r}. Cite this URL and date in your answer so the CEO can verify the source.]`:`[Web results fetched on ${r}. Cite the source URL(s) and date in your answer.]`}}}]}],Notification:[{hooks:[async e=>{if("Notification"!==e.hook_event_name)return{};try{r.onNotification?.({kind:e.notification_type,message:e.message,title:e.title})}catch{}return{}}]}],Stop:[{hooks:[async e=>{if("Stop"!==e.hook_event_name)return{};try{r.onStop?.({stoppedBy:(e.stop_hook_active,"natural")})}catch{}return{}}]}]}}])},43127,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=r.default.join(process.cwd(),"data","active-runs.json");function i(){let e=r.default.dirname(n);t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0})}function a(){try{if(i(),!t.default.existsSync(n))return{};let e=t.default.readFileSync(n,"utf8");if(!e.trim())return{};return JSON.parse(e)}catch(e){return console.warn("[active-runs] read failed",e),{}}}function o(e){try{i();let r=`${n}.tmp`;t.default.writeFileSync(r,JSON.stringify(e,null,2),"utf8"),t.default.renameSync(r,n)}catch(e){console.warn("[active-runs] write failed",e)}}function s(e){let t=Date.now(),r=!1,n={};for(let[i,a]of Object.entries(e)){if(a.endedAt){let e=new Date(a.endedAt).getTime();if(Number.isFinite(e)&&e+6e4<t){r=!0;continue}}n[i]=a}return r&&o(n),n}e.s(["getActiveRun",0,function(e){return s(a())[e]??null},"listActiveRuns",0,function(e){let t=Object.values(s(a()));return e?.includeRecent||(t=t.filter(e=>"running"===e.status)),e?.employeeId&&(t=t.filter(t=>t.employeeId===e.employeeId)),e?.surface&&(t=t.filter(t=>t.surface===e.surface)),t.sort((e,t)=>t.startedAt.localeCompare(e.startedAt)),t},"registerRun",0,function(e){let t=a(),r={...e,status:"running",toolCalls:0,costUsd:0};return t[r.runId]=r,o(t),r},"unregisterRun",0,function(e,t){let r=a(),n=r[e];n&&(r[e]={...n,status:t.status,endedAt:new Date().toISOString(),costUsd:"number"==typeof t.costUsd?t.costUsd:n.costUsd},o(r))},"updateRun",0,function(e,t){let r=a(),n=r[e];if(!n)return null;let i={...n,...t};return r[e]=i,o(r),i}])},8035,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(54799);function i(e,t){return r.default.join(process.cwd(),"data","run-logs",e,`${t}.ndjson`)}function a(e=0,t="0"){return{bytes:Buffer.alloc(0),size:e,etag:t}}e.s(["appendRunLog",0,function(e,n,a){try{let o,s=i(e,n);o=r.default.dirname(s),t.default.existsSync(o)||t.default.mkdirSync(o,{recursive:!0});let l={ts:new Date().toISOString(),...a};t.default.appendFileSync(s,JSON.stringify(l)+"\n","utf8")}catch(t){console.warn("[run-logs] append failed",e,n,t)}},"logPathFor",0,i,"readLogTail",0,function(e,r,o,s){try{let l=i(e,r);if(!t.default.existsSync(l))return a();let c=t.default.statSync(l).size,u=function(e,r){if(0===r)return"0";try{let i=Math.min(32,r),a=Buffer.alloc(i),o=t.default.openSync(e,"r");try{t.default.readSync(o,a,0,i,r-i)}finally{t.default.closeSync(o)}let s=n.default.createHash("sha1").update(a).digest("hex").slice(0,12);return`${r}-${s}`}catch{return`${r}-x`}}(l,c);if(0===c)return a(0,u);let d=Math.min(1048576,Math.max(1,s)),p=Math.max(0,o);if(p>=c)return{bytes:Buffer.alloc(0),size:c,etag:u};let f=Math.min(c,p+d)-p,h=Buffer.alloc(f),m=t.default.openSync(l,"r");try{t.default.readSync(m,h,0,f,p)}finally{t.default.closeSync(m)}return{bytes:h,size:c,etag:u}}catch(t){return console.warn("[run-logs] read tail failed",e,r,t),a()}}])},5779,e=>{"use strict";let t=[/_DELETE_/i,/_DESTROY_/i,/_REMOVE_USER_/i,/_TRANSFER_FUNDS_/i,/_REFUND_/i,/_PAYMENT_/i,/_CHARGE_/i],r=[/_GET_/i,/_LIST_/i,/_SEARCH_/i,/_FETCH_/i,/_RETRIEVE_/i,/_READ_/i,/_FIND_/i],n=new Set(["Read","Glob","Grep","Write","WebSearch","WebFetch","ToolSearch","Task","create_artifact","share_with_meeting","read_meeting_file","view_meeting_image","analyze_csv","query_csv"]);e.s(["classifyTool",0,function(e,i){let a=e||"",o=(a||"").replace(/^mcp__[a-z0-9_]+__/i,"");if(n.has(a)||n.has(o))return{kind:"allow"};for(let e of t)if(e.test(o))return{kind:"block",reason:`${o} is on the hard-block list (deletes, payments, account changes).`};for(let e of r)if(e.test(o))return{kind:"allow"};if(/SLACK_(SEND|POST|REPLY|UPDATE_MESSAGE|SCHEDULE)/i.test(o)){let e="string"==typeof i?.channel?i.channel:"string"==typeof i?.channel_name?i.channel_name:"";return{kind:"ask",reason:e?`About to send a Slack message to ${e}. Public message — review before sending.`:"About to send a Slack message. Review the recipient and content before sending."}}if(/(GMAIL|OUTLOOK|EMAIL).*(SEND|REPLY)|SEND_EMAIL/i.test(o)){let e="string"==typeof i?.to?i.to:Array.isArray(i?.to)?i.to.join(", "):"";return{kind:"ask",reason:e?`About to send an email to ${e}. External communication — review before sending.`:"About to send an email. Review recipient and content before sending."}}return/CREATE/i.test(o)?{kind:"ask",reason:`About to create a record via ${o}. Review the title and body before creating.`}:/(UPDATE|EDIT|MODIFY|PATCH|MERGE|CLOSE|REOPEN|ASSIGN|TRANSFER)/i.test(o)?{kind:"ask",reason:`About to mutate existing data via ${o}. Review the change before applying.`}:/^[A-Z][A-Z0-9_]+$/.test(o)&&o.includes("_")?{kind:"ask",reason:`${o} is an external action. Confirm before running.`}:{kind:"ask",reason:`${a} is an unrecognized tool. Confirm before running.`}},"describeTool",0,function(e){let t=e.replace(/^mcp__[a-z_]+__/,""),r=t.split("_");if(r.length>=2){let e=r[0],t=r.slice(1).join(" ").toLowerCase();return`${e.charAt(0)}${e.slice(1).toLowerCase()}: ${t}`}return t}])}];
1
+ module.exports=[50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},92509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},27699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},27022,e=>{"use strict";var t=e.i(54799);async function r(e){let t=await l(s(e,"oauth-protected-resource")),r=t.authorization_servers?.[0];if(!r)throw Error("MCP server does not advertise an authorization_servers entry — cannot start OAuth.");let n=await l(s(r,"oauth-authorization-server"));if(!n.authorization_endpoint||!n.token_endpoint)throw Error("Authorization server metadata is missing required endpoints.");if(!(Array.isArray(n.code_challenge_methods_supported)&&n.code_challenge_methods_supported.includes("S256")))throw Error("Authorization server does not advertise S256 PKCE — refusing.");return{authorizationServer:r,authorizationEndpoint:n.authorization_endpoint,tokenEndpoint:n.token_endpoint,registrationEndpoint:n.registration_endpoint,scopesSupported:n.scopes_supported??t.scopes_supported,pkceS256Supported:!0}}async function n(e,t,r){let n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({client_name:r,redirect_uris:[t],grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:"none",application_type:"web"})});if(!n.ok){let e=await n.text().catch(()=>"");throw Error(`Dynamic Client Registration failed (${n.status}): ${e.slice(0,200)}`)}let i=await n.json();if(!i.client_id)throw Error("Registration endpoint did not return a client_id.");return{clientId:i.client_id,clientSecret:i.client_secret}}async function i(e){let t=new URLSearchParams({grant_type:"authorization_code",code:e.code,code_verifier:e.codeVerifier,client_id:e.clientId,redirect_uri:e.redirectUri});return o(e.tokenEndpoint,t,e.clientSecret,e.clientId)}async function a(e){let t=new URLSearchParams({grant_type:"refresh_token",refresh_token:e.refreshToken,client_id:e.clientId});return o(e.tokenEndpoint,t,e.clientSecret,e.clientId)}async function o(e,t,r,n){let i={"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"};r&&(i.Authorization="Basic "+Buffer.from(`${n}:${r}`).toString("base64"));let a=await fetch(e,{method:"POST",headers:i,body:t});if(!a.ok){let e=await a.text().catch(()=>"");throw Error(`Token endpoint returned ${a.status}: ${e.slice(0,200)}`)}let o=await a.json();if(!o.access_token)throw Error("Token response missing access_token.");let s="number"==typeof o.expires_in?o.expires_in:3600;return{accessToken:o.access_token,refreshToken:o.refresh_token,expiresAt:new Date(Date.now()+1e3*s).toISOString(),scope:o.scope}}function s(e,t){let r=new URL(e);return`${r.origin}/.well-known/${t}`}async function l(e){let t=await fetch(e,{headers:{Accept:"application/json"}});if(!t.ok)throw Error(`GET ${e} → ${t.status}`);return await t.json()}function c(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}e.s(["buildAuthUrl",0,function(e){let t=new URL(e.authorizationEndpoint);return t.searchParams.set("response_type","code"),t.searchParams.set("client_id",e.clientId),t.searchParams.set("redirect_uri",e.redirectUri),t.searchParams.set("state",e.state),t.searchParams.set("code_challenge",e.codeChallenge),t.searchParams.set("code_challenge_method","S256"),e.scope&&t.searchParams.set("scope",e.scope),t.toString()},"discoverOAuth",0,r,"exchangeCode",0,i,"pkcePair",0,function(){let e=c((0,t.randomBytes)(32)),r=c((0,t.createHash)("sha256").update(e).digest());return{verifier:e,challenge:r}},"randomState",0,function(){return c((0,t.randomBytes)(24))},"refreshAccessToken",0,a,"registerClient",0,n])},48705,e=>{"use strict";var t=e.i(14747),r=e.i(24868),n=e.i(27022);let i=t.default.join(process.cwd(),"data","org"),a=t.default.join(i,"custom-mcp.json");async function o(){try{let e=await r.default.readFile(a,"utf-8"),t=JSON.parse(e);return{servers:Array.isArray(t.servers)?t.servers:[]}}catch{return{servers:[]}}}async function s(e){await r.default.mkdir(i,{recursive:!0}),await r.default.writeFile(a,JSON.stringify(e,null,2))}async function l(){let{servers:e}=await o();return[...e].sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime())}async function c(e){let t=y(e);if(t)throw Error(t);let r=new Date().toISOString(),n={id:`mcp_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`,name:e.name.trim(),description:e.description?.trim()||void 0,transport:e.transport,url:e.url.trim(),headers:_(e.headers??[]),...e.oauth?{oauth:e.oauth}:{},enabled:e.enabled??!0,createdAt:r,updatedAt:r},i=await o();if(i.servers.some(e=>m(e.name)===m(n.name)))throw Error(`An MCP server named "${n.name}" already exists. Pick a different name.`);return i.servers.push(n),await s(i),n}async function u(e,t){let r=await o(),n=r.servers.findIndex(t=>t.id===e);if(-1===n)return null;let i={...r.servers[n],...void 0!==t.name?{name:t.name.trim()}:{},...void 0!==t.description?{description:t.description.trim()||void 0}:{},...void 0!==t.transport?{transport:t.transport}:{},...void 0!==t.url?{url:t.url.trim()}:{},...void 0!==t.headers?{headers:_(t.headers)}:{},...void 0!==t.enabled?{enabled:t.enabled}:{},updatedAt:new Date().toISOString()},a=y(i);if(a)throw Error(a);let l=m(i.name);if(r.servers.some((e,t)=>t!==n&&m(e.name)===l))throw Error(`An MCP server named "${i.name}" already exists. Pick a different name.`);return r.servers[n]=i,await s(r),i}async function d(e,t){let r=await o(),n=r.servers.findIndex(t=>t.id===e);return -1!==n&&(r.servers[n]={...r.servers[n],oauth:t},await s(r),!0)}async function p(e){let t=await o(),r=t.servers.length;return t.servers=t.servers.filter(t=>t.id!==e),t.servers.length!==r&&(await s(t),!0)}async function f(e){let t=e.oauth;if(!t)return null;let r=Date.parse(t.expiresAt);if(Number.isFinite(r)&&Date.now()<r-6e4)return t.accessToken;if(!t.refreshToken)return console.warn(`[mcp-oauth] ${e.name}: access token expired and no refresh token on file — skipping until reconnect.`),null;try{let r=await (0,n.refreshAccessToken)({tokenEndpoint:t.tokenEndpoint,refreshToken:t.refreshToken,clientId:t.clientId,clientSecret:t.clientSecret}),i={...t,accessToken:r.accessToken,refreshToken:r.refreshToken??t.refreshToken,expiresAt:r.expiresAt,scope:r.scope??t.scope};return await d(e.id,i),r.accessToken}catch(r){let t=r instanceof Error?r.message:String(r);return console.warn(`[mcp-oauth] ${e.name}: refresh failed (${t}) — skipping until reconnect.`),null}}async function h(){let e=(await l()).filter(e=>e.enabled&&e.url);if(0===e.length)return{};let t={};for(let r of e){let e=m(r.name)||`mcp_${r.id}`;if(t[e])continue;let n=function(e){let t={};for(let r of e)t[r.key]=r.value;return t}(r.headers);if(r.oauth){let e=await f(r);if(!e)continue;n.Authorization=`Bearer ${e}`}if("http"===r.transport){let i={type:"http",url:r.url,...Object.keys(n).length>0?{headers:n}:{}};t[e]=i}else{let i={type:"sse",url:r.url,...Object.keys(n).length>0?{headers:n}:{}};t[e]=i}}return t}function m(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"").slice(0,32)}function _(e){return e.map(e=>({key:e.key.trim(),value:e.value.trim()})).filter(e=>e.key&&e.value)}function y(e){if(!e.name||!e.name.trim())return"Name is required.";if(!e.url||!e.url.trim())return"URL is required.";try{let t=new URL(e.url);if("https:"!==t.protocol&&"http:"!==t.protocol)return"URL must be http(s)."}catch{return"URL is not valid."}return e.transport&&"http"!==e.transport&&"sse"!==e.transport?"Transport must be 'http' or 'sse'.":0===m(e.name).length?"Name must contain at least one alphanumeric character.":null}e.s(["createCustomMcp",0,c,"deleteCustomMcp",0,p,"listCustomMcp",0,l,"loadOrgCustomMcpServers",0,h,"updateCustomMcp",0,u])},7416,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=r.default.join(process.cwd(),"data","audit.jsonl");function i(){let e=r.default.dirname(n);t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0})}let a=0,o=/^audit\.(\d{4}-\d{2})\.jsonl$/;e.s(["appendAuditEntry",0,function(e){try{i(),function(e){try{if(t.default.statSync(e).size<0xa00000)return;let n=t.default.readFileSync(e,"utf8").split("\n").filter(Boolean),i=Date.now()-2592e6,a=[],o=new Map;for(let e of n)try{let t=JSON.parse(e);if((t.ts?new Date(t.ts).getTime():0)>=i)a.push(e);else{let r=t.ts?t.ts.slice(0,7):"unknown";o.has(r)||o.set(r,[]),o.get(r).push(e)}}catch{a.push(e)}let s=r.default.dirname(e);for(let[e,n]of o){let i=r.default.join(s,`audit.${e}.jsonl`);t.default.appendFileSync(i,n.join("\n")+"\n","utf8")}t.default.writeFileSync(e,a.join("\n")+(a.length?"\n":""),"utf8")}catch{}}(n);let o={id:(a++,`aud_${Date.now().toString(36)}_${a}`),ts:new Date().toISOString(),...e};t.default.appendFileSync(n,JSON.stringify(o)+"\n","utf8")}catch{}},"readAuditLog",0,function(e={}){let a=Math.max(1,e.page??1),s=Math.min(500,Math.max(1,e.pageSize??100)),l=function(){try{let e=r.default.dirname(n);if(!t.default.existsSync(e))return[];let i=[];for(let r of t.default.readdirSync(e)){let e=r.match(o);e&&i.push(e[1])}return i.sort().reverse()}catch{return[]}}();try{var c;i();let o=e.archive?(c=e.archive,r.default.join(r.default.dirname(n),`audit.${c}.jsonl`)):n;if(!t.default.existsSync(o))return{entries:[],totalCount:0,page:a,pageSize:s,archives:l};let u=t.default.readFileSync(o,"utf8").split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e),d=e.since?Date.parse(e.since):-1/0,p=e.until?Date.parse(e.until):1/0,f=u.filter(t=>{if(e.employeeId&&t.employeeId!==e.employeeId||e.toolName&&!t.bareName.toLowerCase().includes(e.toolName.toLowerCase())||e.verdict&&t.verdict!==e.verdict)return!1;let r=Date.parse(t.ts);return(!Number.isFinite(r)||!(r<d)&&!(r>p))&&!0}).reverse(),h=(a-1)*s;return{entries:f.slice(h,h+s),totalCount:f.length,page:a,pageSize:s,archives:l}}catch{return{entries:[],totalCount:0,page:a,pageSize:s,archives:l}}}])},85824,e=>{"use strict";var t=e.i(7416);let r="claude-sonnet-4-6",n="claude-sonnet-4-5",i=["Bash","NotebookEdit","EnterWorktree","ExitWorktree"];e.s(["TWIN_MODEL_FALLBACK",0,n,"TWIN_MODEL_PRIMARY",0,r,"buildBaseOptions",0,function(e){let t="builder"===e.surface||"relay"===e.surface?"high":"routine"===e.surface?"low":"medium",a="1"===process.env.TWIN_ENABLE_1M_CONTEXT;return{model:e.modelOverride??r,fallbackModel:n,effort:t,thinking:{type:"adaptive"},disallowedTools:i,betas:a?["context-1m-2025-08-07"]:void 0,env:{...process.env,CLAUDE_AGENT_SDK_CLIENT_APP:"Employee001/0.2.0"},abortController:e.abortController,title:e.title,promptSuggestions:"chat"===e.surface||"meeting"===e.surface,agentProgressSummaries:!1,strictMcpConfig:!0}},"buildTwinHooks",0,function(r){return{PreToolUse:[{hooks:[async e=>"PreToolUse"!==e.hook_event_name?{}:i.includes(e.tool_name)?{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`${e.tool_name} is hard-disallowed for twins (see sdk-defaults.ts).`}}:{},async n=>{if("PreToolUse"!==n.hook_event_name||"Write"!==n.tool_name)return{};let i=n.tool_input??{},a="string"==typeof i.file_path?i.file_path:"",o=e=>{console.warn(`[restrictWriteToScratch] DENIED — ${e} (raw: "${a}")`);try{(0,t.appendAuditEntry)({runId:r.runId,employeeId:r.employeeId,employeeName:r.employeeName,toolName:"Write",bareName:"Write",input:{file_path:a},verdict:"hard_blocked",blockReason:e})}catch{}return r.onNotification?.({kind:"write_denied",message:e,title:"Scratch write denied"}),{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:e}}};if(!a)return o("Write requires a file_path.");let s=`scratch/${r.employeeId}/`,l=a.replace(/^\.\//,"").replace(/\\/g,"/"),c=l.indexOf(s);if(c>0&&(l=l.slice(c)),!((l=l.replace(/^data\//,"")).startsWith(s)&&!l.includes("..")&&!l.split("/").some(e=>e.startsWith("."))))return o(`Write is sandboxed to ${s}<filename>. Got: "${a}" (normalised: "${l}"). Use a relative path like scratch/${r.employeeId}/my-memo.md`);try{let t=await e.A(23970),n=(await e.A(89793)).join(process.cwd(),"data","scratch",r.employeeId);t.mkdirSync(n,{recursive:!0})}catch{}return(console.log(`[restrictWriteToScratch] ALLOWED — "${l}" (original: "${a}")`),l!==a.replace(/^\.\//,"").replace(/\\/g,"/"))?{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{...i,file_path:l}}}:{}}]}],PostToolUse:[{hooks:[async e=>{if("PostToolUse"!==e.hook_event_name)return{};let n=e.tool_input??{},i=e.tool_name.replace(/^mcp__[a-z0-9_]+__/i,"");try{(0,t.appendAuditEntry)({runId:r.runId,employeeId:r.employeeId,employeeName:r.employeeName,toolName:e.tool_name,bareName:i,input:n,verdict:"executed",durationMs:e.duration_ms,...e.agent_id?{agentId:e.agent_id}:{},...e.agent_type?{agentType:e.agent_type}:{}})}catch(t){let e=t instanceof Error?t.message:String(t);console.warn(`[twin-hooks] audit append failed: ${e}`)}return{}},async e=>{if("PostToolUse"!==e.hook_event_name||"WebSearch"!==e.tool_name&&"WebFetch"!==e.tool_name)return{};let t=e.tool_input??{},r=new Date().toISOString().split("T")[0],n="string"==typeof t.url?t.url:null;return{hookSpecificOutput:{hookEventName:"PostToolUse",additionalContext:n?`[Fetched from ${n} on ${r}. Cite this URL and date in your answer so the CEO can verify the source.]`:`[Web results fetched on ${r}. Cite the source URL(s) and date in your answer.]`}}}]}],Notification:[{hooks:[async e=>{if("Notification"!==e.hook_event_name)return{};try{r.onNotification?.({kind:e.notification_type,message:e.message,title:e.title})}catch{}return{}}]}],Stop:[{hooks:[async e=>{if("Stop"!==e.hook_event_name)return{};try{r.onStop?.({stoppedBy:(e.stop_hook_active,"natural")})}catch{}return{}}]}]}}])},43127,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=r.default.join(process.cwd(),"data","active-runs.json");function i(){let e=r.default.dirname(n);t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0})}function a(){try{if(i(),!t.default.existsSync(n))return{};let e=t.default.readFileSync(n,"utf8");if(!e.trim())return{};return JSON.parse(e)}catch(e){return console.warn("[active-runs] read failed",e),{}}}function o(e){try{i();let r=`${n}.tmp`;t.default.writeFileSync(r,JSON.stringify(e,null,2),"utf8"),t.default.renameSync(r,n)}catch(e){console.warn("[active-runs] write failed",e)}}function s(e){let t=Date.now(),r=!1,n={};for(let[i,a]of Object.entries(e)){if(a.endedAt){let e=new Date(a.endedAt).getTime();if(Number.isFinite(e)&&e+6e4<t){r=!0;continue}}n[i]=a}return r&&o(n),n}e.s(["getActiveRun",0,function(e){return s(a())[e]??null},"listActiveRuns",0,function(e){let t=Object.values(s(a()));return e?.includeRecent||(t=t.filter(e=>"running"===e.status)),e?.employeeId&&(t=t.filter(t=>t.employeeId===e.employeeId)),e?.surface&&(t=t.filter(t=>t.surface===e.surface)),t.sort((e,t)=>t.startedAt.localeCompare(e.startedAt)),t},"registerRun",0,function(e){let t=a(),r={...e,status:"running",toolCalls:0,costUsd:0};return t[r.runId]=r,o(t),r},"unregisterRun",0,function(e,t){let r=a(),n=r[e];n&&(r[e]={...n,status:t.status,endedAt:new Date().toISOString(),costUsd:"number"==typeof t.costUsd?t.costUsd:n.costUsd},o(r))},"updateRun",0,function(e,t){let r=a(),n=r[e];if(!n)return null;let i={...n,...t};return r[e]=i,o(r),i}])},8035,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(54799);function i(e,t){return r.default.join(process.cwd(),"data","run-logs",e,`${t}.ndjson`)}function a(e=0,t="0"){return{bytes:Buffer.alloc(0),size:e,etag:t}}e.s(["appendRunLog",0,function(e,n,a){try{let o,s=i(e,n);o=r.default.dirname(s),t.default.existsSync(o)||t.default.mkdirSync(o,{recursive:!0});let l={ts:new Date().toISOString(),...a};t.default.appendFileSync(s,JSON.stringify(l)+"\n","utf8")}catch(t){console.warn("[run-logs] append failed",e,n,t)}},"logPathFor",0,i,"readLogTail",0,function(e,r,o,s){try{let l=i(e,r);if(!t.default.existsSync(l))return a();let c=t.default.statSync(l).size,u=function(e,r){if(0===r)return"0";try{let i=Math.min(32,r),a=Buffer.alloc(i),o=t.default.openSync(e,"r");try{t.default.readSync(o,a,0,i,r-i)}finally{t.default.closeSync(o)}let s=n.default.createHash("sha1").update(a).digest("hex").slice(0,12);return`${r}-${s}`}catch{return`${r}-x`}}(l,c);if(0===c)return a(0,u);let d=Math.min(1048576,Math.max(1,s)),p=Math.max(0,o);if(p>=c)return{bytes:Buffer.alloc(0),size:c,etag:u};let f=Math.min(c,p+d)-p,h=Buffer.alloc(f),m=t.default.openSync(l,"r");try{t.default.readSync(m,h,0,f,p)}finally{t.default.closeSync(m)}return{bytes:h,size:c,etag:u}}catch(t){return console.warn("[run-logs] read tail failed",e,r,t),a()}}])},5779,e=>{"use strict";let t=[/_DELETE_/i,/_DESTROY_/i,/_REMOVE_USER_/i,/_TRANSFER_FUNDS_/i,/_REFUND_/i,/_PAYMENT_/i,/_CHARGE_/i],r=[/_GET_/i,/_LIST_/i,/_SEARCH_/i,/_FETCH_/i,/_RETRIEVE_/i,/_READ_/i,/_FIND_/i],n=new Set(["Read","Glob","Grep","Write","WebSearch","WebFetch","ToolSearch","Task","create_artifact","share_with_meeting","read_meeting_file","view_meeting_image","analyze_csv","query_csv","consult_twin","request_approval"]);e.s(["classifyTool",0,function(e,i){let a=e||"",o=(a||"").replace(/^mcp__[a-z0-9_]+__/i,"");if(n.has(a)||n.has(o))return{kind:"allow"};for(let e of t)if(e.test(o))return{kind:"block",reason:`${o} is on the hard-block list (deletes, payments, account changes).`};for(let e of r)if(e.test(o))return{kind:"allow"};if(/SLACK_(SEND|POST|REPLY|UPDATE_MESSAGE|SCHEDULE)/i.test(o)){let e="string"==typeof i?.channel?i.channel:"string"==typeof i?.channel_name?i.channel_name:"";return{kind:"ask",reason:e?`About to send a Slack message to ${e}. Public message — review before sending.`:"About to send a Slack message. Review the recipient and content before sending."}}if(/(GMAIL|OUTLOOK|EMAIL).*(SEND|REPLY)|SEND_EMAIL/i.test(o)){let e="string"==typeof i?.to?i.to:Array.isArray(i?.to)?i.to.join(", "):"";return{kind:"ask",reason:e?`About to send an email to ${e}. External communication — review before sending.`:"About to send an email. Review recipient and content before sending."}}return/CREATE/i.test(o)?{kind:"ask",reason:`About to create a record via ${o}. Review the title and body before creating.`}:/(UPDATE|EDIT|MODIFY|PATCH|MERGE|CLOSE|REOPEN|ASSIGN|TRANSFER)/i.test(o)?{kind:"ask",reason:`About to mutate existing data via ${o}. Review the change before applying.`}:/^[A-Z][A-Z0-9_]+$/.test(o)&&o.includes("_")?{kind:"ask",reason:`${o} is an external action. Confirm before running.`}:{kind:"ask",reason:`${a} is an unrecognized tool. Confirm before running.`}},"describeTool",0,function(e){let t=e.replace(/^mcp__[a-z_]+__/,""),r=t.split("_");if(r.length>=2){let e=r[0],t=r.slice(1).join(" ").toLowerCase();return`${e.charAt(0)}${e.slice(1).toLowerCase()}: ${t}`}return t}])}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0a_ynue._.js.map
@@ -0,0 +1,32 @@
1
+ module.exports=[24725,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},24361,(e,t,n)=>{t.exports=e.x("util",()=>require("util"))},76430,28177,e=>{"use strict";var t=e.i(14747),n=e.i(22734);let r=["CONTEXT.md","EXPERTISE.md","PROJECTS.md","PEOPLE.md","DECISIONS.md","PREFERENCES.md","TONE.md","BOUNDARIES.md","EMPLOYMENT.md"];e.s(["TWIN_FILE_NAMES",0,r],28177);let i=e=>t.default.join(process.cwd(),"data","employees",e),l=e=>t.default.join(i(e),".versions"),o=e=>t.default.join(l(e),"files"),u=e=>t.default.join(l(e),"builds"),a=e=>t.default.join(l(e),"_log.jsonl"),d=(e,n)=>t.default.join(u(e),`${n}.events.jsonl`),s=t.default.join(process.cwd(),"data","active-builds.json");function f(e=new Date){return e.toISOString().replace(/[:.]/g,"-")}function c(e){n.default.mkdirSync(l(e),{recursive:!0}),n.default.mkdirSync(o(e),{recursive:!0}),n.default.mkdirSync(u(e),{recursive:!0})}function m(e,r,i,l,u={}){c(e);let d=f(u.at??new Date),s=t.default.join(o(e),r);n.default.mkdirSync(s,{recursive:!0});let y=t.default.join(s,`${d}.md`),p=d,S=y,v=0;for(;n.default.existsSync(S);)v+=1,p=`${d}-${v}`,S=t.default.join(s,`${p}.md`);n.default.writeFileSync(S,i,"utf-8");let g={ts:p,filename:r,sizeBytes:Buffer.byteLength(i,"utf-8"),source:l,...u.buildId?{buildId:u.buildId}:{},...u.restoredFromTs?{restoredFromTs:u.restoredFromTs}:{}};return n.default.appendFileSync(a(e),JSON.stringify(g)+"\n"),p}function y(e,r,l,o={}){let u=t.default.join(i(e),r),a="";try{a=n.default.readFileSync(u,"utf-8")}catch{return null}return a?m(e,r,a,l,o):null}function p(e,i,l){if(!r.includes(i)||!/^[0-9A-Za-z\-]+Z(-\d+)?$/.test(l))return null;let u=t.default.join(o(e),i,`${l}.md`);try{return n.default.readFileSync(u,"utf-8")}catch{return null}}function S(e){let r;try{r=n.default.readdirSync(u(e))}catch{return[]}return r.filter(e=>e.endsWith(".json")).map(r=>{try{let i=n.default.readFileSync(t.default.join(u(e),r),"utf-8");return JSON.parse(i)}catch{return null}}).filter(e=>null!==e).sort((e,t)=>e.startedAt.localeCompare(t.startedAt)).map((e,t)=>({...e,version:t+1}))}function v(e,r,l){let o=p(e,r,l);if(null===o)return{ok:!1,error:"version not found"};y(e,r,"restore",{restoredFromTs:l});let u=t.default.join(i(e),r);return n.default.mkdirSync(i(e),{recursive:!0}),n.default.writeFileSync(u,o,"utf-8"),{ok:!0}}function g(){try{let e=n.default.readFileSync(s,"utf-8");return JSON.parse(e)}catch{return{}}}function I(e){n.default.mkdirSync(t.default.dirname(s),{recursive:!0}),n.default.writeFileSync(s,JSON.stringify(e,null,2))}e.s(["appendBuildEvent",0,function(e,t,r){c(e),n.default.mkdirSync(u(e),{recursive:!0}),n.default.appendFileSync(d(e,t),JSON.stringify(r)+"\n")},"bumpBuildActivity",0,function(e,t){let n=g(),r=n[e];r&&(n[e]={...r,...t},I(n))},"clearBuildActive",0,function(e){let t=g();delete t[e],I(t)},"getActiveBuild",0,function(e){return g()[e]??null},"listActiveBuilds",0,function(){return Object.values(g())},"listBuilds",0,S,"listFileVersions",0,function(e,t){return(function(e){try{return n.default.readFileSync(a(e),"utf-8").split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e)}catch{return[]}})(e).filter(e=>e.filename===t).map(e=>({ts:e.ts,sizeBytes:e.sizeBytes,source:e.source,buildId:e.buildId})).reverse()},"markBuildActive",0,function(e){let t=g();t[e.employeeId]=e,I(t)},"newBuildId",0,function(e=new Date){return f(e)},"readBuildEvents",0,function(e,t,r=0){let i,l=d(e,t);try{i=n.default.readFileSync(l)}catch{return{events:[],nextOffset:0,sizeBytes:0}}let o=i.byteLength;if(r>=o)return{events:[],nextOffset:o,sizeBytes:o};let u=i.subarray(r).toString("utf-8"),a=u.lastIndexOf("\n");if(a<0)return{events:[],nextOffset:r,sizeBytes:o};let s=a+1;return{events:u.slice(0,s).split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e),nextOffset:r+s,sizeBytes:o}},"readFileVersion",0,p,"recordBuild",0,function(e){c(e.employeeId);let l=new Set(e.writtenFiles),o=[];for(let u of r){let r=t.default.join(i(e.employeeId),u),a="";try{a=n.default.readFileSync(r,"utf-8")}catch{continue}if(!a)continue;let d=m(e.employeeId,u,a,"builder",{buildId:e.buildId});o.push({filename:u,snapshotTs:d,sizeBytes:Buffer.byteLength(a,"utf-8"),written:l.has(u)})}let a={buildId:e.buildId,startedAt:e.startedAt.toISOString(),finishedAt:e.finishedAt.toISOString(),durationMs:e.finishedAt.getTime()-e.startedAt.getTime(),modelUsed:e.modelUsed,costUsd:e.costUsd,turns:e.turns,stoppedReason:e.stoppedReason,...e.ceoContext?{ceoContext:e.ceoContext}:{},activeToolkits:e.activeToolkits,files:o},d=t.default.join(u(e.employeeId),`${e.buildId}.json`);return n.default.writeFileSync(d,JSON.stringify(a,null,2)),a},"restoreBuild",0,function(e,t){let n=S(e).find(e=>e.buildId===t)??null;if(!n)return{ok:!1,error:"build not found",restored:[]};let r=[];for(let t of n.files)v(e,t.filename,t.snapshotTs).ok&&r.push(t.filename);return{ok:!0,restored:r}},"restoreFile",0,v,"snapshotFile",0,m,"snapshotRootFile",0,y],76430)},8098,e=>{"use strict";var t=e.i(22734),n=e.i(24868),r=e.i(14747),i=e.i(54799);function l(e){return"number"==typeof e.lookbackDays?e:{...e,lookbackDays:90}}function o(){return r.default.join(process.cwd(),"data","invites.json")}function u(){let e=r.default.dirname(o());t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0})}function a(){try{if(!t.default.existsSync(o()))return[];let e=t.default.readFileSync(o(),"utf8"),n=JSON.parse(e);return Array.isArray(n)?n:[]}catch{return[]}}function d(e){u(),t.default.writeFileSync(o(),JSON.stringify(e,null,2),"utf8")}function s(e){if(!e.startsWith("inv_"))return;let t=a().find(t=>t.token===e);return t?l(t):void 0}function f(e){let t=s(e);return t?t.completedAt?{ok:!1,reason:"used",invite:t}:new Date(t.expiresAt).getTime()<Date.now()?{ok:!1,reason:"expired",invite:t}:{ok:!0,invite:t}:{ok:!1,reason:"not_found"}}let c=["EXPERTISE","DECISIONS","CONTEXT","PEOPLE","PROJECTS","PREFERENCES","TONE","BOUNDARIES","EMPLOYMENT"];function m(e){return e.toLowerCase().normalize("NFD").replace(/[̀-ͯ]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)}async function y(e,t){let i,l,o=s(e);if(!o)throw Error("invite not found");if(o.employeeId)return{employeeId:o.employeeId,reused:!0};let u=(t?.name||o.name||"").trim(),f=(t?.role||o.role||"").trim(),y=m(u);y||(y=m(f)),y||(y=`pending-${e.slice(4,10)}`);let p=`${y}-${e.slice(4,10)}`,S=r.default.join(process.cwd(),"data","employees",p),v=r.default.join(S,"employee.json");try{return await n.default.access(v),{employeeId:p,reused:!0}}catch{}await n.default.mkdir(S,{recursive:!0});let g=u||`Pending (${e.slice(4,10)})`,I=(i=new Date().toISOString().slice(0,10),(l={}).EMPLOYMENT=`# Employment — ${g}
2
+
3
+ - Name: ${g}
4
+ ${f?`- Role: ${f}
5
+ `:""}- Onboarded: ${i}
6
+ `,l.EXPERTISE=`# Expertise — ${g}
7
+
8
+ _To be filled in during onboarding._
9
+ `,l.BOUNDARIES=`# Boundaries — ${g}
10
+
11
+ _To be filled in during onboarding._
12
+ `,l.CONTEXT=`# Context — ${g}
13
+
14
+ _To be filled in during onboarding._
15
+ `,l.DECISIONS=`# Decisions — ${g}
16
+
17
+ _To be filled in during onboarding._
18
+ `,l.PEOPLE=`# People — ${g}
19
+
20
+ _To be filled in during onboarding._
21
+ `,l.PROJECTS=`# Projects — ${g}
22
+
23
+ _To be filled in during onboarding._
24
+ `,l.PREFERENCES=`# Preferences — ${g}
25
+
26
+ _To be filled in during onboarding._
27
+ `,l.TONE=`# Tone — ${g}
28
+
29
+ _To be filled in during onboarding._
30
+ `,l);return await Promise.all(c.map(async e=>{let t=r.default.join(S,`${e}.md`);try{await n.default.access(t)}catch{await n.default.writeFile(t,I[e],"utf8")}})),await n.default.writeFile(v,JSON.stringify({id:p,name:g,role:f||null,integrations:[],createdAt:new Date().toISOString(),lastActiveAt:new Date().toISOString(),via:{invite:e},pendingProfile:!u},null,2),"utf8"),!function(e,t){let n=a(),r=n.findIndex(t=>t.token===e);if(r<0)return;let i=n[r];i.employeeId===t||i.employeeId&&i.employeeId!==t||(n[r]={...i,employeeId:t},d(n))}(e,p),{employeeId:p,reused:!1}}e.s(["bulkRevokeInvites",0,function(e){let t=Date.now(),n=a(),r=[],i=n.filter(n=>!(!n.completedAt&&("expired"===e?new Date(n.expiresAt).getTime()<t:!n.employeeId))||(r.push(n.token),!1));return r.length>0&&d(i),{removed:r.length,tokens:r}},"classifyInvite",0,f,"createInvite",0,function(e){let t=`inv_${(0,i.randomBytes)(20).toString("hex")}`,n=new Date,r=new Date(n.getTime()+12096e5),l={token:t,name:e.name?.trim()||void 0,role:e.role?.trim()||void 0,createdAt:n.toISOString(),expiresAt:r.toISOString(),lookbackDays:function(e){let t="number"==typeof e?e:Number(e);if(!Number.isFinite(t))return 90;let n=Math.round(t);return n<30?30:n>360?360:n}(void 0===e.lookbackDays?90:e.lookbackDays)},o=a();return o.push(l),d(o),l},"findInvite",0,s,"isInviteRedeemable",0,function(e){let t=s(e);if(t&&!t.completedAt&&!(new Date(t.expiresAt).getTime()<Date.now()))return t},"listInvites",0,function(){return a().filter(e=>"string"==typeof e?.token).map(l).sort((e,t)=>t.createdAt.localeCompare(e.createdAt))},"markInviteCompleted",0,function(e,t){let n=a(),r=n.findIndex(t=>t.token===e);if(-1!==r)return n[r]={...n[r],completedAt:new Date().toISOString(),employeeId:t},d(n),n[r]},"materializeEmployeeFromInvite",0,y,"releaseInviteClaim",0,function(e){let n=r.default.join(r.default.dirname(o()),`.invite-${e}.lock`);try{t.default.unlinkSync(n)}catch{}},"revokeInvite",0,function(e){let t=a(),n=t.filter(t=>t.token!==e);return n.length!==t.length&&(d(n),!0)},"tryClaimInvite",0,function(e){let n=f(e);if(!n.ok)return{claimed:!1,reason:n.reason};u();let i=r.default.join(r.default.dirname(o()),`.invite-${e}.lock`);try{t.default.writeFileSync(i,String(process.pid),{flag:"wx"});let n=f(e);if(!n.ok){try{t.default.unlinkSync(i)}catch{}return{claimed:!1,reason:n.reason}}return{claimed:!0}}catch(e){if(e&&"EEXIST"===e.code)return{claimed:!1,reason:"already_claimed"};throw e}}])},30887,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_stream_0g9s3ok._.js","server/chunks/[root-of-the-server]__0gqp_8t._.js"].map(t=>e.l(t))).then(()=>t(41379)))},23970,e=>{e.v(e=>Promise.resolve().then(()=>e(22734)))},89793,e=>{e.v(e=>Promise.resolve().then(()=>e(14747)))}];
31
+
32
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0ex2yk2._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[24361,(e,t,n)=>{t.exports=e.x("util",()=>require("util"))},76430,28177,e=>{"use strict";var t=e.i(14747),n=e.i(22734);let r=["CONTEXT.md","EXPERTISE.md","PROJECTS.md","PEOPLE.md","DECISIONS.md","PREFERENCES.md","TONE.md","BOUNDARIES.md","EMPLOYMENT.md"];e.s(["TWIN_FILE_NAMES",0,r],28177);let i=e=>t.default.join(process.cwd(),"data","employees",e),a=e=>t.default.join(i(e),".versions"),l=e=>t.default.join(a(e),"files"),o=e=>t.default.join(a(e),"builds"),s=e=>t.default.join(a(e),"_log.jsonl"),u=(e,n)=>t.default.join(o(e),`${n}.events.jsonl`),d=t.default.join(process.cwd(),"data","active-builds.json");function c(e=new Date){return e.toISOString().replace(/[:.]/g,"-")}function f(e){n.default.mkdirSync(a(e),{recursive:!0}),n.default.mkdirSync(l(e),{recursive:!0}),n.default.mkdirSync(o(e),{recursive:!0})}function p(e,r,i,a,o={}){f(e);let u=c(o.at??new Date),d=t.default.join(l(e),r);n.default.mkdirSync(d,{recursive:!0});let m=t.default.join(d,`${u}.md`),h=u,y=m,v=0;for(;n.default.existsSync(y);)v+=1,h=`${u}-${v}`,y=t.default.join(d,`${h}.md`);n.default.writeFileSync(y,i,"utf-8");let E={ts:h,filename:r,sizeBytes:Buffer.byteLength(i,"utf-8"),source:a,...o.buildId?{buildId:o.buildId}:{},...o.restoredFromTs?{restoredFromTs:o.restoredFromTs}:{}};return n.default.appendFileSync(s(e),JSON.stringify(E)+"\n"),h}function m(e,r,a,l={}){let o=t.default.join(i(e),r),s="";try{s=n.default.readFileSync(o,"utf-8")}catch{return null}return s?p(e,r,s,a,l):null}function h(e,i,a){if(!r.includes(i)||!/^[0-9A-Za-z\-]+Z(-\d+)?$/.test(a))return null;let o=t.default.join(l(e),i,`${a}.md`);try{return n.default.readFileSync(o,"utf-8")}catch{return null}}function y(e){let r;try{r=n.default.readdirSync(o(e))}catch{return[]}return r.filter(e=>e.endsWith(".json")).map(r=>{try{let i=n.default.readFileSync(t.default.join(o(e),r),"utf-8");return JSON.parse(i)}catch{return null}}).filter(e=>null!==e).sort((e,t)=>e.startedAt.localeCompare(t.startedAt)).map((e,t)=>({...e,version:t+1}))}function v(e,r,a){let l=h(e,r,a);if(null===l)return{ok:!1,error:"version not found"};m(e,r,"restore",{restoredFromTs:a});let o=t.default.join(i(e),r);return n.default.mkdirSync(i(e),{recursive:!0}),n.default.writeFileSync(o,l,"utf-8"),{ok:!0}}function E(){try{let e=n.default.readFileSync(d,"utf-8");return JSON.parse(e)}catch{return{}}}function S(e){n.default.mkdirSync(t.default.dirname(d),{recursive:!0}),n.default.writeFileSync(d,JSON.stringify(e,null,2))}e.s(["appendBuildEvent",0,function(e,t,r){f(e),n.default.mkdirSync(o(e),{recursive:!0}),n.default.appendFileSync(u(e,t),JSON.stringify(r)+"\n")},"bumpBuildActivity",0,function(e,t){let n=E(),r=n[e];r&&(n[e]={...r,...t},S(n))},"clearBuildActive",0,function(e){let t=E();delete t[e],S(t)},"getActiveBuild",0,function(e){return E()[e]??null},"listActiveBuilds",0,function(){return Object.values(E())},"listBuilds",0,y,"listFileVersions",0,function(e,t){return(function(e){try{return n.default.readFileSync(s(e),"utf-8").split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e)}catch{return[]}})(e).filter(e=>e.filename===t).map(e=>({ts:e.ts,sizeBytes:e.sizeBytes,source:e.source,buildId:e.buildId})).reverse()},"markBuildActive",0,function(e){let t=E();t[e.employeeId]=e,S(t)},"newBuildId",0,function(e=new Date){return c(e)},"readBuildEvents",0,function(e,t,r=0){let i,a=u(e,t);try{i=n.default.readFileSync(a)}catch{return{events:[],nextOffset:0,sizeBytes:0}}let l=i.byteLength;if(r>=l)return{events:[],nextOffset:l,sizeBytes:l};let o=i.subarray(r).toString("utf-8"),s=o.lastIndexOf("\n");if(s<0)return{events:[],nextOffset:r,sizeBytes:l};let d=s+1;return{events:o.slice(0,d).split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e),nextOffset:r+d,sizeBytes:l}},"readFileVersion",0,h,"recordBuild",0,function(e){f(e.employeeId);let a=new Set(e.writtenFiles),l=[];for(let o of r){let r=t.default.join(i(e.employeeId),o),s="";try{s=n.default.readFileSync(r,"utf-8")}catch{continue}if(!s)continue;let u=p(e.employeeId,o,s,"builder",{buildId:e.buildId});l.push({filename:o,snapshotTs:u,sizeBytes:Buffer.byteLength(s,"utf-8"),written:a.has(o)})}let s={buildId:e.buildId,startedAt:e.startedAt.toISOString(),finishedAt:e.finishedAt.toISOString(),durationMs:e.finishedAt.getTime()-e.startedAt.getTime(),modelUsed:e.modelUsed,costUsd:e.costUsd,turns:e.turns,stoppedReason:e.stoppedReason,...e.ceoContext?{ceoContext:e.ceoContext}:{},activeToolkits:e.activeToolkits,files:l},u=t.default.join(o(e.employeeId),`${e.buildId}.json`);return n.default.writeFileSync(u,JSON.stringify(s,null,2)),s},"restoreBuild",0,function(e,t){let n=y(e).find(e=>e.buildId===t)??null;if(!n)return{ok:!1,error:"build not found",restored:[]};let r=[];for(let t of n.files)v(e,t.filename,t.snapshotTs).ok&&r.push(t.filename);return{ok:!0,restored:r}},"restoreFile",0,v,"snapshotFile",0,p,"snapshotRootFile",0,m],76430)},54975,e=>{"use strict";var t=e.i(22734),n=e.i(14747),r=e.i(76430);let i=n.default.join(process.cwd(),"data","employees"),a=["EXPERTISE.md","TONE.md","CONTEXT.md","DECISIONS.md","PREFERENCES.md","PEOPLE.md","PROJECTS.md","BOUNDARIES.md","EMPLOYMENT.md"];e.s(["hasEmployeeFiles",0,function(e){let r=n.default.join(i,e);try{return t.default.existsSync(r)&&t.default.readdirSync(r).some(e=>e.endsWith(".md"))}catch{return!1}},"readAllEmployeeFiles",0,function(e){let r={};for(let l of a){let a=function(e,r){let a=n.default.join(i,e,r);try{return t.default.readFileSync(a,"utf-8")}catch{return""}}(e,l);a&&(r[l]=a)}return r},"writeEmployeeFileBody",0,function(e,l,o){if(!a.includes(l))return null;let s=n.default.join(i,e);if(!t.default.existsSync(s))return null;let u=n.default.join(s,l),d="";try{d=t.default.readFileSync(u,"utf-8")}catch{}let c=d.match(/^---\s*\n[\s\S]*?\n---\s*\n/),f=(c?c[0]:"")+o.replace(/^\n+/,"").replace(/\s+$/,"")+"\n";if(d)try{(0,r.snapshotFile)(e,l,d,"manual")}catch(t){let e=t instanceof Error?t.message:String(t);console.warn(`[twin-versions] manual-edit snapshot skipped: ${e}`)}return t.default.writeFileSync(u,f,"utf-8"),f}])},76033,e=>{"use strict";var t=e.i(47909),n=e.i(74017),r=e.i(96250),i=e.i(59756),a=e.i(61916),l=e.i(74677),o=e.i(69741),s=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),f=e.i(66012),p=e.i(70101),m=e.i(74838),h=e.i(10372),y=e.i(93695);e.i(20232);var v=e.i(220),E=e.i(20993),S=e.i(54975),R=e.i(47751),g=e.i(76430),w=e.i(14116);async function C(e,{params:t}){let n,{id:r}=await t;if(!(0,S.hasEmployeeFiles)(r))return new Response(JSON.stringify({error:"employee not found"}),{status:404,headers:{"Content-Type":"application/json"}});let i=(0,E.isComposioConfigured)();try{n=i?await (0,E.refreshConnections)(r):await (0,E.readState)(r)}catch(t){let e=t instanceof Error?t.message:String(t);console.error(`[connections/${r}] refreshConnections failed: ${e}`),n=await (0,E.readState)(r)}let a=(0,E.getEmployeeToolkits)(r);try{let e=await (0,w.readPendingBuild)(r);if(e&&(0,w.countActiveConnections)(n)>0&&!(0,g.getActiveBuild)(r)&&(await (0,w.clearPendingBuild)(r),process.env.ANTHROPIC_API_KEY)){let t=(await (0,R.loadEmployeesFromDisk)()).find(e=>e.id===r);t&&(0,w.spawnDetachedBuild)({employee:t,lookbackDays:e.lookbackDays,ceoContext:e.ceoContext??"Auto-train on consent"})}}catch(t){let e=t instanceof Error?t.message:String(t);console.warn(`[connections] pending-build resume failed: ${e}`)}return new Response(JSON.stringify({...n,configured:i,allowedToolkits:a}),{headers:{"Content-Type":"application/json"}})}e.s(["GET",0,C],16032);var O=e.i(16032);let A=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/connections/[id]/route",pathname:"/api/connections/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/connections/[id]/route.ts",nextConfigOutput:"standalone",userland:O,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:N,serverHooks:I}=A;async function b(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),A.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/connections/[id]/route";E=E.replace(/\/index$/,"")||"/";let S=await A.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:R,params:g,nextConfig:w,parsedUrl:C,isDraftMode:O,prerenderManifest:T,routerServerContext:N,isOnDemandRevalidate:I,revalidateOnlyGenerated:b,resolvedPathname:x,clientReferenceManifest:F,serverActionsManifest:P}=S,j=(0,o.normalizeAppPath)(E),k=!!(T.dynamicRoutes[j]||T.routes[x]),_=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,C,!1):t.end("This page could not be found"),null);if(k&&!O){let e=!!T.routes[x],t=T.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(w.adapterPath)return await _();throw new y.NoFallbackError}}let B=null;!k||A.isDev||O||(B="/index"===(B=x)?"/":B);let D=!0===A.isDev||!k,U=k&&!D;P&&F&&(0,l.setManifestsSingleton)({page:E,clientReferenceManifest:F,serverActionsManifest:P});let $=e.method||"GET",M=(0,a.getTracer)(),q=M.getActiveScopeSpan(),H=!!(null==N?void 0:N.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),J=(0,i.getRequestMeta)(e,"incrementalCache")||await A.getIncrementalCache(e,w,T,L);null==J||J.resetRequestCache(),globalThis.__incrementalCache=J;let K={params:g,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:D,incrementalCache:J,cacheLifeProfiles:w.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,i)=>A.onRequestError(e,t,r,i,N)},sharedContext:{buildId:R}},z=new s.NodeNextRequest(e),X=new s.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t));try{let i,l=async e=>A.handle(W,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=M.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route");if(r){let t=`${$} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",r),i.updateName(t))}else e.updateName(`${$} ${E}`)}),o=async i=>{var a,o;let s=async({previousCacheEntry:n})=>{try{if(!L&&I&&b&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await l(i);e.fetchMetrics=K.renderOpts.fetchMetrics;let o=K.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let s=K.renderOpts.collectedTags;if(!k)return await (0,f.sendResponse)(z,X,a,K.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(a.headers);s&&(t[h.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,r=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:I})},!1,N),t}},u=await A.handleResponse({req:e,nextConfig:w,cacheKey:B,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:I,revalidateOnlyGenerated:b,responseGenerator:s,waitUntil:r.waitUntil,isMinimalMode:L});if(!k)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",I?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,p.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&k||d.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,f.sendResponse)(z,X,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};H&&q?await o(q):(i=M.getActiveScopeSpan(),await M.withPropagatedContext(e.headers,()=>M.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${E}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof y.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:I})},!1,N),k)throw t;return await (0,f.sendResponse)(z,X,new Response(null,{status:500})),null}}e.s(["handler",0,b,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:N})},"routeModule",0,A,"serverHooks",0,I,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,N],76033)},30887,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_stream_0g9s3ok._.js","server/chunks/[root-of-the-server]__0gqp_8t._.js"].map(t=>e.l(t))).then(()=>t(41379)))},23970,e=>{e.v(e=>Promise.resolve().then(()=>e(22734)))},89793,e=>{e.v(e=>Promise.resolve().then(()=>e(14747)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0f~5z1~._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},92509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},27699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},47751,e=>{"use strict";var t=e.i(24868),r=e.i(14747);let n=["#A8B4C4","#C4A8B8","#B8C4A8","#A8C4B8","#C4B8A8","#B8A8C4","#C4C4A8","#A8C4C4","#C4A8A8","#A8A8C4"],i=["EXPERTISE","DECISIONS","CONTEXT","PEOPLE","PROJECTS","PREFERENCES","TONE","BOUNDARIES","EMPLOYMENT"];function a(e){let t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())),r=t.getUTCDay()||7;t.setUTCDate(t.getUTCDate()+4-r);let n=new Date(Date.UTC(t.getUTCFullYear(),0,1)),i=Math.ceil(((t.getTime()-n.getTime())/864e5+1)/7);return`${t.getUTCFullYear()}-W${String(i).padStart(2,"0")}`}async function o(e){let n=r.default.join(process.cwd(),"data","employees",e,"employee.json");try{let e=await t.default.readFile(n,"utf8"),r=JSON.parse(e),i=a(new Date),o=r.weekOf===i?(r.questionsThisWeek??0)+1:1;await t.default.writeFile(n,JSON.stringify({...r,lastActiveAt:new Date().toISOString(),questionsThisWeek:o,weekOf:i},null,2),"utf8")}catch{}}async function s(){let e,o=r.default.join(process.cwd(),"data","employees");try{e=await t.default.readdir(o)}catch{return[]}let s=[];for(let c of e){var l;let e;if(c.startsWith("."))continue;let u=r.default.join(o,c,"employee.json");try{let r=await t.default.readFile(u,"utf8");e=JSON.parse(r)}catch{continue}if(!e?.name||e.pendingProfile)continue;let d=0;for(let e of i)try{(await t.default.readFile(r.default.join(o,c,`${e}.md`),"utf8")).trim().length>16&&d++}catch{}s.push({id:e.id||c,name:e.name,firstName:(l=e.name).trim().split(/\s+/)[0]||l,role:e.role||"—",department:e.department||"General",initials:function(e){let t=e.trim().split(/\s+/).filter(Boolean);return 0===t.length?"??":1===t.length?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}(e.name),avatarColor:function(e){let t=0;for(let r=0;r<e.length;r++)t=31*t+e.charCodeAt(r)|0;return n[Math.abs(t)%n.length]}(e.id||c),integrations:e.integrations??[],twinStatus:d>=6?"ready":d>0?"building":"pending",twinConfidence:d>=6?Math.min(1,d/9):0,profileFilesComplete:d,lastActiveAt:e.lastActiveAt,questionsThisWeek:e.weekOf===a(new Date)?e.questionsThisWeek??0:0,skills:[],orgSkillIds:[],seedModel:"claude-opus-4-7",refreshModel:"claude-sonnet-4-6",ttsVoiceId:"EXAVITQu4vr4xnSDxMaL"})}return s.sort((e,t)=>(t.lastActiveAt??"").localeCompare(e.lastActiveAt??"")),s}e.s(["bumpActivityOnDisk",0,o,"loadEmployeesFromDisk",0,s])},27022,e=>{"use strict";var t=e.i(54799);async function r(e){let t=await l(s(e,"oauth-protected-resource")),r=t.authorization_servers?.[0];if(!r)throw Error("MCP server does not advertise an authorization_servers entry — cannot start OAuth.");let n=await l(s(r,"oauth-authorization-server"));if(!n.authorization_endpoint||!n.token_endpoint)throw Error("Authorization server metadata is missing required endpoints.");if(!(Array.isArray(n.code_challenge_methods_supported)&&n.code_challenge_methods_supported.includes("S256")))throw Error("Authorization server does not advertise S256 PKCE — refusing.");return{authorizationServer:r,authorizationEndpoint:n.authorization_endpoint,tokenEndpoint:n.token_endpoint,registrationEndpoint:n.registration_endpoint,scopesSupported:n.scopes_supported??t.scopes_supported,pkceS256Supported:!0}}async function n(e,t,r){let n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({client_name:r,redirect_uris:[t],grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:"none",application_type:"web"})});if(!n.ok){let e=await n.text().catch(()=>"");throw Error(`Dynamic Client Registration failed (${n.status}): ${e.slice(0,200)}`)}let i=await n.json();if(!i.client_id)throw Error("Registration endpoint did not return a client_id.");return{clientId:i.client_id,clientSecret:i.client_secret}}async function i(e){let t=new URLSearchParams({grant_type:"authorization_code",code:e.code,code_verifier:e.codeVerifier,client_id:e.clientId,redirect_uri:e.redirectUri});return o(e.tokenEndpoint,t,e.clientSecret,e.clientId)}async function a(e){let t=new URLSearchParams({grant_type:"refresh_token",refresh_token:e.refreshToken,client_id:e.clientId});return o(e.tokenEndpoint,t,e.clientSecret,e.clientId)}async function o(e,t,r,n){let i={"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"};r&&(i.Authorization="Basic "+Buffer.from(`${n}:${r}`).toString("base64"));let a=await fetch(e,{method:"POST",headers:i,body:t});if(!a.ok){let e=await a.text().catch(()=>"");throw Error(`Token endpoint returned ${a.status}: ${e.slice(0,200)}`)}let o=await a.json();if(!o.access_token)throw Error("Token response missing access_token.");let s="number"==typeof o.expires_in?o.expires_in:3600;return{accessToken:o.access_token,refreshToken:o.refresh_token,expiresAt:new Date(Date.now()+1e3*s).toISOString(),scope:o.scope}}function s(e,t){let r=new URL(e);return`${r.origin}/.well-known/${t}`}async function l(e){let t=await fetch(e,{headers:{Accept:"application/json"}});if(!t.ok)throw Error(`GET ${e} → ${t.status}`);return await t.json()}function c(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}e.s(["buildAuthUrl",0,function(e){let t=new URL(e.authorizationEndpoint);return t.searchParams.set("response_type","code"),t.searchParams.set("client_id",e.clientId),t.searchParams.set("redirect_uri",e.redirectUri),t.searchParams.set("state",e.state),t.searchParams.set("code_challenge",e.codeChallenge),t.searchParams.set("code_challenge_method","S256"),e.scope&&t.searchParams.set("scope",e.scope),t.toString()},"discoverOAuth",0,r,"exchangeCode",0,i,"pkcePair",0,function(){let e=c((0,t.randomBytes)(32)),r=c((0,t.createHash)("sha256").update(e).digest());return{verifier:e,challenge:r}},"randomState",0,function(){return c((0,t.randomBytes)(24))},"refreshAccessToken",0,a,"registerClient",0,n])},48705,e=>{"use strict";var t=e.i(14747),r=e.i(24868),n=e.i(27022);let i=t.default.join(process.cwd(),"data","org"),a=t.default.join(i,"custom-mcp.json");async function o(){try{let e=await r.default.readFile(a,"utf-8"),t=JSON.parse(e);return{servers:Array.isArray(t.servers)?t.servers:[]}}catch{return{servers:[]}}}async function s(e){await r.default.mkdir(i,{recursive:!0}),await r.default.writeFile(a,JSON.stringify(e,null,2))}async function l(){let{servers:e}=await o();return[...e].sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime())}async function c(e){let t=_(e);if(t)throw Error(t);let r=new Date().toISOString(),n={id:`mcp_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`,name:e.name.trim(),description:e.description?.trim()||void 0,transport:e.transport,url:e.url.trim(),headers:y(e.headers??[]),...e.oauth?{oauth:e.oauth}:{},enabled:e.enabled??!0,createdAt:r,updatedAt:r},i=await o();if(i.servers.some(e=>m(e.name)===m(n.name)))throw Error(`An MCP server named "${n.name}" already exists. Pick a different name.`);return i.servers.push(n),await s(i),n}async function u(e,t){let r=await o(),n=r.servers.findIndex(t=>t.id===e);if(-1===n)return null;let i={...r.servers[n],...void 0!==t.name?{name:t.name.trim()}:{},...void 0!==t.description?{description:t.description.trim()||void 0}:{},...void 0!==t.transport?{transport:t.transport}:{},...void 0!==t.url?{url:t.url.trim()}:{},...void 0!==t.headers?{headers:y(t.headers)}:{},...void 0!==t.enabled?{enabled:t.enabled}:{},updatedAt:new Date().toISOString()},a=_(i);if(a)throw Error(a);let l=m(i.name);if(r.servers.some((e,t)=>t!==n&&m(e.name)===l))throw Error(`An MCP server named "${i.name}" already exists. Pick a different name.`);return r.servers[n]=i,await s(r),i}async function d(e,t){let r=await o(),n=r.servers.findIndex(t=>t.id===e);return -1!==n&&(r.servers[n]={...r.servers[n],oauth:t},await s(r),!0)}async function p(e){let t=await o(),r=t.servers.length;return t.servers=t.servers.filter(t=>t.id!==e),t.servers.length!==r&&(await s(t),!0)}async function f(e){let t=e.oauth;if(!t)return null;let r=Date.parse(t.expiresAt);if(Number.isFinite(r)&&Date.now()<r-6e4)return t.accessToken;if(!t.refreshToken)return console.warn(`[mcp-oauth] ${e.name}: access token expired and no refresh token on file — skipping until reconnect.`),null;try{let r=await (0,n.refreshAccessToken)({tokenEndpoint:t.tokenEndpoint,refreshToken:t.refreshToken,clientId:t.clientId,clientSecret:t.clientSecret}),i={...t,accessToken:r.accessToken,refreshToken:r.refreshToken??t.refreshToken,expiresAt:r.expiresAt,scope:r.scope??t.scope};return await d(e.id,i),r.accessToken}catch(r){let t=r instanceof Error?r.message:String(r);return console.warn(`[mcp-oauth] ${e.name}: refresh failed (${t}) — skipping until reconnect.`),null}}async function h(){let e=(await l()).filter(e=>e.enabled&&e.url);if(0===e.length)return{};let t={};for(let r of e){let e=m(r.name)||`mcp_${r.id}`;if(t[e])continue;let n=function(e){let t={};for(let r of e)t[r.key]=r.value;return t}(r.headers);if(r.oauth){let e=await f(r);if(!e)continue;n.Authorization=`Bearer ${e}`}if("http"===r.transport){let i={type:"http",url:r.url,...Object.keys(n).length>0?{headers:n}:{}};t[e]=i}else{let i={type:"sse",url:r.url,...Object.keys(n).length>0?{headers:n}:{}};t[e]=i}}return t}function m(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"").slice(0,32)}function y(e){return e.map(e=>({key:e.key.trim(),value:e.value.trim()})).filter(e=>e.key&&e.value)}function _(e){if(!e.name||!e.name.trim())return"Name is required.";if(!e.url||!e.url.trim())return"URL is required.";try{let t=new URL(e.url);if("https:"!==t.protocol&&"http:"!==t.protocol)return"URL must be http(s)."}catch{return"URL is not valid."}return e.transport&&"http"!==e.transport&&"sse"!==e.transport?"Transport must be 'http' or 'sse'.":0===m(e.name).length?"Name must contain at least one alphanumeric character.":null}e.s(["createCustomMcp",0,c,"deleteCustomMcp",0,p,"listCustomMcp",0,l,"loadOrgCustomMcpServers",0,h,"updateCustomMcp",0,u])},7416,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=r.default.join(process.cwd(),"data","audit.jsonl");function i(){let e=r.default.dirname(n);t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0})}let a=0,o=/^audit\.(\d{4}-\d{2})\.jsonl$/;e.s(["appendAuditEntry",0,function(e){try{i(),function(e){try{if(t.default.statSync(e).size<0xa00000)return;let n=t.default.readFileSync(e,"utf8").split("\n").filter(Boolean),i=Date.now()-2592e6,a=[],o=new Map;for(let e of n)try{let t=JSON.parse(e);if((t.ts?new Date(t.ts).getTime():0)>=i)a.push(e);else{let r=t.ts?t.ts.slice(0,7):"unknown";o.has(r)||o.set(r,[]),o.get(r).push(e)}}catch{a.push(e)}let s=r.default.dirname(e);for(let[e,n]of o){let i=r.default.join(s,`audit.${e}.jsonl`);t.default.appendFileSync(i,n.join("\n")+"\n","utf8")}t.default.writeFileSync(e,a.join("\n")+(a.length?"\n":""),"utf8")}catch{}}(n);let o={id:(a++,`aud_${Date.now().toString(36)}_${a}`),ts:new Date().toISOString(),...e};t.default.appendFileSync(n,JSON.stringify(o)+"\n","utf8")}catch{}},"readAuditLog",0,function(e={}){let a=Math.max(1,e.page??1),s=Math.min(500,Math.max(1,e.pageSize??100)),l=function(){try{let e=r.default.dirname(n);if(!t.default.existsSync(e))return[];let i=[];for(let r of t.default.readdirSync(e)){let e=r.match(o);e&&i.push(e[1])}return i.sort().reverse()}catch{return[]}}();try{var c;i();let o=e.archive?(c=e.archive,r.default.join(r.default.dirname(n),`audit.${c}.jsonl`)):n;if(!t.default.existsSync(o))return{entries:[],totalCount:0,page:a,pageSize:s,archives:l};let u=t.default.readFileSync(o,"utf8").split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e),d=e.since?Date.parse(e.since):-1/0,p=e.until?Date.parse(e.until):1/0,f=u.filter(t=>{if(e.employeeId&&t.employeeId!==e.employeeId||e.toolName&&!t.bareName.toLowerCase().includes(e.toolName.toLowerCase())||e.verdict&&t.verdict!==e.verdict)return!1;let r=Date.parse(t.ts);return(!Number.isFinite(r)||!(r<d)&&!(r>p))&&!0}).reverse(),h=(a-1)*s;return{entries:f.slice(h,h+s),totalCount:f.length,page:a,pageSize:s,archives:l}}catch{return{entries:[],totalCount:0,page:a,pageSize:s,archives:l}}}])},85824,e=>{"use strict";var t=e.i(7416);let r="claude-sonnet-4-6",n="claude-sonnet-4-5",i=["Bash","NotebookEdit","EnterWorktree","ExitWorktree"];e.s(["TWIN_MODEL_FALLBACK",0,n,"TWIN_MODEL_PRIMARY",0,r,"buildBaseOptions",0,function(e){let t="builder"===e.surface||"relay"===e.surface?"high":"routine"===e.surface?"low":"medium",a="1"===process.env.TWIN_ENABLE_1M_CONTEXT;return{model:e.modelOverride??r,fallbackModel:n,effort:t,thinking:{type:"adaptive"},disallowedTools:i,betas:a?["context-1m-2025-08-07"]:void 0,env:{...process.env,CLAUDE_AGENT_SDK_CLIENT_APP:"Employee001/0.2.0"},abortController:e.abortController,title:e.title,promptSuggestions:"chat"===e.surface||"meeting"===e.surface,agentProgressSummaries:!1,strictMcpConfig:!0}},"buildTwinHooks",0,function(r){return{PreToolUse:[{hooks:[async e=>"PreToolUse"!==e.hook_event_name?{}:i.includes(e.tool_name)?{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`${e.tool_name} is hard-disallowed for twins (see sdk-defaults.ts).`}}:{},async n=>{if("PreToolUse"!==n.hook_event_name||"Write"!==n.tool_name)return{};let i=n.tool_input??{},a="string"==typeof i.file_path?i.file_path:"",o=e=>{console.warn(`[restrictWriteToScratch] DENIED — ${e} (raw: "${a}")`);try{(0,t.appendAuditEntry)({runId:r.runId,employeeId:r.employeeId,employeeName:r.employeeName,toolName:"Write",bareName:"Write",input:{file_path:a},verdict:"hard_blocked",blockReason:e})}catch{}return r.onNotification?.({kind:"write_denied",message:e,title:"Scratch write denied"}),{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:e}}};if(!a)return o("Write requires a file_path.");let s=`scratch/${r.employeeId}/`,l=a.replace(/^\.\//,"").replace(/\\/g,"/"),c=l.indexOf(s);if(c>0&&(l=l.slice(c)),!((l=l.replace(/^data\//,"")).startsWith(s)&&!l.includes("..")&&!l.split("/").some(e=>e.startsWith("."))))return o(`Write is sandboxed to ${s}<filename>. Got: "${a}" (normalised: "${l}"). Use a relative path like scratch/${r.employeeId}/my-memo.md`);try{let t=await e.A(23970),n=(await e.A(89793)).join(process.cwd(),"data","scratch",r.employeeId);t.mkdirSync(n,{recursive:!0})}catch{}return(console.log(`[restrictWriteToScratch] ALLOWED — "${l}" (original: "${a}")`),l!==a.replace(/^\.\//,"").replace(/\\/g,"/"))?{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{...i,file_path:l}}}:{}}]}],PostToolUse:[{hooks:[async e=>{if("PostToolUse"!==e.hook_event_name)return{};let n=e.tool_input??{},i=e.tool_name.replace(/^mcp__[a-z0-9_]+__/i,"");try{(0,t.appendAuditEntry)({runId:r.runId,employeeId:r.employeeId,employeeName:r.employeeName,toolName:e.tool_name,bareName:i,input:n,verdict:"executed",durationMs:e.duration_ms,...e.agent_id?{agentId:e.agent_id}:{},...e.agent_type?{agentType:e.agent_type}:{}})}catch(t){let e=t instanceof Error?t.message:String(t);console.warn(`[twin-hooks] audit append failed: ${e}`)}return{}},async e=>{if("PostToolUse"!==e.hook_event_name||"WebSearch"!==e.tool_name&&"WebFetch"!==e.tool_name)return{};let t=e.tool_input??{},r=new Date().toISOString().split("T")[0],n="string"==typeof t.url?t.url:null;return{hookSpecificOutput:{hookEventName:"PostToolUse",additionalContext:n?`[Fetched from ${n} on ${r}. Cite this URL and date in your answer so the CEO can verify the source.]`:`[Web results fetched on ${r}. Cite the source URL(s) and date in your answer.]`}}}]}],Notification:[{hooks:[async e=>{if("Notification"!==e.hook_event_name)return{};try{r.onNotification?.({kind:e.notification_type,message:e.message,title:e.title})}catch{}return{}}]}],Stop:[{hooks:[async e=>{if("Stop"!==e.hook_event_name)return{};try{r.onStop?.({stoppedBy:(e.stop_hook_active,"natural")})}catch{}return{}}]}]}}])},43127,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=r.default.join(process.cwd(),"data","active-runs.json");function i(){let e=r.default.dirname(n);t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0})}function a(){try{if(i(),!t.default.existsSync(n))return{};let e=t.default.readFileSync(n,"utf8");if(!e.trim())return{};return JSON.parse(e)}catch(e){return console.warn("[active-runs] read failed",e),{}}}function o(e){try{i();let r=`${n}.tmp`;t.default.writeFileSync(r,JSON.stringify(e,null,2),"utf8"),t.default.renameSync(r,n)}catch(e){console.warn("[active-runs] write failed",e)}}function s(e){let t=Date.now(),r=!1,n={};for(let[i,a]of Object.entries(e)){if(a.endedAt){let e=new Date(a.endedAt).getTime();if(Number.isFinite(e)&&e+6e4<t){r=!0;continue}}n[i]=a}return r&&o(n),n}e.s(["getActiveRun",0,function(e){return s(a())[e]??null},"listActiveRuns",0,function(e){let t=Object.values(s(a()));return e?.includeRecent||(t=t.filter(e=>"running"===e.status)),e?.employeeId&&(t=t.filter(t=>t.employeeId===e.employeeId)),e?.surface&&(t=t.filter(t=>t.surface===e.surface)),t.sort((e,t)=>t.startedAt.localeCompare(e.startedAt)),t},"registerRun",0,function(e){let t=a(),r={...e,status:"running",toolCalls:0,costUsd:0};return t[r.runId]=r,o(t),r},"unregisterRun",0,function(e,t){let r=a(),n=r[e];n&&(r[e]={...n,status:t.status,endedAt:new Date().toISOString(),costUsd:"number"==typeof t.costUsd?t.costUsd:n.costUsd},o(r))},"updateRun",0,function(e,t){let r=a(),n=r[e];if(!n)return null;let i={...n,...t};return r[e]=i,o(r),i}])},8035,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(54799);function i(e,t){return r.default.join(process.cwd(),"data","run-logs",e,`${t}.ndjson`)}function a(e=0,t="0"){return{bytes:Buffer.alloc(0),size:e,etag:t}}e.s(["appendRunLog",0,function(e,n,a){try{let o,s=i(e,n);o=r.default.dirname(s),t.default.existsSync(o)||t.default.mkdirSync(o,{recursive:!0});let l={ts:new Date().toISOString(),...a};t.default.appendFileSync(s,JSON.stringify(l)+"\n","utf8")}catch(t){console.warn("[run-logs] append failed",e,n,t)}},"logPathFor",0,i,"readLogTail",0,function(e,r,o,s){try{let l=i(e,r);if(!t.default.existsSync(l))return a();let c=t.default.statSync(l).size,u=function(e,r){if(0===r)return"0";try{let i=Math.min(32,r),a=Buffer.alloc(i),o=t.default.openSync(e,"r");try{t.default.readSync(o,a,0,i,r-i)}finally{t.default.closeSync(o)}let s=n.default.createHash("sha1").update(a).digest("hex").slice(0,12);return`${r}-${s}`}catch{return`${r}-x`}}(l,c);if(0===c)return a(0,u);let d=Math.min(1048576,Math.max(1,s)),p=Math.max(0,o);if(p>=c)return{bytes:Buffer.alloc(0),size:c,etag:u};let f=Math.min(c,p+d)-p,h=Buffer.alloc(f),m=t.default.openSync(l,"r");try{t.default.readSync(m,h,0,f,p)}finally{t.default.closeSync(m)}return{bytes:h,size:c,etag:u}}catch(t){return console.warn("[run-logs] read tail failed",e,r,t),a()}}])},5779,e=>{"use strict";let t=[/_DELETE_/i,/_DESTROY_/i,/_REMOVE_USER_/i,/_TRANSFER_FUNDS_/i,/_REFUND_/i,/_PAYMENT_/i,/_CHARGE_/i],r=[/_GET_/i,/_LIST_/i,/_SEARCH_/i,/_FETCH_/i,/_RETRIEVE_/i,/_READ_/i,/_FIND_/i],n=new Set(["Read","Glob","Grep","Write","WebSearch","WebFetch","ToolSearch","Task","create_artifact","share_with_meeting","read_meeting_file","view_meeting_image","analyze_csv","query_csv","consult_twin","request_approval"]);e.s(["classifyTool",0,function(e,i){let a=e||"",o=(a||"").replace(/^mcp__[a-z0-9_]+__/i,"");if(n.has(a)||n.has(o))return{kind:"allow"};for(let e of t)if(e.test(o))return{kind:"block",reason:`${o} is on the hard-block list (deletes, payments, account changes).`};for(let e of r)if(e.test(o))return{kind:"allow"};if(/SLACK_(SEND|POST|REPLY|UPDATE_MESSAGE|SCHEDULE)/i.test(o)){let e="string"==typeof i?.channel?i.channel:"string"==typeof i?.channel_name?i.channel_name:"";return{kind:"ask",reason:e?`About to send a Slack message to ${e}. Public message — review before sending.`:"About to send a Slack message. Review the recipient and content before sending."}}if(/(GMAIL|OUTLOOK|EMAIL).*(SEND|REPLY)|SEND_EMAIL/i.test(o)){let e="string"==typeof i?.to?i.to:Array.isArray(i?.to)?i.to.join(", "):"";return{kind:"ask",reason:e?`About to send an email to ${e}. External communication — review before sending.`:"About to send an email. Review recipient and content before sending."}}return/CREATE/i.test(o)?{kind:"ask",reason:`About to create a record via ${o}. Review the title and body before creating.`}:/(UPDATE|EDIT|MODIFY|PATCH|MERGE|CLOSE|REOPEN|ASSIGN|TRANSFER)/i.test(o)?{kind:"ask",reason:`About to mutate existing data via ${o}. Review the change before applying.`}:/^[A-Z][A-Z0-9_]+$/.test(o)&&o.includes("_")?{kind:"ask",reason:`${o} is an external action. Confirm before running.`}:{kind:"ask",reason:`${a} is an unrecognized tool. Confirm before running.`}},"describeTool",0,function(e){let t=e.replace(/^mcp__[a-z_]+__/,""),r=t.split("_");if(r.length>=2){let e=r[0],t=r.slice(1).join(" ").toLowerCase();return`${e.charAt(0)}${e.slice(1).toLowerCase()}: ${t}`}return t}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0j3azpj._.js.map
@@ -0,0 +1,6 @@
1
+ module.exports=[24725,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},24361,(e,t,n)=>{t.exports=e.x("util",()=>require("util"))},51474,e=>{"use strict";var t=e.i(22734),n=e.i(14747);let r={employmentKind:"external_consultant",responsibleEmployeeId:"",responsibleEmployeeName:"",teamName:"General",teammateIds:[],teammateNames:[]};var a=e.i(43811);let i=n.default.join(process.cwd(),"data","hired-agents.json"),s=n.default.join(process.cwd(),"data","employees");function l(){try{let e=t.default.readFileSync(i,"utf-8");return JSON.parse(e).filter(e=>"string"==typeof e.id).map(e=>{var t;let n;return t=e,n=(0,a.getMarketplaceAgent)(t.marketplaceAgentId??t.id),{id:t.id,marketplaceAgentId:t.marketplaceAgentId??t.id,hiredAt:t.hiredAt??new Date(0).toISOString(),placement:o(t.placement,n)}})}catch{return[]}}function o(e,t){let n={...r,teamName:t?.department??r.teamName};return{employmentKind:e?.employmentKind==="team_member"||e?.employmentKind==="external_consultant"?e.employmentKind:n.employmentKind,responsibleEmployeeId:e?.responsibleEmployeeId||n.responsibleEmployeeId,responsibleEmployeeName:e?.responsibleEmployeeName||n.responsibleEmployeeName,teamName:e?.teamName||n.teamName,teammateIds:Array.isArray(e?.teammateIds)?e.teammateIds:[],teammateNames:Array.isArray(e?.teammateNames)?e.teammateNames:[],engagementNote:e?.engagementNote?.trim()||void 0}}function u(e){t.default.mkdirSync(n.default.dirname(i),{recursive:!0}),t.default.writeFileSync(i,JSON.stringify(e,null,2),"utf-8")}e.s(["dismissAgent",0,function(e){let r=l(),a=r.findIndex(t=>t.id===e);if(-1===a)return!1;let i=n.default.join(s,e);try{t.default.rmSync(i,{recursive:!0,force:!0})}catch{}return r.splice(a,1),u(r),!0},"getHiredAgentIds",0,function(){return l().map(e=>e.id)},"getHiredEmployees",0,function(){let e=l(),t=[];for(let i of e){var n,r;let e=a.MARKETPLACE_AGENTS.find(e=>e.id===i.id);e&&t.push((n=i.hiredAt,r=i.placement,{id:e.id,name:e.name,firstName:e.firstName,role:e.role,department:e.department,initials:e.initials,avatarColor:e.avatarColor,integrations:e.suggestedToolkits,twinStatus:"ready",twinConfidence:.85,profileFilesComplete:Object.keys(e.profileFiles).length,lastActiveAt:n,questionsThisWeek:0,seedModel:"claude-sonnet-4-6",refreshModel:"claude-sonnet-4-6",ttsVoiceId:"EXAVITQu4vr4xnSDxMaL",skills:e.skills.map(e=>({id:e.toLowerCase().replace(/\s+/g,"-"),label:e})),orgSkillIds:[],consent:{grantedAt:n,version:"1.0",scopes:["data-collection","integrations"]},placement:r}))}return t},"hireAgent",0,function(e,r){let a=o(r,e),i={id:e.id,marketplaceAgentId:e.id,hiredAt:new Date().toISOString(),placement:a},d=n.default.join(s,e.id);for(let[r,i]of(t.default.mkdirSync(d,{recursive:!0}),Object.entries(e.profileFiles)))t.default.writeFileSync(n.default.join(d,r),function(e,t,n){let r,a;if("EMPLOYMENT.md"!==e&&"PEOPLE.md"!==e)return t;let i=(r="external_consultant"===n.employmentKind?"External consultant":"Team member",a=n.teammateNames.length>0?n.teammateNames.join(", "):"No named teammates yet",["## Team placement",`- Employment kind: ${r}`,`- Responsible owner: ${n.responsibleEmployeeName} (${n.responsibleEmployeeId})`,`- Team: ${n.teamName}`,`- Teammates: ${a}`,n.engagementNote?`- Engagement note: ${n.engagementNote}`:void 0].filter(Boolean).join("\n")),s=t.replace(/\s+$/,"");return s.includes("## Team placement")?s.replace(/## Team placement[\s\S]*$/,i)+"\n":`${s}
2
+
3
+ ${i}
4
+ `}(r,i,a),"utf-8");let c=l().filter(t=>t.id!==e.id);return c.push(i),u(c),i}],51474)},47751,e=>{"use strict";var t=e.i(24868),n=e.i(14747);let r=["#A8B4C4","#C4A8B8","#B8C4A8","#A8C4B8","#C4B8A8","#B8A8C4","#C4C4A8","#A8C4C4","#C4A8A8","#A8A8C4"],a=["EXPERTISE","DECISIONS","CONTEXT","PEOPLE","PROJECTS","PREFERENCES","TONE","BOUNDARIES","EMPLOYMENT"];function i(e){let t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())),n=t.getUTCDay()||7;t.setUTCDate(t.getUTCDate()+4-n);let r=new Date(Date.UTC(t.getUTCFullYear(),0,1)),a=Math.ceil(((t.getTime()-r.getTime())/864e5+1)/7);return`${t.getUTCFullYear()}-W${String(a).padStart(2,"0")}`}async function s(e){let r=n.default.join(process.cwd(),"data","employees",e,"employee.json");try{let e=await t.default.readFile(r,"utf8"),n=JSON.parse(e),a=i(new Date),s=n.weekOf===a?(n.questionsThisWeek??0)+1:1;await t.default.writeFile(r,JSON.stringify({...n,lastActiveAt:new Date().toISOString(),questionsThisWeek:s,weekOf:a},null,2),"utf8")}catch{}}async function l(){let e,s=n.default.join(process.cwd(),"data","employees");try{e=await t.default.readdir(s)}catch{return[]}let l=[];for(let u of e){var o;let e;if(u.startsWith("."))continue;let d=n.default.join(s,u,"employee.json");try{let n=await t.default.readFile(d,"utf8");e=JSON.parse(n)}catch{continue}if(!e?.name||e.pendingProfile)continue;let c=0;for(let e of a)try{(await t.default.readFile(n.default.join(s,u,`${e}.md`),"utf8")).trim().length>16&&c++}catch{}l.push({id:e.id||u,name:e.name,firstName:(o=e.name).trim().split(/\s+/)[0]||o,role:e.role||"—",department:e.department||"General",initials:function(e){let t=e.trim().split(/\s+/).filter(Boolean);return 0===t.length?"??":1===t.length?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}(e.name),avatarColor:function(e){let t=0;for(let n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)|0;return r[Math.abs(t)%r.length]}(e.id||u),integrations:e.integrations??[],twinStatus:c>=6?"ready":c>0?"building":"pending",twinConfidence:c>=6?Math.min(1,c/9):0,profileFilesComplete:c,lastActiveAt:e.lastActiveAt,questionsThisWeek:e.weekOf===i(new Date)?e.questionsThisWeek??0:0,skills:[],orgSkillIds:[],seedModel:"claude-opus-4-7",refreshModel:"claude-sonnet-4-6",ttsVoiceId:"EXAVITQu4vr4xnSDxMaL"})}return l.sort((e,t)=>(t.lastActiveAt??"").localeCompare(e.lastActiveAt??"")),l}e.s(["bumpActivityOnDisk",0,s,"loadEmployeesFromDisk",0,l])},76222,e=>{"use strict";var t=e.i(22734),n=e.i(14747);function r(e){return n.default.join(process.cwd(),"data","employees",e,".shift","budget.json")}function a(e,a){let i=r(e),s=n.default.dirname(i);t.default.existsSync(s)||t.default.mkdirSync(s,{recursive:!0});let l=`${i}.tmp`;t.default.writeFileSync(l,JSON.stringify(a,null,2),"utf8"),t.default.renameSync(l,i)}function i(e){let n=new Date().toLocaleDateString("en-CA",{timeZone:"Asia/Jerusalem"});try{let i=t.default.readFileSync(r(e),"utf8"),s=JSON.parse(i);if(s.resetAt===n)return s;let l={...s,spentTodayUsd:0,resetAt:n};return a(e,l),l}catch{let t={dailyBudgetUsd:3,spentTodayUsd:0,resetAt:n};return a(e,t),t}}e.s(["getTwinBudget",0,i,"isUnderBudget",0,function(e,t=0){let n=i(e);return n.spentTodayUsd+t<=n.dailyBudgetUsd},"recordSpend",0,function(e,t){if(t<=0)return i(e);let n=i(e),r={...n,spentTodayUsd:Math.round((n.spentTodayUsd+t)*1e6)/1e6};return a(e,r),r},"setDailyBudget",0,function(e,t){let n={...i(e),dailyBudgetUsd:Math.max(0,t)};return a(e,n),n}])},38261,e=>{"use strict";var t=e.i(22734),n=e.i(14747);let r=n.default.join(process.cwd(),"data","employees");function a(e){return n.default.join(r,e,".shift","focus.json")}e.s(["getFocusConfig",0,function(e){let n=a(e);if(!t.default.existsSync(n))return{prefetches:[]};try{let e=JSON.parse(t.default.readFileSync(n,"utf8"));return{prefetches:Array.isArray(e.prefetches)?e.prefetches:[]}}catch(e){return console.warn("[twin-focus] read failed:",e),{prefetches:[]}}},"setFocusConfig",0,function(e,r){let i,s=a(e);i=n.default.dirname(s),t.default.existsSync(i)||t.default.mkdirSync(i,{recursive:!0}),t.default.writeFileSync(s,JSON.stringify(r,null,2),"utf8")}])},50990,e=>{"use strict";var t=e.i(22734),n=e.i(14747);let r=n.default.join(process.cwd(),"data","employees");function a(e){return n.default.join(r,e,".shift","tasks")}function i(e){try{return JSON.parse(t.default.readFileSync(e,"utf8"))}catch(t){return console.warn("[twin-tasks] failed to read",e,t),null}}function s(e){return e.sort((e,t)=>e.priority!==t.priority?e.priority-t.priority:e.createdAt.localeCompare(t.createdAt))}e.s(["getTasksFor",0,function(e,r){try{let l=a(e);if(!t.default.existsSync(l))return[];let o=t.default.readdirSync(l).filter(e=>e.endsWith(".json")),u=[];for(let e of o){let t=i(n.default.join(l,e));t&&(r&&t.status!==r||u.push(t))}return s(u)}catch(t){return console.warn("[twin-tasks] getTasksFor failed",e,t),[]}},"listAllPendingTasks",0,function(){try{if(!t.default.existsSync(r))return[];let e=t.default.readdirSync(r),l=[];for(let r of e){let e=a(r);if(t.default.existsSync(e))for(let r of t.default.readdirSync(e).filter(e=>e.endsWith(".json"))){let t=i(n.default.join(e,r));t&&"pending"===t.status&&l.push(t)}}return s(l)}catch(e){return console.warn("[twin-tasks] listAllPendingTasks failed",e),[]}}])},6015,e=>{"use strict";var t=e.i(22734),n=e.i(14747);let r=[[0,59],[0,23],[1,31],[1,12],[0,6]];function a(e,[t,n]){let r=new Set;for(let a of e.split(",")){let e,i,s=1,l=a;if(a.includes("/")){let[e,t]=a.split("/");if(l=e,!Number.isFinite(s=parseInt(t,10))||s<1)throw Error(`Invalid step in '${a}'`)}if("*"===l)e=t,i=n;else if(l.includes("-")){let[t,n]=l.split("-").map(e=>parseInt(e,10));e=t,i=n}else i=e=parseInt(l,10);if(!Number.isFinite(e)||!Number.isFinite(i)||e<t||i>n||e>i)throw Error(`Invalid range '${l}' for [${t},${n}]`);for(let t=e;t<=i;t+=s)r.add(t)}return[...r].sort((e,t)=>e-t)}let i=n.default.join(process.cwd(),"data","routines.json");function s(){let e=n.default.dirname(i);t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0})}function l(){try{if(s(),!t.default.existsSync(i))return[];return JSON.parse(t.default.readFileSync(i,"utf8"))}catch{return[]}}function o(e){s(),t.default.writeFileSync(i,JSON.stringify(e,null,2),"utf8")}function u(e,t=new Date){let n=new Date(t);if("interval"===e.type)return n.setTime(t.getTime()+6e4*e.minutes),n;if("cron"===e.type)return function(e,t=new Date){let n=function(e){let t=e.trim().split(/\s+/);if(5!==t.length)throw Error(`Cron expression must have 5 fields, got ${t.length}: '${e}'`);return{minutes:a(t[0],r[0]),hours:a(t[1],r[1]),doms:a(t[2],r[2]),months:a(t[3],r[3]),dows:a(t[4],r[4])}}(e),i=new Date(t);i.setSeconds(0,0),i.setMinutes(i.getMinutes()+1);for(let e=0;e<527040;e++){if(n.minutes.includes(i.getMinutes())&&n.hours.includes(i.getHours())&&n.months.includes(i.getMonth()+1)&&function(e,t){let n=31===e.doms.length,r=7===e.dows.length,a=e.doms.includes(t.getDate()),i=e.dows.includes(t.getDay());return n||r?n?!!r||i:a:a||i}(n,i))return new Date(i);i.setMinutes(i.getMinutes()+1)}throw Error(`Could not find next match for cron '${e}' within 1 year`)}(e.expr,t);let[i,s]=function(e){let[t,n]=e.split(":").map(e=>parseInt(e,10));return[t??0,n??0]}(e.time);if(n.setHours(i,s,0,0),"daily"===e.type)return n<=t&&n.setDate(n.getDate()+1),n;let l=(e.day-n.getDay()+7)%7;return 0===l&&n<=t&&(l=7),n.setDate(n.getDate()+l),n}let d=0;e.s(["computeNextRun",0,u,"createRoutine",0,function(e){let t=l(),n={id:(d++,`rt_${Date.now().toString(36)}_${d}`),createdAt:new Date().toISOString(),nextRunAt:u(e.schedule).toISOString(),...e};return t.push(n),o(t),n},"deleteRoutine",0,function(e){let t=l(),n=t.filter(t=>t.id!==e);return n.length!==t.length&&(o(n),!0)},"getRoutine",0,function(e){return l().find(t=>t.id===e)},"listRoutines",0,function(){return l()},"updateRoutine",0,function(e,t){let n=l(),r=n.findIndex(t=>t.id===e);if(-1!==r)return n[r]={...n[r],...t},o(n),n[r]}],6015)},52426,e=>{"use strict";var t=e.i(47909),n=e.i(74017),r=e.i(96250),a=e.i(59756),i=e.i(61916),s=e.i(74677),l=e.i(69741),o=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(74838),h=e.i(10372),g=e.i(93695);e.i(20232);var y=e.i(220),w=e.i(89171),S=e.i(6015),v=e.i(73596);async function A(){(0,v.ensureSchedulerStarted)();let e=(0,S.listRoutines)().sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());return w.NextResponse.json(e,{headers:{"Cache-Control":"no-store"}})}async function E(e){(0,v.ensureSchedulerStarted)();let t=await e.json(),n="shift"===t.kind?"shift":"task";if(!t.employeeId||!t.name?.trim()||!t.schedule||"task"===n&&!t.task?.trim())return w.NextResponse.json({error:"shift"===n?"employeeId, name and schedule are required":"employeeId, name, task and schedule are required"},{status:400});let r=(0,S.createRoutine)({employeeId:t.employeeId,name:t.name.trim(),task:"task"===n?t.task.trim():"",kind:n,schedule:t.schedule,enabled:t.enabled??!0});return w.NextResponse.json(r)}e.s(["GET",0,A,"POST",0,E],33823);var C=e.i(33823);let N=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/routines/route",pathname:"/api/routines",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/routines/route.ts",nextConfigOutput:"standalone",userland:C,...{}}),{workAsyncStorage:R,workUnitAsyncStorage:T,serverHooks:x}=N;async function k(e,t,r){r.requestMeta&&(0,a.setRequestMeta)(e,r.requestMeta),N.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/routines/route";w=w.replace(/\/index$/,"")||"/";let S=await N.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:v,params:A,nextConfig:E,parsedUrl:C,isDraftMode:R,prerenderManifest:T,routerServerContext:x,isOnDemandRevalidate:k,revalidateOnlyGenerated:I,resolvedPathname:O,clientReferenceManifest:D,serverActionsManifest:b}=S,j=(0,l.normalizeAppPath)(w),P=!!(T.dynamicRoutes[j]||T.routes[O]),M=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,C,!1):t.end("This page could not be found"),null);if(P&&!R){let e=!!T.routes[O],t=T.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await M();throw new g.NoFallbackError}}let F=null;!P||N.isDev||R||(F="/index"===(F=O)?"/":F);let U=!0===N.isDev||!P,_=P&&!U;b&&D&&(0,s.setManifestsSingleton)({page:w,clientReferenceManifest:D,serverActionsManifest:b});let $=e.method||"GET",q=(0,i.getTracer)(),B=q.getActiveScopeSpan(),H=!!(null==x?void 0:x.isWrappedByNextServer),K=!!(0,a.getRequestMeta)(e,"minimalMode"),J=(0,a.getRequestMeta)(e,"incrementalCache")||await N.getIncrementalCache(e,E,T,K);null==J||J.resetRequestCache(),globalThis.__incrementalCache=J;let L={params:A,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:J,cacheLifeProfiles:E.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,a)=>N.onRequestError(e,t,r,a,x)},sharedContext:{buildId:v}},W=new o.NodeNextRequest(e),G=new o.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t));try{let a,s=async e=>N.handle(V,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=q.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route");if(r){let t=`${$} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",r),a.updateName(t))}else e.updateName(`${$} ${w}`)}),l=async a=>{var i,l;let o=async({previousCacheEntry:n})=>{try{if(!K&&k&&I&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(a);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&r.waitUntil&&(r.waitUntil(l),l=void 0);let o=L.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(W,G,i,L.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);o&&(t[h.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,r=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:_,isOnDemandRevalidate:k})},!1,x),t}},u=await N.handleResponse({req:e,nextConfig:E,cacheKey:F,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:I,responseGenerator:o,waitUntil:r.waitUntil,isMinimalMode:K});if(!P)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",k?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&P||d.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(W,G,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};H&&B?await l(B):(a=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l),void 0,!H))}catch(t){if(t instanceof g.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:_,isOnDemandRevalidate:k})},!1,x),P)throw t;return await (0,p.sendResponse)(W,G,new Response(null,{status:500})),null}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:T})},"routeModule",0,N,"serverHooks",0,x,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,T],52426)},30887,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0gqp_8t._.js"].map(t=>e.l(t))).then(()=>t(41379)))},23970,e=>{e.v(e=>Promise.resolve().then(()=>e(22734)))},89793,e=>{e.v(e=>Promise.resolve().then(()=>e(14747)))},86212,e=>{e.v(e=>Promise.resolve().then(()=>e(38745)))}];
5
+
6
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0q3c~~d._.js.map
@@ -0,0 +1,6 @@
1
+ module.exports=[24725,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},24361,(e,t,n)=>{t.exports=e.x("util",()=>require("util"))},51474,e=>{"use strict";var t=e.i(22734),n=e.i(14747);let r={employmentKind:"external_consultant",responsibleEmployeeId:"",responsibleEmployeeName:"",teamName:"General",teammateIds:[],teammateNames:[]};var a=e.i(43811);let i=n.default.join(process.cwd(),"data","hired-agents.json"),s=n.default.join(process.cwd(),"data","employees");function l(){try{let e=t.default.readFileSync(i,"utf-8");return JSON.parse(e).filter(e=>"string"==typeof e.id).map(e=>{var t;let n;return t=e,n=(0,a.getMarketplaceAgent)(t.marketplaceAgentId??t.id),{id:t.id,marketplaceAgentId:t.marketplaceAgentId??t.id,hiredAt:t.hiredAt??new Date(0).toISOString(),placement:o(t.placement,n)}})}catch{return[]}}function o(e,t){let n={...r,teamName:t?.department??r.teamName};return{employmentKind:e?.employmentKind==="team_member"||e?.employmentKind==="external_consultant"?e.employmentKind:n.employmentKind,responsibleEmployeeId:e?.responsibleEmployeeId||n.responsibleEmployeeId,responsibleEmployeeName:e?.responsibleEmployeeName||n.responsibleEmployeeName,teamName:e?.teamName||n.teamName,teammateIds:Array.isArray(e?.teammateIds)?e.teammateIds:[],teammateNames:Array.isArray(e?.teammateNames)?e.teammateNames:[],engagementNote:e?.engagementNote?.trim()||void 0}}function u(e){t.default.mkdirSync(n.default.dirname(i),{recursive:!0}),t.default.writeFileSync(i,JSON.stringify(e,null,2),"utf-8")}e.s(["dismissAgent",0,function(e){let r=l(),a=r.findIndex(t=>t.id===e);if(-1===a)return!1;let i=n.default.join(s,e);try{t.default.rmSync(i,{recursive:!0,force:!0})}catch{}return r.splice(a,1),u(r),!0},"getHiredAgentIds",0,function(){return l().map(e=>e.id)},"getHiredEmployees",0,function(){let e=l(),t=[];for(let i of e){var n,r;let e=a.MARKETPLACE_AGENTS.find(e=>e.id===i.id);e&&t.push((n=i.hiredAt,r=i.placement,{id:e.id,name:e.name,firstName:e.firstName,role:e.role,department:e.department,initials:e.initials,avatarColor:e.avatarColor,integrations:e.suggestedToolkits,twinStatus:"ready",twinConfidence:.85,profileFilesComplete:Object.keys(e.profileFiles).length,lastActiveAt:n,questionsThisWeek:0,seedModel:"claude-sonnet-4-6",refreshModel:"claude-sonnet-4-6",ttsVoiceId:"EXAVITQu4vr4xnSDxMaL",skills:e.skills.map(e=>({id:e.toLowerCase().replace(/\s+/g,"-"),label:e})),orgSkillIds:[],consent:{grantedAt:n,version:"1.0",scopes:["data-collection","integrations"]},placement:r}))}return t},"hireAgent",0,function(e,r){let a=o(r,e),i={id:e.id,marketplaceAgentId:e.id,hiredAt:new Date().toISOString(),placement:a},d=n.default.join(s,e.id);for(let[r,i]of(t.default.mkdirSync(d,{recursive:!0}),Object.entries(e.profileFiles)))t.default.writeFileSync(n.default.join(d,r),function(e,t,n){let r,a;if("EMPLOYMENT.md"!==e&&"PEOPLE.md"!==e)return t;let i=(r="external_consultant"===n.employmentKind?"External consultant":"Team member",a=n.teammateNames.length>0?n.teammateNames.join(", "):"No named teammates yet",["## Team placement",`- Employment kind: ${r}`,`- Responsible owner: ${n.responsibleEmployeeName} (${n.responsibleEmployeeId})`,`- Team: ${n.teamName}`,`- Teammates: ${a}`,n.engagementNote?`- Engagement note: ${n.engagementNote}`:void 0].filter(Boolean).join("\n")),s=t.replace(/\s+$/,"");return s.includes("## Team placement")?s.replace(/## Team placement[\s\S]*$/,i)+"\n":`${s}
2
+
3
+ ${i}
4
+ `}(r,i,a),"utf-8");let c=l().filter(t=>t.id!==e.id);return c.push(i),u(c),i}],51474)},47751,e=>{"use strict";var t=e.i(24868),n=e.i(14747);let r=["#A8B4C4","#C4A8B8","#B8C4A8","#A8C4B8","#C4B8A8","#B8A8C4","#C4C4A8","#A8C4C4","#C4A8A8","#A8A8C4"],a=["EXPERTISE","DECISIONS","CONTEXT","PEOPLE","PROJECTS","PREFERENCES","TONE","BOUNDARIES","EMPLOYMENT"];function i(e){let t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())),n=t.getUTCDay()||7;t.setUTCDate(t.getUTCDate()+4-n);let r=new Date(Date.UTC(t.getUTCFullYear(),0,1)),a=Math.ceil(((t.getTime()-r.getTime())/864e5+1)/7);return`${t.getUTCFullYear()}-W${String(a).padStart(2,"0")}`}async function s(e){let r=n.default.join(process.cwd(),"data","employees",e,"employee.json");try{let e=await t.default.readFile(r,"utf8"),n=JSON.parse(e),a=i(new Date),s=n.weekOf===a?(n.questionsThisWeek??0)+1:1;await t.default.writeFile(r,JSON.stringify({...n,lastActiveAt:new Date().toISOString(),questionsThisWeek:s,weekOf:a},null,2),"utf8")}catch{}}async function l(){let e,s=n.default.join(process.cwd(),"data","employees");try{e=await t.default.readdir(s)}catch{return[]}let l=[];for(let u of e){var o;let e;if(u.startsWith("."))continue;let d=n.default.join(s,u,"employee.json");try{let n=await t.default.readFile(d,"utf8");e=JSON.parse(n)}catch{continue}if(!e?.name||e.pendingProfile)continue;let c=0;for(let e of a)try{(await t.default.readFile(n.default.join(s,u,`${e}.md`),"utf8")).trim().length>16&&c++}catch{}l.push({id:e.id||u,name:e.name,firstName:(o=e.name).trim().split(/\s+/)[0]||o,role:e.role||"—",department:e.department||"General",initials:function(e){let t=e.trim().split(/\s+/).filter(Boolean);return 0===t.length?"??":1===t.length?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}(e.name),avatarColor:function(e){let t=0;for(let n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)|0;return r[Math.abs(t)%r.length]}(e.id||u),integrations:e.integrations??[],twinStatus:c>=6?"ready":c>0?"building":"pending",twinConfidence:c>=6?Math.min(1,c/9):0,profileFilesComplete:c,lastActiveAt:e.lastActiveAt,questionsThisWeek:e.weekOf===i(new Date)?e.questionsThisWeek??0:0,skills:[],orgSkillIds:[],seedModel:"claude-opus-4-7",refreshModel:"claude-sonnet-4-6",ttsVoiceId:"EXAVITQu4vr4xnSDxMaL"})}return l.sort((e,t)=>(t.lastActiveAt??"").localeCompare(e.lastActiveAt??"")),l}e.s(["bumpActivityOnDisk",0,s,"loadEmployeesFromDisk",0,l])},76222,e=>{"use strict";var t=e.i(22734),n=e.i(14747);function r(e){return n.default.join(process.cwd(),"data","employees",e,".shift","budget.json")}function a(e,a){let i=r(e),s=n.default.dirname(i);t.default.existsSync(s)||t.default.mkdirSync(s,{recursive:!0});let l=`${i}.tmp`;t.default.writeFileSync(l,JSON.stringify(a,null,2),"utf8"),t.default.renameSync(l,i)}function i(e){let n=new Date().toLocaleDateString("en-CA",{timeZone:"Asia/Jerusalem"});try{let i=t.default.readFileSync(r(e),"utf8"),s=JSON.parse(i);if(s.resetAt===n)return s;let l={...s,spentTodayUsd:0,resetAt:n};return a(e,l),l}catch{let t={dailyBudgetUsd:3,spentTodayUsd:0,resetAt:n};return a(e,t),t}}e.s(["getTwinBudget",0,i,"isUnderBudget",0,function(e,t=0){let n=i(e);return n.spentTodayUsd+t<=n.dailyBudgetUsd},"recordSpend",0,function(e,t){if(t<=0)return i(e);let n=i(e),r={...n,spentTodayUsd:Math.round((n.spentTodayUsd+t)*1e6)/1e6};return a(e,r),r},"setDailyBudget",0,function(e,t){let n={...i(e),dailyBudgetUsd:Math.max(0,t)};return a(e,n),n}])},38261,e=>{"use strict";var t=e.i(22734),n=e.i(14747);let r=n.default.join(process.cwd(),"data","employees");function a(e){return n.default.join(r,e,".shift","focus.json")}e.s(["getFocusConfig",0,function(e){let n=a(e);if(!t.default.existsSync(n))return{prefetches:[]};try{let e=JSON.parse(t.default.readFileSync(n,"utf8"));return{prefetches:Array.isArray(e.prefetches)?e.prefetches:[]}}catch(e){return console.warn("[twin-focus] read failed:",e),{prefetches:[]}}},"setFocusConfig",0,function(e,r){let i,s=a(e);i=n.default.dirname(s),t.default.existsSync(i)||t.default.mkdirSync(i,{recursive:!0}),t.default.writeFileSync(s,JSON.stringify(r,null,2),"utf8")}])},50990,e=>{"use strict";var t=e.i(22734),n=e.i(14747);let r=n.default.join(process.cwd(),"data","employees");function a(e){return n.default.join(r,e,".shift","tasks")}function i(e){try{return JSON.parse(t.default.readFileSync(e,"utf8"))}catch(t){return console.warn("[twin-tasks] failed to read",e,t),null}}function s(e){return e.sort((e,t)=>e.priority!==t.priority?e.priority-t.priority:e.createdAt.localeCompare(t.createdAt))}e.s(["getTasksFor",0,function(e,r){try{let l=a(e);if(!t.default.existsSync(l))return[];let o=t.default.readdirSync(l).filter(e=>e.endsWith(".json")),u=[];for(let e of o){let t=i(n.default.join(l,e));t&&(r&&t.status!==r||u.push(t))}return s(u)}catch(t){return console.warn("[twin-tasks] getTasksFor failed",e,t),[]}},"listAllPendingTasks",0,function(){try{if(!t.default.existsSync(r))return[];let e=t.default.readdirSync(r),l=[];for(let r of e){let e=a(r);if(t.default.existsSync(e))for(let r of t.default.readdirSync(e).filter(e=>e.endsWith(".json"))){let t=i(n.default.join(e,r));t&&"pending"===t.status&&l.push(t)}}return s(l)}catch(e){return console.warn("[twin-tasks] listAllPendingTasks failed",e),[]}}])},6015,e=>{"use strict";var t=e.i(22734),n=e.i(14747);let r=[[0,59],[0,23],[1,31],[1,12],[0,6]];function a(e,[t,n]){let r=new Set;for(let a of e.split(",")){let e,i,s=1,l=a;if(a.includes("/")){let[e,t]=a.split("/");if(l=e,!Number.isFinite(s=parseInt(t,10))||s<1)throw Error(`Invalid step in '${a}'`)}if("*"===l)e=t,i=n;else if(l.includes("-")){let[t,n]=l.split("-").map(e=>parseInt(e,10));e=t,i=n}else i=e=parseInt(l,10);if(!Number.isFinite(e)||!Number.isFinite(i)||e<t||i>n||e>i)throw Error(`Invalid range '${l}' for [${t},${n}]`);for(let t=e;t<=i;t+=s)r.add(t)}return[...r].sort((e,t)=>e-t)}let i=n.default.join(process.cwd(),"data","routines.json");function s(){let e=n.default.dirname(i);t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0})}function l(){try{if(s(),!t.default.existsSync(i))return[];return JSON.parse(t.default.readFileSync(i,"utf8"))}catch{return[]}}function o(e){s(),t.default.writeFileSync(i,JSON.stringify(e,null,2),"utf8")}function u(e,t=new Date){let n=new Date(t);if("interval"===e.type)return n.setTime(t.getTime()+6e4*e.minutes),n;if("cron"===e.type)return function(e,t=new Date){let n=function(e){let t=e.trim().split(/\s+/);if(5!==t.length)throw Error(`Cron expression must have 5 fields, got ${t.length}: '${e}'`);return{minutes:a(t[0],r[0]),hours:a(t[1],r[1]),doms:a(t[2],r[2]),months:a(t[3],r[3]),dows:a(t[4],r[4])}}(e),i=new Date(t);i.setSeconds(0,0),i.setMinutes(i.getMinutes()+1);for(let e=0;e<527040;e++){if(n.minutes.includes(i.getMinutes())&&n.hours.includes(i.getHours())&&n.months.includes(i.getMonth()+1)&&function(e,t){let n=31===e.doms.length,r=7===e.dows.length,a=e.doms.includes(t.getDate()),i=e.dows.includes(t.getDay());return n||r?n?!!r||i:a:a||i}(n,i))return new Date(i);i.setMinutes(i.getMinutes()+1)}throw Error(`Could not find next match for cron '${e}' within 1 year`)}(e.expr,t);let[i,s]=function(e){let[t,n]=e.split(":").map(e=>parseInt(e,10));return[t??0,n??0]}(e.time);if(n.setHours(i,s,0,0),"daily"===e.type)return n<=t&&n.setDate(n.getDate()+1),n;let l=(e.day-n.getDay()+7)%7;return 0===l&&n<=t&&(l=7),n.setDate(n.getDate()+l),n}let d=0;e.s(["computeNextRun",0,u,"createRoutine",0,function(e){let t=l(),n={id:(d++,`rt_${Date.now().toString(36)}_${d}`),createdAt:new Date().toISOString(),nextRunAt:u(e.schedule).toISOString(),...e};return t.push(n),o(t),n},"deleteRoutine",0,function(e){let t=l(),n=t.filter(t=>t.id!==e);return n.length!==t.length&&(o(n),!0)},"getRoutine",0,function(e){return l().find(t=>t.id===e)},"listRoutines",0,function(){return l()},"updateRoutine",0,function(e,t){let n=l(),r=n.findIndex(t=>t.id===e);if(-1!==r)return n[r]={...n[r],...t},o(n),n[r]}],6015)},44096,e=>{"use strict";var t=e.i(47909),n=e.i(74017),r=e.i(96250),a=e.i(59756),i=e.i(61916),s=e.i(74677),l=e.i(69741),o=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(74838),h=e.i(10372),g=e.i(93695);e.i(20232);var y=e.i(220),w=e.i(89171),v=e.i(6015),S=e.i(73596);async function A(e,t){let{id:n}=await t.params,r=(0,v.getRoutine)(n);return r?((0,S.fireRoutine)(r,"manual"),w.NextResponse.json({ok:!0})):w.NextResponse.json({error:"not found"},{status:404})}e.s(["POST",0,A],6191);var E=e.i(6191);let C=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/routines/[id]/run/route",pathname:"/api/routines/[id]/run",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/routines/[id]/run/route.ts",nextConfigOutput:"standalone",userland:E,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:R,serverHooks:T}=C;async function x(e,t,r){r.requestMeta&&(0,a.setRequestMeta)(e,r.requestMeta),C.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/routines/[id]/run/route";w=w.replace(/\/index$/,"")||"/";let v=await C.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,params:A,nextConfig:E,parsedUrl:N,isDraftMode:R,prerenderManifest:T,routerServerContext:x,isOnDemandRevalidate:O,revalidateOnlyGenerated:k,resolvedPathname:I,clientReferenceManifest:D,serverActionsManifest:b}=v,P=(0,l.normalizeAppPath)(w),j=!!(T.dynamicRoutes[P]||T.routes[I]),M=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,N,!1):t.end("This page could not be found"),null);if(j&&!R){let e=!!T.routes[I],t=T.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await M();throw new g.NoFallbackError}}let F=null;!j||C.isDev||R||(F="/index"===(F=I)?"/":F);let U=!0===C.isDev||!j,_=j&&!U;b&&D&&(0,s.setManifestsSingleton)({page:w,clientReferenceManifest:D,serverActionsManifest:b});let $=e.method||"GET",q=(0,i.getTracer)(),B=q.getActiveScopeSpan(),H=!!(null==x?void 0:x.isWrappedByNextServer),K=!!(0,a.getRequestMeta)(e,"minimalMode"),J=(0,a.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,E,T,K);null==J||J.resetRequestCache(),globalThis.__incrementalCache=J;let L={params:A,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:J,cacheLifeProfiles:E.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,a)=>C.onRequestError(e,t,r,a,x)},sharedContext:{buildId:S}},W=new o.NodeNextRequest(e),V=new o.NodeNextResponse(t),X=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t));try{let a,s=async e=>C.handle(X,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=q.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route");if(r){let t=`${$} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",r),a.updateName(t))}else e.updateName(`${$} ${w}`)}),l=async a=>{var i,l;let o=async({previousCacheEntry:n})=>{try{if(!K&&O&&k&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(a);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&r.waitUntil&&(r.waitUntil(l),l=void 0);let o=L.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(W,V,i,L.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);o&&(t[h.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,r=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:_,isOnDemandRevalidate:O})},!1,x),t}},u=await C.handleResponse({req:e,nextConfig:E,cacheKey:F,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:k,responseGenerator:o,waitUntil:r.waitUntil,isMinimalMode:K});if(!j)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&j||d.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(W,V,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};H&&B?await l(B):(a=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l),void 0,!H))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:_,isOnDemandRevalidate:O})},!1,x),j)throw t;return await (0,p.sendResponse)(W,V,new Response(null,{status:500})),null}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:R})},"routeModule",0,C,"serverHooks",0,T,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,R],44096)},30887,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0gqp_8t._.js"].map(t=>e.l(t))).then(()=>t(41379)))},23970,e=>{e.v(e=>Promise.resolve().then(()=>e(22734)))},89793,e=>{e.v(e=>Promise.resolve().then(()=>e(14747)))},86212,e=>{e.v(e=>Promise.resolve().then(()=>e(38745)))}];
5
+
6
+ //# sourceMappingURL=%5Broot-of-the-server%5D__10ny17j._.js.map
@@ -0,0 +1,8 @@
1
+ module.exports=[24361,(e,t,n)=>{t.exports=e.x("util",()=>require("util"))},51474,e=>{"use strict";var t=e.i(22734),n=e.i(14747);let r={employmentKind:"external_consultant",responsibleEmployeeId:"",responsibleEmployeeName:"",teamName:"General",teammateIds:[],teammateNames:[]};var a=e.i(43811);let i=n.default.join(process.cwd(),"data","hired-agents.json"),l=n.default.join(process.cwd(),"data","employees");function s(){try{let e=t.default.readFileSync(i,"utf-8");return JSON.parse(e).filter(e=>"string"==typeof e.id).map(e=>{var t;let n;return t=e,n=(0,a.getMarketplaceAgent)(t.marketplaceAgentId??t.id),{id:t.id,marketplaceAgentId:t.marketplaceAgentId??t.id,hiredAt:t.hiredAt??new Date(0).toISOString(),placement:o(t.placement,n)}})}catch{return[]}}function o(e,t){let n={...r,teamName:t?.department??r.teamName};return{employmentKind:e?.employmentKind==="team_member"||e?.employmentKind==="external_consultant"?e.employmentKind:n.employmentKind,responsibleEmployeeId:e?.responsibleEmployeeId||n.responsibleEmployeeId,responsibleEmployeeName:e?.responsibleEmployeeName||n.responsibleEmployeeName,teamName:e?.teamName||n.teamName,teammateIds:Array.isArray(e?.teammateIds)?e.teammateIds:[],teammateNames:Array.isArray(e?.teammateNames)?e.teammateNames:[],engagementNote:e?.engagementNote?.trim()||void 0}}function d(e){t.default.mkdirSync(n.default.dirname(i),{recursive:!0}),t.default.writeFileSync(i,JSON.stringify(e,null,2),"utf-8")}e.s(["dismissAgent",0,function(e){let r=s(),a=r.findIndex(t=>t.id===e);if(-1===a)return!1;let i=n.default.join(l,e);try{t.default.rmSync(i,{recursive:!0,force:!0})}catch{}return r.splice(a,1),d(r),!0},"getHiredAgentIds",0,function(){return s().map(e=>e.id)},"getHiredEmployees",0,function(){let e=s(),t=[];for(let i of e){var n,r;let e=a.MARKETPLACE_AGENTS.find(e=>e.id===i.id);e&&t.push((n=i.hiredAt,r=i.placement,{id:e.id,name:e.name,firstName:e.firstName,role:e.role,department:e.department,initials:e.initials,avatarColor:e.avatarColor,integrations:e.suggestedToolkits,twinStatus:"ready",twinConfidence:.85,profileFilesComplete:Object.keys(e.profileFiles).length,lastActiveAt:n,questionsThisWeek:0,seedModel:"claude-sonnet-4-6",refreshModel:"claude-sonnet-4-6",ttsVoiceId:"EXAVITQu4vr4xnSDxMaL",skills:e.skills.map(e=>({id:e.toLowerCase().replace(/\s+/g,"-"),label:e})),orgSkillIds:[],consent:{grantedAt:n,version:"1.0",scopes:["data-collection","integrations"]},placement:r}))}return t},"hireAgent",0,function(e,r){let a=o(r,e),i={id:e.id,marketplaceAgentId:e.id,hiredAt:new Date().toISOString(),placement:a},u=n.default.join(l,e.id);for(let[r,i]of(t.default.mkdirSync(u,{recursive:!0}),Object.entries(e.profileFiles)))t.default.writeFileSync(n.default.join(u,r),function(e,t,n){let r,a;if("EMPLOYMENT.md"!==e&&"PEOPLE.md"!==e)return t;let i=(r="external_consultant"===n.employmentKind?"External consultant":"Team member",a=n.teammateNames.length>0?n.teammateNames.join(", "):"No named teammates yet",["## Team placement",`- Employment kind: ${r}`,`- Responsible owner: ${n.responsibleEmployeeName} (${n.responsibleEmployeeId})`,`- Team: ${n.teamName}`,`- Teammates: ${a}`,n.engagementNote?`- Engagement note: ${n.engagementNote}`:void 0].filter(Boolean).join("\n")),l=t.replace(/\s+$/,"");return l.includes("## Team placement")?l.replace(/## Team placement[\s\S]*$/,i)+"\n":`${l}
2
+
3
+ ${i}
4
+ `}(r,i,a),"utf-8");let c=s().filter(t=>t.id!==e.id);return c.push(i),d(c),i}],51474)},47751,e=>{"use strict";var t=e.i(24868),n=e.i(14747);let r=["#A8B4C4","#C4A8B8","#B8C4A8","#A8C4B8","#C4B8A8","#B8A8C4","#C4C4A8","#A8C4C4","#C4A8A8","#A8A8C4"],a=["EXPERTISE","DECISIONS","CONTEXT","PEOPLE","PROJECTS","PREFERENCES","TONE","BOUNDARIES","EMPLOYMENT"];function i(e){let t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())),n=t.getUTCDay()||7;t.setUTCDate(t.getUTCDate()+4-n);let r=new Date(Date.UTC(t.getUTCFullYear(),0,1)),a=Math.ceil(((t.getTime()-r.getTime())/864e5+1)/7);return`${t.getUTCFullYear()}-W${String(a).padStart(2,"0")}`}async function l(e){let r=n.default.join(process.cwd(),"data","employees",e,"employee.json");try{let e=await t.default.readFile(r,"utf8"),n=JSON.parse(e),a=i(new Date),l=n.weekOf===a?(n.questionsThisWeek??0)+1:1;await t.default.writeFile(r,JSON.stringify({...n,lastActiveAt:new Date().toISOString(),questionsThisWeek:l,weekOf:a},null,2),"utf8")}catch{}}async function s(){let e,l=n.default.join(process.cwd(),"data","employees");try{e=await t.default.readdir(l)}catch{return[]}let s=[];for(let d of e){var o;let e;if(d.startsWith("."))continue;let u=n.default.join(l,d,"employee.json");try{let n=await t.default.readFile(u,"utf8");e=JSON.parse(n)}catch{continue}if(!e?.name||e.pendingProfile)continue;let c=0;for(let e of a)try{(await t.default.readFile(n.default.join(l,d,`${e}.md`),"utf8")).trim().length>16&&c++}catch{}s.push({id:e.id||d,name:e.name,firstName:(o=e.name).trim().split(/\s+/)[0]||o,role:e.role||"—",department:e.department||"General",initials:function(e){let t=e.trim().split(/\s+/).filter(Boolean);return 0===t.length?"??":1===t.length?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}(e.name),avatarColor:function(e){let t=0;for(let n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)|0;return r[Math.abs(t)%r.length]}(e.id||d),integrations:e.integrations??[],twinStatus:c>=6?"ready":c>0?"building":"pending",twinConfidence:c>=6?Math.min(1,c/9):0,profileFilesComplete:c,lastActiveAt:e.lastActiveAt,questionsThisWeek:e.weekOf===i(new Date)?e.questionsThisWeek??0:0,skills:[],orgSkillIds:[],seedModel:"claude-opus-4-7",refreshModel:"claude-sonnet-4-6",ttsVoiceId:"EXAVITQu4vr4xnSDxMaL"})}return s.sort((e,t)=>(t.lastActiveAt??"").localeCompare(e.lastActiveAt??"")),s}e.s(["bumpActivityOnDisk",0,l,"loadEmployeesFromDisk",0,s])},76430,28177,e=>{"use strict";var t=e.i(14747),n=e.i(22734);let r=["CONTEXT.md","EXPERTISE.md","PROJECTS.md","PEOPLE.md","DECISIONS.md","PREFERENCES.md","TONE.md","BOUNDARIES.md","EMPLOYMENT.md"];e.s(["TWIN_FILE_NAMES",0,r],28177);let a=e=>t.default.join(process.cwd(),"data","employees",e),i=e=>t.default.join(a(e),".versions"),l=e=>t.default.join(i(e),"files"),s=e=>t.default.join(i(e),"builds"),o=e=>t.default.join(i(e),"_log.jsonl"),d=(e,n)=>t.default.join(s(e),`${n}.events.jsonl`),u=t.default.join(process.cwd(),"data","active-builds.json");function c(e=new Date){return e.toISOString().replace(/[:.]/g,"-")}function f(e){n.default.mkdirSync(i(e),{recursive:!0}),n.default.mkdirSync(l(e),{recursive:!0}),n.default.mkdirSync(s(e),{recursive:!0})}function p(e,r,a,i,s={}){f(e);let d=c(s.at??new Date),u=t.default.join(l(e),r);n.default.mkdirSync(u,{recursive:!0});let m=t.default.join(u,`${d}.md`),y=d,h=m,g=0;for(;n.default.existsSync(h);)g+=1,y=`${d}-${g}`,h=t.default.join(u,`${y}.md`);n.default.writeFileSync(h,a,"utf-8");let E={ts:y,filename:r,sizeBytes:Buffer.byteLength(a,"utf-8"),source:i,...s.buildId?{buildId:s.buildId}:{},...s.restoredFromTs?{restoredFromTs:s.restoredFromTs}:{}};return n.default.appendFileSync(o(e),JSON.stringify(E)+"\n"),y}function m(e,r,i,l={}){let s=t.default.join(a(e),r),o="";try{o=n.default.readFileSync(s,"utf-8")}catch{return null}return o?p(e,r,o,i,l):null}function y(e,a,i){if(!r.includes(a)||!/^[0-9A-Za-z\-]+Z(-\d+)?$/.test(i))return null;let s=t.default.join(l(e),a,`${i}.md`);try{return n.default.readFileSync(s,"utf-8")}catch{return null}}function h(e){let r;try{r=n.default.readdirSync(s(e))}catch{return[]}return r.filter(e=>e.endsWith(".json")).map(r=>{try{let a=n.default.readFileSync(t.default.join(s(e),r),"utf-8");return JSON.parse(a)}catch{return null}}).filter(e=>null!==e).sort((e,t)=>e.startedAt.localeCompare(t.startedAt)).map((e,t)=>({...e,version:t+1}))}function g(e,r,i){let l=y(e,r,i);if(null===l)return{ok:!1,error:"version not found"};m(e,r,"restore",{restoredFromTs:i});let s=t.default.join(a(e),r);return n.default.mkdirSync(a(e),{recursive:!0}),n.default.writeFileSync(s,l,"utf-8"),{ok:!0}}function E(){try{let e=n.default.readFileSync(u,"utf-8");return JSON.parse(e)}catch{return{}}}function S(e){n.default.mkdirSync(t.default.dirname(u),{recursive:!0}),n.default.writeFileSync(u,JSON.stringify(e,null,2))}e.s(["appendBuildEvent",0,function(e,t,r){f(e),n.default.mkdirSync(s(e),{recursive:!0}),n.default.appendFileSync(d(e,t),JSON.stringify(r)+"\n")},"bumpBuildActivity",0,function(e,t){let n=E(),r=n[e];r&&(n[e]={...r,...t},S(n))},"clearBuildActive",0,function(e){let t=E();delete t[e],S(t)},"getActiveBuild",0,function(e){return E()[e]??null},"listActiveBuilds",0,function(){return Object.values(E())},"listBuilds",0,h,"listFileVersions",0,function(e,t){return(function(e){try{return n.default.readFileSync(o(e),"utf-8").split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e)}catch{return[]}})(e).filter(e=>e.filename===t).map(e=>({ts:e.ts,sizeBytes:e.sizeBytes,source:e.source,buildId:e.buildId})).reverse()},"markBuildActive",0,function(e){let t=E();t[e.employeeId]=e,S(t)},"newBuildId",0,function(e=new Date){return c(e)},"readBuildEvents",0,function(e,t,r=0){let a,i=d(e,t);try{a=n.default.readFileSync(i)}catch{return{events:[],nextOffset:0,sizeBytes:0}}let l=a.byteLength;if(r>=l)return{events:[],nextOffset:l,sizeBytes:l};let s=a.subarray(r).toString("utf-8"),o=s.lastIndexOf("\n");if(o<0)return{events:[],nextOffset:r,sizeBytes:l};let u=o+1;return{events:s.slice(0,u).split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e),nextOffset:r+u,sizeBytes:l}},"readFileVersion",0,y,"recordBuild",0,function(e){f(e.employeeId);let i=new Set(e.writtenFiles),l=[];for(let s of r){let r=t.default.join(a(e.employeeId),s),o="";try{o=n.default.readFileSync(r,"utf-8")}catch{continue}if(!o)continue;let d=p(e.employeeId,s,o,"builder",{buildId:e.buildId});l.push({filename:s,snapshotTs:d,sizeBytes:Buffer.byteLength(o,"utf-8"),written:i.has(s)})}let o={buildId:e.buildId,startedAt:e.startedAt.toISOString(),finishedAt:e.finishedAt.toISOString(),durationMs:e.finishedAt.getTime()-e.startedAt.getTime(),modelUsed:e.modelUsed,costUsd:e.costUsd,turns:e.turns,stoppedReason:e.stoppedReason,...e.ceoContext?{ceoContext:e.ceoContext}:{},activeToolkits:e.activeToolkits,files:l},d=t.default.join(s(e.employeeId),`${e.buildId}.json`);return n.default.writeFileSync(d,JSON.stringify(o,null,2)),o},"restoreBuild",0,function(e,t){let n=h(e).find(e=>e.buildId===t)??null;if(!n)return{ok:!1,error:"build not found",restored:[]};let r=[];for(let t of n.files)g(e,t.filename,t.snapshotTs).ok&&r.push(t.filename);return{ok:!0,restored:r}},"restoreFile",0,g,"snapshotFile",0,p,"snapshotRootFile",0,m],76430)},54975,e=>{"use strict";var t=e.i(22734),n=e.i(14747),r=e.i(76430);let a=n.default.join(process.cwd(),"data","employees"),i=["EXPERTISE.md","TONE.md","CONTEXT.md","DECISIONS.md","PREFERENCES.md","PEOPLE.md","PROJECTS.md","BOUNDARIES.md","EMPLOYMENT.md"];e.s(["hasEmployeeFiles",0,function(e){let r=n.default.join(a,e);try{return t.default.existsSync(r)&&t.default.readdirSync(r).some(e=>e.endsWith(".md"))}catch{return!1}},"readAllEmployeeFiles",0,function(e){let r={};for(let l of i){let i=function(e,r){let i=n.default.join(a,e,r);try{return t.default.readFileSync(i,"utf-8")}catch{return""}}(e,l);i&&(r[l]=i)}return r},"writeEmployeeFileBody",0,function(e,l,s){if(!i.includes(l))return null;let o=n.default.join(a,e);if(!t.default.existsSync(o))return null;let d=n.default.join(o,l),u="";try{u=t.default.readFileSync(d,"utf-8")}catch{}let c=u.match(/^---\s*\n[\s\S]*?\n---\s*\n/),f=(c?c[0]:"")+s.replace(/^\n+/,"").replace(/\s+$/,"")+"\n";if(u)try{(0,r.snapshotFile)(e,l,u,"manual")}catch(t){let e=t instanceof Error?t.message:String(t);console.warn(`[twin-versions] manual-edit snapshot skipped: ${e}`)}return t.default.writeFileSync(d,f,"utf-8"),f}])},74598,e=>{"use strict";var t=e.i(47909),n=e.i(74017),r=e.i(96250),a=e.i(59756),i=e.i(61916),l=e.i(74677),s=e.i(69741),o=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),f=e.i(66012),p=e.i(70101),m=e.i(74838),y=e.i(10372),h=e.i(93695);e.i(20232);var g=e.i(220),E=e.i(13826),S=e.i(47751),v=e.i(51474),A=e.i(54975);async function w(e){let t=await e.json(),n=t.question?.trim();if(!n)return new Response(JSON.stringify({error:"question is required"}),{status:400,headers:{"Content-Type":"application/json"}});let r=t.employeeIds??[],a=await (0,S.loadEmployeesFromDisk)(),i=[...a,...(0,v.getHiredEmployees)().filter(e=>!a.some(t=>t.id===e.id))],l=i.filter(e=>"ready"===e.twinStatus&&r.includes(e.id)&&(0,A.hasEmployeeFiles)(e.id));if(0===l.length)return new Response(JSON.stringify({error:"no ready employees found"}),{status:400,headers:{"Content-Type":"application/json"}});let s=i.filter(e=>"ready"===e.twinStatus&&(0,A.hasEmployeeFiles)(e.id));if(!process.env.ANTHROPIC_API_KEY)return new Response(JSON.stringify({error:"ANTHROPIC_API_KEY is not configured"}),{status:500,headers:{"Content-Type":"application/json"}});let o=new TextEncoder;return new Response(new ReadableStream({async start(e){let r=t=>{try{e.enqueue(o.encode(`data: ${JSON.stringify(t)}
5
+
6
+ `))}catch{}};try{let e=await (0,E.runCouncil)({responders:l,question:n,meetingId:t.meetingId,allParticipants:s,onEvent:r});r({type:"meeting",meetingId:e.meetingId})}catch(e){r({type:"error",message:e instanceof Error?e.message:"Unknown error"})}finally{try{e.close()}catch{}}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["POST",0,w],52427);var C=e.i(52427);let N=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/council/chat/route",pathname:"/api/council/chat",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/council/chat/route.ts",nextConfigOutput:"standalone",userland:C,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:R,serverHooks:I}=N;async function O(e,t,r){r.requestMeta&&(0,a.setRequestMeta)(e,r.requestMeta),N.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/council/chat/route";E=E.replace(/\/index$/,"")||"/";let S=await N.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:v,params:A,nextConfig:w,parsedUrl:C,isDraftMode:T,prerenderManifest:R,routerServerContext:I,isOnDemandRevalidate:O,revalidateOnlyGenerated:b,resolvedPathname:F,clientReferenceManifest:k,serverActionsManifest:j}=S,x=(0,s.normalizeAppPath)(E),P=!!(R.dynamicRoutes[x]||R.routes[F]),D=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,C,!1):t.end("This page could not be found"),null);if(P&&!T){let e=!!R.routes[F],t=R.dynamicRoutes[x];if(t&&!1===t.fallback&&!e){if(w.adapterPath)return await D();throw new h.NoFallbackError}}let B=null;!P||N.isDev||T||(B="/index"===(B=F)?"/":B);let _=!0===N.isDev||!P,M=P&&!_;j&&k&&(0,l.setManifestsSingleton)({page:E,clientReferenceManifest:k,serverActionsManifest:j});let U=e.method||"GET",$=(0,i.getTracer)(),q=$.getActiveScopeSpan(),H=!!(null==I?void 0:I.isWrappedByNextServer),L=!!(0,a.getRequestMeta)(e,"minimalMode"),J=(0,a.getRequestMeta)(e,"incrementalCache")||await N.getIncrementalCache(e,w,R,L);null==J||J.resetRequestCache(),globalThis.__incrementalCache=J;let K={params:A,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:_,incrementalCache:J,cacheLifeProfiles:w.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,a)=>N.onRequestError(e,t,r,a,I)},sharedContext:{buildId:v}},W=new o.NodeNextRequest(e),X=new o.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(W,(0,d.signalFromNodeResponse)(t));try{let a,l=async e=>N.handle(V,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=$.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route");if(r){let t=`${U} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",r),a.updateName(t))}else e.updateName(`${U} ${E}`)}),s=async a=>{var i,s;let o=async({previousCacheEntry:n})=>{try{if(!L&&O&&b&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await l(a);e.fetchMetrics=K.renderOpts.fetchMetrics;let s=K.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let o=K.renderOpts.collectedTags;if(!P)return await (0,f.sendResponse)(W,X,i,K.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(i.headers);o&&(t[y.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,r=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,I),t}},d=await N.handleResponse({req:e,nextConfig:w,cacheKey:B,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:b,responseGenerator:o,waitUntil:r.waitUntil,isMinimalMode:L});if(!P)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(s=d.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);return L&&P||u.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,f.sendResponse)(W,X,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};H&&q?await s(q):(a=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${E}`,kind:i.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},s),void 0,!H))}catch(t){if(t instanceof h.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,I),P)throw t;return await (0,f.sendResponse)(W,X,new Response(null,{status:500})),null}}e.s(["handler",0,O,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:R})},"routeModule",0,N,"serverHooks",0,I,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,R],74598)},30887,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0gqp_8t._.js"].map(t=>e.l(t))).then(()=>t(41379)))},23970,e=>{e.v(e=>Promise.resolve().then(()=>e(22734)))},89793,e=>{e.v(e=>Promise.resolve().then(()=>e(14747)))}];
7
+
8
+ //# sourceMappingURL=%5Broot-of-the-server%5D__11m~2bm._.js.map
@@ -6,7 +6,7 @@ triggers: [${i.triggers.join(", ")}]
6
6
  ---
7
7
 
8
8
  ${i.body.replace(/\s+$/,"")}
9
- `),"utf8"),a}function d(e){return e.replace(/\.md$/i,"").replace(/^skill$/i,"").replace(/[-_]+/g," ").trim().replace(/\b\w/g,e=>e.toUpperCase())}function c(e){return e.replace(/[^a-zA-Z0-9_-]/g,"_")}function f(e){return"string"==typeof e?e:""}function m(e){return Array.isArray(e)?e:"string"==typeof e&&e?[e]:[]}function p(e){return new Set((e.toLowerCase().match(/[\p{L}\p{N}_-]{2,}/gu)??[]).filter(e=>!g.has(e)))}let g=new Set(["the","and","for","that","this","with","you","are","was","were","what","how","של","על","עם","את","זה","מה","איך"]);function h(){try{return JSON.parse(t.default.readFileSync(i,"utf8"))}catch{return{}}}e.s(["formatOrgSkillsBlock",0,function(e){if(0===e.length)return"";let t=e.map(({skill:e})=>`## ${e.label} (${e.id})
9
+ `),"utf8"),a}function d(e){return e.replace(/\.md$/i,"").replace(/^skill$/i,"").replace(/[-_]+/g," ").trim().replace(/\b\w/g,e=>e.toUpperCase())}function c(e){return e.replace(/[^a-zA-Z0-9_-]/g,"_")}function f(e){return"string"==typeof e?e:""}function m(e){return Array.isArray(e)?e:"string"==typeof e&&e?[e]:[]}function p(e){return new Set((e.toLowerCase().match(/[\p{L}\p{N}_-]{2,}/gu)??[]).filter(e=>!g.has(e)))}let g=new Set(["the","and","for","that","this","with","you","are","was","were","what","how","של","על","עם","את","זה","מה","איך"]);function y(){try{return JSON.parse(t.default.readFileSync(i,"utf8"))}catch{return{}}}e.s(["formatOrgSkillsBlock",0,function(e){if(0===e.length)return"";let t=e.map(({skill:e})=>`## ${e.label} (${e.id})
10
10
 
11
11
  ${e.body}`).join("\n\n---\n\n");return`# Relevant organization skills
12
12
 
@@ -14,7 +14,7 @@ These are organization-level playbooks assigned to this employee. Use them to
14
14
  shape how work is performed. They do not override hard boundaries, approval
15
15
  policy, or the employee's profile files.
16
16
 
17
- ${t}`},"getAssignedOrgSkillIdsForEmployee",0,function(e,t=[]){return h()[e]??t},"importOrgSkillMarkdown",0,function(e){let t,{fm:r,body:n}=a(e.content),i=(t=n.match(/^#\s+(.+)$/m),t?.[1]?.trim()??""),l=f(r.label)||d(f(r.name))||i||d(e.filename.replace(/\.md$/i,"")),o=f(r.id)||f(r.name)||l||e.filename.replace(/\.md$/i,""),s=f(r.description),c=m(r.triggers).length>0?m(r.triggers):function(...e){return Array.from(new Set(e.join(" ").toLowerCase().match(/[\p{L}\p{N}_-]{3,}/gu)??[])).filter(e=>!g.has(e)).slice(0,8)}(o,l,s);return u({id:o,label:l,description:s,triggers:c,body:n.trim()||e.content.trim()})},"listOrgSkills",0,s,"readOrgSkill",0,o,"selectOrgSkillsForRun",0,function(e,t,r=3){var n;let i=(n=e,h()[n.id]??n.orgSkillIds).map(o).filter(e=>!!e);if(0===i.length)return[];let l=i.map(e=>({skill:e,score:function(e,t){let r=p(t);if(0===r.size)return 0;let n=0,i=p([e.id,e.label,e.description,e.triggers.join(" ")].join(" ").toLowerCase());for(let e of r)i.has(e)&&(n+=1);for(let r of e.triggers)t.toLowerCase().includes(r.toLowerCase())&&(n+=2);return n}(e,t)})).sort((e,t)=>t.score-e.score),a=l.filter(e=>e.score>0);return(a.length>0?a:l).slice(0,r)},"setAssignedOrgSkillIds",0,function(e,n){var l;let a=new Set(s().map(e=>e.id)),o=Array.from(new Set(n.map(e=>c(e)).filter(e=>a.has(e)))),u=h();return u[e]=o,l=u,t.default.mkdirSync(r.default.dirname(i),{recursive:!0}),t.default.writeFileSync(i,JSON.stringify(l,null,2),"utf8"),o},"writeOrgSkill",0,u])},13427,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=r.default.join(process.cwd(),"data","org-brain"),i=r.default.join(n,"nodes"),l=/^---\s*\n([\s\S]*?)\n---\s*\n([\s\S]*)$/,a=/\[\[([a-zA-Z0-9_-]+)(?:#[^\]|]+)?(?:\|[^\]]+)?\]\]/g,o=["document","decision","incident","policy","customer","product","process","note"];function s(e){return e.toLowerCase().trim().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)}function u(e){return"string"==typeof e?e:""}function d(e){return Array.isArray(e)?e:"string"==typeof e&&e?[e]:[]}function c(e){let t=e.toLowerCase();return o.includes(t)?t:"note"}function f(e){let n=s(e),o=r.default.join(i,`${n}.md`);try{let e=t.default.readFileSync(o,"utf8"),{fm:r,body:i}=function(e){let t=e.match(l);if(!t)return{fm:{},body:e};let r={};for(let e of t[1].split("\n")){let t=e.match(/^([a-zA-Z_]+):\s*(.+)$/);if(!t)continue;let n=t[1],i=t[2].trim();if(i.startsWith("[")&&i.endsWith("]")){let e=i.slice(1,-1).trim();r[n]=e?e.split(",").map(e=>e.trim().replace(/^['"]|['"]$/g,"")):[];continue}r[n]=i.replace(/^['"]|['"]$/g,"")}return{fm:r,body:t[2]?.trim()??""}}(e),s=d(r.linked_nodes),f=function(e){let t=new Set;for(let r of e.matchAll(a))t.add(r[1]);return Array.from(t)}(i),m=Array.from(new Set([...s,...f]));return{slug:u(r.slug)||n,label:u(r.label)||n,type:c(u(r.type)||"note"),description:u(r.description),triggers:d(r.triggers),sources:d(r.sources),linkedNodes:m,lastUpdated:u(r.last_updated),body:i}}catch{return null}}function m(){try{return t.default.readdirSync(i,{withFileTypes:!0}).filter(e=>e.isFile()&&e.name.endsWith(".md")).map(e=>f(e.name.replace(/\.md$/,""))).filter(e=>!!e).sort((e,t)=>e.label.localeCompare(t.label))}catch{return[]}}let p=new Set(["the","and","for","that","this","with","you","are","was","were","what","how","who","why","when","from","can","our","your","של","על","עם","את","זה","מה","איך","מי","למה","מתי"]);function g(e){return new Set((e.toLowerCase().match(/[\p{L}\p{N}_-]{2,}/gu)??[]).filter(e=>!p.has(e)))}e.s(["deleteOrgBrainNode",0,function(e){let n=s(e),l=r.default.join(i,`${n}.md`);try{return t.default.unlinkSync(l),!0}catch{return!1}},"formatOrgBrainBlock",0,function(e){if(0===e.length)return"";let t=e.map(({node:e})=>{let t=[e.type?`type: ${e.type}`:"",e.sources.length?`sources: ${e.sources.join(", ")}`:"",e.lastUpdated?`updated: ${e.lastUpdated.slice(0,10)}`:""].filter(Boolean).join(" · ");return`## ${e.label} \`[[${e.slug}]]\`
17
+ ${t}`},"getAssignedOrgSkillIdsForEmployee",0,function(e,t=[]){return y()[e]??t},"importOrgSkillMarkdown",0,function(e){let t,{fm:r,body:n}=a(e.content),i=(t=n.match(/^#\s+(.+)$/m),t?.[1]?.trim()??""),l=f(r.label)||d(f(r.name))||i||d(e.filename.replace(/\.md$/i,"")),o=f(r.id)||f(r.name)||l||e.filename.replace(/\.md$/i,""),s=f(r.description),c=m(r.triggers).length>0?m(r.triggers):function(...e){return Array.from(new Set(e.join(" ").toLowerCase().match(/[\p{L}\p{N}_-]{3,}/gu)??[])).filter(e=>!g.has(e)).slice(0,8)}(o,l,s);return u({id:o,label:l,description:s,triggers:c,body:n.trim()||e.content.trim()})},"listOrgSkills",0,s,"readOrgSkill",0,o,"selectOrgSkillsForRun",0,function(e,t,r=3){var n;let i=(n=e,y()[n.id]??n.orgSkillIds).map(o).filter(e=>!!e);if(0===i.length)return[];let l=i.map(e=>({skill:e,score:function(e,t){let r=p(t);if(0===r.size)return 0;let n=0,i=p([e.id,e.label,e.description,e.triggers.join(" ")].join(" ").toLowerCase());for(let e of r)i.has(e)&&(n+=1);for(let r of e.triggers)t.toLowerCase().includes(r.toLowerCase())&&(n+=2);return n}(e,t)})).sort((e,t)=>t.score-e.score),a=l.filter(e=>e.score>0);return(a.length>0?a:l).slice(0,r)},"setAssignedOrgSkillIds",0,function(e,n){var l;let a=new Set(s().map(e=>e.id)),o=Array.from(new Set(n.map(e=>c(e)).filter(e=>a.has(e)))),u=y();return u[e]=o,l=u,t.default.mkdirSync(r.default.dirname(i),{recursive:!0}),t.default.writeFileSync(i,JSON.stringify(l,null,2),"utf8"),o},"writeOrgSkill",0,u])},13427,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=r.default.join(process.cwd(),"data","org-brain"),i=r.default.join(n,"nodes"),l=/^---\s*\n([\s\S]*?)\n---\s*\n([\s\S]*)$/,a=/\[\[([a-zA-Z0-9_-]+)(?:#[^\]|]+)?(?:\|[^\]]+)?\]\]/g,o=["document","decision","incident","policy","customer","product","process","note"];function s(e){return e.toLowerCase().trim().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)}function u(e){return"string"==typeof e?e:""}function d(e){return Array.isArray(e)?e:"string"==typeof e&&e?[e]:[]}function c(e){let t=e.toLowerCase();return o.includes(t)?t:"note"}function f(e){let n=s(e),o=r.default.join(i,`${n}.md`);try{let e=t.default.readFileSync(o,"utf8"),{fm:r,body:i}=function(e){let t=e.match(l);if(!t)return{fm:{},body:e};let r={};for(let e of t[1].split("\n")){let t=e.match(/^([a-zA-Z_]+):\s*(.+)$/);if(!t)continue;let n=t[1],i=t[2].trim();if(i.startsWith("[")&&i.endsWith("]")){let e=i.slice(1,-1).trim();r[n]=e?e.split(",").map(e=>e.trim().replace(/^['"]|['"]$/g,"")):[];continue}r[n]=i.replace(/^['"]|['"]$/g,"")}return{fm:r,body:t[2]?.trim()??""}}(e),s=d(r.linked_nodes),f=function(e){let t=new Set;for(let r of e.matchAll(a))t.add(r[1]);return Array.from(t)}(i),m=Array.from(new Set([...s,...f]));return{slug:u(r.slug)||n,label:u(r.label)||n,type:c(u(r.type)||"note"),description:u(r.description),triggers:d(r.triggers),sources:d(r.sources),linkedNodes:m,lastUpdated:u(r.last_updated),body:i}}catch{return null}}function m(){try{return t.default.readdirSync(i,{withFileTypes:!0}).filter(e=>e.isFile()&&e.name.endsWith(".md")).map(e=>f(e.name.replace(/\.md$/,""))).filter(e=>!!e).sort((e,t)=>e.label.localeCompare(t.label))}catch{return[]}}let p=new Set(["the","and","for","that","this","with","you","are","was","were","what","how","who","why","when","from","can","our","your","של","על","עם","את","זה","מה","איך","מי","למה","מתי"]);function g(e){return new Set((e.toLowerCase().match(/[\p{L}\p{N}_-]{2,}/gu)??[]).filter(e=>!p.has(e)))}e.s(["deleteOrgBrainNode",0,function(e){let n=s(e),l=r.default.join(i,`${n}.md`);try{return t.default.unlinkSync(l),!0}catch{return!1}},"formatOrgBrainBlock",0,function(e){if(0===e.length)return"";let t=e.map(({node:e})=>{let t=[e.type?`type: ${e.type}`:"",e.sources.length?`sources: ${e.sources.join(", ")}`:"",e.lastUpdated?`updated: ${e.lastUpdated.slice(0,10)}`:""].filter(Boolean).join(" · ");return`## ${e.label} \`[[${e.slug}]]\`
18
18
  ${t?`_${t}_
19
19
  `:""}
20
20
  ${e.body}`}).join("\n\n---\n\n");return`# Relevant company knowledge (Org Brain)
@@ -36,7 +36,7 @@ last_updated: ${n.lastUpdated}
36
36
  ---
37
37
 
38
38
  ${n.body.replace(/\s+$/,"")}
39
- `),"utf8"),a}])},81040,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=new Map,i=r.default.join(process.cwd(),"data","meetings"),l=!1;1;l=!0;try{t.default.existsSync(i)&&t.default.rmSync(i,{recursive:!0,force:!0})}catch(e){console.warn("[meeting-store] cold-start wipe failed:",e)}function a(e){let t=r.default.basename(e||"").trim().replace(/[^A-Za-z0-9._-]+/g,"_").replace(/_+/g,"_").replace(/^[._-]+|[._-]+$/g,"");return t?t.slice(0,120):"file"}let o={".csv":"text/csv",".json":"application/json",".md":"text/markdown",".txt":"text/plain",".html":"text/html",".xml":"application/xml",".yaml":"text/yaml",".yml":"text/yaml",".tsv":"text/tab-separated-values"};function s(e){return r.default.join(i,e,"shared")}e.s(["SHARED_FILE_MAX_BYTES",0,0x1900000,"appendTurn",0,function(e,t){let r=n.get(e);r&&(r.transcript.push(t),r.updatedAt=Date.now())},"getMeeting",0,function(e){return n.get(e)},"getOrCreateMeeting",0,function(e,t){let r,i;if(e){let t=n.get(e);if(t)return t}return r=Date.now(),i={id:`mtg_${r}_${Math.random().toString(36).slice(2,8)}`,participantIds:t,transcript:[],sharedFiles:[],createdAt:r,updatedAt:r},n.set(i.id,i),i},"listSharedFiles",0,function(e){return n.get(e)?.sharedFiles??[]},"readSharedFile",0,function(e,i){let l=n.get(e);if(!l)return{status:"not_found"};let o=a(i),u=l.sharedFiles.find(e=>e.filename===o);if(!u)return{status:"not_found"};if("text"!==u.kind)return{status:"binary",entry:u};try{let n=r.default.join(s(e),u.filename),i=t.default.readFileSync(n,"utf8");return{status:"text",content:i,entry:u}}catch{return{status:"not_found"}}},"readSharedFileBytes",0,function(e,i){let l=n.get(e);if(!l)return{found:!1};let o=a(i),u=l.sharedFiles.find(e=>e.filename===o);if(!u)return{found:!1};try{let n=r.default.join(s(e),u.filename),i=t.default.readFileSync(n);return{found:!0,bytes:i,entry:u}}catch{return{found:!1}}},"recordSharedFile",0,function(e,i){let l=n.get(e);if(!l)throw Error(`meeting ${e} not found`);let u="image"===i.kind,d=u?i.bytes.length:Buffer.byteLength(i.content,"utf8");if(d>0x1900000)throw Error(`file is ${d} bytes, exceeds 26214400-byte limit`);let c=function(e,t){let i=n.get(e),l=new Set((i?.sharedFiles??[]).map(e=>e.filename));if(!l.has(t))return t;let a=r.default.extname(t),o=t.slice(0,t.length-a.length);for(let e=2;e<1e3;e++){let t=`${o}_${e}${a}`;if(!l.has(t))return t}return`${o}_${Date.now()}${a}`}(e,a(i.filename)),f=s(e);t.default.mkdirSync(f,{recursive:!0});let m=r.default.join(f,c);u?t.default.writeFileSync(m,i.bytes):t.default.writeFileSync(m,i.content,"utf8");let p={id:`sf_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,filename:c,summary:i.summary.trim(),sharedById:i.sharedById,sharedByName:i.sharedByName,sharedAt:Date.now(),sizeBytes:d,contentType:u?i.contentType:o[r.default.extname(c).toLowerCase()]??"text/plain",kind:u?"image":"text"};return l.sharedFiles.push(p),l.updatedAt=Date.now(),p},"renderSharedFilesForPrompt",0,function(e){return 0===e.length?"":e.map(e=>{let t=Math.max(0,Math.floor((Date.now()-e.sharedAt)/1e3)),r=t<60?`${t}s ago`:t<3600?`${Math.floor(t/60)} min ago`:`${Math.floor(t/3600)} h ago`,n=Math.max(1,Math.round(e.sizeBytes/1024)),i="image"===e.kind?`image, ${e.contentType} — visible to the CEO in the chat; you cannot read its bytes`:"text — readable via read_meeting_file";return`- \`${e.filename}\` — ${e.summary}
39
+ `),"utf8"),a}])},38745,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=r.default.join(process.cwd(),"data","org","feed.jsonl");function i(){let e=r.default.dirname(n);t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0})}let l=0;function a(){try{if(i(),!t.default.existsSync(n))return[];let r=t.default.readFileSync(n,"utf8"),l=[];for(let t of r.split("\n"))if(t.trim())try{var e;let r=(e=JSON.parse(t))&&e.id&&e.ts&&e.source&&e.title?{id:e.id,ts:e.ts,source:e.source,type:e.type??"update",title:e.title,detail:e.detail,priority:e.priority??3,status:e.status??"open",resolvedAt:e.resolvedAt,resolution:e.resolution}:null;r?l.push(r):console.warn("[feed-store] dropping malformed line",t.slice(0,120))}catch{console.warn("[feed-store] unparseable line",t.slice(0,120))}return l}catch(e){return console.warn("[feed-store] read failed",e),[]}}e.s(["appendFeedItem",0,function(e){let r={id:(l++,`feed_${Date.now().toString(36)}_${l}`),ts:new Date().toISOString(),source:e.source,type:e.type,title:e.title,detail:e.detail,priority:e.priority??3,status:"open"};try{i(),t.default.appendFileSync(n,JSON.stringify(r)+"\n","utf8")}catch(e){console.warn("[feed-store] append failed",e)}return r},"listFeed",0,function(e={}){let t=a();if(e.type){let r=Array.isArray(e.type)?e.type:[e.type];t=t.filter(e=>r.includes(e.type))}if(e.status){let r=Array.isArray(e.status)?e.status:[e.status];t=t.filter(e=>r.includes(e.status))}return e.employeeId&&(t=t.filter(t=>(function(e,t){switch(e.kind){case"shift":case"routine":case"task-run":case"approval":return e.employeeId===t;case"twin-task":return e.fromId===t||e.toId===t;case"off-track":return!1}})(t.source,e.employeeId))),e.since&&(t=t.filter(t=>t.ts>=e.since)),t.sort((e,t)=>t.ts.localeCompare(e.ts)),"number"==typeof e.limit&&e.limit>=0&&(t=t.slice(0,e.limit)),t},"resolveFeedItem",0,function(e,r,l){try{let o=a(),s=o.findIndex(t=>t.id===e);if(-1===s)return null;let u=new Date().toISOString();o[s]={...o[s],status:"dismissed"===r?"dismissed":"resolved",resolvedAt:u,resolution:l??r},i();let d=o.map(e=>JSON.stringify(e)).join("\n")+"\n";return t.default.writeFileSync(n,d,"utf8"),o[s]}catch(t){return console.warn("[feed-store] resolve failed",e,t),null}}])},81040,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=new Map,i=r.default.join(process.cwd(),"data","meetings"),l=!1;1;l=!0;try{t.default.existsSync(i)&&t.default.rmSync(i,{recursive:!0,force:!0})}catch(e){console.warn("[meeting-store] cold-start wipe failed:",e)}function a(e){let t=r.default.basename(e||"").trim().replace(/[^A-Za-z0-9._-]+/g,"_").replace(/_+/g,"_").replace(/^[._-]+|[._-]+$/g,"");return t?t.slice(0,120):"file"}let o={".csv":"text/csv",".json":"application/json",".md":"text/markdown",".txt":"text/plain",".html":"text/html",".xml":"application/xml",".yaml":"text/yaml",".yml":"text/yaml",".tsv":"text/tab-separated-values"};function s(e){return r.default.join(i,e,"shared")}e.s(["SHARED_FILE_MAX_BYTES",0,0x1900000,"appendTurn",0,function(e,t){let r=n.get(e);r&&(r.transcript.push(t),r.updatedAt=Date.now())},"getMeeting",0,function(e){return n.get(e)},"getOrCreateMeeting",0,function(e,t){let r,i;if(e){let t=n.get(e);if(t)return t}return r=Date.now(),i={id:`mtg_${r}_${Math.random().toString(36).slice(2,8)}`,participantIds:t,transcript:[],sharedFiles:[],createdAt:r,updatedAt:r},n.set(i.id,i),i},"listSharedFiles",0,function(e){return n.get(e)?.sharedFiles??[]},"readSharedFile",0,function(e,i){let l=n.get(e);if(!l)return{status:"not_found"};let o=a(i),u=l.sharedFiles.find(e=>e.filename===o);if(!u)return{status:"not_found"};if("text"!==u.kind)return{status:"binary",entry:u};try{let n=r.default.join(s(e),u.filename),i=t.default.readFileSync(n,"utf8");return{status:"text",content:i,entry:u}}catch{return{status:"not_found"}}},"readSharedFileBytes",0,function(e,i){let l=n.get(e);if(!l)return{found:!1};let o=a(i),u=l.sharedFiles.find(e=>e.filename===o);if(!u)return{found:!1};try{let n=r.default.join(s(e),u.filename),i=t.default.readFileSync(n);return{found:!0,bytes:i,entry:u}}catch{return{found:!1}}},"recordSharedFile",0,function(e,i){let l=n.get(e);if(!l)throw Error(`meeting ${e} not found`);let u="image"===i.kind,d=u?i.bytes.length:Buffer.byteLength(i.content,"utf8");if(d>0x1900000)throw Error(`file is ${d} bytes, exceeds 26214400-byte limit`);let c=function(e,t){let i=n.get(e),l=new Set((i?.sharedFiles??[]).map(e=>e.filename));if(!l.has(t))return t;let a=r.default.extname(t),o=t.slice(0,t.length-a.length);for(let e=2;e<1e3;e++){let t=`${o}_${e}${a}`;if(!l.has(t))return t}return`${o}_${Date.now()}${a}`}(e,a(i.filename)),f=s(e);t.default.mkdirSync(f,{recursive:!0});let m=r.default.join(f,c);u?t.default.writeFileSync(m,i.bytes):t.default.writeFileSync(m,i.content,"utf8");let p={id:`sf_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,filename:c,summary:i.summary.trim(),sharedById:i.sharedById,sharedByName:i.sharedByName,sharedAt:Date.now(),sizeBytes:d,contentType:u?i.contentType:o[r.default.extname(c).toLowerCase()]??"text/plain",kind:u?"image":"text"};return l.sharedFiles.push(p),l.updatedAt=Date.now(),p},"renderSharedFilesForPrompt",0,function(e){return 0===e.length?"":e.map(e=>{let t=Math.max(0,Math.floor((Date.now()-e.sharedAt)/1e3)),r=t<60?`${t}s ago`:t<3600?`${Math.floor(t/60)} min ago`:`${Math.floor(t/3600)} h ago`,n=Math.max(1,Math.round(e.sizeBytes/1024)),i="image"===e.kind?`image, ${e.contentType} — visible to the CEO in the chat; you cannot read its bytes`:"text — readable via read_meeting_file";return`- \`${e.filename}\` — ${e.summary}
40
40
  (shared by ${e.sharedByName}, ${r}, ${n} KB, ${i})`}).join("\n")},"renderTranscriptForPrompt",0,function(e){return 0===e.length?"(meeting just started — no prior turns)":e.map(e=>"ceo"===e.kind?`CEO: ${e.text}`:`${e.employeeName}${e.delegatedFromName?` (called in by ${e.delegatedFromName})`:""}: ${e.text}`).join("\n\n")}])},18221,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=r.default.join(process.cwd(),"data","employees"),i=[".md",".markdown",".txt",".csv",".json"],l=[".exe",".msi",".bat",".cmd",".sh",".ps1",".psm1",".app",".dmg",".pkg",".jar",".com",".scr",".vbs",".vbe",".js",".mjs",".cjs",".ts",".tsx",".jsx",".bin",".deb",".rpm",".apk"];function a(e){if("string"!=typeof e||e.includes("/")||e.includes("\\")||e.includes(".."))return null;let t=e.replace(/[^a-zA-Z0-9._-]/g,"-");return!t||"."===t||".."===t||t.includes("..")?null:t}function o(e){return r.default.extname(e).toLowerCase()}function s(e){return i.includes(e)}function u(e){return l.includes(e)}function d(e){return Math.round(e/4)}function c(e){let i=a(e)??"_invalid",l=r.default.join(n,i,"knowledge");try{t.default.mkdirSync(l,{recursive:!0})}catch{}return l}function f(e,n){try{let i=r.default.join(e,n),l=t.default.statSync(i);if(!l.isFile())return null;let a=o(n);return{name:n,size:l.size,tokens:d(l.size),ext:a,mtime:l.mtime.toISOString()}}catch{return null}}function m(e){try{let r=c(e),n=t.default.readdirSync(r),i=[];for(let e of n){if(e.startsWith("."))continue;let t=f(r,e);t&&i.push(t)}return i.sort((e,t)=>t.mtime.localeCompare(e.mtime)),i}catch{return[]}}e.s(["deleteKnowledgeFile",0,function(e,n){let i=a(n);if(!i)return!1;try{let n=c(e),l=r.default.join(n,i);if(!t.default.existsSync(l)||!t.default.statSync(l).isFile())return!1;return t.default.unlinkSync(l),!0}catch{return!1}},"knowledgeIndexMarkdown",0,function(e){let t=m(e);return 0===t.length?"":t.map(t=>`- \`employees/${e}/knowledge/${t.name}\` (~${t.tokens} tokens)`).join("\n")},"listKnowledgeFiles",0,m,"readKnowledgeFile",0,function(e,n){let i=a(n);if(!i)return null;let l=o(i);if(!s(l))return null;try{let n=c(e),a=r.default.join(n,i),o=t.default.statSync(a);if(!o.isFile())return null;return{body:t.default.readFileSync(a,"utf-8"),meta:{name:i,size:o.size,tokens:d(o.size),ext:l,mtime:o.mtime.toISOString()}}}catch{return null}},"saveUploadedKnowledgeFile",0,function(e,n,i){let l=a(n);if(!l)return{error:"Invalid file name."};let s=o(l);if(u(s))return{error:`Files of type ${s||"(none)"} are not allowed.`};if(!Buffer.isBuffer(i))return{error:"Invalid file data."};if(i.length>0x1900000)return{error:`File is too large (max ${Math.round(25)} MB).`};try{let n=c(e),a=r.default.extname(l),o=a?l.slice(0,-a.length):l,s=l,u=0;for(;t.default.existsSync(r.default.join(n,s));)u+=1,s=`${o}-${u}${a}`;t.default.writeFileSync(r.default.join(n,s),i);let d=f(n,s);if(!d)return{error:"Could not read back the saved file."};return d}catch(e){return{error:e instanceof Error?e.message:"Unknown disk error"}}},"writeKnowledgeFile",0,function(e,n,i){let l=a(n);if(!l)return null;let d=o(l);if(!s(d)||u(d)||"string"!=typeof i)return null;let m=c(e),p=r.default.join(m,l);return t.default.writeFileSync(p,i,"utf-8"),f(m,l)}])},11540,e=>{"use strict";let t=new Map,r=0;if("u">typeof globalThis){let e=globalThis;e.__approvalSweep||(e.__approvalSweep=setInterval(()=>{let e=Date.now();for(let[r,n]of t.entries())e-n.request.createdAt>6e5&&(t.delete(r),n.resolve({action:"deny",message:"Approval timed out — no human response within 10 minutes."}))},6e4))}e.s(["listPendingApprovals",0,function(e){let r=Array.from(t.values()).map(e=>e.request);return e?.surface?r.filter(t=>t.surface===e.surface):r},"registerApproval",0,function(e){let n,i=(r++,`apr_${Date.now().toString(36)}_${r}`),l=new Promise(e=>{n=e});return t.set(i,{request:{...e,surface:e.surface??"chat",approvalId:i,createdAt:Date.now()},resolve:n}),{approvalId:i,promise:l}},"resolveApproval",0,function(e,r){let n=t.get(e);return!!n&&(t.delete(e),n.resolve(r),!0)}])},88947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))}];
41
41
 
42
- //# sourceMappingURL=%5Broot-of-the-server%5D__0z-3x3f._.js.map
42
+ //# sourceMappingURL=%5Broot-of-the-server%5D__125y-wk._.js.map
@@ -0,0 +1,6 @@
1
+ module.exports=[24361,(e,t,n)=>{t.exports=e.x("util",()=>require("util"))},51474,e=>{"use strict";var t=e.i(22734),n=e.i(14747);let r={employmentKind:"external_consultant",responsibleEmployeeId:"",responsibleEmployeeName:"",teamName:"General",teammateIds:[],teammateNames:[]};var l=e.i(43811);let i=n.default.join(process.cwd(),"data","hired-agents.json"),a=n.default.join(process.cwd(),"data","employees");function s(){try{let e=t.default.readFileSync(i,"utf-8");return JSON.parse(e).filter(e=>"string"==typeof e.id).map(e=>{var t;let n;return t=e,n=(0,l.getMarketplaceAgent)(t.marketplaceAgentId??t.id),{id:t.id,marketplaceAgentId:t.marketplaceAgentId??t.id,hiredAt:t.hiredAt??new Date(0).toISOString(),placement:u(t.placement,n)}})}catch{return[]}}function u(e,t){let n={...r,teamName:t?.department??r.teamName};return{employmentKind:e?.employmentKind==="team_member"||e?.employmentKind==="external_consultant"?e.employmentKind:n.employmentKind,responsibleEmployeeId:e?.responsibleEmployeeId||n.responsibleEmployeeId,responsibleEmployeeName:e?.responsibleEmployeeName||n.responsibleEmployeeName,teamName:e?.teamName||n.teamName,teammateIds:Array.isArray(e?.teammateIds)?e.teammateIds:[],teammateNames:Array.isArray(e?.teammateNames)?e.teammateNames:[],engagementNote:e?.engagementNote?.trim()||void 0}}function d(e){t.default.mkdirSync(n.default.dirname(i),{recursive:!0}),t.default.writeFileSync(i,JSON.stringify(e,null,2),"utf-8")}e.s(["dismissAgent",0,function(e){let r=s(),l=r.findIndex(t=>t.id===e);if(-1===l)return!1;let i=n.default.join(a,e);try{t.default.rmSync(i,{recursive:!0,force:!0})}catch{}return r.splice(l,1),d(r),!0},"getHiredAgentIds",0,function(){return s().map(e=>e.id)},"getHiredEmployees",0,function(){let e=s(),t=[];for(let i of e){var n,r;let e=l.MARKETPLACE_AGENTS.find(e=>e.id===i.id);e&&t.push((n=i.hiredAt,r=i.placement,{id:e.id,name:e.name,firstName:e.firstName,role:e.role,department:e.department,initials:e.initials,avatarColor:e.avatarColor,integrations:e.suggestedToolkits,twinStatus:"ready",twinConfidence:.85,profileFilesComplete:Object.keys(e.profileFiles).length,lastActiveAt:n,questionsThisWeek:0,seedModel:"claude-sonnet-4-6",refreshModel:"claude-sonnet-4-6",ttsVoiceId:"EXAVITQu4vr4xnSDxMaL",skills:e.skills.map(e=>({id:e.toLowerCase().replace(/\s+/g,"-"),label:e})),orgSkillIds:[],consent:{grantedAt:n,version:"1.0",scopes:["data-collection","integrations"]},placement:r}))}return t},"hireAgent",0,function(e,r){let l=u(r,e),i={id:e.id,marketplaceAgentId:e.id,hiredAt:new Date().toISOString(),placement:l},o=n.default.join(a,e.id);for(let[r,i]of(t.default.mkdirSync(o,{recursive:!0}),Object.entries(e.profileFiles)))t.default.writeFileSync(n.default.join(o,r),function(e,t,n){let r,l;if("EMPLOYMENT.md"!==e&&"PEOPLE.md"!==e)return t;let i=(r="external_consultant"===n.employmentKind?"External consultant":"Team member",l=n.teammateNames.length>0?n.teammateNames.join(", "):"No named teammates yet",["## Team placement",`- Employment kind: ${r}`,`- Responsible owner: ${n.responsibleEmployeeName} (${n.responsibleEmployeeId})`,`- Team: ${n.teamName}`,`- Teammates: ${l}`,n.engagementNote?`- Engagement note: ${n.engagementNote}`:void 0].filter(Boolean).join("\n")),a=t.replace(/\s+$/,"");return a.includes("## Team placement")?a.replace(/## Team placement[\s\S]*$/,i)+"\n":`${a}
2
+
3
+ ${i}
4
+ `}(r,i,l),"utf-8");let c=s().filter(t=>t.id!==e.id);return c.push(i),d(c),i}],51474)},47751,e=>{"use strict";var t=e.i(24868),n=e.i(14747);let r=["#A8B4C4","#C4A8B8","#B8C4A8","#A8C4B8","#C4B8A8","#B8A8C4","#C4C4A8","#A8C4C4","#C4A8A8","#A8A8C4"],l=["EXPERTISE","DECISIONS","CONTEXT","PEOPLE","PROJECTS","PREFERENCES","TONE","BOUNDARIES","EMPLOYMENT"];function i(e){let t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())),n=t.getUTCDay()||7;t.setUTCDate(t.getUTCDate()+4-n);let r=new Date(Date.UTC(t.getUTCFullYear(),0,1)),l=Math.ceil(((t.getTime()-r.getTime())/864e5+1)/7);return`${t.getUTCFullYear()}-W${String(l).padStart(2,"0")}`}async function a(e){let r=n.default.join(process.cwd(),"data","employees",e,"employee.json");try{let e=await t.default.readFile(r,"utf8"),n=JSON.parse(e),l=i(new Date),a=n.weekOf===l?(n.questionsThisWeek??0)+1:1;await t.default.writeFile(r,JSON.stringify({...n,lastActiveAt:new Date().toISOString(),questionsThisWeek:a,weekOf:l},null,2),"utf8")}catch{}}async function s(){let e,a=n.default.join(process.cwd(),"data","employees");try{e=await t.default.readdir(a)}catch{return[]}let s=[];for(let d of e){var u;let e;if(d.startsWith("."))continue;let o=n.default.join(a,d,"employee.json");try{let n=await t.default.readFile(o,"utf8");e=JSON.parse(n)}catch{continue}if(!e?.name||e.pendingProfile)continue;let c=0;for(let e of l)try{(await t.default.readFile(n.default.join(a,d,`${e}.md`),"utf8")).trim().length>16&&c++}catch{}s.push({id:e.id||d,name:e.name,firstName:(u=e.name).trim().split(/\s+/)[0]||u,role:e.role||"—",department:e.department||"General",initials:function(e){let t=e.trim().split(/\s+/).filter(Boolean);return 0===t.length?"??":1===t.length?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}(e.name),avatarColor:function(e){let t=0;for(let n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)|0;return r[Math.abs(t)%r.length]}(e.id||d),integrations:e.integrations??[],twinStatus:c>=6?"ready":c>0?"building":"pending",twinConfidence:c>=6?Math.min(1,c/9):0,profileFilesComplete:c,lastActiveAt:e.lastActiveAt,questionsThisWeek:e.weekOf===i(new Date)?e.questionsThisWeek??0:0,skills:[],orgSkillIds:[],seedModel:"claude-opus-4-7",refreshModel:"claude-sonnet-4-6",ttsVoiceId:"EXAVITQu4vr4xnSDxMaL"})}return s.sort((e,t)=>(t.lastActiveAt??"").localeCompare(e.lastActiveAt??"")),s}e.s(["bumpActivityOnDisk",0,a,"loadEmployeesFromDisk",0,s])},76430,28177,e=>{"use strict";var t=e.i(14747),n=e.i(22734);let r=["CONTEXT.md","EXPERTISE.md","PROJECTS.md","PEOPLE.md","DECISIONS.md","PREFERENCES.md","TONE.md","BOUNDARIES.md","EMPLOYMENT.md"];e.s(["TWIN_FILE_NAMES",0,r],28177);let l=e=>t.default.join(process.cwd(),"data","employees",e),i=e=>t.default.join(l(e),".versions"),a=e=>t.default.join(i(e),"files"),s=e=>t.default.join(i(e),"builds"),u=e=>t.default.join(i(e),"_log.jsonl"),d=(e,n)=>t.default.join(s(e),`${n}.events.jsonl`),o=t.default.join(process.cwd(),"data","active-builds.json");function c(e=new Date){return e.toISOString().replace(/[:.]/g,"-")}function f(e){n.default.mkdirSync(i(e),{recursive:!0}),n.default.mkdirSync(a(e),{recursive:!0}),n.default.mkdirSync(s(e),{recursive:!0})}function m(e,r,l,i,s={}){f(e);let d=c(s.at??new Date),o=t.default.join(a(e),r);n.default.mkdirSync(o,{recursive:!0});let p=t.default.join(o,`${d}.md`),y=d,S=p,g=0;for(;n.default.existsSync(S);)g+=1,y=`${d}-${g}`,S=t.default.join(o,`${y}.md`);n.default.writeFileSync(S,l,"utf-8");let h={ts:y,filename:r,sizeBytes:Buffer.byteLength(l,"utf-8"),source:i,...s.buildId?{buildId:s.buildId}:{},...s.restoredFromTs?{restoredFromTs:s.restoredFromTs}:{}};return n.default.appendFileSync(u(e),JSON.stringify(h)+"\n"),y}function p(e,r,i,a={}){let s=t.default.join(l(e),r),u="";try{u=n.default.readFileSync(s,"utf-8")}catch{return null}return u?m(e,r,u,i,a):null}function y(e,l,i){if(!r.includes(l)||!/^[0-9A-Za-z\-]+Z(-\d+)?$/.test(i))return null;let s=t.default.join(a(e),l,`${i}.md`);try{return n.default.readFileSync(s,"utf-8")}catch{return null}}function S(e){let r;try{r=n.default.readdirSync(s(e))}catch{return[]}return r.filter(e=>e.endsWith(".json")).map(r=>{try{let l=n.default.readFileSync(t.default.join(s(e),r),"utf-8");return JSON.parse(l)}catch{return null}}).filter(e=>null!==e).sort((e,t)=>e.startedAt.localeCompare(t.startedAt)).map((e,t)=>({...e,version:t+1}))}function g(e,r,i){let a=y(e,r,i);if(null===a)return{ok:!1,error:"version not found"};p(e,r,"restore",{restoredFromTs:i});let s=t.default.join(l(e),r);return n.default.mkdirSync(l(e),{recursive:!0}),n.default.writeFileSync(s,a,"utf-8"),{ok:!0}}function h(){try{let e=n.default.readFileSync(o,"utf-8");return JSON.parse(e)}catch{return{}}}function E(e){n.default.mkdirSync(t.default.dirname(o),{recursive:!0}),n.default.writeFileSync(o,JSON.stringify(e,null,2))}e.s(["appendBuildEvent",0,function(e,t,r){f(e),n.default.mkdirSync(s(e),{recursive:!0}),n.default.appendFileSync(d(e,t),JSON.stringify(r)+"\n")},"bumpBuildActivity",0,function(e,t){let n=h(),r=n[e];r&&(n[e]={...r,...t},E(n))},"clearBuildActive",0,function(e){let t=h();delete t[e],E(t)},"getActiveBuild",0,function(e){return h()[e]??null},"listActiveBuilds",0,function(){return Object.values(h())},"listBuilds",0,S,"listFileVersions",0,function(e,t){return(function(e){try{return n.default.readFileSync(u(e),"utf-8").split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e)}catch{return[]}})(e).filter(e=>e.filename===t).map(e=>({ts:e.ts,sizeBytes:e.sizeBytes,source:e.source,buildId:e.buildId})).reverse()},"markBuildActive",0,function(e){let t=h();t[e.employeeId]=e,E(t)},"newBuildId",0,function(e=new Date){return c(e)},"readBuildEvents",0,function(e,t,r=0){let l,i=d(e,t);try{l=n.default.readFileSync(i)}catch{return{events:[],nextOffset:0,sizeBytes:0}}let a=l.byteLength;if(r>=a)return{events:[],nextOffset:a,sizeBytes:a};let s=l.subarray(r).toString("utf-8"),u=s.lastIndexOf("\n");if(u<0)return{events:[],nextOffset:r,sizeBytes:a};let o=u+1;return{events:s.slice(0,o).split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e),nextOffset:r+o,sizeBytes:a}},"readFileVersion",0,y,"recordBuild",0,function(e){f(e.employeeId);let i=new Set(e.writtenFiles),a=[];for(let s of r){let r=t.default.join(l(e.employeeId),s),u="";try{u=n.default.readFileSync(r,"utf-8")}catch{continue}if(!u)continue;let d=m(e.employeeId,s,u,"builder",{buildId:e.buildId});a.push({filename:s,snapshotTs:d,sizeBytes:Buffer.byteLength(u,"utf-8"),written:i.has(s)})}let u={buildId:e.buildId,startedAt:e.startedAt.toISOString(),finishedAt:e.finishedAt.toISOString(),durationMs:e.finishedAt.getTime()-e.startedAt.getTime(),modelUsed:e.modelUsed,costUsd:e.costUsd,turns:e.turns,stoppedReason:e.stoppedReason,...e.ceoContext?{ceoContext:e.ceoContext}:{},activeToolkits:e.activeToolkits,files:a},d=t.default.join(s(e.employeeId),`${e.buildId}.json`);return n.default.writeFileSync(d,JSON.stringify(u,null,2)),u},"restoreBuild",0,function(e,t){let n=S(e).find(e=>e.buildId===t)??null;if(!n)return{ok:!1,error:"build not found",restored:[]};let r=[];for(let t of n.files)g(e,t.filename,t.snapshotTs).ok&&r.push(t.filename);return{ok:!0,restored:r}},"restoreFile",0,g,"snapshotFile",0,m,"snapshotRootFile",0,p],76430)},54975,e=>{"use strict";var t=e.i(22734),n=e.i(14747),r=e.i(76430);let l=n.default.join(process.cwd(),"data","employees"),i=["EXPERTISE.md","TONE.md","CONTEXT.md","DECISIONS.md","PREFERENCES.md","PEOPLE.md","PROJECTS.md","BOUNDARIES.md","EMPLOYMENT.md"];e.s(["hasEmployeeFiles",0,function(e){let r=n.default.join(l,e);try{return t.default.existsSync(r)&&t.default.readdirSync(r).some(e=>e.endsWith(".md"))}catch{return!1}},"readAllEmployeeFiles",0,function(e){let r={};for(let a of i){let i=function(e,r){let i=n.default.join(l,e,r);try{return t.default.readFileSync(i,"utf-8")}catch{return""}}(e,a);i&&(r[a]=i)}return r},"writeEmployeeFileBody",0,function(e,a,s){if(!i.includes(a))return null;let u=n.default.join(l,e);if(!t.default.existsSync(u))return null;let d=n.default.join(u,a),o="";try{o=t.default.readFileSync(d,"utf-8")}catch{}let c=o.match(/^---\s*\n[\s\S]*?\n---\s*\n/),f=(c?c[0]:"")+s.replace(/^\n+/,"").replace(/\s+$/,"")+"\n";if(o)try{(0,r.snapshotFile)(e,a,o,"manual")}catch(t){let e=t instanceof Error?t.message:String(t);console.warn(`[twin-versions] manual-edit snapshot skipped: ${e}`)}return t.default.writeFileSync(d,f,"utf-8"),f}])},50083,e=>{"use strict";var t=e.i(22734),n=e.i(14747);let r=n.default.join(process.cwd(),"data","task-history.jsonl"),l=n.default.join(process.cwd(),"data","task-events");function i(){let e=n.default.dirname(r);t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0}),t.default.existsSync(l)||t.default.mkdirSync(l,{recursive:!0})}function a(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,"_");return n.default.join(l,`${t}.jsonl`)}function s(e={}){try{if(i(),!t.default.existsSync(r))return[];let n=t.default.readFileSync(r,"utf8").split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e).filter(t=>(!e.employeeId||t.employeeId===e.employeeId)&&(!e.status||t.status===e.status)).reverse();return e.limit?n.slice(0,e.limit):n}catch{return[]}}e.s(["appendTaskEvent",0,function(e,n){try{i(),t.default.appendFileSync(a(e),JSON.stringify(n)+"\n","utf8")}catch{}},"appendTaskRun",0,function(e){try{i(),t.default.appendFileSync(r,JSON.stringify(e)+"\n","utf8")}catch{}return e},"readTaskEvents",0,function(e){try{let n=a(e);if(!t.default.existsSync(n))return[];return t.default.readFileSync(n,"utf8").split("\n").filter(Boolean).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e)}catch{return[]}},"readTaskRun",0,function(e){return s().find(t=>t.id===e)??null},"readTaskRuns",0,s,"updateTaskRun",0,function(e,n){try{if(i(),!t.default.existsSync(r))return null;let l=t.default.readFileSync(r,"utf8"),a=null,s=l.split("\n").filter(Boolean).map(t=>{try{let r=JSON.parse(t);if(r.id===e)return a={...r,...n},JSON.stringify(a);return t}catch{return t}});return t.default.writeFileSync(r,s.join("\n")+"\n","utf8"),a}catch{return null}}])},30887,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0gqp_8t._.js"].map(t=>e.l(t))).then(()=>t(41379)))},23970,e=>{e.v(e=>Promise.resolve().then(()=>e(22734)))},89793,e=>{e.v(e=>Promise.resolve().then(()=>e(14747)))}];
5
+
6
+ //# sourceMappingURL=%5Broot-of-the-server%5D__12zipk.._.js.map