@visulima/task-runner 1.0.0-alpha.14 → 1.0.0-alpha.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## @visulima/task-runner [1.0.0-alpha.15](https://github.com/visulima/visulima/compare/@visulima/task-runner@1.0.0-alpha.14...@visulima/task-runner@1.0.0-alpha.15) (2026-05-19)
2
+
3
+ ### Features
4
+
5
+ * **task-runner:** auto-capture outputs for compound build scripts ([e084434](https://github.com/visulima/visulima/commit/e0844344cf184177999a82b708299f08fbfd31ec))
6
+ * **task-runner:** per-target hashMode "trace" opt-in ([#643](https://github.com/visulima/visulima/issues/643)) ([32353ff](https://github.com/visulima/visulima/commit/32353ff7a760ae9486e23cc4042fab46a2f2cc11))
7
+ * **vis:** attested keyless-signed remote cache (Sigstore) ([4732610](https://github.com/visulima/visulima/commit/47326103a668ab99fcfc4e21f2c9efeaa5892944))
8
+
1
9
  ## @visulima/task-runner [1.0.0-alpha.14](https://github.com/visulima/visulima/compare/@visulima/task-runner@1.0.0-alpha.13...@visulima/task-runner@1.0.0-alpha.14) (2026-05-14)
2
10
 
3
11
  ### Bug Fixes
package/dist/index.d.ts CHANGED
@@ -215,6 +215,107 @@ interface RemoteCacheSigning {
215
215
  verifyOnDownload?: boolean;
216
216
  }
217
217
  /**
218
+ * Keyless artifact attestation hooks for the HTTP backend.
219
+ *
220
+ * Layered *above* {@link RemoteCacheSigning}: HMAC proves the bytes
221
+ * weren't tampered with by anyone lacking the shared secret (integrity);
222
+ * an attestation proves *who* produced them (authenticity — a Sigstore
223
+ * keyless bundle in practice). Both can be active at once.
224
+ *
225
+ * task-runner stays dependency-free: it never imports Sigstore. The
226
+ * caller (vis) supplies these callbacks; task-runner only moves the
227
+ * opaque bundle string through the `X-Artifact-Attestation` header and
228
+ * decides accept/reject from the boolean the verifier returns. REAPI
229
+ * does not consume these — REAPI integrity rides on CAS content-
230
+ * addressing, and authenticity is a server/transport concern there.
231
+ */
232
+ interface RemoteCacheAttestation {
233
+ /**
234
+ * Expected keyless signer identity. Serializable so it can live in
235
+ * `vis.config.ts`. task-runner does not consume this — it is config
236
+ * passthrough for the vis-side `verifyArtifact` hook, which must
237
+ * enforce it. Without an expected identity a valid bundle from *any*
238
+ * Fulcio identity over the same digest verifies (integrity, not
239
+ * authenticity), so the vis hook treats "verify requested without an
240
+ * expected identity" as a misconfiguration.
241
+ *
242
+ * Three forms (pick one):
243
+ * - `{ github }` — GitHub Actions preset. Expands to the Fulcio
244
+ * issuer + an escaped, anchored SAN. The ergonomic default.
245
+ * - `{ oidcIssuer, san }` — a *literal* signer identity. vis escapes
246
+ * and anchors it for you; pass the plain URI, not a regex.
247
+ * - `{ oidcIssuer, sanRegex }` — advanced: a raw, unescaped regex.
248
+ * You own anchoring (sigstore-js matches via `String.match`).
249
+ */
250
+ expectedIdentity?: {
251
+ /**
252
+ * GitHub Actions preset. Expands to issuer
253
+ * `https://token.actions.githubusercontent.com` and the
254
+ * anchored SAN `https://github.com/{repo}/{workflow}@{ref}`.
255
+ */
256
+ github: {
257
+ /** Git ref the workflow ran on, e.g. `refs/heads/main` or `refs/tags/v1.2.3`. */
258
+ ref: string;
259
+ /** `owner/name`, e.g. `visulima/visulima`. */
260
+ repo: string;
261
+ /** Workflow path, e.g. `.github/workflows/release.yml`. */
262
+ workflow: string;
263
+ };
264
+ } | {
265
+ /** Fulcio cert issuer extension, matched exactly. */
266
+ oidcIssuer: string;
267
+ /**
268
+ * Literal signer identity (certificate SAN). vis
269
+ * regex-escapes and anchors this — pass the plain URI,
270
+ * e.g. `https://github.com/org/repo/.github/workflows/ci.yml@refs/heads/main`.
271
+ */
272
+ san: string;
273
+ } | {
274
+ /** Fulcio cert issuer extension, matched exactly. */
275
+ oidcIssuer: string;
276
+ /**
277
+ * Advanced: raw, unescaped SAN regex. You own anchoring
278
+ * (`^…$`); an unanchored value is substring-matched.
279
+ */
280
+ sanRegex: string;
281
+ };
282
+ /**
283
+ * Called when a download is rejected (or downgraded to a cache miss)
284
+ * because its attestation is missing or failed verification. Without
285
+ * this hook the rejection is silent. Mirrors `onUploadError`.
286
+ */
287
+ onReject?: (hash: string, reason: "invalid" | "missing") => void;
288
+ /**
289
+ * Reject downloads whose attestation is missing or fails
290
+ * verification. With `verifyArtifact` set but this `false`, a bad
291
+ * attestation is treated as a cache miss (re-execute) rather than a
292
+ * hard failure.
293
+ * @default false
294
+ */
295
+ requireOnDownload?: boolean;
296
+ /**
297
+ * Produce an opaque attestation bundle for the staged artifact,
298
+ * called after the body is staged and before the PUT. Return `null`
299
+ * to upload without an attestation (e.g. no ambient OIDC outside
300
+ * CI). Any returned string is sent verbatim in the
301
+ * `X-Artifact-Attestation` header.
302
+ */
303
+ signArtifact?: (input: {
304
+ archivePath: string;
305
+ hash: string;
306
+ }) => Promise<string | null>;
307
+ /**
308
+ * Verify a received attestation bundle against the staged artifact.
309
+ * Resolve `false` to reject the cached entry. Only called when the
310
+ * download carried an `X-Artifact-Attestation` header.
311
+ */
312
+ verifyArtifact?: (input: {
313
+ archivePath: string;
314
+ attestation: string;
315
+ hash: string;
316
+ }) => Promise<boolean>;
317
+ }
318
+ /**
218
319
  * Canonical remote-cache configuration consumed by
219
320
  * `createRemoteCacheBackend`. Both `HttpRemoteCache` and
220
321
  * `ReapiRemoteCache` accept this shape directly — backend-specific
@@ -238,6 +339,11 @@ interface RemoteCacheOptions {
238
339
  */
239
340
  allowInsecureBearer?: boolean;
240
341
  /**
342
+ * HTTP-only: keyless artifact attestation hooks (Sigstore in
343
+ * practice). Layered above `signing` — integrity vs authenticity.
344
+ */
345
+ attestation?: RemoteCacheAttestation;
346
+ /**
241
347
  * Wire-protocol selector. `"http"` is the Turborepo-compatible
242
348
  * single-tarball cache; `"reapi"` switches to the Bazel Remote
243
349
  * Execution API gRPC client, unlocking `bazel-remote`,
@@ -529,6 +635,16 @@ interface Task {
529
635
  hash?: string;
530
636
  /** Detailed hash information */
531
637
  hashDetails?: TaskHashDetails;
638
+ /**
639
+ * How this task's cache key is derived. Carried over from
640
+ * {@link TargetConfiguration.hashMode} at task graph creation.
641
+ * `"trace"` routes the task through the file-access tracker so the
642
+ * key comes from the files it actually read — the per-target
643
+ * equivalent of the global {@link TaskRunnerOptions.autoFingerprint}.
644
+ * Absent / `"declared"` keeps the Nx-style upfront hash from
645
+ * explicit {@link Task.outputs} and declared inputs.
646
+ */
647
+ hashMode?: "declared" | "trace";
532
648
  /** Unique identifier for the task, typically "project:target:configuration" */
533
649
  id: string;
534
650
  /**
@@ -756,6 +872,33 @@ interface TargetConfiguration {
756
872
  dependsOn?: (string | TargetDependencyConfig)[];
757
873
  /** The executor/command to run */
758
874
  executor?: string;
875
+ /**
876
+ * How this target's cache key is derived.
877
+ *
878
+ * - `"declared"` (default): the Nx-style path — the hash is built
879
+ * up-front from explicitly declared `inputs` (plus named/global
880
+ * inputs and the lockfile). Deterministic and portable across
881
+ * machines: two runners with the same workspace state produce the
882
+ * same key regardless of OS or syscall surface.
883
+ * - `"trace"`: the task is run under the file-access tracker
884
+ * (strace on Linux, an fs preload shim elsewhere) and the cache
885
+ * key is derived from the files it actually *read* during
886
+ * execution — no `inputs` declaration required. Mirrors the
887
+ * shipped `{ auto: true }` output capture, but for the input
888
+ * side. Use for compound or opaque commands whose real input set
889
+ * is impractical to enumerate.
890
+ *
891
+ * Opt-in per target precisely because trace mode trades
892
+ * reproducibility for convenience: the observed read set can differ
893
+ * across runners with different syscall surfaces (a static binary on
894
+ * a host without strace records nothing), so a trace key is **not**
895
+ * guaranteed portable between machines. Leave targets on
896
+ * `"declared"` whenever the input set can reasonably be listed.
897
+ *
898
+ * Equivalent to flipping {@link TaskRunnerOptions.autoFingerprint}
899
+ * on for this one target while every other target stays declared.
900
+ */
901
+ hashMode?: "declared" | "trace";
759
902
  /** Input patterns for cache invalidation */
760
903
  inputs?: (string | InputDefinition)[];
761
904
  /**
@@ -777,8 +920,18 @@ interface TargetConfiguration {
777
920
  maxConcurrent?: number;
778
921
  /** Options passed to the executor */
779
922
  options?: Record<string, unknown>;
780
- /** Output patterns produced by this target */
781
- outputs?: string[];
923
+ /**
924
+ * Output patterns produced by this target. Each entry is a literal
925
+ * path, a glob (`"dist/**"`), a negative glob (`"!dist/cache/**"`),
926
+ * or `{ auto: true }` to cache whatever files the task actually
927
+ * wrote during execution (resolved from the file-access tracker).
928
+ * `{ auto: true }` lets a build script cache zero-config without
929
+ * the author enumerating its output layout; it contributes nothing
930
+ * — and the runner declines to seed the cache — when write
931
+ * tracking isn't available for the task, so a hit can never restore
932
+ * a missing artifact.
933
+ */
934
+ outputs?: OutputSpec[];
782
935
  /** Whether this target supports parallel execution */
783
936
  parallelism?: boolean;
784
937
  /**
@@ -1026,6 +1179,11 @@ interface TaskRunnerOptions {
1026
1179
  *
1027
1180
  * Falls back to explicit inputs (Nx-style) when file tracking
1028
1181
  * is not supported on the current platform.
1182
+ *
1183
+ * This is the workspace-wide switch. To opt a single target into
1184
+ * traced hashing without flipping it for the whole graph, set
1185
+ * {@link TargetConfiguration.hashMode} to `"trace"` on that target
1186
+ * instead.
1029
1187
  * @default false
1030
1188
  */
1031
1189
  autoFingerprint?: boolean;
@@ -3301,4 +3459,4 @@ declare const isLinkedWorktree: (workspaceRoot: string) => boolean;
3301
3459
  * recreating a fixture at the same path would otherwise leak stale results.
3302
3460
  */
3303
3461
  declare const resetWorktreeCache: () => void;
3304
- export { type ActionResult, type AffectedOptions, type AffectedResult, type AffectedScope, type BlobSource, Cache, type CacheMissReason, type CacheMode, type CacheOptions, type CacheRestoreOptions, type CachedResult, type CasDigest, type ChromeTraceEvent, CompositeLifeCycle, type ConcurrencyGroups, type ConcurrentCloseEvent, type ConcurrentCommandConfig, type ConcurrentCommandInput, type ConcurrentRunResult, type ConcurrentRunnerOptions, ConsoleLifeCycle, type ConstraintViolation, type ConstraintsConfig, DEFAULT_CACHE_DIRECTORY_NAME, type DependencyKindRules, type DependencyType, type DetectedFramework, EmptyLifeCycle, type EnvMatcher, type EnvironmentInput, type ExternalDependencyInput, type FileAccess, FileAccessTracker, type FileSetBase, type FileSetInput, type FileSetPattern, type FileSnapshot, type FingerprintContributor, type FingerprintHook, FingerprintManager, type GraphFormat, type GraphJson, type GraphVisualizerOptions, HttpRemoteCache, INPUT_URI_SCHEMES, InProcessTaskHasher, IncrementalFileHasher, type IncrementalHasherOptions, type InputDefinition, type InputHandlerOptions, type InputUriScheme, InvalidInputUriError, type LifeCycleInterface, LockfileHasher, type LogMode, LogReporter, type NamedInputs, type NodePlatform, type OutputSpec, type PackageLockfileHash, type ParseCommandsOptions, type PartitionOptions, type ProcessEvent, type ProjectConfiguration, type ProjectGraph, type ProjectGraphDependency, type ProjectGraphProjectNode, ReapiRemoteCache, type ReapiRemoteCacheOptions, type RemoteCacheBackend, type RemoteCacheCompression, type RemoteCacheOptions, type RemoteCacheSigning, type ResolvedDependency, type RestartOptions, type RunSummary, type RunSummaryPathOptions, type RuntimeInput, type TagRelationships, type TargetConfiguration, type TargetDependencyConfig, type Task, type TaskExecutionOptions, type TaskExecutor, type TaskFingerprint, type TaskGraph, type TaskHashDetails, type TaskHasher, type TaskHasherOptions, TaskOrchestrator, type TaskOrchestratorOptions, type TaskPriority, type TaskResult, type TaskResults, type TaskRunnerContext, type TaskRunnerOptions, TaskScheduler, type TaskStatus, type TaskSummary, type TaskTarget, type TasksRunner, type TeardownOptions, TerminalBuffer, type TokenContext, type TrackedExecutionResult, TrackedTaskExecutor, type TrackingResult, type TypeBoundaries, V2_AC, V2_CAS, V2_INDEX, V2_ROOT, V2_TMP, type WhenCondition, type WhenContext, type WorkspaceConfiguration, acEntryPath, actionDigestForTaskHash, buildForwardDependencyMap, buildReverseDependencyMap, casBlobPath, collectFiles, computeTaskHash, containsBlob, containsByTaskHash, createFailureResult, createInputHandler, createLogReporter, createRemoteCacheBackend, createTaskGraph, defaultTaskRunner, detectFrameworks, detectScriptShell, digestBuffer, digestFile, enforceProjectConstraints, evaluateWhen, expandAffected, expandArguments, expandShortcut, expandTokens, expandTokensInString, expandWildcard, explainWhen, extractPackageName, fetchBlobToFile, filterAffectedTasks, findCycle, findCycles, formatCacheSize, formatTimingTable, generatePreloadScript, generateRunSummary, getAffectedProjects, getChangedFiles, getCurrentBranch, getDependentTasks, getFrameworkEnvVariables, getLastRunSummaryPath, getLeafTasks, getMainWorktreeRoot, getTaskId, getTransitiveDependencies, hashFile, hashStrings, inferFrameworkEnvPatterns, isLinkedWorktree, isNativeAvailable, loadNativeBindings, logTimings, looksLikeInputUri, makeAcyclic, parseCacheSize, parseCommands, parseInputUri, parseNpmLockfile, parsePartition, parsePnpmLockfile, parseTaskId, parseYarnLockfile, projectGraphToDot, putBlobFromBytes, putBlobFromFile, readLastRunSummary, readPackageDeps, resetBranchCache, resetWorktreeCache, resolveCacheMode, resolveOutputs, resolveTaskCwd, resolveTurboEnvCompat, retrieveByTaskHash, reverseTaskGraph, runConcurrentFallback, runConcurrently, runTeardown, sortObjectKeys, storeByTaskHash, stripQuotes, taskHashIndexPath, toChromeTrace, toGraphAscii, toGraphHtml, toGraphJson, toGraphvizDot, touchBlob, uniqueId, verifyBlob, walkTaskGraph, withRestart, writeChromeTrace, writeLastRunSummary, writeRunSummary };
3462
+ export { type ActionResult, type AffectedOptions, type AffectedResult, type AffectedScope, type BlobSource, Cache, type CacheMissReason, type CacheMode, type CacheOptions, type CacheRestoreOptions, type CachedResult, type CasDigest, type ChromeTraceEvent, CompositeLifeCycle, type ConcurrencyGroups, type ConcurrentCloseEvent, type ConcurrentCommandConfig, type ConcurrentCommandInput, type ConcurrentRunResult, type ConcurrentRunnerOptions, ConsoleLifeCycle, type ConstraintViolation, type ConstraintsConfig, DEFAULT_CACHE_DIRECTORY_NAME, type DependencyKindRules, type DependencyType, type DetectedFramework, EmptyLifeCycle, type EnvMatcher, type EnvironmentInput, type ExternalDependencyInput, type FileAccess, FileAccessTracker, type FileSetBase, type FileSetInput, type FileSetPattern, type FileSnapshot, type FingerprintContributor, type FingerprintHook, FingerprintManager, type GraphFormat, type GraphJson, type GraphVisualizerOptions, HttpRemoteCache, INPUT_URI_SCHEMES, InProcessTaskHasher, IncrementalFileHasher, type IncrementalHasherOptions, type InputDefinition, type InputHandlerOptions, type InputUriScheme, InvalidInputUriError, type LifeCycleInterface, LockfileHasher, type LogMode, LogReporter, type NamedInputs, type NodePlatform, type OutputSpec, type PackageLockfileHash, type ParseCommandsOptions, type PartitionOptions, type ProcessEvent, type ProjectConfiguration, type ProjectGraph, type ProjectGraphDependency, type ProjectGraphProjectNode, ReapiRemoteCache, type ReapiRemoteCacheOptions, type RemoteCacheAttestation, type RemoteCacheBackend, type RemoteCacheCompression, type RemoteCacheOptions, type RemoteCacheSigning, type ResolvedDependency, type RestartOptions, type RunSummary, type RunSummaryPathOptions, type RuntimeInput, type TagRelationships, type TargetConfiguration, type TargetDependencyConfig, type Task, type TaskExecutionOptions, type TaskExecutor, type TaskFingerprint, type TaskGraph, type TaskHashDetails, type TaskHasher, type TaskHasherOptions, TaskOrchestrator, type TaskOrchestratorOptions, type TaskPriority, type TaskResult, type TaskResults, type TaskRunnerContext, type TaskRunnerOptions, TaskScheduler, type TaskStatus, type TaskSummary, type TaskTarget, type TasksRunner, type TeardownOptions, TerminalBuffer, type TokenContext, type TrackedExecutionResult, TrackedTaskExecutor, type TrackingResult, type TypeBoundaries, V2_AC, V2_CAS, V2_INDEX, V2_ROOT, V2_TMP, type WhenCondition, type WhenContext, type WorkspaceConfiguration, acEntryPath, actionDigestForTaskHash, buildForwardDependencyMap, buildReverseDependencyMap, casBlobPath, collectFiles, computeTaskHash, containsBlob, containsByTaskHash, createFailureResult, createInputHandler, createLogReporter, createRemoteCacheBackend, createTaskGraph, defaultTaskRunner, detectFrameworks, detectScriptShell, digestBuffer, digestFile, enforceProjectConstraints, evaluateWhen, expandAffected, expandArguments, expandShortcut, expandTokens, expandTokensInString, expandWildcard, explainWhen, extractPackageName, fetchBlobToFile, filterAffectedTasks, findCycle, findCycles, formatCacheSize, formatTimingTable, generatePreloadScript, generateRunSummary, getAffectedProjects, getChangedFiles, getCurrentBranch, getDependentTasks, getFrameworkEnvVariables, getLastRunSummaryPath, getLeafTasks, getMainWorktreeRoot, getTaskId, getTransitiveDependencies, hashFile, hashStrings, inferFrameworkEnvPatterns, isLinkedWorktree, isNativeAvailable, loadNativeBindings, logTimings, looksLikeInputUri, makeAcyclic, parseCacheSize, parseCommands, parseInputUri, parseNpmLockfile, parsePartition, parsePnpmLockfile, parseTaskId, parseYarnLockfile, projectGraphToDot, putBlobFromBytes, putBlobFromFile, readLastRunSummary, readPackageDeps, resetBranchCache, resetWorktreeCache, resolveCacheMode, resolveOutputs, resolveTaskCwd, resolveTurboEnvCompat, retrieveByTaskHash, reverseTaskGraph, runConcurrentFallback, runConcurrently, runTeardown, sortObjectKeys, storeByTaskHash, stripQuotes, taskHashIndexPath, toChromeTrace, toGraphAscii, toGraphHtml, toGraphJson, toGraphvizDot, touchBlob, uniqueId, verifyBlob, walkTaskGraph, withRestart, writeChromeTrace, writeLastRunSummary, writeRunSummary };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{buildForwardDependencyMap as o,buildReverseDependencyMap as t,expandAffected as a,filterAffectedTasks as s,getAffectedProjects as p,getChangedFiles as n}from"./packem_shared/buildForwardDependencyMap-w1FVPFdv.js";import{createRemoteCacheBackend as i,resolveCacheMode as f,resolveTurboEnvCompat as c}from"./packem_shared/resolveCacheMode-DXe7i-tj.js";import{actionDigestForTaskHash as x,containsByTaskHash as h,retrieveByTaskHash as d,storeByTaskHash as k}from"./packem_shared/actionDigestForTaskHash-BOL4fZ9v.js";import{HttpRemoteCache as T}from"./packem_shared/HttpRemoteCache-Ch-_9ejF.js";import{ReapiRemoteCache as g}from"./packem_shared/ReapiRemoteCache-B3uQuVqP.js";import{Cache as R,DEFAULT_CACHE_DIRECTORY_NAME as v,formatCacheSize as F,parseCacheSize as B}from"./packem_shared/Cache-C540ZPYk.js";import{digestBuffer as b,digestFile as I}from"./packem_shared/digestBuffer-g11aCaDx.js";import{V2_AC as E,V2_CAS as P,V2_INDEX as H,V2_ROOT as A,V2_TMP as w,acEntryPath as D,casBlobPath as _,taskHashIndexPath as G}from"./packem_shared/V2_ROOT-injxWBrl.js";import{containsBlob as N,fetchBlobToFile as O,putBlobFromBytes as U,putBlobFromFile as V,touchBlob as W,verifyBlob as j}from"./packem_shared/containsBlob-DBWgvkM_.js";import{toChromeTrace as Y,writeChromeTrace as q}from"./packem_shared/toChromeTrace-DxN5NQIU.js";import{parseCommands as K}from"./packem_shared/parseCommands-b1K2vIxj.js";import{runConcurrently as X}from"./packem_shared/runConcurrently-DYbMGyGv.js";import{runConcurrentFallback as $}from"./packem_shared/runConcurrentFallback-Dpqxuyv-.js";import{defaultTaskRunner as re}from"./packem_shared/defaultTaskRunner-Byi0zsgh.js";import{detectScriptShell as te}from"./packem_shared/detectScriptShell-CaTDk5cW.js";import{FileAccessTracker as se,generatePreloadScript as pe}from"./packem_shared/FileAccessTracker-DSNf03JW.js";import{FingerprintManager as me}from"./packem_shared/FingerprintManager-CYW2EwLc.js";import{detectFrameworks as fe,getFrameworkEnvVariables as ce,inferFrameworkEnvPatterns as le}from"./packem_shared/detectFrameworks-WVZJOPgN.js";import{projectGraphToDot as he,toGraphAscii as de,toGraphHtml as ke,toGraphJson as ue,toGraphvizDot as Te}from"./packem_shared/projectGraphToDot-FN6oHDGH.js";import{IncrementalFileHasher as ge}from"./packem_shared/IncrementalFileHasher-CdLXVB5F.js";import{CompositeLifeCycle as Re,ConsoleLifeCycle as ve,EmptyLifeCycle as Fe}from"./packem_shared/CompositeLifeCycle-D0zWvAXJ.js";import{LockfileHasher as Se,extractPackageName as be,parseNpmLockfile as Ie,parsePnpmLockfile as Le,parseYarnLockfile as Ee}from"./packem_shared/extractPackageName-BeL6Gc3a.js";import{LogReporter as He,createLogReporter as Ae}from"./packem_shared/LogReporter-BUPWiXAq.js";import{isNativeAvailable as De,loadNativeBindings as _e}from"./packem_shared/isNativeAvailable-BOavFPX1.js";import{resolveOutputs as Me}from"./packem_shared/resolveOutputs-BBjdaraf.js";import{INPUT_URI_SCHEMES as Oe,InvalidInputUriError as Ue,looksLikeInputUri as Ve,parseInputUri as We}from"./packem_shared/INPUT_URI_SCHEMES-Csrd0tlg.js";import{enforceProjectConstraints as ze}from"./packem_shared/enforceProjectConstraints-dNc1SwRi.js";import{generateRunSummary as qe,getLastRunSummaryPath as Je,readLastRunSummary as Ke,writeLastRunSummary as Qe,writeRunSummary as Xe}from"./packem_shared/generateRunSummary-beN13GH4.js";import{createTaskGraph as $e,getTaskId as er,parseTaskId as rr}from"./packem_shared/createTaskGraph-CEYYI-DL.js";import{findCycle as tr,findCycles as ar,getDependentTasks as sr,getLeafTasks as pr,getTransitiveDependencies as nr,makeAcyclic as mr,reverseTaskGraph as ir,walkTaskGraph as fr}from"./packem_shared/findCycle-BY8-jmzB.js";import{InProcessTaskHasher as lr,computeTaskHash as xr}from"./packem_shared/computeTaskHash-Xxd8v-X3.js";import{TaskOrchestrator as dr}from"./packem_shared/TaskOrchestrator-CXeojk7n.js";import{TaskScheduler as ur,parsePartition as Tr}from"./packem_shared/parsePartition-uzPNgtPp.js";import{TerminalBuffer as gr}from"./packem_shared/TerminalBuffer-BtZy7TpT.js";import{TrackedTaskExecutor as Rr}from"./packem_shared/TrackedTaskExecutor-D3-LNT_d.js";import{d as Fr,j as Br,T as Sr,b as br,E as Ir,v as Lr,h as Er,O as Pr}from"./packem_shared/utils-BH2W5Wml.js";import{evaluateWhen as Ar,explainWhen as wr,getCurrentBranch as Dr,resetBranchCache as _r}from"./packem_shared/getCurrentBranch-D-qoZByx.js";import{getMainWorktreeRoot as Mr,isLinkedWorktree as Nr,resetWorktreeCache as Or}from"./packem_shared/getMainWorktreeRoot-DRN_i8jA.js";import{createInputHandler as Vr}from"./packem_shared/createInputHandler-CkDCpPYy.js";import{expandArguments as jr}from"./packem_shared/expandArguments-4mab7-Ds.js";import{expandShortcut as Yr}from"./packem_shared/expandShortcut-BErNHNXZ.js";import{expandTokens as Jr,expandTokensInString as Kr}from"./packem_shared/expandTokensInString-Cyx0qSFA.js";import{expandWildcard as Xr}from"./packem_shared/expandWildcard-DE0dOOZF.js";import{formatTimingTable as $r,logTimings as eo}from"./packem_shared/formatTimingTable-CP3rsDwf.js";import{runTeardown as oo}from"./packem_shared/runTeardown-DBBpBAyb.js";import{stripQuotes as ao}from"./packem_shared/stripQuotes-jkZb0CL9.js";import{withRestart as po}from"./packem_shared/withRestart-DKtEGsQA.js";export{R as Cache,Re as CompositeLifeCycle,ve as ConsoleLifeCycle,v as DEFAULT_CACHE_DIRECTORY_NAME,Fe as EmptyLifeCycle,se as FileAccessTracker,me as FingerprintManager,T as HttpRemoteCache,Oe as INPUT_URI_SCHEMES,lr as InProcessTaskHasher,ge as IncrementalFileHasher,Ue as InvalidInputUriError,Se as LockfileHasher,He as LogReporter,g as ReapiRemoteCache,dr as TaskOrchestrator,ur as TaskScheduler,gr as TerminalBuffer,Rr as TrackedTaskExecutor,E as V2_AC,P as V2_CAS,H as V2_INDEX,A as V2_ROOT,w as V2_TMP,D as acEntryPath,x as actionDigestForTaskHash,o as buildForwardDependencyMap,t as buildReverseDependencyMap,_ as casBlobPath,Fr as collectFiles,xr as computeTaskHash,N as containsBlob,h as containsByTaskHash,Br as createFailureResult,Vr as createInputHandler,Ae as createLogReporter,i as createRemoteCacheBackend,$e as createTaskGraph,re as defaultTaskRunner,fe as detectFrameworks,te as detectScriptShell,b as digestBuffer,I as digestFile,ze as enforceProjectConstraints,Ar as evaluateWhen,a as expandAffected,jr as expandArguments,Yr as expandShortcut,Jr as expandTokens,Kr as expandTokensInString,Xr as expandWildcard,wr as explainWhen,be as extractPackageName,O as fetchBlobToFile,s as filterAffectedTasks,tr as findCycle,ar as findCycles,F as formatCacheSize,$r as formatTimingTable,pe as generatePreloadScript,qe as generateRunSummary,p as getAffectedProjects,n as getChangedFiles,Dr as getCurrentBranch,sr as getDependentTasks,ce as getFrameworkEnvVariables,Je as getLastRunSummaryPath,pr as getLeafTasks,Mr as getMainWorktreeRoot,er as getTaskId,nr as getTransitiveDependencies,Sr as hashFile,br as hashStrings,le as inferFrameworkEnvPatterns,Nr as isLinkedWorktree,De as isNativeAvailable,_e as loadNativeBindings,eo as logTimings,Ve as looksLikeInputUri,mr as makeAcyclic,B as parseCacheSize,K as parseCommands,We as parseInputUri,Ie as parseNpmLockfile,Tr as parsePartition,Le as parsePnpmLockfile,rr as parseTaskId,Ee as parseYarnLockfile,he as projectGraphToDot,U as putBlobFromBytes,V as putBlobFromFile,Ke as readLastRunSummary,Ir as readPackageDeps,_r as resetBranchCache,Or as resetWorktreeCache,f as resolveCacheMode,Me as resolveOutputs,Lr as resolveTaskCwd,c as resolveTurboEnvCompat,d as retrieveByTaskHash,ir as reverseTaskGraph,$ as runConcurrentFallback,X as runConcurrently,oo as runTeardown,Er as sortObjectKeys,k as storeByTaskHash,ao as stripQuotes,G as taskHashIndexPath,Y as toChromeTrace,de as toGraphAscii,ke as toGraphHtml,ue as toGraphJson,Te as toGraphvizDot,W as touchBlob,Pr as uniqueId,j as verifyBlob,fr as walkTaskGraph,po as withRestart,q as writeChromeTrace,Qe as writeLastRunSummary,Xe as writeRunSummary};
1
+ import{buildForwardDependencyMap as o,buildReverseDependencyMap as t,expandAffected as a,filterAffectedTasks as s,getAffectedProjects as p,getChangedFiles as n}from"./packem_shared/buildForwardDependencyMap-w1FVPFdv.js";import{createRemoteCacheBackend as i,resolveCacheMode as f,resolveTurboEnvCompat as c}from"./packem_shared/resolveCacheMode-DEDFC-kM.js";import{actionDigestForTaskHash as x,containsByTaskHash as h,retrieveByTaskHash as d,storeByTaskHash as k}from"./packem_shared/actionDigestForTaskHash-BOL4fZ9v.js";import{HttpRemoteCache as T}from"./packem_shared/HttpRemoteCache-D3Z6b_FO.js";import{ReapiRemoteCache as g}from"./packem_shared/ReapiRemoteCache-B3uQuVqP.js";import{Cache as R,DEFAULT_CACHE_DIRECTORY_NAME as v,formatCacheSize as F,parseCacheSize as B}from"./packem_shared/Cache-C540ZPYk.js";import{digestBuffer as b,digestFile as I}from"./packem_shared/digestBuffer-g11aCaDx.js";import{V2_AC as E,V2_CAS as P,V2_INDEX as H,V2_ROOT as A,V2_TMP as w,acEntryPath as D,casBlobPath as _,taskHashIndexPath as G}from"./packem_shared/V2_ROOT-injxWBrl.js";import{containsBlob as N,fetchBlobToFile as O,putBlobFromBytes as U,putBlobFromFile as V,touchBlob as W,verifyBlob as j}from"./packem_shared/containsBlob-DBWgvkM_.js";import{toChromeTrace as Y,writeChromeTrace as q}from"./packem_shared/toChromeTrace-DxN5NQIU.js";import{parseCommands as K}from"./packem_shared/parseCommands-b1K2vIxj.js";import{runConcurrently as X}from"./packem_shared/runConcurrently-DYbMGyGv.js";import{runConcurrentFallback as $}from"./packem_shared/runConcurrentFallback-Dpqxuyv-.js";import{defaultTaskRunner as re}from"./packem_shared/defaultTaskRunner-DtBuDlMy.js";import{detectScriptShell as te}from"./packem_shared/detectScriptShell-CaTDk5cW.js";import{FileAccessTracker as se,generatePreloadScript as pe}from"./packem_shared/FileAccessTracker-DSNf03JW.js";import{FingerprintManager as me}from"./packem_shared/FingerprintManager-CYW2EwLc.js";import{detectFrameworks as fe,getFrameworkEnvVariables as ce,inferFrameworkEnvPatterns as le}from"./packem_shared/detectFrameworks-WVZJOPgN.js";import{projectGraphToDot as he,toGraphAscii as de,toGraphHtml as ke,toGraphJson as ue,toGraphvizDot as Te}from"./packem_shared/projectGraphToDot-FN6oHDGH.js";import{IncrementalFileHasher as ge}from"./packem_shared/IncrementalFileHasher-CdLXVB5F.js";import{CompositeLifeCycle as Re,ConsoleLifeCycle as ve,EmptyLifeCycle as Fe}from"./packem_shared/CompositeLifeCycle-D0zWvAXJ.js";import{LockfileHasher as Se,extractPackageName as be,parseNpmLockfile as Ie,parsePnpmLockfile as Le,parseYarnLockfile as Ee}from"./packem_shared/extractPackageName-BeL6Gc3a.js";import{LogReporter as He,createLogReporter as Ae}from"./packem_shared/LogReporter-BUPWiXAq.js";import{isNativeAvailable as De,loadNativeBindings as _e}from"./packem_shared/isNativeAvailable-BOavFPX1.js";import{resolveOutputs as Me}from"./packem_shared/resolveOutputs-BBjdaraf.js";import{INPUT_URI_SCHEMES as Oe,InvalidInputUriError as Ue,looksLikeInputUri as Ve,parseInputUri as We}from"./packem_shared/INPUT_URI_SCHEMES-Csrd0tlg.js";import{enforceProjectConstraints as ze}from"./packem_shared/enforceProjectConstraints-dNc1SwRi.js";import{generateRunSummary as qe,getLastRunSummaryPath as Je,readLastRunSummary as Ke,writeLastRunSummary as Qe,writeRunSummary as Xe}from"./packem_shared/generateRunSummary-beN13GH4.js";import{createTaskGraph as $e,getTaskId as er,parseTaskId as rr}from"./packem_shared/createTaskGraph-D6nPDd4s.js";import{findCycle as tr,findCycles as ar,getDependentTasks as sr,getLeafTasks as pr,getTransitiveDependencies as nr,makeAcyclic as mr,reverseTaskGraph as ir,walkTaskGraph as fr}from"./packem_shared/findCycle-BY8-jmzB.js";import{InProcessTaskHasher as lr,computeTaskHash as xr}from"./packem_shared/computeTaskHash-Xxd8v-X3.js";import{TaskOrchestrator as dr}from"./packem_shared/TaskOrchestrator-epY79EWq.js";import{TaskScheduler as ur,parsePartition as Tr}from"./packem_shared/parsePartition-uzPNgtPp.js";import{TerminalBuffer as gr}from"./packem_shared/TerminalBuffer-BtZy7TpT.js";import{TrackedTaskExecutor as Rr}from"./packem_shared/TrackedTaskExecutor-D3-LNT_d.js";import{d as Fr,j as Br,T as Sr,b as br,E as Ir,v as Lr,h as Er,O as Pr}from"./packem_shared/utils-BH2W5Wml.js";import{evaluateWhen as Ar,explainWhen as wr,getCurrentBranch as Dr,resetBranchCache as _r}from"./packem_shared/getCurrentBranch-D-qoZByx.js";import{getMainWorktreeRoot as Mr,isLinkedWorktree as Nr,resetWorktreeCache as Or}from"./packem_shared/getMainWorktreeRoot-DRN_i8jA.js";import{createInputHandler as Vr}from"./packem_shared/createInputHandler-CkDCpPYy.js";import{expandArguments as jr}from"./packem_shared/expandArguments-4mab7-Ds.js";import{expandShortcut as Yr}from"./packem_shared/expandShortcut-BErNHNXZ.js";import{expandTokens as Jr,expandTokensInString as Kr}from"./packem_shared/expandTokensInString-Cyx0qSFA.js";import{expandWildcard as Xr}from"./packem_shared/expandWildcard-DE0dOOZF.js";import{formatTimingTable as $r,logTimings as eo}from"./packem_shared/formatTimingTable-CP3rsDwf.js";import{runTeardown as oo}from"./packem_shared/runTeardown-DBBpBAyb.js";import{stripQuotes as ao}from"./packem_shared/stripQuotes-jkZb0CL9.js";import{withRestart as po}from"./packem_shared/withRestart-DKtEGsQA.js";export{R as Cache,Re as CompositeLifeCycle,ve as ConsoleLifeCycle,v as DEFAULT_CACHE_DIRECTORY_NAME,Fe as EmptyLifeCycle,se as FileAccessTracker,me as FingerprintManager,T as HttpRemoteCache,Oe as INPUT_URI_SCHEMES,lr as InProcessTaskHasher,ge as IncrementalFileHasher,Ue as InvalidInputUriError,Se as LockfileHasher,He as LogReporter,g as ReapiRemoteCache,dr as TaskOrchestrator,ur as TaskScheduler,gr as TerminalBuffer,Rr as TrackedTaskExecutor,E as V2_AC,P as V2_CAS,H as V2_INDEX,A as V2_ROOT,w as V2_TMP,D as acEntryPath,x as actionDigestForTaskHash,o as buildForwardDependencyMap,t as buildReverseDependencyMap,_ as casBlobPath,Fr as collectFiles,xr as computeTaskHash,N as containsBlob,h as containsByTaskHash,Br as createFailureResult,Vr as createInputHandler,Ae as createLogReporter,i as createRemoteCacheBackend,$e as createTaskGraph,re as defaultTaskRunner,fe as detectFrameworks,te as detectScriptShell,b as digestBuffer,I as digestFile,ze as enforceProjectConstraints,Ar as evaluateWhen,a as expandAffected,jr as expandArguments,Yr as expandShortcut,Jr as expandTokens,Kr as expandTokensInString,Xr as expandWildcard,wr as explainWhen,be as extractPackageName,O as fetchBlobToFile,s as filterAffectedTasks,tr as findCycle,ar as findCycles,F as formatCacheSize,$r as formatTimingTable,pe as generatePreloadScript,qe as generateRunSummary,p as getAffectedProjects,n as getChangedFiles,Dr as getCurrentBranch,sr as getDependentTasks,ce as getFrameworkEnvVariables,Je as getLastRunSummaryPath,pr as getLeafTasks,Mr as getMainWorktreeRoot,er as getTaskId,nr as getTransitiveDependencies,Sr as hashFile,br as hashStrings,le as inferFrameworkEnvPatterns,Nr as isLinkedWorktree,De as isNativeAvailable,_e as loadNativeBindings,eo as logTimings,Ve as looksLikeInputUri,mr as makeAcyclic,B as parseCacheSize,K as parseCommands,We as parseInputUri,Ie as parseNpmLockfile,Tr as parsePartition,Le as parsePnpmLockfile,rr as parseTaskId,Ee as parseYarnLockfile,he as projectGraphToDot,U as putBlobFromBytes,V as putBlobFromFile,Ke as readLastRunSummary,Ir as readPackageDeps,_r as resetBranchCache,Or as resetWorktreeCache,f as resolveCacheMode,Me as resolveOutputs,Lr as resolveTaskCwd,c as resolveTurboEnvCompat,d as retrieveByTaskHash,ir as reverseTaskGraph,$ as runConcurrentFallback,X as runConcurrently,oo as runTeardown,Er as sortObjectKeys,k as storeByTaskHash,ao as stripQuotes,G as taskHashIndexPath,Y as toChromeTrace,de as toGraphAscii,ke as toGraphHtml,ue as toGraphJson,Te as toGraphvizDot,W as touchBlob,Pr as uniqueId,j as verifyBlob,fr as walkTaskGraph,po as withRestart,q as writeChromeTrace,Qe as writeLastRunSummary,Xe as writeRunSummary};