@outerlayer/cli 0.6.0 → 0.7.0

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.
Files changed (80) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +10 -0
  3. package/dist/{agent-setup-USZ2SAXC.js → agent-setup-TXLDY5RV.js} +7 -6
  4. package/dist/{build-PAEKVYVK.js → build-JF5UOWKJ.js} +2 -1
  5. package/dist/build-info.json +1 -1
  6. package/dist/{check-CCVPBN7A.js → check-ASZL5BEO.js} +29 -23
  7. package/dist/{chunk-ZILGTTY6.js → chunk-2VO25HHO.js} +3 -3
  8. package/dist/{chunk-OIRNH6UO.js → chunk-5FWNEQNZ.js} +3 -3
  9. package/dist/{chunk-MXB5VB4Y.js → chunk-6IYLDODX.js} +6 -6
  10. package/dist/{chunk-4NLKY4WR.js → chunk-6QWV3YDJ.js} +2 -2
  11. package/dist/{chunk-UMFWVGJO.js → chunk-6ZZHWY2Z.js} +4 -3
  12. package/dist/{chunk-NQXFAGHU.js → chunk-7FTNIAHS.js} +1 -1
  13. package/dist/{chunk-EMY4I27X.js → chunk-7ZR5UPMB.js} +555 -5
  14. package/dist/{chunk-43J3M6KB.js → chunk-AII7CKTH.js} +45 -31
  15. package/dist/{chunk-VMJ3MMBX.js → chunk-AJKEHABI.js} +312 -18
  16. package/dist/{chunk-RBOMWNOG.js → chunk-AQ54MKSQ.js} +2 -2
  17. package/dist/{chunk-Z62HNKEJ.js → chunk-CEBIA5FD.js} +31 -5
  18. package/dist/{chunk-ANK2B36Y.js → chunk-D6FXM5OW.js} +6182 -28607
  19. package/dist/{chunk-BNMCXPG7.js → chunk-DGAIVMMN.js} +12 -3
  20. package/dist/{chunk-3DD6AOWC.js → chunk-DTXOJDEH.js} +26 -2
  21. package/dist/{chunk-RZSF5B46.js → chunk-E4PIFIC3.js} +100 -15
  22. package/dist/{chunk-H5NCNVDA.js → chunk-EV3M3EH7.js} +2 -2
  23. package/dist/chunk-HKMPVPO7.js +55 -0
  24. package/dist/{chunk-FA2BOX4O.js → chunk-JPR2WHHF.js} +1 -1
  25. package/dist/{chunk-ZMYPLFG3.js → chunk-M3SQ4YGD.js} +1 -1
  26. package/dist/{chunk-MIGEDH5P.js → chunk-MQPRB5K7.js} +9 -9
  27. package/dist/{chunk-AUFG23AA.js → chunk-OD2VTIHN.js} +19 -47
  28. package/dist/chunk-PUN7LMNS.js +39 -0
  29. package/dist/{chunk-JWOQNNN2.js → chunk-Q5G2ODUZ.js} +1 -1
  30. package/dist/{chunk-B2G7JHHB.js → chunk-R7STSBLC.js} +1 -1
  31. package/dist/{chunk-PMAMOSTP.js → chunk-SSU747O6.js} +85 -25
  32. package/dist/{chunk-YYYXRJUW.js → chunk-TI7B7UEO.js} +1 -1
  33. package/dist/{chunk-WO2BXCTQ.js → chunk-VXLJORHL.js} +1 -1
  34. package/dist/{chunk-CBPPJSAR.js → chunk-WVGSB3Z2.js} +2 -2
  35. package/dist/{chunk-IASWYRVG.js → chunk-X2FSFU4C.js} +4 -1
  36. package/dist/chunk-YNJEOGDL.js +22434 -0
  37. package/dist/{chunk-W4SQCOZU.js → chunk-ZOAEPWGL.js} +1 -1
  38. package/dist/{chunk-3DEVYTNQ.js → chunk-ZYHKJKSU.js} +1 -1
  39. package/dist/{chunk-WIOZAJ2W.js → chunk-ZZXLM64C.js} +1 -1
  40. package/dist/{cli-7WCNPBYC.js → cli-LEVCGAQV.js} +73 -71
  41. package/dist/{command-ARFK3OYF.js → command-FLSYCGIB.js} +47 -22
  42. package/dist/config-I3TVFYLH.js +10 -0
  43. package/dist/{connect-cmd-PCESZLTR.js → connect-cmd-MJMUONDY.js} +4 -4
  44. package/dist/{context-adopt-G5JAELE7.js → context-adopt-CE4KDXS3.js} +5 -4
  45. package/dist/{context-materialize-3HLPZAF6.js → context-materialize-QL33HDJN.js} +5 -4
  46. package/dist/{dist-RDLP4GGJ.js → dist-PXBSA7QX.js} +2 -1
  47. package/dist/{doctor-VOMYOHQU.js → doctor-FVDT3KJZ.js} +23 -16
  48. package/dist/{emit-artifact-cmd-TBF46VXZ.js → emit-artifact-cmd-7RPMRSVP.js} +11 -4
  49. package/dist/{emit-cmd-DCERAU27.js → emit-cmd-2QRMYPYO.js} +4 -3
  50. package/dist/{emit-criteria-cmd-3427XKFW.js → emit-criteria-cmd-MKI7WETO.js} +10 -1
  51. package/dist/{emit-finding-cmd-GSI75K36.js → emit-finding-cmd-RMLGZASB.js} +12 -1
  52. package/dist/{emit-result-cmd-3PRQKB55.js → emit-result-cmd-MTXAZ2GV.js} +13 -6
  53. package/dist/{exec-client-4XGXV3XN.js → exec-client-NPYNUAF3.js} +4 -3
  54. package/dist/{guest-init-GENRHNP7.js → guest-init-JWNNAH2H.js} +4 -3
  55. package/dist/{hook-fast-NJBBZQ5Q.js → hook-fast-XBOZ3N6L.js} +1 -1
  56. package/dist/{import-capture-cmd-AVZ4VIVJ.js → import-capture-cmd-T4556ELW.js} +3 -2
  57. package/dist/{import-ruler-cmd-GUHL6IY5.js → import-ruler-cmd-SG3UVGI7.js} +2 -1
  58. package/dist/index.js +3 -3
  59. package/dist/{init-WVR4BZQ4.js → init-BACXESVV.js} +21 -14
  60. package/dist/{init-OHYFIKZD.js → init-VLW7H6RW.js} +22 -15
  61. package/dist/{init-cmd-HMFNIFPI.js → init-cmd-VJFB5L7X.js} +10 -9
  62. package/dist/{install-DSUZE2TJ.js → install-NMAPLLBQ.js} +4 -3
  63. package/dist/{install-cmd-453C7IZT.js → install-cmd-B5SEU3G7.js} +2 -2
  64. package/dist/{logs-7RYUH5A6.js → logs-H55NWW4H.js} +1 -0
  65. package/dist/{loop-UAJB34KA.js → loop-D3243JKT.js} +29 -23
  66. package/dist/{machine-2JOWGRSZ.js → machine-EB3GEVI4.js} +20 -13
  67. package/dist/{session-sender-ED26V45B.js → session-sender-LMACEJJS.js} +6 -5
  68. package/dist/{starter-pack-LIZYMKYQ.js → starter-pack-MUXMAU4S.js} +4 -3
  69. package/dist/{status-6WNXX2O7.js → status-F4THTJJK.js} +24 -18
  70. package/dist/{sync-cmd-YONVGUYS.js → sync-cmd-M6JA3OEE.js} +5 -4
  71. package/dist/{watch-HHKAF26L.js → watch-NB5TGPEZ.js} +5 -4
  72. package/dist/{work-claim-cmd-LXBZTMJA.js → work-claim-cmd-UHMWOS3G.js} +13 -6
  73. package/dist/{work-cmd-OVNF44FY.js → work-cmd-6UMCFTAW.js} +9 -3
  74. package/dist/{work-comment-cmd-6DGQNTAH.js → work-comment-cmd-E4LEUIXZ.js} +9 -3
  75. package/dist/{work-open-pr-cmd-FCZHFHZS.js → work-open-pr-cmd-OPZWGSEQ.js} +10 -4
  76. package/dist/{work-pr-cmd-QJJVHZDC.js → work-pr-cmd-IDIAFFRU.js} +9 -2
  77. package/package.json +1 -1
  78. package/skill-pack/template/build/scripts/record-criteria.mjs +2 -1
  79. package/dist/chunk-7DBI6SNT.js +0 -55
  80. package/dist/config-HL2AIR3K.js +0 -9
