feat(server): migrate copilot to native (#14620)

#### PR Dependency Tree


* **PR #14620** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Native LLM workflows: structured outputs, embeddings, and reranking
plus richer multimodal attachments (images, audio, files) and improved
remote-attachment inlining.

* **Refactor**
* Tooling API unified behind a local tool-definition helper;
provider/adapters reorganized to route through native dispatch paths.

* **Chores**
* Dependency updates, removed legacy Google SDK integrations, and
increased front memory allocation.

* **Tests**
* Expanded end-to-end and streaming tests exercising native provider
flows, attachments, and rerank/structured scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
DarkSky
2026-03-11 13:55:35 +08:00
committed by GitHub
parent 02744cec00
commit 29a27b561b
62 changed files with 4359 additions and 2296 deletions

147
yarn.lock
View File

@@ -962,8 +962,6 @@ __metadata:
"@affine/graphql": "workspace:*"
"@affine/s3-compat": "workspace:*"
"@affine/server-native": "workspace:*"
"@ai-sdk/google": "npm:^3.0.46"
"@ai-sdk/google-vertex": "npm:^4.0.83"
"@apollo/server": "npm:^4.13.0"
"@faker-js/faker": "npm:^10.1.0"
"@fal-ai/serverless-client": "npm:^0.15.0"
@@ -1022,7 +1020,6 @@ __metadata:
"@types/semver": "npm:^7.5.8"
"@types/sinon": "npm:^21.0.0"
"@types/supertest": "npm:^7.0.0"
ai: "npm:^6.0.118"
ava: "npm:^7.0.0"
bullmq: "npm:^5.40.2"
c8: "npm:^10.1.3"
@@ -1122,80 +1119,6 @@ __metadata:
languageName: unknown
linkType: soft
"@ai-sdk/anthropic@npm:3.0.59":
version: 3.0.59
resolution: "@ai-sdk/anthropic@npm:3.0.59"
dependencies:
"@ai-sdk/provider": "npm:3.0.8"
"@ai-sdk/provider-utils": "npm:4.0.20"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10/b7504dc845f2cd487a4a18db9dbf9e2231fbe3b0a5a22ea12bedb7d4f276463cdd4fd39493efd40f39c78b9023af5f00a4e603981265b66ea43701ad699da5c9
languageName: node
linkType: hard
"@ai-sdk/gateway@npm:3.0.68":
version: 3.0.68
resolution: "@ai-sdk/gateway@npm:3.0.68"
dependencies:
"@ai-sdk/provider": "npm:3.0.8"
"@ai-sdk/provider-utils": "npm:4.0.20"
"@vercel/oidc": "npm:3.1.0"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10/4a6923a6e610472de0ea18f25077df0b394d31b287285f512d6e16ee8b0b90421faf284399f37e11045ea370794a6060686a3b69b68fda04b6dc13562cd8fd8e
languageName: node
linkType: hard
"@ai-sdk/google-vertex@npm:^4.0.83":
version: 4.0.83
resolution: "@ai-sdk/google-vertex@npm:4.0.83"
dependencies:
"@ai-sdk/anthropic": "npm:3.0.59"
"@ai-sdk/google": "npm:3.0.46"
"@ai-sdk/provider": "npm:3.0.8"
"@ai-sdk/provider-utils": "npm:4.0.20"
google-auth-library: "npm:^10.5.0"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10/330ed81cac6779d81e904fe6668cd366bda9d91f911bf318ea3f4c5f9c246ff9f89523fedd268e27fe77aece89ced8e7f49a18e179977f25a9c3251d07df358c
languageName: node
linkType: hard
"@ai-sdk/google@npm:3.0.46, @ai-sdk/google@npm:^3.0.46":
version: 3.0.46
resolution: "@ai-sdk/google@npm:3.0.46"
dependencies:
"@ai-sdk/provider": "npm:3.0.8"
"@ai-sdk/provider-utils": "npm:4.0.20"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10/295e9f53c6e14e836164a6755d2c50b2840c7a9542919c2684b916c3b8155cf4fabcd30c431a61e12d658e3dceb6af23a284daa63d5311850a03f9d3346038f9
languageName: node
linkType: hard
"@ai-sdk/provider-utils@npm:4.0.20":
version: 4.0.20
resolution: "@ai-sdk/provider-utils@npm:4.0.20"
dependencies:
"@ai-sdk/provider": "npm:3.0.8"
"@standard-schema/spec": "npm:^1.1.0"
eventsource-parser: "npm:^3.0.6"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10/1a2d5adc262582cfff9b86afae37ba6291fae5b9155250f02ee8fdd119a7cc1351960ed20181e6f671c28153daf8d69e864e883dee06b96d36c486e2a1a32be9
languageName: node
linkType: hard
"@ai-sdk/provider@npm:3.0.8":
version: 3.0.8
resolution: "@ai-sdk/provider@npm:3.0.8"
dependencies:
json-schema: "npm:^0.4.0"
checksum: 10/85fb7b9c7cd9ea1aa9840aa57a9517a7ecec8c25a33a31e4615f4eceede9fe61f072b2a2915e4713f2b78c8b94a8c25a79ddbcf998f0d537c02ba47442402542
languageName: node
linkType: hard
"@alloc/quick-lru@npm:^5.2.0":
version: 5.2.0
resolution: "@alloc/quick-lru@npm:5.2.0"
@@ -9760,7 +9683,7 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/api@npm:1.9.0, @opentelemetry/api@npm:^1.3.0, @opentelemetry/api@npm:^1.9.0":
"@opentelemetry/api@npm:^1.3.0, @opentelemetry/api@npm:^1.9.0":
version: 1.9.0
resolution: "@opentelemetry/api@npm:1.9.0"
checksum: 10/a607f0eef971893c4f2ee2a4c2069aade6ec3e84e2a1f5c2aac19f65c5d9eeea41aa72db917c1029faafdd71789a1a040bdc18f40d63690e22ccae5d7070f194
@@ -15268,7 +15191,7 @@ __metadata:
languageName: node
linkType: hard
"@standard-schema/spec@npm:^1.0.0, @standard-schema/spec@npm:^1.1.0":
"@standard-schema/spec@npm:^1.0.0":
version: 1.1.0
resolution: "@standard-schema/spec@npm:1.1.0"
checksum: 10/a209615c9e8b2ea535d7db0a5f6aa0f962fd4ab73ee86a46c100fb78116964af1f55a27c1794d4801e534a196794223daa25ff5135021e03c7828aa3d95e1763
@@ -15949,13 +15872,6 @@ __metadata:
languageName: node
linkType: hard
"@trysound/sax@npm:0.2.0":
version: 0.2.0
resolution: "@trysound/sax@npm:0.2.0"
checksum: 10/7379713eca480ac0d9b6c7b063e06b00a7eac57092354556c81027066eb65b61ea141a69d0cc2e15d32e05b2834d4c9c2184793a5e36bbf5daf05ee5676af18c
languageName: node
linkType: hard
"@tweakpane/core@npm:^2.0.4":
version: 2.0.5
resolution: "@tweakpane/core@npm:2.0.5"
@@ -17695,13 +17611,6 @@ __metadata:
languageName: node
linkType: hard
"@vercel/oidc@npm:3.1.0":
version: 3.1.0
resolution: "@vercel/oidc@npm:3.1.0"
checksum: 10/2e7fe962a441bbc8b305639f8ab1830fb3c2bb51affa90ae84431af65a29c98343aa089d84dff3730013f0b3fb8dc67ad10fad97c4ce7fdf584510d79fa3919c
languageName: node
linkType: hard
"@vitejs/plugin-react-swc@npm:^4.0.0":
version: 4.2.3
resolution: "@vitejs/plugin-react-swc@npm:4.2.3"
@@ -18284,20 +18193,6 @@ __metadata:
languageName: node
linkType: hard
"ai@npm:^6.0.118":
version: 6.0.118
resolution: "ai@npm:6.0.118"
dependencies:
"@ai-sdk/gateway": "npm:3.0.68"
"@ai-sdk/provider": "npm:3.0.8"
"@ai-sdk/provider-utils": "npm:4.0.20"
"@opentelemetry/api": "npm:1.9.0"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10/ec77fe34a4cfe0e4ac283133fd9e838eea741ed1569598b02a95a54c60113153d88638c95e3f67eed8bb1f307c2cdc8310b5338f50fad76c58e8fb0d2dc457eb
languageName: node
linkType: hard
"ajv-formats@npm:^2.1.1":
version: 2.1.1
resolution: "ajv-formats@npm:2.1.1"
@@ -23259,13 +23154,6 @@ __metadata:
languageName: node
linkType: hard
"eventsource-parser@npm:^3.0.6":
version: 3.0.6
resolution: "eventsource-parser@npm:3.0.6"
checksum: 10/febf7058b9c2168ecbb33e92711a1646e06bd1568f60b6eb6a01a8bf9f8fcd29cc8320d57247059cacf657a296280159f21306d2e3ff33309a9552b2ef889387
languageName: node
linkType: hard
"exa-js@npm:^2.4.0":
version: 2.4.0
resolution: "exa-js@npm:2.4.0"
@@ -24617,7 +24505,7 @@ __metadata:
languageName: node
linkType: hard
"google-auth-library@npm:^10.1.0, google-auth-library@npm:^10.2.0, google-auth-library@npm:^10.5.0":
"google-auth-library@npm:^10.1.0, google-auth-library@npm:^10.2.0":
version: 10.5.0
resolution: "google-auth-library@npm:10.5.0"
dependencies:
@@ -26588,13 +26476,6 @@ __metadata:
languageName: node
linkType: hard
"json-schema@npm:^0.4.0":
version: 0.4.0
resolution: "json-schema@npm:0.4.0"
checksum: 10/8b3b64eff4a807dc2a3045b104ed1b9335cd8d57aa74c58718f07f0f48b8baa3293b00af4dcfbdc9144c3aafea1e97982cc27cc8e150fc5d93c540649507a458
languageName: node
linkType: hard
"json-stable-stringify-without-jsonify@npm:^1.0.1":
version: 1.0.1
resolution: "json-stable-stringify-without-jsonify@npm:1.0.1"
@@ -33056,10 +32937,10 @@ __metadata:
languageName: node
linkType: hard
"sax@npm:>=0.6.0, sax@npm:^1.2.4, sax@npm:^1.4.1":
version: 1.4.1
resolution: "sax@npm:1.4.1"
checksum: 10/b1c784b545019187b53a0c28edb4f6314951c971e2963a69739c6ce222bfbc767e54d320e689352daba79b7d5e06d22b5d7113b99336219d6e93718e2f99d335
"sax@npm:>=0.6.0, sax@npm:^1.2.4, sax@npm:^1.4.1, sax@npm:^1.5.0":
version: 1.5.0
resolution: "sax@npm:1.5.0"
checksum: 10/9012ff37dda7a7ac5da45db2143b04036103e8bef8d586c3023afd5df6caf0ebd7f38017eee344ad2e2247eded7d38e9c42cf291d8dd91781352900ac0fd2d9f
languageName: node
linkType: hard
@@ -34375,19 +34256,19 @@ __metadata:
linkType: hard
"svgo@npm:^3.3.2":
version: 3.3.2
resolution: "svgo@npm:3.3.2"
version: 3.3.3
resolution: "svgo@npm:3.3.3"
dependencies:
"@trysound/sax": "npm:0.2.0"
commander: "npm:^7.2.0"
css-select: "npm:^5.1.0"
css-tree: "npm:^2.3.1"
css-what: "npm:^6.1.0"
csso: "npm:^5.0.5"
picocolors: "npm:^1.0.0"
sax: "npm:^1.5.0"
bin:
svgo: ./bin/svgo
checksum: 10/82fdea9b938884d808506104228e4d3af0050d643d5b46ff7abc903ff47a91bbf6561373394868aaf07a28f006c4057b8fbf14bbd666298abdd7cc590d4f7700
checksum: 10/f3c1b4d05d1704483e53515d5995af5f06a2718df85e3a8320f57bb256b8dc926b84c87a1a9b98e9d3ca1224314cc0676a803bdd03163508292f2d45c7077096
languageName: node
linkType: hard
@@ -35311,9 +35192,9 @@ __metadata:
linkType: hard
"underscore@npm:^1.13.1":
version: 1.13.7
resolution: "underscore@npm:1.13.7"
checksum: 10/1ce3368dbe73d1e99678fa5d341a9682bd27316032ad2de7883901918f0f5d50e80320ccc543f53c1862ab057a818abc560462b5f83578afe2dd8dd7f779766c
version: 1.13.8
resolution: "underscore@npm:1.13.8"
checksum: 10/b50ac5806d059cc180b1bd9adea6f7ed500021f4dc782dfc75d66a90337f6f0506623c1b37863f4a9bf64ffbeb5769b638a54b7f2f5966816189955815953139
languageName: node
linkType: hard