Skip to content

Commit 189ff95

Browse files
grypezclaude
andcommitted
feat: extract exo utilities into @metamask/kernel-exo package
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent be13ec6 commit 189ff95

83 files changed

Lines changed: 260 additions & 87 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/kernel-agents/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@
184184
"dependencies": {
185185
"@endo/eventual-send": "^1.3.4",
186186
"@metamask/kernel-errors": "workspace:^",
187+
"@metamask/kernel-exo": "workspace:^",
187188
"@metamask/kernel-utils": "workspace:^",
188189
"@metamask/logger": "workspace:^",
189190
"@ocap/kernel-language-model-service": "workspace:^",

packages/kernel-agents/src/capabilities/discover.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { E } from '@endo/eventual-send';
2-
import type { DiscoverableExo, MethodSchema } from '@metamask/kernel-utils';
2+
import type { DiscoverableExo, MethodSchema } from '@metamask/kernel-exo';
33

44
import type { CapabilityRecord, CapabilitySpec } from '../types.ts';
55

packages/kernel-agents/src/types/capability.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { JsonSchema } from '@metamask/kernel-utils';
1+
import type { JsonSchema } from '@metamask/kernel-exo';
22

33
export type Capability<Args extends Record<string, unknown>, Return = null> = (
44
args: Args,

packages/kernel-agents/tsconfig.build.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"types": ["node"]
99
},
1010
"references": [
11+
{ "path": "../kernel-exo/tsconfig.build.json" },
1112
{ "path": "../kernel-language-model-service/tsconfig.build.json" },
1213
{ "path": "../kernel-utils/tsconfig.build.json" },
1314
{ "path": "../logger/tsconfig.build.json" }

packages/kernel-agents/tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"types": ["vitest", "node", "ses"]
77
},
88
"references": [
9+
{ "path": "../kernel-exo" },
910
{ "path": "../kernel-language-model-service" },
1011
{ "path": "../kernel-utils" },
1112
{ "path": "../logger" },

packages/kernel-exo/package.json

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
{
2+
"name": "@metamask/kernel-exo",
3+
"version": "0.0.0",
4+
"private": true,
5+
"description": "Exo creation utilities for the Ocap Kernel",
6+
"homepage": "https://github.com/MetaMask/ocap-kernel/tree/main/packages/kernel-exo#readme",
7+
"bugs": {
8+
"url": "https://github.com/MetaMask/ocap-kernel/issues"
9+
},
10+
"repository": {
11+
"type": "git",
12+
"url": "https://github.com/MetaMask/ocap-kernel.git"
13+
},
14+
"type": "module",
15+
"exports": {
16+
".": {
17+
"import": {
18+
"types": "./dist/index.d.mts",
19+
"default": "./dist/index.mjs"
20+
},
21+
"require": {
22+
"types": "./dist/index.d.cts",
23+
"default": "./dist/index.cjs"
24+
}
25+
},
26+
"./package.json": "./package.json"
27+
},
28+
"files": [
29+
"dist/"
30+
],
31+
"scripts": {
32+
"build": "ts-bridge --project tsconfig.build.json --no-references --clean",
33+
"build:docs": "typedoc",
34+
"changelog:validate": "../../scripts/validate-changelog.sh @metamask/kernel-exo",
35+
"clean": "rimraf --glob './*.tsbuildinfo' ./.eslintcache ./coverage ./dist ./.turbo ./logs",
36+
"lint": "yarn lint:eslint && yarn lint:misc --check && yarn constraints && yarn lint:dependencies",
37+
"lint:dependencies": "depcheck --quiet",
38+
"lint:eslint": "eslint . --cache",
39+
"lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write && yarn constraints --fix && yarn lint:dependencies",
40+
"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",
41+
"publish:preview": "yarn npm publish --tag preview",
42+
"test": "vitest run --config vitest.config.ts",
43+
"test:clean": "yarn test --no-cache --coverage.clean",
44+
"test:dev": "yarn test --mode development",
45+
"test:verbose": "yarn test --reporter verbose",
46+
"test:watch": "vitest --config vitest.config.ts",
47+
"test:dev:quiet": "yarn test:dev --reporter @ocap/repo-tools/vitest-reporters/silent"
48+
},
49+
"dependencies": {
50+
"@endo/exo": "^1.5.12",
51+
"@endo/patterns": "^1.7.0",
52+
"@metamask/kernel-utils": "workspace:^"
53+
},
54+
"devDependencies": {
55+
"@arethetypeswrong/cli": "^0.17.4",
56+
"@metamask/auto-changelog": "^5.3.0",
57+
"@metamask/eslint-config": "^15.0.0",
58+
"@metamask/eslint-config-nodejs": "^15.0.0",
59+
"@metamask/eslint-config-typescript": "^15.0.0",
60+
"@ocap/repo-tools": "workspace:^",
61+
"@ts-bridge/cli": "^0.6.3",
62+
"@ts-bridge/shims": "^0.1.1",
63+
"@typescript-eslint/eslint-plugin": "^8.29.0",
64+
"@typescript-eslint/parser": "^8.29.0",
65+
"@typescript-eslint/utils": "^8.29.0",
66+
"@vitest/eslint-plugin": "^1.6.5",
67+
"depcheck": "^1.4.7",
68+
"eslint": "^9.23.0",
69+
"eslint-config-prettier": "^10.1.1",
70+
"eslint-import-resolver-typescript": "^4.3.1",
71+
"eslint-plugin-import-x": "^4.10.0",
72+
"eslint-plugin-jsdoc": "^50.6.9",
73+
"eslint-plugin-n": "^17.17.0",
74+
"eslint-plugin-prettier": "^5.2.6",
75+
"eslint-plugin-promise": "^7.2.1",
76+
"prettier": "^3.5.3",
77+
"rimraf": "^6.0.1",
78+
"ses": "^1.14.0",
79+
"turbo": "^2.5.6",
80+
"typedoc": "^0.28.1",
81+
"typescript": "~5.8.2",
82+
"typescript-eslint": "^8.29.0",
83+
"vite": "^7.3.0",
84+
"vitest": "^4.0.16"
85+
},
86+
"engines": {
87+
"node": ">=22"
88+
}
89+
}
File renamed without changes.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { makeExo } from '@endo/exo';
22
import type { Methods } from '@endo/exo';
33
import type { InterfaceGuard } from '@endo/patterns';
4+
import { mergeDisjointRecords } from '@metamask/kernel-utils';
45

56
import { makeDefaultInterface } from './exo.ts';
6-
import { mergeDisjointRecords } from './merge-disjoint-records.ts';
77
import type { MethodSchema } from './schema.ts';
88

99
/**

0 commit comments

Comments
 (0)