terminalhire 0.40.7 → 0.40.9

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.
@@ -601,9 +601,11 @@ async function shouldNudgeUnpushed() {
601
601
  }
602
602
  async function runBackgroundClaimPush({ now = Date.now() } = {}) {
603
603
  try {
604
- if (!existsSync5(CLAIM_PUSH_AUTO_MARKER) || !existsSync5(CLAIM_PUSH_TOKEN_FILE)) return;
604
+ if (!existsSync5(CLAIM_PUSH_AUTO_MARKER) || !existsSync5(CLAIM_PUSH_TOKEN_FILE)) {
605
+ return { pushed: false, reason: "not-opted-in" };
606
+ }
605
607
  const marker = readAutoMarker();
606
- if (!marker || !marker.autoConsentedAt) return;
608
+ if (!marker || !marker.autoConsentedAt) return { pushed: false, reason: "not-opted-in" };
607
609
  const { listClaims: listClaims2, toPushedClaim: toPushedClaim2, PUSHED_CLAIM_FIELDS: PUSHED_CLAIM_FIELDS2 } = await Promise.resolve().then(() => (init_claims(), claims_exports));
608
610
  const pushed = listClaims2().map((c) => toPushedClaim2(c));
609
611
  const currentHash = computeSnapshotHash(pushed);
@@ -616,9 +618,9 @@ async function runBackgroundClaimPush({ now = Date.now() } = {}) {
616
618
  currentHash,
617
619
  lastSnapshotHash: marker.lastSnapshotHash ?? null
618
620
  });
619
- if (!gate.push) return;
621
+ if (!gate.push) return { pushed: false, reason: gate.reason };
620
622
  const token = await readPushTokenEnc();
621
- if (!token) return;
623
+ if (!token) return { pushed: false, reason: "unreadable-token" };
622
624
  const consentReceipt = {
623
625
  consentedAt: marker.autoConsentedAt,
624
626
  version: AUTO_CONSENT_VERSION,
@@ -630,13 +632,17 @@ async function runBackgroundClaimPush({ now = Date.now() } = {}) {
630
632
  body: JSON.stringify({ consentToken: consentReceipt, claims: pushed, pushToken: token }),
631
633
  signal: AbortSignal.timeout(1e4)
632
634
  });
633
- if (!res.ok) return;
635
+ if (!res.ok) {
636
+ return { pushed: false, reason: `server-${res.status}` };
637
+ }
634
638
  writeAutoMarker({
635
639
  ...marker,
636
640
  lastPushedAt: new Date(now).toISOString(),
637
641
  lastSnapshotHash: currentHash
638
642
  });
643
+ return { pushed: true, reason: "ok" };
639
644
  } catch {
645
+ return { pushed: false, reason: "failed" };
640
646
  }
641
647
  }
642
648
  export {
@@ -1339,6 +1339,7 @@ async function fetchRepoMeta(owner, name, token, cache, stats) {
1339
1339
  topics: r.topics ?? [],
1340
1340
  // `|| null` collapses "" → null so an empty description never crosses the wire.
1341
1341
  description: r.description || null,
1342
+ defaultBranch: r.default_branch || "main",
1342
1343
  contributors
1343
1344
  };
1344
1345
  } catch (err) {
@@ -1604,6 +1605,131 @@ async function fetchOpenExternalPRs(login, token, cache = /* @__PURE__ */ new Ma
1604
1605
  }
1605
1606
  return out;
1606
1607
  }
