@alook/app 0.0.117 → 0.0.119
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.
- package/bundled/email-worker/index.js +219 -207
- package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
- package/bundled/web/.open-next/assets/BUILD_ID +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{0quc_lvg3c4wu.js → 0-xdwhncj5-wf.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/018pin4~.wsr7.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/028fjo.mmn73u.js +7 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{0tw05tsn2c~1m.js → 02j9o2uuj_oc8.js} +15 -15
- package/bundled/web/.open-next/assets/_next/static/chunks/06-zhqf9ypqns.css +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0d3l0nm-qcu53.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0fw7efx7cy195.js +62 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0kk1judky0sd5.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{12bd-kqbplx9m.js → 0nj24~vvlulgh.js} +3 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/0r8zw56k96o0q.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{042a4jeudcp22.js → 0u64son5-k77n.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{110sy1mmp9v~7.js → 0x14heey9lt7d.js} +3 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/0xaxg3kh619o8.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0z4n3xpn4dp13.js +63 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0~r1l8ej-9p~h.js +3 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/110epmmtnkv9w.js +3 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{118ani.qejoy9.js → 12tz.n~x91ghm.js} +1 -1
- package/bundled/web/.open-next/cache/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/_global-error.cache +1 -1
- package/bundled/web/.open-next/cache/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/_not-found.cache +1 -1
- package/bundled/web/.open-next/cache/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/device.cache +1 -1
- package/bundled/web/.open-next/cache/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/privacy.cache +1 -1
- package/bundled/web/.open-next/cache/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/sitemap.xml.cache +1 -1
- package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
- package/bundled/web/.open-next/cloudflare/init.js +1 -1
- package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
- package/bundled/web/.open-next/middleware/handler.mjs +8 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/app-path-routes-manifest.json +1 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/routes-manifest.json +8 -17
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/chat-init/route.js +6 -7
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/[id]/whitelist/route.js +7 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/agents/route.js +4 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/active-task/route.js +7 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/init/route.js +6 -7
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/messages/route.js +8 -9
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/{conversations/[id]/buffered-messages/[messageId] → daemon/conversations/[id]/messages}/route.js +8 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/conversations/[id]/messages/route_client-reference-manifest.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/register/route.js +3 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/sweep/route.js +5 -7
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/complete/route.js +6 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/fail/route.js +6 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/messages/route.js +3 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/start/route.js +6 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/[taskId]/supersede/route.js +6 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/daemon/tasks/poll/route.js +5 -7
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/email/notify/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/[id]/comments/route.js +7 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/[id]/route.js +7 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/issues/route.js +7 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/studios/route.js +7 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/tasks/[id]/retry/route.js +7 -8
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/device/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page/react-loadable-manifest.json +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app-paths-manifest.json +1 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/05hd_server_app_api_daemon_conversations_[id]_messages_route_actions_0.iz1u1.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0-63.yt._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__010~hln._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__01pm5bg._.js +58 -70
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__08oq0ro._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0arm85_._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0gp~w40._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{[root-of-the-server]__088o0os._.js → [root-of-the-server]__0hz_j32._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0i0ukpl._.js +58 -70
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0j5fdu2._.js +58 -70
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0syz.lm._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/{[root-of-the-server]__0sf_9ve._.js → [root-of-the-server]__0vi97bn._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0x8e1~2._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +39 -44
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0.gkbx8._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_00-p7_0._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_03gwxos._.js +5 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_03t_17c._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_06mrt6t._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08xh_f8._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09ivzvb._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0_21cs4._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0huk3rm._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0jj44iu._.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0l1m9wf._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0m4uqwa._.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0mibx4k._.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ow_nxn._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0r.02hx._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0thudj4._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0wbaduy._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0yzq1gx._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0zyolvu._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12-_-5g._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12-v7sn._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0wkbw.-._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__04mf.th._.js +54 -66
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__10nperb._.js → [root-of-the-server]__0_3cckh._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0e65njz._.js +54 -66
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0i8fzgr._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +39 -44
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0bt_5pi._.js → _055~~zq._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0bti.y.._.js → _05kh57s._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0iiagkx._.js → _09rh54w._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0_.06ux._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0asq_j3._.js +65 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0im0q-g._.js +9 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0owr40y._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0r_ppn9._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0vtcof8._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_04xzk.p._.js → node_modules__pnpm_0-7t060._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0y6wy4c._.js → node_modules__pnpm_0emry~3._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_02vp72~._.js → node_modules__pnpm_0lqu_u4._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0k_ahqs._.js → node_modules__pnpm_0ml9n-.._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0t783t_._.js → node_modules__pnpm_0qmml4f._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0j~49hk._.js → node_modules__pnpm_0vztztj._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0.jtjpe._.js → node_modules__pnpm_0wu1nx-._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0i183cf._.js → node_modules__pnpm_11id~ub._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_0liq_10._.js +54 -66
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_agents_[id]_meetings_page_tsx_073~u~-._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_home_home-page_tsx_0to84tv._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_lib_api_ts_0uf2r1p._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +492 -534
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +1025 -841
- package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +5 -5
- package/bundled/web/migrations/0037_inbox_unread_table.sql +43 -0
- package/bundled/web/wrangler.toml +1 -1
- package/bundled/ws-do/index.js +174 -174
- package/dist/cli/index.js +368 -68
- package/dist/cli/session-runner.js +68 -9
- package/dist/index.js +23 -2
- package/package.json +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0_7t-ouonb08v.js +0 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/0fme52sqdtk.p.js +0 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/0h5tl-yh9wijv.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0j5gd-ljh6ao_.js +0 -62
- package/bundled/web/.open-next/assets/_next/static/chunks/0lus0pm79r-7o.js +0 -7
- package/bundled/web/.open-next/assets/_next/static/chunks/0m-e05qz5c6a..js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0s-pai_2464mg.css +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0u8cu1dfn9~01.js +0 -63
- package/bundled/web/.open-next/assets/_next/static/chunks/0xg02n4bo4.1m.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/18b_fy7re_rp..js +0 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/[messageId]/route_client-reference-manifest.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/route.js +0 -17
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/conversations/[id]/buffered-messages/route_client-reference-manifest.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/00~o_app_api_conversations_[id]_buffered-messages_[messageId]_route_actions_0e338dt.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/05hd_server_app_api_conversations_[id]_buffered-messages_route_actions_0mf5n8a.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0d0_qit._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_00_9pus._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_02.f31i._.js +0 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_025fm6r._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_03ju0js._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_06imn.m._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_07hpwgw._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08y2ta9._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0_kfe3c._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ahwrti._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0b4pq8.._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0d6rwbr._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0gqpz7w._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h-fa04._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0il0z_b._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0l1rr.g._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0p_10om._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0r04wj_._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ri6_n4._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0zk1_mu._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0zt3sdk._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_102qunz._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12i.jt7._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_13lep.0._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_web_src_lib_services_0yvxfxt._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_004q5tu._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0g~0u9h._.js +0 -65
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0kv_hld._.js +0 -9
- /package/bundled/web/.open-next/assets/_next/static/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/_buildManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/_clientMiddlewareManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/_ssgManifest.js +0 -0
- /package/bundled/web/.open-next/cache/{FjNKGEvkF0L0MRIiOb2vT → bwwUBlSnuSEyz1RNfFbW9}/robots.txt.cache +0 -0
package/bundled/ws-do/index.js
CHANGED
|
@@ -16245,6 +16245,10 @@ var CreateAgentLinkRequestSchema = external_exports.object({
|
|
|
16245
16245
|
var UpdateAgentLinkRequestSchema = external_exports.object({
|
|
16246
16246
|
instruction: external_exports.string()
|
|
16247
16247
|
});
|
|
16248
|
+
var UpsertAgentLinkRequestSchema = external_exports.object({
|
|
16249
|
+
target_agent_id: external_exports.string().min(1, "target_agent_id is required"),
|
|
16250
|
+
instruction: external_exports.string()
|
|
16251
|
+
});
|
|
16248
16252
|
var AddWhitelistRequestSchema = external_exports.object({
|
|
16249
16253
|
email: external_exports.string().email()
|
|
16250
16254
|
});
|
|
@@ -16278,8 +16282,9 @@ var CreateConversationRequestSchema = external_exports.object({
|
|
|
16278
16282
|
var CreateMessageRequestSchema = external_exports.object({
|
|
16279
16283
|
content: external_exports.string().min(1, "content is required")
|
|
16280
16284
|
});
|
|
16281
|
-
var
|
|
16282
|
-
content: external_exports.string().min(1, "content is required")
|
|
16285
|
+
var AgentDmRequestSchema = external_exports.object({
|
|
16286
|
+
content: external_exports.string().min(1, "content is required"),
|
|
16287
|
+
task_id: external_exports.string().min(1).optional()
|
|
16283
16288
|
});
|
|
16284
16289
|
var EmailAttachmentSchema = external_exports.object({
|
|
16285
16290
|
key: external_exports.string().min(1),
|
|
@@ -22462,6 +22467,7 @@ __export(schema_exports, {
|
|
|
22462
22467
|
conversationMap: () => conversationMap,
|
|
22463
22468
|
conversationReadState: () => conversationReadState,
|
|
22464
22469
|
emails: () => emails,
|
|
22470
|
+
inboxUnread: () => inboxUnread,
|
|
22465
22471
|
issue: () => issue2,
|
|
22466
22472
|
issueComment: () => issueComment,
|
|
22467
22473
|
machine: () => machine,
|
|
@@ -23132,6 +23138,26 @@ var agentSkill = sqliteTable(
|
|
|
23132
23138
|
}).onDelete("cascade")
|
|
23133
23139
|
]
|
|
23134
23140
|
);
|
|
23141
|
+
var inboxUnread = sqliteTable(
|
|
23142
|
+
"inbox_unread",
|
|
23143
|
+
{
|
|
23144
|
+
id: text("id").primaryKey().$defaultFn(() => nanoid3()),
|
|
23145
|
+
conversationId: text("conversation_id").notNull().references(() => conversation.id, { onDelete: "cascade" }),
|
|
23146
|
+
userId: text("user_id").notNull().references(() => user.id, { onDelete: "cascade" }),
|
|
23147
|
+
workspaceId: text("workspace_id").notNull(),
|
|
23148
|
+
agentId: text("agent_id").notNull(),
|
|
23149
|
+
taskId: text("task_id").notNull(),
|
|
23150
|
+
taskType: text("task_type").notNull(),
|
|
23151
|
+
taskStatus: text("task_status").notNull(),
|
|
23152
|
+
taskPrompt: text("task_prompt"),
|
|
23153
|
+
completedAt: text("completed_at").notNull(),
|
|
23154
|
+
latestMessageId: text("latest_message_id")
|
|
23155
|
+
},
|
|
23156
|
+
(t) => [
|
|
23157
|
+
unique("inbox_unread_conv_user").on(t.conversationId, t.userId),
|
|
23158
|
+
index("idx_inbox_unread_user_ws").on(t.userId, t.workspaceId, t.taskType, t.completedAt)
|
|
23159
|
+
]
|
|
23160
|
+
);
|
|
23135
23161
|
|
|
23136
23162
|
// ../shared/src/db/index.ts
|
|
23137
23163
|
function createDb(d1) {
|
|
@@ -23708,19 +23734,12 @@ __name(hasPreviousConversations, "hasPreviousConversations");
|
|
|
23708
23734
|
// ../shared/src/db/queries/message.ts
|
|
23709
23735
|
var message_exports = {};
|
|
23710
23736
|
__export(message_exports, {
|
|
23711
|
-
activateNextBufferedMessage: () => activateNextBufferedMessage,
|
|
23712
|
-
countBufferedMessages: () => countBufferedMessages,
|
|
23713
|
-
createBufferedMessage: () => createBufferedMessage,
|
|
23714
23737
|
createMessage: () => createMessage,
|
|
23715
|
-
deleteAllBufferedMessages: () => deleteAllBufferedMessages,
|
|
23716
|
-
deleteBufferedMessage: () => deleteBufferedMessage,
|
|
23717
23738
|
getActiveMessageCount: () => getActiveMessageCount,
|
|
23718
23739
|
getMessage: () => getMessage,
|
|
23719
23740
|
getNewestMessageId: () => getNewestMessageId,
|
|
23720
|
-
listBufferedMessages: () => listBufferedMessages,
|
|
23721
23741
|
listMessages: () => listMessages,
|
|
23722
23742
|
listMessagesAroundTask: () => listMessagesAroundTask,
|
|
23723
|
-
revertToBuffered: () => revertToBuffered,
|
|
23724
23743
|
updateMessageTaskId: () => updateMessageTaskId
|
|
23725
23744
|
});
|
|
23726
23745
|
async function createMessage(db, data) {
|
|
@@ -23782,69 +23801,6 @@ async function getMessage(db, id) {
|
|
|
23782
23801
|
return rows[0] ?? null;
|
|
23783
23802
|
}
|
|
23784
23803
|
__name(getMessage, "getMessage");
|
|
23785
|
-
async function createBufferedMessage(db, data) {
|
|
23786
|
-
const rows = await db.insert(message).values({
|
|
23787
|
-
conversationId: data.conversationId,
|
|
23788
|
-
role: "user",
|
|
23789
|
-
content: data.content,
|
|
23790
|
-
status: "buffered",
|
|
23791
|
-
attachmentIds: data.attachmentIds ?? null
|
|
23792
|
-
}).returning();
|
|
23793
|
-
return rows[0];
|
|
23794
|
-
}
|
|
23795
|
-
__name(createBufferedMessage, "createBufferedMessage");
|
|
23796
|
-
async function listBufferedMessages(db, conversationId) {
|
|
23797
|
-
return db.select().from(message).where(
|
|
23798
|
-
and(
|
|
23799
|
-
eq(message.conversationId, conversationId),
|
|
23800
|
-
eq(message.status, "buffered")
|
|
23801
|
-
)
|
|
23802
|
-
).orderBy(asc(message.createdAt), asc(message.id));
|
|
23803
|
-
}
|
|
23804
|
-
__name(listBufferedMessages, "listBufferedMessages");
|
|
23805
|
-
async function activateNextBufferedMessage(db, conversationId) {
|
|
23806
|
-
const candidates = await db.select().from(message).where(
|
|
23807
|
-
and(
|
|
23808
|
-
eq(message.conversationId, conversationId),
|
|
23809
|
-
eq(message.status, "buffered")
|
|
23810
|
-
)
|
|
23811
|
-
).orderBy(asc(message.createdAt), asc(message.id)).limit(1);
|
|
23812
|
-
if (candidates.length === 0) return null;
|
|
23813
|
-
const target = candidates[0];
|
|
23814
|
-
const updated = await db.update(message).set({ status: "active", createdAt: new Date(Date.now() + 1e3).toISOString() }).where(and(eq(message.id, target.id), eq(message.status, "buffered"))).returning();
|
|
23815
|
-
return updated[0] ?? null;
|
|
23816
|
-
}
|
|
23817
|
-
__name(activateNextBufferedMessage, "activateNextBufferedMessage");
|
|
23818
|
-
async function revertToBuffered(db, id) {
|
|
23819
|
-
const rows = await db.update(message).set({ status: "buffered" }).where(and(eq(message.id, id), eq(message.status, "active"))).returning();
|
|
23820
|
-
return rows[0] ?? null;
|
|
23821
|
-
}
|
|
23822
|
-
__name(revertToBuffered, "revertToBuffered");
|
|
23823
|
-
async function deleteBufferedMessage(db, id) {
|
|
23824
|
-
const rows = await db.delete(message).where(and(eq(message.id, id), eq(message.status, "buffered"))).returning();
|
|
23825
|
-
return rows[0] ?? null;
|
|
23826
|
-
}
|
|
23827
|
-
__name(deleteBufferedMessage, "deleteBufferedMessage");
|
|
23828
|
-
async function deleteAllBufferedMessages(db, conversationId) {
|
|
23829
|
-
const rows = await db.delete(message).where(
|
|
23830
|
-
and(
|
|
23831
|
-
eq(message.conversationId, conversationId),
|
|
23832
|
-
eq(message.status, "buffered")
|
|
23833
|
-
)
|
|
23834
|
-
).returning();
|
|
23835
|
-
return rows;
|
|
23836
|
-
}
|
|
23837
|
-
__name(deleteAllBufferedMessages, "deleteAllBufferedMessages");
|
|
23838
|
-
async function countBufferedMessages(db, conversationId) {
|
|
23839
|
-
const rows = await db.select({ count: count3(message.id) }).from(message).where(
|
|
23840
|
-
and(
|
|
23841
|
-
eq(message.conversationId, conversationId),
|
|
23842
|
-
eq(message.status, "buffered")
|
|
23843
|
-
)
|
|
23844
|
-
);
|
|
23845
|
-
return rows[0]?.count ?? 0;
|
|
23846
|
-
}
|
|
23847
|
-
__name(countBufferedMessages, "countBufferedMessages");
|
|
23848
23804
|
async function updateMessageTaskId(db, messageId, taskId) {
|
|
23849
23805
|
await db.update(message).set({ taskId }).where(eq(message.id, messageId));
|
|
23850
23806
|
}
|
|
@@ -24576,9 +24532,9 @@ __name(getTraceTree, "getTraceTree");
|
|
|
24576
24532
|
// ../shared/src/db/queries/task-message.ts
|
|
24577
24533
|
var task_message_exports = {};
|
|
24578
24534
|
__export(task_message_exports, {
|
|
24579
|
-
countTextMessagesByTaskIds: () => countTextMessagesByTaskIds,
|
|
24580
24535
|
createTaskMessage: () => createTaskMessage,
|
|
24581
24536
|
deleteTaskMessages: () => deleteTaskMessages,
|
|
24537
|
+
listTaskErrorMessages: () => listTaskErrorMessages,
|
|
24582
24538
|
listTaskMessages: () => listTaskMessages,
|
|
24583
24539
|
listTaskMessagesSince: () => listTaskMessagesSince
|
|
24584
24540
|
});
|
|
@@ -24614,6 +24570,27 @@ async function listTaskMessages(db, taskId, workspaceId) {
|
|
|
24614
24570
|
return db.select().from(taskMessage).where(and(eq(taskMessage.taskId, taskId), notInArray(taskMessage.type, ["tool-result", "tool-use", "thinking"]))).orderBy(asc(taskMessage.seq));
|
|
24615
24571
|
}
|
|
24616
24572
|
__name(listTaskMessages, "listTaskMessages");
|
|
24573
|
+
async function listTaskErrorMessages(db, taskId, workspaceId) {
|
|
24574
|
+
return db.select({
|
|
24575
|
+
id: taskMessage.id,
|
|
24576
|
+
taskId: taskMessage.taskId,
|
|
24577
|
+
seq: taskMessage.seq,
|
|
24578
|
+
type: taskMessage.type,
|
|
24579
|
+
tool: taskMessage.tool,
|
|
24580
|
+
content: taskMessage.content,
|
|
24581
|
+
callId: taskMessage.callId,
|
|
24582
|
+
input: taskMessage.input,
|
|
24583
|
+
output: taskMessage.output,
|
|
24584
|
+
createdAt: taskMessage.createdAt
|
|
24585
|
+
}).from(taskMessage).innerJoin(agentTaskQueue, eq(taskMessage.taskId, agentTaskQueue.id)).where(
|
|
24586
|
+
and(
|
|
24587
|
+
eq(taskMessage.taskId, taskId),
|
|
24588
|
+
eq(agentTaskQueue.workspaceId, workspaceId),
|
|
24589
|
+
eq(taskMessage.type, "error")
|
|
24590
|
+
)
|
|
24591
|
+
).orderBy(asc(taskMessage.seq));
|
|
24592
|
+
}
|
|
24593
|
+
__name(listTaskErrorMessages, "listTaskErrorMessages");
|
|
24617
24594
|
async function listTaskMessagesSince(db, taskId, afterSeq) {
|
|
24618
24595
|
return db.select().from(taskMessage).where(and(eq(taskMessage.taskId, taskId), gt(taskMessage.seq, afterSeq), notInArray(taskMessage.type, ["tool-result", "tool-use", "thinking"]))).orderBy(asc(taskMessage.seq));
|
|
24619
24596
|
}
|
|
@@ -24622,42 +24599,6 @@ async function deleteTaskMessages(db, taskId) {
|
|
|
24622
24599
|
await db.delete(taskMessage).where(eq(taskMessage.taskId, taskId));
|
|
24623
24600
|
}
|
|
24624
24601
|
__name(deleteTaskMessages, "deleteTaskMessages");
|
|
24625
|
-
var SQLITE_MAX_PARAMS = 999;
|
|
24626
|
-
var FIXED_PARAMS = 2;
|
|
24627
|
-
async function countTextMessagesByTaskIds(db, taskIds, workspaceId) {
|
|
24628
|
-
if (taskIds.length === 0) return [];
|
|
24629
|
-
const chunkSize = SQLITE_MAX_PARAMS - FIXED_PARAMS;
|
|
24630
|
-
if (taskIds.length <= chunkSize) {
|
|
24631
|
-
const rows = await db.select({
|
|
24632
|
-
taskId: taskMessage.taskId,
|
|
24633
|
-
count: count3(taskMessage.id)
|
|
24634
|
-
}).from(taskMessage).innerJoin(agentTaskQueue, eq(taskMessage.taskId, agentTaskQueue.id)).where(
|
|
24635
|
-
and(
|
|
24636
|
-
inArray(taskMessage.taskId, taskIds),
|
|
24637
|
-
eq(agentTaskQueue.workspaceId, workspaceId),
|
|
24638
|
-
eq(taskMessage.type, "text")
|
|
24639
|
-
)
|
|
24640
|
-
).groupBy(taskMessage.taskId);
|
|
24641
|
-
return rows.map((r) => ({ taskId: r.taskId, count: r.count }));
|
|
24642
|
-
}
|
|
24643
|
-
const results = [];
|
|
24644
|
-
for (let i = 0; i < taskIds.length; i += chunkSize) {
|
|
24645
|
-
const chunk = taskIds.slice(i, i + chunkSize);
|
|
24646
|
-
const rows = await db.select({
|
|
24647
|
-
taskId: taskMessage.taskId,
|
|
24648
|
-
count: count3(taskMessage.id)
|
|
24649
|
-
}).from(taskMessage).innerJoin(agentTaskQueue, eq(taskMessage.taskId, agentTaskQueue.id)).where(
|
|
24650
|
-
and(
|
|
24651
|
-
inArray(taskMessage.taskId, chunk),
|
|
24652
|
-
eq(agentTaskQueue.workspaceId, workspaceId),
|
|
24653
|
-
eq(taskMessage.type, "text")
|
|
24654
|
-
)
|
|
24655
|
-
).groupBy(taskMessage.taskId);
|
|
24656
|
-
results.push(...rows.map((r) => ({ taskId: r.taskId, count: r.count })));
|
|
24657
|
-
}
|
|
24658
|
-
return results;
|
|
24659
|
-
}
|
|
24660
|
-
__name(countTextMessagesByTaskIds, "countTextMessagesByTaskIds");
|
|
24661
24602
|
|
|
24662
24603
|
// ../shared/src/db/queries/machine.ts
|
|
24663
24604
|
var machine_exports = {};
|
|
@@ -25960,12 +25901,14 @@ var agent_link_exports = {};
|
|
|
25960
25901
|
__export(agent_link_exports, {
|
|
25961
25902
|
create: () => create,
|
|
25962
25903
|
getAllColleaguesForWorkspace: () => getAllColleaguesForWorkspace,
|
|
25904
|
+
getByPair: () => getByPair,
|
|
25963
25905
|
getColleaguesForAgent: () => getColleaguesForAgent,
|
|
25964
25906
|
getColleaguesForAgents: () => getColleaguesForAgents,
|
|
25965
25907
|
listByAgent: () => listByAgent,
|
|
25966
25908
|
listByWorkspace: () => listByWorkspace,
|
|
25967
25909
|
remove: () => remove,
|
|
25968
|
-
update: () => update
|
|
25910
|
+
update: () => update,
|
|
25911
|
+
upsertByPair: () => upsertByPair
|
|
25969
25912
|
});
|
|
25970
25913
|
async function listByWorkspace(db, workspaceId, opts) {
|
|
25971
25914
|
let q = db.select().from(agentLink).where(eq(agentLink.workspaceId, workspaceId)).$dynamic();
|
|
@@ -26000,6 +25943,36 @@ async function create(db, data) {
|
|
|
26000
25943
|
return rows[0];
|
|
26001
25944
|
}
|
|
26002
25945
|
__name(create, "create");
|
|
25946
|
+
async function getByPair(db, workspaceId, a, b) {
|
|
25947
|
+
const [sourceAgentId, targetAgentId] = a > b ? [b, a] : [a, b];
|
|
25948
|
+
const rows = await db.select().from(agentLink).where(
|
|
25949
|
+
and(
|
|
25950
|
+
eq(agentLink.workspaceId, workspaceId),
|
|
25951
|
+
eq(agentLink.sourceAgentId, sourceAgentId),
|
|
25952
|
+
eq(agentLink.targetAgentId, targetAgentId)
|
|
25953
|
+
)
|
|
25954
|
+
);
|
|
25955
|
+
return rows[0] ?? null;
|
|
25956
|
+
}
|
|
25957
|
+
__name(getByPair, "getByPair");
|
|
25958
|
+
async function upsertByPair(db, data) {
|
|
25959
|
+
const existing = await getByPair(
|
|
25960
|
+
db,
|
|
25961
|
+
data.workspaceId,
|
|
25962
|
+
data.sourceAgentId,
|
|
25963
|
+
data.targetAgentId
|
|
25964
|
+
);
|
|
25965
|
+
if (existing) {
|
|
25966
|
+
const updated = await update(db, existing.id, data.workspaceId, {
|
|
25967
|
+
instruction: data.instruction
|
|
25968
|
+
});
|
|
25969
|
+
if (!updated) return { row: existing, created: false };
|
|
25970
|
+
return { row: updated, created: false };
|
|
25971
|
+
}
|
|
25972
|
+
const created = await create(db, data);
|
|
25973
|
+
return { row: created, created: true };
|
|
25974
|
+
}
|
|
25975
|
+
__name(upsertByPair, "upsertByPair");
|
|
26003
25976
|
async function update(db, id, workspaceId, data) {
|
|
26004
25977
|
const rows = await db.update(agentLink).set({
|
|
26005
25978
|
instruction: data.instruction,
|
|
@@ -26108,68 +26081,103 @@ __name(getAllColleaguesForWorkspace, "getAllColleaguesForWorkspace");
|
|
|
26108
26081
|
// ../shared/src/db/queries/inbox.ts
|
|
26109
26082
|
var inbox_exports = {};
|
|
26110
26083
|
__export(inbox_exports, {
|
|
26084
|
+
deleteAllUnreadEntries: () => deleteAllUnreadEntries,
|
|
26085
|
+
deleteUnreadEntry: () => deleteUnreadEntry,
|
|
26086
|
+
findLatestAssistantMessageId: () => findLatestAssistantMessageId,
|
|
26111
26087
|
getUnreadCount: () => getUnreadCount,
|
|
26088
|
+
isUnreadEligible: () => isUnreadEligible,
|
|
26112
26089
|
listUnreadConversations: () => listUnreadConversations,
|
|
26113
26090
|
markAllConversationsRead: () => markAllConversationsRead,
|
|
26114
|
-
markConversationRead: () => markConversationRead
|
|
26115
|
-
|
|
26091
|
+
markConversationRead: () => markConversationRead,
|
|
26092
|
+
updateUnreadLatestMessage: () => updateUnreadLatestMessage,
|
|
26093
|
+
upsertUnreadEntry: () => upsertUnreadEntry
|
|
26094
|
+
});
|
|
26095
|
+
var UNREAD_ELIGIBLE_TYPES = ["user_dm_message", "email_notification", "calendar_event"];
|
|
26096
|
+
function isUnreadEligible(task) {
|
|
26097
|
+
if (task.parentTaskId != null) return false;
|
|
26098
|
+
if (task.traceId == null) return false;
|
|
26099
|
+
if (!UNREAD_ELIGIBLE_TYPES.includes(task.type)) return false;
|
|
26100
|
+
if (task.type === "email_notification" && task.context?.isInternal === true) return false;
|
|
26101
|
+
return true;
|
|
26102
|
+
}
|
|
26103
|
+
__name(isUnreadEligible, "isUnreadEligible");
|
|
26104
|
+
async function upsertUnreadEntry(db, entry) {
|
|
26105
|
+
const id = nanoid3();
|
|
26106
|
+
await db.run(sql`
|
|
26107
|
+
INSERT INTO inbox_unread (id, conversation_id, user_id, workspace_id, agent_id, task_id, task_type, task_status, task_prompt, completed_at, latest_message_id)
|
|
26108
|
+
VALUES (${id}, ${entry.conversationId}, ${entry.userId}, ${entry.workspaceId}, ${entry.agentId}, ${entry.taskId}, ${entry.taskType}, ${entry.taskStatus}, ${entry.taskPrompt}, ${entry.completedAt}, ${entry.latestMessageId})
|
|
26109
|
+
ON CONFLICT (conversation_id, user_id) DO UPDATE SET
|
|
26110
|
+
agent_id = excluded.agent_id,
|
|
26111
|
+
task_id = excluded.task_id,
|
|
26112
|
+
task_type = excluded.task_type,
|
|
26113
|
+
task_status = excluded.task_status,
|
|
26114
|
+
task_prompt = excluded.task_prompt,
|
|
26115
|
+
completed_at = excluded.completed_at,
|
|
26116
|
+
latest_message_id = excluded.latest_message_id
|
|
26117
|
+
WHERE excluded.completed_at >= inbox_unread.completed_at
|
|
26118
|
+
`);
|
|
26119
|
+
}
|
|
26120
|
+
__name(upsertUnreadEntry, "upsertUnreadEntry");
|
|
26121
|
+
async function updateUnreadLatestMessage(db, conversationId, userId, messageId) {
|
|
26122
|
+
await db.run(sql`
|
|
26123
|
+
UPDATE inbox_unread
|
|
26124
|
+
SET latest_message_id = ${messageId}
|
|
26125
|
+
WHERE conversation_id = ${conversationId} AND user_id = ${userId}
|
|
26126
|
+
`);
|
|
26127
|
+
}
|
|
26128
|
+
__name(updateUnreadLatestMessage, "updateUnreadLatestMessage");
|
|
26129
|
+
async function deleteUnreadEntry(db, conversationId, userId) {
|
|
26130
|
+
await db.run(sql`
|
|
26131
|
+
DELETE FROM inbox_unread
|
|
26132
|
+
WHERE conversation_id = ${conversationId} AND user_id = ${userId}
|
|
26133
|
+
`);
|
|
26134
|
+
}
|
|
26135
|
+
__name(deleteUnreadEntry, "deleteUnreadEntry");
|
|
26136
|
+
async function deleteAllUnreadEntries(db, userId, workspaceId) {
|
|
26137
|
+
await db.run(sql`
|
|
26138
|
+
DELETE FROM inbox_unread
|
|
26139
|
+
WHERE user_id = ${userId} AND workspace_id = ${workspaceId}
|
|
26140
|
+
`);
|
|
26141
|
+
}
|
|
26142
|
+
__name(deleteAllUnreadEntries, "deleteAllUnreadEntries");
|
|
26143
|
+
async function findLatestAssistantMessageId(db, conversationId) {
|
|
26144
|
+
const rows = await db.all(sql`
|
|
26145
|
+
SELECT id FROM message
|
|
26146
|
+
WHERE conversation_id = ${conversationId}
|
|
26147
|
+
AND role = 'assistant'
|
|
26148
|
+
AND status = 'active'
|
|
26149
|
+
ORDER BY created_at DESC
|
|
26150
|
+
LIMIT 1
|
|
26151
|
+
`);
|
|
26152
|
+
return rows[0]?.id ?? null;
|
|
26153
|
+
}
|
|
26154
|
+
__name(findLatestAssistantMessageId, "findLatestAssistantMessageId");
|
|
26116
26155
|
async function listUnreadConversations(db, userId, workspaceId, opts) {
|
|
26117
26156
|
const limit = opts?.limit ?? 30;
|
|
26118
|
-
const beforeClause = opts?.before ? sql`AND
|
|
26157
|
+
const beforeClause = opts?.before ? sql`AND u.completed_at < ${opts.before}` : sql``;
|
|
26119
26158
|
const types = opts?.types?.length ? opts.types : ["user_dm_message"];
|
|
26120
26159
|
const typePlaceholders = sql.join(types.map((t) => sql`${t}`), sql`, `);
|
|
26121
26160
|
const rows = await db.all(sql`
|
|
26122
|
-
SELECT
|
|
26123
|
-
|
|
26161
|
+
SELECT u.conversation_id AS id,
|
|
26162
|
+
u.agent_id,
|
|
26124
26163
|
c.title,
|
|
26125
26164
|
c.channel,
|
|
26126
|
-
|
|
26127
|
-
|
|
26128
|
-
|
|
26165
|
+
m.content AS latest_response,
|
|
26166
|
+
u.completed_at AS latest_response_at,
|
|
26167
|
+
u.task_prompt AS root_prompt,
|
|
26129
26168
|
a.name AS agent_name,
|
|
26130
26169
|
a.avatar_url AS agent_avatar_url,
|
|
26131
|
-
|
|
26132
|
-
|
|
26133
|
-
FROM
|
|
26134
|
-
INNER JOIN conversation c
|
|
26135
|
-
|
|
26136
|
-
|
|
26137
|
-
|
|
26138
|
-
|
|
26139
|
-
|
|
26140
|
-
INNER JOIN message m_latest
|
|
26141
|
-
ON m_latest.conversation_id = c.id
|
|
26142
|
-
AND m_latest.role = 'assistant'
|
|
26143
|
-
AND m_latest.status = 'active'
|
|
26144
|
-
AND m_latest.id = (
|
|
26145
|
-
SELECT id FROM message
|
|
26146
|
-
WHERE conversation_id = c.id
|
|
26147
|
-
AND role = 'assistant'
|
|
26148
|
-
AND status = 'active'
|
|
26149
|
-
ORDER BY created_at DESC LIMIT 1
|
|
26150
|
-
)
|
|
26151
|
-
LEFT JOIN agent a
|
|
26152
|
-
ON a.id = c.agent_id AND a.workspace_id = c.workspace_id
|
|
26153
|
-
WHERE t.workspace_id = ${workspaceId}
|
|
26154
|
-
AND t.parent_task_id IS NULL
|
|
26155
|
-
AND t.trace_id IS NOT NULL
|
|
26156
|
-
AND t.type IN (${typePlaceholders})
|
|
26157
|
-
AND t.status IN ('completed', 'failed')
|
|
26158
|
-
AND t.completed_at > COALESCE(crs.last_read_at, '1970-01-01T00:00:00.000Z')
|
|
26159
|
-
AND NOT (t.type = 'email_notification' AND COALESCE(json_extract(t.context, '$.isInternal'), 0) = 1)
|
|
26160
|
-
AND t.id = (
|
|
26161
|
-
SELECT id FROM agent_task_queue
|
|
26162
|
-
WHERE workspace_id = ${workspaceId}
|
|
26163
|
-
AND conversation_id = c.id
|
|
26164
|
-
AND parent_task_id IS NULL
|
|
26165
|
-
AND trace_id IS NOT NULL
|
|
26166
|
-
AND type IN (${typePlaceholders})
|
|
26167
|
-
AND status IN ('completed', 'failed')
|
|
26168
|
-
AND NOT (type = 'email_notification' AND COALESCE(json_extract(context, '$.isInternal'), 0) = 1)
|
|
26169
|
-
ORDER BY completed_at DESC LIMIT 1
|
|
26170
|
-
)
|
|
26170
|
+
u.task_status AS root_task_status,
|
|
26171
|
+
u.task_type AS root_task_type
|
|
26172
|
+
FROM inbox_unread u
|
|
26173
|
+
INNER JOIN conversation c ON c.id = u.conversation_id
|
|
26174
|
+
LEFT JOIN message m ON m.id = u.latest_message_id
|
|
26175
|
+
LEFT JOIN agent a ON a.id = u.agent_id AND a.workspace_id = u.workspace_id
|
|
26176
|
+
WHERE u.user_id = ${userId}
|
|
26177
|
+
AND u.workspace_id = ${workspaceId}
|
|
26178
|
+
AND u.task_type IN (${typePlaceholders})
|
|
26171
26179
|
${beforeClause}
|
|
26172
|
-
ORDER BY
|
|
26180
|
+
ORDER BY u.completed_at DESC
|
|
26173
26181
|
LIMIT ${limit + 1}
|
|
26174
26182
|
`);
|
|
26175
26183
|
const hasMore = rows.length > limit;
|
|
@@ -26181,21 +26189,11 @@ async function getUnreadCount(db, userId, workspaceId, types) {
|
|
|
26181
26189
|
const validTypes = types?.length ? types : ["user_dm_message"];
|
|
26182
26190
|
const typePlaceholders = sql.join(validTypes.map((t) => sql`${t}`), sql`, `);
|
|
26183
26191
|
const rows = await db.all(sql`
|
|
26184
|
-
SELECT COUNT(
|
|
26185
|
-
FROM
|
|
26186
|
-
|
|
26187
|
-
|
|
26188
|
-
AND
|
|
26189
|
-
AND c.workspace_id = ${workspaceId}
|
|
26190
|
-
LEFT JOIN conversation_read_state crs
|
|
26191
|
-
ON crs.conversation_id = t.conversation_id AND crs.user_id = ${userId}
|
|
26192
|
-
WHERE t.workspace_id = ${workspaceId}
|
|
26193
|
-
AND t.parent_task_id IS NULL
|
|
26194
|
-
AND t.trace_id IS NOT NULL
|
|
26195
|
-
AND t.type IN (${typePlaceholders})
|
|
26196
|
-
AND t.status IN ('completed', 'failed')
|
|
26197
|
-
AND t.completed_at > COALESCE(crs.last_read_at, '1970-01-01T00:00:00.000Z')
|
|
26198
|
-
AND NOT (t.type = 'email_notification' AND COALESCE(json_extract(t.context, '$.isInternal'), 0) = 1)
|
|
26192
|
+
SELECT COUNT(*) AS count
|
|
26193
|
+
FROM inbox_unread
|
|
26194
|
+
WHERE user_id = ${userId}
|
|
26195
|
+
AND workspace_id = ${workspaceId}
|
|
26196
|
+
AND task_type IN (${typePlaceholders})
|
|
26199
26197
|
`);
|
|
26200
26198
|
return rows[0]?.count ?? 0;
|
|
26201
26199
|
}
|
|
@@ -26208,6 +26206,7 @@ async function markConversationRead(db, userId, conversationId) {
|
|
|
26208
26206
|
ON CONFLICT (conversation_id, user_id)
|
|
26209
26207
|
DO UPDATE SET last_read_at = ${now}
|
|
26210
26208
|
`);
|
|
26209
|
+
await deleteUnreadEntry(db, conversationId, userId);
|
|
26211
26210
|
}
|
|
26212
26211
|
__name(markConversationRead, "markConversationRead");
|
|
26213
26212
|
async function markAllConversationsRead(db, userId, workspaceId) {
|
|
@@ -26221,6 +26220,7 @@ async function markAllConversationsRead(db, userId, workspaceId) {
|
|
|
26221
26220
|
ON CONFLICT (conversation_id, user_id)
|
|
26222
26221
|
DO UPDATE SET last_read_at = ${now}
|
|
26223
26222
|
`);
|
|
26223
|
+
await deleteAllUnreadEntries(db, userId, workspaceId);
|
|
26224
26224
|
}
|
|
26225
26225
|
__name(markAllConversationsRead, "markAllConversationsRead");
|
|
26226
26226
|
|