@@ -1,37 +1,44 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { runRunnerInstall } from './chunk-JWOQNNN2.js';
4
- import { execStartCommand } from './chunk-YYYXRJUW.js';
3
+ import { runRunnerInstall } from './chunk-Q5G2ODUZ.js';
4
+ import { currentLink, execStartCommand } from './chunk-TI7B7UEO.js';
5
5
  import { readJobFile } from './chunk-T6OIJQRT.js';
6
- import { installService, uninstallService, realTaskScheduler } from './chunk-NQXFAGHU.js';
6
+ import { installService, uninstallService, realTaskScheduler } from './chunk-7FTNIAHS.js';
7
7
  import './chunk-FBTE2A2X.js';
8
8
  import './chunk-OUUINEYB.js';
9
+ import { realLima } from './chunk-77MM5RYD.js';
9
10
  import { writeLaunchAgent, launchAgentPath } from './chunk-LF6MLJCY.js';
10
- import { detectMachine } from './chunk-RBOMWNOG.js';
11
- import './chunk-RZSF5B46.js';
12
- import './chunk-Z62HNKEJ.js';
11
+ import { detectMachine } from './chunk-AQ54MKSQ.js';
12
+ import './chunk-E4PIFIC3.js';
13
+ import './chunk-CEBIA5FD.js';
13
14
  import './chunk-N5FOE5PS.js';
14
15
  import './chunk-OGFGZQA3.js';
15
16
  import './chunk-774HEQL6.js';
16
17
  import './chunk-QOZKPLVJ.js';
17
- import './chunk-W4SQCOZU.js';
18
- import './chunk-B2G7JHHB.js';
19
- import './chunk-BNMCXPG7.js';
18
+ import './chunk-ZOAEPWGL.js';
19
+ import './chunk-R7STSBLC.js';
20
+ import './chunk-DGAIVMMN.js';
21
+ import './chunk-PUN7LMNS.js';
20
22
  import './chunk-BFESLKPP.js';
21
- import './chunk-3DEVYTNQ.js';
22
- import './chunk-ANK2B36Y.js';
23
- import { runnerVmOf, loadRunnerConfig } from './chunk-3DD6AOWC.js';
23
+ import './chunk-SSU747O6.js';
24
+ import './chunk-ZYHKJKSU.js';
25
+ import './chunk-D6FXM5OW.js';
26
+ import './chunk-USO2DKBD.js';
27
+ import './chunk-N6LURUEF.js';
28
+ import './chunk-YRYMNBGQ.js';
29
+ import { runnerVmOf, loadRunnerConfig } from './chunk-DTXOJDEH.js';
24
30
  import './chunk-F6GFZXZ3.js';
25
- import './chunk-AUFG23AA.js';
26
- import { realLima } from './chunk-77MM5RYD.js';
31
+ import './chunk-OD2VTIHN.js';
32
+ import './chunk-HKMPVPO7.js';
27
33
  import './chunk-WZBHBH3J.js';
28
- import './chunk-OIRNH6UO.js';
34
+ import './chunk-5FWNEQNZ.js';
29
35
  import './chunk-ZJSNLVCE.js';
