diff --git a/packages/kernel-agents/package.json b/packages/kernel-agents/package.json index 0b7d4bc9a..a32e72e77 100644 --- a/packages/kernel-agents/package.json +++ b/packages/kernel-agents/package.json @@ -184,6 +184,7 @@ "dependencies": { "@endo/eventual-send": "^1.3.4", "@metamask/kernel-errors": "workspace:^", + "@metamask/kernel-exo": "workspace:^", "@metamask/kernel-utils": "workspace:^", "@metamask/logger": "workspace:^", "@ocap/kernel-language-model-service": "workspace:^", diff --git a/packages/kernel-agents/src/capabilities/discover.ts b/packages/kernel-agents/src/capabilities/discover.ts index a8e71e703..f3077f81c 100644 --- a/packages/kernel-agents/src/capabilities/discover.ts +++ b/packages/kernel-agents/src/capabilities/discover.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import type { DiscoverableExo, MethodSchema } from '@metamask/kernel-utils'; +import type { DiscoverableExo, MethodSchema } from '@metamask/kernel-exo'; import type { CapabilityRecord, CapabilitySpec } from '../types.ts'; diff --git a/packages/kernel-agents/src/types/capability.ts b/packages/kernel-agents/src/types/capability.ts index 9d6dbc928..645e1a7f3 100644 --- a/packages/kernel-agents/src/types/capability.ts +++ b/packages/kernel-agents/src/types/capability.ts @@ -1,4 +1,4 @@ -import type { JsonSchema } from '@metamask/kernel-utils'; +import type { JsonSchema } from '@metamask/kernel-exo'; export type Capability, Return = null> = ( args: Args, diff --git a/packages/kernel-agents/tsconfig.build.json b/packages/kernel-agents/tsconfig.build.json index 14b63bcd1..a022a6c0e 100644 --- a/packages/kernel-agents/tsconfig.build.json +++ b/packages/kernel-agents/tsconfig.build.json @@ -8,6 +8,7 @@ "types": ["node"] }, "references": [ + { "path": "../kernel-exo/tsconfig.build.json" }, { "path": "../kernel-language-model-service/tsconfig.build.json" }, { "path": "../kernel-utils/tsconfig.build.json" }, { "path": "../logger/tsconfig.build.json" } diff --git a/packages/kernel-agents/tsconfig.json b/packages/kernel-agents/tsconfig.json index f0958ab59..418121789 100644 --- a/packages/kernel-agents/tsconfig.json +++ b/packages/kernel-agents/tsconfig.json @@ -6,6 +6,7 @@ "types": ["vitest", "node", "ses"] }, "references": [ + { "path": "../kernel-exo" }, { "path": "../kernel-language-model-service" }, { "path": "../kernel-utils" }, { "path": "../logger" }, diff --git a/packages/kernel-exo/CHANGELOG.md b/packages/kernel-exo/CHANGELOG.md new file mode 100644 index 000000000..0c82cb1ed --- /dev/null +++ b/packages/kernel-exo/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +[Unreleased]: https://github.com/MetaMask/ocap-kernel/ diff --git a/packages/kernel-exo/LICENSE.APACHE2 b/packages/kernel-exo/LICENSE.APACHE2 new file mode 100644 index 000000000..8194a06ae --- /dev/null +++ b/packages/kernel-exo/LICENSE.APACHE2 @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2025 Consensys Software Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/kernel-exo/LICENSE.MIT b/packages/kernel-exo/LICENSE.MIT new file mode 100644 index 000000000..658c855eb --- /dev/null +++ b/packages/kernel-exo/LICENSE.MIT @@ -0,0 +1,20 @@ +MIT License + +Copyright (c) 2025 Consensys Software Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE diff --git a/packages/kernel-exo/README.md b/packages/kernel-exo/README.md new file mode 100644 index 000000000..d73720311 --- /dev/null +++ b/packages/kernel-exo/README.md @@ -0,0 +1,15 @@ +# `kernel-exo` + +Exo creation utilities for the Ocap Kernel. + +## Installation + +`yarn add @metamask/kernel-exo` + +or + +`npm install @metamask/kernel-exo` + +## Contributing + +This package is part of a monorepo. Instructions for contributing can be found in the [monorepo README](https://github.com/MetaMask/ocap-kernel#readme). diff --git a/packages/kernel-exo/package.json b/packages/kernel-exo/package.json new file mode 100644 index 000000000..afc2bbc51 --- /dev/null +++ b/packages/kernel-exo/package.json @@ -0,0 +1,103 @@ +{ + "name": "@metamask/kernel-exo", + "version": "0.0.0", + "description": "Exo creation utilities for the Ocap Kernel", + "homepage": "https://github.com/MetaMask/ocap-kernel/tree/main/packages/kernel-exo#readme", + "bugs": { + "url": "https://github.com/MetaMask/ocap-kernel/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/MetaMask/ocap-kernel.git" + }, + "type": "module", + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } + }, + "./package.json": "./package.json" + }, + "files": [ + "dist/" + ], + "scripts": { + "build": "ts-bridge --project tsconfig.build.json --no-references --clean", + "build:docs": "typedoc", + "changelog:update": "../../scripts/update-changelog.sh @metamask/kernel-exo", + "changelog:validate": "../../scripts/validate-changelog.sh @metamask/kernel-exo", + "clean": "rimraf --glob './*.tsbuildinfo' ./.eslintcache ./coverage ./dist ./.turbo ./logs", + "lint": "yarn lint:eslint && yarn lint:misc --check && yarn constraints && yarn lint:dependencies", + "lint:dependencies": "depcheck --quiet", + "lint:eslint": "eslint . --cache", + "lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write && yarn constraints --fix && yarn lint:dependencies", + "lint:misc": "prettier --no-error-on-unmatched-pattern '**/*.json' '**/*.md' '**/*.html' '!**/CHANGELOG.old.md' '**/*.yml' '!.yarnrc.yml' '!merged-packages/**' --ignore-path ../../.gitignore --log-level error", + "publish:preview": "yarn npm publish --tag preview", + "test": "vitest run --config vitest.config.ts", + "test:clean": "yarn test --no-cache --coverage.clean", + "test:dev": "yarn test --mode development", + "test:verbose": "yarn test --reporter verbose", + "test:watch": "vitest --config vitest.config.ts", + "test:dev:quiet": "yarn test:dev --reporter @ocap/repo-tools/vitest-reporters/silent" + }, + "dependencies": { + "@endo/exo": "^1.5.12", + "@endo/patterns": "^1.7.0", + "@metamask/kernel-utils": "workspace:^" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.4", + "@metamask/auto-changelog": "^5.3.0", + "@metamask/eslint-config": "^15.0.0", + "@metamask/eslint-config-nodejs": "^15.0.0", + "@metamask/eslint-config-typescript": "^15.0.0", + "@ocap/repo-tools": "workspace:^", + "@ts-bridge/cli": "^0.6.3", + "@ts-bridge/shims": "^0.1.1", + "@typescript-eslint/eslint-plugin": "^8.29.0", + "@typescript-eslint/parser": "^8.29.0", + "@typescript-eslint/utils": "^8.29.0", + "@vitest/eslint-plugin": "^1.6.5", + "depcheck": "^1.4.7", + "eslint": "^9.23.0", + "eslint-config-prettier": "^10.1.1", + "eslint-import-resolver-typescript": "^4.3.1", + "eslint-plugin-import-x": "^4.10.0", + "eslint-plugin-jsdoc": "^50.6.9", + "eslint-plugin-n": "^17.17.0", + "eslint-plugin-prettier": "^5.2.6", + "eslint-plugin-promise": "^7.2.1", + "prettier": "^3.5.3", + "rimraf": "^6.0.1", + "ses": "^1.14.0", + "turbo": "^2.5.6", + "typedoc": "^0.28.1", + "typescript": "~5.8.2", + "typescript-eslint": "^8.29.0", + "vite": "^7.3.0", + "vitest": "^4.0.16" + }, + "engines": { + "node": ">=22" + }, + "keywords": [ + "MetaMask", + "object capabilities", + "ocap" + ], + "license": "(MIT OR Apache-2.0)", + "module": "./dist/index.mjs", + "main": "./dist/index.cjs", + "types": "./dist/index.d.cts", + "sideEffects": false, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + } +} diff --git a/packages/kernel-utils/src/discoverable.test.ts b/packages/kernel-exo/src/discoverable.test.ts similarity index 100% rename from packages/kernel-utils/src/discoverable.test.ts rename to packages/kernel-exo/src/discoverable.test.ts diff --git a/packages/kernel-utils/src/discoverable.ts b/packages/kernel-exo/src/discoverable.ts similarity index 97% rename from packages/kernel-utils/src/discoverable.ts rename to packages/kernel-exo/src/discoverable.ts index 65a1c07f2..72af57b0b 100644 --- a/packages/kernel-utils/src/discoverable.ts +++ b/packages/kernel-exo/src/discoverable.ts @@ -1,9 +1,9 @@ import { makeExo } from '@endo/exo'; import type { Methods } from '@endo/exo'; import type { InterfaceGuard } from '@endo/patterns'; +import { mergeDisjointRecords } from '@metamask/kernel-utils'; import { makeDefaultInterface } from './exo.ts'; -import { mergeDisjointRecords } from './merge-disjoint-records.ts'; import type { MethodSchema } from './schema.ts'; /** diff --git a/packages/kernel-utils/src/exo.test.ts b/packages/kernel-exo/src/exo.test.ts similarity index 100% rename from packages/kernel-utils/src/exo.test.ts rename to packages/kernel-exo/src/exo.test.ts diff --git a/packages/kernel-utils/src/exo.ts b/packages/kernel-exo/src/exo.ts similarity index 100% rename from packages/kernel-utils/src/exo.ts rename to packages/kernel-exo/src/exo.ts diff --git a/packages/kernel-exo/src/index.ts b/packages/kernel-exo/src/index.ts new file mode 100644 index 000000000..fed1cd518 --- /dev/null +++ b/packages/kernel-exo/src/index.ts @@ -0,0 +1,4 @@ +export { makeDefaultInterface, makeDefaultExo } from './exo.ts'; +export { makeDiscoverableExo } from './discoverable.ts'; +export type { DiscoverableExo } from './discoverable.ts'; +export type { JsonSchema, MethodSchema } from './schema.ts'; diff --git a/packages/kernel-utils/src/schema.ts b/packages/kernel-exo/src/schema.ts similarity index 100% rename from packages/kernel-utils/src/schema.ts rename to packages/kernel-exo/src/schema.ts diff --git a/packages/kernel-exo/tsconfig.build.json b/packages/kernel-exo/tsconfig.build.json new file mode 100644 index 000000000..85fa65ecb --- /dev/null +++ b/packages/kernel-exo/tsconfig.build.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.packages.build.json", + "compilerOptions": { + "baseUrl": "./", + "lib": ["ES2022"], + "outDir": "./dist", + "rootDir": "./src", + "types": ["ses"] + }, + "references": [{ "path": "../kernel-utils/tsconfig.build.json" }], + "files": [], + "include": ["./src"] +} diff --git a/packages/kernel-exo/tsconfig.json b/packages/kernel-exo/tsconfig.json new file mode 100644 index 000000000..bdff168bd --- /dev/null +++ b/packages/kernel-exo/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.packages.json", + "compilerOptions": { + "baseUrl": "./", + "lib": ["ES2022"], + "types": ["ses", "vitest"] + }, + "references": [{ "path": "../kernel-utils" }, { "path": "../repo-tools" }], + "include": [ + "../../vitest.config.ts", + "./src", + "./vite.config.ts", + "./vitest.config.ts" + ] +} diff --git a/packages/kernel-exo/vitest.config.ts b/packages/kernel-exo/vitest.config.ts new file mode 100644 index 000000000..968805a3c --- /dev/null +++ b/packages/kernel-exo/vitest.config.ts @@ -0,0 +1,22 @@ +import { mergeConfig } from '@ocap/repo-tools/vitest-config'; +import { fileURLToPath } from 'node:url'; +import { defineConfig, defineProject } from 'vitest/config'; + +import defaultConfig from '../../vitest.config.ts'; + +export default defineConfig((args) => { + return mergeConfig( + args, + defaultConfig, + defineProject({ + test: { + name: 'kernel-exo', + setupFiles: [ + fileURLToPath( + import.meta.resolve('@ocap/repo-tools/test-utils/mock-endoify'), + ), + ], + }, + }), + ); +}); diff --git a/packages/kernel-test/package.json b/packages/kernel-test/package.json index 2cb1cdea7..ba98eeb00 100644 --- a/packages/kernel-test/package.json +++ b/packages/kernel-test/package.json @@ -54,6 +54,7 @@ "@endo/promise-kit": "^1.1.13", "@libp2p/crypto": "5.1.8", "@libp2p/peer-id": "5.1.9", + "@metamask/kernel-exo": "workspace:^", "@metamask/kernel-store": "workspace:^", "@metamask/kernel-utils": "workspace:^", "@metamask/logger": "workspace:^", diff --git a/packages/kernel-test/src/service.test.ts b/packages/kernel-test/src/service.test.ts index 5275daf06..63027d858 100644 --- a/packages/kernel-test/src/service.test.ts +++ b/packages/kernel-test/src/service.test.ts @@ -1,5 +1,6 @@ +import { makeDefaultExo } from '@metamask/kernel-exo'; import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/nodejs'; -import { makeDefaultExo, waitUntilQuiescent } from '@metamask/kernel-utils'; +import { waitUntilQuiescent } from '@metamask/kernel-utils'; import { Kernel, krefOf } from '@metamask/ocap-kernel'; import type { KRef, SlotValue } from '@metamask/ocap-kernel'; import { describe, expect, it } from 'vitest'; diff --git a/packages/kernel-test/src/vats/async-generator-iterator-vat.ts b/packages/kernel-test/src/vats/async-generator-iterator-vat.ts index 442d7c366..429af0588 100644 --- a/packages/kernel-test/src/vats/async-generator-iterator-vat.ts +++ b/packages/kernel-test/src/vats/async-generator-iterator-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { makeEventualIterator, makeExoGenerator } from '@ocap/remote-iterables'; import { unwrapTestLogger } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/default/empty-vat.js b/packages/kernel-test/src/vats/default/empty-vat.js index 023d344bd..5e89d711b 100644 --- a/packages/kernel-test/src/vats/default/empty-vat.js +++ b/packages/kernel-test/src/vats/default/empty-vat.js @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; /** * Build function for simple test vat. diff --git a/packages/kernel-test/src/vats/default/sample-vat.js b/packages/kernel-test/src/vats/default/sample-vat.js index 176516ee3..12a3c17e0 100644 --- a/packages/kernel-test/src/vats/default/sample-vat.js +++ b/packages/kernel-test/src/vats/default/sample-vat.js @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; /** * Build function for generic test vat. diff --git a/packages/kernel-test/src/vats/discoverable-capability-vat.ts b/packages/kernel-test/src/vats/discoverable-capability-vat.ts index e36bd3c22..d8945b3ad 100644 --- a/packages/kernel-test/src/vats/discoverable-capability-vat.ts +++ b/packages/kernel-test/src/vats/discoverable-capability-vat.ts @@ -1,5 +1,5 @@ -import { makeDiscoverableExo } from '@metamask/kernel-utils/discoverable'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDiscoverableExo } from '@metamask/kernel-exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; /** * Build function for a vat that exports a discoverable exo capability. diff --git a/packages/kernel-test/src/vats/endowment-fetch.ts b/packages/kernel-test/src/vats/endowment-fetch.ts index 2eb8dcf53..e679c3255 100644 --- a/packages/kernel-test/src/vats/endowment-fetch.ts +++ b/packages/kernel-test/src/vats/endowment-fetch.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/error-bootstrap-throw.ts b/packages/kernel-test/src/vats/error-bootstrap-throw.ts index 86737ead7..d0a617565 100644 --- a/packages/kernel-test/src/vats/error-bootstrap-throw.ts +++ b/packages/kernel-test/src/vats/error-bootstrap-throw.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; // eslint-disable-next-line no-console console.log('bootstrap throw'); diff --git a/packages/kernel-test/src/vats/error-bootstrap-uncaught-rejection.ts b/packages/kernel-test/src/vats/error-bootstrap-uncaught-rejection.ts index 0e71c9539..f044dc062 100644 --- a/packages/kernel-test/src/vats/error-bootstrap-uncaught-rejection.ts +++ b/packages/kernel-test/src/vats/error-bootstrap-uncaught-rejection.ts @@ -1,5 +1,5 @@ import { makePromiseKit } from '@endo/promise-kit'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; // eslint-disable-next-line no-console console.log('bootstrap uncaught rejection'); diff --git a/packages/kernel-test/src/vats/error-build-uncaught-rejection.ts b/packages/kernel-test/src/vats/error-build-uncaught-rejection.ts index 431921be2..4ec8e46a7 100644 --- a/packages/kernel-test/src/vats/error-build-uncaught-rejection.ts +++ b/packages/kernel-test/src/vats/error-build-uncaught-rejection.ts @@ -1,5 +1,5 @@ import { makePromiseKit } from '@endo/promise-kit'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; // eslint-disable-next-line no-console console.log('build uncaught rejection'); diff --git a/packages/kernel-test/src/vats/error-global-uncaught-rejection.ts b/packages/kernel-test/src/vats/error-global-uncaught-rejection.ts index 2bf0df8ed..e5ffe4857 100644 --- a/packages/kernel-test/src/vats/error-global-uncaught-rejection.ts +++ b/packages/kernel-test/src/vats/error-global-uncaught-rejection.ts @@ -1,5 +1,5 @@ import { makePromiseKit } from '@endo/promise-kit'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; // eslint-disable-next-line no-console console.log('global uncaught rejection'); diff --git a/packages/kernel-test/src/vats/exo-vat.ts b/packages/kernel-test/src/vats/exo-vat.ts index 680bdd558..b8d49baa8 100644 --- a/packages/kernel-test/src/vats/exo-vat.ts +++ b/packages/kernel-test/src/vats/exo-vat.ts @@ -1,7 +1,7 @@ import { makeScalarMapStore, makeScalarSetStore } from '@agoric/store'; import { makeExo, defineExoClass, defineExoClassKit } from '@endo/exo'; import { M } from '@endo/patterns'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { Baggage } from '@metamask/ocap-kernel'; import { unwrapTestLogger } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/exporter-vat.ts b/packages/kernel-test/src/vats/exporter-vat.ts index 5c9dfc371..096aee85e 100644 --- a/packages/kernel-test/src/vats/exporter-vat.ts +++ b/packages/kernel-test/src/vats/exporter-vat.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/importer-vat.ts b/packages/kernel-test/src/vats/importer-vat.ts index a5002b3cd..b8c02ce35 100644 --- a/packages/kernel-test/src/vats/importer-vat.ts +++ b/packages/kernel-test/src/vats/importer-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/io-vat.ts b/packages/kernel-test/src/vats/io-vat.ts index 04b582fde..9df0e1c4a 100644 --- a/packages/kernel-test/src/vats/io-vat.ts +++ b/packages/kernel-test/src/vats/io-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/lms-queue-vat.ts b/packages/kernel-test/src/vats/lms-queue-vat.ts index e7872f1a6..b77f0f131 100644 --- a/packages/kernel-test/src/vats/lms-queue-vat.ts +++ b/packages/kernel-test/src/vats/lms-queue-vat.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { makeQueueService } from '@ocap/kernel-language-model-service/test-utils'; import { makeExoGenerator } from '@ocap/remote-iterables'; diff --git a/packages/kernel-test/src/vats/lms-user-vat.ts b/packages/kernel-test/src/vats/lms-user-vat.ts index 4a0c1b0e5..ace891463 100644 --- a/packages/kernel-test/src/vats/lms-user-vat.ts +++ b/packages/kernel-test/src/vats/lms-user-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { makeEventualIterator } from '@ocap/remote-iterables'; import { unwrapTestLogger } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/logger-vat.ts b/packages/kernel-test/src/vats/logger-vat.ts index 0d18040ed..26617e8b8 100644 --- a/packages/kernel-test/src/vats/logger-vat.ts +++ b/packages/kernel-test/src/vats/logger-vat.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/message-to-promise-vat.ts b/packages/kernel-test/src/vats/message-to-promise-vat.ts index d919c4b75..a5b1f9451 100644 --- a/packages/kernel-test/src/vats/message-to-promise-vat.ts +++ b/packages/kernel-test/src/vats/message-to-promise-vat.ts @@ -1,6 +1,6 @@ import { E } from '@endo/eventual-send'; import { makePromiseKit } from '@endo/promise-kit'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/monotonous-vat.ts b/packages/kernel-test/src/vats/monotonous-vat.ts index 1d80c09b2..41486634e 100644 --- a/packages/kernel-test/src/vats/monotonous-vat.ts +++ b/packages/kernel-test/src/vats/monotonous-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { Baggage } from '@metamask/ocap-kernel'; /** diff --git a/packages/kernel-test/src/vats/pass-result-promise-vat.ts b/packages/kernel-test/src/vats/pass-result-promise-vat.ts index b4f05754e..2e67407ae 100644 --- a/packages/kernel-test/src/vats/pass-result-promise-vat.ts +++ b/packages/kernel-test/src/vats/pass-result-promise-vat.ts @@ -1,6 +1,6 @@ import { E } from '@endo/eventual-send'; import { makePromiseKit } from '@endo/promise-kit'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/pass-result-vat.ts b/packages/kernel-test/src/vats/pass-result-vat.ts index 0bfe1a34e..ebc7fac2d 100644 --- a/packages/kernel-test/src/vats/pass-result-vat.ts +++ b/packages/kernel-test/src/vats/pass-result-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/persistence-coordinator-vat.ts b/packages/kernel-test/src/vats/persistence-coordinator-vat.ts index 096ecb624..4721d0f39 100644 --- a/packages/kernel-test/src/vats/persistence-coordinator-vat.ts +++ b/packages/kernel-test/src/vats/persistence-coordinator-vat.ts @@ -1,6 +1,6 @@ /* global harden */ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { Baggage } from '@metamask/ocap-kernel'; import { unwrapTestLogger } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/persistence-counter-vat.ts b/packages/kernel-test/src/vats/persistence-counter-vat.ts index 8daa099ad..6c2e983ea 100644 --- a/packages/kernel-test/src/vats/persistence-counter-vat.ts +++ b/packages/kernel-test/src/vats/persistence-counter-vat.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { Baggage } from '@metamask/ocap-kernel'; import { unwrapTestLogger } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/persistence-worker-vat.ts b/packages/kernel-test/src/vats/persistence-worker-vat.ts index 3c72ac588..e5b080ecd 100644 --- a/packages/kernel-test/src/vats/persistence-worker-vat.ts +++ b/packages/kernel-test/src/vats/persistence-worker-vat.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { Baggage } from '@metamask/ocap-kernel'; import { unwrapTestLogger } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/powers-vat.ts b/packages/kernel-test/src/vats/powers-vat.ts index 16bc305ac..e4ad32eb5 100644 --- a/packages/kernel-test/src/vats/powers-vat.ts +++ b/packages/kernel-test/src/vats/powers-vat.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; /** * Build function for running a test of the vatstore. diff --git a/packages/kernel-test/src/vats/promise-arg-vat.ts b/packages/kernel-test/src/vats/promise-arg-vat.ts index 0c6bf2f18..aa7aa2fa3 100644 --- a/packages/kernel-test/src/vats/promise-arg-vat.ts +++ b/packages/kernel-test/src/vats/promise-arg-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/promise-chain-vat.ts b/packages/kernel-test/src/vats/promise-chain-vat.ts index cf5515dd9..26fb3bbd2 100644 --- a/packages/kernel-test/src/vats/promise-chain-vat.ts +++ b/packages/kernel-test/src/vats/promise-chain-vat.ts @@ -1,6 +1,6 @@ import { E } from '@endo/eventual-send'; import { makePromiseKit } from '@endo/promise-kit'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/promise-crosswise-vat.ts b/packages/kernel-test/src/vats/promise-crosswise-vat.ts index c9ad2a49f..b547d751a 100644 --- a/packages/kernel-test/src/vats/promise-crosswise-vat.ts +++ b/packages/kernel-test/src/vats/promise-crosswise-vat.ts @@ -1,6 +1,6 @@ import { E } from '@endo/eventual-send'; import { makePromiseKit } from '@endo/promise-kit'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/promise-cycle-vat.ts b/packages/kernel-test/src/vats/promise-cycle-vat.ts index a5461b5d9..00af2e0ee 100644 --- a/packages/kernel-test/src/vats/promise-cycle-vat.ts +++ b/packages/kernel-test/src/vats/promise-cycle-vat.ts @@ -1,6 +1,6 @@ import { E } from '@endo/eventual-send'; import { makePromiseKit } from '@endo/promise-kit'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/promise-indirect-vat.ts b/packages/kernel-test/src/vats/promise-indirect-vat.ts index db511ceef..a0cd9b060 100644 --- a/packages/kernel-test/src/vats/promise-indirect-vat.ts +++ b/packages/kernel-test/src/vats/promise-indirect-vat.ts @@ -1,6 +1,6 @@ import { E } from '@endo/eventual-send'; import { makePromiseKit } from '@endo/promise-kit'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/rejection-bootstrap.ts b/packages/kernel-test/src/vats/rejection-bootstrap.ts index f943560be..0e18039ad 100644 --- a/packages/kernel-test/src/vats/rejection-bootstrap.ts +++ b/packages/kernel-test/src/vats/rejection-bootstrap.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/rejection-rejector.ts b/packages/kernel-test/src/vats/rejection-rejector.ts index f07eac6dc..469756e10 100644 --- a/packages/kernel-test/src/vats/rejection-rejector.ts +++ b/packages/kernel-test/src/vats/rejection-rejector.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/remote-receiver-vat.ts b/packages/kernel-test/src/vats/remote-receiver-vat.ts index aab1a5991..29f1232db 100644 --- a/packages/kernel-test/src/vats/remote-receiver-vat.ts +++ b/packages/kernel-test/src/vats/remote-receiver-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/remote-sender-vat.ts b/packages/kernel-test/src/vats/remote-sender-vat.ts index 7e54ffde6..99bdf8b01 100644 --- a/packages/kernel-test/src/vats/remote-sender-vat.ts +++ b/packages/kernel-test/src/vats/remote-sender-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/resolve-pipelined-vat.ts b/packages/kernel-test/src/vats/resolve-pipelined-vat.ts index 3a9d11fe9..274290c8e 100644 --- a/packages/kernel-test/src/vats/resolve-pipelined-vat.ts +++ b/packages/kernel-test/src/vats/resolve-pipelined-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/resume-vat.ts b/packages/kernel-test/src/vats/resume-vat.ts index 070e9b123..942b4539e 100644 --- a/packages/kernel-test/src/vats/resume-vat.ts +++ b/packages/kernel-test/src/vats/resume-vat.ts @@ -1,6 +1,6 @@ /* global harden */ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { Baggage } from '@metamask/ocap-kernel'; import { unwrapTestLogger } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/service-vat.ts b/packages/kernel-test/src/vats/service-vat.ts index 4e62581a5..5a79900f8 100644 --- a/packages/kernel-test/src/vats/service-vat.ts +++ b/packages/kernel-test/src/vats/service-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { unwrapTestLogger } from '../test-powers.ts'; import type { TestPowers } from '../test-powers.ts'; diff --git a/packages/kernel-test/src/vats/stepper-upper-vat.ts b/packages/kernel-test/src/vats/stepper-upper-vat.ts index 158108935..fa393d8d4 100644 --- a/packages/kernel-test/src/vats/stepper-upper-vat.ts +++ b/packages/kernel-test/src/vats/stepper-upper-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { Baggage } from '@metamask/ocap-kernel'; /** diff --git a/packages/kernel-test/src/vats/subcluster-vat.ts b/packages/kernel-test/src/vats/subcluster-vat.ts index 894d922a5..b0bacfafe 100644 --- a/packages/kernel-test/src/vats/subcluster-vat.ts +++ b/packages/kernel-test/src/vats/subcluster-vat.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; /** * Build function for testing subcluster functionality. diff --git a/packages/kernel-test/src/vats/vatstore-vat.ts b/packages/kernel-test/src/vats/vatstore-vat.ts index a77907f8d..edc3ac2dc 100644 --- a/packages/kernel-test/src/vats/vatstore-vat.ts +++ b/packages/kernel-test/src/vats/vatstore-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { Baggage } from '@metamask/ocap-kernel'; type BaggageWithDelete = Baggage & { diff --git a/packages/kernel-test/tsconfig.json b/packages/kernel-test/tsconfig.json index bc2bca875..b2ff34c69 100644 --- a/packages/kernel-test/tsconfig.json +++ b/packages/kernel-test/tsconfig.json @@ -8,6 +8,7 @@ "types": ["vitest"] }, "references": [ + { "path": "../kernel-exo" }, { "path": "../kernel-agents" }, { "path": "../kernel-store" }, { "path": "../kernel-utils" }, diff --git a/packages/kernel-utils/package.json b/packages/kernel-utils/package.json index 0199a158b..6380dba61 100644 --- a/packages/kernel-utils/package.json +++ b/packages/kernel-utils/package.json @@ -29,26 +29,6 @@ "default": "./dist/index.cjs" } }, - "./exo": { - "import": { - "types": "./dist/exo.d.mts", - "default": "./dist/exo.mjs" - }, - "require": { - "types": "./dist/exo.d.cts", - "default": "./dist/exo.cjs" - } - }, - "./discoverable": { - "import": { - "types": "./dist/discoverable.d.mts", - "default": "./dist/discoverable.mjs" - }, - "require": { - "types": "./dist/discoverable.d.cts", - "default": "./dist/discoverable.cjs" - } - }, "./libp2p": { "import": { "types": "./dist/libp2p-relay.d.mts", @@ -91,8 +71,6 @@ "@chainsafe/libp2p-yamux": "patch:@chainsafe/libp2p-yamux@npm%3A7.0.4#~/.yarn/patches/@chainsafe-libp2p-yamux-npm-7.0.4-284c2f6812.patch", "@endo/captp": "^4.4.8", "@endo/errors": "^1.2.13", - "@endo/exo": "^1.5.12", - "@endo/patterns": "^1.7.0", "@endo/promise-kit": "^1.1.13", "@libp2p/autonat": "2.0.38", "@libp2p/circuit-relay-v2": "3.2.24", diff --git a/packages/kernel-utils/src/index.test.ts b/packages/kernel-utils/src/index.test.ts index 7533cd072..0e05591e2 100644 --- a/packages/kernel-utils/src/index.test.ts +++ b/packages/kernel-utils/src/index.test.ts @@ -23,9 +23,6 @@ describe('index', () => { 'isTypedObject', 'isVatBundle', 'makeCounter', - 'makeDefaultExo', - 'makeDefaultInterface', - 'makeDiscoverableExo', 'mergeDisjointRecords', 'retry', 'retryWithBackoff', diff --git a/packages/kernel-utils/src/index.ts b/packages/kernel-utils/src/index.ts index 09d85af54..f8c320d97 100644 --- a/packages/kernel-utils/src/index.ts +++ b/packages/kernel-utils/src/index.ts @@ -1,7 +1,3 @@ -export { makeDefaultInterface, makeDefaultExo } from './exo.ts'; -export { makeDiscoverableExo } from './discoverable.ts'; -export type { DiscoverableExo } from './discoverable.ts'; -export type { JsonSchema, MethodSchema } from './schema.ts'; export { fetchValidatedJson } from './fetchValidatedJson.ts'; export { abortableDelay, delay, ifDefined, makeCounter } from './misc.ts'; export { stringify } from './stringify.ts'; diff --git a/packages/nodejs/package.json b/packages/nodejs/package.json index 6b327988e..fc0518c35 100644 --- a/packages/nodejs/package.json +++ b/packages/nodejs/package.json @@ -65,6 +65,7 @@ "@libp2p/interface": "2.11.0", "@libp2p/tcp": "10.1.19", "@libp2p/webrtc": "5.2.24", + "@metamask/kernel-exo": "workspace:^", "@metamask/kernel-platforms": "workspace:^", "@metamask/kernel-rpc-methods": "workspace:^", "@metamask/kernel-shims": "workspace:^", diff --git a/packages/nodejs/test/vats/monotonous-vat.js b/packages/nodejs/test/vats/monotonous-vat.js index c1032cc86..a0440563d 100644 --- a/packages/nodejs/test/vats/monotonous-vat.js +++ b/packages/nodejs/test/vats/monotonous-vat.js @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; /** * Vat providing Monotony As A Service (MaaS). It just keeps relentlessly counting up. It's very boring. diff --git a/packages/nodejs/test/vats/remote-vat.js b/packages/nodejs/test/vats/remote-vat.js index 516407321..68c19bdb6 100644 --- a/packages/nodejs/test/vats/remote-vat.js +++ b/packages/nodejs/test/vats/remote-vat.js @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; /** * Build function for a vat that supports remote communication testing. diff --git a/packages/nodejs/test/vats/sample-vat.js b/packages/nodejs/test/vats/sample-vat.js index f8beb15a0..95ef9ff14 100644 --- a/packages/nodejs/test/vats/sample-vat.js +++ b/packages/nodejs/test/vats/sample-vat.js @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; /** * Build function for a sample vat. diff --git a/packages/nodejs/test/vats/stepper-upper-vat.js b/packages/nodejs/test/vats/stepper-upper-vat.js index 23308f74e..9556059d4 100644 --- a/packages/nodejs/test/vats/stepper-upper-vat.js +++ b/packages/nodejs/test/vats/stepper-upper-vat.js @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; /** * Build function for MaaS consumer. diff --git a/packages/nodejs/test/vats/system-vat.ts b/packages/nodejs/test/vats/system-vat.ts index 7c5ece156..d93fa8068 100644 --- a/packages/nodejs/test/vats/system-vat.ts +++ b/packages/nodejs/test/vats/system-vat.ts @@ -1,5 +1,5 @@ import { E } from '@endo/eventual-send'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { Baggage, ClusterConfig, diff --git a/packages/nodejs/tsconfig.build.json b/packages/nodejs/tsconfig.build.json index e3ad4d2b0..aed86de28 100644 --- a/packages/nodejs/tsconfig.build.json +++ b/packages/nodejs/tsconfig.build.json @@ -8,6 +8,7 @@ "types": ["node", "ses"] }, "references": [ + { "path": "../kernel-exo/tsconfig.build.json" }, { "path": "../kernel-platforms/tsconfig.build.json" }, { "path": "../ocap-kernel/tsconfig.build.json" }, { "path": "../logger/tsconfig.build.json" }, diff --git a/packages/nodejs/tsconfig.json b/packages/nodejs/tsconfig.json index 23136c051..a8e362419 100644 --- a/packages/nodejs/tsconfig.json +++ b/packages/nodejs/tsconfig.json @@ -8,6 +8,7 @@ "types": ["node", "ses", "vitest"] }, "references": [ + { "path": "../kernel-exo" }, { "path": "../kernel-platforms" }, { "path": "../ocap-kernel" }, { "path": "../logger" }, diff --git a/packages/ocap-kernel/package.json b/packages/ocap-kernel/package.json index 8b65631e3..0cab4ab05 100644 --- a/packages/ocap-kernel/package.json +++ b/packages/ocap-kernel/package.json @@ -86,6 +86,7 @@ "@libp2p/websockets": "9.2.19", "@libp2p/webtransport": "5.0.51", "@metamask/kernel-errors": "workspace:^", + "@metamask/kernel-exo": "workspace:^", "@metamask/kernel-platforms": "workspace:^", "@metamask/kernel-rpc-methods": "workspace:^", "@metamask/kernel-store": "workspace:^", diff --git a/packages/ocap-kernel/src/io/io-service.ts b/packages/ocap-kernel/src/io/io-service.ts index 0c7d86468..7c4fb94d6 100644 --- a/packages/ocap-kernel/src/io/io-service.ts +++ b/packages/ocap-kernel/src/io/io-service.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { IOChannel } from './types.ts'; import type { IOConfig } from '../types.ts'; diff --git a/packages/ocap-kernel/src/kernel-facet.ts b/packages/ocap-kernel/src/kernel-facet.ts index 79ecbe443..cdba91a68 100644 --- a/packages/ocap-kernel/src/kernel-facet.ts +++ b/packages/ocap-kernel/src/kernel-facet.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { Kernel } from './Kernel.ts'; diff --git a/packages/ocap-kernel/src/liveslots/kernel-marshal.ts b/packages/ocap-kernel/src/liveslots/kernel-marshal.ts index a023a9445..30ba6aedc 100644 --- a/packages/ocap-kernel/src/liveslots/kernel-marshal.ts +++ b/packages/ocap-kernel/src/liveslots/kernel-marshal.ts @@ -2,7 +2,7 @@ import { assert, Fail } from '@endo/errors'; import { passStyleOf, makeMarshal } from '@endo/marshal'; import type { CapData } from '@endo/marshal'; import type { Passable } from '@endo/pass-style'; -import { makeDefaultExo } from '@metamask/kernel-utils'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { KRef } from '../types.ts'; diff --git a/packages/ocap-kernel/tsconfig.build.json b/packages/ocap-kernel/tsconfig.build.json index fbda55b3a..f219710e8 100644 --- a/packages/ocap-kernel/tsconfig.build.json +++ b/packages/ocap-kernel/tsconfig.build.json @@ -8,6 +8,7 @@ "types": ["ses"] }, "references": [ + { "path": "../kernel-exo/tsconfig.build.json" }, { "path": "../kernel-errors/tsconfig.build.json" }, { "path": "../kernel-rpc-methods/tsconfig.build.json" }, { "path": "../streams/tsconfig.build.json" }, diff --git a/packages/ocap-kernel/tsconfig.json b/packages/ocap-kernel/tsconfig.json index d1a3ce3c9..7583c0b0a 100644 --- a/packages/ocap-kernel/tsconfig.json +++ b/packages/ocap-kernel/tsconfig.json @@ -4,6 +4,7 @@ "baseUrl": "./" }, "references": [ + { "path": "../kernel-exo" }, { "path": "../kernel-errors" }, { "path": "../logger" }, { "path": "../kernel-rpc-methods" }, diff --git a/packages/omnium-gatherum/package.json b/packages/omnium-gatherum/package.json index 390e371e9..572054af5 100644 --- a/packages/omnium-gatherum/package.json +++ b/packages/omnium-gatherum/package.json @@ -48,6 +48,7 @@ "@endo/exo": "^1.5.12", "@endo/promise-kit": "^1.1.13", "@metamask/kernel-browser-runtime": "workspace:^", + "@metamask/kernel-exo": "workspace:^", "@metamask/kernel-shims": "workspace:^", "@metamask/kernel-ui": "workspace:^", "@metamask/kernel-utils": "workspace:^", diff --git a/packages/omnium-gatherum/src/caplets/echo/echo-caplet.js b/packages/omnium-gatherum/src/caplets/echo/echo-caplet.js index c0d0ee31c..008859e35 100644 --- a/packages/omnium-gatherum/src/caplets/echo/echo-caplet.js +++ b/packages/omnium-gatherum/src/caplets/echo/echo-caplet.js @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; /** * Log a message with caplet prefix. diff --git a/packages/omnium-gatherum/src/controllers/base-controller.test.ts b/packages/omnium-gatherum/src/controllers/base-controller.test.ts index b623be8c5..cb10069ee 100644 --- a/packages/omnium-gatherum/src/controllers/base-controller.test.ts +++ b/packages/omnium-gatherum/src/controllers/base-controller.test.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { Logger } from '@metamask/logger'; import { describe, it, expect, vi, beforeEach } from 'vitest'; diff --git a/packages/omnium-gatherum/src/controllers/caplet/caplet-controller.ts b/packages/omnium-gatherum/src/controllers/caplet/caplet-controller.ts index 90b1c1076..ad2603ba9 100644 --- a/packages/omnium-gatherum/src/controllers/caplet/caplet-controller.ts +++ b/packages/omnium-gatherum/src/controllers/caplet/caplet-controller.ts @@ -1,4 +1,4 @@ -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import type { Logger } from '@metamask/logger'; import type { ClusterConfig, diff --git a/packages/omnium-gatherum/src/vats/controller-vat.ts b/packages/omnium-gatherum/src/vats/controller-vat.ts index d45b1d38c..052866d72 100644 --- a/packages/omnium-gatherum/src/vats/controller-vat.ts +++ b/packages/omnium-gatherum/src/vats/controller-vat.ts @@ -2,7 +2,7 @@ import { E } from '@endo/eventual-send'; import type { ERef } from '@endo/eventual-send'; import { makePromiseKit } from '@endo/promise-kit'; import type { PromiseKit } from '@endo/promise-kit'; -import { makeDefaultExo } from '@metamask/kernel-utils/exo'; +import { makeDefaultExo } from '@metamask/kernel-exo'; import { Logger } from '@metamask/logger'; import type { Baggage, diff --git a/packages/omnium-gatherum/tsconfig.build.json b/packages/omnium-gatherum/tsconfig.build.json index d7b547202..781130119 100644 --- a/packages/omnium-gatherum/tsconfig.build.json +++ b/packages/omnium-gatherum/tsconfig.build.json @@ -12,6 +12,7 @@ "types": ["chrome", "ses", "react-dom"] }, "references": [ + { "path": "../kernel-exo/tsconfig.build.json" }, { "path": "../kernel-browser-runtime/tsconfig.build.json" }, { "path": "../kernel-rpc-methods/tsconfig.build.json" }, { "path": "../kernel-ui/tsconfig.build.json" }, diff --git a/packages/omnium-gatherum/tsconfig.json b/packages/omnium-gatherum/tsconfig.json index 83fedfd08..2157d2d7b 100644 --- a/packages/omnium-gatherum/tsconfig.json +++ b/packages/omnium-gatherum/tsconfig.json @@ -11,6 +11,7 @@ "types": ["chrome", "ses", "vitest", "@playwright/test", "react-dom"] }, "references": [ + { "path": "../kernel-exo" }, { "path": "../kernel-browser-runtime" }, { "path": "../kernel-rpc-methods" }, { "path": "../kernel-shims" }, diff --git a/tsconfig.json b/tsconfig.json index c7c624374..7bfef4de3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,6 +18,7 @@ { "path": "./packages/extension" }, { "path": "./packages/kernel-agents" }, { "path": "./packages/kernel-browser-runtime" }, + { "path": "./packages/kernel-exo" }, { "path": "./packages/kernel-errors" }, { "path": "./packages/kernel-language-model-service" }, { "path": "./packages/kernel-platforms" }, diff --git a/yarn.lock b/yarn.lock index 41672ece5..a7af4a181 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2470,6 +2470,46 @@ __metadata: languageName: unknown linkType: soft +"@metamask/kernel-exo@workspace:^, @metamask/kernel-exo@workspace:packages/kernel-exo": + version: 0.0.0-use.local + resolution: "@metamask/kernel-exo@workspace:packages/kernel-exo" + dependencies: + "@arethetypeswrong/cli": "npm:^0.17.4" + "@endo/exo": "npm:^1.5.12" + "@endo/patterns": "npm:^1.7.0" + "@metamask/auto-changelog": "npm:^5.3.0" + "@metamask/eslint-config": "npm:^15.0.0" + "@metamask/eslint-config-nodejs": "npm:^15.0.0" + "@metamask/eslint-config-typescript": "npm:^15.0.0" + "@metamask/kernel-utils": "workspace:^" + "@ocap/repo-tools": "workspace:^" + "@ts-bridge/cli": "npm:^0.6.3" + "@ts-bridge/shims": "npm:^0.1.1" + "@typescript-eslint/eslint-plugin": "npm:^8.29.0" + "@typescript-eslint/parser": "npm:^8.29.0" + "@typescript-eslint/utils": "npm:^8.29.0" + "@vitest/eslint-plugin": "npm:^1.6.5" + depcheck: "npm:^1.4.7" + eslint: "npm:^9.23.0" + eslint-config-prettier: "npm:^10.1.1" + eslint-import-resolver-typescript: "npm:^4.3.1" + eslint-plugin-import-x: "npm:^4.10.0" + eslint-plugin-jsdoc: "npm:^50.6.9" + eslint-plugin-n: "npm:^17.17.0" + eslint-plugin-prettier: "npm:^5.2.6" + eslint-plugin-promise: "npm:^7.2.1" + prettier: "npm:^3.5.3" + rimraf: "npm:^6.0.1" + ses: "npm:^1.14.0" + turbo: "npm:^2.5.6" + typedoc: "npm:^0.28.1" + typescript: "npm:~5.8.2" + typescript-eslint: "npm:^8.29.0" + vite: "npm:^7.3.0" + vitest: "npm:^4.0.16" + languageName: unknown + linkType: soft + "@metamask/kernel-platforms@workspace:^, @metamask/kernel-platforms@workspace:packages/kernel-platforms": version: 0.0.0-use.local resolution: "@metamask/kernel-platforms@workspace:packages/kernel-platforms" @@ -2702,8 +2742,6 @@ __metadata: "@chainsafe/libp2p-yamux": "patch:@chainsafe/libp2p-yamux@npm%3A7.0.4#~/.yarn/patches/@chainsafe-libp2p-yamux-npm-7.0.4-284c2f6812.patch" "@endo/captp": "npm:^4.4.8" "@endo/errors": "npm:^1.2.13" - "@endo/exo": "npm:^1.5.12" - "@endo/patterns": "npm:^1.7.0" "@endo/promise-kit": "npm:^1.1.13" "@libp2p/autonat": "npm:2.0.38" "@libp2p/circuit-relay-v2": "npm:3.2.24" @@ -2859,6 +2897,7 @@ __metadata: "@metamask/eslint-config-nodejs": "npm:^15.0.0" "@metamask/eslint-config-typescript": "npm:^15.0.0" "@metamask/kernel-errors": "workspace:^" + "@metamask/kernel-exo": "workspace:^" "@metamask/kernel-platforms": "workspace:^" "@metamask/kernel-rpc-methods": "workspace:^" "@metamask/kernel-store": "workspace:^" @@ -3694,6 +3733,7 @@ __metadata: "@metamask/eslint-config-nodejs": "npm:^15.0.0" "@metamask/eslint-config-typescript": "npm:^15.0.0" "@metamask/kernel-errors": "workspace:^" + "@metamask/kernel-exo": "workspace:^" "@metamask/kernel-utils": "workspace:^" "@metamask/logger": "workspace:^" "@ocap/kernel-language-model-service": "workspace:^" @@ -3821,6 +3861,7 @@ __metadata: "@metamask/eslint-config": "npm:^15.0.0" "@metamask/eslint-config-nodejs": "npm:^15.0.0" "@metamask/eslint-config-typescript": "npm:^15.0.0" + "@metamask/kernel-exo": "workspace:^" "@metamask/kernel-shims": "workspace:^" "@metamask/kernel-store": "workspace:^" "@metamask/kernel-utils": "workspace:^" @@ -3970,6 +4011,7 @@ __metadata: "@metamask/eslint-config": "npm:^15.0.0" "@metamask/eslint-config-nodejs": "npm:^15.0.0" "@metamask/eslint-config-typescript": "npm:^15.0.0" + "@metamask/kernel-exo": "workspace:^" "@metamask/kernel-platforms": "workspace:^" "@metamask/kernel-rpc-methods": "workspace:^" "@metamask/kernel-shims": "workspace:^" @@ -4021,6 +4063,7 @@ __metadata: "@metamask/eslint-config-nodejs": "npm:^15.0.0" "@metamask/eslint-config-typescript": "npm:^15.0.0" "@metamask/kernel-browser-runtime": "workspace:^" + "@metamask/kernel-exo": "workspace:^" "@metamask/kernel-shims": "workspace:^" "@metamask/kernel-ui": "workspace:^" "@metamask/kernel-utils": "workspace:^"