🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@nimblebrain/mpak-schemas

Package Overview
Dependencies
Maintainers
2
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nimblebrain/mpak-schemas - npm Package Compare versions

Comparing version
0.1.0
to
0.2.0
+464
-374
dist/index.cjs

@@ -27,4 +27,8 @@ "use strict";

BundleDetailSchema: () => BundleDetailSchema,
BundleDownloadParamsSchema: () => BundleDownloadParamsSchema,
BundleSchema: () => BundleSchema,
BundleSearchParamsSchema: () => BundleSearchParamsSchema,
BundleSearchResponseSchema: () => BundleSearchResponseSchema,
CacheMetadataSchema: () => CacheMetadataSchema,
CapabilitySchema: () => CapabilitySchema,
CertificationSchema: () => CertificationSchema,

@@ -41,2 +45,6 @@ ClaimResponseSchema: () => ClaimResponseSchema,

MPAK_SCHEMA_VERSION: () => MPAK_SCHEMA_VERSION,
ManifestAuthorSchema: () => ManifestAuthorSchema,
ManifestServerSchema: () => ManifestServerSchema,
McpConfigSchema: () => McpConfigSchema,
McpbManifestSchema: () => McpbManifestSchema,
MpakJsonSchema: () => MpakJsonSchema,

@@ -81,2 +89,3 @@ MyPackagesResponseSchema: () => MyPackagesResponseSchema,

UnclaimedPackagesResponseSchema: () => UnclaimedPackagesResponseSchema,
UserConfigFieldSchema: () => UserConfigFieldSchema,
UserProfileSchema: () => UserProfileSchema,

@@ -109,347 +118,412 @@ VersionDetailSchema: () => VersionDetailSchema,