30
- import './chunk-WIOZAJ2W.js';
31
- import './chunk-WO2BXCTQ.js';
32
- import './chunk-EMY4I27X.js';
36
+ import './chunk-ZZXLM64C.js';
37
+ import './chunk-VXLJORHL.js';
38
+ import './chunk-7ZR5UPMB.js';
33
39
  import './chunk-BCLJSQCV.js';
34
40
  import './chunk-BOLTI6LR.js';
41
+ import './chunk-YNJEOGDL.js';
35
42
  import './chunk-EABW6AJQ.js';
36
43
  import './chunk-RA3O54FC.js';
37
44
  import './chunk-M5POMKKW.js';
@@ -41,9 +48,9 @@ import './chunk-BJ3KTMDH.js';
41
48
  import './chunk-VNVZDWO3.js';
42
49
  import './chunk-Z5GEFMRW.js';
43
50
  import { userInfo, totalmem } from 'os';
51
+ import { join } from 'path';
44
52
  import { rmSync, existsSync, readdirSync, readFileSync } from 'fs';
45
53
  import { spawnSync } from 'child_process';
46
- import { join } from 'path';
47
54
 
48
55
  createRequire(import.meta.url);
49
56
  async function serviceInVm(lima, instance, action, options) {
@@ -114,11 +121,22 @@ function realServiceDeps() {
114
121
  systemd: realSystemd(),
115
122
  ...platform === "wsl2" ? { tasks: realTaskScheduler(), wslConf: realWslConf(), distro: process.env.WSL_DISTRO_NAME } : {},
116
123
  usableMemoryBytes: totalmem(),
117
- buildsRunning: buildsRunningIn
124
+ buildsRunning: buildsRunningIn,
125
+ // Asked as the account, through sudo, which the unit's own install needs anyway.
126
+ accountCan: (account, flag, path) => spawnSync("sudo", ["-n", "-u", account, "test", flag, path], { stdio: "ignore" }).status === 0
118
127
  };
119
128
  }
120
129
 
121
130
  // src/runner/service/command.ts
131
+ function accountCannotStart(account, nodePath, entry, can) {
132
+ if (!can(account, "-x", nodePath)) {
133
+ return `\u2717 the service would run as ${account}, which cannot execute ${nodePath}, the Node this install runs on. Nothing is set up: run the install as ${account} with a Node it can execute, or install Node where ${account} can reach it`;
134
+ }
135
+ if (!can(account, "-r", entry)) {
136
+ return `\u2717 the service would run as ${account}, which cannot read ${entry}. Nothing is set up: put the runner's config where ${account} can read it, or run the install as ${account}`;
137
+ }
138
+ return void 0;
139
+ }
122
140
  function vmArgs(input) {
123
141
  return [...input.print === true ? ["--print"] : [], ...input.replace === true ? ["--replace"] : [], ...input.user === void 0 ? [] : ["--user", input.user], ...input.unitName === void 0 ? [] : ["--unit-name", input.unitName]];
124
142
  }
