import { ArtifactManifest, EnvSchema, RunConfig, ArtifactMetadata } from '../types/artifact.js'; import { SourceStrategyResult } from './source-strategy.js'; import { FailureRecord } from '../types/failure.js'; import { EnvSnapshot } from './env-snapshot.js'; import { ProjectLanguageContext } from './language-support.js'; import { KeyPair } from '../utils/signing.js'; export interface BuildManifestOptions { name: string; description: string; command: string[]; workingDirectory: string; exitCode: number; durationMs: number; gitCommit?: string; gitBranch?: string; gitDirty?: boolean; secretsDetected: boolean; secretsSkipped: string[]; bugproofVersion: string; } export declare function buildCaptureManifest(opts: BuildManifestOptions): ArtifactManifest; export interface BuildMetadataOptions { bugproofVersion: string; gitRepo?: string; gitCommit?: string; gitBranch?: string; gitDirty?: boolean; gitTags?: string[]; } export declare function buildCaptureMetadata(opts: BuildMetadataOptions): ArtifactMetadata; export interface PackageOptions { manifest: ArtifactManifest; envSchema: EnvSchema; runConfig: RunConfig; metadata: ArtifactMetadata; failure: FailureRecord; stdout: string; stderr: string; secretKeys: string[]; includeUntracked?: boolean; excludePatterns?: string[]; /** Smart source strategy result (if available) */ sourceStrategy?: SourceStrategyResult; /** Environment snapshot (runtime versions) */ envSnapshot?: EnvSnapshot; /** Detected project languages and build context */ languageContext?: ProjectLanguageContext; /** If provided, the artifact is signed with this Ed25519 keypair */ signingKey?: KeyPair; /** Optional human-readable signer identity attached to the signature */ signer?: string; /** Maximum artifact size in MB (default: 100) */ maxArtifactSizeMB?: number; /** Override the hardware limit and include all source files */ forceInclude?: boolean; /** Include compiled language artifacts (.class, .jar, .pyc, etc.) */ includeCompiled?: boolean; } export interface FileEntry { path: string; size: number; sha256: string; } /** * Packages the artifact into the .bug directory format specified in design-spec.md. * * Directory layout: * manifest.json * env.schema.json * metadata.json * run.json (environment secrets stripped) * failure.json * logs/stdout.txt * logs/stderr.txt * logs/fingerprint.json * files/... (git-tracked source snapshot) */ export declare function packageArtifact(artifactPath: string, options: PackageOptions): Promise<{ filesCount: number; totalSize: number; fileEntries: FileEntry[]; }>; //# sourceMappingURL=packager.d.ts.map