1608
+ async function fetchCarriedContributions(login, token, cache = /* @__PURE__ */ new Map(), gates = {
1609
+ minStars: MIN_STARS,
1610
+ minContributors: MIN_CONTRIBUTORS
1611
+ }) {
1612
+ if (!token) return [];
1613
+ const loginLc = login.toLowerCase();
1614
+ let ownedOrgs;
1615
+ try {
1616
+ ownedOrgs = await fetchPublicOrgs(login, token);
1617
+ } catch {
1618
+ return null;
1619
+ }
1620
+ let items;
1621
+ try {
1622
+ const q = encodeURIComponent(
1623
+ `type:pr is:closed is:unmerged is:public author:${login} -user:${login} sort:updated`
1624
+ );
1625
+ const res = await ghFetch(
1626
+ `/search/issues?q=${q}&per_page=${CARRIED_PR_PAGE}`,
1627
+ token
1628
+ );
1629
+ items = res.items ?? [];
1630
+ } catch (err) {
1631
+ const msg = err instanceof Error ? err.message : String(err);
1632
+ console.warn("[carried] search failed:", msg);
1633
+ return null;
1634
+ }
1635
+ const metaStats = { transient: 0 };
1636
+ const out = [];
1637
+ let probes = 0;
1638
+ for (const item of items) {
1639
+ if (probes >= MAX_CARRIED_PROBES) {
1640
+ console.warn(
1641
+ `[carried] ${login}: probe cap ${MAX_CARRIED_PROBES} reached \u2014 later closed PRs not examined`
1642
+ );
1643
+ break;
1644
+ }
1645
+ const repo = parseRepoUrl(item.repository_url);
1646
+ if (!repo) continue;
1647
+ const ownerLc = repo.owner.toLowerCase();
1648
+ if (ownerLc === loginLc) continue;
1649
+ if (ownedOrgs.has(ownerLc)) continue;
1650
+ if (isTrivialPRTitle(item.title)) continue;
1651
+ const meta = await fetchRepoMeta(repo.owner, repo.name, token, cache, metaStats);
1652
+ if (metaStats.transient > 0) {
1653
+ console.warn(
1654
+ `[carried] ${login}: per-repo metadata transient failure (${metaStats.transient}) \u2014 returning null (keep prior)`
1655
+ );
1656
+ return null;
1657
+ }
1658
+ if (!meta) continue;
1659
+ if (meta.private) continue;
1660
+ if (meta.archived || meta.fork) continue;
1661
+ if (meta.stars < gates.minStars) continue;
1662
+ if (meta.contributors !== void 0 && meta.contributors < gates.minContributors) continue;
1663
+ const ref = parseGitHubRef(item.html_url);
1664
+ if (!ref || ref.kind !== "pull") continue;
1665
+ probes += 1;
1666
+ let carried;
1667
+ try {
1668
+ carried = await probeCarriedPR(login, loginLc, ref, meta.defaultBranch, item, token);
1669
+ } catch (err) {
1670
+ const msg = err instanceof Error ? err.message : String(err);
1671
+ if (TRANSIENT_META_ERROR.test(msg)) {
1672
+ console.warn(`[carried] ${login}: probe transient failure \u2014 returning null (keep prior)`);
1673
+ return null;
1674
+ }
1675
+ continue;
1676
+ }
1677
+ if (carried) out.push(carried);
1678
+ }
1679
+ return out;
1680
+ }
1681
+ async function probeCarriedPR(login, loginLc, ref, defaultBranch, item, token) {
1682
+ const prCommits = await ghFetch(
1683
+ `/repos/${ref.owner}/${ref.repo}/pulls/${ref.number}/commits?per_page=100`,
1684
+ token
1685
+ );
1686
+ const mine = prCommits.filter((c) => c.author?.login?.toLowerCase() === loginLc);
1687
+ if (mine.length === 0) return null;
1688
+ const mineShas = new Set(mine.map((c) => c.sha));
1689
+ const dates = mine.map((c) => c.commit?.author?.date).filter((d) => !!d);
1690
+ const since = dates.length > 0 ? dates.reduce((a, b) => a < b ? a : b) : void 0;
1691
+ const q = new URLSearchParams({ author: login, sha: defaultBranch, per_page: "100" });
1692
+ if (since) q.set("since", since);
1693
+ const landedList = await ghFetch(
1694
+ `/repos/${ref.owner}/${ref.repo}/commits?${q.toString()}`,
1695
+ token
1696
+ );
1697
+ const landed = landedList.filter((c) => c.author?.login?.toLowerCase() === loginLc).filter((c) => mineShas.has(c.sha));
1698
+ if (landed.length === 0) return null;
1699
+ const mergedPullsBySha = /* @__PURE__ */ new Map();
1700
+ const probeShas = landed.slice(0, CARRIED_SHA_PROBE_CAP);
1701
+ if (landed.length > probeShas.length) {
1702
+ console.warn(
1703
+ `[carried] ${ref.owner}/${ref.repo}#${ref.number}: ${landed.length} landed commits exceeds probe cap ${CARRIED_SHA_PROBE_CAP} \u2014 crediting only the probed ones`
1704
+ );
1705
+ }
1706
+ for (const c of probeShas) {
1707
+ const pulls = await ghFetch(
1708
+ `/repos/${ref.owner}/${ref.repo}/commits/${c.sha}/pulls?per_page=10`,
1709
+ token
1710
+ );
1711
+ mergedPullsBySha.set(
1712
+ c.sha,
1713
+ pulls.filter((p) => !!p.merged_at)
1714
+ );
1715
+ }
1716
+ const ownedByMergedPath = (sha) => (mergedPullsBySha.get(sha) ?? []).some((p) => p.user?.login?.toLowerCase() === loginLc);
1717
+ const credited = probeShas.filter((c) => !ownedByMergedPath(c.sha));
1718
+ if (credited.length === 0) return null;
1719
+ const landedDates = credited.map((c) => c.commit?.author?.date).filter((d) => !!d);
1720
+ const landedAt = landedDates.length > 0 ? landedDates.reduce((a, b) => a > b ? a : b) : item.created_at;
1721
+ const carrierPrUrl = credited.flatMap((c) => mergedPullsBySha.get(c.sha) ?? []).find((p) => p.html_url !== item.html_url)?.html_url;
1722
+ return {
1723
+ closedPrUrl: item.html_url,
1724
+ title: item.title,
1725
+ repoFullName: `${ref.owner}/${ref.repo}`,
1726
+ // CREDITED, not `landed`: a commit the merged accumulator already owns must not
1727
+ // reappear as this row's evidence, or the same work is counted on both paths.
1728
+ landedShas: credited.map((c) => c.sha),
1729
+ carrierPrUrl,
1730
+ landedAt
1731
+ };
1732
+ }
1607
1733
  function acceptanceCountForDomains(cred, domains) {
1608
1734
  if (cred.status !== "ok") return 0;
1609
1735
  let max = 0;
@@ -2159,7 +2285,7 @@ async function fetchPRLifecycle(prUrl, token, signal, governor) {
2159
2285
  complete
2160
2286
  };
2161
2287
  }