@@ -132,6 +150,13 @@ async function installServiceCommand(input, deps = {}) {
132
150
  if (input.print !== true && input.layoutInstalled !== true) {
133
151
  runRunnerInstall({ configPath: input.configPath, entryPath: input.entryPath, nodePath: input.nodePath });
134
152
  }
153
+ const account = input.user ?? userInfo().username;
154
+ const serviceDeps = (deps.service ?? realServiceDeps)();
155
+ if (input.print !== true && account !== userInfo().username && serviceDeps.accountCan !== void 0) {
156
+ const entry = join(currentLink(input.configPath), "node_modules", "@outerlayer", "cli", "dist", "index.js");
157
+ const problem = accountCannotStart(account, input.nodePath, entry, serviceDeps.accountCan);
158
+ if (problem !== void 0) return { ok: false, state: "refused", lines: [problem] };
159
+ }
135
160
  const outcome = installService(
136
161
  {
137
162
  configPath: input.configPath,
@@ -140,12 +165,12 @@ async function installServiceCommand(input, deps = {}) {
140
165
  buildMemory: config.build?.memory ?? "8g",
141
166
  timeLimitMinutes: config.timeLimitMinutes,
142
167
  execStart: execStartCommand(input.configPath, input.nodePath),
143
- user: input.user ?? userInfo().username,
168
+ user: account,
144
169
  unitName: input.unitName,
145
170
  print: input.print,
146
171
  replace: input.replace
147
172
  },
148
- (deps.service ?? realServiceDeps)()
173
+ serviceDeps
149
174
  );
150
175
  return { ok: outcome.ok, state: outcome.state, lines: outcome.lines, unit: outcome.unit };
151
176
  }
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+ export { DEFAULT_CHECK_TIME_LIMIT_MINUTES, RunnerConfigError, builtinKind, checkHooks, defaultRunnerConfigPath, hasRunnerBlock, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, loadRunnerConfig, resolveBuild, runnerVmOf } from './chunk-DTXOJDEH.js';
4
+ import './chunk-F6GFZXZ3.js';
5
+ import './chunk-OD2VTIHN.js';
6
+ import './chunk-HKMPVPO7.js';
7
+ import './chunk-VNVZDWO3.js';
8
+ import './chunk-Z5GEFMRW.js';
9
+
10
+ createRequire(import.meta.url);
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { promptOnTerminal, realConnectDeps, runConnect, runConnectCommand } from './chunk-PMAMOSTP.js';
4
- import './chunk-7DBI6SNT.js';
5
- import './chunk-3DEVYTNQ.js';
6
- import './chunk-ANK2B36Y.js';
3
+ export { connectedLine, fetchFactories, promptOnTerminal, realConnectDeps, runConnect, runConnectCommand, saveFactoryConnection, selectFactory } from './chunk-SSU747O6.js';
4
+ import './chunk-ZYHKJKSU.js';
5
+ import './chunk-D6FXM5OW.js';
7
6
  import './chunk-USO2DKBD.js';
8
7
  import './chunk-N6LURUEF.js';
9
8
  import './chunk-YRYMNBGQ.js';
10
9
  import './chunk-BOLTI6LR.js';
10
+ import './chunk-YNJEOGDL.js';
11
11
  import './chunk-EABW6AJQ.js';
12
12
  import './chunk-BJ3KTMDH.js';
13
13
  import './chunk-VNVZDWO3.js';
@@ -1,12 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { defaultGitRunner, hasSymlinkComponent } from './chunk-OIRNH6UO.js';
3
+ import { defaultGitRunner, hasSymlinkComponent } from './chunk-5FWNEQNZ.js';
4
4
  import './chunk-ZJSNLVCE.js';
5
- import { writeContextManifest, writePinIfChanged, touchLastCheck, clearDegraded, writeSourceCache, SOURCE_CACHE_TTL_SUCCESS_MS, writeBuildHold } from './chunk-WIOZAJ2W.js';
6
- import './chunk-WO2BXCTQ.js';
7
- import './chunk-EMY4I27X.js';
5
+ import { writeContextManifest, writePinIfChanged, touchLastCheck, clearDegraded, writeSourceCache, SOURCE_CACHE_TTL_SUCCESS_MS, writeBuildHold } from './chunk-ZZXLM64C.js';
6
+ import './chunk-VXLJORHL.js';
7
+ import './chunk-7ZR5UPMB.js';
8
8
  import './chunk-BCLJSQCV.js';
9
9
  import './chunk-BOLTI6LR.js';
10
+ import './chunk-YNJEOGDL.js';
10
11
  import './chunk-EABW6AJQ.js';
11
12
  import './chunk-RA3O54FC.js';
12
13
  import './chunk-M5POMKKW.js';
@@ -1,12 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { defaultGitRunner, hasSymlinkComponent, materializeContext, parseOwnerRepo, parseRemoteHost, resolveGitCommonDir } from './chunk-OIRNH6UO.js';
3
+ export { defaultGitRunner, hasSymlinkComponent, materializeContext, parseOwnerRepo, parseRemoteHost, resolveGitCommonDir } from './chunk-5FWNEQNZ.js';
4
4
  import './chunk-ZJSNLVCE.js';
5
- import './chunk-WIOZAJ2W.js';
6
- import './chunk-WO2BXCTQ.js';
7
- import './chunk-EMY4I27X.js';
5
+ import './chunk-ZZXLM64C.js';
6
+ import './chunk-VXLJORHL.js';
7
+ import './chunk-7ZR5UPMB.js';
8
8
  import './chunk-BCLJSQCV.js';
9
9
  import './chunk-BOLTI6LR.js';
10
+ import './chunk-YNJEOGDL.js';
10
11
  import './chunk-EABW6AJQ.js';
11
12
  import './chunk-RA3O54FC.js';
12
13
  import './chunk-M5POMKKW.js';
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { CaptureDaemon, PRICE_TABLE_SOURCE, SECRET_PATTERNS, SOURCE_ADAPTERS, SUPPORTED_VERSIONS, StatuslineAggregator, WARNING_CODES, claudeCodeAdapter, codexAdapter, codexSessionIdFromPath, compareVersions, completePrefix, computeStatuslineState, costOfUsage, cursorAdapter, cursorChatIdFromPath, defaultCodexSessionsDir, defaultCursorChatsDir, defaultCursorProjectsDir, defaultProjectsDir, defaultRawDir, enrichSessionRepo, findCodexRollouts, findCursorChats, findTranscripts, isNewerThanSupported, isPriceKnown, normalizeErrorSignature, normalizeRemote, parseCodexRollout, parseCursorChat, parseTranscript, readStatuslineState, readSyncWatermarkMs, remoteLookupFailed, resolvePrice, resolveRepoIdentity, rootChildIds, scanAll, scrubDeep, scrubText, sessionIdFromPath, setCustomScrubbers, setLocalIdentity, setRepoRoot, statuslineStatePath, tailTranscript, workspacesByHash, writeStatuslineState } from './chunk-ANK2B36Y.js';
3
+ export { CaptureDaemon, PRICE_TABLE_SOURCE, SECRET_PATTERNS, SOURCE_ADAPTERS, SUPPORTED_VERSIONS, StatuslineAggregator, WARNING_CODES, claudeCodeAdapter, codexAdapter, codexSessionIdFromPath, compareVersions, completePrefix, computeStatuslineState, costOfUsage, cursorAdapter, cursorChatIdFromPath, defaultCodexSessionsDir, defaultCursorChatsDir, defaultCursorProjectsDir, defaultProjectsDir, defaultRawDir, enrichSessionRepo, findCodexRollouts, findCursorChats, findTranscripts, isNewerThanSupported, isPriceKnown, normalizeErrorSignature, normalizeRemote, parseCodexRollout, parseCursorChat, parseTranscript, readStatuslineState, readSyncWatermarkMs, remoteLookupFailed, resolvePrice, resolveRepoIdentity, rootChildIds, scanAll, scrubDeep, scrubText, sessionIdFromPath, setCustomScrubbers, setLocalIdentity, setRepoRoot, statuslineStatePath, tailTranscript, workspacesByHash, writeStatuslineState } from './chunk-D6FXM5OW.js';
4
+ import './chunk-YNJEOGDL.js';
4
5
  import './chunk-Z5GEFMRW.js';
5
6
 
6
7
  createRequire(import.meta.url);
@@ -1,33 +1,40 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { needsClaudeCredential, claudeCredentialCheck, missingPermissionOf, missingPermissionFix } from './chunk-MXB5VB4Y.js';
3
+ import { needsClaudeCredential, claudeCredentialCheck, missingPermissionOf, missingPermissionFix } from './chunk-6IYLDODX.js';
4
4
  import { freeBytes, formatBytes } from './chunk-YYYRBYWG.js';
5
5
  import { RepoFilter } from './chunk-TBT347UY.js';
6
- import './chunk-4NLKY4WR.js';
7
- import { detectMachine, supportsContainerBuilds, describeMachineDocker, reachDockerStep, supportsMicroVmBuilds, microVmArchSupported, microVmAssetsPinned } from './chunk-RBOMWNOG.js';
8
- import { MIN_ENGINE_MAJOR } from './chunk-RZSF5B46.js';
9
- import { CLAUDE_CODE_VERSION } from './chunk-Z62HNKEJ.js';
6
+ import './chunk-6QWV3YDJ.js';
7
+ import { detectMachine, supportsContainerBuilds, describeMachineDocker, reachDockerStep, supportsMicroVmBuilds, microVmArchSupported, microVmAssetsPinned } from './chunk-AQ54MKSQ.js';
8
+ import { MIN_ENGINE_MAJOR } from './chunk-E4PIFIC3.js';
9
+ import { CLAUDE_CODE_VERSION } from './chunk-CEBIA5FD.js';
10
10
  import './chunk-N5FOE5PS.js';
11
11
  import './chunk-OGFGZQA3.js';
12
12
  import { resolveDevcontainerCli } from './chunk-774HEQL6.js';
13
13
  import { locateRecipe, assertBuildable, readRecipe, RecipeError } from './chunk-QOZKPLVJ.js';
14
- import './chunk-W4SQCOZU.js';
15
- import './chunk-B2G7JHHB.js';
16
- import { getJson, WorkCommandError, signatureRefusalMessage } from './chunk-BNMCXPG7.js';
14
+ import './chunk-ZOAEPWGL.js';
15
+ import './chunk-R7STSBLC.js';
16
+ import { getJson, WorkCommandError, signatureRefusalMessage } from './chunk-DGAIVMMN.js';
17
+ import './chunk-PUN7LMNS.js';
17
18
  import './chunk-BFESLKPP.js';
18
- import './chunk-3DEVYTNQ.js';
19
- import { compareVersions } from './chunk-ANK2B36Y.js';
20
- import { builtinKind } from './chunk-3DD6AOWC.js';
19
+ import './chunk-SSU747O6.js';
20
+ import './chunk-ZYHKJKSU.js';
21
+ import { compareVersions } from './chunk-D6FXM5OW.js';
22
+ import './chunk-USO2DKBD.js';
23
+ import './chunk-N6LURUEF.js';
24
+ import './chunk-YRYMNBGQ.js';
25
+ import { builtinKind } from './chunk-DTXOJDEH.js';
21
26
  import { parseSize } from './chunk-F6GFZXZ3.js';
22
- import './chunk-AUFG23AA.js';
27
+ import './chunk-OD2VTIHN.js';
28
+ import './chunk-HKMPVPO7.js';
23
29
  import './chunk-WZBHBH3J.js';
24
- import { defaultGitRunner } from './chunk-OIRNH6UO.js';
30
+ import { defaultGitRunner } from './chunk-5FWNEQNZ.js';
25
31
  import './chunk-ZJSNLVCE.js';
26
- import './chunk-WIOZAJ2W.js';
27
- import './chunk-WO2BXCTQ.js';
28
- import './chunk-EMY4I27X.js';
32
+ import './chunk-ZZXLM64C.js';
33
+ import './chunk-VXLJORHL.js';
34
+ import './chunk-7ZR5UPMB.js';
29
35
  import { defaultFetch } from './chunk-BCLJSQCV.js';
30
36
  import './chunk-BOLTI6LR.js';
37
+ import './chunk-YNJEOGDL.js';
31
38
  import './chunk-EABW6AJQ.js';
32
39
  import './chunk-RA3O54FC.js';
33
40
  import { loadHostKey } from './chunk-M5POMKKW.js';
@@ -1,13 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { staleBuildRefusal, staleBuildWarning, detectCi } from './chunk-UMFWVGJO.js';
3
+ import { staleBuildRefusal, staleBuildWarning, detectCi } from './chunk-6ZZHWY2Z.js';
4
4
  import { launchRefusalForSession } from './chunk-HHJDN6AU.js';
5
5
  import './chunk-TBT347UY.js';
6
6
  import './chunk-F7CU5ABH.js';
7
7
  import './chunk-BKO6JEZI.js';
8
+ import { autoConnect } from './chunk-PUN7LMNS.js';
8
9
  import { detectActiveSession } from './chunk-BFESLKPP.js';
9
- import { readEffectiveArtifactSpoolState, localArtifactIds, isArtifactTombstoned, artifactBlobsDir, appendArtifactRecord, artifactsSpoolPath, findPendingArtifactRecord, appendArtifactTombstone } from './chunk-3DEVYTNQ.js';
10
- import { ARTIFACT_MAX_CAPTION_LENGTH, ArtifactCriterionIdSchema, ARTIFACT_MAX_FILENAME_LENGTH, mediaTypeForArtifactPath, inferArtifactKind, resolveRepoIdentity, ARTIFACT_MAX_REPLACES_TARGETS, parseTestSelector, parseJunit, bindTests } from './chunk-ANK2B36Y.js';
10
+ import './chunk-SSU747O6.js';
11
+ import { readEffectiveArtifactSpoolState, localArtifactIds, isArtifactTombstoned, artifactBlobsDir, appendArtifactRecord, artifactsSpoolPath, findPendingArtifactRecord, appendArtifactTombstone } from './chunk-ZYHKJKSU.js';
12
+ import { resolveRepoIdentity } from './chunk-D6FXM5OW.js';
13
+ import './chunk-USO2DKBD.js';
14
+ import './chunk-N6LURUEF.js';
11
15
  import './chunk-YRYMNBGQ.js';
12
16
  import './chunk-GQD22KKN.js';
13
17
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
@@ -15,10 +19,11 @@ import './chunk-5QRP3MVS.js';
15
19
  import './chunk-ZJSNLVCE.js';
16
20
  import { defaultFetch } from './chunk-BCLJSQCV.js';
17
21
  import { resolveGatewayCredentials, unauthorizedMessage } from './chunk-BOLTI6LR.js';
22
+ import { ARTIFACT_MAX_CAPTION_LENGTH, ArtifactCriterionIdSchema, ARTIFACT_MAX_FILENAME_LENGTH, mediaTypeForArtifactPath, inferArtifactKind, ARTIFACT_MAX_REPLACES_TARGETS, parseTestSelector, parseJunit, bindTests } from './chunk-YNJEOGDL.js';
18
23
  import './chunk-EABW6AJQ.js';
19
24
  import './chunk-M5POMKKW.js';
20
25
  import './chunk-ZM2IMMYN.js';
21
- import './chunk-FA2BOX4O.js';
26
+ import './chunk-JPR2WHHF.js';
22
27
  import './chunk-XCCLFVXM.js';
23
28
  import './chunk-BJ3KTMDH.js';
24
29
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
@@ -319,6 +324,8 @@ async function runEmitArtifact(opts) {
319
324
  "nothing to attach this to \u2014 no recorded session, no PR, and no git repo. Run inside a recorded Claude Code session, from a git checkout, in CI with PR context, or pass --pr <number>."
320
325
  );
321
326
  }