// src/package.ts
var import_zod2 = require("zod");
// src/manifest.ts
var import_zod = require("zod");
var ServerTypeSchema = import_zod.z.enum(["node", "python", "binary"]);
var PlatformSchema = import_zod.z.enum(["darwin", "win32", "linux"]);
var PackageSortSchema = import_zod.z.enum(["downloads", "recent", "name"]);
var PackageSearchParamsSchema = import_zod.z.object({
q: import_zod.z.string().optional(),
var ServerTypeSchema = import_zod.z.enum(["node", "python", "binary", "uv"]);
var UserConfigFieldSchema = import_zod.z.object({
type: import_zod.z.enum(["string", "number", "boolean"]),
title: import_zod.z.string().optional(),
description: import_zod.z.string().optional(),
sensitive: import_zod.z.boolean().optional(),
required: import_zod.z.boolean().optional(),
default: import_zod.z.union([import_zod.z.string(), import_zod.z.number(), import_zod.z.boolean()]).optional()
});
var McpConfigSchema = import_zod.z.object({
command: import_zod.z.string(),
args: import_zod.z.array(import_zod.z.string()),
env: import_zod.z.record(import_zod.z.string(), import_zod.z.string()).optional()
});
var ManifestAuthorSchema = import_zod.z.object({
name: import_zod.z.string(),
email: import_zod.z.string().optional(),
url: import_zod.z.string().optional()
});
var ManifestServerSchema = import_zod.z.object({
type: ServerTypeSchema,
entry_point: import_zod.z.string(),
mcp_config: McpConfigSchema
});
var CapabilitySchema = import_zod.z.object({
name: import_zod.z.string(),
description: import_zod.z.string().optional()
});
var McpbManifestSchema = import_zod.z.object({
manifest_version: import_zod.z.string(),
name: import_zod.z.string(),
version: import_zod.z.string(),
description: import_zod.z.string(),
display_name: import_zod.z.string().optional(),
author: ManifestAuthorSchema.optional(),
homepage: import_zod.z.string().optional(),
license: import_zod.z.string().optional(),
icon: import_zod.z.string().optional(),
repository: import_zod.z.object({
type: import_zod.z.string().optional(),
url: import_zod.z.string().optional()
}).optional(),
user_config: import_zod.z.record(import_zod.z.string(), UserConfigFieldSchema).optional(),
server: ManifestServerSchema,
tools: import_zod.z.array(CapabilitySchema).optional(),
prompts: import_zod.z.array(CapabilitySchema).optional(),
resources: import_zod.z.array(CapabilitySchema).optional(),
_meta: import_zod.z.record(import_zod.z.string(), import_zod.z.unknown()).optional()
});
// src/package.ts
var PlatformSchema = import_zod2.z.enum(["darwin", "win32", "linux"]);
var PackageSortSchema = import_zod2.z.enum(["downloads", "recent", "name"]);
var PackageSearchParamsSchema = import_zod2.z.object({
q: import_zod2.z.string().optional(),
type: ServerTypeSchema.optional(),
tool: import_zod.z.string().optional(),
prompt: import_zod.z.string().optional(),
tool: import_zod2.z.string().optional(),
prompt: import_zod2.z.string().optional(),
platform: PlatformSchema.optional(),
sort: PackageSortSchema.optional(),
limit: import_zod.z.union([import_zod.z.string(), import_zod.z.number()]).optional(),
offset: import_zod.z.union([import_zod.z.string(), import_zod.z.number()]).optional()
limit: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.number()]).optional(),
offset: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.number()]).optional()
});
var BundleSearchParamsSchema = import_zod2.z.object({
q: import_zod2.z.string().max(200).optional(),
type: ServerTypeSchema.optional(),
sort: PackageSortSchema.optional().default("downloads"),
limit: import_zod2.z.number().min(1).max(100).optional().default(20),
offset: import_zod2.z.number().min(0).optional().default(0)
});
var BundleDownloadParamsSchema = import_zod2.z.object({
os: import_zod2.z.enum(["darwin", "linux", "win32"]).describe("Target OS (darwin, linux, win32)").optional(),
arch: import_zod2.z.enum(["x64", "arm64"]).describe("Target arch (x64, arm64)").optional()
});
// src/api-responses.ts
var import_zod2 = require("zod");
var PackageAuthorSchema = import_zod2.z.object({
name: import_zod2.z.string()
var import_zod3 = require("zod");
var PackageAuthorSchema = import_zod3.z.object({
name: import_zod3.z.string()
});
var PackageToolSchema = import_zod2.z.object({
name: import_zod2.z.string(),
description: import_zod2.z.string().optional()
var PackageToolSchema = import_zod3.z.object({
name: import_zod3.z.string(),
description: import_zod3.z.string().optional()
});
var PackageGitHubSchema = import_zod2.z.object({
repo: import_zod2.z.string(),
stars: import_zod2.z.number().nullable(),
forks: import_zod2.z.number().nullable(),
watchers: import_zod2.z.number().nullable(),
updated_at: import_zod2.z.string().nullable().optional()
var PackageGitHubSchema = import_zod3.z.object({
repo: import_zod3.z.string(),
stars: import_zod3.z.number().nullable(),
forks: import_zod3.z.number().nullable(),
watchers: import_zod3.z.number().nullable(),
updated_at: import_zod3.z.string().nullable().optional()
});
var PaginationSchema = import_zod2.z.object({
limit: import_zod2.z.number(),
offset: import_zod2.z.number(),
has_more: import_zod2.z.boolean()
var PaginationSchema = import_zod3.z.object({
limit: import_zod3.z.number(),
offset: import_zod3.z.number(),
has_more: import_zod3.z.boolean()
});
var PackageSchema = import_zod2.z.object({
name: import_zod2.z.string(),
display_name: import_zod2.z.string().nullable(),
description: import_zod2.z.string().nullable(),
var PackageSchema = import_zod3.z.object({
name: import_zod3.z.string(),
display_name: import_zod3.z.string().nullable(),
description: import_zod3.z.string().nullable(),
author: PackageAuthorSchema.nullable(),
latest_version: import_zod2.z.string(),
icon: import_zod2.z.string().nullable(),
server_type: import_zod2.z.string(),
tools: import_zod2.z.array(PackageToolSchema),
downloads: import_zod2.z.number(),
published_at: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.date()]),
verified: import_zod2.z.boolean(),
claimable: import_zod2.z.boolean().optional(),
claimed: import_zod2.z.boolean().optional(),
latest_version: import_zod3.z.string(),
icon: import_zod3.z.string().nullable(),
server_type: import_zod3.z.string(),
tools: import_zod3.z.array(PackageToolSchema),
downloads: import_zod3.z.number(),
published_at: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()]),
verified: import_zod3.z.boolean(),
claimable: import_zod3.z.boolean().optional(),
claimed: import_zod3.z.boolean().optional(),
github: PackageGitHubSchema.nullable().optional(),
certification_level: import_zod2.z.number().nullable().optional()
certification_level: import_zod3.z.number().nullable().optional()
});
var ArtifactSchema = import_zod2.z.object({
os: import_zod2.z.string(),
arch: import_zod2.z.string(),
size_bytes: import_zod2.z.number(),
digest: import_zod2.z.string(),
downloads: import_zod2.z.number()
var ArtifactSchema = import_zod3.z.object({
os: import_zod3.z.string(),
arch: import_zod3.z.string(),
size_bytes: import_zod3.z.number(),
digest: import_zod3.z.string(),
downloads: import_zod3.z.number()
});
var ProvenanceSchema = import_zod2.z.object({
publish_method: import_zod2.z.string().nullable(),
repository: import_zod2.z.string().nullable(),
sha: import_zod2.z.string().nullable()
var ProvenanceSchema = import_zod3.z.object({
publish_method: import_zod3.z.string().nullable(),
repository: import_zod3.z.string().nullable(),
sha: import_zod3.z.string().nullable()
});
var CertificationSchema = import_zod2.z.object({
level: import_zod2.z.number().nullable(),
level_name: import_zod2.z.string().nullable(),
controls_passed: import_zod2.z.number().nullable(),
controls_failed: import_zod2.z.number().nullable(),
controls_total: import_zod2.z.number().nullable()
var CertificationSchema = import_zod3.z.object({
level: import_zod3.z.number().nullable(),
level_name: import_zod3.z.string().nullable(),
controls_passed: import_zod3.z.number().nullable(),
controls_failed: import_zod3.z.number().nullable(),
controls_total: import_zod3.z.number().nullable()
});
var ScorecardFindingSchema = import_zod2.z.object({
id: import_zod2.z.string(),
control: import_zod2.z.string(),
severity: import_zod2.z.enum(["critical", "high", "medium", "low", "info"]),
title: import_zod2.z.string(),
description: import_zod2.z.string(),
file: import_zod2.z.string().nullable(),
line: import_zod2.z.number().nullable(),
remediation: import_zod2.z.string().nullable()
var ScorecardFindingSchema = import_zod3.z.object({
id: import_zod3.z.string(),
control: import_zod3.z.string(),
severity: import_zod3.z.enum(["critical", "high", "medium", "low", "info"]),
title: import_zod3.z.string(),
description: import_zod3.z.string(),
file: import_zod3.z.string().nullable(),
line: import_zod3.z.number().nullable(),
remediation: import_zod3.z.string().nullable()
});
var DomainControlSchema = import_zod2.z.object({
status: import_zod2.z.enum(["pass", "fail", "skip", "error"]),
name: import_zod2.z.string(),
findings_count: import_zod2.z.number()
var DomainControlSchema = import_zod3.z.object({
status: import_zod3.z.enum(["pass", "fail", "skip", "error"]),
name: import_zod3.z.string(),
findings_count: import_zod3.z.number()
});
var SecurityDomainSchema = import_zod2.z.object({
display_name: import_zod2.z.string(),
controls_passed: import_zod2.z.number(),
controls_total: import_zod2.z.number(),
controls: import_zod2.z.record(import_zod2.z.string(), DomainControlSchema)
var SecurityDomainSchema = import_zod3.z.object({
display_name: import_zod3.z.string(),
controls_passed: import_zod3.z.number(),
controls_total: import_zod3.z.number(),
controls: import_zod3.z.record(import_zod3.z.string(), DomainControlSchema)
});
var SecurityScanSchema = import_zod2.z.object({
status: import_zod2.z.enum(["pending", "scanning", "completed", "failed"]),
risk_score: import_zod2.z.enum(["CRITICAL", "HIGH", "MEDIUM", "LOW"]).nullable(),
scanned_at: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.date()]).nullable(),
var SecurityScanSchema = import_zod3.z.object({
status: import_zod3.z.enum(["pending", "scanning", "completed", "failed"]),
risk_score: import_zod3.z.enum(["CRITICAL", "HIGH", "MEDIUM", "LOW"]).nullable(),
scanned_at: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()]).nullable(),
scanner_version: import_zod3.z.string().nullable().optional(),
certification: CertificationSchema.nullable().optional(),
summary: import_zod2.z.object({
components: import_zod2.z.number(),
vulnerabilities: import_zod2.z.object({
critical: import_zod2.z.number(),
high: import_zod2.z.number(),
medium: import_zod2.z.number(),
low: import_zod2.z.number()
summary: import_zod3.z.object({
components: import_zod3.z.number(),
vulnerabilities: import_zod3.z.object({
critical: import_zod3.z.number(),
high: import_zod3.z.number(),
medium: import_zod3.z.number(),
low: import_zod3.z.number()
}),
secrets: import_zod2.z.number(),
malicious: import_zod2.z.number(),
code_issues: import_zod2.z.number()
secrets: import_zod3.z.number(),
malicious: import_zod3.z.number(),
code_issues: import_zod3.z.number()
}).optional(),
domains: import_zod2.z.record(import_zod2.z.string(), SecurityDomainSchema).optional(),
findings: import_zod2.z.array(ScorecardFindingSchema).optional()
domains: import_zod3.z.record(import_zod3.z.string(), SecurityDomainSchema).optional(),
findings: import_zod3.z.array(ScorecardFindingSchema).optional()
});
var PackageVersionSchema = import_zod2.z.object({
version: import_zod2.z.string(),
published_at: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.date()]),
downloads: import_zod2.z.number(),
artifacts: import_zod2.z.array(ArtifactSchema).optional(),
readme: import_zod2.z.string().nullable().optional(),
var PackageVersionSchema = import_zod3.z.object({
version: import_zod3.z.string(),
published_at: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()]),
downloads: import_zod3.z.number(),
artifacts: import_zod3.z.array(ArtifactSchema).optional(),
readme: import_zod3.z.string().nullable().optional(),
provenance: ProvenanceSchema.nullable().optional(),
release_url: import_zod2.z.string().nullable().optional(),
prerelease: import_zod2.z.boolean().optional(),
manifest: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown()).nullable().optional(),
release_url: import_zod3.z.string().nullable().optional(),
prerelease: import_zod3.z.boolean().optional(),
manifest: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()).nullable().optional(),
security_scan: SecurityScanSchema.nullable().optional()
});
var PackageClaimingSchema = import_zod2.z.object({
claimable: import_zod2.z.boolean(),
claimed: import_zod2.z.boolean(),
claimed_by: import_zod2.z.string().nullable(),
claimed_at: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.date()]).nullable(),
github_repo: import_zod2.z.string().nullable()
var PackageClaimingSchema = import_zod3.z.object({
claimable: import_zod3.z.boolean(),
claimed: import_zod3.z.boolean(),
claimed_by: import_zod3.z.string().nullable(),
claimed_at: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()]).nullable(),
github_repo: import_zod3.z.string().nullable()
});
var PackageDetailSchema = PackageSchema.extend({
homepage: import_zod2.z.string().nullable(),
license: import_zod2.z.string().nullable(),
homepage: import_zod3.z.string().nullable(),
license: import_zod3.z.string().nullable(),
claiming: PackageClaimingSchema,
versions: import_zod2.z.array(PackageVersionSchema)
versions: import_zod3.z.array(PackageVersionSchema)
});
var PackageSearchResponseSchema = import_zod2.z.object({
packages: import_zod2.z.array(PackageSchema),
total: import_zod2.z.number()
var PackageSearchResponseSchema = import_zod3.z.object({
packages: import_zod3.z.array(PackageSchema),
total: import_zod3.z.number()
});
var PlatformInfoSchema = import_zod2.z.object({
os: import_zod2.z.string(),
arch: import_zod2.z.string()
var PlatformInfoSchema = import_zod3.z.object({
os: import_zod3.z.string(),
arch: import_zod3.z.string()
});
var FullProvenanceSchema = import_zod2.z.object({
schema_version: import_zod2.z.string(),
provider: import_zod2.z.string(),
repository: import_zod2.z.string(),
sha: import_zod2.z.string()
var FullProvenanceSchema = import_zod3.z.object({
schema_version: import_zod3.z.string(),
provider: import_zod3.z.string(),
repository: import_zod3.z.string(),
sha: import_zod3.z.string()
});
var BundleSchema = import_zod2.z.object({
name: import_zod2.z.string(),
display_name: import_zod2.z.string().nullable().optional(),
description: import_zod2.z.string().nullable().optional(),
var BundleSchema = import_zod3.z.object({
name: import_zod3.z.string(),
display_name: import_zod3.z.string().nullable().optional(),
description: import_zod3.z.string().nullable().optional(),
author: PackageAuthorSchema.nullable().optional(),
latest_version: import_zod2.z.string(),
icon: import_zod2.z.string().nullable().optional(),
server_type: import_zod2.z.string().nullable().optional(),
tools: import_zod2.z.array(PackageToolSchema).optional(),
downloads: import_zod2.z.number(),
published_at: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.date()]),
verified: import_zod2.z.boolean(),
latest_version: import_zod3.z.string(),
icon: import_zod3.z.string().nullable().optional(),
server_type: import_zod3.z.string().nullable().optional(),
tools: import_zod3.z.array(PackageToolSchema).optional(),
downloads: import_zod3.z.number(),
published_at: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()]),
verified: import_zod3.z.boolean(),
provenance: FullProvenanceSchema.nullable().optional(),
certification_level: import_zod2.z.number().nullable().optional()
certification_level: import_zod3.z.number().nullable().optional()
});
var BundleDetailSchema = BundleSchema.extend({
homepage: import_zod2.z.string().nullable().optional(),
license: import_zod2.z.string().nullable().optional(),
homepage: import_zod3.z.string().nullable().optional(),
license: import_zod3.z.string().nullable().optional(),
certification: CertificationSchema.nullable().optional(),
versions: import_zod2.z.array(
import_zod2.z.object({
version: import_zod2.z.string(),
published_at: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.date()]),
downloads: import_zod2.z.number()
versions: import_zod3.z.array(
import_zod3.z.object({
version: import_zod3.z.string(),
published_at: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()]),
downloads: import_zod3.z.number()
})
)
});
var BundleSearchResponseSchema = import_zod2.z.object({
bundles: import_zod2.z.array(BundleSchema),
total: import_zod2.z.number(),
pagination: import_zod2.z.object({
limit: import_zod2.z.number(),
offset: import_zod2.z.number(),
has_more: import_zod2.z.boolean()
var BundleSearchResponseSchema = import_zod3.z.object({
bundles: import_zod3.z.array(BundleSchema),
total: import_zod3.z.number(),
pagination: import_zod3.z.object({
limit: import_zod3.z.number(),
offset: import_zod3.z.number(),
has_more: import_zod3.z.boolean()
})
});
var VersionInfoSchema = import_zod2.z.object({
version: import_zod2.z.string(),
artifacts_count: import_zod2.z.number(),
platforms: import_zod2.z.array(PlatformInfoSchema),
published_at: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.date()]),
downloads: import_zod2.z.number(),
publish_method: import_zod2.z.string().nullable(),
var VersionInfoSchema = import_zod3.z.object({
version: import_zod3.z.string(),
artifacts_count: import_zod3.z.number(),
platforms: import_zod3.z.array(PlatformInfoSchema),
published_at: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()]),
downloads: import_zod3.z.number(),
publish_method: import_zod3.z.string().nullable(),
provenance: FullProvenanceSchema.nullable().optional()
});
var VersionsResponseSchema = import_zod2.z.object({
name: import_zod2.z.string(),
latest: import_zod2.z.string(),
versions: import_zod2.z.array(VersionInfoSchema)
var VersionsResponseSchema = import_zod3.z.object({
name: import_zod3.z.string(),
latest: import_zod3.z.string(),
versions: import_zod3.z.array(VersionInfoSchema)
});
var DownloadInfoSchema = import_zod2.z.object({
url: import_zod2.z.string(),
bundle: import_zod2.z.object({
name: import_zod2.z.string(),
version: import_zod2.z.string(),
var DownloadInfoSchema = import_zod3.z.object({
url: import_zod3.z.string(),
bundle: import_zod3.z.object({
name: import_zod3.z.string(),
version: import_zod3.z.string(),
platform: PlatformInfoSchema,
sha256: import_zod2.z.string(),
size: import_zod2.z.number()
sha256: import_zod3.z.string(),
size: import_zod3.z.number()
}),
expires_at: import_zod2.z.string().optional()
expires_at: import_zod3.z.string().optional()
});
var VersionDetailSchema = import_zod2.z.object({
name: import_zod2.z.string(),
version: import_zod2.z.string(),
published_at: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.date()]),
downloads: import_zod2.z.number(),
artifacts: import_zod2.z.array(
import_zod2.z.object({
var VersionDetailSchema = import_zod3.z.object({
name: import_zod3.z.string(),
version: import_zod3.z.string(),
published_at: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()]),
downloads: import_zod3.z.number(),
artifacts: import_zod3.z.array(
import_zod3.z.object({
platform: PlatformInfoSchema,
digest: import_zod2.z.string(),
size: import_zod2.z.number(),
download_url: import_zod2.z.string(),
source_url: import_zod2.z.string().optional()
digest: import_zod3.z.string(),
size: import_zod3.z.number(),
download_url: import_zod3.z.string(),
source_url: import_zod3.z.string().optional()
})
),
manifest: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown()),
release: import_zod2.z.object({
tag: import_zod2.z.string().nullable(),
url: import_zod2.z.string().nullable()
manifest: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()),
release: import_zod3.z.object({
tag: import_zod3.z.string().nullable(),
url: import_zod3.z.string().nullable()
}).optional(),
publish_method: import_zod2.z.string().nullable(),
publish_method: import_zod3.z.string().nullable(),
provenance: FullProvenanceSchema.nullable()
});
var MCPBIndexSchema = import_zod2.z.object({
index_version: import_zod2.z.string(),
mimeType: import_zod2.z.string(),
name: import_zod2.z.string(),
version: import_zod2.z.string(),
description: import_zod2.z.string().nullable(),
bundles: import_zod2.z.array(
import_zod2.z.object({
mimeType: import_zod2.z.string().nullable(),
digest: import_zod2.z.string(),
size: import_zod2.z.number(),
var MCPBIndexSchema = import_zod3.z.object({
index_version: import_zod3.z.string(),
mimeType: import_zod3.z.string(),
name: import_zod3.z.string(),
version: import_zod3.z.string(),
description: import_zod3.z.string().nullable(),
bundles: import_zod3.z.array(
import_zod3.z.object({
mimeType: import_zod3.z.string().nullable(),
digest: import_zod3.z.string(),
size: import_zod3.z.number(),
platform: PlatformInfoSchema,
urls: import_zod2.z.array(import_zod2.z.string())
urls: import_zod3.z.array(import_zod3.z.string())
})
),
annotations: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.string()).optional()
annotations: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.string()).optional()
});
var AnnounceRequestSchema = import_zod2.z.object({
name: import_zod2.z.string(),
version: import_zod2.z.string(),
manifest: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown()),
release_tag: import_zod2.z.string(),
prerelease: import_zod2.z.boolean().optional().default(false),
artifact: import_zod2.z.object({
filename: import_zod2.z.string(),
os: import_zod2.z.string(),
arch: import_zod2.z.string(),
sha256: import_zod2.z.string(),
size: import_zod2.z.number()
var AnnounceRequestSchema = import_zod3.z.object({
name: import_zod3.z.string(),
version: import_zod3.z.string(),
manifest: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()),
release_tag: import_zod3.z.string(),
prerelease: import_zod3.z.boolean().optional().default(false),
artifact: import_zod3.z.object({
filename: import_zod3.z.string(),
os: import_zod3.z.string(),
arch: import_zod3.z.string(),
sha256: import_zod3.z.string(),
size: import_zod3.z.number()
})
});
var AnnounceResponseSchema = import_zod2.z.object({
package: import_zod2.z.string(),
version: import_zod2.z.string(),
artifact: import_zod2.z.object({
os: import_zod2.z.string(),
arch: import_zod2.z.string(),
filename: import_zod2.z.string()
var AnnounceResponseSchema = import_zod3.z.object({
package: import_zod3.z.string(),
version: import_zod3.z.string(),
artifact: import_zod3.z.object({
os: import_zod3.z.string(),
arch: import_zod3.z.string(),
filename: import_zod3.z.string()
}),
total_artifacts: import_zod2.z.number(),
status: import_zod2.z.enum(["created", "updated"])
total_artifacts: import_zod3.z.number(),
status: import_zod3.z.enum(["created", "updated"])
});
var PublishResponseSchema = import_zod2.z.object({
success: import_zod2.z.boolean(),
package: import_zod2.z.object({
name: import_zod2.z.string(),
version: import_zod2.z.string(),
manifest: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown())
var PublishResponseSchema = import_zod3.z.object({
success: import_zod3.z.boolean(),
package: import_zod3.z.object({
name: import_zod3.z.string(),
version: import_zod3.z.string(),
manifest: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown())
}),
sha256: import_zod2.z.string(),
size: import_zod2.z.number(),
url: import_zod2.z.string(),
auto_claimed: import_zod2.z.boolean().optional(),
message: import_zod2.z.string().optional()
sha256: import_zod3.z.string(),
size: import_zod3.z.number(),
url: import_zod3.z.string(),
auto_claimed: import_zod3.z.boolean().optional(),
message: import_zod3.z.string().optional()
});
var InternalDownloadResponseSchema = import_zod2.z.object({
url: import_zod2.z.string(),
package: import_zod2.z.object({
name: import_zod2.z.string(),
version: import_zod2.z.string(),
sha256: import_zod2.z.string(),
size: import_zod2.z.number()
var InternalDownloadResponseSchema = import_zod3.z.object({
url: import_zod3.z.string(),
package: import_zod3.z.object({
name: import_zod3.z.string(),
version: import_zod3.z.string(),
sha256: import_zod3.z.string(),
size: import_zod3.z.number()
}),
expires_at: import_zod2.z.string()
expires_at: import_zod3.z.string()
});
var ClaimStatusResponseSchema = import_zod2.z.object({
claimable: import_zod2.z.boolean(),
reason: import_zod2.z.string().optional(),
claimed_by: import_zod2.z.string().nullable().optional(),
claimed_at: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.date()]).nullable().optional(),
package_name: import_zod2.z.string().optional(),
github_repo: import_zod2.z.string().nullable().optional(),
instructions: import_zod2.z.object({
steps: import_zod2.z.array(import_zod2.z.string()),
mpak_json_example: import_zod2.z.string(),
verification_url: import_zod2.z.string().nullable()
var ClaimStatusResponseSchema = import_zod3.z.object({
claimable: import_zod3.z.boolean(),
reason: import_zod3.z.string().optional(),
claimed_by: import_zod3.z.string().nullable().optional(),
claimed_at: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()]).nullable().optional(),
package_name: import_zod3.z.string().optional(),
github_repo: import_zod3.z.string().nullable().optional(),
instructions: import_zod3.z.object({
steps: import_zod3.z.array(import_zod3.z.string()),
mpak_json_example: import_zod3.z.string(),
verification_url: import_zod3.z.string().nullable()
}).optional()
});
var ClaimResponseSchema = import_zod2.z.object({
success: import_zod2.z.boolean(),
message: import_zod2.z.string(),
package: import_zod2.z.object({
name: import_zod2.z.string(),
claimed_by: import_zod2.z.string().nullable(),
claimed_at: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.date()]).nullable(),
github_repo: import_zod2.z.string().nullable()
var ClaimResponseSchema = import_zod3.z.object({
success: import_zod3.z.boolean(),
message: import_zod3.z.string(),
package: import_zod3.z.object({
name: import_zod3.z.string(),
claimed_by: import_zod3.z.string().nullable(),
claimed_at: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()]).nullable(),
github_repo: import_zod3.z.string().nullable()
}),
verification: import_zod2.z.object({
mpak_json_url: import_zod2.z.string().nullable().optional(),
verified_at: import_zod2.z.string()
verification: import_zod3.z.object({
mpak_json_url: import_zod3.z.string().nullable().optional(),
verified_at: import_zod3.z.string()
})
});
var MyPackagesResponseSchema = import_zod2.z.object({
packages: import_zod2.z.array(PackageSchema),
total: import_zod2.z.number(),
var MyPackagesResponseSchema = import_zod3.z.object({
packages: import_zod3.z.array(PackageSchema),
total: import_zod3.z.number(),
pagination: PaginationSchema
});
var UnclaimedPackageSchema = import_zod2.z.object({
name: import_zod2.z.string(),
display_name: import_zod2.z.string().nullable(),
description: import_zod2.z.string().nullable(),
server_type: import_zod2.z.string().nullable(),
latest_version: import_zod2.z.string(),
downloads: import_zod2.z.number(),
github_repo: import_zod2.z.string().nullable(),
created_at: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.date()])
var UnclaimedPackageSchema = import_zod3.z.object({
name: import_zod3.z.string(),
display_name: import_zod3.z.string().nullable(),
description: import_zod3.z.string().nullable(),
server_type: import_zod3.z.string().nullable(),
latest_version: import_zod3.z.string(),
downloads: import_zod3.z.number(),
github_repo: import_zod3.z.string().nullable(),
created_at: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()])
});
var UnclaimedPackagesResponseSchema = import_zod2.z.object({
packages: import_zod2.z.array(UnclaimedPackageSchema),
total: import_zod2.z.number(),
var UnclaimedPackagesResponseSchema = import_zod3.z.object({
packages: import_zod3.z.array(UnclaimedPackageSchema),
total: import_zod3.z.number(),
pagination: PaginationSchema

@@ -459,28 +533,28 @@ });

// src/auth.ts
var import_zod3 = require("zod");
var UserProfileSchema = import_zod3.z.object({
id: import_zod3.z.string(),
email: import_zod3.z.string().email(),
emailVerified: import_zod3.z.boolean(),
username: import_zod3.z.string().nullable(),
name: import_zod3.z.string().nullable(),
avatarUrl: import_zod3.z.string().nullable(),
githubUsername: import_zod3.z.string().nullable(),
githubLinked: import_zod3.z.boolean(),
verified: import_zod3.z.boolean(),
publishedBundles: import_zod3.z.number(),
totalDownloads: import_zod3.z.number(),
role: import_zod3.z.string().nullable(),
createdAt: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()]).nullable(),
lastLoginAt: import_zod3.z.union([import_zod3.z.string(), import_zod3.z.date()]).nullable()
var import_zod4 = require("zod");
var UserProfileSchema = import_zod4.z.object({
id: import_zod4.z.string(),
email: import_zod4.z.string().email(),
emailVerified: import_zod4.z.boolean(),
username: import_zod4.z.string().nullable(),
name: import_zod4.z.string().nullable(),
avatarUrl: import_zod4.z.string().nullable(),
githubUsername: import_zod4.z.string().nullable(),
githubLinked: import_zod4.z.boolean(),
verified: import_zod4.z.boolean(),
publishedBundles: import_zod4.z.number(),
totalDownloads: import_zod4.z.number(),
role: import_zod4.z.string().nullable(),
createdAt: import_zod4.z.union([import_zod4.z.string(), import_zod4.z.date()]).nullable(),
lastLoginAt: import_zod4.z.union([import_zod4.z.string(), import_zod4.z.date()]).nullable()
});
// src/skill.ts
var import_zod4 = require("zod");
var SkillNameSchema = import_zod4.z.string().min(1).max(64).regex(
var import_zod5 = require("zod");
var SkillNameSchema = import_zod5.z.string().min(1).max(64).regex(
/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,
"Lowercase alphanumeric with single hyphens, cannot start/end with hyphen"
);
var SkillDescriptionSchema = import_zod4.z.string().min(1).max(1024);
var SkillCategorySchema = import_zod4.z.enum([
var SkillDescriptionSchema = import_zod5.z.string().min(1).max(1024);
var SkillCategorySchema = import_zod5.z.enum([
"development",

@@ -496,112 +570,110 @@ "writing",

]);
var SkillAuthorSchema = import_zod4.z.object({
name: import_zod4.z.string().min(1),
url: import_zod4.z.string().url().optional(),
email: import_zod4.z.string().email().optional()
var SkillAuthorSchema = import_zod5.z.object({
name: import_zod5.z.string().min(1),
url: import_zod5.z.string().url().optional(),
email: import_zod5.z.string().email().optional()
});
var SkillExampleSchema = import_zod4.z.object({
prompt: import_zod4.z.string().min(1),
context: import_zod4.z.string().optional()
var SkillExampleSchema = import_zod5.z.object({
prompt: import_zod5.z.string().min(1),
context: import_zod5.z.string().optional()
});
var SkillDiscoveryMetadataSchema = import_zod4.z.object({
tags: import_zod4.z.array(import_zod4.z.string().max(32)).max(10).optional(),
var SkillDiscoveryMetadataSchema = import_zod5.z.object({
tags: import_zod5.z.array(import_zod5.z.string().max(32)).max(10).optional(),
category: SkillCategorySchema.optional(),
triggers: import_zod4.z.array(import_zod4.z.string().max(128)).max(20).optional(),
keywords: import_zod4.z.array(import_zod4.z.string().max(32)).max(30).optional(),
triggers: import_zod5.z.array(import_zod5.z.string().max(128)).max(20).optional(),
keywords: import_zod5.z.array(import_zod5.z.string().max(32)).max(30).optional(),
author: SkillAuthorSchema.optional(),
version: import_zod4.z.string().optional(),
examples: import_zod4.z.array(SkillExampleSchema).max(5).optional()
version: import_zod5.z.string().optional(),
examples: import_zod5.z.array(SkillExampleSchema).max(5).optional()
}).passthrough();
var SkillFrontmatterSchema = import_zod4.z.object({
var SkillFrontmatterSchema = import_zod5.z.object({
name: SkillNameSchema,
description: SkillDescriptionSchema,
license: import_zod4.z.string().optional(),
compatibility: import_zod4.z.string().max(500).optional(),
"allowed-tools": import_zod4.z.string().optional(),
version: import_zod5.z.string().optional(),
license: import_zod5.z.string().optional(),
compatibility: import_zod5.z.string().max(500).optional(),
"allowed-tools": import_zod5.z.string().optional(),
metadata: SkillDiscoveryMetadataSchema.optional()
});
var ScopedSkillNameSchema = import_zod4.z.string().regex(
/^@[a-z0-9][a-z0-9-]*\/[a-z0-9][a-z0-9-]*$/,
"Scoped name format: @scope/name"
);
var SkillArtifactSchema = import_zod4.z.object({
filename: import_zod4.z.string().regex(/\.skill$/, "Must have .skill extension"),
sha256: import_zod4.z.string().length(64),
size: import_zod4.z.number().int().positive()
var ScopedSkillNameSchema = import_zod5.z.string().regex(/^@[a-z0-9][a-z0-9-]*\/[a-z0-9][a-z0-9-]*$/, "Scoped name format: @scope/name");
var SkillArtifactSchema = import_zod5.z.object({
filename: import_zod5.z.string().regex(/\.skill$/, "Must have .skill extension"),
sha256: import_zod5.z.string().length(64),
size: import_zod5.z.number().int().positive()
});
var SkillAnnounceRequestSchema = import_zod4.z.object({
var SkillAnnounceRequestSchema = import_zod5.z.object({
name: ScopedSkillNameSchema,
version: import_zod4.z.string(),
version: import_zod5.z.string(),
skill: SkillFrontmatterSchema,
release_tag: import_zod4.z.string(),
prerelease: import_zod4.z.boolean().optional().default(false),
release_tag: import_zod5.z.string(),
prerelease: import_zod5.z.boolean().optional().default(false),
artifact: SkillArtifactSchema
});
var SkillAnnounceResponseSchema = import_zod4.z.object({
skill: import_zod4.z.string(),
version: import_zod4.z.string(),
status: import_zod4.z.enum(["created", "exists"])
var SkillAnnounceResponseSchema = import_zod5.z.object({
skill: import_zod5.z.string(),
version: import_zod5.z.string(),
status: import_zod5.z.enum(["created", "exists"])
});
var SkillSearchParamsSchema = import_zod4.z.object({
q: import_zod4.z.string().optional(),
tags: import_zod4.z.string().optional(),
var SkillSearchParamsSchema = import_zod5.z.object({
q: import_zod5.z.string().optional(),
tags: import_zod5.z.string().optional(),
category: SkillCategorySchema.optional(),
sort: import_zod4.z.enum(["downloads", "recent", "name"]).optional(),
limit: import_zod4.z.union([import_zod4.z.string(), import_zod4.z.number()]).optional(),
offset: import_zod4.z.union([import_zod4.z.string(), import_zod4.z.number()]).optional()
sort: import_zod5.z.enum(["downloads", "recent", "name"]).optional(),
limit: import_zod5.z.union([import_zod5.z.string(), import_zod5.z.number()]).optional(),
offset: import_zod5.z.union([import_zod5.z.string(), import_zod5.z.number()]).optional()
});
var SkillSummarySchema = import_zod4.z.object({
name: import_zod4.z.string(),
description: import_zod4.z.string(),
latest_version: import_zod4.z.string(),
tags: import_zod4.z.array(import_zod4.z.string()).optional(),
var SkillSummarySchema = import_zod5.z.object({
name: import_zod5.z.string(),
description: import_zod5.z.string(),
latest_version: import_zod5.z.string(),
tags: import_zod5.z.array(import_zod5.z.string()).optional(),
category: SkillCategorySchema.optional(),
downloads: import_zod4.z.number(),
published_at: import_zod4.z.string(),
downloads: import_zod5.z.number(),
published_at: import_zod5.z.string(),
author: SkillAuthorSchema.optional()
});
var SkillSearchResponseSchema = import_zod4.z.object({
skills: import_zod4.z.array(SkillSummarySchema),
total: import_zod4.z.number(),
pagination: import_zod4.z.object({
limit: import_zod4.z.number(),
offset: import_zod4.z.number(),
has_more: import_zod4.z.boolean()
var SkillSearchResponseSchema = import_zod5.z.object({
skills: import_zod5.z.array(SkillSummarySchema),
total: import_zod5.z.number(),
pagination: import_zod5.z.object({
limit: import_zod5.z.number(),
offset: import_zod5.z.number(),
has_more: import_zod5.z.boolean()
})
});
var SkillDetailSchema = import_zod4.z.object({
name: import_zod4.z.string(),
description: import_zod4.z.string(),
latest_version: import_zod4.z.string(),
license: import_zod4.z.string().optional(),
compatibility: import_zod4.z.string().optional(),
allowed_tools: import_zod4.z.array(import_zod4.z.string()).optional(),
tags: import_zod4.z.array(import_zod4.z.string()).optional(),
var SkillDetailSchema = import_zod5.z.object({
name: import_zod5.z.string(),
description: import_zod5.z.string(),
latest_version: import_zod5.z.string(),
license: import_zod5.z.string().optional(),
compatibility: import_zod5.z.string().optional(),
allowed_tools: import_zod5.z.array(import_zod5.z.string()).optional(),
tags: import_zod5.z.array(import_zod5.z.string()).optional(),
category: SkillCategorySchema.optional(),
triggers: import_zod4.z.array(import_zod4.z.string()).optional(),
downloads: import_zod4.z.number(),
published_at: import_zod4.z.string(),
triggers: import_zod5.z.array(import_zod5.z.string()).optional(),
downloads: import_zod5.z.number(),
published_at: import_zod5.z.string(),
author: SkillAuthorSchema.optional(),
examples: import_zod4.z.array(SkillExampleSchema).optional(),
versions: import_zod4.z.array(
import_zod4.z.object({
version: import_zod4.z.string(),
published_at: import_zod4.z.string(),
downloads: import_zod4.z.number()
examples: import_zod5.z.array(SkillExampleSchema).optional(),
versions: import_zod5.z.array(
import_zod5.z.object({
version: import_zod5.z.string(),
published_at: import_zod5.z.string(),
downloads: import_zod5.z.number()
})
)
});
var SkillDownloadInfoSchema = import_zod4.z.object({
url: import_zod4.z.string(),
skill: import_zod4.z.object({
name: import_zod4.z.string(),
version: import_zod4.z.string(),
sha256: import_zod4.z.string(),
size: import_zod4.z.number()
var SkillDownloadInfoSchema = import_zod5.z.object({
url: import_zod5.z.string(),
skill: import_zod5.z.object({
name: import_zod5.z.string(),
version: import_zod5.z.string(),
sha256: import_zod5.z.string(),
size: import_zod5.z.number()
}),
expires_at: import_zod4.z.string()
expires_at: import_zod5.z.string()
});
// src/mpak-json.ts
var import_zod5 = require("zod");
var import_zod6 = require("zod");
var MPAK_SCHEMA_VERSION = "2025-10-19";

@@ -611,12 +683,12 @@ var MPAK_SCHEMA_URL = `https://cdn.mpak.dev/schemas/${MPAK_SCHEMA_VERSION}/mpak.json`;

var GitHubUsernamePattern = /^[a-z0-9][a-z0-9-]{0,38}$/i;
var MpakJsonSchema = import_zod5.z.object({
$schema: import_zod5.z.string().optional(),
name: import_zod5.z.string().regex(
var MpakJsonSchema = import_zod6.z.object({
$schema: import_zod6.z.string().optional(),
name: import_zod6.z.string().regex(
ScopedPackageNamePattern,
"Package name must be scoped (e.g., @username/package-name)"
),
maintainers: import_zod5.z.array(
import_zod5.z.string().regex(GitHubUsernamePattern, "Must be a valid GitHub username")
maintainers: import_zod6.z.array(
import_zod6.z.string().regex(GitHubUsernamePattern, "Must be a valid GitHub username")
).min(1, "At least one maintainer is required"),
version: import_zod5.z.string().optional()
version: import_zod6.z.string().optional()
});

@@ -666,2 +738,11 @@ var MPAK_JSON_SCHEMA = {

// src/cache.ts
var import_zod7 = require("zod");
var CacheMetadataSchema = import_zod7.z.object({
version: import_zod7.z.string(),
pulledAt: import_zod7.z.string(),
lastCheckedAt: import_zod7.z.string().optional(),
platform: PlatformInfoSchema
}).strict();
// src/validation.ts

@@ -739,4 +820,8 @@ function validate(schema, data) {

BundleDetailSchema,
BundleDownloadParamsSchema,
BundleSchema,
BundleSearchParamsSchema,
BundleSearchResponseSchema,
CacheMetadataSchema,
CapabilitySchema,
CertificationSchema,

@@ -753,2 +838,6 @@ ClaimResponseSchema,

MPAK_SCHEMA_VERSION,
ManifestAuthorSchema,
ManifestServerSchema,
McpConfigSchema,
McpbManifestSchema,
MpakJsonSchema,

@@ -793,2 +882,3 @@ MyPackagesResponseSchema,

UnclaimedPackagesResponseSchema,
UserConfigFieldSchema,
UserProfileSchema,

@@ -795,0 +885,0 @@ VersionDetailSchema,

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/index.ts","../src/package.ts","../src/api-responses.ts","../src/auth.ts","../src/skill.ts","../src/mpak-json.ts","../src/validation.ts"],"sourcesContent":["// Search params and enums\nexport * from \"./package.js\";\n\n// API response schemas (packages, bundles, internal)\nexport * from \"./api-responses.js\";\n\n// Auth schemas\nexport * from \"./auth.js\";\n\n// Skill schemas\nexport * from \"./skill.js\";\n\n// mpak.json schema and utilities\nexport * from \"./mpak-json.js\";\n\n// Validation helpers\nexport * from \"./validation.js\";\n","import { z } from \"zod\";\n\n// =============================================================================\n// Enums & Search Params\n// =============================================================================\n\n/** Server runtime type */\nexport const ServerTypeSchema = z.enum([\"node\", \"python\", \"binary\"]);\n\n/** Supported operating system platforms */\nexport const PlatformSchema = z.enum([\"darwin\", \"win32\", \"linux\"]);\n\n/** Sort options for package listings */\nexport const PackageSortSchema = z.enum([\"downloads\", \"recent\", \"name\"]);\n\n/**\n * Package search query parameters.\n * HTTP query params arrive as strings, so limit/offset accept both.\n */\nexport const PackageSearchParamsSchema = z.object({\n q: z.string().optional(),\n type: ServerTypeSchema.optional(),\n tool: z.string().optional(),\n prompt: z.string().optional(),\n platform: PlatformSchema.optional(),\n sort: PackageSortSchema.optional(),\n limit: z.union([z.string(), z.number()]).optional(),\n offset: z.union([z.string(), z.number()]).optional(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type ServerType = z.infer<typeof ServerTypeSchema>;\nexport type Platform = z.infer<typeof PlatformSchema>;\nexport type PackageSort = z.infer<typeof PackageSortSchema>;\nexport type PackageSearchParams = z.infer<typeof PackageSearchParamsSchema>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// Shared Components\n// =============================================================================\n\n/** Package author information */\nexport const PackageAuthorSchema = z.object({\n name: z.string(),\n});\n\n/** Tool exposed by a package */\nexport const PackageToolSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n});\n\n/** GitHub repository metadata */\nexport const PackageGitHubSchema = z.object({\n repo: z.string(),\n stars: z.number().nullable(),\n forks: z.number().nullable(),\n watchers: z.number().nullable(),\n updated_at: z.string().nullable().optional(),\n});\n\n/** Reusable pagination envelope */\nexport const PaginationSchema = z.object({\n limit: z.number(),\n offset: z.number(),\n has_more: z.boolean(),\n});\n\n// =============================================================================\n// Package Schemas (internal / web UI API)\n// =============================================================================\n\n/** Package list item (search/list endpoints) */\nexport const PackageSchema = z.object({\n name: z.string(),\n display_name: z.string().nullable(),\n description: z.string().nullable(),\n author: PackageAuthorSchema.nullable(),\n latest_version: z.string(),\n icon: z.string().nullable(),\n server_type: z.string(),\n tools: z.array(PackageToolSchema),\n downloads: z.number(),\n published_at: z.union([z.string(), z.date()]),\n verified: z.boolean(),\n claimable: z.boolean().optional(),\n claimed: z.boolean().optional(),\n github: PackageGitHubSchema.nullable().optional(),\n certification_level: z.number().nullable().optional(),\n});\n\n/** Platform-specific artifact */\nexport const ArtifactSchema = z.object({\n os: z.string(),\n arch: z.string(),\n size_bytes: z.number(),\n digest: z.string(),\n downloads: z.number(),\n});\n\n/** Build/publish provenance attestation */\nexport const ProvenanceSchema = z.object({\n publish_method: z.string().nullable(),\n repository: z.string().nullable(),\n sha: z.string().nullable(),\n});\n\n/** MTF certification level */\nexport const CertificationSchema = z.object({\n level: z.number().nullable(),\n level_name: z.string().nullable(),\n controls_passed: z.number().nullable(),\n controls_failed: z.number().nullable(),\n controls_total: z.number().nullable(),\n});\n\n/** Scorecard finding (prioritized issue to fix) */\nexport const ScorecardFindingSchema = z.object({\n id: z.string(),\n control: z.string(),\n severity: z.enum([\"critical\", \"high\", \"medium\", \"low\", \"info\"]),\n title: z.string(),\n description: z.string(),\n file: z.string().nullable(),\n line: z.number().nullable(),\n remediation: z.string().nullable(),\n});\n\n/** Individual control within a security domain */\nexport const DomainControlSchema = z.object({\n status: z.enum([\"pass\", \"fail\", \"skip\", \"error\"]),\n name: z.string(),\n findings_count: z.number(),\n});\n\n/** Security domain (group of related controls) */\nexport const SecurityDomainSchema = z.object({\n display_name: z.string(),\n controls_passed: z.number(),\n controls_total: z.number(),\n controls: z.record(z.string(), DomainControlSchema),\n});\n\n/** Security scan summary */\nexport const SecurityScanSchema = z.object({\n status: z.enum([\"pending\", \"scanning\", \"completed\", \"failed\"]),\n risk_score: z.enum([\"CRITICAL\", \"HIGH\", \"MEDIUM\", \"LOW\"]).nullable(),\n scanned_at: z.union([z.string(), z.date()]).nullable(),\n certification: CertificationSchema.nullable().optional(),\n summary: z\n .object({\n components: z.number(),\n vulnerabilities: z.object({\n critical: z.number(),\n high: z.number(),\n medium: z.number(),\n low: z.number(),\n }),\n secrets: z.number(),\n malicious: z.number(),\n code_issues: z.number(),\n })\n .optional(),\n domains: z.record(z.string(), SecurityDomainSchema).optional(),\n findings: z.array(ScorecardFindingSchema).optional(),\n});\n\n/** Package version detail */\nexport const PackageVersionSchema = z.object({\n version: z.string(),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n artifacts: z.array(ArtifactSchema).optional(),\n readme: z.string().nullable().optional(),\n provenance: ProvenanceSchema.nullable().optional(),\n release_url: z.string().nullable().optional(),\n prerelease: z.boolean().optional(),\n manifest: z.record(z.string(), z.unknown()).nullable().optional(),\n security_scan: SecurityScanSchema.nullable().optional(),\n});\n\n/** Claiming status for a package */\nexport const PackageClaimingSchema = z.object({\n claimable: z.boolean(),\n claimed: z.boolean(),\n claimed_by: z.string().nullable(),\n claimed_at: z.union([z.string(), z.date()]).nullable(),\n github_repo: z.string().nullable(),\n});\n\n/** Full package detail (single-package endpoint) */\nexport const PackageDetailSchema = PackageSchema.extend({\n homepage: z.string().nullable(),\n license: z.string().nullable(),\n claiming: PackageClaimingSchema,\n versions: z.array(PackageVersionSchema),\n});\n\n/** Package search response envelope */\nexport const PackageSearchResponseSchema = z.object({\n packages: z.array(PackageSchema),\n total: z.number(),\n});\n\n// =============================================================================\n// V1 Bundle API Schemas\n// =============================================================================\n\n/** Platform info (os + arch) */\nexport const PlatformInfoSchema = z.object({\n os: z.string(),\n arch: z.string(),\n});\n\n/** Full provenance (v1 API) */\nexport const FullProvenanceSchema = z.object({\n schema_version: z.string(),\n provider: z.string(),\n repository: z.string(),\n sha: z.string(),\n});\n\n/** Bundle summary (v1 API) */\nexport const BundleSchema = z.object({\n name: z.string(),\n display_name: z.string().nullable().optional(),\n description: z.string().nullable().optional(),\n author: PackageAuthorSchema.nullable().optional(),\n latest_version: z.string(),\n icon: z.string().nullable().optional(),\n server_type: z.string().nullable().optional(),\n tools: z.array(PackageToolSchema).optional(),\n downloads: z.number(),\n published_at: z.union([z.string(), z.date()]),\n verified: z.boolean(),\n provenance: FullProvenanceSchema.nullable().optional(),\n certification_level: z.number().nullable().optional(),\n});\n\n/** Bundle detail (v1 API) */\nexport const BundleDetailSchema = BundleSchema.extend({\n homepage: z.string().nullable().optional(),\n license: z.string().nullable().optional(),\n certification: CertificationSchema.nullable().optional(),\n versions: z.array(\n z.object({\n version: z.string(),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n }),\n ),\n});\n\n/** Bundle search response (v1 API) */\nexport const BundleSearchResponseSchema = z.object({\n bundles: z.array(BundleSchema),\n total: z.number(),\n pagination: z.object({\n limit: z.number(),\n offset: z.number(),\n has_more: z.boolean(),\n }),\n});\n\n/** Version info with platforms */\nexport const VersionInfoSchema = z.object({\n version: z.string(),\n artifacts_count: z.number(),\n platforms: z.array(PlatformInfoSchema),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n publish_method: z.string().nullable(),\n provenance: FullProvenanceSchema.nullable().optional(),\n});\n\n/** Versions listing response (v1 API) */\nexport const VersionsResponseSchema = z.object({\n name: z.string(),\n latest: z.string(),\n versions: z.array(VersionInfoSchema),\n});\n\n/** Download info (v1 API) */\nexport const DownloadInfoSchema = z.object({\n url: z.string(),\n bundle: z.object({\n name: z.string(),\n version: z.string(),\n platform: PlatformInfoSchema,\n sha256: z.string(),\n size: z.number(),\n }),\n expires_at: z.string().optional(),\n});\n\n/** Version detail with artifacts (v1 API) */\nexport const VersionDetailSchema = z.object({\n name: z.string(),\n version: z.string(),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n artifacts: z.array(\n z.object({\n platform: PlatformInfoSchema,\n digest: z.string(),\n size: z.number(),\n download_url: z.string(),\n source_url: z.string().optional(),\n }),\n ),\n manifest: z.record(z.string(), z.unknown()),\n release: z\n .object({\n tag: z.string().nullable(),\n url: z.string().nullable(),\n })\n .optional(),\n publish_method: z.string().nullable(),\n provenance: FullProvenanceSchema.nullable(),\n});\n\n/** MCPB index response */\nexport const MCPBIndexSchema = z.object({\n index_version: z.string(),\n mimeType: z.string(),\n name: z.string(),\n version: z.string(),\n description: z.string().nullable(),\n bundles: z.array(\n z.object({\n mimeType: z.string().nullable(),\n digest: z.string(),\n size: z.number(),\n platform: PlatformInfoSchema,\n urls: z.array(z.string()),\n }),\n ),\n annotations: z.record(z.string(), z.string()).optional(),\n});\n\n/** Announce request (per-artifact from GitHub Actions) */\nexport const AnnounceRequestSchema = z.object({\n name: z.string(),\n version: z.string(),\n manifest: z.record(z.string(), z.unknown()),\n release_tag: z.string(),\n prerelease: z.boolean().optional().default(false),\n artifact: z.object({\n filename: z.string(),\n os: z.string(),\n arch: z.string(),\n sha256: z.string(),\n size: z.number(),\n }),\n});\n\n/** Announce response (per-artifact, idempotent) */\nexport const AnnounceResponseSchema = z.object({\n package: z.string(),\n version: z.string(),\n artifact: z.object({\n os: z.string(),\n arch: z.string(),\n filename: z.string(),\n }),\n total_artifacts: z.number(),\n status: z.enum([\"created\", \"updated\"]),\n});\n\n// =============================================================================\n// Internal API Schemas (web UI, not exposed publicly)\n// =============================================================================\n\n/** Publish response */\nexport const PublishResponseSchema = z.object({\n success: z.boolean(),\n package: z.object({\n name: z.string(),\n version: z.string(),\n manifest: z.record(z.string(), z.unknown()),\n }),\n sha256: z.string(),\n size: z.number(),\n url: z.string(),\n auto_claimed: z.boolean().optional(),\n message: z.string().optional(),\n});\n\n/** Internal download response */\nexport const InternalDownloadResponseSchema = z.object({\n url: z.string(),\n package: z.object({\n name: z.string(),\n version: z.string(),\n sha256: z.string(),\n size: z.number(),\n }),\n expires_at: z.string(),\n});\n\n/** Claim status response */\nexport const ClaimStatusResponseSchema = z.object({\n claimable: z.boolean(),\n reason: z.string().optional(),\n claimed_by: z.string().nullable().optional(),\n claimed_at: z.union([z.string(), z.date()]).nullable().optional(),\n package_name: z.string().optional(),\n github_repo: z.string().nullable().optional(),\n instructions: z\n .object({\n steps: z.array(z.string()),\n mpak_json_example: z.string(),\n verification_url: z.string().nullable(),\n })\n .optional(),\n});\n\n/** Claim response */\nexport const ClaimResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n package: z.object({\n name: z.string(),\n claimed_by: z.string().nullable(),\n claimed_at: z.union([z.string(), z.date()]).nullable(),\n github_repo: z.string().nullable(),\n }),\n verification: z.object({\n mpak_json_url: z.string().nullable().optional(),\n verified_at: z.string(),\n }),\n});\n\n/** My packages response */\nexport const MyPackagesResponseSchema = z.object({\n packages: z.array(PackageSchema),\n total: z.number(),\n pagination: PaginationSchema,\n});\n\n/** Unclaimed package summary */\nexport const UnclaimedPackageSchema = z.object({\n name: z.string(),\n display_name: z.string().nullable(),\n description: z.string().nullable(),\n server_type: z.string().nullable(),\n latest_version: z.string(),\n downloads: z.number(),\n github_repo: z.string().nullable(),\n created_at: z.union([z.string(), z.date()]),\n});\n\n/** Unclaimed packages response */\nexport const UnclaimedPackagesResponseSchema = z.object({\n packages: z.array(UnclaimedPackageSchema),\n total: z.number(),\n pagination: PaginationSchema,\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\n// Core types\nexport type PackageAuthor = z.infer<typeof PackageAuthorSchema>;\nexport type PackageTool = z.infer<typeof PackageToolSchema>;\nexport type PackageGitHub = z.infer<typeof PackageGitHubSchema>;\nexport type Package = z.infer<typeof PackageSchema>;\nexport type Artifact = z.infer<typeof ArtifactSchema>;\nexport type Provenance = z.infer<typeof ProvenanceSchema>;\nexport type ScorecardFinding = z.infer<typeof ScorecardFindingSchema>;\nexport type DomainControl = z.infer<typeof DomainControlSchema>;\nexport type SecurityDomain = z.infer<typeof SecurityDomainSchema>;\nexport type Certification = z.infer<typeof CertificationSchema>;\nexport type SecurityScan = z.infer<typeof SecurityScanSchema>;\nexport type PackageVersion = z.infer<typeof PackageVersionSchema>;\nexport type PackageClaiming = z.infer<typeof PackageClaimingSchema>;\nexport type PackageDetail = z.infer<typeof PackageDetailSchema>;\nexport type PackageSearchResponse = z.infer<typeof PackageSearchResponseSchema>;\n\n// V1 API types\nexport type PlatformInfo = z.infer<typeof PlatformInfoSchema>;\nexport type FullProvenance = z.infer<typeof FullProvenanceSchema>;\nexport type Bundle = z.infer<typeof BundleSchema>;\nexport type BundleDetail = z.infer<typeof BundleDetailSchema>;\nexport type BundleSearchResponse = z.infer<typeof BundleSearchResponseSchema>;\nexport type VersionInfo = z.infer<typeof VersionInfoSchema>;\nexport type VersionsResponse = z.infer<typeof VersionsResponseSchema>;\nexport type DownloadInfo = z.infer<typeof DownloadInfoSchema>;\nexport type VersionDetail = z.infer<typeof VersionDetailSchema>;\nexport type MCPBIndex = z.infer<typeof MCPBIndexSchema>;\nexport type AnnounceRequest = z.infer<typeof AnnounceRequestSchema>;\nexport type AnnounceResponse = z.infer<typeof AnnounceResponseSchema>;\n\n// Internal API types\nexport type Pagination = z.infer<typeof PaginationSchema>;\nexport type PublishResponse = z.infer<typeof PublishResponseSchema>;\nexport type InternalDownloadResponse = z.infer<\n typeof InternalDownloadResponseSchema\n>;\nexport type ClaimStatusResponse = z.infer<typeof ClaimStatusResponseSchema>;\nexport type ClaimResponse = z.infer<typeof ClaimResponseSchema>;\nexport type MyPackagesResponse = z.infer<typeof MyPackagesResponseSchema>;\nexport type UnclaimedPackage = z.infer<typeof UnclaimedPackageSchema>;\nexport type UnclaimedPackagesResponse = z.infer<\n typeof UnclaimedPackagesResponseSchema\n>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// Auth Schemas\n// =============================================================================\n\n/** User profile response from /app/auth/me */\nexport const UserProfileSchema = z.object({\n id: z.string(),\n email: z.string().email(),\n emailVerified: z.boolean(),\n username: z.string().nullable(),\n name: z.string().nullable(),\n avatarUrl: z.string().nullable(),\n githubUsername: z.string().nullable(),\n githubLinked: z.boolean(),\n verified: z.boolean(),\n publishedBundles: z.number(),\n totalDownloads: z.number(),\n role: z.string().nullable(),\n createdAt: z.union([z.string(), z.date()]).nullable(),\n lastLoginAt: z.union([z.string(), z.date()]).nullable(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type UserProfile = z.infer<typeof UserProfileSchema>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// Agent Skills Specification - Skill Frontmatter Schema\n// https://agentskills.io/specification\n// =============================================================================\n\n/**\n * Skill name validation.\n * 1-64 characters, lowercase alphanumeric with single hyphens,\n * cannot start or end with hyphen.\n */\nexport const SkillNameSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(\n /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,\n \"Lowercase alphanumeric with single hyphens, cannot start/end with hyphen\",\n );\n\n/** Skill description (1-1024 characters) */\nexport const SkillDescriptionSchema = z.string().min(1).max(1024);\n\n// =============================================================================\n// Discovery Metadata Extension (via metadata: field)\n// =============================================================================\n\n/** Category taxonomy for skill discovery */\nexport const SkillCategorySchema = z.enum([\n \"development\",\n \"writing\",\n \"research\",\n \"consulting\",\n \"data\",\n \"design\",\n \"operations\",\n \"security\",\n \"other\",\n]);\n\n/** Author information for attribution */\nexport const SkillAuthorSchema = z.object({\n name: z.string().min(1),\n url: z.string().url().optional(),\n email: z.string().email().optional(),\n});\n\n/** Example usage for discovery */\nexport const SkillExampleSchema = z.object({\n prompt: z.string().min(1),\n context: z.string().optional(),\n});\n\n/**\n * Discovery metadata (via metadata: field in frontmatter).\n * All fields optional; skills can start minimal and add discovery metadata later.\n */\nexport const SkillDiscoveryMetadataSchema = z\n .object({\n tags: z.array(z.string().max(32)).max(10).optional(),\n category: SkillCategorySchema.optional(),\n triggers: z.array(z.string().max(128)).max(20).optional(),\n keywords: z.array(z.string().max(32)).max(30).optional(),\n author: SkillAuthorSchema.optional(),\n version: z.string().optional(),\n examples: z.array(SkillExampleSchema).max(5).optional(),\n })\n .passthrough();\n\n// =============================================================================\n// Complete SKILL.md Frontmatter Schema\n// =============================================================================\n\n/**\n * Complete SKILL.md frontmatter schema.\n * Combines official Agent Skills spec with discovery metadata extension.\n */\nexport const SkillFrontmatterSchema = z.object({\n name: SkillNameSchema,\n description: SkillDescriptionSchema,\n license: z.string().optional(),\n compatibility: z.string().max(500).optional(),\n \"allowed-tools\": z.string().optional(),\n metadata: SkillDiscoveryMetadataSchema.optional(),\n});\n\n// =============================================================================\n// Registry API Schemas\n// =============================================================================\n\n/** Scoped skill name for registry (e.g., @nimblebraininc/strategic-thought-partner) */\nexport const ScopedSkillNameSchema = z\n .string()\n .regex(\n /^@[a-z0-9][a-z0-9-]*\\/[a-z0-9][a-z0-9-]*$/,\n \"Scoped name format: @scope/name\",\n );\n\n/** Skill artifact info for announce endpoint */\nexport const SkillArtifactSchema = z.object({\n filename: z.string().regex(/\\.skill$/, \"Must have .skill extension\"),\n sha256: z.string().length(64),\n size: z.number().int().positive(),\n});\n\n/** Announce request for POST /v1/skills/announce */\nexport const SkillAnnounceRequestSchema = z.object({\n name: ScopedSkillNameSchema,\n version: z.string(),\n skill: SkillFrontmatterSchema,\n release_tag: z.string(),\n prerelease: z.boolean().optional().default(false),\n artifact: SkillArtifactSchema,\n});\n\n/** Announce response */\nexport const SkillAnnounceResponseSchema = z.object({\n skill: z.string(),\n version: z.string(),\n status: z.enum([\"created\", \"exists\"]),\n});\n\n// =============================================================================\n// Search/List API Schemas\n// =============================================================================\n\n/** Skill search parameters */\nexport const SkillSearchParamsSchema = z.object({\n q: z.string().optional(),\n tags: z.string().optional(),\n category: SkillCategorySchema.optional(),\n sort: z.enum([\"downloads\", \"recent\", \"name\"]).optional(),\n limit: z.union([z.string(), z.number()]).optional(),\n offset: z.union([z.string(), z.number()]).optional(),\n});\n\n/** Skill summary for search results */\nexport const SkillSummarySchema = z.object({\n name: z.string(),\n description: z.string(),\n latest_version: z.string(),\n tags: z.array(z.string()).optional(),\n category: SkillCategorySchema.optional(),\n downloads: z.number(),\n published_at: z.string(),\n author: SkillAuthorSchema.optional(),\n});\n\n/** Skill search response */\nexport const SkillSearchResponseSchema = z.object({\n skills: z.array(SkillSummarySchema),\n total: z.number(),\n pagination: z.object({\n limit: z.number(),\n offset: z.number(),\n has_more: z.boolean(),\n }),\n});\n\n/** Skill detail response */\nexport const SkillDetailSchema = z.object({\n name: z.string(),\n description: z.string(),\n latest_version: z.string(),\n license: z.string().optional(),\n compatibility: z.string().optional(),\n allowed_tools: z.array(z.string()).optional(),\n tags: z.array(z.string()).optional(),\n category: SkillCategorySchema.optional(),\n triggers: z.array(z.string()).optional(),\n downloads: z.number(),\n published_at: z.string(),\n author: SkillAuthorSchema.optional(),\n examples: z.array(SkillExampleSchema).optional(),\n versions: z.array(\n z.object({\n version: z.string(),\n published_at: z.string(),\n downloads: z.number(),\n }),\n ),\n});\n\n/** Skill download info response */\nexport const SkillDownloadInfoSchema = z.object({\n url: z.string(),\n skill: z.object({\n name: z.string(),\n version: z.string(),\n sha256: z.string(),\n size: z.number(),\n }),\n expires_at: z.string(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type SkillName = z.infer<typeof SkillNameSchema>;\nexport type SkillCategory = z.infer<typeof SkillCategorySchema>;\nexport type SkillAuthor = z.infer<typeof SkillAuthorSchema>;\nexport type SkillExample = z.infer<typeof SkillExampleSchema>;\nexport type SkillDiscoveryMetadata = z.infer<\n typeof SkillDiscoveryMetadataSchema\n>;\nexport type SkillFrontmatter = z.infer<typeof SkillFrontmatterSchema>;\nexport type ScopedSkillName = z.infer<typeof ScopedSkillNameSchema>;\nexport type SkillArtifact = z.infer<typeof SkillArtifactSchema>;\nexport type SkillAnnounceRequest = z.infer<typeof SkillAnnounceRequestSchema>;\nexport type SkillAnnounceResponse = z.infer<typeof SkillAnnounceResponseSchema>;\nexport type SkillSearchParams = z.infer<typeof SkillSearchParamsSchema>;\nexport type SkillSummary = z.infer<typeof SkillSummarySchema>;\nexport type SkillSearchResponse = z.infer<typeof SkillSearchResponseSchema>;\nexport type SkillDetail = z.infer<typeof SkillDetailSchema>;\nexport type SkillDownloadInfo = z.infer<typeof SkillDownloadInfoSchema>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// mpak.json Schema Definition\n//\n// Defines the schema for mpak.json files placed in GitHub repositories to\n// claim ownership of packages in the registry.\n//\n// Location: https://github.com/{owner}/{repo}/mpak.json\n//\n// Example:\n// {\n// \"$schema\": \"https://cdn.mpak.dev/schemas/2025-10-19/mpak.json\",\n// \"name\": \"@username/package-name\",\n// \"maintainers\": [\"github-username\"]\n// }\n// =============================================================================\n\n/** Schema version (update when making breaking changes) */\nexport const MPAK_SCHEMA_VERSION = \"2025-10-19\";\n\n/** Canonical schema URL for IDE autocompletion */\nexport const MPAK_SCHEMA_URL = `https://cdn.mpak.dev/schemas/${MPAK_SCHEMA_VERSION}/mpak.json`;\n\n// =============================================================================\n// Zod Schema\n// =============================================================================\n\n/** Scoped package name pattern */\nconst ScopedPackageNamePattern =\n /^@[a-z0-9][a-z0-9-]{0,38}\\/[a-z0-9][a-z0-9-]{0,213}$/;\n\n/** GitHub username pattern */\nconst GitHubUsernamePattern = /^[a-z0-9][a-z0-9-]{0,38}$/i;\n\n/** Zod schema for mpak.json */\nexport const MpakJsonSchema = z.object({\n $schema: z.string().optional(),\n name: z\n .string()\n .regex(\n ScopedPackageNamePattern,\n \"Package name must be scoped (e.g., @username/package-name)\",\n ),\n maintainers: z\n .array(\n z\n .string()\n .regex(GitHubUsernamePattern, \"Must be a valid GitHub username\"),\n )\n .min(1, \"At least one maintainer is required\"),\n version: z.string().optional(),\n});\n\n/** TypeScript type for mpak.json */\nexport type MpakJson = z.infer<typeof MpakJsonSchema>;\n\n// =============================================================================\n// JSON Schema (for IDE autocomplete and CDN hosting)\n// =============================================================================\n\n/** JSON Schema definition for mpak.json */\nexport const MPAK_JSON_SCHEMA = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n $id: MPAK_SCHEMA_URL,\n title: \"mpak.json\",\n description:\n \"Configuration file for claiming package ownership in the mpak registry\",\n type: \"object\" as const,\n required: [\"name\", \"maintainers\"],\n properties: {\n $schema: {\n type: \"string\" as const,\n description: \"JSON Schema URL for validation\",\n default: MPAK_SCHEMA_URL,\n },\n name: {\n type: \"string\" as const,\n description:\n \"Package name in the registry (must be scoped, e.g., @username/package)\",\n pattern: \"^@[a-z0-9][a-z0-9-]{0,38}/[a-z0-9][a-z0-9-]{0,213}$\",\n },\n maintainers: {\n type: \"array\" as const,\n description: \"GitHub usernames of package maintainers\",\n items: {\n type: \"string\" as const,\n pattern: \"^[a-z0-9][a-z0-9-]{0,38}$\",\n },\n minItems: 1,\n },\n version: {\n type: \"string\" as const,\n description: \"Schema version\",\n },\n },\n additionalProperties: false,\n} as const;\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Generate an example mpak.json content string.\n */\nexport function generateMpakJsonExample(\n packageName: string,\n githubUsername: string,\n): string {\n const example: MpakJson = {\n $schema: MPAK_SCHEMA_URL,\n name: packageName,\n maintainers: [githubUsername],\n };\n return JSON.stringify(example, null, 2);\n}\n","import type { z } from \"zod\";\n\nimport {\n AnnounceRequestSchema,\n BundleDetailSchema,\n BundleSchema,\n BundleSearchResponseSchema,\n DownloadInfoSchema,\n MCPBIndexSchema,\n PackageDetailSchema,\n PackageSchema,\n PackageSearchResponseSchema,\n VersionDetailSchema,\n VersionsResponseSchema,\n} from \"./api-responses.js\";\nimport { UserProfileSchema } from \"./auth.js\";\nimport { MpakJsonSchema } from \"./mpak-json.js\";\nimport { PackageSearchParamsSchema } from \"./package.js\";\nimport {\n SkillAnnounceRequestSchema,\n SkillDetailSchema,\n SkillFrontmatterSchema,\n SkillSearchResponseSchema,\n} from \"./skill.js\";\n\n// =============================================================================\n// Validation Result Type\n// =============================================================================\n\n/**\n * Result of a schema validation.\n * On success, `data` contains the parsed (and typed) value.\n * On failure, `errors` contains human-readable error messages.\n */\nexport type ValidationResult<T> =\n | { success: true; data: T; errors?: undefined }\n | { success: false; data?: undefined; errors: string[] };\n\n// =============================================================================\n// Generic Validator\n// =============================================================================\n\n/**\n * Validate unknown data against a Zod schema, returning a friendly result.\n */\nfunction validate<T>(\n schema: z.ZodType<T>,\n data: unknown,\n): ValidationResult<T> {\n const result = schema.safeParse(data);\n if (result.success) {\n return { success: true, data: result.data };\n }\n\n const errors = result.error.issues.map((issue) => {\n const path = issue.path.length > 0 ? issue.path.join(\".\") : \"(root)\";\n return `${path}: ${issue.message}`;\n });\n\n return { success: false, errors };\n}\n\n// =============================================================================\n// Package & Bundle Validators\n// =============================================================================\n\n/** Validate data as a Package (list item). */\nexport function validatePackage(data: unknown) {\n return validate(PackageSchema, data);\n}\n\n/** Validate data as a PackageDetail (single-package endpoint). */\nexport function validatePackageDetail(data: unknown) {\n return validate(PackageDetailSchema, data);\n}\n\n/** Validate data as a PackageSearchResponse. */\nexport function validatePackageSearchResponse(data: unknown) {\n return validate(PackageSearchResponseSchema, data);\n}\n\n/** Validate search parameters. */\nexport function validatePackageSearchParams(data: unknown) {\n return validate(PackageSearchParamsSchema, data);\n}\n\n/** Validate data as a Bundle (v1 API). */\nexport function validateBundle(data: unknown) {\n return validate(BundleSchema, data);\n}\n\n/** Validate data as a BundleDetail (v1 API). */\nexport function validateBundleDetail(data: unknown) {\n return validate(BundleDetailSchema, data);\n}\n\n/** Validate data as a BundleSearchResponse (v1 API). */\nexport function validateBundleSearchResponse(data: unknown) {\n return validate(BundleSearchResponseSchema, data);\n}\n\n/** Validate data as a VersionsResponse (v1 API). */\nexport function validateVersionsResponse(data: unknown) {\n return validate(VersionsResponseSchema, data);\n}\n\n/** Validate data as a VersionDetail (v1 API). */\nexport function validateVersionDetail(data: unknown) {\n return validate(VersionDetailSchema, data);\n}\n\n/** Validate data as DownloadInfo (v1 API). */\nexport function validateDownloadInfo(data: unknown) {\n return validate(DownloadInfoSchema, data);\n}\n\n/** Validate data as an MCPBIndex. */\nexport function validateMCPBIndex(data: unknown) {\n return validate(MCPBIndexSchema, data);\n}\n\n/** Validate an announce request payload. */\nexport function validateAnnounceRequest(data: unknown) {\n return validate(AnnounceRequestSchema, data);\n}\n\n// =============================================================================\n// Auth Validators\n// =============================================================================\n\n/** Validate data as a UserProfile. */\nexport function validateUserProfile(data: unknown) {\n return validate(UserProfileSchema, data);\n}\n\n// =============================================================================\n// mpak.json Validators\n// =============================================================================\n\n/** Validate data as an mpak.json file. */\nexport function validateMpakJson(data: unknown) {\n return validate(MpakJsonSchema, data);\n}\n\n// =============================================================================\n// Skill Validators\n// =============================================================================\n\n/** Validate SKILL.md frontmatter. */\nexport function validateSkillFrontmatter(data: unknown) {\n return validate(SkillFrontmatterSchema, data);\n}\n\n/** Validate a skill announce request. */\nexport function validateSkillAnnounceRequest(data: unknown) {\n return validate(SkillAnnounceRequestSchema, data);\n}\n\n/** Validate a skill search response. */\nexport function validateSkillSearchResponse(data: unknown) {\n return validate(SkillSearchResponseSchema, data);\n}\n\n/** Validate a skill detail response. */\nexport function validateSkillDetail(data: unknown) {\n return validate(SkillDetailSchema, data);\n}\n"],"mappings":"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","names":["import_zod","import_zod","import_zod","import_zod"]}
{"version":3,"sources":["../src/index.ts","../src/package.ts","../src/manifest.ts","../src/api-responses.ts","../src/auth.ts","../src/skill.ts","../src/mpak-json.ts","../src/cache.ts","../src/validation.ts"],"sourcesContent":["// Search params and enums\nexport * from \"./package.js\";\n\n// API response schemas (packages, bundles, internal)\nexport * from \"./api-responses.js\";\n\n// Auth schemas\nexport * from \"./auth.js\";\n\n// Skill schemas\nexport * from \"./skill.js\";\n\n// mpak.json schema and utilities\nexport * from \"./mpak-json.js\";\n\n// Versioned manifest schemas\nexport * from \"./manifest.js\";\n\n// Cache metadata\nexport * from \"./cache.js\";\n\n// Validation helpers\nexport * from \"./validation.js\";\n","import { z } from 'zod';\n\nimport { ServerTypeSchema } from './manifest.js';\n\n// Re-export manifest schemas so existing consumers of package.ts are not broken.\nexport {\n CapabilitySchema,\n ManifestAuthorSchema,\n ManifestServerSchema,\n McpbManifestSchema,\n McpConfigSchema,\n ServerTypeSchema,\n UserConfigFieldSchema,\n type Capability,\n type ManifestAuthor,\n type ManifestServer,\n type McpbManifest,\n type McpConfig,\n type ServerType,\n type UserConfigField,\n} from './manifest.js';\n\n// =============================================================================\n// Enums & Search Params\n// =============================================================================\n\n/** Supported operating system platforms */\nexport const PlatformSchema = z.enum(['darwin', 'win32', 'linux']);\n\n/** Sort options for package listings */\nexport const PackageSortSchema = z.enum(['downloads', 'recent', 'name']);\n\n/**\n * Package search query parameters.\n * HTTP query params arrive as strings, so limit/offset accept both.\n */\nexport const PackageSearchParamsSchema = z.object({\n q: z.string().optional(),\n type: ServerTypeSchema.optional(),\n tool: z.string().optional(),\n prompt: z.string().optional(),\n platform: PlatformSchema.optional(),\n sort: PackageSortSchema.optional(),\n limit: z.union([z.string(), z.number()]).optional(),\n offset: z.union([z.string(), z.number()]).optional(),\n});\n\n/** Bundle search query parameters. */\nexport const BundleSearchParamsSchema = z.object({\n q: z.string().max(200).optional(),\n type: ServerTypeSchema.optional(),\n sort: PackageSortSchema.optional().default('downloads'),\n limit: z.number().min(1).max(100).optional().default(20),\n offset: z.number().min(0).optional().default(0),\n});\n\n/** Bundle download query parameters (os + arch). */\nexport const BundleDownloadParamsSchema = z.object({\n os: z.enum(['darwin', 'linux', 'win32']).describe('Target OS (darwin, linux, win32)').optional(),\n arch: z.enum(['x64', 'arm64']).describe('Target arch (x64, arm64)').optional(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type Platform = z.infer<typeof PlatformSchema>;\nexport type PackageSort = z.infer<typeof PackageSortSchema>;\nexport type PackageSearchParams = z.infer<typeof PackageSearchParamsSchema>;\nexport type BundleSearchParams = z.infer<typeof BundleSearchParamsSchema>;\n/** Input type — all fields optional (before defaults are applied). */\nexport type BundleSearchParamsInput = z.input<typeof BundleSearchParamsSchema>;\nexport type BundleDownloadParams = z.infer<typeof BundleDownloadParamsSchema>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// Manifest Building Blocks\n// =============================================================================\n\n/** Server runtime type (v0.4 added \"uv\"). */\nexport const ServerTypeSchema = z.enum([\"node\", \"python\", \"binary\", \"uv\"]);\n\n/** User-configurable field declared by a bundle author. */\nexport const UserConfigFieldSchema = z.object({\n type: z.enum([\"string\", \"number\", \"boolean\"]),\n title: z.string().optional(),\n description: z.string().optional(),\n sensitive: z.boolean().optional(),\n required: z.boolean().optional(),\n default: z.union([z.string(), z.number(), z.boolean()]).optional(),\n});\n\n/** MCP server launch configuration (command, args, env). */\nexport const McpConfigSchema = z.object({\n command: z.string(),\n args: z.array(z.string()),\n env: z.record(z.string(), z.string()).optional(),\n});\n\n/** Author information. */\nexport const ManifestAuthorSchema = z.object({\n name: z.string(),\n email: z.string().optional(),\n url: z.string().optional(),\n});\n\n/** Server configuration block. */\nexport const ManifestServerSchema = z.object({\n type: ServerTypeSchema,\n entry_point: z.string(),\n mcp_config: McpConfigSchema,\n});\n\n/** MCP capability descriptor (tool, prompt, or resource). */\nexport const CapabilitySchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n});\n\n// =============================================================================\n// MCPB Manifest Schema\n// =============================================================================\n\n/**\n * MCPB bundle manifest.\n *\n * Compatible with both v0.3 and v0.4 of the upstream spec.\n * The two versions are backward-compatible (v0.4 only adds \"uv\" server type).\n */\nexport const McpbManifestSchema = z.object({\n manifest_version: z.string(),\n name: z.string(),\n version: z.string(),\n description: z.string(),\n display_name: z.string().optional(),\n author: ManifestAuthorSchema.optional(),\n homepage: z.string().optional(),\n license: z.string().optional(),\n icon: z.string().optional(),\n repository: z\n .object({\n type: z.string().optional(),\n url: z.string().optional(),\n })\n .optional(),\n user_config: z.record(z.string(), UserConfigFieldSchema).optional(),\n server: ManifestServerSchema,\n tools: z.array(CapabilitySchema).optional(),\n prompts: z.array(CapabilitySchema).optional(),\n resources: z.array(CapabilitySchema).optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type ServerType = z.infer<typeof ServerTypeSchema>;\nexport type UserConfigField = z.infer<typeof UserConfigFieldSchema>;\nexport type McpConfig = z.infer<typeof McpConfigSchema>;\nexport type ManifestAuthor = z.infer<typeof ManifestAuthorSchema>;\nexport type ManifestServer = z.infer<typeof ManifestServerSchema>;\nexport type Capability = z.infer<typeof CapabilitySchema>;\nexport type McpbManifest = z.infer<typeof McpbManifestSchema>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// Shared Components\n// =============================================================================\n\n/** Package author information */\nexport const PackageAuthorSchema = z.object({\n name: z.string(),\n});\n\n/** Tool exposed by a package */\nexport const PackageToolSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n});\n\n/** GitHub repository metadata */\nexport const PackageGitHubSchema = z.object({\n repo: z.string(),\n stars: z.number().nullable(),\n forks: z.number().nullable(),\n watchers: z.number().nullable(),\n updated_at: z.string().nullable().optional(),\n});\n\n/** Reusable pagination envelope */\nexport const PaginationSchema = z.object({\n limit: z.number(),\n offset: z.number(),\n has_more: z.boolean(),\n});\n\n// =============================================================================\n// Package Schemas (internal / web UI API)\n// =============================================================================\n\n/** Package list item (search/list endpoints) */\nexport const PackageSchema = z.object({\n name: z.string(),\n display_name: z.string().nullable(),\n description: z.string().nullable(),\n author: PackageAuthorSchema.nullable(),\n latest_version: z.string(),\n icon: z.string().nullable(),\n server_type: z.string(),\n tools: z.array(PackageToolSchema),\n downloads: z.number(),\n published_at: z.union([z.string(), z.date()]),\n verified: z.boolean(),\n claimable: z.boolean().optional(),\n claimed: z.boolean().optional(),\n github: PackageGitHubSchema.nullable().optional(),\n certification_level: z.number().nullable().optional(),\n});\n\n/** Platform-specific artifact */\nexport const ArtifactSchema = z.object({\n os: z.string(),\n arch: z.string(),\n size_bytes: z.number(),\n digest: z.string(),\n downloads: z.number(),\n});\n\n/** Build/publish provenance attestation */\nexport const ProvenanceSchema = z.object({\n publish_method: z.string().nullable(),\n repository: z.string().nullable(),\n sha: z.string().nullable(),\n});\n\n/** MTF certification level */\nexport const CertificationSchema = z.object({\n level: z.number().nullable(),\n level_name: z.string().nullable(),\n controls_passed: z.number().nullable(),\n controls_failed: z.number().nullable(),\n controls_total: z.number().nullable(),\n});\n\n/** Scorecard finding (prioritized issue to fix) */\nexport const ScorecardFindingSchema = z.object({\n id: z.string(),\n control: z.string(),\n severity: z.enum([\"critical\", \"high\", \"medium\", \"low\", \"info\"]),\n title: z.string(),\n description: z.string(),\n file: z.string().nullable(),\n line: z.number().nullable(),\n remediation: z.string().nullable(),\n});\n\n/** Individual control within a security domain */\nexport const DomainControlSchema = z.object({\n status: z.enum([\"pass\", \"fail\", \"skip\", \"error\"]),\n name: z.string(),\n findings_count: z.number(),\n});\n\n/** Security domain (group of related controls) */\nexport const SecurityDomainSchema = z.object({\n display_name: z.string(),\n controls_passed: z.number(),\n controls_total: z.number(),\n controls: z.record(z.string(), DomainControlSchema),\n});\n\n/** Security scan summary */\nexport const SecurityScanSchema = z.object({\n status: z.enum([\"pending\", \"scanning\", \"completed\", \"failed\"]),\n risk_score: z.enum([\"CRITICAL\", \"HIGH\", \"MEDIUM\", \"LOW\"]).nullable(),\n scanned_at: z.union([z.string(), z.date()]).nullable(),\n scanner_version: z.string().nullable().optional(),\n certification: CertificationSchema.nullable().optional(),\n summary: z\n .object({\n components: z.number(),\n vulnerabilities: z.object({\n critical: z.number(),\n high: z.number(),\n medium: z.number(),\n low: z.number(),\n }),\n secrets: z.number(),\n malicious: z.number(),\n code_issues: z.number(),\n })\n .optional(),\n domains: z.record(z.string(), SecurityDomainSchema).optional(),\n findings: z.array(ScorecardFindingSchema).optional(),\n});\n\n/** Package version detail */\nexport const PackageVersionSchema = z.object({\n version: z.string(),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n artifacts: z.array(ArtifactSchema).optional(),\n readme: z.string().nullable().optional(),\n provenance: ProvenanceSchema.nullable().optional(),\n release_url: z.string().nullable().optional(),\n prerelease: z.boolean().optional(),\n manifest: z.record(z.string(), z.unknown()).nullable().optional(),\n security_scan: SecurityScanSchema.nullable().optional(),\n});\n\n/** Claiming status for a package */\nexport const PackageClaimingSchema = z.object({\n claimable: z.boolean(),\n claimed: z.boolean(),\n claimed_by: z.string().nullable(),\n claimed_at: z.union([z.string(), z.date()]).nullable(),\n github_repo: z.string().nullable(),\n});\n\n/** Full package detail (single-package endpoint) */\nexport const PackageDetailSchema = PackageSchema.extend({\n homepage: z.string().nullable(),\n license: z.string().nullable(),\n claiming: PackageClaimingSchema,\n versions: z.array(PackageVersionSchema),\n});\n\n/** Package search response envelope */\nexport const PackageSearchResponseSchema = z.object({\n packages: z.array(PackageSchema),\n total: z.number(),\n});\n\n// =============================================================================\n// V1 Bundle API Schemas\n// =============================================================================\n\n/** Platform info (os + arch) */\nexport const PlatformInfoSchema = z.object({\n os: z.string(),\n arch: z.string(),\n});\n\n/** Full provenance (v1 API) */\nexport const FullProvenanceSchema = z.object({\n schema_version: z.string(),\n provider: z.string(),\n repository: z.string(),\n sha: z.string(),\n});\n\n/** Bundle summary (v1 API) */\nexport const BundleSchema = z.object({\n name: z.string(),\n display_name: z.string().nullable().optional(),\n description: z.string().nullable().optional(),\n author: PackageAuthorSchema.nullable().optional(),\n latest_version: z.string(),\n icon: z.string().nullable().optional(),\n server_type: z.string().nullable().optional(),\n tools: z.array(PackageToolSchema).optional(),\n downloads: z.number(),\n published_at: z.union([z.string(), z.date()]),\n verified: z.boolean(),\n provenance: FullProvenanceSchema.nullable().optional(),\n certification_level: z.number().nullable().optional(),\n});\n\n/** Bundle detail (v1 API) */\nexport const BundleDetailSchema = BundleSchema.extend({\n homepage: z.string().nullable().optional(),\n license: z.string().nullable().optional(),\n certification: CertificationSchema.nullable().optional(),\n versions: z.array(\n z.object({\n version: z.string(),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n }),\n ),\n});\n\n/** Bundle search response (v1 API) */\nexport const BundleSearchResponseSchema = z.object({\n bundles: z.array(BundleSchema),\n total: z.number(),\n pagination: z.object({\n limit: z.number(),\n offset: z.number(),\n has_more: z.boolean(),\n }),\n});\n\n/** Version info with platforms */\nexport const VersionInfoSchema = z.object({\n version: z.string(),\n artifacts_count: z.number(),\n platforms: z.array(PlatformInfoSchema),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n publish_method: z.string().nullable(),\n provenance: FullProvenanceSchema.nullable().optional(),\n});\n\n/** Versions listing response (v1 API) */\nexport const VersionsResponseSchema = z.object({\n name: z.string(),\n latest: z.string(),\n versions: z.array(VersionInfoSchema),\n});\n\n/** Download info (v1 API) */\nexport const DownloadInfoSchema = z.object({\n url: z.string(),\n bundle: z.object({\n name: z.string(),\n version: z.string(),\n platform: PlatformInfoSchema,\n sha256: z.string(),\n size: z.number(),\n }),\n expires_at: z.string().optional(),\n});\n\n/** Version detail with artifacts (v1 API) */\nexport const VersionDetailSchema = z.object({\n name: z.string(),\n version: z.string(),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n artifacts: z.array(\n z.object({\n platform: PlatformInfoSchema,\n digest: z.string(),\n size: z.number(),\n download_url: z.string(),\n source_url: z.string().optional(),\n }),\n ),\n manifest: z.record(z.string(), z.unknown()),\n release: z\n .object({\n tag: z.string().nullable(),\n url: z.string().nullable(),\n })\n .optional(),\n publish_method: z.string().nullable(),\n provenance: FullProvenanceSchema.nullable(),\n});\n\n/** MCPB index response */\nexport const MCPBIndexSchema = z.object({\n index_version: z.string(),\n mimeType: z.string(),\n name: z.string(),\n version: z.string(),\n description: z.string().nullable(),\n bundles: z.array(\n z.object({\n mimeType: z.string().nullable(),\n digest: z.string(),\n size: z.number(),\n platform: PlatformInfoSchema,\n urls: z.array(z.string()),\n }),\n ),\n annotations: z.record(z.string(), z.string()).optional(),\n});\n\n/** Announce request (per-artifact from GitHub Actions) */\nexport const AnnounceRequestSchema = z.object({\n name: z.string(),\n version: z.string(),\n manifest: z.record(z.string(), z.unknown()),\n release_tag: z.string(),\n prerelease: z.boolean().optional().default(false),\n artifact: z.object({\n filename: z.string(),\n os: z.string(),\n arch: z.string(),\n sha256: z.string(),\n size: z.number(),\n }),\n});\n\n/** Announce response (per-artifact, idempotent) */\nexport const AnnounceResponseSchema = z.object({\n package: z.string(),\n version: z.string(),\n artifact: z.object({\n os: z.string(),\n arch: z.string(),\n filename: z.string(),\n }),\n total_artifacts: z.number(),\n status: z.enum([\"created\", \"updated\"]),\n});\n\n// =============================================================================\n// Internal API Schemas (web UI, not exposed publicly)\n// =============================================================================\n\n/** Publish response */\nexport const PublishResponseSchema = z.object({\n success: z.boolean(),\n package: z.object({\n name: z.string(),\n version: z.string(),\n manifest: z.record(z.string(), z.unknown()),\n }),\n sha256: z.string(),\n size: z.number(),\n url: z.string(),\n auto_claimed: z.boolean().optional(),\n message: z.string().optional(),\n});\n\n/** Internal download response */\nexport const InternalDownloadResponseSchema = z.object({\n url: z.string(),\n package: z.object({\n name: z.string(),\n version: z.string(),\n sha256: z.string(),\n size: z.number(),\n }),\n expires_at: z.string(),\n});\n\n/** Claim status response */\nexport const ClaimStatusResponseSchema = z.object({\n claimable: z.boolean(),\n reason: z.string().optional(),\n claimed_by: z.string().nullable().optional(),\n claimed_at: z.union([z.string(), z.date()]).nullable().optional(),\n package_name: z.string().optional(),\n github_repo: z.string().nullable().optional(),\n instructions: z\n .object({\n steps: z.array(z.string()),\n mpak_json_example: z.string(),\n verification_url: z.string().nullable(),\n })\n .optional(),\n});\n\n/** Claim response */\nexport const ClaimResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n package: z.object({\n name: z.string(),\n claimed_by: z.string().nullable(),\n claimed_at: z.union([z.string(), z.date()]).nullable(),\n github_repo: z.string().nullable(),\n }),\n verification: z.object({\n mpak_json_url: z.string().nullable().optional(),\n verified_at: z.string(),\n }),\n});\n\n/** My packages response */\nexport const MyPackagesResponseSchema = z.object({\n packages: z.array(PackageSchema),\n total: z.number(),\n pagination: PaginationSchema,\n});\n\n/** Unclaimed package summary */\nexport const UnclaimedPackageSchema = z.object({\n name: z.string(),\n display_name: z.string().nullable(),\n description: z.string().nullable(),\n server_type: z.string().nullable(),\n latest_version: z.string(),\n downloads: z.number(),\n github_repo: z.string().nullable(),\n created_at: z.union([z.string(), z.date()]),\n});\n\n/** Unclaimed packages response */\nexport const UnclaimedPackagesResponseSchema = z.object({\n packages: z.array(UnclaimedPackageSchema),\n total: z.number(),\n pagination: PaginationSchema,\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\n// Core types\nexport type PackageAuthor = z.infer<typeof PackageAuthorSchema>;\nexport type PackageTool = z.infer<typeof PackageToolSchema>;\nexport type PackageGitHub = z.infer<typeof PackageGitHubSchema>;\nexport type Package = z.infer<typeof PackageSchema>;\nexport type Artifact = z.infer<typeof ArtifactSchema>;\nexport type Provenance = z.infer<typeof ProvenanceSchema>;\nexport type ScorecardFinding = z.infer<typeof ScorecardFindingSchema>;\nexport type DomainControl = z.infer<typeof DomainControlSchema>;\nexport type SecurityDomain = z.infer<typeof SecurityDomainSchema>;\nexport type Certification = z.infer<typeof CertificationSchema>;\nexport type SecurityScan = z.infer<typeof SecurityScanSchema>;\nexport type PackageVersion = z.infer<typeof PackageVersionSchema>;\nexport type PackageClaiming = z.infer<typeof PackageClaimingSchema>;\nexport type PackageDetail = z.infer<typeof PackageDetailSchema>;\nexport type PackageSearchResponse = z.infer<typeof PackageSearchResponseSchema>;\n\n// V1 API types\nexport type PlatformInfo = z.infer<typeof PlatformInfoSchema>;\nexport type FullProvenance = z.infer<typeof FullProvenanceSchema>;\nexport type Bundle = z.infer<typeof BundleSchema>;\nexport type BundleDetail = z.infer<typeof BundleDetailSchema>;\nexport type BundleSearchResponse = z.infer<typeof BundleSearchResponseSchema>;\nexport type VersionInfo = z.infer<typeof VersionInfoSchema>;\nexport type VersionsResponse = z.infer<typeof VersionsResponseSchema>;\nexport type DownloadInfo = z.infer<typeof DownloadInfoSchema>;\nexport type VersionDetail = z.infer<typeof VersionDetailSchema>;\nexport type MCPBIndex = z.infer<typeof MCPBIndexSchema>;\nexport type AnnounceRequest = z.infer<typeof AnnounceRequestSchema>;\nexport type AnnounceResponse = z.infer<typeof AnnounceResponseSchema>;\n\n// Internal API types\nexport type Pagination = z.infer<typeof PaginationSchema>;\nexport type PublishResponse = z.infer<typeof PublishResponseSchema>;\nexport type InternalDownloadResponse = z.infer<\n typeof InternalDownloadResponseSchema\n>;\nexport type ClaimStatusResponse = z.infer<typeof ClaimStatusResponseSchema>;\nexport type ClaimResponse = z.infer<typeof ClaimResponseSchema>;\nexport type MyPackagesResponse = z.infer<typeof MyPackagesResponseSchema>;\nexport type UnclaimedPackage = z.infer<typeof UnclaimedPackageSchema>;\nexport type UnclaimedPackagesResponse = z.infer<\n typeof UnclaimedPackagesResponseSchema\n>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// Auth Schemas\n// =============================================================================\n\n/** User profile response from /app/auth/me */\nexport const UserProfileSchema = z.object({\n id: z.string(),\n email: z.string().email(),\n emailVerified: z.boolean(),\n username: z.string().nullable(),\n name: z.string().nullable(),\n avatarUrl: z.string().nullable(),\n githubUsername: z.string().nullable(),\n githubLinked: z.boolean(),\n verified: z.boolean(),\n publishedBundles: z.number(),\n totalDownloads: z.number(),\n role: z.string().nullable(),\n createdAt: z.union([z.string(), z.date()]).nullable(),\n lastLoginAt: z.union([z.string(), z.date()]).nullable(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type UserProfile = z.infer<typeof UserProfileSchema>;\n","import { z } from 'zod';\n\n// =============================================================================\n// Agent Skills Specification - Skill Frontmatter Schema\n// https://agentskills.io/specification\n// =============================================================================\n\n/**\n * Skill name validation.\n * 1-64 characters, lowercase alphanumeric with single hyphens,\n * cannot start or end with hyphen.\n */\nexport const SkillNameSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(\n /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,\n 'Lowercase alphanumeric with single hyphens, cannot start/end with hyphen',\n );\n\n/** Skill description (1-1024 characters) */\nexport const SkillDescriptionSchema = z.string().min(1).max(1024);\n\n// =============================================================================\n// Discovery Metadata Extension (via metadata: field)\n// =============================================================================\n\n/** Category taxonomy for skill discovery */\nexport const SkillCategorySchema = z.enum([\n 'development',\n 'writing',\n 'research',\n 'consulting',\n 'data',\n 'design',\n 'operations',\n 'security',\n 'other',\n]);\n\n/** Author information for attribution */\nexport const SkillAuthorSchema = z.object({\n name: z.string().min(1),\n url: z.string().url().optional(),\n email: z.string().email().optional(),\n});\n\n/** Example usage for discovery */\nexport const SkillExampleSchema = z.object({\n prompt: z.string().min(1),\n context: z.string().optional(),\n});\n\n/**\n * Discovery metadata (via metadata: field in frontmatter).\n * All fields optional; skills can start minimal and add discovery metadata later.\n */\nexport const SkillDiscoveryMetadataSchema = z\n .object({\n tags: z.array(z.string().max(32)).max(10).optional(),\n category: SkillCategorySchema.optional(),\n triggers: z.array(z.string().max(128)).max(20).optional(),\n keywords: z.array(z.string().max(32)).max(30).optional(),\n author: SkillAuthorSchema.optional(),\n version: z.string().optional(),\n examples: z.array(SkillExampleSchema).max(5).optional(),\n })\n .passthrough();\n\n// =============================================================================\n// Complete SKILL.md Frontmatter Schema\n// =============================================================================\n\n/**\n * Complete SKILL.md frontmatter schema.\n * Combines official Agent Skills spec with discovery metadata extension.\n */\nexport const SkillFrontmatterSchema = z.object({\n name: SkillNameSchema,\n description: SkillDescriptionSchema,\n version: z.string().optional(),\n license: z.string().optional(),\n compatibility: z.string().max(500).optional(),\n 'allowed-tools': z.string().optional(),\n metadata: SkillDiscoveryMetadataSchema.optional(),\n});\n\n// =============================================================================\n// Registry API Schemas\n// =============================================================================\n\n/** Scoped skill name for registry (e.g., @nimblebraininc/strategic-thought-partner) */\nexport const ScopedSkillNameSchema = z\n .string()\n .regex(/^@[a-z0-9][a-z0-9-]*\\/[a-z0-9][a-z0-9-]*$/, 'Scoped name format: @scope/name');\n\n/** Skill artifact info for announce endpoint */\nexport const SkillArtifactSchema = z.object({\n filename: z.string().regex(/\\.skill$/, 'Must have .skill extension'),\n sha256: z.string().length(64),\n size: z.number().int().positive(),\n});\n\n/** Announce request for POST /v1/skills/announce */\nexport const SkillAnnounceRequestSchema = z.object({\n name: ScopedSkillNameSchema,\n version: z.string(),\n skill: SkillFrontmatterSchema,\n release_tag: z.string(),\n prerelease: z.boolean().optional().default(false),\n artifact: SkillArtifactSchema,\n});\n\n/** Announce response */\nexport const SkillAnnounceResponseSchema = z.object({\n skill: z.string(),\n version: z.string(),\n status: z.enum(['created', 'exists']),\n});\n\n// =============================================================================\n// Search/List API Schemas\n// =============================================================================\n\n/** Skill search parameters */\nexport const SkillSearchParamsSchema = z.object({\n q: z.string().optional(),\n tags: z.string().optional(),\n category: SkillCategorySchema.optional(),\n sort: z.enum(['downloads', 'recent', 'name']).optional(),\n limit: z.union([z.string(), z.number()]).optional(),\n offset: z.union([z.string(), z.number()]).optional(),\n});\n\n/** Skill summary for search results */\nexport const SkillSummarySchema = z.object({\n name: z.string(),\n description: z.string(),\n latest_version: z.string(),\n tags: z.array(z.string()).optional(),\n category: SkillCategorySchema.optional(),\n downloads: z.number(),\n published_at: z.string(),\n author: SkillAuthorSchema.optional(),\n});\n\n/** Skill search response */\nexport const SkillSearchResponseSchema = z.object({\n skills: z.array(SkillSummarySchema),\n total: z.number(),\n pagination: z.object({\n limit: z.number(),\n offset: z.number(),\n has_more: z.boolean(),\n }),\n});\n\n/** Skill detail response */\nexport const SkillDetailSchema = z.object({\n name: z.string(),\n description: z.string(),\n latest_version: z.string(),\n license: z.string().optional(),\n compatibility: z.string().optional(),\n allowed_tools: z.array(z.string()).optional(),\n tags: z.array(z.string()).optional(),\n category: SkillCategorySchema.optional(),\n triggers: z.array(z.string()).optional(),\n downloads: z.number(),\n published_at: z.string(),\n author: SkillAuthorSchema.optional(),\n examples: z.array(SkillExampleSchema).optional(),\n versions: z.array(\n z.object({\n version: z.string(),\n published_at: z.string(),\n downloads: z.number(),\n }),\n ),\n});\n\n/** Skill download info response */\nexport const SkillDownloadInfoSchema = z.object({\n url: z.string(),\n skill: z.object({\n name: z.string(),\n version: z.string(),\n sha256: z.string(),\n size: z.number(),\n }),\n expires_at: z.string(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type SkillName = z.infer<typeof SkillNameSchema>;\nexport type SkillCategory = z.infer<typeof SkillCategorySchema>;\nexport type SkillAuthor = z.infer<typeof SkillAuthorSchema>;\nexport type SkillExample = z.infer<typeof SkillExampleSchema>;\nexport type SkillDiscoveryMetadata = z.infer<typeof SkillDiscoveryMetadataSchema>;\nexport type SkillFrontmatter = z.infer<typeof SkillFrontmatterSchema>;\nexport type ScopedSkillName = z.infer<typeof ScopedSkillNameSchema>;\nexport type SkillArtifact = z.infer<typeof SkillArtifactSchema>;\nexport type SkillAnnounceRequest = z.infer<typeof SkillAnnounceRequestSchema>;\nexport type SkillAnnounceResponse = z.infer<typeof SkillAnnounceResponseSchema>;\nexport type SkillSearchParams = z.infer<typeof SkillSearchParamsSchema>;\n/** Input type — all fields optional (before defaults are applied). */\nexport type SkillSearchParamsInput = z.input<typeof SkillSearchParamsSchema>;\nexport type SkillSummary = z.infer<typeof SkillSummarySchema>;\nexport type SkillSearchResponse = z.infer<typeof SkillSearchResponseSchema>;\nexport type SkillDetail = z.infer<typeof SkillDetailSchema>;\nexport type SkillDownloadInfo = z.infer<typeof SkillDownloadInfoSchema>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// mpak.json Schema Definition\n//\n// Defines the schema for mpak.json files placed in GitHub repositories to\n// claim ownership of packages in the registry.\n//\n// Location: https://github.com/{owner}/{repo}/mpak.json\n//\n// Example:\n// {\n// \"$schema\": \"https://cdn.mpak.dev/schemas/2025-10-19/mpak.json\",\n// \"name\": \"@username/package-name\",\n// \"maintainers\": [\"github-username\"]\n// }\n// =============================================================================\n\n/** Schema version (update when making breaking changes) */\nexport const MPAK_SCHEMA_VERSION = \"2025-10-19\";\n\n/** Canonical schema URL for IDE autocompletion */\nexport const MPAK_SCHEMA_URL = `https://cdn.mpak.dev/schemas/${MPAK_SCHEMA_VERSION}/mpak.json`;\n\n// =============================================================================\n// Zod Schema\n// =============================================================================\n\n/** Scoped package name pattern */\nconst ScopedPackageNamePattern =\n /^@[a-z0-9][a-z0-9-]{0,38}\\/[a-z0-9][a-z0-9-]{0,213}$/;\n\n/** GitHub username pattern */\nconst GitHubUsernamePattern = /^[a-z0-9][a-z0-9-]{0,38}$/i;\n\n/** Zod schema for mpak.json */\nexport const MpakJsonSchema = z.object({\n $schema: z.string().optional(),\n name: z\n .string()\n .regex(\n ScopedPackageNamePattern,\n \"Package name must be scoped (e.g., @username/package-name)\",\n ),\n maintainers: z\n .array(\n z\n .string()\n .regex(GitHubUsernamePattern, \"Must be a valid GitHub username\"),\n )\n .min(1, \"At least one maintainer is required\"),\n version: z.string().optional(),\n});\n\n/** TypeScript type for mpak.json */\nexport type MpakJson = z.infer<typeof MpakJsonSchema>;\n\n// =============================================================================\n// JSON Schema (for IDE autocomplete and CDN hosting)\n// =============================================================================\n\n/** JSON Schema definition for mpak.json */\nexport const MPAK_JSON_SCHEMA = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n $id: MPAK_SCHEMA_URL,\n title: \"mpak.json\",\n description:\n \"Configuration file for claiming package ownership in the mpak registry\",\n type: \"object\" as const,\n required: [\"name\", \"maintainers\"],\n properties: {\n $schema: {\n type: \"string\" as const,\n description: \"JSON Schema URL for validation\",\n default: MPAK_SCHEMA_URL,\n },\n name: {\n type: \"string\" as const,\n description:\n \"Package name in the registry (must be scoped, e.g., @username/package)\",\n pattern: \"^@[a-z0-9][a-z0-9-]{0,38}/[a-z0-9][a-z0-9-]{0,213}$\",\n },\n maintainers: {\n type: \"array\" as const,\n description: \"GitHub usernames of package maintainers\",\n items: {\n type: \"string\" as const,\n pattern: \"^[a-z0-9][a-z0-9-]{0,38}$\",\n },\n minItems: 1,\n },\n version: {\n type: \"string\" as const,\n description: \"Schema version\",\n },\n },\n additionalProperties: false,\n} as const;\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Generate an example mpak.json content string.\n */\nexport function generateMpakJsonExample(\n packageName: string,\n githubUsername: string,\n): string {\n const example: MpakJson = {\n $schema: MPAK_SCHEMA_URL,\n name: packageName,\n maintainers: [githubUsername],\n };\n return JSON.stringify(example, null, 2);\n}\n","import { z } from \"zod\";\nimport { PlatformInfoSchema } from \"./api-responses.js\";\n\n// =============================================================================\n// Cache Metadata\n// =============================================================================\n\n/**\n * Zod schema for the `.mpak-meta.json` file written alongside cached bundles.\n *\n * `.strict()` rejects unknown fields so corrupted or hand-edited files\n * are caught on read rather than silently accepted.\n */\nexport const CacheMetadataSchema = z\n .object({\n version: z.string(),\n pulledAt: z.string(),\n lastCheckedAt: z.string().optional(),\n platform: PlatformInfoSchema,\n })\n .strict();\n\nexport type CacheMetadata = z.infer<typeof CacheMetadataSchema>;\n\n// =============================================================================\n// Cached Bundle Info\n// =============================================================================\n\n/**\n * Summary of a bundle stored in the local cache.\n * Returned by `BundleCache.listCachedBundles()` and consumed by CLI\n * commands like `mpak outdated`.\n */\nexport interface CachedBundleInfo {\n name: string;\n version: string;\n pulledAt: string;\n cacheDir: string;\n}\n","import type { z } from \"zod\";\n\nimport {\n AnnounceRequestSchema,\n BundleDetailSchema,\n BundleSchema,\n BundleSearchResponseSchema,\n DownloadInfoSchema,\n MCPBIndexSchema,\n PackageDetailSchema,\n PackageSchema,\n PackageSearchResponseSchema,\n VersionDetailSchema,\n VersionsResponseSchema,\n} from \"./api-responses.js\";\nimport { UserProfileSchema } from \"./auth.js\";\nimport { MpakJsonSchema } from \"./mpak-json.js\";\nimport { PackageSearchParamsSchema } from \"./package.js\";\nimport {\n SkillAnnounceRequestSchema,\n SkillDetailSchema,\n SkillFrontmatterSchema,\n SkillSearchResponseSchema,\n} from \"./skill.js\";\n\n// =============================================================================\n// Validation Result Type\n// =============================================================================\n\n/**\n * Result of a schema validation.\n * On success, `data` contains the parsed (and typed) value.\n * On failure, `errors` contains human-readable error messages.\n */\nexport type ValidationResult<T> =\n | { success: true; data: T; errors?: undefined }\n | { success: false; data?: undefined; errors: string[] };\n\n// =============================================================================\n// Generic Validator\n// =============================================================================\n\n/**\n * Validate unknown data against a Zod schema, returning a friendly result.\n */\nfunction validate<T>(\n schema: z.ZodType<T>,\n data: unknown,\n): ValidationResult<T> {\n const result = schema.safeParse(data);\n if (result.success) {\n return { success: true, data: result.data };\n }\n\n const errors = result.error.issues.map((issue) => {\n const path = issue.path.length > 0 ? issue.path.join(\".\") : \"(root)\";\n return `${path}: ${issue.message}`;\n });\n\n return { success: false, errors };\n}\n\n// =============================================================================\n// Package & Bundle Validators\n// =============================================================================\n\n/** Validate data as a Package (list item). */\nexport function validatePackage(data: unknown) {\n return validate(PackageSchema, data);\n}\n\n/** Validate data as a PackageDetail (single-package endpoint). */\nexport function validatePackageDetail(data: unknown) {\n return validate(PackageDetailSchema, data);\n}\n\n/** Validate data as a PackageSearchResponse. */\nexport function validatePackageSearchResponse(data: unknown) {\n return validate(PackageSearchResponseSchema, data);\n}\n\n/** Validate search parameters. */\nexport function validatePackageSearchParams(data: unknown) {\n return validate(PackageSearchParamsSchema, data);\n}\n\n/** Validate data as a Bundle (v1 API). */\nexport function validateBundle(data: unknown) {\n return validate(BundleSchema, data);\n}\n\n/** Validate data as a BundleDetail (v1 API). */\nexport function validateBundleDetail(data: unknown) {\n return validate(BundleDetailSchema, data);\n}\n\n/** Validate data as a BundleSearchResponse (v1 API). */\nexport function validateBundleSearchResponse(data: unknown) {\n return validate(BundleSearchResponseSchema, data);\n}\n\n/** Validate data as a VersionsResponse (v1 API). */\nexport function validateVersionsResponse(data: unknown) {\n return validate(VersionsResponseSchema, data);\n}\n\n/** Validate data as a VersionDetail (v1 API). */\nexport function validateVersionDetail(data: unknown) {\n return validate(VersionDetailSchema, data);\n}\n\n/** Validate data as DownloadInfo (v1 API). */\nexport function validateDownloadInfo(data: unknown) {\n return validate(DownloadInfoSchema, data);\n}\n\n/** Validate data as an MCPBIndex. */\nexport function validateMCPBIndex(data: unknown) {\n return validate(MCPBIndexSchema, data);\n}\n\n/** Validate an announce request payload. */\nexport function validateAnnounceRequest(data: unknown) {\n return validate(AnnounceRequestSchema, data);\n}\n\n// =============================================================================\n// Auth Validators\n// =============================================================================\n\n/** Validate data as a UserProfile. */\nexport function validateUserProfile(data: unknown) {\n return validate(UserProfileSchema, data);\n}\n\n// =============================================================================\n// mpak.json Validators\n// =============================================================================\n\n/** Validate data as an mpak.json file. */\nexport function validateMpakJson(data: unknown) {\n return validate(MpakJsonSchema, data);\n}\n\n// =============================================================================\n// Skill Validators\n// =============================================================================\n\n/** Validate SKILL.md frontmatter. */\nexport function validateSkillFrontmatter(data: unknown) {\n return validate(SkillFrontmatterSchema, data);\n}\n\n/** Validate a skill announce request. */\nexport function validateSkillAnnounceRequest(data: unknown) {\n return validate(SkillAnnounceRequestSchema, data);\n}\n\n/** Validate a skill search response. */\nexport function validateSkillSearchResponse(data: unknown) {\n return validate(SkillSearchResponseSchema, data);\n}\n\n/** Validate a skill detail response. */\nexport function validateSkillDetail(data: unknown) {\n return validate(SkillDetailSchema, data);\n}\n"],"mappings":"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","names":["import_zod","import_zod","import_zod","import_zod","import_zod","import_zod"]}
// src/package.ts
import { z as z2 } from "zod";
// src/manifest.ts
import { z } from "zod";
var ServerTypeSchema = z.enum(["node", "python", "binary"]);
var PlatformSchema = z.enum(["darwin", "win32", "linux"]);
var PackageSortSchema = z.enum(["downloads", "recent", "name"]);
var PackageSearchParamsSchema = z.object({
q: z.string().optional(),
var ServerTypeSchema = z.enum(["node", "python", "binary", "uv"]);
var UserConfigFieldSchema = z.object({
type: z.enum(["string", "number", "boolean"]),
title: z.string().optional(),
description: z.string().optional(),
sensitive: z.boolean().optional(),
required: z.boolean().optional(),
default: z.union([z.string(), z.number(), z.boolean()]).optional()
});
var McpConfigSchema = z.object({
command: z.string(),
args: z.array(z.string()),
env: z.record(z.string(), z.string()).optional()
});
var ManifestAuthorSchema = z.object({
name: z.string(),
email: z.string().optional(),
url: z.string().optional()
});
var ManifestServerSchema = z.object({
type: ServerTypeSchema,
entry_point: z.string(),
mcp_config: McpConfigSchema
});
var CapabilitySchema = z.object({
name: z.string(),
description: z.string().optional()
});
var McpbManifestSchema = z.object({
manifest_version: z.string(),
name: z.string(),
version: z.string(),
description: z.string(),
display_name: z.string().optional(),
author: ManifestAuthorSchema.optional(),
homepage: z.string().optional(),
license: z.string().optional(),
icon: z.string().optional(),
repository: z.object({
type: z.string().optional(),
url: z.string().optional()
}).optional(),
user_config: z.record(z.string(), UserConfigFieldSchema).optional(),
server: ManifestServerSchema,
tools: z.array(CapabilitySchema).optional(),
prompts: z.array(CapabilitySchema).optional(),
resources: z.array(CapabilitySchema).optional(),
_meta: z.record(z.string(), z.unknown()).optional()
});
// src/package.ts
var PlatformSchema = z2.enum(["darwin", "win32", "linux"]);
var PackageSortSchema = z2.enum(["downloads", "recent", "name"]);
var PackageSearchParamsSchema = z2.object({
q: z2.string().optional(),
type: ServerTypeSchema.optional(),
tool: z.string().optional(),
prompt: z.string().optional(),
tool: z2.string().optional(),
prompt: z2.string().optional(),
platform: PlatformSchema.optional(),
sort: PackageSortSchema.optional(),
limit: z.union([z.string(), z.number()]).optional(),
offset: z.union([z.string(), z.number()]).optional()
limit: z2.union([z2.string(), z2.number()]).optional(),
offset: z2.union([z2.string(), z2.number()]).optional()
});
var BundleSearchParamsSchema = z2.object({
q: z2.string().max(200).optional(),
type: ServerTypeSchema.optional(),
sort: PackageSortSchema.optional().default("downloads"),
limit: z2.number().min(1).max(100).optional().default(20),
offset: z2.number().min(0).optional().default(0)
});
var BundleDownloadParamsSchema = z2.object({
os: z2.enum(["darwin", "linux", "win32"]).describe("Target OS (darwin, linux, win32)").optional(),
arch: z2.enum(["x64", "arm64"]).describe("Target arch (x64, arm64)").optional()
});
// src/api-responses.ts
import { z as z2 } from "zod";
var PackageAuthorSchema = z2.object({
name: z2.string()
import { z as z3 } from "zod";
var PackageAuthorSchema = z3.object({
name: z3.string()
});
var PackageToolSchema = z2.object({
name: z2.string(),
description: z2.string().optional()
var PackageToolSchema = z3.object({
name: z3.string(),
description: z3.string().optional()
});
var PackageGitHubSchema = z2.object({
repo: z2.string(),
stars: z2.number().nullable(),
forks: z2.number().nullable(),
watchers: z2.number().nullable(),
updated_at: z2.string().nullable().optional()
var PackageGitHubSchema = z3.object({
repo: z3.string(),
stars: z3.number().nullable(),
forks: z3.number().nullable(),
watchers: z3.number().nullable(),
updated_at: z3.string().nullable().optional()
});
var PaginationSchema = z2.object({
limit: z2.number(),
offset: z2.number(),
has_more: z2.boolean()
var PaginationSchema = z3.object({
limit: z3.number(),
offset: z3.number(),
has_more: z3.boolean()
});
var PackageSchema = z2.object({
name: z2.string(),
display_name: z2.string().nullable(),
description: z2.string().nullable(),
var PackageSchema = z3.object({
name: z3.string(),
display_name: z3.string().nullable(),
description: z3.string().nullable(),
author: PackageAuthorSchema.nullable(),
latest_version: z2.string(),
icon: z2.string().nullable(),
server_type: z2.string(),
tools: z2.array(PackageToolSchema),
downloads: z2.number(),
published_at: z2.union([z2.string(), z2.date()]),
verified: z2.boolean(),
claimable: z2.boolean().optional(),
claimed: z2.boolean().optional(),
latest_version: z3.string(),
icon: z3.string().nullable(),
server_type: z3.string(),
tools: z3.array(PackageToolSchema),
downloads: z3.number(),
published_at: z3.union([z3.string(), z3.date()]),
verified: z3.boolean(),
claimable: z3.boolean().optional(),
claimed: z3.boolean().optional(),
github: PackageGitHubSchema.nullable().optional(),
certification_level: z2.number().nullable().optional()
certification_level: z3.number().nullable().optional()
});
var ArtifactSchema = z2.object({
os: z2.string(),
arch: z2.string(),
size_bytes: z2.number(),
digest: z2.string(),
downloads: z2.number()
var ArtifactSchema = z3.object({
os: z3.string(),
arch: z3.string(),
size_bytes: z3.number(),
digest: z3.string(),
downloads: z3.number()
});
var ProvenanceSchema = z2.object({
publish_method: z2.string().nullable(),
repository: z2.string().nullable(),
sha: z2.string().nullable()
var ProvenanceSchema = z3.object({
publish_method: z3.string().nullable(),
repository: z3.string().nullable(),
sha: z3.string().nullable()
});
var CertificationSchema = z2.object({
level: z2.number().nullable(),
level_name: z2.string().nullable(),
controls_passed: z2.number().nullable(),
controls_failed: z2.number().nullable(),
controls_total: z2.number().nullable()
var CertificationSchema = z3.object({
level: z3.number().nullable(),
level_name: z3.string().nullable(),
controls_passed: z3.number().nullable(),
controls_failed: z3.number().nullable(),
controls_total: z3.number().nullable()
});
var ScorecardFindingSchema = z2.object({
id: z2.string(),
control: z2.string(),
severity: z2.enum(["critical", "high", "medium", "low", "info"]),
title: z2.string(),
description: z2.string(),
file: z2.string().nullable(),
line: z2.number().nullable(),
remediation: z2.string().nullable()
var ScorecardFindingSchema = z3.object({
id: z3.string(),
control: z3.string(),
severity: z3.enum(["critical", "high", "medium", "low", "info"]),
title: z3.string(),
description: z3.string(),
file: z3.string().nullable(),
line: z3.number().nullable(),
remediation: z3.string().nullable()
});
var DomainControlSchema = z2.object({
status: z2.enum(["pass", "fail", "skip", "error"]),
name: z2.string(),
findings_count: z2.number()
var DomainControlSchema = z3.object({
status: z3.enum(["pass", "fail", "skip", "error"]),
name: z3.string(),
findings_count: z3.number()
});
var SecurityDomainSchema = z2.object({
display_name: z2.string(),
controls_passed: z2.number(),
controls_total: z2.number(),
controls: z2.record(z2.string(), DomainControlSchema)
var SecurityDomainSchema = z3.object({
display_name: z3.string(),
controls_passed: z3.number(),
controls_total: z3.number(),
controls: z3.record(z3.string(), DomainControlSchema)
});
var SecurityScanSchema = z2.object({
status: z2.enum(["pending", "scanning", "completed", "failed"]),
risk_score: z2.enum(["CRITICAL", "HIGH", "MEDIUM", "LOW"]).nullable(),
scanned_at: z2.union([z2.string(), z2.date()]).nullable(),
var SecurityScanSchema = z3.object({
status: z3.enum(["pending", "scanning", "completed", "failed"]),
risk_score: z3.enum(["CRITICAL", "HIGH", "MEDIUM", "LOW"]).nullable(),
scanned_at: z3.union([z3.string(), z3.date()]).nullable(),
scanner_version: z3.string().nullable().optional(),
certification: CertificationSchema.nullable().optional(),
summary: z2.object({
components: z2.number(),
vulnerabilities: z2.object({
critical: z2.number(),
high: z2.number(),
medium: z2.number(),
low: z2.number()
summary: z3.object({
components: z3.number(),
vulnerabilities: z3.object({
critical: z3.number(),
high: z3.number(),
medium: z3.number(),
low: z3.number()
}),
secrets: z2.number(),
malicious: z2.number(),
code_issues: z2.number()
secrets: z3.number(),
malicious: z3.number(),
code_issues: z3.number()
}).optional(),
domains: z2.record(z2.string(), SecurityDomainSchema).optional(),
findings: z2.array(ScorecardFindingSchema).optional()
domains: z3.record(z3.string(), SecurityDomainSchema).optional(),
findings: z3.array(ScorecardFindingSchema).optional()
});
var PackageVersionSchema = z2.object({
version: z2.string(),
published_at: z2.union([z2.string(), z2.date()]),
downloads: z2.number(),
artifacts: z2.array(ArtifactSchema).optional(),
readme: z2.string().nullable().optional(),
var PackageVersionSchema = z3.object({
version: z3.string(),
published_at: z3.union([z3.string(), z3.date()]),
downloads: z3.number(),
artifacts: z3.array(ArtifactSchema).optional(),
readme: z3.string().nullable().optional(),
provenance: ProvenanceSchema.nullable().optional(),
release_url: z2.string().nullable().optional(),
prerelease: z2.boolean().optional(),
manifest: z2.record(z2.string(), z2.unknown()).nullable().optional(),
release_url: z3.string().nullable().optional(),
prerelease: z3.boolean().optional(),
manifest: z3.record(z3.string(), z3.unknown()).nullable().optional(),
security_scan: SecurityScanSchema.nullable().optional()
});
var PackageClaimingSchema = z2.object({
claimable: z2.boolean(),
claimed: z2.boolean(),
claimed_by: z2.string().nullable(),
claimed_at: z2.union([z2.string(), z2.date()]).nullable(),
github_repo: z2.string().nullable()
var PackageClaimingSchema = z3.object({
claimable: z3.boolean(),
claimed: z3.boolean(),
claimed_by: z3.string().nullable(),
claimed_at: z3.union([z3.string(), z3.date()]).nullable(),
github_repo: z3.string().nullable()
});
var PackageDetailSchema = PackageSchema.extend({
homepage: z2.string().nullable(),
license: z2.string().nullable(),
homepage: z3.string().nullable(),
license: z3.string().nullable(),
claiming: PackageClaimingSchema,
versions: z2.array(PackageVersionSchema)
versions: z3.array(PackageVersionSchema)
});
var PackageSearchResponseSchema = z2.object({
packages: z2.array(PackageSchema),
total: z2.number()
var PackageSearchResponseSchema = z3.object({
packages: z3.array(PackageSchema),
total: z3.number()
});
var PlatformInfoSchema = z2.object({
os: z2.string(),
arch: z2.string()
var PlatformInfoSchema = z3.object({
os: z3.string(),
arch: z3.string()
});
var FullProvenanceSchema = z2.object({
schema_version: z2.string(),
provider: z2.string(),
repository: z2.string(),
sha: z2.string()
var FullProvenanceSchema = z3.object({
schema_version: z3.string(),
provider: z3.string(),
repository: z3.string(),
sha: z3.string()
});
var BundleSchema = z2.object({
name: z2.string(),
display_name: z2.string().nullable().optional(),
description: z2.string().nullable().optional(),
var BundleSchema = z3.object({
name: z3.string(),
display_name: z3.string().nullable().optional(),
description: z3.string().nullable().optional(),
author: PackageAuthorSchema.nullable().optional(),
latest_version: z2.string(),
icon: z2.string().nullable().optional(),
server_type: z2.string().nullable().optional(),
tools: z2.array(PackageToolSchema).optional(),
downloads: z2.number(),
published_at: z2.union([z2.string(), z2.date()]),
verified: z2.boolean(),
latest_version: z3.string(),
icon: z3.string().nullable().optional(),
server_type: z3.string().nullable().optional(),
tools: z3.array(PackageToolSchema).optional(),
downloads: z3.number(),
published_at: z3.union([z3.string(), z3.date()]),
verified: z3.boolean(),
provenance: FullProvenanceSchema.nullable().optional(),
certification_level: z2.number().nullable().optional()
certification_level: z3.number().nullable().optional()
});
var BundleDetailSchema = BundleSchema.extend({
homepage: z2.string().nullable().optional(),
license: z2.string().nullable().optional(),
homepage: z3.string().nullable().optional(),
license: z3.string().nullable().optional(),
certification: CertificationSchema.nullable().optional(),
versions: z2.array(
z2.object({
version: z2.string(),
published_at: z2.union([z2.string(), z2.date()]),
downloads: z2.number()
versions: z3.array(
z3.object({
version: z3.string(),
published_at: z3.union([z3.string(), z3.date()]),
downloads: z3.number()
})
)
});
var BundleSearchResponseSchema = z2.object({
bundles: z2.array(BundleSchema),
total: z2.number(),
pagination: z2.object({
limit: z2.number(),
offset: z2.number(),
has_more: z2.boolean()
var BundleSearchResponseSchema = z3.object({
bundles: z3.array(BundleSchema),
total: z3.number(),
pagination: z3.object({
limit: z3.number(),
offset: z3.number(),
has_more: z3.boolean()
})
});
var VersionInfoSchema = z2.object({
version: z2.string(),
artifacts_count: z2.number(),
platforms: z2.array(PlatformInfoSchema),
published_at: z2.union([z2.string(), z2.date()]),
downloads: z2.number(),
publish_method: z2.string().nullable(),
var VersionInfoSchema = z3.object({
version: z3.string(),
artifacts_count: z3.number(),
platforms: z3.array(PlatformInfoSchema),
published_at: z3.union([z3.string(), z3.date()]),
downloads: z3.number(),
publish_method: z3.string().nullable(),
provenance: FullProvenanceSchema.nullable().optional()
});
var VersionsResponseSchema = z2.object({
name: z2.string(),
latest: z2.string(),
versions: z2.array(VersionInfoSchema)
var VersionsResponseSchema = z3.object({
name: z3.string(),
latest: z3.string(),
versions: z3.array(VersionInfoSchema)
});
var DownloadInfoSchema = z2.object({
url: z2.string(),
bundle: z2.object({
name: z2.string(),
version: z2.string(),
var DownloadInfoSchema = z3.object({
url: z3.string(),
bundle: z3.object({
name: z3.string(),
version: z3.string(),
platform: PlatformInfoSchema,
sha256: z2.string(),
size: z2.number()
sha256: z3.string(),
size: z3.number()
}),
expires_at: z2.string().optional()
expires_at: z3.string().optional()
});
var VersionDetailSchema = z2.object({
name: z2.string(),
version: z2.string(),
published_at: z2.union([z2.string(), z2.date()]),
downloads: z2.number(),
artifacts: z2.array(
z2.object({
var VersionDetailSchema = z3.object({
name: z3.string(),
version: z3.string(),
published_at: z3.union([z3.string(), z3.date()]),
downloads: z3.number(),
artifacts: z3.array(
z3.object({
platform: PlatformInfoSchema,
digest: z2.string(),
size: z2.number(),
download_url: z2.string(),
source_url: z2.string().optional()
digest: z3.string(),
size: z3.number(),
download_url: z3.string(),
source_url: z3.string().optional()
})
),
manifest: z2.record(z2.string(), z2.unknown()),
release: z2.object({
tag: z2.string().nullable(),
url: z2.string().nullable()
manifest: z3.record(z3.string(), z3.unknown()),
release: z3.object({
tag: z3.string().nullable(),
url: z3.string().nullable()
}).optional(),
publish_method: z2.string().nullable(),
publish_method: z3.string().nullable(),
provenance: FullProvenanceSchema.nullable()
});
var MCPBIndexSchema = z2.object({
index_version: z2.string(),
mimeType: z2.string(),
name: z2.string(),
version: z2.string(),
description: z2.string().nullable(),
bundles: z2.array(
z2.object({
mimeType: z2.string().nullable(),
digest: z2.string(),
size: z2.number(),
var MCPBIndexSchema = z3.object({
index_version: z3.string(),
mimeType: z3.string(),
name: z3.string(),
version: z3.string(),
description: z3.string().nullable(),
bundles: z3.array(
z3.object({
mimeType: z3.string().nullable(),
digest: z3.string(),
size: z3.number(),
platform: PlatformInfoSchema,
urls: z2.array(z2.string())
urls: z3.array(z3.string())
})
),
annotations: z2.record(z2.string(), z2.string()).optional()
annotations: z3.record(z3.string(), z3.string()).optional()
});
var AnnounceRequestSchema = z2.object({
name: z2.string(),
version: z2.string(),
manifest: z2.record(z2.string(), z2.unknown()),
release_tag: z2.string(),
prerelease: z2.boolean().optional().default(false),
artifact: z2.object({
filename: z2.string(),
os: z2.string(),
arch: z2.string(),
sha256: z2.string(),
size: z2.number()
var AnnounceRequestSchema = z3.object({
name: z3.string(),
version: z3.string(),
manifest: z3.record(z3.string(), z3.unknown()),
release_tag: z3.string(),
prerelease: z3.boolean().optional().default(false),
artifact: z3.object({
filename: z3.string(),
os: z3.string(),
arch: z3.string(),
sha256: z3.string(),
size: z3.number()
})
});
var AnnounceResponseSchema = z2.object({
package: z2.string(),
version: z2.string(),
artifact: z2.object({
os: z2.string(),
arch: z2.string(),
filename: z2.string()
var AnnounceResponseSchema = z3.object({
package: z3.string(),
version: z3.string(),
artifact: z3.object({
os: z3.string(),
arch: z3.string(),
filename: z3.string()
}),
total_artifacts: z2.number(),
status: z2.enum(["created", "updated"])
total_artifacts: z3.number(),
status: z3.enum(["created", "updated"])
});
var PublishResponseSchema = z2.object({
success: z2.boolean(),
package: z2.object({
name: z2.string(),
version: z2.string(),
manifest: z2.record(z2.string(), z2.unknown())
var PublishResponseSchema = z3.object({
success: z3.boolean(),
package: z3.object({
name: z3.string(),
version: z3.string(),
manifest: z3.record(z3.string(), z3.unknown())
}),
sha256: z2.string(),
size: z2.number(),
url: z2.string(),
auto_claimed: z2.boolean().optional(),
message: z2.string().optional()
sha256: z3.string(),
size: z3.number(),
url: z3.string(),
auto_claimed: z3.boolean().optional(),
message: z3.string().optional()
});
var InternalDownloadResponseSchema = z2.object({
url: z2.string(),
package: z2.object({
name: z2.string(),
version: z2.string(),
sha256: z2.string(),
size: z2.number()
var InternalDownloadResponseSchema = z3.object({
url: z3.string(),
package: z3.object({
name: z3.string(),
version: z3.string(),
sha256: z3.string(),
size: z3.number()
}),
expires_at: z2.string()
expires_at: z3.string()
});
var ClaimStatusResponseSchema = z2.object({
claimable: z2.boolean(),
reason: z2.string().optional(),
claimed_by: z2.string().nullable().optional(),
claimed_at: z2.union([z2.string(), z2.date()]).nullable().optional(),
package_name: z2.string().optional(),
github_repo: z2.string().nullable().optional(),
instructions: z2.object({
steps: z2.array(z2.string()),
mpak_json_example: z2.string(),
verification_url: z2.string().nullable()
var ClaimStatusResponseSchema = z3.object({
claimable: z3.boolean(),
reason: z3.string().optional(),
claimed_by: z3.string().nullable().optional(),
claimed_at: z3.union([z3.string(), z3.date()]).nullable().optional(),
package_name: z3.string().optional(),
github_repo: z3.string().nullable().optional(),
instructions: z3.object({
steps: z3.array(z3.string()),
mpak_json_example: z3.string(),
verification_url: z3.string().nullable()
}).optional()
});
var ClaimResponseSchema = z2.object({
success: z2.boolean(),
message: z2.string(),
package: z2.object({
name: z2.string(),
claimed_by: z2.string().nullable(),
claimed_at: z2.union([z2.string(), z2.date()]).nullable(),
github_repo: z2.string().nullable()
var ClaimResponseSchema = z3.object({
success: z3.boolean(),
message: z3.string(),
package: z3.object({
name: z3.string(),
claimed_by: z3.string().nullable(),
claimed_at: z3.union([z3.string(), z3.date()]).nullable(),
github_repo: z3.string().nullable()
}),
verification: z2.object({
mpak_json_url: z2.string().nullable().optional(),
verified_at: z2.string()
verification: z3.object({
mpak_json_url: z3.string().nullable().optional(),
verified_at: z3.string()
})
});
var MyPackagesResponseSchema = z2.object({
packages: z2.array(PackageSchema),
total: z2.number(),
var MyPackagesResponseSchema = z3.object({
packages: z3.array(PackageSchema),
total: z3.number(),
pagination: PaginationSchema
});
var UnclaimedPackageSchema = z2.object({
name: z2.string(),
display_name: z2.string().nullable(),
description: z2.string().nullable(),
server_type: z2.string().nullable(),
latest_version: z2.string(),
downloads: z2.number(),
github_repo: z2.string().nullable(),
created_at: z2.union([z2.string(), z2.date()])
var UnclaimedPackageSchema = z3.object({
name: z3.string(),
display_name: z3.string().nullable(),
description: z3.string().nullable(),
server_type: z3.string().nullable(),
latest_version: z3.string(),
downloads: z3.number(),
github_repo: z3.string().nullable(),
created_at: z3.union([z3.string(), z3.date()])
});
var UnclaimedPackagesResponseSchema = z2.object({
packages: z2.array(UnclaimedPackageSchema),
total: z2.number(),
var UnclaimedPackagesResponseSchema = z3.object({
packages: z3.array(UnclaimedPackageSchema),
total: z3.number(),
pagination: PaginationSchema

@@ -351,28 +416,28 @@ });

// src/auth.ts
import { z as z3 } from "zod";
var UserProfileSchema = z3.object({
id: z3.string(),
email: z3.string().email(),
emailVerified: z3.boolean(),
username: z3.string().nullable(),
name: z3.string().nullable(),
avatarUrl: z3.string().nullable(),
githubUsername: z3.string().nullable(),
githubLinked: z3.boolean(),
verified: z3.boolean(),
publishedBundles: z3.number(),
totalDownloads: z3.number(),
role: z3.string().nullable(),
createdAt: z3.union([z3.string(), z3.date()]).nullable(),
lastLoginAt: z3.union([z3.string(), z3.date()]).nullable()
import { z as z4 } from "zod";
var UserProfileSchema = z4.object({
id: z4.string(),
email: z4.string().email(),
emailVerified: z4.boolean(),
username: z4.string().nullable(),
name: z4.string().nullable(),
avatarUrl: z4.string().nullable(),
githubUsername: z4.string().nullable(),
githubLinked: z4.boolean(),
verified: z4.boolean(),
publishedBundles: z4.number(),
totalDownloads: z4.number(),
role: z4.string().nullable(),
createdAt: z4.union([z4.string(), z4.date()]).nullable(),
lastLoginAt: z4.union([z4.string(), z4.date()]).nullable()
});
// src/skill.ts
import { z as z4 } from "zod";
var SkillNameSchema = z4.string().min(1).max(64).regex(
import { z as z5 } from "zod";
var SkillNameSchema = z5.string().min(1).max(64).regex(
/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,
"Lowercase alphanumeric with single hyphens, cannot start/end with hyphen"
);
var SkillDescriptionSchema = z4.string().min(1).max(1024);
var SkillCategorySchema = z4.enum([
var SkillDescriptionSchema = z5.string().min(1).max(1024);
var SkillCategorySchema = z5.enum([
"development",

@@ -388,112 +453,110 @@ "writing",

]);
var SkillAuthorSchema = z4.object({
name: z4.string().min(1),
url: z4.string().url().optional(),
email: z4.string().email().optional()
var SkillAuthorSchema = z5.object({
name: z5.string().min(1),
url: z5.string().url().optional(),
email: z5.string().email().optional()
});
var SkillExampleSchema = z4.object({
prompt: z4.string().min(1),
context: z4.string().optional()
var SkillExampleSchema = z5.object({
prompt: z5.string().min(1),
context: z5.string().optional()
});
var SkillDiscoveryMetadataSchema = z4.object({
tags: z4.array(z4.string().max(32)).max(10).optional(),
var SkillDiscoveryMetadataSchema = z5.object({
tags: z5.array(z5.string().max(32)).max(10).optional(),
category: SkillCategorySchema.optional(),
triggers: z4.array(z4.string().max(128)).max(20).optional(),
keywords: z4.array(z4.string().max(32)).max(30).optional(),
triggers: z5.array(z5.string().max(128)).max(20).optional(),
keywords: z5.array(z5.string().max(32)).max(30).optional(),
author: SkillAuthorSchema.optional(),
version: z4.string().optional(),
examples: z4.array(SkillExampleSchema).max(5).optional()
version: z5.string().optional(),
examples: z5.array(SkillExampleSchema).max(5).optional()
}).passthrough();
var SkillFrontmatterSchema = z4.object({
var SkillFrontmatterSchema = z5.object({
name: SkillNameSchema,
description: SkillDescriptionSchema,
license: z4.string().optional(),
compatibility: z4.string().max(500).optional(),
"allowed-tools": z4.string().optional(),
version: z5.string().optional(),
license: z5.string().optional(),
compatibility: z5.string().max(500).optional(),
"allowed-tools": z5.string().optional(),
metadata: SkillDiscoveryMetadataSchema.optional()
});
var ScopedSkillNameSchema = z4.string().regex(
/^@[a-z0-9][a-z0-9-]*\/[a-z0-9][a-z0-9-]*$/,
"Scoped name format: @scope/name"
);
var SkillArtifactSchema = z4.object({
filename: z4.string().regex(/\.skill$/, "Must have .skill extension"),
sha256: z4.string().length(64),
size: z4.number().int().positive()
var ScopedSkillNameSchema = z5.string().regex(/^@[a-z0-9][a-z0-9-]*\/[a-z0-9][a-z0-9-]*$/, "Scoped name format: @scope/name");
var SkillArtifactSchema = z5.object({
filename: z5.string().regex(/\.skill$/, "Must have .skill extension"),
sha256: z5.string().length(64),
size: z5.number().int().positive()
});
var SkillAnnounceRequestSchema = z4.object({
var SkillAnnounceRequestSchema = z5.object({
name: ScopedSkillNameSchema,
version: z4.string(),
version: z5.string(),
skill: SkillFrontmatterSchema,
release_tag: z4.string(),
prerelease: z4.boolean().optional().default(false),
release_tag: z5.string(),
prerelease: z5.boolean().optional().default(false),
artifact: SkillArtifactSchema
});
var SkillAnnounceResponseSchema = z4.object({
skill: z4.string(),
version: z4.string(),
status: z4.enum(["created", "exists"])
var SkillAnnounceResponseSchema = z5.object({
skill: z5.string(),
version: z5.string(),
status: z5.enum(["created", "exists"])
});
var SkillSearchParamsSchema = z4.object({
q: z4.string().optional(),
tags: z4.string().optional(),
var SkillSearchParamsSchema = z5.object({
q: z5.string().optional(),
tags: z5.string().optional(),
category: SkillCategorySchema.optional(),
sort: z4.enum(["downloads", "recent", "name"]).optional(),
limit: z4.union([z4.string(), z4.number()]).optional(),
offset: z4.union([z4.string(), z4.number()]).optional()
sort: z5.enum(["downloads", "recent", "name"]).optional(),
limit: z5.union([z5.string(), z5.number()]).optional(),
offset: z5.union([z5.string(), z5.number()]).optional()
});
var SkillSummarySchema = z4.object({
name: z4.string(),
description: z4.string(),
latest_version: z4.string(),
tags: z4.array(z4.string()).optional(),
var SkillSummarySchema = z5.object({
name: z5.string(),
description: z5.string(),
latest_version: z5.string(),
tags: z5.array(z5.string()).optional(),
category: SkillCategorySchema.optional(),
downloads: z4.number(),
published_at: z4.string(),
downloads: z5.number(),
published_at: z5.string(),
author: SkillAuthorSchema.optional()
});
var SkillSearchResponseSchema = z4.object({
skills: z4.array(SkillSummarySchema),
total: z4.number(),
pagination: z4.object({
limit: z4.number(),
offset: z4.number(),
has_more: z4.boolean()
var SkillSearchResponseSchema = z5.object({
skills: z5.array(SkillSummarySchema),
total: z5.number(),
pagination: z5.object({
limit: z5.number(),
offset: z5.number(),
has_more: z5.boolean()
})
});
var SkillDetailSchema = z4.object({
name: z4.string(),
description: z4.string(),
latest_version: z4.string(),
license: z4.string().optional(),
compatibility: z4.string().optional(),
allowed_tools: z4.array(z4.string()).optional(),
tags: z4.array(z4.string()).optional(),
var SkillDetailSchema = z5.object({
name: z5.string(),
description: z5.string(),
latest_version: z5.string(),
license: z5.string().optional(),
compatibility: z5.string().optional(),
allowed_tools: z5.array(z5.string()).optional(),
tags: z5.array(z5.string()).optional(),
category: SkillCategorySchema.optional(),
triggers: z4.array(z4.string()).optional(),
downloads: z4.number(),
published_at: z4.string(),
triggers: z5.array(z5.string()).optional(),
downloads: z5.number(),
published_at: z5.string(),
author: SkillAuthorSchema.optional(),
examples: z4.array(SkillExampleSchema).optional(),
versions: z4.array(
z4.object({
version: z4.string(),
published_at: z4.string(),
downloads: z4.number()
examples: z5.array(SkillExampleSchema).optional(),
versions: z5.array(
z5.object({
version: z5.string(),
published_at: z5.string(),
downloads: z5.number()
})
)
});
var SkillDownloadInfoSchema = z4.object({
url: z4.string(),
skill: z4.object({
name: z4.string(),
version: z4.string(),
sha256: z4.string(),
size: z4.number()
var SkillDownloadInfoSchema = z5.object({
url: z5.string(),
skill: z5.object({
name: z5.string(),
version: z5.string(),
sha256: z5.string(),
size: z5.number()
}),
expires_at: z4.string()
expires_at: z5.string()
});
// src/mpak-json.ts
import { z as z5 } from "zod";
import { z as z6 } from "zod";
var MPAK_SCHEMA_VERSION = "2025-10-19";

@@ -503,12 +566,12 @@ var MPAK_SCHEMA_URL = `https://cdn.mpak.dev/schemas/${MPAK_SCHEMA_VERSION}/mpak.json`;

var GitHubUsernamePattern = /^[a-z0-9][a-z0-9-]{0,38}$/i;
var MpakJsonSchema = z5.object({
$schema: z5.string().optional(),
name: z5.string().regex(
var MpakJsonSchema = z6.object({
$schema: z6.string().optional(),
name: z6.string().regex(
ScopedPackageNamePattern,
"Package name must be scoped (e.g., @username/package-name)"
),
maintainers: z5.array(
z5.string().regex(GitHubUsernamePattern, "Must be a valid GitHub username")
maintainers: z6.array(
z6.string().regex(GitHubUsernamePattern, "Must be a valid GitHub username")
).min(1, "At least one maintainer is required"),
version: z5.string().optional()
version: z6.string().optional()
});

@@ -558,2 +621,11 @@ var MPAK_JSON_SCHEMA = {

// src/cache.ts
import { z as z7 } from "zod";
var CacheMetadataSchema = z7.object({
version: z7.string(),
pulledAt: z7.string(),
lastCheckedAt: z7.string().optional(),
platform: PlatformInfoSchema
}).strict();
// src/validation.ts

@@ -630,4 +702,8 @@ function validate(schema, data) {

BundleDetailSchema,
BundleDownloadParamsSchema,
BundleSchema,
BundleSearchParamsSchema,
BundleSearchResponseSchema,
CacheMetadataSchema,
CapabilitySchema,
CertificationSchema,

@@ -644,2 +720,6 @@ ClaimResponseSchema,

MPAK_SCHEMA_VERSION,
ManifestAuthorSchema,
ManifestServerSchema,
McpConfigSchema,
McpbManifestSchema,
MpakJsonSchema,

@@ -684,2 +764,3 @@ MyPackagesResponseSchema,

UnclaimedPackagesResponseSchema,
UserConfigFieldSchema,
UserProfileSchema,

@@ -686,0 +767,0 @@ VersionDetailSchema,

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/package.ts","../src/api-responses.ts","../src/auth.ts","../src/skill.ts","../src/mpak-json.ts","../src/validation.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// =============================================================================\n// Enums & Search Params\n// =============================================================================\n\n/** Server runtime type */\nexport const ServerTypeSchema = z.enum([\"node\", \"python\", \"binary\"]);\n\n/** Supported operating system platforms */\nexport const PlatformSchema = z.enum([\"darwin\", \"win32\", \"linux\"]);\n\n/** Sort options for package listings */\nexport const PackageSortSchema = z.enum([\"downloads\", \"recent\", \"name\"]);\n\n/**\n * Package search query parameters.\n * HTTP query params arrive as strings, so limit/offset accept both.\n */\nexport const PackageSearchParamsSchema = z.object({\n q: z.string().optional(),\n type: ServerTypeSchema.optional(),\n tool: z.string().optional(),\n prompt: z.string().optional(),\n platform: PlatformSchema.optional(),\n sort: PackageSortSchema.optional(),\n limit: z.union([z.string(), z.number()]).optional(),\n offset: z.union([z.string(), z.number()]).optional(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type ServerType = z.infer<typeof ServerTypeSchema>;\nexport type Platform = z.infer<typeof PlatformSchema>;\nexport type PackageSort = z.infer<typeof PackageSortSchema>;\nexport type PackageSearchParams = z.infer<typeof PackageSearchParamsSchema>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// Shared Components\n// =============================================================================\n\n/** Package author information */\nexport const PackageAuthorSchema = z.object({\n name: z.string(),\n});\n\n/** Tool exposed by a package */\nexport const PackageToolSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n});\n\n/** GitHub repository metadata */\nexport const PackageGitHubSchema = z.object({\n repo: z.string(),\n stars: z.number().nullable(),\n forks: z.number().nullable(),\n watchers: z.number().nullable(),\n updated_at: z.string().nullable().optional(),\n});\n\n/** Reusable pagination envelope */\nexport const PaginationSchema = z.object({\n limit: z.number(),\n offset: z.number(),\n has_more: z.boolean(),\n});\n\n// =============================================================================\n// Package Schemas (internal / web UI API)\n// =============================================================================\n\n/** Package list item (search/list endpoints) */\nexport const PackageSchema = z.object({\n name: z.string(),\n display_name: z.string().nullable(),\n description: z.string().nullable(),\n author: PackageAuthorSchema.nullable(),\n latest_version: z.string(),\n icon: z.string().nullable(),\n server_type: z.string(),\n tools: z.array(PackageToolSchema),\n downloads: z.number(),\n published_at: z.union([z.string(), z.date()]),\n verified: z.boolean(),\n claimable: z.boolean().optional(),\n claimed: z.boolean().optional(),\n github: PackageGitHubSchema.nullable().optional(),\n certification_level: z.number().nullable().optional(),\n});\n\n/** Platform-specific artifact */\nexport const ArtifactSchema = z.object({\n os: z.string(),\n arch: z.string(),\n size_bytes: z.number(),\n digest: z.string(),\n downloads: z.number(),\n});\n\n/** Build/publish provenance attestation */\nexport const ProvenanceSchema = z.object({\n publish_method: z.string().nullable(),\n repository: z.string().nullable(),\n sha: z.string().nullable(),\n});\n\n/** MTF certification level */\nexport const CertificationSchema = z.object({\n level: z.number().nullable(),\n level_name: z.string().nullable(),\n controls_passed: z.number().nullable(),\n controls_failed: z.number().nullable(),\n controls_total: z.number().nullable(),\n});\n\n/** Scorecard finding (prioritized issue to fix) */\nexport const ScorecardFindingSchema = z.object({\n id: z.string(),\n control: z.string(),\n severity: z.enum([\"critical\", \"high\", \"medium\", \"low\", \"info\"]),\n title: z.string(),\n description: z.string(),\n file: z.string().nullable(),\n line: z.number().nullable(),\n remediation: z.string().nullable(),\n});\n\n/** Individual control within a security domain */\nexport const DomainControlSchema = z.object({\n status: z.enum([\"pass\", \"fail\", \"skip\", \"error\"]),\n name: z.string(),\n findings_count: z.number(),\n});\n\n/** Security domain (group of related controls) */\nexport const SecurityDomainSchema = z.object({\n display_name: z.string(),\n controls_passed: z.number(),\n controls_total: z.number(),\n controls: z.record(z.string(), DomainControlSchema),\n});\n\n/** Security scan summary */\nexport const SecurityScanSchema = z.object({\n status: z.enum([\"pending\", \"scanning\", \"completed\", \"failed\"]),\n risk_score: z.enum([\"CRITICAL\", \"HIGH\", \"MEDIUM\", \"LOW\"]).nullable(),\n scanned_at: z.union([z.string(), z.date()]).nullable(),\n certification: CertificationSchema.nullable().optional(),\n summary: z\n .object({\n components: z.number(),\n vulnerabilities: z.object({\n critical: z.number(),\n high: z.number(),\n medium: z.number(),\n low: z.number(),\n }),\n secrets: z.number(),\n malicious: z.number(),\n code_issues: z.number(),\n })\n .optional(),\n domains: z.record(z.string(), SecurityDomainSchema).optional(),\n findings: z.array(ScorecardFindingSchema).optional(),\n});\n\n/** Package version detail */\nexport const PackageVersionSchema = z.object({\n version: z.string(),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n artifacts: z.array(ArtifactSchema).optional(),\n readme: z.string().nullable().optional(),\n provenance: ProvenanceSchema.nullable().optional(),\n release_url: z.string().nullable().optional(),\n prerelease: z.boolean().optional(),\n manifest: z.record(z.string(), z.unknown()).nullable().optional(),\n security_scan: SecurityScanSchema.nullable().optional(),\n});\n\n/** Claiming status for a package */\nexport const PackageClaimingSchema = z.object({\n claimable: z.boolean(),\n claimed: z.boolean(),\n claimed_by: z.string().nullable(),\n claimed_at: z.union([z.string(), z.date()]).nullable(),\n github_repo: z.string().nullable(),\n});\n\n/** Full package detail (single-package endpoint) */\nexport const PackageDetailSchema = PackageSchema.extend({\n homepage: z.string().nullable(),\n license: z.string().nullable(),\n claiming: PackageClaimingSchema,\n versions: z.array(PackageVersionSchema),\n});\n\n/** Package search response envelope */\nexport const PackageSearchResponseSchema = z.object({\n packages: z.array(PackageSchema),\n total: z.number(),\n});\n\n// =============================================================================\n// V1 Bundle API Schemas\n// =============================================================================\n\n/** Platform info (os + arch) */\nexport const PlatformInfoSchema = z.object({\n os: z.string(),\n arch: z.string(),\n});\n\n/** Full provenance (v1 API) */\nexport const FullProvenanceSchema = z.object({\n schema_version: z.string(),\n provider: z.string(),\n repository: z.string(),\n sha: z.string(),\n});\n\n/** Bundle summary (v1 API) */\nexport const BundleSchema = z.object({\n name: z.string(),\n display_name: z.string().nullable().optional(),\n description: z.string().nullable().optional(),\n author: PackageAuthorSchema.nullable().optional(),\n latest_version: z.string(),\n icon: z.string().nullable().optional(),\n server_type: z.string().nullable().optional(),\n tools: z.array(PackageToolSchema).optional(),\n downloads: z.number(),\n published_at: z.union([z.string(), z.date()]),\n verified: z.boolean(),\n provenance: FullProvenanceSchema.nullable().optional(),\n certification_level: z.number().nullable().optional(),\n});\n\n/** Bundle detail (v1 API) */\nexport const BundleDetailSchema = BundleSchema.extend({\n homepage: z.string().nullable().optional(),\n license: z.string().nullable().optional(),\n certification: CertificationSchema.nullable().optional(),\n versions: z.array(\n z.object({\n version: z.string(),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n }),\n ),\n});\n\n/** Bundle search response (v1 API) */\nexport const BundleSearchResponseSchema = z.object({\n bundles: z.array(BundleSchema),\n total: z.number(),\n pagination: z.object({\n limit: z.number(),\n offset: z.number(),\n has_more: z.boolean(),\n }),\n});\n\n/** Version info with platforms */\nexport const VersionInfoSchema = z.object({\n version: z.string(),\n artifacts_count: z.number(),\n platforms: z.array(PlatformInfoSchema),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n publish_method: z.string().nullable(),\n provenance: FullProvenanceSchema.nullable().optional(),\n});\n\n/** Versions listing response (v1 API) */\nexport const VersionsResponseSchema = z.object({\n name: z.string(),\n latest: z.string(),\n versions: z.array(VersionInfoSchema),\n});\n\n/** Download info (v1 API) */\nexport const DownloadInfoSchema = z.object({\n url: z.string(),\n bundle: z.object({\n name: z.string(),\n version: z.string(),\n platform: PlatformInfoSchema,\n sha256: z.string(),\n size: z.number(),\n }),\n expires_at: z.string().optional(),\n});\n\n/** Version detail with artifacts (v1 API) */\nexport const VersionDetailSchema = z.object({\n name: z.string(),\n version: z.string(),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n artifacts: z.array(\n z.object({\n platform: PlatformInfoSchema,\n digest: z.string(),\n size: z.number(),\n download_url: z.string(),\n source_url: z.string().optional(),\n }),\n ),\n manifest: z.record(z.string(), z.unknown()),\n release: z\n .object({\n tag: z.string().nullable(),\n url: z.string().nullable(),\n })\n .optional(),\n publish_method: z.string().nullable(),\n provenance: FullProvenanceSchema.nullable(),\n});\n\n/** MCPB index response */\nexport const MCPBIndexSchema = z.object({\n index_version: z.string(),\n mimeType: z.string(),\n name: z.string(),\n version: z.string(),\n description: z.string().nullable(),\n bundles: z.array(\n z.object({\n mimeType: z.string().nullable(),\n digest: z.string(),\n size: z.number(),\n platform: PlatformInfoSchema,\n urls: z.array(z.string()),\n }),\n ),\n annotations: z.record(z.string(), z.string()).optional(),\n});\n\n/** Announce request (per-artifact from GitHub Actions) */\nexport const AnnounceRequestSchema = z.object({\n name: z.string(),\n version: z.string(),\n manifest: z.record(z.string(), z.unknown()),\n release_tag: z.string(),\n prerelease: z.boolean().optional().default(false),\n artifact: z.object({\n filename: z.string(),\n os: z.string(),\n arch: z.string(),\n sha256: z.string(),\n size: z.number(),\n }),\n});\n\n/** Announce response (per-artifact, idempotent) */\nexport const AnnounceResponseSchema = z.object({\n package: z.string(),\n version: z.string(),\n artifact: z.object({\n os: z.string(),\n arch: z.string(),\n filename: z.string(),\n }),\n total_artifacts: z.number(),\n status: z.enum([\"created\", \"updated\"]),\n});\n\n// =============================================================================\n// Internal API Schemas (web UI, not exposed publicly)\n// =============================================================================\n\n/** Publish response */\nexport const PublishResponseSchema = z.object({\n success: z.boolean(),\n package: z.object({\n name: z.string(),\n version: z.string(),\n manifest: z.record(z.string(), z.unknown()),\n }),\n sha256: z.string(),\n size: z.number(),\n url: z.string(),\n auto_claimed: z.boolean().optional(),\n message: z.string().optional(),\n});\n\n/** Internal download response */\nexport const InternalDownloadResponseSchema = z.object({\n url: z.string(),\n package: z.object({\n name: z.string(),\n version: z.string(),\n sha256: z.string(),\n size: z.number(),\n }),\n expires_at: z.string(),\n});\n\n/** Claim status response */\nexport const ClaimStatusResponseSchema = z.object({\n claimable: z.boolean(),\n reason: z.string().optional(),\n claimed_by: z.string().nullable().optional(),\n claimed_at: z.union([z.string(), z.date()]).nullable().optional(),\n package_name: z.string().optional(),\n github_repo: z.string().nullable().optional(),\n instructions: z\n .object({\n steps: z.array(z.string()),\n mpak_json_example: z.string(),\n verification_url: z.string().nullable(),\n })\n .optional(),\n});\n\n/** Claim response */\nexport const ClaimResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n package: z.object({\n name: z.string(),\n claimed_by: z.string().nullable(),\n claimed_at: z.union([z.string(), z.date()]).nullable(),\n github_repo: z.string().nullable(),\n }),\n verification: z.object({\n mpak_json_url: z.string().nullable().optional(),\n verified_at: z.string(),\n }),\n});\n\n/** My packages response */\nexport const MyPackagesResponseSchema = z.object({\n packages: z.array(PackageSchema),\n total: z.number(),\n pagination: PaginationSchema,\n});\n\n/** Unclaimed package summary */\nexport const UnclaimedPackageSchema = z.object({\n name: z.string(),\n display_name: z.string().nullable(),\n description: z.string().nullable(),\n server_type: z.string().nullable(),\n latest_version: z.string(),\n downloads: z.number(),\n github_repo: z.string().nullable(),\n created_at: z.union([z.string(), z.date()]),\n});\n\n/** Unclaimed packages response */\nexport const UnclaimedPackagesResponseSchema = z.object({\n packages: z.array(UnclaimedPackageSchema),\n total: z.number(),\n pagination: PaginationSchema,\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\n// Core types\nexport type PackageAuthor = z.infer<typeof PackageAuthorSchema>;\nexport type PackageTool = z.infer<typeof PackageToolSchema>;\nexport type PackageGitHub = z.infer<typeof PackageGitHubSchema>;\nexport type Package = z.infer<typeof PackageSchema>;\nexport type Artifact = z.infer<typeof ArtifactSchema>;\nexport type Provenance = z.infer<typeof ProvenanceSchema>;\nexport type ScorecardFinding = z.infer<typeof ScorecardFindingSchema>;\nexport type DomainControl = z.infer<typeof DomainControlSchema>;\nexport type SecurityDomain = z.infer<typeof SecurityDomainSchema>;\nexport type Certification = z.infer<typeof CertificationSchema>;\nexport type SecurityScan = z.infer<typeof SecurityScanSchema>;\nexport type PackageVersion = z.infer<typeof PackageVersionSchema>;\nexport type PackageClaiming = z.infer<typeof PackageClaimingSchema>;\nexport type PackageDetail = z.infer<typeof PackageDetailSchema>;\nexport type PackageSearchResponse = z.infer<typeof PackageSearchResponseSchema>;\n\n// V1 API types\nexport type PlatformInfo = z.infer<typeof PlatformInfoSchema>;\nexport type FullProvenance = z.infer<typeof FullProvenanceSchema>;\nexport type Bundle = z.infer<typeof BundleSchema>;\nexport type BundleDetail = z.infer<typeof BundleDetailSchema>;\nexport type BundleSearchResponse = z.infer<typeof BundleSearchResponseSchema>;\nexport type VersionInfo = z.infer<typeof VersionInfoSchema>;\nexport type VersionsResponse = z.infer<typeof VersionsResponseSchema>;\nexport type DownloadInfo = z.infer<typeof DownloadInfoSchema>;\nexport type VersionDetail = z.infer<typeof VersionDetailSchema>;\nexport type MCPBIndex = z.infer<typeof MCPBIndexSchema>;\nexport type AnnounceRequest = z.infer<typeof AnnounceRequestSchema>;\nexport type AnnounceResponse = z.infer<typeof AnnounceResponseSchema>;\n\n// Internal API types\nexport type Pagination = z.infer<typeof PaginationSchema>;\nexport type PublishResponse = z.infer<typeof PublishResponseSchema>;\nexport type InternalDownloadResponse = z.infer<\n typeof InternalDownloadResponseSchema\n>;\nexport type ClaimStatusResponse = z.infer<typeof ClaimStatusResponseSchema>;\nexport type ClaimResponse = z.infer<typeof ClaimResponseSchema>;\nexport type MyPackagesResponse = z.infer<typeof MyPackagesResponseSchema>;\nexport type UnclaimedPackage = z.infer<typeof UnclaimedPackageSchema>;\nexport type UnclaimedPackagesResponse = z.infer<\n typeof UnclaimedPackagesResponseSchema\n>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// Auth Schemas\n// =============================================================================\n\n/** User profile response from /app/auth/me */\nexport const UserProfileSchema = z.object({\n id: z.string(),\n email: z.string().email(),\n emailVerified: z.boolean(),\n username: z.string().nullable(),\n name: z.string().nullable(),\n avatarUrl: z.string().nullable(),\n githubUsername: z.string().nullable(),\n githubLinked: z.boolean(),\n verified: z.boolean(),\n publishedBundles: z.number(),\n totalDownloads: z.number(),\n role: z.string().nullable(),\n createdAt: z.union([z.string(), z.date()]).nullable(),\n lastLoginAt: z.union([z.string(), z.date()]).nullable(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type UserProfile = z.infer<typeof UserProfileSchema>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// Agent Skills Specification - Skill Frontmatter Schema\n// https://agentskills.io/specification\n// =============================================================================\n\n/**\n * Skill name validation.\n * 1-64 characters, lowercase alphanumeric with single hyphens,\n * cannot start or end with hyphen.\n */\nexport const SkillNameSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(\n /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,\n \"Lowercase alphanumeric with single hyphens, cannot start/end with hyphen\",\n );\n\n/** Skill description (1-1024 characters) */\nexport const SkillDescriptionSchema = z.string().min(1).max(1024);\n\n// =============================================================================\n// Discovery Metadata Extension (via metadata: field)\n// =============================================================================\n\n/** Category taxonomy for skill discovery */\nexport const SkillCategorySchema = z.enum([\n \"development\",\n \"writing\",\n \"research\",\n \"consulting\",\n \"data\",\n \"design\",\n \"operations\",\n \"security\",\n \"other\",\n]);\n\n/** Author information for attribution */\nexport const SkillAuthorSchema = z.object({\n name: z.string().min(1),\n url: z.string().url().optional(),\n email: z.string().email().optional(),\n});\n\n/** Example usage for discovery */\nexport const SkillExampleSchema = z.object({\n prompt: z.string().min(1),\n context: z.string().optional(),\n});\n\n/**\n * Discovery metadata (via metadata: field in frontmatter).\n * All fields optional; skills can start minimal and add discovery metadata later.\n */\nexport const SkillDiscoveryMetadataSchema = z\n .object({\n tags: z.array(z.string().max(32)).max(10).optional(),\n category: SkillCategorySchema.optional(),\n triggers: z.array(z.string().max(128)).max(20).optional(),\n keywords: z.array(z.string().max(32)).max(30).optional(),\n author: SkillAuthorSchema.optional(),\n version: z.string().optional(),\n examples: z.array(SkillExampleSchema).max(5).optional(),\n })\n .passthrough();\n\n// =============================================================================\n// Complete SKILL.md Frontmatter Schema\n// =============================================================================\n\n/**\n * Complete SKILL.md frontmatter schema.\n * Combines official Agent Skills spec with discovery metadata extension.\n */\nexport const SkillFrontmatterSchema = z.object({\n name: SkillNameSchema,\n description: SkillDescriptionSchema,\n license: z.string().optional(),\n compatibility: z.string().max(500).optional(),\n \"allowed-tools\": z.string().optional(),\n metadata: SkillDiscoveryMetadataSchema.optional(),\n});\n\n// =============================================================================\n// Registry API Schemas\n// =============================================================================\n\n/** Scoped skill name for registry (e.g., @nimblebraininc/strategic-thought-partner) */\nexport const ScopedSkillNameSchema = z\n .string()\n .regex(\n /^@[a-z0-9][a-z0-9-]*\\/[a-z0-9][a-z0-9-]*$/,\n \"Scoped name format: @scope/name\",\n );\n\n/** Skill artifact info for announce endpoint */\nexport const SkillArtifactSchema = z.object({\n filename: z.string().regex(/\\.skill$/, \"Must have .skill extension\"),\n sha256: z.string().length(64),\n size: z.number().int().positive(),\n});\n\n/** Announce request for POST /v1/skills/announce */\nexport const SkillAnnounceRequestSchema = z.object({\n name: ScopedSkillNameSchema,\n version: z.string(),\n skill: SkillFrontmatterSchema,\n release_tag: z.string(),\n prerelease: z.boolean().optional().default(false),\n artifact: SkillArtifactSchema,\n});\n\n/** Announce response */\nexport const SkillAnnounceResponseSchema = z.object({\n skill: z.string(),\n version: z.string(),\n status: z.enum([\"created\", \"exists\"]),\n});\n\n// =============================================================================\n// Search/List API Schemas\n// =============================================================================\n\n/** Skill search parameters */\nexport const SkillSearchParamsSchema = z.object({\n q: z.string().optional(),\n tags: z.string().optional(),\n category: SkillCategorySchema.optional(),\n sort: z.enum([\"downloads\", \"recent\", \"name\"]).optional(),\n limit: z.union([z.string(), z.number()]).optional(),\n offset: z.union([z.string(), z.number()]).optional(),\n});\n\n/** Skill summary for search results */\nexport const SkillSummarySchema = z.object({\n name: z.string(),\n description: z.string(),\n latest_version: z.string(),\n tags: z.array(z.string()).optional(),\n category: SkillCategorySchema.optional(),\n downloads: z.number(),\n published_at: z.string(),\n author: SkillAuthorSchema.optional(),\n});\n\n/** Skill search response */\nexport const SkillSearchResponseSchema = z.object({\n skills: z.array(SkillSummarySchema),\n total: z.number(),\n pagination: z.object({\n limit: z.number(),\n offset: z.number(),\n has_more: z.boolean(),\n }),\n});\n\n/** Skill detail response */\nexport const SkillDetailSchema = z.object({\n name: z.string(),\n description: z.string(),\n latest_version: z.string(),\n license: z.string().optional(),\n compatibility: z.string().optional(),\n allowed_tools: z.array(z.string()).optional(),\n tags: z.array(z.string()).optional(),\n category: SkillCategorySchema.optional(),\n triggers: z.array(z.string()).optional(),\n downloads: z.number(),\n published_at: z.string(),\n author: SkillAuthorSchema.optional(),\n examples: z.array(SkillExampleSchema).optional(),\n versions: z.array(\n z.object({\n version: z.string(),\n published_at: z.string(),\n downloads: z.number(),\n }),\n ),\n});\n\n/** Skill download info response */\nexport const SkillDownloadInfoSchema = z.object({\n url: z.string(),\n skill: z.object({\n name: z.string(),\n version: z.string(),\n sha256: z.string(),\n size: z.number(),\n }),\n expires_at: z.string(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type SkillName = z.infer<typeof SkillNameSchema>;\nexport type SkillCategory = z.infer<typeof SkillCategorySchema>;\nexport type SkillAuthor = z.infer<typeof SkillAuthorSchema>;\nexport type SkillExample = z.infer<typeof SkillExampleSchema>;\nexport type SkillDiscoveryMetadata = z.infer<\n typeof SkillDiscoveryMetadataSchema\n>;\nexport type SkillFrontmatter = z.infer<typeof SkillFrontmatterSchema>;\nexport type ScopedSkillName = z.infer<typeof ScopedSkillNameSchema>;\nexport type SkillArtifact = z.infer<typeof SkillArtifactSchema>;\nexport type SkillAnnounceRequest = z.infer<typeof SkillAnnounceRequestSchema>;\nexport type SkillAnnounceResponse = z.infer<typeof SkillAnnounceResponseSchema>;\nexport type SkillSearchParams = z.infer<typeof SkillSearchParamsSchema>;\nexport type SkillSummary = z.infer<typeof SkillSummarySchema>;\nexport type SkillSearchResponse = z.infer<typeof SkillSearchResponseSchema>;\nexport type SkillDetail = z.infer<typeof SkillDetailSchema>;\nexport type SkillDownloadInfo = z.infer<typeof SkillDownloadInfoSchema>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// mpak.json Schema Definition\n//\n// Defines the schema for mpak.json files placed in GitHub repositories to\n// claim ownership of packages in the registry.\n//\n// Location: https://github.com/{owner}/{repo}/mpak.json\n//\n// Example:\n// {\n// \"$schema\": \"https://cdn.mpak.dev/schemas/2025-10-19/mpak.json\",\n// \"name\": \"@username/package-name\",\n// \"maintainers\": [\"github-username\"]\n// }\n// =============================================================================\n\n/** Schema version (update when making breaking changes) */\nexport const MPAK_SCHEMA_VERSION = \"2025-10-19\";\n\n/** Canonical schema URL for IDE autocompletion */\nexport const MPAK_SCHEMA_URL = `https://cdn.mpak.dev/schemas/${MPAK_SCHEMA_VERSION}/mpak.json`;\n\n// =============================================================================\n// Zod Schema\n// =============================================================================\n\n/** Scoped package name pattern */\nconst ScopedPackageNamePattern =\n /^@[a-z0-9][a-z0-9-]{0,38}\\/[a-z0-9][a-z0-9-]{0,213}$/;\n\n/** GitHub username pattern */\nconst GitHubUsernamePattern = /^[a-z0-9][a-z0-9-]{0,38}$/i;\n\n/** Zod schema for mpak.json */\nexport const MpakJsonSchema = z.object({\n $schema: z.string().optional(),\n name: z\n .string()\n .regex(\n ScopedPackageNamePattern,\n \"Package name must be scoped (e.g., @username/package-name)\",\n ),\n maintainers: z\n .array(\n z\n .string()\n .regex(GitHubUsernamePattern, \"Must be a valid GitHub username\"),\n )\n .min(1, \"At least one maintainer is required\"),\n version: z.string().optional(),\n});\n\n/** TypeScript type for mpak.json */\nexport type MpakJson = z.infer<typeof MpakJsonSchema>;\n\n// =============================================================================\n// JSON Schema (for IDE autocomplete and CDN hosting)\n// =============================================================================\n\n/** JSON Schema definition for mpak.json */\nexport const MPAK_JSON_SCHEMA = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n $id: MPAK_SCHEMA_URL,\n title: \"mpak.json\",\n description:\n \"Configuration file for claiming package ownership in the mpak registry\",\n type: \"object\" as const,\n required: [\"name\", \"maintainers\"],\n properties: {\n $schema: {\n type: \"string\" as const,\n description: \"JSON Schema URL for validation\",\n default: MPAK_SCHEMA_URL,\n },\n name: {\n type: \"string\" as const,\n description:\n \"Package name in the registry (must be scoped, e.g., @username/package)\",\n pattern: \"^@[a-z0-9][a-z0-9-]{0,38}/[a-z0-9][a-z0-9-]{0,213}$\",\n },\n maintainers: {\n type: \"array\" as const,\n description: \"GitHub usernames of package maintainers\",\n items: {\n type: \"string\" as const,\n pattern: \"^[a-z0-9][a-z0-9-]{0,38}$\",\n },\n minItems: 1,\n },\n version: {\n type: \"string\" as const,\n description: \"Schema version\",\n },\n },\n additionalProperties: false,\n} as const;\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Generate an example mpak.json content string.\n */\nexport function generateMpakJsonExample(\n packageName: string,\n githubUsername: string,\n): string {\n const example: MpakJson = {\n $schema: MPAK_SCHEMA_URL,\n name: packageName,\n maintainers: [githubUsername],\n };\n return JSON.stringify(example, null, 2);\n}\n","import type { z } from \"zod\";\n\nimport {\n AnnounceRequestSchema,\n BundleDetailSchema,\n BundleSchema,\n BundleSearchResponseSchema,\n DownloadInfoSchema,\n MCPBIndexSchema,\n PackageDetailSchema,\n PackageSchema,\n PackageSearchResponseSchema,\n VersionDetailSchema,\n VersionsResponseSchema,\n} from \"./api-responses.js\";\nimport { UserProfileSchema } from \"./auth.js\";\nimport { MpakJsonSchema } from \"./mpak-json.js\";\nimport { PackageSearchParamsSchema } from \"./package.js\";\nimport {\n SkillAnnounceRequestSchema,\n SkillDetailSchema,\n SkillFrontmatterSchema,\n SkillSearchResponseSchema,\n} from \"./skill.js\";\n\n// =============================================================================\n// Validation Result Type\n// =============================================================================\n\n/**\n * Result of a schema validation.\n * On success, `data` contains the parsed (and typed) value.\n * On failure, `errors` contains human-readable error messages.\n */\nexport type ValidationResult<T> =\n | { success: true; data: T; errors?: undefined }\n | { success: false; data?: undefined; errors: string[] };\n\n// =============================================================================\n// Generic Validator\n// =============================================================================\n\n/**\n * Validate unknown data against a Zod schema, returning a friendly result.\n */\nfunction validate<T>(\n schema: z.ZodType<T>,\n data: unknown,\n): ValidationResult<T> {\n const result = schema.safeParse(data);\n if (result.success) {\n return { success: true, data: result.data };\n }\n\n const errors = result.error.issues.map((issue) => {\n const path = issue.path.length > 0 ? issue.path.join(\".\") : \"(root)\";\n return `${path}: ${issue.message}`;\n });\n\n return { success: false, errors };\n}\n\n// =============================================================================\n// Package & Bundle Validators\n// =============================================================================\n\n/** Validate data as a Package (list item). */\nexport function validatePackage(data: unknown) {\n return validate(PackageSchema, data);\n}\n\n/** Validate data as a PackageDetail (single-package endpoint). */\nexport function validatePackageDetail(data: unknown) {\n return validate(PackageDetailSchema, data);\n}\n\n/** Validate data as a PackageSearchResponse. */\nexport function validatePackageSearchResponse(data: unknown) {\n return validate(PackageSearchResponseSchema, data);\n}\n\n/** Validate search parameters. */\nexport function validatePackageSearchParams(data: unknown) {\n return validate(PackageSearchParamsSchema, data);\n}\n\n/** Validate data as a Bundle (v1 API). */\nexport function validateBundle(data: unknown) {\n return validate(BundleSchema, data);\n}\n\n/** Validate data as a BundleDetail (v1 API). */\nexport function validateBundleDetail(data: unknown) {\n return validate(BundleDetailSchema, data);\n}\n\n/** Validate data as a BundleSearchResponse (v1 API). */\nexport function validateBundleSearchResponse(data: unknown) {\n return validate(BundleSearchResponseSchema, data);\n}\n\n/** Validate data as a VersionsResponse (v1 API). */\nexport function validateVersionsResponse(data: unknown) {\n return validate(VersionsResponseSchema, data);\n}\n\n/** Validate data as a VersionDetail (v1 API). */\nexport function validateVersionDetail(data: unknown) {\n return validate(VersionDetailSchema, data);\n}\n\n/** Validate data as DownloadInfo (v1 API). */\nexport function validateDownloadInfo(data: unknown) {\n return validate(DownloadInfoSchema, data);\n}\n\n/** Validate data as an MCPBIndex. */\nexport function validateMCPBIndex(data: unknown) {\n return validate(MCPBIndexSchema, data);\n}\n\n/** Validate an announce request payload. */\nexport function validateAnnounceRequest(data: unknown) {\n return validate(AnnounceRequestSchema, data);\n}\n\n// =============================================================================\n// Auth Validators\n// =============================================================================\n\n/** Validate data as a UserProfile. */\nexport function validateUserProfile(data: unknown) {\n return validate(UserProfileSchema, data);\n}\n\n// =============================================================================\n// mpak.json Validators\n// =============================================================================\n\n/** Validate data as an mpak.json file. */\nexport function validateMpakJson(data: unknown) {\n return validate(MpakJsonSchema, data);\n}\n\n// =============================================================================\n// Skill Validators\n// =============================================================================\n\n/** Validate SKILL.md frontmatter. */\nexport function validateSkillFrontmatter(data: unknown) {\n return validate(SkillFrontmatterSchema, data);\n}\n\n/** Validate a skill announce request. */\nexport function validateSkillAnnounceRequest(data: unknown) {\n return validate(SkillAnnounceRequestSchema, data);\n}\n\n/** Validate a skill search response. */\nexport function validateSkillSearchResponse(data: unknown) {\n return validate(SkillSearchResponseSchema, data);\n}\n\n/** Validate a skill detail response. */\nexport function validateSkillDetail(data: unknown) {\n return validate(SkillDetailSchema, data);\n}\n"],"mappings":"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","names":["z","z","z","z"]}
{"version":3,"sources":["../src/package.ts","../src/manifest.ts","../src/api-responses.ts","../src/auth.ts","../src/skill.ts","../src/mpak-json.ts","../src/cache.ts","../src/validation.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { ServerTypeSchema } from './manifest.js';\n\n// Re-export manifest schemas so existing consumers of package.ts are not broken.\nexport {\n CapabilitySchema,\n ManifestAuthorSchema,\n ManifestServerSchema,\n McpbManifestSchema,\n McpConfigSchema,\n ServerTypeSchema,\n UserConfigFieldSchema,\n type Capability,\n type ManifestAuthor,\n type ManifestServer,\n type McpbManifest,\n type McpConfig,\n type ServerType,\n type UserConfigField,\n} from './manifest.js';\n\n// =============================================================================\n// Enums & Search Params\n// =============================================================================\n\n/** Supported operating system platforms */\nexport const PlatformSchema = z.enum(['darwin', 'win32', 'linux']);\n\n/** Sort options for package listings */\nexport const PackageSortSchema = z.enum(['downloads', 'recent', 'name']);\n\n/**\n * Package search query parameters.\n * HTTP query params arrive as strings, so limit/offset accept both.\n */\nexport const PackageSearchParamsSchema = z.object({\n q: z.string().optional(),\n type: ServerTypeSchema.optional(),\n tool: z.string().optional(),\n prompt: z.string().optional(),\n platform: PlatformSchema.optional(),\n sort: PackageSortSchema.optional(),\n limit: z.union([z.string(), z.number()]).optional(),\n offset: z.union([z.string(), z.number()]).optional(),\n});\n\n/** Bundle search query parameters. */\nexport const BundleSearchParamsSchema = z.object({\n q: z.string().max(200).optional(),\n type: ServerTypeSchema.optional(),\n sort: PackageSortSchema.optional().default('downloads'),\n limit: z.number().min(1).max(100).optional().default(20),\n offset: z.number().min(0).optional().default(0),\n});\n\n/** Bundle download query parameters (os + arch). */\nexport const BundleDownloadParamsSchema = z.object({\n os: z.enum(['darwin', 'linux', 'win32']).describe('Target OS (darwin, linux, win32)').optional(),\n arch: z.enum(['x64', 'arm64']).describe('Target arch (x64, arm64)').optional(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type Platform = z.infer<typeof PlatformSchema>;\nexport type PackageSort = z.infer<typeof PackageSortSchema>;\nexport type PackageSearchParams = z.infer<typeof PackageSearchParamsSchema>;\nexport type BundleSearchParams = z.infer<typeof BundleSearchParamsSchema>;\n/** Input type — all fields optional (before defaults are applied). */\nexport type BundleSearchParamsInput = z.input<typeof BundleSearchParamsSchema>;\nexport type BundleDownloadParams = z.infer<typeof BundleDownloadParamsSchema>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// Manifest Building Blocks\n// =============================================================================\n\n/** Server runtime type (v0.4 added \"uv\"). */\nexport const ServerTypeSchema = z.enum([\"node\", \"python\", \"binary\", \"uv\"]);\n\n/** User-configurable field declared by a bundle author. */\nexport const UserConfigFieldSchema = z.object({\n type: z.enum([\"string\", \"number\", \"boolean\"]),\n title: z.string().optional(),\n description: z.string().optional(),\n sensitive: z.boolean().optional(),\n required: z.boolean().optional(),\n default: z.union([z.string(), z.number(), z.boolean()]).optional(),\n});\n\n/** MCP server launch configuration (command, args, env). */\nexport const McpConfigSchema = z.object({\n command: z.string(),\n args: z.array(z.string()),\n env: z.record(z.string(), z.string()).optional(),\n});\n\n/** Author information. */\nexport const ManifestAuthorSchema = z.object({\n name: z.string(),\n email: z.string().optional(),\n url: z.string().optional(),\n});\n\n/** Server configuration block. */\nexport const ManifestServerSchema = z.object({\n type: ServerTypeSchema,\n entry_point: z.string(),\n mcp_config: McpConfigSchema,\n});\n\n/** MCP capability descriptor (tool, prompt, or resource). */\nexport const CapabilitySchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n});\n\n// =============================================================================\n// MCPB Manifest Schema\n// =============================================================================\n\n/**\n * MCPB bundle manifest.\n *\n * Compatible with both v0.3 and v0.4 of the upstream spec.\n * The two versions are backward-compatible (v0.4 only adds \"uv\" server type).\n */\nexport const McpbManifestSchema = z.object({\n manifest_version: z.string(),\n name: z.string(),\n version: z.string(),\n description: z.string(),\n display_name: z.string().optional(),\n author: ManifestAuthorSchema.optional(),\n homepage: z.string().optional(),\n license: z.string().optional(),\n icon: z.string().optional(),\n repository: z\n .object({\n type: z.string().optional(),\n url: z.string().optional(),\n })\n .optional(),\n user_config: z.record(z.string(), UserConfigFieldSchema).optional(),\n server: ManifestServerSchema,\n tools: z.array(CapabilitySchema).optional(),\n prompts: z.array(CapabilitySchema).optional(),\n resources: z.array(CapabilitySchema).optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type ServerType = z.infer<typeof ServerTypeSchema>;\nexport type UserConfigField = z.infer<typeof UserConfigFieldSchema>;\nexport type McpConfig = z.infer<typeof McpConfigSchema>;\nexport type ManifestAuthor = z.infer<typeof ManifestAuthorSchema>;\nexport type ManifestServer = z.infer<typeof ManifestServerSchema>;\nexport type Capability = z.infer<typeof CapabilitySchema>;\nexport type McpbManifest = z.infer<typeof McpbManifestSchema>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// Shared Components\n// =============================================================================\n\n/** Package author information */\nexport const PackageAuthorSchema = z.object({\n name: z.string(),\n});\n\n/** Tool exposed by a package */\nexport const PackageToolSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n});\n\n/** GitHub repository metadata */\nexport const PackageGitHubSchema = z.object({\n repo: z.string(),\n stars: z.number().nullable(),\n forks: z.number().nullable(),\n watchers: z.number().nullable(),\n updated_at: z.string().nullable().optional(),\n});\n\n/** Reusable pagination envelope */\nexport const PaginationSchema = z.object({\n limit: z.number(),\n offset: z.number(),\n has_more: z.boolean(),\n});\n\n// =============================================================================\n// Package Schemas (internal / web UI API)\n// =============================================================================\n\n/** Package list item (search/list endpoints) */\nexport const PackageSchema = z.object({\n name: z.string(),\n display_name: z.string().nullable(),\n description: z.string().nullable(),\n author: PackageAuthorSchema.nullable(),\n latest_version: z.string(),\n icon: z.string().nullable(),\n server_type: z.string(),\n tools: z.array(PackageToolSchema),\n downloads: z.number(),\n published_at: z.union([z.string(), z.date()]),\n verified: z.boolean(),\n claimable: z.boolean().optional(),\n claimed: z.boolean().optional(),\n github: PackageGitHubSchema.nullable().optional(),\n certification_level: z.number().nullable().optional(),\n});\n\n/** Platform-specific artifact */\nexport const ArtifactSchema = z.object({\n os: z.string(),\n arch: z.string(),\n size_bytes: z.number(),\n digest: z.string(),\n downloads: z.number(),\n});\n\n/** Build/publish provenance attestation */\nexport const ProvenanceSchema = z.object({\n publish_method: z.string().nullable(),\n repository: z.string().nullable(),\n sha: z.string().nullable(),\n});\n\n/** MTF certification level */\nexport const CertificationSchema = z.object({\n level: z.number().nullable(),\n level_name: z.string().nullable(),\n controls_passed: z.number().nullable(),\n controls_failed: z.number().nullable(),\n controls_total: z.number().nullable(),\n});\n\n/** Scorecard finding (prioritized issue to fix) */\nexport const ScorecardFindingSchema = z.object({\n id: z.string(),\n control: z.string(),\n severity: z.enum([\"critical\", \"high\", \"medium\", \"low\", \"info\"]),\n title: z.string(),\n description: z.string(),\n file: z.string().nullable(),\n line: z.number().nullable(),\n remediation: z.string().nullable(),\n});\n\n/** Individual control within a security domain */\nexport const DomainControlSchema = z.object({\n status: z.enum([\"pass\", \"fail\", \"skip\", \"error\"]),\n name: z.string(),\n findings_count: z.number(),\n});\n\n/** Security domain (group of related controls) */\nexport const SecurityDomainSchema = z.object({\n display_name: z.string(),\n controls_passed: z.number(),\n controls_total: z.number(),\n controls: z.record(z.string(), DomainControlSchema),\n});\n\n/** Security scan summary */\nexport const SecurityScanSchema = z.object({\n status: z.enum([\"pending\", \"scanning\", \"completed\", \"failed\"]),\n risk_score: z.enum([\"CRITICAL\", \"HIGH\", \"MEDIUM\", \"LOW\"]).nullable(),\n scanned_at: z.union([z.string(), z.date()]).nullable(),\n scanner_version: z.string().nullable().optional(),\n certification: CertificationSchema.nullable().optional(),\n summary: z\n .object({\n components: z.number(),\n vulnerabilities: z.object({\n critical: z.number(),\n high: z.number(),\n medium: z.number(),\n low: z.number(),\n }),\n secrets: z.number(),\n malicious: z.number(),\n code_issues: z.number(),\n })\n .optional(),\n domains: z.record(z.string(), SecurityDomainSchema).optional(),\n findings: z.array(ScorecardFindingSchema).optional(),\n});\n\n/** Package version detail */\nexport const PackageVersionSchema = z.object({\n version: z.string(),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n artifacts: z.array(ArtifactSchema).optional(),\n readme: z.string().nullable().optional(),\n provenance: ProvenanceSchema.nullable().optional(),\n release_url: z.string().nullable().optional(),\n prerelease: z.boolean().optional(),\n manifest: z.record(z.string(), z.unknown()).nullable().optional(),\n security_scan: SecurityScanSchema.nullable().optional(),\n});\n\n/** Claiming status for a package */\nexport const PackageClaimingSchema = z.object({\n claimable: z.boolean(),\n claimed: z.boolean(),\n claimed_by: z.string().nullable(),\n claimed_at: z.union([z.string(), z.date()]).nullable(),\n github_repo: z.string().nullable(),\n});\n\n/** Full package detail (single-package endpoint) */\nexport const PackageDetailSchema = PackageSchema.extend({\n homepage: z.string().nullable(),\n license: z.string().nullable(),\n claiming: PackageClaimingSchema,\n versions: z.array(PackageVersionSchema),\n});\n\n/** Package search response envelope */\nexport const PackageSearchResponseSchema = z.object({\n packages: z.array(PackageSchema),\n total: z.number(),\n});\n\n// =============================================================================\n// V1 Bundle API Schemas\n// =============================================================================\n\n/** Platform info (os + arch) */\nexport const PlatformInfoSchema = z.object({\n os: z.string(),\n arch: z.string(),\n});\n\n/** Full provenance (v1 API) */\nexport const FullProvenanceSchema = z.object({\n schema_version: z.string(),\n provider: z.string(),\n repository: z.string(),\n sha: z.string(),\n});\n\n/** Bundle summary (v1 API) */\nexport const BundleSchema = z.object({\n name: z.string(),\n display_name: z.string().nullable().optional(),\n description: z.string().nullable().optional(),\n author: PackageAuthorSchema.nullable().optional(),\n latest_version: z.string(),\n icon: z.string().nullable().optional(),\n server_type: z.string().nullable().optional(),\n tools: z.array(PackageToolSchema).optional(),\n downloads: z.number(),\n published_at: z.union([z.string(), z.date()]),\n verified: z.boolean(),\n provenance: FullProvenanceSchema.nullable().optional(),\n certification_level: z.number().nullable().optional(),\n});\n\n/** Bundle detail (v1 API) */\nexport const BundleDetailSchema = BundleSchema.extend({\n homepage: z.string().nullable().optional(),\n license: z.string().nullable().optional(),\n certification: CertificationSchema.nullable().optional(),\n versions: z.array(\n z.object({\n version: z.string(),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n }),\n ),\n});\n\n/** Bundle search response (v1 API) */\nexport const BundleSearchResponseSchema = z.object({\n bundles: z.array(BundleSchema),\n total: z.number(),\n pagination: z.object({\n limit: z.number(),\n offset: z.number(),\n has_more: z.boolean(),\n }),\n});\n\n/** Version info with platforms */\nexport const VersionInfoSchema = z.object({\n version: z.string(),\n artifacts_count: z.number(),\n platforms: z.array(PlatformInfoSchema),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n publish_method: z.string().nullable(),\n provenance: FullProvenanceSchema.nullable().optional(),\n});\n\n/** Versions listing response (v1 API) */\nexport const VersionsResponseSchema = z.object({\n name: z.string(),\n latest: z.string(),\n versions: z.array(VersionInfoSchema),\n});\n\n/** Download info (v1 API) */\nexport const DownloadInfoSchema = z.object({\n url: z.string(),\n bundle: z.object({\n name: z.string(),\n version: z.string(),\n platform: PlatformInfoSchema,\n sha256: z.string(),\n size: z.number(),\n }),\n expires_at: z.string().optional(),\n});\n\n/** Version detail with artifacts (v1 API) */\nexport const VersionDetailSchema = z.object({\n name: z.string(),\n version: z.string(),\n published_at: z.union([z.string(), z.date()]),\n downloads: z.number(),\n artifacts: z.array(\n z.object({\n platform: PlatformInfoSchema,\n digest: z.string(),\n size: z.number(),\n download_url: z.string(),\n source_url: z.string().optional(),\n }),\n ),\n manifest: z.record(z.string(), z.unknown()),\n release: z\n .object({\n tag: z.string().nullable(),\n url: z.string().nullable(),\n })\n .optional(),\n publish_method: z.string().nullable(),\n provenance: FullProvenanceSchema.nullable(),\n});\n\n/** MCPB index response */\nexport const MCPBIndexSchema = z.object({\n index_version: z.string(),\n mimeType: z.string(),\n name: z.string(),\n version: z.string(),\n description: z.string().nullable(),\n bundles: z.array(\n z.object({\n mimeType: z.string().nullable(),\n digest: z.string(),\n size: z.number(),\n platform: PlatformInfoSchema,\n urls: z.array(z.string()),\n }),\n ),\n annotations: z.record(z.string(), z.string()).optional(),\n});\n\n/** Announce request (per-artifact from GitHub Actions) */\nexport const AnnounceRequestSchema = z.object({\n name: z.string(),\n version: z.string(),\n manifest: z.record(z.string(), z.unknown()),\n release_tag: z.string(),\n prerelease: z.boolean().optional().default(false),\n artifact: z.object({\n filename: z.string(),\n os: z.string(),\n arch: z.string(),\n sha256: z.string(),\n size: z.number(),\n }),\n});\n\n/** Announce response (per-artifact, idempotent) */\nexport const AnnounceResponseSchema = z.object({\n package: z.string(),\n version: z.string(),\n artifact: z.object({\n os: z.string(),\n arch: z.string(),\n filename: z.string(),\n }),\n total_artifacts: z.number(),\n status: z.enum([\"created\", \"updated\"]),\n});\n\n// =============================================================================\n// Internal API Schemas (web UI, not exposed publicly)\n// =============================================================================\n\n/** Publish response */\nexport const PublishResponseSchema = z.object({\n success: z.boolean(),\n package: z.object({\n name: z.string(),\n version: z.string(),\n manifest: z.record(z.string(), z.unknown()),\n }),\n sha256: z.string(),\n size: z.number(),\n url: z.string(),\n auto_claimed: z.boolean().optional(),\n message: z.string().optional(),\n});\n\n/** Internal download response */\nexport const InternalDownloadResponseSchema = z.object({\n url: z.string(),\n package: z.object({\n name: z.string(),\n version: z.string(),\n sha256: z.string(),\n size: z.number(),\n }),\n expires_at: z.string(),\n});\n\n/** Claim status response */\nexport const ClaimStatusResponseSchema = z.object({\n claimable: z.boolean(),\n reason: z.string().optional(),\n claimed_by: z.string().nullable().optional(),\n claimed_at: z.union([z.string(), z.date()]).nullable().optional(),\n package_name: z.string().optional(),\n github_repo: z.string().nullable().optional(),\n instructions: z\n .object({\n steps: z.array(z.string()),\n mpak_json_example: z.string(),\n verification_url: z.string().nullable(),\n })\n .optional(),\n});\n\n/** Claim response */\nexport const ClaimResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n package: z.object({\n name: z.string(),\n claimed_by: z.string().nullable(),\n claimed_at: z.union([z.string(), z.date()]).nullable(),\n github_repo: z.string().nullable(),\n }),\n verification: z.object({\n mpak_json_url: z.string().nullable().optional(),\n verified_at: z.string(),\n }),\n});\n\n/** My packages response */\nexport const MyPackagesResponseSchema = z.object({\n packages: z.array(PackageSchema),\n total: z.number(),\n pagination: PaginationSchema,\n});\n\n/** Unclaimed package summary */\nexport const UnclaimedPackageSchema = z.object({\n name: z.string(),\n display_name: z.string().nullable(),\n description: z.string().nullable(),\n server_type: z.string().nullable(),\n latest_version: z.string(),\n downloads: z.number(),\n github_repo: z.string().nullable(),\n created_at: z.union([z.string(), z.date()]),\n});\n\n/** Unclaimed packages response */\nexport const UnclaimedPackagesResponseSchema = z.object({\n packages: z.array(UnclaimedPackageSchema),\n total: z.number(),\n pagination: PaginationSchema,\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\n// Core types\nexport type PackageAuthor = z.infer<typeof PackageAuthorSchema>;\nexport type PackageTool = z.infer<typeof PackageToolSchema>;\nexport type PackageGitHub = z.infer<typeof PackageGitHubSchema>;\nexport type Package = z.infer<typeof PackageSchema>;\nexport type Artifact = z.infer<typeof ArtifactSchema>;\nexport type Provenance = z.infer<typeof ProvenanceSchema>;\nexport type ScorecardFinding = z.infer<typeof ScorecardFindingSchema>;\nexport type DomainControl = z.infer<typeof DomainControlSchema>;\nexport type SecurityDomain = z.infer<typeof SecurityDomainSchema>;\nexport type Certification = z.infer<typeof CertificationSchema>;\nexport type SecurityScan = z.infer<typeof SecurityScanSchema>;\nexport type PackageVersion = z.infer<typeof PackageVersionSchema>;\nexport type PackageClaiming = z.infer<typeof PackageClaimingSchema>;\nexport type PackageDetail = z.infer<typeof PackageDetailSchema>;\nexport type PackageSearchResponse = z.infer<typeof PackageSearchResponseSchema>;\n\n// V1 API types\nexport type PlatformInfo = z.infer<typeof PlatformInfoSchema>;\nexport type FullProvenance = z.infer<typeof FullProvenanceSchema>;\nexport type Bundle = z.infer<typeof BundleSchema>;\nexport type BundleDetail = z.infer<typeof BundleDetailSchema>;\nexport type BundleSearchResponse = z.infer<typeof BundleSearchResponseSchema>;\nexport type VersionInfo = z.infer<typeof VersionInfoSchema>;\nexport type VersionsResponse = z.infer<typeof VersionsResponseSchema>;\nexport type DownloadInfo = z.infer<typeof DownloadInfoSchema>;\nexport type VersionDetail = z.infer<typeof VersionDetailSchema>;\nexport type MCPBIndex = z.infer<typeof MCPBIndexSchema>;\nexport type AnnounceRequest = z.infer<typeof AnnounceRequestSchema>;\nexport type AnnounceResponse = z.infer<typeof AnnounceResponseSchema>;\n\n// Internal API types\nexport type Pagination = z.infer<typeof PaginationSchema>;\nexport type PublishResponse = z.infer<typeof PublishResponseSchema>;\nexport type InternalDownloadResponse = z.infer<\n typeof InternalDownloadResponseSchema\n>;\nexport type ClaimStatusResponse = z.infer<typeof ClaimStatusResponseSchema>;\nexport type ClaimResponse = z.infer<typeof ClaimResponseSchema>;\nexport type MyPackagesResponse = z.infer<typeof MyPackagesResponseSchema>;\nexport type UnclaimedPackage = z.infer<typeof UnclaimedPackageSchema>;\nexport type UnclaimedPackagesResponse = z.infer<\n typeof UnclaimedPackagesResponseSchema\n>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// Auth Schemas\n// =============================================================================\n\n/** User profile response from /app/auth/me */\nexport const UserProfileSchema = z.object({\n id: z.string(),\n email: z.string().email(),\n emailVerified: z.boolean(),\n username: z.string().nullable(),\n name: z.string().nullable(),\n avatarUrl: z.string().nullable(),\n githubUsername: z.string().nullable(),\n githubLinked: z.boolean(),\n verified: z.boolean(),\n publishedBundles: z.number(),\n totalDownloads: z.number(),\n role: z.string().nullable(),\n createdAt: z.union([z.string(), z.date()]).nullable(),\n lastLoginAt: z.union([z.string(), z.date()]).nullable(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type UserProfile = z.infer<typeof UserProfileSchema>;\n","import { z } from 'zod';\n\n// =============================================================================\n// Agent Skills Specification - Skill Frontmatter Schema\n// https://agentskills.io/specification\n// =============================================================================\n\n/**\n * Skill name validation.\n * 1-64 characters, lowercase alphanumeric with single hyphens,\n * cannot start or end with hyphen.\n */\nexport const SkillNameSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(\n /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,\n 'Lowercase alphanumeric with single hyphens, cannot start/end with hyphen',\n );\n\n/** Skill description (1-1024 characters) */\nexport const SkillDescriptionSchema = z.string().min(1).max(1024);\n\n// =============================================================================\n// Discovery Metadata Extension (via metadata: field)\n// =============================================================================\n\n/** Category taxonomy for skill discovery */\nexport const SkillCategorySchema = z.enum([\n 'development',\n 'writing',\n 'research',\n 'consulting',\n 'data',\n 'design',\n 'operations',\n 'security',\n 'other',\n]);\n\n/** Author information for attribution */\nexport const SkillAuthorSchema = z.object({\n name: z.string().min(1),\n url: z.string().url().optional(),\n email: z.string().email().optional(),\n});\n\n/** Example usage for discovery */\nexport const SkillExampleSchema = z.object({\n prompt: z.string().min(1),\n context: z.string().optional(),\n});\n\n/**\n * Discovery metadata (via metadata: field in frontmatter).\n * All fields optional; skills can start minimal and add discovery metadata later.\n */\nexport const SkillDiscoveryMetadataSchema = z\n .object({\n tags: z.array(z.string().max(32)).max(10).optional(),\n category: SkillCategorySchema.optional(),\n triggers: z.array(z.string().max(128)).max(20).optional(),\n keywords: z.array(z.string().max(32)).max(30).optional(),\n author: SkillAuthorSchema.optional(),\n version: z.string().optional(),\n examples: z.array(SkillExampleSchema).max(5).optional(),\n })\n .passthrough();\n\n// =============================================================================\n// Complete SKILL.md Frontmatter Schema\n// =============================================================================\n\n/**\n * Complete SKILL.md frontmatter schema.\n * Combines official Agent Skills spec with discovery metadata extension.\n */\nexport const SkillFrontmatterSchema = z.object({\n name: SkillNameSchema,\n description: SkillDescriptionSchema,\n version: z.string().optional(),\n license: z.string().optional(),\n compatibility: z.string().max(500).optional(),\n 'allowed-tools': z.string().optional(),\n metadata: SkillDiscoveryMetadataSchema.optional(),\n});\n\n// =============================================================================\n// Registry API Schemas\n// =============================================================================\n\n/** Scoped skill name for registry (e.g., @nimblebraininc/strategic-thought-partner) */\nexport const ScopedSkillNameSchema = z\n .string()\n .regex(/^@[a-z0-9][a-z0-9-]*\\/[a-z0-9][a-z0-9-]*$/, 'Scoped name format: @scope/name');\n\n/** Skill artifact info for announce endpoint */\nexport const SkillArtifactSchema = z.object({\n filename: z.string().regex(/\\.skill$/, 'Must have .skill extension'),\n sha256: z.string().length(64),\n size: z.number().int().positive(),\n});\n\n/** Announce request for POST /v1/skills/announce */\nexport const SkillAnnounceRequestSchema = z.object({\n name: ScopedSkillNameSchema,\n version: z.string(),\n skill: SkillFrontmatterSchema,\n release_tag: z.string(),\n prerelease: z.boolean().optional().default(false),\n artifact: SkillArtifactSchema,\n});\n\n/** Announce response */\nexport const SkillAnnounceResponseSchema = z.object({\n skill: z.string(),\n version: z.string(),\n status: z.enum(['created', 'exists']),\n});\n\n// =============================================================================\n// Search/List API Schemas\n// =============================================================================\n\n/** Skill search parameters */\nexport const SkillSearchParamsSchema = z.object({\n q: z.string().optional(),\n tags: z.string().optional(),\n category: SkillCategorySchema.optional(),\n sort: z.enum(['downloads', 'recent', 'name']).optional(),\n limit: z.union([z.string(), z.number()]).optional(),\n offset: z.union([z.string(), z.number()]).optional(),\n});\n\n/** Skill summary for search results */\nexport const SkillSummarySchema = z.object({\n name: z.string(),\n description: z.string(),\n latest_version: z.string(),\n tags: z.array(z.string()).optional(),\n category: SkillCategorySchema.optional(),\n downloads: z.number(),\n published_at: z.string(),\n author: SkillAuthorSchema.optional(),\n});\n\n/** Skill search response */\nexport const SkillSearchResponseSchema = z.object({\n skills: z.array(SkillSummarySchema),\n total: z.number(),\n pagination: z.object({\n limit: z.number(),\n offset: z.number(),\n has_more: z.boolean(),\n }),\n});\n\n/** Skill detail response */\nexport const SkillDetailSchema = z.object({\n name: z.string(),\n description: z.string(),\n latest_version: z.string(),\n license: z.string().optional(),\n compatibility: z.string().optional(),\n allowed_tools: z.array(z.string()).optional(),\n tags: z.array(z.string()).optional(),\n category: SkillCategorySchema.optional(),\n triggers: z.array(z.string()).optional(),\n downloads: z.number(),\n published_at: z.string(),\n author: SkillAuthorSchema.optional(),\n examples: z.array(SkillExampleSchema).optional(),\n versions: z.array(\n z.object({\n version: z.string(),\n published_at: z.string(),\n downloads: z.number(),\n }),\n ),\n});\n\n/** Skill download info response */\nexport const SkillDownloadInfoSchema = z.object({\n url: z.string(),\n skill: z.object({\n name: z.string(),\n version: z.string(),\n sha256: z.string(),\n size: z.number(),\n }),\n expires_at: z.string(),\n});\n\n// =============================================================================\n// TypeScript Types\n// =============================================================================\n\nexport type SkillName = z.infer<typeof SkillNameSchema>;\nexport type SkillCategory = z.infer<typeof SkillCategorySchema>;\nexport type SkillAuthor = z.infer<typeof SkillAuthorSchema>;\nexport type SkillExample = z.infer<typeof SkillExampleSchema>;\nexport type SkillDiscoveryMetadata = z.infer<typeof SkillDiscoveryMetadataSchema>;\nexport type SkillFrontmatter = z.infer<typeof SkillFrontmatterSchema>;\nexport type ScopedSkillName = z.infer<typeof ScopedSkillNameSchema>;\nexport type SkillArtifact = z.infer<typeof SkillArtifactSchema>;\nexport type SkillAnnounceRequest = z.infer<typeof SkillAnnounceRequestSchema>;\nexport type SkillAnnounceResponse = z.infer<typeof SkillAnnounceResponseSchema>;\nexport type SkillSearchParams = z.infer<typeof SkillSearchParamsSchema>;\n/** Input type — all fields optional (before defaults are applied). */\nexport type SkillSearchParamsInput = z.input<typeof SkillSearchParamsSchema>;\nexport type SkillSummary = z.infer<typeof SkillSummarySchema>;\nexport type SkillSearchResponse = z.infer<typeof SkillSearchResponseSchema>;\nexport type SkillDetail = z.infer<typeof SkillDetailSchema>;\nexport type SkillDownloadInfo = z.infer<typeof SkillDownloadInfoSchema>;\n","import { z } from \"zod\";\n\n// =============================================================================\n// mpak.json Schema Definition\n//\n// Defines the schema for mpak.json files placed in GitHub repositories to\n// claim ownership of packages in the registry.\n//\n// Location: https://github.com/{owner}/{repo}/mpak.json\n//\n// Example:\n// {\n// \"$schema\": \"https://cdn.mpak.dev/schemas/2025-10-19/mpak.json\",\n// \"name\": \"@username/package-name\",\n// \"maintainers\": [\"github-username\"]\n// }\n// =============================================================================\n\n/** Schema version (update when making breaking changes) */\nexport const MPAK_SCHEMA_VERSION = \"2025-10-19\";\n\n/** Canonical schema URL for IDE autocompletion */\nexport const MPAK_SCHEMA_URL = `https://cdn.mpak.dev/schemas/${MPAK_SCHEMA_VERSION}/mpak.json`;\n\n// =============================================================================\n// Zod Schema\n// =============================================================================\n\n/** Scoped package name pattern */\nconst ScopedPackageNamePattern =\n /^@[a-z0-9][a-z0-9-]{0,38}\\/[a-z0-9][a-z0-9-]{0,213}$/;\n\n/** GitHub username pattern */\nconst GitHubUsernamePattern = /^[a-z0-9][a-z0-9-]{0,38}$/i;\n\n/** Zod schema for mpak.json */\nexport const MpakJsonSchema = z.object({\n $schema: z.string().optional(),\n name: z\n .string()\n .regex(\n ScopedPackageNamePattern,\n \"Package name must be scoped (e.g., @username/package-name)\",\n ),\n maintainers: z\n .array(\n z\n .string()\n .regex(GitHubUsernamePattern, \"Must be a valid GitHub username\"),\n )\n .min(1, \"At least one maintainer is required\"),\n version: z.string().optional(),\n});\n\n/** TypeScript type for mpak.json */\nexport type MpakJson = z.infer<typeof MpakJsonSchema>;\n\n// =============================================================================\n// JSON Schema (for IDE autocomplete and CDN hosting)\n// =============================================================================\n\n/** JSON Schema definition for mpak.json */\nexport const MPAK_JSON_SCHEMA = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n $id: MPAK_SCHEMA_URL,\n title: \"mpak.json\",\n description:\n \"Configuration file for claiming package ownership in the mpak registry\",\n type: \"object\" as const,\n required: [\"name\", \"maintainers\"],\n properties: {\n $schema: {\n type: \"string\" as const,\n description: \"JSON Schema URL for validation\",\n default: MPAK_SCHEMA_URL,\n },\n name: {\n type: \"string\" as const,\n description:\n \"Package name in the registry (must be scoped, e.g., @username/package)\",\n pattern: \"^@[a-z0-9][a-z0-9-]{0,38}/[a-z0-9][a-z0-9-]{0,213}$\",\n },\n maintainers: {\n type: \"array\" as const,\n description: \"GitHub usernames of package maintainers\",\n items: {\n type: \"string\" as const,\n pattern: \"^[a-z0-9][a-z0-9-]{0,38}$\",\n },\n minItems: 1,\n },\n version: {\n type: \"string\" as const,\n description: \"Schema version\",\n },\n },\n additionalProperties: false,\n} as const;\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Generate an example mpak.json content string.\n */\nexport function generateMpakJsonExample(\n packageName: string,\n githubUsername: string,\n): string {\n const example: MpakJson = {\n $schema: MPAK_SCHEMA_URL,\n name: packageName,\n maintainers: [githubUsername],\n };\n return JSON.stringify(example, null, 2);\n}\n","import { z } from \"zod\";\nimport { PlatformInfoSchema } from \"./api-responses.js\";\n\n// =============================================================================\n// Cache Metadata\n// =============================================================================\n\n/**\n * Zod schema for the `.mpak-meta.json` file written alongside cached bundles.\n *\n * `.strict()` rejects unknown fields so corrupted or hand-edited files\n * are caught on read rather than silently accepted.\n */\nexport const CacheMetadataSchema = z\n .object({\n version: z.string(),\n pulledAt: z.string(),\n lastCheckedAt: z.string().optional(),\n platform: PlatformInfoSchema,\n })\n .strict();\n\nexport type CacheMetadata = z.infer<typeof CacheMetadataSchema>;\n\n// =============================================================================\n// Cached Bundle Info\n// =============================================================================\n\n/**\n * Summary of a bundle stored in the local cache.\n * Returned by `BundleCache.listCachedBundles()` and consumed by CLI\n * commands like `mpak outdated`.\n */\nexport interface CachedBundleInfo {\n name: string;\n version: string;\n pulledAt: string;\n cacheDir: string;\n}\n","import type { z } from \"zod\";\n\nimport {\n AnnounceRequestSchema,\n BundleDetailSchema,\n BundleSchema,\n BundleSearchResponseSchema,\n DownloadInfoSchema,\n MCPBIndexSchema,\n PackageDetailSchema,\n PackageSchema,\n PackageSearchResponseSchema,\n VersionDetailSchema,\n VersionsResponseSchema,\n} from \"./api-responses.js\";\nimport { UserProfileSchema } from \"./auth.js\";\nimport { MpakJsonSchema } from \"./mpak-json.js\";\nimport { PackageSearchParamsSchema } from \"./package.js\";\nimport {\n SkillAnnounceRequestSchema,\n SkillDetailSchema,\n SkillFrontmatterSchema,\n SkillSearchResponseSchema,\n} from \"./skill.js\";\n\n// =============================================================================\n// Validation Result Type\n// =============================================================================\n\n/**\n * Result of a schema validation.\n * On success, `data` contains the parsed (and typed) value.\n * On failure, `errors` contains human-readable error messages.\n */\nexport type ValidationResult<T> =\n | { success: true; data: T; errors?: undefined }\n | { success: false; data?: undefined; errors: string[] };\n\n// =============================================================================\n// Generic Validator\n// =============================================================================\n\n/**\n * Validate unknown data against a Zod schema, returning a friendly result.\n */\nfunction validate<T>(\n schema: z.ZodType<T>,\n data: unknown,\n): ValidationResult<T> {\n const result = schema.safeParse(data);\n if (result.success) {\n return { success: true, data: result.data };\n }\n\n const errors = result.error.issues.map((issue) => {\n const path = issue.path.length > 0 ? issue.path.join(\".\") : \"(root)\";\n return `${path}: ${issue.message}`;\n });\n\n return { success: false, errors };\n}\n\n// =============================================================================\n// Package & Bundle Validators\n// =============================================================================\n\n/** Validate data as a Package (list item). */\nexport function validatePackage(data: unknown) {\n return validate(PackageSchema, data);\n}\n\n/** Validate data as a PackageDetail (single-package endpoint). */\nexport function validatePackageDetail(data: unknown) {\n return validate(PackageDetailSchema, data);\n}\n\n/** Validate data as a PackageSearchResponse. */\nexport function validatePackageSearchResponse(data: unknown) {\n return validate(PackageSearchResponseSchema, data);\n}\n\n/** Validate search parameters. */\nexport function validatePackageSearchParams(data: unknown) {\n return validate(PackageSearchParamsSchema, data);\n}\n\n/** Validate data as a Bundle (v1 API). */\nexport function validateBundle(data: unknown) {\n return validate(BundleSchema, data);\n}\n\n/** Validate data as a BundleDetail (v1 API). */\nexport function validateBundleDetail(data: unknown) {\n return validate(BundleDetailSchema, data);\n}\n\n/** Validate data as a BundleSearchResponse (v1 API). */\nexport function validateBundleSearchResponse(data: unknown) {\n return validate(BundleSearchResponseSchema, data);\n}\n\n/** Validate data as a VersionsResponse (v1 API). */\nexport function validateVersionsResponse(data: unknown) {\n return validate(VersionsResponseSchema, data);\n}\n\n/** Validate data as a VersionDetail (v1 API). */\nexport function validateVersionDetail(data: unknown) {\n return validate(VersionDetailSchema, data);\n}\n\n/** Validate data as DownloadInfo (v1 API). */\nexport function validateDownloadInfo(data: unknown) {\n return validate(DownloadInfoSchema, data);\n}\n\n/** Validate data as an MCPBIndex. */\nexport function validateMCPBIndex(data: unknown) {\n return validate(MCPBIndexSchema, data);\n}\n\n/** Validate an announce request payload. */\nexport function validateAnnounceRequest(data: unknown) {\n return validate(AnnounceRequestSchema, data);\n}\n\n// =============================================================================\n// Auth Validators\n// =============================================================================\n\n/** Validate data as a UserProfile. */\nexport function validateUserProfile(data: unknown) {\n return validate(UserProfileSchema, data);\n}\n\n// =============================================================================\n// mpak.json Validators\n// =============================================================================\n\n/** Validate data as an mpak.json file. */\nexport function validateMpakJson(data: unknown) {\n return validate(MpakJsonSchema, data);\n}\n\n// =============================================================================\n// Skill Validators\n// =============================================================================\n\n/** Validate SKILL.md frontmatter. */\nexport function validateSkillFrontmatter(data: unknown) {\n return validate(SkillFrontmatterSchema, data);\n}\n\n/** Validate a skill announce request. */\nexport function validateSkillAnnounceRequest(data: unknown) {\n return validate(SkillAnnounceRequestSchema, data);\n}\n\n/** Validate a skill search response. */\nexport function validateSkillSearchResponse(data: unknown) {\n return validate(SkillSearchResponseSchema, data);\n}\n\n/** Validate a skill detail response. */\nexport function validateSkillDetail(data: unknown) {\n return validate(SkillDetailSchema, data);\n}\n"],"mappings":"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","names":["z","z","z","z","z","z","z","z"]}
{
"name": "@nimblebrain/mpak-schemas",
"version": "0.1.0",
"version": "0.2.0",
"description": "Shared Zod schemas and TypeScript types for the mpak registry",

@@ -5,0 +5,0 @@ "author": "NimbleBrain <engineering@mpak.dev>",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display