2162
- var TRACTION_TOP_N, MAINTAINER_ENRICH_MAX, CANDIDATE_PR_PAGE, MAX_ENRICH_PRS, OPEN_PR_PAGE, TRANSIENT_META_ERROR, RESUME_DECAY_HALF_LIFE_MS, RESUME_MIN_SCORE, RECEPTIVITY_RECENCY_DAYS, RECEPTIVITY_RECENCY_FLOOR, GITHUB_GRAPHQL_URL, AFFILIATION_REVIEWER_CAP, LIFECYCLE_BOT_LOGINS;
2288
+ var TRACTION_TOP_N, MAINTAINER_ENRICH_MAX, CANDIDATE_PR_PAGE, MAX_ENRICH_PRS, OPEN_PR_PAGE, TRANSIENT_META_ERROR, CARRIED_PR_PAGE, MAX_CARRIED_PROBES, CARRIED_SHA_PROBE_CAP, RESUME_DECAY_HALF_LIFE_MS, RESUME_MIN_SCORE, RECEPTIVITY_RECENCY_DAYS, RECEPTIVITY_RECENCY_FLOOR, GITHUB_GRAPHQL_URL, AFFILIATION_REVIEWER_CAP, LIFECYCLE_BOT_LOGINS;
2163
2289
  var init_github = __esm({
2164
2290
  "../../packages/core/src/github.ts"() {
2165
2291
  "use strict";
@@ -2175,6 +2301,9 @@ var init_github = __esm({
2175
2301
  MAX_ENRICH_PRS = 12;
2176
2302
  OPEN_PR_PAGE = 20;
2177
2303
  TRANSIENT_META_ERROR = /HTTP 403|HTTP 429|rate limit|HTTP 5\d\d|timeout|network|fetch failed/i;
2304
+ CARRIED_PR_PAGE = 20;
2305
+ MAX_CARRIED_PROBES = 10;
2306
+ CARRIED_SHA_PROBE_CAP = 20;
2178
2307
  RESUME_DECAY_HALF_LIFE_MS = 30 * 24 * 60 * 60 * 1e3;
2179
2308
  RESUME_MIN_SCORE = 0.05;
2180
2309
  RECEPTIVITY_RECENCY_DAYS = 180;
@@ -5238,17 +5367,17 @@ var init_directoryThreshold = __esm({
5238
5367
  }
5239
5368
  });
5240
5369
 
5241
- // ../../node_modules/@noble/hashes/esm/cryptoNode.js
5370
+ // ../../../term-333/node_modules/@noble/hashes/esm/cryptoNode.js
5242
5371
  import * as nc from "crypto";
5243
5372
  var crypto;
5244
5373
  var init_cryptoNode = __esm({
5245
- "../../node_modules/@noble/hashes/esm/cryptoNode.js"() {
5374
+ "../../../term-333/node_modules/@noble/hashes/esm/cryptoNode.js"() {
5246
5375
  "use strict";
5247
5376
  crypto = nc && typeof nc === "object" && "webcrypto" in nc ? nc.webcrypto : nc && typeof nc === "object" && "randomBytes" in nc ? nc : void 0;
5248
5377
  }
5249
5378
  });
5250
5379
 
5251
- // ../../node_modules/@noble/hashes/esm/utils.js
5380
+ // ../../../term-333/node_modules/@noble/hashes/esm/utils.js
5252
5381
  function isBytes(a) {
5253
5382
  return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
5254
5383
  }
@@ -5368,7 +5497,7 @@ function randomBytes(bytesLength = 32) {
5368
5497
  }
5369
5498
  var hasHexBuiltin, hexes, asciis, Hash;
5370
5499
  var init_utils = __esm({
5371
- "../../node_modules/@noble/hashes/esm/utils.js"() {
5500
+ "../../../term-333/node_modules/@noble/hashes/esm/utils.js"() {
5372
5501
  "use strict";
5373
5502
  init_cryptoNode();
5374
5503
  hasHexBuiltin = /* @__PURE__ */ (() => (
@@ -5382,7 +5511,7 @@ var init_utils = __esm({
5382
5511
  }
5383
5512
  });
5384
5513
 
5385
- // ../../node_modules/@noble/hashes/esm/_md.js
5514
+ // ../../../term-333/node_modules/@noble/hashes/esm/_md.js
5386
5515
  function setBigUint64(view, byteOffset, value, isLE2) {
5387
5516
  if (typeof view.setBigUint64 === "function")
5388
5517
  return view.setBigUint64(byteOffset, value, isLE2);
@@ -5397,7 +5526,7 @@ function setBigUint64(view, byteOffset, value, isLE2) {
5397
5526
  }
5398
5527
  var HashMD, SHA512_IV;
5399
5528
  var init_md = __esm({
5400
- "../../node_modules/@noble/hashes/esm/_md.js"() {
5529
+ "../../../term-333/node_modules/@noble/hashes/esm/_md.js"() {
5401
5530
  "use strict";
5402
5531
  init_utils();
5403
5532
  HashMD = class extends Hash {
@@ -5511,7 +5640,7 @@ var init_md = __esm({
5511
5640
  }
5512
5641
  });
5513
5642
 
5514
- // ../../node_modules/@noble/hashes/esm/_u64.js
5643
+ // ../../../term-333/node_modules/@noble/hashes/esm/_u64.js
5515
5644
  function fromBig(n, le = false) {
5516
5645
  if (le)
5517
5646
  return { h: Number(n & U32_MASK64), l: Number(n >> _32n & U32_MASK64) };
@@ -5533,7 +5662,7 @@ function add(Ah, Al, Bh, Bl) {
5533
5662
  }
5534
5663
  var U32_MASK64, _32n, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, add3L, add3H, add4L, add4H, add5L, add5H;
5535
5664
  var init_u64 = __esm({
5536
- "../../node_modules/@noble/hashes/esm/_u64.js"() {
5665
+ "../../../term-333/node_modules/@noble/hashes/esm/_u64.js"() {
5537
5666
  "use strict";
5538
5667
  U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);
5539
5668
  _32n = /* @__PURE__ */ BigInt(32);
@@ -5552,10 +5681,10 @@ var init_u64 = __esm({
5552
5681
  }
5553
5682
  });
5554
5683
 
5555
- // ../../node_modules/@noble/hashes/esm/sha2.js
5684
+ // ../../../term-333/node_modules/@noble/hashes/esm/sha2.js
5556
5685
  var K512, SHA512_Kh, SHA512_Kl, SHA512_W_H, SHA512_W_L, SHA512, sha512;
5557
5686
  var init_sha2 = __esm({
5558
- "../../node_modules/@noble/hashes/esm/sha2.js"() {
5687
+ "../../../term-333/node_modules/@noble/hashes/esm/sha2.js"() {
5559
5688
  "use strict";
5560
5689
  init_md();
5561
5690
  init_u64();
@@ -5761,7 +5890,7 @@ var init_sha2 = __esm({
5761
5890
  }
5762
5891
  });
5763
5892
 
5764
- // ../../node_modules/@noble/curves/esm/utils.js
5893
+ // ../../../term-333/node_modules/@noble/curves/esm/utils.js
5765
5894
  function _abool2(value, title = "") {
5766
5895
  if (typeof value !== "boolean") {
5767
5896
  const prefix = title && `"${title}"`;
@@ -5868,7 +5997,7 @@ function memoized(fn) {
5868
5997
  }
5869
5998
  var _0n, _1n, isPosBig, bitMask, notImplemented;
5870
5999
  var init_utils2 = __esm({
5871
- "../../node_modules/@noble/curves/esm/utils.js"() {
6000
+ "../../../term-333/node_modules/@noble/curves/esm/utils.js"() {
5872
6001
  "use strict";
5873
6002
  init_utils();
5874
6003
  init_utils();
@@ -5882,7 +6011,7 @@ var init_utils2 = __esm({
5882
6011
  }
5883
6012
  });
5884
6013
 
5885
- // ../../node_modules/@noble/curves/esm/abstract/modular.js
6014
+ // ../../../term-333/node_modules/@noble/curves/esm/abstract/modular.js
5886
6015
  function mod(a, b) {
5887
6016
  const result = a % b;
5888
6017
  return result >= _0n2 ? result : b + result;
@@ -6179,7 +6308,7 @@ function Field(ORDER, bitLenOrOpts, isLE2 = false, opts = {}) {
6179
6308
  }
6180
6309
  var _0n2, _1n2, _2n, _3n, _4n, _5n, _7n, _8n, _9n, _16n, isNegativeLE, FIELD_FIELDS;
6181
6310
  var init_modular = __esm({
6182
- "../../node_modules/@noble/curves/esm/abstract/modular.js"() {
6311
+ "../../../term-333/node_modules/@noble/curves/esm/abstract/modular.js"() {
6183
6312
  "use strict";
6184
6313
  init_utils2();
6185
6314
  _0n2 = BigInt(0);
@@ -6215,7 +6344,7 @@ var init_modular = __esm({
6215
6344
  }
6216
6345
  });
6217
6346
 
6218
- // ../../node_modules/@noble/curves/esm/abstract/curve.js
6347
+ // ../../../term-333/node_modules/@noble/curves/esm/abstract/curve.js
6219
6348
  function negateCt(condition, item) {
6220
6349
  const neg = item.negate();
6221
6350
  return condition ? neg : item;
@@ -6348,7 +6477,7 @@ function _createCurveFields(type, CURVE, curveOpts = {}, FpFnLE) {
6348
6477
  }
6349
6478
  var _0n3, _1n3, pointPrecomputes, pointWindowSizes, wNAF;
6350
6479
  var init_curve = __esm({
6351
- "../../node_modules/@noble/curves/esm/abstract/curve.js"() {
6480
+ "../../../term-333/node_modules/@noble/curves/esm/abstract/curve.js"() {
6352
6481
  "use strict";
6353
6482
  init_utils2();
6354
6483
  init_modular();
@@ -6486,7 +6615,7 @@ var init_curve = __esm({
6486
6615
  }
6487
6616
  });
6488
6617
 
6489
- // ../../node_modules/@noble/curves/esm/abstract/edwards.js
6618
+ // ../../../term-333/node_modules/@noble/curves/esm/abstract/edwards.js
6490
6619
  function isEdValidXY(Fp2, CURVE, x, y) {
6491
6620
  const x2 = Fp2.sqr(x);
6492
6621
  const y2 = Fp2.sqr(y);
@@ -6967,7 +7096,7 @@ function twistedEdwards(c) {
6967
7096
  }
6968
7097
  var _0n4, _1n4, _2n2, _8n2, PrimeEdwardsPoint;
6969
7098
  var init_edwards = __esm({
6970
- "../../node_modules/@noble/curves/esm/abstract/edwards.js"() {
7099
+ "../../../term-333/node_modules/@noble/curves/esm/abstract/edwards.js"() {
6971
7100
  "use strict";
6972
7101
  init_utils2();
6973
7102
  init_curve();
@@ -7046,7 +7175,7 @@ var init_edwards = __esm({
7046
7175
  }
7047
7176
  });
7048
7177
 
7049
- // ../../node_modules/@noble/curves/esm/abstract/montgomery.js
7178
+ // ../../../term-333/node_modules/@noble/curves/esm/abstract/montgomery.js
7050
7179
  function validateOpts(curve) {
7051
7180
  _validateObject(curve, {
7052
7181
  adjustScalarBytes: "function",
@@ -7164,7 +7293,7 @@ function montgomery(curveDef) {
7164
7293
  }
7165
7294
  var _0n5, _1n5, _2n3;
7166
7295
  var init_montgomery = __esm({
7167
- "../../node_modules/@noble/curves/esm/abstract/montgomery.js"() {
7296
+ "../../../term-333/node_modules/@noble/curves/esm/abstract/montgomery.js"() {
7168
7297
  "use strict";
7169
7298
  init_utils2();
7170
7299
  init_modular();
@@ -7174,7 +7303,7 @@ var init_montgomery = __esm({
7174
7303
  }
7175
7304
  });
7176
7305
 
7177
- // ../../node_modules/@noble/curves/esm/ed25519.js
7306
+ // ../../../term-333/node_modules/@noble/curves/esm/ed25519.js
7178
7307
  function ed25519_pow_2_252_3(x) {
7179
7308
  const _10n = BigInt(10), _20n = BigInt(20), _40n = BigInt(40), _80n = BigInt(80);
7180
7309
  const P = ed25519_CURVE_p;
@@ -7252,7 +7381,7 @@ function ristretto255_map(bytes) {
7252
7381
  }
7253
7382
  var _0n6, _1n6, _2n4, _3n2, _5n2, _8n3, ed25519_CURVE_p, ed25519_CURVE, ED25519_SQRT_M1, Fp, Fn, ed25519Defaults, ed25519, x25519, SQRT_M1, SQRT_AD_MINUS_ONE, INVSQRT_A_MINUS_D, ONE_MINUS_D_SQ, D_MINUS_ONE_SQ, invertSqrt, MAX_255B, bytes255ToNumberLE, _RistrettoPoint;
7254
7383
  var init_ed25519 = __esm({
7255
- "../../node_modules/@noble/curves/esm/ed25519.js"() {
7384
+ "../../../term-333/node_modules/@noble/curves/esm/ed25519.js"() {
7256
7385
  "use strict";
7257
7386
  init_sha2();
7258
7387
  init_utils();
@@ -7422,7 +7551,7 @@ var init_ed25519 = __esm({
7422
7551
  }
7423
7552
  });
7424
7553
 
7425
- // ../../node_modules/@noble/ciphers/esm/utils.js
7554
+ // ../../../term-333/node_modules/@noble/ciphers/esm/utils.js
7426
7555
  function isBytes2(a) {
7427
7556
  return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
7428
7557
  }
@@ -7529,7 +7658,7 @@ function copyBytes2(bytes) {
7529
7658
  }
7530
7659
  var isLE, wrapCipher;
7531
7660
  var init_utils3 = __esm({
7532
- "../../node_modules/@noble/ciphers/esm/utils.js"() {
7661
+ "../../../term-333/node_modules/@noble/ciphers/esm/utils.js"() {
7533
7662
  "use strict";
7534
7663
  isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68)();
7535
7664
  wrapCipher = /* @__NO_SIDE_EFFECTS__ */ (params, constructor) => {
@@ -7584,7 +7713,7 @@ var init_utils3 = __esm({
7584
7713
  }
7585
7714
  });
7586
7715
 
7587
- // ../../node_modules/@noble/ciphers/esm/_arx.js
7716
+ // ../../../term-333/node_modules/@noble/ciphers/esm/_arx.js
7588
7717
  function rotl(a, b) {
7589
7718
  return a << b | a >>> 32 - b;
7590
7719
  }
@@ -7684,7 +7813,7 @@ function createCipher(core, opts) {
7684
7813
  }
7685
7814
  var _utf8ToBytes, sigma16, sigma32, sigma16_32, sigma32_32, BLOCK_LEN, BLOCK_LEN32, MAX_COUNTER, U32_EMPTY;
7686
7815
  var init_arx = __esm({
7687
- "../../node_modules/@noble/ciphers/esm/_arx.js"() {
7816
+ "../../../term-333/node_modules/@noble/ciphers/esm/_arx.js"() {
7688
7817
  "use strict";
7689
7818
  init_utils3();
7690
7819
  _utf8ToBytes = (str) => Uint8Array.from(str.split("").map((c) => c.charCodeAt(0)));
@@ -7699,7 +7828,7 @@ var init_arx = __esm({
7699
7828
  }
7700
7829
  });
7701
7830
 
7702
- // ../../node_modules/@noble/ciphers/esm/_poly1305.js
7831
+ // ../../../term-333/node_modules/@noble/ciphers/esm/_poly1305.js
7703
7832
  function wrapConstructorWithKey(hashCons) {
7704
7833
  const hashC = (msg, key) => hashCons(key).update(toBytes2(msg)).digest();
7705
7834
  const tmp = hashCons(new Uint8Array(32));
@@ -7710,7 +7839,7 @@ function wrapConstructorWithKey(hashCons) {
7710
7839
  }
7711
7840
  var u8to16, Poly1305, poly1305;
7712
7841
  var init_poly1305 = __esm({
7713
- "../../node_modules/@noble/ciphers/esm/_poly1305.js"() {
7842
+ "../../../term-333/node_modules/@noble/ciphers/esm/_poly1305.js"() {
7714
7843
  "use strict";
7715
7844
  init_utils3();
7716
7845
  u8to16 = (a, i) => a[i++] & 255 | (a[i++] & 255) << 8;
@@ -7961,7 +8090,7 @@ var init_poly1305 = __esm({
7961
8090
  }
7962
8091
  });
7963
8092
 
7964
- // ../../node_modules/@noble/ciphers/esm/chacha.js
8093
+ // ../../../term-333/node_modules/@noble/ciphers/esm/chacha.js
7965
8094
  function chachaCore(s, k, n, out, cnt, rounds = 20) {
7966
8095
  let y00 = s[0], y01 = s[1], y02 = s[2], y03 = s[3], y04 = k[0], y05 = k[1], y06 = k[2], y07 = k[3], y08 = k[4], y09 = k[5], y10 = k[6], y11 = k[7], y12 = cnt, y13 = n[0], y14 = n[1], y15 = n[2];
7967
8096
  let x00 = y00, x01 = y01, x02 = y02, x03 = y03, x04 = y04, x05 = y05, x06 = y06, x07 = y07, x08 = y08, x09 = y09, x10 = y10, x11 = y11, x12 = y12, x13 = y13, x14 = y14, x15 = y15;
@@ -8141,7 +8270,7 @@ function computeTag(fn, key, nonce, data, AAD) {
8141
8270
  }
8142
8271
  var chacha20, xchacha20, ZEROS16, updatePadded, ZEROS32, _poly1305_aead, chacha20poly1305, xchacha20poly1305;
8143
8272
  var init_chacha = __esm({
8144
- "../../node_modules/@noble/ciphers/esm/chacha.js"() {
8273
+ "../../../term-333/node_modules/@noble/ciphers/esm/chacha.js"() {
8145
8274
  "use strict";
8146
8275
  init_arx();
8147
8276
  init_poly1305();
@@ -10196,6 +10325,7 @@ __export(src_exports, {
10196
10325
  extractJson: () => extractJson,
10197
10326
  extractSkillTags: () => extractSkillTags,
10198
10327
  fetchAcceptanceSearchPage: () => fetchAcceptanceSearchPage,
10328
+ fetchCarriedContributions: () => fetchCarriedContributions,
10199
10329
  fetchGitHubProfile: () => fetchGitHubProfile,
10200
10330
  fetchIssueStatus: () => fetchIssueStatus,
10201
10331
  fetchOpenExternalPRs: () => fetchOpenExternalPRs,