327
+ const noFactory = await autoConnect({ ...opts, home, env });
328
+ if (noFactory !== void 0) throw new EmitArtifactError(noFactory);
322
329
  const resolved = resolveGatewayCredentials({ ...opts, home, env });
323
330
  if (!resolved.ok) throw new EmitArtifactError(resolved.message);
324
331
  const { url, credential: apiKey, appId } = resolved;
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { EmitError, runEmit } from './chunk-H5NCNVDA.js';
4
- import './chunk-WO2BXCTQ.js';
5
- import './chunk-EMY4I27X.js';
3
+ export { EmitError, runEmit } from './chunk-EV3M3EH7.js';
4
+ import './chunk-VXLJORHL.js';
5
+ import './chunk-7ZR5UPMB.js';
6
+ import './chunk-YNJEOGDL.js';
6
7
  import './chunk-RA3O54FC.js';
7
8
  import './chunk-Z5GEFMRW.js';
8
9
 
@@ -1,12 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { launchRefusalForSession } from './chunk-HHJDN6AU.js';
4
+ import { autoConnect } from './chunk-PUN7LMNS.js';
4
5
  import { detectActiveSession } from './chunk-BFESLKPP.js';
5
- import { resolveRepoIdentity, CriteriaListSchema } from './chunk-ANK2B36Y.js';
6
+ import './chunk-SSU747O6.js';
7
+ import './chunk-ZYHKJKSU.js';
8
+ import { resolveRepoIdentity } from './chunk-D6FXM5OW.js';
9
+ import './chunk-USO2DKBD.js';
10
+ import './chunk-N6LURUEF.js';
11
+ import './chunk-YRYMNBGQ.js';
6
12
  import { launchedItemForSession } from './chunk-GQD22KKN.js';
