@kitman-sh/cli 0.10.54 → 0.10.56

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.
@@ -20,22 +20,22 @@ import {
20
20
  import {
21
21
  FileSystem,
22
22
  Path
23
- } from "./chunk-xgwjcq4z.js";
23
+ } from "./chunk-emabyaj0.js";
24
24
  import {
25
25
  tomlTableHeader2,
26
26
  tomlKeyPath2,
27
27
  kitmanSkillEntry,
28
28
  isPathWithin2
29
- } from "./chunk-5y5axze6.js";
29
+ } from "./chunk-s97jvqxb.js";
30
30
  import {
31
31
  instructionsStart,
32
32
  instructionsEnd,
33
33
  renderMcpServer,
34
34
  materializeKitSetup,
35
35
  tomlInline
36
- } from "./chunk-m32wb6t0.js";
37
- import"./chunk-twp7aprz.js";
38
- import"./chunk-mmetyep8.js";
36
+ } from "./chunk-jb9dcsfn.js";
37
+ import"./chunk-bdxhb63t.js";
38
+ import"./chunk-kdyzndvx.js";
39
39
 
40
40
  // packages/agent-runtime/src/kit-setup-sync.ts
41
41
  class KitSyncError extends TaggedError("KitSyncError") {
@@ -6,7 +6,7 @@ import {
6
6
  decideSecretRequest,
7
7
  readSecretRegistry,
8
8
  appendSecretRefusals
9
- } from "./chunk-3d6abgjh.js";
9
+ } from "./chunk-g53wn1q8.js";
10
10
 
11
11
  // packages/agent-runtime/src/srt-step.ts
12
12
  import { SandboxRuntimeConfigSchema } from "@anthropic-ai/sandbox-runtime";
@@ -28,7 +28,7 @@ import {
28
28
  import {
29
29
  withDefault,
30
30
  String2
31
- } from "./chunk-xgwjcq4z.js";
31
+ } from "./chunk-emabyaj0.js";
32
32
  import {
33
33
  digestSha256,
34
34
  digestSha512,
@@ -36,9 +36,9 @@ import {
36
36
  schemaBodyJson,
37
37
  filterStatusOk,
38
38
  get2,
39
- layer2,
39
+ layer4,
40
40
  KitDigest
41
- } from "./chunk-m32wb6t0.js";
41
+ } from "./chunk-jb9dcsfn.js";
42
42
 
43
43
  // packages/core/src/npm-registry.ts
