From 68c8c56211bdf68669c3fd49a542d139b687a7d8 Mon Sep 17 00:00:00 2001 From: Relayflow Lead Date: Tue, 3 Nov 2026 02:13:54 -0800 Subject: [PATCH 1/6] fix(gitlab): ship canonical helper paths and support Relay 15.1 peers --- packages/sdk/package-lock.json | 42 +++--- packages/sdk/package.json | 8 +- packages/sdk/tests/gitlab-helper-path.test.ts | 18 +++ packages/sdk/tsconfig.tests.json | 1 + packages/surface/bun.lock | 2 +- packages/surface/package-lock.json | 142 +++++++++--------- packages/surface/package.json | 2 +- packages/surface/src/helpers/bitbucket.ts | 9 ++ packages/surface/src/helpers/index.ts | 4 + packages/surface/src/helpers/providers.ts | 7 + packages/surface/src/triggers/PROVIDERS.md | 3 +- packages/surface/src/triggers/bitbucket.ts | 40 +++++ packages/surface/src/triggers/index.ts | 2 + 13 files changed, 181 insertions(+), 99 deletions(-) create mode 100644 packages/sdk/tests/gitlab-helper-path.test.ts create mode 100644 packages/surface/src/helpers/bitbucket.ts create mode 100644 packages/surface/src/triggers/bitbucket.ts diff --git a/packages/sdk/package-lock.json b/packages/sdk/package-lock.json index 9f7d48933..4850a40da 100644 --- a/packages/sdk/package-lock.json +++ b/packages/sdk/package-lock.json @@ -10,8 +10,8 @@ "license": "Apache-2.0", "dependencies": { "@modelcontextprotocol/sdk": "^1.30.0", - "@relayfile/adapter-core": "0.6.2", - "@relayfile/relay-helpers": "0.4.12", + "@relayfile/adapter-core": "0.8.5", + "@relayfile/relay-helpers": "0.6.1", "@relayflows/surface": "2.0.59", "@types/js-yaml": "^4.0.9", "acorn": "^8.18.0", @@ -35,8 +35,8 @@ "vitest": "^2.1.0" }, "peerDependencies": { - "@agent-relay/harness-driver": ">=12.3.1 <13", - "@agent-relay/sdk": ">=12.3.1 <13" + "@agent-relay/harness-driver": ">=12.3.1 <13 || >=15.1.0 <16", + "@agent-relay/sdk": ">=12.3.1 <13 || >=15.1.0 <16" }, "peerDependenciesMeta": { "@agent-relay/harness-driver": { @@ -537,9 +537,9 @@ } }, "node_modules/@relayfile/adapter-core": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@relayfile/adapter-core/-/adapter-core-0.6.2.tgz", - "integrity": "sha512-fVBwiK1W0af4wQ4w/Jr7GA1VBH1qz9Qw1lm90MrOJN0zQfVq1YRwRu9fPk4rp50TQDveLBKE0+MoaLMUmqr5Jg==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@relayfile/adapter-core/-/adapter-core-0.8.5.tgz", + "integrity": "sha512-J10VAyHz1P7wQDKKmVCJD+2kORQs1icP7CtqG1u8r0wO73S76UStimPsCzlGl9UhVhzqdkCZ7wf+GKH9f4N6Aw==", "license": "Apache-2.0", "dependencies": { "@scalar/postman-to-openapi": "^0.6.0", @@ -558,12 +558,12 @@ } }, "node_modules/@relayfile/adapter-linear": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/@relayfile/adapter-linear/-/adapter-linear-0.4.13.tgz", - "integrity": "sha512-cJtjrmhK2dV5o7QD61N2vuvl4XnMGjrcWX5zrM9otneVVA983GHRKdHv014Hq7QSIpG5FMSuLGPziYn6vFJI+A==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@relayfile/adapter-linear/-/adapter-linear-0.6.1.tgz", + "integrity": "sha512-BeTSUcm0+vN4krpESFiAfvjJ/WesxKAKhpdQM6uuNYWyl3efNXMj5Qe5nDGCSO2QHMyhKAZYjCyzzgqB9YnqQw==", "license": "Apache-2.0", "dependencies": { - "@relayfile/adapter-core": "^0.6.1" + "@relayfile/adapter-core": "^0.8.5" }, "engines": { "node": ">=18" @@ -573,12 +573,12 @@ } }, "node_modules/@relayfile/adapter-reddit": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/@relayfile/adapter-reddit/-/adapter-reddit-0.2.10.tgz", - "integrity": "sha512-FBGpWqJgOAC7nSE3SUAPil+pYxpBne1higJmSqGIrycbiIvBPxbluUsTb5Ct7XSyvDB3QmMbOMog5CDaVLhnKQ==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@relayfile/adapter-reddit/-/adapter-reddit-0.4.1.tgz", + "integrity": "sha512-Mz57v1vIE5sEy5F4Z7ix550Ga6l615lgQi0QDc8kgjWiUD9QqZW+Wm+iG+96S4vIQueM70pm60/fitrGGnIGAw==", "license": "Apache-2.0", "dependencies": { - "@relayfile/adapter-core": "^0.6.1" + "@relayfile/adapter-core": "^0.8.5" }, "engines": { "node": ">=18" @@ -738,14 +738,14 @@ "peer": true }, "node_modules/@relayfile/relay-helpers": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/@relayfile/relay-helpers/-/relay-helpers-0.4.12.tgz", - "integrity": "sha512-Izjl33HLCjxDFVZHK/+f+e/73IUiEg534QNBJGkRYZXjH6LvPKfGiPXViiY5zYLxFtgnzNQa+/TI6MB4X3BnEQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@relayfile/relay-helpers/-/relay-helpers-0.6.1.tgz", + "integrity": "sha512-C43jTVFwsqoiyGoS2RczvGgpSyeu9+v7q9nDKZj2NJp9WBqRHTZd6DlU2jH/OB1ovnY4cIGbH3o7TMdNLc50aQ==", "license": "Apache-2.0", "dependencies": { - "@relayfile/adapter-core": "^0.6.1", - "@relayfile/adapter-linear": "^0.4.13", - "@relayfile/adapter-reddit": "^0.2.10" + "@relayfile/adapter-core": "^0.8.5", + "@relayfile/adapter-linear": "^0.6.1", + "@relayfile/adapter-reddit": "^0.4.1" } }, "node_modules/@relayfile/sdk": { diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 810d7db5b..fb442ea7a 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -48,8 +48,8 @@ "license": "Apache-2.0", "dependencies": { "@modelcontextprotocol/sdk": "^1.30.0", - "@relayfile/adapter-core": "0.6.2", - "@relayfile/relay-helpers": "0.4.12", + "@relayfile/adapter-core": "0.8.5", + "@relayfile/relay-helpers": "0.6.1", "@relayflows/surface": "2.0.59", "@types/js-yaml": "^4.0.9", "acorn": "^8.18.0", @@ -75,8 +75,8 @@ "directory": "packages/sdk" }, "peerDependencies": { - "@agent-relay/harness-driver": ">=12.3.1 <13", - "@agent-relay/sdk": ">=12.3.1 <13" + "@agent-relay/harness-driver": ">=12.3.1 <13 || >=15.1.0 <16", + "@agent-relay/sdk": ">=12.3.1 <13 || >=15.1.0 <16" }, "peerDependenciesMeta": { "@agent-relay/harness-driver": { diff --git a/packages/sdk/tests/gitlab-helper-path.test.ts b/packages/sdk/tests/gitlab-helper-path.test.ts new file mode 100644 index 000000000..9a8683088 --- /dev/null +++ b/packages/sdk/tests/gitlab-helper-path.test.ts @@ -0,0 +1,18 @@ +import { PreviewTransport, type gitlabClient } from '@relayfile/relay-helpers'; +import { helperClients } from '@relayflows/surface/runtime'; +import { expect, it } from 'vitest'; + +it('reads and writes the mounted GitLab project through the shipped helper factory', async () => { + const projectPath = 'acme/platform/web'; + const path = '/gitlab/projects/acme/platform/web/issues/5__existing/meta.json'; + const issue = { iid: 5, title: 'existing' }; + const transport = new PreviewTransport({ fixtures: { [path]: issue } }); + const client = helperClients.gitlab!({ transport }) as ReturnType; + + expect(await client.issues.read({ projectPath, issueIid: 5, slug: 'existing' })).toEqual(issue); + await client.issues.write({ projectPath }, { title: 'new issue' }); + expect(transport.actions).toMatchObject([ + { kind: 'provider.read', path }, + { kind: 'provider.write', path: expect.stringMatching(/^\/gitlab\/projects\/acme\/platform\/web\/issues\/[^/]+\.json$/u), body: { title: 'new issue' } }, + ]); +}); diff --git a/packages/sdk/tsconfig.tests.json b/packages/sdk/tsconfig.tests.json index 1ac977299..9af6213f8 100644 --- a/packages/sdk/tsconfig.tests.json +++ b/packages/sdk/tsconfig.tests.json @@ -22,6 +22,7 @@ "tests/run-from-digest.test.ts", "tests/run-digest-live.test.ts", "tests/helpers-fanout.test.ts", + "tests/gitlab-helper-path.test.ts", "tests/authored-helpers.test.ts", "tests/fixtures/build.flow.ts", "tests/typed-output.test.ts", diff --git a/packages/surface/bun.lock b/packages/surface/bun.lock index 859a362ac..f4270b89b 100644 --- a/packages/surface/bun.lock +++ b/packages/surface/bun.lock @@ -13,7 +13,7 @@ "vitest": "^2.1.0", }, "peerDependencies": { - "@relayfile/relay-helpers": "0.4.12", + "@relayfile/relay-helpers": "0.6.1", }, }, }, diff --git a/packages/surface/package-lock.json b/packages/surface/package-lock.json index 514653d64..d7969497c 100644 --- a/packages/surface/package-lock.json +++ b/packages/surface/package-lock.json @@ -20,7 +20,7 @@ "node": ">=20.19.0 || >=22.12.0" }, "peerDependencies": { - "@relayfile/relay-helpers": "0.4.12" + "@relayfile/relay-helpers": "0.6.1" } }, "node_modules/@esbuild/aix-ppc64": { @@ -504,9 +504,9 @@ } }, "node_modules/@relayfile/adapter-core": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@relayfile/adapter-core/-/adapter-core-0.6.2.tgz", - "integrity": "sha512-fVBwiK1W0af4wQ4w/Jr7GA1VBH1qz9Qw1lm90MrOJN0zQfVq1YRwRu9fPk4rp50TQDveLBKE0+MoaLMUmqr5Jg==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@relayfile/adapter-core/-/adapter-core-0.8.5.tgz", + "integrity": "sha512-J10VAyHz1P7wQDKKmVCJD+2kORQs1icP7CtqG1u8r0wO73S76UStimPsCzlGl9UhVhzqdkCZ7wf+GKH9f4N6Aw==", "license": "Apache-2.0", "peer": true, "dependencies": { @@ -526,13 +526,13 @@ } }, "node_modules/@relayfile/adapter-linear": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/@relayfile/adapter-linear/-/adapter-linear-0.4.13.tgz", - "integrity": "sha512-cJtjrmhK2dV5o7QD61N2vuvl4XnMGjrcWX5zrM9otneVVA983GHRKdHv014Hq7QSIpG5FMSuLGPziYn6vFJI+A==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@relayfile/adapter-linear/-/adapter-linear-0.6.1.tgz", + "integrity": "sha512-BeTSUcm0+vN4krpESFiAfvjJ/WesxKAKhpdQM6uuNYWyl3efNXMj5Qe5nDGCSO2QHMyhKAZYjCyzzgqB9YnqQw==", "license": "Apache-2.0", "peer": true, "dependencies": { - "@relayfile/adapter-core": "^0.6.1" + "@relayfile/adapter-core": "^0.8.5" }, "engines": { "node": ">=18" @@ -542,13 +542,13 @@ } }, "node_modules/@relayfile/adapter-reddit": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/@relayfile/adapter-reddit/-/adapter-reddit-0.2.10.tgz", - "integrity": "sha512-FBGpWqJgOAC7nSE3SUAPil+pYxpBne1higJmSqGIrycbiIvBPxbluUsTb5Ct7XSyvDB3QmMbOMog5CDaVLhnKQ==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@relayfile/adapter-reddit/-/adapter-reddit-0.4.1.tgz", + "integrity": "sha512-Mz57v1vIE5sEy5F4Z7ix550Ga6l615lgQi0QDc8kgjWiUD9QqZW+Wm+iG+96S4vIQueM70pm60/fitrGGnIGAw==", "license": "Apache-2.0", "peer": true, "dependencies": { - "@relayfile/adapter-core": "^0.6.1" + "@relayfile/adapter-core": "^0.8.5" }, "engines": { "node": ">=18" @@ -558,9 +558,9 @@ } }, "node_modules/@relayfile/cli-darwin-arm64": { - "version": "0.10.69", - "resolved": "https://registry.npmjs.org/@relayfile/cli-darwin-arm64/-/cli-darwin-arm64-0.10.69.tgz", - "integrity": "sha512-zJpbOfz4Iq2273TkQHvzOmQ06tA2jga6Pxa0WSYBHTfxMwWE7tk9gGwPrtU4ppOiyON6jvQuTQ3byBhwOwlLsQ==", + "version": "0.10.76", + "resolved": "https://registry.npmjs.org/@relayfile/cli-darwin-arm64/-/cli-darwin-arm64-0.10.76.tgz", + "integrity": "sha512-c+hoYqXm2V6poQNCgFM2Ls+rjh2/v5n/JRc9lWQPthKsiWCj+pN+2whltv5VmH4JZPeIxY5co9oOnZEGYxTrxQ==", "cpu": [ "arm64" ], @@ -572,9 +572,9 @@ "peer": true }, "node_modules/@relayfile/cli-darwin-x64": { - "version": "0.10.69", - "resolved": "https://registry.npmjs.org/@relayfile/cli-darwin-x64/-/cli-darwin-x64-0.10.69.tgz", - "integrity": "sha512-Tda09y7GP3cP8EsKYO0UJLoPOxQVYjrKGPcjF8Z/scWhpyU7cRTnMng9KsqnEDXZIVP/k8yiuku2PaylJjX0GA==", + "version": "0.10.76", + "resolved": "https://registry.npmjs.org/@relayfile/cli-darwin-x64/-/cli-darwin-x64-0.10.76.tgz", + "integrity": "sha512-WZ0y+ky7HkNdXKPqVEvyaw/B8so8GxlQiJtbuv1o+k6WOvFtraVtfvtfD9MSoEI4JnF2LCMvhcu5+p2TtyE3Ow==", "cpu": [ "x64" ], @@ -586,9 +586,9 @@ "peer": true }, "node_modules/@relayfile/cli-linux-arm64": { - "version": "0.10.69", - "resolved": "https://registry.npmjs.org/@relayfile/cli-linux-arm64/-/cli-linux-arm64-0.10.69.tgz", - "integrity": "sha512-5wZYIm55xkhf4UWBj7I/Evl7QU5/dYHsIEZEc/+QU70PTSGzMUKHjO66FcCyS0K5lSRJ6dngRP666kvl2G7vmQ==", + "version": "0.10.76", + "resolved": "https://registry.npmjs.org/@relayfile/cli-linux-arm64/-/cli-linux-arm64-0.10.76.tgz", + "integrity": "sha512-/OnmA3omX5u3ECk4tZbGsdGCydnqJqZXvVC3JfursA6krj5Eo41XAQP6p4VmoocTSdYSkW5jke0QCNzObg1nAQ==", "cpu": [ "arm64" ], @@ -600,9 +600,9 @@ "peer": true }, "node_modules/@relayfile/cli-linux-x64": { - "version": "0.10.69", - "resolved": "https://registry.npmjs.org/@relayfile/cli-linux-x64/-/cli-linux-x64-0.10.69.tgz", - "integrity": "sha512-BgnmP4He93T+Hr2McVQoPxprmdEM4D7kHev5Xziyrjapd1juTZwe0lBkpa8ngn8wyoDk/pVui04s6llGeAU3cw==", + "version": "0.10.76", + "resolved": "https://registry.npmjs.org/@relayfile/cli-linux-x64/-/cli-linux-x64-0.10.76.tgz", + "integrity": "sha512-644dg1zSJW82emAudfDoO9hsE0ltZ228/IpmCEqiVHPRRS0+et7WfnUhFlmbkfY50UqJEbX/oFLrZdFcOXNfTw==", "cpu": [ "x64" ], @@ -614,9 +614,9 @@ "peer": true }, "node_modules/@relayfile/cli-win32-arm64": { - "version": "0.10.69", - "resolved": "https://registry.npmjs.org/@relayfile/cli-win32-arm64/-/cli-win32-arm64-0.10.69.tgz", - "integrity": "sha512-KITNWpQaHBX7iBA1TgOHdO2xMtSY+LH4UkafzXztfVjTKwOjM4nCgLXfS59Z70l94ae7UowvBjgG9psuiAyJoQ==", + "version": "0.10.76", + "resolved": "https://registry.npmjs.org/@relayfile/cli-win32-arm64/-/cli-win32-arm64-0.10.76.tgz", + "integrity": "sha512-7s2u/ZCC5Wr7OjqrhuepZaE2uvv67+cECcxpQsC1qNZeY4Vh0Qxml1x2w77tcvLHQotH3qU1w9LRECmhX7Mm5Q==", "cpu": [ "arm64" ], @@ -628,9 +628,9 @@ "peer": true }, "node_modules/@relayfile/cli-win32-x64": { - "version": "0.10.69", - "resolved": "https://registry.npmjs.org/@relayfile/cli-win32-x64/-/cli-win32-x64-0.10.69.tgz", - "integrity": "sha512-wpogN9nsnw2boMGOhuHyS9SV13Y3QzikE0hTYculUIdxN0tPZDsWgNj2IsN8s/E6edA+TfQ+uUpbExadM/Y/LA==", + "version": "0.10.76", + "resolved": "https://registry.npmjs.org/@relayfile/cli-win32-x64/-/cli-win32-x64-0.10.76.tgz", + "integrity": "sha512-e2cbYM+xPvGUQ2G+Hzh/s0y07pTdalGDBRgmpgfyxZok4/jUpF0oxgt5VVVQi5tTZMCvDciTp2ZBHHtjqQ8zuQ==", "cpu": [ "x64" ], @@ -642,9 +642,9 @@ "peer": true }, "node_modules/@relayfile/core": { - "version": "0.10.69", - "resolved": "https://registry.npmjs.org/@relayfile/core/-/core-0.10.69.tgz", - "integrity": "sha512-ZN2UrobsvOOcLkI7mZ3HFW0VK1YWwaxL3q8T1pIPj6hRzufQCnaWwXtk7XVpIFRGerdUSrWbnYJZXfg/jgBtzA==", + "version": "0.10.76", + "resolved": "https://registry.npmjs.org/@relayfile/core/-/core-0.10.76.tgz", + "integrity": "sha512-fwcGn8wqKjIaZPj7cpaIwqFCY/TZlHUWjrirunUNlUjEdYk8VtrjZYBzFLRF3fOQz7hPvsokZahxwCvyyeqEtg==", "license": "Apache-2.0", "peer": true, "engines": { @@ -652,9 +652,9 @@ } }, "node_modules/@relayfile/mount-darwin-arm64": { - "version": "0.10.69", - "resolved": "https://registry.npmjs.org/@relayfile/mount-darwin-arm64/-/mount-darwin-arm64-0.10.69.tgz", - "integrity": "sha512-IyZqcC+bKyP8yIfTbUAOvbtDp7JPcYCypMtv+CS+hew6TX7C6/wr+gUAn4Er3zELIjW3Ktjzi86O8c8TUoX7sQ==", + "version": "0.10.76", + "resolved": "https://registry.npmjs.org/@relayfile/mount-darwin-arm64/-/mount-darwin-arm64-0.10.76.tgz", + "integrity": "sha512-WlYaBzCKIB/m7hxRgHhDFNSRsEDaHBwaIrj6WZ+YfVOeVciFwE9jLIwKX1Ku3Dm32uimwDQM9PT6LJD0EzKtxw==", "cpu": [ "arm64" ], @@ -666,9 +666,9 @@ "peer": true }, "node_modules/@relayfile/mount-darwin-x64": { - "version": "0.10.69", - "resolved": "https://registry.npmjs.org/@relayfile/mount-darwin-x64/-/mount-darwin-x64-0.10.69.tgz", - "integrity": "sha512-S6nFPo7lRRo0HFagqZtqa7QRVSiFxGbGl0fEs+1TVRWlQt5ibvbpPMpcE7zOd7z4I/g4EOw+pmOcHmXXkjPNSA==", + "version": "0.10.76", + "resolved": "https://registry.npmjs.org/@relayfile/mount-darwin-x64/-/mount-darwin-x64-0.10.76.tgz", + "integrity": "sha512-41MorpFsVEzJPpLxnaIcgrDIhxj+hUzdMdh57M8/9GOXkLJY6b+6MWz1yPPlA0X3r6dkoxd/5reNqQmDBV8fQg==", "cpu": [ "x64" ], @@ -680,9 +680,9 @@ "peer": true }, "node_modules/@relayfile/mount-linux-arm64": { - "version": "0.10.69", - "resolved": "https://registry.npmjs.org/@relayfile/mount-linux-arm64/-/mount-linux-arm64-0.10.69.tgz", - "integrity": "sha512-bhbHhwcd+wvpoz5mxqAF6h/74phb1mcxMzIDacAiuSQ9ymXxcc9IGd3nvFSr+h0wsyKfZN8tGppBN/Ez1h/ZLA==", + "version": "0.10.76", + "resolved": "https://registry.npmjs.org/@relayfile/mount-linux-arm64/-/mount-linux-arm64-0.10.76.tgz", + "integrity": "sha512-I/xkA/QED/DNDqapTEL7uTcc5UPJ/aAirSulCA3Y3yA7TnMv4I5QK+l2EDXzoxDTiF1LoadEtCZoTzRE0MeiLQ==", "cpu": [ "arm64" ], @@ -694,9 +694,9 @@ "peer": true }, "node_modules/@relayfile/mount-linux-x64": { - "version": "0.10.69", - "resolved": "https://registry.npmjs.org/@relayfile/mount-linux-x64/-/mount-linux-x64-0.10.69.tgz", - "integrity": "sha512-aTy6ZiYgF+8SuSF9hGDgJU/z9K6rh+UUAl6Emp/valiw3FmM0fLOt2rAt1/KyXtuhgJE09/XoPRYBLa8UyIeUg==", + "version": "0.10.76", + "resolved": "https://registry.npmjs.org/@relayfile/mount-linux-x64/-/mount-linux-x64-0.10.76.tgz", + "integrity": "sha512-PRVNoCyJrJZSHMB1YnxzfYosdi5eugAyKJvmze8qnnS/uIGMtsFdWHtdBs9LOp/Lx5QzGV6q7Rmaa35GkbpLQQ==", "cpu": [ "x64" ], @@ -708,25 +708,25 @@ "peer": true }, "node_modules/@relayfile/relay-helpers": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/@relayfile/relay-helpers/-/relay-helpers-0.4.12.tgz", - "integrity": "sha512-Izjl33HLCjxDFVZHK/+f+e/73IUiEg534QNBJGkRYZXjH6LvPKfGiPXViiY5zYLxFtgnzNQa+/TI6MB4X3BnEQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@relayfile/relay-helpers/-/relay-helpers-0.6.1.tgz", + "integrity": "sha512-C43jTVFwsqoiyGoS2RczvGgpSyeu9+v7q9nDKZj2NJp9WBqRHTZd6DlU2jH/OB1ovnY4cIGbH3o7TMdNLc50aQ==", "license": "Apache-2.0", "peer": true, "dependencies": { - "@relayfile/adapter-core": "^0.6.1", - "@relayfile/adapter-linear": "^0.4.13", - "@relayfile/adapter-reddit": "^0.2.10" + "@relayfile/adapter-core": "^0.8.5", + "@relayfile/adapter-linear": "^0.6.1", + "@relayfile/adapter-reddit": "^0.4.1" } }, "node_modules/@relayfile/sdk": { - "version": "0.10.69", - "resolved": "https://registry.npmjs.org/@relayfile/sdk/-/sdk-0.10.69.tgz", - "integrity": "sha512-yKImAt0XrR7lqJTaWXCv4NlCyZe1YFxh1qEBKoKCPYhEiF31Rrbarq+PZlQybg4r2Kbiff4XtSERMy31iHvoSw==", + "version": "0.10.76", + "resolved": "https://registry.npmjs.org/@relayfile/sdk/-/sdk-0.10.76.tgz", + "integrity": "sha512-/4PiO5FxsdF+IQ4MfZ6+eOe8ml1PU2CLdEzSpAbuPhO4nDT8npuZwOzXOs5KFv/tqPG9ldWnLTsUqPPpaUc63A==", "license": "Apache-2.0", "peer": true, "dependencies": { - "@relayfile/core": "0.10.69", + "@relayfile/core": "0.10.76", "ignore": "^7.0.5", "tar": "^7.5.10" }, @@ -734,16 +734,16 @@ "node": ">=18" }, "optionalDependencies": { - "@relayfile/cli-darwin-arm64": "0.10.69", - "@relayfile/cli-darwin-x64": "0.10.69", - "@relayfile/cli-linux-arm64": "0.10.69", - "@relayfile/cli-linux-x64": "0.10.69", - "@relayfile/cli-win32-arm64": "0.10.69", - "@relayfile/cli-win32-x64": "0.10.69", - "@relayfile/mount-darwin-arm64": "0.10.69", - "@relayfile/mount-darwin-x64": "0.10.69", - "@relayfile/mount-linux-arm64": "0.10.69", - "@relayfile/mount-linux-x64": "0.10.69" + "@relayfile/cli-darwin-arm64": "0.10.76", + "@relayfile/cli-darwin-x64": "0.10.76", + "@relayfile/cli-linux-arm64": "0.10.76", + "@relayfile/cli-linux-x64": "0.10.76", + "@relayfile/cli-win32-arm64": "0.10.76", + "@relayfile/cli-win32-x64": "0.10.76", + "@relayfile/mount-darwin-arm64": "0.10.76", + "@relayfile/mount-darwin-x64": "0.10.76", + "@relayfile/mount-linux-arm64": "0.10.76", + "@relayfile/mount-linux-x64": "0.10.76" } }, "node_modules/@rollup/rollup-android-arm-eabi": { @@ -2225,9 +2225,9 @@ } }, "node_modules/ignore": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.9.tgz", - "integrity": "sha512-brTTsvFRt5C1gGHtPst/281UjPD5t9fBqbgoMPlVWy11ZLTPfu7HxK4ZYqO9H7o/yC9rSTCI85EaQ4OoY12qYw==", + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.14.tgz", + "integrity": "sha512-wCBiZ77u1tuWde6G/nfOtLaCTYcFDU5yCzARzK10y+rLhzYoL7a7yEemcopcc2Mzow7gZOIjnV2ym1NYmdiJOQ==", "license": "MIT", "peer": true, "engines": { @@ -3098,9 +3098,9 @@ } }, "node_modules/undici": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.1.tgz", - "integrity": "sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==", + "version": "7.30.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.30.1.tgz", + "integrity": "sha512-03KrMbjIFDWQR5RNPrSw3bd1r12JpyFQl9/yxjUbJtqkjmllqC5lFjZh6ujeuJCKr8EOQvRW872Oy/az+nLYxg==", "license": "MIT", "peer": true, "engines": { diff --git a/packages/surface/package.json b/packages/surface/package.json index b65023689..19fa475cc 100644 --- a/packages/surface/package.json +++ b/packages/surface/package.json @@ -64,7 +64,7 @@ "directory": "packages/surface" }, "peerDependencies": { - "@relayfile/relay-helpers": "0.4.12" + "@relayfile/relay-helpers": "0.6.1" }, "dependencies": { "ai-hist": "0.4.1" diff --git a/packages/surface/src/helpers/bitbucket.ts b/packages/surface/src/helpers/bitbucket.ts new file mode 100644 index 000000000..fe9d69ee0 --- /dev/null +++ b/packages/surface/src/helpers/bitbucket.ts @@ -0,0 +1,9 @@ +// GENERATED by scripts/generate-helpers.mjs — do not edit. +// Run `npm run gen --prefix packages/surface` from the repository root. + +import { bindHelper, type EffectDispatcher, type JournalHelper, type UnavailableHelper } from "../effect-transport.js"; + +export type BitbucketHelper = UnavailableHelper; + +export const createBitbucketHelper = (dispatch: EffectDispatcher): BitbucketHelper => + bindHelper("bitbucket", undefined, dispatch); diff --git a/packages/surface/src/helpers/index.ts b/packages/surface/src/helpers/index.ts index 0dcbe20c9..83b4f386e 100644 --- a/packages/surface/src/helpers/index.ts +++ b/packages/surface/src/helpers/index.ts @@ -5,6 +5,7 @@ import type { SlackHelper } from "./slack.js"; import { createAirtableHelper, type AirtableHelper } from "./airtable.js"; import { createAsanaHelper, type AsanaHelper } from "./asana.js"; import { createAzureBlobHelper, type AzureBlobHelper } from "./azure-blob.js"; +import { createBitbucketHelper, type BitbucketHelper } from "./bitbucket.js"; import { createBoxHelper, type BoxHelper } from "./box.js"; import { createCalendlyHelper, type CalendlyHelper } from "./calendly.js"; import { createClickupHelper, type ClickupHelper } from "./clickup.js"; @@ -56,6 +57,7 @@ import type { EffectDispatcher } from "../effect-transport.js"; export type { AirtableHelper } from "./airtable.js"; export type { AsanaHelper } from "./asana.js"; export type { AzureBlobHelper } from "./azure-blob.js"; +export type { BitbucketHelper } from "./bitbucket.js"; export type { BoxHelper } from "./box.js"; export type { CalendlyHelper } from "./calendly.js"; export type { ClickupHelper } from "./clickup.js"; @@ -108,6 +110,7 @@ export interface Helpers { airtable: AirtableHelper; asana: AsanaHelper; azureBlob: AzureBlobHelper; + bitbucket: BitbucketHelper; box: BoxHelper; calendly: CalendlyHelper; clickup: ClickupHelper; @@ -162,6 +165,7 @@ export function createHelpers(dispatch: EffectDispatcher): Omit # Provider trigger namespaces -47 providers, 573 events. `mapping` rows come from the adapter's `webhooks:` block (payload-aware signatures); `catalog` rows come from `KNOWN_TRIGGER_CATALOG` (`supportedEvents()`) only. Every provider also includes its catalog events, so the count is what ingress delivers. +48 providers, 584 events. `mapping` rows come from the adapter's `webhooks:` block (payload-aware signatures); `catalog` rows come from `KNOWN_TRIGGER_CATALOG` (`supportedEvents()`) only. Every provider also includes its catalog events, so the count is what ingress delivers. | Provider | Namespace | Events | Source | Registry-only events | |---|---|---:|---|---| | `airtable` | `airtable` | 9 | catalog | | | `asana` | `asana` | 17 | catalog | | | `azure-blob` | `azure_blob` | 3 | mapping | | +| `bitbucket` | `bitbucket` | 11 | mapping | | | `box` | `box` | 3 | mapping | | | `calendly` | `calendly` | 12 | catalog | | | `clickup` | `clickup` | 12 | catalog | | diff --git a/packages/surface/src/triggers/bitbucket.ts b/packages/surface/src/triggers/bitbucket.ts new file mode 100644 index 000000000..3f20aa7a0 --- /dev/null +++ b/packages/surface/src/triggers/bitbucket.ts @@ -0,0 +1,40 @@ +// GENERATED by scripts/generate-triggers.mjs — do not edit. + +import { providerTrigger } from "../provider-trigger.js"; +import type { WebhookFilter } from "../triggers.js"; + +export const bitbucket = Object.freeze({ + pullrequest_comment_created(filter?: WebhookFilter) { + return providerTrigger("bitbucket", "pullrequest:comment_created", filter); + }, + pullrequest_comment_deleted(filter?: WebhookFilter) { + return providerTrigger("bitbucket", "pullrequest:comment_deleted", filter); + }, + pullrequest_created(filter?: WebhookFilter) { + return providerTrigger("bitbucket", "pullrequest:created", filter); + }, + pullrequest_fulfilled(filter?: WebhookFilter) { + return providerTrigger("bitbucket", "pullrequest:fulfilled", filter); + }, + pullrequest_rejected(filter?: WebhookFilter) { + return providerTrigger("bitbucket", "pullrequest:rejected", filter); + }, + pullrequest_updated(filter?: WebhookFilter) { + return providerTrigger("bitbucket", "pullrequest:updated", filter); + }, + repo_commit_status_created(filter?: WebhookFilter) { + return providerTrigger("bitbucket", "repo:commit_status_created", filter); + }, + repo_commit_status_updated(filter?: WebhookFilter) { + return providerTrigger("bitbucket", "repo:commit_status_updated", filter); + }, + repo_deleted(filter?: WebhookFilter) { + return providerTrigger("bitbucket", "repo:deleted", filter); + }, + repo_push(filter?: WebhookFilter) { + return providerTrigger("bitbucket", "repo:push", filter); + }, + repo_updated(filter?: WebhookFilter) { + return providerTrigger("bitbucket", "repo:updated", filter); + }, +}); diff --git a/packages/surface/src/triggers/index.ts b/packages/surface/src/triggers/index.ts index 4555ffa37..ea26a176d 100644 --- a/packages/surface/src/triggers/index.ts +++ b/packages/surface/src/triggers/index.ts @@ -3,6 +3,7 @@ export { airtable } from "./airtable.js"; export { asana } from "./asana.js"; export { azure_blob } from "./azure-blob.js"; +export { bitbucket } from "./bitbucket.js"; export { box } from "./box.js"; export { calendly } from "./calendly.js"; export { clickup } from "./clickup.js"; @@ -53,6 +54,7 @@ export const providerEventTypes = Object.freeze({ "airtable": Object.freeze(["base.create","base.delete","base.update","record.create","record.delete","record.update","table.create","table.delete","table.update"] as const), "asana": Object.freeze(["project.added","project.changed","project.deleted","project.removed","section.added","section.changed","section.deleted","section.removed","task.added","task.changed","task.completed","task.deleted","task.removed","workspace.added","workspace.changed","workspace.deleted","workspace.removed"] as const), "azure-blob": Object.freeze(["file.created","file.deleted","file.updated"] as const), + "bitbucket": Object.freeze(["pullrequest:comment_created","pullrequest:comment_deleted","pullrequest:created","pullrequest:fulfilled","pullrequest:rejected","pullrequest:updated","repo:commit_status_created","repo:commit_status_updated","repo:deleted","repo:push","repo:updated"] as const), "box": Object.freeze(["file.created","file.deleted","file.updated"] as const), "calendly": Object.freeze(["event_type.canceled","event_type.created","event_type.deleted","event_type.updated","invitee.canceled","invitee.created","invitee.deleted","invitee.updated","scheduled_event.canceled","scheduled_event.created","scheduled_event.deleted","scheduled_event.updated"] as const), "clickup": Object.freeze(["folder.created","folder.deleted","folder.updated","list.created","list.deleted","list.updated","space.created","space.deleted","space.updated","task.created","task.deleted","task.updated"] as const), From 024a5e7eb771a996e02b2137bc0f91a34ca2fe3d Mon Sep 17 00:00:00 2001 From: Relayflow Lead Date: Tue, 3 Nov 2026 02:19:40 -0800 Subject: [PATCH 2/6] fix(packaging): align clean installs on the corrected helper release --- packages/sdk/package.json | 5 ++ packages/surface/bun.lock | 126 +++++++++++++++++++------------------- 2 files changed, 68 insertions(+), 63 deletions(-) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index fb442ea7a..5447a476c 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -85,5 +85,10 @@ "@agent-relay/sdk": { "optional": true } + }, + "overrides": { + "@relayflows/surface": { + "@relayfile/relay-helpers": "$@relayfile/relay-helpers" + } } } diff --git a/packages/surface/bun.lock b/packages/surface/bun.lock index f4270b89b..e03edeb38 100644 --- a/packages/surface/bun.lock +++ b/packages/surface/bun.lock @@ -1,6 +1,6 @@ { "lockfileVersion": 1, - "configVersion": 1, + "configVersion": 0, "workspaces": { "": { "name": "@relayflows/surface", @@ -70,91 +70,91 @@ "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.6.0", "", {}, "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw=="], - "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.30.0", "", { "dependencies": { "@hono/node-server": "^1.19.9 || ^2.0.5", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA=="], + "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.30.0", "", { "dependencies": { "@hono/node-server": "^1.19.9 || ^2.0.5", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1", "zod": "^3.25 || ^4.0" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA=="], "@napi-rs/lzma-linux-x64-gnu": ["@napi-rs/lzma-linux-x64-gnu@1.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ=="], - "@relayfile/adapter-core": ["@relayfile/adapter-core@0.6.2", "", { "dependencies": { "@scalar/postman-to-openapi": "^0.6.0", "cheerio": "^1.2.0", "minimatch": "^10.0.3", "yaml": "^2.8.1" }, "peerDependencies": { "@relayfile/sdk": ">=0.6.0 <1" }, "bin": { "adapter-core": "dist/src/cli.js" } }, "sha512-fVBwiK1W0af4wQ4w/Jr7GA1VBH1qz9Qw1lm90MrOJN0zQfVq1YRwRu9fPk4rp50TQDveLBKE0+MoaLMUmqr5Jg=="], + "@relayfile/adapter-core": ["@relayfile/adapter-core@0.8.5", "", { "dependencies": { "@scalar/postman-to-openapi": "^0.6.0", "cheerio": "^1.2.0", "minimatch": "^10.0.3", "yaml": "^2.8.1" }, "peerDependencies": { "@relayfile/sdk": ">=0.6.0 <1" }, "bin": { "adapter-core": "dist/src/cli.js" } }, "sha512-J10VAyHz1P7wQDKKmVCJD+2kORQs1icP7CtqG1u8r0wO73S76UStimPsCzlGl9UhVhzqdkCZ7wf+GKH9f4N6Aw=="], - "@relayfile/adapter-linear": ["@relayfile/adapter-linear@0.4.13", "", { "dependencies": { "@relayfile/adapter-core": "^0.6.1" }, "peerDependencies": { "@relayfile/sdk": ">=0.6.0 <1" } }, "sha512-cJtjrmhK2dV5o7QD61N2vuvl4XnMGjrcWX5zrM9otneVVA983GHRKdHv014Hq7QSIpG5FMSuLGPziYn6vFJI+A=="], + "@relayfile/adapter-linear": ["@relayfile/adapter-linear@0.6.1", "", { "dependencies": { "@relayfile/adapter-core": "^0.8.5" }, "peerDependencies": { "@relayfile/sdk": ">=0.6.0 <1" } }, "sha512-BeTSUcm0+vN4krpESFiAfvjJ/WesxKAKhpdQM6uuNYWyl3efNXMj5Qe5nDGCSO2QHMyhKAZYjCyzzgqB9YnqQw=="], - "@relayfile/adapter-reddit": ["@relayfile/adapter-reddit@0.2.10", "", { "dependencies": { "@relayfile/adapter-core": "^0.6.1" }, "peerDependencies": { "@relayfile/sdk": ">=0.6.0 <1" } }, "sha512-FBGpWqJgOAC7nSE3SUAPil+pYxpBne1higJmSqGIrycbiIvBPxbluUsTb5Ct7XSyvDB3QmMbOMog5CDaVLhnKQ=="], + "@relayfile/adapter-reddit": ["@relayfile/adapter-reddit@0.4.1", "", { "dependencies": { "@relayfile/adapter-core": "^0.8.5" }, "peerDependencies": { "@relayfile/sdk": ">=0.6.0 <1" } }, "sha512-Mz57v1vIE5sEy5F4Z7ix550Ga6l615lgQi0QDc8kgjWiUD9QqZW+Wm+iG+96S4vIQueM70pm60/fitrGGnIGAw=="], - "@relayfile/cli-darwin-arm64": ["@relayfile/cli-darwin-arm64@0.10.69", "", { "os": "darwin", "cpu": "arm64" }, "sha512-zJpbOfz4Iq2273TkQHvzOmQ06tA2jga6Pxa0WSYBHTfxMwWE7tk9gGwPrtU4ppOiyON6jvQuTQ3byBhwOwlLsQ=="], + "@relayfile/cli-darwin-arm64": ["@relayfile/cli-darwin-arm64@0.10.76", "", { "os": "darwin", "cpu": "arm64" }, "sha512-c+hoYqXm2V6poQNCgFM2Ls+rjh2/v5n/JRc9lWQPthKsiWCj+pN+2whltv5VmH4JZPeIxY5co9oOnZEGYxTrxQ=="], - "@relayfile/cli-darwin-x64": ["@relayfile/cli-darwin-x64@0.10.69", "", { "os": "darwin", "cpu": "x64" }, "sha512-Tda09y7GP3cP8EsKYO0UJLoPOxQVYjrKGPcjF8Z/scWhpyU7cRTnMng9KsqnEDXZIVP/k8yiuku2PaylJjX0GA=="], + "@relayfile/cli-darwin-x64": ["@relayfile/cli-darwin-x64@0.10.76", "", { "os": "darwin", "cpu": "x64" }, "sha512-WZ0y+ky7HkNdXKPqVEvyaw/B8so8GxlQiJtbuv1o+k6WOvFtraVtfvtfD9MSoEI4JnF2LCMvhcu5+p2TtyE3Ow=="], - "@relayfile/cli-linux-arm64": ["@relayfile/cli-linux-arm64@0.10.69", "", { "os": "linux", "cpu": "arm64" }, "sha512-5wZYIm55xkhf4UWBj7I/Evl7QU5/dYHsIEZEc/+QU70PTSGzMUKHjO66FcCyS0K5lSRJ6dngRP666kvl2G7vmQ=="], + "@relayfile/cli-linux-arm64": ["@relayfile/cli-linux-arm64@0.10.76", "", { "os": "linux", "cpu": "arm64" }, "sha512-/OnmA3omX5u3ECk4tZbGsdGCydnqJqZXvVC3JfursA6krj5Eo41XAQP6p4VmoocTSdYSkW5jke0QCNzObg1nAQ=="], - "@relayfile/cli-linux-x64": ["@relayfile/cli-linux-x64@0.10.69", "", { "os": "linux", "cpu": "x64" }, "sha512-BgnmP4He93T+Hr2McVQoPxprmdEM4D7kHev5Xziyrjapd1juTZwe0lBkpa8ngn8wyoDk/pVui04s6llGeAU3cw=="], + "@relayfile/cli-linux-x64": ["@relayfile/cli-linux-x64@0.10.76", "", { "os": "linux", "cpu": "x64" }, "sha512-644dg1zSJW82emAudfDoO9hsE0ltZ228/IpmCEqiVHPRRS0+et7WfnUhFlmbkfY50UqJEbX/oFLrZdFcOXNfTw=="], - "@relayfile/cli-win32-arm64": ["@relayfile/cli-win32-arm64@0.10.69", "", { "os": "win32", "cpu": "arm64" }, "sha512-KITNWpQaHBX7iBA1TgOHdO2xMtSY+LH4UkafzXztfVjTKwOjM4nCgLXfS59Z70l94ae7UowvBjgG9psuiAyJoQ=="], + "@relayfile/cli-win32-arm64": ["@relayfile/cli-win32-arm64@0.10.76", "", { "os": "win32", "cpu": "arm64" }, "sha512-7s2u/ZCC5Wr7OjqrhuepZaE2uvv67+cECcxpQsC1qNZeY4Vh0Qxml1x2w77tcvLHQotH3qU1w9LRECmhX7Mm5Q=="], - "@relayfile/cli-win32-x64": ["@relayfile/cli-win32-x64@0.10.69", "", { "os": "win32", "cpu": "x64" }, "sha512-wpogN9nsnw2boMGOhuHyS9SV13Y3QzikE0hTYculUIdxN0tPZDsWgNj2IsN8s/E6edA+TfQ+uUpbExadM/Y/LA=="], + "@relayfile/cli-win32-x64": ["@relayfile/cli-win32-x64@0.10.76", "", { "os": "win32", "cpu": "x64" }, "sha512-e2cbYM+xPvGUQ2G+Hzh/s0y07pTdalGDBRgmpgfyxZok4/jUpF0oxgt5VVVQi5tTZMCvDciTp2ZBHHtjqQ8zuQ=="], - "@relayfile/core": ["@relayfile/core@0.10.69", "", {}, "sha512-ZN2UrobsvOOcLkI7mZ3HFW0VK1YWwaxL3q8T1pIPj6hRzufQCnaWwXtk7XVpIFRGerdUSrWbnYJZXfg/jgBtzA=="], + "@relayfile/core": ["@relayfile/core@0.10.76", "", {}, "sha512-fwcGn8wqKjIaZPj7cpaIwqFCY/TZlHUWjrirunUNlUjEdYk8VtrjZYBzFLRF3fOQz7hPvsokZahxwCvyyeqEtg=="], - "@relayfile/mount-darwin-arm64": ["@relayfile/mount-darwin-arm64@0.10.69", "", { "os": "darwin", "cpu": "arm64" }, "sha512-IyZqcC+bKyP8yIfTbUAOvbtDp7JPcYCypMtv+CS+hew6TX7C6/wr+gUAn4Er3zELIjW3Ktjzi86O8c8TUoX7sQ=="], + "@relayfile/mount-darwin-arm64": ["@relayfile/mount-darwin-arm64@0.10.76", "", { "os": "darwin", "cpu": "arm64" }, "sha512-WlYaBzCKIB/m7hxRgHhDFNSRsEDaHBwaIrj6WZ+YfVOeVciFwE9jLIwKX1Ku3Dm32uimwDQM9PT6LJD0EzKtxw=="], - "@relayfile/mount-darwin-x64": ["@relayfile/mount-darwin-x64@0.10.69", "", { "os": "darwin", "cpu": "x64" }, "sha512-S6nFPo7lRRo0HFagqZtqa7QRVSiFxGbGl0fEs+1TVRWlQt5ibvbpPMpcE7zOd7z4I/g4EOw+pmOcHmXXkjPNSA=="], + "@relayfile/mount-darwin-x64": ["@relayfile/mount-darwin-x64@0.10.76", "", { "os": "darwin", "cpu": "x64" }, "sha512-41MorpFsVEzJPpLxnaIcgrDIhxj+hUzdMdh57M8/9GOXkLJY6b+6MWz1yPPlA0X3r6dkoxd/5reNqQmDBV8fQg=="], - "@relayfile/mount-linux-arm64": ["@relayfile/mount-linux-arm64@0.10.69", "", { "os": "linux", "cpu": "arm64" }, "sha512-bhbHhwcd+wvpoz5mxqAF6h/74phb1mcxMzIDacAiuSQ9ymXxcc9IGd3nvFSr+h0wsyKfZN8tGppBN/Ez1h/ZLA=="], + "@relayfile/mount-linux-arm64": ["@relayfile/mount-linux-arm64@0.10.76", "", { "os": "linux", "cpu": "arm64" }, "sha512-I/xkA/QED/DNDqapTEL7uTcc5UPJ/aAirSulCA3Y3yA7TnMv4I5QK+l2EDXzoxDTiF1LoadEtCZoTzRE0MeiLQ=="], - "@relayfile/mount-linux-x64": ["@relayfile/mount-linux-x64@0.10.69", "", { "os": "linux", "cpu": "x64" }, "sha512-aTy6ZiYgF+8SuSF9hGDgJU/z9K6rh+UUAl6Emp/valiw3FmM0fLOt2rAt1/KyXtuhgJE09/XoPRYBLa8UyIeUg=="], + "@relayfile/mount-linux-x64": ["@relayfile/mount-linux-x64@0.10.76", "", { "os": "linux", "cpu": "x64" }, "sha512-PRVNoCyJrJZSHMB1YnxzfYosdi5eugAyKJvmze8qnnS/uIGMtsFdWHtdBs9LOp/Lx5QzGV6q7Rmaa35GkbpLQQ=="], - "@relayfile/relay-helpers": ["@relayfile/relay-helpers@0.4.12", "", { "dependencies": { "@relayfile/adapter-core": "^0.6.1", "@relayfile/adapter-linear": "^0.4.13", "@relayfile/adapter-reddit": "^0.2.10" } }, "sha512-Izjl33HLCjxDFVZHK/+f+e/73IUiEg534QNBJGkRYZXjH6LvPKfGiPXViiY5zYLxFtgnzNQa+/TI6MB4X3BnEQ=="], + "@relayfile/relay-helpers": ["@relayfile/relay-helpers@0.6.1", "", { "dependencies": { "@relayfile/adapter-core": "^0.8.5", "@relayfile/adapter-linear": "^0.6.1", "@relayfile/adapter-reddit": "^0.4.1" } }, "sha512-C43jTVFwsqoiyGoS2RczvGgpSyeu9+v7q9nDKZj2NJp9WBqRHTZd6DlU2jH/OB1ovnY4cIGbH3o7TMdNLc50aQ=="], - "@relayfile/sdk": ["@relayfile/sdk@0.10.69", "", { "dependencies": { "@relayfile/core": "0.10.69", "ignore": "^7.0.5", "tar": "^7.5.10" }, "optionalDependencies": { "@relayfile/cli-darwin-arm64": "0.10.69", "@relayfile/cli-darwin-x64": "0.10.69", "@relayfile/cli-linux-arm64": "0.10.69", "@relayfile/cli-linux-x64": "0.10.69", "@relayfile/cli-win32-arm64": "0.10.69", "@relayfile/cli-win32-x64": "0.10.69", "@relayfile/mount-darwin-arm64": "0.10.69", "@relayfile/mount-darwin-x64": "0.10.69", "@relayfile/mount-linux-arm64": "0.10.69", "@relayfile/mount-linux-x64": "0.10.69" } }, "sha512-yKImAt0XrR7lqJTaWXCv4NlCyZe1YFxh1qEBKoKCPYhEiF31Rrbarq+PZlQybg4r2Kbiff4XtSERMy31iHvoSw=="], + "@relayfile/sdk": ["@relayfile/sdk@0.10.76", "", { "dependencies": { "@relayfile/core": "0.10.76", "ignore": "^7.0.5", "tar": "^7.5.10" }, "optionalDependencies": { "@relayfile/cli-darwin-arm64": "0.10.76", "@relayfile/cli-darwin-x64": "0.10.76", "@relayfile/cli-linux-arm64": "0.10.76", "@relayfile/cli-linux-x64": "0.10.76", "@relayfile/cli-win32-arm64": "0.10.76", "@relayfile/cli-win32-x64": "0.10.76", "@relayfile/mount-darwin-arm64": "0.10.76", "@relayfile/mount-darwin-x64": "0.10.76", "@relayfile/mount-linux-arm64": "0.10.76", "@relayfile/mount-linux-x64": "0.10.76" } }, "sha512-/4PiO5FxsdF+IQ4MfZ6+eOe8ml1PU2CLdEzSpAbuPhO4nDT8npuZwOzXOs5KFv/tqPG9ldWnLTsUqPPpaUc63A=="], - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.63.4", "", { "os": "android", "cpu": "arm" }, "sha512-I+BSHzTAhKN2n7ZwGZsegGcZjDpLqFOMAtJz/u6uFGe0pUFbq56dEHjqJV/ZUdRJtNXNxA+hREUatZBvMR3Oiw=="], + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.63.1", "", { "os": "android", "cpu": "arm" }, "sha512-UZ8sUxPTiHWYX9QNdJedb1kDZSpS1t/VPWBWGSgqHNi9w3Cu6IXvu2mzbhiTiPvtrqgTQJ+zqiAq2iPIPilpaQ=="], - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.63.4", "", { "os": "android", "cpu": "arm64" }, "sha512-pu3BdjS2LtEzRu2elmGzS3fIeWSZy4BMDIaLNwjorO76+k2d0LMluijhsDx3KQyQBQ/lLUZCQA9/s6csvUfuhw=="], + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.63.1", "", { "os": "android", "cpu": "arm64" }, "sha512-cQ4nFQABN5cDvDpbvJ7bMStCpnaVxynZrRMfUJYgxcIk9Sh54FIO1vtfkg0B69REjER77ioZ/ov+eAApx/KmLQ=="], - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.63.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-xfSrj9MHnWK9GaSqT9U0ImHtH/N8WZlHLx4cZHiuLcqs640hvZ3hLPd5UR2AZS57FaE8HrRUSpltbZdWRxHiDA=="], + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.63.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-FQNqd1lRy/0QhDk3xeRIkSBiCpXCiDnZO3YLVdcDKN1UBiKToNftCzcXYNLshmPDUMlu2TdeS8tGcsU6f3YF1Q=="], - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.63.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-bqU99PLJb/dqb3S0GIMdeuyAEETSUgZBoqXYd3Sd+WCsV+MmPhnN6JrotWyir31+QgH7EvvE5/mwGJlEoci8Fw=="], + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.63.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-pvD16V939D3CloK0+qikpGaxiPrDUXTe7Y5cWOMkMSy7m1cawa8EGy/kXYi/G/cKAC4HDAbSnzCIk1WmsoOKXg=="], - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.63.4", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-JinsFZ5G40oXQb+sUuiA5x689vhr6dDYK0H0NL+rwKdL6CqnmYN8PE4ZwfRSoIjrCxqTQG/SLfTtSvHeGxoVlw=="], + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.63.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-pcFGeL2345VwdTnJhA6zLbew+YgWB0qBG2+dMtXjCicf6+rm6kO6cOoh5VnTe0ZMrMRgRyuHmCJxZWrIdzYuOw=="], - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.63.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-GAdA4UxpiNm27cLHr2GqXBpAD0x9FqwYBY7/YSP0Ss0/PNi4k8gbviqpIpYbVSRBaS2ZcegXEzgTQMbRNCwxCw=="], + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.63.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-mRJlqSRulVzcKq/LKA6ICSIc3K/l4fzlVn/gePn2nXIHy8seRi5z/eeRE0d/XMBxcMldiXtQTSpRj0tkkC3g8Q=="], - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.63.4", "", { "os": "linux", "cpu": "arm" }, "sha512-qDd6NoA1znaLjp4jR5U/KWCdLAKDJNB8W9ChbbDaKbo0xA+Atln5HK6LFCZ4oJQpemtRZA288DCirFRjrspptw=="], + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.63.1", "", { "os": "linux", "cpu": "arm" }, "sha512-YDUNvVM85TI3g/1OpnqKP1h4NeW/j64DfWMf+G3M809xNk1bJSnpFp4sh83NpmVE5DXnkh8ULor4LTVZKoYLHw=="], - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.63.4", "", { "os": "linux", "cpu": "arm" }, "sha512-WtB5Tz5KTNINb8ZA+8sQ7bmjuS1JrRT7YverYIhUGdWWDlpzVWmIwuZE+jidkEXUn1l0zrEkaIMa8dHF3NGcsA=="], + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.63.1", "", { "os": "linux", "cpu": "arm" }, "sha512-7Mcn71p9ZuQFAj+h+dhQXy/yeLePRS2yKRnmW1DijA9thKO5qap0GNOIQK4yQ6iP3SU0Mrb/yWo8h8vgRba8lw=="], - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.63.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-VcQ3L1tjnkKzWjryAVaFhHEWcqOfICX9uxVVoDzm2t0DpgKRHd2zOpVrJc0xsWeBZcBFyYROCIBdyR/fS174pg=="], + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.63.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-4YiLQTX6U4CSl0L9cluep9A9W6UmTfqBDc2/CH6wlu54pl4E7Jn3cOD8oxzvBDEGk/JMKgJ47C8g+radF7mwvg=="], - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.63.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-6+ZQX6P5s0cMDN2Ypb8Lbm2+/sZYmZjdaYny992ujUU9UKi/4CWoJWsl1pNvjWJHNHGK51m+jKGLlh1ylb2ifQ=="], + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.63.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-2ra8F7w8OquwZN9z2/fKFnli69wa8PLwaVzRMIPGb13ByMJwC28Fbp8YcVGoUhlYMTt7j5j9bNgpysrN2UM+vw=="], - "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.63.4", "", { "os": "linux", "cpu": "none" }, "sha512-D72ZnvkFkBXOfzMMQLcwfPLyGkKb7HZ9/mf97B7v6/P5Lbv4oFOtSY/uHbS8lH6uKUOxoKiuokdb50XZSzzbJw=="], + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.63.1", "", { "os": "linux", "cpu": "none" }, "sha512-Sy20ncyhjmBP0Ml+UvQbimjlk6VFgjW5uNP+qqwHB00mTE8Bl2C1TuHTlRwK2YoXeZbee5lP2XevBWVkAQAtSQ=="], - "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.63.4", "", { "os": "linux", "cpu": "none" }, "sha512-piU6BxeqA3O9KSu3kRCIQQtNqFFaTu21SEV4FwaRZowpnj3bLaWPZHw+xFqCs0XlJ+aOH3PTRWGoglH+mKA/OA=="], + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.63.1", "", { "os": "linux", "cpu": "none" }, "sha512-noITLp8oNjYliPnGWmLyelIHwULGqbHloQHGw1rtxbWhTuWooRpnZarZQJ1y9EUC4szuCusCc+HEpUtxpIwYvA=="], - "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.63.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-/5PGpHwqt2EEEOUs1XwzubE/ucr0dWDQ+to3zqi4Ds7EWpwtQ79wXc4JBoxqj/OwpawTsKWzJxHfSuBOq3DrWA=="], + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.63.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-hlxxXd+F1mWiAcaFR7Sv9ZQT6m6UfI8+Vy/kFJzztq2pDMU/0wZ9sish0iszNZvsQDo8Gc0i5yuFEOz5dDf6fA=="], - "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.63.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-cX3beZDLWt7G2oJF+nhChiT+qtaihs+S2xi7ziGmVB+2pwPng6D0Ed0HmElQOgv2UsUmSJJLGwpBao/3TDx3VA=="], + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.63.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-EF7OpqQTQ/BvGqLzUi4rEHuagCV9MugAUXSHemwPW5vxZ75RR+jxO/2j95Ph2dalMpFHSVECjRoioHZgA9zOYA=="], - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.63.4", "", { "os": "linux", "cpu": "none" }, "sha512-1uz2mGWHyptR7DgHHrlbdRAjXK7v7elGZ9lMja910/RP+ZYbX6xAmCiU9UZSX4hqmgtHMv6lr5l3kq1HIOpcag=="], + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.63.1", "", { "os": "linux", "cpu": "none" }, "sha512-wQO3JesW9PRkwlabQ27y7sPfVOOTLRG73I4F2UYHG5PXun3J9U3y+b7ezVKSYbsvSKGQ1k1cq8Qlun4C9kLt3w=="], - "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.63.4", "", { "os": "linux", "cpu": "none" }, "sha512-nLS8topojxyz7SRpKR2IODRpQ0XPZ+xaOXvT3+hqK/Uy8Lo5HFgkkIBiIrCu5tL5YqzTvgovGw55PwpahTAGig=="], + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.63.1", "", { "os": "linux", "cpu": "none" }, "sha512-ouAGwhO6wHRXdnOVCOsB0tRFkA7nhNB2Nwax6oECXN0YiN8EYUTBAOudADOB1PI+yDL61TeNx/u7MVCzksNbkQ=="], - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.63.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-gs7DRKotr3l3q+jGPQBjH0ng1FjlEDm5ueQrkw5JtQvtLyEIcLASqAEaor56BhkKRzk+IcQzrcanBdb/bBQn8g=="], + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.63.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-q2R38Sn+1J8RxhfJ+T54wSWmyKXWec+9jgDfqO2AtArEqHO5R2aeayp5H5OYLr5UYDVGsVaZPEFUooMhYCdz5A=="], - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.63.4", "", { "os": "linux", "cpu": "x64" }, "sha512-791ET7W17NnScOZM7h4dX5hYspxE28htPFsb1awY/NRR8+PRNkS53e475rDdxXXDrP+kwnCcNWg9CX5ztn/Aqw=="], + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.63.1", "", { "os": "linux", "cpu": "x64" }, "sha512-gfI5T24WLLuFfSKw7Go/zDXjAAV0fny0swTaDv+WjK7vqcw4cRhFfdsyKL1n+ukI+ooBxn3bVQnyrn06WpI50w=="], - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.63.4", "", { "os": "linux", "cpu": "x64" }, "sha512-iwZQRcmj7g88g3tzefIrQY7qvmuA/cfYwhrDtTBhsmukO4U2huVO5W+86XacUMRvdSFVAc6kZUZy21JaRwiB9w=="], + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.63.1", "", { "os": "linux", "cpu": "x64" }, "sha512-4h6XqthmB4Hspji84wvgk+ElodTsGj+dbZqHJHHtKxj4mYq0ANSEEPX9ys3moJueqsRjwpaJYH7874Itwnj2ow=="], - "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.63.4", "", { "os": "openbsd", "cpu": "x64" }, "sha512-dVHFp9gRWrdTpnqQuGfCwd7hOQDatK1VCP2iWhLY/cGrOQs/ucFzJ6A5SRqbXX12ZDI8EUuejSM5kwg+ja7Png=="], + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.63.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-dlfCOa87o1VAYegLQ9EKilx2JCeRofiyPGhTCmqnuXZ6bMPiycO1rq1+sKoulAp7pGLIsTIw+1x5R+zgh5LhhA=="], - "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.63.4", "", { "os": "none", "cpu": "arm64" }, "sha512-t3NlauOW6gxZVVFcBEnO62Cb4wbyDFL416gTg1uFI/2tgqYQlf69FbSE115Ajre9I+c26Lk4mcmdFUsS/DGifQ=="], + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.63.1", "", { "os": "none", "cpu": "arm64" }, "sha512-cjkLbOlfcm3QGhMM1J5zaZjsw1GggbN6rw9UTSSRrPrR1KkcXnN7Uq9rPw34xImQ9VOY9GN+6u2Zj80B9ptkcw=="], - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.63.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-xWuIaSye5FWZF8+UYtVEcHtRJDN5kN9Kfgxx3Kq8XIov9KSKbc1fiqQCm90SKrgQbUXZelbnUhnlUJmfSE7P9A=="], + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.63.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-Li1KdUnWGE4N3e1F/B4RTB1ms+nG4WBgjByO46pkeBVX/2UBsY53xf5vK9WygVmnH3RwncIST7lkSdLSY6P9lg=="], - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.63.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-9ALJJUOg/ZflMJepVo2PlgsGxSaxN7SQ4Z8GoZfVlarWr6r3rkHUNsd/zAio7p4YMtChSMXPionxej4Hkf6CXQ=="], + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.63.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-t4ZYOSoLTgwhuFMrmTMLx/+i1DQVK7HYqMc6kY46EApwi8X0nIVphzdNoThU3xt6n+N5urG1/gxBdCaKDLavfg=="], - "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.63.4", "", { "os": "win32", "cpu": "x64" }, "sha512-blj9z5qx/Pv4WU0W1NMFDB97e0JH5ed+aZGywW8WCvp/NhWX/4PFAq5uu6Q0AebNn+Vo6KzUYDT++JzTT5ojlQ=="], + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.63.1", "", { "os": "win32", "cpu": "x64" }, "sha512-RgroPfMmKlD1RzSDxvwgcPiy2HNQKoYV7OmwIXDsk73uKW5t6B/V8KIy27SMv/FNXFo/oSBtWc9J0X7t91ezZg=="], - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.63.4", "", { "os": "win32", "cpu": "x64" }, "sha512-Erx822VRBwLa124shbj+wNXe//BOgMEctDV0m1aqTQdNO1S69DgNUCFKC1RCeZfixs1J31l6igk1ziyXErbigQ=="], + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.63.1", "", { "os": "win32", "cpu": "x64" }, "sha512-at8QVep6S3h5Y6gSbdGU06bRY5WJkf6WUduM9YtvYMbYhB1MOFfUgc6kehitQXzOtMSaT70q7f9ydPhpqu821w=="], "@scalar/helpers": ["@scalar/helpers@0.5.1", "", {}, "sha512-9VvPfv8b+YZVIFwR3SWeq4Y8ij/kU3/kf2M6NKcbf2iVyh63d8s0ssap5m/nOhiz/Puidv/29MAJlJCA0LRssA=="], @@ -164,11 +164,11 @@ "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], - "@types/node": ["@types/node@22.20.4", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-zJRE40jpHtKqE/C4fgHrAKQLJuSpzEnP9ff9Y7YtoR3Wd2pwqzlekDeEuUQXjRd+QCYnVnNwuJYmhdk9XV8gvA=="], + "@types/node": ["@types/node@22.20.2", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-xlvWf4Vs9n1PEVYwP1n4vvG07M6y8WgvJ2t0vbrWTmijsIHp1cS+uJ2kMIRdY3nHZK0nCYKrPeD171+SzF4/zw=="], "@vitest/expect": ["@vitest/expect@2.1.9", "", { "dependencies": { "@vitest/spy": "2.1.9", "@vitest/utils": "2.1.9", "chai": "^5.1.2", "tinyrainbow": "^1.2.0" } }, "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw=="], - "@vitest/mocker": ["@vitest/mocker@2.1.9", "", { "dependencies": { "@vitest/spy": "2.1.9", "estree-walker": "^3.0.3", "magic-string": "^0.30.12" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^5.0.0" }, "optionalPeers": ["msw", "vite"] }, "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg=="], + "@vitest/mocker": ["@vitest/mocker@2.1.9", "", { "dependencies": { "@vitest/spy": "2.1.9", "estree-walker": "^3.0.3", "magic-string": "^0.30.12" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^5.0.0" }, "optionalPeers": ["msw"] }, "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg=="], "@vitest/pretty-format": ["@vitest/pretty-format@2.1.9", "", { "dependencies": { "tinyrainbow": "^1.2.0" } }, "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ=="], @@ -186,7 +186,7 @@ "ajv": ["ajv@8.20.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="], - "ajv-formats": ["ajv-formats@3.0.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="], + "ajv-formats": ["ajv-formats@3.0.1", "", { "dependencies": { "ajv": "^8.0.0" }, "peerDependencies": { "ajv": "^8.0.0" } }, "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="], "assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="], @@ -232,7 +232,7 @@ "css-what": ["css-what@6.2.2", "", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="], - "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], "deep-eql": ["deep-eql@5.0.2", "", {}, "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q=="], @@ -264,7 +264,7 @@ "es-object-atoms": ["es-object-atoms@1.1.2", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw=="], - "esbuild": ["esbuild@0.21.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", "@esbuild/android-x64": "0.21.5", "@esbuild/darwin-arm64": "0.21.5", "@esbuild/darwin-x64": "0.21.5", "@esbuild/freebsd-arm64": "0.21.5", "@esbuild/freebsd-x64": "0.21.5", "@esbuild/linux-arm": "0.21.5", "@esbuild/linux-arm64": "0.21.5", "@esbuild/linux-ia32": "0.21.5", "@esbuild/linux-loong64": "0.21.5", "@esbuild/linux-mips64el": "0.21.5", "@esbuild/linux-ppc64": "0.21.5", "@esbuild/linux-riscv64": "0.21.5", "@esbuild/linux-s390x": "0.21.5", "@esbuild/linux-x64": "0.21.5", "@esbuild/netbsd-x64": "0.21.5", "@esbuild/openbsd-x64": "0.21.5", "@esbuild/sunos-x64": "0.21.5", "@esbuild/win32-arm64": "0.21.5", "@esbuild/win32-ia32": "0.21.5", "@esbuild/win32-x64": "0.21.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="], + "esbuild": ["esbuild@0.21.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", "@esbuild/android-x64": "0.21.5", "@esbuild/darwin-arm64": "0.21.5", "@esbuild/darwin-x64": "0.21.5", "@esbuild/freebsd-arm64": "0.21.5", "@esbuild/freebsd-x64": "0.21.5", "@esbuild/linux-arm": "0.21.5", "@esbuild/linux-arm64": "0.21.5", "@esbuild/linux-ia32": "0.21.5", "@esbuild/linux-loong64": "0.21.5", "@esbuild/linux-mips64el": "0.21.5", "@esbuild/linux-ppc64": "0.21.5", "@esbuild/linux-riscv64": "0.21.5", "@esbuild/linux-s390x": "0.21.5", "@esbuild/linux-x64": "0.21.5", "@esbuild/netbsd-x64": "0.21.5", "@esbuild/openbsd-x64": "0.21.5", "@esbuild/sunos-x64": "0.21.5", "@esbuild/win32-arm64": "0.21.5", "@esbuild/win32-ia32": "0.21.5", "@esbuild/win32-x64": "0.21.5" }, "bin": "bin/esbuild" }, "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="], "escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], @@ -284,7 +284,7 @@ "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], - "fast-uri": ["fast-uri@3.1.8", "", {}, "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg=="], + "fast-uri": ["fast-uri@3.1.7", "", {}, "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg=="], "finalhandler": ["finalhandler@2.1.1", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA=="], @@ -306,7 +306,7 @@ "hasown": ["hasown@2.0.4", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="], - "hono": ["hono@4.13.8", "", {}, "sha512-/Gng7NfoykZl2pjukW5Z6+8Yxm3BPRf86GTbQnt0SbySkvax4fyL4H3HhY1cCpBGmiW9XDRFzRV+CXK2W8QudQ=="], + "hono": ["hono@4.13.7", "", {}, "sha512-c8/gF9ac8Y78/agExVocyLevgR+JlpNB444Py0FSX8pJoPdYUfUzRcXtYEYGwt6l19qIlVZPN5Mfsw9jFShmQQ=="], "htmlparser2": ["htmlparser2@10.1.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", "entities": "^7.0.1" } }, "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ=="], @@ -314,11 +314,11 @@ "iconv-lite": ["iconv-lite@0.7.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ=="], - "ignore": ["ignore@7.0.9", "", {}, "sha512-brTTsvFRt5C1gGHtPst/281UjPD5t9fBqbgoMPlVWy11ZLTPfu7HxK4ZYqO9H7o/yC9rSTCI85EaQ4OoY12qYw=="], + "ignore": ["ignore@7.0.14", "", {}, "sha512-wCBiZ77u1tuWde6G/nfOtLaCTYcFDU5yCzARzK10y+rLhzYoL7a7yEemcopcc2Mzow7gZOIjnV2ym1NYmdiJOQ=="], "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], - "ip-address": ["ip-address@10.7.2", "", {}, "sha512-7H/2gFSIitxc0hG3nOI1glS8QLo/EHBFFLk8vEUjXY/xu0AdL8jZ9U1IzO2PUm0d2D/ofQcAifb0g6OBkt8U7w=="], + "ip-address": ["ip-address@10.7.0", "", {}, "sha512-BGFsyJd5mpXp3rK6jIdADLNgpJUK1jnjzvYF8lK+VyDab9JAmqN0YOKDdP17HlgKb2+ehPgDc8EtnRLbGCAMhA=="], "ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="], @@ -354,7 +354,7 @@ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "nanoid": ["nanoid@3.3.19", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug=="], + "nanoid": ["nanoid@3.3.18", "", { "bin": "bin/nanoid.cjs" }, "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w=="], "negotiator": ["negotiator@1.1.0", "", { "dependencies": { "content-type": "^2.1.0" } }, "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg=="], @@ -390,7 +390,7 @@ "postcss": ["postcss@8.5.28", "", { "dependencies": { "nanoid": "^3.3.18", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A=="], - "proxy-addr": ["proxy-addr@2.0.8", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ=="], + "proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="], "qs": ["qs@6.16.0", "", { "dependencies": { "es-define-property": "^1.0.1", "side-channel": "^1.1.1" } }, "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA=="], @@ -400,7 +400,7 @@ "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], - "rollup": ["rollup@4.63.4", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@napi-rs/lzma-linux-x64-gnu": "1.5.1", "@rollup/rollup-android-arm-eabi": "4.63.4", "@rollup/rollup-android-arm64": "4.63.4", "@rollup/rollup-darwin-arm64": "4.63.4", "@rollup/rollup-darwin-x64": "4.63.4", "@rollup/rollup-freebsd-arm64": "4.63.4", "@rollup/rollup-freebsd-x64": "4.63.4", "@rollup/rollup-linux-arm-gnueabihf": "4.63.4", "@rollup/rollup-linux-arm-musleabihf": "4.63.4", "@rollup/rollup-linux-arm64-gnu": "4.63.4", "@rollup/rollup-linux-arm64-musl": "4.63.4", "@rollup/rollup-linux-loong64-gnu": "4.63.4", "@rollup/rollup-linux-loong64-musl": "4.63.4", "@rollup/rollup-linux-ppc64-gnu": "4.63.4", "@rollup/rollup-linux-ppc64-musl": "4.63.4", "@rollup/rollup-linux-riscv64-gnu": "4.63.4", "@rollup/rollup-linux-riscv64-musl": "4.63.4", "@rollup/rollup-linux-s390x-gnu": "4.63.4", "@rollup/rollup-linux-x64-gnu": "4.63.4", "@rollup/rollup-linux-x64-musl": "4.63.4", "@rollup/rollup-openbsd-x64": "4.63.4", "@rollup/rollup-openharmony-arm64": "4.63.4", "@rollup/rollup-win32-arm64-msvc": "4.63.4", "@rollup/rollup-win32-ia32-msvc": "4.63.4", "@rollup/rollup-win32-x64-gnu": "4.63.4", "@rollup/rollup-win32-x64-msvc": "4.63.4", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-4U0liVayNIoLp3GFl1FcI8561WepLnZ1rqfraGh7S9B3Ur5F9S283y8Futii7RUU2C/97tOBmBy7nYvhoiOpbQ=="], + "rollup": ["rollup@4.63.1", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@napi-rs/lzma-linux-x64-gnu": "1.5.1", "@rollup/rollup-android-arm-eabi": "4.63.1", "@rollup/rollup-android-arm64": "4.63.1", "@rollup/rollup-darwin-arm64": "4.63.1", "@rollup/rollup-darwin-x64": "4.63.1", "@rollup/rollup-freebsd-arm64": "4.63.1", "@rollup/rollup-freebsd-x64": "4.63.1", "@rollup/rollup-linux-arm-gnueabihf": "4.63.1", "@rollup/rollup-linux-arm-musleabihf": "4.63.1", "@rollup/rollup-linux-arm64-gnu": "4.63.1", "@rollup/rollup-linux-arm64-musl": "4.63.1", "@rollup/rollup-linux-loong64-gnu": "4.63.1", "@rollup/rollup-linux-loong64-musl": "4.63.1", "@rollup/rollup-linux-ppc64-gnu": "4.63.1", "@rollup/rollup-linux-ppc64-musl": "4.63.1", "@rollup/rollup-linux-riscv64-gnu": "4.63.1", "@rollup/rollup-linux-riscv64-musl": "4.63.1", "@rollup/rollup-linux-s390x-gnu": "4.63.1", "@rollup/rollup-linux-x64-gnu": "4.63.1", "@rollup/rollup-linux-x64-musl": "4.63.1", "@rollup/rollup-openbsd-x64": "4.63.1", "@rollup/rollup-openharmony-arm64": "4.63.1", "@rollup/rollup-win32-arm64-msvc": "4.63.1", "@rollup/rollup-win32-ia32-msvc": "4.63.1", "@rollup/rollup-win32-x64-gnu": "4.63.1", "@rollup/rollup-win32-x64-msvc": "4.63.1", "fsevents": "~2.3.2" }, "bin": "dist/bin/rollup" }, "sha512-3Df9jsstwhccuEfmAMi9l8XUh/GOkVObmFTU7CCVBysEbcOZLl84jCtaAZMcPiMz2EGKsATzQcU+Xr3n/wU6cg=="], "router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="], @@ -454,7 +454,7 @@ "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], - "undici": ["undici@7.29.1", "", {}, "sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q=="], + "undici": ["undici@7.30.1", "", {}, "sha512-03KrMbjIFDWQR5RNPrSw3bd1r12JpyFQl9/yxjUbJtqkjmllqC5lFjZh6ujeuJCKr8EOQvRW872Oy/az+nLYxg=="], "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], @@ -462,27 +462,27 @@ "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], - "vite": ["vite@5.4.21", "", { "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", "rollup": "^4.20.0" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw=="], + "vite": ["vite@5.4.21", "", { "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", "rollup": "^4.20.0" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser"], "bin": "bin/vite.js" }, "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw=="], - "vite-node": ["vite-node@2.1.9", "", { "dependencies": { "cac": "^6.7.14", "debug": "^4.3.7", "es-module-lexer": "^1.5.4", "pathe": "^1.1.2", "vite": "^5.0.0" }, "bin": { "vite-node": "vite-node.mjs" } }, "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA=="], + "vite-node": ["vite-node@2.1.9", "", { "dependencies": { "cac": "^6.7.14", "debug": "^4.3.7", "es-module-lexer": "^1.5.4", "pathe": "^1.1.2", "vite": "^5.0.0" }, "bin": "vite-node.mjs" }, "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA=="], - "vitest": ["vitest@2.1.9", "", { "dependencies": { "@vitest/expect": "2.1.9", "@vitest/mocker": "2.1.9", "@vitest/pretty-format": "^2.1.9", "@vitest/runner": "2.1.9", "@vitest/snapshot": "2.1.9", "@vitest/spy": "2.1.9", "@vitest/utils": "2.1.9", "chai": "^5.1.2", "debug": "^4.3.7", "expect-type": "^1.1.0", "magic-string": "^0.30.12", "pathe": "^1.1.2", "std-env": "^3.8.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.1", "tinypool": "^1.0.1", "tinyrainbow": "^1.2.0", "vite": "^5.0.0", "vite-node": "2.1.9", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", "@vitest/browser": "2.1.9", "@vitest/ui": "2.1.9", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@types/node", "@vitest/browser", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q=="], + "vitest": ["vitest@2.1.9", "", { "dependencies": { "@vitest/expect": "2.1.9", "@vitest/mocker": "2.1.9", "@vitest/pretty-format": "^2.1.9", "@vitest/runner": "2.1.9", "@vitest/snapshot": "2.1.9", "@vitest/spy": "2.1.9", "@vitest/utils": "2.1.9", "chai": "^5.1.2", "debug": "^4.3.7", "expect-type": "^1.1.0", "magic-string": "^0.30.12", "pathe": "^1.1.2", "std-env": "^3.8.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.1", "tinypool": "^1.0.1", "tinyrainbow": "^1.2.0", "vite": "^5.0.0", "vite-node": "2.1.9", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", "@vitest/browser": "2.1.9", "@vitest/ui": "2.1.9", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@vitest/browser", "@vitest/ui", "happy-dom", "jsdom"], "bin": "vitest.mjs" }, "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q=="], "whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="], "whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="], - "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], - "why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": { "why-is-node-running": "cli.js" } }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], + "why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": "cli.js" }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], "yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], - "yaml": ["yaml@2.9.1", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw=="], + "yaml": ["yaml@2.9.1", "", { "bin": "bin.mjs" }, "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw=="], - "zod": ["zod@4.6.5", "", {}, "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q=="], + "zod": ["zod@4.6.2", "", {}, "sha512-lh5RCAGFa1Cm2hjtNwLQhSs/AsqdWnTQaBER9fEwN/88pSh7KOtJavtBx/0VlkN/uFd61SwYmljLMDAsHlvzBQ=="], "zod-to-json-schema": ["zod-to-json-schema@3.25.2", "", { "peerDependencies": { "zod": "^3.25.28 || ^4" } }, "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA=="], From 4954919bda3d77fa2351df01ec2fc00072d369da Mon Sep 17 00:00:00 2001 From: Relayflow Lead Date: Tue, 3 Nov 2026 02:25:02 -0800 Subject: [PATCH 3/6] docs: refresh generated helper and trigger inventory --- docs/HELPERS-RUNTIME.md | 5 +++-- docs/SURFACE.md | 2 +- packages/surface/AUTHORING.md | 21 ++++++++++++++++++++- packages/surface/src/triggers/README.md | 4 ++-- scripts/authoring-reference.test.mjs | 3 ++- 5 files changed, 28 insertions(+), 7 deletions(-) diff --git a/docs/HELPERS-RUNTIME.md b/docs/HELPERS-RUNTIME.md index 3c127d919..5c480b8fa 100644 --- a/docs/HELPERS-RUNTIME.md +++ b/docs/HELPERS-RUNTIME.md @@ -61,11 +61,12 @@ assigned invented writeback paths. ## Upstream gaps in slice S The supplied provider list contains 48 names including the five original -providers. The pinned catalog also includes GitLab and Ramp, so regeneration -currently emits 50 namespaces. Forty have runtime clients. These ten are +providers. The pinned catalog also includes Bitbucket, GitLab and Ramp, so regeneration +currently emits 51 namespaces. Forty have runtime clients. These eleven are explicitly unavailable, including in mock mode: - airtable +- bitbucket - docker-hub - fathom - gcp diff --git a/docs/SURFACE.md b/docs/SURFACE.md index 262368f65..af9b2a5c1 100644 --- a/docs/SURFACE.md +++ b/docs/SURFACE.md @@ -68,7 +68,7 @@ No process runs between events: the handler wakes, executes to its next await, p `verification`; an author callback remains TypeScript runtime code. The distinction is explicit in the gate contract below. 3. **Helpers, not primitives.** Authors never see mount paths, tokens, or protocol frames. Named helpers wrap every substrate: - - `f.slack` / `f.github` / `f.linear` / … — **generated from the relayfile adapters** (50 providers → 50 namespaces for free), each verb compiling to a mount write. The receipt a helper returns *is* the journaled effect record (RFC Appendix A), so exactly-once dedup rides along invisibly. + - `f.slack` / `f.github` / `f.linear` / … — **generated from the relayfile adapters** (51 providers → 51 namespaces for free), each verb compiling to a mount write. The receipt a helper returns *is* the journaled effect record (RFC Appendix A), so exactly-once dedup rides along invisibly. - `f.memory` — relayhistory: `f.memory.recall(query)`, `f.memory.why(task)`, `f.memory.learn(finding)`. - auth — relayauth: never called directly; `workspace:` / `tools:` declarations compile to path-scoped tokens ("the filesystem paths *are* the permissions"). - `f.mcp` — one line to declare (`tools: { mcp: [stripe] }`), one call to use (`f.mcp.stripe.create_invoice({...})`). Preflight connects to every declared server before the run starts. diff --git a/packages/surface/AUTHORING.md b/packages/surface/AUTHORING.md index d94f04aaf..f44957ecc 100644 --- a/packages/surface/AUTHORING.md +++ b/packages/surface/AUTHORING.md @@ -465,13 +465,14 @@ The kernel verification fields are `exit_code`, `output_contains` and `json_sche ## Helper namespaces -`Ctx extends Helpers` exposes 50 namespaces. `f.mcp` is an additional context member. `f.slack` is included in Helpers; see [Slack semantics](https://github.com/AgentWorkforce/flows/blob/main/docs/SLACK-HELPER.md). Resource counts describe the pinned adapter catalog, not bespoke helper methods or an assurance of credentials. +`Ctx extends Helpers` exposes 51 namespaces. `f.mcp` is an additional context member. `f.slack` is included in Helpers; see [Slack semantics](https://github.com/AgentWorkforce/flows/blob/main/docs/SLACK-HELPER.md). Resource counts describe the pinned adapter catalog, not bespoke helper methods or an assurance of credentials. | Namespace | Type | Pinned adapter resources | | --- | --- | --- | | `f.airtable` | `AirtableHelper` | None in pinned catalog | | `f.asana` | `AsanaHelper` | 3 | | `f.azureBlob` | `AzureBlobHelper` | 2 | +| `f.bitbucket` | `BitbucketHelper` | None in pinned catalog | | `f.box` | `BoxHelper` | 2 | | `f.calendly` | `CalendlyHelper` | 3 | | `f.clickup` | `ClickupHelper` | 4 | @@ -573,6 +574,17 @@ Exported from the package root (`import { github } from '@relayflows/surface'`). | `azure_blob.file_created(filter?: WebhookFilter)` | `azure-blob` | `file.created` | | `azure_blob.file_deleted(filter?: WebhookFilter)` | `azure-blob` | `file.deleted` | | `azure_blob.file_updated(filter?: WebhookFilter)` | `azure-blob` | `file.updated` | +| `bitbucket.pullrequest_comment_created(filter?: WebhookFilter)` | `bitbucket` | `pullrequest:comment_created` | +| `bitbucket.pullrequest_comment_deleted(filter?: WebhookFilter)` | `bitbucket` | `pullrequest:comment_deleted` | +| `bitbucket.pullrequest_created(filter?: WebhookFilter)` | `bitbucket` | `pullrequest:created` | +| `bitbucket.pullrequest_fulfilled(filter?: WebhookFilter)` | `bitbucket` | `pullrequest:fulfilled` | +| `bitbucket.pullrequest_rejected(filter?: WebhookFilter)` | `bitbucket` | `pullrequest:rejected` | +| `bitbucket.pullrequest_updated(filter?: WebhookFilter)` | `bitbucket` | `pullrequest:updated` | +| `bitbucket.repo_commit_status_created(filter?: WebhookFilter)` | `bitbucket` | `repo:commit_status_created` | +| `bitbucket.repo_commit_status_updated(filter?: WebhookFilter)` | `bitbucket` | `repo:commit_status_updated` | +| `bitbucket.repo_deleted(filter?: WebhookFilter)` | `bitbucket` | `repo:deleted` | +| `bitbucket.repo_push(filter?: WebhookFilter)` | `bitbucket` | `repo:push` | +| `bitbucket.repo_updated(filter?: WebhookFilter)` | `bitbucket` | `repo:updated` | | `box.file_created(filter?: WebhookFilter)` | `box` | `file.created` | | `box.file_deleted(filter?: WebhookFilter)` | `box` | `file.deleted` | | `box.file_updated(filter?: WebhookFilter)` | `box` | `file.updated` | @@ -1203,6 +1215,7 @@ export const providerEventTypes = Object.freeze({ "airtable": Object.freeze(["base.create","base.delete","base.update","record.create","record.delete","record.update","table.create","table.delete","table.update"] as const), "asana": Object.freeze(["project.added","project.changed","project.deleted","project.removed","section.added","section.changed","section.deleted","section.removed","task.added","task.changed","task.completed","task.deleted","task.removed","workspace.added","workspace.changed","workspace.deleted","workspace.removed"] as const), "azure-blob": Object.freeze(["file.created","file.deleted","file.updated"] as const), + "bitbucket": Object.freeze(["pullrequest:comment_created","pullrequest:comment_deleted","pullrequest:created","pullrequest:fulfilled","pullrequest:rejected","pullrequest:updated","repo:commit_status_created","repo:commit_status_updated","repo:deleted","repo:push","repo:updated"] as const), "box": Object.freeze(["file.created","file.deleted","file.updated"] as const), "calendly": Object.freeze(["event_type.canceled","event_type.created","event_type.deleted","event_type.updated","invitee.canceled","invitee.created","invitee.deleted","invitee.updated","scheduled_event.canceled","scheduled_event.created","scheduled_event.deleted","scheduled_event.updated"] as const), "clickup": Object.freeze(["folder.created","folder.deleted","folder.updated","list.created","list.deleted","list.updated","space.created","space.deleted","space.updated","task.created","task.deleted","task.updated"] as const), @@ -1445,6 +1458,12 @@ export type AsanaHelper = JournalHelper>; export type AzureBlobHelper = JournalHelper>; ``` +### BitbucketHelper (not exported from the package root) + +```ts +export type BitbucketHelper = UnavailableHelper; +``` + ### BoxHelper (not exported from the package root) ```ts diff --git a/packages/surface/src/triggers/README.md b/packages/surface/src/triggers/README.md index 3cc21af05..913394d04 100644 --- a/packages/surface/src/triggers/README.md +++ b/packages/surface/src/triggers/README.md @@ -9,8 +9,8 @@ export default flow('triage') .on(github.pull_request('opened'), async (f, event) => { f.done('success'); }); ``` -Every provider a relayfile adapter can deliver has a namespace — 47 today, -570 events; see [PROVIDERS.md](PROVIDERS.md) (generated) for the full table. +Every provider a relayfile adapter can deliver has a namespace — 48 today, +581 events; see [PROVIDERS.md](PROVIDERS.md) (generated) for the full table. Hyphenated providers become identifiers: `azure-blob` → `azure_blob`, `google-drive` → `google_drive`; the inbox name and event type keep the upstream spelling, so `azure_blob.file_created()` lowers to diff --git a/scripts/authoring-reference.test.mjs b/scripts/authoring-reference.test.mjs index 5eeb04c15..8c0e4bdf0 100644 --- a/scripts/authoring-reference.test.mjs +++ b/scripts/authoring-reference.test.mjs @@ -70,7 +70,8 @@ test('human returns Step', () => { }); test('all helper namespaces and mcp are discoverable', () => { const names = members(interfaceText(read('packages/surface/src/helpers/index.ts'), 'Helpers')); - assert.equal(names.length, 50); + assert.equal(names.length, 51); + assert.ok(names.includes('bitbucket')); for (const name of names) assert.ok(authoring.includes(`| \`f.${name}\` |`), name); assert.match(authoring, /Ctx extends Helpers/); assert.match(authoring, /readonly mcp:/); From 00e3ae46362d65ac77dcc0782892defe2b4b1653 Mon Sep 17 00:00:00 2001 From: Relayflow Lead Date: Tue, 3 Nov 2026 02:48:38 -0800 Subject: [PATCH 4/6] fix(sandbox): pin the regenerated helper catalog bytes --- packages/sdk/src/hosted-extension-sandbox.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/src/hosted-extension-sandbox.ts b/packages/sdk/src/hosted-extension-sandbox.ts index 648d4d112..de3cdda9f 100644 --- a/packages/sdk/src/hosted-extension-sandbox.ts +++ b/packages/sdk/src/hosted-extension-sandbox.ts @@ -125,7 +125,7 @@ const ADDRESS_SPACE_BYTES = 16 * 1024 * 1024 * 1024; const DATA_BYTES = 3 * 1024 * 1024 * 1024; const SURFACE_RUNTIME_SHA256 = OBJECT_FREEZE({ 'flow.js': '2ba972849bf435bba36b918c348efeab71ec34d180cec7a722e535f482687a6a', - 'helpers/providers.js': '4eb06d0d85ca0a3434bb2dbba7407e3d95eef2dfbedaeb0e2de0c0c0ea812457', + 'helpers/providers.js': 'cba2c6767673b47047c6cb9549c63e797b5a9b1af53e293c50ea028f64d21025', 'provider-trigger.js': 'e2664c65397f93fb486eb6f1e756c7cec3f88b3851d79c23567cad986f80f1ff', 'schedule.js': '8fe72f176a75ec0b5f26e12db7a597575c259a2e2cbb59690f9dc20a5e63940b', 'triggers.js': '421609a6ea6d2ea77051dd4826a32e773b7db81dedd1dde91f4187b382cd46e3', From 04d43b6f5917cb5d7dbd0f9a79a554f54a816e20 Mon Sep 17 00:00:00 2001 From: Relayflow Lead Date: Tue, 3 Nov 2026 04:04:51 -0800 Subject: [PATCH 5/6] test(replay): stabilize concurrent effect resume fixtures --- .../tests/authored-parallel-run-live.test.ts | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/sdk/tests/authored-parallel-run-live.test.ts b/packages/sdk/tests/authored-parallel-run-live.test.ts index 52322267c..857339492 100644 --- a/packages/sdk/tests/authored-parallel-run-live.test.ts +++ b/packages/sdk/tests/authored-parallel-run-live.test.ts @@ -627,16 +627,23 @@ export default flow('serial-${name}', async f => {${body} expect([...readFileSync(`${fixture.root}/effects`, 'utf8')].sort()).toEqual([...before, 'Z'].sort()); }, 120_000); + // Exercise completed-effect reuse with stable serial ordinals. Per-branch + // continuations can arrive in another order on replay and are correctly + // refused; serial-replay-identity.test.ts covers that separate contract. it.each([ { name: 'llm', localAgent: true, calls: 2, expected: ['L', 'R'], child: undefined, body: ` const output = { type: 'object', properties: { message: { type: 'string' } }, required: ['message'] }; - const left = async () => { await f.llm('left', { output, model: 'test-model' }); await f.run('printf L >> effects'); }; - const right = async () => { await f.llm('right', { output, model: 'test-model' }); await f.run('printf R >> effects'); }; - await Promise.all([left(), right()]);` }, + await Promise.all([ + f.llm('left', { output, model: 'test-model' }), + f.llm('right', { output, model: 'test-model' }), + ]); + await Promise.all([f.run('printf L >> effects'), f.run('printf R >> effects')]);` }, { name: 'agent', localAgent: true, calls: 2, expected: ['L', 'R'], child: undefined, body: ` - const left = async () => { await f.agent('left', { task: 'left', model: 'test-model' }); await f.run('printf L >> effects'); }; - const right = async () => { await f.agent('right', { task: 'right', model: 'test-model' }); await f.run('printf R >> effects'); }; - await Promise.all([left(), right()]);` }, + await Promise.all([ + f.agent('left', { task: 'left', model: 'test-model' }), + f.agent('right', { task: 'right', model: 'test-model' }), + ]); + await Promise.all([f.run('printf L >> effects'), f.run('printf R >> effects')]);` }, { name: 'dispatch', localAgent: false, calls: 0, expected: ['L', 'R', 'x', 'y'], child: `import { flow } from '@relayflows/surface'; export default flow('child', async (f, input: { token: string }) => { @@ -645,9 +652,8 @@ export default flow('child', async (f, input: { token: string }) => { f.done('success'); }); `, body: ` - const left = async () => { await f.dispatch('child', { token: 'x' }); await f.run('printf L >> effects'); }; - const right = async () => { await f.dispatch('child', { token: 'y' }); await f.run('printf R >> effects'); }; - await Promise.all([left(), right()]);` }, + await Promise.all([f.dispatch('child', { token: 'x' }), f.dispatch('child', { token: 'y' })]); + await Promise.all([f.run('printf L >> effects'), f.run('printf R >> effects')]);` }, ])('resumes $name branches without replaying completed effects', async ({ name, localAgent, calls, expected, child, body }) => { const fixture = chainFixture(); closes.push(() => fixture.close()); From 879be752cbbe00d61d39fe21ceee0def30a34ad6 Mon Sep 17 00:00:00 2001 From: Relayflow Lead Date: Tue, 3 Nov 2026 04:35:21 -0800 Subject: [PATCH 6/6] test: align authored root fixture renewal with its dispatch lease --- packages/sdk/tests/authored-root.test.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/sdk/tests/authored-root.test.ts b/packages/sdk/tests/authored-root.test.ts index 59f9db3a6..d09b0d904 100644 --- a/packages/sdk/tests/authored-root.test.ts +++ b/packages/sdk/tests/authored-root.test.ts @@ -167,6 +167,9 @@ describe('durable authored root', () => { // This case checks authority and completion, not lease renewal. A 30 ms // fake lease can expire when the full CI suite pauses the event loop. journal.dispatchLeaseMs = 30_000; + // Ownership is renewed before execution; keep that renewal at the same + // duration instead of replacing the dispatch lease with the 30 ms default. + journal.peer.stepHeartbeat = async () => ({ lease_deadline_ms: Date.now() + 30_000 }); const result = await executeDurableAuthoredFlow( loaded, journal as unknown as JournalClient, { topic: 'relay' },