diff --git a/EXPORTED_FROM b/EXPORTED_FROM index 8890563..7b1decd 100644 --- a/EXPORTED_FROM +++ b/EXPORTED_FROM @@ -1 +1 @@ -Creative Tim agent-starters monorepo, open-exec at commit 3b95143018e1fb58b1f5f065814d0c37c3115547 +Creative Tim agent-starters monorepo, open-exec at commit ced4d88eb7b439a6b4a5649499964076c05ac4e7 diff --git a/README.md b/README.md index e5bd640..a0dc0f5 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,31 @@ # Open Exec +

+ + + + Open Exec running its labelled demo + + +

+ +

+ MIT license + Next.js 16 + Runs on a lite loop or Hermes Agent + By Creative Tim +

+ +

+ Live page · + All agent starters · + Hosted Hermes agents · + AI App Builder · + On CompanyFabric · + Get a model key +

+ + An open-source executive assistant for your Gmail and Google Calendar. It triages the inbox, reads the threads that matter, finds free time, drafts replies and puts events on your calendar. Anything it saves waits for your approval first, and nothing is ever sent: replies land in Gmail as drafts, and you press Send. Every tool call goes through one tool layer that applies the assistant's policy, asks you before anything the policy gates, and writes an audit row first. The policies also decide which Google permissions are requested: deny a tool in `assistant.config.ts` and Connect Google stops asking for its scope. @@ -104,10 +130,46 @@ Not affiliated with Google, or with any company whose products offer AI assistan ## More open-source agent starters +Free and MIT, from the same kit: one tool layer, approvals, an audit log, and a labelled demo with no keys. See them all on the [agent starters page](https://www.creative-tim.com/ui/agent-starters?ref=open-exec_readme). + | | | |---|---| | [Open Research](https://github.com/creativetimofficial/open-research?ref=open-exec_readme) | Research with numbered citations you can check | | [Open Coworkers](https://github.com/creativetimofficial/open-coworkers?ref=open-exec_readme) | Specialist AI coworkers with their own permissions and hand-offs | -| [Social Autopilot](https://github.com/creativetimofficial/open-social?ref=open-exec_readme) | Research, write and schedule posts for your channels | +| [Social Autopilot](https://www.creative-tim.com/ui/agent-starters?ref=open-exec_readme#open-social) (coming soon) | Research, write and schedule posts for your channels | + +## More from Creative Tim + +Want it without running anything yourself? These are live on [creative-tim.com](https://www.creative-tim.com/?ref=open-exec_readme). + +**Build with AI** + +| | | +|---|---| +| [AI App Builder](https://www.creative-tim.com/ui/build?ref=open-exec_readme) | Websites, dashboards, slide decks and ads from one prompt. Edit right on the page, deploy in one click. | +| [App examples](https://www.creative-tim.com/ui/examples?ref=open-exec_readme) | Finished apps to remix as your starting point | +| [Discover](https://www.creative-tim.com/ui/discover?ref=open-exec_readme) | Apps other people built, ready to remix | +| [AI Video Studio](https://www.creative-tim.com/ui/build/video-ecomm?ref=open-exec_readme) | One product photo in; product images and a short video out | + +**Hosted agents** + +| | | +|---|---| +| [Hermes Agent hosting](https://www.creative-tim.com/ui/hermes?ref=open-exec_readme) | A Hermes agent with memory and web tools, running in the cloud | +| [Spawn an AI agent](https://www.creative-tim.com/ui/spawn-agent?ref=open-exec_readme) | Any role you need, in a minute | +| [Hire an AI employee](https://www.creative-tim.com/ui/hire-ai-employee?ref=open-exec_readme) | Ready-made roles that are always on | + +**For developers** + +| | | +|---|---| +| [Skills.md & Stacks](https://www.creative-tim.com/ui/skills?ref=open-exec_readme) | Skills for Claude Code, Cursor and Codex | +| [Creative Tim UI](https://www.creative-tim.com/ui/blocks?ref=open-exec_readme) | shadcn/ui blocks for your app, v0 and Lovable | +| [Registry and MCP](https://www.creative-tim.com/ui/docs/registry?ref=open-exec_readme) | Install the blocks from coding agents over MCP | +| [Claude Code guide](https://www.creative-tim.com/ui/learn/claude-code?ref=open-exec_readme) | From your first prompt to agents that ship | +| [AI tool comparisons](https://www.creative-tim.com/ui/compare?ref=open-exec_readme) and [cheatsheets](https://www.creative-tim.com/ui/cheatsheet?ref=open-exec_readme) | Pick the right tool, and its shortcuts on one page | +| [CompanyFabric](https://companyfabric.com/?ref=open-exec_readme) | One key for every major model, the default model route for this starter: [get a key](https://companyfabric.com/dashboard/keys?ref=open-exec_readme), [models and pricing](https://companyfabric.com/models?ref=open-exec_readme) | +| [CompanyFabric templates](https://companyfabric.com/templates?ref=open-exec_readme) | This starter and the others, ready to run with your CompanyFabric key | +| [Premium templates](https://www.creative-tim.com/templates/premium?ref=open-exec_readme) | React, Next.js, Vue and HTML templates and dashboards | Contributing: see [CONTRIBUTING.md](CONTRIBUTING.md). Security: see [SECURITY.md](SECURITY.md). diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed36065..80992bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,7 +53,7 @@ importers: version: 5.9.3 vitest: specifier: 5.0.4 - version: 5.0.4(@types/node@24.19.2)(vite@8.3.5(@types/node@24.19.2)(jiti@2.7.0)) + version: 5.0.4(@types/node@24.19.2)(vite@8.3.8(@types/node@24.19.2)(jiti@2.7.0)) packages/kit: dependencies: @@ -78,7 +78,7 @@ importers: version: 5.9.3 vitest: specifier: 5.0.4 - version: 5.0.4(@types/node@24.19.2)(vite@8.3.5(@types/node@24.19.2)(jiti@2.7.0)) + version: 5.0.4(@types/node@24.19.2)(vite@8.3.8(@types/node@24.19.2)(jiti@2.7.0)) packages/ui: dependencies: @@ -133,7 +133,7 @@ importers: version: 5.9.3 vitest: specifier: 5.0.4 - version: 5.0.4(@types/node@24.19.2)(vite@8.3.5(@types/node@24.19.2)(jiti@2.7.0)) + version: 5.0.4(@types/node@24.19.2)(vite@8.3.8(@types/node@24.19.2)(jiti@2.7.0)) packages: @@ -141,9 +141,18 @@ packages: resolution: {integrity: sha512-U4+70Pc5ZS9osnCBCE5Jha/ciHM+Yp+CNMNC/7HvYbNRk1Ldd+f7qO65W5qfhu/TCv+/ozljlXXe9Nj8419DMA==} engines: {node: '>=10'} + '@emnapi/core@2.0.0-beta.2': + resolution: {integrity: sha512-MzCVoWtcg4Pm2B3je5mMvYMvj3MmBKw+fU7vbsJc9/iT8ip6/eYIHo/Dsm/mr+wsHB6SEyJDuxB09Yy6r/8+4A==} + '@emnapi/runtime@1.11.3': resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} + '@emnapi/runtime@2.0.0-beta.2': + resolution: {integrity: sha512-JcrSPzPvZuNZvJqPTF9Fw25LbOJ8avzFVlaf2grmH4Cku0oGP47tRgqPZadcfj3YoZMHkFVnCYFbQM8I+i5QEw==} + + '@emnapi/wasi-threads@2.2.0': + resolution: {integrity: sha512-JP7OYH38Q7+pyTAe14raZHLQIK7BDKbdwji+Xi3pcd/6QkJYQH3SX4wu6EplGrGJWRepoNzedfm0G3B9Z4e9Rw==} + '@floating-ui/core@1.8.0': resolution: {integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==} @@ -159,8 +168,8 @@ packages: '@floating-ui/utils@0.2.12': resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==} - '@hono/node-server@2.1.6': - resolution: {integrity: sha512-p/KH9MnfNcsm3sR6x4lNgm5j+QN4Et8srKredl9DZfXiyZ1UQ3aQ2YVpFLbqktYN5JI+DB+VZFKM2PqE5hLKjQ==} + '@hono/node-server@2.1.7': + resolution: {integrity: sha512-Wr0E6S+v2Bw9FkpGNP5BQ5QbJvclUa06UVehd65WFZe6XeJwbrKQQ5wPDevc0IC+QyzbO7v3Llh5uo45IZcSnA==} engines: {node: '>=20'} peerDependencies: hono: ^4 || ^5.0.0-0 @@ -357,6 +366,13 @@ packages: resolution: {integrity: sha512-juG5VWh4qAivzTAeMzvY9xs9HY5rAcr2E4I7tiSSCokRFi7XIZCAu92ZkSTsIj1OPceCifL3cpfteP3pDT9/QQ==} engines: {node: '>=14.0.0'} + '@napi-rs/wasm-runtime@1.2.6': + resolution: {integrity: sha512-mRyDmEw9/fCDXCGfL1sbgIw/GUK0PVxRW4YwgPN61F3LQ+fSyoBFarJVzgGyhF6kRzEQZ0FejDqm4WLXSeqQmw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} + peerDependencies: + '@emnapi/core': ^1.7.1 || 2.0.0-beta.2 + '@emnapi/runtime': ^1.7.1 || 2.0.0-beta.2 + '@next/env@16.4.1': resolution: {integrity: sha512-5sUUrrSvs/2/2LnLoesybMGx12EtPB46fdZ6RhAw0XDGSPxU2LFyQBB7yuEiOFFJPKmBY6+q2jTr1/AMbnp0/g==} @@ -1105,104 +1121,109 @@ packages: '@radix-ui/rect@1.1.3': resolution: {integrity: sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==} - '@rolldown/binding-android-arm-eabi@1.2.16': - resolution: {integrity: sha512-ia3DwAs0OsMGS7+IConptSiyk9pEXkOx/AbJ2n/lAGxH3QkWQus1t8d7gnAT38FCU2sQu8lUbeR6AiZFv4JxaA==} + '@rolldown/binding-android-arm-eabi@1.2.19': + resolution: {integrity: sha512-e+Ebe0WT+9tbXmNKPIiC8YrWAHYwug3m6i4p3rZGGulfZri1jtI4HslT+OZnFf/OIHowWF71DTlHwXBP2SiA7A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@rolldown/binding-android-arm64@1.2.16': - resolution: {integrity: sha512-kx5wBiMB6E7TEvpl2B9gjLU004BkvEm2Dr941BFjx/SontPwSzNuQUIoVKxHHoSjpFIfHMmcguyLOtyn0hObRg==} + '@rolldown/binding-android-arm64@1.2.19': + resolution: {integrity: sha512-hOombrTJ+szt2ciEzS7oCA78lMPBgF5UMQWCJIyNfnrI7GLl8HYoFqCnpL2gcPOaXMqryGCU5ExdQKyDDcC+yA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.2.16': - resolution: {integrity: sha512-qslZrXnKJU4cUpjoAmtAo/KQM9e2IRMlmpig6Zpwj+8KWxW8v+nkAf9216Bsek9lOC1jvg2yCjygCFo2f83msQ==} + '@rolldown/binding-darwin-arm64@1.2.19': + resolution: {integrity: sha512-XoMA2pwCKGTQzUjPgtRwkedH4WmXhdIPKT6l6oOxd1PUbNodGI6DcBekgN7EC//+x3pfBYX/qL1gNmZAqivw5g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.2.16': - resolution: {integrity: sha512-FdF+y48ND13eAyM2mQn+85kvAqNlvRWROy2rhgA463X/0Gv4vGtazZtfaF1mRBLscYvtOlh4QnLjOWiFzX69OQ==} + '@rolldown/binding-darwin-x64@1.2.19': + resolution: {integrity: sha512-zo8EsSSwMZCY/e+fRnGaX02YGgvJD0yvhNi/9hpGPA2MJ9ZF8dPCw75UGfpI6OpQ/myR/dIYmogRvqiZD0TrXg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.2.16': - resolution: {integrity: sha512-ddjqFM5e95AgLbUPtKIS7V1KTVlA0RUgCVr5mn+/IEhsdy3pr+Vuj/HZ7nlMN2FyxIwUktOH1LEPIQXO1v9y1Q==} + '@rolldown/binding-freebsd-x64@1.2.19': + resolution: {integrity: sha512-O8ISAOfI1nj7AuBPd30FSF47z7f7lzlk5poQVGgiikvQuGEBFYvW8ki+UEnT+YJPnNGjQzn304klt4O9FUE7mA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.2.16': - resolution: {integrity: sha512-tHdKWbFkFBI687iim3LIyIvyL7j66VvQYkDPss5Stn/qyE2tWkR1YD0dXmXPFKKqT/o5ZEJVsaRsWS2meQwGOA==} + '@rolldown/binding-linux-arm-gnueabihf@1.2.19': + resolution: {integrity: sha512-/lYCba5NO0yq4S0jGMH8QTBtkvQxoXjoQWzF5BcWp9MjB9jxVRD1GQDNofkVjcOj30DWyhLIN/4Oe60JKzaONw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.2.16': - resolution: {integrity: sha512-FJiLGAblPBMlBEdbOqw6kW6QcXDWAf/oJu7gYs9ZJZwmg+K+/zjFLxPTIY9izJUzxzc24FHvmseyA0IvJSl17w==} + '@rolldown/binding-linux-arm64-gnu@1.2.19': + resolution: {integrity: sha512-pm/apFMBnSbFb3O6nG5pHO1iqHhZrjGDFEjSm+ot9J17XXPvH9L90y5h+jgfHCE+Qdlsvy8qKEcU4VKxgjD+vA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.2.16': - resolution: {integrity: sha512-hrJpblMsrQ58U9veWpbXzkhV5zStunds6HWLprqq1qauvgBr1E6P+24kLj6lSLI9vjRn/RYpjprhkHQPKGWpNg==} + '@rolldown/binding-linux-arm64-musl@1.2.19': + resolution: {integrity: sha512-K1SmQp3FFichn8oqrNIwvFoZ5wcvjC7goBzpaMNvLf9FZc+QB/QvLmnpJZgAAGHiD980tP8FZZnXk2K94rvlxg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.2.16': - resolution: {integrity: sha512-qJd/dC6j6CwLG9/s/RP2nb1RZ0GIgj7Ioj7x/SYa3RzjVrlzrmH0fhIOpfvqQDeIsdP0loi+kHaMhJzY1PBIaA==} + '@rolldown/binding-linux-ppc64-gnu@1.2.19': + resolution: {integrity: sha512-I0xwD57jP/3A7+5UPZin2w8Y7XHEmEM5zqpYZOcQ45MlNW6tUJUziymV3yRr7rL4vwyfEcRsRksC4a7Kc08p5Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.2.16': - resolution: {integrity: sha512-Vx7Xg5uUJuNcujJjI70OICaH0EYj80BtOLZTSN7uOYg8QOLlyKnaG0IW7Fn/J0IpJsaKzmDKMhOQv1JBM9m9vg==} + '@rolldown/binding-linux-s390x-gnu@1.2.19': + resolution: {integrity: sha512-BrtEHT24SNXj9HiXqy+s/kXiSiQGt6EKCPUlRirAoIioVxKGnbXBUEkbZASAei7iZJB0/Ynm+0JP00Ipx7AnSw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.2.16': - resolution: {integrity: sha512-TNKhgE3uJTsTzatUSSYt0Kgo+Oa2uSlSjz4r1aEIea7HX6ULBym4fAlYUhG1i6pjNf2njfCUAfKwr6C3E9Xg1w==} + '@rolldown/binding-linux-x64-gnu@1.2.19': + resolution: {integrity: sha512-rm75/9DkHKeU2WnA8w4X94WGYgLlDCFCfkQC+4bguVJmC/jvDRv2B+2wLOYhyE0fVuv7//Ckk39OoOufyCu76Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.2.16': - resolution: {integrity: sha512-7chXdpjXZ8qG0+mIxECN3cT9kvhZ3/oZhMX6Pp876P7CDrIy8nJswva6Mq357JR7eYXfuskwZxMeV1SzoZdHrA==} + '@rolldown/binding-linux-x64-musl@1.2.19': + resolution: {integrity: sha512-irh/4+iYFM4GAzpluDErgjz89bj6NDtqqMAG/6O1LG38Ed3NpyebzCpcVNkFW8uhy+/3/BocUvnXDR33CXWe9A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.2.16': - resolution: {integrity: sha512-Kwjt+7uNTJK5/MDkGWGVO2KQPnj8yAV75dMpfwyHZrJSXWHrniOB0aUEWlVYf3H1hOqFLIStLdM5QXq6bnKmOQ==} + '@rolldown/binding-openharmony-arm64@1.2.19': + resolution: {integrity: sha512-+KWTWNoPt+CfSq94CiceWu3yPE+QzkaG+phPyz9G60tmZLwfQkcA4AeksafzvJAw4pvg1mcd5a1TkUqVv0s4JA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-win32-arm64-msvc@1.2.16': - resolution: {integrity: sha512-/LH6WfjDRXXJz/p5xl4TmU+jpcnwcxbKEQBW/GZE0JHfN0lGIyTtsUEGaQ/q/GikkGJ2yLKe6pwm7AnEWO8pdw==} + '@rolldown/binding-wasm32-wasi@1.2.19': + resolution: {integrity: sha512-7EH+skOsl5qpWnK0vzamgJFhOv1cwxQpsxm8tI883K9fur5c27p8q87fzEO6BbBPabA2/+s/zR63/pLc137iOg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.2.19': + resolution: {integrity: sha512-3Q1Yg1Q7tEvBWoZf5rFvG/GKZQPgwfru+p4wBajDfJFBs0SHCpL++dfTjW9gyAKd1T7ZpIYvdaUax7Pa/IhFVQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.2.16': - resolution: {integrity: sha512-1lv1KvX0Z871zfk7vw+dnXMMnHNyDwMzWG8Kv3HxDXMOhzCX4SHc7HK319fInP0i+0p9D8brkfzL7pJOaGl+tw==} + '@rolldown/binding-win32-x64-msvc@1.2.19': + resolution: {integrity: sha512-y/sqRRc6d7hECzOFc5n3LSeqctmIp9mMjY1Kq4s14uLPd/LZ4z7i1zrW6fMtp2mPeuQIC4e6ULMcwQzMomqQag==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.1': - resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + '@rolldown/pluginutils@1.1.0': + resolution: {integrity: sha512-K+NU2HDCEem4sClgHH4ZZXwdJeNFkJo+hRk479DIwdIviAPN2hFJH1KHHwg8CxHQXvi0M5XY4deTXINfIiSG6w==} '@swc/helpers@0.5.23': resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} @@ -1299,6 +1320,9 @@ packages: '@tailwindcss/postcss@4.3.3': resolution: {integrity: sha512-JTSZZGQi1AyKirbLN3azmjVzef92tcX7h+iSqPdaeStyFpGpDlKvvpxeOE8njhbUanbRwr3z8DyzhICWnMtQeg==} + '@tybys/wasm-util@0.10.4': + resolution: {integrity: sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==} + '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1408,8 +1432,8 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001820: - resolution: {integrity: sha512-gfWD6MxqVCqAOwmODfZf7DchWvlrA+SRdNX7ceLfg3xRqe5ssjjpF7EgslC/0tiLiNTajdaNN/q8c/5u/7Gz8w==} + caniuse-lite@1.0.30001826: + resolution: {integrity: sha512-wTB+9tIbLro/BCXwLuNV1meHE4L9dS6dArMDwgYfNBPMYScqClHyGunhkCSDtHhe/69Xl0sHlKgBVZ+fNsYtWA==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1615,8 +1639,8 @@ packages: resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} - express-rate-limit@8.7.3: - resolution: {integrity: sha512-zPLqDI2f0gV2WmGnacLf9XSSqn4VldRyP5LCzOwx0BKH40mO6+2PCFkoSsRO2jePx87/Kf6NUF6P2QOTKXHbQA==} + express-rate-limit@8.7.4: + resolution: {integrity: sha512-LKBXzX700wz3zAGNNmVnjRI5mEbYkLv7UbMI4+9Xa+JPcg2UZh6AgY/2CZh9RrJjFM5ttC/N1lD+KzyFoZITCw==} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' @@ -1696,8 +1720,8 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - hono@4.13.16: - resolution: {integrity: sha512-AOLOEhvrV+iH92xXCnFr/5+3KjPKcI3xP63XJtX5spAnkznPdHijlIsUTpi7/9EhWqrTCekw5c5zh1K+YsVw7A==} + hono@4.13.18: + resolution: {integrity: sha512-H9q/E1XizaWstJxUW881dmLxEj+t/TrGGnyxINkm4+sK0qUwsMtFdo2BWI9Vs3cIS19MU6b6iCijoUoEf4f3DA==} engines: {node: '>=16.9.0'} html-escaper@3.0.3: @@ -1757,8 +1781,8 @@ packages: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true - jose@6.2.15: - resolution: {integrity: sha512-qdF6ewcZARtef63fJ9AKKZPgxw+t7USH6HLXYcD4CrdmSvDp79rpJSPFEKc90QBeGS63u1KQtN2MZQHC0yDIzA==} + jose@6.2.17: + resolution: {integrity: sha512-wOuK9V1yujQFH5S0ZWmLcDZN7+IKh9bUCC2ZPCf2HDlol3WWHy+PPyNjEI75FXRLMp3vDKQcupP59xhVU95hcg==} json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -1954,8 +1978,8 @@ packages: mdast-util-from-markdown@2.1.0: resolution: {integrity: sha512-KRLgmPaP2H1ul2bpoJkOS+9pAcDAAj9Nu1mqLnh8NLeJG5tlvj42TH80PIGBpROWlRXLk0lDrWNuZCFy/tsB4A==} - mdast-util-gfm-autolink-literal@2.0.1: - resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + mdast-util-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-Jx6QSK8wDo558Bcf7q+1pe0v81g2PVs09Hlvu9xJHmCFRF3sAPW7vXFVIAwBncs3sde92WbsVqNxwdqViA2XnQ==} mdast-util-gfm-footnote@2.1.0: resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} @@ -1966,8 +1990,8 @@ packages: mdast-util-gfm-table@2.0.1: resolution: {integrity: sha512-fiIjPrAy4kz68/eFbPHhsiWDGHhqUSVoU1XsfLM5DsEPXw7MxgiVVyulUggFRckVWeT1KXQXkg5vm3kv4oMSOA==} - mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + mdast-util-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-jXVO1hvB2hs82g1esi7I9nIJDqiijbQLIyH2jDUb5s7jIAZMr/79h0VHSq7XHKTqpLARRm+DDNjduB7S9+6XZA==} mdast-util-gfm@3.1.0: resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} @@ -1987,8 +2011,8 @@ packages: mdast-util-to-hast@13.2.1: resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} - mdast-util-to-markdown@2.2.2: - resolution: {integrity: sha512-ELNT5jYDUdx0B/hlUSSAiAEtvqkY3Oriwkp1KEYseF1Ccu4MnKkmE5yK3oE3WGT/Pq8VTE+XwP0GLL5pafY8yA==} + mdast-util-to-markdown@2.2.3: + resolution: {integrity: sha512-dImdB6VZRMRac1SwAW6o1c0ESk/7pFFAMCMuKM+9v7LpTSthMM5nzXpqKw4Mjo66aXVKhNkyrP4bMB9MurPyWg==} mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} @@ -2278,8 +2302,8 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - rolldown@1.2.16: - resolution: {integrity: sha512-bWvlMpFKiTfDKfnK7FC2MPgPeWCf/Kpwsq49ApdW+FQaBZb6O6dZ4MAPbPUjp7hYQrw/RobqCzn64BRrQecGHw==} + rolldown@1.2.19: + resolution: {integrity: sha512-QIiV1J9d0pzN4jeeTH4sjPy0AZ6cAy2cG0ExeoE1+U8Rvj+hR3gYkokx0YbeUNGlZqiQJJ2utcETe0oKXwzsuA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -2479,14 +2503,14 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vfile-message@4.0.3: - resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + vfile-message@4.0.4: + resolution: {integrity: sha512-66ycRswIkNmHH9PHku7ADtv5RVwgIrOcuv3J8Svz6h4qgGRrKVa+9/neuKyJZUXyOpYwLTvS+whZ4R2urHHgQg==} vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite@8.3.5: - resolution: {integrity: sha512-z1YpjieJ9g0ebTmQpLBv/oq9E3F9EIlOe+7LahW8SrE3LTiG3udBRUXQOlYXP9b+IC2q2phHeVxj9xGlw34OEQ==} + vite@8.3.8: + resolution: {integrity: sha512-LzOn3h9rG/0vhLdXrV4yJ4QFA9eEoqCl+Yx+kGJd7aB9w6nfNgVHKSYwLPZUHrz4ZGa+t+kXjV9itvcHDLQouA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -2597,11 +2621,27 @@ snapshots: '@alloc/quick-lru@5.3.0': {} + '@emnapi/core@2.0.0-beta.2': + dependencies: + '@emnapi/wasi-threads': 2.2.0 + tslib: 2.9.1 + optional: true + '@emnapi/runtime@1.11.3': dependencies: tslib: 2.9.1 optional: true + '@emnapi/runtime@2.0.0-beta.2': + dependencies: + tslib: 2.9.1 + optional: true + + '@emnapi/wasi-threads@2.2.0': + dependencies: + tslib: 2.9.1 + optional: true + '@floating-ui/core@1.8.0': dependencies: '@floating-ui/utils': 0.2.12 @@ -2619,9 +2659,9 @@ snapshots: '@floating-ui/utils@0.2.12': {} - '@hono/node-server@2.1.6(hono@4.13.16)': + '@hono/node-server@2.1.7(hono@4.13.18)': dependencies: - hono: 4.13.16 + hono: 4.13.18 '@img/colour@1.1.0': optional: true @@ -2751,7 +2791,7 @@ snapshots: '@modelcontextprotocol/sdk@1.32.1(zod@4.6.7)': dependencies: - '@hono/node-server': 2.1.6(hono@4.13.16) + '@hono/node-server': 2.1.7(hono@4.13.18) ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) content-type: 1.0.5 @@ -2760,9 +2800,9 @@ snapshots: eventsource: 3.0.7 eventsource-parser: 3.1.1 express: 5.3.0 - express-rate-limit: 8.7.3(express@5.3.0) - hono: 4.13.16 - jose: 6.2.15 + express-rate-limit: 8.7.4(express@5.3.0) + hono: 4.13.18 + jose: 6.2.17 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 @@ -2773,6 +2813,13 @@ snapshots: '@mozilla/readability@0.6.0': {} + '@napi-rs/wasm-runtime@1.2.6(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2)': + dependencies: + '@emnapi/core': 2.0.0-beta.2 + '@emnapi/runtime': 2.0.0-beta.2 + '@tybys/wasm-util': 0.10.4 + optional: true + '@next/env@16.4.1': {} '@next/swc-darwin-arm64@16.4.1': @@ -3553,52 +3600,59 @@ snapshots: '@radix-ui/rect@1.1.3': {} - '@rolldown/binding-android-arm-eabi@1.2.16': + '@rolldown/binding-android-arm-eabi@1.2.19': optional: true - '@rolldown/binding-android-arm64@1.2.16': + '@rolldown/binding-android-arm64@1.2.19': optional: true - '@rolldown/binding-darwin-arm64@1.2.16': + '@rolldown/binding-darwin-arm64@1.2.19': optional: true - '@rolldown/binding-darwin-x64@1.2.16': + '@rolldown/binding-darwin-x64@1.2.19': optional: true - '@rolldown/binding-freebsd-x64@1.2.16': + '@rolldown/binding-freebsd-x64@1.2.19': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.2.16': + '@rolldown/binding-linux-arm-gnueabihf@1.2.19': optional: true - '@rolldown/binding-linux-arm64-gnu@1.2.16': + '@rolldown/binding-linux-arm64-gnu@1.2.19': optional: true - '@rolldown/binding-linux-arm64-musl@1.2.16': + '@rolldown/binding-linux-arm64-musl@1.2.19': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.2.16': + '@rolldown/binding-linux-ppc64-gnu@1.2.19': optional: true - '@rolldown/binding-linux-s390x-gnu@1.2.16': + '@rolldown/binding-linux-s390x-gnu@1.2.19': optional: true - '@rolldown/binding-linux-x64-gnu@1.2.16': + '@rolldown/binding-linux-x64-gnu@1.2.19': optional: true - '@rolldown/binding-linux-x64-musl@1.2.16': + '@rolldown/binding-linux-x64-musl@1.2.19': optional: true - '@rolldown/binding-openharmony-arm64@1.2.16': + '@rolldown/binding-openharmony-arm64@1.2.19': optional: true - '@rolldown/binding-win32-arm64-msvc@1.2.16': + '@rolldown/binding-wasm32-wasi@1.2.19': + dependencies: + '@emnapi/core': 2.0.0-beta.2 + '@emnapi/runtime': 2.0.0-beta.2 + '@napi-rs/wasm-runtime': 1.2.6(@emnapi/core@2.0.0-beta.2)(@emnapi/runtime@2.0.0-beta.2) + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.2.19': optional: true - '@rolldown/binding-win32-x64-msvc@1.2.16': + '@rolldown/binding-win32-x64-msvc@1.2.19': optional: true - '@rolldown/pluginutils@1.0.1': {} + '@rolldown/pluginutils@1.1.0': {} '@swc/helpers@0.5.23': dependencies: @@ -3673,6 +3727,11 @@ snapshots: postcss: 8.5.32 tailwindcss: 4.3.3 + '@tybys/wasm-util@0.10.4': + dependencies: + tslib: 2.9.1 + optional: true + '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 @@ -3718,14 +3777,14 @@ snapshots: '@ungap/structured-clone@1.4.0': {} - '@vitest/mocker@5.0.4(vite@8.3.5(@types/node@24.19.2)(jiti@2.7.0))': + '@vitest/mocker@5.0.4(vite@8.3.8(@types/node@24.19.2)(jiti@2.7.0))': dependencies: '@jridgewell/trace-mapping': 0.3.31 '@vitest/spy': 5.0.4 estree-walker: 3.0.3 magic-string: 1.4.5 optionalDependencies: - vite: 8.3.5(@types/node@24.19.2)(jiti@2.7.0) + vite: 8.3.8(@types/node@24.19.2)(jiti@2.7.0) '@vitest/spy@5.0.4': {} @@ -3783,7 +3842,7 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - caniuse-lite@1.0.30001820: {} + caniuse-lite@1.0.30001826: {} ccount@2.0.1: {} @@ -3949,7 +4008,7 @@ snapshots: expect-type@1.4.0: {} - express-rate-limit@8.7.3(express@5.3.0): + express-rate-limit@8.7.4(express@5.3.0): dependencies: debug: 4.4.3 express: 5.3.0 @@ -4066,7 +4125,7 @@ snapshots: space-separated-tokens: 2.0.2 style-to-object: 2.0.2 unist-util-position: 5.0.0 - vfile-message: 4.0.3 + vfile-message: 4.0.4 transitivePeerDependencies: - supports-color @@ -4074,7 +4133,7 @@ snapshots: dependencies: '@types/hast': 3.0.5 - hono@4.13.16: {} + hono@4.13.18: {} html-escaper@3.0.3: {} @@ -4126,7 +4185,7 @@ snapshots: jiti@2.7.0: {} - jose@6.2.15: {} + jose@6.2.17: {} json-schema-traverse@1.0.0: {} @@ -4282,7 +4341,7 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm-autolink-literal@2.0.1: + mdast-util-gfm-autolink-literal@2.1.0: dependencies: '@types/mdast': 4.0.4 ccount: 2.0.1 @@ -4295,7 +4354,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.1.0 - mdast-util-to-markdown: 2.2.2 + mdast-util-to-markdown: 2.2.3 micromark-util-normalize-identifier: 2.0.1 transitivePeerDependencies: - supports-color @@ -4304,7 +4363,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.1.0 - mdast-util-to-markdown: 2.2.2 + mdast-util-to-markdown: 2.2.3 transitivePeerDependencies: - supports-color @@ -4314,30 +4373,30 @@ snapshots: devlop: 1.1.0 markdown-table: 3.1.0 mdast-util-from-markdown: 2.1.0 - mdast-util-to-markdown: 2.2.2 + mdast-util-to-markdown: 2.2.3 mdast-util-to-string: 4.0.0 unist-util-visit: 5.2.0 transitivePeerDependencies: - supports-color - mdast-util-gfm-task-list-item@2.0.0: + mdast-util-gfm-task-list-item@2.0.1: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.1.0 - mdast-util-to-markdown: 2.2.2 + mdast-util-to-markdown: 2.2.3 transitivePeerDependencies: - supports-color mdast-util-gfm@3.1.0: dependencies: mdast-util-from-markdown: 2.1.0 - mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-autolink-literal: 2.1.0 mdast-util-gfm-footnote: 2.1.0 mdast-util-gfm-strikethrough: 2.0.1 mdast-util-gfm-table: 2.0.1 - mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-to-markdown: 2.2.2 + mdast-util-gfm-task-list-item: 2.0.1 + mdast-util-to-markdown: 2.2.3 transitivePeerDependencies: - supports-color @@ -4348,7 +4407,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.1.0 - mdast-util-to-markdown: 2.2.2 + mdast-util-to-markdown: 2.2.3 transitivePeerDependencies: - supports-color @@ -4361,11 +4420,11 @@ snapshots: ccount: 2.0.1 devlop: 1.1.0 mdast-util-from-markdown: 2.1.0 - mdast-util-to-markdown: 2.2.2 + mdast-util-to-markdown: 2.2.3 parse-entities: 4.0.2 stringify-entities: 4.0.4 unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.3 + vfile-message: 4.0.4 transitivePeerDependencies: - supports-color @@ -4376,7 +4435,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.1.0 - mdast-util-to-markdown: 2.2.2 + mdast-util-to-markdown: 2.2.3 transitivePeerDependencies: - supports-color @@ -4397,7 +4456,7 @@ snapshots: unist-util-visit: 5.2.0 vfile: 6.0.3 - mdast-util-to-markdown@2.2.2: + mdast-util-to-markdown@2.2.3: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 @@ -4635,7 +4694,7 @@ snapshots: '@next/env': 16.4.1 '@swc/helpers': 0.5.23 baseline-browser-mapping: 2.11.35 - caniuse-lite: 1.0.30001820 + caniuse-lite: 1.0.30001826 postcss: 8.5.23 react: 19.3.1 react-dom: 19.3.1(react@19.3.1) @@ -4874,31 +4933,32 @@ snapshots: remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-to-markdown: 2.2.2 + mdast-util-to-markdown: 2.2.3 unified: 11.0.5 require-from-string@2.0.2: {} - rolldown@1.2.16: + rolldown@1.2.19: dependencies: '@oxc-project/types': 0.156.0 - '@rolldown/pluginutils': 1.0.1 + '@rolldown/pluginutils': 1.1.0 optionalDependencies: - '@rolldown/binding-android-arm-eabi': 1.2.16 - '@rolldown/binding-android-arm64': 1.2.16 - '@rolldown/binding-darwin-arm64': 1.2.16 - '@rolldown/binding-darwin-x64': 1.2.16 - '@rolldown/binding-freebsd-x64': 1.2.16 - '@rolldown/binding-linux-arm-gnueabihf': 1.2.16 - '@rolldown/binding-linux-arm64-gnu': 1.2.16 - '@rolldown/binding-linux-arm64-musl': 1.2.16 - '@rolldown/binding-linux-ppc64-gnu': 1.2.16 - '@rolldown/binding-linux-s390x-gnu': 1.2.16 - '@rolldown/binding-linux-x64-gnu': 1.2.16 - '@rolldown/binding-linux-x64-musl': 1.2.16 - '@rolldown/binding-openharmony-arm64': 1.2.16 - '@rolldown/binding-win32-arm64-msvc': 1.2.16 - '@rolldown/binding-win32-x64-msvc': 1.2.16 + '@rolldown/binding-android-arm-eabi': 1.2.19 + '@rolldown/binding-android-arm64': 1.2.19 + '@rolldown/binding-darwin-arm64': 1.2.19 + '@rolldown/binding-darwin-x64': 1.2.19 + '@rolldown/binding-freebsd-x64': 1.2.19 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.19 + '@rolldown/binding-linux-arm64-gnu': 1.2.19 + '@rolldown/binding-linux-arm64-musl': 1.2.19 + '@rolldown/binding-linux-ppc64-gnu': 1.2.19 + '@rolldown/binding-linux-s390x-gnu': 1.2.19 + '@rolldown/binding-linux-x64-gnu': 1.2.19 + '@rolldown/binding-linux-x64-musl': 1.2.19 + '@rolldown/binding-openharmony-arm64': 1.2.19 + '@rolldown/binding-wasm32-wasi': 1.2.19 + '@rolldown/binding-win32-arm64-msvc': 1.2.19 + '@rolldown/binding-win32-x64-msvc': 1.2.19 router@2.2.0: dependencies: @@ -5127,7 +5187,7 @@ snapshots: vary@1.1.2: {} - vfile-message@4.0.3: + vfile-message@4.0.4: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 @@ -5135,24 +5195,24 @@ snapshots: vfile@6.0.3: dependencies: '@types/unist': 3.0.3 - vfile-message: 4.0.3 + vfile-message: 4.0.4 - vite@8.3.5(@types/node@24.19.2)(jiti@2.7.0): + vite@8.3.8(@types/node@24.19.2)(jiti@2.7.0): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 postcss: 8.5.32 - rolldown: 1.2.16 + rolldown: 1.2.19 tinyglobby: 0.2.17 optionalDependencies: '@types/node': 24.19.2 fsevents: 2.3.3 jiti: 2.7.0 - vitest@5.0.4(@types/node@24.19.2)(vite@8.3.5(@types/node@24.19.2)(jiti@2.7.0)): + vitest@5.0.4(@types/node@24.19.2)(vite@8.3.8(@types/node@24.19.2)(jiti@2.7.0)): dependencies: '@types/chai': 5.2.3 - '@vitest/mocker': 5.0.4(vite@8.3.5(@types/node@24.19.2)(jiti@2.7.0)) + '@vitest/mocker': 5.0.4(vite@8.3.8(@types/node@24.19.2)(jiti@2.7.0)) chai: 6.3.0 es-module-lexer: 2.3.2 expect-type: 1.4.0 @@ -5163,7 +5223,7 @@ snapshots: tinybench: 6.2.3 tinyexec: 1.3.1 tinyglobby: 0.2.17 - vite: 8.3.5(@types/node@24.19.2)(jiti@2.7.0) + vite: 8.3.8(@types/node@24.19.2)(jiti@2.7.0) why-is-node-running: 3.2.1 optionalDependencies: '@types/node': 24.19.2