44
44
  var KitManifest = Struct({
@@ -107,7 +107,7 @@ var npmRegistryAt = (url = registryUrl) => {
107
107
  message: `npm did not answer for ${name}@${version}: ${error.message}; try again`
108
108
  });
109
109
  const packument = (name, version) => gen(function* () {
110
- const response = yield* get2(`${yield* base}/${name.replace("/", "%2F")}`).pipe(mapError2(unreachable(name, version)), provide3(layer2));
110
+ const response = yield* get2(`${yield* base}/${name.replace("/", "%2F")}`).pipe(mapError2(unreachable(name, version)), provide3(layer4));
111
111
  if (response.status === 404)
112
112
  return yield* new NpmRegistryError({ kind: "not_found", message: `npm has no package ${name}` });
113
113
  return yield* filterStatusOk(response).pipe(flatMap3(schemaBodyJson(Packument)), mapError2(unreachable(name, version)));
@@ -123,7 +123,7 @@ var npmRegistryAt = (url = registryUrl) => {
123
123
  const dist = found.versions[version]?.dist;
124
124
  if (dist === undefined)
125
125
  return yield* new NpmRegistryError({ kind: "not_found", message: `npm has no ${name}@${wanted}` });
126
- const tarball = yield* get2(dist.tarball).pipe(flatMap3(filterStatusOk), flatMap3((response) => response.arrayBuffer), map8((buffer) => new Uint8Array(buffer)), mapError2(unreachable(name, version)), provide3(layer2));
126
+ const tarball = yield* get2(dist.tarball).pipe(flatMap3(filterStatusOk), flatMap3((response) => response.arrayBuffer), map8((buffer) => new Uint8Array(buffer)), mapError2(unreachable(name, version)), provide3(layer4));
127
127
  if (!tarballMatches(tarball, dist))
128
128
  return yield* new NpmRegistryError({
129
129
  kind: "integrity",
@@ -3471,13 +3471,16 @@ var pinnedSrtCommand2 = () => compiled2 ? [process.execPath, "srt"] : [process.e
3471
3471
  var pinnedSrtStepCommand2 = () => compiled2 ? [process.execPath, "srt-step"] : [process.execPath, fileURLToPath(new URL("./srt-step.main.ts", import.meta.url))];
3472
3472
  var srtPackageDir = () => fileURLToPath(new URL("../", import.meta.resolve("@anthropic-ai/sandbox-runtime/dist/cli.js")));
3473
3473
  var runSrtCli2 = () => import("@anthropic-ai/sandbox-runtime/dist/cli.js");
3474
+ var kitmanCacheDirectory2 = gen(function* () {
3475
+ const path = yield* Path;
3476
+ const cacheHome = yield* String2("XDG_CACHE_HOME").pipe(withDefault(""));
3477
+ return path.join(cacheHome === "" ? path.join(homedir(), ".cache") : cacheHome, "kitman");
3478
+ });
3474
3479
  var embeddedApplySeccomp = gen(function* () {
3475
3480
  const file = compiled2 && process.platform === "linux" ? embeddedFile(Bun.embeddedFiles, "apply-seccomp") : undefined;
3476
3481
  if (file === undefined)
3477
3482
  return;
3478
- const path = yield* Path;
3479
- const cacheHome = yield* String2("XDG_CACHE_HOME").pipe(withDefault(""));
3480
- return yield* extractEmbeddedFile(path.join(cacheHome === "" ? path.join(homedir(), ".cache") : cacheHome, "kitman"), file, "apply-seccomp");
3483
+ return yield* extractEmbeddedFile(yield* kitmanCacheDirectory2, file, "apply-seccomp");
3481
3484
  }).pipe(orDie);
3482
3485
  var globCharacters = /[*?[\]{}]/;
3483
3486
  var readAllowEntry = (path) => globCharacters.test(path) ? { path, literal: true } : path;
@@ -3548,4 +3551,4 @@ var srtArgv2 = (srtCommand, settingsFile, argv) => [
3548
3551
  ...argv
3549
3552
  ];
3550
3553
 
3551
- export { map, makeEquivalence, bytes, join, interrupt, getCurrent, BadArgument, systemError, badArgument, makeUnsafe2, make8, unbounded, publishUnsafe, make9, bounded, sliding, unbounded2, offer, offerUnsafe, offerAll, fail, failCause, failCauseUnsafe, end, endUnsafe, shutdownUnsafe, take, poll, makeUnsafe3, fromTransform, mapDone, isSink, fromChannel, drain, make10, get3, isStream, fromChannel2, callback, empty2, make11, suspend, fail2, fromQueue, fromPubSub, fromReadableStream, unwrap, map2, tap, drainFork, concat, merge2, filter, catchCause, tapError, mapError, transduce, decodeText, encodeText, splitLines, interruptWhen, ensuring, provideContext, run, runCollect, runFold, runHead, runForEach, runDrain, mkString, mkArrayBuffer, toReadableStreamEffect, FileSystem, make12, FileTypeId, WatchBackend, Path, make13, embeddedFile, extractEmbeddedFile, map3, all, withDefault, option, String2, optionalEnv, harnessesUnsupportedInSrt2, compiled2, pinnedSrtCommand2, pinnedSrtStepCommand2, runSrtCli2, srtSettings2, srtCacheEnvironment2, srtInheritedEnv2, inheritedEnvironment2, withOnlyEnvironment2, writeSrtSettings2, srtStepArgv2, srtArgv2 };
3554
+ export { map, makeEquivalence, bytes, join, interrupt, getCurrent, BadArgument, systemError, badArgument, makeUnsafe2, make8, unbounded, publishUnsafe, make9, bounded, sliding, unbounded2, offer, offerUnsafe, offerAll, fail, failCause, failCauseUnsafe, end, endUnsafe, shutdownUnsafe, take, poll, makeUnsafe3, fromTransform, mapDone, isSink, fromChannel, drain, make10, get3, isStream, fromChannel2, callback, empty2, make11, suspend, fail2, fromQueue, fromPubSub, fromReadableStream, unwrap, map2, tap, drainFork, concat, merge2, filter, catchCause, tapError, mapError, transduce, decodeText, encodeText, splitLines, interruptWhen, ensuring, provideContext, run, runCollect, runFold, runHead, runForEach, runDrain, mkString, mkArrayBuffer, toReadableStreamEffect, FileSystem, make12, FileTypeId, WatchBackend, Path, make13, embeddedFile, extractEmbeddedFile, map3, all, withDefault, option, String2, optionalEnv, harnessesUnsupportedInSrt2, compiled2, pinnedSrtCommand2, pinnedSrtStepCommand2, runSrtCli2, kitmanCacheDirectory2, srtSettings2, srtCacheEnvironment2, srtInheritedEnv2, inheritedEnvironment2, withOnlyEnvironment2, writeSrtSettings2, srtStepArgv2, srtArgv2 };
@@ -153,7 +153,7 @@ import {
153
153
  runMcpEffect,
154
154
  createAgentAuthSignedFetch,
155
155
  setupMcpAgentCredential
156
- } from "./chunk-m32wb6t0.js";
156
+ } from "./chunk-jb9dcsfn.js";
157
157
  import {
158
158
  guard,
159
159
  Id,
@@ -187,7 +187,7 @@ import {
187
187
  withDefault,
188
188
  option,
189
189
  String2
190
- } from "./chunk-xgwjcq4z.js";
190
+ } from "./chunk-emabyaj0.js";
191
191
  import {
192
192
  nextInt
193
193
  } from "./chunk-gwcqz1bj.js";
@@ -197,7 +197,7 @@ import {
197
197
  withHeaders,
198
198
  layerProtocolSocket,
199
199
  ConnectionHooks
200
- } from "./chunk-148mjppg.js";
200
+ } from "./chunk-338c1c1x.js";
201
201
 
202
202
  // apps/cli/src/mcp.ts
203
203
  import { tmpdir } from "os";
@@ -315,7 +315,7 @@ import {
315
315
  String2,
316
316
  optionalEnv,
317
317
  harnessesUnsupportedInSrt2
318
- } from "./chunk-xgwjcq4z.js";
318
+ } from "./chunk-emabyaj0.js";
319
319
  import {
320
320
  isDateTime,
321
321
  Numeric,
@@ -355,7 +355,7 @@ import {
355
355
  make3,
356
356
  parseFdName,
357
357
  fdName
358
- } from "./chunk-mmetyep8.js";
358
+ } from "./chunk-kdyzndvx.js";
359
359
 
360
360
  // node_modules/.bun/effect@4.1.2/node_modules/effect/dist/Tuple.js
361
361
  var makeEquivalence3 = Tuple;
@@ -1756,7 +1756,7 @@ var make19 = /* @__PURE__ */ gen(function* () {
1756
1756
  });
1757
1757
  return make2(spawnCommand);
1758
1758
  });
1759
- var layer3 = /* @__PURE__ */ effect(ChildProcessSpawner, make19);
1759
+ var layer5 = /* @__PURE__ */ effect(ChildProcessSpawner, make19);
1760
1760
  var flattenCommand = (command) => {
1761
1761
  const commands = [];
1762
1762
  const pipeOptions = [];
@@ -2270,10 +2270,10 @@ var makeFileSystem = /* @__PURE__ */ map8(/* @__PURE__ */ serviceOption(WatchBac
2270
2270
  },
2271
2271
  writeFile: writeFile2
2272
2272
  }));
2273
- var layer4 = /* @__PURE__ */ effect(FileSystem)(makeFileSystem);
2273
+ var layer6 = /* @__PURE__ */ effect(FileSystem)(makeFileSystem);
2274
2274
 
2275
2275
  // node_modules/.bun/@effect+platform-bun@4.1.2+edf248c88a527e3e/node_modules/@effect/platform-bun/dist/BunFileSystem.js
2276
- var layer5 = layer4;
2276
+ var layer = layer6;
2277
2277
 
2278
2278
  // node_modules/.bun/@effect+platform-node-shared@4.1.2+edf248c88a527e3e/node_modules/@effect/platform-node-shared/dist/NodePath.js
2279
2279
  import * as NodePath from "path";
@@ -2308,13 +2308,13 @@ var layerWin32 = /* @__PURE__ */ succeed5(Path)(/* @__PURE__ */ make13({
2308
2308
  ...NodePath.win32,
2309
2309
  .../* @__PURE__ */ fileUrlOps(true)
2310
2310
  }));
2311
- var layer6 = /* @__PURE__ */ succeed5(Path)(/* @__PURE__ */ make13({
2311
+ var layer7 = /* @__PURE__ */ succeed5(Path)(/* @__PURE__ */ make13({
2312
2312
  ...NodePath,
2313
2313
  .../* @__PURE__ */ fileUrlOps(undefined)
2314
2314
  }));
2315
2315
 
2316
2316
  // node_modules/.bun/@effect+platform-bun@4.1.2+edf248c88a527e3e/node_modules/@effect/platform-bun/dist/BunPath.js
2317
- var layer7 = layer6;
2317
+ var layer2 = layer7;
2318
2318
 
2319
2319
  // node_modules/.bun/effect@4.1.2/node_modules/effect/dist/Stdio.js
2320
2320
  var TypeId3 = "~effect/Stdio";
@@ -3174,7 +3174,7 @@ function defaultShouldQuit(input) {
3174
3174
  var layer11 = layer10;
3175
3175
 
3176
3176
  // node_modules/.bun/@effect+platform-bun@4.1.2+edf248c88a527e3e/node_modules/@effect/platform-bun/dist/BunServices.js
3177
- var layer = /* @__PURE__ */ layer3.pipe(/* @__PURE__ */ provideMerge(/* @__PURE__ */ mergeAll(layer5, layer7, layer9, layer11)));
3177
+ var layer3 = /* @__PURE__ */ layer5.pipe(/* @__PURE__ */ provideMerge(/* @__PURE__ */ mergeAll(layer, layer2, layer9, layer11)));
3178
3178
 
3179
3179
  // node_modules/.bun/effect@4.1.2/node_modules/effect/dist/Console.js
3180
3180
  var Console = ConsoleRef;
@@ -10125,7 +10125,7 @@ var fetch2 = /* @__PURE__ */ make27((request, url, signal, fiber) => {
10125
10125
  }
10126
10126
  return send(undefined);
10127
10127
  });
10128
- var layer2 = /* @__PURE__ */ layerMergedContext(/* @__PURE__ */ succeed6(fetch2));
10128
+ var layer4 = /* @__PURE__ */ layerMergedContext(/* @__PURE__ */ succeed6(fetch2));
10129
10129
  // node_modules/.bun/effect@4.1.2/node_modules/effect/dist/socket/Socket.js
10130
10130
  var TypeId14 = "~effect/socket/Socket";
10131
10131
  var Socket = /* @__PURE__ */ Service2("effect/socket/Socket");
@@ -10867,7 +10867,7 @@ var collectorHttpClient = effect(HttpClient)(map8(HttpClient, (client) => transf
10867
10867
  description: `The collector did not answer in ${collectorTimeout}`
10868
10868
  })
10869
10869
  }))
10870
- })))).pipe(provide2(layer2));
10870
+ })))).pipe(provide2(layer4));
10871
10871
  var metricLabels = new Map;
