diff --git a/CHANGELOG.md b/CHANGELOG.md index d3d13c96b75..63f13764d84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ Docs: https://docs.openclaw.ai ### Changes -- Plugins/ClawHub: persist StorePack digest metadata on ClawHub plugin install and update records so registry refreshes and download verification can reuse stored artifact facts. Thanks @vincentkoc. +- Plugins/ClawHub: persist ClawPack digest metadata on ClawHub plugin install and update records so registry refreshes and download verification can reuse stored artifact facts. Thanks @vincentkoc. - Providers/OpenAI: add `extraBody`/`extra_body` passthrough for OpenAI-compatible TTS endpoints, so custom speech servers can receive fields such as `lang` in `/audio/speech` requests. Fixes #39900. Thanks @R3NK0R. - Dependencies: refresh workspace dependency pins, including TypeBox 1.1.37, AWS SDK 3.1041.0, Microsoft Teams 2.0.9, and Marked 18.0.3. Thanks @mariozechner, @aws, and @microsoft. - Discord/channels: add reusable message-channel access groups plus Discord channel-audience DM authorization, so allowlists can reference `accessGroup:` across channel auth paths. (#75813) diff --git a/src/cli/plugins-cli.install.test.ts b/src/cli/plugins-cli.install.test.ts index 816da45aebe..0fbd1b182f9 100644 --- a/src/cli/plugins-cli.install.test.ts +++ b/src/cli/plugins-cli.install.test.ts @@ -84,10 +84,10 @@ function createClawHubInstallResult(params: { version: params.version, integrity: "sha256-abc", resolvedAt: "2026-03-22T00:00:00.000Z", - storepackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - storepackSpecVersion: 1, - storepackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", - storepackSize: 4096, + clawpackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + clawpackSpecVersion: 1, + clawpackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + clawpackSize: 4096, }, }; } @@ -471,10 +471,10 @@ describe("plugins cli install", () => { clawhubPackage: "demo", clawhubFamily: "code-plugin", clawhubChannel: "official", - storepackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - storepackSpecVersion: 1, - storepackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", - storepackSize: 4096, + clawpackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + clawpackSpecVersion: 1, + clawpackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + clawpackSize: 4096, }), }); expect(writeConfigFile).toHaveBeenCalledWith(enabledCfg); @@ -644,10 +644,10 @@ describe("plugins cli install", () => { installPath: cliInstallPath("demo"), version: "1.2.3", clawhubPackage: "demo", - storepackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - storepackSpecVersion: 1, - storepackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", - storepackSize: 4096, + clawpackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + clawpackSpecVersion: 1, + clawpackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + clawpackSize: 4096, }), }); }); diff --git a/src/cli/plugins-install-command.ts b/src/cli/plugins-install-command.ts index 7d71922114c..6afbc77e5b5 100644 --- a/src/cli/plugins-install-command.ts +++ b/src/cli/plugins-install-command.ts @@ -757,10 +757,10 @@ export async function runPluginInstallCommand(params: { clawhubPackage: result.clawhub.clawhubPackage, clawhubFamily: result.clawhub.clawhubFamily, clawhubChannel: result.clawhub.clawhubChannel, - storepackSha256: result.clawhub.storepackSha256, - storepackSpecVersion: result.clawhub.storepackSpecVersion, - storepackManifestSha256: result.clawhub.storepackManifestSha256, - storepackSize: result.clawhub.storepackSize, + clawpackSha256: result.clawhub.clawpackSha256, + clawpackSpecVersion: result.clawhub.clawpackSpecVersion, + clawpackManifestSha256: result.clawhub.clawpackManifestSha256, + clawpackSize: result.clawhub.clawpackSize, }, }); return; @@ -790,10 +790,10 @@ export async function runPluginInstallCommand(params: { clawhubPackage: clawhubResult.clawhub.clawhubPackage, clawhubFamily: clawhubResult.clawhub.clawhubFamily, clawhubChannel: clawhubResult.clawhub.clawhubChannel, - storepackSha256: clawhubResult.clawhub.storepackSha256, - storepackSpecVersion: clawhubResult.clawhub.storepackSpecVersion, - storepackManifestSha256: clawhubResult.clawhub.storepackManifestSha256, - storepackSize: clawhubResult.clawhub.storepackSize, + clawpackSha256: clawhubResult.clawhub.clawpackSha256, + clawpackSpecVersion: clawhubResult.clawhub.clawpackSpecVersion, + clawpackManifestSha256: clawhubResult.clawhub.clawpackManifestSha256, + clawpackSize: clawhubResult.clawhub.clawpackSize, }, }); return; diff --git a/src/config/types.installs.ts b/src/config/types.installs.ts index 0e9614c2d97..ccafbdfb505 100644 --- a/src/config/types.installs.ts +++ b/src/config/types.installs.ts @@ -15,10 +15,10 @@ export type InstallRecordBase = { clawhubPackage?: string; clawhubFamily?: "code-plugin" | "bundle-plugin"; clawhubChannel?: "official" | "community" | "private"; - storepackSha256?: string; - storepackSpecVersion?: number; - storepackManifestSha256?: string; - storepackSize?: number; + clawpackSha256?: string; + clawpackSpecVersion?: number; + clawpackManifestSha256?: string; + clawpackSize?: number; gitUrl?: string; gitRef?: string; gitCommit?: string; diff --git a/src/config/zod-schema.installs.ts b/src/config/zod-schema.installs.ts index f64da1623db..599dcadc175 100644 --- a/src/config/zod-schema.installs.ts +++ b/src/config/zod-schema.installs.ts @@ -29,10 +29,10 @@ export const InstallRecordShape = { clawhubChannel: z .union([z.literal("official"), z.literal("community"), z.literal("private")]) .optional(), - storepackSha256: z.string().optional(), - storepackSpecVersion: z.number().int().nonnegative().optional(), - storepackManifestSha256: z.string().optional(), - storepackSize: z.number().int().nonnegative().optional(), + clawpackSha256: z.string().optional(), + clawpackSpecVersion: z.number().int().nonnegative().optional(), + clawpackManifestSha256: z.string().optional(), + clawpackSize: z.number().int().nonnegative().optional(), gitUrl: z.string().optional(), gitRef: z.string().optional(), gitCommit: z.string().optional(), diff --git a/src/infra/clawhub.ts b/src/infra/clawhub.ts index 9a1601ccc1d..355484cdcd6 100644 --- a/src/infra/clawhub.ts +++ b/src/infra/clawhub.ts @@ -39,7 +39,7 @@ export type ClawHubPackageEnvironmentSummary = { supportsRemoteHost?: boolean; knownUnsupported?: string[]; }; -export type ClawHubPackageStorePackSummary = { +export type ClawHubPackageClawPackSummary = { available: boolean; specVersion?: number | null; format?: string | null; @@ -68,10 +68,10 @@ export type ClawHubPackageListItem = { capabilityTags?: string[]; executesCode?: boolean; verificationTier?: string | null; - storepackAvailable?: boolean; + clawpackAvailable?: boolean; hostTargetKeys?: string[]; environmentFlags?: string[]; - storepack?: ClawHubPackageStorePackSummary; + clawpack?: ClawHubPackageClawPackSummary; }; export type ClawHubPackageDetail = { package: @@ -99,7 +99,7 @@ export type ClawHubPackageDetail = { hasProvenance?: boolean; scanStatus?: string; } | null; - storepack?: ClawHubPackageStorePackSummary; + clawpack?: ClawHubPackageClawPackSummary; }) | null; owner?: { @@ -138,7 +138,7 @@ export type ClawHubPackageVersion = { ? C : never : never; - storepack?: ClawHubPackageStorePackSummary; + clawpack?: ClawHubPackageClawPackSummary; } | null; }; diff --git a/src/plugins/clawhub.test.ts b/src/plugins/clawhub.test.ts index 55ddc862728..33fd2d030ef 100644 --- a/src/plugins/clawhub.test.ts +++ b/src/plugins/clawhub.test.ts @@ -53,8 +53,8 @@ const { CLAWHUB_INSTALL_ERROR_CODE, formatClawHubSpecifier, installPluginFromCla await import("./clawhub.js"); const DEMO_ARCHIVE_INTEGRITY = "sha256-qerEjGEpvES2+Tyan0j2xwDRkbcnmh4ZFfKN9vWbsa8="; -const DEMO_STOREPACK_SHA256 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; -const DEMO_STOREPACK_MANIFEST_SHA256 = +const DEMO_CLAWPACK_SHA256 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; +const DEMO_CLAWPACK_MANIFEST_SHA256 = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"; const tempDirs: string[] = []; @@ -293,7 +293,7 @@ describe("installPluginFromClawHub", () => { ); }); - it("returns StorePack metadata from compatible ClawHub package versions", async () => { + it("returns ClawPack metadata from compatible ClawHub package versions", async () => { fetchClawHubPackageVersionMock.mockResolvedValueOnce({ version: { version: "2026.3.22", @@ -304,14 +304,14 @@ describe("installPluginFromClawHub", () => { pluginApiRange: ">=2026.3.22", minGatewayVersion: "2026.3.0", }, - storepack: { + clawpack: { available: true, specVersion: 1, - format: "storepack.zip", - sha256: DEMO_STOREPACK_SHA256, + format: "clawpack.zip", + sha256: DEMO_CLAWPACK_SHA256, size: 4096, fileCount: 7, - manifestSha256: DEMO_STOREPACK_MANIFEST_SHA256, + manifestSha256: DEMO_CLAWPACK_MANIFEST_SHA256, builtAt: 1774200000000, buildVersion: "2026.3.22", hostTargets: [], @@ -329,15 +329,15 @@ describe("installPluginFromClawHub", () => { expect(result).toMatchObject({ ok: true, clawhub: { - storepackSha256: DEMO_STOREPACK_SHA256, - storepackSpecVersion: 1, - storepackManifestSha256: DEMO_STOREPACK_MANIFEST_SHA256, - storepackSize: 4096, + clawpackSha256: DEMO_CLAWPACK_SHA256, + clawpackSpecVersion: 1, + clawpackManifestSha256: DEMO_CLAWPACK_MANIFEST_SHA256, + clawpackSize: 4096, }, }); }); - it("does not persist package-level StorePack metadata for version records without StorePack facts", async () => { + it("does not persist package-level ClawPack metadata for version records without ClawPack facts", async () => { parseClawHubPluginSpecMock.mockReturnValueOnce({ name: "demo", version: "2026.3.21" }); fetchClawHubPackageDetailMock.mockResolvedValueOnce({ package: { @@ -352,14 +352,14 @@ describe("installPluginFromClawHub", () => { pluginApiRange: ">=2026.3.22", minGatewayVersion: "2026.3.0", }, - storepack: { + clawpack: { available: true, specVersion: 1, - format: "storepack.zip", - sha256: DEMO_STOREPACK_SHA256, + format: "clawpack.zip", + sha256: DEMO_CLAWPACK_SHA256, size: 4096, fileCount: 7, - manifestSha256: DEMO_STOREPACK_MANIFEST_SHA256, + manifestSha256: DEMO_CLAWPACK_MANIFEST_SHA256, builtAt: 1774200000000, buildVersion: "2026.3.22", hostTargets: [], @@ -395,10 +395,10 @@ describe("installPluginFromClawHub", () => { if (!result.ok) { throw new Error(result.error); } - expect(result.clawhub.storepackSha256).toBeUndefined(); - expect(result.clawhub.storepackSpecVersion).toBeUndefined(); - expect(result.clawhub.storepackManifestSha256).toBeUndefined(); - expect(result.clawhub.storepackSize).toBeUndefined(); + expect(result.clawhub.clawpackSha256).toBeUndefined(); + expect(result.clawhub.clawpackSpecVersion).toBeUndefined(); + expect(result.clawhub.clawpackManifestSha256).toBeUndefined(); + expect(result.clawhub.clawpackSize).toBeUndefined(); }); it("installs when ClawHub advertises a wildcard plugin API range", async () => { diff --git a/src/plugins/clawhub.ts b/src/plugins/clawhub.ts index 9e4c80e6262..59dd5c9b843 100644 --- a/src/plugins/clawhub.ts +++ b/src/plugins/clawhub.ts @@ -25,7 +25,7 @@ import { type ClawHubPackageCompatibility, type ClawHubPackageDetail, type ClawHubPackageFamily, - type ClawHubPackageStorePackSummary, + type ClawHubPackageClawPackSummary, type ClawHubPackageVersion, } from "../infra/clawhub.js"; import { formatErrorMessage } from "../infra/errors.js"; @@ -66,10 +66,10 @@ export type ClawHubPluginInstallRecordFields = { integrity?: string; resolvedAt?: string; installedAt?: string; - storepackSha256?: string; - storepackSpecVersion?: number; - storepackManifestSha256?: string; - storepackSize?: number; + clawpackSha256?: string; + clawpackSpecVersion?: number; + clawpackManifestSha256?: string; + clawpackSize?: number; }; type ClawHubInstallFailure = { @@ -127,38 +127,36 @@ type ClawHubArchiveEntryLimits = { addArchiveBytes: (bytes: number) => boolean; }; -function normalizeClawHubStorePackInstallFields( - storepack: ClawHubPackageStorePackSummary | null | undefined, +function normalizeClawHubClawPackInstallFields( + clawpack: ClawHubPackageClawPackSummary | null | undefined, ): Pick< ClawHubPluginInstallRecordFields, - "storepackSha256" | "storepackSpecVersion" | "storepackManifestSha256" | "storepackSize" + "clawpackSha256" | "clawpackSpecVersion" | "clawpackManifestSha256" | "clawpackSize" > { - if (storepack?.available !== true) { + if (clawpack?.available !== true) { return {}; } - const storepackSha256 = - typeof storepack.sha256 === "string" ? normalizeClawHubSha256Hex(storepack.sha256) : null; - const storepackManifestSha256 = - typeof storepack.manifestSha256 === "string" - ? normalizeClawHubSha256Hex(storepack.manifestSha256) + const clawpackSha256 = + typeof clawpack.sha256 === "string" ? normalizeClawHubSha256Hex(clawpack.sha256) : null; + const clawpackManifestSha256 = + typeof clawpack.manifestSha256 === "string" + ? normalizeClawHubSha256Hex(clawpack.manifestSha256) : null; - const storepackSpecVersion = - typeof storepack.specVersion === "number" && - Number.isSafeInteger(storepack.specVersion) && - storepack.specVersion >= 0 - ? storepack.specVersion + const clawpackSpecVersion = + typeof clawpack.specVersion === "number" && + Number.isSafeInteger(clawpack.specVersion) && + clawpack.specVersion >= 0 + ? clawpack.specVersion : undefined; - const storepackSize = - typeof storepack.size === "number" && - Number.isSafeInteger(storepack.size) && - storepack.size >= 0 - ? storepack.size + const clawpackSize = + typeof clawpack.size === "number" && Number.isSafeInteger(clawpack.size) && clawpack.size >= 0 + ? clawpack.size : undefined; return { - ...(storepackSha256 ? { storepackSha256 } : {}), - ...(storepackSpecVersion !== undefined ? { storepackSpecVersion } : {}), - ...(storepackManifestSha256 ? { storepackManifestSha256 } : {}), - ...(storepackSize !== undefined ? { storepackSize } : {}), + ...(clawpackSha256 ? { clawpackSha256 } : {}), + ...(clawpackSpecVersion !== undefined ? { clawpackSpecVersion } : {}), + ...(clawpackManifestSha256 ? { clawpackManifestSha256 } : {}), + ...(clawpackSize !== undefined ? { clawpackSize } : {}), }; } @@ -641,7 +639,7 @@ async function resolveCompatiblePackageVersion(params: { version: string; compatibility?: ClawHubPackageCompatibility | null; verification: ClawHubArchiveVerification | null; - storepack?: ClawHubPackageStorePackSummary | null; + clawpack?: ClawHubPackageClawPackSummary | null; } | ClawHubInstallFailure > { @@ -676,7 +674,7 @@ async function resolveCompatiblePackageVersion(params: { compatibility: versionDetail.version?.compatibility ?? params.detail.package?.compatibility ?? null, verification: null, - storepack: versionDetail.version?.storepack ?? null, + clawpack: versionDetail.version?.clawpack ?? null, }; } const verificationState = resolveClawHubArchiveVerification( @@ -693,7 +691,7 @@ async function resolveCompatiblePackageVersion(params: { compatibility: versionDetail.version?.compatibility ?? params.detail.package?.compatibility ?? null, verification: verificationState.verification, - storepack: versionDetail.version?.storepack ?? null, + clawpack: versionDetail.version?.clawpack ?? null, }; } @@ -922,7 +920,7 @@ export async function installPluginFromClawHub( } const pkg = detail.package!; - const storepackFields = normalizeClawHubStorePackInstallFields(versionState.storepack); + const clawpackFields = normalizeClawHubClawPackInstallFields(versionState.clawpack); const clawhubFamily = pkg.family === "code-plugin" || pkg.family === "bundle-plugin" ? pkg.family : null; if (!clawhubFamily) { @@ -948,7 +946,7 @@ export async function installPluginFromClawHub( // server-attested sha256hash from ClawHub version metadata. integrity: archive.integrity, resolvedAt: new Date().toISOString(), - ...storepackFields, + ...clawpackFields, }, }; } finally { diff --git a/src/plugins/installed-plugin-index-install-records.ts b/src/plugins/installed-plugin-index-install-records.ts index 40f893e1d67..923b5c38e15 100644 --- a/src/plugins/installed-plugin-index-install-records.ts +++ b/src/plugins/installed-plugin-index-install-records.ts @@ -52,10 +52,10 @@ function normalizeInstallRecord( setInstallStringField(normalized, "clawhubPackage", record.clawhubPackage); setInstallStringField(normalized, "clawhubFamily", record.clawhubFamily); setInstallStringField(normalized, "clawhubChannel", record.clawhubChannel); - setInstallStringField(normalized, "storepackSha256", record.storepackSha256); - setInstallNumberField(normalized, "storepackSpecVersion", record.storepackSpecVersion); - setInstallStringField(normalized, "storepackManifestSha256", record.storepackManifestSha256); - setInstallNumberField(normalized, "storepackSize", record.storepackSize); + setInstallStringField(normalized, "clawpackSha256", record.clawpackSha256); + setInstallNumberField(normalized, "clawpackSpecVersion", record.clawpackSpecVersion); + setInstallStringField(normalized, "clawpackManifestSha256", record.clawpackManifestSha256); + setInstallNumberField(normalized, "clawpackSize", record.clawpackSize); setInstallStringField(normalized, "gitUrl", record.gitUrl); setInstallStringField(normalized, "gitRef", record.gitRef); setInstallStringField(normalized, "gitCommit", record.gitCommit); diff --git a/src/plugins/installed-plugin-index-records.test.ts b/src/plugins/installed-plugin-index-records.test.ts index cb6776451ad..74636bc6fe3 100644 --- a/src/plugins/installed-plugin-index-records.test.ts +++ b/src/plugins/installed-plugin-index-records.test.ts @@ -192,37 +192,37 @@ describe("plugin index install records store", () => { }); }); - it("preserves ClawHub StorePack install metadata in persisted records", async () => { + it("preserves ClawHub ClawPack install metadata in persisted records", async () => { const stateDir = makeStateDir(); - const candidate = createPluginCandidate(stateDir, "storepack-demo"); + const candidate = createPluginCandidate(stateDir, "clawpack-demo"); await writePersistedInstalledPluginIndexInstallRecords( { - "storepack-demo": { + "clawpack-demo": { source: "clawhub", - spec: "clawhub:storepack-demo", - installPath: path.join(stateDir, "plugins", "storepack-demo"), + spec: "clawhub:clawpack-demo", + installPath: path.join(stateDir, "plugins", "clawpack-demo"), clawhubUrl: "https://clawhub.ai", - clawhubPackage: "storepack-demo", + clawhubPackage: "clawpack-demo", clawhubFamily: "code-plugin", clawhubChannel: "official", - storepackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - storepackSpecVersion: 1, - storepackManifestSha256: + clawpackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + clawpackSpecVersion: 1, + clawpackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", - storepackSize: 4096, + clawpackSize: 4096, }, }, { stateDir, candidates: [candidate] }, ); await expect(loadInstalledPluginIndexInstallRecords({ stateDir })).resolves.toMatchObject({ - "storepack-demo": { + "clawpack-demo": { source: "clawhub", - spec: "clawhub:storepack-demo", - storepackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - storepackSpecVersion: 1, - storepackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", - storepackSize: 4096, + spec: "clawhub:clawpack-demo", + clawpackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + clawpackSpecVersion: 1, + clawpackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + clawpackSize: 4096, }, }); }); diff --git a/src/plugins/installed-plugin-index-types.ts b/src/plugins/installed-plugin-index-types.ts index d9dd458c404..6862eb4b815 100644 --- a/src/plugins/installed-plugin-index-types.ts +++ b/src/plugins/installed-plugin-index-types.ts @@ -48,10 +48,10 @@ export type InstalledPluginInstallRecordInfo = Pick< | "clawhubPackage" | "clawhubFamily" | "clawhubChannel" - | "storepackSha256" - | "storepackSpecVersion" - | "storepackManifestSha256" - | "storepackSize" + | "clawpackSha256" + | "clawpackSpecVersion" + | "clawpackManifestSha256" + | "clawpackSize" | "gitUrl" | "gitRef" | "gitCommit" diff --git a/src/plugins/update.test.ts b/src/plugins/update.test.ts index 16c1839a3ad..9c22b1d114a 100644 --- a/src/plugins/update.test.ts +++ b/src/plugins/update.test.ts @@ -1003,10 +1003,10 @@ describe("updateNpmInstalledPlugins", () => { clawhubChannel: "official", integrity: "sha256-next", resolvedAt: "2026-03-22T00:00:00.000Z", - storepackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - storepackSpecVersion: 1, - storepackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", - storepackSize: 4096, + clawpackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + clawpackSpecVersion: 1, + clawpackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + clawpackSize: 4096, }, }); @@ -1041,10 +1041,10 @@ describe("updateNpmInstalledPlugins", () => { clawhubFamily: "code-plugin", clawhubChannel: "official", integrity: "sha256-next", - storepackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - storepackSpecVersion: 1, - storepackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", - storepackSize: 4096, + clawpackSha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + clawpackSpecVersion: 1, + clawpackManifestSha256: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + clawpackSize: 4096, }); }); diff --git a/src/plugins/update.ts b/src/plugins/update.ts index 97ed99e09ae..ae92b4dce86 100644 --- a/src/plugins/update.ts +++ b/src/plugins/update.ts @@ -938,10 +938,10 @@ export async function updateNpmInstalledPlugins(params: { clawhubPackage: clawhubResult.clawhub.clawhubPackage, clawhubFamily: clawhubResult.clawhub.clawhubFamily, clawhubChannel: clawhubResult.clawhub.clawhubChannel, - storepackSha256: clawhubResult.clawhub.storepackSha256, - storepackSpecVersion: clawhubResult.clawhub.storepackSpecVersion, - storepackManifestSha256: clawhubResult.clawhub.storepackManifestSha256, - storepackSize: clawhubResult.clawhub.storepackSize, + clawpackSha256: clawhubResult.clawhub.clawpackSha256, + clawpackSpecVersion: clawhubResult.clawhub.clawpackSpecVersion, + clawpackManifestSha256: clawhubResult.clawhub.clawpackManifestSha256, + clawpackSize: clawhubResult.clawhub.clawpackSize, }); } else if (record.source === "git") { const gitResult = result as Extract<