7
13
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
8
14
  import { defaultFetch } from './chunk-BCLJSQCV.js';
9
15
  import { resolveGatewayCredentials, unauthorizedMessage } from './chunk-BOLTI6LR.js';
16
+ import { CriteriaListSchema } from './chunk-YNJEOGDL.js';
10
17
  import './chunk-EABW6AJQ.js';
11
18
  import './chunk-M5POMKKW.js';
12
19
  import './chunk-ZM2IMMYN.js';
@@ -120,6 +127,8 @@ async function runEmitCriteria(opts) {
120
127
  nowMs: now().getTime()
121
128
  });
122
129
  const target = resolveTarget({ item: opts.item, sessionId, home });
130
+ const refusal = await autoConnect({ url: opts.url, apiKey: opts.apiKey, appId: opts.appId, cwd, home, env, fetchImpl: opts.fetchImpl });
131
+ if (refusal !== void 0) throw new EmitCriteriaError(refusal);
123
132
  const resolved = resolveGatewayCredentials({ url: opts.url, apiKey: opts.apiKey, appId: opts.appId, cwd, home, env });
124
133
  if (!resolved.ok) throw new EmitCriteriaError(resolved.message);
125
134
  const { url, credential: apiKey, appId } = resolved;
@@ -1,13 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { launchRefusalForSession } from './chunk-HHJDN6AU.js';
4
+ import { autoConnect } from './chunk-PUN7LMNS.js';
4
5
  import { detectActiveSession } from './chunk-BFESLKPP.js';
5
- import { FindingBatchSchema, resolveRepoIdentity } from './chunk-ANK2B36Y.js';
6
+ import './chunk-SSU747O6.js';
7
+ import './chunk-ZYHKJKSU.js';
8
+ import { resolveRepoIdentity } from './chunk-D6FXM5OW.js';
9
+ import './chunk-USO2DKBD.js';
10
+ import './chunk-N6LURUEF.js';
11
+ import './chunk-YRYMNBGQ.js';
6
12
  import { launchedItemForSession } from './chunk-GQD22KKN.js';
7
13
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
8
14
  import { readLatestProvenanceForSession } from './chunk-ZJSNLVCE.js';
9
15
  import { defaultFetch } from './chunk-BCLJSQCV.js';
10
16
  import { resolveGatewayCredentials, unauthorizedMessage } from './chunk-BOLTI6LR.js';
17
+ import { FindingBatchSchema } from './chunk-YNJEOGDL.js';
11
18
  import './chunk-EABW6AJQ.js';
12
19
  import './chunk-M5POMKKW.js';
13
20
  import './chunk-ZM2IMMYN.js';
@@ -117,6 +124,8 @@ function resolveUploadTarget(opts) {
117
124
  return { item: { number: launchedNumber }, sessionId };
118
125
  }