10872
10872
  // packages/core/src/run-display.ts
10873
10873
  var runDisplayLabels = {
@@ -14606,7 +14606,7 @@ function stringValue(value) {
14606
14606
  // node_modules/.bun/@effect+platform-node-shared@4.1.2+edf248c88a527e3e/node_modules/@effect/platform-node-shared/dist/NodeCrypto.js
14607
14607
  var layerSecureRandom = layerWebCrypto;
14608
14608
  // apps/mcp/src/platform.ts
14609
- var McpPlatformLive = mergeAll(layerSecureRandom, layer5, layer7);
14609
+ var McpPlatformLive = mergeAll(layerSecureRandom, layer, layer2);
14610
14610
  function runMcpEffect(effect) {
14611
14611
  return runPromise(provide3(effect, McpPlatformLive));
14612
14612
  }
@@ -15456,4 +15456,4 @@ function checkServices(declaration) {
15456
15456
  return isSome(decoded) ? [...new Set(decoded.value.services)] : undefined;
15457
15457
  }
15458
15458
 
15459
- export { Clock, currentTimeMillis, WebCrypto, SecureRandom, layerWebCrypto, makeUnsafe, formatIso, empty, fromInput, merge, runMain, Stdio, Terminal, layer, error, log, toDate, parseDate, toIso, currentDate, wallClockMillis, waitingOnWords, queueWords, scanDurableSurface, redactResponseSurface, redactCredentials, redactedOutputTail, SafeJson, AgentHarnessIds, AgentSkillRequirement, AgentMcpServerRequirement, AgentEnvironmentFragment, findForbiddenAgentEnvironmentSecretPath, RepoBindingProviders, RepoBindingCredentialProviderTypes, findForbiddenRepoBindingSecretPath, AgentSandboxNetwork, runnerAgentSandboxPolicy, agentNetworkAllowlist, verificationNetworkAllowlist, programNetworkHosts, ContextPackModes, DefaultContextPackMode, ProposalStatuses, ProposalTargetTypes, canonicalJson, canonicalSha256, AgentEfforts, AgentCapabilities, LoopDataSchemaRef, RunDisplayStates, LoopVersion, ProgramLoop, AgentFallback, ProgramWorkUnit, MeasureSample, MeasureEvidence, catchUpPathLimit, CatchUp, RunnerOwnership, defaultRunnerCapabilities, MemoryStatuses, MemoryScopes, MaxMemoryListLimit, DecisionStatuses, Session, SessionEnd, SessionUpdate, SessionUpdateCreate, FixFlowRecoveryActions, KitmanAgentCapabilityNames, sha2562, isRunFileRefusalReason, runFileRefusalWords, RunFileRefused, runFileContentType, repositoryKey, createId, digestSha256, digestSha512, digestWith, sha256Hasher, AgentEvent, raw, make5, get, put, setHeaders, bodyUint8Array, schemaBodyJson, filterStatusOk, HttpClient, execute, get2, Fetch, layer2, Socket, SocketReadError, SocketError, WebSocketConstructor, layerWebSocketConstructorGlobal, layerWebSocket, runDisplayLabels, listedSummary, KitName, KitDigest, defaultKitName, KitSetup, SetupArchive, kitMcpSecretNames, kitmanMcpServer, KitmanClientError, KitmanEffectClient, CliError, DefaultApiUrl, resolveConfig, apiUrlFromEnv, stepCredentialFromEnv, stepWorkspaceFromEnv, stepSkillsDirFromEnv, stepFittingSkillsFromEnv, stepOutputOnlyFromEnv, mcpCredentialNameFromEnv, userConfigPath, userAuthPath, userHarnessSyncPath, kitSetupCacheDir, bundleCacheDir, localConfigPath, readUserConfig, writeUserConfig, sessionForApi, readAuthStore, storeSession, removeSession, removeAllSessions, agentCredentialForApi, storeAgentCredential, removeAgentCredential, normalizeApiUrl, isStoredAgentCredential, isStreamSchema, getStreamSchemas, make6, exitSchema, ParseOptions, RpcClientDefect, RpcClientError, make7, Service, RunnerHeaders, RunnerRpcProtocolVersion, RunnerRpcError, RunSettled, UpdateAvailable, RunnerReplicaRpcs, RunnerRunFileRpcs, ProgramRpcs, parseCallbackUrl, revokeToken, toStoredSession, browserLogin, openBrowser, shouldRefresh, createSdkClient, refreshSession, AgentAuthClientError, executeAgentCapability, createAgentAuthBearerToken, McpPlatformLive, runMcpEffect, createAgentAuthSignedFetch, setupMcpAgentCredential, generateAgentKeyPair, HERDR_CORE_GENERATION2, HERDR_CORE_INSTALL_COMMAND2, HerdrCoreMissing2, HerdrCoreIncompatible2, HerdrCoreConnectionLost2, HerdrCoreRpcError2, HerdrCoreUpdateFailed2, HerdrCore2, herdrCoreLayer2, herdrCoreTransportLayer2, updateHerdrCore2, CommandFailed2, runCommand2, withoutPreloads2, shellOutputTailChars2, runProcess2, CommandRunner2, runShell2, detectHarnesses2, kitHarnesses, isKitHarness, instructionsStart, instructionsEnd, harnessNames, renderMcpServer, materializeKitSetup, tomlInline, herdrExecutionExtension2, herdrNativeExtensionIds2, herdrRunnerCapabilitiesForRepoBinding2, herdrRunnerCapabilities2, assertHerdrRunnerCapability2, declaredChecks, installCommand, checkServicesFile, checkServices };
15459
+ export { Clock, currentTimeMillis, WebCrypto, SecureRandom, layerWebCrypto, makeUnsafe, formatIso, empty, fromInput, merge, runMain, layer, layer2, Stdio, Terminal, layer3, error, log, toDate, parseDate, toIso, currentDate, wallClockMillis, waitingOnWords, queueWords, scanDurableSurface, redactResponseSurface, redactCredentials, redactedOutputTail, SafeJson, AgentHarnessIds, AgentSkillRequirement, AgentMcpServerRequirement, AgentEnvironmentFragment, findForbiddenAgentEnvironmentSecretPath, RepoBindingProviders, RepoBindingCredentialProviderTypes, findForbiddenRepoBindingSecretPath, AgentSandboxNetwork, runnerAgentSandboxPolicy, agentNetworkAllowlist, verificationNetworkAllowlist, programNetworkHosts, ContextPackModes, DefaultContextPackMode, ProposalStatuses, ProposalTargetTypes, canonicalJson, canonicalSha256, AgentEfforts, AgentCapabilities, LoopDataSchemaRef, RunDisplayStates, LoopVersion, ProgramLoop, AgentFallback, ProgramWorkUnit, MeasureSample, MeasureEvidence, catchUpPathLimit, CatchUp, RunnerOwnership, defaultRunnerCapabilities, MemoryStatuses, MemoryScopes, MaxMemoryListLimit, DecisionStatuses, Session, SessionEnd, SessionUpdate, SessionUpdateCreate, FixFlowRecoveryActions, KitmanAgentCapabilityNames, sha2562, isRunFileRefusalReason, runFileRefusalWords, RunFileRefused, runFileContentType, repositoryKey, createId, digestSha256, digestSha512, digestWith, sha256Hasher, AgentEvent, raw, make5, get, put, setHeaders, bodyUint8Array, schemaBodyJson, filterStatusOk, HttpClient, execute, get2, Fetch, layer4, Socket, SocketReadError, SocketError, WebSocketConstructor, layerWebSocketConstructorGlobal, layerWebSocket, runDisplayLabels, listedSummary, KitName, KitDigest, defaultKitName, KitSetup, SetupArchive, kitMcpSecretNames, kitmanMcpServer, KitmanClientError, KitmanEffectClient, CliError, DefaultApiUrl, resolveConfig, apiUrlFromEnv, stepCredentialFromEnv, stepWorkspaceFromEnv, stepSkillsDirFromEnv, stepFittingSkillsFromEnv, stepOutputOnlyFromEnv, mcpCredentialNameFromEnv, userConfigPath, userAuthPath, userHarnessSyncPath, kitSetupCacheDir, bundleCacheDir, localConfigPath, readUserConfig, writeUserConfig, sessionForApi, readAuthStore, storeSession, removeSession, removeAllSessions, agentCredentialForApi, storeAgentCredential, removeAgentCredential, normalizeApiUrl, isStoredAgentCredential, isStreamSchema, getStreamSchemas, make6, exitSchema, ParseOptions, RpcClientDefect, RpcClientError, make7, Service, RunnerHeaders, RunnerRpcProtocolVersion, RunnerRpcError, RunSettled, UpdateAvailable, RunnerReplicaRpcs, RunnerRunFileRpcs, ProgramRpcs, parseCallbackUrl, revokeToken, toStoredSession, browserLogin, openBrowser, shouldRefresh, createSdkClient, refreshSession, AgentAuthClientError, executeAgentCapability, createAgentAuthBearerToken, McpPlatformLive, runMcpEffect, createAgentAuthSignedFetch, setupMcpAgentCredential, generateAgentKeyPair, HERDR_CORE_GENERATION2, HERDR_CORE_INSTALL_COMMAND2, HerdrCoreMissing2, HerdrCoreIncompatible2, HerdrCoreConnectionLost2, HerdrCoreRpcError2, HerdrCoreUpdateFailed2, HerdrCore2, herdrCoreLayer2, herdrCoreTransportLayer2, updateHerdrCore2, CommandFailed2, runCommand2, withoutPreloads2, shellOutputTailChars2, runProcess2, CommandRunner2, runShell2, detectHarnesses2, kitHarnesses, isKitHarness, instructionsStart, instructionsEnd, harnessNames, renderMcpServer, materializeKitSetup, tomlInline, herdrExecutionExtension2, herdrNativeExtensionIds2, herdrRunnerCapabilitiesForRepoBinding2, herdrRunnerCapabilities2, assertHerdrRunnerCapability2, declaredChecks, installCommand, checkServicesFile, checkServices };
@@ -31,7 +31,7 @@ import {
31
31
  runCollect,
32
32
  runDrain,
33
33
  mkString
34
- } from "./chunk-xgwjcq4z.js";
34
+ } from "./chunk-emabyaj0.js";
35
35
 
36
36
  // node_modules/.bun/effect@4.1.2/node_modules/effect/dist/internal/redacted.js
37
37
  var redactedRegistry = /* @__PURE__ */ new WeakMap;
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-61k67vxh.js";
10
10
  import {
11
11
  runForEach
12
- } from "./chunk-xgwjcq4z.js";
12
+ } from "./chunk-emabyaj0.js";
13
13
  import {
14
14
  WebSocketConstructor,
15
15
  layerWebSocketConstructorGlobal,
@@ -19,13 +19,13 @@ import {
19
19
  RunnerReplicaRpcs,
20
20
  RunnerRunFileRpcs,
21
21
  ProgramRpcs
22
- } from "./chunk-m32wb6t0.js";
22
+ } from "./chunk-jb9dcsfn.js";
23
23
  import {
24
24
  layerJson,
25
25
  make4,
26
26
  withHeaders,
27
27
  layerProtocolSocket
28
- } from "./chunk-148mjppg.js";
28
+ } from "./chunk-338c1c1x.js";
29
29
 
