diff --git a/packages/kernel/package.json b/packages/kernel/package.json index b07a41c1d..0d3ae7ae8 100644 --- a/packages/kernel/package.json +++ b/packages/kernel/package.json @@ -43,15 +43,12 @@ "test:watch": "vitest --config vitest.config.ts" }, "dependencies": { - "@agoric/swingset-liveslots": "0.10.3-u18.0", + "@agoric/swingset-liveslots": "0.10.3-dev-3d64bee.0", "@endo/errors": "^1.2.8", - "@endo/eventual-send": "^1.2.6", - "@endo/exo": "^1.5.4", "@endo/far": "^1.1.9", "@endo/import-bundle": "^1.3.1", "@endo/marshal": "^1.6.2", "@endo/pass-style": "^1.4.7", - "@endo/patterns": "^1.4.4", "@endo/promise-kit": "^1.1.6", "@metamask/superstruct": "^3.1.0", "@metamask/utils": "^11.0.1", diff --git a/packages/kernel/src/Kernel.ts b/packages/kernel/src/Kernel.ts index 149cde29b..b26765be7 100644 --- a/packages/kernel/src/Kernel.ts +++ b/packages/kernel/src/Kernel.ts @@ -1,3 +1,4 @@ +import type { Message, VatOneResolution } from '@agoric/swingset-liveslots'; import { passStyleOf } from '@endo/far'; import type { CapData } from '@endo/marshal'; import { makePromiseKit } from '@endo/promise-kit'; @@ -10,8 +11,6 @@ import type { DuplexStream } from '@ocap/streams'; import type { Logger } from '@ocap/utils'; import { makeLogger } from '@ocap/utils'; -// XXX Once the packaging of liveslots is fixed, these should be imported from there -import type { Message, VatOneResolution } from './ag-types.js'; import { assert, Fail } from './assert.js'; import { kser, kunser, krefOf, kslot } from './kernel-marshal.js'; import type { SlotValue } from './kernel-marshal.js'; @@ -665,6 +664,7 @@ export class Kernel { if (bootstrapRoot) { const bootstrapMessage: Message = { methargs: kser(['bootstrap', [roots]]), + result: undefined, }; const bootstrapItem: RunQueueItemSend = { type: 'send', diff --git a/packages/kernel/src/VatHandle.ts b/packages/kernel/src/VatHandle.ts index 6e8a02694..ad4c42faf 100644 --- a/packages/kernel/src/VatHandle.ts +++ b/packages/kernel/src/VatHandle.ts @@ -1,18 +1,15 @@ +import type { + Message, + VatSyscallObject, + VatOneResolution, +} from '@agoric/swingset-liveslots'; import type { CapData } from '@endo/marshal'; import { makePromiseKit } from '@endo/promise-kit'; import { VatDeletedError, StreamReadError } from '@ocap/errors'; import type { DuplexStream } from '@ocap/streams'; import type { Logger } from '@ocap/utils'; import { makeLogger, makeCounter } from '@ocap/utils'; -// XXX Reenable the following once the packaging of liveslots is fixed (and at -// the same time remove the below import of ./ag-types.js) -// import type { VatSyscallObject } from '@agoric/swingset-liveslots'; -import type { - Message, - VatSyscallObject, - VatOneResolution, -} from './ag-types.js'; import type { Kernel } from './Kernel.js'; import { VatCommandMethod } from './messages/index.js'; import type { @@ -348,7 +345,7 @@ export class VatHandle { // vat. All others will be replies to messages originally sent by the kernel TO the // vat. if (payload.method === VatCommandMethod.syscall) { - await this.#handleSyscall(payload.params); + await this.#handleSyscall(payload.params as VatSyscallObject); } else { const promiseCallbacks = this.#unresolvedMessages.get(id); if (promiseCallbacks === undefined) { diff --git a/packages/kernel/src/VatSupervisor.ts b/packages/kernel/src/VatSupervisor.ts index 712c57823..131b9fb43 100644 --- a/packages/kernel/src/VatSupervisor.ts +++ b/packages/kernel/src/VatSupervisor.ts @@ -1,7 +1,9 @@ import { makeLiveSlots as localMakeLiveSlots } from '@agoric/swingset-liveslots'; -// XXX Reenable the following once the packaging of liveslots is fixed (and at -// the same time remove the below import of ./ag-types-index.js) -// import type { VatSyscallObject, VatSyscallResult, VatDeliveryObject } from '@agoric/swingset-liveslots'; +import type { + VatDeliveryObject, + VatSyscallObject, + VatSyscallResult, +} from '@agoric/swingset-liveslots'; import { importBundle } from '@endo/import-bundle'; import { makeMarshal } from '@endo/marshal'; import type { CapData } from '@endo/marshal'; @@ -13,7 +15,6 @@ import type { MakeLiveSlotsFn, GCTools, } from './ag-liveslots-types.js'; -import type { VatSyscallObject, VatSyscallResult } from './ag-types-index.js'; import { makeDummyMeterControl } from './dummyMeterControl.js'; import type { VatCommand, VatCommandReply } from './messages/index.js'; import { VatCommandMethod } from './messages/index.js'; @@ -104,7 +105,7 @@ export class VatSupervisor { console.error(`cannot deliver before vat is loaded`); return; } - await this.#dispatch(harden(payload.params)); + await this.#dispatch(harden(payload.params) as VatDeliveryObject); await Promise.all(this.#syscallsInFlight); this.#syscallsInFlight.length = 0; await this.replyToMessage(id, { diff --git a/packages/kernel/src/ag-liveslots-types.ts b/packages/kernel/src/ag-liveslots-types.ts index f2e36a8ea..1200cdbfb 100644 --- a/packages/kernel/src/ag-liveslots-types.ts +++ b/packages/kernel/src/ag-liveslots-types.ts @@ -1,15 +1,11 @@ -// XXX placeholder to get around @agoric/swingset-liveslots package configuration issues - -// These types are defined in the liveslots package, but not exported cleanly. - -import type { CapData } from '@endo/marshal'; - import type { VatDeliveryObject, VatOneResolution, SwingSetCapData, -} from './ag-types-index.js'; -import type { LiveSlotsOptions, MeterControl } from './ag-types.js'; + LiveSlotsOptions, + MeterControl, +} from '@agoric/swingset-liveslots'; +import type { CapData } from '@endo/marshal'; export type SyscallResult = SwingSetCapData | string | string[] | null; export type DispatchFn = (vdo: VatDeliveryObject) => Promise; diff --git a/packages/kernel/src/ag-store-types.ts b/packages/kernel/src/ag-store-types.ts deleted file mode 100644 index 938f73b21..000000000 --- a/packages/kernel/src/ag-store-types.ts +++ /dev/null @@ -1,243 +0,0 @@ -// XXX placeholder to get around @agoric/store package configuration issues -// - -// This is Agoric code that breaks some of our local eslint rules. Disabling -// those because the code's not for us to redefine. -/* eslint-disable @typescript-eslint/naming-convention, - @typescript-eslint/no-explicit-any, - @typescript-eslint/no-unnecessary-type-arguments */ - -import type { Passable, RemotableObject } from '@endo/pass-style'; -import type { CopySet, CopyMap, Pattern } from '@endo/patterns'; - -// Ensure this is a module. -export {}; - -/** - * Of the dimensions on which KeyedStores can differ, we only represent a few of them - * as standard options. A given store maker should document which options it supports, - * as well as its positions on dimensions for which it does not support options. - */ -export type StoreOptions = { - /** - * Which way to optimize a weak store. True means that we expect this weak store - * to outlive most of its keys, in which case we internally may use a JavaScript - * `WeakMap`. Otherwise we internally may use a JavaScript `Map`. Defaults to true, - * so please mark short lived stores explicitly. - */ - longLived?: boolean; - - /** - * The contents of this store survive termination of its containing process, - * allowing for restart or upgrade but at the cost of forbidding storage of - * references to ephemeral data. Defaults to false. - */ - durable?: boolean; - - /** - * This store pretends to be a durable store but does not enforce that the things - * stored in it actually be themselves durable (whereas an actual durable store - * would forbid storage of such items). This is in service of allowing incremental - * transition to use of durable stores, to enable normal operation and testing when - * some stuff intended to eventually be durable has not yet been made durable. A - * store marked as fakeDurable will appear to operate normally but any attempt to - * upgrade its containing vat will fail with an error. Defaults to false. - */ - fakeDurable?: boolean; - - keyShape?: Pattern; - valueShape?: Pattern; -}; - -/** - * Most store methods are in one of three categories - * - * - lookup methods (`has`,`get`) - * - update methods (`add`,`init`,`set`,`delete`,`addAll`) - * - query methods (`snapshot`,`keys`,`values`,`entries`,`getSize`) - * - query-update methods (`clear`) - * - * WeakStores have the lookup and update methods but not the query or - * query-update methods. Non-weak Stores are like their corresponding - * WeakStores, but with the additional query and query-update methods. - */ - -// TODO use Key for K -export type WeakSetStoreMethods = { - /** - * Check if a key exists. The key can be any JavaScript value, though the answer - * will always be false for keys that cannot be found in this store. - */ - has(key: K): boolean; - - /** - * Add the key to the set if it is not already there. Do nothing silently if - * already there. The key must be one allowed by this store. For example a scalar - * store only allows primitives and remotables. - */ - add(key: K): void; - - /** - * Remove the key. Throws if not found. - */ - delete(key: K): void; - - addAll(keys: CopySet | Iterable): void; -}; - -export type WeakSetStore = RemotableObject & WeakSetStoreMethods; - -// TODO use Key for K -export type SetStoreMethods = { - /** - * Check if a key exists. The key can be any JavaScript value, though the answer - * will always be false for keys that cannot be found in this store. - */ - has(key: K): boolean; - - /** - * Add the key to the set if it is not already there. Do nothing silently if - * already there. The key must be one allowed by this store. For example a scalar - * store only allows primitives and remotables. - */ - add(key: K): void; - - /** - * Remove the key. Throws if not found. - */ - delete(key: K): void; - - addAll(keys: CopySet | Iterable): void; - keys(keyPatt?: Pattern): Iterable; - values(keyPatt?: Pattern): Iterable; - snapshot(keyPatt?: Pattern): CopySet; - getSize(keyPatt?: Pattern): number; - clear(keyPatt?: Pattern): void; -}; - -export type SetStore = RemotableObject & SetStoreMethods; - -// TODO use Key for K -// TODO use Passable for V -export type WeakMapStore = { - /** - * Check if a key exists. The key can be any JavaScript value, though the answer - * will always be false for keys that cannot be found in this store. - */ - has(key: K): boolean; - - /** - * Return a value for the key. Throws if not found. - */ - get(key: K): V; - - /** - * Initialize the key only if it doesn't already exist. The key must be one - * allowed by this store. For example a scalar store only allows primitives - * and remotables. - */ - init(key: K, value: V): void; - - /** - * Set the key. Throws if not found. - */ - set(key: K, value: V): void; - - /** - * Remove the key. Throws if not found. - */ - delete(key: K): void; - - addAll(entries: CopyMap | Iterable<[K, V]>): void; -}; - -// TODO use Key for K -// TODO use Passable for V -export type MapStoreMethods = { - /** - * Check if a key exists. The key can be any JavaScript value, though the answer - * will always be false for keys that cannot be found in this map - */ - has(key: K): boolean; - - /** - * Return a value for the key. Throws if not found. - */ - get(key: K): V; - - /** - * Initialize the key only if it doesn't already exist. The key must be one - * allowed by this store. For example a scalar store only allows primitives - * and remotables. - */ - init(key: K, value: V): void; - - /** - * Set the key. Throws if not found. - */ - set(key: K, value: V): void; - - /** - * Remove the key. Throws if not found. - */ - delete(key: K): void; - - addAll(entries: CopyMap | Iterable<[K, V]>): void; - keys(keyPatt?: Pattern, valuePatt?: Pattern): Iterable; - values(keyPatt?: Pattern, valuePatt?: Pattern): Iterable; - entries(keyPatt?: Pattern, valuePatt?: Pattern): Iterable<[K, V]>; - snapshot(keyPatt?: Pattern, valuePatt?: Pattern): CopyMap; - getSize(keyPatt?: Pattern, valuePatt?: Pattern): number; - clear(keyPatt?: Pattern, valuePatt?: Pattern): void; -}; - -export type MapStore = RemotableObject & - MapStoreMethods; - -// ///////////////////////// Deprecated Legacy ///////////////////////////////// - -/** - * LegacyWeakMap is deprecated. Use WeakMapStore instead if possible. - */ -export type LegacyWeakMap = { - /** Check if a key exists */ - has(key: K): boolean; - - /** Return a value for the key. Throws if not found. */ - get(key: K): V; - - /** Initialize the key only if it doesn't already exist */ - init(key: K, value: V): void; - - /** Set the key. Throws if not found. */ - set(key: K, value: V): void; - - /** Remove the key. Throws if not found. */ - delete(key: K): void; -}; - -/** - * LegacyMap is deprecated. Use MapStore instead if possible. - */ -export type LegacyMap = { - /** Check if a key exists */ - has(key: K): boolean; - - /** Return a value for the key. Throws if not found. */ - get(key: K): V; - - /** Initialize the key only if it doesn't already exist */ - init(key: K, value: V): void; - - /** Set the key. Throws if not found. */ - set(key: K, value: V): void; - - /** Remove the key. Throws if not found. */ - delete(key: K): void; - - keys(): Iterable; - values(): Iterable; - entries(): Iterable<[K, V]>; - getSize(): number; - clear(): void; -}; diff --git a/packages/kernel/src/ag-types-index.ts b/packages/kernel/src/ag-types-index.ts deleted file mode 100644 index 063193d77..000000000 --- a/packages/kernel/src/ag-types-index.ts +++ /dev/null @@ -1,4 +0,0 @@ -// XXX placeholder to get around @agoric/swingset-liveslots package configuration issues - -export type * from './ag-types.js'; -export type * from './ag-vatDataTypes.js'; diff --git a/packages/kernel/src/ag-types.ts b/packages/kernel/src/ag-types.ts deleted file mode 100644 index 7cb6e2d91..000000000 --- a/packages/kernel/src/ag-types.ts +++ /dev/null @@ -1,115 +0,0 @@ -// XXX placeholder to get around @agoric/swingset-liveslots package configuration issues - -// This is Agoric code that breaks some of our local eslint rules. Disabling -// those because the code's not for us to redefine. -/* eslint-disable @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any */ - -import type { CapData } from '@endo/marshal'; - -// Type for makeLiveSlots callback -export type makeLiveSlots = () => void; - -/** - * The MeterControl object gives liveslots a mechanism to disable metering for certain GC-sensitive - * regions of code. Only the XS worker can actually do metering, but we track the enabled/disabled - * status on all workers, so that the assertions can be exercised more thoroughly (via non-XS unit - * tests). MeterControl.isMeteringDisabled()===false does not mean metering is happening, it just - * means that MeterControl isn't disabling it. - */ -export type MeterControl = { - isMeteringDisabled: () => boolean; // Ask whether metering is currently disabled. - assertIsMetered: unknown; - assertNotMetered: unknown; - runWithoutMetering: unknown; // Run a callback outside metering - runWithoutMeteringAsync: unknown; // Run an async callback outside metering - unmetered: unknown; // Wrap a callback with runWithoutMetering -}; - -export type LiveSlotsOptions = { - enableDisavow?: boolean; - relaxDurabilityRules?: boolean; - allowStateShapeChanges?: boolean; -}; - -export type SwingSetCapData = CapData; - -export type Message = { - methargs: SwingSetCapData; // of [method, args] - result?: string | undefined | null; -}; - -export type VatDeliveryMessage = ['message', string, Message]; -export type VatOneResolution = [string, boolean, SwingSetCapData]; -export type VatDeliveryNotify = ['notify', VatOneResolution[]]; -export type VatDeliveryDropExports = ['dropExports', string[]]; -export type VatDeliveryRetireExports = ['retireExports', string[]]; -export type VatDeliveryRetireImports = ['retireImports', string[]]; -export type VatDeliveryChangeVatOptions = [ - 'changeVatOptions', - Record, -]; -export type VatDeliveryStartVat = ['startVat', SwingSetCapData]; -export type VatDeliveryStopVat = ['stopVat', SwingSetCapData]; -export type VatDeliveryBringOutYourDead = ['bringOutYourDead']; - -export type VatDeliveryObject = - | VatDeliveryMessage - | VatDeliveryNotify - | VatDeliveryDropExports - | VatDeliveryRetireExports - | VatDeliveryRetireImports - | VatDeliveryChangeVatOptions - | VatDeliveryStartVat - | VatDeliveryStopVat - | VatDeliveryBringOutYourDead; - -export type MeterConsumption = { - compute: number; -}; - -export type VatDeliveryResult = - | ['ok', any, MeterConsumption | null] - | ['error', string, MeterConsumption | null]; - -export type VatSyscallSend = ['send', string, Message]; -export type VatSyscallCallNow = ['callNow', string, string, SwingSetCapData]; -export type VatSyscallSubscribe = ['subscribe', string]; -export type VatSyscallResolve = ['resolve', VatOneResolution[]]; -export type VatSyscallExit = ['exit', boolean, SwingSetCapData]; -export type VatSyscallVatstoreGet = ['vatstoreGet', string]; -export type VatSyscallVatstoreGetNextKey = ['vatstoreGetNextKey', string]; -export type VatSyscallVatstoreSet = ['vatstoreSet', string, string]; -export type VatSyscallVatstoreDelete = ['vatstoreDelete', string]; -export type VatSyscallDropImports = ['dropImports', string[]]; -export type VatSyscallRetireImports = ['retireImports', string[]]; -export type VatSyscallRetireExports = ['retireExports', string[]]; -export type VatSyscallAbandonExports = ['abandonExports', string[]]; - -export type VatSyscallObject = - | VatSyscallSend - | VatSyscallCallNow - | VatSyscallSubscribe - | VatSyscallResolve - | VatSyscallExit - | VatSyscallVatstoreGet - | VatSyscallVatstoreGetNextKey - | VatSyscallVatstoreSet - | VatSyscallVatstoreDelete - | VatSyscallDropImports - | VatSyscallRetireImports - | VatSyscallRetireExports - | VatSyscallAbandonExports; - -export type VatSyscallResultOk = [ - 'ok', - SwingSetCapData | string | string[] | null, -]; -export type VatSyscallResultError = ['error', string]; -export type VatSyscallResult = VatSyscallResultOk | VatSyscallResultError; - -export type VatSyscallHandler = (vso: VatSyscallObject) => VatSyscallResult; - -export type PromiseWatcher = { - onFulfilled?: (value: V, ...args: A) => void; - onRejected?: (reason: unknown, ...args: A) => void; -}; diff --git a/packages/kernel/src/ag-vatDataTypes.ts b/packages/kernel/src/ag-vatDataTypes.ts deleted file mode 100644 index c3678b757..000000000 --- a/packages/kernel/src/ag-vatDataTypes.ts +++ /dev/null @@ -1,286 +0,0 @@ -// XXX placeholder to get around @agoric/swingset-liveslots package configuration issues - -// This is Agoric code that breaks some of our local eslint rules. Disabling -// those because the code's not for us to redefine. -/* eslint-disable @typescript-eslint/naming-convention, - @typescript-eslint/no-explicit-any, - @typescript-eslint/array-type, - import-x/order, - @typescript-eslint/prefer-function-type, - @typescript-eslint/no-empty-object-type, - no-restricted-syntax */ - -/** - * @file Types for vat-data - * - * Facet is a single object with methods. - * Behavior is a description when defining a kind of what facets it will have. - * For the non-multi defineKind, there is just one facet so it doesn't have a key. - */ -import type { - MapStore, - SetStore, - StoreOptions, - WeakMapStore, - WeakSetStore, -} from './ag-store-types.js'; -// } from '@agoric/store'; - -import type { Amplify, IsInstance, ReceivePower, StateShape } from '@endo/exo'; -import type { RemotableObject } from '@endo/pass-style'; -import type { RemotableBrand } from '@endo/eventual-send'; -import type { InterfaceGuard, Pattern } from '@endo/patterns'; -// import type { makeWatchedPromiseManager } from './watchedPromises.js'; - -// TODO should be moved into @endo/patterns and eventually imported here -// instead of this local definition. -export type InterfaceGuardKit = Record; -export type { MapStore, Pattern }; - -// This needs `any` values. If they were `unknown`, code that uses Baggage -// would need explicit runtime checks or casts for every fetch, which is -// onerous. -export type Baggage = MapStore; - -// type WatchedPromisesManager = ReturnType; - -// used to omit the 'context' parameter -type OmitFirstArg = F extends (x: any, ...args: infer P) => infer R - ? (...args: P) => R - : never; - -// The type of a passable local object with methods. -// An internal helper to avoid having to repeat `O`. -type PrimaryRemotable = O & RemotableObject & RemotableBrand<{}, O>; - -export type KindFacet = PrimaryRemotable<{ - [K in keyof O]: OmitFirstArg; // omit the 'context' parameter -}>; - -export type KindFacets = { - [FacetKey in keyof B]: KindFacet; -}; - -export type KindContext = { state: S; self: KindFacet }; -export type MultiKindContext = { state: S; facets: KindFacets }; - -export type PlusContext any> = ( - c: C, - ...args: Parameters -) => ReturnType; - -export type FunctionsPlusContext< - C, - O extends Record any>, -> = { - [K in keyof O]: PlusContext; -}; - -declare class DurableKindHandleClass { - private readonly descriptionTag: string; -} -export type DurableKindHandle = DurableKindHandleClass; - -/** - * Grab bag of options that can be provided to `defineDurableKind` and its - * siblings. Not all options are meaningful in all contexts. See the - * doc-comments on each option. - */ -export type DefineKindOptions = { - /** - * If provided, the `finish` function will be called after the instance is - * made and internally registered, but before it is returned. The finish - * function is to do any post-intantiation initialization that should be - * done before exposing the object to its clients. - */ - finish?: (context: C) => void; - - /** - * If provided, it describes the shape of all state records of instances - * of this kind. - */ - stateShape?: StateShape; - - /** - * If a `receiveAmplifier` function is provided to an exo class kit definition, - * it will be called with an `Amplify` function. If provided to the definition - * of a normal exo or exo class, the definition will throw, since only - * exo kits can be amplified. - * An `Amplify` function is a function that takes a facet instance of - * this class kit as an argument, in which case it will return the facets - * record, giving access to all the facet instances of the same cohort. - */ - receiveAmplifier?: ReceivePower; - - /** - * If a `receiveInstanceTester` function is provided, it will be called - * during the definition of the exo class or exo class kit with an - * `IsInstance` function. The first argument of `IsInstance` - * is the value to be tested. When it may be a facet instance of an - * exo class kit, the optional second argument, if provided, is - * a `facetName`. In that case, the function tests only if the first - * argument is an instance of that facet of the associated exo class kit. - */ - receiveInstanceTester?: ReceivePower; - - // TODO properties above are identical to those in FarClassOptions. - // These are the only options that should be exposed by - // vat-data's public virtual/durable exo APIs. This DefineKindOptions - // should explicitly be a subtype, where the methods below are only for - // internal use, i.e., below the exo level. - - /** - * As a kind option, intended for internal use only. - * Meaningful to `makeScalarBigMapStore` and its siblings. These maker - * fuctions will make either virtual or durable stores, depending on - * this flag. Defaults to off, making virtual but not durable collections. - * - * Generally, durable collections are provided with `provideDurableMapStore` - * and its sibling, which use this flag internally. If you do not make - * durable collections by other means, you can consider this as - * intended for internal use only. - */ - durable?: boolean; - - /** - * Intended for internal use only. - * Should the raw methods receive their `context` argument as their first - * argument or as their `this` binding? For `defineDurableKind` and its - * siblings (including `prepareSingleton`), this defaults to off, meaning that - * their behavior methods receive `context` as their first argument. - * `prepareExoClass` and its siblings (including `prepareExo`) use - * this flag internally to indicate that their methods receive `context` - * as their `this` binding. - */ - thisfulMethods?: boolean; - - /** - * Intended for internal use only. - * Only applicable if this is a class kind. A class kit kind should use - * `interfaceGuardKit` instead. - * - * If an `interfaceGuard` is provided, then the raw methods passed alongside - * it are wrapped by a function that first checks that this method's guard - * pattern is satisfied before calling the raw method. - * - * In `defineDurableKind` and its siblings, this defaults to `undefined`. - * Exo classes use this internally to protect their raw class methods - * using the provided interface. - * In absence, an exo is protected anyway, while a bare kind is - * not (detected by `!thisfulMethods`), - */ - interfaceGuard?: InterfaceGuard; - - /** - * Intended for internal use only. - * Only applicable if this is a class kit kind. A class kind should use - * `interfaceGuard` instead. - * - * If an `interfaceGuardKit` is provided, then each member of the - * interfaceGuardKit is used to guard the corresponding facet of the - * class kit. - * - * In `defineDurableKindMulti` and its siblings, this defaults to `undefined`. - * Exo class kits use this internally to protect their facets. - * In absence, an exo is protected anyway, while a bare kind is - * not (detected by `!thisfulMethods`), - */ - interfaceGuardKit?: InterfaceGuardKit; -}; - -export type VatData = { - // virtual kinds - /** @deprecated Use defineVirtualExoClass instead */ - defineKind:

, S, F>( - tag: string, - init: (...args: P) => S, - facet: F, - options?: DefineKindOptions>, - ) => (...args: P) => KindFacet; - - /** @deprecated Use defineVirtualExoClassKit instead */ - defineKindMulti:

, S, B>( - tag: string, - init: (...args: P) => S, - behavior: B, - options?: DefineKindOptions>, - ) => (...args: P) => KindFacets; - - // durable kinds - makeKindHandle: (descriptionTag: string) => DurableKindHandle; - - /** @deprecated Use defineDurableExoClass instead */ - defineDurableKind:

, S, F>( - kindHandle: DurableKindHandle, - init: (...args: P) => S, - facet: F, - options?: DefineKindOptions>, - ) => (...args: P) => KindFacet; - - /** @deprecated Use defineDurableExoClassKit instead */ - defineDurableKindMulti:

, S, B>( - kindHandle: DurableKindHandle, - init: (...args: P) => S, - behavior: B, - options?: DefineKindOptions>, - ) => (...args: P) => KindFacets; - - // providePromiseWatcher: WatchedPromisesManager['providePromiseWatcher']; - // watchPromise: WatchedPromisesManager['watchPromise']; - - makeScalarBigMapStore: ( - label: string, - options?: StoreOptions, - ) => MapStore; - makeScalarBigWeakMapStore: ( - label: string, - options?: StoreOptions, - ) => WeakMapStore; - - makeScalarBigSetStore: ( - label: string, - options?: StoreOptions, - ) => SetStore; - makeScalarBigWeakSetStore: ( - label: string, - options?: StoreOptions, - ) => WeakSetStore; - canBeDurable: (specimen: unknown) => boolean; -}; - -// The JSDoc is repeated here and at the function definition so it appears -// in IDEs where it's used, regardless of type resolution. -export type PickFacet = { - /** - * When making a multi-facet kind, it's common to pick one facet to - * expose. E.g., - * - * const makeFoo = (a, b, c, d) => makeFooBase(a, b, c, d).self; - * - * This helper reduces the duplication: - * - * const makeFoo = pickFacet(makeFooBase, 'self'); - */ - any, F extends keyof ReturnType>( - maker: M, - facetName: F, - ): (...args: Parameters) => ReturnType[F]; -}; - -/** @deprecated Use prepareExoClass instead */ -export type PrepareKind =

, S, F>( - baggage: Baggage, - tag: string, - init: (...args: P) => S, - facet: F, - options?: DefineKindOptions>, -) => (...args: P) => KindFacet; - -/** @deprecated Use prepareExoClassKit instead */ -export type PrepareKindMulti =

, S, B>( - baggage: Baggage, - tag: string, - init: (...args: P) => S, - behavior: B, - options?: DefineKindOptions>, -) => (...args: P) => KindFacets; diff --git a/packages/kernel/src/dummyMeterControl.ts b/packages/kernel/src/dummyMeterControl.ts index 690a6935e..dc997e46f 100644 --- a/packages/kernel/src/dummyMeterControl.ts +++ b/packages/kernel/src/dummyMeterControl.ts @@ -1,7 +1,6 @@ +import type { MeterControl } from '@agoric/swingset-liveslots'; import { assert } from '@endo/errors'; -import type { MeterControl } from './ag-types.js'; - /** * Liveslots must be given a MeterControl object so it can turn metering on and * off in metered execution environments. We have no metering, so this produces diff --git a/packages/kernel/src/index.ts b/packages/kernel/src/index.ts index 87fb5cd27..1f1986e38 100644 --- a/packages/kernel/src/index.ts +++ b/packages/kernel/src/index.ts @@ -3,8 +3,7 @@ export { Kernel } from './Kernel.js'; export type { KVStore, MakeKVStore } from './store/kernel-store.js'; export { VatHandle } from './VatHandle.js'; export { VatSupervisor } from './VatSupervisor.js'; -// XXX Once the packaging of liveslots is fixed, this should be imported from there -export type { Message } from './ag-types.js'; +export type { Message } from '@agoric/swingset-liveslots'; export type { VatId, VatWorkerService, diff --git a/packages/kernel/src/store/kernel-store.test.ts b/packages/kernel/src/store/kernel-store.test.ts index b4c3441f9..14dc5da0a 100644 --- a/packages/kernel/src/store/kernel-store.test.ts +++ b/packages/kernel/src/store/kernel-store.test.ts @@ -1,10 +1,9 @@ +import type { Message } from '@agoric/swingset-liveslots'; import { describe, it, expect, beforeEach } from 'vitest'; import { makeKernelStore } from './kernel-store.js'; import type { KVStore } from './kernel-store.js'; import { makeMapKVStore } from '../../test/storage.js'; -// XXX Once the packaging of liveslots is fixed this should be imported from there -import type { Message } from '../ag-types.js'; import type { RunQueueItem } from '../types.js'; /** diff --git a/packages/kernel/src/store/kernel-store.ts b/packages/kernel/src/store/kernel-store.ts index 1f2d4040c..ababb9110 100644 --- a/packages/kernel/src/store/kernel-store.ts +++ b/packages/kernel/src/store/kernel-store.ts @@ -53,11 +53,10 @@ * k.nextPromiseId = NN // allocation counter for promise KRefs */ +import type { Message } from '@agoric/swingset-liveslots'; import { Fail } from '@endo/errors'; import type { CapData } from '@endo/marshal'; -// XXX Once the packaging of liveslots is fixed this should be imported from there -import type { Message } from '../ag-types.js'; import type { VatId, RemoteId, diff --git a/packages/kernel/src/syscall.ts b/packages/kernel/src/syscall.ts index 1519aa621..9153d0838 100644 --- a/packages/kernel/src/syscall.ts +++ b/packages/kernel/src/syscall.ts @@ -2,13 +2,13 @@ import { insistVatSyscallObject, insistVatSyscallResult, } from '@agoric/swingset-liveslots'; +import type { + VatSyscallObject, + VatOneResolution, +} from '@agoric/swingset-liveslots'; import type { CapData } from '@endo/marshal'; -// XXX Reenable the following once the packaging of liveslots is fixed (and at -// the same time remove the below import of ./ag-types-index.js) -// import type { VatSyscallObject, VatOneResolution } from '@agoric/swingset-liveslots'; import type { Syscall, SyscallResult } from './ag-liveslots-types.js'; -import type { VatSyscallObject, VatOneResolution } from './ag-types-index.js'; import type { KVStore } from './store/kernel-store.js'; import type { VatSupervisor } from './VatSupervisor.ts'; diff --git a/packages/kernel/src/types.ts b/packages/kernel/src/types.ts index ca6335cb3..15dab7265 100644 --- a/packages/kernel/src/types.ts +++ b/packages/kernel/src/types.ts @@ -1,3 +1,4 @@ +import type { Message } from '@agoric/swingset-liveslots'; import { Fail } from '@endo/errors'; import type { CapData } from '@endo/marshal'; import type { PromiseKit } from '@endo/promise-kit'; @@ -19,8 +20,6 @@ import type { Json } from '@metamask/utils'; import { UnsafeJsonStruct } from '@metamask/utils'; import type { DuplexStream } from '@ocap/streams'; -// XXX Once the packaging of liveslots is fixed, this should be imported from there -import type { Message } from './ag-types.js'; import type { VatCommandReply, VatCommand } from './messages/vat.js'; export type VatId = string; diff --git a/types/index.d.ts b/types/index.d.ts deleted file mode 100644 index 4e27963d1..000000000 --- a/types/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module '@agoric/swingset-liveslots'; diff --git a/yarn.lock b/yarn.lock index 10c035e20..55f869e7f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -30,18 +30,18 @@ __metadata: languageName: node linkType: hard -"@agoric/base-zone@npm:0.1.1-upgrade-18-dev-cc4b6b8.0+cc4b6b8": - version: 0.1.1-upgrade-18-dev-cc4b6b8.0 - resolution: "@agoric/base-zone@npm:0.1.1-upgrade-18-dev-cc4b6b8.0" +"@agoric/base-zone@npm:0.1.1-dev-3d64bee.0+3d64bee": + version: 0.1.1-dev-3d64bee.0 + resolution: "@agoric/base-zone@npm:0.1.1-dev-3d64bee.0" dependencies: - "@agoric/store": "npm:0.9.3-upgrade-18-dev-cc4b6b8.0+cc4b6b8" - "@endo/common": "npm:^1.2.8" - "@endo/errors": "npm:^1.2.8" - "@endo/exo": "npm:^1.5.7" - "@endo/far": "npm:^1.1.9" - "@endo/pass-style": "npm:^1.4.7" - "@endo/patterns": "npm:^1.4.7" - checksum: 10/f3d51f468620f68de58ffe81ecc0c62a6da3fb913b447559044b7a33ccbba19e7f9706304372246261f0fee7b65358402f1b24e719bd6bb3e286aee95dc861c0 + "@agoric/store": "npm:0.9.3-dev-3d64bee.0+3d64bee" + "@endo/common": "npm:^1.2.9" + "@endo/errors": "npm:^1.2.9" + "@endo/exo": "npm:^1.5.8" + "@endo/far": "npm:^1.1.10" + "@endo/pass-style": "npm:^1.4.8" + "@endo/patterns": "npm:^1.4.8" + checksum: 10/c3d671569c33c955af4ca7a42ef70636de1070f92b896a102f6b6702a729682d760ae19e765ffefda2903ebb331ebf9e499ec865ff455c1a2f3bce1bce4c1163 languageName: node linkType: hard @@ -60,31 +60,31 @@ __metadata: languageName: node linkType: hard -"@agoric/internal@npm:0.4.0-u18.1": - version: 0.4.0-u18.1 - resolution: "@agoric/internal@npm:0.4.0-u18.1" +"@agoric/internal@npm:0.3.3-dev-3d64bee.0+3d64bee": + version: 0.3.3-dev-3d64bee.0 + resolution: "@agoric/internal@npm:0.3.3-dev-3d64bee.0" dependencies: - "@agoric/base-zone": "npm:^0.1.1-u18.1" - "@endo/common": "npm:^1.2.8" - "@endo/errors": "npm:^1.2.8" - "@endo/far": "npm:^1.1.9" - "@endo/init": "npm:^1.1.7" - "@endo/marshal": "npm:^1.6.2" - "@endo/pass-style": "npm:^1.4.7" - "@endo/patterns": "npm:^1.4.7" - "@endo/promise-kit": "npm:^1.1.8" - "@endo/stream": "npm:^1.2.8" + "@agoric/base-zone": "npm:0.1.1-dev-3d64bee.0+3d64bee" + "@endo/common": "npm:^1.2.9" + "@endo/errors": "npm:^1.2.9" + "@endo/far": "npm:^1.1.10" + "@endo/init": "npm:^1.1.8" + "@endo/marshal": "npm:^1.6.3" + "@endo/pass-style": "npm:^1.4.8" + "@endo/patterns": "npm:^1.4.8" + "@endo/promise-kit": "npm:^1.1.9" + "@endo/stream": "npm:^1.2.9" anylogger: "npm:^0.21.0" jessie.js: "npm:^0.3.4" - checksum: 10/a36208d546dcdbedd29f1081fa3864d69afca3aa8ea1d44f08d6c86387d34e2daf2294ff2107606cd1fecfd64a849a7fec0cfa1f1657b2909ca5dc059c792837 + checksum: 10/8b7b0978621fb1ed18c77a616c6119078e7391de076d137028b40277c3cc69543f730e7e9483e936cbc287d0329f3f77cff4353da8c061f46b4c27e9739a274e languageName: node linkType: hard -"@agoric/internal@npm:^0.4.0-u18.0": - version: 0.4.0-upgrade-18-dev-cc4b6b8.0 - resolution: "@agoric/internal@npm:0.4.0-upgrade-18-dev-cc4b6b8.0" +"@agoric/internal@npm:0.4.0-u18.1": + version: 0.4.0-u18.1 + resolution: "@agoric/internal@npm:0.4.0-u18.1" dependencies: - "@agoric/base-zone": "npm:0.1.1-upgrade-18-dev-cc4b6b8.0+cc4b6b8" + "@agoric/base-zone": "npm:^0.1.1-u18.1" "@endo/common": "npm:^1.2.8" "@endo/errors": "npm:^1.2.8" "@endo/far": "npm:^1.1.9" @@ -96,24 +96,24 @@ __metadata: "@endo/stream": "npm:^1.2.8" anylogger: "npm:^0.21.0" jessie.js: "npm:^0.3.4" - checksum: 10/21caa8940724b84a4c7fb976a43a98eeaed99e92b4c5403bacb78a91bc25facd7721f5ef5ef4cf9ce7411bf24a1f42ee9c19af5a6d65aab17b70163322ea9632 + checksum: 10/a36208d546dcdbedd29f1081fa3864d69afca3aa8ea1d44f08d6c86387d34e2daf2294ff2107606cd1fecfd64a849a7fec0cfa1f1657b2909ca5dc059c792837 languageName: node linkType: hard -"@agoric/store@npm:0.9.3-upgrade-18-dev-cc4b6b8.0+cc4b6b8": - version: 0.9.3-upgrade-18-dev-cc4b6b8.0 - resolution: "@agoric/store@npm:0.9.3-upgrade-18-dev-cc4b6b8.0" +"@agoric/store@npm:0.9.3-dev-3d64bee.0+3d64bee": + version: 0.9.3-dev-3d64bee.0 + resolution: "@agoric/store@npm:0.9.3-dev-3d64bee.0" dependencies: - "@endo/errors": "npm:^1.2.8" - "@endo/exo": "npm:^1.5.7" - "@endo/marshal": "npm:^1.6.2" - "@endo/pass-style": "npm:^1.4.7" - "@endo/patterns": "npm:^1.4.7" - checksum: 10/3ac4766569960308be89f96d02641fecce3b88c99dbda588b412f981fa3542bd605d655af88a44cfd65c59f2de043ecc6529c516c531930d59cf1f27fe88d41f + "@endo/errors": "npm:^1.2.9" + "@endo/exo": "npm:^1.5.8" + "@endo/marshal": "npm:^1.6.3" + "@endo/pass-style": "npm:^1.4.8" + "@endo/patterns": "npm:^1.4.8" + checksum: 10/aaf9f69852a601c1d0799a4c435b332390f6d4d34f7f3b91c49ecff3ff7604ec9ab37badd93eb5e1f639b4b8f6f2547489ca83c82f459a49b31b803564ae1e85 languageName: node linkType: hard -"@agoric/store@npm:0.9.3-upgrade-18-dev-ef001c0.0+ef001c0, @agoric/store@npm:^0.9.3-u18.0": +"@agoric/store@npm:0.9.3-upgrade-18-dev-ef001c0.0+ef001c0": version: 0.9.3-upgrade-18-dev-ef001c0.0 resolution: "@agoric/store@npm:0.9.3-upgrade-18-dev-ef001c0.0" dependencies: @@ -126,24 +126,24 @@ __metadata: languageName: node linkType: hard -"@agoric/swingset-liveslots@npm:0.10.3-u18.0": - version: 0.10.3-u18.0 - resolution: "@agoric/swingset-liveslots@npm:0.10.3-u18.0" +"@agoric/swingset-liveslots@npm:0.10.3-dev-3d64bee.0": + version: 0.10.3-dev-3d64bee.0 + resolution: "@agoric/swingset-liveslots@npm:0.10.3-dev-3d64bee.0" dependencies: - "@agoric/internal": "npm:^0.4.0-u18.0" - "@agoric/store": "npm:^0.9.3-u18.0" - "@endo/env-options": "npm:^1.1.7" - "@endo/errors": "npm:^1.2.7" - "@endo/eventual-send": "npm:^1.2.7" - "@endo/exo": "npm:^1.5.6" - "@endo/far": "npm:^1.1.8" - "@endo/init": "npm:^1.1.6" - "@endo/marshal": "npm:^1.6.1" - "@endo/nat": "npm:^5.0.12" - "@endo/pass-style": "npm:^1.4.6" - "@endo/patterns": "npm:^1.4.6" - "@endo/promise-kit": "npm:^1.1.7" - checksum: 10/d473cb854415bf0a486fbf40ee8cf36b5aa4d171a887186e8f93b1a20bdd078648d743e76ef5542e90009d64f9cf2cb752288a28ed2c75c4716a0d141ccaf0a1 + "@agoric/internal": "npm:0.3.3-dev-3d64bee.0+3d64bee" + "@agoric/store": "npm:0.9.3-dev-3d64bee.0+3d64bee" + "@endo/env-options": "npm:^1.1.8" + "@endo/errors": "npm:^1.2.9" + "@endo/eventual-send": "npm:^1.3.0" + "@endo/exo": "npm:^1.5.8" + "@endo/far": "npm:^1.1.10" + "@endo/init": "npm:^1.1.8" + "@endo/marshal": "npm:^1.6.3" + "@endo/nat": "npm:^5.0.14" + "@endo/pass-style": "npm:^1.4.8" + "@endo/patterns": "npm:^1.4.8" + "@endo/promise-kit": "npm:^1.1.9" + checksum: 10/50fe3e52d93086d1d6ea63c0c1bf7c0f076220efdc6c98344a1a1acdae19c8d40873a23a4aa05bb071019cbd5ef7a77a382c9117922da9049d03666cdbd0ba53 languageName: node linkType: hard @@ -545,14 +545,14 @@ __metadata: languageName: node linkType: hard -"@endo/common@npm:^1.2.7, @endo/common@npm:^1.2.8": - version: 1.2.8 - resolution: "@endo/common@npm:1.2.8" +"@endo/common@npm:^1.2.7, @endo/common@npm:^1.2.8, @endo/common@npm:^1.2.9": + version: 1.2.9 + resolution: "@endo/common@npm:1.2.9" dependencies: - "@endo/errors": "npm:^1.2.8" - "@endo/eventual-send": "npm:^1.2.8" - "@endo/promise-kit": "npm:^1.1.8" - checksum: 10/70833bc0fb5af93a62055db430b408b330354aaf5e13d799d15a5589e1ce1213a6e57f72ab52d1d28ac213c32771760993922a1ffa72ac786acd503c981010c4 + "@endo/errors": "npm:^1.2.9" + "@endo/eventual-send": "npm:^1.3.0" + "@endo/promise-kit": "npm:^1.1.9" + checksum: 10/37d9bb1fbe6b974f135f755253ce58dd1692ed1849e1f2bdf91726bc62faba7dc4a9f9d527ce759feba08fe6cdb2597dc6bcc0daf8d516a780e856d61654f1d5 languageName: node linkType: hard @@ -569,19 +569,19 @@ __metadata: languageName: node linkType: hard -"@endo/env-options@npm:^1.1.7, @endo/env-options@npm:^1.1.8": +"@endo/env-options@npm:^1.1.8": version: 1.1.8 resolution: "@endo/env-options@npm:1.1.8" checksum: 10/f7e84346599dd2bcb6365c314e9a8129c5ebbb457476de72ed896ea461d616c0b7e0dfc7733e20c0abb8400212fb5eafdae993bcfd4cbfe92acbb5c881a6ad0d languageName: node linkType: hard -"@endo/errors@npm:^1.2.7, @endo/errors@npm:^1.2.8": - version: 1.2.8 - resolution: "@endo/errors@npm:1.2.8" +"@endo/errors@npm:^1.2.7, @endo/errors@npm:^1.2.8, @endo/errors@npm:^1.2.9": + version: 1.2.9 + resolution: "@endo/errors@npm:1.2.9" dependencies: - ses: "npm:^1.10.0" - checksum: 10/307f7821b3a8c78c55c1bd48e775f8486bfc4f4674745276da1b616c379ba294881b51c8e9990e273f593967ed448a3e96e34dca3a9f2350f24eae0c1fba0d69 + ses: "npm:^1.11.0" + checksum: 10/06457df5fa31709683f22fdf6b61e9f45056557308360ee582f3ed659476a44b8960b5c7337283a0c8da3162a4f1087883d228088f34a1fcefcb129cbd5188c6 languageName: node linkType: hard @@ -597,7 +597,7 @@ __metadata: languageName: node linkType: hard -"@endo/eventual-send@npm:^1.2.6, @endo/eventual-send@npm:^1.2.7, @endo/eventual-send@npm:^1.2.8": +"@endo/eventual-send@npm:^1.2.6, @endo/eventual-send@npm:^1.2.8, @endo/eventual-send@npm:^1.3.0": version: 1.3.0 resolution: "@endo/eventual-send@npm:1.3.0" dependencies: @@ -606,29 +606,29 @@ __metadata: languageName: node linkType: hard -"@endo/exo@npm:^1.5.4, @endo/exo@npm:^1.5.6, @endo/exo@npm:^1.5.7": - version: 1.5.7 - resolution: "@endo/exo@npm:1.5.7" +"@endo/exo@npm:^1.5.6, @endo/exo@npm:^1.5.8": + version: 1.5.8 + resolution: "@endo/exo@npm:1.5.8" dependencies: - "@endo/common": "npm:^1.2.8" + "@endo/common": "npm:^1.2.9" "@endo/env-options": "npm:^1.1.8" - "@endo/errors": "npm:^1.2.8" - "@endo/eventual-send": "npm:^1.2.8" - "@endo/far": "npm:^1.1.9" - "@endo/pass-style": "npm:^1.4.7" - "@endo/patterns": "npm:^1.4.7" - checksum: 10/f69f564e3a3a02fee5e3cd5c659258c6be5587a9b3878505a7d048b061ff1f303f911525340b5ae7cbec647620c7cda50a774b0bfadd1fe31fa26f80f02e145b + "@endo/errors": "npm:^1.2.9" + "@endo/eventual-send": "npm:^1.3.0" + "@endo/far": "npm:^1.1.10" + "@endo/pass-style": "npm:^1.4.8" + "@endo/patterns": "npm:^1.4.8" + checksum: 10/72c798344b9c0b1d008b8131210563a9919bb7e4b489700cf8147001e6842f8e5d631b9e53bbb3a93aca14b3fe11dc8740d32537528caf890f2e349c749ac943 languageName: node linkType: hard -"@endo/far@npm:^1.0.0, @endo/far@npm:^1.1.8, @endo/far@npm:^1.1.9": - version: 1.1.9 - resolution: "@endo/far@npm:1.1.9" +"@endo/far@npm:^1.0.0, @endo/far@npm:^1.1.10, @endo/far@npm:^1.1.8, @endo/far@npm:^1.1.9": + version: 1.1.10 + resolution: "@endo/far@npm:1.1.10" dependencies: - "@endo/errors": "npm:^1.2.8" - "@endo/eventual-send": "npm:^1.2.8" - "@endo/pass-style": "npm:^1.4.7" - checksum: 10/bb91616094a0a5dcf189d2caf02956abf54e3eb5e6d001baf38109d2b16ac086275f63a5cff90f976328f90888169a06a340ae3112bdb6bfaa11b5fb67128d9d + "@endo/errors": "npm:^1.2.9" + "@endo/eventual-send": "npm:^1.3.0" + "@endo/pass-style": "npm:^1.4.8" + checksum: 10/028ca6ee4388f238bb452b8922507434867b689b283082209f948fd14059aab2cfde2d7fcf2e47c0f297bb345ecec615100f05b50dfb0e037b8bccd061b39a03 languageName: node linkType: hard @@ -645,38 +645,38 @@ __metadata: languageName: node linkType: hard -"@endo/init@npm:^1.1.6, @endo/init@npm:^1.1.7": - version: 1.1.7 - resolution: "@endo/init@npm:1.1.7" +"@endo/init@npm:^1.1.6, @endo/init@npm:^1.1.7, @endo/init@npm:^1.1.8": + version: 1.1.8 + resolution: "@endo/init@npm:1.1.8" dependencies: "@endo/base64": "npm:^1.0.9" - "@endo/eventual-send": "npm:^1.2.8" - "@endo/lockdown": "npm:^1.0.13" - "@endo/promise-kit": "npm:^1.1.8" - checksum: 10/a4aca56a0def52034e7bdc0480229787dcb86136efa83a9fd24247f289fb77152c433c01202aa5950da042d6835e93698ee5f5dd9f3786aecea2325264251a55 + "@endo/eventual-send": "npm:^1.3.0" + "@endo/lockdown": "npm:^1.0.14" + "@endo/promise-kit": "npm:^1.1.9" + checksum: 10/7b100498576fffa6796ea0ab9b53064e80da240250b8571ccb991072825aeabc8f31c31577444add33dee6fc6c95636af3b5d53a89ef3817752f49b896c85ff7 languageName: node linkType: hard -"@endo/lockdown@npm:^1.0.11, @endo/lockdown@npm:^1.0.13": - version: 1.0.13 - resolution: "@endo/lockdown@npm:1.0.13" +"@endo/lockdown@npm:^1.0.11, @endo/lockdown@npm:^1.0.14": + version: 1.0.14 + resolution: "@endo/lockdown@npm:1.0.14" dependencies: - ses: "npm:^1.10.0" - checksum: 10/917cd9cc088c44ba10d85f2a0dc0feb92e0b46bd28f62bac8a579bd9ef554e77618b656dbdd834b6953e913a51215e9fcbde2e5f3b3c9bb794a38504610cdfa2 + ses: "npm:^1.11.0" + checksum: 10/790362b212c42e07ce44a8c033c8b70beae42f6d802529b062790983d63b50a005abde3b75ba69861793e176f9848f3074f5471d3a0fb5a514b681541778fece languageName: node linkType: hard -"@endo/marshal@npm:^1.6.1, @endo/marshal@npm:^1.6.2": - version: 1.6.2 - resolution: "@endo/marshal@npm:1.6.2" +"@endo/marshal@npm:^1.6.1, @endo/marshal@npm:^1.6.2, @endo/marshal@npm:^1.6.3": + version: 1.6.3 + resolution: "@endo/marshal@npm:1.6.3" dependencies: - "@endo/common": "npm:^1.2.8" - "@endo/errors": "npm:^1.2.8" - "@endo/eventual-send": "npm:^1.2.8" - "@endo/nat": "npm:^5.0.13" - "@endo/pass-style": "npm:^1.4.7" - "@endo/promise-kit": "npm:^1.1.8" - checksum: 10/96b739f14519a0ca0af681721782c5ee663d502bc8787e556753654a51cb92cee2f9e6331e867c89706852b9bafd251754a68f0a0ac44f91e2cb9a51f4ded5aa + "@endo/common": "npm:^1.2.9" + "@endo/errors": "npm:^1.2.9" + "@endo/eventual-send": "npm:^1.3.0" + "@endo/nat": "npm:^5.0.14" + "@endo/pass-style": "npm:^1.4.8" + "@endo/promise-kit": "npm:^1.1.9" + checksum: 10/2c04caf49ae157dd0c4e6a94a568525357da6c1b75e16294c4698c9507c57a15af44b3fe37c255316cfe074b2b232b9bed5d30e5efaef6a2f451b8bf0df71a3e languageName: node linkType: hard @@ -693,56 +693,55 @@ __metadata: languageName: node linkType: hard -"@endo/nat@npm:^5.0.12, @endo/nat@npm:^5.0.13": - version: 5.0.13 - resolution: "@endo/nat@npm:5.0.13" - checksum: 10/df17b5e471a706a3e9732c0abafa15fef3b7ecbdf4b55aead012e1e1f73d64a4febbd25056de2f87306448ddf844357d69414a053afa6042a319d277fc16ab6b +"@endo/nat@npm:^5.0.13, @endo/nat@npm:^5.0.14": + version: 5.0.14 + resolution: "@endo/nat@npm:5.0.14" + checksum: 10/8865e67c6bcf0a9a4a1719779e6533bc516c5a319f3e1555d3e2309fe875e0e88f9df5f25eba4dd6a456510174fbce1372763498dbb78710947108fb139fe99b languageName: node linkType: hard -"@endo/pass-style@npm:^1.4.6, @endo/pass-style@npm:^1.4.7": - version: 1.4.7 - resolution: "@endo/pass-style@npm:1.4.7" +"@endo/pass-style@npm:^1.4.6, @endo/pass-style@npm:^1.4.7, @endo/pass-style@npm:^1.4.8": + version: 1.4.8 + resolution: "@endo/pass-style@npm:1.4.8" dependencies: "@endo/env-options": "npm:^1.1.8" - "@endo/errors": "npm:^1.2.8" - "@endo/eventual-send": "npm:^1.2.8" - "@endo/promise-kit": "npm:^1.1.8" - "@fast-check/ava": "npm:^1.1.5" - checksum: 10/4d818d2f381389b83d3c94de1fda685e9779e8757b99f2505285805b2eb68a39e8ef6e3b0707d42bdc427ceed4429dd63f31dd829daf018bb337364fe55a1256 + "@endo/errors": "npm:^1.2.9" + "@endo/eventual-send": "npm:^1.3.0" + "@endo/promise-kit": "npm:^1.1.9" + checksum: 10/bb6f81b4bd3e227451208fddbf44730b149305515502a14664cadb39d07787d65680031746ae6ffa465aaf661e2425f2842d874c98b8542a5ccb01d8b02bb2c3 languageName: node linkType: hard -"@endo/patterns@npm:^1.4.4, @endo/patterns@npm:^1.4.6, @endo/patterns@npm:^1.4.7": - version: 1.4.7 - resolution: "@endo/patterns@npm:1.4.7" +"@endo/patterns@npm:^1.4.6, @endo/patterns@npm:^1.4.7, @endo/patterns@npm:^1.4.8": + version: 1.4.8 + resolution: "@endo/patterns@npm:1.4.8" dependencies: - "@endo/common": "npm:^1.2.8" - "@endo/errors": "npm:^1.2.8" - "@endo/eventual-send": "npm:^1.2.8" - "@endo/marshal": "npm:^1.6.2" - "@endo/promise-kit": "npm:^1.1.8" - checksum: 10/9c29e415fb42fb3da3f92993b07aae183aca79949d9ba4896e5c00964d43b67638b59a504f5b92b198757cedd36c9cd3c585d94b26e31b70fd88cf088ac520cf + "@endo/common": "npm:^1.2.9" + "@endo/errors": "npm:^1.2.9" + "@endo/eventual-send": "npm:^1.3.0" + "@endo/marshal": "npm:^1.6.3" + "@endo/promise-kit": "npm:^1.1.9" + checksum: 10/8d547e8872754ea535df6a0e53dee66075bd95adc5b875bd553c6e34ce1fcf3c8c0bbfa67d88fcb265f2ae5660ec7a10d194ff738c2c261e51de3f630cbab353 languageName: node linkType: hard -"@endo/promise-kit@npm:^1.1.6, @endo/promise-kit@npm:^1.1.7, @endo/promise-kit@npm:^1.1.8": - version: 1.1.8 - resolution: "@endo/promise-kit@npm:1.1.8" +"@endo/promise-kit@npm:^1.1.6, @endo/promise-kit@npm:^1.1.8, @endo/promise-kit@npm:^1.1.9": + version: 1.1.9 + resolution: "@endo/promise-kit@npm:1.1.9" dependencies: - ses: "npm:^1.10.0" - checksum: 10/8c4f576707d34f0533609639102e8c6490b4b413a42b28aa020b1ac6c7d1b56c1234a07a75d52c3355d275eca580d59dace5b4b01618b78c6543d0fe30f75123 + ses: "npm:^1.11.0" + checksum: 10/fad342c0573252b57bcd0601d0b47814068333942fdfb4ea1e9dc7980910e46cb6d22fe5715b32571b002cafad9cf085584267bf42d32282768f471d15e665ae languageName: node linkType: hard -"@endo/stream@npm:^1.2.6, @endo/stream@npm:^1.2.8": - version: 1.2.8 - resolution: "@endo/stream@npm:1.2.8" +"@endo/stream@npm:^1.2.6, @endo/stream@npm:^1.2.8, @endo/stream@npm:^1.2.9": + version: 1.2.9 + resolution: "@endo/stream@npm:1.2.9" dependencies: - "@endo/eventual-send": "npm:^1.2.8" - "@endo/promise-kit": "npm:^1.1.8" - ses: "npm:^1.10.0" - checksum: 10/f715c54eefa5795a0064aeb675395c0dbd372063a9d3922aac7037cd8e2b74dd8e70402305b2d79870807bba1c2adc258c57c0acaee0c378744c4f165507f34d + "@endo/eventual-send": "npm:^1.3.0" + "@endo/promise-kit": "npm:^1.1.9" + ses: "npm:^1.11.0" + checksum: 10/5605e0135ad1ac426bafac3d3660642b64943eb0148a4b6a7b91e5d1a3bbd7ff856425207e80e6eee998ba47b2f3a1314cce52e4d7f965fd11bbd3e15a1144be languageName: node linkType: hard @@ -1242,17 +1241,6 @@ __metadata: languageName: node linkType: hard -"@fast-check/ava@npm:^1.1.5": - version: 1.2.1 - resolution: "@fast-check/ava@npm:1.2.1" - dependencies: - fast-check: "npm:^3.0.0" - peerDependencies: - ava: ^4 || ^5 || ^6 - checksum: 10/816ac43e5fb0c2a101bc7e2307f67b68ede4dd64d029cecc78795113580c90f4120ccc3ea6931ad757c465dff06a79c24f45cbe399b8ab6d74494d72f9f19736 - languageName: node - linkType: hard - "@gerrit0/mini-shiki@npm:^1.24.0": version: 1.27.2 resolution: "@gerrit0/mini-shiki@npm:1.27.2" @@ -2179,15 +2167,12 @@ __metadata: version: 0.0.0-use.local resolution: "@ocap/kernel@workspace:packages/kernel" dependencies: - "@agoric/swingset-liveslots": "npm:0.10.3-u18.0" + "@agoric/swingset-liveslots": "npm:0.10.3-dev-3d64bee.0" "@endo/errors": "npm:^1.2.8" - "@endo/eventual-send": "npm:^1.2.6" - "@endo/exo": "npm:^1.5.4" "@endo/far": "npm:^1.1.9" "@endo/import-bundle": "npm:^1.3.1" "@endo/marshal": "npm:^1.6.2" "@endo/pass-style": "npm:^1.4.7" - "@endo/patterns": "npm:^1.4.4" "@endo/promise-kit": "npm:^1.1.6" "@metamask/auto-changelog": "npm:^4.0.0" "@metamask/eslint-config": "npm:^14.0.0" @@ -6360,15 +6345,6 @@ __metadata: languageName: node linkType: hard -"fast-check@npm:^3.0.0": - version: 3.23.2 - resolution: "fast-check@npm:3.23.2" - dependencies: - pure-rand: "npm:^6.1.0" - checksum: 10/dab344146b778e8bc2973366ea55528d1b58d3e3037270262b877c54241e800c4d744957722c24705c787020d702aece11e57c9e3dbd5ea19c3e10926bf1f3fe - languageName: node - linkType: hard - "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -9776,13 +9752,6 @@ __metadata: languageName: node linkType: hard -"pure-rand@npm:^6.1.0": - version: 6.1.0 - resolution: "pure-rand@npm:6.1.0" - checksum: 10/256aa4bcaf9297256f552914e03cbdb0039c8fe1db11fa1e6d3f80790e16e563eb0a859a1e61082a95e224fc0c608661839439f8ecc6a3db4e48d46d99216ee4 - languageName: node - linkType: hard - "querystringify@npm:^2.1.1": version: 2.2.0 resolution: "querystringify@npm:2.2.0" @@ -10433,12 +10402,12 @@ __metadata: languageName: node linkType: hard -"ses@npm:^1.1.0, ses@npm:^1.10.0, ses@npm:^1.9.0": - version: 1.10.0 - resolution: "ses@npm:1.10.0" +"ses@npm:^1.1.0, ses@npm:^1.10.0, ses@npm:^1.11.0, ses@npm:^1.9.0": + version: 1.11.0 + resolution: "ses@npm:1.11.0" dependencies: "@endo/env-options": "npm:^1.1.8" - checksum: 10/57073350cab333e3c4516e8ea09e1ddd2f81fdd954dc48798548d098550d1da8bb3266def0461a34a4e11c0a1027bde03e05f2ac5feb512ff3fc33dd327a9bb2 + checksum: 10/b080fce2f369bd4e3cd7df01704347fc50b426b21269920ad89aeb36de3a3acbf9b849152d27c9fb2c77ea929d5b0f6568e2c2322bda5a4621e9d3d2d70b4cf0 languageName: node linkType: hard