@outerlayer/cli 0.8.2 → 0.8.4

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 (68) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/{agent-setup-C5X4356W.js → agent-setup-LEQF4V5F.js} +9 -7
  3. package/dist/build-info.json +1 -1
  4. package/dist/{builder-QZA2Z3M3.js → builder-5UFAF5LW.js} +3 -3
  5. package/dist/{check-HQHFAOXW.js → check-NJX52PBN.js} +21 -21
  6. package/dist/{chunk-ZJ3WRVRG.js → chunk-2MFYKH3C.js} +1 -1
  7. package/dist/{chunk-M2F2RAMK.js → chunk-4KPMIGBQ.js} +8 -8
  8. package/dist/{chunk-NACLOOXP.js → chunk-6AFQOYO3.js} +3 -3
  9. package/dist/{chunk-GXSMDL4M.js → chunk-AGMIJ725.js} +34 -5
  10. package/dist/{chunk-ZYHKJKSU.js → chunk-BL63NBJZ.js} +1 -1
  11. package/dist/{chunk-HN2JBGSI.js → chunk-CDISNKM4.js} +1 -1
  12. package/dist/{chunk-CLURXEWV.js → chunk-DE4GLH3P.js} +1 -1
  13. package/dist/{chunk-G54QHBTI.js → chunk-DSPYQUH4.js} +2 -2
  14. package/dist/{chunk-4ZZR5SKG.js → chunk-FCDET2U5.js} +3 -3
  15. package/dist/{chunk-3J476JZC.js → chunk-FTW6C2E7.js} +7 -7
  16. package/dist/{chunk-EQG7L6LM.js → chunk-GJ3OWUFO.js} +8 -8
  17. package/dist/{chunk-YU4Z2O3W.js → chunk-H6IGIE3I.js} +4 -4
  18. package/dist/{chunk-MJLUWGUD.js → chunk-IOG6LPEI.js} +2 -2
  19. package/dist/{chunk-KI7VPNKC.js → chunk-K4MGMSMN.js} +1 -1
  20. package/dist/{chunk-LSPJHYHM.js → chunk-LKUUQ3XV.js} +1 -1
  21. package/dist/{chunk-VUGDEUMM.js → chunk-LUY6I65J.js} +8 -8
  22. package/dist/{chunk-WMPO3SKK.js → chunk-MSV44EB5.js} +4 -4
  23. package/dist/{chunk-CMFCCIQN.js → chunk-NKU5OPYP.js} +33 -39
  24. package/dist/{chunk-YNJEOGDL.js → chunk-PK5NANMT.js} +1 -1
  25. package/dist/{chunk-33GOCSRO.js → chunk-PVC36MFI.js} +3 -3
  26. package/dist/{chunk-QJPO42VI.js → chunk-SWGQAURM.js} +4 -4
  27. package/dist/{chunk-EWBM2USM.js → chunk-TFJGK4UB.js} +6 -3
  28. package/dist/{chunk-R5SPFO6F.js → chunk-TY7EZC7U.js} +5 -5
  29. package/dist/{chunk-NPBLDMSD.js → chunk-WGLWDX5J.js} +1 -1
  30. package/dist/{chunk-JXH6LEEH.js → chunk-WLV4KCAW.js} +1 -1
  31. package/dist/{cli-OWM54BIU.js → cli-JXPTHJHQ.js} +59 -59
  32. package/dist/{command-LIHTWJHQ.js → command-WKRTL3JQ.js} +14 -14
  33. package/dist/{connect-cmd-NV7WVBY7.js → connect-cmd-YEO7WRSL.js} +4 -4
  34. package/dist/{context-adopt-PPCNSN5D.js → context-adopt-3REPEEQR.js} +5 -5
  35. package/dist/{context-materialize-YR3JQCUF.js → context-materialize-DU6B6RXF.js} +5 -5
  36. package/dist/{dist-2LNAXGPZ.js → dist-PKBWZAAL.js} +2 -2
  37. package/dist/{docker-RSALMGPL.js → docker-5DUNHNOH.js} +4 -4
  38. package/dist/{doctor-PKT42NOJ.js → doctor-FEIBPZL7.js} +16 -16
  39. package/dist/{emit-artifact-cmd-BZYXRBCV.js → emit-artifact-cmd-S3CASUQK.js} +7 -7
  40. package/dist/{emit-cmd-IRYNFHPM.js → emit-cmd-ETI47BA6.js} +4 -4
  41. package/dist/{emit-criteria-cmd-PSZYZ32B.js → emit-criteria-cmd-ZTUP7OGA.js} +5 -5
  42. package/dist/{emit-finding-cmd-VTSYDJYZ.js → emit-finding-cmd-TTXBZ4B7.js} +5 -5
  43. package/dist/{emit-result-cmd-5P7ZFWMZ.js → emit-result-cmd-34OC6TI5.js} +7 -7
  44. package/dist/{hook-fast-OCHVQZTU.js → hook-fast-CFLLVMSV.js} +1 -1
  45. package/dist/{import-capture-cmd-2QFLZQFY.js → import-capture-cmd-Z3232HR4.js} +3 -3
  46. package/dist/{import-ruler-cmd-BD22GUJS.js → import-ruler-cmd-2PLXZXM7.js} +2 -2
  47. package/dist/index.js +3 -3
  48. package/dist/{init-TQUN5RF7.js → init-AHQHM56A.js} +15 -15
  49. package/dist/{init-CY4IMZE4.js → init-UZ5TXACM.js} +15 -15
  50. package/dist/{init-cmd-F4TZXQJH.js → init-cmd-F4FS5AVC.js} +10 -10
  51. package/dist/{loop-NZP5FAC3.js → loop-C34EVXAP.js} +21 -21
  52. package/dist/{machine-RUSNVLKO.js → machine-Y3TBDMXD.js} +14 -14
  53. package/dist/{session-sender-EECVKXTC.js → session-sender-LKVVLAUP.js} +6 -6
  54. package/dist/{starter-pack-VNWPYP5U.js → starter-pack-L5WPXL4Q.js} +4 -4
  55. package/dist/{status-KCONQLOD.js → status-7RNWHYG6.js} +17 -17
  56. package/dist/{sync-cmd-R54ZBHXX.js → sync-cmd-VH6HSMG5.js} +5 -5
  57. package/dist/{watch-YTFNBO3S.js → watch-HUKDEFUX.js} +5 -5
  58. package/dist/{work-claim-cmd-HRPJ4VUF.js → work-claim-cmd-JLCU5SPP.js} +7 -7
  59. package/dist/{work-cmd-W4GQUUBC.js → work-cmd-SBKQJBJ2.js} +6 -6
  60. package/dist/{work-comment-cmd-DDZ4SZ35.js → work-comment-cmd-TNUDUUAT.js} +6 -6
  61. package/dist/{work-open-pr-cmd-GXULDTSC.js → work-open-pr-cmd-IB57SMAD.js} +7 -7
  62. package/dist/{work-pr-cmd-T6SU4TYN.js → work-pr-cmd-HDDNFSKA.js} +6 -6
  63. package/package.json +1 -1
  64. package/skill-pack/maintained/emitting-evidence/SKILL.md +12 -5
  65. package/skill-pack/template/build/SKILL.md +6 -2
  66. package/skill-pack/template/build/references/release.md +13 -0
  67. package/skill-pack/template/build/references/review-loop.md +3 -1
  68. package/skill-pack/validators/code-review.yaml +27 -0
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { RESERVED_EMIT_NAMES } from './chunk-YNJEOGDL.js';
3
+ import { RESERVED_EMIT_NAMES, ARTIFACT_KINDS, ArtifactCriterionIdSchema } from './chunk-PK5NANMT.js';
4
4
  import { __commonJS, __require, __toESM } from './chunk-Z5GEFMRW.js';