30
30
  // packages/live/src/rpc/runner-client.ts
31
31
  var proxiedWebSocket = (proxy) => succeed5(WebSocketConstructor)((target) => {
@@ -32,15 +32,15 @@ import {
32
32
  FileSystem,
33
33
  Path,
34
34
  optionalEnv
35
- } from "./chunk-xgwjcq4z.js";
35
+ } from "./chunk-emabyaj0.js";
36
36
  import {
37
37
  AgentHarnessIds,
38
38
  sha2562,
39
39
  runCommand2
40
- } from "./chunk-m32wb6t0.js";
40
+ } from "./chunk-jb9dcsfn.js";
41
41
  import {
42
42
  NpmRegistry
43
- } from "./chunk-twp7aprz.js";
43
+ } from "./chunk-bdxhb63t.js";
44
44
 
45
45
  // packages/agent-runtime/src/config-convergence.ts
46
46
  var writeAgentEnvironmentConfigFile2 = fnUntraced(function* (file, content, keep = {}) {
@@ -5,6 +5,7 @@ import {
5
5
  pinnedSrtCommand2,
6
6
  pinnedSrtStepCommand2,
7
7
  runSrtCli2,
8
+ kitmanCacheDirectory2,
8
9
  srtSettings2,
9
10
  srtCacheEnvironment2,
10
11
  srtInheritedEnv2,
@@ -13,12 +14,13 @@ import {
13
14
  writeSrtSettings2,
14
15
  srtStepArgv2,
15
16
  srtArgv2
16
- } from "./chunk-xgwjcq4z.js";
17
+ } from "./chunk-emabyaj0.js";
17
18
  import"./chunk-61k67vxh.js";
18
19
  export {
19
20
  compiled2 as compiled,
20
21
  harnessesUnsupportedInSrt2 as harnessesUnsupportedInSrt,
21
22
  inheritedEnvironment2 as inheritedEnvironment,
23
+ kitmanCacheDirectory2 as kitmanCacheDirectory,
22
24
  pinnedSrtCommand2 as pinnedSrtCommand,
23
25
  pinnedSrtStepCommand2 as pinnedSrtStepCommand,
24
26
  runSrtCli2 as runSrtCli,
@@ -32,11 +32,11 @@ import {
32
32
  make11,
33
33
  runForEach,
34
34
  compiled2
35
- } from "./chunk-xgwjcq4z.js";
35
+ } from "./chunk-emabyaj0.js";
36
36
  import {
37
37
  ChildProcessSpawner,
38
38
  make3
39
- } from "./chunk-mmetyep8.js";
39
+ } from "./chunk-kdyzndvx.js";
40
40
 
41
41
  // packages/agent-runtime/src/opencode-store.ts
42
42
  import { lstatSync, readFileSync, realpathSync } from "fs";
@@ -97,7 +97,7 @@ import {
97
97
  withDefault,
98
98
  option,
99
99
  String2
100
- } from "./chunk-xgwjcq4z.js";
100
+ } from "./chunk-emabyaj0.js";
101
101
  import {
102
102
  currentTimeMillis,
103
103
  SecureRandom,
@@ -105,7 +105,7 @@ import {
105
105
  runMain,
106
106
  Stdio,
107
107
  Terminal,
108
- layer,
108
+ layer3,
109
109
  error,
110
110
  log,
111
111
  toIso,
@@ -141,7 +141,7 @@ import {
141
141
  HttpClient,
142
142
  execute,
143
143
  Fetch,
144
- layer2,
144
+ layer4,
145
145
  runDisplayLabels,
146
146
  listedSummary,
147
147
  defaultKitName,
@@ -197,7 +197,7 @@ import {
197
197
  harnessNames,
198
198
  herdrRunnerCapabilities2,
199
199
  declaredChecks
200
- } from "./chunk-m32wb6t0.js";
200
+ } from "./chunk-jb9dcsfn.js";
201
201
  import {
202
202
  Id
203
203
  } from "./chunk-4kssrezn.js";
@@ -214,7 +214,7 @@ import {
214
214
  import {
215
215
  ChildProcessSpawner,
216
216
  make3
217
- } from "./chunk-mmetyep8.js";
217
+ } from "./chunk-kdyzndvx.js";
218
218
 
219
219
  // apps/cli/src/cli-error.ts
220
220
  function cliErrorCode(error, status) {
@@ -496,12 +496,18 @@ var sandboxMissing = (sandbox, missing) => ({
496
496
  });
497
497
  var personalCheckBackend = (agentSandbox, dockerAvailable) => agentSandbox === "srt" || agentSandbox === "docker" && dockerAvailable ? agentSandbox : undefined;
498
498
  var checkHostsSetting = (value) => (value ?? "").split(",").map((host) => host.trim()).filter((host) => host !== "");
499
+ var pinnedImage = (value) => {
500
+ const image = value?.trim();
501
+ return image !== undefined && /@sha256:[a-f0-9]{64}$/.test(image) ? image : undefined;
502
+ };
503
+ var checkDockerImageSetting = pinnedImage;
504
+ var checkRegistryImageSetting = pinnedImage;
499
505
  var herdrCoreSession = (runnerId, personal) => personal ? undefined : `kitman-${sha2562(runnerId).slice(0, 16)}`;
500
506
  var OpenHerdrCore = Reference("kitman/cli/OpenHerdrCore", {
501
- defaultValue: () => (options) => flatMap3(promise(() => import("./chunk-mtgkvbk4.js")), ({ HerdrCore, herdrCoreLayer }) => provide3(service(HerdrCore), herdrCoreLayer(options)))
507
+ defaultValue: () => (options) => flatMap3(promise(() => import("./chunk-2md3k83r.js")), ({ HerdrCore, herdrCoreLayer }) => provide3(service(HerdrCore), herdrCoreLayer(options)))
502
508
  });
503
509
  var UpdateHerdrCore = Reference("kitman/cli/UpdateHerdrCore", {
504
- defaultValue: () => (options) => flatMap3(promise(() => import("./chunk-mtgkvbk4.js")), (module) => module.updateHerdrCore(options))
510
+ defaultValue: () => (options) => flatMap3(promise(() => import("./chunk-2md3k83r.js")), (module) => module.updateHerdrCore(options))
505
511
  });
506
512
  var herdrCoreMissing = (error) => {
507
513
  if (isTagged(error, "HerdrCoreMissing"))
@@ -727,7 +733,7 @@ var syncTargets = (harness) => gen(function* () {
727
733
  });
728
734
  var syncKits = (input) => gen(function* () {
729
735
  const fs = yield* FileSystem;
730
- const { syncKitSetup } = yield* promise(() => import("./chunk-eerh2t20.js"));
736
+ const { syncKitSetup } = yield* promise(() => import("./chunk-7kernadf.js"));
731
737
  const harnesses = yield* syncTargets(input.harness);
732
738
  const chain = yield* input.client.getKitChain(input.workspaceId);
733
739
  for (const { name, problem } of chain.skipped)
@@ -759,7 +765,7 @@ var syncKits = (input) => gen(function* () {
759
765
 
760
766
  // apps/cli/src/assets.ts
761
767
  function send(request, failure) {
762
- return execute(request).pipe(mapError2((error) => failure(error.cause ?? error)), provide3(layer2));
768
+ return execute(request).pipe(mapError2((error) => failure(error.cause ?? error)), provide3(layer4));
763
769
  }
764
770
  function putPresignedAsset(upload, bytes) {
765
771
  return gen(function* () {
@@ -1645,7 +1651,7 @@ var package_default = {
1645
1651
  };
1646
1652
 
1647
1653
  // apps/cli/src/scaffold.ts
1648
- var cliVersion = "0.10.54";
1654
+ var cliVersion = "0.10.56";
1649
1655
  var packageJson = (name, scaffold) => `${JSON.stringify({
1650
1656
  name,
1651
1657
  private: true,
@@ -1894,7 +1900,7 @@ var Usage = [
1894
1900
  "Every run, loop, agent, verify, constraint, secret, claim, deploy, dev and kit command takes --json."
1895
1901
  ].join(`
1896
1902
  `);
1897
- var agentRuntime = promise(() => import("./chunk-c0wrcam4.js"));
1903
+ var agentRuntime = promise(() => import("./chunk-48dn3enn.js"));
1898
1904
  var TuiLauncher = Reference("kitman/cli/TuiLauncher", {
1899
1905
  defaultValue: () => gen(function* () {
1900
1906
  const tui = yield* tryPromise({
@@ -2740,7 +2746,7 @@ var SandboxHostProbe = Reference("kitman/cli/SandboxHostProbe", {
2740
2746
  });
2741
2747
  var OpenRunnerRpc = Reference("kitman/cli/OpenRunnerRpc", {
2742
2748
  defaultValue: () => (options) => gen(function* () {
2743
- const { makeRunnerRpcClient, runnerRpcUrl, runnerWebSocketProtocol } = yield* promise(() => import("./chunk-dkpqwk0q.js"));
2749
+ const { makeRunnerRpcClient, runnerRpcUrl, runnerWebSocketProtocol } = yield* promise(() => import("./chunk-2t06f3vz.js"));
2744
2750
  return yield* makeRunnerRpcClient({
2745
2751
  runnerId: options.runnerId,
2746
2752
  bearer: options.bearer,
@@ -2762,7 +2768,9 @@ var runnerSettings = gen(function* () {
2762
2768
  sshAgentAvailable: (yield* optional("SSH_AUTH_SOCK")) !== undefined,
2763
2769
  sandbox,
2764
2770
  dockerImage: yield* optional("KITMAN_RUNNER_DOCKER_IMAGE"),
2765
- checkHosts: checkHostsSetting(yield* optional("KITMAN_RUNNER_CHECK_HOSTS"))
2771
+ checkHosts: checkHostsSetting(yield* optional("KITMAN_RUNNER_CHECK_HOSTS")),
2772
+ checkDockerImage: checkDockerImageSetting(yield* optional("KITMAN_RUNNER_CHECK_DOCKER_IMAGE")),
2773
+ checkRegistryImage: checkRegistryImageSetting(yield* optional("KITMAN_RUNNER_CHECK_REGISTRY_IMAGE"))
2766
2774
  };
2767
2775
  });
2768
2776
  var herdrRunnerRootDir = gen(function* () {
@@ -2787,8 +2795,10 @@ function startCanonicalHerdrRunnerCommand(input) {
2787
2795
  HerdrCore,
2788
2796
  herdrCoreAgentBackendLayer,
2789
2797
  detectHarnesses,
2798
+ dockerCheckDaemon,
2790
2799
  dockerCheckPostgres,
2791
2800
  liveReplicaIds,
2801
+ removeCheckDocker,
2792
2802
  removeCheckPostgres,
2793
2803
  checkPostgresSweepInterval,
2794
2804
  herdrRunnerCapabilities,
@@ -2895,7 +2905,7 @@ function startCanonicalHerdrRunnerCommand(input) {
2895
2905
  sandboxBackends: host.backends,
2896
2906
  ...inSrt === undefined ? undefined : { srtBinaries: inSrt.binaries },
2897
2907
  ...docker === undefined ? undefined : { docker: { ...docker, runnerId: input.runnerId } }
2898
- }).pipe(provide2(succeed5(HerdrCore, core)), provide2(layer));
2908
+ }).pipe(provide2(succeed5(HerdrCore, core)), provide2(layer3));
2899
2909
  const activeSlots = new Set;
2900
2910
  let claimsInFlight = 0;
2901
2911
  const updater = runnerUpdater({
@@ -2976,7 +2986,7 @@ function startCanonicalHerdrRunnerCommand(input) {
2976
2986
  ...secrets.length === 0 ? undefined : { secrets }
2977
2987
  });
2978
2988
  };
2979
- const storage = yield* provide3(service(HttpClient), layer2);
2989
+ const storage = yield* provide3(service(HttpClient), layer4);
2980
2990
  const runAgentStep = agentStepExecutor({
2981
2991
  rootDir: path.join(runnerRootDir, ".kitman"),
2982
2992
  sandbox,
@@ -3016,7 +3026,9 @@ function startCanonicalHerdrRunnerCommand(input) {
3016
3026
  const removeOrphanedCheckPostgres = gen(function* () {
3017
3027
  const now = yield* currentTimeMillis;
3018
3028
  const { items } = yield* controlPlane.client.listRunnerReplicas(input.runnerId);
3019
- yield* removeCheckPostgres(input.runnerId, liveReplicaIds(items, replica.id, now));
3029
+ const live = liveReplicaIds(items, replica.id, now);
3030
+ yield* removeCheckPostgres(input.runnerId, live);
3031
+ yield* removeCheckDocker(input.runnerId, live);
3020
3032
  }).pipe(ignore);
3021
3033
  yield* removeOrphanedCheckPostgres;
3022
3034
  yield* removeOrphanedCheckPostgres.pipe(delay(checkPostgresSweepInterval), forever, forkScoped);
@@ -3026,6 +3038,14 @@ function startCanonicalHerdrRunnerCommand(input) {
3026
3038
  gitCredentials: rpc.gitCredential,
3027
3039
  runFiles: { client: rpc, storage },
3028
3040
  postgres: dockerCheckPostgres(input.runnerId, replica.id),
3041
+ ...settings.checkDockerImage === undefined || settings.checkRegistryImage === undefined ? undefined : {
3042
+ docker: dockerCheckDaemon({
3043
+ runnerId: input.runnerId,
3044
+ replicaId: replica.id,
3045
+ image: settings.checkDockerImage,
3046
+ registryImage: settings.checkRegistryImage
3047
+ })
3048
+ },
3029
3049
  ...checkSandbox === undefined ? undefined : { sandbox: { ...checkSandbox, apiUrl: input.apiUrl, hosts: settings.checkHosts } }
3030
3050
  });
3031
3051
  const control = (capacitySlot) => {
@@ -3084,7 +3104,7 @@ function startCanonicalHerdrRunnerCommand(input) {
3084
3104
  });
3085
3105
  return yield* raceFirst(stopWhenRefused(supervised), _await(updated));
3086
3106
  }));
3087
- }).pipe(ensuring2(ignore(controlPlane.client.stopRunnerReplica(input.runnerId, replica.id))), provide3(provideMerge(root, layer)));
3107
+ }).pipe(ensuring2(ignore(controlPlane.client.stopRunnerReplica(input.runnerId, replica.id))), provide3(provideMerge(root, layer3)));
3088
3108
  }).pipe(scoped, catchTag("RunnerStopped", ({ problem }) => error(`Runner stopped (${problem.code}): ${problem.message}
3089
3109
  Fix: ${problem.fix}`)));
3090
3110
  }
@@ -3110,7 +3130,7 @@ function mcpCommand(args) {
3110
3130
  if (command.action === "run") {
3111
3131
  if (command.args.length > 0)
3112
3132
  return yield* new CliError({ message: `Unknown command: ${args.join(" ")}` });
3113
- const { runMcpServerCommand } = yield* promise(() => import("./chunk-q0yna8sw.js"));
3133
+ const { runMcpServerCommand } = yield* promise(() => import("./chunk-hma82ban.js"));
3114
3134
  return yield* runMcpServerCommand({ flags: command.flags });
3115
3135
  }
3116
3136
  if (command.action !== "setup")
@@ -4312,9 +4332,9 @@ function claimCommand(args) {
4312
4332
  }
4313
4333
  });
4314
4334
  }
4315
- var KitWriter = map8(promise(() => import("./chunk-my987gxf.js")), (build) => build.writeKit);
4335
+ var KitWriter = map8(promise(() => import("./chunk-zf3vq701.js")), (build) => build.writeKit);
4316
4336
  var KitBuilder = Reference("kitman/cli/KitBuilder", {
4317
- defaultValue: () => (directory) => flatMap3(promise(() => import("./chunk-my987gxf.js")), (build) => build.buildKit(directory))
4337
+ defaultValue: () => (directory) => flatMap3(promise(() => import("./chunk-zf3vq701.js")), (build) => build.buildKit(directory))
4318
4338
  });
4319
4339
  var uploadKit = (client, workspaceId, built) => gen(function* () {
4320
4340
  yield* client.uploadKitBundle(workspaceId, built.digest, { bundle: encode2(built.bundle) });
@@ -5358,7 +5378,7 @@ var runCli = (args) => {
5358
5378
  const program = runEffect(args).pipe(tapCause((cause) => {
5359
5379
  const error2 = squash(cause);
5360
5380
  return args.includes("--json") ? printJson(cliErrorJson(error2)) : error(cliErrorLine(error2));
5361
- }), provide3(layer));
5381
+ }), provide3(layer3));
5362
5382
  runMain(program, { disableErrorReporting: true });
5363
5383
  };
5364
5384
  export {
@@ -105,11 +105,11 @@ import {
105
105
  KitDigest,
106
106
  KitSetup,
107
107
  RunnerRpcError
108
- } from "./chunk-m32wb6t0.js";
108
+ } from "./chunk-jb9dcsfn.js";
109
109
  import {
110
110
  runForEach,
111
111
  FileSystem
112
- } from "./chunk-xgwjcq4z.js";
112
+ } from "./chunk-emabyaj0.js";
113
113
 
114
114
  // node_modules/.bun/effect@4.1.2/node_modules/effect/dist/crypto/internal/webCrypto.js
115
115
  var subtleUnavailable = () => new Error("crypto.subtle is unavailable; browsers expose it only in secure contexts");
@@ -7,10 +7,10 @@ import {
7
7
  decoded2,
8
8
  readOpencode2,
9
9
  runOpencodeReader2
10
- } from "./chunk-vtn088tq.js";
11
- import"./chunk-mmetyep8.js";
10
+ } from "./chunk-vn3x7bzf.js";
11
+ import"./chunk-kdyzndvx.js";
12
12
  import"./chunk-7evwar6b.js";
13
- import"./chunk-xgwjcq4z.js";
13
+ import"./chunk-emabyaj0.js";
14
14
  import"./chunk-61k67vxh.js";
15
15
  export {
16
16
  decoded2 as decoded,
@@ -42,33 +42,35 @@ import {
42
42
  Path,
43
43
  withDefault,
44
44
  String2
45
- } from "./chunk-xgwjcq4z.js";
45
+ } from "./chunk-emabyaj0.js";
46
46
  import {
47
+ SecureRandom,
48
+ layerWebCrypto,
47
49
  canonicalJson,
48
50
  digestSha256,
49
51
  schemaBodyJson,
50
52
  filterStatusOk,
51
53
  get2,
52
- layer2,
54
+ layer4,
53
55
  kitmanMcpServer,
54
56
  RunnerRpcProtocolVersion
55
- } from "./chunk-m32wb6t0.js";
57
+ } from "./chunk-jb9dcsfn.js";
56
58
  import {
57
59
  Packument,
58
60
  tarballMatches
59
- } from "./chunk-twp7aprz.js";
60
- import"./chunk-5j3cxsnp.js";
61
+ } from "./chunk-bdxhb63t.js";
62
+ import"./chunk-pvkwhesj.js";
61
63
  import {
62
64
  AgentDeclaration,
63
65
  KitDeclarations,
64
66
  describeFlag,
65
67
  Described
66
- } from "./chunk-g7vk5tjp.js";
68
+ } from "./chunk-wbrv4705.js";
67
69
  import {
68
70
  ChildProcessSpawner,
69
71
  make3
70
- } from "./chunk-mmetyep8.js";
71
- import"./chunk-148mjppg.js";
72
+ } from "./chunk-kdyzndvx.js";
73
+ import"./chunk-338c1c1x.js";
72
74
 
73
75
  // packages/sdk/src/build/index.ts
74
76
  class DependencyInstallFailed extends TaggedError2()("DependencyInstallFailed", {
@@ -227,7 +229,7 @@ var fetchNpm = (name, wanted, what) => gen(function* () {
227
229
  if (!extracted.ok)
228
230
  return yield* failed(`the tarball does not extract: ${failure(extracted)}`);
229
231
  return yield* confined(directory, "package", what);
230
- }).pipe(provide3(layer2));
232
+ }).pipe(provide3(layer4));
231
233
  var sourceTree = (directory, source, what, checkouts) => gen(function* () {
232
234
  switch (source.kind) {
233
235
  case "local_path":
@@ -408,7 +410,9 @@ var buildKit = (directory, options = {}) => gen(function* () {
408
410
  if (!installed.ok)
409
411
  return yield* new DependencyInstallFailed({ reason: failure(installed) });
410
412
  const packages = yield* kitModules(root);
411
- const entry = path.join(root, ".kitman-build-entry.ts");
413
+ const id = yield* SecureRandom.pipe(flatMap3((random) => random.uuidV4()), provide3(layerWebCrypto));
414
+ const entryName = `.kitman-build-entry-${id}.ts`;
415
+ const entry = path.join(root, entryName);
412
416
  yield* acquireRelease(fs.writeFileString(entry, buildEntry(identity, packages)), () => ignore(fs.remove(entry)));
413
417
  const out = yield* fs.makeTempDirectoryScoped({ prefix: "kitman-kit-" });
414
418
  const bundleFile = path.join(out, "bundle.js");
@@ -474,7 +478,7 @@ var buildKit = (directory, options = {}) => gen(function* () {
474
478
  ...own.schedules === undefined ? undefined : { schedules: own.schedules },
475
479
  carried
476
480
  }).pipe(mapError2((error) => new DeclarationsInvalid({ reason: error.message })));
477
- const bundle = yield* fs.readFile(bundleFile).pipe(mapError2((error) => new BundleFailed({ reason: error.message })));
481
+ const bundle = yield* fs.readFileString(bundleFile).pipe(map8((text) => new TextEncoder().encode(text.replaceAll(entryName, ".kitman-build-entry.ts"))), mapError2((error) => new BundleFailed({ reason: error.message })));
478
482
  return {
479
483
  ...identity,
480
484
  bundle,