119
126
  async function upload(batch, target, opts) {
127
+ const refusal = await autoConnect(opts);
128
+ if (refusal !== void 0) throw new EmitFindingError(refusal);
120
129
  const resolved = resolveGatewayCredentials(opts);
121
130
  if (!resolved.ok) throw new EmitFindingError(resolved.message);
122
131
  const { url, credential: apiKey, appId } = resolved;
@@ -187,6 +196,7 @@ async function runEmitFinding(opts) {
187
196
  url: opts.url,
188
197
  apiKey: opts.apiKey,
189
198
  appId: opts.appId,
199
+ cwd,
190
200
  quiet: opts.quiet,
191
201
  home,
192
202
  env,
@@ -230,6 +240,7 @@ async function runEmitFindings(opts) {
230
240
  url: opts.url,
231
241
  apiKey: opts.apiKey,
232
242
  appId: opts.appId,
243
+ cwd,
233
244
  quiet: opts.quiet,
234
245
  home,
235
246
  env,
@@ -1,13 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { detectCi } from './chunk-UMFWVGJO.js';
3
+ import { detectCi } from './chunk-6ZZHWY2Z.js';
4
4
  import { launchRefusalForSession } from './chunk-HHJDN6AU.js';
5
5
  import './chunk-TBT347UY.js';
6
6
  import './chunk-F7CU5ABH.js';
7
7
  import './chunk-BKO6JEZI.js';
8
+ import { autoConnect } from './chunk-PUN7LMNS.js';
8
9
  import { detectActiveSession } from './chunk-BFESLKPP.js';
9
- import './chunk-3DEVYTNQ.js';
10
- import { EmittedNameSchema, EMITTED_RESULT_MAX_LINK_LENGTH, EMITTED_RESULTS, EMITTED_RESULT_MAX_BODY_LENGTH, resolveRepoIdentity } from './chunk-ANK2B36Y.js';
10
+ import './chunk-SSU747O6.js';
11
+ import './chunk-ZYHKJKSU.js';
12
+ import { resolveRepoIdentity } from './chunk-D6FXM5OW.js';
13
+ import './chunk-USO2DKBD.js';
14
+ import './chunk-N6LURUEF.js';
11
15
  import './chunk-YRYMNBGQ.js';
12
16
  import './chunk-GQD22KKN.js';
13
17
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
@@ -15,10 +19,11 @@ import './chunk-5QRP3MVS.js';
15
19
  import './chunk-ZJSNLVCE.js';
16
20
  import { defaultFetch } from './chunk-BCLJSQCV.js';
17
21
  import { resolveGatewayCredentials, unauthorizedMessage } from './chunk-BOLTI6LR.js';
22
+ import { EmittedNameSchema, EMITTED_RESULT_MAX_LINK_LENGTH, EMITTED_RESULTS, EMITTED_RESULT_MAX_BODY_LENGTH } from './chunk-YNJEOGDL.js';
18
23
  import './chunk-EABW6AJQ.js';
19
24
  import './chunk-M5POMKKW.js';
20
25
  import './chunk-ZM2IMMYN.js';
21
- import './chunk-FA2BOX4O.js';
26
+ import './chunk-JPR2WHHF.js';
22
27
  import './chunk-XCCLFVXM.js';
23
28
  import './chunk-BJ3KTMDH.js';
24
29
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
@@ -127,14 +132,16 @@ async function runEmitResult(opts) {
127
132
  );
128
133
  }
129
134
  if (sessionId !== void 0) {
130
- const refusal = launchRefusalForSession(sessionId, home);
131
- if (refusal !== void 0) throw new EmitResultError(refusal);
135
+ const refusal2 = launchRefusalForSession(sessionId, home);
136
+ if (refusal2 !== void 0) throw new EmitResultError(refusal2);
132
137
  }
133
138
  if (item === void 0) {
134
139
  throw new EmitResultError(
135
140
  "nothing to attach this to \u2014 no work item. Pass --item <number>; a recorded session alone does not name one."
136
141
  );
137
142
  }
143
+ const refusal = await autoConnect({ ...opts, home, env });
144
+ if (refusal !== void 0) throw new EmitResultError(refusal);
138
145
  const resolved = resolveGatewayCredentials({ ...opts, home, env });
139
146
  if (!resolved.ok) throw new EmitResultError(resolved.message);
140
147
  const { url, credential: apiKey, appId } = resolved;
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { CAPTURE_LIMIT_BYTES, ExecConnectionError, HANDSHAKE_TIMEOUT_MS, execCapture, runExec, runVmExec, vmExecArgs, waitForAgent } from './chunk-W4SQCOZU.js';
4
- import './chunk-B2G7JHHB.js';
5
- import './chunk-AUFG23AA.js';
3
+ export { CAPTURE_LIMIT_BYTES, ExecConnectionError, HANDSHAKE_TIMEOUT_MS, execCapture, runExec, runVmExec, vmExecArgs, waitForAgent } from './chunk-ZOAEPWGL.js';
4
+ import './chunk-R7STSBLC.js';
5
+ import './chunk-OD2VTIHN.js';
6
+ import './chunk-HKMPVPO7.js';
6
7
  import './chunk-Z5GEFMRW.js';
7
8
 
8
9
  createRequire(import.meta.url);
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { DOCKERD_LOG, HELPER_PATH, realGuestHost, relayPortsFrom, runGuestInit } from './chunk-CBPPJSAR.js';
4
- import './chunk-B2G7JHHB.js';
5
- import './chunk-AUFG23AA.js';
3
+ export { DOCKERD_LOG, HELPER_PATH, realGuestHost, relayPortsFrom, runGuestInit } from './chunk-WVGSB3Z2.js';
4
+ import './chunk-R7STSBLC.js';
5
+ import './chunk-OD2VTIHN.js';
6
+ import './chunk-HKMPVPO7.js';
6
7
  import './chunk-Z5GEFMRW.js';
7
8
 
8
9
  createRequire(import.meta.url);
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { AUTO_SYNC_DEBOUNCE_MS, WORK_LEASE_RENEW_DEBOUNCE_MS, WORK_LINK_RETRIES, contextPossiblyGoverned, handleWorkLaunch, handleWorkSessionEnd, hookFiredMarkerPath, logHookError, maybeAutoSync, maybeRenewWorkLease, recordLinkExitFailure, runHookFast, spoolDir } from './chunk-FA2BOX4O.js';
3
+ export { AUTO_SYNC_DEBOUNCE_MS, WORK_LEASE_RENEW_DEBOUNCE_MS, WORK_LINK_RETRIES, contextPossiblyGoverned, handleWorkLaunch, handleWorkSessionEnd, hookFiredMarkerPath, logHookError, maybeAutoSync, maybeRenewWorkLease, recordLinkExitFailure, runHookFast, spoolDir } from './chunk-JPR2WHHF.js';
4
4
  import './chunk-XCCLFVXM.js';
5
5
  import './chunk-BJ3KTMDH.js';
6
6
  import './chunk-VNVZDWO3.js';
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-WO2BXCTQ.js';
4
- import './chunk-EMY4I27X.js';
3
+ import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-VXLJORHL.js';
4
+ import './chunk-7ZR5UPMB.js';
5
+ import './chunk-YNJEOGDL.js';
5
6
  import './chunk-RA3O54FC.js';
6
7
  import './chunk-Z5GEFMRW.js';
7
8
  import { statSync, existsSync, readFileSync, writeFileSync } from 'fs';
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { normalizePath } from './chunk-EMY4I27X.js';
3
+ import { normalizePath } from './chunk-7ZR5UPMB.js';
4
+ import './chunk-YNJEOGDL.js';
4
5
  import './chunk-Z5GEFMRW.js';
5
6
  import { existsSync, readdirSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
6
7
  import { join, dirname } from 'path';
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ createRequire(import.meta.url);
6
6
  // src/index.ts
7
7
  var argv = process.argv.slice(2);
8
8
  if (argv[0] === "hook") {
9
- const { runHookFast } = await import('./hook-fast-NJBBZQ5Q.js');
9
+ const { runHookFast } = await import('./hook-fast-XBOZ3N6L.js');
10
10
  await runHookFast(argv[1]);
11
11
  process.exit(0);
12
12
  }
@@ -21,6 +21,6 @@ if (argv[0] === "statusline") {
21
21
  await runStatuslineFast(argv.slice(1));
22
22
  process.exit(0);
23
23
  }
24
- (await import('./hook-fast-NJBBZQ5Q.js')).recordLinkExitFailure(argv);
25
- var { runCli } = await import('./cli-7WCNPBYC.js');
24
+ (await import('./hook-fast-XBOZ3N6L.js')).recordLinkExitFailure(argv);
25
+ var { runCli } = await import('./cli-LEVCGAQV.js');
26
26
  await runCli(process.argv);
@@ -1,29 +1,36 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { PLACEHOLDER_MARKER, RunnerInitError, isPlaceholderCommand, readConfigObject, runRunnerInit } from './chunk-4NLKY4WR.js';
4
- import './chunk-RBOMWNOG.js';
5
- import './chunk-RZSF5B46.js';
6
- import './chunk-Z62HNKEJ.js';
3
+ export { PLACEHOLDER_MARKER, RunnerInitError, isPlaceholderCommand, readConfigObject, runRunnerInit } from './chunk-6QWV3YDJ.js';
4
+ import './chunk-AQ54MKSQ.js';
5
+ import './chunk-E4PIFIC3.js';
6
+ import './chunk-CEBIA5FD.js';
7
7
  import './chunk-N5FOE5PS.js';
8
8
  import './chunk-OGFGZQA3.js';
9
9
  import './chunk-774HEQL6.js';
10
10
  import './chunk-QOZKPLVJ.js';
11
- import './chunk-W4SQCOZU.js';
12
- import './chunk-B2G7JHHB.js';
13
- import './chunk-BNMCXPG7.js';
11
+ import './chunk-ZOAEPWGL.js';
12
+ import './chunk-R7STSBLC.js';
13
+ import './chunk-DGAIVMMN.js';
14
+ import './chunk-PUN7LMNS.js';
14
15
  import './chunk-BFESLKPP.js';
15
- import './chunk-3DEVYTNQ.js';
16
- import './chunk-ANK2B36Y.js';
16
+ import './chunk-SSU747O6.js';
17
+ import './chunk-ZYHKJKSU.js';
18
+ import './chunk-D6FXM5OW.js';
19
+ import './chunk-USO2DKBD.js';
20
+ import './chunk-N6LURUEF.js';
21
+ import './chunk-YRYMNBGQ.js';
17
22
  import './chunk-F6GFZXZ3.js';
18
- import './chunk-AUFG23AA.js';
23
+ import './chunk-OD2VTIHN.js';
24
+ import './chunk-HKMPVPO7.js';
19
25
  import './chunk-WZBHBH3J.js';
20
- import './chunk-OIRNH6UO.js';
26
+ import './chunk-5FWNEQNZ.js';
21
27
  import './chunk-ZJSNLVCE.js';
22
- import './chunk-WIOZAJ2W.js';
23
- import './chunk-WO2BXCTQ.js';
24
- import './chunk-EMY4I27X.js';
28
+ import './chunk-ZZXLM64C.js';
29
+ import './chunk-VXLJORHL.js';
30
+ import './chunk-7ZR5UPMB.js';
25
31
  import './chunk-BCLJSQCV.js';
26
32
  import './chunk-BOLTI6LR.js';
33
+ import './chunk-YNJEOGDL.js';
27
34
  import './chunk-EABW6AJQ.js';
28
35
  import './chunk-RA3O54FC.js';
29
36
  import './chunk-M5POMKKW.js';