5
5
 
6
6
  createRequire(import.meta.url);
@@ -7287,8 +7287,8 @@ function classifyOnePath(rawPath) {
7287
7287
  const segs = path.split("/");
7288
7288
  const outerlayerIndex = segs.indexOf(OUTERLAYER_DIR);
7289
7289
  if (outerlayerIndex === -1) {
7290
- const base2 = segs[segs.length - 1];
7291
- if (base2 === "AGENTS.md" || base2 === "CLAUDE.md") {
7290
+ const base = segs[segs.length - 1];
7291
+ if (base === "AGENTS.md" || base === "CLAUDE.md") {
7292
7292
  const scopePath2 = segs.slice(0, -1).join("/");
7293
7293
  return { type: "entry", entry: { path, kind: "external-instructions", scopePath: scopePath2 } };
7294
7294
  }
@@ -7975,26 +7975,9 @@ function normalizeRepoName(repo) {
7975
7975
  }
7976
7976
  var CONTEXT_PIN_FILENAME = ".outerlayer-pin.json";
7977
7977
  var CONTEXT_PIN_SCHEMA_VERSION = 1;
7978
- var base = {
7979
- whenPaths: null,
7980
- whenIssueType: null,
7981
- whenIssueLabels: null,
7982
- needs: [],
7983
- declaresEmit: null,
7984
- level: "warn"
7985
- };
7986
- var REGISTRY_VALIDATORS = [
7987
- {
7988
- ...base,
7989
- id: "code-review-ran",
7990
- name: "Code review report",
7991
- row: "A code review report is attached to this change",
7992
- requireAny: [{ type: "artifact", kind: "report", for: "code-review-ran" }]
7993
- }
7994
- ];
7995
7978
  var MAX_COMMAND_LENGTH = 2e3;
7996
- var RECOMMENDED_EXTENDS = "outerlayer:recommended@v1";
7997
- var FREED_BUILTINS = /* @__PURE__ */ new Set(["ci-passed", "acceptance-criteria"]);
7979
+ var EXTENDS_PROBLEM = '"extends" is not a policy key \u2014 every check is a file in .outerlayer/validators/. Run outerlayer init --template default to write .outerlayer/validators/code-review.yaml, then delete the extends line';
7980
+ var FREED_BUILTINS = /* @__PURE__ */ new Set(["ci-passed", "acceptance-criteria", "code-review-ran"]);
7998
7981
  var RETIRED_BUILTINS = /* @__PURE__ */ new Set([
7999
7982
  "red-then-green",
8000
7983
  "no-test-tampering",
@@ -8024,7 +8007,7 @@ function parseLevel(value) {
8024
8007
  return value === "warn" || value === "info" || value === "off" ? value : null;
8025
8008
  }
8026
8009
  function parseMergeGate(value) {
8027
- return value === "none" || value === "on-flag" || value === "on-unverifiable" ? value : null;
8010
+ return value === "none" || value === "on-flag" ? value : null;
8028
8011
  }
8029
8012
  function parseReview(value) {
8030
8013
  return value === "required" || value === "optional" ? value : null;
@@ -8033,7 +8016,7 @@ function parsePolicyFile(file) {
8033
8016
  const problems = [];
8034
8017
  const fail = (problem) => {
8035
8018
  problems.push({ file: file.path, problem });
8036
- return { extendsOk: false, overrides: {}, mergeGate: null, review: null, testProof: null, criteriaMissing: null, problems };
8019
+ return { overrides: {}, mergeGate: null, review: null, testProof: null, criteriaMissing: null, problems };
8037
8020
  };
8038
8021
  let root;
8039
8022
  try {
@@ -8041,9 +8024,11 @@ function parsePolicyFile(file) {
8041
8024
  } catch (error) {
8042
8025
  return fail(`not valid YAML \u2014 ${error instanceof Error ? error.message : String(error)}`);
8043
8026
  }
8027
+ if (root === null) root = {};
8044
8028
  if (!isRecord(root)) return fail("must be a YAML mapping");
8029
+ if (root["extends"] !== void 0) return fail(EXTENDS_PROBLEM);
8045
8030
  for (const key of Object.keys(root)) {
8046
- if (key !== "extends" && key !== "validators" && key !== "merge_gate" && key !== "review" && key !== "build" && key !== "criteria") {
8031
+ if (key !== "validators" && key !== "merge_gate" && key !== "review" && key !== "build" && key !== "criteria") {
8047
8032
  return fail(`unknown key "${inlineText(key)}"`);
8048
8033
  }
8049
8034
  }
@@ -8093,7 +8078,7 @@ function parsePolicyFile(file) {
8093
8078
  mergeGate = parseMergeGate(root["merge_gate"]);
8094
8079
  if (mergeGate === null) {
8095
8080
  return fail(
8096
- `merge_gate has value "${inlineText(String(root["merge_gate"]))}" \u2014 use none, on-flag, or on-unverifiable`
8081
+ `merge_gate has value "${inlineText(String(root["merge_gate"]))}" \u2014 use none or on-flag`
8097
8082
  );
8098
8083
  }
8099
8084
  }
@@ -8104,14 +8089,6 @@ function parsePolicyFile(file) {
8104
8089
  return fail(`review has value "${inlineText(String(root["review"]))}" \u2014 use required or optional`);
8105
8090
  }
8106
8091
  }
8107
- if (root["extends"] === void 0) {
8108
- return fail(`missing "extends" \u2014 adopt the registry with extends: ${RECOMMENDED_EXTENDS}`);
8109
- }
8110
- if (root["extends"] !== RECOMMENDED_EXTENDS) {
8111
- return fail(
8112
- `unknown extends "${inlineText(String(root["extends"]))}" \u2014 the only supported registry is ${RECOMMENDED_EXTENDS}`
8113
- );
8114
- }
8115
8092
  const overrides = {};
8116
8093
  const validators = root["validators"];
8117
8094
  if (validators !== void 0) {
@@ -8124,7 +8101,7 @@ function parsePolicyFile(file) {
8124
8101
  overrides[id] = level;
8125
8102
  }
8126
8103
  }
8127
- return { extendsOk: true, overrides, mergeGate, review, testProof, criteriaMissing, problems };
8104
+ return { overrides, mergeGate, review, testProof, criteriaMissing, problems };
8128
8105
  }
8129
8106
  function parseSessionRan(value, file, problems) {
8130
8107
  var _a;
@@ -8150,6 +8127,24 @@ function parseSessionRan(value, file, problems) {
8150
8127
  }
8151
8128
  return { type: "session-ran", command: command.trim(), status };
8152
8129
  }
8130
+ function parseArtifactRequirement(value, file, problems) {
8131
+ const fail = (problem) => {
8132
+ problems.push({ file, problem });
8133
+ return null;
8134
+ };
8135
+ if (!isRecord(value) || Object.keys(value).some((key) => key !== "kind" && key !== "for")) {
8136
+ return fail(`"artifact" must be a mapping of "kind" and "for"`);
8137
+ }
8138
+ const kind = ARTIFACT_KINDS.find((known) => known === value["kind"]);
8139
+ if (kind === void 0) {
8140
+ return fail(`"artifact" kind must be one of ${ARTIFACT_KINDS.join(", ")}`);
8141
+ }
8142
+ const boundTo = ArtifactCriterionIdSchema.safeParse(value["for"]);
8143
+ if (!boundTo.success) {
8144
+ return fail(`"artifact" for must name the id the artifact is emitted --for`);
8145
+ }
8146
+ return { type: "artifact", kind, for: boundTo.data };
8147
+ }
8153
8148
  function parseRequirementAlt(value, file, problems) {
8154
8149
  if (!isRecord(value)) {
8155
8150
  problems.push({ file, problem: `each requirement must be a single-key mapping` });
@@ -8159,7 +8154,7 @@ function parseRequirementAlt(value, file, problems) {
8159
8154
  if (keys.length !== 1) {
8160
8155
  problems.push({
8161
8156
  file,
8162
- problem: `a requirement names exactly one of session.ran, validator, emitted`
8157
+ problem: `a requirement names exactly one of session.ran, validator, emitted, artifact`
8163
8158
  });
8164
8159
  return null;
8165
8160
  }
@@ -8181,6 +8176,7 @@ function parseRequirementAlt(value, file, problems) {
8181
8176
  }
8182
8177
  return { type: "emitted", name };
8183
8178
  }
8179
+ if (key === "artifact") return parseArtifactRequirement(value[key], file, problems);
8184
8180
  problems.push({ file, problem: `unknown requirement "${key}"` });
8185
8181
  return null;
8186
8182
  }
@@ -8456,7 +8452,6 @@ function parsePolicy(policyFile, validatorFiles) {
8456
8452
  var _a, _b, _c, _d, _e;
8457
8453
  const problems = [];
8458
8454
  const policy = policyFile ? parsePolicyFile(policyFile) : {
8459
- extendsOk: true,
8460
8455
  overrides: {},
8461
8456
  mergeGate: null,
8462
8457
  review: null,
@@ -8503,8 +8498,7 @@ function parsePolicy(policyFile, validatorFiles) {
8503
8498
  return false;
8504
8499
  });
8505
8500
  const resolved = resolveReferences(deduped, signalIds, problems);
8506
- const registry = policyFile !== null && policy.extendsOk ? REGISTRY_VALIDATORS.filter((def) => !seenIds.has(def.id)) : [];
8507
- const sorted = [...resolved.map((p) => p.def), ...registry].sort((a, b) => a.id < b.id ? -1 : 1);
8501
+ const sorted = resolved.map((p) => p.def).sort((a, b) => a.id < b.id ? -1 : 1);
8508
8502
  const levels = {};
8509
8503
  for (const custom of sorted) levels[custom.id] = custom.level;
8510
8504
  for (const [id, level] of Object.entries(policy.overrides)) {
@@ -22431,4 +22431,4 @@ xmlchars/xmlns/1.0/ed3.js:
22431
22431
  *)
22432
22432
  */
22433
22433
 
22434
- export { ARTIFACT_MAX_CAPTION_LENGTH, ARTIFACT_MAX_FILENAME_LENGTH, ARTIFACT_MAX_REPLACES_TARGETS, ArtifactCriterionIdSchema, ArtifactSpoolRecordSchema, ArtifactTombstoneRecordSchema, BUCKET_MODEL_MAX_LENGTH, CAPTURE_TIERS, CriteriaListSchema, EMITTED_RESULTS, EMITTED_RESULT_MAX_BODY_LENGTH, EMITTED_RESULT_MAX_LINK_LENGTH, EVENT_TYPES, EmittedNameSchema, FindingBatchSchema, RESERVED_EMIT_NAMES, SCHEMA_VERSION, SPEED_MAX_LENGTH, bannedPathsForTier, bindTests, downconvertSession, inferArtifactKind, inputBandOf, isHumanUserTurn, mediaTypeForArtifactPath, parseAgentSession, parseJunit, parseTestSelector, turnCountBound };
22434
+ export { ARTIFACT_KINDS, ARTIFACT_MAX_CAPTION_LENGTH, ARTIFACT_MAX_FILENAME_LENGTH, ARTIFACT_MAX_REPLACES_TARGETS, ArtifactCriterionIdSchema, ArtifactSpoolRecordSchema, ArtifactTombstoneRecordSchema, BUCKET_MODEL_MAX_LENGTH, CAPTURE_TIERS, CriteriaListSchema, EMITTED_RESULTS, EMITTED_RESULT_MAX_BODY_LENGTH, EMITTED_RESULT_MAX_LINK_LENGTH, EVENT_TYPES, EmittedNameSchema, FindingBatchSchema, RESERVED_EMIT_NAMES, SCHEMA_VERSION, SPEED_MAX_LENGTH, bannedPathsForTier, bindTests, downconvertSession, inferArtifactKind, inputBandOf, isHumanUserTurn, mediaTypeForArtifactPath, parseAgentSession, parseJunit, parseTestSelector, turnCountBound };
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { autoConnect } from './chunk-WMPO3SKK.js';
3
+ import { autoConnect } from './chunk-MSV44EB5.js';
4
4
  import { detectActiveSession } from './chunk-BFESLKPP.js';
5
- import { resolveRepoIdentity } from './chunk-HN2JBGSI.js';
5
+ import { resolveRepoIdentity } from './chunk-CDISNKM4.js';
6
6
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
7
7
  import { defaultFetch } from './chunk-YO4PSLVB.js';
8
8
  import { unauthorizedMessage, resolveGatewayCredentials } from './chunk-PLMTLGYH.js';
@@ -38,7 +38,7 @@ async function runWorkPr(opts) {
38
38
  const cwd = opts.cwd ?? process.cwd();
39
39
  const env = opts.env ?? process.env;
40
40
  const home = opts.home ?? homeFromEnv(env);
41
- const refusal = await autoConnect(opts);
41
+ const refusal = await autoConnect({ ...opts, repository: opts.repo });
42
42
  if (refusal !== void 0) throw new WorkPrCommandError(refusal);
43
43
  const creds = resolveCredentials(opts);
44
44
  const prNumber = resolvePrNumber(opts.number);
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { isPlaceholderCommand } from './chunk-MJLUWGUD.js';
4
- import { describeCallFailure } from './chunk-EQG7L6LM.js';
5
- import { WorkCommandError, getJson } from './chunk-R5SPFO6F.js';
6
- import { sanitizeTerminal } from './chunk-ZYHKJKSU.js';
3
+ import { isPlaceholderCommand } from './chunk-IOG6LPEI.js';
4
+ import { describeCallFailure } from './chunk-GJ3OWUFO.js';
5
+ import { WorkCommandError, getJson } from './chunk-TY7EZC7U.js';
6
+ import { sanitizeTerminal } from './chunk-BL63NBJZ.js';
7
7
  import { builtinKind } from './chunk-7KI224YS.js';
8
8
  import { CLAUDE_CREDENTIAL_VARIABLES, claudeCredential } from './chunk-2FWL7CE2.js';
9
9
  import { signerFor } from './chunk-V7NIVOFD.js';
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { sanitizeTerminal } from './chunk-ZYHKJKSU.js';
4
- import { remoteLookupFailed } from './chunk-HN2JBGSI.js';
3
+ import { sanitizeTerminal } from './chunk-BL63NBJZ.js';
4
+ import { remoteLookupFailed } from './chunk-CDISNKM4.js';
5
5
  import { DEFAULT_DASHBOARD } from './chunk-USO2DKBD.js';
6
6
  import { resolveGatewayCredentials } from './chunk-PLMTLGYH.js';
7
7
  import { readCloudConfig } from './chunk-EABW6AJQ.js';
@@ -168,6 +168,9 @@ function saveFactoryConnection(gitCommonDir, saved, factory, now) {
168
168
  function connectedLine(repository, factory, reason) {
169
169
  return `Connected ${repository} to factory "${factory.displayName}" in ${factory.organization.displayName} (${REASON_TEXT[reason]}).`;
170
170
  }
171
+ function autoConnectedLine(repository, factory, reason) {
172
+ return `Using factory "${factory.displayName}" in ${factory.organization.displayName} for ${repository} (${REASON_TEXT[reason]}); saved for this checkout.`;
173
+ }
171
174
  async function choose(flags, deps, factories, saved, repository) {
172
175
  if (flags.factory !== void 0) {
173
176
  const wanted = flags.factory.toLowerCase();
@@ -289,4 +292,4 @@ async function runConnectCommand(flags, deps, out) {
289
292
  return r.code;
290
293
  }
291
294
 
292
- export { connectedLine, fetchFactories, isLinkedRepository, promptOnTerminal, realConnectDeps, runConnect, runConnectCommand, saveFactoryConnection, selectFactory };
295
+ export { autoConnectedLine, fetchFactories, isLinkedRepository, promptOnTerminal, realConnectDeps, runConnect, runConnectCommand, saveFactoryConnection, selectFactory };
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { autoConnect } from './chunk-WMPO3SKK.js';
3
+ import { autoConnect } from './chunk-MSV44EB5.js';
4
4
  import { detectActiveSession } from './chunk-BFESLKPP.js';
5
- import { sanitizeTerminal } from './chunk-ZYHKJKSU.js';
6
- import { resolveRepoIdentity } from './chunk-HN2JBGSI.js';
5
+ import { sanitizeTerminal } from './chunk-BL63NBJZ.js';
6
+ import { resolveRepoIdentity } from './chunk-CDISNKM4.js';
7
7
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
8
8
  import { defaultFetch } from './chunk-YO4PSLVB.js';
9
9
  import { resolveGatewayCredentials, unauthorizedMessage } from './chunk-PLMTLGYH.js';
@@ -81,7 +81,7 @@ function resolveCredentials(opts) {
81
81
  return { url: resolved.url, apiKey: resolved.credential, appId: resolved.appId };
82
82
  }
83
83
  async function connectIfOneFits(opts) {
84
- const refusal = await autoConnect(opts);
84
+ const refusal = await autoConnect({ ...opts, repository: opts.repo });
85
85
  if (refusal !== void 0) throw new WorkCommandError(refusal);
86
86
  }
87
87
  function resolveRepository(repoFlag, cwd) {
@@ -347,7 +347,7 @@ async function runWorkLinkSession(opts) {
347
347
  return await linkSession(opts);
348
348
  } catch (err) {
349
349
  if (opts.logFailures) {
350
- const { logHookError } = await import('./hook-fast-OCHVQZTU.js');
350
+ const { logHookError } = await import('./hook-fast-CFLLVMSV.js');
351
351
  const reason = err instanceof Error ? err.message : String(err);
352
352
  logHookError(opts.home ?? homeFromEnv(opts.env ?? process.env), new Error(`work link-session #${opts.number} failed: ${reason}`));
353
353
  }
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { RecipeError } from './chunk-QOZKPLVJ.js';
4
- import { trackImageBuild, isOutOfMemory, ensureBuilder } from './chunk-CLURXEWV.js';
4
+ import { trackImageBuild, isOutOfMemory, ensureBuilder } from './chunk-DE4GLH3P.js';
5
5
  import { spawn } from 'child_process';
6
6
  import { existsSync, mkdirSync, createWriteStream, rmSync, readFileSync } from 'fs';
7
7
  import { join, dirname } from 'path';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { splitRawFile } from './chunk-CMFCCIQN.js';
3
+ import { splitRawFile } from './chunk-NKU5OPYP.js';
4
4
  import { resolvePackageVersion } from './chunk-RA3O54FC.js';
5
5
  import { existsSync, readFileSync, mkdirSync, writeFileSync, readdirSync } from 'fs';
6
6
  import { join, dirname } from 'path';